From 2ec5147e7ddd02aacb27424df56dbfe6d16cf808 Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 8 Aug 2023 10:07:29 +0200 Subject: [PATCH] Home screen --- Core/Inc/home_screen.h | 13 + Core/Src/home_screen.c | 17 + Core/Src/main.c | 43 +- Debug/Core/Src/home_screen.cyclo | 2 + Debug/Core/Src/home_screen.d | 425 + Debug/Core/Src/home_screen.o | Bin 0 -> 128520 bytes Debug/Core/Src/home_screen.su | 2 + Debug/Core/Src/main.cyclo | 17 +- Debug/Core/Src/main.d | 4 +- Debug/Core/Src/main.o | Bin 927348 -> 925832 bytes Debug/Core/Src/main.su | 17 +- Debug/Core/Src/stm32f1xx_hal_msp.o | Bin 803784 -> 803520 bytes Debug/Core/Src/stm32f1xx_it.o | Bin 797636 -> 797372 bytes Debug/Core/Src/subdir.mk | 5 +- Debug/PSE.elf | Bin 3184488 -> 3203540 bytes Debug/PSE.list | 239449 +++++++++++++------------- Debug/PSE.map | 7046 +- Debug/objects.list | 1 + 18 files changed, 123787 insertions(+), 123254 deletions(-) create mode 100644 Core/Inc/home_screen.h create mode 100644 Core/Src/home_screen.c create mode 100644 Debug/Core/Src/home_screen.cyclo create mode 100644 Debug/Core/Src/home_screen.d create mode 100644 Debug/Core/Src/home_screen.o create mode 100644 Debug/Core/Src/home_screen.su diff --git a/Core/Inc/home_screen.h b/Core/Inc/home_screen.h new file mode 100644 index 0000000..cf4c207 --- /dev/null +++ b/Core/Inc/home_screen.h @@ -0,0 +1,13 @@ +/* + * home_screen.h + * + * Created on: Aug 7, 2023 + * Author: leo + */ + +#ifndef INC_HOME_SCREEN_H_ +#define INC_HOME_SCREEN_H_ + +void Home_Screen_Gen(void); + +#endif /* INC_HOME_SCREEN_H_ */ diff --git a/Core/Src/home_screen.c b/Core/Src/home_screen.c new file mode 100644 index 0000000..13c74a4 --- /dev/null +++ b/Core/Src/home_screen.c @@ -0,0 +1,17 @@ +/* + * home_screen.c + * + * Created on: Aug 7, 2023 + * Author: leo + */ + +#include "lvgl.h" + +void Home_Screen_Gen(void){ + lv_obj_t* scr = lv_obj_create(NULL); + lv_obj_set_layout(scr, LV_LAYOUT_GRID); + + lv_obj_t* run_button = lv_btn_create(scr); + + lv_scr_load(scr); +} diff --git a/Core/Src/main.c b/Core/Src/main.c index 65f4d04..f3dd371 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -28,6 +28,8 @@ #include "lcdio.h" #include "ILI9341.h" #include "ADS7843.h" + +#include "home_screen.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ @@ -89,23 +91,21 @@ PUTCHAR_PROTOTYPE return ch; } - +// LVGL screen update function void my_flush_cb(lv_disp_drv_t * disp, const lv_area_t * area, lv_color_t * buf){ int32_t x, y; for(y = area->y1; y <= area->y2; y++) { ILI9341_SetCursor(area->x1,y); ILI9341_WriteRam(); - for(x = area->x1; x <= area->x2; x++) { - LCD_IO_WriteData(*(uint16_t*)buf); - buf++; - } + for(x = area->x1; x <= area->x2; x++) { + LCD_IO_WriteData(*(uint16_t*)buf); + buf++; + } } - - /* IMPORTANT!!! - * Inform LVGL that you are ready with the flushing and buf is not used anymore*/ lv_disp_flush_ready(disp); } +// LVGL input update function void touchscreen_read_callback(lv_indev_drv_t * drv, lv_indev_data_t*data){ if(ADS7843_Touched(&Touch_Def)) { data->state = LV_INDEV_STATE_PRESSED; @@ -155,19 +155,22 @@ int main(void) MX_FSMC_Init(); MX_USART1_UART_Init(); /* USER CODE BEGIN 2 */ + // Reset the LCD to start clean HAL_GPIO_WritePin(LCD_RST_GPIO_Port, LCD_RST_Pin, GPIO_PIN_RESET); - HAL_Delay(500); + HAL_Delay(5); HAL_GPIO_WritePin(LCD_RST_GPIO_Port, LCD_RST_Pin, GPIO_PIN_SET); - HAL_Delay(500); + HAL_Delay(5); + // Initialise the LCD driver ILI9341_Init(); - //Initialise LVGL UI library + // Initialise LVGL UI library lv_init(); - /*Initialize `disp_buf` with the buffer(s). With only one buffer use NULL instead buf_2 */ + // Add the display buffer to LVGL lv_disp_draw_buf_init(&disp_buf, buf_1, NULL, BUFF_SIZE); + // initilize LVGL display lv_disp_drv_t disp_drv; lv_disp_drv_init(&disp_drv); disp_drv.draw_buf = &disp_buf; @@ -178,39 +181,41 @@ int main(void) lv_disp_t * disp = lv_disp_drv_register(&disp_drv); + // initialize LVGL touchscreen input lv_indev_drv_t indev_drv; lv_indev_drv_init(&indev_drv); indev_drv.type = LV_INDEV_TYPE_POINTER; indev_drv.read_cb = touchscreen_read_callback; lv_indev_t * my_indev = lv_indev_drv_register(&indev_drv); + // import the MINT logo as a picture LV_IMG_DECLARE(logo_mint_resize); lv_obj_t * logo_mint = lv_img_create(lv_scr_act()); lv_img_set_src(logo_mint, &logo_mint_resize); - lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0x0), LV_PART_MAIN); - + // Draw the MINT logo lv_obj_align(logo_mint, LV_ALIGN_CENTER, 0, 0); lv_obj_set_size(logo_mint, 320, 240); - //lv_obj_set_style_text_color(lv_scr_act(), lv_color_hex(0xffff), LV_PART_MAIN); - //ILI9341_GRADIENT(0,0,320,240); - lv_obj_t* cursor_pos = lv_label_create(lv_scr_act()); + // Create the cursor lv_obj_t* cursor = lv_label_create(lv_scr_act()); lv_label_set_text(cursor, "A"); lv_indev_set_cursor(my_indev, cursor); + // initialize the Touchscreen Driver ADS7843_Init(&Touch_Def); + + Home_Screen_Gen(); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { + // Run LVGL update loop lv_timer_handler(); HAL_Delay(5); - lv_label_set_text_fmt(cursor_pos, "%d : %d \n %d : %d", ADS7843_GetX(&Touch_Def), ADS7843_GetY(&Touch_Def), ADS7843_GetX_Raw(&Touch_Def), ADS7843_GetY_Raw(&Touch_Def)); - /* USER CODE END WHILE */ + /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } diff --git a/Debug/Core/Src/home_screen.cyclo b/Debug/Core/Src/home_screen.cyclo new file mode 100644 index 0000000..1ab57cc --- /dev/null +++ b/Debug/Core/Src/home_screen.cyclo @@ -0,0 +1,2 @@ +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_disp.h:185:20:lv_scr_load 1 +../Core/Src/home_screen.c:10:6:Home_Screen_Gen 1 diff --git a/Debug/Core/Src/home_screen.d b/Debug/Core/Src/home_screen.d new file mode 100644 index 0000000..c6fa9ae --- /dev/null +++ b/Debug/Core/Src/home_screen.d @@ -0,0 +1,425 @@ +Core/Src/home_screen.o: ../Core/Src/home_screen.c \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_log.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/../lv_conf_internal.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/../lv_conf_kconfig.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/../../../lv_conf.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_types.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_timer.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_math.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_mem.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_async.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_anim_timeline.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_anim.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_printf.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/lv_hal.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/lv_hal_disp.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/lv_hal.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_draw.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../lv_conf_internal.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_style.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/../font/lv_font.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/../font/../lv_conf_internal.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/../font/lv_symbol_def.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/../font/../misc/lv_area.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/../font/../misc/../lv_conf_internal.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_color.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/../lv_conf_internal.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_assert.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_log.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_mem.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_math.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_types.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_area.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_anim.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_txt.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_printf.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_bidi.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_style_gen.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_txt.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_img_decoder.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_img_buf.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_color.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_area.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_fs.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_types.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_img_cache.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_draw_rect.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/sw/lv_draw_sw_gradient.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/sw/../../misc/lv_color.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/sw/../../misc/lv_style.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/sw/lv_draw_sw_dither.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/sw/../../core/lv_obj_pos.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/sw/../../core/../misc/lv_area.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_draw_label.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_bidi.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_draw_img.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_draw_line.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_draw_triangle.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_draw_arc.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_draw_mask.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_math.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../misc/lv_color.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../misc/lv_area.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../misc/lv_ll.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../misc/lv_timer.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/lv_hal_indev.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../lv_conf_internal.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/lv_hal_tick.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../lv_conf_internal.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../misc/lv_style.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../misc/lv_types.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../misc/lv_area.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../misc/lv_color.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../misc/lv_assert.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../hal/lv_hal.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj_tree.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj_pos.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj_scroll.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../misc/lv_anim.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj_style.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../misc/lv_bidi.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj_style_gen.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj_draw.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../draw/lv_draw.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj_class.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_event.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_group.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../misc/lv_ll.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_group.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_indev.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../hal/lv_hal_indev.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_refr.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_disp.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_theme.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../core/lv_obj.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_theme.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/font/lv_font.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/font/lv_font_loader.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/font/lv_font_fmt_txt.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/font/lv_font.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_arc.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../lv_conf_internal.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../core/lv_obj.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_btn.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_img.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../misc/lv_fs.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../draw/lv_draw.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_label.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../font/lv_font.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../font/lv_symbol_def.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../misc/lv_txt.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_line.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_table.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_label.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_checkbox.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_bar.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../misc/lv_anim.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_btn.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_slider.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_bar.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_btnmatrix.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_dropdown.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../widgets/lv_label.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_roller.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_textarea.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_canvas.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../widgets/lv_img.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../draw/lv_draw_img.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_switch.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/draw/lv_draw.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/lv_api_map.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/lv_extra.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/lv_widgets.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/animimg/lv_animimg.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/animimg/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/animimg/../../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/calendar/../../../widgets/lv_btnmatrix.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/calendar/../../../core/lv_obj.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/chart/lv_chart.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/chart/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/keyboard/../../../widgets/lv_btnmatrix.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/list/lv_list.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/list/../../../core/lv_obj.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/list/../../layouts/flex/lv_flex.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/list/../../layouts/flex/../../../core/lv_obj.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/menu/lv_menu.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/menu/../../../core/lv_obj.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/msgbox/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/meter/lv_meter.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/meter/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/spinbox/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/spinner/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/tabview/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/tileview/../../../core/lv_obj.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/win/lv_win.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/win/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/colorwheel/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/led/lv_led.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/led/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/imgbtn/lv_imgbtn.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/imgbtn/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/span/lv_span.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/span/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/layouts/lv_layouts.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/layouts/flex/lv_flex.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/layouts/grid/lv_grid.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/layouts/grid/../../../core/lv_obj.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/themes/lv_themes.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/themes/default/lv_theme_default.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/themes/default/../../../core/lv_obj.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/themes/mono/lv_theme_mono.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/themes/mono/../../../core/lv_obj.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/themes/basic/lv_theme_basic.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/themes/basic/../../../core/lv_obj.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/others/lv_others.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/others/snapshot/lv_snapshot.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/others/snapshot/../../../lv_conf_internal.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/others/snapshot/../../../core/lv_obj.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/others/monkey/lv_monkey.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/others/monkey/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/others/gridnav/lv_gridnav.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/others/gridnav/../../../core/lv_obj.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/lv_libs.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/bmp/lv_bmp.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/bmp/../../../lv_conf_internal.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/fsdrv/lv_fsdrv.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/fsdrv/../../../lv_conf_internal.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/png/lv_png.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/png/../../../lv_conf_internal.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/gif/lv_gif.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/gif/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/qrcode/lv_qrcode.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/qrcode/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/sjpg/lv_sjpg.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/freetype/lv_freetype.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/freetype/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/rlottie/lv_rlottie.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/rlottie/../../../lvgl.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/ffmpeg/lv_ffmpeg.h \ + /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/ffmpeg/../../../lvgl.h +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_log.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/../lv_conf_internal.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/../lv_conf_kconfig.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/../../../lv_conf.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_types.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_timer.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_math.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_mem.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_async.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_anim_timeline.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_anim.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/misc/lv_printf.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/lv_hal.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/lv_hal_disp.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/lv_hal.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_draw.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../lv_conf_internal.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_style.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/../font/lv_font.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/../font/../lv_conf_internal.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/../font/lv_symbol_def.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/../font/../misc/lv_area.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/../font/../misc/../lv_conf_internal.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_color.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/../lv_conf_internal.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_assert.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_log.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_mem.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_math.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_types.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_area.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_anim.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_txt.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_printf.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_bidi.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_style_gen.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_txt.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_img_decoder.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_img_buf.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_color.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_area.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_fs.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_types.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_img_cache.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_draw_rect.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/sw/lv_draw_sw_gradient.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/sw/../../misc/lv_color.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/sw/../../misc/lv_style.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/sw/lv_draw_sw_dither.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/sw/../../core/lv_obj_pos.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/sw/../../core/../misc/lv_area.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_draw_label.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_bidi.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_draw_img.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_draw_line.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_draw_triangle.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_draw_arc.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/lv_draw_mask.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_math.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../misc/lv_color.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../misc/lv_area.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../misc/lv_ll.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../misc/lv_timer.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/lv_hal_indev.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../lv_conf_internal.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/lv_hal_tick.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../lv_conf_internal.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../misc/lv_style.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../misc/lv_types.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../misc/lv_area.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../misc/lv_color.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../misc/lv_assert.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../hal/lv_hal.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj_tree.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj_pos.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj_scroll.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../misc/lv_anim.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj_style.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../misc/lv_bidi.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj_style_gen.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj_draw.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../draw/lv_draw.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj_class.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_event.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_group.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../misc/lv_ll.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_group.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_indev.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_obj.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../hal/lv_hal_indev.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_refr.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_disp.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_theme.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/../core/lv_obj.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_theme.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/font/lv_font.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/font/lv_font_loader.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/font/lv_font_fmt_txt.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/font/lv_font.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_arc.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../lv_conf_internal.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../core/lv_obj.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_btn.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_img.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../misc/lv_fs.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../draw/lv_draw.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_label.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../font/lv_font.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../font/lv_symbol_def.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../misc/lv_txt.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_line.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_table.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_label.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_checkbox.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_bar.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../misc/lv_anim.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_btn.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_slider.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_bar.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_btnmatrix.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_dropdown.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../widgets/lv_label.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_roller.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_textarea.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_canvas.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../widgets/lv_img.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/../draw/lv_draw_img.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/widgets/lv_switch.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/draw/lv_draw.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/lv_api_map.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/lv_extra.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/lv_widgets.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/animimg/lv_animimg.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/animimg/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/animimg/../../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/calendar/../../../widgets/lv_btnmatrix.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/calendar/../../../core/lv_obj.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/chart/lv_chart.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/chart/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/keyboard/../../../widgets/lv_btnmatrix.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/list/lv_list.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/list/../../../core/lv_obj.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/list/../../layouts/flex/lv_flex.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/list/../../layouts/flex/../../../core/lv_obj.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/menu/lv_menu.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/menu/../../../core/lv_obj.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/msgbox/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/meter/lv_meter.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/meter/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/spinbox/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/spinner/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/tabview/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/tileview/../../../core/lv_obj.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/win/lv_win.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/win/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/colorwheel/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/led/lv_led.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/led/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/imgbtn/lv_imgbtn.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/imgbtn/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/span/lv_span.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/widgets/span/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/layouts/lv_layouts.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/layouts/flex/lv_flex.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/layouts/grid/lv_grid.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/layouts/grid/../../../core/lv_obj.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/themes/lv_themes.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/themes/default/lv_theme_default.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/themes/default/../../../core/lv_obj.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/themes/mono/lv_theme_mono.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/themes/mono/../../../core/lv_obj.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/themes/basic/lv_theme_basic.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/themes/basic/../../../core/lv_obj.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/others/lv_others.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/others/snapshot/lv_snapshot.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/others/snapshot/../../../lv_conf_internal.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/others/snapshot/../../../core/lv_obj.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/others/monkey/lv_monkey.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/others/monkey/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/others/gridnav/lv_gridnav.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/others/gridnav/../../../core/lv_obj.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/lv_libs.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/bmp/lv_bmp.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/bmp/../../../lv_conf_internal.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/fsdrv/lv_fsdrv.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/fsdrv/../../../lv_conf_internal.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/png/lv_png.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/png/../../../lv_conf_internal.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/gif/lv_gif.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/gif/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/qrcode/lv_qrcode.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/qrcode/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/sjpg/lv_sjpg.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/freetype/lv_freetype.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/freetype/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/rlottie/lv_rlottie.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/rlottie/../../../lvgl.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/ffmpeg/lv_ffmpeg.h: +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/ffmpeg/../../../lvgl.h: diff --git a/Debug/Core/Src/home_screen.o b/Debug/Core/Src/home_screen.o new file mode 100644 index 0000000000000000000000000000000000000000..4ab74d6471b305464d13ebdf0a6ba40d5a5881e1 GIT binary patch literal 128520 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 literal 0 HcmV?d00001 diff --git a/Debug/Core/Src/home_screen.su b/Debug/Core/Src/home_screen.su new file mode 100644 index 0000000..14f10e2 --- /dev/null +++ b/Debug/Core/Src/home_screen.su @@ -0,0 +1,2 @@ +/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_disp.h:185:20:lv_scr_load 16 static +../Core/Src/home_screen.c:10:6:Home_Screen_Gen 16 static diff --git a/Debug/Core/Src/main.cyclo b/Debug/Core/Src/main.cyclo index ff118f3..b5b9737 100644 --- a/Debug/Core/Src/main.cyclo +++ b/Debug/Core/Src/main.cyclo @@ -1,11 +1,10 @@ -/home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/hal/../draw/../misc/lv_color.h:597:26:lv_color_hex 1 /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_disp.h:162:26:lv_scr_act 1 -../Core/Src/main.c:86:1:__io_putchar 1 -../Core/Src/main.c:93:6:my_flush_cb 3 +../Core/Src/main.c:88:1:__io_putchar 1 +../Core/Src/main.c:95:6:my_flush_cb 3 ../Core/Src/main.c:109:6:touchscreen_read_callback 2 -../Core/Src/main.c:131:5:main 2 -../Core/Src/main.c:227:6:SystemClock_Config 3 -../Core/Src/main.c:266:13:MX_USART1_UART_Init 2 -../Core/Src/main.c:299:13:MX_GPIO_Init 1 -../Core/Src/main.c:369:13:MX_FSMC_Init 2 -../Core/Src/main.c:433:6:Error_Handler 1 +../Core/Src/main.c:131:5:main 1 +../Core/Src/main.c:229:6:SystemClock_Config 3 +../Core/Src/main.c:268:13:MX_USART1_UART_Init 2 +../Core/Src/main.c:301:13:MX_GPIO_Init 1 +../Core/Src/main.c:364:13:MX_FSMC_Init 2 +../Core/Src/main.c:428:6:Error_Handler 1 diff --git a/Debug/Core/Src/main.d b/Debug/Core/Src/main.d index 46e63a3..5ba07aa 100644 --- a/Debug/Core/Src/main.d +++ b/Debug/Core/Src/main.d @@ -236,7 +236,8 @@ Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \ /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/rlottie/../../../lvgl.h \ /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/ffmpeg/lv_ffmpeg.h \ /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/extra/libs/ffmpeg/../../../lvgl.h \ - ../Core/Inc/lcdio.h ../Core/Inc/ILI9341.h ../Core/Inc/ADS7843.h + ../Core/Inc/lcdio.h ../Core/Inc/ILI9341.h ../Core/Inc/ADS7843.h \ + ../Core/Inc/home_screen.h ../Core/Inc/main.h: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h: ../Core/Inc/stm32f1xx_hal_conf.h: @@ -478,3 +479,4 @@ Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \ ../Core/Inc/lcdio.h: ../Core/Inc/ILI9341.h: ../Core/Inc/ADS7843.h: +../Core/Inc/home_screen.h: diff --git a/Debug/Core/Src/main.o b/Debug/Core/Src/main.o index 6b28d189f324b0fa732322f52926bc51308c3675..e8d2c67fb720aef1cbeb5c8e6a0e4d096e8e9b5a 100644 GIT binary patch delta 266201 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 yU#-) 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

P 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 delta 268103 zcmY&h1z=Q1x1PE8&Xvt3+4#m~qYy&y00Dv%q|o9m#f!TYN?~!gG`PFFySo&3r?|Vz z`_A2^|7+jRopa{s_{^Evydk^NULQ>x6Xk6B+>_xyk)OUSk^Ri;at>%1{td@Jf=A%r zNH;tR>1a1R25FWX{tIcg8y<^voEsjGbb=e6h;))0o{V$~V@}h+R3Ovbgy~3UxZ#;d zXSw0oNawiWxk%@^;rU1xxZ#CJ7rEiZNSCn@7H*y8( zRX2PM>2)`J1L;jSd<*G6ZumCRJ8t+c(tB?BKGFwn_#x6qZul|MCvNyD(q}H%$({pv z;U>I9`pONzM*7ALzeW1a4ZlbF!3}>z`pFG{M*77Ke?|Ju4O6vJkEYs{@R8lHf>cob z6G6pCa}#u=h8wmZ^>D*hq@Hfr3#qpowjuR#!@fxU+^|2=05=?nG{_Cxkp{cr5GR08 zHxh<4+zm${jda6NNTc0w3{r<1jzt>hhU1YYxZy;kNp3g?(wuHM8EGyzoPsnr{*ir_ ziccQ=BRDTU`P^`Rqy^k?L8OJ;a2nFWZny~2qHZ`HX)!lk9BBzRoPo5Y8!m;kv>PtN zG5*TBk#b1OyWt8*Gu?1Sq?O!oWu#Ty@DE6<;$NS&16Q&Y-5d675o(#T+VT2Z6UTE+ zp1itei(iZ>tL4|9n@m~lSDNt4I`HR_GT~EJZ|S>bsJ&c-f1z#V`fTk`zRx}WOES+4@|SAG4l1EoC17G3*4 zIh5<-sL+JP{FwQZN!4D&$}USkR4Uq}>g$=Ew+wjh_%xtWr7cbVNBbXi;C&xfG~6Y@ z9Ys5qs=X<5Bu>E|{%yU~w;Wk5X}^=$bA;3~+^ zKz=1NKSM6ssA$UyfXgFaM}Ao|Uza~M{M4cp;F8FXLVgJ|KT6)xa7&AHz(tX-AiuDg zugE>o390=HR`?c!3gIy&U+O%+=`@Qe_cE2|F=37x@AG5s>_d8J;dnEr>gyY&w>098 zPmP$PXk*#Yv$6KVE~B;FR0b+@Q(ctc>~JGI($A!4I9yb83%8tynV*(@To2$PySnkr z*((*Z9ph9@EcHN|%EDhx)Y-}UGP6?F|NGCEtLafHQ}*?NL{d-=kd(FOB_?v(GXeW@ zy+K=zDPvb^Ocb)$qbx~;oRXNb@(!{J2e&t~v;~3Sy82!)QN`YmmN{QVT&;$@2RT$G zss_^r!B^3iZ|2Nb7eVc z2G~kVrE;yX!qh0gY6Q3ZL1t>Ke-ps|v@9uCdO=15P5W`CW>@lvat7J77Q8j4 z50BENe_~oI?nBc#GaCJ*GOe`>Q;b4Y45qblVY+d*zF=Bg7iMKXC9Y^pYsYD(4brs^ zd>U!XtPX9RzH3{17}`3!wK1O)BV?v^;lFd1p9Mu}OZYB`7(wO1w2b@EbdHr|$8Vfz z%lRTw8>X%0cZkPl7;I%nSR7!@Gwqh!EU*ep`^Rn8BeM)# zy6wVrkE(>-abZ@YYl_6QyDrS;QR*kq?zu33Tj%Ght`qfld0q%p9j%np{Belm#mqQ1Hk(uZRPq~T~J@Ddo*QfftTN!Ptq#-;dWoJmr} zs}hr$QXv9N$#O85+!A^DZzPeNsNvheImf`duQb~%m{CARYckzx$!*LAz)$s4nI(_e zVvJv$2qeFWC_H?j&MbvYL}yApbV*BLxg!btTZ$VWNI2IgiCHq-!ZojgqqJN2=vR$d z%DIHOvuY#8ESV-|xs z4`V)+;|24OxqwyOW=%160r0HWvK_Ogn*59>VAo{LXCeykiz(Jx&_r~eZ?$07!X{#6 z%HaDtvlf;6LxHOitR?w9AX1ypv;mWXS8{5E$lncSEh8TzgJGVzjXEmI>ys`s&+m

c5{JCYM!8~1cZ)ZyN8IqHE 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%0A@8Wl48WY6RICr-jI&CW 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

2Ts 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 z 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 delta 98201 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�LWS9!UtTuNakY+NECC#18C9AJ6bedWX8}cAd&g; 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 z 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Μ3|evSi?byj6B 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%0D_&XpGA!FK2coj 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 SVM{5X=2JjupO@i-e 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

T}P&zid#*s4qPGzOpeLrGKUK+7Mm7 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%0D*ElHt$- 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 delta 779531 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

N{*uhBR0hSy0%eiSJ_c@t7BIRQ%wC4KMUWs>*e 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̭%?Ycz8tNVYPxZ4Zw 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

lGwjfwWf;U4eYBAZZSyy@Kcs6ehh( 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 diff --git a/Debug/PSE.list b/Debug/PSE.list index 39f56d8..d81a710 100644 --- a/Debug/PSE.list +++ b/Debug/PSE.list @@ -5,47 +5,47 @@ Sections: Idx Name Size VMA LMA File off Algn 0 .isr_vector 000001e4 08000000 08000000 00010000 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA - 1 .text 00046a24 080001e4 080001e4 000101e4 2**2 + 1 .text 00046990 080001e4 080001e4 000101e4 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .rodata 00029f64 08046c08 08046c08 00056c08 2**2 + 2 .rodata 00029f50 08046b74 08046b74 00056b74 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 3 .ARM.extab 00000000 08070b6c 08070b6c 0009011c 2**0 + 3 .ARM.extab 00000000 08070ac4 08070ac4 0009011c 2**0 CONTENTS - 4 .ARM 00000008 08070b6c 08070b6c 00080b6c 2**2 + 4 .ARM 00000008 08070ac4 08070ac4 00080ac4 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 5 .preinit_array 00000000 08070b74 08070b74 0009011c 2**0 + 5 .preinit_array 00000000 08070acc 08070acc 0009011c 2**0 CONTENTS, ALLOC, LOAD, DATA - 6 .init_array 00000004 08070b74 08070b74 00080b74 2**2 + 6 .init_array 00000004 08070acc 08070acc 00080acc 2**2 CONTENTS, ALLOC, LOAD, DATA - 7 .fini_array 00000004 08070b78 08070b78 00080b78 2**2 + 7 .fini_array 00000004 08070ad0 08070ad0 00080ad0 2**2 CONTENTS, ALLOC, LOAD, DATA - 8 .data 0000011c 20000000 08070b7c 00090000 2**2 + 8 .data 0000011c 20000000 08070ad4 00090000 2**2 CONTENTS, ALLOC, LOAD, DATA - 9 .bss 00005e10 2000011c 08070c98 0009011c 2**2 + 9 .bss 00005e10 2000011c 08070bf0 0009011c 2**2 ALLOC - 10 ._user_heap_stack 00000604 20005f2c 08070c98 00095f2c 2**0 + 10 ._user_heap_stack 00000604 20005f2c 08070bf0 00095f2c 2**0 ALLOC 11 .ARM.attributes 00000029 00000000 00000000 0009011c 2**0 CONTENTS, READONLY 12 .comment 00000043 00000000 00000000 00090145 2**0 CONTENTS, READONLY - 13 .debug_info 000a9c11 00000000 00000000 00090188 2**0 + 13 .debug_info 000aa71b 00000000 00000000 00090188 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 14 .debug_abbrev 00013b22 00000000 00000000 00139d99 2**0 + 14 .debug_abbrev 00013d46 00000000 00000000 0013a8a3 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 15 .debug_aranges 00004ff8 00000000 00000000 0014d8c0 2**3 + 15 .debug_aranges 00005018 00000000 00000000 0014e5f0 2**3 CONTENTS, READONLY, DEBUGGING, OCTETS - 16 .debug_rnglists 00003fdc 00000000 00000000 001528b8 2**0 + 16 .debug_rnglists 00003fef 00000000 00000000 00153608 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 17 .debug_macro 00035873 00000000 00000000 00156894 2**0 + 17 .debug_macro 0003610a 00000000 00000000 001575f7 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 18 .debug_line 000a16d4 00000000 00000000 0018c107 2**0 + 18 .debug_line 000a4b4a 00000000 00000000 0018d701 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 19 .debug_str 000af45d 00000000 00000000 0022d7db 2**0 + 19 .debug_str 000af401 00000000 00000000 0023224b 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 20 .debug_frame 00014ebc 00000000 00000000 002dcc38 2**2 + 20 .debug_frame 00014ee4 00000000 00000000 002e164c 2**2 CONTENTS, READONLY, DEBUGGING, OCTETS - 21 .debug_line_str 0000005a 00000000 00000000 002f1af4 2**0 + 21 .debug_line_str 0000005a 00000000 00000000 002f6530 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS Disassembly of section .text: @@ -64,7 +64,7 @@ Disassembly of section .text: 80001fa: bd10 pop {r4, pc} 80001fc: 2000011c .word 0x2000011c 8000200: 00000000 .word 0x00000000 - 8000204: 08046bf0 .word 0x08046bf0 + 8000204: 08046b5c .word 0x08046b5c 08000208 : 8000208: b508 push {r3, lr} @@ -76,7 +76,7 @@ Disassembly of section .text: 8000216: bd08 pop {r3, pc} 8000218: 00000000 .word 0x00000000 800021c: 20000120 .word 0x20000120 - 8000220: 08046bf0 .word 0x08046bf0 + 8000220: 08046b5c .word 0x08046b5c 08000224 : 8000224: f810 2b01 ldrb.w r2, [r0], #1 @@ -418,7 +418,7 @@ uint16_t ADS7843_GetData(ADS7843_Def* def, uint8_t control){ 800057c: 889b ldrh r3, [r3, #4] 800057e: 2200 movs r2, #0 8000580: 4619 mov r1, r3 - 8000582: f001 f8d6 bl 8001732 + 8000582: f001 f87a bl 800167a for (uint8_t j = 0x80; j; j >>= 1) { 8000586: 2380 movs r3, #128 ; 0x80 @@ -431,7 +431,7 @@ uint16_t ADS7843_GetData(ADS7843_Def* def, uint8_t control){ 8000592: 899b ldrh r3, [r3, #12] 8000594: 2200 movs r2, #0 8000596: 4619 mov r1, r3 - 8000598: f001 f8cb bl 8001732 + 8000598: f001 f86f bl 800167a HAL_GPIO_WritePin(def->MOSI_GPIO_Port, def->MOSI_GPIO_Pin, control & j); 800059c: 687b ldr r3, [r7, #4] 800059e: 6918 ldr r0, [r3, #16] @@ -442,7 +442,7 @@ uint16_t ADS7843_GetData(ADS7843_Def* def, uint8_t control){ 80005a8: 4013 ands r3, r2 80005aa: b2db uxtb r3, r3 80005ac: 461a mov r2, r3 - 80005ae: f001 f8c0 bl 8001732 + 80005ae: f001 f864 bl 800167a HAL_GPIO_WritePin(def->SCK_GPIO_Port, def->SCK_GPIO_Pin, GPIO_PIN_SET); 80005b2: 687b ldr r3, [r7, #4] 80005b4: 6898 ldr r0, [r3, #8] @@ -450,7 +450,7 @@ uint16_t ADS7843_GetData(ADS7843_Def* def, uint8_t control){ 80005b8: 899b ldrh r3, [r3, #12] 80005ba: 2201 movs r2, #1 80005bc: 4619 mov r1, r3 - 80005be: f001 f8b8 bl 8001732 + 80005be: f001 f85c bl 800167a for (uint8_t j = 0x80; j; j >>= 1) { 80005c2: 7b7b ldrb r3, [r7, #13] 80005c4: 085b lsrs r3, r3, #1 @@ -471,7 +471,7 @@ uint16_t ADS7843_GetData(ADS7843_Def* def, uint8_t control){ 80005dc: 899b ldrh r3, [r3, #12] 80005de: 2200 movs r2, #0 80005e0: 4619 mov r1, r3 - 80005e2: f001 f8a6 bl 8001732 + 80005e2: f001 f84a bl 800167a if (HAL_GPIO_ReadPin(def->MISO_GPIO_Port, def->MISO_GPIO_Pin) == GPIO_PIN_SET) data |= j; 80005e6: 687b ldr r3, [r7, #4] 80005e8: 699a ldr r2, [r3, #24] @@ -479,7 +479,7 @@ uint16_t ADS7843_GetData(ADS7843_Def* def, uint8_t control){ 80005ec: 8b9b ldrh r3, [r3, #28] 80005ee: 4619 mov r1, r3 80005f0: 4610 mov r0, r2 - 80005f2: f001 f887 bl 8001704 + 80005f2: f001 f82b bl 800164c 80005f6: 4603 mov r3, r0 80005f8: 2b01 cmp r3, #1 80005fa: d103 bne.n 8000604 @@ -494,7 +494,7 @@ uint16_t ADS7843_GetData(ADS7843_Def* def, uint8_t control){ 800060a: 899b ldrh r3, [r3, #12] 800060c: 2201 movs r2, #1 800060e: 4619 mov r1, r3 - 8000610: f001 f88f bl 8001732 + 8000610: f001 f833 bl 800167a for (uint16_t j = 0x8000; j; j >>= 1) { 8000614: 897b ldrh r3, [r7, #10] 8000616: 085b lsrs r3, r3, #1 @@ -510,7 +510,7 @@ uint16_t ADS7843_GetData(ADS7843_Def* def, uint8_t control){ 8000626: 899b ldrh r3, [r3, #12] 8000628: 2200 movs r2, #0 800062a: 4619 mov r1, r3 - 800062c: f001 f881 bl 8001732 + 800062c: f001 f825 bl 800167a data >>= 4; 8000630: 89fb ldrh r3, [r7, #14] 8000632: 091b lsrs r3, r3, #4 @@ -523,7 +523,7 @@ uint16_t ADS7843_GetData(ADS7843_Def* def, uint8_t control){ 800063c: 889b ldrh r3, [r3, #4] 800063e: 2200 movs r2, #0 8000640: 4619 mov r1, r3 - 8000642: f001 f876 bl 8001732 + 8000642: f001 f81a bl 800167a return data; 8000646: 89fb ldrh r3, [r7, #14] @@ -547,7 +547,7 @@ GPIO_PinState ADS7843_Touched(ADS7843_Def* def){ 800065e: 8c9b ldrh r3, [r3, #36] ; 0x24 8000660: 4619 mov r1, r3 8000662: 4610 mov r0, r2 - 8000664: f001 f84e bl 8001704 + 8000664: f000 fff2 bl 800164c 8000668: 4603 mov r3, r0 800066a: 2b00 cmp r3, #0 800066c: bf0c ite eq @@ -683,115 +683,115 @@ void ILI9341_Init(void) { /* Sleep In Command */ LCD_IO_WriteReg(ILI9341_SLEEP_IN); 8000734: 2010 movs r0, #16 - 8000736: f000 f8a9 bl 800088c + 8000736: f000 f8cd bl 80008d4 /* SW Reset Command */ LCD_IO_WriteReg(ILI9341_SWRESET); 800073a: 2001 movs r0, #1 - 800073c: f000 f8a6 bl 800088c + 800073c: f000 f8ca bl 80008d4 /* Wait for 200ms */ LCD_Delay(200); 8000740: 20c8 movs r0, #200 ; 0xc8 - 8000742: f000 fd43 bl 80011cc + 8000742: f000 fce7 bl 8001114 /* Normal display for Driver Down side */ LCD_IO_WriteReg(ILI9341_NORMAL_DISPLAY); 8000746: 2036 movs r0, #54 ; 0x36 - 8000748: f000 f8a0 bl 800088c + 8000748: f000 f8c4 bl 80008d4 LCD_IO_WriteData(0xE8); // MY and ML flipped + bit 3 RGB and BGR changed. 800074c: 20e8 movs r0, #232 ; 0xe8 - 800074e: f000 f8ad bl 80008ac + 800074e: f000 f8d1 bl 80008f4 /* Color mode 16bits/pixel */ LCD_IO_WriteReg(ILI9341_COLOR_MODE); 8000752: 203a movs r0, #58 ; 0x3a - 8000754: f000 f89a bl 800088c + 8000754: f000 f8be bl 80008d4 LCD_IO_WriteData(0x55); 8000758: 2055 movs r0, #85 ; 0x55 - 800075a: f000 f8a7 bl 80008ac + 800075a: f000 f8cb bl 80008f4 /* Set Column address CASET */ LCD_IO_WriteReg(ILI9341_CASET); 800075e: 202a movs r0, #42 ; 0x2a - 8000760: f000 f894 bl 800088c + 8000760: f000 f8b8 bl 80008d4 LCD_IO_WriteData(0x00); 8000764: 2000 movs r0, #0 - 8000766: f000 f8a1 bl 80008ac + 8000766: f000 f8c5 bl 80008f4 LCD_IO_WriteData(0x00); 800076a: 2000 movs r0, #0 - 800076c: f000 f89e bl 80008ac + 800076c: f000 f8c2 bl 80008f4 LCD_IO_WriteData(0x01); 8000770: 2001 movs r0, #1 - 8000772: f000 f89b bl 80008ac + 8000772: f000 f8bf bl 80008f4 LCD_IO_WriteData(0x3F); 8000776: 203f movs r0, #63 ; 0x3f - 8000778: f000 f898 bl 80008ac + 8000778: f000 f8bc bl 80008f4 /* Set Row address RASET */ LCD_IO_WriteReg(ILI9341_RASET); 800077c: 202b movs r0, #43 ; 0x2b - 800077e: f000 f885 bl 800088c + 800077e: f000 f8a9 bl 80008d4 LCD_IO_WriteData(0x00); 8000782: 2000 movs r0, #0 - 8000784: f000 f892 bl 80008ac + 8000784: f000 f8b6 bl 80008f4 LCD_IO_WriteData(0x00); 8000788: 2000 movs r0, #0 - 800078a: f000 f88f bl 80008ac + 800078a: f000 f8b3 bl 80008f4 LCD_IO_WriteData(0x00); 800078e: 2000 movs r0, #0 - 8000790: f000 f88c bl 80008ac + 8000790: f000 f8b0 bl 80008f4 LCD_IO_WriteData(0xEF); 8000794: 20ef movs r0, #239 ; 0xef - 8000796: f000 f889 bl 80008ac + 8000796: f000 f8ad bl 80008f4 /* VCOM setting */ LCD_IO_WriteReg(ILI9341_VCOM_CTRL1); 800079a: 20c5 movs r0, #197 ; 0xc5 - 800079c: f000 f876 bl 800088c + 800079c: f000 f89a bl 80008d4 LCD_IO_WriteData(0x3E); 80007a0: 203e movs r0, #62 ; 0x3e - 80007a2: f000 f883 bl 80008ac + 80007a2: f000 f8a7 bl 80008f4 LCD_IO_WriteData(0x28); 80007a6: 2028 movs r0, #40 ; 0x28 - 80007a8: f000 f880 bl 80008ac + 80007a8: f000 f8a4 bl 80008f4 LCD_IO_WriteReg(ILI9341_VCOM_CTRL2); 80007ac: 20c7 movs r0, #199 ; 0xc7 - 80007ae: f000 f86d bl 800088c + 80007ae: f000 f891 bl 80008d4 LCD_IO_WriteData(0x86); 80007b2: 2086 movs r0, #134 ; 0x86 - 80007b4: f000 f87a bl 80008ac + 80007b4: f000 f89e bl 80008f4 /* Frame Rate Control in normal mode */ LCD_IO_WriteReg(ILI9341_FR_CTRL); 80007b8: 20b1 movs r0, #177 ; 0xb1 - 80007ba: f000 f867 bl 800088c + 80007ba: f000 f88b bl 80008d4 LCD_IO_WriteData(0x00); 80007be: 2000 movs r0, #0 - 80007c0: f000 f874 bl 80008ac + 80007c0: f000 f898 bl 80008f4 LCD_IO_WriteData(0x18); 80007c4: 2018 movs r0, #24 - 80007c6: f000 f871 bl 80008ac + 80007c6: f000 f895 bl 80008f4 /* Power Control */ LCD_IO_WriteReg(ILI9341_POWER_CTRL1); 80007ca: 20c0 movs r0, #192 ; 0xc0 - 80007cc: f000 f85e bl 800088c + 80007cc: f000 f882 bl 80008d4 LCD_IO_WriteData(0x23); 80007d0: 2023 movs r0, #35 ; 0x23 - 80007d2: f000 f86b bl 80008ac + 80007d2: f000 f88f bl 80008f4 LCD_IO_WriteReg(ILI9341_POWER_CTRL2); 80007d6: 20c1 movs r0, #193 ; 0xc1 - 80007d8: f000 f858 bl 800088c + 80007d8: f000 f87c bl 80008d4 LCD_IO_WriteData(0x10); 80007dc: 2010 movs r0, #16 - 80007de: f000 f865 bl 80008ac + 80007de: f000 f889 bl 80008f4 /* Sleep Out Command */ LCD_IO_WriteReg(ILI9341_SLEEP_OUT); 80007e2: 2011 movs r0, #17 - 80007e4: f000 f852 bl 800088c + 80007e4: f000 f876 bl 80008d4 /* Wait for 120ms */ LCD_Delay(120); 80007e8: 2078 movs r0, #120 ; 0x78 - 80007ea: f000 fcef bl 80011cc + 80007ea: f000 fc93 bl 8001114 /* Display ON command */ ILI9341_DisplayOn(); @@ -808,12 +808,12 @@ void ILI9341_DisplayOn(void) { /* Display ON command */ LCD_IO_WriteReg(ILI9341_DISPLAY_ON); 80007fa: 2029 movs r0, #41 ; 0x29 - 80007fc: f000 f846 bl 800088c + 80007fc: f000 f86a bl 80008d4 /* Sleep Out command */ LCD_IO_WriteReg(ILI9341_SLEEP_OUT); 8000800: 2011 movs r0, #17 - 8000802: f000 f843 bl 800088c + 8000802: f000 f867 bl 80008d4 } 8000806: bf00 nop 8000808: bd80 pop {r7, pc} @@ -825,7 +825,7 @@ void ILI9341_WriteRam(void) { 800080c: af00 add r7, sp, #0 LCD_IO_WriteReg(ILI9341_WRITE_RAM); 800080e: 202c movs r0, #44 ; 0x2c - 8000810: f000 f83c bl 800088c + 8000810: f000 f860 bl 80008d4 } 8000814: bf00 nop 8000816: bd80 pop {r7, pc} @@ -844,261 +844,252 @@ void ILI9341_SetCursor(uint16_t Xpos, uint16_t Ypos) { /* CASET: Comumn Addrses Set */ LCD_IO_WriteReg(ILI9341_CASET); 8000828: 202a movs r0, #42 ; 0x2a - 800082a: f000 f82f bl 800088c + 800082a: f000 f853 bl 80008d4 LCD_IO_WriteData((Xpos >> 8) & 0xFF); 800082e: 88fb ldrh r3, [r7, #6] 8000830: 0a1b lsrs r3, r3, #8 8000832: b29b uxth r3, r3 8000834: 4618 mov r0, r3 - 8000836: f000 f839 bl 80008ac + 8000836: f000 f85d bl 80008f4 LCD_IO_WriteData(Xpos & 0xFF); 800083a: 88fb ldrh r3, [r7, #6] 800083c: b2db uxtb r3, r3 800083e: b29b uxth r3, r3 8000840: 4618 mov r0, r3 - 8000842: f000 f833 bl 80008ac + 8000842: f000 f857 bl 80008f4 LCD_IO_WriteData(0x01); 8000846: 2001 movs r0, #1 - 8000848: f000 f830 bl 80008ac + 8000848: f000 f854 bl 80008f4 LCD_IO_WriteData(0x3F); 800084c: 203f movs r0, #63 ; 0x3f - 800084e: f000 f82d bl 80008ac + 800084e: f000 f851 bl 80008f4 /* RASET: Row Addrses Set */ LCD_IO_WriteReg(ILI9341_RASET); 8000852: 202b movs r0, #43 ; 0x2b - 8000854: f000 f81a bl 800088c + 8000854: f000 f83e bl 80008d4 LCD_IO_WriteData((Ypos >> 8) & 0xFF); 8000858: 88bb ldrh r3, [r7, #4] 800085a: 0a1b lsrs r3, r3, #8 800085c: b29b uxth r3, r3 800085e: 4618 mov r0, r3 - 8000860: f000 f824 bl 80008ac + 8000860: f000 f848 bl 80008f4 LCD_IO_WriteData(Ypos & 0xFF); 8000864: 88bb ldrh r3, [r7, #4] 8000866: b2db uxtb r3, r3 8000868: b29b uxth r3, r3 800086a: 4618 mov r0, r3 - 800086c: f000 f81e bl 80008ac + 800086c: f000 f842 bl 80008f4 LCD_IO_WriteData(0x00); 8000870: 2000 movs r0, #0 - 8000872: f000 f81b bl 80008ac + 8000872: f000 f83f bl 80008f4 LCD_IO_WriteData(0xEF); 8000876: 20ef movs r0, #239 ; 0xef - 8000878: f000 f818 bl 80008ac + 8000878: f000 f83c bl 80008f4 LCD_IO_WriteReg(ILI9341_WRITE_RAM); 800087c: 202c movs r0, #44 ; 0x2c - 800087e: f000 f805 bl 800088c + 800087e: f000 f829 bl 80008d4 } 8000882: bf00 nop 8000884: 3708 adds r7, #8 8000886: 46bd mov sp, r7 8000888: bd80 pop {r7, pc} - ... -0800088c : +0800088a : +{ + return lv_disp_get_layer_sys(lv_disp_get_default()); +} + +static inline void lv_scr_load(lv_obj_t * scr) +{ + 800088a: b580 push {r7, lr} + 800088c: b082 sub sp, #8 + 800088e: af00 add r7, sp, #0 + 8000890: 6078 str r0, [r7, #4] + lv_disp_load_scr(scr); + 8000892: 6878 ldr r0, [r7, #4] + 8000894: f001 fd46 bl 8002324 +} + 8000898: bf00 nop + 800089a: 3708 adds r7, #8 + 800089c: 46bd mov sp, r7 + 800089e: bd80 pop {r7, pc} + +080008a0 : + * Author: leo + */ + +#include "lvgl.h" + +void Home_Screen_Gen(void){ + 80008a0: b580 push {r7, lr} + 80008a2: b082 sub sp, #8 + 80008a4: af00 add r7, sp, #0 + lv_obj_t* scr = lv_obj_create(NULL); + 80008a6: 2000 movs r0, #0 + 80008a8: f005 fe3c bl 8006524 + 80008ac: 6078 str r0, [r7, #4] + lv_obj_set_layout(scr, LV_LAYOUT_GRID); + 80008ae: 4b08 ldr r3, [pc, #32] ; (80008d0 ) + 80008b0: 681b ldr r3, [r3, #0] + 80008b2: 4619 mov r1, r3 + 80008b4: 6878 ldr r0, [r7, #4] + 80008b6: f008 ffa7 bl 8009808 + + lv_obj_t* run_button = lv_btn_create(scr); + 80008ba: 6878 ldr r0, [r7, #4] + 80008bc: f038 fe0e bl 80394dc + 80008c0: 6038 str r0, [r7, #0] + + lv_scr_load(scr); + 80008c2: 6878 ldr r0, [r7, #4] + 80008c4: f7ff ffe1 bl 800088a +} + 80008c8: bf00 nop + 80008ca: 3708 adds r7, #8 + 80008cc: 46bd mov sp, r7 + 80008ce: bd80 pop {r7, pc} + 80008d0: 20001c34 .word 0x20001c34 + +080008d4 : data |= (*LCD_RAM & 0xFF); } return data; } void LCD_IO_WriteReg(uint16_t Reg) { - 800088c: b480 push {r7} - 800088e: b083 sub sp, #12 - 8000890: af00 add r7, sp, #0 - 8000892: 4603 mov r3, r0 - 8000894: 80fb strh r3, [r7, #6] + 80008d4: b480 push {r7} + 80008d6: b083 sub sp, #12 + 80008d8: af00 add r7, sp, #0 + 80008da: 4603 mov r3, r0 + 80008dc: 80fb strh r3, [r7, #6] *LCD_REG = Reg; - 8000896: 4b04 ldr r3, [pc, #16] ; (80008a8 ) - 8000898: 681b ldr r3, [r3, #0] - 800089a: 88fa ldrh r2, [r7, #6] - 800089c: 801a strh r2, [r3, #0] + 80008de: 4b04 ldr r3, [pc, #16] ; (80008f0 ) + 80008e0: 681b ldr r3, [r3, #0] + 80008e2: 88fa ldrh r2, [r7, #6] + 80008e4: 801a strh r2, [r3, #0] } - 800089e: bf00 nop - 80008a0: 370c adds r7, #12 - 80008a2: 46bd mov sp, r7 - 80008a4: bc80 pop {r7} - 80008a6: 4770 bx lr - 80008a8: 20000000 .word 0x20000000 + 80008e6: bf00 nop + 80008e8: 370c adds r7, #12 + 80008ea: 46bd mov sp, r7 + 80008ec: bc80 pop {r7} + 80008ee: 4770 bx lr + 80008f0: 20000000 .word 0x20000000 -080008ac : +080008f4 : void LCD_IO_WriteData(uint16_t RegValue) { - 80008ac: b480 push {r7} - 80008ae: b083 sub sp, #12 - 80008b0: af00 add r7, sp, #0 - 80008b2: 4603 mov r3, r0 - 80008b4: 80fb strh r3, [r7, #6] + 80008f4: b480 push {r7} + 80008f6: b083 sub sp, #12 + 80008f8: af00 add r7, sp, #0 + 80008fa: 4603 mov r3, r0 + 80008fc: 80fb strh r3, [r7, #6] *LCD_RAM = RegValue; - 80008b6: 4b04 ldr r3, [pc, #16] ; (80008c8 ) - 80008b8: 681b ldr r3, [r3, #0] - 80008ba: 88fa ldrh r2, [r7, #6] - 80008bc: 801a strh r2, [r3, #0] + 80008fe: 4b04 ldr r3, [pc, #16] ; (8000910 ) + 8000900: 681b ldr r3, [r3, #0] + 8000902: 88fa ldrh r2, [r7, #6] + 8000904: 801a strh r2, [r3, #0] } - 80008be: bf00 nop - 80008c0: 370c adds r7, #12 - 80008c2: 46bd mov sp, r7 - 80008c4: bc80 pop {r7} - 80008c6: 4770 bx lr - 80008c8: 20000004 .word 0x20000004 + 8000906: bf00 nop + 8000908: 370c adds r7, #12 + 800090a: 46bd mov sp, r7 + 800090c: bc80 pop {r7} + 800090e: 4770 bx lr + 8000910: 20000004 .word 0x20000004 -080008cc : +08000914 : { - return _LV_COLOR_MAKE_TYPE_HELPER LV_COLOR_MAKE(r, g, b); -} - -static inline lv_color_t lv_color_hex(uint32_t c) -{ - 80008cc: b480 push {r7} - 80008ce: b085 sub sp, #20 - 80008d0: af00 add r7, sp, #0 - 80008d2: 6078 str r0, [r7, #4] - r = ((c & 0xF80000) >> 8) - g = ((c & 0xFC00) >> 5) - b = ((c & 0xFF) >> 3) - rgb565 = r | g | b - That's 3 mask, 3 bitshifts and 2 or operations */ - r.full = (uint16_t)(((c & 0xF80000) >> 8) | ((c & 0xFC00) >> 5) | ((c & 0xFF) >> 3)); - 80008d4: 687b ldr r3, [r7, #4] - 80008d6: 0a1b lsrs r3, r3, #8 - 80008d8: b29b uxth r3, r3 - 80008da: f423 63ff bic.w r3, r3, #2040 ; 0x7f8 - 80008de: f023 0307 bic.w r3, r3, #7 - 80008e2: b29a uxth r2, r3 - 80008e4: 687b ldr r3, [r7, #4] - 80008e6: 095b lsrs r3, r3, #5 - 80008e8: b29b uxth r3, r3 - 80008ea: f403 63fc and.w r3, r3, #2016 ; 0x7e0 - 80008ee: b29b uxth r3, r3 - 80008f0: 4313 orrs r3, r2 - 80008f2: b29a uxth r2, r3 - 80008f4: 687b ldr r3, [r7, #4] - 80008f6: 08db lsrs r3, r3, #3 - 80008f8: b29b uxth r3, r3 - 80008fa: f003 031f and.w r3, r3, #31 - 80008fe: b29b uxth r3, r3 - 8000900: 4313 orrs r3, r2 - 8000902: b29b uxth r3, r3 - 8000904: 81bb strh r3, [r7, #12] -#else - /* We want: rrrr rrrr GGGg gggg bbbb bbbb => gggb bbbb rrrr rGGG */ - r.full = (uint16_t)(((c & 0xF80000) >> 16) | ((c & 0xFC00) >> 13) | ((c & 0x1C00) << 3) | ((c & 0xF8) << 5)); -#endif - return r; - 8000906: 89bb ldrh r3, [r7, #12] - r.full = c | 0xFF000000; - return r; -#else /*LV_COLOR_DEPTH == 8*/ - return lv_color_make((uint8_t)((c >> 16) & 0xFF), (uint8_t)((c >> 8) & 0xFF), (uint8_t)(c & 0xFF)); -#endif -} - 8000908: 4618 mov r0, r3 - 800090a: 3714 adds r7, #20 - 800090c: 46bd mov sp, r7 - 800090e: bc80 pop {r7} - 8000910: 4770 bx lr - -08000912 : -/** - * Get the active screen of the default display - * @return pointer to the active screen - */ -static inline lv_obj_t * lv_scr_act(void) -{ - 8000912: b580 push {r7, lr} - 8000914: af00 add r7, sp, #0 + 8000914: b580 push {r7, lr} + 8000916: af00 add r7, sp, #0 return lv_disp_get_scr_act(lv_disp_get_default()); - 8000916: f02f fdd9 bl 80304cc - 800091a: 4603 mov r3, r0 - 800091c: 4618 mov r0, r3 - 800091e: f001 fd4b bl 80023b8 - 8000922: 4603 mov r3, r0 + 8000918: f02f fd8e bl 8030438 + 800091c: 4603 mov r3, r0 + 800091e: 4618 mov r0, r3 + 8000920: f001 fcd6 bl 80022d0 + 8000924: 4603 mov r3, r0 } - 8000924: 4618 mov r0, r3 - 8000926: bd80 pop {r7, pc} + 8000926: 4618 mov r0, r3 + 8000928: bd80 pop {r7, pc} -08000928 : +0800092a : HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, HAL_MAX_DELAY); return ch; } - +// LVGL screen update function void my_flush_cb(lv_disp_drv_t * disp, const lv_area_t * area, lv_color_t * buf){ - 8000928: b580 push {r7, lr} - 800092a: b086 sub sp, #24 - 800092c: af00 add r7, sp, #0 - 800092e: 60f8 str r0, [r7, #12] - 8000930: 60b9 str r1, [r7, #8] - 8000932: 607a str r2, [r7, #4] + 800092a: b580 push {r7, lr} + 800092c: b086 sub sp, #24 + 800092e: af00 add r7, sp, #0 + 8000930: 60f8 str r0, [r7, #12] + 8000932: 60b9 str r1, [r7, #8] + 8000934: 607a str r2, [r7, #4] int32_t x, y; for(y = area->y1; y <= area->y2; y++) { - 8000934: 68bb ldr r3, [r7, #8] - 8000936: f9b3 3002 ldrsh.w r3, [r3, #2] - 800093a: 613b str r3, [r7, #16] - 800093c: e025 b.n 800098a + 8000936: 68bb ldr r3, [r7, #8] + 8000938: f9b3 3002 ldrsh.w r3, [r3, #2] + 800093c: 613b str r3, [r7, #16] + 800093e: e025 b.n 800098c ILI9341_SetCursor(area->x1,y); - 800093e: 68bb ldr r3, [r7, #8] - 8000940: f9b3 3000 ldrsh.w r3, [r3] - 8000944: b29b uxth r3, r3 - 8000946: 693a ldr r2, [r7, #16] - 8000948: b292 uxth r2, r2 - 800094a: 4611 mov r1, r2 - 800094c: 4618 mov r0, r3 - 800094e: f7ff ff63 bl 8000818 + 8000940: 68bb ldr r3, [r7, #8] + 8000942: f9b3 3000 ldrsh.w r3, [r3] + 8000946: b29b uxth r3, r3 + 8000948: 693a ldr r2, [r7, #16] + 800094a: b292 uxth r2, r2 + 800094c: 4611 mov r1, r2 + 800094e: 4618 mov r0, r3 + 8000950: f7ff ff62 bl 8000818 ILI9341_WriteRam(); - 8000952: f7ff ff5a bl 800080a - for(x = area->x1; x <= area->x2; x++) { - 8000956: 68bb ldr r3, [r7, #8] - 8000958: f9b3 3000 ldrsh.w r3, [r3] - 800095c: 617b str r3, [r7, #20] - 800095e: e00a b.n 8000976 - LCD_IO_WriteData(*(uint16_t*)buf); - 8000960: 687b ldr r3, [r7, #4] - 8000962: 881b ldrh r3, [r3, #0] - 8000964: 4618 mov r0, r3 - 8000966: f7ff ffa1 bl 80008ac - buf++; - 800096a: 687b ldr r3, [r7, #4] - 800096c: 3302 adds r3, #2 - 800096e: 607b str r3, [r7, #4] - for(x = area->x1; x <= area->x2; x++) { - 8000970: 697b ldr r3, [r7, #20] - 8000972: 3301 adds r3, #1 - 8000974: 617b str r3, [r7, #20] - 8000976: 68bb ldr r3, [r7, #8] - 8000978: f9b3 3004 ldrsh.w r3, [r3, #4] - 800097c: 461a mov r2, r3 - 800097e: 697b ldr r3, [r7, #20] - 8000980: 4293 cmp r3, r2 - 8000982: dded ble.n 8000960 + 8000954: f7ff ff59 bl 800080a + for(x = area->x1; x <= area->x2; x++) { + 8000958: 68bb ldr r3, [r7, #8] + 800095a: f9b3 3000 ldrsh.w r3, [r3] + 800095e: 617b str r3, [r7, #20] + 8000960: e00a b.n 8000978 + LCD_IO_WriteData(*(uint16_t*)buf); + 8000962: 687b ldr r3, [r7, #4] + 8000964: 881b ldrh r3, [r3, #0] + 8000966: 4618 mov r0, r3 + 8000968: f7ff ffc4 bl 80008f4 + buf++; + 800096c: 687b ldr r3, [r7, #4] + 800096e: 3302 adds r3, #2 + 8000970: 607b str r3, [r7, #4] + for(x = area->x1; x <= area->x2; x++) { + 8000972: 697b ldr r3, [r7, #20] + 8000974: 3301 adds r3, #1 + 8000976: 617b str r3, [r7, #20] + 8000978: 68bb ldr r3, [r7, #8] + 800097a: f9b3 3004 ldrsh.w r3, [r3, #4] + 800097e: 461a mov r2, r3 + 8000980: 697b ldr r3, [r7, #20] + 8000982: 4293 cmp r3, r2 + 8000984: dded ble.n 8000962 for(y = area->y1; y <= area->y2; y++) { - 8000984: 693b ldr r3, [r7, #16] - 8000986: 3301 adds r3, #1 - 8000988: 613b str r3, [r7, #16] - 800098a: 68bb ldr r3, [r7, #8] - 800098c: f9b3 3006 ldrsh.w r3, [r3, #6] - 8000990: 461a mov r2, r3 - 8000992: 693b ldr r3, [r7, #16] - 8000994: 4293 cmp r3, r2 - 8000996: ddd2 ble.n 800093e - } + 8000986: 693b ldr r3, [r7, #16] + 8000988: 3301 adds r3, #1 + 800098a: 613b str r3, [r7, #16] + 800098c: 68bb ldr r3, [r7, #8] + 800098e: f9b3 3006 ldrsh.w r3, [r3, #6] + 8000992: 461a mov r2, r3 + 8000994: 693b ldr r3, [r7, #16] + 8000996: 4293 cmp r3, r2 + 8000998: ddd2 ble.n 8000940 + } } - - /* IMPORTANT!!! - * Inform LVGL that you are ready with the flushing and buf is not used anymore*/ lv_disp_flush_ready(disp); - 8000998: 68f8 ldr r0, [r7, #12] - 800099a: f02f fe07 bl 80305ac + 800099a: 68f8 ldr r0, [r7, #12] + 800099c: f02f fdbc bl 8030518 } - 800099e: bf00 nop - 80009a0: 3718 adds r7, #24 - 80009a2: 46bd mov sp, r7 - 80009a4: bd80 pop {r7, pc} - ... + 80009a0: bf00 nop + 80009a2: 3718 adds r7, #24 + 80009a4: 46bd mov sp, r7 + 80009a6: bd80 pop {r7, pc} 080009a8 : +// LVGL input update function void touchscreen_read_callback(lv_indev_drv_t * drv, lv_indev_data_t*data){ 80009a8: b580 push {r7, lr} 80009aa: b082 sub sp, #8 @@ -1162,14635 +1153,14677 @@ void touchscreen_read_callback(lv_indev_drv_t * drv, lv_indev_data_t*data){ */ int main(void) { - 8000a04: b5f0 push {r4, r5, r6, r7, lr} - 8000a06: b0a5 sub sp, #148 ; 0x94 - 8000a08: af02 add r7, sp, #8 + 8000a04: b580 push {r7, lr} + 8000a06: b0a0 sub sp, #128 ; 0x80 + 8000a08: af00 add r7, sp, #0 /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); - 8000a0a: f000 fb7d bl 8001108 + 8000a0a: f000 fb21 bl 8001050 /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); - 8000a0e: f000 f8d7 bl 8000bc0 + 8000a0e: f000 f889 bl 8000b24 /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); - 8000a12: f000 f941 bl 8000c98 + 8000a12: f000 f8f3 bl 8000bfc MX_FSMC_Init(); - 8000a16: f000 f9fb bl 8000e10 + 8000a16: f000 f99f bl 8000d58 MX_USART1_UART_Init(); - 8000a1a: f000 f913 bl 8000c44 + 8000a1a: f000 f8c5 bl 8000ba8 /* USER CODE BEGIN 2 */ + // Reset the LCD to start clean HAL_GPIO_WritePin(LCD_RST_GPIO_Port, LCD_RST_Pin, GPIO_PIN_RESET); 8000a1e: 2200 movs r2, #0 8000a20: 2110 movs r1, #16 - 8000a22: 485c ldr r0, [pc, #368] ; (8000b94 ) - 8000a24: f000 fe85 bl 8001732 - HAL_Delay(500); - 8000a28: f44f 70fa mov.w r0, #500 ; 0x1f4 - 8000a2c: f000 fbce bl 80011cc + 8000a22: 4838 ldr r0, [pc, #224] ; (8000b04 ) + 8000a24: f000 fe29 bl 800167a + HAL_Delay(5); + 8000a28: 2005 movs r0, #5 + 8000a2a: f000 fb73 bl 8001114 HAL_GPIO_WritePin(LCD_RST_GPIO_Port, LCD_RST_Pin, GPIO_PIN_SET); - 8000a30: 2201 movs r2, #1 - 8000a32: 2110 movs r1, #16 - 8000a34: 4857 ldr r0, [pc, #348] ; (8000b94 ) - 8000a36: f000 fe7c bl 8001732 - HAL_Delay(500); - 8000a3a: f44f 70fa mov.w r0, #500 ; 0x1f4 - 8000a3e: f000 fbc5 bl 80011cc + 8000a2e: 2201 movs r2, #1 + 8000a30: 2110 movs r1, #16 + 8000a32: 4834 ldr r0, [pc, #208] ; (8000b04 ) + 8000a34: f000 fe21 bl 800167a + HAL_Delay(5); + 8000a38: 2005 movs r0, #5 + 8000a3a: f000 fb6b bl 8001114 + // Initialise the LCD driver ILI9341_Init(); - 8000a42: f7ff fe75 bl 8000730 + 8000a3e: f7ff fe77 bl 8000730 - //Initialise LVGL UI library + // Initialise LVGL UI library lv_init(); - 8000a46: f005 fd51 bl 80064ec + 8000a42: f005 fd1d bl 8006480 - /*Initialize `disp_buf` with the buffer(s). With only one buffer use NULL instead buf_2 */ + // Add the display buffer to LVGL lv_disp_draw_buf_init(&disp_buf, buf_1, NULL, BUFF_SIZE); - 8000a4a: f44f 6348 mov.w r3, #3200 ; 0xc80 - 8000a4e: 2200 movs r2, #0 - 8000a50: 4951 ldr r1, [pc, #324] ; (8000b98 ) - 8000a52: 4852 ldr r0, [pc, #328] ; (8000b9c ) - 8000a54: f02f fc36 bl 80302c4 + 8000a46: f44f 6348 mov.w r3, #3200 ; 0xc80 + 8000a4a: 2200 movs r2, #0 + 8000a4c: 492e ldr r1, [pc, #184] ; (8000b08 ) + 8000a4e: 482f ldr r0, [pc, #188] ; (8000b0c ) + 8000a50: f02f fbee bl 8030230 + // initilize LVGL display lv_disp_drv_t disp_drv; lv_disp_drv_init(&disp_drv); - 8000a58: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000a5c: 4618 mov r0, r3 - 8000a5e: f02f fbef bl 8030240 + 8000a54: f107 0324 add.w r3, r7, #36 ; 0x24 + 8000a58: 4618 mov r0, r3 + 8000a5a: f02f fba7 bl 80301ac disp_drv.draw_buf = &disp_buf; - 8000a62: 4b4e ldr r3, [pc, #312] ; (8000b9c ) - 8000a64: 633b str r3, [r7, #48] ; 0x30 + 8000a5e: 4b2b ldr r3, [pc, #172] ; (8000b0c ) + 8000a60: 633b str r3, [r7, #48] ; 0x30 disp_drv.hor_res = LCD_WIDTH; - 8000a66: f44f 73a0 mov.w r3, #320 ; 0x140 - 8000a6a: 84bb strh r3, [r7, #36] ; 0x24 + 8000a62: f44f 73a0 mov.w r3, #320 ; 0x140 + 8000a66: 84bb strh r3, [r7, #36] ; 0x24 disp_drv.ver_res = LCD_HEIGHT; - 8000a6c: 23f0 movs r3, #240 ; 0xf0 - 8000a6e: 84fb strh r3, [r7, #38] ; 0x26 + 8000a68: 23f0 movs r3, #240 ; 0xf0 + 8000a6a: 84fb strh r3, [r7, #38] ; 0x26 disp_drv.flush_cb = &my_flush_cb; - 8000a70: 4b4b ldr r3, [pc, #300] ; (8000ba0 ) - 8000a72: 63bb str r3, [r7, #56] ; 0x38 + 8000a6c: 4b28 ldr r3, [pc, #160] ; (8000b10 ) + 8000a6e: 63bb str r3, [r7, #56] ; 0x38 lv_disp_drv_register(&disp_drv); - 8000a74: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000a78: 4618 mov r0, r3 - 8000a7a: f02f fc3f bl 80302fc + 8000a70: f107 0324 add.w r3, r7, #36 ; 0x24 + 8000a74: 4618 mov r0, r3 + 8000a76: f02f fbf7 bl 8030268 lv_disp_t * disp = lv_disp_drv_register(&disp_drv); - 8000a7e: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000a82: 4618 mov r0, r3 - 8000a84: f02f fc3a bl 80302fc - 8000a88: f8c7 0080 str.w r0, [r7, #128] ; 0x80 + 8000a7a: f107 0324 add.w r3, r7, #36 ; 0x24 + 8000a7e: 4618 mov r0, r3 + 8000a80: f02f fbf2 bl 8030268 + 8000a84: 67f8 str r0, [r7, #124] ; 0x7c + // initialize LVGL touchscreen input lv_indev_drv_t indev_drv; lv_indev_drv_init(&indev_drv); - 8000a8c: 1d3b adds r3, r7, #4 - 8000a8e: 4618 mov r0, r3 - 8000a90: f02f fdc2 bl 8030618 + 8000a86: 1d3b adds r3, r7, #4 + 8000a88: 4618 mov r0, r3 + 8000a8a: f02f fd7b bl 8030584 indev_drv.type = LV_INDEV_TYPE_POINTER; - 8000a94: 2301 movs r3, #1 - 8000a96: 713b strb r3, [r7, #4] + 8000a8e: 2301 movs r3, #1 + 8000a90: 713b strb r3, [r7, #4] indev_drv.read_cb = touchscreen_read_callback; - 8000a98: 4b42 ldr r3, [pc, #264] ; (8000ba4 ) - 8000a9a: 60bb str r3, [r7, #8] + 8000a92: 4b20 ldr r3, [pc, #128] ; (8000b14 ) + 8000a94: 60bb str r3, [r7, #8] lv_indev_t * my_indev = lv_indev_drv_register(&indev_drv); - 8000a9c: 1d3b adds r3, r7, #4 - 8000a9e: 4618 mov r0, r3 - 8000aa0: f02f fddc bl 803065c - 8000aa4: 67f8 str r0, [r7, #124] ; 0x7c + 8000a96: 1d3b adds r3, r7, #4 + 8000a98: 4618 mov r0, r3 + 8000a9a: f02f fd95 bl 80305c8 + 8000a9e: 67b8 str r0, [r7, #120] ; 0x78 + // import the MINT logo as a picture LV_IMG_DECLARE(logo_mint_resize); lv_obj_t * logo_mint = lv_img_create(lv_scr_act()); - 8000aa6: f7ff ff34 bl 8000912 - 8000aaa: 4603 mov r3, r0 - 8000aac: 4618 mov r0, r3 - 8000aae: f03c ffa1 bl 803d9f4 - 8000ab2: 67b8 str r0, [r7, #120] ; 0x78 + 8000aa0: f7ff ff38 bl 8000914 + 8000aa4: 4603 mov r3, r0 + 8000aa6: 4618 mov r0, r3 + 8000aa8: f03c ff5a bl 803d960 + 8000aac: 6778 str r0, [r7, #116] ; 0x74 lv_img_set_src(logo_mint, &logo_mint_resize); - 8000ab4: 493c ldr r1, [pc, #240] ; (8000ba8 ) - 8000ab6: 6fb8 ldr r0, [r7, #120] ; 0x78 - 8000ab8: f03c ffb0 bl 803da1c - - lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0x0), LV_PART_MAIN); - 8000abc: f7ff ff29 bl 8000912 - 8000ac0: 4604 mov r4, r0 - 8000ac2: 2000 movs r0, #0 - 8000ac4: f7ff ff02 bl 80008cc - 8000ac8: 4603 mov r3, r0 - 8000aca: 2200 movs r2, #0 - 8000acc: 4619 mov r1, r3 - 8000ace: 4620 mov r0, r4 - 8000ad0: f00e fc03 bl 800f2da + 8000aae: 491a ldr r1, [pc, #104] ; (8000b18 ) + 8000ab0: 6f78 ldr r0, [r7, #116] ; 0x74 + 8000ab2: f03c ff69 bl 803d988 + // Draw the MINT logo lv_obj_align(logo_mint, LV_ALIGN_CENTER, 0, 0); - 8000ad4: 2300 movs r3, #0 - 8000ad6: 2200 movs r2, #0 - 8000ad8: 2109 movs r1, #9 - 8000ada: 6fb8 ldr r0, [r7, #120] ; 0x78 - 8000adc: f008 ff96 bl 8009a0c + 8000ab6: 2300 movs r3, #0 + 8000ab8: 2200 movs r2, #0 + 8000aba: 2109 movs r1, #9 + 8000abc: 6f78 ldr r0, [r7, #116] ; 0x74 + 8000abe: f008 ff6f bl 80099a0 lv_obj_set_size(logo_mint, 320, 240); - 8000ae0: 22f0 movs r2, #240 ; 0xf0 - 8000ae2: f44f 71a0 mov.w r1, #320 ; 0x140 - 8000ae6: 6fb8 ldr r0, [r7, #120] ; 0x78 - 8000ae8: f008 fe60 bl 80097ac - //lv_obj_set_style_text_color(lv_scr_act(), lv_color_hex(0xffff), LV_PART_MAIN); - //ILI9341_GRADIENT(0,0,320,240); + 8000ac2: 22f0 movs r2, #240 ; 0xf0 + 8000ac4: f44f 71a0 mov.w r1, #320 ; 0x140 + 8000ac8: 6f78 ldr r0, [r7, #116] ; 0x74 + 8000aca: f008 fe39 bl 8009740 - lv_obj_t* cursor_pos = lv_label_create(lv_scr_act()); - 8000aec: f7ff ff11 bl 8000912 - 8000af0: 4603 mov r3, r0 - 8000af2: 4618 mov r0, r3 - 8000af4: f03e f8f2 bl 803ecdc - 8000af8: 6778 str r0, [r7, #116] ; 0x74 + // Create the cursor lv_obj_t* cursor = lv_label_create(lv_scr_act()); - 8000afa: f7ff ff0a bl 8000912 - 8000afe: 4603 mov r3, r0 - 8000b00: 4618 mov r0, r3 - 8000b02: f03e f8eb bl 803ecdc - 8000b06: 6738 str r0, [r7, #112] ; 0x70 + 8000ace: f7ff ff21 bl 8000914 + 8000ad2: 4603 mov r3, r0 + 8000ad4: 4618 mov r0, r3 + 8000ad6: f03e f8b7 bl 803ec48 + 8000ada: 6738 str r0, [r7, #112] ; 0x70 lv_label_set_text(cursor, "A"); - 8000b08: 4928 ldr r1, [pc, #160] ; (8000bac ) - 8000b0a: 6f38 ldr r0, [r7, #112] ; 0x70 - 8000b0c: f03e f8fa bl 803ed04 + 8000adc: 490f ldr r1, [pc, #60] ; (8000b1c ) + 8000ade: 6f38 ldr r0, [r7, #112] ; 0x70 + 8000ae0: f03e f8c6 bl 803ec70 lv_indev_set_cursor(my_indev, cursor); - 8000b10: 6f39 ldr r1, [r7, #112] ; 0x70 - 8000b12: 6ff8 ldr r0, [r7, #124] ; 0x7c - 8000b14: f002 fcbb bl 800348e + 8000ae4: 6f39 ldr r1, [r7, #112] ; 0x70 + 8000ae6: 6fb8 ldr r0, [r7, #120] ; 0x78 + 8000ae8: f002 fc9b bl 8003422 + // initialize the Touchscreen Driver ADS7843_Init(&Touch_Def); - 8000b18: 4825 ldr r0, [pc, #148] ; (8000bb0 ) - 8000b1a: f7ff fd15 bl 8000548 - /* USER CODE END 2 */ + 8000aec: 480c ldr r0, [pc, #48] ; (8000b20 ) + 8000aee: f7ff fd2b bl 8000548 + Home_Screen_Gen(); + 8000af2: f7ff fed5 bl 80008a0 /* Infinite loop */ /* USER CODE BEGIN WHILE */ - unsigned long cmp = 0; - 8000b1e: 2300 movs r3, #0 - 8000b20: f8c7 3084 str.w r3, [r7, #132] ; 0x84 while (1) { + // Run LVGL update loop lv_timer_handler(); - 8000b24: f034 fa1a bl 8034f5c + 8000af6: f034 f9e7 bl 8034ec8 HAL_Delay(5); - 8000b28: 2005 movs r0, #5 - 8000b2a: f000 fb4f bl 80011cc - lv_label_set_text_fmt(cursor_pos, "%d : %d \n %d : %d", ADS7843_GetX(&Touch_Def), ADS7843_GetY(&Touch_Def), ADS7843_GetX_Raw(&Touch_Def), ADS7843_GetY_Raw(&Touch_Def)); - 8000b2e: 4820 ldr r0, [pc, #128] ; (8000bb0 ) - 8000b30: f7ff fdc8 bl 80006c4 - 8000b34: 4603 mov r3, r0 - 8000b36: 461d mov r5, r3 - 8000b38: 481d ldr r0, [pc, #116] ; (8000bb0 ) - 8000b3a: f7ff fddd bl 80006f8 - 8000b3e: 4603 mov r3, r0 - 8000b40: 461e mov r6, r3 - 8000b42: 481b ldr r0, [pc, #108] ; (8000bb0 ) - 8000b44: f7ff fd9a bl 800067c - 8000b48: 4603 mov r3, r0 - 8000b4a: 461c mov r4, r3 - 8000b4c: 4818 ldr r0, [pc, #96] ; (8000bb0 ) - 8000b4e: f7ff fda7 bl 80006a0 - 8000b52: 4603 mov r3, r0 - 8000b54: 9301 str r3, [sp, #4] - 8000b56: 9400 str r4, [sp, #0] - 8000b58: 4633 mov r3, r6 - 8000b5a: 462a mov r2, r5 - 8000b5c: 4915 ldr r1, [pc, #84] ; (8000bb4 ) - 8000b5e: 6f78 ldr r0, [r7, #116] ; 0x74 - 8000b60: f03e f945 bl 803edee - cmp++; - 8000b64: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 8000b68: 3301 adds r3, #1 - 8000b6a: f8c7 3084 str.w r3, [r7, #132] ; 0x84 - if(cmp % 20 == 0) HAL_GPIO_TogglePin(X_STEPPER_STEP_GPIO_Port, X_STEPPER_STEP_Pin); - 8000b6e: f8d7 1084 ldr.w r1, [r7, #132] ; 0x84 - 8000b72: 4b11 ldr r3, [pc, #68] ; (8000bb8 ) - 8000b74: fba3 2301 umull r2, r3, r3, r1 - 8000b78: 091a lsrs r2, r3, #4 - 8000b7a: 4613 mov r3, r2 - 8000b7c: 009b lsls r3, r3, #2 - 8000b7e: 4413 add r3, r2 - 8000b80: 009b lsls r3, r3, #2 - 8000b82: 1aca subs r2, r1, r3 - 8000b84: 2a00 cmp r2, #0 - 8000b86: d1cd bne.n 8000b24 - 8000b88: 2110 movs r1, #16 - 8000b8a: 480c ldr r0, [pc, #48] ; (8000bbc ) - 8000b8c: f000 fde9 bl 8001762 + 8000afa: 2005 movs r0, #5 + 8000afc: f000 fb0a bl 8001114 lv_timer_handler(); - 8000b90: e7c8 b.n 8000b24 - 8000b92: bf00 nop - 8000b94: 40011000 .word 0x40011000 - 8000b98: 200001e4 .word 0x200001e4 - 8000b9c: 200001c8 .word 0x200001c8 - 8000ba0: 08000929 .word 0x08000929 - 8000ba4: 080009a9 .word 0x080009a9 - 8000ba8: 0806c9fc .word 0x0806c9fc - 8000bac: 08046c08 .word 0x08046c08 - 8000bb0: 20000008 .word 0x20000008 - 8000bb4: 08046c0c .word 0x08046c0c - 8000bb8: cccccccd .word 0xcccccccd - 8000bbc: 40010c00 .word 0x40010c00 + 8000b00: e7f9 b.n 8000af6 + 8000b02: bf00 nop + 8000b04: 40011000 .word 0x40011000 + 8000b08: 200001e4 .word 0x200001e4 + 8000b0c: 200001c8 .word 0x200001c8 + 8000b10: 0800092b .word 0x0800092b + 8000b14: 080009a9 .word 0x080009a9 + 8000b18: 0806c954 .word 0x0806c954 + 8000b1c: 08046b74 .word 0x08046b74 + 8000b20: 20000008 .word 0x20000008 -08000bc0 : +08000b24 : /** * @brief System Clock Configuration * @retval None */ void SystemClock_Config(void) { - 8000bc0: b580 push {r7, lr} - 8000bc2: b090 sub sp, #64 ; 0x40 - 8000bc4: af00 add r7, sp, #0 + 8000b24: b580 push {r7, lr} + 8000b26: b090 sub sp, #64 ; 0x40 + 8000b28: af00 add r7, sp, #0 RCC_OscInitTypeDef RCC_OscInitStruct = {0}; - 8000bc6: f107 0318 add.w r3, r7, #24 - 8000bca: 2228 movs r2, #40 ; 0x28 - 8000bcc: 2100 movs r1, #0 - 8000bce: 4618 mov r0, r3 - 8000bd0: f045 ffcc bl 8046b6c + 8000b2a: f107 0318 add.w r3, r7, #24 + 8000b2e: 2228 movs r2, #40 ; 0x28 + 8000b30: 2100 movs r1, #0 + 8000b32: 4618 mov r0, r3 + 8000b34: f045 ffd0 bl 8046ad8 RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; - 8000bd4: 1d3b adds r3, r7, #4 - 8000bd6: 2200 movs r2, #0 - 8000bd8: 601a str r2, [r3, #0] - 8000bda: 605a str r2, [r3, #4] - 8000bdc: 609a str r2, [r3, #8] - 8000bde: 60da str r2, [r3, #12] - 8000be0: 611a str r2, [r3, #16] + 8000b38: 1d3b adds r3, r7, #4 + 8000b3a: 2200 movs r2, #0 + 8000b3c: 601a str r2, [r3, #0] + 8000b3e: 605a str r2, [r3, #4] + 8000b40: 609a str r2, [r3, #8] + 8000b42: 60da str r2, [r3, #12] + 8000b44: 611a str r2, [r3, #16] /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; - 8000be2: 2302 movs r3, #2 - 8000be4: 61bb str r3, [r7, #24] + 8000b46: 2302 movs r3, #2 + 8000b48: 61bb str r3, [r7, #24] RCC_OscInitStruct.HSIState = RCC_HSI_ON; - 8000be6: 2301 movs r3, #1 - 8000be8: 62bb str r3, [r7, #40] ; 0x28 + 8000b4a: 2301 movs r3, #1 + 8000b4c: 62bb str r3, [r7, #40] ; 0x28 RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; - 8000bea: 2310 movs r3, #16 - 8000bec: 62fb str r3, [r7, #44] ; 0x2c + 8000b4e: 2310 movs r3, #16 + 8000b50: 62fb str r3, [r7, #44] ; 0x2c RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; - 8000bee: 2302 movs r3, #2 - 8000bf0: 637b str r3, [r7, #52] ; 0x34 + 8000b52: 2302 movs r3, #2 + 8000b54: 637b str r3, [r7, #52] ; 0x34 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2; - 8000bf2: 2300 movs r3, #0 - 8000bf4: 63bb str r3, [r7, #56] ; 0x38 + 8000b56: 2300 movs r3, #0 + 8000b58: 63bb str r3, [r7, #56] ; 0x38 RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL16; - 8000bf6: f44f 1360 mov.w r3, #3670016 ; 0x380000 - 8000bfa: 63fb str r3, [r7, #60] ; 0x3c + 8000b5a: f44f 1360 mov.w r3, #3670016 ; 0x380000 + 8000b5e: 63fb str r3, [r7, #60] ; 0x3c if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - 8000bfc: f107 0318 add.w r3, r7, #24 - 8000c00: 4618 mov r0, r3 - 8000c02: f000 fdc7 bl 8001794 - 8000c06: 4603 mov r3, r0 - 8000c08: 2b00 cmp r3, #0 - 8000c0a: d001 beq.n 8000c10 + 8000b60: f107 0318 add.w r3, r7, #24 + 8000b64: 4618 mov r0, r3 + 8000b66: f000 fda1 bl 80016ac + 8000b6a: 4603 mov r3, r0 + 8000b6c: 2b00 cmp r3, #0 + 8000b6e: d001 beq.n 8000b74 { Error_Handler(); - 8000c0c: f000 f964 bl 8000ed8 + 8000b70: f000 f956 bl 8000e20 } /** Initializes the CPU, AHB and APB buses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK - 8000c10: 230f movs r3, #15 - 8000c12: 607b str r3, [r7, #4] + 8000b74: 230f movs r3, #15 + 8000b76: 607b str r3, [r7, #4] |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; - 8000c14: 2302 movs r3, #2 - 8000c16: 60bb str r3, [r7, #8] + 8000b78: 2302 movs r3, #2 + 8000b7a: 60bb str r3, [r7, #8] RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; - 8000c18: 2300 movs r3, #0 - 8000c1a: 60fb str r3, [r7, #12] + 8000b7c: 2300 movs r3, #0 + 8000b7e: 60fb str r3, [r7, #12] RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; - 8000c1c: f44f 6380 mov.w r3, #1024 ; 0x400 - 8000c20: 613b str r3, [r7, #16] + 8000b80: f44f 6380 mov.w r3, #1024 ; 0x400 + 8000b84: 613b str r3, [r7, #16] RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; - 8000c22: 2300 movs r3, #0 - 8000c24: 617b str r3, [r7, #20] + 8000b86: 2300 movs r3, #0 + 8000b88: 617b str r3, [r7, #20] if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) - 8000c26: 1d3b adds r3, r7, #4 - 8000c28: 2102 movs r1, #2 - 8000c2a: 4618 mov r0, r3 - 8000c2c: f001 f834 bl 8001c98 - 8000c30: 4603 mov r3, r0 - 8000c32: 2b00 cmp r3, #0 - 8000c34: d001 beq.n 8000c3a + 8000b8a: 1d3b adds r3, r7, #4 + 8000b8c: 2102 movs r1, #2 + 8000b8e: 4618 mov r0, r3 + 8000b90: f001 f80e bl 8001bb0 + 8000b94: 4603 mov r3, r0 + 8000b96: 2b00 cmp r3, #0 + 8000b98: d001 beq.n 8000b9e { Error_Handler(); - 8000c36: f000 f94f bl 8000ed8 + 8000b9a: f000 f941 bl 8000e20 } } - 8000c3a: bf00 nop - 8000c3c: 3740 adds r7, #64 ; 0x40 - 8000c3e: 46bd mov sp, r7 - 8000c40: bd80 pop {r7, pc} + 8000b9e: bf00 nop + 8000ba0: 3740 adds r7, #64 ; 0x40 + 8000ba2: 46bd mov sp, r7 + 8000ba4: bd80 pop {r7, pc} ... -08000c44 : +08000ba8 : * @brief USART1 Initialization Function * @param None * @retval None */ static void MX_USART1_UART_Init(void) { - 8000c44: b580 push {r7, lr} - 8000c46: af00 add r7, sp, #0 + 8000ba8: b580 push {r7, lr} + 8000baa: af00 add r7, sp, #0 /* USER CODE END USART1_Init 0 */ /* USER CODE BEGIN USART1_Init 1 */ /* USER CODE END USART1_Init 1 */ huart1.Instance = USART1; - 8000c48: 4b11 ldr r3, [pc, #68] ; (8000c90 ) - 8000c4a: 4a12 ldr r2, [pc, #72] ; (8000c94 ) - 8000c4c: 601a str r2, [r3, #0] + 8000bac: 4b11 ldr r3, [pc, #68] ; (8000bf4 ) + 8000bae: 4a12 ldr r2, [pc, #72] ; (8000bf8 ) + 8000bb0: 601a str r2, [r3, #0] huart1.Init.BaudRate = 115200; - 8000c4e: 4b10 ldr r3, [pc, #64] ; (8000c90 ) - 8000c50: f44f 32e1 mov.w r2, #115200 ; 0x1c200 - 8000c54: 605a str r2, [r3, #4] + 8000bb2: 4b10 ldr r3, [pc, #64] ; (8000bf4 ) + 8000bb4: f44f 32e1 mov.w r2, #115200 ; 0x1c200 + 8000bb8: 605a str r2, [r3, #4] huart1.Init.WordLength = UART_WORDLENGTH_8B; - 8000c56: 4b0e ldr r3, [pc, #56] ; (8000c90 ) - 8000c58: 2200 movs r2, #0 - 8000c5a: 609a str r2, [r3, #8] + 8000bba: 4b0e ldr r3, [pc, #56] ; (8000bf4 ) + 8000bbc: 2200 movs r2, #0 + 8000bbe: 609a str r2, [r3, #8] huart1.Init.StopBits = UART_STOPBITS_1; - 8000c5c: 4b0c ldr r3, [pc, #48] ; (8000c90 ) - 8000c5e: 2200 movs r2, #0 - 8000c60: 60da str r2, [r3, #12] + 8000bc0: 4b0c ldr r3, [pc, #48] ; (8000bf4 ) + 8000bc2: 2200 movs r2, #0 + 8000bc4: 60da str r2, [r3, #12] huart1.Init.Parity = UART_PARITY_NONE; - 8000c62: 4b0b ldr r3, [pc, #44] ; (8000c90 ) - 8000c64: 2200 movs r2, #0 - 8000c66: 611a str r2, [r3, #16] + 8000bc6: 4b0b ldr r3, [pc, #44] ; (8000bf4 ) + 8000bc8: 2200 movs r2, #0 + 8000bca: 611a str r2, [r3, #16] huart1.Init.Mode = UART_MODE_TX_RX; - 8000c68: 4b09 ldr r3, [pc, #36] ; (8000c90 ) - 8000c6a: 220c movs r2, #12 - 8000c6c: 615a str r2, [r3, #20] + 8000bcc: 4b09 ldr r3, [pc, #36] ; (8000bf4 ) + 8000bce: 220c movs r2, #12 + 8000bd0: 615a str r2, [r3, #20] huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; - 8000c6e: 4b08 ldr r3, [pc, #32] ; (8000c90 ) - 8000c70: 2200 movs r2, #0 - 8000c72: 619a str r2, [r3, #24] + 8000bd2: 4b08 ldr r3, [pc, #32] ; (8000bf4 ) + 8000bd4: 2200 movs r2, #0 + 8000bd6: 619a str r2, [r3, #24] huart1.Init.OverSampling = UART_OVERSAMPLING_16; - 8000c74: 4b06 ldr r3, [pc, #24] ; (8000c90 ) - 8000c76: 2200 movs r2, #0 - 8000c78: 61da str r2, [r3, #28] + 8000bd8: 4b06 ldr r3, [pc, #24] ; (8000bf4 ) + 8000bda: 2200 movs r2, #0 + 8000bdc: 61da str r2, [r3, #28] if (HAL_UART_Init(&huart1) != HAL_OK) - 8000c7a: 4805 ldr r0, [pc, #20] ; (8000c90 ) - 8000c7c: f001 f9e7 bl 800204e - 8000c80: 4603 mov r3, r0 - 8000c82: 2b00 cmp r3, #0 - 8000c84: d001 beq.n 8000c8a + 8000bde: 4805 ldr r0, [pc, #20] ; (8000bf4 ) + 8000be0: f001 f9c1 bl 8001f66 + 8000be4: 4603 mov r3, r0 + 8000be6: 2b00 cmp r3, #0 + 8000be8: d001 beq.n 8000bee { Error_Handler(); - 8000c86: f000 f927 bl 8000ed8 + 8000bea: f000 f919 bl 8000e20 } /* USER CODE BEGIN USART1_Init 2 */ /* USER CODE END USART1_Init 2 */ } - 8000c8a: bf00 nop - 8000c8c: bd80 pop {r7, pc} - 8000c8e: bf00 nop - 8000c90: 20000138 .word 0x20000138 - 8000c94: 40013800 .word 0x40013800 + 8000bee: bf00 nop + 8000bf0: bd80 pop {r7, pc} + 8000bf2: bf00 nop + 8000bf4: 20000138 .word 0x20000138 + 8000bf8: 40013800 .word 0x40013800 -08000c98 : +08000bfc : * @brief GPIO Initialization Function * @param None * @retval None */ static void MX_GPIO_Init(void) { - 8000c98: b580 push {r7, lr} - 8000c9a: b08a sub sp, #40 ; 0x28 - 8000c9c: af00 add r7, sp, #0 + 8000bfc: b580 push {r7, lr} + 8000bfe: b08a sub sp, #40 ; 0x28 + 8000c00: af00 add r7, sp, #0 GPIO_InitTypeDef GPIO_InitStruct = {0}; - 8000c9e: f107 0318 add.w r3, r7, #24 - 8000ca2: 2200 movs r2, #0 - 8000ca4: 601a str r2, [r3, #0] - 8000ca6: 605a str r2, [r3, #4] - 8000ca8: 609a str r2, [r3, #8] - 8000caa: 60da str r2, [r3, #12] + 8000c02: f107 0318 add.w r3, r7, #24 + 8000c06: 2200 movs r2, #0 + 8000c08: 601a str r2, [r3, #0] + 8000c0a: 605a str r2, [r3, #4] + 8000c0c: 609a str r2, [r3, #8] + 8000c0e: 60da str r2, [r3, #12] /* USER CODE BEGIN MX_GPIO_Init_1 */ /* USER CODE END MX_GPIO_Init_1 */ /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOC_CLK_ENABLE(); - 8000cac: 4b54 ldr r3, [pc, #336] ; (8000e00 ) - 8000cae: 699b ldr r3, [r3, #24] - 8000cb0: 4a53 ldr r2, [pc, #332] ; (8000e00 ) - 8000cb2: f043 0310 orr.w r3, r3, #16 - 8000cb6: 6193 str r3, [r2, #24] - 8000cb8: 4b51 ldr r3, [pc, #324] ; (8000e00 ) - 8000cba: 699b ldr r3, [r3, #24] - 8000cbc: f003 0310 and.w r3, r3, #16 - 8000cc0: 617b str r3, [r7, #20] - 8000cc2: 697b ldr r3, [r7, #20] + 8000c10: 4b4d ldr r3, [pc, #308] ; (8000d48 ) + 8000c12: 699b ldr r3, [r3, #24] + 8000c14: 4a4c ldr r2, [pc, #304] ; (8000d48 ) + 8000c16: f043 0310 orr.w r3, r3, #16 + 8000c1a: 6193 str r3, [r2, #24] + 8000c1c: 4b4a ldr r3, [pc, #296] ; (8000d48 ) + 8000c1e: 699b ldr r3, [r3, #24] + 8000c20: f003 0310 and.w r3, r3, #16 + 8000c24: 617b str r3, [r7, #20] + 8000c26: 697b ldr r3, [r7, #20] __HAL_RCC_GPIOE_CLK_ENABLE(); - 8000cc4: 4b4e ldr r3, [pc, #312] ; (8000e00 ) - 8000cc6: 699b ldr r3, [r3, #24] - 8000cc8: 4a4d ldr r2, [pc, #308] ; (8000e00 ) - 8000cca: f043 0340 orr.w r3, r3, #64 ; 0x40 - 8000cce: 6193 str r3, [r2, #24] - 8000cd0: 4b4b ldr r3, [pc, #300] ; (8000e00 ) - 8000cd2: 699b ldr r3, [r3, #24] - 8000cd4: f003 0340 and.w r3, r3, #64 ; 0x40 - 8000cd8: 613b str r3, [r7, #16] - 8000cda: 693b ldr r3, [r7, #16] + 8000c28: 4b47 ldr r3, [pc, #284] ; (8000d48 ) + 8000c2a: 699b ldr r3, [r3, #24] + 8000c2c: 4a46 ldr r2, [pc, #280] ; (8000d48 ) + 8000c2e: f043 0340 orr.w r3, r3, #64 ; 0x40 + 8000c32: 6193 str r3, [r2, #24] + 8000c34: 4b44 ldr r3, [pc, #272] ; (8000d48 ) + 8000c36: 699b ldr r3, [r3, #24] + 8000c38: f003 0340 and.w r3, r3, #64 ; 0x40 + 8000c3c: 613b str r3, [r7, #16] + 8000c3e: 693b ldr r3, [r7, #16] __HAL_RCC_GPIOB_CLK_ENABLE(); - 8000cdc: 4b48 ldr r3, [pc, #288] ; (8000e00 ) - 8000cde: 699b ldr r3, [r3, #24] - 8000ce0: 4a47 ldr r2, [pc, #284] ; (8000e00 ) - 8000ce2: f043 0308 orr.w r3, r3, #8 - 8000ce6: 6193 str r3, [r2, #24] - 8000ce8: 4b45 ldr r3, [pc, #276] ; (8000e00 ) - 8000cea: 699b ldr r3, [r3, #24] - 8000cec: f003 0308 and.w r3, r3, #8 - 8000cf0: 60fb str r3, [r7, #12] - 8000cf2: 68fb ldr r3, [r7, #12] + 8000c40: 4b41 ldr r3, [pc, #260] ; (8000d48 ) + 8000c42: 699b ldr r3, [r3, #24] + 8000c44: 4a40 ldr r2, [pc, #256] ; (8000d48 ) + 8000c46: f043 0308 orr.w r3, r3, #8 + 8000c4a: 6193 str r3, [r2, #24] + 8000c4c: 4b3e ldr r3, [pc, #248] ; (8000d48 ) + 8000c4e: 699b ldr r3, [r3, #24] + 8000c50: f003 0308 and.w r3, r3, #8 + 8000c54: 60fb str r3, [r7, #12] + 8000c56: 68fb ldr r3, [r7, #12] __HAL_RCC_GPIOD_CLK_ENABLE(); - 8000cf4: 4b42 ldr r3, [pc, #264] ; (8000e00 ) - 8000cf6: 699b ldr r3, [r3, #24] - 8000cf8: 4a41 ldr r2, [pc, #260] ; (8000e00 ) - 8000cfa: f043 0320 orr.w r3, r3, #32 - 8000cfe: 6193 str r3, [r2, #24] - 8000d00: 4b3f ldr r3, [pc, #252] ; (8000e00 ) - 8000d02: 699b ldr r3, [r3, #24] - 8000d04: f003 0320 and.w r3, r3, #32 - 8000d08: 60bb str r3, [r7, #8] - 8000d0a: 68bb ldr r3, [r7, #8] + 8000c58: 4b3b ldr r3, [pc, #236] ; (8000d48 ) + 8000c5a: 699b ldr r3, [r3, #24] + 8000c5c: 4a3a ldr r2, [pc, #232] ; (8000d48 ) + 8000c5e: f043 0320 orr.w r3, r3, #32 + 8000c62: 6193 str r3, [r2, #24] + 8000c64: 4b38 ldr r3, [pc, #224] ; (8000d48 ) + 8000c66: 699b ldr r3, [r3, #24] + 8000c68: f003 0320 and.w r3, r3, #32 + 8000c6c: 60bb str r3, [r7, #8] + 8000c6e: 68bb ldr r3, [r7, #8] __HAL_RCC_GPIOA_CLK_ENABLE(); - 8000d0c: 4b3c ldr r3, [pc, #240] ; (8000e00 ) - 8000d0e: 699b ldr r3, [r3, #24] - 8000d10: 4a3b ldr r2, [pc, #236] ; (8000e00 ) - 8000d12: f043 0304 orr.w r3, r3, #4 - 8000d16: 6193 str r3, [r2, #24] - 8000d18: 4b39 ldr r3, [pc, #228] ; (8000e00 ) - 8000d1a: 699b ldr r3, [r3, #24] - 8000d1c: f003 0304 and.w r3, r3, #4 - 8000d20: 607b str r3, [r7, #4] - 8000d22: 687b ldr r3, [r7, #4] + 8000c70: 4b35 ldr r3, [pc, #212] ; (8000d48 ) + 8000c72: 699b ldr r3, [r3, #24] + 8000c74: 4a34 ldr r2, [pc, #208] ; (8000d48 ) + 8000c76: f043 0304 orr.w r3, r3, #4 + 8000c7a: 6193 str r3, [r2, #24] + 8000c7c: 4b32 ldr r3, [pc, #200] ; (8000d48 ) + 8000c7e: 699b ldr r3, [r3, #24] + 8000c80: f003 0304 and.w r3, r3, #4 + 8000c84: 607b str r3, [r7, #4] + 8000c86: 687b ldr r3, [r7, #4] /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(LCD_RST_GPIO_Port, LCD_RST_Pin, GPIO_PIN_SET); - 8000d24: 2201 movs r2, #1 - 8000d26: 2110 movs r1, #16 - 8000d28: 4836 ldr r0, [pc, #216] ; (8000e04 ) - 8000d2a: f000 fd02 bl 8001732 + 8000c88: 2201 movs r2, #1 + 8000c8a: 2110 movs r1, #16 + 8000c8c: 482f ldr r0, [pc, #188] ; (8000d4c ) + 8000c8e: f000 fcf4 bl 800167a /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOB, ADS7843_CS_Pin|X_STEPPER_DIR_Pin, GPIO_PIN_SET); - 8000d2e: 2201 movs r2, #1 - 8000d30: f241 0108 movw r1, #4104 ; 0x1008 - 8000d34: 4834 ldr r0, [pc, #208] ; (8000e08 ) - 8000d36: f000 fcfc bl 8001732 + HAL_GPIO_WritePin(ADS7843_CS_GPIO_Port, ADS7843_CS_Pin, GPIO_PIN_SET); + 8000c92: 2201 movs r2, #1 + 8000c94: f44f 5180 mov.w r1, #4096 ; 0x1000 + 8000c98: 482d ldr r0, [pc, #180] ; (8000d50 ) + 8000c9a: f000 fcee bl 800167a /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOB, ADS7843_SCK_Pin|ADS7843_MOSI_Pin|X_STEPPER_STEP_Pin|X_STEPPER_EN_Pin, GPIO_PIN_RESET); - 8000d3a: 2200 movs r2, #0 - 8000d3c: f246 0130 movw r1, #24624 ; 0x6030 - 8000d40: 4831 ldr r0, [pc, #196] ; (8000e08 ) - 8000d42: f000 fcf6 bl 8001732 + HAL_GPIO_WritePin(GPIOB, ADS7843_SCK_Pin|ADS7843_MOSI_Pin, GPIO_PIN_RESET); + 8000c9e: 2200 movs r2, #0 + 8000ca0: f44f 41c0 mov.w r1, #24576 ; 0x6000 + 8000ca4: 482a ldr r0, [pc, #168] ; (8000d50 ) + 8000ca6: f000 fce8 bl 800167a /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_SET); - 8000d46: 2201 movs r2, #1 - 8000d48: f44f 5180 mov.w r1, #4096 ; 0x1000 - 8000d4c: 482f ldr r0, [pc, #188] ; (8000e0c ) - 8000d4e: f000 fcf0 bl 8001732 + 8000caa: 2201 movs r2, #1 + 8000cac: f44f 5180 mov.w r1, #4096 ; 0x1000 + 8000cb0: 4828 ldr r0, [pc, #160] ; (8000d54 ) + 8000cb2: f000 fce2 bl 800167a /*Configure GPIO pin : LCD_RST_Pin */ GPIO_InitStruct.Pin = LCD_RST_Pin; - 8000d52: 2310 movs r3, #16 - 8000d54: 61bb str r3, [r7, #24] + 8000cb6: 2310 movs r3, #16 + 8000cb8: 61bb str r3, [r7, #24] GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 8000d56: 2301 movs r3, #1 - 8000d58: 61fb str r3, [r7, #28] + 8000cba: 2301 movs r3, #1 + 8000cbc: 61fb str r3, [r7, #28] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000d5a: 2300 movs r3, #0 - 8000d5c: 623b str r3, [r7, #32] + 8000cbe: 2300 movs r3, #0 + 8000cc0: 623b str r3, [r7, #32] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000d5e: 2302 movs r3, #2 - 8000d60: 627b str r3, [r7, #36] ; 0x24 + 8000cc2: 2302 movs r3, #2 + 8000cc4: 627b str r3, [r7, #36] ; 0x24 HAL_GPIO_Init(LCD_RST_GPIO_Port, &GPIO_InitStruct); - 8000d62: f107 0318 add.w r3, r7, #24 - 8000d66: 4619 mov r1, r3 - 8000d68: 4826 ldr r0, [pc, #152] ; (8000e04 ) - 8000d6a: f000 fb37 bl 80013dc + 8000cc6: f107 0318 add.w r3, r7, #24 + 8000cca: 4619 mov r1, r3 + 8000ccc: 481f ldr r0, [pc, #124] ; (8000d4c ) + 8000cce: f000 fb29 bl 8001324 /*Configure GPIO pins : ADS7843_CS_Pin ADS7843_SCK_Pin ADS7843_MOSI_Pin */ GPIO_InitStruct.Pin = ADS7843_CS_Pin|ADS7843_SCK_Pin|ADS7843_MOSI_Pin; - 8000d6e: f44f 43e0 mov.w r3, #28672 ; 0x7000 - 8000d72: 61bb str r3, [r7, #24] + 8000cd2: f44f 43e0 mov.w r3, #28672 ; 0x7000 + 8000cd6: 61bb str r3, [r7, #24] GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 8000d74: 2301 movs r3, #1 - 8000d76: 61fb str r3, [r7, #28] + 8000cd8: 2301 movs r3, #1 + 8000cda: 61fb str r3, [r7, #28] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000d78: 2300 movs r3, #0 - 8000d7a: 623b str r3, [r7, #32] + 8000cdc: 2300 movs r3, #0 + 8000cde: 623b str r3, [r7, #32] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - 8000d7c: 2303 movs r3, #3 - 8000d7e: 627b str r3, [r7, #36] ; 0x24 + 8000ce0: 2303 movs r3, #3 + 8000ce2: 627b str r3, [r7, #36] ; 0x24 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 8000d80: f107 0318 add.w r3, r7, #24 - 8000d84: 4619 mov r1, r3 - 8000d86: 4820 ldr r0, [pc, #128] ; (8000e08 ) - 8000d88: f000 fb28 bl 80013dc + 8000ce4: f107 0318 add.w r3, r7, #24 + 8000ce8: 4619 mov r1, r3 + 8000cea: 4819 ldr r0, [pc, #100] ; (8000d50 ) + 8000cec: f000 fb1a bl 8001324 /*Configure GPIO pin : ADS7843_MISO_Pin */ GPIO_InitStruct.Pin = ADS7843_MISO_Pin; - 8000d8c: f44f 4300 mov.w r3, #32768 ; 0x8000 - 8000d90: 61bb str r3, [r7, #24] + 8000cf0: f44f 4300 mov.w r3, #32768 ; 0x8000 + 8000cf4: 61bb str r3, [r7, #24] GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - 8000d92: 2300 movs r3, #0 - 8000d94: 61fb str r3, [r7, #28] + 8000cf6: 2300 movs r3, #0 + 8000cf8: 61fb str r3, [r7, #28] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000d96: 2300 movs r3, #0 - 8000d98: 623b str r3, [r7, #32] + 8000cfa: 2300 movs r3, #0 + 8000cfc: 623b str r3, [r7, #32] HAL_GPIO_Init(ADS7843_MISO_GPIO_Port, &GPIO_InitStruct); - 8000d9a: f107 0318 add.w r3, r7, #24 - 8000d9e: 4619 mov r1, r3 - 8000da0: 4819 ldr r0, [pc, #100] ; (8000e08 ) - 8000da2: f000 fb1b bl 80013dc + 8000cfe: f107 0318 add.w r3, r7, #24 + 8000d02: 4619 mov r1, r3 + 8000d04: 4812 ldr r0, [pc, #72] ; (8000d50 ) + 8000d06: f000 fb0d bl 8001324 /*Configure GPIO pin : LCD_CS_Pin */ GPIO_InitStruct.Pin = LCD_CS_Pin; - 8000da6: f44f 5380 mov.w r3, #4096 ; 0x1000 - 8000daa: 61bb str r3, [r7, #24] + 8000d0a: f44f 5380 mov.w r3, #4096 ; 0x1000 + 8000d0e: 61bb str r3, [r7, #24] GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 8000dac: 2301 movs r3, #1 - 8000dae: 61fb str r3, [r7, #28] + 8000d10: 2301 movs r3, #1 + 8000d12: 61fb str r3, [r7, #28] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000db0: 2300 movs r3, #0 - 8000db2: 623b str r3, [r7, #32] + 8000d14: 2300 movs r3, #0 + 8000d16: 623b str r3, [r7, #32] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000db4: 2302 movs r3, #2 - 8000db6: 627b str r3, [r7, #36] ; 0x24 + 8000d18: 2302 movs r3, #2 + 8000d1a: 627b str r3, [r7, #36] ; 0x24 HAL_GPIO_Init(LCD_CS_GPIO_Port, &GPIO_InitStruct); - 8000db8: f107 0318 add.w r3, r7, #24 - 8000dbc: 4619 mov r1, r3 - 8000dbe: 4813 ldr r0, [pc, #76] ; (8000e0c ) - 8000dc0: f000 fb0c bl 80013dc + 8000d1c: f107 0318 add.w r3, r7, #24 + 8000d20: 4619 mov r1, r3 + 8000d22: 480c ldr r0, [pc, #48] ; (8000d54 ) + 8000d24: f000 fafe bl 8001324 /*Configure GPIO pin : ADS7843_Int_Pin */ GPIO_InitStruct.Pin = ADS7843_Int_Pin; - 8000dc4: 2340 movs r3, #64 ; 0x40 - 8000dc6: 61bb str r3, [r7, #24] + 8000d28: 2340 movs r3, #64 ; 0x40 + 8000d2a: 61bb str r3, [r7, #24] GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - 8000dc8: 2300 movs r3, #0 - 8000dca: 61fb str r3, [r7, #28] + 8000d2c: 2300 movs r3, #0 + 8000d2e: 61fb str r3, [r7, #28] GPIO_InitStruct.Pull = GPIO_PULLUP; - 8000dcc: 2301 movs r3, #1 - 8000dce: 623b str r3, [r7, #32] + 8000d30: 2301 movs r3, #1 + 8000d32: 623b str r3, [r7, #32] HAL_GPIO_Init(ADS7843_Int_GPIO_Port, &GPIO_InitStruct); - 8000dd0: f107 0318 add.w r3, r7, #24 - 8000dd4: 4619 mov r1, r3 - 8000dd6: 480b ldr r0, [pc, #44] ; (8000e04 ) - 8000dd8: f000 fb00 bl 80013dc - - /*Configure GPIO pins : X_STEPPER_DIR_Pin X_STEPPER_STEP_Pin X_STEPPER_EN_Pin */ - GPIO_InitStruct.Pin = X_STEPPER_DIR_Pin|X_STEPPER_STEP_Pin|X_STEPPER_EN_Pin; - 8000ddc: 2338 movs r3, #56 ; 0x38 - 8000dde: 61bb str r3, [r7, #24] - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 8000de0: 2301 movs r3, #1 - 8000de2: 61fb str r3, [r7, #28] - GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000de4: 2300 movs r3, #0 - 8000de6: 623b str r3, [r7, #32] - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000de8: 2302 movs r3, #2 - 8000dea: 627b str r3, [r7, #36] ; 0x24 - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 8000dec: f107 0318 add.w r3, r7, #24 - 8000df0: 4619 mov r1, r3 - 8000df2: 4805 ldr r0, [pc, #20] ; (8000e08 ) - 8000df4: f000 faf2 bl 80013dc + 8000d34: f107 0318 add.w r3, r7, #24 + 8000d38: 4619 mov r1, r3 + 8000d3a: 4804 ldr r0, [pc, #16] ; (8000d4c ) + 8000d3c: f000 faf2 bl 8001324 /* USER CODE BEGIN MX_GPIO_Init_2 */ /* USER CODE END MX_GPIO_Init_2 */ } - 8000df8: bf00 nop - 8000dfa: 3728 adds r7, #40 ; 0x28 - 8000dfc: 46bd mov sp, r7 - 8000dfe: bd80 pop {r7, pc} - 8000e00: 40021000 .word 0x40021000 - 8000e04: 40011000 .word 0x40011000 - 8000e08: 40010c00 .word 0x40010c00 - 8000e0c: 40011400 .word 0x40011400 + 8000d40: bf00 nop + 8000d42: 3728 adds r7, #40 ; 0x28 + 8000d44: 46bd mov sp, r7 + 8000d46: bd80 pop {r7, pc} + 8000d48: 40021000 .word 0x40021000 + 8000d4c: 40011000 .word 0x40011000 + 8000d50: 40010c00 .word 0x40010c00 + 8000d54: 40011400 .word 0x40011400 -08000e10 : +08000d58 : /* FSMC initialization function */ static void MX_FSMC_Init(void) { - 8000e10: b580 push {r7, lr} - 8000e12: b088 sub sp, #32 - 8000e14: af00 add r7, sp, #0 + 8000d58: b580 push {r7, lr} + 8000d5a: b088 sub sp, #32 + 8000d5c: af00 add r7, sp, #0 /* USER CODE BEGIN FSMC_Init 0 */ /* USER CODE END FSMC_Init 0 */ FSMC_NORSRAM_TimingTypeDef Timing = {0}; - 8000e16: 1d3b adds r3, r7, #4 - 8000e18: 2200 movs r2, #0 - 8000e1a: 601a str r2, [r3, #0] - 8000e1c: 605a str r2, [r3, #4] - 8000e1e: 609a str r2, [r3, #8] - 8000e20: 60da str r2, [r3, #12] - 8000e22: 611a str r2, [r3, #16] - 8000e24: 615a str r2, [r3, #20] - 8000e26: 619a str r2, [r3, #24] + 8000d5e: 1d3b adds r3, r7, #4 + 8000d60: 2200 movs r2, #0 + 8000d62: 601a str r2, [r3, #0] + 8000d64: 605a str r2, [r3, #4] + 8000d66: 609a str r2, [r3, #8] + 8000d68: 60da str r2, [r3, #12] + 8000d6a: 611a str r2, [r3, #16] + 8000d6c: 615a str r2, [r3, #20] + 8000d6e: 619a str r2, [r3, #24] /* USER CODE END FSMC_Init 1 */ /** Perform the SRAM1 memory initialization sequence */ hsram1.Instance = FSMC_NORSRAM_DEVICE; - 8000e28: 4b28 ldr r3, [pc, #160] ; (8000ecc ) - 8000e2a: f04f 4220 mov.w r2, #2684354560 ; 0xa0000000 - 8000e2e: 601a str r2, [r3, #0] + 8000d70: 4b28 ldr r3, [pc, #160] ; (8000e14 ) + 8000d72: f04f 4220 mov.w r2, #2684354560 ; 0xa0000000 + 8000d76: 601a str r2, [r3, #0] hsram1.Extended = FSMC_NORSRAM_EXTENDED_DEVICE; - 8000e30: 4b26 ldr r3, [pc, #152] ; (8000ecc ) - 8000e32: 4a27 ldr r2, [pc, #156] ; (8000ed0 ) - 8000e34: 605a str r2, [r3, #4] + 8000d78: 4b26 ldr r3, [pc, #152] ; (8000e14 ) + 8000d7a: 4a27 ldr r2, [pc, #156] ; (8000e18 ) + 8000d7c: 605a str r2, [r3, #4] /* hsram1.Init */ hsram1.Init.NSBank = FSMC_NORSRAM_BANK1; - 8000e36: 4b25 ldr r3, [pc, #148] ; (8000ecc ) - 8000e38: 2200 movs r2, #0 - 8000e3a: 609a str r2, [r3, #8] + 8000d7e: 4b25 ldr r3, [pc, #148] ; (8000e14 ) + 8000d80: 2200 movs r2, #0 + 8000d82: 609a str r2, [r3, #8] hsram1.Init.DataAddressMux = FSMC_DATA_ADDRESS_MUX_DISABLE; - 8000e3c: 4b23 ldr r3, [pc, #140] ; (8000ecc ) - 8000e3e: 2200 movs r2, #0 - 8000e40: 60da str r2, [r3, #12] + 8000d84: 4b23 ldr r3, [pc, #140] ; (8000e14 ) + 8000d86: 2200 movs r2, #0 + 8000d88: 60da str r2, [r3, #12] hsram1.Init.MemoryType = FSMC_MEMORY_TYPE_SRAM; - 8000e42: 4b22 ldr r3, [pc, #136] ; (8000ecc ) - 8000e44: 2200 movs r2, #0 - 8000e46: 611a str r2, [r3, #16] + 8000d8a: 4b22 ldr r3, [pc, #136] ; (8000e14 ) + 8000d8c: 2200 movs r2, #0 + 8000d8e: 611a str r2, [r3, #16] hsram1.Init.MemoryDataWidth = FSMC_NORSRAM_MEM_BUS_WIDTH_16; - 8000e48: 4b20 ldr r3, [pc, #128] ; (8000ecc ) - 8000e4a: 2210 movs r2, #16 - 8000e4c: 615a str r2, [r3, #20] + 8000d90: 4b20 ldr r3, [pc, #128] ; (8000e14 ) + 8000d92: 2210 movs r2, #16 + 8000d94: 615a str r2, [r3, #20] hsram1.Init.BurstAccessMode = FSMC_BURST_ACCESS_MODE_DISABLE; - 8000e4e: 4b1f ldr r3, [pc, #124] ; (8000ecc ) - 8000e50: 2200 movs r2, #0 - 8000e52: 619a str r2, [r3, #24] + 8000d96: 4b1f ldr r3, [pc, #124] ; (8000e14 ) + 8000d98: 2200 movs r2, #0 + 8000d9a: 619a str r2, [r3, #24] hsram1.Init.WaitSignalPolarity = FSMC_WAIT_SIGNAL_POLARITY_LOW; - 8000e54: 4b1d ldr r3, [pc, #116] ; (8000ecc ) - 8000e56: 2200 movs r2, #0 - 8000e58: 61da str r2, [r3, #28] + 8000d9c: 4b1d ldr r3, [pc, #116] ; (8000e14 ) + 8000d9e: 2200 movs r2, #0 + 8000da0: 61da str r2, [r3, #28] hsram1.Init.WrapMode = FSMC_WRAP_MODE_DISABLE; - 8000e5a: 4b1c ldr r3, [pc, #112] ; (8000ecc ) - 8000e5c: 2200 movs r2, #0 - 8000e5e: 621a str r2, [r3, #32] + 8000da2: 4b1c ldr r3, [pc, #112] ; (8000e14 ) + 8000da4: 2200 movs r2, #0 + 8000da6: 621a str r2, [r3, #32] hsram1.Init.WaitSignalActive = FSMC_WAIT_TIMING_BEFORE_WS; - 8000e60: 4b1a ldr r3, [pc, #104] ; (8000ecc ) - 8000e62: 2200 movs r2, #0 - 8000e64: 625a str r2, [r3, #36] ; 0x24 + 8000da8: 4b1a ldr r3, [pc, #104] ; (8000e14 ) + 8000daa: 2200 movs r2, #0 + 8000dac: 625a str r2, [r3, #36] ; 0x24 hsram1.Init.WriteOperation = FSMC_WRITE_OPERATION_ENABLE; - 8000e66: 4b19 ldr r3, [pc, #100] ; (8000ecc ) - 8000e68: f44f 5280 mov.w r2, #4096 ; 0x1000 - 8000e6c: 629a str r2, [r3, #40] ; 0x28 + 8000dae: 4b19 ldr r3, [pc, #100] ; (8000e14 ) + 8000db0: f44f 5280 mov.w r2, #4096 ; 0x1000 + 8000db4: 629a str r2, [r3, #40] ; 0x28 hsram1.Init.WaitSignal = FSMC_WAIT_SIGNAL_DISABLE; - 8000e6e: 4b17 ldr r3, [pc, #92] ; (8000ecc ) - 8000e70: 2200 movs r2, #0 - 8000e72: 62da str r2, [r3, #44] ; 0x2c + 8000db6: 4b17 ldr r3, [pc, #92] ; (8000e14 ) + 8000db8: 2200 movs r2, #0 + 8000dba: 62da str r2, [r3, #44] ; 0x2c hsram1.Init.ExtendedMode = FSMC_EXTENDED_MODE_DISABLE; - 8000e74: 4b15 ldr r3, [pc, #84] ; (8000ecc ) - 8000e76: 2200 movs r2, #0 - 8000e78: 631a str r2, [r3, #48] ; 0x30 + 8000dbc: 4b15 ldr r3, [pc, #84] ; (8000e14 ) + 8000dbe: 2200 movs r2, #0 + 8000dc0: 631a str r2, [r3, #48] ; 0x30 hsram1.Init.AsynchronousWait = FSMC_ASYNCHRONOUS_WAIT_DISABLE; - 8000e7a: 4b14 ldr r3, [pc, #80] ; (8000ecc ) - 8000e7c: 2200 movs r2, #0 - 8000e7e: 635a str r2, [r3, #52] ; 0x34 + 8000dc2: 4b14 ldr r3, [pc, #80] ; (8000e14 ) + 8000dc4: 2200 movs r2, #0 + 8000dc6: 635a str r2, [r3, #52] ; 0x34 hsram1.Init.WriteBurst = FSMC_WRITE_BURST_DISABLE; - 8000e80: 4b12 ldr r3, [pc, #72] ; (8000ecc ) - 8000e82: 2200 movs r2, #0 - 8000e84: 639a str r2, [r3, #56] ; 0x38 + 8000dc8: 4b12 ldr r3, [pc, #72] ; (8000e14 ) + 8000dca: 2200 movs r2, #0 + 8000dcc: 639a str r2, [r3, #56] ; 0x38 /* Timing */ Timing.AddressSetupTime = 15; - 8000e86: 230f movs r3, #15 - 8000e88: 607b str r3, [r7, #4] + 8000dce: 230f movs r3, #15 + 8000dd0: 607b str r3, [r7, #4] Timing.AddressHoldTime = 15; - 8000e8a: 230f movs r3, #15 - 8000e8c: 60bb str r3, [r7, #8] + 8000dd2: 230f movs r3, #15 + 8000dd4: 60bb str r3, [r7, #8] Timing.DataSetupTime = 255; - 8000e8e: 23ff movs r3, #255 ; 0xff - 8000e90: 60fb str r3, [r7, #12] + 8000dd6: 23ff movs r3, #255 ; 0xff + 8000dd8: 60fb str r3, [r7, #12] Timing.BusTurnAroundDuration = 15; - 8000e92: 230f movs r3, #15 - 8000e94: 613b str r3, [r7, #16] + 8000dda: 230f movs r3, #15 + 8000ddc: 613b str r3, [r7, #16] Timing.CLKDivision = 16; - 8000e96: 2310 movs r3, #16 - 8000e98: 617b str r3, [r7, #20] + 8000dde: 2310 movs r3, #16 + 8000de0: 617b str r3, [r7, #20] Timing.DataLatency = 17; - 8000e9a: 2311 movs r3, #17 - 8000e9c: 61bb str r3, [r7, #24] + 8000de2: 2311 movs r3, #17 + 8000de4: 61bb str r3, [r7, #24] Timing.AccessMode = FSMC_ACCESS_MODE_A; - 8000e9e: 2300 movs r3, #0 - 8000ea0: 61fb str r3, [r7, #28] + 8000de6: 2300 movs r3, #0 + 8000de8: 61fb str r3, [r7, #28] /* ExtTiming */ if (HAL_SRAM_Init(&hsram1, &Timing, NULL) != HAL_OK) - 8000ea2: 1d3b adds r3, r7, #4 - 8000ea4: 2200 movs r2, #0 - 8000ea6: 4619 mov r1, r3 - 8000ea8: 4808 ldr r0, [pc, #32] ; (8000ecc ) - 8000eaa: f001 f883 bl 8001fb4 - 8000eae: 4603 mov r3, r0 - 8000eb0: 2b00 cmp r3, #0 - 8000eb2: d001 beq.n 8000eb8 + 8000dea: 1d3b adds r3, r7, #4 + 8000dec: 2200 movs r2, #0 + 8000dee: 4619 mov r1, r3 + 8000df0: 4808 ldr r0, [pc, #32] ; (8000e14 ) + 8000df2: f001 f86b bl 8001ecc + 8000df6: 4603 mov r3, r0 + 8000df8: 2b00 cmp r3, #0 + 8000dfa: d001 beq.n 8000e00 { Error_Handler( ); - 8000eb4: f000 f810 bl 8000ed8 + 8000dfc: f000 f810 bl 8000e20 } /** Disconnect NADV */ __HAL_AFIO_FSMCNADV_DISCONNECTED(); - 8000eb8: 4b06 ldr r3, [pc, #24] ; (8000ed4 ) - 8000eba: 69db ldr r3, [r3, #28] - 8000ebc: 4a05 ldr r2, [pc, #20] ; (8000ed4 ) - 8000ebe: f443 6380 orr.w r3, r3, #1024 ; 0x400 - 8000ec2: 61d3 str r3, [r2, #28] + 8000e00: 4b06 ldr r3, [pc, #24] ; (8000e1c ) + 8000e02: 69db ldr r3, [r3, #28] + 8000e04: 4a05 ldr r2, [pc, #20] ; (8000e1c ) + 8000e06: f443 6380 orr.w r3, r3, #1024 ; 0x400 + 8000e0a: 61d3 str r3, [r2, #28] /* USER CODE BEGIN FSMC_Init 2 */ /* USER CODE END FSMC_Init 2 */ } - 8000ec4: bf00 nop - 8000ec6: 3720 adds r7, #32 - 8000ec8: 46bd mov sp, r7 - 8000eca: bd80 pop {r7, pc} - 8000ecc: 20000180 .word 0x20000180 - 8000ed0: a0000104 .word 0xa0000104 - 8000ed4: 40010000 .word 0x40010000 + 8000e0c: bf00 nop + 8000e0e: 3720 adds r7, #32 + 8000e10: 46bd mov sp, r7 + 8000e12: bd80 pop {r7, pc} + 8000e14: 20000180 .word 0x20000180 + 8000e18: a0000104 .word 0xa0000104 + 8000e1c: 40010000 .word 0x40010000 -08000ed8 : +08000e20 : /** * @brief This function is executed in case of error occurrence. * @retval None */ void Error_Handler(void) { - 8000ed8: b480 push {r7} - 8000eda: af00 add r7, sp, #0 + 8000e20: b480 push {r7} + 8000e22: 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"); - 8000edc: b672 cpsid i + 8000e24: b672 cpsid i } - 8000ede: bf00 nop + 8000e26: bf00 nop /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ __disable_irq(); while (1) - 8000ee0: e7fe b.n 8000ee0 + 8000e28: e7fe b.n 8000e28 ... -08000ee4 : +08000e2c : /* USER CODE END 0 */ /** * Initializes the Global MSP. */ void HAL_MspInit(void) { - 8000ee4: b480 push {r7} - 8000ee6: b083 sub sp, #12 - 8000ee8: af00 add r7, sp, #0 + 8000e2c: b480 push {r7} + 8000e2e: b083 sub sp, #12 + 8000e30: af00 add r7, sp, #0 /* USER CODE BEGIN MspInit 0 */ /* USER CODE END MspInit 0 */ __HAL_RCC_AFIO_CLK_ENABLE(); - 8000eea: 4b0e ldr r3, [pc, #56] ; (8000f24 ) - 8000eec: 699b ldr r3, [r3, #24] - 8000eee: 4a0d ldr r2, [pc, #52] ; (8000f24 ) - 8000ef0: f043 0301 orr.w r3, r3, #1 - 8000ef4: 6193 str r3, [r2, #24] - 8000ef6: 4b0b ldr r3, [pc, #44] ; (8000f24 ) - 8000ef8: 699b ldr r3, [r3, #24] - 8000efa: f003 0301 and.w r3, r3, #1 - 8000efe: 607b str r3, [r7, #4] - 8000f00: 687b ldr r3, [r7, #4] + 8000e32: 4b0e ldr r3, [pc, #56] ; (8000e6c ) + 8000e34: 699b ldr r3, [r3, #24] + 8000e36: 4a0d ldr r2, [pc, #52] ; (8000e6c ) + 8000e38: f043 0301 orr.w r3, r3, #1 + 8000e3c: 6193 str r3, [r2, #24] + 8000e3e: 4b0b ldr r3, [pc, #44] ; (8000e6c ) + 8000e40: 699b ldr r3, [r3, #24] + 8000e42: f003 0301 and.w r3, r3, #1 + 8000e46: 607b str r3, [r7, #4] + 8000e48: 687b ldr r3, [r7, #4] __HAL_RCC_PWR_CLK_ENABLE(); - 8000f02: 4b08 ldr r3, [pc, #32] ; (8000f24 ) - 8000f04: 69db ldr r3, [r3, #28] - 8000f06: 4a07 ldr r2, [pc, #28] ; (8000f24 ) - 8000f08: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 8000f0c: 61d3 str r3, [r2, #28] - 8000f0e: 4b05 ldr r3, [pc, #20] ; (8000f24 ) - 8000f10: 69db ldr r3, [r3, #28] - 8000f12: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8000f16: 603b str r3, [r7, #0] - 8000f18: 683b ldr r3, [r7, #0] + 8000e4a: 4b08 ldr r3, [pc, #32] ; (8000e6c ) + 8000e4c: 69db ldr r3, [r3, #28] + 8000e4e: 4a07 ldr r2, [pc, #28] ; (8000e6c ) + 8000e50: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8000e54: 61d3 str r3, [r2, #28] + 8000e56: 4b05 ldr r3, [pc, #20] ; (8000e6c ) + 8000e58: 69db ldr r3, [r3, #28] + 8000e5a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8000e5e: 603b str r3, [r7, #0] + 8000e60: 683b ldr r3, [r7, #0] /* System interrupt init*/ /* USER CODE BEGIN MspInit 1 */ /* USER CODE END MspInit 1 */ } - 8000f1a: bf00 nop - 8000f1c: 370c adds r7, #12 - 8000f1e: 46bd mov sp, r7 - 8000f20: bc80 pop {r7} - 8000f22: 4770 bx lr - 8000f24: 40021000 .word 0x40021000 + 8000e62: bf00 nop + 8000e64: 370c adds r7, #12 + 8000e66: 46bd mov sp, r7 + 8000e68: bc80 pop {r7} + 8000e6a: 4770 bx lr + 8000e6c: 40021000 .word 0x40021000 -08000f28 : +08000e70 : * This function configures the hardware resources used in this example * @param huart: UART handle pointer * @retval None */ void HAL_UART_MspInit(UART_HandleTypeDef* huart) { - 8000f28: b580 push {r7, lr} - 8000f2a: b088 sub sp, #32 - 8000f2c: af00 add r7, sp, #0 - 8000f2e: 6078 str r0, [r7, #4] + 8000e70: b580 push {r7, lr} + 8000e72: b088 sub sp, #32 + 8000e74: af00 add r7, sp, #0 + 8000e76: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct = {0}; - 8000f30: f107 0310 add.w r3, r7, #16 - 8000f34: 2200 movs r2, #0 - 8000f36: 601a str r2, [r3, #0] - 8000f38: 605a str r2, [r3, #4] - 8000f3a: 609a str r2, [r3, #8] - 8000f3c: 60da str r2, [r3, #12] + 8000e78: f107 0310 add.w r3, r7, #16 + 8000e7c: 2200 movs r2, #0 + 8000e7e: 601a str r2, [r3, #0] + 8000e80: 605a str r2, [r3, #4] + 8000e82: 609a str r2, [r3, #8] + 8000e84: 60da str r2, [r3, #12] if(huart->Instance==USART1) - 8000f3e: 687b ldr r3, [r7, #4] - 8000f40: 681b ldr r3, [r3, #0] - 8000f42: 4a1c ldr r2, [pc, #112] ; (8000fb4 ) - 8000f44: 4293 cmp r3, r2 - 8000f46: d131 bne.n 8000fac + 8000e86: 687b ldr r3, [r7, #4] + 8000e88: 681b ldr r3, [r3, #0] + 8000e8a: 4a1c ldr r2, [pc, #112] ; (8000efc ) + 8000e8c: 4293 cmp r3, r2 + 8000e8e: d131 bne.n 8000ef4 { /* USER CODE BEGIN USART1_MspInit 0 */ /* USER CODE END USART1_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_USART1_CLK_ENABLE(); - 8000f48: 4b1b ldr r3, [pc, #108] ; (8000fb8 ) - 8000f4a: 699b ldr r3, [r3, #24] - 8000f4c: 4a1a ldr r2, [pc, #104] ; (8000fb8 ) - 8000f4e: f443 4380 orr.w r3, r3, #16384 ; 0x4000 - 8000f52: 6193 str r3, [r2, #24] - 8000f54: 4b18 ldr r3, [pc, #96] ; (8000fb8 ) - 8000f56: 699b ldr r3, [r3, #24] - 8000f58: f403 4380 and.w r3, r3, #16384 ; 0x4000 - 8000f5c: 60fb str r3, [r7, #12] - 8000f5e: 68fb ldr r3, [r7, #12] + 8000e90: 4b1b ldr r3, [pc, #108] ; (8000f00 ) + 8000e92: 699b ldr r3, [r3, #24] + 8000e94: 4a1a ldr r2, [pc, #104] ; (8000f00 ) + 8000e96: f443 4380 orr.w r3, r3, #16384 ; 0x4000 + 8000e9a: 6193 str r3, [r2, #24] + 8000e9c: 4b18 ldr r3, [pc, #96] ; (8000f00 ) + 8000e9e: 699b ldr r3, [r3, #24] + 8000ea0: f403 4380 and.w r3, r3, #16384 ; 0x4000 + 8000ea4: 60fb str r3, [r7, #12] + 8000ea6: 68fb ldr r3, [r7, #12] __HAL_RCC_GPIOA_CLK_ENABLE(); - 8000f60: 4b15 ldr r3, [pc, #84] ; (8000fb8 ) - 8000f62: 699b ldr r3, [r3, #24] - 8000f64: 4a14 ldr r2, [pc, #80] ; (8000fb8 ) - 8000f66: f043 0304 orr.w r3, r3, #4 - 8000f6a: 6193 str r3, [r2, #24] - 8000f6c: 4b12 ldr r3, [pc, #72] ; (8000fb8 ) - 8000f6e: 699b ldr r3, [r3, #24] - 8000f70: f003 0304 and.w r3, r3, #4 - 8000f74: 60bb str r3, [r7, #8] - 8000f76: 68bb ldr r3, [r7, #8] + 8000ea8: 4b15 ldr r3, [pc, #84] ; (8000f00 ) + 8000eaa: 699b ldr r3, [r3, #24] + 8000eac: 4a14 ldr r2, [pc, #80] ; (8000f00 ) + 8000eae: f043 0304 orr.w r3, r3, #4 + 8000eb2: 6193 str r3, [r2, #24] + 8000eb4: 4b12 ldr r3, [pc, #72] ; (8000f00 ) + 8000eb6: 699b ldr r3, [r3, #24] + 8000eb8: f003 0304 and.w r3, r3, #4 + 8000ebc: 60bb str r3, [r7, #8] + 8000ebe: 68bb ldr r3, [r7, #8] /**USART1 GPIO Configuration PA9 ------> USART1_TX PA10 ------> USART1_RX */ GPIO_InitStruct.Pin = GPIO_PIN_9; - 8000f78: f44f 7300 mov.w r3, #512 ; 0x200 - 8000f7c: 613b str r3, [r7, #16] + 8000ec0: f44f 7300 mov.w r3, #512 ; 0x200 + 8000ec4: 613b str r3, [r7, #16] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000f7e: 2302 movs r3, #2 - 8000f80: 617b str r3, [r7, #20] + 8000ec6: 2302 movs r3, #2 + 8000ec8: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - 8000f82: 2303 movs r3, #3 - 8000f84: 61fb str r3, [r7, #28] + 8000eca: 2303 movs r3, #3 + 8000ecc: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 8000f86: f107 0310 add.w r3, r7, #16 - 8000f8a: 4619 mov r1, r3 - 8000f8c: 480b ldr r0, [pc, #44] ; (8000fbc ) - 8000f8e: f000 fa25 bl 80013dc + 8000ece: f107 0310 add.w r3, r7, #16 + 8000ed2: 4619 mov r1, r3 + 8000ed4: 480b ldr r0, [pc, #44] ; (8000f04 ) + 8000ed6: f000 fa25 bl 8001324 GPIO_InitStruct.Pin = GPIO_PIN_10; - 8000f92: f44f 6380 mov.w r3, #1024 ; 0x400 - 8000f96: 613b str r3, [r7, #16] + 8000eda: f44f 6380 mov.w r3, #1024 ; 0x400 + 8000ede: 613b str r3, [r7, #16] GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - 8000f98: 2300 movs r3, #0 - 8000f9a: 617b str r3, [r7, #20] + 8000ee0: 2300 movs r3, #0 + 8000ee2: 617b str r3, [r7, #20] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000f9c: 2300 movs r3, #0 - 8000f9e: 61bb str r3, [r7, #24] + 8000ee4: 2300 movs r3, #0 + 8000ee6: 61bb str r3, [r7, #24] HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 8000fa0: f107 0310 add.w r3, r7, #16 - 8000fa4: 4619 mov r1, r3 - 8000fa6: 4805 ldr r0, [pc, #20] ; (8000fbc ) - 8000fa8: f000 fa18 bl 80013dc + 8000ee8: f107 0310 add.w r3, r7, #16 + 8000eec: 4619 mov r1, r3 + 8000eee: 4805 ldr r0, [pc, #20] ; (8000f04 ) + 8000ef0: f000 fa18 bl 8001324 /* USER CODE BEGIN USART1_MspInit 1 */ /* USER CODE END USART1_MspInit 1 */ } } - 8000fac: bf00 nop - 8000fae: 3720 adds r7, #32 - 8000fb0: 46bd mov sp, r7 - 8000fb2: bd80 pop {r7, pc} - 8000fb4: 40013800 .word 0x40013800 - 8000fb8: 40021000 .word 0x40021000 - 8000fbc: 40010800 .word 0x40010800 + 8000ef4: bf00 nop + 8000ef6: 3720 adds r7, #32 + 8000ef8: 46bd mov sp, r7 + 8000efa: bd80 pop {r7, pc} + 8000efc: 40013800 .word 0x40013800 + 8000f00: 40021000 .word 0x40021000 + 8000f04: 40010800 .word 0x40010800 -08000fc0 : +08000f08 : } static uint32_t FSMC_Initialized = 0; static void HAL_FSMC_MspInit(void){ - 8000fc0: b580 push {r7, lr} - 8000fc2: b086 sub sp, #24 - 8000fc4: af00 add r7, sp, #0 + 8000f08: b580 push {r7, lr} + 8000f0a: b086 sub sp, #24 + 8000f0c: af00 add r7, sp, #0 /* USER CODE BEGIN FSMC_MspInit 0 */ /* USER CODE END FSMC_MspInit 0 */ GPIO_InitTypeDef GPIO_InitStruct ={0}; - 8000fc6: f107 0308 add.w r3, r7, #8 - 8000fca: 2200 movs r2, #0 - 8000fcc: 601a str r2, [r3, #0] - 8000fce: 605a str r2, [r3, #4] - 8000fd0: 609a str r2, [r3, #8] - 8000fd2: 60da str r2, [r3, #12] + 8000f0e: f107 0308 add.w r3, r7, #8 + 8000f12: 2200 movs r2, #0 + 8000f14: 601a str r2, [r3, #0] + 8000f16: 605a str r2, [r3, #4] + 8000f18: 609a str r2, [r3, #8] + 8000f1a: 60da str r2, [r3, #12] if (FSMC_Initialized) { - 8000fd4: 4b18 ldr r3, [pc, #96] ; (8001038 ) - 8000fd6: 681b ldr r3, [r3, #0] - 8000fd8: 2b00 cmp r3, #0 - 8000fda: d129 bne.n 8001030 + 8000f1c: 4b18 ldr r3, [pc, #96] ; (8000f80 ) + 8000f1e: 681b ldr r3, [r3, #0] + 8000f20: 2b00 cmp r3, #0 + 8000f22: d129 bne.n 8000f78 return; } FSMC_Initialized = 1; - 8000fdc: 4b16 ldr r3, [pc, #88] ; (8001038 ) - 8000fde: 2201 movs r2, #1 - 8000fe0: 601a str r2, [r3, #0] + 8000f24: 4b16 ldr r3, [pc, #88] ; (8000f80 ) + 8000f26: 2201 movs r2, #1 + 8000f28: 601a str r2, [r3, #0] /* Peripheral clock enable */ __HAL_RCC_FSMC_CLK_ENABLE(); - 8000fe2: 4b16 ldr r3, [pc, #88] ; (800103c ) - 8000fe4: 695b ldr r3, [r3, #20] - 8000fe6: 4a15 ldr r2, [pc, #84] ; (800103c ) - 8000fe8: f443 7380 orr.w r3, r3, #256 ; 0x100 - 8000fec: 6153 str r3, [r2, #20] - 8000fee: 4b13 ldr r3, [pc, #76] ; (800103c ) - 8000ff0: 695b ldr r3, [r3, #20] - 8000ff2: f403 7380 and.w r3, r3, #256 ; 0x100 - 8000ff6: 607b str r3, [r7, #4] - 8000ff8: 687b ldr r3, [r7, #4] + 8000f2a: 4b16 ldr r3, [pc, #88] ; (8000f84 ) + 8000f2c: 695b ldr r3, [r3, #20] + 8000f2e: 4a15 ldr r2, [pc, #84] ; (8000f84 ) + 8000f30: f443 7380 orr.w r3, r3, #256 ; 0x100 + 8000f34: 6153 str r3, [r2, #20] + 8000f36: 4b13 ldr r3, [pc, #76] ; (8000f84 ) + 8000f38: 695b ldr r3, [r3, #20] + 8000f3a: f403 7380 and.w r3, r3, #256 ; 0x100 + 8000f3e: 607b str r3, [r7, #4] + 8000f40: 687b ldr r3, [r7, #4] PD1 ------> FSMC_D3 PD4 ------> FSMC_NOE PD5 ------> FSMC_NWE PD7 ------> FSMC_NE1 */ GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10 - 8000ffa: f64f 7380 movw r3, #65408 ; 0xff80 - 8000ffe: 60bb str r3, [r7, #8] + 8000f42: f64f 7380 movw r3, #65408 ; 0xff80 + 8000f46: 60bb str r3, [r7, #8] |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14 |GPIO_PIN_15; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001000: 2302 movs r3, #2 - 8001002: 60fb str r3, [r7, #12] + 8000f48: 2302 movs r3, #2 + 8000f4a: 60fb str r3, [r7, #12] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - 8001004: 2303 movs r3, #3 - 8001006: 617b str r3, [r7, #20] + 8000f4c: 2303 movs r3, #3 + 8000f4e: 617b str r3, [r7, #20] HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); - 8001008: f107 0308 add.w r3, r7, #8 - 800100c: 4619 mov r1, r3 - 800100e: 480c ldr r0, [pc, #48] ; (8001040 ) - 8001010: f000 f9e4 bl 80013dc + 8000f50: f107 0308 add.w r3, r7, #8 + 8000f54: 4619 mov r1, r3 + 8000f56: 480c ldr r0, [pc, #48] ; (8000f88 ) + 8000f58: f000 f9e4 bl 8001324 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11 - 8001014: f64c 73b3 movw r3, #53171 ; 0xcfb3 - 8001018: 60bb str r3, [r7, #8] + 8000f5c: f64c 73b3 movw r3, #53171 ; 0xcfb3 + 8000f60: 60bb str r3, [r7, #8] |GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_7; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 800101a: 2302 movs r3, #2 - 800101c: 60fb str r3, [r7, #12] + 8000f62: 2302 movs r3, #2 + 8000f64: 60fb str r3, [r7, #12] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - 800101e: 2303 movs r3, #3 - 8001020: 617b str r3, [r7, #20] + 8000f66: 2303 movs r3, #3 + 8000f68: 617b str r3, [r7, #20] HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - 8001022: f107 0308 add.w r3, r7, #8 - 8001026: 4619 mov r1, r3 - 8001028: 4806 ldr r0, [pc, #24] ; (8001044 ) - 800102a: f000 f9d7 bl 80013dc - 800102e: e000 b.n 8001032 + 8000f6a: f107 0308 add.w r3, r7, #8 + 8000f6e: 4619 mov r1, r3 + 8000f70: 4806 ldr r0, [pc, #24] ; (8000f8c ) + 8000f72: f000 f9d7 bl 8001324 + 8000f76: e000 b.n 8000f7a return; - 8001030: bf00 nop + 8000f78: bf00 nop /* USER CODE BEGIN FSMC_MspInit 1 */ /* USER CODE END FSMC_MspInit 1 */ } - 8001032: 3718 adds r7, #24 - 8001034: 46bd mov sp, r7 - 8001036: bd80 pop {r7, pc} - 8001038: 20001ae4 .word 0x20001ae4 - 800103c: 40021000 .word 0x40021000 - 8001040: 40011800 .word 0x40011800 - 8001044: 40011400 .word 0x40011400 + 8000f7a: 3718 adds r7, #24 + 8000f7c: 46bd mov sp, r7 + 8000f7e: bd80 pop {r7, pc} + 8000f80: 20001ae4 .word 0x20001ae4 + 8000f84: 40021000 .word 0x40021000 + 8000f88: 40011800 .word 0x40011800 + 8000f8c: 40011400 .word 0x40011400 -08001048 : +08000f90 : void HAL_SRAM_MspInit(SRAM_HandleTypeDef* hsram){ - 8001048: b580 push {r7, lr} - 800104a: b082 sub sp, #8 - 800104c: af00 add r7, sp, #0 - 800104e: 6078 str r0, [r7, #4] + 8000f90: b580 push {r7, lr} + 8000f92: b082 sub sp, #8 + 8000f94: af00 add r7, sp, #0 + 8000f96: 6078 str r0, [r7, #4] /* USER CODE BEGIN SRAM_MspInit 0 */ /* USER CODE END SRAM_MspInit 0 */ HAL_FSMC_MspInit(); - 8001050: f7ff ffb6 bl 8000fc0 + 8000f98: f7ff ffb6 bl 8000f08 /* USER CODE BEGIN SRAM_MspInit 1 */ /* USER CODE END SRAM_MspInit 1 */ } - 8001054: bf00 nop - 8001056: 3708 adds r7, #8 - 8001058: 46bd mov sp, r7 - 800105a: bd80 pop {r7, pc} + 8000f9c: bf00 nop + 8000f9e: 3708 adds r7, #8 + 8000fa0: 46bd mov sp, r7 + 8000fa2: bd80 pop {r7, pc} -0800105c : +08000fa4 : /******************************************************************************/ /** * @brief This function handles Non maskable interrupt. */ void NMI_Handler(void) { - 800105c: b480 push {r7} - 800105e: af00 add r7, sp, #0 + 8000fa4: b480 push {r7} + 8000fa6: 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) - 8001060: e7fe b.n 8001060 + 8000fa8: e7fe b.n 8000fa8 -08001062 : +08000faa : /** * @brief This function handles Hard fault interrupt. */ void HardFault_Handler(void) { - 8001062: b480 push {r7} - 8001064: af00 add r7, sp, #0 + 8000faa: b480 push {r7} + 8000fac: af00 add r7, sp, #0 /* USER CODE BEGIN HardFault_IRQn 0 */ /* USER CODE END HardFault_IRQn 0 */ while (1) - 8001066: e7fe b.n 8001066 + 8000fae: e7fe b.n 8000fae -08001068 : +08000fb0 : /** * @brief This function handles Memory management fault. */ void MemManage_Handler(void) { - 8001068: b480 push {r7} - 800106a: af00 add r7, sp, #0 + 8000fb0: b480 push {r7} + 8000fb2: af00 add r7, sp, #0 /* USER CODE BEGIN MemoryManagement_IRQn 0 */ /* USER CODE END MemoryManagement_IRQn 0 */ while (1) - 800106c: e7fe b.n 800106c + 8000fb4: e7fe b.n 8000fb4 -0800106e : +08000fb6 : /** * @brief This function handles Prefetch fault, memory access fault. */ void BusFault_Handler(void) { - 800106e: b480 push {r7} - 8001070: af00 add r7, sp, #0 + 8000fb6: b480 push {r7} + 8000fb8: af00 add r7, sp, #0 /* USER CODE BEGIN BusFault_IRQn 0 */ /* USER CODE END BusFault_IRQn 0 */ while (1) - 8001072: e7fe b.n 8001072 + 8000fba: e7fe b.n 8000fba -08001074 : +08000fbc : /** * @brief This function handles Undefined instruction or illegal state. */ void UsageFault_Handler(void) { - 8001074: b480 push {r7} - 8001076: af00 add r7, sp, #0 + 8000fbc: b480 push {r7} + 8000fbe: af00 add r7, sp, #0 /* USER CODE BEGIN UsageFault_IRQn 0 */ /* USER CODE END UsageFault_IRQn 0 */ while (1) - 8001078: e7fe b.n 8001078 + 8000fc0: e7fe b.n 8000fc0 -0800107a : +08000fc2 : /** * @brief This function handles System service call via SWI instruction. */ void SVC_Handler(void) { - 800107a: b480 push {r7} - 800107c: af00 add r7, sp, #0 + 8000fc2: b480 push {r7} + 8000fc4: af00 add r7, sp, #0 /* USER CODE END SVCall_IRQn 0 */ /* USER CODE BEGIN SVCall_IRQn 1 */ /* USER CODE END SVCall_IRQn 1 */ } - 800107e: bf00 nop - 8001080: 46bd mov sp, r7 - 8001082: bc80 pop {r7} - 8001084: 4770 bx lr + 8000fc6: bf00 nop + 8000fc8: 46bd mov sp, r7 + 8000fca: bc80 pop {r7} + 8000fcc: 4770 bx lr -08001086 : +08000fce : /** * @brief This function handles Debug monitor. */ void DebugMon_Handler(void) { - 8001086: b480 push {r7} - 8001088: af00 add r7, sp, #0 + 8000fce: b480 push {r7} + 8000fd0: af00 add r7, sp, #0 /* USER CODE END DebugMonitor_IRQn 0 */ /* USER CODE BEGIN DebugMonitor_IRQn 1 */ /* USER CODE END DebugMonitor_IRQn 1 */ } - 800108a: bf00 nop - 800108c: 46bd mov sp, r7 - 800108e: bc80 pop {r7} - 8001090: 4770 bx lr + 8000fd2: bf00 nop + 8000fd4: 46bd mov sp, r7 + 8000fd6: bc80 pop {r7} + 8000fd8: 4770 bx lr -08001092 : +08000fda : /** * @brief This function handles Pendable request for system service. */ void PendSV_Handler(void) { - 8001092: b480 push {r7} - 8001094: af00 add r7, sp, #0 + 8000fda: b480 push {r7} + 8000fdc: af00 add r7, sp, #0 /* USER CODE END PendSV_IRQn 0 */ /* USER CODE BEGIN PendSV_IRQn 1 */ /* USER CODE END PendSV_IRQn 1 */ } - 8001096: bf00 nop - 8001098: 46bd mov sp, r7 - 800109a: bc80 pop {r7} - 800109c: 4770 bx lr + 8000fde: bf00 nop + 8000fe0: 46bd mov sp, r7 + 8000fe2: bc80 pop {r7} + 8000fe4: 4770 bx lr -0800109e : +08000fe6 : /** * @brief This function handles System tick timer. */ void SysTick_Handler(void) { - 800109e: b580 push {r7, lr} - 80010a0: af00 add r7, sp, #0 + 8000fe6: b580 push {r7, lr} + 8000fe8: af00 add r7, sp, #0 /* USER CODE BEGIN SysTick_IRQn 0 */ lv_tick_inc(1); - 80010a2: 2001 movs r0, #1 - 80010a4: f02f fb6c bl 8030780 + 8000fea: 2001 movs r0, #1 + 8000fec: f02f fb7e bl 80306ec /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); - 80010a8: f000 f874 bl 8001194 + 8000ff0: f000 f874 bl 80010dc /* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE END SysTick_IRQn 1 */ } - 80010ac: bf00 nop - 80010ae: bd80 pop {r7, pc} + 8000ff4: bf00 nop + 8000ff6: bd80 pop {r7, pc} -080010b0 : +08000ff8 : * @note This function should be used only after reset. * @param None * @retval None */ void SystemInit (void) { - 80010b0: b480 push {r7} - 80010b2: af00 add r7, sp, #0 + 8000ff8: b480 push {r7} + 8000ffa: af00 add r7, sp, #0 /* Configure the Vector Table location -------------------------------------*/ #if defined(USER_VECT_TAB_ADDRESS) SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */ #endif /* USER_VECT_TAB_ADDRESS */ } - 80010b4: bf00 nop - 80010b6: 46bd mov sp, r7 - 80010b8: bc80 pop {r7} - 80010ba: 4770 bx lr + 8000ffc: bf00 nop + 8000ffe: 46bd mov sp, r7 + 8001000: bc80 pop {r7} + 8001002: 4770 bx lr -080010bc : +08001004 : .weak Reset_Handler .type Reset_Handler, %function Reset_Handler: /* Call the clock system initialization function.*/ bl SystemInit - 80010bc: f7ff fff8 bl 80010b0 + 8001004: f7ff fff8 bl 8000ff8 /* Copy the data segment initializers from flash to SRAM */ ldr r0, =_sdata - 80010c0: 480b ldr r0, [pc, #44] ; (80010f0 ) + 8001008: 480b ldr r0, [pc, #44] ; (8001038 ) ldr r1, =_edata - 80010c2: 490c ldr r1, [pc, #48] ; (80010f4 ) + 800100a: 490c ldr r1, [pc, #48] ; (800103c ) ldr r2, =_sidata - 80010c4: 4a0c ldr r2, [pc, #48] ; (80010f8 ) + 800100c: 4a0c ldr r2, [pc, #48] ; (8001040 ) movs r3, #0 - 80010c6: 2300 movs r3, #0 + 800100e: 2300 movs r3, #0 b LoopCopyDataInit - 80010c8: e002 b.n 80010d0 + 8001010: e002 b.n 8001018 -080010ca : +08001012 : CopyDataInit: ldr r4, [r2, r3] - 80010ca: 58d4 ldr r4, [r2, r3] + 8001012: 58d4 ldr r4, [r2, r3] str r4, [r0, r3] - 80010cc: 50c4 str r4, [r0, r3] + 8001014: 50c4 str r4, [r0, r3] adds r3, r3, #4 - 80010ce: 3304 adds r3, #4 + 8001016: 3304 adds r3, #4 -080010d0 : +08001018 : LoopCopyDataInit: adds r4, r0, r3 - 80010d0: 18c4 adds r4, r0, r3 + 8001018: 18c4 adds r4, r0, r3 cmp r4, r1 - 80010d2: 428c cmp r4, r1 + 800101a: 428c cmp r4, r1 bcc CopyDataInit - 80010d4: d3f9 bcc.n 80010ca + 800101c: d3f9 bcc.n 8001012 /* Zero fill the bss segment. */ ldr r2, =_sbss - 80010d6: 4a09 ldr r2, [pc, #36] ; (80010fc ) + 800101e: 4a09 ldr r2, [pc, #36] ; (8001044 ) ldr r4, =_ebss - 80010d8: 4c09 ldr r4, [pc, #36] ; (8001100 ) + 8001020: 4c09 ldr r4, [pc, #36] ; (8001048 ) movs r3, #0 - 80010da: 2300 movs r3, #0 + 8001022: 2300 movs r3, #0 b LoopFillZerobss - 80010dc: e001 b.n 80010e2 + 8001024: e001 b.n 800102a -080010de : +08001026 : FillZerobss: str r3, [r2] - 80010de: 6013 str r3, [r2, #0] + 8001026: 6013 str r3, [r2, #0] adds r2, r2, #4 - 80010e0: 3204 adds r2, #4 + 8001028: 3204 adds r2, #4 -080010e2 : +0800102a : LoopFillZerobss: cmp r2, r4 - 80010e2: 42a2 cmp r2, r4 + 800102a: 42a2 cmp r2, r4 bcc FillZerobss - 80010e4: d3fb bcc.n 80010de + 800102c: d3fb bcc.n 8001026 /* Call static constructors */ bl __libc_init_array - 80010e6: f045 fd49 bl 8046b7c <__libc_init_array> + 800102e: f045 fd5b bl 8046ae8 <__libc_init_array> /* Call the application's entry point.*/ bl main - 80010ea: f7ff fc8b bl 8000a04

+ 8001032: f7ff fce7 bl 8000a04
bx lr - 80010ee: 4770 bx lr + 8001036: 4770 bx lr ldr r0, =_sdata - 80010f0: 20000000 .word 0x20000000 + 8001038: 20000000 .word 0x20000000 ldr r1, =_edata - 80010f4: 2000011c .word 0x2000011c + 800103c: 2000011c .word 0x2000011c ldr r2, =_sidata - 80010f8: 08070b7c .word 0x08070b7c + 8001040: 08070ad4 .word 0x08070ad4 ldr r2, =_sbss - 80010fc: 2000011c .word 0x2000011c + 8001044: 2000011c .word 0x2000011c ldr r4, =_ebss - 8001100: 20005f2c .word 0x20005f2c + 8001048: 20005f2c .word 0x20005f2c -08001104 : +0800104c : * @retval : None */ .section .text.Default_Handler,"ax",%progbits Default_Handler: Infinite_Loop: b Infinite_Loop - 8001104: e7fe b.n 8001104 + 800104c: e7fe b.n 800104c ... -08001108 : +08001050 : * need to ensure that the SysTick time base is always set to 1 millisecond * to have correct HAL operation. * @retval HAL status */ HAL_StatusTypeDef HAL_Init(void) { - 8001108: b580 push {r7, lr} - 800110a: af00 add r7, sp, #0 + 8001050: b580 push {r7, lr} + 8001052: af00 add r7, sp, #0 defined(STM32F102x6) || defined(STM32F102xB) || \ defined(STM32F103x6) || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG) || \ defined(STM32F105xC) || defined(STM32F107xC) /* Prefetch buffer is not available on value line devices */ __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); - 800110c: 4b08 ldr r3, [pc, #32] ; (8001130 ) - 800110e: 681b ldr r3, [r3, #0] - 8001110: 4a07 ldr r2, [pc, #28] ; (8001130 ) - 8001112: f043 0310 orr.w r3, r3, #16 - 8001116: 6013 str r3, [r2, #0] + 8001054: 4b08 ldr r3, [pc, #32] ; (8001078 ) + 8001056: 681b ldr r3, [r3, #0] + 8001058: 4a07 ldr r2, [pc, #28] ; (8001078 ) + 800105a: f043 0310 orr.w r3, r3, #16 + 800105e: 6013 str r3, [r2, #0] #endif #endif /* PREFETCH_ENABLE */ /* Set Interrupt Group Priority */ HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); - 8001118: 2003 movs r0, #3 - 800111a: f000 f92b bl 8001374 + 8001060: 2003 movs r0, #3 + 8001062: f000 f92b bl 80012bc /* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */ HAL_InitTick(TICK_INT_PRIORITY); - 800111e: 200f movs r0, #15 - 8001120: f000 f808 bl 8001134 + 8001066: 200f movs r0, #15 + 8001068: f000 f808 bl 800107c /* Init the low level hardware */ HAL_MspInit(); - 8001124: f7ff fede bl 8000ee4 + 800106c: f7ff fede bl 8000e2c /* Return function status */ return HAL_OK; - 8001128: 2300 movs r3, #0 + 8001070: 2300 movs r3, #0 } - 800112a: 4618 mov r0, r3 - 800112c: bd80 pop {r7, pc} - 800112e: bf00 nop - 8001130: 40022000 .word 0x40022000 + 8001072: 4618 mov r0, r3 + 8001074: bd80 pop {r7, pc} + 8001076: bf00 nop + 8001078: 40022000 .word 0x40022000 -08001134 : +0800107c : * implementation in user file. * @param TickPriority Tick interrupt priority. * @retval HAL status */ __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) { - 8001134: b580 push {r7, lr} - 8001136: b082 sub sp, #8 - 8001138: af00 add r7, sp, #0 - 800113a: 6078 str r0, [r7, #4] + 800107c: b580 push {r7, lr} + 800107e: b082 sub sp, #8 + 8001080: af00 add r7, sp, #0 + 8001082: 6078 str r0, [r7, #4] /* Configure the SysTick to have interrupt in 1ms time basis*/ if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U) - 800113c: 4b12 ldr r3, [pc, #72] ; (8001188 ) - 800113e: 681a ldr r2, [r3, #0] - 8001140: 4b12 ldr r3, [pc, #72] ; (800118c ) - 8001142: 781b ldrb r3, [r3, #0] - 8001144: 4619 mov r1, r3 - 8001146: f44f 737a mov.w r3, #1000 ; 0x3e8 - 800114a: fbb3 f3f1 udiv r3, r3, r1 - 800114e: fbb2 f3f3 udiv r3, r2, r3 - 8001152: 4618 mov r0, r3 - 8001154: f000 f935 bl 80013c2 - 8001158: 4603 mov r3, r0 - 800115a: 2b00 cmp r3, #0 - 800115c: d001 beq.n 8001162 + 8001084: 4b12 ldr r3, [pc, #72] ; (80010d0 ) + 8001086: 681a ldr r2, [r3, #0] + 8001088: 4b12 ldr r3, [pc, #72] ; (80010d4 ) + 800108a: 781b ldrb r3, [r3, #0] + 800108c: 4619 mov r1, r3 + 800108e: f44f 737a mov.w r3, #1000 ; 0x3e8 + 8001092: fbb3 f3f1 udiv r3, r3, r1 + 8001096: fbb2 f3f3 udiv r3, r2, r3 + 800109a: 4618 mov r0, r3 + 800109c: f000 f935 bl 800130a + 80010a0: 4603 mov r3, r0 + 80010a2: 2b00 cmp r3, #0 + 80010a4: d001 beq.n 80010aa { return HAL_ERROR; - 800115e: 2301 movs r3, #1 - 8001160: e00e b.n 8001180 + 80010a6: 2301 movs r3, #1 + 80010a8: e00e b.n 80010c8 } /* Configure the SysTick IRQ priority */ if (TickPriority < (1UL << __NVIC_PRIO_BITS)) - 8001162: 687b ldr r3, [r7, #4] - 8001164: 2b0f cmp r3, #15 - 8001166: d80a bhi.n 800117e + 80010aa: 687b ldr r3, [r7, #4] + 80010ac: 2b0f cmp r3, #15 + 80010ae: d80a bhi.n 80010c6 { HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); - 8001168: 2200 movs r2, #0 - 800116a: 6879 ldr r1, [r7, #4] - 800116c: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 8001170: f000 f90b bl 800138a + 80010b0: 2200 movs r2, #0 + 80010b2: 6879 ldr r1, [r7, #4] + 80010b4: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff + 80010b8: f000 f90b bl 80012d2 uwTickPrio = TickPriority; - 8001174: 4a06 ldr r2, [pc, #24] ; (8001190 ) - 8001176: 687b ldr r3, [r7, #4] - 8001178: 6013 str r3, [r2, #0] + 80010bc: 4a06 ldr r2, [pc, #24] ; (80010d8 ) + 80010be: 687b ldr r3, [r7, #4] + 80010c0: 6013 str r3, [r2, #0] { return HAL_ERROR; } /* Return function status */ return HAL_OK; - 800117a: 2300 movs r3, #0 - 800117c: e000 b.n 8001180 + 80010c2: 2300 movs r3, #0 + 80010c4: e000 b.n 80010c8 return HAL_ERROR; - 800117e: 2301 movs r3, #1 + 80010c6: 2301 movs r3, #1 } - 8001180: 4618 mov r0, r3 - 8001182: 3708 adds r7, #8 - 8001184: 46bd mov sp, r7 - 8001186: bd80 pop {r7, pc} - 8001188: 20000030 .word 0x20000030 - 800118c: 20000038 .word 0x20000038 - 8001190: 20000034 .word 0x20000034 + 80010c8: 4618 mov r0, r3 + 80010ca: 3708 adds r7, #8 + 80010cc: 46bd mov sp, r7 + 80010ce: bd80 pop {r7, pc} + 80010d0: 20000030 .word 0x20000030 + 80010d4: 20000038 .word 0x20000038 + 80010d8: 20000034 .word 0x20000034 -08001194 : +080010dc : * @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) { - 8001194: b480 push {r7} - 8001196: af00 add r7, sp, #0 + 80010dc: b480 push {r7} + 80010de: af00 add r7, sp, #0 uwTick += uwTickFreq; - 8001198: 4b05 ldr r3, [pc, #20] ; (80011b0 ) - 800119a: 781b ldrb r3, [r3, #0] - 800119c: 461a mov r2, r3 - 800119e: 4b05 ldr r3, [pc, #20] ; (80011b4 ) - 80011a0: 681b ldr r3, [r3, #0] - 80011a2: 4413 add r3, r2 - 80011a4: 4a03 ldr r2, [pc, #12] ; (80011b4 ) - 80011a6: 6013 str r3, [r2, #0] + 80010e0: 4b05 ldr r3, [pc, #20] ; (80010f8 ) + 80010e2: 781b ldrb r3, [r3, #0] + 80010e4: 461a mov r2, r3 + 80010e6: 4b05 ldr r3, [pc, #20] ; (80010fc ) + 80010e8: 681b ldr r3, [r3, #0] + 80010ea: 4413 add r3, r2 + 80010ec: 4a03 ldr r2, [pc, #12] ; (80010fc ) + 80010ee: 6013 str r3, [r2, #0] } - 80011a8: bf00 nop - 80011aa: 46bd mov sp, r7 - 80011ac: bc80 pop {r7} - 80011ae: 4770 bx lr - 80011b0: 20000038 .word 0x20000038 - 80011b4: 20001ae8 .word 0x20001ae8 + 80010f0: bf00 nop + 80010f2: 46bd mov sp, r7 + 80010f4: bc80 pop {r7} + 80010f6: 4770 bx lr + 80010f8: 20000038 .word 0x20000038 + 80010fc: 20001ae8 .word 0x20001ae8 -080011b8 : +08001100 : * @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) { - 80011b8: b480 push {r7} - 80011ba: af00 add r7, sp, #0 + 8001100: b480 push {r7} + 8001102: af00 add r7, sp, #0 return uwTick; - 80011bc: 4b02 ldr r3, [pc, #8] ; (80011c8 ) - 80011be: 681b ldr r3, [r3, #0] + 8001104: 4b02 ldr r3, [pc, #8] ; (8001110 ) + 8001106: 681b ldr r3, [r3, #0] } - 80011c0: 4618 mov r0, r3 - 80011c2: 46bd mov sp, r7 - 80011c4: bc80 pop {r7} - 80011c6: 4770 bx lr - 80011c8: 20001ae8 .word 0x20001ae8 + 8001108: 4618 mov r0, r3 + 800110a: 46bd mov sp, r7 + 800110c: bc80 pop {r7} + 800110e: 4770 bx lr + 8001110: 20001ae8 .word 0x20001ae8 -080011cc : +08001114 : * implementations in user file. * @param Delay specifies the delay time length, in milliseconds. * @retval None */ __weak void HAL_Delay(uint32_t Delay) { - 80011cc: b580 push {r7, lr} - 80011ce: b084 sub sp, #16 - 80011d0: af00 add r7, sp, #0 - 80011d2: 6078 str r0, [r7, #4] + 8001114: b580 push {r7, lr} + 8001116: b084 sub sp, #16 + 8001118: af00 add r7, sp, #0 + 800111a: 6078 str r0, [r7, #4] uint32_t tickstart = HAL_GetTick(); - 80011d4: f7ff fff0 bl 80011b8 - 80011d8: 60b8 str r0, [r7, #8] + 800111c: f7ff fff0 bl 8001100 + 8001120: 60b8 str r0, [r7, #8] uint32_t wait = Delay; - 80011da: 687b ldr r3, [r7, #4] - 80011dc: 60fb str r3, [r7, #12] + 8001122: 687b ldr r3, [r7, #4] + 8001124: 60fb str r3, [r7, #12] /* Add a freq to guarantee minimum wait */ if (wait < HAL_MAX_DELAY) - 80011de: 68fb ldr r3, [r7, #12] - 80011e0: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 80011e4: d005 beq.n 80011f2 + 8001126: 68fb ldr r3, [r7, #12] + 8001128: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 800112c: d005 beq.n 800113a { wait += (uint32_t)(uwTickFreq); - 80011e6: 4b0a ldr r3, [pc, #40] ; (8001210 ) - 80011e8: 781b ldrb r3, [r3, #0] - 80011ea: 461a mov r2, r3 - 80011ec: 68fb ldr r3, [r7, #12] - 80011ee: 4413 add r3, r2 - 80011f0: 60fb str r3, [r7, #12] + 800112e: 4b0a ldr r3, [pc, #40] ; (8001158 ) + 8001130: 781b ldrb r3, [r3, #0] + 8001132: 461a mov r2, r3 + 8001134: 68fb ldr r3, [r7, #12] + 8001136: 4413 add r3, r2 + 8001138: 60fb str r3, [r7, #12] } while ((HAL_GetTick() - tickstart) < wait) - 80011f2: bf00 nop - 80011f4: f7ff ffe0 bl 80011b8 - 80011f8: 4602 mov r2, r0 - 80011fa: 68bb ldr r3, [r7, #8] - 80011fc: 1ad3 subs r3, r2, r3 - 80011fe: 68fa ldr r2, [r7, #12] - 8001200: 429a cmp r2, r3 - 8001202: d8f7 bhi.n 80011f4 + 800113a: bf00 nop + 800113c: f7ff ffe0 bl 8001100 + 8001140: 4602 mov r2, r0 + 8001142: 68bb ldr r3, [r7, #8] + 8001144: 1ad3 subs r3, r2, r3 + 8001146: 68fa ldr r2, [r7, #12] + 8001148: 429a cmp r2, r3 + 800114a: d8f7 bhi.n 800113c { } } - 8001204: bf00 nop - 8001206: bf00 nop - 8001208: 3710 adds r7, #16 - 800120a: 46bd mov sp, r7 - 800120c: bd80 pop {r7, pc} - 800120e: bf00 nop - 8001210: 20000038 .word 0x20000038 + 800114c: bf00 nop + 800114e: bf00 nop + 8001150: 3710 adds r7, #16 + 8001152: 46bd mov sp, r7 + 8001154: bd80 pop {r7, pc} + 8001156: bf00 nop + 8001158: 20000038 .word 0x20000038 -08001214 <__NVIC_SetPriorityGrouping>: +0800115c <__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) { - 8001214: b480 push {r7} - 8001216: b085 sub sp, #20 - 8001218: af00 add r7, sp, #0 - 800121a: 6078 str r0, [r7, #4] + 800115c: b480 push {r7} + 800115e: b085 sub sp, #20 + 8001160: af00 add r7, sp, #0 + 8001162: 6078 str r0, [r7, #4] uint32_t reg_value; uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 800121c: 687b ldr r3, [r7, #4] - 800121e: f003 0307 and.w r3, r3, #7 - 8001222: 60fb str r3, [r7, #12] + 8001164: 687b ldr r3, [r7, #4] + 8001166: f003 0307 and.w r3, r3, #7 + 800116a: 60fb str r3, [r7, #12] reg_value = SCB->AIRCR; /* read old register configuration */ - 8001224: 4b0c ldr r3, [pc, #48] ; (8001258 <__NVIC_SetPriorityGrouping+0x44>) - 8001226: 68db ldr r3, [r3, #12] - 8001228: 60bb str r3, [r7, #8] + 800116c: 4b0c ldr r3, [pc, #48] ; (80011a0 <__NVIC_SetPriorityGrouping+0x44>) + 800116e: 68db ldr r3, [r3, #12] + 8001170: 60bb str r3, [r7, #8] reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - 800122a: 68ba ldr r2, [r7, #8] - 800122c: f64f 03ff movw r3, #63743 ; 0xf8ff - 8001230: 4013 ands r3, r2 - 8001232: 60bb str r3, [r7, #8] + 8001172: 68ba ldr r2, [r7, #8] + 8001174: f64f 03ff movw r3, #63743 ; 0xf8ff + 8001178: 4013 ands r3, r2 + 800117a: 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 */ - 8001234: 68fb ldr r3, [r7, #12] - 8001236: 021a lsls r2, r3, #8 + 800117c: 68fb ldr r3, [r7, #12] + 800117e: 021a lsls r2, r3, #8 ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - 8001238: 68bb ldr r3, [r7, #8] - 800123a: 4313 orrs r3, r2 + 8001180: 68bb ldr r3, [r7, #8] + 8001182: 4313 orrs r3, r2 reg_value = (reg_value | - 800123c: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000 - 8001240: f443 3300 orr.w r3, r3, #131072 ; 0x20000 - 8001244: 60bb str r3, [r7, #8] + 8001184: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000 + 8001188: f443 3300 orr.w r3, r3, #131072 ; 0x20000 + 800118c: 60bb str r3, [r7, #8] SCB->AIRCR = reg_value; - 8001246: 4a04 ldr r2, [pc, #16] ; (8001258 <__NVIC_SetPriorityGrouping+0x44>) - 8001248: 68bb ldr r3, [r7, #8] - 800124a: 60d3 str r3, [r2, #12] + 800118e: 4a04 ldr r2, [pc, #16] ; (80011a0 <__NVIC_SetPriorityGrouping+0x44>) + 8001190: 68bb ldr r3, [r7, #8] + 8001192: 60d3 str r3, [r2, #12] } - 800124c: bf00 nop - 800124e: 3714 adds r7, #20 - 8001250: 46bd mov sp, r7 - 8001252: bc80 pop {r7} - 8001254: 4770 bx lr - 8001256: bf00 nop - 8001258: e000ed00 .word 0xe000ed00 + 8001194: bf00 nop + 8001196: 3714 adds r7, #20 + 8001198: 46bd mov sp, r7 + 800119a: bc80 pop {r7} + 800119c: 4770 bx lr + 800119e: bf00 nop + 80011a0: e000ed00 .word 0xe000ed00 -0800125c <__NVIC_GetPriorityGrouping>: +080011a4 <__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) { - 800125c: b480 push {r7} - 800125e: af00 add r7, sp, #0 + 80011a4: b480 push {r7} + 80011a6: af00 add r7, sp, #0 return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); - 8001260: 4b04 ldr r3, [pc, #16] ; (8001274 <__NVIC_GetPriorityGrouping+0x18>) - 8001262: 68db ldr r3, [r3, #12] - 8001264: 0a1b lsrs r3, r3, #8 - 8001266: f003 0307 and.w r3, r3, #7 + 80011a8: 4b04 ldr r3, [pc, #16] ; (80011bc <__NVIC_GetPriorityGrouping+0x18>) + 80011aa: 68db ldr r3, [r3, #12] + 80011ac: 0a1b lsrs r3, r3, #8 + 80011ae: f003 0307 and.w r3, r3, #7 } - 800126a: 4618 mov r0, r3 - 800126c: 46bd mov sp, r7 - 800126e: bc80 pop {r7} - 8001270: 4770 bx lr - 8001272: bf00 nop - 8001274: e000ed00 .word 0xe000ed00 + 80011b2: 4618 mov r0, r3 + 80011b4: 46bd mov sp, r7 + 80011b6: bc80 pop {r7} + 80011b8: 4770 bx lr + 80011ba: bf00 nop + 80011bc: e000ed00 .word 0xe000ed00 -08001278 <__NVIC_SetPriority>: +080011c0 <__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) { - 8001278: b480 push {r7} - 800127a: b083 sub sp, #12 - 800127c: af00 add r7, sp, #0 - 800127e: 4603 mov r3, r0 - 8001280: 6039 str r1, [r7, #0] - 8001282: 71fb strb r3, [r7, #7] + 80011c0: b480 push {r7} + 80011c2: b083 sub sp, #12 + 80011c4: af00 add r7, sp, #0 + 80011c6: 4603 mov r3, r0 + 80011c8: 6039 str r1, [r7, #0] + 80011ca: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) - 8001284: f997 3007 ldrsb.w r3, [r7, #7] - 8001288: 2b00 cmp r3, #0 - 800128a: db0a blt.n 80012a2 <__NVIC_SetPriority+0x2a> + 80011cc: f997 3007 ldrsb.w r3, [r7, #7] + 80011d0: 2b00 cmp r3, #0 + 80011d2: db0a blt.n 80011ea <__NVIC_SetPriority+0x2a> { NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 800128c: 683b ldr r3, [r7, #0] - 800128e: b2da uxtb r2, r3 - 8001290: 490c ldr r1, [pc, #48] ; (80012c4 <__NVIC_SetPriority+0x4c>) - 8001292: f997 3007 ldrsb.w r3, [r7, #7] - 8001296: 0112 lsls r2, r2, #4 - 8001298: b2d2 uxtb r2, r2 - 800129a: 440b add r3, r1 - 800129c: f883 2300 strb.w r2, [r3, #768] ; 0x300 + 80011d4: 683b ldr r3, [r7, #0] + 80011d6: b2da uxtb r2, r3 + 80011d8: 490c ldr r1, [pc, #48] ; (800120c <__NVIC_SetPriority+0x4c>) + 80011da: f997 3007 ldrsb.w r3, [r7, #7] + 80011de: 0112 lsls r2, r2, #4 + 80011e0: b2d2 uxtb r2, r2 + 80011e2: 440b add r3, r1 + 80011e4: 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); } } - 80012a0: e00a b.n 80012b8 <__NVIC_SetPriority+0x40> + 80011e8: e00a b.n 8001200 <__NVIC_SetPriority+0x40> SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 80012a2: 683b ldr r3, [r7, #0] - 80012a4: b2da uxtb r2, r3 - 80012a6: 4908 ldr r1, [pc, #32] ; (80012c8 <__NVIC_SetPriority+0x50>) - 80012a8: 79fb ldrb r3, [r7, #7] - 80012aa: f003 030f and.w r3, r3, #15 - 80012ae: 3b04 subs r3, #4 - 80012b0: 0112 lsls r2, r2, #4 - 80012b2: b2d2 uxtb r2, r2 - 80012b4: 440b add r3, r1 - 80012b6: 761a strb r2, [r3, #24] + 80011ea: 683b ldr r3, [r7, #0] + 80011ec: b2da uxtb r2, r3 + 80011ee: 4908 ldr r1, [pc, #32] ; (8001210 <__NVIC_SetPriority+0x50>) + 80011f0: 79fb ldrb r3, [r7, #7] + 80011f2: f003 030f and.w r3, r3, #15 + 80011f6: 3b04 subs r3, #4 + 80011f8: 0112 lsls r2, r2, #4 + 80011fa: b2d2 uxtb r2, r2 + 80011fc: 440b add r3, r1 + 80011fe: 761a strb r2, [r3, #24] } - 80012b8: bf00 nop - 80012ba: 370c adds r7, #12 - 80012bc: 46bd mov sp, r7 - 80012be: bc80 pop {r7} - 80012c0: 4770 bx lr - 80012c2: bf00 nop - 80012c4: e000e100 .word 0xe000e100 - 80012c8: e000ed00 .word 0xe000ed00 + 8001200: bf00 nop + 8001202: 370c adds r7, #12 + 8001204: 46bd mov sp, r7 + 8001206: bc80 pop {r7} + 8001208: 4770 bx lr + 800120a: bf00 nop + 800120c: e000e100 .word 0xe000e100 + 8001210: e000ed00 .word 0xe000ed00 -080012cc : +08001214 : \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) { - 80012cc: b480 push {r7} - 80012ce: b089 sub sp, #36 ; 0x24 - 80012d0: af00 add r7, sp, #0 - 80012d2: 60f8 str r0, [r7, #12] - 80012d4: 60b9 str r1, [r7, #8] - 80012d6: 607a str r2, [r7, #4] + 8001214: b480 push {r7} + 8001216: b089 sub sp, #36 ; 0x24 + 8001218: af00 add r7, sp, #0 + 800121a: 60f8 str r0, [r7, #12] + 800121c: 60b9 str r1, [r7, #8] + 800121e: 607a str r2, [r7, #4] uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 80012d8: 68fb ldr r3, [r7, #12] - 80012da: f003 0307 and.w r3, r3, #7 - 80012de: 61fb str r3, [r7, #28] + 8001220: 68fb ldr r3, [r7, #12] + 8001222: f003 0307 and.w r3, r3, #7 + 8001226: 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); - 80012e0: 69fb ldr r3, [r7, #28] - 80012e2: f1c3 0307 rsb r3, r3, #7 - 80012e6: 2b04 cmp r3, #4 - 80012e8: bf28 it cs - 80012ea: 2304 movcs r3, #4 - 80012ec: 61bb str r3, [r7, #24] + 8001228: 69fb ldr r3, [r7, #28] + 800122a: f1c3 0307 rsb r3, r3, #7 + 800122e: 2b04 cmp r3, #4 + 8001230: bf28 it cs + 8001232: 2304 movcs r3, #4 + 8001234: 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)); - 80012ee: 69fb ldr r3, [r7, #28] - 80012f0: 3304 adds r3, #4 - 80012f2: 2b06 cmp r3, #6 - 80012f4: d902 bls.n 80012fc - 80012f6: 69fb ldr r3, [r7, #28] - 80012f8: 3b03 subs r3, #3 - 80012fa: e000 b.n 80012fe - 80012fc: 2300 movs r3, #0 - 80012fe: 617b str r3, [r7, #20] + 8001236: 69fb ldr r3, [r7, #28] + 8001238: 3304 adds r3, #4 + 800123a: 2b06 cmp r3, #6 + 800123c: d902 bls.n 8001244 + 800123e: 69fb ldr r3, [r7, #28] + 8001240: 3b03 subs r3, #3 + 8001242: e000 b.n 8001246 + 8001244: 2300 movs r3, #0 + 8001246: 617b str r3, [r7, #20] return ( ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 8001300: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 8001304: 69bb ldr r3, [r7, #24] - 8001306: fa02 f303 lsl.w r3, r2, r3 - 800130a: 43da mvns r2, r3 - 800130c: 68bb ldr r3, [r7, #8] - 800130e: 401a ands r2, r3 - 8001310: 697b ldr r3, [r7, #20] - 8001312: 409a lsls r2, r3 + 8001248: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 800124c: 69bb ldr r3, [r7, #24] + 800124e: fa02 f303 lsl.w r3, r2, r3 + 8001252: 43da mvns r2, r3 + 8001254: 68bb ldr r3, [r7, #8] + 8001256: 401a ands r2, r3 + 8001258: 697b ldr r3, [r7, #20] + 800125a: 409a lsls r2, r3 ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - 8001314: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff - 8001318: 697b ldr r3, [r7, #20] - 800131a: fa01 f303 lsl.w r3, r1, r3 - 800131e: 43d9 mvns r1, r3 - 8001320: 687b ldr r3, [r7, #4] - 8001322: 400b ands r3, r1 + 800125c: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff + 8001260: 697b ldr r3, [r7, #20] + 8001262: fa01 f303 lsl.w r3, r1, r3 + 8001266: 43d9 mvns r1, r3 + 8001268: 687b ldr r3, [r7, #4] + 800126a: 400b ands r3, r1 ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 8001324: 4313 orrs r3, r2 + 800126c: 4313 orrs r3, r2 ); } - 8001326: 4618 mov r0, r3 - 8001328: 3724 adds r7, #36 ; 0x24 - 800132a: 46bd mov sp, r7 - 800132c: bc80 pop {r7} - 800132e: 4770 bx lr + 800126e: 4618 mov r0, r3 + 8001270: 3724 adds r7, #36 ; 0x24 + 8001272: 46bd mov sp, r7 + 8001274: bc80 pop {r7} + 8001276: 4770 bx lr -08001330 : +08001278 : \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) { - 8001330: b580 push {r7, lr} - 8001332: b082 sub sp, #8 - 8001334: af00 add r7, sp, #0 - 8001336: 6078 str r0, [r7, #4] + 8001278: b580 push {r7, lr} + 800127a: b082 sub sp, #8 + 800127c: af00 add r7, sp, #0 + 800127e: 6078 str r0, [r7, #4] if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - 8001338: 687b ldr r3, [r7, #4] - 800133a: 3b01 subs r3, #1 - 800133c: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 - 8001340: d301 bcc.n 8001346 + 8001280: 687b ldr r3, [r7, #4] + 8001282: 3b01 subs r3, #1 + 8001284: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 + 8001288: d301 bcc.n 800128e { return (1UL); /* Reload value impossible */ - 8001342: 2301 movs r3, #1 - 8001344: e00f b.n 8001366 + 800128a: 2301 movs r3, #1 + 800128c: e00f b.n 80012ae } SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - 8001346: 4a0a ldr r2, [pc, #40] ; (8001370 ) - 8001348: 687b ldr r3, [r7, #4] - 800134a: 3b01 subs r3, #1 - 800134c: 6053 str r3, [r2, #4] + 800128e: 4a0a ldr r2, [pc, #40] ; (80012b8 ) + 8001290: 687b ldr r3, [r7, #4] + 8001292: 3b01 subs r3, #1 + 8001294: 6053 str r3, [r2, #4] NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - 800134e: 210f movs r1, #15 - 8001350: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 8001354: f7ff ff90 bl 8001278 <__NVIC_SetPriority> + 8001296: 210f movs r1, #15 + 8001298: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff + 800129c: f7ff ff90 bl 80011c0 <__NVIC_SetPriority> SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - 8001358: 4b05 ldr r3, [pc, #20] ; (8001370 ) - 800135a: 2200 movs r2, #0 - 800135c: 609a str r2, [r3, #8] + 80012a0: 4b05 ldr r3, [pc, #20] ; (80012b8 ) + 80012a2: 2200 movs r2, #0 + 80012a4: 609a str r2, [r3, #8] SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - 800135e: 4b04 ldr r3, [pc, #16] ; (8001370 ) - 8001360: 2207 movs r2, #7 - 8001362: 601a str r2, [r3, #0] + 80012a6: 4b04 ldr r3, [pc, #16] ; (80012b8 ) + 80012a8: 2207 movs r2, #7 + 80012aa: 601a str r2, [r3, #0] SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ return (0UL); /* Function successful */ - 8001364: 2300 movs r3, #0 + 80012ac: 2300 movs r3, #0 } - 8001366: 4618 mov r0, r3 - 8001368: 3708 adds r7, #8 - 800136a: 46bd mov sp, r7 - 800136c: bd80 pop {r7, pc} - 800136e: bf00 nop - 8001370: e000e010 .word 0xe000e010 + 80012ae: 4618 mov r0, r3 + 80012b0: 3708 adds r7, #8 + 80012b2: 46bd mov sp, r7 + 80012b4: bd80 pop {r7, pc} + 80012b6: bf00 nop + 80012b8: e000e010 .word 0xe000e010 -08001374 : +080012bc : * @note When the NVIC_PriorityGroup_0 is selected, IRQ preemption is no more possible. * The pending IRQ priority will be managed only by the subpriority. * @retval None */ void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) { - 8001374: b580 push {r7, lr} - 8001376: b082 sub sp, #8 - 8001378: af00 add r7, sp, #0 - 800137a: 6078 str r0, [r7, #4] + 80012bc: b580 push {r7, lr} + 80012be: b082 sub sp, #8 + 80012c0: af00 add r7, sp, #0 + 80012c2: 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); - 800137c: 6878 ldr r0, [r7, #4] - 800137e: f7ff ff49 bl 8001214 <__NVIC_SetPriorityGrouping> + 80012c4: 6878 ldr r0, [r7, #4] + 80012c6: f7ff ff49 bl 800115c <__NVIC_SetPriorityGrouping> } - 8001382: bf00 nop - 8001384: 3708 adds r7, #8 - 8001386: 46bd mov sp, r7 - 8001388: bd80 pop {r7, pc} + 80012ca: bf00 nop + 80012cc: 3708 adds r7, #8 + 80012ce: 46bd mov sp, r7 + 80012d0: bd80 pop {r7, pc} -0800138a : +080012d2 : * 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) { - 800138a: b580 push {r7, lr} - 800138c: b086 sub sp, #24 - 800138e: af00 add r7, sp, #0 - 8001390: 4603 mov r3, r0 - 8001392: 60b9 str r1, [r7, #8] - 8001394: 607a str r2, [r7, #4] - 8001396: 73fb strb r3, [r7, #15] + 80012d2: b580 push {r7, lr} + 80012d4: b086 sub sp, #24 + 80012d6: af00 add r7, sp, #0 + 80012d8: 4603 mov r3, r0 + 80012da: 60b9 str r1, [r7, #8] + 80012dc: 607a str r2, [r7, #4] + 80012de: 73fb strb r3, [r7, #15] uint32_t prioritygroup = 0x00U; - 8001398: 2300 movs r3, #0 - 800139a: 617b str r3, [r7, #20] + 80012e0: 2300 movs r3, #0 + 80012e2: 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(); - 800139c: f7ff ff5e bl 800125c <__NVIC_GetPriorityGrouping> - 80013a0: 6178 str r0, [r7, #20] + 80012e4: f7ff ff5e bl 80011a4 <__NVIC_GetPriorityGrouping> + 80012e8: 6178 str r0, [r7, #20] NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); - 80013a2: 687a ldr r2, [r7, #4] - 80013a4: 68b9 ldr r1, [r7, #8] - 80013a6: 6978 ldr r0, [r7, #20] - 80013a8: f7ff ff90 bl 80012cc - 80013ac: 4602 mov r2, r0 - 80013ae: f997 300f ldrsb.w r3, [r7, #15] - 80013b2: 4611 mov r1, r2 - 80013b4: 4618 mov r0, r3 - 80013b6: f7ff ff5f bl 8001278 <__NVIC_SetPriority> + 80012ea: 687a ldr r2, [r7, #4] + 80012ec: 68b9 ldr r1, [r7, #8] + 80012ee: 6978 ldr r0, [r7, #20] + 80012f0: f7ff ff90 bl 8001214 + 80012f4: 4602 mov r2, r0 + 80012f6: f997 300f ldrsb.w r3, [r7, #15] + 80012fa: 4611 mov r1, r2 + 80012fc: 4618 mov r0, r3 + 80012fe: f7ff ff5f bl 80011c0 <__NVIC_SetPriority> } - 80013ba: bf00 nop - 80013bc: 3718 adds r7, #24 - 80013be: 46bd mov sp, r7 - 80013c0: bd80 pop {r7, pc} + 8001302: bf00 nop + 8001304: 3718 adds r7, #24 + 8001306: 46bd mov sp, r7 + 8001308: bd80 pop {r7, pc} -080013c2 : +0800130a : * @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) { - 80013c2: b580 push {r7, lr} - 80013c4: b082 sub sp, #8 - 80013c6: af00 add r7, sp, #0 - 80013c8: 6078 str r0, [r7, #4] + 800130a: b580 push {r7, lr} + 800130c: b082 sub sp, #8 + 800130e: af00 add r7, sp, #0 + 8001310: 6078 str r0, [r7, #4] return SysTick_Config(TicksNumb); - 80013ca: 6878 ldr r0, [r7, #4] - 80013cc: f7ff ffb0 bl 8001330 - 80013d0: 4603 mov r3, r0 + 8001312: 6878 ldr r0, [r7, #4] + 8001314: f7ff ffb0 bl 8001278 + 8001318: 4603 mov r3, r0 } - 80013d2: 4618 mov r0, r3 - 80013d4: 3708 adds r7, #8 - 80013d6: 46bd mov sp, r7 - 80013d8: bd80 pop {r7, pc} + 800131a: 4618 mov r0, r3 + 800131c: 3708 adds r7, #8 + 800131e: 46bd mov sp, r7 + 8001320: bd80 pop {r7, pc} ... -080013dc : +08001324 : * @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) { - 80013dc: b480 push {r7} - 80013de: b08b sub sp, #44 ; 0x2c - 80013e0: af00 add r7, sp, #0 - 80013e2: 6078 str r0, [r7, #4] - 80013e4: 6039 str r1, [r7, #0] + 8001324: b480 push {r7} + 8001326: b08b sub sp, #44 ; 0x2c + 8001328: af00 add r7, sp, #0 + 800132a: 6078 str r0, [r7, #4] + 800132c: 6039 str r1, [r7, #0] uint32_t position = 0x00u; - 80013e6: 2300 movs r3, #0 - 80013e8: 627b str r3, [r7, #36] ; 0x24 + 800132e: 2300 movs r3, #0 + 8001330: 627b str r3, [r7, #36] ; 0x24 uint32_t ioposition; uint32_t iocurrent; uint32_t temp; uint32_t config = 0x00u; - 80013ea: 2300 movs r3, #0 - 80013ec: 623b str r3, [r7, #32] + 8001332: 2300 movs r3, #0 + 8001334: 623b str r3, [r7, #32] 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) - 80013ee: e179 b.n 80016e4 + 8001336: e179 b.n 800162c { /* Get the IO position */ ioposition = (0x01uL << position); - 80013f0: 2201 movs r2, #1 - 80013f2: 6a7b ldr r3, [r7, #36] ; 0x24 - 80013f4: fa02 f303 lsl.w r3, r2, r3 - 80013f8: 61fb str r3, [r7, #28] + 8001338: 2201 movs r2, #1 + 800133a: 6a7b ldr r3, [r7, #36] ; 0x24 + 800133c: fa02 f303 lsl.w r3, r2, r3 + 8001340: 61fb str r3, [r7, #28] /* Get the current IO position */ iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition; - 80013fa: 683b ldr r3, [r7, #0] - 80013fc: 681b ldr r3, [r3, #0] - 80013fe: 69fa ldr r2, [r7, #28] - 8001400: 4013 ands r3, r2 - 8001402: 61bb str r3, [r7, #24] + 8001342: 683b ldr r3, [r7, #0] + 8001344: 681b ldr r3, [r3, #0] + 8001346: 69fa ldr r2, [r7, #28] + 8001348: 4013 ands r3, r2 + 800134a: 61bb str r3, [r7, #24] if (iocurrent == ioposition) - 8001404: 69ba ldr r2, [r7, #24] - 8001406: 69fb ldr r3, [r7, #28] - 8001408: 429a cmp r2, r3 - 800140a: f040 8168 bne.w 80016de + 800134c: 69ba ldr r2, [r7, #24] + 800134e: 69fb ldr r3, [r7, #28] + 8001350: 429a cmp r2, r3 + 8001352: f040 8168 bne.w 8001626 { /* Check the Alternate function parameters */ assert_param(IS_GPIO_AF_INSTANCE(GPIOx)); /* Based on the required mode, filling config variable with MODEy[1:0] and CNFy[3:2] corresponding bits */ switch (GPIO_Init->Mode) - 800140e: 683b ldr r3, [r7, #0] - 8001410: 685b ldr r3, [r3, #4] - 8001412: 4a96 ldr r2, [pc, #600] ; (800166c ) - 8001414: 4293 cmp r3, r2 - 8001416: d05e beq.n 80014d6 - 8001418: 4a94 ldr r2, [pc, #592] ; (800166c ) - 800141a: 4293 cmp r3, r2 - 800141c: d875 bhi.n 800150a - 800141e: 4a94 ldr r2, [pc, #592] ; (8001670 ) - 8001420: 4293 cmp r3, r2 - 8001422: d058 beq.n 80014d6 - 8001424: 4a92 ldr r2, [pc, #584] ; (8001670 ) - 8001426: 4293 cmp r3, r2 - 8001428: d86f bhi.n 800150a - 800142a: 4a92 ldr r2, [pc, #584] ; (8001674 ) - 800142c: 4293 cmp r3, r2 - 800142e: d052 beq.n 80014d6 - 8001430: 4a90 ldr r2, [pc, #576] ; (8001674 ) - 8001432: 4293 cmp r3, r2 - 8001434: d869 bhi.n 800150a - 8001436: 4a90 ldr r2, [pc, #576] ; (8001678 ) - 8001438: 4293 cmp r3, r2 - 800143a: d04c beq.n 80014d6 - 800143c: 4a8e ldr r2, [pc, #568] ; (8001678 ) - 800143e: 4293 cmp r3, r2 - 8001440: d863 bhi.n 800150a - 8001442: 4a8e ldr r2, [pc, #568] ; (800167c ) - 8001444: 4293 cmp r3, r2 - 8001446: d046 beq.n 80014d6 - 8001448: 4a8c ldr r2, [pc, #560] ; (800167c ) - 800144a: 4293 cmp r3, r2 - 800144c: d85d bhi.n 800150a - 800144e: 2b12 cmp r3, #18 - 8001450: d82a bhi.n 80014a8 - 8001452: 2b12 cmp r3, #18 - 8001454: d859 bhi.n 800150a - 8001456: a201 add r2, pc, #4 ; (adr r2, 800145c ) - 8001458: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 800145c: 080014d7 .word 0x080014d7 - 8001460: 080014b1 .word 0x080014b1 - 8001464: 080014c3 .word 0x080014c3 - 8001468: 08001505 .word 0x08001505 - 800146c: 0800150b .word 0x0800150b - 8001470: 0800150b .word 0x0800150b - 8001474: 0800150b .word 0x0800150b - 8001478: 0800150b .word 0x0800150b - 800147c: 0800150b .word 0x0800150b - 8001480: 0800150b .word 0x0800150b - 8001484: 0800150b .word 0x0800150b - 8001488: 0800150b .word 0x0800150b - 800148c: 0800150b .word 0x0800150b - 8001490: 0800150b .word 0x0800150b - 8001494: 0800150b .word 0x0800150b - 8001498: 0800150b .word 0x0800150b - 800149c: 0800150b .word 0x0800150b - 80014a0: 080014b9 .word 0x080014b9 - 80014a4: 080014cd .word 0x080014cd - 80014a8: 4a75 ldr r2, [pc, #468] ; (8001680 ) - 80014aa: 4293 cmp r3, r2 - 80014ac: d013 beq.n 80014d6 + 8001356: 683b ldr r3, [r7, #0] + 8001358: 685b ldr r3, [r3, #4] + 800135a: 4a96 ldr r2, [pc, #600] ; (80015b4 ) + 800135c: 4293 cmp r3, r2 + 800135e: d05e beq.n 800141e + 8001360: 4a94 ldr r2, [pc, #592] ; (80015b4 ) + 8001362: 4293 cmp r3, r2 + 8001364: d875 bhi.n 8001452 + 8001366: 4a94 ldr r2, [pc, #592] ; (80015b8 ) + 8001368: 4293 cmp r3, r2 + 800136a: d058 beq.n 800141e + 800136c: 4a92 ldr r2, [pc, #584] ; (80015b8 ) + 800136e: 4293 cmp r3, r2 + 8001370: d86f bhi.n 8001452 + 8001372: 4a92 ldr r2, [pc, #584] ; (80015bc ) + 8001374: 4293 cmp r3, r2 + 8001376: d052 beq.n 800141e + 8001378: 4a90 ldr r2, [pc, #576] ; (80015bc ) + 800137a: 4293 cmp r3, r2 + 800137c: d869 bhi.n 8001452 + 800137e: 4a90 ldr r2, [pc, #576] ; (80015c0 ) + 8001380: 4293 cmp r3, r2 + 8001382: d04c beq.n 800141e + 8001384: 4a8e ldr r2, [pc, #568] ; (80015c0 ) + 8001386: 4293 cmp r3, r2 + 8001388: d863 bhi.n 8001452 + 800138a: 4a8e ldr r2, [pc, #568] ; (80015c4 ) + 800138c: 4293 cmp r3, r2 + 800138e: d046 beq.n 800141e + 8001390: 4a8c ldr r2, [pc, #560] ; (80015c4 ) + 8001392: 4293 cmp r3, r2 + 8001394: d85d bhi.n 8001452 + 8001396: 2b12 cmp r3, #18 + 8001398: d82a bhi.n 80013f0 + 800139a: 2b12 cmp r3, #18 + 800139c: d859 bhi.n 8001452 + 800139e: a201 add r2, pc, #4 ; (adr r2, 80013a4 ) + 80013a0: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 80013a4: 0800141f .word 0x0800141f + 80013a8: 080013f9 .word 0x080013f9 + 80013ac: 0800140b .word 0x0800140b + 80013b0: 0800144d .word 0x0800144d + 80013b4: 08001453 .word 0x08001453 + 80013b8: 08001453 .word 0x08001453 + 80013bc: 08001453 .word 0x08001453 + 80013c0: 08001453 .word 0x08001453 + 80013c4: 08001453 .word 0x08001453 + 80013c8: 08001453 .word 0x08001453 + 80013cc: 08001453 .word 0x08001453 + 80013d0: 08001453 .word 0x08001453 + 80013d4: 08001453 .word 0x08001453 + 80013d8: 08001453 .word 0x08001453 + 80013dc: 08001453 .word 0x08001453 + 80013e0: 08001453 .word 0x08001453 + 80013e4: 08001453 .word 0x08001453 + 80013e8: 08001401 .word 0x08001401 + 80013ec: 08001415 .word 0x08001415 + 80013f0: 4a75 ldr r2, [pc, #468] ; (80015c8 ) + 80013f2: 4293 cmp r3, r2 + 80013f4: d013 beq.n 800141e config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_ANALOG; break; /* Parameters are checked with assert_param */ default: break; - 80014ae: e02c b.n 800150a + 80013f6: e02c b.n 8001452 config = GPIO_Init->Speed + GPIO_CR_CNF_GP_OUTPUT_PP; - 80014b0: 683b ldr r3, [r7, #0] - 80014b2: 68db ldr r3, [r3, #12] - 80014b4: 623b str r3, [r7, #32] + 80013f8: 683b ldr r3, [r7, #0] + 80013fa: 68db ldr r3, [r3, #12] + 80013fc: 623b str r3, [r7, #32] break; - 80014b6: e029 b.n 800150c + 80013fe: e029 b.n 8001454 config = GPIO_Init->Speed + GPIO_CR_CNF_GP_OUTPUT_OD; - 80014b8: 683b ldr r3, [r7, #0] - 80014ba: 68db ldr r3, [r3, #12] - 80014bc: 3304 adds r3, #4 - 80014be: 623b str r3, [r7, #32] + 8001400: 683b ldr r3, [r7, #0] + 8001402: 68db ldr r3, [r3, #12] + 8001404: 3304 adds r3, #4 + 8001406: 623b str r3, [r7, #32] break; - 80014c0: e024 b.n 800150c + 8001408: e024 b.n 8001454 config = GPIO_Init->Speed + GPIO_CR_CNF_AF_OUTPUT_PP; - 80014c2: 683b ldr r3, [r7, #0] - 80014c4: 68db ldr r3, [r3, #12] - 80014c6: 3308 adds r3, #8 - 80014c8: 623b str r3, [r7, #32] + 800140a: 683b ldr r3, [r7, #0] + 800140c: 68db ldr r3, [r3, #12] + 800140e: 3308 adds r3, #8 + 8001410: 623b str r3, [r7, #32] break; - 80014ca: e01f b.n 800150c + 8001412: e01f b.n 8001454 config = GPIO_Init->Speed + GPIO_CR_CNF_AF_OUTPUT_OD; - 80014cc: 683b ldr r3, [r7, #0] - 80014ce: 68db ldr r3, [r3, #12] - 80014d0: 330c adds r3, #12 - 80014d2: 623b str r3, [r7, #32] + 8001414: 683b ldr r3, [r7, #0] + 8001416: 68db ldr r3, [r3, #12] + 8001418: 330c adds r3, #12 + 800141a: 623b str r3, [r7, #32] break; - 80014d4: e01a b.n 800150c + 800141c: e01a b.n 8001454 if (GPIO_Init->Pull == GPIO_NOPULL) - 80014d6: 683b ldr r3, [r7, #0] - 80014d8: 689b ldr r3, [r3, #8] - 80014da: 2b00 cmp r3, #0 - 80014dc: d102 bne.n 80014e4 + 800141e: 683b ldr r3, [r7, #0] + 8001420: 689b ldr r3, [r3, #8] + 8001422: 2b00 cmp r3, #0 + 8001424: d102 bne.n 800142c config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_INPUT_FLOATING; - 80014de: 2304 movs r3, #4 - 80014e0: 623b str r3, [r7, #32] + 8001426: 2304 movs r3, #4 + 8001428: 623b str r3, [r7, #32] break; - 80014e2: e013 b.n 800150c + 800142a: e013 b.n 8001454 else if (GPIO_Init->Pull == GPIO_PULLUP) - 80014e4: 683b ldr r3, [r7, #0] - 80014e6: 689b ldr r3, [r3, #8] - 80014e8: 2b01 cmp r3, #1 - 80014ea: d105 bne.n 80014f8 + 800142c: 683b ldr r3, [r7, #0] + 800142e: 689b ldr r3, [r3, #8] + 8001430: 2b01 cmp r3, #1 + 8001432: d105 bne.n 8001440 config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_INPUT_PU_PD; - 80014ec: 2308 movs r3, #8 - 80014ee: 623b str r3, [r7, #32] + 8001434: 2308 movs r3, #8 + 8001436: 623b str r3, [r7, #32] GPIOx->BSRR = ioposition; - 80014f0: 687b ldr r3, [r7, #4] - 80014f2: 69fa ldr r2, [r7, #28] - 80014f4: 611a str r2, [r3, #16] + 8001438: 687b ldr r3, [r7, #4] + 800143a: 69fa ldr r2, [r7, #28] + 800143c: 611a str r2, [r3, #16] break; - 80014f6: e009 b.n 800150c + 800143e: e009 b.n 8001454 config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_INPUT_PU_PD; - 80014f8: 2308 movs r3, #8 - 80014fa: 623b str r3, [r7, #32] + 8001440: 2308 movs r3, #8 + 8001442: 623b str r3, [r7, #32] GPIOx->BRR = ioposition; - 80014fc: 687b ldr r3, [r7, #4] - 80014fe: 69fa ldr r2, [r7, #28] - 8001500: 615a str r2, [r3, #20] + 8001444: 687b ldr r3, [r7, #4] + 8001446: 69fa ldr r2, [r7, #28] + 8001448: 615a str r2, [r3, #20] break; - 8001502: e003 b.n 800150c + 800144a: e003 b.n 8001454 config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_ANALOG; - 8001504: 2300 movs r3, #0 - 8001506: 623b str r3, [r7, #32] + 800144c: 2300 movs r3, #0 + 800144e: 623b str r3, [r7, #32] break; - 8001508: e000 b.n 800150c + 8001450: e000 b.n 8001454 break; - 800150a: bf00 nop + 8001452: bf00 nop } /* Check if the current bit belongs to first half or last half of the pin count number in order to address CRH or CRL register*/ configregister = (iocurrent < GPIO_PIN_8) ? &GPIOx->CRL : &GPIOx->CRH; - 800150c: 69bb ldr r3, [r7, #24] - 800150e: 2bff cmp r3, #255 ; 0xff - 8001510: d801 bhi.n 8001516 - 8001512: 687b ldr r3, [r7, #4] - 8001514: e001 b.n 800151a - 8001516: 687b ldr r3, [r7, #4] - 8001518: 3304 adds r3, #4 - 800151a: 617b str r3, [r7, #20] + 8001454: 69bb ldr r3, [r7, #24] + 8001456: 2bff cmp r3, #255 ; 0xff + 8001458: d801 bhi.n 800145e + 800145a: 687b ldr r3, [r7, #4] + 800145c: e001 b.n 8001462 + 800145e: 687b ldr r3, [r7, #4] + 8001460: 3304 adds r3, #4 + 8001462: 617b str r3, [r7, #20] registeroffset = (iocurrent < GPIO_PIN_8) ? (position << 2u) : ((position - 8u) << 2u); - 800151c: 69bb ldr r3, [r7, #24] - 800151e: 2bff cmp r3, #255 ; 0xff - 8001520: d802 bhi.n 8001528 - 8001522: 6a7b ldr r3, [r7, #36] ; 0x24 - 8001524: 009b lsls r3, r3, #2 - 8001526: e002 b.n 800152e - 8001528: 6a7b ldr r3, [r7, #36] ; 0x24 - 800152a: 3b08 subs r3, #8 - 800152c: 009b lsls r3, r3, #2 - 800152e: 613b str r3, [r7, #16] + 8001464: 69bb ldr r3, [r7, #24] + 8001466: 2bff cmp r3, #255 ; 0xff + 8001468: d802 bhi.n 8001470 + 800146a: 6a7b ldr r3, [r7, #36] ; 0x24 + 800146c: 009b lsls r3, r3, #2 + 800146e: e002 b.n 8001476 + 8001470: 6a7b ldr r3, [r7, #36] ; 0x24 + 8001472: 3b08 subs r3, #8 + 8001474: 009b lsls r3, r3, #2 + 8001476: 613b str r3, [r7, #16] /* Apply the new configuration of the pin to the register */ MODIFY_REG((*configregister), ((GPIO_CRL_MODE0 | GPIO_CRL_CNF0) << registeroffset), (config << registeroffset)); - 8001530: 697b ldr r3, [r7, #20] - 8001532: 681a ldr r2, [r3, #0] - 8001534: 210f movs r1, #15 - 8001536: 693b ldr r3, [r7, #16] - 8001538: fa01 f303 lsl.w r3, r1, r3 - 800153c: 43db mvns r3, r3 - 800153e: 401a ands r2, r3 - 8001540: 6a39 ldr r1, [r7, #32] - 8001542: 693b ldr r3, [r7, #16] - 8001544: fa01 f303 lsl.w r3, r1, r3 - 8001548: 431a orrs r2, r3 - 800154a: 697b ldr r3, [r7, #20] - 800154c: 601a str r2, [r3, #0] + 8001478: 697b ldr r3, [r7, #20] + 800147a: 681a ldr r2, [r3, #0] + 800147c: 210f movs r1, #15 + 800147e: 693b ldr r3, [r7, #16] + 8001480: fa01 f303 lsl.w r3, r1, r3 + 8001484: 43db mvns r3, r3 + 8001486: 401a ands r2, r3 + 8001488: 6a39 ldr r1, [r7, #32] + 800148a: 693b ldr r3, [r7, #16] + 800148c: fa01 f303 lsl.w r3, r1, r3 + 8001490: 431a orrs r2, r3 + 8001492: 697b ldr r3, [r7, #20] + 8001494: 601a str r2, [r3, #0] /*--------------------- EXTI Mode Configuration ------------------------*/ /* Configure the External Interrupt or event for the current IO */ if ((GPIO_Init->Mode & EXTI_MODE) == EXTI_MODE) - 800154e: 683b ldr r3, [r7, #0] - 8001550: 685b ldr r3, [r3, #4] - 8001552: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8001556: 2b00 cmp r3, #0 - 8001558: f000 80c1 beq.w 80016de + 8001496: 683b ldr r3, [r7, #0] + 8001498: 685b ldr r3, [r3, #4] + 800149a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 800149e: 2b00 cmp r3, #0 + 80014a0: f000 80c1 beq.w 8001626 { /* Enable AFIO Clock */ __HAL_RCC_AFIO_CLK_ENABLE(); - 800155c: 4b49 ldr r3, [pc, #292] ; (8001684 ) - 800155e: 699b ldr r3, [r3, #24] - 8001560: 4a48 ldr r2, [pc, #288] ; (8001684 ) - 8001562: f043 0301 orr.w r3, r3, #1 - 8001566: 6193 str r3, [r2, #24] - 8001568: 4b46 ldr r3, [pc, #280] ; (8001684 ) - 800156a: 699b ldr r3, [r3, #24] - 800156c: f003 0301 and.w r3, r3, #1 - 8001570: 60bb str r3, [r7, #8] - 8001572: 68bb ldr r3, [r7, #8] + 80014a4: 4b49 ldr r3, [pc, #292] ; (80015cc ) + 80014a6: 699b ldr r3, [r3, #24] + 80014a8: 4a48 ldr r2, [pc, #288] ; (80015cc ) + 80014aa: f043 0301 orr.w r3, r3, #1 + 80014ae: 6193 str r3, [r2, #24] + 80014b0: 4b46 ldr r3, [pc, #280] ; (80015cc ) + 80014b2: 699b ldr r3, [r3, #24] + 80014b4: f003 0301 and.w r3, r3, #1 + 80014b8: 60bb str r3, [r7, #8] + 80014ba: 68bb ldr r3, [r7, #8] temp = AFIO->EXTICR[position >> 2u]; - 8001574: 4a44 ldr r2, [pc, #272] ; (8001688 ) - 8001576: 6a7b ldr r3, [r7, #36] ; 0x24 - 8001578: 089b lsrs r3, r3, #2 - 800157a: 3302 adds r3, #2 - 800157c: f852 3023 ldr.w r3, [r2, r3, lsl #2] - 8001580: 60fb str r3, [r7, #12] + 80014bc: 4a44 ldr r2, [pc, #272] ; (80015d0 ) + 80014be: 6a7b ldr r3, [r7, #36] ; 0x24 + 80014c0: 089b lsrs r3, r3, #2 + 80014c2: 3302 adds r3, #2 + 80014c4: f852 3023 ldr.w r3, [r2, r3, lsl #2] + 80014c8: 60fb str r3, [r7, #12] CLEAR_BIT(temp, (0x0Fu) << (4u * (position & 0x03u))); - 8001582: 6a7b ldr r3, [r7, #36] ; 0x24 - 8001584: f003 0303 and.w r3, r3, #3 - 8001588: 009b lsls r3, r3, #2 - 800158a: 220f movs r2, #15 - 800158c: fa02 f303 lsl.w r3, r2, r3 - 8001590: 43db mvns r3, r3 - 8001592: 68fa ldr r2, [r7, #12] - 8001594: 4013 ands r3, r2 - 8001596: 60fb str r3, [r7, #12] + 80014ca: 6a7b ldr r3, [r7, #36] ; 0x24 + 80014cc: f003 0303 and.w r3, r3, #3 + 80014d0: 009b lsls r3, r3, #2 + 80014d2: 220f movs r2, #15 + 80014d4: fa02 f303 lsl.w r3, r2, r3 + 80014d8: 43db mvns r3, r3 + 80014da: 68fa ldr r2, [r7, #12] + 80014dc: 4013 ands r3, r2 + 80014de: 60fb str r3, [r7, #12] SET_BIT(temp, (GPIO_GET_INDEX(GPIOx)) << (4u * (position & 0x03u))); - 8001598: 687b ldr r3, [r7, #4] - 800159a: 4a3c ldr r2, [pc, #240] ; (800168c ) - 800159c: 4293 cmp r3, r2 - 800159e: d01f beq.n 80015e0 - 80015a0: 687b ldr r3, [r7, #4] - 80015a2: 4a3b ldr r2, [pc, #236] ; (8001690 ) - 80015a4: 4293 cmp r3, r2 - 80015a6: d019 beq.n 80015dc - 80015a8: 687b ldr r3, [r7, #4] - 80015aa: 4a3a ldr r2, [pc, #232] ; (8001694 ) - 80015ac: 4293 cmp r3, r2 - 80015ae: d013 beq.n 80015d8 - 80015b0: 687b ldr r3, [r7, #4] - 80015b2: 4a39 ldr r2, [pc, #228] ; (8001698 ) - 80015b4: 4293 cmp r3, r2 - 80015b6: d00d beq.n 80015d4 - 80015b8: 687b ldr r3, [r7, #4] - 80015ba: 4a38 ldr r2, [pc, #224] ; (800169c ) - 80015bc: 4293 cmp r3, r2 - 80015be: d007 beq.n 80015d0 - 80015c0: 687b ldr r3, [r7, #4] - 80015c2: 4a37 ldr r2, [pc, #220] ; (80016a0 ) - 80015c4: 4293 cmp r3, r2 - 80015c6: d101 bne.n 80015cc - 80015c8: 2305 movs r3, #5 - 80015ca: e00a b.n 80015e2 - 80015cc: 2306 movs r3, #6 - 80015ce: e008 b.n 80015e2 - 80015d0: 2304 movs r3, #4 - 80015d2: e006 b.n 80015e2 - 80015d4: 2303 movs r3, #3 - 80015d6: e004 b.n 80015e2 - 80015d8: 2302 movs r3, #2 - 80015da: e002 b.n 80015e2 - 80015dc: 2301 movs r3, #1 - 80015de: e000 b.n 80015e2 - 80015e0: 2300 movs r3, #0 - 80015e2: 6a7a ldr r2, [r7, #36] ; 0x24 - 80015e4: f002 0203 and.w r2, r2, #3 - 80015e8: 0092 lsls r2, r2, #2 - 80015ea: 4093 lsls r3, r2 - 80015ec: 68fa ldr r2, [r7, #12] - 80015ee: 4313 orrs r3, r2 - 80015f0: 60fb str r3, [r7, #12] + 80014e0: 687b ldr r3, [r7, #4] + 80014e2: 4a3c ldr r2, [pc, #240] ; (80015d4 ) + 80014e4: 4293 cmp r3, r2 + 80014e6: d01f beq.n 8001528 + 80014e8: 687b ldr r3, [r7, #4] + 80014ea: 4a3b ldr r2, [pc, #236] ; (80015d8 ) + 80014ec: 4293 cmp r3, r2 + 80014ee: d019 beq.n 8001524 + 80014f0: 687b ldr r3, [r7, #4] + 80014f2: 4a3a ldr r2, [pc, #232] ; (80015dc ) + 80014f4: 4293 cmp r3, r2 + 80014f6: d013 beq.n 8001520 + 80014f8: 687b ldr r3, [r7, #4] + 80014fa: 4a39 ldr r2, [pc, #228] ; (80015e0 ) + 80014fc: 4293 cmp r3, r2 + 80014fe: d00d beq.n 800151c + 8001500: 687b ldr r3, [r7, #4] + 8001502: 4a38 ldr r2, [pc, #224] ; (80015e4 ) + 8001504: 4293 cmp r3, r2 + 8001506: d007 beq.n 8001518 + 8001508: 687b ldr r3, [r7, #4] + 800150a: 4a37 ldr r2, [pc, #220] ; (80015e8 ) + 800150c: 4293 cmp r3, r2 + 800150e: d101 bne.n 8001514 + 8001510: 2305 movs r3, #5 + 8001512: e00a b.n 800152a + 8001514: 2306 movs r3, #6 + 8001516: e008 b.n 800152a + 8001518: 2304 movs r3, #4 + 800151a: e006 b.n 800152a + 800151c: 2303 movs r3, #3 + 800151e: e004 b.n 800152a + 8001520: 2302 movs r3, #2 + 8001522: e002 b.n 800152a + 8001524: 2301 movs r3, #1 + 8001526: e000 b.n 800152a + 8001528: 2300 movs r3, #0 + 800152a: 6a7a ldr r2, [r7, #36] ; 0x24 + 800152c: f002 0203 and.w r2, r2, #3 + 8001530: 0092 lsls r2, r2, #2 + 8001532: 4093 lsls r3, r2 + 8001534: 68fa ldr r2, [r7, #12] + 8001536: 4313 orrs r3, r2 + 8001538: 60fb str r3, [r7, #12] AFIO->EXTICR[position >> 2u] = temp; - 80015f2: 4925 ldr r1, [pc, #148] ; (8001688 ) - 80015f4: 6a7b ldr r3, [r7, #36] ; 0x24 - 80015f6: 089b lsrs r3, r3, #2 - 80015f8: 3302 adds r3, #2 - 80015fa: 68fa ldr r2, [r7, #12] - 80015fc: f841 2023 str.w r2, [r1, r3, lsl #2] + 800153a: 4925 ldr r1, [pc, #148] ; (80015d0 ) + 800153c: 6a7b ldr r3, [r7, #36] ; 0x24 + 800153e: 089b lsrs r3, r3, #2 + 8001540: 3302 adds r3, #2 + 8001542: 68fa ldr r2, [r7, #12] + 8001544: f841 2023 str.w r2, [r1, r3, lsl #2] /* Enable or disable the rising trigger */ if ((GPIO_Init->Mode & RISING_EDGE) == RISING_EDGE) - 8001600: 683b ldr r3, [r7, #0] - 8001602: 685b ldr r3, [r3, #4] - 8001604: f403 1380 and.w r3, r3, #1048576 ; 0x100000 - 8001608: 2b00 cmp r3, #0 - 800160a: d006 beq.n 800161a + 8001548: 683b ldr r3, [r7, #0] + 800154a: 685b ldr r3, [r3, #4] + 800154c: f403 1380 and.w r3, r3, #1048576 ; 0x100000 + 8001550: 2b00 cmp r3, #0 + 8001552: d006 beq.n 8001562 { SET_BIT(EXTI->RTSR, iocurrent); - 800160c: 4b25 ldr r3, [pc, #148] ; (80016a4 ) - 800160e: 689a ldr r2, [r3, #8] - 8001610: 4924 ldr r1, [pc, #144] ; (80016a4 ) - 8001612: 69bb ldr r3, [r7, #24] - 8001614: 4313 orrs r3, r2 - 8001616: 608b str r3, [r1, #8] - 8001618: e006 b.n 8001628 + 8001554: 4b25 ldr r3, [pc, #148] ; (80015ec ) + 8001556: 689a ldr r2, [r3, #8] + 8001558: 4924 ldr r1, [pc, #144] ; (80015ec ) + 800155a: 69bb ldr r3, [r7, #24] + 800155c: 4313 orrs r3, r2 + 800155e: 608b str r3, [r1, #8] + 8001560: e006 b.n 8001570 } else { CLEAR_BIT(EXTI->RTSR, iocurrent); - 800161a: 4b22 ldr r3, [pc, #136] ; (80016a4 ) - 800161c: 689a ldr r2, [r3, #8] - 800161e: 69bb ldr r3, [r7, #24] - 8001620: 43db mvns r3, r3 - 8001622: 4920 ldr r1, [pc, #128] ; (80016a4 ) - 8001624: 4013 ands r3, r2 - 8001626: 608b str r3, [r1, #8] + 8001562: 4b22 ldr r3, [pc, #136] ; (80015ec ) + 8001564: 689a ldr r2, [r3, #8] + 8001566: 69bb ldr r3, [r7, #24] + 8001568: 43db mvns r3, r3 + 800156a: 4920 ldr r1, [pc, #128] ; (80015ec ) + 800156c: 4013 ands r3, r2 + 800156e: 608b str r3, [r1, #8] } /* Enable or disable the falling trigger */ if ((GPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE) - 8001628: 683b ldr r3, [r7, #0] - 800162a: 685b ldr r3, [r3, #4] - 800162c: f403 1300 and.w r3, r3, #2097152 ; 0x200000 - 8001630: 2b00 cmp r3, #0 - 8001632: d006 beq.n 8001642 + 8001570: 683b ldr r3, [r7, #0] + 8001572: 685b ldr r3, [r3, #4] + 8001574: f403 1300 and.w r3, r3, #2097152 ; 0x200000 + 8001578: 2b00 cmp r3, #0 + 800157a: d006 beq.n 800158a { SET_BIT(EXTI->FTSR, iocurrent); - 8001634: 4b1b ldr r3, [pc, #108] ; (80016a4 ) - 8001636: 68da ldr r2, [r3, #12] - 8001638: 491a ldr r1, [pc, #104] ; (80016a4 ) - 800163a: 69bb ldr r3, [r7, #24] - 800163c: 4313 orrs r3, r2 - 800163e: 60cb str r3, [r1, #12] - 8001640: e006 b.n 8001650 + 800157c: 4b1b ldr r3, [pc, #108] ; (80015ec ) + 800157e: 68da ldr r2, [r3, #12] + 8001580: 491a ldr r1, [pc, #104] ; (80015ec ) + 8001582: 69bb ldr r3, [r7, #24] + 8001584: 4313 orrs r3, r2 + 8001586: 60cb str r3, [r1, #12] + 8001588: e006 b.n 8001598 } else { CLEAR_BIT(EXTI->FTSR, iocurrent); - 8001642: 4b18 ldr r3, [pc, #96] ; (80016a4 ) - 8001644: 68da ldr r2, [r3, #12] - 8001646: 69bb ldr r3, [r7, #24] - 8001648: 43db mvns r3, r3 - 800164a: 4916 ldr r1, [pc, #88] ; (80016a4 ) - 800164c: 4013 ands r3, r2 - 800164e: 60cb str r3, [r1, #12] + 800158a: 4b18 ldr r3, [pc, #96] ; (80015ec ) + 800158c: 68da ldr r2, [r3, #12] + 800158e: 69bb ldr r3, [r7, #24] + 8001590: 43db mvns r3, r3 + 8001592: 4916 ldr r1, [pc, #88] ; (80015ec ) + 8001594: 4013 ands r3, r2 + 8001596: 60cb str r3, [r1, #12] } /* Configure the event mask */ if ((GPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT) - 8001650: 683b ldr r3, [r7, #0] - 8001652: 685b ldr r3, [r3, #4] - 8001654: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8001658: 2b00 cmp r3, #0 - 800165a: d025 beq.n 80016a8 + 8001598: 683b ldr r3, [r7, #0] + 800159a: 685b ldr r3, [r3, #4] + 800159c: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 80015a0: 2b00 cmp r3, #0 + 80015a2: d025 beq.n 80015f0 { SET_BIT(EXTI->EMR, iocurrent); - 800165c: 4b11 ldr r3, [pc, #68] ; (80016a4 ) - 800165e: 685a ldr r2, [r3, #4] - 8001660: 4910 ldr r1, [pc, #64] ; (80016a4 ) - 8001662: 69bb ldr r3, [r7, #24] - 8001664: 4313 orrs r3, r2 - 8001666: 604b str r3, [r1, #4] - 8001668: e025 b.n 80016b6 - 800166a: bf00 nop - 800166c: 10320000 .word 0x10320000 - 8001670: 10310000 .word 0x10310000 - 8001674: 10220000 .word 0x10220000 - 8001678: 10210000 .word 0x10210000 - 800167c: 10120000 .word 0x10120000 - 8001680: 10110000 .word 0x10110000 - 8001684: 40021000 .word 0x40021000 - 8001688: 40010000 .word 0x40010000 - 800168c: 40010800 .word 0x40010800 - 8001690: 40010c00 .word 0x40010c00 - 8001694: 40011000 .word 0x40011000 - 8001698: 40011400 .word 0x40011400 - 800169c: 40011800 .word 0x40011800 - 80016a0: 40011c00 .word 0x40011c00 - 80016a4: 40010400 .word 0x40010400 + 80015a4: 4b11 ldr r3, [pc, #68] ; (80015ec ) + 80015a6: 685a ldr r2, [r3, #4] + 80015a8: 4910 ldr r1, [pc, #64] ; (80015ec ) + 80015aa: 69bb ldr r3, [r7, #24] + 80015ac: 4313 orrs r3, r2 + 80015ae: 604b str r3, [r1, #4] + 80015b0: e025 b.n 80015fe + 80015b2: bf00 nop + 80015b4: 10320000 .word 0x10320000 + 80015b8: 10310000 .word 0x10310000 + 80015bc: 10220000 .word 0x10220000 + 80015c0: 10210000 .word 0x10210000 + 80015c4: 10120000 .word 0x10120000 + 80015c8: 10110000 .word 0x10110000 + 80015cc: 40021000 .word 0x40021000 + 80015d0: 40010000 .word 0x40010000 + 80015d4: 40010800 .word 0x40010800 + 80015d8: 40010c00 .word 0x40010c00 + 80015dc: 40011000 .word 0x40011000 + 80015e0: 40011400 .word 0x40011400 + 80015e4: 40011800 .word 0x40011800 + 80015e8: 40011c00 .word 0x40011c00 + 80015ec: 40010400 .word 0x40010400 } else { CLEAR_BIT(EXTI->EMR, iocurrent); - 80016a8: 4b15 ldr r3, [pc, #84] ; (8001700 ) - 80016aa: 685a ldr r2, [r3, #4] - 80016ac: 69bb ldr r3, [r7, #24] - 80016ae: 43db mvns r3, r3 - 80016b0: 4913 ldr r1, [pc, #76] ; (8001700 ) - 80016b2: 4013 ands r3, r2 - 80016b4: 604b str r3, [r1, #4] + 80015f0: 4b15 ldr r3, [pc, #84] ; (8001648 ) + 80015f2: 685a ldr r2, [r3, #4] + 80015f4: 69bb ldr r3, [r7, #24] + 80015f6: 43db mvns r3, r3 + 80015f8: 4913 ldr r1, [pc, #76] ; (8001648 ) + 80015fa: 4013 ands r3, r2 + 80015fc: 604b str r3, [r1, #4] } /* Configure the interrupt mask */ if ((GPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT) - 80016b6: 683b ldr r3, [r7, #0] - 80016b8: 685b ldr r3, [r3, #4] - 80016ba: f403 3380 and.w r3, r3, #65536 ; 0x10000 - 80016be: 2b00 cmp r3, #0 - 80016c0: d006 beq.n 80016d0 + 80015fe: 683b ldr r3, [r7, #0] + 8001600: 685b ldr r3, [r3, #4] + 8001602: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 8001606: 2b00 cmp r3, #0 + 8001608: d006 beq.n 8001618 { SET_BIT(EXTI->IMR, iocurrent); - 80016c2: 4b0f ldr r3, [pc, #60] ; (8001700 ) - 80016c4: 681a ldr r2, [r3, #0] - 80016c6: 490e ldr r1, [pc, #56] ; (8001700 ) - 80016c8: 69bb ldr r3, [r7, #24] - 80016ca: 4313 orrs r3, r2 - 80016cc: 600b str r3, [r1, #0] - 80016ce: e006 b.n 80016de + 800160a: 4b0f ldr r3, [pc, #60] ; (8001648 ) + 800160c: 681a ldr r2, [r3, #0] + 800160e: 490e ldr r1, [pc, #56] ; (8001648 ) + 8001610: 69bb ldr r3, [r7, #24] + 8001612: 4313 orrs r3, r2 + 8001614: 600b str r3, [r1, #0] + 8001616: e006 b.n 8001626 } else { CLEAR_BIT(EXTI->IMR, iocurrent); - 80016d0: 4b0b ldr r3, [pc, #44] ; (8001700 ) - 80016d2: 681a ldr r2, [r3, #0] - 80016d4: 69bb ldr r3, [r7, #24] - 80016d6: 43db mvns r3, r3 - 80016d8: 4909 ldr r1, [pc, #36] ; (8001700 ) - 80016da: 4013 ands r3, r2 - 80016dc: 600b str r3, [r1, #0] + 8001618: 4b0b ldr r3, [pc, #44] ; (8001648 ) + 800161a: 681a ldr r2, [r3, #0] + 800161c: 69bb ldr r3, [r7, #24] + 800161e: 43db mvns r3, r3 + 8001620: 4909 ldr r1, [pc, #36] ; (8001648 ) + 8001622: 4013 ands r3, r2 + 8001624: 600b str r3, [r1, #0] } } } position++; - 80016de: 6a7b ldr r3, [r7, #36] ; 0x24 - 80016e0: 3301 adds r3, #1 - 80016e2: 627b str r3, [r7, #36] ; 0x24 + 8001626: 6a7b ldr r3, [r7, #36] ; 0x24 + 8001628: 3301 adds r3, #1 + 800162a: 627b str r3, [r7, #36] ; 0x24 while (((GPIO_Init->Pin) >> position) != 0x00u) - 80016e4: 683b ldr r3, [r7, #0] - 80016e6: 681a ldr r2, [r3, #0] - 80016e8: 6a7b ldr r3, [r7, #36] ; 0x24 - 80016ea: fa22 f303 lsr.w r3, r2, r3 - 80016ee: 2b00 cmp r3, #0 - 80016f0: f47f ae7e bne.w 80013f0 + 800162c: 683b ldr r3, [r7, #0] + 800162e: 681a ldr r2, [r3, #0] + 8001630: 6a7b ldr r3, [r7, #36] ; 0x24 + 8001632: fa22 f303 lsr.w r3, r2, r3 + 8001636: 2b00 cmp r3, #0 + 8001638: f47f ae7e bne.w 8001338 } } - 80016f4: bf00 nop - 80016f6: bf00 nop - 80016f8: 372c adds r7, #44 ; 0x2c - 80016fa: 46bd mov sp, r7 - 80016fc: bc80 pop {r7} - 80016fe: 4770 bx lr - 8001700: 40010400 .word 0x40010400 + 800163c: bf00 nop + 800163e: bf00 nop + 8001640: 372c adds r7, #44 ; 0x2c + 8001642: 46bd mov sp, r7 + 8001644: bc80 pop {r7} + 8001646: 4770 bx lr + 8001648: 40010400 .word 0x40010400 -08001704 : +0800164c : * @param GPIO_Pin: specifies the port bit to read. * This parameter can be GPIO_PIN_x where x can be (0..15). * @retval The input port pin value. */ GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) { - 8001704: b480 push {r7} - 8001706: b085 sub sp, #20 - 8001708: af00 add r7, sp, #0 - 800170a: 6078 str r0, [r7, #4] - 800170c: 460b mov r3, r1 - 800170e: 807b strh r3, [r7, #2] + 800164c: b480 push {r7} + 800164e: b085 sub sp, #20 + 8001650: af00 add r7, sp, #0 + 8001652: 6078 str r0, [r7, #4] + 8001654: 460b mov r3, r1 + 8001656: 807b strh r3, [r7, #2] GPIO_PinState bitstatus; /* Check the parameters */ assert_param(IS_GPIO_PIN(GPIO_Pin)); if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET) - 8001710: 687b ldr r3, [r7, #4] - 8001712: 689a ldr r2, [r3, #8] - 8001714: 887b ldrh r3, [r7, #2] - 8001716: 4013 ands r3, r2 - 8001718: 2b00 cmp r3, #0 - 800171a: d002 beq.n 8001722 + 8001658: 687b ldr r3, [r7, #4] + 800165a: 689a ldr r2, [r3, #8] + 800165c: 887b ldrh r3, [r7, #2] + 800165e: 4013 ands r3, r2 + 8001660: 2b00 cmp r3, #0 + 8001662: d002 beq.n 800166a { bitstatus = GPIO_PIN_SET; - 800171c: 2301 movs r3, #1 - 800171e: 73fb strb r3, [r7, #15] - 8001720: e001 b.n 8001726 + 8001664: 2301 movs r3, #1 + 8001666: 73fb strb r3, [r7, #15] + 8001668: e001 b.n 800166e } else { bitstatus = GPIO_PIN_RESET; - 8001722: 2300 movs r3, #0 - 8001724: 73fb strb r3, [r7, #15] + 800166a: 2300 movs r3, #0 + 800166c: 73fb strb r3, [r7, #15] } return bitstatus; - 8001726: 7bfb ldrb r3, [r7, #15] + 800166e: 7bfb ldrb r3, [r7, #15] } - 8001728: 4618 mov r0, r3 - 800172a: 3714 adds r7, #20 - 800172c: 46bd mov sp, r7 - 800172e: bc80 pop {r7} - 8001730: 4770 bx lr + 8001670: 4618 mov r0, r3 + 8001672: 3714 adds r7, #20 + 8001674: 46bd mov sp, r7 + 8001676: bc80 pop {r7} + 8001678: 4770 bx lr -08001732 : +0800167a : * @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) { - 8001732: b480 push {r7} - 8001734: b083 sub sp, #12 - 8001736: af00 add r7, sp, #0 - 8001738: 6078 str r0, [r7, #4] - 800173a: 460b mov r3, r1 - 800173c: 807b strh r3, [r7, #2] - 800173e: 4613 mov r3, r2 - 8001740: 707b strb r3, [r7, #1] + 800167a: b480 push {r7} + 800167c: b083 sub sp, #12 + 800167e: af00 add r7, sp, #0 + 8001680: 6078 str r0, [r7, #4] + 8001682: 460b mov r3, r1 + 8001684: 807b strh r3, [r7, #2] + 8001686: 4613 mov r3, r2 + 8001688: 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) - 8001742: 787b ldrb r3, [r7, #1] - 8001744: 2b00 cmp r3, #0 - 8001746: d003 beq.n 8001750 + 800168a: 787b ldrb r3, [r7, #1] + 800168c: 2b00 cmp r3, #0 + 800168e: d003 beq.n 8001698 { GPIOx->BSRR = GPIO_Pin; - 8001748: 887a ldrh r2, [r7, #2] - 800174a: 687b ldr r3, [r7, #4] - 800174c: 611a str r2, [r3, #16] + 8001690: 887a ldrh r2, [r7, #2] + 8001692: 687b ldr r3, [r7, #4] + 8001694: 611a str r2, [r3, #16] } else { GPIOx->BSRR = (uint32_t)GPIO_Pin << 16u; } } - 800174e: e003 b.n 8001758 + 8001696: e003 b.n 80016a0 GPIOx->BSRR = (uint32_t)GPIO_Pin << 16u; - 8001750: 887b ldrh r3, [r7, #2] - 8001752: 041a lsls r2, r3, #16 - 8001754: 687b ldr r3, [r7, #4] - 8001756: 611a str r2, [r3, #16] + 8001698: 887b ldrh r3, [r7, #2] + 800169a: 041a lsls r2, r3, #16 + 800169c: 687b ldr r3, [r7, #4] + 800169e: 611a str r2, [r3, #16] } - 8001758: bf00 nop - 800175a: 370c adds r7, #12 - 800175c: 46bd mov sp, r7 - 800175e: bc80 pop {r7} - 8001760: 4770 bx lr + 80016a0: bf00 nop + 80016a2: 370c adds r7, #12 + 80016a4: 46bd mov sp, r7 + 80016a6: bc80 pop {r7} + 80016a8: 4770 bx lr + ... -08001762 : - * @param GPIOx: where x can be (A..G depending on device used) to select the GPIO peripheral - * @param GPIO_Pin: Specifies the pins to be toggled. - * @retval None - */ -void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) -{ - 8001762: b480 push {r7} - 8001764: b085 sub sp, #20 - 8001766: af00 add r7, sp, #0 - 8001768: 6078 str r0, [r7, #4] - 800176a: 460b mov r3, r1 - 800176c: 807b strh r3, [r7, #2] - - /* Check the parameters */ - assert_param(IS_GPIO_PIN(GPIO_Pin)); - - /* get current Output Data Register value */ - odr = GPIOx->ODR; - 800176e: 687b ldr r3, [r7, #4] - 8001770: 68db ldr r3, [r3, #12] - 8001772: 60fb str r3, [r7, #12] - - /* Set selected pins that were at low level, and reset ones that were high */ - GPIOx->BSRR = ((odr & GPIO_Pin) << GPIO_NUMBER) | (~odr & GPIO_Pin); - 8001774: 887a ldrh r2, [r7, #2] - 8001776: 68fb ldr r3, [r7, #12] - 8001778: 4013 ands r3, r2 - 800177a: 041a lsls r2, r3, #16 - 800177c: 68fb ldr r3, [r7, #12] - 800177e: 43d9 mvns r1, r3 - 8001780: 887b ldrh r3, [r7, #2] - 8001782: 400b ands r3, r1 - 8001784: 431a orrs r2, r3 - 8001786: 687b ldr r3, [r7, #4] - 8001788: 611a str r2, [r3, #16] -} - 800178a: bf00 nop - 800178c: 3714 adds r7, #20 - 800178e: 46bd mov sp, r7 - 8001790: bc80 pop {r7} - 8001792: 4770 bx lr - -08001794 : +080016ac : * supported by this macro. User should request a transition to HSE Off * first and then HSE On or HSE Bypass. * @retval HAL status */ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) { - 8001794: b580 push {r7, lr} - 8001796: b086 sub sp, #24 - 8001798: af00 add r7, sp, #0 - 800179a: 6078 str r0, [r7, #4] + 80016ac: b580 push {r7, lr} + 80016ae: b086 sub sp, #24 + 80016b0: af00 add r7, sp, #0 + 80016b2: 6078 str r0, [r7, #4] uint32_t tickstart; uint32_t pll_config; /* Check Null pointer */ if (RCC_OscInitStruct == NULL) - 800179c: 687b ldr r3, [r7, #4] - 800179e: 2b00 cmp r3, #0 - 80017a0: d101 bne.n 80017a6 + 80016b4: 687b ldr r3, [r7, #4] + 80016b6: 2b00 cmp r3, #0 + 80016b8: d101 bne.n 80016be { return HAL_ERROR; - 80017a2: 2301 movs r3, #1 - 80017a4: e272 b.n 8001c8c + 80016ba: 2301 movs r3, #1 + 80016bc: e272 b.n 8001ba4 /* Check the parameters */ assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); /*------------------------------- HSE Configuration ------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) - 80017a6: 687b ldr r3, [r7, #4] - 80017a8: 681b ldr r3, [r3, #0] - 80017aa: f003 0301 and.w r3, r3, #1 - 80017ae: 2b00 cmp r3, #0 - 80017b0: f000 8087 beq.w 80018c2 + 80016be: 687b ldr r3, [r7, #4] + 80016c0: 681b ldr r3, [r3, #0] + 80016c2: f003 0301 and.w r3, r3, #1 + 80016c6: 2b00 cmp r3, #0 + 80016c8: f000 8087 beq.w 80017da { /* 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 ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSE) - 80017b4: 4b92 ldr r3, [pc, #584] ; (8001a00 ) - 80017b6: 685b ldr r3, [r3, #4] - 80017b8: f003 030c and.w r3, r3, #12 - 80017bc: 2b04 cmp r3, #4 - 80017be: d00c beq.n 80017da + 80016cc: 4b92 ldr r3, [pc, #584] ; (8001918 ) + 80016ce: 685b ldr r3, [r3, #4] + 80016d0: f003 030c and.w r3, r3, #12 + 80016d4: 2b04 cmp r3, #4 + 80016d6: d00c beq.n 80016f2 || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE))) - 80017c0: 4b8f ldr r3, [pc, #572] ; (8001a00 ) - 80017c2: 685b ldr r3, [r3, #4] - 80017c4: f003 030c and.w r3, r3, #12 - 80017c8: 2b08 cmp r3, #8 - 80017ca: d112 bne.n 80017f2 - 80017cc: 4b8c ldr r3, [pc, #560] ; (8001a00 ) - 80017ce: 685b ldr r3, [r3, #4] - 80017d0: f403 3380 and.w r3, r3, #65536 ; 0x10000 - 80017d4: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 80017d8: d10b bne.n 80017f2 + 80016d8: 4b8f ldr r3, [pc, #572] ; (8001918 ) + 80016da: 685b ldr r3, [r3, #4] + 80016dc: f003 030c and.w r3, r3, #12 + 80016e0: 2b08 cmp r3, #8 + 80016e2: d112 bne.n 800170a + 80016e4: 4b8c ldr r3, [pc, #560] ; (8001918 ) + 80016e6: 685b ldr r3, [r3, #4] + 80016e8: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 80016ec: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 80016f0: d10b bne.n 800170a { if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) - 80017da: 4b89 ldr r3, [pc, #548] ; (8001a00 ) - 80017dc: 681b ldr r3, [r3, #0] - 80017de: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 80017e2: 2b00 cmp r3, #0 - 80017e4: d06c beq.n 80018c0 - 80017e6: 687b ldr r3, [r7, #4] - 80017e8: 685b ldr r3, [r3, #4] - 80017ea: 2b00 cmp r3, #0 - 80017ec: d168 bne.n 80018c0 + 80016f2: 4b89 ldr r3, [pc, #548] ; (8001918 ) + 80016f4: 681b ldr r3, [r3, #0] + 80016f6: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 80016fa: 2b00 cmp r3, #0 + 80016fc: d06c beq.n 80017d8 + 80016fe: 687b ldr r3, [r7, #4] + 8001700: 685b ldr r3, [r3, #4] + 8001702: 2b00 cmp r3, #0 + 8001704: d168 bne.n 80017d8 { return HAL_ERROR; - 80017ee: 2301 movs r3, #1 - 80017f0: e24c b.n 8001c8c + 8001706: 2301 movs r3, #1 + 8001708: e24c b.n 8001ba4 } } else { /* Set the new HSE configuration ---------------------------------------*/ __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); - 80017f2: 687b ldr r3, [r7, #4] - 80017f4: 685b ldr r3, [r3, #4] - 80017f6: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 80017fa: d106 bne.n 800180a - 80017fc: 4b80 ldr r3, [pc, #512] ; (8001a00 ) - 80017fe: 681b ldr r3, [r3, #0] - 8001800: 4a7f ldr r2, [pc, #508] ; (8001a00 ) - 8001802: f443 3380 orr.w r3, r3, #65536 ; 0x10000 - 8001806: 6013 str r3, [r2, #0] - 8001808: e02e b.n 8001868 - 800180a: 687b ldr r3, [r7, #4] - 800180c: 685b ldr r3, [r3, #4] - 800180e: 2b00 cmp r3, #0 - 8001810: d10c bne.n 800182c - 8001812: 4b7b ldr r3, [pc, #492] ; (8001a00 ) - 8001814: 681b ldr r3, [r3, #0] - 8001816: 4a7a ldr r2, [pc, #488] ; (8001a00 ) - 8001818: f423 3380 bic.w r3, r3, #65536 ; 0x10000 - 800181c: 6013 str r3, [r2, #0] - 800181e: 4b78 ldr r3, [pc, #480] ; (8001a00 ) - 8001820: 681b ldr r3, [r3, #0] - 8001822: 4a77 ldr r2, [pc, #476] ; (8001a00 ) - 8001824: f423 2380 bic.w r3, r3, #262144 ; 0x40000 - 8001828: 6013 str r3, [r2, #0] - 800182a: e01d b.n 8001868 - 800182c: 687b ldr r3, [r7, #4] - 800182e: 685b ldr r3, [r3, #4] - 8001830: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 - 8001834: d10c bne.n 8001850 - 8001836: 4b72 ldr r3, [pc, #456] ; (8001a00 ) - 8001838: 681b ldr r3, [r3, #0] - 800183a: 4a71 ldr r2, [pc, #452] ; (8001a00 ) - 800183c: f443 2380 orr.w r3, r3, #262144 ; 0x40000 - 8001840: 6013 str r3, [r2, #0] - 8001842: 4b6f ldr r3, [pc, #444] ; (8001a00 ) - 8001844: 681b ldr r3, [r3, #0] - 8001846: 4a6e ldr r2, [pc, #440] ; (8001a00 ) - 8001848: f443 3380 orr.w r3, r3, #65536 ; 0x10000 - 800184c: 6013 str r3, [r2, #0] - 800184e: e00b b.n 8001868 - 8001850: 4b6b ldr r3, [pc, #428] ; (8001a00 ) - 8001852: 681b ldr r3, [r3, #0] - 8001854: 4a6a ldr r2, [pc, #424] ; (8001a00 ) - 8001856: f423 3380 bic.w r3, r3, #65536 ; 0x10000 - 800185a: 6013 str r3, [r2, #0] - 800185c: 4b68 ldr r3, [pc, #416] ; (8001a00 ) - 800185e: 681b ldr r3, [r3, #0] - 8001860: 4a67 ldr r2, [pc, #412] ; (8001a00 ) - 8001862: f423 2380 bic.w r3, r3, #262144 ; 0x40000 - 8001866: 6013 str r3, [r2, #0] + 800170a: 687b ldr r3, [r7, #4] + 800170c: 685b ldr r3, [r3, #4] + 800170e: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 8001712: d106 bne.n 8001722 + 8001714: 4b80 ldr r3, [pc, #512] ; (8001918 ) + 8001716: 681b ldr r3, [r3, #0] + 8001718: 4a7f ldr r2, [pc, #508] ; (8001918 ) + 800171a: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 800171e: 6013 str r3, [r2, #0] + 8001720: e02e b.n 8001780 + 8001722: 687b ldr r3, [r7, #4] + 8001724: 685b ldr r3, [r3, #4] + 8001726: 2b00 cmp r3, #0 + 8001728: d10c bne.n 8001744 + 800172a: 4b7b ldr r3, [pc, #492] ; (8001918 ) + 800172c: 681b ldr r3, [r3, #0] + 800172e: 4a7a ldr r2, [pc, #488] ; (8001918 ) + 8001730: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 8001734: 6013 str r3, [r2, #0] + 8001736: 4b78 ldr r3, [pc, #480] ; (8001918 ) + 8001738: 681b ldr r3, [r3, #0] + 800173a: 4a77 ldr r2, [pc, #476] ; (8001918 ) + 800173c: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 8001740: 6013 str r3, [r2, #0] + 8001742: e01d b.n 8001780 + 8001744: 687b ldr r3, [r7, #4] + 8001746: 685b ldr r3, [r3, #4] + 8001748: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 + 800174c: d10c bne.n 8001768 + 800174e: 4b72 ldr r3, [pc, #456] ; (8001918 ) + 8001750: 681b ldr r3, [r3, #0] + 8001752: 4a71 ldr r2, [pc, #452] ; (8001918 ) + 8001754: f443 2380 orr.w r3, r3, #262144 ; 0x40000 + 8001758: 6013 str r3, [r2, #0] + 800175a: 4b6f ldr r3, [pc, #444] ; (8001918 ) + 800175c: 681b ldr r3, [r3, #0] + 800175e: 4a6e ldr r2, [pc, #440] ; (8001918 ) + 8001760: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 8001764: 6013 str r3, [r2, #0] + 8001766: e00b b.n 8001780 + 8001768: 4b6b ldr r3, [pc, #428] ; (8001918 ) + 800176a: 681b ldr r3, [r3, #0] + 800176c: 4a6a ldr r2, [pc, #424] ; (8001918 ) + 800176e: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 8001772: 6013 str r3, [r2, #0] + 8001774: 4b68 ldr r3, [pc, #416] ; (8001918 ) + 8001776: 681b ldr r3, [r3, #0] + 8001778: 4a67 ldr r2, [pc, #412] ; (8001918 ) + 800177a: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 800177e: 6013 str r3, [r2, #0] /* Check the HSE State */ if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF) - 8001868: 687b ldr r3, [r7, #4] - 800186a: 685b ldr r3, [r3, #4] - 800186c: 2b00 cmp r3, #0 - 800186e: d013 beq.n 8001898 + 8001780: 687b ldr r3, [r7, #4] + 8001782: 685b ldr r3, [r3, #4] + 8001784: 2b00 cmp r3, #0 + 8001786: d013 beq.n 80017b0 { /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001870: f7ff fca2 bl 80011b8 - 8001874: 6138 str r0, [r7, #16] + 8001788: f7ff fcba bl 8001100 + 800178c: 6138 str r0, [r7, #16] /* Wait till HSE is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) - 8001876: e008 b.n 800188a + 800178e: e008 b.n 80017a2 { if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) - 8001878: f7ff fc9e bl 80011b8 - 800187c: 4602 mov r2, r0 - 800187e: 693b ldr r3, [r7, #16] - 8001880: 1ad3 subs r3, r2, r3 - 8001882: 2b64 cmp r3, #100 ; 0x64 - 8001884: d901 bls.n 800188a + 8001790: f7ff fcb6 bl 8001100 + 8001794: 4602 mov r2, r0 + 8001796: 693b ldr r3, [r7, #16] + 8001798: 1ad3 subs r3, r2, r3 + 800179a: 2b64 cmp r3, #100 ; 0x64 + 800179c: d901 bls.n 80017a2 { return HAL_TIMEOUT; - 8001886: 2303 movs r3, #3 - 8001888: e200 b.n 8001c8c + 800179e: 2303 movs r3, #3 + 80017a0: e200 b.n 8001ba4 while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) - 800188a: 4b5d ldr r3, [pc, #372] ; (8001a00 ) - 800188c: 681b ldr r3, [r3, #0] - 800188e: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8001892: 2b00 cmp r3, #0 - 8001894: d0f0 beq.n 8001878 - 8001896: e014 b.n 80018c2 + 80017a2: 4b5d ldr r3, [pc, #372] ; (8001918 ) + 80017a4: 681b ldr r3, [r3, #0] + 80017a6: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 80017aa: 2b00 cmp r3, #0 + 80017ac: d0f0 beq.n 8001790 + 80017ae: e014 b.n 80017da } } else { /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001898: f7ff fc8e bl 80011b8 - 800189c: 6138 str r0, [r7, #16] + 80017b0: f7ff fca6 bl 8001100 + 80017b4: 6138 str r0, [r7, #16] /* Wait till HSE is disabled */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) - 800189e: e008 b.n 80018b2 + 80017b6: e008 b.n 80017ca { if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) - 80018a0: f7ff fc8a bl 80011b8 - 80018a4: 4602 mov r2, r0 - 80018a6: 693b ldr r3, [r7, #16] - 80018a8: 1ad3 subs r3, r2, r3 - 80018aa: 2b64 cmp r3, #100 ; 0x64 - 80018ac: d901 bls.n 80018b2 + 80017b8: f7ff fca2 bl 8001100 + 80017bc: 4602 mov r2, r0 + 80017be: 693b ldr r3, [r7, #16] + 80017c0: 1ad3 subs r3, r2, r3 + 80017c2: 2b64 cmp r3, #100 ; 0x64 + 80017c4: d901 bls.n 80017ca { return HAL_TIMEOUT; - 80018ae: 2303 movs r3, #3 - 80018b0: e1ec b.n 8001c8c + 80017c6: 2303 movs r3, #3 + 80017c8: e1ec b.n 8001ba4 while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) - 80018b2: 4b53 ldr r3, [pc, #332] ; (8001a00 ) - 80018b4: 681b ldr r3, [r3, #0] - 80018b6: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 80018ba: 2b00 cmp r3, #0 - 80018bc: d1f0 bne.n 80018a0 - 80018be: e000 b.n 80018c2 + 80017ca: 4b53 ldr r3, [pc, #332] ; (8001918 ) + 80017cc: 681b ldr r3, [r3, #0] + 80017ce: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 80017d2: 2b00 cmp r3, #0 + 80017d4: d1f0 bne.n 80017b8 + 80017d6: e000 b.n 80017da if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) - 80018c0: bf00 nop + 80017d8: bf00 nop } } } } /*----------------------------- HSI Configuration --------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) - 80018c2: 687b ldr r3, [r7, #4] - 80018c4: 681b ldr r3, [r3, #0] - 80018c6: f003 0302 and.w r3, r3, #2 - 80018ca: 2b00 cmp r3, #0 - 80018cc: d063 beq.n 8001996 + 80017da: 687b ldr r3, [r7, #4] + 80017dc: 681b ldr r3, [r3, #0] + 80017de: f003 0302 and.w r3, r3, #2 + 80017e2: 2b00 cmp r3, #0 + 80017e4: d063 beq.n 80018ae /* Check the parameters */ assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState)); assert_param(IS_RCC_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue)); /* Check if HSI is used as system clock or as PLL source when PLL is selected as system clock */ if ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSI) - 80018ce: 4b4c ldr r3, [pc, #304] ; (8001a00 ) - 80018d0: 685b ldr r3, [r3, #4] - 80018d2: f003 030c and.w r3, r3, #12 - 80018d6: 2b00 cmp r3, #0 - 80018d8: d00b beq.n 80018f2 + 80017e6: 4b4c ldr r3, [pc, #304] ; (8001918 ) + 80017e8: 685b ldr r3, [r3, #4] + 80017ea: f003 030c and.w r3, r3, #12 + 80017ee: 2b00 cmp r3, #0 + 80017f0: d00b beq.n 800180a || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSI_DIV2))) - 80018da: 4b49 ldr r3, [pc, #292] ; (8001a00 ) - 80018dc: 685b ldr r3, [r3, #4] - 80018de: f003 030c and.w r3, r3, #12 - 80018e2: 2b08 cmp r3, #8 - 80018e4: d11c bne.n 8001920 - 80018e6: 4b46 ldr r3, [pc, #280] ; (8001a00 ) - 80018e8: 685b ldr r3, [r3, #4] - 80018ea: f403 3380 and.w r3, r3, #65536 ; 0x10000 - 80018ee: 2b00 cmp r3, #0 - 80018f0: d116 bne.n 8001920 + 80017f2: 4b49 ldr r3, [pc, #292] ; (8001918 ) + 80017f4: 685b ldr r3, [r3, #4] + 80017f6: f003 030c and.w r3, r3, #12 + 80017fa: 2b08 cmp r3, #8 + 80017fc: d11c bne.n 8001838 + 80017fe: 4b46 ldr r3, [pc, #280] ; (8001918 ) + 8001800: 685b ldr r3, [r3, #4] + 8001802: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 8001806: 2b00 cmp r3, #0 + 8001808: d116 bne.n 8001838 { /* When HSI is used as system clock it will not disabled */ if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) - 80018f2: 4b43 ldr r3, [pc, #268] ; (8001a00 ) - 80018f4: 681b ldr r3, [r3, #0] - 80018f6: f003 0302 and.w r3, r3, #2 - 80018fa: 2b00 cmp r3, #0 - 80018fc: d005 beq.n 800190a - 80018fe: 687b ldr r3, [r7, #4] - 8001900: 691b ldr r3, [r3, #16] - 8001902: 2b01 cmp r3, #1 - 8001904: d001 beq.n 800190a + 800180a: 4b43 ldr r3, [pc, #268] ; (8001918 ) + 800180c: 681b ldr r3, [r3, #0] + 800180e: f003 0302 and.w r3, r3, #2 + 8001812: 2b00 cmp r3, #0 + 8001814: d005 beq.n 8001822 + 8001816: 687b ldr r3, [r7, #4] + 8001818: 691b ldr r3, [r3, #16] + 800181a: 2b01 cmp r3, #1 + 800181c: d001 beq.n 8001822 { return HAL_ERROR; - 8001906: 2301 movs r3, #1 - 8001908: e1c0 b.n 8001c8c + 800181e: 2301 movs r3, #1 + 8001820: e1c0 b.n 8001ba4 } /* Otherwise, just the calibration is allowed */ else { /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); - 800190a: 4b3d ldr r3, [pc, #244] ; (8001a00 ) - 800190c: 681b ldr r3, [r3, #0] - 800190e: f023 02f8 bic.w r2, r3, #248 ; 0xf8 - 8001912: 687b ldr r3, [r7, #4] - 8001914: 695b ldr r3, [r3, #20] - 8001916: 00db lsls r3, r3, #3 - 8001918: 4939 ldr r1, [pc, #228] ; (8001a00 ) - 800191a: 4313 orrs r3, r2 - 800191c: 600b str r3, [r1, #0] + 8001822: 4b3d ldr r3, [pc, #244] ; (8001918 ) + 8001824: 681b ldr r3, [r3, #0] + 8001826: f023 02f8 bic.w r2, r3, #248 ; 0xf8 + 800182a: 687b ldr r3, [r7, #4] + 800182c: 695b ldr r3, [r3, #20] + 800182e: 00db lsls r3, r3, #3 + 8001830: 4939 ldr r1, [pc, #228] ; (8001918 ) + 8001832: 4313 orrs r3, r2 + 8001834: 600b str r3, [r1, #0] if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) - 800191e: e03a b.n 8001996 + 8001836: e03a b.n 80018ae } } else { /* Check the HSI State */ if (RCC_OscInitStruct->HSIState != RCC_HSI_OFF) - 8001920: 687b ldr r3, [r7, #4] - 8001922: 691b ldr r3, [r3, #16] - 8001924: 2b00 cmp r3, #0 - 8001926: d020 beq.n 800196a + 8001838: 687b ldr r3, [r7, #4] + 800183a: 691b ldr r3, [r3, #16] + 800183c: 2b00 cmp r3, #0 + 800183e: d020 beq.n 8001882 { /* Enable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_ENABLE(); - 8001928: 4b36 ldr r3, [pc, #216] ; (8001a04 ) - 800192a: 2201 movs r2, #1 - 800192c: 601a str r2, [r3, #0] + 8001840: 4b36 ldr r3, [pc, #216] ; (800191c ) + 8001842: 2201 movs r2, #1 + 8001844: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 800192e: f7ff fc43 bl 80011b8 - 8001932: 6138 str r0, [r7, #16] + 8001846: f7ff fc5b bl 8001100 + 800184a: 6138 str r0, [r7, #16] /* Wait till HSI is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) - 8001934: e008 b.n 8001948 + 800184c: e008 b.n 8001860 { if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) - 8001936: f7ff fc3f bl 80011b8 - 800193a: 4602 mov r2, r0 - 800193c: 693b ldr r3, [r7, #16] - 800193e: 1ad3 subs r3, r2, r3 - 8001940: 2b02 cmp r3, #2 - 8001942: d901 bls.n 8001948 + 800184e: f7ff fc57 bl 8001100 + 8001852: 4602 mov r2, r0 + 8001854: 693b ldr r3, [r7, #16] + 8001856: 1ad3 subs r3, r2, r3 + 8001858: 2b02 cmp r3, #2 + 800185a: d901 bls.n 8001860 { return HAL_TIMEOUT; - 8001944: 2303 movs r3, #3 - 8001946: e1a1 b.n 8001c8c + 800185c: 2303 movs r3, #3 + 800185e: e1a1 b.n 8001ba4 while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) - 8001948: 4b2d ldr r3, [pc, #180] ; (8001a00 ) - 800194a: 681b ldr r3, [r3, #0] - 800194c: f003 0302 and.w r3, r3, #2 - 8001950: 2b00 cmp r3, #0 - 8001952: d0f0 beq.n 8001936 + 8001860: 4b2d ldr r3, [pc, #180] ; (8001918 ) + 8001862: 681b ldr r3, [r3, #0] + 8001864: f003 0302 and.w r3, r3, #2 + 8001868: 2b00 cmp r3, #0 + 800186a: d0f0 beq.n 800184e } } /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); - 8001954: 4b2a ldr r3, [pc, #168] ; (8001a00 ) - 8001956: 681b ldr r3, [r3, #0] - 8001958: f023 02f8 bic.w r2, r3, #248 ; 0xf8 - 800195c: 687b ldr r3, [r7, #4] - 800195e: 695b ldr r3, [r3, #20] - 8001960: 00db lsls r3, r3, #3 - 8001962: 4927 ldr r1, [pc, #156] ; (8001a00 ) - 8001964: 4313 orrs r3, r2 - 8001966: 600b str r3, [r1, #0] - 8001968: e015 b.n 8001996 + 800186c: 4b2a ldr r3, [pc, #168] ; (8001918 ) + 800186e: 681b ldr r3, [r3, #0] + 8001870: f023 02f8 bic.w r2, r3, #248 ; 0xf8 + 8001874: 687b ldr r3, [r7, #4] + 8001876: 695b ldr r3, [r3, #20] + 8001878: 00db lsls r3, r3, #3 + 800187a: 4927 ldr r1, [pc, #156] ; (8001918 ) + 800187c: 4313 orrs r3, r2 + 800187e: 600b str r3, [r1, #0] + 8001880: e015 b.n 80018ae } else { /* Disable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_DISABLE(); - 800196a: 4b26 ldr r3, [pc, #152] ; (8001a04 ) - 800196c: 2200 movs r2, #0 - 800196e: 601a str r2, [r3, #0] + 8001882: 4b26 ldr r3, [pc, #152] ; (800191c ) + 8001884: 2200 movs r2, #0 + 8001886: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001970: f7ff fc22 bl 80011b8 - 8001974: 6138 str r0, [r7, #16] + 8001888: f7ff fc3a bl 8001100 + 800188c: 6138 str r0, [r7, #16] /* Wait till HSI is disabled */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) - 8001976: e008 b.n 800198a + 800188e: e008 b.n 80018a2 { if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) - 8001978: f7ff fc1e bl 80011b8 - 800197c: 4602 mov r2, r0 - 800197e: 693b ldr r3, [r7, #16] - 8001980: 1ad3 subs r3, r2, r3 - 8001982: 2b02 cmp r3, #2 - 8001984: d901 bls.n 800198a + 8001890: f7ff fc36 bl 8001100 + 8001894: 4602 mov r2, r0 + 8001896: 693b ldr r3, [r7, #16] + 8001898: 1ad3 subs r3, r2, r3 + 800189a: 2b02 cmp r3, #2 + 800189c: d901 bls.n 80018a2 { return HAL_TIMEOUT; - 8001986: 2303 movs r3, #3 - 8001988: e180 b.n 8001c8c + 800189e: 2303 movs r3, #3 + 80018a0: e180 b.n 8001ba4 while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) - 800198a: 4b1d ldr r3, [pc, #116] ; (8001a00 ) - 800198c: 681b ldr r3, [r3, #0] - 800198e: f003 0302 and.w r3, r3, #2 - 8001992: 2b00 cmp r3, #0 - 8001994: d1f0 bne.n 8001978 + 80018a2: 4b1d ldr r3, [pc, #116] ; (8001918 ) + 80018a4: 681b ldr r3, [r3, #0] + 80018a6: f003 0302 and.w r3, r3, #2 + 80018aa: 2b00 cmp r3, #0 + 80018ac: d1f0 bne.n 8001890 } } } } /*------------------------------ LSI Configuration -------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) - 8001996: 687b ldr r3, [r7, #4] - 8001998: 681b ldr r3, [r3, #0] - 800199a: f003 0308 and.w r3, r3, #8 - 800199e: 2b00 cmp r3, #0 - 80019a0: d03a beq.n 8001a18 + 80018ae: 687b ldr r3, [r7, #4] + 80018b0: 681b ldr r3, [r3, #0] + 80018b2: f003 0308 and.w r3, r3, #8 + 80018b6: 2b00 cmp r3, #0 + 80018b8: d03a beq.n 8001930 { /* Check the parameters */ assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); /* Check the LSI State */ if (RCC_OscInitStruct->LSIState != RCC_LSI_OFF) - 80019a2: 687b ldr r3, [r7, #4] - 80019a4: 699b ldr r3, [r3, #24] - 80019a6: 2b00 cmp r3, #0 - 80019a8: d019 beq.n 80019de + 80018ba: 687b ldr r3, [r7, #4] + 80018bc: 699b ldr r3, [r3, #24] + 80018be: 2b00 cmp r3, #0 + 80018c0: d019 beq.n 80018f6 { /* Enable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_ENABLE(); - 80019aa: 4b17 ldr r3, [pc, #92] ; (8001a08 ) - 80019ac: 2201 movs r2, #1 - 80019ae: 601a str r2, [r3, #0] + 80018c2: 4b17 ldr r3, [pc, #92] ; (8001920 ) + 80018c4: 2201 movs r2, #1 + 80018c6: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 80019b0: f7ff fc02 bl 80011b8 - 80019b4: 6138 str r0, [r7, #16] + 80018c8: f7ff fc1a bl 8001100 + 80018cc: 6138 str r0, [r7, #16] /* Wait till LSI is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) - 80019b6: e008 b.n 80019ca + 80018ce: e008 b.n 80018e2 { if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) - 80019b8: f7ff fbfe bl 80011b8 - 80019bc: 4602 mov r2, r0 - 80019be: 693b ldr r3, [r7, #16] - 80019c0: 1ad3 subs r3, r2, r3 - 80019c2: 2b02 cmp r3, #2 - 80019c4: d901 bls.n 80019ca + 80018d0: f7ff fc16 bl 8001100 + 80018d4: 4602 mov r2, r0 + 80018d6: 693b ldr r3, [r7, #16] + 80018d8: 1ad3 subs r3, r2, r3 + 80018da: 2b02 cmp r3, #2 + 80018dc: d901 bls.n 80018e2 { return HAL_TIMEOUT; - 80019c6: 2303 movs r3, #3 - 80019c8: e160 b.n 8001c8c + 80018de: 2303 movs r3, #3 + 80018e0: e160 b.n 8001ba4 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) - 80019ca: 4b0d ldr r3, [pc, #52] ; (8001a00 ) - 80019cc: 6a5b ldr r3, [r3, #36] ; 0x24 - 80019ce: f003 0302 and.w r3, r3, #2 - 80019d2: 2b00 cmp r3, #0 - 80019d4: d0f0 beq.n 80019b8 + 80018e2: 4b0d ldr r3, [pc, #52] ; (8001918 ) + 80018e4: 6a5b ldr r3, [r3, #36] ; 0x24 + 80018e6: f003 0302 and.w r3, r3, #2 + 80018ea: 2b00 cmp r3, #0 + 80018ec: d0f0 beq.n 80018d0 } } /* To have a fully stabilized clock in the specified range, a software delay of 1ms should be added.*/ RCC_Delay(1); - 80019d6: 2001 movs r0, #1 - 80019d8: f000 face bl 8001f78 - 80019dc: e01c b.n 8001a18 + 80018ee: 2001 movs r0, #1 + 80018f0: f000 face bl 8001e90 + 80018f4: e01c b.n 8001930 } else { /* Disable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_DISABLE(); - 80019de: 4b0a ldr r3, [pc, #40] ; (8001a08 ) - 80019e0: 2200 movs r2, #0 - 80019e2: 601a str r2, [r3, #0] + 80018f6: 4b0a ldr r3, [pc, #40] ; (8001920 ) + 80018f8: 2200 movs r2, #0 + 80018fa: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 80019e4: f7ff fbe8 bl 80011b8 - 80019e8: 6138 str r0, [r7, #16] + 80018fc: f7ff fc00 bl 8001100 + 8001900: 6138 str r0, [r7, #16] /* Wait till LSI is disabled */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) - 80019ea: e00f b.n 8001a0c + 8001902: e00f b.n 8001924 { if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) - 80019ec: f7ff fbe4 bl 80011b8 - 80019f0: 4602 mov r2, r0 - 80019f2: 693b ldr r3, [r7, #16] - 80019f4: 1ad3 subs r3, r2, r3 - 80019f6: 2b02 cmp r3, #2 - 80019f8: d908 bls.n 8001a0c + 8001904: f7ff fbfc bl 8001100 + 8001908: 4602 mov r2, r0 + 800190a: 693b ldr r3, [r7, #16] + 800190c: 1ad3 subs r3, r2, r3 + 800190e: 2b02 cmp r3, #2 + 8001910: d908 bls.n 8001924 { return HAL_TIMEOUT; - 80019fa: 2303 movs r3, #3 - 80019fc: e146 b.n 8001c8c - 80019fe: bf00 nop - 8001a00: 40021000 .word 0x40021000 - 8001a04: 42420000 .word 0x42420000 - 8001a08: 42420480 .word 0x42420480 + 8001912: 2303 movs r3, #3 + 8001914: e146 b.n 8001ba4 + 8001916: bf00 nop + 8001918: 40021000 .word 0x40021000 + 800191c: 42420000 .word 0x42420000 + 8001920: 42420480 .word 0x42420480 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) - 8001a0c: 4b92 ldr r3, [pc, #584] ; (8001c58 ) - 8001a0e: 6a5b ldr r3, [r3, #36] ; 0x24 - 8001a10: f003 0302 and.w r3, r3, #2 - 8001a14: 2b00 cmp r3, #0 - 8001a16: d1e9 bne.n 80019ec + 8001924: 4b92 ldr r3, [pc, #584] ; (8001b70 ) + 8001926: 6a5b ldr r3, [r3, #36] ; 0x24 + 8001928: f003 0302 and.w r3, r3, #2 + 800192c: 2b00 cmp r3, #0 + 800192e: d1e9 bne.n 8001904 } } } } /*------------------------------ LSE Configuration -------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) - 8001a18: 687b ldr r3, [r7, #4] - 8001a1a: 681b ldr r3, [r3, #0] - 8001a1c: f003 0304 and.w r3, r3, #4 - 8001a20: 2b00 cmp r3, #0 - 8001a22: f000 80a6 beq.w 8001b72 + 8001930: 687b ldr r3, [r7, #4] + 8001932: 681b ldr r3, [r3, #0] + 8001934: f003 0304 and.w r3, r3, #4 + 8001938: 2b00 cmp r3, #0 + 800193a: f000 80a6 beq.w 8001a8a { FlagStatus pwrclkchanged = RESET; - 8001a26: 2300 movs r3, #0 - 8001a28: 75fb strb r3, [r7, #23] + 800193e: 2300 movs r3, #0 + 8001940: 75fb strb r3, [r7, #23] /* Check the parameters */ assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); /* Update LSE configuration in Backup Domain control register */ /* Requires to enable write access to Backup Domain of necessary */ if (__HAL_RCC_PWR_IS_CLK_DISABLED()) - 8001a2a: 4b8b ldr r3, [pc, #556] ; (8001c58 ) - 8001a2c: 69db ldr r3, [r3, #28] - 8001a2e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8001a32: 2b00 cmp r3, #0 - 8001a34: d10d bne.n 8001a52 + 8001942: 4b8b ldr r3, [pc, #556] ; (8001b70 ) + 8001944: 69db ldr r3, [r3, #28] + 8001946: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 800194a: 2b00 cmp r3, #0 + 800194c: d10d bne.n 800196a { __HAL_RCC_PWR_CLK_ENABLE(); - 8001a36: 4b88 ldr r3, [pc, #544] ; (8001c58 ) - 8001a38: 69db ldr r3, [r3, #28] - 8001a3a: 4a87 ldr r2, [pc, #540] ; (8001c58 ) - 8001a3c: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 8001a40: 61d3 str r3, [r2, #28] - 8001a42: 4b85 ldr r3, [pc, #532] ; (8001c58 ) - 8001a44: 69db ldr r3, [r3, #28] - 8001a46: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8001a4a: 60bb str r3, [r7, #8] - 8001a4c: 68bb ldr r3, [r7, #8] + 800194e: 4b88 ldr r3, [pc, #544] ; (8001b70 ) + 8001950: 69db ldr r3, [r3, #28] + 8001952: 4a87 ldr r2, [pc, #540] ; (8001b70 ) + 8001954: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8001958: 61d3 str r3, [r2, #28] + 800195a: 4b85 ldr r3, [pc, #532] ; (8001b70 ) + 800195c: 69db ldr r3, [r3, #28] + 800195e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8001962: 60bb str r3, [r7, #8] + 8001964: 68bb ldr r3, [r7, #8] pwrclkchanged = SET; - 8001a4e: 2301 movs r3, #1 - 8001a50: 75fb strb r3, [r7, #23] + 8001966: 2301 movs r3, #1 + 8001968: 75fb strb r3, [r7, #23] } if (HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) - 8001a52: 4b82 ldr r3, [pc, #520] ; (8001c5c ) - 8001a54: 681b ldr r3, [r3, #0] - 8001a56: f403 7380 and.w r3, r3, #256 ; 0x100 - 8001a5a: 2b00 cmp r3, #0 - 8001a5c: d118 bne.n 8001a90 + 800196a: 4b82 ldr r3, [pc, #520] ; (8001b74 ) + 800196c: 681b ldr r3, [r3, #0] + 800196e: f403 7380 and.w r3, r3, #256 ; 0x100 + 8001972: 2b00 cmp r3, #0 + 8001974: d118 bne.n 80019a8 { /* Enable write access to Backup domain */ SET_BIT(PWR->CR, PWR_CR_DBP); - 8001a5e: 4b7f ldr r3, [pc, #508] ; (8001c5c ) - 8001a60: 681b ldr r3, [r3, #0] - 8001a62: 4a7e ldr r2, [pc, #504] ; (8001c5c ) - 8001a64: f443 7380 orr.w r3, r3, #256 ; 0x100 - 8001a68: 6013 str r3, [r2, #0] + 8001976: 4b7f ldr r3, [pc, #508] ; (8001b74 ) + 8001978: 681b ldr r3, [r3, #0] + 800197a: 4a7e ldr r2, [pc, #504] ; (8001b74 ) + 800197c: f443 7380 orr.w r3, r3, #256 ; 0x100 + 8001980: 6013 str r3, [r2, #0] /* Wait for Backup domain Write protection disable */ tickstart = HAL_GetTick(); - 8001a6a: f7ff fba5 bl 80011b8 - 8001a6e: 6138 str r0, [r7, #16] + 8001982: f7ff fbbd bl 8001100 + 8001986: 6138 str r0, [r7, #16] while (HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) - 8001a70: e008 b.n 8001a84 + 8001988: e008 b.n 800199c { if ((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) - 8001a72: f7ff fba1 bl 80011b8 - 8001a76: 4602 mov r2, r0 - 8001a78: 693b ldr r3, [r7, #16] - 8001a7a: 1ad3 subs r3, r2, r3 - 8001a7c: 2b64 cmp r3, #100 ; 0x64 - 8001a7e: d901 bls.n 8001a84 + 800198a: f7ff fbb9 bl 8001100 + 800198e: 4602 mov r2, r0 + 8001990: 693b ldr r3, [r7, #16] + 8001992: 1ad3 subs r3, r2, r3 + 8001994: 2b64 cmp r3, #100 ; 0x64 + 8001996: d901 bls.n 800199c { return HAL_TIMEOUT; - 8001a80: 2303 movs r3, #3 - 8001a82: e103 b.n 8001c8c + 8001998: 2303 movs r3, #3 + 800199a: e103 b.n 8001ba4 while (HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) - 8001a84: 4b75 ldr r3, [pc, #468] ; (8001c5c ) - 8001a86: 681b ldr r3, [r3, #0] - 8001a88: f403 7380 and.w r3, r3, #256 ; 0x100 - 8001a8c: 2b00 cmp r3, #0 - 8001a8e: d0f0 beq.n 8001a72 + 800199c: 4b75 ldr r3, [pc, #468] ; (8001b74 ) + 800199e: 681b ldr r3, [r3, #0] + 80019a0: f403 7380 and.w r3, r3, #256 ; 0x100 + 80019a4: 2b00 cmp r3, #0 + 80019a6: d0f0 beq.n 800198a } } } /* Set the new LSE configuration -----------------------------------------*/ __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); - 8001a90: 687b ldr r3, [r7, #4] - 8001a92: 68db ldr r3, [r3, #12] - 8001a94: 2b01 cmp r3, #1 - 8001a96: d106 bne.n 8001aa6 - 8001a98: 4b6f ldr r3, [pc, #444] ; (8001c58 ) - 8001a9a: 6a1b ldr r3, [r3, #32] - 8001a9c: 4a6e ldr r2, [pc, #440] ; (8001c58 ) - 8001a9e: f043 0301 orr.w r3, r3, #1 - 8001aa2: 6213 str r3, [r2, #32] - 8001aa4: e02d b.n 8001b02 - 8001aa6: 687b ldr r3, [r7, #4] - 8001aa8: 68db ldr r3, [r3, #12] - 8001aaa: 2b00 cmp r3, #0 - 8001aac: d10c bne.n 8001ac8 - 8001aae: 4b6a ldr r3, [pc, #424] ; (8001c58 ) - 8001ab0: 6a1b ldr r3, [r3, #32] - 8001ab2: 4a69 ldr r2, [pc, #420] ; (8001c58 ) - 8001ab4: f023 0301 bic.w r3, r3, #1 - 8001ab8: 6213 str r3, [r2, #32] - 8001aba: 4b67 ldr r3, [pc, #412] ; (8001c58 ) - 8001abc: 6a1b ldr r3, [r3, #32] - 8001abe: 4a66 ldr r2, [pc, #408] ; (8001c58 ) - 8001ac0: f023 0304 bic.w r3, r3, #4 - 8001ac4: 6213 str r3, [r2, #32] - 8001ac6: e01c b.n 8001b02 - 8001ac8: 687b ldr r3, [r7, #4] - 8001aca: 68db ldr r3, [r3, #12] - 8001acc: 2b05 cmp r3, #5 - 8001ace: d10c bne.n 8001aea - 8001ad0: 4b61 ldr r3, [pc, #388] ; (8001c58 ) - 8001ad2: 6a1b ldr r3, [r3, #32] - 8001ad4: 4a60 ldr r2, [pc, #384] ; (8001c58 ) - 8001ad6: f043 0304 orr.w r3, r3, #4 - 8001ada: 6213 str r3, [r2, #32] - 8001adc: 4b5e ldr r3, [pc, #376] ; (8001c58 ) - 8001ade: 6a1b ldr r3, [r3, #32] - 8001ae0: 4a5d ldr r2, [pc, #372] ; (8001c58 ) - 8001ae2: f043 0301 orr.w r3, r3, #1 - 8001ae6: 6213 str r3, [r2, #32] - 8001ae8: e00b b.n 8001b02 - 8001aea: 4b5b ldr r3, [pc, #364] ; (8001c58 ) - 8001aec: 6a1b ldr r3, [r3, #32] - 8001aee: 4a5a ldr r2, [pc, #360] ; (8001c58 ) - 8001af0: f023 0301 bic.w r3, r3, #1 - 8001af4: 6213 str r3, [r2, #32] - 8001af6: 4b58 ldr r3, [pc, #352] ; (8001c58 ) - 8001af8: 6a1b ldr r3, [r3, #32] - 8001afa: 4a57 ldr r2, [pc, #348] ; (8001c58 ) - 8001afc: f023 0304 bic.w r3, r3, #4 - 8001b00: 6213 str r3, [r2, #32] + 80019a8: 687b ldr r3, [r7, #4] + 80019aa: 68db ldr r3, [r3, #12] + 80019ac: 2b01 cmp r3, #1 + 80019ae: d106 bne.n 80019be + 80019b0: 4b6f ldr r3, [pc, #444] ; (8001b70 ) + 80019b2: 6a1b ldr r3, [r3, #32] + 80019b4: 4a6e ldr r2, [pc, #440] ; (8001b70 ) + 80019b6: f043 0301 orr.w r3, r3, #1 + 80019ba: 6213 str r3, [r2, #32] + 80019bc: e02d b.n 8001a1a + 80019be: 687b ldr r3, [r7, #4] + 80019c0: 68db ldr r3, [r3, #12] + 80019c2: 2b00 cmp r3, #0 + 80019c4: d10c bne.n 80019e0 + 80019c6: 4b6a ldr r3, [pc, #424] ; (8001b70 ) + 80019c8: 6a1b ldr r3, [r3, #32] + 80019ca: 4a69 ldr r2, [pc, #420] ; (8001b70 ) + 80019cc: f023 0301 bic.w r3, r3, #1 + 80019d0: 6213 str r3, [r2, #32] + 80019d2: 4b67 ldr r3, [pc, #412] ; (8001b70 ) + 80019d4: 6a1b ldr r3, [r3, #32] + 80019d6: 4a66 ldr r2, [pc, #408] ; (8001b70 ) + 80019d8: f023 0304 bic.w r3, r3, #4 + 80019dc: 6213 str r3, [r2, #32] + 80019de: e01c b.n 8001a1a + 80019e0: 687b ldr r3, [r7, #4] + 80019e2: 68db ldr r3, [r3, #12] + 80019e4: 2b05 cmp r3, #5 + 80019e6: d10c bne.n 8001a02 + 80019e8: 4b61 ldr r3, [pc, #388] ; (8001b70 ) + 80019ea: 6a1b ldr r3, [r3, #32] + 80019ec: 4a60 ldr r2, [pc, #384] ; (8001b70 ) + 80019ee: f043 0304 orr.w r3, r3, #4 + 80019f2: 6213 str r3, [r2, #32] + 80019f4: 4b5e ldr r3, [pc, #376] ; (8001b70 ) + 80019f6: 6a1b ldr r3, [r3, #32] + 80019f8: 4a5d ldr r2, [pc, #372] ; (8001b70 ) + 80019fa: f043 0301 orr.w r3, r3, #1 + 80019fe: 6213 str r3, [r2, #32] + 8001a00: e00b b.n 8001a1a + 8001a02: 4b5b ldr r3, [pc, #364] ; (8001b70 ) + 8001a04: 6a1b ldr r3, [r3, #32] + 8001a06: 4a5a ldr r2, [pc, #360] ; (8001b70 ) + 8001a08: f023 0301 bic.w r3, r3, #1 + 8001a0c: 6213 str r3, [r2, #32] + 8001a0e: 4b58 ldr r3, [pc, #352] ; (8001b70 ) + 8001a10: 6a1b ldr r3, [r3, #32] + 8001a12: 4a57 ldr r2, [pc, #348] ; (8001b70 ) + 8001a14: f023 0304 bic.w r3, r3, #4 + 8001a18: 6213 str r3, [r2, #32] /* Check the LSE State */ if (RCC_OscInitStruct->LSEState != RCC_LSE_OFF) - 8001b02: 687b ldr r3, [r7, #4] - 8001b04: 68db ldr r3, [r3, #12] - 8001b06: 2b00 cmp r3, #0 - 8001b08: d015 beq.n 8001b36 + 8001a1a: 687b ldr r3, [r7, #4] + 8001a1c: 68db ldr r3, [r3, #12] + 8001a1e: 2b00 cmp r3, #0 + 8001a20: d015 beq.n 8001a4e { /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001b0a: f7ff fb55 bl 80011b8 - 8001b0e: 6138 str r0, [r7, #16] + 8001a22: f7ff fb6d bl 8001100 + 8001a26: 6138 str r0, [r7, #16] /* Wait till LSE is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) - 8001b10: e00a b.n 8001b28 + 8001a28: e00a b.n 8001a40 { if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) - 8001b12: f7ff fb51 bl 80011b8 - 8001b16: 4602 mov r2, r0 - 8001b18: 693b ldr r3, [r7, #16] - 8001b1a: 1ad3 subs r3, r2, r3 - 8001b1c: f241 3288 movw r2, #5000 ; 0x1388 - 8001b20: 4293 cmp r3, r2 - 8001b22: d901 bls.n 8001b28 + 8001a2a: f7ff fb69 bl 8001100 + 8001a2e: 4602 mov r2, r0 + 8001a30: 693b ldr r3, [r7, #16] + 8001a32: 1ad3 subs r3, r2, r3 + 8001a34: f241 3288 movw r2, #5000 ; 0x1388 + 8001a38: 4293 cmp r3, r2 + 8001a3a: d901 bls.n 8001a40 { return HAL_TIMEOUT; - 8001b24: 2303 movs r3, #3 - 8001b26: e0b1 b.n 8001c8c + 8001a3c: 2303 movs r3, #3 + 8001a3e: e0b1 b.n 8001ba4 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) - 8001b28: 4b4b ldr r3, [pc, #300] ; (8001c58 ) - 8001b2a: 6a1b ldr r3, [r3, #32] - 8001b2c: f003 0302 and.w r3, r3, #2 - 8001b30: 2b00 cmp r3, #0 - 8001b32: d0ee beq.n 8001b12 - 8001b34: e014 b.n 8001b60 + 8001a40: 4b4b ldr r3, [pc, #300] ; (8001b70 ) + 8001a42: 6a1b ldr r3, [r3, #32] + 8001a44: f003 0302 and.w r3, r3, #2 + 8001a48: 2b00 cmp r3, #0 + 8001a4a: d0ee beq.n 8001a2a + 8001a4c: e014 b.n 8001a78 } } else { /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001b36: f7ff fb3f bl 80011b8 - 8001b3a: 6138 str r0, [r7, #16] + 8001a4e: f7ff fb57 bl 8001100 + 8001a52: 6138 str r0, [r7, #16] /* Wait till LSE is disabled */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) - 8001b3c: e00a b.n 8001b54 + 8001a54: e00a b.n 8001a6c { if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) - 8001b3e: f7ff fb3b bl 80011b8 - 8001b42: 4602 mov r2, r0 - 8001b44: 693b ldr r3, [r7, #16] - 8001b46: 1ad3 subs r3, r2, r3 - 8001b48: f241 3288 movw r2, #5000 ; 0x1388 - 8001b4c: 4293 cmp r3, r2 - 8001b4e: d901 bls.n 8001b54 + 8001a56: f7ff fb53 bl 8001100 + 8001a5a: 4602 mov r2, r0 + 8001a5c: 693b ldr r3, [r7, #16] + 8001a5e: 1ad3 subs r3, r2, r3 + 8001a60: f241 3288 movw r2, #5000 ; 0x1388 + 8001a64: 4293 cmp r3, r2 + 8001a66: d901 bls.n 8001a6c { return HAL_TIMEOUT; - 8001b50: 2303 movs r3, #3 - 8001b52: e09b b.n 8001c8c + 8001a68: 2303 movs r3, #3 + 8001a6a: e09b b.n 8001ba4 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) - 8001b54: 4b40 ldr r3, [pc, #256] ; (8001c58 ) - 8001b56: 6a1b ldr r3, [r3, #32] - 8001b58: f003 0302 and.w r3, r3, #2 - 8001b5c: 2b00 cmp r3, #0 - 8001b5e: d1ee bne.n 8001b3e + 8001a6c: 4b40 ldr r3, [pc, #256] ; (8001b70 ) + 8001a6e: 6a1b ldr r3, [r3, #32] + 8001a70: f003 0302 and.w r3, r3, #2 + 8001a74: 2b00 cmp r3, #0 + 8001a76: d1ee bne.n 8001a56 } } } /* Require to disable power clock if necessary */ if (pwrclkchanged == SET) - 8001b60: 7dfb ldrb r3, [r7, #23] - 8001b62: 2b01 cmp r3, #1 - 8001b64: d105 bne.n 8001b72 + 8001a78: 7dfb ldrb r3, [r7, #23] + 8001a7a: 2b01 cmp r3, #1 + 8001a7c: d105 bne.n 8001a8a { __HAL_RCC_PWR_CLK_DISABLE(); - 8001b66: 4b3c ldr r3, [pc, #240] ; (8001c58 ) - 8001b68: 69db ldr r3, [r3, #28] - 8001b6a: 4a3b ldr r2, [pc, #236] ; (8001c58 ) - 8001b6c: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 - 8001b70: 61d3 str r3, [r2, #28] + 8001a7e: 4b3c ldr r3, [pc, #240] ; (8001b70 ) + 8001a80: 69db ldr r3, [r3, #28] + 8001a82: 4a3b ldr r2, [pc, #236] ; (8001b70 ) + 8001a84: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 + 8001a88: 61d3 str r3, [r2, #28] #endif /* RCC_CR_PLL2ON */ /*-------------------------------- PLL Configuration -----------------------*/ /* Check the parameters */ assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE) - 8001b72: 687b ldr r3, [r7, #4] - 8001b74: 69db ldr r3, [r3, #28] - 8001b76: 2b00 cmp r3, #0 - 8001b78: f000 8087 beq.w 8001c8a + 8001a8a: 687b ldr r3, [r7, #4] + 8001a8c: 69db ldr r3, [r3, #28] + 8001a8e: 2b00 cmp r3, #0 + 8001a90: f000 8087 beq.w 8001ba2 { /* Check if the PLL is used as system clock or not */ if (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) - 8001b7c: 4b36 ldr r3, [pc, #216] ; (8001c58 ) - 8001b7e: 685b ldr r3, [r3, #4] - 8001b80: f003 030c and.w r3, r3, #12 - 8001b84: 2b08 cmp r3, #8 - 8001b86: d061 beq.n 8001c4c + 8001a94: 4b36 ldr r3, [pc, #216] ; (8001b70 ) + 8001a96: 685b ldr r3, [r3, #4] + 8001a98: f003 030c and.w r3, r3, #12 + 8001a9c: 2b08 cmp r3, #8 + 8001a9e: d061 beq.n 8001b64 { if ((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON) - 8001b88: 687b ldr r3, [r7, #4] - 8001b8a: 69db ldr r3, [r3, #28] - 8001b8c: 2b02 cmp r3, #2 - 8001b8e: d146 bne.n 8001c1e + 8001aa0: 687b ldr r3, [r7, #4] + 8001aa2: 69db ldr r3, [r3, #28] + 8001aa4: 2b02 cmp r3, #2 + 8001aa6: d146 bne.n 8001b36 /* Check the parameters */ assert_param(IS_RCC_PLLSOURCE(RCC_OscInitStruct->PLL.PLLSource)); assert_param(IS_RCC_PLL_MUL(RCC_OscInitStruct->PLL.PLLMUL)); /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); - 8001b90: 4b33 ldr r3, [pc, #204] ; (8001c60 ) - 8001b92: 2200 movs r2, #0 - 8001b94: 601a str r2, [r3, #0] + 8001aa8: 4b33 ldr r3, [pc, #204] ; (8001b78 ) + 8001aaa: 2200 movs r2, #0 + 8001aac: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001b96: f7ff fb0f bl 80011b8 - 8001b9a: 6138 str r0, [r7, #16] + 8001aae: f7ff fb27 bl 8001100 + 8001ab2: 6138 str r0, [r7, #16] /* Wait till PLL is disabled */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 8001b9c: e008 b.n 8001bb0 + 8001ab4: e008 b.n 8001ac8 { if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) - 8001b9e: f7ff fb0b bl 80011b8 - 8001ba2: 4602 mov r2, r0 - 8001ba4: 693b ldr r3, [r7, #16] - 8001ba6: 1ad3 subs r3, r2, r3 - 8001ba8: 2b02 cmp r3, #2 - 8001baa: d901 bls.n 8001bb0 + 8001ab6: f7ff fb23 bl 8001100 + 8001aba: 4602 mov r2, r0 + 8001abc: 693b ldr r3, [r7, #16] + 8001abe: 1ad3 subs r3, r2, r3 + 8001ac0: 2b02 cmp r3, #2 + 8001ac2: d901 bls.n 8001ac8 { return HAL_TIMEOUT; - 8001bac: 2303 movs r3, #3 - 8001bae: e06d b.n 8001c8c + 8001ac4: 2303 movs r3, #3 + 8001ac6: e06d b.n 8001ba4 while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 8001bb0: 4b29 ldr r3, [pc, #164] ; (8001c58 ) - 8001bb2: 681b ldr r3, [r3, #0] - 8001bb4: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 8001bb8: 2b00 cmp r3, #0 - 8001bba: d1f0 bne.n 8001b9e + 8001ac8: 4b29 ldr r3, [pc, #164] ; (8001b70 ) + 8001aca: 681b ldr r3, [r3, #0] + 8001acc: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8001ad0: 2b00 cmp r3, #0 + 8001ad2: d1f0 bne.n 8001ab6 } } /* Configure the HSE prediv factor --------------------------------*/ /* It can be written only when the PLL is disabled. Not used in PLL source is different than HSE */ if (RCC_OscInitStruct->PLL.PLLSource == RCC_PLLSOURCE_HSE) - 8001bbc: 687b ldr r3, [r7, #4] - 8001bbe: 6a1b ldr r3, [r3, #32] - 8001bc0: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 8001bc4: d108 bne.n 8001bd8 + 8001ad4: 687b ldr r3, [r7, #4] + 8001ad6: 6a1b ldr r3, [r3, #32] + 8001ad8: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 8001adc: d108 bne.n 8001af0 /* Set PREDIV1 source */ SET_BIT(RCC->CFGR2, RCC_OscInitStruct->Prediv1Source); #endif /* RCC_CFGR2_PREDIV1SRC */ /* Set PREDIV1 Value */ __HAL_RCC_HSE_PREDIV_CONFIG(RCC_OscInitStruct->HSEPredivValue); - 8001bc6: 4b24 ldr r3, [pc, #144] ; (8001c58 ) - 8001bc8: 685b ldr r3, [r3, #4] - 8001bca: f423 3200 bic.w r2, r3, #131072 ; 0x20000 - 8001bce: 687b ldr r3, [r7, #4] - 8001bd0: 689b ldr r3, [r3, #8] - 8001bd2: 4921 ldr r1, [pc, #132] ; (8001c58 ) - 8001bd4: 4313 orrs r3, r2 - 8001bd6: 604b str r3, [r1, #4] + 8001ade: 4b24 ldr r3, [pc, #144] ; (8001b70 ) + 8001ae0: 685b ldr r3, [r3, #4] + 8001ae2: f423 3200 bic.w r2, r3, #131072 ; 0x20000 + 8001ae6: 687b ldr r3, [r7, #4] + 8001ae8: 689b ldr r3, [r3, #8] + 8001aea: 4921 ldr r1, [pc, #132] ; (8001b70 ) + 8001aec: 4313 orrs r3, r2 + 8001aee: 604b str r3, [r1, #4] } /* Configure the main PLL clock source and multiplication factors. */ __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, - 8001bd8: 4b1f ldr r3, [pc, #124] ; (8001c58 ) - 8001bda: 685b ldr r3, [r3, #4] - 8001bdc: f423 1274 bic.w r2, r3, #3997696 ; 0x3d0000 - 8001be0: 687b ldr r3, [r7, #4] - 8001be2: 6a19 ldr r1, [r3, #32] - 8001be4: 687b ldr r3, [r7, #4] - 8001be6: 6a5b ldr r3, [r3, #36] ; 0x24 - 8001be8: 430b orrs r3, r1 - 8001bea: 491b ldr r1, [pc, #108] ; (8001c58 ) - 8001bec: 4313 orrs r3, r2 - 8001bee: 604b str r3, [r1, #4] + 8001af0: 4b1f ldr r3, [pc, #124] ; (8001b70 ) + 8001af2: 685b ldr r3, [r3, #4] + 8001af4: f423 1274 bic.w r2, r3, #3997696 ; 0x3d0000 + 8001af8: 687b ldr r3, [r7, #4] + 8001afa: 6a19 ldr r1, [r3, #32] + 8001afc: 687b ldr r3, [r7, #4] + 8001afe: 6a5b ldr r3, [r3, #36] ; 0x24 + 8001b00: 430b orrs r3, r1 + 8001b02: 491b ldr r1, [pc, #108] ; (8001b70 ) + 8001b04: 4313 orrs r3, r2 + 8001b06: 604b str r3, [r1, #4] RCC_OscInitStruct->PLL.PLLMUL); /* Enable the main PLL. */ __HAL_RCC_PLL_ENABLE(); - 8001bf0: 4b1b ldr r3, [pc, #108] ; (8001c60 ) - 8001bf2: 2201 movs r2, #1 - 8001bf4: 601a str r2, [r3, #0] + 8001b08: 4b1b ldr r3, [pc, #108] ; (8001b78 ) + 8001b0a: 2201 movs r2, #1 + 8001b0c: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001bf6: f7ff fadf bl 80011b8 - 8001bfa: 6138 str r0, [r7, #16] + 8001b0e: f7ff faf7 bl 8001100 + 8001b12: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) - 8001bfc: e008 b.n 8001c10 + 8001b14: e008 b.n 8001b28 { if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) - 8001bfe: f7ff fadb bl 80011b8 - 8001c02: 4602 mov r2, r0 - 8001c04: 693b ldr r3, [r7, #16] - 8001c06: 1ad3 subs r3, r2, r3 - 8001c08: 2b02 cmp r3, #2 - 8001c0a: d901 bls.n 8001c10 + 8001b16: f7ff faf3 bl 8001100 + 8001b1a: 4602 mov r2, r0 + 8001b1c: 693b ldr r3, [r7, #16] + 8001b1e: 1ad3 subs r3, r2, r3 + 8001b20: 2b02 cmp r3, #2 + 8001b22: d901 bls.n 8001b28 { return HAL_TIMEOUT; - 8001c0c: 2303 movs r3, #3 - 8001c0e: e03d b.n 8001c8c + 8001b24: 2303 movs r3, #3 + 8001b26: e03d b.n 8001ba4 while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) - 8001c10: 4b11 ldr r3, [pc, #68] ; (8001c58 ) - 8001c12: 681b ldr r3, [r3, #0] - 8001c14: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 8001c18: 2b00 cmp r3, #0 - 8001c1a: d0f0 beq.n 8001bfe - 8001c1c: e035 b.n 8001c8a + 8001b28: 4b11 ldr r3, [pc, #68] ; (8001b70 ) + 8001b2a: 681b ldr r3, [r3, #0] + 8001b2c: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8001b30: 2b00 cmp r3, #0 + 8001b32: d0f0 beq.n 8001b16 + 8001b34: e035 b.n 8001ba2 } } else { /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); - 8001c1e: 4b10 ldr r3, [pc, #64] ; (8001c60 ) - 8001c20: 2200 movs r2, #0 - 8001c22: 601a str r2, [r3, #0] + 8001b36: 4b10 ldr r3, [pc, #64] ; (8001b78 ) + 8001b38: 2200 movs r2, #0 + 8001b3a: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001c24: f7ff fac8 bl 80011b8 - 8001c28: 6138 str r0, [r7, #16] + 8001b3c: f7ff fae0 bl 8001100 + 8001b40: 6138 str r0, [r7, #16] /* Wait till PLL is disabled */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 8001c2a: e008 b.n 8001c3e + 8001b42: e008 b.n 8001b56 { if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) - 8001c2c: f7ff fac4 bl 80011b8 - 8001c30: 4602 mov r2, r0 - 8001c32: 693b ldr r3, [r7, #16] - 8001c34: 1ad3 subs r3, r2, r3 - 8001c36: 2b02 cmp r3, #2 - 8001c38: d901 bls.n 8001c3e + 8001b44: f7ff fadc bl 8001100 + 8001b48: 4602 mov r2, r0 + 8001b4a: 693b ldr r3, [r7, #16] + 8001b4c: 1ad3 subs r3, r2, r3 + 8001b4e: 2b02 cmp r3, #2 + 8001b50: d901 bls.n 8001b56 { return HAL_TIMEOUT; - 8001c3a: 2303 movs r3, #3 - 8001c3c: e026 b.n 8001c8c + 8001b52: 2303 movs r3, #3 + 8001b54: e026 b.n 8001ba4 while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 8001c3e: 4b06 ldr r3, [pc, #24] ; (8001c58 ) - 8001c40: 681b ldr r3, [r3, #0] - 8001c42: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 8001c46: 2b00 cmp r3, #0 - 8001c48: d1f0 bne.n 8001c2c - 8001c4a: e01e b.n 8001c8a + 8001b56: 4b06 ldr r3, [pc, #24] ; (8001b70 ) + 8001b58: 681b ldr r3, [r3, #0] + 8001b5a: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8001b5e: 2b00 cmp r3, #0 + 8001b60: d1f0 bne.n 8001b44 + 8001b62: e01e b.n 8001ba2 } } else { /* Check if there is a request to disable the PLL used as System clock source */ if ((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) - 8001c4c: 687b ldr r3, [r7, #4] - 8001c4e: 69db ldr r3, [r3, #28] - 8001c50: 2b01 cmp r3, #1 - 8001c52: d107 bne.n 8001c64 + 8001b64: 687b ldr r3, [r7, #4] + 8001b66: 69db ldr r3, [r3, #28] + 8001b68: 2b01 cmp r3, #1 + 8001b6a: d107 bne.n 8001b7c { return HAL_ERROR; - 8001c54: 2301 movs r3, #1 - 8001c56: e019 b.n 8001c8c - 8001c58: 40021000 .word 0x40021000 - 8001c5c: 40007000 .word 0x40007000 - 8001c60: 42420060 .word 0x42420060 + 8001b6c: 2301 movs r3, #1 + 8001b6e: e019 b.n 8001ba4 + 8001b70: 40021000 .word 0x40021000 + 8001b74: 40007000 .word 0x40007000 + 8001b78: 42420060 .word 0x42420060 } else { /* Do not return HAL_ERROR if request repeats the current configuration */ pll_config = RCC->CFGR; - 8001c64: 4b0b ldr r3, [pc, #44] ; (8001c94 ) - 8001c66: 685b ldr r3, [r3, #4] - 8001c68: 60fb str r3, [r7, #12] + 8001b7c: 4b0b ldr r3, [pc, #44] ; (8001bac ) + 8001b7e: 685b ldr r3, [r3, #4] + 8001b80: 60fb str r3, [r7, #12] if ((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || - 8001c6a: 68fb ldr r3, [r7, #12] - 8001c6c: f403 3280 and.w r2, r3, #65536 ; 0x10000 - 8001c70: 687b ldr r3, [r7, #4] - 8001c72: 6a1b ldr r3, [r3, #32] - 8001c74: 429a cmp r2, r3 - 8001c76: d106 bne.n 8001c86 + 8001b82: 68fb ldr r3, [r7, #12] + 8001b84: f403 3280 and.w r2, r3, #65536 ; 0x10000 + 8001b88: 687b ldr r3, [r7, #4] + 8001b8a: 6a1b ldr r3, [r3, #32] + 8001b8c: 429a cmp r2, r3 + 8001b8e: d106 bne.n 8001b9e (READ_BIT(pll_config, RCC_CFGR_PLLMULL) != RCC_OscInitStruct->PLL.PLLMUL)) - 8001c78: 68fb ldr r3, [r7, #12] - 8001c7a: f403 1270 and.w r2, r3, #3932160 ; 0x3c0000 - 8001c7e: 687b ldr r3, [r7, #4] - 8001c80: 6a5b ldr r3, [r3, #36] ; 0x24 + 8001b90: 68fb ldr r3, [r7, #12] + 8001b92: f403 1270 and.w r2, r3, #3932160 ; 0x3c0000 + 8001b96: 687b ldr r3, [r7, #4] + 8001b98: 6a5b ldr r3, [r3, #36] ; 0x24 if ((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || - 8001c82: 429a cmp r2, r3 - 8001c84: d001 beq.n 8001c8a + 8001b9a: 429a cmp r2, r3 + 8001b9c: d001 beq.n 8001ba2 { return HAL_ERROR; - 8001c86: 2301 movs r3, #1 - 8001c88: e000 b.n 8001c8c + 8001b9e: 2301 movs r3, #1 + 8001ba0: e000 b.n 8001ba4 } } } } return HAL_OK; - 8001c8a: 2300 movs r3, #0 + 8001ba2: 2300 movs r3, #0 } - 8001c8c: 4618 mov r0, r3 - 8001c8e: 3718 adds r7, #24 - 8001c90: 46bd mov sp, r7 - 8001c92: bd80 pop {r7, pc} - 8001c94: 40021000 .word 0x40021000 + 8001ba4: 4618 mov r0, r3 + 8001ba6: 3718 adds r7, #24 + 8001ba8: 46bd mov sp, r7 + 8001baa: bd80 pop {r7, pc} + 8001bac: 40021000 .word 0x40021000 -08001c98 : +08001bb0 : * You can use @ref HAL_RCC_GetClockConfig() function to know which clock is * currently used as system clock source. * @retval HAL status */ HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) { - 8001c98: b580 push {r7, lr} - 8001c9a: b084 sub sp, #16 - 8001c9c: af00 add r7, sp, #0 - 8001c9e: 6078 str r0, [r7, #4] - 8001ca0: 6039 str r1, [r7, #0] + 8001bb0: b580 push {r7, lr} + 8001bb2: b084 sub sp, #16 + 8001bb4: af00 add r7, sp, #0 + 8001bb6: 6078 str r0, [r7, #4] + 8001bb8: 6039 str r1, [r7, #0] uint32_t tickstart; /* Check Null pointer */ if (RCC_ClkInitStruct == NULL) - 8001ca2: 687b ldr r3, [r7, #4] - 8001ca4: 2b00 cmp r3, #0 - 8001ca6: d101 bne.n 8001cac + 8001bba: 687b ldr r3, [r7, #4] + 8001bbc: 2b00 cmp r3, #0 + 8001bbe: d101 bne.n 8001bc4 { return HAL_ERROR; - 8001ca8: 2301 movs r3, #1 - 8001caa: e0d0 b.n 8001e4e + 8001bc0: 2301 movs r3, #1 + 8001bc2: e0d0 b.n 8001d66 must be correctly programmed according to the frequency of the CPU clock (HCLK) of the device. */ #if defined(FLASH_ACR_LATENCY) /* Increasing the number of wait states because of higher CPU frequency */ if (FLatency > __HAL_FLASH_GET_LATENCY()) - 8001cac: 4b6a ldr r3, [pc, #424] ; (8001e58 ) - 8001cae: 681b ldr r3, [r3, #0] - 8001cb0: f003 0307 and.w r3, r3, #7 - 8001cb4: 683a ldr r2, [r7, #0] - 8001cb6: 429a cmp r2, r3 - 8001cb8: d910 bls.n 8001cdc + 8001bc4: 4b6a ldr r3, [pc, #424] ; (8001d70 ) + 8001bc6: 681b ldr r3, [r3, #0] + 8001bc8: f003 0307 and.w r3, r3, #7 + 8001bcc: 683a ldr r2, [r7, #0] + 8001bce: 429a cmp r2, r3 + 8001bd0: d910 bls.n 8001bf4 { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); - 8001cba: 4b67 ldr r3, [pc, #412] ; (8001e58 ) - 8001cbc: 681b ldr r3, [r3, #0] - 8001cbe: f023 0207 bic.w r2, r3, #7 - 8001cc2: 4965 ldr r1, [pc, #404] ; (8001e58 ) - 8001cc4: 683b ldr r3, [r7, #0] - 8001cc6: 4313 orrs r3, r2 - 8001cc8: 600b str r3, [r1, #0] + 8001bd2: 4b67 ldr r3, [pc, #412] ; (8001d70 ) + 8001bd4: 681b ldr r3, [r3, #0] + 8001bd6: f023 0207 bic.w r2, r3, #7 + 8001bda: 4965 ldr r1, [pc, #404] ; (8001d70 ) + 8001bdc: 683b ldr r3, [r7, #0] + 8001bde: 4313 orrs r3, r2 + 8001be0: 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) - 8001cca: 4b63 ldr r3, [pc, #396] ; (8001e58 ) - 8001ccc: 681b ldr r3, [r3, #0] - 8001cce: f003 0307 and.w r3, r3, #7 - 8001cd2: 683a ldr r2, [r7, #0] - 8001cd4: 429a cmp r2, r3 - 8001cd6: d001 beq.n 8001cdc + 8001be2: 4b63 ldr r3, [pc, #396] ; (8001d70 ) + 8001be4: 681b ldr r3, [r3, #0] + 8001be6: f003 0307 and.w r3, r3, #7 + 8001bea: 683a ldr r2, [r7, #0] + 8001bec: 429a cmp r2, r3 + 8001bee: d001 beq.n 8001bf4 { return HAL_ERROR; - 8001cd8: 2301 movs r3, #1 - 8001cda: e0b8 b.n 8001e4e + 8001bf0: 2301 movs r3, #1 + 8001bf2: e0b8 b.n 8001d66 } } #endif /* FLASH_ACR_LATENCY */ /*-------------------------- HCLK Configuration --------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) - 8001cdc: 687b ldr r3, [r7, #4] - 8001cde: 681b ldr r3, [r3, #0] - 8001ce0: f003 0302 and.w r3, r3, #2 - 8001ce4: 2b00 cmp r3, #0 - 8001ce6: d020 beq.n 8001d2a + 8001bf4: 687b ldr r3, [r7, #4] + 8001bf6: 681b ldr r3, [r3, #0] + 8001bf8: f003 0302 and.w r3, r3, #2 + 8001bfc: 2b00 cmp r3, #0 + 8001bfe: d020 beq.n 8001c42 { /* Set the highest APBx dividers in order to ensure that we do not go through a non-spec phase whatever we decrease or increase HCLK. */ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) - 8001ce8: 687b ldr r3, [r7, #4] - 8001cea: 681b ldr r3, [r3, #0] - 8001cec: f003 0304 and.w r3, r3, #4 - 8001cf0: 2b00 cmp r3, #0 - 8001cf2: d005 beq.n 8001d00 + 8001c00: 687b ldr r3, [r7, #4] + 8001c02: 681b ldr r3, [r3, #0] + 8001c04: f003 0304 and.w r3, r3, #4 + 8001c08: 2b00 cmp r3, #0 + 8001c0a: d005 beq.n 8001c18 { MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16); - 8001cf4: 4b59 ldr r3, [pc, #356] ; (8001e5c ) - 8001cf6: 685b ldr r3, [r3, #4] - 8001cf8: 4a58 ldr r2, [pc, #352] ; (8001e5c ) - 8001cfa: f443 63e0 orr.w r3, r3, #1792 ; 0x700 - 8001cfe: 6053 str r3, [r2, #4] + 8001c0c: 4b59 ldr r3, [pc, #356] ; (8001d74 ) + 8001c0e: 685b ldr r3, [r3, #4] + 8001c10: 4a58 ldr r2, [pc, #352] ; (8001d74 ) + 8001c12: f443 63e0 orr.w r3, r3, #1792 ; 0x700 + 8001c16: 6053 str r3, [r2, #4] } if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) - 8001d00: 687b ldr r3, [r7, #4] - 8001d02: 681b ldr r3, [r3, #0] - 8001d04: f003 0308 and.w r3, r3, #8 - 8001d08: 2b00 cmp r3, #0 - 8001d0a: d005 beq.n 8001d18 + 8001c18: 687b ldr r3, [r7, #4] + 8001c1a: 681b ldr r3, [r3, #0] + 8001c1c: f003 0308 and.w r3, r3, #8 + 8001c20: 2b00 cmp r3, #0 + 8001c22: d005 beq.n 8001c30 { MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3)); - 8001d0c: 4b53 ldr r3, [pc, #332] ; (8001e5c ) - 8001d0e: 685b ldr r3, [r3, #4] - 8001d10: 4a52 ldr r2, [pc, #328] ; (8001e5c ) - 8001d12: f443 5360 orr.w r3, r3, #14336 ; 0x3800 - 8001d16: 6053 str r3, [r2, #4] + 8001c24: 4b53 ldr r3, [pc, #332] ; (8001d74 ) + 8001c26: 685b ldr r3, [r3, #4] + 8001c28: 4a52 ldr r2, [pc, #328] ; (8001d74 ) + 8001c2a: f443 5360 orr.w r3, r3, #14336 ; 0x3800 + 8001c2e: 6053 str r3, [r2, #4] } /* Set the new HCLK clock divider */ assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); - 8001d18: 4b50 ldr r3, [pc, #320] ; (8001e5c ) - 8001d1a: 685b ldr r3, [r3, #4] - 8001d1c: f023 02f0 bic.w r2, r3, #240 ; 0xf0 - 8001d20: 687b ldr r3, [r7, #4] - 8001d22: 689b ldr r3, [r3, #8] - 8001d24: 494d ldr r1, [pc, #308] ; (8001e5c ) - 8001d26: 4313 orrs r3, r2 - 8001d28: 604b str r3, [r1, #4] + 8001c30: 4b50 ldr r3, [pc, #320] ; (8001d74 ) + 8001c32: 685b ldr r3, [r3, #4] + 8001c34: f023 02f0 bic.w r2, r3, #240 ; 0xf0 + 8001c38: 687b ldr r3, [r7, #4] + 8001c3a: 689b ldr r3, [r3, #8] + 8001c3c: 494d ldr r1, [pc, #308] ; (8001d74 ) + 8001c3e: 4313 orrs r3, r2 + 8001c40: 604b str r3, [r1, #4] } /*------------------------- SYSCLK Configuration ---------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) - 8001d2a: 687b ldr r3, [r7, #4] - 8001d2c: 681b ldr r3, [r3, #0] - 8001d2e: f003 0301 and.w r3, r3, #1 - 8001d32: 2b00 cmp r3, #0 - 8001d34: d040 beq.n 8001db8 + 8001c42: 687b ldr r3, [r7, #4] + 8001c44: 681b ldr r3, [r3, #0] + 8001c46: f003 0301 and.w r3, r3, #1 + 8001c4a: 2b00 cmp r3, #0 + 8001c4c: d040 beq.n 8001cd0 { assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); /* HSE is selected as System Clock Source */ if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) - 8001d36: 687b ldr r3, [r7, #4] - 8001d38: 685b ldr r3, [r3, #4] - 8001d3a: 2b01 cmp r3, #1 - 8001d3c: d107 bne.n 8001d4e + 8001c4e: 687b ldr r3, [r7, #4] + 8001c50: 685b ldr r3, [r3, #4] + 8001c52: 2b01 cmp r3, #1 + 8001c54: d107 bne.n 8001c66 { /* Check the HSE ready flag */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) - 8001d3e: 4b47 ldr r3, [pc, #284] ; (8001e5c ) - 8001d40: 681b ldr r3, [r3, #0] - 8001d42: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8001d46: 2b00 cmp r3, #0 - 8001d48: d115 bne.n 8001d76 + 8001c56: 4b47 ldr r3, [pc, #284] ; (8001d74 ) + 8001c58: 681b ldr r3, [r3, #0] + 8001c5a: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 8001c5e: 2b00 cmp r3, #0 + 8001c60: d115 bne.n 8001c8e { return HAL_ERROR; - 8001d4a: 2301 movs r3, #1 - 8001d4c: e07f b.n 8001e4e + 8001c62: 2301 movs r3, #1 + 8001c64: e07f b.n 8001d66 } } /* PLL is selected as System Clock Source */ else if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) - 8001d4e: 687b ldr r3, [r7, #4] - 8001d50: 685b ldr r3, [r3, #4] - 8001d52: 2b02 cmp r3, #2 - 8001d54: d107 bne.n 8001d66 + 8001c66: 687b ldr r3, [r7, #4] + 8001c68: 685b ldr r3, [r3, #4] + 8001c6a: 2b02 cmp r3, #2 + 8001c6c: d107 bne.n 8001c7e { /* Check the PLL ready flag */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) - 8001d56: 4b41 ldr r3, [pc, #260] ; (8001e5c ) - 8001d58: 681b ldr r3, [r3, #0] - 8001d5a: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 8001d5e: 2b00 cmp r3, #0 - 8001d60: d109 bne.n 8001d76 + 8001c6e: 4b41 ldr r3, [pc, #260] ; (8001d74 ) + 8001c70: 681b ldr r3, [r3, #0] + 8001c72: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8001c76: 2b00 cmp r3, #0 + 8001c78: d109 bne.n 8001c8e { return HAL_ERROR; - 8001d62: 2301 movs r3, #1 - 8001d64: e073 b.n 8001e4e + 8001c7a: 2301 movs r3, #1 + 8001c7c: e073 b.n 8001d66 } /* HSI is selected as System Clock Source */ else { /* Check the HSI ready flag */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) - 8001d66: 4b3d ldr r3, [pc, #244] ; (8001e5c ) - 8001d68: 681b ldr r3, [r3, #0] - 8001d6a: f003 0302 and.w r3, r3, #2 - 8001d6e: 2b00 cmp r3, #0 - 8001d70: d101 bne.n 8001d76 + 8001c7e: 4b3d ldr r3, [pc, #244] ; (8001d74 ) + 8001c80: 681b ldr r3, [r3, #0] + 8001c82: f003 0302 and.w r3, r3, #2 + 8001c86: 2b00 cmp r3, #0 + 8001c88: d101 bne.n 8001c8e { return HAL_ERROR; - 8001d72: 2301 movs r3, #1 - 8001d74: e06b b.n 8001e4e + 8001c8a: 2301 movs r3, #1 + 8001c8c: e06b b.n 8001d66 } } __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource); - 8001d76: 4b39 ldr r3, [pc, #228] ; (8001e5c ) - 8001d78: 685b ldr r3, [r3, #4] - 8001d7a: f023 0203 bic.w r2, r3, #3 - 8001d7e: 687b ldr r3, [r7, #4] - 8001d80: 685b ldr r3, [r3, #4] - 8001d82: 4936 ldr r1, [pc, #216] ; (8001e5c ) - 8001d84: 4313 orrs r3, r2 - 8001d86: 604b str r3, [r1, #4] + 8001c8e: 4b39 ldr r3, [pc, #228] ; (8001d74 ) + 8001c90: 685b ldr r3, [r3, #4] + 8001c92: f023 0203 bic.w r2, r3, #3 + 8001c96: 687b ldr r3, [r7, #4] + 8001c98: 685b ldr r3, [r3, #4] + 8001c9a: 4936 ldr r1, [pc, #216] ; (8001d74 ) + 8001c9c: 4313 orrs r3, r2 + 8001c9e: 604b str r3, [r1, #4] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001d88: f7ff fa16 bl 80011b8 - 8001d8c: 60f8 str r0, [r7, #12] + 8001ca0: f7ff fa2e bl 8001100 + 8001ca4: 60f8 str r0, [r7, #12] while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) - 8001d8e: e00a b.n 8001da6 + 8001ca6: e00a b.n 8001cbe { if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) - 8001d90: f7ff fa12 bl 80011b8 - 8001d94: 4602 mov r2, r0 - 8001d96: 68fb ldr r3, [r7, #12] - 8001d98: 1ad3 subs r3, r2, r3 - 8001d9a: f241 3288 movw r2, #5000 ; 0x1388 - 8001d9e: 4293 cmp r3, r2 - 8001da0: d901 bls.n 8001da6 + 8001ca8: f7ff fa2a bl 8001100 + 8001cac: 4602 mov r2, r0 + 8001cae: 68fb ldr r3, [r7, #12] + 8001cb0: 1ad3 subs r3, r2, r3 + 8001cb2: f241 3288 movw r2, #5000 ; 0x1388 + 8001cb6: 4293 cmp r3, r2 + 8001cb8: d901 bls.n 8001cbe { return HAL_TIMEOUT; - 8001da2: 2303 movs r3, #3 - 8001da4: e053 b.n 8001e4e + 8001cba: 2303 movs r3, #3 + 8001cbc: e053 b.n 8001d66 while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) - 8001da6: 4b2d ldr r3, [pc, #180] ; (8001e5c ) - 8001da8: 685b ldr r3, [r3, #4] - 8001daa: f003 020c and.w r2, r3, #12 - 8001dae: 687b ldr r3, [r7, #4] - 8001db0: 685b ldr r3, [r3, #4] - 8001db2: 009b lsls r3, r3, #2 - 8001db4: 429a cmp r2, r3 - 8001db6: d1eb bne.n 8001d90 + 8001cbe: 4b2d ldr r3, [pc, #180] ; (8001d74 ) + 8001cc0: 685b ldr r3, [r3, #4] + 8001cc2: f003 020c and.w r2, r3, #12 + 8001cc6: 687b ldr r3, [r7, #4] + 8001cc8: 685b ldr r3, [r3, #4] + 8001cca: 009b lsls r3, r3, #2 + 8001ccc: 429a cmp r2, r3 + 8001cce: d1eb bne.n 8001ca8 } } #if defined(FLASH_ACR_LATENCY) /* Decreasing the number of wait states because of lower CPU frequency */ if (FLatency < __HAL_FLASH_GET_LATENCY()) - 8001db8: 4b27 ldr r3, [pc, #156] ; (8001e58 ) - 8001dba: 681b ldr r3, [r3, #0] - 8001dbc: f003 0307 and.w r3, r3, #7 - 8001dc0: 683a ldr r2, [r7, #0] - 8001dc2: 429a cmp r2, r3 - 8001dc4: d210 bcs.n 8001de8 + 8001cd0: 4b27 ldr r3, [pc, #156] ; (8001d70 ) + 8001cd2: 681b ldr r3, [r3, #0] + 8001cd4: f003 0307 and.w r3, r3, #7 + 8001cd8: 683a ldr r2, [r7, #0] + 8001cda: 429a cmp r2, r3 + 8001cdc: d210 bcs.n 8001d00 { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); - 8001dc6: 4b24 ldr r3, [pc, #144] ; (8001e58 ) - 8001dc8: 681b ldr r3, [r3, #0] - 8001dca: f023 0207 bic.w r2, r3, #7 - 8001dce: 4922 ldr r1, [pc, #136] ; (8001e58 ) - 8001dd0: 683b ldr r3, [r7, #0] - 8001dd2: 4313 orrs r3, r2 - 8001dd4: 600b str r3, [r1, #0] + 8001cde: 4b24 ldr r3, [pc, #144] ; (8001d70 ) + 8001ce0: 681b ldr r3, [r3, #0] + 8001ce2: f023 0207 bic.w r2, r3, #7 + 8001ce6: 4922 ldr r1, [pc, #136] ; (8001d70 ) + 8001ce8: 683b ldr r3, [r7, #0] + 8001cea: 4313 orrs r3, r2 + 8001cec: 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) - 8001dd6: 4b20 ldr r3, [pc, #128] ; (8001e58 ) - 8001dd8: 681b ldr r3, [r3, #0] - 8001dda: f003 0307 and.w r3, r3, #7 - 8001dde: 683a ldr r2, [r7, #0] - 8001de0: 429a cmp r2, r3 - 8001de2: d001 beq.n 8001de8 + 8001cee: 4b20 ldr r3, [pc, #128] ; (8001d70 ) + 8001cf0: 681b ldr r3, [r3, #0] + 8001cf2: f003 0307 and.w r3, r3, #7 + 8001cf6: 683a ldr r2, [r7, #0] + 8001cf8: 429a cmp r2, r3 + 8001cfa: d001 beq.n 8001d00 { return HAL_ERROR; - 8001de4: 2301 movs r3, #1 - 8001de6: e032 b.n 8001e4e + 8001cfc: 2301 movs r3, #1 + 8001cfe: e032 b.n 8001d66 } } #endif /* FLASH_ACR_LATENCY */ /*-------------------------- PCLK1 Configuration ---------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) - 8001de8: 687b ldr r3, [r7, #4] - 8001dea: 681b ldr r3, [r3, #0] - 8001dec: f003 0304 and.w r3, r3, #4 - 8001df0: 2b00 cmp r3, #0 - 8001df2: d008 beq.n 8001e06 + 8001d00: 687b ldr r3, [r7, #4] + 8001d02: 681b ldr r3, [r3, #0] + 8001d04: f003 0304 and.w r3, r3, #4 + 8001d08: 2b00 cmp r3, #0 + 8001d0a: d008 beq.n 8001d1e { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); - 8001df4: 4b19 ldr r3, [pc, #100] ; (8001e5c ) - 8001df6: 685b ldr r3, [r3, #4] - 8001df8: f423 62e0 bic.w r2, r3, #1792 ; 0x700 - 8001dfc: 687b ldr r3, [r7, #4] - 8001dfe: 68db ldr r3, [r3, #12] - 8001e00: 4916 ldr r1, [pc, #88] ; (8001e5c ) - 8001e02: 4313 orrs r3, r2 - 8001e04: 604b str r3, [r1, #4] + 8001d0c: 4b19 ldr r3, [pc, #100] ; (8001d74 ) + 8001d0e: 685b ldr r3, [r3, #4] + 8001d10: f423 62e0 bic.w r2, r3, #1792 ; 0x700 + 8001d14: 687b ldr r3, [r7, #4] + 8001d16: 68db ldr r3, [r3, #12] + 8001d18: 4916 ldr r1, [pc, #88] ; (8001d74 ) + 8001d1a: 4313 orrs r3, r2 + 8001d1c: 604b str r3, [r1, #4] } /*-------------------------- PCLK2 Configuration ---------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) - 8001e06: 687b ldr r3, [r7, #4] - 8001e08: 681b ldr r3, [r3, #0] - 8001e0a: f003 0308 and.w r3, r3, #8 - 8001e0e: 2b00 cmp r3, #0 - 8001e10: d009 beq.n 8001e26 + 8001d1e: 687b ldr r3, [r7, #4] + 8001d20: 681b ldr r3, [r3, #0] + 8001d22: f003 0308 and.w r3, r3, #8 + 8001d26: 2b00 cmp r3, #0 + 8001d28: d009 beq.n 8001d3e { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3)); - 8001e12: 4b12 ldr r3, [pc, #72] ; (8001e5c ) - 8001e14: 685b ldr r3, [r3, #4] - 8001e16: f423 5260 bic.w r2, r3, #14336 ; 0x3800 - 8001e1a: 687b ldr r3, [r7, #4] - 8001e1c: 691b ldr r3, [r3, #16] - 8001e1e: 00db lsls r3, r3, #3 - 8001e20: 490e ldr r1, [pc, #56] ; (8001e5c ) - 8001e22: 4313 orrs r3, r2 - 8001e24: 604b str r3, [r1, #4] + 8001d2a: 4b12 ldr r3, [pc, #72] ; (8001d74 ) + 8001d2c: 685b ldr r3, [r3, #4] + 8001d2e: f423 5260 bic.w r2, r3, #14336 ; 0x3800 + 8001d32: 687b ldr r3, [r7, #4] + 8001d34: 691b ldr r3, [r3, #16] + 8001d36: 00db lsls r3, r3, #3 + 8001d38: 490e ldr r1, [pc, #56] ; (8001d74 ) + 8001d3a: 4313 orrs r3, r2 + 8001d3c: 604b str r3, [r1, #4] } /* Update the SystemCoreClock global variable */ SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos]; - 8001e26: f000 f821 bl 8001e6c - 8001e2a: 4602 mov r2, r0 - 8001e2c: 4b0b ldr r3, [pc, #44] ; (8001e5c ) - 8001e2e: 685b ldr r3, [r3, #4] - 8001e30: 091b lsrs r3, r3, #4 - 8001e32: f003 030f and.w r3, r3, #15 - 8001e36: 490a ldr r1, [pc, #40] ; (8001e60 ) - 8001e38: 5ccb ldrb r3, [r1, r3] - 8001e3a: fa22 f303 lsr.w r3, r2, r3 - 8001e3e: 4a09 ldr r2, [pc, #36] ; (8001e64 ) - 8001e40: 6013 str r3, [r2, #0] + 8001d3e: f000 f821 bl 8001d84 + 8001d42: 4602 mov r2, r0 + 8001d44: 4b0b ldr r3, [pc, #44] ; (8001d74 ) + 8001d46: 685b ldr r3, [r3, #4] + 8001d48: 091b lsrs r3, r3, #4 + 8001d4a: f003 030f and.w r3, r3, #15 + 8001d4e: 490a ldr r1, [pc, #40] ; (8001d78 ) + 8001d50: 5ccb ldrb r3, [r1, r3] + 8001d52: fa22 f303 lsr.w r3, r2, r3 + 8001d56: 4a09 ldr r2, [pc, #36] ; (8001d7c ) + 8001d58: 6013 str r3, [r2, #0] /* Configure the source of time base considering new system clocks settings*/ HAL_InitTick(uwTickPrio); - 8001e42: 4b09 ldr r3, [pc, #36] ; (8001e68 ) - 8001e44: 681b ldr r3, [r3, #0] - 8001e46: 4618 mov r0, r3 - 8001e48: f7ff f974 bl 8001134 + 8001d5a: 4b09 ldr r3, [pc, #36] ; (8001d80 ) + 8001d5c: 681b ldr r3, [r3, #0] + 8001d5e: 4618 mov r0, r3 + 8001d60: f7ff f98c bl 800107c return HAL_OK; - 8001e4c: 2300 movs r3, #0 + 8001d64: 2300 movs r3, #0 } - 8001e4e: 4618 mov r0, r3 - 8001e50: 3710 adds r7, #16 - 8001e52: 46bd mov sp, r7 - 8001e54: bd80 pop {r7, pc} - 8001e56: bf00 nop - 8001e58: 40022000 .word 0x40022000 - 8001e5c: 40021000 .word 0x40021000 - 8001e60: 0806ca08 .word 0x0806ca08 - 8001e64: 20000030 .word 0x20000030 - 8001e68: 20000034 .word 0x20000034 + 8001d66: 4618 mov r0, r3 + 8001d68: 3710 adds r7, #16 + 8001d6a: 46bd mov sp, r7 + 8001d6c: bd80 pop {r7, pc} + 8001d6e: bf00 nop + 8001d70: 40022000 .word 0x40022000 + 8001d74: 40021000 .word 0x40021000 + 8001d78: 0806c960 .word 0x0806c960 + 8001d7c: 20000030 .word 0x20000030 + 8001d80: 20000034 .word 0x20000034 -08001e6c : +08001d84 : * right SYSCLK value. Otherwise, any configuration based on this function will be incorrect. * * @retval SYSCLK frequency */ uint32_t HAL_RCC_GetSysClockFreq(void) { - 8001e6c: b480 push {r7} - 8001e6e: b087 sub sp, #28 - 8001e70: af00 add r7, sp, #0 + 8001d84: b480 push {r7} + 8001d86: b087 sub sp, #28 + 8001d88: af00 add r7, sp, #0 #else static const uint8_t aPredivFactorTable[2U] = {1, 2}; #endif /*RCC_CFGR2_PREDIV1*/ #endif uint32_t tmpreg = 0U, prediv = 0U, pllclk = 0U, pllmul = 0U; - 8001e72: 2300 movs r3, #0 - 8001e74: 60fb str r3, [r7, #12] - 8001e76: 2300 movs r3, #0 - 8001e78: 60bb str r3, [r7, #8] - 8001e7a: 2300 movs r3, #0 - 8001e7c: 617b str r3, [r7, #20] - 8001e7e: 2300 movs r3, #0 - 8001e80: 607b str r3, [r7, #4] + 8001d8a: 2300 movs r3, #0 + 8001d8c: 60fb str r3, [r7, #12] + 8001d8e: 2300 movs r3, #0 + 8001d90: 60bb str r3, [r7, #8] + 8001d92: 2300 movs r3, #0 + 8001d94: 617b str r3, [r7, #20] + 8001d96: 2300 movs r3, #0 + 8001d98: 607b str r3, [r7, #4] uint32_t sysclockfreq = 0U; - 8001e82: 2300 movs r3, #0 - 8001e84: 613b str r3, [r7, #16] + 8001d9a: 2300 movs r3, #0 + 8001d9c: 613b str r3, [r7, #16] #if defined(RCC_CFGR2_PREDIV1SRC) uint32_t prediv2 = 0U, pll2mul = 0U; #endif /*RCC_CFGR2_PREDIV1SRC*/ tmpreg = RCC->CFGR; - 8001e86: 4b1e ldr r3, [pc, #120] ; (8001f00 ) - 8001e88: 685b ldr r3, [r3, #4] - 8001e8a: 60fb str r3, [r7, #12] + 8001d9e: 4b1e ldr r3, [pc, #120] ; (8001e18 ) + 8001da0: 685b ldr r3, [r3, #4] + 8001da2: 60fb str r3, [r7, #12] /* Get SYSCLK source -------------------------------------------------------*/ switch (tmpreg & RCC_CFGR_SWS) - 8001e8c: 68fb ldr r3, [r7, #12] - 8001e8e: f003 030c and.w r3, r3, #12 - 8001e92: 2b04 cmp r3, #4 - 8001e94: d002 beq.n 8001e9c - 8001e96: 2b08 cmp r3, #8 - 8001e98: d003 beq.n 8001ea2 - 8001e9a: e027 b.n 8001eec + 8001da4: 68fb ldr r3, [r7, #12] + 8001da6: f003 030c and.w r3, r3, #12 + 8001daa: 2b04 cmp r3, #4 + 8001dac: d002 beq.n 8001db4 + 8001dae: 2b08 cmp r3, #8 + 8001db0: d003 beq.n 8001dba + 8001db2: e027 b.n 8001e04 { case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock */ { sysclockfreq = HSE_VALUE; - 8001e9c: 4b19 ldr r3, [pc, #100] ; (8001f04 ) - 8001e9e: 613b str r3, [r7, #16] + 8001db4: 4b19 ldr r3, [pc, #100] ; (8001e1c ) + 8001db6: 613b str r3, [r7, #16] break; - 8001ea0: e027 b.n 8001ef2 + 8001db8: e027 b.n 8001e0a } case RCC_SYSCLKSOURCE_STATUS_PLLCLK: /* PLL used as system clock */ { pllmul = aPLLMULFactorTable[(uint32_t)(tmpreg & RCC_CFGR_PLLMULL) >> RCC_CFGR_PLLMULL_Pos]; - 8001ea2: 68fb ldr r3, [r7, #12] - 8001ea4: 0c9b lsrs r3, r3, #18 - 8001ea6: f003 030f and.w r3, r3, #15 - 8001eaa: 4a17 ldr r2, [pc, #92] ; (8001f08 ) - 8001eac: 5cd3 ldrb r3, [r2, r3] - 8001eae: 607b str r3, [r7, #4] + 8001dba: 68fb ldr r3, [r7, #12] + 8001dbc: 0c9b lsrs r3, r3, #18 + 8001dbe: f003 030f and.w r3, r3, #15 + 8001dc2: 4a17 ldr r2, [pc, #92] ; (8001e20 ) + 8001dc4: 5cd3 ldrb r3, [r2, r3] + 8001dc6: 607b str r3, [r7, #4] if ((tmpreg & RCC_CFGR_PLLSRC) != RCC_PLLSOURCE_HSI_DIV2) - 8001eb0: 68fb ldr r3, [r7, #12] - 8001eb2: f403 3380 and.w r3, r3, #65536 ; 0x10000 - 8001eb6: 2b00 cmp r3, #0 - 8001eb8: d010 beq.n 8001edc + 8001dc8: 68fb ldr r3, [r7, #12] + 8001dca: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 8001dce: 2b00 cmp r3, #0 + 8001dd0: d010 beq.n 8001df4 { #if defined(RCC_CFGR2_PREDIV1) prediv = aPredivFactorTable[(uint32_t)(RCC->CFGR2 & RCC_CFGR2_PREDIV1) >> RCC_CFGR2_PREDIV1_Pos]; #else prediv = aPredivFactorTable[(uint32_t)(RCC->CFGR & RCC_CFGR_PLLXTPRE) >> RCC_CFGR_PLLXTPRE_Pos]; - 8001eba: 4b11 ldr r3, [pc, #68] ; (8001f00 ) - 8001ebc: 685b ldr r3, [r3, #4] - 8001ebe: 0c5b lsrs r3, r3, #17 - 8001ec0: f003 0301 and.w r3, r3, #1 - 8001ec4: 4a11 ldr r2, [pc, #68] ; (8001f0c ) - 8001ec6: 5cd3 ldrb r3, [r2, r3] - 8001ec8: 60bb str r3, [r7, #8] + 8001dd2: 4b11 ldr r3, [pc, #68] ; (8001e18 ) + 8001dd4: 685b ldr r3, [r3, #4] + 8001dd6: 0c5b lsrs r3, r3, #17 + 8001dd8: f003 0301 and.w r3, r3, #1 + 8001ddc: 4a11 ldr r2, [pc, #68] ; (8001e24 ) + 8001dde: 5cd3 ldrb r3, [r2, r3] + 8001de0: 60bb str r3, [r7, #8] { pllclk = pllclk / 2; } #else /* HSE used as PLL clock source : PLLCLK = HSE/PREDIV1 * PLLMUL */ pllclk = (uint32_t)((HSE_VALUE * pllmul) / prediv); - 8001eca: 687b ldr r3, [r7, #4] - 8001ecc: 4a0d ldr r2, [pc, #52] ; (8001f04 ) - 8001ece: fb03 f202 mul.w r2, r3, r2 - 8001ed2: 68bb ldr r3, [r7, #8] - 8001ed4: fbb2 f3f3 udiv r3, r2, r3 - 8001ed8: 617b str r3, [r7, #20] - 8001eda: e004 b.n 8001ee6 + 8001de2: 687b ldr r3, [r7, #4] + 8001de4: 4a0d ldr r2, [pc, #52] ; (8001e1c ) + 8001de6: fb03 f202 mul.w r2, r3, r2 + 8001dea: 68bb ldr r3, [r7, #8] + 8001dec: fbb2 f3f3 udiv r3, r2, r3 + 8001df0: 617b str r3, [r7, #20] + 8001df2: e004 b.n 8001dfe #endif /*RCC_CFGR2_PREDIV1SRC*/ } else { /* HSI used as PLL clock source : PLLCLK = HSI/2 * PLLMUL */ pllclk = (uint32_t)((HSI_VALUE >> 1) * pllmul); - 8001edc: 687b ldr r3, [r7, #4] - 8001ede: 4a0c ldr r2, [pc, #48] ; (8001f10 ) - 8001ee0: fb02 f303 mul.w r3, r2, r3 - 8001ee4: 617b str r3, [r7, #20] + 8001df4: 687b ldr r3, [r7, #4] + 8001df6: 4a0c ldr r2, [pc, #48] ; (8001e28 ) + 8001df8: fb02 f303 mul.w r3, r2, r3 + 8001dfc: 617b str r3, [r7, #20] } sysclockfreq = pllclk; - 8001ee6: 697b ldr r3, [r7, #20] - 8001ee8: 613b str r3, [r7, #16] + 8001dfe: 697b ldr r3, [r7, #20] + 8001e00: 613b str r3, [r7, #16] break; - 8001eea: e002 b.n 8001ef2 + 8001e02: e002 b.n 8001e0a } case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ default: /* HSI used as system clock */ { sysclockfreq = HSI_VALUE; - 8001eec: 4b05 ldr r3, [pc, #20] ; (8001f04 ) - 8001eee: 613b str r3, [r7, #16] + 8001e04: 4b05 ldr r3, [pc, #20] ; (8001e1c ) + 8001e06: 613b str r3, [r7, #16] break; - 8001ef0: bf00 nop + 8001e08: bf00 nop } } return sysclockfreq; - 8001ef2: 693b ldr r3, [r7, #16] + 8001e0a: 693b ldr r3, [r7, #16] } - 8001ef4: 4618 mov r0, r3 - 8001ef6: 371c adds r7, #28 - 8001ef8: 46bd mov sp, r7 - 8001efa: bc80 pop {r7} - 8001efc: 4770 bx lr - 8001efe: bf00 nop - 8001f00: 40021000 .word 0x40021000 - 8001f04: 007a1200 .word 0x007a1200 - 8001f08: 0806ca20 .word 0x0806ca20 - 8001f0c: 0806ca30 .word 0x0806ca30 - 8001f10: 003d0900 .word 0x003d0900 + 8001e0c: 4618 mov r0, r3 + 8001e0e: 371c adds r7, #28 + 8001e10: 46bd mov sp, r7 + 8001e12: bc80 pop {r7} + 8001e14: 4770 bx lr + 8001e16: bf00 nop + 8001e18: 40021000 .word 0x40021000 + 8001e1c: 007a1200 .word 0x007a1200 + 8001e20: 0806c978 .word 0x0806c978 + 8001e24: 0806c988 .word 0x0806c988 + 8001e28: 003d0900 .word 0x003d0900 -08001f14 : +08001e2c : * @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency * and updated within this function * @retval HCLK frequency */ uint32_t HAL_RCC_GetHCLKFreq(void) { - 8001f14: b480 push {r7} - 8001f16: af00 add r7, sp, #0 + 8001e2c: b480 push {r7} + 8001e2e: af00 add r7, sp, #0 return SystemCoreClock; - 8001f18: 4b02 ldr r3, [pc, #8] ; (8001f24 ) - 8001f1a: 681b ldr r3, [r3, #0] + 8001e30: 4b02 ldr r3, [pc, #8] ; (8001e3c ) + 8001e32: 681b ldr r3, [r3, #0] } - 8001f1c: 4618 mov r0, r3 - 8001f1e: 46bd mov sp, r7 - 8001f20: bc80 pop {r7} - 8001f22: 4770 bx lr - 8001f24: 20000030 .word 0x20000030 + 8001e34: 4618 mov r0, r3 + 8001e36: 46bd mov sp, r7 + 8001e38: bc80 pop {r7} + 8001e3a: 4770 bx lr + 8001e3c: 20000030 .word 0x20000030 -08001f28 : +08001e40 : * @note Each time PCLK1 changes, this function must be called to update the * right PCLK1 value. Otherwise, any configuration based on this function will be incorrect. * @retval PCLK1 frequency */ uint32_t HAL_RCC_GetPCLK1Freq(void) { - 8001f28: b580 push {r7, lr} - 8001f2a: af00 add r7, sp, #0 + 8001e40: b580 push {r7, lr} + 8001e42: af00 add r7, sp, #0 /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/ return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_Pos]); - 8001f2c: f7ff fff2 bl 8001f14 - 8001f30: 4602 mov r2, r0 - 8001f32: 4b05 ldr r3, [pc, #20] ; (8001f48 ) - 8001f34: 685b ldr r3, [r3, #4] - 8001f36: 0a1b lsrs r3, r3, #8 - 8001f38: f003 0307 and.w r3, r3, #7 - 8001f3c: 4903 ldr r1, [pc, #12] ; (8001f4c ) - 8001f3e: 5ccb ldrb r3, [r1, r3] - 8001f40: fa22 f303 lsr.w r3, r2, r3 + 8001e44: f7ff fff2 bl 8001e2c + 8001e48: 4602 mov r2, r0 + 8001e4a: 4b05 ldr r3, [pc, #20] ; (8001e60 ) + 8001e4c: 685b ldr r3, [r3, #4] + 8001e4e: 0a1b lsrs r3, r3, #8 + 8001e50: f003 0307 and.w r3, r3, #7 + 8001e54: 4903 ldr r1, [pc, #12] ; (8001e64 ) + 8001e56: 5ccb ldrb r3, [r1, r3] + 8001e58: fa22 f303 lsr.w r3, r2, r3 } - 8001f44: 4618 mov r0, r3 - 8001f46: bd80 pop {r7, pc} - 8001f48: 40021000 .word 0x40021000 - 8001f4c: 0806ca18 .word 0x0806ca18 + 8001e5c: 4618 mov r0, r3 + 8001e5e: bd80 pop {r7, pc} + 8001e60: 40021000 .word 0x40021000 + 8001e64: 0806c970 .word 0x0806c970 -08001f50 : +08001e68 : * @note Each time PCLK2 changes, this function must be called to update the * right PCLK2 value. Otherwise, any configuration based on this function will be incorrect. * @retval PCLK2 frequency */ uint32_t HAL_RCC_GetPCLK2Freq(void) { - 8001f50: b580 push {r7, lr} - 8001f52: af00 add r7, sp, #0 + 8001e68: b580 push {r7, lr} + 8001e6a: af00 add r7, sp, #0 /* Get HCLK source and Compute PCLK2 frequency ---------------------------*/ return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE2) >> RCC_CFGR_PPRE2_Pos]); - 8001f54: f7ff ffde bl 8001f14 - 8001f58: 4602 mov r2, r0 - 8001f5a: 4b05 ldr r3, [pc, #20] ; (8001f70 ) - 8001f5c: 685b ldr r3, [r3, #4] - 8001f5e: 0adb lsrs r3, r3, #11 - 8001f60: f003 0307 and.w r3, r3, #7 - 8001f64: 4903 ldr r1, [pc, #12] ; (8001f74 ) - 8001f66: 5ccb ldrb r3, [r1, r3] - 8001f68: fa22 f303 lsr.w r3, r2, r3 + 8001e6c: f7ff ffde bl 8001e2c + 8001e70: 4602 mov r2, r0 + 8001e72: 4b05 ldr r3, [pc, #20] ; (8001e88 ) + 8001e74: 685b ldr r3, [r3, #4] + 8001e76: 0adb lsrs r3, r3, #11 + 8001e78: f003 0307 and.w r3, r3, #7 + 8001e7c: 4903 ldr r1, [pc, #12] ; (8001e8c ) + 8001e7e: 5ccb ldrb r3, [r1, r3] + 8001e80: fa22 f303 lsr.w r3, r2, r3 } - 8001f6c: 4618 mov r0, r3 - 8001f6e: bd80 pop {r7, pc} - 8001f70: 40021000 .word 0x40021000 - 8001f74: 0806ca18 .word 0x0806ca18 + 8001e84: 4618 mov r0, r3 + 8001e86: bd80 pop {r7, pc} + 8001e88: 40021000 .word 0x40021000 + 8001e8c: 0806c970 .word 0x0806c970 -08001f78 : +08001e90 : * @brief This function provides delay (in milliseconds) based on CPU cycles method. * @param mdelay: specifies the delay time length, in milliseconds. * @retval None */ static void RCC_Delay(uint32_t mdelay) { - 8001f78: b480 push {r7} - 8001f7a: b085 sub sp, #20 - 8001f7c: af00 add r7, sp, #0 - 8001f7e: 6078 str r0, [r7, #4] + 8001e90: b480 push {r7} + 8001e92: b085 sub sp, #20 + 8001e94: af00 add r7, sp, #0 + 8001e96: 6078 str r0, [r7, #4] __IO uint32_t Delay = mdelay * (SystemCoreClock / 8U / 1000U); - 8001f80: 4b0a ldr r3, [pc, #40] ; (8001fac ) - 8001f82: 681b ldr r3, [r3, #0] - 8001f84: 4a0a ldr r2, [pc, #40] ; (8001fb0 ) - 8001f86: fba2 2303 umull r2, r3, r2, r3 - 8001f8a: 0a5b lsrs r3, r3, #9 - 8001f8c: 687a ldr r2, [r7, #4] - 8001f8e: fb02 f303 mul.w r3, r2, r3 - 8001f92: 60fb str r3, [r7, #12] + 8001e98: 4b0a ldr r3, [pc, #40] ; (8001ec4 ) + 8001e9a: 681b ldr r3, [r3, #0] + 8001e9c: 4a0a ldr r2, [pc, #40] ; (8001ec8 ) + 8001e9e: fba2 2303 umull r2, r3, r2, r3 + 8001ea2: 0a5b lsrs r3, r3, #9 + 8001ea4: 687a ldr r2, [r7, #4] + 8001ea6: fb02 f303 mul.w r3, r2, r3 + 8001eaa: 60fb str r3, [r7, #12] do { __NOP(); - 8001f94: bf00 nop + 8001eac: bf00 nop } while (Delay --); - 8001f96: 68fb ldr r3, [r7, #12] - 8001f98: 1e5a subs r2, r3, #1 - 8001f9a: 60fa str r2, [r7, #12] - 8001f9c: 2b00 cmp r3, #0 - 8001f9e: d1f9 bne.n 8001f94 + 8001eae: 68fb ldr r3, [r7, #12] + 8001eb0: 1e5a subs r2, r3, #1 + 8001eb2: 60fa str r2, [r7, #12] + 8001eb4: 2b00 cmp r3, #0 + 8001eb6: d1f9 bne.n 8001eac } - 8001fa0: bf00 nop - 8001fa2: bf00 nop - 8001fa4: 3714 adds r7, #20 - 8001fa6: 46bd mov sp, r7 - 8001fa8: bc80 pop {r7} - 8001faa: 4770 bx lr - 8001fac: 20000030 .word 0x20000030 - 8001fb0: 10624dd3 .word 0x10624dd3 + 8001eb8: bf00 nop + 8001eba: bf00 nop + 8001ebc: 3714 adds r7, #20 + 8001ebe: 46bd mov sp, r7 + 8001ec0: bc80 pop {r7} + 8001ec2: 4770 bx lr + 8001ec4: 20000030 .word 0x20000030 + 8001ec8: 10624dd3 .word 0x10624dd3 -08001fb4 : +08001ecc : * @param ExtTiming Pointer to SRAM extended mode timing structure * @retval HAL status */ HAL_StatusTypeDef HAL_SRAM_Init(SRAM_HandleTypeDef *hsram, FSMC_NORSRAM_TimingTypeDef *Timing, FSMC_NORSRAM_TimingTypeDef *ExtTiming) { - 8001fb4: b580 push {r7, lr} - 8001fb6: b084 sub sp, #16 - 8001fb8: af00 add r7, sp, #0 - 8001fba: 60f8 str r0, [r7, #12] - 8001fbc: 60b9 str r1, [r7, #8] - 8001fbe: 607a str r2, [r7, #4] + 8001ecc: b580 push {r7, lr} + 8001ece: b084 sub sp, #16 + 8001ed0: af00 add r7, sp, #0 + 8001ed2: 60f8 str r0, [r7, #12] + 8001ed4: 60b9 str r1, [r7, #8] + 8001ed6: 607a str r2, [r7, #4] /* Check the SRAM handle parameter */ if ((hsram == NULL) || (hsram->Init.BurstAccessMode == FSMC_BURST_ACCESS_MODE_ENABLE)) - 8001fc0: 68fb ldr r3, [r7, #12] - 8001fc2: 2b00 cmp r3, #0 - 8001fc4: d004 beq.n 8001fd0 - 8001fc6: 68fb ldr r3, [r7, #12] - 8001fc8: 699b ldr r3, [r3, #24] - 8001fca: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 8001fce: d101 bne.n 8001fd4 + 8001ed8: 68fb ldr r3, [r7, #12] + 8001eda: 2b00 cmp r3, #0 + 8001edc: d004 beq.n 8001ee8 + 8001ede: 68fb ldr r3, [r7, #12] + 8001ee0: 699b ldr r3, [r3, #24] + 8001ee2: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 8001ee6: d101 bne.n 8001eec { return HAL_ERROR; - 8001fd0: 2301 movs r3, #1 - 8001fd2: e038 b.n 8002046 + 8001ee8: 2301 movs r3, #1 + 8001eea: e038 b.n 8001f5e } if (hsram->State == HAL_SRAM_STATE_RESET) - 8001fd4: 68fb ldr r3, [r7, #12] - 8001fd6: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 8001fda: b2db uxtb r3, r3 - 8001fdc: 2b00 cmp r3, #0 - 8001fde: d106 bne.n 8001fee + 8001eec: 68fb ldr r3, [r7, #12] + 8001eee: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 + 8001ef2: b2db uxtb r3, r3 + 8001ef4: 2b00 cmp r3, #0 + 8001ef6: d106 bne.n 8001f06 { /* Allocate lock resource and initialize it */ hsram->Lock = HAL_UNLOCKED; - 8001fe0: 68fb ldr r3, [r7, #12] - 8001fe2: 2200 movs r2, #0 - 8001fe4: f883 2040 strb.w r2, [r3, #64] ; 0x40 + 8001ef8: 68fb ldr r3, [r7, #12] + 8001efa: 2200 movs r2, #0 + 8001efc: f883 2040 strb.w r2, [r3, #64] ; 0x40 /* Init the low level hardware */ hsram->MspInitCallback(hsram); #else /* Initialize the low level hardware (MSP) */ HAL_SRAM_MspInit(hsram); - 8001fe8: 68f8 ldr r0, [r7, #12] - 8001fea: f7ff f82d bl 8001048 + 8001f00: 68f8 ldr r0, [r7, #12] + 8001f02: f7ff f845 bl 8000f90 #endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */ } /* Initialize SRAM control Interface */ (void)FSMC_NORSRAM_Init(hsram->Instance, &(hsram->Init)); - 8001fee: 68fb ldr r3, [r7, #12] - 8001ff0: 681a ldr r2, [r3, #0] - 8001ff2: 68fb ldr r3, [r7, #12] - 8001ff4: 3308 adds r3, #8 - 8001ff6: 4619 mov r1, r3 - 8001ff8: 4610 mov r0, r2 - 8001ffa: f000 f907 bl 800220c + 8001f06: 68fb ldr r3, [r7, #12] + 8001f08: 681a ldr r2, [r3, #0] + 8001f0a: 68fb ldr r3, [r7, #12] + 8001f0c: 3308 adds r3, #8 + 8001f0e: 4619 mov r1, r3 + 8001f10: 4610 mov r0, r2 + 8001f12: f000 f907 bl 8002124 /* Initialize SRAM timing Interface */ (void)FSMC_NORSRAM_Timing_Init(hsram->Instance, Timing, hsram->Init.NSBank); - 8001ffe: 68fb ldr r3, [r7, #12] - 8002000: 6818 ldr r0, [r3, #0] - 8002002: 68fb ldr r3, [r7, #12] - 8002004: 689b ldr r3, [r3, #8] - 8002006: 461a mov r2, r3 - 8002008: 68b9 ldr r1, [r7, #8] - 800200a: f000 f969 bl 80022e0 + 8001f16: 68fb ldr r3, [r7, #12] + 8001f18: 6818 ldr r0, [r3, #0] + 8001f1a: 68fb ldr r3, [r7, #12] + 8001f1c: 689b ldr r3, [r3, #8] + 8001f1e: 461a mov r2, r3 + 8001f20: 68b9 ldr r1, [r7, #8] + 8001f22: f000 f969 bl 80021f8 /* Initialize SRAM extended mode timing Interface */ (void)FSMC_NORSRAM_Extended_Timing_Init(hsram->Extended, ExtTiming, hsram->Init.NSBank, - 800200e: 68fb ldr r3, [r7, #12] - 8002010: 6858 ldr r0, [r3, #4] - 8002012: 68fb ldr r3, [r7, #12] - 8002014: 689a ldr r2, [r3, #8] - 8002016: 68fb ldr r3, [r7, #12] - 8002018: 6b1b ldr r3, [r3, #48] ; 0x30 - 800201a: 6879 ldr r1, [r7, #4] - 800201c: f000 f994 bl 8002348 + 8001f26: 68fb ldr r3, [r7, #12] + 8001f28: 6858 ldr r0, [r3, #4] + 8001f2a: 68fb ldr r3, [r7, #12] + 8001f2c: 689a ldr r2, [r3, #8] + 8001f2e: 68fb ldr r3, [r7, #12] + 8001f30: 6b1b ldr r3, [r3, #48] ; 0x30 + 8001f32: 6879 ldr r1, [r7, #4] + 8001f34: f000 f994 bl 8002260 hsram->Init.ExtendedMode); /* Enable the NORSRAM device */ __FSMC_NORSRAM_ENABLE(hsram->Instance, hsram->Init.NSBank); - 8002020: 68fb ldr r3, [r7, #12] - 8002022: 681b ldr r3, [r3, #0] - 8002024: 68fa ldr r2, [r7, #12] - 8002026: 6892 ldr r2, [r2, #8] - 8002028: f853 1022 ldr.w r1, [r3, r2, lsl #2] - 800202c: 68fb ldr r3, [r7, #12] - 800202e: 681b ldr r3, [r3, #0] - 8002030: 68fa ldr r2, [r7, #12] - 8002032: 6892 ldr r2, [r2, #8] - 8002034: f041 0101 orr.w r1, r1, #1 - 8002038: f843 1022 str.w r1, [r3, r2, lsl #2] + 8001f38: 68fb ldr r3, [r7, #12] + 8001f3a: 681b ldr r3, [r3, #0] + 8001f3c: 68fa ldr r2, [r7, #12] + 8001f3e: 6892 ldr r2, [r2, #8] + 8001f40: f853 1022 ldr.w r1, [r3, r2, lsl #2] + 8001f44: 68fb ldr r3, [r7, #12] + 8001f46: 681b ldr r3, [r3, #0] + 8001f48: 68fa ldr r2, [r7, #12] + 8001f4a: 6892 ldr r2, [r2, #8] + 8001f4c: f041 0101 orr.w r1, r1, #1 + 8001f50: f843 1022 str.w r1, [r3, r2, lsl #2] /* Initialize the SRAM controller state */ hsram->State = HAL_SRAM_STATE_READY; - 800203c: 68fb ldr r3, [r7, #12] - 800203e: 2201 movs r2, #1 - 8002040: f883 2041 strb.w r2, [r3, #65] ; 0x41 + 8001f54: 68fb ldr r3, [r7, #12] + 8001f56: 2201 movs r2, #1 + 8001f58: f883 2041 strb.w r2, [r3, #65] ; 0x41 return HAL_OK; - 8002044: 2300 movs r3, #0 + 8001f5c: 2300 movs r3, #0 } - 8002046: 4618 mov r0, r3 - 8002048: 3710 adds r7, #16 - 800204a: 46bd mov sp, r7 - 800204c: bd80 pop {r7, pc} + 8001f5e: 4618 mov r0, r3 + 8001f60: 3710 adds r7, #16 + 8001f62: 46bd mov sp, r7 + 8001f64: bd80 pop {r7, pc} -0800204e : +08001f66 : * @param huart Pointer to a UART_HandleTypeDef structure that contains * the configuration information for the specified UART module. * @retval HAL status */ HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) { - 800204e: b580 push {r7, lr} - 8002050: b082 sub sp, #8 - 8002052: af00 add r7, sp, #0 - 8002054: 6078 str r0, [r7, #4] + 8001f66: b580 push {r7, lr} + 8001f68: b082 sub sp, #8 + 8001f6a: af00 add r7, sp, #0 + 8001f6c: 6078 str r0, [r7, #4] /* Check the UART handle allocation */ if (huart == NULL) - 8002056: 687b ldr r3, [r7, #4] - 8002058: 2b00 cmp r3, #0 - 800205a: d101 bne.n 8002060 + 8001f6e: 687b ldr r3, [r7, #4] + 8001f70: 2b00 cmp r3, #0 + 8001f72: d101 bne.n 8001f78 { return HAL_ERROR; - 800205c: 2301 movs r3, #1 - 800205e: e042 b.n 80020e6 + 8001f74: 2301 movs r3, #1 + 8001f76: e042 b.n 8001ffe assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); #if defined(USART_CR1_OVER8) assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); #endif /* USART_CR1_OVER8 */ if (huart->gState == HAL_UART_STATE_RESET) - 8002060: 687b ldr r3, [r7, #4] - 8002062: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 8002066: b2db uxtb r3, r3 - 8002068: 2b00 cmp r3, #0 - 800206a: d106 bne.n 800207a + 8001f78: 687b ldr r3, [r7, #4] + 8001f7a: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 + 8001f7e: b2db uxtb r3, r3 + 8001f80: 2b00 cmp r3, #0 + 8001f82: d106 bne.n 8001f92 { /* Allocate lock resource and initialize it */ huart->Lock = HAL_UNLOCKED; - 800206c: 687b ldr r3, [r7, #4] - 800206e: 2200 movs r2, #0 - 8002070: f883 2040 strb.w r2, [r3, #64] ; 0x40 + 8001f84: 687b ldr r3, [r7, #4] + 8001f86: 2200 movs r2, #0 + 8001f88: f883 2040 strb.w r2, [r3, #64] ; 0x40 /* Init the low level hardware */ huart->MspInitCallback(huart); #else /* Init the low level hardware : GPIO, CLOCK */ HAL_UART_MspInit(huart); - 8002074: 6878 ldr r0, [r7, #4] - 8002076: f7fe ff57 bl 8000f28 + 8001f8c: 6878 ldr r0, [r7, #4] + 8001f8e: f7fe ff6f bl 8000e70 #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ } huart->gState = HAL_UART_STATE_BUSY; - 800207a: 687b ldr r3, [r7, #4] - 800207c: 2224 movs r2, #36 ; 0x24 - 800207e: f883 2041 strb.w r2, [r3, #65] ; 0x41 + 8001f92: 687b ldr r3, [r7, #4] + 8001f94: 2224 movs r2, #36 ; 0x24 + 8001f96: f883 2041 strb.w r2, [r3, #65] ; 0x41 /* Disable the peripheral */ __HAL_UART_DISABLE(huart); - 8002082: 687b ldr r3, [r7, #4] - 8002084: 681b ldr r3, [r3, #0] - 8002086: 68da ldr r2, [r3, #12] - 8002088: 687b ldr r3, [r7, #4] - 800208a: 681b ldr r3, [r3, #0] - 800208c: f422 5200 bic.w r2, r2, #8192 ; 0x2000 - 8002090: 60da str r2, [r3, #12] + 8001f9a: 687b ldr r3, [r7, #4] + 8001f9c: 681b ldr r3, [r3, #0] + 8001f9e: 68da ldr r2, [r3, #12] + 8001fa0: 687b ldr r3, [r7, #4] + 8001fa2: 681b ldr r3, [r3, #0] + 8001fa4: f422 5200 bic.w r2, r2, #8192 ; 0x2000 + 8001fa8: 60da str r2, [r3, #12] /* Set the UART Communication parameters */ UART_SetConfig(huart); - 8002092: 6878 ldr r0, [r7, #4] - 8002094: f000 f82c bl 80020f0 + 8001faa: 6878 ldr r0, [r7, #4] + 8001fac: f000 f82c bl 8002008 /* 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)); - 8002098: 687b ldr r3, [r7, #4] - 800209a: 681b ldr r3, [r3, #0] - 800209c: 691a ldr r2, [r3, #16] - 800209e: 687b ldr r3, [r7, #4] - 80020a0: 681b ldr r3, [r3, #0] - 80020a2: f422 4290 bic.w r2, r2, #18432 ; 0x4800 - 80020a6: 611a str r2, [r3, #16] + 8001fb0: 687b ldr r3, [r7, #4] + 8001fb2: 681b ldr r3, [r3, #0] + 8001fb4: 691a ldr r2, [r3, #16] + 8001fb6: 687b ldr r3, [r7, #4] + 8001fb8: 681b ldr r3, [r3, #0] + 8001fba: f422 4290 bic.w r2, r2, #18432 ; 0x4800 + 8001fbe: 611a str r2, [r3, #16] CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); - 80020a8: 687b ldr r3, [r7, #4] - 80020aa: 681b ldr r3, [r3, #0] - 80020ac: 695a ldr r2, [r3, #20] - 80020ae: 687b ldr r3, [r7, #4] - 80020b0: 681b ldr r3, [r3, #0] - 80020b2: f022 022a bic.w r2, r2, #42 ; 0x2a - 80020b6: 615a str r2, [r3, #20] + 8001fc0: 687b ldr r3, [r7, #4] + 8001fc2: 681b ldr r3, [r3, #0] + 8001fc4: 695a ldr r2, [r3, #20] + 8001fc6: 687b ldr r3, [r7, #4] + 8001fc8: 681b ldr r3, [r3, #0] + 8001fca: f022 022a bic.w r2, r2, #42 ; 0x2a + 8001fce: 615a str r2, [r3, #20] /* Enable the peripheral */ __HAL_UART_ENABLE(huart); - 80020b8: 687b ldr r3, [r7, #4] - 80020ba: 681b ldr r3, [r3, #0] - 80020bc: 68da ldr r2, [r3, #12] - 80020be: 687b ldr r3, [r7, #4] - 80020c0: 681b ldr r3, [r3, #0] - 80020c2: f442 5200 orr.w r2, r2, #8192 ; 0x2000 - 80020c6: 60da str r2, [r3, #12] + 8001fd0: 687b ldr r3, [r7, #4] + 8001fd2: 681b ldr r3, [r3, #0] + 8001fd4: 68da ldr r2, [r3, #12] + 8001fd6: 687b ldr r3, [r7, #4] + 8001fd8: 681b ldr r3, [r3, #0] + 8001fda: f442 5200 orr.w r2, r2, #8192 ; 0x2000 + 8001fde: 60da str r2, [r3, #12] /* Initialize the UART state */ huart->ErrorCode = HAL_UART_ERROR_NONE; - 80020c8: 687b ldr r3, [r7, #4] - 80020ca: 2200 movs r2, #0 - 80020cc: 645a str r2, [r3, #68] ; 0x44 + 8001fe0: 687b ldr r3, [r7, #4] + 8001fe2: 2200 movs r2, #0 + 8001fe4: 645a str r2, [r3, #68] ; 0x44 huart->gState = HAL_UART_STATE_READY; - 80020ce: 687b ldr r3, [r7, #4] - 80020d0: 2220 movs r2, #32 - 80020d2: f883 2041 strb.w r2, [r3, #65] ; 0x41 + 8001fe6: 687b ldr r3, [r7, #4] + 8001fe8: 2220 movs r2, #32 + 8001fea: f883 2041 strb.w r2, [r3, #65] ; 0x41 huart->RxState = HAL_UART_STATE_READY; - 80020d6: 687b ldr r3, [r7, #4] - 80020d8: 2220 movs r2, #32 - 80020da: f883 2042 strb.w r2, [r3, #66] ; 0x42 + 8001fee: 687b ldr r3, [r7, #4] + 8001ff0: 2220 movs r2, #32 + 8001ff2: f883 2042 strb.w r2, [r3, #66] ; 0x42 huart->RxEventType = HAL_UART_RXEVENT_TC; - 80020de: 687b ldr r3, [r7, #4] - 80020e0: 2200 movs r2, #0 - 80020e2: 635a str r2, [r3, #52] ; 0x34 + 8001ff6: 687b ldr r3, [r7, #4] + 8001ff8: 2200 movs r2, #0 + 8001ffa: 635a str r2, [r3, #52] ; 0x34 return HAL_OK; - 80020e4: 2300 movs r3, #0 + 8001ffc: 2300 movs r3, #0 } - 80020e6: 4618 mov r0, r3 - 80020e8: 3708 adds r7, #8 - 80020ea: 46bd mov sp, r7 - 80020ec: bd80 pop {r7, pc} + 8001ffe: 4618 mov r0, r3 + 8002000: 3708 adds r7, #8 + 8002002: 46bd mov sp, r7 + 8002004: bd80 pop {r7, pc} ... -080020f0 : +08002008 : * @param huart Pointer to a UART_HandleTypeDef structure that contains * the configuration information for the specified UART module. * @retval None */ static void UART_SetConfig(UART_HandleTypeDef *huart) { - 80020f0: b580 push {r7, lr} - 80020f2: b084 sub sp, #16 - 80020f4: af00 add r7, sp, #0 - 80020f6: 6078 str r0, [r7, #4] + 8002008: b580 push {r7, lr} + 800200a: b084 sub sp, #16 + 800200c: af00 add r7, sp, #0 + 800200e: 6078 str r0, [r7, #4] assert_param(IS_UART_MODE(huart->Init.Mode)); /*-------------------------- 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); - 80020f8: 687b ldr r3, [r7, #4] - 80020fa: 681b ldr r3, [r3, #0] - 80020fc: 691b ldr r3, [r3, #16] - 80020fe: f423 5140 bic.w r1, r3, #12288 ; 0x3000 - 8002102: 687b ldr r3, [r7, #4] - 8002104: 68da ldr r2, [r3, #12] - 8002106: 687b ldr r3, [r7, #4] - 8002108: 681b ldr r3, [r3, #0] - 800210a: 430a orrs r2, r1 - 800210c: 611a str r2, [r3, #16] + 8002010: 687b ldr r3, [r7, #4] + 8002012: 681b ldr r3, [r3, #0] + 8002014: 691b ldr r3, [r3, #16] + 8002016: f423 5140 bic.w r1, r3, #12288 ; 0x3000 + 800201a: 687b ldr r3, [r7, #4] + 800201c: 68da ldr r2, [r3, #12] + 800201e: 687b ldr r3, [r7, #4] + 8002020: 681b ldr r3, [r3, #0] + 8002022: 430a orrs r2, r1 + 8002024: 611a str r2, [r3, #16] tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling; MODIFY_REG(huart->Instance->CR1, (uint32_t)(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | USART_CR1_TE | USART_CR1_RE | USART_CR1_OVER8), tmpreg); #else tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode; - 800210e: 687b ldr r3, [r7, #4] - 8002110: 689a ldr r2, [r3, #8] - 8002112: 687b ldr r3, [r7, #4] - 8002114: 691b ldr r3, [r3, #16] - 8002116: 431a orrs r2, r3 - 8002118: 687b ldr r3, [r7, #4] - 800211a: 695b ldr r3, [r3, #20] - 800211c: 4313 orrs r3, r2 - 800211e: 60bb str r3, [r7, #8] + 8002026: 687b ldr r3, [r7, #4] + 8002028: 689a ldr r2, [r3, #8] + 800202a: 687b ldr r3, [r7, #4] + 800202c: 691b ldr r3, [r3, #16] + 800202e: 431a orrs r2, r3 + 8002030: 687b ldr r3, [r7, #4] + 8002032: 695b ldr r3, [r3, #20] + 8002034: 4313 orrs r3, r2 + 8002036: 60bb str r3, [r7, #8] MODIFY_REG(huart->Instance->CR1, - 8002120: 687b ldr r3, [r7, #4] - 8002122: 681b ldr r3, [r3, #0] - 8002124: 68db ldr r3, [r3, #12] - 8002126: f423 53b0 bic.w r3, r3, #5632 ; 0x1600 - 800212a: f023 030c bic.w r3, r3, #12 - 800212e: 687a ldr r2, [r7, #4] - 8002130: 6812 ldr r2, [r2, #0] - 8002132: 68b9 ldr r1, [r7, #8] - 8002134: 430b orrs r3, r1 - 8002136: 60d3 str r3, [r2, #12] + 8002038: 687b ldr r3, [r7, #4] + 800203a: 681b ldr r3, [r3, #0] + 800203c: 68db ldr r3, [r3, #12] + 800203e: f423 53b0 bic.w r3, r3, #5632 ; 0x1600 + 8002042: f023 030c bic.w r3, r3, #12 + 8002046: 687a ldr r2, [r7, #4] + 8002048: 6812 ldr r2, [r2, #0] + 800204a: 68b9 ldr r1, [r7, #8] + 800204c: 430b orrs r3, r1 + 800204e: 60d3 str r3, [r2, #12] tmpreg); #endif /* USART_CR1_OVER8 */ /*-------------------------- USART CR3 Configuration -----------------------*/ /* Configure the UART HFC: Set CTSE and RTSE bits according to huart->Init.HwFlowCtl value */ MODIFY_REG(huart->Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE), huart->Init.HwFlowCtl); - 8002138: 687b ldr r3, [r7, #4] - 800213a: 681b ldr r3, [r3, #0] - 800213c: 695b ldr r3, [r3, #20] - 800213e: f423 7140 bic.w r1, r3, #768 ; 0x300 - 8002142: 687b ldr r3, [r7, #4] - 8002144: 699a ldr r2, [r3, #24] - 8002146: 687b ldr r3, [r7, #4] - 8002148: 681b ldr r3, [r3, #0] - 800214a: 430a orrs r2, r1 - 800214c: 615a str r2, [r3, #20] + 8002050: 687b ldr r3, [r7, #4] + 8002052: 681b ldr r3, [r3, #0] + 8002054: 695b ldr r3, [r3, #20] + 8002056: f423 7140 bic.w r1, r3, #768 ; 0x300 + 800205a: 687b ldr r3, [r7, #4] + 800205c: 699a ldr r2, [r3, #24] + 800205e: 687b ldr r3, [r7, #4] + 8002060: 681b ldr r3, [r3, #0] + 8002062: 430a orrs r2, r1 + 8002064: 615a str r2, [r3, #20] if(huart->Instance == USART1) - 800214e: 687b ldr r3, [r7, #4] - 8002150: 681b ldr r3, [r3, #0] - 8002152: 4a2c ldr r2, [pc, #176] ; (8002204 ) - 8002154: 4293 cmp r3, r2 - 8002156: d103 bne.n 8002160 + 8002066: 687b ldr r3, [r7, #4] + 8002068: 681b ldr r3, [r3, #0] + 800206a: 4a2c ldr r2, [pc, #176] ; (800211c ) + 800206c: 4293 cmp r3, r2 + 800206e: d103 bne.n 8002078 { pclk = HAL_RCC_GetPCLK2Freq(); - 8002158: f7ff fefa bl 8001f50 - 800215c: 60f8 str r0, [r7, #12] - 800215e: e002 b.n 8002166 + 8002070: f7ff fefa bl 8001e68 + 8002074: 60f8 str r0, [r7, #12] + 8002076: e002 b.n 800207e } else { pclk = HAL_RCC_GetPCLK1Freq(); - 8002160: f7ff fee2 bl 8001f28 - 8002164: 60f8 str r0, [r7, #12] + 8002078: f7ff fee2 bl 8001e40 + 800207c: 60f8 str r0, [r7, #12] else { huart->Instance->BRR = UART_BRR_SAMPLING16(pclk, huart->Init.BaudRate); } #else huart->Instance->BRR = UART_BRR_SAMPLING16(pclk, huart->Init.BaudRate); - 8002166: 68fa ldr r2, [r7, #12] - 8002168: 4613 mov r3, r2 - 800216a: 009b lsls r3, r3, #2 - 800216c: 4413 add r3, r2 - 800216e: 009a lsls r2, r3, #2 - 8002170: 441a add r2, r3 - 8002172: 687b ldr r3, [r7, #4] - 8002174: 685b ldr r3, [r3, #4] - 8002176: 009b lsls r3, r3, #2 - 8002178: fbb2 f3f3 udiv r3, r2, r3 - 800217c: 4a22 ldr r2, [pc, #136] ; (8002208 ) - 800217e: fba2 2303 umull r2, r3, r2, r3 - 8002182: 095b lsrs r3, r3, #5 - 8002184: 0119 lsls r1, r3, #4 - 8002186: 68fa ldr r2, [r7, #12] - 8002188: 4613 mov r3, r2 - 800218a: 009b lsls r3, r3, #2 - 800218c: 4413 add r3, r2 - 800218e: 009a lsls r2, r3, #2 - 8002190: 441a add r2, r3 - 8002192: 687b ldr r3, [r7, #4] - 8002194: 685b ldr r3, [r3, #4] - 8002196: 009b lsls r3, r3, #2 - 8002198: fbb2 f2f3 udiv r2, r2, r3 - 800219c: 4b1a ldr r3, [pc, #104] ; (8002208 ) - 800219e: fba3 0302 umull r0, r3, r3, r2 - 80021a2: 095b lsrs r3, r3, #5 - 80021a4: 2064 movs r0, #100 ; 0x64 - 80021a6: fb00 f303 mul.w r3, r0, r3 - 80021aa: 1ad3 subs r3, r2, r3 - 80021ac: 011b lsls r3, r3, #4 - 80021ae: 3332 adds r3, #50 ; 0x32 - 80021b0: 4a15 ldr r2, [pc, #84] ; (8002208 ) - 80021b2: fba2 2303 umull r2, r3, r2, r3 - 80021b6: 095b lsrs r3, r3, #5 - 80021b8: f003 03f0 and.w r3, r3, #240 ; 0xf0 - 80021bc: 4419 add r1, r3 - 80021be: 68fa ldr r2, [r7, #12] - 80021c0: 4613 mov r3, r2 - 80021c2: 009b lsls r3, r3, #2 - 80021c4: 4413 add r3, r2 - 80021c6: 009a lsls r2, r3, #2 - 80021c8: 441a add r2, r3 - 80021ca: 687b ldr r3, [r7, #4] - 80021cc: 685b ldr r3, [r3, #4] - 80021ce: 009b lsls r3, r3, #2 - 80021d0: fbb2 f2f3 udiv r2, r2, r3 - 80021d4: 4b0c ldr r3, [pc, #48] ; (8002208 ) - 80021d6: fba3 0302 umull r0, r3, r3, r2 - 80021da: 095b lsrs r3, r3, #5 - 80021dc: 2064 movs r0, #100 ; 0x64 - 80021de: fb00 f303 mul.w r3, r0, r3 - 80021e2: 1ad3 subs r3, r2, r3 - 80021e4: 011b lsls r3, r3, #4 - 80021e6: 3332 adds r3, #50 ; 0x32 - 80021e8: 4a07 ldr r2, [pc, #28] ; (8002208 ) - 80021ea: fba2 2303 umull r2, r3, r2, r3 - 80021ee: 095b lsrs r3, r3, #5 - 80021f0: f003 020f and.w r2, r3, #15 - 80021f4: 687b ldr r3, [r7, #4] - 80021f6: 681b ldr r3, [r3, #0] - 80021f8: 440a add r2, r1 - 80021fa: 609a str r2, [r3, #8] + 800207e: 68fa ldr r2, [r7, #12] + 8002080: 4613 mov r3, r2 + 8002082: 009b lsls r3, r3, #2 + 8002084: 4413 add r3, r2 + 8002086: 009a lsls r2, r3, #2 + 8002088: 441a add r2, r3 + 800208a: 687b ldr r3, [r7, #4] + 800208c: 685b ldr r3, [r3, #4] + 800208e: 009b lsls r3, r3, #2 + 8002090: fbb2 f3f3 udiv r3, r2, r3 + 8002094: 4a22 ldr r2, [pc, #136] ; (8002120 ) + 8002096: fba2 2303 umull r2, r3, r2, r3 + 800209a: 095b lsrs r3, r3, #5 + 800209c: 0119 lsls r1, r3, #4 + 800209e: 68fa ldr r2, [r7, #12] + 80020a0: 4613 mov r3, r2 + 80020a2: 009b lsls r3, r3, #2 + 80020a4: 4413 add r3, r2 + 80020a6: 009a lsls r2, r3, #2 + 80020a8: 441a add r2, r3 + 80020aa: 687b ldr r3, [r7, #4] + 80020ac: 685b ldr r3, [r3, #4] + 80020ae: 009b lsls r3, r3, #2 + 80020b0: fbb2 f2f3 udiv r2, r2, r3 + 80020b4: 4b1a ldr r3, [pc, #104] ; (8002120 ) + 80020b6: fba3 0302 umull r0, r3, r3, r2 + 80020ba: 095b lsrs r3, r3, #5 + 80020bc: 2064 movs r0, #100 ; 0x64 + 80020be: fb00 f303 mul.w r3, r0, r3 + 80020c2: 1ad3 subs r3, r2, r3 + 80020c4: 011b lsls r3, r3, #4 + 80020c6: 3332 adds r3, #50 ; 0x32 + 80020c8: 4a15 ldr r2, [pc, #84] ; (8002120 ) + 80020ca: fba2 2303 umull r2, r3, r2, r3 + 80020ce: 095b lsrs r3, r3, #5 + 80020d0: f003 03f0 and.w r3, r3, #240 ; 0xf0 + 80020d4: 4419 add r1, r3 + 80020d6: 68fa ldr r2, [r7, #12] + 80020d8: 4613 mov r3, r2 + 80020da: 009b lsls r3, r3, #2 + 80020dc: 4413 add r3, r2 + 80020de: 009a lsls r2, r3, #2 + 80020e0: 441a add r2, r3 + 80020e2: 687b ldr r3, [r7, #4] + 80020e4: 685b ldr r3, [r3, #4] + 80020e6: 009b lsls r3, r3, #2 + 80020e8: fbb2 f2f3 udiv r2, r2, r3 + 80020ec: 4b0c ldr r3, [pc, #48] ; (8002120 ) + 80020ee: fba3 0302 umull r0, r3, r3, r2 + 80020f2: 095b lsrs r3, r3, #5 + 80020f4: 2064 movs r0, #100 ; 0x64 + 80020f6: fb00 f303 mul.w r3, r0, r3 + 80020fa: 1ad3 subs r3, r2, r3 + 80020fc: 011b lsls r3, r3, #4 + 80020fe: 3332 adds r3, #50 ; 0x32 + 8002100: 4a07 ldr r2, [pc, #28] ; (8002120 ) + 8002102: fba2 2303 umull r2, r3, r2, r3 + 8002106: 095b lsrs r3, r3, #5 + 8002108: f003 020f and.w r2, r3, #15 + 800210c: 687b ldr r3, [r7, #4] + 800210e: 681b ldr r3, [r3, #0] + 8002110: 440a add r2, r1 + 8002112: 609a str r2, [r3, #8] #endif /* USART_CR1_OVER8 */ } - 80021fc: bf00 nop - 80021fe: 3710 adds r7, #16 - 8002200: 46bd mov sp, r7 - 8002202: bd80 pop {r7, pc} - 8002204: 40013800 .word 0x40013800 - 8002208: 51eb851f .word 0x51eb851f + 8002114: bf00 nop + 8002116: 3710 adds r7, #16 + 8002118: 46bd mov sp, r7 + 800211a: bd80 pop {r7, pc} + 800211c: 40013800 .word 0x40013800 + 8002120: 51eb851f .word 0x51eb851f -0800220c : +08002124 : * @param Init Pointer to NORSRAM Initialization structure * @retval HAL status */ HAL_StatusTypeDef FSMC_NORSRAM_Init(FSMC_NORSRAM_TypeDef *Device, FSMC_NORSRAM_InitTypeDef *Init) { - 800220c: b480 push {r7} - 800220e: b087 sub sp, #28 - 8002210: af00 add r7, sp, #0 - 8002212: 6078 str r0, [r7, #4] - 8002214: 6039 str r1, [r7, #0] + 8002124: b480 push {r7} + 8002126: b087 sub sp, #28 + 8002128: af00 add r7, sp, #0 + 800212a: 6078 str r0, [r7, #4] + 800212c: 6039 str r1, [r7, #0] assert_param(IS_FSMC_ASYNWAIT(Init->AsynchronousWait)); assert_param(IS_FSMC_WRITE_BURST(Init->WriteBurst)); assert_param(IS_FSMC_PAGESIZE(Init->PageSize)); /* Disable NORSRAM Device */ __FSMC_NORSRAM_DISABLE(Device, Init->NSBank); - 8002216: 683b ldr r3, [r7, #0] - 8002218: 681a ldr r2, [r3, #0] - 800221a: 687b ldr r3, [r7, #4] - 800221c: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 8002220: 683a ldr r2, [r7, #0] - 8002222: 6812 ldr r2, [r2, #0] - 8002224: f023 0101 bic.w r1, r3, #1 - 8002228: 687b ldr r3, [r7, #4] - 800222a: f843 1022 str.w r1, [r3, r2, lsl #2] + 800212e: 683b ldr r3, [r7, #0] + 8002130: 681a ldr r2, [r3, #0] + 8002132: 687b ldr r3, [r7, #4] + 8002134: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 8002138: 683a ldr r2, [r7, #0] + 800213a: 6812 ldr r2, [r2, #0] + 800213c: f023 0101 bic.w r1, r3, #1 + 8002140: 687b ldr r3, [r7, #4] + 8002142: f843 1022 str.w r1, [r3, r2, lsl #2] /* Set NORSRAM device control parameters */ if (Init->MemoryType == FSMC_MEMORY_TYPE_NOR) - 800222e: 683b ldr r3, [r7, #0] - 8002230: 689b ldr r3, [r3, #8] - 8002232: 2b08 cmp r3, #8 - 8002234: d102 bne.n 800223c + 8002146: 683b ldr r3, [r7, #0] + 8002148: 689b ldr r3, [r3, #8] + 800214a: 2b08 cmp r3, #8 + 800214c: d102 bne.n 8002154 { flashaccess = FSMC_NORSRAM_FLASH_ACCESS_ENABLE; - 8002236: 2340 movs r3, #64 ; 0x40 - 8002238: 617b str r3, [r7, #20] - 800223a: e001 b.n 8002240 + 800214e: 2340 movs r3, #64 ; 0x40 + 8002150: 617b str r3, [r7, #20] + 8002152: e001 b.n 8002158 } else { flashaccess = FSMC_NORSRAM_FLASH_ACCESS_DISABLE; - 800223c: 2300 movs r3, #0 - 800223e: 617b str r3, [r7, #20] + 8002154: 2300 movs r3, #0 + 8002156: 617b str r3, [r7, #20] } btcr_reg = (flashaccess | \ Init->DataAddressMux | \ - 8002240: 683b ldr r3, [r7, #0] - 8002242: 685a ldr r2, [r3, #4] + 8002158: 683b ldr r3, [r7, #0] + 800215a: 685a ldr r2, [r3, #4] btcr_reg = (flashaccess | \ - 8002244: 697b ldr r3, [r7, #20] - 8002246: 431a orrs r2, r3 + 800215c: 697b ldr r3, [r7, #20] + 800215e: 431a orrs r2, r3 Init->MemoryType | \ - 8002248: 683b ldr r3, [r7, #0] - 800224a: 689b ldr r3, [r3, #8] + 8002160: 683b ldr r3, [r7, #0] + 8002162: 689b ldr r3, [r3, #8] Init->DataAddressMux | \ - 800224c: 431a orrs r2, r3 + 8002164: 431a orrs r2, r3 Init->MemoryDataWidth | \ - 800224e: 683b ldr r3, [r7, #0] - 8002250: 68db ldr r3, [r3, #12] + 8002166: 683b ldr r3, [r7, #0] + 8002168: 68db ldr r3, [r3, #12] Init->MemoryType | \ - 8002252: 431a orrs r2, r3 + 800216a: 431a orrs r2, r3 Init->BurstAccessMode | \ - 8002254: 683b ldr r3, [r7, #0] - 8002256: 691b ldr r3, [r3, #16] + 800216c: 683b ldr r3, [r7, #0] + 800216e: 691b ldr r3, [r3, #16] Init->MemoryDataWidth | \ - 8002258: 431a orrs r2, r3 + 8002170: 431a orrs r2, r3 Init->WaitSignalPolarity | \ - 800225a: 683b ldr r3, [r7, #0] - 800225c: 695b ldr r3, [r3, #20] + 8002172: 683b ldr r3, [r7, #0] + 8002174: 695b ldr r3, [r3, #20] Init->BurstAccessMode | \ - 800225e: 431a orrs r2, r3 + 8002176: 431a orrs r2, r3 Init->WaitSignalActive | \ - 8002260: 683b ldr r3, [r7, #0] - 8002262: 69db ldr r3, [r3, #28] + 8002178: 683b ldr r3, [r7, #0] + 800217a: 69db ldr r3, [r3, #28] Init->WaitSignalPolarity | \ - 8002264: 431a orrs r2, r3 + 800217c: 431a orrs r2, r3 Init->WriteOperation | \ - 8002266: 683b ldr r3, [r7, #0] - 8002268: 6a1b ldr r3, [r3, #32] + 800217e: 683b ldr r3, [r7, #0] + 8002180: 6a1b ldr r3, [r3, #32] Init->WaitSignalActive | \ - 800226a: 431a orrs r2, r3 + 8002182: 431a orrs r2, r3 Init->WaitSignal | \ - 800226c: 683b ldr r3, [r7, #0] - 800226e: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002184: 683b ldr r3, [r7, #0] + 8002186: 6a5b ldr r3, [r3, #36] ; 0x24 Init->WriteOperation | \ - 8002270: 431a orrs r2, r3 + 8002188: 431a orrs r2, r3 Init->ExtendedMode | \ - 8002272: 683b ldr r3, [r7, #0] - 8002274: 6a9b ldr r3, [r3, #40] ; 0x28 + 800218a: 683b ldr r3, [r7, #0] + 800218c: 6a9b ldr r3, [r3, #40] ; 0x28 Init->WaitSignal | \ - 8002276: 431a orrs r2, r3 + 800218e: 431a orrs r2, r3 Init->AsynchronousWait | \ - 8002278: 683b ldr r3, [r7, #0] - 800227a: 6adb ldr r3, [r3, #44] ; 0x2c + 8002190: 683b ldr r3, [r7, #0] + 8002192: 6adb ldr r3, [r3, #44] ; 0x2c Init->ExtendedMode | \ - 800227c: 431a orrs r2, r3 + 8002194: 431a orrs r2, r3 Init->WriteBurst); - 800227e: 683b ldr r3, [r7, #0] - 8002280: 6b1b ldr r3, [r3, #48] ; 0x30 + 8002196: 683b ldr r3, [r7, #0] + 8002198: 6b1b ldr r3, [r3, #48] ; 0x30 btcr_reg = (flashaccess | \ - 8002282: 4313 orrs r3, r2 - 8002284: 613b str r3, [r7, #16] + 800219a: 4313 orrs r3, r2 + 800219c: 613b str r3, [r7, #16] btcr_reg |= Init->WrapMode; - 8002286: 683b ldr r3, [r7, #0] - 8002288: 699b ldr r3, [r3, #24] - 800228a: 693a ldr r2, [r7, #16] - 800228c: 4313 orrs r3, r2 - 800228e: 613b str r3, [r7, #16] + 800219e: 683b ldr r3, [r7, #0] + 80021a0: 699b ldr r3, [r3, #24] + 80021a2: 693a ldr r2, [r7, #16] + 80021a4: 4313 orrs r3, r2 + 80021a6: 613b str r3, [r7, #16] btcr_reg |= Init->PageSize; - 8002290: 683b ldr r3, [r7, #0] - 8002292: 6b5b ldr r3, [r3, #52] ; 0x34 - 8002294: 693a ldr r2, [r7, #16] - 8002296: 4313 orrs r3, r2 - 8002298: 613b str r3, [r7, #16] + 80021a8: 683b ldr r3, [r7, #0] + 80021aa: 6b5b ldr r3, [r3, #52] ; 0x34 + 80021ac: 693a ldr r2, [r7, #16] + 80021ae: 4313 orrs r3, r2 + 80021b0: 613b str r3, [r7, #16] mask = (FSMC_BCRx_MBKEN | - 800229a: 4b10 ldr r3, [pc, #64] ; (80022dc ) - 800229c: 60fb str r3, [r7, #12] + 80021b2: 4b10 ldr r3, [pc, #64] ; (80021f4 ) + 80021b4: 60fb str r3, [r7, #12] FSMC_BCRx_WAITEN | FSMC_BCRx_EXTMOD | FSMC_BCRx_ASYNCWAIT | FSMC_BCRx_CBURSTRW); mask |= FSMC_BCRx_WRAPMOD; - 800229e: 68fb ldr r3, [r7, #12] - 80022a0: f443 6380 orr.w r3, r3, #1024 ; 0x400 - 80022a4: 60fb str r3, [r7, #12] + 80021b6: 68fb ldr r3, [r7, #12] + 80021b8: f443 6380 orr.w r3, r3, #1024 ; 0x400 + 80021bc: 60fb str r3, [r7, #12] mask |= 0x00070000U; /* CPSIZE to be defined in CMSIS file */ - 80022a6: 68fb ldr r3, [r7, #12] - 80022a8: f443 23e0 orr.w r3, r3, #458752 ; 0x70000 - 80022ac: 60fb str r3, [r7, #12] + 80021be: 68fb ldr r3, [r7, #12] + 80021c0: f443 23e0 orr.w r3, r3, #458752 ; 0x70000 + 80021c4: 60fb str r3, [r7, #12] MODIFY_REG(Device->BTCR[Init->NSBank], mask, btcr_reg); - 80022ae: 683b ldr r3, [r7, #0] - 80022b0: 681a ldr r2, [r3, #0] - 80022b2: 687b ldr r3, [r7, #4] - 80022b4: f853 2022 ldr.w r2, [r3, r2, lsl #2] - 80022b8: 68fb ldr r3, [r7, #12] - 80022ba: 43db mvns r3, r3 - 80022bc: ea02 0103 and.w r1, r2, r3 - 80022c0: 683b ldr r3, [r7, #0] - 80022c2: 681a ldr r2, [r3, #0] - 80022c4: 693b ldr r3, [r7, #16] - 80022c6: 4319 orrs r1, r3 - 80022c8: 687b ldr r3, [r7, #4] - 80022ca: f843 1022 str.w r1, [r3, r2, lsl #2] + 80021c6: 683b ldr r3, [r7, #0] + 80021c8: 681a ldr r2, [r3, #0] + 80021ca: 687b ldr r3, [r7, #4] + 80021cc: f853 2022 ldr.w r2, [r3, r2, lsl #2] + 80021d0: 68fb ldr r3, [r7, #12] + 80021d2: 43db mvns r3, r3 + 80021d4: ea02 0103 and.w r1, r2, r3 + 80021d8: 683b ldr r3, [r7, #0] + 80021da: 681a ldr r2, [r3, #0] + 80021dc: 693b ldr r3, [r7, #16] + 80021de: 4319 orrs r1, r3 + 80021e0: 687b ldr r3, [r7, #4] + 80021e2: f843 1022 str.w r1, [r3, r2, lsl #2] return HAL_OK; - 80022ce: 2300 movs r3, #0 + 80021e6: 2300 movs r3, #0 } - 80022d0: 4618 mov r0, r3 - 80022d2: 371c adds r7, #28 - 80022d4: 46bd mov sp, r7 - 80022d6: bc80 pop {r7} - 80022d8: 4770 bx lr - 80022da: bf00 nop - 80022dc: 0008fb7f .word 0x0008fb7f + 80021e8: 4618 mov r0, r3 + 80021ea: 371c adds r7, #28 + 80021ec: 46bd mov sp, r7 + 80021ee: bc80 pop {r7} + 80021f0: 4770 bx lr + 80021f2: bf00 nop + 80021f4: 0008fb7f .word 0x0008fb7f -080022e0 : +080021f8 : * @param Bank NORSRAM bank number * @retval HAL status */ HAL_StatusTypeDef FSMC_NORSRAM_Timing_Init(FSMC_NORSRAM_TypeDef *Device, FSMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank) { - 80022e0: b480 push {r7} - 80022e2: b085 sub sp, #20 - 80022e4: af00 add r7, sp, #0 - 80022e6: 60f8 str r0, [r7, #12] - 80022e8: 60b9 str r1, [r7, #8] - 80022ea: 607a str r2, [r7, #4] + 80021f8: b480 push {r7} + 80021fa: b085 sub sp, #20 + 80021fc: af00 add r7, sp, #0 + 80021fe: 60f8 str r0, [r7, #12] + 8002200: 60b9 str r1, [r7, #8] + 8002202: 607a str r2, [r7, #4] assert_param(IS_FSMC_DATA_LATENCY(Timing->DataLatency)); assert_param(IS_FSMC_ACCESS_MODE(Timing->AccessMode)); assert_param(IS_FSMC_NORSRAM_BANK(Bank)); /* Set FSMC_NORSRAM device timing parameters */ MODIFY_REG(Device->BTCR[Bank + 1U], BTR_CLEAR_MASK, (Timing->AddressSetupTime | - 80022ec: 687b ldr r3, [r7, #4] - 80022ee: 1c5a adds r2, r3, #1 - 80022f0: 68fb ldr r3, [r7, #12] - 80022f2: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 80022f6: f003 4140 and.w r1, r3, #3221225472 ; 0xc0000000 - 80022fa: 68bb ldr r3, [r7, #8] - 80022fc: 681a ldr r2, [r3, #0] - 80022fe: 68bb ldr r3, [r7, #8] - 8002300: 685b ldr r3, [r3, #4] - 8002302: 011b lsls r3, r3, #4 - 8002304: 431a orrs r2, r3 - 8002306: 68bb ldr r3, [r7, #8] - 8002308: 689b ldr r3, [r3, #8] - 800230a: 021b lsls r3, r3, #8 - 800230c: 431a orrs r2, r3 - 800230e: 68bb ldr r3, [r7, #8] - 8002310: 68db ldr r3, [r3, #12] - 8002312: 041b lsls r3, r3, #16 - 8002314: 431a orrs r2, r3 - 8002316: 68bb ldr r3, [r7, #8] - 8002318: 691b ldr r3, [r3, #16] - 800231a: 3b01 subs r3, #1 - 800231c: 051b lsls r3, r3, #20 - 800231e: 431a orrs r2, r3 - 8002320: 68bb ldr r3, [r7, #8] - 8002322: 695b ldr r3, [r3, #20] - 8002324: 3b02 subs r3, #2 - 8002326: 061b lsls r3, r3, #24 - 8002328: 431a orrs r2, r3 - 800232a: 68bb ldr r3, [r7, #8] - 800232c: 699b ldr r3, [r3, #24] - 800232e: 4313 orrs r3, r2 - 8002330: 687a ldr r2, [r7, #4] - 8002332: 3201 adds r2, #1 - 8002334: 4319 orrs r1, r3 - 8002336: 68fb ldr r3, [r7, #12] - 8002338: f843 1022 str.w r1, [r3, r2, lsl #2] + 8002204: 687b ldr r3, [r7, #4] + 8002206: 1c5a adds r2, r3, #1 + 8002208: 68fb ldr r3, [r7, #12] + 800220a: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 800220e: f003 4140 and.w r1, r3, #3221225472 ; 0xc0000000 + 8002212: 68bb ldr r3, [r7, #8] + 8002214: 681a ldr r2, [r3, #0] + 8002216: 68bb ldr r3, [r7, #8] + 8002218: 685b ldr r3, [r3, #4] + 800221a: 011b lsls r3, r3, #4 + 800221c: 431a orrs r2, r3 + 800221e: 68bb ldr r3, [r7, #8] + 8002220: 689b ldr r3, [r3, #8] + 8002222: 021b lsls r3, r3, #8 + 8002224: 431a orrs r2, r3 + 8002226: 68bb ldr r3, [r7, #8] + 8002228: 68db ldr r3, [r3, #12] + 800222a: 041b lsls r3, r3, #16 + 800222c: 431a orrs r2, r3 + 800222e: 68bb ldr r3, [r7, #8] + 8002230: 691b ldr r3, [r3, #16] + 8002232: 3b01 subs r3, #1 + 8002234: 051b lsls r3, r3, #20 + 8002236: 431a orrs r2, r3 + 8002238: 68bb ldr r3, [r7, #8] + 800223a: 695b ldr r3, [r3, #20] + 800223c: 3b02 subs r3, #2 + 800223e: 061b lsls r3, r3, #24 + 8002240: 431a orrs r2, r3 + 8002242: 68bb ldr r3, [r7, #8] + 8002244: 699b ldr r3, [r3, #24] + 8002246: 4313 orrs r3, r2 + 8002248: 687a ldr r2, [r7, #4] + 800224a: 3201 adds r2, #1 + 800224c: 4319 orrs r1, r3 + 800224e: 68fb ldr r3, [r7, #12] + 8002250: f843 1022 str.w r1, [r3, r2, lsl #2] ((Timing->BusTurnAroundDuration) << FSMC_BTRx_BUSTURN_Pos) | (((Timing->CLKDivision) - 1U) << FSMC_BTRx_CLKDIV_Pos) | (((Timing->DataLatency) - 2U) << FSMC_BTRx_DATLAT_Pos) | (Timing->AccessMode))); return HAL_OK; - 800233c: 2300 movs r3, #0 + 8002254: 2300 movs r3, #0 } - 800233e: 4618 mov r0, r3 - 8002340: 3714 adds r7, #20 - 8002342: 46bd mov sp, r7 - 8002344: bc80 pop {r7} - 8002346: 4770 bx lr + 8002256: 4618 mov r0, r3 + 8002258: 3714 adds r7, #20 + 800225a: 46bd mov sp, r7 + 800225c: bc80 pop {r7} + 800225e: 4770 bx lr -08002348 : +08002260 : * @retval HAL status */ HAL_StatusTypeDef FSMC_NORSRAM_Extended_Timing_Init(FSMC_NORSRAM_EXTENDED_TypeDef *Device, FSMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank, uint32_t ExtendedMode) { - 8002348: b480 push {r7} - 800234a: b085 sub sp, #20 - 800234c: af00 add r7, sp, #0 - 800234e: 60f8 str r0, [r7, #12] - 8002350: 60b9 str r1, [r7, #8] - 8002352: 607a str r2, [r7, #4] - 8002354: 603b str r3, [r7, #0] + 8002260: b480 push {r7} + 8002262: b085 sub sp, #20 + 8002264: af00 add r7, sp, #0 + 8002266: 60f8 str r0, [r7, #12] + 8002268: 60b9 str r1, [r7, #8] + 800226a: 607a str r2, [r7, #4] + 800226c: 603b str r3, [r7, #0] /* Check the parameters */ assert_param(IS_FSMC_EXTENDED_MODE(ExtendedMode)); /* Set NORSRAM device timing register for write configuration, if extended mode is used */ if (ExtendedMode == FSMC_EXTENDED_MODE_ENABLE) - 8002356: 683b ldr r3, [r7, #0] - 8002358: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 - 800235c: d11d bne.n 800239a + 800226e: 683b ldr r3, [r7, #0] + 8002270: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 + 8002274: d11d bne.n 80022b2 assert_param(IS_FSMC_ACCESS_MODE(Timing->AccessMode)); assert_param(IS_FSMC_NORSRAM_BANK(Bank)); /* Set NORSRAM device timing register for write configuration, if extended mode is used */ #if defined(FSMC_BWTRx_BUSTURN) MODIFY_REG(Device->BWTR[Bank], BWTR_CLEAR_MASK, (Timing->AddressSetupTime | - 800235e: 68fb ldr r3, [r7, #12] - 8002360: 687a ldr r2, [r7, #4] - 8002362: f853 2022 ldr.w r2, [r3, r2, lsl #2] - 8002366: 4b13 ldr r3, [pc, #76] ; (80023b4 ) - 8002368: 4013 ands r3, r2 - 800236a: 68ba ldr r2, [r7, #8] - 800236c: 6811 ldr r1, [r2, #0] - 800236e: 68ba ldr r2, [r7, #8] - 8002370: 6852 ldr r2, [r2, #4] - 8002372: 0112 lsls r2, r2, #4 - 8002374: 4311 orrs r1, r2 - 8002376: 68ba ldr r2, [r7, #8] - 8002378: 6892 ldr r2, [r2, #8] - 800237a: 0212 lsls r2, r2, #8 - 800237c: 4311 orrs r1, r2 - 800237e: 68ba ldr r2, [r7, #8] - 8002380: 6992 ldr r2, [r2, #24] - 8002382: 4311 orrs r1, r2 - 8002384: 68ba ldr r2, [r7, #8] - 8002386: 68d2 ldr r2, [r2, #12] - 8002388: 0412 lsls r2, r2, #16 - 800238a: 430a orrs r2, r1 - 800238c: ea43 0102 orr.w r1, r3, r2 - 8002390: 68fb ldr r3, [r7, #12] - 8002392: 687a ldr r2, [r7, #4] - 8002394: f843 1022 str.w r1, [r3, r2, lsl #2] - 8002398: e005 b.n 80023a6 + 8002276: 68fb ldr r3, [r7, #12] + 8002278: 687a ldr r2, [r7, #4] + 800227a: f853 2022 ldr.w r2, [r3, r2, lsl #2] + 800227e: 4b13 ldr r3, [pc, #76] ; (80022cc ) + 8002280: 4013 ands r3, r2 + 8002282: 68ba ldr r2, [r7, #8] + 8002284: 6811 ldr r1, [r2, #0] + 8002286: 68ba ldr r2, [r7, #8] + 8002288: 6852 ldr r2, [r2, #4] + 800228a: 0112 lsls r2, r2, #4 + 800228c: 4311 orrs r1, r2 + 800228e: 68ba ldr r2, [r7, #8] + 8002290: 6892 ldr r2, [r2, #8] + 8002292: 0212 lsls r2, r2, #8 + 8002294: 4311 orrs r1, r2 + 8002296: 68ba ldr r2, [r7, #8] + 8002298: 6992 ldr r2, [r2, #24] + 800229a: 4311 orrs r1, r2 + 800229c: 68ba ldr r2, [r7, #8] + 800229e: 68d2 ldr r2, [r2, #12] + 80022a0: 0412 lsls r2, r2, #16 + 80022a2: 430a orrs r2, r1 + 80022a4: ea43 0102 orr.w r1, r3, r2 + 80022a8: 68fb ldr r3, [r7, #12] + 80022aa: 687a ldr r2, [r7, #4] + 80022ac: f843 1022 str.w r1, [r3, r2, lsl #2] + 80022b0: e005 b.n 80022be (((Timing->DataLatency) - 2U) << FSMC_BWTRx_DATLAT_Pos))); #endif /* FSMC_BWTRx_BUSTURN */ } else { Device->BWTR[Bank] = 0x0FFFFFFFU; - 800239a: 68fb ldr r3, [r7, #12] - 800239c: 687a ldr r2, [r7, #4] - 800239e: f06f 4170 mvn.w r1, #4026531840 ; 0xf0000000 - 80023a2: f843 1022 str.w r1, [r3, r2, lsl #2] + 80022b2: 68fb ldr r3, [r7, #12] + 80022b4: 687a ldr r2, [r7, #4] + 80022b6: f06f 4170 mvn.w r1, #4026531840 ; 0xf0000000 + 80022ba: f843 1022 str.w r1, [r3, r2, lsl #2] } return HAL_OK; - 80023a6: 2300 movs r3, #0 + 80022be: 2300 movs r3, #0 } - 80023a8: 4618 mov r0, r3 - 80023aa: 3714 adds r7, #20 - 80023ac: 46bd mov sp, r7 - 80023ae: bc80 pop {r7} - 80023b0: 4770 bx lr - 80023b2: bf00 nop - 80023b4: cff00000 .word 0xcff00000 + 80022c0: 4618 mov r0, r3 + 80022c2: 3714 adds r7, #20 + 80022c4: 46bd mov sp, r7 + 80022c6: bc80 pop {r7} + 80022c8: 4770 bx lr + 80022ca: bf00 nop + 80022cc: cff00000 .word 0xcff00000 -080023b8 : +080022d0 : * @param disp pointer to display which active screen should be get. (NULL to use the default * screen) * @return pointer to the active screen object (loaded by 'lv_scr_load()') */ lv_obj_t * lv_disp_get_scr_act(lv_disp_t * disp) { - 80023b8: b580 push {r7, lr} - 80023ba: b082 sub sp, #8 - 80023bc: af00 add r7, sp, #0 - 80023be: 6078 str r0, [r7, #4] + 80022d0: b580 push {r7, lr} + 80022d2: b082 sub sp, #8 + 80022d4: af00 add r7, sp, #0 + 80022d6: 6078 str r0, [r7, #4] if(!disp) disp = lv_disp_get_default(); - 80023c0: 687b ldr r3, [r7, #4] - 80023c2: 2b00 cmp r3, #0 - 80023c4: d102 bne.n 80023cc - 80023c6: f02e f881 bl 80304cc - 80023ca: 6078 str r0, [r7, #4] + 80022d8: 687b ldr r3, [r7, #4] + 80022da: 2b00 cmp r3, #0 + 80022dc: d102 bne.n 80022e4 + 80022de: f02e f8ab bl 8030438 + 80022e2: 6078 str r0, [r7, #4] if(!disp) { - 80023cc: 687b ldr r3, [r7, #4] - 80023ce: 2b00 cmp r3, #0 - 80023d0: d101 bne.n 80023d6 + 80022e4: 687b ldr r3, [r7, #4] + 80022e6: 2b00 cmp r3, #0 + 80022e8: d101 bne.n 80022ee LV_LOG_WARN("no display registered to get its active screen"); return NULL; - 80023d2: 2300 movs r3, #0 - 80023d4: e001 b.n 80023da + 80022ea: 2300 movs r3, #0 + 80022ec: e001 b.n 80022f2 } return disp->act_scr; - 80023d6: 687b ldr r3, [r7, #4] - 80023d8: 691b ldr r3, [r3, #16] + 80022ee: 687b ldr r3, [r7, #4] + 80022f0: 691b ldr r3, [r3, #16] } - 80023da: 4618 mov r0, r3 - 80023dc: 3708 adds r7, #8 - 80023de: 46bd mov sp, r7 - 80023e0: bd80 pop {r7, pc} + 80022f2: 4618 mov r0, r3 + 80022f4: 3708 adds r7, #8 + 80022f6: 46bd mov sp, r7 + 80022f8: bd80 pop {r7, pc} -080023e2 : +080022fa : * @param disp pointer to display which previous screen should be get. (NULL to use the default * screen) * @return pointer to the previous screen object or NULL if not used now */ lv_obj_t * lv_disp_get_scr_prev(lv_disp_t * disp) { - 80023e2: b580 push {r7, lr} - 80023e4: b082 sub sp, #8 - 80023e6: af00 add r7, sp, #0 - 80023e8: 6078 str r0, [r7, #4] + 80022fa: b580 push {r7, lr} + 80022fc: b082 sub sp, #8 + 80022fe: af00 add r7, sp, #0 + 8002300: 6078 str r0, [r7, #4] if(!disp) disp = lv_disp_get_default(); - 80023ea: 687b ldr r3, [r7, #4] - 80023ec: 2b00 cmp r3, #0 - 80023ee: d102 bne.n 80023f6 - 80023f0: f02e f86c bl 80304cc - 80023f4: 6078 str r0, [r7, #4] + 8002302: 687b ldr r3, [r7, #4] + 8002304: 2b00 cmp r3, #0 + 8002306: d102 bne.n 800230e + 8002308: f02e f896 bl 8030438 + 800230c: 6078 str r0, [r7, #4] if(!disp) { - 80023f6: 687b ldr r3, [r7, #4] - 80023f8: 2b00 cmp r3, #0 - 80023fa: d101 bne.n 8002400 + 800230e: 687b ldr r3, [r7, #4] + 8002310: 2b00 cmp r3, #0 + 8002312: d101 bne.n 8002318 LV_LOG_WARN("no display registered to get its previous screen"); return NULL; - 80023fc: 2300 movs r3, #0 - 80023fe: e001 b.n 8002404 + 8002314: 2300 movs r3, #0 + 8002316: e001 b.n 800231c } return disp->prev_scr; - 8002400: 687b ldr r3, [r7, #4] - 8002402: 695b ldr r3, [r3, #20] + 8002318: 687b ldr r3, [r7, #4] + 800231a: 695b ldr r3, [r3, #20] } - 8002404: 4618 mov r0, r3 - 8002406: 3708 adds r7, #8 - 8002408: 46bd mov sp, r7 - 800240a: bd80 pop {r7, pc} + 800231c: 4618 mov r0, r3 + 800231e: 3708 adds r7, #8 + 8002320: 46bd mov sp, r7 + 8002322: bd80 pop {r7, pc} -0800240c : +08002324 : +/** + * Make a screen active + * @param scr pointer to a screen + */ +void lv_disp_load_scr(lv_obj_t * scr) +{ + 8002324: b580 push {r7, lr} + 8002326: b084 sub sp, #16 + 8002328: af00 add r7, sp, #0 + 800232a: 6078 str r0, [r7, #4] + lv_disp_t * d = lv_obj_get_disp(scr); + 800232c: 6878 ldr r0, [r7, #4] + 800232e: f00d f969 bl 800f604 + 8002332: 60f8 str r0, [r7, #12] + if(!d) return; /*Shouldn't happen, just to be sure*/ + 8002334: 68fb ldr r3, [r7, #12] + 8002336: 2b00 cmp r3, #0 + 8002338: d02d beq.n 8002396 + + lv_obj_t * old_scr = d->act_scr; + 800233a: 68fb ldr r3, [r7, #12] + 800233c: 691b ldr r3, [r3, #16] + 800233e: 60bb str r3, [r7, #8] + + if(d->act_scr) lv_event_send(old_scr, LV_EVENT_SCREEN_UNLOAD_START, NULL); + 8002340: 68fb ldr r3, [r7, #12] + 8002342: 691b ldr r3, [r3, #16] + 8002344: 2b00 cmp r3, #0 + 8002346: d004 beq.n 8002352 + 8002348: 2200 movs r2, #0 + 800234a: 2125 movs r1, #37 ; 0x25 + 800234c: 68b8 ldr r0, [r7, #8] + 800234e: f000 f861 bl 8002414 + if(d->act_scr) lv_event_send(scr, LV_EVENT_SCREEN_LOAD_START, NULL); + 8002352: 68fb ldr r3, [r7, #12] + 8002354: 691b ldr r3, [r3, #16] + 8002356: 2b00 cmp r3, #0 + 8002358: d004 beq.n 8002364 + 800235a: 2200 movs r2, #0 + 800235c: 2126 movs r1, #38 ; 0x26 + 800235e: 6878 ldr r0, [r7, #4] + 8002360: f000 f858 bl 8002414 + + d->act_scr = scr; + 8002364: 68fb ldr r3, [r7, #12] + 8002366: 687a ldr r2, [r7, #4] + 8002368: 611a str r2, [r3, #16] + + if(d->act_scr) lv_event_send(scr, LV_EVENT_SCREEN_LOADED, NULL); + 800236a: 68fb ldr r3, [r7, #12] + 800236c: 691b ldr r3, [r3, #16] + 800236e: 2b00 cmp r3, #0 + 8002370: d004 beq.n 800237c + 8002372: 2200 movs r2, #0 + 8002374: 2127 movs r1, #39 ; 0x27 + 8002376: 6878 ldr r0, [r7, #4] + 8002378: f000 f84c bl 8002414 + if(d->act_scr) lv_event_send(old_scr, LV_EVENT_SCREEN_UNLOADED, NULL); + 800237c: 68fb ldr r3, [r7, #12] + 800237e: 691b ldr r3, [r3, #16] + 8002380: 2b00 cmp r3, #0 + 8002382: d004 beq.n 800238e + 8002384: 2200 movs r2, #0 + 8002386: 2128 movs r1, #40 ; 0x28 + 8002388: 68b8 ldr r0, [r7, #8] + 800238a: f000 f843 bl 8002414 + + lv_obj_invalidate(scr); + 800238e: 6878 ldr r0, [r7, #4] + 8002390: f008 fb59 bl 800aa46 + 8002394: e000 b.n 8002398 + if(!d) return; /*Shouldn't happen, just to be sure*/ + 8002396: bf00 nop +} + 8002398: 3710 adds r7, #16 + 800239a: 46bd mov sp, r7 + 800239c: bd80 pop {r7, pc} + +0800239e : * Return with the top layer. (Same on every screen and it is above the normal screen layer) * @param disp pointer to display which top layer should be get. (NULL to use the default screen) * @return pointer to the top layer object (transparent screen sized lv_obj) */ lv_obj_t * lv_disp_get_layer_top(lv_disp_t * disp) { - 800240c: b580 push {r7, lr} - 800240e: b082 sub sp, #8 - 8002410: af00 add r7, sp, #0 - 8002412: 6078 str r0, [r7, #4] + 800239e: b580 push {r7, lr} + 80023a0: b082 sub sp, #8 + 80023a2: af00 add r7, sp, #0 + 80023a4: 6078 str r0, [r7, #4] if(!disp) disp = lv_disp_get_default(); - 8002414: 687b ldr r3, [r7, #4] - 8002416: 2b00 cmp r3, #0 - 8002418: d102 bne.n 8002420 - 800241a: f02e f857 bl 80304cc - 800241e: 6078 str r0, [r7, #4] + 80023a6: 687b ldr r3, [r7, #4] + 80023a8: 2b00 cmp r3, #0 + 80023aa: d102 bne.n 80023b2 + 80023ac: f02e f844 bl 8030438 + 80023b0: 6078 str r0, [r7, #4] if(!disp) { - 8002420: 687b ldr r3, [r7, #4] - 8002422: 2b00 cmp r3, #0 - 8002424: d101 bne.n 800242a + 80023b2: 687b ldr r3, [r7, #4] + 80023b4: 2b00 cmp r3, #0 + 80023b6: d101 bne.n 80023bc LV_LOG_WARN("lv_layer_top: no display registered to get its top layer"); return NULL; - 8002426: 2300 movs r3, #0 - 8002428: e001 b.n 800242e + 80023b8: 2300 movs r3, #0 + 80023ba: e001 b.n 80023c0 } return disp->top_layer; - 800242a: 687b ldr r3, [r7, #4] - 800242c: 69db ldr r3, [r3, #28] + 80023bc: 687b ldr r3, [r7, #4] + 80023be: 69db ldr r3, [r3, #28] } - 800242e: 4618 mov r0, r3 - 8002430: 3708 adds r7, #8 - 8002432: 46bd mov sp, r7 - 8002434: bd80 pop {r7, pc} + 80023c0: 4618 mov r0, r3 + 80023c2: 3708 adds r7, #8 + 80023c4: 46bd mov sp, r7 + 80023c6: bd80 pop {r7, pc} -08002436 : +080023c8 : * layer) * @param disp pointer to display which sys. layer should be retrieved. (NULL to use the default screen) * @return pointer to the sys layer object (transparent screen sized lv_obj) */ lv_obj_t * lv_disp_get_layer_sys(lv_disp_t * disp) { - 8002436: b580 push {r7, lr} - 8002438: b082 sub sp, #8 - 800243a: af00 add r7, sp, #0 - 800243c: 6078 str r0, [r7, #4] + 80023c8: b580 push {r7, lr} + 80023ca: b082 sub sp, #8 + 80023cc: af00 add r7, sp, #0 + 80023ce: 6078 str r0, [r7, #4] if(!disp) disp = lv_disp_get_default(); - 800243e: 687b ldr r3, [r7, #4] - 8002440: 2b00 cmp r3, #0 - 8002442: d102 bne.n 800244a - 8002444: f02e f842 bl 80304cc - 8002448: 6078 str r0, [r7, #4] + 80023d0: 687b ldr r3, [r7, #4] + 80023d2: 2b00 cmp r3, #0 + 80023d4: d102 bne.n 80023dc + 80023d6: f02e f82f bl 8030438 + 80023da: 6078 str r0, [r7, #4] if(!disp) { - 800244a: 687b ldr r3, [r7, #4] - 800244c: 2b00 cmp r3, #0 - 800244e: d101 bne.n 8002454 + 80023dc: 687b ldr r3, [r7, #4] + 80023de: 2b00 cmp r3, #0 + 80023e0: d101 bne.n 80023e6 LV_LOG_WARN("lv_layer_sys: no display registered to get its sys. layer"); return NULL; - 8002450: 2300 movs r3, #0 - 8002452: e001 b.n 8002458 + 80023e2: 2300 movs r3, #0 + 80023e4: e001 b.n 80023ea } return disp->sys_layer; - 8002454: 687b ldr r3, [r7, #4] - 8002456: 6a1b ldr r3, [r3, #32] + 80023e6: 687b ldr r3, [r7, #4] + 80023e8: 6a1b ldr r3, [r3, #32] } - 8002458: 4618 mov r0, r3 - 800245a: 3708 adds r7, #8 - 800245c: 46bd mov sp, r7 - 800245e: bd80 pop {r7, pc} + 80023ea: 4618 mov r0, r3 + 80023ec: 3708 adds r7, #8 + 80023ee: 46bd mov sp, r7 + 80023f0: bd80 pop {r7, pc} -08002460 : +080023f2 : * Get the theme of a display * @param disp pointer to a display * @return the display's theme (can be NULL) */ lv_theme_t * lv_disp_get_theme(lv_disp_t * disp) { - 8002460: b580 push {r7, lr} - 8002462: b082 sub sp, #8 - 8002464: af00 add r7, sp, #0 - 8002466: 6078 str r0, [r7, #4] + 80023f2: b580 push {r7, lr} + 80023f4: b082 sub sp, #8 + 80023f6: af00 add r7, sp, #0 + 80023f8: 6078 str r0, [r7, #4] if(disp == NULL) disp = lv_disp_get_default(); - 8002468: 687b ldr r3, [r7, #4] - 800246a: 2b00 cmp r3, #0 - 800246c: d102 bne.n 8002474 - 800246e: f02e f82d bl 80304cc - 8002472: 6078 str r0, [r7, #4] + 80023fa: 687b ldr r3, [r7, #4] + 80023fc: 2b00 cmp r3, #0 + 80023fe: d102 bne.n 8002406 + 8002400: f02e f81a bl 8030438 + 8002404: 6078 str r0, [r7, #4] return disp->theme; - 8002474: 687b ldr r3, [r7, #4] - 8002476: 689b ldr r3, [r3, #8] + 8002406: 687b ldr r3, [r7, #4] + 8002408: 689b ldr r3, [r3, #8] } - 8002478: 4618 mov r0, r3 - 800247a: 3708 adds r7, #8 - 800247c: 46bd mov sp, r7 - 800247e: bd80 pop {r7, pc} + 800240a: 4618 mov r0, r3 + 800240c: 3708 adds r7, #8 + 800240e: 46bd mov sp, r7 + 8002410: bd80 pop {r7, pc} + ... -08002480 : +08002414 : /********************** * GLOBAL FUNCTIONS **********************/ lv_res_t lv_event_send(lv_obj_t * obj, lv_event_code_t event_code, void * param) { - 8002480: b580 push {r7, lr} - 8002482: b08c sub sp, #48 ; 0x30 - 8002484: af00 add r7, sp, #0 - 8002486: 60f8 str r0, [r7, #12] - 8002488: 460b mov r3, r1 - 800248a: 607a str r2, [r7, #4] - 800248c: 72fb strb r3, [r7, #11] + 8002414: b580 push {r7, lr} + 8002416: b08c sub sp, #48 ; 0x30 + 8002418: af00 add r7, sp, #0 + 800241a: 60f8 str r0, [r7, #12] + 800241c: 460b mov r3, r1 + 800241e: 607a str r2, [r7, #4] + 8002420: 72fb strb r3, [r7, #11] if(obj == NULL) return LV_RES_OK; - 800248e: 68fb ldr r3, [r7, #12] - 8002490: 2b00 cmp r3, #0 - 8002492: d101 bne.n 8002498 - 8002494: 2301 movs r3, #1 - 8002496: e02f b.n 80024f8 + 8002422: 68fb ldr r3, [r7, #12] + 8002424: 2b00 cmp r3, #0 + 8002426: d101 bne.n 800242c + 8002428: 2301 movs r3, #1 + 800242a: e02f b.n 800248c LV_ASSERT_OBJ(obj, MY_CLASS); lv_event_t e; e.target = obj; - 8002498: 68fb ldr r3, [r7, #12] - 800249a: 613b str r3, [r7, #16] + 800242c: 68fb ldr r3, [r7, #12] + 800242e: 613b str r3, [r7, #16] e.current_target = obj; - 800249c: 68fb ldr r3, [r7, #12] - 800249e: 617b str r3, [r7, #20] + 8002430: 68fb ldr r3, [r7, #12] + 8002432: 617b str r3, [r7, #20] e.code = event_code; - 80024a0: 7afb ldrb r3, [r7, #11] - 80024a2: 763b strb r3, [r7, #24] + 8002434: 7afb ldrb r3, [r7, #11] + 8002436: 763b strb r3, [r7, #24] e.user_data = NULL; - 80024a4: 2300 movs r3, #0 - 80024a6: 61fb str r3, [r7, #28] + 8002438: 2300 movs r3, #0 + 800243a: 61fb str r3, [r7, #28] e.param = param; - 80024a8: 687b ldr r3, [r7, #4] - 80024aa: 623b str r3, [r7, #32] + 800243c: 687b ldr r3, [r7, #4] + 800243e: 623b str r3, [r7, #32] e.deleted = 0; - 80024ac: f897 3028 ldrb.w r3, [r7, #40] ; 0x28 - 80024b0: f36f 0300 bfc r3, #0, #1 - 80024b4: f887 3028 strb.w r3, [r7, #40] ; 0x28 + 8002440: f897 3028 ldrb.w r3, [r7, #40] ; 0x28 + 8002444: f36f 0300 bfc r3, #0, #1 + 8002448: f887 3028 strb.w r3, [r7, #40] ; 0x28 e.stop_bubbling = 0; - 80024b8: f897 3028 ldrb.w r3, [r7, #40] ; 0x28 - 80024bc: f36f 0382 bfc r3, #2, #1 - 80024c0: f887 3028 strb.w r3, [r7, #40] ; 0x28 + 800244c: f897 3028 ldrb.w r3, [r7, #40] ; 0x28 + 8002450: f36f 0382 bfc r3, #2, #1 + 8002454: f887 3028 strb.w r3, [r7, #40] ; 0x28 e.stop_processing = 0; - 80024c4: f897 3028 ldrb.w r3, [r7, #40] ; 0x28 - 80024c8: f36f 0341 bfc r3, #1, #1 - 80024cc: f887 3028 strb.w r3, [r7, #40] ; 0x28 + 8002458: f897 3028 ldrb.w r3, [r7, #40] ; 0x28 + 800245c: f36f 0341 bfc r3, #1, #1 + 8002460: f887 3028 strb.w r3, [r7, #40] ; 0x28 /*Build a simple linked list from the objects used in the events *It's important to know if this object was deleted by a nested event *called from this `event_cb`.*/ e.prev = event_head; - 80024d0: 4b0b ldr r3, [pc, #44] ; (8002500 ) - 80024d2: 681b ldr r3, [r3, #0] - 80024d4: 627b str r3, [r7, #36] ; 0x24 + 8002464: 4b0b ldr r3, [pc, #44] ; (8002494 ) + 8002466: 681b ldr r3, [r3, #0] + 8002468: 627b str r3, [r7, #36] ; 0x24 event_head = &e; - 80024d6: 4a0a ldr r2, [pc, #40] ; (8002500 ) - 80024d8: f107 0310 add.w r3, r7, #16 - 80024dc: 6013 str r3, [r2, #0] + 800246a: 4a0a ldr r2, [pc, #40] ; (8002494 ) + 800246c: f107 0310 add.w r3, r7, #16 + 8002470: 6013 str r3, [r2, #0] /*Send the event*/ lv_res_t res = event_send_core(&e); - 80024de: f107 0310 add.w r3, r7, #16 - 80024e2: 4618 mov r0, r3 - 80024e4: f000 f9c7 bl 8002876 - 80024e8: 4603 mov r3, r0 - 80024ea: f887 302f strb.w r3, [r7, #47] ; 0x2f + 8002472: f107 0310 add.w r3, r7, #16 + 8002476: 4618 mov r0, r3 + 8002478: f000 f9c7 bl 800280a + 800247c: 4603 mov r3, r0 + 800247e: f887 302f strb.w r3, [r7, #47] ; 0x2f /*Remove this element from the list*/ event_head = e.prev; - 80024ee: 6a7b ldr r3, [r7, #36] ; 0x24 - 80024f0: 4a03 ldr r2, [pc, #12] ; (8002500 ) - 80024f2: 6013 str r3, [r2, #0] + 8002482: 6a7b ldr r3, [r7, #36] ; 0x24 + 8002484: 4a03 ldr r2, [pc, #12] ; (8002494 ) + 8002486: 6013 str r3, [r2, #0] return res; - 80024f4: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8002488: f897 302f ldrb.w r3, [r7, #47] ; 0x2f } - 80024f8: 4618 mov r0, r3 - 80024fa: 3730 adds r7, #48 ; 0x30 - 80024fc: 46bd mov sp, r7 - 80024fe: bd80 pop {r7, pc} - 8002500: 20001aec .word 0x20001aec + 800248c: 4618 mov r0, r3 + 800248e: 3730 adds r7, #48 ; 0x30 + 8002490: 46bd mov sp, r7 + 8002492: bd80 pop {r7, pc} + 8002494: 20001aec .word 0x20001aec -08002504 : +08002498 : lv_res_t lv_obj_event_base(const lv_obj_class_t * class_p, lv_event_t * e) { - 8002504: b580 push {r7, lr} - 8002506: b084 sub sp, #16 - 8002508: af00 add r7, sp, #0 - 800250a: 6078 str r0, [r7, #4] - 800250c: 6039 str r1, [r7, #0] + 8002498: b580 push {r7, lr} + 800249a: b084 sub sp, #16 + 800249c: af00 add r7, sp, #0 + 800249e: 6078 str r0, [r7, #4] + 80024a0: 6039 str r1, [r7, #0] const lv_obj_class_t * base; if(class_p == NULL) base = e->current_target->class_p; - 800250e: 687b ldr r3, [r7, #4] - 8002510: 2b00 cmp r3, #0 - 8002512: d104 bne.n 800251e - 8002514: 683b ldr r3, [r7, #0] - 8002516: 685b ldr r3, [r3, #4] - 8002518: 681b ldr r3, [r3, #0] - 800251a: 60fb str r3, [r7, #12] - 800251c: e006 b.n 800252c + 80024a2: 687b ldr r3, [r7, #4] + 80024a4: 2b00 cmp r3, #0 + 80024a6: d104 bne.n 80024b2 + 80024a8: 683b ldr r3, [r7, #0] + 80024aa: 685b ldr r3, [r3, #4] + 80024ac: 681b ldr r3, [r3, #0] + 80024ae: 60fb str r3, [r7, #12] + 80024b0: e006 b.n 80024c0 else base = class_p->base_class; - 800251e: 687b ldr r3, [r7, #4] - 8002520: 681b ldr r3, [r3, #0] - 8002522: 60fb str r3, [r7, #12] + 80024b2: 687b ldr r3, [r7, #4] + 80024b4: 681b ldr r3, [r3, #0] + 80024b6: 60fb str r3, [r7, #12] /*Find a base in which call the ancestor's event handler_cb if set*/ while(base && base->event_cb == NULL) base = base->base_class; - 8002524: e002 b.n 800252c - 8002526: 68fb ldr r3, [r7, #12] - 8002528: 681b ldr r3, [r3, #0] - 800252a: 60fb str r3, [r7, #12] - 800252c: 68fb ldr r3, [r7, #12] - 800252e: 2b00 cmp r3, #0 - 8002530: d003 beq.n 800253a - 8002532: 68fb ldr r3, [r7, #12] - 8002534: 691b ldr r3, [r3, #16] - 8002536: 2b00 cmp r3, #0 - 8002538: d0f5 beq.n 8002526 + 80024b8: e002 b.n 80024c0 + 80024ba: 68fb ldr r3, [r7, #12] + 80024bc: 681b ldr r3, [r3, #0] + 80024be: 60fb str r3, [r7, #12] + 80024c0: 68fb ldr r3, [r7, #12] + 80024c2: 2b00 cmp r3, #0 + 80024c4: d003 beq.n 80024ce + 80024c6: 68fb ldr r3, [r7, #12] + 80024c8: 691b ldr r3, [r3, #16] + 80024ca: 2b00 cmp r3, #0 + 80024cc: d0f5 beq.n 80024ba if(base == NULL) return LV_RES_OK; - 800253a: 68fb ldr r3, [r7, #12] - 800253c: 2b00 cmp r3, #0 - 800253e: d101 bne.n 8002544 - 8002540: 2301 movs r3, #1 - 8002542: e019 b.n 8002578 + 80024ce: 68fb ldr r3, [r7, #12] + 80024d0: 2b00 cmp r3, #0 + 80024d2: d101 bne.n 80024d8 + 80024d4: 2301 movs r3, #1 + 80024d6: e019 b.n 800250c if(base->event_cb == NULL) return LV_RES_OK; - 8002544: 68fb ldr r3, [r7, #12] - 8002546: 691b ldr r3, [r3, #16] - 8002548: 2b00 cmp r3, #0 - 800254a: d101 bne.n 8002550 - 800254c: 2301 movs r3, #1 - 800254e: e013 b.n 8002578 + 80024d8: 68fb ldr r3, [r7, #12] + 80024da: 691b ldr r3, [r3, #16] + 80024dc: 2b00 cmp r3, #0 + 80024de: d101 bne.n 80024e4 + 80024e0: 2301 movs r3, #1 + 80024e2: e013 b.n 800250c /*Call the actual event callback*/ e->user_data = NULL; - 8002550: 683b ldr r3, [r7, #0] - 8002552: 2200 movs r2, #0 - 8002554: 60da str r2, [r3, #12] + 80024e4: 683b ldr r3, [r7, #0] + 80024e6: 2200 movs r2, #0 + 80024e8: 60da str r2, [r3, #12] base->event_cb(base, e); - 8002556: 68fb ldr r3, [r7, #12] - 8002558: 691b ldr r3, [r3, #16] - 800255a: 6839 ldr r1, [r7, #0] - 800255c: 68f8 ldr r0, [r7, #12] - 800255e: 4798 blx r3 + 80024ea: 68fb ldr r3, [r7, #12] + 80024ec: 691b ldr r3, [r3, #16] + 80024ee: 6839 ldr r1, [r7, #0] + 80024f0: 68f8 ldr r0, [r7, #12] + 80024f2: 4798 blx r3 lv_res_t res = LV_RES_OK; - 8002560: 2301 movs r3, #1 - 8002562: 72fb strb r3, [r7, #11] + 80024f4: 2301 movs r3, #1 + 80024f6: 72fb strb r3, [r7, #11] /*Stop if the object is deleted*/ if(e->deleted) res = LV_RES_INV; - 8002564: 683b ldr r3, [r7, #0] - 8002566: 7e1b ldrb r3, [r3, #24] - 8002568: f003 0301 and.w r3, r3, #1 - 800256c: b2db uxtb r3, r3 - 800256e: 2b00 cmp r3, #0 - 8002570: d001 beq.n 8002576 - 8002572: 2300 movs r3, #0 - 8002574: 72fb strb r3, [r7, #11] + 80024f8: 683b ldr r3, [r7, #0] + 80024fa: 7e1b ldrb r3, [r3, #24] + 80024fc: f003 0301 and.w r3, r3, #1 + 8002500: b2db uxtb r3, r3 + 8002502: 2b00 cmp r3, #0 + 8002504: d001 beq.n 800250a + 8002506: 2300 movs r3, #0 + 8002508: 72fb strb r3, [r7, #11] return res; - 8002576: 7afb ldrb r3, [r7, #11] + 800250a: 7afb ldrb r3, [r7, #11] } - 8002578: 4618 mov r0, r3 - 800257a: 3710 adds r7, #16 - 800257c: 46bd mov sp, r7 - 800257e: bd80 pop {r7, pc} + 800250c: 4618 mov r0, r3 + 800250e: 3710 adds r7, #16 + 8002510: 46bd mov sp, r7 + 8002512: bd80 pop {r7, pc} -08002580 : +08002514 : lv_obj_t * lv_event_get_target(lv_event_t * e) { - 8002580: b480 push {r7} - 8002582: b083 sub sp, #12 - 8002584: af00 add r7, sp, #0 - 8002586: 6078 str r0, [r7, #4] + 8002514: b480 push {r7} + 8002516: b083 sub sp, #12 + 8002518: af00 add r7, sp, #0 + 800251a: 6078 str r0, [r7, #4] return e->target; - 8002588: 687b ldr r3, [r7, #4] - 800258a: 681b ldr r3, [r3, #0] + 800251c: 687b ldr r3, [r7, #4] + 800251e: 681b ldr r3, [r3, #0] } - 800258c: 4618 mov r0, r3 - 800258e: 370c adds r7, #12 - 8002590: 46bd mov sp, r7 - 8002592: bc80 pop {r7} - 8002594: 4770 bx lr + 8002520: 4618 mov r0, r3 + 8002522: 370c adds r7, #12 + 8002524: 46bd mov sp, r7 + 8002526: bc80 pop {r7} + 8002528: 4770 bx lr -08002596 : +0800252a : lv_obj_t * lv_event_get_current_target(lv_event_t * e) { - 8002596: b480 push {r7} - 8002598: b083 sub sp, #12 - 800259a: af00 add r7, sp, #0 - 800259c: 6078 str r0, [r7, #4] + 800252a: b480 push {r7} + 800252c: b083 sub sp, #12 + 800252e: af00 add r7, sp, #0 + 8002530: 6078 str r0, [r7, #4] return e->current_target; - 800259e: 687b ldr r3, [r7, #4] - 80025a0: 685b ldr r3, [r3, #4] + 8002532: 687b ldr r3, [r7, #4] + 8002534: 685b ldr r3, [r3, #4] } - 80025a2: 4618 mov r0, r3 - 80025a4: 370c adds r7, #12 - 80025a6: 46bd mov sp, r7 - 80025a8: bc80 pop {r7} - 80025aa: 4770 bx lr + 8002536: 4618 mov r0, r3 + 8002538: 370c adds r7, #12 + 800253a: 46bd mov sp, r7 + 800253c: bc80 pop {r7} + 800253e: 4770 bx lr -080025ac : +08002540 : lv_event_code_t lv_event_get_code(lv_event_t * e) { - 80025ac: b480 push {r7} - 80025ae: b083 sub sp, #12 - 80025b0: af00 add r7, sp, #0 - 80025b2: 6078 str r0, [r7, #4] + 8002540: b480 push {r7} + 8002542: b083 sub sp, #12 + 8002544: af00 add r7, sp, #0 + 8002546: 6078 str r0, [r7, #4] return e->code & ~LV_EVENT_PREPROCESS; - 80025b4: 687b ldr r3, [r7, #4] - 80025b6: 7a1b ldrb r3, [r3, #8] - 80025b8: f003 037f and.w r3, r3, #127 ; 0x7f - 80025bc: b2db uxtb r3, r3 + 8002548: 687b ldr r3, [r7, #4] + 800254a: 7a1b ldrb r3, [r3, #8] + 800254c: f003 037f and.w r3, r3, #127 ; 0x7f + 8002550: b2db uxtb r3, r3 } - 80025be: 4618 mov r0, r3 - 80025c0: 370c adds r7, #12 - 80025c2: 46bd mov sp, r7 - 80025c4: bc80 pop {r7} - 80025c6: 4770 bx lr + 8002552: 4618 mov r0, r3 + 8002554: 370c adds r7, #12 + 8002556: 46bd mov sp, r7 + 8002558: bc80 pop {r7} + 800255a: 4770 bx lr -080025c8 : +0800255c : void * lv_event_get_param(lv_event_t * e) { - 80025c8: b480 push {r7} - 80025ca: b083 sub sp, #12 - 80025cc: af00 add r7, sp, #0 - 80025ce: 6078 str r0, [r7, #4] + 800255c: b480 push {r7} + 800255e: b083 sub sp, #12 + 8002560: af00 add r7, sp, #0 + 8002562: 6078 str r0, [r7, #4] return e->param; - 80025d0: 687b ldr r3, [r7, #4] - 80025d2: 691b ldr r3, [r3, #16] + 8002564: 687b ldr r3, [r7, #4] + 8002566: 691b ldr r3, [r3, #16] } - 80025d4: 4618 mov r0, r3 - 80025d6: 370c adds r7, #12 - 80025d8: 46bd mov sp, r7 - 80025da: bc80 pop {r7} - 80025dc: 4770 bx lr + 8002568: 4618 mov r0, r3 + 800256a: 370c adds r7, #12 + 800256c: 46bd mov sp, r7 + 800256e: bc80 pop {r7} + 8002570: 4770 bx lr -080025de : +08002572 : void * lv_event_get_user_data(lv_event_t * e) { - 80025de: b480 push {r7} - 80025e0: b083 sub sp, #12 - 80025e2: af00 add r7, sp, #0 - 80025e4: 6078 str r0, [r7, #4] + 8002572: b480 push {r7} + 8002574: b083 sub sp, #12 + 8002576: af00 add r7, sp, #0 + 8002578: 6078 str r0, [r7, #4] return e->user_data; - 80025e6: 687b ldr r3, [r7, #4] - 80025e8: 68db ldr r3, [r3, #12] + 800257a: 687b ldr r3, [r7, #4] + 800257c: 68db ldr r3, [r3, #12] } - 80025ea: 4618 mov r0, r3 - 80025ec: 370c adds r7, #12 - 80025ee: 46bd mov sp, r7 - 80025f0: bc80 pop {r7} - 80025f2: 4770 bx lr + 800257e: 4618 mov r0, r3 + 8002580: 370c adds r7, #12 + 8002582: 46bd mov sp, r7 + 8002584: bc80 pop {r7} + 8002586: 4770 bx lr -080025f4 <_lv_event_mark_deleted>: +08002588 <_lv_event_mark_deleted>: last_id ++; return last_id; } void _lv_event_mark_deleted(lv_obj_t * obj) { - 80025f4: b480 push {r7} - 80025f6: b085 sub sp, #20 - 80025f8: af00 add r7, sp, #0 - 80025fa: 6078 str r0, [r7, #4] + 8002588: b480 push {r7} + 800258a: b085 sub sp, #20 + 800258c: af00 add r7, sp, #0 + 800258e: 6078 str r0, [r7, #4] lv_event_t * e = event_head; - 80025fc: 4b0f ldr r3, [pc, #60] ; (800263c <_lv_event_mark_deleted+0x48>) - 80025fe: 681b ldr r3, [r3, #0] - 8002600: 60fb str r3, [r7, #12] + 8002590: 4b0f ldr r3, [pc, #60] ; (80025d0 <_lv_event_mark_deleted+0x48>) + 8002592: 681b ldr r3, [r3, #0] + 8002594: 60fb str r3, [r7, #12] while(e) { - 8002602: e011 b.n 8002628 <_lv_event_mark_deleted+0x34> + 8002596: e011 b.n 80025bc <_lv_event_mark_deleted+0x34> if(e->current_target == obj || e->target == obj) e->deleted = 1; - 8002604: 68fb ldr r3, [r7, #12] - 8002606: 685b ldr r3, [r3, #4] - 8002608: 687a ldr r2, [r7, #4] - 800260a: 429a cmp r2, r3 - 800260c: d004 beq.n 8002618 <_lv_event_mark_deleted+0x24> - 800260e: 68fb ldr r3, [r7, #12] - 8002610: 681b ldr r3, [r3, #0] - 8002612: 687a ldr r2, [r7, #4] - 8002614: 429a cmp r2, r3 - 8002616: d104 bne.n 8002622 <_lv_event_mark_deleted+0x2e> - 8002618: 68fa ldr r2, [r7, #12] - 800261a: 7e13 ldrb r3, [r2, #24] - 800261c: f043 0301 orr.w r3, r3, #1 - 8002620: 7613 strb r3, [r2, #24] + 8002598: 68fb ldr r3, [r7, #12] + 800259a: 685b ldr r3, [r3, #4] + 800259c: 687a ldr r2, [r7, #4] + 800259e: 429a cmp r2, r3 + 80025a0: d004 beq.n 80025ac <_lv_event_mark_deleted+0x24> + 80025a2: 68fb ldr r3, [r7, #12] + 80025a4: 681b ldr r3, [r3, #0] + 80025a6: 687a ldr r2, [r7, #4] + 80025a8: 429a cmp r2, r3 + 80025aa: d104 bne.n 80025b6 <_lv_event_mark_deleted+0x2e> + 80025ac: 68fa ldr r2, [r7, #12] + 80025ae: 7e13 ldrb r3, [r2, #24] + 80025b0: f043 0301 orr.w r3, r3, #1 + 80025b4: 7613 strb r3, [r2, #24] e = e->prev; - 8002622: 68fb ldr r3, [r7, #12] - 8002624: 695b ldr r3, [r3, #20] - 8002626: 60fb str r3, [r7, #12] + 80025b6: 68fb ldr r3, [r7, #12] + 80025b8: 695b ldr r3, [r3, #20] + 80025ba: 60fb str r3, [r7, #12] while(e) { - 8002628: 68fb ldr r3, [r7, #12] - 800262a: 2b00 cmp r3, #0 - 800262c: d1ea bne.n 8002604 <_lv_event_mark_deleted+0x10> + 80025bc: 68fb ldr r3, [r7, #12] + 80025be: 2b00 cmp r3, #0 + 80025c0: d1ea bne.n 8002598 <_lv_event_mark_deleted+0x10> } } - 800262e: bf00 nop - 8002630: bf00 nop - 8002632: 3714 adds r7, #20 - 8002634: 46bd mov sp, r7 - 8002636: bc80 pop {r7} - 8002638: 4770 bx lr - 800263a: bf00 nop - 800263c: 20001aec .word 0x20001aec + 80025c2: bf00 nop + 80025c4: bf00 nop + 80025c6: 3714 adds r7, #20 + 80025c8: 46bd mov sp, r7 + 80025ca: bc80 pop {r7} + 80025cc: 4770 bx lr + 80025ce: bf00 nop + 80025d0: 20001aec .word 0x20001aec -08002640 : +080025d4 : struct _lv_event_dsc_t * lv_obj_add_event_cb(lv_obj_t * obj, lv_event_cb_t event_cb, lv_event_code_t filter, void * user_data) { - 8002640: b590 push {r4, r7, lr} - 8002642: b085 sub sp, #20 - 8002644: af00 add r7, sp, #0 - 8002646: 60f8 str r0, [r7, #12] - 8002648: 60b9 str r1, [r7, #8] - 800264a: 603b str r3, [r7, #0] - 800264c: 4613 mov r3, r2 - 800264e: 71fb strb r3, [r7, #7] + 80025d4: b590 push {r4, r7, lr} + 80025d6: b085 sub sp, #20 + 80025d8: af00 add r7, sp, #0 + 80025da: 60f8 str r0, [r7, #12] + 80025dc: 60b9 str r1, [r7, #8] + 80025de: 603b str r3, [r7, #0] + 80025e0: 4613 mov r3, r2 + 80025e2: 71fb strb r3, [r7, #7] LV_ASSERT_OBJ(obj, MY_CLASS); lv_obj_allocate_spec_attr(obj); - 8002650: 68f8 ldr r0, [r7, #12] - 8002652: f004 f8ef bl 8006834 + 80025e4: 68f8 ldr r0, [r7, #12] + 80025e6: f004 f8ef bl 80067c8 obj->spec_attr->event_dsc_cnt++; - 8002656: 68fb ldr r3, [r7, #12] - 8002658: 689b ldr r3, [r3, #8] - 800265a: 7e9a ldrb r2, [r3, #26] - 800265c: 3201 adds r2, #1 - 800265e: b2d2 uxtb r2, r2 - 8002660: 769a strb r2, [r3, #26] + 80025ea: 68fb ldr r3, [r7, #12] + 80025ec: 689b ldr r3, [r3, #8] + 80025ee: 7e9a ldrb r2, [r3, #26] + 80025f0: 3201 adds r2, #1 + 80025f2: b2d2 uxtb r2, r2 + 80025f4: 769a strb r2, [r3, #26] obj->spec_attr->event_dsc = lv_mem_realloc(obj->spec_attr->event_dsc, - 8002662: 68fb ldr r3, [r7, #12] - 8002664: 689b ldr r3, [r3, #8] - 8002666: 68da ldr r2, [r3, #12] + 80025f6: 68fb ldr r3, [r7, #12] + 80025f8: 689b ldr r3, [r3, #8] + 80025fa: 68da ldr r2, [r3, #12] obj->spec_attr->event_dsc_cnt * sizeof(lv_event_dsc_t)); - 8002668: 68fb ldr r3, [r7, #12] - 800266a: 689b ldr r3, [r3, #8] - 800266c: 7e9b ldrb r3, [r3, #26] - 800266e: 4619 mov r1, r3 + 80025fc: 68fb ldr r3, [r7, #12] + 80025fe: 689b ldr r3, [r3, #8] + 8002600: 7e9b ldrb r3, [r3, #26] + 8002602: 4619 mov r1, r3 obj->spec_attr->event_dsc = lv_mem_realloc(obj->spec_attr->event_dsc, - 8002670: 460b mov r3, r1 - 8002672: 005b lsls r3, r3, #1 - 8002674: 440b add r3, r1 - 8002676: 009b lsls r3, r3, #2 - 8002678: 4619 mov r1, r3 - 800267a: 68fb ldr r3, [r7, #12] - 800267c: 689c ldr r4, [r3, #8] - 800267e: 4610 mov r0, r2 - 8002680: f030 f948 bl 8032914 - 8002684: 4603 mov r3, r0 - 8002686: 60e3 str r3, [r4, #12] + 8002604: 460b mov r3, r1 + 8002606: 005b lsls r3, r3, #1 + 8002608: 440b add r3, r1 + 800260a: 009b lsls r3, r3, #2 + 800260c: 4619 mov r1, r3 + 800260e: 68fb ldr r3, [r7, #12] + 8002610: 689c ldr r4, [r3, #8] + 8002612: 4610 mov r0, r2 + 8002614: f030 f934 bl 8032880 + 8002618: 4603 mov r3, r0 + 800261a: 60e3 str r3, [r4, #12] LV_ASSERT_MALLOC(obj->spec_attr->event_dsc); - 8002688: 68fb ldr r3, [r7, #12] - 800268a: 689b ldr r3, [r3, #8] - 800268c: 68db ldr r3, [r3, #12] - 800268e: 2b00 cmp r3, #0 - 8002690: d100 bne.n 8002694 - 8002692: e7fe b.n 8002692 + 800261c: 68fb ldr r3, [r7, #12] + 800261e: 689b ldr r3, [r3, #8] + 8002620: 68db ldr r3, [r3, #12] + 8002622: 2b00 cmp r3, #0 + 8002624: d100 bne.n 8002628 + 8002626: e7fe b.n 8002626 obj->spec_attr->event_dsc[obj->spec_attr->event_dsc_cnt - 1].cb = event_cb; - 8002694: 68fb ldr r3, [r7, #12] - 8002696: 689b ldr r3, [r3, #8] - 8002698: 68da ldr r2, [r3, #12] - 800269a: 68fb ldr r3, [r7, #12] - 800269c: 689b ldr r3, [r3, #8] - 800269e: 7e9b ldrb r3, [r3, #26] - 80026a0: 4619 mov r1, r3 - 80026a2: 460b mov r3, r1 - 80026a4: 005b lsls r3, r3, #1 - 80026a6: 440b add r3, r1 - 80026a8: 009b lsls r3, r3, #2 - 80026aa: 3b0c subs r3, #12 - 80026ac: 4413 add r3, r2 - 80026ae: 68ba ldr r2, [r7, #8] - 80026b0: 601a str r2, [r3, #0] + 8002628: 68fb ldr r3, [r7, #12] + 800262a: 689b ldr r3, [r3, #8] + 800262c: 68da ldr r2, [r3, #12] + 800262e: 68fb ldr r3, [r7, #12] + 8002630: 689b ldr r3, [r3, #8] + 8002632: 7e9b ldrb r3, [r3, #26] + 8002634: 4619 mov r1, r3 + 8002636: 460b mov r3, r1 + 8002638: 005b lsls r3, r3, #1 + 800263a: 440b add r3, r1 + 800263c: 009b lsls r3, r3, #2 + 800263e: 3b0c subs r3, #12 + 8002640: 4413 add r3, r2 + 8002642: 68ba ldr r2, [r7, #8] + 8002644: 601a str r2, [r3, #0] obj->spec_attr->event_dsc[obj->spec_attr->event_dsc_cnt - 1].filter = filter; - 80026b2: 68fb ldr r3, [r7, #12] - 80026b4: 689b ldr r3, [r3, #8] - 80026b6: 68da ldr r2, [r3, #12] - 80026b8: 68fb ldr r3, [r7, #12] - 80026ba: 689b ldr r3, [r3, #8] - 80026bc: 7e9b ldrb r3, [r3, #26] - 80026be: 4619 mov r1, r3 - 80026c0: 460b mov r3, r1 - 80026c2: 005b lsls r3, r3, #1 - 80026c4: 440b add r3, r1 - 80026c6: 009b lsls r3, r3, #2 - 80026c8: 3b0c subs r3, #12 - 80026ca: 4413 add r3, r2 - 80026cc: 79fa ldrb r2, [r7, #7] - 80026ce: 721a strb r2, [r3, #8] + 8002646: 68fb ldr r3, [r7, #12] + 8002648: 689b ldr r3, [r3, #8] + 800264a: 68da ldr r2, [r3, #12] + 800264c: 68fb ldr r3, [r7, #12] + 800264e: 689b ldr r3, [r3, #8] + 8002650: 7e9b ldrb r3, [r3, #26] + 8002652: 4619 mov r1, r3 + 8002654: 460b mov r3, r1 + 8002656: 005b lsls r3, r3, #1 + 8002658: 440b add r3, r1 + 800265a: 009b lsls r3, r3, #2 + 800265c: 3b0c subs r3, #12 + 800265e: 4413 add r3, r2 + 8002660: 79fa ldrb r2, [r7, #7] + 8002662: 721a strb r2, [r3, #8] obj->spec_attr->event_dsc[obj->spec_attr->event_dsc_cnt - 1].user_data = user_data; - 80026d0: 68fb ldr r3, [r7, #12] - 80026d2: 689b ldr r3, [r3, #8] - 80026d4: 68da ldr r2, [r3, #12] - 80026d6: 68fb ldr r3, [r7, #12] - 80026d8: 689b ldr r3, [r3, #8] - 80026da: 7e9b ldrb r3, [r3, #26] - 80026dc: 4619 mov r1, r3 - 80026de: 460b mov r3, r1 - 80026e0: 005b lsls r3, r3, #1 - 80026e2: 440b add r3, r1 - 80026e4: 009b lsls r3, r3, #2 - 80026e6: 3b0c subs r3, #12 - 80026e8: 4413 add r3, r2 - 80026ea: 683a ldr r2, [r7, #0] - 80026ec: 605a str r2, [r3, #4] + 8002664: 68fb ldr r3, [r7, #12] + 8002666: 689b ldr r3, [r3, #8] + 8002668: 68da ldr r2, [r3, #12] + 800266a: 68fb ldr r3, [r7, #12] + 800266c: 689b ldr r3, [r3, #8] + 800266e: 7e9b ldrb r3, [r3, #26] + 8002670: 4619 mov r1, r3 + 8002672: 460b mov r3, r1 + 8002674: 005b lsls r3, r3, #1 + 8002676: 440b add r3, r1 + 8002678: 009b lsls r3, r3, #2 + 800267a: 3b0c subs r3, #12 + 800267c: 4413 add r3, r2 + 800267e: 683a ldr r2, [r7, #0] + 8002680: 605a str r2, [r3, #4] return &obj->spec_attr->event_dsc[obj->spec_attr->event_dsc_cnt - 1]; - 80026ee: 68fb ldr r3, [r7, #12] - 80026f0: 689b ldr r3, [r3, #8] - 80026f2: 68da ldr r2, [r3, #12] - 80026f4: 68fb ldr r3, [r7, #12] - 80026f6: 689b ldr r3, [r3, #8] - 80026f8: 7e9b ldrb r3, [r3, #26] - 80026fa: 4619 mov r1, r3 - 80026fc: 460b mov r3, r1 - 80026fe: 005b lsls r3, r3, #1 - 8002700: 440b add r3, r1 - 8002702: 009b lsls r3, r3, #2 - 8002704: 3b0c subs r3, #12 - 8002706: 4413 add r3, r2 + 8002682: 68fb ldr r3, [r7, #12] + 8002684: 689b ldr r3, [r3, #8] + 8002686: 68da ldr r2, [r3, #12] + 8002688: 68fb ldr r3, [r7, #12] + 800268a: 689b ldr r3, [r3, #8] + 800268c: 7e9b ldrb r3, [r3, #26] + 800268e: 4619 mov r1, r3 + 8002690: 460b mov r3, r1 + 8002692: 005b lsls r3, r3, #1 + 8002694: 440b add r3, r1 + 8002696: 009b lsls r3, r3, #2 + 8002698: 3b0c subs r3, #12 + 800269a: 4413 add r3, r2 } - 8002708: 4618 mov r0, r3 - 800270a: 3714 adds r7, #20 - 800270c: 46bd mov sp, r7 - 800270e: bd90 pop {r4, r7, pc} + 800269c: 4618 mov r0, r3 + 800269e: 3714 adds r7, #20 + 80026a0: 46bd mov sp, r7 + 80026a2: bd90 pop {r4, r7, pc} -08002710 : +080026a4 : } return NULL; } lv_indev_t * lv_event_get_indev(lv_event_t * e) { - 8002710: b580 push {r7, lr} - 8002712: b082 sub sp, #8 - 8002714: af00 add r7, sp, #0 - 8002716: 6078 str r0, [r7, #4] + 80026a4: b580 push {r7, lr} + 80026a6: b082 sub sp, #8 + 80026a8: af00 add r7, sp, #0 + 80026aa: 6078 str r0, [r7, #4] if(e->code == LV_EVENT_PRESSED || - 8002718: 687b ldr r3, [r7, #4] - 800271a: 7a1b ldrb r3, [r3, #8] - 800271c: 2b01 cmp r3, #1 - 800271e: d03b beq.n 8002798 + 80026ac: 687b ldr r3, [r7, #4] + 80026ae: 7a1b ldrb r3, [r3, #8] + 80026b0: 2b01 cmp r3, #1 + 80026b2: d03b beq.n 800272c e->code == LV_EVENT_PRESSING || - 8002720: 687b ldr r3, [r7, #4] - 8002722: 7a1b ldrb r3, [r3, #8] + 80026b4: 687b ldr r3, [r7, #4] + 80026b6: 7a1b ldrb r3, [r3, #8] if(e->code == LV_EVENT_PRESSED || - 8002724: 2b02 cmp r3, #2 - 8002726: d037 beq.n 8002798 + 80026b8: 2b02 cmp r3, #2 + 80026ba: d037 beq.n 800272c e->code == LV_EVENT_PRESS_LOST || - 8002728: 687b ldr r3, [r7, #4] - 800272a: 7a1b ldrb r3, [r3, #8] + 80026bc: 687b ldr r3, [r7, #4] + 80026be: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_PRESSING || - 800272c: 2b03 cmp r3, #3 - 800272e: d033 beq.n 8002798 + 80026c0: 2b03 cmp r3, #3 + 80026c2: d033 beq.n 800272c e->code == LV_EVENT_SHORT_CLICKED || - 8002730: 687b ldr r3, [r7, #4] - 8002732: 7a1b ldrb r3, [r3, #8] + 80026c4: 687b ldr r3, [r7, #4] + 80026c6: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_PRESS_LOST || - 8002734: 2b04 cmp r3, #4 - 8002736: d02f beq.n 8002798 + 80026c8: 2b04 cmp r3, #4 + 80026ca: d02f beq.n 800272c e->code == LV_EVENT_LONG_PRESSED || - 8002738: 687b ldr r3, [r7, #4] - 800273a: 7a1b ldrb r3, [r3, #8] + 80026cc: 687b ldr r3, [r7, #4] + 80026ce: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_SHORT_CLICKED || - 800273c: 2b05 cmp r3, #5 - 800273e: d02b beq.n 8002798 + 80026d0: 2b05 cmp r3, #5 + 80026d2: d02b beq.n 800272c e->code == LV_EVENT_LONG_PRESSED_REPEAT || - 8002740: 687b ldr r3, [r7, #4] - 8002742: 7a1b ldrb r3, [r3, #8] + 80026d4: 687b ldr r3, [r7, #4] + 80026d6: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_LONG_PRESSED || - 8002744: 2b06 cmp r3, #6 - 8002746: d027 beq.n 8002798 + 80026d8: 2b06 cmp r3, #6 + 80026da: d027 beq.n 800272c e->code == LV_EVENT_CLICKED || - 8002748: 687b ldr r3, [r7, #4] - 800274a: 7a1b ldrb r3, [r3, #8] + 80026dc: 687b ldr r3, [r7, #4] + 80026de: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_LONG_PRESSED_REPEAT || - 800274c: 2b07 cmp r3, #7 - 800274e: d023 beq.n 8002798 + 80026e0: 2b07 cmp r3, #7 + 80026e2: d023 beq.n 800272c e->code == LV_EVENT_RELEASED || - 8002750: 687b ldr r3, [r7, #4] - 8002752: 7a1b ldrb r3, [r3, #8] + 80026e4: 687b ldr r3, [r7, #4] + 80026e6: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_CLICKED || - 8002754: 2b08 cmp r3, #8 - 8002756: d01f beq.n 8002798 + 80026e8: 2b08 cmp r3, #8 + 80026ea: d01f beq.n 800272c e->code == LV_EVENT_SCROLL_BEGIN || - 8002758: 687b ldr r3, [r7, #4] - 800275a: 7a1b ldrb r3, [r3, #8] + 80026ec: 687b ldr r3, [r7, #4] + 80026ee: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_RELEASED || - 800275c: 2b09 cmp r3, #9 - 800275e: d01b beq.n 8002798 + 80026f0: 2b09 cmp r3, #9 + 80026f2: d01b beq.n 800272c e->code == LV_EVENT_SCROLL_END || - 8002760: 687b ldr r3, [r7, #4] - 8002762: 7a1b ldrb r3, [r3, #8] + 80026f4: 687b ldr r3, [r7, #4] + 80026f6: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_SCROLL_BEGIN || - 8002764: 2b0a cmp r3, #10 - 8002766: d017 beq.n 8002798 + 80026f8: 2b0a cmp r3, #10 + 80026fa: d017 beq.n 800272c e->code == LV_EVENT_SCROLL || - 8002768: 687b ldr r3, [r7, #4] - 800276a: 7a1b ldrb r3, [r3, #8] + 80026fc: 687b ldr r3, [r7, #4] + 80026fe: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_SCROLL_END || - 800276c: 2b0b cmp r3, #11 - 800276e: d013 beq.n 8002798 + 8002700: 2b0b cmp r3, #11 + 8002702: d013 beq.n 800272c e->code == LV_EVENT_GESTURE || - 8002770: 687b ldr r3, [r7, #4] - 8002772: 7a1b ldrb r3, [r3, #8] + 8002704: 687b ldr r3, [r7, #4] + 8002706: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_SCROLL || - 8002774: 2b0c cmp r3, #12 - 8002776: d00f beq.n 8002798 + 8002708: 2b0c cmp r3, #12 + 800270a: d00f beq.n 800272c e->code == LV_EVENT_KEY || - 8002778: 687b ldr r3, [r7, #4] - 800277a: 7a1b ldrb r3, [r3, #8] + 800270c: 687b ldr r3, [r7, #4] + 800270e: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_GESTURE || - 800277c: 2b0d cmp r3, #13 - 800277e: d00b beq.n 8002798 + 8002710: 2b0d cmp r3, #13 + 8002712: d00b beq.n 800272c e->code == LV_EVENT_FOCUSED || - 8002780: 687b ldr r3, [r7, #4] - 8002782: 7a1b ldrb r3, [r3, #8] + 8002714: 687b ldr r3, [r7, #4] + 8002716: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_KEY || - 8002784: 2b0e cmp r3, #14 - 8002786: d007 beq.n 8002798 + 8002718: 2b0e cmp r3, #14 + 800271a: d007 beq.n 800272c e->code == LV_EVENT_DEFOCUSED || - 8002788: 687b ldr r3, [r7, #4] - 800278a: 7a1b ldrb r3, [r3, #8] + 800271c: 687b ldr r3, [r7, #4] + 800271e: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_FOCUSED || - 800278c: 2b0f cmp r3, #15 - 800278e: d003 beq.n 8002798 + 8002720: 2b0f cmp r3, #15 + 8002722: d003 beq.n 800272c e->code == LV_EVENT_LEAVE) { - 8002790: 687b ldr r3, [r7, #4] - 8002792: 7a1b ldrb r3, [r3, #8] + 8002724: 687b ldr r3, [r7, #4] + 8002726: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_DEFOCUSED || - 8002794: 2b10 cmp r3, #16 - 8002796: d104 bne.n 80027a2 + 8002728: 2b10 cmp r3, #16 + 800272a: d104 bne.n 8002736 return lv_event_get_param(e); - 8002798: 6878 ldr r0, [r7, #4] - 800279a: f7ff ff15 bl 80025c8 - 800279e: 4603 mov r3, r0 - 80027a0: e000 b.n 80027a4 + 800272c: 6878 ldr r0, [r7, #4] + 800272e: f7ff ff15 bl 800255c + 8002732: 4603 mov r3, r0 + 8002734: e000 b.n 8002738 } else { LV_LOG_WARN("Not interpreted with this event code"); return NULL; - 80027a2: 2300 movs r3, #0 + 8002736: 2300 movs r3, #0 } } - 80027a4: 4618 mov r0, r3 - 80027a6: 3708 adds r7, #8 - 80027a8: 46bd mov sp, r7 - 80027aa: bd80 pop {r7, pc} + 8002738: 4618 mov r0, r3 + 800273a: 3708 adds r7, #8 + 800273c: 46bd mov sp, r7 + 800273e: bd80 pop {r7, pc} -080027ac : +08002740 : return NULL; } } lv_draw_ctx_t * lv_event_get_draw_ctx(lv_event_t * e) { - 80027ac: b580 push {r7, lr} - 80027ae: b082 sub sp, #8 - 80027b0: af00 add r7, sp, #0 - 80027b2: 6078 str r0, [r7, #4] + 8002740: b580 push {r7, lr} + 8002742: b082 sub sp, #8 + 8002744: af00 add r7, sp, #0 + 8002746: 6078 str r0, [r7, #4] if(e->code == LV_EVENT_DRAW_MAIN || - 80027b4: 687b ldr r3, [r7, #4] - 80027b6: 7a1b ldrb r3, [r3, #8] - 80027b8: 2b15 cmp r3, #21 - 80027ba: d013 beq.n 80027e4 + 8002748: 687b ldr r3, [r7, #4] + 800274a: 7a1b ldrb r3, [r3, #8] + 800274c: 2b15 cmp r3, #21 + 800274e: d013 beq.n 8002778 e->code == LV_EVENT_DRAW_MAIN_BEGIN || - 80027bc: 687b ldr r3, [r7, #4] - 80027be: 7a1b ldrb r3, [r3, #8] + 8002750: 687b ldr r3, [r7, #4] + 8002752: 7a1b ldrb r3, [r3, #8] if(e->code == LV_EVENT_DRAW_MAIN || - 80027c0: 2b14 cmp r3, #20 - 80027c2: d00f beq.n 80027e4 + 8002754: 2b14 cmp r3, #20 + 8002756: d00f beq.n 8002778 e->code == LV_EVENT_DRAW_MAIN_END || - 80027c4: 687b ldr r3, [r7, #4] - 80027c6: 7a1b ldrb r3, [r3, #8] + 8002758: 687b ldr r3, [r7, #4] + 800275a: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_DRAW_MAIN_BEGIN || - 80027c8: 2b16 cmp r3, #22 - 80027ca: d00b beq.n 80027e4 + 800275c: 2b16 cmp r3, #22 + 800275e: d00b beq.n 8002778 e->code == LV_EVENT_DRAW_POST || - 80027cc: 687b ldr r3, [r7, #4] - 80027ce: 7a1b ldrb r3, [r3, #8] + 8002760: 687b ldr r3, [r7, #4] + 8002762: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_DRAW_MAIN_END || - 80027d0: 2b18 cmp r3, #24 - 80027d2: d007 beq.n 80027e4 + 8002764: 2b18 cmp r3, #24 + 8002766: d007 beq.n 8002778 e->code == LV_EVENT_DRAW_POST_BEGIN || - 80027d4: 687b ldr r3, [r7, #4] - 80027d6: 7a1b ldrb r3, [r3, #8] + 8002768: 687b ldr r3, [r7, #4] + 800276a: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_DRAW_POST || - 80027d8: 2b17 cmp r3, #23 - 80027da: d003 beq.n 80027e4 + 800276c: 2b17 cmp r3, #23 + 800276e: d003 beq.n 8002778 e->code == LV_EVENT_DRAW_POST_END) { - 80027dc: 687b ldr r3, [r7, #4] - 80027de: 7a1b ldrb r3, [r3, #8] + 8002770: 687b ldr r3, [r7, #4] + 8002772: 7a1b ldrb r3, [r3, #8] e->code == LV_EVENT_DRAW_POST_BEGIN || - 80027e0: 2b19 cmp r3, #25 - 80027e2: d104 bne.n 80027ee + 8002774: 2b19 cmp r3, #25 + 8002776: d104 bne.n 8002782 return lv_event_get_param(e); - 80027e4: 6878 ldr r0, [r7, #4] - 80027e6: f7ff feef bl 80025c8 - 80027ea: 4603 mov r3, r0 - 80027ec: e000 b.n 80027f0 + 8002778: 6878 ldr r0, [r7, #4] + 800277a: f7ff feef bl 800255c + 800277e: 4603 mov r3, r0 + 8002780: e000 b.n 8002784 } else { LV_LOG_WARN("Not interpreted with this event code"); return NULL; - 80027ee: 2300 movs r3, #0 + 8002782: 2300 movs r3, #0 } } - 80027f0: 4618 mov r0, r3 - 80027f2: 3708 adds r7, #8 - 80027f4: 46bd mov sp, r7 - 80027f6: bd80 pop {r7, pc} + 8002784: 4618 mov r0, r3 + 8002786: 3708 adds r7, #8 + 8002788: 46bd mov sp, r7 + 800278a: bd80 pop {r7, pc} -080027f8 : +0800278c : return 0; } } void lv_event_set_ext_draw_size(lv_event_t * e, lv_coord_t size) { - 80027f8: b580 push {r7, lr} - 80027fa: b084 sub sp, #16 - 80027fc: af00 add r7, sp, #0 - 80027fe: 6078 str r0, [r7, #4] - 8002800: 460b mov r3, r1 - 8002802: 807b strh r3, [r7, #2] + 800278c: b580 push {r7, lr} + 800278e: b084 sub sp, #16 + 8002790: af00 add r7, sp, #0 + 8002792: 6078 str r0, [r7, #4] + 8002794: 460b mov r3, r1 + 8002796: 807b strh r3, [r7, #2] if(e->code == LV_EVENT_REFR_EXT_DRAW_SIZE) { - 8002804: 687b ldr r3, [r7, #4] - 8002806: 7a1b ldrb r3, [r3, #8] - 8002808: 2b13 cmp r3, #19 - 800280a: d10e bne.n 800282a + 8002798: 687b ldr r3, [r7, #4] + 800279a: 7a1b ldrb r3, [r3, #8] + 800279c: 2b13 cmp r3, #19 + 800279e: d10e bne.n 80027be lv_coord_t * cur_size = lv_event_get_param(e); - 800280c: 6878 ldr r0, [r7, #4] - 800280e: f7ff fedb bl 80025c8 - 8002812: 60f8 str r0, [r7, #12] + 80027a0: 6878 ldr r0, [r7, #4] + 80027a2: f7ff fedb bl 800255c + 80027a6: 60f8 str r0, [r7, #12] *cur_size = LV_MAX(*cur_size, size); - 8002814: 68fb ldr r3, [r7, #12] - 8002816: f9b3 3000 ldrsh.w r3, [r3] - 800281a: f9b7 2002 ldrsh.w r2, [r7, #2] - 800281e: 4293 cmp r3, r2 - 8002820: bfb8 it lt - 8002822: 4613 movlt r3, r2 - 8002824: b21a sxth r2, r3 - 8002826: 68fb ldr r3, [r7, #12] - 8002828: 801a strh r2, [r3, #0] + 80027a8: 68fb ldr r3, [r7, #12] + 80027aa: f9b3 3000 ldrsh.w r3, [r3] + 80027ae: f9b7 2002 ldrsh.w r2, [r7, #2] + 80027b2: 4293 cmp r3, r2 + 80027b4: bfb8 it lt + 80027b6: 4613 movlt r3, r2 + 80027b8: b21a sxth r2, r3 + 80027ba: 68fb ldr r3, [r7, #12] + 80027bc: 801a strh r2, [r3, #0] } else { LV_LOG_WARN("Not interpreted with this event code"); } } - 800282a: bf00 nop - 800282c: 3710 adds r7, #16 - 800282e: 46bd mov sp, r7 - 8002830: bd80 pop {r7, pc} + 80027be: bf00 nop + 80027c0: 3710 adds r7, #16 + 80027c2: 46bd mov sp, r7 + 80027c4: bd80 pop {r7, pc} -08002832 : +080027c6 : /********************** * STATIC FUNCTIONS **********************/ static lv_event_dsc_t * lv_obj_get_event_dsc(const lv_obj_t * obj, uint32_t id) { - 8002832: b480 push {r7} - 8002834: b083 sub sp, #12 - 8002836: af00 add r7, sp, #0 - 8002838: 6078 str r0, [r7, #4] - 800283a: 6039 str r1, [r7, #0] + 80027c6: b480 push {r7} + 80027c8: b083 sub sp, #12 + 80027ca: af00 add r7, sp, #0 + 80027cc: 6078 str r0, [r7, #4] + 80027ce: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); if(!obj->spec_attr) return NULL; - 800283c: 687b ldr r3, [r7, #4] - 800283e: 689b ldr r3, [r3, #8] - 8002840: 2b00 cmp r3, #0 - 8002842: d101 bne.n 8002848 - 8002844: 2300 movs r3, #0 - 8002846: e011 b.n 800286c + 80027d0: 687b ldr r3, [r7, #4] + 80027d2: 689b ldr r3, [r3, #8] + 80027d4: 2b00 cmp r3, #0 + 80027d6: d101 bne.n 80027dc + 80027d8: 2300 movs r3, #0 + 80027da: e011 b.n 8002800 if(id >= obj->spec_attr->event_dsc_cnt) return NULL; - 8002848: 687b ldr r3, [r7, #4] - 800284a: 689b ldr r3, [r3, #8] - 800284c: 7e9b ldrb r3, [r3, #26] - 800284e: 461a mov r2, r3 - 8002850: 683b ldr r3, [r7, #0] - 8002852: 4293 cmp r3, r2 - 8002854: d301 bcc.n 800285a - 8002856: 2300 movs r3, #0 - 8002858: e008 b.n 800286c + 80027dc: 687b ldr r3, [r7, #4] + 80027de: 689b ldr r3, [r3, #8] + 80027e0: 7e9b ldrb r3, [r3, #26] + 80027e2: 461a mov r2, r3 + 80027e4: 683b ldr r3, [r7, #0] + 80027e6: 4293 cmp r3, r2 + 80027e8: d301 bcc.n 80027ee + 80027ea: 2300 movs r3, #0 + 80027ec: e008 b.n 8002800 return &obj->spec_attr->event_dsc[id]; - 800285a: 687b ldr r3, [r7, #4] - 800285c: 689b ldr r3, [r3, #8] - 800285e: 68d9 ldr r1, [r3, #12] - 8002860: 683a ldr r2, [r7, #0] - 8002862: 4613 mov r3, r2 - 8002864: 005b lsls r3, r3, #1 - 8002866: 4413 add r3, r2 - 8002868: 009b lsls r3, r3, #2 - 800286a: 440b add r3, r1 + 80027ee: 687b ldr r3, [r7, #4] + 80027f0: 689b ldr r3, [r3, #8] + 80027f2: 68d9 ldr r1, [r3, #12] + 80027f4: 683a ldr r2, [r7, #0] + 80027f6: 4613 mov r3, r2 + 80027f8: 005b lsls r3, r3, #1 + 80027fa: 4413 add r3, r2 + 80027fc: 009b lsls r3, r3, #2 + 80027fe: 440b add r3, r1 } - 800286c: 4618 mov r0, r3 - 800286e: 370c adds r7, #12 - 8002870: 46bd mov sp, r7 - 8002872: bc80 pop {r7} - 8002874: 4770 bx lr + 8002800: 4618 mov r0, r3 + 8002802: 370c adds r7, #12 + 8002804: 46bd mov sp, r7 + 8002806: bc80 pop {r7} + 8002808: 4770 bx lr -08002876 : +0800280a : static lv_res_t event_send_core(lv_event_t * e) { - 8002876: b580 push {r7, lr} - 8002878: b086 sub sp, #24 - 800287a: af00 add r7, sp, #0 - 800287c: 6078 str r0, [r7, #4] + 800280a: b580 push {r7, lr} + 800280c: b086 sub sp, #24 + 800280e: af00 add r7, sp, #0 + 8002810: 6078 str r0, [r7, #4] EVENT_TRACE("Sending event %d to %p with %p param", e->code, (void *)e->current_target, e->param); /*Call the input device's feedback callback if set*/ lv_indev_t * indev_act = lv_indev_get_act(); - 800287e: f000 fd4b bl 8003318 - 8002882: 60b8 str r0, [r7, #8] + 8002812: f000 fd4b bl 80032ac + 8002816: 60b8 str r0, [r7, #8] if(indev_act) { - 8002884: 68bb ldr r3, [r7, #8] - 8002886: 2b00 cmp r3, #0 - 8002888: d01f beq.n 80028ca + 8002818: 68bb ldr r3, [r7, #8] + 800281a: 2b00 cmp r3, #0 + 800281c: d01f beq.n 800285e if(indev_act->driver->feedback_cb) indev_act->driver->feedback_cb(indev_act->driver, e->code); - 800288a: 68bb ldr r3, [r7, #8] - 800288c: 681b ldr r3, [r3, #0] - 800288e: 689b ldr r3, [r3, #8] - 8002890: 2b00 cmp r3, #0 - 8002892: d008 beq.n 80028a6 - 8002894: 68bb ldr r3, [r7, #8] - 8002896: 681b ldr r3, [r3, #0] - 8002898: 689b ldr r3, [r3, #8] - 800289a: 68ba ldr r2, [r7, #8] - 800289c: 6810 ldr r0, [r2, #0] - 800289e: 687a ldr r2, [r7, #4] - 80028a0: 7a12 ldrb r2, [r2, #8] - 80028a2: 4611 mov r1, r2 - 80028a4: 4798 blx r3 + 800281e: 68bb ldr r3, [r7, #8] + 8002820: 681b ldr r3, [r3, #0] + 8002822: 689b ldr r3, [r3, #8] + 8002824: 2b00 cmp r3, #0 + 8002826: d008 beq.n 800283a + 8002828: 68bb ldr r3, [r7, #8] + 800282a: 681b ldr r3, [r3, #0] + 800282c: 689b ldr r3, [r3, #8] + 800282e: 68ba ldr r2, [r7, #8] + 8002830: 6810 ldr r0, [r2, #0] + 8002832: 687a ldr r2, [r7, #4] + 8002834: 7a12 ldrb r2, [r2, #8] + 8002836: 4611 mov r1, r2 + 8002838: 4798 blx r3 if(e->stop_processing) return LV_RES_OK; - 80028a6: 687b ldr r3, [r7, #4] - 80028a8: 7e1b ldrb r3, [r3, #24] - 80028aa: f003 0302 and.w r3, r3, #2 - 80028ae: b2db uxtb r3, r3 - 80028b0: 2b00 cmp r3, #0 - 80028b2: d001 beq.n 80028b8 - 80028b4: 2301 movs r3, #1 - 80028b6: e0ca b.n 8002a4e + 800283a: 687b ldr r3, [r7, #4] + 800283c: 7e1b ldrb r3, [r3, #24] + 800283e: f003 0302 and.w r3, r3, #2 + 8002842: b2db uxtb r3, r3 + 8002844: 2b00 cmp r3, #0 + 8002846: d001 beq.n 800284c + 8002848: 2301 movs r3, #1 + 800284a: e0ca b.n 80029e2 if(e->deleted) return LV_RES_INV; - 80028b8: 687b ldr r3, [r7, #4] - 80028ba: 7e1b ldrb r3, [r3, #24] - 80028bc: f003 0301 and.w r3, r3, #1 - 80028c0: b2db uxtb r3, r3 - 80028c2: 2b00 cmp r3, #0 - 80028c4: d001 beq.n 80028ca - 80028c6: 2300 movs r3, #0 - 80028c8: e0c1 b.n 8002a4e + 800284c: 687b ldr r3, [r7, #4] + 800284e: 7e1b ldrb r3, [r3, #24] + 8002850: f003 0301 and.w r3, r3, #1 + 8002854: b2db uxtb r3, r3 + 8002856: 2b00 cmp r3, #0 + 8002858: d001 beq.n 800285e + 800285a: 2300 movs r3, #0 + 800285c: e0c1 b.n 80029e2 } lv_res_t res = LV_RES_OK; - 80028ca: 2301 movs r3, #1 - 80028cc: 75fb strb r3, [r7, #23] + 800285e: 2301 movs r3, #1 + 8002860: 75fb strb r3, [r7, #23] lv_event_dsc_t * event_dsc = res == LV_RES_INV ? NULL : lv_obj_get_event_dsc(e->current_target, 0); - 80028ce: 7dfb ldrb r3, [r7, #23] - 80028d0: 2b00 cmp r3, #0 - 80028d2: d007 beq.n 80028e4 - 80028d4: 687b ldr r3, [r7, #4] - 80028d6: 685b ldr r3, [r3, #4] - 80028d8: 2100 movs r1, #0 - 80028da: 4618 mov r0, r3 - 80028dc: f7ff ffa9 bl 8002832 - 80028e0: 4603 mov r3, r0 - 80028e2: e000 b.n 80028e6 - 80028e4: 2300 movs r3, #0 - 80028e6: 613b str r3, [r7, #16] + 8002862: 7dfb ldrb r3, [r7, #23] + 8002864: 2b00 cmp r3, #0 + 8002866: d007 beq.n 8002878 + 8002868: 687b ldr r3, [r7, #4] + 800286a: 685b ldr r3, [r3, #4] + 800286c: 2100 movs r1, #0 + 800286e: 4618 mov r0, r3 + 8002870: f7ff ffa9 bl 80027c6 + 8002874: 4603 mov r3, r0 + 8002876: e000 b.n 800287a + 8002878: 2300 movs r3, #0 + 800287a: 613b str r3, [r7, #16] uint32_t i = 0; - 80028e8: 2300 movs r3, #0 - 80028ea: 60fb str r3, [r7, #12] + 800287c: 2300 movs r3, #0 + 800287e: 60fb str r3, [r7, #12] while(event_dsc && res == LV_RES_OK) { - 80028ec: e038 b.n 8002960 + 8002880: e038 b.n 80028f4 if(event_dsc->cb && ((event_dsc->filter & LV_EVENT_PREPROCESS) == LV_EVENT_PREPROCESS) - 80028ee: 693b ldr r3, [r7, #16] - 80028f0: 681b ldr r3, [r3, #0] - 80028f2: 2b00 cmp r3, #0 - 80028f4: d02a beq.n 800294c - 80028f6: 693b ldr r3, [r7, #16] - 80028f8: 7a1b ldrb r3, [r3, #8] - 80028fa: b25b sxtb r3, r3 - 80028fc: 2b00 cmp r3, #0 - 80028fe: da25 bge.n 800294c + 8002882: 693b ldr r3, [r7, #16] + 8002884: 681b ldr r3, [r3, #0] + 8002886: 2b00 cmp r3, #0 + 8002888: d02a beq.n 80028e0 + 800288a: 693b ldr r3, [r7, #16] + 800288c: 7a1b ldrb r3, [r3, #8] + 800288e: b25b sxtb r3, r3 + 8002890: 2b00 cmp r3, #0 + 8002892: da25 bge.n 80028e0 && (event_dsc->filter == (LV_EVENT_ALL | LV_EVENT_PREPROCESS) || - 8002900: 693b ldr r3, [r7, #16] - 8002902: 7a1b ldrb r3, [r3, #8] - 8002904: 2b80 cmp r3, #128 ; 0x80 - 8002906: d007 beq.n 8002918 + 8002894: 693b ldr r3, [r7, #16] + 8002896: 7a1b ldrb r3, [r3, #8] + 8002898: 2b80 cmp r3, #128 ; 0x80 + 800289a: d007 beq.n 80028ac (event_dsc->filter & ~LV_EVENT_PREPROCESS) == e->code)) { - 8002908: 693b ldr r3, [r7, #16] - 800290a: 7a1b ldrb r3, [r3, #8] - 800290c: f023 0380 bic.w r3, r3, #128 ; 0x80 - 8002910: 687a ldr r2, [r7, #4] - 8002912: 7a12 ldrb r2, [r2, #8] + 800289c: 693b ldr r3, [r7, #16] + 800289e: 7a1b ldrb r3, [r3, #8] + 80028a0: f023 0380 bic.w r3, r3, #128 ; 0x80 + 80028a4: 687a ldr r2, [r7, #4] + 80028a6: 7a12 ldrb r2, [r2, #8] && (event_dsc->filter == (LV_EVENT_ALL | LV_EVENT_PREPROCESS) || - 8002914: 4293 cmp r3, r2 - 8002916: d119 bne.n 800294c + 80028a8: 4293 cmp r3, r2 + 80028aa: d119 bne.n 80028e0 e->user_data = event_dsc->user_data; - 8002918: 693b ldr r3, [r7, #16] - 800291a: 685a ldr r2, [r3, #4] - 800291c: 687b ldr r3, [r7, #4] - 800291e: 60da str r2, [r3, #12] + 80028ac: 693b ldr r3, [r7, #16] + 80028ae: 685a ldr r2, [r3, #4] + 80028b0: 687b ldr r3, [r7, #4] + 80028b2: 60da str r2, [r3, #12] event_dsc->cb(e); - 8002920: 693b ldr r3, [r7, #16] - 8002922: 681b ldr r3, [r3, #0] - 8002924: 6878 ldr r0, [r7, #4] - 8002926: 4798 blx r3 + 80028b4: 693b ldr r3, [r7, #16] + 80028b6: 681b ldr r3, [r3, #0] + 80028b8: 6878 ldr r0, [r7, #4] + 80028ba: 4798 blx r3 if(e->stop_processing) return LV_RES_OK; - 8002928: 687b ldr r3, [r7, #4] - 800292a: 7e1b ldrb r3, [r3, #24] - 800292c: f003 0302 and.w r3, r3, #2 - 8002930: b2db uxtb r3, r3 - 8002932: 2b00 cmp r3, #0 - 8002934: d001 beq.n 800293a - 8002936: 2301 movs r3, #1 - 8002938: e089 b.n 8002a4e + 80028bc: 687b ldr r3, [r7, #4] + 80028be: 7e1b ldrb r3, [r3, #24] + 80028c0: f003 0302 and.w r3, r3, #2 + 80028c4: b2db uxtb r3, r3 + 80028c6: 2b00 cmp r3, #0 + 80028c8: d001 beq.n 80028ce + 80028ca: 2301 movs r3, #1 + 80028cc: e089 b.n 80029e2 /*Stop if the object is deleted*/ if(e->deleted) return LV_RES_INV; - 800293a: 687b ldr r3, [r7, #4] - 800293c: 7e1b ldrb r3, [r3, #24] - 800293e: f003 0301 and.w r3, r3, #1 - 8002942: b2db uxtb r3, r3 - 8002944: 2b00 cmp r3, #0 - 8002946: d001 beq.n 800294c - 8002948: 2300 movs r3, #0 - 800294a: e080 b.n 8002a4e + 80028ce: 687b ldr r3, [r7, #4] + 80028d0: 7e1b ldrb r3, [r3, #24] + 80028d2: f003 0301 and.w r3, r3, #1 + 80028d6: b2db uxtb r3, r3 + 80028d8: 2b00 cmp r3, #0 + 80028da: d001 beq.n 80028e0 + 80028dc: 2300 movs r3, #0 + 80028de: e080 b.n 80029e2 } i++; - 800294c: 68fb ldr r3, [r7, #12] - 800294e: 3301 adds r3, #1 - 8002950: 60fb str r3, [r7, #12] + 80028e0: 68fb ldr r3, [r7, #12] + 80028e2: 3301 adds r3, #1 + 80028e4: 60fb str r3, [r7, #12] event_dsc = lv_obj_get_event_dsc(e->current_target, i); - 8002952: 687b ldr r3, [r7, #4] - 8002954: 685b ldr r3, [r3, #4] - 8002956: 68f9 ldr r1, [r7, #12] - 8002958: 4618 mov r0, r3 - 800295a: f7ff ff6a bl 8002832 - 800295e: 6138 str r0, [r7, #16] + 80028e6: 687b ldr r3, [r7, #4] + 80028e8: 685b ldr r3, [r3, #4] + 80028ea: 68f9 ldr r1, [r7, #12] + 80028ec: 4618 mov r0, r3 + 80028ee: f7ff ff6a bl 80027c6 + 80028f2: 6138 str r0, [r7, #16] while(event_dsc && res == LV_RES_OK) { - 8002960: 693b ldr r3, [r7, #16] - 8002962: 2b00 cmp r3, #0 - 8002964: d002 beq.n 800296c - 8002966: 7dfb ldrb r3, [r7, #23] - 8002968: 2b01 cmp r3, #1 - 800296a: d0c0 beq.n 80028ee + 80028f4: 693b ldr r3, [r7, #16] + 80028f6: 2b00 cmp r3, #0 + 80028f8: d002 beq.n 8002900 + 80028fa: 7dfb ldrb r3, [r7, #23] + 80028fc: 2b01 cmp r3, #1 + 80028fe: d0c0 beq.n 8002882 } res = lv_obj_event_base(NULL, e); - 800296c: 6879 ldr r1, [r7, #4] - 800296e: 2000 movs r0, #0 - 8002970: f7ff fdc8 bl 8002504 - 8002974: 4603 mov r3, r0 - 8002976: 75fb strb r3, [r7, #23] + 8002900: 6879 ldr r1, [r7, #4] + 8002902: 2000 movs r0, #0 + 8002904: f7ff fdc8 bl 8002498 + 8002908: 4603 mov r3, r0 + 800290a: 75fb strb r3, [r7, #23] event_dsc = res == LV_RES_INV ? NULL : lv_obj_get_event_dsc(e->current_target, 0); - 8002978: 7dfb ldrb r3, [r7, #23] - 800297a: 2b00 cmp r3, #0 - 800297c: d007 beq.n 800298e - 800297e: 687b ldr r3, [r7, #4] - 8002980: 685b ldr r3, [r3, #4] - 8002982: 2100 movs r1, #0 - 8002984: 4618 mov r0, r3 - 8002986: f7ff ff54 bl 8002832 - 800298a: 4603 mov r3, r0 - 800298c: e000 b.n 8002990 - 800298e: 2300 movs r3, #0 - 8002990: 613b str r3, [r7, #16] + 800290c: 7dfb ldrb r3, [r7, #23] + 800290e: 2b00 cmp r3, #0 + 8002910: d007 beq.n 8002922 + 8002912: 687b ldr r3, [r7, #4] + 8002914: 685b ldr r3, [r3, #4] + 8002916: 2100 movs r1, #0 + 8002918: 4618 mov r0, r3 + 800291a: f7ff ff54 bl 80027c6 + 800291e: 4603 mov r3, r0 + 8002920: e000 b.n 8002924 + 8002922: 2300 movs r3, #0 + 8002924: 613b str r3, [r7, #16] i = 0; - 8002992: 2300 movs r3, #0 - 8002994: 60fb str r3, [r7, #12] + 8002926: 2300 movs r3, #0 + 8002928: 60fb str r3, [r7, #12] while(event_dsc && res == LV_RES_OK) { - 8002996: e036 b.n 8002a06 + 800292a: e036 b.n 800299a if(event_dsc->cb && ((event_dsc->filter & LV_EVENT_PREPROCESS) == 0) - 8002998: 693b ldr r3, [r7, #16] - 800299a: 681b ldr r3, [r3, #0] - 800299c: 2b00 cmp r3, #0 - 800299e: d028 beq.n 80029f2 - 80029a0: 693b ldr r3, [r7, #16] - 80029a2: 7a1b ldrb r3, [r3, #8] - 80029a4: b25b sxtb r3, r3 - 80029a6: 2b00 cmp r3, #0 - 80029a8: db23 blt.n 80029f2 + 800292c: 693b ldr r3, [r7, #16] + 800292e: 681b ldr r3, [r3, #0] + 8002930: 2b00 cmp r3, #0 + 8002932: d028 beq.n 8002986 + 8002934: 693b ldr r3, [r7, #16] + 8002936: 7a1b ldrb r3, [r3, #8] + 8002938: b25b sxtb r3, r3 + 800293a: 2b00 cmp r3, #0 + 800293c: db23 blt.n 8002986 && (event_dsc->filter == LV_EVENT_ALL || event_dsc->filter == e->code)) { - 80029aa: 693b ldr r3, [r7, #16] - 80029ac: 7a1b ldrb r3, [r3, #8] - 80029ae: 2b00 cmp r3, #0 - 80029b0: d005 beq.n 80029be - 80029b2: 693b ldr r3, [r7, #16] - 80029b4: 7a1a ldrb r2, [r3, #8] - 80029b6: 687b ldr r3, [r7, #4] - 80029b8: 7a1b ldrb r3, [r3, #8] - 80029ba: 429a cmp r2, r3 - 80029bc: d119 bne.n 80029f2 + 800293e: 693b ldr r3, [r7, #16] + 8002940: 7a1b ldrb r3, [r3, #8] + 8002942: 2b00 cmp r3, #0 + 8002944: d005 beq.n 8002952 + 8002946: 693b ldr r3, [r7, #16] + 8002948: 7a1a ldrb r2, [r3, #8] + 800294a: 687b ldr r3, [r7, #4] + 800294c: 7a1b ldrb r3, [r3, #8] + 800294e: 429a cmp r2, r3 + 8002950: d119 bne.n 8002986 e->user_data = event_dsc->user_data; - 80029be: 693b ldr r3, [r7, #16] - 80029c0: 685a ldr r2, [r3, #4] - 80029c2: 687b ldr r3, [r7, #4] - 80029c4: 60da str r2, [r3, #12] + 8002952: 693b ldr r3, [r7, #16] + 8002954: 685a ldr r2, [r3, #4] + 8002956: 687b ldr r3, [r7, #4] + 8002958: 60da str r2, [r3, #12] event_dsc->cb(e); - 80029c6: 693b ldr r3, [r7, #16] - 80029c8: 681b ldr r3, [r3, #0] - 80029ca: 6878 ldr r0, [r7, #4] - 80029cc: 4798 blx r3 + 800295a: 693b ldr r3, [r7, #16] + 800295c: 681b ldr r3, [r3, #0] + 800295e: 6878 ldr r0, [r7, #4] + 8002960: 4798 blx r3 if(e->stop_processing) return LV_RES_OK; - 80029ce: 687b ldr r3, [r7, #4] - 80029d0: 7e1b ldrb r3, [r3, #24] - 80029d2: f003 0302 and.w r3, r3, #2 - 80029d6: b2db uxtb r3, r3 - 80029d8: 2b00 cmp r3, #0 - 80029da: d001 beq.n 80029e0 - 80029dc: 2301 movs r3, #1 - 80029de: e036 b.n 8002a4e + 8002962: 687b ldr r3, [r7, #4] + 8002964: 7e1b ldrb r3, [r3, #24] + 8002966: f003 0302 and.w r3, r3, #2 + 800296a: b2db uxtb r3, r3 + 800296c: 2b00 cmp r3, #0 + 800296e: d001 beq.n 8002974 + 8002970: 2301 movs r3, #1 + 8002972: e036 b.n 80029e2 /*Stop if the object is deleted*/ if(e->deleted) return LV_RES_INV; - 80029e0: 687b ldr r3, [r7, #4] - 80029e2: 7e1b ldrb r3, [r3, #24] - 80029e4: f003 0301 and.w r3, r3, #1 - 80029e8: b2db uxtb r3, r3 - 80029ea: 2b00 cmp r3, #0 - 80029ec: d001 beq.n 80029f2 - 80029ee: 2300 movs r3, #0 - 80029f0: e02d b.n 8002a4e + 8002974: 687b ldr r3, [r7, #4] + 8002976: 7e1b ldrb r3, [r3, #24] + 8002978: f003 0301 and.w r3, r3, #1 + 800297c: b2db uxtb r3, r3 + 800297e: 2b00 cmp r3, #0 + 8002980: d001 beq.n 8002986 + 8002982: 2300 movs r3, #0 + 8002984: e02d b.n 80029e2 } i++; - 80029f2: 68fb ldr r3, [r7, #12] - 80029f4: 3301 adds r3, #1 - 80029f6: 60fb str r3, [r7, #12] + 8002986: 68fb ldr r3, [r7, #12] + 8002988: 3301 adds r3, #1 + 800298a: 60fb str r3, [r7, #12] event_dsc = lv_obj_get_event_dsc(e->current_target, i); - 80029f8: 687b ldr r3, [r7, #4] - 80029fa: 685b ldr r3, [r3, #4] - 80029fc: 68f9 ldr r1, [r7, #12] - 80029fe: 4618 mov r0, r3 - 8002a00: f7ff ff17 bl 8002832 - 8002a04: 6138 str r0, [r7, #16] + 800298c: 687b ldr r3, [r7, #4] + 800298e: 685b ldr r3, [r3, #4] + 8002990: 68f9 ldr r1, [r7, #12] + 8002992: 4618 mov r0, r3 + 8002994: f7ff ff17 bl 80027c6 + 8002998: 6138 str r0, [r7, #16] while(event_dsc && res == LV_RES_OK) { - 8002a06: 693b ldr r3, [r7, #16] - 8002a08: 2b00 cmp r3, #0 - 8002a0a: d002 beq.n 8002a12 - 8002a0c: 7dfb ldrb r3, [r7, #23] - 8002a0e: 2b01 cmp r3, #1 - 8002a10: d0c2 beq.n 8002998 + 800299a: 693b ldr r3, [r7, #16] + 800299c: 2b00 cmp r3, #0 + 800299e: d002 beq.n 80029a6 + 80029a0: 7dfb ldrb r3, [r7, #23] + 80029a2: 2b01 cmp r3, #1 + 80029a4: d0c2 beq.n 800292c } if(res == LV_RES_OK && e->current_target->parent && event_is_bubbled(e)) { - 8002a12: 7dfb ldrb r3, [r7, #23] - 8002a14: 2b01 cmp r3, #1 - 8002a16: d119 bne.n 8002a4c - 8002a18: 687b ldr r3, [r7, #4] - 8002a1a: 685b ldr r3, [r3, #4] - 8002a1c: 685b ldr r3, [r3, #4] - 8002a1e: 2b00 cmp r3, #0 - 8002a20: d014 beq.n 8002a4c - 8002a22: 6878 ldr r0, [r7, #4] - 8002a24: f000 f818 bl 8002a58 - 8002a28: 4603 mov r3, r0 - 8002a2a: 2b00 cmp r3, #0 - 8002a2c: d00e beq.n 8002a4c + 80029a6: 7dfb ldrb r3, [r7, #23] + 80029a8: 2b01 cmp r3, #1 + 80029aa: d119 bne.n 80029e0 + 80029ac: 687b ldr r3, [r7, #4] + 80029ae: 685b ldr r3, [r3, #4] + 80029b0: 685b ldr r3, [r3, #4] + 80029b2: 2b00 cmp r3, #0 + 80029b4: d014 beq.n 80029e0 + 80029b6: 6878 ldr r0, [r7, #4] + 80029b8: f000 f818 bl 80029ec + 80029bc: 4603 mov r3, r0 + 80029be: 2b00 cmp r3, #0 + 80029c0: d00e beq.n 80029e0 e->current_target = e->current_target->parent; - 8002a2e: 687b ldr r3, [r7, #4] - 8002a30: 685b ldr r3, [r3, #4] - 8002a32: 685a ldr r2, [r3, #4] - 8002a34: 687b ldr r3, [r7, #4] - 8002a36: 605a str r2, [r3, #4] + 80029c2: 687b ldr r3, [r7, #4] + 80029c4: 685b ldr r3, [r3, #4] + 80029c6: 685a ldr r2, [r3, #4] + 80029c8: 687b ldr r3, [r7, #4] + 80029ca: 605a str r2, [r3, #4] res = event_send_core(e); - 8002a38: 6878 ldr r0, [r7, #4] - 8002a3a: f7ff ff1c bl 8002876 - 8002a3e: 4603 mov r3, r0 - 8002a40: 75fb strb r3, [r7, #23] + 80029cc: 6878 ldr r0, [r7, #4] + 80029ce: f7ff ff1c bl 800280a + 80029d2: 4603 mov r3, r0 + 80029d4: 75fb strb r3, [r7, #23] if(res != LV_RES_OK) return LV_RES_INV; - 8002a42: 7dfb ldrb r3, [r7, #23] - 8002a44: 2b01 cmp r3, #1 - 8002a46: d001 beq.n 8002a4c - 8002a48: 2300 movs r3, #0 - 8002a4a: e000 b.n 8002a4e + 80029d6: 7dfb ldrb r3, [r7, #23] + 80029d8: 2b01 cmp r3, #1 + 80029da: d001 beq.n 80029e0 + 80029dc: 2300 movs r3, #0 + 80029de: e000 b.n 80029e2 } return res; - 8002a4c: 7dfb ldrb r3, [r7, #23] + 80029e0: 7dfb ldrb r3, [r7, #23] } - 8002a4e: 4618 mov r0, r3 - 8002a50: 3718 adds r7, #24 - 8002a52: 46bd mov sp, r7 - 8002a54: bd80 pop {r7, pc} + 80029e2: 4618 mov r0, r3 + 80029e4: 3718 adds r7, #24 + 80029e6: 46bd mov sp, r7 + 80029e8: bd80 pop {r7, pc} ... -08002a58 : +080029ec : static bool event_is_bubbled(lv_event_t * e) { - 8002a58: b580 push {r7, lr} - 8002a5a: b082 sub sp, #8 - 8002a5c: af00 add r7, sp, #0 - 8002a5e: 6078 str r0, [r7, #4] + 80029ec: b580 push {r7, lr} + 80029ee: b082 sub sp, #8 + 80029f0: af00 add r7, sp, #0 + 80029f2: 6078 str r0, [r7, #4] if(e->stop_bubbling) return false; - 8002a60: 687b ldr r3, [r7, #4] - 8002a62: 7e1b ldrb r3, [r3, #24] - 8002a64: f003 0304 and.w r3, r3, #4 - 8002a68: b2db uxtb r3, r3 - 8002a6a: 2b00 cmp r3, #0 - 8002a6c: d001 beq.n 8002a72 - 8002a6e: 2300 movs r3, #0 - 8002a70: e02f b.n 8002ad2 + 80029f4: 687b ldr r3, [r7, #4] + 80029f6: 7e1b ldrb r3, [r3, #24] + 80029f8: f003 0304 and.w r3, r3, #4 + 80029fc: b2db uxtb r3, r3 + 80029fe: 2b00 cmp r3, #0 + 8002a00: d001 beq.n 8002a06 + 8002a02: 2300 movs r3, #0 + 8002a04: e02f b.n 8002a66 /*Event codes that always bubble*/ switch(e->code) { - 8002a72: 687b ldr r3, [r7, #4] - 8002a74: 7a1b ldrb r3, [r3, #8] - 8002a76: 3b23 subs r3, #35 ; 0x23 - 8002a78: 2b01 cmp r3, #1 - 8002a7a: d801 bhi.n 8002a80 + 8002a06: 687b ldr r3, [r7, #4] + 8002a08: 7a1b ldrb r3, [r3, #8] + 8002a0a: 3b23 subs r3, #35 ; 0x23 + 8002a0c: 2b01 cmp r3, #1 + 8002a0e: d801 bhi.n 8002a14 case LV_EVENT_CHILD_CREATED: case LV_EVENT_CHILD_DELETED: return true; - 8002a7c: 2301 movs r3, #1 - 8002a7e: e028 b.n 8002ad2 + 8002a10: 2301 movs r3, #1 + 8002a12: e028 b.n 8002a66 default: break; - 8002a80: bf00 nop + 8002a14: bf00 nop } /*Check other codes only if bubbling is enabled*/ if(lv_obj_has_flag(e->current_target, LV_OBJ_FLAG_EVENT_BUBBLE) == false) return false; - 8002a82: 687b ldr r3, [r7, #4] - 8002a84: 685b ldr r3, [r3, #4] - 8002a86: f44f 4180 mov.w r1, #16384 ; 0x4000 - 8002a8a: 4618 mov r0, r3 - 8002a8c: f003 fe79 bl 8006782 - 8002a90: 4603 mov r3, r0 - 8002a92: f083 0301 eor.w r3, r3, #1 - 8002a96: b2db uxtb r3, r3 - 8002a98: 2b00 cmp r3, #0 - 8002a9a: d001 beq.n 8002aa0 - 8002a9c: 2300 movs r3, #0 - 8002a9e: e018 b.n 8002ad2 + 8002a16: 687b ldr r3, [r7, #4] + 8002a18: 685b ldr r3, [r3, #4] + 8002a1a: f44f 4180 mov.w r1, #16384 ; 0x4000 + 8002a1e: 4618 mov r0, r3 + 8002a20: f003 fe79 bl 8006716 + 8002a24: 4603 mov r3, r0 + 8002a26: f083 0301 eor.w r3, r3, #1 + 8002a2a: b2db uxtb r3, r3 + 8002a2c: 2b00 cmp r3, #0 + 8002a2e: d001 beq.n 8002a34 + 8002a30: 2300 movs r3, #0 + 8002a32: e018 b.n 8002a66 switch(e->code) { - 8002aa0: 687b ldr r3, [r7, #4] - 8002aa2: 7a1b ldrb r3, [r3, #8] - 8002aa4: 3b11 subs r3, #17 - 8002aa6: 2b1b cmp r3, #27 - 8002aa8: bf8c ite hi - 8002aaa: 2201 movhi r2, #1 - 8002aac: 2200 movls r2, #0 - 8002aae: b2d2 uxtb r2, r2 - 8002ab0: 2a00 cmp r2, #0 - 8002ab2: d10d bne.n 8002ad0 - 8002ab4: 4a09 ldr r2, [pc, #36] ; (8002adc ) - 8002ab6: fa22 f303 lsr.w r3, r2, r3 - 8002aba: f003 0301 and.w r3, r3, #1 - 8002abe: 2b00 cmp r3, #0 - 8002ac0: bf14 ite ne - 8002ac2: 2301 movne r3, #1 - 8002ac4: 2300 moveq r3, #0 - 8002ac6: b2db uxtb r3, r3 - 8002ac8: 2b00 cmp r3, #0 - 8002aca: d001 beq.n 8002ad0 + 8002a34: 687b ldr r3, [r7, #4] + 8002a36: 7a1b ldrb r3, [r3, #8] + 8002a38: 3b11 subs r3, #17 + 8002a3a: 2b1b cmp r3, #27 + 8002a3c: bf8c ite hi + 8002a3e: 2201 movhi r2, #1 + 8002a40: 2200 movls r2, #0 + 8002a42: b2d2 uxtb r2, r2 + 8002a44: 2a00 cmp r2, #0 + 8002a46: d10d bne.n 8002a64 + 8002a48: 4a09 ldr r2, [pc, #36] ; (8002a70 ) + 8002a4a: fa22 f303 lsr.w r3, r2, r3 + 8002a4e: f003 0301 and.w r3, r3, #1 + 8002a52: 2b00 cmp r3, #0 + 8002a54: bf14 ite ne + 8002a56: 2301 movne r3, #1 + 8002a58: 2300 moveq r3, #0 + 8002a5a: b2db uxtb r3, r3 + 8002a5c: 2b00 cmp r3, #0 + 8002a5e: d001 beq.n 8002a64 case LV_EVENT_CHILD_DELETED: case LV_EVENT_CHILD_CHANGED: case LV_EVENT_SIZE_CHANGED: case LV_EVENT_STYLE_CHANGED: case LV_EVENT_GET_SELF_SIZE: return false; - 8002acc: 2300 movs r3, #0 - 8002ace: e000 b.n 8002ad2 + 8002a60: 2300 movs r3, #0 + 8002a62: e000 b.n 8002a66 default: return true; - 8002ad0: 2301 movs r3, #1 + 8002a64: 2301 movs r3, #1 } } - 8002ad2: 4618 mov r0, r3 - 8002ad4: 3708 adds r7, #8 - 8002ad6: 46bd mov sp, r7 - 8002ad8: bd80 pop {r7, pc} - 8002ada: bf00 nop - 8002adc: 0b0f27ff .word 0x0b0f27ff + 8002a66: 4618 mov r0, r3 + 8002a68: 3708 adds r7, #8 + 8002a6a: 46bd mov sp, r7 + 8002a6c: bd80 pop {r7, pc} + 8002a6e: bf00 nop + 8002a70: 0b0f27ff .word 0x0b0f27ff -08002ae0 <_lv_group_init>: +08002a74 <_lv_group_init>: /********************** * GLOBAL FUNCTIONS **********************/ void _lv_group_init(void) { - 8002ae0: b580 push {r7, lr} - 8002ae2: af00 add r7, sp, #0 + 8002a74: b580 push {r7, lr} + 8002a76: af00 add r7, sp, #0 _lv_ll_init(&LV_GC_ROOT(_lv_group_ll), sizeof(lv_group_t)); - 8002ae4: 211c movs r1, #28 - 8002ae6: 4802 ldr r0, [pc, #8] ; (8002af0 <_lv_group_init+0x10>) - 8002ae8: f02f fb3a bl 8032160 <_lv_ll_init> + 8002a78: 211c movs r1, #28 + 8002a7a: 4802 ldr r0, [pc, #8] ; (8002a84 <_lv_group_init+0x10>) + 8002a7c: f02f fb26 bl 80320cc <_lv_ll_init> } - 8002aec: bf00 nop - 8002aee: bd80 pop {r7, pc} - 8002af0: 20001d40 .word 0x20001d40 + 8002a80: bf00 nop + 8002a82: bd80 pop {r7, pc} + 8002a84: 20001d40 .word 0x20001d40 -08002af4 : +08002a88 : { default_group = group; } lv_group_t * lv_group_get_default(void) { - 8002af4: b480 push {r7} - 8002af6: af00 add r7, sp, #0 + 8002a88: b480 push {r7} + 8002a8a: af00 add r7, sp, #0 return default_group; - 8002af8: 4b02 ldr r3, [pc, #8] ; (8002b04 ) - 8002afa: 681b ldr r3, [r3, #0] + 8002a8c: 4b02 ldr r3, [pc, #8] ; (8002a98 ) + 8002a8e: 681b ldr r3, [r3, #0] } - 8002afc: 4618 mov r0, r3 - 8002afe: 46bd mov sp, r7 - 8002b00: bc80 pop {r7} - 8002b02: 4770 bx lr - 8002b04: 20001af0 .word 0x20001af0 + 8002a90: 4618 mov r0, r3 + 8002a92: 46bd mov sp, r7 + 8002a94: bc80 pop {r7} + 8002a96: 4770 bx lr + 8002a98: 20001af0 .word 0x20001af0 -08002b08 : +08002a9c : void lv_group_add_obj(lv_group_t * group, lv_obj_t * obj) { - 8002b08: b580 push {r7, lr} - 8002b0a: b086 sub sp, #24 - 8002b0c: af00 add r7, sp, #0 - 8002b0e: 6078 str r0, [r7, #4] - 8002b10: 6039 str r1, [r7, #0] + 8002a9c: b580 push {r7, lr} + 8002a9e: b086 sub sp, #24 + 8002aa0: af00 add r7, sp, #0 + 8002aa2: 6078 str r0, [r7, #4] + 8002aa4: 6039 str r1, [r7, #0] if(group == NULL) return; - 8002b12: 687b ldr r3, [r7, #4] - 8002b14: 2b00 cmp r3, #0 - 8002b16: d050 beq.n 8002bba + 8002aa6: 687b ldr r3, [r7, #4] + 8002aa8: 2b00 cmp r3, #0 + 8002aaa: d050 beq.n 8002b4e LV_LOG_TRACE("begin"); /*Do not add the object twice*/ lv_obj_t ** obj_i; _LV_LL_READ(&group->obj_ll, obj_i) { - 8002b18: 687b ldr r3, [r7, #4] - 8002b1a: 4618 mov r0, r3 - 8002b1c: f02f fc1e bl 803235c <_lv_ll_get_head> - 8002b20: 6178 str r0, [r7, #20] - 8002b22: e00a b.n 8002b3a + 8002aac: 687b ldr r3, [r7, #4] + 8002aae: 4618 mov r0, r3 + 8002ab0: f02f fc0a bl 80322c8 <_lv_ll_get_head> + 8002ab4: 6178 str r0, [r7, #20] + 8002ab6: e00a b.n 8002ace if((*obj_i) == obj) { - 8002b24: 697b ldr r3, [r7, #20] - 8002b26: 681b ldr r3, [r3, #0] - 8002b28: 683a ldr r2, [r7, #0] - 8002b2a: 429a cmp r2, r3 - 8002b2c: d047 beq.n 8002bbe + 8002ab8: 697b ldr r3, [r7, #20] + 8002aba: 681b ldr r3, [r3, #0] + 8002abc: 683a ldr r2, [r7, #0] + 8002abe: 429a cmp r2, r3 + 8002ac0: d047 beq.n 8002b52 _LV_LL_READ(&group->obj_ll, obj_i) { - 8002b2e: 687b ldr r3, [r7, #4] - 8002b30: 6979 ldr r1, [r7, #20] - 8002b32: 4618 mov r0, r3 - 8002b34: f02f fc32 bl 803239c <_lv_ll_get_next> - 8002b38: 6178 str r0, [r7, #20] - 8002b3a: 697b ldr r3, [r7, #20] - 8002b3c: 2b00 cmp r3, #0 - 8002b3e: d1f1 bne.n 8002b24 + 8002ac2: 687b ldr r3, [r7, #4] + 8002ac4: 6979 ldr r1, [r7, #20] + 8002ac6: 4618 mov r0, r3 + 8002ac8: f02f fc1e bl 8032308 <_lv_ll_get_next> + 8002acc: 6178 str r0, [r7, #20] + 8002ace: 697b ldr r3, [r7, #20] + 8002ad0: 2b00 cmp r3, #0 + 8002ad2: d1f1 bne.n 8002ab8 return; } } /*If the object is already in a group and focused then refocus it*/ lv_group_t * group_cur = lv_obj_get_group(obj); - 8002b40: 6838 ldr r0, [r7, #0] - 8002b42: f003 fe65 bl 8006810 - 8002b46: 6138 str r0, [r7, #16] + 8002ad4: 6838 ldr r0, [r7, #0] + 8002ad6: f003 fe65 bl 80067a4 + 8002ada: 6138 str r0, [r7, #16] if(group_cur) { - 8002b48: 693b ldr r3, [r7, #16] - 8002b4a: 2b00 cmp r3, #0 - 8002b4c: d00f beq.n 8002b6e + 8002adc: 693b ldr r3, [r7, #16] + 8002ade: 2b00 cmp r3, #0 + 8002ae0: d00f beq.n 8002b02 if(obj->spec_attr->group_p && *(obj->spec_attr->group_p->obj_focus) == obj) { - 8002b4e: 683b ldr r3, [r7, #0] - 8002b50: 689b ldr r3, [r3, #8] - 8002b52: 689b ldr r3, [r3, #8] - 8002b54: 2b00 cmp r3, #0 - 8002b56: d00a beq.n 8002b6e - 8002b58: 683b ldr r3, [r7, #0] - 8002b5a: 689b ldr r3, [r3, #8] - 8002b5c: 689b ldr r3, [r3, #8] - 8002b5e: 68db ldr r3, [r3, #12] - 8002b60: 681b ldr r3, [r3, #0] - 8002b62: 683a ldr r2, [r7, #0] - 8002b64: 429a cmp r2, r3 - 8002b66: d102 bne.n 8002b6e + 8002ae2: 683b ldr r3, [r7, #0] + 8002ae4: 689b ldr r3, [r3, #8] + 8002ae6: 689b ldr r3, [r3, #8] + 8002ae8: 2b00 cmp r3, #0 + 8002aea: d00a beq.n 8002b02 + 8002aec: 683b ldr r3, [r7, #0] + 8002aee: 689b ldr r3, [r3, #8] + 8002af0: 689b ldr r3, [r3, #8] + 8002af2: 68db ldr r3, [r3, #12] + 8002af4: 681b ldr r3, [r3, #0] + 8002af6: 683a ldr r2, [r7, #0] + 8002af8: 429a cmp r2, r3 + 8002afa: d102 bne.n 8002b02 lv_group_refocus(group_cur); - 8002b68: 6938 ldr r0, [r7, #16] - 8002b6a: f000 f9ea bl 8002f42 + 8002afc: 6938 ldr r0, [r7, #16] + 8002afe: f000 f9ea bl 8002ed6 LV_LOG_INFO("changing object's group"); } } if(obj->spec_attr == NULL) lv_obj_allocate_spec_attr(obj); - 8002b6e: 683b ldr r3, [r7, #0] - 8002b70: 689b ldr r3, [r3, #8] - 8002b72: 2b00 cmp r3, #0 - 8002b74: d102 bne.n 8002b7c - 8002b76: 6838 ldr r0, [r7, #0] - 8002b78: f003 fe5c bl 8006834 + 8002b02: 683b ldr r3, [r7, #0] + 8002b04: 689b ldr r3, [r3, #8] + 8002b06: 2b00 cmp r3, #0 + 8002b08: d102 bne.n 8002b10 + 8002b0a: 6838 ldr r0, [r7, #0] + 8002b0c: f003 fe5c bl 80067c8 obj->spec_attr->group_p = group; - 8002b7c: 683b ldr r3, [r7, #0] - 8002b7e: 689b ldr r3, [r3, #8] - 8002b80: 687a ldr r2, [r7, #4] - 8002b82: 609a str r2, [r3, #8] + 8002b10: 683b ldr r3, [r7, #0] + 8002b12: 689b ldr r3, [r3, #8] + 8002b14: 687a ldr r2, [r7, #4] + 8002b16: 609a str r2, [r3, #8] lv_obj_t ** next = _lv_ll_ins_tail(&group->obj_ll); - 8002b84: 687b ldr r3, [r7, #4] - 8002b86: 4618 mov r0, r3 - 8002b88: f02f fb36 bl 80321f8 <_lv_ll_ins_tail> - 8002b8c: 60f8 str r0, [r7, #12] + 8002b18: 687b ldr r3, [r7, #4] + 8002b1a: 4618 mov r0, r3 + 8002b1c: f02f fb22 bl 8032164 <_lv_ll_ins_tail> + 8002b20: 60f8 str r0, [r7, #12] LV_ASSERT_MALLOC(next); - 8002b8e: 68fb ldr r3, [r7, #12] - 8002b90: 2b00 cmp r3, #0 - 8002b92: d100 bne.n 8002b96 - 8002b94: e7fe b.n 8002b94 + 8002b22: 68fb ldr r3, [r7, #12] + 8002b24: 2b00 cmp r3, #0 + 8002b26: d100 bne.n 8002b2a + 8002b28: e7fe b.n 8002b28 if(next == NULL) return; - 8002b96: 68fb ldr r3, [r7, #12] - 8002b98: 2b00 cmp r3, #0 - 8002b9a: d012 beq.n 8002bc2 + 8002b2a: 68fb ldr r3, [r7, #12] + 8002b2c: 2b00 cmp r3, #0 + 8002b2e: d012 beq.n 8002b56 *next = obj; - 8002b9c: 68fb ldr r3, [r7, #12] - 8002b9e: 683a ldr r2, [r7, #0] - 8002ba0: 601a str r2, [r3, #0] + 8002b30: 68fb ldr r3, [r7, #12] + 8002b32: 683a ldr r2, [r7, #0] + 8002b34: 601a str r2, [r3, #0] /*If the head and the tail is equal then there is only one object in the linked list. *In this case automatically activate it*/ if(_lv_ll_get_head(&group->obj_ll) == next) { - 8002ba2: 687b ldr r3, [r7, #4] - 8002ba4: 4618 mov r0, r3 - 8002ba6: f02f fbd9 bl 803235c <_lv_ll_get_head> - 8002baa: 4602 mov r2, r0 - 8002bac: 68fb ldr r3, [r7, #12] - 8002bae: 4293 cmp r3, r2 - 8002bb0: d108 bne.n 8002bc4 + 8002b36: 687b ldr r3, [r7, #4] + 8002b38: 4618 mov r0, r3 + 8002b3a: f02f fbc5 bl 80322c8 <_lv_ll_get_head> + 8002b3e: 4602 mov r2, r0 + 8002b40: 68fb ldr r3, [r7, #12] + 8002b42: 4293 cmp r3, r2 + 8002b44: d108 bne.n 8002b58 lv_group_refocus(group); - 8002bb2: 6878 ldr r0, [r7, #4] - 8002bb4: f000 f9c5 bl 8002f42 - 8002bb8: e004 b.n 8002bc4 + 8002b46: 6878 ldr r0, [r7, #4] + 8002b48: f000 f9c5 bl 8002ed6 + 8002b4c: e004 b.n 8002b58 if(group == NULL) return; - 8002bba: bf00 nop - 8002bbc: e002 b.n 8002bc4 + 8002b4e: bf00 nop + 8002b50: e002 b.n 8002b58 return; - 8002bbe: bf00 nop - 8002bc0: e000 b.n 8002bc4 + 8002b52: bf00 nop + 8002b54: e000 b.n 8002b58 if(next == NULL) return; - 8002bc2: bf00 nop + 8002b56: bf00 nop } LV_LOG_TRACE("finished"); } - 8002bc4: 3718 adds r7, #24 - 8002bc6: 46bd mov sp, r7 - 8002bc8: bd80 pop {r7, pc} + 8002b58: 3718 adds r7, #24 + 8002b5a: 46bd mov sp, r7 + 8002b5c: bd80 pop {r7, pc} -08002bca : +08002b5e : else if(*g1->obj_focus == obj2) lv_group_focus_obj(obj1); } void lv_group_remove_obj(lv_obj_t * obj) { - 8002bca: b590 push {r4, r7, lr} - 8002bcc: b085 sub sp, #20 - 8002bce: af00 add r7, sp, #0 - 8002bd0: 6078 str r0, [r7, #4] + 8002b5e: b590 push {r4, r7, lr} + 8002b60: b085 sub sp, #20 + 8002b62: af00 add r7, sp, #0 + 8002b64: 6078 str r0, [r7, #4] lv_group_t * g = lv_obj_get_group(obj); - 8002bd2: 6878 ldr r0, [r7, #4] - 8002bd4: f003 fe1c bl 8006810 - 8002bd8: 60b8 str r0, [r7, #8] + 8002b66: 6878 ldr r0, [r7, #4] + 8002b68: f003 fe1c bl 80067a4 + 8002b6c: 60b8 str r0, [r7, #8] if(g == NULL) return; - 8002bda: 68bb ldr r3, [r7, #8] - 8002bdc: 2b00 cmp r3, #0 - 8002bde: d06a beq.n 8002cb6 + 8002b6e: 68bb ldr r3, [r7, #8] + 8002b70: 2b00 cmp r3, #0 + 8002b72: d06a beq.n 8002c4a LV_LOG_TRACE("begin"); /*Focus on the next object*/ if(g->obj_focus && *g->obj_focus == obj) { - 8002be0: 68bb ldr r3, [r7, #8] - 8002be2: 68db ldr r3, [r3, #12] - 8002be4: 2b00 cmp r3, #0 - 8002be6: d033 beq.n 8002c50 - 8002be8: 68bb ldr r3, [r7, #8] - 8002bea: 68db ldr r3, [r3, #12] - 8002bec: 681b ldr r3, [r3, #0] - 8002bee: 687a ldr r2, [r7, #4] - 8002bf0: 429a cmp r2, r3 - 8002bf2: d12d bne.n 8002c50 + 8002b74: 68bb ldr r3, [r7, #8] + 8002b76: 68db ldr r3, [r3, #12] + 8002b78: 2b00 cmp r3, #0 + 8002b7a: d033 beq.n 8002be4 + 8002b7c: 68bb ldr r3, [r7, #8] + 8002b7e: 68db ldr r3, [r3, #12] + 8002b80: 681b ldr r3, [r3, #0] + 8002b82: 687a ldr r2, [r7, #4] + 8002b84: 429a cmp r2, r3 + 8002b86: d12d bne.n 8002be4 if(g->frozen) g->frozen = 0; - 8002bf4: 68bb ldr r3, [r7, #8] - 8002bf6: 7e1b ldrb r3, [r3, #24] - 8002bf8: f003 0301 and.w r3, r3, #1 - 8002bfc: b2db uxtb r3, r3 - 8002bfe: 2b00 cmp r3, #0 - 8002c00: d004 beq.n 8002c0c - 8002c02: 68ba ldr r2, [r7, #8] - 8002c04: 7e13 ldrb r3, [r2, #24] - 8002c06: f36f 0300 bfc r3, #0, #1 - 8002c0a: 7613 strb r3, [r2, #24] + 8002b88: 68bb ldr r3, [r7, #8] + 8002b8a: 7e1b ldrb r3, [r3, #24] + 8002b8c: f003 0301 and.w r3, r3, #1 + 8002b90: b2db uxtb r3, r3 + 8002b92: 2b00 cmp r3, #0 + 8002b94: d004 beq.n 8002ba0 + 8002b96: 68ba ldr r2, [r7, #8] + 8002b98: 7e13 ldrb r3, [r2, #24] + 8002b9a: f36f 0300 bfc r3, #0, #1 + 8002b9e: 7613 strb r3, [r2, #24] /*If this is the only object in the group then focus to nothing.*/ if(_lv_ll_get_head(&g->obj_ll) == g->obj_focus && _lv_ll_get_tail(&g->obj_ll) == g->obj_focus) { - 8002c0c: 68bb ldr r3, [r7, #8] - 8002c0e: 4618 mov r0, r3 - 8002c10: f02f fba4 bl 803235c <_lv_ll_get_head> - 8002c14: 4602 mov r2, r0 - 8002c16: 68bb ldr r3, [r7, #8] - 8002c18: 68db ldr r3, [r3, #12] - 8002c1a: 429a cmp r2, r3 - 8002c1c: d115 bne.n 8002c4a - 8002c1e: 68bb ldr r3, [r7, #8] - 8002c20: 4618 mov r0, r3 - 8002c22: f02f fbab bl 803237c <_lv_ll_get_tail> - 8002c26: 4602 mov r2, r0 - 8002c28: 68bb ldr r3, [r7, #8] - 8002c2a: 68db ldr r3, [r3, #12] - 8002c2c: 429a cmp r2, r3 - 8002c2e: d10c bne.n 8002c4a + 8002ba0: 68bb ldr r3, [r7, #8] + 8002ba2: 4618 mov r0, r3 + 8002ba4: f02f fb90 bl 80322c8 <_lv_ll_get_head> + 8002ba8: 4602 mov r2, r0 + 8002baa: 68bb ldr r3, [r7, #8] + 8002bac: 68db ldr r3, [r3, #12] + 8002bae: 429a cmp r2, r3 + 8002bb0: d115 bne.n 8002bde + 8002bb2: 68bb ldr r3, [r7, #8] + 8002bb4: 4618 mov r0, r3 + 8002bb6: f02f fb97 bl 80322e8 <_lv_ll_get_tail> + 8002bba: 4602 mov r2, r0 + 8002bbc: 68bb ldr r3, [r7, #8] + 8002bbe: 68db ldr r3, [r3, #12] + 8002bc0: 429a cmp r2, r3 + 8002bc2: d10c bne.n 8002bde lv_event_send(*g->obj_focus, LV_EVENT_DEFOCUSED, get_indev(g)); - 8002c30: 68bb ldr r3, [r7, #8] - 8002c32: 68db ldr r3, [r3, #12] - 8002c34: 681c ldr r4, [r3, #0] - 8002c36: 68b8 ldr r0, [r7, #8] - 8002c38: f000 fa87 bl 800314a - 8002c3c: 4603 mov r3, r0 - 8002c3e: 461a mov r2, r3 - 8002c40: 210f movs r1, #15 - 8002c42: 4620 mov r0, r4 - 8002c44: f7ff fc1c bl 8002480 - 8002c48: e002 b.n 8002c50 + 8002bc4: 68bb ldr r3, [r7, #8] + 8002bc6: 68db ldr r3, [r3, #12] + 8002bc8: 681c ldr r4, [r3, #0] + 8002bca: 68b8 ldr r0, [r7, #8] + 8002bcc: f000 fa87 bl 80030de + 8002bd0: 4603 mov r3, r0 + 8002bd2: 461a mov r2, r3 + 8002bd4: 210f movs r1, #15 + 8002bd6: 4620 mov r0, r4 + 8002bd8: f7ff fc1c bl 8002414 + 8002bdc: e002 b.n 8002be4 } /*If there more objects in the group then focus to the next/prev object*/ else { lv_group_refocus(g); - 8002c4a: 68b8 ldr r0, [r7, #8] - 8002c4c: f000 f979 bl 8002f42 + 8002bde: 68b8 ldr r0, [r7, #8] + 8002be0: f000 f979 bl 8002ed6 } /*If the focuses object is still the same then it was the only object in the group but it will *be deleted. Set the `obj_focus` to NULL to get back to the initial state of the group with *zero objects*/ if(g->obj_focus && *g->obj_focus == obj) { - 8002c50: 68bb ldr r3, [r7, #8] - 8002c52: 68db ldr r3, [r3, #12] - 8002c54: 2b00 cmp r3, #0 - 8002c56: d008 beq.n 8002c6a - 8002c58: 68bb ldr r3, [r7, #8] - 8002c5a: 68db ldr r3, [r3, #12] - 8002c5c: 681b ldr r3, [r3, #0] - 8002c5e: 687a ldr r2, [r7, #4] - 8002c60: 429a cmp r2, r3 - 8002c62: d102 bne.n 8002c6a + 8002be4: 68bb ldr r3, [r7, #8] + 8002be6: 68db ldr r3, [r3, #12] + 8002be8: 2b00 cmp r3, #0 + 8002bea: d008 beq.n 8002bfe + 8002bec: 68bb ldr r3, [r7, #8] + 8002bee: 68db ldr r3, [r3, #12] + 8002bf0: 681b ldr r3, [r3, #0] + 8002bf2: 687a ldr r2, [r7, #4] + 8002bf4: 429a cmp r2, r3 + 8002bf6: d102 bne.n 8002bfe g->obj_focus = NULL; - 8002c64: 68bb ldr r3, [r7, #8] - 8002c66: 2200 movs r2, #0 - 8002c68: 60da str r2, [r3, #12] + 8002bf8: 68bb ldr r3, [r7, #8] + 8002bfa: 2200 movs r2, #0 + 8002bfc: 60da str r2, [r3, #12] } /*Search the object and remove it from its group*/ lv_obj_t ** i; _LV_LL_READ(&g->obj_ll, i) { - 8002c6a: 68bb ldr r3, [r7, #8] - 8002c6c: 4618 mov r0, r3 - 8002c6e: f02f fb75 bl 803235c <_lv_ll_get_head> - 8002c72: 60f8 str r0, [r7, #12] - 8002c74: e01b b.n 8002cae + 8002bfe: 68bb ldr r3, [r7, #8] + 8002c00: 4618 mov r0, r3 + 8002c02: f02f fb61 bl 80322c8 <_lv_ll_get_head> + 8002c06: 60f8 str r0, [r7, #12] + 8002c08: e01b b.n 8002c42 if(*i == obj) { - 8002c76: 68fb ldr r3, [r7, #12] - 8002c78: 681b ldr r3, [r3, #0] - 8002c7a: 687a ldr r2, [r7, #4] - 8002c7c: 429a cmp r2, r3 - 8002c7e: d110 bne.n 8002ca2 + 8002c0a: 68fb ldr r3, [r7, #12] + 8002c0c: 681b ldr r3, [r3, #0] + 8002c0e: 687a ldr r2, [r7, #4] + 8002c10: 429a cmp r2, r3 + 8002c12: d110 bne.n 8002c36 _lv_ll_remove(&g->obj_ll, i); - 8002c80: 68bb ldr r3, [r7, #8] - 8002c82: 68f9 ldr r1, [r7, #12] - 8002c84: 4618 mov r0, r3 - 8002c86: f02f faeb bl 8032260 <_lv_ll_remove> + 8002c14: 68bb ldr r3, [r7, #8] + 8002c16: 68f9 ldr r1, [r7, #12] + 8002c18: 4618 mov r0, r3 + 8002c1a: f02f fad7 bl 80321cc <_lv_ll_remove> lv_mem_free(i); - 8002c8a: 68f8 ldr r0, [r7, #12] - 8002c8c: f02f fe26 bl 80328dc + 8002c1e: 68f8 ldr r0, [r7, #12] + 8002c20: f02f fe12 bl 8032848 if(obj->spec_attr) obj->spec_attr->group_p = NULL; - 8002c90: 687b ldr r3, [r7, #4] - 8002c92: 689b ldr r3, [r3, #8] - 8002c94: 2b00 cmp r3, #0 - 8002c96: d010 beq.n 8002cba - 8002c98: 687b ldr r3, [r7, #4] - 8002c9a: 689b ldr r3, [r3, #8] - 8002c9c: 2200 movs r2, #0 - 8002c9e: 609a str r2, [r3, #8] + 8002c24: 687b ldr r3, [r7, #4] + 8002c26: 689b ldr r3, [r3, #8] + 8002c28: 2b00 cmp r3, #0 + 8002c2a: d010 beq.n 8002c4e + 8002c2c: 687b ldr r3, [r7, #4] + 8002c2e: 689b ldr r3, [r3, #8] + 8002c30: 2200 movs r2, #0 + 8002c32: 609a str r2, [r3, #8] break; - 8002ca0: e00b b.n 8002cba + 8002c34: e00b b.n 8002c4e _LV_LL_READ(&g->obj_ll, i) { - 8002ca2: 68bb ldr r3, [r7, #8] - 8002ca4: 68f9 ldr r1, [r7, #12] - 8002ca6: 4618 mov r0, r3 - 8002ca8: f02f fb78 bl 803239c <_lv_ll_get_next> - 8002cac: 60f8 str r0, [r7, #12] - 8002cae: 68fb ldr r3, [r7, #12] - 8002cb0: 2b00 cmp r3, #0 - 8002cb2: d1e0 bne.n 8002c76 - 8002cb4: e002 b.n 8002cbc + 8002c36: 68bb ldr r3, [r7, #8] + 8002c38: 68f9 ldr r1, [r7, #12] + 8002c3a: 4618 mov r0, r3 + 8002c3c: f02f fb64 bl 8032308 <_lv_ll_get_next> + 8002c40: 60f8 str r0, [r7, #12] + 8002c42: 68fb ldr r3, [r7, #12] + 8002c44: 2b00 cmp r3, #0 + 8002c46: d1e0 bne.n 8002c0a + 8002c48: e002 b.n 8002c50 if(g == NULL) return; - 8002cb6: bf00 nop - 8002cb8: e000 b.n 8002cbc + 8002c4a: bf00 nop + 8002c4c: e000 b.n 8002c50 break; - 8002cba: bf00 nop + 8002c4e: bf00 nop } } LV_LOG_TRACE("finished"); } - 8002cbc: 3714 adds r7, #20 - 8002cbe: 46bd mov sp, r7 - 8002cc0: bd90 pop {r4, r7, pc} + 8002c50: 3714 adds r7, #20 + 8002c52: 46bd mov sp, r7 + 8002c54: bd90 pop {r4, r7, pc} -08002cc2 : +08002c56 : _lv_ll_clear(&(group->obj_ll)); } void lv_group_focus_obj(lv_obj_t * obj) { - 8002cc2: b590 push {r4, r7, lr} - 8002cc4: b087 sub sp, #28 - 8002cc6: af00 add r7, sp, #0 - 8002cc8: 6078 str r0, [r7, #4] + 8002c56: b590 push {r4, r7, lr} + 8002c58: b087 sub sp, #28 + 8002c5a: af00 add r7, sp, #0 + 8002c5c: 6078 str r0, [r7, #4] if(obj == NULL) return; - 8002cca: 687b ldr r3, [r7, #4] - 8002ccc: 2b00 cmp r3, #0 - 8002cce: d06e beq.n 8002dae + 8002c5e: 687b ldr r3, [r7, #4] + 8002c60: 2b00 cmp r3, #0 + 8002c62: d06e beq.n 8002d42 lv_group_t * g = lv_obj_get_group(obj); - 8002cd0: 6878 ldr r0, [r7, #4] - 8002cd2: f003 fd9d bl 8006810 - 8002cd6: 6138 str r0, [r7, #16] + 8002c64: 6878 ldr r0, [r7, #4] + 8002c66: f003 fd9d bl 80067a4 + 8002c6a: 6138 str r0, [r7, #16] if(g == NULL) return; - 8002cd8: 693b ldr r3, [r7, #16] - 8002cda: 2b00 cmp r3, #0 - 8002cdc: d069 beq.n 8002db2 + 8002c6c: 693b ldr r3, [r7, #16] + 8002c6e: 2b00 cmp r3, #0 + 8002c70: d069 beq.n 8002d46 if(g->frozen != 0) return; - 8002cde: 693b ldr r3, [r7, #16] - 8002ce0: 7e1b ldrb r3, [r3, #24] - 8002ce2: f003 0301 and.w r3, r3, #1 - 8002ce6: b2db uxtb r3, r3 - 8002ce8: 2b00 cmp r3, #0 - 8002cea: d164 bne.n 8002db6 + 8002c72: 693b ldr r3, [r7, #16] + 8002c74: 7e1b ldrb r3, [r3, #24] + 8002c76: f003 0301 and.w r3, r3, #1 + 8002c7a: b2db uxtb r3, r3 + 8002c7c: 2b00 cmp r3, #0 + 8002c7e: d164 bne.n 8002d4a /*On defocus edit mode must be leaved*/ lv_group_set_editing(g, false); - 8002cec: 2100 movs r1, #0 - 8002cee: 6938 ldr r0, [r7, #16] - 8002cf0: f000 f8a9 bl 8002e46 + 8002c80: 2100 movs r1, #0 + 8002c82: 6938 ldr r0, [r7, #16] + 8002c84: f000 f8a9 bl 8002dda lv_obj_t ** i; _LV_LL_READ(&g->obj_ll, i) { - 8002cf4: 693b ldr r3, [r7, #16] - 8002cf6: 4618 mov r0, r3 - 8002cf8: f02f fb30 bl 803235c <_lv_ll_get_head> - 8002cfc: 6178 str r0, [r7, #20] - 8002cfe: e052 b.n 8002da6 + 8002c88: 693b ldr r3, [r7, #16] + 8002c8a: 4618 mov r0, r3 + 8002c8c: f02f fb1c bl 80322c8 <_lv_ll_get_head> + 8002c90: 6178 str r0, [r7, #20] + 8002c92: e052 b.n 8002d3a if(*i == obj) { - 8002d00: 697b ldr r3, [r7, #20] - 8002d02: 681b ldr r3, [r3, #0] - 8002d04: 687a ldr r2, [r7, #4] - 8002d06: 429a cmp r2, r3 - 8002d08: d147 bne.n 8002d9a + 8002c94: 697b ldr r3, [r7, #20] + 8002c96: 681b ldr r3, [r3, #0] + 8002c98: 687a ldr r2, [r7, #4] + 8002c9a: 429a cmp r2, r3 + 8002c9c: d147 bne.n 8002d2e if(g->obj_focus != NULL && obj != *g->obj_focus) { /*Do not defocus if the same object needs to be focused again*/ - 8002d0a: 693b ldr r3, [r7, #16] - 8002d0c: 68db ldr r3, [r3, #12] - 8002d0e: 2b00 cmp r3, #0 - 8002d10: d01c beq.n 8002d4c - 8002d12: 693b ldr r3, [r7, #16] - 8002d14: 68db ldr r3, [r3, #12] - 8002d16: 681b ldr r3, [r3, #0] - 8002d18: 687a ldr r2, [r7, #4] - 8002d1a: 429a cmp r2, r3 - 8002d1c: d016 beq.n 8002d4c + 8002c9e: 693b ldr r3, [r7, #16] + 8002ca0: 68db ldr r3, [r3, #12] + 8002ca2: 2b00 cmp r3, #0 + 8002ca4: d01c beq.n 8002ce0 + 8002ca6: 693b ldr r3, [r7, #16] + 8002ca8: 68db ldr r3, [r3, #12] + 8002caa: 681b ldr r3, [r3, #0] + 8002cac: 687a ldr r2, [r7, #4] + 8002cae: 429a cmp r2, r3 + 8002cb0: d016 beq.n 8002ce0 lv_res_t res = lv_event_send(*g->obj_focus, LV_EVENT_DEFOCUSED, get_indev(g)); - 8002d1e: 693b ldr r3, [r7, #16] - 8002d20: 68db ldr r3, [r3, #12] - 8002d22: 681c ldr r4, [r3, #0] - 8002d24: 6938 ldr r0, [r7, #16] - 8002d26: f000 fa10 bl 800314a - 8002d2a: 4603 mov r3, r0 - 8002d2c: 461a mov r2, r3 - 8002d2e: 210f movs r1, #15 - 8002d30: 4620 mov r0, r4 - 8002d32: f7ff fba5 bl 8002480 - 8002d36: 4603 mov r3, r0 - 8002d38: 73fb strb r3, [r7, #15] + 8002cb2: 693b ldr r3, [r7, #16] + 8002cb4: 68db ldr r3, [r3, #12] + 8002cb6: 681c ldr r4, [r3, #0] + 8002cb8: 6938 ldr r0, [r7, #16] + 8002cba: f000 fa10 bl 80030de + 8002cbe: 4603 mov r3, r0 + 8002cc0: 461a mov r2, r3 + 8002cc2: 210f movs r1, #15 + 8002cc4: 4620 mov r0, r4 + 8002cc6: f7ff fba5 bl 8002414 + 8002cca: 4603 mov r3, r0 + 8002ccc: 73fb strb r3, [r7, #15] if(res != LV_RES_OK) return; - 8002d3a: 7bfb ldrb r3, [r7, #15] - 8002d3c: 2b01 cmp r3, #1 - 8002d3e: d13c bne.n 8002dba + 8002cce: 7bfb ldrb r3, [r7, #15] + 8002cd0: 2b01 cmp r3, #1 + 8002cd2: d13c bne.n 8002d4e lv_obj_invalidate(*g->obj_focus); - 8002d40: 693b ldr r3, [r7, #16] - 8002d42: 68db ldr r3, [r3, #12] - 8002d44: 681b ldr r3, [r3, #0] - 8002d46: 4618 mov r0, r3 - 8002d48: f007 feb3 bl 800aab2 + 8002cd4: 693b ldr r3, [r7, #16] + 8002cd6: 68db ldr r3, [r3, #12] + 8002cd8: 681b ldr r3, [r3, #0] + 8002cda: 4618 mov r0, r3 + 8002cdc: f007 feb3 bl 800aa46 } g->obj_focus = i; - 8002d4c: 693b ldr r3, [r7, #16] - 8002d4e: 697a ldr r2, [r7, #20] - 8002d50: 60da str r2, [r3, #12] + 8002ce0: 693b ldr r3, [r7, #16] + 8002ce2: 697a ldr r2, [r7, #20] + 8002ce4: 60da str r2, [r3, #12] if(g->obj_focus != NULL) { - 8002d52: 693b ldr r3, [r7, #16] - 8002d54: 68db ldr r3, [r3, #12] - 8002d56: 2b00 cmp r3, #0 - 8002d58: d031 beq.n 8002dbe + 8002ce6: 693b ldr r3, [r7, #16] + 8002ce8: 68db ldr r3, [r3, #12] + 8002cea: 2b00 cmp r3, #0 + 8002cec: d031 beq.n 8002d52 if(g->focus_cb) g->focus_cb(g); - 8002d5a: 693b ldr r3, [r7, #16] - 8002d5c: 691b ldr r3, [r3, #16] - 8002d5e: 2b00 cmp r3, #0 - 8002d60: d003 beq.n 8002d6a - 8002d62: 693b ldr r3, [r7, #16] - 8002d64: 691b ldr r3, [r3, #16] - 8002d66: 6938 ldr r0, [r7, #16] - 8002d68: 4798 blx r3 + 8002cee: 693b ldr r3, [r7, #16] + 8002cf0: 691b ldr r3, [r3, #16] + 8002cf2: 2b00 cmp r3, #0 + 8002cf4: d003 beq.n 8002cfe + 8002cf6: 693b ldr r3, [r7, #16] + 8002cf8: 691b ldr r3, [r3, #16] + 8002cfa: 6938 ldr r0, [r7, #16] + 8002cfc: 4798 blx r3 lv_res_t res = lv_event_send(*g->obj_focus, LV_EVENT_FOCUSED, get_indev(g)); - 8002d6a: 693b ldr r3, [r7, #16] - 8002d6c: 68db ldr r3, [r3, #12] - 8002d6e: 681c ldr r4, [r3, #0] - 8002d70: 6938 ldr r0, [r7, #16] - 8002d72: f000 f9ea bl 800314a - 8002d76: 4603 mov r3, r0 - 8002d78: 461a mov r2, r3 - 8002d7a: 210e movs r1, #14 - 8002d7c: 4620 mov r0, r4 - 8002d7e: f7ff fb7f bl 8002480 - 8002d82: 4603 mov r3, r0 - 8002d84: 73bb strb r3, [r7, #14] + 8002cfe: 693b ldr r3, [r7, #16] + 8002d00: 68db ldr r3, [r3, #12] + 8002d02: 681c ldr r4, [r3, #0] + 8002d04: 6938 ldr r0, [r7, #16] + 8002d06: f000 f9ea bl 80030de + 8002d0a: 4603 mov r3, r0 + 8002d0c: 461a mov r2, r3 + 8002d0e: 210e movs r1, #14 + 8002d10: 4620 mov r0, r4 + 8002d12: f7ff fb7f bl 8002414 + 8002d16: 4603 mov r3, r0 + 8002d18: 73bb strb r3, [r7, #14] if(res != LV_RES_OK) return; - 8002d86: 7bbb ldrb r3, [r7, #14] - 8002d88: 2b01 cmp r3, #1 - 8002d8a: d11a bne.n 8002dc2 + 8002d1a: 7bbb ldrb r3, [r7, #14] + 8002d1c: 2b01 cmp r3, #1 + 8002d1e: d11a bne.n 8002d56 lv_obj_invalidate(*g->obj_focus); - 8002d8c: 693b ldr r3, [r7, #16] - 8002d8e: 68db ldr r3, [r3, #12] - 8002d90: 681b ldr r3, [r3, #0] - 8002d92: 4618 mov r0, r3 - 8002d94: f007 fe8d bl 800aab2 + 8002d20: 693b ldr r3, [r7, #16] + 8002d22: 68db ldr r3, [r3, #12] + 8002d24: 681b ldr r3, [r3, #0] + 8002d26: 4618 mov r0, r3 + 8002d28: f007 fe8d bl 800aa46 } break; - 8002d98: e011 b.n 8002dbe + 8002d2c: e011 b.n 8002d52 _LV_LL_READ(&g->obj_ll, i) { - 8002d9a: 693b ldr r3, [r7, #16] - 8002d9c: 6979 ldr r1, [r7, #20] - 8002d9e: 4618 mov r0, r3 - 8002da0: f02f fafc bl 803239c <_lv_ll_get_next> - 8002da4: 6178 str r0, [r7, #20] - 8002da6: 697b ldr r3, [r7, #20] - 8002da8: 2b00 cmp r3, #0 - 8002daa: d1a9 bne.n 8002d00 - 8002dac: e00a b.n 8002dc4 + 8002d2e: 693b ldr r3, [r7, #16] + 8002d30: 6979 ldr r1, [r7, #20] + 8002d32: 4618 mov r0, r3 + 8002d34: f02f fae8 bl 8032308 <_lv_ll_get_next> + 8002d38: 6178 str r0, [r7, #20] + 8002d3a: 697b ldr r3, [r7, #20] + 8002d3c: 2b00 cmp r3, #0 + 8002d3e: d1a9 bne.n 8002c94 + 8002d40: e00a b.n 8002d58 if(obj == NULL) return; - 8002dae: bf00 nop - 8002db0: e008 b.n 8002dc4 + 8002d42: bf00 nop + 8002d44: e008 b.n 8002d58 if(g == NULL) return; - 8002db2: bf00 nop - 8002db4: e006 b.n 8002dc4 + 8002d46: bf00 nop + 8002d48: e006 b.n 8002d58 if(g->frozen != 0) return; - 8002db6: bf00 nop - 8002db8: e004 b.n 8002dc4 + 8002d4a: bf00 nop + 8002d4c: e004 b.n 8002d58 if(res != LV_RES_OK) return; - 8002dba: bf00 nop - 8002dbc: e002 b.n 8002dc4 + 8002d4e: bf00 nop + 8002d50: e002 b.n 8002d58 break; - 8002dbe: bf00 nop - 8002dc0: e000 b.n 8002dc4 + 8002d52: bf00 nop + 8002d54: e000 b.n 8002d58 if(res != LV_RES_OK) return; - 8002dc2: bf00 nop + 8002d56: bf00 nop } } } - 8002dc4: 371c adds r7, #28 - 8002dc6: 46bd mov sp, r7 - 8002dc8: bd90 pop {r4, r7, pc} + 8002d58: 371c adds r7, #28 + 8002d5a: 46bd mov sp, r7 + 8002d5c: bd90 pop {r4, r7, pc} ... -08002dcc : +08002d60 : void lv_group_focus_next(lv_group_t * group) { - 8002dcc: b580 push {r7, lr} - 8002dce: b082 sub sp, #8 - 8002dd0: af00 add r7, sp, #0 - 8002dd2: 6078 str r0, [r7, #4] + 8002d60: b580 push {r7, lr} + 8002d62: b082 sub sp, #8 + 8002d64: af00 add r7, sp, #0 + 8002d66: 6078 str r0, [r7, #4] focus_next_core(group, _lv_ll_get_head, _lv_ll_get_next); - 8002dd4: 4a04 ldr r2, [pc, #16] ; (8002de8 ) - 8002dd6: 4905 ldr r1, [pc, #20] ; (8002dec ) - 8002dd8: 6878 ldr r0, [r7, #4] - 8002dda: f000 f8e3 bl 8002fa4 + 8002d68: 4a04 ldr r2, [pc, #16] ; (8002d7c ) + 8002d6a: 4905 ldr r1, [pc, #20] ; (8002d80 ) + 8002d6c: 6878 ldr r0, [r7, #4] + 8002d6e: f000 f8e3 bl 8002f38 } - 8002dde: bf00 nop - 8002de0: 3708 adds r7, #8 - 8002de2: 46bd mov sp, r7 - 8002de4: bd80 pop {r7, pc} - 8002de6: bf00 nop - 8002de8: 0803239d .word 0x0803239d - 8002dec: 0803235d .word 0x0803235d + 8002d72: bf00 nop + 8002d74: 3708 adds r7, #8 + 8002d76: 46bd mov sp, r7 + 8002d78: bd80 pop {r7, pc} + 8002d7a: bf00 nop + 8002d7c: 08032309 .word 0x08032309 + 8002d80: 080322c9 .word 0x080322c9 -08002df0 : +08002d84 : void lv_group_focus_prev(lv_group_t * group) { - 8002df0: b580 push {r7, lr} - 8002df2: b082 sub sp, #8 - 8002df4: af00 add r7, sp, #0 - 8002df6: 6078 str r0, [r7, #4] + 8002d84: b580 push {r7, lr} + 8002d86: b082 sub sp, #8 + 8002d88: af00 add r7, sp, #0 + 8002d8a: 6078 str r0, [r7, #4] focus_next_core(group, _lv_ll_get_tail, _lv_ll_get_prev); - 8002df8: 4a04 ldr r2, [pc, #16] ; (8002e0c ) - 8002dfa: 4905 ldr r1, [pc, #20] ; (8002e10 ) - 8002dfc: 6878 ldr r0, [r7, #4] - 8002dfe: f000 f8d1 bl 8002fa4 + 8002d8c: 4a04 ldr r2, [pc, #16] ; (8002da0 ) + 8002d8e: 4905 ldr r1, [pc, #20] ; (8002da4 ) + 8002d90: 6878 ldr r0, [r7, #4] + 8002d92: f000 f8d1 bl 8002f38 } - 8002e02: bf00 nop - 8002e04: 3708 adds r7, #8 - 8002e06: 46bd mov sp, r7 - 8002e08: bd80 pop {r7, pc} - 8002e0a: bf00 nop - 8002e0c: 080323c5 .word 0x080323c5 - 8002e10: 0803237d .word 0x0803237d + 8002d96: bf00 nop + 8002d98: 3708 adds r7, #8 + 8002d9a: 46bd mov sp, r7 + 8002d9c: bd80 pop {r7, pc} + 8002d9e: bf00 nop + 8002da0: 08032331 .word 0x08032331 + 8002da4: 080322e9 .word 0x080322e9 -08002e14 : +08002da8 : if(en == false) group->frozen = 0; else group->frozen = 1; } lv_res_t lv_group_send_data(lv_group_t * group, uint32_t c) { - 8002e14: b580 push {r7, lr} - 8002e16: b084 sub sp, #16 - 8002e18: af00 add r7, sp, #0 - 8002e1a: 6078 str r0, [r7, #4] - 8002e1c: 6039 str r1, [r7, #0] + 8002da8: b580 push {r7, lr} + 8002daa: b084 sub sp, #16 + 8002dac: af00 add r7, sp, #0 + 8002dae: 6078 str r0, [r7, #4] + 8002db0: 6039 str r1, [r7, #0] lv_obj_t * act = lv_group_get_focused(group); - 8002e1e: 6878 ldr r0, [r7, #4] - 8002e20: f000 f852 bl 8002ec8 - 8002e24: 60f8 str r0, [r7, #12] + 8002db2: 6878 ldr r0, [r7, #4] + 8002db4: f000 f852 bl 8002e5c + 8002db8: 60f8 str r0, [r7, #12] if(act == NULL) return LV_RES_OK; - 8002e26: 68fb ldr r3, [r7, #12] - 8002e28: 2b00 cmp r3, #0 - 8002e2a: d101 bne.n 8002e30 - 8002e2c: 2301 movs r3, #1 - 8002e2e: e006 b.n 8002e3e + 8002dba: 68fb ldr r3, [r7, #12] + 8002dbc: 2b00 cmp r3, #0 + 8002dbe: d101 bne.n 8002dc4 + 8002dc0: 2301 movs r3, #1 + 8002dc2: e006 b.n 8002dd2 return lv_event_send(act, LV_EVENT_KEY, &c); - 8002e30: 463b mov r3, r7 - 8002e32: 461a mov r2, r3 - 8002e34: 210d movs r1, #13 - 8002e36: 68f8 ldr r0, [r7, #12] - 8002e38: f7ff fb22 bl 8002480 - 8002e3c: 4603 mov r3, r0 + 8002dc4: 463b mov r3, r7 + 8002dc6: 461a mov r2, r3 + 8002dc8: 210d movs r1, #13 + 8002dca: 68f8 ldr r0, [r7, #12] + 8002dcc: f7ff fb22 bl 8002414 + 8002dd0: 4603 mov r3, r0 } - 8002e3e: 4618 mov r0, r3 - 8002e40: 3710 adds r7, #16 - 8002e42: 46bd mov sp, r7 - 8002e44: bd80 pop {r7, pc} + 8002dd2: 4618 mov r0, r3 + 8002dd4: 3710 adds r7, #16 + 8002dd6: 46bd mov sp, r7 + 8002dd8: bd80 pop {r7, pc} -08002e46 : +08002dda : { group->focus_cb = focus_cb; } void lv_group_set_editing(lv_group_t * group, bool edit) { - 8002e46: b590 push {r4, r7, lr} - 8002e48: b087 sub sp, #28 - 8002e4a: af00 add r7, sp, #0 - 8002e4c: 6078 str r0, [r7, #4] - 8002e4e: 460b mov r3, r1 - 8002e50: 70fb strb r3, [r7, #3] + 8002dda: b590 push {r4, r7, lr} + 8002ddc: b087 sub sp, #28 + 8002dde: af00 add r7, sp, #0 + 8002de0: 6078 str r0, [r7, #4] + 8002de2: 460b mov r3, r1 + 8002de4: 70fb strb r3, [r7, #3] if(group == NULL) return; - 8002e52: 687b ldr r3, [r7, #4] - 8002e54: 2b00 cmp r3, #0 - 8002e56: d02f beq.n 8002eb8 + 8002de6: 687b ldr r3, [r7, #4] + 8002de8: 2b00 cmp r3, #0 + 8002dea: d02f beq.n 8002e4c uint8_t en_val = edit ? 1 : 0; - 8002e58: 78fb ldrb r3, [r7, #3] - 8002e5a: 75fb strb r3, [r7, #23] + 8002dec: 78fb ldrb r3, [r7, #3] + 8002dee: 75fb strb r3, [r7, #23] if(en_val == group->editing) return; /*Do not set the same mode again*/ - 8002e5c: 687b ldr r3, [r7, #4] - 8002e5e: 7e1b ldrb r3, [r3, #24] - 8002e60: f3c3 0340 ubfx r3, r3, #1, #1 - 8002e64: b2db uxtb r3, r3 - 8002e66: 461a mov r2, r3 - 8002e68: 7dfb ldrb r3, [r7, #23] - 8002e6a: 4293 cmp r3, r2 - 8002e6c: d026 beq.n 8002ebc + 8002df0: 687b ldr r3, [r7, #4] + 8002df2: 7e1b ldrb r3, [r3, #24] + 8002df4: f3c3 0340 ubfx r3, r3, #1, #1 + 8002df8: b2db uxtb r3, r3 + 8002dfa: 461a mov r2, r3 + 8002dfc: 7dfb ldrb r3, [r7, #23] + 8002dfe: 4293 cmp r3, r2 + 8002e00: d026 beq.n 8002e50 group->editing = en_val; - 8002e6e: 7dfb ldrb r3, [r7, #23] - 8002e70: f003 0301 and.w r3, r3, #1 - 8002e74: b2d9 uxtb r1, r3 - 8002e76: 687a ldr r2, [r7, #4] - 8002e78: 7e13 ldrb r3, [r2, #24] - 8002e7a: f361 0341 bfi r3, r1, #1, #1 - 8002e7e: 7613 strb r3, [r2, #24] + 8002e02: 7dfb ldrb r3, [r7, #23] + 8002e04: f003 0301 and.w r3, r3, #1 + 8002e08: b2d9 uxtb r1, r3 + 8002e0a: 687a ldr r2, [r7, #4] + 8002e0c: 7e13 ldrb r3, [r2, #24] + 8002e0e: f361 0341 bfi r3, r1, #1, #1 + 8002e12: 7613 strb r3, [r2, #24] lv_obj_t * focused = lv_group_get_focused(group); - 8002e80: 6878 ldr r0, [r7, #4] - 8002e82: f000 f821 bl 8002ec8 - 8002e86: 6138 str r0, [r7, #16] + 8002e14: 6878 ldr r0, [r7, #4] + 8002e16: f000 f821 bl 8002e5c + 8002e1a: 6138 str r0, [r7, #16] if(focused) { - 8002e88: 693b ldr r3, [r7, #16] - 8002e8a: 2b00 cmp r3, #0 - 8002e8c: d019 beq.n 8002ec2 + 8002e1c: 693b ldr r3, [r7, #16] + 8002e1e: 2b00 cmp r3, #0 + 8002e20: d019 beq.n 8002e56 lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_FOCUSED, get_indev(group)); - 8002e8e: 687b ldr r3, [r7, #4] - 8002e90: 68db ldr r3, [r3, #12] - 8002e92: 681c ldr r4, [r3, #0] - 8002e94: 6878 ldr r0, [r7, #4] - 8002e96: f000 f958 bl 800314a - 8002e9a: 4603 mov r3, r0 - 8002e9c: 461a mov r2, r3 - 8002e9e: 210e movs r1, #14 - 8002ea0: 4620 mov r0, r4 - 8002ea2: f7ff faed bl 8002480 - 8002ea6: 4603 mov r3, r0 - 8002ea8: 73fb strb r3, [r7, #15] + 8002e22: 687b ldr r3, [r7, #4] + 8002e24: 68db ldr r3, [r3, #12] + 8002e26: 681c ldr r4, [r3, #0] + 8002e28: 6878 ldr r0, [r7, #4] + 8002e2a: f000 f958 bl 80030de + 8002e2e: 4603 mov r3, r0 + 8002e30: 461a mov r2, r3 + 8002e32: 210e movs r1, #14 + 8002e34: 4620 mov r0, r4 + 8002e36: f7ff faed bl 8002414 + 8002e3a: 4603 mov r3, r0 + 8002e3c: 73fb strb r3, [r7, #15] if(res != LV_RES_OK) return; - 8002eaa: 7bfb ldrb r3, [r7, #15] - 8002eac: 2b01 cmp r3, #1 - 8002eae: d107 bne.n 8002ec0 + 8002e3e: 7bfb ldrb r3, [r7, #15] + 8002e40: 2b01 cmp r3, #1 + 8002e42: d107 bne.n 8002e54 lv_obj_invalidate(focused); - 8002eb0: 6938 ldr r0, [r7, #16] - 8002eb2: f007 fdfe bl 800aab2 - 8002eb6: e004 b.n 8002ec2 + 8002e44: 6938 ldr r0, [r7, #16] + 8002e46: f007 fdfe bl 800aa46 + 8002e4a: e004 b.n 8002e56 if(group == NULL) return; - 8002eb8: bf00 nop - 8002eba: e002 b.n 8002ec2 + 8002e4c: bf00 nop + 8002e4e: e002 b.n 8002e56 if(en_val == group->editing) return; /*Do not set the same mode again*/ - 8002ebc: bf00 nop - 8002ebe: e000 b.n 8002ec2 + 8002e50: bf00 nop + 8002e52: e000 b.n 8002e56 if(res != LV_RES_OK) return; - 8002ec0: bf00 nop + 8002e54: bf00 nop } } - 8002ec2: 371c adds r7, #28 - 8002ec4: 46bd mov sp, r7 - 8002ec6: bd90 pop {r4, r7, pc} + 8002e56: 371c adds r7, #28 + 8002e58: 46bd mov sp, r7 + 8002e5a: bd90 pop {r4, r7, pc} -08002ec8 : +08002e5c : { group->wrap = en ? 1 : 0; } lv_obj_t * lv_group_get_focused(const lv_group_t * group) { - 8002ec8: b480 push {r7} - 8002eca: b083 sub sp, #12 - 8002ecc: af00 add r7, sp, #0 - 8002ece: 6078 str r0, [r7, #4] + 8002e5c: b480 push {r7} + 8002e5e: b083 sub sp, #12 + 8002e60: af00 add r7, sp, #0 + 8002e62: 6078 str r0, [r7, #4] if(!group) return NULL; - 8002ed0: 687b ldr r3, [r7, #4] - 8002ed2: 2b00 cmp r3, #0 - 8002ed4: d101 bne.n 8002eda - 8002ed6: 2300 movs r3, #0 - 8002ed8: e008 b.n 8002eec + 8002e64: 687b ldr r3, [r7, #4] + 8002e66: 2b00 cmp r3, #0 + 8002e68: d101 bne.n 8002e6e + 8002e6a: 2300 movs r3, #0 + 8002e6c: e008 b.n 8002e80 if(group->obj_focus == NULL) return NULL; - 8002eda: 687b ldr r3, [r7, #4] - 8002edc: 68db ldr r3, [r3, #12] - 8002ede: 2b00 cmp r3, #0 - 8002ee0: d101 bne.n 8002ee6 - 8002ee2: 2300 movs r3, #0 - 8002ee4: e002 b.n 8002eec + 8002e6e: 687b ldr r3, [r7, #4] + 8002e70: 68db ldr r3, [r3, #12] + 8002e72: 2b00 cmp r3, #0 + 8002e74: d101 bne.n 8002e7a + 8002e76: 2300 movs r3, #0 + 8002e78: e002 b.n 8002e80 return *group->obj_focus; - 8002ee6: 687b ldr r3, [r7, #4] - 8002ee8: 68db ldr r3, [r3, #12] - 8002eea: 681b ldr r3, [r3, #0] + 8002e7a: 687b ldr r3, [r7, #4] + 8002e7c: 68db ldr r3, [r3, #12] + 8002e7e: 681b ldr r3, [r3, #0] } - 8002eec: 4618 mov r0, r3 - 8002eee: 370c adds r7, #12 - 8002ef0: 46bd mov sp, r7 - 8002ef2: bc80 pop {r7} - 8002ef4: 4770 bx lr + 8002e80: 4618 mov r0, r3 + 8002e82: 370c adds r7, #12 + 8002e84: 46bd mov sp, r7 + 8002e86: bc80 pop {r7} + 8002e88: 4770 bx lr -08002ef6 : +08002e8a : if(!group) return NULL; return group->focus_cb; } bool lv_group_get_editing(const lv_group_t * group) { - 8002ef6: b480 push {r7} - 8002ef8: b083 sub sp, #12 - 8002efa: af00 add r7, sp, #0 - 8002efc: 6078 str r0, [r7, #4] + 8002e8a: b480 push {r7} + 8002e8c: b083 sub sp, #12 + 8002e8e: af00 add r7, sp, #0 + 8002e90: 6078 str r0, [r7, #4] if(!group) return false; - 8002efe: 687b ldr r3, [r7, #4] - 8002f00: 2b00 cmp r3, #0 - 8002f02: d101 bne.n 8002f08 - 8002f04: 2300 movs r3, #0 - 8002f06: e00a b.n 8002f1e + 8002e92: 687b ldr r3, [r7, #4] + 8002e94: 2b00 cmp r3, #0 + 8002e96: d101 bne.n 8002e9c + 8002e98: 2300 movs r3, #0 + 8002e9a: e00a b.n 8002eb2 return group->editing ? true : false; - 8002f08: 687b ldr r3, [r7, #4] - 8002f0a: 7e1b ldrb r3, [r3, #24] - 8002f0c: 085b lsrs r3, r3, #1 - 8002f0e: b2db uxtb r3, r3 - 8002f10: f003 0301 and.w r3, r3, #1 - 8002f14: 2b00 cmp r3, #0 - 8002f16: bf14 ite ne - 8002f18: 2301 movne r3, #1 - 8002f1a: 2300 moveq r3, #0 - 8002f1c: b2db uxtb r3, r3 + 8002e9c: 687b ldr r3, [r7, #4] + 8002e9e: 7e1b ldrb r3, [r3, #24] + 8002ea0: 085b lsrs r3, r3, #1 + 8002ea2: b2db uxtb r3, r3 + 8002ea4: f003 0301 and.w r3, r3, #1 + 8002ea8: 2b00 cmp r3, #0 + 8002eaa: bf14 ite ne + 8002eac: 2301 movne r3, #1 + 8002eae: 2300 moveq r3, #0 + 8002eb0: b2db uxtb r3, r3 } - 8002f1e: 4618 mov r0, r3 - 8002f20: 370c adds r7, #12 - 8002f22: 46bd mov sp, r7 - 8002f24: bc80 pop {r7} - 8002f26: 4770 bx lr + 8002eb2: 4618 mov r0, r3 + 8002eb4: 370c adds r7, #12 + 8002eb6: 46bd mov sp, r7 + 8002eb8: bc80 pop {r7} + 8002eba: 4770 bx lr -08002f28 : +08002ebc : if(!group) return false; return group->wrap ? true : false; } uint32_t lv_group_get_obj_count(lv_group_t * group) { - 8002f28: b580 push {r7, lr} - 8002f2a: b082 sub sp, #8 - 8002f2c: af00 add r7, sp, #0 - 8002f2e: 6078 str r0, [r7, #4] + 8002ebc: b580 push {r7, lr} + 8002ebe: b082 sub sp, #8 + 8002ec0: af00 add r7, sp, #0 + 8002ec2: 6078 str r0, [r7, #4] return _lv_ll_get_len(&group->obj_ll); - 8002f30: 687b ldr r3, [r7, #4] - 8002f32: 4618 mov r0, r3 - 8002f34: f02f fa59 bl 80323ea <_lv_ll_get_len> - 8002f38: 4603 mov r3, r0 + 8002ec4: 687b ldr r3, [r7, #4] + 8002ec6: 4618 mov r0, r3 + 8002ec8: f02f fa45 bl 8032356 <_lv_ll_get_len> + 8002ecc: 4603 mov r3, r0 } - 8002f3a: 4618 mov r0, r3 - 8002f3c: 3708 adds r7, #8 - 8002f3e: 46bd mov sp, r7 - 8002f40: bd80 pop {r7, pc} + 8002ece: 4618 mov r0, r3 + 8002ed0: 3708 adds r7, #8 + 8002ed2: 46bd mov sp, r7 + 8002ed4: bd80 pop {r7, pc} -08002f42 : +08002ed6 : /********************** * STATIC FUNCTIONS **********************/ static void lv_group_refocus(lv_group_t * g) { - 8002f42: b580 push {r7, lr} - 8002f44: b084 sub sp, #16 - 8002f46: af00 add r7, sp, #0 - 8002f48: 6078 str r0, [r7, #4] + 8002ed6: b580 push {r7, lr} + 8002ed8: b084 sub sp, #16 + 8002eda: af00 add r7, sp, #0 + 8002edc: 6078 str r0, [r7, #4] /*Refocus must temporarily allow wrapping to work correctly*/ uint8_t temp_wrap = g->wrap; - 8002f4a: 687b ldr r3, [r7, #4] - 8002f4c: 7e1b ldrb r3, [r3, #24] - 8002f4e: f3c3 03c0 ubfx r3, r3, #3, #1 - 8002f52: b2db uxtb r3, r3 - 8002f54: 73fb strb r3, [r7, #15] + 8002ede: 687b ldr r3, [r7, #4] + 8002ee0: 7e1b ldrb r3, [r3, #24] + 8002ee2: f3c3 03c0 ubfx r3, r3, #3, #1 + 8002ee6: b2db uxtb r3, r3 + 8002ee8: 73fb strb r3, [r7, #15] g->wrap = 1; - 8002f56: 687a ldr r2, [r7, #4] - 8002f58: 7e13 ldrb r3, [r2, #24] - 8002f5a: f043 0308 orr.w r3, r3, #8 - 8002f5e: 7613 strb r3, [r2, #24] + 8002eea: 687a ldr r2, [r7, #4] + 8002eec: 7e13 ldrb r3, [r2, #24] + 8002eee: f043 0308 orr.w r3, r3, #8 + 8002ef2: 7613 strb r3, [r2, #24] if(g->refocus_policy == LV_GROUP_REFOCUS_POLICY_NEXT) - 8002f60: 687b ldr r3, [r7, #4] - 8002f62: 7e1b ldrb r3, [r3, #24] - 8002f64: f003 0304 and.w r3, r3, #4 - 8002f68: b2db uxtb r3, r3 - 8002f6a: 2b00 cmp r3, #0 - 8002f6c: d103 bne.n 8002f76 + 8002ef4: 687b ldr r3, [r7, #4] + 8002ef6: 7e1b ldrb r3, [r3, #24] + 8002ef8: f003 0304 and.w r3, r3, #4 + 8002efc: b2db uxtb r3, r3 + 8002efe: 2b00 cmp r3, #0 + 8002f00: d103 bne.n 8002f0a lv_group_focus_next(g); - 8002f6e: 6878 ldr r0, [r7, #4] - 8002f70: f7ff ff2c bl 8002dcc - 8002f74: e009 b.n 8002f8a + 8002f02: 6878 ldr r0, [r7, #4] + 8002f04: f7ff ff2c bl 8002d60 + 8002f08: e009 b.n 8002f1e else if(g->refocus_policy == LV_GROUP_REFOCUS_POLICY_PREV) - 8002f76: 687b ldr r3, [r7, #4] - 8002f78: 7e1b ldrb r3, [r3, #24] - 8002f7a: f003 0304 and.w r3, r3, #4 - 8002f7e: b2db uxtb r3, r3 - 8002f80: 2b00 cmp r3, #0 - 8002f82: d002 beq.n 8002f8a + 8002f0a: 687b ldr r3, [r7, #4] + 8002f0c: 7e1b ldrb r3, [r3, #24] + 8002f0e: f003 0304 and.w r3, r3, #4 + 8002f12: b2db uxtb r3, r3 + 8002f14: 2b00 cmp r3, #0 + 8002f16: d002 beq.n 8002f1e lv_group_focus_prev(g); - 8002f84: 6878 ldr r0, [r7, #4] - 8002f86: f7ff ff33 bl 8002df0 + 8002f18: 6878 ldr r0, [r7, #4] + 8002f1a: f7ff ff33 bl 8002d84 /*Restore wrap property*/ g->wrap = temp_wrap; - 8002f8a: 7bfb ldrb r3, [r7, #15] - 8002f8c: f003 0301 and.w r3, r3, #1 - 8002f90: b2d9 uxtb r1, r3 - 8002f92: 687a ldr r2, [r7, #4] - 8002f94: 7e13 ldrb r3, [r2, #24] - 8002f96: f361 03c3 bfi r3, r1, #3, #1 - 8002f9a: 7613 strb r3, [r2, #24] + 8002f1e: 7bfb ldrb r3, [r7, #15] + 8002f20: f003 0301 and.w r3, r3, #1 + 8002f24: b2d9 uxtb r1, r3 + 8002f26: 687a ldr r2, [r7, #4] + 8002f28: 7e13 ldrb r3, [r2, #24] + 8002f2a: f361 03c3 bfi r3, r1, #3, #1 + 8002f2e: 7613 strb r3, [r2, #24] } - 8002f9c: bf00 nop - 8002f9e: 3710 adds r7, #16 - 8002fa0: 46bd mov sp, r7 - 8002fa2: bd80 pop {r7, pc} + 8002f30: bf00 nop + 8002f32: 3710 adds r7, #16 + 8002f34: 46bd mov sp, r7 + 8002f36: bd80 pop {r7, pc} -08002fa4 : +08002f38 : static void focus_next_core(lv_group_t * group, void * (*begin)(const lv_ll_t *), void * (*move)(const lv_ll_t *, const void *)) { - 8002fa4: b590 push {r4, r7, lr} - 8002fa6: b08b sub sp, #44 ; 0x2c - 8002fa8: af00 add r7, sp, #0 - 8002faa: 60f8 str r0, [r7, #12] - 8002fac: 60b9 str r1, [r7, #8] - 8002fae: 607a str r2, [r7, #4] + 8002f38: b590 push {r4, r7, lr} + 8002f3a: b08b sub sp, #44 ; 0x2c + 8002f3c: af00 add r7, sp, #0 + 8002f3e: 60f8 str r0, [r7, #12] + 8002f40: 60b9 str r1, [r7, #8] + 8002f42: 607a str r2, [r7, #4] if(group->frozen) return; - 8002fb0: 68fb ldr r3, [r7, #12] - 8002fb2: 7e1b ldrb r3, [r3, #24] - 8002fb4: f003 0301 and.w r3, r3, #1 - 8002fb8: b2db uxtb r3, r3 - 8002fba: 2b00 cmp r3, #0 - 8002fbc: f040 80b3 bne.w 8003126 + 8002f44: 68fb ldr r3, [r7, #12] + 8002f46: 7e1b ldrb r3, [r3, #24] + 8002f48: f003 0301 and.w r3, r3, #1 + 8002f4c: b2db uxtb r3, r3 + 8002f4e: 2b00 cmp r3, #0 + 8002f50: f040 80b3 bne.w 80030ba lv_obj_t ** obj_next = group->obj_focus; - 8002fc0: 68fb ldr r3, [r7, #12] - 8002fc2: 68db ldr r3, [r3, #12] - 8002fc4: 627b str r3, [r7, #36] ; 0x24 + 8002f54: 68fb ldr r3, [r7, #12] + 8002f56: 68db ldr r3, [r3, #12] + 8002f58: 627b str r3, [r7, #36] ; 0x24 lv_obj_t ** obj_sentinel = NULL; - 8002fc6: 2300 movs r3, #0 - 8002fc8: 623b str r3, [r7, #32] + 8002f5a: 2300 movs r3, #0 + 8002f5c: 623b str r3, [r7, #32] bool can_move = true; - 8002fca: 2301 movs r3, #1 - 8002fcc: 77fb strb r3, [r7, #31] + 8002f5e: 2301 movs r3, #1 + 8002f60: 77fb strb r3, [r7, #31] bool can_begin = true; - 8002fce: 2301 movs r3, #1 - 8002fd0: 77bb strb r3, [r7, #30] + 8002f62: 2301 movs r3, #1 + 8002f64: 77bb strb r3, [r7, #30] for(;;) { if(obj_next == NULL) { - 8002fd2: 6a7b ldr r3, [r7, #36] ; 0x24 - 8002fd4: 2b00 cmp r3, #0 - 8002fd6: d11a bne.n 800300e + 8002f66: 6a7b ldr r3, [r7, #36] ; 0x24 + 8002f68: 2b00 cmp r3, #0 + 8002f6a: d11a bne.n 8002fa2 if(group->wrap || obj_sentinel == NULL) { - 8002fd8: 68fb ldr r3, [r7, #12] - 8002fda: 7e1b ldrb r3, [r3, #24] - 8002fdc: f003 0308 and.w r3, r3, #8 - 8002fe0: b2db uxtb r3, r3 - 8002fe2: 2b00 cmp r3, #0 - 8002fe4: d103 bne.n 8002fee - 8002fe6: 6a3b ldr r3, [r7, #32] - 8002fe8: 2b00 cmp r3, #0 - 8002fea: f040 809e bne.w 800312a + 8002f6c: 68fb ldr r3, [r7, #12] + 8002f6e: 7e1b ldrb r3, [r3, #24] + 8002f70: f003 0308 and.w r3, r3, #8 + 8002f74: b2db uxtb r3, r3 + 8002f76: 2b00 cmp r3, #0 + 8002f78: d103 bne.n 8002f82 + 8002f7a: 6a3b ldr r3, [r7, #32] + 8002f7c: 2b00 cmp r3, #0 + 8002f7e: f040 809e bne.w 80030be if(!can_begin) return; - 8002fee: 7fbb ldrb r3, [r7, #30] - 8002ff0: f083 0301 eor.w r3, r3, #1 - 8002ff4: b2db uxtb r3, r3 - 8002ff6: 2b00 cmp r3, #0 - 8002ff8: f040 8099 bne.w 800312e + 8002f82: 7fbb ldrb r3, [r7, #30] + 8002f84: f083 0301 eor.w r3, r3, #1 + 8002f88: b2db uxtb r3, r3 + 8002f8a: 2b00 cmp r3, #0 + 8002f8c: f040 8099 bne.w 80030c2 obj_next = begin(&group->obj_ll); - 8002ffc: 68fa ldr r2, [r7, #12] - 8002ffe: 68bb ldr r3, [r7, #8] - 8003000: 4610 mov r0, r2 - 8003002: 4798 blx r3 - 8003004: 6278 str r0, [r7, #36] ; 0x24 + 8002f90: 68fa ldr r2, [r7, #12] + 8002f92: 68bb ldr r3, [r7, #8] + 8002f94: 4610 mov r0, r2 + 8002f96: 4798 blx r3 + 8002f98: 6278 str r0, [r7, #36] ; 0x24 can_move = false; - 8003006: 2300 movs r3, #0 - 8003008: 77fb strb r3, [r7, #31] + 8002f9a: 2300 movs r3, #0 + 8002f9c: 77fb strb r3, [r7, #31] can_begin = false; - 800300a: 2300 movs r3, #0 - 800300c: 77bb strb r3, [r7, #30] + 8002f9e: 2300 movs r3, #0 + 8002fa0: 77bb strb r3, [r7, #30] /*Currently focused object is the last/first in the group, keep it that way*/ return; } } if(obj_sentinel == NULL) { - 800300e: 6a3b ldr r3, [r7, #32] - 8003010: 2b00 cmp r3, #0 - 8003012: d105 bne.n 8003020 + 8002fa2: 6a3b ldr r3, [r7, #32] + 8002fa4: 2b00 cmp r3, #0 + 8002fa6: d105 bne.n 8002fb4 obj_sentinel = obj_next; - 8003014: 6a7b ldr r3, [r7, #36] ; 0x24 - 8003016: 623b str r3, [r7, #32] + 8002fa8: 6a7b ldr r3, [r7, #36] ; 0x24 + 8002faa: 623b str r3, [r7, #32] if(obj_sentinel == NULL) return; /*Group is empty*/ - 8003018: 6a3b ldr r3, [r7, #32] - 800301a: 2b00 cmp r3, #0 - 800301c: f000 8089 beq.w 8003132 + 8002fac: 6a3b ldr r3, [r7, #32] + 8002fae: 2b00 cmp r3, #0 + 8002fb0: f000 8089 beq.w 80030c6 } if(can_move) { - 8003020: 7ffb ldrb r3, [r7, #31] - 8003022: 2b00 cmp r3, #0 - 8003024: d009 beq.n 800303a + 8002fb4: 7ffb ldrb r3, [r7, #31] + 8002fb6: 2b00 cmp r3, #0 + 8002fb8: d009 beq.n 8002fce obj_next = move(&group->obj_ll, obj_next); - 8003026: 68fa ldr r2, [r7, #12] - 8003028: 687b ldr r3, [r7, #4] - 800302a: 6a79 ldr r1, [r7, #36] ; 0x24 - 800302c: 4610 mov r0, r2 - 800302e: 4798 blx r3 - 8003030: 6278 str r0, [r7, #36] ; 0x24 + 8002fba: 68fa ldr r2, [r7, #12] + 8002fbc: 687b ldr r3, [r7, #4] + 8002fbe: 6a79 ldr r1, [r7, #36] ; 0x24 + 8002fc0: 4610 mov r0, r2 + 8002fc2: 4798 blx r3 + 8002fc4: 6278 str r0, [r7, #36] ; 0x24 /*Give up if we walked the entire list and haven't found another visible object*/ if(obj_next == obj_sentinel) return; - 8003032: 6a7a ldr r2, [r7, #36] ; 0x24 - 8003034: 6a3b ldr r3, [r7, #32] - 8003036: 429a cmp r2, r3 - 8003038: d07d beq.n 8003136 + 8002fc6: 6a7a ldr r2, [r7, #36] ; 0x24 + 8002fc8: 6a3b ldr r3, [r7, #32] + 8002fca: 429a cmp r2, r3 + 8002fcc: d07d beq.n 80030ca } can_move = true; - 800303a: 2301 movs r3, #1 - 800303c: 77fb strb r3, [r7, #31] + 8002fce: 2301 movs r3, #1 + 8002fd0: 77fb strb r3, [r7, #31] if(obj_next == NULL) continue; - 800303e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8003040: 2b00 cmp r3, #0 - 8003042: d028 beq.n 8003096 + 8002fd2: 6a7b ldr r3, [r7, #36] ; 0x24 + 8002fd4: 2b00 cmp r3, #0 + 8002fd6: d028 beq.n 800302a if(lv_obj_get_state(*obj_next) & LV_STATE_DISABLED) continue; - 8003044: 6a7b ldr r3, [r7, #36] ; 0x24 - 8003046: 681b ldr r3, [r3, #0] - 8003048: 4618 mov r0, r3 - 800304a: f003 fbc1 bl 80067d0 - 800304e: 4603 mov r3, r0 - 8003050: f003 0380 and.w r3, r3, #128 ; 0x80 - 8003054: 2b00 cmp r3, #0 - 8003056: d120 bne.n 800309a + 8002fd8: 6a7b ldr r3, [r7, #36] ; 0x24 + 8002fda: 681b ldr r3, [r3, #0] + 8002fdc: 4618 mov r0, r3 + 8002fde: f003 fbc1 bl 8006764 + 8002fe2: 4603 mov r3, r0 + 8002fe4: f003 0380 and.w r3, r3, #128 ; 0x80 + 8002fe8: 2b00 cmp r3, #0 + 8002fea: d120 bne.n 800302e /*Hidden objects don't receive focus. *If any parent is hidden, the object is also hidden)*/ lv_obj_t * parent = *obj_next; - 8003058: 6a7b ldr r3, [r7, #36] ; 0x24 - 800305a: 681b ldr r3, [r3, #0] - 800305c: 61bb str r3, [r7, #24] + 8002fec: 6a7b ldr r3, [r7, #36] ; 0x24 + 8002fee: 681b ldr r3, [r3, #0] + 8002ff0: 61bb str r3, [r7, #24] while(parent) { - 800305e: e00a b.n 8003076 + 8002ff2: e00a b.n 800300a if(lv_obj_has_flag(parent, LV_OBJ_FLAG_HIDDEN)) break; - 8003060: 2101 movs r1, #1 - 8003062: 69b8 ldr r0, [r7, #24] - 8003064: f003 fb8d bl 8006782 - 8003068: 4603 mov r3, r0 - 800306a: 2b00 cmp r3, #0 - 800306c: d107 bne.n 800307e + 8002ff4: 2101 movs r1, #1 + 8002ff6: 69b8 ldr r0, [r7, #24] + 8002ff8: f003 fb8d bl 8006716 + 8002ffc: 4603 mov r3, r0 + 8002ffe: 2b00 cmp r3, #0 + 8003000: d107 bne.n 8003012 parent = lv_obj_get_parent(parent); - 800306e: 69b8 ldr r0, [r7, #24] - 8003070: f00c fb4c bl 800f70c - 8003074: 61b8 str r0, [r7, #24] + 8003002: 69b8 ldr r0, [r7, #24] + 8003004: f00c fb38 bl 800f678 + 8003008: 61b8 str r0, [r7, #24] while(parent) { - 8003076: 69bb ldr r3, [r7, #24] - 8003078: 2b00 cmp r3, #0 - 800307a: d1f1 bne.n 8003060 - 800307c: e000 b.n 8003080 + 800300a: 69bb ldr r3, [r7, #24] + 800300c: 2b00 cmp r3, #0 + 800300e: d1f1 bne.n 8002ff4 + 8003010: e000 b.n 8003014 if(lv_obj_has_flag(parent, LV_OBJ_FLAG_HIDDEN)) break; - 800307e: bf00 nop + 8003012: bf00 nop } if(parent && lv_obj_has_flag(parent, LV_OBJ_FLAG_HIDDEN)) continue; - 8003080: 69bb ldr r3, [r7, #24] - 8003082: 2b00 cmp r3, #0 - 8003084: d00b beq.n 800309e - 8003086: 2101 movs r1, #1 - 8003088: 69b8 ldr r0, [r7, #24] - 800308a: f003 fb7a bl 8006782 - 800308e: 4603 mov r3, r0 - 8003090: 2b00 cmp r3, #0 - 8003092: d004 beq.n 800309e - 8003094: e002 b.n 800309c + 8003014: 69bb ldr r3, [r7, #24] + 8003016: 2b00 cmp r3, #0 + 8003018: d00b beq.n 8003032 + 800301a: 2101 movs r1, #1 + 800301c: 69b8 ldr r0, [r7, #24] + 800301e: f003 fb7a bl 8006716 + 8003022: 4603 mov r3, r0 + 8003024: 2b00 cmp r3, #0 + 8003026: d004 beq.n 8003032 + 8003028: e002 b.n 8003030 if(obj_next == NULL) continue; - 8003096: bf00 nop - 8003098: e79b b.n 8002fd2 + 800302a: bf00 nop + 800302c: e79b b.n 8002f66 if(lv_obj_get_state(*obj_next) & LV_STATE_DISABLED) continue; - 800309a: bf00 nop + 800302e: bf00 nop for(;;) { - 800309c: e799 b.n 8002fd2 + 8003030: e799 b.n 8002f66 /*If we got her a good candidate is found*/ break; - 800309e: bf00 nop + 8003032: bf00 nop } if(obj_next == group->obj_focus) return; /*There's only one visible object and it's already focused*/ - 80030a0: 68fb ldr r3, [r7, #12] - 80030a2: 68db ldr r3, [r3, #12] - 80030a4: 6a7a ldr r2, [r7, #36] ; 0x24 - 80030a6: 429a cmp r2, r3 - 80030a8: d047 beq.n 800313a + 8003034: 68fb ldr r3, [r7, #12] + 8003036: 68db ldr r3, [r3, #12] + 8003038: 6a7a ldr r2, [r7, #36] ; 0x24 + 800303a: 429a cmp r2, r3 + 800303c: d047 beq.n 80030ce if(group->obj_focus) { - 80030aa: 68fb ldr r3, [r7, #12] - 80030ac: 68db ldr r3, [r3, #12] - 80030ae: 2b00 cmp r3, #0 - 80030b0: d016 beq.n 80030e0 + 800303e: 68fb ldr r3, [r7, #12] + 8003040: 68db ldr r3, [r3, #12] + 8003042: 2b00 cmp r3, #0 + 8003044: d016 beq.n 8003074 lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_DEFOCUSED, get_indev(group)); - 80030b2: 68fb ldr r3, [r7, #12] - 80030b4: 68db ldr r3, [r3, #12] - 80030b6: 681c ldr r4, [r3, #0] - 80030b8: 68f8 ldr r0, [r7, #12] - 80030ba: f000 f846 bl 800314a - 80030be: 4603 mov r3, r0 - 80030c0: 461a mov r2, r3 - 80030c2: 210f movs r1, #15 - 80030c4: 4620 mov r0, r4 - 80030c6: f7ff f9db bl 8002480 - 80030ca: 4603 mov r3, r0 - 80030cc: 75fb strb r3, [r7, #23] + 8003046: 68fb ldr r3, [r7, #12] + 8003048: 68db ldr r3, [r3, #12] + 800304a: 681c ldr r4, [r3, #0] + 800304c: 68f8 ldr r0, [r7, #12] + 800304e: f000 f846 bl 80030de + 8003052: 4603 mov r3, r0 + 8003054: 461a mov r2, r3 + 8003056: 210f movs r1, #15 + 8003058: 4620 mov r0, r4 + 800305a: f7ff f9db bl 8002414 + 800305e: 4603 mov r3, r0 + 8003060: 75fb strb r3, [r7, #23] if(res != LV_RES_OK) return; - 80030ce: 7dfb ldrb r3, [r7, #23] - 80030d0: 2b01 cmp r3, #1 - 80030d2: d134 bne.n 800313e + 8003062: 7dfb ldrb r3, [r7, #23] + 8003064: 2b01 cmp r3, #1 + 8003066: d134 bne.n 80030d2 lv_obj_invalidate(*group->obj_focus); - 80030d4: 68fb ldr r3, [r7, #12] - 80030d6: 68db ldr r3, [r3, #12] - 80030d8: 681b ldr r3, [r3, #0] - 80030da: 4618 mov r0, r3 - 80030dc: f007 fce9 bl 800aab2 + 8003068: 68fb ldr r3, [r7, #12] + 800306a: 68db ldr r3, [r3, #12] + 800306c: 681b ldr r3, [r3, #0] + 800306e: 4618 mov r0, r3 + 8003070: f007 fce9 bl 800aa46 } group->obj_focus = obj_next; - 80030e0: 68fb ldr r3, [r7, #12] - 80030e2: 6a7a ldr r2, [r7, #36] ; 0x24 - 80030e4: 60da str r2, [r3, #12] + 8003074: 68fb ldr r3, [r7, #12] + 8003076: 6a7a ldr r2, [r7, #36] ; 0x24 + 8003078: 60da str r2, [r3, #12] lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_FOCUSED, get_indev(group)); - 80030e6: 68fb ldr r3, [r7, #12] - 80030e8: 68db ldr r3, [r3, #12] - 80030ea: 681c ldr r4, [r3, #0] - 80030ec: 68f8 ldr r0, [r7, #12] - 80030ee: f000 f82c bl 800314a - 80030f2: 4603 mov r3, r0 - 80030f4: 461a mov r2, r3 - 80030f6: 210e movs r1, #14 - 80030f8: 4620 mov r0, r4 - 80030fa: f7ff f9c1 bl 8002480 - 80030fe: 4603 mov r3, r0 - 8003100: 75bb strb r3, [r7, #22] + 800307a: 68fb ldr r3, [r7, #12] + 800307c: 68db ldr r3, [r3, #12] + 800307e: 681c ldr r4, [r3, #0] + 8003080: 68f8 ldr r0, [r7, #12] + 8003082: f000 f82c bl 80030de + 8003086: 4603 mov r3, r0 + 8003088: 461a mov r2, r3 + 800308a: 210e movs r1, #14 + 800308c: 4620 mov r0, r4 + 800308e: f7ff f9c1 bl 8002414 + 8003092: 4603 mov r3, r0 + 8003094: 75bb strb r3, [r7, #22] if(res != LV_RES_OK) return; - 8003102: 7dbb ldrb r3, [r7, #22] - 8003104: 2b01 cmp r3, #1 - 8003106: d11c bne.n 8003142 + 8003096: 7dbb ldrb r3, [r7, #22] + 8003098: 2b01 cmp r3, #1 + 800309a: d11c bne.n 80030d6 lv_obj_invalidate(*group->obj_focus); - 8003108: 68fb ldr r3, [r7, #12] - 800310a: 68db ldr r3, [r3, #12] - 800310c: 681b ldr r3, [r3, #0] - 800310e: 4618 mov r0, r3 - 8003110: f007 fccf bl 800aab2 + 800309c: 68fb ldr r3, [r7, #12] + 800309e: 68db ldr r3, [r3, #12] + 80030a0: 681b ldr r3, [r3, #0] + 80030a2: 4618 mov r0, r3 + 80030a4: f007 fccf bl 800aa46 if(group->focus_cb) group->focus_cb(group); - 8003114: 68fb ldr r3, [r7, #12] - 8003116: 691b ldr r3, [r3, #16] - 8003118: 2b00 cmp r3, #0 - 800311a: d013 beq.n 8003144 - 800311c: 68fb ldr r3, [r7, #12] - 800311e: 691b ldr r3, [r3, #16] - 8003120: 68f8 ldr r0, [r7, #12] - 8003122: 4798 blx r3 - 8003124: e00e b.n 8003144 + 80030a8: 68fb ldr r3, [r7, #12] + 80030aa: 691b ldr r3, [r3, #16] + 80030ac: 2b00 cmp r3, #0 + 80030ae: d013 beq.n 80030d8 + 80030b0: 68fb ldr r3, [r7, #12] + 80030b2: 691b ldr r3, [r3, #16] + 80030b4: 68f8 ldr r0, [r7, #12] + 80030b6: 4798 blx r3 + 80030b8: e00e b.n 80030d8 if(group->frozen) return; - 8003126: bf00 nop - 8003128: e00c b.n 8003144 + 80030ba: bf00 nop + 80030bc: e00c b.n 80030d8 return; - 800312a: bf00 nop - 800312c: e00a b.n 8003144 + 80030be: bf00 nop + 80030c0: e00a b.n 80030d8 if(!can_begin) return; - 800312e: bf00 nop - 8003130: e008 b.n 8003144 + 80030c2: bf00 nop + 80030c4: e008 b.n 80030d8 if(obj_sentinel == NULL) return; /*Group is empty*/ - 8003132: bf00 nop - 8003134: e006 b.n 8003144 + 80030c6: bf00 nop + 80030c8: e006 b.n 80030d8 if(obj_next == obj_sentinel) return; - 8003136: bf00 nop - 8003138: e004 b.n 8003144 + 80030ca: bf00 nop + 80030cc: e004 b.n 80030d8 if(obj_next == group->obj_focus) return; /*There's only one visible object and it's already focused*/ - 800313a: bf00 nop - 800313c: e002 b.n 8003144 + 80030ce: bf00 nop + 80030d0: e002 b.n 80030d8 if(res != LV_RES_OK) return; - 800313e: bf00 nop - 8003140: e000 b.n 8003144 + 80030d2: bf00 nop + 80030d4: e000 b.n 80030d8 if(res != LV_RES_OK) return; - 8003142: bf00 nop + 80030d6: bf00 nop } - 8003144: 372c adds r7, #44 ; 0x2c - 8003146: 46bd mov sp, r7 - 8003148: bd90 pop {r4, r7, pc} + 80030d8: 372c adds r7, #44 ; 0x2c + 80030da: 46bd mov sp, r7 + 80030dc: bd90 pop {r4, r7, pc} -0800314a : +080030de : * In the worst case simply return the latest indev * @param g a group the find in the indevs * @return the suggested indev */ static lv_indev_t * get_indev(const lv_group_t * g) { - 800314a: b580 push {r7, lr} - 800314c: b086 sub sp, #24 - 800314e: af00 add r7, sp, #0 - 8003150: 6078 str r0, [r7, #4] + 80030de: b580 push {r7, lr} + 80030e0: b086 sub sp, #24 + 80030e2: af00 add r7, sp, #0 + 80030e4: 6078 str r0, [r7, #4] lv_indev_t * indev_encoder = NULL; - 8003152: 2300 movs r3, #0 - 8003154: 617b str r3, [r7, #20] + 80030e6: 2300 movs r3, #0 + 80030e8: 617b str r3, [r7, #20] lv_indev_t * indev_group = NULL; - 8003156: 2300 movs r3, #0 - 8003158: 613b str r3, [r7, #16] + 80030ea: 2300 movs r3, #0 + 80030ec: 613b str r3, [r7, #16] lv_indev_t * indev = lv_indev_get_next(NULL); - 800315a: 2000 movs r0, #0 - 800315c: f02d fabc bl 80306d8 - 8003160: 60f8 str r0, [r7, #12] + 80030ee: 2000 movs r0, #0 + 80030f0: f02d faa8 bl 8030644 + 80030f4: 60f8 str r0, [r7, #12] while(indev) { - 8003162: e019 b.n 8003198 + 80030f6: e019 b.n 800312c lv_indev_type_t indev_type = lv_indev_get_type(indev); - 8003164: 68f8 ldr r0, [r7, #12] - 8003166: f000 f8e1 bl 800332c - 800316a: 4603 mov r3, r0 - 800316c: 72fb strb r3, [r7, #11] + 80030f8: 68f8 ldr r0, [r7, #12] + 80030fa: f000 f8e1 bl 80032c0 + 80030fe: 4603 mov r3, r0 + 8003100: 72fb strb r3, [r7, #11] if(indev->group == g) { - 800316e: 68fb ldr r3, [r7, #12] - 8003170: 6d1b ldr r3, [r3, #80] ; 0x50 - 8003172: 687a ldr r2, [r7, #4] - 8003174: 429a cmp r2, r3 - 8003176: d10b bne.n 8003190 + 8003102: 68fb ldr r3, [r7, #12] + 8003104: 6d1b ldr r3, [r3, #80] ; 0x50 + 8003106: 687a ldr r2, [r7, #4] + 8003108: 429a cmp r2, r3 + 800310a: d10b bne.n 8003124 /*Prefer KEYPAD*/ if(indev_type == LV_INDEV_TYPE_KEYPAD) return indev; - 8003178: 7afb ldrb r3, [r7, #11] - 800317a: 2b02 cmp r3, #2 - 800317c: d101 bne.n 8003182 - 800317e: 68fb ldr r3, [r7, #12] - 8003180: e01b b.n 80031ba + 800310c: 7afb ldrb r3, [r7, #11] + 800310e: 2b02 cmp r3, #2 + 8003110: d101 bne.n 8003116 + 8003112: 68fb ldr r3, [r7, #12] + 8003114: e01b b.n 800314e if(indev_type == LV_INDEV_TYPE_ENCODER) indev_encoder = indev; - 8003182: 7afb ldrb r3, [r7, #11] - 8003184: 2b04 cmp r3, #4 - 8003186: d101 bne.n 800318c - 8003188: 68fb ldr r3, [r7, #12] - 800318a: 617b str r3, [r7, #20] + 8003116: 7afb ldrb r3, [r7, #11] + 8003118: 2b04 cmp r3, #4 + 800311a: d101 bne.n 8003120 + 800311c: 68fb ldr r3, [r7, #12] + 800311e: 617b str r3, [r7, #20] indev_group = indev; - 800318c: 68fb ldr r3, [r7, #12] - 800318e: 613b str r3, [r7, #16] + 8003120: 68fb ldr r3, [r7, #12] + 8003122: 613b str r3, [r7, #16] } indev = lv_indev_get_next(indev); - 8003190: 68f8 ldr r0, [r7, #12] - 8003192: f02d faa1 bl 80306d8 - 8003196: 60f8 str r0, [r7, #12] + 8003124: 68f8 ldr r0, [r7, #12] + 8003126: f02d fa8d bl 8030644 + 800312a: 60f8 str r0, [r7, #12] while(indev) { - 8003198: 68fb ldr r3, [r7, #12] - 800319a: 2b00 cmp r3, #0 - 800319c: d1e2 bne.n 8003164 + 800312c: 68fb ldr r3, [r7, #12] + 800312e: 2b00 cmp r3, #0 + 8003130: d1e2 bne.n 80030f8 } if(indev_encoder) return indev_encoder; - 800319e: 697b ldr r3, [r7, #20] - 80031a0: 2b00 cmp r3, #0 - 80031a2: d001 beq.n 80031a8 - 80031a4: 697b ldr r3, [r7, #20] - 80031a6: e008 b.n 80031ba + 8003132: 697b ldr r3, [r7, #20] + 8003134: 2b00 cmp r3, #0 + 8003136: d001 beq.n 800313c + 8003138: 697b ldr r3, [r7, #20] + 800313a: e008 b.n 800314e if(indev_group) return indev_group; - 80031a8: 693b ldr r3, [r7, #16] - 80031aa: 2b00 cmp r3, #0 - 80031ac: d001 beq.n 80031b2 - 80031ae: 693b ldr r3, [r7, #16] - 80031b0: e003 b.n 80031ba + 800313c: 693b ldr r3, [r7, #16] + 800313e: 2b00 cmp r3, #0 + 8003140: d001 beq.n 8003146 + 8003142: 693b ldr r3, [r7, #16] + 8003144: e003 b.n 800314e /*In lack of a better option use the first input device. (It can be NULL if there is no input device)*/ return lv_indev_get_next(NULL); - 80031b2: 2000 movs r0, #0 - 80031b4: f02d fa90 bl 80306d8 - 80031b8: 4603 mov r3, r0 + 8003146: 2000 movs r0, #0 + 8003148: f02d fa7c bl 8030644 + 800314c: 4603 mov r3, r0 } - 80031ba: 4618 mov r0, r3 - 80031bc: 3718 adds r7, #24 - 80031be: 46bd mov sp, r7 - 80031c0: bd80 pop {r7, pc} + 800314e: 4618 mov r0, r3 + 8003150: 3718 adds r7, #24 + 8003152: 46bd mov sp, r7 + 8003154: bd80 pop {r7, pc} ... -080031c4 : +08003158 : /********************** * GLOBAL FUNCTIONS **********************/ void lv_indev_read_timer_cb(lv_timer_t * timer) { - 80031c4: b590 push {r4, r7, lr} - 80031c6: b089 sub sp, #36 ; 0x24 - 80031c8: af00 add r7, sp, #0 - 80031ca: 6078 str r0, [r7, #4] + 8003158: b590 push {r4, r7, lr} + 800315a: b089 sub sp, #36 ; 0x24 + 800315c: af00 add r7, sp, #0 + 800315e: 6078 str r0, [r7, #4] INDEV_TRACE("begin"); lv_indev_data_t data; indev_act = timer->user_data; - 80031cc: 687b ldr r3, [r7, #4] - 80031ce: 68db ldr r3, [r3, #12] - 80031d0: 4a4f ldr r2, [pc, #316] ; (8003310 ) - 80031d2: 6013 str r3, [r2, #0] + 8003160: 687b ldr r3, [r7, #4] + 8003162: 68db ldr r3, [r3, #12] + 8003164: 4a4f ldr r2, [pc, #316] ; (80032a4 ) + 8003166: 6013 str r3, [r2, #0] /*Read and process all indevs*/ if(indev_act->driver->disp == NULL) return; /*Not assigned to any displays*/ - 80031d4: 4b4e ldr r3, [pc, #312] ; (8003310 ) - 80031d6: 681b ldr r3, [r3, #0] - 80031d8: 681b ldr r3, [r3, #0] - 80031da: 691b ldr r3, [r3, #16] - 80031dc: 2b00 cmp r3, #0 - 80031de: f000 8090 beq.w 8003302 + 8003168: 4b4e ldr r3, [pc, #312] ; (80032a4 ) + 800316a: 681b ldr r3, [r3, #0] + 800316c: 681b ldr r3, [r3, #0] + 800316e: 691b ldr r3, [r3, #16] + 8003170: 2b00 cmp r3, #0 + 8003172: f000 8090 beq.w 8003296 /*Handle reset query before processing the point*/ indev_proc_reset_query_handler(indev_act); - 80031e2: 4b4b ldr r3, [pc, #300] ; (8003310 ) - 80031e4: 681b ldr r3, [r3, #0] - 80031e6: 4618 mov r0, r3 - 80031e8: f001 fb3c bl 8004864 + 8003176: 4b4b ldr r3, [pc, #300] ; (80032a4 ) + 8003178: 681b ldr r3, [r3, #0] + 800317a: 4618 mov r0, r3 + 800317c: f001 fb3c bl 80047f8 if(indev_act->proc.disabled) return; - 80031ec: 4b48 ldr r3, [pc, #288] ; (8003310 ) - 80031ee: 681b ldr r3, [r3, #0] - 80031f0: 795b ldrb r3, [r3, #5] - 80031f2: f003 0304 and.w r3, r3, #4 - 80031f6: b2db uxtb r3, r3 - 80031f8: 2b00 cmp r3, #0 - 80031fa: f040 8084 bne.w 8003306 + 8003180: 4b48 ldr r3, [pc, #288] ; (80032a4 ) + 8003182: 681b ldr r3, [r3, #0] + 8003184: 795b ldrb r3, [r3, #5] + 8003186: f003 0304 and.w r3, r3, #4 + 800318a: b2db uxtb r3, r3 + 800318c: 2b00 cmp r3, #0 + 800318e: f040 8084 bne.w 800329a bool continue_reading; do { /*Read the data*/ _lv_indev_read(indev_act, &data); - 80031fe: 4b44 ldr r3, [pc, #272] ; (8003310 ) - 8003200: 681b ldr r3, [r3, #0] - 8003202: f107 020c add.w r2, r7, #12 - 8003206: 4611 mov r1, r2 - 8003208: 4618 mov r0, r3 - 800320a: f02d fa7d bl 8030708 <_lv_indev_read> + 8003192: 4b44 ldr r3, [pc, #272] ; (80032a4 ) + 8003194: 681b ldr r3, [r3, #0] + 8003196: f107 020c add.w r2, r7, #12 + 800319a: 4611 mov r1, r2 + 800319c: 4618 mov r0, r3 + 800319e: f02d fa69 bl 8030674 <_lv_indev_read> continue_reading = data.continue_reading; - 800320e: 7efb ldrb r3, [r7, #27] - 8003210: 77fb strb r3, [r7, #31] + 80031a2: 7efb ldrb r3, [r7, #27] + 80031a4: 77fb strb r3, [r7, #31] /*The active object might deleted even in the read function*/ indev_proc_reset_query_handler(indev_act); - 8003212: 4b3f ldr r3, [pc, #252] ; (8003310 ) - 8003214: 681b ldr r3, [r3, #0] - 8003216: 4618 mov r0, r3 - 8003218: f001 fb24 bl 8004864 + 80031a6: 4b3f ldr r3, [pc, #252] ; (80032a4 ) + 80031a8: 681b ldr r3, [r3, #0] + 80031aa: 4618 mov r0, r3 + 80031ac: f001 fb24 bl 80047f8 indev_obj_act = NULL; - 800321c: 4b3d ldr r3, [pc, #244] ; (8003314 ) - 800321e: 2200 movs r2, #0 - 8003220: 601a str r2, [r3, #0] + 80031b0: 4b3d ldr r3, [pc, #244] ; (80032a8 ) + 80031b2: 2200 movs r2, #0 + 80031b4: 601a str r2, [r3, #0] indev_act->proc.state = data.state; - 8003222: 4b3b ldr r3, [pc, #236] ; (8003310 ) - 8003224: 681b ldr r3, [r3, #0] - 8003226: 7eba ldrb r2, [r7, #26] - 8003228: 711a strb r2, [r3, #4] + 80031b6: 4b3b ldr r3, [pc, #236] ; (80032a4 ) + 80031b8: 681b ldr r3, [r3, #0] + 80031ba: 7eba ldrb r2, [r7, #26] + 80031bc: 711a strb r2, [r3, #4] /*Save the last activity time*/ if(indev_act->proc.state == LV_INDEV_STATE_PRESSED) { - 800322a: 4b39 ldr r3, [pc, #228] ; (8003310 ) - 800322c: 681b ldr r3, [r3, #0] - 800322e: 791b ldrb r3, [r3, #4] - 8003230: 2b01 cmp r3, #1 - 8003232: d109 bne.n 8003248 + 80031be: 4b39 ldr r3, [pc, #228] ; (80032a4 ) + 80031c0: 681b ldr r3, [r3, #0] + 80031c2: 791b ldrb r3, [r3, #4] + 80031c4: 2b01 cmp r3, #1 + 80031c6: d109 bne.n 80031dc indev_act->driver->disp->last_activity_time = lv_tick_get(); - 8003234: 4b36 ldr r3, [pc, #216] ; (8003310 ) - 8003236: 681b ldr r3, [r3, #0] - 8003238: 681b ldr r3, [r3, #0] - 800323a: 691c ldr r4, [r3, #16] - 800323c: f02d fab6 bl 80307ac - 8003240: 4603 mov r3, r0 - 8003242: f8c4 3154 str.w r3, [r4, #340] ; 0x154 - 8003246: e012 b.n 800326e + 80031c8: 4b36 ldr r3, [pc, #216] ; (80032a4 ) + 80031ca: 681b ldr r3, [r3, #0] + 80031cc: 681b ldr r3, [r3, #0] + 80031ce: 691c ldr r4, [r3, #16] + 80031d0: f02d faa2 bl 8030718 + 80031d4: 4603 mov r3, r0 + 80031d6: f8c4 3154 str.w r3, [r4, #340] ; 0x154 + 80031da: e012 b.n 8003202 } else if(indev_act->driver->type == LV_INDEV_TYPE_ENCODER && data.enc_diff) { - 8003248: 4b31 ldr r3, [pc, #196] ; (8003310 ) - 800324a: 681b ldr r3, [r3, #0] - 800324c: 681b ldr r3, [r3, #0] - 800324e: 781b ldrb r3, [r3, #0] - 8003250: 2b04 cmp r3, #4 - 8003252: d10c bne.n 800326e - 8003254: f9b7 3018 ldrsh.w r3, [r7, #24] - 8003258: 2b00 cmp r3, #0 - 800325a: d008 beq.n 800326e + 80031dc: 4b31 ldr r3, [pc, #196] ; (80032a4 ) + 80031de: 681b ldr r3, [r3, #0] + 80031e0: 681b ldr r3, [r3, #0] + 80031e2: 781b ldrb r3, [r3, #0] + 80031e4: 2b04 cmp r3, #4 + 80031e6: d10c bne.n 8003202 + 80031e8: f9b7 3018 ldrsh.w r3, [r7, #24] + 80031ec: 2b00 cmp r3, #0 + 80031ee: d008 beq.n 8003202 indev_act->driver->disp->last_activity_time = lv_tick_get(); - 800325c: 4b2c ldr r3, [pc, #176] ; (8003310 ) - 800325e: 681b ldr r3, [r3, #0] - 8003260: 681b ldr r3, [r3, #0] - 8003262: 691c ldr r4, [r3, #16] - 8003264: f02d faa2 bl 80307ac - 8003268: 4603 mov r3, r0 - 800326a: f8c4 3154 str.w r3, [r4, #340] ; 0x154 + 80031f0: 4b2c ldr r3, [pc, #176] ; (80032a4 ) + 80031f2: 681b ldr r3, [r3, #0] + 80031f4: 681b ldr r3, [r3, #0] + 80031f6: 691c ldr r4, [r3, #16] + 80031f8: f02d fa8e bl 8030718 + 80031fc: 4603 mov r3, r0 + 80031fe: f8c4 3154 str.w r3, [r4, #340] ; 0x154 } if(indev_act->driver->type == LV_INDEV_TYPE_POINTER) { - 800326e: 4b28 ldr r3, [pc, #160] ; (8003310 ) - 8003270: 681b ldr r3, [r3, #0] - 8003272: 681b ldr r3, [r3, #0] - 8003274: 781b ldrb r3, [r3, #0] - 8003276: 2b01 cmp r3, #1 - 8003278: d108 bne.n 800328c + 8003202: 4b28 ldr r3, [pc, #160] ; (80032a4 ) + 8003204: 681b ldr r3, [r3, #0] + 8003206: 681b ldr r3, [r3, #0] + 8003208: 781b ldrb r3, [r3, #0] + 800320a: 2b01 cmp r3, #1 + 800320c: d108 bne.n 8003220 indev_pointer_proc(indev_act, &data); - 800327a: 4b25 ldr r3, [pc, #148] ; (8003310 ) - 800327c: 681b ldr r3, [r3, #0] - 800327e: f107 020c add.w r2, r7, #12 - 8003282: 4611 mov r1, r2 - 8003284: 4618 mov r0, r3 - 8003286: f000 fa3b bl 8003700 - 800328a: e02b b.n 80032e4 + 800320e: 4b25 ldr r3, [pc, #148] ; (80032a4 ) + 8003210: 681b ldr r3, [r3, #0] + 8003212: f107 020c add.w r2, r7, #12 + 8003216: 4611 mov r1, r2 + 8003218: 4618 mov r0, r3 + 800321a: f000 fa3b bl 8003694 + 800321e: e02b b.n 8003278 } else if(indev_act->driver->type == LV_INDEV_TYPE_KEYPAD) { - 800328c: 4b20 ldr r3, [pc, #128] ; (8003310 ) - 800328e: 681b ldr r3, [r3, #0] - 8003290: 681b ldr r3, [r3, #0] - 8003292: 781b ldrb r3, [r3, #0] - 8003294: 2b02 cmp r3, #2 - 8003296: d108 bne.n 80032aa + 8003220: 4b20 ldr r3, [pc, #128] ; (80032a4 ) + 8003222: 681b ldr r3, [r3, #0] + 8003224: 681b ldr r3, [r3, #0] + 8003226: 781b ldrb r3, [r3, #0] + 8003228: 2b02 cmp r3, #2 + 800322a: d108 bne.n 800323e indev_keypad_proc(indev_act, &data); - 8003298: 4b1d ldr r3, [pc, #116] ; (8003310 ) - 800329a: 681b ldr r3, [r3, #0] - 800329c: f107 020c add.w r2, r7, #12 - 80032a0: 4611 mov r1, r2 - 80032a2: 4618 mov r0, r3 - 80032a4: f000 fae6 bl 8003874 - 80032a8: e01c b.n 80032e4 + 800322c: 4b1d ldr r3, [pc, #116] ; (80032a4 ) + 800322e: 681b ldr r3, [r3, #0] + 8003230: f107 020c add.w r2, r7, #12 + 8003234: 4611 mov r1, r2 + 8003236: 4618 mov r0, r3 + 8003238: f000 fae6 bl 8003808 + 800323c: e01c b.n 8003278 } else if(indev_act->driver->type == LV_INDEV_TYPE_ENCODER) { - 80032aa: 4b19 ldr r3, [pc, #100] ; (8003310 ) - 80032ac: 681b ldr r3, [r3, #0] - 80032ae: 681b ldr r3, [r3, #0] - 80032b0: 781b ldrb r3, [r3, #0] - 80032b2: 2b04 cmp r3, #4 - 80032b4: d108 bne.n 80032c8 + 800323e: 4b19 ldr r3, [pc, #100] ; (80032a4 ) + 8003240: 681b ldr r3, [r3, #0] + 8003242: 681b ldr r3, [r3, #0] + 8003244: 781b ldrb r3, [r3, #0] + 8003246: 2b04 cmp r3, #4 + 8003248: d108 bne.n 800325c indev_encoder_proc(indev_act, &data); - 80032b6: 4b16 ldr r3, [pc, #88] ; (8003310 ) - 80032b8: 681b ldr r3, [r3, #0] - 80032ba: f107 020c add.w r2, r7, #12 - 80032be: 4611 mov r1, r2 - 80032c0: 4618 mov r0, r3 - 80032c2: f000 fcb5 bl 8003c30 - 80032c6: e00d b.n 80032e4 + 800324a: 4b16 ldr r3, [pc, #88] ; (80032a4 ) + 800324c: 681b ldr r3, [r3, #0] + 800324e: f107 020c add.w r2, r7, #12 + 8003252: 4611 mov r1, r2 + 8003254: 4618 mov r0, r3 + 8003256: f000 fcb5 bl 8003bc4 + 800325a: e00d b.n 8003278 } else if(indev_act->driver->type == LV_INDEV_TYPE_BUTTON) { - 80032c8: 4b11 ldr r3, [pc, #68] ; (8003310 ) - 80032ca: 681b ldr r3, [r3, #0] - 80032cc: 681b ldr r3, [r3, #0] - 80032ce: 781b ldrb r3, [r3, #0] - 80032d0: 2b03 cmp r3, #3 - 80032d2: d107 bne.n 80032e4 + 800325c: 4b11 ldr r3, [pc, #68] ; (80032a4 ) + 800325e: 681b ldr r3, [r3, #0] + 8003260: 681b ldr r3, [r3, #0] + 8003262: 781b ldrb r3, [r3, #0] + 8003264: 2b03 cmp r3, #3 + 8003266: d107 bne.n 8003278 indev_button_proc(indev_act, &data); - 80032d4: 4b0e ldr r3, [pc, #56] ; (8003310 ) - 80032d6: 681b ldr r3, [r3, #0] - 80032d8: f107 020c add.w r2, r7, #12 - 80032dc: 4611 mov r1, r2 - 80032de: 4618 mov r0, r3 - 80032e0: f000 ffa8 bl 8004234 + 8003268: 4b0e ldr r3, [pc, #56] ; (80032a4 ) + 800326a: 681b ldr r3, [r3, #0] + 800326c: f107 020c add.w r2, r7, #12 + 8003270: 4611 mov r1, r2 + 8003272: 4618 mov r0, r3 + 8003274: f000 ffa8 bl 80041c8 } /*Handle reset query if it happened in during processing*/ indev_proc_reset_query_handler(indev_act); - 80032e4: 4b0a ldr r3, [pc, #40] ; (8003310 ) - 80032e6: 681b ldr r3, [r3, #0] - 80032e8: 4618 mov r0, r3 - 80032ea: f001 fabb bl 8004864 + 8003278: 4b0a ldr r3, [pc, #40] ; (80032a4 ) + 800327a: 681b ldr r3, [r3, #0] + 800327c: 4618 mov r0, r3 + 800327e: f001 fabb bl 80047f8 } while(continue_reading); - 80032ee: 7ffb ldrb r3, [r7, #31] - 80032f0: 2b00 cmp r3, #0 - 80032f2: d184 bne.n 80031fe + 8003282: 7ffb ldrb r3, [r7, #31] + 8003284: 2b00 cmp r3, #0 + 8003286: d184 bne.n 8003192 /*End of indev processing, so no act indev*/ indev_act = NULL; - 80032f4: 4b06 ldr r3, [pc, #24] ; (8003310 ) - 80032f6: 2200 movs r2, #0 - 80032f8: 601a str r2, [r3, #0] + 8003288: 4b06 ldr r3, [pc, #24] ; (80032a4 ) + 800328a: 2200 movs r2, #0 + 800328c: 601a str r2, [r3, #0] indev_obj_act = NULL; - 80032fa: 4b06 ldr r3, [pc, #24] ; (8003314 ) - 80032fc: 2200 movs r2, #0 - 80032fe: 601a str r2, [r3, #0] - 8003300: e002 b.n 8003308 + 800328e: 4b06 ldr r3, [pc, #24] ; (80032a8 ) + 8003290: 2200 movs r2, #0 + 8003292: 601a str r2, [r3, #0] + 8003294: e002 b.n 800329c if(indev_act->driver->disp == NULL) return; /*Not assigned to any displays*/ - 8003302: bf00 nop - 8003304: e000 b.n 8003308 + 8003296: bf00 nop + 8003298: e000 b.n 800329c if(indev_act->proc.disabled) return; - 8003306: bf00 nop + 800329a: bf00 nop INDEV_TRACE("finished"); } - 8003308: 3724 adds r7, #36 ; 0x24 - 800330a: 46bd mov sp, r7 - 800330c: bd90 pop {r4, r7, pc} - 800330e: bf00 nop - 8003310: 20001af4 .word 0x20001af4 - 8003314: 20001af8 .word 0x20001af8 + 800329c: 3724 adds r7, #36 ; 0x24 + 800329e: 46bd mov sp, r7 + 80032a0: bd90 pop {r4, r7, pc} + 80032a2: bf00 nop + 80032a4: 20001af4 .word 0x20001af4 + 80032a8: 20001af8 .word 0x20001af8 -08003318 : +080032ac : indev->proc.disabled = en ? 0 : 1; } lv_indev_t * lv_indev_get_act(void) { - 8003318: b480 push {r7} - 800331a: af00 add r7, sp, #0 + 80032ac: b480 push {r7} + 80032ae: af00 add r7, sp, #0 return indev_act; - 800331c: 4b02 ldr r3, [pc, #8] ; (8003328 ) - 800331e: 681b ldr r3, [r3, #0] + 80032b0: 4b02 ldr r3, [pc, #8] ; (80032bc ) + 80032b2: 681b ldr r3, [r3, #0] } - 8003320: 4618 mov r0, r3 - 8003322: 46bd mov sp, r7 - 8003324: bc80 pop {r7} - 8003326: 4770 bx lr - 8003328: 20001af4 .word 0x20001af4 + 80032b4: 4618 mov r0, r3 + 80032b6: 46bd mov sp, r7 + 80032b8: bc80 pop {r7} + 80032ba: 4770 bx lr + 80032bc: 20001af4 .word 0x20001af4 -0800332c : +080032c0 : lv_indev_type_t lv_indev_get_type(const lv_indev_t * indev) { - 800332c: b480 push {r7} - 800332e: b083 sub sp, #12 - 8003330: af00 add r7, sp, #0 - 8003332: 6078 str r0, [r7, #4] + 80032c0: b480 push {r7} + 80032c2: b083 sub sp, #12 + 80032c4: af00 add r7, sp, #0 + 80032c6: 6078 str r0, [r7, #4] if(indev == NULL) return LV_INDEV_TYPE_NONE; - 8003334: 687b ldr r3, [r7, #4] - 8003336: 2b00 cmp r3, #0 - 8003338: d101 bne.n 800333e - 800333a: 2300 movs r3, #0 - 800333c: e002 b.n 8003344 + 80032c8: 687b ldr r3, [r7, #4] + 80032ca: 2b00 cmp r3, #0 + 80032cc: d101 bne.n 80032d2 + 80032ce: 2300 movs r3, #0 + 80032d0: e002 b.n 80032d8 return indev->driver->type; - 800333e: 687b ldr r3, [r7, #4] - 8003340: 681b ldr r3, [r3, #0] - 8003342: 781b ldrb r3, [r3, #0] + 80032d2: 687b ldr r3, [r7, #4] + 80032d4: 681b ldr r3, [r3, #0] + 80032d6: 781b ldrb r3, [r3, #0] } - 8003344: 4618 mov r0, r3 - 8003346: 370c adds r7, #12 - 8003348: 46bd mov sp, r7 - 800334a: bc80 pop {r7} - 800334c: 4770 bx lr + 80032d8: 4618 mov r0, r3 + 80032da: 370c adds r7, #12 + 80032dc: 46bd mov sp, r7 + 80032de: bc80 pop {r7} + 80032e0: 4770 bx lr ... -08003350 : +080032e4 : void lv_indev_reset(lv_indev_t * indev, lv_obj_t * obj) { - 8003350: b580 push {r7, lr} - 8003352: b084 sub sp, #16 - 8003354: af00 add r7, sp, #0 - 8003356: 6078 str r0, [r7, #4] - 8003358: 6039 str r1, [r7, #0] + 80032e4: b580 push {r7, lr} + 80032e6: b084 sub sp, #16 + 80032e8: af00 add r7, sp, #0 + 80032ea: 6078 str r0, [r7, #4] + 80032ec: 6039 str r1, [r7, #0] if(indev) { - 800335a: 687b ldr r3, [r7, #4] - 800335c: 2b00 cmp r3, #0 - 800335e: d038 beq.n 80033d2 + 80032ee: 687b ldr r3, [r7, #4] + 80032f0: 2b00 cmp r3, #0 + 80032f2: d038 beq.n 8003366 indev->proc.reset_query = 1; - 8003360: 687a ldr r2, [r7, #4] - 8003362: 7953 ldrb r3, [r2, #5] - 8003364: f043 0302 orr.w r3, r3, #2 - 8003368: 7153 strb r3, [r2, #5] + 80032f4: 687a ldr r2, [r7, #4] + 80032f6: 7953 ldrb r3, [r2, #5] + 80032f8: f043 0302 orr.w r3, r3, #2 + 80032fc: 7153 strb r3, [r2, #5] if(indev_act == indev) indev_obj_act = NULL; - 800336a: 4b3b ldr r3, [pc, #236] ; (8003458 ) - 800336c: 681b ldr r3, [r3, #0] - 800336e: 687a ldr r2, [r7, #4] - 8003370: 429a cmp r2, r3 - 8003372: d102 bne.n 800337a - 8003374: 4b39 ldr r3, [pc, #228] ; (800345c ) - 8003376: 2200 movs r2, #0 - 8003378: 601a str r2, [r3, #0] + 80032fe: 4b3b ldr r3, [pc, #236] ; (80033ec ) + 8003300: 681b ldr r3, [r3, #0] + 8003302: 687a ldr r2, [r7, #4] + 8003304: 429a cmp r2, r3 + 8003306: d102 bne.n 800330e + 8003308: 4b39 ldr r3, [pc, #228] ; (80033f0 ) + 800330a: 2200 movs r2, #0 + 800330c: 601a str r2, [r3, #0] if(indev->driver->type == LV_INDEV_TYPE_POINTER || indev->driver->type == LV_INDEV_TYPE_KEYPAD) { - 800337a: 687b ldr r3, [r7, #4] - 800337c: 681b ldr r3, [r3, #0] - 800337e: 781b ldrb r3, [r3, #0] - 8003380: 2b01 cmp r3, #1 - 8003382: d004 beq.n 800338e - 8003384: 687b ldr r3, [r7, #4] - 8003386: 681b ldr r3, [r3, #0] - 8003388: 781b ldrb r3, [r3, #0] - 800338a: 2b02 cmp r3, #2 - 800338c: d160 bne.n 8003450 + 800330e: 687b ldr r3, [r7, #4] + 8003310: 681b ldr r3, [r3, #0] + 8003312: 781b ldrb r3, [r3, #0] + 8003314: 2b01 cmp r3, #1 + 8003316: d004 beq.n 8003322 + 8003318: 687b ldr r3, [r7, #4] + 800331a: 681b ldr r3, [r3, #0] + 800331c: 781b ldrb r3, [r3, #0] + 800331e: 2b02 cmp r3, #2 + 8003320: d160 bne.n 80033e4 if(obj == NULL || indev->proc.types.pointer.last_pressed == obj) { - 800338e: 683b ldr r3, [r7, #0] - 8003390: 2b00 cmp r3, #0 - 8003392: d004 beq.n 800339e - 8003394: 687b ldr r3, [r7, #4] - 8003396: 6b1b ldr r3, [r3, #48] ; 0x30 - 8003398: 683a ldr r2, [r7, #0] - 800339a: 429a cmp r2, r3 - 800339c: d102 bne.n 80033a4 + 8003322: 683b ldr r3, [r7, #0] + 8003324: 2b00 cmp r3, #0 + 8003326: d004 beq.n 8003332 + 8003328: 687b ldr r3, [r7, #4] + 800332a: 6b1b ldr r3, [r3, #48] ; 0x30 + 800332c: 683a ldr r2, [r7, #0] + 800332e: 429a cmp r2, r3 + 8003330: d102 bne.n 8003338 indev->proc.types.pointer.last_pressed = NULL; - 800339e: 687b ldr r3, [r7, #4] - 80033a0: 2200 movs r2, #0 - 80033a2: 631a str r2, [r3, #48] ; 0x30 + 8003332: 687b ldr r3, [r7, #4] + 8003334: 2200 movs r2, #0 + 8003336: 631a str r2, [r3, #48] ; 0x30 } if(obj == NULL || indev->proc.types.pointer.act_obj == obj) { - 80033a4: 683b ldr r3, [r7, #0] - 80033a6: 2b00 cmp r3, #0 - 80033a8: d004 beq.n 80033b4 - 80033aa: 687b ldr r3, [r7, #4] - 80033ac: 6a5b ldr r3, [r3, #36] ; 0x24 - 80033ae: 683a ldr r2, [r7, #0] - 80033b0: 429a cmp r2, r3 - 80033b2: d102 bne.n 80033ba + 8003338: 683b ldr r3, [r7, #0] + 800333a: 2b00 cmp r3, #0 + 800333c: d004 beq.n 8003348 + 800333e: 687b ldr r3, [r7, #4] + 8003340: 6a5b ldr r3, [r3, #36] ; 0x24 + 8003342: 683a ldr r2, [r7, #0] + 8003344: 429a cmp r2, r3 + 8003346: d102 bne.n 800334e indev->proc.types.pointer.act_obj = NULL; - 80033b4: 687b ldr r3, [r7, #4] - 80033b6: 2200 movs r2, #0 - 80033b8: 625a str r2, [r3, #36] ; 0x24 + 8003348: 687b ldr r3, [r7, #4] + 800334a: 2200 movs r2, #0 + 800334c: 625a str r2, [r3, #36] ; 0x24 } if(obj == NULL || indev->proc.types.pointer.last_obj == obj) { - 80033ba: 683b ldr r3, [r7, #0] - 80033bc: 2b00 cmp r3, #0 - 80033be: d004 beq.n 80033ca - 80033c0: 687b ldr r3, [r7, #4] - 80033c2: 6a9b ldr r3, [r3, #40] ; 0x28 - 80033c4: 683a ldr r2, [r7, #0] - 80033c6: 429a cmp r2, r3 - 80033c8: d142 bne.n 8003450 + 800334e: 683b ldr r3, [r7, #0] + 8003350: 2b00 cmp r3, #0 + 8003352: d004 beq.n 800335e + 8003354: 687b ldr r3, [r7, #4] + 8003356: 6a9b ldr r3, [r3, #40] ; 0x28 + 8003358: 683a ldr r2, [r7, #0] + 800335a: 429a cmp r2, r3 + 800335c: d142 bne.n 80033e4 indev->proc.types.pointer.last_obj = NULL; - 80033ca: 687b ldr r3, [r7, #4] - 80033cc: 2200 movs r2, #0 - 80033ce: 629a str r2, [r3, #40] ; 0x28 + 800335e: 687b ldr r3, [r7, #4] + 8003360: 2200 movs r2, #0 + 8003362: 629a str r2, [r3, #40] ; 0x28 } i = lv_indev_get_next(i); } indev_obj_act = NULL; } } - 80033d0: e03e b.n 8003450 + 8003364: e03e b.n 80033e4 lv_indev_t * i = lv_indev_get_next(NULL); - 80033d2: 2000 movs r0, #0 - 80033d4: f02d f980 bl 80306d8 - 80033d8: 60f8 str r0, [r7, #12] + 8003366: 2000 movs r0, #0 + 8003368: f02d f96c bl 8030644 + 800336c: 60f8 str r0, [r7, #12] while(i) { - 80033da: e033 b.n 8003444 + 800336e: e033 b.n 80033d8 i->proc.reset_query = 1; - 80033dc: 68fa ldr r2, [r7, #12] - 80033de: 7953 ldrb r3, [r2, #5] - 80033e0: f043 0302 orr.w r3, r3, #2 - 80033e4: 7153 strb r3, [r2, #5] + 8003370: 68fa ldr r2, [r7, #12] + 8003372: 7953 ldrb r3, [r2, #5] + 8003374: f043 0302 orr.w r3, r3, #2 + 8003378: 7153 strb r3, [r2, #5] if(i->driver->type == LV_INDEV_TYPE_POINTER || i->driver->type == LV_INDEV_TYPE_KEYPAD) { - 80033e6: 68fb ldr r3, [r7, #12] - 80033e8: 681b ldr r3, [r3, #0] - 80033ea: 781b ldrb r3, [r3, #0] - 80033ec: 2b01 cmp r3, #1 - 80033ee: d004 beq.n 80033fa - 80033f0: 68fb ldr r3, [r7, #12] - 80033f2: 681b ldr r3, [r3, #0] - 80033f4: 781b ldrb r3, [r3, #0] - 80033f6: 2b02 cmp r3, #2 - 80033f8: d120 bne.n 800343c + 800337a: 68fb ldr r3, [r7, #12] + 800337c: 681b ldr r3, [r3, #0] + 800337e: 781b ldrb r3, [r3, #0] + 8003380: 2b01 cmp r3, #1 + 8003382: d004 beq.n 800338e + 8003384: 68fb ldr r3, [r7, #12] + 8003386: 681b ldr r3, [r3, #0] + 8003388: 781b ldrb r3, [r3, #0] + 800338a: 2b02 cmp r3, #2 + 800338c: d120 bne.n 80033d0 if(obj == NULL || i->proc.types.pointer.last_pressed == obj) { - 80033fa: 683b ldr r3, [r7, #0] - 80033fc: 2b00 cmp r3, #0 - 80033fe: d004 beq.n 800340a - 8003400: 68fb ldr r3, [r7, #12] - 8003402: 6b1b ldr r3, [r3, #48] ; 0x30 - 8003404: 683a ldr r2, [r7, #0] - 8003406: 429a cmp r2, r3 - 8003408: d102 bne.n 8003410 + 800338e: 683b ldr r3, [r7, #0] + 8003390: 2b00 cmp r3, #0 + 8003392: d004 beq.n 800339e + 8003394: 68fb ldr r3, [r7, #12] + 8003396: 6b1b ldr r3, [r3, #48] ; 0x30 + 8003398: 683a ldr r2, [r7, #0] + 800339a: 429a cmp r2, r3 + 800339c: d102 bne.n 80033a4 i->proc.types.pointer.last_pressed = NULL; - 800340a: 68fb ldr r3, [r7, #12] - 800340c: 2200 movs r2, #0 - 800340e: 631a str r2, [r3, #48] ; 0x30 + 800339e: 68fb ldr r3, [r7, #12] + 80033a0: 2200 movs r2, #0 + 80033a2: 631a str r2, [r3, #48] ; 0x30 if(obj == NULL || i->proc.types.pointer.act_obj == obj) { - 8003410: 683b ldr r3, [r7, #0] - 8003412: 2b00 cmp r3, #0 - 8003414: d004 beq.n 8003420 - 8003416: 68fb ldr r3, [r7, #12] - 8003418: 6a5b ldr r3, [r3, #36] ; 0x24 - 800341a: 683a ldr r2, [r7, #0] - 800341c: 429a cmp r2, r3 - 800341e: d102 bne.n 8003426 + 80033a4: 683b ldr r3, [r7, #0] + 80033a6: 2b00 cmp r3, #0 + 80033a8: d004 beq.n 80033b4 + 80033aa: 68fb ldr r3, [r7, #12] + 80033ac: 6a5b ldr r3, [r3, #36] ; 0x24 + 80033ae: 683a ldr r2, [r7, #0] + 80033b0: 429a cmp r2, r3 + 80033b2: d102 bne.n 80033ba i->proc.types.pointer.act_obj = NULL; - 8003420: 68fb ldr r3, [r7, #12] - 8003422: 2200 movs r2, #0 - 8003424: 625a str r2, [r3, #36] ; 0x24 + 80033b4: 68fb ldr r3, [r7, #12] + 80033b6: 2200 movs r2, #0 + 80033b8: 625a str r2, [r3, #36] ; 0x24 if(obj == NULL || i->proc.types.pointer.last_obj == obj) { - 8003426: 683b ldr r3, [r7, #0] - 8003428: 2b00 cmp r3, #0 - 800342a: d004 beq.n 8003436 - 800342c: 68fb ldr r3, [r7, #12] - 800342e: 6a9b ldr r3, [r3, #40] ; 0x28 - 8003430: 683a ldr r2, [r7, #0] - 8003432: 429a cmp r2, r3 - 8003434: d102 bne.n 800343c + 80033ba: 683b ldr r3, [r7, #0] + 80033bc: 2b00 cmp r3, #0 + 80033be: d004 beq.n 80033ca + 80033c0: 68fb ldr r3, [r7, #12] + 80033c2: 6a9b ldr r3, [r3, #40] ; 0x28 + 80033c4: 683a ldr r2, [r7, #0] + 80033c6: 429a cmp r2, r3 + 80033c8: d102 bne.n 80033d0 i->proc.types.pointer.last_obj = NULL; - 8003436: 68fb ldr r3, [r7, #12] - 8003438: 2200 movs r2, #0 - 800343a: 629a str r2, [r3, #40] ; 0x28 + 80033ca: 68fb ldr r3, [r7, #12] + 80033cc: 2200 movs r2, #0 + 80033ce: 629a str r2, [r3, #40] ; 0x28 i = lv_indev_get_next(i); - 800343c: 68f8 ldr r0, [r7, #12] - 800343e: f02d f94b bl 80306d8 - 8003442: 60f8 str r0, [r7, #12] + 80033d0: 68f8 ldr r0, [r7, #12] + 80033d2: f02d f937 bl 8030644 + 80033d6: 60f8 str r0, [r7, #12] while(i) { - 8003444: 68fb ldr r3, [r7, #12] - 8003446: 2b00 cmp r3, #0 - 8003448: d1c8 bne.n 80033dc + 80033d8: 68fb ldr r3, [r7, #12] + 80033da: 2b00 cmp r3, #0 + 80033dc: d1c8 bne.n 8003370 indev_obj_act = NULL; - 800344a: 4b04 ldr r3, [pc, #16] ; (800345c ) - 800344c: 2200 movs r2, #0 - 800344e: 601a str r2, [r3, #0] + 80033de: 4b04 ldr r3, [pc, #16] ; (80033f0 ) + 80033e0: 2200 movs r2, #0 + 80033e2: 601a str r2, [r3, #0] } - 8003450: bf00 nop - 8003452: 3710 adds r7, #16 - 8003454: 46bd mov sp, r7 - 8003456: bd80 pop {r7, pc} - 8003458: 20001af4 .word 0x20001af4 - 800345c: 20001af8 .word 0x20001af8 + 80033e4: bf00 nop + 80033e6: 3710 adds r7, #16 + 80033e8: 46bd mov sp, r7 + 80033ea: bd80 pop {r7, pc} + 80033ec: 20001af4 .word 0x20001af4 + 80033f0: 20001af8 .word 0x20001af8 -08003460 : +080033f4 : void lv_indev_reset_long_press(lv_indev_t * indev) { - 8003460: b580 push {r7, lr} - 8003462: b082 sub sp, #8 - 8003464: af00 add r7, sp, #0 - 8003466: 6078 str r0, [r7, #4] + 80033f4: b580 push {r7, lr} + 80033f6: b082 sub sp, #8 + 80033f8: af00 add r7, sp, #0 + 80033fa: 6078 str r0, [r7, #4] indev->proc.long_pr_sent = 0; - 8003468: 687a ldr r2, [r7, #4] - 800346a: 7953 ldrb r3, [r2, #5] - 800346c: f36f 0300 bfc r3, #0, #1 - 8003470: 7153 strb r3, [r2, #5] + 80033fc: 687a ldr r2, [r7, #4] + 80033fe: 7953 ldrb r3, [r2, #5] + 8003400: f36f 0300 bfc r3, #0, #1 + 8003404: 7153 strb r3, [r2, #5] indev->proc.longpr_rep_timestamp = lv_tick_get(); - 8003472: f02d f99b bl 80307ac - 8003476: 4602 mov r2, r0 - 8003478: 687b ldr r3, [r7, #4] - 800347a: 649a str r2, [r3, #72] ; 0x48 + 8003406: f02d f987 bl 8030718 + 800340a: 4602 mov r2, r0 + 800340c: 687b ldr r3, [r7, #4] + 800340e: 649a str r2, [r3, #72] ; 0x48 indev->proc.pr_timestamp = lv_tick_get(); - 800347c: f02d f996 bl 80307ac - 8003480: 4602 mov r2, r0 - 8003482: 687b ldr r3, [r7, #4] - 8003484: 645a str r2, [r3, #68] ; 0x44 + 8003410: f02d f982 bl 8030718 + 8003414: 4602 mov r2, r0 + 8003416: 687b ldr r3, [r7, #4] + 8003418: 645a str r2, [r3, #68] ; 0x44 } - 8003486: bf00 nop - 8003488: 3708 adds r7, #8 - 800348a: 46bd mov sp, r7 - 800348c: bd80 pop {r7, pc} + 800341a: bf00 nop + 800341c: 3708 adds r7, #8 + 800341e: 46bd mov sp, r7 + 8003420: bd80 pop {r7, pc} -0800348e : +08003422 : void lv_indev_set_cursor(lv_indev_t * indev, lv_obj_t * cur_obj) { - 800348e: b590 push {r4, r7, lr} - 8003490: b083 sub sp, #12 - 8003492: af00 add r7, sp, #0 - 8003494: 6078 str r0, [r7, #4] - 8003496: 6039 str r1, [r7, #0] + 8003422: b590 push {r4, r7, lr} + 8003424: b083 sub sp, #12 + 8003426: af00 add r7, sp, #0 + 8003428: 6078 str r0, [r7, #4] + 800342a: 6039 str r1, [r7, #0] if(indev->driver->type != LV_INDEV_TYPE_POINTER) return; - 8003498: 687b ldr r3, [r7, #4] - 800349a: 681b ldr r3, [r3, #0] - 800349c: 781b ldrb r3, [r3, #0] - 800349e: 2b01 cmp r3, #1 - 80034a0: d128 bne.n 80034f4 + 800342c: 687b ldr r3, [r7, #4] + 800342e: 681b ldr r3, [r3, #0] + 8003430: 781b ldrb r3, [r3, #0] + 8003432: 2b01 cmp r3, #1 + 8003434: d128 bne.n 8003488 indev->cursor = cur_obj; - 80034a2: 687b ldr r3, [r7, #4] - 80034a4: 683a ldr r2, [r7, #0] - 80034a6: 64da str r2, [r3, #76] ; 0x4c + 8003436: 687b ldr r3, [r7, #4] + 8003438: 683a ldr r2, [r7, #0] + 800343a: 64da str r2, [r3, #76] ; 0x4c lv_obj_set_parent(indev->cursor, lv_disp_get_layer_sys(indev->driver->disp)); - 80034a8: 687b ldr r3, [r7, #4] - 80034aa: 6cdc ldr r4, [r3, #76] ; 0x4c - 80034ac: 687b ldr r3, [r7, #4] - 80034ae: 681b ldr r3, [r3, #0] - 80034b0: 691b ldr r3, [r3, #16] - 80034b2: 4618 mov r0, r3 - 80034b4: f7fe ffbf bl 8002436 - 80034b8: 4603 mov r3, r0 - 80034ba: 4619 mov r1, r3 - 80034bc: 4620 mov r0, r4 - 80034be: f00b ffb7 bl 800f430 + 800343c: 687b ldr r3, [r7, #4] + 800343e: 6cdc ldr r4, [r3, #76] ; 0x4c + 8003440: 687b ldr r3, [r7, #4] + 8003442: 681b ldr r3, [r3, #0] + 8003444: 691b ldr r3, [r3, #16] + 8003446: 4618 mov r0, r3 + 8003448: f7fe ffbe bl 80023c8 + 800344c: 4603 mov r3, r0 + 800344e: 4619 mov r1, r3 + 8003450: 4620 mov r0, r4 + 8003452: f00b ffa3 bl 800f39c lv_obj_set_pos(indev->cursor, indev->proc.types.pointer.act_point.x, indev->proc.types.pointer.act_point.y); - 80034c2: 687b ldr r3, [r7, #4] - 80034c4: 6cd8 ldr r0, [r3, #76] ; 0x4c - 80034c6: 687b ldr r3, [r7, #4] - 80034c8: f9b3 1008 ldrsh.w r1, [r3, #8] - 80034cc: 687b ldr r3, [r7, #4] - 80034ce: f9b3 300a ldrsh.w r3, [r3, #10] - 80034d2: 461a mov r2, r3 - 80034d4: f005 fecc bl 8009270 + 8003456: 687b ldr r3, [r7, #4] + 8003458: 6cd8 ldr r0, [r3, #76] ; 0x4c + 800345a: 687b ldr r3, [r7, #4] + 800345c: f9b3 1008 ldrsh.w r1, [r3, #8] + 8003460: 687b ldr r3, [r7, #4] + 8003462: f9b3 300a ldrsh.w r3, [r3, #10] + 8003466: 461a mov r2, r3 + 8003468: f005 fecc bl 8009204 lv_obj_clear_flag(indev->cursor, LV_OBJ_FLAG_CLICKABLE); - 80034d8: 687b ldr r3, [r7, #4] - 80034da: 6cdb ldr r3, [r3, #76] ; 0x4c - 80034dc: 2102 movs r1, #2 - 80034de: 4618 mov r0, r3 - 80034e0: f003 f8be bl 8006660 + 800346c: 687b ldr r3, [r7, #4] + 800346e: 6cdb ldr r3, [r3, #76] ; 0x4c + 8003470: 2102 movs r1, #2 + 8003472: 4618 mov r0, r3 + 8003474: f003 f8be bl 80065f4 lv_obj_add_flag(indev->cursor, LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_FLOATING); - 80034e4: 687b ldr r3, [r7, #4] - 80034e6: 6cdb ldr r3, [r3, #76] ; 0x4c - 80034e8: f44f 21c0 mov.w r1, #393216 ; 0x60000 - 80034ec: 4618 mov r0, r3 - 80034ee: f003 f863 bl 80065b8 - 80034f2: e000 b.n 80034f6 + 8003478: 687b ldr r3, [r7, #4] + 800347a: 6cdb ldr r3, [r3, #76] ; 0x4c + 800347c: f44f 21c0 mov.w r1, #393216 ; 0x60000 + 8003480: 4618 mov r0, r3 + 8003482: f003 f863 bl 800654c + 8003486: e000 b.n 800348a if(indev->driver->type != LV_INDEV_TYPE_POINTER) return; - 80034f4: bf00 nop + 8003488: bf00 nop } - 80034f6: 370c adds r7, #12 - 80034f8: 46bd mov sp, r7 - 80034fa: bd90 pop {r4, r7, pc} + 800348a: 370c adds r7, #12 + 800348c: 46bd mov sp, r7 + 800348e: bd90 pop {r4, r7, pc} -080034fc : +08003490 : indev->btn_points = points; } } void lv_indev_get_point(const lv_indev_t * indev, lv_point_t * point) { - 80034fc: b480 push {r7} - 80034fe: b083 sub sp, #12 - 8003500: af00 add r7, sp, #0 - 8003502: 6078 str r0, [r7, #4] - 8003504: 6039 str r1, [r7, #0] + 8003490: b480 push {r7} + 8003492: b083 sub sp, #12 + 8003494: af00 add r7, sp, #0 + 8003496: 6078 str r0, [r7, #4] + 8003498: 6039 str r1, [r7, #0] if(indev == NULL) { - 8003506: 687b ldr r3, [r7, #4] - 8003508: 2b00 cmp r3, #0 - 800350a: d106 bne.n 800351a + 800349a: 687b ldr r3, [r7, #4] + 800349c: 2b00 cmp r3, #0 + 800349e: d106 bne.n 80034ae point->x = 0; - 800350c: 683b ldr r3, [r7, #0] - 800350e: 2200 movs r2, #0 - 8003510: 801a strh r2, [r3, #0] + 80034a0: 683b ldr r3, [r7, #0] + 80034a2: 2200 movs r2, #0 + 80034a4: 801a strh r2, [r3, #0] point->y = 0; - 8003512: 683b ldr r3, [r7, #0] - 8003514: 2200 movs r2, #0 - 8003516: 805a strh r2, [r3, #2] + 80034a6: 683b ldr r3, [r7, #0] + 80034a8: 2200 movs r2, #0 + 80034aa: 805a strh r2, [r3, #2] return; - 8003518: e01c b.n 8003554 + 80034ac: e01c b.n 80034e8 } if(indev->driver->type != LV_INDEV_TYPE_POINTER && indev->driver->type != LV_INDEV_TYPE_BUTTON) { - 800351a: 687b ldr r3, [r7, #4] - 800351c: 681b ldr r3, [r3, #0] - 800351e: 781b ldrb r3, [r3, #0] - 8003520: 2b01 cmp r3, #1 - 8003522: d00d beq.n 8003540 - 8003524: 687b ldr r3, [r7, #4] - 8003526: 681b ldr r3, [r3, #0] - 8003528: 781b ldrb r3, [r3, #0] - 800352a: 2b03 cmp r3, #3 - 800352c: d008 beq.n 8003540 + 80034ae: 687b ldr r3, [r7, #4] + 80034b0: 681b ldr r3, [r3, #0] + 80034b2: 781b ldrb r3, [r3, #0] + 80034b4: 2b01 cmp r3, #1 + 80034b6: d00d beq.n 80034d4 + 80034b8: 687b ldr r3, [r7, #4] + 80034ba: 681b ldr r3, [r3, #0] + 80034bc: 781b ldrb r3, [r3, #0] + 80034be: 2b03 cmp r3, #3 + 80034c0: d008 beq.n 80034d4 point->x = -1; - 800352e: 683b ldr r3, [r7, #0] - 8003530: f64f 72ff movw r2, #65535 ; 0xffff - 8003534: 801a strh r2, [r3, #0] + 80034c2: 683b ldr r3, [r7, #0] + 80034c4: f64f 72ff movw r2, #65535 ; 0xffff + 80034c8: 801a strh r2, [r3, #0] point->y = -1; - 8003536: 683b ldr r3, [r7, #0] - 8003538: f64f 72ff movw r2, #65535 ; 0xffff - 800353c: 805a strh r2, [r3, #2] - 800353e: e009 b.n 8003554 + 80034ca: 683b ldr r3, [r7, #0] + 80034cc: f64f 72ff movw r2, #65535 ; 0xffff + 80034d0: 805a strh r2, [r3, #2] + 80034d2: e009 b.n 80034e8 } else { point->x = indev->proc.types.pointer.act_point.x; - 8003540: 687b ldr r3, [r7, #4] - 8003542: f9b3 2008 ldrsh.w r2, [r3, #8] - 8003546: 683b ldr r3, [r7, #0] - 8003548: 801a strh r2, [r3, #0] + 80034d4: 687b ldr r3, [r7, #4] + 80034d6: f9b3 2008 ldrsh.w r2, [r3, #8] + 80034da: 683b ldr r3, [r7, #0] + 80034dc: 801a strh r2, [r3, #0] point->y = indev->proc.types.pointer.act_point.y; - 800354a: 687b ldr r3, [r7, #4] - 800354c: f9b3 200a ldrsh.w r2, [r3, #10] - 8003550: 683b ldr r3, [r7, #0] - 8003552: 805a strh r2, [r3, #2] + 80034de: 687b ldr r3, [r7, #4] + 80034e0: f9b3 200a ldrsh.w r2, [r3, #10] + 80034e4: 683b ldr r3, [r7, #0] + 80034e6: 805a strh r2, [r3, #2] } } - 8003554: 370c adds r7, #12 - 8003556: 46bd mov sp, r7 - 8003558: bc80 pop {r7} - 800355a: 4770 bx lr + 80034e8: 370c adds r7, #12 + 80034ea: 46bd mov sp, r7 + 80034ec: bc80 pop {r7} + 80034ee: 4770 bx lr -0800355c : +080034f0 : else return indev->proc.types.keypad.last_key; } lv_dir_t lv_indev_get_scroll_dir(const lv_indev_t * indev) { - 800355c: b480 push {r7} - 800355e: b083 sub sp, #12 - 8003560: af00 add r7, sp, #0 - 8003562: 6078 str r0, [r7, #4] + 80034f0: b480 push {r7} + 80034f2: b083 sub sp, #12 + 80034f4: af00 add r7, sp, #0 + 80034f6: 6078 str r0, [r7, #4] if(indev == NULL) return false; - 8003564: 687b ldr r3, [r7, #4] - 8003566: 2b00 cmp r3, #0 - 8003568: d101 bne.n 800356e - 800356a: 2300 movs r3, #0 - 800356c: e011 b.n 8003592 + 80034f8: 687b ldr r3, [r7, #4] + 80034fa: 2b00 cmp r3, #0 + 80034fc: d101 bne.n 8003502 + 80034fe: 2300 movs r3, #0 + 8003500: e011 b.n 8003526 if(indev->driver->type != LV_INDEV_TYPE_POINTER && indev->driver->type != LV_INDEV_TYPE_BUTTON) return false; - 800356e: 687b ldr r3, [r7, #4] - 8003570: 681b ldr r3, [r3, #0] - 8003572: 781b ldrb r3, [r3, #0] - 8003574: 2b01 cmp r3, #1 - 8003576: d006 beq.n 8003586 - 8003578: 687b ldr r3, [r7, #4] - 800357a: 681b ldr r3, [r3, #0] - 800357c: 781b ldrb r3, [r3, #0] - 800357e: 2b03 cmp r3, #3 - 8003580: d001 beq.n 8003586 - 8003582: 2300 movs r3, #0 - 8003584: e005 b.n 8003592 + 8003502: 687b ldr r3, [r7, #4] + 8003504: 681b ldr r3, [r3, #0] + 8003506: 781b ldrb r3, [r3, #0] + 8003508: 2b01 cmp r3, #1 + 800350a: d006 beq.n 800351a + 800350c: 687b ldr r3, [r7, #4] + 800350e: 681b ldr r3, [r3, #0] + 8003510: 781b ldrb r3, [r3, #0] + 8003512: 2b03 cmp r3, #3 + 8003514: d001 beq.n 800351a + 8003516: 2300 movs r3, #0 + 8003518: e005 b.n 8003526 return indev->proc.types.pointer.scroll_dir; - 8003586: 687b ldr r3, [r7, #4] - 8003588: f893 3040 ldrb.w r3, [r3, #64] ; 0x40 - 800358c: f3c3 0303 ubfx r3, r3, #0, #4 - 8003590: b2db uxtb r3, r3 + 800351a: 687b ldr r3, [r7, #4] + 800351c: f893 3040 ldrb.w r3, [r3, #64] ; 0x40 + 8003520: f3c3 0303 ubfx r3, r3, #0, #4 + 8003524: b2db uxtb r3, r3 } - 8003592: 4618 mov r0, r3 - 8003594: 370c adds r7, #12 - 8003596: 46bd mov sp, r7 - 8003598: bc80 pop {r7} - 800359a: 4770 bx lr + 8003526: 4618 mov r0, r3 + 8003528: 370c adds r7, #12 + 800352a: 46bd mov sp, r7 + 800352c: bc80 pop {r7} + 800352e: 4770 bx lr -0800359c : +08003530 : lv_obj_t * lv_indev_get_scroll_obj(const lv_indev_t * indev) { - 800359c: b480 push {r7} - 800359e: b083 sub sp, #12 - 80035a0: af00 add r7, sp, #0 - 80035a2: 6078 str r0, [r7, #4] + 8003530: b480 push {r7} + 8003532: b083 sub sp, #12 + 8003534: af00 add r7, sp, #0 + 8003536: 6078 str r0, [r7, #4] if(indev == NULL) return NULL; - 80035a4: 687b ldr r3, [r7, #4] - 80035a6: 2b00 cmp r3, #0 - 80035a8: d101 bne.n 80035ae - 80035aa: 2300 movs r3, #0 - 80035ac: e00d b.n 80035ca + 8003538: 687b ldr r3, [r7, #4] + 800353a: 2b00 cmp r3, #0 + 800353c: d101 bne.n 8003542 + 800353e: 2300 movs r3, #0 + 8003540: e00d b.n 800355e if(indev->driver->type != LV_INDEV_TYPE_POINTER && indev->driver->type != LV_INDEV_TYPE_BUTTON) return NULL; - 80035ae: 687b ldr r3, [r7, #4] - 80035b0: 681b ldr r3, [r3, #0] - 80035b2: 781b ldrb r3, [r3, #0] - 80035b4: 2b01 cmp r3, #1 - 80035b6: d006 beq.n 80035c6 - 80035b8: 687b ldr r3, [r7, #4] - 80035ba: 681b ldr r3, [r3, #0] - 80035bc: 781b ldrb r3, [r3, #0] - 80035be: 2b03 cmp r3, #3 - 80035c0: d001 beq.n 80035c6 - 80035c2: 2300 movs r3, #0 - 80035c4: e001 b.n 80035ca + 8003542: 687b ldr r3, [r7, #4] + 8003544: 681b ldr r3, [r3, #0] + 8003546: 781b ldrb r3, [r3, #0] + 8003548: 2b01 cmp r3, #1 + 800354a: d006 beq.n 800355a + 800354c: 687b ldr r3, [r7, #4] + 800354e: 681b ldr r3, [r3, #0] + 8003550: 781b ldrb r3, [r3, #0] + 8003552: 2b03 cmp r3, #3 + 8003554: d001 beq.n 800355a + 8003556: 2300 movs r3, #0 + 8003558: e001 b.n 800355e return indev->proc.types.pointer.scroll_obj; - 80035c6: 687b ldr r3, [r7, #4] - 80035c8: 6adb ldr r3, [r3, #44] ; 0x2c + 800355a: 687b ldr r3, [r7, #4] + 800355c: 6adb ldr r3, [r3, #44] ; 0x2c } - 80035ca: 4618 mov r0, r3 - 80035cc: 370c adds r7, #12 - 80035ce: 46bd mov sp, r7 - 80035d0: bc80 pop {r7} - 80035d2: 4770 bx lr + 800355e: 4618 mov r0, r3 + 8003560: 370c adds r7, #12 + 8003562: 46bd mov sp, r7 + 8003564: bc80 pop {r7} + 8003566: 4770 bx lr -080035d4 : +08003568 : void lv_indev_get_vect(const lv_indev_t * indev, lv_point_t * point) { - 80035d4: b480 push {r7} - 80035d6: b083 sub sp, #12 - 80035d8: af00 add r7, sp, #0 - 80035da: 6078 str r0, [r7, #4] - 80035dc: 6039 str r1, [r7, #0] + 8003568: b480 push {r7} + 800356a: b083 sub sp, #12 + 800356c: af00 add r7, sp, #0 + 800356e: 6078 str r0, [r7, #4] + 8003570: 6039 str r1, [r7, #0] point->x = 0; - 80035de: 683b ldr r3, [r7, #0] - 80035e0: 2200 movs r2, #0 - 80035e2: 801a strh r2, [r3, #0] + 8003572: 683b ldr r3, [r7, #0] + 8003574: 2200 movs r2, #0 + 8003576: 801a strh r2, [r3, #0] point->y = 0; - 80035e4: 683b ldr r3, [r7, #0] - 80035e6: 2200 movs r2, #0 - 80035e8: 805a strh r2, [r3, #2] + 8003578: 683b ldr r3, [r7, #0] + 800357a: 2200 movs r2, #0 + 800357c: 805a strh r2, [r3, #2] if(indev == NULL) return; - 80035ea: 687b ldr r3, [r7, #4] - 80035ec: 2b00 cmp r3, #0 - 80035ee: d014 beq.n 800361a + 800357e: 687b ldr r3, [r7, #4] + 8003580: 2b00 cmp r3, #0 + 8003582: d014 beq.n 80035ae if(indev->driver->type == LV_INDEV_TYPE_POINTER || indev->driver->type == LV_INDEV_TYPE_BUTTON) { - 80035f0: 687b ldr r3, [r7, #4] - 80035f2: 681b ldr r3, [r3, #0] - 80035f4: 781b ldrb r3, [r3, #0] - 80035f6: 2b01 cmp r3, #1 - 80035f8: d004 beq.n 8003604 - 80035fa: 687b ldr r3, [r7, #4] - 80035fc: 681b ldr r3, [r3, #0] - 80035fe: 781b ldrb r3, [r3, #0] - 8003600: 2b03 cmp r3, #3 - 8003602: d10b bne.n 800361c + 8003584: 687b ldr r3, [r7, #4] + 8003586: 681b ldr r3, [r3, #0] + 8003588: 781b ldrb r3, [r3, #0] + 800358a: 2b01 cmp r3, #1 + 800358c: d004 beq.n 8003598 + 800358e: 687b ldr r3, [r7, #4] + 8003590: 681b ldr r3, [r3, #0] + 8003592: 781b ldrb r3, [r3, #0] + 8003594: 2b03 cmp r3, #3 + 8003596: d10b bne.n 80035b0 point->x = indev->proc.types.pointer.vect.x; - 8003604: 687b ldr r3, [r7, #4] - 8003606: f9b3 2014 ldrsh.w r2, [r3, #20] - 800360a: 683b ldr r3, [r7, #0] - 800360c: 801a strh r2, [r3, #0] + 8003598: 687b ldr r3, [r7, #4] + 800359a: f9b3 2014 ldrsh.w r2, [r3, #20] + 800359e: 683b ldr r3, [r7, #0] + 80035a0: 801a strh r2, [r3, #0] point->y = indev->proc.types.pointer.vect.y; - 800360e: 687b ldr r3, [r7, #4] - 8003610: f9b3 2016 ldrsh.w r2, [r3, #22] - 8003614: 683b ldr r3, [r7, #0] - 8003616: 805a strh r2, [r3, #2] - 8003618: e000 b.n 800361c + 80035a2: 687b ldr r3, [r7, #4] + 80035a4: f9b3 2016 ldrsh.w r2, [r3, #22] + 80035a8: 683b ldr r3, [r7, #0] + 80035aa: 805a strh r2, [r3, #2] + 80035ac: e000 b.n 80035b0 if(indev == NULL) return; - 800361a: bf00 nop + 80035ae: bf00 nop } } - 800361c: 370c adds r7, #12 - 800361e: 46bd mov sp, r7 - 8003620: bc80 pop {r7} - 8003622: 4770 bx lr + 80035b0: 370c adds r7, #12 + 80035b2: 46bd mov sp, r7 + 80035b4: bc80 pop {r7} + 80035b6: 4770 bx lr -08003624 : +080035b8 : void lv_indev_wait_release(lv_indev_t * indev) { - 8003624: b480 push {r7} - 8003626: b083 sub sp, #12 - 8003628: af00 add r7, sp, #0 - 800362a: 6078 str r0, [r7, #4] + 80035b8: b480 push {r7} + 80035ba: b083 sub sp, #12 + 80035bc: af00 add r7, sp, #0 + 80035be: 6078 str r0, [r7, #4] if(indev == NULL)return; - 800362c: 687b ldr r3, [r7, #4] - 800362e: 2b00 cmp r3, #0 - 8003630: d005 beq.n 800363e + 80035c0: 687b ldr r3, [r7, #4] + 80035c2: 2b00 cmp r3, #0 + 80035c4: d005 beq.n 80035d2 indev->proc.wait_until_release = 1; - 8003632: 687a ldr r2, [r7, #4] - 8003634: 7953 ldrb r3, [r2, #5] - 8003636: f043 0308 orr.w r3, r3, #8 - 800363a: 7153 strb r3, [r2, #5] - 800363c: e000 b.n 8003640 + 80035c6: 687a ldr r2, [r7, #4] + 80035c8: 7953 ldrb r3, [r2, #5] + 80035ca: f043 0308 orr.w r3, r3, #8 + 80035ce: 7153 strb r3, [r2, #5] + 80035d0: e000 b.n 80035d4 if(indev == NULL)return; - 800363e: bf00 nop + 80035d2: bf00 nop } - 8003640: 370c adds r7, #12 - 8003642: 46bd mov sp, r7 - 8003644: bc80 pop {r7} - 8003646: 4770 bx lr + 80035d4: 370c adds r7, #12 + 80035d6: 46bd mov sp, r7 + 80035d8: bc80 pop {r7} + 80035da: 4770 bx lr -08003648 : +080035dc : lv_obj_t * lv_indev_get_obj_act(void) { - 8003648: b480 push {r7} - 800364a: af00 add r7, sp, #0 + 80035dc: b480 push {r7} + 80035de: af00 add r7, sp, #0 return indev_obj_act; - 800364c: 4b02 ldr r3, [pc, #8] ; (8003658 ) - 800364e: 681b ldr r3, [r3, #0] + 80035e0: 4b02 ldr r3, [pc, #8] ; (80035ec ) + 80035e2: 681b ldr r3, [r3, #0] } - 8003650: 4618 mov r0, r3 - 8003652: 46bd mov sp, r7 - 8003654: bc80 pop {r7} - 8003656: 4770 bx lr - 8003658: 20001af8 .word 0x20001af8 + 80035e4: 4618 mov r0, r3 + 80035e6: 46bd mov sp, r7 + 80035e8: bc80 pop {r7} + 80035ea: 4770 bx lr + 80035ec: 20001af8 .word 0x20001af8 -0800365c : +080035f0 : return indev->refr_timer; } lv_obj_t * lv_indev_search_obj(lv_obj_t * obj, lv_point_t * point) { - 800365c: b580 push {r7, lr} - 800365e: b088 sub sp, #32 - 8003660: af00 add r7, sp, #0 - 8003662: 6078 str r0, [r7, #4] - 8003664: 6039 str r1, [r7, #0] + 80035f0: b580 push {r7, lr} + 80035f2: b088 sub sp, #32 + 80035f4: af00 add r7, sp, #0 + 80035f6: 6078 str r0, [r7, #4] + 80035f8: 6039 str r1, [r7, #0] lv_obj_t * found_p = NULL; - 8003666: 2300 movs r3, #0 - 8003668: 61bb str r3, [r7, #24] + 80035fa: 2300 movs r3, #0 + 80035fc: 61bb str r3, [r7, #24] /*If this obj is hidden the children are hidden too so return immediately*/ if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return NULL; - 800366a: 2101 movs r1, #1 - 800366c: 6878 ldr r0, [r7, #4] - 800366e: f003 f888 bl 8006782 - 8003672: 4603 mov r3, r0 - 8003674: 2b00 cmp r3, #0 - 8003676: d001 beq.n 800367c - 8003678: 2300 movs r3, #0 - 800367a: e03d b.n 80036f8 + 80035fe: 2101 movs r1, #1 + 8003600: 6878 ldr r0, [r7, #4] + 8003602: f003 f888 bl 8006716 + 8003606: 4603 mov r3, r0 + 8003608: 2b00 cmp r3, #0 + 800360a: d001 beq.n 8003610 + 800360c: 2300 movs r3, #0 + 800360e: e03d b.n 800368c bool hit_test_ok = lv_obj_hit_test(obj, point); - 800367c: 6839 ldr r1, [r7, #0] - 800367e: 6878 ldr r0, [r7, #4] - 8003680: f007 fbaf bl 800ade2 - 8003684: 4603 mov r3, r0 - 8003686: 75fb strb r3, [r7, #23] + 8003610: 6839 ldr r1, [r7, #0] + 8003612: 6878 ldr r0, [r7, #4] + 8003614: f007 fbaf bl 800ad76 + 8003618: 4603 mov r3, r0 + 800361a: 75fb strb r3, [r7, #23] /*If the point is on this object or has overflow visible check its children too*/ if(_lv_area_is_point_on(&obj->coords, point, 0) || lv_obj_has_flag(obj, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) { - 8003688: 687b ldr r3, [r7, #4] - 800368a: 3314 adds r3, #20 - 800368c: 2200 movs r2, #0 - 800368e: 6839 ldr r1, [r7, #0] - 8003690: 4618 mov r0, r3 - 8003692: f02d fd94 bl 80311be <_lv_area_is_point_on> - 8003696: 4603 mov r3, r0 - 8003698: 2b00 cmp r3, #0 - 800369a: d107 bne.n 80036ac - 800369c: f44f 2100 mov.w r1, #524288 ; 0x80000 - 80036a0: 6878 ldr r0, [r7, #4] - 80036a2: f003 f86e bl 8006782 - 80036a6: 4603 mov r3, r0 - 80036a8: 2b00 cmp r3, #0 - 80036aa: d01f beq.n 80036ec + 800361c: 687b ldr r3, [r7, #4] + 800361e: 3314 adds r3, #20 + 8003620: 2200 movs r2, #0 + 8003622: 6839 ldr r1, [r7, #0] + 8003624: 4618 mov r0, r3 + 8003626: f02d fd80 bl 803112a <_lv_area_is_point_on> + 800362a: 4603 mov r3, r0 + 800362c: 2b00 cmp r3, #0 + 800362e: d107 bne.n 8003640 + 8003630: f44f 2100 mov.w r1, #524288 ; 0x80000 + 8003634: 6878 ldr r0, [r7, #4] + 8003636: f003 f86e bl 8006716 + 800363a: 4603 mov r3, r0 + 800363c: 2b00 cmp r3, #0 + 800363e: d01f beq.n 8003680 int32_t i; uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 80036ac: 6878 ldr r0, [r7, #4] - 80036ae: f00c f86f bl 800f790 - 80036b2: 6138 str r0, [r7, #16] + 8003640: 6878 ldr r0, [r7, #4] + 8003642: f00c f85b bl 800f6fc + 8003646: 6138 str r0, [r7, #16] /*If a child matches use it*/ for(i = child_cnt - 1; i >= 0; i--) { - 80036b4: 693b ldr r3, [r7, #16] - 80036b6: 3b01 subs r3, #1 - 80036b8: 61fb str r3, [r7, #28] - 80036ba: e014 b.n 80036e6 + 8003648: 693b ldr r3, [r7, #16] + 800364a: 3b01 subs r3, #1 + 800364c: 61fb str r3, [r7, #28] + 800364e: e014 b.n 800367a lv_obj_t * child = obj->spec_attr->children[i]; - 80036bc: 687b ldr r3, [r7, #4] - 80036be: 689b ldr r3, [r3, #8] - 80036c0: 681a ldr r2, [r3, #0] - 80036c2: 69fb ldr r3, [r7, #28] - 80036c4: 009b lsls r3, r3, #2 - 80036c6: 4413 add r3, r2 - 80036c8: 681b ldr r3, [r3, #0] - 80036ca: 60fb str r3, [r7, #12] + 8003650: 687b ldr r3, [r7, #4] + 8003652: 689b ldr r3, [r3, #8] + 8003654: 681a ldr r2, [r3, #0] + 8003656: 69fb ldr r3, [r7, #28] + 8003658: 009b lsls r3, r3, #2 + 800365a: 4413 add r3, r2 + 800365c: 681b ldr r3, [r3, #0] + 800365e: 60fb str r3, [r7, #12] found_p = lv_indev_search_obj(child, point); - 80036cc: 6839 ldr r1, [r7, #0] - 80036ce: 68f8 ldr r0, [r7, #12] - 80036d0: f7ff ffc4 bl 800365c - 80036d4: 61b8 str r0, [r7, #24] + 8003660: 6839 ldr r1, [r7, #0] + 8003662: 68f8 ldr r0, [r7, #12] + 8003664: f7ff ffc4 bl 80035f0 + 8003668: 61b8 str r0, [r7, #24] if(found_p) return found_p; - 80036d6: 69bb ldr r3, [r7, #24] - 80036d8: 2b00 cmp r3, #0 - 80036da: d001 beq.n 80036e0 - 80036dc: 69bb ldr r3, [r7, #24] - 80036de: e00b b.n 80036f8 + 800366a: 69bb ldr r3, [r7, #24] + 800366c: 2b00 cmp r3, #0 + 800366e: d001 beq.n 8003674 + 8003670: 69bb ldr r3, [r7, #24] + 8003672: e00b b.n 800368c for(i = child_cnt - 1; i >= 0; i--) { - 80036e0: 69fb ldr r3, [r7, #28] - 80036e2: 3b01 subs r3, #1 - 80036e4: 61fb str r3, [r7, #28] - 80036e6: 69fb ldr r3, [r7, #28] - 80036e8: 2b00 cmp r3, #0 - 80036ea: dae7 bge.n 80036bc + 8003674: 69fb ldr r3, [r7, #28] + 8003676: 3b01 subs r3, #1 + 8003678: 61fb str r3, [r7, #28] + 800367a: 69fb ldr r3, [r7, #28] + 800367c: 2b00 cmp r3, #0 + 800367e: dae7 bge.n 8003650 } } /*If not return earlier for a clicked child and this obj's hittest was ok use it *else return NULL*/ if(hit_test_ok) return obj; - 80036ec: 7dfb ldrb r3, [r7, #23] - 80036ee: 2b00 cmp r3, #0 - 80036f0: d001 beq.n 80036f6 - 80036f2: 687b ldr r3, [r7, #4] - 80036f4: e000 b.n 80036f8 + 8003680: 7dfb ldrb r3, [r7, #23] + 8003682: 2b00 cmp r3, #0 + 8003684: d001 beq.n 800368a + 8003686: 687b ldr r3, [r7, #4] + 8003688: e000 b.n 800368c else return NULL; - 80036f6: 2300 movs r3, #0 + 800368a: 2300 movs r3, #0 } - 80036f8: 4618 mov r0, r3 - 80036fa: 3720 adds r7, #32 - 80036fc: 46bd mov sp, r7 - 80036fe: bd80 pop {r7, pc} + 800368c: 4618 mov r0, r3 + 800368e: 3720 adds r7, #32 + 8003690: 46bd mov sp, r7 + 8003692: bd80 pop {r7, pc} -08003700 : +08003694 : * Process a new point from LV_INDEV_TYPE_POINTER input device * @param i pointer to an input device * @param data pointer to the data read from the input device */ static void indev_pointer_proc(lv_indev_t * i, lv_indev_data_t * data) { - 8003700: b580 push {r7, lr} - 8003702: b084 sub sp, #16 - 8003704: af00 add r7, sp, #0 - 8003706: 6078 str r0, [r7, #4] - 8003708: 6039 str r1, [r7, #0] + 8003694: b580 push {r7, lr} + 8003696: b084 sub sp, #16 + 8003698: af00 add r7, sp, #0 + 800369a: 6078 str r0, [r7, #4] + 800369c: 6039 str r1, [r7, #0] lv_disp_t * disp = i->driver->disp; - 800370a: 687b ldr r3, [r7, #4] - 800370c: 681b ldr r3, [r3, #0] - 800370e: 691b ldr r3, [r3, #16] - 8003710: 60fb str r3, [r7, #12] + 800369e: 687b ldr r3, [r7, #4] + 80036a0: 681b ldr r3, [r3, #0] + 80036a2: 691b ldr r3, [r3, #16] + 80036a4: 60fb str r3, [r7, #12] /*Save the raw points so they can be used again in _lv_indev_read*/ i->proc.types.pointer.last_raw_point.x = data->point.x; - 8003712: 683b ldr r3, [r7, #0] - 8003714: f9b3 2000 ldrsh.w r2, [r3] - 8003718: 687b ldr r3, [r7, #4] - 800371a: 821a strh r2, [r3, #16] + 80036a6: 683b ldr r3, [r7, #0] + 80036a8: f9b3 2000 ldrsh.w r2, [r3] + 80036ac: 687b ldr r3, [r7, #4] + 80036ae: 821a strh r2, [r3, #16] i->proc.types.pointer.last_raw_point.y = data->point.y; - 800371c: 683b ldr r3, [r7, #0] - 800371e: f9b3 2002 ldrsh.w r2, [r3, #2] - 8003722: 687b ldr r3, [r7, #4] - 8003724: 825a strh r2, [r3, #18] + 80036b0: 683b ldr r3, [r7, #0] + 80036b2: f9b3 2002 ldrsh.w r2, [r3, #2] + 80036b6: 687b ldr r3, [r7, #4] + 80036b8: 825a strh r2, [r3, #18] if(disp->driver->rotated == LV_DISP_ROT_180 || disp->driver->rotated == LV_DISP_ROT_270) { - 8003726: 68fb ldr r3, [r7, #12] - 8003728: 681b ldr r3, [r3, #0] - 800372a: 7c1b ldrb r3, [r3, #16] - 800372c: f003 0330 and.w r3, r3, #48 ; 0x30 - 8003730: b2db uxtb r3, r3 - 8003732: 2b20 cmp r3, #32 - 8003734: d007 beq.n 8003746 - 8003736: 68fb ldr r3, [r7, #12] - 8003738: 681b ldr r3, [r3, #0] - 800373a: 7c1b ldrb r3, [r3, #16] - 800373c: f003 0330 and.w r3, r3, #48 ; 0x30 - 8003740: b2db uxtb r3, r3 - 8003742: 2b30 cmp r3, #48 ; 0x30 - 8003744: d11f bne.n 8003786 + 80036ba: 68fb ldr r3, [r7, #12] + 80036bc: 681b ldr r3, [r3, #0] + 80036be: 7c1b ldrb r3, [r3, #16] + 80036c0: f003 0330 and.w r3, r3, #48 ; 0x30 + 80036c4: b2db uxtb r3, r3 + 80036c6: 2b20 cmp r3, #32 + 80036c8: d007 beq.n 80036da + 80036ca: 68fb ldr r3, [r7, #12] + 80036cc: 681b ldr r3, [r3, #0] + 80036ce: 7c1b ldrb r3, [r3, #16] + 80036d0: f003 0330 and.w r3, r3, #48 ; 0x30 + 80036d4: b2db uxtb r3, r3 + 80036d6: 2b30 cmp r3, #48 ; 0x30 + 80036d8: d11f bne.n 800371a data->point.x = disp->driver->hor_res - data->point.x - 1; - 8003746: 68fb ldr r3, [r7, #12] - 8003748: 681b ldr r3, [r3, #0] - 800374a: f9b3 3000 ldrsh.w r3, [r3] - 800374e: b29a uxth r2, r3 - 8003750: 683b ldr r3, [r7, #0] - 8003752: f9b3 3000 ldrsh.w r3, [r3] - 8003756: b29b uxth r3, r3 - 8003758: 1ad3 subs r3, r2, r3 - 800375a: b29b uxth r3, r3 - 800375c: 3b01 subs r3, #1 - 800375e: b29b uxth r3, r3 - 8003760: b21a sxth r2, r3 - 8003762: 683b ldr r3, [r7, #0] - 8003764: 801a strh r2, [r3, #0] + 80036da: 68fb ldr r3, [r7, #12] + 80036dc: 681b ldr r3, [r3, #0] + 80036de: f9b3 3000 ldrsh.w r3, [r3] + 80036e2: b29a uxth r2, r3 + 80036e4: 683b ldr r3, [r7, #0] + 80036e6: f9b3 3000 ldrsh.w r3, [r3] + 80036ea: b29b uxth r3, r3 + 80036ec: 1ad3 subs r3, r2, r3 + 80036ee: b29b uxth r3, r3 + 80036f0: 3b01 subs r3, #1 + 80036f2: b29b uxth r3, r3 + 80036f4: b21a sxth r2, r3 + 80036f6: 683b ldr r3, [r7, #0] + 80036f8: 801a strh r2, [r3, #0] data->point.y = disp->driver->ver_res - data->point.y - 1; - 8003766: 68fb ldr r3, [r7, #12] - 8003768: 681b ldr r3, [r3, #0] - 800376a: f9b3 3002 ldrsh.w r3, [r3, #2] - 800376e: b29a uxth r2, r3 - 8003770: 683b ldr r3, [r7, #0] - 8003772: f9b3 3002 ldrsh.w r3, [r3, #2] - 8003776: b29b uxth r3, r3 - 8003778: 1ad3 subs r3, r2, r3 - 800377a: b29b uxth r3, r3 - 800377c: 3b01 subs r3, #1 - 800377e: b29b uxth r3, r3 - 8003780: b21a sxth r2, r3 - 8003782: 683b ldr r3, [r7, #0] - 8003784: 805a strh r2, [r3, #2] + 80036fa: 68fb ldr r3, [r7, #12] + 80036fc: 681b ldr r3, [r3, #0] + 80036fe: f9b3 3002 ldrsh.w r3, [r3, #2] + 8003702: b29a uxth r2, r3 + 8003704: 683b ldr r3, [r7, #0] + 8003706: f9b3 3002 ldrsh.w r3, [r3, #2] + 800370a: b29b uxth r3, r3 + 800370c: 1ad3 subs r3, r2, r3 + 800370e: b29b uxth r3, r3 + 8003710: 3b01 subs r3, #1 + 8003712: b29b uxth r3, r3 + 8003714: b21a sxth r2, r3 + 8003716: 683b ldr r3, [r7, #0] + 8003718: 805a strh r2, [r3, #2] } if(disp->driver->rotated == LV_DISP_ROT_90 || disp->driver->rotated == LV_DISP_ROT_270) { - 8003786: 68fb ldr r3, [r7, #12] - 8003788: 681b ldr r3, [r3, #0] - 800378a: 7c1b ldrb r3, [r3, #16] - 800378c: f003 0330 and.w r3, r3, #48 ; 0x30 - 8003790: b2db uxtb r3, r3 - 8003792: 2b10 cmp r3, #16 - 8003794: d007 beq.n 80037a6 - 8003796: 68fb ldr r3, [r7, #12] - 8003798: 681b ldr r3, [r3, #0] - 800379a: 7c1b ldrb r3, [r3, #16] - 800379c: f003 0330 and.w r3, r3, #48 ; 0x30 - 80037a0: b2db uxtb r3, r3 - 80037a2: 2b30 cmp r3, #48 ; 0x30 - 80037a4: d114 bne.n 80037d0 + 800371a: 68fb ldr r3, [r7, #12] + 800371c: 681b ldr r3, [r3, #0] + 800371e: 7c1b ldrb r3, [r3, #16] + 8003720: f003 0330 and.w r3, r3, #48 ; 0x30 + 8003724: b2db uxtb r3, r3 + 8003726: 2b10 cmp r3, #16 + 8003728: d007 beq.n 800373a + 800372a: 68fb ldr r3, [r7, #12] + 800372c: 681b ldr r3, [r3, #0] + 800372e: 7c1b ldrb r3, [r3, #16] + 8003730: f003 0330 and.w r3, r3, #48 ; 0x30 + 8003734: b2db uxtb r3, r3 + 8003736: 2b30 cmp r3, #48 ; 0x30 + 8003738: d114 bne.n 8003764 lv_coord_t tmp = data->point.y; - 80037a6: 683b ldr r3, [r7, #0] - 80037a8: 885b ldrh r3, [r3, #2] - 80037aa: 817b strh r3, [r7, #10] + 800373a: 683b ldr r3, [r7, #0] + 800373c: 885b ldrh r3, [r3, #2] + 800373e: 817b strh r3, [r7, #10] data->point.y = data->point.x; - 80037ac: 683b ldr r3, [r7, #0] - 80037ae: f9b3 2000 ldrsh.w r2, [r3] - 80037b2: 683b ldr r3, [r7, #0] - 80037b4: 805a strh r2, [r3, #2] + 8003740: 683b ldr r3, [r7, #0] + 8003742: f9b3 2000 ldrsh.w r2, [r3] + 8003746: 683b ldr r3, [r7, #0] + 8003748: 805a strh r2, [r3, #2] data->point.x = disp->driver->ver_res - tmp - 1; - 80037b6: 68fb ldr r3, [r7, #12] - 80037b8: 681b ldr r3, [r3, #0] - 80037ba: f9b3 3002 ldrsh.w r3, [r3, #2] - 80037be: b29a uxth r2, r3 - 80037c0: 897b ldrh r3, [r7, #10] - 80037c2: 1ad3 subs r3, r2, r3 - 80037c4: b29b uxth r3, r3 - 80037c6: 3b01 subs r3, #1 - 80037c8: b29b uxth r3, r3 - 80037ca: b21a sxth r2, r3 - 80037cc: 683b ldr r3, [r7, #0] - 80037ce: 801a strh r2, [r3, #0] + 800374a: 68fb ldr r3, [r7, #12] + 800374c: 681b ldr r3, [r3, #0] + 800374e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8003752: b29a uxth r2, r3 + 8003754: 897b ldrh r3, [r7, #10] + 8003756: 1ad3 subs r3, r2, r3 + 8003758: b29b uxth r3, r3 + 800375a: 3b01 subs r3, #1 + 800375c: b29b uxth r3, r3 + 800375e: b21a sxth r2, r3 + 8003760: 683b ldr r3, [r7, #0] + 8003762: 801a strh r2, [r3, #0] /*Simple sanity check*/ if(data->point.x < 0) { LV_LOG_WARN("X is %d which is smaller than zero", data->point.x); } if(data->point.x >= lv_disp_get_hor_res(i->driver->disp)) { - 80037d0: 687b ldr r3, [r7, #4] - 80037d2: 681b ldr r3, [r3, #0] - 80037d4: 691b ldr r3, [r3, #16] - 80037d6: 4618 mov r0, r3 - 80037d8: f02c fe82 bl 80304e0 + 8003764: 687b ldr r3, [r7, #4] + 8003766: 681b ldr r3, [r3, #0] + 8003768: 691b ldr r3, [r3, #16] + 800376a: 4618 mov r0, r3 + 800376c: f02c fe6e bl 803044c LV_LOG_WARN("X is %d which is greater than hor. res", data->point.x); } if(data->point.y < 0) { LV_LOG_WARN("Y is %d which is smaller than zero", data->point.y); } if(data->point.y >= lv_disp_get_ver_res(i->driver->disp)) { - 80037dc: 687b ldr r3, [r7, #4] - 80037de: 681b ldr r3, [r3, #0] - 80037e0: 691b ldr r3, [r3, #16] - 80037e2: 4618 mov r0, r3 - 80037e4: f02c fea2 bl 803052c + 8003770: 687b ldr r3, [r7, #4] + 8003772: 681b ldr r3, [r3, #0] + 8003774: 691b ldr r3, [r3, #16] + 8003776: 4618 mov r0, r3 + 8003778: f02c fe8e bl 8030498 LV_LOG_WARN("Y is %d which is greater than ver. res", data->point.y); } /*Move the cursor if set and moved*/ if(i->cursor != NULL && - 80037e8: 687b ldr r3, [r7, #4] - 80037ea: 6cdb ldr r3, [r3, #76] ; 0x4c - 80037ec: 2b00 cmp r3, #0 - 80037ee: d01a beq.n 8003826 + 800377c: 687b ldr r3, [r7, #4] + 800377e: 6cdb ldr r3, [r3, #76] ; 0x4c + 8003780: 2b00 cmp r3, #0 + 8003782: d01a beq.n 80037ba (i->proc.types.pointer.last_point.x != data->point.x || i->proc.types.pointer.last_point.y != data->point.y)) { - 80037f0: 687b ldr r3, [r7, #4] - 80037f2: f9b3 200c ldrsh.w r2, [r3, #12] - 80037f6: 683b ldr r3, [r7, #0] - 80037f8: f9b3 3000 ldrsh.w r3, [r3] + 8003784: 687b ldr r3, [r7, #4] + 8003786: f9b3 200c ldrsh.w r2, [r3, #12] + 800378a: 683b ldr r3, [r7, #0] + 800378c: f9b3 3000 ldrsh.w r3, [r3] if(i->cursor != NULL && - 80037fc: 429a cmp r2, r3 - 80037fe: d107 bne.n 8003810 + 8003790: 429a cmp r2, r3 + 8003792: d107 bne.n 80037a4 (i->proc.types.pointer.last_point.x != data->point.x || i->proc.types.pointer.last_point.y != data->point.y)) { - 8003800: 687b ldr r3, [r7, #4] - 8003802: f9b3 200e ldrsh.w r2, [r3, #14] - 8003806: 683b ldr r3, [r7, #0] - 8003808: f9b3 3002 ldrsh.w r3, [r3, #2] - 800380c: 429a cmp r2, r3 - 800380e: d00a beq.n 8003826 + 8003794: 687b ldr r3, [r7, #4] + 8003796: f9b3 200e ldrsh.w r2, [r3, #14] + 800379a: 683b ldr r3, [r7, #0] + 800379c: f9b3 3002 ldrsh.w r3, [r3, #2] + 80037a0: 429a cmp r2, r3 + 80037a2: d00a beq.n 80037ba lv_obj_set_pos(i->cursor, data->point.x, data->point.y); - 8003810: 687b ldr r3, [r7, #4] - 8003812: 6cd8 ldr r0, [r3, #76] ; 0x4c - 8003814: 683b ldr r3, [r7, #0] - 8003816: f9b3 1000 ldrsh.w r1, [r3] - 800381a: 683b ldr r3, [r7, #0] - 800381c: f9b3 3002 ldrsh.w r3, [r3, #2] - 8003820: 461a mov r2, r3 - 8003822: f005 fd25 bl 8009270 + 80037a4: 687b ldr r3, [r7, #4] + 80037a6: 6cd8 ldr r0, [r3, #76] ; 0x4c + 80037a8: 683b ldr r3, [r7, #0] + 80037aa: f9b3 1000 ldrsh.w r1, [r3] + 80037ae: 683b ldr r3, [r7, #0] + 80037b0: f9b3 3002 ldrsh.w r3, [r3, #2] + 80037b4: 461a mov r2, r3 + 80037b6: f005 fd25 bl 8009204 } i->proc.types.pointer.act_point.x = data->point.x; - 8003826: 683b ldr r3, [r7, #0] - 8003828: f9b3 2000 ldrsh.w r2, [r3] - 800382c: 687b ldr r3, [r7, #4] - 800382e: 811a strh r2, [r3, #8] + 80037ba: 683b ldr r3, [r7, #0] + 80037bc: f9b3 2000 ldrsh.w r2, [r3] + 80037c0: 687b ldr r3, [r7, #4] + 80037c2: 811a strh r2, [r3, #8] i->proc.types.pointer.act_point.y = data->point.y; - 8003830: 683b ldr r3, [r7, #0] - 8003832: f9b3 2002 ldrsh.w r2, [r3, #2] - 8003836: 687b ldr r3, [r7, #4] - 8003838: 815a strh r2, [r3, #10] + 80037c4: 683b ldr r3, [r7, #0] + 80037c6: f9b3 2002 ldrsh.w r2, [r3, #2] + 80037ca: 687b ldr r3, [r7, #4] + 80037cc: 815a strh r2, [r3, #10] if(i->proc.state == LV_INDEV_STATE_PRESSED) { - 800383a: 687b ldr r3, [r7, #4] - 800383c: 791b ldrb r3, [r3, #4] - 800383e: 2b01 cmp r3, #1 - 8003840: d105 bne.n 800384e + 80037ce: 687b ldr r3, [r7, #4] + 80037d0: 791b ldrb r3, [r3, #4] + 80037d2: 2b01 cmp r3, #1 + 80037d4: d105 bne.n 80037e2 indev_proc_press(&i->proc); - 8003842: 687b ldr r3, [r7, #4] - 8003844: 3304 adds r3, #4 - 8003846: 4618 mov r0, r3 - 8003848: f000 fd64 bl 8004314 - 800384c: e004 b.n 8003858 + 80037d6: 687b ldr r3, [r7, #4] + 80037d8: 3304 adds r3, #4 + 80037da: 4618 mov r0, r3 + 80037dc: f000 fd64 bl 80042a8 + 80037e0: e004 b.n 80037ec } else { indev_proc_release(&i->proc); - 800384e: 687b ldr r3, [r7, #4] - 8003850: 3304 adds r3, #4 - 8003852: 4618 mov r0, r3 - 8003854: f000 ff8a bl 800476c + 80037e2: 687b ldr r3, [r7, #4] + 80037e4: 3304 adds r3, #4 + 80037e6: 4618 mov r0, r3 + 80037e8: f000 ff8a bl 8004700 } i->proc.types.pointer.last_point.x = i->proc.types.pointer.act_point.x; - 8003858: 687b ldr r3, [r7, #4] - 800385a: f9b3 2008 ldrsh.w r2, [r3, #8] - 800385e: 687b ldr r3, [r7, #4] - 8003860: 819a strh r2, [r3, #12] + 80037ec: 687b ldr r3, [r7, #4] + 80037ee: f9b3 2008 ldrsh.w r2, [r3, #8] + 80037f2: 687b ldr r3, [r7, #4] + 80037f4: 819a strh r2, [r3, #12] i->proc.types.pointer.last_point.y = i->proc.types.pointer.act_point.y; - 8003862: 687b ldr r3, [r7, #4] - 8003864: f9b3 200a ldrsh.w r2, [r3, #10] - 8003868: 687b ldr r3, [r7, #4] - 800386a: 81da strh r2, [r3, #14] + 80037f6: 687b ldr r3, [r7, #4] + 80037f8: f9b3 200a ldrsh.w r2, [r3, #10] + 80037fc: 687b ldr r3, [r7, #4] + 80037fe: 81da strh r2, [r3, #14] } - 800386c: bf00 nop - 800386e: 3710 adds r7, #16 - 8003870: 46bd mov sp, r7 - 8003872: bd80 pop {r7, pc} + 8003800: bf00 nop + 8003802: 3710 adds r7, #16 + 8003804: 46bd mov sp, r7 + 8003806: bd80 pop {r7, pc} -08003874 : +08003808 : * Process a new point from LV_INDEV_TYPE_KEYPAD input device * @param i pointer to an input device * @param data pointer to the data read from the input device */ static void indev_keypad_proc(lv_indev_t * i, lv_indev_data_t * data) { - 8003874: b580 push {r7, lr} - 8003876: b086 sub sp, #24 - 8003878: af00 add r7, sp, #0 - 800387a: 6078 str r0, [r7, #4] - 800387c: 6039 str r1, [r7, #0] + 8003808: b580 push {r7, lr} + 800380a: b086 sub sp, #24 + 800380c: af00 add r7, sp, #0 + 800380e: 6078 str r0, [r7, #4] + 8003810: 6039 str r1, [r7, #0] if(data->state == LV_INDEV_STATE_PRESSED && i->proc.wait_until_release) return; - 800387e: 683b ldr r3, [r7, #0] - 8003880: 7b9b ldrb r3, [r3, #14] - 8003882: 2b01 cmp r3, #1 - 8003884: d107 bne.n 8003896 - 8003886: 687b ldr r3, [r7, #4] - 8003888: 795b ldrb r3, [r3, #5] - 800388a: f003 0308 and.w r3, r3, #8 - 800388e: b2db uxtb r3, r3 - 8003890: 2b00 cmp r3, #0 - 8003892: f040 81b8 bne.w 8003c06 + 8003812: 683b ldr r3, [r7, #0] + 8003814: 7b9b ldrb r3, [r3, #14] + 8003816: 2b01 cmp r3, #1 + 8003818: d107 bne.n 800382a + 800381a: 687b ldr r3, [r7, #4] + 800381c: 795b ldrb r3, [r3, #5] + 800381e: f003 0308 and.w r3, r3, #8 + 8003822: b2db uxtb r3, r3 + 8003824: 2b00 cmp r3, #0 + 8003826: f040 81b8 bne.w 8003b9a if(i->proc.wait_until_release) { - 8003896: 687b ldr r3, [r7, #4] - 8003898: 795b ldrb r3, [r3, #5] - 800389a: f003 0308 and.w r3, r3, #8 - 800389e: b2db uxtb r3, r3 - 80038a0: 2b00 cmp r3, #0 - 80038a2: d00f beq.n 80038c4 + 800382a: 687b ldr r3, [r7, #4] + 800382c: 795b ldrb r3, [r3, #5] + 800382e: f003 0308 and.w r3, r3, #8 + 8003832: b2db uxtb r3, r3 + 8003834: 2b00 cmp r3, #0 + 8003836: d00f beq.n 8003858 i->proc.wait_until_release = 0; - 80038a4: 687a ldr r2, [r7, #4] - 80038a6: 7953 ldrb r3, [r2, #5] - 80038a8: f36f 03c3 bfc r3, #3, #1 - 80038ac: 7153 strb r3, [r2, #5] + 8003838: 687a ldr r2, [r7, #4] + 800383a: 7953 ldrb r3, [r2, #5] + 800383c: f36f 03c3 bfc r3, #3, #1 + 8003840: 7153 strb r3, [r2, #5] i->proc.pr_timestamp = 0; - 80038ae: 687b ldr r3, [r7, #4] - 80038b0: 2200 movs r2, #0 - 80038b2: 645a str r2, [r3, #68] ; 0x44 + 8003842: 687b ldr r3, [r7, #4] + 8003844: 2200 movs r2, #0 + 8003846: 645a str r2, [r3, #68] ; 0x44 i->proc.long_pr_sent = 0; - 80038b4: 687a ldr r2, [r7, #4] - 80038b6: 7953 ldrb r3, [r2, #5] - 80038b8: f36f 0300 bfc r3, #0, #1 - 80038bc: 7153 strb r3, [r2, #5] + 8003848: 687a ldr r2, [r7, #4] + 800384a: 7953 ldrb r3, [r2, #5] + 800384c: f36f 0300 bfc r3, #0, #1 + 8003850: 7153 strb r3, [r2, #5] i->proc.types.keypad.last_state = LV_INDEV_STATE_RELEASED; /*To skip the processing of release*/ - 80038be: 687b ldr r3, [r7, #4] - 80038c0: 2200 movs r2, #0 - 80038c2: 721a strb r2, [r3, #8] + 8003852: 687b ldr r3, [r7, #4] + 8003854: 2200 movs r2, #0 + 8003856: 721a strb r2, [r3, #8] } lv_group_t * g = i->group; - 80038c4: 687b ldr r3, [r7, #4] - 80038c6: 6d1b ldr r3, [r3, #80] ; 0x50 - 80038c8: 617b str r3, [r7, #20] + 8003858: 687b ldr r3, [r7, #4] + 800385a: 6d1b ldr r3, [r3, #80] ; 0x50 + 800385c: 617b str r3, [r7, #20] if(g == NULL) return; - 80038ca: 697b ldr r3, [r7, #20] - 80038cc: 2b00 cmp r3, #0 - 80038ce: f000 819c beq.w 8003c0a + 800385e: 697b ldr r3, [r7, #20] + 8003860: 2b00 cmp r3, #0 + 8003862: f000 819c beq.w 8003b9e indev_obj_act = lv_group_get_focused(g); - 80038d2: 6978 ldr r0, [r7, #20] - 80038d4: f7ff faf8 bl 8002ec8 - 80038d8: 4603 mov r3, r0 - 80038da: 4a9e ldr r2, [pc, #632] ; (8003b54 ) - 80038dc: 6013 str r3, [r2, #0] + 8003866: 6978 ldr r0, [r7, #20] + 8003868: f7ff faf8 bl 8002e5c + 800386c: 4603 mov r3, r0 + 800386e: 4a9e ldr r2, [pc, #632] ; (8003ae8 ) + 8003870: 6013 str r3, [r2, #0] if(indev_obj_act == NULL) return; - 80038de: 4b9d ldr r3, [pc, #628] ; (8003b54 ) - 80038e0: 681b ldr r3, [r3, #0] - 80038e2: 2b00 cmp r3, #0 - 80038e4: f000 8193 beq.w 8003c0e + 8003872: 4b9d ldr r3, [pc, #628] ; (8003ae8 ) + 8003874: 681b ldr r3, [r3, #0] + 8003876: 2b00 cmp r3, #0 + 8003878: f000 8193 beq.w 8003ba2 /*Save the last key to compare it with the current latter on RELEASE*/ uint32_t prev_key = i->proc.types.keypad.last_key; - 80038e8: 687b ldr r3, [r7, #4] - 80038ea: 68db ldr r3, [r3, #12] - 80038ec: 613b str r3, [r7, #16] + 800387c: 687b ldr r3, [r7, #4] + 800387e: 68db ldr r3, [r3, #12] + 8003880: 613b str r3, [r7, #16] /*Save the last key. *It must be done here else `lv_indev_get_key` will return the last key in events*/ i->proc.types.keypad.last_key = data->key; - 80038ee: 683b ldr r3, [r7, #0] - 80038f0: 685a ldr r2, [r3, #4] - 80038f2: 687b ldr r3, [r7, #4] - 80038f4: 60da str r2, [r3, #12] + 8003882: 683b ldr r3, [r7, #0] + 8003884: 685a ldr r2, [r3, #4] + 8003886: 687b ldr r3, [r7, #4] + 8003888: 60da str r2, [r3, #12] /*Save the previous state so we can detect state changes below and also set the last state now *so if any event handler on the way returns `LV_RES_INV` the last state is remembered *for the next time*/ uint32_t prev_state = i->proc.types.keypad.last_state; - 80038f6: 687b ldr r3, [r7, #4] - 80038f8: 7a1b ldrb r3, [r3, #8] - 80038fa: 60fb str r3, [r7, #12] + 800388a: 687b ldr r3, [r7, #4] + 800388c: 7a1b ldrb r3, [r3, #8] + 800388e: 60fb str r3, [r7, #12] i->proc.types.keypad.last_state = data->state; - 80038fc: 683b ldr r3, [r7, #0] - 80038fe: 7b9a ldrb r2, [r3, #14] - 8003900: 687b ldr r3, [r7, #4] - 8003902: 721a strb r2, [r3, #8] + 8003890: 683b ldr r3, [r7, #0] + 8003892: 7b9a ldrb r2, [r3, #14] + 8003894: 687b ldr r3, [r7, #4] + 8003896: 721a strb r2, [r3, #8] /*Key press happened*/ if(data->state == LV_INDEV_STATE_PRESSED && prev_state == LV_INDEV_STATE_RELEASED) { - 8003904: 683b ldr r3, [r7, #0] - 8003906: 7b9b ldrb r3, [r3, #14] - 8003908: 2b01 cmp r3, #1 - 800390a: d16c bne.n 80039e6 - 800390c: 68fb ldr r3, [r7, #12] - 800390e: 2b00 cmp r3, #0 - 8003910: d169 bne.n 80039e6 + 8003898: 683b ldr r3, [r7, #0] + 800389a: 7b9b ldrb r3, [r3, #14] + 800389c: 2b01 cmp r3, #1 + 800389e: d16c bne.n 800397a + 80038a0: 68fb ldr r3, [r7, #12] + 80038a2: 2b00 cmp r3, #0 + 80038a4: d169 bne.n 800397a LV_LOG_INFO("%d key is pressed", data->key); i->proc.pr_timestamp = lv_tick_get(); - 8003912: f02c ff4b bl 80307ac - 8003916: 4602 mov r2, r0 - 8003918: 687b ldr r3, [r7, #4] - 800391a: 645a str r2, [r3, #68] ; 0x44 + 80038a6: f02c ff37 bl 8030718 + 80038aa: 4602 mov r2, r0 + 80038ac: 687b ldr r3, [r7, #4] + 80038ae: 645a str r2, [r3, #68] ; 0x44 /*Simulate a press on the object if ENTER was pressed*/ if(data->key == LV_KEY_ENTER) { - 800391c: 683b ldr r3, [r7, #0] - 800391e: 685b ldr r3, [r3, #4] - 8003920: 2b0a cmp r3, #10 - 8003922: d115 bne.n 8003950 + 80038b0: 683b ldr r3, [r7, #0] + 80038b2: 685b ldr r3, [r3, #4] + 80038b4: 2b0a cmp r3, #10 + 80038b6: d115 bne.n 80038e4 /*Send the ENTER as a normal KEY*/ lv_group_send_data(g, LV_KEY_ENTER); - 8003924: 210a movs r1, #10 - 8003926: 6978 ldr r0, [r7, #20] - 8003928: f7ff fa74 bl 8002e14 + 80038b8: 210a movs r1, #10 + 80038ba: 6978 ldr r0, [r7, #20] + 80038bc: f7ff fa74 bl 8002da8 lv_event_send(indev_obj_act, LV_EVENT_PRESSED, indev_act); - 800392c: 4b89 ldr r3, [pc, #548] ; (8003b54 ) - 800392e: 681b ldr r3, [r3, #0] - 8003930: 4a89 ldr r2, [pc, #548] ; (8003b58 ) - 8003932: 6812 ldr r2, [r2, #0] - 8003934: 2101 movs r1, #1 - 8003936: 4618 mov r0, r3 - 8003938: f7fe fda2 bl 8002480 + 80038c0: 4b89 ldr r3, [pc, #548] ; (8003ae8 ) + 80038c2: 681b ldr r3, [r3, #0] + 80038c4: 4a89 ldr r2, [pc, #548] ; (8003aec ) + 80038c6: 6812 ldr r2, [r2, #0] + 80038c8: 2101 movs r1, #1 + 80038ca: 4618 mov r0, r3 + 80038cc: f7fe fda2 bl 8002414 if(indev_reset_check(&i->proc)) return; - 800393c: 687b ldr r3, [r7, #4] - 800393e: 3304 adds r3, #4 - 8003940: 4618 mov r0, r3 - 8003942: f001 f97d bl 8004c40 - 8003946: 4603 mov r3, r0 - 8003948: 2b00 cmp r3, #0 - 800394a: f000 8155 beq.w 8003bf8 - 800394e: e167 b.n 8003c20 + 80038d0: 687b ldr r3, [r7, #4] + 80038d2: 3304 adds r3, #4 + 80038d4: 4618 mov r0, r3 + 80038d6: f001 f97d bl 8004bd4 + 80038da: 4603 mov r3, r0 + 80038dc: 2b00 cmp r3, #0 + 80038de: f000 8155 beq.w 8003b8c + 80038e2: e167 b.n 8003bb4 } else if(data->key == LV_KEY_ESC) { - 8003950: 683b ldr r3, [r7, #0] - 8003952: 685b ldr r3, [r3, #4] - 8003954: 2b1b cmp r3, #27 - 8003956: d115 bne.n 8003984 + 80038e4: 683b ldr r3, [r7, #0] + 80038e6: 685b ldr r3, [r3, #4] + 80038e8: 2b1b cmp r3, #27 + 80038ea: d115 bne.n 8003918 /*Send the ESC as a normal KEY*/ lv_group_send_data(g, LV_KEY_ESC); - 8003958: 211b movs r1, #27 - 800395a: 6978 ldr r0, [r7, #20] - 800395c: f7ff fa5a bl 8002e14 + 80038ec: 211b movs r1, #27 + 80038ee: 6978 ldr r0, [r7, #20] + 80038f0: f7ff fa5a bl 8002da8 lv_event_send(indev_obj_act, LV_EVENT_CANCEL, indev_act); - 8003960: 4b7c ldr r3, [pc, #496] ; (8003b54 ) - 8003962: 681b ldr r3, [r3, #0] - 8003964: 4a7c ldr r2, [pc, #496] ; (8003b58 ) - 8003966: 6812 ldr r2, [r2, #0] - 8003968: 2120 movs r1, #32 - 800396a: 4618 mov r0, r3 - 800396c: f7fe fd88 bl 8002480 + 80038f4: 4b7c ldr r3, [pc, #496] ; (8003ae8 ) + 80038f6: 681b ldr r3, [r3, #0] + 80038f8: 4a7c ldr r2, [pc, #496] ; (8003aec ) + 80038fa: 6812 ldr r2, [r2, #0] + 80038fc: 2120 movs r1, #32 + 80038fe: 4618 mov r0, r3 + 8003900: f7fe fd88 bl 8002414 if(indev_reset_check(&i->proc)) return; - 8003970: 687b ldr r3, [r7, #4] - 8003972: 3304 adds r3, #4 - 8003974: 4618 mov r0, r3 - 8003976: f001 f963 bl 8004c40 - 800397a: 4603 mov r3, r0 - 800397c: 2b00 cmp r3, #0 - 800397e: f000 813b beq.w 8003bf8 - 8003982: e14d b.n 8003c20 + 8003904: 687b ldr r3, [r7, #4] + 8003906: 3304 adds r3, #4 + 8003908: 4618 mov r0, r3 + 800390a: f001 f963 bl 8004bd4 + 800390e: 4603 mov r3, r0 + 8003910: 2b00 cmp r3, #0 + 8003912: f000 813b beq.w 8003b8c + 8003916: e14d b.n 8003bb4 } /*Move the focus on NEXT*/ else if(data->key == LV_KEY_NEXT) { - 8003984: 683b ldr r3, [r7, #0] - 8003986: 685b ldr r3, [r3, #4] - 8003988: 2b09 cmp r3, #9 - 800398a: d110 bne.n 80039ae + 8003918: 683b ldr r3, [r7, #0] + 800391a: 685b ldr r3, [r3, #4] + 800391c: 2b09 cmp r3, #9 + 800391e: d110 bne.n 8003942 lv_group_set_editing(g, false); /*Editing is not used by KEYPAD is be sure it is disabled*/ - 800398c: 2100 movs r1, #0 - 800398e: 6978 ldr r0, [r7, #20] - 8003990: f7ff fa59 bl 8002e46 + 8003920: 2100 movs r1, #0 + 8003922: 6978 ldr r0, [r7, #20] + 8003924: f7ff fa59 bl 8002dda lv_group_focus_next(g); - 8003994: 6978 ldr r0, [r7, #20] - 8003996: f7ff fa19 bl 8002dcc + 8003928: 6978 ldr r0, [r7, #20] + 800392a: f7ff fa19 bl 8002d60 if(indev_reset_check(&i->proc)) return; - 800399a: 687b ldr r3, [r7, #4] - 800399c: 3304 adds r3, #4 - 800399e: 4618 mov r0, r3 - 80039a0: f001 f94e bl 8004c40 - 80039a4: 4603 mov r3, r0 - 80039a6: 2b00 cmp r3, #0 - 80039a8: f000 8126 beq.w 8003bf8 - 80039ac: e138 b.n 8003c20 + 800392e: 687b ldr r3, [r7, #4] + 8003930: 3304 adds r3, #4 + 8003932: 4618 mov r0, r3 + 8003934: f001 f94e bl 8004bd4 + 8003938: 4603 mov r3, r0 + 800393a: 2b00 cmp r3, #0 + 800393c: f000 8126 beq.w 8003b8c + 8003940: e138 b.n 8003bb4 } /*Move the focus on PREV*/ else if(data->key == LV_KEY_PREV) { - 80039ae: 683b ldr r3, [r7, #0] - 80039b0: 685b ldr r3, [r3, #4] - 80039b2: 2b0b cmp r3, #11 - 80039b4: d110 bne.n 80039d8 + 8003942: 683b ldr r3, [r7, #0] + 8003944: 685b ldr r3, [r3, #4] + 8003946: 2b0b cmp r3, #11 + 8003948: d110 bne.n 800396c lv_group_set_editing(g, false); /*Editing is not used by KEYPAD is be sure it is disabled*/ - 80039b6: 2100 movs r1, #0 - 80039b8: 6978 ldr r0, [r7, #20] - 80039ba: f7ff fa44 bl 8002e46 + 800394a: 2100 movs r1, #0 + 800394c: 6978 ldr r0, [r7, #20] + 800394e: f7ff fa44 bl 8002dda lv_group_focus_prev(g); - 80039be: 6978 ldr r0, [r7, #20] - 80039c0: f7ff fa16 bl 8002df0 + 8003952: 6978 ldr r0, [r7, #20] + 8003954: f7ff fa16 bl 8002d84 if(indev_reset_check(&i->proc)) return; - 80039c4: 687b ldr r3, [r7, #4] - 80039c6: 3304 adds r3, #4 - 80039c8: 4618 mov r0, r3 - 80039ca: f001 f939 bl 8004c40 - 80039ce: 4603 mov r3, r0 - 80039d0: 2b00 cmp r3, #0 - 80039d2: f000 8111 beq.w 8003bf8 - 80039d6: e123 b.n 8003c20 + 8003958: 687b ldr r3, [r7, #4] + 800395a: 3304 adds r3, #4 + 800395c: 4618 mov r0, r3 + 800395e: f001 f939 bl 8004bd4 + 8003962: 4603 mov r3, r0 + 8003964: 2b00 cmp r3, #0 + 8003966: f000 8111 beq.w 8003b8c + 800396a: e123 b.n 8003bb4 } /*Just send other keys to the object (e.g. 'A' or `LV_GROUP_KEY_RIGHT`)*/ else { lv_group_send_data(g, data->key); - 80039d8: 683b ldr r3, [r7, #0] - 80039da: 685b ldr r3, [r3, #4] - 80039dc: 4619 mov r1, r3 - 80039de: 6978 ldr r0, [r7, #20] - 80039e0: f7ff fa18 bl 8002e14 + 800396c: 683b ldr r3, [r7, #0] + 800396e: 685b ldr r3, [r3, #4] + 8003970: 4619 mov r1, r3 + 8003972: 6978 ldr r0, [r7, #20] + 8003974: f7ff fa18 bl 8002da8 if(data->key == LV_KEY_ENTER) { - 80039e4: e108 b.n 8003bf8 + 8003978: e108 b.n 8003b8c } } /*Pressing*/ else if(data->state == LV_INDEV_STATE_PRESSED && prev_state == LV_INDEV_STATE_PRESSED) { - 80039e6: 683b ldr r3, [r7, #0] - 80039e8: 7b9b ldrb r3, [r3, #14] - 80039ea: 2b01 cmp r3, #1 - 80039ec: f040 80b6 bne.w 8003b5c - 80039f0: 68fb ldr r3, [r7, #12] - 80039f2: 2b01 cmp r3, #1 - 80039f4: f040 80b2 bne.w 8003b5c + 800397a: 683b ldr r3, [r7, #0] + 800397c: 7b9b ldrb r3, [r3, #14] + 800397e: 2b01 cmp r3, #1 + 8003980: f040 80b6 bne.w 8003af0 + 8003984: 68fb ldr r3, [r7, #12] + 8003986: 2b01 cmp r3, #1 + 8003988: f040 80b2 bne.w 8003af0 if(data->key == LV_KEY_ENTER) { - 80039f8: 683b ldr r3, [r7, #0] - 80039fa: 685b ldr r3, [r3, #4] - 80039fc: 2b0a cmp r3, #10 - 80039fe: d110 bne.n 8003a22 + 800398c: 683b ldr r3, [r7, #0] + 800398e: 685b ldr r3, [r3, #4] + 8003990: 2b0a cmp r3, #10 + 8003992: d110 bne.n 80039b6 lv_event_send(indev_obj_act, LV_EVENT_PRESSING, indev_act); - 8003a00: 4b54 ldr r3, [pc, #336] ; (8003b54 ) - 8003a02: 681b ldr r3, [r3, #0] - 8003a04: 4a54 ldr r2, [pc, #336] ; (8003b58 ) - 8003a06: 6812 ldr r2, [r2, #0] - 8003a08: 2102 movs r1, #2 - 8003a0a: 4618 mov r0, r3 - 8003a0c: f7fe fd38 bl 8002480 + 8003994: 4b54 ldr r3, [pc, #336] ; (8003ae8 ) + 8003996: 681b ldr r3, [r3, #0] + 8003998: 4a54 ldr r2, [pc, #336] ; (8003aec ) + 800399a: 6812 ldr r2, [r2, #0] + 800399c: 2102 movs r1, #2 + 800399e: 4618 mov r0, r3 + 80039a0: f7fe fd38 bl 8002414 if(indev_reset_check(&i->proc)) return; - 8003a10: 687b ldr r3, [r7, #4] - 8003a12: 3304 adds r3, #4 - 8003a14: 4618 mov r0, r3 - 8003a16: f001 f913 bl 8004c40 - 8003a1a: 4603 mov r3, r0 - 8003a1c: 2b00 cmp r3, #0 - 8003a1e: f040 80f8 bne.w 8003c12 + 80039a4: 687b ldr r3, [r7, #4] + 80039a6: 3304 adds r3, #4 + 80039a8: 4618 mov r0, r3 + 80039aa: f001 f913 bl 8004bd4 + 80039ae: 4603 mov r3, r0 + 80039b0: 2b00 cmp r3, #0 + 80039b2: f040 80f8 bne.w 8003ba6 } /*Long press time has elapsed?*/ if(i->proc.long_pr_sent == 0 && lv_tick_elaps(i->proc.pr_timestamp) > i->driver->long_press_time) { - 8003a22: 687b ldr r3, [r7, #4] - 8003a24: 795b ldrb r3, [r3, #5] - 8003a26: f003 0301 and.w r3, r3, #1 - 8003a2a: b2db uxtb r3, r3 - 8003a2c: 2b00 cmp r3, #0 - 8003a2e: d129 bne.n 8003a84 - 8003a30: 687b ldr r3, [r7, #4] - 8003a32: 6c5b ldr r3, [r3, #68] ; 0x44 - 8003a34: 4618 mov r0, r3 - 8003a36: f02c fed1 bl 80307dc - 8003a3a: 4602 mov r2, r0 - 8003a3c: 687b ldr r3, [r7, #4] - 8003a3e: 681b ldr r3, [r3, #0] - 8003a40: 8b9b ldrh r3, [r3, #28] - 8003a42: 429a cmp r2, r3 - 8003a44: d91e bls.n 8003a84 + 80039b6: 687b ldr r3, [r7, #4] + 80039b8: 795b ldrb r3, [r3, #5] + 80039ba: f003 0301 and.w r3, r3, #1 + 80039be: b2db uxtb r3, r3 + 80039c0: 2b00 cmp r3, #0 + 80039c2: d129 bne.n 8003a18 + 80039c4: 687b ldr r3, [r7, #4] + 80039c6: 6c5b ldr r3, [r3, #68] ; 0x44 + 80039c8: 4618 mov r0, r3 + 80039ca: f02c febd bl 8030748 + 80039ce: 4602 mov r2, r0 + 80039d0: 687b ldr r3, [r7, #4] + 80039d2: 681b ldr r3, [r3, #0] + 80039d4: 8b9b ldrh r3, [r3, #28] + 80039d6: 429a cmp r2, r3 + 80039d8: d91e bls.n 8003a18 i->proc.long_pr_sent = 1; - 8003a46: 687a ldr r2, [r7, #4] - 8003a48: 7953 ldrb r3, [r2, #5] - 8003a4a: f043 0301 orr.w r3, r3, #1 - 8003a4e: 7153 strb r3, [r2, #5] + 80039da: 687a ldr r2, [r7, #4] + 80039dc: 7953 ldrb r3, [r2, #5] + 80039de: f043 0301 orr.w r3, r3, #1 + 80039e2: 7153 strb r3, [r2, #5] if(data->key == LV_KEY_ENTER) { - 8003a50: 683b ldr r3, [r7, #0] - 8003a52: 685b ldr r3, [r3, #4] - 8003a54: 2b0a cmp r3, #10 - 8003a56: d17b bne.n 8003b50 + 80039e4: 683b ldr r3, [r7, #0] + 80039e6: 685b ldr r3, [r3, #4] + 80039e8: 2b0a cmp r3, #10 + 80039ea: d17b bne.n 8003ae4 i->proc.longpr_rep_timestamp = lv_tick_get(); - 8003a58: f02c fea8 bl 80307ac - 8003a5c: 4602 mov r2, r0 - 8003a5e: 687b ldr r3, [r7, #4] - 8003a60: 649a str r2, [r3, #72] ; 0x48 + 80039ec: f02c fe94 bl 8030718 + 80039f0: 4602 mov r2, r0 + 80039f2: 687b ldr r3, [r7, #4] + 80039f4: 649a str r2, [r3, #72] ; 0x48 lv_event_send(indev_obj_act, LV_EVENT_LONG_PRESSED, indev_act); - 8003a62: 4b3c ldr r3, [pc, #240] ; (8003b54 ) - 8003a64: 681b ldr r3, [r3, #0] - 8003a66: 4a3c ldr r2, [pc, #240] ; (8003b58 ) - 8003a68: 6812 ldr r2, [r2, #0] - 8003a6a: 2105 movs r1, #5 - 8003a6c: 4618 mov r0, r3 - 8003a6e: f7fe fd07 bl 8002480 + 80039f6: 4b3c ldr r3, [pc, #240] ; (8003ae8 ) + 80039f8: 681b ldr r3, [r3, #0] + 80039fa: 4a3c ldr r2, [pc, #240] ; (8003aec ) + 80039fc: 6812 ldr r2, [r2, #0] + 80039fe: 2105 movs r1, #5 + 8003a00: 4618 mov r0, r3 + 8003a02: f7fe fd07 bl 8002414 if(indev_reset_check(&i->proc)) return; - 8003a72: 687b ldr r3, [r7, #4] - 8003a74: 3304 adds r3, #4 - 8003a76: 4618 mov r0, r3 - 8003a78: f001 f8e2 bl 8004c40 - 8003a7c: 4603 mov r3, r0 - 8003a7e: 2b00 cmp r3, #0 - 8003a80: d066 beq.n 8003b50 - 8003a82: e0cd b.n 8003c20 + 8003a06: 687b ldr r3, [r7, #4] + 8003a08: 3304 adds r3, #4 + 8003a0a: 4618 mov r0, r3 + 8003a0c: f001 f8e2 bl 8004bd4 + 8003a10: 4603 mov r3, r0 + 8003a12: 2b00 cmp r3, #0 + 8003a14: d066 beq.n 8003ae4 + 8003a16: e0cd b.n 8003bb4 } } /*Long press repeated time has elapsed?*/ else if(i->proc.long_pr_sent != 0 && - 8003a84: 687b ldr r3, [r7, #4] - 8003a86: 795b ldrb r3, [r3, #5] - 8003a88: f003 0301 and.w r3, r3, #1 - 8003a8c: b2db uxtb r3, r3 - 8003a8e: 2b00 cmp r3, #0 - 8003a90: f000 80b4 beq.w 8003bfc + 8003a18: 687b ldr r3, [r7, #4] + 8003a1a: 795b ldrb r3, [r3, #5] + 8003a1c: f003 0301 and.w r3, r3, #1 + 8003a20: b2db uxtb r3, r3 + 8003a22: 2b00 cmp r3, #0 + 8003a24: f000 80b4 beq.w 8003b90 lv_tick_elaps(i->proc.longpr_rep_timestamp) > i->driver->long_press_repeat_time) { - 8003a94: 687b ldr r3, [r7, #4] - 8003a96: 6c9b ldr r3, [r3, #72] ; 0x48 - 8003a98: 4618 mov r0, r3 - 8003a9a: f02c fe9f bl 80307dc - 8003a9e: 4602 mov r2, r0 - 8003aa0: 687b ldr r3, [r7, #4] - 8003aa2: 681b ldr r3, [r3, #0] - 8003aa4: 8bdb ldrh r3, [r3, #30] + 8003a28: 687b ldr r3, [r7, #4] + 8003a2a: 6c9b ldr r3, [r3, #72] ; 0x48 + 8003a2c: 4618 mov r0, r3 + 8003a2e: f02c fe8b bl 8030748 + 8003a32: 4602 mov r2, r0 + 8003a34: 687b ldr r3, [r7, #4] + 8003a36: 681b ldr r3, [r3, #0] + 8003a38: 8bdb ldrh r3, [r3, #30] else if(i->proc.long_pr_sent != 0 && - 8003aa6: 429a cmp r2, r3 - 8003aa8: f240 80a8 bls.w 8003bfc + 8003a3a: 429a cmp r2, r3 + 8003a3c: f240 80a8 bls.w 8003b90 i->proc.longpr_rep_timestamp = lv_tick_get(); - 8003aac: f02c fe7e bl 80307ac - 8003ab0: 4602 mov r2, r0 - 8003ab2: 687b ldr r3, [r7, #4] - 8003ab4: 649a str r2, [r3, #72] ; 0x48 + 8003a40: f02c fe6a bl 8030718 + 8003a44: 4602 mov r2, r0 + 8003a46: 687b ldr r3, [r7, #4] + 8003a48: 649a str r2, [r3, #72] ; 0x48 /*Send LONG_PRESS_REP on ENTER*/ if(data->key == LV_KEY_ENTER) { - 8003ab6: 683b ldr r3, [r7, #0] - 8003ab8: 685b ldr r3, [r3, #4] - 8003aba: 2b0a cmp r3, #10 - 8003abc: d111 bne.n 8003ae2 + 8003a4a: 683b ldr r3, [r7, #0] + 8003a4c: 685b ldr r3, [r3, #4] + 8003a4e: 2b0a cmp r3, #10 + 8003a50: d111 bne.n 8003a76 lv_event_send(indev_obj_act, LV_EVENT_LONG_PRESSED_REPEAT, indev_act); - 8003abe: 4b25 ldr r3, [pc, #148] ; (8003b54 ) - 8003ac0: 681b ldr r3, [r3, #0] - 8003ac2: 4a25 ldr r2, [pc, #148] ; (8003b58 ) - 8003ac4: 6812 ldr r2, [r2, #0] - 8003ac6: 2106 movs r1, #6 - 8003ac8: 4618 mov r0, r3 - 8003aca: f7fe fcd9 bl 8002480 + 8003a52: 4b25 ldr r3, [pc, #148] ; (8003ae8 ) + 8003a54: 681b ldr r3, [r3, #0] + 8003a56: 4a25 ldr r2, [pc, #148] ; (8003aec ) + 8003a58: 6812 ldr r2, [r2, #0] + 8003a5a: 2106 movs r1, #6 + 8003a5c: 4618 mov r0, r3 + 8003a5e: f7fe fcd9 bl 8002414 if(indev_reset_check(&i->proc)) return; - 8003ace: 687b ldr r3, [r7, #4] - 8003ad0: 3304 adds r3, #4 - 8003ad2: 4618 mov r0, r3 - 8003ad4: f001 f8b4 bl 8004c40 - 8003ad8: 4603 mov r3, r0 - 8003ada: 2b00 cmp r3, #0 - 8003adc: f000 808e beq.w 8003bfc - 8003ae0: e09e b.n 8003c20 + 8003a62: 687b ldr r3, [r7, #4] + 8003a64: 3304 adds r3, #4 + 8003a66: 4618 mov r0, r3 + 8003a68: f001 f8b4 bl 8004bd4 + 8003a6c: 4603 mov r3, r0 + 8003a6e: 2b00 cmp r3, #0 + 8003a70: f000 808e beq.w 8003b90 + 8003a74: e09e b.n 8003bb4 } /*Move the focus on NEXT again*/ else if(data->key == LV_KEY_NEXT) { - 8003ae2: 683b ldr r3, [r7, #0] - 8003ae4: 685b ldr r3, [r3, #4] - 8003ae6: 2b09 cmp r3, #9 - 8003ae8: d10f bne.n 8003b0a + 8003a76: 683b ldr r3, [r7, #0] + 8003a78: 685b ldr r3, [r3, #4] + 8003a7a: 2b09 cmp r3, #9 + 8003a7c: d10f bne.n 8003a9e lv_group_set_editing(g, false); /*Editing is not used by KEYPAD is be sure it is disabled*/ - 8003aea: 2100 movs r1, #0 - 8003aec: 6978 ldr r0, [r7, #20] - 8003aee: f7ff f9aa bl 8002e46 + 8003a7e: 2100 movs r1, #0 + 8003a80: 6978 ldr r0, [r7, #20] + 8003a82: f7ff f9aa bl 8002dda lv_group_focus_next(g); - 8003af2: 6978 ldr r0, [r7, #20] - 8003af4: f7ff f96a bl 8002dcc + 8003a86: 6978 ldr r0, [r7, #20] + 8003a88: f7ff f96a bl 8002d60 if(indev_reset_check(&i->proc)) return; - 8003af8: 687b ldr r3, [r7, #4] - 8003afa: 3304 adds r3, #4 - 8003afc: 4618 mov r0, r3 - 8003afe: f001 f89f bl 8004c40 - 8003b02: 4603 mov r3, r0 - 8003b04: 2b00 cmp r3, #0 - 8003b06: d079 beq.n 8003bfc - 8003b08: e08a b.n 8003c20 + 8003a8c: 687b ldr r3, [r7, #4] + 8003a8e: 3304 adds r3, #4 + 8003a90: 4618 mov r0, r3 + 8003a92: f001 f89f bl 8004bd4 + 8003a96: 4603 mov r3, r0 + 8003a98: 2b00 cmp r3, #0 + 8003a9a: d079 beq.n 8003b90 + 8003a9c: e08a b.n 8003bb4 } /*Move the focus on PREV again*/ else if(data->key == LV_KEY_PREV) { - 8003b0a: 683b ldr r3, [r7, #0] - 8003b0c: 685b ldr r3, [r3, #4] - 8003b0e: 2b0b cmp r3, #11 - 8003b10: d10f bne.n 8003b32 + 8003a9e: 683b ldr r3, [r7, #0] + 8003aa0: 685b ldr r3, [r3, #4] + 8003aa2: 2b0b cmp r3, #11 + 8003aa4: d10f bne.n 8003ac6 lv_group_set_editing(g, false); /*Editing is not used by KEYPAD is be sure it is disabled*/ - 8003b12: 2100 movs r1, #0 - 8003b14: 6978 ldr r0, [r7, #20] - 8003b16: f7ff f996 bl 8002e46 + 8003aa6: 2100 movs r1, #0 + 8003aa8: 6978 ldr r0, [r7, #20] + 8003aaa: f7ff f996 bl 8002dda lv_group_focus_prev(g); - 8003b1a: 6978 ldr r0, [r7, #20] - 8003b1c: f7ff f968 bl 8002df0 + 8003aae: 6978 ldr r0, [r7, #20] + 8003ab0: f7ff f968 bl 8002d84 if(indev_reset_check(&i->proc)) return; - 8003b20: 687b ldr r3, [r7, #4] - 8003b22: 3304 adds r3, #4 - 8003b24: 4618 mov r0, r3 - 8003b26: f001 f88b bl 8004c40 - 8003b2a: 4603 mov r3, r0 - 8003b2c: 2b00 cmp r3, #0 - 8003b2e: d065 beq.n 8003bfc - 8003b30: e076 b.n 8003c20 + 8003ab4: 687b ldr r3, [r7, #4] + 8003ab6: 3304 adds r3, #4 + 8003ab8: 4618 mov r0, r3 + 8003aba: f001 f88b bl 8004bd4 + 8003abe: 4603 mov r3, r0 + 8003ac0: 2b00 cmp r3, #0 + 8003ac2: d065 beq.n 8003b90 + 8003ac4: e076 b.n 8003bb4 } /*Just send other keys again to the object (e.g. 'A' or `LV_GROUP_KEY_RIGHT)*/ else { lv_group_send_data(g, data->key); - 8003b32: 683b ldr r3, [r7, #0] - 8003b34: 685b ldr r3, [r3, #4] - 8003b36: 4619 mov r1, r3 - 8003b38: 6978 ldr r0, [r7, #20] - 8003b3a: f7ff f96b bl 8002e14 + 8003ac6: 683b ldr r3, [r7, #0] + 8003ac8: 685b ldr r3, [r3, #4] + 8003aca: 4619 mov r1, r3 + 8003acc: 6978 ldr r0, [r7, #20] + 8003ace: f7ff f96b bl 8002da8 if(indev_reset_check(&i->proc)) return; - 8003b3e: 687b ldr r3, [r7, #4] - 8003b40: 3304 adds r3, #4 - 8003b42: 4618 mov r0, r3 - 8003b44: f001 f87c bl 8004c40 - 8003b48: 4603 mov r3, r0 - 8003b4a: 2b00 cmp r3, #0 - 8003b4c: d056 beq.n 8003bfc - 8003b4e: e067 b.n 8003c20 + 8003ad2: 687b ldr r3, [r7, #4] + 8003ad4: 3304 adds r3, #4 + 8003ad6: 4618 mov r0, r3 + 8003ad8: f001 f87c bl 8004bd4 + 8003adc: 4603 mov r3, r0 + 8003ade: 2b00 cmp r3, #0 + 8003ae0: d056 beq.n 8003b90 + 8003ae2: e067 b.n 8003bb4 if(data->key == LV_KEY_ENTER) { - 8003b50: bf00 nop + 8003ae4: bf00 nop if(i->proc.long_pr_sent == 0 && lv_tick_elaps(i->proc.pr_timestamp) > i->driver->long_press_time) { - 8003b52: e053 b.n 8003bfc - 8003b54: 20001af8 .word 0x20001af8 - 8003b58: 20001af4 .word 0x20001af4 + 8003ae6: e053 b.n 8003b90 + 8003ae8: 20001af8 .word 0x20001af8 + 8003aec: 20001af4 .word 0x20001af4 } } } /*Release happened*/ else if(data->state == LV_INDEV_STATE_RELEASED && prev_state == LV_INDEV_STATE_PRESSED) { - 8003b5c: 683b ldr r3, [r7, #0] - 8003b5e: 7b9b ldrb r3, [r3, #14] - 8003b60: 2b00 cmp r3, #0 - 8003b62: d14c bne.n 8003bfe - 8003b64: 68fb ldr r3, [r7, #12] - 8003b66: 2b01 cmp r3, #1 - 8003b68: d149 bne.n 8003bfe + 8003af0: 683b ldr r3, [r7, #0] + 8003af2: 7b9b ldrb r3, [r3, #14] + 8003af4: 2b00 cmp r3, #0 + 8003af6: d14c bne.n 8003b92 + 8003af8: 68fb ldr r3, [r7, #12] + 8003afa: 2b01 cmp r3, #1 + 8003afc: d149 bne.n 8003b92 LV_LOG_INFO("%d key is released", data->key); /*The user might clear the key when it was released. Always release the pressed key*/ data->key = prev_key; - 8003b6a: 683b ldr r3, [r7, #0] - 8003b6c: 693a ldr r2, [r7, #16] - 8003b6e: 605a str r2, [r3, #4] + 8003afe: 683b ldr r3, [r7, #0] + 8003b00: 693a ldr r2, [r7, #16] + 8003b02: 605a str r2, [r3, #4] if(data->key == LV_KEY_ENTER) { - 8003b70: 683b ldr r3, [r7, #0] - 8003b72: 685b ldr r3, [r3, #4] - 8003b74: 2b0a cmp r3, #10 - 8003b76: d136 bne.n 8003be6 + 8003b04: 683b ldr r3, [r7, #0] + 8003b06: 685b ldr r3, [r3, #4] + 8003b08: 2b0a cmp r3, #10 + 8003b0a: d136 bne.n 8003b7a lv_event_send(indev_obj_act, LV_EVENT_RELEASED, indev_act); - 8003b78: 4b2b ldr r3, [pc, #172] ; (8003c28 ) - 8003b7a: 681b ldr r3, [r3, #0] - 8003b7c: 4a2b ldr r2, [pc, #172] ; (8003c2c ) - 8003b7e: 6812 ldr r2, [r2, #0] - 8003b80: 2108 movs r1, #8 - 8003b82: 4618 mov r0, r3 - 8003b84: f7fe fc7c bl 8002480 + 8003b0c: 4b2b ldr r3, [pc, #172] ; (8003bbc ) + 8003b0e: 681b ldr r3, [r3, #0] + 8003b10: 4a2b ldr r2, [pc, #172] ; (8003bc0 ) + 8003b12: 6812 ldr r2, [r2, #0] + 8003b14: 2108 movs r1, #8 + 8003b16: 4618 mov r0, r3 + 8003b18: f7fe fc7c bl 8002414 if(indev_reset_check(&i->proc)) return; - 8003b88: 687b ldr r3, [r7, #4] - 8003b8a: 3304 adds r3, #4 - 8003b8c: 4618 mov r0, r3 - 8003b8e: f001 f857 bl 8004c40 - 8003b92: 4603 mov r3, r0 - 8003b94: 2b00 cmp r3, #0 - 8003b96: d13e bne.n 8003c16 + 8003b1c: 687b ldr r3, [r7, #4] + 8003b1e: 3304 adds r3, #4 + 8003b20: 4618 mov r0, r3 + 8003b22: f001 f857 bl 8004bd4 + 8003b26: 4603 mov r3, r0 + 8003b28: 2b00 cmp r3, #0 + 8003b2a: d13e bne.n 8003baa if(i->proc.long_pr_sent == 0) { - 8003b98: 687b ldr r3, [r7, #4] - 8003b9a: 795b ldrb r3, [r3, #5] - 8003b9c: f003 0301 and.w r3, r3, #1 - 8003ba0: b2db uxtb r3, r3 - 8003ba2: 2b00 cmp r3, #0 - 8003ba4: d10f bne.n 8003bc6 + 8003b2c: 687b ldr r3, [r7, #4] + 8003b2e: 795b ldrb r3, [r3, #5] + 8003b30: f003 0301 and.w r3, r3, #1 + 8003b34: b2db uxtb r3, r3 + 8003b36: 2b00 cmp r3, #0 + 8003b38: d10f bne.n 8003b5a lv_event_send(indev_obj_act, LV_EVENT_SHORT_CLICKED, indev_act); - 8003ba6: 4b20 ldr r3, [pc, #128] ; (8003c28 ) - 8003ba8: 681b ldr r3, [r3, #0] - 8003baa: 4a20 ldr r2, [pc, #128] ; (8003c2c ) - 8003bac: 6812 ldr r2, [r2, #0] - 8003bae: 2104 movs r1, #4 - 8003bb0: 4618 mov r0, r3 - 8003bb2: f7fe fc65 bl 8002480 + 8003b3a: 4b20 ldr r3, [pc, #128] ; (8003bbc ) + 8003b3c: 681b ldr r3, [r3, #0] + 8003b3e: 4a20 ldr r2, [pc, #128] ; (8003bc0 ) + 8003b40: 6812 ldr r2, [r2, #0] + 8003b42: 2104 movs r1, #4 + 8003b44: 4618 mov r0, r3 + 8003b46: f7fe fc65 bl 8002414 if(indev_reset_check(&i->proc)) return; - 8003bb6: 687b ldr r3, [r7, #4] - 8003bb8: 3304 adds r3, #4 - 8003bba: 4618 mov r0, r3 - 8003bbc: f001 f840 bl 8004c40 - 8003bc0: 4603 mov r3, r0 - 8003bc2: 2b00 cmp r3, #0 - 8003bc4: d129 bne.n 8003c1a + 8003b4a: 687b ldr r3, [r7, #4] + 8003b4c: 3304 adds r3, #4 + 8003b4e: 4618 mov r0, r3 + 8003b50: f001 f840 bl 8004bd4 + 8003b54: 4603 mov r3, r0 + 8003b56: 2b00 cmp r3, #0 + 8003b58: d129 bne.n 8003bae } lv_event_send(indev_obj_act, LV_EVENT_CLICKED, indev_act); - 8003bc6: 4b18 ldr r3, [pc, #96] ; (8003c28 ) - 8003bc8: 681b ldr r3, [r3, #0] - 8003bca: 4a18 ldr r2, [pc, #96] ; (8003c2c ) - 8003bcc: 6812 ldr r2, [r2, #0] - 8003bce: 2107 movs r1, #7 - 8003bd0: 4618 mov r0, r3 - 8003bd2: f7fe fc55 bl 8002480 + 8003b5a: 4b18 ldr r3, [pc, #96] ; (8003bbc ) + 8003b5c: 681b ldr r3, [r3, #0] + 8003b5e: 4a18 ldr r2, [pc, #96] ; (8003bc0 ) + 8003b60: 6812 ldr r2, [r2, #0] + 8003b62: 2107 movs r1, #7 + 8003b64: 4618 mov r0, r3 + 8003b66: f7fe fc55 bl 8002414 if(indev_reset_check(&i->proc)) return; - 8003bd6: 687b ldr r3, [r7, #4] - 8003bd8: 3304 adds r3, #4 - 8003bda: 4618 mov r0, r3 - 8003bdc: f001 f830 bl 8004c40 - 8003be0: 4603 mov r3, r0 - 8003be2: 2b00 cmp r3, #0 - 8003be4: d11b bne.n 8003c1e + 8003b6a: 687b ldr r3, [r7, #4] + 8003b6c: 3304 adds r3, #4 + 8003b6e: 4618 mov r0, r3 + 8003b70: f001 f830 bl 8004bd4 + 8003b74: 4603 mov r3, r0 + 8003b76: 2b00 cmp r3, #0 + 8003b78: d11b bne.n 8003bb2 } i->proc.pr_timestamp = 0; - 8003be6: 687b ldr r3, [r7, #4] - 8003be8: 2200 movs r2, #0 - 8003bea: 645a str r2, [r3, #68] ; 0x44 + 8003b7a: 687b ldr r3, [r7, #4] + 8003b7c: 2200 movs r2, #0 + 8003b7e: 645a str r2, [r3, #68] ; 0x44 i->proc.long_pr_sent = 0; - 8003bec: 687a ldr r2, [r7, #4] - 8003bee: 7953 ldrb r3, [r2, #5] - 8003bf0: f36f 0300 bfc r3, #0, #1 - 8003bf4: 7153 strb r3, [r2, #5] - 8003bf6: e002 b.n 8003bfe + 8003b80: 687a ldr r2, [r7, #4] + 8003b82: 7953 ldrb r3, [r2, #5] + 8003b84: f36f 0300 bfc r3, #0, #1 + 8003b88: 7153 strb r3, [r2, #5] + 8003b8a: e002 b.n 8003b92 if(data->key == LV_KEY_ENTER) { - 8003bf8: bf00 nop - 8003bfa: e000 b.n 8003bfe + 8003b8c: bf00 nop + 8003b8e: e000 b.n 8003b92 if(i->proc.long_pr_sent == 0 && lv_tick_elaps(i->proc.pr_timestamp) > i->driver->long_press_time) { - 8003bfc: bf00 nop + 8003b90: bf00 nop } indev_obj_act = NULL; - 8003bfe: 4b0a ldr r3, [pc, #40] ; (8003c28 ) - 8003c00: 2200 movs r2, #0 - 8003c02: 601a str r2, [r3, #0] - 8003c04: e00c b.n 8003c20 + 8003b92: 4b0a ldr r3, [pc, #40] ; (8003bbc ) + 8003b94: 2200 movs r2, #0 + 8003b96: 601a str r2, [r3, #0] + 8003b98: e00c b.n 8003bb4 if(data->state == LV_INDEV_STATE_PRESSED && i->proc.wait_until_release) return; - 8003c06: bf00 nop - 8003c08: e00a b.n 8003c20 + 8003b9a: bf00 nop + 8003b9c: e00a b.n 8003bb4 if(g == NULL) return; - 8003c0a: bf00 nop - 8003c0c: e008 b.n 8003c20 + 8003b9e: bf00 nop + 8003ba0: e008 b.n 8003bb4 if(indev_obj_act == NULL) return; - 8003c0e: bf00 nop - 8003c10: e006 b.n 8003c20 + 8003ba2: bf00 nop + 8003ba4: e006 b.n 8003bb4 if(indev_reset_check(&i->proc)) return; - 8003c12: bf00 nop - 8003c14: e004 b.n 8003c20 + 8003ba6: bf00 nop + 8003ba8: e004 b.n 8003bb4 if(indev_reset_check(&i->proc)) return; - 8003c16: bf00 nop - 8003c18: e002 b.n 8003c20 + 8003baa: bf00 nop + 8003bac: e002 b.n 8003bb4 if(indev_reset_check(&i->proc)) return; - 8003c1a: bf00 nop - 8003c1c: e000 b.n 8003c20 + 8003bae: bf00 nop + 8003bb0: e000 b.n 8003bb4 if(indev_reset_check(&i->proc)) return; - 8003c1e: bf00 nop + 8003bb2: bf00 nop } - 8003c20: 3718 adds r7, #24 - 8003c22: 46bd mov sp, r7 - 8003c24: bd80 pop {r7, pc} - 8003c26: bf00 nop - 8003c28: 20001af8 .word 0x20001af8 - 8003c2c: 20001af4 .word 0x20001af4 + 8003bb4: 3718 adds r7, #24 + 8003bb6: 46bd mov sp, r7 + 8003bb8: bd80 pop {r7, pc} + 8003bba: bf00 nop + 8003bbc: 20001af8 .word 0x20001af8 + 8003bc0: 20001af4 .word 0x20001af4 -08003c30 : +08003bc4 : * Process a new point from LV_INDEV_TYPE_ENCODER input device * @param i pointer to an input device * @param data pointer to the data read from the input device */ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data) { - 8003c30: b580 push {r7, lr} - 8003c32: b088 sub sp, #32 - 8003c34: af00 add r7, sp, #0 - 8003c36: 6078 str r0, [r7, #4] - 8003c38: 6039 str r1, [r7, #0] + 8003bc4: b580 push {r7, lr} + 8003bc6: b088 sub sp, #32 + 8003bc8: af00 add r7, sp, #0 + 8003bca: 6078 str r0, [r7, #4] + 8003bcc: 6039 str r1, [r7, #0] if(data->state == LV_INDEV_STATE_PRESSED && i->proc.wait_until_release) return; - 8003c3a: 683b ldr r3, [r7, #0] - 8003c3c: 7b9b ldrb r3, [r3, #14] - 8003c3e: 2b01 cmp r3, #1 - 8003c40: d107 bne.n 8003c52 - 8003c42: 687b ldr r3, [r7, #4] - 8003c44: 795b ldrb r3, [r3, #5] - 8003c46: f003 0308 and.w r3, r3, #8 - 8003c4a: b2db uxtb r3, r3 - 8003c4c: 2b00 cmp r3, #0 - 8003c4e: f040 82d7 bne.w 8004200 + 8003bce: 683b ldr r3, [r7, #0] + 8003bd0: 7b9b ldrb r3, [r3, #14] + 8003bd2: 2b01 cmp r3, #1 + 8003bd4: d107 bne.n 8003be6 + 8003bd6: 687b ldr r3, [r7, #4] + 8003bd8: 795b ldrb r3, [r3, #5] + 8003bda: f003 0308 and.w r3, r3, #8 + 8003bde: b2db uxtb r3, r3 + 8003be0: 2b00 cmp r3, #0 + 8003be2: f040 82d7 bne.w 8004194 if(i->proc.wait_until_release) { - 8003c52: 687b ldr r3, [r7, #4] - 8003c54: 795b ldrb r3, [r3, #5] - 8003c56: f003 0308 and.w r3, r3, #8 - 8003c5a: b2db uxtb r3, r3 - 8003c5c: 2b00 cmp r3, #0 - 8003c5e: d00f beq.n 8003c80 + 8003be6: 687b ldr r3, [r7, #4] + 8003be8: 795b ldrb r3, [r3, #5] + 8003bea: f003 0308 and.w r3, r3, #8 + 8003bee: b2db uxtb r3, r3 + 8003bf0: 2b00 cmp r3, #0 + 8003bf2: d00f beq.n 8003c14 i->proc.wait_until_release = 0; - 8003c60: 687a ldr r2, [r7, #4] - 8003c62: 7953 ldrb r3, [r2, #5] - 8003c64: f36f 03c3 bfc r3, #3, #1 - 8003c68: 7153 strb r3, [r2, #5] + 8003bf4: 687a ldr r2, [r7, #4] + 8003bf6: 7953 ldrb r3, [r2, #5] + 8003bf8: f36f 03c3 bfc r3, #3, #1 + 8003bfc: 7153 strb r3, [r2, #5] i->proc.pr_timestamp = 0; - 8003c6a: 687b ldr r3, [r7, #4] - 8003c6c: 2200 movs r2, #0 - 8003c6e: 645a str r2, [r3, #68] ; 0x44 + 8003bfe: 687b ldr r3, [r7, #4] + 8003c00: 2200 movs r2, #0 + 8003c02: 645a str r2, [r3, #68] ; 0x44 i->proc.long_pr_sent = 0; - 8003c70: 687a ldr r2, [r7, #4] - 8003c72: 7953 ldrb r3, [r2, #5] - 8003c74: f36f 0300 bfc r3, #0, #1 - 8003c78: 7153 strb r3, [r2, #5] + 8003c04: 687a ldr r2, [r7, #4] + 8003c06: 7953 ldrb r3, [r2, #5] + 8003c08: f36f 0300 bfc r3, #0, #1 + 8003c0c: 7153 strb r3, [r2, #5] i->proc.types.keypad.last_state = LV_INDEV_STATE_RELEASED; /*To skip the processing of release*/ - 8003c7a: 687b ldr r3, [r7, #4] - 8003c7c: 2200 movs r2, #0 - 8003c7e: 721a strb r2, [r3, #8] + 8003c0e: 687b ldr r3, [r7, #4] + 8003c10: 2200 movs r2, #0 + 8003c12: 721a strb r2, [r3, #8] } /*Save the last keys before anything else. *They need to be already saved if the function returns for any reason*/ lv_indev_state_t last_state = i->proc.types.keypad.last_state; - 8003c80: 687b ldr r3, [r7, #4] - 8003c82: 7a1b ldrb r3, [r3, #8] - 8003c84: 75fb strb r3, [r7, #23] + 8003c14: 687b ldr r3, [r7, #4] + 8003c16: 7a1b ldrb r3, [r3, #8] + 8003c18: 75fb strb r3, [r7, #23] i->proc.types.keypad.last_state = data->state; - 8003c86: 683b ldr r3, [r7, #0] - 8003c88: 7b9a ldrb r2, [r3, #14] - 8003c8a: 687b ldr r3, [r7, #4] - 8003c8c: 721a strb r2, [r3, #8] + 8003c1a: 683b ldr r3, [r7, #0] + 8003c1c: 7b9a ldrb r2, [r3, #14] + 8003c1e: 687b ldr r3, [r7, #4] + 8003c20: 721a strb r2, [r3, #8] i->proc.types.keypad.last_key = data->key; - 8003c8e: 683b ldr r3, [r7, #0] - 8003c90: 685a ldr r2, [r3, #4] - 8003c92: 687b ldr r3, [r7, #4] - 8003c94: 60da str r2, [r3, #12] + 8003c22: 683b ldr r3, [r7, #0] + 8003c24: 685a ldr r2, [r3, #4] + 8003c26: 687b ldr r3, [r7, #4] + 8003c28: 60da str r2, [r3, #12] lv_group_t * g = i->group; - 8003c96: 687b ldr r3, [r7, #4] - 8003c98: 6d1b ldr r3, [r3, #80] ; 0x50 - 8003c9a: 613b str r3, [r7, #16] + 8003c2a: 687b ldr r3, [r7, #4] + 8003c2c: 6d1b ldr r3, [r3, #80] ; 0x50 + 8003c2e: 613b str r3, [r7, #16] if(g == NULL) return; - 8003c9c: 693b ldr r3, [r7, #16] - 8003c9e: 2b00 cmp r3, #0 - 8003ca0: f000 82b0 beq.w 8004204 + 8003c30: 693b ldr r3, [r7, #16] + 8003c32: 2b00 cmp r3, #0 + 8003c34: f000 82b0 beq.w 8004198 indev_obj_act = lv_group_get_focused(g); - 8003ca4: 6938 ldr r0, [r7, #16] - 8003ca6: f7ff f90f bl 8002ec8 - 8003caa: 4603 mov r3, r0 - 8003cac: 4aa0 ldr r2, [pc, #640] ; (8003f30 ) - 8003cae: 6013 str r3, [r2, #0] + 8003c38: 6938 ldr r0, [r7, #16] + 8003c3a: f7ff f90f bl 8002e5c + 8003c3e: 4603 mov r3, r0 + 8003c40: 4aa0 ldr r2, [pc, #640] ; (8003ec4 ) + 8003c42: 6013 str r3, [r2, #0] if(indev_obj_act == NULL) return; - 8003cb0: 4b9f ldr r3, [pc, #636] ; (8003f30 ) - 8003cb2: 681b ldr r3, [r3, #0] - 8003cb4: 2b00 cmp r3, #0 - 8003cb6: f000 82a7 beq.w 8004208 + 8003c44: 4b9f ldr r3, [pc, #636] ; (8003ec4 ) + 8003c46: 681b ldr r3, [r3, #0] + 8003c48: 2b00 cmp r3, #0 + 8003c4a: f000 82a7 beq.w 800419c /*Process the steps they are valid only with released button*/ if(data->state != LV_INDEV_STATE_RELEASED) { - 8003cba: 683b ldr r3, [r7, #0] - 8003cbc: 7b9b ldrb r3, [r3, #14] - 8003cbe: 2b00 cmp r3, #0 - 8003cc0: d002 beq.n 8003cc8 + 8003c4e: 683b ldr r3, [r7, #0] + 8003c50: 7b9b ldrb r3, [r3, #14] + 8003c52: 2b00 cmp r3, #0 + 8003c54: d002 beq.n 8003c5c data->enc_diff = 0; - 8003cc2: 683b ldr r3, [r7, #0] - 8003cc4: 2200 movs r2, #0 - 8003cc6: 819a strh r2, [r3, #12] + 8003c56: 683b ldr r3, [r7, #0] + 8003c58: 2200 movs r2, #0 + 8003c5a: 819a strh r2, [r3, #12] } /*Refresh the focused object. It might change due to lv_group_focus_prev/next*/ indev_obj_act = lv_group_get_focused(g); - 8003cc8: 6938 ldr r0, [r7, #16] - 8003cca: f7ff f8fd bl 8002ec8 - 8003cce: 4603 mov r3, r0 - 8003cd0: 4a97 ldr r2, [pc, #604] ; (8003f30 ) - 8003cd2: 6013 str r3, [r2, #0] + 8003c5c: 6938 ldr r0, [r7, #16] + 8003c5e: f7ff f8fd bl 8002e5c + 8003c62: 4603 mov r3, r0 + 8003c64: 4a97 ldr r2, [pc, #604] ; (8003ec4 ) + 8003c66: 6013 str r3, [r2, #0] if(indev_obj_act == NULL) return; - 8003cd4: 4b96 ldr r3, [pc, #600] ; (8003f30 ) - 8003cd6: 681b ldr r3, [r3, #0] - 8003cd8: 2b00 cmp r3, #0 - 8003cda: f000 8297 beq.w 800420c + 8003c68: 4b96 ldr r3, [pc, #600] ; (8003ec4 ) + 8003c6a: 681b ldr r3, [r3, #0] + 8003c6c: 2b00 cmp r3, #0 + 8003c6e: f000 8297 beq.w 80041a0 /*Button press happened*/ if(data->state == LV_INDEV_STATE_PRESSED && last_state == LV_INDEV_STATE_RELEASED) { - 8003cde: 683b ldr r3, [r7, #0] - 8003ce0: 7b9b ldrb r3, [r3, #14] - 8003ce2: 2b01 cmp r3, #1 - 8003ce4: f040 8081 bne.w 8003dea - 8003ce8: 7dfb ldrb r3, [r7, #23] - 8003cea: 2b00 cmp r3, #0 - 8003cec: d17d bne.n 8003dea + 8003c72: 683b ldr r3, [r7, #0] + 8003c74: 7b9b ldrb r3, [r3, #14] + 8003c76: 2b01 cmp r3, #1 + 8003c78: f040 8081 bne.w 8003d7e + 8003c7c: 7dfb ldrb r3, [r7, #23] + 8003c7e: 2b00 cmp r3, #0 + 8003c80: d17d bne.n 8003d7e LV_LOG_INFO("pressed"); i->proc.pr_timestamp = lv_tick_get(); - 8003cee: f02c fd5d bl 80307ac - 8003cf2: 4602 mov r2, r0 - 8003cf4: 687b ldr r3, [r7, #4] - 8003cf6: 645a str r2, [r3, #68] ; 0x44 + 8003c82: f02c fd49 bl 8030718 + 8003c86: 4602 mov r2, r0 + 8003c88: 687b ldr r3, [r7, #4] + 8003c8a: 645a str r2, [r3, #68] ; 0x44 if(data->key == LV_KEY_ENTER) { - 8003cf8: 683b ldr r3, [r7, #0] - 8003cfa: 685b ldr r3, [r3, #4] - 8003cfc: 2b0a cmp r3, #10 - 8003cfe: d137 bne.n 8003d70 + 8003c8c: 683b ldr r3, [r7, #0] + 8003c8e: 685b ldr r3, [r3, #4] + 8003c90: 2b0a cmp r3, #10 + 8003c92: d137 bne.n 8003d04 bool editable_or_scrollable = lv_obj_is_editable(indev_obj_act) || - 8003d00: 4b8b ldr r3, [pc, #556] ; (8003f30 ) - 8003d02: 681b ldr r3, [r3, #0] - 8003d04: 4618 mov r0, r3 - 8003d06: f003 ffbd bl 8007c84 - 8003d0a: 4603 mov r3, r0 - 8003d0c: 2b00 cmp r3, #0 - 8003d0e: d108 bne.n 8003d22 + 8003c94: 4b8b ldr r3, [pc, #556] ; (8003ec4 ) + 8003c96: 681b ldr r3, [r3, #0] + 8003c98: 4618 mov r0, r3 + 8003c9a: f003 ffbd bl 8007c18 + 8003c9e: 4603 mov r3, r0 + 8003ca0: 2b00 cmp r3, #0 + 8003ca2: d108 bne.n 8003cb6 lv_obj_has_flag(indev_obj_act, LV_OBJ_FLAG_SCROLLABLE); - 8003d10: 4b87 ldr r3, [pc, #540] ; (8003f30 ) - 8003d12: 681b ldr r3, [r3, #0] - 8003d14: 2110 movs r1, #16 - 8003d16: 4618 mov r0, r3 - 8003d18: f002 fd33 bl 8006782 - 8003d1c: 4603 mov r3, r0 + 8003ca4: 4b87 ldr r3, [pc, #540] ; (8003ec4 ) + 8003ca6: 681b ldr r3, [r3, #0] + 8003ca8: 2110 movs r1, #16 + 8003caa: 4618 mov r0, r3 + 8003cac: f002 fd33 bl 8006716 + 8003cb0: 4603 mov r3, r0 bool editable_or_scrollable = lv_obj_is_editable(indev_obj_act) || - 8003d1e: 2b00 cmp r3, #0 - 8003d20: d001 beq.n 8003d26 - 8003d22: 2301 movs r3, #1 - 8003d24: e000 b.n 8003d28 - 8003d26: 2300 movs r3, #0 - 8003d28: 73fb strb r3, [r7, #15] - 8003d2a: 7bfb ldrb r3, [r7, #15] - 8003d2c: f003 0301 and.w r3, r3, #1 - 8003d30: 73fb strb r3, [r7, #15] + 8003cb2: 2b00 cmp r3, #0 + 8003cb4: d001 beq.n 8003cba + 8003cb6: 2301 movs r3, #1 + 8003cb8: e000 b.n 8003cbc + 8003cba: 2300 movs r3, #0 + 8003cbc: 73fb strb r3, [r7, #15] + 8003cbe: 7bfb ldrb r3, [r7, #15] + 8003cc0: f003 0301 and.w r3, r3, #1 + 8003cc4: 73fb strb r3, [r7, #15] if(lv_group_get_editing(g) == true || editable_or_scrollable == false) { - 8003d32: 6938 ldr r0, [r7, #16] - 8003d34: f7ff f8df bl 8002ef6 - 8003d38: 4603 mov r3, r0 - 8003d3a: 2b00 cmp r3, #0 - 8003d3c: d106 bne.n 8003d4c - 8003d3e: 7bfb ldrb r3, [r7, #15] - 8003d40: f083 0301 eor.w r3, r3, #1 - 8003d44: b2db uxtb r3, r3 - 8003d46: 2b00 cmp r3, #0 - 8003d48: f000 81ef beq.w 800412a + 8003cc6: 6938 ldr r0, [r7, #16] + 8003cc8: f7ff f8df bl 8002e8a + 8003ccc: 4603 mov r3, r0 + 8003cce: 2b00 cmp r3, #0 + 8003cd0: d106 bne.n 8003ce0 + 8003cd2: 7bfb ldrb r3, [r7, #15] + 8003cd4: f083 0301 eor.w r3, r3, #1 + 8003cd8: b2db uxtb r3, r3 + 8003cda: 2b00 cmp r3, #0 + 8003cdc: f000 81ef beq.w 80040be lv_event_send(indev_obj_act, LV_EVENT_PRESSED, indev_act); - 8003d4c: 4b78 ldr r3, [pc, #480] ; (8003f30 ) - 8003d4e: 681b ldr r3, [r3, #0] - 8003d50: 4a78 ldr r2, [pc, #480] ; (8003f34 ) - 8003d52: 6812 ldr r2, [r2, #0] - 8003d54: 2101 movs r1, #1 - 8003d56: 4618 mov r0, r3 - 8003d58: f7fe fb92 bl 8002480 + 8003ce0: 4b78 ldr r3, [pc, #480] ; (8003ec4 ) + 8003ce2: 681b ldr r3, [r3, #0] + 8003ce4: 4a78 ldr r2, [pc, #480] ; (8003ec8 ) + 8003ce6: 6812 ldr r2, [r2, #0] + 8003ce8: 2101 movs r1, #1 + 8003cea: 4618 mov r0, r3 + 8003cec: f7fe fb92 bl 8002414 if(indev_reset_check(&i->proc)) return; - 8003d5c: 687b ldr r3, [r7, #4] - 8003d5e: 3304 adds r3, #4 - 8003d60: 4618 mov r0, r3 - 8003d62: f000 ff6d bl 8004c40 - 8003d66: 4603 mov r3, r0 - 8003d68: 2b00 cmp r3, #0 - 8003d6a: f000 81de beq.w 800412a - 8003d6e: e25a b.n 8004226 + 8003cf0: 687b ldr r3, [r7, #4] + 8003cf2: 3304 adds r3, #4 + 8003cf4: 4618 mov r0, r3 + 8003cf6: f000 ff6d bl 8004bd4 + 8003cfa: 4603 mov r3, r0 + 8003cfc: 2b00 cmp r3, #0 + 8003cfe: f000 81de beq.w 80040be + 8003d02: e25a b.n 80041ba } } else if(data->key == LV_KEY_LEFT) { - 8003d70: 683b ldr r3, [r7, #0] - 8003d72: 685b ldr r3, [r3, #4] - 8003d74: 2b14 cmp r3, #20 - 8003d76: d109 bne.n 8003d8c + 8003d04: 683b ldr r3, [r7, #0] + 8003d06: 685b ldr r3, [r3, #4] + 8003d08: 2b14 cmp r3, #20 + 8003d0a: d109 bne.n 8003d20 /*emulate encoder left*/ data->enc_diff--; - 8003d78: 683b ldr r3, [r7, #0] - 8003d7a: f9b3 300c ldrsh.w r3, [r3, #12] - 8003d7e: b29b uxth r3, r3 - 8003d80: 3b01 subs r3, #1 - 8003d82: b29b uxth r3, r3 - 8003d84: b21a sxth r2, r3 - 8003d86: 683b ldr r3, [r7, #0] - 8003d88: 819a strh r2, [r3, #12] + 8003d0c: 683b ldr r3, [r7, #0] + 8003d0e: f9b3 300c ldrsh.w r3, [r3, #12] + 8003d12: b29b uxth r3, r3 + 8003d14: 3b01 subs r3, #1 + 8003d16: b29b uxth r3, r3 + 8003d18: b21a sxth r2, r3 + 8003d1a: 683b ldr r3, [r7, #0] + 8003d1c: 819a strh r2, [r3, #12] if(data->key == LV_KEY_ENTER) { - 8003d8a: e1ce b.n 800412a + 8003d1e: e1ce b.n 80040be } else if(data->key == LV_KEY_RIGHT) { - 8003d8c: 683b ldr r3, [r7, #0] - 8003d8e: 685b ldr r3, [r3, #4] - 8003d90: 2b13 cmp r3, #19 - 8003d92: d109 bne.n 8003da8 + 8003d20: 683b ldr r3, [r7, #0] + 8003d22: 685b ldr r3, [r3, #4] + 8003d24: 2b13 cmp r3, #19 + 8003d26: d109 bne.n 8003d3c /*emulate encoder right*/ data->enc_diff++; - 8003d94: 683b ldr r3, [r7, #0] - 8003d96: f9b3 300c ldrsh.w r3, [r3, #12] - 8003d9a: b29b uxth r3, r3 - 8003d9c: 3301 adds r3, #1 - 8003d9e: b29b uxth r3, r3 - 8003da0: b21a sxth r2, r3 - 8003da2: 683b ldr r3, [r7, #0] - 8003da4: 819a strh r2, [r3, #12] + 8003d28: 683b ldr r3, [r7, #0] + 8003d2a: f9b3 300c ldrsh.w r3, [r3, #12] + 8003d2e: b29b uxth r3, r3 + 8003d30: 3301 adds r3, #1 + 8003d32: b29b uxth r3, r3 + 8003d34: b21a sxth r2, r3 + 8003d36: 683b ldr r3, [r7, #0] + 8003d38: 819a strh r2, [r3, #12] if(data->key == LV_KEY_ENTER) { - 8003da6: e1c0 b.n 800412a + 8003d3a: e1c0 b.n 80040be } else if(data->key == LV_KEY_ESC) { - 8003da8: 683b ldr r3, [r7, #0] - 8003daa: 685b ldr r3, [r3, #4] - 8003dac: 2b1b cmp r3, #27 - 8003dae: d115 bne.n 8003ddc + 8003d3c: 683b ldr r3, [r7, #0] + 8003d3e: 685b ldr r3, [r3, #4] + 8003d40: 2b1b cmp r3, #27 + 8003d42: d115 bne.n 8003d70 /*Send the ESC as a normal KEY*/ lv_group_send_data(g, LV_KEY_ESC); - 8003db0: 211b movs r1, #27 - 8003db2: 6938 ldr r0, [r7, #16] - 8003db4: f7ff f82e bl 8002e14 + 8003d44: 211b movs r1, #27 + 8003d46: 6938 ldr r0, [r7, #16] + 8003d48: f7ff f82e bl 8002da8 lv_event_send(indev_obj_act, LV_EVENT_CANCEL, indev_act); - 8003db8: 4b5d ldr r3, [pc, #372] ; (8003f30 ) - 8003dba: 681b ldr r3, [r3, #0] - 8003dbc: 4a5d ldr r2, [pc, #372] ; (8003f34 ) - 8003dbe: 6812 ldr r2, [r2, #0] - 8003dc0: 2120 movs r1, #32 - 8003dc2: 4618 mov r0, r3 - 8003dc4: f7fe fb5c bl 8002480 + 8003d4c: 4b5d ldr r3, [pc, #372] ; (8003ec4 ) + 8003d4e: 681b ldr r3, [r3, #0] + 8003d50: 4a5d ldr r2, [pc, #372] ; (8003ec8 ) + 8003d52: 6812 ldr r2, [r2, #0] + 8003d54: 2120 movs r1, #32 + 8003d56: 4618 mov r0, r3 + 8003d58: f7fe fb5c bl 8002414 if(indev_reset_check(&i->proc)) return; - 8003dc8: 687b ldr r3, [r7, #4] - 8003dca: 3304 adds r3, #4 - 8003dcc: 4618 mov r0, r3 - 8003dce: f000 ff37 bl 8004c40 - 8003dd2: 4603 mov r3, r0 - 8003dd4: 2b00 cmp r3, #0 - 8003dd6: f000 81a8 beq.w 800412a - 8003dda: e224 b.n 8004226 + 8003d5c: 687b ldr r3, [r7, #4] + 8003d5e: 3304 adds r3, #4 + 8003d60: 4618 mov r0, r3 + 8003d62: f000 ff37 bl 8004bd4 + 8003d66: 4603 mov r3, r0 + 8003d68: 2b00 cmp r3, #0 + 8003d6a: f000 81a8 beq.w 80040be + 8003d6e: e224 b.n 80041ba } /*Just send other keys to the object (e.g. 'A' or `LV_GROUP_KEY_RIGHT`)*/ else { lv_group_send_data(g, data->key); - 8003ddc: 683b ldr r3, [r7, #0] - 8003dde: 685b ldr r3, [r3, #4] - 8003de0: 4619 mov r1, r3 - 8003de2: 6938 ldr r0, [r7, #16] - 8003de4: f7ff f816 bl 8002e14 + 8003d70: 683b ldr r3, [r7, #0] + 8003d72: 685b ldr r3, [r3, #4] + 8003d74: 4619 mov r1, r3 + 8003d76: 6938 ldr r0, [r7, #16] + 8003d78: f7ff f816 bl 8002da8 if(data->key == LV_KEY_ENTER) { - 8003de8: e19f b.n 800412a + 8003d7c: e19f b.n 80040be } } /*Pressing*/ else if(data->state == LV_INDEV_STATE_PRESSED && last_state == LV_INDEV_STATE_PRESSED) { - 8003dea: 683b ldr r3, [r7, #0] - 8003dec: 7b9b ldrb r3, [r3, #14] - 8003dee: 2b01 cmp r3, #1 - 8003df0: f040 80ce bne.w 8003f90 - 8003df4: 7dfb ldrb r3, [r7, #23] - 8003df6: 2b01 cmp r3, #1 - 8003df8: f040 80ca bne.w 8003f90 + 8003d7e: 683b ldr r3, [r7, #0] + 8003d80: 7b9b ldrb r3, [r3, #14] + 8003d82: 2b01 cmp r3, #1 + 8003d84: f040 80ce bne.w 8003f24 + 8003d88: 7dfb ldrb r3, [r7, #23] + 8003d8a: 2b01 cmp r3, #1 + 8003d8c: f040 80ca bne.w 8003f24 /*Long press*/ if(i->proc.long_pr_sent == 0 && lv_tick_elaps(i->proc.pr_timestamp) > i->driver->long_press_time) { - 8003dfc: 687b ldr r3, [r7, #4] - 8003dfe: 795b ldrb r3, [r3, #5] - 8003e00: f003 0301 and.w r3, r3, #1 - 8003e04: b2db uxtb r3, r3 - 8003e06: 2b00 cmp r3, #0 - 8003e08: d163 bne.n 8003ed2 - 8003e0a: 687b ldr r3, [r7, #4] - 8003e0c: 6c5b ldr r3, [r3, #68] ; 0x44 - 8003e0e: 4618 mov r0, r3 - 8003e10: f02c fce4 bl 80307dc - 8003e14: 4602 mov r2, r0 - 8003e16: 687b ldr r3, [r7, #4] - 8003e18: 681b ldr r3, [r3, #0] - 8003e1a: 8b9b ldrh r3, [r3, #28] - 8003e1c: 429a cmp r2, r3 - 8003e1e: d958 bls.n 8003ed2 + 8003d90: 687b ldr r3, [r7, #4] + 8003d92: 795b ldrb r3, [r3, #5] + 8003d94: f003 0301 and.w r3, r3, #1 + 8003d98: b2db uxtb r3, r3 + 8003d9a: 2b00 cmp r3, #0 + 8003d9c: d163 bne.n 8003e66 + 8003d9e: 687b ldr r3, [r7, #4] + 8003da0: 6c5b ldr r3, [r3, #68] ; 0x44 + 8003da2: 4618 mov r0, r3 + 8003da4: f02c fcd0 bl 8030748 + 8003da8: 4602 mov r2, r0 + 8003daa: 687b ldr r3, [r7, #4] + 8003dac: 681b ldr r3, [r3, #0] + 8003dae: 8b9b ldrh r3, [r3, #28] + 8003db0: 429a cmp r2, r3 + 8003db2: d958 bls.n 8003e66 i->proc.long_pr_sent = 1; - 8003e20: 687a ldr r2, [r7, #4] - 8003e22: 7953 ldrb r3, [r2, #5] - 8003e24: f043 0301 orr.w r3, r3, #1 - 8003e28: 7153 strb r3, [r2, #5] + 8003db4: 687a ldr r2, [r7, #4] + 8003db6: 7953 ldrb r3, [r2, #5] + 8003db8: f043 0301 orr.w r3, r3, #1 + 8003dbc: 7153 strb r3, [r2, #5] i->proc.longpr_rep_timestamp = lv_tick_get(); - 8003e2a: f02c fcbf bl 80307ac - 8003e2e: 4602 mov r2, r0 - 8003e30: 687b ldr r3, [r7, #4] - 8003e32: 649a str r2, [r3, #72] ; 0x48 + 8003dbe: f02c fcab bl 8030718 + 8003dc2: 4602 mov r2, r0 + 8003dc4: 687b ldr r3, [r7, #4] + 8003dc6: 649a str r2, [r3, #72] ; 0x48 if(data->key == LV_KEY_ENTER) { - 8003e34: 683b ldr r3, [r7, #0] - 8003e36: 685b ldr r3, [r3, #4] - 8003e38: 2b0a cmp r3, #10 - 8003e3a: d144 bne.n 8003ec6 + 8003dc8: 683b ldr r3, [r7, #0] + 8003dca: 685b ldr r3, [r3, #4] + 8003dcc: 2b0a cmp r3, #10 + 8003dce: d144 bne.n 8003e5a bool editable_or_scrollable = lv_obj_is_editable(indev_obj_act) || - 8003e3c: 4b3c ldr r3, [pc, #240] ; (8003f30 ) - 8003e3e: 681b ldr r3, [r3, #0] - 8003e40: 4618 mov r0, r3 - 8003e42: f003 ff1f bl 8007c84 - 8003e46: 4603 mov r3, r0 - 8003e48: 2b00 cmp r3, #0 - 8003e4a: d108 bne.n 8003e5e + 8003dd0: 4b3c ldr r3, [pc, #240] ; (8003ec4 ) + 8003dd2: 681b ldr r3, [r3, #0] + 8003dd4: 4618 mov r0, r3 + 8003dd6: f003 ff1f bl 8007c18 + 8003dda: 4603 mov r3, r0 + 8003ddc: 2b00 cmp r3, #0 + 8003dde: d108 bne.n 8003df2 lv_obj_has_flag(indev_obj_act, LV_OBJ_FLAG_SCROLLABLE); - 8003e4c: 4b38 ldr r3, [pc, #224] ; (8003f30 ) - 8003e4e: 681b ldr r3, [r3, #0] - 8003e50: 2110 movs r1, #16 - 8003e52: 4618 mov r0, r3 - 8003e54: f002 fc95 bl 8006782 - 8003e58: 4603 mov r3, r0 + 8003de0: 4b38 ldr r3, [pc, #224] ; (8003ec4 ) + 8003de2: 681b ldr r3, [r3, #0] + 8003de4: 2110 movs r1, #16 + 8003de6: 4618 mov r0, r3 + 8003de8: f002 fc95 bl 8006716 + 8003dec: 4603 mov r3, r0 bool editable_or_scrollable = lv_obj_is_editable(indev_obj_act) || - 8003e5a: 2b00 cmp r3, #0 - 8003e5c: d001 beq.n 8003e62 - 8003e5e: 2301 movs r3, #1 - 8003e60: e000 b.n 8003e64 - 8003e62: 2300 movs r3, #0 - 8003e64: 73bb strb r3, [r7, #14] - 8003e66: 7bbb ldrb r3, [r7, #14] - 8003e68: f003 0301 and.w r3, r3, #1 - 8003e6c: 73bb strb r3, [r7, #14] + 8003dee: 2b00 cmp r3, #0 + 8003df0: d001 beq.n 8003df6 + 8003df2: 2301 movs r3, #1 + 8003df4: e000 b.n 8003df8 + 8003df6: 2300 movs r3, #0 + 8003df8: 73bb strb r3, [r7, #14] + 8003dfa: 7bbb ldrb r3, [r7, #14] + 8003dfc: f003 0301 and.w r3, r3, #1 + 8003e00: 73bb strb r3, [r7, #14] /*On enter long press toggle edit mode.*/ if(editable_or_scrollable) { - 8003e6e: 7bbb ldrb r3, [r7, #14] - 8003e70: 2b00 cmp r3, #0 - 8003e72: d017 beq.n 8003ea4 + 8003e02: 7bbb ldrb r3, [r7, #14] + 8003e04: 2b00 cmp r3, #0 + 8003e06: d017 beq.n 8003e38 /*Don't leave edit mode if there is only one object (nowhere to navigate)*/ if(lv_group_get_obj_count(g) > 1) { - 8003e74: 6938 ldr r0, [r7, #16] - 8003e76: f7ff f857 bl 8002f28 - 8003e7a: 4603 mov r3, r0 - 8003e7c: 2b01 cmp r3, #1 - 8003e7e: d922 bls.n 8003ec6 + 8003e08: 6938 ldr r0, [r7, #16] + 8003e0a: f7ff f857 bl 8002ebc + 8003e0e: 4603 mov r3, r0 + 8003e10: 2b01 cmp r3, #1 + 8003e12: d922 bls.n 8003e5a LV_LOG_INFO("toggling edit mode"); lv_group_set_editing(g, lv_group_get_editing(g) ? false : true); /*Toggle edit mode on long press*/ - 8003e80: 6938 ldr r0, [r7, #16] - 8003e82: f7ff f838 bl 8002ef6 - 8003e86: 4603 mov r3, r0 - 8003e88: f083 0301 eor.w r3, r3, #1 - 8003e8c: b2db uxtb r3, r3 - 8003e8e: 4619 mov r1, r3 - 8003e90: 6938 ldr r0, [r7, #16] - 8003e92: f7fe ffd8 bl 8002e46 + 8003e14: 6938 ldr r0, [r7, #16] + 8003e16: f7ff f838 bl 8002e8a + 8003e1a: 4603 mov r3, r0 + 8003e1c: f083 0301 eor.w r3, r3, #1 + 8003e20: b2db uxtb r3, r3 + 8003e22: 4619 mov r1, r3 + 8003e24: 6938 ldr r0, [r7, #16] + 8003e26: f7fe ffd8 bl 8002dda lv_obj_clear_state(indev_obj_act, LV_STATE_PRESSED); /*Remove the pressed state manually*/ - 8003e96: 4b26 ldr r3, [pc, #152] ; (8003f30 ) - 8003e98: 681b ldr r3, [r3, #0] - 8003e9a: 2120 movs r1, #32 - 8003e9c: 4618 mov r0, r3 - 8003e9e: f002 fc52 bl 8006746 - 8003ea2: e010 b.n 8003ec6 + 8003e2a: 4b26 ldr r3, [pc, #152] ; (8003ec4 ) + 8003e2c: 681b ldr r3, [r3, #0] + 8003e2e: 2120 movs r1, #32 + 8003e30: 4618 mov r0, r3 + 8003e32: f002 fc52 bl 80066da + 8003e36: e010 b.n 8003e5a } } /*If not editable then just send a long press Call the ancestor's event handler*/ else { lv_event_send(indev_obj_act, LV_EVENT_LONG_PRESSED, indev_act); - 8003ea4: 4b22 ldr r3, [pc, #136] ; (8003f30 ) - 8003ea6: 681b ldr r3, [r3, #0] - 8003ea8: 4a22 ldr r2, [pc, #136] ; (8003f34 ) - 8003eaa: 6812 ldr r2, [r2, #0] - 8003eac: 2105 movs r1, #5 - 8003eae: 4618 mov r0, r3 - 8003eb0: f7fe fae6 bl 8002480 + 8003e38: 4b22 ldr r3, [pc, #136] ; (8003ec4 ) + 8003e3a: 681b ldr r3, [r3, #0] + 8003e3c: 4a22 ldr r2, [pc, #136] ; (8003ec8 ) + 8003e3e: 6812 ldr r2, [r2, #0] + 8003e40: 2105 movs r1, #5 + 8003e42: 4618 mov r0, r3 + 8003e44: f7fe fae6 bl 8002414 if(indev_reset_check(&i->proc)) return; - 8003eb4: 687b ldr r3, [r7, #4] - 8003eb6: 3304 adds r3, #4 - 8003eb8: 4618 mov r0, r3 - 8003eba: f000 fec1 bl 8004c40 - 8003ebe: 4603 mov r3, r0 - 8003ec0: 2b00 cmp r3, #0 - 8003ec2: f040 81a5 bne.w 8004210 + 8003e48: 687b ldr r3, [r7, #4] + 8003e4a: 3304 adds r3, #4 + 8003e4c: 4618 mov r0, r3 + 8003e4e: f000 fec1 bl 8004bd4 + 8003e52: 4603 mov r3, r0 + 8003e54: 2b00 cmp r3, #0 + 8003e56: f040 81a5 bne.w 80041a4 } } i->proc.long_pr_sent = 1; - 8003ec6: 687a ldr r2, [r7, #4] - 8003ec8: 7953 ldrb r3, [r2, #5] - 8003eca: f043 0301 orr.w r3, r3, #1 - 8003ece: 7153 strb r3, [r2, #5] + 8003e5a: 687a ldr r2, [r7, #4] + 8003e5c: 7953 ldrb r3, [r2, #5] + 8003e5e: f043 0301 orr.w r3, r3, #1 + 8003e62: 7153 strb r3, [r2, #5] if(i->proc.long_pr_sent == 0 && lv_tick_elaps(i->proc.pr_timestamp) > i->driver->long_press_time) { - 8003ed0: e12d b.n 800412e + 8003e64: e12d b.n 80040c2 } /*Long press repeated time has elapsed?*/ else if(i->proc.long_pr_sent != 0 && lv_tick_elaps(i->proc.longpr_rep_timestamp) > i->driver->long_press_repeat_time) { - 8003ed2: 687b ldr r3, [r7, #4] - 8003ed4: 795b ldrb r3, [r3, #5] - 8003ed6: f003 0301 and.w r3, r3, #1 - 8003eda: b2db uxtb r3, r3 - 8003edc: 2b00 cmp r3, #0 - 8003ede: f000 8126 beq.w 800412e - 8003ee2: 687b ldr r3, [r7, #4] - 8003ee4: 6c9b ldr r3, [r3, #72] ; 0x48 - 8003ee6: 4618 mov r0, r3 - 8003ee8: f02c fc78 bl 80307dc - 8003eec: 4602 mov r2, r0 - 8003eee: 687b ldr r3, [r7, #4] - 8003ef0: 681b ldr r3, [r3, #0] - 8003ef2: 8bdb ldrh r3, [r3, #30] - 8003ef4: 429a cmp r2, r3 - 8003ef6: f240 811a bls.w 800412e + 8003e66: 687b ldr r3, [r7, #4] + 8003e68: 795b ldrb r3, [r3, #5] + 8003e6a: f003 0301 and.w r3, r3, #1 + 8003e6e: b2db uxtb r3, r3 + 8003e70: 2b00 cmp r3, #0 + 8003e72: f000 8126 beq.w 80040c2 + 8003e76: 687b ldr r3, [r7, #4] + 8003e78: 6c9b ldr r3, [r3, #72] ; 0x48 + 8003e7a: 4618 mov r0, r3 + 8003e7c: f02c fc64 bl 8030748 + 8003e80: 4602 mov r2, r0 + 8003e82: 687b ldr r3, [r7, #4] + 8003e84: 681b ldr r3, [r3, #0] + 8003e86: 8bdb ldrh r3, [r3, #30] + 8003e88: 429a cmp r2, r3 + 8003e8a: f240 811a bls.w 80040c2 i->proc.longpr_rep_timestamp = lv_tick_get(); - 8003efa: f02c fc57 bl 80307ac - 8003efe: 4602 mov r2, r0 - 8003f00: 687b ldr r3, [r7, #4] - 8003f02: 649a str r2, [r3, #72] ; 0x48 + 8003e8e: f02c fc43 bl 8030718 + 8003e92: 4602 mov r2, r0 + 8003e94: 687b ldr r3, [r7, #4] + 8003e96: 649a str r2, [r3, #72] ; 0x48 if(data->key == LV_KEY_ENTER) { - 8003f04: 683b ldr r3, [r7, #0] - 8003f06: 685b ldr r3, [r3, #4] - 8003f08: 2b0a cmp r3, #10 - 8003f0a: d115 bne.n 8003f38 + 8003e98: 683b ldr r3, [r7, #0] + 8003e9a: 685b ldr r3, [r3, #4] + 8003e9c: 2b0a cmp r3, #10 + 8003e9e: d115 bne.n 8003ecc lv_event_send(indev_obj_act, LV_EVENT_LONG_PRESSED_REPEAT, indev_act); - 8003f0c: 4b08 ldr r3, [pc, #32] ; (8003f30 ) - 8003f0e: 681b ldr r3, [r3, #0] - 8003f10: 4a08 ldr r2, [pc, #32] ; (8003f34 ) - 8003f12: 6812 ldr r2, [r2, #0] - 8003f14: 2106 movs r1, #6 - 8003f16: 4618 mov r0, r3 - 8003f18: f7fe fab2 bl 8002480 + 8003ea0: 4b08 ldr r3, [pc, #32] ; (8003ec4 ) + 8003ea2: 681b ldr r3, [r3, #0] + 8003ea4: 4a08 ldr r2, [pc, #32] ; (8003ec8 ) + 8003ea6: 6812 ldr r2, [r2, #0] + 8003ea8: 2106 movs r1, #6 + 8003eaa: 4618 mov r0, r3 + 8003eac: f7fe fab2 bl 8002414 if(indev_reset_check(&i->proc)) return; - 8003f1c: 687b ldr r3, [r7, #4] - 8003f1e: 3304 adds r3, #4 - 8003f20: 4618 mov r0, r3 - 8003f22: f000 fe8d bl 8004c40 - 8003f26: 4603 mov r3, r0 - 8003f28: 2b00 cmp r3, #0 - 8003f2a: f000 8100 beq.w 800412e - 8003f2e: e17a b.n 8004226 - 8003f30: 20001af8 .word 0x20001af8 - 8003f34: 20001af4 .word 0x20001af4 + 8003eb0: 687b ldr r3, [r7, #4] + 8003eb2: 3304 adds r3, #4 + 8003eb4: 4618 mov r0, r3 + 8003eb6: f000 fe8d bl 8004bd4 + 8003eba: 4603 mov r3, r0 + 8003ebc: 2b00 cmp r3, #0 + 8003ebe: f000 8100 beq.w 80040c2 + 8003ec2: e17a b.n 80041ba + 8003ec4: 20001af8 .word 0x20001af8 + 8003ec8: 20001af4 .word 0x20001af4 } else if(data->key == LV_KEY_LEFT) { - 8003f38: 683b ldr r3, [r7, #0] - 8003f3a: 685b ldr r3, [r3, #4] - 8003f3c: 2b14 cmp r3, #20 - 8003f3e: d109 bne.n 8003f54 + 8003ecc: 683b ldr r3, [r7, #0] + 8003ece: 685b ldr r3, [r3, #4] + 8003ed0: 2b14 cmp r3, #20 + 8003ed2: d109 bne.n 8003ee8 /*emulate encoder left*/ data->enc_diff--; - 8003f40: 683b ldr r3, [r7, #0] - 8003f42: f9b3 300c ldrsh.w r3, [r3, #12] - 8003f46: b29b uxth r3, r3 - 8003f48: 3b01 subs r3, #1 - 8003f4a: b29b uxth r3, r3 - 8003f4c: b21a sxth r2, r3 - 8003f4e: 683b ldr r3, [r7, #0] - 8003f50: 819a strh r2, [r3, #12] + 8003ed4: 683b ldr r3, [r7, #0] + 8003ed6: f9b3 300c ldrsh.w r3, [r3, #12] + 8003eda: b29b uxth r3, r3 + 8003edc: 3b01 subs r3, #1 + 8003ede: b29b uxth r3, r3 + 8003ee0: b21a sxth r2, r3 + 8003ee2: 683b ldr r3, [r7, #0] + 8003ee4: 819a strh r2, [r3, #12] if(i->proc.long_pr_sent == 0 && lv_tick_elaps(i->proc.pr_timestamp) > i->driver->long_press_time) { - 8003f52: e0ec b.n 800412e + 8003ee6: e0ec b.n 80040c2 } else if(data->key == LV_KEY_RIGHT) { - 8003f54: 683b ldr r3, [r7, #0] - 8003f56: 685b ldr r3, [r3, #4] - 8003f58: 2b13 cmp r3, #19 - 8003f5a: d109 bne.n 8003f70 + 8003ee8: 683b ldr r3, [r7, #0] + 8003eea: 685b ldr r3, [r3, #4] + 8003eec: 2b13 cmp r3, #19 + 8003eee: d109 bne.n 8003f04 /*emulate encoder right*/ data->enc_diff++; - 8003f5c: 683b ldr r3, [r7, #0] - 8003f5e: f9b3 300c ldrsh.w r3, [r3, #12] - 8003f62: b29b uxth r3, r3 - 8003f64: 3301 adds r3, #1 - 8003f66: b29b uxth r3, r3 - 8003f68: b21a sxth r2, r3 - 8003f6a: 683b ldr r3, [r7, #0] - 8003f6c: 819a strh r2, [r3, #12] + 8003ef0: 683b ldr r3, [r7, #0] + 8003ef2: f9b3 300c ldrsh.w r3, [r3, #12] + 8003ef6: b29b uxth r3, r3 + 8003ef8: 3301 adds r3, #1 + 8003efa: b29b uxth r3, r3 + 8003efc: b21a sxth r2, r3 + 8003efe: 683b ldr r3, [r7, #0] + 8003f00: 819a strh r2, [r3, #12] if(i->proc.long_pr_sent == 0 && lv_tick_elaps(i->proc.pr_timestamp) > i->driver->long_press_time) { - 8003f6e: e0de b.n 800412e + 8003f02: e0de b.n 80040c2 } else { lv_group_send_data(g, data->key); - 8003f70: 683b ldr r3, [r7, #0] - 8003f72: 685b ldr r3, [r3, #4] - 8003f74: 4619 mov r1, r3 - 8003f76: 6938 ldr r0, [r7, #16] - 8003f78: f7fe ff4c bl 8002e14 + 8003f04: 683b ldr r3, [r7, #0] + 8003f06: 685b ldr r3, [r3, #4] + 8003f08: 4619 mov r1, r3 + 8003f0a: 6938 ldr r0, [r7, #16] + 8003f0c: f7fe ff4c bl 8002da8 if(indev_reset_check(&i->proc)) return; - 8003f7c: 687b ldr r3, [r7, #4] - 8003f7e: 3304 adds r3, #4 - 8003f80: 4618 mov r0, r3 - 8003f82: f000 fe5d bl 8004c40 - 8003f86: 4603 mov r3, r0 - 8003f88: 2b00 cmp r3, #0 - 8003f8a: f000 80d0 beq.w 800412e - 8003f8e: e14a b.n 8004226 + 8003f10: 687b ldr r3, [r7, #4] + 8003f12: 3304 adds r3, #4 + 8003f14: 4618 mov r0, r3 + 8003f16: f000 fe5d bl 8004bd4 + 8003f1a: 4603 mov r3, r0 + 8003f1c: 2b00 cmp r3, #0 + 8003f1e: f000 80d0 beq.w 80040c2 + 8003f22: e14a b.n 80041ba } } /*Release happened*/ else if(data->state == LV_INDEV_STATE_RELEASED && last_state == LV_INDEV_STATE_PRESSED) { - 8003f90: 683b ldr r3, [r7, #0] - 8003f92: 7b9b ldrb r3, [r3, #14] - 8003f94: 2b00 cmp r3, #0 - 8003f96: f040 80cb bne.w 8004130 - 8003f9a: 7dfb ldrb r3, [r7, #23] - 8003f9c: 2b01 cmp r3, #1 - 8003f9e: f040 80c7 bne.w 8004130 + 8003f24: 683b ldr r3, [r7, #0] + 8003f26: 7b9b ldrb r3, [r3, #14] + 8003f28: 2b00 cmp r3, #0 + 8003f2a: f040 80cb bne.w 80040c4 + 8003f2e: 7dfb ldrb r3, [r7, #23] + 8003f30: 2b01 cmp r3, #1 + 8003f32: f040 80c7 bne.w 80040c4 LV_LOG_INFO("released"); if(data->key == LV_KEY_ENTER) { - 8003fa2: 683b ldr r3, [r7, #0] - 8003fa4: 685b ldr r3, [r3, #4] - 8003fa6: 2b0a cmp r3, #10 - 8003fa8: f040 80b6 bne.w 8004118 + 8003f36: 683b ldr r3, [r7, #0] + 8003f38: 685b ldr r3, [r3, #4] + 8003f3a: 2b0a cmp r3, #10 + 8003f3c: f040 80b6 bne.w 80040ac bool editable_or_scrollable = lv_obj_is_editable(indev_obj_act) || - 8003fac: 4b9f ldr r3, [pc, #636] ; (800422c ) - 8003fae: 681b ldr r3, [r3, #0] - 8003fb0: 4618 mov r0, r3 - 8003fb2: f003 fe67 bl 8007c84 - 8003fb6: 4603 mov r3, r0 - 8003fb8: 2b00 cmp r3, #0 - 8003fba: d108 bne.n 8003fce + 8003f40: 4b9f ldr r3, [pc, #636] ; (80041c0 ) + 8003f42: 681b ldr r3, [r3, #0] + 8003f44: 4618 mov r0, r3 + 8003f46: f003 fe67 bl 8007c18 + 8003f4a: 4603 mov r3, r0 + 8003f4c: 2b00 cmp r3, #0 + 8003f4e: d108 bne.n 8003f62 lv_obj_has_flag(indev_obj_act, LV_OBJ_FLAG_SCROLLABLE); - 8003fbc: 4b9b ldr r3, [pc, #620] ; (800422c ) - 8003fbe: 681b ldr r3, [r3, #0] - 8003fc0: 2110 movs r1, #16 - 8003fc2: 4618 mov r0, r3 - 8003fc4: f002 fbdd bl 8006782 - 8003fc8: 4603 mov r3, r0 + 8003f50: 4b9b ldr r3, [pc, #620] ; (80041c0 ) + 8003f52: 681b ldr r3, [r3, #0] + 8003f54: 2110 movs r1, #16 + 8003f56: 4618 mov r0, r3 + 8003f58: f002 fbdd bl 8006716 + 8003f5c: 4603 mov r3, r0 bool editable_or_scrollable = lv_obj_is_editable(indev_obj_act) || - 8003fca: 2b00 cmp r3, #0 - 8003fcc: d001 beq.n 8003fd2 - 8003fce: 2301 movs r3, #1 - 8003fd0: e000 b.n 8003fd4 - 8003fd2: 2300 movs r3, #0 - 8003fd4: 737b strb r3, [r7, #13] - 8003fd6: 7b7b ldrb r3, [r7, #13] - 8003fd8: f003 0301 and.w r3, r3, #1 - 8003fdc: 737b strb r3, [r7, #13] + 8003f5e: 2b00 cmp r3, #0 + 8003f60: d001 beq.n 8003f66 + 8003f62: 2301 movs r3, #1 + 8003f64: e000 b.n 8003f68 + 8003f66: 2300 movs r3, #0 + 8003f68: 737b strb r3, [r7, #13] + 8003f6a: 7b7b ldrb r3, [r7, #13] + 8003f6c: f003 0301 and.w r3, r3, #1 + 8003f70: 737b strb r3, [r7, #13] /*The button was released on a non-editable object. Just send enter*/ if(editable_or_scrollable == false) { - 8003fde: 7b7b ldrb r3, [r7, #13] - 8003fe0: f083 0301 eor.w r3, r3, #1 - 8003fe4: b2db uxtb r3, r3 - 8003fe6: 2b00 cmp r3, #0 - 8003fe8: d039 beq.n 800405e + 8003f72: 7b7b ldrb r3, [r7, #13] + 8003f74: f083 0301 eor.w r3, r3, #1 + 8003f78: b2db uxtb r3, r3 + 8003f7a: 2b00 cmp r3, #0 + 8003f7c: d039 beq.n 8003ff2 lv_event_send(indev_obj_act, LV_EVENT_RELEASED, indev_act); - 8003fea: 4b90 ldr r3, [pc, #576] ; (800422c ) - 8003fec: 681b ldr r3, [r3, #0] - 8003fee: 4a90 ldr r2, [pc, #576] ; (8004230 ) - 8003ff0: 6812 ldr r2, [r2, #0] - 8003ff2: 2108 movs r1, #8 - 8003ff4: 4618 mov r0, r3 - 8003ff6: f7fe fa43 bl 8002480 + 8003f7e: 4b90 ldr r3, [pc, #576] ; (80041c0 ) + 8003f80: 681b ldr r3, [r3, #0] + 8003f82: 4a90 ldr r2, [pc, #576] ; (80041c4 ) + 8003f84: 6812 ldr r2, [r2, #0] + 8003f86: 2108 movs r1, #8 + 8003f88: 4618 mov r0, r3 + 8003f8a: f7fe fa43 bl 8002414 if(indev_reset_check(&i->proc)) return; - 8003ffa: 687b ldr r3, [r7, #4] - 8003ffc: 3304 adds r3, #4 - 8003ffe: 4618 mov r0, r3 - 8004000: f000 fe1e bl 8004c40 - 8004004: 4603 mov r3, r0 - 8004006: 2b00 cmp r3, #0 - 8004008: f040 8104 bne.w 8004214 + 8003f8e: 687b ldr r3, [r7, #4] + 8003f90: 3304 adds r3, #4 + 8003f92: 4618 mov r0, r3 + 8003f94: f000 fe1e bl 8004bd4 + 8003f98: 4603 mov r3, r0 + 8003f9a: 2b00 cmp r3, #0 + 8003f9c: f040 8104 bne.w 80041a8 if(i->proc.long_pr_sent == 0) lv_event_send(indev_obj_act, LV_EVENT_SHORT_CLICKED, indev_act); - 800400c: 687b ldr r3, [r7, #4] - 800400e: 795b ldrb r3, [r3, #5] - 8004010: f003 0301 and.w r3, r3, #1 - 8004014: b2db uxtb r3, r3 - 8004016: 2b00 cmp r3, #0 - 8004018: d107 bne.n 800402a - 800401a: 4b84 ldr r3, [pc, #528] ; (800422c ) - 800401c: 681b ldr r3, [r3, #0] - 800401e: 4a84 ldr r2, [pc, #528] ; (8004230 ) - 8004020: 6812 ldr r2, [r2, #0] - 8004022: 2104 movs r1, #4 - 8004024: 4618 mov r0, r3 - 8004026: f7fe fa2b bl 8002480 + 8003fa0: 687b ldr r3, [r7, #4] + 8003fa2: 795b ldrb r3, [r3, #5] + 8003fa4: f003 0301 and.w r3, r3, #1 + 8003fa8: b2db uxtb r3, r3 + 8003faa: 2b00 cmp r3, #0 + 8003fac: d107 bne.n 8003fbe + 8003fae: 4b84 ldr r3, [pc, #528] ; (80041c0 ) + 8003fb0: 681b ldr r3, [r3, #0] + 8003fb2: 4a84 ldr r2, [pc, #528] ; (80041c4 ) + 8003fb4: 6812 ldr r2, [r2, #0] + 8003fb6: 2104 movs r1, #4 + 8003fb8: 4618 mov r0, r3 + 8003fba: f7fe fa2b bl 8002414 if(indev_reset_check(&i->proc)) return; - 800402a: 687b ldr r3, [r7, #4] - 800402c: 3304 adds r3, #4 - 800402e: 4618 mov r0, r3 - 8004030: f000 fe06 bl 8004c40 - 8004034: 4603 mov r3, r0 - 8004036: 2b00 cmp r3, #0 - 8004038: f040 80ee bne.w 8004218 + 8003fbe: 687b ldr r3, [r7, #4] + 8003fc0: 3304 adds r3, #4 + 8003fc2: 4618 mov r0, r3 + 8003fc4: f000 fe06 bl 8004bd4 + 8003fc8: 4603 mov r3, r0 + 8003fca: 2b00 cmp r3, #0 + 8003fcc: f040 80ee bne.w 80041ac lv_event_send(indev_obj_act, LV_EVENT_CLICKED, indev_act); - 800403c: 4b7b ldr r3, [pc, #492] ; (800422c ) - 800403e: 681b ldr r3, [r3, #0] - 8004040: 4a7b ldr r2, [pc, #492] ; (8004230 ) - 8004042: 6812 ldr r2, [r2, #0] - 8004044: 2107 movs r1, #7 - 8004046: 4618 mov r0, r3 - 8004048: f7fe fa1a bl 8002480 + 8003fd0: 4b7b ldr r3, [pc, #492] ; (80041c0 ) + 8003fd2: 681b ldr r3, [r3, #0] + 8003fd4: 4a7b ldr r2, [pc, #492] ; (80041c4 ) + 8003fd6: 6812 ldr r2, [r2, #0] + 8003fd8: 2107 movs r1, #7 + 8003fda: 4618 mov r0, r3 + 8003fdc: f7fe fa1a bl 8002414 if(indev_reset_check(&i->proc)) return; - 800404c: 687b ldr r3, [r7, #4] - 800404e: 3304 adds r3, #4 - 8004050: 4618 mov r0, r3 - 8004052: f000 fdf5 bl 8004c40 - 8004056: 4603 mov r3, r0 - 8004058: 2b00 cmp r3, #0 - 800405a: d05d beq.n 8004118 - 800405c: e0e3 b.n 8004226 + 8003fe0: 687b ldr r3, [r7, #4] + 8003fe2: 3304 adds r3, #4 + 8003fe4: 4618 mov r0, r3 + 8003fe6: f000 fdf5 bl 8004bd4 + 8003fea: 4603 mov r3, r0 + 8003fec: 2b00 cmp r3, #0 + 8003fee: d05d beq.n 80040ac + 8003ff0: e0e3 b.n 80041ba } /*An object is being edited and the button is released.*/ else if(lv_group_get_editing(g)) { - 800405e: 6938 ldr r0, [r7, #16] - 8004060: f7fe ff49 bl 8002ef6 - 8004064: 4603 mov r3, r0 - 8004066: 2b00 cmp r3, #0 - 8004068: d04b beq.n 8004102 + 8003ff2: 6938 ldr r0, [r7, #16] + 8003ff4: f7fe ff49 bl 8002e8a + 8003ff8: 4603 mov r3, r0 + 8003ffa: 2b00 cmp r3, #0 + 8003ffc: d04b beq.n 8004096 /*Ignore long pressed enter release because it comes from mode switch*/ if(!i->proc.long_pr_sent || lv_group_get_obj_count(g) <= 1) { - 800406a: 687b ldr r3, [r7, #4] - 800406c: 795b ldrb r3, [r3, #5] - 800406e: f003 0301 and.w r3, r3, #1 - 8004072: b2db uxtb r3, r3 - 8004074: 2b00 cmp r3, #0 - 8004076: d005 beq.n 8004084 - 8004078: 6938 ldr r0, [r7, #16] - 800407a: f7fe ff55 bl 8002f28 - 800407e: 4603 mov r3, r0 - 8004080: 2b01 cmp r3, #1 - 8004082: d837 bhi.n 80040f4 + 8003ffe: 687b ldr r3, [r7, #4] + 8004000: 795b ldrb r3, [r3, #5] + 8004002: f003 0301 and.w r3, r3, #1 + 8004006: b2db uxtb r3, r3 + 8004008: 2b00 cmp r3, #0 + 800400a: d005 beq.n 8004018 + 800400c: 6938 ldr r0, [r7, #16] + 800400e: f7fe ff55 bl 8002ebc + 8004012: 4603 mov r3, r0 + 8004014: 2b01 cmp r3, #1 + 8004016: d837 bhi.n 8004088 lv_event_send(indev_obj_act, LV_EVENT_RELEASED, indev_act); - 8004084: 4b69 ldr r3, [pc, #420] ; (800422c ) - 8004086: 681b ldr r3, [r3, #0] - 8004088: 4a69 ldr r2, [pc, #420] ; (8004230 ) - 800408a: 6812 ldr r2, [r2, #0] - 800408c: 2108 movs r1, #8 - 800408e: 4618 mov r0, r3 - 8004090: f7fe f9f6 bl 8002480 + 8004018: 4b69 ldr r3, [pc, #420] ; (80041c0 ) + 800401a: 681b ldr r3, [r3, #0] + 800401c: 4a69 ldr r2, [pc, #420] ; (80041c4 ) + 800401e: 6812 ldr r2, [r2, #0] + 8004020: 2108 movs r1, #8 + 8004022: 4618 mov r0, r3 + 8004024: f7fe f9f6 bl 8002414 if(indev_reset_check(&i->proc)) return; - 8004094: 687b ldr r3, [r7, #4] - 8004096: 3304 adds r3, #4 - 8004098: 4618 mov r0, r3 - 800409a: f000 fdd1 bl 8004c40 - 800409e: 4603 mov r3, r0 - 80040a0: 2b00 cmp r3, #0 - 80040a2: f040 80bb bne.w 800421c + 8004028: 687b ldr r3, [r7, #4] + 800402a: 3304 adds r3, #4 + 800402c: 4618 mov r0, r3 + 800402e: f000 fdd1 bl 8004bd4 + 8004032: 4603 mov r3, r0 + 8004034: 2b00 cmp r3, #0 + 8004036: f040 80bb bne.w 80041b0 lv_event_send(indev_obj_act, LV_EVENT_SHORT_CLICKED, indev_act); - 80040a6: 4b61 ldr r3, [pc, #388] ; (800422c ) - 80040a8: 681b ldr r3, [r3, #0] - 80040aa: 4a61 ldr r2, [pc, #388] ; (8004230 ) - 80040ac: 6812 ldr r2, [r2, #0] - 80040ae: 2104 movs r1, #4 - 80040b0: 4618 mov r0, r3 - 80040b2: f7fe f9e5 bl 8002480 + 800403a: 4b61 ldr r3, [pc, #388] ; (80041c0 ) + 800403c: 681b ldr r3, [r3, #0] + 800403e: 4a61 ldr r2, [pc, #388] ; (80041c4 ) + 8004040: 6812 ldr r2, [r2, #0] + 8004042: 2104 movs r1, #4 + 8004044: 4618 mov r0, r3 + 8004046: f7fe f9e5 bl 8002414 if(indev_reset_check(&i->proc)) return; - 80040b6: 687b ldr r3, [r7, #4] - 80040b8: 3304 adds r3, #4 - 80040ba: 4618 mov r0, r3 - 80040bc: f000 fdc0 bl 8004c40 - 80040c0: 4603 mov r3, r0 - 80040c2: 2b00 cmp r3, #0 - 80040c4: f040 80ac bne.w 8004220 + 800404a: 687b ldr r3, [r7, #4] + 800404c: 3304 adds r3, #4 + 800404e: 4618 mov r0, r3 + 8004050: f000 fdc0 bl 8004bd4 + 8004054: 4603 mov r3, r0 + 8004056: 2b00 cmp r3, #0 + 8004058: f040 80ac bne.w 80041b4 lv_event_send(indev_obj_act, LV_EVENT_CLICKED, indev_act); - 80040c8: 4b58 ldr r3, [pc, #352] ; (800422c ) - 80040ca: 681b ldr r3, [r3, #0] - 80040cc: 4a58 ldr r2, [pc, #352] ; (8004230 ) - 80040ce: 6812 ldr r2, [r2, #0] - 80040d0: 2107 movs r1, #7 - 80040d2: 4618 mov r0, r3 - 80040d4: f7fe f9d4 bl 8002480 + 800405c: 4b58 ldr r3, [pc, #352] ; (80041c0 ) + 800405e: 681b ldr r3, [r3, #0] + 8004060: 4a58 ldr r2, [pc, #352] ; (80041c4 ) + 8004062: 6812 ldr r2, [r2, #0] + 8004064: 2107 movs r1, #7 + 8004066: 4618 mov r0, r3 + 8004068: f7fe f9d4 bl 8002414 if(indev_reset_check(&i->proc)) return; - 80040d8: 687b ldr r3, [r7, #4] - 80040da: 3304 adds r3, #4 - 80040dc: 4618 mov r0, r3 - 80040de: f000 fdaf bl 8004c40 - 80040e2: 4603 mov r3, r0 - 80040e4: 2b00 cmp r3, #0 - 80040e6: f040 809d bne.w 8004224 + 800406c: 687b ldr r3, [r7, #4] + 800406e: 3304 adds r3, #4 + 8004070: 4618 mov r0, r3 + 8004072: f000 fdaf bl 8004bd4 + 8004076: 4603 mov r3, r0 + 8004078: 2b00 cmp r3, #0 + 800407a: f040 809d bne.w 80041b8 lv_group_send_data(g, LV_KEY_ENTER); - 80040ea: 210a movs r1, #10 - 80040ec: 6938 ldr r0, [r7, #16] - 80040ee: f7fe fe91 bl 8002e14 - 80040f2: e011 b.n 8004118 + 800407e: 210a movs r1, #10 + 8004080: 6938 ldr r0, [r7, #16] + 8004082: f7fe fe91 bl 8002da8 + 8004086: e011 b.n 80040ac } else { lv_obj_clear_state(indev_obj_act, LV_STATE_PRESSED); /*Remove the pressed state manually*/ - 80040f4: 4b4d ldr r3, [pc, #308] ; (800422c ) - 80040f6: 681b ldr r3, [r3, #0] - 80040f8: 2120 movs r1, #32 - 80040fa: 4618 mov r0, r3 - 80040fc: f002 fb23 bl 8006746 - 8004100: e00a b.n 8004118 + 8004088: 4b4d ldr r3, [pc, #308] ; (80041c0 ) + 800408a: 681b ldr r3, [r3, #0] + 800408c: 2120 movs r1, #32 + 800408e: 4618 mov r0, r3 + 8004090: f002 fb23 bl 80066da + 8004094: e00a b.n 80040ac } } /*If the focused object is editable and now in navigate mode then on enter switch edit mode*/ else if(!i->proc.long_pr_sent) { - 8004102: 687b ldr r3, [r7, #4] - 8004104: 795b ldrb r3, [r3, #5] - 8004106: f003 0301 and.w r3, r3, #1 - 800410a: b2db uxtb r3, r3 - 800410c: 2b00 cmp r3, #0 - 800410e: d103 bne.n 8004118 + 8004096: 687b ldr r3, [r7, #4] + 8004098: 795b ldrb r3, [r3, #5] + 800409a: f003 0301 and.w r3, r3, #1 + 800409e: b2db uxtb r3, r3 + 80040a0: 2b00 cmp r3, #0 + 80040a2: d103 bne.n 80040ac LV_LOG_INFO("entering edit mode"); lv_group_set_editing(g, true); /*Set edit mode*/ - 8004110: 2101 movs r1, #1 - 8004112: 6938 ldr r0, [r7, #16] - 8004114: f7fe fe97 bl 8002e46 + 80040a4: 2101 movs r1, #1 + 80040a6: 6938 ldr r0, [r7, #16] + 80040a8: f7fe fe97 bl 8002dda } } i->proc.pr_timestamp = 0; - 8004118: 687b ldr r3, [r7, #4] - 800411a: 2200 movs r2, #0 - 800411c: 645a str r2, [r3, #68] ; 0x44 + 80040ac: 687b ldr r3, [r7, #4] + 80040ae: 2200 movs r2, #0 + 80040b0: 645a str r2, [r3, #68] ; 0x44 i->proc.long_pr_sent = 0; - 800411e: 687a ldr r2, [r7, #4] - 8004120: 7953 ldrb r3, [r2, #5] - 8004122: f36f 0300 bfc r3, #0, #1 - 8004126: 7153 strb r3, [r2, #5] - 8004128: e002 b.n 8004130 + 80040b2: 687a ldr r2, [r7, #4] + 80040b4: 7953 ldrb r3, [r2, #5] + 80040b6: f36f 0300 bfc r3, #0, #1 + 80040ba: 7153 strb r3, [r2, #5] + 80040bc: e002 b.n 80040c4 if(data->key == LV_KEY_ENTER) { - 800412a: bf00 nop - 800412c: e000 b.n 8004130 + 80040be: bf00 nop + 80040c0: e000 b.n 80040c4 if(i->proc.long_pr_sent == 0 && lv_tick_elaps(i->proc.pr_timestamp) > i->driver->long_press_time) { - 800412e: bf00 nop + 80040c2: bf00 nop } indev_obj_act = NULL; - 8004130: 4b3e ldr r3, [pc, #248] ; (800422c ) - 8004132: 2200 movs r2, #0 - 8004134: 601a str r2, [r3, #0] + 80040c4: 4b3e ldr r3, [pc, #248] ; (80041c0 ) + 80040c6: 2200 movs r2, #0 + 80040c8: 601a str r2, [r3, #0] /*if encoder steps or simulated steps via left/right keys*/ if(data->enc_diff != 0) { - 8004136: 683b ldr r3, [r7, #0] - 8004138: f9b3 300c ldrsh.w r3, [r3, #12] - 800413c: 2b00 cmp r3, #0 - 800413e: d072 beq.n 8004226 + 80040ca: 683b ldr r3, [r7, #0] + 80040cc: f9b3 300c ldrsh.w r3, [r3, #12] + 80040d0: 2b00 cmp r3, #0 + 80040d2: d072 beq.n 80041ba /*In edit mode send LEFT/RIGHT keys*/ if(lv_group_get_editing(g)) { - 8004140: 6938 ldr r0, [r7, #16] - 8004142: f7fe fed8 bl 8002ef6 - 8004146: 4603 mov r3, r0 - 8004148: 2b00 cmp r3, #0 - 800414a: d02d beq.n 80041a8 + 80040d4: 6938 ldr r0, [r7, #16] + 80040d6: f7fe fed8 bl 8002e8a + 80040da: 4603 mov r3, r0 + 80040dc: 2b00 cmp r3, #0 + 80040de: d02d beq.n 800413c LV_LOG_INFO("rotated by %+d (edit)", data->enc_diff); int32_t s; if(data->enc_diff < 0) { - 800414c: 683b ldr r3, [r7, #0] - 800414e: f9b3 300c ldrsh.w r3, [r3, #12] - 8004152: 2b00 cmp r3, #0 - 8004154: da11 bge.n 800417a + 80040e0: 683b ldr r3, [r7, #0] + 80040e2: f9b3 300c ldrsh.w r3, [r3, #12] + 80040e6: 2b00 cmp r3, #0 + 80040e8: da11 bge.n 800410e for(s = 0; s < -data->enc_diff; s++) lv_group_send_data(g, LV_KEY_LEFT); - 8004156: 2300 movs r3, #0 - 8004158: 61fb str r3, [r7, #28] - 800415a: e006 b.n 800416a - 800415c: 2114 movs r1, #20 - 800415e: 6938 ldr r0, [r7, #16] - 8004160: f7fe fe58 bl 8002e14 - 8004164: 69fb ldr r3, [r7, #28] - 8004166: 3301 adds r3, #1 - 8004168: 61fb str r3, [r7, #28] - 800416a: 683b ldr r3, [r7, #0] - 800416c: f9b3 300c ldrsh.w r3, [r3, #12] - 8004170: 425b negs r3, r3 - 8004172: 69fa ldr r2, [r7, #28] - 8004174: 429a cmp r2, r3 - 8004176: dbf1 blt.n 800415c - 8004178: e055 b.n 8004226 + 80040ea: 2300 movs r3, #0 + 80040ec: 61fb str r3, [r7, #28] + 80040ee: e006 b.n 80040fe + 80040f0: 2114 movs r1, #20 + 80040f2: 6938 ldr r0, [r7, #16] + 80040f4: f7fe fe58 bl 8002da8 + 80040f8: 69fb ldr r3, [r7, #28] + 80040fa: 3301 adds r3, #1 + 80040fc: 61fb str r3, [r7, #28] + 80040fe: 683b ldr r3, [r7, #0] + 8004100: f9b3 300c ldrsh.w r3, [r3, #12] + 8004104: 425b negs r3, r3 + 8004106: 69fa ldr r2, [r7, #28] + 8004108: 429a cmp r2, r3 + 800410a: dbf1 blt.n 80040f0 + 800410c: e055 b.n 80041ba } else if(data->enc_diff > 0) { - 800417a: 683b ldr r3, [r7, #0] - 800417c: f9b3 300c ldrsh.w r3, [r3, #12] - 8004180: 2b00 cmp r3, #0 - 8004182: dd50 ble.n 8004226 + 800410e: 683b ldr r3, [r7, #0] + 8004110: f9b3 300c ldrsh.w r3, [r3, #12] + 8004114: 2b00 cmp r3, #0 + 8004116: dd50 ble.n 80041ba for(s = 0; s < data->enc_diff; s++) lv_group_send_data(g, LV_KEY_RIGHT); - 8004184: 2300 movs r3, #0 - 8004186: 61fb str r3, [r7, #28] - 8004188: e006 b.n 8004198 - 800418a: 2113 movs r1, #19 - 800418c: 6938 ldr r0, [r7, #16] - 800418e: f7fe fe41 bl 8002e14 - 8004192: 69fb ldr r3, [r7, #28] - 8004194: 3301 adds r3, #1 - 8004196: 61fb str r3, [r7, #28] - 8004198: 683b ldr r3, [r7, #0] - 800419a: f9b3 300c ldrsh.w r3, [r3, #12] - 800419e: 461a mov r2, r3 - 80041a0: 69fb ldr r3, [r7, #28] - 80041a2: 4293 cmp r3, r2 - 80041a4: dbf1 blt.n 800418a - 80041a6: e03e b.n 8004226 + 8004118: 2300 movs r3, #0 + 800411a: 61fb str r3, [r7, #28] + 800411c: e006 b.n 800412c + 800411e: 2113 movs r1, #19 + 8004120: 6938 ldr r0, [r7, #16] + 8004122: f7fe fe41 bl 8002da8 + 8004126: 69fb ldr r3, [r7, #28] + 8004128: 3301 adds r3, #1 + 800412a: 61fb str r3, [r7, #28] + 800412c: 683b ldr r3, [r7, #0] + 800412e: f9b3 300c ldrsh.w r3, [r3, #12] + 8004132: 461a mov r2, r3 + 8004134: 69fb ldr r3, [r7, #28] + 8004136: 4293 cmp r3, r2 + 8004138: dbf1 blt.n 800411e + 800413a: e03e b.n 80041ba } /*In navigate mode focus on the next/prev objects*/ else { LV_LOG_INFO("rotated by %+d (nav)", data->enc_diff); int32_t s; if(data->enc_diff < 0) { - 80041a8: 683b ldr r3, [r7, #0] - 80041aa: f9b3 300c ldrsh.w r3, [r3, #12] - 80041ae: 2b00 cmp r3, #0 - 80041b0: da10 bge.n 80041d4 + 800413c: 683b ldr r3, [r7, #0] + 800413e: f9b3 300c ldrsh.w r3, [r3, #12] + 8004142: 2b00 cmp r3, #0 + 8004144: da10 bge.n 8004168 for(s = 0; s < -data->enc_diff; s++) lv_group_focus_prev(g); - 80041b2: 2300 movs r3, #0 - 80041b4: 61bb str r3, [r7, #24] - 80041b6: e005 b.n 80041c4 - 80041b8: 6938 ldr r0, [r7, #16] - 80041ba: f7fe fe19 bl 8002df0 - 80041be: 69bb ldr r3, [r7, #24] - 80041c0: 3301 adds r3, #1 - 80041c2: 61bb str r3, [r7, #24] - 80041c4: 683b ldr r3, [r7, #0] - 80041c6: f9b3 300c ldrsh.w r3, [r3, #12] - 80041ca: 425b negs r3, r3 - 80041cc: 69ba ldr r2, [r7, #24] - 80041ce: 429a cmp r2, r3 - 80041d0: dbf2 blt.n 80041b8 - 80041d2: e028 b.n 8004226 + 8004146: 2300 movs r3, #0 + 8004148: 61bb str r3, [r7, #24] + 800414a: e005 b.n 8004158 + 800414c: 6938 ldr r0, [r7, #16] + 800414e: f7fe fe19 bl 8002d84 + 8004152: 69bb ldr r3, [r7, #24] + 8004154: 3301 adds r3, #1 + 8004156: 61bb str r3, [r7, #24] + 8004158: 683b ldr r3, [r7, #0] + 800415a: f9b3 300c ldrsh.w r3, [r3, #12] + 800415e: 425b negs r3, r3 + 8004160: 69ba ldr r2, [r7, #24] + 8004162: 429a cmp r2, r3 + 8004164: dbf2 blt.n 800414c + 8004166: e028 b.n 80041ba } else if(data->enc_diff > 0) { - 80041d4: 683b ldr r3, [r7, #0] - 80041d6: f9b3 300c ldrsh.w r3, [r3, #12] - 80041da: 2b00 cmp r3, #0 - 80041dc: dd23 ble.n 8004226 + 8004168: 683b ldr r3, [r7, #0] + 800416a: f9b3 300c ldrsh.w r3, [r3, #12] + 800416e: 2b00 cmp r3, #0 + 8004170: dd23 ble.n 80041ba for(s = 0; s < data->enc_diff; s++) lv_group_focus_next(g); - 80041de: 2300 movs r3, #0 - 80041e0: 61bb str r3, [r7, #24] - 80041e2: e005 b.n 80041f0 - 80041e4: 6938 ldr r0, [r7, #16] - 80041e6: f7fe fdf1 bl 8002dcc - 80041ea: 69bb ldr r3, [r7, #24] - 80041ec: 3301 adds r3, #1 - 80041ee: 61bb str r3, [r7, #24] - 80041f0: 683b ldr r3, [r7, #0] - 80041f2: f9b3 300c ldrsh.w r3, [r3, #12] - 80041f6: 461a mov r2, r3 - 80041f8: 69bb ldr r3, [r7, #24] - 80041fa: 4293 cmp r3, r2 - 80041fc: dbf2 blt.n 80041e4 - 80041fe: e012 b.n 8004226 + 8004172: 2300 movs r3, #0 + 8004174: 61bb str r3, [r7, #24] + 8004176: e005 b.n 8004184 + 8004178: 6938 ldr r0, [r7, #16] + 800417a: f7fe fdf1 bl 8002d60 + 800417e: 69bb ldr r3, [r7, #24] + 8004180: 3301 adds r3, #1 + 8004182: 61bb str r3, [r7, #24] + 8004184: 683b ldr r3, [r7, #0] + 8004186: f9b3 300c ldrsh.w r3, [r3, #12] + 800418a: 461a mov r2, r3 + 800418c: 69bb ldr r3, [r7, #24] + 800418e: 4293 cmp r3, r2 + 8004190: dbf2 blt.n 8004178 + 8004192: e012 b.n 80041ba if(data->state == LV_INDEV_STATE_PRESSED && i->proc.wait_until_release) return; - 8004200: bf00 nop - 8004202: e010 b.n 8004226 + 8004194: bf00 nop + 8004196: e010 b.n 80041ba if(g == NULL) return; - 8004204: bf00 nop - 8004206: e00e b.n 8004226 + 8004198: bf00 nop + 800419a: e00e b.n 80041ba if(indev_obj_act == NULL) return; - 8004208: bf00 nop - 800420a: e00c b.n 8004226 + 800419c: bf00 nop + 800419e: e00c b.n 80041ba if(indev_obj_act == NULL) return; - 800420c: bf00 nop - 800420e: e00a b.n 8004226 + 80041a0: bf00 nop + 80041a2: e00a b.n 80041ba if(indev_reset_check(&i->proc)) return; - 8004210: bf00 nop - 8004212: e008 b.n 8004226 + 80041a4: bf00 nop + 80041a6: e008 b.n 80041ba if(indev_reset_check(&i->proc)) return; - 8004214: bf00 nop - 8004216: e006 b.n 8004226 + 80041a8: bf00 nop + 80041aa: e006 b.n 80041ba if(indev_reset_check(&i->proc)) return; - 8004218: bf00 nop - 800421a: e004 b.n 8004226 + 80041ac: bf00 nop + 80041ae: e004 b.n 80041ba if(indev_reset_check(&i->proc)) return; - 800421c: bf00 nop - 800421e: e002 b.n 8004226 + 80041b0: bf00 nop + 80041b2: e002 b.n 80041ba if(indev_reset_check(&i->proc)) return; - 8004220: bf00 nop - 8004222: e000 b.n 8004226 + 80041b4: bf00 nop + 80041b6: e000 b.n 80041ba if(indev_reset_check(&i->proc)) return; - 8004224: bf00 nop + 80041b8: bf00 nop } } } } - 8004226: 3720 adds r7, #32 - 8004228: 46bd mov sp, r7 - 800422a: bd80 pop {r7, pc} - 800422c: 20001af8 .word 0x20001af8 - 8004230: 20001af4 .word 0x20001af4 + 80041ba: 3720 adds r7, #32 + 80041bc: 46bd mov sp, r7 + 80041be: bd80 pop {r7, pc} + 80041c0: 20001af8 .word 0x20001af8 + 80041c4: 20001af4 .word 0x20001af4 -08004234 : +080041c8 : * @param indev pointer to an input device state * @param x x coordinate of the next point * @param y y coordinate of the next point */ static void indev_button_proc(lv_indev_t * i, lv_indev_data_t * data) { - 8004234: b580 push {r7, lr} - 8004236: b084 sub sp, #16 - 8004238: af00 add r7, sp, #0 - 800423a: 6078 str r0, [r7, #4] - 800423c: 6039 str r1, [r7, #0] + 80041c8: b580 push {r7, lr} + 80041ca: b084 sub sp, #16 + 80041cc: af00 add r7, sp, #0 + 80041ce: 6078 str r0, [r7, #4] + 80041d0: 6039 str r1, [r7, #0] /*Die gracefully if i->btn_points is NULL*/ if(i->btn_points == NULL) { - 800423e: 687b ldr r3, [r7, #4] - 8004240: 6d5b ldr r3, [r3, #84] ; 0x54 - 8004242: 2b00 cmp r3, #0 - 8004244: d05b beq.n 80042fe + 80041d2: 687b ldr r3, [r7, #4] + 80041d4: 6d5b ldr r3, [r3, #84] ; 0x54 + 80041d6: 2b00 cmp r3, #0 + 80041d8: d05b beq.n 8004292 LV_LOG_WARN("btn_points is NULL"); return; } lv_coord_t x = i->btn_points[data->btn_id].x; - 8004246: 687b ldr r3, [r7, #4] - 8004248: 6d5a ldr r2, [r3, #84] ; 0x54 - 800424a: 683b ldr r3, [r7, #0] - 800424c: 689b ldr r3, [r3, #8] - 800424e: 009b lsls r3, r3, #2 - 8004250: 4413 add r3, r2 - 8004252: 881b ldrh r3, [r3, #0] - 8004254: 81fb strh r3, [r7, #14] + 80041da: 687b ldr r3, [r7, #4] + 80041dc: 6d5a ldr r2, [r3, #84] ; 0x54 + 80041de: 683b ldr r3, [r7, #0] + 80041e0: 689b ldr r3, [r3, #8] + 80041e2: 009b lsls r3, r3, #2 + 80041e4: 4413 add r3, r2 + 80041e6: 881b ldrh r3, [r3, #0] + 80041e8: 81fb strh r3, [r7, #14] lv_coord_t y = i->btn_points[data->btn_id].y; - 8004256: 687b ldr r3, [r7, #4] - 8004258: 6d5a ldr r2, [r3, #84] ; 0x54 - 800425a: 683b ldr r3, [r7, #0] - 800425c: 689b ldr r3, [r3, #8] - 800425e: 009b lsls r3, r3, #2 - 8004260: 4413 add r3, r2 - 8004262: 885b ldrh r3, [r3, #2] - 8004264: 81bb strh r3, [r7, #12] + 80041ea: 687b ldr r3, [r7, #4] + 80041ec: 6d5a ldr r2, [r3, #84] ; 0x54 + 80041ee: 683b ldr r3, [r7, #0] + 80041f0: 689b ldr r3, [r3, #8] + 80041f2: 009b lsls r3, r3, #2 + 80041f4: 4413 add r3, r2 + 80041f6: 885b ldrh r3, [r3, #2] + 80041f8: 81bb strh r3, [r7, #12] static lv_indev_state_t prev_state = LV_INDEV_STATE_RELEASED; if(prev_state != data->state) { - 8004266: 683b ldr r3, [r7, #0] - 8004268: 7b9a ldrb r2, [r3, #14] - 800426a: 4b29 ldr r3, [pc, #164] ; (8004310 ) - 800426c: 781b ldrb r3, [r3, #0] - 800426e: 429a cmp r2, r3 + 80041fa: 683b ldr r3, [r7, #0] + 80041fc: 7b9a ldrb r2, [r3, #14] + 80041fe: 4b29 ldr r3, [pc, #164] ; (80042a4 ) + 8004200: 781b ldrb r3, [r3, #0] + 8004202: 429a cmp r2, r3 LV_LOG_INFO("button %d is released (x:%d y:%d)", data->btn_id, x, y); } } /*If a new point comes always make a release*/ if(data->state == LV_INDEV_STATE_PRESSED) { - 8004270: 683b ldr r3, [r7, #0] - 8004272: 7b9b ldrb r3, [r3, #14] - 8004274: 2b01 cmp r3, #1 - 8004276: d112 bne.n 800429e + 8004204: 683b ldr r3, [r7, #0] + 8004206: 7b9b ldrb r3, [r3, #14] + 8004208: 2b01 cmp r3, #1 + 800420a: d112 bne.n 8004232 if(i->proc.types.pointer.last_point.x != x || - 8004278: 687b ldr r3, [r7, #4] - 800427a: f9b3 300c ldrsh.w r3, [r3, #12] - 800427e: f9b7 200e ldrsh.w r2, [r7, #14] - 8004282: 429a cmp r2, r3 - 8004284: d106 bne.n 8004294 + 800420c: 687b ldr r3, [r7, #4] + 800420e: f9b3 300c ldrsh.w r3, [r3, #12] + 8004212: f9b7 200e ldrsh.w r2, [r7, #14] + 8004216: 429a cmp r2, r3 + 8004218: d106 bne.n 8004228 i->proc.types.pointer.last_point.y != y) { - 8004286: 687b ldr r3, [r7, #4] - 8004288: f9b3 300e ldrsh.w r3, [r3, #14] + 800421a: 687b ldr r3, [r7, #4] + 800421c: f9b3 300e ldrsh.w r3, [r3, #14] if(i->proc.types.pointer.last_point.x != x || - 800428c: f9b7 200c ldrsh.w r2, [r7, #12] - 8004290: 429a cmp r2, r3 - 8004292: d004 beq.n 800429e + 8004220: f9b7 200c ldrsh.w r2, [r7, #12] + 8004224: 429a cmp r2, r3 + 8004226: d004 beq.n 8004232 indev_proc_release(&i->proc); - 8004294: 687b ldr r3, [r7, #4] - 8004296: 3304 adds r3, #4 - 8004298: 4618 mov r0, r3 - 800429a: f000 fa67 bl 800476c + 8004228: 687b ldr r3, [r7, #4] + 800422a: 3304 adds r3, #4 + 800422c: 4618 mov r0, r3 + 800422e: f000 fa67 bl 8004700 } } if(indev_reset_check(&i->proc)) return; - 800429e: 687b ldr r3, [r7, #4] - 80042a0: 3304 adds r3, #4 - 80042a2: 4618 mov r0, r3 - 80042a4: f000 fccc bl 8004c40 - 80042a8: 4603 mov r3, r0 - 80042aa: 2b00 cmp r3, #0 - 80042ac: d129 bne.n 8004302 + 8004232: 687b ldr r3, [r7, #4] + 8004234: 3304 adds r3, #4 + 8004236: 4618 mov r0, r3 + 8004238: f000 fccc bl 8004bd4 + 800423c: 4603 mov r3, r0 + 800423e: 2b00 cmp r3, #0 + 8004240: d129 bne.n 8004296 /*Save the new points*/ i->proc.types.pointer.act_point.x = x; - 80042ae: 687b ldr r3, [r7, #4] - 80042b0: 89fa ldrh r2, [r7, #14] - 80042b2: 811a strh r2, [r3, #8] + 8004242: 687b ldr r3, [r7, #4] + 8004244: 89fa ldrh r2, [r7, #14] + 8004246: 811a strh r2, [r3, #8] i->proc.types.pointer.act_point.y = y; - 80042b4: 687b ldr r3, [r7, #4] - 80042b6: 89ba ldrh r2, [r7, #12] - 80042b8: 815a strh r2, [r3, #10] + 8004248: 687b ldr r3, [r7, #4] + 800424a: 89ba ldrh r2, [r7, #12] + 800424c: 815a strh r2, [r3, #10] if(data->state == LV_INDEV_STATE_PRESSED) indev_proc_press(&i->proc); - 80042ba: 683b ldr r3, [r7, #0] - 80042bc: 7b9b ldrb r3, [r3, #14] - 80042be: 2b01 cmp r3, #1 - 80042c0: d105 bne.n 80042ce - 80042c2: 687b ldr r3, [r7, #4] - 80042c4: 3304 adds r3, #4 - 80042c6: 4618 mov r0, r3 - 80042c8: f000 f824 bl 8004314 - 80042cc: e004 b.n 80042d8 + 800424e: 683b ldr r3, [r7, #0] + 8004250: 7b9b ldrb r3, [r3, #14] + 8004252: 2b01 cmp r3, #1 + 8004254: d105 bne.n 8004262 + 8004256: 687b ldr r3, [r7, #4] + 8004258: 3304 adds r3, #4 + 800425a: 4618 mov r0, r3 + 800425c: f000 f824 bl 80042a8 + 8004260: e004 b.n 800426c else indev_proc_release(&i->proc); - 80042ce: 687b ldr r3, [r7, #4] - 80042d0: 3304 adds r3, #4 - 80042d2: 4618 mov r0, r3 - 80042d4: f000 fa4a bl 800476c + 8004262: 687b ldr r3, [r7, #4] + 8004264: 3304 adds r3, #4 + 8004266: 4618 mov r0, r3 + 8004268: f000 fa4a bl 8004700 if(indev_reset_check(&i->proc)) return; - 80042d8: 687b ldr r3, [r7, #4] - 80042da: 3304 adds r3, #4 - 80042dc: 4618 mov r0, r3 - 80042de: f000 fcaf bl 8004c40 - 80042e2: 4603 mov r3, r0 - 80042e4: 2b00 cmp r3, #0 - 80042e6: d10e bne.n 8004306 + 800426c: 687b ldr r3, [r7, #4] + 800426e: 3304 adds r3, #4 + 8004270: 4618 mov r0, r3 + 8004272: f000 fcaf bl 8004bd4 + 8004276: 4603 mov r3, r0 + 8004278: 2b00 cmp r3, #0 + 800427a: d10e bne.n 800429a i->proc.types.pointer.last_point.x = i->proc.types.pointer.act_point.x; - 80042e8: 687b ldr r3, [r7, #4] - 80042ea: f9b3 2008 ldrsh.w r2, [r3, #8] - 80042ee: 687b ldr r3, [r7, #4] - 80042f0: 819a strh r2, [r3, #12] + 800427c: 687b ldr r3, [r7, #4] + 800427e: f9b3 2008 ldrsh.w r2, [r3, #8] + 8004282: 687b ldr r3, [r7, #4] + 8004284: 819a strh r2, [r3, #12] i->proc.types.pointer.last_point.y = i->proc.types.pointer.act_point.y; - 80042f2: 687b ldr r3, [r7, #4] - 80042f4: f9b3 200a ldrsh.w r2, [r3, #10] - 80042f8: 687b ldr r3, [r7, #4] - 80042fa: 81da strh r2, [r3, #14] - 80042fc: e004 b.n 8004308 + 8004286: 687b ldr r3, [r7, #4] + 8004288: f9b3 200a ldrsh.w r2, [r3, #10] + 800428c: 687b ldr r3, [r7, #4] + 800428e: 81da strh r2, [r3, #14] + 8004290: e004 b.n 800429c return; - 80042fe: bf00 nop - 8004300: e002 b.n 8004308 + 8004292: bf00 nop + 8004294: e002 b.n 800429c if(indev_reset_check(&i->proc)) return; - 8004302: bf00 nop - 8004304: e000 b.n 8004308 + 8004296: bf00 nop + 8004298: e000 b.n 800429c if(indev_reset_check(&i->proc)) return; - 8004306: bf00 nop + 800429a: bf00 nop } - 8004308: 3710 adds r7, #16 - 800430a: 46bd mov sp, r7 - 800430c: bd80 pop {r7, pc} - 800430e: bf00 nop - 8004310: 20001afc .word 0x20001afc + 800429c: 3710 adds r7, #16 + 800429e: 46bd mov sp, r7 + 80042a0: bd80 pop {r7, pc} + 80042a2: bf00 nop + 80042a4: 20001afc .word 0x20001afc -08004314 : +080042a8 : * Process the pressed state of LV_INDEV_TYPE_POINTER input devices * @param indev pointer to an input device 'proc' * @return LV_RES_OK: no indev reset required; LV_RES_INV: indev reset is required */ static void indev_proc_press(_lv_indev_proc_t * proc) { - 8004314: b580 push {r7, lr} - 8004316: b086 sub sp, #24 - 8004318: af00 add r7, sp, #0 - 800431a: 6078 str r0, [r7, #4] + 80042a8: b580 push {r7, lr} + 80042aa: b086 sub sp, #24 + 80042ac: af00 add r7, sp, #0 + 80042ae: 6078 str r0, [r7, #4] LV_LOG_INFO("pressed at x:%d y:%d", proc->types.pointer.act_point.x, proc->types.pointer.act_point.y); indev_obj_act = proc->types.pointer.act_obj; - 800431c: 687b ldr r3, [r7, #4] - 800431e: 6a1b ldr r3, [r3, #32] - 8004320: 4a23 ldr r2, [pc, #140] ; (80043b0 ) - 8004322: 6013 str r3, [r2, #0] + 80042b0: 687b ldr r3, [r7, #4] + 80042b2: 6a1b ldr r3, [r3, #32] + 80042b4: 4a23 ldr r2, [pc, #140] ; (8004344 ) + 80042b6: 6013 str r3, [r2, #0] if(proc->wait_until_release != 0) return; - 8004324: 687b ldr r3, [r7, #4] - 8004326: 785b ldrb r3, [r3, #1] - 8004328: f003 0308 and.w r3, r3, #8 - 800432c: b2db uxtb r3, r3 - 800432e: 2b00 cmp r3, #0 - 8004330: f040 81fd bne.w 800472e + 80042b8: 687b ldr r3, [r7, #4] + 80042ba: 785b ldrb r3, [r3, #1] + 80042bc: f003 0308 and.w r3, r3, #8 + 80042c0: b2db uxtb r3, r3 + 80042c2: 2b00 cmp r3, #0 + 80042c4: f040 81fd bne.w 80046c2 lv_disp_t * disp = indev_act->driver->disp; - 8004334: 4b1f ldr r3, [pc, #124] ; (80043b4 ) - 8004336: 681b ldr r3, [r3, #0] - 8004338: 681b ldr r3, [r3, #0] - 800433a: 691b ldr r3, [r3, #16] - 800433c: 613b str r3, [r7, #16] + 80042c8: 4b1f ldr r3, [pc, #124] ; (8004348 ) + 80042ca: 681b ldr r3, [r3, #0] + 80042cc: 681b ldr r3, [r3, #0] + 80042ce: 691b ldr r3, [r3, #16] + 80042d0: 613b str r3, [r7, #16] bool new_obj_searched = false; - 800433e: 2300 movs r3, #0 - 8004340: 75fb strb r3, [r7, #23] + 80042d2: 2300 movs r3, #0 + 80042d4: 75fb strb r3, [r7, #23] /*If there is no last object then search*/ if(indev_obj_act == NULL) { - 8004342: 4b1b ldr r3, [pc, #108] ; (80043b0 ) - 8004344: 681b ldr r3, [r3, #0] - 8004346: 2b00 cmp r3, #0 - 8004348: d136 bne.n 80043b8 + 80042d6: 4b1b ldr r3, [pc, #108] ; (8004344 ) + 80042d8: 681b ldr r3, [r3, #0] + 80042da: 2b00 cmp r3, #0 + 80042dc: d136 bne.n 800434c indev_obj_act = lv_indev_search_obj(lv_disp_get_layer_sys(disp), &proc->types.pointer.act_point); - 800434a: 6938 ldr r0, [r7, #16] - 800434c: f7fe f873 bl 8002436 - 8004350: 4602 mov r2, r0 - 8004352: 687b ldr r3, [r7, #4] - 8004354: 3304 adds r3, #4 - 8004356: 4619 mov r1, r3 - 8004358: 4610 mov r0, r2 - 800435a: f7ff f97f bl 800365c - 800435e: 4603 mov r3, r0 - 8004360: 4a13 ldr r2, [pc, #76] ; (80043b0 ) - 8004362: 6013 str r3, [r2, #0] + 80042de: 6938 ldr r0, [r7, #16] + 80042e0: f7fe f872 bl 80023c8 + 80042e4: 4602 mov r2, r0 + 80042e6: 687b ldr r3, [r7, #4] + 80042e8: 3304 adds r3, #4 + 80042ea: 4619 mov r1, r3 + 80042ec: 4610 mov r0, r2 + 80042ee: f7ff f97f bl 80035f0 + 80042f2: 4603 mov r3, r0 + 80042f4: 4a13 ldr r2, [pc, #76] ; (8004344 ) + 80042f6: 6013 str r3, [r2, #0] if(indev_obj_act == NULL) indev_obj_act = lv_indev_search_obj(lv_disp_get_layer_top(disp), - 8004364: 4b12 ldr r3, [pc, #72] ; (80043b0 ) - 8004366: 681b ldr r3, [r3, #0] - 8004368: 2b00 cmp r3, #0 - 800436a: d10c bne.n 8004386 - 800436c: 6938 ldr r0, [r7, #16] - 800436e: f7fe f84d bl 800240c - 8004372: 4602 mov r2, r0 - 8004374: 687b ldr r3, [r7, #4] - 8004376: 3304 adds r3, #4 - 8004378: 4619 mov r1, r3 - 800437a: 4610 mov r0, r2 - 800437c: f7ff f96e bl 800365c - 8004380: 4603 mov r3, r0 - 8004382: 4a0b ldr r2, [pc, #44] ; (80043b0 ) - 8004384: 6013 str r3, [r2, #0] + 80042f8: 4b12 ldr r3, [pc, #72] ; (8004344 ) + 80042fa: 681b ldr r3, [r3, #0] + 80042fc: 2b00 cmp r3, #0 + 80042fe: d10c bne.n 800431a + 8004300: 6938 ldr r0, [r7, #16] + 8004302: f7fe f84c bl 800239e + 8004306: 4602 mov r2, r0 + 8004308: 687b ldr r3, [r7, #4] + 800430a: 3304 adds r3, #4 + 800430c: 4619 mov r1, r3 + 800430e: 4610 mov r0, r2 + 8004310: f7ff f96e bl 80035f0 + 8004314: 4603 mov r3, r0 + 8004316: 4a0b ldr r2, [pc, #44] ; (8004344 ) + 8004318: 6013 str r3, [r2, #0] &proc->types.pointer.act_point); if(indev_obj_act == NULL) indev_obj_act = lv_indev_search_obj(lv_disp_get_scr_act(disp), - 8004386: 4b0a ldr r3, [pc, #40] ; (80043b0 ) - 8004388: 681b ldr r3, [r3, #0] - 800438a: 2b00 cmp r3, #0 - 800438c: d10c bne.n 80043a8 - 800438e: 6938 ldr r0, [r7, #16] - 8004390: f7fe f812 bl 80023b8 - 8004394: 4602 mov r2, r0 - 8004396: 687b ldr r3, [r7, #4] - 8004398: 3304 adds r3, #4 - 800439a: 4619 mov r1, r3 - 800439c: 4610 mov r0, r2 - 800439e: f7ff f95d bl 800365c - 80043a2: 4603 mov r3, r0 - 80043a4: 4a02 ldr r2, [pc, #8] ; (80043b0 ) - 80043a6: 6013 str r3, [r2, #0] + 800431a: 4b0a ldr r3, [pc, #40] ; (8004344 ) + 800431c: 681b ldr r3, [r3, #0] + 800431e: 2b00 cmp r3, #0 + 8004320: d10c bne.n 800433c + 8004322: 6938 ldr r0, [r7, #16] + 8004324: f7fd ffd4 bl 80022d0 + 8004328: 4602 mov r2, r0 + 800432a: 687b ldr r3, [r7, #4] + 800432c: 3304 adds r3, #4 + 800432e: 4619 mov r1, r3 + 8004330: 4610 mov r0, r2 + 8004332: f7ff f95d bl 80035f0 + 8004336: 4603 mov r3, r0 + 8004338: 4a02 ldr r2, [pc, #8] ; (8004344 ) + 800433a: 6013 str r3, [r2, #0] &proc->types.pointer.act_point); new_obj_searched = true; - 80043a8: 2301 movs r3, #1 - 80043aa: 75fb strb r3, [r7, #23] - 80043ac: e046 b.n 800443c - 80043ae: bf00 nop - 80043b0: 20001af8 .word 0x20001af8 - 80043b4: 20001af4 .word 0x20001af4 + 800433c: 2301 movs r3, #1 + 800433e: 75fb strb r3, [r7, #23] + 8004340: e046 b.n 80043d0 + 8004342: bf00 nop + 8004344: 20001af8 .word 0x20001af8 + 8004348: 20001af4 .word 0x20001af4 } /*If there is last object but it is not scrolled and not protected also search*/ else if(proc->types.pointer.scroll_obj == NULL && - 80043b8: 687b ldr r3, [r7, #4] - 80043ba: 6a9b ldr r3, [r3, #40] ; 0x28 - 80043bc: 2b00 cmp r3, #0 - 80043be: d13d bne.n 800443c + 800434c: 687b ldr r3, [r7, #4] + 800434e: 6a9b ldr r3, [r3, #40] ; 0x28 + 8004350: 2b00 cmp r3, #0 + 8004352: d13d bne.n 80043d0 lv_obj_has_flag(indev_obj_act, LV_OBJ_FLAG_PRESS_LOCK) == false) { - 80043c0: 4ba7 ldr r3, [pc, #668] ; (8004660 ) - 80043c2: 681b ldr r3, [r3, #0] - 80043c4: f44f 5100 mov.w r1, #8192 ; 0x2000 - 80043c8: 4618 mov r0, r3 - 80043ca: f002 f9da bl 8006782 - 80043ce: 4603 mov r3, r0 - 80043d0: f083 0301 eor.w r3, r3, #1 - 80043d4: b2db uxtb r3, r3 + 8004354: 4ba7 ldr r3, [pc, #668] ; (80045f4 ) + 8004356: 681b ldr r3, [r3, #0] + 8004358: f44f 5100 mov.w r1, #8192 ; 0x2000 + 800435c: 4618 mov r0, r3 + 800435e: f002 f9da bl 8006716 + 8004362: 4603 mov r3, r0 + 8004364: f083 0301 eor.w r3, r3, #1 + 8004368: b2db uxtb r3, r3 else if(proc->types.pointer.scroll_obj == NULL && - 80043d6: 2b00 cmp r3, #0 - 80043d8: d030 beq.n 800443c + 800436a: 2b00 cmp r3, #0 + 800436c: d030 beq.n 80043d0 indev_obj_act = lv_indev_search_obj(lv_disp_get_layer_sys(disp), &proc->types.pointer.act_point); - 80043da: 6938 ldr r0, [r7, #16] - 80043dc: f7fe f82b bl 8002436 - 80043e0: 4602 mov r2, r0 - 80043e2: 687b ldr r3, [r7, #4] - 80043e4: 3304 adds r3, #4 - 80043e6: 4619 mov r1, r3 - 80043e8: 4610 mov r0, r2 - 80043ea: f7ff f937 bl 800365c - 80043ee: 4603 mov r3, r0 - 80043f0: 4a9b ldr r2, [pc, #620] ; (8004660 ) - 80043f2: 6013 str r3, [r2, #0] + 800436e: 6938 ldr r0, [r7, #16] + 8004370: f7fe f82a bl 80023c8 + 8004374: 4602 mov r2, r0 + 8004376: 687b ldr r3, [r7, #4] + 8004378: 3304 adds r3, #4 + 800437a: 4619 mov r1, r3 + 800437c: 4610 mov r0, r2 + 800437e: f7ff f937 bl 80035f0 + 8004382: 4603 mov r3, r0 + 8004384: 4a9b ldr r2, [pc, #620] ; (80045f4 ) + 8004386: 6013 str r3, [r2, #0] if(indev_obj_act == NULL) indev_obj_act = lv_indev_search_obj(lv_disp_get_layer_top(disp), - 80043f4: 4b9a ldr r3, [pc, #616] ; (8004660 ) - 80043f6: 681b ldr r3, [r3, #0] - 80043f8: 2b00 cmp r3, #0 - 80043fa: d10c bne.n 8004416 - 80043fc: 6938 ldr r0, [r7, #16] - 80043fe: f7fe f805 bl 800240c - 8004402: 4602 mov r2, r0 - 8004404: 687b ldr r3, [r7, #4] - 8004406: 3304 adds r3, #4 - 8004408: 4619 mov r1, r3 - 800440a: 4610 mov r0, r2 - 800440c: f7ff f926 bl 800365c - 8004410: 4603 mov r3, r0 - 8004412: 4a93 ldr r2, [pc, #588] ; (8004660 ) - 8004414: 6013 str r3, [r2, #0] + 8004388: 4b9a ldr r3, [pc, #616] ; (80045f4 ) + 800438a: 681b ldr r3, [r3, #0] + 800438c: 2b00 cmp r3, #0 + 800438e: d10c bne.n 80043aa + 8004390: 6938 ldr r0, [r7, #16] + 8004392: f7fe f804 bl 800239e + 8004396: 4602 mov r2, r0 + 8004398: 687b ldr r3, [r7, #4] + 800439a: 3304 adds r3, #4 + 800439c: 4619 mov r1, r3 + 800439e: 4610 mov r0, r2 + 80043a0: f7ff f926 bl 80035f0 + 80043a4: 4603 mov r3, r0 + 80043a6: 4a93 ldr r2, [pc, #588] ; (80045f4 ) + 80043a8: 6013 str r3, [r2, #0] &proc->types.pointer.act_point); if(indev_obj_act == NULL) indev_obj_act = lv_indev_search_obj(lv_disp_get_scr_act(disp), - 8004416: 4b92 ldr r3, [pc, #584] ; (8004660 ) - 8004418: 681b ldr r3, [r3, #0] - 800441a: 2b00 cmp r3, #0 - 800441c: d10c bne.n 8004438 - 800441e: 6938 ldr r0, [r7, #16] - 8004420: f7fd ffca bl 80023b8 - 8004424: 4602 mov r2, r0 - 8004426: 687b ldr r3, [r7, #4] - 8004428: 3304 adds r3, #4 - 800442a: 4619 mov r1, r3 - 800442c: 4610 mov r0, r2 - 800442e: f7ff f915 bl 800365c - 8004432: 4603 mov r3, r0 - 8004434: 4a8a ldr r2, [pc, #552] ; (8004660 ) - 8004436: 6013 str r3, [r2, #0] + 80043aa: 4b92 ldr r3, [pc, #584] ; (80045f4 ) + 80043ac: 681b ldr r3, [r3, #0] + 80043ae: 2b00 cmp r3, #0 + 80043b0: d10c bne.n 80043cc + 80043b2: 6938 ldr r0, [r7, #16] + 80043b4: f7fd ff8c bl 80022d0 + 80043b8: 4602 mov r2, r0 + 80043ba: 687b ldr r3, [r7, #4] + 80043bc: 3304 adds r3, #4 + 80043be: 4619 mov r1, r3 + 80043c0: 4610 mov r0, r2 + 80043c2: f7ff f915 bl 80035f0 + 80043c6: 4603 mov r3, r0 + 80043c8: 4a8a ldr r2, [pc, #552] ; (80045f4 ) + 80043ca: 6013 str r3, [r2, #0] &proc->types.pointer.act_point); new_obj_searched = true; - 8004438: 2301 movs r3, #1 - 800443a: 75fb strb r3, [r7, #23] + 80043cc: 2301 movs r3, #1 + 80043ce: 75fb strb r3, [r7, #23] } /*The last object might have scroll throw. Stop it manually*/ if(new_obj_searched && proc->types.pointer.last_obj) { - 800443c: 7dfb ldrb r3, [r7, #23] - 800443e: 2b00 cmp r3, #0 - 8004440: d013 beq.n 800446a - 8004442: 687b ldr r3, [r7, #4] - 8004444: 6a5b ldr r3, [r3, #36] ; 0x24 - 8004446: 2b00 cmp r3, #0 - 8004448: d00f beq.n 800446a + 80043d0: 7dfb ldrb r3, [r7, #23] + 80043d2: 2b00 cmp r3, #0 + 80043d4: d013 beq.n 80043fe + 80043d6: 687b ldr r3, [r7, #4] + 80043d8: 6a5b ldr r3, [r3, #36] ; 0x24 + 80043da: 2b00 cmp r3, #0 + 80043dc: d00f beq.n 80043fe proc->types.pointer.scroll_throw_vect.x = 0; - 800444a: 687b ldr r3, [r7, #4] - 800444c: 2200 movs r2, #0 - 800444e: 831a strh r2, [r3, #24] + 80043de: 687b ldr r3, [r7, #4] + 80043e0: 2200 movs r2, #0 + 80043e2: 831a strh r2, [r3, #24] proc->types.pointer.scroll_throw_vect.y = 0; - 8004450: 687b ldr r3, [r7, #4] - 8004452: 2200 movs r2, #0 - 8004454: 835a strh r2, [r3, #26] + 80043e4: 687b ldr r3, [r7, #4] + 80043e6: 2200 movs r2, #0 + 80043e8: 835a strh r2, [r3, #26] _lv_indev_scroll_throw_handler(proc); - 8004456: 6878 ldr r0, [r7, #4] - 8004458: f000 fd6e bl 8004f38 <_lv_indev_scroll_throw_handler> + 80043ea: 6878 ldr r0, [r7, #4] + 80043ec: f000 fd6e bl 8004ecc <_lv_indev_scroll_throw_handler> if(indev_reset_check(proc)) return; - 800445c: 6878 ldr r0, [r7, #4] - 800445e: f000 fbef bl 8004c40 - 8004462: 4603 mov r3, r0 - 8004464: 2b00 cmp r3, #0 - 8004466: f040 8164 bne.w 8004732 + 80043f0: 6878 ldr r0, [r7, #4] + 80043f2: f000 fbef bl 8004bd4 + 80043f6: 4603 mov r3, r0 + 80043f8: 2b00 cmp r3, #0 + 80043fa: f040 8164 bne.w 80046c6 } /*If a new object was found reset some variables and send a pressed Call the ancestor's event handler*/ if(indev_obj_act != proc->types.pointer.act_obj) { - 800446a: 687b ldr r3, [r7, #4] - 800446c: 6a1a ldr r2, [r3, #32] - 800446e: 4b7c ldr r3, [pc, #496] ; (8004660 ) - 8004470: 681b ldr r3, [r3, #0] - 8004472: 429a cmp r2, r3 - 8004474: f000 8081 beq.w 800457a + 80043fe: 687b ldr r3, [r7, #4] + 8004400: 6a1a ldr r2, [r3, #32] + 8004402: 4b7c ldr r3, [pc, #496] ; (80045f4 ) + 8004404: 681b ldr r3, [r3, #0] + 8004406: 429a cmp r2, r3 + 8004408: f000 8081 beq.w 800450e proc->types.pointer.last_point.x = proc->types.pointer.act_point.x; - 8004478: 687b ldr r3, [r7, #4] - 800447a: f9b3 2004 ldrsh.w r2, [r3, #4] - 800447e: 687b ldr r3, [r7, #4] - 8004480: 811a strh r2, [r3, #8] + 800440c: 687b ldr r3, [r7, #4] + 800440e: f9b3 2004 ldrsh.w r2, [r3, #4] + 8004412: 687b ldr r3, [r7, #4] + 8004414: 811a strh r2, [r3, #8] proc->types.pointer.last_point.y = proc->types.pointer.act_point.y; - 8004482: 687b ldr r3, [r7, #4] - 8004484: f9b3 2006 ldrsh.w r2, [r3, #6] - 8004488: 687b ldr r3, [r7, #4] - 800448a: 815a strh r2, [r3, #10] + 8004416: 687b ldr r3, [r7, #4] + 8004418: f9b3 2006 ldrsh.w r2, [r3, #6] + 800441c: 687b ldr r3, [r7, #4] + 800441e: 815a strh r2, [r3, #10] /*If a new object found the previous was lost, so send a Call the ancestor's event handler*/ if(proc->types.pointer.act_obj != NULL) { - 800448c: 687b ldr r3, [r7, #4] - 800448e: 6a1b ldr r3, [r3, #32] - 8004490: 2b00 cmp r3, #0 - 8004492: d010 beq.n 80044b6 + 8004420: 687b ldr r3, [r7, #4] + 8004422: 6a1b ldr r3, [r3, #32] + 8004424: 2b00 cmp r3, #0 + 8004426: d010 beq.n 800444a /*Save the obj because in special cases `act_obj` can change in the Call the ancestor's event handler function*/ lv_obj_t * last_obj = proc->types.pointer.act_obj; - 8004494: 687b ldr r3, [r7, #4] - 8004496: 6a1b ldr r3, [r3, #32] - 8004498: 60fb str r3, [r7, #12] + 8004428: 687b ldr r3, [r7, #4] + 800442a: 6a1b ldr r3, [r3, #32] + 800442c: 60fb str r3, [r7, #12] lv_event_send(last_obj, LV_EVENT_PRESS_LOST, indev_act); - 800449a: 4b72 ldr r3, [pc, #456] ; (8004664 ) - 800449c: 681b ldr r3, [r3, #0] - 800449e: 461a mov r2, r3 - 80044a0: 2103 movs r1, #3 - 80044a2: 68f8 ldr r0, [r7, #12] - 80044a4: f7fd ffec bl 8002480 + 800442e: 4b72 ldr r3, [pc, #456] ; (80045f8 ) + 8004430: 681b ldr r3, [r3, #0] + 8004432: 461a mov r2, r3 + 8004434: 2103 movs r1, #3 + 8004436: 68f8 ldr r0, [r7, #12] + 8004438: f7fd ffec bl 8002414 if(indev_reset_check(proc)) return; - 80044a8: 6878 ldr r0, [r7, #4] - 80044aa: f000 fbc9 bl 8004c40 - 80044ae: 4603 mov r3, r0 - 80044b0: 2b00 cmp r3, #0 - 80044b2: f040 8140 bne.w 8004736 + 800443c: 6878 ldr r0, [r7, #4] + 800443e: f000 fbc9 bl 8004bd4 + 8004442: 4603 mov r3, r0 + 8004444: 2b00 cmp r3, #0 + 8004446: f040 8140 bne.w 80046ca } proc->types.pointer.act_obj = indev_obj_act; /*Save the pressed object*/ - 80044b6: 4b6a ldr r3, [pc, #424] ; (8004660 ) - 80044b8: 681a ldr r2, [r3, #0] - 80044ba: 687b ldr r3, [r7, #4] - 80044bc: 621a str r2, [r3, #32] + 800444a: 4b6a ldr r3, [pc, #424] ; (80045f4 ) + 800444c: 681a ldr r2, [r3, #0] + 800444e: 687b ldr r3, [r7, #4] + 8004450: 621a str r2, [r3, #32] proc->types.pointer.last_obj = indev_obj_act; - 80044be: 4b68 ldr r3, [pc, #416] ; (8004660 ) - 80044c0: 681a ldr r2, [r3, #0] - 80044c2: 687b ldr r3, [r7, #4] - 80044c4: 625a str r2, [r3, #36] ; 0x24 + 8004452: 4b68 ldr r3, [pc, #416] ; (80045f4 ) + 8004454: 681a ldr r2, [r3, #0] + 8004456: 687b ldr r3, [r7, #4] + 8004458: 625a str r2, [r3, #36] ; 0x24 if(indev_obj_act != NULL) { - 80044c6: 4b66 ldr r3, [pc, #408] ; (8004660 ) - 80044c8: 681b ldr r3, [r3, #0] - 80044ca: 2b00 cmp r3, #0 - 80044cc: d055 beq.n 800457a + 800445a: 4b66 ldr r3, [pc, #408] ; (80045f4 ) + 800445c: 681b ldr r3, [r3, #0] + 800445e: 2b00 cmp r3, #0 + 8004460: d055 beq.n 800450e /*Save the time when the obj pressed to count long press time.*/ proc->pr_timestamp = lv_tick_get(); - 80044ce: f02c f96d bl 80307ac - 80044d2: 4602 mov r2, r0 - 80044d4: 687b ldr r3, [r7, #4] - 80044d6: 641a str r2, [r3, #64] ; 0x40 + 8004462: f02c f959 bl 8030718 + 8004466: 4602 mov r2, r0 + 8004468: 687b ldr r3, [r7, #4] + 800446a: 641a str r2, [r3, #64] ; 0x40 proc->long_pr_sent = 0; - 80044d8: 687a ldr r2, [r7, #4] - 80044da: 7853 ldrb r3, [r2, #1] - 80044dc: f36f 0300 bfc r3, #0, #1 - 80044e0: 7053 strb r3, [r2, #1] + 800446c: 687a ldr r2, [r7, #4] + 800446e: 7853 ldrb r3, [r2, #1] + 8004470: f36f 0300 bfc r3, #0, #1 + 8004474: 7053 strb r3, [r2, #1] proc->types.pointer.scroll_sum.x = 0; - 80044e2: 687b ldr r3, [r7, #4] - 80044e4: 2200 movs r2, #0 - 80044e6: 829a strh r2, [r3, #20] + 8004476: 687b ldr r3, [r7, #4] + 8004478: 2200 movs r2, #0 + 800447a: 829a strh r2, [r3, #20] proc->types.pointer.scroll_sum.y = 0; - 80044e8: 687b ldr r3, [r7, #4] - 80044ea: 2200 movs r2, #0 - 80044ec: 82da strh r2, [r3, #22] + 800447c: 687b ldr r3, [r7, #4] + 800447e: 2200 movs r2, #0 + 8004480: 82da strh r2, [r3, #22] proc->types.pointer.scroll_dir = LV_DIR_NONE; - 80044ee: 687a ldr r2, [r7, #4] - 80044f0: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 80044f4: f36f 0303 bfc r3, #0, #4 - 80044f8: f882 303c strb.w r3, [r2, #60] ; 0x3c + 8004482: 687a ldr r2, [r7, #4] + 8004484: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 8004488: f36f 0303 bfc r3, #0, #4 + 800448c: f882 303c strb.w r3, [r2, #60] ; 0x3c proc->types.pointer.gesture_dir = LV_DIR_NONE; - 80044fc: 687a ldr r2, [r7, #4] - 80044fe: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 8004502: f36f 1307 bfc r3, #4, #4 - 8004506: f882 303c strb.w r3, [r2, #60] ; 0x3c + 8004490: 687a ldr r2, [r7, #4] + 8004492: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 8004496: f36f 1307 bfc r3, #4, #4 + 800449a: f882 303c strb.w r3, [r2, #60] ; 0x3c proc->types.pointer.gesture_sent = 0; - 800450a: 687a ldr r2, [r7, #4] - 800450c: f892 303d ldrb.w r3, [r2, #61] ; 0x3d - 8004510: f36f 0300 bfc r3, #0, #1 - 8004514: f882 303d strb.w r3, [r2, #61] ; 0x3d + 800449e: 687a ldr r2, [r7, #4] + 80044a0: f892 303d ldrb.w r3, [r2, #61] ; 0x3d + 80044a4: f36f 0300 bfc r3, #0, #1 + 80044a8: f882 303d strb.w r3, [r2, #61] ; 0x3d proc->types.pointer.gesture_sum.x = 0; - 8004518: 687b ldr r3, [r7, #4] - 800451a: 2200 movs r2, #0 - 800451c: 871a strh r2, [r3, #56] ; 0x38 + 80044ac: 687b ldr r3, [r7, #4] + 80044ae: 2200 movs r2, #0 + 80044b0: 871a strh r2, [r3, #56] ; 0x38 proc->types.pointer.gesture_sum.y = 0; - 800451e: 687b ldr r3, [r7, #4] - 8004520: 2200 movs r2, #0 - 8004522: 875a strh r2, [r3, #58] ; 0x3a + 80044b2: 687b ldr r3, [r7, #4] + 80044b4: 2200 movs r2, #0 + 80044b6: 875a strh r2, [r3, #58] ; 0x3a proc->types.pointer.vect.x = 0; - 8004524: 687b ldr r3, [r7, #4] - 8004526: 2200 movs r2, #0 - 8004528: 821a strh r2, [r3, #16] + 80044b8: 687b ldr r3, [r7, #4] + 80044ba: 2200 movs r2, #0 + 80044bc: 821a strh r2, [r3, #16] proc->types.pointer.vect.y = 0; - 800452a: 687b ldr r3, [r7, #4] - 800452c: 2200 movs r2, #0 - 800452e: 825a strh r2, [r3, #18] + 80044be: 687b ldr r3, [r7, #4] + 80044c0: 2200 movs r2, #0 + 80044c2: 825a strh r2, [r3, #18] /*Call the ancestor's event handler about the press*/ lv_event_send(indev_obj_act, LV_EVENT_PRESSED, indev_act); - 8004530: 4b4b ldr r3, [pc, #300] ; (8004660 ) - 8004532: 681b ldr r3, [r3, #0] - 8004534: 4a4b ldr r2, [pc, #300] ; (8004664 ) - 8004536: 6812 ldr r2, [r2, #0] - 8004538: 2101 movs r1, #1 - 800453a: 4618 mov r0, r3 - 800453c: f7fd ffa0 bl 8002480 + 80044c4: 4b4b ldr r3, [pc, #300] ; (80045f4 ) + 80044c6: 681b ldr r3, [r3, #0] + 80044c8: 4a4b ldr r2, [pc, #300] ; (80045f8 ) + 80044ca: 6812 ldr r2, [r2, #0] + 80044cc: 2101 movs r1, #1 + 80044ce: 4618 mov r0, r3 + 80044d0: f7fd ffa0 bl 8002414 if(indev_reset_check(proc)) return; - 8004540: 6878 ldr r0, [r7, #4] - 8004542: f000 fb7d bl 8004c40 - 8004546: 4603 mov r3, r0 - 8004548: 2b00 cmp r3, #0 - 800454a: f040 80f6 bne.w 800473a + 80044d4: 6878 ldr r0, [r7, #4] + 80044d6: f000 fb7d bl 8004bd4 + 80044da: 4603 mov r3, r0 + 80044dc: 2b00 cmp r3, #0 + 80044de: f040 80f6 bne.w 80046ce if(indev_act->proc.wait_until_release) return; - 800454e: 4b45 ldr r3, [pc, #276] ; (8004664 ) - 8004550: 681b ldr r3, [r3, #0] - 8004552: 795b ldrb r3, [r3, #5] - 8004554: f003 0308 and.w r3, r3, #8 - 8004558: b2db uxtb r3, r3 - 800455a: 2b00 cmp r3, #0 - 800455c: f040 80ef bne.w 800473e + 80044e2: 4b45 ldr r3, [pc, #276] ; (80045f8 ) + 80044e4: 681b ldr r3, [r3, #0] + 80044e6: 795b ldrb r3, [r3, #5] + 80044e8: f003 0308 and.w r3, r3, #8 + 80044ec: b2db uxtb r3, r3 + 80044ee: 2b00 cmp r3, #0 + 80044f0: f040 80ef bne.w 80046d2 /*Handle focus*/ indev_click_focus(&indev_act->proc); - 8004560: 4b40 ldr r3, [pc, #256] ; (8004664 ) - 8004562: 681b ldr r3, [r3, #0] - 8004564: 3304 adds r3, #4 - 8004566: 4618 mov r0, r3 - 8004568: f000 f9c4 bl 80048f4 + 80044f4: 4b40 ldr r3, [pc, #256] ; (80045f8 ) + 80044f6: 681b ldr r3, [r3, #0] + 80044f8: 3304 adds r3, #4 + 80044fa: 4618 mov r0, r3 + 80044fc: f000 f9c4 bl 8004888 if(indev_reset_check(proc)) return; - 800456c: 6878 ldr r0, [r7, #4] - 800456e: f000 fb67 bl 8004c40 - 8004572: 4603 mov r3, r0 - 8004574: 2b00 cmp r3, #0 - 8004576: f040 80e4 bne.w 8004742 + 8004500: 6878 ldr r0, [r7, #4] + 8004502: f000 fb67 bl 8004bd4 + 8004506: 4603 mov r3, r0 + 8004508: 2b00 cmp r3, #0 + 800450a: f040 80e4 bne.w 80046d6 } } /*Calculate the vector and apply a low pass filter: new value = 0.5 * old_value + 0.5 * new_value*/ proc->types.pointer.vect.x = proc->types.pointer.act_point.x - proc->types.pointer.last_point.x; - 800457a: 687b ldr r3, [r7, #4] - 800457c: f9b3 3004 ldrsh.w r3, [r3, #4] - 8004580: b29a uxth r2, r3 - 8004582: 687b ldr r3, [r7, #4] - 8004584: f9b3 3008 ldrsh.w r3, [r3, #8] - 8004588: b29b uxth r3, r3 - 800458a: 1ad3 subs r3, r2, r3 - 800458c: b29b uxth r3, r3 - 800458e: b21a sxth r2, r3 - 8004590: 687b ldr r3, [r7, #4] - 8004592: 821a strh r2, [r3, #16] + 800450e: 687b ldr r3, [r7, #4] + 8004510: f9b3 3004 ldrsh.w r3, [r3, #4] + 8004514: b29a uxth r2, r3 + 8004516: 687b ldr r3, [r7, #4] + 8004518: f9b3 3008 ldrsh.w r3, [r3, #8] + 800451c: b29b uxth r3, r3 + 800451e: 1ad3 subs r3, r2, r3 + 8004520: b29b uxth r3, r3 + 8004522: b21a sxth r2, r3 + 8004524: 687b ldr r3, [r7, #4] + 8004526: 821a strh r2, [r3, #16] proc->types.pointer.vect.y = proc->types.pointer.act_point.y - proc->types.pointer.last_point.y; - 8004594: 687b ldr r3, [r7, #4] - 8004596: f9b3 3006 ldrsh.w r3, [r3, #6] - 800459a: b29a uxth r2, r3 - 800459c: 687b ldr r3, [r7, #4] - 800459e: f9b3 300a ldrsh.w r3, [r3, #10] - 80045a2: b29b uxth r3, r3 - 80045a4: 1ad3 subs r3, r2, r3 - 80045a6: b29b uxth r3, r3 - 80045a8: b21a sxth r2, r3 - 80045aa: 687b ldr r3, [r7, #4] - 80045ac: 825a strh r2, [r3, #18] + 8004528: 687b ldr r3, [r7, #4] + 800452a: f9b3 3006 ldrsh.w r3, [r3, #6] + 800452e: b29a uxth r2, r3 + 8004530: 687b ldr r3, [r7, #4] + 8004532: f9b3 300a ldrsh.w r3, [r3, #10] + 8004536: b29b uxth r3, r3 + 8004538: 1ad3 subs r3, r2, r3 + 800453a: b29b uxth r3, r3 + 800453c: b21a sxth r2, r3 + 800453e: 687b ldr r3, [r7, #4] + 8004540: 825a strh r2, [r3, #18] proc->types.pointer.scroll_throw_vect.x = (proc->types.pointer.scroll_throw_vect.x * 4) >> 3; - 80045ae: 687b ldr r3, [r7, #4] - 80045b0: f9b3 3018 ldrsh.w r3, [r3, #24] - 80045b4: 009b lsls r3, r3, #2 - 80045b6: 10db asrs r3, r3, #3 - 80045b8: b21a sxth r2, r3 - 80045ba: 687b ldr r3, [r7, #4] - 80045bc: 831a strh r2, [r3, #24] + 8004542: 687b ldr r3, [r7, #4] + 8004544: f9b3 3018 ldrsh.w r3, [r3, #24] + 8004548: 009b lsls r3, r3, #2 + 800454a: 10db asrs r3, r3, #3 + 800454c: b21a sxth r2, r3 + 800454e: 687b ldr r3, [r7, #4] + 8004550: 831a strh r2, [r3, #24] proc->types.pointer.scroll_throw_vect.y = (proc->types.pointer.scroll_throw_vect.y * 4) >> 3; - 80045be: 687b ldr r3, [r7, #4] - 80045c0: f9b3 301a ldrsh.w r3, [r3, #26] - 80045c4: 009b lsls r3, r3, #2 - 80045c6: 10db asrs r3, r3, #3 - 80045c8: b21a sxth r2, r3 - 80045ca: 687b ldr r3, [r7, #4] - 80045cc: 835a strh r2, [r3, #26] + 8004552: 687b ldr r3, [r7, #4] + 8004554: f9b3 301a ldrsh.w r3, [r3, #26] + 8004558: 009b lsls r3, r3, #2 + 800455a: 10db asrs r3, r3, #3 + 800455c: b21a sxth r2, r3 + 800455e: 687b ldr r3, [r7, #4] + 8004560: 835a strh r2, [r3, #26] proc->types.pointer.scroll_throw_vect.x += (proc->types.pointer.vect.x * 4) >> 3; - 80045ce: 687b ldr r3, [r7, #4] - 80045d0: f9b3 3018 ldrsh.w r3, [r3, #24] - 80045d4: b29a uxth r2, r3 - 80045d6: 687b ldr r3, [r7, #4] - 80045d8: f9b3 3010 ldrsh.w r3, [r3, #16] - 80045dc: 009b lsls r3, r3, #2 - 80045de: 10db asrs r3, r3, #3 - 80045e0: b29b uxth r3, r3 - 80045e2: 4413 add r3, r2 - 80045e4: b29b uxth r3, r3 - 80045e6: b21a sxth r2, r3 - 80045e8: 687b ldr r3, [r7, #4] - 80045ea: 831a strh r2, [r3, #24] + 8004562: 687b ldr r3, [r7, #4] + 8004564: f9b3 3018 ldrsh.w r3, [r3, #24] + 8004568: b29a uxth r2, r3 + 800456a: 687b ldr r3, [r7, #4] + 800456c: f9b3 3010 ldrsh.w r3, [r3, #16] + 8004570: 009b lsls r3, r3, #2 + 8004572: 10db asrs r3, r3, #3 + 8004574: b29b uxth r3, r3 + 8004576: 4413 add r3, r2 + 8004578: b29b uxth r3, r3 + 800457a: b21a sxth r2, r3 + 800457c: 687b ldr r3, [r7, #4] + 800457e: 831a strh r2, [r3, #24] proc->types.pointer.scroll_throw_vect.y += (proc->types.pointer.vect.y * 4) >> 3; - 80045ec: 687b ldr r3, [r7, #4] - 80045ee: f9b3 301a ldrsh.w r3, [r3, #26] - 80045f2: b29a uxth r2, r3 - 80045f4: 687b ldr r3, [r7, #4] - 80045f6: f9b3 3012 ldrsh.w r3, [r3, #18] - 80045fa: 009b lsls r3, r3, #2 - 80045fc: 10db asrs r3, r3, #3 - 80045fe: b29b uxth r3, r3 - 8004600: 4413 add r3, r2 - 8004602: b29b uxth r3, r3 - 8004604: b21a sxth r2, r3 - 8004606: 687b ldr r3, [r7, #4] - 8004608: 835a strh r2, [r3, #26] + 8004580: 687b ldr r3, [r7, #4] + 8004582: f9b3 301a ldrsh.w r3, [r3, #26] + 8004586: b29a uxth r2, r3 + 8004588: 687b ldr r3, [r7, #4] + 800458a: f9b3 3012 ldrsh.w r3, [r3, #18] + 800458e: 009b lsls r3, r3, #2 + 8004590: 10db asrs r3, r3, #3 + 8004592: b29b uxth r3, r3 + 8004594: 4413 add r3, r2 + 8004596: b29b uxth r3, r3 + 8004598: b21a sxth r2, r3 + 800459a: 687b ldr r3, [r7, #4] + 800459c: 835a strh r2, [r3, #26] proc->types.pointer.scroll_throw_vect_ori = proc->types.pointer.scroll_throw_vect; - 800460a: 687b ldr r3, [r7, #4] - 800460c: 687a ldr r2, [r7, #4] - 800460e: 6992 ldr r2, [r2, #24] - 8004610: 61da str r2, [r3, #28] + 800459e: 687b ldr r3, [r7, #4] + 80045a0: 687a ldr r2, [r7, #4] + 80045a2: 6992 ldr r2, [r2, #24] + 80045a4: 61da str r2, [r3, #28] if(indev_obj_act) { - 8004612: 4b13 ldr r3, [pc, #76] ; (8004660 ) - 8004614: 681b ldr r3, [r3, #0] - 8004616: 2b00 cmp r3, #0 - 8004618: f000 80a0 beq.w 800475c + 80045a6: 4b13 ldr r3, [pc, #76] ; (80045f4 ) + 80045a8: 681b ldr r3, [r3, #0] + 80045aa: 2b00 cmp r3, #0 + 80045ac: f000 80a0 beq.w 80046f0 lv_event_send(indev_obj_act, LV_EVENT_PRESSING, indev_act); - 800461c: 4b10 ldr r3, [pc, #64] ; (8004660 ) - 800461e: 681b ldr r3, [r3, #0] - 8004620: 4a10 ldr r2, [pc, #64] ; (8004664 ) - 8004622: 6812 ldr r2, [r2, #0] - 8004624: 2102 movs r1, #2 - 8004626: 4618 mov r0, r3 - 8004628: f7fd ff2a bl 8002480 + 80045b0: 4b10 ldr r3, [pc, #64] ; (80045f4 ) + 80045b2: 681b ldr r3, [r3, #0] + 80045b4: 4a10 ldr r2, [pc, #64] ; (80045f8 ) + 80045b6: 6812 ldr r2, [r2, #0] + 80045b8: 2102 movs r1, #2 + 80045ba: 4618 mov r0, r3 + 80045bc: f7fd ff2a bl 8002414 if(indev_reset_check(proc)) return; - 800462c: 6878 ldr r0, [r7, #4] - 800462e: f000 fb07 bl 8004c40 - 8004632: 4603 mov r3, r0 - 8004634: 2b00 cmp r3, #0 - 8004636: f040 8086 bne.w 8004746 + 80045c0: 6878 ldr r0, [r7, #4] + 80045c2: f000 fb07 bl 8004bd4 + 80045c6: 4603 mov r3, r0 + 80045c8: 2b00 cmp r3, #0 + 80045ca: f040 8086 bne.w 80046da if(indev_act->proc.wait_until_release) return; - 800463a: 4b0a ldr r3, [pc, #40] ; (8004664 ) - 800463c: 681b ldr r3, [r3, #0] - 800463e: 795b ldrb r3, [r3, #5] - 8004640: f003 0308 and.w r3, r3, #8 - 8004644: b2db uxtb r3, r3 - 8004646: 2b00 cmp r3, #0 - 8004648: d17f bne.n 800474a + 80045ce: 4b0a ldr r3, [pc, #40] ; (80045f8 ) + 80045d0: 681b ldr r3, [r3, #0] + 80045d2: 795b ldrb r3, [r3, #5] + 80045d4: f003 0308 and.w r3, r3, #8 + 80045d8: b2db uxtb r3, r3 + 80045da: 2b00 cmp r3, #0 + 80045dc: d17f bne.n 80046de _lv_indev_scroll_handler(proc); - 800464a: 6878 ldr r0, [r7, #4] - 800464c: f000 fb90 bl 8004d70 <_lv_indev_scroll_handler> + 80045de: 6878 ldr r0, [r7, #4] + 80045e0: f000 fb90 bl 8004d04 <_lv_indev_scroll_handler> if(indev_reset_check(proc)) return; - 8004650: 6878 ldr r0, [r7, #4] - 8004652: f000 faf5 bl 8004c40 - 8004656: 4603 mov r3, r0 - 8004658: 2b00 cmp r3, #0 - 800465a: d178 bne.n 800474e - 800465c: e004 b.n 8004668 - 800465e: bf00 nop - 8004660: 20001af8 .word 0x20001af8 - 8004664: 20001af4 .word 0x20001af4 + 80045e4: 6878 ldr r0, [r7, #4] + 80045e6: f000 faf5 bl 8004bd4 + 80045ea: 4603 mov r3, r0 + 80045ec: 2b00 cmp r3, #0 + 80045ee: d178 bne.n 80046e2 + 80045f0: e004 b.n 80045fc + 80045f2: bf00 nop + 80045f4: 20001af8 .word 0x20001af8 + 80045f8: 20001af4 .word 0x20001af4 indev_gesture(proc); - 8004668: 6878 ldr r0, [r7, #4] - 800466a: f000 fa0d bl 8004a88 + 80045fc: 6878 ldr r0, [r7, #4] + 80045fe: f000 fa0d bl 8004a1c if(indev_reset_check(proc)) return; - 800466e: 6878 ldr r0, [r7, #4] - 8004670: f000 fae6 bl 8004c40 - 8004674: 4603 mov r3, r0 - 8004676: 2b00 cmp r3, #0 - 8004678: d16b bne.n 8004752 + 8004602: 6878 ldr r0, [r7, #4] + 8004604: f000 fae6 bl 8004bd4 + 8004608: 4603 mov r3, r0 + 800460a: 2b00 cmp r3, #0 + 800460c: d16b bne.n 80046e6 /*If there is no scrolling then check for long press time*/ if(proc->types.pointer.scroll_obj == NULL && proc->long_pr_sent == 0) { - 800467a: 687b ldr r3, [r7, #4] - 800467c: 6a9b ldr r3, [r3, #40] ; 0x28 - 800467e: 2b00 cmp r3, #0 - 8004680: d12a bne.n 80046d8 - 8004682: 687b ldr r3, [r7, #4] - 8004684: 785b ldrb r3, [r3, #1] - 8004686: f003 0301 and.w r3, r3, #1 - 800468a: b2db uxtb r3, r3 - 800468c: 2b00 cmp r3, #0 - 800468e: d123 bne.n 80046d8 + 800460e: 687b ldr r3, [r7, #4] + 8004610: 6a9b ldr r3, [r3, #40] ; 0x28 + 8004612: 2b00 cmp r3, #0 + 8004614: d12a bne.n 800466c + 8004616: 687b ldr r3, [r7, #4] + 8004618: 785b ldrb r3, [r3, #1] + 800461a: f003 0301 and.w r3, r3, #1 + 800461e: b2db uxtb r3, r3 + 8004620: 2b00 cmp r3, #0 + 8004622: d123 bne.n 800466c /*Call the ancestor's event handler about the long press if enough time elapsed*/ if(lv_tick_elaps(proc->pr_timestamp) > indev_act->driver->long_press_time) { - 8004690: 687b ldr r3, [r7, #4] - 8004692: 6c1b ldr r3, [r3, #64] ; 0x40 - 8004694: 4618 mov r0, r3 - 8004696: f02c f8a1 bl 80307dc - 800469a: 4602 mov r2, r0 - 800469c: 4b31 ldr r3, [pc, #196] ; (8004764 ) - 800469e: 681b ldr r3, [r3, #0] - 80046a0: 681b ldr r3, [r3, #0] - 80046a2: 8b9b ldrh r3, [r3, #28] - 80046a4: 429a cmp r2, r3 - 80046a6: d917 bls.n 80046d8 + 8004624: 687b ldr r3, [r7, #4] + 8004626: 6c1b ldr r3, [r3, #64] ; 0x40 + 8004628: 4618 mov r0, r3 + 800462a: f02c f88d bl 8030748 + 800462e: 4602 mov r2, r0 + 8004630: 4b31 ldr r3, [pc, #196] ; (80046f8 ) + 8004632: 681b ldr r3, [r3, #0] + 8004634: 681b ldr r3, [r3, #0] + 8004636: 8b9b ldrh r3, [r3, #28] + 8004638: 429a cmp r2, r3 + 800463a: d917 bls.n 800466c lv_event_send(indev_obj_act, LV_EVENT_LONG_PRESSED, indev_act); - 80046a8: 4b2f ldr r3, [pc, #188] ; (8004768 ) - 80046aa: 681b ldr r3, [r3, #0] - 80046ac: 4a2d ldr r2, [pc, #180] ; (8004764 ) - 80046ae: 6812 ldr r2, [r2, #0] - 80046b0: 2105 movs r1, #5 - 80046b2: 4618 mov r0, r3 - 80046b4: f7fd fee4 bl 8002480 + 800463c: 4b2f ldr r3, [pc, #188] ; (80046fc ) + 800463e: 681b ldr r3, [r3, #0] + 8004640: 4a2d ldr r2, [pc, #180] ; (80046f8 ) + 8004642: 6812 ldr r2, [r2, #0] + 8004644: 2105 movs r1, #5 + 8004646: 4618 mov r0, r3 + 8004648: f7fd fee4 bl 8002414 if(indev_reset_check(proc)) return; - 80046b8: 6878 ldr r0, [r7, #4] - 80046ba: f000 fac1 bl 8004c40 - 80046be: 4603 mov r3, r0 - 80046c0: 2b00 cmp r3, #0 - 80046c2: d148 bne.n 8004756 + 800464c: 6878 ldr r0, [r7, #4] + 800464e: f000 fac1 bl 8004bd4 + 8004652: 4603 mov r3, r0 + 8004654: 2b00 cmp r3, #0 + 8004656: d148 bne.n 80046ea /*Mark the Call the ancestor's event handler sending to do not send it again*/ proc->long_pr_sent = 1; - 80046c4: 687a ldr r2, [r7, #4] - 80046c6: 7853 ldrb r3, [r2, #1] - 80046c8: f043 0301 orr.w r3, r3, #1 - 80046cc: 7053 strb r3, [r2, #1] + 8004658: 687a ldr r2, [r7, #4] + 800465a: 7853 ldrb r3, [r2, #1] + 800465c: f043 0301 orr.w r3, r3, #1 + 8004660: 7053 strb r3, [r2, #1] /*Save the long press time stamp for the long press repeat handler*/ proc->longpr_rep_timestamp = lv_tick_get(); - 80046ce: f02c f86d bl 80307ac - 80046d2: 4602 mov r2, r0 - 80046d4: 687b ldr r3, [r7, #4] - 80046d6: 645a str r2, [r3, #68] ; 0x44 + 8004662: f02c f859 bl 8030718 + 8004666: 4602 mov r2, r0 + 8004668: 687b ldr r3, [r7, #4] + 800466a: 645a str r2, [r3, #68] ; 0x44 } } /*Send long press repeated Call the ancestor's event handler*/ if(proc->types.pointer.scroll_obj == NULL && proc->long_pr_sent == 1) { - 80046d8: 687b ldr r3, [r7, #4] - 80046da: 6a9b ldr r3, [r3, #40] ; 0x28 - 80046dc: 2b00 cmp r3, #0 - 80046de: d13d bne.n 800475c - 80046e0: 687b ldr r3, [r7, #4] - 80046e2: 785b ldrb r3, [r3, #1] - 80046e4: f003 0301 and.w r3, r3, #1 - 80046e8: b2db uxtb r3, r3 - 80046ea: 2b00 cmp r3, #0 - 80046ec: d036 beq.n 800475c + 800466c: 687b ldr r3, [r7, #4] + 800466e: 6a9b ldr r3, [r3, #40] ; 0x28 + 8004670: 2b00 cmp r3, #0 + 8004672: d13d bne.n 80046f0 + 8004674: 687b ldr r3, [r7, #4] + 8004676: 785b ldrb r3, [r3, #1] + 8004678: f003 0301 and.w r3, r3, #1 + 800467c: b2db uxtb r3, r3 + 800467e: 2b00 cmp r3, #0 + 8004680: d036 beq.n 80046f0 /*Call the ancestor's event handler about the long press repeat if enough time elapsed*/ if(lv_tick_elaps(proc->longpr_rep_timestamp) > indev_act->driver->long_press_repeat_time) { - 80046ee: 687b ldr r3, [r7, #4] - 80046f0: 6c5b ldr r3, [r3, #68] ; 0x44 - 80046f2: 4618 mov r0, r3 - 80046f4: f02c f872 bl 80307dc - 80046f8: 4602 mov r2, r0 - 80046fa: 4b1a ldr r3, [pc, #104] ; (8004764 ) - 80046fc: 681b ldr r3, [r3, #0] - 80046fe: 681b ldr r3, [r3, #0] - 8004700: 8bdb ldrh r3, [r3, #30] - 8004702: 429a cmp r2, r3 - 8004704: d92a bls.n 800475c + 8004682: 687b ldr r3, [r7, #4] + 8004684: 6c5b ldr r3, [r3, #68] ; 0x44 + 8004686: 4618 mov r0, r3 + 8004688: f02c f85e bl 8030748 + 800468c: 4602 mov r2, r0 + 800468e: 4b1a ldr r3, [pc, #104] ; (80046f8 ) + 8004690: 681b ldr r3, [r3, #0] + 8004692: 681b ldr r3, [r3, #0] + 8004694: 8bdb ldrh r3, [r3, #30] + 8004696: 429a cmp r2, r3 + 8004698: d92a bls.n 80046f0 lv_event_send(indev_obj_act, LV_EVENT_LONG_PRESSED_REPEAT, indev_act); - 8004706: 4b18 ldr r3, [pc, #96] ; (8004768 ) - 8004708: 681b ldr r3, [r3, #0] - 800470a: 4a16 ldr r2, [pc, #88] ; (8004764 ) - 800470c: 6812 ldr r2, [r2, #0] - 800470e: 2106 movs r1, #6 - 8004710: 4618 mov r0, r3 - 8004712: f7fd feb5 bl 8002480 + 800469a: 4b18 ldr r3, [pc, #96] ; (80046fc ) + 800469c: 681b ldr r3, [r3, #0] + 800469e: 4a16 ldr r2, [pc, #88] ; (80046f8 ) + 80046a0: 6812 ldr r2, [r2, #0] + 80046a2: 2106 movs r1, #6 + 80046a4: 4618 mov r0, r3 + 80046a6: f7fd feb5 bl 8002414 if(indev_reset_check(proc)) return; - 8004716: 6878 ldr r0, [r7, #4] - 8004718: f000 fa92 bl 8004c40 - 800471c: 4603 mov r3, r0 - 800471e: 2b00 cmp r3, #0 - 8004720: d11b bne.n 800475a + 80046aa: 6878 ldr r0, [r7, #4] + 80046ac: f000 fa92 bl 8004bd4 + 80046b0: 4603 mov r3, r0 + 80046b2: 2b00 cmp r3, #0 + 80046b4: d11b bne.n 80046ee proc->longpr_rep_timestamp = lv_tick_get(); - 8004722: f02c f843 bl 80307ac - 8004726: 4602 mov r2, r0 - 8004728: 687b ldr r3, [r7, #4] - 800472a: 645a str r2, [r3, #68] ; 0x44 - 800472c: e016 b.n 800475c + 80046b6: f02c f82f bl 8030718 + 80046ba: 4602 mov r2, r0 + 80046bc: 687b ldr r3, [r7, #4] + 80046be: 645a str r2, [r3, #68] ; 0x44 + 80046c0: e016 b.n 80046f0 if(proc->wait_until_release != 0) return; - 800472e: bf00 nop - 8004730: e014 b.n 800475c + 80046c2: bf00 nop + 80046c4: e014 b.n 80046f0 if(indev_reset_check(proc)) return; - 8004732: bf00 nop - 8004734: e012 b.n 800475c + 80046c6: bf00 nop + 80046c8: e012 b.n 80046f0 if(indev_reset_check(proc)) return; - 8004736: bf00 nop - 8004738: e010 b.n 800475c + 80046ca: bf00 nop + 80046cc: e010 b.n 80046f0 if(indev_reset_check(proc)) return; - 800473a: bf00 nop - 800473c: e00e b.n 800475c + 80046ce: bf00 nop + 80046d0: e00e b.n 80046f0 if(indev_act->proc.wait_until_release) return; - 800473e: bf00 nop - 8004740: e00c b.n 800475c + 80046d2: bf00 nop + 80046d4: e00c b.n 80046f0 if(indev_reset_check(proc)) return; - 8004742: bf00 nop - 8004744: e00a b.n 800475c + 80046d6: bf00 nop + 80046d8: e00a b.n 80046f0 if(indev_reset_check(proc)) return; - 8004746: bf00 nop - 8004748: e008 b.n 800475c + 80046da: bf00 nop + 80046dc: e008 b.n 80046f0 if(indev_act->proc.wait_until_release) return; - 800474a: bf00 nop - 800474c: e006 b.n 800475c + 80046de: bf00 nop + 80046e0: e006 b.n 80046f0 if(indev_reset_check(proc)) return; - 800474e: bf00 nop - 8004750: e004 b.n 800475c + 80046e2: bf00 nop + 80046e4: e004 b.n 80046f0 if(indev_reset_check(proc)) return; - 8004752: bf00 nop - 8004754: e002 b.n 800475c + 80046e6: bf00 nop + 80046e8: e002 b.n 80046f0 if(indev_reset_check(proc)) return; - 8004756: bf00 nop - 8004758: e000 b.n 800475c + 80046ea: bf00 nop + 80046ec: e000 b.n 80046f0 if(indev_reset_check(proc)) return; - 800475a: bf00 nop + 80046ee: bf00 nop } } } } - 800475c: 3718 adds r7, #24 - 800475e: 46bd mov sp, r7 - 8004760: bd80 pop {r7, pc} - 8004762: bf00 nop - 8004764: 20001af4 .word 0x20001af4 - 8004768: 20001af8 .word 0x20001af8 + 80046f0: 3718 adds r7, #24 + 80046f2: 46bd mov sp, r7 + 80046f4: bd80 pop {r7, pc} + 80046f6: bf00 nop + 80046f8: 20001af4 .word 0x20001af4 + 80046fc: 20001af8 .word 0x20001af8 -0800476c : +08004700 : /** * Process the released state of LV_INDEV_TYPE_POINTER input devices * @param proc pointer to an input device 'proc' */ static void indev_proc_release(_lv_indev_proc_t * proc) { - 800476c: b580 push {r7, lr} - 800476e: b084 sub sp, #16 - 8004770: af00 add r7, sp, #0 - 8004772: 6078 str r0, [r7, #4] + 8004700: b580 push {r7, lr} + 8004702: b084 sub sp, #16 + 8004704: af00 add r7, sp, #0 + 8004706: 6078 str r0, [r7, #4] if(proc->wait_until_release != 0) { - 8004774: 687b ldr r3, [r7, #4] - 8004776: 785b ldrb r3, [r3, #1] - 8004778: f003 0308 and.w r3, r3, #8 - 800477c: b2db uxtb r3, r3 - 800477e: 2b00 cmp r3, #0 - 8004780: d010 beq.n 80047a4 + 8004708: 687b ldr r3, [r7, #4] + 800470a: 785b ldrb r3, [r3, #1] + 800470c: f003 0308 and.w r3, r3, #8 + 8004710: b2db uxtb r3, r3 + 8004712: 2b00 cmp r3, #0 + 8004714: d010 beq.n 8004738 proc->types.pointer.act_obj = NULL; - 8004782: 687b ldr r3, [r7, #4] - 8004784: 2200 movs r2, #0 - 8004786: 621a str r2, [r3, #32] + 8004716: 687b ldr r3, [r7, #4] + 8004718: 2200 movs r2, #0 + 800471a: 621a str r2, [r3, #32] proc->types.pointer.last_obj = NULL; - 8004788: 687b ldr r3, [r7, #4] - 800478a: 2200 movs r2, #0 - 800478c: 625a str r2, [r3, #36] ; 0x24 + 800471c: 687b ldr r3, [r7, #4] + 800471e: 2200 movs r2, #0 + 8004720: 625a str r2, [r3, #36] ; 0x24 proc->pr_timestamp = 0; - 800478e: 687b ldr r3, [r7, #4] - 8004790: 2200 movs r2, #0 - 8004792: 641a str r2, [r3, #64] ; 0x40 + 8004722: 687b ldr r3, [r7, #4] + 8004724: 2200 movs r2, #0 + 8004726: 641a str r2, [r3, #64] ; 0x40 proc->longpr_rep_timestamp = 0; - 8004794: 687b ldr r3, [r7, #4] - 8004796: 2200 movs r2, #0 - 8004798: 645a str r2, [r3, #68] ; 0x44 + 8004728: 687b ldr r3, [r7, #4] + 800472a: 2200 movs r2, #0 + 800472c: 645a str r2, [r3, #68] ; 0x44 proc->wait_until_release = 0; - 800479a: 687a ldr r2, [r7, #4] - 800479c: 7853 ldrb r3, [r2, #1] - 800479e: f36f 03c3 bfc r3, #3, #1 - 80047a2: 7053 strb r3, [r2, #1] + 800472e: 687a ldr r2, [r7, #4] + 8004730: 7853 ldrb r3, [r2, #1] + 8004732: f36f 03c3 bfc r3, #3, #1 + 8004736: 7053 strb r3, [r2, #1] } indev_obj_act = proc->types.pointer.act_obj; - 80047a4: 687b ldr r3, [r7, #4] - 80047a6: 6a1b ldr r3, [r3, #32] - 80047a8: 4a2c ldr r2, [pc, #176] ; (800485c ) - 80047aa: 6013 str r3, [r2, #0] + 8004738: 687b ldr r3, [r7, #4] + 800473a: 6a1b ldr r3, [r3, #32] + 800473c: 4a2c ldr r2, [pc, #176] ; (80047f0 ) + 800473e: 6013 str r3, [r2, #0] lv_obj_t * scroll_obj = proc->types.pointer.scroll_obj; - 80047ac: 687b ldr r3, [r7, #4] - 80047ae: 6a9b ldr r3, [r3, #40] ; 0x28 - 80047b0: 60fb str r3, [r7, #12] + 8004740: 687b ldr r3, [r7, #4] + 8004742: 6a9b ldr r3, [r3, #40] ; 0x28 + 8004744: 60fb str r3, [r7, #12] /*Forget the act obj and send a released Call the ancestor's event handler*/ if(indev_obj_act) { - 80047b2: 4b2a ldr r3, [pc, #168] ; (800485c ) - 80047b4: 681b ldr r3, [r3, #0] - 80047b6: 2b00 cmp r3, #0 - 80047b8: d03c beq.n 8004834 + 8004746: 4b2a ldr r3, [pc, #168] ; (80047f0 ) + 8004748: 681b ldr r3, [r3, #0] + 800474a: 2b00 cmp r3, #0 + 800474c: d03c beq.n 80047c8 LV_LOG_INFO("released"); /*Send RELEASE Call the ancestor's event handler and event*/ lv_event_send(indev_obj_act, LV_EVENT_RELEASED, indev_act); - 80047ba: 4b28 ldr r3, [pc, #160] ; (800485c ) - 80047bc: 681b ldr r3, [r3, #0] - 80047be: 4a28 ldr r2, [pc, #160] ; (8004860 ) - 80047c0: 6812 ldr r2, [r2, #0] - 80047c2: 2108 movs r1, #8 - 80047c4: 4618 mov r0, r3 - 80047c6: f7fd fe5b bl 8002480 + 800474e: 4b28 ldr r3, [pc, #160] ; (80047f0 ) + 8004750: 681b ldr r3, [r3, #0] + 8004752: 4a28 ldr r2, [pc, #160] ; (80047f4 ) + 8004754: 6812 ldr r2, [r2, #0] + 8004756: 2108 movs r1, #8 + 8004758: 4618 mov r0, r3 + 800475a: f7fd fe5b bl 8002414 if(indev_reset_check(proc)) return; - 80047ca: 6878 ldr r0, [r7, #4] - 80047cc: f000 fa38 bl 8004c40 - 80047d0: 4603 mov r3, r0 - 80047d2: 2b00 cmp r3, #0 - 80047d4: d13a bne.n 800484c + 800475e: 6878 ldr r0, [r7, #4] + 8004760: f000 fa38 bl 8004bd4 + 8004764: 4603 mov r3, r0 + 8004766: 2b00 cmp r3, #0 + 8004768: d13a bne.n 80047e0 /*Send CLICK if no scrolling*/ if(scroll_obj == NULL) { - 80047d6: 68fb ldr r3, [r7, #12] - 80047d8: 2b00 cmp r3, #0 - 80047da: d122 bne.n 8004822 + 800476a: 68fb ldr r3, [r7, #12] + 800476c: 2b00 cmp r3, #0 + 800476e: d122 bne.n 80047b6 if(proc->long_pr_sent == 0) { - 80047dc: 687b ldr r3, [r7, #4] - 80047de: 785b ldrb r3, [r3, #1] - 80047e0: f003 0301 and.w r3, r3, #1 - 80047e4: b2db uxtb r3, r3 - 80047e6: 2b00 cmp r3, #0 - 80047e8: d10d bne.n 8004806 + 8004770: 687b ldr r3, [r7, #4] + 8004772: 785b ldrb r3, [r3, #1] + 8004774: f003 0301 and.w r3, r3, #1 + 8004778: b2db uxtb r3, r3 + 800477a: 2b00 cmp r3, #0 + 800477c: d10d bne.n 800479a lv_event_send(indev_obj_act, LV_EVENT_SHORT_CLICKED, indev_act); - 80047ea: 4b1c ldr r3, [pc, #112] ; (800485c ) - 80047ec: 681b ldr r3, [r3, #0] - 80047ee: 4a1c ldr r2, [pc, #112] ; (8004860 ) - 80047f0: 6812 ldr r2, [r2, #0] - 80047f2: 2104 movs r1, #4 - 80047f4: 4618 mov r0, r3 - 80047f6: f7fd fe43 bl 8002480 + 800477e: 4b1c ldr r3, [pc, #112] ; (80047f0 ) + 8004780: 681b ldr r3, [r3, #0] + 8004782: 4a1c ldr r2, [pc, #112] ; (80047f4 ) + 8004784: 6812 ldr r2, [r2, #0] + 8004786: 2104 movs r1, #4 + 8004788: 4618 mov r0, r3 + 800478a: f7fd fe43 bl 8002414 if(indev_reset_check(proc)) return; - 80047fa: 6878 ldr r0, [r7, #4] - 80047fc: f000 fa20 bl 8004c40 - 8004800: 4603 mov r3, r0 - 8004802: 2b00 cmp r3, #0 - 8004804: d124 bne.n 8004850 + 800478e: 6878 ldr r0, [r7, #4] + 8004790: f000 fa20 bl 8004bd4 + 8004794: 4603 mov r3, r0 + 8004796: 2b00 cmp r3, #0 + 8004798: d124 bne.n 80047e4 } lv_event_send(indev_obj_act, LV_EVENT_CLICKED, indev_act); - 8004806: 4b15 ldr r3, [pc, #84] ; (800485c ) - 8004808: 681b ldr r3, [r3, #0] - 800480a: 4a15 ldr r2, [pc, #84] ; (8004860 ) - 800480c: 6812 ldr r2, [r2, #0] - 800480e: 2107 movs r1, #7 - 8004810: 4618 mov r0, r3 - 8004812: f7fd fe35 bl 8002480 + 800479a: 4b15 ldr r3, [pc, #84] ; (80047f0 ) + 800479c: 681b ldr r3, [r3, #0] + 800479e: 4a15 ldr r2, [pc, #84] ; (80047f4 ) + 80047a0: 6812 ldr r2, [r2, #0] + 80047a2: 2107 movs r1, #7 + 80047a4: 4618 mov r0, r3 + 80047a6: f7fd fe35 bl 8002414 if(indev_reset_check(proc)) return; - 8004816: 6878 ldr r0, [r7, #4] - 8004818: f000 fa12 bl 8004c40 - 800481c: 4603 mov r3, r0 - 800481e: 2b00 cmp r3, #0 - 8004820: d118 bne.n 8004854 + 80047aa: 6878 ldr r0, [r7, #4] + 80047ac: f000 fa12 bl 8004bd4 + 80047b0: 4603 mov r3, r0 + 80047b2: 2b00 cmp r3, #0 + 80047b4: d118 bne.n 80047e8 } proc->types.pointer.act_obj = NULL; - 8004822: 687b ldr r3, [r7, #4] - 8004824: 2200 movs r2, #0 - 8004826: 621a str r2, [r3, #32] + 80047b6: 687b ldr r3, [r7, #4] + 80047b8: 2200 movs r2, #0 + 80047ba: 621a str r2, [r3, #32] proc->pr_timestamp = 0; - 8004828: 687b ldr r3, [r7, #4] - 800482a: 2200 movs r2, #0 - 800482c: 641a str r2, [r3, #64] ; 0x40 + 80047bc: 687b ldr r3, [r7, #4] + 80047be: 2200 movs r2, #0 + 80047c0: 641a str r2, [r3, #64] ; 0x40 proc->longpr_rep_timestamp = 0; - 800482e: 687b ldr r3, [r7, #4] - 8004830: 2200 movs r2, #0 - 8004832: 645a str r2, [r3, #68] ; 0x44 + 80047c2: 687b ldr r3, [r7, #4] + 80047c4: 2200 movs r2, #0 + 80047c6: 645a str r2, [r3, #68] ; 0x44 } /*The reset can be set in the Call the ancestor's event handler function. * In case of reset query ignore the remaining parts.*/ if(scroll_obj) { - 8004834: 68fb ldr r3, [r7, #12] - 8004836: 2b00 cmp r3, #0 - 8004838: d00d beq.n 8004856 + 80047c8: 68fb ldr r3, [r7, #12] + 80047ca: 2b00 cmp r3, #0 + 80047cc: d00d beq.n 80047ea _lv_indev_scroll_throw_handler(proc); - 800483a: 6878 ldr r0, [r7, #4] - 800483c: f000 fb7c bl 8004f38 <_lv_indev_scroll_throw_handler> + 80047ce: 6878 ldr r0, [r7, #4] + 80047d0: f000 fb7c bl 8004ecc <_lv_indev_scroll_throw_handler> if(indev_reset_check(proc)) return; - 8004840: 6878 ldr r0, [r7, #4] - 8004842: f000 f9fd bl 8004c40 - 8004846: 4603 mov r3, r0 - 8004848: 2b00 cmp r3, #0 - 800484a: e004 b.n 8004856 + 80047d4: 6878 ldr r0, [r7, #4] + 80047d6: f000 f9fd bl 8004bd4 + 80047da: 4603 mov r3, r0 + 80047dc: 2b00 cmp r3, #0 + 80047de: e004 b.n 80047ea if(indev_reset_check(proc)) return; - 800484c: bf00 nop - 800484e: e002 b.n 8004856 + 80047e0: bf00 nop + 80047e2: e002 b.n 80047ea if(indev_reset_check(proc)) return; - 8004850: bf00 nop - 8004852: e000 b.n 8004856 + 80047e4: bf00 nop + 80047e6: e000 b.n 80047ea if(indev_reset_check(proc)) return; - 8004854: bf00 nop + 80047e8: bf00 nop } } - 8004856: 3710 adds r7, #16 - 8004858: 46bd mov sp, r7 - 800485a: bd80 pop {r7, pc} - 800485c: 20001af8 .word 0x20001af8 - 8004860: 20001af4 .word 0x20001af4 + 80047ea: 3710 adds r7, #16 + 80047ec: 46bd mov sp, r7 + 80047ee: bd80 pop {r7, pc} + 80047f0: 20001af8 .word 0x20001af8 + 80047f4: 20001af4 .word 0x20001af4 -08004864 : +080047f8 : * @param data pointer to the data read from the input device * Reset input device if a reset query has been sent to it * @param indev pointer to an input device */ static void indev_proc_reset_query_handler(lv_indev_t * indev) { - 8004864: b480 push {r7} - 8004866: b083 sub sp, #12 - 8004868: af00 add r7, sp, #0 - 800486a: 6078 str r0, [r7, #4] + 80047f8: b480 push {r7} + 80047fa: b083 sub sp, #12 + 80047fc: af00 add r7, sp, #0 + 80047fe: 6078 str r0, [r7, #4] if(indev->proc.reset_query) { - 800486c: 687b ldr r3, [r7, #4] - 800486e: 795b ldrb r3, [r3, #5] - 8004870: f003 0302 and.w r3, r3, #2 - 8004874: b2db uxtb r3, r3 - 8004876: 2b00 cmp r3, #0 - 8004878: d034 beq.n 80048e4 + 8004800: 687b ldr r3, [r7, #4] + 8004802: 795b ldrb r3, [r3, #5] + 8004804: f003 0302 and.w r3, r3, #2 + 8004808: b2db uxtb r3, r3 + 800480a: 2b00 cmp r3, #0 + 800480c: d034 beq.n 8004878 indev->proc.types.pointer.act_obj = NULL; - 800487a: 687b ldr r3, [r7, #4] - 800487c: 2200 movs r2, #0 - 800487e: 625a str r2, [r3, #36] ; 0x24 + 800480e: 687b ldr r3, [r7, #4] + 8004810: 2200 movs r2, #0 + 8004812: 625a str r2, [r3, #36] ; 0x24 indev->proc.types.pointer.last_obj = NULL; - 8004880: 687b ldr r3, [r7, #4] - 8004882: 2200 movs r2, #0 - 8004884: 629a str r2, [r3, #40] ; 0x28 + 8004814: 687b ldr r3, [r7, #4] + 8004816: 2200 movs r2, #0 + 8004818: 629a str r2, [r3, #40] ; 0x28 indev->proc.types.pointer.scroll_obj = NULL; - 8004886: 687b ldr r3, [r7, #4] - 8004888: 2200 movs r2, #0 - 800488a: 62da str r2, [r3, #44] ; 0x2c + 800481a: 687b ldr r3, [r7, #4] + 800481c: 2200 movs r2, #0 + 800481e: 62da str r2, [r3, #44] ; 0x2c indev->proc.long_pr_sent = 0; - 800488c: 687a ldr r2, [r7, #4] - 800488e: 7953 ldrb r3, [r2, #5] - 8004890: f36f 0300 bfc r3, #0, #1 - 8004894: 7153 strb r3, [r2, #5] + 8004820: 687a ldr r2, [r7, #4] + 8004822: 7953 ldrb r3, [r2, #5] + 8004824: f36f 0300 bfc r3, #0, #1 + 8004828: 7153 strb r3, [r2, #5] indev->proc.pr_timestamp = 0; - 8004896: 687b ldr r3, [r7, #4] - 8004898: 2200 movs r2, #0 - 800489a: 645a str r2, [r3, #68] ; 0x44 + 800482a: 687b ldr r3, [r7, #4] + 800482c: 2200 movs r2, #0 + 800482e: 645a str r2, [r3, #68] ; 0x44 indev->proc.longpr_rep_timestamp = 0; - 800489c: 687b ldr r3, [r7, #4] - 800489e: 2200 movs r2, #0 - 80048a0: 649a str r2, [r3, #72] ; 0x48 + 8004830: 687b ldr r3, [r7, #4] + 8004832: 2200 movs r2, #0 + 8004834: 649a str r2, [r3, #72] ; 0x48 indev->proc.types.pointer.scroll_sum.x = 0; - 80048a2: 687b ldr r3, [r7, #4] - 80048a4: 2200 movs r2, #0 - 80048a6: 831a strh r2, [r3, #24] + 8004836: 687b ldr r3, [r7, #4] + 8004838: 2200 movs r2, #0 + 800483a: 831a strh r2, [r3, #24] indev->proc.types.pointer.scroll_sum.y = 0; - 80048a8: 687b ldr r3, [r7, #4] - 80048aa: 2200 movs r2, #0 - 80048ac: 835a strh r2, [r3, #26] + 800483c: 687b ldr r3, [r7, #4] + 800483e: 2200 movs r2, #0 + 8004840: 835a strh r2, [r3, #26] indev->proc.types.pointer.scroll_dir = LV_DIR_NONE; - 80048ae: 687a ldr r2, [r7, #4] - 80048b0: f892 3040 ldrb.w r3, [r2, #64] ; 0x40 - 80048b4: f36f 0303 bfc r3, #0, #4 - 80048b8: f882 3040 strb.w r3, [r2, #64] ; 0x40 + 8004842: 687a ldr r2, [r7, #4] + 8004844: f892 3040 ldrb.w r3, [r2, #64] ; 0x40 + 8004848: f36f 0303 bfc r3, #0, #4 + 800484c: f882 3040 strb.w r3, [r2, #64] ; 0x40 indev->proc.types.pointer.scroll_throw_vect.x = 0; - 80048bc: 687b ldr r3, [r7, #4] - 80048be: 2200 movs r2, #0 - 80048c0: 839a strh r2, [r3, #28] + 8004850: 687b ldr r3, [r7, #4] + 8004852: 2200 movs r2, #0 + 8004854: 839a strh r2, [r3, #28] indev->proc.types.pointer.scroll_throw_vect.y = 0; - 80048c2: 687b ldr r3, [r7, #4] - 80048c4: 2200 movs r2, #0 - 80048c6: 83da strh r2, [r3, #30] + 8004856: 687b ldr r3, [r7, #4] + 8004858: 2200 movs r2, #0 + 800485a: 83da strh r2, [r3, #30] indev->proc.types.pointer.gesture_sum.x = 0; - 80048c8: 687b ldr r3, [r7, #4] - 80048ca: 2200 movs r2, #0 - 80048cc: 879a strh r2, [r3, #60] ; 0x3c + 800485c: 687b ldr r3, [r7, #4] + 800485e: 2200 movs r2, #0 + 8004860: 879a strh r2, [r3, #60] ; 0x3c indev->proc.types.pointer.gesture_sum.y = 0; - 80048ce: 687b ldr r3, [r7, #4] - 80048d0: 2200 movs r2, #0 - 80048d2: 87da strh r2, [r3, #62] ; 0x3e + 8004862: 687b ldr r3, [r7, #4] + 8004864: 2200 movs r2, #0 + 8004866: 87da strh r2, [r3, #62] ; 0x3e indev->proc.reset_query = 0; - 80048d4: 687a ldr r2, [r7, #4] - 80048d6: 7953 ldrb r3, [r2, #5] - 80048d8: f36f 0341 bfc r3, #1, #1 - 80048dc: 7153 strb r3, [r2, #5] + 8004868: 687a ldr r2, [r7, #4] + 800486a: 7953 ldrb r3, [r2, #5] + 800486c: f36f 0341 bfc r3, #1, #1 + 8004870: 7153 strb r3, [r2, #5] indev_obj_act = NULL; - 80048de: 4b04 ldr r3, [pc, #16] ; (80048f0 ) - 80048e0: 2200 movs r2, #0 - 80048e2: 601a str r2, [r3, #0] + 8004872: 4b04 ldr r3, [pc, #16] ; (8004884 ) + 8004874: 2200 movs r2, #0 + 8004876: 601a str r2, [r3, #0] } } - 80048e4: bf00 nop - 80048e6: 370c adds r7, #12 - 80048e8: 46bd mov sp, r7 - 80048ea: bc80 pop {r7} - 80048ec: 4770 bx lr - 80048ee: bf00 nop - 80048f0: 20001af8 .word 0x20001af8 + 8004878: bf00 nop + 800487a: 370c adds r7, #12 + 800487c: 46bd mov sp, r7 + 800487e: bc80 pop {r7} + 8004880: 4770 bx lr + 8004882: bf00 nop + 8004884: 20001af8 .word 0x20001af8 -080048f4 : +08004888 : /** * Handle focus/defocus on click for POINTER input devices * @param proc pointer to the state of the indev */ static void indev_click_focus(_lv_indev_proc_t * proc) { - 80048f4: b580 push {r7, lr} - 80048f6: b084 sub sp, #16 - 80048f8: af00 add r7, sp, #0 - 80048fa: 6078 str r0, [r7, #4] + 8004888: b580 push {r7, lr} + 800488a: b084 sub sp, #16 + 800488c: af00 add r7, sp, #0 + 800488e: 6078 str r0, [r7, #4] /*Handle click focus*/ if(lv_obj_has_flag(indev_obj_act, LV_OBJ_FLAG_CLICK_FOCUSABLE) == false || - 80048fc: 4b60 ldr r3, [pc, #384] ; (8004a80 ) - 80048fe: 681b ldr r3, [r3, #0] - 8004900: 2104 movs r1, #4 - 8004902: 4618 mov r0, r3 - 8004904: f001 ff3d bl 8006782 - 8004908: 4603 mov r3, r0 - 800490a: f083 0301 eor.w r3, r3, #1 - 800490e: b2db uxtb r3, r3 - 8004910: 2b00 cmp r3, #0 - 8004912: f040 80aa bne.w 8004a6a + 8004890: 4b60 ldr r3, [pc, #384] ; (8004a14 ) + 8004892: 681b ldr r3, [r3, #0] + 8004894: 2104 movs r1, #4 + 8004896: 4618 mov r0, r3 + 8004898: f001 ff3d bl 8006716 + 800489c: 4603 mov r3, r0 + 800489e: f083 0301 eor.w r3, r3, #1 + 80048a2: b2db uxtb r3, r3 + 80048a4: 2b00 cmp r3, #0 + 80048a6: f040 80aa bne.w 80049fe proc->types.pointer.last_pressed == indev_obj_act) { - 8004916: 687b ldr r3, [r7, #4] - 8004918: 6ada ldr r2, [r3, #44] ; 0x2c - 800491a: 4b59 ldr r3, [pc, #356] ; (8004a80 ) - 800491c: 681b ldr r3, [r3, #0] + 80048aa: 687b ldr r3, [r7, #4] + 80048ac: 6ada ldr r2, [r3, #44] ; 0x2c + 80048ae: 4b59 ldr r3, [pc, #356] ; (8004a14 ) + 80048b0: 681b ldr r3, [r3, #0] if(lv_obj_has_flag(indev_obj_act, LV_OBJ_FLAG_CLICK_FOCUSABLE) == false || - 800491e: 429a cmp r2, r3 - 8004920: f000 80a3 beq.w 8004a6a + 80048b2: 429a cmp r2, r3 + 80048b4: f000 80a3 beq.w 80049fe return; } lv_group_t * g_act = lv_obj_get_group(indev_obj_act); - 8004924: 4b56 ldr r3, [pc, #344] ; (8004a80 ) - 8004926: 681b ldr r3, [r3, #0] - 8004928: 4618 mov r0, r3 - 800492a: f001 ff71 bl 8006810 - 800492e: 60f8 str r0, [r7, #12] + 80048b8: 4b56 ldr r3, [pc, #344] ; (8004a14 ) + 80048ba: 681b ldr r3, [r3, #0] + 80048bc: 4618 mov r0, r3 + 80048be: f001 ff71 bl 80067a4 + 80048c2: 60f8 str r0, [r7, #12] lv_group_t * g_prev = proc->types.pointer.last_pressed ? lv_obj_get_group(proc->types.pointer.last_pressed) : NULL; - 8004930: 687b ldr r3, [r7, #4] - 8004932: 6adb ldr r3, [r3, #44] ; 0x2c - 8004934: 2b00 cmp r3, #0 - 8004936: d006 beq.n 8004946 - 8004938: 687b ldr r3, [r7, #4] - 800493a: 6adb ldr r3, [r3, #44] ; 0x2c - 800493c: 4618 mov r0, r3 - 800493e: f001 ff67 bl 8006810 - 8004942: 4603 mov r3, r0 - 8004944: e000 b.n 8004948 - 8004946: 2300 movs r3, #0 - 8004948: 60bb str r3, [r7, #8] + 80048c4: 687b ldr r3, [r7, #4] + 80048c6: 6adb ldr r3, [r3, #44] ; 0x2c + 80048c8: 2b00 cmp r3, #0 + 80048ca: d006 beq.n 80048da + 80048cc: 687b ldr r3, [r7, #4] + 80048ce: 6adb ldr r3, [r3, #44] ; 0x2c + 80048d0: 4618 mov r0, r3 + 80048d2: f001 ff67 bl 80067a4 + 80048d6: 4603 mov r3, r0 + 80048d8: e000 b.n 80048dc + 80048da: 2300 movs r3, #0 + 80048dc: 60bb str r3, [r7, #8] /*If both the last and act. obj. are in the same group (or have no group)*/ if(g_act == g_prev) { - 800494a: 68fa ldr r2, [r7, #12] - 800494c: 68bb ldr r3, [r7, #8] - 800494e: 429a cmp r2, r3 - 8004950: d12f bne.n 80049b2 + 80048de: 68fa ldr r2, [r7, #12] + 80048e0: 68bb ldr r3, [r7, #8] + 80048e2: 429a cmp r2, r3 + 80048e4: d12f bne.n 8004946 /*The objects are in a group*/ if(g_act) { - 8004952: 68fb ldr r3, [r7, #12] - 8004954: 2b00 cmp r3, #0 - 8004956: d00b beq.n 8004970 + 80048e6: 68fb ldr r3, [r7, #12] + 80048e8: 2b00 cmp r3, #0 + 80048ea: d00b beq.n 8004904 lv_group_focus_obj(indev_obj_act); - 8004958: 4b49 ldr r3, [pc, #292] ; (8004a80 ) - 800495a: 681b ldr r3, [r3, #0] - 800495c: 4618 mov r0, r3 - 800495e: f7fe f9b0 bl 8002cc2 + 80048ec: 4b49 ldr r3, [pc, #292] ; (8004a14 ) + 80048ee: 681b ldr r3, [r3, #0] + 80048f0: 4618 mov r0, r3 + 80048f2: f7fe f9b0 bl 8002c56 if(indev_reset_check(proc)) return; - 8004962: 6878 ldr r0, [r7, #4] - 8004964: f000 f96c bl 8004c40 - 8004968: 4603 mov r3, r0 - 800496a: 2b00 cmp r3, #0 - 800496c: d078 beq.n 8004a60 - 800496e: e083 b.n 8004a78 + 80048f6: 6878 ldr r0, [r7, #4] + 80048f8: f000 f96c bl 8004bd4 + 80048fc: 4603 mov r3, r0 + 80048fe: 2b00 cmp r3, #0 + 8004900: d078 beq.n 80049f4 + 8004902: e083 b.n 8004a0c } /*The object are not in group*/ else { if(proc->types.pointer.last_pressed) { - 8004970: 687b ldr r3, [r7, #4] - 8004972: 6adb ldr r3, [r3, #44] ; 0x2c - 8004974: 2b00 cmp r3, #0 - 8004976: d00d beq.n 8004994 + 8004904: 687b ldr r3, [r7, #4] + 8004906: 6adb ldr r3, [r3, #44] ; 0x2c + 8004908: 2b00 cmp r3, #0 + 800490a: d00d beq.n 8004928 lv_event_send(proc->types.pointer.last_pressed, LV_EVENT_DEFOCUSED, indev_act); - 8004978: 687b ldr r3, [r7, #4] - 800497a: 6adb ldr r3, [r3, #44] ; 0x2c - 800497c: 4a41 ldr r2, [pc, #260] ; (8004a84 ) - 800497e: 6812 ldr r2, [r2, #0] - 8004980: 210f movs r1, #15 - 8004982: 4618 mov r0, r3 - 8004984: f7fd fd7c bl 8002480 + 800490c: 687b ldr r3, [r7, #4] + 800490e: 6adb ldr r3, [r3, #44] ; 0x2c + 8004910: 4a41 ldr r2, [pc, #260] ; (8004a18 ) + 8004912: 6812 ldr r2, [r2, #0] + 8004914: 210f movs r1, #15 + 8004916: 4618 mov r0, r3 + 8004918: f7fd fd7c bl 8002414 if(indev_reset_check(proc)) return; - 8004988: 6878 ldr r0, [r7, #4] - 800498a: f000 f959 bl 8004c40 - 800498e: 4603 mov r3, r0 - 8004990: 2b00 cmp r3, #0 - 8004992: d16c bne.n 8004a6e + 800491c: 6878 ldr r0, [r7, #4] + 800491e: f000 f959 bl 8004bd4 + 8004922: 4603 mov r3, r0 + 8004924: 2b00 cmp r3, #0 + 8004926: d16c bne.n 8004a02 } lv_event_send(indev_obj_act, LV_EVENT_FOCUSED, indev_act); - 8004994: 4b3a ldr r3, [pc, #232] ; (8004a80 ) - 8004996: 681b ldr r3, [r3, #0] - 8004998: 4a3a ldr r2, [pc, #232] ; (8004a84 ) - 800499a: 6812 ldr r2, [r2, #0] - 800499c: 210e movs r1, #14 - 800499e: 4618 mov r0, r3 - 80049a0: f7fd fd6e bl 8002480 + 8004928: 4b3a ldr r3, [pc, #232] ; (8004a14 ) + 800492a: 681b ldr r3, [r3, #0] + 800492c: 4a3a ldr r2, [pc, #232] ; (8004a18 ) + 800492e: 6812 ldr r2, [r2, #0] + 8004930: 210e movs r1, #14 + 8004932: 4618 mov r0, r3 + 8004934: f7fd fd6e bl 8002414 if(indev_reset_check(proc)) return; - 80049a4: 6878 ldr r0, [r7, #4] - 80049a6: f000 f94b bl 8004c40 - 80049aa: 4603 mov r3, r0 - 80049ac: 2b00 cmp r3, #0 - 80049ae: d057 beq.n 8004a60 - 80049b0: e062 b.n 8004a78 + 8004938: 6878 ldr r0, [r7, #4] + 800493a: f000 f94b bl 8004bd4 + 800493e: 4603 mov r3, r0 + 8004940: 2b00 cmp r3, #0 + 8004942: d057 beq.n 80049f4 + 8004944: e062 b.n 8004a0c } } /*The object are not in the same group (in different groups or one has no group)*/ else { /*If the prev. obj. is not in a group then defocus it.*/ if(g_prev == NULL && proc->types.pointer.last_pressed) { - 80049b2: 68bb ldr r3, [r7, #8] - 80049b4: 2b00 cmp r3, #0 - 80049b6: d112 bne.n 80049de - 80049b8: 687b ldr r3, [r7, #4] - 80049ba: 6adb ldr r3, [r3, #44] ; 0x2c - 80049bc: 2b00 cmp r3, #0 - 80049be: d00e beq.n 80049de + 8004946: 68bb ldr r3, [r7, #8] + 8004948: 2b00 cmp r3, #0 + 800494a: d112 bne.n 8004972 + 800494c: 687b ldr r3, [r7, #4] + 800494e: 6adb ldr r3, [r3, #44] ; 0x2c + 8004950: 2b00 cmp r3, #0 + 8004952: d00e beq.n 8004972 lv_event_send(proc->types.pointer.last_pressed, LV_EVENT_DEFOCUSED, indev_act); - 80049c0: 687b ldr r3, [r7, #4] - 80049c2: 6adb ldr r3, [r3, #44] ; 0x2c - 80049c4: 4a2f ldr r2, [pc, #188] ; (8004a84 ) - 80049c6: 6812 ldr r2, [r2, #0] - 80049c8: 210f movs r1, #15 - 80049ca: 4618 mov r0, r3 - 80049cc: f7fd fd58 bl 8002480 + 8004954: 687b ldr r3, [r7, #4] + 8004956: 6adb ldr r3, [r3, #44] ; 0x2c + 8004958: 4a2f ldr r2, [pc, #188] ; (8004a18 ) + 800495a: 6812 ldr r2, [r2, #0] + 800495c: 210f movs r1, #15 + 800495e: 4618 mov r0, r3 + 8004960: f7fd fd58 bl 8002414 if(indev_reset_check(proc)) return; - 80049d0: 6878 ldr r0, [r7, #4] - 80049d2: f000 f935 bl 8004c40 - 80049d6: 4603 mov r3, r0 - 80049d8: 2b00 cmp r3, #0 - 80049da: d024 beq.n 8004a26 - 80049dc: e04c b.n 8004a78 + 8004964: 6878 ldr r0, [r7, #4] + 8004966: f000 f935 bl 8004bd4 + 800496a: 4603 mov r3, r0 + 800496c: 2b00 cmp r3, #0 + 800496e: d024 beq.n 80049ba + 8004970: e04c b.n 8004a0c } /*Focus on a non-group object*/ else { if(proc->types.pointer.last_pressed) { - 80049de: 687b ldr r3, [r7, #4] - 80049e0: 6adb ldr r3, [r3, #44] ; 0x2c - 80049e2: 2b00 cmp r3, #0 - 80049e4: d01f beq.n 8004a26 + 8004972: 687b ldr r3, [r7, #4] + 8004974: 6adb ldr r3, [r3, #44] ; 0x2c + 8004976: 2b00 cmp r3, #0 + 8004978: d01f beq.n 80049ba /*If the prev. object also wasn't in a group defocus it*/ if(g_prev == NULL) { - 80049e6: 68bb ldr r3, [r7, #8] - 80049e8: 2b00 cmp r3, #0 - 80049ea: d10e bne.n 8004a0a + 800497a: 68bb ldr r3, [r7, #8] + 800497c: 2b00 cmp r3, #0 + 800497e: d10e bne.n 800499e lv_event_send(proc->types.pointer.last_pressed, LV_EVENT_DEFOCUSED, indev_act); - 80049ec: 687b ldr r3, [r7, #4] - 80049ee: 6adb ldr r3, [r3, #44] ; 0x2c - 80049f0: 4a24 ldr r2, [pc, #144] ; (8004a84 ) - 80049f2: 6812 ldr r2, [r2, #0] - 80049f4: 210f movs r1, #15 - 80049f6: 4618 mov r0, r3 - 80049f8: f7fd fd42 bl 8002480 + 8004980: 687b ldr r3, [r7, #4] + 8004982: 6adb ldr r3, [r3, #44] ; 0x2c + 8004984: 4a24 ldr r2, [pc, #144] ; (8004a18 ) + 8004986: 6812 ldr r2, [r2, #0] + 8004988: 210f movs r1, #15 + 800498a: 4618 mov r0, r3 + 800498c: f7fd fd42 bl 8002414 if(indev_reset_check(proc)) return; - 80049fc: 6878 ldr r0, [r7, #4] - 80049fe: f000 f91f bl 8004c40 - 8004a02: 4603 mov r3, r0 - 8004a04: 2b00 cmp r3, #0 - 8004a06: d00e beq.n 8004a26 - 8004a08: e036 b.n 8004a78 + 8004990: 6878 ldr r0, [r7, #4] + 8004992: f000 f91f bl 8004bd4 + 8004996: 4603 mov r3, r0 + 8004998: 2b00 cmp r3, #0 + 800499a: d00e beq.n 80049ba + 800499c: e036 b.n 8004a0c } /*If the prev. object also was in a group at least "LEAVE" it instead of defocus*/ else { lv_event_send(proc->types.pointer.last_pressed, LV_EVENT_LEAVE, indev_act); - 8004a0a: 687b ldr r3, [r7, #4] - 8004a0c: 6adb ldr r3, [r3, #44] ; 0x2c - 8004a0e: 4a1d ldr r2, [pc, #116] ; (8004a84 ) - 8004a10: 6812 ldr r2, [r2, #0] - 8004a12: 2110 movs r1, #16 - 8004a14: 4618 mov r0, r3 - 8004a16: f7fd fd33 bl 8002480 + 800499e: 687b ldr r3, [r7, #4] + 80049a0: 6adb ldr r3, [r3, #44] ; 0x2c + 80049a2: 4a1d ldr r2, [pc, #116] ; (8004a18 ) + 80049a4: 6812 ldr r2, [r2, #0] + 80049a6: 2110 movs r1, #16 + 80049a8: 4618 mov r0, r3 + 80049aa: f7fd fd33 bl 8002414 if(indev_reset_check(proc)) return; - 8004a1a: 6878 ldr r0, [r7, #4] - 8004a1c: f000 f910 bl 8004c40 - 8004a20: 4603 mov r3, r0 - 8004a22: 2b00 cmp r3, #0 - 8004a24: d125 bne.n 8004a72 + 80049ae: 6878 ldr r0, [r7, #4] + 80049b0: f000 f910 bl 8004bd4 + 80049b4: 4603 mov r3, r0 + 80049b6: 2b00 cmp r3, #0 + 80049b8: d125 bne.n 8004a06 } } } /*Focus to the act. in its group*/ if(g_act) { - 8004a26: 68fb ldr r3, [r7, #12] - 8004a28: 2b00 cmp r3, #0 - 8004a2a: d00b beq.n 8004a44 + 80049ba: 68fb ldr r3, [r7, #12] + 80049bc: 2b00 cmp r3, #0 + 80049be: d00b beq.n 80049d8 lv_group_focus_obj(indev_obj_act); - 8004a2c: 4b14 ldr r3, [pc, #80] ; (8004a80 ) - 8004a2e: 681b ldr r3, [r3, #0] - 8004a30: 4618 mov r0, r3 - 8004a32: f7fe f946 bl 8002cc2 + 80049c0: 4b14 ldr r3, [pc, #80] ; (8004a14 ) + 80049c2: 681b ldr r3, [r3, #0] + 80049c4: 4618 mov r0, r3 + 80049c6: f7fe f946 bl 8002c56 if(indev_reset_check(proc)) return; - 8004a36: 6878 ldr r0, [r7, #4] - 8004a38: f000 f902 bl 8004c40 - 8004a3c: 4603 mov r3, r0 - 8004a3e: 2b00 cmp r3, #0 - 8004a40: d00e beq.n 8004a60 - 8004a42: e019 b.n 8004a78 + 80049ca: 6878 ldr r0, [r7, #4] + 80049cc: f000 f902 bl 8004bd4 + 80049d0: 4603 mov r3, r0 + 80049d2: 2b00 cmp r3, #0 + 80049d4: d00e beq.n 80049f4 + 80049d6: e019 b.n 8004a0c } else { lv_event_send(indev_obj_act, LV_EVENT_FOCUSED, indev_act); - 8004a44: 4b0e ldr r3, [pc, #56] ; (8004a80 ) - 8004a46: 681b ldr r3, [r3, #0] - 8004a48: 4a0e ldr r2, [pc, #56] ; (8004a84 ) - 8004a4a: 6812 ldr r2, [r2, #0] - 8004a4c: 210e movs r1, #14 - 8004a4e: 4618 mov r0, r3 - 8004a50: f7fd fd16 bl 8002480 + 80049d8: 4b0e ldr r3, [pc, #56] ; (8004a14 ) + 80049da: 681b ldr r3, [r3, #0] + 80049dc: 4a0e ldr r2, [pc, #56] ; (8004a18 ) + 80049de: 6812 ldr r2, [r2, #0] + 80049e0: 210e movs r1, #14 + 80049e2: 4618 mov r0, r3 + 80049e4: f7fd fd16 bl 8002414 if(indev_reset_check(proc)) return; - 8004a54: 6878 ldr r0, [r7, #4] - 8004a56: f000 f8f3 bl 8004c40 - 8004a5a: 4603 mov r3, r0 - 8004a5c: 2b00 cmp r3, #0 - 8004a5e: d10a bne.n 8004a76 + 80049e8: 6878 ldr r0, [r7, #4] + 80049ea: f000 f8f3 bl 8004bd4 + 80049ee: 4603 mov r3, r0 + 80049f0: 2b00 cmp r3, #0 + 80049f2: d10a bne.n 8004a0a } } proc->types.pointer.last_pressed = indev_obj_act; - 8004a60: 4b07 ldr r3, [pc, #28] ; (8004a80 ) - 8004a62: 681a ldr r2, [r3, #0] - 8004a64: 687b ldr r3, [r7, #4] - 8004a66: 62da str r2, [r3, #44] ; 0x2c - 8004a68: e006 b.n 8004a78 + 80049f4: 4b07 ldr r3, [pc, #28] ; (8004a14 ) + 80049f6: 681a ldr r2, [r3, #0] + 80049f8: 687b ldr r3, [r7, #4] + 80049fa: 62da str r2, [r3, #44] ; 0x2c + 80049fc: e006 b.n 8004a0c return; - 8004a6a: bf00 nop - 8004a6c: e004 b.n 8004a78 + 80049fe: bf00 nop + 8004a00: e004 b.n 8004a0c if(indev_reset_check(proc)) return; - 8004a6e: bf00 nop - 8004a70: e002 b.n 8004a78 + 8004a02: bf00 nop + 8004a04: e002 b.n 8004a0c if(indev_reset_check(proc)) return; - 8004a72: bf00 nop - 8004a74: e000 b.n 8004a78 + 8004a06: bf00 nop + 8004a08: e000 b.n 8004a0c if(indev_reset_check(proc)) return; - 8004a76: bf00 nop + 8004a0a: bf00 nop } - 8004a78: 3710 adds r7, #16 - 8004a7a: 46bd mov sp, r7 - 8004a7c: bd80 pop {r7, pc} - 8004a7e: bf00 nop - 8004a80: 20001af8 .word 0x20001af8 - 8004a84: 20001af4 .word 0x20001af4 + 8004a0c: 3710 adds r7, #16 + 8004a0e: 46bd mov sp, r7 + 8004a10: bd80 pop {r7, pc} + 8004a12: bf00 nop + 8004a14: 20001af8 .word 0x20001af8 + 8004a18: 20001af4 .word 0x20001af4 -08004a88 : +08004a1c : /** * Handle the gesture of indev_proc_p->types.pointer.act_obj * @param indev pointer to an input device state */ void indev_gesture(_lv_indev_proc_t * proc) { - 8004a88: b580 push {r7, lr} - 8004a8a: b084 sub sp, #16 - 8004a8c: af00 add r7, sp, #0 - 8004a8e: 6078 str r0, [r7, #4] + 8004a1c: b580 push {r7, lr} + 8004a1e: b084 sub sp, #16 + 8004a20: af00 add r7, sp, #0 + 8004a22: 6078 str r0, [r7, #4] if(proc->types.pointer.scroll_obj) return; - 8004a90: 687b ldr r3, [r7, #4] - 8004a92: 6a9b ldr r3, [r3, #40] ; 0x28 - 8004a94: 2b00 cmp r3, #0 - 8004a96: f040 80c9 bne.w 8004c2c + 8004a24: 687b ldr r3, [r7, #4] + 8004a26: 6a9b ldr r3, [r3, #40] ; 0x28 + 8004a28: 2b00 cmp r3, #0 + 8004a2a: f040 80c9 bne.w 8004bc0 if(proc->types.pointer.gesture_sent) return; - 8004a9a: 687b ldr r3, [r7, #4] - 8004a9c: f893 303d ldrb.w r3, [r3, #61] ; 0x3d - 8004aa0: f003 0301 and.w r3, r3, #1 - 8004aa4: b2db uxtb r3, r3 - 8004aa6: 2b00 cmp r3, #0 - 8004aa8: f040 80c2 bne.w 8004c30 + 8004a2e: 687b ldr r3, [r7, #4] + 8004a30: f893 303d ldrb.w r3, [r3, #61] ; 0x3d + 8004a34: f003 0301 and.w r3, r3, #1 + 8004a38: b2db uxtb r3, r3 + 8004a3a: 2b00 cmp r3, #0 + 8004a3c: f040 80c2 bne.w 8004bc4 lv_obj_t * gesture_obj = proc->types.pointer.act_obj; - 8004aac: 687b ldr r3, [r7, #4] - 8004aae: 6a1b ldr r3, [r3, #32] - 8004ab0: 60fb str r3, [r7, #12] + 8004a40: 687b ldr r3, [r7, #4] + 8004a42: 6a1b ldr r3, [r3, #32] + 8004a44: 60fb str r3, [r7, #12] /*If gesture parent is active check recursively the gesture attribute*/ while(gesture_obj && lv_obj_has_flag(gesture_obj, LV_OBJ_FLAG_GESTURE_BUBBLE)) { - 8004ab2: e003 b.n 8004abc + 8004a46: e003 b.n 8004a50 gesture_obj = lv_obj_get_parent(gesture_obj); - 8004ab4: 68f8 ldr r0, [r7, #12] - 8004ab6: f00a fe29 bl 800f70c - 8004aba: 60f8 str r0, [r7, #12] + 8004a48: 68f8 ldr r0, [r7, #12] + 8004a4a: f00a fe15 bl 800f678 + 8004a4e: 60f8 str r0, [r7, #12] while(gesture_obj && lv_obj_has_flag(gesture_obj, LV_OBJ_FLAG_GESTURE_BUBBLE)) { - 8004abc: 68fb ldr r3, [r7, #12] - 8004abe: 2b00 cmp r3, #0 - 8004ac0: d007 beq.n 8004ad2 - 8004ac2: f44f 4100 mov.w r1, #32768 ; 0x8000 - 8004ac6: 68f8 ldr r0, [r7, #12] - 8004ac8: f001 fe5b bl 8006782 - 8004acc: 4603 mov r3, r0 - 8004ace: 2b00 cmp r3, #0 - 8004ad0: d1f0 bne.n 8004ab4 + 8004a50: 68fb ldr r3, [r7, #12] + 8004a52: 2b00 cmp r3, #0 + 8004a54: d007 beq.n 8004a66 + 8004a56: f44f 4100 mov.w r1, #32768 ; 0x8000 + 8004a5a: 68f8 ldr r0, [r7, #12] + 8004a5c: f001 fe5b bl 8006716 + 8004a60: 4603 mov r3, r0 + 8004a62: 2b00 cmp r3, #0 + 8004a64: d1f0 bne.n 8004a48 } if(gesture_obj == NULL) return; - 8004ad2: 68fb ldr r3, [r7, #12] - 8004ad4: 2b00 cmp r3, #0 - 8004ad6: f000 80ad beq.w 8004c34 + 8004a66: 68fb ldr r3, [r7, #12] + 8004a68: 2b00 cmp r3, #0 + 8004a6a: f000 80ad beq.w 8004bc8 if((LV_ABS(proc->types.pointer.vect.x) < indev_act->driver->gesture_min_velocity) && - 8004ada: 687b ldr r3, [r7, #4] - 8004adc: f9b3 3010 ldrsh.w r3, [r3, #16] - 8004ae0: 2b00 cmp r3, #0 - 8004ae2: bfb8 it lt - 8004ae4: 425b neglt r3, r3 - 8004ae6: b29a uxth r2, r3 - 8004ae8: 4b54 ldr r3, [pc, #336] ; (8004c3c ) - 8004aea: 681b ldr r3, [r3, #0] - 8004aec: 681b ldr r3, [r3, #0] - 8004aee: 7e9b ldrb r3, [r3, #26] - 8004af0: b29b uxth r3, r3 - 8004af2: 429a cmp r2, r3 - 8004af4: d213 bcs.n 8004b1e + 8004a6e: 687b ldr r3, [r7, #4] + 8004a70: f9b3 3010 ldrsh.w r3, [r3, #16] + 8004a74: 2b00 cmp r3, #0 + 8004a76: bfb8 it lt + 8004a78: 425b neglt r3, r3 + 8004a7a: b29a uxth r2, r3 + 8004a7c: 4b54 ldr r3, [pc, #336] ; (8004bd0 ) + 8004a7e: 681b ldr r3, [r3, #0] + 8004a80: 681b ldr r3, [r3, #0] + 8004a82: 7e9b ldrb r3, [r3, #26] + 8004a84: b29b uxth r3, r3 + 8004a86: 429a cmp r2, r3 + 8004a88: d213 bcs.n 8004ab2 (LV_ABS(proc->types.pointer.vect.y) < indev_act->driver->gesture_min_velocity)) { - 8004af6: 687b ldr r3, [r7, #4] - 8004af8: f9b3 3012 ldrsh.w r3, [r3, #18] - 8004afc: 2b00 cmp r3, #0 - 8004afe: bfb8 it lt - 8004b00: 425b neglt r3, r3 - 8004b02: b29a uxth r2, r3 - 8004b04: 4b4d ldr r3, [pc, #308] ; (8004c3c ) - 8004b06: 681b ldr r3, [r3, #0] - 8004b08: 681b ldr r3, [r3, #0] - 8004b0a: 7e9b ldrb r3, [r3, #26] - 8004b0c: b29b uxth r3, r3 + 8004a8a: 687b ldr r3, [r7, #4] + 8004a8c: f9b3 3012 ldrsh.w r3, [r3, #18] + 8004a90: 2b00 cmp r3, #0 + 8004a92: bfb8 it lt + 8004a94: 425b neglt r3, r3 + 8004a96: b29a uxth r2, r3 + 8004a98: 4b4d ldr r3, [pc, #308] ; (8004bd0 ) + 8004a9a: 681b ldr r3, [r3, #0] + 8004a9c: 681b ldr r3, [r3, #0] + 8004a9e: 7e9b ldrb r3, [r3, #26] + 8004aa0: b29b uxth r3, r3 if((LV_ABS(proc->types.pointer.vect.x) < indev_act->driver->gesture_min_velocity) && - 8004b0e: 429a cmp r2, r3 - 8004b10: d205 bcs.n 8004b1e + 8004aa2: 429a cmp r2, r3 + 8004aa4: d205 bcs.n 8004ab2 proc->types.pointer.gesture_sum.x = 0; - 8004b12: 687b ldr r3, [r7, #4] - 8004b14: 2200 movs r2, #0 - 8004b16: 871a strh r2, [r3, #56] ; 0x38 + 8004aa6: 687b ldr r3, [r7, #4] + 8004aa8: 2200 movs r2, #0 + 8004aaa: 871a strh r2, [r3, #56] ; 0x38 proc->types.pointer.gesture_sum.y = 0; - 8004b18: 687b ldr r3, [r7, #4] - 8004b1a: 2200 movs r2, #0 - 8004b1c: 875a strh r2, [r3, #58] ; 0x3a + 8004aac: 687b ldr r3, [r7, #4] + 8004aae: 2200 movs r2, #0 + 8004ab0: 875a strh r2, [r3, #58] ; 0x3a } /*Count the movement by gesture*/ proc->types.pointer.gesture_sum.x += proc->types.pointer.vect.x; - 8004b1e: 687b ldr r3, [r7, #4] - 8004b20: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 - 8004b24: b29a uxth r2, r3 - 8004b26: 687b ldr r3, [r7, #4] - 8004b28: f9b3 3010 ldrsh.w r3, [r3, #16] - 8004b2c: b29b uxth r3, r3 - 8004b2e: 4413 add r3, r2 - 8004b30: b29b uxth r3, r3 - 8004b32: b21a sxth r2, r3 - 8004b34: 687b ldr r3, [r7, #4] - 8004b36: 871a strh r2, [r3, #56] ; 0x38 + 8004ab2: 687b ldr r3, [r7, #4] + 8004ab4: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 + 8004ab8: b29a uxth r2, r3 + 8004aba: 687b ldr r3, [r7, #4] + 8004abc: f9b3 3010 ldrsh.w r3, [r3, #16] + 8004ac0: b29b uxth r3, r3 + 8004ac2: 4413 add r3, r2 + 8004ac4: b29b uxth r3, r3 + 8004ac6: b21a sxth r2, r3 + 8004ac8: 687b ldr r3, [r7, #4] + 8004aca: 871a strh r2, [r3, #56] ; 0x38 proc->types.pointer.gesture_sum.y += proc->types.pointer.vect.y; - 8004b38: 687b ldr r3, [r7, #4] - 8004b3a: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a - 8004b3e: b29a uxth r2, r3 - 8004b40: 687b ldr r3, [r7, #4] - 8004b42: f9b3 3012 ldrsh.w r3, [r3, #18] - 8004b46: b29b uxth r3, r3 - 8004b48: 4413 add r3, r2 - 8004b4a: b29b uxth r3, r3 - 8004b4c: b21a sxth r2, r3 - 8004b4e: 687b ldr r3, [r7, #4] - 8004b50: 875a strh r2, [r3, #58] ; 0x3a + 8004acc: 687b ldr r3, [r7, #4] + 8004ace: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a + 8004ad2: b29a uxth r2, r3 + 8004ad4: 687b ldr r3, [r7, #4] + 8004ad6: f9b3 3012 ldrsh.w r3, [r3, #18] + 8004ada: b29b uxth r3, r3 + 8004adc: 4413 add r3, r2 + 8004ade: b29b uxth r3, r3 + 8004ae0: b21a sxth r2, r3 + 8004ae2: 687b ldr r3, [r7, #4] + 8004ae4: 875a strh r2, [r3, #58] ; 0x3a if((LV_ABS(proc->types.pointer.gesture_sum.x) > indev_act->driver->gesture_limit) || - 8004b52: 687b ldr r3, [r7, #4] - 8004b54: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 - 8004b58: 2b00 cmp r3, #0 - 8004b5a: bfb8 it lt - 8004b5c: 425b neglt r3, r3 - 8004b5e: b29a uxth r2, r3 - 8004b60: 4b36 ldr r3, [pc, #216] ; (8004c3c ) - 8004b62: 681b ldr r3, [r3, #0] - 8004b64: 681b ldr r3, [r3, #0] - 8004b66: 7edb ldrb r3, [r3, #27] - 8004b68: b29b uxth r3, r3 - 8004b6a: 429a cmp r2, r3 - 8004b6c: d80d bhi.n 8004b8a + 8004ae6: 687b ldr r3, [r7, #4] + 8004ae8: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 + 8004aec: 2b00 cmp r3, #0 + 8004aee: bfb8 it lt + 8004af0: 425b neglt r3, r3 + 8004af2: b29a uxth r2, r3 + 8004af4: 4b36 ldr r3, [pc, #216] ; (8004bd0 ) + 8004af6: 681b ldr r3, [r3, #0] + 8004af8: 681b ldr r3, [r3, #0] + 8004afa: 7edb ldrb r3, [r3, #27] + 8004afc: b29b uxth r3, r3 + 8004afe: 429a cmp r2, r3 + 8004b00: d80d bhi.n 8004b1e (LV_ABS(proc->types.pointer.gesture_sum.y) > indev_act->driver->gesture_limit)) { - 8004b6e: 687b ldr r3, [r7, #4] - 8004b70: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a - 8004b74: 2b00 cmp r3, #0 - 8004b76: bfb8 it lt - 8004b78: 425b neglt r3, r3 - 8004b7a: b29a uxth r2, r3 - 8004b7c: 4b2f ldr r3, [pc, #188] ; (8004c3c ) - 8004b7e: 681b ldr r3, [r3, #0] - 8004b80: 681b ldr r3, [r3, #0] - 8004b82: 7edb ldrb r3, [r3, #27] - 8004b84: b29b uxth r3, r3 + 8004b02: 687b ldr r3, [r7, #4] + 8004b04: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a + 8004b08: 2b00 cmp r3, #0 + 8004b0a: bfb8 it lt + 8004b0c: 425b neglt r3, r3 + 8004b0e: b29a uxth r2, r3 + 8004b10: 4b2f ldr r3, [pc, #188] ; (8004bd0 ) + 8004b12: 681b ldr r3, [r3, #0] + 8004b14: 681b ldr r3, [r3, #0] + 8004b16: 7edb ldrb r3, [r3, #27] + 8004b18: b29b uxth r3, r3 if((LV_ABS(proc->types.pointer.gesture_sum.x) > indev_act->driver->gesture_limit) || - 8004b86: 429a cmp r2, r3 - 8004b88: d955 bls.n 8004c36 + 8004b1a: 429a cmp r2, r3 + 8004b1c: d955 bls.n 8004bca proc->types.pointer.gesture_sent = 1; - 8004b8a: 687a ldr r2, [r7, #4] - 8004b8c: f892 303d ldrb.w r3, [r2, #61] ; 0x3d - 8004b90: f043 0301 orr.w r3, r3, #1 - 8004b94: f882 303d strb.w r3, [r2, #61] ; 0x3d + 8004b1e: 687a ldr r2, [r7, #4] + 8004b20: f892 303d ldrb.w r3, [r2, #61] ; 0x3d + 8004b24: f043 0301 orr.w r3, r3, #1 + 8004b28: f882 303d strb.w r3, [r2, #61] ; 0x3d if(LV_ABS(proc->types.pointer.gesture_sum.x) > LV_ABS(proc->types.pointer.gesture_sum.y)) { - 8004b98: 687b ldr r3, [r7, #4] - 8004b9a: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 - 8004b9e: 2b00 cmp r3, #0 - 8004ba0: bfb8 it lt - 8004ba2: 425b neglt r3, r3 - 8004ba4: b29a uxth r2, r3 - 8004ba6: 687b ldr r3, [r7, #4] - 8004ba8: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a - 8004bac: 2b00 cmp r3, #0 - 8004bae: bfb8 it lt - 8004bb0: 425b neglt r3, r3 - 8004bb2: b29b uxth r3, r3 - 8004bb4: 429a cmp r2, r3 - 8004bb6: d916 bls.n 8004be6 + 8004b2c: 687b ldr r3, [r7, #4] + 8004b2e: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 + 8004b32: 2b00 cmp r3, #0 + 8004b34: bfb8 it lt + 8004b36: 425b neglt r3, r3 + 8004b38: b29a uxth r2, r3 + 8004b3a: 687b ldr r3, [r7, #4] + 8004b3c: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a + 8004b40: 2b00 cmp r3, #0 + 8004b42: bfb8 it lt + 8004b44: 425b neglt r3, r3 + 8004b46: b29b uxth r3, r3 + 8004b48: 429a cmp r2, r3 + 8004b4a: d916 bls.n 8004b7a if(proc->types.pointer.gesture_sum.x > 0) - 8004bb8: 687b ldr r3, [r7, #4] - 8004bba: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 - 8004bbe: 2b00 cmp r3, #0 - 8004bc0: dd08 ble.n 8004bd4 + 8004b4c: 687b ldr r3, [r7, #4] + 8004b4e: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 + 8004b52: 2b00 cmp r3, #0 + 8004b54: dd08 ble.n 8004b68 proc->types.pointer.gesture_dir = LV_DIR_RIGHT; - 8004bc2: 687a ldr r2, [r7, #4] - 8004bc4: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 8004bc8: 2102 movs r1, #2 - 8004bca: f361 1307 bfi r3, r1, #4, #4 - 8004bce: f882 303c strb.w r3, [r2, #60] ; 0x3c - 8004bd2: e01e b.n 8004c12 + 8004b56: 687a ldr r2, [r7, #4] + 8004b58: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 8004b5c: 2102 movs r1, #2 + 8004b5e: f361 1307 bfi r3, r1, #4, #4 + 8004b62: f882 303c strb.w r3, [r2, #60] ; 0x3c + 8004b66: e01e b.n 8004ba6 else proc->types.pointer.gesture_dir = LV_DIR_LEFT; - 8004bd4: 687a ldr r2, [r7, #4] - 8004bd6: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 8004bda: 2101 movs r1, #1 - 8004bdc: f361 1307 bfi r3, r1, #4, #4 - 8004be0: f882 303c strb.w r3, [r2, #60] ; 0x3c - 8004be4: e015 b.n 8004c12 + 8004b68: 687a ldr r2, [r7, #4] + 8004b6a: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 8004b6e: 2101 movs r1, #1 + 8004b70: f361 1307 bfi r3, r1, #4, #4 + 8004b74: f882 303c strb.w r3, [r2, #60] ; 0x3c + 8004b78: e015 b.n 8004ba6 } else { if(proc->types.pointer.gesture_sum.y > 0) - 8004be6: 687b ldr r3, [r7, #4] - 8004be8: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a - 8004bec: 2b00 cmp r3, #0 - 8004bee: dd08 ble.n 8004c02 + 8004b7a: 687b ldr r3, [r7, #4] + 8004b7c: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a + 8004b80: 2b00 cmp r3, #0 + 8004b82: dd08 ble.n 8004b96 proc->types.pointer.gesture_dir = LV_DIR_BOTTOM; - 8004bf0: 687a ldr r2, [r7, #4] - 8004bf2: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 8004bf6: 2108 movs r1, #8 - 8004bf8: f361 1307 bfi r3, r1, #4, #4 - 8004bfc: f882 303c strb.w r3, [r2, #60] ; 0x3c - 8004c00: e007 b.n 8004c12 + 8004b84: 687a ldr r2, [r7, #4] + 8004b86: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 8004b8a: 2108 movs r1, #8 + 8004b8c: f361 1307 bfi r3, r1, #4, #4 + 8004b90: f882 303c strb.w r3, [r2, #60] ; 0x3c + 8004b94: e007 b.n 8004ba6 else proc->types.pointer.gesture_dir = LV_DIR_TOP; - 8004c02: 687a ldr r2, [r7, #4] - 8004c04: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 8004c08: 2104 movs r1, #4 - 8004c0a: f361 1307 bfi r3, r1, #4, #4 - 8004c0e: f882 303c strb.w r3, [r2, #60] ; 0x3c + 8004b96: 687a ldr r2, [r7, #4] + 8004b98: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 8004b9c: 2104 movs r1, #4 + 8004b9e: f361 1307 bfi r3, r1, #4, #4 + 8004ba2: f882 303c strb.w r3, [r2, #60] ; 0x3c } lv_event_send(gesture_obj, LV_EVENT_GESTURE, indev_act); - 8004c12: 4b0a ldr r3, [pc, #40] ; (8004c3c ) - 8004c14: 681b ldr r3, [r3, #0] - 8004c16: 461a mov r2, r3 - 8004c18: 210c movs r1, #12 - 8004c1a: 68f8 ldr r0, [r7, #12] - 8004c1c: f7fd fc30 bl 8002480 + 8004ba6: 4b0a ldr r3, [pc, #40] ; (8004bd0 ) + 8004ba8: 681b ldr r3, [r3, #0] + 8004baa: 461a mov r2, r3 + 8004bac: 210c movs r1, #12 + 8004bae: 68f8 ldr r0, [r7, #12] + 8004bb0: f7fd fc30 bl 8002414 if(indev_reset_check(proc)) return; - 8004c20: 6878 ldr r0, [r7, #4] - 8004c22: f000 f80d bl 8004c40 - 8004c26: 4603 mov r3, r0 - 8004c28: 2b00 cmp r3, #0 - 8004c2a: e004 b.n 8004c36 + 8004bb4: 6878 ldr r0, [r7, #4] + 8004bb6: f000 f80d bl 8004bd4 + 8004bba: 4603 mov r3, r0 + 8004bbc: 2b00 cmp r3, #0 + 8004bbe: e004 b.n 8004bca if(proc->types.pointer.scroll_obj) return; - 8004c2c: bf00 nop - 8004c2e: e002 b.n 8004c36 + 8004bc0: bf00 nop + 8004bc2: e002 b.n 8004bca if(proc->types.pointer.gesture_sent) return; - 8004c30: bf00 nop - 8004c32: e000 b.n 8004c36 + 8004bc4: bf00 nop + 8004bc6: e000 b.n 8004bca if(gesture_obj == NULL) return; - 8004c34: bf00 nop + 8004bc8: bf00 nop } } - 8004c36: 3710 adds r7, #16 - 8004c38: 46bd mov sp, r7 - 8004c3a: bd80 pop {r7, pc} - 8004c3c: 20001af4 .word 0x20001af4 + 8004bca: 3710 adds r7, #16 + 8004bcc: 46bd mov sp, r7 + 8004bce: bd80 pop {r7, pc} + 8004bd0: 20001af4 .word 0x20001af4 -08004c40 : +08004bd4 : * Checks if the reset_query flag has been set. If so, perform necessary global indev cleanup actions * @param proc pointer to an input device 'proc' * @return true if indev query should be immediately truncated. */ static bool indev_reset_check(_lv_indev_proc_t * proc) { - 8004c40: b480 push {r7} - 8004c42: b083 sub sp, #12 - 8004c44: af00 add r7, sp, #0 - 8004c46: 6078 str r0, [r7, #4] + 8004bd4: b480 push {r7} + 8004bd6: b083 sub sp, #12 + 8004bd8: af00 add r7, sp, #0 + 8004bda: 6078 str r0, [r7, #4] if(proc->reset_query) { - 8004c48: 687b ldr r3, [r7, #4] - 8004c4a: 785b ldrb r3, [r3, #1] - 8004c4c: f003 0302 and.w r3, r3, #2 - 8004c50: b2db uxtb r3, r3 - 8004c52: 2b00 cmp r3, #0 - 8004c54: d002 beq.n 8004c5c + 8004bdc: 687b ldr r3, [r7, #4] + 8004bde: 785b ldrb r3, [r3, #1] + 8004be0: f003 0302 and.w r3, r3, #2 + 8004be4: b2db uxtb r3, r3 + 8004be6: 2b00 cmp r3, #0 + 8004be8: d002 beq.n 8004bf0 indev_obj_act = NULL; - 8004c56: 4b09 ldr r3, [pc, #36] ; (8004c7c ) - 8004c58: 2200 movs r2, #0 - 8004c5a: 601a str r2, [r3, #0] + 8004bea: 4b09 ldr r3, [pc, #36] ; (8004c10 ) + 8004bec: 2200 movs r2, #0 + 8004bee: 601a str r2, [r3, #0] } return proc->reset_query ? true : false; - 8004c5c: 687b ldr r3, [r7, #4] - 8004c5e: 785b ldrb r3, [r3, #1] - 8004c60: 085b lsrs r3, r3, #1 - 8004c62: b2db uxtb r3, r3 - 8004c64: f003 0301 and.w r3, r3, #1 - 8004c68: 2b00 cmp r3, #0 - 8004c6a: bf14 ite ne - 8004c6c: 2301 movne r3, #1 - 8004c6e: 2300 moveq r3, #0 - 8004c70: b2db uxtb r3, r3 + 8004bf0: 687b ldr r3, [r7, #4] + 8004bf2: 785b ldrb r3, [r3, #1] + 8004bf4: 085b lsrs r3, r3, #1 + 8004bf6: b2db uxtb r3, r3 + 8004bf8: f003 0301 and.w r3, r3, #1 + 8004bfc: 2b00 cmp r3, #0 + 8004bfe: bf14 ite ne + 8004c00: 2301 movne r3, #1 + 8004c02: 2300 moveq r3, #0 + 8004c04: b2db uxtb r3, r3 } - 8004c72: 4618 mov r0, r3 - 8004c74: 370c adds r7, #12 - 8004c76: 46bd mov sp, r7 - 8004c78: bc80 pop {r7} - 8004c7a: 4770 bx lr - 8004c7c: 20001af8 .word 0x20001af8 + 8004c06: 4618 mov r0, r3 + 8004c08: 370c adds r7, #12 + 8004c0a: 46bd mov sp, r7 + 8004c0c: bc80 pop {r7} + 8004c0e: 4770 bx lr + 8004c10: 20001af8 .word 0x20001af8 -08004c80 : +08004c14 : * Get the width of an area * @param area_p pointer to an area * @return the width of the area (if x1 == x2 -> width = 1) */ static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p) { - 8004c80: b480 push {r7} - 8004c82: b083 sub sp, #12 - 8004c84: af00 add r7, sp, #0 - 8004c86: 6078 str r0, [r7, #4] + 8004c14: b480 push {r7} + 8004c16: b083 sub sp, #12 + 8004c18: af00 add r7, sp, #0 + 8004c1a: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 8004c88: 687b ldr r3, [r7, #4] - 8004c8a: f9b3 3004 ldrsh.w r3, [r3, #4] - 8004c8e: b29a uxth r2, r3 - 8004c90: 687b ldr r3, [r7, #4] - 8004c92: f9b3 3000 ldrsh.w r3, [r3] - 8004c96: b29b uxth r3, r3 - 8004c98: 1ad3 subs r3, r2, r3 - 8004c9a: b29b uxth r3, r3 - 8004c9c: 3301 adds r3, #1 - 8004c9e: b29b uxth r3, r3 - 8004ca0: b21b sxth r3, r3 + 8004c1c: 687b ldr r3, [r7, #4] + 8004c1e: f9b3 3004 ldrsh.w r3, [r3, #4] + 8004c22: b29a uxth r2, r3 + 8004c24: 687b ldr r3, [r7, #4] + 8004c26: f9b3 3000 ldrsh.w r3, [r3] + 8004c2a: b29b uxth r3, r3 + 8004c2c: 1ad3 subs r3, r2, r3 + 8004c2e: b29b uxth r3, r3 + 8004c30: 3301 adds r3, #1 + 8004c32: b29b uxth r3, r3 + 8004c34: b21b sxth r3, r3 } - 8004ca2: 4618 mov r0, r3 - 8004ca4: 370c adds r7, #12 - 8004ca6: 46bd mov sp, r7 - 8004ca8: bc80 pop {r7} - 8004caa: 4770 bx lr + 8004c36: 4618 mov r0, r3 + 8004c38: 370c adds r7, #12 + 8004c3a: 46bd mov sp, r7 + 8004c3c: bc80 pop {r7} + 8004c3e: 4770 bx lr -08004cac : +08004c40 : * Get the height of an area * @param area_p pointer to an area * @return the height of the area (if y1 == y2 -> height = 1) */ static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) { - 8004cac: b480 push {r7} - 8004cae: b083 sub sp, #12 - 8004cb0: af00 add r7, sp, #0 - 8004cb2: 6078 str r0, [r7, #4] + 8004c40: b480 push {r7} + 8004c42: b083 sub sp, #12 + 8004c44: af00 add r7, sp, #0 + 8004c46: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 8004cb4: 687b ldr r3, [r7, #4] - 8004cb6: f9b3 3006 ldrsh.w r3, [r3, #6] - 8004cba: b29a uxth r2, r3 - 8004cbc: 687b ldr r3, [r7, #4] - 8004cbe: f9b3 3002 ldrsh.w r3, [r3, #2] - 8004cc2: b29b uxth r3, r3 - 8004cc4: 1ad3 subs r3, r2, r3 - 8004cc6: b29b uxth r3, r3 - 8004cc8: 3301 adds r3, #1 - 8004cca: b29b uxth r3, r3 - 8004ccc: b21b sxth r3, r3 + 8004c48: 687b ldr r3, [r7, #4] + 8004c4a: f9b3 3006 ldrsh.w r3, [r3, #6] + 8004c4e: b29a uxth r2, r3 + 8004c50: 687b ldr r3, [r7, #4] + 8004c52: f9b3 3002 ldrsh.w r3, [r3, #2] + 8004c56: b29b uxth r3, r3 + 8004c58: 1ad3 subs r3, r2, r3 + 8004c5a: b29b uxth r3, r3 + 8004c5c: 3301 adds r3, #1 + 8004c5e: b29b uxth r3, r3 + 8004c60: b21b sxth r3, r3 } - 8004cce: 4618 mov r0, r3 - 8004cd0: 370c adds r7, #12 - 8004cd2: 46bd mov sp, r7 - 8004cd4: bc80 pop {r7} - 8004cd6: 4770 bx lr + 8004c62: 4618 mov r0, r3 + 8004c64: 370c adds r7, #12 + 8004c66: 46bd mov sp, r7 + 8004c68: bc80 pop {r7} + 8004c6a: 4770 bx lr -08004cd8 : +08004c6c : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_ANGLE); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_pad_top(const struct _lv_obj_t * obj, uint32_t part) { - 8004cd8: b580 push {r7, lr} - 8004cda: b084 sub sp, #16 - 8004cdc: af00 add r7, sp, #0 - 8004cde: 6078 str r0, [r7, #4] - 8004ce0: 6039 str r1, [r7, #0] + 8004c6c: b580 push {r7, lr} + 8004c6e: b084 sub sp, #16 + 8004c70: af00 add r7, sp, #0 + 8004c72: 6078 str r0, [r7, #4] + 8004c74: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 8004ce2: f641 0210 movw r2, #6160 ; 0x1810 - 8004ce6: 6839 ldr r1, [r7, #0] - 8004ce8: 6878 ldr r0, [r7, #4] - 8004cea: f009 f861 bl 800ddb0 - 8004cee: 4603 mov r3, r0 - 8004cf0: 60fb str r3, [r7, #12] + 8004c76: f641 0210 movw r2, #6160 ; 0x1810 + 8004c7a: 6839 ldr r1, [r7, #0] + 8004c7c: 6878 ldr r0, [r7, #4] + 8004c7e: f009 f861 bl 800dd44 + 8004c82: 4603 mov r3, r0 + 8004c84: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8004cf2: 68fb ldr r3, [r7, #12] - 8004cf4: b21b sxth r3, r3 + 8004c86: 68fb ldr r3, [r7, #12] + 8004c88: b21b sxth r3, r3 } - 8004cf6: 4618 mov r0, r3 - 8004cf8: 3710 adds r7, #16 - 8004cfa: 46bd mov sp, r7 - 8004cfc: bd80 pop {r7, pc} + 8004c8a: 4618 mov r0, r3 + 8004c8c: 3710 adds r7, #16 + 8004c8e: 46bd mov sp, r7 + 8004c90: bd80 pop {r7, pc} -08004cfe : +08004c92 : static inline lv_coord_t lv_obj_get_style_pad_bottom(const struct _lv_obj_t * obj, uint32_t part) { - 8004cfe: b580 push {r7, lr} - 8004d00: b084 sub sp, #16 - 8004d02: af00 add r7, sp, #0 - 8004d04: 6078 str r0, [r7, #4] - 8004d06: 6039 str r1, [r7, #0] + 8004c92: b580 push {r7, lr} + 8004c94: b084 sub sp, #16 + 8004c96: af00 add r7, sp, #0 + 8004c98: 6078 str r0, [r7, #4] + 8004c9a: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); - 8004d08: f641 0211 movw r2, #6161 ; 0x1811 - 8004d0c: 6839 ldr r1, [r7, #0] - 8004d0e: 6878 ldr r0, [r7, #4] - 8004d10: f009 f84e bl 800ddb0 - 8004d14: 4603 mov r3, r0 - 8004d16: 60fb str r3, [r7, #12] + 8004c9c: f641 0211 movw r2, #6161 ; 0x1811 + 8004ca0: 6839 ldr r1, [r7, #0] + 8004ca2: 6878 ldr r0, [r7, #4] + 8004ca4: f009 f84e bl 800dd44 + 8004ca8: 4603 mov r3, r0 + 8004caa: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8004d18: 68fb ldr r3, [r7, #12] - 8004d1a: b21b sxth r3, r3 + 8004cac: 68fb ldr r3, [r7, #12] + 8004cae: b21b sxth r3, r3 } - 8004d1c: 4618 mov r0, r3 - 8004d1e: 3710 adds r7, #16 - 8004d20: 46bd mov sp, r7 - 8004d22: bd80 pop {r7, pc} + 8004cb0: 4618 mov r0, r3 + 8004cb2: 3710 adds r7, #16 + 8004cb4: 46bd mov sp, r7 + 8004cb6: bd80 pop {r7, pc} -08004d24 : +08004cb8 : static inline lv_coord_t lv_obj_get_style_pad_left(const struct _lv_obj_t * obj, uint32_t part) { - 8004d24: b580 push {r7, lr} - 8004d26: b084 sub sp, #16 - 8004d28: af00 add r7, sp, #0 - 8004d2a: 6078 str r0, [r7, #4] - 8004d2c: 6039 str r1, [r7, #0] + 8004cb8: b580 push {r7, lr} + 8004cba: b084 sub sp, #16 + 8004cbc: af00 add r7, sp, #0 + 8004cbe: 6078 str r0, [r7, #4] + 8004cc0: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 8004d2e: f641 0212 movw r2, #6162 ; 0x1812 - 8004d32: 6839 ldr r1, [r7, #0] - 8004d34: 6878 ldr r0, [r7, #4] - 8004d36: f009 f83b bl 800ddb0 - 8004d3a: 4603 mov r3, r0 - 8004d3c: 60fb str r3, [r7, #12] + 8004cc2: f641 0212 movw r2, #6162 ; 0x1812 + 8004cc6: 6839 ldr r1, [r7, #0] + 8004cc8: 6878 ldr r0, [r7, #4] + 8004cca: f009 f83b bl 800dd44 + 8004cce: 4603 mov r3, r0 + 8004cd0: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8004d3e: 68fb ldr r3, [r7, #12] - 8004d40: b21b sxth r3, r3 + 8004cd2: 68fb ldr r3, [r7, #12] + 8004cd4: b21b sxth r3, r3 } - 8004d42: 4618 mov r0, r3 - 8004d44: 3710 adds r7, #16 - 8004d46: 46bd mov sp, r7 - 8004d48: bd80 pop {r7, pc} + 8004cd6: 4618 mov r0, r3 + 8004cd8: 3710 adds r7, #16 + 8004cda: 46bd mov sp, r7 + 8004cdc: bd80 pop {r7, pc} -08004d4a : +08004cde : static inline lv_coord_t lv_obj_get_style_pad_right(const struct _lv_obj_t * obj, uint32_t part) { - 8004d4a: b580 push {r7, lr} - 8004d4c: b084 sub sp, #16 - 8004d4e: af00 add r7, sp, #0 - 8004d50: 6078 str r0, [r7, #4] - 8004d52: 6039 str r1, [r7, #0] + 8004cde: b580 push {r7, lr} + 8004ce0: b084 sub sp, #16 + 8004ce2: af00 add r7, sp, #0 + 8004ce4: 6078 str r0, [r7, #4] + 8004ce6: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - 8004d54: f641 0213 movw r2, #6163 ; 0x1813 - 8004d58: 6839 ldr r1, [r7, #0] - 8004d5a: 6878 ldr r0, [r7, #4] - 8004d5c: f009 f828 bl 800ddb0 - 8004d60: 4603 mov r3, r0 - 8004d62: 60fb str r3, [r7, #12] + 8004ce8: f641 0213 movw r2, #6163 ; 0x1813 + 8004cec: 6839 ldr r1, [r7, #0] + 8004cee: 6878 ldr r0, [r7, #4] + 8004cf0: f009 f828 bl 800dd44 + 8004cf4: 4603 mov r3, r0 + 8004cf6: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8004d64: 68fb ldr r3, [r7, #12] - 8004d66: b21b sxth r3, r3 + 8004cf8: 68fb ldr r3, [r7, #12] + 8004cfa: b21b sxth r3, r3 } - 8004d68: 4618 mov r0, r3 - 8004d6a: 3710 adds r7, #16 - 8004d6c: 46bd mov sp, r7 - 8004d6e: bd80 pop {r7, pc} + 8004cfc: 4618 mov r0, r3 + 8004cfe: 3710 adds r7, #16 + 8004d00: 46bd mov sp, r7 + 8004d02: bd80 pop {r7, pc} -08004d70 <_lv_indev_scroll_handler>: +08004d04 <_lv_indev_scroll_handler>: /********************** * GLOBAL FUNCTIONS **********************/ void _lv_indev_scroll_handler(_lv_indev_proc_t * proc) { - 8004d70: b580 push {r7, lr} - 8004d72: b08a sub sp, #40 ; 0x28 - 8004d74: af02 add r7, sp, #8 - 8004d76: 6078 str r0, [r7, #4] + 8004d04: b580 push {r7, lr} + 8004d06: b08a sub sp, #40 ; 0x28 + 8004d08: af02 add r7, sp, #8 + 8004d0a: 6078 str r0, [r7, #4] lv_obj_t * scroll_obj = proc->types.pointer.scroll_obj; - 8004d78: 687b ldr r3, [r7, #4] - 8004d7a: 6a9b ldr r3, [r3, #40] ; 0x28 - 8004d7c: 61fb str r3, [r7, #28] + 8004d0c: 687b ldr r3, [r7, #4] + 8004d0e: 6a9b ldr r3, [r3, #40] ; 0x28 + 8004d10: 61fb str r3, [r7, #28] /*If there is no scroll object yet try to find one*/ if(scroll_obj == NULL) { - 8004d7e: 69fb ldr r3, [r7, #28] - 8004d80: 2b00 cmp r3, #0 - 8004d82: d131 bne.n 8004de8 <_lv_indev_scroll_handler+0x78> + 8004d12: 69fb ldr r3, [r7, #28] + 8004d14: 2b00 cmp r3, #0 + 8004d16: d131 bne.n 8004d7c <_lv_indev_scroll_handler+0x78> proc->types.pointer.scroll_sum.x += proc->types.pointer.vect.x; - 8004d84: 687b ldr r3, [r7, #4] - 8004d86: f9b3 3014 ldrsh.w r3, [r3, #20] - 8004d8a: b29a uxth r2, r3 - 8004d8c: 687b ldr r3, [r7, #4] - 8004d8e: f9b3 3010 ldrsh.w r3, [r3, #16] - 8004d92: b29b uxth r3, r3 - 8004d94: 4413 add r3, r2 - 8004d96: b29b uxth r3, r3 - 8004d98: b21a sxth r2, r3 - 8004d9a: 687b ldr r3, [r7, #4] - 8004d9c: 829a strh r2, [r3, #20] + 8004d18: 687b ldr r3, [r7, #4] + 8004d1a: f9b3 3014 ldrsh.w r3, [r3, #20] + 8004d1e: b29a uxth r2, r3 + 8004d20: 687b ldr r3, [r7, #4] + 8004d22: f9b3 3010 ldrsh.w r3, [r3, #16] + 8004d26: b29b uxth r3, r3 + 8004d28: 4413 add r3, r2 + 8004d2a: b29b uxth r3, r3 + 8004d2c: b21a sxth r2, r3 + 8004d2e: 687b ldr r3, [r7, #4] + 8004d30: 829a strh r2, [r3, #20] proc->types.pointer.scroll_sum.y += proc->types.pointer.vect.y; - 8004d9e: 687b ldr r3, [r7, #4] - 8004da0: f9b3 3016 ldrsh.w r3, [r3, #22] - 8004da4: b29a uxth r2, r3 - 8004da6: 687b ldr r3, [r7, #4] - 8004da8: f9b3 3012 ldrsh.w r3, [r3, #18] - 8004dac: b29b uxth r3, r3 - 8004dae: 4413 add r3, r2 - 8004db0: b29b uxth r3, r3 - 8004db2: b21a sxth r2, r3 - 8004db4: 687b ldr r3, [r7, #4] - 8004db6: 82da strh r2, [r3, #22] + 8004d32: 687b ldr r3, [r7, #4] + 8004d34: f9b3 3016 ldrsh.w r3, [r3, #22] + 8004d38: b29a uxth r2, r3 + 8004d3a: 687b ldr r3, [r7, #4] + 8004d3c: f9b3 3012 ldrsh.w r3, [r3, #18] + 8004d40: b29b uxth r3, r3 + 8004d42: 4413 add r3, r2 + 8004d44: b29b uxth r3, r3 + 8004d46: b21a sxth r2, r3 + 8004d48: 687b ldr r3, [r7, #4] + 8004d4a: 82da strh r2, [r3, #22] scroll_obj = find_scroll_obj(proc); - 8004db8: 6878 ldr r0, [r7, #4] - 8004dba: f000 fa97 bl 80052ec - 8004dbe: 61f8 str r0, [r7, #28] + 8004d4c: 6878 ldr r0, [r7, #4] + 8004d4e: f000 fa97 bl 8005280 + 8004d52: 61f8 str r0, [r7, #28] if(scroll_obj == NULL) return; - 8004dc0: 69fb ldr r3, [r7, #28] - 8004dc2: 2b00 cmp r3, #0 - 8004dc4: f000 80b2 beq.w 8004f2c <_lv_indev_scroll_handler+0x1bc> + 8004d54: 69fb ldr r3, [r7, #28] + 8004d56: 2b00 cmp r3, #0 + 8004d58: f000 80b2 beq.w 8004ec0 <_lv_indev_scroll_handler+0x1bc> init_scroll_limits(proc); - 8004dc8: 6878 ldr r0, [r7, #4] - 8004dca: f000 fc1f bl 800560c + 8004d5c: 6878 ldr r0, [r7, #4] + 8004d5e: f000 fc1f bl 80055a0 lv_event_send(scroll_obj, LV_EVENT_SCROLL_BEGIN, NULL); - 8004dce: 2200 movs r2, #0 - 8004dd0: 2109 movs r1, #9 - 8004dd2: 69f8 ldr r0, [r7, #28] - 8004dd4: f7fd fb54 bl 8002480 + 8004d62: 2200 movs r2, #0 + 8004d64: 2109 movs r1, #9 + 8004d66: 69f8 ldr r0, [r7, #28] + 8004d68: f7fd fb54 bl 8002414 if(proc->reset_query) return; - 8004dd8: 687b ldr r3, [r7, #4] - 8004dda: 785b ldrb r3, [r3, #1] - 8004ddc: f003 0302 and.w r3, r3, #2 - 8004de0: b2db uxtb r3, r3 - 8004de2: 2b00 cmp r3, #0 - 8004de4: f040 80a4 bne.w 8004f30 <_lv_indev_scroll_handler+0x1c0> + 8004d6c: 687b ldr r3, [r7, #4] + 8004d6e: 785b ldrb r3, [r3, #1] + 8004d70: f003 0302 and.w r3, r3, #2 + 8004d74: b2db uxtb r3, r3 + 8004d76: 2b00 cmp r3, #0 + 8004d78: f040 80a4 bne.w 8004ec4 <_lv_indev_scroll_handler+0x1c0> } /*Set new position or scroll if the vector is not zero*/ if(proc->types.pointer.vect.x != 0 || proc->types.pointer.vect.y != 0) { - 8004de8: 687b ldr r3, [r7, #4] - 8004dea: f9b3 3010 ldrsh.w r3, [r3, #16] - 8004dee: 2b00 cmp r3, #0 - 8004df0: d105 bne.n 8004dfe <_lv_indev_scroll_handler+0x8e> - 8004df2: 687b ldr r3, [r7, #4] - 8004df4: f9b3 3012 ldrsh.w r3, [r3, #18] - 8004df8: 2b00 cmp r3, #0 - 8004dfa: f000 809a beq.w 8004f32 <_lv_indev_scroll_handler+0x1c2> + 8004d7c: 687b ldr r3, [r7, #4] + 8004d7e: f9b3 3010 ldrsh.w r3, [r3, #16] + 8004d82: 2b00 cmp r3, #0 + 8004d84: d105 bne.n 8004d92 <_lv_indev_scroll_handler+0x8e> + 8004d86: 687b ldr r3, [r7, #4] + 8004d88: f9b3 3012 ldrsh.w r3, [r3, #18] + 8004d8c: 2b00 cmp r3, #0 + 8004d8e: f000 809a beq.w 8004ec6 <_lv_indev_scroll_handler+0x1c2> lv_coord_t diff_x = 0; - 8004dfe: 2300 movs r3, #0 - 8004e00: 823b strh r3, [r7, #16] + 8004d92: 2300 movs r3, #0 + 8004d94: 823b strh r3, [r7, #16] lv_coord_t diff_y = 0; - 8004e02: 2300 movs r3, #0 - 8004e04: 81fb strh r3, [r7, #14] + 8004d96: 2300 movs r3, #0 + 8004d98: 81fb strh r3, [r7, #14] if(proc->types.pointer.scroll_dir == LV_DIR_HOR) { - 8004e06: 687b ldr r3, [r7, #4] - 8004e08: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 8004e0c: f003 030f and.w r3, r3, #15 - 8004e10: b2db uxtb r3, r3 - 8004e12: 2b03 cmp r3, #3 - 8004e14: d118 bne.n 8004e48 <_lv_indev_scroll_handler+0xd8> + 8004d9a: 687b ldr r3, [r7, #4] + 8004d9c: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 8004da0: f003 030f and.w r3, r3, #15 + 8004da4: b2db uxtb r3, r3 + 8004da6: 2b03 cmp r3, #3 + 8004da8: d118 bne.n 8004ddc <_lv_indev_scroll_handler+0xd8> lv_coord_t sr = lv_obj_get_scroll_right(scroll_obj); - 8004e16: 69f8 ldr r0, [r7, #28] - 8004e18: f006 ff1a bl 800bc50 - 8004e1c: 4603 mov r3, r0 - 8004e1e: 82fb strh r3, [r7, #22] + 8004daa: 69f8 ldr r0, [r7, #28] + 8004dac: f006 ff1a bl 800bbe4 + 8004db0: 4603 mov r3, r0 + 8004db2: 82fb strh r3, [r7, #22] lv_coord_t sl = lv_obj_get_scroll_left(scroll_obj); - 8004e20: 69f8 ldr r0, [r7, #28] - 8004e22: f006 fe71 bl 800bb08 - 8004e26: 4603 mov r3, r0 - 8004e28: 82bb strh r3, [r7, #20] + 8004db4: 69f8 ldr r0, [r7, #28] + 8004db6: f006 fe71 bl 800ba9c + 8004dba: 4603 mov r3, r0 + 8004dbc: 82bb strh r3, [r7, #20] diff_x = elastic_diff(scroll_obj, proc->types.pointer.vect.x, sl, sr, LV_DIR_HOR); - 8004e2a: 687b ldr r3, [r7, #4] - 8004e2c: f9b3 1010 ldrsh.w r1, [r3, #16] - 8004e30: f9b7 3016 ldrsh.w r3, [r7, #22] - 8004e34: f9b7 2014 ldrsh.w r2, [r7, #20] - 8004e38: 2003 movs r0, #3 - 8004e3a: 9000 str r0, [sp, #0] - 8004e3c: 69f8 ldr r0, [r7, #28] - 8004e3e: f000 ffc3 bl 8005dc8 - 8004e42: 4603 mov r3, r0 - 8004e44: 823b strh r3, [r7, #16] - 8004e46: e017 b.n 8004e78 <_lv_indev_scroll_handler+0x108> + 8004dbe: 687b ldr r3, [r7, #4] + 8004dc0: f9b3 1010 ldrsh.w r1, [r3, #16] + 8004dc4: f9b7 3016 ldrsh.w r3, [r7, #22] + 8004dc8: f9b7 2014 ldrsh.w r2, [r7, #20] + 8004dcc: 2003 movs r0, #3 + 8004dce: 9000 str r0, [sp, #0] + 8004dd0: 69f8 ldr r0, [r7, #28] + 8004dd2: f000 ffc3 bl 8005d5c + 8004dd6: 4603 mov r3, r0 + 8004dd8: 823b strh r3, [r7, #16] + 8004dda: e017 b.n 8004e0c <_lv_indev_scroll_handler+0x108> } else { lv_coord_t st = lv_obj_get_scroll_top(scroll_obj); - 8004e48: 69f8 ldr r0, [r7, #28] - 8004e4a: f006 fdbf bl 800b9cc - 8004e4e: 4603 mov r3, r0 - 8004e50: 837b strh r3, [r7, #26] + 8004ddc: 69f8 ldr r0, [r7, #28] + 8004dde: f006 fdbf bl 800b960 + 8004de2: 4603 mov r3, r0 + 8004de4: 837b strh r3, [r7, #26] lv_coord_t sb = lv_obj_get_scroll_bottom(scroll_obj); - 8004e52: 69f8 ldr r0, [r7, #28] - 8004e54: f006 fdd2 bl 800b9fc - 8004e58: 4603 mov r3, r0 - 8004e5a: 833b strh r3, [r7, #24] + 8004de6: 69f8 ldr r0, [r7, #28] + 8004de8: f006 fdd2 bl 800b990 + 8004dec: 4603 mov r3, r0 + 8004dee: 833b strh r3, [r7, #24] diff_y = elastic_diff(scroll_obj, proc->types.pointer.vect.y, st, sb, LV_DIR_VER); - 8004e5c: 687b ldr r3, [r7, #4] - 8004e5e: f9b3 1012 ldrsh.w r1, [r3, #18] - 8004e62: f9b7 3018 ldrsh.w r3, [r7, #24] - 8004e66: f9b7 201a ldrsh.w r2, [r7, #26] - 8004e6a: 200c movs r0, #12 - 8004e6c: 9000 str r0, [sp, #0] - 8004e6e: 69f8 ldr r0, [r7, #28] - 8004e70: f000 ffaa bl 8005dc8 - 8004e74: 4603 mov r3, r0 - 8004e76: 81fb strh r3, [r7, #14] + 8004df0: 687b ldr r3, [r7, #4] + 8004df2: f9b3 1012 ldrsh.w r1, [r3, #18] + 8004df6: f9b7 3018 ldrsh.w r3, [r7, #24] + 8004dfa: f9b7 201a ldrsh.w r2, [r7, #26] + 8004dfe: 200c movs r0, #12 + 8004e00: 9000 str r0, [sp, #0] + 8004e02: 69f8 ldr r0, [r7, #28] + 8004e04: f000 ffaa bl 8005d5c + 8004e08: 4603 mov r3, r0 + 8004e0a: 81fb strh r3, [r7, #14] } lv_dir_t scroll_dir = lv_obj_get_scroll_dir(scroll_obj); - 8004e78: 69f8 ldr r0, [r7, #28] - 8004e7a: f006 fd3a bl 800b8f2 - 8004e7e: 4603 mov r3, r0 - 8004e80: 74fb strb r3, [r7, #19] + 8004e0c: 69f8 ldr r0, [r7, #28] + 8004e0e: f006 fd3a bl 800b886 + 8004e12: 4603 mov r3, r0 + 8004e14: 74fb strb r3, [r7, #19] if((scroll_dir & LV_DIR_LEFT) == 0 && diff_x > 0) diff_x = 0; - 8004e82: 7cfb ldrb r3, [r7, #19] - 8004e84: f003 0301 and.w r3, r3, #1 - 8004e88: 2b00 cmp r3, #0 - 8004e8a: d105 bne.n 8004e98 <_lv_indev_scroll_handler+0x128> - 8004e8c: f9b7 3010 ldrsh.w r3, [r7, #16] - 8004e90: 2b00 cmp r3, #0 - 8004e92: dd01 ble.n 8004e98 <_lv_indev_scroll_handler+0x128> - 8004e94: 2300 movs r3, #0 - 8004e96: 823b strh r3, [r7, #16] + 8004e16: 7cfb ldrb r3, [r7, #19] + 8004e18: f003 0301 and.w r3, r3, #1 + 8004e1c: 2b00 cmp r3, #0 + 8004e1e: d105 bne.n 8004e2c <_lv_indev_scroll_handler+0x128> + 8004e20: f9b7 3010 ldrsh.w r3, [r7, #16] + 8004e24: 2b00 cmp r3, #0 + 8004e26: dd01 ble.n 8004e2c <_lv_indev_scroll_handler+0x128> + 8004e28: 2300 movs r3, #0 + 8004e2a: 823b strh r3, [r7, #16] if((scroll_dir & LV_DIR_RIGHT) == 0 && diff_x < 0) diff_x = 0; - 8004e98: 7cfb ldrb r3, [r7, #19] - 8004e9a: f003 0302 and.w r3, r3, #2 - 8004e9e: 2b00 cmp r3, #0 - 8004ea0: d105 bne.n 8004eae <_lv_indev_scroll_handler+0x13e> - 8004ea2: f9b7 3010 ldrsh.w r3, [r7, #16] - 8004ea6: 2b00 cmp r3, #0 - 8004ea8: da01 bge.n 8004eae <_lv_indev_scroll_handler+0x13e> - 8004eaa: 2300 movs r3, #0 - 8004eac: 823b strh r3, [r7, #16] + 8004e2c: 7cfb ldrb r3, [r7, #19] + 8004e2e: f003 0302 and.w r3, r3, #2 + 8004e32: 2b00 cmp r3, #0 + 8004e34: d105 bne.n 8004e42 <_lv_indev_scroll_handler+0x13e> + 8004e36: f9b7 3010 ldrsh.w r3, [r7, #16] + 8004e3a: 2b00 cmp r3, #0 + 8004e3c: da01 bge.n 8004e42 <_lv_indev_scroll_handler+0x13e> + 8004e3e: 2300 movs r3, #0 + 8004e40: 823b strh r3, [r7, #16] if((scroll_dir & LV_DIR_TOP) == 0 && diff_y > 0) diff_y = 0; - 8004eae: 7cfb ldrb r3, [r7, #19] - 8004eb0: f003 0304 and.w r3, r3, #4 - 8004eb4: 2b00 cmp r3, #0 - 8004eb6: d105 bne.n 8004ec4 <_lv_indev_scroll_handler+0x154> - 8004eb8: f9b7 300e ldrsh.w r3, [r7, #14] - 8004ebc: 2b00 cmp r3, #0 - 8004ebe: dd01 ble.n 8004ec4 <_lv_indev_scroll_handler+0x154> - 8004ec0: 2300 movs r3, #0 - 8004ec2: 81fb strh r3, [r7, #14] + 8004e42: 7cfb ldrb r3, [r7, #19] + 8004e44: f003 0304 and.w r3, r3, #4 + 8004e48: 2b00 cmp r3, #0 + 8004e4a: d105 bne.n 8004e58 <_lv_indev_scroll_handler+0x154> + 8004e4c: f9b7 300e ldrsh.w r3, [r7, #14] + 8004e50: 2b00 cmp r3, #0 + 8004e52: dd01 ble.n 8004e58 <_lv_indev_scroll_handler+0x154> + 8004e54: 2300 movs r3, #0 + 8004e56: 81fb strh r3, [r7, #14] if((scroll_dir & LV_DIR_BOTTOM) == 0 && diff_y < 0) diff_y = 0; - 8004ec4: 7cfb ldrb r3, [r7, #19] - 8004ec6: f003 0308 and.w r3, r3, #8 - 8004eca: 2b00 cmp r3, #0 - 8004ecc: d105 bne.n 8004eda <_lv_indev_scroll_handler+0x16a> - 8004ece: f9b7 300e ldrsh.w r3, [r7, #14] - 8004ed2: 2b00 cmp r3, #0 - 8004ed4: da01 bge.n 8004eda <_lv_indev_scroll_handler+0x16a> - 8004ed6: 2300 movs r3, #0 - 8004ed8: 81fb strh r3, [r7, #14] + 8004e58: 7cfb ldrb r3, [r7, #19] + 8004e5a: f003 0308 and.w r3, r3, #8 + 8004e5e: 2b00 cmp r3, #0 + 8004e60: d105 bne.n 8004e6e <_lv_indev_scroll_handler+0x16a> + 8004e62: f9b7 300e ldrsh.w r3, [r7, #14] + 8004e66: 2b00 cmp r3, #0 + 8004e68: da01 bge.n 8004e6e <_lv_indev_scroll_handler+0x16a> + 8004e6a: 2300 movs r3, #0 + 8004e6c: 81fb strh r3, [r7, #14] /*Respect the scroll limit area*/ scroll_limit_diff(proc, &diff_x, &diff_y); - 8004eda: f107 020e add.w r2, r7, #14 - 8004ede: f107 0310 add.w r3, r7, #16 - 8004ee2: 4619 mov r1, r3 - 8004ee4: 6878 ldr r0, [r7, #4] - 8004ee6: f000 fe91 bl 8005c0c + 8004e6e: f107 020e add.w r2, r7, #14 + 8004e72: f107 0310 add.w r3, r7, #16 + 8004e76: 4619 mov r1, r3 + 8004e78: 6878 ldr r0, [r7, #4] + 8004e7a: f000 fe91 bl 8005ba0 lv_obj_scroll_by(scroll_obj, diff_x, diff_y, LV_ANIM_OFF); - 8004eea: f9b7 1010 ldrsh.w r1, [r7, #16] - 8004eee: f9b7 200e ldrsh.w r2, [r7, #14] - 8004ef2: 2300 movs r3, #0 - 8004ef4: 69f8 ldr r0, [r7, #28] - 8004ef6: f007 f84d bl 800bf94 + 8004e7e: f9b7 1010 ldrsh.w r1, [r7, #16] + 8004e82: f9b7 200e ldrsh.w r2, [r7, #14] + 8004e86: 2300 movs r3, #0 + 8004e88: 69f8 ldr r0, [r7, #28] + 8004e8a: f007 f84d bl 800bf28 proc->types.pointer.scroll_sum.x += diff_x; - 8004efa: 687b ldr r3, [r7, #4] - 8004efc: f9b3 3014 ldrsh.w r3, [r3, #20] - 8004f00: b29a uxth r2, r3 - 8004f02: f9b7 3010 ldrsh.w r3, [r7, #16] - 8004f06: b29b uxth r3, r3 - 8004f08: 4413 add r3, r2 - 8004f0a: b29b uxth r3, r3 - 8004f0c: b21a sxth r2, r3 - 8004f0e: 687b ldr r3, [r7, #4] - 8004f10: 829a strh r2, [r3, #20] + 8004e8e: 687b ldr r3, [r7, #4] + 8004e90: f9b3 3014 ldrsh.w r3, [r3, #20] + 8004e94: b29a uxth r2, r3 + 8004e96: f9b7 3010 ldrsh.w r3, [r7, #16] + 8004e9a: b29b uxth r3, r3 + 8004e9c: 4413 add r3, r2 + 8004e9e: b29b uxth r3, r3 + 8004ea0: b21a sxth r2, r3 + 8004ea2: 687b ldr r3, [r7, #4] + 8004ea4: 829a strh r2, [r3, #20] proc->types.pointer.scroll_sum.y += diff_y; - 8004f12: 687b ldr r3, [r7, #4] - 8004f14: f9b3 3016 ldrsh.w r3, [r3, #22] - 8004f18: b29a uxth r2, r3 - 8004f1a: f9b7 300e ldrsh.w r3, [r7, #14] - 8004f1e: b29b uxth r3, r3 - 8004f20: 4413 add r3, r2 - 8004f22: b29b uxth r3, r3 - 8004f24: b21a sxth r2, r3 - 8004f26: 687b ldr r3, [r7, #4] - 8004f28: 82da strh r2, [r3, #22] - 8004f2a: e002 b.n 8004f32 <_lv_indev_scroll_handler+0x1c2> + 8004ea6: 687b ldr r3, [r7, #4] + 8004ea8: f9b3 3016 ldrsh.w r3, [r3, #22] + 8004eac: b29a uxth r2, r3 + 8004eae: f9b7 300e ldrsh.w r3, [r7, #14] + 8004eb2: b29b uxth r3, r3 + 8004eb4: 4413 add r3, r2 + 8004eb6: b29b uxth r3, r3 + 8004eb8: b21a sxth r2, r3 + 8004eba: 687b ldr r3, [r7, #4] + 8004ebc: 82da strh r2, [r3, #22] + 8004ebe: e002 b.n 8004ec6 <_lv_indev_scroll_handler+0x1c2> if(scroll_obj == NULL) return; - 8004f2c: bf00 nop - 8004f2e: e000 b.n 8004f32 <_lv_indev_scroll_handler+0x1c2> + 8004ec0: bf00 nop + 8004ec2: e000 b.n 8004ec6 <_lv_indev_scroll_handler+0x1c2> if(proc->reset_query) return; - 8004f30: bf00 nop + 8004ec4: bf00 nop } } - 8004f32: 3720 adds r7, #32 - 8004f34: 46bd mov sp, r7 - 8004f36: bd80 pop {r7, pc} + 8004ec6: 3720 adds r7, #32 + 8004ec8: 46bd mov sp, r7 + 8004eca: bd80 pop {r7, pc} -08004f38 <_lv_indev_scroll_throw_handler>: +08004ecc <_lv_indev_scroll_throw_handler>: void _lv_indev_scroll_throw_handler(_lv_indev_proc_t * proc) { - 8004f38: b580 push {r7, lr} - 8004f3a: b08e sub sp, #56 ; 0x38 - 8004f3c: af02 add r7, sp, #8 - 8004f3e: 6078 str r0, [r7, #4] + 8004ecc: b580 push {r7, lr} + 8004ece: b08e sub sp, #56 ; 0x38 + 8004ed0: af02 add r7, sp, #8 + 8004ed2: 6078 str r0, [r7, #4] lv_obj_t * scroll_obj = proc->types.pointer.scroll_obj; - 8004f40: 687b ldr r3, [r7, #4] - 8004f42: 6a9b ldr r3, [r3, #40] ; 0x28 - 8004f44: 62fb str r3, [r7, #44] ; 0x2c + 8004ed4: 687b ldr r3, [r7, #4] + 8004ed6: 6a9b ldr r3, [r3, #40] ; 0x28 + 8004ed8: 62fb str r3, [r7, #44] ; 0x2c if(scroll_obj == NULL) return; - 8004f46: 6afb ldr r3, [r7, #44] ; 0x2c - 8004f48: 2b00 cmp r3, #0 - 8004f4a: f000 8180 beq.w 800524e <_lv_indev_scroll_throw_handler+0x316> + 8004eda: 6afb ldr r3, [r7, #44] ; 0x2c + 8004edc: 2b00 cmp r3, #0 + 8004ede: f000 8180 beq.w 80051e2 <_lv_indev_scroll_throw_handler+0x316> if(proc->types.pointer.scroll_dir == LV_DIR_NONE) return; - 8004f4e: 687b ldr r3, [r7, #4] - 8004f50: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 8004f54: f003 030f and.w r3, r3, #15 - 8004f58: b2db uxtb r3, r3 - 8004f5a: 2b00 cmp r3, #0 - 8004f5c: f000 8179 beq.w 8005252 <_lv_indev_scroll_throw_handler+0x31a> + 8004ee2: 687b ldr r3, [r7, #4] + 8004ee4: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 8004ee8: f003 030f and.w r3, r3, #15 + 8004eec: b2db uxtb r3, r3 + 8004eee: 2b00 cmp r3, #0 + 8004ef0: f000 8179 beq.w 80051e6 <_lv_indev_scroll_throw_handler+0x31a> lv_indev_t * indev_act = lv_indev_get_act(); - 8004f60: f7fe f9da bl 8003318 - 8004f64: 62b8 str r0, [r7, #40] ; 0x28 + 8004ef4: f7fe f9da bl 80032ac + 8004ef8: 62b8 str r0, [r7, #40] ; 0x28 lv_coord_t scroll_throw = indev_act->driver->scroll_throw; - 8004f66: 6abb ldr r3, [r7, #40] ; 0x28 - 8004f68: 681b ldr r3, [r3, #0] - 8004f6a: 7e5b ldrb r3, [r3, #25] - 8004f6c: 84fb strh r3, [r7, #38] ; 0x26 + 8004efa: 6abb ldr r3, [r7, #40] ; 0x28 + 8004efc: 681b ldr r3, [r3, #0] + 8004efe: 7e5b ldrb r3, [r3, #25] + 8004f00: 84fb strh r3, [r7, #38] ; 0x26 if(lv_obj_has_flag(scroll_obj, LV_OBJ_FLAG_SCROLL_MOMENTUM) == false) { - 8004f6e: 2140 movs r1, #64 ; 0x40 - 8004f70: 6af8 ldr r0, [r7, #44] ; 0x2c - 8004f72: f001 fc06 bl 8006782 - 8004f76: 4603 mov r3, r0 - 8004f78: f083 0301 eor.w r3, r3, #1 - 8004f7c: b2db uxtb r3, r3 - 8004f7e: 2b00 cmp r3, #0 - 8004f80: d005 beq.n 8004f8e <_lv_indev_scroll_throw_handler+0x56> + 8004f02: 2140 movs r1, #64 ; 0x40 + 8004f04: 6af8 ldr r0, [r7, #44] ; 0x2c + 8004f06: f001 fc06 bl 8006716 + 8004f0a: 4603 mov r3, r0 + 8004f0c: f083 0301 eor.w r3, r3, #1 + 8004f10: b2db uxtb r3, r3 + 8004f12: 2b00 cmp r3, #0 + 8004f14: d005 beq.n 8004f22 <_lv_indev_scroll_throw_handler+0x56> proc->types.pointer.scroll_throw_vect.y = 0; - 8004f82: 687b ldr r3, [r7, #4] - 8004f84: 2200 movs r2, #0 - 8004f86: 835a strh r2, [r3, #26] + 8004f16: 687b ldr r3, [r7, #4] + 8004f18: 2200 movs r2, #0 + 8004f1a: 835a strh r2, [r3, #26] proc->types.pointer.scroll_throw_vect.x = 0; - 8004f88: 687b ldr r3, [r7, #4] - 8004f8a: 2200 movs r2, #0 - 8004f8c: 831a strh r2, [r3, #24] + 8004f1c: 687b ldr r3, [r7, #4] + 8004f1e: 2200 movs r2, #0 + 8004f20: 831a strh r2, [r3, #24] } lv_scroll_snap_t align_x = lv_obj_get_scroll_snap_x(scroll_obj); - 8004f8e: 6af8 ldr r0, [r7, #44] ; 0x2c - 8004f90: f006 fcc4 bl 800b91c - 8004f94: 4603 mov r3, r0 - 8004f96: f887 3025 strb.w r3, [r7, #37] ; 0x25 + 8004f22: 6af8 ldr r0, [r7, #44] ; 0x2c + 8004f24: f006 fcc4 bl 800b8b0 + 8004f28: 4603 mov r3, r0 + 8004f2a: f887 3025 strb.w r3, [r7, #37] ; 0x25 lv_scroll_snap_t align_y = lv_obj_get_scroll_snap_y(scroll_obj); - 8004f9a: 6af8 ldr r0, [r7, #44] ; 0x2c - 8004f9c: f006 fcd3 bl 800b946 - 8004fa0: 4603 mov r3, r0 - 8004fa2: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 8004f2e: 6af8 ldr r0, [r7, #44] ; 0x2c + 8004f30: f006 fcd3 bl 800b8da + 8004f34: 4603 mov r3, r0 + 8004f36: f887 3024 strb.w r3, [r7, #36] ; 0x24 if(proc->types.pointer.scroll_dir == LV_DIR_VER) { - 8004fa6: 687b ldr r3, [r7, #4] - 8004fa8: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 8004fac: f003 030f and.w r3, r3, #15 - 8004fb0: b2db uxtb r3, r3 - 8004fb2: 2b0c cmp r3, #12 - 8004fb4: d162 bne.n 800507c <_lv_indev_scroll_throw_handler+0x144> + 8004f3a: 687b ldr r3, [r7, #4] + 8004f3c: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 8004f40: f003 030f and.w r3, r3, #15 + 8004f44: b2db uxtb r3, r3 + 8004f46: 2b0c cmp r3, #12 + 8004f48: d162 bne.n 8005010 <_lv_indev_scroll_throw_handler+0x144> proc->types.pointer.scroll_throw_vect.x = 0; - 8004fb6: 687b ldr r3, [r7, #4] - 8004fb8: 2200 movs r2, #0 - 8004fba: 831a strh r2, [r3, #24] + 8004f4a: 687b ldr r3, [r7, #4] + 8004f4c: 2200 movs r2, #0 + 8004f4e: 831a strh r2, [r3, #24] /*If no snapping "throw"*/ if(align_y == LV_SCROLL_SNAP_NONE) { - 8004fbc: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 8004fc0: 2b00 cmp r3, #0 - 8004fc2: d135 bne.n 8005030 <_lv_indev_scroll_throw_handler+0xf8> + 8004f50: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 + 8004f54: 2b00 cmp r3, #0 + 8004f56: d135 bne.n 8004fc4 <_lv_indev_scroll_throw_handler+0xf8> proc->types.pointer.scroll_throw_vect.y = proc->types.pointer.scroll_throw_vect.y * (100 - scroll_throw) / 100; - 8004fc4: 687b ldr r3, [r7, #4] - 8004fc6: f9b3 301a ldrsh.w r3, [r3, #26] - 8004fca: 461a mov r2, r3 - 8004fcc: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 8004fd0: f1c3 0364 rsb r3, r3, #100 ; 0x64 - 8004fd4: fb02 f303 mul.w r3, r2, r3 - 8004fd8: 4aa1 ldr r2, [pc, #644] ; (8005260 <_lv_indev_scroll_throw_handler+0x328>) - 8004fda: fb82 1203 smull r1, r2, r2, r3 - 8004fde: 1152 asrs r2, r2, #5 - 8004fe0: 17db asrs r3, r3, #31 - 8004fe2: 1ad3 subs r3, r2, r3 + 8004f58: 687b ldr r3, [r7, #4] + 8004f5a: f9b3 301a ldrsh.w r3, [r3, #26] + 8004f5e: 461a mov r2, r3 + 8004f60: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 8004f64: f1c3 0364 rsb r3, r3, #100 ; 0x64 + 8004f68: fb02 f303 mul.w r3, r2, r3 + 8004f6c: 4aa1 ldr r2, [pc, #644] ; (80051f4 <_lv_indev_scroll_throw_handler+0x328>) + 8004f6e: fb82 1203 smull r1, r2, r2, r3 + 8004f72: 1152 asrs r2, r2, #5 + 8004f74: 17db asrs r3, r3, #31 + 8004f76: 1ad3 subs r3, r2, r3 proc->types.pointer.scroll_throw_vect.y = - 8004fe4: b21a sxth r2, r3 - 8004fe6: 687b ldr r3, [r7, #4] - 8004fe8: 835a strh r2, [r3, #26] + 8004f78: b21a sxth r2, r3 + 8004f7a: 687b ldr r3, [r7, #4] + 8004f7c: 835a strh r2, [r3, #26] lv_coord_t sb = lv_obj_get_scroll_bottom(scroll_obj); - 8004fea: 6af8 ldr r0, [r7, #44] ; 0x2c - 8004fec: f006 fd06 bl 800b9fc - 8004ff0: 4603 mov r3, r0 - 8004ff2: 837b strh r3, [r7, #26] + 8004f7e: 6af8 ldr r0, [r7, #44] ; 0x2c + 8004f80: f006 fd06 bl 800b990 + 8004f84: 4603 mov r3, r0 + 8004f86: 837b strh r3, [r7, #26] lv_coord_t st = lv_obj_get_scroll_top(scroll_obj); - 8004ff4: 6af8 ldr r0, [r7, #44] ; 0x2c - 8004ff6: f006 fce9 bl 800b9cc - 8004ffa: 4603 mov r3, r0 - 8004ffc: 833b strh r3, [r7, #24] + 8004f88: 6af8 ldr r0, [r7, #44] ; 0x2c + 8004f8a: f006 fce9 bl 800b960 + 8004f8e: 4603 mov r3, r0 + 8004f90: 833b strh r3, [r7, #24] proc->types.pointer.scroll_throw_vect.y = elastic_diff(scroll_obj, proc->types.pointer.scroll_throw_vect.y, st, sb, - 8004ffe: 687b ldr r3, [r7, #4] - 8005000: f9b3 101a ldrsh.w r1, [r3, #26] - 8005004: f9b7 301a ldrsh.w r3, [r7, #26] - 8005008: f9b7 2018 ldrsh.w r2, [r7, #24] - 800500c: 200c movs r0, #12 - 800500e: 9000 str r0, [sp, #0] - 8005010: 6af8 ldr r0, [r7, #44] ; 0x2c - 8005012: f000 fed9 bl 8005dc8 - 8005016: 4603 mov r3, r0 - 8005018: 461a mov r2, r3 - 800501a: 687b ldr r3, [r7, #4] - 800501c: 835a strh r2, [r3, #26] + 8004f92: 687b ldr r3, [r7, #4] + 8004f94: f9b3 101a ldrsh.w r1, [r3, #26] + 8004f98: f9b7 301a ldrsh.w r3, [r7, #26] + 8004f9c: f9b7 2018 ldrsh.w r2, [r7, #24] + 8004fa0: 200c movs r0, #12 + 8004fa2: 9000 str r0, [sp, #0] + 8004fa4: 6af8 ldr r0, [r7, #44] ; 0x2c + 8004fa6: f000 fed9 bl 8005d5c + 8004faa: 4603 mov r3, r0 + 8004fac: 461a mov r2, r3 + 8004fae: 687b ldr r3, [r7, #4] + 8004fb0: 835a strh r2, [r3, #26] LV_DIR_VER); lv_obj_scroll_by(scroll_obj, 0, proc->types.pointer.scroll_throw_vect.y, LV_ANIM_OFF); - 800501e: 687b ldr r3, [r7, #4] - 8005020: f9b3 201a ldrsh.w r2, [r3, #26] - 8005024: 2300 movs r3, #0 - 8005026: 2100 movs r1, #0 - 8005028: 6af8 ldr r0, [r7, #44] ; 0x2c - 800502a: f006 ffb3 bl 800bf94 - 800502e: e08f b.n 8005150 <_lv_indev_scroll_throw_handler+0x218> + 8004fb2: 687b ldr r3, [r7, #4] + 8004fb4: f9b3 201a ldrsh.w r2, [r3, #26] + 8004fb8: 2300 movs r3, #0 + 8004fba: 2100 movs r1, #0 + 8004fbc: 6af8 ldr r0, [r7, #44] ; 0x2c + 8004fbe: f006 ffb3 bl 800bf28 + 8004fc2: e08f b.n 80050e4 <_lv_indev_scroll_throw_handler+0x218> } /*With snapping find the nearest snap point and scroll there*/ else { lv_coord_t diff_y = scroll_throw_predict_y(proc); - 8005030: 6878 ldr r0, [r7, #4] - 8005032: f000 fe65 bl 8005d00 - 8005036: 4603 mov r3, r0 - 8005038: 81fb strh r3, [r7, #14] + 8004fc4: 6878 ldr r0, [r7, #4] + 8004fc6: f000 fe65 bl 8005c94 + 8004fca: 4603 mov r3, r0 + 8004fcc: 81fb strh r3, [r7, #14] proc->types.pointer.scroll_throw_vect.y = 0; - 800503a: 687b ldr r3, [r7, #4] - 800503c: 2200 movs r2, #0 - 800503e: 835a strh r2, [r3, #26] + 8004fce: 687b ldr r3, [r7, #4] + 8004fd0: 2200 movs r2, #0 + 8004fd2: 835a strh r2, [r3, #26] scroll_limit_diff(proc, NULL, &diff_y); - 8005040: f107 030e add.w r3, r7, #14 - 8005044: 461a mov r2, r3 - 8005046: 2100 movs r1, #0 - 8005048: 6878 ldr r0, [r7, #4] - 800504a: f000 fddf bl 8005c0c + 8004fd4: f107 030e add.w r3, r7, #14 + 8004fd8: 461a mov r2, r3 + 8004fda: 2100 movs r1, #0 + 8004fdc: 6878 ldr r0, [r7, #4] + 8004fde: f000 fddf bl 8005ba0 lv_coord_t y = find_snap_point_y(scroll_obj, LV_COORD_MIN, LV_COORD_MAX, diff_y); - 800504e: f9b7 300e ldrsh.w r3, [r7, #14] - 8005052: f641 72ff movw r2, #8191 ; 0x1fff - 8005056: 4983 ldr r1, [pc, #524] ; (8005264 <_lv_indev_scroll_throw_handler+0x32c>) - 8005058: 6af8 ldr r0, [r7, #44] ; 0x2c - 800505a: f000 fcf7 bl 8005a4c - 800505e: 4603 mov r3, r0 - 8005060: 83bb strh r3, [r7, #28] + 8004fe2: f9b7 300e ldrsh.w r3, [r7, #14] + 8004fe6: f641 72ff movw r2, #8191 ; 0x1fff + 8004fea: 4983 ldr r1, [pc, #524] ; (80051f8 <_lv_indev_scroll_throw_handler+0x32c>) + 8004fec: 6af8 ldr r0, [r7, #44] ; 0x2c + 8004fee: f000 fcf7 bl 80059e0 + 8004ff2: 4603 mov r3, r0 + 8004ff4: 83bb strh r3, [r7, #28] lv_obj_scroll_by(scroll_obj, 0, diff_y + y, LV_ANIM_ON); - 8005062: f9b7 300e ldrsh.w r3, [r7, #14] - 8005066: b29a uxth r2, r3 - 8005068: 8bbb ldrh r3, [r7, #28] - 800506a: 4413 add r3, r2 - 800506c: b29b uxth r3, r3 - 800506e: b21a sxth r2, r3 - 8005070: 2301 movs r3, #1 - 8005072: 2100 movs r1, #0 - 8005074: 6af8 ldr r0, [r7, #44] ; 0x2c - 8005076: f006 ff8d bl 800bf94 - 800507a: e069 b.n 8005150 <_lv_indev_scroll_throw_handler+0x218> + 8004ff6: f9b7 300e ldrsh.w r3, [r7, #14] + 8004ffa: b29a uxth r2, r3 + 8004ffc: 8bbb ldrh r3, [r7, #28] + 8004ffe: 4413 add r3, r2 + 8005000: b29b uxth r3, r3 + 8005002: b21a sxth r2, r3 + 8005004: 2301 movs r3, #1 + 8005006: 2100 movs r1, #0 + 8005008: 6af8 ldr r0, [r7, #44] ; 0x2c + 800500a: f006 ff8d bl 800bf28 + 800500e: e069 b.n 80050e4 <_lv_indev_scroll_throw_handler+0x218> } } else if(proc->types.pointer.scroll_dir == LV_DIR_HOR) { - 800507c: 687b ldr r3, [r7, #4] - 800507e: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 8005082: f003 030f and.w r3, r3, #15 - 8005086: b2db uxtb r3, r3 - 8005088: 2b03 cmp r3, #3 - 800508a: d161 bne.n 8005150 <_lv_indev_scroll_throw_handler+0x218> + 8005010: 687b ldr r3, [r7, #4] + 8005012: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 8005016: f003 030f and.w r3, r3, #15 + 800501a: b2db uxtb r3, r3 + 800501c: 2b03 cmp r3, #3 + 800501e: d161 bne.n 80050e4 <_lv_indev_scroll_throw_handler+0x218> proc->types.pointer.scroll_throw_vect.y = 0; - 800508c: 687b ldr r3, [r7, #4] - 800508e: 2200 movs r2, #0 - 8005090: 835a strh r2, [r3, #26] + 8005020: 687b ldr r3, [r7, #4] + 8005022: 2200 movs r2, #0 + 8005024: 835a strh r2, [r3, #26] /*If no snapping "throw"*/ if(align_x == LV_SCROLL_SNAP_NONE) { - 8005092: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 - 8005096: 2b00 cmp r3, #0 - 8005098: d135 bne.n 8005106 <_lv_indev_scroll_throw_handler+0x1ce> + 8005026: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 + 800502a: 2b00 cmp r3, #0 + 800502c: d135 bne.n 800509a <_lv_indev_scroll_throw_handler+0x1ce> proc->types.pointer.scroll_throw_vect.x = proc->types.pointer.scroll_throw_vect.x * (100 - scroll_throw) / 100; - 800509a: 687b ldr r3, [r7, #4] - 800509c: f9b3 3018 ldrsh.w r3, [r3, #24] - 80050a0: 461a mov r2, r3 - 80050a2: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 80050a6: f1c3 0364 rsb r3, r3, #100 ; 0x64 - 80050aa: fb02 f303 mul.w r3, r2, r3 - 80050ae: 4a6c ldr r2, [pc, #432] ; (8005260 <_lv_indev_scroll_throw_handler+0x328>) - 80050b0: fb82 1203 smull r1, r2, r2, r3 - 80050b4: 1152 asrs r2, r2, #5 - 80050b6: 17db asrs r3, r3, #31 - 80050b8: 1ad3 subs r3, r2, r3 + 800502e: 687b ldr r3, [r7, #4] + 8005030: f9b3 3018 ldrsh.w r3, [r3, #24] + 8005034: 461a mov r2, r3 + 8005036: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 800503a: f1c3 0364 rsb r3, r3, #100 ; 0x64 + 800503e: fb02 f303 mul.w r3, r2, r3 + 8005042: 4a6c ldr r2, [pc, #432] ; (80051f4 <_lv_indev_scroll_throw_handler+0x328>) + 8005044: fb82 1203 smull r1, r2, r2, r3 + 8005048: 1152 asrs r2, r2, #5 + 800504a: 17db asrs r3, r3, #31 + 800504c: 1ad3 subs r3, r2, r3 proc->types.pointer.scroll_throw_vect.x = - 80050ba: b21a sxth r2, r3 - 80050bc: 687b ldr r3, [r7, #4] - 80050be: 831a strh r2, [r3, #24] + 800504e: b21a sxth r2, r3 + 8005050: 687b ldr r3, [r7, #4] + 8005052: 831a strh r2, [r3, #24] lv_coord_t sl = lv_obj_get_scroll_left(scroll_obj); - 80050c0: 6af8 ldr r0, [r7, #44] ; 0x2c - 80050c2: f006 fd21 bl 800bb08 - 80050c6: 4603 mov r3, r0 - 80050c8: 843b strh r3, [r7, #32] + 8005054: 6af8 ldr r0, [r7, #44] ; 0x2c + 8005056: f006 fd21 bl 800ba9c + 800505a: 4603 mov r3, r0 + 800505c: 843b strh r3, [r7, #32] lv_coord_t sr = lv_obj_get_scroll_right(scroll_obj); - 80050ca: 6af8 ldr r0, [r7, #44] ; 0x2c - 80050cc: f006 fdc0 bl 800bc50 - 80050d0: 4603 mov r3, r0 - 80050d2: 83fb strh r3, [r7, #30] + 800505e: 6af8 ldr r0, [r7, #44] ; 0x2c + 8005060: f006 fdc0 bl 800bbe4 + 8005064: 4603 mov r3, r0 + 8005066: 83fb strh r3, [r7, #30] proc->types.pointer.scroll_throw_vect.x = elastic_diff(scroll_obj, proc->types.pointer.scroll_throw_vect.x, sl, sr, - 80050d4: 687b ldr r3, [r7, #4] - 80050d6: f9b3 1018 ldrsh.w r1, [r3, #24] - 80050da: f9b7 301e ldrsh.w r3, [r7, #30] - 80050de: f9b7 2020 ldrsh.w r2, [r7, #32] - 80050e2: 2003 movs r0, #3 - 80050e4: 9000 str r0, [sp, #0] - 80050e6: 6af8 ldr r0, [r7, #44] ; 0x2c - 80050e8: f000 fe6e bl 8005dc8 - 80050ec: 4603 mov r3, r0 - 80050ee: 461a mov r2, r3 - 80050f0: 687b ldr r3, [r7, #4] - 80050f2: 831a strh r2, [r3, #24] + 8005068: 687b ldr r3, [r7, #4] + 800506a: f9b3 1018 ldrsh.w r1, [r3, #24] + 800506e: f9b7 301e ldrsh.w r3, [r7, #30] + 8005072: f9b7 2020 ldrsh.w r2, [r7, #32] + 8005076: 2003 movs r0, #3 + 8005078: 9000 str r0, [sp, #0] + 800507a: 6af8 ldr r0, [r7, #44] ; 0x2c + 800507c: f000 fe6e bl 8005d5c + 8005080: 4603 mov r3, r0 + 8005082: 461a mov r2, r3 + 8005084: 687b ldr r3, [r7, #4] + 8005086: 831a strh r2, [r3, #24] LV_DIR_HOR); lv_obj_scroll_by(scroll_obj, proc->types.pointer.scroll_throw_vect.x, 0, LV_ANIM_OFF); - 80050f4: 687b ldr r3, [r7, #4] - 80050f6: f9b3 1018 ldrsh.w r1, [r3, #24] - 80050fa: 2300 movs r3, #0 - 80050fc: 2200 movs r2, #0 - 80050fe: 6af8 ldr r0, [r7, #44] ; 0x2c - 8005100: f006 ff48 bl 800bf94 - 8005104: e024 b.n 8005150 <_lv_indev_scroll_throw_handler+0x218> + 8005088: 687b ldr r3, [r7, #4] + 800508a: f9b3 1018 ldrsh.w r1, [r3, #24] + 800508e: 2300 movs r3, #0 + 8005090: 2200 movs r2, #0 + 8005092: 6af8 ldr r0, [r7, #44] ; 0x2c + 8005094: f006 ff48 bl 800bf28 + 8005098: e024 b.n 80050e4 <_lv_indev_scroll_throw_handler+0x218> } /*With snapping find the nearest snap point and scroll there*/ else { lv_coord_t diff_x = scroll_throw_predict_x(proc); - 8005106: 6878 ldr r0, [r7, #4] - 8005108: f000 fe2c bl 8005d64 - 800510c: 4603 mov r3, r0 - 800510e: 81bb strh r3, [r7, #12] + 800509a: 6878 ldr r0, [r7, #4] + 800509c: f000 fe2c bl 8005cf8 + 80050a0: 4603 mov r3, r0 + 80050a2: 81bb strh r3, [r7, #12] proc->types.pointer.scroll_throw_vect.x = 0; - 8005110: 687b ldr r3, [r7, #4] - 8005112: 2200 movs r2, #0 - 8005114: 831a strh r2, [r3, #24] + 80050a4: 687b ldr r3, [r7, #4] + 80050a6: 2200 movs r2, #0 + 80050a8: 831a strh r2, [r3, #24] scroll_limit_diff(proc, &diff_x, NULL); - 8005116: f107 030c add.w r3, r7, #12 - 800511a: 2200 movs r2, #0 - 800511c: 4619 mov r1, r3 - 800511e: 6878 ldr r0, [r7, #4] - 8005120: f000 fd74 bl 8005c0c + 80050aa: f107 030c add.w r3, r7, #12 + 80050ae: 2200 movs r2, #0 + 80050b0: 4619 mov r1, r3 + 80050b2: 6878 ldr r0, [r7, #4] + 80050b4: f000 fd74 bl 8005ba0 lv_coord_t x = find_snap_point_x(scroll_obj, LV_COORD_MIN, LV_COORD_MAX, diff_x); - 8005124: f9b7 300c ldrsh.w r3, [r7, #12] - 8005128: f641 72ff movw r2, #8191 ; 0x1fff - 800512c: 494d ldr r1, [pc, #308] ; (8005264 <_lv_indev_scroll_throw_handler+0x32c>) - 800512e: 6af8 ldr r0, [r7, #44] ; 0x2c - 8005130: f000 fbac bl 800588c - 8005134: 4603 mov r3, r0 - 8005136: 847b strh r3, [r7, #34] ; 0x22 + 80050b8: f9b7 300c ldrsh.w r3, [r7, #12] + 80050bc: f641 72ff movw r2, #8191 ; 0x1fff + 80050c0: 494d ldr r1, [pc, #308] ; (80051f8 <_lv_indev_scroll_throw_handler+0x32c>) + 80050c2: 6af8 ldr r0, [r7, #44] ; 0x2c + 80050c4: f000 fbac bl 8005820 + 80050c8: 4603 mov r3, r0 + 80050ca: 847b strh r3, [r7, #34] ; 0x22 lv_obj_scroll_by(scroll_obj, x + diff_x, 0, LV_ANIM_ON); - 8005138: 8c7a ldrh r2, [r7, #34] ; 0x22 - 800513a: f9b7 300c ldrsh.w r3, [r7, #12] - 800513e: b29b uxth r3, r3 - 8005140: 4413 add r3, r2 - 8005142: b29b uxth r3, r3 - 8005144: b219 sxth r1, r3 - 8005146: 2301 movs r3, #1 - 8005148: 2200 movs r2, #0 - 800514a: 6af8 ldr r0, [r7, #44] ; 0x2c - 800514c: f006 ff22 bl 800bf94 + 80050cc: 8c7a ldrh r2, [r7, #34] ; 0x22 + 80050ce: f9b7 300c ldrsh.w r3, [r7, #12] + 80050d2: b29b uxth r3, r3 + 80050d4: 4413 add r3, r2 + 80050d6: b29b uxth r3, r3 + 80050d8: b219 sxth r1, r3 + 80050da: 2301 movs r3, #1 + 80050dc: 2200 movs r2, #0 + 80050de: 6af8 ldr r0, [r7, #44] ; 0x2c + 80050e0: f006 ff22 bl 800bf28 } } /*Check if the scroll has finished*/ if(proc->types.pointer.scroll_throw_vect.x == 0 && proc->types.pointer.scroll_throw_vect.y == 0) { - 8005150: 687b ldr r3, [r7, #4] - 8005152: f9b3 3018 ldrsh.w r3, [r3, #24] - 8005156: 2b00 cmp r3, #0 - 8005158: d17e bne.n 8005258 <_lv_indev_scroll_throw_handler+0x320> - 800515a: 687b ldr r3, [r7, #4] - 800515c: f9b3 301a ldrsh.w r3, [r3, #26] - 8005160: 2b00 cmp r3, #0 - 8005162: d179 bne.n 8005258 <_lv_indev_scroll_throw_handler+0x320> + 80050e4: 687b ldr r3, [r7, #4] + 80050e6: f9b3 3018 ldrsh.w r3, [r3, #24] + 80050ea: 2b00 cmp r3, #0 + 80050ec: d17e bne.n 80051ec <_lv_indev_scroll_throw_handler+0x320> + 80050ee: 687b ldr r3, [r7, #4] + 80050f0: f9b3 301a ldrsh.w r3, [r3, #26] + 80050f4: 2b00 cmp r3, #0 + 80050f6: d179 bne.n 80051ec <_lv_indev_scroll_throw_handler+0x320> /*Revert if scrolled in*/ /*If vertically scrollable and not controlled by snap*/ if(align_y == LV_SCROLL_SNAP_NONE) { - 8005164: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 8005168: 2b00 cmp r3, #0 - 800516a: d12a bne.n 80051c2 <_lv_indev_scroll_throw_handler+0x28a> + 80050f8: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 + 80050fc: 2b00 cmp r3, #0 + 80050fe: d12a bne.n 8005156 <_lv_indev_scroll_throw_handler+0x28a> lv_coord_t st = lv_obj_get_scroll_top(scroll_obj); - 800516c: 6af8 ldr r0, [r7, #44] ; 0x2c - 800516e: f006 fc2d bl 800b9cc - 8005172: 4603 mov r3, r0 - 8005174: 82fb strh r3, [r7, #22] + 8005100: 6af8 ldr r0, [r7, #44] ; 0x2c + 8005102: f006 fc2d bl 800b960 + 8005106: 4603 mov r3, r0 + 8005108: 82fb strh r3, [r7, #22] lv_coord_t sb = lv_obj_get_scroll_bottom(scroll_obj); - 8005176: 6af8 ldr r0, [r7, #44] ; 0x2c - 8005178: f006 fc40 bl 800b9fc - 800517c: 4603 mov r3, r0 - 800517e: 82bb strh r3, [r7, #20] + 800510a: 6af8 ldr r0, [r7, #44] ; 0x2c + 800510c: f006 fc40 bl 800b990 + 8005110: 4603 mov r3, r0 + 8005112: 82bb strh r3, [r7, #20] if(st > 0 || sb > 0) { - 8005180: f9b7 3016 ldrsh.w r3, [r7, #22] - 8005184: 2b00 cmp r3, #0 - 8005186: dc03 bgt.n 8005190 <_lv_indev_scroll_throw_handler+0x258> - 8005188: f9b7 3014 ldrsh.w r3, [r7, #20] - 800518c: 2b00 cmp r3, #0 - 800518e: dd18 ble.n 80051c2 <_lv_indev_scroll_throw_handler+0x28a> + 8005114: f9b7 3016 ldrsh.w r3, [r7, #22] + 8005118: 2b00 cmp r3, #0 + 800511a: dc03 bgt.n 8005124 <_lv_indev_scroll_throw_handler+0x258> + 800511c: f9b7 3014 ldrsh.w r3, [r7, #20] + 8005120: 2b00 cmp r3, #0 + 8005122: dd18 ble.n 8005156 <_lv_indev_scroll_throw_handler+0x28a> if(st < 0) { - 8005190: f9b7 3016 ldrsh.w r3, [r7, #22] - 8005194: 2b00 cmp r3, #0 - 8005196: da07 bge.n 80051a8 <_lv_indev_scroll_throw_handler+0x270> + 8005124: f9b7 3016 ldrsh.w r3, [r7, #22] + 8005128: 2b00 cmp r3, #0 + 800512a: da07 bge.n 800513c <_lv_indev_scroll_throw_handler+0x270> lv_obj_scroll_by(scroll_obj, 0, st, LV_ANIM_ON); - 8005198: f9b7 2016 ldrsh.w r2, [r7, #22] - 800519c: 2301 movs r3, #1 - 800519e: 2100 movs r1, #0 - 80051a0: 6af8 ldr r0, [r7, #44] ; 0x2c - 80051a2: f006 fef7 bl 800bf94 - 80051a6: e00c b.n 80051c2 <_lv_indev_scroll_throw_handler+0x28a> + 800512c: f9b7 2016 ldrsh.w r2, [r7, #22] + 8005130: 2301 movs r3, #1 + 8005132: 2100 movs r1, #0 + 8005134: 6af8 ldr r0, [r7, #44] ; 0x2c + 8005136: f006 fef7 bl 800bf28 + 800513a: e00c b.n 8005156 <_lv_indev_scroll_throw_handler+0x28a> } else if(sb < 0) { - 80051a8: f9b7 3014 ldrsh.w r3, [r7, #20] - 80051ac: 2b00 cmp r3, #0 - 80051ae: da08 bge.n 80051c2 <_lv_indev_scroll_throw_handler+0x28a> + 800513c: f9b7 3014 ldrsh.w r3, [r7, #20] + 8005140: 2b00 cmp r3, #0 + 8005142: da08 bge.n 8005156 <_lv_indev_scroll_throw_handler+0x28a> lv_obj_scroll_by(scroll_obj, 0, -sb, LV_ANIM_ON); - 80051b0: 8abb ldrh r3, [r7, #20] - 80051b2: 425b negs r3, r3 - 80051b4: b29b uxth r3, r3 - 80051b6: b21a sxth r2, r3 - 80051b8: 2301 movs r3, #1 - 80051ba: 2100 movs r1, #0 - 80051bc: 6af8 ldr r0, [r7, #44] ; 0x2c - 80051be: f006 fee9 bl 800bf94 + 8005144: 8abb ldrh r3, [r7, #20] + 8005146: 425b negs r3, r3 + 8005148: b29b uxth r3, r3 + 800514a: b21a sxth r2, r3 + 800514c: 2301 movs r3, #1 + 800514e: 2100 movs r1, #0 + 8005150: 6af8 ldr r0, [r7, #44] ; 0x2c + 8005152: f006 fee9 bl 800bf28 } } } /*If horizontally scrollable and not controlled by snap*/ if(align_x == LV_SCROLL_SNAP_NONE) { - 80051c2: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 - 80051c6: 2b00 cmp r3, #0 - 80051c8: d12a bne.n 8005220 <_lv_indev_scroll_throw_handler+0x2e8> + 8005156: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 + 800515a: 2b00 cmp r3, #0 + 800515c: d12a bne.n 80051b4 <_lv_indev_scroll_throw_handler+0x2e8> lv_coord_t sl = lv_obj_get_scroll_left(scroll_obj); - 80051ca: 6af8 ldr r0, [r7, #44] ; 0x2c - 80051cc: f006 fc9c bl 800bb08 - 80051d0: 4603 mov r3, r0 - 80051d2: 827b strh r3, [r7, #18] + 800515e: 6af8 ldr r0, [r7, #44] ; 0x2c + 8005160: f006 fc9c bl 800ba9c + 8005164: 4603 mov r3, r0 + 8005166: 827b strh r3, [r7, #18] lv_coord_t sr = lv_obj_get_scroll_right(scroll_obj); - 80051d4: 6af8 ldr r0, [r7, #44] ; 0x2c - 80051d6: f006 fd3b bl 800bc50 - 80051da: 4603 mov r3, r0 - 80051dc: 823b strh r3, [r7, #16] + 8005168: 6af8 ldr r0, [r7, #44] ; 0x2c + 800516a: f006 fd3b bl 800bbe4 + 800516e: 4603 mov r3, r0 + 8005170: 823b strh r3, [r7, #16] if(sl > 0 || sr > 0) { - 80051de: f9b7 3012 ldrsh.w r3, [r7, #18] - 80051e2: 2b00 cmp r3, #0 - 80051e4: dc03 bgt.n 80051ee <_lv_indev_scroll_throw_handler+0x2b6> - 80051e6: f9b7 3010 ldrsh.w r3, [r7, #16] - 80051ea: 2b00 cmp r3, #0 - 80051ec: dd18 ble.n 8005220 <_lv_indev_scroll_throw_handler+0x2e8> + 8005172: f9b7 3012 ldrsh.w r3, [r7, #18] + 8005176: 2b00 cmp r3, #0 + 8005178: dc03 bgt.n 8005182 <_lv_indev_scroll_throw_handler+0x2b6> + 800517a: f9b7 3010 ldrsh.w r3, [r7, #16] + 800517e: 2b00 cmp r3, #0 + 8005180: dd18 ble.n 80051b4 <_lv_indev_scroll_throw_handler+0x2e8> if(sl < 0) { - 80051ee: f9b7 3012 ldrsh.w r3, [r7, #18] - 80051f2: 2b00 cmp r3, #0 - 80051f4: da07 bge.n 8005206 <_lv_indev_scroll_throw_handler+0x2ce> + 8005182: f9b7 3012 ldrsh.w r3, [r7, #18] + 8005186: 2b00 cmp r3, #0 + 8005188: da07 bge.n 800519a <_lv_indev_scroll_throw_handler+0x2ce> lv_obj_scroll_by(scroll_obj, sl, 0, LV_ANIM_ON); - 80051f6: f9b7 1012 ldrsh.w r1, [r7, #18] - 80051fa: 2301 movs r3, #1 - 80051fc: 2200 movs r2, #0 - 80051fe: 6af8 ldr r0, [r7, #44] ; 0x2c - 8005200: f006 fec8 bl 800bf94 - 8005204: e00c b.n 8005220 <_lv_indev_scroll_throw_handler+0x2e8> + 800518a: f9b7 1012 ldrsh.w r1, [r7, #18] + 800518e: 2301 movs r3, #1 + 8005190: 2200 movs r2, #0 + 8005192: 6af8 ldr r0, [r7, #44] ; 0x2c + 8005194: f006 fec8 bl 800bf28 + 8005198: e00c b.n 80051b4 <_lv_indev_scroll_throw_handler+0x2e8> } else if(sr < 0) { - 8005206: f9b7 3010 ldrsh.w r3, [r7, #16] - 800520a: 2b00 cmp r3, #0 - 800520c: da08 bge.n 8005220 <_lv_indev_scroll_throw_handler+0x2e8> + 800519a: f9b7 3010 ldrsh.w r3, [r7, #16] + 800519e: 2b00 cmp r3, #0 + 80051a0: da08 bge.n 80051b4 <_lv_indev_scroll_throw_handler+0x2e8> lv_obj_scroll_by(scroll_obj, -sr, 0, LV_ANIM_ON); - 800520e: 8a3b ldrh r3, [r7, #16] - 8005210: 425b negs r3, r3 - 8005212: b29b uxth r3, r3 - 8005214: b219 sxth r1, r3 - 8005216: 2301 movs r3, #1 - 8005218: 2200 movs r2, #0 - 800521a: 6af8 ldr r0, [r7, #44] ; 0x2c - 800521c: f006 feba bl 800bf94 + 80051a2: 8a3b ldrh r3, [r7, #16] + 80051a4: 425b negs r3, r3 + 80051a6: b29b uxth r3, r3 + 80051a8: b219 sxth r1, r3 + 80051aa: 2301 movs r3, #1 + 80051ac: 2200 movs r2, #0 + 80051ae: 6af8 ldr r0, [r7, #44] ; 0x2c + 80051b0: f006 feba bl 800bf28 } } } lv_event_send(scroll_obj, LV_EVENT_SCROLL_END, indev_act); - 8005220: 6aba ldr r2, [r7, #40] ; 0x28 - 8005222: 210a movs r1, #10 - 8005224: 6af8 ldr r0, [r7, #44] ; 0x2c - 8005226: f7fd f92b bl 8002480 + 80051b4: 6aba ldr r2, [r7, #40] ; 0x28 + 80051b6: 210a movs r1, #10 + 80051b8: 6af8 ldr r0, [r7, #44] ; 0x2c + 80051ba: f7fd f92b bl 8002414 if(proc->reset_query) return; - 800522a: 687b ldr r3, [r7, #4] - 800522c: 785b ldrb r3, [r3, #1] - 800522e: f003 0302 and.w r3, r3, #2 - 8005232: b2db uxtb r3, r3 - 8005234: 2b00 cmp r3, #0 - 8005236: d10e bne.n 8005256 <_lv_indev_scroll_throw_handler+0x31e> + 80051be: 687b ldr r3, [r7, #4] + 80051c0: 785b ldrb r3, [r3, #1] + 80051c2: f003 0302 and.w r3, r3, #2 + 80051c6: b2db uxtb r3, r3 + 80051c8: 2b00 cmp r3, #0 + 80051ca: d10e bne.n 80051ea <_lv_indev_scroll_throw_handler+0x31e> proc->types.pointer.scroll_dir = LV_DIR_NONE; - 8005238: 687a ldr r2, [r7, #4] - 800523a: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 800523e: f36f 0303 bfc r3, #0, #4 - 8005242: f882 303c strb.w r3, [r2, #60] ; 0x3c + 80051cc: 687a ldr r2, [r7, #4] + 80051ce: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 80051d2: f36f 0303 bfc r3, #0, #4 + 80051d6: f882 303c strb.w r3, [r2, #60] ; 0x3c proc->types.pointer.scroll_obj = NULL; - 8005246: 687b ldr r3, [r7, #4] - 8005248: 2200 movs r2, #0 - 800524a: 629a str r2, [r3, #40] ; 0x28 - 800524c: e004 b.n 8005258 <_lv_indev_scroll_throw_handler+0x320> + 80051da: 687b ldr r3, [r7, #4] + 80051dc: 2200 movs r2, #0 + 80051de: 629a str r2, [r3, #40] ; 0x28 + 80051e0: e004 b.n 80051ec <_lv_indev_scroll_throw_handler+0x320> if(scroll_obj == NULL) return; - 800524e: bf00 nop - 8005250: e002 b.n 8005258 <_lv_indev_scroll_throw_handler+0x320> + 80051e2: bf00 nop + 80051e4: e002 b.n 80051ec <_lv_indev_scroll_throw_handler+0x320> if(proc->types.pointer.scroll_dir == LV_DIR_NONE) return; - 8005252: bf00 nop - 8005254: e000 b.n 8005258 <_lv_indev_scroll_throw_handler+0x320> + 80051e6: bf00 nop + 80051e8: e000 b.n 80051ec <_lv_indev_scroll_throw_handler+0x320> if(proc->reset_query) return; - 8005256: bf00 nop + 80051ea: bf00 nop } } - 8005258: 3730 adds r7, #48 ; 0x30 - 800525a: 46bd mov sp, r7 - 800525c: bd80 pop {r7, pc} - 800525e: bf00 nop - 8005260: 51eb851f .word 0x51eb851f - 8005264: ffffe001 .word 0xffffe001 + 80051ec: 3730 adds r7, #48 ; 0x30 + 80051ee: 46bd mov sp, r7 + 80051f0: bd80 pop {r7, pc} + 80051f2: bf00 nop + 80051f4: 51eb851f .word 0x51eb851f + 80051f8: ffffe001 .word 0xffffe001 -08005268 : +080051fc : * @param indev pointer to an input device * @param dir `LV_DIR_VER` or `LV_DIR_HOR` * @return the difference compared to the current position when the throw would be finished */ lv_coord_t lv_indev_scroll_throw_predict(lv_indev_t * indev, lv_dir_t dir) { - 8005268: b480 push {r7} - 800526a: b085 sub sp, #20 - 800526c: af00 add r7, sp, #0 - 800526e: 6078 str r0, [r7, #4] - 8005270: 460b mov r3, r1 - 8005272: 70fb strb r3, [r7, #3] + 80051fc: b480 push {r7} + 80051fe: b085 sub sp, #20 + 8005200: af00 add r7, sp, #0 + 8005202: 6078 str r0, [r7, #4] + 8005204: 460b mov r3, r1 + 8005206: 70fb strb r3, [r7, #3] if(indev == NULL) return 0; - 8005274: 687b ldr r3, [r7, #4] - 8005276: 2b00 cmp r3, #0 - 8005278: d101 bne.n 800527e - 800527a: 2300 movs r3, #0 - 800527c: e02f b.n 80052de + 8005208: 687b ldr r3, [r7, #4] + 800520a: 2b00 cmp r3, #0 + 800520c: d101 bne.n 8005212 + 800520e: 2300 movs r3, #0 + 8005210: e02f b.n 8005272 lv_coord_t v; switch(dir) { - 800527e: 78fb ldrb r3, [r7, #3] - 8005280: 2b03 cmp r3, #3 - 8005282: d005 beq.n 8005290 - 8005284: 2b0c cmp r3, #12 - 8005286: d107 bne.n 8005298 + 8005212: 78fb ldrb r3, [r7, #3] + 8005214: 2b03 cmp r3, #3 + 8005216: d005 beq.n 8005224 + 8005218: 2b0c cmp r3, #12 + 800521a: d107 bne.n 800522c case LV_DIR_VER: v = indev->proc.types.pointer.scroll_throw_vect_ori.y; - 8005288: 687b ldr r3, [r7, #4] - 800528a: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800528c: 81fb strh r3, [r7, #14] + 800521c: 687b ldr r3, [r7, #4] + 800521e: 8c5b ldrh r3, [r3, #34] ; 0x22 + 8005220: 81fb strh r3, [r7, #14] break; - 800528e: e005 b.n 800529c + 8005222: e005 b.n 8005230 case LV_DIR_HOR: v = indev->proc.types.pointer.scroll_throw_vect_ori.x; - 8005290: 687b ldr r3, [r7, #4] - 8005292: 8c1b ldrh r3, [r3, #32] - 8005294: 81fb strh r3, [r7, #14] + 8005224: 687b ldr r3, [r7, #4] + 8005226: 8c1b ldrh r3, [r3, #32] + 8005228: 81fb strh r3, [r7, #14] break; - 8005296: e001 b.n 800529c + 800522a: e001 b.n 8005230 default: return 0; - 8005298: 2300 movs r3, #0 - 800529a: e020 b.n 80052de + 800522c: 2300 movs r3, #0 + 800522e: e020 b.n 8005272 } lv_coord_t scroll_throw = indev->driver->scroll_throw; - 800529c: 687b ldr r3, [r7, #4] - 800529e: 681b ldr r3, [r3, #0] - 80052a0: 7e5b ldrb r3, [r3, #25] - 80052a2: 817b strh r3, [r7, #10] + 8005230: 687b ldr r3, [r7, #4] + 8005232: 681b ldr r3, [r3, #0] + 8005234: 7e5b ldrb r3, [r3, #25] + 8005236: 817b strh r3, [r7, #10] lv_coord_t sum = 0; - 80052a4: 2300 movs r3, #0 - 80052a6: 81bb strh r3, [r7, #12] + 8005238: 2300 movs r3, #0 + 800523a: 81bb strh r3, [r7, #12] while(v) { - 80052a8: e013 b.n 80052d2 + 800523c: e013 b.n 8005266 sum += v; - 80052aa: 89ba ldrh r2, [r7, #12] - 80052ac: 89fb ldrh r3, [r7, #14] - 80052ae: 4413 add r3, r2 - 80052b0: b29b uxth r3, r3 - 80052b2: 81bb strh r3, [r7, #12] + 800523e: 89ba ldrh r2, [r7, #12] + 8005240: 89fb ldrh r3, [r7, #14] + 8005242: 4413 add r3, r2 + 8005244: b29b uxth r3, r3 + 8005246: 81bb strh r3, [r7, #12] v = v * (100 - scroll_throw) / 100; - 80052b4: f9b7 300e ldrsh.w r3, [r7, #14] - 80052b8: f9b7 200a ldrsh.w r2, [r7, #10] - 80052bc: f1c2 0264 rsb r2, r2, #100 ; 0x64 - 80052c0: fb02 f303 mul.w r3, r2, r3 - 80052c4: 4a08 ldr r2, [pc, #32] ; (80052e8 ) - 80052c6: fb82 1203 smull r1, r2, r2, r3 - 80052ca: 1152 asrs r2, r2, #5 - 80052cc: 17db asrs r3, r3, #31 - 80052ce: 1ad3 subs r3, r2, r3 - 80052d0: 81fb strh r3, [r7, #14] + 8005248: f9b7 300e ldrsh.w r3, [r7, #14] + 800524c: f9b7 200a ldrsh.w r2, [r7, #10] + 8005250: f1c2 0264 rsb r2, r2, #100 ; 0x64 + 8005254: fb02 f303 mul.w r3, r2, r3 + 8005258: 4a08 ldr r2, [pc, #32] ; (800527c ) + 800525a: fb82 1203 smull r1, r2, r2, r3 + 800525e: 1152 asrs r2, r2, #5 + 8005260: 17db asrs r3, r3, #31 + 8005262: 1ad3 subs r3, r2, r3 + 8005264: 81fb strh r3, [r7, #14] while(v) { - 80052d2: f9b7 300e ldrsh.w r3, [r7, #14] - 80052d6: 2b00 cmp r3, #0 - 80052d8: d1e7 bne.n 80052aa + 8005266: f9b7 300e ldrsh.w r3, [r7, #14] + 800526a: 2b00 cmp r3, #0 + 800526c: d1e7 bne.n 800523e } return sum; - 80052da: f9b7 300c ldrsh.w r3, [r7, #12] + 800526e: f9b7 300c ldrsh.w r3, [r7, #12] } - 80052de: 4618 mov r0, r3 - 80052e0: 3714 adds r7, #20 - 80052e2: 46bd mov sp, r7 - 80052e4: bc80 pop {r7} - 80052e6: 4770 bx lr - 80052e8: 51eb851f .word 0x51eb851f + 8005272: 4618 mov r0, r3 + 8005274: 3714 adds r7, #20 + 8005276: 46bd mov sp, r7 + 8005278: bc80 pop {r7} + 800527a: 4770 bx lr + 800527c: 51eb851f .word 0x51eb851f -080052ec : +08005280 : /********************** * STATIC FUNCTIONS **********************/ static lv_obj_t * find_scroll_obj(_lv_indev_proc_t * proc) { - 80052ec: b580 push {r7, lr} - 80052ee: b08c sub sp, #48 ; 0x30 - 80052f0: af00 add r7, sp, #0 - 80052f2: 6078 str r0, [r7, #4] + 8005280: b580 push {r7, lr} + 8005282: b08c sub sp, #48 ; 0x30 + 8005284: af00 add r7, sp, #0 + 8005286: 6078 str r0, [r7, #4] lv_obj_t * obj_candidate = NULL; - 80052f4: 2300 movs r3, #0 - 80052f6: 62fb str r3, [r7, #44] ; 0x2c + 8005288: 2300 movs r3, #0 + 800528a: 62fb str r3, [r7, #44] ; 0x2c lv_dir_t dir_candidate = LV_DIR_NONE; - 80052f8: 2300 movs r3, #0 - 80052fa: f887 302b strb.w r3, [r7, #43] ; 0x2b + 800528c: 2300 movs r3, #0 + 800528e: f887 302b strb.w r3, [r7, #43] ; 0x2b lv_indev_t * indev_act = lv_indev_get_act(); - 80052fe: f7fe f80b bl 8003318 - 8005302: 61b8 str r0, [r7, #24] + 8005292: f7fe f80b bl 80032ac + 8005296: 61b8 str r0, [r7, #24] lv_coord_t scroll_limit = indev_act->driver->scroll_limit; - 8005304: 69bb ldr r3, [r7, #24] - 8005306: 681b ldr r3, [r3, #0] - 8005308: 7e1b ldrb r3, [r3, #24] - 800530a: 82fb strh r3, [r7, #22] + 8005298: 69bb ldr r3, [r7, #24] + 800529a: 681b ldr r3, [r3, #0] + 800529c: 7e1b ldrb r3, [r3, #24] + 800529e: 82fb strh r3, [r7, #22] * 1. Check the pressed object and all of its ancestors and try to find an object which is scrollable * 2. Scrollable means it has some content out of its area * 3. If an object can be scrolled into the current direction then use it ("real match"") * 4. If can be scrolled on the current axis (hor/ver) save it as candidate (at least show an elastic scroll effect) * 5. Use the last candidate. Always the "deepest" parent or the object from point 3*/ lv_obj_t * obj_act = proc->types.pointer.act_obj; - 800530c: 687b ldr r3, [r7, #4] - 800530e: 6a1b ldr r3, [r3, #32] - 8005310: 627b str r3, [r7, #36] ; 0x24 + 80052a0: 687b ldr r3, [r7, #4] + 80052a2: 6a1b ldr r3, [r3, #32] + 80052a4: 627b str r3, [r7, #36] ; 0x24 /*Decide if it's a horizontal or vertical scroll*/ bool hor_en = false; - 8005312: 2300 movs r3, #0 - 8005314: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 80052a6: 2300 movs r3, #0 + 80052a8: f887 3023 strb.w r3, [r7, #35] ; 0x23 bool ver_en = false; - 8005318: 2300 movs r3, #0 - 800531a: f887 3022 strb.w r3, [r7, #34] ; 0x22 + 80052ac: 2300 movs r3, #0 + 80052ae: f887 3022 strb.w r3, [r7, #34] ; 0x22 if(LV_ABS(proc->types.pointer.scroll_sum.x) > LV_ABS(proc->types.pointer.scroll_sum.y)) { - 800531e: 687b ldr r3, [r7, #4] - 8005320: f9b3 3014 ldrsh.w r3, [r3, #20] - 8005324: 2b00 cmp r3, #0 - 8005326: bfb8 it lt - 8005328: 425b neglt r3, r3 - 800532a: b29a uxth r2, r3 - 800532c: 687b ldr r3, [r7, #4] - 800532e: f9b3 3016 ldrsh.w r3, [r3, #22] - 8005332: 2b00 cmp r3, #0 - 8005334: bfb8 it lt - 8005336: 425b neglt r3, r3 - 8005338: b29b uxth r3, r3 - 800533a: 429a cmp r2, r3 - 800533c: d903 bls.n 8005346 + 80052b2: 687b ldr r3, [r7, #4] + 80052b4: f9b3 3014 ldrsh.w r3, [r3, #20] + 80052b8: 2b00 cmp r3, #0 + 80052ba: bfb8 it lt + 80052bc: 425b neglt r3, r3 + 80052be: b29a uxth r2, r3 + 80052c0: 687b ldr r3, [r7, #4] + 80052c2: f9b3 3016 ldrsh.w r3, [r3, #22] + 80052c6: 2b00 cmp r3, #0 + 80052c8: bfb8 it lt + 80052ca: 425b neglt r3, r3 + 80052cc: b29b uxth r3, r3 + 80052ce: 429a cmp r2, r3 + 80052d0: d903 bls.n 80052da hor_en = true; - 800533e: 2301 movs r3, #1 - 8005340: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 8005344: e138 b.n 80055b8 + 80052d2: 2301 movs r3, #1 + 80052d4: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 80052d8: e138 b.n 800554c } else { ver_en = true; - 8005346: 2301 movs r3, #1 - 8005348: f887 3022 strb.w r3, [r7, #34] ; 0x22 + 80052da: 2301 movs r3, #1 + 80052dc: f887 3022 strb.w r3, [r7, #34] ; 0x22 } while(obj_act) { - 800534c: e134 b.n 80055b8 + 80052e0: e134 b.n 800554c if(lv_obj_has_flag(obj_act, LV_OBJ_FLAG_SCROLLABLE) == false) { - 800534e: 2110 movs r1, #16 - 8005350: 6a78 ldr r0, [r7, #36] ; 0x24 - 8005352: f001 fa16 bl 8006782 - 8005356: 4603 mov r3, r0 - 8005358: f083 0301 eor.w r3, r3, #1 - 800535c: b2db uxtb r3, r3 - 800535e: 2b00 cmp r3, #0 - 8005360: d024 beq.n 80053ac + 80052e2: 2110 movs r1, #16 + 80052e4: 6a78 ldr r0, [r7, #36] ; 0x24 + 80052e6: f001 fa16 bl 8006716 + 80052ea: 4603 mov r3, r0 + 80052ec: f083 0301 eor.w r3, r3, #1 + 80052f0: b2db uxtb r3, r3 + 80052f2: 2b00 cmp r3, #0 + 80052f4: d024 beq.n 8005340 /*If this object don't want to chain the scroll to the parent stop searching*/ if(lv_obj_has_flag(obj_act, LV_OBJ_FLAG_SCROLL_CHAIN_HOR) == false && hor_en) break; - 8005362: f44f 7180 mov.w r1, #256 ; 0x100 - 8005366: 6a78 ldr r0, [r7, #36] ; 0x24 - 8005368: f001 fa0b bl 8006782 - 800536c: 4603 mov r3, r0 - 800536e: f083 0301 eor.w r3, r3, #1 - 8005372: b2db uxtb r3, r3 - 8005374: 2b00 cmp r3, #0 - 8005376: d004 beq.n 8005382 - 8005378: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 800537c: 2b00 cmp r3, #0 - 800537e: f040 8120 bne.w 80055c2 + 80052f6: f44f 7180 mov.w r1, #256 ; 0x100 + 80052fa: 6a78 ldr r0, [r7, #36] ; 0x24 + 80052fc: f001 fa0b bl 8006716 + 8005300: 4603 mov r3, r0 + 8005302: f083 0301 eor.w r3, r3, #1 + 8005306: b2db uxtb r3, r3 + 8005308: 2b00 cmp r3, #0 + 800530a: d004 beq.n 8005316 + 800530c: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8005310: 2b00 cmp r3, #0 + 8005312: f040 8120 bne.w 8005556 if(lv_obj_has_flag(obj_act, LV_OBJ_FLAG_SCROLL_CHAIN_VER) == false && ver_en) break; - 8005382: f44f 7100 mov.w r1, #512 ; 0x200 - 8005386: 6a78 ldr r0, [r7, #36] ; 0x24 - 8005388: f001 f9fb bl 8006782 - 800538c: 4603 mov r3, r0 - 800538e: f083 0301 eor.w r3, r3, #1 - 8005392: b2db uxtb r3, r3 - 8005394: 2b00 cmp r3, #0 - 8005396: d004 beq.n 80053a2 - 8005398: f897 3022 ldrb.w r3, [r7, #34] ; 0x22 - 800539c: 2b00 cmp r3, #0 - 800539e: f040 8112 bne.w 80055c6 + 8005316: f44f 7100 mov.w r1, #512 ; 0x200 + 800531a: 6a78 ldr r0, [r7, #36] ; 0x24 + 800531c: f001 f9fb bl 8006716 + 8005320: 4603 mov r3, r0 + 8005322: f083 0301 eor.w r3, r3, #1 + 8005326: b2db uxtb r3, r3 + 8005328: 2b00 cmp r3, #0 + 800532a: d004 beq.n 8005336 + 800532c: f897 3022 ldrb.w r3, [r7, #34] ; 0x22 + 8005330: 2b00 cmp r3, #0 + 8005332: f040 8112 bne.w 800555a obj_act = lv_obj_get_parent(obj_act); - 80053a2: 6a78 ldr r0, [r7, #36] ; 0x24 - 80053a4: f00a f9b2 bl 800f70c - 80053a8: 6278 str r0, [r7, #36] ; 0x24 + 8005336: 6a78 ldr r0, [r7, #36] ; 0x24 + 8005338: f00a f99e bl 800f678 + 800533c: 6278 str r0, [r7, #36] ; 0x24 continue; - 80053aa: e105 b.n 80055b8 + 800533e: e105 b.n 800554c } /*Consider both up-down or left/right scrollable according to the current direction*/ bool up_en = ver_en; - 80053ac: f897 3022 ldrb.w r3, [r7, #34] ; 0x22 - 80053b0: f887 3021 strb.w r3, [r7, #33] ; 0x21 + 8005340: f897 3022 ldrb.w r3, [r7, #34] ; 0x22 + 8005344: f887 3021 strb.w r3, [r7, #33] ; 0x21 bool down_en = ver_en; - 80053b4: f897 3022 ldrb.w r3, [r7, #34] ; 0x22 - 80053b8: f887 3020 strb.w r3, [r7, #32] + 8005348: f897 3022 ldrb.w r3, [r7, #34] ; 0x22 + 800534c: f887 3020 strb.w r3, [r7, #32] bool left_en = hor_en; - 80053bc: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 80053c0: 77fb strb r3, [r7, #31] + 8005350: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8005354: 77fb strb r3, [r7, #31] bool right_en = hor_en; - 80053c2: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 80053c6: 77bb strb r3, [r7, #30] + 8005356: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 800535a: 77bb strb r3, [r7, #30] /*The object might have disabled some directions.*/ lv_dir_t scroll_dir = lv_obj_get_scroll_dir(obj_act); - 80053c8: 6a78 ldr r0, [r7, #36] ; 0x24 - 80053ca: f006 fa92 bl 800b8f2 - 80053ce: 4603 mov r3, r0 - 80053d0: 757b strb r3, [r7, #21] + 800535c: 6a78 ldr r0, [r7, #36] ; 0x24 + 800535e: f006 fa92 bl 800b886 + 8005362: 4603 mov r3, r0 + 8005364: 757b strb r3, [r7, #21] if((scroll_dir & LV_DIR_LEFT) == 0) left_en = false; - 80053d2: 7d7b ldrb r3, [r7, #21] - 80053d4: f003 0301 and.w r3, r3, #1 - 80053d8: 2b00 cmp r3, #0 - 80053da: d101 bne.n 80053e0 - 80053dc: 2300 movs r3, #0 - 80053de: 77fb strb r3, [r7, #31] + 8005366: 7d7b ldrb r3, [r7, #21] + 8005368: f003 0301 and.w r3, r3, #1 + 800536c: 2b00 cmp r3, #0 + 800536e: d101 bne.n 8005374 + 8005370: 2300 movs r3, #0 + 8005372: 77fb strb r3, [r7, #31] if((scroll_dir & LV_DIR_RIGHT) == 0) right_en = false; - 80053e0: 7d7b ldrb r3, [r7, #21] - 80053e2: f003 0302 and.w r3, r3, #2 - 80053e6: 2b00 cmp r3, #0 - 80053e8: d101 bne.n 80053ee - 80053ea: 2300 movs r3, #0 - 80053ec: 77bb strb r3, [r7, #30] + 8005374: 7d7b ldrb r3, [r7, #21] + 8005376: f003 0302 and.w r3, r3, #2 + 800537a: 2b00 cmp r3, #0 + 800537c: d101 bne.n 8005382 + 800537e: 2300 movs r3, #0 + 8005380: 77bb strb r3, [r7, #30] if((scroll_dir & LV_DIR_TOP) == 0) up_en = false; - 80053ee: 7d7b ldrb r3, [r7, #21] - 80053f0: f003 0304 and.w r3, r3, #4 - 80053f4: 2b00 cmp r3, #0 - 80053f6: d102 bne.n 80053fe - 80053f8: 2300 movs r3, #0 - 80053fa: f887 3021 strb.w r3, [r7, #33] ; 0x21 + 8005382: 7d7b ldrb r3, [r7, #21] + 8005384: f003 0304 and.w r3, r3, #4 + 8005388: 2b00 cmp r3, #0 + 800538a: d102 bne.n 8005392 + 800538c: 2300 movs r3, #0 + 800538e: f887 3021 strb.w r3, [r7, #33] ; 0x21 if((scroll_dir & LV_DIR_BOTTOM) == 0) down_en = false; - 80053fe: 7d7b ldrb r3, [r7, #21] - 8005400: f003 0308 and.w r3, r3, #8 - 8005404: 2b00 cmp r3, #0 - 8005406: d102 bne.n 800540e - 8005408: 2300 movs r3, #0 - 800540a: f887 3020 strb.w r3, [r7, #32] + 8005392: 7d7b ldrb r3, [r7, #21] + 8005394: f003 0308 and.w r3, r3, #8 + 8005398: 2b00 cmp r3, #0 + 800539a: d102 bne.n 80053a2 + 800539c: 2300 movs r3, #0 + 800539e: f887 3020 strb.w r3, [r7, #32] /*The object is scrollable to a direction if its content overflow in that direction.*/ lv_coord_t st = lv_obj_get_scroll_top(obj_act); - 800540e: 6a78 ldr r0, [r7, #36] ; 0x24 - 8005410: f006 fadc bl 800b9cc - 8005414: 4603 mov r3, r0 - 8005416: 827b strh r3, [r7, #18] + 80053a2: 6a78 ldr r0, [r7, #36] ; 0x24 + 80053a4: f006 fadc bl 800b960 + 80053a8: 4603 mov r3, r0 + 80053aa: 827b strh r3, [r7, #18] lv_coord_t sb = lv_obj_get_scroll_bottom(obj_act); - 8005418: 6a78 ldr r0, [r7, #36] ; 0x24 - 800541a: f006 faef bl 800b9fc - 800541e: 4603 mov r3, r0 - 8005420: 823b strh r3, [r7, #16] + 80053ac: 6a78 ldr r0, [r7, #36] ; 0x24 + 80053ae: f006 faef bl 800b990 + 80053b2: 4603 mov r3, r0 + 80053b4: 823b strh r3, [r7, #16] lv_coord_t sl = lv_obj_get_scroll_left(obj_act); - 8005422: 6a78 ldr r0, [r7, #36] ; 0x24 - 8005424: f006 fb70 bl 800bb08 - 8005428: 4603 mov r3, r0 - 800542a: 81fb strh r3, [r7, #14] + 80053b6: 6a78 ldr r0, [r7, #36] ; 0x24 + 80053b8: f006 fb70 bl 800ba9c + 80053bc: 4603 mov r3, r0 + 80053be: 81fb strh r3, [r7, #14] lv_coord_t sr = lv_obj_get_scroll_right(obj_act); - 800542c: 6a78 ldr r0, [r7, #36] ; 0x24 - 800542e: f006 fc0f bl 800bc50 - 8005432: 4603 mov r3, r0 - 8005434: 81bb strh r3, [r7, #12] + 80053c0: 6a78 ldr r0, [r7, #36] ; 0x24 + 80053c2: f006 fc0f bl 800bbe4 + 80053c6: 4603 mov r3, r0 + 80053c8: 81bb strh r3, [r7, #12] /*If this object is scrollable into the current scroll direction then save it as a candidate. *It's important only to be scrollable on the current axis (hor/ver) because if the scroll *is propagated to this object it can show at least elastic scroll effect. *But if not hor/ver scrollable do not scroll it at all (so it's not a good candidate)*/ if((st > 0 || sb > 0) && - 8005436: f9b7 3012 ldrsh.w r3, [r7, #18] - 800543a: 2b00 cmp r3, #0 - 800543c: dc03 bgt.n 8005446 - 800543e: f9b7 3010 ldrsh.w r3, [r7, #16] - 8005442: 2b00 cmp r3, #0 - 8005444: dd1c ble.n 8005480 - 8005446: f897 3021 ldrb.w r3, [r7, #33] ; 0x21 - 800544a: 2b00 cmp r3, #0 - 800544c: d006 beq.n 800545c + 80053ca: f9b7 3012 ldrsh.w r3, [r7, #18] + 80053ce: 2b00 cmp r3, #0 + 80053d0: dc03 bgt.n 80053da + 80053d2: f9b7 3010 ldrsh.w r3, [r7, #16] + 80053d6: 2b00 cmp r3, #0 + 80053d8: dd1c ble.n 8005414 + 80053da: f897 3021 ldrb.w r3, [r7, #33] ; 0x21 + 80053de: 2b00 cmp r3, #0 + 80053e0: d006 beq.n 80053f0 ((up_en && proc->types.pointer.scroll_sum.y >= scroll_limit) || - 800544e: 687b ldr r3, [r7, #4] - 8005450: f9b3 3016 ldrsh.w r3, [r3, #22] - 8005454: f9b7 2016 ldrsh.w r2, [r7, #22] - 8005458: 429a cmp r2, r3 - 800545a: dd0c ble.n 8005476 - 800545c: f897 3020 ldrb.w r3, [r7, #32] - 8005460: 2b00 cmp r3, #0 - 8005462: d00d beq.n 8005480 + 80053e2: 687b ldr r3, [r7, #4] + 80053e4: f9b3 3016 ldrsh.w r3, [r3, #22] + 80053e8: f9b7 2016 ldrsh.w r2, [r7, #22] + 80053ec: 429a cmp r2, r3 + 80053ee: dd0c ble.n 800540a + 80053f0: f897 3020 ldrb.w r3, [r7, #32] + 80053f4: 2b00 cmp r3, #0 + 80053f6: d00d beq.n 8005414 (down_en && proc->types.pointer.scroll_sum.y <= - scroll_limit))) { - 8005464: 687b ldr r3, [r7, #4] - 8005466: f9b3 3016 ldrsh.w r3, [r3, #22] - 800546a: 461a mov r2, r3 - 800546c: f9b7 3016 ldrsh.w r3, [r7, #22] - 8005470: 425b negs r3, r3 - 8005472: 429a cmp r2, r3 - 8005474: dc04 bgt.n 8005480 + 80053f8: 687b ldr r3, [r7, #4] + 80053fa: f9b3 3016 ldrsh.w r3, [r3, #22] + 80053fe: 461a mov r2, r3 + 8005400: f9b7 3016 ldrsh.w r3, [r7, #22] + 8005404: 425b negs r3, r3 + 8005406: 429a cmp r2, r3 + 8005408: dc04 bgt.n 8005414 obj_candidate = obj_act; - 8005476: 6a7b ldr r3, [r7, #36] ; 0x24 - 8005478: 62fb str r3, [r7, #44] ; 0x2c + 800540a: 6a7b ldr r3, [r7, #36] ; 0x24 + 800540c: 62fb str r3, [r7, #44] ; 0x2c dir_candidate = LV_DIR_VER; - 800547a: 230c movs r3, #12 - 800547c: f887 302b strb.w r3, [r7, #43] ; 0x2b + 800540e: 230c movs r3, #12 + 8005410: f887 302b strb.w r3, [r7, #43] ; 0x2b } if((sl > 0 || sr > 0) && - 8005480: f9b7 300e ldrsh.w r3, [r7, #14] - 8005484: 2b00 cmp r3, #0 - 8005486: dc03 bgt.n 8005490 - 8005488: f9b7 300c ldrsh.w r3, [r7, #12] - 800548c: 2b00 cmp r3, #0 - 800548e: dd1a ble.n 80054c6 - 8005490: 7ffb ldrb r3, [r7, #31] - 8005492: 2b00 cmp r3, #0 - 8005494: d006 beq.n 80054a4 + 8005414: f9b7 300e ldrsh.w r3, [r7, #14] + 8005418: 2b00 cmp r3, #0 + 800541a: dc03 bgt.n 8005424 + 800541c: f9b7 300c ldrsh.w r3, [r7, #12] + 8005420: 2b00 cmp r3, #0 + 8005422: dd1a ble.n 800545a + 8005424: 7ffb ldrb r3, [r7, #31] + 8005426: 2b00 cmp r3, #0 + 8005428: d006 beq.n 8005438 ((left_en && proc->types.pointer.scroll_sum.x >= scroll_limit) || - 8005496: 687b ldr r3, [r7, #4] - 8005498: f9b3 3014 ldrsh.w r3, [r3, #20] - 800549c: f9b7 2016 ldrsh.w r2, [r7, #22] - 80054a0: 429a cmp r2, r3 - 80054a2: dd0b ble.n 80054bc - 80054a4: 7fbb ldrb r3, [r7, #30] - 80054a6: 2b00 cmp r3, #0 - 80054a8: d00d beq.n 80054c6 + 800542a: 687b ldr r3, [r7, #4] + 800542c: f9b3 3014 ldrsh.w r3, [r3, #20] + 8005430: f9b7 2016 ldrsh.w r2, [r7, #22] + 8005434: 429a cmp r2, r3 + 8005436: dd0b ble.n 8005450 + 8005438: 7fbb ldrb r3, [r7, #30] + 800543a: 2b00 cmp r3, #0 + 800543c: d00d beq.n 800545a (right_en && proc->types.pointer.scroll_sum.x <= - scroll_limit))) { - 80054aa: 687b ldr r3, [r7, #4] - 80054ac: f9b3 3014 ldrsh.w r3, [r3, #20] - 80054b0: 461a mov r2, r3 - 80054b2: f9b7 3016 ldrsh.w r3, [r7, #22] - 80054b6: 425b negs r3, r3 - 80054b8: 429a cmp r2, r3 - 80054ba: dc04 bgt.n 80054c6 + 800543e: 687b ldr r3, [r7, #4] + 8005440: f9b3 3014 ldrsh.w r3, [r3, #20] + 8005444: 461a mov r2, r3 + 8005446: f9b7 3016 ldrsh.w r3, [r7, #22] + 800544a: 425b negs r3, r3 + 800544c: 429a cmp r2, r3 + 800544e: dc04 bgt.n 800545a obj_candidate = obj_act; - 80054bc: 6a7b ldr r3, [r7, #36] ; 0x24 - 80054be: 62fb str r3, [r7, #44] ; 0x2c + 8005450: 6a7b ldr r3, [r7, #36] ; 0x24 + 8005452: 62fb str r3, [r7, #44] ; 0x2c dir_candidate = LV_DIR_HOR; - 80054c0: 2303 movs r3, #3 - 80054c2: f887 302b strb.w r3, [r7, #43] ; 0x2b + 8005454: 2303 movs r3, #3 + 8005456: f887 302b strb.w r3, [r7, #43] ; 0x2b } if(st <= 0) up_en = false; - 80054c6: f9b7 3012 ldrsh.w r3, [r7, #18] - 80054ca: 2b00 cmp r3, #0 - 80054cc: dc02 bgt.n 80054d4 - 80054ce: 2300 movs r3, #0 - 80054d0: f887 3021 strb.w r3, [r7, #33] ; 0x21 + 800545a: f9b7 3012 ldrsh.w r3, [r7, #18] + 800545e: 2b00 cmp r3, #0 + 8005460: dc02 bgt.n 8005468 + 8005462: 2300 movs r3, #0 + 8005464: f887 3021 strb.w r3, [r7, #33] ; 0x21 if(sb <= 0) down_en = false; - 80054d4: f9b7 3010 ldrsh.w r3, [r7, #16] - 80054d8: 2b00 cmp r3, #0 - 80054da: dc02 bgt.n 80054e2 - 80054dc: 2300 movs r3, #0 - 80054de: f887 3020 strb.w r3, [r7, #32] + 8005468: f9b7 3010 ldrsh.w r3, [r7, #16] + 800546c: 2b00 cmp r3, #0 + 800546e: dc02 bgt.n 8005476 + 8005470: 2300 movs r3, #0 + 8005472: f887 3020 strb.w r3, [r7, #32] if(sl <= 0) left_en = false; - 80054e2: f9b7 300e ldrsh.w r3, [r7, #14] - 80054e6: 2b00 cmp r3, #0 - 80054e8: dc01 bgt.n 80054ee - 80054ea: 2300 movs r3, #0 - 80054ec: 77fb strb r3, [r7, #31] + 8005476: f9b7 300e ldrsh.w r3, [r7, #14] + 800547a: 2b00 cmp r3, #0 + 800547c: dc01 bgt.n 8005482 + 800547e: 2300 movs r3, #0 + 8005480: 77fb strb r3, [r7, #31] if(sr <= 0) right_en = false; - 80054ee: f9b7 300c ldrsh.w r3, [r7, #12] - 80054f2: 2b00 cmp r3, #0 - 80054f4: dc01 bgt.n 80054fa - 80054f6: 2300 movs r3, #0 - 80054f8: 77bb strb r3, [r7, #30] + 8005482: f9b7 300c ldrsh.w r3, [r7, #12] + 8005486: 2b00 cmp r3, #0 + 8005488: dc01 bgt.n 800548e + 800548a: 2300 movs r3, #0 + 800548c: 77bb strb r3, [r7, #30] /*If the object really can be scrolled into the current direction the use it.*/ if((left_en && proc->types.pointer.scroll_sum.x >= scroll_limit) || - 80054fa: 7ffb ldrb r3, [r7, #31] - 80054fc: 2b00 cmp r3, #0 - 80054fe: d006 beq.n 800550e - 8005500: 687b ldr r3, [r7, #4] - 8005502: f9b3 3014 ldrsh.w r3, [r3, #20] - 8005506: f9b7 2016 ldrsh.w r2, [r7, #22] - 800550a: 429a cmp r2, r3 - 800550c: dd23 ble.n 8005556 - 800550e: 7fbb ldrb r3, [r7, #30] - 8005510: 2b00 cmp r3, #0 - 8005512: d008 beq.n 8005526 + 800548e: 7ffb ldrb r3, [r7, #31] + 8005490: 2b00 cmp r3, #0 + 8005492: d006 beq.n 80054a2 + 8005494: 687b ldr r3, [r7, #4] + 8005496: f9b3 3014 ldrsh.w r3, [r3, #20] + 800549a: f9b7 2016 ldrsh.w r2, [r7, #22] + 800549e: 429a cmp r2, r3 + 80054a0: dd23 ble.n 80054ea + 80054a2: 7fbb ldrb r3, [r7, #30] + 80054a4: 2b00 cmp r3, #0 + 80054a6: d008 beq.n 80054ba (right_en && proc->types.pointer.scroll_sum.x <= - scroll_limit) || - 8005514: 687b ldr r3, [r7, #4] - 8005516: f9b3 3014 ldrsh.w r3, [r3, #20] - 800551a: 461a mov r2, r3 - 800551c: f9b7 3016 ldrsh.w r3, [r7, #22] - 8005520: 425b negs r3, r3 - 8005522: 429a cmp r2, r3 - 8005524: dd17 ble.n 8005556 - 8005526: f897 3021 ldrb.w r3, [r7, #33] ; 0x21 - 800552a: 2b00 cmp r3, #0 - 800552c: d006 beq.n 800553c + 80054a8: 687b ldr r3, [r7, #4] + 80054aa: f9b3 3014 ldrsh.w r3, [r3, #20] + 80054ae: 461a mov r2, r3 + 80054b0: f9b7 3016 ldrsh.w r3, [r7, #22] + 80054b4: 425b negs r3, r3 + 80054b6: 429a cmp r2, r3 + 80054b8: dd17 ble.n 80054ea + 80054ba: f897 3021 ldrb.w r3, [r7, #33] ; 0x21 + 80054be: 2b00 cmp r3, #0 + 80054c0: d006 beq.n 80054d0 (up_en && proc->types.pointer.scroll_sum.y >= scroll_limit) || - 800552e: 687b ldr r3, [r7, #4] - 8005530: f9b3 3016 ldrsh.w r3, [r3, #22] - 8005534: f9b7 2016 ldrsh.w r2, [r7, #22] - 8005538: 429a cmp r2, r3 - 800553a: dd0c ble.n 8005556 - 800553c: f897 3020 ldrb.w r3, [r7, #32] - 8005540: 2b00 cmp r3, #0 - 8005542: d017 beq.n 8005574 + 80054c2: 687b ldr r3, [r7, #4] + 80054c4: f9b3 3016 ldrsh.w r3, [r3, #22] + 80054c8: f9b7 2016 ldrsh.w r2, [r7, #22] + 80054cc: 429a cmp r2, r3 + 80054ce: dd0c ble.n 80054ea + 80054d0: f897 3020 ldrb.w r3, [r7, #32] + 80054d4: 2b00 cmp r3, #0 + 80054d6: d017 beq.n 8005508 (down_en && proc->types.pointer.scroll_sum.y <= - scroll_limit)) { - 8005544: 687b ldr r3, [r7, #4] - 8005546: f9b3 3016 ldrsh.w r3, [r3, #22] - 800554a: 461a mov r2, r3 - 800554c: f9b7 3016 ldrsh.w r3, [r7, #22] - 8005550: 425b negs r3, r3 - 8005552: 429a cmp r2, r3 - 8005554: dc0e bgt.n 8005574 + 80054d8: 687b ldr r3, [r7, #4] + 80054da: f9b3 3016 ldrsh.w r3, [r3, #22] + 80054de: 461a mov r2, r3 + 80054e0: f9b7 3016 ldrsh.w r3, [r7, #22] + 80054e4: 425b negs r3, r3 + 80054e6: 429a cmp r2, r3 + 80054e8: dc0e bgt.n 8005508 proc->types.pointer.scroll_dir = hor_en ? LV_DIR_HOR : LV_DIR_VER; - 8005556: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 800555a: 2b00 cmp r3, #0 - 800555c: d001 beq.n 8005562 - 800555e: 2103 movs r1, #3 - 8005560: e000 b.n 8005564 - 8005562: 210c movs r1, #12 - 8005564: 687a ldr r2, [r7, #4] - 8005566: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 800556a: f361 0303 bfi r3, r1, #0, #4 - 800556e: f882 303c strb.w r3, [r2, #60] ; 0x3c + 80054ea: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 80054ee: 2b00 cmp r3, #0 + 80054f0: d001 beq.n 80054f6 + 80054f2: 2103 movs r1, #3 + 80054f4: e000 b.n 80054f8 + 80054f6: 210c movs r1, #12 + 80054f8: 687a ldr r2, [r7, #4] + 80054fa: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 80054fe: f361 0303 bfi r3, r1, #0, #4 + 8005502: f882 303c strb.w r3, [r2, #60] ; 0x3c break; - 8005572: e02d b.n 80055d0 + 8005506: e02d b.n 8005564 } /*If this object don't want to chain the scroll to the parent stop searching*/ if(lv_obj_has_flag(obj_act, LV_OBJ_FLAG_SCROLL_CHAIN_HOR) == false && hor_en) break; - 8005574: f44f 7180 mov.w r1, #256 ; 0x100 - 8005578: 6a78 ldr r0, [r7, #36] ; 0x24 - 800557a: f001 f902 bl 8006782 - 800557e: 4603 mov r3, r0 - 8005580: f083 0301 eor.w r3, r3, #1 - 8005584: b2db uxtb r3, r3 - 8005586: 2b00 cmp r3, #0 - 8005588: d003 beq.n 8005592 - 800558a: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 800558e: 2b00 cmp r3, #0 - 8005590: d11b bne.n 80055ca + 8005508: f44f 7180 mov.w r1, #256 ; 0x100 + 800550c: 6a78 ldr r0, [r7, #36] ; 0x24 + 800550e: f001 f902 bl 8006716 + 8005512: 4603 mov r3, r0 + 8005514: f083 0301 eor.w r3, r3, #1 + 8005518: b2db uxtb r3, r3 + 800551a: 2b00 cmp r3, #0 + 800551c: d003 beq.n 8005526 + 800551e: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8005522: 2b00 cmp r3, #0 + 8005524: d11b bne.n 800555e if(lv_obj_has_flag(obj_act, LV_OBJ_FLAG_SCROLL_CHAIN_VER) == false && ver_en) break; - 8005592: f44f 7100 mov.w r1, #512 ; 0x200 - 8005596: 6a78 ldr r0, [r7, #36] ; 0x24 - 8005598: f001 f8f3 bl 8006782 - 800559c: 4603 mov r3, r0 - 800559e: f083 0301 eor.w r3, r3, #1 - 80055a2: b2db uxtb r3, r3 - 80055a4: 2b00 cmp r3, #0 - 80055a6: d003 beq.n 80055b0 - 80055a8: f897 3022 ldrb.w r3, [r7, #34] ; 0x22 - 80055ac: 2b00 cmp r3, #0 - 80055ae: d10e bne.n 80055ce + 8005526: f44f 7100 mov.w r1, #512 ; 0x200 + 800552a: 6a78 ldr r0, [r7, #36] ; 0x24 + 800552c: f001 f8f3 bl 8006716 + 8005530: 4603 mov r3, r0 + 8005532: f083 0301 eor.w r3, r3, #1 + 8005536: b2db uxtb r3, r3 + 8005538: 2b00 cmp r3, #0 + 800553a: d003 beq.n 8005544 + 800553c: f897 3022 ldrb.w r3, [r7, #34] ; 0x22 + 8005540: 2b00 cmp r3, #0 + 8005542: d10e bne.n 8005562 /*Try the parent*/ obj_act = lv_obj_get_parent(obj_act); - 80055b0: 6a78 ldr r0, [r7, #36] ; 0x24 - 80055b2: f00a f8ab bl 800f70c - 80055b6: 6278 str r0, [r7, #36] ; 0x24 + 8005544: 6a78 ldr r0, [r7, #36] ; 0x24 + 8005546: f00a f897 bl 800f678 + 800554a: 6278 str r0, [r7, #36] ; 0x24 while(obj_act) { - 80055b8: 6a7b ldr r3, [r7, #36] ; 0x24 - 80055ba: 2b00 cmp r3, #0 - 80055bc: f47f aec7 bne.w 800534e - 80055c0: e006 b.n 80055d0 + 800554c: 6a7b ldr r3, [r7, #36] ; 0x24 + 800554e: 2b00 cmp r3, #0 + 8005550: f47f aec7 bne.w 80052e2 + 8005554: e006 b.n 8005564 if(lv_obj_has_flag(obj_act, LV_OBJ_FLAG_SCROLL_CHAIN_HOR) == false && hor_en) break; - 80055c2: bf00 nop - 80055c4: e004 b.n 80055d0 + 8005556: bf00 nop + 8005558: e004 b.n 8005564 if(lv_obj_has_flag(obj_act, LV_OBJ_FLAG_SCROLL_CHAIN_VER) == false && ver_en) break; - 80055c6: bf00 nop - 80055c8: e002 b.n 80055d0 + 800555a: bf00 nop + 800555c: e002 b.n 8005564 if(lv_obj_has_flag(obj_act, LV_OBJ_FLAG_SCROLL_CHAIN_HOR) == false && hor_en) break; - 80055ca: bf00 nop - 80055cc: e000 b.n 80055d0 + 800555e: bf00 nop + 8005560: e000 b.n 8005564 if(lv_obj_has_flag(obj_act, LV_OBJ_FLAG_SCROLL_CHAIN_VER) == false && ver_en) break; - 80055ce: bf00 nop + 8005562: bf00 nop } /*Use the last candidate*/ if(obj_candidate) { - 80055d0: 6afb ldr r3, [r7, #44] ; 0x2c - 80055d2: 2b00 cmp r3, #0 - 80055d4: d014 beq.n 8005600 + 8005564: 6afb ldr r3, [r7, #44] ; 0x2c + 8005566: 2b00 cmp r3, #0 + 8005568: d014 beq.n 8005594 proc->types.pointer.scroll_dir = dir_candidate; - 80055d6: f897 302b ldrb.w r3, [r7, #43] ; 0x2b - 80055da: f003 030f and.w r3, r3, #15 - 80055de: b2d9 uxtb r1, r3 - 80055e0: 687a ldr r2, [r7, #4] - 80055e2: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 80055e6: f361 0303 bfi r3, r1, #0, #4 - 80055ea: f882 303c strb.w r3, [r2, #60] ; 0x3c + 800556a: f897 302b ldrb.w r3, [r7, #43] ; 0x2b + 800556e: f003 030f and.w r3, r3, #15 + 8005572: b2d9 uxtb r1, r3 + 8005574: 687a ldr r2, [r7, #4] + 8005576: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 800557a: f361 0303 bfi r3, r1, #0, #4 + 800557e: f882 303c strb.w r3, [r2, #60] ; 0x3c proc->types.pointer.scroll_obj = obj_candidate; - 80055ee: 687b ldr r3, [r7, #4] - 80055f0: 6afa ldr r2, [r7, #44] ; 0x2c - 80055f2: 629a str r2, [r3, #40] ; 0x28 + 8005582: 687b ldr r3, [r7, #4] + 8005584: 6afa ldr r2, [r7, #44] ; 0x2c + 8005586: 629a str r2, [r3, #40] ; 0x28 proc->types.pointer.scroll_sum.x = 0; - 80055f4: 687b ldr r3, [r7, #4] - 80055f6: 2200 movs r2, #0 - 80055f8: 829a strh r2, [r3, #20] + 8005588: 687b ldr r3, [r7, #4] + 800558a: 2200 movs r2, #0 + 800558c: 829a strh r2, [r3, #20] proc->types.pointer.scroll_sum.y = 0; - 80055fa: 687b ldr r3, [r7, #4] - 80055fc: 2200 movs r2, #0 - 80055fe: 82da strh r2, [r3, #22] + 800558e: 687b ldr r3, [r7, #4] + 8005590: 2200 movs r2, #0 + 8005592: 82da strh r2, [r3, #22] } return obj_candidate; - 8005600: 6afb ldr r3, [r7, #44] ; 0x2c + 8005594: 6afb ldr r3, [r7, #44] ; 0x2c } - 8005602: 4618 mov r0, r3 - 8005604: 3730 adds r7, #48 ; 0x30 - 8005606: 46bd mov sp, r7 - 8005608: bd80 pop {r7, pc} + 8005596: 4618 mov r0, r3 + 8005598: 3730 adds r7, #48 ; 0x30 + 800559a: 46bd mov sp, r7 + 800559c: bd80 pop {r7, pc} ... -0800560c : +080055a0 : static void init_scroll_limits(_lv_indev_proc_t * proc) { - 800560c: b590 push {r4, r7, lr} - 800560e: b087 sub sp, #28 - 8005610: af02 add r7, sp, #8 - 8005612: 6078 str r0, [r7, #4] + 80055a0: b590 push {r4, r7, lr} + 80055a2: b087 sub sp, #28 + 80055a4: af02 add r7, sp, #8 + 80055a6: 6078 str r0, [r7, #4] lv_obj_t * obj = proc->types.pointer.scroll_obj; - 8005614: 687b ldr r3, [r7, #4] - 8005616: 6a9b ldr r3, [r3, #40] ; 0x28 - 8005618: 60fb str r3, [r7, #12] + 80055a8: 687b ldr r3, [r7, #4] + 80055aa: 6a9b ldr r3, [r3, #40] ; 0x28 + 80055ac: 60fb str r3, [r7, #12] /*If there no STOP allow scrolling anywhere*/ if(lv_obj_has_flag(obj, LV_OBJ_FLAG_SCROLL_ONE) == false) { - 800561a: 2180 movs r1, #128 ; 0x80 - 800561c: 68f8 ldr r0, [r7, #12] - 800561e: f001 f8b0 bl 8006782 - 8005622: 4603 mov r3, r0 - 8005624: f083 0301 eor.w r3, r3, #1 - 8005628: b2db uxtb r3, r3 - 800562a: 2b00 cmp r3, #0 - 800562c: d00c beq.n 8005648 + 80055ae: 2180 movs r1, #128 ; 0x80 + 80055b0: 68f8 ldr r0, [r7, #12] + 80055b2: f001 f8b0 bl 8006716 + 80055b6: 4603 mov r3, r0 + 80055b8: f083 0301 eor.w r3, r3, #1 + 80055bc: b2db uxtb r3, r3 + 80055be: 2b00 cmp r3, #0 + 80055c0: d00c beq.n 80055dc lv_area_set(&proc->types.pointer.scroll_area, LV_COORD_MIN, LV_COORD_MIN, LV_COORD_MAX, LV_COORD_MAX); - 800562e: 687b ldr r3, [r7, #4] - 8005630: f103 0030 add.w r0, r3, #48 ; 0x30 - 8005634: f641 73ff movw r3, #8191 ; 0x1fff - 8005638: 9300 str r3, [sp, #0] - 800563a: f641 73ff movw r3, #8191 ; 0x1fff - 800563e: 4a92 ldr r2, [pc, #584] ; (8005888 ) - 8005640: 4991 ldr r1, [pc, #580] ; (8005888 ) - 8005642: f02b fc5b bl 8030efc - 8005646: e0f7 b.n 8005838 + 80055c2: 687b ldr r3, [r7, #4] + 80055c4: f103 0030 add.w r0, r3, #48 ; 0x30 + 80055c8: f641 73ff movw r3, #8191 ; 0x1fff + 80055cc: 9300 str r3, [sp, #0] + 80055ce: f641 73ff movw r3, #8191 ; 0x1fff + 80055d2: 4a92 ldr r2, [pc, #584] ; (800581c ) + 80055d4: 4991 ldr r1, [pc, #580] ; (800581c ) + 80055d6: f02b fc47 bl 8030e68 + 80055da: e0f7 b.n 80057cc } /*With STOP limit the scrolling to the perv and next snap point*/ else { switch(lv_obj_get_scroll_snap_y(obj)) { - 8005648: 68f8 ldr r0, [r7, #12] - 800564a: f006 f97c bl 800b946 - 800564e: 4603 mov r3, r0 - 8005650: 2b03 cmp r3, #3 - 8005652: d042 beq.n 80056da - 8005654: 2b03 cmp r3, #3 - 8005656: dc6e bgt.n 8005736 - 8005658: 2b01 cmp r3, #1 - 800565a: d002 beq.n 8005662 - 800565c: 2b02 cmp r3, #2 - 800565e: d022 beq.n 80056a6 - 8005660: e069 b.n 8005736 + 80055dc: 68f8 ldr r0, [r7, #12] + 80055de: f006 f97c bl 800b8da + 80055e2: 4603 mov r3, r0 + 80055e4: 2b03 cmp r3, #3 + 80055e6: d042 beq.n 800566e + 80055e8: 2b03 cmp r3, #3 + 80055ea: dc6e bgt.n 80056ca + 80055ec: 2b01 cmp r3, #1 + 80055ee: d002 beq.n 80055f6 + 80055f0: 2b02 cmp r3, #2 + 80055f2: d022 beq.n 800563a + 80055f4: e069 b.n 80056ca case LV_SCROLL_SNAP_START: proc->types.pointer.scroll_area.y1 = find_snap_point_y(obj, obj->coords.y1 + 1, LV_COORD_MAX, 0); - 8005662: 68fb ldr r3, [r7, #12] - 8005664: f9b3 3016 ldrsh.w r3, [r3, #22] - 8005668: b29b uxth r3, r3 - 800566a: 3301 adds r3, #1 - 800566c: b29b uxth r3, r3 - 800566e: b219 sxth r1, r3 - 8005670: 2300 movs r3, #0 - 8005672: f641 72ff movw r2, #8191 ; 0x1fff - 8005676: 68f8 ldr r0, [r7, #12] - 8005678: f000 f9e8 bl 8005a4c - 800567c: 4603 mov r3, r0 - 800567e: 461a mov r2, r3 - 8005680: 687b ldr r3, [r7, #4] - 8005682: 865a strh r2, [r3, #50] ; 0x32 + 80055f6: 68fb ldr r3, [r7, #12] + 80055f8: f9b3 3016 ldrsh.w r3, [r3, #22] + 80055fc: b29b uxth r3, r3 + 80055fe: 3301 adds r3, #1 + 8005600: b29b uxth r3, r3 + 8005602: b219 sxth r1, r3 + 8005604: 2300 movs r3, #0 + 8005606: f641 72ff movw r2, #8191 ; 0x1fff + 800560a: 68f8 ldr r0, [r7, #12] + 800560c: f000 f9e8 bl 80059e0 + 8005610: 4603 mov r3, r0 + 8005612: 461a mov r2, r3 + 8005614: 687b ldr r3, [r7, #4] + 8005616: 865a strh r2, [r3, #50] ; 0x32 proc->types.pointer.scroll_area.y2 = find_snap_point_y(obj, LV_COORD_MIN, obj->coords.y1 - 1, 0); - 8005684: 68fb ldr r3, [r7, #12] - 8005686: f9b3 3016 ldrsh.w r3, [r3, #22] - 800568a: b29b uxth r3, r3 - 800568c: 3b01 subs r3, #1 - 800568e: b29b uxth r3, r3 - 8005690: b21a sxth r2, r3 - 8005692: 2300 movs r3, #0 - 8005694: 497c ldr r1, [pc, #496] ; (8005888 ) - 8005696: 68f8 ldr r0, [r7, #12] - 8005698: f000 f9d8 bl 8005a4c - 800569c: 4603 mov r3, r0 - 800569e: 461a mov r2, r3 - 80056a0: 687b ldr r3, [r7, #4] - 80056a2: 86da strh r2, [r3, #54] ; 0x36 + 8005618: 68fb ldr r3, [r7, #12] + 800561a: f9b3 3016 ldrsh.w r3, [r3, #22] + 800561e: b29b uxth r3, r3 + 8005620: 3b01 subs r3, #1 + 8005622: b29b uxth r3, r3 + 8005624: b21a sxth r2, r3 + 8005626: 2300 movs r3, #0 + 8005628: 497c ldr r1, [pc, #496] ; (800581c ) + 800562a: 68f8 ldr r0, [r7, #12] + 800562c: f000 f9d8 bl 80059e0 + 8005630: 4603 mov r3, r0 + 8005632: 461a mov r2, r3 + 8005634: 687b ldr r3, [r7, #4] + 8005636: 86da strh r2, [r3, #54] ; 0x36 break; - 80056a4: e050 b.n 8005748 + 8005638: e050 b.n 80056dc case LV_SCROLL_SNAP_END: proc->types.pointer.scroll_area.y1 = find_snap_point_y(obj, obj->coords.y2, LV_COORD_MAX, 0); - 80056a6: 68fb ldr r3, [r7, #12] - 80056a8: f9b3 101a ldrsh.w r1, [r3, #26] - 80056ac: 2300 movs r3, #0 - 80056ae: f641 72ff movw r2, #8191 ; 0x1fff - 80056b2: 68f8 ldr r0, [r7, #12] - 80056b4: f000 f9ca bl 8005a4c - 80056b8: 4603 mov r3, r0 - 80056ba: 461a mov r2, r3 - 80056bc: 687b ldr r3, [r7, #4] - 80056be: 865a strh r2, [r3, #50] ; 0x32 + 800563a: 68fb ldr r3, [r7, #12] + 800563c: f9b3 101a ldrsh.w r1, [r3, #26] + 8005640: 2300 movs r3, #0 + 8005642: f641 72ff movw r2, #8191 ; 0x1fff + 8005646: 68f8 ldr r0, [r7, #12] + 8005648: f000 f9ca bl 80059e0 + 800564c: 4603 mov r3, r0 + 800564e: 461a mov r2, r3 + 8005650: 687b ldr r3, [r7, #4] + 8005652: 865a strh r2, [r3, #50] ; 0x32 proc->types.pointer.scroll_area.y2 = find_snap_point_y(obj, LV_COORD_MIN, obj->coords.y2, 0); - 80056c0: 68fb ldr r3, [r7, #12] - 80056c2: f9b3 201a ldrsh.w r2, [r3, #26] - 80056c6: 2300 movs r3, #0 - 80056c8: 496f ldr r1, [pc, #444] ; (8005888 ) - 80056ca: 68f8 ldr r0, [r7, #12] - 80056cc: f000 f9be bl 8005a4c - 80056d0: 4603 mov r3, r0 - 80056d2: 461a mov r2, r3 - 80056d4: 687b ldr r3, [r7, #4] - 80056d6: 86da strh r2, [r3, #54] ; 0x36 + 8005654: 68fb ldr r3, [r7, #12] + 8005656: f9b3 201a ldrsh.w r2, [r3, #26] + 800565a: 2300 movs r3, #0 + 800565c: 496f ldr r1, [pc, #444] ; (800581c ) + 800565e: 68f8 ldr r0, [r7, #12] + 8005660: f000 f9be bl 80059e0 + 8005664: 4603 mov r3, r0 + 8005666: 461a mov r2, r3 + 8005668: 687b ldr r3, [r7, #4] + 800566a: 86da strh r2, [r3, #54] ; 0x36 break; - 80056d8: e036 b.n 8005748 + 800566c: e036 b.n 80056dc case LV_SCROLL_SNAP_CENTER: { lv_coord_t y_mid = obj->coords.y1 + lv_area_get_height(&obj->coords) / 2; - 80056da: 68fb ldr r3, [r7, #12] - 80056dc: f9b3 3016 ldrsh.w r3, [r3, #22] - 80056e0: b29c uxth r4, r3 - 80056e2: 68fb ldr r3, [r7, #12] - 80056e4: 3314 adds r3, #20 - 80056e6: 4618 mov r0, r3 - 80056e8: f7ff fae0 bl 8004cac - 80056ec: 4603 mov r3, r0 - 80056ee: 0fda lsrs r2, r3, #31 - 80056f0: 4413 add r3, r2 - 80056f2: 105b asrs r3, r3, #1 - 80056f4: b21b sxth r3, r3 - 80056f6: b29b uxth r3, r3 - 80056f8: 4423 add r3, r4 - 80056fa: b29b uxth r3, r3 - 80056fc: 817b strh r3, [r7, #10] + 800566e: 68fb ldr r3, [r7, #12] + 8005670: f9b3 3016 ldrsh.w r3, [r3, #22] + 8005674: b29c uxth r4, r3 + 8005676: 68fb ldr r3, [r7, #12] + 8005678: 3314 adds r3, #20 + 800567a: 4618 mov r0, r3 + 800567c: f7ff fae0 bl 8004c40 + 8005680: 4603 mov r3, r0 + 8005682: 0fda lsrs r2, r3, #31 + 8005684: 4413 add r3, r2 + 8005686: 105b asrs r3, r3, #1 + 8005688: b21b sxth r3, r3 + 800568a: b29b uxth r3, r3 + 800568c: 4423 add r3, r4 + 800568e: b29b uxth r3, r3 + 8005690: 817b strh r3, [r7, #10] proc->types.pointer.scroll_area.y1 = find_snap_point_y(obj, y_mid + 1, LV_COORD_MAX, 0); - 80056fe: 897b ldrh r3, [r7, #10] - 8005700: 3301 adds r3, #1 - 8005702: b29b uxth r3, r3 - 8005704: b219 sxth r1, r3 - 8005706: 2300 movs r3, #0 - 8005708: f641 72ff movw r2, #8191 ; 0x1fff - 800570c: 68f8 ldr r0, [r7, #12] - 800570e: f000 f99d bl 8005a4c - 8005712: 4603 mov r3, r0 - 8005714: 461a mov r2, r3 - 8005716: 687b ldr r3, [r7, #4] - 8005718: 865a strh r2, [r3, #50] ; 0x32 + 8005692: 897b ldrh r3, [r7, #10] + 8005694: 3301 adds r3, #1 + 8005696: b29b uxth r3, r3 + 8005698: b219 sxth r1, r3 + 800569a: 2300 movs r3, #0 + 800569c: f641 72ff movw r2, #8191 ; 0x1fff + 80056a0: 68f8 ldr r0, [r7, #12] + 80056a2: f000 f99d bl 80059e0 + 80056a6: 4603 mov r3, r0 + 80056a8: 461a mov r2, r3 + 80056aa: 687b ldr r3, [r7, #4] + 80056ac: 865a strh r2, [r3, #50] ; 0x32 proc->types.pointer.scroll_area.y2 = find_snap_point_y(obj, LV_COORD_MIN, y_mid - 1, 0); - 800571a: 897b ldrh r3, [r7, #10] - 800571c: 3b01 subs r3, #1 - 800571e: b29b uxth r3, r3 - 8005720: b21a sxth r2, r3 - 8005722: 2300 movs r3, #0 - 8005724: 4958 ldr r1, [pc, #352] ; (8005888 ) - 8005726: 68f8 ldr r0, [r7, #12] - 8005728: f000 f990 bl 8005a4c - 800572c: 4603 mov r3, r0 - 800572e: 461a mov r2, r3 - 8005730: 687b ldr r3, [r7, #4] - 8005732: 86da strh r2, [r3, #54] ; 0x36 + 80056ae: 897b ldrh r3, [r7, #10] + 80056b0: 3b01 subs r3, #1 + 80056b2: b29b uxth r3, r3 + 80056b4: b21a sxth r2, r3 + 80056b6: 2300 movs r3, #0 + 80056b8: 4958 ldr r1, [pc, #352] ; (800581c ) + 80056ba: 68f8 ldr r0, [r7, #12] + 80056bc: f000 f990 bl 80059e0 + 80056c0: 4603 mov r3, r0 + 80056c2: 461a mov r2, r3 + 80056c4: 687b ldr r3, [r7, #4] + 80056c6: 86da strh r2, [r3, #54] ; 0x36 break; - 8005734: e008 b.n 8005748 + 80056c8: e008 b.n 80056dc } default: proc->types.pointer.scroll_area.y1 = LV_COORD_MIN; - 8005736: 687b ldr r3, [r7, #4] - 8005738: f24e 0201 movw r2, #57345 ; 0xe001 - 800573c: 865a strh r2, [r3, #50] ; 0x32 + 80056ca: 687b ldr r3, [r7, #4] + 80056cc: f24e 0201 movw r2, #57345 ; 0xe001 + 80056d0: 865a strh r2, [r3, #50] ; 0x32 proc->types.pointer.scroll_area.y2 = LV_COORD_MAX; - 800573e: 687b ldr r3, [r7, #4] - 8005740: f641 72ff movw r2, #8191 ; 0x1fff - 8005744: 86da strh r2, [r3, #54] ; 0x36 + 80056d2: 687b ldr r3, [r7, #4] + 80056d4: f641 72ff movw r2, #8191 ; 0x1fff + 80056d8: 86da strh r2, [r3, #54] ; 0x36 break; - 8005746: bf00 nop + 80056da: bf00 nop } switch(lv_obj_get_scroll_snap_x(obj)) { - 8005748: 68f8 ldr r0, [r7, #12] - 800574a: f006 f8e7 bl 800b91c - 800574e: 4603 mov r3, r0 - 8005750: 2b03 cmp r3, #3 - 8005752: d03a beq.n 80057ca - 8005754: 2b03 cmp r3, #3 - 8005756: dc66 bgt.n 8005826 - 8005758: 2b01 cmp r3, #1 - 800575a: d002 beq.n 8005762 - 800575c: 2b02 cmp r3, #2 - 800575e: d01a beq.n 8005796 - 8005760: e061 b.n 8005826 + 80056dc: 68f8 ldr r0, [r7, #12] + 80056de: f006 f8e7 bl 800b8b0 + 80056e2: 4603 mov r3, r0 + 80056e4: 2b03 cmp r3, #3 + 80056e6: d03a beq.n 800575e + 80056e8: 2b03 cmp r3, #3 + 80056ea: dc66 bgt.n 80057ba + 80056ec: 2b01 cmp r3, #1 + 80056ee: d002 beq.n 80056f6 + 80056f0: 2b02 cmp r3, #2 + 80056f2: d01a beq.n 800572a + 80056f4: e061 b.n 80057ba case LV_SCROLL_SNAP_START: proc->types.pointer.scroll_area.x1 = find_snap_point_x(obj, obj->coords.x1, LV_COORD_MAX, 0); - 8005762: 68fb ldr r3, [r7, #12] - 8005764: f9b3 1014 ldrsh.w r1, [r3, #20] - 8005768: 2300 movs r3, #0 - 800576a: f641 72ff movw r2, #8191 ; 0x1fff - 800576e: 68f8 ldr r0, [r7, #12] - 8005770: f000 f88c bl 800588c - 8005774: 4603 mov r3, r0 - 8005776: 461a mov r2, r3 - 8005778: 687b ldr r3, [r7, #4] - 800577a: 861a strh r2, [r3, #48] ; 0x30 + 80056f6: 68fb ldr r3, [r7, #12] + 80056f8: f9b3 1014 ldrsh.w r1, [r3, #20] + 80056fc: 2300 movs r3, #0 + 80056fe: f641 72ff movw r2, #8191 ; 0x1fff + 8005702: 68f8 ldr r0, [r7, #12] + 8005704: f000 f88c bl 8005820 + 8005708: 4603 mov r3, r0 + 800570a: 461a mov r2, r3 + 800570c: 687b ldr r3, [r7, #4] + 800570e: 861a strh r2, [r3, #48] ; 0x30 proc->types.pointer.scroll_area.x2 = find_snap_point_x(obj, LV_COORD_MIN, obj->coords.x1, 0); - 800577c: 68fb ldr r3, [r7, #12] - 800577e: f9b3 2014 ldrsh.w r2, [r3, #20] - 8005782: 2300 movs r3, #0 - 8005784: 4940 ldr r1, [pc, #256] ; (8005888 ) - 8005786: 68f8 ldr r0, [r7, #12] - 8005788: f000 f880 bl 800588c - 800578c: 4603 mov r3, r0 - 800578e: 461a mov r2, r3 - 8005790: 687b ldr r3, [r7, #4] - 8005792: 869a strh r2, [r3, #52] ; 0x34 + 8005710: 68fb ldr r3, [r7, #12] + 8005712: f9b3 2014 ldrsh.w r2, [r3, #20] + 8005716: 2300 movs r3, #0 + 8005718: 4940 ldr r1, [pc, #256] ; (800581c ) + 800571a: 68f8 ldr r0, [r7, #12] + 800571c: f000 f880 bl 8005820 + 8005720: 4603 mov r3, r0 + 8005722: 461a mov r2, r3 + 8005724: 687b ldr r3, [r7, #4] + 8005726: 869a strh r2, [r3, #52] ; 0x34 break; - 8005794: e050 b.n 8005838 + 8005728: e050 b.n 80057cc case LV_SCROLL_SNAP_END: proc->types.pointer.scroll_area.x1 = find_snap_point_x(obj, obj->coords.x2, LV_COORD_MAX, 0); - 8005796: 68fb ldr r3, [r7, #12] - 8005798: f9b3 1018 ldrsh.w r1, [r3, #24] - 800579c: 2300 movs r3, #0 - 800579e: f641 72ff movw r2, #8191 ; 0x1fff - 80057a2: 68f8 ldr r0, [r7, #12] - 80057a4: f000 f872 bl 800588c - 80057a8: 4603 mov r3, r0 - 80057aa: 461a mov r2, r3 - 80057ac: 687b ldr r3, [r7, #4] - 80057ae: 861a strh r2, [r3, #48] ; 0x30 + 800572a: 68fb ldr r3, [r7, #12] + 800572c: f9b3 1018 ldrsh.w r1, [r3, #24] + 8005730: 2300 movs r3, #0 + 8005732: f641 72ff movw r2, #8191 ; 0x1fff + 8005736: 68f8 ldr r0, [r7, #12] + 8005738: f000 f872 bl 8005820 + 800573c: 4603 mov r3, r0 + 800573e: 461a mov r2, r3 + 8005740: 687b ldr r3, [r7, #4] + 8005742: 861a strh r2, [r3, #48] ; 0x30 proc->types.pointer.scroll_area.x2 = find_snap_point_x(obj, LV_COORD_MIN, obj->coords.x2, 0); - 80057b0: 68fb ldr r3, [r7, #12] - 80057b2: f9b3 2018 ldrsh.w r2, [r3, #24] - 80057b6: 2300 movs r3, #0 - 80057b8: 4933 ldr r1, [pc, #204] ; (8005888 ) - 80057ba: 68f8 ldr r0, [r7, #12] - 80057bc: f000 f866 bl 800588c - 80057c0: 4603 mov r3, r0 - 80057c2: 461a mov r2, r3 - 80057c4: 687b ldr r3, [r7, #4] - 80057c6: 869a strh r2, [r3, #52] ; 0x34 + 8005744: 68fb ldr r3, [r7, #12] + 8005746: f9b3 2018 ldrsh.w r2, [r3, #24] + 800574a: 2300 movs r3, #0 + 800574c: 4933 ldr r1, [pc, #204] ; (800581c ) + 800574e: 68f8 ldr r0, [r7, #12] + 8005750: f000 f866 bl 8005820 + 8005754: 4603 mov r3, r0 + 8005756: 461a mov r2, r3 + 8005758: 687b ldr r3, [r7, #4] + 800575a: 869a strh r2, [r3, #52] ; 0x34 break; - 80057c8: e036 b.n 8005838 + 800575c: e036 b.n 80057cc case LV_SCROLL_SNAP_CENTER: { lv_coord_t x_mid = obj->coords.x1 + lv_area_get_width(&obj->coords) / 2; - 80057ca: 68fb ldr r3, [r7, #12] - 80057cc: f9b3 3014 ldrsh.w r3, [r3, #20] - 80057d0: b29c uxth r4, r3 - 80057d2: 68fb ldr r3, [r7, #12] - 80057d4: 3314 adds r3, #20 - 80057d6: 4618 mov r0, r3 - 80057d8: f7ff fa52 bl 8004c80 - 80057dc: 4603 mov r3, r0 - 80057de: 0fda lsrs r2, r3, #31 - 80057e0: 4413 add r3, r2 - 80057e2: 105b asrs r3, r3, #1 - 80057e4: b21b sxth r3, r3 - 80057e6: b29b uxth r3, r3 - 80057e8: 4423 add r3, r4 - 80057ea: b29b uxth r3, r3 - 80057ec: 813b strh r3, [r7, #8] + 800575e: 68fb ldr r3, [r7, #12] + 8005760: f9b3 3014 ldrsh.w r3, [r3, #20] + 8005764: b29c uxth r4, r3 + 8005766: 68fb ldr r3, [r7, #12] + 8005768: 3314 adds r3, #20 + 800576a: 4618 mov r0, r3 + 800576c: f7ff fa52 bl 8004c14 + 8005770: 4603 mov r3, r0 + 8005772: 0fda lsrs r2, r3, #31 + 8005774: 4413 add r3, r2 + 8005776: 105b asrs r3, r3, #1 + 8005778: b21b sxth r3, r3 + 800577a: b29b uxth r3, r3 + 800577c: 4423 add r3, r4 + 800577e: b29b uxth r3, r3 + 8005780: 813b strh r3, [r7, #8] proc->types.pointer.scroll_area.x1 = find_snap_point_x(obj, x_mid + 1, LV_COORD_MAX, 0); - 80057ee: 893b ldrh r3, [r7, #8] - 80057f0: 3301 adds r3, #1 - 80057f2: b29b uxth r3, r3 - 80057f4: b219 sxth r1, r3 - 80057f6: 2300 movs r3, #0 - 80057f8: f641 72ff movw r2, #8191 ; 0x1fff - 80057fc: 68f8 ldr r0, [r7, #12] - 80057fe: f000 f845 bl 800588c - 8005802: 4603 mov r3, r0 - 8005804: 461a mov r2, r3 - 8005806: 687b ldr r3, [r7, #4] - 8005808: 861a strh r2, [r3, #48] ; 0x30 + 8005782: 893b ldrh r3, [r7, #8] + 8005784: 3301 adds r3, #1 + 8005786: b29b uxth r3, r3 + 8005788: b219 sxth r1, r3 + 800578a: 2300 movs r3, #0 + 800578c: f641 72ff movw r2, #8191 ; 0x1fff + 8005790: 68f8 ldr r0, [r7, #12] + 8005792: f000 f845 bl 8005820 + 8005796: 4603 mov r3, r0 + 8005798: 461a mov r2, r3 + 800579a: 687b ldr r3, [r7, #4] + 800579c: 861a strh r2, [r3, #48] ; 0x30 proc->types.pointer.scroll_area.x2 = find_snap_point_x(obj, LV_COORD_MIN, x_mid - 1, 0); - 800580a: 893b ldrh r3, [r7, #8] - 800580c: 3b01 subs r3, #1 - 800580e: b29b uxth r3, r3 - 8005810: b21a sxth r2, r3 - 8005812: 2300 movs r3, #0 - 8005814: 491c ldr r1, [pc, #112] ; (8005888 ) - 8005816: 68f8 ldr r0, [r7, #12] - 8005818: f000 f838 bl 800588c - 800581c: 4603 mov r3, r0 - 800581e: 461a mov r2, r3 - 8005820: 687b ldr r3, [r7, #4] - 8005822: 869a strh r2, [r3, #52] ; 0x34 + 800579e: 893b ldrh r3, [r7, #8] + 80057a0: 3b01 subs r3, #1 + 80057a2: b29b uxth r3, r3 + 80057a4: b21a sxth r2, r3 + 80057a6: 2300 movs r3, #0 + 80057a8: 491c ldr r1, [pc, #112] ; (800581c ) + 80057aa: 68f8 ldr r0, [r7, #12] + 80057ac: f000 f838 bl 8005820 + 80057b0: 4603 mov r3, r0 + 80057b2: 461a mov r2, r3 + 80057b4: 687b ldr r3, [r7, #4] + 80057b6: 869a strh r2, [r3, #52] ; 0x34 break; - 8005824: e008 b.n 8005838 + 80057b8: e008 b.n 80057cc } default: proc->types.pointer.scroll_area.x1 = LV_COORD_MIN; - 8005826: 687b ldr r3, [r7, #4] - 8005828: f24e 0201 movw r2, #57345 ; 0xe001 - 800582c: 861a strh r2, [r3, #48] ; 0x30 + 80057ba: 687b ldr r3, [r7, #4] + 80057bc: f24e 0201 movw r2, #57345 ; 0xe001 + 80057c0: 861a strh r2, [r3, #48] ; 0x30 proc->types.pointer.scroll_area.x2 = LV_COORD_MAX; - 800582e: 687b ldr r3, [r7, #4] - 8005830: f641 72ff movw r2, #8191 ; 0x1fff - 8005834: 869a strh r2, [r3, #52] ; 0x34 + 80057c2: 687b ldr r3, [r7, #4] + 80057c4: f641 72ff movw r2, #8191 ; 0x1fff + 80057c8: 869a strh r2, [r3, #52] ; 0x34 break; - 8005836: bf00 nop + 80057ca: bf00 nop } } /*Allow scrolling on the edges. It will be reverted to the edge due to snapping anyway*/ if(proc->types.pointer.scroll_area.x1 == 0) proc->types.pointer.scroll_area.x1 = LV_COORD_MIN; - 8005838: 687b ldr r3, [r7, #4] - 800583a: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 - 800583e: 2b00 cmp r3, #0 - 8005840: d103 bne.n 800584a - 8005842: 687b ldr r3, [r7, #4] - 8005844: f24e 0201 movw r2, #57345 ; 0xe001 - 8005848: 861a strh r2, [r3, #48] ; 0x30 + 80057cc: 687b ldr r3, [r7, #4] + 80057ce: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 + 80057d2: 2b00 cmp r3, #0 + 80057d4: d103 bne.n 80057de + 80057d6: 687b ldr r3, [r7, #4] + 80057d8: f24e 0201 movw r2, #57345 ; 0xe001 + 80057dc: 861a strh r2, [r3, #48] ; 0x30 if(proc->types.pointer.scroll_area.x2 == 0) proc->types.pointer.scroll_area.x2 = LV_COORD_MAX; - 800584a: 687b ldr r3, [r7, #4] - 800584c: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 - 8005850: 2b00 cmp r3, #0 - 8005852: d103 bne.n 800585c - 8005854: 687b ldr r3, [r7, #4] - 8005856: f641 72ff movw r2, #8191 ; 0x1fff - 800585a: 869a strh r2, [r3, #52] ; 0x34 + 80057de: 687b ldr r3, [r7, #4] + 80057e0: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 + 80057e4: 2b00 cmp r3, #0 + 80057e6: d103 bne.n 80057f0 + 80057e8: 687b ldr r3, [r7, #4] + 80057ea: f641 72ff movw r2, #8191 ; 0x1fff + 80057ee: 869a strh r2, [r3, #52] ; 0x34 if(proc->types.pointer.scroll_area.y1 == 0) proc->types.pointer.scroll_area.y1 = LV_COORD_MIN; - 800585c: 687b ldr r3, [r7, #4] - 800585e: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 - 8005862: 2b00 cmp r3, #0 - 8005864: d103 bne.n 800586e - 8005866: 687b ldr r3, [r7, #4] - 8005868: f24e 0201 movw r2, #57345 ; 0xe001 - 800586c: 865a strh r2, [r3, #50] ; 0x32 + 80057f0: 687b ldr r3, [r7, #4] + 80057f2: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 + 80057f6: 2b00 cmp r3, #0 + 80057f8: d103 bne.n 8005802 + 80057fa: 687b ldr r3, [r7, #4] + 80057fc: f24e 0201 movw r2, #57345 ; 0xe001 + 8005800: 865a strh r2, [r3, #50] ; 0x32 if(proc->types.pointer.scroll_area.y2 == 0) proc->types.pointer.scroll_area.y2 = LV_COORD_MAX; - 800586e: 687b ldr r3, [r7, #4] - 8005870: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 - 8005874: 2b00 cmp r3, #0 - 8005876: d103 bne.n 8005880 - 8005878: 687b ldr r3, [r7, #4] - 800587a: f641 72ff movw r2, #8191 ; 0x1fff - 800587e: 86da strh r2, [r3, #54] ; 0x36 + 8005802: 687b ldr r3, [r7, #4] + 8005804: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 + 8005808: 2b00 cmp r3, #0 + 800580a: d103 bne.n 8005814 + 800580c: 687b ldr r3, [r7, #4] + 800580e: f641 72ff movw r2, #8191 ; 0x1fff + 8005812: 86da strh r2, [r3, #54] ; 0x36 } - 8005880: bf00 nop - 8005882: 3714 adds r7, #20 - 8005884: 46bd mov sp, r7 - 8005886: bd90 pop {r4, r7, pc} - 8005888: ffffe001 .word 0xffffe001 + 8005814: bf00 nop + 8005816: 3714 adds r7, #20 + 8005818: 46bd mov sp, r7 + 800581a: bd90 pop {r4, r7, pc} + 800581c: ffffe001 .word 0xffffe001 -0800588c : +08005820 : * @param ofs offset to snap points. Useful the get a snap point in an imagined case * what if children are already moved by this value * @return the distance of the snap point. */ static lv_coord_t find_snap_point_x(const lv_obj_t * obj, lv_coord_t min, lv_coord_t max, lv_coord_t ofs) { - 800588c: b590 push {r4, r7, lr} - 800588e: b08d sub sp, #52 ; 0x34 - 8005890: af00 add r7, sp, #0 - 8005892: 60f8 str r0, [r7, #12] - 8005894: 4608 mov r0, r1 - 8005896: 4611 mov r1, r2 - 8005898: 461a mov r2, r3 - 800589a: 4603 mov r3, r0 - 800589c: 817b strh r3, [r7, #10] - 800589e: 460b mov r3, r1 - 80058a0: 813b strh r3, [r7, #8] - 80058a2: 4613 mov r3, r2 - 80058a4: 80fb strh r3, [r7, #6] + 8005820: b590 push {r4, r7, lr} + 8005822: b08d sub sp, #52 ; 0x34 + 8005824: af00 add r7, sp, #0 + 8005826: 60f8 str r0, [r7, #12] + 8005828: 4608 mov r0, r1 + 800582a: 4611 mov r1, r2 + 800582c: 461a mov r2, r3 + 800582e: 4603 mov r3, r0 + 8005830: 817b strh r3, [r7, #10] + 8005832: 460b mov r3, r1 + 8005834: 813b strh r3, [r7, #8] + 8005836: 4613 mov r3, r2 + 8005838: 80fb strh r3, [r7, #6] lv_scroll_snap_t align = lv_obj_get_scroll_snap_x(obj); - 80058a6: 68f8 ldr r0, [r7, #12] - 80058a8: f006 f838 bl 800b91c - 80058ac: 4603 mov r3, r0 - 80058ae: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 800583a: 68f8 ldr r0, [r7, #12] + 800583c: f006 f838 bl 800b8b0 + 8005840: 4603 mov r3, r0 + 8005842: f887 3023 strb.w r3, [r7, #35] ; 0x23 if(align == LV_SCROLL_SNAP_NONE) return 0; - 80058b2: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 80058b6: 2b00 cmp r3, #0 - 80058b8: d101 bne.n 80058be - 80058ba: 2300 movs r3, #0 - 80058bc: e0c0 b.n 8005a40 + 8005846: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 800584a: 2b00 cmp r3, #0 + 800584c: d101 bne.n 8005852 + 800584e: 2300 movs r3, #0 + 8005850: e0c0 b.n 80059d4 lv_coord_t dist = LV_COORD_MAX; - 80058be: f641 73ff movw r3, #8191 ; 0x1fff - 80058c2: 85fb strh r3, [r7, #46] ; 0x2e + 8005852: f641 73ff movw r3, #8191 ; 0x1fff + 8005856: 85fb strh r3, [r7, #46] ; 0x2e lv_coord_t pad_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 80058c4: 2100 movs r1, #0 - 80058c6: 68f8 ldr r0, [r7, #12] - 80058c8: f7ff fa2c bl 8004d24 - 80058cc: 4603 mov r3, r0 - 80058ce: 843b strh r3, [r7, #32] + 8005858: 2100 movs r1, #0 + 800585a: 68f8 ldr r0, [r7, #12] + 800585c: f7ff fa2c bl 8004cb8 + 8005860: 4603 mov r3, r0 + 8005862: 843b strh r3, [r7, #32] lv_coord_t pad_right = lv_obj_get_style_pad_right(obj, LV_PART_MAIN); - 80058d0: 2100 movs r1, #0 - 80058d2: 68f8 ldr r0, [r7, #12] - 80058d4: f7ff fa39 bl 8004d4a - 80058d8: 4603 mov r3, r0 - 80058da: 83fb strh r3, [r7, #30] + 8005864: 2100 movs r1, #0 + 8005866: 68f8 ldr r0, [r7, #12] + 8005868: f7ff fa39 bl 8004cde + 800586c: 4603 mov r3, r0 + 800586e: 83fb strh r3, [r7, #30] uint32_t i; uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 80058dc: 68f8 ldr r0, [r7, #12] - 80058de: f009 ff57 bl 800f790 - 80058e2: 61b8 str r0, [r7, #24] + 8005870: 68f8 ldr r0, [r7, #12] + 8005872: f009 ff43 bl 800f6fc + 8005876: 61b8 str r0, [r7, #24] for(i = 0; i < child_cnt; i++) { - 80058e4: 2300 movs r3, #0 - 80058e6: 62bb str r3, [r7, #40] ; 0x28 - 80058e8: e099 b.n 8005a1e + 8005878: 2300 movs r3, #0 + 800587a: 62bb str r3, [r7, #40] ; 0x28 + 800587c: e099 b.n 80059b2 lv_obj_t * child = obj->spec_attr->children[i]; - 80058ea: 68fb ldr r3, [r7, #12] - 80058ec: 689b ldr r3, [r3, #8] - 80058ee: 681a ldr r2, [r3, #0] - 80058f0: 6abb ldr r3, [r7, #40] ; 0x28 - 80058f2: 009b lsls r3, r3, #2 - 80058f4: 4413 add r3, r2 - 80058f6: 681b ldr r3, [r3, #0] - 80058f8: 617b str r3, [r7, #20] + 800587e: 68fb ldr r3, [r7, #12] + 8005880: 689b ldr r3, [r3, #8] + 8005882: 681a ldr r2, [r3, #0] + 8005884: 6abb ldr r3, [r7, #40] ; 0x28 + 8005886: 009b lsls r3, r3, #2 + 8005888: 4413 add r3, r2 + 800588a: 681b ldr r3, [r3, #0] + 800588c: 617b str r3, [r7, #20] if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 80058fa: 4953 ldr r1, [pc, #332] ; (8005a48 ) - 80058fc: 6978 ldr r0, [r7, #20] - 80058fe: f000 ff54 bl 80067aa - 8005902: 4603 mov r3, r0 - 8005904: 2b00 cmp r3, #0 - 8005906: f040 8084 bne.w 8005a12 + 800588e: 4953 ldr r1, [pc, #332] ; (80059dc ) + 8005890: 6978 ldr r0, [r7, #20] + 8005892: f000 ff54 bl 800673e + 8005896: 4603 mov r3, r0 + 8005898: 2b00 cmp r3, #0 + 800589a: f040 8084 bne.w 80059a6 if(lv_obj_has_flag(child, LV_OBJ_FLAG_SNAPPABLE)) { - 800590a: f44f 5180 mov.w r1, #4096 ; 0x1000 - 800590e: 6978 ldr r0, [r7, #20] - 8005910: f000 ff37 bl 8006782 - 8005914: 4603 mov r3, r0 - 8005916: 2b00 cmp r3, #0 - 8005918: d07e beq.n 8005a18 + 800589e: f44f 5180 mov.w r1, #4096 ; 0x1000 + 80058a2: 6978 ldr r0, [r7, #20] + 80058a4: f000 ff37 bl 8006716 + 80058a8: 4603 mov r3, r0 + 80058aa: 2b00 cmp r3, #0 + 80058ac: d07e beq.n 80059ac lv_coord_t x_child = 0; - 800591a: 2300 movs r3, #0 - 800591c: 84fb strh r3, [r7, #38] ; 0x26 + 80058ae: 2300 movs r3, #0 + 80058b0: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t x_parent = 0; - 800591e: 2300 movs r3, #0 - 8005920: 84bb strh r3, [r7, #36] ; 0x24 + 80058b2: 2300 movs r3, #0 + 80058b4: 84bb strh r3, [r7, #36] ; 0x24 switch(align) { - 8005922: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8005926: 2b03 cmp r3, #3 - 8005928: d01e beq.n 8005968 - 800592a: 2b03 cmp r3, #3 - 800592c: dc73 bgt.n 8005a16 - 800592e: 2b01 cmp r3, #1 - 8005930: d002 beq.n 8005938 - 8005932: 2b02 cmp r3, #2 - 8005934: d00c beq.n 8005950 + 80058b6: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 80058ba: 2b03 cmp r3, #3 + 80058bc: d01e beq.n 80058fc + 80058be: 2b03 cmp r3, #3 + 80058c0: dc73 bgt.n 80059aa + 80058c2: 2b01 cmp r3, #1 + 80058c4: d002 beq.n 80058cc + 80058c6: 2b02 cmp r3, #2 + 80058c8: d00c beq.n 80058e4 case LV_SCROLL_SNAP_CENTER: x_child = child->coords.x1 + lv_area_get_width(&child->coords) / 2; x_parent = obj->coords.x1 + pad_left + (lv_area_get_width(&obj->coords) - pad_left - pad_right) / 2; break; default: continue; - 8005936: e06e b.n 8005a16 + 80058ca: e06e b.n 80059aa x_child = child->coords.x1; - 8005938: 697b ldr r3, [r7, #20] - 800593a: 8a9b ldrh r3, [r3, #20] - 800593c: 84fb strh r3, [r7, #38] ; 0x26 + 80058cc: 697b ldr r3, [r7, #20] + 80058ce: 8a9b ldrh r3, [r3, #20] + 80058d0: 84fb strh r3, [r7, #38] ; 0x26 x_parent = obj->coords.x1 + pad_left; - 800593e: 68fb ldr r3, [r7, #12] - 8005940: f9b3 3014 ldrsh.w r3, [r3, #20] - 8005944: b29a uxth r2, r3 - 8005946: 8c3b ldrh r3, [r7, #32] - 8005948: 4413 add r3, r2 - 800594a: b29b uxth r3, r3 - 800594c: 84bb strh r3, [r7, #36] ; 0x24 + 80058d2: 68fb ldr r3, [r7, #12] + 80058d4: f9b3 3014 ldrsh.w r3, [r3, #20] + 80058d8: b29a uxth r2, r3 + 80058da: 8c3b ldrh r3, [r7, #32] + 80058dc: 4413 add r3, r2 + 80058de: b29b uxth r3, r3 + 80058e0: 84bb strh r3, [r7, #36] ; 0x24 break; - 800594e: e039 b.n 80059c4 + 80058e2: e039 b.n 8005958 x_child = child->coords.x2; - 8005950: 697b ldr r3, [r7, #20] - 8005952: 8b1b ldrh r3, [r3, #24] - 8005954: 84fb strh r3, [r7, #38] ; 0x26 + 80058e4: 697b ldr r3, [r7, #20] + 80058e6: 8b1b ldrh r3, [r3, #24] + 80058e8: 84fb strh r3, [r7, #38] ; 0x26 x_parent = obj->coords.x2 - pad_right; - 8005956: 68fb ldr r3, [r7, #12] - 8005958: f9b3 3018 ldrsh.w r3, [r3, #24] - 800595c: b29a uxth r2, r3 - 800595e: 8bfb ldrh r3, [r7, #30] - 8005960: 1ad3 subs r3, r2, r3 - 8005962: b29b uxth r3, r3 - 8005964: 84bb strh r3, [r7, #36] ; 0x24 + 80058ea: 68fb ldr r3, [r7, #12] + 80058ec: f9b3 3018 ldrsh.w r3, [r3, #24] + 80058f0: b29a uxth r2, r3 + 80058f2: 8bfb ldrh r3, [r7, #30] + 80058f4: 1ad3 subs r3, r2, r3 + 80058f6: b29b uxth r3, r3 + 80058f8: 84bb strh r3, [r7, #36] ; 0x24 break; - 8005966: e02d b.n 80059c4 + 80058fa: e02d b.n 8005958 x_child = child->coords.x1 + lv_area_get_width(&child->coords) / 2; - 8005968: 697b ldr r3, [r7, #20] - 800596a: f9b3 3014 ldrsh.w r3, [r3, #20] - 800596e: b29c uxth r4, r3 - 8005970: 697b ldr r3, [r7, #20] - 8005972: 3314 adds r3, #20 - 8005974: 4618 mov r0, r3 - 8005976: f7ff f983 bl 8004c80 - 800597a: 4603 mov r3, r0 - 800597c: 0fda lsrs r2, r3, #31 - 800597e: 4413 add r3, r2 - 8005980: 105b asrs r3, r3, #1 - 8005982: b21b sxth r3, r3 - 8005984: b29b uxth r3, r3 - 8005986: 4423 add r3, r4 - 8005988: b29b uxth r3, r3 - 800598a: 84fb strh r3, [r7, #38] ; 0x26 + 80058fc: 697b ldr r3, [r7, #20] + 80058fe: f9b3 3014 ldrsh.w r3, [r3, #20] + 8005902: b29c uxth r4, r3 + 8005904: 697b ldr r3, [r7, #20] + 8005906: 3314 adds r3, #20 + 8005908: 4618 mov r0, r3 + 800590a: f7ff f983 bl 8004c14 + 800590e: 4603 mov r3, r0 + 8005910: 0fda lsrs r2, r3, #31 + 8005912: 4413 add r3, r2 + 8005914: 105b asrs r3, r3, #1 + 8005916: b21b sxth r3, r3 + 8005918: b29b uxth r3, r3 + 800591a: 4423 add r3, r4 + 800591c: b29b uxth r3, r3 + 800591e: 84fb strh r3, [r7, #38] ; 0x26 x_parent = obj->coords.x1 + pad_left + (lv_area_get_width(&obj->coords) - pad_left - pad_right) / 2; - 800598c: 68fb ldr r3, [r7, #12] - 800598e: f9b3 3014 ldrsh.w r3, [r3, #20] - 8005992: b29a uxth r2, r3 - 8005994: 8c3b ldrh r3, [r7, #32] - 8005996: 4413 add r3, r2 - 8005998: b29c uxth r4, r3 - 800599a: 68fb ldr r3, [r7, #12] - 800599c: 3314 adds r3, #20 - 800599e: 4618 mov r0, r3 - 80059a0: f7ff f96e bl 8004c80 - 80059a4: 4603 mov r3, r0 - 80059a6: 461a mov r2, r3 - 80059a8: f9b7 3020 ldrsh.w r3, [r7, #32] - 80059ac: 1ad2 subs r2, r2, r3 - 80059ae: f9b7 301e ldrsh.w r3, [r7, #30] - 80059b2: 1ad3 subs r3, r2, r3 - 80059b4: 0fda lsrs r2, r3, #31 - 80059b6: 4413 add r3, r2 - 80059b8: 105b asrs r3, r3, #1 - 80059ba: b29b uxth r3, r3 - 80059bc: 4423 add r3, r4 - 80059be: b29b uxth r3, r3 - 80059c0: 84bb strh r3, [r7, #36] ; 0x24 + 8005920: 68fb ldr r3, [r7, #12] + 8005922: f9b3 3014 ldrsh.w r3, [r3, #20] + 8005926: b29a uxth r2, r3 + 8005928: 8c3b ldrh r3, [r7, #32] + 800592a: 4413 add r3, r2 + 800592c: b29c uxth r4, r3 + 800592e: 68fb ldr r3, [r7, #12] + 8005930: 3314 adds r3, #20 + 8005932: 4618 mov r0, r3 + 8005934: f7ff f96e bl 8004c14 + 8005938: 4603 mov r3, r0 + 800593a: 461a mov r2, r3 + 800593c: f9b7 3020 ldrsh.w r3, [r7, #32] + 8005940: 1ad2 subs r2, r2, r3 + 8005942: f9b7 301e ldrsh.w r3, [r7, #30] + 8005946: 1ad3 subs r3, r2, r3 + 8005948: 0fda lsrs r2, r3, #31 + 800594a: 4413 add r3, r2 + 800594c: 105b asrs r3, r3, #1 + 800594e: b29b uxth r3, r3 + 8005950: 4423 add r3, r4 + 8005952: b29b uxth r3, r3 + 8005954: 84bb strh r3, [r7, #36] ; 0x24 break; - 80059c2: bf00 nop + 8005956: bf00 nop } x_child += ofs; - 80059c4: 8cfa ldrh r2, [r7, #38] ; 0x26 - 80059c6: 88fb ldrh r3, [r7, #6] - 80059c8: 4413 add r3, r2 - 80059ca: b29b uxth r3, r3 - 80059cc: 84fb strh r3, [r7, #38] ; 0x26 + 8005958: 8cfa ldrh r2, [r7, #38] ; 0x26 + 800595a: 88fb ldrh r3, [r7, #6] + 800595c: 4413 add r3, r2 + 800595e: b29b uxth r3, r3 + 8005960: 84fb strh r3, [r7, #38] ; 0x26 if(x_child >= min && x_child <= max) { - 80059ce: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 - 80059d2: f9b7 300a ldrsh.w r3, [r7, #10] - 80059d6: 429a cmp r2, r3 - 80059d8: db1e blt.n 8005a18 - 80059da: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 - 80059de: f9b7 3008 ldrsh.w r3, [r7, #8] - 80059e2: 429a cmp r2, r3 - 80059e4: dc18 bgt.n 8005a18 + 8005962: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 + 8005966: f9b7 300a ldrsh.w r3, [r7, #10] + 800596a: 429a cmp r2, r3 + 800596c: db1e blt.n 80059ac + 800596e: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 + 8005972: f9b7 3008 ldrsh.w r3, [r7, #8] + 8005976: 429a cmp r2, r3 + 8005978: dc18 bgt.n 80059ac lv_coord_t x = x_child - x_parent; - 80059e6: 8cfa ldrh r2, [r7, #38] ; 0x26 - 80059e8: 8cbb ldrh r3, [r7, #36] ; 0x24 - 80059ea: 1ad3 subs r3, r2, r3 - 80059ec: b29b uxth r3, r3 - 80059ee: 827b strh r3, [r7, #18] + 800597a: 8cfa ldrh r2, [r7, #38] ; 0x26 + 800597c: 8cbb ldrh r3, [r7, #36] ; 0x24 + 800597e: 1ad3 subs r3, r2, r3 + 8005980: b29b uxth r3, r3 + 8005982: 827b strh r3, [r7, #18] if(LV_ABS(x) < LV_ABS(dist)) dist = x; - 80059f0: f9b7 3012 ldrsh.w r3, [r7, #18] - 80059f4: 2b00 cmp r3, #0 - 80059f6: bfb8 it lt - 80059f8: 425b neglt r3, r3 - 80059fa: b29a uxth r2, r3 - 80059fc: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 8005a00: 2b00 cmp r3, #0 - 8005a02: bfb8 it lt - 8005a04: 425b neglt r3, r3 - 8005a06: b29b uxth r3, r3 - 8005a08: 429a cmp r2, r3 - 8005a0a: d205 bcs.n 8005a18 - 8005a0c: 8a7b ldrh r3, [r7, #18] - 8005a0e: 85fb strh r3, [r7, #46] ; 0x2e - 8005a10: e002 b.n 8005a18 + 8005984: f9b7 3012 ldrsh.w r3, [r7, #18] + 8005988: 2b00 cmp r3, #0 + 800598a: bfb8 it lt + 800598c: 425b neglt r3, r3 + 800598e: b29a uxth r2, r3 + 8005990: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 8005994: 2b00 cmp r3, #0 + 8005996: bfb8 it lt + 8005998: 425b neglt r3, r3 + 800599a: b29b uxth r3, r3 + 800599c: 429a cmp r2, r3 + 800599e: d205 bcs.n 80059ac + 80059a0: 8a7b ldrh r3, [r7, #18] + 80059a2: 85fb strh r3, [r7, #46] ; 0x2e + 80059a4: e002 b.n 80059ac if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 8005a12: bf00 nop - 8005a14: e000 b.n 8005a18 + 80059a6: bf00 nop + 80059a8: e000 b.n 80059ac continue; - 8005a16: bf00 nop + 80059aa: bf00 nop for(i = 0; i < child_cnt; i++) { - 8005a18: 6abb ldr r3, [r7, #40] ; 0x28 - 8005a1a: 3301 adds r3, #1 - 8005a1c: 62bb str r3, [r7, #40] ; 0x28 - 8005a1e: 6aba ldr r2, [r7, #40] ; 0x28 - 8005a20: 69bb ldr r3, [r7, #24] - 8005a22: 429a cmp r2, r3 - 8005a24: f4ff af61 bcc.w 80058ea + 80059ac: 6abb ldr r3, [r7, #40] ; 0x28 + 80059ae: 3301 adds r3, #1 + 80059b0: 62bb str r3, [r7, #40] ; 0x28 + 80059b2: 6aba ldr r2, [r7, #40] ; 0x28 + 80059b4: 69bb ldr r3, [r7, #24] + 80059b6: 429a cmp r2, r3 + 80059b8: f4ff af61 bcc.w 800587e } } } return dist == LV_COORD_MAX ? 0 : -dist; - 8005a28: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 8005a2c: f641 72ff movw r2, #8191 ; 0x1fff - 8005a30: 4293 cmp r3, r2 - 8005a32: d004 beq.n 8005a3e - 8005a34: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8005a36: 425b negs r3, r3 - 8005a38: b29b uxth r3, r3 - 8005a3a: b21b sxth r3, r3 - 8005a3c: e000 b.n 8005a40 - 8005a3e: 2300 movs r3, #0 + 80059bc: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 80059c0: f641 72ff movw r2, #8191 ; 0x1fff + 80059c4: 4293 cmp r3, r2 + 80059c6: d004 beq.n 80059d2 + 80059c8: 8dfb ldrh r3, [r7, #46] ; 0x2e + 80059ca: 425b negs r3, r3 + 80059cc: b29b uxth r3, r3 + 80059ce: b21b sxth r3, r3 + 80059d0: e000 b.n 80059d4 + 80059d2: 2300 movs r3, #0 } - 8005a40: 4618 mov r0, r3 - 8005a42: 3734 adds r7, #52 ; 0x34 - 8005a44: 46bd mov sp, r7 - 8005a46: bd90 pop {r4, r7, pc} - 8005a48: 00040001 .word 0x00040001 + 80059d4: 4618 mov r0, r3 + 80059d6: 3734 adds r7, #52 ; 0x34 + 80059d8: 46bd mov sp, r7 + 80059da: bd90 pop {r4, r7, pc} + 80059dc: 00040001 .word 0x00040001 -08005a4c : +080059e0 : * @param ofs offset to snap points. Useful to get a snap point in an imagined case * what if children are already moved by this value * @return the distance of the snap point. */ static lv_coord_t find_snap_point_y(const lv_obj_t * obj, lv_coord_t min, lv_coord_t max, lv_coord_t ofs) { - 8005a4c: b590 push {r4, r7, lr} - 8005a4e: b08d sub sp, #52 ; 0x34 - 8005a50: af00 add r7, sp, #0 - 8005a52: 60f8 str r0, [r7, #12] - 8005a54: 4608 mov r0, r1 - 8005a56: 4611 mov r1, r2 - 8005a58: 461a mov r2, r3 - 8005a5a: 4603 mov r3, r0 - 8005a5c: 817b strh r3, [r7, #10] - 8005a5e: 460b mov r3, r1 - 8005a60: 813b strh r3, [r7, #8] - 8005a62: 4613 mov r3, r2 - 8005a64: 80fb strh r3, [r7, #6] + 80059e0: b590 push {r4, r7, lr} + 80059e2: b08d sub sp, #52 ; 0x34 + 80059e4: af00 add r7, sp, #0 + 80059e6: 60f8 str r0, [r7, #12] + 80059e8: 4608 mov r0, r1 + 80059ea: 4611 mov r1, r2 + 80059ec: 461a mov r2, r3 + 80059ee: 4603 mov r3, r0 + 80059f0: 817b strh r3, [r7, #10] + 80059f2: 460b mov r3, r1 + 80059f4: 813b strh r3, [r7, #8] + 80059f6: 4613 mov r3, r2 + 80059f8: 80fb strh r3, [r7, #6] lv_scroll_snap_t align = lv_obj_get_scroll_snap_y(obj); - 8005a66: 68f8 ldr r0, [r7, #12] - 8005a68: f005 ff6d bl 800b946 - 8005a6c: 4603 mov r3, r0 - 8005a6e: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 80059fa: 68f8 ldr r0, [r7, #12] + 80059fc: f005 ff6d bl 800b8da + 8005a00: 4603 mov r3, r0 + 8005a02: f887 3023 strb.w r3, [r7, #35] ; 0x23 if(align == LV_SCROLL_SNAP_NONE) return 0; - 8005a72: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8005a76: 2b00 cmp r3, #0 - 8005a78: d101 bne.n 8005a7e - 8005a7a: 2300 movs r3, #0 - 8005a7c: e0c0 b.n 8005c00 + 8005a06: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8005a0a: 2b00 cmp r3, #0 + 8005a0c: d101 bne.n 8005a12 + 8005a0e: 2300 movs r3, #0 + 8005a10: e0c0 b.n 8005b94 lv_coord_t dist = LV_COORD_MAX; - 8005a7e: f641 73ff movw r3, #8191 ; 0x1fff - 8005a82: 85fb strh r3, [r7, #46] ; 0x2e + 8005a12: f641 73ff movw r3, #8191 ; 0x1fff + 8005a16: 85fb strh r3, [r7, #46] ; 0x2e lv_coord_t pad_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 8005a84: 2100 movs r1, #0 - 8005a86: 68f8 ldr r0, [r7, #12] - 8005a88: f7ff f926 bl 8004cd8 - 8005a8c: 4603 mov r3, r0 - 8005a8e: 843b strh r3, [r7, #32] + 8005a18: 2100 movs r1, #0 + 8005a1a: 68f8 ldr r0, [r7, #12] + 8005a1c: f7ff f926 bl 8004c6c + 8005a20: 4603 mov r3, r0 + 8005a22: 843b strh r3, [r7, #32] lv_coord_t pad_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN); - 8005a90: 2100 movs r1, #0 - 8005a92: 68f8 ldr r0, [r7, #12] - 8005a94: f7ff f933 bl 8004cfe - 8005a98: 4603 mov r3, r0 - 8005a9a: 83fb strh r3, [r7, #30] + 8005a24: 2100 movs r1, #0 + 8005a26: 68f8 ldr r0, [r7, #12] + 8005a28: f7ff f933 bl 8004c92 + 8005a2c: 4603 mov r3, r0 + 8005a2e: 83fb strh r3, [r7, #30] uint32_t i; uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 8005a9c: 68f8 ldr r0, [r7, #12] - 8005a9e: f009 fe77 bl 800f790 - 8005aa2: 61b8 str r0, [r7, #24] + 8005a30: 68f8 ldr r0, [r7, #12] + 8005a32: f009 fe63 bl 800f6fc + 8005a36: 61b8 str r0, [r7, #24] for(i = 0; i < child_cnt; i++) { - 8005aa4: 2300 movs r3, #0 - 8005aa6: 62bb str r3, [r7, #40] ; 0x28 - 8005aa8: e099 b.n 8005bde + 8005a38: 2300 movs r3, #0 + 8005a3a: 62bb str r3, [r7, #40] ; 0x28 + 8005a3c: e099 b.n 8005b72 lv_obj_t * child = obj->spec_attr->children[i]; - 8005aaa: 68fb ldr r3, [r7, #12] - 8005aac: 689b ldr r3, [r3, #8] - 8005aae: 681a ldr r2, [r3, #0] - 8005ab0: 6abb ldr r3, [r7, #40] ; 0x28 - 8005ab2: 009b lsls r3, r3, #2 - 8005ab4: 4413 add r3, r2 - 8005ab6: 681b ldr r3, [r3, #0] - 8005ab8: 617b str r3, [r7, #20] + 8005a3e: 68fb ldr r3, [r7, #12] + 8005a40: 689b ldr r3, [r3, #8] + 8005a42: 681a ldr r2, [r3, #0] + 8005a44: 6abb ldr r3, [r7, #40] ; 0x28 + 8005a46: 009b lsls r3, r3, #2 + 8005a48: 4413 add r3, r2 + 8005a4a: 681b ldr r3, [r3, #0] + 8005a4c: 617b str r3, [r7, #20] if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 8005aba: 4953 ldr r1, [pc, #332] ; (8005c08 ) - 8005abc: 6978 ldr r0, [r7, #20] - 8005abe: f000 fe74 bl 80067aa - 8005ac2: 4603 mov r3, r0 - 8005ac4: 2b00 cmp r3, #0 - 8005ac6: f040 8084 bne.w 8005bd2 + 8005a4e: 4953 ldr r1, [pc, #332] ; (8005b9c ) + 8005a50: 6978 ldr r0, [r7, #20] + 8005a52: f000 fe74 bl 800673e + 8005a56: 4603 mov r3, r0 + 8005a58: 2b00 cmp r3, #0 + 8005a5a: f040 8084 bne.w 8005b66 if(lv_obj_has_flag(child, LV_OBJ_FLAG_SNAPPABLE)) { - 8005aca: f44f 5180 mov.w r1, #4096 ; 0x1000 - 8005ace: 6978 ldr r0, [r7, #20] - 8005ad0: f000 fe57 bl 8006782 - 8005ad4: 4603 mov r3, r0 - 8005ad6: 2b00 cmp r3, #0 - 8005ad8: d07e beq.n 8005bd8 + 8005a5e: f44f 5180 mov.w r1, #4096 ; 0x1000 + 8005a62: 6978 ldr r0, [r7, #20] + 8005a64: f000 fe57 bl 8006716 + 8005a68: 4603 mov r3, r0 + 8005a6a: 2b00 cmp r3, #0 + 8005a6c: d07e beq.n 8005b6c lv_coord_t y_child = 0; - 8005ada: 2300 movs r3, #0 - 8005adc: 84fb strh r3, [r7, #38] ; 0x26 + 8005a6e: 2300 movs r3, #0 + 8005a70: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t y_parent = 0; - 8005ade: 2300 movs r3, #0 - 8005ae0: 84bb strh r3, [r7, #36] ; 0x24 + 8005a72: 2300 movs r3, #0 + 8005a74: 84bb strh r3, [r7, #36] ; 0x24 switch(align) { - 8005ae2: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8005ae6: 2b03 cmp r3, #3 - 8005ae8: d01e beq.n 8005b28 - 8005aea: 2b03 cmp r3, #3 - 8005aec: dc73 bgt.n 8005bd6 - 8005aee: 2b01 cmp r3, #1 - 8005af0: d002 beq.n 8005af8 - 8005af2: 2b02 cmp r3, #2 - 8005af4: d00c beq.n 8005b10 + 8005a76: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8005a7a: 2b03 cmp r3, #3 + 8005a7c: d01e beq.n 8005abc + 8005a7e: 2b03 cmp r3, #3 + 8005a80: dc73 bgt.n 8005b6a + 8005a82: 2b01 cmp r3, #1 + 8005a84: d002 beq.n 8005a8c + 8005a86: 2b02 cmp r3, #2 + 8005a88: d00c beq.n 8005aa4 case LV_SCROLL_SNAP_CENTER: y_child = child->coords.y1 + lv_area_get_height(&child->coords) / 2; y_parent = obj->coords.y1 + pad_top + (lv_area_get_height(&obj->coords) - pad_top - pad_bottom) / 2; break; default: continue; - 8005af6: e06e b.n 8005bd6 + 8005a8a: e06e b.n 8005b6a y_child = child->coords.y1; - 8005af8: 697b ldr r3, [r7, #20] - 8005afa: 8adb ldrh r3, [r3, #22] - 8005afc: 84fb strh r3, [r7, #38] ; 0x26 + 8005a8c: 697b ldr r3, [r7, #20] + 8005a8e: 8adb ldrh r3, [r3, #22] + 8005a90: 84fb strh r3, [r7, #38] ; 0x26 y_parent = obj->coords.y1 + pad_top; - 8005afe: 68fb ldr r3, [r7, #12] - 8005b00: f9b3 3016 ldrsh.w r3, [r3, #22] - 8005b04: b29a uxth r2, r3 - 8005b06: 8c3b ldrh r3, [r7, #32] - 8005b08: 4413 add r3, r2 - 8005b0a: b29b uxth r3, r3 - 8005b0c: 84bb strh r3, [r7, #36] ; 0x24 + 8005a92: 68fb ldr r3, [r7, #12] + 8005a94: f9b3 3016 ldrsh.w r3, [r3, #22] + 8005a98: b29a uxth r2, r3 + 8005a9a: 8c3b ldrh r3, [r7, #32] + 8005a9c: 4413 add r3, r2 + 8005a9e: b29b uxth r3, r3 + 8005aa0: 84bb strh r3, [r7, #36] ; 0x24 break; - 8005b0e: e039 b.n 8005b84 + 8005aa2: e039 b.n 8005b18 y_child = child->coords.y2; - 8005b10: 697b ldr r3, [r7, #20] - 8005b12: 8b5b ldrh r3, [r3, #26] - 8005b14: 84fb strh r3, [r7, #38] ; 0x26 + 8005aa4: 697b ldr r3, [r7, #20] + 8005aa6: 8b5b ldrh r3, [r3, #26] + 8005aa8: 84fb strh r3, [r7, #38] ; 0x26 y_parent = obj->coords.y2 - pad_bottom; - 8005b16: 68fb ldr r3, [r7, #12] - 8005b18: f9b3 301a ldrsh.w r3, [r3, #26] - 8005b1c: b29a uxth r2, r3 - 8005b1e: 8bfb ldrh r3, [r7, #30] - 8005b20: 1ad3 subs r3, r2, r3 - 8005b22: b29b uxth r3, r3 - 8005b24: 84bb strh r3, [r7, #36] ; 0x24 + 8005aaa: 68fb ldr r3, [r7, #12] + 8005aac: f9b3 301a ldrsh.w r3, [r3, #26] + 8005ab0: b29a uxth r2, r3 + 8005ab2: 8bfb ldrh r3, [r7, #30] + 8005ab4: 1ad3 subs r3, r2, r3 + 8005ab6: b29b uxth r3, r3 + 8005ab8: 84bb strh r3, [r7, #36] ; 0x24 break; - 8005b26: e02d b.n 8005b84 + 8005aba: e02d b.n 8005b18 y_child = child->coords.y1 + lv_area_get_height(&child->coords) / 2; - 8005b28: 697b ldr r3, [r7, #20] - 8005b2a: f9b3 3016 ldrsh.w r3, [r3, #22] - 8005b2e: b29c uxth r4, r3 - 8005b30: 697b ldr r3, [r7, #20] - 8005b32: 3314 adds r3, #20 - 8005b34: 4618 mov r0, r3 - 8005b36: f7ff f8b9 bl 8004cac - 8005b3a: 4603 mov r3, r0 - 8005b3c: 0fda lsrs r2, r3, #31 - 8005b3e: 4413 add r3, r2 - 8005b40: 105b asrs r3, r3, #1 - 8005b42: b21b sxth r3, r3 - 8005b44: b29b uxth r3, r3 - 8005b46: 4423 add r3, r4 - 8005b48: b29b uxth r3, r3 - 8005b4a: 84fb strh r3, [r7, #38] ; 0x26 + 8005abc: 697b ldr r3, [r7, #20] + 8005abe: f9b3 3016 ldrsh.w r3, [r3, #22] + 8005ac2: b29c uxth r4, r3 + 8005ac4: 697b ldr r3, [r7, #20] + 8005ac6: 3314 adds r3, #20 + 8005ac8: 4618 mov r0, r3 + 8005aca: f7ff f8b9 bl 8004c40 + 8005ace: 4603 mov r3, r0 + 8005ad0: 0fda lsrs r2, r3, #31 + 8005ad2: 4413 add r3, r2 + 8005ad4: 105b asrs r3, r3, #1 + 8005ad6: b21b sxth r3, r3 + 8005ad8: b29b uxth r3, r3 + 8005ada: 4423 add r3, r4 + 8005adc: b29b uxth r3, r3 + 8005ade: 84fb strh r3, [r7, #38] ; 0x26 y_parent = obj->coords.y1 + pad_top + (lv_area_get_height(&obj->coords) - pad_top - pad_bottom) / 2; - 8005b4c: 68fb ldr r3, [r7, #12] - 8005b4e: f9b3 3016 ldrsh.w r3, [r3, #22] - 8005b52: b29a uxth r2, r3 - 8005b54: 8c3b ldrh r3, [r7, #32] - 8005b56: 4413 add r3, r2 - 8005b58: b29c uxth r4, r3 - 8005b5a: 68fb ldr r3, [r7, #12] - 8005b5c: 3314 adds r3, #20 - 8005b5e: 4618 mov r0, r3 - 8005b60: f7ff f8a4 bl 8004cac - 8005b64: 4603 mov r3, r0 - 8005b66: 461a mov r2, r3 - 8005b68: f9b7 3020 ldrsh.w r3, [r7, #32] - 8005b6c: 1ad2 subs r2, r2, r3 - 8005b6e: f9b7 301e ldrsh.w r3, [r7, #30] - 8005b72: 1ad3 subs r3, r2, r3 - 8005b74: 0fda lsrs r2, r3, #31 - 8005b76: 4413 add r3, r2 - 8005b78: 105b asrs r3, r3, #1 - 8005b7a: b29b uxth r3, r3 - 8005b7c: 4423 add r3, r4 - 8005b7e: b29b uxth r3, r3 - 8005b80: 84bb strh r3, [r7, #36] ; 0x24 + 8005ae0: 68fb ldr r3, [r7, #12] + 8005ae2: f9b3 3016 ldrsh.w r3, [r3, #22] + 8005ae6: b29a uxth r2, r3 + 8005ae8: 8c3b ldrh r3, [r7, #32] + 8005aea: 4413 add r3, r2 + 8005aec: b29c uxth r4, r3 + 8005aee: 68fb ldr r3, [r7, #12] + 8005af0: 3314 adds r3, #20 + 8005af2: 4618 mov r0, r3 + 8005af4: f7ff f8a4 bl 8004c40 + 8005af8: 4603 mov r3, r0 + 8005afa: 461a mov r2, r3 + 8005afc: f9b7 3020 ldrsh.w r3, [r7, #32] + 8005b00: 1ad2 subs r2, r2, r3 + 8005b02: f9b7 301e ldrsh.w r3, [r7, #30] + 8005b06: 1ad3 subs r3, r2, r3 + 8005b08: 0fda lsrs r2, r3, #31 + 8005b0a: 4413 add r3, r2 + 8005b0c: 105b asrs r3, r3, #1 + 8005b0e: b29b uxth r3, r3 + 8005b10: 4423 add r3, r4 + 8005b12: b29b uxth r3, r3 + 8005b14: 84bb strh r3, [r7, #36] ; 0x24 break; - 8005b82: bf00 nop + 8005b16: bf00 nop } y_child += ofs; - 8005b84: 8cfa ldrh r2, [r7, #38] ; 0x26 - 8005b86: 88fb ldrh r3, [r7, #6] - 8005b88: 4413 add r3, r2 - 8005b8a: b29b uxth r3, r3 - 8005b8c: 84fb strh r3, [r7, #38] ; 0x26 + 8005b18: 8cfa ldrh r2, [r7, #38] ; 0x26 + 8005b1a: 88fb ldrh r3, [r7, #6] + 8005b1c: 4413 add r3, r2 + 8005b1e: b29b uxth r3, r3 + 8005b20: 84fb strh r3, [r7, #38] ; 0x26 if(y_child >= min && y_child <= max) { - 8005b8e: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 - 8005b92: f9b7 300a ldrsh.w r3, [r7, #10] - 8005b96: 429a cmp r2, r3 - 8005b98: db1e blt.n 8005bd8 - 8005b9a: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 - 8005b9e: f9b7 3008 ldrsh.w r3, [r7, #8] - 8005ba2: 429a cmp r2, r3 - 8005ba4: dc18 bgt.n 8005bd8 + 8005b22: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 + 8005b26: f9b7 300a ldrsh.w r3, [r7, #10] + 8005b2a: 429a cmp r2, r3 + 8005b2c: db1e blt.n 8005b6c + 8005b2e: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 + 8005b32: f9b7 3008 ldrsh.w r3, [r7, #8] + 8005b36: 429a cmp r2, r3 + 8005b38: dc18 bgt.n 8005b6c lv_coord_t y = y_child - y_parent; - 8005ba6: 8cfa ldrh r2, [r7, #38] ; 0x26 - 8005ba8: 8cbb ldrh r3, [r7, #36] ; 0x24 - 8005baa: 1ad3 subs r3, r2, r3 - 8005bac: b29b uxth r3, r3 - 8005bae: 827b strh r3, [r7, #18] + 8005b3a: 8cfa ldrh r2, [r7, #38] ; 0x26 + 8005b3c: 8cbb ldrh r3, [r7, #36] ; 0x24 + 8005b3e: 1ad3 subs r3, r2, r3 + 8005b40: b29b uxth r3, r3 + 8005b42: 827b strh r3, [r7, #18] if(LV_ABS(y) < LV_ABS(dist)) dist = y; - 8005bb0: f9b7 3012 ldrsh.w r3, [r7, #18] - 8005bb4: 2b00 cmp r3, #0 - 8005bb6: bfb8 it lt - 8005bb8: 425b neglt r3, r3 - 8005bba: b29a uxth r2, r3 - 8005bbc: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 8005bc0: 2b00 cmp r3, #0 - 8005bc2: bfb8 it lt - 8005bc4: 425b neglt r3, r3 - 8005bc6: b29b uxth r3, r3 - 8005bc8: 429a cmp r2, r3 - 8005bca: d205 bcs.n 8005bd8 - 8005bcc: 8a7b ldrh r3, [r7, #18] - 8005bce: 85fb strh r3, [r7, #46] ; 0x2e - 8005bd0: e002 b.n 8005bd8 + 8005b44: f9b7 3012 ldrsh.w r3, [r7, #18] + 8005b48: 2b00 cmp r3, #0 + 8005b4a: bfb8 it lt + 8005b4c: 425b neglt r3, r3 + 8005b4e: b29a uxth r2, r3 + 8005b50: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 8005b54: 2b00 cmp r3, #0 + 8005b56: bfb8 it lt + 8005b58: 425b neglt r3, r3 + 8005b5a: b29b uxth r3, r3 + 8005b5c: 429a cmp r2, r3 + 8005b5e: d205 bcs.n 8005b6c + 8005b60: 8a7b ldrh r3, [r7, #18] + 8005b62: 85fb strh r3, [r7, #46] ; 0x2e + 8005b64: e002 b.n 8005b6c if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 8005bd2: bf00 nop - 8005bd4: e000 b.n 8005bd8 + 8005b66: bf00 nop + 8005b68: e000 b.n 8005b6c continue; - 8005bd6: bf00 nop + 8005b6a: bf00 nop for(i = 0; i < child_cnt; i++) { - 8005bd8: 6abb ldr r3, [r7, #40] ; 0x28 - 8005bda: 3301 adds r3, #1 - 8005bdc: 62bb str r3, [r7, #40] ; 0x28 - 8005bde: 6aba ldr r2, [r7, #40] ; 0x28 - 8005be0: 69bb ldr r3, [r7, #24] - 8005be2: 429a cmp r2, r3 - 8005be4: f4ff af61 bcc.w 8005aaa + 8005b6c: 6abb ldr r3, [r7, #40] ; 0x28 + 8005b6e: 3301 adds r3, #1 + 8005b70: 62bb str r3, [r7, #40] ; 0x28 + 8005b72: 6aba ldr r2, [r7, #40] ; 0x28 + 8005b74: 69bb ldr r3, [r7, #24] + 8005b76: 429a cmp r2, r3 + 8005b78: f4ff af61 bcc.w 8005a3e } } } return dist == LV_COORD_MAX ? 0 : -dist; - 8005be8: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 8005bec: f641 72ff movw r2, #8191 ; 0x1fff - 8005bf0: 4293 cmp r3, r2 - 8005bf2: d004 beq.n 8005bfe - 8005bf4: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8005bf6: 425b negs r3, r3 - 8005bf8: b29b uxth r3, r3 - 8005bfa: b21b sxth r3, r3 - 8005bfc: e000 b.n 8005c00 - 8005bfe: 2300 movs r3, #0 + 8005b7c: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 8005b80: f641 72ff movw r2, #8191 ; 0x1fff + 8005b84: 4293 cmp r3, r2 + 8005b86: d004 beq.n 8005b92 + 8005b88: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8005b8a: 425b negs r3, r3 + 8005b8c: b29b uxth r3, r3 + 8005b8e: b21b sxth r3, r3 + 8005b90: e000 b.n 8005b94 + 8005b92: 2300 movs r3, #0 } - 8005c00: 4618 mov r0, r3 - 8005c02: 3734 adds r7, #52 ; 0x34 - 8005c04: 46bd mov sp, r7 - 8005c06: bd90 pop {r4, r7, pc} - 8005c08: 00040001 .word 0x00040001 + 8005b94: 4618 mov r0, r3 + 8005b96: 3734 adds r7, #52 ; 0x34 + 8005b98: 46bd mov sp, r7 + 8005b9a: bd90 pop {r4, r7, pc} + 8005b9c: 00040001 .word 0x00040001 -08005c0c : +08005ba0 : static void scroll_limit_diff(_lv_indev_proc_t * proc, lv_coord_t * diff_x, lv_coord_t * diff_y) { - 8005c0c: b480 push {r7} - 8005c0e: b085 sub sp, #20 - 8005c10: af00 add r7, sp, #0 - 8005c12: 60f8 str r0, [r7, #12] - 8005c14: 60b9 str r1, [r7, #8] - 8005c16: 607a str r2, [r7, #4] + 8005ba0: b480 push {r7} + 8005ba2: b085 sub sp, #20 + 8005ba4: af00 add r7, sp, #0 + 8005ba6: 60f8 str r0, [r7, #12] + 8005ba8: 60b9 str r1, [r7, #8] + 8005baa: 607a str r2, [r7, #4] if(diff_y) { - 8005c18: 687b ldr r3, [r7, #4] - 8005c1a: 2b00 cmp r3, #0 - 8005c1c: d033 beq.n 8005c86 + 8005bac: 687b ldr r3, [r7, #4] + 8005bae: 2b00 cmp r3, #0 + 8005bb0: d033 beq.n 8005c1a if(proc->types.pointer.scroll_sum.y + *diff_y < proc->types.pointer.scroll_area.y1) { - 8005c1e: 68fb ldr r3, [r7, #12] - 8005c20: f9b3 3016 ldrsh.w r3, [r3, #22] - 8005c24: 461a mov r2, r3 - 8005c26: 687b ldr r3, [r7, #4] - 8005c28: f9b3 3000 ldrsh.w r3, [r3] - 8005c2c: 4413 add r3, r2 - 8005c2e: 68fa ldr r2, [r7, #12] - 8005c30: f9b2 2032 ldrsh.w r2, [r2, #50] ; 0x32 - 8005c34: 4293 cmp r3, r2 - 8005c36: da0c bge.n 8005c52 + 8005bb2: 68fb ldr r3, [r7, #12] + 8005bb4: f9b3 3016 ldrsh.w r3, [r3, #22] + 8005bb8: 461a mov r2, r3 + 8005bba: 687b ldr r3, [r7, #4] + 8005bbc: f9b3 3000 ldrsh.w r3, [r3] + 8005bc0: 4413 add r3, r2 + 8005bc2: 68fa ldr r2, [r7, #12] + 8005bc4: f9b2 2032 ldrsh.w r2, [r2, #50] ; 0x32 + 8005bc8: 4293 cmp r3, r2 + 8005bca: da0c bge.n 8005be6 *diff_y = proc->types.pointer.scroll_area.y1 - proc->types.pointer.scroll_sum.y; - 8005c38: 68fb ldr r3, [r7, #12] - 8005c3a: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 - 8005c3e: b29a uxth r2, r3 - 8005c40: 68fb ldr r3, [r7, #12] - 8005c42: f9b3 3016 ldrsh.w r3, [r3, #22] - 8005c46: b29b uxth r3, r3 - 8005c48: 1ad3 subs r3, r2, r3 - 8005c4a: b29b uxth r3, r3 - 8005c4c: b21a sxth r2, r3 - 8005c4e: 687b ldr r3, [r7, #4] - 8005c50: 801a strh r2, [r3, #0] + 8005bcc: 68fb ldr r3, [r7, #12] + 8005bce: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 + 8005bd2: b29a uxth r2, r3 + 8005bd4: 68fb ldr r3, [r7, #12] + 8005bd6: f9b3 3016 ldrsh.w r3, [r3, #22] + 8005bda: b29b uxth r3, r3 + 8005bdc: 1ad3 subs r3, r2, r3 + 8005bde: b29b uxth r3, r3 + 8005be0: b21a sxth r2, r3 + 8005be2: 687b ldr r3, [r7, #4] + 8005be4: 801a strh r2, [r3, #0] } if(proc->types.pointer.scroll_sum.y + *diff_y > proc->types.pointer.scroll_area.y2) { - 8005c52: 68fb ldr r3, [r7, #12] - 8005c54: f9b3 3016 ldrsh.w r3, [r3, #22] - 8005c58: 461a mov r2, r3 - 8005c5a: 687b ldr r3, [r7, #4] - 8005c5c: f9b3 3000 ldrsh.w r3, [r3] - 8005c60: 4413 add r3, r2 - 8005c62: 68fa ldr r2, [r7, #12] - 8005c64: f9b2 2036 ldrsh.w r2, [r2, #54] ; 0x36 - 8005c68: 4293 cmp r3, r2 - 8005c6a: dd0c ble.n 8005c86 + 8005be6: 68fb ldr r3, [r7, #12] + 8005be8: f9b3 3016 ldrsh.w r3, [r3, #22] + 8005bec: 461a mov r2, r3 + 8005bee: 687b ldr r3, [r7, #4] + 8005bf0: f9b3 3000 ldrsh.w r3, [r3] + 8005bf4: 4413 add r3, r2 + 8005bf6: 68fa ldr r2, [r7, #12] + 8005bf8: f9b2 2036 ldrsh.w r2, [r2, #54] ; 0x36 + 8005bfc: 4293 cmp r3, r2 + 8005bfe: dd0c ble.n 8005c1a *diff_y = proc->types.pointer.scroll_area.y2 - proc->types.pointer.scroll_sum.y; - 8005c6c: 68fb ldr r3, [r7, #12] - 8005c6e: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 - 8005c72: b29a uxth r2, r3 - 8005c74: 68fb ldr r3, [r7, #12] - 8005c76: f9b3 3016 ldrsh.w r3, [r3, #22] - 8005c7a: b29b uxth r3, r3 - 8005c7c: 1ad3 subs r3, r2, r3 - 8005c7e: b29b uxth r3, r3 - 8005c80: b21a sxth r2, r3 - 8005c82: 687b ldr r3, [r7, #4] - 8005c84: 801a strh r2, [r3, #0] + 8005c00: 68fb ldr r3, [r7, #12] + 8005c02: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 + 8005c06: b29a uxth r2, r3 + 8005c08: 68fb ldr r3, [r7, #12] + 8005c0a: f9b3 3016 ldrsh.w r3, [r3, #22] + 8005c0e: b29b uxth r3, r3 + 8005c10: 1ad3 subs r3, r2, r3 + 8005c12: b29b uxth r3, r3 + 8005c14: b21a sxth r2, r3 + 8005c16: 687b ldr r3, [r7, #4] + 8005c18: 801a strh r2, [r3, #0] } } if(diff_x) { - 8005c86: 68bb ldr r3, [r7, #8] - 8005c88: 2b00 cmp r3, #0 - 8005c8a: d033 beq.n 8005cf4 + 8005c1a: 68bb ldr r3, [r7, #8] + 8005c1c: 2b00 cmp r3, #0 + 8005c1e: d033 beq.n 8005c88 if(proc->types.pointer.scroll_sum.x + *diff_x < proc->types.pointer.scroll_area.x1) { - 8005c8c: 68fb ldr r3, [r7, #12] - 8005c8e: f9b3 3014 ldrsh.w r3, [r3, #20] - 8005c92: 461a mov r2, r3 - 8005c94: 68bb ldr r3, [r7, #8] - 8005c96: f9b3 3000 ldrsh.w r3, [r3] - 8005c9a: 4413 add r3, r2 - 8005c9c: 68fa ldr r2, [r7, #12] - 8005c9e: f9b2 2030 ldrsh.w r2, [r2, #48] ; 0x30 - 8005ca2: 4293 cmp r3, r2 - 8005ca4: da0c bge.n 8005cc0 + 8005c20: 68fb ldr r3, [r7, #12] + 8005c22: f9b3 3014 ldrsh.w r3, [r3, #20] + 8005c26: 461a mov r2, r3 + 8005c28: 68bb ldr r3, [r7, #8] + 8005c2a: f9b3 3000 ldrsh.w r3, [r3] + 8005c2e: 4413 add r3, r2 + 8005c30: 68fa ldr r2, [r7, #12] + 8005c32: f9b2 2030 ldrsh.w r2, [r2, #48] ; 0x30 + 8005c36: 4293 cmp r3, r2 + 8005c38: da0c bge.n 8005c54 *diff_x = proc->types.pointer.scroll_area.x1 - proc->types.pointer.scroll_sum.x; - 8005ca6: 68fb ldr r3, [r7, #12] - 8005ca8: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 - 8005cac: b29a uxth r2, r3 - 8005cae: 68fb ldr r3, [r7, #12] - 8005cb0: f9b3 3014 ldrsh.w r3, [r3, #20] - 8005cb4: b29b uxth r3, r3 - 8005cb6: 1ad3 subs r3, r2, r3 - 8005cb8: b29b uxth r3, r3 - 8005cba: b21a sxth r2, r3 - 8005cbc: 68bb ldr r3, [r7, #8] - 8005cbe: 801a strh r2, [r3, #0] + 8005c3a: 68fb ldr r3, [r7, #12] + 8005c3c: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 + 8005c40: b29a uxth r2, r3 + 8005c42: 68fb ldr r3, [r7, #12] + 8005c44: f9b3 3014 ldrsh.w r3, [r3, #20] + 8005c48: b29b uxth r3, r3 + 8005c4a: 1ad3 subs r3, r2, r3 + 8005c4c: b29b uxth r3, r3 + 8005c4e: b21a sxth r2, r3 + 8005c50: 68bb ldr r3, [r7, #8] + 8005c52: 801a strh r2, [r3, #0] } if(proc->types.pointer.scroll_sum.x + *diff_x > proc->types.pointer.scroll_area.x2) { - 8005cc0: 68fb ldr r3, [r7, #12] - 8005cc2: f9b3 3014 ldrsh.w r3, [r3, #20] - 8005cc6: 461a mov r2, r3 - 8005cc8: 68bb ldr r3, [r7, #8] - 8005cca: f9b3 3000 ldrsh.w r3, [r3] - 8005cce: 4413 add r3, r2 - 8005cd0: 68fa ldr r2, [r7, #12] - 8005cd2: f9b2 2034 ldrsh.w r2, [r2, #52] ; 0x34 - 8005cd6: 4293 cmp r3, r2 - 8005cd8: dd0c ble.n 8005cf4 + 8005c54: 68fb ldr r3, [r7, #12] + 8005c56: f9b3 3014 ldrsh.w r3, [r3, #20] + 8005c5a: 461a mov r2, r3 + 8005c5c: 68bb ldr r3, [r7, #8] + 8005c5e: f9b3 3000 ldrsh.w r3, [r3] + 8005c62: 4413 add r3, r2 + 8005c64: 68fa ldr r2, [r7, #12] + 8005c66: f9b2 2034 ldrsh.w r2, [r2, #52] ; 0x34 + 8005c6a: 4293 cmp r3, r2 + 8005c6c: dd0c ble.n 8005c88 *diff_x = proc->types.pointer.scroll_area.x2 - proc->types.pointer.scroll_sum.x; - 8005cda: 68fb ldr r3, [r7, #12] - 8005cdc: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 - 8005ce0: b29a uxth r2, r3 - 8005ce2: 68fb ldr r3, [r7, #12] - 8005ce4: f9b3 3014 ldrsh.w r3, [r3, #20] - 8005ce8: b29b uxth r3, r3 - 8005cea: 1ad3 subs r3, r2, r3 - 8005cec: b29b uxth r3, r3 - 8005cee: b21a sxth r2, r3 - 8005cf0: 68bb ldr r3, [r7, #8] - 8005cf2: 801a strh r2, [r3, #0] + 8005c6e: 68fb ldr r3, [r7, #12] + 8005c70: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 + 8005c74: b29a uxth r2, r3 + 8005c76: 68fb ldr r3, [r7, #12] + 8005c78: f9b3 3014 ldrsh.w r3, [r3, #20] + 8005c7c: b29b uxth r3, r3 + 8005c7e: 1ad3 subs r3, r2, r3 + 8005c80: b29b uxth r3, r3 + 8005c82: b21a sxth r2, r3 + 8005c84: 68bb ldr r3, [r7, #8] + 8005c86: 801a strh r2, [r3, #0] } } } - 8005cf4: bf00 nop - 8005cf6: 3714 adds r7, #20 - 8005cf8: 46bd mov sp, r7 - 8005cfa: bc80 pop {r7} - 8005cfc: 4770 bx lr + 8005c88: bf00 nop + 8005c8a: 3714 adds r7, #20 + 8005c8c: 46bd mov sp, r7 + 8005c8e: bc80 pop {r7} + 8005c90: 4770 bx lr ... -08005d00 : +08005c94 : static lv_coord_t scroll_throw_predict_y(_lv_indev_proc_t * proc) { - 8005d00: b580 push {r7, lr} - 8005d02: b086 sub sp, #24 - 8005d04: af00 add r7, sp, #0 - 8005d06: 6078 str r0, [r7, #4] + 8005c94: b580 push {r7, lr} + 8005c96: b086 sub sp, #24 + 8005c98: af00 add r7, sp, #0 + 8005c9a: 6078 str r0, [r7, #4] lv_coord_t y = proc->types.pointer.scroll_throw_vect.y; - 8005d08: 687b ldr r3, [r7, #4] - 8005d0a: 8b5b ldrh r3, [r3, #26] - 8005d0c: 82fb strh r3, [r7, #22] + 8005c9c: 687b ldr r3, [r7, #4] + 8005c9e: 8b5b ldrh r3, [r3, #26] + 8005ca0: 82fb strh r3, [r7, #22] lv_coord_t move = 0; - 8005d0e: 2300 movs r3, #0 - 8005d10: 82bb strh r3, [r7, #20] + 8005ca2: 2300 movs r3, #0 + 8005ca4: 82bb strh r3, [r7, #20] lv_indev_t * indev_act = lv_indev_get_act(); - 8005d12: f7fd fb01 bl 8003318 - 8005d16: 6138 str r0, [r7, #16] + 8005ca6: f7fd fb01 bl 80032ac + 8005caa: 6138 str r0, [r7, #16] lv_coord_t scroll_throw = indev_act->driver->scroll_throw; - 8005d18: 693b ldr r3, [r7, #16] - 8005d1a: 681b ldr r3, [r3, #0] - 8005d1c: 7e5b ldrb r3, [r3, #25] - 8005d1e: 81fb strh r3, [r7, #14] + 8005cac: 693b ldr r3, [r7, #16] + 8005cae: 681b ldr r3, [r3, #0] + 8005cb0: 7e5b ldrb r3, [r3, #25] + 8005cb2: 81fb strh r3, [r7, #14] while(y) { - 8005d20: e013 b.n 8005d4a + 8005cb4: e013 b.n 8005cde move += y; - 8005d22: 8aba ldrh r2, [r7, #20] - 8005d24: 8afb ldrh r3, [r7, #22] - 8005d26: 4413 add r3, r2 - 8005d28: b29b uxth r3, r3 - 8005d2a: 82bb strh r3, [r7, #20] + 8005cb6: 8aba ldrh r2, [r7, #20] + 8005cb8: 8afb ldrh r3, [r7, #22] + 8005cba: 4413 add r3, r2 + 8005cbc: b29b uxth r3, r3 + 8005cbe: 82bb strh r3, [r7, #20] y = y * (100 - scroll_throw) / 100; - 8005d2c: f9b7 3016 ldrsh.w r3, [r7, #22] - 8005d30: f9b7 200e ldrsh.w r2, [r7, #14] - 8005d34: f1c2 0264 rsb r2, r2, #100 ; 0x64 - 8005d38: fb02 f303 mul.w r3, r2, r3 - 8005d3c: 4a08 ldr r2, [pc, #32] ; (8005d60 ) - 8005d3e: fb82 1203 smull r1, r2, r2, r3 - 8005d42: 1152 asrs r2, r2, #5 - 8005d44: 17db asrs r3, r3, #31 - 8005d46: 1ad3 subs r3, r2, r3 - 8005d48: 82fb strh r3, [r7, #22] + 8005cc0: f9b7 3016 ldrsh.w r3, [r7, #22] + 8005cc4: f9b7 200e ldrsh.w r2, [r7, #14] + 8005cc8: f1c2 0264 rsb r2, r2, #100 ; 0x64 + 8005ccc: fb02 f303 mul.w r3, r2, r3 + 8005cd0: 4a08 ldr r2, [pc, #32] ; (8005cf4 ) + 8005cd2: fb82 1203 smull r1, r2, r2, r3 + 8005cd6: 1152 asrs r2, r2, #5 + 8005cd8: 17db asrs r3, r3, #31 + 8005cda: 1ad3 subs r3, r2, r3 + 8005cdc: 82fb strh r3, [r7, #22] while(y) { - 8005d4a: f9b7 3016 ldrsh.w r3, [r7, #22] - 8005d4e: 2b00 cmp r3, #0 - 8005d50: d1e7 bne.n 8005d22 + 8005cde: f9b7 3016 ldrsh.w r3, [r7, #22] + 8005ce2: 2b00 cmp r3, #0 + 8005ce4: d1e7 bne.n 8005cb6 } return move; - 8005d52: f9b7 3014 ldrsh.w r3, [r7, #20] + 8005ce6: f9b7 3014 ldrsh.w r3, [r7, #20] } - 8005d56: 4618 mov r0, r3 - 8005d58: 3718 adds r7, #24 - 8005d5a: 46bd mov sp, r7 - 8005d5c: bd80 pop {r7, pc} - 8005d5e: bf00 nop - 8005d60: 51eb851f .word 0x51eb851f + 8005cea: 4618 mov r0, r3 + 8005cec: 3718 adds r7, #24 + 8005cee: 46bd mov sp, r7 + 8005cf0: bd80 pop {r7, pc} + 8005cf2: bf00 nop + 8005cf4: 51eb851f .word 0x51eb851f -08005d64 : +08005cf8 : static lv_coord_t scroll_throw_predict_x(_lv_indev_proc_t * proc) { - 8005d64: b580 push {r7, lr} - 8005d66: b086 sub sp, #24 - 8005d68: af00 add r7, sp, #0 - 8005d6a: 6078 str r0, [r7, #4] + 8005cf8: b580 push {r7, lr} + 8005cfa: b086 sub sp, #24 + 8005cfc: af00 add r7, sp, #0 + 8005cfe: 6078 str r0, [r7, #4] lv_coord_t x = proc->types.pointer.scroll_throw_vect.x; - 8005d6c: 687b ldr r3, [r7, #4] - 8005d6e: 8b1b ldrh r3, [r3, #24] - 8005d70: 82fb strh r3, [r7, #22] + 8005d00: 687b ldr r3, [r7, #4] + 8005d02: 8b1b ldrh r3, [r3, #24] + 8005d04: 82fb strh r3, [r7, #22] lv_coord_t move = 0; - 8005d72: 2300 movs r3, #0 - 8005d74: 82bb strh r3, [r7, #20] + 8005d06: 2300 movs r3, #0 + 8005d08: 82bb strh r3, [r7, #20] lv_indev_t * indev_act = lv_indev_get_act(); - 8005d76: f7fd facf bl 8003318 - 8005d7a: 6138 str r0, [r7, #16] + 8005d0a: f7fd facf bl 80032ac + 8005d0e: 6138 str r0, [r7, #16] lv_coord_t scroll_throw = indev_act->driver->scroll_throw; - 8005d7c: 693b ldr r3, [r7, #16] - 8005d7e: 681b ldr r3, [r3, #0] - 8005d80: 7e5b ldrb r3, [r3, #25] - 8005d82: 81fb strh r3, [r7, #14] + 8005d10: 693b ldr r3, [r7, #16] + 8005d12: 681b ldr r3, [r3, #0] + 8005d14: 7e5b ldrb r3, [r3, #25] + 8005d16: 81fb strh r3, [r7, #14] while(x) { - 8005d84: e013 b.n 8005dae + 8005d18: e013 b.n 8005d42 move += x; - 8005d86: 8aba ldrh r2, [r7, #20] - 8005d88: 8afb ldrh r3, [r7, #22] - 8005d8a: 4413 add r3, r2 - 8005d8c: b29b uxth r3, r3 - 8005d8e: 82bb strh r3, [r7, #20] + 8005d1a: 8aba ldrh r2, [r7, #20] + 8005d1c: 8afb ldrh r3, [r7, #22] + 8005d1e: 4413 add r3, r2 + 8005d20: b29b uxth r3, r3 + 8005d22: 82bb strh r3, [r7, #20] x = x * (100 - scroll_throw) / 100; - 8005d90: f9b7 3016 ldrsh.w r3, [r7, #22] - 8005d94: f9b7 200e ldrsh.w r2, [r7, #14] - 8005d98: f1c2 0264 rsb r2, r2, #100 ; 0x64 - 8005d9c: fb02 f303 mul.w r3, r2, r3 - 8005da0: 4a08 ldr r2, [pc, #32] ; (8005dc4 ) - 8005da2: fb82 1203 smull r1, r2, r2, r3 - 8005da6: 1152 asrs r2, r2, #5 - 8005da8: 17db asrs r3, r3, #31 - 8005daa: 1ad3 subs r3, r2, r3 - 8005dac: 82fb strh r3, [r7, #22] + 8005d24: f9b7 3016 ldrsh.w r3, [r7, #22] + 8005d28: f9b7 200e ldrsh.w r2, [r7, #14] + 8005d2c: f1c2 0264 rsb r2, r2, #100 ; 0x64 + 8005d30: fb02 f303 mul.w r3, r2, r3 + 8005d34: 4a08 ldr r2, [pc, #32] ; (8005d58 ) + 8005d36: fb82 1203 smull r1, r2, r2, r3 + 8005d3a: 1152 asrs r2, r2, #5 + 8005d3c: 17db asrs r3, r3, #31 + 8005d3e: 1ad3 subs r3, r2, r3 + 8005d40: 82fb strh r3, [r7, #22] while(x) { - 8005dae: f9b7 3016 ldrsh.w r3, [r7, #22] - 8005db2: 2b00 cmp r3, #0 - 8005db4: d1e7 bne.n 8005d86 + 8005d42: f9b7 3016 ldrsh.w r3, [r7, #22] + 8005d46: 2b00 cmp r3, #0 + 8005d48: d1e7 bne.n 8005d1a } return move; - 8005db6: f9b7 3014 ldrsh.w r3, [r7, #20] + 8005d4a: f9b7 3014 ldrsh.w r3, [r7, #20] } - 8005dba: 4618 mov r0, r3 - 8005dbc: 3718 adds r7, #24 - 8005dbe: 46bd mov sp, r7 - 8005dc0: bd80 pop {r7, pc} - 8005dc2: bf00 nop - 8005dc4: 51eb851f .word 0x51eb851f + 8005d4e: 4618 mov r0, r3 + 8005d50: 3718 adds r7, #24 + 8005d52: 46bd mov sp, r7 + 8005d54: bd80 pop {r7, pc} + 8005d56: bf00 nop + 8005d58: 51eb851f .word 0x51eb851f -08005dc8 : +08005d5c : static lv_coord_t elastic_diff(lv_obj_t * scroll_obj, lv_coord_t diff, lv_coord_t scroll_start, lv_coord_t scroll_end, lv_dir_t dir) { - 8005dc8: b580 push {r7, lr} - 8005dca: b08a sub sp, #40 ; 0x28 - 8005dcc: af00 add r7, sp, #0 - 8005dce: 60f8 str r0, [r7, #12] - 8005dd0: 4608 mov r0, r1 - 8005dd2: 4611 mov r1, r2 - 8005dd4: 461a mov r2, r3 - 8005dd6: 4603 mov r3, r0 - 8005dd8: 817b strh r3, [r7, #10] - 8005dda: 460b mov r3, r1 - 8005ddc: 813b strh r3, [r7, #8] - 8005dde: 4613 mov r3, r2 - 8005de0: 80fb strh r3, [r7, #6] + 8005d5c: b580 push {r7, lr} + 8005d5e: b08a sub sp, #40 ; 0x28 + 8005d60: af00 add r7, sp, #0 + 8005d62: 60f8 str r0, [r7, #12] + 8005d64: 4608 mov r0, r1 + 8005d66: 4611 mov r1, r2 + 8005d68: 461a mov r2, r3 + 8005d6a: 4603 mov r3, r0 + 8005d6c: 817b strh r3, [r7, #10] + 8005d6e: 460b mov r3, r1 + 8005d70: 813b strh r3, [r7, #8] + 8005d72: 4613 mov r3, r2 + 8005d74: 80fb strh r3, [r7, #6] if(lv_obj_has_flag(scroll_obj, LV_OBJ_FLAG_SCROLL_ELASTIC)) { - 8005de2: 2120 movs r1, #32 - 8005de4: 68f8 ldr r0, [r7, #12] - 8005de6: f000 fccc bl 8006782 - 8005dea: 4603 mov r3, r0 - 8005dec: 2b00 cmp r3, #0 - 8005dee: f000 8127 beq.w 8006040 + 8005d76: 2120 movs r1, #32 + 8005d78: 68f8 ldr r0, [r7, #12] + 8005d7a: f000 fccc bl 8006716 + 8005d7e: 4603 mov r3, r0 + 8005d80: 2b00 cmp r3, #0 + 8005d82: f000 8127 beq.w 8005fd4 /*If there is snapping in the current direction don't use the elastic factor because *it's natural that the first and last items are scrolled (snapped) in.*/ lv_scroll_snap_t snap; snap = dir == LV_DIR_HOR ? lv_obj_get_scroll_snap_x(scroll_obj) : lv_obj_get_scroll_snap_y(scroll_obj); - 8005df2: f897 3030 ldrb.w r3, [r7, #48] ; 0x30 - 8005df6: 2b03 cmp r3, #3 - 8005df8: d104 bne.n 8005e04 - 8005dfa: 68f8 ldr r0, [r7, #12] - 8005dfc: f005 fd8e bl 800b91c - 8005e00: 4603 mov r3, r0 - 8005e02: e003 b.n 8005e0c - 8005e04: 68f8 ldr r0, [r7, #12] - 8005e06: f005 fd9e bl 800b946 - 8005e0a: 4603 mov r3, r0 - 8005e0c: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 8005d86: f897 3030 ldrb.w r3, [r7, #48] ; 0x30 + 8005d8a: 2b03 cmp r3, #3 + 8005d8c: d104 bne.n 8005d98 + 8005d8e: 68f8 ldr r0, [r7, #12] + 8005d90: f005 fd8e bl 800b8b0 + 8005d94: 4603 mov r3, r0 + 8005d96: e003 b.n 8005da0 + 8005d98: 68f8 ldr r0, [r7, #12] + 8005d9a: f005 fd9e bl 800b8da + 8005d9e: 4603 mov r3, r0 + 8005da0: f887 3023 strb.w r3, [r7, #35] ; 0x23 lv_obj_t * act_obj = lv_indev_get_obj_act(); - 8005e10: f7fd fc1a bl 8003648 - 8005e14: 61f8 str r0, [r7, #28] + 8005da4: f7fd fc1a bl 80035dc + 8005da8: 61f8 str r0, [r7, #28] lv_coord_t snap_point = 0; - 8005e16: 2300 movs r3, #0 - 8005e18: 84fb strh r3, [r7, #38] ; 0x26 + 8005daa: 2300 movs r3, #0 + 8005dac: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t act_obj_point = 0; - 8005e1a: 2300 movs r3, #0 - 8005e1c: 84bb strh r3, [r7, #36] ; 0x24 + 8005dae: 2300 movs r3, #0 + 8005db0: 84bb strh r3, [r7, #36] ; 0x24 if(dir == LV_DIR_HOR) { - 8005e1e: f897 3030 ldrb.w r3, [r7, #48] ; 0x30 - 8005e22: 2b03 cmp r3, #3 - 8005e24: d15d bne.n 8005ee2 + 8005db2: f897 3030 ldrb.w r3, [r7, #48] ; 0x30 + 8005db6: 2b03 cmp r3, #3 + 8005db8: d15d bne.n 8005e76 lv_coord_t pad_left = lv_obj_get_style_pad_left(scroll_obj, LV_PART_MAIN); - 8005e26: 2100 movs r1, #0 - 8005e28: 68f8 ldr r0, [r7, #12] - 8005e2a: f7fe ff7b bl 8004d24 - 8005e2e: 4603 mov r3, r0 - 8005e30: 82fb strh r3, [r7, #22] + 8005dba: 2100 movs r1, #0 + 8005dbc: 68f8 ldr r0, [r7, #12] + 8005dbe: f7fe ff7b bl 8004cb8 + 8005dc2: 4603 mov r3, r0 + 8005dc4: 82fb strh r3, [r7, #22] lv_coord_t pad_right = lv_obj_get_style_pad_right(scroll_obj, LV_PART_MAIN); - 8005e32: 2100 movs r1, #0 - 8005e34: 68f8 ldr r0, [r7, #12] - 8005e36: f7fe ff88 bl 8004d4a - 8005e3a: 4603 mov r3, r0 - 8005e3c: 82bb strh r3, [r7, #20] + 8005dc6: 2100 movs r1, #0 + 8005dc8: 68f8 ldr r0, [r7, #12] + 8005dca: f7fe ff88 bl 8004cde + 8005dce: 4603 mov r3, r0 + 8005dd0: 82bb strh r3, [r7, #20] switch(snap) { - 8005e3e: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8005e42: 2b03 cmp r3, #3 - 8005e44: d007 beq.n 8005e56 - 8005e46: 2b03 cmp r3, #3 - 8005e48: f300 80a8 bgt.w 8005f9c - 8005e4c: 2b01 cmp r3, #1 - 8005e4e: d030 beq.n 8005eb2 - 8005e50: 2b02 cmp r3, #2 - 8005e52: d03a beq.n 8005eca - 8005e54: e0a2 b.n 8005f9c + 8005dd2: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8005dd6: 2b03 cmp r3, #3 + 8005dd8: d007 beq.n 8005dea + 8005dda: 2b03 cmp r3, #3 + 8005ddc: f300 80a8 bgt.w 8005f30 + 8005de0: 2b01 cmp r3, #1 + 8005de2: d030 beq.n 8005e46 + 8005de4: 2b02 cmp r3, #2 + 8005de6: d03a beq.n 8005e5e + 8005de8: e0a2 b.n 8005f30 case LV_SCROLL_SNAP_CENTER: snap_point = pad_left + (lv_area_get_width(&scroll_obj->coords) - pad_left - pad_right) / 2 + scroll_obj->coords.x1; - 8005e56: 68fb ldr r3, [r7, #12] - 8005e58: 3314 adds r3, #20 - 8005e5a: 4618 mov r0, r3 - 8005e5c: f7fe ff10 bl 8004c80 - 8005e60: 4603 mov r3, r0 - 8005e62: 461a mov r2, r3 - 8005e64: f9b7 3016 ldrsh.w r3, [r7, #22] - 8005e68: 1ad2 subs r2, r2, r3 - 8005e6a: f9b7 3014 ldrsh.w r3, [r7, #20] - 8005e6e: 1ad3 subs r3, r2, r3 - 8005e70: 0fda lsrs r2, r3, #31 - 8005e72: 4413 add r3, r2 - 8005e74: 105b asrs r3, r3, #1 - 8005e76: b29a uxth r2, r3 - 8005e78: 8afb ldrh r3, [r7, #22] - 8005e7a: 4413 add r3, r2 - 8005e7c: b29a uxth r2, r3 - 8005e7e: 68fb ldr r3, [r7, #12] - 8005e80: f9b3 3014 ldrsh.w r3, [r3, #20] - 8005e84: b29b uxth r3, r3 - 8005e86: 4413 add r3, r2 - 8005e88: b29b uxth r3, r3 - 8005e8a: 84fb strh r3, [r7, #38] ; 0x26 + 8005dea: 68fb ldr r3, [r7, #12] + 8005dec: 3314 adds r3, #20 + 8005dee: 4618 mov r0, r3 + 8005df0: f7fe ff10 bl 8004c14 + 8005df4: 4603 mov r3, r0 + 8005df6: 461a mov r2, r3 + 8005df8: f9b7 3016 ldrsh.w r3, [r7, #22] + 8005dfc: 1ad2 subs r2, r2, r3 + 8005dfe: f9b7 3014 ldrsh.w r3, [r7, #20] + 8005e02: 1ad3 subs r3, r2, r3 + 8005e04: 0fda lsrs r2, r3, #31 + 8005e06: 4413 add r3, r2 + 8005e08: 105b asrs r3, r3, #1 + 8005e0a: b29a uxth r2, r3 + 8005e0c: 8afb ldrh r3, [r7, #22] + 8005e0e: 4413 add r3, r2 + 8005e10: b29a uxth r2, r3 + 8005e12: 68fb ldr r3, [r7, #12] + 8005e14: f9b3 3014 ldrsh.w r3, [r3, #20] + 8005e18: b29b uxth r3, r3 + 8005e1a: 4413 add r3, r2 + 8005e1c: b29b uxth r3, r3 + 8005e1e: 84fb strh r3, [r7, #38] ; 0x26 act_obj_point = lv_area_get_width(&act_obj->coords) / 2 + act_obj->coords.x1; - 8005e8c: 69fb ldr r3, [r7, #28] - 8005e8e: 3314 adds r3, #20 - 8005e90: 4618 mov r0, r3 - 8005e92: f7fe fef5 bl 8004c80 - 8005e96: 4603 mov r3, r0 - 8005e98: 0fda lsrs r2, r3, #31 - 8005e9a: 4413 add r3, r2 - 8005e9c: 105b asrs r3, r3, #1 - 8005e9e: b21b sxth r3, r3 - 8005ea0: b29a uxth r2, r3 - 8005ea2: 69fb ldr r3, [r7, #28] - 8005ea4: f9b3 3014 ldrsh.w r3, [r3, #20] - 8005ea8: b29b uxth r3, r3 - 8005eaa: 4413 add r3, r2 - 8005eac: b29b uxth r3, r3 - 8005eae: 84bb strh r3, [r7, #36] ; 0x24 + 8005e20: 69fb ldr r3, [r7, #28] + 8005e22: 3314 adds r3, #20 + 8005e24: 4618 mov r0, r3 + 8005e26: f7fe fef5 bl 8004c14 + 8005e2a: 4603 mov r3, r0 + 8005e2c: 0fda lsrs r2, r3, #31 + 8005e2e: 4413 add r3, r2 + 8005e30: 105b asrs r3, r3, #1 + 8005e32: b21b sxth r3, r3 + 8005e34: b29a uxth r2, r3 + 8005e36: 69fb ldr r3, [r7, #28] + 8005e38: f9b3 3014 ldrsh.w r3, [r3, #20] + 8005e3c: b29b uxth r3, r3 + 8005e3e: 4413 add r3, r2 + 8005e40: b29b uxth r3, r3 + 8005e42: 84bb strh r3, [r7, #36] ; 0x24 break; - 8005eb0: e074 b.n 8005f9c + 8005e44: e074 b.n 8005f30 case LV_SCROLL_SNAP_START: snap_point = scroll_obj->coords.x1 + pad_left; - 8005eb2: 68fb ldr r3, [r7, #12] - 8005eb4: f9b3 3014 ldrsh.w r3, [r3, #20] - 8005eb8: b29a uxth r2, r3 - 8005eba: 8afb ldrh r3, [r7, #22] - 8005ebc: 4413 add r3, r2 - 8005ebe: b29b uxth r3, r3 - 8005ec0: 84fb strh r3, [r7, #38] ; 0x26 + 8005e46: 68fb ldr r3, [r7, #12] + 8005e48: f9b3 3014 ldrsh.w r3, [r3, #20] + 8005e4c: b29a uxth r2, r3 + 8005e4e: 8afb ldrh r3, [r7, #22] + 8005e50: 4413 add r3, r2 + 8005e52: b29b uxth r3, r3 + 8005e54: 84fb strh r3, [r7, #38] ; 0x26 act_obj_point = act_obj->coords.x1; - 8005ec2: 69fb ldr r3, [r7, #28] - 8005ec4: 8a9b ldrh r3, [r3, #20] - 8005ec6: 84bb strh r3, [r7, #36] ; 0x24 + 8005e56: 69fb ldr r3, [r7, #28] + 8005e58: 8a9b ldrh r3, [r3, #20] + 8005e5a: 84bb strh r3, [r7, #36] ; 0x24 break; - 8005ec8: e068 b.n 8005f9c + 8005e5c: e068 b.n 8005f30 case LV_SCROLL_SNAP_END: snap_point = scroll_obj->coords.x2 - pad_right; - 8005eca: 68fb ldr r3, [r7, #12] - 8005ecc: f9b3 3018 ldrsh.w r3, [r3, #24] - 8005ed0: b29a uxth r2, r3 - 8005ed2: 8abb ldrh r3, [r7, #20] - 8005ed4: 1ad3 subs r3, r2, r3 - 8005ed6: b29b uxth r3, r3 - 8005ed8: 84fb strh r3, [r7, #38] ; 0x26 + 8005e5e: 68fb ldr r3, [r7, #12] + 8005e60: f9b3 3018 ldrsh.w r3, [r3, #24] + 8005e64: b29a uxth r2, r3 + 8005e66: 8abb ldrh r3, [r7, #20] + 8005e68: 1ad3 subs r3, r2, r3 + 8005e6a: b29b uxth r3, r3 + 8005e6c: 84fb strh r3, [r7, #38] ; 0x26 act_obj_point = act_obj->coords.x2; - 8005eda: 69fb ldr r3, [r7, #28] - 8005edc: 8b1b ldrh r3, [r3, #24] - 8005ede: 84bb strh r3, [r7, #36] ; 0x24 + 8005e6e: 69fb ldr r3, [r7, #28] + 8005e70: 8b1b ldrh r3, [r3, #24] + 8005e72: 84bb strh r3, [r7, #36] ; 0x24 break; - 8005ee0: e05c b.n 8005f9c + 8005e74: e05c b.n 8005f30 } } else { lv_coord_t pad_top = lv_obj_get_style_pad_top(scroll_obj, LV_PART_MAIN); - 8005ee2: 2100 movs r1, #0 - 8005ee4: 68f8 ldr r0, [r7, #12] - 8005ee6: f7fe fef7 bl 8004cd8 - 8005eea: 4603 mov r3, r0 - 8005eec: 837b strh r3, [r7, #26] + 8005e76: 2100 movs r1, #0 + 8005e78: 68f8 ldr r0, [r7, #12] + 8005e7a: f7fe fef7 bl 8004c6c + 8005e7e: 4603 mov r3, r0 + 8005e80: 837b strh r3, [r7, #26] lv_coord_t pad_bottom = lv_obj_get_style_pad_bottom(scroll_obj, LV_PART_MAIN); - 8005eee: 2100 movs r1, #0 - 8005ef0: 68f8 ldr r0, [r7, #12] - 8005ef2: f7fe ff04 bl 8004cfe - 8005ef6: 4603 mov r3, r0 - 8005ef8: 833b strh r3, [r7, #24] + 8005e82: 2100 movs r1, #0 + 8005e84: 68f8 ldr r0, [r7, #12] + 8005e86: f7fe ff04 bl 8004c92 + 8005e8a: 4603 mov r3, r0 + 8005e8c: 833b strh r3, [r7, #24] switch(snap) { - 8005efa: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8005efe: 2b03 cmp r3, #3 - 8005f00: d006 beq.n 8005f10 - 8005f02: 2b03 cmp r3, #3 - 8005f04: dc4a bgt.n 8005f9c - 8005f06: 2b01 cmp r3, #1 - 8005f08: d030 beq.n 8005f6c - 8005f0a: 2b02 cmp r3, #2 - 8005f0c: d03a beq.n 8005f84 - 8005f0e: e045 b.n 8005f9c + 8005e8e: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8005e92: 2b03 cmp r3, #3 + 8005e94: d006 beq.n 8005ea4 + 8005e96: 2b03 cmp r3, #3 + 8005e98: dc4a bgt.n 8005f30 + 8005e9a: 2b01 cmp r3, #1 + 8005e9c: d030 beq.n 8005f00 + 8005e9e: 2b02 cmp r3, #2 + 8005ea0: d03a beq.n 8005f18 + 8005ea2: e045 b.n 8005f30 case LV_SCROLL_SNAP_CENTER: snap_point = pad_top + (lv_area_get_height(&scroll_obj->coords) - pad_top - pad_bottom) / 2 + scroll_obj->coords.y1; - 8005f10: 68fb ldr r3, [r7, #12] - 8005f12: 3314 adds r3, #20 - 8005f14: 4618 mov r0, r3 - 8005f16: f7fe fec9 bl 8004cac - 8005f1a: 4603 mov r3, r0 - 8005f1c: 461a mov r2, r3 - 8005f1e: f9b7 301a ldrsh.w r3, [r7, #26] - 8005f22: 1ad2 subs r2, r2, r3 - 8005f24: f9b7 3018 ldrsh.w r3, [r7, #24] - 8005f28: 1ad3 subs r3, r2, r3 - 8005f2a: 0fda lsrs r2, r3, #31 - 8005f2c: 4413 add r3, r2 - 8005f2e: 105b asrs r3, r3, #1 - 8005f30: b29a uxth r2, r3 - 8005f32: 8b7b ldrh r3, [r7, #26] - 8005f34: 4413 add r3, r2 - 8005f36: b29a uxth r2, r3 - 8005f38: 68fb ldr r3, [r7, #12] - 8005f3a: f9b3 3016 ldrsh.w r3, [r3, #22] - 8005f3e: b29b uxth r3, r3 - 8005f40: 4413 add r3, r2 - 8005f42: b29b uxth r3, r3 - 8005f44: 84fb strh r3, [r7, #38] ; 0x26 + 8005ea4: 68fb ldr r3, [r7, #12] + 8005ea6: 3314 adds r3, #20 + 8005ea8: 4618 mov r0, r3 + 8005eaa: f7fe fec9 bl 8004c40 + 8005eae: 4603 mov r3, r0 + 8005eb0: 461a mov r2, r3 + 8005eb2: f9b7 301a ldrsh.w r3, [r7, #26] + 8005eb6: 1ad2 subs r2, r2, r3 + 8005eb8: f9b7 3018 ldrsh.w r3, [r7, #24] + 8005ebc: 1ad3 subs r3, r2, r3 + 8005ebe: 0fda lsrs r2, r3, #31 + 8005ec0: 4413 add r3, r2 + 8005ec2: 105b asrs r3, r3, #1 + 8005ec4: b29a uxth r2, r3 + 8005ec6: 8b7b ldrh r3, [r7, #26] + 8005ec8: 4413 add r3, r2 + 8005eca: b29a uxth r2, r3 + 8005ecc: 68fb ldr r3, [r7, #12] + 8005ece: f9b3 3016 ldrsh.w r3, [r3, #22] + 8005ed2: b29b uxth r3, r3 + 8005ed4: 4413 add r3, r2 + 8005ed6: b29b uxth r3, r3 + 8005ed8: 84fb strh r3, [r7, #38] ; 0x26 act_obj_point = lv_area_get_height(&act_obj->coords) / 2 + act_obj->coords.y1; - 8005f46: 69fb ldr r3, [r7, #28] - 8005f48: 3314 adds r3, #20 - 8005f4a: 4618 mov r0, r3 - 8005f4c: f7fe feae bl 8004cac - 8005f50: 4603 mov r3, r0 - 8005f52: 0fda lsrs r2, r3, #31 - 8005f54: 4413 add r3, r2 - 8005f56: 105b asrs r3, r3, #1 - 8005f58: b21b sxth r3, r3 - 8005f5a: b29a uxth r2, r3 - 8005f5c: 69fb ldr r3, [r7, #28] - 8005f5e: f9b3 3016 ldrsh.w r3, [r3, #22] - 8005f62: b29b uxth r3, r3 - 8005f64: 4413 add r3, r2 - 8005f66: b29b uxth r3, r3 - 8005f68: 84bb strh r3, [r7, #36] ; 0x24 + 8005eda: 69fb ldr r3, [r7, #28] + 8005edc: 3314 adds r3, #20 + 8005ede: 4618 mov r0, r3 + 8005ee0: f7fe feae bl 8004c40 + 8005ee4: 4603 mov r3, r0 + 8005ee6: 0fda lsrs r2, r3, #31 + 8005ee8: 4413 add r3, r2 + 8005eea: 105b asrs r3, r3, #1 + 8005eec: b21b sxth r3, r3 + 8005eee: b29a uxth r2, r3 + 8005ef0: 69fb ldr r3, [r7, #28] + 8005ef2: f9b3 3016 ldrsh.w r3, [r3, #22] + 8005ef6: b29b uxth r3, r3 + 8005ef8: 4413 add r3, r2 + 8005efa: b29b uxth r3, r3 + 8005efc: 84bb strh r3, [r7, #36] ; 0x24 break; - 8005f6a: e017 b.n 8005f9c + 8005efe: e017 b.n 8005f30 case LV_SCROLL_SNAP_START: snap_point = scroll_obj->coords.y1 + pad_top; - 8005f6c: 68fb ldr r3, [r7, #12] - 8005f6e: f9b3 3016 ldrsh.w r3, [r3, #22] - 8005f72: b29a uxth r2, r3 - 8005f74: 8b7b ldrh r3, [r7, #26] - 8005f76: 4413 add r3, r2 - 8005f78: b29b uxth r3, r3 - 8005f7a: 84fb strh r3, [r7, #38] ; 0x26 + 8005f00: 68fb ldr r3, [r7, #12] + 8005f02: f9b3 3016 ldrsh.w r3, [r3, #22] + 8005f06: b29a uxth r2, r3 + 8005f08: 8b7b ldrh r3, [r7, #26] + 8005f0a: 4413 add r3, r2 + 8005f0c: b29b uxth r3, r3 + 8005f0e: 84fb strh r3, [r7, #38] ; 0x26 act_obj_point = act_obj->coords.y1; - 8005f7c: 69fb ldr r3, [r7, #28] - 8005f7e: 8adb ldrh r3, [r3, #22] - 8005f80: 84bb strh r3, [r7, #36] ; 0x24 + 8005f10: 69fb ldr r3, [r7, #28] + 8005f12: 8adb ldrh r3, [r3, #22] + 8005f14: 84bb strh r3, [r7, #36] ; 0x24 break; - 8005f82: e00b b.n 8005f9c + 8005f16: e00b b.n 8005f30 case LV_SCROLL_SNAP_END: snap_point = scroll_obj->coords.y2 - pad_bottom; - 8005f84: 68fb ldr r3, [r7, #12] - 8005f86: f9b3 301a ldrsh.w r3, [r3, #26] - 8005f8a: b29a uxth r2, r3 - 8005f8c: 8b3b ldrh r3, [r7, #24] - 8005f8e: 1ad3 subs r3, r2, r3 - 8005f90: b29b uxth r3, r3 - 8005f92: 84fb strh r3, [r7, #38] ; 0x26 + 8005f18: 68fb ldr r3, [r7, #12] + 8005f1a: f9b3 301a ldrsh.w r3, [r3, #26] + 8005f1e: b29a uxth r2, r3 + 8005f20: 8b3b ldrh r3, [r7, #24] + 8005f22: 1ad3 subs r3, r2, r3 + 8005f24: b29b uxth r3, r3 + 8005f26: 84fb strh r3, [r7, #38] ; 0x26 act_obj_point = act_obj->coords.y2; - 8005f94: 69fb ldr r3, [r7, #28] - 8005f96: 8b5b ldrh r3, [r3, #26] - 8005f98: 84bb strh r3, [r7, #36] ; 0x24 + 8005f28: 69fb ldr r3, [r7, #28] + 8005f2a: 8b5b ldrh r3, [r3, #26] + 8005f2c: 84bb strh r3, [r7, #36] ; 0x24 break; - 8005f9a: bf00 nop + 8005f2e: bf00 nop } } if(scroll_end < 0) { - 8005f9c: f9b7 3006 ldrsh.w r3, [r7, #6] - 8005fa0: 2b00 cmp r3, #0 - 8005fa2: da24 bge.n 8005fee + 8005f30: f9b7 3006 ldrsh.w r3, [r7, #6] + 8005f34: 2b00 cmp r3, #0 + 8005f36: da24 bge.n 8005f82 if(snap != LV_SCROLL_SNAP_NONE && act_obj_point > snap_point) return diff; - 8005fa4: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8005fa8: 2b00 cmp r3, #0 - 8005faa: d008 beq.n 8005fbe - 8005fac: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 - 8005fb0: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 8005fb4: 429a cmp r2, r3 - 8005fb6: dd02 ble.n 8005fbe - 8005fb8: f9b7 300a ldrsh.w r3, [r7, #10] - 8005fbc: e056 b.n 800606c + 8005f38: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8005f3c: 2b00 cmp r3, #0 + 8005f3e: d008 beq.n 8005f52 + 8005f40: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 + 8005f44: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 8005f48: 429a cmp r2, r3 + 8005f4a: dd02 ble.n 8005f52 + 8005f4c: f9b7 300a ldrsh.w r3, [r7, #10] + 8005f50: e056 b.n 8006000 /*Rounding*/ if(diff < 0) diff -= ELASTIC_SLOWNESS_FACTOR / 2; - 8005fbe: f9b7 300a ldrsh.w r3, [r7, #10] - 8005fc2: 2b00 cmp r3, #0 - 8005fc4: da03 bge.n 8005fce - 8005fc6: 897b ldrh r3, [r7, #10] - 8005fc8: 3b02 subs r3, #2 - 8005fca: b29b uxth r3, r3 - 8005fcc: 817b strh r3, [r7, #10] + 8005f52: f9b7 300a ldrsh.w r3, [r7, #10] + 8005f56: 2b00 cmp r3, #0 + 8005f58: da03 bge.n 8005f62 + 8005f5a: 897b ldrh r3, [r7, #10] + 8005f5c: 3b02 subs r3, #2 + 8005f5e: b29b uxth r3, r3 + 8005f60: 817b strh r3, [r7, #10] if(diff > 0) diff += ELASTIC_SLOWNESS_FACTOR / 2; - 8005fce: f9b7 300a ldrsh.w r3, [r7, #10] - 8005fd2: 2b00 cmp r3, #0 - 8005fd4: dd03 ble.n 8005fde - 8005fd6: 897b ldrh r3, [r7, #10] - 8005fd8: 3302 adds r3, #2 - 8005fda: b29b uxth r3, r3 - 8005fdc: 817b strh r3, [r7, #10] + 8005f62: f9b7 300a ldrsh.w r3, [r7, #10] + 8005f66: 2b00 cmp r3, #0 + 8005f68: dd03 ble.n 8005f72 + 8005f6a: 897b ldrh r3, [r7, #10] + 8005f6c: 3302 adds r3, #2 + 8005f6e: b29b uxth r3, r3 + 8005f70: 817b strh r3, [r7, #10] return diff / ELASTIC_SLOWNESS_FACTOR; - 8005fde: f9b7 300a ldrsh.w r3, [r7, #10] - 8005fe2: 2b00 cmp r3, #0 - 8005fe4: da00 bge.n 8005fe8 - 8005fe6: 3303 adds r3, #3 - 8005fe8: 109b asrs r3, r3, #2 - 8005fea: b21b sxth r3, r3 - 8005fec: e03e b.n 800606c + 8005f72: f9b7 300a ldrsh.w r3, [r7, #10] + 8005f76: 2b00 cmp r3, #0 + 8005f78: da00 bge.n 8005f7c + 8005f7a: 3303 adds r3, #3 + 8005f7c: 109b asrs r3, r3, #2 + 8005f7e: b21b sxth r3, r3 + 8005f80: e03e b.n 8006000 } else if(scroll_start < 0) { - 8005fee: f9b7 3008 ldrsh.w r3, [r7, #8] - 8005ff2: 2b00 cmp r3, #0 - 8005ff4: da38 bge.n 8006068 + 8005f82: f9b7 3008 ldrsh.w r3, [r7, #8] + 8005f86: 2b00 cmp r3, #0 + 8005f88: da38 bge.n 8005ffc if(snap != LV_SCROLL_SNAP_NONE && act_obj_point < snap_point) return diff; - 8005ff6: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8005ffa: 2b00 cmp r3, #0 - 8005ffc: d008 beq.n 8006010 - 8005ffe: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 - 8006002: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 8006006: 429a cmp r2, r3 - 8006008: da02 bge.n 8006010 - 800600a: f9b7 300a ldrsh.w r3, [r7, #10] - 800600e: e02d b.n 800606c + 8005f8a: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8005f8e: 2b00 cmp r3, #0 + 8005f90: d008 beq.n 8005fa4 + 8005f92: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 + 8005f96: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 8005f9a: 429a cmp r2, r3 + 8005f9c: da02 bge.n 8005fa4 + 8005f9e: f9b7 300a ldrsh.w r3, [r7, #10] + 8005fa2: e02d b.n 8006000 /*Rounding*/ if(diff < 0) diff -= ELASTIC_SLOWNESS_FACTOR / 2; - 8006010: f9b7 300a ldrsh.w r3, [r7, #10] - 8006014: 2b00 cmp r3, #0 - 8006016: da03 bge.n 8006020 - 8006018: 897b ldrh r3, [r7, #10] - 800601a: 3b02 subs r3, #2 - 800601c: b29b uxth r3, r3 - 800601e: 817b strh r3, [r7, #10] + 8005fa4: f9b7 300a ldrsh.w r3, [r7, #10] + 8005fa8: 2b00 cmp r3, #0 + 8005faa: da03 bge.n 8005fb4 + 8005fac: 897b ldrh r3, [r7, #10] + 8005fae: 3b02 subs r3, #2 + 8005fb0: b29b uxth r3, r3 + 8005fb2: 817b strh r3, [r7, #10] if(diff > 0) diff += ELASTIC_SLOWNESS_FACTOR / 2; - 8006020: f9b7 300a ldrsh.w r3, [r7, #10] - 8006024: 2b00 cmp r3, #0 - 8006026: dd03 ble.n 8006030 - 8006028: 897b ldrh r3, [r7, #10] - 800602a: 3302 adds r3, #2 - 800602c: b29b uxth r3, r3 - 800602e: 817b strh r3, [r7, #10] + 8005fb4: f9b7 300a ldrsh.w r3, [r7, #10] + 8005fb8: 2b00 cmp r3, #0 + 8005fba: dd03 ble.n 8005fc4 + 8005fbc: 897b ldrh r3, [r7, #10] + 8005fbe: 3302 adds r3, #2 + 8005fc0: b29b uxth r3, r3 + 8005fc2: 817b strh r3, [r7, #10] return diff / ELASTIC_SLOWNESS_FACTOR; - 8006030: f9b7 300a ldrsh.w r3, [r7, #10] - 8006034: 2b00 cmp r3, #0 - 8006036: da00 bge.n 800603a - 8006038: 3303 adds r3, #3 - 800603a: 109b asrs r3, r3, #2 - 800603c: b21b sxth r3, r3 - 800603e: e015 b.n 800606c + 8005fc4: f9b7 300a ldrsh.w r3, [r7, #10] + 8005fc8: 2b00 cmp r3, #0 + 8005fca: da00 bge.n 8005fce + 8005fcc: 3303 adds r3, #3 + 8005fce: 109b asrs r3, r3, #2 + 8005fd0: b21b sxth r3, r3 + 8005fd2: e015 b.n 8006000 } } else { /*Scroll back to the boundary if required*/ if(scroll_end + diff < 0) diff = - scroll_end; - 8006040: f9b7 2006 ldrsh.w r2, [r7, #6] - 8006044: f9b7 300a ldrsh.w r3, [r7, #10] - 8006048: 4413 add r3, r2 - 800604a: 2b00 cmp r3, #0 - 800604c: da03 bge.n 8006056 - 800604e: 88fb ldrh r3, [r7, #6] - 8006050: 425b negs r3, r3 - 8006052: b29b uxth r3, r3 - 8006054: 817b strh r3, [r7, #10] + 8005fd4: f9b7 2006 ldrsh.w r2, [r7, #6] + 8005fd8: f9b7 300a ldrsh.w r3, [r7, #10] + 8005fdc: 4413 add r3, r2 + 8005fde: 2b00 cmp r3, #0 + 8005fe0: da03 bge.n 8005fea + 8005fe2: 88fb ldrh r3, [r7, #6] + 8005fe4: 425b negs r3, r3 + 8005fe6: b29b uxth r3, r3 + 8005fe8: 817b strh r3, [r7, #10] if(scroll_start - diff < 0) diff = scroll_start; - 8006056: f9b7 2008 ldrsh.w r2, [r7, #8] - 800605a: f9b7 300a ldrsh.w r3, [r7, #10] - 800605e: 1ad3 subs r3, r2, r3 - 8006060: 2b00 cmp r3, #0 - 8006062: da01 bge.n 8006068 - 8006064: 893b ldrh r3, [r7, #8] - 8006066: 817b strh r3, [r7, #10] + 8005fea: f9b7 2008 ldrsh.w r2, [r7, #8] + 8005fee: f9b7 300a ldrsh.w r3, [r7, #10] + 8005ff2: 1ad3 subs r3, r2, r3 + 8005ff4: 2b00 cmp r3, #0 + 8005ff6: da01 bge.n 8005ffc + 8005ff8: 893b ldrh r3, [r7, #8] + 8005ffa: 817b strh r3, [r7, #10] } return diff; - 8006068: f9b7 300a ldrsh.w r3, [r7, #10] + 8005ffc: f9b7 300a ldrsh.w r3, [r7, #10] } - 800606c: 4618 mov r0, r3 - 800606e: 3728 adds r7, #40 ; 0x28 - 8006070: 46bd mov sp, r7 - 8006072: bd80 pop {r7, pc} + 8006000: 4618 mov r0, r3 + 8006002: 3728 adds r7, #40 ; 0x28 + 8006004: 46bd mov sp, r7 + 8006006: bd80 pop {r7, pc} -08006074 : +08006008 : { - 8006074: b480 push {r7} - 8006076: b083 sub sp, #12 - 8006078: af00 add r7, sp, #0 - 800607a: 6078 str r0, [r7, #4] - 800607c: 6039 str r1, [r7, #0] + 8006008: b480 push {r7} + 800600a: b083 sub sp, #12 + 800600c: af00 add r7, sp, #0 + 800600e: 6078 str r0, [r7, #4] + 8006010: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 800607e: 683b ldr r3, [r7, #0] - 8006080: f9b3 2000 ldrsh.w r2, [r3] - 8006084: 687b ldr r3, [r7, #4] - 8006086: 801a strh r2, [r3, #0] + 8006012: 683b ldr r3, [r7, #0] + 8006014: f9b3 2000 ldrsh.w r2, [r3] + 8006018: 687b ldr r3, [r7, #4] + 800601a: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 8006088: 683b ldr r3, [r7, #0] - 800608a: f9b3 2002 ldrsh.w r2, [r3, #2] - 800608e: 687b ldr r3, [r7, #4] - 8006090: 805a strh r2, [r3, #2] + 800601c: 683b ldr r3, [r7, #0] + 800601e: f9b3 2002 ldrsh.w r2, [r3, #2] + 8006022: 687b ldr r3, [r7, #4] + 8006024: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 8006092: 683b ldr r3, [r7, #0] - 8006094: f9b3 2004 ldrsh.w r2, [r3, #4] - 8006098: 687b ldr r3, [r7, #4] - 800609a: 809a strh r2, [r3, #4] + 8006026: 683b ldr r3, [r7, #0] + 8006028: f9b3 2004 ldrsh.w r2, [r3, #4] + 800602c: 687b ldr r3, [r7, #4] + 800602e: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 800609c: 683b ldr r3, [r7, #0] - 800609e: f9b3 2006 ldrsh.w r2, [r3, #6] - 80060a2: 687b ldr r3, [r7, #4] - 80060a4: 80da strh r2, [r3, #6] + 8006030: 683b ldr r3, [r7, #0] + 8006032: f9b3 2006 ldrsh.w r2, [r3, #6] + 8006036: 687b ldr r3, [r7, #4] + 8006038: 80da strh r2, [r3, #6] } - 80060a6: bf00 nop - 80060a8: 370c adds r7, #12 - 80060aa: 46bd mov sp, r7 - 80060ac: bc80 pop {r7} - 80060ae: 4770 bx lr + 800603a: bf00 nop + 800603c: 370c adds r7, #12 + 800603e: 46bd mov sp, r7 + 8006040: bc80 pop {r7} + 8006042: 4770 bx lr -080060b0 : +08006044 : * @note For performance reasons there are no sanity check on `style` * @note This function is the same as ::lv_style_get_prop but inlined. Use it only on performance critical places */ static inline lv_res_t lv_style_get_prop_inlined(const lv_style_t * style, lv_style_prop_t prop, lv_style_value_t * value) { - 80060b0: b480 push {r7} - 80060b2: b08b sub sp, #44 ; 0x2c - 80060b4: af00 add r7, sp, #0 - 80060b6: 60f8 str r0, [r7, #12] - 80060b8: 460b mov r3, r1 - 80060ba: 607a str r2, [r7, #4] - 80060bc: 817b strh r3, [r7, #10] + 8006044: b480 push {r7} + 8006046: b08b sub sp, #44 ; 0x2c + 8006048: af00 add r7, sp, #0 + 800604a: 60f8 str r0, [r7, #12] + 800604c: 460b mov r3, r1 + 800604e: 607a str r2, [r7, #4] + 8006050: 817b strh r3, [r7, #10] if(style->is_const) { - 80060be: 68fb ldr r3, [r7, #12] - 80060c0: 795b ldrb r3, [r3, #5] - 80060c2: f023 037f bic.w r3, r3, #127 ; 0x7f - 80060c6: b2db uxtb r3, r3 - 80060c8: 2b00 cmp r3, #0 - 80060ca: d017 beq.n 80060fc + 8006052: 68fb ldr r3, [r7, #12] + 8006054: 795b ldrb r3, [r3, #5] + 8006056: f023 037f bic.w r3, r3, #127 ; 0x7f + 800605a: b2db uxtb r3, r3 + 800605c: 2b00 cmp r3, #0 + 800605e: d017 beq.n 8006090 const lv_style_const_prop_t * const_prop; for(const_prop = style->v_p.const_props; const_prop->prop != LV_STYLE_PROP_INV; const_prop++) { - 80060cc: 68fb ldr r3, [r7, #12] - 80060ce: 681b ldr r3, [r3, #0] - 80060d0: 627b str r3, [r7, #36] ; 0x24 - 80060d2: e00d b.n 80060f0 + 8006060: 68fb ldr r3, [r7, #12] + 8006062: 681b ldr r3, [r3, #0] + 8006064: 627b str r3, [r7, #36] ; 0x24 + 8006066: e00d b.n 8006084 if(const_prop->prop == prop) { - 80060d4: 6a7b ldr r3, [r7, #36] ; 0x24 - 80060d6: 881b ldrh r3, [r3, #0] - 80060d8: 897a ldrh r2, [r7, #10] - 80060da: 429a cmp r2, r3 - 80060dc: d105 bne.n 80060ea + 8006068: 6a7b ldr r3, [r7, #36] ; 0x24 + 800606a: 881b ldrh r3, [r3, #0] + 800606c: 897a ldrh r2, [r7, #10] + 800606e: 429a cmp r2, r3 + 8006070: d105 bne.n 800607e *value = const_prop->value; - 80060de: 687b ldr r3, [r7, #4] - 80060e0: 6a7a ldr r2, [r7, #36] ; 0x24 - 80060e2: 6852 ldr r2, [r2, #4] - 80060e4: 601a str r2, [r3, #0] + 8006072: 687b ldr r3, [r7, #4] + 8006074: 6a7a ldr r2, [r7, #36] ; 0x24 + 8006076: 6852 ldr r2, [r2, #4] + 8006078: 601a str r2, [r3, #0] return LV_RES_OK; - 80060e6: 2301 movs r3, #1 - 80060e8: e04c b.n 8006184 + 800607a: 2301 movs r3, #1 + 800607c: e04c b.n 8006118 for(const_prop = style->v_p.const_props; const_prop->prop != LV_STYLE_PROP_INV; const_prop++) { - 80060ea: 6a7b ldr r3, [r7, #36] ; 0x24 - 80060ec: 3308 adds r3, #8 - 80060ee: 627b str r3, [r7, #36] ; 0x24 - 80060f0: 6a7b ldr r3, [r7, #36] ; 0x24 - 80060f2: 881b ldrh r3, [r3, #0] - 80060f4: 2b00 cmp r3, #0 - 80060f6: d1ed bne.n 80060d4 + 800607e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8006080: 3308 adds r3, #8 + 8006082: 627b str r3, [r7, #36] ; 0x24 + 8006084: 6a7b ldr r3, [r7, #36] ; 0x24 + 8006086: 881b ldrh r3, [r3, #0] + 8006088: 2b00 cmp r3, #0 + 800608a: d1ed bne.n 8006068 } } return LV_RES_INV; - 80060f8: 2300 movs r3, #0 - 80060fa: e043 b.n 8006184 + 800608c: 2300 movs r3, #0 + 800608e: e043 b.n 8006118 } if(style->prop_cnt == 0) return LV_RES_INV; - 80060fc: 68fb ldr r3, [r7, #12] - 80060fe: 79db ldrb r3, [r3, #7] - 8006100: 2b00 cmp r3, #0 - 8006102: d101 bne.n 8006108 - 8006104: 2300 movs r3, #0 - 8006106: e03d b.n 8006184 + 8006090: 68fb ldr r3, [r7, #12] + 8006092: 79db ldrb r3, [r3, #7] + 8006094: 2b00 cmp r3, #0 + 8006096: d101 bne.n 800609c + 8006098: 2300 movs r3, #0 + 800609a: e03d b.n 8006118 if(style->prop_cnt > 1) { - 8006108: 68fb ldr r3, [r7, #12] - 800610a: 79db ldrb r3, [r3, #7] - 800610c: 2b01 cmp r3, #1 - 800610e: d929 bls.n 8006164 + 800609c: 68fb ldr r3, [r7, #12] + 800609e: 79db ldrb r3, [r3, #7] + 80060a0: 2b01 cmp r3, #1 + 80060a2: d929 bls.n 80060f8 uint8_t * tmp = style->v_p.values_and_props + style->prop_cnt * sizeof(lv_style_value_t); - 8006110: 68fb ldr r3, [r7, #12] - 8006112: 681a ldr r2, [r3, #0] - 8006114: 68fb ldr r3, [r7, #12] - 8006116: 79db ldrb r3, [r3, #7] - 8006118: 009b lsls r3, r3, #2 - 800611a: 4413 add r3, r2 - 800611c: 61fb str r3, [r7, #28] + 80060a4: 68fb ldr r3, [r7, #12] + 80060a6: 681a ldr r2, [r3, #0] + 80060a8: 68fb ldr r3, [r7, #12] + 80060aa: 79db ldrb r3, [r3, #7] + 80060ac: 009b lsls r3, r3, #2 + 80060ae: 4413 add r3, r2 + 80060b0: 61fb str r3, [r7, #28] uint16_t * props = (uint16_t *)tmp; - 800611e: 69fb ldr r3, [r7, #28] - 8006120: 61bb str r3, [r7, #24] + 80060b2: 69fb ldr r3, [r7, #28] + 80060b4: 61bb str r3, [r7, #24] uint32_t i; for(i = 0; i < style->prop_cnt; i++) { - 8006122: 2300 movs r3, #0 - 8006124: 623b str r3, [r7, #32] - 8006126: e016 b.n 8006156 + 80060b6: 2300 movs r3, #0 + 80060b8: 623b str r3, [r7, #32] + 80060ba: e016 b.n 80060ea if(props[i] == prop) { - 8006128: 6a3b ldr r3, [r7, #32] - 800612a: 005b lsls r3, r3, #1 - 800612c: 69ba ldr r2, [r7, #24] - 800612e: 4413 add r3, r2 - 8006130: 881b ldrh r3, [r3, #0] - 8006132: 897a ldrh r2, [r7, #10] - 8006134: 429a cmp r2, r3 - 8006136: d10b bne.n 8006150 + 80060bc: 6a3b ldr r3, [r7, #32] + 80060be: 005b lsls r3, r3, #1 + 80060c0: 69ba ldr r2, [r7, #24] + 80060c2: 4413 add r3, r2 + 80060c4: 881b ldrh r3, [r3, #0] + 80060c6: 897a ldrh r2, [r7, #10] + 80060c8: 429a cmp r2, r3 + 80060ca: d10b bne.n 80060e4 lv_style_value_t * values = (lv_style_value_t *)style->v_p.values_and_props; - 8006138: 68fb ldr r3, [r7, #12] - 800613a: 681b ldr r3, [r3, #0] - 800613c: 617b str r3, [r7, #20] + 80060cc: 68fb ldr r3, [r7, #12] + 80060ce: 681b ldr r3, [r3, #0] + 80060d0: 617b str r3, [r7, #20] *value = values[i]; - 800613e: 6a3b ldr r3, [r7, #32] - 8006140: 009b lsls r3, r3, #2 - 8006142: 697a ldr r2, [r7, #20] - 8006144: 441a add r2, r3 - 8006146: 687b ldr r3, [r7, #4] - 8006148: 6812 ldr r2, [r2, #0] - 800614a: 601a str r2, [r3, #0] + 80060d2: 6a3b ldr r3, [r7, #32] + 80060d4: 009b lsls r3, r3, #2 + 80060d6: 697a ldr r2, [r7, #20] + 80060d8: 441a add r2, r3 + 80060da: 687b ldr r3, [r7, #4] + 80060dc: 6812 ldr r2, [r2, #0] + 80060de: 601a str r2, [r3, #0] return LV_RES_OK; - 800614c: 2301 movs r3, #1 - 800614e: e019 b.n 8006184 + 80060e0: 2301 movs r3, #1 + 80060e2: e019 b.n 8006118 for(i = 0; i < style->prop_cnt; i++) { - 8006150: 6a3b ldr r3, [r7, #32] - 8006152: 3301 adds r3, #1 - 8006154: 623b str r3, [r7, #32] - 8006156: 68fb ldr r3, [r7, #12] - 8006158: 79db ldrb r3, [r3, #7] - 800615a: 461a mov r2, r3 - 800615c: 6a3b ldr r3, [r7, #32] - 800615e: 4293 cmp r3, r2 - 8006160: d3e2 bcc.n 8006128 - 8006162: e00e b.n 8006182 + 80060e4: 6a3b ldr r3, [r7, #32] + 80060e6: 3301 adds r3, #1 + 80060e8: 623b str r3, [r7, #32] + 80060ea: 68fb ldr r3, [r7, #12] + 80060ec: 79db ldrb r3, [r3, #7] + 80060ee: 461a mov r2, r3 + 80060f0: 6a3b ldr r3, [r7, #32] + 80060f2: 4293 cmp r3, r2 + 80060f4: d3e2 bcc.n 80060bc + 80060f6: e00e b.n 8006116 } } } else if(style->prop1 == prop) { - 8006164: 68fb ldr r3, [r7, #12] - 8006166: 889b ldrh r3, [r3, #4] - 8006168: f3c3 030e ubfx r3, r3, #0, #15 - 800616c: b29b uxth r3, r3 - 800616e: 461a mov r2, r3 - 8006170: 897b ldrh r3, [r7, #10] - 8006172: 4293 cmp r3, r2 - 8006174: d105 bne.n 8006182 + 80060f8: 68fb ldr r3, [r7, #12] + 80060fa: 889b ldrh r3, [r3, #4] + 80060fc: f3c3 030e ubfx r3, r3, #0, #15 + 8006100: b29b uxth r3, r3 + 8006102: 461a mov r2, r3 + 8006104: 897b ldrh r3, [r7, #10] + 8006106: 4293 cmp r3, r2 + 8006108: d105 bne.n 8006116 *value = style->v_p.value1; - 8006176: 687b ldr r3, [r7, #4] - 8006178: 68fa ldr r2, [r7, #12] - 800617a: 6812 ldr r2, [r2, #0] - 800617c: 601a str r2, [r3, #0] + 800610a: 687b ldr r3, [r7, #4] + 800610c: 68fa ldr r2, [r7, #12] + 800610e: 6812 ldr r2, [r2, #0] + 8006110: 601a str r2, [r3, #0] return LV_RES_OK; - 800617e: 2301 movs r3, #1 - 8006180: e000 b.n 8006184 + 8006112: 2301 movs r3, #1 + 8006114: e000 b.n 8006118 } return LV_RES_INV; - 8006182: 2300 movs r3, #0 + 8006116: 2300 movs r3, #0 } - 8006184: 4618 mov r0, r3 - 8006186: 372c adds r7, #44 ; 0x2c - 8006188: 46bd mov sp, r7 - 800618a: bc80 pop {r7} - 800618c: 4770 bx lr + 8006118: 4618 mov r0, r3 + 800611a: 372c adds r7, #44 ; 0x2c + 800611c: 46bd mov sp, r7 + 800611e: bc80 pop {r7} + 8006120: 4770 bx lr ... -08006190 : +08006124 : /** * Remove all styles from an object * @param obj pointer to an object */ static inline void lv_obj_remove_style_all(struct _lv_obj_t * obj) +{ + 8006124: b580 push {r7, lr} + 8006126: b082 sub sp, #8 + 8006128: af00 add r7, sp, #0 + 800612a: 6078 str r0, [r7, #4] + lv_obj_remove_style(obj, NULL, LV_PART_ANY | LV_STATE_ANY); + 800612c: 4a04 ldr r2, [pc, #16] ; (8006140 ) + 800612e: 2100 movs r1, #0 + 8006130: 6878 ldr r0, [r7, #4] + 8006132: f007 fc43 bl 800d9bc +} + 8006136: bf00 nop + 8006138: 3708 adds r7, #8 + 800613a: 46bd mov sp, r7 + 800613c: bd80 pop {r7, pc} + 800613e: bf00 nop + 8006140: 000fffff .word 0x000fffff + +08006144 : +{ + 8006144: b580 push {r7, lr} + 8006146: b084 sub sp, #16 + 8006148: af00 add r7, sp, #0 + 800614a: 6078 str r0, [r7, #4] + 800614c: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_WIDTH); + 800614e: f241 0201 movw r2, #4097 ; 0x1001 + 8006152: 6839 ldr r1, [r7, #0] + 8006154: 6878 ldr r0, [r7, #4] + 8006156: f007 fdf5 bl 800dd44 + 800615a: 4603 mov r3, r0 + 800615c: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 800615e: 68fb ldr r3, [r7, #12] + 8006160: b21b sxth r3, r3 +} + 8006162: 4618 mov r0, r3 + 8006164: 3710 adds r7, #16 + 8006166: 46bd mov sp, r7 + 8006168: bd80 pop {r7, pc} + +0800616a : +{ + 800616a: b580 push {r7, lr} + 800616c: b084 sub sp, #16 + 800616e: af00 add r7, sp, #0 + 8006170: 6078 str r0, [r7, #4] + 8006172: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_HEIGHT); + 8006174: f241 0204 movw r2, #4100 ; 0x1004 + 8006178: 6839 ldr r1, [r7, #0] + 800617a: 6878 ldr r0, [r7, #4] + 800617c: f007 fde2 bl 800dd44 + 8006180: 4603 mov r3, r0 + 8006182: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 8006184: 68fb ldr r3, [r7, #12] + 8006186: b21b sxth r3, r3 +} + 8006188: 4618 mov r0, r3 + 800618a: 3710 adds r7, #16 + 800618c: 46bd mov sp, r7 + 800618e: bd80 pop {r7, pc} + +08006190 : { 8006190: b580 push {r7, lr} - 8006192: b082 sub sp, #8 + 8006192: b084 sub sp, #16 8006194: af00 add r7, sp, #0 8006196: 6078 str r0, [r7, #4] - lv_obj_remove_style(obj, NULL, LV_PART_ANY | LV_STATE_ANY); - 8006198: 4a04 ldr r2, [pc, #16] ; (80061ac ) - 800619a: 2100 movs r1, #0 - 800619c: 6878 ldr r0, [r7, #4] - 800619e: f007 fc43 bl 800da28 -} - 80061a2: bf00 nop - 80061a4: 3708 adds r7, #8 - 80061a6: 46bd mov sp, r7 - 80061a8: bd80 pop {r7, pc} - 80061aa: bf00 nop - 80061ac: 000fffff .word 0x000fffff - -080061b0 : -{ - 80061b0: b580 push {r7, lr} - 80061b2: b084 sub sp, #16 - 80061b4: af00 add r7, sp, #0 - 80061b6: 6078 str r0, [r7, #4] - 80061b8: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_WIDTH); - 80061ba: f241 0201 movw r2, #4097 ; 0x1001 - 80061be: 6839 ldr r1, [r7, #0] - 80061c0: 6878 ldr r0, [r7, #4] - 80061c2: f007 fdf5 bl 800ddb0 - 80061c6: 4603 mov r3, r0 - 80061c8: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 80061ca: 68fb ldr r3, [r7, #12] - 80061cc: b21b sxth r3, r3 -} - 80061ce: 4618 mov r0, r3 - 80061d0: 3710 adds r7, #16 - 80061d2: 46bd mov sp, r7 - 80061d4: bd80 pop {r7, pc} - -080061d6 : -{ - 80061d6: b580 push {r7, lr} - 80061d8: b084 sub sp, #16 - 80061da: af00 add r7, sp, #0 - 80061dc: 6078 str r0, [r7, #4] - 80061de: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_HEIGHT); - 80061e0: f241 0204 movw r2, #4100 ; 0x1004 - 80061e4: 6839 ldr r1, [r7, #0] - 80061e6: 6878 ldr r0, [r7, #4] - 80061e8: f007 fde2 bl 800ddb0 - 80061ec: 4603 mov r3, r0 - 80061ee: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 80061f0: 68fb ldr r3, [r7, #12] - 80061f2: b21b sxth r3, r3 -} - 80061f4: 4618 mov r0, r3 - 80061f6: 3710 adds r7, #16 - 80061f8: 46bd mov sp, r7 - 80061fa: bd80 pop {r7, pc} - -080061fc : -{ - 80061fc: b580 push {r7, lr} - 80061fe: b084 sub sp, #16 - 8006200: af00 add r7, sp, #0 - 8006202: 6078 str r0, [r7, #4] - 8006204: 6039 str r1, [r7, #0] + 8006198: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ALIGN); - 8006206: f241 0209 movw r2, #4105 ; 0x1009 - 800620a: 6839 ldr r1, [r7, #0] - 800620c: 6878 ldr r0, [r7, #4] - 800620e: f007 fdcf bl 800ddb0 - 8006212: 4603 mov r3, r0 - 8006214: 60fb str r3, [r7, #12] + 800619a: f241 0209 movw r2, #4105 ; 0x1009 + 800619e: 6839 ldr r1, [r7, #0] + 80061a0: 6878 ldr r0, [r7, #4] + 80061a2: f007 fdcf bl 800dd44 + 80061a6: 4603 mov r3, r0 + 80061a8: 60fb str r3, [r7, #12] return (lv_align_t)v.num; - 8006216: 68fb ldr r3, [r7, #12] - 8006218: b2db uxtb r3, r3 + 80061aa: 68fb ldr r3, [r7, #12] + 80061ac: b2db uxtb r3, r3 } - 800621a: 4618 mov r0, r3 - 800621c: 3710 adds r7, #16 - 800621e: 46bd mov sp, r7 - 8006220: bd80 pop {r7, pc} + 80061ae: 4618 mov r0, r3 + 80061b0: 3710 adds r7, #16 + 80061b2: 46bd mov sp, r7 + 80061b4: bd80 pop {r7, pc} -08006222 : +080061b6 : { - 8006222: b580 push {r7, lr} - 8006224: b084 sub sp, #16 - 8006226: af00 add r7, sp, #0 - 8006228: 6078 str r0, [r7, #4] - 800622a: 6039 str r1, [r7, #0] + 80061b6: b580 push {r7, lr} + 80061b8: b084 sub sp, #16 + 80061ba: af00 add r7, sp, #0 + 80061bc: 6078 str r0, [r7, #4] + 80061be: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_WIDTH); - 800622c: f640 020a movw r2, #2058 ; 0x80a - 8006230: 6839 ldr r1, [r7, #0] - 8006232: 6878 ldr r0, [r7, #4] - 8006234: f007 fdbc bl 800ddb0 - 8006238: 4603 mov r3, r0 - 800623a: 60fb str r3, [r7, #12] + 80061c0: f640 020a movw r2, #2058 ; 0x80a + 80061c4: 6839 ldr r1, [r7, #0] + 80061c6: 6878 ldr r0, [r7, #4] + 80061c8: f007 fdbc bl 800dd44 + 80061cc: 4603 mov r3, r0 + 80061ce: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 800623c: 68fb ldr r3, [r7, #12] - 800623e: b21b sxth r3, r3 + 80061d0: 68fb ldr r3, [r7, #12] + 80061d2: b21b sxth r3, r3 } - 8006240: 4618 mov r0, r3 - 8006242: 3710 adds r7, #16 - 8006244: 46bd mov sp, r7 - 8006246: bd80 pop {r7, pc} + 80061d4: 4618 mov r0, r3 + 80061d6: 3710 adds r7, #16 + 80061d8: 46bd mov sp, r7 + 80061da: bd80 pop {r7, pc} -08006248 : +080061dc : { - 8006248: b580 push {r7, lr} - 800624a: b084 sub sp, #16 - 800624c: af00 add r7, sp, #0 - 800624e: 6078 str r0, [r7, #4] - 8006250: 6039 str r1, [r7, #0] + 80061dc: b580 push {r7, lr} + 80061de: b084 sub sp, #16 + 80061e0: af00 add r7, sp, #0 + 80061e2: 6078 str r0, [r7, #4] + 80061e4: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_HEIGHT); - 8006252: f640 020b movw r2, #2059 ; 0x80b - 8006256: 6839 ldr r1, [r7, #0] - 8006258: 6878 ldr r0, [r7, #4] - 800625a: f007 fda9 bl 800ddb0 - 800625e: 4603 mov r3, r0 - 8006260: 60fb str r3, [r7, #12] + 80061e6: f640 020b movw r2, #2059 ; 0x80b + 80061ea: 6839 ldr r1, [r7, #0] + 80061ec: 6878 ldr r0, [r7, #4] + 80061ee: f007 fda9 bl 800dd44 + 80061f2: 4603 mov r3, r0 + 80061f4: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8006262: 68fb ldr r3, [r7, #12] - 8006264: b21b sxth r3, r3 + 80061f6: 68fb ldr r3, [r7, #12] + 80061f8: b21b sxth r3, r3 } - 8006266: 4618 mov r0, r3 - 8006268: 3710 adds r7, #16 - 800626a: 46bd mov sp, r7 - 800626c: bd80 pop {r7, pc} + 80061fa: 4618 mov r0, r3 + 80061fc: 3710 adds r7, #16 + 80061fe: 46bd mov sp, r7 + 8006200: bd80 pop {r7, pc} -0800626e : +08006202 : { - 800626e: b580 push {r7, lr} - 8006270: b084 sub sp, #16 - 8006272: af00 add r7, sp, #0 - 8006274: 6078 str r0, [r7, #4] - 8006276: 6039 str r1, [r7, #0] + 8006202: b580 push {r7, lr} + 8006204: b084 sub sp, #16 + 8006206: af00 add r7, sp, #0 + 8006208: 6078 str r0, [r7, #4] + 800620a: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 8006278: f641 0210 movw r2, #6160 ; 0x1810 - 800627c: 6839 ldr r1, [r7, #0] - 800627e: 6878 ldr r0, [r7, #4] - 8006280: f007 fd96 bl 800ddb0 - 8006284: 4603 mov r3, r0 - 8006286: 60fb str r3, [r7, #12] + 800620c: f641 0210 movw r2, #6160 ; 0x1810 + 8006210: 6839 ldr r1, [r7, #0] + 8006212: 6878 ldr r0, [r7, #4] + 8006214: f007 fd96 bl 800dd44 + 8006218: 4603 mov r3, r0 + 800621a: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8006288: 68fb ldr r3, [r7, #12] - 800628a: b21b sxth r3, r3 + 800621c: 68fb ldr r3, [r7, #12] + 800621e: b21b sxth r3, r3 } - 800628c: 4618 mov r0, r3 - 800628e: 3710 adds r7, #16 - 8006290: 46bd mov sp, r7 - 8006292: bd80 pop {r7, pc} + 8006220: 4618 mov r0, r3 + 8006222: 3710 adds r7, #16 + 8006224: 46bd mov sp, r7 + 8006226: bd80 pop {r7, pc} -08006294 : +08006228 : { - 8006294: b580 push {r7, lr} - 8006296: b084 sub sp, #16 - 8006298: af00 add r7, sp, #0 - 800629a: 6078 str r0, [r7, #4] - 800629c: 6039 str r1, [r7, #0] + 8006228: b580 push {r7, lr} + 800622a: b084 sub sp, #16 + 800622c: af00 add r7, sp, #0 + 800622e: 6078 str r0, [r7, #4] + 8006230: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 800629e: f641 0212 movw r2, #6162 ; 0x1812 - 80062a2: 6839 ldr r1, [r7, #0] - 80062a4: 6878 ldr r0, [r7, #4] - 80062a6: f007 fd83 bl 800ddb0 - 80062aa: 4603 mov r3, r0 - 80062ac: 60fb str r3, [r7, #12] + 8006232: f641 0212 movw r2, #6162 ; 0x1812 + 8006236: 6839 ldr r1, [r7, #0] + 8006238: 6878 ldr r0, [r7, #4] + 800623a: f007 fd83 bl 800dd44 + 800623e: 4603 mov r3, r0 + 8006240: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80062ae: 68fb ldr r3, [r7, #12] - 80062b0: b21b sxth r3, r3 + 8006242: 68fb ldr r3, [r7, #12] + 8006244: b21b sxth r3, r3 } - 80062b2: 4618 mov r0, r3 - 80062b4: 3710 adds r7, #16 - 80062b6: 46bd mov sp, r7 - 80062b8: bd80 pop {r7, pc} + 8006246: 4618 mov r0, r3 + 8006248: 3710 adds r7, #16 + 800624a: 46bd mov sp, r7 + 800624c: bd80 pop {r7, pc} -080062ba : +0800624e : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_COLUMN); return (lv_coord_t)v.num; } static inline lv_color_t lv_obj_get_style_bg_color(const struct _lv_obj_t * obj, uint32_t part) { - 80062ba: b580 push {r7, lr} - 80062bc: b084 sub sp, #16 - 80062be: af00 add r7, sp, #0 - 80062c0: 6078 str r0, [r7, #4] - 80062c2: 6039 str r1, [r7, #0] + 800624e: b580 push {r7, lr} + 8006250: b084 sub sp, #16 + 8006252: af00 add r7, sp, #0 + 8006254: 6078 str r0, [r7, #4] + 8006256: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_COLOR); - 80062c4: 2220 movs r2, #32 - 80062c6: 6839 ldr r1, [r7, #0] - 80062c8: 6878 ldr r0, [r7, #4] - 80062ca: f007 fd71 bl 800ddb0 - 80062ce: 4603 mov r3, r0 - 80062d0: 60fb str r3, [r7, #12] + 8006258: 2220 movs r2, #32 + 800625a: 6839 ldr r1, [r7, #0] + 800625c: 6878 ldr r0, [r7, #4] + 800625e: f007 fd71 bl 800dd44 + 8006262: 4603 mov r3, r0 + 8006264: 60fb str r3, [r7, #12] return v.color; - 80062d2: 89bb ldrh r3, [r7, #12] + 8006266: 89bb ldrh r3, [r7, #12] } - 80062d4: 4618 mov r0, r3 - 80062d6: 3710 adds r7, #16 - 80062d8: 46bd mov sp, r7 - 80062da: bd80 pop {r7, pc} + 8006268: 4618 mov r0, r3 + 800626a: 3710 adds r7, #16 + 800626c: 46bd mov sp, r7 + 800626e: bd80 pop {r7, pc} -080062dc : +08006270 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_COLOR_FILTERED); return v.color; } static inline lv_opa_t lv_obj_get_style_bg_opa(const struct _lv_obj_t * obj, uint32_t part) { - 80062dc: b580 push {r7, lr} - 80062de: b084 sub sp, #16 - 80062e0: af00 add r7, sp, #0 - 80062e2: 6078 str r0, [r7, #4] - 80062e4: 6039 str r1, [r7, #0] + 8006270: b580 push {r7, lr} + 8006272: b084 sub sp, #16 + 8006274: af00 add r7, sp, #0 + 8006276: 6078 str r0, [r7, #4] + 8006278: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_OPA); - 80062e6: 2221 movs r2, #33 ; 0x21 - 80062e8: 6839 ldr r1, [r7, #0] - 80062ea: 6878 ldr r0, [r7, #4] - 80062ec: f007 fd60 bl 800ddb0 - 80062f0: 4603 mov r3, r0 - 80062f2: 60fb str r3, [r7, #12] + 800627a: 2221 movs r2, #33 ; 0x21 + 800627c: 6839 ldr r1, [r7, #0] + 800627e: 6878 ldr r0, [r7, #4] + 8006280: f007 fd60 bl 800dd44 + 8006284: 4603 mov r3, r0 + 8006286: 60fb str r3, [r7, #12] return (lv_opa_t)v.num; - 80062f4: 68fb ldr r3, [r7, #12] - 80062f6: b2db uxtb r3, r3 + 8006288: 68fb ldr r3, [r7, #12] + 800628a: b2db uxtb r3, r3 } - 80062f8: 4618 mov r0, r3 - 80062fa: 3710 adds r7, #16 - 80062fc: 46bd mov sp, r7 - 80062fe: bd80 pop {r7, pc} + 800628c: 4618 mov r0, r3 + 800628e: 3710 adds r7, #16 + 8006290: 46bd mov sp, r7 + 8006292: bd80 pop {r7, pc} -08006300 : +08006294 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_TILED); return (bool)v.num; } static inline lv_color_t lv_obj_get_style_border_color(const struct _lv_obj_t * obj, uint32_t part) { - 8006300: b580 push {r7, lr} - 8006302: b084 sub sp, #16 - 8006304: af00 add r7, sp, #0 - 8006306: 6078 str r0, [r7, #4] - 8006308: 6039 str r1, [r7, #0] + 8006294: b580 push {r7, lr} + 8006296: b084 sub sp, #16 + 8006298: af00 add r7, sp, #0 + 800629a: 6078 str r0, [r7, #4] + 800629c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_COLOR); - 800630a: 2230 movs r2, #48 ; 0x30 - 800630c: 6839 ldr r1, [r7, #0] - 800630e: 6878 ldr r0, [r7, #4] - 8006310: f007 fd4e bl 800ddb0 - 8006314: 4603 mov r3, r0 - 8006316: 60fb str r3, [r7, #12] + 800629e: 2230 movs r2, #48 ; 0x30 + 80062a0: 6839 ldr r1, [r7, #0] + 80062a2: 6878 ldr r0, [r7, #4] + 80062a4: f007 fd4e bl 800dd44 + 80062a8: 4603 mov r3, r0 + 80062aa: 60fb str r3, [r7, #12] return v.color; - 8006318: 89bb ldrh r3, [r7, #12] + 80062ac: 89bb ldrh r3, [r7, #12] } - 800631a: 4618 mov r0, r3 - 800631c: 3710 adds r7, #16 - 800631e: 46bd mov sp, r7 - 8006320: bd80 pop {r7, pc} + 80062ae: 4618 mov r0, r3 + 80062b0: 3710 adds r7, #16 + 80062b2: 46bd mov sp, r7 + 80062b4: bd80 pop {r7, pc} -08006322 : +080062b6 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_COLOR_FILTERED); return v.color; } static inline lv_opa_t lv_obj_get_style_border_opa(const struct _lv_obj_t * obj, uint32_t part) { - 8006322: b580 push {r7, lr} - 8006324: b084 sub sp, #16 - 8006326: af00 add r7, sp, #0 - 8006328: 6078 str r0, [r7, #4] - 800632a: 6039 str r1, [r7, #0] + 80062b6: b580 push {r7, lr} + 80062b8: b084 sub sp, #16 + 80062ba: af00 add r7, sp, #0 + 80062bc: 6078 str r0, [r7, #4] + 80062be: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_OPA); - 800632c: 2231 movs r2, #49 ; 0x31 - 800632e: 6839 ldr r1, [r7, #0] - 8006330: 6878 ldr r0, [r7, #4] - 8006332: f007 fd3d bl 800ddb0 - 8006336: 4603 mov r3, r0 - 8006338: 60fb str r3, [r7, #12] + 80062c0: 2231 movs r2, #49 ; 0x31 + 80062c2: 6839 ldr r1, [r7, #0] + 80062c4: 6878 ldr r0, [r7, #4] + 80062c6: f007 fd3d bl 800dd44 + 80062ca: 4603 mov r3, r0 + 80062cc: 60fb str r3, [r7, #12] return (lv_opa_t)v.num; - 800633a: 68fb ldr r3, [r7, #12] - 800633c: b2db uxtb r3, r3 + 80062ce: 68fb ldr r3, [r7, #12] + 80062d0: b2db uxtb r3, r3 } - 800633e: 4618 mov r0, r3 - 8006340: 3710 adds r7, #16 - 8006342: 46bd mov sp, r7 - 8006344: bd80 pop {r7, pc} + 80062d2: 4618 mov r0, r3 + 80062d4: 3710 adds r7, #16 + 80062d6: 46bd mov sp, r7 + 80062d8: bd80 pop {r7, pc} -08006346 : +080062da : static inline lv_coord_t lv_obj_get_style_border_width(const struct _lv_obj_t * obj, uint32_t part) { - 8006346: b580 push {r7, lr} - 8006348: b084 sub sp, #16 - 800634a: af00 add r7, sp, #0 - 800634c: 6078 str r0, [r7, #4] - 800634e: 6039 str r1, [r7, #0] + 80062da: b580 push {r7, lr} + 80062dc: b084 sub sp, #16 + 80062de: af00 add r7, sp, #0 + 80062e0: 6078 str r0, [r7, #4] + 80062e2: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); - 8006350: f241 0232 movw r2, #4146 ; 0x1032 - 8006354: 6839 ldr r1, [r7, #0] - 8006356: 6878 ldr r0, [r7, #4] - 8006358: f007 fd2a bl 800ddb0 - 800635c: 4603 mov r3, r0 - 800635e: 60fb str r3, [r7, #12] + 80062e4: f241 0232 movw r2, #4146 ; 0x1032 + 80062e8: 6839 ldr r1, [r7, #0] + 80062ea: 6878 ldr r0, [r7, #4] + 80062ec: f007 fd2a bl 800dd44 + 80062f0: 4603 mov r3, r0 + 80062f2: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8006360: 68fb ldr r3, [r7, #12] - 8006362: b21b sxth r3, r3 + 80062f4: 68fb ldr r3, [r7, #12] + 80062f6: b21b sxth r3, r3 } - 8006364: 4618 mov r0, r3 - 8006366: 3710 adds r7, #16 - 8006368: 46bd mov sp, r7 - 800636a: bd80 pop {r7, pc} + 80062f8: 4618 mov r0, r3 + 80062fa: 3710 adds r7, #16 + 80062fc: 46bd mov sp, r7 + 80062fe: bd80 pop {r7, pc} -0800636c : +08006300 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_SIDE); return (lv_border_side_t)v.num; } static inline bool lv_obj_get_style_border_post(const struct _lv_obj_t * obj, uint32_t part) { - 800636c: b580 push {r7, lr} - 800636e: b084 sub sp, #16 - 8006370: af00 add r7, sp, #0 - 8006372: 6078 str r0, [r7, #4] - 8006374: 6039 str r1, [r7, #0] + 8006300: b580 push {r7, lr} + 8006302: b084 sub sp, #16 + 8006304: af00 add r7, sp, #0 + 8006306: 6078 str r0, [r7, #4] + 8006308: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_POST); - 8006376: 2234 movs r2, #52 ; 0x34 - 8006378: 6839 ldr r1, [r7, #0] - 800637a: 6878 ldr r0, [r7, #4] - 800637c: f007 fd18 bl 800ddb0 - 8006380: 4603 mov r3, r0 - 8006382: 60fb str r3, [r7, #12] + 800630a: 2234 movs r2, #52 ; 0x34 + 800630c: 6839 ldr r1, [r7, #0] + 800630e: 6878 ldr r0, [r7, #4] + 8006310: f007 fd18 bl 800dd44 + 8006314: 4603 mov r3, r0 + 8006316: 60fb str r3, [r7, #12] return (bool)v.num; - 8006384: 68fb ldr r3, [r7, #12] - 8006386: 2b00 cmp r3, #0 - 8006388: bf14 ite ne - 800638a: 2301 movne r3, #1 - 800638c: 2300 moveq r3, #0 - 800638e: b2db uxtb r3, r3 + 8006318: 68fb ldr r3, [r7, #12] + 800631a: 2b00 cmp r3, #0 + 800631c: bf14 ite ne + 800631e: 2301 movne r3, #1 + 8006320: 2300 moveq r3, #0 + 8006322: b2db uxtb r3, r3 } - 8006390: 4618 mov r0, r3 - 8006392: 3710 adds r7, #16 - 8006394: 46bd mov sp, r7 - 8006396: bd80 pop {r7, pc} + 8006324: 4618 mov r0, r3 + 8006326: 3710 adds r7, #16 + 8006328: 46bd mov sp, r7 + 800632a: bd80 pop {r7, pc} -08006398 : +0800632c : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_OUTLINE_PAD); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_shadow_width(const struct _lv_obj_t * obj, uint32_t part) { - 8006398: b580 push {r7, lr} - 800639a: b084 sub sp, #16 - 800639c: af00 add r7, sp, #0 - 800639e: 6078 str r0, [r7, #4] - 80063a0: 6039 str r1, [r7, #0] + 800632c: b580 push {r7, lr} + 800632e: b084 sub sp, #16 + 8006330: af00 add r7, sp, #0 + 8006332: 6078 str r0, [r7, #4] + 8006334: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_WIDTH); - 80063a2: f44f 6204 mov.w r2, #2112 ; 0x840 - 80063a6: 6839 ldr r1, [r7, #0] - 80063a8: 6878 ldr r0, [r7, #4] - 80063aa: f007 fd01 bl 800ddb0 - 80063ae: 4603 mov r3, r0 - 80063b0: 60fb str r3, [r7, #12] + 8006336: f44f 6204 mov.w r2, #2112 ; 0x840 + 800633a: 6839 ldr r1, [r7, #0] + 800633c: 6878 ldr r0, [r7, #4] + 800633e: f007 fd01 bl 800dd44 + 8006342: 4603 mov r3, r0 + 8006344: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80063b2: 68fb ldr r3, [r7, #12] - 80063b4: b21b sxth r3, r3 + 8006346: 68fb ldr r3, [r7, #12] + 8006348: b21b sxth r3, r3 } - 80063b6: 4618 mov r0, r3 - 80063b8: 3710 adds r7, #16 - 80063ba: 46bd mov sp, r7 - 80063bc: bd80 pop {r7, pc} + 800634a: 4618 mov r0, r3 + 800634c: 3710 adds r7, #16 + 800634e: 46bd mov sp, r7 + 8006350: bd80 pop {r7, pc} -080063be : +08006352 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_OFS_Y); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_shadow_spread(const struct _lv_obj_t * obj, uint32_t part) { - 80063be: b580 push {r7, lr} - 80063c0: b084 sub sp, #16 - 80063c2: af00 add r7, sp, #0 - 80063c4: 6078 str r0, [r7, #4] - 80063c6: 6039 str r1, [r7, #0] + 8006352: b580 push {r7, lr} + 8006354: b084 sub sp, #16 + 8006356: af00 add r7, sp, #0 + 8006358: 6078 str r0, [r7, #4] + 800635a: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_SPREAD); - 80063c8: f640 0243 movw r2, #2115 ; 0x843 + 800635c: f640 0243 movw r2, #2115 ; 0x843 + 8006360: 6839 ldr r1, [r7, #0] + 8006362: 6878 ldr r0, [r7, #4] + 8006364: f007 fcee bl 800dd44 + 8006368: 4603 mov r3, r0 + 800636a: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 800636c: 68fb ldr r3, [r7, #12] + 800636e: b21b sxth r3, r3 +} + 8006370: 4618 mov r0, r3 + 8006372: 3710 adds r7, #16 + 8006374: 46bd mov sp, r7 + 8006376: bd80 pop {r7, pc} + +08006378 : + +static inline lv_color_t lv_obj_get_style_shadow_color(const struct _lv_obj_t * obj, uint32_t part) +{ + 8006378: b580 push {r7, lr} + 800637a: b084 sub sp, #16 + 800637c: af00 add r7, sp, #0 + 800637e: 6078 str r0, [r7, #4] + 8006380: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_COLOR); + 8006382: 2244 movs r2, #68 ; 0x44 + 8006384: 6839 ldr r1, [r7, #0] + 8006386: 6878 ldr r0, [r7, #4] + 8006388: f007 fcdc bl 800dd44 + 800638c: 4603 mov r3, r0 + 800638e: 60fb str r3, [r7, #12] + return v.color; + 8006390: 89bb ldrh r3, [r7, #12] +} + 8006392: 4618 mov r0, r3 + 8006394: 3710 adds r7, #16 + 8006396: 46bd mov sp, r7 + 8006398: bd80 pop {r7, pc} + +0800639a : + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_COLOR_FILTERED); + return v.color; +} + +static inline lv_opa_t lv_obj_get_style_shadow_opa(const struct _lv_obj_t * obj, uint32_t part) +{ + 800639a: b580 push {r7, lr} + 800639c: b084 sub sp, #16 + 800639e: af00 add r7, sp, #0 + 80063a0: 6078 str r0, [r7, #4] + 80063a2: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_OPA); + 80063a4: f640 0245 movw r2, #2117 ; 0x845 + 80063a8: 6839 ldr r1, [r7, #0] + 80063aa: 6878 ldr r0, [r7, #4] + 80063ac: f007 fcca bl 800dd44 + 80063b0: 4603 mov r3, r0 + 80063b2: 60fb str r3, [r7, #12] + return (lv_opa_t)v.num; + 80063b4: 68fb ldr r3, [r7, #12] + 80063b6: b2db uxtb r3, r3 +} + 80063b8: 4618 mov r0, r3 + 80063ba: 3710 adds r7, #16 + 80063bc: 46bd mov sp, r7 + 80063be: bd80 pop {r7, pc} + +080063c0 : + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_ALIGN); + return (lv_text_align_t)v.num; +} + +static inline lv_coord_t lv_obj_get_style_radius(const struct _lv_obj_t * obj, uint32_t part) +{ + 80063c0: b580 push {r7, lr} + 80063c2: b084 sub sp, #16 + 80063c4: af00 add r7, sp, #0 + 80063c6: 6078 str r0, [r7, #4] + 80063c8: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_RADIUS); + 80063ca: 2260 movs r2, #96 ; 0x60 80063cc: 6839 ldr r1, [r7, #0] 80063ce: 6878 ldr r0, [r7, #4] - 80063d0: f007 fcee bl 800ddb0 + 80063d0: f007 fcb8 bl 800dd44 80063d4: 4603 mov r3, r0 80063d6: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; @@ -15802,4469 +15835,4457 @@ static inline lv_coord_t lv_obj_get_style_shadow_spread(const struct _lv_obj_t * 80063e0: 46bd mov sp, r7 80063e2: bd80 pop {r7, pc} -080063e4 : +080063e4 : -static inline lv_color_t lv_obj_get_style_shadow_color(const struct _lv_obj_t * obj, uint32_t part) +static inline bool lv_obj_get_style_clip_corner(const struct _lv_obj_t * obj, uint32_t part) { 80063e4: b580 push {r7, lr} 80063e6: b084 sub sp, #16 80063e8: af00 add r7, sp, #0 80063ea: 6078 str r0, [r7, #4] 80063ec: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_COLOR); - 80063ee: 2244 movs r2, #68 ; 0x44 + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_CLIP_CORNER); + 80063ee: 2261 movs r2, #97 ; 0x61 80063f0: 6839 ldr r1, [r7, #0] 80063f2: 6878 ldr r0, [r7, #4] - 80063f4: f007 fcdc bl 800ddb0 + 80063f4: f007 fca6 bl 800dd44 80063f8: 4603 mov r3, r0 80063fa: 60fb str r3, [r7, #12] - return v.color; - 80063fc: 89bb ldrh r3, [r7, #12] -} - 80063fe: 4618 mov r0, r3 - 8006400: 3710 adds r7, #16 - 8006402: 46bd mov sp, r7 - 8006404: bd80 pop {r7, pc} - -08006406 : - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_COLOR_FILTERED); - return v.color; -} - -static inline lv_opa_t lv_obj_get_style_shadow_opa(const struct _lv_obj_t * obj, uint32_t part) -{ - 8006406: b580 push {r7, lr} - 8006408: b084 sub sp, #16 - 800640a: af00 add r7, sp, #0 - 800640c: 6078 str r0, [r7, #4] - 800640e: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_OPA); - 8006410: f640 0245 movw r2, #2117 ; 0x845 - 8006414: 6839 ldr r1, [r7, #0] - 8006416: 6878 ldr r0, [r7, #4] - 8006418: f007 fcca bl 800ddb0 - 800641c: 4603 mov r3, r0 - 800641e: 60fb str r3, [r7, #12] - return (lv_opa_t)v.num; - 8006420: 68fb ldr r3, [r7, #12] - 8006422: b2db uxtb r3, r3 -} - 8006424: 4618 mov r0, r3 - 8006426: 3710 adds r7, #16 - 8006428: 46bd mov sp, r7 - 800642a: bd80 pop {r7, pc} - -0800642c : - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_ALIGN); - return (lv_text_align_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_radius(const struct _lv_obj_t * obj, uint32_t part) -{ - 800642c: b580 push {r7, lr} - 800642e: b084 sub sp, #16 - 8006430: af00 add r7, sp, #0 - 8006432: 6078 str r0, [r7, #4] - 8006434: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_RADIUS); - 8006436: 2260 movs r2, #96 ; 0x60 - 8006438: 6839 ldr r1, [r7, #0] - 800643a: 6878 ldr r0, [r7, #4] - 800643c: f007 fcb8 bl 800ddb0 - 8006440: 4603 mov r3, r0 - 8006442: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 8006444: 68fb ldr r3, [r7, #12] - 8006446: b21b sxth r3, r3 -} - 8006448: 4618 mov r0, r3 - 800644a: 3710 adds r7, #16 - 800644c: 46bd mov sp, r7 - 800644e: bd80 pop {r7, pc} - -08006450 : - -static inline bool lv_obj_get_style_clip_corner(const struct _lv_obj_t * obj, uint32_t part) -{ - 8006450: b580 push {r7, lr} - 8006452: b084 sub sp, #16 - 8006454: af00 add r7, sp, #0 - 8006456: 6078 str r0, [r7, #4] - 8006458: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_CLIP_CORNER); - 800645a: 2261 movs r2, #97 ; 0x61 - 800645c: 6839 ldr r1, [r7, #0] - 800645e: 6878 ldr r0, [r7, #4] - 8006460: f007 fca6 bl 800ddb0 - 8006464: 4603 mov r3, r0 - 8006466: 60fb str r3, [r7, #12] return (bool)v.num; - 8006468: 68fb ldr r3, [r7, #12] - 800646a: 2b00 cmp r3, #0 - 800646c: bf14 ite ne - 800646e: 2301 movne r3, #1 - 8006470: 2300 moveq r3, #0 - 8006472: b2db uxtb r3, r3 + 80063fc: 68fb ldr r3, [r7, #12] + 80063fe: 2b00 cmp r3, #0 + 8006400: bf14 ite ne + 8006402: 2301 movne r3, #1 + 8006404: 2300 moveq r3, #0 + 8006406: b2db uxtb r3, r3 } - 8006474: 4618 mov r0, r3 - 8006476: 3710 adds r7, #16 - 8006478: 46bd mov sp, r7 - 800647a: bd80 pop {r7, pc} + 8006408: 4618 mov r0, r3 + 800640a: 3710 adds r7, #16 + 800640c: 46bd mov sp, r7 + 800640e: bd80 pop {r7, pc} -0800647c : +08006410 : static inline lv_opa_t lv_obj_get_style_opa(const struct _lv_obj_t * obj, uint32_t part) { - 800647c: b580 push {r7, lr} - 800647e: b084 sub sp, #16 - 8006480: af00 add r7, sp, #0 - 8006482: 6078 str r0, [r7, #4] - 8006484: 6039 str r1, [r7, #0] + 8006410: b580 push {r7, lr} + 8006412: b084 sub sp, #16 + 8006414: af00 add r7, sp, #0 + 8006416: 6078 str r0, [r7, #4] + 8006418: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_OPA); - 8006486: f240 4262 movw r2, #1122 ; 0x462 - 800648a: 6839 ldr r1, [r7, #0] - 800648c: 6878 ldr r0, [r7, #4] - 800648e: f007 fc8f bl 800ddb0 - 8006492: 4603 mov r3, r0 - 8006494: 60fb str r3, [r7, #12] + 800641a: f240 4262 movw r2, #1122 ; 0x462 + 800641e: 6839 ldr r1, [r7, #0] + 8006420: 6878 ldr r0, [r7, #4] + 8006422: f007 fc8f bl 800dd44 + 8006426: 4603 mov r3, r0 + 8006428: 60fb str r3, [r7, #12] return (lv_opa_t)v.num; - 8006496: 68fb ldr r3, [r7, #12] - 8006498: b2db uxtb r3, r3 + 800642a: 68fb ldr r3, [r7, #12] + 800642c: b2db uxtb r3, r3 } - 800649a: 4618 mov r0, r3 - 800649c: 3710 adds r7, #16 - 800649e: 46bd mov sp, r7 - 80064a0: bd80 pop {r7, pc} + 800642e: 4618 mov r0, r3 + 8006430: 3710 adds r7, #16 + 8006432: 46bd mov sp, r7 + 8006434: bd80 pop {r7, pc} -080064a2 : +08006436 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSITION); return (const lv_style_transition_dsc_t *)v.ptr; } static inline lv_blend_mode_t lv_obj_get_style_blend_mode(const struct _lv_obj_t * obj, uint32_t part) { - 80064a2: b580 push {r7, lr} - 80064a4: b084 sub sp, #16 - 80064a6: af00 add r7, sp, #0 - 80064a8: 6078 str r0, [r7, #4] - 80064aa: 6039 str r1, [r7, #0] + 8006436: b580 push {r7, lr} + 8006438: b084 sub sp, #16 + 800643a: af00 add r7, sp, #0 + 800643c: 6078 str r0, [r7, #4] + 800643e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BLEND_MODE); - 80064ac: 2268 movs r2, #104 ; 0x68 - 80064ae: 6839 ldr r1, [r7, #0] - 80064b0: 6878 ldr r0, [r7, #4] - 80064b2: f007 fc7d bl 800ddb0 - 80064b6: 4603 mov r3, r0 - 80064b8: 60fb str r3, [r7, #12] + 8006440: 2268 movs r2, #104 ; 0x68 + 8006442: 6839 ldr r1, [r7, #0] + 8006444: 6878 ldr r0, [r7, #4] + 8006446: f007 fc7d bl 800dd44 + 800644a: 4603 mov r3, r0 + 800644c: 60fb str r3, [r7, #12] return (lv_blend_mode_t)v.num; - 80064ba: 68fb ldr r3, [r7, #12] - 80064bc: b2db uxtb r3, r3 + 800644e: 68fb ldr r3, [r7, #12] + 8006450: b2db uxtb r3, r3 } - 80064be: 4618 mov r0, r3 - 80064c0: 3710 adds r7, #16 - 80064c2: 46bd mov sp, r7 - 80064c4: bd80 pop {r7, pc} + 8006452: 4618 mov r0, r3 + 8006454: 3710 adds r7, #16 + 8006456: 46bd mov sp, r7 + 8006458: bd80 pop {r7, pc} -080064c6 : +0800645a : static inline uint16_t lv_obj_get_style_layout(const struct _lv_obj_t * obj, uint32_t part) { - 80064c6: b580 push {r7, lr} - 80064c8: b084 sub sp, #16 - 80064ca: af00 add r7, sp, #0 - 80064cc: 6078 str r0, [r7, #4] - 80064ce: 6039 str r1, [r7, #0] + 800645a: b580 push {r7, lr} + 800645c: b084 sub sp, #16 + 800645e: af00 add r7, sp, #0 + 8006460: 6078 str r0, [r7, #4] + 8006462: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LAYOUT); - 80064d0: f241 0269 movw r2, #4201 ; 0x1069 - 80064d4: 6839 ldr r1, [r7, #0] - 80064d6: 6878 ldr r0, [r7, #4] - 80064d8: f007 fc6a bl 800ddb0 - 80064dc: 4603 mov r3, r0 - 80064de: 60fb str r3, [r7, #12] + 8006464: f241 0269 movw r2, #4201 ; 0x1069 + 8006468: 6839 ldr r1, [r7, #0] + 800646a: 6878 ldr r0, [r7, #4] + 800646c: f007 fc6a bl 800dd44 + 8006470: 4603 mov r3, r0 + 8006472: 60fb str r3, [r7, #12] return (uint16_t)v.num; - 80064e0: 68fb ldr r3, [r7, #12] - 80064e2: b29b uxth r3, r3 + 8006474: 68fb ldr r3, [r7, #12] + 8006476: b29b uxth r3, r3 } - 80064e4: 4618 mov r0, r3 - 80064e6: 3710 adds r7, #16 - 80064e8: 46bd mov sp, r7 - 80064ea: bd80 pop {r7, pc} + 8006478: 4618 mov r0, r3 + 800647a: 3710 adds r7, #16 + 800647c: 46bd mov sp, r7 + 800647e: bd80 pop {r7, pc} -080064ec : +08006480 : { return lv_initialized; } void lv_init(void) { - 80064ec: b580 push {r7, lr} - 80064ee: b086 sub sp, #24 - 80064f0: af00 add r7, sp, #0 + 8006480: b580 push {r7, lr} + 8006482: b086 sub sp, #24 + 8006484: af00 add r7, sp, #0 /*Do nothing if already initialized*/ if(lv_initialized) { - 80064f2: 4b22 ldr r3, [pc, #136] ; (800657c ) - 80064f4: 781b ldrb r3, [r3, #0] - 80064f6: 2b00 cmp r3, #0 - 80064f8: d13b bne.n 8006572 + 8006486: 4b22 ldr r3, [pc, #136] ; (8006510 ) + 8006488: 781b ldrb r3, [r3, #0] + 800648a: 2b00 cmp r3, #0 + 800648c: d13b bne.n 8006506 } LV_LOG_INFO("begin"); /*Initialize the misc modules*/ lv_mem_init(); - 80064fa: f02c f9bd bl 8032878 + 800648e: f02c f9a9 bl 80327e4 _lv_timer_core_init(); - 80064fe: f02e fd1f bl 8034f40 <_lv_timer_core_init> + 8006492: f02e fd0b bl 8034eac <_lv_timer_core_init> _lv_fs_init(); - 8006502: f02b fb37 bl 8031b74 <_lv_fs_init> + 8006496: f02b fb23 bl 8031ae0 <_lv_fs_init> _lv_anim_core_init(); - 8006506: f02a f985 bl 8030814 <_lv_anim_core_init> + 800649a: f02a f971 bl 8030780 <_lv_anim_core_init> _lv_group_init(); - 800650a: f7fc fae9 bl 8002ae0 <_lv_group_init> + 800649e: f7fc fae9 bl 8002a74 <_lv_group_init> lv_draw_init(); - 800650e: f00a fddc bl 80110ca + 80064a2: f00a fdc8 bl 8011036 LV_LOG_ERROR("PXP init error. STOP.\n"); for(; ;) ; } #endif _lv_obj_style_init(); - 8006512: f007 f9e5 bl 800d8e0 <_lv_obj_style_init> + 80064a6: f007 f9e5 bl 800d874 <_lv_obj_style_init> _lv_ll_init(&LV_GC_ROOT(_lv_disp_ll), sizeof(lv_disp_t)); - 8006516: f44f 71ac mov.w r1, #344 ; 0x158 - 800651a: 4819 ldr r0, [pc, #100] ; (8006580 ) - 800651c: f02b fe20 bl 8032160 <_lv_ll_init> + 80064aa: f44f 71ac mov.w r1, #344 ; 0x158 + 80064ae: 4819 ldr r0, [pc, #100] ; (8006514 ) + 80064b0: f02b fe0c bl 80320cc <_lv_ll_init> _lv_ll_init(&LV_GC_ROOT(_lv_indev_ll), sizeof(lv_indev_t)); - 8006520: 2158 movs r1, #88 ; 0x58 - 8006522: 4818 ldr r0, [pc, #96] ; (8006584 ) - 8006524: f02b fe1c bl 8032160 <_lv_ll_init> + 80064b4: 2158 movs r1, #88 ; 0x58 + 80064b6: 4818 ldr r0, [pc, #96] ; (8006518 ) + 80064b8: f02b fe08 bl 80320cc <_lv_ll_init> /*Initialize the screen refresh system*/ _lv_refr_init(); - 8006528: f009 faa0 bl 800fa6c <_lv_refr_init> + 80064bc: f009 fa8c bl 800f9d8 <_lv_refr_init> _lv_img_decoder_init(); - 800652c: f010 fc76 bl 8016e1c <_lv_img_decoder_init> + 80064c0: f010 fc62 bl 8016d88 <_lv_img_decoder_init> #if LV_IMG_CACHE_DEF_SIZE lv_img_cache_set_size(LV_IMG_CACHE_DEF_SIZE); #endif /*Test if the IDE has UTF-8 encoding*/ char * txt = "Á"; - 8006530: 4b15 ldr r3, [pc, #84] ; (8006588 ) - 8006532: 617b str r3, [r7, #20] + 80064c4: 4b15 ldr r3, [pc, #84] ; (800651c ) + 80064c6: 617b str r3, [r7, #20] uint8_t * txt_u8 = (uint8_t *)txt; - 8006534: 697b ldr r3, [r7, #20] - 8006536: 613b str r3, [r7, #16] + 80064c8: 697b ldr r3, [r7, #20] + 80064ca: 613b str r3, [r7, #16] if(txt_u8[0] != 0xc3 || txt_u8[1] != 0x81 || txt_u8[2] != 0x00) { - 8006538: 693b ldr r3, [r7, #16] - 800653a: 781b ldrb r3, [r3, #0] - 800653c: 2bc3 cmp r3, #195 ; 0xc3 - 800653e: d103 bne.n 8006548 - 8006540: 693b ldr r3, [r7, #16] - 8006542: 3301 adds r3, #1 - 8006544: 781b ldrb r3, [r3, #0] - 8006546: 2b81 cmp r3, #129 ; 0x81 + 80064cc: 693b ldr r3, [r7, #16] + 80064ce: 781b ldrb r3, [r3, #0] + 80064d0: 2bc3 cmp r3, #195 ; 0xc3 + 80064d2: d103 bne.n 80064dc + 80064d4: 693b ldr r3, [r7, #16] + 80064d6: 3301 adds r3, #1 + 80064d8: 781b ldrb r3, [r3, #0] + 80064da: 2b81 cmp r3, #129 ; 0x81 LV_LOG_WARN("The strings have no UTF-8 encoding. Non-ASCII characters won't be displayed."); } uint32_t endianess_test = 0x11223344; - 8006548: 4b10 ldr r3, [pc, #64] ; (800658c ) - 800654a: 607b str r3, [r7, #4] + 80064dc: 4b10 ldr r3, [pc, #64] ; (8006520 ) + 80064de: 607b str r3, [r7, #4] uint8_t * endianess_test_p = (uint8_t *) &endianess_test; - 800654c: 1d3b adds r3, r7, #4 - 800654e: 60fb str r3, [r7, #12] + 80064e0: 1d3b adds r3, r7, #4 + 80064e2: 60fb str r3, [r7, #12] bool big_endian = endianess_test_p[0] == 0x11 ? true : false; - 8006550: 68fb ldr r3, [r7, #12] - 8006552: 781b ldrb r3, [r3, #0] - 8006554: 2b11 cmp r3, #17 - 8006556: bf0c ite eq - 8006558: 2301 moveq r3, #1 - 800655a: 2300 movne r3, #0 - 800655c: 72fb strb r3, [r7, #11] + 80064e4: 68fb ldr r3, [r7, #12] + 80064e6: 781b ldrb r3, [r3, #0] + 80064e8: 2b11 cmp r3, #17 + 80064ea: bf0c ite eq + 80064ec: 2301 moveq r3, #1 + 80064ee: 2300 movne r3, #0 + 80064f0: 72fb strb r3, [r7, #11] if(big_endian) { - 800655e: 7afb ldrb r3, [r7, #11] - 8006560: 2b00 cmp r3, #0 - 8006562: d000 beq.n 8006566 + 80064f2: 7afb ldrb r3, [r7, #11] + 80064f4: 2b00 cmp r3, #0 + 80064f6: d000 beq.n 80064fa LV_ASSERT_MSG(LV_BIG_ENDIAN_SYSTEM == 1, - 8006564: e7fe b.n 8006564 + 80064f8: e7fe b.n 80064f8 #if LV_LOG_LEVEL == LV_LOG_LEVEL_TRACE LV_LOG_WARN("Log level is set to 'Trace' which makes LVGL much slower"); #endif lv_extra_init(); - 8006566: f01d fb11 bl 8023b8c + 80064fa: f01d fafd bl 8023af8 lv_initialized = true; - 800656a: 4b04 ldr r3, [pc, #16] ; (800657c ) - 800656c: 2201 movs r2, #1 - 800656e: 701a strb r2, [r3, #0] - 8006570: e000 b.n 8006574 + 80064fe: 4b04 ldr r3, [pc, #16] ; (8006510 ) + 8006500: 2201 movs r2, #1 + 8006502: 701a strb r2, [r3, #0] + 8006504: e000 b.n 8006508 return; - 8006572: bf00 nop + 8006506: bf00 nop LV_LOG_TRACE("finished"); } - 8006574: 3718 adds r7, #24 - 8006576: 46bd mov sp, r7 - 8006578: bd80 pop {r7, pc} - 800657a: bf00 nop - 800657c: 20001afd .word 0x20001afd - 8006580: 20001d10 .word 0x20001d10 - 8006584: 20001d1c .word 0x20001d1c - 8006588: 08046c20 .word 0x08046c20 - 800658c: 11223344 .word 0x11223344 + 8006508: 3718 adds r7, #24 + 800650a: 46bd mov sp, r7 + 800650c: bd80 pop {r7, pc} + 800650e: bf00 nop + 8006510: 20001afd .word 0x20001afd + 8006514: 20001d10 .word 0x20001d10 + 8006518: 20001d1c .word 0x20001d1c + 800651c: 08046b78 .word 0x08046b78 + 8006520: 11223344 .word 0x11223344 -08006590 : +08006524 : #endif } #endif lv_obj_t * lv_obj_create(lv_obj_t * parent) { - 8006590: b580 push {r7, lr} - 8006592: b084 sub sp, #16 - 8006594: af00 add r7, sp, #0 - 8006596: 6078 str r0, [r7, #4] + 8006524: b580 push {r7, lr} + 8006526: b084 sub sp, #16 + 8006528: af00 add r7, sp, #0 + 800652a: 6078 str r0, [r7, #4] LV_LOG_INFO("begin"); lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); - 8006598: 6879 ldr r1, [r7, #4] - 800659a: 4806 ldr r0, [pc, #24] ; (80065b4 ) - 800659c: f001 fa59 bl 8007a52 - 80065a0: 60f8 str r0, [r7, #12] + 800652c: 6879 ldr r1, [r7, #4] + 800652e: 4806 ldr r0, [pc, #24] ; (8006548 ) + 8006530: f001 fa59 bl 80079e6 + 8006534: 60f8 str r0, [r7, #12] lv_obj_class_init_obj(obj); - 80065a2: 68f8 ldr r0, [r7, #12] - 80065a4: f001 fb07 bl 8007bb6 + 8006536: 68f8 ldr r0, [r7, #12] + 8006538: f001 fb07 bl 8007b4a return obj; - 80065a8: 68fb ldr r3, [r7, #12] + 800653c: 68fb ldr r3, [r7, #12] } - 80065aa: 4618 mov r0, r3 - 80065ac: 3710 adds r7, #16 - 80065ae: 46bd mov sp, r7 - 80065b0: bd80 pop {r7, pc} - 80065b2: bf00 nop - 80065b4: 0806ca34 .word 0x0806ca34 + 800653e: 4618 mov r0, r3 + 8006540: 3710 adds r7, #16 + 8006542: 46bd mov sp, r7 + 8006544: bd80 pop {r7, pc} + 8006546: bf00 nop + 8006548: 0806c98c .word 0x0806c98c -080065b8 : +0800654c : /*----------------- * Attribute set *----------------*/ void lv_obj_add_flag(lv_obj_t * obj, lv_obj_flag_t f) { - 80065b8: b580 push {r7, lr} - 80065ba: b088 sub sp, #32 - 80065bc: af00 add r7, sp, #0 - 80065be: 6078 str r0, [r7, #4] - 80065c0: 6039 str r1, [r7, #0] + 800654c: b580 push {r7, lr} + 800654e: b088 sub sp, #32 + 8006550: af00 add r7, sp, #0 + 8006552: 6078 str r0, [r7, #4] + 8006554: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); bool was_on_layout = lv_obj_is_layout_positioned(obj); - 80065c2: 6878 ldr r0, [r7, #4] - 80065c4: f003 f96a bl 800989c - 80065c8: 4603 mov r3, r0 - 80065ca: 77fb strb r3, [r7, #31] + 8006556: 6878 ldr r0, [r7, #4] + 8006558: f003 f96a bl 8009830 + 800655c: 4603 mov r3, r0 + 800655e: 77fb strb r3, [r7, #31] if(f & LV_OBJ_FLAG_HIDDEN) lv_obj_invalidate(obj); - 80065cc: 683b ldr r3, [r7, #0] - 80065ce: f003 0301 and.w r3, r3, #1 - 80065d2: 2b00 cmp r3, #0 - 80065d4: d002 beq.n 80065dc - 80065d6: 6878 ldr r0, [r7, #4] - 80065d8: f004 fa6b bl 800aab2 + 8006560: 683b ldr r3, [r7, #0] + 8006562: f003 0301 and.w r3, r3, #1 + 8006566: 2b00 cmp r3, #0 + 8006568: d002 beq.n 8006570 + 800656a: 6878 ldr r0, [r7, #4] + 800656c: f004 fa6b bl 800aa46 obj->flags |= f; - 80065dc: 687b ldr r3, [r7, #4] - 80065de: 69da ldr r2, [r3, #28] - 80065e0: 683b ldr r3, [r7, #0] - 80065e2: 431a orrs r2, r3 - 80065e4: 687b ldr r3, [r7, #4] - 80065e6: 61da str r2, [r3, #28] + 8006570: 687b ldr r3, [r7, #4] + 8006572: 69da ldr r2, [r3, #28] + 8006574: 683b ldr r3, [r7, #0] + 8006576: 431a orrs r2, r3 + 8006578: 687b ldr r3, [r7, #4] + 800657a: 61da str r2, [r3, #28] if(f & LV_OBJ_FLAG_HIDDEN) { - 80065e8: 683b ldr r3, [r7, #0] - 80065ea: f003 0301 and.w r3, r3, #1 - 80065ee: 2b00 cmp r3, #0 - 80065f0: d002 beq.n 80065f8 + 800657c: 683b ldr r3, [r7, #0] + 800657e: f003 0301 and.w r3, r3, #1 + 8006582: 2b00 cmp r3, #0 + 8006584: d002 beq.n 800658c lv_obj_invalidate(obj); - 80065f2: 6878 ldr r0, [r7, #4] - 80065f4: f004 fa5d bl 800aab2 + 8006586: 6878 ldr r0, [r7, #4] + 8006588: f004 fa5d bl 800aa46 } if((was_on_layout != lv_obj_is_layout_positioned(obj)) || (f & (LV_OBJ_FLAG_LAYOUT_1 | LV_OBJ_FLAG_LAYOUT_2))) { - 80065f8: 6878 ldr r0, [r7, #4] - 80065fa: f003 f94f bl 800989c - 80065fe: 4603 mov r3, r0 - 8006600: 461a mov r2, r3 - 8006602: 7ffb ldrb r3, [r7, #31] - 8006604: 4293 cmp r3, r2 - 8006606: d104 bne.n 8006612 - 8006608: 683b ldr r3, [r7, #0] - 800660a: f003 73c0 and.w r3, r3, #25165824 ; 0x1800000 - 800660e: 2b00 cmp r3, #0 - 8006610: d009 beq.n 8006626 + 800658c: 6878 ldr r0, [r7, #4] + 800658e: f003 f94f bl 8009830 + 8006592: 4603 mov r3, r0 + 8006594: 461a mov r2, r3 + 8006596: 7ffb ldrb r3, [r7, #31] + 8006598: 4293 cmp r3, r2 + 800659a: d104 bne.n 80065a6 + 800659c: 683b ldr r3, [r7, #0] + 800659e: f003 73c0 and.w r3, r3, #25165824 ; 0x1800000 + 80065a2: 2b00 cmp r3, #0 + 80065a4: d009 beq.n 80065ba lv_obj_mark_layout_as_dirty(lv_obj_get_parent(obj)); - 8006612: 6878 ldr r0, [r7, #4] - 8006614: f009 f87a bl 800f70c - 8006618: 4603 mov r3, r0 - 800661a: 4618 mov r0, r3 - 800661c: f003 f966 bl 80098ec + 80065a6: 6878 ldr r0, [r7, #4] + 80065a8: f009 f866 bl 800f678 + 80065ac: 4603 mov r3, r0 + 80065ae: 4618 mov r0, r3 + 80065b0: f003 f966 bl 8009880 lv_obj_mark_layout_as_dirty(obj); - 8006620: 6878 ldr r0, [r7, #4] - 8006622: f003 f963 bl 80098ec + 80065b4: 6878 ldr r0, [r7, #4] + 80065b6: f003 f963 bl 8009880 } if(f & LV_OBJ_FLAG_SCROLLABLE) { - 8006626: 683b ldr r3, [r7, #0] - 8006628: f003 0310 and.w r3, r3, #16 - 800662c: 2b00 cmp r3, #0 - 800662e: d013 beq.n 8006658 + 80065ba: 683b ldr r3, [r7, #0] + 80065bc: f003 0310 and.w r3, r3, #16 + 80065c0: 2b00 cmp r3, #0 + 80065c2: d013 beq.n 80065ec lv_area_t hor_area, ver_area; lv_obj_get_scrollbar_area(obj, &hor_area, &ver_area); - 8006630: f107 020c add.w r2, r7, #12 - 8006634: f107 0314 add.w r3, r7, #20 - 8006638: 4619 mov r1, r3 - 800663a: 6878 ldr r0, [r7, #4] - 800663c: f005 fe56 bl 800c2ec + 80065c4: f107 020c add.w r2, r7, #12 + 80065c8: f107 0314 add.w r3, r7, #20 + 80065cc: 4619 mov r1, r3 + 80065ce: 6878 ldr r0, [r7, #4] + 80065d0: f005 fe56 bl 800c280 lv_obj_invalidate_area(obj, &hor_area); - 8006640: f107 0314 add.w r3, r7, #20 - 8006644: 4619 mov r1, r3 - 8006646: 6878 ldr r0, [r7, #4] - 8006648: f004 fa0f bl 800aa6a + 80065d4: f107 0314 add.w r3, r7, #20 + 80065d8: 4619 mov r1, r3 + 80065da: 6878 ldr r0, [r7, #4] + 80065dc: f004 fa0f bl 800a9fe lv_obj_invalidate_area(obj, &ver_area); - 800664c: f107 030c add.w r3, r7, #12 - 8006650: 4619 mov r1, r3 - 8006652: 6878 ldr r0, [r7, #4] - 8006654: f004 fa09 bl 800aa6a + 80065e0: f107 030c add.w r3, r7, #12 + 80065e4: 4619 mov r1, r3 + 80065e6: 6878 ldr r0, [r7, #4] + 80065e8: f004 fa09 bl 800a9fe } } - 8006658: bf00 nop - 800665a: 3720 adds r7, #32 - 800665c: 46bd mov sp, r7 - 800665e: bd80 pop {r7, pc} + 80065ec: bf00 nop + 80065ee: 3720 adds r7, #32 + 80065f0: 46bd mov sp, r7 + 80065f2: bd80 pop {r7, pc} -08006660 : +080065f4 : void lv_obj_clear_flag(lv_obj_t * obj, lv_obj_flag_t f) { - 8006660: b580 push {r7, lr} - 8006662: b088 sub sp, #32 - 8006664: af00 add r7, sp, #0 - 8006666: 6078 str r0, [r7, #4] - 8006668: 6039 str r1, [r7, #0] + 80065f4: b580 push {r7, lr} + 80065f6: b088 sub sp, #32 + 80065f8: af00 add r7, sp, #0 + 80065fa: 6078 str r0, [r7, #4] + 80065fc: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); bool was_on_layout = lv_obj_is_layout_positioned(obj); - 800666a: 6878 ldr r0, [r7, #4] - 800666c: f003 f916 bl 800989c - 8006670: 4603 mov r3, r0 - 8006672: 77fb strb r3, [r7, #31] + 80065fe: 6878 ldr r0, [r7, #4] + 8006600: f003 f916 bl 8009830 + 8006604: 4603 mov r3, r0 + 8006606: 77fb strb r3, [r7, #31] if(f & LV_OBJ_FLAG_SCROLLABLE) { - 8006674: 683b ldr r3, [r7, #0] - 8006676: f003 0310 and.w r3, r3, #16 - 800667a: 2b00 cmp r3, #0 - 800667c: d013 beq.n 80066a6 + 8006608: 683b ldr r3, [r7, #0] + 800660a: f003 0310 and.w r3, r3, #16 + 800660e: 2b00 cmp r3, #0 + 8006610: d013 beq.n 800663a lv_area_t hor_area, ver_area; lv_obj_get_scrollbar_area(obj, &hor_area, &ver_area); - 800667e: f107 020c add.w r2, r7, #12 - 8006682: f107 0314 add.w r3, r7, #20 - 8006686: 4619 mov r1, r3 - 8006688: 6878 ldr r0, [r7, #4] - 800668a: f005 fe2f bl 800c2ec + 8006612: f107 020c add.w r2, r7, #12 + 8006616: f107 0314 add.w r3, r7, #20 + 800661a: 4619 mov r1, r3 + 800661c: 6878 ldr r0, [r7, #4] + 800661e: f005 fe2f bl 800c280 lv_obj_invalidate_area(obj, &hor_area); - 800668e: f107 0314 add.w r3, r7, #20 - 8006692: 4619 mov r1, r3 - 8006694: 6878 ldr r0, [r7, #4] - 8006696: f004 f9e8 bl 800aa6a + 8006622: f107 0314 add.w r3, r7, #20 + 8006626: 4619 mov r1, r3 + 8006628: 6878 ldr r0, [r7, #4] + 800662a: f004 f9e8 bl 800a9fe lv_obj_invalidate_area(obj, &ver_area); - 800669a: f107 030c add.w r3, r7, #12 - 800669e: 4619 mov r1, r3 - 80066a0: 6878 ldr r0, [r7, #4] - 80066a2: f004 f9e2 bl 800aa6a + 800662e: f107 030c add.w r3, r7, #12 + 8006632: 4619 mov r1, r3 + 8006634: 6878 ldr r0, [r7, #4] + 8006636: f004 f9e2 bl 800a9fe } obj->flags &= (~f); - 80066a6: 687b ldr r3, [r7, #4] - 80066a8: 69da ldr r2, [r3, #28] - 80066aa: 683b ldr r3, [r7, #0] - 80066ac: 43db mvns r3, r3 - 80066ae: 401a ands r2, r3 - 80066b0: 687b ldr r3, [r7, #4] - 80066b2: 61da str r2, [r3, #28] + 800663a: 687b ldr r3, [r7, #4] + 800663c: 69da ldr r2, [r3, #28] + 800663e: 683b ldr r3, [r7, #0] + 8006640: 43db mvns r3, r3 + 8006642: 401a ands r2, r3 + 8006644: 687b ldr r3, [r7, #4] + 8006646: 61da str r2, [r3, #28] if(f & LV_OBJ_FLAG_HIDDEN) { - 80066b4: 683b ldr r3, [r7, #0] - 80066b6: f003 0301 and.w r3, r3, #1 - 80066ba: 2b00 cmp r3, #0 - 80066bc: d012 beq.n 80066e4 + 8006648: 683b ldr r3, [r7, #0] + 800664a: f003 0301 and.w r3, r3, #1 + 800664e: 2b00 cmp r3, #0 + 8006650: d012 beq.n 8006678 lv_obj_invalidate(obj); - 80066be: 6878 ldr r0, [r7, #4] - 80066c0: f004 f9f7 bl 800aab2 + 8006652: 6878 ldr r0, [r7, #4] + 8006654: f004 f9f7 bl 800aa46 if(lv_obj_is_layout_positioned(obj)) { - 80066c4: 6878 ldr r0, [r7, #4] - 80066c6: f003 f8e9 bl 800989c - 80066ca: 4603 mov r3, r0 - 80066cc: 2b00 cmp r3, #0 - 80066ce: d009 beq.n 80066e4 + 8006658: 6878 ldr r0, [r7, #4] + 800665a: f003 f8e9 bl 8009830 + 800665e: 4603 mov r3, r0 + 8006660: 2b00 cmp r3, #0 + 8006662: d009 beq.n 8006678 lv_obj_mark_layout_as_dirty(lv_obj_get_parent(obj)); - 80066d0: 6878 ldr r0, [r7, #4] - 80066d2: f009 f81b bl 800f70c - 80066d6: 4603 mov r3, r0 - 80066d8: 4618 mov r0, r3 - 80066da: f003 f907 bl 80098ec + 8006664: 6878 ldr r0, [r7, #4] + 8006666: f009 f807 bl 800f678 + 800666a: 4603 mov r3, r0 + 800666c: 4618 mov r0, r3 + 800666e: f003 f907 bl 8009880 lv_obj_mark_layout_as_dirty(obj); - 80066de: 6878 ldr r0, [r7, #4] - 80066e0: f003 f904 bl 80098ec + 8006672: 6878 ldr r0, [r7, #4] + 8006674: f003 f904 bl 8009880 } } if((was_on_layout != lv_obj_is_layout_positioned(obj)) || (f & (LV_OBJ_FLAG_LAYOUT_1 | LV_OBJ_FLAG_LAYOUT_2))) { - 80066e4: 6878 ldr r0, [r7, #4] - 80066e6: f003 f8d9 bl 800989c - 80066ea: 4603 mov r3, r0 - 80066ec: 461a mov r2, r3 - 80066ee: 7ffb ldrb r3, [r7, #31] - 80066f0: 4293 cmp r3, r2 - 80066f2: d104 bne.n 80066fe - 80066f4: 683b ldr r3, [r7, #0] - 80066f6: f003 73c0 and.w r3, r3, #25165824 ; 0x1800000 - 80066fa: 2b00 cmp r3, #0 - 80066fc: d006 beq.n 800670c + 8006678: 6878 ldr r0, [r7, #4] + 800667a: f003 f8d9 bl 8009830 + 800667e: 4603 mov r3, r0 + 8006680: 461a mov r2, r3 + 8006682: 7ffb ldrb r3, [r7, #31] + 8006684: 4293 cmp r3, r2 + 8006686: d104 bne.n 8006692 + 8006688: 683b ldr r3, [r7, #0] + 800668a: f003 73c0 and.w r3, r3, #25165824 ; 0x1800000 + 800668e: 2b00 cmp r3, #0 + 8006690: d006 beq.n 80066a0 lv_obj_mark_layout_as_dirty(lv_obj_get_parent(obj)); - 80066fe: 6878 ldr r0, [r7, #4] - 8006700: f009 f804 bl 800f70c - 8006704: 4603 mov r3, r0 - 8006706: 4618 mov r0, r3 - 8006708: f003 f8f0 bl 80098ec + 8006692: 6878 ldr r0, [r7, #4] + 8006694: f008 fff0 bl 800f678 + 8006698: 4603 mov r3, r0 + 800669a: 4618 mov r0, r3 + 800669c: f003 f8f0 bl 8009880 } } - 800670c: bf00 nop - 800670e: 3720 adds r7, #32 - 8006710: 46bd mov sp, r7 - 8006712: bd80 pop {r7, pc} + 80066a0: bf00 nop + 80066a2: 3720 adds r7, #32 + 80066a4: 46bd mov sp, r7 + 80066a6: bd80 pop {r7, pc} -08006714 : +080066a8 : void lv_obj_add_state(lv_obj_t * obj, lv_state_t state) { - 8006714: b580 push {r7, lr} - 8006716: b084 sub sp, #16 - 8006718: af00 add r7, sp, #0 - 800671a: 6078 str r0, [r7, #4] - 800671c: 460b mov r3, r1 - 800671e: 807b strh r3, [r7, #2] + 80066a8: b580 push {r7, lr} + 80066aa: b084 sub sp, #16 + 80066ac: af00 add r7, sp, #0 + 80066ae: 6078 str r0, [r7, #4] + 80066b0: 460b mov r3, r1 + 80066b2: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_state_t new_state = obj->state | state; - 8006720: 687b ldr r3, [r7, #4] - 8006722: 8c1a ldrh r2, [r3, #32] - 8006724: 887b ldrh r3, [r7, #2] - 8006726: 4313 orrs r3, r2 - 8006728: 81fb strh r3, [r7, #14] + 80066b4: 687b ldr r3, [r7, #4] + 80066b6: 8c1a ldrh r2, [r3, #32] + 80066b8: 887b ldrh r3, [r7, #2] + 80066ba: 4313 orrs r3, r2 + 80066bc: 81fb strh r3, [r7, #14] if(obj->state != new_state) { - 800672a: 687b ldr r3, [r7, #4] - 800672c: 8c1b ldrh r3, [r3, #32] - 800672e: 89fa ldrh r2, [r7, #14] - 8006730: 429a cmp r2, r3 - 8006732: d004 beq.n 800673e + 80066be: 687b ldr r3, [r7, #4] + 80066c0: 8c1b ldrh r3, [r3, #32] + 80066c2: 89fa ldrh r2, [r7, #14] + 80066c4: 429a cmp r2, r3 + 80066c6: d004 beq.n 80066d2 lv_obj_set_state(obj, new_state); - 8006734: 89fb ldrh r3, [r7, #14] - 8006736: 4619 mov r1, r3 - 8006738: 6878 ldr r0, [r7, #4] - 800673a: f001 f81e bl 800777a + 80066c8: 89fb ldrh r3, [r7, #14] + 80066ca: 4619 mov r1, r3 + 80066cc: 6878 ldr r0, [r7, #4] + 80066ce: f001 f81e bl 800770e } } - 800673e: bf00 nop - 8006740: 3710 adds r7, #16 - 8006742: 46bd mov sp, r7 - 8006744: bd80 pop {r7, pc} + 80066d2: bf00 nop + 80066d4: 3710 adds r7, #16 + 80066d6: 46bd mov sp, r7 + 80066d8: bd80 pop {r7, pc} -08006746 : +080066da : void lv_obj_clear_state(lv_obj_t * obj, lv_state_t state) { - 8006746: b580 push {r7, lr} - 8006748: b084 sub sp, #16 - 800674a: af00 add r7, sp, #0 - 800674c: 6078 str r0, [r7, #4] - 800674e: 460b mov r3, r1 - 8006750: 807b strh r3, [r7, #2] + 80066da: b580 push {r7, lr} + 80066dc: b084 sub sp, #16 + 80066de: af00 add r7, sp, #0 + 80066e0: 6078 str r0, [r7, #4] + 80066e2: 460b mov r3, r1 + 80066e4: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_state_t new_state = obj->state & (~state); - 8006752: 687b ldr r3, [r7, #4] - 8006754: 8c1b ldrh r3, [r3, #32] - 8006756: b21a sxth r2, r3 - 8006758: f9b7 3002 ldrsh.w r3, [r7, #2] - 800675c: 43db mvns r3, r3 - 800675e: b21b sxth r3, r3 - 8006760: 4013 ands r3, r2 - 8006762: b21b sxth r3, r3 - 8006764: 81fb strh r3, [r7, #14] + 80066e6: 687b ldr r3, [r7, #4] + 80066e8: 8c1b ldrh r3, [r3, #32] + 80066ea: b21a sxth r2, r3 + 80066ec: f9b7 3002 ldrsh.w r3, [r7, #2] + 80066f0: 43db mvns r3, r3 + 80066f2: b21b sxth r3, r3 + 80066f4: 4013 ands r3, r2 + 80066f6: b21b sxth r3, r3 + 80066f8: 81fb strh r3, [r7, #14] if(obj->state != new_state) { - 8006766: 687b ldr r3, [r7, #4] - 8006768: 8c1b ldrh r3, [r3, #32] - 800676a: 89fa ldrh r2, [r7, #14] - 800676c: 429a cmp r2, r3 - 800676e: d004 beq.n 800677a + 80066fa: 687b ldr r3, [r7, #4] + 80066fc: 8c1b ldrh r3, [r3, #32] + 80066fe: 89fa ldrh r2, [r7, #14] + 8006700: 429a cmp r2, r3 + 8006702: d004 beq.n 800670e lv_obj_set_state(obj, new_state); - 8006770: 89fb ldrh r3, [r7, #14] - 8006772: 4619 mov r1, r3 - 8006774: 6878 ldr r0, [r7, #4] - 8006776: f001 f800 bl 800777a + 8006704: 89fb ldrh r3, [r7, #14] + 8006706: 4619 mov r1, r3 + 8006708: 6878 ldr r0, [r7, #4] + 800670a: f001 f800 bl 800770e } } - 800677a: bf00 nop - 800677c: 3710 adds r7, #16 - 800677e: 46bd mov sp, r7 - 8006780: bd80 pop {r7, pc} + 800670e: bf00 nop + 8006710: 3710 adds r7, #16 + 8006712: 46bd mov sp, r7 + 8006714: bd80 pop {r7, pc} -08006782 : +08006716 : /*======================= * Getter functions *======================*/ bool lv_obj_has_flag(const lv_obj_t * obj, lv_obj_flag_t f) { - 8006782: b480 push {r7} - 8006784: b083 sub sp, #12 - 8006786: af00 add r7, sp, #0 - 8006788: 6078 str r0, [r7, #4] - 800678a: 6039 str r1, [r7, #0] + 8006716: b480 push {r7} + 8006718: b083 sub sp, #12 + 800671a: af00 add r7, sp, #0 + 800671c: 6078 str r0, [r7, #4] + 800671e: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); return (obj->flags & f) == f ? true : false; - 800678c: 687b ldr r3, [r7, #4] - 800678e: 69da ldr r2, [r3, #28] - 8006790: 683b ldr r3, [r7, #0] - 8006792: 4013 ands r3, r2 - 8006794: 683a ldr r2, [r7, #0] - 8006796: 429a cmp r2, r3 - 8006798: bf0c ite eq - 800679a: 2301 moveq r3, #1 - 800679c: 2300 movne r3, #0 - 800679e: b2db uxtb r3, r3 + 8006720: 687b ldr r3, [r7, #4] + 8006722: 69da ldr r2, [r3, #28] + 8006724: 683b ldr r3, [r7, #0] + 8006726: 4013 ands r3, r2 + 8006728: 683a ldr r2, [r7, #0] + 800672a: 429a cmp r2, r3 + 800672c: bf0c ite eq + 800672e: 2301 moveq r3, #1 + 8006730: 2300 movne r3, #0 + 8006732: b2db uxtb r3, r3 } - 80067a0: 4618 mov r0, r3 - 80067a2: 370c adds r7, #12 - 80067a4: 46bd mov sp, r7 - 80067a6: bc80 pop {r7} - 80067a8: 4770 bx lr + 8006734: 4618 mov r0, r3 + 8006736: 370c adds r7, #12 + 8006738: 46bd mov sp, r7 + 800673a: bc80 pop {r7} + 800673c: 4770 bx lr -080067aa : +0800673e : bool lv_obj_has_flag_any(const lv_obj_t * obj, lv_obj_flag_t f) { - 80067aa: b480 push {r7} - 80067ac: b083 sub sp, #12 - 80067ae: af00 add r7, sp, #0 - 80067b0: 6078 str r0, [r7, #4] - 80067b2: 6039 str r1, [r7, #0] + 800673e: b480 push {r7} + 8006740: b083 sub sp, #12 + 8006742: af00 add r7, sp, #0 + 8006744: 6078 str r0, [r7, #4] + 8006746: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); return (obj->flags & f) ? true : false; - 80067b4: 687b ldr r3, [r7, #4] - 80067b6: 69da ldr r2, [r3, #28] - 80067b8: 683b ldr r3, [r7, #0] - 80067ba: 4013 ands r3, r2 - 80067bc: 2b00 cmp r3, #0 - 80067be: bf14 ite ne - 80067c0: 2301 movne r3, #1 - 80067c2: 2300 moveq r3, #0 - 80067c4: b2db uxtb r3, r3 + 8006748: 687b ldr r3, [r7, #4] + 800674a: 69da ldr r2, [r3, #28] + 800674c: 683b ldr r3, [r7, #0] + 800674e: 4013 ands r3, r2 + 8006750: 2b00 cmp r3, #0 + 8006752: bf14 ite ne + 8006754: 2301 movne r3, #1 + 8006756: 2300 moveq r3, #0 + 8006758: b2db uxtb r3, r3 } - 80067c6: 4618 mov r0, r3 - 80067c8: 370c adds r7, #12 - 80067ca: 46bd mov sp, r7 - 80067cc: bc80 pop {r7} - 80067ce: 4770 bx lr + 800675a: 4618 mov r0, r3 + 800675c: 370c adds r7, #12 + 800675e: 46bd mov sp, r7 + 8006760: bc80 pop {r7} + 8006762: 4770 bx lr -080067d0 : +08006764 : lv_state_t lv_obj_get_state(const lv_obj_t * obj) { - 80067d0: b480 push {r7} - 80067d2: b083 sub sp, #12 - 80067d4: af00 add r7, sp, #0 - 80067d6: 6078 str r0, [r7, #4] + 8006764: b480 push {r7} + 8006766: b083 sub sp, #12 + 8006768: af00 add r7, sp, #0 + 800676a: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); return obj->state; - 80067d8: 687b ldr r3, [r7, #4] - 80067da: 8c1b ldrh r3, [r3, #32] + 800676c: 687b ldr r3, [r7, #4] + 800676e: 8c1b ldrh r3, [r3, #32] } - 80067dc: 4618 mov r0, r3 - 80067de: 370c adds r7, #12 - 80067e0: 46bd mov sp, r7 - 80067e2: bc80 pop {r7} - 80067e4: 4770 bx lr + 8006770: 4618 mov r0, r3 + 8006772: 370c adds r7, #12 + 8006774: 46bd mov sp, r7 + 8006776: bc80 pop {r7} + 8006778: 4770 bx lr -080067e6 : +0800677a : bool lv_obj_has_state(const lv_obj_t * obj, lv_state_t state) { - 80067e6: b480 push {r7} - 80067e8: b083 sub sp, #12 - 80067ea: af00 add r7, sp, #0 - 80067ec: 6078 str r0, [r7, #4] - 80067ee: 460b mov r3, r1 - 80067f0: 807b strh r3, [r7, #2] + 800677a: b480 push {r7} + 800677c: b083 sub sp, #12 + 800677e: af00 add r7, sp, #0 + 8006780: 6078 str r0, [r7, #4] + 8006782: 460b mov r3, r1 + 8006784: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); return obj->state & state ? true : false; - 80067f2: 687b ldr r3, [r7, #4] - 80067f4: 8c1a ldrh r2, [r3, #32] - 80067f6: 887b ldrh r3, [r7, #2] - 80067f8: 4013 ands r3, r2 - 80067fa: b29b uxth r3, r3 - 80067fc: 2b00 cmp r3, #0 - 80067fe: bf14 ite ne - 8006800: 2301 movne r3, #1 - 8006802: 2300 moveq r3, #0 - 8006804: b2db uxtb r3, r3 + 8006786: 687b ldr r3, [r7, #4] + 8006788: 8c1a ldrh r2, [r3, #32] + 800678a: 887b ldrh r3, [r7, #2] + 800678c: 4013 ands r3, r2 + 800678e: b29b uxth r3, r3 + 8006790: 2b00 cmp r3, #0 + 8006792: bf14 ite ne + 8006794: 2301 movne r3, #1 + 8006796: 2300 moveq r3, #0 + 8006798: b2db uxtb r3, r3 } - 8006806: 4618 mov r0, r3 - 8006808: 370c adds r7, #12 - 800680a: 46bd mov sp, r7 - 800680c: bc80 pop {r7} - 800680e: 4770 bx lr + 800679a: 4618 mov r0, r3 + 800679c: 370c adds r7, #12 + 800679e: 46bd mov sp, r7 + 80067a0: bc80 pop {r7} + 80067a2: 4770 bx lr -08006810 : +080067a4 : void * lv_obj_get_group(const lv_obj_t * obj) { - 8006810: b480 push {r7} - 8006812: b083 sub sp, #12 - 8006814: af00 add r7, sp, #0 - 8006816: 6078 str r0, [r7, #4] + 80067a4: b480 push {r7} + 80067a6: b083 sub sp, #12 + 80067a8: af00 add r7, sp, #0 + 80067aa: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); if(obj->spec_attr) return obj->spec_attr->group_p; - 8006818: 687b ldr r3, [r7, #4] - 800681a: 689b ldr r3, [r3, #8] - 800681c: 2b00 cmp r3, #0 - 800681e: d003 beq.n 8006828 - 8006820: 687b ldr r3, [r7, #4] - 8006822: 689b ldr r3, [r3, #8] - 8006824: 689b ldr r3, [r3, #8] - 8006826: e000 b.n 800682a + 80067ac: 687b ldr r3, [r7, #4] + 80067ae: 689b ldr r3, [r3, #8] + 80067b0: 2b00 cmp r3, #0 + 80067b2: d003 beq.n 80067bc + 80067b4: 687b ldr r3, [r7, #4] + 80067b6: 689b ldr r3, [r3, #8] + 80067b8: 689b ldr r3, [r3, #8] + 80067ba: e000 b.n 80067be else return NULL; - 8006828: 2300 movs r3, #0 + 80067bc: 2300 movs r3, #0 } - 800682a: 4618 mov r0, r3 - 800682c: 370c adds r7, #12 - 800682e: 46bd mov sp, r7 - 8006830: bc80 pop {r7} - 8006832: 4770 bx lr + 80067be: 4618 mov r0, r3 + 80067c0: 370c adds r7, #12 + 80067c2: 46bd mov sp, r7 + 80067c4: bc80 pop {r7} + 80067c6: 4770 bx lr -08006834 : +080067c8 : /*------------------- * OTHER FUNCTIONS *------------------*/ void lv_obj_allocate_spec_attr(lv_obj_t * obj) { - 8006834: b580 push {r7, lr} - 8006836: b082 sub sp, #8 - 8006838: af00 add r7, sp, #0 - 800683a: 6078 str r0, [r7, #4] + 80067c8: b580 push {r7, lr} + 80067ca: b082 sub sp, #8 + 80067cc: af00 add r7, sp, #0 + 80067ce: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); if(obj->spec_attr == NULL) { - 800683c: 687b ldr r3, [r7, #4] - 800683e: 689b ldr r3, [r3, #8] - 8006840: 2b00 cmp r3, #0 - 8006842: d127 bne.n 8006894 + 80067d0: 687b ldr r3, [r7, #4] + 80067d2: 689b ldr r3, [r3, #8] + 80067d4: 2b00 cmp r3, #0 + 80067d6: d127 bne.n 8006828 static uint32_t x = 0; x++; - 8006844: 4b15 ldr r3, [pc, #84] ; (800689c ) - 8006846: 681b ldr r3, [r3, #0] - 8006848: 3301 adds r3, #1 - 800684a: 4a14 ldr r2, [pc, #80] ; (800689c ) - 800684c: 6013 str r3, [r2, #0] + 80067d8: 4b15 ldr r3, [pc, #84] ; (8006830 ) + 80067da: 681b ldr r3, [r3, #0] + 80067dc: 3301 adds r3, #1 + 80067de: 4a14 ldr r2, [pc, #80] ; (8006830 ) + 80067e0: 6013 str r3, [r2, #0] obj->spec_attr = lv_mem_alloc(sizeof(_lv_obj_spec_attr_t)); - 800684e: 201c movs r0, #28 - 8006850: f02c f822 bl 8032898 - 8006854: 4602 mov r2, r0 - 8006856: 687b ldr r3, [r7, #4] - 8006858: 609a str r2, [r3, #8] + 80067e2: 201c movs r0, #28 + 80067e4: f02c f80e bl 8032804 + 80067e8: 4602 mov r2, r0 + 80067ea: 687b ldr r3, [r7, #4] + 80067ec: 609a str r2, [r3, #8] LV_ASSERT_MALLOC(obj->spec_attr); - 800685a: 687b ldr r3, [r7, #4] - 800685c: 689b ldr r3, [r3, #8] - 800685e: 2b00 cmp r3, #0 - 8006860: d100 bne.n 8006864 - 8006862: e7fe b.n 8006862 + 80067ee: 687b ldr r3, [r7, #4] + 80067f0: 689b ldr r3, [r3, #8] + 80067f2: 2b00 cmp r3, #0 + 80067f4: d100 bne.n 80067f8 + 80067f6: e7fe b.n 80067f6 if(obj->spec_attr == NULL) return; - 8006864: 687b ldr r3, [r7, #4] - 8006866: 689b ldr r3, [r3, #8] - 8006868: 2b00 cmp r3, #0 - 800686a: d012 beq.n 8006892 + 80067f8: 687b ldr r3, [r7, #4] + 80067fa: 689b ldr r3, [r3, #8] + 80067fc: 2b00 cmp r3, #0 + 80067fe: d012 beq.n 8006826 lv_memset_00(obj->spec_attr, sizeof(_lv_obj_spec_attr_t)); - 800686c: 687b ldr r3, [r7, #4] - 800686e: 689b ldr r3, [r3, #8] - 8006870: 211c movs r1, #28 - 8006872: 4618 mov r0, r3 - 8006874: f02c fc6c bl 8033150 + 8006800: 687b ldr r3, [r7, #4] + 8006802: 689b ldr r3, [r3, #8] + 8006804: 211c movs r1, #28 + 8006806: 4618 mov r0, r3 + 8006808: f02c fc58 bl 80330bc obj->spec_attr->scroll_dir = LV_DIR_ALL; - 8006878: 687b ldr r3, [r7, #4] - 800687a: 689a ldr r2, [r3, #8] - 800687c: 7e53 ldrb r3, [r2, #25] - 800687e: f043 030f orr.w r3, r3, #15 - 8006882: 7653 strb r3, [r2, #25] + 800680c: 687b ldr r3, [r7, #4] + 800680e: 689a ldr r2, [r3, #8] + 8006810: 7e53 ldrb r3, [r2, #25] + 8006812: f043 030f orr.w r3, r3, #15 + 8006816: 7653 strb r3, [r2, #25] obj->spec_attr->scrollbar_mode = LV_SCROLLBAR_MODE_AUTO; - 8006884: 687b ldr r3, [r7, #4] - 8006886: 689a ldr r2, [r3, #8] - 8006888: 7e13 ldrb r3, [r2, #24] - 800688a: f043 0303 orr.w r3, r3, #3 - 800688e: 7613 strb r3, [r2, #24] - 8006890: e000 b.n 8006894 + 8006818: 687b ldr r3, [r7, #4] + 800681a: 689a ldr r2, [r3, #8] + 800681c: 7e13 ldrb r3, [r2, #24] + 800681e: f043 0303 orr.w r3, r3, #3 + 8006822: 7613 strb r3, [r2, #24] + 8006824: e000 b.n 8006828 if(obj->spec_attr == NULL) return; - 8006892: bf00 nop + 8006826: bf00 nop } } - 8006894: 3708 adds r7, #8 - 8006896: 46bd mov sp, r7 - 8006898: bd80 pop {r7, pc} - 800689a: bf00 nop - 800689c: 20001b00 .word 0x20001b00 + 8006828: 3708 adds r7, #8 + 800682a: 46bd mov sp, r7 + 800682c: bd80 pop {r7, pc} + 800682e: bf00 nop + 8006830: 20001b00 .word 0x20001b00 -080068a0 : +08006834 : bool lv_obj_check_type(const lv_obj_t * obj, const lv_obj_class_t * class_p) { - 80068a0: b480 push {r7} - 80068a2: b083 sub sp, #12 - 80068a4: af00 add r7, sp, #0 - 80068a6: 6078 str r0, [r7, #4] - 80068a8: 6039 str r1, [r7, #0] + 8006834: b480 push {r7} + 8006836: b083 sub sp, #12 + 8006838: af00 add r7, sp, #0 + 800683a: 6078 str r0, [r7, #4] + 800683c: 6039 str r1, [r7, #0] if(obj == NULL) return false; - 80068aa: 687b ldr r3, [r7, #4] - 80068ac: 2b00 cmp r3, #0 - 80068ae: d101 bne.n 80068b4 - 80068b0: 2300 movs r3, #0 - 80068b2: e007 b.n 80068c4 + 800683e: 687b ldr r3, [r7, #4] + 8006840: 2b00 cmp r3, #0 + 8006842: d101 bne.n 8006848 + 8006844: 2300 movs r3, #0 + 8006846: e007 b.n 8006858 return obj->class_p == class_p ? true : false; - 80068b4: 687b ldr r3, [r7, #4] - 80068b6: 681b ldr r3, [r3, #0] - 80068b8: 683a ldr r2, [r7, #0] - 80068ba: 429a cmp r2, r3 - 80068bc: bf0c ite eq - 80068be: 2301 moveq r3, #1 - 80068c0: 2300 movne r3, #0 - 80068c2: b2db uxtb r3, r3 + 8006848: 687b ldr r3, [r7, #4] + 800684a: 681b ldr r3, [r3, #0] + 800684c: 683a ldr r2, [r7, #0] + 800684e: 429a cmp r2, r3 + 8006850: bf0c ite eq + 8006852: 2301 moveq r3, #1 + 8006854: 2300 movne r3, #0 + 8006856: b2db uxtb r3, r3 } - 80068c4: 4618 mov r0, r3 - 80068c6: 370c adds r7, #12 - 80068c8: 46bd mov sp, r7 - 80068ca: bc80 pop {r7} - 80068cc: 4770 bx lr + 8006858: 4618 mov r0, r3 + 800685a: 370c adds r7, #12 + 800685c: 46bd mov sp, r7 + 800685e: bc80 pop {r7} + 8006860: 4770 bx lr -080068ce : +08006862 : /********************** * STATIC FUNCTIONS **********************/ static void lv_obj_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 80068ce: b590 push {r4, r7, lr} - 80068d0: b085 sub sp, #20 - 80068d2: af00 add r7, sp, #0 - 80068d4: 6078 str r0, [r7, #4] - 80068d6: 6039 str r1, [r7, #0] + 8006862: b590 push {r4, r7, lr} + 8006864: b085 sub sp, #20 + 8006866: af00 add r7, sp, #0 + 8006868: 6078 str r0, [r7, #4] + 800686a: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_obj_t * parent = obj->parent; - 80068d8: 683b ldr r3, [r7, #0] - 80068da: 685b ldr r3, [r3, #4] - 80068dc: 60fb str r3, [r7, #12] + 800686c: 683b ldr r3, [r7, #0] + 800686e: 685b ldr r3, [r3, #4] + 8006870: 60fb str r3, [r7, #12] if(parent) { - 80068de: 68fb ldr r3, [r7, #12] - 80068e0: 2b00 cmp r3, #0 - 80068e2: d03f beq.n 8006964 + 8006872: 68fb ldr r3, [r7, #12] + 8006874: 2b00 cmp r3, #0 + 8006876: d03f beq.n 80068f8 lv_coord_t sl = lv_obj_get_scroll_left(parent); - 80068e4: 68f8 ldr r0, [r7, #12] - 80068e6: f005 f90f bl 800bb08 - 80068ea: 4603 mov r3, r0 - 80068ec: 817b strh r3, [r7, #10] + 8006878: 68f8 ldr r0, [r7, #12] + 800687a: f005 f90f bl 800ba9c + 800687e: 4603 mov r3, r0 + 8006880: 817b strh r3, [r7, #10] lv_coord_t st = lv_obj_get_scroll_top(parent); - 80068ee: 68f8 ldr r0, [r7, #12] - 80068f0: f005 f86c bl 800b9cc - 80068f4: 4603 mov r3, r0 - 80068f6: 813b strh r3, [r7, #8] + 8006882: 68f8 ldr r0, [r7, #12] + 8006884: f005 f86c bl 800b960 + 8006888: 4603 mov r3, r0 + 800688a: 813b strh r3, [r7, #8] obj->coords.y1 = parent->coords.y1 + lv_obj_get_style_pad_top(parent, LV_PART_MAIN) - st; - 80068f8: 68fb ldr r3, [r7, #12] - 80068fa: f9b3 3016 ldrsh.w r3, [r3, #22] - 80068fe: b29c uxth r4, r3 - 8006900: 2100 movs r1, #0 - 8006902: 68f8 ldr r0, [r7, #12] - 8006904: f7ff fcb3 bl 800626e - 8006908: 4603 mov r3, r0 - 800690a: b29b uxth r3, r3 - 800690c: 4423 add r3, r4 - 800690e: b29a uxth r2, r3 - 8006910: 893b ldrh r3, [r7, #8] - 8006912: 1ad3 subs r3, r2, r3 - 8006914: b29b uxth r3, r3 - 8006916: b21a sxth r2, r3 - 8006918: 683b ldr r3, [r7, #0] - 800691a: 82da strh r2, [r3, #22] + 800688c: 68fb ldr r3, [r7, #12] + 800688e: f9b3 3016 ldrsh.w r3, [r3, #22] + 8006892: b29c uxth r4, r3 + 8006894: 2100 movs r1, #0 + 8006896: 68f8 ldr r0, [r7, #12] + 8006898: f7ff fcb3 bl 8006202 + 800689c: 4603 mov r3, r0 + 800689e: b29b uxth r3, r3 + 80068a0: 4423 add r3, r4 + 80068a2: b29a uxth r2, r3 + 80068a4: 893b ldrh r3, [r7, #8] + 80068a6: 1ad3 subs r3, r2, r3 + 80068a8: b29b uxth r3, r3 + 80068aa: b21a sxth r2, r3 + 80068ac: 683b ldr r3, [r7, #0] + 80068ae: 82da strh r2, [r3, #22] obj->coords.y2 = obj->coords.y1 - 1; - 800691c: 683b ldr r3, [r7, #0] - 800691e: f9b3 3016 ldrsh.w r3, [r3, #22] - 8006922: b29b uxth r3, r3 - 8006924: 3b01 subs r3, #1 - 8006926: b29b uxth r3, r3 - 8006928: b21a sxth r2, r3 - 800692a: 683b ldr r3, [r7, #0] - 800692c: 835a strh r2, [r3, #26] + 80068b0: 683b ldr r3, [r7, #0] + 80068b2: f9b3 3016 ldrsh.w r3, [r3, #22] + 80068b6: b29b uxth r3, r3 + 80068b8: 3b01 subs r3, #1 + 80068ba: b29b uxth r3, r3 + 80068bc: b21a sxth r2, r3 + 80068be: 683b ldr r3, [r7, #0] + 80068c0: 835a strh r2, [r3, #26] obj->coords.x1 = parent->coords.x1 + lv_obj_get_style_pad_left(parent, LV_PART_MAIN) - sl; - 800692e: 68fb ldr r3, [r7, #12] - 8006930: f9b3 3014 ldrsh.w r3, [r3, #20] - 8006934: b29c uxth r4, r3 - 8006936: 2100 movs r1, #0 - 8006938: 68f8 ldr r0, [r7, #12] - 800693a: f7ff fcab bl 8006294 - 800693e: 4603 mov r3, r0 - 8006940: b29b uxth r3, r3 - 8006942: 4423 add r3, r4 - 8006944: b29a uxth r2, r3 - 8006946: 897b ldrh r3, [r7, #10] - 8006948: 1ad3 subs r3, r2, r3 - 800694a: b29b uxth r3, r3 - 800694c: b21a sxth r2, r3 - 800694e: 683b ldr r3, [r7, #0] - 8006950: 829a strh r2, [r3, #20] + 80068c2: 68fb ldr r3, [r7, #12] + 80068c4: f9b3 3014 ldrsh.w r3, [r3, #20] + 80068c8: b29c uxth r4, r3 + 80068ca: 2100 movs r1, #0 + 80068cc: 68f8 ldr r0, [r7, #12] + 80068ce: f7ff fcab bl 8006228 + 80068d2: 4603 mov r3, r0 + 80068d4: b29b uxth r3, r3 + 80068d6: 4423 add r3, r4 + 80068d8: b29a uxth r2, r3 + 80068da: 897b ldrh r3, [r7, #10] + 80068dc: 1ad3 subs r3, r2, r3 + 80068de: b29b uxth r3, r3 + 80068e0: b21a sxth r2, r3 + 80068e2: 683b ldr r3, [r7, #0] + 80068e4: 829a strh r2, [r3, #20] obj->coords.x2 = obj->coords.x1 - 1; - 8006952: 683b ldr r3, [r7, #0] - 8006954: f9b3 3014 ldrsh.w r3, [r3, #20] - 8006958: b29b uxth r3, r3 - 800695a: 3b01 subs r3, #1 - 800695c: b29b uxth r3, r3 - 800695e: b21a sxth r2, r3 - 8006960: 683b ldr r3, [r7, #0] - 8006962: 831a strh r2, [r3, #24] + 80068e6: 683b ldr r3, [r7, #0] + 80068e8: f9b3 3014 ldrsh.w r3, [r3, #20] + 80068ec: b29b uxth r3, r3 + 80068ee: 3b01 subs r3, #1 + 80068f0: b29b uxth r3, r3 + 80068f2: b21a sxth r2, r3 + 80068f4: 683b ldr r3, [r7, #0] + 80068f6: 831a strh r2, [r3, #24] } /*Set attributes*/ obj->flags = LV_OBJ_FLAG_CLICKABLE; - 8006964: 683b ldr r3, [r7, #0] - 8006966: 2202 movs r2, #2 - 8006968: 61da str r2, [r3, #28] + 80068f8: 683b ldr r3, [r7, #0] + 80068fa: 2202 movs r2, #2 + 80068fc: 61da str r2, [r3, #28] obj->flags |= LV_OBJ_FLAG_SNAPPABLE; - 800696a: 683b ldr r3, [r7, #0] - 800696c: 69db ldr r3, [r3, #28] - 800696e: f443 5280 orr.w r2, r3, #4096 ; 0x1000 - 8006972: 683b ldr r3, [r7, #0] - 8006974: 61da str r2, [r3, #28] + 80068fe: 683b ldr r3, [r7, #0] + 8006900: 69db ldr r3, [r3, #28] + 8006902: f443 5280 orr.w r2, r3, #4096 ; 0x1000 + 8006906: 683b ldr r3, [r7, #0] + 8006908: 61da str r2, [r3, #28] if(parent) obj->flags |= LV_OBJ_FLAG_PRESS_LOCK; - 8006976: 68fb ldr r3, [r7, #12] - 8006978: 2b00 cmp r3, #0 - 800697a: d005 beq.n 8006988 - 800697c: 683b ldr r3, [r7, #0] - 800697e: 69db ldr r3, [r3, #28] - 8006980: f443 5200 orr.w r2, r3, #8192 ; 0x2000 - 8006984: 683b ldr r3, [r7, #0] - 8006986: 61da str r2, [r3, #28] + 800690a: 68fb ldr r3, [r7, #12] + 800690c: 2b00 cmp r3, #0 + 800690e: d005 beq.n 800691c + 8006910: 683b ldr r3, [r7, #0] + 8006912: 69db ldr r3, [r3, #28] + 8006914: f443 5200 orr.w r2, r3, #8192 ; 0x2000 + 8006918: 683b ldr r3, [r7, #0] + 800691a: 61da str r2, [r3, #28] if(parent) obj->flags |= LV_OBJ_FLAG_SCROLL_CHAIN; - 8006988: 68fb ldr r3, [r7, #12] - 800698a: 2b00 cmp r3, #0 - 800698c: d005 beq.n 800699a - 800698e: 683b ldr r3, [r7, #0] - 8006990: 69db ldr r3, [r3, #28] - 8006992: f443 7240 orr.w r2, r3, #768 ; 0x300 - 8006996: 683b ldr r3, [r7, #0] - 8006998: 61da str r2, [r3, #28] + 800691c: 68fb ldr r3, [r7, #12] + 800691e: 2b00 cmp r3, #0 + 8006920: d005 beq.n 800692e + 8006922: 683b ldr r3, [r7, #0] + 8006924: 69db ldr r3, [r3, #28] + 8006926: f443 7240 orr.w r2, r3, #768 ; 0x300 + 800692a: 683b ldr r3, [r7, #0] + 800692c: 61da str r2, [r3, #28] obj->flags |= LV_OBJ_FLAG_CLICK_FOCUSABLE; - 800699a: 683b ldr r3, [r7, #0] - 800699c: 69db ldr r3, [r3, #28] - 800699e: f043 0204 orr.w r2, r3, #4 - 80069a2: 683b ldr r3, [r7, #0] - 80069a4: 61da str r2, [r3, #28] + 800692e: 683b ldr r3, [r7, #0] + 8006930: 69db ldr r3, [r3, #28] + 8006932: f043 0204 orr.w r2, r3, #4 + 8006936: 683b ldr r3, [r7, #0] + 8006938: 61da str r2, [r3, #28] obj->flags |= LV_OBJ_FLAG_SCROLLABLE; - 80069a6: 683b ldr r3, [r7, #0] - 80069a8: 69db ldr r3, [r3, #28] - 80069aa: f043 0210 orr.w r2, r3, #16 - 80069ae: 683b ldr r3, [r7, #0] - 80069b0: 61da str r2, [r3, #28] + 800693a: 683b ldr r3, [r7, #0] + 800693c: 69db ldr r3, [r3, #28] + 800693e: f043 0210 orr.w r2, r3, #16 + 8006942: 683b ldr r3, [r7, #0] + 8006944: 61da str r2, [r3, #28] obj->flags |= LV_OBJ_FLAG_SCROLL_ELASTIC; - 80069b2: 683b ldr r3, [r7, #0] - 80069b4: 69db ldr r3, [r3, #28] - 80069b6: f043 0220 orr.w r2, r3, #32 - 80069ba: 683b ldr r3, [r7, #0] - 80069bc: 61da str r2, [r3, #28] + 8006946: 683b ldr r3, [r7, #0] + 8006948: 69db ldr r3, [r3, #28] + 800694a: f043 0220 orr.w r2, r3, #32 + 800694e: 683b ldr r3, [r7, #0] + 8006950: 61da str r2, [r3, #28] obj->flags |= LV_OBJ_FLAG_SCROLL_MOMENTUM; - 80069be: 683b ldr r3, [r7, #0] - 80069c0: 69db ldr r3, [r3, #28] - 80069c2: f043 0240 orr.w r2, r3, #64 ; 0x40 - 80069c6: 683b ldr r3, [r7, #0] - 80069c8: 61da str r2, [r3, #28] + 8006952: 683b ldr r3, [r7, #0] + 8006954: 69db ldr r3, [r3, #28] + 8006956: f043 0240 orr.w r2, r3, #64 ; 0x40 + 800695a: 683b ldr r3, [r7, #0] + 800695c: 61da str r2, [r3, #28] obj->flags |= LV_OBJ_FLAG_SCROLL_WITH_ARROW; - 80069ca: 683b ldr r3, [r7, #0] - 80069cc: 69db ldr r3, [r3, #28] - 80069ce: f443 6200 orr.w r2, r3, #2048 ; 0x800 - 80069d2: 683b ldr r3, [r7, #0] - 80069d4: 61da str r2, [r3, #28] + 800695e: 683b ldr r3, [r7, #0] + 8006960: 69db ldr r3, [r3, #28] + 8006962: f443 6200 orr.w r2, r3, #2048 ; 0x800 + 8006966: 683b ldr r3, [r7, #0] + 8006968: 61da str r2, [r3, #28] if(parent) obj->flags |= LV_OBJ_FLAG_GESTURE_BUBBLE; - 80069d6: 68fb ldr r3, [r7, #12] - 80069d8: 2b00 cmp r3, #0 - 80069da: d005 beq.n 80069e8 - 80069dc: 683b ldr r3, [r7, #0] - 80069de: 69db ldr r3, [r3, #28] - 80069e0: f443 4200 orr.w r2, r3, #32768 ; 0x8000 - 80069e4: 683b ldr r3, [r7, #0] - 80069e6: 61da str r2, [r3, #28] + 800696a: 68fb ldr r3, [r7, #12] + 800696c: 2b00 cmp r3, #0 + 800696e: d005 beq.n 800697c + 8006970: 683b ldr r3, [r7, #0] + 8006972: 69db ldr r3, [r3, #28] + 8006974: f443 4200 orr.w r2, r3, #32768 ; 0x8000 + 8006978: 683b ldr r3, [r7, #0] + 800697a: 61da str r2, [r3, #28] LV_TRACE_OBJ_CREATE("finished"); } - 80069e8: bf00 nop - 80069ea: 3714 adds r7, #20 - 80069ec: 46bd mov sp, r7 - 80069ee: bd90 pop {r4, r7, pc} + 800697c: bf00 nop + 800697e: 3714 adds r7, #20 + 8006980: 46bd mov sp, r7 + 8006982: bd90 pop {r4, r7, pc} -080069f0 : +08006984 : static void lv_obj_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 80069f0: b580 push {r7, lr} - 80069f2: b084 sub sp, #16 - 80069f4: af00 add r7, sp, #0 - 80069f6: 6078 str r0, [r7, #4] - 80069f8: 6039 str r1, [r7, #0] + 8006984: b580 push {r7, lr} + 8006986: b084 sub sp, #16 + 8006988: af00 add r7, sp, #0 + 800698a: 6078 str r0, [r7, #4] + 800698c: 6039 str r1, [r7, #0] LV_UNUSED(class_p); _lv_event_mark_deleted(obj); - 80069fa: 6838 ldr r0, [r7, #0] - 80069fc: f7fb fdfa bl 80025f4 <_lv_event_mark_deleted> + 800698e: 6838 ldr r0, [r7, #0] + 8006990: f7fb fdfa bl 8002588 <_lv_event_mark_deleted> /*Remove all style*/ lv_obj_enable_style_refresh(false); /*No need to refresh the style because the object will be deleted*/ - 8006a00: 2000 movs r0, #0 - 8006a02: f007 f9c5 bl 800dd90 + 8006994: 2000 movs r0, #0 + 8006996: f007 f9c5 bl 800dd24 lv_obj_remove_style_all(obj); - 8006a06: 6838 ldr r0, [r7, #0] - 8006a08: f7ff fbc2 bl 8006190 + 800699a: 6838 ldr r0, [r7, #0] + 800699c: f7ff fbc2 bl 8006124 lv_obj_enable_style_refresh(true); - 8006a0c: 2001 movs r0, #1 - 8006a0e: f007 f9bf bl 800dd90 + 80069a0: 2001 movs r0, #1 + 80069a2: f007 f9bf bl 800dd24 /*Remove the animations from this object*/ lv_anim_del(obj, NULL); - 8006a12: 2100 movs r1, #0 - 8006a14: 6838 ldr r0, [r7, #0] - 8006a16: f029 ffb9 bl 803098c + 80069a6: 2100 movs r1, #0 + 80069a8: 6838 ldr r0, [r7, #0] + 80069aa: f029 ffa5 bl 80308f8 /*Delete from the group*/ lv_group_t * group = lv_obj_get_group(obj); - 8006a1a: 6838 ldr r0, [r7, #0] - 8006a1c: f7ff fef8 bl 8006810 - 8006a20: 60f8 str r0, [r7, #12] + 80069ae: 6838 ldr r0, [r7, #0] + 80069b0: f7ff fef8 bl 80067a4 + 80069b4: 60f8 str r0, [r7, #12] if(group) lv_group_remove_obj(obj); - 8006a22: 68fb ldr r3, [r7, #12] - 8006a24: 2b00 cmp r3, #0 - 8006a26: d002 beq.n 8006a2e - 8006a28: 6838 ldr r0, [r7, #0] - 8006a2a: f7fc f8ce bl 8002bca + 80069b6: 68fb ldr r3, [r7, #12] + 80069b8: 2b00 cmp r3, #0 + 80069ba: d002 beq.n 80069c2 + 80069bc: 6838 ldr r0, [r7, #0] + 80069be: f7fc f8ce bl 8002b5e if(obj->spec_attr) { - 8006a2e: 683b ldr r3, [r7, #0] - 8006a30: 689b ldr r3, [r3, #8] - 8006a32: 2b00 cmp r3, #0 - 8006a34: d025 beq.n 8006a82 + 80069c2: 683b ldr r3, [r7, #0] + 80069c4: 689b ldr r3, [r3, #8] + 80069c6: 2b00 cmp r3, #0 + 80069c8: d025 beq.n 8006a16 if(obj->spec_attr->children) { - 8006a36: 683b ldr r3, [r7, #0] - 8006a38: 689b ldr r3, [r3, #8] - 8006a3a: 681b ldr r3, [r3, #0] - 8006a3c: 2b00 cmp r3, #0 - 8006a3e: d009 beq.n 8006a54 + 80069ca: 683b ldr r3, [r7, #0] + 80069cc: 689b ldr r3, [r3, #8] + 80069ce: 681b ldr r3, [r3, #0] + 80069d0: 2b00 cmp r3, #0 + 80069d2: d009 beq.n 80069e8 lv_mem_free(obj->spec_attr->children); - 8006a40: 683b ldr r3, [r7, #0] - 8006a42: 689b ldr r3, [r3, #8] - 8006a44: 681b ldr r3, [r3, #0] - 8006a46: 4618 mov r0, r3 - 8006a48: f02b ff48 bl 80328dc + 80069d4: 683b ldr r3, [r7, #0] + 80069d6: 689b ldr r3, [r3, #8] + 80069d8: 681b ldr r3, [r3, #0] + 80069da: 4618 mov r0, r3 + 80069dc: f02b ff34 bl 8032848 obj->spec_attr->children = NULL; - 8006a4c: 683b ldr r3, [r7, #0] - 8006a4e: 689b ldr r3, [r3, #8] - 8006a50: 2200 movs r2, #0 - 8006a52: 601a str r2, [r3, #0] + 80069e0: 683b ldr r3, [r7, #0] + 80069e2: 689b ldr r3, [r3, #8] + 80069e4: 2200 movs r2, #0 + 80069e6: 601a str r2, [r3, #0] } if(obj->spec_attr->event_dsc) { - 8006a54: 683b ldr r3, [r7, #0] - 8006a56: 689b ldr r3, [r3, #8] - 8006a58: 68db ldr r3, [r3, #12] - 8006a5a: 2b00 cmp r3, #0 - 8006a5c: d009 beq.n 8006a72 + 80069e8: 683b ldr r3, [r7, #0] + 80069ea: 689b ldr r3, [r3, #8] + 80069ec: 68db ldr r3, [r3, #12] + 80069ee: 2b00 cmp r3, #0 + 80069f0: d009 beq.n 8006a06 lv_mem_free(obj->spec_attr->event_dsc); - 8006a5e: 683b ldr r3, [r7, #0] - 8006a60: 689b ldr r3, [r3, #8] - 8006a62: 68db ldr r3, [r3, #12] - 8006a64: 4618 mov r0, r3 - 8006a66: f02b ff39 bl 80328dc + 80069f2: 683b ldr r3, [r7, #0] + 80069f4: 689b ldr r3, [r3, #8] + 80069f6: 68db ldr r3, [r3, #12] + 80069f8: 4618 mov r0, r3 + 80069fa: f02b ff25 bl 8032848 obj->spec_attr->event_dsc = NULL; - 8006a6a: 683b ldr r3, [r7, #0] - 8006a6c: 689b ldr r3, [r3, #8] - 8006a6e: 2200 movs r2, #0 - 8006a70: 60da str r2, [r3, #12] + 80069fe: 683b ldr r3, [r7, #0] + 8006a00: 689b ldr r3, [r3, #8] + 8006a02: 2200 movs r2, #0 + 8006a04: 60da str r2, [r3, #12] } lv_mem_free(obj->spec_attr); - 8006a72: 683b ldr r3, [r7, #0] - 8006a74: 689b ldr r3, [r3, #8] - 8006a76: 4618 mov r0, r3 - 8006a78: f02b ff30 bl 80328dc + 8006a06: 683b ldr r3, [r7, #0] + 8006a08: 689b ldr r3, [r3, #8] + 8006a0a: 4618 mov r0, r3 + 8006a0c: f02b ff1c bl 8032848 obj->spec_attr = NULL; - 8006a7c: 683b ldr r3, [r7, #0] - 8006a7e: 2200 movs r2, #0 - 8006a80: 609a str r2, [r3, #8] + 8006a10: 683b ldr r3, [r7, #0] + 8006a12: 2200 movs r2, #0 + 8006a14: 609a str r2, [r3, #8] } } - 8006a82: bf00 nop - 8006a84: 3710 adds r7, #16 - 8006a86: 46bd mov sp, r7 - 8006a88: bd80 pop {r7, pc} + 8006a16: bf00 nop + 8006a18: 3710 adds r7, #16 + 8006a1a: 46bd mov sp, r7 + 8006a1c: bd80 pop {r7, pc} ... -08006a8c : +08006a20 : static void lv_obj_draw(lv_event_t * e) { - 8006a8c: b580 push {r7, lr} - 8006a8e: b0b6 sub sp, #216 ; 0xd8 - 8006a90: af00 add r7, sp, #0 - 8006a92: 6078 str r0, [r7, #4] + 8006a20: b580 push {r7, lr} + 8006a22: b0b6 sub sp, #216 ; 0xd8 + 8006a24: af00 add r7, sp, #0 + 8006a26: 6078 str r0, [r7, #4] lv_event_code_t code = lv_event_get_code(e); - 8006a94: 6878 ldr r0, [r7, #4] - 8006a96: f7fb fd89 bl 80025ac - 8006a9a: 4603 mov r3, r0 - 8006a9c: f887 30d7 strb.w r3, [r7, #215] ; 0xd7 + 8006a28: 6878 ldr r0, [r7, #4] + 8006a2a: f7fb fd89 bl 8002540 + 8006a2e: 4603 mov r3, r0 + 8006a30: f887 30d7 strb.w r3, [r7, #215] ; 0xd7 lv_obj_t * obj = lv_event_get_target(e); - 8006aa0: 6878 ldr r0, [r7, #4] - 8006aa2: f7fb fd6d bl 8002580 - 8006aa6: f8c7 00d0 str.w r0, [r7, #208] ; 0xd0 + 8006a34: 6878 ldr r0, [r7, #4] + 8006a36: f7fb fd6d bl 8002514 + 8006a3a: f8c7 00d0 str.w r0, [r7, #208] ; 0xd0 if(code == LV_EVENT_COVER_CHECK) { - 8006aaa: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 - 8006aae: 2b12 cmp r3, #18 - 8006ab0: f040 80a3 bne.w 8006bfa + 8006a3e: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 + 8006a42: 2b12 cmp r3, #18 + 8006a44: f040 80a3 bne.w 8006b8e lv_cover_check_info_t * info = lv_event_get_param(e); - 8006ab4: 6878 ldr r0, [r7, #4] - 8006ab6: f7fb fd87 bl 80025c8 - 8006aba: f8c7 00ac str.w r0, [r7, #172] ; 0xac + 8006a48: 6878 ldr r0, [r7, #4] + 8006a4a: f7fb fd87 bl 800255c + 8006a4e: f8c7 00ac str.w r0, [r7, #172] ; 0xac if(info->res == LV_COVER_RES_MASKED) return; - 8006abe: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 8006ac2: 781b ldrb r3, [r3, #0] - 8006ac4: 2b02 cmp r3, #2 - 8006ac6: f000 8241 beq.w 8006f4c + 8006a52: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 8006a56: 781b ldrb r3, [r3, #0] + 8006a58: 2b02 cmp r3, #2 + 8006a5a: f000 8241 beq.w 8006ee0 if(lv_obj_get_style_clip_corner(obj, LV_PART_MAIN)) { - 8006aca: 2100 movs r1, #0 - 8006acc: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006ad0: f7ff fcbe bl 8006450 - 8006ad4: 4603 mov r3, r0 - 8006ad6: 2b00 cmp r3, #0 - 8006ad8: d004 beq.n 8006ae4 + 8006a5e: 2100 movs r1, #0 + 8006a60: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006a64: f7ff fcbe bl 80063e4 + 8006a68: 4603 mov r3, r0 + 8006a6a: 2b00 cmp r3, #0 + 8006a6c: d004 beq.n 8006a78 info->res = LV_COVER_RES_MASKED; - 8006ada: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 8006ade: 2202 movs r2, #2 - 8006ae0: 701a strb r2, [r3, #0] + 8006a6e: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 8006a72: 2202 movs r2, #2 + 8006a74: 701a strb r2, [r3, #0] return; - 8006ae2: e234 b.n 8006f4e + 8006a76: e234 b.n 8006ee2 } /*Most trivial test. Is the mask fully IN the object? If no it surely doesn't cover it*/ lv_coord_t r = lv_obj_get_style_radius(obj, LV_PART_MAIN); - 8006ae4: 2100 movs r1, #0 - 8006ae6: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006aea: f7ff fc9f bl 800642c - 8006aee: 4603 mov r3, r0 - 8006af0: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa + 8006a78: 2100 movs r1, #0 + 8006a7a: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006a7e: f7ff fc9f bl 80063c0 + 8006a82: 4603 mov r3, r0 + 8006a84: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa lv_coord_t w = lv_obj_get_style_transform_width(obj, LV_PART_MAIN); - 8006af4: 2100 movs r1, #0 - 8006af6: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006afa: f7ff fb92 bl 8006222 - 8006afe: 4603 mov r3, r0 - 8006b00: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 + 8006a88: 2100 movs r1, #0 + 8006a8a: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006a8e: f7ff fb92 bl 80061b6 + 8006a92: 4603 mov r3, r0 + 8006a94: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 lv_coord_t h = lv_obj_get_style_transform_height(obj, LV_PART_MAIN); - 8006b04: 2100 movs r1, #0 - 8006b06: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006b0a: f7ff fb9d bl 8006248 - 8006b0e: 4603 mov r3, r0 - 8006b10: f8a7 30a6 strh.w r3, [r7, #166] ; 0xa6 + 8006a98: 2100 movs r1, #0 + 8006a9a: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006a9e: f7ff fb9d bl 80061dc + 8006aa2: 4603 mov r3, r0 + 8006aa4: f8a7 30a6 strh.w r3, [r7, #166] ; 0xa6 lv_area_t coords; lv_area_copy(&coords, &obj->coords); - 8006b14: f8d7 30d0 ldr.w r3, [r7, #208] ; 0xd0 - 8006b18: f103 0214 add.w r2, r3, #20 - 8006b1c: f107 039c add.w r3, r7, #156 ; 0x9c - 8006b20: 4611 mov r1, r2 - 8006b22: 4618 mov r0, r3 - 8006b24: f7ff faa6 bl 8006074 + 8006aa8: f8d7 30d0 ldr.w r3, [r7, #208] ; 0xd0 + 8006aac: f103 0214 add.w r2, r3, #20 + 8006ab0: f107 039c add.w r3, r7, #156 ; 0x9c + 8006ab4: 4611 mov r1, r2 + 8006ab6: 4618 mov r0, r3 + 8006ab8: f7ff faa6 bl 8006008 coords.x1 -= w; - 8006b28: f9b7 309c ldrsh.w r3, [r7, #156] ; 0x9c - 8006b2c: b29a uxth r2, r3 - 8006b2e: f8b7 30a8 ldrh.w r3, [r7, #168] ; 0xa8 - 8006b32: 1ad3 subs r3, r2, r3 - 8006b34: b29b uxth r3, r3 - 8006b36: b21b sxth r3, r3 - 8006b38: f8a7 309c strh.w r3, [r7, #156] ; 0x9c + 8006abc: f9b7 309c ldrsh.w r3, [r7, #156] ; 0x9c + 8006ac0: b29a uxth r2, r3 + 8006ac2: f8b7 30a8 ldrh.w r3, [r7, #168] ; 0xa8 + 8006ac6: 1ad3 subs r3, r2, r3 + 8006ac8: b29b uxth r3, r3 + 8006aca: b21b sxth r3, r3 + 8006acc: f8a7 309c strh.w r3, [r7, #156] ; 0x9c coords.x2 += w; - 8006b3c: f9b7 30a0 ldrsh.w r3, [r7, #160] ; 0xa0 - 8006b40: b29a uxth r2, r3 - 8006b42: f8b7 30a8 ldrh.w r3, [r7, #168] ; 0xa8 - 8006b46: 4413 add r3, r2 - 8006b48: b29b uxth r3, r3 - 8006b4a: b21b sxth r3, r3 - 8006b4c: f8a7 30a0 strh.w r3, [r7, #160] ; 0xa0 + 8006ad0: f9b7 30a0 ldrsh.w r3, [r7, #160] ; 0xa0 + 8006ad4: b29a uxth r2, r3 + 8006ad6: f8b7 30a8 ldrh.w r3, [r7, #168] ; 0xa8 + 8006ada: 4413 add r3, r2 + 8006adc: b29b uxth r3, r3 + 8006ade: b21b sxth r3, r3 + 8006ae0: f8a7 30a0 strh.w r3, [r7, #160] ; 0xa0 coords.y1 -= h; - 8006b50: f9b7 309e ldrsh.w r3, [r7, #158] ; 0x9e - 8006b54: b29a uxth r2, r3 - 8006b56: f8b7 30a6 ldrh.w r3, [r7, #166] ; 0xa6 - 8006b5a: 1ad3 subs r3, r2, r3 - 8006b5c: b29b uxth r3, r3 - 8006b5e: b21b sxth r3, r3 - 8006b60: f8a7 309e strh.w r3, [r7, #158] ; 0x9e + 8006ae4: f9b7 309e ldrsh.w r3, [r7, #158] ; 0x9e + 8006ae8: b29a uxth r2, r3 + 8006aea: f8b7 30a6 ldrh.w r3, [r7, #166] ; 0xa6 + 8006aee: 1ad3 subs r3, r2, r3 + 8006af0: b29b uxth r3, r3 + 8006af2: b21b sxth r3, r3 + 8006af4: f8a7 309e strh.w r3, [r7, #158] ; 0x9e coords.y2 += h; - 8006b64: f9b7 30a2 ldrsh.w r3, [r7, #162] ; 0xa2 - 8006b68: b29a uxth r2, r3 - 8006b6a: f8b7 30a6 ldrh.w r3, [r7, #166] ; 0xa6 - 8006b6e: 4413 add r3, r2 - 8006b70: b29b uxth r3, r3 - 8006b72: b21b sxth r3, r3 - 8006b74: f8a7 30a2 strh.w r3, [r7, #162] ; 0xa2 + 8006af8: f9b7 30a2 ldrsh.w r3, [r7, #162] ; 0xa2 + 8006afc: b29a uxth r2, r3 + 8006afe: f8b7 30a6 ldrh.w r3, [r7, #166] ; 0xa6 + 8006b02: 4413 add r3, r2 + 8006b04: b29b uxth r3, r3 + 8006b06: b21b sxth r3, r3 + 8006b08: f8a7 30a2 strh.w r3, [r7, #162] ; 0xa2 if(_lv_area_is_in(info->area, &coords, r) == false) { - 8006b78: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 8006b7c: 685b ldr r3, [r3, #4] - 8006b7e: f9b7 20aa ldrsh.w r2, [r7, #170] ; 0xaa - 8006b82: f107 019c add.w r1, r7, #156 ; 0x9c - 8006b86: 4618 mov r0, r3 - 8006b88: f02a fc6d bl 8031466 <_lv_area_is_in> - 8006b8c: 4603 mov r3, r0 - 8006b8e: f083 0301 eor.w r3, r3, #1 - 8006b92: b2db uxtb r3, r3 - 8006b94: 2b00 cmp r3, #0 - 8006b96: d004 beq.n 8006ba2 + 8006b0c: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 8006b10: 685b ldr r3, [r3, #4] + 8006b12: f9b7 20aa ldrsh.w r2, [r7, #170] ; 0xaa + 8006b16: f107 019c add.w r1, r7, #156 ; 0x9c + 8006b1a: 4618 mov r0, r3 + 8006b1c: f02a fc59 bl 80313d2 <_lv_area_is_in> + 8006b20: 4603 mov r3, r0 + 8006b22: f083 0301 eor.w r3, r3, #1 + 8006b26: b2db uxtb r3, r3 + 8006b28: 2b00 cmp r3, #0 + 8006b2a: d004 beq.n 8006b36 info->res = LV_COVER_RES_NOT_COVER; - 8006b98: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 8006b9c: 2201 movs r2, #1 - 8006b9e: 701a strb r2, [r3, #0] + 8006b2c: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 8006b30: 2201 movs r2, #1 + 8006b32: 701a strb r2, [r3, #0] return; - 8006ba0: e1d5 b.n 8006f4e + 8006b34: e1d5 b.n 8006ee2 } if(lv_obj_get_style_bg_opa(obj, LV_PART_MAIN) < LV_OPA_MAX) { - 8006ba2: 2100 movs r1, #0 - 8006ba4: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006ba8: f7ff fb98 bl 80062dc - 8006bac: 4603 mov r3, r0 - 8006bae: 2bfc cmp r3, #252 ; 0xfc - 8006bb0: d804 bhi.n 8006bbc + 8006b36: 2100 movs r1, #0 + 8006b38: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006b3c: f7ff fb98 bl 8006270 + 8006b40: 4603 mov r3, r0 + 8006b42: 2bfc cmp r3, #252 ; 0xfc + 8006b44: d804 bhi.n 8006b50 info->res = LV_COVER_RES_NOT_COVER; - 8006bb2: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 8006bb6: 2201 movs r2, #1 - 8006bb8: 701a strb r2, [r3, #0] + 8006b46: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 8006b4a: 2201 movs r2, #1 + 8006b4c: 701a strb r2, [r3, #0] return; - 8006bba: e1c8 b.n 8006f4e + 8006b4e: e1c8 b.n 8006ee2 } #if LV_DRAW_COMPLEX if(lv_obj_get_style_blend_mode(obj, LV_PART_MAIN) != LV_BLEND_MODE_NORMAL) { - 8006bbc: 2100 movs r1, #0 - 8006bbe: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006bc2: f7ff fc6e bl 80064a2 - 8006bc6: 4603 mov r3, r0 - 8006bc8: 2b00 cmp r3, #0 - 8006bca: d004 beq.n 8006bd6 + 8006b50: 2100 movs r1, #0 + 8006b52: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006b56: f7ff fc6e bl 8006436 + 8006b5a: 4603 mov r3, r0 + 8006b5c: 2b00 cmp r3, #0 + 8006b5e: d004 beq.n 8006b6a info->res = LV_COVER_RES_NOT_COVER; - 8006bcc: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 8006bd0: 2201 movs r2, #1 - 8006bd2: 701a strb r2, [r3, #0] + 8006b60: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 8006b64: 2201 movs r2, #1 + 8006b66: 701a strb r2, [r3, #0] return; - 8006bd4: e1bb b.n 8006f4e + 8006b68: e1bb b.n 8006ee2 } #endif if(lv_obj_get_style_opa(obj, LV_PART_MAIN) < LV_OPA_MAX) { - 8006bd6: 2100 movs r1, #0 - 8006bd8: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006bdc: f7ff fc4e bl 800647c - 8006be0: 4603 mov r3, r0 - 8006be2: 2bfc cmp r3, #252 ; 0xfc - 8006be4: d804 bhi.n 8006bf0 + 8006b6a: 2100 movs r1, #0 + 8006b6c: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006b70: f7ff fc4e bl 8006410 + 8006b74: 4603 mov r3, r0 + 8006b76: 2bfc cmp r3, #252 ; 0xfc + 8006b78: d804 bhi.n 8006b84 info->res = LV_COVER_RES_NOT_COVER; - 8006be6: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 8006bea: 2201 movs r2, #1 - 8006bec: 701a strb r2, [r3, #0] + 8006b7a: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 8006b7e: 2201 movs r2, #1 + 8006b80: 701a strb r2, [r3, #0] return; - 8006bee: e1ae b.n 8006f4e + 8006b82: e1ae b.n 8006ee2 } info->res = LV_COVER_RES_COVER; - 8006bf0: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 8006bf4: 2200 movs r2, #0 - 8006bf6: 701a strb r2, [r3, #0] - 8006bf8: e1a9 b.n 8006f4e + 8006b84: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 8006b88: 2200 movs r2, #0 + 8006b8a: 701a strb r2, [r3, #0] + 8006b8c: e1a9 b.n 8006ee2 } else if(code == LV_EVENT_DRAW_MAIN) { - 8006bfa: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 - 8006bfe: 2b15 cmp r3, #21 - 8006c00: f040 80e7 bne.w 8006dd2 + 8006b8e: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 + 8006b92: 2b15 cmp r3, #21 + 8006b94: f040 80e7 bne.w 8006d66 lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 8006c04: 6878 ldr r0, [r7, #4] - 8006c06: f7fb fdd1 bl 80027ac - 8006c0a: f8c7 00c0 str.w r0, [r7, #192] ; 0xc0 + 8006b98: 6878 ldr r0, [r7, #4] + 8006b9a: f7fb fdd1 bl 8002740 + 8006b9e: f8c7 00c0 str.w r0, [r7, #192] ; 0xc0 lv_draw_rect_dsc_t draw_dsc; lv_draw_rect_dsc_init(&draw_dsc); - 8006c0e: f107 030c add.w r3, r7, #12 - 8006c12: 4618 mov r0, r3 - 8006c14: f00e fdee bl 80157f4 + 8006ba2: f107 030c add.w r3, r7, #12 + 8006ba6: 4618 mov r0, r3 + 8006ba8: f00e fdda bl 8015760 /*If the border is drawn later disable loading its properties*/ if(lv_obj_get_style_border_post(obj, LV_PART_MAIN)) { - 8006c18: 2100 movs r1, #0 - 8006c1a: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006c1e: f7ff fba5 bl 800636c - 8006c22: 4603 mov r3, r0 - 8006c24: 2b00 cmp r3, #0 - 8006c26: d005 beq.n 8006c34 + 8006bac: 2100 movs r1, #0 + 8006bae: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006bb2: f7ff fba5 bl 8006300 + 8006bb6: 4603 mov r3, r0 + 8006bb8: 2b00 cmp r3, #0 + 8006bba: d005 beq.n 8006bc8 draw_dsc.border_post = 1; - 8006c28: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8006c2c: f043 0301 orr.w r3, r3, #1 - 8006c30: f887 302f strb.w r3, [r7, #47] ; 0x2f + 8006bbc: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8006bc0: f043 0301 orr.w r3, r3, #1 + 8006bc4: f887 302f strb.w r3, [r7, #47] ; 0x2f } lv_obj_init_draw_rect_dsc(obj, LV_PART_MAIN, &draw_dsc); - 8006c34: f107 030c add.w r3, r7, #12 - 8006c38: 461a mov r2, r3 - 8006c3a: 2100 movs r1, #0 - 8006c3c: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006c40: f001 fcc1 bl 80085c6 + 8006bc8: f107 030c add.w r3, r7, #12 + 8006bcc: 461a mov r2, r3 + 8006bce: 2100 movs r1, #0 + 8006bd0: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006bd4: f001 fcc1 bl 800855a lv_coord_t w = lv_obj_get_style_transform_width(obj, LV_PART_MAIN); - 8006c44: 2100 movs r1, #0 - 8006c46: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006c4a: f7ff faea bl 8006222 - 8006c4e: 4603 mov r3, r0 - 8006c50: f8a7 30be strh.w r3, [r7, #190] ; 0xbe + 8006bd8: 2100 movs r1, #0 + 8006bda: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006bde: f7ff faea bl 80061b6 + 8006be2: 4603 mov r3, r0 + 8006be4: f8a7 30be strh.w r3, [r7, #190] ; 0xbe lv_coord_t h = lv_obj_get_style_transform_height(obj, LV_PART_MAIN); - 8006c54: 2100 movs r1, #0 - 8006c56: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006c5a: f7ff faf5 bl 8006248 - 8006c5e: 4603 mov r3, r0 - 8006c60: f8a7 30bc strh.w r3, [r7, #188] ; 0xbc + 8006be8: 2100 movs r1, #0 + 8006bea: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006bee: f7ff faf5 bl 80061dc + 8006bf2: 4603 mov r3, r0 + 8006bf4: f8a7 30bc strh.w r3, [r7, #188] ; 0xbc lv_area_t coords; lv_area_copy(&coords, &obj->coords); - 8006c64: f8d7 30d0 ldr.w r3, [r7, #208] ; 0xd0 - 8006c68: f103 0214 add.w r2, r3, #20 - 8006c6c: f107 0394 add.w r3, r7, #148 ; 0x94 - 8006c70: 4611 mov r1, r2 - 8006c72: 4618 mov r0, r3 - 8006c74: f7ff f9fe bl 8006074 + 8006bf8: f8d7 30d0 ldr.w r3, [r7, #208] ; 0xd0 + 8006bfc: f103 0214 add.w r2, r3, #20 + 8006c00: f107 0394 add.w r3, r7, #148 ; 0x94 + 8006c04: 4611 mov r1, r2 + 8006c06: 4618 mov r0, r3 + 8006c08: f7ff f9fe bl 8006008 coords.x1 -= w; - 8006c78: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 - 8006c7c: b29a uxth r2, r3 - 8006c7e: f8b7 30be ldrh.w r3, [r7, #190] ; 0xbe - 8006c82: 1ad3 subs r3, r2, r3 - 8006c84: b29b uxth r3, r3 - 8006c86: b21b sxth r3, r3 - 8006c88: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 + 8006c0c: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 + 8006c10: b29a uxth r2, r3 + 8006c12: f8b7 30be ldrh.w r3, [r7, #190] ; 0xbe + 8006c16: 1ad3 subs r3, r2, r3 + 8006c18: b29b uxth r3, r3 + 8006c1a: b21b sxth r3, r3 + 8006c1c: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 coords.x2 += w; - 8006c8c: f9b7 3098 ldrsh.w r3, [r7, #152] ; 0x98 - 8006c90: b29a uxth r2, r3 - 8006c92: f8b7 30be ldrh.w r3, [r7, #190] ; 0xbe - 8006c96: 4413 add r3, r2 - 8006c98: b29b uxth r3, r3 - 8006c9a: b21b sxth r3, r3 - 8006c9c: f8a7 3098 strh.w r3, [r7, #152] ; 0x98 + 8006c20: f9b7 3098 ldrsh.w r3, [r7, #152] ; 0x98 + 8006c24: b29a uxth r2, r3 + 8006c26: f8b7 30be ldrh.w r3, [r7, #190] ; 0xbe + 8006c2a: 4413 add r3, r2 + 8006c2c: b29b uxth r3, r3 + 8006c2e: b21b sxth r3, r3 + 8006c30: f8a7 3098 strh.w r3, [r7, #152] ; 0x98 coords.y1 -= h; - 8006ca0: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 - 8006ca4: b29a uxth r2, r3 - 8006ca6: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc - 8006caa: 1ad3 subs r3, r2, r3 - 8006cac: b29b uxth r3, r3 - 8006cae: b21b sxth r3, r3 - 8006cb0: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 + 8006c34: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 + 8006c38: b29a uxth r2, r3 + 8006c3a: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc + 8006c3e: 1ad3 subs r3, r2, r3 + 8006c40: b29b uxth r3, r3 + 8006c42: b21b sxth r3, r3 + 8006c44: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 coords.y2 += h; - 8006cb4: f9b7 309a ldrsh.w r3, [r7, #154] ; 0x9a - 8006cb8: b29a uxth r2, r3 - 8006cba: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc - 8006cbe: 4413 add r3, r2 - 8006cc0: b29b uxth r3, r3 - 8006cc2: b21b sxth r3, r3 - 8006cc4: f8a7 309a strh.w r3, [r7, #154] ; 0x9a + 8006c48: f9b7 309a ldrsh.w r3, [r7, #154] ; 0x9a + 8006c4c: b29a uxth r2, r3 + 8006c4e: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc + 8006c52: 4413 add r3, r2 + 8006c54: b29b uxth r3, r3 + 8006c56: b21b sxth r3, r3 + 8006c58: f8a7 309a strh.w r3, [r7, #154] ; 0x9a lv_obj_draw_part_dsc_t part_dsc; lv_obj_draw_dsc_init(&part_dsc, draw_ctx); - 8006cc8: f107 0344 add.w r3, r7, #68 ; 0x44 - 8006ccc: f8d7 10c0 ldr.w r1, [r7, #192] ; 0xc0 - 8006cd0: 4618 mov r0, r3 - 8006cd2: f002 f8cc bl 8008e6e + 8006c5c: f107 0344 add.w r3, r7, #68 ; 0x44 + 8006c60: f8d7 10c0 ldr.w r1, [r7, #192] ; 0xc0 + 8006c64: 4618 mov r0, r3 + 8006c66: f002 f8cc bl 8008e02 part_dsc.class_p = MY_CLASS; - 8006cd6: 4b9f ldr r3, [pc, #636] ; (8006f54 ) - 8006cd8: 64bb str r3, [r7, #72] ; 0x48 + 8006c6a: 4b9f ldr r3, [pc, #636] ; (8006ee8 ) + 8006c6c: 64bb str r3, [r7, #72] ; 0x48 part_dsc.type = LV_OBJ_DRAW_PART_RECTANGLE; - 8006cda: 2300 movs r3, #0 - 8006cdc: 64fb str r3, [r7, #76] ; 0x4c + 8006c6e: 2300 movs r3, #0 + 8006c70: 64fb str r3, [r7, #76] ; 0x4c part_dsc.rect_dsc = &draw_dsc; - 8006cde: f107 030c add.w r3, r7, #12 - 8006ce2: 657b str r3, [r7, #84] ; 0x54 + 8006c72: f107 030c add.w r3, r7, #12 + 8006c76: 657b str r3, [r7, #84] ; 0x54 part_dsc.draw_area = &coords; - 8006ce4: f107 0394 add.w r3, r7, #148 ; 0x94 - 8006ce8: 653b str r3, [r7, #80] ; 0x50 + 8006c78: f107 0394 add.w r3, r7, #148 ; 0x94 + 8006c7c: 653b str r3, [r7, #80] ; 0x50 part_dsc.part = LV_PART_MAIN; - 8006cea: 2300 movs r3, #0 - 8006cec: 67bb str r3, [r7, #120] ; 0x78 + 8006c7e: 2300 movs r3, #0 + 8006c80: 67bb str r3, [r7, #120] ; 0x78 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_dsc); - 8006cee: f107 0344 add.w r3, r7, #68 ; 0x44 - 8006cf2: 461a mov r2, r3 - 8006cf4: 211a movs r1, #26 - 8006cf6: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006cfa: f7fb fbc1 bl 8002480 + 8006c82: f107 0344 add.w r3, r7, #68 ; 0x44 + 8006c86: 461a mov r2, r3 + 8006c88: 211a movs r1, #26 + 8006c8a: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006c8e: f7fb fbc1 bl 8002414 #if LV_DRAW_COMPLEX /*With clip corner enabled draw the bg img separately to make it clipped*/ bool clip_corner = (lv_obj_get_style_clip_corner(obj, LV_PART_MAIN) && draw_dsc.radius != 0) ? true : false; - 8006cfe: 2100 movs r1, #0 - 8006d00: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006d04: f7ff fba4 bl 8006450 - 8006d08: 4603 mov r3, r0 - 8006d0a: 2b00 cmp r3, #0 - 8006d0c: d005 beq.n 8006d1a - 8006d0e: f9b7 300c ldrsh.w r3, [r7, #12] - 8006d12: 2b00 cmp r3, #0 - 8006d14: d001 beq.n 8006d1a - 8006d16: 2301 movs r3, #1 - 8006d18: e000 b.n 8006d1c - 8006d1a: 2300 movs r3, #0 - 8006d1c: f887 30bb strb.w r3, [r7, #187] ; 0xbb - 8006d20: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 8006d24: f003 0301 and.w r3, r3, #1 - 8006d28: f887 30bb strb.w r3, [r7, #187] ; 0xbb + 8006c92: 2100 movs r1, #0 + 8006c94: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006c98: f7ff fba4 bl 80063e4 + 8006c9c: 4603 mov r3, r0 + 8006c9e: 2b00 cmp r3, #0 + 8006ca0: d005 beq.n 8006cae + 8006ca2: f9b7 300c ldrsh.w r3, [r7, #12] + 8006ca6: 2b00 cmp r3, #0 + 8006ca8: d001 beq.n 8006cae + 8006caa: 2301 movs r3, #1 + 8006cac: e000 b.n 8006cb0 + 8006cae: 2300 movs r3, #0 + 8006cb0: f887 30bb strb.w r3, [r7, #187] ; 0xbb + 8006cb4: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 8006cb8: f003 0301 and.w r3, r3, #1 + 8006cbc: f887 30bb strb.w r3, [r7, #187] ; 0xbb const void * bg_img_src = draw_dsc.bg_img_src; - 8006d2c: 69fb ldr r3, [r7, #28] - 8006d2e: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 8006cc0: 69fb ldr r3, [r7, #28] + 8006cc2: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 if(clip_corner) { - 8006d32: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 8006d36: 2b00 cmp r3, #0 - 8006d38: d001 beq.n 8006d3e + 8006cc6: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 8006cca: 2b00 cmp r3, #0 + 8006ccc: d001 beq.n 8006cd2 draw_dsc.bg_img_src = NULL; - 8006d3a: 2300 movs r3, #0 - 8006d3c: 61fb str r3, [r7, #28] + 8006cce: 2300 movs r3, #0 + 8006cd0: 61fb str r3, [r7, #28] } #endif lv_draw_rect(draw_ctx, &draw_dsc, &coords); - 8006d3e: f107 0294 add.w r2, r7, #148 ; 0x94 - 8006d42: f107 030c add.w r3, r7, #12 - 8006d46: 4619 mov r1, r3 - 8006d48: f8d7 00c0 ldr.w r0, [r7, #192] ; 0xc0 - 8006d4c: f00e fd94 bl 8015878 + 8006cd2: f107 0294 add.w r2, r7, #148 ; 0x94 + 8006cd6: f107 030c add.w r3, r7, #12 + 8006cda: 4619 mov r1, r3 + 8006cdc: f8d7 00c0 ldr.w r0, [r7, #192] ; 0xc0 + 8006ce0: f00e fd80 bl 80157e4 #if LV_DRAW_COMPLEX if(clip_corner) { - 8006d50: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 8006d54: 2b00 cmp r3, #0 - 8006d56: d033 beq.n 8006dc0 + 8006ce4: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 8006ce8: 2b00 cmp r3, #0 + 8006cea: d033 beq.n 8006d54 lv_draw_mask_radius_param_t * mp = lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t)); - 8006d58: 2018 movs r0, #24 - 8006d5a: f02b fe51 bl 8032a00 - 8006d5e: f8c7 00b0 str.w r0, [r7, #176] ; 0xb0 + 8006cec: 2018 movs r0, #24 + 8006cee: f02b fe3d bl 803296c + 8006cf2: f8c7 00b0 str.w r0, [r7, #176] ; 0xb0 lv_draw_mask_radius_init(mp, &obj->coords, draw_dsc.radius, false); - 8006d62: f8d7 30d0 ldr.w r3, [r7, #208] ; 0xd0 - 8006d66: f103 0114 add.w r1, r3, #20 - 8006d6a: f9b7 200c ldrsh.w r2, [r7, #12] - 8006d6e: 2300 movs r3, #0 - 8006d70: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 8006d74: f00c fd3c bl 80137f0 + 8006cf6: f8d7 30d0 ldr.w r3, [r7, #208] ; 0xd0 + 8006cfa: f103 0114 add.w r1, r3, #20 + 8006cfe: f9b7 200c ldrsh.w r2, [r7, #12] + 8006d02: 2300 movs r3, #0 + 8006d04: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 8006d08: f00c fd28 bl 801375c /*Add the mask and use `obj+8` as custom id. Don't use `obj` directly because it might be used by the user*/ lv_draw_mask_add(mp, obj + 8); - 8006d78: f8d7 30d0 ldr.w r3, [r7, #208] ; 0xd0 - 8006d7c: f503 7390 add.w r3, r3, #288 ; 0x120 - 8006d80: 4619 mov r1, r3 - 8006d82: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 8006d86: f00c f95d bl 8013044 + 8006d0c: f8d7 30d0 ldr.w r3, [r7, #208] ; 0xd0 + 8006d10: f503 7390 add.w r3, r3, #288 ; 0x120 + 8006d14: 4619 mov r1, r3 + 8006d16: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 8006d1a: f00c f949 bl 8012fb0 if(bg_img_src) { - 8006d8a: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 8006d8e: 2b00 cmp r3, #0 - 8006d90: d016 beq.n 8006dc0 + 8006d1e: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 8006d22: 2b00 cmp r3, #0 + 8006d24: d016 beq.n 8006d54 draw_dsc.bg_opa = LV_OPA_TRANSP; - 8006d92: 2300 movs r3, #0 - 8006d94: 73fb strb r3, [r7, #15] + 8006d26: 2300 movs r3, #0 + 8006d28: 73fb strb r3, [r7, #15] draw_dsc.border_opa = LV_OPA_TRANSP; - 8006d96: 2300 movs r3, #0 - 8006d98: f887 302e strb.w r3, [r7, #46] ; 0x2e + 8006d2a: 2300 movs r3, #0 + 8006d2c: f887 302e strb.w r3, [r7, #46] ; 0x2e draw_dsc.outline_opa = LV_OPA_TRANSP; - 8006d9c: 2300 movs r3, #0 - 8006d9e: f887 3036 strb.w r3, [r7, #54] ; 0x36 + 8006d30: 2300 movs r3, #0 + 8006d32: f887 3036 strb.w r3, [r7, #54] ; 0x36 draw_dsc.shadow_opa = LV_OPA_TRANSP; - 8006da2: 2300 movs r3, #0 - 8006da4: f887 3042 strb.w r3, [r7, #66] ; 0x42 + 8006d36: 2300 movs r3, #0 + 8006d38: f887 3042 strb.w r3, [r7, #66] ; 0x42 draw_dsc.bg_img_src = bg_img_src; - 8006da8: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 8006dac: 61fb str r3, [r7, #28] + 8006d3c: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 8006d40: 61fb str r3, [r7, #28] lv_draw_rect(draw_ctx, &draw_dsc, &coords); - 8006dae: f107 0294 add.w r2, r7, #148 ; 0x94 - 8006db2: f107 030c add.w r3, r7, #12 - 8006db6: 4619 mov r1, r3 - 8006db8: f8d7 00c0 ldr.w r0, [r7, #192] ; 0xc0 - 8006dbc: f00e fd5c bl 8015878 + 8006d42: f107 0294 add.w r2, r7, #148 ; 0x94 + 8006d46: f107 030c add.w r3, r7, #12 + 8006d4a: 4619 mov r1, r3 + 8006d4c: f8d7 00c0 ldr.w r0, [r7, #192] ; 0xc0 + 8006d50: f00e fd48 bl 80157e4 } } #endif lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_dsc); - 8006dc0: f107 0344 add.w r3, r7, #68 ; 0x44 - 8006dc4: 461a mov r2, r3 - 8006dc6: 211b movs r1, #27 - 8006dc8: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006dcc: f7fb fb58 bl 8002480 - 8006dd0: e0bd b.n 8006f4e + 8006d54: f107 0344 add.w r3, r7, #68 ; 0x44 + 8006d58: 461a mov r2, r3 + 8006d5a: 211b movs r1, #27 + 8006d5c: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006d60: f7fb fb58 bl 8002414 + 8006d64: e0bd b.n 8006ee2 } else if(code == LV_EVENT_DRAW_POST) { - 8006dd2: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 - 8006dd6: 2b18 cmp r3, #24 - 8006dd8: f040 80b9 bne.w 8006f4e + 8006d66: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 + 8006d6a: 2b18 cmp r3, #24 + 8006d6c: f040 80b9 bne.w 8006ee2 lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 8006ddc: 6878 ldr r0, [r7, #4] - 8006dde: f7fb fce5 bl 80027ac - 8006de2: f8c7 00cc str.w r0, [r7, #204] ; 0xcc + 8006d70: 6878 ldr r0, [r7, #4] + 8006d72: f7fb fce5 bl 8002740 + 8006d76: f8c7 00cc str.w r0, [r7, #204] ; 0xcc draw_scrollbar(obj, draw_ctx); - 8006de6: f8d7 10cc ldr.w r1, [r7, #204] ; 0xcc - 8006dea: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006dee: f000 f8b3 bl 8006f58 + 8006d7a: f8d7 10cc ldr.w r1, [r7, #204] ; 0xcc + 8006d7e: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006d82: f000 f8b3 bl 8006eec #if LV_DRAW_COMPLEX if(lv_obj_get_style_clip_corner(obj, LV_PART_MAIN)) { - 8006df2: 2100 movs r1, #0 - 8006df4: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006df8: f7ff fb2a bl 8006450 - 8006dfc: 4603 mov r3, r0 - 8006dfe: 2b00 cmp r3, #0 - 8006e00: d014 beq.n 8006e2c + 8006d86: 2100 movs r1, #0 + 8006d88: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006d8c: f7ff fb2a bl 80063e4 + 8006d90: 4603 mov r3, r0 + 8006d92: 2b00 cmp r3, #0 + 8006d94: d014 beq.n 8006dc0 lv_draw_mask_radius_param_t * param = lv_draw_mask_remove_custom(obj + 8); - 8006e02: f8d7 30d0 ldr.w r3, [r7, #208] ; 0xd0 - 8006e06: f503 7390 add.w r3, r3, #288 ; 0x120 - 8006e0a: 4618 mov r0, r3 - 8006e0c: f00c f9b6 bl 801317c - 8006e10: f8c7 00c8 str.w r0, [r7, #200] ; 0xc8 + 8006d96: f8d7 30d0 ldr.w r3, [r7, #208] ; 0xd0 + 8006d9a: f503 7390 add.w r3, r3, #288 ; 0x120 + 8006d9e: 4618 mov r0, r3 + 8006da0: f00c f9a2 bl 80130e8 + 8006da4: f8c7 00c8 str.w r0, [r7, #200] ; 0xc8 if(param) { - 8006e14: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 - 8006e18: 2b00 cmp r3, #0 - 8006e1a: d007 beq.n 8006e2c + 8006da8: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 + 8006dac: 2b00 cmp r3, #0 + 8006dae: d007 beq.n 8006dc0 lv_draw_mask_free_param(param); - 8006e1c: f8d7 00c8 ldr.w r0, [r7, #200] ; 0xc8 - 8006e20: f00c f9d4 bl 80131cc + 8006db0: f8d7 00c8 ldr.w r0, [r7, #200] ; 0xc8 + 8006db4: f00c f9c0 bl 8013138 lv_mem_buf_release(param); - 8006e24: f8d7 00c8 ldr.w r0, [r7, #200] ; 0xc8 - 8006e28: f02b fe96 bl 8032b58 + 8006db8: f8d7 00c8 ldr.w r0, [r7, #200] ; 0xc8 + 8006dbc: f02b fe82 bl 8032ac4 } } #endif /*If the border is drawn later disable loading other properties*/ if(lv_obj_get_style_border_post(obj, LV_PART_MAIN)) { - 8006e2c: 2100 movs r1, #0 - 8006e2e: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006e32: f7ff fa9b bl 800636c - 8006e36: 4603 mov r3, r0 - 8006e38: 2b00 cmp r3, #0 - 8006e3a: f000 8088 beq.w 8006f4e + 8006dc0: 2100 movs r1, #0 + 8006dc2: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006dc6: f7ff fa9b bl 8006300 + 8006dca: 4603 mov r3, r0 + 8006dcc: 2b00 cmp r3, #0 + 8006dce: f000 8088 beq.w 8006ee2 lv_draw_rect_dsc_t draw_dsc; lv_draw_rect_dsc_init(&draw_dsc); - 8006e3e: f107 030c add.w r3, r7, #12 - 8006e42: 4618 mov r0, r3 - 8006e44: f00e fcd6 bl 80157f4 + 8006dd2: f107 030c add.w r3, r7, #12 + 8006dd6: 4618 mov r0, r3 + 8006dd8: f00e fcc2 bl 8015760 draw_dsc.bg_opa = LV_OPA_TRANSP; - 8006e48: 2300 movs r3, #0 - 8006e4a: 73fb strb r3, [r7, #15] + 8006ddc: 2300 movs r3, #0 + 8006dde: 73fb strb r3, [r7, #15] draw_dsc.bg_img_opa = LV_OPA_TRANSP; - 8006e4c: 2300 movs r3, #0 - 8006e4e: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 8006de0: 2300 movs r3, #0 + 8006de2: f887 3026 strb.w r3, [r7, #38] ; 0x26 draw_dsc.outline_opa = LV_OPA_TRANSP; - 8006e52: 2300 movs r3, #0 - 8006e54: f887 3036 strb.w r3, [r7, #54] ; 0x36 + 8006de6: 2300 movs r3, #0 + 8006de8: f887 3036 strb.w r3, [r7, #54] ; 0x36 draw_dsc.shadow_opa = LV_OPA_TRANSP; - 8006e58: 2300 movs r3, #0 - 8006e5a: f887 3042 strb.w r3, [r7, #66] ; 0x42 + 8006dec: 2300 movs r3, #0 + 8006dee: f887 3042 strb.w r3, [r7, #66] ; 0x42 lv_obj_init_draw_rect_dsc(obj, LV_PART_MAIN, &draw_dsc); - 8006e5e: f107 030c add.w r3, r7, #12 - 8006e62: 461a mov r2, r3 - 8006e64: 2100 movs r1, #0 - 8006e66: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006e6a: f001 fbac bl 80085c6 + 8006df2: f107 030c add.w r3, r7, #12 + 8006df6: 461a mov r2, r3 + 8006df8: 2100 movs r1, #0 + 8006dfa: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006dfe: f001 fbac bl 800855a lv_coord_t w = lv_obj_get_style_transform_width(obj, LV_PART_MAIN); - 8006e6e: 2100 movs r1, #0 - 8006e70: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006e74: f7ff f9d5 bl 8006222 - 8006e78: 4603 mov r3, r0 - 8006e7a: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 + 8006e02: 2100 movs r1, #0 + 8006e04: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006e08: f7ff f9d5 bl 80061b6 + 8006e0c: 4603 mov r3, r0 + 8006e0e: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 lv_coord_t h = lv_obj_get_style_transform_height(obj, LV_PART_MAIN); - 8006e7e: 2100 movs r1, #0 - 8006e80: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006e84: f7ff f9e0 bl 8006248 - 8006e88: 4603 mov r3, r0 - 8006e8a: f8a7 30c4 strh.w r3, [r7, #196] ; 0xc4 + 8006e12: 2100 movs r1, #0 + 8006e14: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006e18: f7ff f9e0 bl 80061dc + 8006e1c: 4603 mov r3, r0 + 8006e1e: f8a7 30c4 strh.w r3, [r7, #196] ; 0xc4 lv_area_t coords; lv_area_copy(&coords, &obj->coords); - 8006e8e: f8d7 30d0 ldr.w r3, [r7, #208] ; 0xd0 - 8006e92: f103 0214 add.w r2, r3, #20 - 8006e96: f107 038c add.w r3, r7, #140 ; 0x8c - 8006e9a: 4611 mov r1, r2 - 8006e9c: 4618 mov r0, r3 - 8006e9e: f7ff f8e9 bl 8006074 + 8006e22: f8d7 30d0 ldr.w r3, [r7, #208] ; 0xd0 + 8006e26: f103 0214 add.w r2, r3, #20 + 8006e2a: f107 038c add.w r3, r7, #140 ; 0x8c + 8006e2e: 4611 mov r1, r2 + 8006e30: 4618 mov r0, r3 + 8006e32: f7ff f8e9 bl 8006008 coords.x1 -= w; - 8006ea2: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c - 8006ea6: b29a uxth r2, r3 - 8006ea8: f8b7 30c6 ldrh.w r3, [r7, #198] ; 0xc6 - 8006eac: 1ad3 subs r3, r2, r3 - 8006eae: b29b uxth r3, r3 - 8006eb0: b21b sxth r3, r3 - 8006eb2: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 8006e36: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c + 8006e3a: b29a uxth r2, r3 + 8006e3c: f8b7 30c6 ldrh.w r3, [r7, #198] ; 0xc6 + 8006e40: 1ad3 subs r3, r2, r3 + 8006e42: b29b uxth r3, r3 + 8006e44: b21b sxth r3, r3 + 8006e46: f8a7 308c strh.w r3, [r7, #140] ; 0x8c coords.x2 += w; - 8006eb6: f9b7 3090 ldrsh.w r3, [r7, #144] ; 0x90 - 8006eba: b29a uxth r2, r3 - 8006ebc: f8b7 30c6 ldrh.w r3, [r7, #198] ; 0xc6 - 8006ec0: 4413 add r3, r2 - 8006ec2: b29b uxth r3, r3 - 8006ec4: b21b sxth r3, r3 - 8006ec6: f8a7 3090 strh.w r3, [r7, #144] ; 0x90 + 8006e4a: f9b7 3090 ldrsh.w r3, [r7, #144] ; 0x90 + 8006e4e: b29a uxth r2, r3 + 8006e50: f8b7 30c6 ldrh.w r3, [r7, #198] ; 0xc6 + 8006e54: 4413 add r3, r2 + 8006e56: b29b uxth r3, r3 + 8006e58: b21b sxth r3, r3 + 8006e5a: f8a7 3090 strh.w r3, [r7, #144] ; 0x90 coords.y1 -= h; - 8006eca: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e - 8006ece: b29a uxth r2, r3 - 8006ed0: f8b7 30c4 ldrh.w r3, [r7, #196] ; 0xc4 - 8006ed4: 1ad3 subs r3, r2, r3 - 8006ed6: b29b uxth r3, r3 - 8006ed8: b21b sxth r3, r3 - 8006eda: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 8006e5e: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e + 8006e62: b29a uxth r2, r3 + 8006e64: f8b7 30c4 ldrh.w r3, [r7, #196] ; 0xc4 + 8006e68: 1ad3 subs r3, r2, r3 + 8006e6a: b29b uxth r3, r3 + 8006e6c: b21b sxth r3, r3 + 8006e6e: f8a7 308e strh.w r3, [r7, #142] ; 0x8e coords.y2 += h; - 8006ede: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 - 8006ee2: b29a uxth r2, r3 - 8006ee4: f8b7 30c4 ldrh.w r3, [r7, #196] ; 0xc4 - 8006ee8: 4413 add r3, r2 - 8006eea: b29b uxth r3, r3 - 8006eec: b21b sxth r3, r3 - 8006eee: f8a7 3092 strh.w r3, [r7, #146] ; 0x92 + 8006e72: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 + 8006e76: b29a uxth r2, r3 + 8006e78: f8b7 30c4 ldrh.w r3, [r7, #196] ; 0xc4 + 8006e7c: 4413 add r3, r2 + 8006e7e: b29b uxth r3, r3 + 8006e80: b21b sxth r3, r3 + 8006e82: f8a7 3092 strh.w r3, [r7, #146] ; 0x92 lv_obj_draw_part_dsc_t part_dsc; lv_obj_draw_dsc_init(&part_dsc, draw_ctx); - 8006ef2: f107 0344 add.w r3, r7, #68 ; 0x44 - 8006ef6: f8d7 10cc ldr.w r1, [r7, #204] ; 0xcc - 8006efa: 4618 mov r0, r3 - 8006efc: f001 ffb7 bl 8008e6e + 8006e86: f107 0344 add.w r3, r7, #68 ; 0x44 + 8006e8a: f8d7 10cc ldr.w r1, [r7, #204] ; 0xcc + 8006e8e: 4618 mov r0, r3 + 8006e90: f001 ffb7 bl 8008e02 part_dsc.class_p = MY_CLASS; - 8006f00: 4b14 ldr r3, [pc, #80] ; (8006f54 ) - 8006f02: 64bb str r3, [r7, #72] ; 0x48 + 8006e94: 4b14 ldr r3, [pc, #80] ; (8006ee8 ) + 8006e96: 64bb str r3, [r7, #72] ; 0x48 part_dsc.type = LV_OBJ_DRAW_PART_BORDER_POST; - 8006f04: 2301 movs r3, #1 - 8006f06: 64fb str r3, [r7, #76] ; 0x4c + 8006e98: 2301 movs r3, #1 + 8006e9a: 64fb str r3, [r7, #76] ; 0x4c part_dsc.rect_dsc = &draw_dsc; - 8006f08: f107 030c add.w r3, r7, #12 - 8006f0c: 657b str r3, [r7, #84] ; 0x54 + 8006e9c: f107 030c add.w r3, r7, #12 + 8006ea0: 657b str r3, [r7, #84] ; 0x54 part_dsc.draw_area = &coords; - 8006f0e: f107 038c add.w r3, r7, #140 ; 0x8c - 8006f12: 653b str r3, [r7, #80] ; 0x50 + 8006ea2: f107 038c add.w r3, r7, #140 ; 0x8c + 8006ea6: 653b str r3, [r7, #80] ; 0x50 part_dsc.part = LV_PART_MAIN; - 8006f14: 2300 movs r3, #0 - 8006f16: 67bb str r3, [r7, #120] ; 0x78 + 8006ea8: 2300 movs r3, #0 + 8006eaa: 67bb str r3, [r7, #120] ; 0x78 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_dsc); - 8006f18: f107 0344 add.w r3, r7, #68 ; 0x44 - 8006f1c: 461a mov r2, r3 - 8006f1e: 211a movs r1, #26 - 8006f20: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006f24: f7fb faac bl 8002480 + 8006eac: f107 0344 add.w r3, r7, #68 ; 0x44 + 8006eb0: 461a mov r2, r3 + 8006eb2: 211a movs r1, #26 + 8006eb4: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006eb8: f7fb faac bl 8002414 lv_draw_rect(draw_ctx, &draw_dsc, &coords); - 8006f28: f107 028c add.w r2, r7, #140 ; 0x8c - 8006f2c: f107 030c add.w r3, r7, #12 - 8006f30: 4619 mov r1, r3 - 8006f32: f8d7 00cc ldr.w r0, [r7, #204] ; 0xcc - 8006f36: f00e fc9f bl 8015878 + 8006ebc: f107 028c add.w r2, r7, #140 ; 0x8c + 8006ec0: f107 030c add.w r3, r7, #12 + 8006ec4: 4619 mov r1, r3 + 8006ec6: f8d7 00cc ldr.w r0, [r7, #204] ; 0xcc + 8006eca: f00e fc8b bl 80157e4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_dsc); - 8006f3a: f107 0344 add.w r3, r7, #68 ; 0x44 - 8006f3e: 461a mov r2, r3 - 8006f40: 211b movs r1, #27 - 8006f42: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 - 8006f46: f7fb fa9b bl 8002480 - 8006f4a: e000 b.n 8006f4e + 8006ece: f107 0344 add.w r3, r7, #68 ; 0x44 + 8006ed2: 461a mov r2, r3 + 8006ed4: 211b movs r1, #27 + 8006ed6: f8d7 00d0 ldr.w r0, [r7, #208] ; 0xd0 + 8006eda: f7fb fa9b bl 8002414 + 8006ede: e000 b.n 8006ee2 if(info->res == LV_COVER_RES_MASKED) return; - 8006f4c: bf00 nop + 8006ee0: bf00 nop } } } - 8006f4e: 37d8 adds r7, #216 ; 0xd8 - 8006f50: 46bd mov sp, r7 - 8006f52: bd80 pop {r7, pc} - 8006f54: 0806ca34 .word 0x0806ca34 + 8006ee2: 37d8 adds r7, #216 ; 0xd8 + 8006ee4: 46bd mov sp, r7 + 8006ee6: bd80 pop {r7, pc} + 8006ee8: 0806c98c .word 0x0806c98c -08006f58 : +08006eec : static void draw_scrollbar(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx) { - 8006f58: b580 push {r7, lr} - 8006f5a: b0a8 sub sp, #160 ; 0xa0 - 8006f5c: af00 add r7, sp, #0 - 8006f5e: 6078 str r0, [r7, #4] - 8006f60: 6039 str r1, [r7, #0] + 8006eec: b580 push {r7, lr} + 8006eee: b0a8 sub sp, #160 ; 0xa0 + 8006ef0: af00 add r7, sp, #0 + 8006ef2: 6078 str r0, [r7, #4] + 8006ef4: 6039 str r1, [r7, #0] lv_area_t hor_area; lv_area_t ver_area; lv_obj_get_scrollbar_area(obj, &hor_area, &ver_area); - 8006f62: f107 028c add.w r2, r7, #140 ; 0x8c - 8006f66: f107 0394 add.w r3, r7, #148 ; 0x94 - 8006f6a: 4619 mov r1, r3 - 8006f6c: 6878 ldr r0, [r7, #4] - 8006f6e: f005 f9bd bl 800c2ec + 8006ef6: f107 028c add.w r2, r7, #140 ; 0x8c + 8006efa: f107 0394 add.w r3, r7, #148 ; 0x94 + 8006efe: 4619 mov r1, r3 + 8006f00: 6878 ldr r0, [r7, #4] + 8006f02: f005 f9bd bl 800c280 if(lv_area_get_size(&hor_area) <= 0 && lv_area_get_size(&ver_area) <= 0) return; - 8006f72: f107 0394 add.w r3, r7, #148 ; 0x94 - 8006f76: 4618 mov r0, r3 - 8006f78: f02a f80c bl 8030f94 - 8006f7c: 4603 mov r3, r0 - 8006f7e: 2b00 cmp r3, #0 - 8006f80: d107 bne.n 8006f92 - 8006f82: f107 038c add.w r3, r7, #140 ; 0x8c - 8006f86: 4618 mov r0, r3 - 8006f88: f02a f804 bl 8030f94 - 8006f8c: 4603 mov r3, r0 - 8006f8e: 2b00 cmp r3, #0 - 8006f90: d062 beq.n 8007058 + 8006f06: f107 0394 add.w r3, r7, #148 ; 0x94 + 8006f0a: 4618 mov r0, r3 + 8006f0c: f029 fff8 bl 8030f00 + 8006f10: 4603 mov r3, r0 + 8006f12: 2b00 cmp r3, #0 + 8006f14: d107 bne.n 8006f26 + 8006f16: f107 038c add.w r3, r7, #140 ; 0x8c + 8006f1a: 4618 mov r0, r3 + 8006f1c: f029 fff0 bl 8030f00 + 8006f20: 4603 mov r3, r0 + 8006f22: 2b00 cmp r3, #0 + 8006f24: d062 beq.n 8006fec lv_draw_rect_dsc_t draw_dsc; lv_res_t sb_res = scrollbar_init_draw_dsc(obj, &draw_dsc); - 8006f92: f107 0354 add.w r3, r7, #84 ; 0x54 - 8006f96: 4619 mov r1, r3 - 8006f98: 6878 ldr r0, [r7, #4] - 8006f9a: f000 f865 bl 8007068 - 8006f9e: 4603 mov r3, r0 - 8006fa0: f887 309f strb.w r3, [r7, #159] ; 0x9f + 8006f26: f107 0354 add.w r3, r7, #84 ; 0x54 + 8006f2a: 4619 mov r1, r3 + 8006f2c: 6878 ldr r0, [r7, #4] + 8006f2e: f000 f865 bl 8006ffc + 8006f32: 4603 mov r3, r0 + 8006f34: f887 309f strb.w r3, [r7, #159] ; 0x9f if(sb_res != LV_RES_OK) return; - 8006fa4: f897 309f ldrb.w r3, [r7, #159] ; 0x9f - 8006fa8: 2b01 cmp r3, #1 - 8006faa: d157 bne.n 800705c + 8006f38: f897 309f ldrb.w r3, [r7, #159] ; 0x9f + 8006f3c: 2b01 cmp r3, #1 + 8006f3e: d157 bne.n 8006ff0 lv_obj_draw_part_dsc_t part_dsc; lv_obj_draw_dsc_init(&part_dsc, draw_ctx); - 8006fac: f107 030c add.w r3, r7, #12 - 8006fb0: 6839 ldr r1, [r7, #0] - 8006fb2: 4618 mov r0, r3 - 8006fb4: f001 ff5b bl 8008e6e + 8006f40: f107 030c add.w r3, r7, #12 + 8006f44: 6839 ldr r1, [r7, #0] + 8006f46: 4618 mov r0, r3 + 8006f48: f001 ff5b bl 8008e02 part_dsc.class_p = MY_CLASS; - 8006fb8: 4b2a ldr r3, [pc, #168] ; (8007064 ) - 8006fba: 613b str r3, [r7, #16] + 8006f4c: 4b2a ldr r3, [pc, #168] ; (8006ff8 ) + 8006f4e: 613b str r3, [r7, #16] part_dsc.type = LV_OBJ_DRAW_PART_SCROLLBAR; - 8006fbc: 2302 movs r3, #2 - 8006fbe: 617b str r3, [r7, #20] + 8006f50: 2302 movs r3, #2 + 8006f52: 617b str r3, [r7, #20] part_dsc.rect_dsc = &draw_dsc; - 8006fc0: f107 0354 add.w r3, r7, #84 ; 0x54 - 8006fc4: 61fb str r3, [r7, #28] + 8006f54: f107 0354 add.w r3, r7, #84 ; 0x54 + 8006f58: 61fb str r3, [r7, #28] part_dsc.part = LV_PART_SCROLLBAR; - 8006fc6: f44f 3380 mov.w r3, #65536 ; 0x10000 - 8006fca: 643b str r3, [r7, #64] ; 0x40 + 8006f5a: f44f 3380 mov.w r3, #65536 ; 0x10000 + 8006f5e: 643b str r3, [r7, #64] ; 0x40 if(lv_area_get_size(&hor_area) > 0) { - 8006fcc: f107 0394 add.w r3, r7, #148 ; 0x94 - 8006fd0: 4618 mov r0, r3 - 8006fd2: f029 ffdf bl 8030f94 - 8006fd6: 4603 mov r3, r0 - 8006fd8: 2b00 cmp r3, #0 - 8006fda: d018 beq.n 800700e + 8006f60: f107 0394 add.w r3, r7, #148 ; 0x94 + 8006f64: 4618 mov r0, r3 + 8006f66: f029 ffcb bl 8030f00 + 8006f6a: 4603 mov r3, r0 + 8006f6c: 2b00 cmp r3, #0 + 8006f6e: d018 beq.n 8006fa2 part_dsc.draw_area = &hor_area; - 8006fdc: f107 0394 add.w r3, r7, #148 ; 0x94 - 8006fe0: 61bb str r3, [r7, #24] + 8006f70: f107 0394 add.w r3, r7, #148 ; 0x94 + 8006f74: 61bb str r3, [r7, #24] lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_dsc); - 8006fe2: f107 030c add.w r3, r7, #12 - 8006fe6: 461a mov r2, r3 - 8006fe8: 211a movs r1, #26 - 8006fea: 6878 ldr r0, [r7, #4] - 8006fec: f7fb fa48 bl 8002480 + 8006f76: f107 030c add.w r3, r7, #12 + 8006f7a: 461a mov r2, r3 + 8006f7c: 211a movs r1, #26 + 8006f7e: 6878 ldr r0, [r7, #4] + 8006f80: f7fb fa48 bl 8002414 lv_draw_rect(draw_ctx, &draw_dsc, &hor_area); - 8006ff0: f107 0294 add.w r2, r7, #148 ; 0x94 - 8006ff4: f107 0354 add.w r3, r7, #84 ; 0x54 - 8006ff8: 4619 mov r1, r3 - 8006ffa: 6838 ldr r0, [r7, #0] - 8006ffc: f00e fc3c bl 8015878 + 8006f84: f107 0294 add.w r2, r7, #148 ; 0x94 + 8006f88: f107 0354 add.w r3, r7, #84 ; 0x54 + 8006f8c: 4619 mov r1, r3 + 8006f8e: 6838 ldr r0, [r7, #0] + 8006f90: f00e fc28 bl 80157e4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_dsc); - 8007000: f107 030c add.w r3, r7, #12 - 8007004: 461a mov r2, r3 - 8007006: 211b movs r1, #27 - 8007008: 6878 ldr r0, [r7, #4] - 800700a: f7fb fa39 bl 8002480 + 8006f94: f107 030c add.w r3, r7, #12 + 8006f98: 461a mov r2, r3 + 8006f9a: 211b movs r1, #27 + 8006f9c: 6878 ldr r0, [r7, #4] + 8006f9e: f7fb fa39 bl 8002414 } if(lv_area_get_size(&ver_area) > 0) { - 800700e: f107 038c add.w r3, r7, #140 ; 0x8c - 8007012: 4618 mov r0, r3 - 8007014: f029 ffbe bl 8030f94 - 8007018: 4603 mov r3, r0 - 800701a: 2b00 cmp r3, #0 - 800701c: d01f beq.n 800705e + 8006fa2: f107 038c add.w r3, r7, #140 ; 0x8c + 8006fa6: 4618 mov r0, r3 + 8006fa8: f029 ffaa bl 8030f00 + 8006fac: 4603 mov r3, r0 + 8006fae: 2b00 cmp r3, #0 + 8006fb0: d01f beq.n 8006ff2 part_dsc.draw_area = &ver_area; - 800701e: f107 038c add.w r3, r7, #140 ; 0x8c - 8007022: 61bb str r3, [r7, #24] + 8006fb2: f107 038c add.w r3, r7, #140 ; 0x8c + 8006fb6: 61bb str r3, [r7, #24] lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_dsc); - 8007024: f107 030c add.w r3, r7, #12 - 8007028: 461a mov r2, r3 - 800702a: 211a movs r1, #26 - 800702c: 6878 ldr r0, [r7, #4] - 800702e: f7fb fa27 bl 8002480 + 8006fb8: f107 030c add.w r3, r7, #12 + 8006fbc: 461a mov r2, r3 + 8006fbe: 211a movs r1, #26 + 8006fc0: 6878 ldr r0, [r7, #4] + 8006fc2: f7fb fa27 bl 8002414 part_dsc.draw_area = &ver_area; - 8007032: f107 038c add.w r3, r7, #140 ; 0x8c - 8007036: 61bb str r3, [r7, #24] + 8006fc6: f107 038c add.w r3, r7, #140 ; 0x8c + 8006fca: 61bb str r3, [r7, #24] lv_draw_rect(draw_ctx, &draw_dsc, &ver_area); - 8007038: f107 028c add.w r2, r7, #140 ; 0x8c - 800703c: f107 0354 add.w r3, r7, #84 ; 0x54 - 8007040: 4619 mov r1, r3 - 8007042: 6838 ldr r0, [r7, #0] - 8007044: f00e fc18 bl 8015878 + 8006fcc: f107 028c add.w r2, r7, #140 ; 0x8c + 8006fd0: f107 0354 add.w r3, r7, #84 ; 0x54 + 8006fd4: 4619 mov r1, r3 + 8006fd6: 6838 ldr r0, [r7, #0] + 8006fd8: f00e fc04 bl 80157e4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_dsc); - 8007048: f107 030c add.w r3, r7, #12 - 800704c: 461a mov r2, r3 - 800704e: 211b movs r1, #27 - 8007050: 6878 ldr r0, [r7, #4] - 8007052: f7fb fa15 bl 8002480 - 8007056: e002 b.n 800705e + 8006fdc: f107 030c add.w r3, r7, #12 + 8006fe0: 461a mov r2, r3 + 8006fe2: 211b movs r1, #27 + 8006fe4: 6878 ldr r0, [r7, #4] + 8006fe6: f7fb fa15 bl 8002414 + 8006fea: e002 b.n 8006ff2 if(lv_area_get_size(&hor_area) <= 0 && lv_area_get_size(&ver_area) <= 0) return; - 8007058: bf00 nop - 800705a: e000 b.n 800705e + 8006fec: bf00 nop + 8006fee: e000 b.n 8006ff2 if(sb_res != LV_RES_OK) return; - 800705c: bf00 nop + 8006ff0: bf00 nop } } - 800705e: 37a0 adds r7, #160 ; 0xa0 - 8007060: 46bd mov sp, r7 - 8007062: bd80 pop {r7, pc} - 8007064: 0806ca34 .word 0x0806ca34 + 8006ff2: 37a0 adds r7, #160 ; 0xa0 + 8006ff4: 46bd mov sp, r7 + 8006ff6: bd80 pop {r7, pc} + 8006ff8: 0806c98c .word 0x0806c98c -08007068 : +08006ffc : * @param obj pointer to an object * @param dsc the draw descriptor to initialize * @return LV_RES_OK: the scrollbar is visible; LV_RES_INV: the scrollbar is not visible */ static lv_res_t scrollbar_init_draw_dsc(lv_obj_t * obj, lv_draw_rect_dsc_t * dsc) { - 8007068: b590 push {r4, r7, lr} - 800706a: b085 sub sp, #20 - 800706c: af00 add r7, sp, #0 - 800706e: 6078 str r0, [r7, #4] - 8007070: 6039 str r1, [r7, #0] + 8006ffc: b590 push {r4, r7, lr} + 8006ffe: b085 sub sp, #20 + 8007000: af00 add r7, sp, #0 + 8007002: 6078 str r0, [r7, #4] + 8007004: 6039 str r1, [r7, #0] lv_draw_rect_dsc_init(dsc); - 8007072: 6838 ldr r0, [r7, #0] - 8007074: f00e fbbe bl 80157f4 + 8007006: 6838 ldr r0, [r7, #0] + 8007008: f00e fbaa bl 8015760 dsc->bg_opa = lv_obj_get_style_bg_opa(obj, LV_PART_SCROLLBAR); - 8007078: f44f 3180 mov.w r1, #65536 ; 0x10000 - 800707c: 6878 ldr r0, [r7, #4] - 800707e: f7ff f92d bl 80062dc - 8007082: 4603 mov r3, r0 - 8007084: 461a mov r2, r3 - 8007086: 683b ldr r3, [r7, #0] - 8007088: 70da strb r2, [r3, #3] + 800700c: f44f 3180 mov.w r1, #65536 ; 0x10000 + 8007010: 6878 ldr r0, [r7, #4] + 8007012: f7ff f92d bl 8006270 + 8007016: 4603 mov r3, r0 + 8007018: 461a mov r2, r3 + 800701a: 683b ldr r3, [r7, #0] + 800701c: 70da strb r2, [r3, #3] if(dsc->bg_opa > LV_OPA_MIN) { - 800708a: 683b ldr r3, [r7, #0] - 800708c: 78db ldrb r3, [r3, #3] - 800708e: 2b02 cmp r3, #2 - 8007090: d906 bls.n 80070a0 + 800701e: 683b ldr r3, [r7, #0] + 8007020: 78db ldrb r3, [r3, #3] + 8007022: 2b02 cmp r3, #2 + 8007024: d906 bls.n 8007034 dsc->bg_color = lv_obj_get_style_bg_color(obj, LV_PART_SCROLLBAR); - 8007092: 683c ldr r4, [r7, #0] - 8007094: f44f 3180 mov.w r1, #65536 ; 0x10000 - 8007098: 6878 ldr r0, [r7, #4] - 800709a: f7ff f90e bl 80062ba - 800709e: 80a0 strh r0, [r4, #4] + 8007026: 683c ldr r4, [r7, #0] + 8007028: f44f 3180 mov.w r1, #65536 ; 0x10000 + 800702c: 6878 ldr r0, [r7, #4] + 800702e: f7ff f90e bl 800624e + 8007032: 80a0 strh r0, [r4, #4] } dsc->border_opa = lv_obj_get_style_border_opa(obj, LV_PART_SCROLLBAR); - 80070a0: f44f 3180 mov.w r1, #65536 ; 0x10000 - 80070a4: 6878 ldr r0, [r7, #4] - 80070a6: f7ff f93c bl 8006322 - 80070aa: 4603 mov r3, r0 - 80070ac: 461a mov r2, r3 - 80070ae: 683b ldr r3, [r7, #0] - 80070b0: f883 2022 strb.w r2, [r3, #34] ; 0x22 + 8007034: f44f 3180 mov.w r1, #65536 ; 0x10000 + 8007038: 6878 ldr r0, [r7, #4] + 800703a: f7ff f93c bl 80062b6 + 800703e: 4603 mov r3, r0 + 8007040: 461a mov r2, r3 + 8007042: 683b ldr r3, [r7, #0] + 8007044: f883 2022 strb.w r2, [r3, #34] ; 0x22 if(dsc->border_opa > LV_OPA_MIN) { - 80070b4: 683b ldr r3, [r7, #0] - 80070b6: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 - 80070ba: 2b02 cmp r3, #2 - 80070bc: d919 bls.n 80070f2 + 8007048: 683b ldr r3, [r7, #0] + 800704a: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 + 800704e: 2b02 cmp r3, #2 + 8007050: d919 bls.n 8007086 dsc->border_width = lv_obj_get_style_border_width(obj, LV_PART_SCROLLBAR); - 80070be: f44f 3180 mov.w r1, #65536 ; 0x10000 - 80070c2: 6878 ldr r0, [r7, #4] - 80070c4: f7ff f93f bl 8006346 - 80070c8: 4603 mov r3, r0 - 80070ca: 461a mov r2, r3 - 80070cc: 683b ldr r3, [r7, #0] - 80070ce: 841a strh r2, [r3, #32] + 8007052: f44f 3180 mov.w r1, #65536 ; 0x10000 + 8007056: 6878 ldr r0, [r7, #4] + 8007058: f7ff f93f bl 80062da + 800705c: 4603 mov r3, r0 + 800705e: 461a mov r2, r3 + 8007060: 683b ldr r3, [r7, #0] + 8007062: 841a strh r2, [r3, #32] if(dsc->border_width > 0) { - 80070d0: 683b ldr r3, [r7, #0] - 80070d2: f9b3 3020 ldrsh.w r3, [r3, #32] - 80070d6: 2b00 cmp r3, #0 - 80070d8: dd07 ble.n 80070ea + 8007064: 683b ldr r3, [r7, #0] + 8007066: f9b3 3020 ldrsh.w r3, [r3, #32] + 800706a: 2b00 cmp r3, #0 + 800706c: dd07 ble.n 800707e dsc->border_color = lv_obj_get_style_border_color(obj, LV_PART_SCROLLBAR); - 80070da: 683c ldr r4, [r7, #0] - 80070dc: f44f 3180 mov.w r1, #65536 ; 0x10000 - 80070e0: 6878 ldr r0, [r7, #4] - 80070e2: f7ff f90d bl 8006300 - 80070e6: 83e0 strh r0, [r4, #30] - 80070e8: e003 b.n 80070f2 + 800706e: 683c ldr r4, [r7, #0] + 8007070: f44f 3180 mov.w r1, #65536 ; 0x10000 + 8007074: 6878 ldr r0, [r7, #4] + 8007076: f7ff f90d bl 8006294 + 800707a: 83e0 strh r0, [r4, #30] + 800707c: e003 b.n 8007086 } else { dsc->border_opa = LV_OPA_TRANSP; - 80070ea: 683b ldr r3, [r7, #0] - 80070ec: 2200 movs r2, #0 - 80070ee: f883 2022 strb.w r2, [r3, #34] ; 0x22 + 800707e: 683b ldr r3, [r7, #0] + 8007080: 2200 movs r2, #0 + 8007082: f883 2022 strb.w r2, [r3, #34] ; 0x22 } } #if LV_DRAW_COMPLEX dsc->shadow_opa = lv_obj_get_style_shadow_opa(obj, LV_PART_SCROLLBAR); - 80070f2: f44f 3180 mov.w r1, #65536 ; 0x10000 - 80070f6: 6878 ldr r0, [r7, #4] - 80070f8: f7ff f985 bl 8006406 - 80070fc: 4603 mov r3, r0 - 80070fe: 461a mov r2, r3 - 8007100: 683b ldr r3, [r7, #0] - 8007102: f883 2036 strb.w r2, [r3, #54] ; 0x36 + 8007086: f44f 3180 mov.w r1, #65536 ; 0x10000 + 800708a: 6878 ldr r0, [r7, #4] + 800708c: f7ff f985 bl 800639a + 8007090: 4603 mov r3, r0 + 8007092: 461a mov r2, r3 + 8007094: 683b ldr r3, [r7, #0] + 8007096: f883 2036 strb.w r2, [r3, #54] ; 0x36 if(dsc->shadow_opa > LV_OPA_MIN) { - 8007106: 683b ldr r3, [r7, #0] - 8007108: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 800710c: 2b02 cmp r3, #2 - 800710e: d922 bls.n 8007156 + 800709a: 683b ldr r3, [r7, #0] + 800709c: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 80070a0: 2b02 cmp r3, #2 + 80070a2: d922 bls.n 80070ea dsc->shadow_width = lv_obj_get_style_shadow_width(obj, LV_PART_SCROLLBAR); - 8007110: f44f 3180 mov.w r1, #65536 ; 0x10000 - 8007114: 6878 ldr r0, [r7, #4] - 8007116: f7ff f93f bl 8006398 - 800711a: 4603 mov r3, r0 - 800711c: 461a mov r2, r3 - 800711e: 683b ldr r3, [r7, #0] - 8007120: 85da strh r2, [r3, #46] ; 0x2e + 80070a4: f44f 3180 mov.w r1, #65536 ; 0x10000 + 80070a8: 6878 ldr r0, [r7, #4] + 80070aa: f7ff f93f bl 800632c + 80070ae: 4603 mov r3, r0 + 80070b0: 461a mov r2, r3 + 80070b2: 683b ldr r3, [r7, #0] + 80070b4: 85da strh r2, [r3, #46] ; 0x2e if(dsc->shadow_width > 0) { - 8007122: 683b ldr r3, [r7, #0] - 8007124: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 8007128: 2b00 cmp r3, #0 - 800712a: dd10 ble.n 800714e + 80070b6: 683b ldr r3, [r7, #0] + 80070b8: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 80070bc: 2b00 cmp r3, #0 + 80070be: dd10 ble.n 80070e2 dsc->shadow_spread = lv_obj_get_style_shadow_spread(obj, LV_PART_SCROLLBAR); - 800712c: f44f 3180 mov.w r1, #65536 ; 0x10000 - 8007130: 6878 ldr r0, [r7, #4] - 8007132: f7ff f944 bl 80063be - 8007136: 4603 mov r3, r0 - 8007138: 461a mov r2, r3 - 800713a: 683b ldr r3, [r7, #0] - 800713c: 869a strh r2, [r3, #52] ; 0x34 + 80070c0: f44f 3180 mov.w r1, #65536 ; 0x10000 + 80070c4: 6878 ldr r0, [r7, #4] + 80070c6: f7ff f944 bl 8006352 + 80070ca: 4603 mov r3, r0 + 80070cc: 461a mov r2, r3 + 80070ce: 683b ldr r3, [r7, #0] + 80070d0: 869a strh r2, [r3, #52] ; 0x34 dsc->shadow_color = lv_obj_get_style_shadow_color(obj, LV_PART_SCROLLBAR); - 800713e: 683c ldr r4, [r7, #0] - 8007140: f44f 3180 mov.w r1, #65536 ; 0x10000 - 8007144: 6878 ldr r0, [r7, #4] - 8007146: f7ff f94d bl 80063e4 - 800714a: 85a0 strh r0, [r4, #44] ; 0x2c - 800714c: e003 b.n 8007156 + 80070d2: 683c ldr r4, [r7, #0] + 80070d4: f44f 3180 mov.w r1, #65536 ; 0x10000 + 80070d8: 6878 ldr r0, [r7, #4] + 80070da: f7ff f94d bl 8006378 + 80070de: 85a0 strh r0, [r4, #44] ; 0x2c + 80070e0: e003 b.n 80070ea } else { dsc->shadow_opa = LV_OPA_TRANSP; - 800714e: 683b ldr r3, [r7, #0] - 8007150: 2200 movs r2, #0 - 8007152: f883 2036 strb.w r2, [r3, #54] ; 0x36 + 80070e2: 683b ldr r3, [r7, #0] + 80070e4: 2200 movs r2, #0 + 80070e6: f883 2036 strb.w r2, [r3, #54] ; 0x36 } } lv_opa_t opa = lv_obj_get_style_opa(obj, LV_PART_SCROLLBAR); - 8007156: f44f 3180 mov.w r1, #65536 ; 0x10000 - 800715a: 6878 ldr r0, [r7, #4] - 800715c: f7ff f98e bl 800647c - 8007160: 4603 mov r3, r0 - 8007162: 73fb strb r3, [r7, #15] + 80070ea: f44f 3180 mov.w r1, #65536 ; 0x10000 + 80070ee: 6878 ldr r0, [r7, #4] + 80070f0: f7ff f98e bl 8006410 + 80070f4: 4603 mov r3, r0 + 80070f6: 73fb strb r3, [r7, #15] if(opa < LV_OPA_MAX) { - 8007164: 7bfb ldrb r3, [r7, #15] - 8007166: 2bfc cmp r3, #252 ; 0xfc - 8007168: d81f bhi.n 80071aa + 80070f8: 7bfb ldrb r3, [r7, #15] + 80070fa: 2bfc cmp r3, #252 ; 0xfc + 80070fc: d81f bhi.n 800713e dsc->bg_opa = (dsc->bg_opa * opa) >> 8; - 800716a: 683b ldr r3, [r7, #0] - 800716c: 78db ldrb r3, [r3, #3] - 800716e: 461a mov r2, r3 - 8007170: 7bfb ldrb r3, [r7, #15] - 8007172: fb02 f303 mul.w r3, r2, r3 - 8007176: 121b asrs r3, r3, #8 - 8007178: b2da uxtb r2, r3 - 800717a: 683b ldr r3, [r7, #0] - 800717c: 70da strb r2, [r3, #3] + 80070fe: 683b ldr r3, [r7, #0] + 8007100: 78db ldrb r3, [r3, #3] + 8007102: 461a mov r2, r3 + 8007104: 7bfb ldrb r3, [r7, #15] + 8007106: fb02 f303 mul.w r3, r2, r3 + 800710a: 121b asrs r3, r3, #8 + 800710c: b2da uxtb r2, r3 + 800710e: 683b ldr r3, [r7, #0] + 8007110: 70da strb r2, [r3, #3] dsc->border_opa = (dsc->bg_opa * opa) >> 8; - 800717e: 683b ldr r3, [r7, #0] - 8007180: 78db ldrb r3, [r3, #3] - 8007182: 461a mov r2, r3 - 8007184: 7bfb ldrb r3, [r7, #15] - 8007186: fb02 f303 mul.w r3, r2, r3 - 800718a: 121b asrs r3, r3, #8 - 800718c: b2da uxtb r2, r3 - 800718e: 683b ldr r3, [r7, #0] - 8007190: f883 2022 strb.w r2, [r3, #34] ; 0x22 + 8007112: 683b ldr r3, [r7, #0] + 8007114: 78db ldrb r3, [r3, #3] + 8007116: 461a mov r2, r3 + 8007118: 7bfb ldrb r3, [r7, #15] + 800711a: fb02 f303 mul.w r3, r2, r3 + 800711e: 121b asrs r3, r3, #8 + 8007120: b2da uxtb r2, r3 + 8007122: 683b ldr r3, [r7, #0] + 8007124: f883 2022 strb.w r2, [r3, #34] ; 0x22 dsc->shadow_opa = (dsc->bg_opa * opa) >> 8; - 8007194: 683b ldr r3, [r7, #0] - 8007196: 78db ldrb r3, [r3, #3] - 8007198: 461a mov r2, r3 - 800719a: 7bfb ldrb r3, [r7, #15] - 800719c: fb02 f303 mul.w r3, r2, r3 - 80071a0: 121b asrs r3, r3, #8 - 80071a2: b2da uxtb r2, r3 - 80071a4: 683b ldr r3, [r7, #0] - 80071a6: f883 2036 strb.w r2, [r3, #54] ; 0x36 + 8007128: 683b ldr r3, [r7, #0] + 800712a: 78db ldrb r3, [r3, #3] + 800712c: 461a mov r2, r3 + 800712e: 7bfb ldrb r3, [r7, #15] + 8007130: fb02 f303 mul.w r3, r2, r3 + 8007134: 121b asrs r3, r3, #8 + 8007136: b2da uxtb r2, r3 + 8007138: 683b ldr r3, [r7, #0] + 800713a: f883 2036 strb.w r2, [r3, #54] ; 0x36 } if(dsc->bg_opa != LV_OPA_TRANSP || dsc->border_opa != LV_OPA_TRANSP || dsc->shadow_opa != LV_OPA_TRANSP) { - 80071aa: 683b ldr r3, [r7, #0] - 80071ac: 78db ldrb r3, [r3, #3] - 80071ae: 2b00 cmp r3, #0 - 80071b0: d109 bne.n 80071c6 - 80071b2: 683b ldr r3, [r7, #0] - 80071b4: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 - 80071b8: 2b00 cmp r3, #0 - 80071ba: d104 bne.n 80071c6 - 80071bc: 683b ldr r3, [r7, #0] - 80071be: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 80071c2: 2b00 cmp r3, #0 - 80071c4: d00a beq.n 80071dc + 800713e: 683b ldr r3, [r7, #0] + 8007140: 78db ldrb r3, [r3, #3] + 8007142: 2b00 cmp r3, #0 + 8007144: d109 bne.n 800715a + 8007146: 683b ldr r3, [r7, #0] + 8007148: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 + 800714c: 2b00 cmp r3, #0 + 800714e: d104 bne.n 800715a + 8007150: 683b ldr r3, [r7, #0] + 8007152: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 8007156: 2b00 cmp r3, #0 + 8007158: d00a beq.n 8007170 dsc->radius = lv_obj_get_style_radius(obj, LV_PART_SCROLLBAR); - 80071c6: f44f 3180 mov.w r1, #65536 ; 0x10000 - 80071ca: 6878 ldr r0, [r7, #4] - 80071cc: f7ff f92e bl 800642c - 80071d0: 4603 mov r3, r0 - 80071d2: 461a mov r2, r3 - 80071d4: 683b ldr r3, [r7, #0] - 80071d6: 801a strh r2, [r3, #0] + 800715a: f44f 3180 mov.w r1, #65536 ; 0x10000 + 800715e: 6878 ldr r0, [r7, #4] + 8007160: f7ff f92e bl 80063c0 + 8007164: 4603 mov r3, r0 + 8007166: 461a mov r2, r3 + 8007168: 683b ldr r3, [r7, #0] + 800716a: 801a strh r2, [r3, #0] return LV_RES_OK; - 80071d8: 2301 movs r3, #1 - 80071da: e000 b.n 80071de + 800716c: 2301 movs r3, #1 + 800716e: e000 b.n 8007172 } else { return LV_RES_INV; - 80071dc: 2300 movs r3, #0 + 8007170: 2300 movs r3, #0 } #else if(dsc->bg_opa != LV_OPA_TRANSP || dsc->border_opa != LV_OPA_TRANSP) return LV_RES_OK; else return LV_RES_INV; #endif } - 80071de: 4618 mov r0, r3 - 80071e0: 3714 adds r7, #20 - 80071e2: 46bd mov sp, r7 - 80071e4: bd90 pop {r4, r7, pc} + 8007172: 4618 mov r0, r3 + 8007174: 3714 adds r7, #20 + 8007176: 46bd mov sp, r7 + 8007178: bd90 pop {r4, r7, pc} -080071e6 : +0800717a : static void lv_obj_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 80071e6: b590 push {r4, r7, lr} - 80071e8: b09b sub sp, #108 ; 0x6c - 80071ea: af00 add r7, sp, #0 - 80071ec: 6078 str r0, [r7, #4] - 80071ee: 6039 str r1, [r7, #0] + 800717a: b590 push {r4, r7, lr} + 800717c: b09b sub sp, #108 ; 0x6c + 800717e: af00 add r7, sp, #0 + 8007180: 6078 str r0, [r7, #4] + 8007182: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_event_code_t code = lv_event_get_code(e); - 80071f0: 6838 ldr r0, [r7, #0] - 80071f2: f7fb f9db bl 80025ac - 80071f6: 4603 mov r3, r0 - 80071f8: f887 3057 strb.w r3, [r7, #87] ; 0x57 + 8007184: 6838 ldr r0, [r7, #0] + 8007186: f7fb f9db bl 8002540 + 800718a: 4603 mov r3, r0 + 800718c: f887 3057 strb.w r3, [r7, #87] ; 0x57 lv_obj_t * obj = lv_event_get_current_target(e); - 80071fc: 6838 ldr r0, [r7, #0] - 80071fe: f7fb f9ca bl 8002596 - 8007202: 6538 str r0, [r7, #80] ; 0x50 + 8007190: 6838 ldr r0, [r7, #0] + 8007192: f7fb f9ca bl 800252a + 8007196: 6538 str r0, [r7, #80] ; 0x50 if(code == LV_EVENT_PRESSED) { - 8007204: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 - 8007208: 2b01 cmp r3, #1 - 800720a: d104 bne.n 8007216 + 8007198: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 + 800719c: 2b01 cmp r3, #1 + 800719e: d104 bne.n 80071aa lv_obj_add_state(obj, LV_STATE_PRESSED); - 800720c: 2120 movs r1, #32 - 800720e: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007210: f7ff fa80 bl 8006714 - 8007214: e2ae b.n 8007774 + 80071a0: 2120 movs r1, #32 + 80071a2: 6d38 ldr r0, [r7, #80] ; 0x50 + 80071a4: f7ff fa80 bl 80066a8 + 80071a8: e2ae b.n 8007708 } else if(code == LV_EVENT_RELEASED) { - 8007216: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 - 800721a: 2b08 cmp r3, #8 - 800721c: d131 bne.n 8007282 + 80071aa: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 + 80071ae: 2b08 cmp r3, #8 + 80071b0: d131 bne.n 8007216 lv_obj_clear_state(obj, LV_STATE_PRESSED); - 800721e: 2120 movs r1, #32 - 8007220: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007222: f7ff fa90 bl 8006746 + 80071b2: 2120 movs r1, #32 + 80071b4: 6d38 ldr r0, [r7, #80] ; 0x50 + 80071b6: f7ff fa90 bl 80066da void * param = lv_event_get_param(e); - 8007226: 6838 ldr r0, [r7, #0] - 8007228: f7fb f9ce bl 80025c8 - 800722c: 61f8 str r0, [r7, #28] + 80071ba: 6838 ldr r0, [r7, #0] + 80071bc: f7fb f9ce bl 800255c + 80071c0: 61f8 str r0, [r7, #28] /*Go the checked state if enabled*/ if(lv_indev_get_scroll_obj(param) == NULL && lv_obj_has_flag(obj, LV_OBJ_FLAG_CHECKABLE)) { - 800722e: 69f8 ldr r0, [r7, #28] - 8007230: f7fc f9b4 bl 800359c - 8007234: 4603 mov r3, r0 - 8007236: 2b00 cmp r3, #0 - 8007238: f040 829c bne.w 8007774 - 800723c: 2108 movs r1, #8 - 800723e: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007240: f7ff fa9f bl 8006782 - 8007244: 4603 mov r3, r0 - 8007246: 2b00 cmp r3, #0 - 8007248: f000 8294 beq.w 8007774 + 80071c2: 69f8 ldr r0, [r7, #28] + 80071c4: f7fc f9b4 bl 8003530 + 80071c8: 4603 mov r3, r0 + 80071ca: 2b00 cmp r3, #0 + 80071cc: f040 829c bne.w 8007708 + 80071d0: 2108 movs r1, #8 + 80071d2: 6d38 ldr r0, [r7, #80] ; 0x50 + 80071d4: f7ff fa9f bl 8006716 + 80071d8: 4603 mov r3, r0 + 80071da: 2b00 cmp r3, #0 + 80071dc: f000 8294 beq.w 8007708 if(!(lv_obj_get_state(obj) & LV_STATE_CHECKED)) lv_obj_add_state(obj, LV_STATE_CHECKED); - 800724c: 6d38 ldr r0, [r7, #80] ; 0x50 - 800724e: f7ff fabf bl 80067d0 - 8007252: 4603 mov r3, r0 - 8007254: f003 0301 and.w r3, r3, #1 - 8007258: 2b00 cmp r3, #0 - 800725a: d104 bne.n 8007266 - 800725c: 2101 movs r1, #1 - 800725e: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007260: f7ff fa58 bl 8006714 - 8007264: e003 b.n 800726e + 80071e0: 6d38 ldr r0, [r7, #80] ; 0x50 + 80071e2: f7ff fabf bl 8006764 + 80071e6: 4603 mov r3, r0 + 80071e8: f003 0301 and.w r3, r3, #1 + 80071ec: 2b00 cmp r3, #0 + 80071ee: d104 bne.n 80071fa + 80071f0: 2101 movs r1, #1 + 80071f2: 6d38 ldr r0, [r7, #80] ; 0x50 + 80071f4: f7ff fa58 bl 80066a8 + 80071f8: e003 b.n 8007202 else lv_obj_clear_state(obj, LV_STATE_CHECKED); - 8007266: 2101 movs r1, #1 - 8007268: 6d38 ldr r0, [r7, #80] ; 0x50 - 800726a: f7ff fa6c bl 8006746 + 80071fa: 2101 movs r1, #1 + 80071fc: 6d38 ldr r0, [r7, #80] ; 0x50 + 80071fe: f7ff fa6c bl 80066da lv_res_t res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 800726e: 2200 movs r2, #0 - 8007270: 211c movs r1, #28 - 8007272: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007274: f7fb f904 bl 8002480 - 8007278: 4603 mov r3, r0 - 800727a: 76fb strb r3, [r7, #27] + 8007202: 2200 movs r2, #0 + 8007204: 211c movs r1, #28 + 8007206: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007208: f7fb f904 bl 8002414 + 800720c: 4603 mov r3, r0 + 800720e: 76fb strb r3, [r7, #27] if(res != LV_RES_OK) return; - 800727c: 7efb ldrb r3, [r7, #27] - 800727e: 2b01 cmp r3, #1 - 8007280: e278 b.n 8007774 + 8007210: 7efb ldrb r3, [r7, #27] + 8007212: 2b01 cmp r3, #1 + 8007214: e278 b.n 8007708 } } else if(code == LV_EVENT_PRESS_LOST) { - 8007282: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 - 8007286: 2b03 cmp r3, #3 - 8007288: d104 bne.n 8007294 + 8007216: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 + 800721a: 2b03 cmp r3, #3 + 800721c: d104 bne.n 8007228 lv_obj_clear_state(obj, LV_STATE_PRESSED); - 800728a: 2120 movs r1, #32 - 800728c: 6d38 ldr r0, [r7, #80] ; 0x50 - 800728e: f7ff fa5a bl 8006746 - 8007292: e26f b.n 8007774 + 800721e: 2120 movs r1, #32 + 8007220: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007222: f7ff fa5a bl 80066da + 8007226: e26f b.n 8007708 } else if(code == LV_EVENT_STYLE_CHANGED) { - 8007294: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 - 8007298: 2b2a cmp r3, #42 ; 0x2a - 800729a: d119 bne.n 80072d0 + 8007228: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 + 800722c: 2b2a cmp r3, #42 ; 0x2a + 800722e: d119 bne.n 8007264 uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 800729c: 6d38 ldr r0, [r7, #80] ; 0x50 - 800729e: f008 fa77 bl 800f790 - 80072a2: 6278 str r0, [r7, #36] ; 0x24 + 8007230: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007232: f008 fa63 bl 800f6fc + 8007236: 6278 str r0, [r7, #36] ; 0x24 for(uint32_t i = 0; i < child_cnt; i++) { - 80072a4: 2300 movs r3, #0 - 80072a6: 667b str r3, [r7, #100] ; 0x64 - 80072a8: e00d b.n 80072c6 + 8007238: 2300 movs r3, #0 + 800723a: 667b str r3, [r7, #100] ; 0x64 + 800723c: e00d b.n 800725a lv_obj_t * child = obj->spec_attr->children[i]; - 80072aa: 6d3b ldr r3, [r7, #80] ; 0x50 - 80072ac: 689b ldr r3, [r3, #8] - 80072ae: 681a ldr r2, [r3, #0] - 80072b0: 6e7b ldr r3, [r7, #100] ; 0x64 - 80072b2: 009b lsls r3, r3, #2 - 80072b4: 4413 add r3, r2 - 80072b6: 681b ldr r3, [r3, #0] - 80072b8: 623b str r3, [r7, #32] + 800723e: 6d3b ldr r3, [r7, #80] ; 0x50 + 8007240: 689b ldr r3, [r3, #8] + 8007242: 681a ldr r2, [r3, #0] + 8007244: 6e7b ldr r3, [r7, #100] ; 0x64 + 8007246: 009b lsls r3, r3, #2 + 8007248: 4413 add r3, r2 + 800724a: 681b ldr r3, [r3, #0] + 800724c: 623b str r3, [r7, #32] lv_obj_mark_layout_as_dirty(child); - 80072ba: 6a38 ldr r0, [r7, #32] - 80072bc: f002 fb16 bl 80098ec + 800724e: 6a38 ldr r0, [r7, #32] + 8007250: f002 fb16 bl 8009880 for(uint32_t i = 0; i < child_cnt; i++) { - 80072c0: 6e7b ldr r3, [r7, #100] ; 0x64 - 80072c2: 3301 adds r3, #1 - 80072c4: 667b str r3, [r7, #100] ; 0x64 - 80072c6: 6e7a ldr r2, [r7, #100] ; 0x64 - 80072c8: 6a7b ldr r3, [r7, #36] ; 0x24 - 80072ca: 429a cmp r2, r3 - 80072cc: d3ed bcc.n 80072aa - 80072ce: e251 b.n 8007774 + 8007254: 6e7b ldr r3, [r7, #100] ; 0x64 + 8007256: 3301 adds r3, #1 + 8007258: 667b str r3, [r7, #100] ; 0x64 + 800725a: 6e7a ldr r2, [r7, #100] ; 0x64 + 800725c: 6a7b ldr r3, [r7, #36] ; 0x24 + 800725e: 429a cmp r2, r3 + 8007260: d3ed bcc.n 800723e + 8007262: e251 b.n 8007708 } } else if(code == LV_EVENT_KEY) { - 80072d0: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 - 80072d4: 2b0d cmp r3, #13 - 80072d6: f040 8126 bne.w 8007526 + 8007264: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 + 8007268: 2b0d cmp r3, #13 + 800726a: f040 8126 bne.w 80074ba if(lv_obj_has_flag(obj, LV_OBJ_FLAG_CHECKABLE)) { - 80072da: 2108 movs r1, #8 - 80072dc: 6d38 ldr r0, [r7, #80] ; 0x50 - 80072de: f7ff fa50 bl 8006782 - 80072e2: 4603 mov r3, r0 - 80072e4: 2b00 cmp r3, #0 - 80072e6: d030 beq.n 800734a + 800726e: 2108 movs r1, #8 + 8007270: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007272: f7ff fa50 bl 8006716 + 8007276: 4603 mov r3, r0 + 8007278: 2b00 cmp r3, #0 + 800727a: d030 beq.n 80072de char c = *((char *)lv_event_get_param(e)); - 80072e8: 6838 ldr r0, [r7, #0] - 80072ea: f7fb f96d bl 80025c8 - 80072ee: 4603 mov r3, r0 - 80072f0: 781b ldrb r3, [r3, #0] - 80072f2: f887 302a strb.w r3, [r7, #42] ; 0x2a + 800727c: 6838 ldr r0, [r7, #0] + 800727e: f7fb f96d bl 800255c + 8007282: 4603 mov r3, r0 + 8007284: 781b ldrb r3, [r3, #0] + 8007286: f887 302a strb.w r3, [r7, #42] ; 0x2a if(c == LV_KEY_RIGHT || c == LV_KEY_UP) { - 80072f6: f897 302a ldrb.w r3, [r7, #42] ; 0x2a - 80072fa: 2b13 cmp r3, #19 - 80072fc: d003 beq.n 8007306 - 80072fe: f897 302a ldrb.w r3, [r7, #42] ; 0x2a - 8007302: 2b11 cmp r3, #17 - 8007304: d104 bne.n 8007310 + 800728a: f897 302a ldrb.w r3, [r7, #42] ; 0x2a + 800728e: 2b13 cmp r3, #19 + 8007290: d003 beq.n 800729a + 8007292: f897 302a ldrb.w r3, [r7, #42] ; 0x2a + 8007296: 2b11 cmp r3, #17 + 8007298: d104 bne.n 80072a4 lv_obj_add_state(obj, LV_STATE_CHECKED); - 8007306: 2101 movs r1, #1 - 8007308: 6d38 ldr r0, [r7, #80] ; 0x50 - 800730a: f7ff fa03 bl 8006714 - 800730e: e00b b.n 8007328 + 800729a: 2101 movs r1, #1 + 800729c: 6d38 ldr r0, [r7, #80] ; 0x50 + 800729e: f7ff fa03 bl 80066a8 + 80072a2: e00b b.n 80072bc } else if(c == LV_KEY_LEFT || c == LV_KEY_DOWN) { - 8007310: f897 302a ldrb.w r3, [r7, #42] ; 0x2a - 8007314: 2b14 cmp r3, #20 - 8007316: d003 beq.n 8007320 - 8007318: f897 302a ldrb.w r3, [r7, #42] ; 0x2a - 800731c: 2b12 cmp r3, #18 - 800731e: d103 bne.n 8007328 + 80072a4: f897 302a ldrb.w r3, [r7, #42] ; 0x2a + 80072a8: 2b14 cmp r3, #20 + 80072aa: d003 beq.n 80072b4 + 80072ac: f897 302a ldrb.w r3, [r7, #42] ; 0x2a + 80072b0: 2b12 cmp r3, #18 + 80072b2: d103 bne.n 80072bc lv_obj_clear_state(obj, LV_STATE_CHECKED); - 8007320: 2101 movs r1, #1 - 8007322: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007324: f7ff fa0f bl 8006746 + 80072b4: 2101 movs r1, #1 + 80072b6: 6d38 ldr r0, [r7, #80] ; 0x50 + 80072b8: f7ff fa0f bl 80066da } /*With Enter LV_EVENT_RELEASED will send VALUE_CHANGE event*/ if(c != LV_KEY_ENTER) { - 8007328: f897 302a ldrb.w r3, [r7, #42] ; 0x2a - 800732c: 2b0a cmp r3, #10 - 800732e: f000 8221 beq.w 8007774 + 80072bc: f897 302a ldrb.w r3, [r7, #42] ; 0x2a + 80072c0: 2b0a cmp r3, #10 + 80072c2: f000 8221 beq.w 8007708 lv_res_t res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 8007332: 2200 movs r2, #0 - 8007334: 211c movs r1, #28 - 8007336: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007338: f7fb f8a2 bl 8002480 - 800733c: 4603 mov r3, r0 - 800733e: f887 3029 strb.w r3, [r7, #41] ; 0x29 + 80072c6: 2200 movs r2, #0 + 80072c8: 211c movs r1, #28 + 80072ca: 6d38 ldr r0, [r7, #80] ; 0x50 + 80072cc: f7fb f8a2 bl 8002414 + 80072d0: 4603 mov r3, r0 + 80072d2: f887 3029 strb.w r3, [r7, #41] ; 0x29 if(res != LV_RES_OK) return; - 8007342: f897 3029 ldrb.w r3, [r7, #41] ; 0x29 - 8007346: 2b01 cmp r3, #1 - 8007348: e214 b.n 8007774 + 80072d6: f897 3029 ldrb.w r3, [r7, #41] ; 0x29 + 80072da: 2b01 cmp r3, #1 + 80072dc: e214 b.n 8007708 } } else if(lv_obj_has_flag(obj, LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_WITH_ARROW) && !lv_obj_is_editable(obj)) { - 800734a: f44f 6101 mov.w r1, #2064 ; 0x810 - 800734e: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007350: f7ff fa17 bl 8006782 - 8007354: 4603 mov r3, r0 - 8007356: 2b00 cmp r3, #0 - 8007358: f000 820c beq.w 8007774 - 800735c: 6d38 ldr r0, [r7, #80] ; 0x50 - 800735e: f000 fc91 bl 8007c84 - 8007362: 4603 mov r3, r0 - 8007364: f083 0301 eor.w r3, r3, #1 - 8007368: b2db uxtb r3, r3 - 800736a: 2b00 cmp r3, #0 - 800736c: f000 8202 beq.w 8007774 + 80072de: f44f 6101 mov.w r1, #2064 ; 0x810 + 80072e2: 6d38 ldr r0, [r7, #80] ; 0x50 + 80072e4: f7ff fa17 bl 8006716 + 80072e8: 4603 mov r3, r0 + 80072ea: 2b00 cmp r3, #0 + 80072ec: f000 820c beq.w 8007708 + 80072f0: 6d38 ldr r0, [r7, #80] ; 0x50 + 80072f2: f000 fc91 bl 8007c18 + 80072f6: 4603 mov r3, r0 + 80072f8: f083 0301 eor.w r3, r3, #1 + 80072fc: b2db uxtb r3, r3 + 80072fe: 2b00 cmp r3, #0 + 8007300: f000 8202 beq.w 8007708 /*scroll by keypad or encoder*/ lv_anim_enable_t anim_enable = LV_ANIM_OFF; - 8007370: 2300 movs r3, #0 - 8007372: f887 3031 strb.w r3, [r7, #49] ; 0x31 + 8007304: 2300 movs r3, #0 + 8007306: f887 3031 strb.w r3, [r7, #49] ; 0x31 lv_coord_t sl = lv_obj_get_scroll_left(obj); - 8007376: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007378: f004 fbc6 bl 800bb08 - 800737c: 4603 mov r3, r0 - 800737e: 85fb strh r3, [r7, #46] ; 0x2e + 800730a: 6d38 ldr r0, [r7, #80] ; 0x50 + 800730c: f004 fbc6 bl 800ba9c + 8007310: 4603 mov r3, r0 + 8007312: 85fb strh r3, [r7, #46] ; 0x2e lv_coord_t sr = lv_obj_get_scroll_right(obj); - 8007380: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007382: f004 fc65 bl 800bc50 - 8007386: 4603 mov r3, r0 - 8007388: 85bb strh r3, [r7, #44] ; 0x2c + 8007314: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007316: f004 fc65 bl 800bbe4 + 800731a: 4603 mov r3, r0 + 800731c: 85bb strh r3, [r7, #44] ; 0x2c char c = *((char *)lv_event_get_param(e)); - 800738a: 6838 ldr r0, [r7, #0] - 800738c: f7fb f91c bl 80025c8 - 8007390: 4603 mov r3, r0 - 8007392: 781b ldrb r3, [r3, #0] - 8007394: f887 302b strb.w r3, [r7, #43] ; 0x2b + 800731e: 6838 ldr r0, [r7, #0] + 8007320: f7fb f91c bl 800255c + 8007324: 4603 mov r3, r0 + 8007326: 781b ldrb r3, [r3, #0] + 8007328: f887 302b strb.w r3, [r7, #43] ; 0x2b if(c == LV_KEY_DOWN) { - 8007398: f897 302b ldrb.w r3, [r7, #43] ; 0x2b - 800739c: 2b12 cmp r3, #18 - 800739e: d118 bne.n 80073d2 + 800732c: f897 302b ldrb.w r3, [r7, #43] ; 0x2b + 8007330: 2b12 cmp r3, #18 + 8007332: d118 bne.n 8007366 /*use scroll_to_x/y functions to enforce scroll limits*/ lv_obj_scroll_to_y(obj, lv_obj_get_scroll_y(obj) + lv_obj_get_height(obj) / 4, anim_enable); - 80073a0: 6d38 ldr r0, [r7, #80] ; 0x50 - 80073a2: f004 fafc bl 800b99e - 80073a6: 4603 mov r3, r0 - 80073a8: b29c uxth r4, r3 - 80073aa: 6d38 ldr r0, [r7, #80] ; 0x50 - 80073ac: f002 feda bl 800a164 - 80073b0: 4603 mov r3, r0 - 80073b2: 2b00 cmp r3, #0 - 80073b4: da00 bge.n 80073b8 - 80073b6: 3303 adds r3, #3 - 80073b8: 109b asrs r3, r3, #2 - 80073ba: b21b sxth r3, r3 - 80073bc: b29b uxth r3, r3 - 80073be: 4423 add r3, r4 - 80073c0: b29b uxth r3, r3 - 80073c2: b21b sxth r3, r3 - 80073c4: f897 2031 ldrb.w r2, [r7, #49] ; 0x31 - 80073c8: 4619 mov r1, r3 - 80073ca: 6d38 ldr r0, [r7, #80] ; 0x50 - 80073cc: f004 ff3e bl 800c24c - 80073d0: e1d0 b.n 8007774 + 8007334: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007336: f004 fafc bl 800b932 + 800733a: 4603 mov r3, r0 + 800733c: b29c uxth r4, r3 + 800733e: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007340: f002 feda bl 800a0f8 + 8007344: 4603 mov r3, r0 + 8007346: 2b00 cmp r3, #0 + 8007348: da00 bge.n 800734c + 800734a: 3303 adds r3, #3 + 800734c: 109b asrs r3, r3, #2 + 800734e: b21b sxth r3, r3 + 8007350: b29b uxth r3, r3 + 8007352: 4423 add r3, r4 + 8007354: b29b uxth r3, r3 + 8007356: b21b sxth r3, r3 + 8007358: f897 2031 ldrb.w r2, [r7, #49] ; 0x31 + 800735c: 4619 mov r1, r3 + 800735e: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007360: f004 ff3e bl 800c1e0 + 8007364: e1d0 b.n 8007708 } else if(c == LV_KEY_UP) { - 80073d2: f897 302b ldrb.w r3, [r7, #43] ; 0x2b - 80073d6: 2b11 cmp r3, #17 - 80073d8: d118 bne.n 800740c + 8007366: f897 302b ldrb.w r3, [r7, #43] ; 0x2b + 800736a: 2b11 cmp r3, #17 + 800736c: d118 bne.n 80073a0 lv_obj_scroll_to_y(obj, lv_obj_get_scroll_y(obj) - lv_obj_get_height(obj) / 4, anim_enable); - 80073da: 6d38 ldr r0, [r7, #80] ; 0x50 - 80073dc: f004 fadf bl 800b99e - 80073e0: 4603 mov r3, r0 - 80073e2: b29c uxth r4, r3 - 80073e4: 6d38 ldr r0, [r7, #80] ; 0x50 - 80073e6: f002 febd bl 800a164 - 80073ea: 4603 mov r3, r0 - 80073ec: 2b00 cmp r3, #0 - 80073ee: da00 bge.n 80073f2 - 80073f0: 3303 adds r3, #3 - 80073f2: 109b asrs r3, r3, #2 - 80073f4: b21b sxth r3, r3 - 80073f6: b29b uxth r3, r3 - 80073f8: 1ae3 subs r3, r4, r3 - 80073fa: b29b uxth r3, r3 - 80073fc: b21b sxth r3, r3 - 80073fe: f897 2031 ldrb.w r2, [r7, #49] ; 0x31 - 8007402: 4619 mov r1, r3 - 8007404: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007406: f004 ff21 bl 800c24c - 800740a: e1b3 b.n 8007774 + 800736e: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007370: f004 fadf bl 800b932 + 8007374: 4603 mov r3, r0 + 8007376: b29c uxth r4, r3 + 8007378: 6d38 ldr r0, [r7, #80] ; 0x50 + 800737a: f002 febd bl 800a0f8 + 800737e: 4603 mov r3, r0 + 8007380: 2b00 cmp r3, #0 + 8007382: da00 bge.n 8007386 + 8007384: 3303 adds r3, #3 + 8007386: 109b asrs r3, r3, #2 + 8007388: b21b sxth r3, r3 + 800738a: b29b uxth r3, r3 + 800738c: 1ae3 subs r3, r4, r3 + 800738e: b29b uxth r3, r3 + 8007390: b21b sxth r3, r3 + 8007392: f897 2031 ldrb.w r2, [r7, #49] ; 0x31 + 8007396: 4619 mov r1, r3 + 8007398: 6d38 ldr r0, [r7, #80] ; 0x50 + 800739a: f004 ff21 bl 800c1e0 + 800739e: e1b3 b.n 8007708 } else if(c == LV_KEY_RIGHT) { - 800740c: f897 302b ldrb.w r3, [r7, #43] ; 0x2b - 8007410: 2b13 cmp r3, #19 - 8007412: d141 bne.n 8007498 + 80073a0: f897 302b ldrb.w r3, [r7, #43] ; 0x2b + 80073a4: 2b13 cmp r3, #19 + 80073a6: d141 bne.n 800742c /*If the object can't be scrolled horizontally then scroll it vertically*/ if(!((lv_obj_get_scroll_dir(obj) & LV_DIR_HOR) && (sl > 0 || sr > 0))) - 8007414: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007416: f004 fa6c bl 800b8f2 - 800741a: 4603 mov r3, r0 - 800741c: f003 0303 and.w r3, r3, #3 - 8007420: 2b00 cmp r3, #0 - 8007422: d007 beq.n 8007434 - 8007424: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 8007428: 2b00 cmp r3, #0 - 800742a: dc1c bgt.n 8007466 - 800742c: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 8007430: 2b00 cmp r3, #0 - 8007432: dc18 bgt.n 8007466 + 80073a8: 6d38 ldr r0, [r7, #80] ; 0x50 + 80073aa: f004 fa6c bl 800b886 + 80073ae: 4603 mov r3, r0 + 80073b0: f003 0303 and.w r3, r3, #3 + 80073b4: 2b00 cmp r3, #0 + 80073b6: d007 beq.n 80073c8 + 80073b8: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 80073bc: 2b00 cmp r3, #0 + 80073be: dc1c bgt.n 80073fa + 80073c0: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 80073c4: 2b00 cmp r3, #0 + 80073c6: dc18 bgt.n 80073fa lv_obj_scroll_to_y(obj, lv_obj_get_scroll_y(obj) + lv_obj_get_height(obj) / 4, anim_enable); - 8007434: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007436: f004 fab2 bl 800b99e - 800743a: 4603 mov r3, r0 - 800743c: b29c uxth r4, r3 - 800743e: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007440: f002 fe90 bl 800a164 - 8007444: 4603 mov r3, r0 - 8007446: 2b00 cmp r3, #0 - 8007448: da00 bge.n 800744c - 800744a: 3303 adds r3, #3 - 800744c: 109b asrs r3, r3, #2 - 800744e: b21b sxth r3, r3 - 8007450: b29b uxth r3, r3 - 8007452: 4423 add r3, r4 - 8007454: b29b uxth r3, r3 - 8007456: b21b sxth r3, r3 - 8007458: f897 2031 ldrb.w r2, [r7, #49] ; 0x31 - 800745c: 4619 mov r1, r3 - 800745e: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007460: f004 fef4 bl 800c24c - 8007464: e186 b.n 8007774 + 80073c8: 6d38 ldr r0, [r7, #80] ; 0x50 + 80073ca: f004 fab2 bl 800b932 + 80073ce: 4603 mov r3, r0 + 80073d0: b29c uxth r4, r3 + 80073d2: 6d38 ldr r0, [r7, #80] ; 0x50 + 80073d4: f002 fe90 bl 800a0f8 + 80073d8: 4603 mov r3, r0 + 80073da: 2b00 cmp r3, #0 + 80073dc: da00 bge.n 80073e0 + 80073de: 3303 adds r3, #3 + 80073e0: 109b asrs r3, r3, #2 + 80073e2: b21b sxth r3, r3 + 80073e4: b29b uxth r3, r3 + 80073e6: 4423 add r3, r4 + 80073e8: b29b uxth r3, r3 + 80073ea: b21b sxth r3, r3 + 80073ec: f897 2031 ldrb.w r2, [r7, #49] ; 0x31 + 80073f0: 4619 mov r1, r3 + 80073f2: 6d38 ldr r0, [r7, #80] ; 0x50 + 80073f4: f004 fef4 bl 800c1e0 + 80073f8: e186 b.n 8007708 else lv_obj_scroll_to_x(obj, lv_obj_get_scroll_x(obj) + lv_obj_get_width(obj) / 4, anim_enable); - 8007466: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007468: f004 fa82 bl 800b970 - 800746c: 4603 mov r3, r0 - 800746e: b29c uxth r4, r3 - 8007470: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007472: f002 fe69 bl 800a148 - 8007476: 4603 mov r3, r0 - 8007478: 2b00 cmp r3, #0 - 800747a: da00 bge.n 800747e - 800747c: 3303 adds r3, #3 - 800747e: 109b asrs r3, r3, #2 - 8007480: b21b sxth r3, r3 - 8007482: b29b uxth r3, r3 - 8007484: 4423 add r3, r4 - 8007486: b29b uxth r3, r3 - 8007488: b21b sxth r3, r3 - 800748a: f897 2031 ldrb.w r2, [r7, #49] ; 0x31 - 800748e: 4619 mov r1, r3 - 8007490: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007492: f004 feb7 bl 800c204 - 8007496: e16d b.n 8007774 + 80073fa: 6d38 ldr r0, [r7, #80] ; 0x50 + 80073fc: f004 fa82 bl 800b904 + 8007400: 4603 mov r3, r0 + 8007402: b29c uxth r4, r3 + 8007404: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007406: f002 fe69 bl 800a0dc + 800740a: 4603 mov r3, r0 + 800740c: 2b00 cmp r3, #0 + 800740e: da00 bge.n 8007412 + 8007410: 3303 adds r3, #3 + 8007412: 109b asrs r3, r3, #2 + 8007414: b21b sxth r3, r3 + 8007416: b29b uxth r3, r3 + 8007418: 4423 add r3, r4 + 800741a: b29b uxth r3, r3 + 800741c: b21b sxth r3, r3 + 800741e: f897 2031 ldrb.w r2, [r7, #49] ; 0x31 + 8007422: 4619 mov r1, r3 + 8007424: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007426: f004 feb7 bl 800c198 + 800742a: e16d b.n 8007708 } else if(c == LV_KEY_LEFT) { - 8007498: f897 302b ldrb.w r3, [r7, #43] ; 0x2b - 800749c: 2b14 cmp r3, #20 - 800749e: f040 8169 bne.w 8007774 + 800742c: f897 302b ldrb.w r3, [r7, #43] ; 0x2b + 8007430: 2b14 cmp r3, #20 + 8007432: f040 8169 bne.w 8007708 /*If the object can't be scrolled horizontally then scroll it vertically*/ if(!((lv_obj_get_scroll_dir(obj) & LV_DIR_HOR) && (sl > 0 || sr > 0))) - 80074a2: 6d38 ldr r0, [r7, #80] ; 0x50 - 80074a4: f004 fa25 bl 800b8f2 - 80074a8: 4603 mov r3, r0 - 80074aa: f003 0303 and.w r3, r3, #3 - 80074ae: 2b00 cmp r3, #0 - 80074b0: d007 beq.n 80074c2 - 80074b2: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 80074b6: 2b00 cmp r3, #0 - 80074b8: dc1c bgt.n 80074f4 - 80074ba: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 80074be: 2b00 cmp r3, #0 - 80074c0: dc18 bgt.n 80074f4 + 8007436: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007438: f004 fa25 bl 800b886 + 800743c: 4603 mov r3, r0 + 800743e: f003 0303 and.w r3, r3, #3 + 8007442: 2b00 cmp r3, #0 + 8007444: d007 beq.n 8007456 + 8007446: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 800744a: 2b00 cmp r3, #0 + 800744c: dc1c bgt.n 8007488 + 800744e: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 8007452: 2b00 cmp r3, #0 + 8007454: dc18 bgt.n 8007488 lv_obj_scroll_to_y(obj, lv_obj_get_scroll_y(obj) - lv_obj_get_height(obj) / 4, anim_enable); - 80074c2: 6d38 ldr r0, [r7, #80] ; 0x50 - 80074c4: f004 fa6b bl 800b99e - 80074c8: 4603 mov r3, r0 - 80074ca: b29c uxth r4, r3 - 80074cc: 6d38 ldr r0, [r7, #80] ; 0x50 - 80074ce: f002 fe49 bl 800a164 - 80074d2: 4603 mov r3, r0 - 80074d4: 2b00 cmp r3, #0 - 80074d6: da00 bge.n 80074da - 80074d8: 3303 adds r3, #3 - 80074da: 109b asrs r3, r3, #2 - 80074dc: b21b sxth r3, r3 - 80074de: b29b uxth r3, r3 - 80074e0: 1ae3 subs r3, r4, r3 - 80074e2: b29b uxth r3, r3 - 80074e4: b21b sxth r3, r3 - 80074e6: f897 2031 ldrb.w r2, [r7, #49] ; 0x31 - 80074ea: 4619 mov r1, r3 - 80074ec: 6d38 ldr r0, [r7, #80] ; 0x50 - 80074ee: f004 fead bl 800c24c - 80074f2: e13f b.n 8007774 + 8007456: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007458: f004 fa6b bl 800b932 + 800745c: 4603 mov r3, r0 + 800745e: b29c uxth r4, r3 + 8007460: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007462: f002 fe49 bl 800a0f8 + 8007466: 4603 mov r3, r0 + 8007468: 2b00 cmp r3, #0 + 800746a: da00 bge.n 800746e + 800746c: 3303 adds r3, #3 + 800746e: 109b asrs r3, r3, #2 + 8007470: b21b sxth r3, r3 + 8007472: b29b uxth r3, r3 + 8007474: 1ae3 subs r3, r4, r3 + 8007476: b29b uxth r3, r3 + 8007478: b21b sxth r3, r3 + 800747a: f897 2031 ldrb.w r2, [r7, #49] ; 0x31 + 800747e: 4619 mov r1, r3 + 8007480: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007482: f004 fead bl 800c1e0 + 8007486: e13f b.n 8007708 else lv_obj_scroll_to_x(obj, lv_obj_get_scroll_x(obj) - lv_obj_get_width(obj) / 4, anim_enable); - 80074f4: 6d38 ldr r0, [r7, #80] ; 0x50 - 80074f6: f004 fa3b bl 800b970 - 80074fa: 4603 mov r3, r0 - 80074fc: b29c uxth r4, r3 - 80074fe: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007500: f002 fe22 bl 800a148 - 8007504: 4603 mov r3, r0 - 8007506: 2b00 cmp r3, #0 - 8007508: da00 bge.n 800750c - 800750a: 3303 adds r3, #3 - 800750c: 109b asrs r3, r3, #2 - 800750e: b21b sxth r3, r3 - 8007510: b29b uxth r3, r3 - 8007512: 1ae3 subs r3, r4, r3 - 8007514: b29b uxth r3, r3 - 8007516: b21b sxth r3, r3 - 8007518: f897 2031 ldrb.w r2, [r7, #49] ; 0x31 - 800751c: 4619 mov r1, r3 - 800751e: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007520: f004 fe70 bl 800c204 - 8007524: e126 b.n 8007774 + 8007488: 6d38 ldr r0, [r7, #80] ; 0x50 + 800748a: f004 fa3b bl 800b904 + 800748e: 4603 mov r3, r0 + 8007490: b29c uxth r4, r3 + 8007492: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007494: f002 fe22 bl 800a0dc + 8007498: 4603 mov r3, r0 + 800749a: 2b00 cmp r3, #0 + 800749c: da00 bge.n 80074a0 + 800749e: 3303 adds r3, #3 + 80074a0: 109b asrs r3, r3, #2 + 80074a2: b21b sxth r3, r3 + 80074a4: b29b uxth r3, r3 + 80074a6: 1ae3 subs r3, r4, r3 + 80074a8: b29b uxth r3, r3 + 80074aa: b21b sxth r3, r3 + 80074ac: f897 2031 ldrb.w r2, [r7, #49] ; 0x31 + 80074b0: 4619 mov r1, r3 + 80074b2: 6d38 ldr r0, [r7, #80] ; 0x50 + 80074b4: f004 fe70 bl 800c198 + 80074b8: e126 b.n 8007708 } } } else if(code == LV_EVENT_FOCUSED) { - 8007526: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 - 800752a: 2b0e cmp r3, #14 - 800752c: d155 bne.n 80075da + 80074ba: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 + 80074be: 2b0e cmp r3, #14 + 80074c0: d155 bne.n 800756e if(lv_obj_has_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS)) { - 800752e: f44f 6180 mov.w r1, #1024 ; 0x400 - 8007532: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007534: f7ff f925 bl 8006782 - 8007538: 4603 mov r3, r0 - 800753a: 2b00 cmp r3, #0 - 800753c: d003 beq.n 8007546 + 80074c2: f44f 6180 mov.w r1, #1024 ; 0x400 + 80074c6: 6d38 ldr r0, [r7, #80] ; 0x50 + 80074c8: f7ff f925 bl 8006716 + 80074cc: 4603 mov r3, r0 + 80074ce: 2b00 cmp r3, #0 + 80074d0: d003 beq.n 80074da lv_obj_scroll_to_view_recursive(obj, LV_ANIM_ON); - 800753e: 2101 movs r1, #1 - 8007540: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007542: f004 fea7 bl 800c294 + 80074d2: 2101 movs r1, #1 + 80074d4: 6d38 ldr r0, [r7, #80] ; 0x50 + 80074d6: f004 fea7 bl 800c228 } bool editing = false; - 8007546: 2300 movs r3, #0 - 8007548: f887 3033 strb.w r3, [r7, #51] ; 0x33 + 80074da: 2300 movs r3, #0 + 80074dc: f887 3033 strb.w r3, [r7, #51] ; 0x33 editing = lv_group_get_editing(lv_obj_get_group(obj)); - 800754c: 6d38 ldr r0, [r7, #80] ; 0x50 - 800754e: f7ff f95f bl 8006810 - 8007552: 4603 mov r3, r0 - 8007554: 4618 mov r0, r3 - 8007556: f7fb fcce bl 8002ef6 - 800755a: 4603 mov r3, r0 - 800755c: f887 3033 strb.w r3, [r7, #51] ; 0x33 + 80074e0: 6d38 ldr r0, [r7, #80] ; 0x50 + 80074e2: f7ff f95f bl 80067a4 + 80074e6: 4603 mov r3, r0 + 80074e8: 4618 mov r0, r3 + 80074ea: f7fb fcce bl 8002e8a + 80074ee: 4603 mov r3, r0 + 80074f0: f887 3033 strb.w r3, [r7, #51] ; 0x33 lv_state_t state = LV_STATE_FOCUSED; - 8007560: 2302 movs r3, #2 - 8007562: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 + 80074f4: 2302 movs r3, #2 + 80074f6: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 /* Use the indev for then indev handler. * But if the obj was focused manually it returns NULL so try to * use the indev from the event*/ lv_indev_t * indev = lv_indev_get_act(); - 8007566: f7fb fed7 bl 8003318 - 800756a: 65f8 str r0, [r7, #92] ; 0x5c + 80074fa: f7fb fed7 bl 80032ac + 80074fe: 65f8 str r0, [r7, #92] ; 0x5c if(indev == NULL) indev = lv_event_get_indev(e); - 800756c: 6dfb ldr r3, [r7, #92] ; 0x5c - 800756e: 2b00 cmp r3, #0 - 8007570: d103 bne.n 800757a - 8007572: 6838 ldr r0, [r7, #0] - 8007574: f7fb f8cc bl 8002710 - 8007578: 65f8 str r0, [r7, #92] ; 0x5c + 8007500: 6dfb ldr r3, [r7, #92] ; 0x5c + 8007502: 2b00 cmp r3, #0 + 8007504: d103 bne.n 800750e + 8007506: 6838 ldr r0, [r7, #0] + 8007508: f7fb f8cc bl 80026a4 + 800750c: 65f8 str r0, [r7, #92] ; 0x5c lv_indev_type_t indev_type = lv_indev_get_type(indev); - 800757a: 6df8 ldr r0, [r7, #92] ; 0x5c - 800757c: f7fb fed6 bl 800332c - 8007580: 4603 mov r3, r0 - 8007582: f887 3032 strb.w r3, [r7, #50] ; 0x32 + 800750e: 6df8 ldr r0, [r7, #92] ; 0x5c + 8007510: f7fb fed6 bl 80032c0 + 8007514: 4603 mov r3, r0 + 8007516: f887 3032 strb.w r3, [r7, #50] ; 0x32 if(indev_type == LV_INDEV_TYPE_KEYPAD || indev_type == LV_INDEV_TYPE_ENCODER) state |= LV_STATE_FOCUS_KEY; - 8007586: f897 3032 ldrb.w r3, [r7, #50] ; 0x32 - 800758a: 2b02 cmp r3, #2 - 800758c: d003 beq.n 8007596 - 800758e: f897 3032 ldrb.w r3, [r7, #50] ; 0x32 - 8007592: 2b04 cmp r3, #4 - 8007594: d105 bne.n 80075a2 - 8007596: f8b7 3062 ldrh.w r3, [r7, #98] ; 0x62 - 800759a: f043 0304 orr.w r3, r3, #4 - 800759e: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 + 800751a: f897 3032 ldrb.w r3, [r7, #50] ; 0x32 + 800751e: 2b02 cmp r3, #2 + 8007520: d003 beq.n 800752a + 8007522: f897 3032 ldrb.w r3, [r7, #50] ; 0x32 + 8007526: 2b04 cmp r3, #4 + 8007528: d105 bne.n 8007536 + 800752a: f8b7 3062 ldrh.w r3, [r7, #98] ; 0x62 + 800752e: f043 0304 orr.w r3, r3, #4 + 8007532: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 if(editing) { - 80075a2: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 - 80075a6: 2b00 cmp r3, #0 - 80075a8: d00c beq.n 80075c4 + 8007536: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 + 800753a: 2b00 cmp r3, #0 + 800753c: d00c beq.n 8007558 state |= LV_STATE_EDITED; - 80075aa: f8b7 3062 ldrh.w r3, [r7, #98] ; 0x62 - 80075ae: f043 0308 orr.w r3, r3, #8 - 80075b2: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 + 800753e: f8b7 3062 ldrh.w r3, [r7, #98] ; 0x62 + 8007542: f043 0308 orr.w r3, r3, #8 + 8007546: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 lv_obj_add_state(obj, state); - 80075b6: f8b7 3062 ldrh.w r3, [r7, #98] ; 0x62 - 80075ba: 4619 mov r1, r3 - 80075bc: 6d38 ldr r0, [r7, #80] ; 0x50 - 80075be: f7ff f8a9 bl 8006714 - 80075c2: e0d7 b.n 8007774 + 800754a: f8b7 3062 ldrh.w r3, [r7, #98] ; 0x62 + 800754e: 4619 mov r1, r3 + 8007550: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007552: f7ff f8a9 bl 80066a8 + 8007556: e0d7 b.n 8007708 } else { lv_obj_add_state(obj, state); - 80075c4: f8b7 3062 ldrh.w r3, [r7, #98] ; 0x62 - 80075c8: 4619 mov r1, r3 - 80075ca: 6d38 ldr r0, [r7, #80] ; 0x50 - 80075cc: f7ff f8a2 bl 8006714 + 8007558: f8b7 3062 ldrh.w r3, [r7, #98] ; 0x62 + 800755c: 4619 mov r1, r3 + 800755e: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007560: f7ff f8a2 bl 80066a8 lv_obj_clear_state(obj, LV_STATE_EDITED); - 80075d0: 2108 movs r1, #8 - 80075d2: 6d38 ldr r0, [r7, #80] ; 0x50 - 80075d4: f7ff f8b7 bl 8006746 - 80075d8: e0cc b.n 8007774 + 8007564: 2108 movs r1, #8 + 8007566: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007568: f7ff f8b7 bl 80066da + 800756c: e0cc b.n 8007708 } } else if(code == LV_EVENT_SCROLL_BEGIN) { - 80075da: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 - 80075de: 2b09 cmp r3, #9 - 80075e0: d104 bne.n 80075ec + 800756e: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 + 8007572: 2b09 cmp r3, #9 + 8007574: d104 bne.n 8007580 lv_obj_add_state(obj, LV_STATE_SCROLLED); - 80075e2: 2140 movs r1, #64 ; 0x40 - 80075e4: 6d38 ldr r0, [r7, #80] ; 0x50 - 80075e6: f7ff f895 bl 8006714 - 80075ea: e0c3 b.n 8007774 + 8007576: 2140 movs r1, #64 ; 0x40 + 8007578: 6d38 ldr r0, [r7, #80] ; 0x50 + 800757a: f7ff f895 bl 80066a8 + 800757e: e0c3 b.n 8007708 } else if(code == LV_EVENT_SCROLL_END) { - 80075ec: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 - 80075f0: 2b0a cmp r3, #10 - 80075f2: d11f bne.n 8007634 + 8007580: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 + 8007584: 2b0a cmp r3, #10 + 8007586: d11f bne.n 80075c8 lv_obj_clear_state(obj, LV_STATE_SCROLLED); - 80075f4: 2140 movs r1, #64 ; 0x40 - 80075f6: 6d38 ldr r0, [r7, #80] ; 0x50 - 80075f8: f7ff f8a5 bl 8006746 + 8007588: 2140 movs r1, #64 ; 0x40 + 800758a: 6d38 ldr r0, [r7, #80] ; 0x50 + 800758c: f7ff f8a5 bl 80066da if(lv_obj_get_scrollbar_mode(obj) == LV_SCROLLBAR_MODE_ACTIVE) { - 80075fc: 6d38 ldr r0, [r7, #80] ; 0x50 - 80075fe: f004 f963 bl 800b8c8 - 8007602: 4603 mov r3, r0 - 8007604: 2b02 cmp r3, #2 - 8007606: f040 80b5 bne.w 8007774 + 8007590: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007592: f004 f963 bl 800b85c + 8007596: 4603 mov r3, r0 + 8007598: 2b02 cmp r3, #2 + 800759a: f040 80b5 bne.w 8007708 lv_area_t hor_area, ver_area; lv_obj_get_scrollbar_area(obj, &hor_area, &ver_area); - 800760a: f107 0208 add.w r2, r7, #8 - 800760e: f107 0310 add.w r3, r7, #16 - 8007612: 4619 mov r1, r3 - 8007614: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007616: f004 fe69 bl 800c2ec + 800759e: f107 0208 add.w r2, r7, #8 + 80075a2: f107 0310 add.w r3, r7, #16 + 80075a6: 4619 mov r1, r3 + 80075a8: 6d38 ldr r0, [r7, #80] ; 0x50 + 80075aa: f004 fe69 bl 800c280 lv_obj_invalidate_area(obj, &hor_area); - 800761a: f107 0310 add.w r3, r7, #16 - 800761e: 4619 mov r1, r3 - 8007620: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007622: f003 fa22 bl 800aa6a + 80075ae: f107 0310 add.w r3, r7, #16 + 80075b2: 4619 mov r1, r3 + 80075b4: 6d38 ldr r0, [r7, #80] ; 0x50 + 80075b6: f003 fa22 bl 800a9fe lv_obj_invalidate_area(obj, &ver_area); - 8007626: f107 0308 add.w r3, r7, #8 - 800762a: 4619 mov r1, r3 - 800762c: 6d38 ldr r0, [r7, #80] ; 0x50 - 800762e: f003 fa1c bl 800aa6a - 8007632: e09f b.n 8007774 + 80075ba: f107 0308 add.w r3, r7, #8 + 80075be: 4619 mov r1, r3 + 80075c0: 6d38 ldr r0, [r7, #80] ; 0x50 + 80075c2: f003 fa1c bl 800a9fe + 80075c6: e09f b.n 8007708 } } else if(code == LV_EVENT_DEFOCUSED) { - 8007634: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 - 8007638: 2b0f cmp r3, #15 - 800763a: d104 bne.n 8007646 + 80075c8: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 + 80075cc: 2b0f cmp r3, #15 + 80075ce: d104 bne.n 80075da lv_obj_clear_state(obj, LV_STATE_FOCUSED | LV_STATE_EDITED | LV_STATE_FOCUS_KEY); - 800763c: 210e movs r1, #14 - 800763e: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007640: f7ff f881 bl 8006746 - 8007644: e096 b.n 8007774 + 80075d0: 210e movs r1, #14 + 80075d2: 6d38 ldr r0, [r7, #80] ; 0x50 + 80075d4: f7ff f881 bl 80066da + 80075d8: e096 b.n 8007708 } else if(code == LV_EVENT_SIZE_CHANGED) { - 8007646: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 - 800764a: 2b29 cmp r3, #41 ; 0x29 - 800764c: d130 bne.n 80076b0 + 80075da: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 + 80075de: 2b29 cmp r3, #41 ; 0x29 + 80075e0: d130 bne.n 8007644 lv_coord_t align = lv_obj_get_style_align(obj, LV_PART_MAIN); - 800764e: 2100 movs r1, #0 - 8007650: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007652: f7fe fdd3 bl 80061fc - 8007656: 4603 mov r3, r0 - 8007658: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 80075e2: 2100 movs r1, #0 + 80075e4: 6d38 ldr r0, [r7, #80] ; 0x50 + 80075e6: f7fe fdd3 bl 8006190 + 80075ea: 4603 mov r3, r0 + 80075ec: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 uint16_t layout = lv_obj_get_style_layout(obj, LV_PART_MAIN); - 800765c: 2100 movs r1, #0 - 800765e: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007660: f7fe ff31 bl 80064c6 - 8007664: 4603 mov r3, r0 - 8007666: 87fb strh r3, [r7, #62] ; 0x3e + 80075f0: 2100 movs r1, #0 + 80075f2: 6d38 ldr r0, [r7, #80] ; 0x50 + 80075f4: f7fe ff31 bl 800645a + 80075f8: 4603 mov r3, r0 + 80075fa: 87fb strh r3, [r7, #62] ; 0x3e if(layout || align) { - 8007668: 8ffb ldrh r3, [r7, #62] ; 0x3e - 800766a: 2b00 cmp r3, #0 - 800766c: d103 bne.n 8007676 - 800766e: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 - 8007672: 2b00 cmp r3, #0 - 8007674: d002 beq.n 800767c + 80075fc: 8ffb ldrh r3, [r7, #62] ; 0x3e + 80075fe: 2b00 cmp r3, #0 + 8007600: d103 bne.n 800760a + 8007602: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 + 8007606: 2b00 cmp r3, #0 + 8007608: d002 beq.n 8007610 lv_obj_mark_layout_as_dirty(obj); - 8007676: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007678: f002 f938 bl 80098ec + 800760a: 6d38 ldr r0, [r7, #80] ; 0x50 + 800760c: f002 f938 bl 8009880 } uint32_t i; uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 800767c: 6d38 ldr r0, [r7, #80] ; 0x50 - 800767e: f008 f887 bl 800f790 - 8007682: 63b8 str r0, [r7, #56] ; 0x38 + 8007610: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007612: f008 f873 bl 800f6fc + 8007616: 63b8 str r0, [r7, #56] ; 0x38 for(i = 0; i < child_cnt; i++) { - 8007684: 2300 movs r3, #0 - 8007686: 65bb str r3, [r7, #88] ; 0x58 - 8007688: e00d b.n 80076a6 + 8007618: 2300 movs r3, #0 + 800761a: 65bb str r3, [r7, #88] ; 0x58 + 800761c: e00d b.n 800763a lv_obj_t * child = obj->spec_attr->children[i]; - 800768a: 6d3b ldr r3, [r7, #80] ; 0x50 - 800768c: 689b ldr r3, [r3, #8] - 800768e: 681a ldr r2, [r3, #0] - 8007690: 6dbb ldr r3, [r7, #88] ; 0x58 - 8007692: 009b lsls r3, r3, #2 - 8007694: 4413 add r3, r2 - 8007696: 681b ldr r3, [r3, #0] - 8007698: 637b str r3, [r7, #52] ; 0x34 + 800761e: 6d3b ldr r3, [r7, #80] ; 0x50 + 8007620: 689b ldr r3, [r3, #8] + 8007622: 681a ldr r2, [r3, #0] + 8007624: 6dbb ldr r3, [r7, #88] ; 0x58 + 8007626: 009b lsls r3, r3, #2 + 8007628: 4413 add r3, r2 + 800762a: 681b ldr r3, [r3, #0] + 800762c: 637b str r3, [r7, #52] ; 0x34 lv_obj_mark_layout_as_dirty(child); - 800769a: 6b78 ldr r0, [r7, #52] ; 0x34 - 800769c: f002 f926 bl 80098ec + 800762e: 6b78 ldr r0, [r7, #52] ; 0x34 + 8007630: f002 f926 bl 8009880 for(i = 0; i < child_cnt; i++) { - 80076a0: 6dbb ldr r3, [r7, #88] ; 0x58 - 80076a2: 3301 adds r3, #1 - 80076a4: 65bb str r3, [r7, #88] ; 0x58 - 80076a6: 6dba ldr r2, [r7, #88] ; 0x58 - 80076a8: 6bbb ldr r3, [r7, #56] ; 0x38 - 80076aa: 429a cmp r2, r3 - 80076ac: d3ed bcc.n 800768a - 80076ae: e061 b.n 8007774 + 8007634: 6dbb ldr r3, [r7, #88] ; 0x58 + 8007636: 3301 adds r3, #1 + 8007638: 65bb str r3, [r7, #88] ; 0x58 + 800763a: 6dba ldr r2, [r7, #88] ; 0x58 + 800763c: 6bbb ldr r3, [r7, #56] ; 0x38 + 800763e: 429a cmp r2, r3 + 8007640: d3ed bcc.n 800761e + 8007642: e061 b.n 8007708 } } else if(code == LV_EVENT_CHILD_CHANGED) { - 80076b0: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 - 80076b4: 2b22 cmp r3, #34 ; 0x22 - 80076b6: d133 bne.n 8007720 + 8007644: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 + 8007648: 2b22 cmp r3, #34 ; 0x22 + 800764a: d133 bne.n 80076b4 lv_coord_t w = lv_obj_get_style_width(obj, LV_PART_MAIN); - 80076b8: 2100 movs r1, #0 - 80076ba: 6d38 ldr r0, [r7, #80] ; 0x50 - 80076bc: f7fe fd78 bl 80061b0 - 80076c0: 4603 mov r3, r0 - 80076c2: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 + 800764c: 2100 movs r1, #0 + 800764e: 6d38 ldr r0, [r7, #80] ; 0x50 + 8007650: f7fe fd78 bl 8006144 + 8007654: 4603 mov r3, r0 + 8007656: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 lv_coord_t h = lv_obj_get_style_height(obj, LV_PART_MAIN); - 80076c6: 2100 movs r1, #0 - 80076c8: 6d38 ldr r0, [r7, #80] ; 0x50 - 80076ca: f7fe fd84 bl 80061d6 - 80076ce: 4603 mov r3, r0 - 80076d0: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 800765a: 2100 movs r1, #0 + 800765c: 6d38 ldr r0, [r7, #80] ; 0x50 + 800765e: f7fe fd84 bl 800616a + 8007662: 4603 mov r3, r0 + 8007664: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 lv_coord_t align = lv_obj_get_style_align(obj, LV_PART_MAIN); - 80076d4: 2100 movs r1, #0 - 80076d6: 6d38 ldr r0, [r7, #80] ; 0x50 - 80076d8: f7fe fd90 bl 80061fc - 80076dc: 4603 mov r3, r0 - 80076de: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 + 8007668: 2100 movs r1, #0 + 800766a: 6d38 ldr r0, [r7, #80] ; 0x50 + 800766c: f7fe fd90 bl 8006190 + 8007670: 4603 mov r3, r0 + 8007672: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 uint16_t layout = lv_obj_get_style_layout(obj, LV_PART_MAIN); - 80076e2: 2100 movs r1, #0 - 80076e4: 6d38 ldr r0, [r7, #80] ; 0x50 - 80076e6: f7fe feee bl 80064c6 - 80076ea: 4603 mov r3, r0 - 80076ec: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 8007676: 2100 movs r1, #0 + 8007678: 6d38 ldr r0, [r7, #80] ; 0x50 + 800767a: f7fe feee bl 800645a + 800767e: 4603 mov r3, r0 + 8007680: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 if(layout || align || w == LV_SIZE_CONTENT || h == LV_SIZE_CONTENT) { - 80076f0: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 80076f4: 2b00 cmp r3, #0 - 80076f6: d10f bne.n 8007718 - 80076f8: f9b7 3044 ldrsh.w r3, [r7, #68] ; 0x44 - 80076fc: 2b00 cmp r3, #0 - 80076fe: d10b bne.n 8007718 - 8007700: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 - 8007704: f242 72d1 movw r2, #10193 ; 0x27d1 - 8007708: 4293 cmp r3, r2 - 800770a: d005 beq.n 8007718 - 800770c: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 - 8007710: f242 72d1 movw r2, #10193 ; 0x27d1 - 8007714: 4293 cmp r3, r2 - 8007716: d12d bne.n 8007774 + 8007684: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 8007688: 2b00 cmp r3, #0 + 800768a: d10f bne.n 80076ac + 800768c: f9b7 3044 ldrsh.w r3, [r7, #68] ; 0x44 + 8007690: 2b00 cmp r3, #0 + 8007692: d10b bne.n 80076ac + 8007694: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 + 8007698: f242 72d1 movw r2, #10193 ; 0x27d1 + 800769c: 4293 cmp r3, r2 + 800769e: d005 beq.n 80076ac + 80076a0: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 + 80076a4: f242 72d1 movw r2, #10193 ; 0x27d1 + 80076a8: 4293 cmp r3, r2 + 80076aa: d12d bne.n 8007708 lv_obj_mark_layout_as_dirty(obj); - 8007718: 6d38 ldr r0, [r7, #80] ; 0x50 - 800771a: f002 f8e7 bl 80098ec - 800771e: e029 b.n 8007774 + 80076ac: 6d38 ldr r0, [r7, #80] ; 0x50 + 80076ae: f002 f8e7 bl 8009880 + 80076b2: e029 b.n 8007708 } } else if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) { - 8007720: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 - 8007724: 2b13 cmp r3, #19 - 8007726: d116 bne.n 8007756 + 80076b4: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 + 80076b8: 2b13 cmp r3, #19 + 80076ba: d116 bne.n 80076ea lv_coord_t * s = lv_event_get_param(e); - 8007728: 6838 ldr r0, [r7, #0] - 800772a: f7fa ff4d bl 80025c8 - 800772e: 64f8 str r0, [r7, #76] ; 0x4c + 80076bc: 6838 ldr r0, [r7, #0] + 80076be: f7fa ff4d bl 800255c + 80076c2: 64f8 str r0, [r7, #76] ; 0x4c lv_coord_t d = lv_obj_calculate_ext_draw_size(obj, LV_PART_MAIN); - 8007730: 2100 movs r1, #0 - 8007732: 6d38 ldr r0, [r7, #80] ; 0x50 - 8007734: f001 fafe bl 8008d34 - 8007738: 4603 mov r3, r0 - 800773a: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 80076c4: 2100 movs r1, #0 + 80076c6: 6d38 ldr r0, [r7, #80] ; 0x50 + 80076c8: f001 fafe bl 8008cc8 + 80076cc: 4603 mov r3, r0 + 80076ce: f8a7 304a strh.w r3, [r7, #74] ; 0x4a *s = LV_MAX(*s, d); - 800773e: 6cfb ldr r3, [r7, #76] ; 0x4c - 8007740: f9b3 3000 ldrsh.w r3, [r3] - 8007744: f9b7 204a ldrsh.w r2, [r7, #74] ; 0x4a - 8007748: 4293 cmp r3, r2 - 800774a: bfb8 it lt - 800774c: 4613 movlt r3, r2 - 800774e: b21a sxth r2, r3 - 8007750: 6cfb ldr r3, [r7, #76] ; 0x4c - 8007752: 801a strh r2, [r3, #0] - 8007754: e00e b.n 8007774 + 80076d2: 6cfb ldr r3, [r7, #76] ; 0x4c + 80076d4: f9b3 3000 ldrsh.w r3, [r3] + 80076d8: f9b7 204a ldrsh.w r2, [r7, #74] ; 0x4a + 80076dc: 4293 cmp r3, r2 + 80076de: bfb8 it lt + 80076e0: 4613 movlt r3, r2 + 80076e2: b21a sxth r2, r3 + 80076e4: 6cfb ldr r3, [r7, #76] ; 0x4c + 80076e6: 801a strh r2, [r3, #0] + 80076e8: e00e b.n 8007708 } else if(code == LV_EVENT_DRAW_MAIN || code == LV_EVENT_DRAW_POST || code == LV_EVENT_COVER_CHECK) { - 8007756: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 - 800775a: 2b15 cmp r3, #21 - 800775c: d007 beq.n 800776e - 800775e: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 - 8007762: 2b18 cmp r3, #24 - 8007764: d003 beq.n 800776e - 8007766: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 - 800776a: 2b12 cmp r3, #18 - 800776c: d102 bne.n 8007774 + 80076ea: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 + 80076ee: 2b15 cmp r3, #21 + 80076f0: d007 beq.n 8007702 + 80076f2: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 + 80076f6: 2b18 cmp r3, #24 + 80076f8: d003 beq.n 8007702 + 80076fa: f897 3057 ldrb.w r3, [r7, #87] ; 0x57 + 80076fe: 2b12 cmp r3, #18 + 8007700: d102 bne.n 8007708 lv_obj_draw(e); - 800776e: 6838 ldr r0, [r7, #0] - 8007770: f7ff f98c bl 8006a8c + 8007702: 6838 ldr r0, [r7, #0] + 8007704: f7ff f98c bl 8006a20 } } - 8007774: 376c adds r7, #108 ; 0x6c - 8007776: 46bd mov sp, r7 - 8007778: bd90 pop {r4, r7, pc} + 8007708: 376c adds r7, #108 ; 0x6c + 800770a: 46bd mov sp, r7 + 800770c: bd90 pop {r4, r7, pc} -0800777a : +0800770e : * If specified in the styles, transition animations will be started from the previous state to the current. * @param obj pointer to an object * @param state the new state */ static void lv_obj_set_state(lv_obj_t * obj, lv_state_t new_state) { - 800777a: b580 push {r7, lr} - 800777c: b094 sub sp, #80 ; 0x50 - 800777e: af02 add r7, sp, #8 - 8007780: 6078 str r0, [r7, #4] - 8007782: 460b mov r3, r1 - 8007784: 807b strh r3, [r7, #2] + 800770e: b580 push {r7, lr} + 8007710: b094 sub sp, #80 ; 0x50 + 8007712: af02 add r7, sp, #8 + 8007714: 6078 str r0, [r7, #4] + 8007716: 460b mov r3, r1 + 8007718: 807b strh r3, [r7, #2] if(obj->state == new_state) return; - 8007786: 687b ldr r3, [r7, #4] - 8007788: 8c1b ldrh r3, [r3, #32] - 800778a: 887a ldrh r2, [r7, #2] - 800778c: 429a cmp r2, r3 - 800778e: f000 815a beq.w 8007a46 + 800771a: 687b ldr r3, [r7, #4] + 800771c: 8c1b ldrh r3, [r3, #32] + 800771e: 887a ldrh r2, [r7, #2] + 8007720: 429a cmp r2, r3 + 8007722: f000 815a beq.w 80079da LV_ASSERT_OBJ(obj, MY_CLASS); lv_state_t prev_state = obj->state; - 8007792: 687b ldr r3, [r7, #4] - 8007794: 8c1b ldrh r3, [r3, #32] - 8007796: 86fb strh r3, [r7, #54] ; 0x36 + 8007726: 687b ldr r3, [r7, #4] + 8007728: 8c1b ldrh r3, [r3, #32] + 800772a: 86fb strh r3, [r7, #54] ; 0x36 obj->state = new_state; - 8007798: 687b ldr r3, [r7, #4] - 800779a: 887a ldrh r2, [r7, #2] - 800779c: 841a strh r2, [r3, #32] + 800772c: 687b ldr r3, [r7, #4] + 800772e: 887a ldrh r2, [r7, #2] + 8007730: 841a strh r2, [r3, #32] _lv_style_state_cmp_t cmp_res = _lv_obj_style_state_compare(obj, prev_state, new_state); - 800779e: 887a ldrh r2, [r7, #2] - 80077a0: 8efb ldrh r3, [r7, #54] ; 0x36 - 80077a2: 4619 mov r1, r3 - 80077a4: 6878 ldr r0, [r7, #4] - 80077a6: f006 fd5f bl 800e268 <_lv_obj_style_state_compare> - 80077aa: 4603 mov r3, r0 - 80077ac: f887 3035 strb.w r3, [r7, #53] ; 0x35 + 8007732: 887a ldrh r2, [r7, #2] + 8007734: 8efb ldrh r3, [r7, #54] ; 0x36 + 8007736: 4619 mov r1, r3 + 8007738: 6878 ldr r0, [r7, #4] + 800773a: f006 fd5f bl 800e1fc <_lv_obj_style_state_compare> + 800773e: 4603 mov r3, r0 + 8007740: f887 3035 strb.w r3, [r7, #53] ; 0x35 /*If there is no difference in styles there is nothing else to do*/ if(cmp_res == _LV_STYLE_STATE_CMP_SAME) return; - 80077b0: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 - 80077b4: 2b00 cmp r3, #0 - 80077b6: f000 8148 beq.w 8007a4a + 8007744: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 + 8007748: 2b00 cmp r3, #0 + 800774a: f000 8148 beq.w 80079de _lv_obj_style_transition_dsc_t * ts = lv_mem_buf_get(sizeof(_lv_obj_style_transition_dsc_t) * STYLE_TRANSITION_MAX); - 80077ba: f44f 7020 mov.w r0, #640 ; 0x280 - 80077be: f02b f91f bl 8032a00 - 80077c2: 6338 str r0, [r7, #48] ; 0x30 + 800774e: f44f 7020 mov.w r0, #640 ; 0x280 + 8007752: f02b f90b bl 803296c + 8007756: 6338 str r0, [r7, #48] ; 0x30 lv_memset_00(ts, sizeof(_lv_obj_style_transition_dsc_t) * STYLE_TRANSITION_MAX); - 80077c4: f44f 7120 mov.w r1, #640 ; 0x280 - 80077c8: 6b38 ldr r0, [r7, #48] ; 0x30 - 80077ca: f02b fcc1 bl 8033150 + 8007758: f44f 7120 mov.w r1, #640 ; 0x280 + 800775c: 6b38 ldr r0, [r7, #48] ; 0x30 + 800775e: f02b fcad bl 80330bc uint32_t tsi = 0; - 80077ce: 2300 movs r3, #0 - 80077d0: 647b str r3, [r7, #68] ; 0x44 + 8007762: 2300 movs r3, #0 + 8007764: 647b str r3, [r7, #68] ; 0x44 uint32_t i; for(i = 0; i < obj->style_cnt && tsi < STYLE_TRANSITION_MAX; i++) { - 80077d2: 2300 movs r3, #0 - 80077d4: 643b str r3, [r7, #64] ; 0x40 - 80077d6: e0e0 b.n 800799a + 8007766: 2300 movs r3, #0 + 8007768: 643b str r3, [r7, #64] ; 0x40 + 800776a: e0e0 b.n 800792e _lv_obj_style_t * obj_style = &obj->styles[i]; - 80077d8: 687b ldr r3, [r7, #4] - 80077da: 68da ldr r2, [r3, #12] - 80077dc: 6c3b ldr r3, [r7, #64] ; 0x40 - 80077de: 00db lsls r3, r3, #3 - 80077e0: 4413 add r3, r2 - 80077e2: 62fb str r3, [r7, #44] ; 0x2c + 800776c: 687b ldr r3, [r7, #4] + 800776e: 68da ldr r2, [r3, #12] + 8007770: 6c3b ldr r3, [r7, #64] ; 0x40 + 8007772: 00db lsls r3, r3, #3 + 8007774: 4413 add r3, r2 + 8007776: 62fb str r3, [r7, #44] ; 0x2c lv_state_t state_act = lv_obj_style_get_selector_state(obj->styles[i].selector); - 80077e4: 687b ldr r3, [r7, #4] - 80077e6: 68da ldr r2, [r3, #12] - 80077e8: 6c3b ldr r3, [r7, #64] ; 0x40 - 80077ea: 00db lsls r3, r3, #3 - 80077ec: 4413 add r3, r2 - 80077ee: 685b ldr r3, [r3, #4] - 80077f0: f3c3 0317 ubfx r3, r3, #0, #24 - 80077f4: 4618 mov r0, r3 - 80077f6: f006 ff4c bl 800e692 - 80077fa: 4603 mov r3, r0 - 80077fc: 857b strh r3, [r7, #42] ; 0x2a + 8007778: 687b ldr r3, [r7, #4] + 800777a: 68da ldr r2, [r3, #12] + 800777c: 6c3b ldr r3, [r7, #64] ; 0x40 + 800777e: 00db lsls r3, r3, #3 + 8007780: 4413 add r3, r2 + 8007782: 685b ldr r3, [r3, #4] + 8007784: f3c3 0317 ubfx r3, r3, #0, #24 + 8007788: 4618 mov r0, r3 + 800778a: f006 ff4c bl 800e626 + 800778e: 4603 mov r3, r0 + 8007790: 857b strh r3, [r7, #42] ; 0x2a lv_part_t part_act = lv_obj_style_get_selector_part(obj->styles[i].selector); - 80077fe: 687b ldr r3, [r7, #4] - 8007800: 68da ldr r2, [r3, #12] - 8007802: 6c3b ldr r3, [r7, #64] ; 0x40 - 8007804: 00db lsls r3, r3, #3 - 8007806: 4413 add r3, r2 - 8007808: 685b ldr r3, [r3, #4] - 800780a: f3c3 0317 ubfx r3, r3, #0, #24 - 800780e: 4618 mov r0, r3 - 8007810: f006 ff4a bl 800e6a8 - 8007814: 6278 str r0, [r7, #36] ; 0x24 + 8007792: 687b ldr r3, [r7, #4] + 8007794: 68da ldr r2, [r3, #12] + 8007796: 6c3b ldr r3, [r7, #64] ; 0x40 + 8007798: 00db lsls r3, r3, #3 + 800779a: 4413 add r3, r2 + 800779c: 685b ldr r3, [r3, #4] + 800779e: f3c3 0317 ubfx r3, r3, #0, #24 + 80077a2: 4618 mov r0, r3 + 80077a4: f006 ff4a bl 800e63c + 80077a8: 6278 str r0, [r7, #36] ; 0x24 if(state_act & (~new_state)) continue; /*Skip unrelated styles*/ - 8007816: 8d7a ldrh r2, [r7, #42] ; 0x2a - 8007818: 887b ldrh r3, [r7, #2] - 800781a: 43db mvns r3, r3 - 800781c: 4013 ands r3, r2 - 800781e: 2b00 cmp r3, #0 - 8007820: f040 80b3 bne.w 800798a + 80077aa: 8d7a ldrh r2, [r7, #42] ; 0x2a + 80077ac: 887b ldrh r3, [r7, #2] + 80077ae: 43db mvns r3, r3 + 80077b0: 4013 ands r3, r2 + 80077b2: 2b00 cmp r3, #0 + 80077b4: f040 80b3 bne.w 800791e if(obj_style->is_trans) continue; - 8007824: 6afb ldr r3, [r7, #44] ; 0x2c - 8007826: 79db ldrb r3, [r3, #7] - 8007828: f003 0302 and.w r3, r3, #2 - 800782c: b2db uxtb r3, r3 - 800782e: 2b00 cmp r3, #0 - 8007830: f040 80ad bne.w 800798e + 80077b8: 6afb ldr r3, [r7, #44] ; 0x2c + 80077ba: 79db ldrb r3, [r3, #7] + 80077bc: f003 0302 and.w r3, r3, #2 + 80077c0: b2db uxtb r3, r3 + 80077c2: 2b00 cmp r3, #0 + 80077c4: f040 80ad bne.w 8007922 lv_style_value_t v; if(lv_style_get_prop_inlined(obj_style->style, LV_STYLE_TRANSITION, &v) == false) continue; - 8007834: 6afb ldr r3, [r7, #44] ; 0x2c - 8007836: 681b ldr r3, [r3, #0] - 8007838: f107 020c add.w r2, r7, #12 - 800783c: 2167 movs r1, #103 ; 0x67 - 800783e: 4618 mov r0, r3 - 8007840: f7fe fc36 bl 80060b0 - 8007844: 4603 mov r3, r0 - 8007846: 2b00 cmp r3, #0 - 8007848: f000 80a3 beq.w 8007992 + 80077c8: 6afb ldr r3, [r7, #44] ; 0x2c + 80077ca: 681b ldr r3, [r3, #0] + 80077cc: f107 020c add.w r2, r7, #12 + 80077d0: 2167 movs r1, #103 ; 0x67 + 80077d2: 4618 mov r0, r3 + 80077d4: f7fe fc36 bl 8006044 + 80077d8: 4603 mov r3, r0 + 80077da: 2b00 cmp r3, #0 + 80077dc: f000 80a3 beq.w 8007926 const lv_style_transition_dsc_t * tr = v.ptr; - 800784c: 68fb ldr r3, [r7, #12] - 800784e: 623b str r3, [r7, #32] + 80077e0: 68fb ldr r3, [r7, #12] + 80077e2: 623b str r3, [r7, #32] /*Add the props to the set if not added yet or added but with smaller weight*/ uint32_t j; for(j = 0; tr->props[j] != 0 && tsi < STYLE_TRANSITION_MAX; j++) { - 8007850: 2300 movs r3, #0 - 8007852: 63fb str r3, [r7, #60] ; 0x3c - 8007854: e08c b.n 8007970 + 80077e4: 2300 movs r3, #0 + 80077e6: 63fb str r3, [r7, #60] ; 0x3c + 80077e8: e08c b.n 8007904 uint32_t t; for(t = 0; t < tsi; t++) { - 8007856: 2300 movs r3, #0 - 8007858: 63bb str r3, [r7, #56] ; 0x38 - 800785a: e02e b.n 80078ba + 80077ea: 2300 movs r3, #0 + 80077ec: 63bb str r3, [r7, #56] ; 0x38 + 80077ee: e02e b.n 800784e lv_style_selector_t selector = ts[t].selector; - 800785c: 6bba ldr r2, [r7, #56] ; 0x38 - 800785e: 4613 mov r3, r2 - 8007860: 009b lsls r3, r3, #2 - 8007862: 4413 add r3, r2 - 8007864: 009b lsls r3, r3, #2 - 8007866: 461a mov r2, r3 - 8007868: 6b3b ldr r3, [r7, #48] ; 0x30 - 800786a: 4413 add r3, r2 - 800786c: 685b ldr r3, [r3, #4] - 800786e: 61fb str r3, [r7, #28] + 80077f0: 6bba ldr r2, [r7, #56] ; 0x38 + 80077f2: 4613 mov r3, r2 + 80077f4: 009b lsls r3, r3, #2 + 80077f6: 4413 add r3, r2 + 80077f8: 009b lsls r3, r3, #2 + 80077fa: 461a mov r2, r3 + 80077fc: 6b3b ldr r3, [r7, #48] ; 0x30 + 80077fe: 4413 add r3, r2 + 8007800: 685b ldr r3, [r3, #4] + 8007802: 61fb str r3, [r7, #28] lv_state_t state_ts = lv_obj_style_get_selector_state(selector); - 8007870: 69f8 ldr r0, [r7, #28] - 8007872: f006 ff0e bl 800e692 - 8007876: 4603 mov r3, r0 - 8007878: 837b strh r3, [r7, #26] + 8007804: 69f8 ldr r0, [r7, #28] + 8007806: f006 ff0e bl 800e626 + 800780a: 4603 mov r3, r0 + 800780c: 837b strh r3, [r7, #26] lv_part_t part_ts = lv_obj_style_get_selector_part(selector); - 800787a: 69f8 ldr r0, [r7, #28] - 800787c: f006 ff14 bl 800e6a8 - 8007880: 6178 str r0, [r7, #20] + 800780e: 69f8 ldr r0, [r7, #28] + 8007810: f006 ff14 bl 800e63c + 8007814: 6178 str r0, [r7, #20] if(ts[t].prop == tr->props[j] && part_ts == part_act && state_ts >= state_act) break; - 8007882: 6bba ldr r2, [r7, #56] ; 0x38 - 8007884: 4613 mov r3, r2 - 8007886: 009b lsls r3, r3, #2 - 8007888: 4413 add r3, r2 - 800788a: 009b lsls r3, r3, #2 - 800788c: 461a mov r2, r3 - 800788e: 6b3b ldr r3, [r7, #48] ; 0x30 - 8007890: 4413 add r3, r2 - 8007892: 891a ldrh r2, [r3, #8] - 8007894: 6a3b ldr r3, [r7, #32] - 8007896: 6819 ldr r1, [r3, #0] - 8007898: 6bfb ldr r3, [r7, #60] ; 0x3c - 800789a: 005b lsls r3, r3, #1 - 800789c: 440b add r3, r1 - 800789e: 881b ldrh r3, [r3, #0] - 80078a0: 429a cmp r2, r3 - 80078a2: d107 bne.n 80078b4 - 80078a4: 697a ldr r2, [r7, #20] - 80078a6: 6a7b ldr r3, [r7, #36] ; 0x24 - 80078a8: 429a cmp r2, r3 - 80078aa: d103 bne.n 80078b4 - 80078ac: 8b7a ldrh r2, [r7, #26] - 80078ae: 8d7b ldrh r3, [r7, #42] ; 0x2a - 80078b0: 429a cmp r2, r3 - 80078b2: d207 bcs.n 80078c4 + 8007816: 6bba ldr r2, [r7, #56] ; 0x38 + 8007818: 4613 mov r3, r2 + 800781a: 009b lsls r3, r3, #2 + 800781c: 4413 add r3, r2 + 800781e: 009b lsls r3, r3, #2 + 8007820: 461a mov r2, r3 + 8007822: 6b3b ldr r3, [r7, #48] ; 0x30 + 8007824: 4413 add r3, r2 + 8007826: 891a ldrh r2, [r3, #8] + 8007828: 6a3b ldr r3, [r7, #32] + 800782a: 6819 ldr r1, [r3, #0] + 800782c: 6bfb ldr r3, [r7, #60] ; 0x3c + 800782e: 005b lsls r3, r3, #1 + 8007830: 440b add r3, r1 + 8007832: 881b ldrh r3, [r3, #0] + 8007834: 429a cmp r2, r3 + 8007836: d107 bne.n 8007848 + 8007838: 697a ldr r2, [r7, #20] + 800783a: 6a7b ldr r3, [r7, #36] ; 0x24 + 800783c: 429a cmp r2, r3 + 800783e: d103 bne.n 8007848 + 8007840: 8b7a ldrh r2, [r7, #26] + 8007842: 8d7b ldrh r3, [r7, #42] ; 0x2a + 8007844: 429a cmp r2, r3 + 8007846: d207 bcs.n 8007858 for(t = 0; t < tsi; t++) { - 80078b4: 6bbb ldr r3, [r7, #56] ; 0x38 - 80078b6: 3301 adds r3, #1 - 80078b8: 63bb str r3, [r7, #56] ; 0x38 - 80078ba: 6bba ldr r2, [r7, #56] ; 0x38 - 80078bc: 6c7b ldr r3, [r7, #68] ; 0x44 - 80078be: 429a cmp r2, r3 - 80078c0: d3cc bcc.n 800785c - 80078c2: e000 b.n 80078c6 + 8007848: 6bbb ldr r3, [r7, #56] ; 0x38 + 800784a: 3301 adds r3, #1 + 800784c: 63bb str r3, [r7, #56] ; 0x38 + 800784e: 6bba ldr r2, [r7, #56] ; 0x38 + 8007850: 6c7b ldr r3, [r7, #68] ; 0x44 + 8007852: 429a cmp r2, r3 + 8007854: d3cc bcc.n 80077f0 + 8007856: e000 b.n 800785a if(ts[t].prop == tr->props[j] && part_ts == part_act && state_ts >= state_act) break; - 80078c4: bf00 nop + 8007858: bf00 nop } /*If not found add it*/ if(t == tsi) { - 80078c6: 6bba ldr r2, [r7, #56] ; 0x38 - 80078c8: 6c7b ldr r3, [r7, #68] ; 0x44 - 80078ca: 429a cmp r2, r3 - 80078cc: d14d bne.n 800796a + 800785a: 6bba ldr r2, [r7, #56] ; 0x38 + 800785c: 6c7b ldr r3, [r7, #68] ; 0x44 + 800785e: 429a cmp r2, r3 + 8007860: d14d bne.n 80078fe ts[tsi].time = tr->time; - 80078ce: 6a3b ldr r3, [r7, #32] - 80078d0: 68d9 ldr r1, [r3, #12] - 80078d2: 6c7a ldr r2, [r7, #68] ; 0x44 - 80078d4: 4613 mov r3, r2 - 80078d6: 009b lsls r3, r3, #2 - 80078d8: 4413 add r3, r2 - 80078da: 009b lsls r3, r3, #2 - 80078dc: 461a mov r2, r3 - 80078de: 6b3b ldr r3, [r7, #48] ; 0x30 - 80078e0: 4413 add r3, r2 - 80078e2: b28a uxth r2, r1 - 80078e4: 801a strh r2, [r3, #0] + 8007862: 6a3b ldr r3, [r7, #32] + 8007864: 68d9 ldr r1, [r3, #12] + 8007866: 6c7a ldr r2, [r7, #68] ; 0x44 + 8007868: 4613 mov r3, r2 + 800786a: 009b lsls r3, r3, #2 + 800786c: 4413 add r3, r2 + 800786e: 009b lsls r3, r3, #2 + 8007870: 461a mov r2, r3 + 8007872: 6b3b ldr r3, [r7, #48] ; 0x30 + 8007874: 4413 add r3, r2 + 8007876: b28a uxth r2, r1 + 8007878: 801a strh r2, [r3, #0] ts[tsi].delay = tr->delay; - 80078e6: 6a3b ldr r3, [r7, #32] - 80078e8: 6919 ldr r1, [r3, #16] - 80078ea: 6c7a ldr r2, [r7, #68] ; 0x44 - 80078ec: 4613 mov r3, r2 - 80078ee: 009b lsls r3, r3, #2 - 80078f0: 4413 add r3, r2 - 80078f2: 009b lsls r3, r3, #2 - 80078f4: 461a mov r2, r3 - 80078f6: 6b3b ldr r3, [r7, #48] ; 0x30 - 80078f8: 4413 add r3, r2 - 80078fa: b28a uxth r2, r1 - 80078fc: 805a strh r2, [r3, #2] + 800787a: 6a3b ldr r3, [r7, #32] + 800787c: 6919 ldr r1, [r3, #16] + 800787e: 6c7a ldr r2, [r7, #68] ; 0x44 + 8007880: 4613 mov r3, r2 + 8007882: 009b lsls r3, r3, #2 + 8007884: 4413 add r3, r2 + 8007886: 009b lsls r3, r3, #2 + 8007888: 461a mov r2, r3 + 800788a: 6b3b ldr r3, [r7, #48] ; 0x30 + 800788c: 4413 add r3, r2 + 800788e: b28a uxth r2, r1 + 8007890: 805a strh r2, [r3, #2] ts[tsi].path_cb = tr->path_xcb; - 80078fe: 6c7a ldr r2, [r7, #68] ; 0x44 - 8007900: 4613 mov r3, r2 - 8007902: 009b lsls r3, r3, #2 - 8007904: 4413 add r3, r2 - 8007906: 009b lsls r3, r3, #2 - 8007908: 461a mov r2, r3 - 800790a: 6b3b ldr r3, [r7, #48] ; 0x30 - 800790c: 4413 add r3, r2 - 800790e: 6a3a ldr r2, [r7, #32] - 8007910: 6892 ldr r2, [r2, #8] - 8007912: 60da str r2, [r3, #12] + 8007892: 6c7a ldr r2, [r7, #68] ; 0x44 + 8007894: 4613 mov r3, r2 + 8007896: 009b lsls r3, r3, #2 + 8007898: 4413 add r3, r2 + 800789a: 009b lsls r3, r3, #2 + 800789c: 461a mov r2, r3 + 800789e: 6b3b ldr r3, [r7, #48] ; 0x30 + 80078a0: 4413 add r3, r2 + 80078a2: 6a3a ldr r2, [r7, #32] + 80078a4: 6892 ldr r2, [r2, #8] + 80078a6: 60da str r2, [r3, #12] ts[tsi].prop = tr->props[j]; - 8007914: 6a3b ldr r3, [r7, #32] - 8007916: 681a ldr r2, [r3, #0] - 8007918: 6bfb ldr r3, [r7, #60] ; 0x3c - 800791a: 005b lsls r3, r3, #1 - 800791c: 18d1 adds r1, r2, r3 - 800791e: 6c7a ldr r2, [r7, #68] ; 0x44 - 8007920: 4613 mov r3, r2 - 8007922: 009b lsls r3, r3, #2 - 8007924: 4413 add r3, r2 - 8007926: 009b lsls r3, r3, #2 - 8007928: 461a mov r2, r3 - 800792a: 6b3b ldr r3, [r7, #48] ; 0x30 - 800792c: 4413 add r3, r2 - 800792e: 880a ldrh r2, [r1, #0] - 8007930: 811a strh r2, [r3, #8] + 80078a8: 6a3b ldr r3, [r7, #32] + 80078aa: 681a ldr r2, [r3, #0] + 80078ac: 6bfb ldr r3, [r7, #60] ; 0x3c + 80078ae: 005b lsls r3, r3, #1 + 80078b0: 18d1 adds r1, r2, r3 + 80078b2: 6c7a ldr r2, [r7, #68] ; 0x44 + 80078b4: 4613 mov r3, r2 + 80078b6: 009b lsls r3, r3, #2 + 80078b8: 4413 add r3, r2 + 80078ba: 009b lsls r3, r3, #2 + 80078bc: 461a mov r2, r3 + 80078be: 6b3b ldr r3, [r7, #48] ; 0x30 + 80078c0: 4413 add r3, r2 + 80078c2: 880a ldrh r2, [r1, #0] + 80078c4: 811a strh r2, [r3, #8] #if LV_USE_USER_DATA ts[tsi].user_data = tr->user_data; - 8007932: 6c7a ldr r2, [r7, #68] ; 0x44 - 8007934: 4613 mov r3, r2 - 8007936: 009b lsls r3, r3, #2 - 8007938: 4413 add r3, r2 - 800793a: 009b lsls r3, r3, #2 - 800793c: 461a mov r2, r3 - 800793e: 6b3b ldr r3, [r7, #48] ; 0x30 - 8007940: 4413 add r3, r2 - 8007942: 6a3a ldr r2, [r7, #32] - 8007944: 6852 ldr r2, [r2, #4] - 8007946: 611a str r2, [r3, #16] + 80078c6: 6c7a ldr r2, [r7, #68] ; 0x44 + 80078c8: 4613 mov r3, r2 + 80078ca: 009b lsls r3, r3, #2 + 80078cc: 4413 add r3, r2 + 80078ce: 009b lsls r3, r3, #2 + 80078d0: 461a mov r2, r3 + 80078d2: 6b3b ldr r3, [r7, #48] ; 0x30 + 80078d4: 4413 add r3, r2 + 80078d6: 6a3a ldr r2, [r7, #32] + 80078d8: 6852 ldr r2, [r2, #4] + 80078da: 611a str r2, [r3, #16] #endif ts[tsi].selector = obj_style->selector; - 8007948: 6afb ldr r3, [r7, #44] ; 0x2c - 800794a: 685b ldr r3, [r3, #4] - 800794c: f3c3 0117 ubfx r1, r3, #0, #24 - 8007950: 6c7a ldr r2, [r7, #68] ; 0x44 - 8007952: 4613 mov r3, r2 - 8007954: 009b lsls r3, r3, #2 - 8007956: 4413 add r3, r2 - 8007958: 009b lsls r3, r3, #2 - 800795a: 461a mov r2, r3 - 800795c: 6b3b ldr r3, [r7, #48] ; 0x30 - 800795e: 4413 add r3, r2 - 8007960: 460a mov r2, r1 - 8007962: 605a str r2, [r3, #4] + 80078dc: 6afb ldr r3, [r7, #44] ; 0x2c + 80078de: 685b ldr r3, [r3, #4] + 80078e0: f3c3 0117 ubfx r1, r3, #0, #24 + 80078e4: 6c7a ldr r2, [r7, #68] ; 0x44 + 80078e6: 4613 mov r3, r2 + 80078e8: 009b lsls r3, r3, #2 + 80078ea: 4413 add r3, r2 + 80078ec: 009b lsls r3, r3, #2 + 80078ee: 461a mov r2, r3 + 80078f0: 6b3b ldr r3, [r7, #48] ; 0x30 + 80078f2: 4413 add r3, r2 + 80078f4: 460a mov r2, r1 + 80078f6: 605a str r2, [r3, #4] tsi++; - 8007964: 6c7b ldr r3, [r7, #68] ; 0x44 - 8007966: 3301 adds r3, #1 - 8007968: 647b str r3, [r7, #68] ; 0x44 + 80078f8: 6c7b ldr r3, [r7, #68] ; 0x44 + 80078fa: 3301 adds r3, #1 + 80078fc: 647b str r3, [r7, #68] ; 0x44 for(j = 0; tr->props[j] != 0 && tsi < STYLE_TRANSITION_MAX; j++) { - 800796a: 6bfb ldr r3, [r7, #60] ; 0x3c - 800796c: 3301 adds r3, #1 - 800796e: 63fb str r3, [r7, #60] ; 0x3c - 8007970: 6a3b ldr r3, [r7, #32] - 8007972: 681a ldr r2, [r3, #0] - 8007974: 6bfb ldr r3, [r7, #60] ; 0x3c - 8007976: 005b lsls r3, r3, #1 - 8007978: 4413 add r3, r2 - 800797a: 881b ldrh r3, [r3, #0] - 800797c: 2b00 cmp r3, #0 - 800797e: d009 beq.n 8007994 - 8007980: 6c7b ldr r3, [r7, #68] ; 0x44 - 8007982: 2b1f cmp r3, #31 - 8007984: f67f af67 bls.w 8007856 - 8007988: e004 b.n 8007994 + 80078fe: 6bfb ldr r3, [r7, #60] ; 0x3c + 8007900: 3301 adds r3, #1 + 8007902: 63fb str r3, [r7, #60] ; 0x3c + 8007904: 6a3b ldr r3, [r7, #32] + 8007906: 681a ldr r2, [r3, #0] + 8007908: 6bfb ldr r3, [r7, #60] ; 0x3c + 800790a: 005b lsls r3, r3, #1 + 800790c: 4413 add r3, r2 + 800790e: 881b ldrh r3, [r3, #0] + 8007910: 2b00 cmp r3, #0 + 8007912: d009 beq.n 8007928 + 8007914: 6c7b ldr r3, [r7, #68] ; 0x44 + 8007916: 2b1f cmp r3, #31 + 8007918: f67f af67 bls.w 80077ea + 800791c: e004 b.n 8007928 if(state_act & (~new_state)) continue; /*Skip unrelated styles*/ - 800798a: bf00 nop - 800798c: e002 b.n 8007994 + 800791e: bf00 nop + 8007920: e002 b.n 8007928 if(obj_style->is_trans) continue; - 800798e: bf00 nop - 8007990: e000 b.n 8007994 + 8007922: bf00 nop + 8007924: e000 b.n 8007928 if(lv_style_get_prop_inlined(obj_style->style, LV_STYLE_TRANSITION, &v) == false) continue; - 8007992: bf00 nop + 8007926: bf00 nop for(i = 0; i < obj->style_cnt && tsi < STYLE_TRANSITION_MAX; i++) { - 8007994: 6c3b ldr r3, [r7, #64] ; 0x40 - 8007996: 3301 adds r3, #1 - 8007998: 643b str r3, [r7, #64] ; 0x40 - 800799a: 687b ldr r3, [r7, #4] - 800799c: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800799e: f3c3 03c5 ubfx r3, r3, #3, #6 - 80079a2: b2db uxtb r3, r3 - 80079a4: 461a mov r2, r3 - 80079a6: 6c3b ldr r3, [r7, #64] ; 0x40 - 80079a8: 4293 cmp r3, r2 - 80079aa: d203 bcs.n 80079b4 - 80079ac: 6c7b ldr r3, [r7, #68] ; 0x44 - 80079ae: 2b1f cmp r3, #31 - 80079b0: f67f af12 bls.w 80077d8 + 8007928: 6c3b ldr r3, [r7, #64] ; 0x40 + 800792a: 3301 adds r3, #1 + 800792c: 643b str r3, [r7, #64] ; 0x40 + 800792e: 687b ldr r3, [r7, #4] + 8007930: 8c5b ldrh r3, [r3, #34] ; 0x22 + 8007932: f3c3 03c5 ubfx r3, r3, #3, #6 + 8007936: b2db uxtb r3, r3 + 8007938: 461a mov r2, r3 + 800793a: 6c3b ldr r3, [r7, #64] ; 0x40 + 800793c: 4293 cmp r3, r2 + 800793e: d203 bcs.n 8007948 + 8007940: 6c7b ldr r3, [r7, #68] ; 0x44 + 8007942: 2b1f cmp r3, #31 + 8007944: f67f af12 bls.w 800776c } } } for(i = 0; i < tsi; i++) { - 80079b4: 2300 movs r3, #0 - 80079b6: 643b str r3, [r7, #64] ; 0x40 - 80079b8: e01f b.n 80079fa + 8007948: 2300 movs r3, #0 + 800794a: 643b str r3, [r7, #64] ; 0x40 + 800794c: e01f b.n 800798e lv_part_t part_act = lv_obj_style_get_selector_part(ts[i].selector); - 80079ba: 6c3a ldr r2, [r7, #64] ; 0x40 - 80079bc: 4613 mov r3, r2 - 80079be: 009b lsls r3, r3, #2 - 80079c0: 4413 add r3, r2 - 80079c2: 009b lsls r3, r3, #2 - 80079c4: 461a mov r2, r3 - 80079c6: 6b3b ldr r3, [r7, #48] ; 0x30 - 80079c8: 4413 add r3, r2 - 80079ca: 685b ldr r3, [r3, #4] - 80079cc: 4618 mov r0, r3 - 80079ce: f006 fe6b bl 800e6a8 - 80079d2: 6138 str r0, [r7, #16] + 800794e: 6c3a ldr r2, [r7, #64] ; 0x40 + 8007950: 4613 mov r3, r2 + 8007952: 009b lsls r3, r3, #2 + 8007954: 4413 add r3, r2 + 8007956: 009b lsls r3, r3, #2 + 8007958: 461a mov r2, r3 + 800795a: 6b3b ldr r3, [r7, #48] ; 0x30 + 800795c: 4413 add r3, r2 + 800795e: 685b ldr r3, [r3, #4] + 8007960: 4618 mov r0, r3 + 8007962: f006 fe6b bl 800e63c + 8007966: 6138 str r0, [r7, #16] _lv_obj_style_create_transition(obj, part_act, prev_state, new_state, &ts[i]); - 80079d4: 6c3a ldr r2, [r7, #64] ; 0x40 - 80079d6: 4613 mov r3, r2 - 80079d8: 009b lsls r3, r3, #2 - 80079da: 4413 add r3, r2 - 80079dc: 009b lsls r3, r3, #2 - 80079de: 461a mov r2, r3 - 80079e0: 6b3b ldr r3, [r7, #48] ; 0x30 - 80079e2: 4413 add r3, r2 - 80079e4: 8879 ldrh r1, [r7, #2] - 80079e6: 8efa ldrh r2, [r7, #54] ; 0x36 - 80079e8: 9300 str r3, [sp, #0] - 80079ea: 460b mov r3, r1 - 80079ec: 6939 ldr r1, [r7, #16] - 80079ee: 6878 ldr r0, [r7, #4] - 80079f0: f006 fb1e bl 800e030 <_lv_obj_style_create_transition> + 8007968: 6c3a ldr r2, [r7, #64] ; 0x40 + 800796a: 4613 mov r3, r2 + 800796c: 009b lsls r3, r3, #2 + 800796e: 4413 add r3, r2 + 8007970: 009b lsls r3, r3, #2 + 8007972: 461a mov r2, r3 + 8007974: 6b3b ldr r3, [r7, #48] ; 0x30 + 8007976: 4413 add r3, r2 + 8007978: 8879 ldrh r1, [r7, #2] + 800797a: 8efa ldrh r2, [r7, #54] ; 0x36 + 800797c: 9300 str r3, [sp, #0] + 800797e: 460b mov r3, r1 + 8007980: 6939 ldr r1, [r7, #16] + 8007982: 6878 ldr r0, [r7, #4] + 8007984: f006 fb1e bl 800dfc4 <_lv_obj_style_create_transition> for(i = 0; i < tsi; i++) { - 80079f4: 6c3b ldr r3, [r7, #64] ; 0x40 - 80079f6: 3301 adds r3, #1 - 80079f8: 643b str r3, [r7, #64] ; 0x40 - 80079fa: 6c3a ldr r2, [r7, #64] ; 0x40 - 80079fc: 6c7b ldr r3, [r7, #68] ; 0x44 - 80079fe: 429a cmp r2, r3 - 8007a00: d3db bcc.n 80079ba + 8007988: 6c3b ldr r3, [r7, #64] ; 0x40 + 800798a: 3301 adds r3, #1 + 800798c: 643b str r3, [r7, #64] ; 0x40 + 800798e: 6c3a ldr r2, [r7, #64] ; 0x40 + 8007990: 6c7b ldr r3, [r7, #68] ; 0x44 + 8007992: 429a cmp r2, r3 + 8007994: d3db bcc.n 800794e } lv_mem_buf_release(ts); - 8007a02: 6b38 ldr r0, [r7, #48] ; 0x30 - 8007a04: f02b f8a8 bl 8032b58 + 8007996: 6b38 ldr r0, [r7, #48] ; 0x30 + 8007998: f02b f894 bl 8032ac4 if(cmp_res == _LV_STYLE_STATE_CMP_DIFF_REDRAW) { - 8007a08: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 - 8007a0c: 2b01 cmp r3, #1 - 8007a0e: d103 bne.n 8007a18 + 800799c: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 + 80079a0: 2b01 cmp r3, #1 + 80079a2: d103 bne.n 80079ac lv_obj_invalidate(obj); - 8007a10: 6878 ldr r0, [r7, #4] - 8007a12: f003 f84e bl 800aab2 - 8007a16: e019 b.n 8007a4c + 80079a4: 6878 ldr r0, [r7, #4] + 80079a6: f003 f84e bl 800aa46 + 80079aa: e019 b.n 80079e0 } else if(cmp_res == _LV_STYLE_STATE_CMP_DIFF_LAYOUT) { - 8007a18: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 - 8007a1c: 2b03 cmp r3, #3 - 8007a1e: d107 bne.n 8007a30 + 80079ac: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 + 80079b0: 2b03 cmp r3, #3 + 80079b2: d107 bne.n 80079c4 lv_obj_refresh_style(obj, LV_PART_ANY, LV_STYLE_PROP_ANY); - 8007a20: f64f 72ff movw r2, #65535 ; 0xffff - 8007a24: f44f 2170 mov.w r1, #983040 ; 0xf0000 - 8007a28: 6878 ldr r0, [r7, #4] - 8007a2a: f006 f927 bl 800dc7c - 8007a2e: e00d b.n 8007a4c + 80079b4: f64f 72ff movw r2, #65535 ; 0xffff + 80079b8: f44f 2170 mov.w r1, #983040 ; 0xf0000 + 80079bc: 6878 ldr r0, [r7, #4] + 80079be: f006 f927 bl 800dc10 + 80079c2: e00d b.n 80079e0 } else if(cmp_res == _LV_STYLE_STATE_CMP_DIFF_DRAW_PAD) { - 8007a30: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 - 8007a34: 2b02 cmp r3, #2 - 8007a36: d109 bne.n 8007a4c + 80079c4: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 + 80079c8: 2b02 cmp r3, #2 + 80079ca: d109 bne.n 80079e0 lv_obj_invalidate(obj); - 8007a38: 6878 ldr r0, [r7, #4] - 8007a3a: f003 f83a bl 800aab2 + 80079cc: 6878 ldr r0, [r7, #4] + 80079ce: f003 f83a bl 800aa46 lv_obj_refresh_ext_draw_size(obj); - 8007a3e: 6878 ldr r0, [r7, #4] - 8007a40: f001 fa25 bl 8008e8e - 8007a44: e002 b.n 8007a4c + 80079d2: 6878 ldr r0, [r7, #4] + 80079d4: f001 fa25 bl 8008e22 + 80079d8: e002 b.n 80079e0 if(obj->state == new_state) return; - 8007a46: bf00 nop - 8007a48: e000 b.n 8007a4c + 80079da: bf00 nop + 80079dc: e000 b.n 80079e0 if(cmp_res == _LV_STYLE_STATE_CMP_SAME) return; - 8007a4a: bf00 nop + 80079de: bf00 nop } } - 8007a4c: 3748 adds r7, #72 ; 0x48 - 8007a4e: 46bd mov sp, r7 - 8007a50: bd80 pop {r7, pc} + 80079e0: 3748 adds r7, #72 ; 0x48 + 80079e2: 46bd mov sp, r7 + 80079e4: bd80 pop {r7, pc} -08007a52 : +080079e6 : /********************** * GLOBAL FUNCTIONS **********************/ lv_obj_t * lv_obj_class_create_obj(const lv_obj_class_t * class_p, lv_obj_t * parent) { - 8007a52: b590 push {r4, r7, lr} - 8007a54: b087 sub sp, #28 - 8007a56: af00 add r7, sp, #0 - 8007a58: 6078 str r0, [r7, #4] - 8007a5a: 6039 str r1, [r7, #0] + 80079e6: b590 push {r4, r7, lr} + 80079e8: b087 sub sp, #28 + 80079ea: af00 add r7, sp, #0 + 80079ec: 6078 str r0, [r7, #4] + 80079ee: 6039 str r1, [r7, #0] LV_TRACE_OBJ_CREATE("Creating object with %p class on %p parent", (void *)class_p, (void *)parent); uint32_t s = get_instance_size(class_p); - 8007a5c: 6878 ldr r0, [r7, #4] - 8007a5e: f000 f98b bl 8007d78 - 8007a62: 6178 str r0, [r7, #20] + 80079f0: 6878 ldr r0, [r7, #4] + 80079f2: f000 f98b bl 8007d0c + 80079f6: 6178 str r0, [r7, #20] lv_obj_t * obj = lv_mem_alloc(s); - 8007a64: 6978 ldr r0, [r7, #20] - 8007a66: f02a ff17 bl 8032898 - 8007a6a: 6138 str r0, [r7, #16] + 80079f8: 6978 ldr r0, [r7, #20] + 80079fa: f02a ff03 bl 8032804 + 80079fe: 6138 str r0, [r7, #16] if(obj == NULL) return NULL; - 8007a6c: 693b ldr r3, [r7, #16] - 8007a6e: 2b00 cmp r3, #0 - 8007a70: d101 bne.n 8007a76 - 8007a72: 2300 movs r3, #0 - 8007a74: e09b b.n 8007bae + 8007a00: 693b ldr r3, [r7, #16] + 8007a02: 2b00 cmp r3, #0 + 8007a04: d101 bne.n 8007a0a + 8007a06: 2300 movs r3, #0 + 8007a08: e09b b.n 8007b42 lv_memset_00(obj, s); - 8007a76: 6979 ldr r1, [r7, #20] - 8007a78: 6938 ldr r0, [r7, #16] - 8007a7a: f02b fb69 bl 8033150 + 8007a0a: 6979 ldr r1, [r7, #20] + 8007a0c: 6938 ldr r0, [r7, #16] + 8007a0e: f02b fb55 bl 80330bc obj->class_p = class_p; - 8007a7e: 693b ldr r3, [r7, #16] - 8007a80: 687a ldr r2, [r7, #4] - 8007a82: 601a str r2, [r3, #0] + 8007a12: 693b ldr r3, [r7, #16] + 8007a14: 687a ldr r2, [r7, #4] + 8007a16: 601a str r2, [r3, #0] obj->parent = parent; - 8007a84: 693b ldr r3, [r7, #16] - 8007a86: 683a ldr r2, [r7, #0] - 8007a88: 605a str r2, [r3, #4] + 8007a18: 693b ldr r3, [r7, #16] + 8007a1a: 683a ldr r2, [r7, #0] + 8007a1c: 605a str r2, [r3, #4] /*Create a screen*/ if(parent == NULL) { - 8007a8a: 683b ldr r3, [r7, #0] - 8007a8c: 2b00 cmp r3, #0 - 8007a8e: d150 bne.n 8007b32 + 8007a1e: 683b ldr r3, [r7, #0] + 8007a20: 2b00 cmp r3, #0 + 8007a22: d150 bne.n 8007ac6 LV_TRACE_OBJ_CREATE("creating a screen"); lv_disp_t * disp = lv_disp_get_default(); - 8007a90: f028 fd1c bl 80304cc - 8007a94: 60f8 str r0, [r7, #12] + 8007a24: f028 fd08 bl 8030438 + 8007a28: 60f8 str r0, [r7, #12] if(!disp) { - 8007a96: 68fb ldr r3, [r7, #12] - 8007a98: 2b00 cmp r3, #0 - 8007a9a: d101 bne.n 8007aa0 + 8007a2a: 68fb ldr r3, [r7, #12] + 8007a2c: 2b00 cmp r3, #0 + 8007a2e: d101 bne.n 8007a34 LV_LOG_WARN("No display created yet. No place to assign the new screen"); return NULL; - 8007a9c: 2300 movs r3, #0 - 8007a9e: e086 b.n 8007bae + 8007a30: 2300 movs r3, #0 + 8007a32: e086 b.n 8007b42 } if(disp->screens == NULL) { - 8007aa0: 68fb ldr r3, [r7, #12] - 8007aa2: 68db ldr r3, [r3, #12] - 8007aa4: 2b00 cmp r3, #0 - 8007aa6: d10d bne.n 8007ac4 + 8007a34: 68fb ldr r3, [r7, #12] + 8007a36: 68db ldr r3, [r3, #12] + 8007a38: 2b00 cmp r3, #0 + 8007a3a: d10d bne.n 8007a58 disp->screens = lv_mem_alloc(sizeof(lv_obj_t *)); - 8007aa8: 2004 movs r0, #4 - 8007aaa: f02a fef5 bl 8032898 - 8007aae: 4602 mov r2, r0 - 8007ab0: 68fb ldr r3, [r7, #12] - 8007ab2: 60da str r2, [r3, #12] + 8007a3c: 2004 movs r0, #4 + 8007a3e: f02a fee1 bl 8032804 + 8007a42: 4602 mov r2, r0 + 8007a44: 68fb ldr r3, [r7, #12] + 8007a46: 60da str r2, [r3, #12] disp->screens[0] = obj; - 8007ab4: 68fb ldr r3, [r7, #12] - 8007ab6: 68db ldr r3, [r3, #12] - 8007ab8: 693a ldr r2, [r7, #16] - 8007aba: 601a str r2, [r3, #0] + 8007a48: 68fb ldr r3, [r7, #12] + 8007a4a: 68db ldr r3, [r3, #12] + 8007a4c: 693a ldr r2, [r7, #16] + 8007a4e: 601a str r2, [r3, #0] disp->screen_cnt = 1; - 8007abc: 68fb ldr r3, [r7, #12] - 8007abe: 2201 movs r2, #1 - 8007ac0: 625a str r2, [r3, #36] ; 0x24 - 8007ac2: e01b b.n 8007afc + 8007a50: 68fb ldr r3, [r7, #12] + 8007a52: 2201 movs r2, #1 + 8007a54: 625a str r2, [r3, #36] ; 0x24 + 8007a56: e01b b.n 8007a90 } else { disp->screen_cnt++; - 8007ac4: 68fb ldr r3, [r7, #12] - 8007ac6: 6a5b ldr r3, [r3, #36] ; 0x24 - 8007ac8: 1c5a adds r2, r3, #1 - 8007aca: 68fb ldr r3, [r7, #12] - 8007acc: 625a str r2, [r3, #36] ; 0x24 + 8007a58: 68fb ldr r3, [r7, #12] + 8007a5a: 6a5b ldr r3, [r3, #36] ; 0x24 + 8007a5c: 1c5a adds r2, r3, #1 + 8007a5e: 68fb ldr r3, [r7, #12] + 8007a60: 625a str r2, [r3, #36] ; 0x24 disp->screens = lv_mem_realloc(disp->screens, sizeof(lv_obj_t *) * disp->screen_cnt); - 8007ace: 68fb ldr r3, [r7, #12] - 8007ad0: 68da ldr r2, [r3, #12] - 8007ad2: 68fb ldr r3, [r7, #12] - 8007ad4: 6a5b ldr r3, [r3, #36] ; 0x24 - 8007ad6: 009b lsls r3, r3, #2 - 8007ad8: 4619 mov r1, r3 - 8007ada: 4610 mov r0, r2 - 8007adc: f02a ff1a bl 8032914 - 8007ae0: 4602 mov r2, r0 - 8007ae2: 68fb ldr r3, [r7, #12] - 8007ae4: 60da str r2, [r3, #12] + 8007a62: 68fb ldr r3, [r7, #12] + 8007a64: 68da ldr r2, [r3, #12] + 8007a66: 68fb ldr r3, [r7, #12] + 8007a68: 6a5b ldr r3, [r3, #36] ; 0x24 + 8007a6a: 009b lsls r3, r3, #2 + 8007a6c: 4619 mov r1, r3 + 8007a6e: 4610 mov r0, r2 + 8007a70: f02a ff06 bl 8032880 + 8007a74: 4602 mov r2, r0 + 8007a76: 68fb ldr r3, [r7, #12] + 8007a78: 60da str r2, [r3, #12] disp->screens[disp->screen_cnt - 1] = obj; - 8007ae6: 68fb ldr r3, [r7, #12] - 8007ae8: 68da ldr r2, [r3, #12] - 8007aea: 68fb ldr r3, [r7, #12] - 8007aec: 6a5b ldr r3, [r3, #36] ; 0x24 - 8007aee: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 - 8007af2: 3b01 subs r3, #1 - 8007af4: 009b lsls r3, r3, #2 - 8007af6: 4413 add r3, r2 - 8007af8: 693a ldr r2, [r7, #16] - 8007afa: 601a str r2, [r3, #0] + 8007a7a: 68fb ldr r3, [r7, #12] + 8007a7c: 68da ldr r2, [r3, #12] + 8007a7e: 68fb ldr r3, [r7, #12] + 8007a80: 6a5b ldr r3, [r3, #36] ; 0x24 + 8007a82: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 + 8007a86: 3b01 subs r3, #1 + 8007a88: 009b lsls r3, r3, #2 + 8007a8a: 4413 add r3, r2 + 8007a8c: 693a ldr r2, [r7, #16] + 8007a8e: 601a str r2, [r3, #0] } /*Set coordinates to full screen size*/ obj->coords.x1 = 0; - 8007afc: 693b ldr r3, [r7, #16] - 8007afe: 2200 movs r2, #0 - 8007b00: 829a strh r2, [r3, #20] + 8007a90: 693b ldr r3, [r7, #16] + 8007a92: 2200 movs r2, #0 + 8007a94: 829a strh r2, [r3, #20] obj->coords.y1 = 0; - 8007b02: 693b ldr r3, [r7, #16] - 8007b04: 2200 movs r2, #0 - 8007b06: 82da strh r2, [r3, #22] + 8007a96: 693b ldr r3, [r7, #16] + 8007a98: 2200 movs r2, #0 + 8007a9a: 82da strh r2, [r3, #22] obj->coords.x2 = lv_disp_get_hor_res(NULL) - 1; - 8007b08: 2000 movs r0, #0 - 8007b0a: f028 fce9 bl 80304e0 - 8007b0e: 4603 mov r3, r0 - 8007b10: b29b uxth r3, r3 - 8007b12: 3b01 subs r3, #1 - 8007b14: b29b uxth r3, r3 - 8007b16: b21a sxth r2, r3 - 8007b18: 693b ldr r3, [r7, #16] - 8007b1a: 831a strh r2, [r3, #24] + 8007a9c: 2000 movs r0, #0 + 8007a9e: f028 fcd5 bl 803044c + 8007aa2: 4603 mov r3, r0 + 8007aa4: b29b uxth r3, r3 + 8007aa6: 3b01 subs r3, #1 + 8007aa8: b29b uxth r3, r3 + 8007aaa: b21a sxth r2, r3 + 8007aac: 693b ldr r3, [r7, #16] + 8007aae: 831a strh r2, [r3, #24] obj->coords.y2 = lv_disp_get_ver_res(NULL) - 1; - 8007b1c: 2000 movs r0, #0 - 8007b1e: f028 fd05 bl 803052c - 8007b22: 4603 mov r3, r0 - 8007b24: b29b uxth r3, r3 - 8007b26: 3b01 subs r3, #1 - 8007b28: b29b uxth r3, r3 - 8007b2a: b21a sxth r2, r3 - 8007b2c: 693b ldr r3, [r7, #16] - 8007b2e: 835a strh r2, [r3, #26] - 8007b30: e03c b.n 8007bac + 8007ab0: 2000 movs r0, #0 + 8007ab2: f028 fcf1 bl 8030498 + 8007ab6: 4603 mov r3, r0 + 8007ab8: b29b uxth r3, r3 + 8007aba: 3b01 subs r3, #1 + 8007abc: b29b uxth r3, r3 + 8007abe: b21a sxth r2, r3 + 8007ac0: 693b ldr r3, [r7, #16] + 8007ac2: 835a strh r2, [r3, #26] + 8007ac4: e03c b.n 8007b40 } /*Create a normal object*/ else { LV_TRACE_OBJ_CREATE("creating normal object"); LV_ASSERT_OBJ(parent, MY_CLASS); if(parent->spec_attr == NULL) { - 8007b32: 683b ldr r3, [r7, #0] - 8007b34: 689b ldr r3, [r3, #8] - 8007b36: 2b00 cmp r3, #0 - 8007b38: d102 bne.n 8007b40 + 8007ac6: 683b ldr r3, [r7, #0] + 8007ac8: 689b ldr r3, [r3, #8] + 8007aca: 2b00 cmp r3, #0 + 8007acc: d102 bne.n 8007ad4 lv_obj_allocate_spec_attr(parent); - 8007b3a: 6838 ldr r0, [r7, #0] - 8007b3c: f7fe fe7a bl 8006834 + 8007ace: 6838 ldr r0, [r7, #0] + 8007ad0: f7fe fe7a bl 80067c8 } if(parent->spec_attr->children == NULL) { - 8007b40: 683b ldr r3, [r7, #0] - 8007b42: 689b ldr r3, [r3, #8] - 8007b44: 681b ldr r3, [r3, #0] - 8007b46: 2b00 cmp r3, #0 - 8007b48: d110 bne.n 8007b6c + 8007ad4: 683b ldr r3, [r7, #0] + 8007ad6: 689b ldr r3, [r3, #8] + 8007ad8: 681b ldr r3, [r3, #0] + 8007ada: 2b00 cmp r3, #0 + 8007adc: d110 bne.n 8007b00 parent->spec_attr->children = lv_mem_alloc(sizeof(lv_obj_t *)); - 8007b4a: 683b ldr r3, [r7, #0] - 8007b4c: 689c ldr r4, [r3, #8] - 8007b4e: 2004 movs r0, #4 - 8007b50: f02a fea2 bl 8032898 - 8007b54: 4603 mov r3, r0 - 8007b56: 6023 str r3, [r4, #0] + 8007ade: 683b ldr r3, [r7, #0] + 8007ae0: 689c ldr r4, [r3, #8] + 8007ae2: 2004 movs r0, #4 + 8007ae4: f02a fe8e bl 8032804 + 8007ae8: 4603 mov r3, r0 + 8007aea: 6023 str r3, [r4, #0] parent->spec_attr->children[0] = obj; - 8007b58: 683b ldr r3, [r7, #0] - 8007b5a: 689b ldr r3, [r3, #8] - 8007b5c: 681b ldr r3, [r3, #0] - 8007b5e: 693a ldr r2, [r7, #16] - 8007b60: 601a str r2, [r3, #0] + 8007aec: 683b ldr r3, [r7, #0] + 8007aee: 689b ldr r3, [r3, #8] + 8007af0: 681b ldr r3, [r3, #0] + 8007af2: 693a ldr r2, [r7, #16] + 8007af4: 601a str r2, [r3, #0] parent->spec_attr->child_cnt = 1; - 8007b62: 683b ldr r3, [r7, #0] - 8007b64: 689b ldr r3, [r3, #8] - 8007b66: 2201 movs r2, #1 - 8007b68: 605a str r2, [r3, #4] - 8007b6a: e01f b.n 8007bac + 8007af6: 683b ldr r3, [r7, #0] + 8007af8: 689b ldr r3, [r3, #8] + 8007afa: 2201 movs r2, #1 + 8007afc: 605a str r2, [r3, #4] + 8007afe: e01f b.n 8007b40 } else { parent->spec_attr->child_cnt++; - 8007b6c: 683b ldr r3, [r7, #0] - 8007b6e: 689b ldr r3, [r3, #8] - 8007b70: 685a ldr r2, [r3, #4] - 8007b72: 3201 adds r2, #1 - 8007b74: 605a str r2, [r3, #4] + 8007b00: 683b ldr r3, [r7, #0] + 8007b02: 689b ldr r3, [r3, #8] + 8007b04: 685a ldr r2, [r3, #4] + 8007b06: 3201 adds r2, #1 + 8007b08: 605a str r2, [r3, #4] parent->spec_attr->children = lv_mem_realloc(parent->spec_attr->children, - 8007b76: 683b ldr r3, [r7, #0] - 8007b78: 689b ldr r3, [r3, #8] - 8007b7a: 681a ldr r2, [r3, #0] + 8007b0a: 683b ldr r3, [r7, #0] + 8007b0c: 689b ldr r3, [r3, #8] + 8007b0e: 681a ldr r2, [r3, #0] sizeof(lv_obj_t *) * parent->spec_attr->child_cnt); - 8007b7c: 683b ldr r3, [r7, #0] - 8007b7e: 689b ldr r3, [r3, #8] - 8007b80: 685b ldr r3, [r3, #4] - 8007b82: 0099 lsls r1, r3, #2 + 8007b10: 683b ldr r3, [r7, #0] + 8007b12: 689b ldr r3, [r3, #8] + 8007b14: 685b ldr r3, [r3, #4] + 8007b16: 0099 lsls r1, r3, #2 parent->spec_attr->children = lv_mem_realloc(parent->spec_attr->children, - 8007b84: 683b ldr r3, [r7, #0] - 8007b86: 689c ldr r4, [r3, #8] - 8007b88: 4610 mov r0, r2 - 8007b8a: f02a fec3 bl 8032914 - 8007b8e: 4603 mov r3, r0 - 8007b90: 6023 str r3, [r4, #0] + 8007b18: 683b ldr r3, [r7, #0] + 8007b1a: 689c ldr r4, [r3, #8] + 8007b1c: 4610 mov r0, r2 + 8007b1e: f02a feaf bl 8032880 + 8007b22: 4603 mov r3, r0 + 8007b24: 6023 str r3, [r4, #0] parent->spec_attr->children[parent->spec_attr->child_cnt - 1] = obj; - 8007b92: 683b ldr r3, [r7, #0] - 8007b94: 689b ldr r3, [r3, #8] - 8007b96: 681a ldr r2, [r3, #0] - 8007b98: 683b ldr r3, [r7, #0] - 8007b9a: 689b ldr r3, [r3, #8] - 8007b9c: 685b ldr r3, [r3, #4] - 8007b9e: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 - 8007ba2: 3b01 subs r3, #1 - 8007ba4: 009b lsls r3, r3, #2 - 8007ba6: 4413 add r3, r2 - 8007ba8: 693a ldr r2, [r7, #16] - 8007baa: 601a str r2, [r3, #0] + 8007b26: 683b ldr r3, [r7, #0] + 8007b28: 689b ldr r3, [r3, #8] + 8007b2a: 681a ldr r2, [r3, #0] + 8007b2c: 683b ldr r3, [r7, #0] + 8007b2e: 689b ldr r3, [r3, #8] + 8007b30: 685b ldr r3, [r3, #4] + 8007b32: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 + 8007b36: 3b01 subs r3, #1 + 8007b38: 009b lsls r3, r3, #2 + 8007b3a: 4413 add r3, r2 + 8007b3c: 693a ldr r2, [r7, #16] + 8007b3e: 601a str r2, [r3, #0] } } return obj; - 8007bac: 693b ldr r3, [r7, #16] + 8007b40: 693b ldr r3, [r7, #16] } - 8007bae: 4618 mov r0, r3 - 8007bb0: 371c adds r7, #28 - 8007bb2: 46bd mov sp, r7 - 8007bb4: bd90 pop {r4, r7, pc} + 8007b42: 4618 mov r0, r3 + 8007b44: 371c adds r7, #28 + 8007b46: 46bd mov sp, r7 + 8007b48: bd90 pop {r4, r7, pc} -08007bb6 : +08007b4a : void lv_obj_class_init_obj(lv_obj_t * obj) { - 8007bb6: b580 push {r7, lr} - 8007bb8: b084 sub sp, #16 - 8007bba: af00 add r7, sp, #0 - 8007bbc: 6078 str r0, [r7, #4] + 8007b4a: b580 push {r7, lr} + 8007b4c: b084 sub sp, #16 + 8007b4e: af00 add r7, sp, #0 + 8007b50: 6078 str r0, [r7, #4] lv_obj_mark_layout_as_dirty(obj); - 8007bbe: 6878 ldr r0, [r7, #4] - 8007bc0: f001 fe94 bl 80098ec + 8007b52: 6878 ldr r0, [r7, #4] + 8007b54: f001 fe94 bl 8009880 lv_obj_enable_style_refresh(false); - 8007bc4: 2000 movs r0, #0 - 8007bc6: f006 f8e3 bl 800dd90 + 8007b58: 2000 movs r0, #0 + 8007b5a: f006 f8e3 bl 800dd24 lv_theme_apply(obj); - 8007bca: 6878 ldr r0, [r7, #4] - 8007bcc: f009 fa34 bl 8011038 + 8007b5e: 6878 ldr r0, [r7, #4] + 8007b60: f009 fa20 bl 8010fa4 lv_obj_construct(obj); - 8007bd0: 6878 ldr r0, [r7, #4] - 8007bd2: f000 f8a9 bl 8007d28 + 8007b64: 6878 ldr r0, [r7, #4] + 8007b66: f000 f8a9 bl 8007cbc lv_obj_enable_style_refresh(true); - 8007bd6: 2001 movs r0, #1 - 8007bd8: f006 f8da bl 800dd90 + 8007b6a: 2001 movs r0, #1 + 8007b6c: f006 f8da bl 800dd24 lv_obj_refresh_style(obj, LV_PART_ANY, LV_STYLE_PROP_ANY); - 8007bdc: f64f 72ff movw r2, #65535 ; 0xffff - 8007be0: f44f 2170 mov.w r1, #983040 ; 0xf0000 - 8007be4: 6878 ldr r0, [r7, #4] - 8007be6: f006 f849 bl 800dc7c + 8007b70: f64f 72ff movw r2, #65535 ; 0xffff + 8007b74: f44f 2170 mov.w r1, #983040 ; 0xf0000 + 8007b78: 6878 ldr r0, [r7, #4] + 8007b7a: f006 f849 bl 800dc10 lv_obj_refresh_self_size(obj); - 8007bea: 6878 ldr r0, [r7, #4] - 8007bec: f002 fba9 bl 800a342 + 8007b7e: 6878 ldr r0, [r7, #4] + 8007b80: f002 fba9 bl 800a2d6 lv_group_t * def_group = lv_group_get_default(); - 8007bf0: f7fa ff80 bl 8002af4 - 8007bf4: 60f8 str r0, [r7, #12] + 8007b84: f7fa ff80 bl 8002a88 + 8007b88: 60f8 str r0, [r7, #12] if(def_group && lv_obj_is_group_def(obj)) { - 8007bf6: 68fb ldr r3, [r7, #12] - 8007bf8: 2b00 cmp r3, #0 - 8007bfa: d009 beq.n 8007c10 - 8007bfc: 6878 ldr r0, [r7, #4] - 8007bfe: f000 f86a bl 8007cd6 - 8007c02: 4603 mov r3, r0 - 8007c04: 2b00 cmp r3, #0 - 8007c06: d003 beq.n 8007c10 + 8007b8a: 68fb ldr r3, [r7, #12] + 8007b8c: 2b00 cmp r3, #0 + 8007b8e: d009 beq.n 8007ba4 + 8007b90: 6878 ldr r0, [r7, #4] + 8007b92: f000 f86a bl 8007c6a + 8007b96: 4603 mov r3, r0 + 8007b98: 2b00 cmp r3, #0 + 8007b9a: d003 beq.n 8007ba4 lv_group_add_obj(def_group, obj); - 8007c08: 6879 ldr r1, [r7, #4] - 8007c0a: 68f8 ldr r0, [r7, #12] - 8007c0c: f7fa ff7c bl 8002b08 + 8007b9c: 6879 ldr r1, [r7, #4] + 8007b9e: 68f8 ldr r0, [r7, #12] + 8007ba0: f7fa ff7c bl 8002a9c } lv_obj_t * parent = lv_obj_get_parent(obj); - 8007c10: 6878 ldr r0, [r7, #4] - 8007c12: f007 fd7b bl 800f70c - 8007c16: 60b8 str r0, [r7, #8] + 8007ba4: 6878 ldr r0, [r7, #4] + 8007ba6: f007 fd67 bl 800f678 + 8007baa: 60b8 str r0, [r7, #8] if(parent) { - 8007c18: 68bb ldr r3, [r7, #8] - 8007c1a: 2b00 cmp r3, #0 - 8007c1c: d00c beq.n 8007c38 + 8007bac: 68bb ldr r3, [r7, #8] + 8007bae: 2b00 cmp r3, #0 + 8007bb0: d00c beq.n 8007bcc /*Call the ancestor's event handler to the parent to notify it about the new child. *Also triggers layout update*/ lv_event_send(parent, LV_EVENT_CHILD_CHANGED, obj); - 8007c1e: 687a ldr r2, [r7, #4] - 8007c20: 2122 movs r1, #34 ; 0x22 - 8007c22: 68b8 ldr r0, [r7, #8] - 8007c24: f7fa fc2c bl 8002480 + 8007bb2: 687a ldr r2, [r7, #4] + 8007bb4: 2122 movs r1, #34 ; 0x22 + 8007bb6: 68b8 ldr r0, [r7, #8] + 8007bb8: f7fa fc2c bl 8002414 lv_event_send(parent, LV_EVENT_CHILD_CREATED, obj); - 8007c28: 687a ldr r2, [r7, #4] - 8007c2a: 2123 movs r1, #35 ; 0x23 - 8007c2c: 68b8 ldr r0, [r7, #8] - 8007c2e: f7fa fc27 bl 8002480 + 8007bbc: 687a ldr r2, [r7, #4] + 8007bbe: 2123 movs r1, #35 ; 0x23 + 8007bc0: 68b8 ldr r0, [r7, #8] + 8007bc2: f7fa fc27 bl 8002414 /*Invalidate the area if not screen created*/ lv_obj_invalidate(obj); - 8007c32: 6878 ldr r0, [r7, #4] - 8007c34: f002 ff3d bl 800aab2 + 8007bc6: 6878 ldr r0, [r7, #4] + 8007bc8: f002 ff3d bl 800aa46 } } - 8007c38: bf00 nop - 8007c3a: 3710 adds r7, #16 - 8007c3c: 46bd mov sp, r7 - 8007c3e: bd80 pop {r7, pc} + 8007bcc: bf00 nop + 8007bce: 3710 adds r7, #16 + 8007bd0: 46bd mov sp, r7 + 8007bd2: bd80 pop {r7, pc} -08007c40 <_lv_obj_destruct>: +08007bd4 <_lv_obj_destruct>: void _lv_obj_destruct(lv_obj_t * obj) { - 8007c40: b580 push {r7, lr} - 8007c42: b082 sub sp, #8 - 8007c44: af00 add r7, sp, #0 - 8007c46: 6078 str r0, [r7, #4] + 8007bd4: b580 push {r7, lr} + 8007bd6: b082 sub sp, #8 + 8007bd8: af00 add r7, sp, #0 + 8007bda: 6078 str r0, [r7, #4] if(obj->class_p->destructor_cb) obj->class_p->destructor_cb(obj->class_p, obj); - 8007c48: 687b ldr r3, [r7, #4] - 8007c4a: 681b ldr r3, [r3, #0] - 8007c4c: 689b ldr r3, [r3, #8] - 8007c4e: 2b00 cmp r3, #0 - 8007c50: d007 beq.n 8007c62 <_lv_obj_destruct+0x22> - 8007c52: 687b ldr r3, [r7, #4] - 8007c54: 681b ldr r3, [r3, #0] - 8007c56: 689b ldr r3, [r3, #8] - 8007c58: 687a ldr r2, [r7, #4] - 8007c5a: 6812 ldr r2, [r2, #0] - 8007c5c: 6879 ldr r1, [r7, #4] - 8007c5e: 4610 mov r0, r2 - 8007c60: 4798 blx r3 + 8007bdc: 687b ldr r3, [r7, #4] + 8007bde: 681b ldr r3, [r3, #0] + 8007be0: 689b ldr r3, [r3, #8] + 8007be2: 2b00 cmp r3, #0 + 8007be4: d007 beq.n 8007bf6 <_lv_obj_destruct+0x22> + 8007be6: 687b ldr r3, [r7, #4] + 8007be8: 681b ldr r3, [r3, #0] + 8007bea: 689b ldr r3, [r3, #8] + 8007bec: 687a ldr r2, [r7, #4] + 8007bee: 6812 ldr r2, [r2, #0] + 8007bf0: 6879 ldr r1, [r7, #4] + 8007bf2: 4610 mov r0, r2 + 8007bf4: 4798 blx r3 if(obj->class_p->base_class) { - 8007c62: 687b ldr r3, [r7, #4] - 8007c64: 681b ldr r3, [r3, #0] - 8007c66: 681b ldr r3, [r3, #0] - 8007c68: 2b00 cmp r3, #0 - 8007c6a: d007 beq.n 8007c7c <_lv_obj_destruct+0x3c> + 8007bf6: 687b ldr r3, [r7, #4] + 8007bf8: 681b ldr r3, [r3, #0] + 8007bfa: 681b ldr r3, [r3, #0] + 8007bfc: 2b00 cmp r3, #0 + 8007bfe: d007 beq.n 8007c10 <_lv_obj_destruct+0x3c> /*Don't let the descendant methods run during destructing the ancestor type*/ obj->class_p = obj->class_p->base_class; - 8007c6c: 687b ldr r3, [r7, #4] - 8007c6e: 681b ldr r3, [r3, #0] - 8007c70: 681a ldr r2, [r3, #0] - 8007c72: 687b ldr r3, [r7, #4] - 8007c74: 601a str r2, [r3, #0] + 8007c00: 687b ldr r3, [r7, #4] + 8007c02: 681b ldr r3, [r3, #0] + 8007c04: 681a ldr r2, [r3, #0] + 8007c06: 687b ldr r3, [r7, #4] + 8007c08: 601a str r2, [r3, #0] /*Call the base class's destructor too*/ _lv_obj_destruct(obj); - 8007c76: 6878 ldr r0, [r7, #4] - 8007c78: f7ff ffe2 bl 8007c40 <_lv_obj_destruct> + 8007c0a: 6878 ldr r0, [r7, #4] + 8007c0c: f7ff ffe2 bl 8007bd4 <_lv_obj_destruct> } } - 8007c7c: bf00 nop - 8007c7e: 3708 adds r7, #8 - 8007c80: 46bd mov sp, r7 - 8007c82: bd80 pop {r7, pc} + 8007c10: bf00 nop + 8007c12: 3708 adds r7, #8 + 8007c14: 46bd mov sp, r7 + 8007c16: bd80 pop {r7, pc} -08007c84 : +08007c18 : bool lv_obj_is_editable(lv_obj_t * obj) { - 8007c84: b480 push {r7} - 8007c86: b085 sub sp, #20 - 8007c88: af00 add r7, sp, #0 - 8007c8a: 6078 str r0, [r7, #4] + 8007c18: b480 push {r7} + 8007c1a: b085 sub sp, #20 + 8007c1c: af00 add r7, sp, #0 + 8007c1e: 6078 str r0, [r7, #4] const lv_obj_class_t * class_p = obj->class_p; - 8007c8c: 687b ldr r3, [r7, #4] - 8007c8e: 681b ldr r3, [r3, #0] - 8007c90: 60fb str r3, [r7, #12] + 8007c20: 687b ldr r3, [r7, #4] + 8007c22: 681b ldr r3, [r3, #0] + 8007c24: 60fb str r3, [r7, #12] /*Find a base in which editable is set*/ while(class_p && class_p->editable == LV_OBJ_CLASS_EDITABLE_INHERIT) class_p = class_p->base_class; - 8007c92: e002 b.n 8007c9a - 8007c94: 68fb ldr r3, [r7, #12] - 8007c96: 681b ldr r3, [r3, #0] - 8007c98: 60fb str r3, [r7, #12] - 8007c9a: 68fb ldr r3, [r7, #12] - 8007c9c: 2b00 cmp r3, #0 - 8007c9e: d006 beq.n 8007cae - 8007ca0: 68fb ldr r3, [r7, #12] - 8007ca2: 7e1b ldrb r3, [r3, #24] - 8007ca4: f003 0303 and.w r3, r3, #3 - 8007ca8: b2db uxtb r3, r3 - 8007caa: 2b00 cmp r3, #0 - 8007cac: d0f2 beq.n 8007c94 + 8007c26: e002 b.n 8007c2e + 8007c28: 68fb ldr r3, [r7, #12] + 8007c2a: 681b ldr r3, [r3, #0] + 8007c2c: 60fb str r3, [r7, #12] + 8007c2e: 68fb ldr r3, [r7, #12] + 8007c30: 2b00 cmp r3, #0 + 8007c32: d006 beq.n 8007c42 + 8007c34: 68fb ldr r3, [r7, #12] + 8007c36: 7e1b ldrb r3, [r3, #24] + 8007c38: f003 0303 and.w r3, r3, #3 + 8007c3c: b2db uxtb r3, r3 + 8007c3e: 2b00 cmp r3, #0 + 8007c40: d0f2 beq.n 8007c28 if(class_p == NULL) return false; - 8007cae: 68fb ldr r3, [r7, #12] - 8007cb0: 2b00 cmp r3, #0 - 8007cb2: d101 bne.n 8007cb8 - 8007cb4: 2300 movs r3, #0 - 8007cb6: e009 b.n 8007ccc + 8007c42: 68fb ldr r3, [r7, #12] + 8007c44: 2b00 cmp r3, #0 + 8007c46: d101 bne.n 8007c4c + 8007c48: 2300 movs r3, #0 + 8007c4a: e009 b.n 8007c60 return class_p->editable == LV_OBJ_CLASS_EDITABLE_TRUE ? true : false; - 8007cb8: 68fb ldr r3, [r7, #12] - 8007cba: 7e1b ldrb r3, [r3, #24] - 8007cbc: f003 0303 and.w r3, r3, #3 - 8007cc0: b2db uxtb r3, r3 - 8007cc2: 2b01 cmp r3, #1 - 8007cc4: bf0c ite eq - 8007cc6: 2301 moveq r3, #1 - 8007cc8: 2300 movne r3, #0 - 8007cca: b2db uxtb r3, r3 + 8007c4c: 68fb ldr r3, [r7, #12] + 8007c4e: 7e1b ldrb r3, [r3, #24] + 8007c50: f003 0303 and.w r3, r3, #3 + 8007c54: b2db uxtb r3, r3 + 8007c56: 2b01 cmp r3, #1 + 8007c58: bf0c ite eq + 8007c5a: 2301 moveq r3, #1 + 8007c5c: 2300 movne r3, #0 + 8007c5e: b2db uxtb r3, r3 } - 8007ccc: 4618 mov r0, r3 - 8007cce: 3714 adds r7, #20 - 8007cd0: 46bd mov sp, r7 - 8007cd2: bc80 pop {r7} - 8007cd4: 4770 bx lr + 8007c60: 4618 mov r0, r3 + 8007c62: 3714 adds r7, #20 + 8007c64: 46bd mov sp, r7 + 8007c66: bc80 pop {r7} + 8007c68: 4770 bx lr -08007cd6 : +08007c6a : bool lv_obj_is_group_def(lv_obj_t * obj) { - 8007cd6: b480 push {r7} - 8007cd8: b085 sub sp, #20 - 8007cda: af00 add r7, sp, #0 - 8007cdc: 6078 str r0, [r7, #4] + 8007c6a: b480 push {r7} + 8007c6c: b085 sub sp, #20 + 8007c6e: af00 add r7, sp, #0 + 8007c70: 6078 str r0, [r7, #4] const lv_obj_class_t * class_p = obj->class_p; - 8007cde: 687b ldr r3, [r7, #4] - 8007ce0: 681b ldr r3, [r3, #0] - 8007ce2: 60fb str r3, [r7, #12] + 8007c72: 687b ldr r3, [r7, #4] + 8007c74: 681b ldr r3, [r3, #0] + 8007c76: 60fb str r3, [r7, #12] /*Find a base in which group_def is set*/ while(class_p && class_p->group_def == LV_OBJ_CLASS_GROUP_DEF_INHERIT) class_p = class_p->base_class; - 8007ce4: e002 b.n 8007cec - 8007ce6: 68fb ldr r3, [r7, #12] - 8007ce8: 681b ldr r3, [r3, #0] - 8007cea: 60fb str r3, [r7, #12] - 8007cec: 68fb ldr r3, [r7, #12] - 8007cee: 2b00 cmp r3, #0 - 8007cf0: d006 beq.n 8007d00 - 8007cf2: 68fb ldr r3, [r7, #12] - 8007cf4: 7e1b ldrb r3, [r3, #24] - 8007cf6: f003 030c and.w r3, r3, #12 - 8007cfa: b2db uxtb r3, r3 - 8007cfc: 2b00 cmp r3, #0 - 8007cfe: d0f2 beq.n 8007ce6 + 8007c78: e002 b.n 8007c80 + 8007c7a: 68fb ldr r3, [r7, #12] + 8007c7c: 681b ldr r3, [r3, #0] + 8007c7e: 60fb str r3, [r7, #12] + 8007c80: 68fb ldr r3, [r7, #12] + 8007c82: 2b00 cmp r3, #0 + 8007c84: d006 beq.n 8007c94 + 8007c86: 68fb ldr r3, [r7, #12] + 8007c88: 7e1b ldrb r3, [r3, #24] + 8007c8a: f003 030c and.w r3, r3, #12 + 8007c8e: b2db uxtb r3, r3 + 8007c90: 2b00 cmp r3, #0 + 8007c92: d0f2 beq.n 8007c7a if(class_p == NULL) return false; - 8007d00: 68fb ldr r3, [r7, #12] - 8007d02: 2b00 cmp r3, #0 - 8007d04: d101 bne.n 8007d0a - 8007d06: 2300 movs r3, #0 - 8007d08: e009 b.n 8007d1e + 8007c94: 68fb ldr r3, [r7, #12] + 8007c96: 2b00 cmp r3, #0 + 8007c98: d101 bne.n 8007c9e + 8007c9a: 2300 movs r3, #0 + 8007c9c: e009 b.n 8007cb2 return class_p->group_def == LV_OBJ_CLASS_GROUP_DEF_TRUE ? true : false; - 8007d0a: 68fb ldr r3, [r7, #12] - 8007d0c: 7e1b ldrb r3, [r3, #24] - 8007d0e: f003 030c and.w r3, r3, #12 - 8007d12: b2db uxtb r3, r3 - 8007d14: 2b04 cmp r3, #4 - 8007d16: bf0c ite eq - 8007d18: 2301 moveq r3, #1 - 8007d1a: 2300 movne r3, #0 - 8007d1c: b2db uxtb r3, r3 + 8007c9e: 68fb ldr r3, [r7, #12] + 8007ca0: 7e1b ldrb r3, [r3, #24] + 8007ca2: f003 030c and.w r3, r3, #12 + 8007ca6: b2db uxtb r3, r3 + 8007ca8: 2b04 cmp r3, #4 + 8007caa: bf0c ite eq + 8007cac: 2301 moveq r3, #1 + 8007cae: 2300 movne r3, #0 + 8007cb0: b2db uxtb r3, r3 } - 8007d1e: 4618 mov r0, r3 - 8007d20: 3714 adds r7, #20 - 8007d22: 46bd mov sp, r7 - 8007d24: bc80 pop {r7} - 8007d26: 4770 bx lr + 8007cb2: 4618 mov r0, r3 + 8007cb4: 3714 adds r7, #20 + 8007cb6: 46bd mov sp, r7 + 8007cb8: bc80 pop {r7} + 8007cba: 4770 bx lr -08007d28 : +08007cbc : /********************** * STATIC FUNCTIONS **********************/ static void lv_obj_construct(lv_obj_t * obj) { - 8007d28: b580 push {r7, lr} - 8007d2a: b084 sub sp, #16 - 8007d2c: af00 add r7, sp, #0 - 8007d2e: 6078 str r0, [r7, #4] + 8007cbc: b580 push {r7, lr} + 8007cbe: b084 sub sp, #16 + 8007cc0: af00 add r7, sp, #0 + 8007cc2: 6078 str r0, [r7, #4] const lv_obj_class_t * original_class_p = obj->class_p; - 8007d30: 687b ldr r3, [r7, #4] - 8007d32: 681b ldr r3, [r3, #0] - 8007d34: 60fb str r3, [r7, #12] + 8007cc4: 687b ldr r3, [r7, #4] + 8007cc6: 681b ldr r3, [r3, #0] + 8007cc8: 60fb str r3, [r7, #12] if(obj->class_p->base_class) { - 8007d36: 687b ldr r3, [r7, #4] - 8007d38: 681b ldr r3, [r3, #0] - 8007d3a: 681b ldr r3, [r3, #0] - 8007d3c: 2b00 cmp r3, #0 - 8007d3e: d007 beq.n 8007d50 + 8007cca: 687b ldr r3, [r7, #4] + 8007ccc: 681b ldr r3, [r3, #0] + 8007cce: 681b ldr r3, [r3, #0] + 8007cd0: 2b00 cmp r3, #0 + 8007cd2: d007 beq.n 8007ce4 /*Don't let the descendant methods run during constructing the ancestor type*/ obj->class_p = obj->class_p->base_class; - 8007d40: 687b ldr r3, [r7, #4] - 8007d42: 681b ldr r3, [r3, #0] - 8007d44: 681a ldr r2, [r3, #0] - 8007d46: 687b ldr r3, [r7, #4] - 8007d48: 601a str r2, [r3, #0] + 8007cd4: 687b ldr r3, [r7, #4] + 8007cd6: 681b ldr r3, [r3, #0] + 8007cd8: 681a ldr r2, [r3, #0] + 8007cda: 687b ldr r3, [r7, #4] + 8007cdc: 601a str r2, [r3, #0] /*Construct the base first*/ lv_obj_construct(obj); - 8007d4a: 6878 ldr r0, [r7, #4] - 8007d4c: f7ff ffec bl 8007d28 + 8007cde: 6878 ldr r0, [r7, #4] + 8007ce0: f7ff ffec bl 8007cbc } /*Restore the original class*/ obj->class_p = original_class_p; - 8007d50: 687b ldr r3, [r7, #4] - 8007d52: 68fa ldr r2, [r7, #12] - 8007d54: 601a str r2, [r3, #0] + 8007ce4: 687b ldr r3, [r7, #4] + 8007ce6: 68fa ldr r2, [r7, #12] + 8007ce8: 601a str r2, [r3, #0] if(obj->class_p->constructor_cb) obj->class_p->constructor_cb(obj->class_p, obj); - 8007d56: 687b ldr r3, [r7, #4] - 8007d58: 681b ldr r3, [r3, #0] - 8007d5a: 685b ldr r3, [r3, #4] - 8007d5c: 2b00 cmp r3, #0 - 8007d5e: d007 beq.n 8007d70 - 8007d60: 687b ldr r3, [r7, #4] - 8007d62: 681b ldr r3, [r3, #0] - 8007d64: 685b ldr r3, [r3, #4] - 8007d66: 687a ldr r2, [r7, #4] - 8007d68: 6812 ldr r2, [r2, #0] - 8007d6a: 6879 ldr r1, [r7, #4] - 8007d6c: 4610 mov r0, r2 - 8007d6e: 4798 blx r3 + 8007cea: 687b ldr r3, [r7, #4] + 8007cec: 681b ldr r3, [r3, #0] + 8007cee: 685b ldr r3, [r3, #4] + 8007cf0: 2b00 cmp r3, #0 + 8007cf2: d007 beq.n 8007d04 + 8007cf4: 687b ldr r3, [r7, #4] + 8007cf6: 681b ldr r3, [r3, #0] + 8007cf8: 685b ldr r3, [r3, #4] + 8007cfa: 687a ldr r2, [r7, #4] + 8007cfc: 6812 ldr r2, [r2, #0] + 8007cfe: 6879 ldr r1, [r7, #4] + 8007d00: 4610 mov r0, r2 + 8007d02: 4798 blx r3 } - 8007d70: bf00 nop - 8007d72: 3710 adds r7, #16 - 8007d74: 46bd mov sp, r7 - 8007d76: bd80 pop {r7, pc} + 8007d04: bf00 nop + 8007d06: 3710 adds r7, #16 + 8007d08: 46bd mov sp, r7 + 8007d0a: bd80 pop {r7, pc} -08007d78 : +08007d0c : static uint32_t get_instance_size(const lv_obj_class_t * class_p) { - 8007d78: b480 push {r7} - 8007d7a: b085 sub sp, #20 - 8007d7c: af00 add r7, sp, #0 - 8007d7e: 6078 str r0, [r7, #4] + 8007d0c: b480 push {r7} + 8007d0e: b085 sub sp, #20 + 8007d10: af00 add r7, sp, #0 + 8007d12: 6078 str r0, [r7, #4] /*Find a base in which instance size is set*/ const lv_obj_class_t * base = class_p; - 8007d80: 687b ldr r3, [r7, #4] - 8007d82: 60fb str r3, [r7, #12] + 8007d14: 687b ldr r3, [r7, #4] + 8007d16: 60fb str r3, [r7, #12] while(base && base->instance_size == 0) base = base->base_class; - 8007d84: e002 b.n 8007d8c - 8007d86: 68fb ldr r3, [r7, #12] - 8007d88: 681b ldr r3, [r3, #0] - 8007d8a: 60fb str r3, [r7, #12] - 8007d8c: 68fb ldr r3, [r7, #12] - 8007d8e: 2b00 cmp r3, #0 - 8007d90: d005 beq.n 8007d9e - 8007d92: 68fb ldr r3, [r7, #12] - 8007d94: 699a ldr r2, [r3, #24] - 8007d96: 4b09 ldr r3, [pc, #36] ; (8007dbc ) - 8007d98: 4013 ands r3, r2 - 8007d9a: 2b00 cmp r3, #0 - 8007d9c: d0f3 beq.n 8007d86 + 8007d18: e002 b.n 8007d20 + 8007d1a: 68fb ldr r3, [r7, #12] + 8007d1c: 681b ldr r3, [r3, #0] + 8007d1e: 60fb str r3, [r7, #12] + 8007d20: 68fb ldr r3, [r7, #12] + 8007d22: 2b00 cmp r3, #0 + 8007d24: d005 beq.n 8007d32 + 8007d26: 68fb ldr r3, [r7, #12] + 8007d28: 699a ldr r2, [r3, #24] + 8007d2a: 4b09 ldr r3, [pc, #36] ; (8007d50 ) + 8007d2c: 4013 ands r3, r2 + 8007d2e: 2b00 cmp r3, #0 + 8007d30: d0f3 beq.n 8007d1a if(base == NULL) return 0; /*Never happens: set at least in `lv_obj` class*/ - 8007d9e: 68fb ldr r3, [r7, #12] - 8007da0: 2b00 cmp r3, #0 - 8007da2: d101 bne.n 8007da8 - 8007da4: 2300 movs r3, #0 - 8007da6: e004 b.n 8007db2 + 8007d32: 68fb ldr r3, [r7, #12] + 8007d34: 2b00 cmp r3, #0 + 8007d36: d101 bne.n 8007d3c + 8007d38: 2300 movs r3, #0 + 8007d3a: e004 b.n 8007d46 return base->instance_size; - 8007da8: 68fb ldr r3, [r7, #12] - 8007daa: 699b ldr r3, [r3, #24] - 8007dac: f3c3 130f ubfx r3, r3, #4, #16 - 8007db0: b29b uxth r3, r3 + 8007d3c: 68fb ldr r3, [r7, #12] + 8007d3e: 699b ldr r3, [r3, #24] + 8007d40: f3c3 130f ubfx r3, r3, #4, #16 + 8007d44: b29b uxth r3, r3 } - 8007db2: 4618 mov r0, r3 - 8007db4: 3714 adds r7, #20 - 8007db6: 46bd mov sp, r7 - 8007db8: bc80 pop {r7} - 8007dba: 4770 bx lr - 8007dbc: 000ffff0 .word 0x000ffff0 + 8007d46: 4618 mov r0, r3 + 8007d48: 3714 adds r7, #20 + 8007d4a: 46bd mov sp, r7 + 8007d4c: bc80 pop {r7} + 8007d4e: 4770 bx lr + 8007d50: 000ffff0 .word 0x000ffff0 -08007dc0 : +08007d54 : * Get the width of an area * @param area_p pointer to an area * @return the width of the area (if x1 == x2 -> width = 1) */ static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p) { - 8007dc0: b480 push {r7} - 8007dc2: b083 sub sp, #12 - 8007dc4: af00 add r7, sp, #0 - 8007dc6: 6078 str r0, [r7, #4] + 8007d54: b480 push {r7} + 8007d56: b083 sub sp, #12 + 8007d58: af00 add r7, sp, #0 + 8007d5a: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 8007dc8: 687b ldr r3, [r7, #4] - 8007dca: f9b3 3004 ldrsh.w r3, [r3, #4] - 8007dce: b29a uxth r2, r3 - 8007dd0: 687b ldr r3, [r7, #4] - 8007dd2: f9b3 3000 ldrsh.w r3, [r3] - 8007dd6: b29b uxth r3, r3 - 8007dd8: 1ad3 subs r3, r2, r3 - 8007dda: b29b uxth r3, r3 - 8007ddc: 3301 adds r3, #1 - 8007dde: b29b uxth r3, r3 - 8007de0: b21b sxth r3, r3 + 8007d5c: 687b ldr r3, [r7, #4] + 8007d5e: f9b3 3004 ldrsh.w r3, [r3, #4] + 8007d62: b29a uxth r2, r3 + 8007d64: 687b ldr r3, [r7, #4] + 8007d66: f9b3 3000 ldrsh.w r3, [r3] + 8007d6a: b29b uxth r3, r3 + 8007d6c: 1ad3 subs r3, r2, r3 + 8007d6e: b29b uxth r3, r3 + 8007d70: 3301 adds r3, #1 + 8007d72: b29b uxth r3, r3 + 8007d74: b21b sxth r3, r3 } - 8007de2: 4618 mov r0, r3 - 8007de4: 370c adds r7, #12 - 8007de6: 46bd mov sp, r7 - 8007de8: bc80 pop {r7} - 8007dea: 4770 bx lr + 8007d76: 4618 mov r0, r3 + 8007d78: 370c adds r7, #12 + 8007d7a: 46bd mov sp, r7 + 8007d7c: bc80 pop {r7} + 8007d7e: 4770 bx lr -08007dec : +08007d80 : * Get the height of an area * @param area_p pointer to an area * @return the height of the area (if y1 == y2 -> height = 1) */ static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) { - 8007dec: b480 push {r7} - 8007dee: b083 sub sp, #12 - 8007df0: af00 add r7, sp, #0 - 8007df2: 6078 str r0, [r7, #4] + 8007d80: b480 push {r7} + 8007d82: b083 sub sp, #12 + 8007d84: af00 add r7, sp, #0 + 8007d86: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 8007df4: 687b ldr r3, [r7, #4] - 8007df6: f9b3 3006 ldrsh.w r3, [r3, #6] - 8007dfa: b29a uxth r2, r3 - 8007dfc: 687b ldr r3, [r7, #4] - 8007dfe: f9b3 3002 ldrsh.w r3, [r3, #2] - 8007e02: b29b uxth r3, r3 - 8007e04: 1ad3 subs r3, r2, r3 - 8007e06: b29b uxth r3, r3 - 8007e08: 3301 adds r3, #1 - 8007e0a: b29b uxth r3, r3 - 8007e0c: b21b sxth r3, r3 + 8007d88: 687b ldr r3, [r7, #4] + 8007d8a: f9b3 3006 ldrsh.w r3, [r3, #6] + 8007d8e: b29a uxth r2, r3 + 8007d90: 687b ldr r3, [r7, #4] + 8007d92: f9b3 3002 ldrsh.w r3, [r3, #2] + 8007d96: b29b uxth r3, r3 + 8007d98: 1ad3 subs r3, r2, r3 + 8007d9a: b29b uxth r3, r3 + 8007d9c: 3301 adds r3, #1 + 8007d9e: b29b uxth r3, r3 + 8007da0: b21b sxth r3, r3 } - 8007e0e: 4618 mov r0, r3 - 8007e10: 370c adds r7, #12 - 8007e12: 46bd mov sp, r7 - 8007e14: bc80 pop {r7} - 8007e16: 4770 bx lr + 8007da2: 4618 mov r0, r3 + 8007da4: 370c adds r7, #12 + 8007da6: 46bd mov sp, r7 + 8007da8: bc80 pop {r7} + 8007daa: 4770 bx lr -08007e18 : +08007dac : { - 8007e18: b580 push {r7, lr} - 8007e1a: b084 sub sp, #16 - 8007e1c: af00 add r7, sp, #0 - 8007e1e: 6078 str r0, [r7, #4] - 8007e20: 6039 str r1, [r7, #0] + 8007dac: b580 push {r7, lr} + 8007dae: b084 sub sp, #16 + 8007db0: af00 add r7, sp, #0 + 8007db2: 6078 str r0, [r7, #4] + 8007db4: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_WIDTH); - 8007e22: f640 020a movw r2, #2058 ; 0x80a - 8007e26: 6839 ldr r1, [r7, #0] - 8007e28: 6878 ldr r0, [r7, #4] - 8007e2a: f005 ffc1 bl 800ddb0 - 8007e2e: 4603 mov r3, r0 - 8007e30: 60fb str r3, [r7, #12] + 8007db6: f640 020a movw r2, #2058 ; 0x80a + 8007dba: 6839 ldr r1, [r7, #0] + 8007dbc: 6878 ldr r0, [r7, #4] + 8007dbe: f005 ffc1 bl 800dd44 + 8007dc2: 4603 mov r3, r0 + 8007dc4: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8007e32: 68fb ldr r3, [r7, #12] - 8007e34: b21b sxth r3, r3 + 8007dc6: 68fb ldr r3, [r7, #12] + 8007dc8: b21b sxth r3, r3 } - 8007e36: 4618 mov r0, r3 - 8007e38: 3710 adds r7, #16 - 8007e3a: 46bd mov sp, r7 - 8007e3c: bd80 pop {r7, pc} + 8007dca: 4618 mov r0, r3 + 8007dcc: 3710 adds r7, #16 + 8007dce: 46bd mov sp, r7 + 8007dd0: bd80 pop {r7, pc} -08007e3e : +08007dd2 : { - 8007e3e: b580 push {r7, lr} - 8007e40: b084 sub sp, #16 - 8007e42: af00 add r7, sp, #0 - 8007e44: 6078 str r0, [r7, #4] - 8007e46: 6039 str r1, [r7, #0] + 8007dd2: b580 push {r7, lr} + 8007dd4: b084 sub sp, #16 + 8007dd6: af00 add r7, sp, #0 + 8007dd8: 6078 str r0, [r7, #4] + 8007dda: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_HEIGHT); - 8007e48: f640 020b movw r2, #2059 ; 0x80b - 8007e4c: 6839 ldr r1, [r7, #0] - 8007e4e: 6878 ldr r0, [r7, #4] - 8007e50: f005 ffae bl 800ddb0 - 8007e54: 4603 mov r3, r0 - 8007e56: 60fb str r3, [r7, #12] + 8007ddc: f640 020b movw r2, #2059 ; 0x80b + 8007de0: 6839 ldr r1, [r7, #0] + 8007de2: 6878 ldr r0, [r7, #4] + 8007de4: f005 ffae bl 800dd44 + 8007de8: 4603 mov r3, r0 + 8007dea: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8007e58: 68fb ldr r3, [r7, #12] - 8007e5a: b21b sxth r3, r3 + 8007dec: 68fb ldr r3, [r7, #12] + 8007dee: b21b sxth r3, r3 +} + 8007df0: 4618 mov r0, r3 + 8007df2: 3710 adds r7, #16 + 8007df4: 46bd mov sp, r7 + 8007df6: bd80 pop {r7, pc} + +08007df8 : +{ + 8007df8: b580 push {r7, lr} + 8007dfa: b084 sub sp, #16 + 8007dfc: af00 add r7, sp, #0 + 8007dfe: 6078 str r0, [r7, #4] + 8007e00: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_COLOR_FILTERED); + 8007e02: f244 0220 movw r2, #16416 ; 0x4020 + 8007e06: 6839 ldr r1, [r7, #0] + 8007e08: 6878 ldr r0, [r7, #4] + 8007e0a: f005 ff9b bl 800dd44 + 8007e0e: 4603 mov r3, r0 + 8007e10: 60fb str r3, [r7, #12] + return v.color; + 8007e12: 89bb ldrh r3, [r7, #12] +} + 8007e14: 4618 mov r0, r3 + 8007e16: 3710 adds r7, #16 + 8007e18: 46bd mov sp, r7 + 8007e1a: bd80 pop {r7, pc} + +08007e1c : +{ + 8007e1c: b580 push {r7, lr} + 8007e1e: b084 sub sp, #16 + 8007e20: af00 add r7, sp, #0 + 8007e22: 6078 str r0, [r7, #4] + 8007e24: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_OPA); + 8007e26: 2221 movs r2, #33 ; 0x21 + 8007e28: 6839 ldr r1, [r7, #0] + 8007e2a: 6878 ldr r0, [r7, #4] + 8007e2c: f005 ff8a bl 800dd44 + 8007e30: 4603 mov r3, r0 + 8007e32: 60fb str r3, [r7, #12] + return (lv_opa_t)v.num; + 8007e34: 68fb ldr r3, [r7, #12] + 8007e36: b2db uxtb r3, r3 +} + 8007e38: 4618 mov r0, r3 + 8007e3a: 3710 adds r7, #16 + 8007e3c: 46bd mov sp, r7 + 8007e3e: bd80 pop {r7, pc} + +08007e40 : +{ + 8007e40: b580 push {r7, lr} + 8007e42: b084 sub sp, #16 + 8007e44: af00 add r7, sp, #0 + 8007e46: 6078 str r0, [r7, #4] + 8007e48: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_GRAD_COLOR_FILTERED); + 8007e4a: f244 0222 movw r2, #16418 ; 0x4022 + 8007e4e: 6839 ldr r1, [r7, #0] + 8007e50: 6878 ldr r0, [r7, #4] + 8007e52: f005 ff77 bl 800dd44 + 8007e56: 4603 mov r3, r0 + 8007e58: 60fb str r3, [r7, #12] + return v.color; + 8007e5a: 89bb ldrh r3, [r7, #12] } 8007e5c: 4618 mov r0, r3 8007e5e: 3710 adds r7, #16 8007e60: 46bd mov sp, r7 8007e62: bd80 pop {r7, pc} -08007e64 : +08007e64 : { 8007e64: b580 push {r7, lr} 8007e66: b084 sub sp, #16 8007e68: af00 add r7, sp, #0 8007e6a: 6078 str r0, [r7, #4] 8007e6c: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_COLOR_FILTERED); - 8007e6e: f244 0220 movw r2, #16416 ; 0x4020 - 8007e72: 6839 ldr r1, [r7, #0] - 8007e74: 6878 ldr r0, [r7, #4] - 8007e76: f005 ff9b bl 800ddb0 - 8007e7a: 4603 mov r3, r0 - 8007e7c: 60fb str r3, [r7, #12] - return v.color; - 8007e7e: 89bb ldrh r3, [r7, #12] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_GRAD_DIR); + 8007e6e: 2223 movs r2, #35 ; 0x23 + 8007e70: 6839 ldr r1, [r7, #0] + 8007e72: 6878 ldr r0, [r7, #4] + 8007e74: f005 ff66 bl 800dd44 + 8007e78: 4603 mov r3, r0 + 8007e7a: 60fb str r3, [r7, #12] + return (lv_grad_dir_t)v.num; + 8007e7c: 68fb ldr r3, [r7, #12] + 8007e7e: b2db uxtb r3, r3 } 8007e80: 4618 mov r0, r3 8007e82: 3710 adds r7, #16 8007e84: 46bd mov sp, r7 8007e86: bd80 pop {r7, pc} -08007e88 : +08007e88 : { 8007e88: b580 push {r7, lr} 8007e8a: b084 sub sp, #16 8007e8c: af00 add r7, sp, #0 8007e8e: 6078 str r0, [r7, #4] 8007e90: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_OPA); - 8007e92: 2221 movs r2, #33 ; 0x21 + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_MAIN_STOP); + 8007e92: 2224 movs r2, #36 ; 0x24 8007e94: 6839 ldr r1, [r7, #0] 8007e96: 6878 ldr r0, [r7, #4] - 8007e98: f005 ff8a bl 800ddb0 + 8007e98: f005 ff54 bl 800dd44 8007e9c: 4603 mov r3, r0 8007e9e: 60fb str r3, [r7, #12] - return (lv_opa_t)v.num; + return (lv_coord_t)v.num; 8007ea0: 68fb ldr r3, [r7, #12] - 8007ea2: b2db uxtb r3, r3 + 8007ea2: b21b sxth r3, r3 } 8007ea4: 4618 mov r0, r3 8007ea6: 3710 adds r7, #16 8007ea8: 46bd mov sp, r7 8007eaa: bd80 pop {r7, pc} -08007eac : +08007eac : { 8007eac: b580 push {r7, lr} 8007eae: b084 sub sp, #16 8007eb0: af00 add r7, sp, #0 8007eb2: 6078 str r0, [r7, #4] 8007eb4: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_GRAD_COLOR_FILTERED); - 8007eb6: f244 0222 movw r2, #16418 ; 0x4022 - 8007eba: 6839 ldr r1, [r7, #0] - 8007ebc: 6878 ldr r0, [r7, #4] - 8007ebe: f005 ff77 bl 800ddb0 - 8007ec2: 4603 mov r3, r0 - 8007ec4: 60fb str r3, [r7, #12] - return v.color; - 8007ec6: 89bb ldrh r3, [r7, #12] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_GRAD_STOP); + 8007eb6: 2225 movs r2, #37 ; 0x25 + 8007eb8: 6839 ldr r1, [r7, #0] + 8007eba: 6878 ldr r0, [r7, #4] + 8007ebc: f005 ff42 bl 800dd44 + 8007ec0: 4603 mov r3, r0 + 8007ec2: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 8007ec4: 68fb ldr r3, [r7, #12] + 8007ec6: b21b sxth r3, r3 } 8007ec8: 4618 mov r0, r3 8007eca: 3710 adds r7, #16 8007ecc: 46bd mov sp, r7 8007ece: bd80 pop {r7, pc} -08007ed0 : +08007ed0 : { 8007ed0: b580 push {r7, lr} 8007ed2: b084 sub sp, #16 8007ed4: af00 add r7, sp, #0 8007ed6: 6078 str r0, [r7, #4] 8007ed8: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_GRAD_DIR); - 8007eda: 2223 movs r2, #35 ; 0x23 + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_GRAD); + 8007eda: 2226 movs r2, #38 ; 0x26 8007edc: 6839 ldr r1, [r7, #0] 8007ede: 6878 ldr r0, [r7, #4] - 8007ee0: f005 ff66 bl 800ddb0 + 8007ee0: f005 ff30 bl 800dd44 8007ee4: 4603 mov r3, r0 8007ee6: 60fb str r3, [r7, #12] - return (lv_grad_dir_t)v.num; + return (const lv_grad_dsc_t *)v.ptr; 8007ee8: 68fb ldr r3, [r7, #12] - 8007eea: b2db uxtb r3, r3 } - 8007eec: 4618 mov r0, r3 - 8007eee: 3710 adds r7, #16 - 8007ef0: 46bd mov sp, r7 - 8007ef2: bd80 pop {r7, pc} + 8007eea: 4618 mov r0, r3 + 8007eec: 3710 adds r7, #16 + 8007eee: 46bd mov sp, r7 + 8007ef0: bd80 pop {r7, pc} -08007ef4 : +08007ef2 : { - 8007ef4: b580 push {r7, lr} - 8007ef6: b084 sub sp, #16 - 8007ef8: af00 add r7, sp, #0 - 8007efa: 6078 str r0, [r7, #4] - 8007efc: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_MAIN_STOP); - 8007efe: 2224 movs r2, #36 ; 0x24 - 8007f00: 6839 ldr r1, [r7, #0] - 8007f02: 6878 ldr r0, [r7, #4] - 8007f04: f005 ff54 bl 800ddb0 - 8007f08: 4603 mov r3, r0 - 8007f0a: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 8007f0c: 68fb ldr r3, [r7, #12] - 8007f0e: b21b sxth r3, r3 + 8007ef2: b580 push {r7, lr} + 8007ef4: b084 sub sp, #16 + 8007ef6: af00 add r7, sp, #0 + 8007ef8: 6078 str r0, [r7, #4] + 8007efa: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_DITHER_MODE); + 8007efc: 2227 movs r2, #39 ; 0x27 + 8007efe: 6839 ldr r1, [r7, #0] + 8007f00: 6878 ldr r0, [r7, #4] + 8007f02: f005 ff1f bl 800dd44 + 8007f06: 4603 mov r3, r0 + 8007f08: 60fb str r3, [r7, #12] + return (lv_dither_mode_t)v.num; + 8007f0a: 68fb ldr r3, [r7, #12] + 8007f0c: b2db uxtb r3, r3 } - 8007f10: 4618 mov r0, r3 - 8007f12: 3710 adds r7, #16 - 8007f14: 46bd mov sp, r7 - 8007f16: bd80 pop {r7, pc} + 8007f0e: 4618 mov r0, r3 + 8007f10: 3710 adds r7, #16 + 8007f12: 46bd mov sp, r7 + 8007f14: bd80 pop {r7, pc} -08007f18 : +08007f16 : { - 8007f18: b580 push {r7, lr} - 8007f1a: b084 sub sp, #16 - 8007f1c: af00 add r7, sp, #0 - 8007f1e: 6078 str r0, [r7, #4] - 8007f20: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_GRAD_STOP); - 8007f22: 2225 movs r2, #37 ; 0x25 + 8007f16: b580 push {r7, lr} + 8007f18: b084 sub sp, #16 + 8007f1a: af00 add r7, sp, #0 + 8007f1c: 6078 str r0, [r7, #4] + 8007f1e: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_SRC); + 8007f20: f640 0228 movw r2, #2088 ; 0x828 8007f24: 6839 ldr r1, [r7, #0] 8007f26: 6878 ldr r0, [r7, #4] - 8007f28: f005 ff42 bl 800ddb0 + 8007f28: f005 ff0c bl 800dd44 8007f2c: 4603 mov r3, r0 8007f2e: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; + return (const void *)v.ptr; 8007f30: 68fb ldr r3, [r7, #12] - 8007f32: b21b sxth r3, r3 } - 8007f34: 4618 mov r0, r3 - 8007f36: 3710 adds r7, #16 - 8007f38: 46bd mov sp, r7 - 8007f3a: bd80 pop {r7, pc} + 8007f32: 4618 mov r0, r3 + 8007f34: 3710 adds r7, #16 + 8007f36: 46bd mov sp, r7 + 8007f38: bd80 pop {r7, pc} -08007f3c : +08007f3a : { - 8007f3c: b580 push {r7, lr} - 8007f3e: b084 sub sp, #16 - 8007f40: af00 add r7, sp, #0 - 8007f42: 6078 str r0, [r7, #4] - 8007f44: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_GRAD); - 8007f46: 2226 movs r2, #38 ; 0x26 - 8007f48: 6839 ldr r1, [r7, #0] - 8007f4a: 6878 ldr r0, [r7, #4] - 8007f4c: f005 ff30 bl 800ddb0 - 8007f50: 4603 mov r3, r0 - 8007f52: 60fb str r3, [r7, #12] - return (const lv_grad_dsc_t *)v.ptr; - 8007f54: 68fb ldr r3, [r7, #12] + 8007f3a: b580 push {r7, lr} + 8007f3c: b084 sub sp, #16 + 8007f3e: af00 add r7, sp, #0 + 8007f40: 6078 str r0, [r7, #4] + 8007f42: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_OPA); + 8007f44: 2229 movs r2, #41 ; 0x29 + 8007f46: 6839 ldr r1, [r7, #0] + 8007f48: 6878 ldr r0, [r7, #4] + 8007f4a: f005 fefb bl 800dd44 + 8007f4e: 4603 mov r3, r0 + 8007f50: 60fb str r3, [r7, #12] + return (lv_opa_t)v.num; + 8007f52: 68fb ldr r3, [r7, #12] + 8007f54: b2db uxtb r3, r3 } 8007f56: 4618 mov r0, r3 8007f58: 3710 adds r7, #16 8007f5a: 46bd mov sp, r7 8007f5c: bd80 pop {r7, pc} -08007f5e : +08007f5e : { 8007f5e: b580 push {r7, lr} 8007f60: b084 sub sp, #16 8007f62: af00 add r7, sp, #0 8007f64: 6078 str r0, [r7, #4] 8007f66: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_DITHER_MODE); - 8007f68: 2227 movs r2, #39 ; 0x27 - 8007f6a: 6839 ldr r1, [r7, #0] - 8007f6c: 6878 ldr r0, [r7, #4] - 8007f6e: f005 ff1f bl 800ddb0 - 8007f72: 4603 mov r3, r0 - 8007f74: 60fb str r3, [r7, #12] - return (lv_dither_mode_t)v.num; - 8007f76: 68fb ldr r3, [r7, #12] - 8007f78: b2db uxtb r3, r3 + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_RECOLOR_FILTERED); + 8007f68: f244 022a movw r2, #16426 ; 0x402a + 8007f6c: 6839 ldr r1, [r7, #0] + 8007f6e: 6878 ldr r0, [r7, #4] + 8007f70: f005 fee8 bl 800dd44 + 8007f74: 4603 mov r3, r0 + 8007f76: 60fb str r3, [r7, #12] + return v.color; + 8007f78: 89bb ldrh r3, [r7, #12] } 8007f7a: 4618 mov r0, r3 8007f7c: 3710 adds r7, #16 8007f7e: 46bd mov sp, r7 8007f80: bd80 pop {r7, pc} -08007f82 : +08007f82 : { 8007f82: b580 push {r7, lr} 8007f84: b084 sub sp, #16 8007f86: af00 add r7, sp, #0 8007f88: 6078 str r0, [r7, #4] 8007f8a: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_SRC); - 8007f8c: f640 0228 movw r2, #2088 ; 0x828 - 8007f90: 6839 ldr r1, [r7, #0] - 8007f92: 6878 ldr r0, [r7, #4] - 8007f94: f005 ff0c bl 800ddb0 - 8007f98: 4603 mov r3, r0 - 8007f9a: 60fb str r3, [r7, #12] - return (const void *)v.ptr; - 8007f9c: 68fb ldr r3, [r7, #12] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_RECOLOR_OPA); + 8007f8c: 222b movs r2, #43 ; 0x2b + 8007f8e: 6839 ldr r1, [r7, #0] + 8007f90: 6878 ldr r0, [r7, #4] + 8007f92: f005 fed7 bl 800dd44 + 8007f96: 4603 mov r3, r0 + 8007f98: 60fb str r3, [r7, #12] + return (lv_opa_t)v.num; + 8007f9a: 68fb ldr r3, [r7, #12] + 8007f9c: b2db uxtb r3, r3 } 8007f9e: 4618 mov r0, r3 8007fa0: 3710 adds r7, #16 8007fa2: 46bd mov sp, r7 8007fa4: bd80 pop {r7, pc} -08007fa6 : +08007fa6 : { 8007fa6: b580 push {r7, lr} 8007fa8: b084 sub sp, #16 8007faa: af00 add r7, sp, #0 8007fac: 6078 str r0, [r7, #4] 8007fae: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_OPA); - 8007fb0: 2229 movs r2, #41 ; 0x29 + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_TILED); + 8007fb0: 222c movs r2, #44 ; 0x2c 8007fb2: 6839 ldr r1, [r7, #0] 8007fb4: 6878 ldr r0, [r7, #4] - 8007fb6: f005 fefb bl 800ddb0 + 8007fb6: f005 fec5 bl 800dd44 8007fba: 4603 mov r3, r0 8007fbc: 60fb str r3, [r7, #12] - return (lv_opa_t)v.num; - 8007fbe: 68fb ldr r3, [r7, #12] - 8007fc0: b2db uxtb r3, r3 -} - 8007fc2: 4618 mov r0, r3 - 8007fc4: 3710 adds r7, #16 - 8007fc6: 46bd mov sp, r7 - 8007fc8: bd80 pop {r7, pc} - -08007fca : -{ - 8007fca: b580 push {r7, lr} - 8007fcc: b084 sub sp, #16 - 8007fce: af00 add r7, sp, #0 - 8007fd0: 6078 str r0, [r7, #4] - 8007fd2: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_RECOLOR_FILTERED); - 8007fd4: f244 022a movw r2, #16426 ; 0x402a - 8007fd8: 6839 ldr r1, [r7, #0] - 8007fda: 6878 ldr r0, [r7, #4] - 8007fdc: f005 fee8 bl 800ddb0 - 8007fe0: 4603 mov r3, r0 - 8007fe2: 60fb str r3, [r7, #12] - return v.color; - 8007fe4: 89bb ldrh r3, [r7, #12] -} - 8007fe6: 4618 mov r0, r3 - 8007fe8: 3710 adds r7, #16 - 8007fea: 46bd mov sp, r7 - 8007fec: bd80 pop {r7, pc} - -08007fee : -{ - 8007fee: b580 push {r7, lr} - 8007ff0: b084 sub sp, #16 - 8007ff2: af00 add r7, sp, #0 - 8007ff4: 6078 str r0, [r7, #4] - 8007ff6: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_RECOLOR_OPA); - 8007ff8: 222b movs r2, #43 ; 0x2b - 8007ffa: 6839 ldr r1, [r7, #0] - 8007ffc: 6878 ldr r0, [r7, #4] - 8007ffe: f005 fed7 bl 800ddb0 - 8008002: 4603 mov r3, r0 - 8008004: 60fb str r3, [r7, #12] - return (lv_opa_t)v.num; - 8008006: 68fb ldr r3, [r7, #12] - 8008008: b2db uxtb r3, r3 -} - 800800a: 4618 mov r0, r3 - 800800c: 3710 adds r7, #16 - 800800e: 46bd mov sp, r7 - 8008010: bd80 pop {r7, pc} - -08008012 : -{ - 8008012: b580 push {r7, lr} - 8008014: b084 sub sp, #16 - 8008016: af00 add r7, sp, #0 - 8008018: 6078 str r0, [r7, #4] - 800801a: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_TILED); - 800801c: 222c movs r2, #44 ; 0x2c - 800801e: 6839 ldr r1, [r7, #0] - 8008020: 6878 ldr r0, [r7, #4] - 8008022: f005 fec5 bl 800ddb0 - 8008026: 4603 mov r3, r0 - 8008028: 60fb str r3, [r7, #12] return (bool)v.num; - 800802a: 68fb ldr r3, [r7, #12] - 800802c: 2b00 cmp r3, #0 - 800802e: bf14 ite ne - 8008030: 2301 movne r3, #1 - 8008032: 2300 moveq r3, #0 - 8008034: b2db uxtb r3, r3 + 8007fbe: 68fb ldr r3, [r7, #12] + 8007fc0: 2b00 cmp r3, #0 + 8007fc2: bf14 ite ne + 8007fc4: 2301 movne r3, #1 + 8007fc6: 2300 moveq r3, #0 + 8007fc8: b2db uxtb r3, r3 } - 8008036: 4618 mov r0, r3 - 8008038: 3710 adds r7, #16 - 800803a: 46bd mov sp, r7 - 800803c: bd80 pop {r7, pc} + 8007fca: 4618 mov r0, r3 + 8007fcc: 3710 adds r7, #16 + 8007fce: 46bd mov sp, r7 + 8007fd0: bd80 pop {r7, pc} -0800803e : +08007fd2 : { - 800803e: b580 push {r7, lr} - 8008040: b084 sub sp, #16 - 8008042: af00 add r7, sp, #0 - 8008044: 6078 str r0, [r7, #4] - 8008046: 6039 str r1, [r7, #0] + 8007fd2: b580 push {r7, lr} + 8007fd4: b084 sub sp, #16 + 8007fd6: af00 add r7, sp, #0 + 8007fd8: 6078 str r0, [r7, #4] + 8007fda: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_COLOR_FILTERED); - 8008048: f244 0230 movw r2, #16432 ; 0x4030 + 8007fdc: f244 0230 movw r2, #16432 ; 0x4030 + 8007fe0: 6839 ldr r1, [r7, #0] + 8007fe2: 6878 ldr r0, [r7, #4] + 8007fe4: f005 feae bl 800dd44 + 8007fe8: 4603 mov r3, r0 + 8007fea: 60fb str r3, [r7, #12] + return v.color; + 8007fec: 89bb ldrh r3, [r7, #12] +} + 8007fee: 4618 mov r0, r3 + 8007ff0: 3710 adds r7, #16 + 8007ff2: 46bd mov sp, r7 + 8007ff4: bd80 pop {r7, pc} + +08007ff6 : +{ + 8007ff6: b580 push {r7, lr} + 8007ff8: b084 sub sp, #16 + 8007ffa: af00 add r7, sp, #0 + 8007ffc: 6078 str r0, [r7, #4] + 8007ffe: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_OPA); + 8008000: 2231 movs r2, #49 ; 0x31 + 8008002: 6839 ldr r1, [r7, #0] + 8008004: 6878 ldr r0, [r7, #4] + 8008006: f005 fe9d bl 800dd44 + 800800a: 4603 mov r3, r0 + 800800c: 60fb str r3, [r7, #12] + return (lv_opa_t)v.num; + 800800e: 68fb ldr r3, [r7, #12] + 8008010: b2db uxtb r3, r3 +} + 8008012: 4618 mov r0, r3 + 8008014: 3710 adds r7, #16 + 8008016: 46bd mov sp, r7 + 8008018: bd80 pop {r7, pc} + +0800801a : +{ + 800801a: b580 push {r7, lr} + 800801c: b084 sub sp, #16 + 800801e: af00 add r7, sp, #0 + 8008020: 6078 str r0, [r7, #4] + 8008022: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); + 8008024: f241 0232 movw r2, #4146 ; 0x1032 + 8008028: 6839 ldr r1, [r7, #0] + 800802a: 6878 ldr r0, [r7, #4] + 800802c: f005 fe8a bl 800dd44 + 8008030: 4603 mov r3, r0 + 8008032: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 8008034: 68fb ldr r3, [r7, #12] + 8008036: b21b sxth r3, r3 +} + 8008038: 4618 mov r0, r3 + 800803a: 3710 adds r7, #16 + 800803c: 46bd mov sp, r7 + 800803e: bd80 pop {r7, pc} + +08008040 : +{ + 8008040: b580 push {r7, lr} + 8008042: b084 sub sp, #16 + 8008044: af00 add r7, sp, #0 + 8008046: 6078 str r0, [r7, #4] + 8008048: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_SIDE); + 800804a: 2233 movs r2, #51 ; 0x33 800804c: 6839 ldr r1, [r7, #0] 800804e: 6878 ldr r0, [r7, #4] - 8008050: f005 feae bl 800ddb0 + 8008050: f005 fe78 bl 800dd44 8008054: 4603 mov r3, r0 8008056: 60fb str r3, [r7, #12] - return v.color; - 8008058: 89bb ldrh r3, [r7, #12] -} - 800805a: 4618 mov r0, r3 - 800805c: 3710 adds r7, #16 - 800805e: 46bd mov sp, r7 - 8008060: bd80 pop {r7, pc} - -08008062 : -{ - 8008062: b580 push {r7, lr} - 8008064: b084 sub sp, #16 - 8008066: af00 add r7, sp, #0 - 8008068: 6078 str r0, [r7, #4] - 800806a: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_OPA); - 800806c: 2231 movs r2, #49 ; 0x31 - 800806e: 6839 ldr r1, [r7, #0] - 8008070: 6878 ldr r0, [r7, #4] - 8008072: f005 fe9d bl 800ddb0 - 8008076: 4603 mov r3, r0 - 8008078: 60fb str r3, [r7, #12] - return (lv_opa_t)v.num; - 800807a: 68fb ldr r3, [r7, #12] - 800807c: b2db uxtb r3, r3 -} - 800807e: 4618 mov r0, r3 - 8008080: 3710 adds r7, #16 - 8008082: 46bd mov sp, r7 - 8008084: bd80 pop {r7, pc} - -08008086 : -{ - 8008086: b580 push {r7, lr} - 8008088: b084 sub sp, #16 - 800808a: af00 add r7, sp, #0 - 800808c: 6078 str r0, [r7, #4] - 800808e: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); - 8008090: f241 0232 movw r2, #4146 ; 0x1032 - 8008094: 6839 ldr r1, [r7, #0] - 8008096: 6878 ldr r0, [r7, #4] - 8008098: f005 fe8a bl 800ddb0 - 800809c: 4603 mov r3, r0 - 800809e: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 80080a0: 68fb ldr r3, [r7, #12] - 80080a2: b21b sxth r3, r3 -} - 80080a4: 4618 mov r0, r3 - 80080a6: 3710 adds r7, #16 - 80080a8: 46bd mov sp, r7 - 80080aa: bd80 pop {r7, pc} - -080080ac : -{ - 80080ac: b580 push {r7, lr} - 80080ae: b084 sub sp, #16 - 80080b0: af00 add r7, sp, #0 - 80080b2: 6078 str r0, [r7, #4] - 80080b4: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_SIDE); - 80080b6: 2233 movs r2, #51 ; 0x33 - 80080b8: 6839 ldr r1, [r7, #0] - 80080ba: 6878 ldr r0, [r7, #4] - 80080bc: f005 fe78 bl 800ddb0 - 80080c0: 4603 mov r3, r0 - 80080c2: 60fb str r3, [r7, #12] return (lv_border_side_t)v.num; - 80080c4: 68fb ldr r3, [r7, #12] - 80080c6: b2db uxtb r3, r3 + 8008058: 68fb ldr r3, [r7, #12] + 800805a: b2db uxtb r3, r3 } - 80080c8: 4618 mov r0, r3 - 80080ca: 3710 adds r7, #16 - 80080cc: 46bd mov sp, r7 - 80080ce: bd80 pop {r7, pc} + 800805c: 4618 mov r0, r3 + 800805e: 3710 adds r7, #16 + 8008060: 46bd mov sp, r7 + 8008062: bd80 pop {r7, pc} -080080d0 : +08008064 : { - 80080d0: b580 push {r7, lr} - 80080d2: b084 sub sp, #16 - 80080d4: af00 add r7, sp, #0 - 80080d6: 6078 str r0, [r7, #4] - 80080d8: 6039 str r1, [r7, #0] + 8008064: b580 push {r7, lr} + 8008066: b084 sub sp, #16 + 8008068: af00 add r7, sp, #0 + 800806a: 6078 str r0, [r7, #4] + 800806c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_OUTLINE_WIDTH); - 80080da: f640 023a movw r2, #2106 ; 0x83a - 80080de: 6839 ldr r1, [r7, #0] - 80080e0: 6878 ldr r0, [r7, #4] - 80080e2: f005 fe65 bl 800ddb0 - 80080e6: 4603 mov r3, r0 - 80080e8: 60fb str r3, [r7, #12] + 800806e: f640 023a movw r2, #2106 ; 0x83a + 8008072: 6839 ldr r1, [r7, #0] + 8008074: 6878 ldr r0, [r7, #4] + 8008076: f005 fe65 bl 800dd44 + 800807a: 4603 mov r3, r0 + 800807c: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80080ea: 68fb ldr r3, [r7, #12] - 80080ec: b21b sxth r3, r3 + 800807e: 68fb ldr r3, [r7, #12] + 8008080: b21b sxth r3, r3 } - 80080ee: 4618 mov r0, r3 - 80080f0: 3710 adds r7, #16 - 80080f2: 46bd mov sp, r7 - 80080f4: bd80 pop {r7, pc} + 8008082: 4618 mov r0, r3 + 8008084: 3710 adds r7, #16 + 8008086: 46bd mov sp, r7 + 8008088: bd80 pop {r7, pc} -080080f6 : +0800808a : { - 80080f6: b580 push {r7, lr} - 80080f8: b084 sub sp, #16 - 80080fa: af00 add r7, sp, #0 - 80080fc: 6078 str r0, [r7, #4] - 80080fe: 6039 str r1, [r7, #0] + 800808a: b580 push {r7, lr} + 800808c: b084 sub sp, #16 + 800808e: af00 add r7, sp, #0 + 8008090: 6078 str r0, [r7, #4] + 8008092: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_OUTLINE_COLOR_FILTERED); - 8008100: f244 023b movw r2, #16443 ; 0x403b - 8008104: 6839 ldr r1, [r7, #0] - 8008106: 6878 ldr r0, [r7, #4] - 8008108: f005 fe52 bl 800ddb0 - 800810c: 4603 mov r3, r0 - 800810e: 60fb str r3, [r7, #12] + 8008094: f244 023b movw r2, #16443 ; 0x403b + 8008098: 6839 ldr r1, [r7, #0] + 800809a: 6878 ldr r0, [r7, #4] + 800809c: f005 fe52 bl 800dd44 + 80080a0: 4603 mov r3, r0 + 80080a2: 60fb str r3, [r7, #12] return v.color; - 8008110: 89bb ldrh r3, [r7, #12] + 80080a4: 89bb ldrh r3, [r7, #12] } - 8008112: 4618 mov r0, r3 - 8008114: 3710 adds r7, #16 - 8008116: 46bd mov sp, r7 - 8008118: bd80 pop {r7, pc} + 80080a6: 4618 mov r0, r3 + 80080a8: 3710 adds r7, #16 + 80080aa: 46bd mov sp, r7 + 80080ac: bd80 pop {r7, pc} -0800811a : +080080ae : { - 800811a: b580 push {r7, lr} - 800811c: b084 sub sp, #16 - 800811e: af00 add r7, sp, #0 - 8008120: 6078 str r0, [r7, #4] - 8008122: 6039 str r1, [r7, #0] + 80080ae: b580 push {r7, lr} + 80080b0: b084 sub sp, #16 + 80080b2: af00 add r7, sp, #0 + 80080b4: 6078 str r0, [r7, #4] + 80080b6: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_OUTLINE_OPA); - 8008124: f640 023c movw r2, #2108 ; 0x83c - 8008128: 6839 ldr r1, [r7, #0] - 800812a: 6878 ldr r0, [r7, #4] - 800812c: f005 fe40 bl 800ddb0 - 8008130: 4603 mov r3, r0 - 8008132: 60fb str r3, [r7, #12] + 80080b8: f640 023c movw r2, #2108 ; 0x83c + 80080bc: 6839 ldr r1, [r7, #0] + 80080be: 6878 ldr r0, [r7, #4] + 80080c0: f005 fe40 bl 800dd44 + 80080c4: 4603 mov r3, r0 + 80080c6: 60fb str r3, [r7, #12] return (lv_opa_t)v.num; - 8008134: 68fb ldr r3, [r7, #12] - 8008136: b2db uxtb r3, r3 + 80080c8: 68fb ldr r3, [r7, #12] + 80080ca: b2db uxtb r3, r3 } - 8008138: 4618 mov r0, r3 - 800813a: 3710 adds r7, #16 - 800813c: 46bd mov sp, r7 - 800813e: bd80 pop {r7, pc} + 80080cc: 4618 mov r0, r3 + 80080ce: 3710 adds r7, #16 + 80080d0: 46bd mov sp, r7 + 80080d2: bd80 pop {r7, pc} -08008140 : +080080d4 : { - 8008140: b580 push {r7, lr} - 8008142: b084 sub sp, #16 - 8008144: af00 add r7, sp, #0 - 8008146: 6078 str r0, [r7, #4] - 8008148: 6039 str r1, [r7, #0] + 80080d4: b580 push {r7, lr} + 80080d6: b084 sub sp, #16 + 80080d8: af00 add r7, sp, #0 + 80080da: 6078 str r0, [r7, #4] + 80080dc: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_OUTLINE_PAD); - 800814a: f640 023d movw r2, #2109 ; 0x83d - 800814e: 6839 ldr r1, [r7, #0] - 8008150: 6878 ldr r0, [r7, #4] - 8008152: f005 fe2d bl 800ddb0 - 8008156: 4603 mov r3, r0 - 8008158: 60fb str r3, [r7, #12] + 80080de: f640 023d movw r2, #2109 ; 0x83d + 80080e2: 6839 ldr r1, [r7, #0] + 80080e4: 6878 ldr r0, [r7, #4] + 80080e6: f005 fe2d bl 800dd44 + 80080ea: 4603 mov r3, r0 + 80080ec: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 800815a: 68fb ldr r3, [r7, #12] - 800815c: b21b sxth r3, r3 + 80080ee: 68fb ldr r3, [r7, #12] + 80080f0: b21b sxth r3, r3 } - 800815e: 4618 mov r0, r3 - 8008160: 3710 adds r7, #16 - 8008162: 46bd mov sp, r7 - 8008164: bd80 pop {r7, pc} + 80080f2: 4618 mov r0, r3 + 80080f4: 3710 adds r7, #16 + 80080f6: 46bd mov sp, r7 + 80080f8: bd80 pop {r7, pc} -08008166 : +080080fa : { - 8008166: b580 push {r7, lr} - 8008168: b084 sub sp, #16 - 800816a: af00 add r7, sp, #0 - 800816c: 6078 str r0, [r7, #4] - 800816e: 6039 str r1, [r7, #0] + 80080fa: b580 push {r7, lr} + 80080fc: b084 sub sp, #16 + 80080fe: af00 add r7, sp, #0 + 8008100: 6078 str r0, [r7, #4] + 8008102: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_WIDTH); - 8008170: f44f 6204 mov.w r2, #2112 ; 0x840 - 8008174: 6839 ldr r1, [r7, #0] - 8008176: 6878 ldr r0, [r7, #4] - 8008178: f005 fe1a bl 800ddb0 - 800817c: 4603 mov r3, r0 - 800817e: 60fb str r3, [r7, #12] + 8008104: f44f 6204 mov.w r2, #2112 ; 0x840 + 8008108: 6839 ldr r1, [r7, #0] + 800810a: 6878 ldr r0, [r7, #4] + 800810c: f005 fe1a bl 800dd44 + 8008110: 4603 mov r3, r0 + 8008112: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8008180: 68fb ldr r3, [r7, #12] - 8008182: b21b sxth r3, r3 + 8008114: 68fb ldr r3, [r7, #12] + 8008116: b21b sxth r3, r3 } - 8008184: 4618 mov r0, r3 - 8008186: 3710 adds r7, #16 - 8008188: 46bd mov sp, r7 - 800818a: bd80 pop {r7, pc} + 8008118: 4618 mov r0, r3 + 800811a: 3710 adds r7, #16 + 800811c: 46bd mov sp, r7 + 800811e: bd80 pop {r7, pc} -0800818c : +08008120 : { - 800818c: b580 push {r7, lr} - 800818e: b084 sub sp, #16 - 8008190: af00 add r7, sp, #0 - 8008192: 6078 str r0, [r7, #4] - 8008194: 6039 str r1, [r7, #0] + 8008120: b580 push {r7, lr} + 8008122: b084 sub sp, #16 + 8008124: af00 add r7, sp, #0 + 8008126: 6078 str r0, [r7, #4] + 8008128: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_OFS_X); - 8008196: f640 0241 movw r2, #2113 ; 0x841 - 800819a: 6839 ldr r1, [r7, #0] - 800819c: 6878 ldr r0, [r7, #4] - 800819e: f005 fe07 bl 800ddb0 - 80081a2: 4603 mov r3, r0 - 80081a4: 60fb str r3, [r7, #12] + 800812a: f640 0241 movw r2, #2113 ; 0x841 + 800812e: 6839 ldr r1, [r7, #0] + 8008130: 6878 ldr r0, [r7, #4] + 8008132: f005 fe07 bl 800dd44 + 8008136: 4603 mov r3, r0 + 8008138: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80081a6: 68fb ldr r3, [r7, #12] - 80081a8: b21b sxth r3, r3 + 800813a: 68fb ldr r3, [r7, #12] + 800813c: b21b sxth r3, r3 } - 80081aa: 4618 mov r0, r3 - 80081ac: 3710 adds r7, #16 - 80081ae: 46bd mov sp, r7 - 80081b0: bd80 pop {r7, pc} + 800813e: 4618 mov r0, r3 + 8008140: 3710 adds r7, #16 + 8008142: 46bd mov sp, r7 + 8008144: bd80 pop {r7, pc} -080081b2 : +08008146 : { - 80081b2: b580 push {r7, lr} - 80081b4: b084 sub sp, #16 - 80081b6: af00 add r7, sp, #0 - 80081b8: 6078 str r0, [r7, #4] - 80081ba: 6039 str r1, [r7, #0] + 8008146: b580 push {r7, lr} + 8008148: b084 sub sp, #16 + 800814a: af00 add r7, sp, #0 + 800814c: 6078 str r0, [r7, #4] + 800814e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_OFS_Y); - 80081bc: f640 0242 movw r2, #2114 ; 0x842 - 80081c0: 6839 ldr r1, [r7, #0] - 80081c2: 6878 ldr r0, [r7, #4] - 80081c4: f005 fdf4 bl 800ddb0 - 80081c8: 4603 mov r3, r0 - 80081ca: 60fb str r3, [r7, #12] + 8008150: f640 0242 movw r2, #2114 ; 0x842 + 8008154: 6839 ldr r1, [r7, #0] + 8008156: 6878 ldr r0, [r7, #4] + 8008158: f005 fdf4 bl 800dd44 + 800815c: 4603 mov r3, r0 + 800815e: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80081cc: 68fb ldr r3, [r7, #12] - 80081ce: b21b sxth r3, r3 + 8008160: 68fb ldr r3, [r7, #12] + 8008162: b21b sxth r3, r3 } - 80081d0: 4618 mov r0, r3 - 80081d2: 3710 adds r7, #16 - 80081d4: 46bd mov sp, r7 - 80081d6: bd80 pop {r7, pc} + 8008164: 4618 mov r0, r3 + 8008166: 3710 adds r7, #16 + 8008168: 46bd mov sp, r7 + 800816a: bd80 pop {r7, pc} -080081d8 : +0800816c : { - 80081d8: b580 push {r7, lr} - 80081da: b084 sub sp, #16 - 80081dc: af00 add r7, sp, #0 - 80081de: 6078 str r0, [r7, #4] - 80081e0: 6039 str r1, [r7, #0] + 800816c: b580 push {r7, lr} + 800816e: b084 sub sp, #16 + 8008170: af00 add r7, sp, #0 + 8008172: 6078 str r0, [r7, #4] + 8008174: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_SPREAD); - 80081e2: f640 0243 movw r2, #2115 ; 0x843 - 80081e6: 6839 ldr r1, [r7, #0] - 80081e8: 6878 ldr r0, [r7, #4] - 80081ea: f005 fde1 bl 800ddb0 - 80081ee: 4603 mov r3, r0 - 80081f0: 60fb str r3, [r7, #12] + 8008176: f640 0243 movw r2, #2115 ; 0x843 + 800817a: 6839 ldr r1, [r7, #0] + 800817c: 6878 ldr r0, [r7, #4] + 800817e: f005 fde1 bl 800dd44 + 8008182: 4603 mov r3, r0 + 8008184: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80081f2: 68fb ldr r3, [r7, #12] - 80081f4: b21b sxth r3, r3 + 8008186: 68fb ldr r3, [r7, #12] + 8008188: b21b sxth r3, r3 } - 80081f6: 4618 mov r0, r3 - 80081f8: 3710 adds r7, #16 - 80081fa: 46bd mov sp, r7 - 80081fc: bd80 pop {r7, pc} + 800818a: 4618 mov r0, r3 + 800818c: 3710 adds r7, #16 + 800818e: 46bd mov sp, r7 + 8008190: bd80 pop {r7, pc} -080081fe : +08008192 : { - 80081fe: b580 push {r7, lr} - 8008200: b084 sub sp, #16 - 8008202: af00 add r7, sp, #0 - 8008204: 6078 str r0, [r7, #4] - 8008206: 6039 str r1, [r7, #0] + 8008192: b580 push {r7, lr} + 8008194: b084 sub sp, #16 + 8008196: af00 add r7, sp, #0 + 8008198: 6078 str r0, [r7, #4] + 800819a: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_COLOR_FILTERED); - 8008208: f244 0244 movw r2, #16452 ; 0x4044 - 800820c: 6839 ldr r1, [r7, #0] - 800820e: 6878 ldr r0, [r7, #4] - 8008210: f005 fdce bl 800ddb0 - 8008214: 4603 mov r3, r0 - 8008216: 60fb str r3, [r7, #12] + 800819c: f244 0244 movw r2, #16452 ; 0x4044 + 80081a0: 6839 ldr r1, [r7, #0] + 80081a2: 6878 ldr r0, [r7, #4] + 80081a4: f005 fdce bl 800dd44 + 80081a8: 4603 mov r3, r0 + 80081aa: 60fb str r3, [r7, #12] return v.color; - 8008218: 89bb ldrh r3, [r7, #12] + 80081ac: 89bb ldrh r3, [r7, #12] } - 800821a: 4618 mov r0, r3 - 800821c: 3710 adds r7, #16 - 800821e: 46bd mov sp, r7 - 8008220: bd80 pop {r7, pc} + 80081ae: 4618 mov r0, r3 + 80081b0: 3710 adds r7, #16 + 80081b2: 46bd mov sp, r7 + 80081b4: bd80 pop {r7, pc} -08008222 : +080081b6 : { - 8008222: b580 push {r7, lr} - 8008224: b084 sub sp, #16 - 8008226: af00 add r7, sp, #0 - 8008228: 6078 str r0, [r7, #4] - 800822a: 6039 str r1, [r7, #0] + 80081b6: b580 push {r7, lr} + 80081b8: b084 sub sp, #16 + 80081ba: af00 add r7, sp, #0 + 80081bc: 6078 str r0, [r7, #4] + 80081be: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_OPA); - 800822c: f640 0245 movw r2, #2117 ; 0x845 + 80081c0: f640 0245 movw r2, #2117 ; 0x845 + 80081c4: 6839 ldr r1, [r7, #0] + 80081c6: 6878 ldr r0, [r7, #4] + 80081c8: f005 fdbc bl 800dd44 + 80081cc: 4603 mov r3, r0 + 80081ce: 60fb str r3, [r7, #12] + return (lv_opa_t)v.num; + 80081d0: 68fb ldr r3, [r7, #12] + 80081d2: b2db uxtb r3, r3 +} + 80081d4: 4618 mov r0, r3 + 80081d6: 3710 adds r7, #16 + 80081d8: 46bd mov sp, r7 + 80081da: bd80 pop {r7, pc} + +080081dc : +{ + 80081dc: b580 push {r7, lr} + 80081de: b084 sub sp, #16 + 80081e0: af00 add r7, sp, #0 + 80081e2: 6078 str r0, [r7, #4] + 80081e4: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_IMG_OPA); + 80081e6: 2246 movs r2, #70 ; 0x46 + 80081e8: 6839 ldr r1, [r7, #0] + 80081ea: 6878 ldr r0, [r7, #4] + 80081ec: f005 fdaa bl 800dd44 + 80081f0: 4603 mov r3, r0 + 80081f2: 60fb str r3, [r7, #12] + return (lv_opa_t)v.num; + 80081f4: 68fb ldr r3, [r7, #12] + 80081f6: b2db uxtb r3, r3 +} + 80081f8: 4618 mov r0, r3 + 80081fa: 3710 adds r7, #16 + 80081fc: 46bd mov sp, r7 + 80081fe: bd80 pop {r7, pc} + +08008200 : +{ + 8008200: b580 push {r7, lr} + 8008202: b084 sub sp, #16 + 8008204: af00 add r7, sp, #0 + 8008206: 6078 str r0, [r7, #4] + 8008208: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_IMG_RECOLOR_FILTERED); + 800820a: f244 0247 movw r2, #16455 ; 0x4047 + 800820e: 6839 ldr r1, [r7, #0] + 8008210: 6878 ldr r0, [r7, #4] + 8008212: f005 fd97 bl 800dd44 + 8008216: 4603 mov r3, r0 + 8008218: 60fb str r3, [r7, #12] + return v.color; + 800821a: 89bb ldrh r3, [r7, #12] +} + 800821c: 4618 mov r0, r3 + 800821e: 3710 adds r7, #16 + 8008220: 46bd mov sp, r7 + 8008222: bd80 pop {r7, pc} + +08008224 : +{ + 8008224: b580 push {r7, lr} + 8008226: b084 sub sp, #16 + 8008228: af00 add r7, sp, #0 + 800822a: 6078 str r0, [r7, #4] + 800822c: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_IMG_RECOLOR_OPA); + 800822e: 2248 movs r2, #72 ; 0x48 8008230: 6839 ldr r1, [r7, #0] 8008232: 6878 ldr r0, [r7, #4] - 8008234: f005 fdbc bl 800ddb0 + 8008234: f005 fd86 bl 800dd44 8008238: 4603 mov r3, r0 800823a: 60fb str r3, [r7, #12] return (lv_opa_t)v.num; @@ -20276,299 +20297,298 @@ static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) 8008244: 46bd mov sp, r7 8008246: bd80 pop {r7, pc} -08008248 : +08008248 : { 8008248: b580 push {r7, lr} 800824a: b084 sub sp, #16 800824c: af00 add r7, sp, #0 800824e: 6078 str r0, [r7, #4] 8008250: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_IMG_OPA); - 8008252: 2246 movs r2, #70 ; 0x46 - 8008254: 6839 ldr r1, [r7, #0] - 8008256: 6878 ldr r0, [r7, #4] - 8008258: f005 fdaa bl 800ddb0 - 800825c: 4603 mov r3, r0 - 800825e: 60fb str r3, [r7, #12] - return (lv_opa_t)v.num; - 8008260: 68fb ldr r3, [r7, #12] - 8008262: b2db uxtb r3, r3 + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_WIDTH); + 8008252: f640 0249 movw r2, #2121 ; 0x849 + 8008256: 6839 ldr r1, [r7, #0] + 8008258: 6878 ldr r0, [r7, #4] + 800825a: f005 fd73 bl 800dd44 + 800825e: 4603 mov r3, r0 + 8008260: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 8008262: 68fb ldr r3, [r7, #12] + 8008264: b21b sxth r3, r3 } - 8008264: 4618 mov r0, r3 - 8008266: 3710 adds r7, #16 - 8008268: 46bd mov sp, r7 - 800826a: bd80 pop {r7, pc} + 8008266: 4618 mov r0, r3 + 8008268: 3710 adds r7, #16 + 800826a: 46bd mov sp, r7 + 800826c: bd80 pop {r7, pc} -0800826c : +0800826e : { - 800826c: b580 push {r7, lr} - 800826e: b084 sub sp, #16 - 8008270: af00 add r7, sp, #0 - 8008272: 6078 str r0, [r7, #4] - 8008274: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_IMG_RECOLOR_FILTERED); - 8008276: f244 0247 movw r2, #16455 ; 0x4047 + 800826e: b580 push {r7, lr} + 8008270: b084 sub sp, #16 + 8008272: af00 add r7, sp, #0 + 8008274: 6078 str r0, [r7, #4] + 8008276: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_DASH_WIDTH); + 8008278: 224a movs r2, #74 ; 0x4a 800827a: 6839 ldr r1, [r7, #0] 800827c: 6878 ldr r0, [r7, #4] - 800827e: f005 fd97 bl 800ddb0 + 800827e: f005 fd61 bl 800dd44 8008282: 4603 mov r3, r0 8008284: 60fb str r3, [r7, #12] - return v.color; - 8008286: 89bb ldrh r3, [r7, #12] + return (lv_coord_t)v.num; + 8008286: 68fb ldr r3, [r7, #12] + 8008288: b21b sxth r3, r3 } - 8008288: 4618 mov r0, r3 - 800828a: 3710 adds r7, #16 - 800828c: 46bd mov sp, r7 - 800828e: bd80 pop {r7, pc} + 800828a: 4618 mov r0, r3 + 800828c: 3710 adds r7, #16 + 800828e: 46bd mov sp, r7 + 8008290: bd80 pop {r7, pc} -08008290 : +08008292 : { - 8008290: b580 push {r7, lr} - 8008292: b084 sub sp, #16 - 8008294: af00 add r7, sp, #0 - 8008296: 6078 str r0, [r7, #4] - 8008298: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_IMG_RECOLOR_OPA); - 800829a: 2248 movs r2, #72 ; 0x48 - 800829c: 6839 ldr r1, [r7, #0] - 800829e: 6878 ldr r0, [r7, #4] - 80082a0: f005 fd86 bl 800ddb0 - 80082a4: 4603 mov r3, r0 - 80082a6: 60fb str r3, [r7, #12] - return (lv_opa_t)v.num; - 80082a8: 68fb ldr r3, [r7, #12] - 80082aa: b2db uxtb r3, r3 + 8008292: b580 push {r7, lr} + 8008294: b084 sub sp, #16 + 8008296: af00 add r7, sp, #0 + 8008298: 6078 str r0, [r7, #4] + 800829a: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_DASH_GAP); + 800829c: 224b movs r2, #75 ; 0x4b + 800829e: 6839 ldr r1, [r7, #0] + 80082a0: 6878 ldr r0, [r7, #4] + 80082a2: f005 fd4f bl 800dd44 + 80082a6: 4603 mov r3, r0 + 80082a8: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 80082aa: 68fb ldr r3, [r7, #12] + 80082ac: b21b sxth r3, r3 } - 80082ac: 4618 mov r0, r3 - 80082ae: 3710 adds r7, #16 - 80082b0: 46bd mov sp, r7 - 80082b2: bd80 pop {r7, pc} + 80082ae: 4618 mov r0, r3 + 80082b0: 3710 adds r7, #16 + 80082b2: 46bd mov sp, r7 + 80082b4: bd80 pop {r7, pc} -080082b4 : +080082b6 : { - 80082b4: b580 push {r7, lr} - 80082b6: b084 sub sp, #16 - 80082b8: af00 add r7, sp, #0 - 80082ba: 6078 str r0, [r7, #4] - 80082bc: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_WIDTH); - 80082be: f640 0249 movw r2, #2121 ; 0x849 + 80082b6: b580 push {r7, lr} + 80082b8: b084 sub sp, #16 + 80082ba: af00 add r7, sp, #0 + 80082bc: 6078 str r0, [r7, #4] + 80082be: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_ROUNDED); + 80082c0: 224c movs r2, #76 ; 0x4c 80082c2: 6839 ldr r1, [r7, #0] 80082c4: 6878 ldr r0, [r7, #4] - 80082c6: f005 fd73 bl 800ddb0 + 80082c6: f005 fd3d bl 800dd44 80082ca: 4603 mov r3, r0 80082cc: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 80082ce: 68fb ldr r3, [r7, #12] - 80082d0: b21b sxth r3, r3 -} - 80082d2: 4618 mov r0, r3 - 80082d4: 3710 adds r7, #16 - 80082d6: 46bd mov sp, r7 - 80082d8: bd80 pop {r7, pc} - -080082da : -{ - 80082da: b580 push {r7, lr} - 80082dc: b084 sub sp, #16 - 80082de: af00 add r7, sp, #0 - 80082e0: 6078 str r0, [r7, #4] - 80082e2: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_DASH_WIDTH); - 80082e4: 224a movs r2, #74 ; 0x4a - 80082e6: 6839 ldr r1, [r7, #0] - 80082e8: 6878 ldr r0, [r7, #4] - 80082ea: f005 fd61 bl 800ddb0 - 80082ee: 4603 mov r3, r0 - 80082f0: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 80082f2: 68fb ldr r3, [r7, #12] - 80082f4: b21b sxth r3, r3 -} - 80082f6: 4618 mov r0, r3 - 80082f8: 3710 adds r7, #16 - 80082fa: 46bd mov sp, r7 - 80082fc: bd80 pop {r7, pc} - -080082fe : -{ - 80082fe: b580 push {r7, lr} - 8008300: b084 sub sp, #16 - 8008302: af00 add r7, sp, #0 - 8008304: 6078 str r0, [r7, #4] - 8008306: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_DASH_GAP); - 8008308: 224b movs r2, #75 ; 0x4b - 800830a: 6839 ldr r1, [r7, #0] - 800830c: 6878 ldr r0, [r7, #4] - 800830e: f005 fd4f bl 800ddb0 - 8008312: 4603 mov r3, r0 - 8008314: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 8008316: 68fb ldr r3, [r7, #12] - 8008318: b21b sxth r3, r3 -} - 800831a: 4618 mov r0, r3 - 800831c: 3710 adds r7, #16 - 800831e: 46bd mov sp, r7 - 8008320: bd80 pop {r7, pc} - -08008322 : -{ - 8008322: b580 push {r7, lr} - 8008324: b084 sub sp, #16 - 8008326: af00 add r7, sp, #0 - 8008328: 6078 str r0, [r7, #4] - 800832a: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_ROUNDED); - 800832c: 224c movs r2, #76 ; 0x4c - 800832e: 6839 ldr r1, [r7, #0] - 8008330: 6878 ldr r0, [r7, #4] - 8008332: f005 fd3d bl 800ddb0 - 8008336: 4603 mov r3, r0 - 8008338: 60fb str r3, [r7, #12] return (bool)v.num; - 800833a: 68fb ldr r3, [r7, #12] - 800833c: 2b00 cmp r3, #0 - 800833e: bf14 ite ne - 8008340: 2301 movne r3, #1 - 8008342: 2300 moveq r3, #0 - 8008344: b2db uxtb r3, r3 + 80082ce: 68fb ldr r3, [r7, #12] + 80082d0: 2b00 cmp r3, #0 + 80082d2: bf14 ite ne + 80082d4: 2301 movne r3, #1 + 80082d6: 2300 moveq r3, #0 + 80082d8: b2db uxtb r3, r3 } - 8008346: 4618 mov r0, r3 - 8008348: 3710 adds r7, #16 - 800834a: 46bd mov sp, r7 - 800834c: bd80 pop {r7, pc} + 80082da: 4618 mov r0, r3 + 80082dc: 3710 adds r7, #16 + 80082de: 46bd mov sp, r7 + 80082e0: bd80 pop {r7, pc} -0800834e : +080082e2 : { - 800834e: b580 push {r7, lr} - 8008350: b084 sub sp, #16 - 8008352: af00 add r7, sp, #0 - 8008354: 6078 str r0, [r7, #4] - 8008356: 6039 str r1, [r7, #0] + 80082e2: b580 push {r7, lr} + 80082e4: b084 sub sp, #16 + 80082e6: af00 add r7, sp, #0 + 80082e8: 6078 str r0, [r7, #4] + 80082ea: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_COLOR_FILTERED); - 8008358: f244 024d movw r2, #16461 ; 0x404d + 80082ec: f244 024d movw r2, #16461 ; 0x404d + 80082f0: 6839 ldr r1, [r7, #0] + 80082f2: 6878 ldr r0, [r7, #4] + 80082f4: f005 fd26 bl 800dd44 + 80082f8: 4603 mov r3, r0 + 80082fa: 60fb str r3, [r7, #12] + return v.color; + 80082fc: 89bb ldrh r3, [r7, #12] +} + 80082fe: 4618 mov r0, r3 + 8008300: 3710 adds r7, #16 + 8008302: 46bd mov sp, r7 + 8008304: bd80 pop {r7, pc} + +08008306 : +{ + 8008306: b580 push {r7, lr} + 8008308: b084 sub sp, #16 + 800830a: af00 add r7, sp, #0 + 800830c: 6078 str r0, [r7, #4] + 800830e: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_OPA); + 8008310: 224e movs r2, #78 ; 0x4e + 8008312: 6839 ldr r1, [r7, #0] + 8008314: 6878 ldr r0, [r7, #4] + 8008316: f005 fd15 bl 800dd44 + 800831a: 4603 mov r3, r0 + 800831c: 60fb str r3, [r7, #12] + return (lv_opa_t)v.num; + 800831e: 68fb ldr r3, [r7, #12] + 8008320: b2db uxtb r3, r3 +} + 8008322: 4618 mov r0, r3 + 8008324: 3710 adds r7, #16 + 8008326: 46bd mov sp, r7 + 8008328: bd80 pop {r7, pc} + +0800832a : +{ + 800832a: b580 push {r7, lr} + 800832c: b084 sub sp, #16 + 800832e: af00 add r7, sp, #0 + 8008330: 6078 str r0, [r7, #4] + 8008332: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_WIDTH); + 8008334: f44f 6205 mov.w r2, #2128 ; 0x850 + 8008338: 6839 ldr r1, [r7, #0] + 800833a: 6878 ldr r0, [r7, #4] + 800833c: f005 fd02 bl 800dd44 + 8008340: 4603 mov r3, r0 + 8008342: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 8008344: 68fb ldr r3, [r7, #12] + 8008346: b21b sxth r3, r3 +} + 8008348: 4618 mov r0, r3 + 800834a: 3710 adds r7, #16 + 800834c: 46bd mov sp, r7 + 800834e: bd80 pop {r7, pc} + +08008350 : +{ + 8008350: b580 push {r7, lr} + 8008352: b084 sub sp, #16 + 8008354: af00 add r7, sp, #0 + 8008356: 6078 str r0, [r7, #4] + 8008358: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_ROUNDED); + 800835a: 2251 movs r2, #81 ; 0x51 800835c: 6839 ldr r1, [r7, #0] 800835e: 6878 ldr r0, [r7, #4] - 8008360: f005 fd26 bl 800ddb0 + 8008360: f005 fcf0 bl 800dd44 8008364: 4603 mov r3, r0 8008366: 60fb str r3, [r7, #12] - return v.color; - 8008368: 89bb ldrh r3, [r7, #12] -} - 800836a: 4618 mov r0, r3 - 800836c: 3710 adds r7, #16 - 800836e: 46bd mov sp, r7 - 8008370: bd80 pop {r7, pc} - -08008372 : -{ - 8008372: b580 push {r7, lr} - 8008374: b084 sub sp, #16 - 8008376: af00 add r7, sp, #0 - 8008378: 6078 str r0, [r7, #4] - 800837a: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_OPA); - 800837c: 224e movs r2, #78 ; 0x4e - 800837e: 6839 ldr r1, [r7, #0] - 8008380: 6878 ldr r0, [r7, #4] - 8008382: f005 fd15 bl 800ddb0 - 8008386: 4603 mov r3, r0 - 8008388: 60fb str r3, [r7, #12] - return (lv_opa_t)v.num; - 800838a: 68fb ldr r3, [r7, #12] - 800838c: b2db uxtb r3, r3 -} - 800838e: 4618 mov r0, r3 - 8008390: 3710 adds r7, #16 - 8008392: 46bd mov sp, r7 - 8008394: bd80 pop {r7, pc} - -08008396 : -{ - 8008396: b580 push {r7, lr} - 8008398: b084 sub sp, #16 - 800839a: af00 add r7, sp, #0 - 800839c: 6078 str r0, [r7, #4] - 800839e: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_WIDTH); - 80083a0: f44f 6205 mov.w r2, #2128 ; 0x850 - 80083a4: 6839 ldr r1, [r7, #0] - 80083a6: 6878 ldr r0, [r7, #4] - 80083a8: f005 fd02 bl 800ddb0 - 80083ac: 4603 mov r3, r0 - 80083ae: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 80083b0: 68fb ldr r3, [r7, #12] - 80083b2: b21b sxth r3, r3 -} - 80083b4: 4618 mov r0, r3 - 80083b6: 3710 adds r7, #16 - 80083b8: 46bd mov sp, r7 - 80083ba: bd80 pop {r7, pc} - -080083bc : -{ - 80083bc: b580 push {r7, lr} - 80083be: b084 sub sp, #16 - 80083c0: af00 add r7, sp, #0 - 80083c2: 6078 str r0, [r7, #4] - 80083c4: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_ROUNDED); - 80083c6: 2251 movs r2, #81 ; 0x51 - 80083c8: 6839 ldr r1, [r7, #0] - 80083ca: 6878 ldr r0, [r7, #4] - 80083cc: f005 fcf0 bl 800ddb0 - 80083d0: 4603 mov r3, r0 - 80083d2: 60fb str r3, [r7, #12] return (bool)v.num; - 80083d4: 68fb ldr r3, [r7, #12] - 80083d6: 2b00 cmp r3, #0 - 80083d8: bf14 ite ne - 80083da: 2301 movne r3, #1 - 80083dc: 2300 moveq r3, #0 - 80083de: b2db uxtb r3, r3 + 8008368: 68fb ldr r3, [r7, #12] + 800836a: 2b00 cmp r3, #0 + 800836c: bf14 ite ne + 800836e: 2301 movne r3, #1 + 8008370: 2300 moveq r3, #0 + 8008372: b2db uxtb r3, r3 } - 80083e0: 4618 mov r0, r3 - 80083e2: 3710 adds r7, #16 - 80083e4: 46bd mov sp, r7 - 80083e6: bd80 pop {r7, pc} + 8008374: 4618 mov r0, r3 + 8008376: 3710 adds r7, #16 + 8008378: 46bd mov sp, r7 + 800837a: bd80 pop {r7, pc} -080083e8 : +0800837c : { - 80083e8: b580 push {r7, lr} - 80083ea: b084 sub sp, #16 - 80083ec: af00 add r7, sp, #0 - 80083ee: 6078 str r0, [r7, #4] - 80083f0: 6039 str r1, [r7, #0] + 800837c: b580 push {r7, lr} + 800837e: b084 sub sp, #16 + 8008380: af00 add r7, sp, #0 + 8008382: 6078 str r0, [r7, #4] + 8008384: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_COLOR_FILTERED); - 80083f2: f244 0252 movw r2, #16466 ; 0x4052 - 80083f6: 6839 ldr r1, [r7, #0] - 80083f8: 6878 ldr r0, [r7, #4] - 80083fa: f005 fcd9 bl 800ddb0 - 80083fe: 4603 mov r3, r0 - 8008400: 60fb str r3, [r7, #12] + 8008386: f244 0252 movw r2, #16466 ; 0x4052 + 800838a: 6839 ldr r1, [r7, #0] + 800838c: 6878 ldr r0, [r7, #4] + 800838e: f005 fcd9 bl 800dd44 + 8008392: 4603 mov r3, r0 + 8008394: 60fb str r3, [r7, #12] return v.color; - 8008402: 89bb ldrh r3, [r7, #12] + 8008396: 89bb ldrh r3, [r7, #12] } - 8008404: 4618 mov r0, r3 - 8008406: 3710 adds r7, #16 - 8008408: 46bd mov sp, r7 - 800840a: bd80 pop {r7, pc} + 8008398: 4618 mov r0, r3 + 800839a: 3710 adds r7, #16 + 800839c: 46bd mov sp, r7 + 800839e: bd80 pop {r7, pc} -0800840c : +080083a0 : { - 800840c: b580 push {r7, lr} - 800840e: b084 sub sp, #16 - 8008410: af00 add r7, sp, #0 - 8008412: 6078 str r0, [r7, #4] - 8008414: 6039 str r1, [r7, #0] + 80083a0: b580 push {r7, lr} + 80083a2: b084 sub sp, #16 + 80083a4: af00 add r7, sp, #0 + 80083a6: 6078 str r0, [r7, #4] + 80083a8: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_OPA); - 8008416: 2253 movs r2, #83 ; 0x53 + 80083aa: 2253 movs r2, #83 ; 0x53 + 80083ac: 6839 ldr r1, [r7, #0] + 80083ae: 6878 ldr r0, [r7, #4] + 80083b0: f005 fcc8 bl 800dd44 + 80083b4: 4603 mov r3, r0 + 80083b6: 60fb str r3, [r7, #12] + return (lv_opa_t)v.num; + 80083b8: 68fb ldr r3, [r7, #12] + 80083ba: b2db uxtb r3, r3 +} + 80083bc: 4618 mov r0, r3 + 80083be: 3710 adds r7, #16 + 80083c0: 46bd mov sp, r7 + 80083c2: bd80 pop {r7, pc} + +080083c4 : +{ + 80083c4: b580 push {r7, lr} + 80083c6: b084 sub sp, #16 + 80083c8: af00 add r7, sp, #0 + 80083ca: 6078 str r0, [r7, #4] + 80083cc: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_IMG_SRC); + 80083ce: 2254 movs r2, #84 ; 0x54 + 80083d0: 6839 ldr r1, [r7, #0] + 80083d2: 6878 ldr r0, [r7, #4] + 80083d4: f005 fcb6 bl 800dd44 + 80083d8: 4603 mov r3, r0 + 80083da: 60fb str r3, [r7, #12] + return (const void *)v.ptr; + 80083dc: 68fb ldr r3, [r7, #12] +} + 80083de: 4618 mov r0, r3 + 80083e0: 3710 adds r7, #16 + 80083e2: 46bd mov sp, r7 + 80083e4: bd80 pop {r7, pc} + +080083e6 : +{ + 80083e6: b580 push {r7, lr} + 80083e8: b084 sub sp, #16 + 80083ea: af00 add r7, sp, #0 + 80083ec: 6078 str r0, [r7, #4] + 80083ee: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_COLOR_FILTERED); + 80083f0: f244 4257 movw r2, #17495 ; 0x4457 + 80083f4: 6839 ldr r1, [r7, #0] + 80083f6: 6878 ldr r0, [r7, #4] + 80083f8: f005 fca4 bl 800dd44 + 80083fc: 4603 mov r3, r0 + 80083fe: 60fb str r3, [r7, #12] + return v.color; + 8008400: 89bb ldrh r3, [r7, #12] +} + 8008402: 4618 mov r0, r3 + 8008404: 3710 adds r7, #16 + 8008406: 46bd mov sp, r7 + 8008408: bd80 pop {r7, pc} + +0800840a : +{ + 800840a: b580 push {r7, lr} + 800840c: b084 sub sp, #16 + 800840e: af00 add r7, sp, #0 + 8008410: 6078 str r0, [r7, #4] + 8008412: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_OPA); + 8008414: f44f 628b mov.w r2, #1112 ; 0x458 8008418: 6839 ldr r1, [r7, #0] 800841a: 6878 ldr r0, [r7, #4] - 800841c: f005 fcc8 bl 800ddb0 + 800841c: f005 fc92 bl 800dd44 8008420: 4603 mov r3, r0 8008422: 60fb str r3, [r7, #12] return (lv_opa_t)v.num; @@ -20580,3391 +20600,3382 @@ static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) 800842c: 46bd mov sp, r7 800842e: bd80 pop {r7, pc} -08008430 : +08008430 : { 8008430: b580 push {r7, lr} 8008432: b084 sub sp, #16 8008434: af00 add r7, sp, #0 8008436: 6078 str r0, [r7, #4] 8008438: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_IMG_SRC); - 800843a: 2254 movs r2, #84 ; 0x54 - 800843c: 6839 ldr r1, [r7, #0] - 800843e: 6878 ldr r0, [r7, #4] - 8008440: f005 fcb6 bl 800ddb0 - 8008444: 4603 mov r3, r0 - 8008446: 60fb str r3, [r7, #12] - return (const void *)v.ptr; - 8008448: 68fb ldr r3, [r7, #12] -} - 800844a: 4618 mov r0, r3 - 800844c: 3710 adds r7, #16 - 800844e: 46bd mov sp, r7 - 8008450: bd80 pop {r7, pc} - -08008452 : -{ - 8008452: b580 push {r7, lr} - 8008454: b084 sub sp, #16 - 8008456: af00 add r7, sp, #0 - 8008458: 6078 str r0, [r7, #4] - 800845a: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_COLOR_FILTERED); - 800845c: f244 4257 movw r2, #17495 ; 0x4457 - 8008460: 6839 ldr r1, [r7, #0] - 8008462: 6878 ldr r0, [r7, #4] - 8008464: f005 fca4 bl 800ddb0 - 8008468: 4603 mov r3, r0 - 800846a: 60fb str r3, [r7, #12] - return v.color; - 800846c: 89bb ldrh r3, [r7, #12] -} - 800846e: 4618 mov r0, r3 - 8008470: 3710 adds r7, #16 - 8008472: 46bd mov sp, r7 - 8008474: bd80 pop {r7, pc} - -08008476 : -{ - 8008476: b580 push {r7, lr} - 8008478: b084 sub sp, #16 - 800847a: af00 add r7, sp, #0 - 800847c: 6078 str r0, [r7, #4] - 800847e: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_OPA); - 8008480: f44f 628b mov.w r2, #1112 ; 0x458 - 8008484: 6839 ldr r1, [r7, #0] - 8008486: 6878 ldr r0, [r7, #4] - 8008488: f005 fc92 bl 800ddb0 - 800848c: 4603 mov r3, r0 - 800848e: 60fb str r3, [r7, #12] - return (lv_opa_t)v.num; - 8008490: 68fb ldr r3, [r7, #12] - 8008492: b2db uxtb r3, r3 -} - 8008494: 4618 mov r0, r3 - 8008496: 3710 adds r7, #16 - 8008498: 46bd mov sp, r7 - 800849a: bd80 pop {r7, pc} - -0800849c : -{ - 800849c: b580 push {r7, lr} - 800849e: b084 sub sp, #16 - 80084a0: af00 add r7, sp, #0 - 80084a2: 6078 str r0, [r7, #4] - 80084a4: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_FONT); - 80084a6: f241 4259 movw r2, #5209 ; 0x1459 - 80084aa: 6839 ldr r1, [r7, #0] - 80084ac: 6878 ldr r0, [r7, #4] - 80084ae: f005 fc7f bl 800ddb0 - 80084b2: 4603 mov r3, r0 - 80084b4: 60fb str r3, [r7, #12] + 800843a: f241 4259 movw r2, #5209 ; 0x1459 + 800843e: 6839 ldr r1, [r7, #0] + 8008440: 6878 ldr r0, [r7, #4] + 8008442: f005 fc7f bl 800dd44 + 8008446: 4603 mov r3, r0 + 8008448: 60fb str r3, [r7, #12] return (const lv_font_t *)v.ptr; - 80084b6: 68fb ldr r3, [r7, #12] + 800844a: 68fb ldr r3, [r7, #12] } - 80084b8: 4618 mov r0, r3 - 80084ba: 3710 adds r7, #16 - 80084bc: 46bd mov sp, r7 - 80084be: bd80 pop {r7, pc} + 800844c: 4618 mov r0, r3 + 800844e: 3710 adds r7, #16 + 8008450: 46bd mov sp, r7 + 8008452: bd80 pop {r7, pc} -080084c0 : +08008454 : { - 80084c0: b580 push {r7, lr} - 80084c2: b084 sub sp, #16 - 80084c4: af00 add r7, sp, #0 - 80084c6: 6078 str r0, [r7, #4] - 80084c8: 6039 str r1, [r7, #0] + 8008454: b580 push {r7, lr} + 8008456: b084 sub sp, #16 + 8008458: af00 add r7, sp, #0 + 800845a: 6078 str r0, [r7, #4] + 800845c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LETTER_SPACE); - 80084ca: f241 425a movw r2, #5210 ; 0x145a - 80084ce: 6839 ldr r1, [r7, #0] - 80084d0: 6878 ldr r0, [r7, #4] - 80084d2: f005 fc6d bl 800ddb0 - 80084d6: 4603 mov r3, r0 - 80084d8: 60fb str r3, [r7, #12] + 800845e: f241 425a movw r2, #5210 ; 0x145a + 8008462: 6839 ldr r1, [r7, #0] + 8008464: 6878 ldr r0, [r7, #4] + 8008466: f005 fc6d bl 800dd44 + 800846a: 4603 mov r3, r0 + 800846c: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80084da: 68fb ldr r3, [r7, #12] - 80084dc: b21b sxth r3, r3 + 800846e: 68fb ldr r3, [r7, #12] + 8008470: b21b sxth r3, r3 } - 80084de: 4618 mov r0, r3 - 80084e0: 3710 adds r7, #16 - 80084e2: 46bd mov sp, r7 - 80084e4: bd80 pop {r7, pc} + 8008472: 4618 mov r0, r3 + 8008474: 3710 adds r7, #16 + 8008476: 46bd mov sp, r7 + 8008478: bd80 pop {r7, pc} -080084e6 : +0800847a : { - 80084e6: b580 push {r7, lr} - 80084e8: b084 sub sp, #16 - 80084ea: af00 add r7, sp, #0 - 80084ec: 6078 str r0, [r7, #4] - 80084ee: 6039 str r1, [r7, #0] + 800847a: b580 push {r7, lr} + 800847c: b084 sub sp, #16 + 800847e: af00 add r7, sp, #0 + 8008480: 6078 str r0, [r7, #4] + 8008482: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LINE_SPACE); - 80084f0: f241 425b movw r2, #5211 ; 0x145b - 80084f4: 6839 ldr r1, [r7, #0] - 80084f6: 6878 ldr r0, [r7, #4] - 80084f8: f005 fc5a bl 800ddb0 - 80084fc: 4603 mov r3, r0 - 80084fe: 60fb str r3, [r7, #12] + 8008484: f241 425b movw r2, #5211 ; 0x145b + 8008488: 6839 ldr r1, [r7, #0] + 800848a: 6878 ldr r0, [r7, #4] + 800848c: f005 fc5a bl 800dd44 + 8008490: 4603 mov r3, r0 + 8008492: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8008500: 68fb ldr r3, [r7, #12] - 8008502: b21b sxth r3, r3 + 8008494: 68fb ldr r3, [r7, #12] + 8008496: b21b sxth r3, r3 } - 8008504: 4618 mov r0, r3 - 8008506: 3710 adds r7, #16 - 8008508: 46bd mov sp, r7 - 800850a: bd80 pop {r7, pc} + 8008498: 4618 mov r0, r3 + 800849a: 3710 adds r7, #16 + 800849c: 46bd mov sp, r7 + 800849e: bd80 pop {r7, pc} -0800850c : +080084a0 : { - 800850c: b580 push {r7, lr} - 800850e: b084 sub sp, #16 - 8008510: af00 add r7, sp, #0 - 8008512: 6078 str r0, [r7, #4] - 8008514: 6039 str r1, [r7, #0] + 80084a0: b580 push {r7, lr} + 80084a2: b084 sub sp, #16 + 80084a4: af00 add r7, sp, #0 + 80084a6: 6078 str r0, [r7, #4] + 80084a8: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_DECOR); - 8008516: f240 425c movw r2, #1116 ; 0x45c - 800851a: 6839 ldr r1, [r7, #0] - 800851c: 6878 ldr r0, [r7, #4] - 800851e: f005 fc47 bl 800ddb0 - 8008522: 4603 mov r3, r0 - 8008524: 60fb str r3, [r7, #12] + 80084aa: f240 425c movw r2, #1116 ; 0x45c + 80084ae: 6839 ldr r1, [r7, #0] + 80084b0: 6878 ldr r0, [r7, #4] + 80084b2: f005 fc47 bl 800dd44 + 80084b6: 4603 mov r3, r0 + 80084b8: 60fb str r3, [r7, #12] return (lv_text_decor_t)v.num; - 8008526: 68fb ldr r3, [r7, #12] - 8008528: b2db uxtb r3, r3 + 80084ba: 68fb ldr r3, [r7, #12] + 80084bc: b2db uxtb r3, r3 } - 800852a: 4618 mov r0, r3 - 800852c: 3710 adds r7, #16 - 800852e: 46bd mov sp, r7 - 8008530: bd80 pop {r7, pc} + 80084be: 4618 mov r0, r3 + 80084c0: 3710 adds r7, #16 + 80084c2: 46bd mov sp, r7 + 80084c4: bd80 pop {r7, pc} -08008532 : +080084c6 : { - 8008532: b580 push {r7, lr} - 8008534: b084 sub sp, #16 - 8008536: af00 add r7, sp, #0 - 8008538: 6078 str r0, [r7, #4] - 800853a: 6039 str r1, [r7, #0] + 80084c6: b580 push {r7, lr} + 80084c8: b084 sub sp, #16 + 80084ca: af00 add r7, sp, #0 + 80084cc: 6078 str r0, [r7, #4] + 80084ce: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_ALIGN); - 800853c: f241 425d movw r2, #5213 ; 0x145d - 8008540: 6839 ldr r1, [r7, #0] - 8008542: 6878 ldr r0, [r7, #4] - 8008544: f005 fc34 bl 800ddb0 - 8008548: 4603 mov r3, r0 - 800854a: 60fb str r3, [r7, #12] + 80084d0: f241 425d movw r2, #5213 ; 0x145d + 80084d4: 6839 ldr r1, [r7, #0] + 80084d6: 6878 ldr r0, [r7, #4] + 80084d8: f005 fc34 bl 800dd44 + 80084dc: 4603 mov r3, r0 + 80084de: 60fb str r3, [r7, #12] return (lv_text_align_t)v.num; - 800854c: 68fb ldr r3, [r7, #12] - 800854e: b2db uxtb r3, r3 + 80084e0: 68fb ldr r3, [r7, #12] + 80084e2: b2db uxtb r3, r3 } - 8008550: 4618 mov r0, r3 - 8008552: 3710 adds r7, #16 - 8008554: 46bd mov sp, r7 - 8008556: bd80 pop {r7, pc} + 80084e4: 4618 mov r0, r3 + 80084e6: 3710 adds r7, #16 + 80084e8: 46bd mov sp, r7 + 80084ea: bd80 pop {r7, pc} -08008558 : +080084ec : { - 8008558: b580 push {r7, lr} - 800855a: b084 sub sp, #16 - 800855c: af00 add r7, sp, #0 - 800855e: 6078 str r0, [r7, #4] - 8008560: 6039 str r1, [r7, #0] + 80084ec: b580 push {r7, lr} + 80084ee: b084 sub sp, #16 + 80084f0: af00 add r7, sp, #0 + 80084f2: 6078 str r0, [r7, #4] + 80084f4: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_RADIUS); - 8008562: 2260 movs r2, #96 ; 0x60 - 8008564: 6839 ldr r1, [r7, #0] - 8008566: 6878 ldr r0, [r7, #4] - 8008568: f005 fc22 bl 800ddb0 - 800856c: 4603 mov r3, r0 - 800856e: 60fb str r3, [r7, #12] + 80084f6: 2260 movs r2, #96 ; 0x60 + 80084f8: 6839 ldr r1, [r7, #0] + 80084fa: 6878 ldr r0, [r7, #4] + 80084fc: f005 fc22 bl 800dd44 + 8008500: 4603 mov r3, r0 + 8008502: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8008570: 68fb ldr r3, [r7, #12] - 8008572: b21b sxth r3, r3 + 8008504: 68fb ldr r3, [r7, #12] + 8008506: b21b sxth r3, r3 } - 8008574: 4618 mov r0, r3 - 8008576: 3710 adds r7, #16 - 8008578: 46bd mov sp, r7 - 800857a: bd80 pop {r7, pc} + 8008508: 4618 mov r0, r3 + 800850a: 3710 adds r7, #16 + 800850c: 46bd mov sp, r7 + 800850e: bd80 pop {r7, pc} -0800857c : +08008510 : { - 800857c: b580 push {r7, lr} - 800857e: b084 sub sp, #16 - 8008580: af00 add r7, sp, #0 - 8008582: 6078 str r0, [r7, #4] - 8008584: 6039 str r1, [r7, #0] + 8008510: b580 push {r7, lr} + 8008512: b084 sub sp, #16 + 8008514: af00 add r7, sp, #0 + 8008516: 6078 str r0, [r7, #4] + 8008518: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_OPA); - 8008586: f240 4262 movw r2, #1122 ; 0x462 - 800858a: 6839 ldr r1, [r7, #0] - 800858c: 6878 ldr r0, [r7, #4] - 800858e: f005 fc0f bl 800ddb0 - 8008592: 4603 mov r3, r0 - 8008594: 60fb str r3, [r7, #12] + 800851a: f240 4262 movw r2, #1122 ; 0x462 + 800851e: 6839 ldr r1, [r7, #0] + 8008520: 6878 ldr r0, [r7, #4] + 8008522: f005 fc0f bl 800dd44 + 8008526: 4603 mov r3, r0 + 8008528: 60fb str r3, [r7, #12] return (lv_opa_t)v.num; - 8008596: 68fb ldr r3, [r7, #12] - 8008598: b2db uxtb r3, r3 + 800852a: 68fb ldr r3, [r7, #12] + 800852c: b2db uxtb r3, r3 } - 800859a: 4618 mov r0, r3 - 800859c: 3710 adds r7, #16 - 800859e: 46bd mov sp, r7 - 80085a0: bd80 pop {r7, pc} + 800852e: 4618 mov r0, r3 + 8008530: 3710 adds r7, #16 + 8008532: 46bd mov sp, r7 + 8008534: bd80 pop {r7, pc} -080085a2 : +08008536 : { - 80085a2: b580 push {r7, lr} - 80085a4: b084 sub sp, #16 - 80085a6: af00 add r7, sp, #0 - 80085a8: 6078 str r0, [r7, #4] - 80085aa: 6039 str r1, [r7, #0] + 8008536: b580 push {r7, lr} + 8008538: b084 sub sp, #16 + 800853a: af00 add r7, sp, #0 + 800853c: 6078 str r0, [r7, #4] + 800853e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BLEND_MODE); - 80085ac: 2268 movs r2, #104 ; 0x68 - 80085ae: 6839 ldr r1, [r7, #0] - 80085b0: 6878 ldr r0, [r7, #4] - 80085b2: f005 fbfd bl 800ddb0 - 80085b6: 4603 mov r3, r0 - 80085b8: 60fb str r3, [r7, #12] + 8008540: 2268 movs r2, #104 ; 0x68 + 8008542: 6839 ldr r1, [r7, #0] + 8008544: 6878 ldr r0, [r7, #4] + 8008546: f005 fbfd bl 800dd44 + 800854a: 4603 mov r3, r0 + 800854c: 60fb str r3, [r7, #12] return (lv_blend_mode_t)v.num; - 80085ba: 68fb ldr r3, [r7, #12] - 80085bc: b2db uxtb r3, r3 + 800854e: 68fb ldr r3, [r7, #12] + 8008550: b2db uxtb r3, r3 } - 80085be: 4618 mov r0, r3 - 80085c0: 3710 adds r7, #16 - 80085c2: 46bd mov sp, r7 - 80085c4: bd80 pop {r7, pc} + 8008552: 4618 mov r0, r3 + 8008554: 3710 adds r7, #16 + 8008556: 46bd mov sp, r7 + 8008558: bd80 pop {r7, pc} -080085c6 : +0800855a : /********************** * GLOBAL FUNCTIONS **********************/ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint32_t part, lv_draw_rect_dsc_t * draw_dsc) { - 80085c6: b590 push {r4, r7, lr} - 80085c8: b087 sub sp, #28 - 80085ca: af00 add r7, sp, #0 - 80085cc: 60f8 str r0, [r7, #12] - 80085ce: 60b9 str r1, [r7, #8] - 80085d0: 607a str r2, [r7, #4] + 800855a: b590 push {r4, r7, lr} + 800855c: b087 sub sp, #28 + 800855e: af00 add r7, sp, #0 + 8008560: 60f8 str r0, [r7, #12] + 8008562: 60b9 str r1, [r7, #8] + 8008564: 607a str r2, [r7, #4] #if LV_DRAW_COMPLEX draw_dsc->radius = lv_obj_get_style_radius(obj, part); - 80085d2: 68b9 ldr r1, [r7, #8] - 80085d4: 68f8 ldr r0, [r7, #12] - 80085d6: f7ff ffbf bl 8008558 - 80085da: 4603 mov r3, r0 - 80085dc: 461a mov r2, r3 - 80085de: 687b ldr r3, [r7, #4] - 80085e0: 801a strh r2, [r3, #0] + 8008566: 68b9 ldr r1, [r7, #8] + 8008568: 68f8 ldr r0, [r7, #12] + 800856a: f7ff ffbf bl 80084ec + 800856e: 4603 mov r3, r0 + 8008570: 461a mov r2, r3 + 8008572: 687b ldr r3, [r7, #4] + 8008574: 801a strh r2, [r3, #0] lv_opa_t main_opa = part != LV_PART_MAIN ? lv_obj_get_style_opa(obj, part) : LV_OPA_COVER; - 80085e2: 68bb ldr r3, [r7, #8] - 80085e4: 2b00 cmp r3, #0 - 80085e6: d005 beq.n 80085f4 - 80085e8: 68b9 ldr r1, [r7, #8] - 80085ea: 68f8 ldr r0, [r7, #12] - 80085ec: f7ff ffc6 bl 800857c - 80085f0: 4603 mov r3, r0 - 80085f2: e000 b.n 80085f6 - 80085f4: 23ff movs r3, #255 ; 0xff - 80085f6: 75bb strb r3, [r7, #22] + 8008576: 68bb ldr r3, [r7, #8] + 8008578: 2b00 cmp r3, #0 + 800857a: d005 beq.n 8008588 + 800857c: 68b9 ldr r1, [r7, #8] + 800857e: 68f8 ldr r0, [r7, #12] + 8008580: f7ff ffc6 bl 8008510 + 8008584: 4603 mov r3, r0 + 8008586: e000 b.n 800858a + 8008588: 23ff movs r3, #255 ; 0xff + 800858a: 75bb strb r3, [r7, #22] lv_opa_t opa = lv_obj_get_style_opa(obj, part); - 80085f8: 68b9 ldr r1, [r7, #8] - 80085fa: 68f8 ldr r0, [r7, #12] - 80085fc: f7ff ffbe bl 800857c - 8008600: 4603 mov r3, r0 - 8008602: 75fb strb r3, [r7, #23] + 800858c: 68b9 ldr r1, [r7, #8] + 800858e: 68f8 ldr r0, [r7, #12] + 8008590: f7ff ffbe bl 8008510 + 8008594: 4603 mov r3, r0 + 8008596: 75fb strb r3, [r7, #23] if(opa <= LV_OPA_MIN || main_opa <= LV_OPA_MIN) { - 8008604: 7dfb ldrb r3, [r7, #23] - 8008606: 2b02 cmp r3, #2 - 8008608: d902 bls.n 8008610 - 800860a: 7dbb ldrb r3, [r7, #22] - 800860c: 2b02 cmp r3, #2 - 800860e: d80f bhi.n 8008630 + 8008598: 7dfb ldrb r3, [r7, #23] + 800859a: 2b02 cmp r3, #2 + 800859c: d902 bls.n 80085a4 + 800859e: 7dbb ldrb r3, [r7, #22] + 80085a0: 2b02 cmp r3, #2 + 80085a2: d80f bhi.n 80085c4 draw_dsc->bg_opa = LV_OPA_TRANSP; - 8008610: 687b ldr r3, [r7, #4] - 8008612: 2200 movs r2, #0 - 8008614: 70da strb r2, [r3, #3] + 80085a4: 687b ldr r3, [r7, #4] + 80085a6: 2200 movs r2, #0 + 80085a8: 70da strb r2, [r3, #3] draw_dsc->border_opa = LV_OPA_TRANSP; - 8008616: 687b ldr r3, [r7, #4] - 8008618: 2200 movs r2, #0 - 800861a: f883 2022 strb.w r2, [r3, #34] ; 0x22 + 80085aa: 687b ldr r3, [r7, #4] + 80085ac: 2200 movs r2, #0 + 80085ae: f883 2022 strb.w r2, [r3, #34] ; 0x22 draw_dsc->shadow_opa = LV_OPA_TRANSP; - 800861e: 687b ldr r3, [r7, #4] - 8008620: 2200 movs r2, #0 - 8008622: f883 2036 strb.w r2, [r3, #54] ; 0x36 + 80085b2: 687b ldr r3, [r7, #4] + 80085b4: 2200 movs r2, #0 + 80085b6: f883 2036 strb.w r2, [r3, #54] ; 0x36 draw_dsc->outline_opa = LV_OPA_TRANSP; - 8008626: 687b ldr r3, [r7, #4] - 8008628: 2200 movs r2, #0 - 800862a: f883 202a strb.w r2, [r3, #42] ; 0x2a + 80085ba: 687b ldr r3, [r7, #4] + 80085bc: 2200 movs r2, #0 + 80085be: f883 202a strb.w r2, [r3, #42] ; 0x2a return; - 800862e: e1b5 b.n 800899c + 80085c2: e1b5 b.n 8008930 } draw_dsc->blend_mode = lv_obj_get_style_blend_mode(obj, part); - 8008630: 68b9 ldr r1, [r7, #8] - 8008632: 68f8 ldr r0, [r7, #12] - 8008634: f7ff ffb5 bl 80085a2 - 8008638: 4603 mov r3, r0 - 800863a: 461a mov r2, r3 - 800863c: 687b ldr r3, [r7, #4] - 800863e: 709a strb r2, [r3, #2] + 80085c4: 68b9 ldr r1, [r7, #8] + 80085c6: 68f8 ldr r0, [r7, #12] + 80085c8: f7ff ffb5 bl 8008536 + 80085cc: 4603 mov r3, r0 + 80085ce: 461a mov r2, r3 + 80085d0: 687b ldr r3, [r7, #4] + 80085d2: 709a strb r2, [r3, #2] if(draw_dsc->bg_opa != LV_OPA_TRANSP) { - 8008640: 687b ldr r3, [r7, #4] - 8008642: 78db ldrb r3, [r3, #3] - 8008644: 2b00 cmp r3, #0 - 8008646: d065 beq.n 8008714 + 80085d4: 687b ldr r3, [r7, #4] + 80085d6: 78db ldrb r3, [r3, #3] + 80085d8: 2b00 cmp r3, #0 + 80085da: d065 beq.n 80086a8 draw_dsc->bg_opa = lv_obj_get_style_bg_opa(obj, part); - 8008648: 68b9 ldr r1, [r7, #8] - 800864a: 68f8 ldr r0, [r7, #12] - 800864c: f7ff fc1c bl 8007e88 - 8008650: 4603 mov r3, r0 - 8008652: 461a mov r2, r3 - 8008654: 687b ldr r3, [r7, #4] - 8008656: 70da strb r2, [r3, #3] + 80085dc: 68b9 ldr r1, [r7, #8] + 80085de: 68f8 ldr r0, [r7, #12] + 80085e0: f7ff fc1c bl 8007e1c + 80085e4: 4603 mov r3, r0 + 80085e6: 461a mov r2, r3 + 80085e8: 687b ldr r3, [r7, #4] + 80085ea: 70da strb r2, [r3, #3] if(draw_dsc->bg_opa > LV_OPA_MIN) { - 8008658: 687b ldr r3, [r7, #4] - 800865a: 78db ldrb r3, [r3, #3] - 800865c: 2b02 cmp r3, #2 - 800865e: d959 bls.n 8008714 + 80085ec: 687b ldr r3, [r7, #4] + 80085ee: 78db ldrb r3, [r3, #3] + 80085f0: 2b02 cmp r3, #2 + 80085f2: d959 bls.n 80086a8 draw_dsc->bg_color = lv_obj_get_style_bg_color_filtered(obj, part); - 8008660: 687c ldr r4, [r7, #4] - 8008662: 68b9 ldr r1, [r7, #8] - 8008664: 68f8 ldr r0, [r7, #12] - 8008666: f7ff fbfd bl 8007e64 - 800866a: 80a0 strh r0, [r4, #4] + 80085f4: 687c ldr r4, [r7, #4] + 80085f6: 68b9 ldr r1, [r7, #8] + 80085f8: 68f8 ldr r0, [r7, #12] + 80085fa: f7ff fbfd bl 8007df8 + 80085fe: 80a0 strh r0, [r4, #4] const lv_grad_dsc_t * grad = lv_obj_get_style_bg_grad(obj, part); - 800866c: 68b9 ldr r1, [r7, #8] - 800866e: 68f8 ldr r0, [r7, #12] - 8008670: f7ff fc64 bl 8007f3c - 8008674: 6138 str r0, [r7, #16] + 8008600: 68b9 ldr r1, [r7, #8] + 8008602: 68f8 ldr r0, [r7, #12] + 8008604: f7ff fc64 bl 8007ed0 + 8008608: 6138 str r0, [r7, #16] if(grad && grad->dir != LV_GRAD_DIR_NONE) { - 8008676: 693b ldr r3, [r7, #16] - 8008678: 2b00 cmp r3, #0 - 800867a: d00e beq.n 800869a - 800867c: 693b ldr r3, [r7, #16] - 800867e: 7a5b ldrb r3, [r3, #9] - 8008680: f003 0307 and.w r3, r3, #7 - 8008684: b2db uxtb r3, r3 - 8008686: 2b00 cmp r3, #0 - 8008688: d007 beq.n 800869a + 800860a: 693b ldr r3, [r7, #16] + 800860c: 2b00 cmp r3, #0 + 800860e: d00e beq.n 800862e + 8008610: 693b ldr r3, [r7, #16] + 8008612: 7a5b ldrb r3, [r3, #9] + 8008614: f003 0307 and.w r3, r3, #7 + 8008618: b2db uxtb r3, r3 + 800861a: 2b00 cmp r3, #0 + 800861c: d007 beq.n 800862e lv_memcpy(&draw_dsc->bg_grad, grad, sizeof(*grad)); - 800868a: 687b ldr r3, [r7, #4] - 800868c: 3304 adds r3, #4 - 800868e: 220a movs r2, #10 - 8008690: 6939 ldr r1, [r7, #16] - 8008692: 4618 mov r0, r3 - 8008694: f02a fab8 bl 8032c08 - 8008698: e03c b.n 8008714 + 800861e: 687b ldr r3, [r7, #4] + 8008620: 3304 adds r3, #4 + 8008622: 220a movs r2, #10 + 8008624: 6939 ldr r1, [r7, #16] + 8008626: 4618 mov r0, r3 + 8008628: f02a faa4 bl 8032b74 + 800862c: e03c b.n 80086a8 } else { draw_dsc->bg_grad.dir = lv_obj_get_style_bg_grad_dir(obj, part); - 800869a: 68b9 ldr r1, [r7, #8] - 800869c: 68f8 ldr r0, [r7, #12] - 800869e: f7ff fc17 bl 8007ed0 - 80086a2: 4603 mov r3, r0 - 80086a4: f003 0307 and.w r3, r3, #7 - 80086a8: b2d9 uxtb r1, r3 - 80086aa: 687a ldr r2, [r7, #4] - 80086ac: 7b53 ldrb r3, [r2, #13] - 80086ae: f361 0302 bfi r3, r1, #0, #3 - 80086b2: 7353 strb r3, [r2, #13] + 800862e: 68b9 ldr r1, [r7, #8] + 8008630: 68f8 ldr r0, [r7, #12] + 8008632: f7ff fc17 bl 8007e64 + 8008636: 4603 mov r3, r0 + 8008638: f003 0307 and.w r3, r3, #7 + 800863c: b2d9 uxtb r1, r3 + 800863e: 687a ldr r2, [r7, #4] + 8008640: 7b53 ldrb r3, [r2, #13] + 8008642: f361 0302 bfi r3, r1, #0, #3 + 8008646: 7353 strb r3, [r2, #13] if(draw_dsc->bg_grad.dir != LV_GRAD_DIR_NONE) { - 80086b4: 687b ldr r3, [r7, #4] - 80086b6: 7b5b ldrb r3, [r3, #13] - 80086b8: f003 0307 and.w r3, r3, #7 - 80086bc: b2db uxtb r3, r3 - 80086be: 2b00 cmp r3, #0 - 80086c0: d01b beq.n 80086fa + 8008648: 687b ldr r3, [r7, #4] + 800864a: 7b5b ldrb r3, [r3, #13] + 800864c: f003 0307 and.w r3, r3, #7 + 8008650: b2db uxtb r3, r3 + 8008652: 2b00 cmp r3, #0 + 8008654: d01b beq.n 800868e draw_dsc->bg_grad.stops[0].color = lv_obj_get_style_bg_color_filtered(obj, part); - 80086c2: 687c ldr r4, [r7, #4] - 80086c4: 68b9 ldr r1, [r7, #8] - 80086c6: 68f8 ldr r0, [r7, #12] - 80086c8: f7ff fbcc bl 8007e64 - 80086cc: 80a0 strh r0, [r4, #4] + 8008656: 687c ldr r4, [r7, #4] + 8008658: 68b9 ldr r1, [r7, #8] + 800865a: 68f8 ldr r0, [r7, #12] + 800865c: f7ff fbcc bl 8007df8 + 8008660: 80a0 strh r0, [r4, #4] draw_dsc->bg_grad.stops[1].color = lv_obj_get_style_bg_grad_color_filtered(obj, part); - 80086ce: 687c ldr r4, [r7, #4] - 80086d0: 68b9 ldr r1, [r7, #8] - 80086d2: 68f8 ldr r0, [r7, #12] - 80086d4: f7ff fbea bl 8007eac - 80086d8: 8120 strh r0, [r4, #8] + 8008662: 687c ldr r4, [r7, #4] + 8008664: 68b9 ldr r1, [r7, #8] + 8008666: 68f8 ldr r0, [r7, #12] + 8008668: f7ff fbea bl 8007e40 + 800866c: 8120 strh r0, [r4, #8] draw_dsc->bg_grad.stops[0].frac = lv_obj_get_style_bg_main_stop(obj, part); - 80086da: 68b9 ldr r1, [r7, #8] - 80086dc: 68f8 ldr r0, [r7, #12] - 80086de: f7ff fc09 bl 8007ef4 - 80086e2: 4603 mov r3, r0 - 80086e4: b2da uxtb r2, r3 - 80086e6: 687b ldr r3, [r7, #4] - 80086e8: 719a strb r2, [r3, #6] + 800866e: 68b9 ldr r1, [r7, #8] + 8008670: 68f8 ldr r0, [r7, #12] + 8008672: f7ff fc09 bl 8007e88 + 8008676: 4603 mov r3, r0 + 8008678: b2da uxtb r2, r3 + 800867a: 687b ldr r3, [r7, #4] + 800867c: 719a strb r2, [r3, #6] draw_dsc->bg_grad.stops[1].frac = lv_obj_get_style_bg_grad_stop(obj, part); - 80086ea: 68b9 ldr r1, [r7, #8] - 80086ec: 68f8 ldr r0, [r7, #12] - 80086ee: f7ff fc13 bl 8007f18 - 80086f2: 4603 mov r3, r0 - 80086f4: b2da uxtb r2, r3 - 80086f6: 687b ldr r3, [r7, #4] - 80086f8: 729a strb r2, [r3, #10] + 800867e: 68b9 ldr r1, [r7, #8] + 8008680: 68f8 ldr r0, [r7, #12] + 8008682: f7ff fc13 bl 8007eac + 8008686: 4603 mov r3, r0 + 8008688: b2da uxtb r2, r3 + 800868a: 687b ldr r3, [r7, #4] + 800868c: 729a strb r2, [r3, #10] } draw_dsc->bg_grad.dither = lv_obj_get_style_bg_dither_mode(obj, part); - 80086fa: 68b9 ldr r1, [r7, #8] - 80086fc: 68f8 ldr r0, [r7, #12] - 80086fe: f7ff fc2e bl 8007f5e - 8008702: 4603 mov r3, r0 - 8008704: f003 0307 and.w r3, r3, #7 - 8008708: b2d9 uxtb r1, r3 - 800870a: 687a ldr r2, [r7, #4] - 800870c: 7b53 ldrb r3, [r2, #13] - 800870e: f361 03c5 bfi r3, r1, #3, #3 - 8008712: 7353 strb r3, [r2, #13] + 800868e: 68b9 ldr r1, [r7, #8] + 8008690: 68f8 ldr r0, [r7, #12] + 8008692: f7ff fc2e bl 8007ef2 + 8008696: 4603 mov r3, r0 + 8008698: f003 0307 and.w r3, r3, #7 + 800869c: b2d9 uxtb r1, r3 + 800869e: 687a ldr r2, [r7, #4] + 80086a0: 7b53 ldrb r3, [r2, #13] + 80086a2: f361 03c5 bfi r3, r1, #3, #3 + 80086a6: 7353 strb r3, [r2, #13] } } } draw_dsc->border_width = lv_obj_get_style_border_width(obj, part); - 8008714: 68b9 ldr r1, [r7, #8] - 8008716: 68f8 ldr r0, [r7, #12] - 8008718: f7ff fcb5 bl 8008086 - 800871c: 4603 mov r3, r0 - 800871e: 461a mov r2, r3 - 8008720: 687b ldr r3, [r7, #4] - 8008722: 841a strh r2, [r3, #32] + 80086a8: 68b9 ldr r1, [r7, #8] + 80086aa: 68f8 ldr r0, [r7, #12] + 80086ac: f7ff fcb5 bl 800801a + 80086b0: 4603 mov r3, r0 + 80086b2: 461a mov r2, r3 + 80086b4: 687b ldr r3, [r7, #4] + 80086b6: 841a strh r2, [r3, #32] if(draw_dsc->border_width) { - 8008724: 687b ldr r3, [r7, #4] - 8008726: f9b3 3020 ldrsh.w r3, [r3, #32] - 800872a: 2b00 cmp r3, #0 - 800872c: d027 beq.n 800877e + 80086b8: 687b ldr r3, [r7, #4] + 80086ba: f9b3 3020 ldrsh.w r3, [r3, #32] + 80086be: 2b00 cmp r3, #0 + 80086c0: d027 beq.n 8008712 if(draw_dsc->border_opa != LV_OPA_TRANSP) { - 800872e: 687b ldr r3, [r7, #4] - 8008730: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 - 8008734: 2b00 cmp r3, #0 - 8008736: d022 beq.n 800877e + 80086c2: 687b ldr r3, [r7, #4] + 80086c4: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 + 80086c8: 2b00 cmp r3, #0 + 80086ca: d022 beq.n 8008712 draw_dsc->border_opa = lv_obj_get_style_border_opa(obj, part); - 8008738: 68b9 ldr r1, [r7, #8] - 800873a: 68f8 ldr r0, [r7, #12] - 800873c: f7ff fc91 bl 8008062 - 8008740: 4603 mov r3, r0 - 8008742: 461a mov r2, r3 - 8008744: 687b ldr r3, [r7, #4] - 8008746: f883 2022 strb.w r2, [r3, #34] ; 0x22 + 80086cc: 68b9 ldr r1, [r7, #8] + 80086ce: 68f8 ldr r0, [r7, #12] + 80086d0: f7ff fc91 bl 8007ff6 + 80086d4: 4603 mov r3, r0 + 80086d6: 461a mov r2, r3 + 80086d8: 687b ldr r3, [r7, #4] + 80086da: f883 2022 strb.w r2, [r3, #34] ; 0x22 if(draw_dsc->border_opa > LV_OPA_MIN) { - 800874a: 687b ldr r3, [r7, #4] - 800874c: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 - 8008750: 2b02 cmp r3, #2 - 8008752: d914 bls.n 800877e + 80086de: 687b ldr r3, [r7, #4] + 80086e0: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 + 80086e4: 2b02 cmp r3, #2 + 80086e6: d914 bls.n 8008712 draw_dsc->border_side = lv_obj_get_style_border_side(obj, part); - 8008754: 68b9 ldr r1, [r7, #8] - 8008756: 68f8 ldr r0, [r7, #12] - 8008758: f7ff fca8 bl 80080ac - 800875c: 4603 mov r3, r0 - 800875e: f003 031f and.w r3, r3, #31 - 8008762: b2d9 uxtb r1, r3 - 8008764: 687a ldr r2, [r7, #4] - 8008766: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 - 800876a: f361 0345 bfi r3, r1, #1, #5 - 800876e: f882 3023 strb.w r3, [r2, #35] ; 0x23 + 80086e8: 68b9 ldr r1, [r7, #8] + 80086ea: 68f8 ldr r0, [r7, #12] + 80086ec: f7ff fca8 bl 8008040 + 80086f0: 4603 mov r3, r0 + 80086f2: f003 031f and.w r3, r3, #31 + 80086f6: b2d9 uxtb r1, r3 + 80086f8: 687a ldr r2, [r7, #4] + 80086fa: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 + 80086fe: f361 0345 bfi r3, r1, #1, #5 + 8008702: f882 3023 strb.w r3, [r2, #35] ; 0x23 draw_dsc->border_color = lv_obj_get_style_border_color_filtered(obj, part); - 8008772: 687c ldr r4, [r7, #4] - 8008774: 68b9 ldr r1, [r7, #8] - 8008776: 68f8 ldr r0, [r7, #12] - 8008778: f7ff fc61 bl 800803e - 800877c: 83e0 strh r0, [r4, #30] + 8008706: 687c ldr r4, [r7, #4] + 8008708: 68b9 ldr r1, [r7, #8] + 800870a: 68f8 ldr r0, [r7, #12] + 800870c: f7ff fc61 bl 8007fd2 + 8008710: 83e0 strh r0, [r4, #30] } } } draw_dsc->outline_width = lv_obj_get_style_outline_width(obj, part); - 800877e: 68b9 ldr r1, [r7, #8] - 8008780: 68f8 ldr r0, [r7, #12] - 8008782: f7ff fca5 bl 80080d0 - 8008786: 4603 mov r3, r0 - 8008788: 461a mov r2, r3 - 800878a: 687b ldr r3, [r7, #4] - 800878c: 84da strh r2, [r3, #38] ; 0x26 + 8008712: 68b9 ldr r1, [r7, #8] + 8008714: 68f8 ldr r0, [r7, #12] + 8008716: f7ff fca5 bl 8008064 + 800871a: 4603 mov r3, r0 + 800871c: 461a mov r2, r3 + 800871e: 687b ldr r3, [r7, #4] + 8008720: 84da strh r2, [r3, #38] ; 0x26 if(draw_dsc->outline_width) { - 800878e: 687b ldr r3, [r7, #4] - 8008790: f9b3 3026 ldrsh.w r3, [r3, #38] ; 0x26 - 8008794: 2b00 cmp r3, #0 - 8008796: d020 beq.n 80087da + 8008722: 687b ldr r3, [r7, #4] + 8008724: f9b3 3026 ldrsh.w r3, [r3, #38] ; 0x26 + 8008728: 2b00 cmp r3, #0 + 800872a: d020 beq.n 800876e if(draw_dsc->outline_opa != LV_OPA_TRANSP) { - 8008798: 687b ldr r3, [r7, #4] - 800879a: f893 302a ldrb.w r3, [r3, #42] ; 0x2a - 800879e: 2b00 cmp r3, #0 - 80087a0: d01b beq.n 80087da + 800872c: 687b ldr r3, [r7, #4] + 800872e: f893 302a ldrb.w r3, [r3, #42] ; 0x2a + 8008732: 2b00 cmp r3, #0 + 8008734: d01b beq.n 800876e draw_dsc->outline_opa = lv_obj_get_style_outline_opa(obj, part); - 80087a2: 68b9 ldr r1, [r7, #8] - 80087a4: 68f8 ldr r0, [r7, #12] - 80087a6: f7ff fcb8 bl 800811a - 80087aa: 4603 mov r3, r0 - 80087ac: 461a mov r2, r3 - 80087ae: 687b ldr r3, [r7, #4] - 80087b0: f883 202a strb.w r2, [r3, #42] ; 0x2a + 8008736: 68b9 ldr r1, [r7, #8] + 8008738: 68f8 ldr r0, [r7, #12] + 800873a: f7ff fcb8 bl 80080ae + 800873e: 4603 mov r3, r0 + 8008740: 461a mov r2, r3 + 8008742: 687b ldr r3, [r7, #4] + 8008744: f883 202a strb.w r2, [r3, #42] ; 0x2a if(draw_dsc->outline_opa > LV_OPA_MIN) { - 80087b4: 687b ldr r3, [r7, #4] - 80087b6: f893 302a ldrb.w r3, [r3, #42] ; 0x2a - 80087ba: 2b02 cmp r3, #2 - 80087bc: d90d bls.n 80087da + 8008748: 687b ldr r3, [r7, #4] + 800874a: f893 302a ldrb.w r3, [r3, #42] ; 0x2a + 800874e: 2b02 cmp r3, #2 + 8008750: d90d bls.n 800876e draw_dsc->outline_pad = lv_obj_get_style_outline_pad(obj, part); - 80087be: 68b9 ldr r1, [r7, #8] - 80087c0: 68f8 ldr r0, [r7, #12] - 80087c2: f7ff fcbd bl 8008140 - 80087c6: 4603 mov r3, r0 - 80087c8: 461a mov r2, r3 - 80087ca: 687b ldr r3, [r7, #4] - 80087cc: 851a strh r2, [r3, #40] ; 0x28 + 8008752: 68b9 ldr r1, [r7, #8] + 8008754: 68f8 ldr r0, [r7, #12] + 8008756: f7ff fcbd bl 80080d4 + 800875a: 4603 mov r3, r0 + 800875c: 461a mov r2, r3 + 800875e: 687b ldr r3, [r7, #4] + 8008760: 851a strh r2, [r3, #40] ; 0x28 draw_dsc->outline_color = lv_obj_get_style_outline_color_filtered(obj, part); - 80087ce: 687c ldr r4, [r7, #4] - 80087d0: 68b9 ldr r1, [r7, #8] - 80087d2: 68f8 ldr r0, [r7, #12] - 80087d4: f7ff fc8f bl 80080f6 - 80087d8: 84a0 strh r0, [r4, #36] ; 0x24 + 8008762: 687c ldr r4, [r7, #4] + 8008764: 68b9 ldr r1, [r7, #8] + 8008766: 68f8 ldr r0, [r7, #12] + 8008768: f7ff fc8f bl 800808a + 800876c: 84a0 strh r0, [r4, #36] ; 0x24 } } } if(draw_dsc->bg_img_opa != LV_OPA_TRANSP) { - 80087da: 687b ldr r3, [r7, #4] - 80087dc: 7e9b ldrb r3, [r3, #26] - 80087de: 2b00 cmp r3, #0 - 80087e0: d042 beq.n 8008868 + 800876e: 687b ldr r3, [r7, #4] + 8008770: 7e9b ldrb r3, [r3, #26] + 8008772: 2b00 cmp r3, #0 + 8008774: d042 beq.n 80087fc draw_dsc->bg_img_src = lv_obj_get_style_bg_img_src(obj, part); - 80087e2: 68b9 ldr r1, [r7, #8] - 80087e4: 68f8 ldr r0, [r7, #12] - 80087e6: f7ff fbcc bl 8007f82 - 80087ea: 4602 mov r2, r0 - 80087ec: 687b ldr r3, [r7, #4] - 80087ee: 611a str r2, [r3, #16] + 8008776: 68b9 ldr r1, [r7, #8] + 8008778: 68f8 ldr r0, [r7, #12] + 800877a: f7ff fbcc bl 8007f16 + 800877e: 4602 mov r2, r0 + 8008780: 687b ldr r3, [r7, #4] + 8008782: 611a str r2, [r3, #16] if(draw_dsc->bg_img_src) { - 80087f0: 687b ldr r3, [r7, #4] - 80087f2: 691b ldr r3, [r3, #16] - 80087f4: 2b00 cmp r3, #0 - 80087f6: d037 beq.n 8008868 + 8008784: 687b ldr r3, [r7, #4] + 8008786: 691b ldr r3, [r3, #16] + 8008788: 2b00 cmp r3, #0 + 800878a: d037 beq.n 80087fc draw_dsc->bg_img_opa = lv_obj_get_style_bg_img_opa(obj, part); - 80087f8: 68b9 ldr r1, [r7, #8] - 80087fa: 68f8 ldr r0, [r7, #12] - 80087fc: f7ff fbd3 bl 8007fa6 - 8008800: 4603 mov r3, r0 - 8008802: 461a mov r2, r3 - 8008804: 687b ldr r3, [r7, #4] - 8008806: 769a strb r2, [r3, #26] + 800878c: 68b9 ldr r1, [r7, #8] + 800878e: 68f8 ldr r0, [r7, #12] + 8008790: f7ff fbd3 bl 8007f3a + 8008794: 4603 mov r3, r0 + 8008796: 461a mov r2, r3 + 8008798: 687b ldr r3, [r7, #4] + 800879a: 769a strb r2, [r3, #26] if(draw_dsc->bg_img_opa > LV_OPA_MIN) { - 8008808: 687b ldr r3, [r7, #4] - 800880a: 7e9b ldrb r3, [r3, #26] - 800880c: 2b02 cmp r3, #2 - 800880e: d92b bls.n 8008868 + 800879c: 687b ldr r3, [r7, #4] + 800879e: 7e9b ldrb r3, [r3, #26] + 80087a0: 2b02 cmp r3, #2 + 80087a2: d92b bls.n 80087fc if(lv_img_src_get_type(draw_dsc->bg_img_src) == LV_IMG_SRC_SYMBOL) { - 8008810: 687b ldr r3, [r7, #4] - 8008812: 691b ldr r3, [r3, #16] - 8008814: 4618 mov r0, r3 - 8008816: f009 fa2b bl 8011c70 - 800881a: 4603 mov r3, r0 - 800881c: 2b02 cmp r3, #2 - 800881e: d10d bne.n 800883c + 80087a4: 687b ldr r3, [r7, #4] + 80087a6: 691b ldr r3, [r3, #16] + 80087a8: 4618 mov r0, r3 + 80087aa: f009 fa17 bl 8011bdc + 80087ae: 4603 mov r3, r0 + 80087b0: 2b02 cmp r3, #2 + 80087b2: d10d bne.n 80087d0 draw_dsc->bg_img_symbol_font = lv_obj_get_style_text_font(obj, part); - 8008820: 68b9 ldr r1, [r7, #8] - 8008822: 68f8 ldr r0, [r7, #12] - 8008824: f7ff fe3a bl 800849c - 8008828: 4602 mov r2, r0 - 800882a: 687b ldr r3, [r7, #4] - 800882c: 615a str r2, [r3, #20] + 80087b4: 68b9 ldr r1, [r7, #8] + 80087b6: 68f8 ldr r0, [r7, #12] + 80087b8: f7ff fe3a bl 8008430 + 80087bc: 4602 mov r2, r0 + 80087be: 687b ldr r3, [r7, #4] + 80087c0: 615a str r2, [r3, #20] draw_dsc->bg_img_recolor = lv_obj_get_style_text_color_filtered(obj, part); - 800882e: 687c ldr r4, [r7, #4] - 8008830: 68b9 ldr r1, [r7, #8] - 8008832: 68f8 ldr r0, [r7, #12] - 8008834: f7ff fe0d bl 8008452 - 8008838: 8320 strh r0, [r4, #24] - 800883a: e015 b.n 8008868 + 80087c2: 687c ldr r4, [r7, #4] + 80087c4: 68b9 ldr r1, [r7, #8] + 80087c6: 68f8 ldr r0, [r7, #12] + 80087c8: f7ff fe0d bl 80083e6 + 80087cc: 8320 strh r0, [r4, #24] + 80087ce: e015 b.n 80087fc } else { draw_dsc->bg_img_recolor = lv_obj_get_style_bg_img_recolor_filtered(obj, part); - 800883c: 687c ldr r4, [r7, #4] - 800883e: 68b9 ldr r1, [r7, #8] - 8008840: 68f8 ldr r0, [r7, #12] - 8008842: f7ff fbc2 bl 8007fca - 8008846: 8320 strh r0, [r4, #24] + 80087d0: 687c ldr r4, [r7, #4] + 80087d2: 68b9 ldr r1, [r7, #8] + 80087d4: 68f8 ldr r0, [r7, #12] + 80087d6: f7ff fbc2 bl 8007f5e + 80087da: 8320 strh r0, [r4, #24] draw_dsc->bg_img_recolor_opa = lv_obj_get_style_bg_img_recolor_opa(obj, part); - 8008848: 68b9 ldr r1, [r7, #8] - 800884a: 68f8 ldr r0, [r7, #12] - 800884c: f7ff fbcf bl 8007fee - 8008850: 4603 mov r3, r0 - 8008852: 461a mov r2, r3 - 8008854: 687b ldr r3, [r7, #4] - 8008856: 76da strb r2, [r3, #27] + 80087dc: 68b9 ldr r1, [r7, #8] + 80087de: 68f8 ldr r0, [r7, #12] + 80087e0: f7ff fbcf bl 8007f82 + 80087e4: 4603 mov r3, r0 + 80087e6: 461a mov r2, r3 + 80087e8: 687b ldr r3, [r7, #4] + 80087ea: 76da strb r2, [r3, #27] draw_dsc->bg_img_tiled = lv_obj_get_style_bg_img_tiled(obj, part); - 8008858: 68b9 ldr r1, [r7, #8] - 800885a: 68f8 ldr r0, [r7, #12] - 800885c: f7ff fbd9 bl 8008012 - 8008860: 4603 mov r3, r0 - 8008862: 461a mov r2, r3 - 8008864: 687b ldr r3, [r7, #4] - 8008866: 771a strb r2, [r3, #28] + 80087ec: 68b9 ldr r1, [r7, #8] + 80087ee: 68f8 ldr r0, [r7, #12] + 80087f0: f7ff fbd9 bl 8007fa6 + 80087f4: 4603 mov r3, r0 + 80087f6: 461a mov r2, r3 + 80087f8: 687b ldr r3, [r7, #4] + 80087fa: 771a strb r2, [r3, #28] } } } } if(draw_dsc->shadow_opa) { - 8008868: 687b ldr r3, [r7, #4] - 800886a: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 800886e: 2b00 cmp r3, #0 - 8008870: d03d beq.n 80088ee + 80087fc: 687b ldr r3, [r7, #4] + 80087fe: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 8008802: 2b00 cmp r3, #0 + 8008804: d03d beq.n 8008882 draw_dsc->shadow_width = lv_obj_get_style_shadow_width(obj, part); - 8008872: 68b9 ldr r1, [r7, #8] - 8008874: 68f8 ldr r0, [r7, #12] - 8008876: f7ff fc76 bl 8008166 - 800887a: 4603 mov r3, r0 - 800887c: 461a mov r2, r3 - 800887e: 687b ldr r3, [r7, #4] - 8008880: 85da strh r2, [r3, #46] ; 0x2e + 8008806: 68b9 ldr r1, [r7, #8] + 8008808: 68f8 ldr r0, [r7, #12] + 800880a: f7ff fc76 bl 80080fa + 800880e: 4603 mov r3, r0 + 8008810: 461a mov r2, r3 + 8008812: 687b ldr r3, [r7, #4] + 8008814: 85da strh r2, [r3, #46] ; 0x2e if(draw_dsc->shadow_width) { - 8008882: 687b ldr r3, [r7, #4] - 8008884: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 8008888: 2b00 cmp r3, #0 - 800888a: d030 beq.n 80088ee + 8008816: 687b ldr r3, [r7, #4] + 8008818: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 800881c: 2b00 cmp r3, #0 + 800881e: d030 beq.n 8008882 if(draw_dsc->shadow_opa > LV_OPA_MIN) { - 800888c: 687b ldr r3, [r7, #4] - 800888e: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 8008892: 2b02 cmp r3, #2 - 8008894: d92b bls.n 80088ee + 8008820: 687b ldr r3, [r7, #4] + 8008822: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 8008826: 2b02 cmp r3, #2 + 8008828: d92b bls.n 8008882 draw_dsc->shadow_opa = lv_obj_get_style_shadow_opa(obj, part); - 8008896: 68b9 ldr r1, [r7, #8] - 8008898: 68f8 ldr r0, [r7, #12] - 800889a: f7ff fcc2 bl 8008222 - 800889e: 4603 mov r3, r0 - 80088a0: 461a mov r2, r3 - 80088a2: 687b ldr r3, [r7, #4] - 80088a4: f883 2036 strb.w r2, [r3, #54] ; 0x36 + 800882a: 68b9 ldr r1, [r7, #8] + 800882c: 68f8 ldr r0, [r7, #12] + 800882e: f7ff fcc2 bl 80081b6 + 8008832: 4603 mov r3, r0 + 8008834: 461a mov r2, r3 + 8008836: 687b ldr r3, [r7, #4] + 8008838: f883 2036 strb.w r2, [r3, #54] ; 0x36 if(draw_dsc->shadow_opa > LV_OPA_MIN) { - 80088a8: 687b ldr r3, [r7, #4] - 80088aa: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 80088ae: 2b02 cmp r3, #2 - 80088b0: d91d bls.n 80088ee + 800883c: 687b ldr r3, [r7, #4] + 800883e: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 8008842: 2b02 cmp r3, #2 + 8008844: d91d bls.n 8008882 draw_dsc->shadow_ofs_x = lv_obj_get_style_shadow_ofs_x(obj, part); - 80088b2: 68b9 ldr r1, [r7, #8] - 80088b4: 68f8 ldr r0, [r7, #12] - 80088b6: f7ff fc69 bl 800818c - 80088ba: 4603 mov r3, r0 - 80088bc: 461a mov r2, r3 - 80088be: 687b ldr r3, [r7, #4] - 80088c0: 861a strh r2, [r3, #48] ; 0x30 + 8008846: 68b9 ldr r1, [r7, #8] + 8008848: 68f8 ldr r0, [r7, #12] + 800884a: f7ff fc69 bl 8008120 + 800884e: 4603 mov r3, r0 + 8008850: 461a mov r2, r3 + 8008852: 687b ldr r3, [r7, #4] + 8008854: 861a strh r2, [r3, #48] ; 0x30 draw_dsc->shadow_ofs_y = lv_obj_get_style_shadow_ofs_y(obj, part); - 80088c2: 68b9 ldr r1, [r7, #8] - 80088c4: 68f8 ldr r0, [r7, #12] - 80088c6: f7ff fc74 bl 80081b2 - 80088ca: 4603 mov r3, r0 - 80088cc: 461a mov r2, r3 - 80088ce: 687b ldr r3, [r7, #4] - 80088d0: 865a strh r2, [r3, #50] ; 0x32 + 8008856: 68b9 ldr r1, [r7, #8] + 8008858: 68f8 ldr r0, [r7, #12] + 800885a: f7ff fc74 bl 8008146 + 800885e: 4603 mov r3, r0 + 8008860: 461a mov r2, r3 + 8008862: 687b ldr r3, [r7, #4] + 8008864: 865a strh r2, [r3, #50] ; 0x32 draw_dsc->shadow_spread = lv_obj_get_style_shadow_spread(obj, part); - 80088d2: 68b9 ldr r1, [r7, #8] - 80088d4: 68f8 ldr r0, [r7, #12] - 80088d6: f7ff fc7f bl 80081d8 - 80088da: 4603 mov r3, r0 - 80088dc: 461a mov r2, r3 - 80088de: 687b ldr r3, [r7, #4] - 80088e0: 869a strh r2, [r3, #52] ; 0x34 + 8008866: 68b9 ldr r1, [r7, #8] + 8008868: 68f8 ldr r0, [r7, #12] + 800886a: f7ff fc7f bl 800816c + 800886e: 4603 mov r3, r0 + 8008870: 461a mov r2, r3 + 8008872: 687b ldr r3, [r7, #4] + 8008874: 869a strh r2, [r3, #52] ; 0x34 draw_dsc->shadow_color = lv_obj_get_style_shadow_color_filtered(obj, part); - 80088e2: 687c ldr r4, [r7, #4] - 80088e4: 68b9 ldr r1, [r7, #8] - 80088e6: 68f8 ldr r0, [r7, #12] - 80088e8: f7ff fc89 bl 80081fe - 80088ec: 85a0 strh r0, [r4, #44] ; 0x2c + 8008876: 687c ldr r4, [r7, #4] + 8008878: 68b9 ldr r1, [r7, #8] + 800887a: 68f8 ldr r0, [r7, #12] + 800887c: f7ff fc89 bl 8008192 + 8008880: 85a0 strh r0, [r4, #44] ; 0x2c } } } } if(main_opa < LV_OPA_MAX) { - 80088ee: 7dbb ldrb r3, [r7, #22] - 80088f0: 2bfc cmp r3, #252 ; 0xfc - 80088f2: d809 bhi.n 8008908 + 8008882: 7dbb ldrb r3, [r7, #22] + 8008884: 2bfc cmp r3, #252 ; 0xfc + 8008886: d809 bhi.n 800889c opa = (uint16_t)((uint16_t) main_opa * opa) >> 8; - 80088f4: 7dbb ldrb r3, [r7, #22] - 80088f6: b29b uxth r3, r3 - 80088f8: 7dfa ldrb r2, [r7, #23] - 80088fa: b292 uxth r2, r2 - 80088fc: fb02 f303 mul.w r3, r2, r3 - 8008900: b29b uxth r3, r3 - 8008902: 0a1b lsrs r3, r3, #8 - 8008904: b29b uxth r3, r3 - 8008906: 75fb strb r3, [r7, #23] + 8008888: 7dbb ldrb r3, [r7, #22] + 800888a: b29b uxth r3, r3 + 800888c: 7dfa ldrb r2, [r7, #23] + 800888e: b292 uxth r2, r2 + 8008890: fb02 f303 mul.w r3, r2, r3 + 8008894: b29b uxth r3, r3 + 8008896: 0a1b lsrs r3, r3, #8 + 8008898: b29b uxth r3, r3 + 800889a: 75fb strb r3, [r7, #23] } if(opa < LV_OPA_MAX) { - 8008908: 7dfb ldrb r3, [r7, #23] - 800890a: 2bfc cmp r3, #252 ; 0xfc - 800890c: d846 bhi.n 800899c + 800889c: 7dfb ldrb r3, [r7, #23] + 800889e: 2bfc cmp r3, #252 ; 0xfc + 80088a0: d846 bhi.n 8008930 draw_dsc->bg_opa = (uint16_t)((uint16_t)draw_dsc->bg_opa * opa) >> 8; - 800890e: 687b ldr r3, [r7, #4] - 8008910: 78db ldrb r3, [r3, #3] - 8008912: b29b uxth r3, r3 - 8008914: 7dfa ldrb r2, [r7, #23] - 8008916: b292 uxth r2, r2 - 8008918: fb02 f303 mul.w r3, r2, r3 - 800891c: b29b uxth r3, r3 - 800891e: 0a1b lsrs r3, r3, #8 - 8008920: b29b uxth r3, r3 - 8008922: b2da uxtb r2, r3 - 8008924: 687b ldr r3, [r7, #4] - 8008926: 70da strb r2, [r3, #3] + 80088a2: 687b ldr r3, [r7, #4] + 80088a4: 78db ldrb r3, [r3, #3] + 80088a6: b29b uxth r3, r3 + 80088a8: 7dfa ldrb r2, [r7, #23] + 80088aa: b292 uxth r2, r2 + 80088ac: fb02 f303 mul.w r3, r2, r3 + 80088b0: b29b uxth r3, r3 + 80088b2: 0a1b lsrs r3, r3, #8 + 80088b4: b29b uxth r3, r3 + 80088b6: b2da uxtb r2, r3 + 80088b8: 687b ldr r3, [r7, #4] + 80088ba: 70da strb r2, [r3, #3] draw_dsc->bg_img_opa = (uint16_t)((uint16_t)draw_dsc->bg_img_opa * opa) >> 8; - 8008928: 687b ldr r3, [r7, #4] - 800892a: 7e9b ldrb r3, [r3, #26] - 800892c: b29b uxth r3, r3 - 800892e: 7dfa ldrb r2, [r7, #23] - 8008930: b292 uxth r2, r2 - 8008932: fb02 f303 mul.w r3, r2, r3 - 8008936: b29b uxth r3, r3 - 8008938: 0a1b lsrs r3, r3, #8 - 800893a: b29b uxth r3, r3 - 800893c: b2da uxtb r2, r3 - 800893e: 687b ldr r3, [r7, #4] - 8008940: 769a strb r2, [r3, #26] + 80088bc: 687b ldr r3, [r7, #4] + 80088be: 7e9b ldrb r3, [r3, #26] + 80088c0: b29b uxth r3, r3 + 80088c2: 7dfa ldrb r2, [r7, #23] + 80088c4: b292 uxth r2, r2 + 80088c6: fb02 f303 mul.w r3, r2, r3 + 80088ca: b29b uxth r3, r3 + 80088cc: 0a1b lsrs r3, r3, #8 + 80088ce: b29b uxth r3, r3 + 80088d0: b2da uxtb r2, r3 + 80088d2: 687b ldr r3, [r7, #4] + 80088d4: 769a strb r2, [r3, #26] draw_dsc->border_opa = (uint16_t)((uint16_t)draw_dsc->border_opa * opa) >> 8; - 8008942: 687b ldr r3, [r7, #4] - 8008944: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 - 8008948: b29b uxth r3, r3 - 800894a: 7dfa ldrb r2, [r7, #23] - 800894c: b292 uxth r2, r2 - 800894e: fb02 f303 mul.w r3, r2, r3 - 8008952: b29b uxth r3, r3 - 8008954: 0a1b lsrs r3, r3, #8 - 8008956: b29b uxth r3, r3 - 8008958: b2da uxtb r2, r3 - 800895a: 687b ldr r3, [r7, #4] - 800895c: f883 2022 strb.w r2, [r3, #34] ; 0x22 + 80088d6: 687b ldr r3, [r7, #4] + 80088d8: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 + 80088dc: b29b uxth r3, r3 + 80088de: 7dfa ldrb r2, [r7, #23] + 80088e0: b292 uxth r2, r2 + 80088e2: fb02 f303 mul.w r3, r2, r3 + 80088e6: b29b uxth r3, r3 + 80088e8: 0a1b lsrs r3, r3, #8 + 80088ea: b29b uxth r3, r3 + 80088ec: b2da uxtb r2, r3 + 80088ee: 687b ldr r3, [r7, #4] + 80088f0: f883 2022 strb.w r2, [r3, #34] ; 0x22 draw_dsc->shadow_opa = (uint16_t)((uint16_t)draw_dsc->shadow_opa * opa) >> 8; - 8008960: 687b ldr r3, [r7, #4] - 8008962: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 8008966: b29b uxth r3, r3 - 8008968: 7dfa ldrb r2, [r7, #23] - 800896a: b292 uxth r2, r2 - 800896c: fb02 f303 mul.w r3, r2, r3 - 8008970: b29b uxth r3, r3 - 8008972: 0a1b lsrs r3, r3, #8 - 8008974: b29b uxth r3, r3 - 8008976: b2da uxtb r2, r3 - 8008978: 687b ldr r3, [r7, #4] - 800897a: f883 2036 strb.w r2, [r3, #54] ; 0x36 + 80088f4: 687b ldr r3, [r7, #4] + 80088f6: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 80088fa: b29b uxth r3, r3 + 80088fc: 7dfa ldrb r2, [r7, #23] + 80088fe: b292 uxth r2, r2 + 8008900: fb02 f303 mul.w r3, r2, r3 + 8008904: b29b uxth r3, r3 + 8008906: 0a1b lsrs r3, r3, #8 + 8008908: b29b uxth r3, r3 + 800890a: b2da uxtb r2, r3 + 800890c: 687b ldr r3, [r7, #4] + 800890e: f883 2036 strb.w r2, [r3, #54] ; 0x36 draw_dsc->outline_opa = (uint16_t)((uint16_t)draw_dsc->outline_opa * opa) >> 8; - 800897e: 687b ldr r3, [r7, #4] - 8008980: f893 302a ldrb.w r3, [r3, #42] ; 0x2a - 8008984: b29b uxth r3, r3 - 8008986: 7dfa ldrb r2, [r7, #23] - 8008988: b292 uxth r2, r2 - 800898a: fb02 f303 mul.w r3, r2, r3 - 800898e: b29b uxth r3, r3 - 8008990: 0a1b lsrs r3, r3, #8 - 8008992: b29b uxth r3, r3 - 8008994: b2da uxtb r2, r3 - 8008996: 687b ldr r3, [r7, #4] - 8008998: f883 202a strb.w r2, [r3, #42] ; 0x2a + 8008912: 687b ldr r3, [r7, #4] + 8008914: f893 302a ldrb.w r3, [r3, #42] ; 0x2a + 8008918: b29b uxth r3, r3 + 800891a: 7dfa ldrb r2, [r7, #23] + 800891c: b292 uxth r2, r2 + 800891e: fb02 f303 mul.w r3, r2, r3 + 8008922: b29b uxth r3, r3 + 8008924: 0a1b lsrs r3, r3, #8 + 8008926: b29b uxth r3, r3 + 8008928: b2da uxtb r2, r3 + 800892a: 687b ldr r3, [r7, #4] + 800892c: f883 202a strb.w r2, [r3, #42] ; 0x2a } } } } #endif } - 800899c: 371c adds r7, #28 - 800899e: 46bd mov sp, r7 - 80089a0: bd90 pop {r4, r7, pc} + 8008930: 371c adds r7, #28 + 8008932: 46bd mov sp, r7 + 8008934: bd90 pop {r4, r7, pc} -080089a2 : +08008936 : void lv_obj_init_draw_label_dsc(lv_obj_t * obj, uint32_t part, lv_draw_label_dsc_t * draw_dsc) { - 80089a2: b590 push {r4, r7, lr} - 80089a4: b087 sub sp, #28 - 80089a6: af00 add r7, sp, #0 - 80089a8: 60f8 str r0, [r7, #12] - 80089aa: 60b9 str r1, [r7, #8] - 80089ac: 607a str r2, [r7, #4] + 8008936: b590 push {r4, r7, lr} + 8008938: b087 sub sp, #28 + 800893a: af00 add r7, sp, #0 + 800893c: 60f8 str r0, [r7, #12] + 800893e: 60b9 str r1, [r7, #8] + 8008940: 607a str r2, [r7, #4] draw_dsc->opa = lv_obj_get_style_text_opa(obj, part); - 80089ae: 68b9 ldr r1, [r7, #8] - 80089b0: 68f8 ldr r0, [r7, #12] - 80089b2: f7ff fd60 bl 8008476 - 80089b6: 4603 mov r3, r0 - 80089b8: 461a mov r2, r3 - 80089ba: 687b ldr r3, [r7, #4] - 80089bc: 769a strb r2, [r3, #26] + 8008942: 68b9 ldr r1, [r7, #8] + 8008944: 68f8 ldr r0, [r7, #12] + 8008946: f7ff fd60 bl 800840a + 800894a: 4603 mov r3, r0 + 800894c: 461a mov r2, r3 + 800894e: 687b ldr r3, [r7, #4] + 8008950: 769a strb r2, [r3, #26] if(draw_dsc->opa <= LV_OPA_MIN) return; - 80089be: 687b ldr r3, [r7, #4] - 80089c0: 7e9b ldrb r3, [r3, #26] - 80089c2: 2b02 cmp r3, #2 - 80089c4: d959 bls.n 8008a7a + 8008952: 687b ldr r3, [r7, #4] + 8008954: 7e9b ldrb r3, [r3, #26] + 8008956: 2b02 cmp r3, #2 + 8008958: d959 bls.n 8008a0e lv_opa_t opa = lv_obj_get_style_opa(obj, part); - 80089c6: 68b9 ldr r1, [r7, #8] - 80089c8: 68f8 ldr r0, [r7, #12] - 80089ca: f7ff fdd7 bl 800857c - 80089ce: 4603 mov r3, r0 - 80089d0: 75fb strb r3, [r7, #23] + 800895a: 68b9 ldr r1, [r7, #8] + 800895c: 68f8 ldr r0, [r7, #12] + 800895e: f7ff fdd7 bl 8008510 + 8008962: 4603 mov r3, r0 + 8008964: 75fb strb r3, [r7, #23] if(opa < LV_OPA_MAX) { - 80089d2: 7dfb ldrb r3, [r7, #23] - 80089d4: 2bfc cmp r3, #252 ; 0xfc - 80089d6: d80c bhi.n 80089f2 + 8008966: 7dfb ldrb r3, [r7, #23] + 8008968: 2bfc cmp r3, #252 ; 0xfc + 800896a: d80c bhi.n 8008986 draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa) >> 8; - 80089d8: 687b ldr r3, [r7, #4] - 80089da: 7e9b ldrb r3, [r3, #26] - 80089dc: b29b uxth r3, r3 - 80089de: 7dfa ldrb r2, [r7, #23] - 80089e0: b292 uxth r2, r2 - 80089e2: fb02 f303 mul.w r3, r2, r3 - 80089e6: b29b uxth r3, r3 - 80089e8: 0a1b lsrs r3, r3, #8 - 80089ea: b29b uxth r3, r3 - 80089ec: b2da uxtb r2, r3 - 80089ee: 687b ldr r3, [r7, #4] - 80089f0: 769a strb r2, [r3, #26] + 800896c: 687b ldr r3, [r7, #4] + 800896e: 7e9b ldrb r3, [r3, #26] + 8008970: b29b uxth r3, r3 + 8008972: 7dfa ldrb r2, [r7, #23] + 8008974: b292 uxth r2, r2 + 8008976: fb02 f303 mul.w r3, r2, r3 + 800897a: b29b uxth r3, r3 + 800897c: 0a1b lsrs r3, r3, #8 + 800897e: b29b uxth r3, r3 + 8008980: b2da uxtb r2, r3 + 8008982: 687b ldr r3, [r7, #4] + 8008984: 769a strb r2, [r3, #26] } if(draw_dsc->opa <= LV_OPA_MIN) return; - 80089f2: 687b ldr r3, [r7, #4] - 80089f4: 7e9b ldrb r3, [r3, #26] - 80089f6: 2b02 cmp r3, #2 - 80089f8: d941 bls.n 8008a7e + 8008986: 687b ldr r3, [r7, #4] + 8008988: 7e9b ldrb r3, [r3, #26] + 800898a: 2b02 cmp r3, #2 + 800898c: d941 bls.n 8008a12 draw_dsc->color = lv_obj_get_style_text_color_filtered(obj, part); - 80089fa: 687c ldr r4, [r7, #4] - 80089fc: 68b9 ldr r1, [r7, #8] - 80089fe: 68f8 ldr r0, [r7, #12] - 8008a00: f7ff fd27 bl 8008452 - 8008a04: 81a0 strh r0, [r4, #12] + 800898e: 687c ldr r4, [r7, #4] + 8008990: 68b9 ldr r1, [r7, #8] + 8008992: 68f8 ldr r0, [r7, #12] + 8008994: f7ff fd27 bl 80083e6 + 8008998: 81a0 strh r0, [r4, #12] draw_dsc->letter_space = lv_obj_get_style_text_letter_space(obj, part); - 8008a06: 68b9 ldr r1, [r7, #8] - 8008a08: 68f8 ldr r0, [r7, #12] - 8008a0a: f7ff fd59 bl 80084c0 - 8008a0e: 4603 mov r3, r0 - 8008a10: 461a mov r2, r3 - 8008a12: 687b ldr r3, [r7, #4] - 8008a14: 829a strh r2, [r3, #20] + 800899a: 68b9 ldr r1, [r7, #8] + 800899c: 68f8 ldr r0, [r7, #12] + 800899e: f7ff fd59 bl 8008454 + 80089a2: 4603 mov r3, r0 + 80089a4: 461a mov r2, r3 + 80089a6: 687b ldr r3, [r7, #4] + 80089a8: 829a strh r2, [r3, #20] draw_dsc->line_space = lv_obj_get_style_text_line_space(obj, part); - 8008a16: 68b9 ldr r1, [r7, #8] - 8008a18: 68f8 ldr r0, [r7, #12] - 8008a1a: f7ff fd64 bl 80084e6 - 8008a1e: 4603 mov r3, r0 - 8008a20: 461a mov r2, r3 - 8008a22: 687b ldr r3, [r7, #4] - 8008a24: 825a strh r2, [r3, #18] + 80089aa: 68b9 ldr r1, [r7, #8] + 80089ac: 68f8 ldr r0, [r7, #12] + 80089ae: f7ff fd64 bl 800847a + 80089b2: 4603 mov r3, r0 + 80089b4: 461a mov r2, r3 + 80089b6: 687b ldr r3, [r7, #4] + 80089b8: 825a strh r2, [r3, #18] draw_dsc->decor = lv_obj_get_style_text_decor(obj, part); - 8008a26: 68b9 ldr r1, [r7, #8] - 8008a28: 68f8 ldr r0, [r7, #12] - 8008a2a: f7ff fd6f bl 800850c - 8008a2e: 4603 mov r3, r0 - 8008a30: f003 0307 and.w r3, r3, #7 - 8008a34: b2d9 uxtb r1, r3 - 8008a36: 687a ldr r2, [r7, #4] - 8008a38: 7f93 ldrb r3, [r2, #30] - 8008a3a: f361 0302 bfi r3, r1, #0, #3 - 8008a3e: 7793 strb r3, [r2, #30] + 80089ba: 68b9 ldr r1, [r7, #8] + 80089bc: 68f8 ldr r0, [r7, #12] + 80089be: f7ff fd6f bl 80084a0 + 80089c2: 4603 mov r3, r0 + 80089c4: f003 0307 and.w r3, r3, #7 + 80089c8: b2d9 uxtb r1, r3 + 80089ca: 687a ldr r2, [r7, #4] + 80089cc: 7f93 ldrb r3, [r2, #30] + 80089ce: f361 0302 bfi r3, r1, #0, #3 + 80089d2: 7793 strb r3, [r2, #30] #if LV_DRAW_COMPLEX draw_dsc->blend_mode = lv_obj_get_style_blend_mode(obj, part); - 8008a40: 68b9 ldr r1, [r7, #8] - 8008a42: 68f8 ldr r0, [r7, #12] - 8008a44: f7ff fdad bl 80085a2 - 8008a48: 4603 mov r3, r0 - 8008a4a: f003 0307 and.w r3, r3, #7 - 8008a4e: b2d9 uxtb r1, r3 - 8008a50: 687a ldr r2, [r7, #4] - 8008a52: 7f93 ldrb r3, [r2, #30] - 8008a54: f361 03c5 bfi r3, r1, #3, #3 - 8008a58: 7793 strb r3, [r2, #30] + 80089d4: 68b9 ldr r1, [r7, #8] + 80089d6: 68f8 ldr r0, [r7, #12] + 80089d8: f7ff fdad bl 8008536 + 80089dc: 4603 mov r3, r0 + 80089de: f003 0307 and.w r3, r3, #7 + 80089e2: b2d9 uxtb r1, r3 + 80089e4: 687a ldr r2, [r7, #4] + 80089e6: 7f93 ldrb r3, [r2, #30] + 80089e8: f361 03c5 bfi r3, r1, #3, #3 + 80089ec: 7793 strb r3, [r2, #30] #endif draw_dsc->font = lv_obj_get_style_text_font(obj, part); - 8008a5a: 68b9 ldr r1, [r7, #8] - 8008a5c: 68f8 ldr r0, [r7, #12] - 8008a5e: f7ff fd1d bl 800849c - 8008a62: 4602 mov r2, r0 - 8008a64: 687b ldr r3, [r7, #4] - 8008a66: 601a str r2, [r3, #0] + 80089ee: 68b9 ldr r1, [r7, #8] + 80089f0: 68f8 ldr r0, [r7, #12] + 80089f2: f7ff fd1d bl 8008430 + 80089f6: 4602 mov r2, r0 + 80089f8: 687b ldr r3, [r7, #4] + 80089fa: 601a str r2, [r3, #0] #if LV_USE_BIDI draw_dsc->bidi_dir = lv_obj_get_style_base_dir(obj, LV_PART_MAIN); #endif draw_dsc->align = lv_obj_get_style_text_align(obj, part); - 8008a68: 68b9 ldr r1, [r7, #8] - 8008a6a: 68f8 ldr r0, [r7, #12] - 8008a6c: f7ff fd61 bl 8008532 - 8008a70: 4603 mov r3, r0 - 8008a72: 461a mov r2, r3 - 8008a74: 687b ldr r3, [r7, #4] - 8008a76: 771a strb r2, [r3, #28] - 8008a78: e002 b.n 8008a80 + 80089fc: 68b9 ldr r1, [r7, #8] + 80089fe: 68f8 ldr r0, [r7, #12] + 8008a00: f7ff fd61 bl 80084c6 + 8008a04: 4603 mov r3, r0 + 8008a06: 461a mov r2, r3 + 8008a08: 687b ldr r3, [r7, #4] + 8008a0a: 771a strb r2, [r3, #28] + 8008a0c: e002 b.n 8008a14 if(draw_dsc->opa <= LV_OPA_MIN) return; - 8008a7a: bf00 nop - 8008a7c: e000 b.n 8008a80 + 8008a0e: bf00 nop + 8008a10: e000 b.n 8008a14 if(draw_dsc->opa <= LV_OPA_MIN) return; - 8008a7e: bf00 nop + 8008a12: bf00 nop } - 8008a80: 371c adds r7, #28 - 8008a82: 46bd mov sp, r7 - 8008a84: bd90 pop {r4, r7, pc} + 8008a14: 371c adds r7, #28 + 8008a16: 46bd mov sp, r7 + 8008a18: bd90 pop {r4, r7, pc} -08008a86 : +08008a1a : void lv_obj_init_draw_img_dsc(lv_obj_t * obj, uint32_t part, lv_draw_img_dsc_t * draw_dsc) { - 8008a86: b590 push {r4, r7, lr} - 8008a88: b087 sub sp, #28 - 8008a8a: af00 add r7, sp, #0 - 8008a8c: 60f8 str r0, [r7, #12] - 8008a8e: 60b9 str r1, [r7, #8] - 8008a90: 607a str r2, [r7, #4] + 8008a1a: b590 push {r4, r7, lr} + 8008a1c: b087 sub sp, #28 + 8008a1e: af00 add r7, sp, #0 + 8008a20: 60f8 str r0, [r7, #12] + 8008a22: 60b9 str r1, [r7, #8] + 8008a24: 607a str r2, [r7, #4] draw_dsc->opa = lv_obj_get_style_img_opa(obj, part); - 8008a92: 68b9 ldr r1, [r7, #8] - 8008a94: 68f8 ldr r0, [r7, #12] - 8008a96: f7ff fbd7 bl 8008248 - 8008a9a: 4603 mov r3, r0 - 8008a9c: 461a mov r2, r3 - 8008a9e: 687b ldr r3, [r7, #4] - 8008aa0: 72da strb r2, [r3, #11] + 8008a26: 68b9 ldr r1, [r7, #8] + 8008a28: 68f8 ldr r0, [r7, #12] + 8008a2a: f7ff fbd7 bl 80081dc + 8008a2e: 4603 mov r3, r0 + 8008a30: 461a mov r2, r3 + 8008a32: 687b ldr r3, [r7, #4] + 8008a34: 72da strb r2, [r3, #11] if(draw_dsc->opa <= LV_OPA_MIN) return; - 8008aa2: 687b ldr r3, [r7, #4] - 8008aa4: 7adb ldrb r3, [r3, #11] - 8008aa6: 2b02 cmp r3, #2 - 8008aa8: d958 bls.n 8008b5c + 8008a36: 687b ldr r3, [r7, #4] + 8008a38: 7adb ldrb r3, [r3, #11] + 8008a3a: 2b02 cmp r3, #2 + 8008a3c: d958 bls.n 8008af0 lv_opa_t opa_scale = lv_obj_get_style_opa(obj, part); - 8008aaa: 68b9 ldr r1, [r7, #8] - 8008aac: 68f8 ldr r0, [r7, #12] - 8008aae: f7ff fd65 bl 800857c - 8008ab2: 4603 mov r3, r0 - 8008ab4: 75fb strb r3, [r7, #23] + 8008a3e: 68b9 ldr r1, [r7, #8] + 8008a40: 68f8 ldr r0, [r7, #12] + 8008a42: f7ff fd65 bl 8008510 + 8008a46: 4603 mov r3, r0 + 8008a48: 75fb strb r3, [r7, #23] if(opa_scale < LV_OPA_MAX) { - 8008ab6: 7dfb ldrb r3, [r7, #23] - 8008ab8: 2bfc cmp r3, #252 ; 0xfc - 8008aba: d80c bhi.n 8008ad6 + 8008a4a: 7dfb ldrb r3, [r7, #23] + 8008a4c: 2bfc cmp r3, #252 ; 0xfc + 8008a4e: d80c bhi.n 8008a6a draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa_scale) >> 8; - 8008abc: 687b ldr r3, [r7, #4] - 8008abe: 7adb ldrb r3, [r3, #11] - 8008ac0: b29b uxth r3, r3 - 8008ac2: 7dfa ldrb r2, [r7, #23] - 8008ac4: b292 uxth r2, r2 - 8008ac6: fb02 f303 mul.w r3, r2, r3 - 8008aca: b29b uxth r3, r3 - 8008acc: 0a1b lsrs r3, r3, #8 - 8008ace: b29b uxth r3, r3 - 8008ad0: b2da uxtb r2, r3 - 8008ad2: 687b ldr r3, [r7, #4] - 8008ad4: 72da strb r2, [r3, #11] + 8008a50: 687b ldr r3, [r7, #4] + 8008a52: 7adb ldrb r3, [r3, #11] + 8008a54: b29b uxth r3, r3 + 8008a56: 7dfa ldrb r2, [r7, #23] + 8008a58: b292 uxth r2, r2 + 8008a5a: fb02 f303 mul.w r3, r2, r3 + 8008a5e: b29b uxth r3, r3 + 8008a60: 0a1b lsrs r3, r3, #8 + 8008a62: b29b uxth r3, r3 + 8008a64: b2da uxtb r2, r3 + 8008a66: 687b ldr r3, [r7, #4] + 8008a68: 72da strb r2, [r3, #11] } if(draw_dsc->opa <= LV_OPA_MIN) return; - 8008ad6: 687b ldr r3, [r7, #4] - 8008ad8: 7adb ldrb r3, [r3, #11] - 8008ada: 2b02 cmp r3, #2 - 8008adc: d940 bls.n 8008b60 + 8008a6a: 687b ldr r3, [r7, #4] + 8008a6c: 7adb ldrb r3, [r3, #11] + 8008a6e: 2b02 cmp r3, #2 + 8008a70: d940 bls.n 8008af4 draw_dsc->angle = 0; - 8008ade: 687b ldr r3, [r7, #4] - 8008ae0: 2200 movs r2, #0 - 8008ae2: 801a strh r2, [r3, #0] + 8008a72: 687b ldr r3, [r7, #4] + 8008a74: 2200 movs r2, #0 + 8008a76: 801a strh r2, [r3, #0] draw_dsc->zoom = LV_IMG_ZOOM_NONE; - 8008ae4: 687b ldr r3, [r7, #4] - 8008ae6: f44f 7280 mov.w r2, #256 ; 0x100 - 8008aea: 805a strh r2, [r3, #2] + 8008a78: 687b ldr r3, [r7, #4] + 8008a7a: f44f 7280 mov.w r2, #256 ; 0x100 + 8008a7e: 805a strh r2, [r3, #2] draw_dsc->pivot.x = lv_area_get_width(&obj->coords) / 2; - 8008aec: 68fb ldr r3, [r7, #12] - 8008aee: 3314 adds r3, #20 - 8008af0: 4618 mov r0, r3 - 8008af2: f7ff f965 bl 8007dc0 - 8008af6: 4603 mov r3, r0 - 8008af8: 0fda lsrs r2, r3, #31 - 8008afa: 4413 add r3, r2 - 8008afc: 105b asrs r3, r3, #1 - 8008afe: b21a sxth r2, r3 - 8008b00: 687b ldr r3, [r7, #4] - 8008b02: 809a strh r2, [r3, #4] + 8008a80: 68fb ldr r3, [r7, #12] + 8008a82: 3314 adds r3, #20 + 8008a84: 4618 mov r0, r3 + 8008a86: f7ff f965 bl 8007d54 + 8008a8a: 4603 mov r3, r0 + 8008a8c: 0fda lsrs r2, r3, #31 + 8008a8e: 4413 add r3, r2 + 8008a90: 105b asrs r3, r3, #1 + 8008a92: b21a sxth r2, r3 + 8008a94: 687b ldr r3, [r7, #4] + 8008a96: 809a strh r2, [r3, #4] draw_dsc->pivot.y = lv_area_get_height(&obj->coords) / 2; - 8008b04: 68fb ldr r3, [r7, #12] - 8008b06: 3314 adds r3, #20 - 8008b08: 4618 mov r0, r3 - 8008b0a: f7ff f96f bl 8007dec - 8008b0e: 4603 mov r3, r0 - 8008b10: 0fda lsrs r2, r3, #31 - 8008b12: 4413 add r3, r2 - 8008b14: 105b asrs r3, r3, #1 - 8008b16: b21a sxth r2, r3 - 8008b18: 687b ldr r3, [r7, #4] - 8008b1a: 80da strh r2, [r3, #6] + 8008a98: 68fb ldr r3, [r7, #12] + 8008a9a: 3314 adds r3, #20 + 8008a9c: 4618 mov r0, r3 + 8008a9e: f7ff f96f bl 8007d80 + 8008aa2: 4603 mov r3, r0 + 8008aa4: 0fda lsrs r2, r3, #31 + 8008aa6: 4413 add r3, r2 + 8008aa8: 105b asrs r3, r3, #1 + 8008aaa: b21a sxth r2, r3 + 8008aac: 687b ldr r3, [r7, #4] + 8008aae: 80da strh r2, [r3, #6] draw_dsc->recolor_opa = lv_obj_get_style_img_recolor_opa(obj, part); - 8008b1c: 68b9 ldr r1, [r7, #8] - 8008b1e: 68f8 ldr r0, [r7, #12] - 8008b20: f7ff fbb6 bl 8008290 - 8008b24: 4603 mov r3, r0 - 8008b26: 461a mov r2, r3 - 8008b28: 687b ldr r3, [r7, #4] - 8008b2a: 729a strb r2, [r3, #10] + 8008ab0: 68b9 ldr r1, [r7, #8] + 8008ab2: 68f8 ldr r0, [r7, #12] + 8008ab4: f7ff fbb6 bl 8008224 + 8008ab8: 4603 mov r3, r0 + 8008aba: 461a mov r2, r3 + 8008abc: 687b ldr r3, [r7, #4] + 8008abe: 729a strb r2, [r3, #10] if(draw_dsc->recolor_opa > 0) { - 8008b2c: 687b ldr r3, [r7, #4] - 8008b2e: 7a9b ldrb r3, [r3, #10] - 8008b30: 2b00 cmp r3, #0 - 8008b32: d005 beq.n 8008b40 + 8008ac0: 687b ldr r3, [r7, #4] + 8008ac2: 7a9b ldrb r3, [r3, #10] + 8008ac4: 2b00 cmp r3, #0 + 8008ac6: d005 beq.n 8008ad4 draw_dsc->recolor = lv_obj_get_style_img_recolor_filtered(obj, part); - 8008b34: 687c ldr r4, [r7, #4] - 8008b36: 68b9 ldr r1, [r7, #8] - 8008b38: 68f8 ldr r0, [r7, #12] - 8008b3a: f7ff fb97 bl 800826c - 8008b3e: 8120 strh r0, [r4, #8] + 8008ac8: 687c ldr r4, [r7, #4] + 8008aca: 68b9 ldr r1, [r7, #8] + 8008acc: 68f8 ldr r0, [r7, #12] + 8008ace: f7ff fb97 bl 8008200 + 8008ad2: 8120 strh r0, [r4, #8] } #if LV_DRAW_COMPLEX draw_dsc->blend_mode = lv_obj_get_style_blend_mode(obj, part); - 8008b40: 68b9 ldr r1, [r7, #8] - 8008b42: 68f8 ldr r0, [r7, #12] - 8008b44: f7ff fd2d bl 80085a2 - 8008b48: 4603 mov r3, r0 - 8008b4a: f003 030f and.w r3, r3, #15 - 8008b4e: b2d9 uxtb r1, r3 - 8008b50: 687a ldr r2, [r7, #4] - 8008b52: 7b13 ldrb r3, [r2, #12] - 8008b54: f361 0303 bfi r3, r1, #0, #4 - 8008b58: 7313 strb r3, [r2, #12] - 8008b5a: e002 b.n 8008b62 + 8008ad4: 68b9 ldr r1, [r7, #8] + 8008ad6: 68f8 ldr r0, [r7, #12] + 8008ad8: f7ff fd2d bl 8008536 + 8008adc: 4603 mov r3, r0 + 8008ade: f003 030f and.w r3, r3, #15 + 8008ae2: b2d9 uxtb r1, r3 + 8008ae4: 687a ldr r2, [r7, #4] + 8008ae6: 7b13 ldrb r3, [r2, #12] + 8008ae8: f361 0303 bfi r3, r1, #0, #4 + 8008aec: 7313 strb r3, [r2, #12] + 8008aee: e002 b.n 8008af6 if(draw_dsc->opa <= LV_OPA_MIN) return; - 8008b5c: bf00 nop - 8008b5e: e000 b.n 8008b62 + 8008af0: bf00 nop + 8008af2: e000 b.n 8008af6 if(draw_dsc->opa <= LV_OPA_MIN) return; - 8008b60: bf00 nop + 8008af4: bf00 nop #endif } - 8008b62: 371c adds r7, #28 - 8008b64: 46bd mov sp, r7 - 8008b66: bd90 pop {r4, r7, pc} + 8008af6: 371c adds r7, #28 + 8008af8: 46bd mov sp, r7 + 8008afa: bd90 pop {r4, r7, pc} -08008b68 : +08008afc : void lv_obj_init_draw_line_dsc(lv_obj_t * obj, uint32_t part, lv_draw_line_dsc_t * draw_dsc) { - 8008b68: b590 push {r4, r7, lr} - 8008b6a: b087 sub sp, #28 - 8008b6c: af00 add r7, sp, #0 - 8008b6e: 60f8 str r0, [r7, #12] - 8008b70: 60b9 str r1, [r7, #8] - 8008b72: 607a str r2, [r7, #4] + 8008afc: b590 push {r4, r7, lr} + 8008afe: b087 sub sp, #28 + 8008b00: af00 add r7, sp, #0 + 8008b02: 60f8 str r0, [r7, #12] + 8008b04: 60b9 str r1, [r7, #8] + 8008b06: 607a str r2, [r7, #4] draw_dsc->width = lv_obj_get_style_line_width(obj, part); - 8008b74: 68b9 ldr r1, [r7, #8] - 8008b76: 68f8 ldr r0, [r7, #12] - 8008b78: f7ff fb9c bl 80082b4 - 8008b7c: 4603 mov r3, r0 - 8008b7e: 461a mov r2, r3 - 8008b80: 687b ldr r3, [r7, #4] - 8008b82: 805a strh r2, [r3, #2] + 8008b08: 68b9 ldr r1, [r7, #8] + 8008b0a: 68f8 ldr r0, [r7, #12] + 8008b0c: f7ff fb9c bl 8008248 + 8008b10: 4603 mov r3, r0 + 8008b12: 461a mov r2, r3 + 8008b14: 687b ldr r3, [r7, #4] + 8008b16: 805a strh r2, [r3, #2] if(draw_dsc->width == 0) return; - 8008b84: 687b ldr r3, [r7, #4] - 8008b86: f9b3 3002 ldrsh.w r3, [r3, #2] - 8008b8a: 2b00 cmp r3, #0 - 8008b8c: d063 beq.n 8008c56 + 8008b18: 687b ldr r3, [r7, #4] + 8008b1a: f9b3 3002 ldrsh.w r3, [r3, #2] + 8008b1e: 2b00 cmp r3, #0 + 8008b20: d063 beq.n 8008bea draw_dsc->opa = lv_obj_get_style_line_opa(obj, part); - 8008b8e: 68b9 ldr r1, [r7, #8] - 8008b90: 68f8 ldr r0, [r7, #12] - 8008b92: f7ff fbee bl 8008372 - 8008b96: 4603 mov r3, r0 - 8008b98: 461a mov r2, r3 - 8008b9a: 687b ldr r3, [r7, #4] - 8008b9c: 721a strb r2, [r3, #8] + 8008b22: 68b9 ldr r1, [r7, #8] + 8008b24: 68f8 ldr r0, [r7, #12] + 8008b26: f7ff fbee bl 8008306 + 8008b2a: 4603 mov r3, r0 + 8008b2c: 461a mov r2, r3 + 8008b2e: 687b ldr r3, [r7, #4] + 8008b30: 721a strb r2, [r3, #8] if(draw_dsc->opa <= LV_OPA_MIN) return; - 8008b9e: 687b ldr r3, [r7, #4] - 8008ba0: 7a1b ldrb r3, [r3, #8] - 8008ba2: 2b02 cmp r3, #2 - 8008ba4: d959 bls.n 8008c5a + 8008b32: 687b ldr r3, [r7, #4] + 8008b34: 7a1b ldrb r3, [r3, #8] + 8008b36: 2b02 cmp r3, #2 + 8008b38: d959 bls.n 8008bee lv_opa_t opa = lv_obj_get_style_opa(obj, part); - 8008ba6: 68b9 ldr r1, [r7, #8] - 8008ba8: 68f8 ldr r0, [r7, #12] - 8008baa: f7ff fce7 bl 800857c - 8008bae: 4603 mov r3, r0 - 8008bb0: 75fb strb r3, [r7, #23] + 8008b3a: 68b9 ldr r1, [r7, #8] + 8008b3c: 68f8 ldr r0, [r7, #12] + 8008b3e: f7ff fce7 bl 8008510 + 8008b42: 4603 mov r3, r0 + 8008b44: 75fb strb r3, [r7, #23] if(opa < LV_OPA_MAX) { - 8008bb2: 7dfb ldrb r3, [r7, #23] - 8008bb4: 2bfc cmp r3, #252 ; 0xfc - 8008bb6: d80c bhi.n 8008bd2 + 8008b46: 7dfb ldrb r3, [r7, #23] + 8008b48: 2bfc cmp r3, #252 ; 0xfc + 8008b4a: d80c bhi.n 8008b66 draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa) >> 8; - 8008bb8: 687b ldr r3, [r7, #4] - 8008bba: 7a1b ldrb r3, [r3, #8] - 8008bbc: b29b uxth r3, r3 - 8008bbe: 7dfa ldrb r2, [r7, #23] - 8008bc0: b292 uxth r2, r2 - 8008bc2: fb02 f303 mul.w r3, r2, r3 - 8008bc6: b29b uxth r3, r3 - 8008bc8: 0a1b lsrs r3, r3, #8 - 8008bca: b29b uxth r3, r3 - 8008bcc: b2da uxtb r2, r3 - 8008bce: 687b ldr r3, [r7, #4] - 8008bd0: 721a strb r2, [r3, #8] + 8008b4c: 687b ldr r3, [r7, #4] + 8008b4e: 7a1b ldrb r3, [r3, #8] + 8008b50: b29b uxth r3, r3 + 8008b52: 7dfa ldrb r2, [r7, #23] + 8008b54: b292 uxth r2, r2 + 8008b56: fb02 f303 mul.w r3, r2, r3 + 8008b5a: b29b uxth r3, r3 + 8008b5c: 0a1b lsrs r3, r3, #8 + 8008b5e: b29b uxth r3, r3 + 8008b60: b2da uxtb r2, r3 + 8008b62: 687b ldr r3, [r7, #4] + 8008b64: 721a strb r2, [r3, #8] } if(draw_dsc->opa <= LV_OPA_MIN) return; - 8008bd2: 687b ldr r3, [r7, #4] - 8008bd4: 7a1b ldrb r3, [r3, #8] - 8008bd6: 2b02 cmp r3, #2 - 8008bd8: d941 bls.n 8008c5e + 8008b66: 687b ldr r3, [r7, #4] + 8008b68: 7a1b ldrb r3, [r3, #8] + 8008b6a: 2b02 cmp r3, #2 + 8008b6c: d941 bls.n 8008bf2 draw_dsc->color = lv_obj_get_style_line_color_filtered(obj, part); - 8008bda: 687c ldr r4, [r7, #4] - 8008bdc: 68b9 ldr r1, [r7, #8] - 8008bde: 68f8 ldr r0, [r7, #12] - 8008be0: f7ff fbb5 bl 800834e - 8008be4: 8020 strh r0, [r4, #0] + 8008b6e: 687c ldr r4, [r7, #4] + 8008b70: 68b9 ldr r1, [r7, #8] + 8008b72: 68f8 ldr r0, [r7, #12] + 8008b74: f7ff fbb5 bl 80082e2 + 8008b78: 8020 strh r0, [r4, #0] draw_dsc->dash_width = lv_obj_get_style_line_dash_width(obj, part); - 8008be6: 68b9 ldr r1, [r7, #8] - 8008be8: 68f8 ldr r0, [r7, #12] - 8008bea: f7ff fb76 bl 80082da - 8008bee: 4603 mov r3, r0 - 8008bf0: 461a mov r2, r3 - 8008bf2: 687b ldr r3, [r7, #4] - 8008bf4: 809a strh r2, [r3, #4] + 8008b7a: 68b9 ldr r1, [r7, #8] + 8008b7c: 68f8 ldr r0, [r7, #12] + 8008b7e: f7ff fb76 bl 800826e + 8008b82: 4603 mov r3, r0 + 8008b84: 461a mov r2, r3 + 8008b86: 687b ldr r3, [r7, #4] + 8008b88: 809a strh r2, [r3, #4] if(draw_dsc->dash_width) { - 8008bf6: 687b ldr r3, [r7, #4] - 8008bf8: f9b3 3004 ldrsh.w r3, [r3, #4] - 8008bfc: 2b00 cmp r3, #0 - 8008bfe: d007 beq.n 8008c10 + 8008b8a: 687b ldr r3, [r7, #4] + 8008b8c: f9b3 3004 ldrsh.w r3, [r3, #4] + 8008b90: 2b00 cmp r3, #0 + 8008b92: d007 beq.n 8008ba4 draw_dsc->dash_gap = lv_obj_get_style_line_dash_gap(obj, part); - 8008c00: 68b9 ldr r1, [r7, #8] - 8008c02: 68f8 ldr r0, [r7, #12] - 8008c04: f7ff fb7b bl 80082fe - 8008c08: 4603 mov r3, r0 - 8008c0a: 461a mov r2, r3 - 8008c0c: 687b ldr r3, [r7, #4] - 8008c0e: 80da strh r2, [r3, #6] + 8008b94: 68b9 ldr r1, [r7, #8] + 8008b96: 68f8 ldr r0, [r7, #12] + 8008b98: f7ff fb7b bl 8008292 + 8008b9c: 4603 mov r3, r0 + 8008b9e: 461a mov r2, r3 + 8008ba0: 687b ldr r3, [r7, #4] + 8008ba2: 80da strh r2, [r3, #6] } draw_dsc->round_start = lv_obj_get_style_line_rounded(obj, part); - 8008c10: 68b9 ldr r1, [r7, #8] - 8008c12: 68f8 ldr r0, [r7, #12] - 8008c14: f7ff fb85 bl 8008322 - 8008c18: 4603 mov r3, r0 - 8008c1a: 4619 mov r1, r3 - 8008c1c: 687a ldr r2, [r7, #4] - 8008c1e: 7a53 ldrb r3, [r2, #9] - 8008c20: f361 0382 bfi r3, r1, #2, #1 - 8008c24: 7253 strb r3, [r2, #9] + 8008ba4: 68b9 ldr r1, [r7, #8] + 8008ba6: 68f8 ldr r0, [r7, #12] + 8008ba8: f7ff fb85 bl 80082b6 + 8008bac: 4603 mov r3, r0 + 8008bae: 4619 mov r1, r3 + 8008bb0: 687a ldr r2, [r7, #4] + 8008bb2: 7a53 ldrb r3, [r2, #9] + 8008bb4: f361 0382 bfi r3, r1, #2, #1 + 8008bb8: 7253 strb r3, [r2, #9] draw_dsc->round_end = draw_dsc->round_start; - 8008c26: 687b ldr r3, [r7, #4] - 8008c28: 7a5b ldrb r3, [r3, #9] - 8008c2a: f3c3 0380 ubfx r3, r3, #2, #1 - 8008c2e: b2d9 uxtb r1, r3 - 8008c30: 687a ldr r2, [r7, #4] - 8008c32: 7a53 ldrb r3, [r2, #9] - 8008c34: f361 03c3 bfi r3, r1, #3, #1 - 8008c38: 7253 strb r3, [r2, #9] + 8008bba: 687b ldr r3, [r7, #4] + 8008bbc: 7a5b ldrb r3, [r3, #9] + 8008bbe: f3c3 0380 ubfx r3, r3, #2, #1 + 8008bc2: b2d9 uxtb r1, r3 + 8008bc4: 687a ldr r2, [r7, #4] + 8008bc6: 7a53 ldrb r3, [r2, #9] + 8008bc8: f361 03c3 bfi r3, r1, #3, #1 + 8008bcc: 7253 strb r3, [r2, #9] #if LV_DRAW_COMPLEX draw_dsc->blend_mode = lv_obj_get_style_blend_mode(obj, part); - 8008c3a: 68b9 ldr r1, [r7, #8] - 8008c3c: 68f8 ldr r0, [r7, #12] - 8008c3e: f7ff fcb0 bl 80085a2 - 8008c42: 4603 mov r3, r0 - 8008c44: f003 0303 and.w r3, r3, #3 - 8008c48: b2d9 uxtb r1, r3 - 8008c4a: 687a ldr r2, [r7, #4] - 8008c4c: 7a53 ldrb r3, [r2, #9] - 8008c4e: f361 0301 bfi r3, r1, #0, #2 - 8008c52: 7253 strb r3, [r2, #9] - 8008c54: e004 b.n 8008c60 + 8008bce: 68b9 ldr r1, [r7, #8] + 8008bd0: 68f8 ldr r0, [r7, #12] + 8008bd2: f7ff fcb0 bl 8008536 + 8008bd6: 4603 mov r3, r0 + 8008bd8: f003 0303 and.w r3, r3, #3 + 8008bdc: b2d9 uxtb r1, r3 + 8008bde: 687a ldr r2, [r7, #4] + 8008be0: 7a53 ldrb r3, [r2, #9] + 8008be2: f361 0301 bfi r3, r1, #0, #2 + 8008be6: 7253 strb r3, [r2, #9] + 8008be8: e004 b.n 8008bf4 if(draw_dsc->width == 0) return; - 8008c56: bf00 nop - 8008c58: e002 b.n 8008c60 + 8008bea: bf00 nop + 8008bec: e002 b.n 8008bf4 if(draw_dsc->opa <= LV_OPA_MIN) return; - 8008c5a: bf00 nop - 8008c5c: e000 b.n 8008c60 + 8008bee: bf00 nop + 8008bf0: e000 b.n 8008bf4 if(draw_dsc->opa <= LV_OPA_MIN) return; - 8008c5e: bf00 nop + 8008bf2: bf00 nop #endif } - 8008c60: 371c adds r7, #28 - 8008c62: 46bd mov sp, r7 - 8008c64: bd90 pop {r4, r7, pc} + 8008bf4: 371c adds r7, #28 + 8008bf6: 46bd mov sp, r7 + 8008bf8: bd90 pop {r4, r7, pc} -08008c66 : +08008bfa : void lv_obj_init_draw_arc_dsc(lv_obj_t * obj, uint32_t part, lv_draw_arc_dsc_t * draw_dsc) { - 8008c66: b590 push {r4, r7, lr} - 8008c68: b087 sub sp, #28 - 8008c6a: af00 add r7, sp, #0 - 8008c6c: 60f8 str r0, [r7, #12] - 8008c6e: 60b9 str r1, [r7, #8] - 8008c70: 607a str r2, [r7, #4] + 8008bfa: b590 push {r4, r7, lr} + 8008bfc: b087 sub sp, #28 + 8008bfe: af00 add r7, sp, #0 + 8008c00: 60f8 str r0, [r7, #12] + 8008c02: 60b9 str r1, [r7, #8] + 8008c04: 607a str r2, [r7, #4] draw_dsc->width = lv_obj_get_style_arc_width(obj, part); - 8008c72: 68b9 ldr r1, [r7, #8] - 8008c74: 68f8 ldr r0, [r7, #12] - 8008c76: f7ff fb8e bl 8008396 - 8008c7a: 4603 mov r3, r0 - 8008c7c: 461a mov r2, r3 - 8008c7e: 687b ldr r3, [r7, #4] - 8008c80: 805a strh r2, [r3, #2] + 8008c06: 68b9 ldr r1, [r7, #8] + 8008c08: 68f8 ldr r0, [r7, #12] + 8008c0a: f7ff fb8e bl 800832a + 8008c0e: 4603 mov r3, r0 + 8008c10: 461a mov r2, r3 + 8008c12: 687b ldr r3, [r7, #4] + 8008c14: 805a strh r2, [r3, #2] if(draw_dsc->width == 0) return; - 8008c82: 687b ldr r3, [r7, #4] - 8008c84: f9b3 3002 ldrsh.w r3, [r3, #2] - 8008c88: 2b00 cmp r3, #0 - 8008c8a: d04b beq.n 8008d24 + 8008c16: 687b ldr r3, [r7, #4] + 8008c18: f9b3 3002 ldrsh.w r3, [r3, #2] + 8008c1c: 2b00 cmp r3, #0 + 8008c1e: d04b beq.n 8008cb8 draw_dsc->opa = lv_obj_get_style_arc_opa(obj, part); - 8008c8c: 68b9 ldr r1, [r7, #8] - 8008c8e: 68f8 ldr r0, [r7, #12] - 8008c90: f7ff fbbc bl 800840c - 8008c94: 4603 mov r3, r0 - 8008c96: 461a mov r2, r3 - 8008c98: 687b ldr r3, [r7, #4] - 8008c9a: 731a strb r2, [r3, #12] + 8008c20: 68b9 ldr r1, [r7, #8] + 8008c22: 68f8 ldr r0, [r7, #12] + 8008c24: f7ff fbbc bl 80083a0 + 8008c28: 4603 mov r3, r0 + 8008c2a: 461a mov r2, r3 + 8008c2c: 687b ldr r3, [r7, #4] + 8008c2e: 731a strb r2, [r3, #12] if(draw_dsc->opa <= LV_OPA_MIN) return; - 8008c9c: 687b ldr r3, [r7, #4] - 8008c9e: 7b1b ldrb r3, [r3, #12] - 8008ca0: 2b02 cmp r3, #2 - 8008ca2: d941 bls.n 8008d28 + 8008c30: 687b ldr r3, [r7, #4] + 8008c32: 7b1b ldrb r3, [r3, #12] + 8008c34: 2b02 cmp r3, #2 + 8008c36: d941 bls.n 8008cbc lv_opa_t opa = lv_obj_get_style_opa(obj, part); - 8008ca4: 68b9 ldr r1, [r7, #8] - 8008ca6: 68f8 ldr r0, [r7, #12] - 8008ca8: f7ff fc68 bl 800857c - 8008cac: 4603 mov r3, r0 - 8008cae: 75fb strb r3, [r7, #23] + 8008c38: 68b9 ldr r1, [r7, #8] + 8008c3a: 68f8 ldr r0, [r7, #12] + 8008c3c: f7ff fc68 bl 8008510 + 8008c40: 4603 mov r3, r0 + 8008c42: 75fb strb r3, [r7, #23] if(opa < LV_OPA_MAX) { - 8008cb0: 7dfb ldrb r3, [r7, #23] - 8008cb2: 2bfc cmp r3, #252 ; 0xfc - 8008cb4: d80c bhi.n 8008cd0 + 8008c44: 7dfb ldrb r3, [r7, #23] + 8008c46: 2bfc cmp r3, #252 ; 0xfc + 8008c48: d80c bhi.n 8008c64 draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa) >> 8; - 8008cb6: 687b ldr r3, [r7, #4] - 8008cb8: 7b1b ldrb r3, [r3, #12] - 8008cba: b29b uxth r3, r3 - 8008cbc: 7dfa ldrb r2, [r7, #23] - 8008cbe: b292 uxth r2, r2 - 8008cc0: fb02 f303 mul.w r3, r2, r3 - 8008cc4: b29b uxth r3, r3 - 8008cc6: 0a1b lsrs r3, r3, #8 - 8008cc8: b29b uxth r3, r3 - 8008cca: b2da uxtb r2, r3 - 8008ccc: 687b ldr r3, [r7, #4] - 8008cce: 731a strb r2, [r3, #12] + 8008c4a: 687b ldr r3, [r7, #4] + 8008c4c: 7b1b ldrb r3, [r3, #12] + 8008c4e: b29b uxth r3, r3 + 8008c50: 7dfa ldrb r2, [r7, #23] + 8008c52: b292 uxth r2, r2 + 8008c54: fb02 f303 mul.w r3, r2, r3 + 8008c58: b29b uxth r3, r3 + 8008c5a: 0a1b lsrs r3, r3, #8 + 8008c5c: b29b uxth r3, r3 + 8008c5e: b2da uxtb r2, r3 + 8008c60: 687b ldr r3, [r7, #4] + 8008c62: 731a strb r2, [r3, #12] } if(draw_dsc->opa <= LV_OPA_MIN) return; - 8008cd0: 687b ldr r3, [r7, #4] - 8008cd2: 7b1b ldrb r3, [r3, #12] - 8008cd4: 2b02 cmp r3, #2 - 8008cd6: d929 bls.n 8008d2c + 8008c64: 687b ldr r3, [r7, #4] + 8008c66: 7b1b ldrb r3, [r3, #12] + 8008c68: 2b02 cmp r3, #2 + 8008c6a: d929 bls.n 8008cc0 draw_dsc->color = lv_obj_get_style_arc_color_filtered(obj, part); - 8008cd8: 687c ldr r4, [r7, #4] - 8008cda: 68b9 ldr r1, [r7, #8] - 8008cdc: 68f8 ldr r0, [r7, #12] - 8008cde: f7ff fb83 bl 80083e8 - 8008ce2: 8020 strh r0, [r4, #0] + 8008c6c: 687c ldr r4, [r7, #4] + 8008c6e: 68b9 ldr r1, [r7, #8] + 8008c70: 68f8 ldr r0, [r7, #12] + 8008c72: f7ff fb83 bl 800837c + 8008c76: 8020 strh r0, [r4, #0] draw_dsc->img_src = lv_obj_get_style_arc_img_src(obj, part); - 8008ce4: 68b9 ldr r1, [r7, #8] - 8008ce6: 68f8 ldr r0, [r7, #12] - 8008ce8: f7ff fba2 bl 8008430 - 8008cec: 4602 mov r2, r0 - 8008cee: 687b ldr r3, [r7, #4] - 8008cf0: 609a str r2, [r3, #8] + 8008c78: 68b9 ldr r1, [r7, #8] + 8008c7a: 68f8 ldr r0, [r7, #12] + 8008c7c: f7ff fba2 bl 80083c4 + 8008c80: 4602 mov r2, r0 + 8008c82: 687b ldr r3, [r7, #4] + 8008c84: 609a str r2, [r3, #8] draw_dsc->rounded = lv_obj_get_style_arc_rounded(obj, part); - 8008cf2: 68b9 ldr r1, [r7, #8] - 8008cf4: 68f8 ldr r0, [r7, #12] - 8008cf6: f7ff fb61 bl 80083bc - 8008cfa: 4603 mov r3, r0 - 8008cfc: 4619 mov r1, r3 - 8008cfe: 687a ldr r2, [r7, #4] - 8008d00: 7b53 ldrb r3, [r2, #13] - 8008d02: f361 0382 bfi r3, r1, #2, #1 - 8008d06: 7353 strb r3, [r2, #13] + 8008c86: 68b9 ldr r1, [r7, #8] + 8008c88: 68f8 ldr r0, [r7, #12] + 8008c8a: f7ff fb61 bl 8008350 + 8008c8e: 4603 mov r3, r0 + 8008c90: 4619 mov r1, r3 + 8008c92: 687a ldr r2, [r7, #4] + 8008c94: 7b53 ldrb r3, [r2, #13] + 8008c96: f361 0382 bfi r3, r1, #2, #1 + 8008c9a: 7353 strb r3, [r2, #13] #if LV_DRAW_COMPLEX draw_dsc->blend_mode = lv_obj_get_style_blend_mode(obj, part); - 8008d08: 68b9 ldr r1, [r7, #8] - 8008d0a: 68f8 ldr r0, [r7, #12] - 8008d0c: f7ff fc49 bl 80085a2 - 8008d10: 4603 mov r3, r0 - 8008d12: f003 0303 and.w r3, r3, #3 - 8008d16: b2d9 uxtb r1, r3 - 8008d18: 687a ldr r2, [r7, #4] - 8008d1a: 7b53 ldrb r3, [r2, #13] - 8008d1c: f361 0301 bfi r3, r1, #0, #2 - 8008d20: 7353 strb r3, [r2, #13] - 8008d22: e004 b.n 8008d2e + 8008c9c: 68b9 ldr r1, [r7, #8] + 8008c9e: 68f8 ldr r0, [r7, #12] + 8008ca0: f7ff fc49 bl 8008536 + 8008ca4: 4603 mov r3, r0 + 8008ca6: f003 0303 and.w r3, r3, #3 + 8008caa: b2d9 uxtb r1, r3 + 8008cac: 687a ldr r2, [r7, #4] + 8008cae: 7b53 ldrb r3, [r2, #13] + 8008cb0: f361 0301 bfi r3, r1, #0, #2 + 8008cb4: 7353 strb r3, [r2, #13] + 8008cb6: e004 b.n 8008cc2 if(draw_dsc->width == 0) return; - 8008d24: bf00 nop - 8008d26: e002 b.n 8008d2e + 8008cb8: bf00 nop + 8008cba: e002 b.n 8008cc2 if(draw_dsc->opa <= LV_OPA_MIN) return; - 8008d28: bf00 nop - 8008d2a: e000 b.n 8008d2e + 8008cbc: bf00 nop + 8008cbe: e000 b.n 8008cc2 if(draw_dsc->opa <= LV_OPA_MIN) return; - 8008d2c: bf00 nop + 8008cc0: bf00 nop #endif } - 8008d2e: 371c adds r7, #28 - 8008d30: 46bd mov sp, r7 - 8008d32: bd90 pop {r4, r7, pc} + 8008cc2: 371c adds r7, #28 + 8008cc4: 46bd mov sp, r7 + 8008cc6: bd90 pop {r4, r7, pc} -08008d34 : +08008cc8 : lv_coord_t lv_obj_calculate_ext_draw_size(lv_obj_t * obj, uint32_t part) { - 8008d34: b580 push {r7, lr} - 8008d36: b088 sub sp, #32 - 8008d38: af00 add r7, sp, #0 - 8008d3a: 6078 str r0, [r7, #4] - 8008d3c: 6039 str r1, [r7, #0] + 8008cc8: b580 push {r7, lr} + 8008cca: b088 sub sp, #32 + 8008ccc: af00 add r7, sp, #0 + 8008cce: 6078 str r0, [r7, #4] + 8008cd0: 6039 str r1, [r7, #0] lv_coord_t s = 0; - 8008d3e: 2300 movs r3, #0 - 8008d40: 83fb strh r3, [r7, #30] + 8008cd2: 2300 movs r3, #0 + 8008cd4: 83fb strh r3, [r7, #30] lv_coord_t sh_width = lv_obj_get_style_shadow_width(obj, part); - 8008d42: 6839 ldr r1, [r7, #0] - 8008d44: 6878 ldr r0, [r7, #4] - 8008d46: f7ff fa0e bl 8008166 - 8008d4a: 4603 mov r3, r0 - 8008d4c: 83bb strh r3, [r7, #28] + 8008cd6: 6839 ldr r1, [r7, #0] + 8008cd8: 6878 ldr r0, [r7, #4] + 8008cda: f7ff fa0e bl 80080fa + 8008cde: 4603 mov r3, r0 + 8008ce0: 83bb strh r3, [r7, #28] if(sh_width) { - 8008d4e: f9b7 301c ldrsh.w r3, [r7, #28] - 8008d52: 2b00 cmp r3, #0 - 8008d54: d044 beq.n 8008de0 + 8008ce2: f9b7 301c ldrsh.w r3, [r7, #28] + 8008ce6: 2b00 cmp r3, #0 + 8008ce8: d044 beq.n 8008d74 lv_opa_t sh_opa = lv_obj_get_style_shadow_opa(obj, part); - 8008d56: 6839 ldr r1, [r7, #0] - 8008d58: 6878 ldr r0, [r7, #4] - 8008d5a: f7ff fa62 bl 8008222 - 8008d5e: 4603 mov r3, r0 - 8008d60: 76fb strb r3, [r7, #27] + 8008cea: 6839 ldr r1, [r7, #0] + 8008cec: 6878 ldr r0, [r7, #4] + 8008cee: f7ff fa62 bl 80081b6 + 8008cf2: 4603 mov r3, r0 + 8008cf4: 76fb strb r3, [r7, #27] if(sh_opa > LV_OPA_MIN) { - 8008d62: 7efb ldrb r3, [r7, #27] - 8008d64: 2b02 cmp r3, #2 - 8008d66: d93b bls.n 8008de0 + 8008cf6: 7efb ldrb r3, [r7, #27] + 8008cf8: 2b02 cmp r3, #2 + 8008cfa: d93b bls.n 8008d74 sh_width = sh_width / 2 + 1; /*The blur adds only half width*/ - 8008d68: f9b7 301c ldrsh.w r3, [r7, #28] - 8008d6c: 0fda lsrs r2, r3, #31 - 8008d6e: 4413 add r3, r2 - 8008d70: 105b asrs r3, r3, #1 - 8008d72: b21b sxth r3, r3 - 8008d74: b29b uxth r3, r3 - 8008d76: 3301 adds r3, #1 - 8008d78: b29b uxth r3, r3 - 8008d7a: 83bb strh r3, [r7, #28] + 8008cfc: f9b7 301c ldrsh.w r3, [r7, #28] + 8008d00: 0fda lsrs r2, r3, #31 + 8008d02: 4413 add r3, r2 + 8008d04: 105b asrs r3, r3, #1 + 8008d06: b21b sxth r3, r3 + 8008d08: b29b uxth r3, r3 + 8008d0a: 3301 adds r3, #1 + 8008d0c: b29b uxth r3, r3 + 8008d0e: 83bb strh r3, [r7, #28] sh_width += lv_obj_get_style_shadow_spread(obj, part); - 8008d7c: 6839 ldr r1, [r7, #0] - 8008d7e: 6878 ldr r0, [r7, #4] - 8008d80: f7ff fa2a bl 80081d8 - 8008d84: 4603 mov r3, r0 - 8008d86: b29a uxth r2, r3 - 8008d88: 8bbb ldrh r3, [r7, #28] - 8008d8a: 4413 add r3, r2 - 8008d8c: b29b uxth r3, r3 - 8008d8e: 83bb strh r3, [r7, #28] + 8008d10: 6839 ldr r1, [r7, #0] + 8008d12: 6878 ldr r0, [r7, #4] + 8008d14: f7ff fa2a bl 800816c + 8008d18: 4603 mov r3, r0 + 8008d1a: b29a uxth r2, r3 + 8008d1c: 8bbb ldrh r3, [r7, #28] + 8008d1e: 4413 add r3, r2 + 8008d20: b29b uxth r3, r3 + 8008d22: 83bb strh r3, [r7, #28] lv_coord_t sh_ofs_x = lv_obj_get_style_shadow_ofs_x(obj, part); - 8008d90: 6839 ldr r1, [r7, #0] - 8008d92: 6878 ldr r0, [r7, #4] - 8008d94: f7ff f9fa bl 800818c - 8008d98: 4603 mov r3, r0 - 8008d9a: 833b strh r3, [r7, #24] + 8008d24: 6839 ldr r1, [r7, #0] + 8008d26: 6878 ldr r0, [r7, #4] + 8008d28: f7ff f9fa bl 8008120 + 8008d2c: 4603 mov r3, r0 + 8008d2e: 833b strh r3, [r7, #24] lv_coord_t sh_ofs_y = lv_obj_get_style_shadow_ofs_y(obj, part); - 8008d9c: 6839 ldr r1, [r7, #0] - 8008d9e: 6878 ldr r0, [r7, #4] - 8008da0: f7ff fa07 bl 80081b2 - 8008da4: 4603 mov r3, r0 - 8008da6: 82fb strh r3, [r7, #22] + 8008d30: 6839 ldr r1, [r7, #0] + 8008d32: 6878 ldr r0, [r7, #4] + 8008d34: f7ff fa07 bl 8008146 + 8008d38: 4603 mov r3, r0 + 8008d3a: 82fb strh r3, [r7, #22] sh_width += LV_MAX(LV_ABS(sh_ofs_x), LV_ABS(sh_ofs_y)); - 8008da8: f9b7 3016 ldrsh.w r3, [r7, #22] - 8008dac: 2b00 cmp r3, #0 - 8008dae: bfb8 it lt - 8008db0: 425b neglt r3, r3 - 8008db2: b29a uxth r2, r3 - 8008db4: f9b7 3018 ldrsh.w r3, [r7, #24] - 8008db8: 2b00 cmp r3, #0 - 8008dba: bfb8 it lt - 8008dbc: 425b neglt r3, r3 - 8008dbe: b29b uxth r3, r3 - 8008dc0: 4293 cmp r3, r2 - 8008dc2: bf38 it cc - 8008dc4: 4613 movcc r3, r2 - 8008dc6: b29a uxth r2, r3 - 8008dc8: 8bbb ldrh r3, [r7, #28] - 8008dca: 4413 add r3, r2 - 8008dcc: b29b uxth r3, r3 - 8008dce: 83bb strh r3, [r7, #28] + 8008d3c: f9b7 3016 ldrsh.w r3, [r7, #22] + 8008d40: 2b00 cmp r3, #0 + 8008d42: bfb8 it lt + 8008d44: 425b neglt r3, r3 + 8008d46: b29a uxth r2, r3 + 8008d48: f9b7 3018 ldrsh.w r3, [r7, #24] + 8008d4c: 2b00 cmp r3, #0 + 8008d4e: bfb8 it lt + 8008d50: 425b neglt r3, r3 + 8008d52: b29b uxth r3, r3 + 8008d54: 4293 cmp r3, r2 + 8008d56: bf38 it cc + 8008d58: 4613 movcc r3, r2 + 8008d5a: b29a uxth r2, r3 + 8008d5c: 8bbb ldrh r3, [r7, #28] + 8008d5e: 4413 add r3, r2 + 8008d60: b29b uxth r3, r3 + 8008d62: 83bb strh r3, [r7, #28] s = LV_MAX(s, sh_width); - 8008dd0: f9b7 201c ldrsh.w r2, [r7, #28] - 8008dd4: f9b7 301e ldrsh.w r3, [r7, #30] - 8008dd8: 4293 cmp r3, r2 - 8008dda: bfb8 it lt - 8008ddc: 4613 movlt r3, r2 - 8008dde: 83fb strh r3, [r7, #30] + 8008d64: f9b7 201c ldrsh.w r2, [r7, #28] + 8008d68: f9b7 301e ldrsh.w r3, [r7, #30] + 8008d6c: 4293 cmp r3, r2 + 8008d6e: bfb8 it lt + 8008d70: 4613 movlt r3, r2 + 8008d72: 83fb strh r3, [r7, #30] } } lv_coord_t outline_width = lv_obj_get_style_outline_width(obj, part); - 8008de0: 6839 ldr r1, [r7, #0] - 8008de2: 6878 ldr r0, [r7, #4] - 8008de4: f7ff f974 bl 80080d0 - 8008de8: 4603 mov r3, r0 - 8008dea: 82bb strh r3, [r7, #20] + 8008d74: 6839 ldr r1, [r7, #0] + 8008d76: 6878 ldr r0, [r7, #4] + 8008d78: f7ff f974 bl 8008064 + 8008d7c: 4603 mov r3, r0 + 8008d7e: 82bb strh r3, [r7, #20] if(outline_width) { - 8008dec: f9b7 3014 ldrsh.w r3, [r7, #20] - 8008df0: 2b00 cmp r3, #0 - 8008df2: d019 beq.n 8008e28 + 8008d80: f9b7 3014 ldrsh.w r3, [r7, #20] + 8008d84: 2b00 cmp r3, #0 + 8008d86: d019 beq.n 8008dbc lv_opa_t outline_opa = lv_obj_get_style_outline_opa(obj, part); - 8008df4: 6839 ldr r1, [r7, #0] - 8008df6: 6878 ldr r0, [r7, #4] - 8008df8: f7ff f98f bl 800811a - 8008dfc: 4603 mov r3, r0 - 8008dfe: 74fb strb r3, [r7, #19] + 8008d88: 6839 ldr r1, [r7, #0] + 8008d8a: 6878 ldr r0, [r7, #4] + 8008d8c: f7ff f98f bl 80080ae + 8008d90: 4603 mov r3, r0 + 8008d92: 74fb strb r3, [r7, #19] if(outline_opa > LV_OPA_MIN) { - 8008e00: 7cfb ldrb r3, [r7, #19] - 8008e02: 2b02 cmp r3, #2 - 8008e04: d910 bls.n 8008e28 + 8008d94: 7cfb ldrb r3, [r7, #19] + 8008d96: 2b02 cmp r3, #2 + 8008d98: d910 bls.n 8008dbc lv_coord_t outline_pad = lv_obj_get_style_outline_pad(obj, part); - 8008e06: 6839 ldr r1, [r7, #0] - 8008e08: 6878 ldr r0, [r7, #4] - 8008e0a: f7ff f999 bl 8008140 - 8008e0e: 4603 mov r3, r0 - 8008e10: 823b strh r3, [r7, #16] + 8008d9a: 6839 ldr r1, [r7, #0] + 8008d9c: 6878 ldr r0, [r7, #4] + 8008d9e: f7ff f999 bl 80080d4 + 8008da2: 4603 mov r3, r0 + 8008da4: 823b strh r3, [r7, #16] s = LV_MAX(s, outline_pad + outline_width); - 8008e12: f9b7 2010 ldrsh.w r2, [r7, #16] - 8008e16: f9b7 3014 ldrsh.w r3, [r7, #20] - 8008e1a: 441a add r2, r3 - 8008e1c: f9b7 301e ldrsh.w r3, [r7, #30] - 8008e20: 4293 cmp r3, r2 - 8008e22: bfb8 it lt - 8008e24: 4613 movlt r3, r2 - 8008e26: 83fb strh r3, [r7, #30] + 8008da6: f9b7 2010 ldrsh.w r2, [r7, #16] + 8008daa: f9b7 3014 ldrsh.w r3, [r7, #20] + 8008dae: 441a add r2, r3 + 8008db0: f9b7 301e ldrsh.w r3, [r7, #30] + 8008db4: 4293 cmp r3, r2 + 8008db6: bfb8 it lt + 8008db8: 4613 movlt r3, r2 + 8008dba: 83fb strh r3, [r7, #30] } } lv_coord_t w = lv_obj_get_style_transform_width(obj, part); - 8008e28: 6839 ldr r1, [r7, #0] - 8008e2a: 6878 ldr r0, [r7, #4] - 8008e2c: f7fe fff4 bl 8007e18 - 8008e30: 4603 mov r3, r0 - 8008e32: 81fb strh r3, [r7, #14] + 8008dbc: 6839 ldr r1, [r7, #0] + 8008dbe: 6878 ldr r0, [r7, #4] + 8008dc0: f7fe fff4 bl 8007dac + 8008dc4: 4603 mov r3, r0 + 8008dc6: 81fb strh r3, [r7, #14] lv_coord_t h = lv_obj_get_style_transform_height(obj, part); - 8008e34: 6839 ldr r1, [r7, #0] - 8008e36: 6878 ldr r0, [r7, #4] - 8008e38: f7ff f801 bl 8007e3e - 8008e3c: 4603 mov r3, r0 - 8008e3e: 81bb strh r3, [r7, #12] + 8008dc8: 6839 ldr r1, [r7, #0] + 8008dca: 6878 ldr r0, [r7, #4] + 8008dcc: f7ff f801 bl 8007dd2 + 8008dd0: 4603 mov r3, r0 + 8008dd2: 81bb strh r3, [r7, #12] lv_coord_t wh = LV_MAX(w, h); - 8008e40: f9b7 200c ldrsh.w r2, [r7, #12] - 8008e44: f9b7 300e ldrsh.w r3, [r7, #14] - 8008e48: 4293 cmp r3, r2 - 8008e4a: bfb8 it lt - 8008e4c: 4613 movlt r3, r2 - 8008e4e: 817b strh r3, [r7, #10] + 8008dd4: f9b7 200c ldrsh.w r2, [r7, #12] + 8008dd8: f9b7 300e ldrsh.w r3, [r7, #14] + 8008ddc: 4293 cmp r3, r2 + 8008dde: bfb8 it lt + 8008de0: 4613 movlt r3, r2 + 8008de2: 817b strh r3, [r7, #10] if(wh > 0) s += wh; - 8008e50: f9b7 300a ldrsh.w r3, [r7, #10] - 8008e54: 2b00 cmp r3, #0 - 8008e56: dd04 ble.n 8008e62 - 8008e58: 8bfa ldrh r2, [r7, #30] - 8008e5a: 897b ldrh r3, [r7, #10] - 8008e5c: 4413 add r3, r2 - 8008e5e: b29b uxth r3, r3 - 8008e60: 83fb strh r3, [r7, #30] + 8008de4: f9b7 300a ldrsh.w r3, [r7, #10] + 8008de8: 2b00 cmp r3, #0 + 8008dea: dd04 ble.n 8008df6 + 8008dec: 8bfa ldrh r2, [r7, #30] + 8008dee: 897b ldrh r3, [r7, #10] + 8008df0: 4413 add r3, r2 + 8008df2: b29b uxth r3, r3 + 8008df4: 83fb strh r3, [r7, #30] return s; - 8008e62: f9b7 301e ldrsh.w r3, [r7, #30] + 8008df6: f9b7 301e ldrsh.w r3, [r7, #30] } - 8008e66: 4618 mov r0, r3 - 8008e68: 3720 adds r7, #32 - 8008e6a: 46bd mov sp, r7 - 8008e6c: bd80 pop {r7, pc} + 8008dfa: 4618 mov r0, r3 + 8008dfc: 3720 adds r7, #32 + 8008dfe: 46bd mov sp, r7 + 8008e00: bd80 pop {r7, pc} -08008e6e : +08008e02 : void lv_obj_draw_dsc_init(lv_obj_draw_part_dsc_t * dsc, lv_draw_ctx_t * draw_ctx) { - 8008e6e: b580 push {r7, lr} - 8008e70: b082 sub sp, #8 - 8008e72: af00 add r7, sp, #0 - 8008e74: 6078 str r0, [r7, #4] - 8008e76: 6039 str r1, [r7, #0] + 8008e02: b580 push {r7, lr} + 8008e04: b082 sub sp, #8 + 8008e06: af00 add r7, sp, #0 + 8008e08: 6078 str r0, [r7, #4] + 8008e0a: 6039 str r1, [r7, #0] lv_memset_00(dsc, sizeof(lv_obj_draw_part_dsc_t)); - 8008e78: 2148 movs r1, #72 ; 0x48 - 8008e7a: 6878 ldr r0, [r7, #4] - 8008e7c: f02a f968 bl 8033150 + 8008e0c: 2148 movs r1, #72 ; 0x48 + 8008e0e: 6878 ldr r0, [r7, #4] + 8008e10: f02a f954 bl 80330bc dsc->draw_ctx = draw_ctx; - 8008e80: 687b ldr r3, [r7, #4] - 8008e82: 683a ldr r2, [r7, #0] - 8008e84: 601a str r2, [r3, #0] + 8008e14: 687b ldr r3, [r7, #4] + 8008e16: 683a ldr r2, [r7, #0] + 8008e18: 601a str r2, [r3, #0] } - 8008e86: bf00 nop - 8008e88: 3708 adds r7, #8 - 8008e8a: 46bd mov sp, r7 - 8008e8c: bd80 pop {r7, pc} + 8008e1a: bf00 nop + 8008e1c: 3708 adds r7, #8 + 8008e1e: 46bd mov sp, r7 + 8008e20: bd80 pop {r7, pc} -08008e8e : +08008e22 : if(dsc->class_p == class_p && dsc->type == type) return true; else return false; } void lv_obj_refresh_ext_draw_size(lv_obj_t * obj) { - 8008e8e: b580 push {r7, lr} - 8008e90: b084 sub sp, #16 - 8008e92: af00 add r7, sp, #0 - 8008e94: 6078 str r0, [r7, #4] + 8008e22: b580 push {r7, lr} + 8008e24: b084 sub sp, #16 + 8008e26: af00 add r7, sp, #0 + 8008e28: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_coord_t s_old = _lv_obj_get_ext_draw_size(obj); - 8008e96: 6878 ldr r0, [r7, #4] - 8008e98: f000 f837 bl 8008f0a <_lv_obj_get_ext_draw_size> - 8008e9c: 4603 mov r3, r0 - 8008e9e: 81fb strh r3, [r7, #14] + 8008e2a: 6878 ldr r0, [r7, #4] + 8008e2c: f000 f837 bl 8008e9e <_lv_obj_get_ext_draw_size> + 8008e30: 4603 mov r3, r0 + 8008e32: 81fb strh r3, [r7, #14] lv_coord_t s_new = 0; - 8008ea0: 2300 movs r3, #0 - 8008ea2: 81bb strh r3, [r7, #12] + 8008e34: 2300 movs r3, #0 + 8008e36: 81bb strh r3, [r7, #12] lv_event_send(obj, LV_EVENT_REFR_EXT_DRAW_SIZE, &s_new); - 8008ea4: f107 030c add.w r3, r7, #12 - 8008ea8: 461a mov r2, r3 - 8008eaa: 2113 movs r1, #19 - 8008eac: 6878 ldr r0, [r7, #4] - 8008eae: f7f9 fae7 bl 8002480 + 8008e38: f107 030c add.w r3, r7, #12 + 8008e3c: 461a mov r2, r3 + 8008e3e: 2113 movs r1, #19 + 8008e40: 6878 ldr r0, [r7, #4] + 8008e42: f7f9 fae7 bl 8002414 if(s_new != s_old) lv_obj_invalidate(obj); - 8008eb2: f9b7 300c ldrsh.w r3, [r7, #12] - 8008eb6: f9b7 200e ldrsh.w r2, [r7, #14] - 8008eba: 429a cmp r2, r3 - 8008ebc: d002 beq.n 8008ec4 - 8008ebe: 6878 ldr r0, [r7, #4] - 8008ec0: f001 fdf7 bl 800aab2 + 8008e46: f9b7 300c ldrsh.w r3, [r7, #12] + 8008e4a: f9b7 200e ldrsh.w r2, [r7, #14] + 8008e4e: 429a cmp r2, r3 + 8008e50: d002 beq.n 8008e58 + 8008e52: 6878 ldr r0, [r7, #4] + 8008e54: f001 fdf7 bl 800aa46 /*Store the result if the special attrs already allocated*/ if(obj->spec_attr) { - 8008ec4: 687b ldr r3, [r7, #4] - 8008ec6: 689b ldr r3, [r3, #8] - 8008ec8: 2b00 cmp r3, #0 - 8008eca: d005 beq.n 8008ed8 + 8008e58: 687b ldr r3, [r7, #4] + 8008e5a: 689b ldr r3, [r3, #8] + 8008e5c: 2b00 cmp r3, #0 + 8008e5e: d005 beq.n 8008e6c obj->spec_attr->ext_draw_size = s_new; - 8008ecc: 687b ldr r3, [r7, #4] - 8008ece: 689b ldr r3, [r3, #8] - 8008ed0: f9b7 200c ldrsh.w r2, [r7, #12] - 8008ed4: 82da strh r2, [r3, #22] - 8008ed6: e00b b.n 8008ef0 + 8008e60: 687b ldr r3, [r7, #4] + 8008e62: 689b ldr r3, [r3, #8] + 8008e64: f9b7 200c ldrsh.w r2, [r7, #12] + 8008e68: 82da strh r2, [r3, #22] + 8008e6a: e00b b.n 8008e84 } /*Allocate spec. attrs. only if the result is not zero. *Zero is the default value if the spec. attr. are not defined.*/ else if(s_new != 0) { - 8008ed8: f9b7 300c ldrsh.w r3, [r7, #12] - 8008edc: 2b00 cmp r3, #0 - 8008ede: d007 beq.n 8008ef0 + 8008e6c: f9b7 300c ldrsh.w r3, [r7, #12] + 8008e70: 2b00 cmp r3, #0 + 8008e72: d007 beq.n 8008e84 lv_obj_allocate_spec_attr(obj); - 8008ee0: 6878 ldr r0, [r7, #4] - 8008ee2: f7fd fca7 bl 8006834 + 8008e74: 6878 ldr r0, [r7, #4] + 8008e76: f7fd fca7 bl 80067c8 obj->spec_attr->ext_draw_size = s_new; - 8008ee6: 687b ldr r3, [r7, #4] - 8008ee8: 689b ldr r3, [r3, #8] - 8008eea: f9b7 200c ldrsh.w r2, [r7, #12] - 8008eee: 82da strh r2, [r3, #22] + 8008e7a: 687b ldr r3, [r7, #4] + 8008e7c: 689b ldr r3, [r3, #8] + 8008e7e: f9b7 200c ldrsh.w r2, [r7, #12] + 8008e82: 82da strh r2, [r3, #22] } if(s_new != s_old) lv_obj_invalidate(obj); - 8008ef0: f9b7 300c ldrsh.w r3, [r7, #12] - 8008ef4: f9b7 200e ldrsh.w r2, [r7, #14] - 8008ef8: 429a cmp r2, r3 - 8008efa: d002 beq.n 8008f02 - 8008efc: 6878 ldr r0, [r7, #4] - 8008efe: f001 fdd8 bl 800aab2 + 8008e84: f9b7 300c ldrsh.w r3, [r7, #12] + 8008e88: f9b7 200e ldrsh.w r2, [r7, #14] + 8008e8c: 429a cmp r2, r3 + 8008e8e: d002 beq.n 8008e96 + 8008e90: 6878 ldr r0, [r7, #4] + 8008e92: f001 fdd8 bl 800aa46 } - 8008f02: bf00 nop - 8008f04: 3710 adds r7, #16 - 8008f06: 46bd mov sp, r7 - 8008f08: bd80 pop {r7, pc} + 8008e96: bf00 nop + 8008e98: 3710 adds r7, #16 + 8008e9a: 46bd mov sp, r7 + 8008e9c: bd80 pop {r7, pc} -08008f0a <_lv_obj_get_ext_draw_size>: +08008e9e <_lv_obj_get_ext_draw_size>: lv_coord_t _lv_obj_get_ext_draw_size(const lv_obj_t * obj) { - 8008f0a: b480 push {r7} - 8008f0c: b083 sub sp, #12 - 8008f0e: af00 add r7, sp, #0 - 8008f10: 6078 str r0, [r7, #4] + 8008e9e: b480 push {r7} + 8008ea0: b083 sub sp, #12 + 8008ea2: af00 add r7, sp, #0 + 8008ea4: 6078 str r0, [r7, #4] if(obj->spec_attr) return obj->spec_attr->ext_draw_size; - 8008f12: 687b ldr r3, [r7, #4] - 8008f14: 689b ldr r3, [r3, #8] - 8008f16: 2b00 cmp r3, #0 - 8008f18: d004 beq.n 8008f24 <_lv_obj_get_ext_draw_size+0x1a> - 8008f1a: 687b ldr r3, [r7, #4] - 8008f1c: 689b ldr r3, [r3, #8] - 8008f1e: f9b3 3016 ldrsh.w r3, [r3, #22] - 8008f22: e000 b.n 8008f26 <_lv_obj_get_ext_draw_size+0x1c> + 8008ea6: 687b ldr r3, [r7, #4] + 8008ea8: 689b ldr r3, [r3, #8] + 8008eaa: 2b00 cmp r3, #0 + 8008eac: d004 beq.n 8008eb8 <_lv_obj_get_ext_draw_size+0x1a> + 8008eae: 687b ldr r3, [r7, #4] + 8008eb0: 689b ldr r3, [r3, #8] + 8008eb2: f9b3 3016 ldrsh.w r3, [r3, #22] + 8008eb6: e000 b.n 8008eba <_lv_obj_get_ext_draw_size+0x1c> else return 0; - 8008f24: 2300 movs r3, #0 + 8008eb8: 2300 movs r3, #0 } - 8008f26: 4618 mov r0, r3 - 8008f28: 370c adds r7, #12 - 8008f2a: 46bd mov sp, r7 - 8008f2c: bc80 pop {r7} - 8008f2e: 4770 bx lr + 8008eba: 4618 mov r0, r3 + 8008ebc: 370c adds r7, #12 + 8008ebe: 46bd mov sp, r7 + 8008ec0: bc80 pop {r7} + 8008ec2: 4770 bx lr -08008f30 : +08008ec4 : { - 8008f30: b480 push {r7} - 8008f32: b083 sub sp, #12 - 8008f34: af00 add r7, sp, #0 - 8008f36: 6078 str r0, [r7, #4] - 8008f38: 6039 str r1, [r7, #0] + 8008ec4: b480 push {r7} + 8008ec6: b083 sub sp, #12 + 8008ec8: af00 add r7, sp, #0 + 8008eca: 6078 str r0, [r7, #4] + 8008ecc: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 8008f3a: 683b ldr r3, [r7, #0] - 8008f3c: f9b3 2000 ldrsh.w r2, [r3] - 8008f40: 687b ldr r3, [r7, #4] - 8008f42: 801a strh r2, [r3, #0] + 8008ece: 683b ldr r3, [r7, #0] + 8008ed0: f9b3 2000 ldrsh.w r2, [r3] + 8008ed4: 687b ldr r3, [r7, #4] + 8008ed6: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 8008f44: 683b ldr r3, [r7, #0] - 8008f46: f9b3 2002 ldrsh.w r2, [r3, #2] - 8008f4a: 687b ldr r3, [r7, #4] - 8008f4c: 805a strh r2, [r3, #2] + 8008ed8: 683b ldr r3, [r7, #0] + 8008eda: f9b3 2002 ldrsh.w r2, [r3, #2] + 8008ede: 687b ldr r3, [r7, #4] + 8008ee0: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 8008f4e: 683b ldr r3, [r7, #0] - 8008f50: f9b3 2004 ldrsh.w r2, [r3, #4] - 8008f54: 687b ldr r3, [r7, #4] - 8008f56: 809a strh r2, [r3, #4] + 8008ee2: 683b ldr r3, [r7, #0] + 8008ee4: f9b3 2004 ldrsh.w r2, [r3, #4] + 8008ee8: 687b ldr r3, [r7, #4] + 8008eea: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 8008f58: 683b ldr r3, [r7, #0] - 8008f5a: f9b3 2006 ldrsh.w r2, [r3, #6] - 8008f5e: 687b ldr r3, [r7, #4] - 8008f60: 80da strh r2, [r3, #6] + 8008eec: 683b ldr r3, [r7, #0] + 8008eee: f9b3 2006 ldrsh.w r2, [r3, #6] + 8008ef2: 687b ldr r3, [r7, #4] + 8008ef4: 80da strh r2, [r3, #6] } - 8008f62: bf00 nop - 8008f64: 370c adds r7, #12 - 8008f66: 46bd mov sp, r7 - 8008f68: bc80 pop {r7} - 8008f6a: 4770 bx lr + 8008ef6: bf00 nop + 8008ef8: 370c adds r7, #12 + 8008efa: 46bd mov sp, r7 + 8008efc: bc80 pop {r7} + 8008efe: 4770 bx lr -08008f6c : +08008f00 : { - 8008f6c: b480 push {r7} - 8008f6e: b083 sub sp, #12 - 8008f70: af00 add r7, sp, #0 - 8008f72: 6078 str r0, [r7, #4] + 8008f00: b480 push {r7} + 8008f02: b083 sub sp, #12 + 8008f04: af00 add r7, sp, #0 + 8008f06: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 8008f74: 687b ldr r3, [r7, #4] - 8008f76: f9b3 3004 ldrsh.w r3, [r3, #4] - 8008f7a: b29a uxth r2, r3 - 8008f7c: 687b ldr r3, [r7, #4] - 8008f7e: f9b3 3000 ldrsh.w r3, [r3] - 8008f82: b29b uxth r3, r3 - 8008f84: 1ad3 subs r3, r2, r3 - 8008f86: b29b uxth r3, r3 - 8008f88: 3301 adds r3, #1 - 8008f8a: b29b uxth r3, r3 - 8008f8c: b21b sxth r3, r3 + 8008f08: 687b ldr r3, [r7, #4] + 8008f0a: f9b3 3004 ldrsh.w r3, [r3, #4] + 8008f0e: b29a uxth r2, r3 + 8008f10: 687b ldr r3, [r7, #4] + 8008f12: f9b3 3000 ldrsh.w r3, [r3] + 8008f16: b29b uxth r3, r3 + 8008f18: 1ad3 subs r3, r2, r3 + 8008f1a: b29b uxth r3, r3 + 8008f1c: 3301 adds r3, #1 + 8008f1e: b29b uxth r3, r3 + 8008f20: b21b sxth r3, r3 } - 8008f8e: 4618 mov r0, r3 - 8008f90: 370c adds r7, #12 - 8008f92: 46bd mov sp, r7 - 8008f94: bc80 pop {r7} - 8008f96: 4770 bx lr + 8008f22: 4618 mov r0, r3 + 8008f24: 370c adds r7, #12 + 8008f26: 46bd mov sp, r7 + 8008f28: bc80 pop {r7} + 8008f2a: 4770 bx lr -08008f98 : +08008f2c : { - 8008f98: b480 push {r7} - 8008f9a: b083 sub sp, #12 - 8008f9c: af00 add r7, sp, #0 - 8008f9e: 6078 str r0, [r7, #4] + 8008f2c: b480 push {r7} + 8008f2e: b083 sub sp, #12 + 8008f30: af00 add r7, sp, #0 + 8008f32: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 8008fa0: 687b ldr r3, [r7, #4] - 8008fa2: f9b3 3006 ldrsh.w r3, [r3, #6] - 8008fa6: b29a uxth r2, r3 - 8008fa8: 687b ldr r3, [r7, #4] - 8008faa: f9b3 3002 ldrsh.w r3, [r3, #2] - 8008fae: b29b uxth r3, r3 - 8008fb0: 1ad3 subs r3, r2, r3 - 8008fb2: b29b uxth r3, r3 - 8008fb4: 3301 adds r3, #1 - 8008fb6: b29b uxth r3, r3 - 8008fb8: b21b sxth r3, r3 + 8008f34: 687b ldr r3, [r7, #4] + 8008f36: f9b3 3006 ldrsh.w r3, [r3, #6] + 8008f3a: b29a uxth r2, r3 + 8008f3c: 687b ldr r3, [r7, #4] + 8008f3e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8008f42: b29b uxth r3, r3 + 8008f44: 1ad3 subs r3, r2, r3 + 8008f46: b29b uxth r3, r3 + 8008f48: 3301 adds r3, #1 + 8008f4a: b29b uxth r3, r3 + 8008f4c: b21b sxth r3, r3 } - 8008fba: 4618 mov r0, r3 - 8008fbc: 370c adds r7, #12 - 8008fbe: 46bd mov sp, r7 - 8008fc0: bc80 pop {r7} - 8008fc2: 4770 bx lr + 8008f4e: 4618 mov r0, r3 + 8008f50: 370c adds r7, #12 + 8008f52: 46bd mov sp, r7 + 8008f54: bc80 pop {r7} + 8008f56: 4770 bx lr -08008fc4 : +08008f58 : { - 8008fc4: b580 push {r7, lr} - 8008fc6: b084 sub sp, #16 - 8008fc8: af00 add r7, sp, #0 - 8008fca: 6078 str r0, [r7, #4] - 8008fcc: 6039 str r1, [r7, #0] + 8008f58: b580 push {r7, lr} + 8008f5a: b084 sub sp, #16 + 8008f5c: af00 add r7, sp, #0 + 8008f5e: 6078 str r0, [r7, #4] + 8008f60: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_WIDTH); - 8008fce: f241 0201 movw r2, #4097 ; 0x1001 - 8008fd2: 6839 ldr r1, [r7, #0] - 8008fd4: 6878 ldr r0, [r7, #4] - 8008fd6: f004 feeb bl 800ddb0 - 8008fda: 4603 mov r3, r0 - 8008fdc: 60fb str r3, [r7, #12] + 8008f62: f241 0201 movw r2, #4097 ; 0x1001 + 8008f66: 6839 ldr r1, [r7, #0] + 8008f68: 6878 ldr r0, [r7, #4] + 8008f6a: f004 feeb bl 800dd44 + 8008f6e: 4603 mov r3, r0 + 8008f70: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8008fde: 68fb ldr r3, [r7, #12] - 8008fe0: b21b sxth r3, r3 + 8008f72: 68fb ldr r3, [r7, #12] + 8008f74: b21b sxth r3, r3 } - 8008fe2: 4618 mov r0, r3 - 8008fe4: 3710 adds r7, #16 - 8008fe6: 46bd mov sp, r7 - 8008fe8: bd80 pop {r7, pc} + 8008f76: 4618 mov r0, r3 + 8008f78: 3710 adds r7, #16 + 8008f7a: 46bd mov sp, r7 + 8008f7c: bd80 pop {r7, pc} -08008fea : +08008f7e : { - 8008fea: b580 push {r7, lr} - 8008fec: b084 sub sp, #16 - 8008fee: af00 add r7, sp, #0 - 8008ff0: 6078 str r0, [r7, #4] - 8008ff2: 6039 str r1, [r7, #0] + 8008f7e: b580 push {r7, lr} + 8008f80: b084 sub sp, #16 + 8008f82: af00 add r7, sp, #0 + 8008f84: 6078 str r0, [r7, #4] + 8008f86: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MIN_WIDTH); - 8008ff4: f241 0202 movw r2, #4098 ; 0x1002 - 8008ff8: 6839 ldr r1, [r7, #0] - 8008ffa: 6878 ldr r0, [r7, #4] - 8008ffc: f004 fed8 bl 800ddb0 - 8009000: 4603 mov r3, r0 - 8009002: 60fb str r3, [r7, #12] + 8008f88: f241 0202 movw r2, #4098 ; 0x1002 + 8008f8c: 6839 ldr r1, [r7, #0] + 8008f8e: 6878 ldr r0, [r7, #4] + 8008f90: f004 fed8 bl 800dd44 + 8008f94: 4603 mov r3, r0 + 8008f96: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8009004: 68fb ldr r3, [r7, #12] - 8009006: b21b sxth r3, r3 + 8008f98: 68fb ldr r3, [r7, #12] + 8008f9a: b21b sxth r3, r3 } - 8009008: 4618 mov r0, r3 - 800900a: 3710 adds r7, #16 - 800900c: 46bd mov sp, r7 - 800900e: bd80 pop {r7, pc} + 8008f9c: 4618 mov r0, r3 + 8008f9e: 3710 adds r7, #16 + 8008fa0: 46bd mov sp, r7 + 8008fa2: bd80 pop {r7, pc} -08009010 : +08008fa4 : { - 8009010: b580 push {r7, lr} - 8009012: b084 sub sp, #16 - 8009014: af00 add r7, sp, #0 - 8009016: 6078 str r0, [r7, #4] - 8009018: 6039 str r1, [r7, #0] + 8008fa4: b580 push {r7, lr} + 8008fa6: b084 sub sp, #16 + 8008fa8: af00 add r7, sp, #0 + 8008faa: 6078 str r0, [r7, #4] + 8008fac: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MAX_WIDTH); - 800901a: f241 0203 movw r2, #4099 ; 0x1003 - 800901e: 6839 ldr r1, [r7, #0] - 8009020: 6878 ldr r0, [r7, #4] - 8009022: f004 fec5 bl 800ddb0 - 8009026: 4603 mov r3, r0 - 8009028: 60fb str r3, [r7, #12] + 8008fae: f241 0203 movw r2, #4099 ; 0x1003 + 8008fb2: 6839 ldr r1, [r7, #0] + 8008fb4: 6878 ldr r0, [r7, #4] + 8008fb6: f004 fec5 bl 800dd44 + 8008fba: 4603 mov r3, r0 + 8008fbc: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 800902a: 68fb ldr r3, [r7, #12] - 800902c: b21b sxth r3, r3 + 8008fbe: 68fb ldr r3, [r7, #12] + 8008fc0: b21b sxth r3, r3 } - 800902e: 4618 mov r0, r3 - 8009030: 3710 adds r7, #16 - 8009032: 46bd mov sp, r7 - 8009034: bd80 pop {r7, pc} + 8008fc2: 4618 mov r0, r3 + 8008fc4: 3710 adds r7, #16 + 8008fc6: 46bd mov sp, r7 + 8008fc8: bd80 pop {r7, pc} -08009036 : +08008fca : { - 8009036: b580 push {r7, lr} - 8009038: b084 sub sp, #16 - 800903a: af00 add r7, sp, #0 - 800903c: 6078 str r0, [r7, #4] - 800903e: 6039 str r1, [r7, #0] + 8008fca: b580 push {r7, lr} + 8008fcc: b084 sub sp, #16 + 8008fce: af00 add r7, sp, #0 + 8008fd0: 6078 str r0, [r7, #4] + 8008fd2: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_HEIGHT); - 8009040: f241 0204 movw r2, #4100 ; 0x1004 - 8009044: 6839 ldr r1, [r7, #0] - 8009046: 6878 ldr r0, [r7, #4] - 8009048: f004 feb2 bl 800ddb0 - 800904c: 4603 mov r3, r0 - 800904e: 60fb str r3, [r7, #12] + 8008fd4: f241 0204 movw r2, #4100 ; 0x1004 + 8008fd8: 6839 ldr r1, [r7, #0] + 8008fda: 6878 ldr r0, [r7, #4] + 8008fdc: f004 feb2 bl 800dd44 + 8008fe0: 4603 mov r3, r0 + 8008fe2: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8009050: 68fb ldr r3, [r7, #12] - 8009052: b21b sxth r3, r3 + 8008fe4: 68fb ldr r3, [r7, #12] + 8008fe6: b21b sxth r3, r3 } - 8009054: 4618 mov r0, r3 - 8009056: 3710 adds r7, #16 - 8009058: 46bd mov sp, r7 - 800905a: bd80 pop {r7, pc} + 8008fe8: 4618 mov r0, r3 + 8008fea: 3710 adds r7, #16 + 8008fec: 46bd mov sp, r7 + 8008fee: bd80 pop {r7, pc} -0800905c : +08008ff0 : { - 800905c: b580 push {r7, lr} - 800905e: b084 sub sp, #16 - 8009060: af00 add r7, sp, #0 - 8009062: 6078 str r0, [r7, #4] - 8009064: 6039 str r1, [r7, #0] + 8008ff0: b580 push {r7, lr} + 8008ff2: b084 sub sp, #16 + 8008ff4: af00 add r7, sp, #0 + 8008ff6: 6078 str r0, [r7, #4] + 8008ff8: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MIN_HEIGHT); - 8009066: f241 0205 movw r2, #4101 ; 0x1005 - 800906a: 6839 ldr r1, [r7, #0] - 800906c: 6878 ldr r0, [r7, #4] - 800906e: f004 fe9f bl 800ddb0 - 8009072: 4603 mov r3, r0 - 8009074: 60fb str r3, [r7, #12] + 8008ffa: f241 0205 movw r2, #4101 ; 0x1005 + 8008ffe: 6839 ldr r1, [r7, #0] + 8009000: 6878 ldr r0, [r7, #4] + 8009002: f004 fe9f bl 800dd44 + 8009006: 4603 mov r3, r0 + 8009008: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8009076: 68fb ldr r3, [r7, #12] - 8009078: b21b sxth r3, r3 + 800900a: 68fb ldr r3, [r7, #12] + 800900c: b21b sxth r3, r3 } - 800907a: 4618 mov r0, r3 - 800907c: 3710 adds r7, #16 - 800907e: 46bd mov sp, r7 - 8009080: bd80 pop {r7, pc} + 800900e: 4618 mov r0, r3 + 8009010: 3710 adds r7, #16 + 8009012: 46bd mov sp, r7 + 8009014: bd80 pop {r7, pc} -08009082 : +08009016 : { - 8009082: b580 push {r7, lr} - 8009084: b084 sub sp, #16 - 8009086: af00 add r7, sp, #0 - 8009088: 6078 str r0, [r7, #4] - 800908a: 6039 str r1, [r7, #0] + 8009016: b580 push {r7, lr} + 8009018: b084 sub sp, #16 + 800901a: af00 add r7, sp, #0 + 800901c: 6078 str r0, [r7, #4] + 800901e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MAX_HEIGHT); - 800908c: f241 0206 movw r2, #4102 ; 0x1006 - 8009090: 6839 ldr r1, [r7, #0] - 8009092: 6878 ldr r0, [r7, #4] - 8009094: f004 fe8c bl 800ddb0 - 8009098: 4603 mov r3, r0 - 800909a: 60fb str r3, [r7, #12] + 8009020: f241 0206 movw r2, #4102 ; 0x1006 + 8009024: 6839 ldr r1, [r7, #0] + 8009026: 6878 ldr r0, [r7, #4] + 8009028: f004 fe8c bl 800dd44 + 800902c: 4603 mov r3, r0 + 800902e: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 800909c: 68fb ldr r3, [r7, #12] - 800909e: b21b sxth r3, r3 + 8009030: 68fb ldr r3, [r7, #12] + 8009032: b21b sxth r3, r3 } - 80090a0: 4618 mov r0, r3 - 80090a2: 3710 adds r7, #16 - 80090a4: 46bd mov sp, r7 - 80090a6: bd80 pop {r7, pc} + 8009034: 4618 mov r0, r3 + 8009036: 3710 adds r7, #16 + 8009038: 46bd mov sp, r7 + 800903a: bd80 pop {r7, pc} -080090a8 : +0800903c : { - 80090a8: b580 push {r7, lr} - 80090aa: b084 sub sp, #16 - 80090ac: af00 add r7, sp, #0 - 80090ae: 6078 str r0, [r7, #4] - 80090b0: 6039 str r1, [r7, #0] + 800903c: b580 push {r7, lr} + 800903e: b084 sub sp, #16 + 8009040: af00 add r7, sp, #0 + 8009042: 6078 str r0, [r7, #4] + 8009044: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_X); - 80090b2: f241 0207 movw r2, #4103 ; 0x1007 - 80090b6: 6839 ldr r1, [r7, #0] - 80090b8: 6878 ldr r0, [r7, #4] - 80090ba: f004 fe79 bl 800ddb0 - 80090be: 4603 mov r3, r0 - 80090c0: 60fb str r3, [r7, #12] + 8009046: f241 0207 movw r2, #4103 ; 0x1007 + 800904a: 6839 ldr r1, [r7, #0] + 800904c: 6878 ldr r0, [r7, #4] + 800904e: f004 fe79 bl 800dd44 + 8009052: 4603 mov r3, r0 + 8009054: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80090c2: 68fb ldr r3, [r7, #12] - 80090c4: b21b sxth r3, r3 + 8009056: 68fb ldr r3, [r7, #12] + 8009058: b21b sxth r3, r3 } - 80090c6: 4618 mov r0, r3 - 80090c8: 3710 adds r7, #16 - 80090ca: 46bd mov sp, r7 - 80090cc: bd80 pop {r7, pc} + 800905a: 4618 mov r0, r3 + 800905c: 3710 adds r7, #16 + 800905e: 46bd mov sp, r7 + 8009060: bd80 pop {r7, pc} -080090ce : +08009062 : { - 80090ce: b580 push {r7, lr} - 80090d0: b084 sub sp, #16 - 80090d2: af00 add r7, sp, #0 - 80090d4: 6078 str r0, [r7, #4] - 80090d6: 6039 str r1, [r7, #0] + 8009062: b580 push {r7, lr} + 8009064: b084 sub sp, #16 + 8009066: af00 add r7, sp, #0 + 8009068: 6078 str r0, [r7, #4] + 800906a: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_Y); - 80090d8: f241 0208 movw r2, #4104 ; 0x1008 - 80090dc: 6839 ldr r1, [r7, #0] - 80090de: 6878 ldr r0, [r7, #4] - 80090e0: f004 fe66 bl 800ddb0 - 80090e4: 4603 mov r3, r0 - 80090e6: 60fb str r3, [r7, #12] + 800906c: f241 0208 movw r2, #4104 ; 0x1008 + 8009070: 6839 ldr r1, [r7, #0] + 8009072: 6878 ldr r0, [r7, #4] + 8009074: f004 fe66 bl 800dd44 + 8009078: 4603 mov r3, r0 + 800907a: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80090e8: 68fb ldr r3, [r7, #12] - 80090ea: b21b sxth r3, r3 + 800907c: 68fb ldr r3, [r7, #12] + 800907e: b21b sxth r3, r3 } - 80090ec: 4618 mov r0, r3 - 80090ee: 3710 adds r7, #16 - 80090f0: 46bd mov sp, r7 - 80090f2: bd80 pop {r7, pc} + 8009080: 4618 mov r0, r3 + 8009082: 3710 adds r7, #16 + 8009084: 46bd mov sp, r7 + 8009086: bd80 pop {r7, pc} -080090f4 : +08009088 : { - 80090f4: b580 push {r7, lr} - 80090f6: b084 sub sp, #16 - 80090f8: af00 add r7, sp, #0 - 80090fa: 6078 str r0, [r7, #4] - 80090fc: 6039 str r1, [r7, #0] + 8009088: b580 push {r7, lr} + 800908a: b084 sub sp, #16 + 800908c: af00 add r7, sp, #0 + 800908e: 6078 str r0, [r7, #4] + 8009090: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ALIGN); - 80090fe: f241 0209 movw r2, #4105 ; 0x1009 - 8009102: 6839 ldr r1, [r7, #0] - 8009104: 6878 ldr r0, [r7, #4] - 8009106: f004 fe53 bl 800ddb0 - 800910a: 4603 mov r3, r0 - 800910c: 60fb str r3, [r7, #12] + 8009092: f241 0209 movw r2, #4105 ; 0x1009 + 8009096: 6839 ldr r1, [r7, #0] + 8009098: 6878 ldr r0, [r7, #4] + 800909a: f004 fe53 bl 800dd44 + 800909e: 4603 mov r3, r0 + 80090a0: 60fb str r3, [r7, #12] return (lv_align_t)v.num; - 800910e: 68fb ldr r3, [r7, #12] - 8009110: b2db uxtb r3, r3 + 80090a2: 68fb ldr r3, [r7, #12] + 80090a4: b2db uxtb r3, r3 } - 8009112: 4618 mov r0, r3 - 8009114: 3710 adds r7, #16 - 8009116: 46bd mov sp, r7 - 8009118: bd80 pop {r7, pc} + 80090a6: 4618 mov r0, r3 + 80090a8: 3710 adds r7, #16 + 80090aa: 46bd mov sp, r7 + 80090ac: bd80 pop {r7, pc} -0800911a : +080090ae : { - 800911a: b580 push {r7, lr} - 800911c: b084 sub sp, #16 - 800911e: af00 add r7, sp, #0 - 8009120: 6078 str r0, [r7, #4] - 8009122: 6039 str r1, [r7, #0] + 80090ae: b580 push {r7, lr} + 80090b0: b084 sub sp, #16 + 80090b2: af00 add r7, sp, #0 + 80090b4: 6078 str r0, [r7, #4] + 80090b6: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSLATE_X); - 8009124: f243 020c movw r2, #12300 ; 0x300c - 8009128: 6839 ldr r1, [r7, #0] - 800912a: 6878 ldr r0, [r7, #4] - 800912c: f004 fe40 bl 800ddb0 - 8009130: 4603 mov r3, r0 - 8009132: 60fb str r3, [r7, #12] + 80090b8: f243 020c movw r2, #12300 ; 0x300c + 80090bc: 6839 ldr r1, [r7, #0] + 80090be: 6878 ldr r0, [r7, #4] + 80090c0: f004 fe40 bl 800dd44 + 80090c4: 4603 mov r3, r0 + 80090c6: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8009134: 68fb ldr r3, [r7, #12] - 8009136: b21b sxth r3, r3 + 80090c8: 68fb ldr r3, [r7, #12] + 80090ca: b21b sxth r3, r3 } - 8009138: 4618 mov r0, r3 - 800913a: 3710 adds r7, #16 - 800913c: 46bd mov sp, r7 - 800913e: bd80 pop {r7, pc} + 80090cc: 4618 mov r0, r3 + 80090ce: 3710 adds r7, #16 + 80090d0: 46bd mov sp, r7 + 80090d2: bd80 pop {r7, pc} -08009140 : +080090d4 : { - 8009140: b580 push {r7, lr} - 8009142: b084 sub sp, #16 - 8009144: af00 add r7, sp, #0 - 8009146: 6078 str r0, [r7, #4] - 8009148: 6039 str r1, [r7, #0] + 80090d4: b580 push {r7, lr} + 80090d6: b084 sub sp, #16 + 80090d8: af00 add r7, sp, #0 + 80090da: 6078 str r0, [r7, #4] + 80090dc: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSLATE_Y); - 800914a: f243 020d movw r2, #12301 ; 0x300d - 800914e: 6839 ldr r1, [r7, #0] - 8009150: 6878 ldr r0, [r7, #4] - 8009152: f004 fe2d bl 800ddb0 - 8009156: 4603 mov r3, r0 - 8009158: 60fb str r3, [r7, #12] + 80090de: f243 020d movw r2, #12301 ; 0x300d + 80090e2: 6839 ldr r1, [r7, #0] + 80090e4: 6878 ldr r0, [r7, #4] + 80090e6: f004 fe2d bl 800dd44 + 80090ea: 4603 mov r3, r0 + 80090ec: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 800915a: 68fb ldr r3, [r7, #12] - 800915c: b21b sxth r3, r3 + 80090ee: 68fb ldr r3, [r7, #12] + 80090f0: b21b sxth r3, r3 } - 800915e: 4618 mov r0, r3 - 8009160: 3710 adds r7, #16 - 8009162: 46bd mov sp, r7 - 8009164: bd80 pop {r7, pc} + 80090f2: 4618 mov r0, r3 + 80090f4: 3710 adds r7, #16 + 80090f6: 46bd mov sp, r7 + 80090f8: bd80 pop {r7, pc} -08009166 : +080090fa : { - 8009166: b580 push {r7, lr} - 8009168: b084 sub sp, #16 - 800916a: af00 add r7, sp, #0 - 800916c: 6078 str r0, [r7, #4] - 800916e: 6039 str r1, [r7, #0] + 80090fa: b580 push {r7, lr} + 80090fc: b084 sub sp, #16 + 80090fe: af00 add r7, sp, #0 + 8009100: 6078 str r0, [r7, #4] + 8009102: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 8009170: f641 0210 movw r2, #6160 ; 0x1810 - 8009174: 6839 ldr r1, [r7, #0] - 8009176: 6878 ldr r0, [r7, #4] - 8009178: f004 fe1a bl 800ddb0 - 800917c: 4603 mov r3, r0 - 800917e: 60fb str r3, [r7, #12] + 8009104: f641 0210 movw r2, #6160 ; 0x1810 + 8009108: 6839 ldr r1, [r7, #0] + 800910a: 6878 ldr r0, [r7, #4] + 800910c: f004 fe1a bl 800dd44 + 8009110: 4603 mov r3, r0 + 8009112: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8009180: 68fb ldr r3, [r7, #12] - 8009182: b21b sxth r3, r3 + 8009114: 68fb ldr r3, [r7, #12] + 8009116: b21b sxth r3, r3 } - 8009184: 4618 mov r0, r3 - 8009186: 3710 adds r7, #16 - 8009188: 46bd mov sp, r7 - 800918a: bd80 pop {r7, pc} + 8009118: 4618 mov r0, r3 + 800911a: 3710 adds r7, #16 + 800911c: 46bd mov sp, r7 + 800911e: bd80 pop {r7, pc} -0800918c : +08009120 : { - 800918c: b580 push {r7, lr} - 800918e: b084 sub sp, #16 - 8009190: af00 add r7, sp, #0 - 8009192: 6078 str r0, [r7, #4] - 8009194: 6039 str r1, [r7, #0] + 8009120: b580 push {r7, lr} + 8009122: b084 sub sp, #16 + 8009124: af00 add r7, sp, #0 + 8009126: 6078 str r0, [r7, #4] + 8009128: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); - 8009196: f641 0211 movw r2, #6161 ; 0x1811 - 800919a: 6839 ldr r1, [r7, #0] - 800919c: 6878 ldr r0, [r7, #4] - 800919e: f004 fe07 bl 800ddb0 - 80091a2: 4603 mov r3, r0 - 80091a4: 60fb str r3, [r7, #12] + 800912a: f641 0211 movw r2, #6161 ; 0x1811 + 800912e: 6839 ldr r1, [r7, #0] + 8009130: 6878 ldr r0, [r7, #4] + 8009132: f004 fe07 bl 800dd44 + 8009136: 4603 mov r3, r0 + 8009138: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80091a6: 68fb ldr r3, [r7, #12] - 80091a8: b21b sxth r3, r3 + 800913a: 68fb ldr r3, [r7, #12] + 800913c: b21b sxth r3, r3 } - 80091aa: 4618 mov r0, r3 - 80091ac: 3710 adds r7, #16 - 80091ae: 46bd mov sp, r7 - 80091b0: bd80 pop {r7, pc} + 800913e: 4618 mov r0, r3 + 8009140: 3710 adds r7, #16 + 8009142: 46bd mov sp, r7 + 8009144: bd80 pop {r7, pc} -080091b2 : +08009146 : { - 80091b2: b580 push {r7, lr} - 80091b4: b084 sub sp, #16 - 80091b6: af00 add r7, sp, #0 - 80091b8: 6078 str r0, [r7, #4] - 80091ba: 6039 str r1, [r7, #0] + 8009146: b580 push {r7, lr} + 8009148: b084 sub sp, #16 + 800914a: af00 add r7, sp, #0 + 800914c: 6078 str r0, [r7, #4] + 800914e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 80091bc: f641 0212 movw r2, #6162 ; 0x1812 - 80091c0: 6839 ldr r1, [r7, #0] - 80091c2: 6878 ldr r0, [r7, #4] - 80091c4: f004 fdf4 bl 800ddb0 - 80091c8: 4603 mov r3, r0 - 80091ca: 60fb str r3, [r7, #12] + 8009150: f641 0212 movw r2, #6162 ; 0x1812 + 8009154: 6839 ldr r1, [r7, #0] + 8009156: 6878 ldr r0, [r7, #4] + 8009158: f004 fdf4 bl 800dd44 + 800915c: 4603 mov r3, r0 + 800915e: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80091cc: 68fb ldr r3, [r7, #12] - 80091ce: b21b sxth r3, r3 + 8009160: 68fb ldr r3, [r7, #12] + 8009162: b21b sxth r3, r3 } - 80091d0: 4618 mov r0, r3 - 80091d2: 3710 adds r7, #16 - 80091d4: 46bd mov sp, r7 - 80091d6: bd80 pop {r7, pc} + 8009164: 4618 mov r0, r3 + 8009166: 3710 adds r7, #16 + 8009168: 46bd mov sp, r7 + 800916a: bd80 pop {r7, pc} -080091d8 : +0800916c : { - 80091d8: b580 push {r7, lr} - 80091da: b084 sub sp, #16 - 80091dc: af00 add r7, sp, #0 - 80091de: 6078 str r0, [r7, #4] - 80091e0: 6039 str r1, [r7, #0] + 800916c: b580 push {r7, lr} + 800916e: b084 sub sp, #16 + 8009170: af00 add r7, sp, #0 + 8009172: 6078 str r0, [r7, #4] + 8009174: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - 80091e2: f641 0213 movw r2, #6163 ; 0x1813 - 80091e6: 6839 ldr r1, [r7, #0] - 80091e8: 6878 ldr r0, [r7, #4] - 80091ea: f004 fde1 bl 800ddb0 - 80091ee: 4603 mov r3, r0 - 80091f0: 60fb str r3, [r7, #12] + 8009176: f641 0213 movw r2, #6163 ; 0x1813 + 800917a: 6839 ldr r1, [r7, #0] + 800917c: 6878 ldr r0, [r7, #4] + 800917e: f004 fde1 bl 800dd44 + 8009182: 4603 mov r3, r0 + 8009184: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80091f2: 68fb ldr r3, [r7, #12] - 80091f4: b21b sxth r3, r3 + 8009186: 68fb ldr r3, [r7, #12] + 8009188: b21b sxth r3, r3 } - 80091f6: 4618 mov r0, r3 - 80091f8: 3710 adds r7, #16 - 80091fa: 46bd mov sp, r7 - 80091fc: bd80 pop {r7, pc} + 800918a: 4618 mov r0, r3 + 800918c: 3710 adds r7, #16 + 800918e: 46bd mov sp, r7 + 8009190: bd80 pop {r7, pc} -080091fe : +08009192 : { - 80091fe: b580 push {r7, lr} - 8009200: b084 sub sp, #16 - 8009202: af00 add r7, sp, #0 - 8009204: 6078 str r0, [r7, #4] - 8009206: 6039 str r1, [r7, #0] + 8009192: b580 push {r7, lr} + 8009194: b084 sub sp, #16 + 8009196: af00 add r7, sp, #0 + 8009198: 6078 str r0, [r7, #4] + 800919a: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); - 8009208: f241 0232 movw r2, #4146 ; 0x1032 - 800920c: 6839 ldr r1, [r7, #0] - 800920e: 6878 ldr r0, [r7, #4] - 8009210: f004 fdce bl 800ddb0 - 8009214: 4603 mov r3, r0 - 8009216: 60fb str r3, [r7, #12] + 800919c: f241 0232 movw r2, #4146 ; 0x1032 + 80091a0: 6839 ldr r1, [r7, #0] + 80091a2: 6878 ldr r0, [r7, #4] + 80091a4: f004 fdce bl 800dd44 + 80091a8: 4603 mov r3, r0 + 80091aa: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8009218: 68fb ldr r3, [r7, #12] - 800921a: b21b sxth r3, r3 + 80091ac: 68fb ldr r3, [r7, #12] + 80091ae: b21b sxth r3, r3 } - 800921c: 4618 mov r0, r3 - 800921e: 3710 adds r7, #16 - 8009220: 46bd mov sp, r7 - 8009222: bd80 pop {r7, pc} + 80091b0: 4618 mov r0, r3 + 80091b2: 3710 adds r7, #16 + 80091b4: 46bd mov sp, r7 + 80091b6: bd80 pop {r7, pc} -08009224 : +080091b8 : { - 8009224: b580 push {r7, lr} - 8009226: b084 sub sp, #16 - 8009228: af00 add r7, sp, #0 - 800922a: 6078 str r0, [r7, #4] - 800922c: 6039 str r1, [r7, #0] + 80091b8: b580 push {r7, lr} + 80091ba: b084 sub sp, #16 + 80091bc: af00 add r7, sp, #0 + 80091be: 6078 str r0, [r7, #4] + 80091c0: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LAYOUT); - 800922e: f241 0269 movw r2, #4201 ; 0x1069 - 8009232: 6839 ldr r1, [r7, #0] - 8009234: 6878 ldr r0, [r7, #4] - 8009236: f004 fdbb bl 800ddb0 - 800923a: 4603 mov r3, r0 - 800923c: 60fb str r3, [r7, #12] + 80091c2: f241 0269 movw r2, #4201 ; 0x1069 + 80091c6: 6839 ldr r1, [r7, #0] + 80091c8: 6878 ldr r0, [r7, #4] + 80091ca: f004 fdbb bl 800dd44 + 80091ce: 4603 mov r3, r0 + 80091d0: 60fb str r3, [r7, #12] return (uint16_t)v.num; - 800923e: 68fb ldr r3, [r7, #12] - 8009240: b29b uxth r3, r3 + 80091d2: 68fb ldr r3, [r7, #12] + 80091d4: b29b uxth r3, r3 } - 8009242: 4618 mov r0, r3 - 8009244: 3710 adds r7, #16 - 8009246: 46bd mov sp, r7 - 8009248: bd80 pop {r7, pc} + 80091d6: 4618 mov r0, r3 + 80091d8: 3710 adds r7, #16 + 80091da: 46bd mov sp, r7 + 80091dc: bd80 pop {r7, pc} -0800924a : +080091de : static inline lv_base_dir_t lv_obj_get_style_base_dir(const struct _lv_obj_t * obj, uint32_t part) { - 800924a: b580 push {r7, lr} - 800924c: b084 sub sp, #16 - 800924e: af00 add r7, sp, #0 - 8009250: 6078 str r0, [r7, #4] - 8009252: 6039 str r1, [r7, #0] + 80091de: b580 push {r7, lr} + 80091e0: b084 sub sp, #16 + 80091e2: af00 add r7, sp, #0 + 80091e4: 6078 str r0, [r7, #4] + 80091e6: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BASE_DIR); - 8009254: f241 426a movw r2, #5226 ; 0x146a - 8009258: 6839 ldr r1, [r7, #0] - 800925a: 6878 ldr r0, [r7, #4] - 800925c: f004 fda8 bl 800ddb0 - 8009260: 4603 mov r3, r0 - 8009262: 60fb str r3, [r7, #12] + 80091e8: f241 426a movw r2, #5226 ; 0x146a + 80091ec: 6839 ldr r1, [r7, #0] + 80091ee: 6878 ldr r0, [r7, #4] + 80091f0: f004 fda8 bl 800dd44 + 80091f4: 4603 mov r3, r0 + 80091f6: 60fb str r3, [r7, #12] return (lv_base_dir_t)v.num; - 8009264: 68fb ldr r3, [r7, #12] - 8009266: b2db uxtb r3, r3 + 80091f8: 68fb ldr r3, [r7, #12] + 80091fa: b2db uxtb r3, r3 } - 8009268: 4618 mov r0, r3 - 800926a: 3710 adds r7, #16 - 800926c: 46bd mov sp, r7 - 800926e: bd80 pop {r7, pc} + 80091fc: 4618 mov r0, r3 + 80091fe: 3710 adds r7, #16 + 8009200: 46bd mov sp, r7 + 8009202: bd80 pop {r7, pc} -08009270 : +08009204 : /********************** * GLOBAL FUNCTIONS **********************/ void lv_obj_set_pos(lv_obj_t * obj, lv_coord_t x, lv_coord_t y) { - 8009270: b580 push {r7, lr} - 8009272: b082 sub sp, #8 - 8009274: af00 add r7, sp, #0 - 8009276: 6078 str r0, [r7, #4] - 8009278: 460b mov r3, r1 - 800927a: 807b strh r3, [r7, #2] - 800927c: 4613 mov r3, r2 - 800927e: 803b strh r3, [r7, #0] + 8009204: b580 push {r7, lr} + 8009206: b082 sub sp, #8 + 8009208: af00 add r7, sp, #0 + 800920a: 6078 str r0, [r7, #4] + 800920c: 460b mov r3, r1 + 800920e: 807b strh r3, [r7, #2] + 8009210: 4613 mov r3, r2 + 8009212: 803b strh r3, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_obj_set_x(obj, x); - 8009280: f9b7 3002 ldrsh.w r3, [r7, #2] - 8009284: 4619 mov r1, r3 - 8009286: 6878 ldr r0, [r7, #4] - 8009288: f000 f80a bl 80092a0 + 8009214: f9b7 3002 ldrsh.w r3, [r7, #2] + 8009218: 4619 mov r1, r3 + 800921a: 6878 ldr r0, [r7, #4] + 800921c: f000 f80a bl 8009234 lv_obj_set_y(obj, y); - 800928c: f9b7 3000 ldrsh.w r3, [r7] - 8009290: 4619 mov r1, r3 - 8009292: 6878 ldr r0, [r7, #4] - 8009294: f000 f82a bl 80092ec + 8009220: f9b7 3000 ldrsh.w r3, [r7] + 8009224: 4619 mov r1, r3 + 8009226: 6878 ldr r0, [r7, #4] + 8009228: f000 f82a bl 8009280 } - 8009298: bf00 nop - 800929a: 3708 adds r7, #8 - 800929c: 46bd mov sp, r7 - 800929e: bd80 pop {r7, pc} + 800922c: bf00 nop + 800922e: 3708 adds r7, #8 + 8009230: 46bd mov sp, r7 + 8009232: bd80 pop {r7, pc} -080092a0 : +08009234 : void lv_obj_set_x(lv_obj_t * obj, lv_coord_t x) { - 80092a0: b580 push {r7, lr} - 80092a2: b084 sub sp, #16 - 80092a4: af00 add r7, sp, #0 - 80092a6: 6078 str r0, [r7, #4] - 80092a8: 460b mov r3, r1 - 80092aa: 807b strh r3, [r7, #2] + 8009234: b580 push {r7, lr} + 8009236: b084 sub sp, #16 + 8009238: af00 add r7, sp, #0 + 800923a: 6078 str r0, [r7, #4] + 800923c: 460b mov r3, r1 + 800923e: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_res_t res_x; lv_style_value_t v_x; res_x = lv_obj_get_local_style_prop(obj, LV_STYLE_X, &v_x, 0); - 80092ac: f107 0208 add.w r2, r7, #8 - 80092b0: 2300 movs r3, #0 - 80092b2: f241 0107 movw r1, #4103 ; 0x1007 - 80092b6: 6878 ldr r0, [r7, #4] - 80092b8: f004 fe2f bl 800df1a - 80092bc: 4603 mov r3, r0 - 80092be: 73fb strb r3, [r7, #15] + 8009240: f107 0208 add.w r2, r7, #8 + 8009244: 2300 movs r3, #0 + 8009246: f241 0107 movw r1, #4103 ; 0x1007 + 800924a: 6878 ldr r0, [r7, #4] + 800924c: f004 fe2f bl 800deae + 8009250: 4603 mov r3, r0 + 8009252: 73fb strb r3, [r7, #15] if((res_x == LV_RES_OK && v_x.num != x) || res_x == LV_RES_INV) { - 80092c0: 7bfb ldrb r3, [r7, #15] - 80092c2: 2b01 cmp r3, #1 - 80092c4: d104 bne.n 80092d0 - 80092c6: 68ba ldr r2, [r7, #8] - 80092c8: f9b7 3002 ldrsh.w r3, [r7, #2] - 80092cc: 429a cmp r2, r3 - 80092ce: d102 bne.n 80092d6 - 80092d0: 7bfb ldrb r3, [r7, #15] - 80092d2: 2b00 cmp r3, #0 - 80092d4: d106 bne.n 80092e4 + 8009254: 7bfb ldrb r3, [r7, #15] + 8009256: 2b01 cmp r3, #1 + 8009258: d104 bne.n 8009264 + 800925a: 68ba ldr r2, [r7, #8] + 800925c: f9b7 3002 ldrsh.w r3, [r7, #2] + 8009260: 429a cmp r2, r3 + 8009262: d102 bne.n 800926a + 8009264: 7bfb ldrb r3, [r7, #15] + 8009266: 2b00 cmp r3, #0 + 8009268: d106 bne.n 8009278 lv_obj_set_style_x(obj, x, 0); - 80092d6: f9b7 3002 ldrsh.w r3, [r7, #2] - 80092da: 2200 movs r2, #0 - 80092dc: 4619 mov r1, r3 - 80092de: 6878 ldr r0, [r7, #4] - 80092e0: f005 ffbd bl 800f25e + 800926a: f9b7 3002 ldrsh.w r3, [r7, #2] + 800926e: 2200 movs r2, #0 + 8009270: 4619 mov r1, r3 + 8009272: 6878 ldr r0, [r7, #4] + 8009274: f005 ffbd bl 800f1f2 } } - 80092e4: bf00 nop - 80092e6: 3710 adds r7, #16 - 80092e8: 46bd mov sp, r7 - 80092ea: bd80 pop {r7, pc} + 8009278: bf00 nop + 800927a: 3710 adds r7, #16 + 800927c: 46bd mov sp, r7 + 800927e: bd80 pop {r7, pc} -080092ec : +08009280 : void lv_obj_set_y(lv_obj_t * obj, lv_coord_t y) { - 80092ec: b580 push {r7, lr} - 80092ee: b084 sub sp, #16 - 80092f0: af00 add r7, sp, #0 - 80092f2: 6078 str r0, [r7, #4] - 80092f4: 460b mov r3, r1 - 80092f6: 807b strh r3, [r7, #2] + 8009280: b580 push {r7, lr} + 8009282: b084 sub sp, #16 + 8009284: af00 add r7, sp, #0 + 8009286: 6078 str r0, [r7, #4] + 8009288: 460b mov r3, r1 + 800928a: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_res_t res_y; lv_style_value_t v_y; res_y = lv_obj_get_local_style_prop(obj, LV_STYLE_Y, &v_y, 0); - 80092f8: f107 0208 add.w r2, r7, #8 - 80092fc: 2300 movs r3, #0 - 80092fe: f241 0108 movw r1, #4104 ; 0x1008 - 8009302: 6878 ldr r0, [r7, #4] - 8009304: f004 fe09 bl 800df1a - 8009308: 4603 mov r3, r0 - 800930a: 73fb strb r3, [r7, #15] + 800928c: f107 0208 add.w r2, r7, #8 + 8009290: 2300 movs r3, #0 + 8009292: f241 0108 movw r1, #4104 ; 0x1008 + 8009296: 6878 ldr r0, [r7, #4] + 8009298: f004 fe09 bl 800deae + 800929c: 4603 mov r3, r0 + 800929e: 73fb strb r3, [r7, #15] if((res_y == LV_RES_OK && v_y.num != y) || res_y == LV_RES_INV) { - 800930c: 7bfb ldrb r3, [r7, #15] - 800930e: 2b01 cmp r3, #1 - 8009310: d104 bne.n 800931c - 8009312: 68ba ldr r2, [r7, #8] - 8009314: f9b7 3002 ldrsh.w r3, [r7, #2] - 8009318: 429a cmp r2, r3 - 800931a: d102 bne.n 8009322 - 800931c: 7bfb ldrb r3, [r7, #15] - 800931e: 2b00 cmp r3, #0 - 8009320: d106 bne.n 8009330 + 80092a0: 7bfb ldrb r3, [r7, #15] + 80092a2: 2b01 cmp r3, #1 + 80092a4: d104 bne.n 80092b0 + 80092a6: 68ba ldr r2, [r7, #8] + 80092a8: f9b7 3002 ldrsh.w r3, [r7, #2] + 80092ac: 429a cmp r2, r3 + 80092ae: d102 bne.n 80092b6 + 80092b0: 7bfb ldrb r3, [r7, #15] + 80092b2: 2b00 cmp r3, #0 + 80092b4: d106 bne.n 80092c4 lv_obj_set_style_y(obj, y, 0); - 8009322: f9b7 3002 ldrsh.w r3, [r7, #2] - 8009326: 2200 movs r2, #0 - 8009328: 4619 mov r1, r3 - 800932a: 6878 ldr r0, [r7, #4] - 800932c: f005 ffac bl 800f288 + 80092b6: f9b7 3002 ldrsh.w r3, [r7, #2] + 80092ba: 2200 movs r2, #0 + 80092bc: 4619 mov r1, r3 + 80092be: 6878 ldr r0, [r7, #4] + 80092c0: f005 ffac bl 800f21c } } - 8009330: bf00 nop - 8009332: 3710 adds r7, #16 - 8009334: 46bd mov sp, r7 - 8009336: bd80 pop {r7, pc} + 80092c4: bf00 nop + 80092c6: 3710 adds r7, #16 + 80092c8: 46bd mov sp, r7 + 80092ca: bd80 pop {r7, pc} -08009338 : +080092cc : bool lv_obj_refr_size(lv_obj_t * obj) { - 8009338: b580 push {r7, lr} - 800933a: b090 sub sp, #64 ; 0x40 - 800933c: af00 add r7, sp, #0 - 800933e: 6078 str r0, [r7, #4] + 80092cc: b580 push {r7, lr} + 80092ce: b090 sub sp, #64 ; 0x40 + 80092d0: af00 add r7, sp, #0 + 80092d2: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); /*If the width or height is set by a layout do not modify them*/ if(obj->w_layout && obj->h_layout) return false; - 8009340: 687b ldr r3, [r7, #4] - 8009342: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 8009346: f003 0304 and.w r3, r3, #4 - 800934a: b2db uxtb r3, r3 - 800934c: 2b00 cmp r3, #0 - 800934e: d009 beq.n 8009364 - 8009350: 687b ldr r3, [r7, #4] - 8009352: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 8009356: f003 0302 and.w r3, r3, #2 - 800935a: b2db uxtb r3, r3 - 800935c: 2b00 cmp r3, #0 - 800935e: d001 beq.n 8009364 - 8009360: 2300 movs r3, #0 - 8009362: e21e b.n 80097a2 + 80092d4: 687b ldr r3, [r7, #4] + 80092d6: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 80092da: f003 0304 and.w r3, r3, #4 + 80092de: b2db uxtb r3, r3 + 80092e0: 2b00 cmp r3, #0 + 80092e2: d009 beq.n 80092f8 + 80092e4: 687b ldr r3, [r7, #4] + 80092e6: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 80092ea: f003 0302 and.w r3, r3, #2 + 80092ee: b2db uxtb r3, r3 + 80092f0: 2b00 cmp r3, #0 + 80092f2: d001 beq.n 80092f8 + 80092f4: 2300 movs r3, #0 + 80092f6: e21e b.n 8009736 lv_obj_t * parent = lv_obj_get_parent(obj); - 8009364: 6878 ldr r0, [r7, #4] - 8009366: f006 f9d1 bl 800f70c - 800936a: 6378 str r0, [r7, #52] ; 0x34 + 80092f8: 6878 ldr r0, [r7, #4] + 80092fa: f006 f9bd bl 800f678 + 80092fe: 6378 str r0, [r7, #52] ; 0x34 if(parent == NULL) return false; - 800936c: 6b7b ldr r3, [r7, #52] ; 0x34 - 800936e: 2b00 cmp r3, #0 - 8009370: d101 bne.n 8009376 - 8009372: 2300 movs r3, #0 - 8009374: e215 b.n 80097a2 + 8009300: 6b7b ldr r3, [r7, #52] ; 0x34 + 8009302: 2b00 cmp r3, #0 + 8009304: d101 bne.n 800930a + 8009306: 2300 movs r3, #0 + 8009308: e215 b.n 8009736 lv_coord_t sl_ori = lv_obj_get_scroll_left(obj); - 8009376: 6878 ldr r0, [r7, #4] - 8009378: f002 fbc6 bl 800bb08 - 800937c: 4603 mov r3, r0 - 800937e: 867b strh r3, [r7, #50] ; 0x32 + 800930a: 6878 ldr r0, [r7, #4] + 800930c: f002 fbc6 bl 800ba9c + 8009310: 4603 mov r3, r0 + 8009312: 867b strh r3, [r7, #50] ; 0x32 bool w_is_content = false; - 8009380: 2300 movs r3, #0 - 8009382: f887 303f strb.w r3, [r7, #63] ; 0x3f + 8009314: 2300 movs r3, #0 + 8009316: f887 303f strb.w r3, [r7, #63] ; 0x3f bool w_is_pct = false; - 8009386: 2300 movs r3, #0 - 8009388: f887 3031 strb.w r3, [r7, #49] ; 0x31 + 800931a: 2300 movs r3, #0 + 800931c: f887 3031 strb.w r3, [r7, #49] ; 0x31 lv_coord_t w; if(obj->w_layout) { - 800938c: 687b ldr r3, [r7, #4] - 800938e: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 8009392: f003 0304 and.w r3, r3, #4 - 8009396: b2db uxtb r3, r3 - 8009398: 2b00 cmp r3, #0 - 800939a: d005 beq.n 80093a8 + 8009320: 687b ldr r3, [r7, #4] + 8009322: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 8009326: f003 0304 and.w r3, r3, #4 + 800932a: b2db uxtb r3, r3 + 800932c: 2b00 cmp r3, #0 + 800932e: d005 beq.n 800933c w = lv_obj_get_width(obj); - 800939c: 6878 ldr r0, [r7, #4] - 800939e: f000 fed3 bl 800a148 - 80093a2: 4603 mov r3, r0 - 80093a4: 87bb strh r3, [r7, #60] ; 0x3c - 80093a6: e0a0 b.n 80094ea + 8009330: 6878 ldr r0, [r7, #4] + 8009332: f000 fed3 bl 800a0dc + 8009336: 4603 mov r3, r0 + 8009338: 87bb strh r3, [r7, #60] ; 0x3c + 800933a: e0a0 b.n 800947e } else { w = lv_obj_get_style_width(obj, LV_PART_MAIN); - 80093a8: 2100 movs r1, #0 - 80093aa: 6878 ldr r0, [r7, #4] - 80093ac: f7ff fe0a bl 8008fc4 - 80093b0: 4603 mov r3, r0 - 80093b2: 87bb strh r3, [r7, #60] ; 0x3c + 800933c: 2100 movs r1, #0 + 800933e: 6878 ldr r0, [r7, #4] + 8009340: f7ff fe0a bl 8008f58 + 8009344: 4603 mov r3, r0 + 8009346: 87bb strh r3, [r7, #60] ; 0x3c w_is_content = w == LV_SIZE_CONTENT ? true : false; - 80093b4: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c - 80093b8: f242 72d1 movw r2, #10193 ; 0x27d1 - 80093bc: 4293 cmp r3, r2 - 80093be: bf0c ite eq - 80093c0: 2301 moveq r3, #1 - 80093c2: 2300 movne r3, #0 - 80093c4: f887 303f strb.w r3, [r7, #63] ; 0x3f + 8009348: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c + 800934c: f242 72d1 movw r2, #10193 ; 0x27d1 + 8009350: 4293 cmp r3, r2 + 8009352: bf0c ite eq + 8009354: 2301 moveq r3, #1 + 8009356: 2300 movne r3, #0 + 8009358: f887 303f strb.w r3, [r7, #63] ; 0x3f w_is_pct = LV_COORD_IS_PCT(w) ? true : false; - 80093c8: 8fbb ldrh r3, [r7, #60] ; 0x3c - 80093ca: f403 43c0 and.w r3, r3, #24576 ; 0x6000 - 80093ce: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 80093d2: d108 bne.n 80093e6 - 80093d4: 8fbb ldrh r3, [r7, #60] ; 0x3c - 80093d6: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 80093da: b21b sxth r3, r3 - 80093dc: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 - 80093e0: dc01 bgt.n 80093e6 - 80093e2: 2301 movs r3, #1 - 80093e4: e000 b.n 80093e8 - 80093e6: 2300 movs r3, #0 - 80093e8: f887 3031 strb.w r3, [r7, #49] ; 0x31 - 80093ec: f897 3031 ldrb.w r3, [r7, #49] ; 0x31 - 80093f0: f003 0301 and.w r3, r3, #1 - 80093f4: f887 3031 strb.w r3, [r7, #49] ; 0x31 + 800935c: 8fbb ldrh r3, [r7, #60] ; 0x3c + 800935e: f403 43c0 and.w r3, r3, #24576 ; 0x6000 + 8009362: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 8009366: d108 bne.n 800937a + 8009368: 8fbb ldrh r3, [r7, #60] ; 0x3c + 800936a: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800936e: b21b sxth r3, r3 + 8009370: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 + 8009374: dc01 bgt.n 800937a + 8009376: 2301 movs r3, #1 + 8009378: e000 b.n 800937c + 800937a: 2300 movs r3, #0 + 800937c: f887 3031 strb.w r3, [r7, #49] ; 0x31 + 8009380: f897 3031 ldrb.w r3, [r7, #49] ; 0x31 + 8009384: f003 0301 and.w r3, r3, #1 + 8009388: f887 3031 strb.w r3, [r7, #49] ; 0x31 lv_coord_t parent_w = lv_obj_get_content_width(parent); - 80093f8: 6b78 ldr r0, [r7, #52] ; 0x34 - 80093fa: f000 fec1 bl 800a180 - 80093fe: 4603 mov r3, r0 - 8009400: 85fb strh r3, [r7, #46] ; 0x2e + 800938c: 6b78 ldr r0, [r7, #52] ; 0x34 + 800938e: f000 fec1 bl 800a114 + 8009392: 4603 mov r3, r0 + 8009394: 85fb strh r3, [r7, #46] ; 0x2e if(w_is_content) { - 8009402: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 8009406: 2b00 cmp r3, #0 - 8009408: d005 beq.n 8009416 + 8009396: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 800939a: 2b00 cmp r3, #0 + 800939c: d005 beq.n 80093aa w = calc_content_width(obj); - 800940a: 6878 ldr r0, [r7, #4] - 800940c: f001 fe24 bl 800b058 - 8009410: 4603 mov r3, r0 - 8009412: 87bb strh r3, [r7, #60] ; 0x3c - 8009414: e051 b.n 80094ba + 800939e: 6878 ldr r0, [r7, #4] + 80093a0: f001 fe24 bl 800afec + 80093a4: 4603 mov r3, r0 + 80093a6: 87bb strh r3, [r7, #60] ; 0x3c + 80093a8: e051 b.n 800944e } else if(w_is_pct) { - 8009416: f897 3031 ldrb.w r3, [r7, #49] ; 0x31 - 800941a: 2b00 cmp r3, #0 - 800941c: d04d beq.n 80094ba + 80093aa: f897 3031 ldrb.w r3, [r7, #49] ; 0x31 + 80093ae: 2b00 cmp r3, #0 + 80093b0: d04d beq.n 800944e /*If parent has content size and the child has pct size *a circular dependency will occur. To solve it keep child size at zero */ if(parent->w_layout == 0 && lv_obj_get_style_width(parent, 0) == LV_SIZE_CONTENT) { - 800941e: 6b7b ldr r3, [r7, #52] ; 0x34 - 8009420: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 8009424: f003 0304 and.w r3, r3, #4 - 8009428: b2db uxtb r3, r3 - 800942a: 2b00 cmp r3, #0 - 800942c: d128 bne.n 8009480 - 800942e: 2100 movs r1, #0 - 8009430: 6b78 ldr r0, [r7, #52] ; 0x34 - 8009432: f7ff fdc7 bl 8008fc4 - 8009436: 4603 mov r3, r0 - 8009438: 461a mov r2, r3 - 800943a: f242 73d1 movw r3, #10193 ; 0x27d1 - 800943e: 429a cmp r2, r3 - 8009440: d11e bne.n 8009480 + 80093b2: 6b7b ldr r3, [r7, #52] ; 0x34 + 80093b4: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 80093b8: f003 0304 and.w r3, r3, #4 + 80093bc: b2db uxtb r3, r3 + 80093be: 2b00 cmp r3, #0 + 80093c0: d128 bne.n 8009414 + 80093c2: 2100 movs r1, #0 + 80093c4: 6b78 ldr r0, [r7, #52] ; 0x34 + 80093c6: f7ff fdc7 bl 8008f58 + 80093ca: 4603 mov r3, r0 + 80093cc: 461a mov r2, r3 + 80093ce: f242 73d1 movw r3, #10193 ; 0x27d1 + 80093d2: 429a cmp r2, r3 + 80093d4: d11e bne.n 8009414 lv_coord_t border_w = lv_obj_get_style_border_width(obj, 0); - 8009442: 2100 movs r1, #0 - 8009444: 6878 ldr r0, [r7, #4] - 8009446: f7ff feda bl 80091fe - 800944a: 4603 mov r3, r0 - 800944c: 85bb strh r3, [r7, #44] ; 0x2c + 80093d6: 2100 movs r1, #0 + 80093d8: 6878 ldr r0, [r7, #4] + 80093da: f7ff feda bl 8009192 + 80093de: 4603 mov r3, r0 + 80093e0: 85bb strh r3, [r7, #44] ; 0x2c w = lv_obj_get_style_pad_left(obj, 0) + border_w; - 800944e: 2100 movs r1, #0 - 8009450: 6878 ldr r0, [r7, #4] - 8009452: f7ff feae bl 80091b2 - 8009456: 4603 mov r3, r0 - 8009458: b29a uxth r2, r3 - 800945a: 8dbb ldrh r3, [r7, #44] ; 0x2c - 800945c: 4413 add r3, r2 - 800945e: b29b uxth r3, r3 - 8009460: 87bb strh r3, [r7, #60] ; 0x3c + 80093e2: 2100 movs r1, #0 + 80093e4: 6878 ldr r0, [r7, #4] + 80093e6: f7ff feae bl 8009146 + 80093ea: 4603 mov r3, r0 + 80093ec: b29a uxth r2, r3 + 80093ee: 8dbb ldrh r3, [r7, #44] ; 0x2c + 80093f0: 4413 add r3, r2 + 80093f2: b29b uxth r3, r3 + 80093f4: 87bb strh r3, [r7, #60] ; 0x3c w += lv_obj_get_style_pad_right(obj, 0) + border_w; - 8009462: 2100 movs r1, #0 - 8009464: 6878 ldr r0, [r7, #4] - 8009466: f7ff feb7 bl 80091d8 - 800946a: 4603 mov r3, r0 - 800946c: 461a mov r2, r3 - 800946e: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 8009472: 4413 add r3, r2 - 8009474: b29a uxth r2, r3 - 8009476: 8fbb ldrh r3, [r7, #60] ; 0x3c - 8009478: 4413 add r3, r2 - 800947a: b29b uxth r3, r3 - 800947c: 87bb strh r3, [r7, #60] ; 0x3c + 80093f6: 2100 movs r1, #0 + 80093f8: 6878 ldr r0, [r7, #4] + 80093fa: f7ff feb7 bl 800916c + 80093fe: 4603 mov r3, r0 + 8009400: 461a mov r2, r3 + 8009402: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 8009406: 4413 add r3, r2 + 8009408: b29a uxth r2, r3 + 800940a: 8fbb ldrh r3, [r7, #60] ; 0x3c + 800940c: 4413 add r3, r2 + 800940e: b29b uxth r3, r3 + 8009410: 87bb strh r3, [r7, #60] ; 0x3c if(parent->w_layout == 0 && lv_obj_get_style_width(parent, 0) == LV_SIZE_CONTENT) { - 800947e: e01c b.n 80094ba + 8009412: e01c b.n 800944e } else { w = (LV_COORD_GET_PCT(w) * parent_w) / 100; - 8009480: 8fbb ldrh r3, [r7, #60] ; 0x3c - 8009482: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 8009486: b21b sxth r3, r3 - 8009488: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - 800948c: dd06 ble.n 800949c - 800948e: 8fbb ldrh r3, [r7, #60] ; 0x3c - 8009490: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 8009494: b21b sxth r3, r3 - 8009496: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 800949a: e003 b.n 80094a4 - 800949c: 8fbb ldrh r3, [r7, #60] ; 0x3c - 800949e: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 80094a2: b21b sxth r3, r3 - 80094a4: f9b7 202e ldrsh.w r2, [r7, #46] ; 0x2e - 80094a8: fb02 f303 mul.w r3, r2, r3 - 80094ac: 4a9f ldr r2, [pc, #636] ; (800972c ) - 80094ae: fb82 1203 smull r1, r2, r2, r3 - 80094b2: 1152 asrs r2, r2, #5 - 80094b4: 17db asrs r3, r3, #31 - 80094b6: 1ad3 subs r3, r2, r3 - 80094b8: 87bb strh r3, [r7, #60] ; 0x3c + 8009414: 8fbb ldrh r3, [r7, #60] ; 0x3c + 8009416: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800941a: b21b sxth r3, r3 + 800941c: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 + 8009420: dd06 ble.n 8009430 + 8009422: 8fbb ldrh r3, [r7, #60] ; 0x3c + 8009424: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 8009428: b21b sxth r3, r3 + 800942a: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 800942e: e003 b.n 8009438 + 8009430: 8fbb ldrh r3, [r7, #60] ; 0x3c + 8009432: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 8009436: b21b sxth r3, r3 + 8009438: f9b7 202e ldrsh.w r2, [r7, #46] ; 0x2e + 800943c: fb02 f303 mul.w r3, r2, r3 + 8009440: 4a9f ldr r2, [pc, #636] ; (80096c0 ) + 8009442: fb82 1203 smull r1, r2, r2, r3 + 8009446: 1152 asrs r2, r2, #5 + 8009448: 17db asrs r3, r3, #31 + 800944a: 1ad3 subs r3, r2, r3 + 800944c: 87bb strh r3, [r7, #60] ; 0x3c } } lv_coord_t minw = lv_obj_get_style_min_width(obj, LV_PART_MAIN); - 80094ba: 2100 movs r1, #0 - 80094bc: 6878 ldr r0, [r7, #4] - 80094be: f7ff fd94 bl 8008fea - 80094c2: 4603 mov r3, r0 - 80094c4: 857b strh r3, [r7, #42] ; 0x2a + 800944e: 2100 movs r1, #0 + 8009450: 6878 ldr r0, [r7, #4] + 8009452: f7ff fd94 bl 8008f7e + 8009456: 4603 mov r3, r0 + 8009458: 857b strh r3, [r7, #42] ; 0x2a lv_coord_t maxw = lv_obj_get_style_max_width(obj, LV_PART_MAIN); - 80094c6: 2100 movs r1, #0 - 80094c8: 6878 ldr r0, [r7, #4] - 80094ca: f7ff fda1 bl 8009010 - 80094ce: 4603 mov r3, r0 - 80094d0: 853b strh r3, [r7, #40] ; 0x28 + 800945a: 2100 movs r1, #0 + 800945c: 6878 ldr r0, [r7, #4] + 800945e: f7ff fda1 bl 8008fa4 + 8009462: 4603 mov r3, r0 + 8009464: 853b strh r3, [r7, #40] ; 0x28 w = lv_clamp_width(w, minw, maxw, parent_w); - 80094d2: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 80094d6: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 - 80094da: f9b7 102a ldrsh.w r1, [r7, #42] ; 0x2a - 80094de: f9b7 003c ldrsh.w r0, [r7, #60] ; 0x3c - 80094e2: f001 fcc9 bl 800ae78 - 80094e6: 4603 mov r3, r0 - 80094e8: 87bb strh r3, [r7, #60] ; 0x3c + 8009466: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 800946a: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 + 800946e: f9b7 102a ldrsh.w r1, [r7, #42] ; 0x2a + 8009472: f9b7 003c ldrsh.w r0, [r7, #60] ; 0x3c + 8009476: f001 fcc9 bl 800ae0c + 800947a: 4603 mov r3, r0 + 800947c: 87bb strh r3, [r7, #60] ; 0x3c } lv_coord_t st_ori = lv_obj_get_scroll_top(obj); - 80094ea: 6878 ldr r0, [r7, #4] - 80094ec: f002 fa6e bl 800b9cc - 80094f0: 4603 mov r3, r0 - 80094f2: 84fb strh r3, [r7, #38] ; 0x26 + 800947e: 6878 ldr r0, [r7, #4] + 8009480: f002 fa6e bl 800b960 + 8009484: 4603 mov r3, r0 + 8009486: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t h; bool h_is_content = false; - 80094f4: 2300 movs r3, #0 - 80094f6: f887 3039 strb.w r3, [r7, #57] ; 0x39 + 8009488: 2300 movs r3, #0 + 800948a: f887 3039 strb.w r3, [r7, #57] ; 0x39 bool h_is_pct = false; - 80094fa: 2300 movs r3, #0 - 80094fc: f887 3025 strb.w r3, [r7, #37] ; 0x25 + 800948e: 2300 movs r3, #0 + 8009490: f887 3025 strb.w r3, [r7, #37] ; 0x25 if(obj->h_layout) { - 8009500: 687b ldr r3, [r7, #4] - 8009502: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 8009506: f003 0302 and.w r3, r3, #2 - 800950a: b2db uxtb r3, r3 - 800950c: 2b00 cmp r3, #0 - 800950e: d005 beq.n 800951c + 8009494: 687b ldr r3, [r7, #4] + 8009496: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 800949a: f003 0302 and.w r3, r3, #2 + 800949e: b2db uxtb r3, r3 + 80094a0: 2b00 cmp r3, #0 + 80094a2: d005 beq.n 80094b0 h = lv_obj_get_height(obj); - 8009510: 6878 ldr r0, [r7, #4] - 8009512: f000 fe27 bl 800a164 - 8009516: 4603 mov r3, r0 - 8009518: 877b strh r3, [r7, #58] ; 0x3a - 800951a: e0a0 b.n 800965e + 80094a4: 6878 ldr r0, [r7, #4] + 80094a6: f000 fe27 bl 800a0f8 + 80094aa: 4603 mov r3, r0 + 80094ac: 877b strh r3, [r7, #58] ; 0x3a + 80094ae: e0a0 b.n 80095f2 } else { h = lv_obj_get_style_height(obj, LV_PART_MAIN); - 800951c: 2100 movs r1, #0 - 800951e: 6878 ldr r0, [r7, #4] - 8009520: f7ff fd89 bl 8009036 - 8009524: 4603 mov r3, r0 - 8009526: 877b strh r3, [r7, #58] ; 0x3a + 80094b0: 2100 movs r1, #0 + 80094b2: 6878 ldr r0, [r7, #4] + 80094b4: f7ff fd89 bl 8008fca + 80094b8: 4603 mov r3, r0 + 80094ba: 877b strh r3, [r7, #58] ; 0x3a h_is_content = h == LV_SIZE_CONTENT ? true : false; - 8009528: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 800952c: f242 72d1 movw r2, #10193 ; 0x27d1 - 8009530: 4293 cmp r3, r2 - 8009532: bf0c ite eq - 8009534: 2301 moveq r3, #1 - 8009536: 2300 movne r3, #0 - 8009538: f887 3039 strb.w r3, [r7, #57] ; 0x39 + 80094bc: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 80094c0: f242 72d1 movw r2, #10193 ; 0x27d1 + 80094c4: 4293 cmp r3, r2 + 80094c6: bf0c ite eq + 80094c8: 2301 moveq r3, #1 + 80094ca: 2300 movne r3, #0 + 80094cc: f887 3039 strb.w r3, [r7, #57] ; 0x39 h_is_pct = LV_COORD_IS_PCT(h) ? true : false; - 800953c: 8f7b ldrh r3, [r7, #58] ; 0x3a - 800953e: f403 43c0 and.w r3, r3, #24576 ; 0x6000 - 8009542: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 8009546: d108 bne.n 800955a - 8009548: 8f7b ldrh r3, [r7, #58] ; 0x3a - 800954a: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800954e: b21b sxth r3, r3 - 8009550: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 - 8009554: dc01 bgt.n 800955a - 8009556: 2301 movs r3, #1 - 8009558: e000 b.n 800955c - 800955a: 2300 movs r3, #0 - 800955c: f887 3025 strb.w r3, [r7, #37] ; 0x25 - 8009560: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 - 8009564: f003 0301 and.w r3, r3, #1 - 8009568: f887 3025 strb.w r3, [r7, #37] ; 0x25 + 80094d0: 8f7b ldrh r3, [r7, #58] ; 0x3a + 80094d2: f403 43c0 and.w r3, r3, #24576 ; 0x6000 + 80094d6: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 80094da: d108 bne.n 80094ee + 80094dc: 8f7b ldrh r3, [r7, #58] ; 0x3a + 80094de: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 80094e2: b21b sxth r3, r3 + 80094e4: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 + 80094e8: dc01 bgt.n 80094ee + 80094ea: 2301 movs r3, #1 + 80094ec: e000 b.n 80094f0 + 80094ee: 2300 movs r3, #0 + 80094f0: f887 3025 strb.w r3, [r7, #37] ; 0x25 + 80094f4: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 + 80094f8: f003 0301 and.w r3, r3, #1 + 80094fc: f887 3025 strb.w r3, [r7, #37] ; 0x25 lv_coord_t parent_h = lv_obj_get_content_height(parent); - 800956c: 6b78 ldr r0, [r7, #52] ; 0x34 - 800956e: f000 fe32 bl 800a1d6 - 8009572: 4603 mov r3, r0 - 8009574: 847b strh r3, [r7, #34] ; 0x22 + 8009500: 6b78 ldr r0, [r7, #52] ; 0x34 + 8009502: f000 fe32 bl 800a16a + 8009506: 4603 mov r3, r0 + 8009508: 847b strh r3, [r7, #34] ; 0x22 if(h_is_content) { - 8009576: f897 3039 ldrb.w r3, [r7, #57] ; 0x39 - 800957a: 2b00 cmp r3, #0 - 800957c: d005 beq.n 800958a + 800950a: f897 3039 ldrb.w r3, [r7, #57] ; 0x39 + 800950e: 2b00 cmp r3, #0 + 8009510: d005 beq.n 800951e h = calc_content_height(obj); - 800957e: 6878 ldr r0, [r7, #4] - 8009580: f001 fedc bl 800b33c - 8009584: 4603 mov r3, r0 - 8009586: 877b strh r3, [r7, #58] ; 0x3a - 8009588: e051 b.n 800962e + 8009512: 6878 ldr r0, [r7, #4] + 8009514: f001 fedc bl 800b2d0 + 8009518: 4603 mov r3, r0 + 800951a: 877b strh r3, [r7, #58] ; 0x3a + 800951c: e051 b.n 80095c2 } else if(h_is_pct) { - 800958a: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 - 800958e: 2b00 cmp r3, #0 - 8009590: d04d beq.n 800962e + 800951e: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 + 8009522: 2b00 cmp r3, #0 + 8009524: d04d beq.n 80095c2 /*If parent has content size and the child has pct size *a circular dependency will occur. To solve it keep child size at zero */ if(parent->h_layout == 0 && lv_obj_get_style_height(parent, 0) == LV_SIZE_CONTENT) { - 8009592: 6b7b ldr r3, [r7, #52] ; 0x34 - 8009594: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 8009598: f003 0302 and.w r3, r3, #2 - 800959c: b2db uxtb r3, r3 - 800959e: 2b00 cmp r3, #0 - 80095a0: d128 bne.n 80095f4 - 80095a2: 2100 movs r1, #0 - 80095a4: 6b78 ldr r0, [r7, #52] ; 0x34 - 80095a6: f7ff fd46 bl 8009036 - 80095aa: 4603 mov r3, r0 - 80095ac: 461a mov r2, r3 - 80095ae: f242 73d1 movw r3, #10193 ; 0x27d1 - 80095b2: 429a cmp r2, r3 - 80095b4: d11e bne.n 80095f4 + 8009526: 6b7b ldr r3, [r7, #52] ; 0x34 + 8009528: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 800952c: f003 0302 and.w r3, r3, #2 + 8009530: b2db uxtb r3, r3 + 8009532: 2b00 cmp r3, #0 + 8009534: d128 bne.n 8009588 + 8009536: 2100 movs r1, #0 + 8009538: 6b78 ldr r0, [r7, #52] ; 0x34 + 800953a: f7ff fd46 bl 8008fca + 800953e: 4603 mov r3, r0 + 8009540: 461a mov r2, r3 + 8009542: f242 73d1 movw r3, #10193 ; 0x27d1 + 8009546: 429a cmp r2, r3 + 8009548: d11e bne.n 8009588 lv_coord_t border_w = lv_obj_get_style_border_width(obj, 0); - 80095b6: 2100 movs r1, #0 - 80095b8: 6878 ldr r0, [r7, #4] - 80095ba: f7ff fe20 bl 80091fe - 80095be: 4603 mov r3, r0 - 80095c0: 843b strh r3, [r7, #32] + 800954a: 2100 movs r1, #0 + 800954c: 6878 ldr r0, [r7, #4] + 800954e: f7ff fe20 bl 8009192 + 8009552: 4603 mov r3, r0 + 8009554: 843b strh r3, [r7, #32] h = lv_obj_get_style_pad_top(obj, 0) + border_w; - 80095c2: 2100 movs r1, #0 - 80095c4: 6878 ldr r0, [r7, #4] - 80095c6: f7ff fdce bl 8009166 - 80095ca: 4603 mov r3, r0 - 80095cc: b29a uxth r2, r3 - 80095ce: 8c3b ldrh r3, [r7, #32] - 80095d0: 4413 add r3, r2 - 80095d2: b29b uxth r3, r3 - 80095d4: 877b strh r3, [r7, #58] ; 0x3a + 8009556: 2100 movs r1, #0 + 8009558: 6878 ldr r0, [r7, #4] + 800955a: f7ff fdce bl 80090fa + 800955e: 4603 mov r3, r0 + 8009560: b29a uxth r2, r3 + 8009562: 8c3b ldrh r3, [r7, #32] + 8009564: 4413 add r3, r2 + 8009566: b29b uxth r3, r3 + 8009568: 877b strh r3, [r7, #58] ; 0x3a h += lv_obj_get_style_pad_bottom(obj, 0) + border_w; - 80095d6: 2100 movs r1, #0 - 80095d8: 6878 ldr r0, [r7, #4] - 80095da: f7ff fdd7 bl 800918c - 80095de: 4603 mov r3, r0 - 80095e0: 461a mov r2, r3 - 80095e2: f9b7 3020 ldrsh.w r3, [r7, #32] - 80095e6: 4413 add r3, r2 - 80095e8: b29a uxth r2, r3 - 80095ea: 8f7b ldrh r3, [r7, #58] ; 0x3a - 80095ec: 4413 add r3, r2 - 80095ee: b29b uxth r3, r3 - 80095f0: 877b strh r3, [r7, #58] ; 0x3a + 800956a: 2100 movs r1, #0 + 800956c: 6878 ldr r0, [r7, #4] + 800956e: f7ff fdd7 bl 8009120 + 8009572: 4603 mov r3, r0 + 8009574: 461a mov r2, r3 + 8009576: f9b7 3020 ldrsh.w r3, [r7, #32] + 800957a: 4413 add r3, r2 + 800957c: b29a uxth r2, r3 + 800957e: 8f7b ldrh r3, [r7, #58] ; 0x3a + 8009580: 4413 add r3, r2 + 8009582: b29b uxth r3, r3 + 8009584: 877b strh r3, [r7, #58] ; 0x3a if(parent->h_layout == 0 && lv_obj_get_style_height(parent, 0) == LV_SIZE_CONTENT) { - 80095f2: e01c b.n 800962e + 8009586: e01c b.n 80095c2 } else { h = (LV_COORD_GET_PCT(h) * parent_h) / 100; - 80095f4: 8f7b ldrh r3, [r7, #58] ; 0x3a - 80095f6: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 80095fa: b21b sxth r3, r3 - 80095fc: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - 8009600: dd06 ble.n 8009610 - 8009602: 8f7b ldrh r3, [r7, #58] ; 0x3a - 8009604: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 8009608: b21b sxth r3, r3 - 800960a: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 800960e: e003 b.n 8009618 - 8009610: 8f7b ldrh r3, [r7, #58] ; 0x3a - 8009612: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 8009616: b21b sxth r3, r3 - 8009618: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 - 800961c: fb02 f303 mul.w r3, r2, r3 - 8009620: 4a42 ldr r2, [pc, #264] ; (800972c ) - 8009622: fb82 1203 smull r1, r2, r2, r3 - 8009626: 1152 asrs r2, r2, #5 - 8009628: 17db asrs r3, r3, #31 - 800962a: 1ad3 subs r3, r2, r3 - 800962c: 877b strh r3, [r7, #58] ; 0x3a + 8009588: 8f7b ldrh r3, [r7, #58] ; 0x3a + 800958a: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800958e: b21b sxth r3, r3 + 8009590: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 + 8009594: dd06 ble.n 80095a4 + 8009596: 8f7b ldrh r3, [r7, #58] ; 0x3a + 8009598: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800959c: b21b sxth r3, r3 + 800959e: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 80095a2: e003 b.n 80095ac + 80095a4: 8f7b ldrh r3, [r7, #58] ; 0x3a + 80095a6: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 80095aa: b21b sxth r3, r3 + 80095ac: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 + 80095b0: fb02 f303 mul.w r3, r2, r3 + 80095b4: 4a42 ldr r2, [pc, #264] ; (80096c0 ) + 80095b6: fb82 1203 smull r1, r2, r2, r3 + 80095ba: 1152 asrs r2, r2, #5 + 80095bc: 17db asrs r3, r3, #31 + 80095be: 1ad3 subs r3, r2, r3 + 80095c0: 877b strh r3, [r7, #58] ; 0x3a } } lv_coord_t minh = lv_obj_get_style_min_height(obj, LV_PART_MAIN); - 800962e: 2100 movs r1, #0 - 8009630: 6878 ldr r0, [r7, #4] - 8009632: f7ff fd13 bl 800905c - 8009636: 4603 mov r3, r0 - 8009638: 83fb strh r3, [r7, #30] + 80095c2: 2100 movs r1, #0 + 80095c4: 6878 ldr r0, [r7, #4] + 80095c6: f7ff fd13 bl 8008ff0 + 80095ca: 4603 mov r3, r0 + 80095cc: 83fb strh r3, [r7, #30] lv_coord_t maxh = lv_obj_get_style_max_height(obj, LV_PART_MAIN); - 800963a: 2100 movs r1, #0 - 800963c: 6878 ldr r0, [r7, #4] - 800963e: f7ff fd20 bl 8009082 - 8009642: 4603 mov r3, r0 - 8009644: 83bb strh r3, [r7, #28] + 80095ce: 2100 movs r1, #0 + 80095d0: 6878 ldr r0, [r7, #4] + 80095d2: f7ff fd20 bl 8009016 + 80095d6: 4603 mov r3, r0 + 80095d8: 83bb strh r3, [r7, #28] h = lv_clamp_height(h, minh, maxh, parent_h); - 8009646: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 800964a: f9b7 201c ldrsh.w r2, [r7, #28] - 800964e: f9b7 101e ldrsh.w r1, [r7, #30] - 8009652: f9b7 003a ldrsh.w r0, [r7, #58] ; 0x3a - 8009656: f001 fc87 bl 800af68 - 800965a: 4603 mov r3, r0 - 800965c: 877b strh r3, [r7, #58] ; 0x3a + 80095da: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 80095de: f9b7 201c ldrsh.w r2, [r7, #28] + 80095e2: f9b7 101e ldrsh.w r1, [r7, #30] + 80095e6: f9b7 003a ldrsh.w r0, [r7, #58] ; 0x3a + 80095ea: f001 fc87 bl 800aefc + 80095ee: 4603 mov r3, r0 + 80095f0: 877b strh r3, [r7, #58] ; 0x3a } /*calc_auto_size set the scroll x/y to 0 so revert the original value*/ if(w_is_content || h_is_content) { - 800965e: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 8009662: 2b00 cmp r3, #0 - 8009664: d103 bne.n 800966e - 8009666: f897 3039 ldrb.w r3, [r7, #57] ; 0x39 - 800966a: 2b00 cmp r3, #0 - 800966c: d007 beq.n 800967e + 80095f2: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 80095f6: 2b00 cmp r3, #0 + 80095f8: d103 bne.n 8009602 + 80095fa: f897 3039 ldrb.w r3, [r7, #57] ; 0x39 + 80095fe: 2b00 cmp r3, #0 + 8009600: d007 beq.n 8009612 lv_obj_scroll_to(obj, sl_ori, st_ori, LV_ANIM_OFF); - 800966e: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 - 8009672: f9b7 1032 ldrsh.w r1, [r7, #50] ; 0x32 - 8009676: 2300 movs r3, #0 - 8009678: 6878 ldr r0, [r7, #4] - 800967a: f002 fda3 bl 800c1c4 + 8009602: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 + 8009606: f9b7 1032 ldrsh.w r1, [r7, #50] ; 0x32 + 800960a: 2300 movs r3, #0 + 800960c: 6878 ldr r0, [r7, #4] + 800960e: f002 fda3 bl 800c158 } /*Do nothing if the size is not changed*/ /*It is very important else recursive resizing can occur without size change*/ if(lv_obj_get_width(obj) == w && lv_obj_get_height(obj) == h) return false; - 800967e: 6878 ldr r0, [r7, #4] - 8009680: f000 fd62 bl 800a148 - 8009684: 4603 mov r3, r0 - 8009686: 461a mov r2, r3 - 8009688: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c - 800968c: 4293 cmp r3, r2 - 800968e: d10a bne.n 80096a6 - 8009690: 6878 ldr r0, [r7, #4] - 8009692: f000 fd67 bl 800a164 - 8009696: 4603 mov r3, r0 - 8009698: 461a mov r2, r3 - 800969a: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 800969e: 4293 cmp r3, r2 - 80096a0: d101 bne.n 80096a6 - 80096a2: 2300 movs r3, #0 - 80096a4: e07d b.n 80097a2 + 8009612: 6878 ldr r0, [r7, #4] + 8009614: f000 fd62 bl 800a0dc + 8009618: 4603 mov r3, r0 + 800961a: 461a mov r2, r3 + 800961c: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c + 8009620: 4293 cmp r3, r2 + 8009622: d10a bne.n 800963a + 8009624: 6878 ldr r0, [r7, #4] + 8009626: f000 fd67 bl 800a0f8 + 800962a: 4603 mov r3, r0 + 800962c: 461a mov r2, r3 + 800962e: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 8009632: 4293 cmp r3, r2 + 8009634: d101 bne.n 800963a + 8009636: 2300 movs r3, #0 + 8009638: e07d b.n 8009736 /*Invalidate the original area*/ lv_obj_invalidate(obj); - 80096a6: 6878 ldr r0, [r7, #4] - 80096a8: f001 fa03 bl 800aab2 + 800963a: 6878 ldr r0, [r7, #4] + 800963c: f001 fa03 bl 800aa46 /*Save the original coordinates*/ lv_area_t ori; lv_obj_get_coords(obj, &ori); - 80096ac: f107 0310 add.w r3, r7, #16 - 80096b0: 4619 mov r1, r3 - 80096b2: 6878 ldr r0, [r7, #4] - 80096b4: f000 fcaa bl 800a00c + 8009640: f107 0310 add.w r3, r7, #16 + 8009644: 4619 mov r1, r3 + 8009646: 6878 ldr r0, [r7, #4] + 8009648: f000 fcaa bl 8009fa0 /*Check if the object inside the parent or not*/ lv_area_t parent_fit_area; lv_obj_get_content_coords(parent, &parent_fit_area); - 80096b8: f107 0308 add.w r3, r7, #8 - 80096bc: 4619 mov r1, r3 - 80096be: 6b78 ldr r0, [r7, #52] ; 0x34 - 80096c0: f000 fdb4 bl 800a22c + 800964c: f107 0308 add.w r3, r7, #8 + 8009650: 4619 mov r1, r3 + 8009652: 6b78 ldr r0, [r7, #52] ; 0x34 + 8009654: f000 fdb4 bl 800a1c0 /*If the object is already out of the parent and its position is changes *surely the scrollbars also changes so invalidate them*/ bool on1 = _lv_area_is_in(&ori, &parent_fit_area, 0); - 80096c4: f107 0108 add.w r1, r7, #8 - 80096c8: f107 0310 add.w r3, r7, #16 - 80096cc: 2200 movs r2, #0 - 80096ce: 4618 mov r0, r3 - 80096d0: f027 fec9 bl 8031466 <_lv_area_is_in> - 80096d4: 4603 mov r3, r0 - 80096d6: 76fb strb r3, [r7, #27] + 8009658: f107 0108 add.w r1, r7, #8 + 800965c: f107 0310 add.w r3, r7, #16 + 8009660: 2200 movs r2, #0 + 8009662: 4618 mov r0, r3 + 8009664: f027 feb5 bl 80313d2 <_lv_area_is_in> + 8009668: 4603 mov r3, r0 + 800966a: 76fb strb r3, [r7, #27] if(!on1) lv_obj_scrollbar_invalidate(parent); - 80096d8: 7efb ldrb r3, [r7, #27] - 80096da: f083 0301 eor.w r3, r3, #1 - 80096de: b2db uxtb r3, r3 - 80096e0: 2b00 cmp r3, #0 - 80096e2: d002 beq.n 80096ea - 80096e4: 6b78 ldr r0, [r7, #52] ; 0x34 - 80096e6: f003 fbc5 bl 800ce74 + 800966c: 7efb ldrb r3, [r7, #27] + 800966e: f083 0301 eor.w r3, r3, #1 + 8009672: b2db uxtb r3, r3 + 8009674: 2b00 cmp r3, #0 + 8009676: d002 beq.n 800967e + 8009678: 6b78 ldr r0, [r7, #52] ; 0x34 + 800967a: f003 fbc5 bl 800ce08 /*Set the length and height *Be sure the content is not scrolled in an invalid position on the new size*/ obj->coords.y2 = obj->coords.y1 + h - 1; - 80096ea: 687b ldr r3, [r7, #4] - 80096ec: f9b3 3016 ldrsh.w r3, [r3, #22] - 80096f0: b29a uxth r2, r3 - 80096f2: 8f7b ldrh r3, [r7, #58] ; 0x3a - 80096f4: 4413 add r3, r2 - 80096f6: b29b uxth r3, r3 - 80096f8: 3b01 subs r3, #1 - 80096fa: b29b uxth r3, r3 - 80096fc: b21a sxth r2, r3 - 80096fe: 687b ldr r3, [r7, #4] - 8009700: 835a strh r2, [r3, #26] + 800967e: 687b ldr r3, [r7, #4] + 8009680: f9b3 3016 ldrsh.w r3, [r3, #22] + 8009684: b29a uxth r2, r3 + 8009686: 8f7b ldrh r3, [r7, #58] ; 0x3a + 8009688: 4413 add r3, r2 + 800968a: b29b uxth r3, r3 + 800968c: 3b01 subs r3, #1 + 800968e: b29b uxth r3, r3 + 8009690: b21a sxth r2, r3 + 8009692: 687b ldr r3, [r7, #4] + 8009694: 835a strh r2, [r3, #26] if(lv_obj_get_style_base_dir(obj, LV_PART_MAIN) == LV_BASE_DIR_RTL) { - 8009702: 2100 movs r1, #0 - 8009704: 6878 ldr r0, [r7, #4] - 8009706: f7ff fda0 bl 800924a - 800970a: 4603 mov r3, r0 - 800970c: 2b01 cmp r3, #1 - 800970e: d10f bne.n 8009730 + 8009696: 2100 movs r1, #0 + 8009698: 6878 ldr r0, [r7, #4] + 800969a: f7ff fda0 bl 80091de + 800969e: 4603 mov r3, r0 + 80096a0: 2b01 cmp r3, #1 + 80096a2: d10f bne.n 80096c4 obj->coords.x1 = obj->coords.x2 - w + 1; - 8009710: 687b ldr r3, [r7, #4] - 8009712: f9b3 3018 ldrsh.w r3, [r3, #24] - 8009716: b29a uxth r2, r3 - 8009718: 8fbb ldrh r3, [r7, #60] ; 0x3c - 800971a: 1ad3 subs r3, r2, r3 - 800971c: b29b uxth r3, r3 - 800971e: 3301 adds r3, #1 - 8009720: b29b uxth r3, r3 - 8009722: b21a sxth r2, r3 - 8009724: 687b ldr r3, [r7, #4] - 8009726: 829a strh r2, [r3, #20] - 8009728: e00e b.n 8009748 - 800972a: bf00 nop - 800972c: 51eb851f .word 0x51eb851f + 80096a4: 687b ldr r3, [r7, #4] + 80096a6: f9b3 3018 ldrsh.w r3, [r3, #24] + 80096aa: b29a uxth r2, r3 + 80096ac: 8fbb ldrh r3, [r7, #60] ; 0x3c + 80096ae: 1ad3 subs r3, r2, r3 + 80096b0: b29b uxth r3, r3 + 80096b2: 3301 adds r3, #1 + 80096b4: b29b uxth r3, r3 + 80096b6: b21a sxth r2, r3 + 80096b8: 687b ldr r3, [r7, #4] + 80096ba: 829a strh r2, [r3, #20] + 80096bc: e00e b.n 80096dc + 80096be: bf00 nop + 80096c0: 51eb851f .word 0x51eb851f } else { obj->coords.x2 = obj->coords.x1 + w - 1; - 8009730: 687b ldr r3, [r7, #4] - 8009732: f9b3 3014 ldrsh.w r3, [r3, #20] - 8009736: b29a uxth r2, r3 - 8009738: 8fbb ldrh r3, [r7, #60] ; 0x3c - 800973a: 4413 add r3, r2 - 800973c: b29b uxth r3, r3 - 800973e: 3b01 subs r3, #1 - 8009740: b29b uxth r3, r3 - 8009742: b21a sxth r2, r3 - 8009744: 687b ldr r3, [r7, #4] - 8009746: 831a strh r2, [r3, #24] + 80096c4: 687b ldr r3, [r7, #4] + 80096c6: f9b3 3014 ldrsh.w r3, [r3, #20] + 80096ca: b29a uxth r2, r3 + 80096cc: 8fbb ldrh r3, [r7, #60] ; 0x3c + 80096ce: 4413 add r3, r2 + 80096d0: b29b uxth r3, r3 + 80096d2: 3b01 subs r3, #1 + 80096d4: b29b uxth r3, r3 + 80096d6: b21a sxth r2, r3 + 80096d8: 687b ldr r3, [r7, #4] + 80096da: 831a strh r2, [r3, #24] } /*Call the ancestor's event handler to the object with its new coordinates*/ lv_event_send(obj, LV_EVENT_SIZE_CHANGED, &ori); - 8009748: f107 0310 add.w r3, r7, #16 - 800974c: 461a mov r2, r3 - 800974e: 2129 movs r1, #41 ; 0x29 - 8009750: 6878 ldr r0, [r7, #4] - 8009752: f7f8 fe95 bl 8002480 + 80096dc: f107 0310 add.w r3, r7, #16 + 80096e0: 461a mov r2, r3 + 80096e2: 2129 movs r1, #41 ; 0x29 + 80096e4: 6878 ldr r0, [r7, #4] + 80096e6: f7f8 fe95 bl 8002414 /*Call the ancestor's event handler to the parent too*/ lv_event_send(parent, LV_EVENT_CHILD_CHANGED, obj); - 8009756: 687a ldr r2, [r7, #4] - 8009758: 2122 movs r1, #34 ; 0x22 - 800975a: 6b78 ldr r0, [r7, #52] ; 0x34 - 800975c: f7f8 fe90 bl 8002480 + 80096ea: 687a ldr r2, [r7, #4] + 80096ec: 2122 movs r1, #34 ; 0x22 + 80096ee: 6b78 ldr r0, [r7, #52] ; 0x34 + 80096f0: f7f8 fe90 bl 8002414 /*Invalidate the new area*/ lv_obj_invalidate(obj); - 8009760: 6878 ldr r0, [r7, #4] - 8009762: f001 f9a6 bl 800aab2 + 80096f4: 6878 ldr r0, [r7, #4] + 80096f6: f001 f9a6 bl 800aa46 lv_obj_readjust_scroll(obj, LV_ANIM_OFF); - 8009766: 2100 movs r1, #0 - 8009768: 6878 ldr r0, [r7, #4] - 800976a: f003 fbc0 bl 800ceee + 80096fa: 2100 movs r1, #0 + 80096fc: 6878 ldr r0, [r7, #4] + 80096fe: f003 fbc0 bl 800ce82 /*If the object was out of the parent invalidate the new scrollbar area too. *If it wasn't out of the parent but out now, also invalidate the scrollbars*/ bool on2 = _lv_area_is_in(&obj->coords, &parent_fit_area, 0); - 800976e: 687b ldr r3, [r7, #4] - 8009770: 3314 adds r3, #20 - 8009772: f107 0108 add.w r1, r7, #8 - 8009776: 2200 movs r2, #0 - 8009778: 4618 mov r0, r3 - 800977a: f027 fe74 bl 8031466 <_lv_area_is_in> - 800977e: 4603 mov r3, r0 - 8009780: 76bb strb r3, [r7, #26] + 8009702: 687b ldr r3, [r7, #4] + 8009704: 3314 adds r3, #20 + 8009706: f107 0108 add.w r1, r7, #8 + 800970a: 2200 movs r2, #0 + 800970c: 4618 mov r0, r3 + 800970e: f027 fe60 bl 80313d2 <_lv_area_is_in> + 8009712: 4603 mov r3, r0 + 8009714: 76bb strb r3, [r7, #26] if(on1 || (!on1 && on2)) lv_obj_scrollbar_invalidate(parent); - 8009782: 7efb ldrb r3, [r7, #27] - 8009784: 2b00 cmp r3, #0 - 8009786: d108 bne.n 800979a - 8009788: 7efb ldrb r3, [r7, #27] - 800978a: f083 0301 eor.w r3, r3, #1 - 800978e: b2db uxtb r3, r3 - 8009790: 2b00 cmp r3, #0 - 8009792: d005 beq.n 80097a0 - 8009794: 7ebb ldrb r3, [r7, #26] - 8009796: 2b00 cmp r3, #0 - 8009798: d002 beq.n 80097a0 - 800979a: 6b78 ldr r0, [r7, #52] ; 0x34 - 800979c: f003 fb6a bl 800ce74 + 8009716: 7efb ldrb r3, [r7, #27] + 8009718: 2b00 cmp r3, #0 + 800971a: d108 bne.n 800972e + 800971c: 7efb ldrb r3, [r7, #27] + 800971e: f083 0301 eor.w r3, r3, #1 + 8009722: b2db uxtb r3, r3 + 8009724: 2b00 cmp r3, #0 + 8009726: d005 beq.n 8009734 + 8009728: 7ebb ldrb r3, [r7, #26] + 800972a: 2b00 cmp r3, #0 + 800972c: d002 beq.n 8009734 + 800972e: 6b78 ldr r0, [r7, #52] ; 0x34 + 8009730: f003 fb6a bl 800ce08 return true; - 80097a0: 2301 movs r3, #1 + 8009734: 2301 movs r3, #1 } - 80097a2: 4618 mov r0, r3 - 80097a4: 3740 adds r7, #64 ; 0x40 - 80097a6: 46bd mov sp, r7 - 80097a8: bd80 pop {r7, pc} - 80097aa: bf00 nop + 8009736: 4618 mov r0, r3 + 8009738: 3740 adds r7, #64 ; 0x40 + 800973a: 46bd mov sp, r7 + 800973c: bd80 pop {r7, pc} + 800973e: bf00 nop -080097ac : +08009740 : void lv_obj_set_size(lv_obj_t * obj, lv_coord_t w, lv_coord_t h) { - 80097ac: b580 push {r7, lr} - 80097ae: b082 sub sp, #8 - 80097b0: af00 add r7, sp, #0 - 80097b2: 6078 str r0, [r7, #4] - 80097b4: 460b mov r3, r1 - 80097b6: 807b strh r3, [r7, #2] - 80097b8: 4613 mov r3, r2 - 80097ba: 803b strh r3, [r7, #0] + 8009740: b580 push {r7, lr} + 8009742: b082 sub sp, #8 + 8009744: af00 add r7, sp, #0 + 8009746: 6078 str r0, [r7, #4] + 8009748: 460b mov r3, r1 + 800974a: 807b strh r3, [r7, #2] + 800974c: 4613 mov r3, r2 + 800974e: 803b strh r3, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_obj_set_width(obj, w); - 80097bc: f9b7 3002 ldrsh.w r3, [r7, #2] - 80097c0: 4619 mov r1, r3 - 80097c2: 6878 ldr r0, [r7, #4] - 80097c4: f000 f80a bl 80097dc + 8009750: f9b7 3002 ldrsh.w r3, [r7, #2] + 8009754: 4619 mov r1, r3 + 8009756: 6878 ldr r0, [r7, #4] + 8009758: f000 f80a bl 8009770 lv_obj_set_height(obj, h); - 80097c8: f9b7 3000 ldrsh.w r3, [r7] - 80097cc: 4619 mov r1, r3 - 80097ce: 6878 ldr r0, [r7, #4] - 80097d0: f000 f82a bl 8009828 + 800975c: f9b7 3000 ldrsh.w r3, [r7] + 8009760: 4619 mov r1, r3 + 8009762: 6878 ldr r0, [r7, #4] + 8009764: f000 f82a bl 80097bc } - 80097d4: bf00 nop - 80097d6: 3708 adds r7, #8 - 80097d8: 46bd mov sp, r7 - 80097da: bd80 pop {r7, pc} + 8009768: bf00 nop + 800976a: 3708 adds r7, #8 + 800976c: 46bd mov sp, r7 + 800976e: bd80 pop {r7, pc} -080097dc : +08009770 : void lv_obj_set_width(lv_obj_t * obj, lv_coord_t w) { - 80097dc: b580 push {r7, lr} - 80097de: b084 sub sp, #16 - 80097e0: af00 add r7, sp, #0 - 80097e2: 6078 str r0, [r7, #4] - 80097e4: 460b mov r3, r1 - 80097e6: 807b strh r3, [r7, #2] + 8009770: b580 push {r7, lr} + 8009772: b084 sub sp, #16 + 8009774: af00 add r7, sp, #0 + 8009776: 6078 str r0, [r7, #4] + 8009778: 460b mov r3, r1 + 800977a: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_res_t res_w; lv_style_value_t v_w; res_w = lv_obj_get_local_style_prop(obj, LV_STYLE_WIDTH, &v_w, 0); - 80097e8: f107 0208 add.w r2, r7, #8 - 80097ec: 2300 movs r3, #0 - 80097ee: f241 0101 movw r1, #4097 ; 0x1001 - 80097f2: 6878 ldr r0, [r7, #4] - 80097f4: f004 fb91 bl 800df1a - 80097f8: 4603 mov r3, r0 - 80097fa: 73fb strb r3, [r7, #15] + 800977c: f107 0208 add.w r2, r7, #8 + 8009780: 2300 movs r3, #0 + 8009782: f241 0101 movw r1, #4097 ; 0x1001 + 8009786: 6878 ldr r0, [r7, #4] + 8009788: f004 fb91 bl 800deae + 800978c: 4603 mov r3, r0 + 800978e: 73fb strb r3, [r7, #15] if((res_w == LV_RES_OK && v_w.num != w) || res_w == LV_RES_INV) { - 80097fc: 7bfb ldrb r3, [r7, #15] - 80097fe: 2b01 cmp r3, #1 - 8009800: d104 bne.n 800980c - 8009802: 68ba ldr r2, [r7, #8] - 8009804: f9b7 3002 ldrsh.w r3, [r7, #2] - 8009808: 429a cmp r2, r3 - 800980a: d102 bne.n 8009812 - 800980c: 7bfb ldrb r3, [r7, #15] - 800980e: 2b00 cmp r3, #0 - 8009810: d106 bne.n 8009820 + 8009790: 7bfb ldrb r3, [r7, #15] + 8009792: 2b01 cmp r3, #1 + 8009794: d104 bne.n 80097a0 + 8009796: 68ba ldr r2, [r7, #8] + 8009798: f9b7 3002 ldrsh.w r3, [r7, #2] + 800979c: 429a cmp r2, r3 + 800979e: d102 bne.n 80097a6 + 80097a0: 7bfb ldrb r3, [r7, #15] + 80097a2: 2b00 cmp r3, #0 + 80097a4: d106 bne.n 80097b4 lv_obj_set_style_width(obj, w, 0); - 8009812: f9b7 3002 ldrsh.w r3, [r7, #2] - 8009816: 2200 movs r2, #0 - 8009818: 4619 mov r1, r3 - 800981a: 6878 ldr r0, [r7, #4] - 800981c: f005 fce0 bl 800f1e0 + 80097a6: f9b7 3002 ldrsh.w r3, [r7, #2] + 80097aa: 2200 movs r2, #0 + 80097ac: 4619 mov r1, r3 + 80097ae: 6878 ldr r0, [r7, #4] + 80097b0: f005 fce0 bl 800f174 } } - 8009820: bf00 nop - 8009822: 3710 adds r7, #16 - 8009824: 46bd mov sp, r7 - 8009826: bd80 pop {r7, pc} + 80097b4: bf00 nop + 80097b6: 3710 adds r7, #16 + 80097b8: 46bd mov sp, r7 + 80097ba: bd80 pop {r7, pc} -08009828 : +080097bc : void lv_obj_set_height(lv_obj_t * obj, lv_coord_t h) { - 8009828: b580 push {r7, lr} - 800982a: b084 sub sp, #16 - 800982c: af00 add r7, sp, #0 - 800982e: 6078 str r0, [r7, #4] - 8009830: 460b mov r3, r1 - 8009832: 807b strh r3, [r7, #2] + 80097bc: b580 push {r7, lr} + 80097be: b084 sub sp, #16 + 80097c0: af00 add r7, sp, #0 + 80097c2: 6078 str r0, [r7, #4] + 80097c4: 460b mov r3, r1 + 80097c6: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_res_t res_h; lv_style_value_t v_h; res_h = lv_obj_get_local_style_prop(obj, LV_STYLE_HEIGHT, &v_h, 0); - 8009834: f107 0208 add.w r2, r7, #8 - 8009838: 2300 movs r3, #0 - 800983a: f241 0104 movw r1, #4100 ; 0x1004 - 800983e: 6878 ldr r0, [r7, #4] - 8009840: f004 fb6b bl 800df1a - 8009844: 4603 mov r3, r0 - 8009846: 73fb strb r3, [r7, #15] + 80097c8: f107 0208 add.w r2, r7, #8 + 80097cc: 2300 movs r3, #0 + 80097ce: f241 0104 movw r1, #4100 ; 0x1004 + 80097d2: 6878 ldr r0, [r7, #4] + 80097d4: f004 fb6b bl 800deae + 80097d8: 4603 mov r3, r0 + 80097da: 73fb strb r3, [r7, #15] if((res_h == LV_RES_OK && v_h.num != h) || res_h == LV_RES_INV) { - 8009848: 7bfb ldrb r3, [r7, #15] - 800984a: 2b01 cmp r3, #1 - 800984c: d104 bne.n 8009858 - 800984e: 68ba ldr r2, [r7, #8] - 8009850: f9b7 3002 ldrsh.w r3, [r7, #2] - 8009854: 429a cmp r2, r3 - 8009856: d102 bne.n 800985e - 8009858: 7bfb ldrb r3, [r7, #15] - 800985a: 2b00 cmp r3, #0 - 800985c: d106 bne.n 800986c + 80097dc: 7bfb ldrb r3, [r7, #15] + 80097de: 2b01 cmp r3, #1 + 80097e0: d104 bne.n 80097ec + 80097e2: 68ba ldr r2, [r7, #8] + 80097e4: f9b7 3002 ldrsh.w r3, [r7, #2] + 80097e8: 429a cmp r2, r3 + 80097ea: d102 bne.n 80097f2 + 80097ec: 7bfb ldrb r3, [r7, #15] + 80097ee: 2b00 cmp r3, #0 + 80097f0: d106 bne.n 8009800 lv_obj_set_style_height(obj, h, 0); - 800985e: f9b7 3002 ldrsh.w r3, [r7, #2] - 8009862: 2200 movs r2, #0 - 8009864: 4619 mov r1, r3 - 8009866: 6878 ldr r0, [r7, #4] - 8009868: f005 fce4 bl 800f234 + 80097f2: f9b7 3002 ldrsh.w r3, [r7, #2] + 80097f6: 2200 movs r2, #0 + 80097f8: 4619 mov r1, r3 + 80097fa: 6878 ldr r0, [r7, #4] + 80097fc: f005 fce4 bl 800f1c8 } } - 800986c: bf00 nop - 800986e: 3710 adds r7, #16 - 8009870: 46bd mov sp, r7 - 8009872: bd80 pop {r7, pc} + 8009800: bf00 nop + 8009802: 3710 adds r7, #16 + 8009804: 46bd mov sp, r7 + 8009806: bd80 pop {r7, pc} -08009874 : +08009808 : lv_obj_set_height(obj, h + ptop + pbottom + 2 * border_width); } void lv_obj_set_layout(lv_obj_t * obj, uint32_t layout) { - 8009874: b580 push {r7, lr} - 8009876: b082 sub sp, #8 - 8009878: af00 add r7, sp, #0 - 800987a: 6078 str r0, [r7, #4] - 800987c: 6039 str r1, [r7, #0] + 8009808: b580 push {r7, lr} + 800980a: b082 sub sp, #8 + 800980c: af00 add r7, sp, #0 + 800980e: 6078 str r0, [r7, #4] + 8009810: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_obj_set_style_layout(obj, layout, 0); - 800987e: 683b ldr r3, [r7, #0] - 8009880: b29b uxth r3, r3 - 8009882: 2200 movs r2, #0 - 8009884: 4619 mov r1, r3 - 8009886: 6878 ldr r0, [r7, #4] - 8009888: f005 fd62 bl 800f350 + 8009812: 683b ldr r3, [r7, #0] + 8009814: b29b uxth r3, r3 + 8009816: 2200 movs r2, #0 + 8009818: 4619 mov r1, r3 + 800981a: 6878 ldr r0, [r7, #4] + 800981c: f005 fd4e bl 800f2bc lv_obj_mark_layout_as_dirty(obj); - 800988c: 6878 ldr r0, [r7, #4] - 800988e: f000 f82d bl 80098ec + 8009820: 6878 ldr r0, [r7, #4] + 8009822: f000 f82d bl 8009880 } - 8009892: bf00 nop - 8009894: 3708 adds r7, #8 - 8009896: 46bd mov sp, r7 - 8009898: bd80 pop {r7, pc} + 8009826: bf00 nop + 8009828: 3708 adds r7, #8 + 800982a: 46bd mov sp, r7 + 800982c: bd80 pop {r7, pc} ... -0800989c : +08009830 : bool lv_obj_is_layout_positioned(const lv_obj_t * obj) { - 800989c: b580 push {r7, lr} - 800989e: b084 sub sp, #16 - 80098a0: af00 add r7, sp, #0 - 80098a2: 6078 str r0, [r7, #4] + 8009830: b580 push {r7, lr} + 8009832: b084 sub sp, #16 + 8009834: af00 add r7, sp, #0 + 8009836: 6078 str r0, [r7, #4] if(lv_obj_has_flag_any(obj, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_FLOATING)) return false; - 80098a4: 4910 ldr r1, [pc, #64] ; (80098e8 ) - 80098a6: 6878 ldr r0, [r7, #4] - 80098a8: f7fc ff7f bl 80067aa - 80098ac: 4603 mov r3, r0 - 80098ae: 2b00 cmp r3, #0 - 80098b0: d001 beq.n 80098b6 - 80098b2: 2300 movs r3, #0 - 80098b4: e014 b.n 80098e0 + 8009838: 4910 ldr r1, [pc, #64] ; (800987c ) + 800983a: 6878 ldr r0, [r7, #4] + 800983c: f7fc ff7f bl 800673e + 8009840: 4603 mov r3, r0 + 8009842: 2b00 cmp r3, #0 + 8009844: d001 beq.n 800984a + 8009846: 2300 movs r3, #0 + 8009848: e014 b.n 8009874 lv_obj_t * parent = lv_obj_get_parent(obj); - 80098b6: 6878 ldr r0, [r7, #4] - 80098b8: f005 ff28 bl 800f70c - 80098bc: 60f8 str r0, [r7, #12] + 800984a: 6878 ldr r0, [r7, #4] + 800984c: f005 ff14 bl 800f678 + 8009850: 60f8 str r0, [r7, #12] if(parent == NULL) return false; - 80098be: 68fb ldr r3, [r7, #12] - 80098c0: 2b00 cmp r3, #0 - 80098c2: d101 bne.n 80098c8 - 80098c4: 2300 movs r3, #0 - 80098c6: e00b b.n 80098e0 + 8009852: 68fb ldr r3, [r7, #12] + 8009854: 2b00 cmp r3, #0 + 8009856: d101 bne.n 800985c + 8009858: 2300 movs r3, #0 + 800985a: e00b b.n 8009874 uint32_t layout = lv_obj_get_style_layout(parent, LV_PART_MAIN); - 80098c8: 2100 movs r1, #0 - 80098ca: 68f8 ldr r0, [r7, #12] - 80098cc: f7ff fcaa bl 8009224 - 80098d0: 4603 mov r3, r0 - 80098d2: 60bb str r3, [r7, #8] + 800985c: 2100 movs r1, #0 + 800985e: 68f8 ldr r0, [r7, #12] + 8009860: f7ff fcaa bl 80091b8 + 8009864: 4603 mov r3, r0 + 8009866: 60bb str r3, [r7, #8] if(layout) return true; - 80098d4: 68bb ldr r3, [r7, #8] - 80098d6: 2b00 cmp r3, #0 - 80098d8: d001 beq.n 80098de - 80098da: 2301 movs r3, #1 - 80098dc: e000 b.n 80098e0 + 8009868: 68bb ldr r3, [r7, #8] + 800986a: 2b00 cmp r3, #0 + 800986c: d001 beq.n 8009872 + 800986e: 2301 movs r3, #1 + 8009870: e000 b.n 8009874 else return false; - 80098de: 2300 movs r3, #0 + 8009872: 2300 movs r3, #0 } - 80098e0: 4618 mov r0, r3 - 80098e2: 3710 adds r7, #16 - 80098e4: 46bd mov sp, r7 - 80098e6: bd80 pop {r7, pc} - 80098e8: 00060001 .word 0x00060001 + 8009874: 4618 mov r0, r3 + 8009876: 3710 adds r7, #16 + 8009878: 46bd mov sp, r7 + 800987a: bd80 pop {r7, pc} + 800987c: 00060001 .word 0x00060001 -080098ec : +08009880 : void lv_obj_mark_layout_as_dirty(lv_obj_t * obj) { - 80098ec: b580 push {r7, lr} - 80098ee: b084 sub sp, #16 - 80098f0: af00 add r7, sp, #0 - 80098f2: 6078 str r0, [r7, #4] + 8009880: b580 push {r7, lr} + 8009882: b084 sub sp, #16 + 8009884: af00 add r7, sp, #0 + 8009886: 6078 str r0, [r7, #4] obj->layout_inv = 1; - 80098f4: 687a ldr r2, [r7, #4] - 80098f6: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 80098fa: f043 0301 orr.w r3, r3, #1 - 80098fe: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 8009888: 687a ldr r2, [r7, #4] + 800988a: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 800988e: f043 0301 orr.w r3, r3, #1 + 8009892: f882 3022 strb.w r3, [r2, #34] ; 0x22 /*Mark the screen as dirty too to mark that there is something to do on this screen*/ lv_obj_t * scr = lv_obj_get_screen(obj); - 8009902: 6878 ldr r0, [r7, #4] - 8009904: f005 feb4 bl 800f670 - 8009908: 60f8 str r0, [r7, #12] + 8009896: 6878 ldr r0, [r7, #4] + 8009898: f005 fea0 bl 800f5dc + 800989c: 60f8 str r0, [r7, #12] scr->scr_layout_inv = 1; - 800990a: 68fa ldr r2, [r7, #12] - 800990c: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 8009910: f043 0302 orr.w r3, r3, #2 - 8009914: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 800989e: 68fa ldr r2, [r7, #12] + 80098a0: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 80098a4: f043 0302 orr.w r3, r3, #2 + 80098a8: f882 3022 strb.w r3, [r2, #34] ; 0x22 /*Make the display refreshing*/ lv_disp_t * disp = lv_obj_get_disp(scr); - 8009918: 68f8 ldr r0, [r7, #12] - 800991a: f005 febd bl 800f698 - 800991e: 60b8 str r0, [r7, #8] + 80098ac: 68f8 ldr r0, [r7, #12] + 80098ae: f005 fea9 bl 800f604 + 80098b2: 60b8 str r0, [r7, #8] if(disp->refr_timer) lv_timer_resume(disp->refr_timer); - 8009920: 68bb ldr r3, [r7, #8] - 8009922: 685b ldr r3, [r3, #4] - 8009924: 2b00 cmp r3, #0 - 8009926: d004 beq.n 8009932 - 8009928: 68bb ldr r3, [r7, #8] - 800992a: 685b ldr r3, [r3, #4] - 800992c: 4618 mov r0, r3 - 800992e: f02b fc3b bl 80351a8 + 80098b4: 68bb ldr r3, [r7, #8] + 80098b6: 685b ldr r3, [r3, #4] + 80098b8: 2b00 cmp r3, #0 + 80098ba: d004 beq.n 80098c6 + 80098bc: 68bb ldr r3, [r7, #8] + 80098be: 685b ldr r3, [r3, #4] + 80098c0: 4618 mov r0, r3 + 80098c2: f02b fc27 bl 8035114 } - 8009932: bf00 nop - 8009934: 3710 adds r7, #16 - 8009936: 46bd mov sp, r7 - 8009938: bd80 pop {r7, pc} + 80098c6: bf00 nop + 80098c8: 3710 adds r7, #16 + 80098ca: 46bd mov sp, r7 + 80098cc: bd80 pop {r7, pc} ... -0800993c : +080098d0 : void lv_obj_update_layout(const lv_obj_t * obj) { - 800993c: b580 push {r7, lr} - 800993e: b084 sub sp, #16 - 8009940: af00 add r7, sp, #0 - 8009942: 6078 str r0, [r7, #4] + 80098d0: b580 push {r7, lr} + 80098d2: b084 sub sp, #16 + 80098d4: af00 add r7, sp, #0 + 80098d6: 6078 str r0, [r7, #4] static bool mutex = false; if(mutex) { - 8009944: 4b12 ldr r3, [pc, #72] ; (8009990 ) - 8009946: 781b ldrb r3, [r3, #0] - 8009948: 2b00 cmp r3, #0 - 800994a: d11d bne.n 8009988 + 80098d8: 4b12 ldr r3, [pc, #72] ; (8009924 ) + 80098da: 781b ldrb r3, [r3, #0] + 80098dc: 2b00 cmp r3, #0 + 80098de: d11d bne.n 800991c LV_LOG_TRACE("Already running, returning"); return; } mutex = true; - 800994c: 4b10 ldr r3, [pc, #64] ; (8009990 ) - 800994e: 2201 movs r2, #1 - 8009950: 701a strb r2, [r3, #0] + 80098e0: 4b10 ldr r3, [pc, #64] ; (8009924 ) + 80098e2: 2201 movs r2, #1 + 80098e4: 701a strb r2, [r3, #0] lv_obj_t * scr = lv_obj_get_screen(obj); - 8009952: 6878 ldr r0, [r7, #4] - 8009954: f005 fe8c bl 800f670 - 8009958: 60f8 str r0, [r7, #12] + 80098e6: 6878 ldr r0, [r7, #4] + 80098e8: f005 fe78 bl 800f5dc + 80098ec: 60f8 str r0, [r7, #12] /*Repeat until there where layout invalidations*/ while(scr->scr_layout_inv) { - 800995a: e009 b.n 8009970 + 80098ee: e009 b.n 8009904 LV_LOG_INFO("Layout update begin"); scr->scr_layout_inv = 0; - 800995c: 68fa ldr r2, [r7, #12] - 800995e: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 8009962: f36f 0341 bfc r3, #1, #1 - 8009966: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 80098f0: 68fa ldr r2, [r7, #12] + 80098f2: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 80098f6: f36f 0341 bfc r3, #1, #1 + 80098fa: f882 3022 strb.w r3, [r2, #34] ; 0x22 layout_update_core(scr); - 800996a: 68f8 ldr r0, [r7, #12] - 800996c: f001 fdac bl 800b4c8 + 80098fe: 68f8 ldr r0, [r7, #12] + 8009900: f001 fdac bl 800b45c while(scr->scr_layout_inv) { - 8009970: 68fb ldr r3, [r7, #12] - 8009972: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 - 8009976: f003 0302 and.w r3, r3, #2 - 800997a: b2db uxtb r3, r3 - 800997c: 2b00 cmp r3, #0 - 800997e: d1ed bne.n 800995c + 8009904: 68fb ldr r3, [r7, #12] + 8009906: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 + 800990a: f003 0302 and.w r3, r3, #2 + 800990e: b2db uxtb r3, r3 + 8009910: 2b00 cmp r3, #0 + 8009912: d1ed bne.n 80098f0 LV_LOG_TRACE("Layout update end"); } mutex = false; - 8009980: 4b03 ldr r3, [pc, #12] ; (8009990 ) - 8009982: 2200 movs r2, #0 - 8009984: 701a strb r2, [r3, #0] - 8009986: e000 b.n 800998a + 8009914: 4b03 ldr r3, [pc, #12] ; (8009924 ) + 8009916: 2200 movs r2, #0 + 8009918: 701a strb r2, [r3, #0] + 800991a: e000 b.n 800991e return; - 8009988: bf00 nop + 800991c: bf00 nop } - 800998a: 3710 adds r7, #16 - 800998c: 46bd mov sp, r7 - 800998e: bd80 pop {r7, pc} - 8009990: 20001b08 .word 0x20001b08 + 800991e: 3710 adds r7, #16 + 8009920: 46bd mov sp, r7 + 8009922: bd80 pop {r7, pc} + 8009924: 20001b08 .word 0x20001b08 -08009994 : +08009928 : uint32_t lv_layout_register(lv_layout_update_cb_t cb, void * user_data) { - 8009994: b580 push {r7, lr} - 8009996: b082 sub sp, #8 - 8009998: af00 add r7, sp, #0 - 800999a: 6078 str r0, [r7, #4] - 800999c: 6039 str r1, [r7, #0] + 8009928: b580 push {r7, lr} + 800992a: b082 sub sp, #8 + 800992c: af00 add r7, sp, #0 + 800992e: 6078 str r0, [r7, #4] + 8009930: 6039 str r1, [r7, #0] layout_cnt++; - 800999e: 4b19 ldr r3, [pc, #100] ; (8009a04 ) - 80099a0: 681b ldr r3, [r3, #0] - 80099a2: 3301 adds r3, #1 - 80099a4: 4a17 ldr r2, [pc, #92] ; (8009a04 ) - 80099a6: 6013 str r3, [r2, #0] + 8009932: 4b19 ldr r3, [pc, #100] ; (8009998 ) + 8009934: 681b ldr r3, [r3, #0] + 8009936: 3301 adds r3, #1 + 8009938: 4a17 ldr r2, [pc, #92] ; (8009998 ) + 800993a: 6013 str r3, [r2, #0] LV_GC_ROOT(_lv_layout_list) = lv_mem_realloc(LV_GC_ROOT(_lv_layout_list), layout_cnt * sizeof(lv_layout_dsc_t)); - 80099a8: 4b17 ldr r3, [pc, #92] ; (8009a08 ) - 80099aa: 681a ldr r2, [r3, #0] - 80099ac: 4b15 ldr r3, [pc, #84] ; (8009a04 ) - 80099ae: 681b ldr r3, [r3, #0] - 80099b0: 00db lsls r3, r3, #3 - 80099b2: 4619 mov r1, r3 - 80099b4: 4610 mov r0, r2 - 80099b6: f028 ffad bl 8032914 - 80099ba: 4603 mov r3, r0 - 80099bc: 4a12 ldr r2, [pc, #72] ; (8009a08 ) - 80099be: 6013 str r3, [r2, #0] + 800993c: 4b17 ldr r3, [pc, #92] ; (800999c ) + 800993e: 681a ldr r2, [r3, #0] + 8009940: 4b15 ldr r3, [pc, #84] ; (8009998 ) + 8009942: 681b ldr r3, [r3, #0] + 8009944: 00db lsls r3, r3, #3 + 8009946: 4619 mov r1, r3 + 8009948: 4610 mov r0, r2 + 800994a: f028 ff99 bl 8032880 + 800994e: 4603 mov r3, r0 + 8009950: 4a12 ldr r2, [pc, #72] ; (800999c ) + 8009952: 6013 str r3, [r2, #0] LV_ASSERT_MALLOC(LV_GC_ROOT(_lv_layout_list)); - 80099c0: 4b11 ldr r3, [pc, #68] ; (8009a08 ) - 80099c2: 681b ldr r3, [r3, #0] - 80099c4: 2b00 cmp r3, #0 - 80099c6: d100 bne.n 80099ca - 80099c8: e7fe b.n 80099c8 + 8009954: 4b11 ldr r3, [pc, #68] ; (800999c ) + 8009956: 681b ldr r3, [r3, #0] + 8009958: 2b00 cmp r3, #0 + 800995a: d100 bne.n 800995e + 800995c: e7fe b.n 800995c LV_GC_ROOT(_lv_layout_list)[layout_cnt - 1].cb = cb; - 80099ca: 4b0f ldr r3, [pc, #60] ; (8009a08 ) - 80099cc: 681a ldr r2, [r3, #0] - 80099ce: 4b0d ldr r3, [pc, #52] ; (8009a04 ) - 80099d0: 681b ldr r3, [r3, #0] - 80099d2: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 - 80099d6: 3b01 subs r3, #1 - 80099d8: 00db lsls r3, r3, #3 - 80099da: 4413 add r3, r2 - 80099dc: 687a ldr r2, [r7, #4] - 80099de: 601a str r2, [r3, #0] + 800995e: 4b0f ldr r3, [pc, #60] ; (800999c ) + 8009960: 681a ldr r2, [r3, #0] + 8009962: 4b0d ldr r3, [pc, #52] ; (8009998 ) + 8009964: 681b ldr r3, [r3, #0] + 8009966: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 + 800996a: 3b01 subs r3, #1 + 800996c: 00db lsls r3, r3, #3 + 800996e: 4413 add r3, r2 + 8009970: 687a ldr r2, [r7, #4] + 8009972: 601a str r2, [r3, #0] LV_GC_ROOT(_lv_layout_list)[layout_cnt - 1].user_data = user_data; - 80099e0: 4b09 ldr r3, [pc, #36] ; (8009a08 ) - 80099e2: 681a ldr r2, [r3, #0] - 80099e4: 4b07 ldr r3, [pc, #28] ; (8009a04 ) - 80099e6: 681b ldr r3, [r3, #0] - 80099e8: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 - 80099ec: 3b01 subs r3, #1 - 80099ee: 00db lsls r3, r3, #3 - 80099f0: 4413 add r3, r2 - 80099f2: 683a ldr r2, [r7, #0] - 80099f4: 605a str r2, [r3, #4] + 8009974: 4b09 ldr r3, [pc, #36] ; (800999c ) + 8009976: 681a ldr r2, [r3, #0] + 8009978: 4b07 ldr r3, [pc, #28] ; (8009998 ) + 800997a: 681b ldr r3, [r3, #0] + 800997c: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 + 8009980: 3b01 subs r3, #1 + 8009982: 00db lsls r3, r3, #3 + 8009984: 4413 add r3, r2 + 8009986: 683a ldr r2, [r7, #0] + 8009988: 605a str r2, [r3, #4] return layout_cnt; /*No -1 to skip 0th index*/ - 80099f6: 4b03 ldr r3, [pc, #12] ; (8009a04 ) - 80099f8: 681b ldr r3, [r3, #0] + 800998a: 4b03 ldr r3, [pc, #12] ; (8009998 ) + 800998c: 681b ldr r3, [r3, #0] } - 80099fa: 4618 mov r0, r3 - 80099fc: 3708 adds r7, #8 - 80099fe: 46bd mov sp, r7 - 8009a00: bd80 pop {r7, pc} - 8009a02: bf00 nop - 8009a04: 20001b04 .word 0x20001b04 - 8009a08: 20001d64 .word 0x20001d64 + 800998e: 4618 mov r0, r3 + 8009990: 3708 adds r7, #8 + 8009992: 46bd mov sp, r7 + 8009994: bd80 pop {r7, pc} + 8009996: bf00 nop + 8009998: 20001b04 .word 0x20001b04 + 800999c: 20001d64 .word 0x20001d64 -08009a0c : +080099a0 : { lv_obj_set_style_align(obj, align, 0); } void lv_obj_align(lv_obj_t * obj, lv_align_t align, lv_coord_t x_ofs, lv_coord_t y_ofs) { - 8009a0c: b580 push {r7, lr} - 8009a0e: b084 sub sp, #16 - 8009a10: af00 add r7, sp, #0 - 8009a12: 60f8 str r0, [r7, #12] - 8009a14: 4608 mov r0, r1 - 8009a16: 4611 mov r1, r2 - 8009a18: 461a mov r2, r3 - 8009a1a: 4603 mov r3, r0 - 8009a1c: 72fb strb r3, [r7, #11] - 8009a1e: 460b mov r3, r1 - 8009a20: 813b strh r3, [r7, #8] - 8009a22: 4613 mov r3, r2 - 8009a24: 80fb strh r3, [r7, #6] + 80099a0: b580 push {r7, lr} + 80099a2: b084 sub sp, #16 + 80099a4: af00 add r7, sp, #0 + 80099a6: 60f8 str r0, [r7, #12] + 80099a8: 4608 mov r0, r1 + 80099aa: 4611 mov r1, r2 + 80099ac: 461a mov r2, r3 + 80099ae: 4603 mov r3, r0 + 80099b0: 72fb strb r3, [r7, #11] + 80099b2: 460b mov r3, r1 + 80099b4: 813b strh r3, [r7, #8] + 80099b6: 4613 mov r3, r2 + 80099b8: 80fb strh r3, [r7, #6] lv_obj_set_style_align(obj, align, 0); - 8009a26: 7afb ldrb r3, [r7, #11] - 8009a28: 2200 movs r2, #0 - 8009a2a: 4619 mov r1, r3 - 8009a2c: 68f8 ldr r0, [r7, #12] - 8009a2e: f005 fc40 bl 800f2b2 + 80099ba: 7afb ldrb r3, [r7, #11] + 80099bc: 2200 movs r2, #0 + 80099be: 4619 mov r1, r3 + 80099c0: 68f8 ldr r0, [r7, #12] + 80099c2: f005 fc40 bl 800f246 lv_obj_set_pos(obj, x_ofs, y_ofs); - 8009a32: f9b7 2006 ldrsh.w r2, [r7, #6] - 8009a36: f9b7 3008 ldrsh.w r3, [r7, #8] - 8009a3a: 4619 mov r1, r3 - 8009a3c: 68f8 ldr r0, [r7, #12] - 8009a3e: f7ff fc17 bl 8009270 + 80099c6: f9b7 2006 ldrsh.w r2, [r7, #6] + 80099ca: f9b7 3008 ldrsh.w r3, [r7, #8] + 80099ce: 4619 mov r1, r3 + 80099d0: 68f8 ldr r0, [r7, #12] + 80099d2: f7ff fc17 bl 8009204 } - 8009a42: bf00 nop - 8009a44: 3710 adds r7, #16 - 8009a46: 46bd mov sp, r7 - 8009a48: bd80 pop {r7, pc} + 80099d6: bf00 nop + 80099d8: 3710 adds r7, #16 + 80099da: 46bd mov sp, r7 + 80099dc: bd80 pop {r7, pc} ... -08009a4c : +080099e0 : void lv_obj_align_to(lv_obj_t * obj, const lv_obj_t * base, lv_align_t align, lv_coord_t x_ofs, lv_coord_t y_ofs) { - 8009a4c: b590 push {r4, r7, lr} - 8009a4e: b08b sub sp, #44 ; 0x2c - 8009a50: af00 add r7, sp, #0 - 8009a52: 60f8 str r0, [r7, #12] - 8009a54: 60b9 str r1, [r7, #8] - 8009a56: 4611 mov r1, r2 - 8009a58: 461a mov r2, r3 - 8009a5a: 460b mov r3, r1 - 8009a5c: 71fb strb r3, [r7, #7] - 8009a5e: 4613 mov r3, r2 - 8009a60: 80bb strh r3, [r7, #4] + 80099e0: b590 push {r4, r7, lr} + 80099e2: b08b sub sp, #44 ; 0x2c + 80099e4: af00 add r7, sp, #0 + 80099e6: 60f8 str r0, [r7, #12] + 80099e8: 60b9 str r1, [r7, #8] + 80099ea: 4611 mov r1, r2 + 80099ec: 461a mov r2, r3 + 80099ee: 460b mov r3, r1 + 80099f0: 71fb strb r3, [r7, #7] + 80099f2: 4613 mov r3, r2 + 80099f4: 80bb strh r3, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_obj_update_layout(obj); - 8009a62: 68f8 ldr r0, [r7, #12] - 8009a64: f7ff ff6a bl 800993c + 80099f6: 68f8 ldr r0, [r7, #12] + 80099f8: f7ff ff6a bl 80098d0 if(base == NULL) base = lv_obj_get_parent(obj); - 8009a68: 68bb ldr r3, [r7, #8] - 8009a6a: 2b00 cmp r3, #0 - 8009a6c: d103 bne.n 8009a76 - 8009a6e: 68f8 ldr r0, [r7, #12] - 8009a70: f005 fe4c bl 800f70c - 8009a74: 60b8 str r0, [r7, #8] + 80099fc: 68bb ldr r3, [r7, #8] + 80099fe: 2b00 cmp r3, #0 + 8009a00: d103 bne.n 8009a0a + 8009a02: 68f8 ldr r0, [r7, #12] + 8009a04: f005 fe38 bl 800f678 + 8009a08: 60b8 str r0, [r7, #8] LV_ASSERT_OBJ(base, MY_CLASS); lv_coord_t x = 0; - 8009a76: 2300 movs r3, #0 - 8009a78: 84fb strh r3, [r7, #38] ; 0x26 + 8009a0a: 2300 movs r3, #0 + 8009a0c: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t y = 0; - 8009a7a: 2300 movs r3, #0 - 8009a7c: 84bb strh r3, [r7, #36] ; 0x24 + 8009a0e: 2300 movs r3, #0 + 8009a10: 84bb strh r3, [r7, #36] ; 0x24 lv_obj_t * parent = lv_obj_get_parent(obj); - 8009a7e: 68f8 ldr r0, [r7, #12] - 8009a80: f005 fe44 bl 800f70c - 8009a84: 6238 str r0, [r7, #32] + 8009a12: 68f8 ldr r0, [r7, #12] + 8009a14: f005 fe30 bl 800f678 + 8009a18: 6238 str r0, [r7, #32] lv_coord_t pborder = lv_obj_get_style_border_width(parent, LV_PART_MAIN); - 8009a86: 2100 movs r1, #0 - 8009a88: 6a38 ldr r0, [r7, #32] - 8009a8a: f7ff fbb8 bl 80091fe - 8009a8e: 4603 mov r3, r0 - 8009a90: 83fb strh r3, [r7, #30] + 8009a1a: 2100 movs r1, #0 + 8009a1c: 6a38 ldr r0, [r7, #32] + 8009a1e: f7ff fbb8 bl 8009192 + 8009a22: 4603 mov r3, r0 + 8009a24: 83fb strh r3, [r7, #30] lv_coord_t pleft = lv_obj_get_style_pad_left(parent, LV_PART_MAIN) + pborder; - 8009a92: 2100 movs r1, #0 - 8009a94: 6a38 ldr r0, [r7, #32] - 8009a96: f7ff fb8c bl 80091b2 - 8009a9a: 4603 mov r3, r0 - 8009a9c: b29a uxth r2, r3 - 8009a9e: 8bfb ldrh r3, [r7, #30] - 8009aa0: 4413 add r3, r2 - 8009aa2: b29b uxth r3, r3 - 8009aa4: 83bb strh r3, [r7, #28] + 8009a26: 2100 movs r1, #0 + 8009a28: 6a38 ldr r0, [r7, #32] + 8009a2a: f7ff fb8c bl 8009146 + 8009a2e: 4603 mov r3, r0 + 8009a30: b29a uxth r2, r3 + 8009a32: 8bfb ldrh r3, [r7, #30] + 8009a34: 4413 add r3, r2 + 8009a36: b29b uxth r3, r3 + 8009a38: 83bb strh r3, [r7, #28] lv_coord_t ptop = lv_obj_get_style_pad_top(parent, LV_PART_MAIN) + pborder; - 8009aa6: 2100 movs r1, #0 - 8009aa8: 6a38 ldr r0, [r7, #32] - 8009aaa: f7ff fb5c bl 8009166 - 8009aae: 4603 mov r3, r0 - 8009ab0: b29a uxth r2, r3 - 8009ab2: 8bfb ldrh r3, [r7, #30] - 8009ab4: 4413 add r3, r2 - 8009ab6: b29b uxth r3, r3 - 8009ab8: 837b strh r3, [r7, #26] + 8009a3a: 2100 movs r1, #0 + 8009a3c: 6a38 ldr r0, [r7, #32] + 8009a3e: f7ff fb5c bl 80090fa + 8009a42: 4603 mov r3, r0 + 8009a44: b29a uxth r2, r3 + 8009a46: 8bfb ldrh r3, [r7, #30] + 8009a48: 4413 add r3, r2 + 8009a4a: b29b uxth r3, r3 + 8009a4c: 837b strh r3, [r7, #26] lv_coord_t bborder = lv_obj_get_style_border_width(base, LV_PART_MAIN); - 8009aba: 2100 movs r1, #0 - 8009abc: 68b8 ldr r0, [r7, #8] - 8009abe: f7ff fb9e bl 80091fe - 8009ac2: 4603 mov r3, r0 - 8009ac4: 833b strh r3, [r7, #24] + 8009a4e: 2100 movs r1, #0 + 8009a50: 68b8 ldr r0, [r7, #8] + 8009a52: f7ff fb9e bl 8009192 + 8009a56: 4603 mov r3, r0 + 8009a58: 833b strh r3, [r7, #24] lv_coord_t bleft = lv_obj_get_style_pad_left(base, LV_PART_MAIN) + bborder; - 8009ac6: 2100 movs r1, #0 - 8009ac8: 68b8 ldr r0, [r7, #8] - 8009aca: f7ff fb72 bl 80091b2 - 8009ace: 4603 mov r3, r0 - 8009ad0: b29a uxth r2, r3 - 8009ad2: 8b3b ldrh r3, [r7, #24] - 8009ad4: 4413 add r3, r2 - 8009ad6: b29b uxth r3, r3 - 8009ad8: 82fb strh r3, [r7, #22] + 8009a5a: 2100 movs r1, #0 + 8009a5c: 68b8 ldr r0, [r7, #8] + 8009a5e: f7ff fb72 bl 8009146 + 8009a62: 4603 mov r3, r0 + 8009a64: b29a uxth r2, r3 + 8009a66: 8b3b ldrh r3, [r7, #24] + 8009a68: 4413 add r3, r2 + 8009a6a: b29b uxth r3, r3 + 8009a6c: 82fb strh r3, [r7, #22] lv_coord_t btop = lv_obj_get_style_pad_top(base, LV_PART_MAIN) + bborder; - 8009ada: 2100 movs r1, #0 - 8009adc: 68b8 ldr r0, [r7, #8] - 8009ade: f7ff fb42 bl 8009166 - 8009ae2: 4603 mov r3, r0 - 8009ae4: b29a uxth r2, r3 - 8009ae6: 8b3b ldrh r3, [r7, #24] - 8009ae8: 4413 add r3, r2 - 8009aea: b29b uxth r3, r3 - 8009aec: 82bb strh r3, [r7, #20] + 8009a6e: 2100 movs r1, #0 + 8009a70: 68b8 ldr r0, [r7, #8] + 8009a72: f7ff fb42 bl 80090fa + 8009a76: 4603 mov r3, r0 + 8009a78: b29a uxth r2, r3 + 8009a7a: 8b3b ldrh r3, [r7, #24] + 8009a7c: 4413 add r3, r2 + 8009a7e: b29b uxth r3, r3 + 8009a80: 82bb strh r3, [r7, #20] if(align == LV_ALIGN_DEFAULT) { - 8009aee: 79fb ldrb r3, [r7, #7] - 8009af0: 2b00 cmp r3, #0 - 8009af2: d10b bne.n 8009b0c + 8009a82: 79fb ldrb r3, [r7, #7] + 8009a84: 2b00 cmp r3, #0 + 8009a86: d10b bne.n 8009aa0 if(lv_obj_get_style_base_dir(base, LV_PART_MAIN) == LV_BASE_DIR_RTL) align = LV_ALIGN_TOP_RIGHT; - 8009af4: 2100 movs r1, #0 - 8009af6: 68b8 ldr r0, [r7, #8] - 8009af8: f7ff fba7 bl 800924a - 8009afc: 4603 mov r3, r0 - 8009afe: 2b01 cmp r3, #1 - 8009b00: d102 bne.n 8009b08 - 8009b02: 2303 movs r3, #3 - 8009b04: 71fb strb r3, [r7, #7] - 8009b06: e001 b.n 8009b0c + 8009a88: 2100 movs r1, #0 + 8009a8a: 68b8 ldr r0, [r7, #8] + 8009a8c: f7ff fba7 bl 80091de + 8009a90: 4603 mov r3, r0 + 8009a92: 2b01 cmp r3, #1 + 8009a94: d102 bne.n 8009a9c + 8009a96: 2303 movs r3, #3 + 8009a98: 71fb strb r3, [r7, #7] + 8009a9a: e001 b.n 8009aa0 else align = LV_ALIGN_TOP_LEFT; - 8009b08: 2301 movs r3, #1 - 8009b0a: 71fb strb r3, [r7, #7] + 8009a9c: 2301 movs r3, #1 + 8009a9e: 71fb strb r3, [r7, #7] } switch(align) { - 8009b0c: 79fb ldrb r3, [r7, #7] - 8009b0e: 3b01 subs r3, #1 - 8009b10: 2b14 cmp r3, #20 - 8009b12: f200 821c bhi.w 8009f4e - 8009b16: a201 add r2, pc, #4 ; (adr r2, 8009b1c ) - 8009b18: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8009b1c: 08009bd3 .word 0x08009bd3 - 8009b20: 08009bdd .word 0x08009bdd - 8009b24: 08009c13 .word 0x08009c13 - 8009b28: 08009c39 .word 0x08009c39 - 8009b2c: 08009c5f .word 0x08009c5f - 8009b30: 08009cb1 .word 0x08009cb1 - 8009b34: 08009cf3 .word 0x08009cf3 - 8009b38: 08009d29 .word 0x08009d29 - 8009b3c: 08009b71 .word 0x08009b71 - 8009b40: 08009d7b .word 0x08009d7b - 8009b44: 08009d91 .word 0x08009d91 - 8009b48: 08009dcd .word 0x08009dcd - 8009b4c: 08009df9 .word 0x08009df9 - 8009b50: 08009e09 .word 0x08009e09 - 8009b54: 08009e3f .word 0x08009e3f - 8009b58: 08009e65 .word 0x08009e65 - 8009b5c: 08009e7b .word 0x08009e7b - 8009b60: 08009eb7 .word 0x08009eb7 - 8009b64: 08009ee3 .word 0x08009ee3 - 8009b68: 08009ef3 .word 0x08009ef3 - 8009b6c: 08009f29 .word 0x08009f29 + 8009aa0: 79fb ldrb r3, [r7, #7] + 8009aa2: 3b01 subs r3, #1 + 8009aa4: 2b14 cmp r3, #20 + 8009aa6: f200 821c bhi.w 8009ee2 + 8009aaa: a201 add r2, pc, #4 ; (adr r2, 8009ab0 ) + 8009aac: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8009ab0: 08009b67 .word 0x08009b67 + 8009ab4: 08009b71 .word 0x08009b71 + 8009ab8: 08009ba7 .word 0x08009ba7 + 8009abc: 08009bcd .word 0x08009bcd + 8009ac0: 08009bf3 .word 0x08009bf3 + 8009ac4: 08009c45 .word 0x08009c45 + 8009ac8: 08009c87 .word 0x08009c87 + 8009acc: 08009cbd .word 0x08009cbd + 8009ad0: 08009b05 .word 0x08009b05 + 8009ad4: 08009d0f .word 0x08009d0f + 8009ad8: 08009d25 .word 0x08009d25 + 8009adc: 08009d61 .word 0x08009d61 + 8009ae0: 08009d8d .word 0x08009d8d + 8009ae4: 08009d9d .word 0x08009d9d + 8009ae8: 08009dd3 .word 0x08009dd3 + 8009aec: 08009df9 .word 0x08009df9 + 8009af0: 08009e0f .word 0x08009e0f + 8009af4: 08009e4b .word 0x08009e4b + 8009af8: 08009e77 .word 0x08009e77 + 8009afc: 08009e87 .word 0x08009e87 + 8009b00: 08009ebd .word 0x08009ebd case LV_ALIGN_CENTER: x = lv_obj_get_content_width(base) / 2 - lv_obj_get_width(obj) / 2 + bleft; + 8009b04: 68b8 ldr r0, [r7, #8] + 8009b06: f000 fb05 bl 800a114 + 8009b0a: 4603 mov r3, r0 + 8009b0c: 0fda lsrs r2, r3, #31 + 8009b0e: 4413 add r3, r2 + 8009b10: 105b asrs r3, r3, #1 + 8009b12: b21b sxth r3, r3 + 8009b14: b29c uxth r4, r3 + 8009b16: 68f8 ldr r0, [r7, #12] + 8009b18: f000 fae0 bl 800a0dc + 8009b1c: 4603 mov r3, r0 + 8009b1e: 0fda lsrs r2, r3, #31 + 8009b20: 4413 add r3, r2 + 8009b22: 105b asrs r3, r3, #1 + 8009b24: b21b sxth r3, r3 + 8009b26: b29b uxth r3, r3 + 8009b28: 1ae3 subs r3, r4, r3 + 8009b2a: b29a uxth r2, r3 + 8009b2c: 8afb ldrh r3, [r7, #22] + 8009b2e: 4413 add r3, r2 + 8009b30: b29b uxth r3, r3 + 8009b32: 84fb strh r3, [r7, #38] ; 0x26 + y = lv_obj_get_content_height(base) / 2 - lv_obj_get_height(obj) / 2 + btop; + 8009b34: 68b8 ldr r0, [r7, #8] + 8009b36: f000 fb18 bl 800a16a + 8009b3a: 4603 mov r3, r0 + 8009b3c: 0fda lsrs r2, r3, #31 + 8009b3e: 4413 add r3, r2 + 8009b40: 105b asrs r3, r3, #1 + 8009b42: b21b sxth r3, r3 + 8009b44: b29c uxth r4, r3 + 8009b46: 68f8 ldr r0, [r7, #12] + 8009b48: f000 fad6 bl 800a0f8 + 8009b4c: 4603 mov r3, r0 + 8009b4e: 0fda lsrs r2, r3, #31 + 8009b50: 4413 add r3, r2 + 8009b52: 105b asrs r3, r3, #1 + 8009b54: b21b sxth r3, r3 + 8009b56: b29b uxth r3, r3 + 8009b58: 1ae3 subs r3, r4, r3 + 8009b5a: b29a uxth r2, r3 + 8009b5c: 8abb ldrh r3, [r7, #20] + 8009b5e: 4413 add r3, r2 + 8009b60: b29b uxth r3, r3 + 8009b62: 84bb strh r3, [r7, #36] ; 0x24 + break; + 8009b64: e1bd b.n 8009ee2 + case LV_ALIGN_TOP_LEFT: + x = bleft; + 8009b66: 8afb ldrh r3, [r7, #22] + 8009b68: 84fb strh r3, [r7, #38] ; 0x26 + y = btop; + 8009b6a: 8abb ldrh r3, [r7, #20] + 8009b6c: 84bb strh r3, [r7, #36] ; 0x24 + break; + 8009b6e: e1b8 b.n 8009ee2 + case LV_ALIGN_TOP_MID: + x = lv_obj_get_content_width(base) / 2 - lv_obj_get_width(obj) / 2 + bleft; 8009b70: 68b8 ldr r0, [r7, #8] - 8009b72: f000 fb05 bl 800a180 + 8009b72: f000 facf bl 800a114 8009b76: 4603 mov r3, r0 8009b78: 0fda lsrs r2, r3, #31 8009b7a: 4413 add r3, r2 @@ -23972,7 +23983,7 @@ void lv_obj_align_to(lv_obj_t * obj, const lv_obj_t * base, lv_align_t align, lv 8009b7e: b21b sxth r3, r3 8009b80: b29c uxth r4, r3 8009b82: 68f8 ldr r0, [r7, #12] - 8009b84: f000 fae0 bl 800a148 + 8009b84: f000 faaa bl 800a0dc 8009b88: 4603 mov r3, r0 8009b8a: 0fda lsrs r2, r3, #31 8009b8c: 4413 add r3, r2 @@ -23985,8442 +23996,8452 @@ void lv_obj_align_to(lv_obj_t * obj, const lv_obj_t * base, lv_align_t align, lv 8009b9a: 4413 add r3, r2 8009b9c: b29b uxth r3, r3 8009b9e: 84fb strh r3, [r7, #38] ; 0x26 - y = lv_obj_get_content_height(base) / 2 - lv_obj_get_height(obj) / 2 + btop; - 8009ba0: 68b8 ldr r0, [r7, #8] - 8009ba2: f000 fb18 bl 800a1d6 - 8009ba6: 4603 mov r3, r0 - 8009ba8: 0fda lsrs r2, r3, #31 - 8009baa: 4413 add r3, r2 - 8009bac: 105b asrs r3, r3, #1 - 8009bae: b21b sxth r3, r3 - 8009bb0: b29c uxth r4, r3 - 8009bb2: 68f8 ldr r0, [r7, #12] - 8009bb4: f000 fad6 bl 800a164 - 8009bb8: 4603 mov r3, r0 - 8009bba: 0fda lsrs r2, r3, #31 - 8009bbc: 4413 add r3, r2 - 8009bbe: 105b asrs r3, r3, #1 - 8009bc0: b21b sxth r3, r3 - 8009bc2: b29b uxth r3, r3 - 8009bc4: 1ae3 subs r3, r4, r3 - 8009bc6: b29a uxth r2, r3 - 8009bc8: 8abb ldrh r3, [r7, #20] - 8009bca: 4413 add r3, r2 - 8009bcc: b29b uxth r3, r3 - 8009bce: 84bb strh r3, [r7, #36] ; 0x24 - break; - 8009bd0: e1bd b.n 8009f4e - case LV_ALIGN_TOP_LEFT: - x = bleft; - 8009bd2: 8afb ldrh r3, [r7, #22] - 8009bd4: 84fb strh r3, [r7, #38] ; 0x26 y = btop; - 8009bd6: 8abb ldrh r3, [r7, #20] - 8009bd8: 84bb strh r3, [r7, #36] ; 0x24 + 8009ba0: 8abb ldrh r3, [r7, #20] + 8009ba2: 84bb strh r3, [r7, #36] ; 0x24 break; - 8009bda: e1b8 b.n 8009f4e - case LV_ALIGN_TOP_MID: - x = lv_obj_get_content_width(base) / 2 - lv_obj_get_width(obj) / 2 + bleft; - 8009bdc: 68b8 ldr r0, [r7, #8] - 8009bde: f000 facf bl 800a180 - 8009be2: 4603 mov r3, r0 - 8009be4: 0fda lsrs r2, r3, #31 - 8009be6: 4413 add r3, r2 - 8009be8: 105b asrs r3, r3, #1 - 8009bea: b21b sxth r3, r3 - 8009bec: b29c uxth r4, r3 - 8009bee: 68f8 ldr r0, [r7, #12] - 8009bf0: f000 faaa bl 800a148 - 8009bf4: 4603 mov r3, r0 - 8009bf6: 0fda lsrs r2, r3, #31 - 8009bf8: 4413 add r3, r2 - 8009bfa: 105b asrs r3, r3, #1 - 8009bfc: b21b sxth r3, r3 - 8009bfe: b29b uxth r3, r3 - 8009c00: 1ae3 subs r3, r4, r3 - 8009c02: b29a uxth r2, r3 - 8009c04: 8afb ldrh r3, [r7, #22] - 8009c06: 4413 add r3, r2 - 8009c08: b29b uxth r3, r3 - 8009c0a: 84fb strh r3, [r7, #38] ; 0x26 - y = btop; - 8009c0c: 8abb ldrh r3, [r7, #20] - 8009c0e: 84bb strh r3, [r7, #36] ; 0x24 - break; - 8009c10: e19d b.n 8009f4e + 8009ba4: e19d b.n 8009ee2 case LV_ALIGN_TOP_RIGHT: x = lv_obj_get_content_width(base) - lv_obj_get_width(obj) + bleft; - 8009c12: 68b8 ldr r0, [r7, #8] - 8009c14: f000 fab4 bl 800a180 - 8009c18: 4603 mov r3, r0 - 8009c1a: b29c uxth r4, r3 - 8009c1c: 68f8 ldr r0, [r7, #12] - 8009c1e: f000 fa93 bl 800a148 - 8009c22: 4603 mov r3, r0 - 8009c24: b29b uxth r3, r3 - 8009c26: 1ae3 subs r3, r4, r3 - 8009c28: b29a uxth r2, r3 - 8009c2a: 8afb ldrh r3, [r7, #22] - 8009c2c: 4413 add r3, r2 - 8009c2e: b29b uxth r3, r3 - 8009c30: 84fb strh r3, [r7, #38] ; 0x26 + 8009ba6: 68b8 ldr r0, [r7, #8] + 8009ba8: f000 fab4 bl 800a114 + 8009bac: 4603 mov r3, r0 + 8009bae: b29c uxth r4, r3 + 8009bb0: 68f8 ldr r0, [r7, #12] + 8009bb2: f000 fa93 bl 800a0dc + 8009bb6: 4603 mov r3, r0 + 8009bb8: b29b uxth r3, r3 + 8009bba: 1ae3 subs r3, r4, r3 + 8009bbc: b29a uxth r2, r3 + 8009bbe: 8afb ldrh r3, [r7, #22] + 8009bc0: 4413 add r3, r2 + 8009bc2: b29b uxth r3, r3 + 8009bc4: 84fb strh r3, [r7, #38] ; 0x26 y = btop; - 8009c32: 8abb ldrh r3, [r7, #20] - 8009c34: 84bb strh r3, [r7, #36] ; 0x24 + 8009bc6: 8abb ldrh r3, [r7, #20] + 8009bc8: 84bb strh r3, [r7, #36] ; 0x24 break; - 8009c36: e18a b.n 8009f4e + 8009bca: e18a b.n 8009ee2 case LV_ALIGN_BOTTOM_LEFT: x = bleft; - 8009c38: 8afb ldrh r3, [r7, #22] - 8009c3a: 84fb strh r3, [r7, #38] ; 0x26 + 8009bcc: 8afb ldrh r3, [r7, #22] + 8009bce: 84fb strh r3, [r7, #38] ; 0x26 y = lv_obj_get_content_height(base) - lv_obj_get_height(obj) + btop; - 8009c3c: 68b8 ldr r0, [r7, #8] - 8009c3e: f000 faca bl 800a1d6 - 8009c42: 4603 mov r3, r0 - 8009c44: b29c uxth r4, r3 - 8009c46: 68f8 ldr r0, [r7, #12] - 8009c48: f000 fa8c bl 800a164 - 8009c4c: 4603 mov r3, r0 - 8009c4e: b29b uxth r3, r3 - 8009c50: 1ae3 subs r3, r4, r3 - 8009c52: b29a uxth r2, r3 - 8009c54: 8abb ldrh r3, [r7, #20] - 8009c56: 4413 add r3, r2 - 8009c58: b29b uxth r3, r3 - 8009c5a: 84bb strh r3, [r7, #36] ; 0x24 + 8009bd0: 68b8 ldr r0, [r7, #8] + 8009bd2: f000 faca bl 800a16a + 8009bd6: 4603 mov r3, r0 + 8009bd8: b29c uxth r4, r3 + 8009bda: 68f8 ldr r0, [r7, #12] + 8009bdc: f000 fa8c bl 800a0f8 + 8009be0: 4603 mov r3, r0 + 8009be2: b29b uxth r3, r3 + 8009be4: 1ae3 subs r3, r4, r3 + 8009be6: b29a uxth r2, r3 + 8009be8: 8abb ldrh r3, [r7, #20] + 8009bea: 4413 add r3, r2 + 8009bec: b29b uxth r3, r3 + 8009bee: 84bb strh r3, [r7, #36] ; 0x24 break; - 8009c5c: e177 b.n 8009f4e + 8009bf0: e177 b.n 8009ee2 case LV_ALIGN_BOTTOM_MID: x = lv_obj_get_content_width(base) / 2 - lv_obj_get_width(obj) / 2 + bleft; - 8009c5e: 68b8 ldr r0, [r7, #8] - 8009c60: f000 fa8e bl 800a180 - 8009c64: 4603 mov r3, r0 - 8009c66: 0fda lsrs r2, r3, #31 - 8009c68: 4413 add r3, r2 - 8009c6a: 105b asrs r3, r3, #1 - 8009c6c: b21b sxth r3, r3 - 8009c6e: b29c uxth r4, r3 - 8009c70: 68f8 ldr r0, [r7, #12] - 8009c72: f000 fa69 bl 800a148 - 8009c76: 4603 mov r3, r0 - 8009c78: 0fda lsrs r2, r3, #31 - 8009c7a: 4413 add r3, r2 - 8009c7c: 105b asrs r3, r3, #1 - 8009c7e: b21b sxth r3, r3 - 8009c80: b29b uxth r3, r3 - 8009c82: 1ae3 subs r3, r4, r3 - 8009c84: b29a uxth r2, r3 - 8009c86: 8afb ldrh r3, [r7, #22] - 8009c88: 4413 add r3, r2 - 8009c8a: b29b uxth r3, r3 - 8009c8c: 84fb strh r3, [r7, #38] ; 0x26 + 8009bf2: 68b8 ldr r0, [r7, #8] + 8009bf4: f000 fa8e bl 800a114 + 8009bf8: 4603 mov r3, r0 + 8009bfa: 0fda lsrs r2, r3, #31 + 8009bfc: 4413 add r3, r2 + 8009bfe: 105b asrs r3, r3, #1 + 8009c00: b21b sxth r3, r3 + 8009c02: b29c uxth r4, r3 + 8009c04: 68f8 ldr r0, [r7, #12] + 8009c06: f000 fa69 bl 800a0dc + 8009c0a: 4603 mov r3, r0 + 8009c0c: 0fda lsrs r2, r3, #31 + 8009c0e: 4413 add r3, r2 + 8009c10: 105b asrs r3, r3, #1 + 8009c12: b21b sxth r3, r3 + 8009c14: b29b uxth r3, r3 + 8009c16: 1ae3 subs r3, r4, r3 + 8009c18: b29a uxth r2, r3 + 8009c1a: 8afb ldrh r3, [r7, #22] + 8009c1c: 4413 add r3, r2 + 8009c1e: b29b uxth r3, r3 + 8009c20: 84fb strh r3, [r7, #38] ; 0x26 y = lv_obj_get_content_height(base) - lv_obj_get_height(obj) + btop; - 8009c8e: 68b8 ldr r0, [r7, #8] - 8009c90: f000 faa1 bl 800a1d6 - 8009c94: 4603 mov r3, r0 - 8009c96: b29c uxth r4, r3 - 8009c98: 68f8 ldr r0, [r7, #12] - 8009c9a: f000 fa63 bl 800a164 - 8009c9e: 4603 mov r3, r0 - 8009ca0: b29b uxth r3, r3 - 8009ca2: 1ae3 subs r3, r4, r3 - 8009ca4: b29a uxth r2, r3 - 8009ca6: 8abb ldrh r3, [r7, #20] - 8009ca8: 4413 add r3, r2 - 8009caa: b29b uxth r3, r3 - 8009cac: 84bb strh r3, [r7, #36] ; 0x24 + 8009c22: 68b8 ldr r0, [r7, #8] + 8009c24: f000 faa1 bl 800a16a + 8009c28: 4603 mov r3, r0 + 8009c2a: b29c uxth r4, r3 + 8009c2c: 68f8 ldr r0, [r7, #12] + 8009c2e: f000 fa63 bl 800a0f8 + 8009c32: 4603 mov r3, r0 + 8009c34: b29b uxth r3, r3 + 8009c36: 1ae3 subs r3, r4, r3 + 8009c38: b29a uxth r2, r3 + 8009c3a: 8abb ldrh r3, [r7, #20] + 8009c3c: 4413 add r3, r2 + 8009c3e: b29b uxth r3, r3 + 8009c40: 84bb strh r3, [r7, #36] ; 0x24 break; - 8009cae: e14e b.n 8009f4e + 8009c42: e14e b.n 8009ee2 case LV_ALIGN_BOTTOM_RIGHT: x = lv_obj_get_content_width(base) - lv_obj_get_width(obj) + bleft; - 8009cb0: 68b8 ldr r0, [r7, #8] - 8009cb2: f000 fa65 bl 800a180 - 8009cb6: 4603 mov r3, r0 - 8009cb8: b29c uxth r4, r3 - 8009cba: 68f8 ldr r0, [r7, #12] - 8009cbc: f000 fa44 bl 800a148 - 8009cc0: 4603 mov r3, r0 - 8009cc2: b29b uxth r3, r3 - 8009cc4: 1ae3 subs r3, r4, r3 - 8009cc6: b29a uxth r2, r3 - 8009cc8: 8afb ldrh r3, [r7, #22] - 8009cca: 4413 add r3, r2 - 8009ccc: b29b uxth r3, r3 - 8009cce: 84fb strh r3, [r7, #38] ; 0x26 + 8009c44: 68b8 ldr r0, [r7, #8] + 8009c46: f000 fa65 bl 800a114 + 8009c4a: 4603 mov r3, r0 + 8009c4c: b29c uxth r4, r3 + 8009c4e: 68f8 ldr r0, [r7, #12] + 8009c50: f000 fa44 bl 800a0dc + 8009c54: 4603 mov r3, r0 + 8009c56: b29b uxth r3, r3 + 8009c58: 1ae3 subs r3, r4, r3 + 8009c5a: b29a uxth r2, r3 + 8009c5c: 8afb ldrh r3, [r7, #22] + 8009c5e: 4413 add r3, r2 + 8009c60: b29b uxth r3, r3 + 8009c62: 84fb strh r3, [r7, #38] ; 0x26 y = lv_obj_get_content_height(base) - lv_obj_get_height(obj) + btop; - 8009cd0: 68b8 ldr r0, [r7, #8] - 8009cd2: f000 fa80 bl 800a1d6 - 8009cd6: 4603 mov r3, r0 - 8009cd8: b29c uxth r4, r3 - 8009cda: 68f8 ldr r0, [r7, #12] - 8009cdc: f000 fa42 bl 800a164 - 8009ce0: 4603 mov r3, r0 - 8009ce2: b29b uxth r3, r3 - 8009ce4: 1ae3 subs r3, r4, r3 - 8009ce6: b29a uxth r2, r3 - 8009ce8: 8abb ldrh r3, [r7, #20] - 8009cea: 4413 add r3, r2 - 8009cec: b29b uxth r3, r3 - 8009cee: 84bb strh r3, [r7, #36] ; 0x24 + 8009c64: 68b8 ldr r0, [r7, #8] + 8009c66: f000 fa80 bl 800a16a + 8009c6a: 4603 mov r3, r0 + 8009c6c: b29c uxth r4, r3 + 8009c6e: 68f8 ldr r0, [r7, #12] + 8009c70: f000 fa42 bl 800a0f8 + 8009c74: 4603 mov r3, r0 + 8009c76: b29b uxth r3, r3 + 8009c78: 1ae3 subs r3, r4, r3 + 8009c7a: b29a uxth r2, r3 + 8009c7c: 8abb ldrh r3, [r7, #20] + 8009c7e: 4413 add r3, r2 + 8009c80: b29b uxth r3, r3 + 8009c82: 84bb strh r3, [r7, #36] ; 0x24 break; - 8009cf0: e12d b.n 8009f4e + 8009c84: e12d b.n 8009ee2 case LV_ALIGN_LEFT_MID: x = bleft; - 8009cf2: 8afb ldrh r3, [r7, #22] - 8009cf4: 84fb strh r3, [r7, #38] ; 0x26 + 8009c86: 8afb ldrh r3, [r7, #22] + 8009c88: 84fb strh r3, [r7, #38] ; 0x26 y = lv_obj_get_content_height(base) / 2 - lv_obj_get_height(obj) / 2 + btop; - 8009cf6: 68b8 ldr r0, [r7, #8] - 8009cf8: f000 fa6d bl 800a1d6 - 8009cfc: 4603 mov r3, r0 - 8009cfe: 0fda lsrs r2, r3, #31 - 8009d00: 4413 add r3, r2 - 8009d02: 105b asrs r3, r3, #1 - 8009d04: b21b sxth r3, r3 - 8009d06: b29c uxth r4, r3 - 8009d08: 68f8 ldr r0, [r7, #12] - 8009d0a: f000 fa2b bl 800a164 - 8009d0e: 4603 mov r3, r0 - 8009d10: 0fda lsrs r2, r3, #31 - 8009d12: 4413 add r3, r2 - 8009d14: 105b asrs r3, r3, #1 - 8009d16: b21b sxth r3, r3 - 8009d18: b29b uxth r3, r3 - 8009d1a: 1ae3 subs r3, r4, r3 - 8009d1c: b29a uxth r2, r3 - 8009d1e: 8abb ldrh r3, [r7, #20] - 8009d20: 4413 add r3, r2 - 8009d22: b29b uxth r3, r3 - 8009d24: 84bb strh r3, [r7, #36] ; 0x24 + 8009c8a: 68b8 ldr r0, [r7, #8] + 8009c8c: f000 fa6d bl 800a16a + 8009c90: 4603 mov r3, r0 + 8009c92: 0fda lsrs r2, r3, #31 + 8009c94: 4413 add r3, r2 + 8009c96: 105b asrs r3, r3, #1 + 8009c98: b21b sxth r3, r3 + 8009c9a: b29c uxth r4, r3 + 8009c9c: 68f8 ldr r0, [r7, #12] + 8009c9e: f000 fa2b bl 800a0f8 + 8009ca2: 4603 mov r3, r0 + 8009ca4: 0fda lsrs r2, r3, #31 + 8009ca6: 4413 add r3, r2 + 8009ca8: 105b asrs r3, r3, #1 + 8009caa: b21b sxth r3, r3 + 8009cac: b29b uxth r3, r3 + 8009cae: 1ae3 subs r3, r4, r3 + 8009cb0: b29a uxth r2, r3 + 8009cb2: 8abb ldrh r3, [r7, #20] + 8009cb4: 4413 add r3, r2 + 8009cb6: b29b uxth r3, r3 + 8009cb8: 84bb strh r3, [r7, #36] ; 0x24 break; - 8009d26: e112 b.n 8009f4e + 8009cba: e112 b.n 8009ee2 case LV_ALIGN_RIGHT_MID: x = lv_obj_get_content_width(base) - lv_obj_get_width(obj) + bleft; - 8009d28: 68b8 ldr r0, [r7, #8] - 8009d2a: f000 fa29 bl 800a180 - 8009d2e: 4603 mov r3, r0 - 8009d30: b29c uxth r4, r3 - 8009d32: 68f8 ldr r0, [r7, #12] - 8009d34: f000 fa08 bl 800a148 - 8009d38: 4603 mov r3, r0 - 8009d3a: b29b uxth r3, r3 - 8009d3c: 1ae3 subs r3, r4, r3 - 8009d3e: b29a uxth r2, r3 - 8009d40: 8afb ldrh r3, [r7, #22] - 8009d42: 4413 add r3, r2 - 8009d44: b29b uxth r3, r3 - 8009d46: 84fb strh r3, [r7, #38] ; 0x26 + 8009cbc: 68b8 ldr r0, [r7, #8] + 8009cbe: f000 fa29 bl 800a114 + 8009cc2: 4603 mov r3, r0 + 8009cc4: b29c uxth r4, r3 + 8009cc6: 68f8 ldr r0, [r7, #12] + 8009cc8: f000 fa08 bl 800a0dc + 8009ccc: 4603 mov r3, r0 + 8009cce: b29b uxth r3, r3 + 8009cd0: 1ae3 subs r3, r4, r3 + 8009cd2: b29a uxth r2, r3 + 8009cd4: 8afb ldrh r3, [r7, #22] + 8009cd6: 4413 add r3, r2 + 8009cd8: b29b uxth r3, r3 + 8009cda: 84fb strh r3, [r7, #38] ; 0x26 y = lv_obj_get_content_height(base) / 2 - lv_obj_get_height(obj) / 2 + btop; - 8009d48: 68b8 ldr r0, [r7, #8] - 8009d4a: f000 fa44 bl 800a1d6 - 8009d4e: 4603 mov r3, r0 - 8009d50: 0fda lsrs r2, r3, #31 - 8009d52: 4413 add r3, r2 - 8009d54: 105b asrs r3, r3, #1 - 8009d56: b21b sxth r3, r3 - 8009d58: b29c uxth r4, r3 - 8009d5a: 68f8 ldr r0, [r7, #12] - 8009d5c: f000 fa02 bl 800a164 - 8009d60: 4603 mov r3, r0 - 8009d62: 0fda lsrs r2, r3, #31 - 8009d64: 4413 add r3, r2 - 8009d66: 105b asrs r3, r3, #1 - 8009d68: b21b sxth r3, r3 - 8009d6a: b29b uxth r3, r3 - 8009d6c: 1ae3 subs r3, r4, r3 - 8009d6e: b29a uxth r2, r3 - 8009d70: 8abb ldrh r3, [r7, #20] - 8009d72: 4413 add r3, r2 - 8009d74: b29b uxth r3, r3 - 8009d76: 84bb strh r3, [r7, #36] ; 0x24 + 8009cdc: 68b8 ldr r0, [r7, #8] + 8009cde: f000 fa44 bl 800a16a + 8009ce2: 4603 mov r3, r0 + 8009ce4: 0fda lsrs r2, r3, #31 + 8009ce6: 4413 add r3, r2 + 8009ce8: 105b asrs r3, r3, #1 + 8009cea: b21b sxth r3, r3 + 8009cec: b29c uxth r4, r3 + 8009cee: 68f8 ldr r0, [r7, #12] + 8009cf0: f000 fa02 bl 800a0f8 + 8009cf4: 4603 mov r3, r0 + 8009cf6: 0fda lsrs r2, r3, #31 + 8009cf8: 4413 add r3, r2 + 8009cfa: 105b asrs r3, r3, #1 + 8009cfc: b21b sxth r3, r3 + 8009cfe: b29b uxth r3, r3 + 8009d00: 1ae3 subs r3, r4, r3 + 8009d02: b29a uxth r2, r3 + 8009d04: 8abb ldrh r3, [r7, #20] + 8009d06: 4413 add r3, r2 + 8009d08: b29b uxth r3, r3 + 8009d0a: 84bb strh r3, [r7, #36] ; 0x24 break; - 8009d78: e0e9 b.n 8009f4e + 8009d0c: e0e9 b.n 8009ee2 case LV_ALIGN_OUT_TOP_LEFT: x = 0; - 8009d7a: 2300 movs r3, #0 - 8009d7c: 84fb strh r3, [r7, #38] ; 0x26 + 8009d0e: 2300 movs r3, #0 + 8009d10: 84fb strh r3, [r7, #38] ; 0x26 y = -lv_obj_get_height(obj); - 8009d7e: 68f8 ldr r0, [r7, #12] - 8009d80: f000 f9f0 bl 800a164 - 8009d84: 4603 mov r3, r0 - 8009d86: b29b uxth r3, r3 - 8009d88: 425b negs r3, r3 - 8009d8a: b29b uxth r3, r3 - 8009d8c: 84bb strh r3, [r7, #36] ; 0x24 + 8009d12: 68f8 ldr r0, [r7, #12] + 8009d14: f000 f9f0 bl 800a0f8 + 8009d18: 4603 mov r3, r0 + 8009d1a: b29b uxth r3, r3 + 8009d1c: 425b negs r3, r3 + 8009d1e: b29b uxth r3, r3 + 8009d20: 84bb strh r3, [r7, #36] ; 0x24 break; - 8009d8e: e0de b.n 8009f4e + 8009d22: e0de b.n 8009ee2 case LV_ALIGN_OUT_TOP_MID: x = lv_obj_get_width(base) / 2 - lv_obj_get_width(obj) / 2; - 8009d90: 68b8 ldr r0, [r7, #8] - 8009d92: f000 f9d9 bl 800a148 - 8009d96: 4603 mov r3, r0 - 8009d98: 0fda lsrs r2, r3, #31 - 8009d9a: 4413 add r3, r2 - 8009d9c: 105b asrs r3, r3, #1 - 8009d9e: b21b sxth r3, r3 - 8009da0: b29c uxth r4, r3 - 8009da2: 68f8 ldr r0, [r7, #12] - 8009da4: f000 f9d0 bl 800a148 - 8009da8: 4603 mov r3, r0 - 8009daa: 0fda lsrs r2, r3, #31 - 8009dac: 4413 add r3, r2 - 8009dae: 105b asrs r3, r3, #1 - 8009db0: b21b sxth r3, r3 - 8009db2: b29b uxth r3, r3 - 8009db4: 1ae3 subs r3, r4, r3 - 8009db6: b29b uxth r3, r3 - 8009db8: 84fb strh r3, [r7, #38] ; 0x26 + 8009d24: 68b8 ldr r0, [r7, #8] + 8009d26: f000 f9d9 bl 800a0dc + 8009d2a: 4603 mov r3, r0 + 8009d2c: 0fda lsrs r2, r3, #31 + 8009d2e: 4413 add r3, r2 + 8009d30: 105b asrs r3, r3, #1 + 8009d32: b21b sxth r3, r3 + 8009d34: b29c uxth r4, r3 + 8009d36: 68f8 ldr r0, [r7, #12] + 8009d38: f000 f9d0 bl 800a0dc + 8009d3c: 4603 mov r3, r0 + 8009d3e: 0fda lsrs r2, r3, #31 + 8009d40: 4413 add r3, r2 + 8009d42: 105b asrs r3, r3, #1 + 8009d44: b21b sxth r3, r3 + 8009d46: b29b uxth r3, r3 + 8009d48: 1ae3 subs r3, r4, r3 + 8009d4a: b29b uxth r3, r3 + 8009d4c: 84fb strh r3, [r7, #38] ; 0x26 y = -lv_obj_get_height(obj); - 8009dba: 68f8 ldr r0, [r7, #12] - 8009dbc: f000 f9d2 bl 800a164 - 8009dc0: 4603 mov r3, r0 - 8009dc2: b29b uxth r3, r3 - 8009dc4: 425b negs r3, r3 - 8009dc6: b29b uxth r3, r3 - 8009dc8: 84bb strh r3, [r7, #36] ; 0x24 + 8009d4e: 68f8 ldr r0, [r7, #12] + 8009d50: f000 f9d2 bl 800a0f8 + 8009d54: 4603 mov r3, r0 + 8009d56: b29b uxth r3, r3 + 8009d58: 425b negs r3, r3 + 8009d5a: b29b uxth r3, r3 + 8009d5c: 84bb strh r3, [r7, #36] ; 0x24 break; - 8009dca: e0c0 b.n 8009f4e + 8009d5e: e0c0 b.n 8009ee2 case LV_ALIGN_OUT_TOP_RIGHT: x = lv_obj_get_width(base) - lv_obj_get_width(obj); - 8009dcc: 68b8 ldr r0, [r7, #8] - 8009dce: f000 f9bb bl 800a148 - 8009dd2: 4603 mov r3, r0 - 8009dd4: b29c uxth r4, r3 - 8009dd6: 68f8 ldr r0, [r7, #12] - 8009dd8: f000 f9b6 bl 800a148 - 8009ddc: 4603 mov r3, r0 - 8009dde: b29b uxth r3, r3 - 8009de0: 1ae3 subs r3, r4, r3 - 8009de2: b29b uxth r3, r3 - 8009de4: 84fb strh r3, [r7, #38] ; 0x26 + 8009d60: 68b8 ldr r0, [r7, #8] + 8009d62: f000 f9bb bl 800a0dc + 8009d66: 4603 mov r3, r0 + 8009d68: b29c uxth r4, r3 + 8009d6a: 68f8 ldr r0, [r7, #12] + 8009d6c: f000 f9b6 bl 800a0dc + 8009d70: 4603 mov r3, r0 + 8009d72: b29b uxth r3, r3 + 8009d74: 1ae3 subs r3, r4, r3 + 8009d76: b29b uxth r3, r3 + 8009d78: 84fb strh r3, [r7, #38] ; 0x26 y = -lv_obj_get_height(obj); - 8009de6: 68f8 ldr r0, [r7, #12] - 8009de8: f000 f9bc bl 800a164 - 8009dec: 4603 mov r3, r0 - 8009dee: b29b uxth r3, r3 - 8009df0: 425b negs r3, r3 - 8009df2: b29b uxth r3, r3 - 8009df4: 84bb strh r3, [r7, #36] ; 0x24 + 8009d7a: 68f8 ldr r0, [r7, #12] + 8009d7c: f000 f9bc bl 800a0f8 + 8009d80: 4603 mov r3, r0 + 8009d82: b29b uxth r3, r3 + 8009d84: 425b negs r3, r3 + 8009d86: b29b uxth r3, r3 + 8009d88: 84bb strh r3, [r7, #36] ; 0x24 break; - 8009df6: e0aa b.n 8009f4e + 8009d8a: e0aa b.n 8009ee2 case LV_ALIGN_OUT_BOTTOM_LEFT: x = 0; - 8009df8: 2300 movs r3, #0 - 8009dfa: 84fb strh r3, [r7, #38] ; 0x26 + 8009d8c: 2300 movs r3, #0 + 8009d8e: 84fb strh r3, [r7, #38] ; 0x26 y = lv_obj_get_height(base); - 8009dfc: 68b8 ldr r0, [r7, #8] - 8009dfe: f000 f9b1 bl 800a164 - 8009e02: 4603 mov r3, r0 - 8009e04: 84bb strh r3, [r7, #36] ; 0x24 + 8009d90: 68b8 ldr r0, [r7, #8] + 8009d92: f000 f9b1 bl 800a0f8 + 8009d96: 4603 mov r3, r0 + 8009d98: 84bb strh r3, [r7, #36] ; 0x24 break; - 8009e06: e0a2 b.n 8009f4e + 8009d9a: e0a2 b.n 8009ee2 case LV_ALIGN_OUT_BOTTOM_MID: x = lv_obj_get_width(base) / 2 - lv_obj_get_width(obj) / 2; - 8009e08: 68b8 ldr r0, [r7, #8] - 8009e0a: f000 f99d bl 800a148 - 8009e0e: 4603 mov r3, r0 - 8009e10: 0fda lsrs r2, r3, #31 - 8009e12: 4413 add r3, r2 - 8009e14: 105b asrs r3, r3, #1 - 8009e16: b21b sxth r3, r3 - 8009e18: b29c uxth r4, r3 - 8009e1a: 68f8 ldr r0, [r7, #12] - 8009e1c: f000 f994 bl 800a148 - 8009e20: 4603 mov r3, r0 - 8009e22: 0fda lsrs r2, r3, #31 - 8009e24: 4413 add r3, r2 - 8009e26: 105b asrs r3, r3, #1 - 8009e28: b21b sxth r3, r3 - 8009e2a: b29b uxth r3, r3 - 8009e2c: 1ae3 subs r3, r4, r3 - 8009e2e: b29b uxth r3, r3 - 8009e30: 84fb strh r3, [r7, #38] ; 0x26 + 8009d9c: 68b8 ldr r0, [r7, #8] + 8009d9e: f000 f99d bl 800a0dc + 8009da2: 4603 mov r3, r0 + 8009da4: 0fda lsrs r2, r3, #31 + 8009da6: 4413 add r3, r2 + 8009da8: 105b asrs r3, r3, #1 + 8009daa: b21b sxth r3, r3 + 8009dac: b29c uxth r4, r3 + 8009dae: 68f8 ldr r0, [r7, #12] + 8009db0: f000 f994 bl 800a0dc + 8009db4: 4603 mov r3, r0 + 8009db6: 0fda lsrs r2, r3, #31 + 8009db8: 4413 add r3, r2 + 8009dba: 105b asrs r3, r3, #1 + 8009dbc: b21b sxth r3, r3 + 8009dbe: b29b uxth r3, r3 + 8009dc0: 1ae3 subs r3, r4, r3 + 8009dc2: b29b uxth r3, r3 + 8009dc4: 84fb strh r3, [r7, #38] ; 0x26 y = lv_obj_get_height(base); - 8009e32: 68b8 ldr r0, [r7, #8] - 8009e34: f000 f996 bl 800a164 - 8009e38: 4603 mov r3, r0 - 8009e3a: 84bb strh r3, [r7, #36] ; 0x24 + 8009dc6: 68b8 ldr r0, [r7, #8] + 8009dc8: f000 f996 bl 800a0f8 + 8009dcc: 4603 mov r3, r0 + 8009dce: 84bb strh r3, [r7, #36] ; 0x24 break; - 8009e3c: e087 b.n 8009f4e + 8009dd0: e087 b.n 8009ee2 case LV_ALIGN_OUT_BOTTOM_RIGHT: x = lv_obj_get_width(base) - lv_obj_get_width(obj); - 8009e3e: 68b8 ldr r0, [r7, #8] - 8009e40: f000 f982 bl 800a148 - 8009e44: 4603 mov r3, r0 - 8009e46: b29c uxth r4, r3 - 8009e48: 68f8 ldr r0, [r7, #12] - 8009e4a: f000 f97d bl 800a148 - 8009e4e: 4603 mov r3, r0 - 8009e50: b29b uxth r3, r3 - 8009e52: 1ae3 subs r3, r4, r3 - 8009e54: b29b uxth r3, r3 - 8009e56: 84fb strh r3, [r7, #38] ; 0x26 + 8009dd2: 68b8 ldr r0, [r7, #8] + 8009dd4: f000 f982 bl 800a0dc + 8009dd8: 4603 mov r3, r0 + 8009dda: b29c uxth r4, r3 + 8009ddc: 68f8 ldr r0, [r7, #12] + 8009dde: f000 f97d bl 800a0dc + 8009de2: 4603 mov r3, r0 + 8009de4: b29b uxth r3, r3 + 8009de6: 1ae3 subs r3, r4, r3 + 8009de8: b29b uxth r3, r3 + 8009dea: 84fb strh r3, [r7, #38] ; 0x26 y = lv_obj_get_height(base); - 8009e58: 68b8 ldr r0, [r7, #8] - 8009e5a: f000 f983 bl 800a164 - 8009e5e: 4603 mov r3, r0 - 8009e60: 84bb strh r3, [r7, #36] ; 0x24 + 8009dec: 68b8 ldr r0, [r7, #8] + 8009dee: f000 f983 bl 800a0f8 + 8009df2: 4603 mov r3, r0 + 8009df4: 84bb strh r3, [r7, #36] ; 0x24 break; - 8009e62: e074 b.n 8009f4e + 8009df6: e074 b.n 8009ee2 case LV_ALIGN_OUT_LEFT_TOP: x = -lv_obj_get_width(obj); - 8009e64: 68f8 ldr r0, [r7, #12] - 8009e66: f000 f96f bl 800a148 - 8009e6a: 4603 mov r3, r0 - 8009e6c: b29b uxth r3, r3 - 8009e6e: 425b negs r3, r3 - 8009e70: b29b uxth r3, r3 - 8009e72: 84fb strh r3, [r7, #38] ; 0x26 + 8009df8: 68f8 ldr r0, [r7, #12] + 8009dfa: f000 f96f bl 800a0dc + 8009dfe: 4603 mov r3, r0 + 8009e00: b29b uxth r3, r3 + 8009e02: 425b negs r3, r3 + 8009e04: b29b uxth r3, r3 + 8009e06: 84fb strh r3, [r7, #38] ; 0x26 y = 0; - 8009e74: 2300 movs r3, #0 - 8009e76: 84bb strh r3, [r7, #36] ; 0x24 + 8009e08: 2300 movs r3, #0 + 8009e0a: 84bb strh r3, [r7, #36] ; 0x24 break; - 8009e78: e069 b.n 8009f4e + 8009e0c: e069 b.n 8009ee2 case LV_ALIGN_OUT_LEFT_MID: x = -lv_obj_get_width(obj); - 8009e7a: 68f8 ldr r0, [r7, #12] - 8009e7c: f000 f964 bl 800a148 - 8009e80: 4603 mov r3, r0 - 8009e82: b29b uxth r3, r3 - 8009e84: 425b negs r3, r3 - 8009e86: b29b uxth r3, r3 - 8009e88: 84fb strh r3, [r7, #38] ; 0x26 + 8009e0e: 68f8 ldr r0, [r7, #12] + 8009e10: f000 f964 bl 800a0dc + 8009e14: 4603 mov r3, r0 + 8009e16: b29b uxth r3, r3 + 8009e18: 425b negs r3, r3 + 8009e1a: b29b uxth r3, r3 + 8009e1c: 84fb strh r3, [r7, #38] ; 0x26 y = lv_obj_get_height(base) / 2 - lv_obj_get_height(obj) / 2; - 8009e8a: 68b8 ldr r0, [r7, #8] - 8009e8c: f000 f96a bl 800a164 - 8009e90: 4603 mov r3, r0 - 8009e92: 0fda lsrs r2, r3, #31 - 8009e94: 4413 add r3, r2 - 8009e96: 105b asrs r3, r3, #1 - 8009e98: b21b sxth r3, r3 - 8009e9a: b29c uxth r4, r3 - 8009e9c: 68f8 ldr r0, [r7, #12] - 8009e9e: f000 f961 bl 800a164 - 8009ea2: 4603 mov r3, r0 - 8009ea4: 0fda lsrs r2, r3, #31 - 8009ea6: 4413 add r3, r2 - 8009ea8: 105b asrs r3, r3, #1 - 8009eaa: b21b sxth r3, r3 - 8009eac: b29b uxth r3, r3 - 8009eae: 1ae3 subs r3, r4, r3 - 8009eb0: b29b uxth r3, r3 - 8009eb2: 84bb strh r3, [r7, #36] ; 0x24 + 8009e1e: 68b8 ldr r0, [r7, #8] + 8009e20: f000 f96a bl 800a0f8 + 8009e24: 4603 mov r3, r0 + 8009e26: 0fda lsrs r2, r3, #31 + 8009e28: 4413 add r3, r2 + 8009e2a: 105b asrs r3, r3, #1 + 8009e2c: b21b sxth r3, r3 + 8009e2e: b29c uxth r4, r3 + 8009e30: 68f8 ldr r0, [r7, #12] + 8009e32: f000 f961 bl 800a0f8 + 8009e36: 4603 mov r3, r0 + 8009e38: 0fda lsrs r2, r3, #31 + 8009e3a: 4413 add r3, r2 + 8009e3c: 105b asrs r3, r3, #1 + 8009e3e: b21b sxth r3, r3 + 8009e40: b29b uxth r3, r3 + 8009e42: 1ae3 subs r3, r4, r3 + 8009e44: b29b uxth r3, r3 + 8009e46: 84bb strh r3, [r7, #36] ; 0x24 break; - 8009eb4: e04b b.n 8009f4e + 8009e48: e04b b.n 8009ee2 case LV_ALIGN_OUT_LEFT_BOTTOM: x = -lv_obj_get_width(obj); - 8009eb6: 68f8 ldr r0, [r7, #12] - 8009eb8: f000 f946 bl 800a148 - 8009ebc: 4603 mov r3, r0 - 8009ebe: b29b uxth r3, r3 - 8009ec0: 425b negs r3, r3 - 8009ec2: b29b uxth r3, r3 + 8009e4a: 68f8 ldr r0, [r7, #12] + 8009e4c: f000 f946 bl 800a0dc + 8009e50: 4603 mov r3, r0 + 8009e52: b29b uxth r3, r3 + 8009e54: 425b negs r3, r3 + 8009e56: b29b uxth r3, r3 + 8009e58: 84fb strh r3, [r7, #38] ; 0x26 + y = lv_obj_get_height(base) - lv_obj_get_height(obj); + 8009e5a: 68b8 ldr r0, [r7, #8] + 8009e5c: f000 f94c bl 800a0f8 + 8009e60: 4603 mov r3, r0 + 8009e62: b29c uxth r4, r3 + 8009e64: 68f8 ldr r0, [r7, #12] + 8009e66: f000 f947 bl 800a0f8 + 8009e6a: 4603 mov r3, r0 + 8009e6c: b29b uxth r3, r3 + 8009e6e: 1ae3 subs r3, r4, r3 + 8009e70: b29b uxth r3, r3 + 8009e72: 84bb strh r3, [r7, #36] ; 0x24 + break; + 8009e74: e035 b.n 8009ee2 + + case LV_ALIGN_OUT_RIGHT_TOP: + x = lv_obj_get_width(base); + 8009e76: 68b8 ldr r0, [r7, #8] + 8009e78: f000 f930 bl 800a0dc + 8009e7c: 4603 mov r3, r0 + 8009e7e: 84fb strh r3, [r7, #38] ; 0x26 + y = 0; + 8009e80: 2300 movs r3, #0 + 8009e82: 84bb strh r3, [r7, #36] ; 0x24 + break; + 8009e84: e02d b.n 8009ee2 + + case LV_ALIGN_OUT_RIGHT_MID: + x = lv_obj_get_width(base); + 8009e86: 68b8 ldr r0, [r7, #8] + 8009e88: f000 f928 bl 800a0dc + 8009e8c: 4603 mov r3, r0 + 8009e8e: 84fb strh r3, [r7, #38] ; 0x26 + y = lv_obj_get_height(base) / 2 - lv_obj_get_height(obj) / 2; + 8009e90: 68b8 ldr r0, [r7, #8] + 8009e92: f000 f931 bl 800a0f8 + 8009e96: 4603 mov r3, r0 + 8009e98: 0fda lsrs r2, r3, #31 + 8009e9a: 4413 add r3, r2 + 8009e9c: 105b asrs r3, r3, #1 + 8009e9e: b21b sxth r3, r3 + 8009ea0: b29c uxth r4, r3 + 8009ea2: 68f8 ldr r0, [r7, #12] + 8009ea4: f000 f928 bl 800a0f8 + 8009ea8: 4603 mov r3, r0 + 8009eaa: 0fda lsrs r2, r3, #31 + 8009eac: 4413 add r3, r2 + 8009eae: 105b asrs r3, r3, #1 + 8009eb0: b21b sxth r3, r3 + 8009eb2: b29b uxth r3, r3 + 8009eb4: 1ae3 subs r3, r4, r3 + 8009eb6: b29b uxth r3, r3 + 8009eb8: 84bb strh r3, [r7, #36] ; 0x24 + break; + 8009eba: e012 b.n 8009ee2 + + case LV_ALIGN_OUT_RIGHT_BOTTOM: + x = lv_obj_get_width(base); + 8009ebc: 68b8 ldr r0, [r7, #8] + 8009ebe: f000 f90d bl 800a0dc + 8009ec2: 4603 mov r3, r0 8009ec4: 84fb strh r3, [r7, #38] ; 0x26 y = lv_obj_get_height(base) - lv_obj_get_height(obj); 8009ec6: 68b8 ldr r0, [r7, #8] - 8009ec8: f000 f94c bl 800a164 + 8009ec8: f000 f916 bl 800a0f8 8009ecc: 4603 mov r3, r0 8009ece: b29c uxth r4, r3 8009ed0: 68f8 ldr r0, [r7, #12] - 8009ed2: f000 f947 bl 800a164 + 8009ed2: f000 f911 bl 800a0f8 8009ed6: 4603 mov r3, r0 8009ed8: b29b uxth r3, r3 8009eda: 1ae3 subs r3, r4, r3 8009edc: b29b uxth r3, r3 8009ede: 84bb strh r3, [r7, #36] ; 0x24 break; - 8009ee0: e035 b.n 8009f4e - - case LV_ALIGN_OUT_RIGHT_TOP: - x = lv_obj_get_width(base); - 8009ee2: 68b8 ldr r0, [r7, #8] - 8009ee4: f000 f930 bl 800a148 - 8009ee8: 4603 mov r3, r0 - 8009eea: 84fb strh r3, [r7, #38] ; 0x26 - y = 0; - 8009eec: 2300 movs r3, #0 - 8009eee: 84bb strh r3, [r7, #36] ; 0x24 - break; - 8009ef0: e02d b.n 8009f4e - - case LV_ALIGN_OUT_RIGHT_MID: - x = lv_obj_get_width(base); - 8009ef2: 68b8 ldr r0, [r7, #8] - 8009ef4: f000 f928 bl 800a148 - 8009ef8: 4603 mov r3, r0 - 8009efa: 84fb strh r3, [r7, #38] ; 0x26 - y = lv_obj_get_height(base) / 2 - lv_obj_get_height(obj) / 2; - 8009efc: 68b8 ldr r0, [r7, #8] - 8009efe: f000 f931 bl 800a164 - 8009f02: 4603 mov r3, r0 - 8009f04: 0fda lsrs r2, r3, #31 - 8009f06: 4413 add r3, r2 - 8009f08: 105b asrs r3, r3, #1 - 8009f0a: b21b sxth r3, r3 - 8009f0c: b29c uxth r4, r3 - 8009f0e: 68f8 ldr r0, [r7, #12] - 8009f10: f000 f928 bl 800a164 - 8009f14: 4603 mov r3, r0 - 8009f16: 0fda lsrs r2, r3, #31 - 8009f18: 4413 add r3, r2 - 8009f1a: 105b asrs r3, r3, #1 - 8009f1c: b21b sxth r3, r3 - 8009f1e: b29b uxth r3, r3 - 8009f20: 1ae3 subs r3, r4, r3 - 8009f22: b29b uxth r3, r3 - 8009f24: 84bb strh r3, [r7, #36] ; 0x24 - break; - 8009f26: e012 b.n 8009f4e - - case LV_ALIGN_OUT_RIGHT_BOTTOM: - x = lv_obj_get_width(base); - 8009f28: 68b8 ldr r0, [r7, #8] - 8009f2a: f000 f90d bl 800a148 - 8009f2e: 4603 mov r3, r0 - 8009f30: 84fb strh r3, [r7, #38] ; 0x26 - y = lv_obj_get_height(base) - lv_obj_get_height(obj); - 8009f32: 68b8 ldr r0, [r7, #8] - 8009f34: f000 f916 bl 800a164 - 8009f38: 4603 mov r3, r0 - 8009f3a: b29c uxth r4, r3 - 8009f3c: 68f8 ldr r0, [r7, #12] - 8009f3e: f000 f911 bl 800a164 - 8009f42: 4603 mov r3, r0 - 8009f44: b29b uxth r3, r3 - 8009f46: 1ae3 subs r3, r4, r3 - 8009f48: b29b uxth r3, r3 - 8009f4a: 84bb strh r3, [r7, #36] ; 0x24 - break; - 8009f4c: bf00 nop + 8009ee0: bf00 nop } if(lv_obj_get_style_base_dir(parent, LV_PART_MAIN) == LV_BASE_DIR_RTL) { - 8009f4e: 2100 movs r1, #0 - 8009f50: 6a38 ldr r0, [r7, #32] - 8009f52: f7ff f97a bl 800924a - 8009f56: 4603 mov r3, r0 - 8009f58: 2b01 cmp r3, #1 - 8009f5a: d117 bne.n 8009f8c + 8009ee2: 2100 movs r1, #0 + 8009ee4: 6a38 ldr r0, [r7, #32] + 8009ee6: f7ff f97a bl 80091de + 8009eea: 4603 mov r3, r0 + 8009eec: 2b01 cmp r3, #1 + 8009eee: d117 bne.n 8009f20 x += x_ofs + base->coords.x1 - parent->coords.x1 + lv_obj_get_scroll_right(parent) - pleft; - 8009f5c: f9b7 3004 ldrsh.w r3, [r7, #4] - 8009f60: 68ba ldr r2, [r7, #8] - 8009f62: f9b2 2014 ldrsh.w r2, [r2, #20] - 8009f66: 4413 add r3, r2 - 8009f68: 6a3a ldr r2, [r7, #32] - 8009f6a: f9b2 2014 ldrsh.w r2, [r2, #20] - 8009f6e: 1a9c subs r4, r3, r2 - 8009f70: 6a38 ldr r0, [r7, #32] - 8009f72: f001 fe6d bl 800bc50 - 8009f76: 4603 mov r3, r0 - 8009f78: 18e2 adds r2, r4, r3 - 8009f7a: f9b7 301c ldrsh.w r3, [r7, #28] - 8009f7e: 1ad3 subs r3, r2, r3 - 8009f80: b29a uxth r2, r3 - 8009f82: 8cfb ldrh r3, [r7, #38] ; 0x26 - 8009f84: 4413 add r3, r2 - 8009f86: b29b uxth r3, r3 - 8009f88: 84fb strh r3, [r7, #38] ; 0x26 - 8009f8a: e016 b.n 8009fba + 8009ef0: f9b7 3004 ldrsh.w r3, [r7, #4] + 8009ef4: 68ba ldr r2, [r7, #8] + 8009ef6: f9b2 2014 ldrsh.w r2, [r2, #20] + 8009efa: 4413 add r3, r2 + 8009efc: 6a3a ldr r2, [r7, #32] + 8009efe: f9b2 2014 ldrsh.w r2, [r2, #20] + 8009f02: 1a9c subs r4, r3, r2 + 8009f04: 6a38 ldr r0, [r7, #32] + 8009f06: f001 fe6d bl 800bbe4 + 8009f0a: 4603 mov r3, r0 + 8009f0c: 18e2 adds r2, r4, r3 + 8009f0e: f9b7 301c ldrsh.w r3, [r7, #28] + 8009f12: 1ad3 subs r3, r2, r3 + 8009f14: b29a uxth r2, r3 + 8009f16: 8cfb ldrh r3, [r7, #38] ; 0x26 + 8009f18: 4413 add r3, r2 + 8009f1a: b29b uxth r3, r3 + 8009f1c: 84fb strh r3, [r7, #38] ; 0x26 + 8009f1e: e016 b.n 8009f4e } else { x += x_ofs + base->coords.x1 - parent->coords.x1 + lv_obj_get_scroll_left(parent) - pleft; - 8009f8c: f9b7 3004 ldrsh.w r3, [r7, #4] - 8009f90: 68ba ldr r2, [r7, #8] - 8009f92: f9b2 2014 ldrsh.w r2, [r2, #20] - 8009f96: 4413 add r3, r2 - 8009f98: 6a3a ldr r2, [r7, #32] - 8009f9a: f9b2 2014 ldrsh.w r2, [r2, #20] - 8009f9e: 1a9c subs r4, r3, r2 - 8009fa0: 6a38 ldr r0, [r7, #32] - 8009fa2: f001 fdb1 bl 800bb08 - 8009fa6: 4603 mov r3, r0 - 8009fa8: 18e2 adds r2, r4, r3 - 8009faa: f9b7 301c ldrsh.w r3, [r7, #28] - 8009fae: 1ad3 subs r3, r2, r3 - 8009fb0: b29a uxth r2, r3 - 8009fb2: 8cfb ldrh r3, [r7, #38] ; 0x26 - 8009fb4: 4413 add r3, r2 - 8009fb6: b29b uxth r3, r3 - 8009fb8: 84fb strh r3, [r7, #38] ; 0x26 + 8009f20: f9b7 3004 ldrsh.w r3, [r7, #4] + 8009f24: 68ba ldr r2, [r7, #8] + 8009f26: f9b2 2014 ldrsh.w r2, [r2, #20] + 8009f2a: 4413 add r3, r2 + 8009f2c: 6a3a ldr r2, [r7, #32] + 8009f2e: f9b2 2014 ldrsh.w r2, [r2, #20] + 8009f32: 1a9c subs r4, r3, r2 + 8009f34: 6a38 ldr r0, [r7, #32] + 8009f36: f001 fdb1 bl 800ba9c + 8009f3a: 4603 mov r3, r0 + 8009f3c: 18e2 adds r2, r4, r3 + 8009f3e: f9b7 301c ldrsh.w r3, [r7, #28] + 8009f42: 1ad3 subs r3, r2, r3 + 8009f44: b29a uxth r2, r3 + 8009f46: 8cfb ldrh r3, [r7, #38] ; 0x26 + 8009f48: 4413 add r3, r2 + 8009f4a: b29b uxth r3, r3 + 8009f4c: 84fb strh r3, [r7, #38] ; 0x26 } y += y_ofs + base->coords.y1 - parent->coords.y1 + lv_obj_get_scroll_top(parent) - ptop; - 8009fba: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 8009fbe: 68ba ldr r2, [r7, #8] - 8009fc0: f9b2 2016 ldrsh.w r2, [r2, #22] - 8009fc4: 4413 add r3, r2 - 8009fc6: 6a3a ldr r2, [r7, #32] - 8009fc8: f9b2 2016 ldrsh.w r2, [r2, #22] - 8009fcc: 1a9c subs r4, r3, r2 - 8009fce: 6a38 ldr r0, [r7, #32] - 8009fd0: f001 fcfc bl 800b9cc - 8009fd4: 4603 mov r3, r0 - 8009fd6: 18e2 adds r2, r4, r3 - 8009fd8: f9b7 301a ldrsh.w r3, [r7, #26] - 8009fdc: 1ad3 subs r3, r2, r3 - 8009fde: b29a uxth r2, r3 - 8009fe0: 8cbb ldrh r3, [r7, #36] ; 0x24 - 8009fe2: 4413 add r3, r2 - 8009fe4: b29b uxth r3, r3 - 8009fe6: 84bb strh r3, [r7, #36] ; 0x24 + 8009f4e: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 8009f52: 68ba ldr r2, [r7, #8] + 8009f54: f9b2 2016 ldrsh.w r2, [r2, #22] + 8009f58: 4413 add r3, r2 + 8009f5a: 6a3a ldr r2, [r7, #32] + 8009f5c: f9b2 2016 ldrsh.w r2, [r2, #22] + 8009f60: 1a9c subs r4, r3, r2 + 8009f62: 6a38 ldr r0, [r7, #32] + 8009f64: f001 fcfc bl 800b960 + 8009f68: 4603 mov r3, r0 + 8009f6a: 18e2 adds r2, r4, r3 + 8009f6c: f9b7 301a ldrsh.w r3, [r7, #26] + 8009f70: 1ad3 subs r3, r2, r3 + 8009f72: b29a uxth r2, r3 + 8009f74: 8cbb ldrh r3, [r7, #36] ; 0x24 + 8009f76: 4413 add r3, r2 + 8009f78: b29b uxth r3, r3 + 8009f7a: 84bb strh r3, [r7, #36] ; 0x24 lv_obj_set_style_align(obj, LV_ALIGN_TOP_LEFT, 0); - 8009fe8: 2200 movs r2, #0 - 8009fea: 2101 movs r1, #1 - 8009fec: 68f8 ldr r0, [r7, #12] - 8009fee: f005 f960 bl 800f2b2 + 8009f7c: 2200 movs r2, #0 + 8009f7e: 2101 movs r1, #1 + 8009f80: 68f8 ldr r0, [r7, #12] + 8009f82: f005 f960 bl 800f246 lv_obj_set_pos(obj, x, y); - 8009ff2: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 - 8009ff6: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 8009ffa: 4619 mov r1, r3 - 8009ffc: 68f8 ldr r0, [r7, #12] - 8009ffe: f7ff f937 bl 8009270 + 8009f86: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 + 8009f8a: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 8009f8e: 4619 mov r1, r3 + 8009f90: 68f8 ldr r0, [r7, #12] + 8009f92: f7ff f937 bl 8009204 } - 800a002: bf00 nop - 800a004: 372c adds r7, #44 ; 0x2c - 800a006: 46bd mov sp, r7 - 800a008: bd90 pop {r4, r7, pc} - 800a00a: bf00 nop + 8009f96: bf00 nop + 8009f98: 372c adds r7, #44 ; 0x2c + 8009f9a: 46bd mov sp, r7 + 8009f9c: bd90 pop {r4, r7, pc} + 8009f9e: bf00 nop -0800a00c : +08009fa0 : void lv_obj_get_coords(const lv_obj_t * obj, lv_area_t * coords) { - 800a00c: b580 push {r7, lr} - 800a00e: b082 sub sp, #8 - 800a010: af00 add r7, sp, #0 - 800a012: 6078 str r0, [r7, #4] - 800a014: 6039 str r1, [r7, #0] + 8009fa0: b580 push {r7, lr} + 8009fa2: b082 sub sp, #8 + 8009fa4: af00 add r7, sp, #0 + 8009fa6: 6078 str r0, [r7, #4] + 8009fa8: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_area_copy(coords, &obj->coords); - 800a016: 687b ldr r3, [r7, #4] - 800a018: 3314 adds r3, #20 - 800a01a: 4619 mov r1, r3 - 800a01c: 6838 ldr r0, [r7, #0] - 800a01e: f7fe ff87 bl 8008f30 + 8009faa: 687b ldr r3, [r7, #4] + 8009fac: 3314 adds r3, #20 + 8009fae: 4619 mov r1, r3 + 8009fb0: 6838 ldr r0, [r7, #0] + 8009fb2: f7fe ff87 bl 8008ec4 } - 800a022: bf00 nop - 800a024: 3708 adds r7, #8 - 800a026: 46bd mov sp, r7 - 800a028: bd80 pop {r7, pc} + 8009fb6: bf00 nop + 8009fb8: 3708 adds r7, #8 + 8009fba: 46bd mov sp, r7 + 8009fbc: bd80 pop {r7, pc} -0800a02a : +08009fbe : lv_coord_t lv_obj_get_x(const lv_obj_t * obj) { - 800a02a: b580 push {r7, lr} - 800a02c: b084 sub sp, #16 - 800a02e: af00 add r7, sp, #0 - 800a030: 6078 str r0, [r7, #4] + 8009fbe: b580 push {r7, lr} + 8009fc0: b084 sub sp, #16 + 8009fc2: af00 add r7, sp, #0 + 8009fc4: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_coord_t rel_x; lv_obj_t * parent = lv_obj_get_parent(obj); - 800a032: 6878 ldr r0, [r7, #4] - 800a034: f005 fb6a bl 800f70c - 800a038: 60b8 str r0, [r7, #8] + 8009fc6: 6878 ldr r0, [r7, #4] + 8009fc8: f005 fb56 bl 800f678 + 8009fcc: 60b8 str r0, [r7, #8] if(parent) { - 800a03a: 68bb ldr r3, [r7, #8] - 800a03c: 2b00 cmp r3, #0 - 800a03e: d028 beq.n 800a092 + 8009fce: 68bb ldr r3, [r7, #8] + 8009fd0: 2b00 cmp r3, #0 + 8009fd2: d028 beq.n 800a026 rel_x = obj->coords.x1 - parent->coords.x1; - 800a040: 687b ldr r3, [r7, #4] - 800a042: f9b3 3014 ldrsh.w r3, [r3, #20] - 800a046: b29a uxth r2, r3 - 800a048: 68bb ldr r3, [r7, #8] - 800a04a: f9b3 3014 ldrsh.w r3, [r3, #20] - 800a04e: b29b uxth r3, r3 - 800a050: 1ad3 subs r3, r2, r3 - 800a052: b29b uxth r3, r3 - 800a054: 81fb strh r3, [r7, #14] + 8009fd4: 687b ldr r3, [r7, #4] + 8009fd6: f9b3 3014 ldrsh.w r3, [r3, #20] + 8009fda: b29a uxth r2, r3 + 8009fdc: 68bb ldr r3, [r7, #8] + 8009fde: f9b3 3014 ldrsh.w r3, [r3, #20] + 8009fe2: b29b uxth r3, r3 + 8009fe4: 1ad3 subs r3, r2, r3 + 8009fe6: b29b uxth r3, r3 + 8009fe8: 81fb strh r3, [r7, #14] rel_x += lv_obj_get_scroll_x(parent); - 800a056: 68b8 ldr r0, [r7, #8] - 800a058: f001 fc8a bl 800b970 - 800a05c: 4603 mov r3, r0 - 800a05e: b29a uxth r2, r3 - 800a060: 89fb ldrh r3, [r7, #14] - 800a062: 4413 add r3, r2 - 800a064: b29b uxth r3, r3 - 800a066: 81fb strh r3, [r7, #14] + 8009fea: 68b8 ldr r0, [r7, #8] + 8009fec: f001 fc8a bl 800b904 + 8009ff0: 4603 mov r3, r0 + 8009ff2: b29a uxth r2, r3 + 8009ff4: 89fb ldrh r3, [r7, #14] + 8009ff6: 4413 add r3, r2 + 8009ff8: b29b uxth r3, r3 + 8009ffa: 81fb strh r3, [r7, #14] rel_x -= lv_obj_get_style_pad_left(parent, LV_PART_MAIN); - 800a068: 2100 movs r1, #0 - 800a06a: 68b8 ldr r0, [r7, #8] - 800a06c: f7ff f8a1 bl 80091b2 - 800a070: 4603 mov r3, r0 - 800a072: 89fa ldrh r2, [r7, #14] - 800a074: b29b uxth r3, r3 - 800a076: 1ad3 subs r3, r2, r3 - 800a078: b29b uxth r3, r3 - 800a07a: 81fb strh r3, [r7, #14] + 8009ffc: 2100 movs r1, #0 + 8009ffe: 68b8 ldr r0, [r7, #8] + 800a000: f7ff f8a1 bl 8009146 + 800a004: 4603 mov r3, r0 + 800a006: 89fa ldrh r2, [r7, #14] + 800a008: b29b uxth r3, r3 + 800a00a: 1ad3 subs r3, r2, r3 + 800a00c: b29b uxth r3, r3 + 800a00e: 81fb strh r3, [r7, #14] rel_x -= lv_obj_get_style_border_width(parent, LV_PART_MAIN); - 800a07c: 2100 movs r1, #0 - 800a07e: 68b8 ldr r0, [r7, #8] - 800a080: f7ff f8bd bl 80091fe - 800a084: 4603 mov r3, r0 - 800a086: 89fa ldrh r2, [r7, #14] - 800a088: b29b uxth r3, r3 - 800a08a: 1ad3 subs r3, r2, r3 - 800a08c: b29b uxth r3, r3 - 800a08e: 81fb strh r3, [r7, #14] - 800a090: e002 b.n 800a098 + 800a010: 2100 movs r1, #0 + 800a012: 68b8 ldr r0, [r7, #8] + 800a014: f7ff f8bd bl 8009192 + 800a018: 4603 mov r3, r0 + 800a01a: 89fa ldrh r2, [r7, #14] + 800a01c: b29b uxth r3, r3 + 800a01e: 1ad3 subs r3, r2, r3 + 800a020: b29b uxth r3, r3 + 800a022: 81fb strh r3, [r7, #14] + 800a024: e002 b.n 800a02c } else { rel_x = obj->coords.x1; - 800a092: 687b ldr r3, [r7, #4] - 800a094: 8a9b ldrh r3, [r3, #20] - 800a096: 81fb strh r3, [r7, #14] + 800a026: 687b ldr r3, [r7, #4] + 800a028: 8a9b ldrh r3, [r3, #20] + 800a02a: 81fb strh r3, [r7, #14] } return rel_x; - 800a098: f9b7 300e ldrsh.w r3, [r7, #14] + 800a02c: f9b7 300e ldrsh.w r3, [r7, #14] } - 800a09c: 4618 mov r0, r3 - 800a09e: 3710 adds r7, #16 - 800a0a0: 46bd mov sp, r7 - 800a0a2: bd80 pop {r7, pc} + 800a030: 4618 mov r0, r3 + 800a032: 3710 adds r7, #16 + 800a034: 46bd mov sp, r7 + 800a036: bd80 pop {r7, pc} -0800a0a4 : +0800a038 : return lv_obj_get_x(obj) + lv_obj_get_width(obj); } lv_coord_t lv_obj_get_y(const lv_obj_t * obj) { - 800a0a4: b580 push {r7, lr} - 800a0a6: b084 sub sp, #16 - 800a0a8: af00 add r7, sp, #0 - 800a0aa: 6078 str r0, [r7, #4] + 800a038: b580 push {r7, lr} + 800a03a: b084 sub sp, #16 + 800a03c: af00 add r7, sp, #0 + 800a03e: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_coord_t rel_y; lv_obj_t * parent = lv_obj_get_parent(obj); - 800a0ac: 6878 ldr r0, [r7, #4] - 800a0ae: f005 fb2d bl 800f70c - 800a0b2: 60b8 str r0, [r7, #8] + 800a040: 6878 ldr r0, [r7, #4] + 800a042: f005 fb19 bl 800f678 + 800a046: 60b8 str r0, [r7, #8] if(parent) { - 800a0b4: 68bb ldr r3, [r7, #8] - 800a0b6: 2b00 cmp r3, #0 - 800a0b8: d028 beq.n 800a10c + 800a048: 68bb ldr r3, [r7, #8] + 800a04a: 2b00 cmp r3, #0 + 800a04c: d028 beq.n 800a0a0 rel_y = obj->coords.y1 - parent->coords.y1; - 800a0ba: 687b ldr r3, [r7, #4] - 800a0bc: f9b3 3016 ldrsh.w r3, [r3, #22] - 800a0c0: b29a uxth r2, r3 - 800a0c2: 68bb ldr r3, [r7, #8] - 800a0c4: f9b3 3016 ldrsh.w r3, [r3, #22] - 800a0c8: b29b uxth r3, r3 - 800a0ca: 1ad3 subs r3, r2, r3 - 800a0cc: b29b uxth r3, r3 - 800a0ce: 81fb strh r3, [r7, #14] + 800a04e: 687b ldr r3, [r7, #4] + 800a050: f9b3 3016 ldrsh.w r3, [r3, #22] + 800a054: b29a uxth r2, r3 + 800a056: 68bb ldr r3, [r7, #8] + 800a058: f9b3 3016 ldrsh.w r3, [r3, #22] + 800a05c: b29b uxth r3, r3 + 800a05e: 1ad3 subs r3, r2, r3 + 800a060: b29b uxth r3, r3 + 800a062: 81fb strh r3, [r7, #14] rel_y += lv_obj_get_scroll_y(parent); - 800a0d0: 68b8 ldr r0, [r7, #8] - 800a0d2: f001 fc64 bl 800b99e - 800a0d6: 4603 mov r3, r0 - 800a0d8: b29a uxth r2, r3 - 800a0da: 89fb ldrh r3, [r7, #14] - 800a0dc: 4413 add r3, r2 - 800a0de: b29b uxth r3, r3 - 800a0e0: 81fb strh r3, [r7, #14] + 800a064: 68b8 ldr r0, [r7, #8] + 800a066: f001 fc64 bl 800b932 + 800a06a: 4603 mov r3, r0 + 800a06c: b29a uxth r2, r3 + 800a06e: 89fb ldrh r3, [r7, #14] + 800a070: 4413 add r3, r2 + 800a072: b29b uxth r3, r3 + 800a074: 81fb strh r3, [r7, #14] rel_y -= lv_obj_get_style_pad_top(parent, LV_PART_MAIN); - 800a0e2: 2100 movs r1, #0 - 800a0e4: 68b8 ldr r0, [r7, #8] - 800a0e6: f7ff f83e bl 8009166 - 800a0ea: 4603 mov r3, r0 - 800a0ec: 89fa ldrh r2, [r7, #14] - 800a0ee: b29b uxth r3, r3 - 800a0f0: 1ad3 subs r3, r2, r3 - 800a0f2: b29b uxth r3, r3 - 800a0f4: 81fb strh r3, [r7, #14] + 800a076: 2100 movs r1, #0 + 800a078: 68b8 ldr r0, [r7, #8] + 800a07a: f7ff f83e bl 80090fa + 800a07e: 4603 mov r3, r0 + 800a080: 89fa ldrh r2, [r7, #14] + 800a082: b29b uxth r3, r3 + 800a084: 1ad3 subs r3, r2, r3 + 800a086: b29b uxth r3, r3 + 800a088: 81fb strh r3, [r7, #14] rel_y -= lv_obj_get_style_border_width(parent, LV_PART_MAIN); - 800a0f6: 2100 movs r1, #0 - 800a0f8: 68b8 ldr r0, [r7, #8] - 800a0fa: f7ff f880 bl 80091fe - 800a0fe: 4603 mov r3, r0 - 800a100: 89fa ldrh r2, [r7, #14] - 800a102: b29b uxth r3, r3 - 800a104: 1ad3 subs r3, r2, r3 - 800a106: b29b uxth r3, r3 - 800a108: 81fb strh r3, [r7, #14] - 800a10a: e002 b.n 800a112 + 800a08a: 2100 movs r1, #0 + 800a08c: 68b8 ldr r0, [r7, #8] + 800a08e: f7ff f880 bl 8009192 + 800a092: 4603 mov r3, r0 + 800a094: 89fa ldrh r2, [r7, #14] + 800a096: b29b uxth r3, r3 + 800a098: 1ad3 subs r3, r2, r3 + 800a09a: b29b uxth r3, r3 + 800a09c: 81fb strh r3, [r7, #14] + 800a09e: e002 b.n 800a0a6 } else { rel_y = obj->coords.y1; - 800a10c: 687b ldr r3, [r7, #4] - 800a10e: 8adb ldrh r3, [r3, #22] - 800a110: 81fb strh r3, [r7, #14] + 800a0a0: 687b ldr r3, [r7, #4] + 800a0a2: 8adb ldrh r3, [r3, #22] + 800a0a4: 81fb strh r3, [r7, #14] } return rel_y; - 800a112: f9b7 300e ldrsh.w r3, [r7, #14] + 800a0a6: f9b7 300e ldrsh.w r3, [r7, #14] } - 800a116: 4618 mov r0, r3 - 800a118: 3710 adds r7, #16 - 800a11a: 46bd mov sp, r7 - 800a11c: bd80 pop {r7, pc} + 800a0aa: 4618 mov r0, r3 + 800a0ac: 3710 adds r7, #16 + 800a0ae: 46bd mov sp, r7 + 800a0b0: bd80 pop {r7, pc} -0800a11e : +0800a0b2 : lv_coord_t lv_obj_get_y2(const lv_obj_t * obj) { - 800a11e: b590 push {r4, r7, lr} - 800a120: b083 sub sp, #12 - 800a122: af00 add r7, sp, #0 - 800a124: 6078 str r0, [r7, #4] + 800a0b2: b590 push {r4, r7, lr} + 800a0b4: b083 sub sp, #12 + 800a0b6: af00 add r7, sp, #0 + 800a0b8: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); return lv_obj_get_y(obj) + lv_obj_get_height(obj); - 800a126: 6878 ldr r0, [r7, #4] - 800a128: f7ff ffbc bl 800a0a4 - 800a12c: 4603 mov r3, r0 - 800a12e: b29c uxth r4, r3 - 800a130: 6878 ldr r0, [r7, #4] - 800a132: f000 f817 bl 800a164 - 800a136: 4603 mov r3, r0 - 800a138: b29b uxth r3, r3 - 800a13a: 4423 add r3, r4 - 800a13c: b29b uxth r3, r3 - 800a13e: b21b sxth r3, r3 + 800a0ba: 6878 ldr r0, [r7, #4] + 800a0bc: f7ff ffbc bl 800a038 + 800a0c0: 4603 mov r3, r0 + 800a0c2: b29c uxth r4, r3 + 800a0c4: 6878 ldr r0, [r7, #4] + 800a0c6: f000 f817 bl 800a0f8 + 800a0ca: 4603 mov r3, r0 + 800a0cc: b29b uxth r3, r3 + 800a0ce: 4423 add r3, r4 + 800a0d0: b29b uxth r3, r3 + 800a0d2: b21b sxth r3, r3 } - 800a140: 4618 mov r0, r3 - 800a142: 370c adds r7, #12 - 800a144: 46bd mov sp, r7 - 800a146: bd90 pop {r4, r7, pc} + 800a0d4: 4618 mov r0, r3 + 800a0d6: 370c adds r7, #12 + 800a0d8: 46bd mov sp, r7 + 800a0da: bd90 pop {r4, r7, pc} -0800a148 : +0800a0dc : return lv_obj_get_style_y(obj, LV_PART_MAIN); } lv_coord_t lv_obj_get_width(const lv_obj_t * obj) { - 800a148: b580 push {r7, lr} - 800a14a: b082 sub sp, #8 - 800a14c: af00 add r7, sp, #0 - 800a14e: 6078 str r0, [r7, #4] + 800a0dc: b580 push {r7, lr} + 800a0de: b082 sub sp, #8 + 800a0e0: af00 add r7, sp, #0 + 800a0e2: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); return lv_area_get_width(&obj->coords); - 800a150: 687b ldr r3, [r7, #4] - 800a152: 3314 adds r3, #20 - 800a154: 4618 mov r0, r3 - 800a156: f7fe ff09 bl 8008f6c - 800a15a: 4603 mov r3, r0 + 800a0e4: 687b ldr r3, [r7, #4] + 800a0e6: 3314 adds r3, #20 + 800a0e8: 4618 mov r0, r3 + 800a0ea: f7fe ff09 bl 8008f00 + 800a0ee: 4603 mov r3, r0 } - 800a15c: 4618 mov r0, r3 - 800a15e: 3708 adds r7, #8 - 800a160: 46bd mov sp, r7 - 800a162: bd80 pop {r7, pc} + 800a0f0: 4618 mov r0, r3 + 800a0f2: 3708 adds r7, #8 + 800a0f4: 46bd mov sp, r7 + 800a0f6: bd80 pop {r7, pc} -0800a164 : +0800a0f8 : lv_coord_t lv_obj_get_height(const lv_obj_t * obj) { - 800a164: b580 push {r7, lr} - 800a166: b082 sub sp, #8 - 800a168: af00 add r7, sp, #0 - 800a16a: 6078 str r0, [r7, #4] + 800a0f8: b580 push {r7, lr} + 800a0fa: b082 sub sp, #8 + 800a0fc: af00 add r7, sp, #0 + 800a0fe: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); return lv_area_get_height(&obj->coords); - 800a16c: 687b ldr r3, [r7, #4] - 800a16e: 3314 adds r3, #20 - 800a170: 4618 mov r0, r3 - 800a172: f7fe ff11 bl 8008f98 - 800a176: 4603 mov r3, r0 + 800a100: 687b ldr r3, [r7, #4] + 800a102: 3314 adds r3, #20 + 800a104: 4618 mov r0, r3 + 800a106: f7fe ff11 bl 8008f2c + 800a10a: 4603 mov r3, r0 } - 800a178: 4618 mov r0, r3 - 800a17a: 3708 adds r7, #8 - 800a17c: 46bd mov sp, r7 - 800a17e: bd80 pop {r7, pc} + 800a10c: 4618 mov r0, r3 + 800a10e: 3708 adds r7, #8 + 800a110: 46bd mov sp, r7 + 800a112: bd80 pop {r7, pc} -0800a180 : +0800a114 : lv_coord_t lv_obj_get_content_width(const lv_obj_t * obj) { - 800a180: b580 push {r7, lr} - 800a182: b084 sub sp, #16 - 800a184: af00 add r7, sp, #0 - 800a186: 6078 str r0, [r7, #4] + 800a114: b580 push {r7, lr} + 800a116: b084 sub sp, #16 + 800a118: af00 add r7, sp, #0 + 800a11a: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_coord_t left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 800a188: 2100 movs r1, #0 - 800a18a: 6878 ldr r0, [r7, #4] - 800a18c: f7ff f811 bl 80091b2 - 800a190: 4603 mov r3, r0 - 800a192: 81fb strh r3, [r7, #14] + 800a11c: 2100 movs r1, #0 + 800a11e: 6878 ldr r0, [r7, #4] + 800a120: f7ff f811 bl 8009146 + 800a124: 4603 mov r3, r0 + 800a126: 81fb strh r3, [r7, #14] lv_coord_t right = lv_obj_get_style_pad_right(obj, LV_PART_MAIN); - 800a194: 2100 movs r1, #0 - 800a196: 6878 ldr r0, [r7, #4] - 800a198: f7ff f81e bl 80091d8 - 800a19c: 4603 mov r3, r0 - 800a19e: 81bb strh r3, [r7, #12] + 800a128: 2100 movs r1, #0 + 800a12a: 6878 ldr r0, [r7, #4] + 800a12c: f7ff f81e bl 800916c + 800a130: 4603 mov r3, r0 + 800a132: 81bb strh r3, [r7, #12] lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 800a1a0: 2100 movs r1, #0 - 800a1a2: 6878 ldr r0, [r7, #4] - 800a1a4: f7ff f82b bl 80091fe - 800a1a8: 4603 mov r3, r0 - 800a1aa: 817b strh r3, [r7, #10] + 800a134: 2100 movs r1, #0 + 800a136: 6878 ldr r0, [r7, #4] + 800a138: f7ff f82b bl 8009192 + 800a13c: 4603 mov r3, r0 + 800a13e: 817b strh r3, [r7, #10] return lv_obj_get_width(obj) - left - right - 2 * border_width; - 800a1ac: 6878 ldr r0, [r7, #4] - 800a1ae: f7ff ffcb bl 800a148 - 800a1b2: 4603 mov r3, r0 - 800a1b4: b29a uxth r2, r3 - 800a1b6: 89fb ldrh r3, [r7, #14] - 800a1b8: 1ad3 subs r3, r2, r3 - 800a1ba: b29a uxth r2, r3 - 800a1bc: 89bb ldrh r3, [r7, #12] - 800a1be: 1ad3 subs r3, r2, r3 - 800a1c0: b29a uxth r2, r3 - 800a1c2: 897b ldrh r3, [r7, #10] - 800a1c4: 005b lsls r3, r3, #1 - 800a1c6: b29b uxth r3, r3 - 800a1c8: 1ad3 subs r3, r2, r3 - 800a1ca: b29b uxth r3, r3 - 800a1cc: b21b sxth r3, r3 + 800a140: 6878 ldr r0, [r7, #4] + 800a142: f7ff ffcb bl 800a0dc + 800a146: 4603 mov r3, r0 + 800a148: b29a uxth r2, r3 + 800a14a: 89fb ldrh r3, [r7, #14] + 800a14c: 1ad3 subs r3, r2, r3 + 800a14e: b29a uxth r2, r3 + 800a150: 89bb ldrh r3, [r7, #12] + 800a152: 1ad3 subs r3, r2, r3 + 800a154: b29a uxth r2, r3 + 800a156: 897b ldrh r3, [r7, #10] + 800a158: 005b lsls r3, r3, #1 + 800a15a: b29b uxth r3, r3 + 800a15c: 1ad3 subs r3, r2, r3 + 800a15e: b29b uxth r3, r3 + 800a160: b21b sxth r3, r3 } - 800a1ce: 4618 mov r0, r3 - 800a1d0: 3710 adds r7, #16 - 800a1d2: 46bd mov sp, r7 - 800a1d4: bd80 pop {r7, pc} + 800a162: 4618 mov r0, r3 + 800a164: 3710 adds r7, #16 + 800a166: 46bd mov sp, r7 + 800a168: bd80 pop {r7, pc} -0800a1d6 : +0800a16a : lv_coord_t lv_obj_get_content_height(const lv_obj_t * obj) { - 800a1d6: b580 push {r7, lr} - 800a1d8: b084 sub sp, #16 - 800a1da: af00 add r7, sp, #0 - 800a1dc: 6078 str r0, [r7, #4] + 800a16a: b580 push {r7, lr} + 800a16c: b084 sub sp, #16 + 800a16e: af00 add r7, sp, #0 + 800a170: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_coord_t top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 800a1de: 2100 movs r1, #0 - 800a1e0: 6878 ldr r0, [r7, #4] - 800a1e2: f7fe ffc0 bl 8009166 - 800a1e6: 4603 mov r3, r0 - 800a1e8: 81fb strh r3, [r7, #14] + 800a172: 2100 movs r1, #0 + 800a174: 6878 ldr r0, [r7, #4] + 800a176: f7fe ffc0 bl 80090fa + 800a17a: 4603 mov r3, r0 + 800a17c: 81fb strh r3, [r7, #14] lv_coord_t bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN); - 800a1ea: 2100 movs r1, #0 - 800a1ec: 6878 ldr r0, [r7, #4] - 800a1ee: f7fe ffcd bl 800918c - 800a1f2: 4603 mov r3, r0 - 800a1f4: 81bb strh r3, [r7, #12] + 800a17e: 2100 movs r1, #0 + 800a180: 6878 ldr r0, [r7, #4] + 800a182: f7fe ffcd bl 8009120 + 800a186: 4603 mov r3, r0 + 800a188: 81bb strh r3, [r7, #12] lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 800a1f6: 2100 movs r1, #0 - 800a1f8: 6878 ldr r0, [r7, #4] - 800a1fa: f7ff f800 bl 80091fe - 800a1fe: 4603 mov r3, r0 - 800a200: 817b strh r3, [r7, #10] + 800a18a: 2100 movs r1, #0 + 800a18c: 6878 ldr r0, [r7, #4] + 800a18e: f7ff f800 bl 8009192 + 800a192: 4603 mov r3, r0 + 800a194: 817b strh r3, [r7, #10] return lv_obj_get_height(obj) - top - bottom - 2 * border_width; - 800a202: 6878 ldr r0, [r7, #4] - 800a204: f7ff ffae bl 800a164 - 800a208: 4603 mov r3, r0 - 800a20a: b29a uxth r2, r3 - 800a20c: 89fb ldrh r3, [r7, #14] - 800a20e: 1ad3 subs r3, r2, r3 - 800a210: b29a uxth r2, r3 - 800a212: 89bb ldrh r3, [r7, #12] - 800a214: 1ad3 subs r3, r2, r3 - 800a216: b29a uxth r2, r3 - 800a218: 897b ldrh r3, [r7, #10] - 800a21a: 005b lsls r3, r3, #1 - 800a21c: b29b uxth r3, r3 - 800a21e: 1ad3 subs r3, r2, r3 - 800a220: b29b uxth r3, r3 - 800a222: b21b sxth r3, r3 + 800a196: 6878 ldr r0, [r7, #4] + 800a198: f7ff ffae bl 800a0f8 + 800a19c: 4603 mov r3, r0 + 800a19e: b29a uxth r2, r3 + 800a1a0: 89fb ldrh r3, [r7, #14] + 800a1a2: 1ad3 subs r3, r2, r3 + 800a1a4: b29a uxth r2, r3 + 800a1a6: 89bb ldrh r3, [r7, #12] + 800a1a8: 1ad3 subs r3, r2, r3 + 800a1aa: b29a uxth r2, r3 + 800a1ac: 897b ldrh r3, [r7, #10] + 800a1ae: 005b lsls r3, r3, #1 + 800a1b0: b29b uxth r3, r3 + 800a1b2: 1ad3 subs r3, r2, r3 + 800a1b4: b29b uxth r3, r3 + 800a1b6: b21b sxth r3, r3 } - 800a224: 4618 mov r0, r3 - 800a226: 3710 adds r7, #16 - 800a228: 46bd mov sp, r7 - 800a22a: bd80 pop {r7, pc} + 800a1b8: 4618 mov r0, r3 + 800a1ba: 3710 adds r7, #16 + 800a1bc: 46bd mov sp, r7 + 800a1be: bd80 pop {r7, pc} -0800a22c : +0800a1c0 : void lv_obj_get_content_coords(const lv_obj_t * obj, lv_area_t * area) { - 800a22c: b580 push {r7, lr} - 800a22e: b084 sub sp, #16 - 800a230: af00 add r7, sp, #0 - 800a232: 6078 str r0, [r7, #4] - 800a234: 6039 str r1, [r7, #0] + 800a1c0: b580 push {r7, lr} + 800a1c2: b084 sub sp, #16 + 800a1c4: af00 add r7, sp, #0 + 800a1c6: 6078 str r0, [r7, #4] + 800a1c8: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 800a236: 2100 movs r1, #0 - 800a238: 6878 ldr r0, [r7, #4] - 800a23a: f7fe ffe0 bl 80091fe - 800a23e: 4603 mov r3, r0 - 800a240: 81fb strh r3, [r7, #14] + 800a1ca: 2100 movs r1, #0 + 800a1cc: 6878 ldr r0, [r7, #4] + 800a1ce: f7fe ffe0 bl 8009192 + 800a1d2: 4603 mov r3, r0 + 800a1d4: 81fb strh r3, [r7, #14] lv_obj_get_coords(obj, area); - 800a242: 6839 ldr r1, [r7, #0] - 800a244: 6878 ldr r0, [r7, #4] - 800a246: f7ff fee1 bl 800a00c + 800a1d6: 6839 ldr r1, [r7, #0] + 800a1d8: 6878 ldr r0, [r7, #4] + 800a1da: f7ff fee1 bl 8009fa0 lv_area_increase(area, -border_width, -border_width); - 800a24a: 89fb ldrh r3, [r7, #14] - 800a24c: 425b negs r3, r3 - 800a24e: b29b uxth r3, r3 - 800a250: b21b sxth r3, r3 - 800a252: 89fa ldrh r2, [r7, #14] - 800a254: 4252 negs r2, r2 - 800a256: b292 uxth r2, r2 - 800a258: b212 sxth r2, r2 - 800a25a: 4619 mov r1, r3 - 800a25c: 6838 ldr r0, [r7, #0] - 800a25e: f026 feb9 bl 8030fd4 + 800a1de: 89fb ldrh r3, [r7, #14] + 800a1e0: 425b negs r3, r3 + 800a1e2: b29b uxth r3, r3 + 800a1e4: b21b sxth r3, r3 + 800a1e6: 89fa ldrh r2, [r7, #14] + 800a1e8: 4252 negs r2, r2 + 800a1ea: b292 uxth r2, r2 + 800a1ec: b212 sxth r2, r2 + 800a1ee: 4619 mov r1, r3 + 800a1f0: 6838 ldr r0, [r7, #0] + 800a1f2: f026 fea5 bl 8030f40 area->x1 += lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 800a262: 2100 movs r1, #0 - 800a264: 6878 ldr r0, [r7, #4] - 800a266: f7fe ffa4 bl 80091b2 - 800a26a: 4603 mov r3, r0 - 800a26c: 4619 mov r1, r3 - 800a26e: 683b ldr r3, [r7, #0] - 800a270: f9b3 3000 ldrsh.w r3, [r3] - 800a274: b29a uxth r2, r3 - 800a276: b28b uxth r3, r1 - 800a278: 4413 add r3, r2 - 800a27a: b29b uxth r3, r3 - 800a27c: b21a sxth r2, r3 - 800a27e: 683b ldr r3, [r7, #0] - 800a280: 801a strh r2, [r3, #0] + 800a1f6: 2100 movs r1, #0 + 800a1f8: 6878 ldr r0, [r7, #4] + 800a1fa: f7fe ffa4 bl 8009146 + 800a1fe: 4603 mov r3, r0 + 800a200: 4619 mov r1, r3 + 800a202: 683b ldr r3, [r7, #0] + 800a204: f9b3 3000 ldrsh.w r3, [r3] + 800a208: b29a uxth r2, r3 + 800a20a: b28b uxth r3, r1 + 800a20c: 4413 add r3, r2 + 800a20e: b29b uxth r3, r3 + 800a210: b21a sxth r2, r3 + 800a212: 683b ldr r3, [r7, #0] + 800a214: 801a strh r2, [r3, #0] area->x2 -= lv_obj_get_style_pad_right(obj, LV_PART_MAIN); - 800a282: 2100 movs r1, #0 - 800a284: 6878 ldr r0, [r7, #4] - 800a286: f7fe ffa7 bl 80091d8 - 800a28a: 4603 mov r3, r0 - 800a28c: 4619 mov r1, r3 - 800a28e: 683b ldr r3, [r7, #0] - 800a290: f9b3 3004 ldrsh.w r3, [r3, #4] - 800a294: b29a uxth r2, r3 - 800a296: b28b uxth r3, r1 - 800a298: 1ad3 subs r3, r2, r3 - 800a29a: b29b uxth r3, r3 - 800a29c: b21a sxth r2, r3 - 800a29e: 683b ldr r3, [r7, #0] - 800a2a0: 809a strh r2, [r3, #4] + 800a216: 2100 movs r1, #0 + 800a218: 6878 ldr r0, [r7, #4] + 800a21a: f7fe ffa7 bl 800916c + 800a21e: 4603 mov r3, r0 + 800a220: 4619 mov r1, r3 + 800a222: 683b ldr r3, [r7, #0] + 800a224: f9b3 3004 ldrsh.w r3, [r3, #4] + 800a228: b29a uxth r2, r3 + 800a22a: b28b uxth r3, r1 + 800a22c: 1ad3 subs r3, r2, r3 + 800a22e: b29b uxth r3, r3 + 800a230: b21a sxth r2, r3 + 800a232: 683b ldr r3, [r7, #0] + 800a234: 809a strh r2, [r3, #4] area->y1 += lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 800a2a2: 2100 movs r1, #0 - 800a2a4: 6878 ldr r0, [r7, #4] - 800a2a6: f7fe ff5e bl 8009166 - 800a2aa: 4603 mov r3, r0 - 800a2ac: 4619 mov r1, r3 - 800a2ae: 683b ldr r3, [r7, #0] - 800a2b0: f9b3 3002 ldrsh.w r3, [r3, #2] - 800a2b4: b29a uxth r2, r3 - 800a2b6: b28b uxth r3, r1 - 800a2b8: 4413 add r3, r2 - 800a2ba: b29b uxth r3, r3 - 800a2bc: b21a sxth r2, r3 - 800a2be: 683b ldr r3, [r7, #0] - 800a2c0: 805a strh r2, [r3, #2] + 800a236: 2100 movs r1, #0 + 800a238: 6878 ldr r0, [r7, #4] + 800a23a: f7fe ff5e bl 80090fa + 800a23e: 4603 mov r3, r0 + 800a240: 4619 mov r1, r3 + 800a242: 683b ldr r3, [r7, #0] + 800a244: f9b3 3002 ldrsh.w r3, [r3, #2] + 800a248: b29a uxth r2, r3 + 800a24a: b28b uxth r3, r1 + 800a24c: 4413 add r3, r2 + 800a24e: b29b uxth r3, r3 + 800a250: b21a sxth r2, r3 + 800a252: 683b ldr r3, [r7, #0] + 800a254: 805a strh r2, [r3, #2] area->y2 -= lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN); - 800a2c2: 2100 movs r1, #0 - 800a2c4: 6878 ldr r0, [r7, #4] - 800a2c6: f7fe ff61 bl 800918c - 800a2ca: 4603 mov r3, r0 - 800a2cc: 4619 mov r1, r3 - 800a2ce: 683b ldr r3, [r7, #0] - 800a2d0: f9b3 3006 ldrsh.w r3, [r3, #6] - 800a2d4: b29a uxth r2, r3 - 800a2d6: b28b uxth r3, r1 - 800a2d8: 1ad3 subs r3, r2, r3 - 800a2da: b29b uxth r3, r3 - 800a2dc: b21a sxth r2, r3 - 800a2de: 683b ldr r3, [r7, #0] - 800a2e0: 80da strh r2, [r3, #6] + 800a256: 2100 movs r1, #0 + 800a258: 6878 ldr r0, [r7, #4] + 800a25a: f7fe ff61 bl 8009120 + 800a25e: 4603 mov r3, r0 + 800a260: 4619 mov r1, r3 + 800a262: 683b ldr r3, [r7, #0] + 800a264: f9b3 3006 ldrsh.w r3, [r3, #6] + 800a268: b29a uxth r2, r3 + 800a26a: b28b uxth r3, r1 + 800a26c: 1ad3 subs r3, r2, r3 + 800a26e: b29b uxth r3, r3 + 800a270: b21a sxth r2, r3 + 800a272: 683b ldr r3, [r7, #0] + 800a274: 80da strh r2, [r3, #6] } - 800a2e2: bf00 nop - 800a2e4: 3710 adds r7, #16 - 800a2e6: 46bd mov sp, r7 - 800a2e8: bd80 pop {r7, pc} + 800a276: bf00 nop + 800a278: 3710 adds r7, #16 + 800a27a: 46bd mov sp, r7 + 800a27c: bd80 pop {r7, pc} -0800a2ea : +0800a27e : lv_coord_t lv_obj_get_self_width(const lv_obj_t * obj) { - 800a2ea: b580 push {r7, lr} - 800a2ec: b084 sub sp, #16 - 800a2ee: af00 add r7, sp, #0 - 800a2f0: 6078 str r0, [r7, #4] + 800a27e: b580 push {r7, lr} + 800a280: b084 sub sp, #16 + 800a282: af00 add r7, sp, #0 + 800a284: 6078 str r0, [r7, #4] lv_point_t p = {0, LV_COORD_MIN}; - 800a2f2: 2300 movs r3, #0 - 800a2f4: 81bb strh r3, [r7, #12] - 800a2f6: f24e 0301 movw r3, #57345 ; 0xe001 - 800a2fa: 81fb strh r3, [r7, #14] + 800a286: 2300 movs r3, #0 + 800a288: 81bb strh r3, [r7, #12] + 800a28a: f24e 0301 movw r3, #57345 ; 0xe001 + 800a28e: 81fb strh r3, [r7, #14] lv_event_send((lv_obj_t *)obj, LV_EVENT_GET_SELF_SIZE, &p); - 800a2fc: f107 030c add.w r3, r7, #12 - 800a300: 461a mov r2, r3 - 800a302: 212c movs r1, #44 ; 0x2c - 800a304: 6878 ldr r0, [r7, #4] - 800a306: f7f8 f8bb bl 8002480 + 800a290: f107 030c add.w r3, r7, #12 + 800a294: 461a mov r2, r3 + 800a296: 212c movs r1, #44 ; 0x2c + 800a298: 6878 ldr r0, [r7, #4] + 800a29a: f7f8 f8bb bl 8002414 return p.x; - 800a30a: f9b7 300c ldrsh.w r3, [r7, #12] + 800a29e: f9b7 300c ldrsh.w r3, [r7, #12] } - 800a30e: 4618 mov r0, r3 - 800a310: 3710 adds r7, #16 - 800a312: 46bd mov sp, r7 - 800a314: bd80 pop {r7, pc} + 800a2a2: 4618 mov r0, r3 + 800a2a4: 3710 adds r7, #16 + 800a2a6: 46bd mov sp, r7 + 800a2a8: bd80 pop {r7, pc} -0800a316 : +0800a2aa : lv_coord_t lv_obj_get_self_height(const lv_obj_t * obj) { - 800a316: b580 push {r7, lr} - 800a318: b084 sub sp, #16 - 800a31a: af00 add r7, sp, #0 - 800a31c: 6078 str r0, [r7, #4] + 800a2aa: b580 push {r7, lr} + 800a2ac: b084 sub sp, #16 + 800a2ae: af00 add r7, sp, #0 + 800a2b0: 6078 str r0, [r7, #4] lv_point_t p = {LV_COORD_MIN, 0}; - 800a31e: f24e 0301 movw r3, #57345 ; 0xe001 - 800a322: 81bb strh r3, [r7, #12] - 800a324: 2300 movs r3, #0 - 800a326: 81fb strh r3, [r7, #14] + 800a2b2: f24e 0301 movw r3, #57345 ; 0xe001 + 800a2b6: 81bb strh r3, [r7, #12] + 800a2b8: 2300 movs r3, #0 + 800a2ba: 81fb strh r3, [r7, #14] lv_event_send((lv_obj_t *)obj, LV_EVENT_GET_SELF_SIZE, &p); - 800a328: f107 030c add.w r3, r7, #12 - 800a32c: 461a mov r2, r3 - 800a32e: 212c movs r1, #44 ; 0x2c - 800a330: 6878 ldr r0, [r7, #4] - 800a332: f7f8 f8a5 bl 8002480 + 800a2bc: f107 030c add.w r3, r7, #12 + 800a2c0: 461a mov r2, r3 + 800a2c2: 212c movs r1, #44 ; 0x2c + 800a2c4: 6878 ldr r0, [r7, #4] + 800a2c6: f7f8 f8a5 bl 8002414 return p.y; - 800a336: f9b7 300e ldrsh.w r3, [r7, #14] + 800a2ca: f9b7 300e ldrsh.w r3, [r7, #14] } - 800a33a: 4618 mov r0, r3 - 800a33c: 3710 adds r7, #16 - 800a33e: 46bd mov sp, r7 - 800a340: bd80 pop {r7, pc} + 800a2ce: 4618 mov r0, r3 + 800a2d0: 3710 adds r7, #16 + 800a2d2: 46bd mov sp, r7 + 800a2d4: bd80 pop {r7, pc} -0800a342 : +0800a2d6 : bool lv_obj_refresh_self_size(lv_obj_t * obj) { - 800a342: b580 push {r7, lr} - 800a344: b084 sub sp, #16 - 800a346: af00 add r7, sp, #0 - 800a348: 6078 str r0, [r7, #4] + 800a2d6: b580 push {r7, lr} + 800a2d8: b084 sub sp, #16 + 800a2da: af00 add r7, sp, #0 + 800a2dc: 6078 str r0, [r7, #4] lv_coord_t w_set = lv_obj_get_style_width(obj, LV_PART_MAIN); - 800a34a: 2100 movs r1, #0 - 800a34c: 6878 ldr r0, [r7, #4] - 800a34e: f7fe fe39 bl 8008fc4 - 800a352: 4603 mov r3, r0 - 800a354: 81fb strh r3, [r7, #14] + 800a2de: 2100 movs r1, #0 + 800a2e0: 6878 ldr r0, [r7, #4] + 800a2e2: f7fe fe39 bl 8008f58 + 800a2e6: 4603 mov r3, r0 + 800a2e8: 81fb strh r3, [r7, #14] lv_coord_t h_set = lv_obj_get_style_height(obj, LV_PART_MAIN); - 800a356: 2100 movs r1, #0 - 800a358: 6878 ldr r0, [r7, #4] - 800a35a: f7fe fe6c bl 8009036 - 800a35e: 4603 mov r3, r0 - 800a360: 81bb strh r3, [r7, #12] + 800a2ea: 2100 movs r1, #0 + 800a2ec: 6878 ldr r0, [r7, #4] + 800a2ee: f7fe fe6c bl 8008fca + 800a2f2: 4603 mov r3, r0 + 800a2f4: 81bb strh r3, [r7, #12] if(w_set != LV_SIZE_CONTENT && h_set != LV_SIZE_CONTENT) return false; - 800a362: f9b7 300e ldrsh.w r3, [r7, #14] - 800a366: f242 72d1 movw r2, #10193 ; 0x27d1 - 800a36a: 4293 cmp r3, r2 - 800a36c: d007 beq.n 800a37e - 800a36e: f9b7 300c ldrsh.w r3, [r7, #12] - 800a372: f242 72d1 movw r2, #10193 ; 0x27d1 - 800a376: 4293 cmp r3, r2 - 800a378: d001 beq.n 800a37e - 800a37a: 2300 movs r3, #0 - 800a37c: e003 b.n 800a386 + 800a2f6: f9b7 300e ldrsh.w r3, [r7, #14] + 800a2fa: f242 72d1 movw r2, #10193 ; 0x27d1 + 800a2fe: 4293 cmp r3, r2 + 800a300: d007 beq.n 800a312 + 800a302: f9b7 300c ldrsh.w r3, [r7, #12] + 800a306: f242 72d1 movw r2, #10193 ; 0x27d1 + 800a30a: 4293 cmp r3, r2 + 800a30c: d001 beq.n 800a312 + 800a30e: 2300 movs r3, #0 + 800a310: e003 b.n 800a31a lv_obj_mark_layout_as_dirty(obj); - 800a37e: 6878 ldr r0, [r7, #4] - 800a380: f7ff fab4 bl 80098ec + 800a312: 6878 ldr r0, [r7, #4] + 800a314: f7ff fab4 bl 8009880 return true; - 800a384: 2301 movs r3, #1 + 800a318: 2301 movs r3, #1 } - 800a386: 4618 mov r0, r3 - 800a388: 3710 adds r7, #16 - 800a38a: 46bd mov sp, r7 - 800a38c: bd80 pop {r7, pc} + 800a31a: 4618 mov r0, r3 + 800a31c: 3710 adds r7, #16 + 800a31e: 46bd mov sp, r7 + 800a320: bd80 pop {r7, pc} ... -0800a390 : +0800a324 : void lv_obj_refr_pos(lv_obj_t * obj) { - 800a390: b580 push {r7, lr} - 800a392: b088 sub sp, #32 - 800a394: af00 add r7, sp, #0 - 800a396: 6078 str r0, [r7, #4] + 800a324: b580 push {r7, lr} + 800a326: b088 sub sp, #32 + 800a328: af00 add r7, sp, #0 + 800a32a: 6078 str r0, [r7, #4] if(lv_obj_is_layout_positioned(obj)) return; - 800a398: 6878 ldr r0, [r7, #4] - 800a39a: f7ff fa7f bl 800989c - 800a39e: 4603 mov r3, r0 - 800a3a0: 2b00 cmp r3, #0 - 800a3a2: f040 81e3 bne.w 800a76c + 800a32c: 6878 ldr r0, [r7, #4] + 800a32e: f7ff fa7f bl 8009830 + 800a332: 4603 mov r3, r0 + 800a334: 2b00 cmp r3, #0 + 800a336: f040 81e3 bne.w 800a700 lv_obj_t * parent = lv_obj_get_parent(obj); - 800a3a6: 6878 ldr r0, [r7, #4] - 800a3a8: f005 f9b0 bl 800f70c - 800a3ac: 6138 str r0, [r7, #16] + 800a33a: 6878 ldr r0, [r7, #4] + 800a33c: f005 f99c bl 800f678 + 800a340: 6138 str r0, [r7, #16] lv_coord_t x = lv_obj_get_style_x(obj, LV_PART_MAIN); - 800a3ae: 2100 movs r1, #0 - 800a3b0: 6878 ldr r0, [r7, #4] - 800a3b2: f7fe fe79 bl 80090a8 - 800a3b6: 4603 mov r3, r0 - 800a3b8: 83fb strh r3, [r7, #30] + 800a342: 2100 movs r1, #0 + 800a344: 6878 ldr r0, [r7, #4] + 800a346: f7fe fe79 bl 800903c + 800a34a: 4603 mov r3, r0 + 800a34c: 83fb strh r3, [r7, #30] lv_coord_t y = lv_obj_get_style_y(obj, LV_PART_MAIN); - 800a3ba: 2100 movs r1, #0 - 800a3bc: 6878 ldr r0, [r7, #4] - 800a3be: f7fe fe86 bl 80090ce - 800a3c2: 4603 mov r3, r0 - 800a3c4: 83bb strh r3, [r7, #28] + 800a34e: 2100 movs r1, #0 + 800a350: 6878 ldr r0, [r7, #4] + 800a352: f7fe fe86 bl 8009062 + 800a356: 4603 mov r3, r0 + 800a358: 83bb strh r3, [r7, #28] if(parent == NULL) { - 800a3c6: 693b ldr r3, [r7, #16] - 800a3c8: 2b00 cmp r3, #0 - 800a3ca: d108 bne.n 800a3de + 800a35a: 693b ldr r3, [r7, #16] + 800a35c: 2b00 cmp r3, #0 + 800a35e: d108 bne.n 800a372 lv_obj_move_to(obj, x, y); - 800a3cc: f9b7 201c ldrsh.w r2, [r7, #28] - 800a3d0: f9b7 301e ldrsh.w r3, [r7, #30] - 800a3d4: 4619 mov r1, r3 - 800a3d6: 6878 ldr r0, [r7, #4] - 800a3d8: f000 f9cc bl 800a774 + 800a360: f9b7 201c ldrsh.w r2, [r7, #28] + 800a364: f9b7 301e ldrsh.w r3, [r7, #30] + 800a368: 4619 mov r1, r3 + 800a36a: 6878 ldr r0, [r7, #4] + 800a36c: f000 f9cc bl 800a708 return; - 800a3dc: e1c7 b.n 800a76e + 800a370: e1c7 b.n 800a702 } /*Handle percentage value*/ lv_coord_t pw = lv_obj_get_content_width(parent); - 800a3de: 6938 ldr r0, [r7, #16] - 800a3e0: f7ff fece bl 800a180 - 800a3e4: 4603 mov r3, r0 - 800a3e6: 81fb strh r3, [r7, #14] + 800a372: 6938 ldr r0, [r7, #16] + 800a374: f7ff fece bl 800a114 + 800a378: 4603 mov r3, r0 + 800a37a: 81fb strh r3, [r7, #14] lv_coord_t ph = lv_obj_get_content_height(parent); - 800a3e8: 6938 ldr r0, [r7, #16] - 800a3ea: f7ff fef4 bl 800a1d6 - 800a3ee: 4603 mov r3, r0 - 800a3f0: 81bb strh r3, [r7, #12] + 800a37c: 6938 ldr r0, [r7, #16] + 800a37e: f7ff fef4 bl 800a16a + 800a382: 4603 mov r3, r0 + 800a384: 81bb strh r3, [r7, #12] if(LV_COORD_IS_PCT(x)) x = (pw * LV_COORD_GET_PCT(x)) / 100; - 800a3f2: 8bfb ldrh r3, [r7, #30] - 800a3f4: f403 43c0 and.w r3, r3, #24576 ; 0x6000 - 800a3f8: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 800a3fc: d123 bne.n 800a446 - 800a3fe: 8bfb ldrh r3, [r7, #30] - 800a400: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800a404: b21b sxth r3, r3 - 800a406: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 - 800a40a: dc1c bgt.n 800a446 - 800a40c: f9b7 200e ldrsh.w r2, [r7, #14] - 800a410: 8bfb ldrh r3, [r7, #30] - 800a412: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800a416: b21b sxth r3, r3 - 800a418: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - 800a41c: dd06 ble.n 800a42c - 800a41e: 8bfb ldrh r3, [r7, #30] - 800a420: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800a424: b21b sxth r3, r3 - 800a426: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 800a42a: e003 b.n 800a434 - 800a42c: 8bfb ldrh r3, [r7, #30] - 800a42e: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800a432: b21b sxth r3, r3 - 800a434: fb02 f303 mul.w r3, r2, r3 - 800a438: 4aa3 ldr r2, [pc, #652] ; (800a6c8 ) - 800a43a: fb82 1203 smull r1, r2, r2, r3 - 800a43e: 1152 asrs r2, r2, #5 - 800a440: 17db asrs r3, r3, #31 - 800a442: 1ad3 subs r3, r2, r3 - 800a444: 83fb strh r3, [r7, #30] + 800a386: 8bfb ldrh r3, [r7, #30] + 800a388: f403 43c0 and.w r3, r3, #24576 ; 0x6000 + 800a38c: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 800a390: d123 bne.n 800a3da + 800a392: 8bfb ldrh r3, [r7, #30] + 800a394: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800a398: b21b sxth r3, r3 + 800a39a: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 + 800a39e: dc1c bgt.n 800a3da + 800a3a0: f9b7 200e ldrsh.w r2, [r7, #14] + 800a3a4: 8bfb ldrh r3, [r7, #30] + 800a3a6: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800a3aa: b21b sxth r3, r3 + 800a3ac: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 + 800a3b0: dd06 ble.n 800a3c0 + 800a3b2: 8bfb ldrh r3, [r7, #30] + 800a3b4: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800a3b8: b21b sxth r3, r3 + 800a3ba: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 800a3be: e003 b.n 800a3c8 + 800a3c0: 8bfb ldrh r3, [r7, #30] + 800a3c2: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800a3c6: b21b sxth r3, r3 + 800a3c8: fb02 f303 mul.w r3, r2, r3 + 800a3cc: 4aa3 ldr r2, [pc, #652] ; (800a65c ) + 800a3ce: fb82 1203 smull r1, r2, r2, r3 + 800a3d2: 1152 asrs r2, r2, #5 + 800a3d4: 17db asrs r3, r3, #31 + 800a3d6: 1ad3 subs r3, r2, r3 + 800a3d8: 83fb strh r3, [r7, #30] if(LV_COORD_IS_PCT(y)) y = (ph * LV_COORD_GET_PCT(y)) / 100; - 800a446: 8bbb ldrh r3, [r7, #28] - 800a448: f403 43c0 and.w r3, r3, #24576 ; 0x6000 - 800a44c: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 800a450: d123 bne.n 800a49a - 800a452: 8bbb ldrh r3, [r7, #28] - 800a454: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800a458: b21b sxth r3, r3 - 800a45a: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 - 800a45e: dc1c bgt.n 800a49a - 800a460: f9b7 200c ldrsh.w r2, [r7, #12] - 800a464: 8bbb ldrh r3, [r7, #28] - 800a466: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800a46a: b21b sxth r3, r3 - 800a46c: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - 800a470: dd06 ble.n 800a480 - 800a472: 8bbb ldrh r3, [r7, #28] - 800a474: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800a478: b21b sxth r3, r3 - 800a47a: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 800a47e: e003 b.n 800a488 - 800a480: 8bbb ldrh r3, [r7, #28] - 800a482: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800a486: b21b sxth r3, r3 - 800a488: fb02 f303 mul.w r3, r2, r3 - 800a48c: 4a8e ldr r2, [pc, #568] ; (800a6c8 ) - 800a48e: fb82 1203 smull r1, r2, r2, r3 - 800a492: 1152 asrs r2, r2, #5 - 800a494: 17db asrs r3, r3, #31 - 800a496: 1ad3 subs r3, r2, r3 - 800a498: 83bb strh r3, [r7, #28] + 800a3da: 8bbb ldrh r3, [r7, #28] + 800a3dc: f403 43c0 and.w r3, r3, #24576 ; 0x6000 + 800a3e0: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 800a3e4: d123 bne.n 800a42e + 800a3e6: 8bbb ldrh r3, [r7, #28] + 800a3e8: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800a3ec: b21b sxth r3, r3 + 800a3ee: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 + 800a3f2: dc1c bgt.n 800a42e + 800a3f4: f9b7 200c ldrsh.w r2, [r7, #12] + 800a3f8: 8bbb ldrh r3, [r7, #28] + 800a3fa: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800a3fe: b21b sxth r3, r3 + 800a400: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 + 800a404: dd06 ble.n 800a414 + 800a406: 8bbb ldrh r3, [r7, #28] + 800a408: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800a40c: b21b sxth r3, r3 + 800a40e: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 800a412: e003 b.n 800a41c + 800a414: 8bbb ldrh r3, [r7, #28] + 800a416: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800a41a: b21b sxth r3, r3 + 800a41c: fb02 f303 mul.w r3, r2, r3 + 800a420: 4a8e ldr r2, [pc, #568] ; (800a65c ) + 800a422: fb82 1203 smull r1, r2, r2, r3 + 800a426: 1152 asrs r2, r2, #5 + 800a428: 17db asrs r3, r3, #31 + 800a42a: 1ad3 subs r3, r2, r3 + 800a42c: 83bb strh r3, [r7, #28] /*Handle percentage value of translate*/ lv_coord_t tr_x = lv_obj_get_style_translate_x(obj, LV_PART_MAIN); - 800a49a: 2100 movs r1, #0 - 800a49c: 6878 ldr r0, [r7, #4] - 800a49e: f7fe fe3c bl 800911a - 800a4a2: 4603 mov r3, r0 - 800a4a4: 837b strh r3, [r7, #26] + 800a42e: 2100 movs r1, #0 + 800a430: 6878 ldr r0, [r7, #4] + 800a432: f7fe fe3c bl 80090ae + 800a436: 4603 mov r3, r0 + 800a438: 837b strh r3, [r7, #26] lv_coord_t tr_y = lv_obj_get_style_translate_y(obj, LV_PART_MAIN); - 800a4a6: 2100 movs r1, #0 - 800a4a8: 6878 ldr r0, [r7, #4] - 800a4aa: f7fe fe49 bl 8009140 - 800a4ae: 4603 mov r3, r0 - 800a4b0: 833b strh r3, [r7, #24] + 800a43a: 2100 movs r1, #0 + 800a43c: 6878 ldr r0, [r7, #4] + 800a43e: f7fe fe49 bl 80090d4 + 800a442: 4603 mov r3, r0 + 800a444: 833b strh r3, [r7, #24] lv_coord_t w = lv_obj_get_width(obj); - 800a4b2: 6878 ldr r0, [r7, #4] - 800a4b4: f7ff fe48 bl 800a148 - 800a4b8: 4603 mov r3, r0 - 800a4ba: 817b strh r3, [r7, #10] + 800a446: 6878 ldr r0, [r7, #4] + 800a448: f7ff fe48 bl 800a0dc + 800a44c: 4603 mov r3, r0 + 800a44e: 817b strh r3, [r7, #10] lv_coord_t h = lv_obj_get_height(obj); - 800a4bc: 6878 ldr r0, [r7, #4] - 800a4be: f7ff fe51 bl 800a164 - 800a4c2: 4603 mov r3, r0 - 800a4c4: 813b strh r3, [r7, #8] + 800a450: 6878 ldr r0, [r7, #4] + 800a452: f7ff fe51 bl 800a0f8 + 800a456: 4603 mov r3, r0 + 800a458: 813b strh r3, [r7, #8] if(LV_COORD_IS_PCT(tr_x)) tr_x = (w * LV_COORD_GET_PCT(tr_x)) / 100; - 800a4c6: 8b7b ldrh r3, [r7, #26] - 800a4c8: f403 43c0 and.w r3, r3, #24576 ; 0x6000 - 800a4cc: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 800a4d0: d123 bne.n 800a51a - 800a4d2: 8b7b ldrh r3, [r7, #26] - 800a4d4: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800a4d8: b21b sxth r3, r3 - 800a4da: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 - 800a4de: dc1c bgt.n 800a51a - 800a4e0: f9b7 200a ldrsh.w r2, [r7, #10] - 800a4e4: 8b7b ldrh r3, [r7, #26] - 800a4e6: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800a4ea: b21b sxth r3, r3 - 800a4ec: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - 800a4f0: dd06 ble.n 800a500 - 800a4f2: 8b7b ldrh r3, [r7, #26] - 800a4f4: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800a4f8: b21b sxth r3, r3 - 800a4fa: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 800a4fe: e003 b.n 800a508 - 800a500: 8b7b ldrh r3, [r7, #26] - 800a502: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800a506: b21b sxth r3, r3 - 800a508: fb02 f303 mul.w r3, r2, r3 - 800a50c: 4a6e ldr r2, [pc, #440] ; (800a6c8 ) - 800a50e: fb82 1203 smull r1, r2, r2, r3 - 800a512: 1152 asrs r2, r2, #5 - 800a514: 17db asrs r3, r3, #31 - 800a516: 1ad3 subs r3, r2, r3 - 800a518: 837b strh r3, [r7, #26] + 800a45a: 8b7b ldrh r3, [r7, #26] + 800a45c: f403 43c0 and.w r3, r3, #24576 ; 0x6000 + 800a460: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 800a464: d123 bne.n 800a4ae + 800a466: 8b7b ldrh r3, [r7, #26] + 800a468: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800a46c: b21b sxth r3, r3 + 800a46e: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 + 800a472: dc1c bgt.n 800a4ae + 800a474: f9b7 200a ldrsh.w r2, [r7, #10] + 800a478: 8b7b ldrh r3, [r7, #26] + 800a47a: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800a47e: b21b sxth r3, r3 + 800a480: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 + 800a484: dd06 ble.n 800a494 + 800a486: 8b7b ldrh r3, [r7, #26] + 800a488: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800a48c: b21b sxth r3, r3 + 800a48e: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 800a492: e003 b.n 800a49c + 800a494: 8b7b ldrh r3, [r7, #26] + 800a496: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800a49a: b21b sxth r3, r3 + 800a49c: fb02 f303 mul.w r3, r2, r3 + 800a4a0: 4a6e ldr r2, [pc, #440] ; (800a65c ) + 800a4a2: fb82 1203 smull r1, r2, r2, r3 + 800a4a6: 1152 asrs r2, r2, #5 + 800a4a8: 17db asrs r3, r3, #31 + 800a4aa: 1ad3 subs r3, r2, r3 + 800a4ac: 837b strh r3, [r7, #26] if(LV_COORD_IS_PCT(tr_y)) tr_y = (h * LV_COORD_GET_PCT(tr_y)) / 100; - 800a51a: 8b3b ldrh r3, [r7, #24] - 800a51c: f403 43c0 and.w r3, r3, #24576 ; 0x6000 - 800a520: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 800a524: d123 bne.n 800a56e - 800a526: 8b3b ldrh r3, [r7, #24] - 800a528: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800a52c: b21b sxth r3, r3 - 800a52e: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 - 800a532: dc1c bgt.n 800a56e - 800a534: f9b7 2008 ldrsh.w r2, [r7, #8] - 800a538: 8b3b ldrh r3, [r7, #24] - 800a53a: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800a53e: b21b sxth r3, r3 - 800a540: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - 800a544: dd06 ble.n 800a554 - 800a546: 8b3b ldrh r3, [r7, #24] - 800a548: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800a54c: b21b sxth r3, r3 - 800a54e: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 800a552: e003 b.n 800a55c - 800a554: 8b3b ldrh r3, [r7, #24] - 800a556: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800a55a: b21b sxth r3, r3 - 800a55c: fb02 f303 mul.w r3, r2, r3 - 800a560: 4a59 ldr r2, [pc, #356] ; (800a6c8 ) - 800a562: fb82 1203 smull r1, r2, r2, r3 - 800a566: 1152 asrs r2, r2, #5 - 800a568: 17db asrs r3, r3, #31 - 800a56a: 1ad3 subs r3, r2, r3 - 800a56c: 833b strh r3, [r7, #24] + 800a4ae: 8b3b ldrh r3, [r7, #24] + 800a4b0: f403 43c0 and.w r3, r3, #24576 ; 0x6000 + 800a4b4: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 800a4b8: d123 bne.n 800a502 + 800a4ba: 8b3b ldrh r3, [r7, #24] + 800a4bc: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800a4c0: b21b sxth r3, r3 + 800a4c2: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 + 800a4c6: dc1c bgt.n 800a502 + 800a4c8: f9b7 2008 ldrsh.w r2, [r7, #8] + 800a4cc: 8b3b ldrh r3, [r7, #24] + 800a4ce: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800a4d2: b21b sxth r3, r3 + 800a4d4: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 + 800a4d8: dd06 ble.n 800a4e8 + 800a4da: 8b3b ldrh r3, [r7, #24] + 800a4dc: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800a4e0: b21b sxth r3, r3 + 800a4e2: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 800a4e6: e003 b.n 800a4f0 + 800a4e8: 8b3b ldrh r3, [r7, #24] + 800a4ea: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800a4ee: b21b sxth r3, r3 + 800a4f0: fb02 f303 mul.w r3, r2, r3 + 800a4f4: 4a59 ldr r2, [pc, #356] ; (800a65c ) + 800a4f6: fb82 1203 smull r1, r2, r2, r3 + 800a4fa: 1152 asrs r2, r2, #5 + 800a4fc: 17db asrs r3, r3, #31 + 800a4fe: 1ad3 subs r3, r2, r3 + 800a500: 833b strh r3, [r7, #24] /*Use the translation*/ x += tr_x; - 800a56e: 8bfa ldrh r2, [r7, #30] - 800a570: 8b7b ldrh r3, [r7, #26] - 800a572: 4413 add r3, r2 - 800a574: b29b uxth r3, r3 - 800a576: 83fb strh r3, [r7, #30] + 800a502: 8bfa ldrh r2, [r7, #30] + 800a504: 8b7b ldrh r3, [r7, #26] + 800a506: 4413 add r3, r2 + 800a508: b29b uxth r3, r3 + 800a50a: 83fb strh r3, [r7, #30] y += tr_y; - 800a578: 8bba ldrh r2, [r7, #28] - 800a57a: 8b3b ldrh r3, [r7, #24] - 800a57c: 4413 add r3, r2 - 800a57e: b29b uxth r3, r3 - 800a580: 83bb strh r3, [r7, #28] + 800a50c: 8bba ldrh r2, [r7, #28] + 800a50e: 8b3b ldrh r3, [r7, #24] + 800a510: 4413 add r3, r2 + 800a512: b29b uxth r3, r3 + 800a514: 83bb strh r3, [r7, #28] lv_align_t align = lv_obj_get_style_align(obj, LV_PART_MAIN); - 800a582: 2100 movs r1, #0 - 800a584: 6878 ldr r0, [r7, #4] - 800a586: f7fe fdb5 bl 80090f4 - 800a58a: 4603 mov r3, r0 - 800a58c: 75fb strb r3, [r7, #23] + 800a516: 2100 movs r1, #0 + 800a518: 6878 ldr r0, [r7, #4] + 800a51a: f7fe fdb5 bl 8009088 + 800a51e: 4603 mov r3, r0 + 800a520: 75fb strb r3, [r7, #23] if(align == LV_ALIGN_DEFAULT) { - 800a58e: 7dfb ldrb r3, [r7, #23] - 800a590: 2b00 cmp r3, #0 - 800a592: d10b bne.n 800a5ac + 800a522: 7dfb ldrb r3, [r7, #23] + 800a524: 2b00 cmp r3, #0 + 800a526: d10b bne.n 800a540 if(lv_obj_get_style_base_dir(parent, LV_PART_MAIN) == LV_BASE_DIR_RTL) align = LV_ALIGN_TOP_RIGHT; - 800a594: 2100 movs r1, #0 - 800a596: 6938 ldr r0, [r7, #16] - 800a598: f7fe fe57 bl 800924a - 800a59c: 4603 mov r3, r0 - 800a59e: 2b01 cmp r3, #1 - 800a5a0: d102 bne.n 800a5a8 - 800a5a2: 2303 movs r3, #3 - 800a5a4: 75fb strb r3, [r7, #23] - 800a5a6: e001 b.n 800a5ac + 800a528: 2100 movs r1, #0 + 800a52a: 6938 ldr r0, [r7, #16] + 800a52c: f7fe fe57 bl 80091de + 800a530: 4603 mov r3, r0 + 800a532: 2b01 cmp r3, #1 + 800a534: d102 bne.n 800a53c + 800a536: 2303 movs r3, #3 + 800a538: 75fb strb r3, [r7, #23] + 800a53a: e001 b.n 800a540 else align = LV_ALIGN_TOP_LEFT; - 800a5a8: 2301 movs r3, #1 - 800a5aa: 75fb strb r3, [r7, #23] + 800a53c: 2301 movs r3, #1 + 800a53e: 75fb strb r3, [r7, #23] } if(align == LV_ALIGN_TOP_LEFT) { - 800a5ac: 7dfb ldrb r3, [r7, #23] - 800a5ae: 2b01 cmp r3, #1 - 800a5b0: d108 bne.n 800a5c4 + 800a540: 7dfb ldrb r3, [r7, #23] + 800a542: 2b01 cmp r3, #1 + 800a544: d108 bne.n 800a558 lv_obj_move_to(obj, x, y); - 800a5b2: f9b7 201c ldrsh.w r2, [r7, #28] - 800a5b6: f9b7 301e ldrsh.w r3, [r7, #30] - 800a5ba: 4619 mov r1, r3 - 800a5bc: 6878 ldr r0, [r7, #4] - 800a5be: f000 f8d9 bl 800a774 - 800a5c2: e0d4 b.n 800a76e + 800a546: f9b7 201c ldrsh.w r2, [r7, #28] + 800a54a: f9b7 301e ldrsh.w r3, [r7, #30] + 800a54e: 4619 mov r1, r3 + 800a550: 6878 ldr r0, [r7, #4] + 800a552: f000 f8d9 bl 800a708 + 800a556: e0d4 b.n 800a702 } else { switch(align) { - 800a5c4: 7dfb ldrb r3, [r7, #23] - 800a5c6: 3b02 subs r3, #2 - 800a5c8: 2b07 cmp r3, #7 - 800a5ca: f200 80c5 bhi.w 800a758 - 800a5ce: a201 add r2, pc, #4 ; (adr r2, 800a5d4 ) - 800a5d0: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 800a5d4: 0800a5f5 .word 0x0800a5f5 - 800a5d8: 0800a61f .word 0x0800a61f - 800a5dc: 0800a65b .word 0x0800a65b - 800a5e0: 0800a66d .word 0x0800a66d - 800a5e4: 0800a6a7 .word 0x0800a6a7 - 800a5e8: 0800a631 .word 0x0800a631 - 800a5ec: 0800a6cd .word 0x0800a6cd - 800a5f0: 0800a707 .word 0x0800a707 + 800a558: 7dfb ldrb r3, [r7, #23] + 800a55a: 3b02 subs r3, #2 + 800a55c: 2b07 cmp r3, #7 + 800a55e: f200 80c5 bhi.w 800a6ec + 800a562: a201 add r2, pc, #4 ; (adr r2, 800a568 ) + 800a564: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 800a568: 0800a589 .word 0x0800a589 + 800a56c: 0800a5b3 .word 0x0800a5b3 + 800a570: 0800a5ef .word 0x0800a5ef + 800a574: 0800a601 .word 0x0800a601 + 800a578: 0800a63b .word 0x0800a63b + 800a57c: 0800a5c5 .word 0x0800a5c5 + 800a580: 0800a661 .word 0x0800a661 + 800a584: 0800a69b .word 0x0800a69b case LV_ALIGN_TOP_MID: x += pw / 2 - w / 2; - 800a5f4: f9b7 300e ldrsh.w r3, [r7, #14] - 800a5f8: 0fda lsrs r2, r3, #31 - 800a5fa: 4413 add r3, r2 - 800a5fc: 105b asrs r3, r3, #1 - 800a5fe: b21b sxth r3, r3 - 800a600: b29a uxth r2, r3 - 800a602: f9b7 300a ldrsh.w r3, [r7, #10] - 800a606: 0fd9 lsrs r1, r3, #31 - 800a608: 440b add r3, r1 - 800a60a: 105b asrs r3, r3, #1 - 800a60c: b21b sxth r3, r3 - 800a60e: b29b uxth r3, r3 - 800a610: 1ad3 subs r3, r2, r3 - 800a612: b29a uxth r2, r3 - 800a614: 8bfb ldrh r3, [r7, #30] - 800a616: 4413 add r3, r2 - 800a618: b29b uxth r3, r3 - 800a61a: 83fb strh r3, [r7, #30] + 800a588: f9b7 300e ldrsh.w r3, [r7, #14] + 800a58c: 0fda lsrs r2, r3, #31 + 800a58e: 4413 add r3, r2 + 800a590: 105b asrs r3, r3, #1 + 800a592: b21b sxth r3, r3 + 800a594: b29a uxth r2, r3 + 800a596: f9b7 300a ldrsh.w r3, [r7, #10] + 800a59a: 0fd9 lsrs r1, r3, #31 + 800a59c: 440b add r3, r1 + 800a59e: 105b asrs r3, r3, #1 + 800a5a0: b21b sxth r3, r3 + 800a5a2: b29b uxth r3, r3 + 800a5a4: 1ad3 subs r3, r2, r3 + 800a5a6: b29a uxth r2, r3 + 800a5a8: 8bfb ldrh r3, [r7, #30] + 800a5aa: 4413 add r3, r2 + 800a5ac: b29b uxth r3, r3 + 800a5ae: 83fb strh r3, [r7, #30] break; - 800a61c: e09d b.n 800a75a + 800a5b0: e09d b.n 800a6ee case LV_ALIGN_TOP_RIGHT: x += pw - w; - 800a61e: 89fa ldrh r2, [r7, #14] - 800a620: 897b ldrh r3, [r7, #10] - 800a622: 1ad3 subs r3, r2, r3 - 800a624: b29a uxth r2, r3 - 800a626: 8bfb ldrh r3, [r7, #30] - 800a628: 4413 add r3, r2 - 800a62a: b29b uxth r3, r3 - 800a62c: 83fb strh r3, [r7, #30] + 800a5b2: 89fa ldrh r2, [r7, #14] + 800a5b4: 897b ldrh r3, [r7, #10] + 800a5b6: 1ad3 subs r3, r2, r3 + 800a5b8: b29a uxth r2, r3 + 800a5ba: 8bfb ldrh r3, [r7, #30] + 800a5bc: 4413 add r3, r2 + 800a5be: b29b uxth r3, r3 + 800a5c0: 83fb strh r3, [r7, #30] break; - 800a62e: e094 b.n 800a75a + 800a5c2: e094 b.n 800a6ee case LV_ALIGN_LEFT_MID: y += ph / 2 - h / 2; - 800a630: f9b7 300c ldrsh.w r3, [r7, #12] - 800a634: 0fda lsrs r2, r3, #31 - 800a636: 4413 add r3, r2 - 800a638: 105b asrs r3, r3, #1 - 800a63a: b21b sxth r3, r3 - 800a63c: b29a uxth r2, r3 - 800a63e: f9b7 3008 ldrsh.w r3, [r7, #8] - 800a642: 0fd9 lsrs r1, r3, #31 - 800a644: 440b add r3, r1 - 800a646: 105b asrs r3, r3, #1 - 800a648: b21b sxth r3, r3 - 800a64a: b29b uxth r3, r3 - 800a64c: 1ad3 subs r3, r2, r3 - 800a64e: b29a uxth r2, r3 - 800a650: 8bbb ldrh r3, [r7, #28] - 800a652: 4413 add r3, r2 - 800a654: b29b uxth r3, r3 - 800a656: 83bb strh r3, [r7, #28] + 800a5c4: f9b7 300c ldrsh.w r3, [r7, #12] + 800a5c8: 0fda lsrs r2, r3, #31 + 800a5ca: 4413 add r3, r2 + 800a5cc: 105b asrs r3, r3, #1 + 800a5ce: b21b sxth r3, r3 + 800a5d0: b29a uxth r2, r3 + 800a5d2: f9b7 3008 ldrsh.w r3, [r7, #8] + 800a5d6: 0fd9 lsrs r1, r3, #31 + 800a5d8: 440b add r3, r1 + 800a5da: 105b asrs r3, r3, #1 + 800a5dc: b21b sxth r3, r3 + 800a5de: b29b uxth r3, r3 + 800a5e0: 1ad3 subs r3, r2, r3 + 800a5e2: b29a uxth r2, r3 + 800a5e4: 8bbb ldrh r3, [r7, #28] + 800a5e6: 4413 add r3, r2 + 800a5e8: b29b uxth r3, r3 + 800a5ea: 83bb strh r3, [r7, #28] break; - 800a658: e07f b.n 800a75a + 800a5ec: e07f b.n 800a6ee case LV_ALIGN_BOTTOM_LEFT: y += ph - h; - 800a65a: 89ba ldrh r2, [r7, #12] - 800a65c: 893b ldrh r3, [r7, #8] - 800a65e: 1ad3 subs r3, r2, r3 - 800a660: b29a uxth r2, r3 - 800a662: 8bbb ldrh r3, [r7, #28] - 800a664: 4413 add r3, r2 - 800a666: b29b uxth r3, r3 - 800a668: 83bb strh r3, [r7, #28] + 800a5ee: 89ba ldrh r2, [r7, #12] + 800a5f0: 893b ldrh r3, [r7, #8] + 800a5f2: 1ad3 subs r3, r2, r3 + 800a5f4: b29a uxth r2, r3 + 800a5f6: 8bbb ldrh r3, [r7, #28] + 800a5f8: 4413 add r3, r2 + 800a5fa: b29b uxth r3, r3 + 800a5fc: 83bb strh r3, [r7, #28] break; - 800a66a: e076 b.n 800a75a + 800a5fe: e076 b.n 800a6ee case LV_ALIGN_BOTTOM_MID: x += pw / 2 - w / 2; - 800a66c: f9b7 300e ldrsh.w r3, [r7, #14] - 800a670: 0fda lsrs r2, r3, #31 - 800a672: 4413 add r3, r2 - 800a674: 105b asrs r3, r3, #1 - 800a676: b21b sxth r3, r3 - 800a678: b29a uxth r2, r3 - 800a67a: f9b7 300a ldrsh.w r3, [r7, #10] - 800a67e: 0fd9 lsrs r1, r3, #31 - 800a680: 440b add r3, r1 - 800a682: 105b asrs r3, r3, #1 - 800a684: b21b sxth r3, r3 - 800a686: b29b uxth r3, r3 - 800a688: 1ad3 subs r3, r2, r3 - 800a68a: b29a uxth r2, r3 - 800a68c: 8bfb ldrh r3, [r7, #30] - 800a68e: 4413 add r3, r2 - 800a690: b29b uxth r3, r3 - 800a692: 83fb strh r3, [r7, #30] + 800a600: f9b7 300e ldrsh.w r3, [r7, #14] + 800a604: 0fda lsrs r2, r3, #31 + 800a606: 4413 add r3, r2 + 800a608: 105b asrs r3, r3, #1 + 800a60a: b21b sxth r3, r3 + 800a60c: b29a uxth r2, r3 + 800a60e: f9b7 300a ldrsh.w r3, [r7, #10] + 800a612: 0fd9 lsrs r1, r3, #31 + 800a614: 440b add r3, r1 + 800a616: 105b asrs r3, r3, #1 + 800a618: b21b sxth r3, r3 + 800a61a: b29b uxth r3, r3 + 800a61c: 1ad3 subs r3, r2, r3 + 800a61e: b29a uxth r2, r3 + 800a620: 8bfb ldrh r3, [r7, #30] + 800a622: 4413 add r3, r2 + 800a624: b29b uxth r3, r3 + 800a626: 83fb strh r3, [r7, #30] y += ph - h; - 800a694: 89ba ldrh r2, [r7, #12] - 800a696: 893b ldrh r3, [r7, #8] - 800a698: 1ad3 subs r3, r2, r3 - 800a69a: b29a uxth r2, r3 - 800a69c: 8bbb ldrh r3, [r7, #28] - 800a69e: 4413 add r3, r2 - 800a6a0: b29b uxth r3, r3 - 800a6a2: 83bb strh r3, [r7, #28] + 800a628: 89ba ldrh r2, [r7, #12] + 800a62a: 893b ldrh r3, [r7, #8] + 800a62c: 1ad3 subs r3, r2, r3 + 800a62e: b29a uxth r2, r3 + 800a630: 8bbb ldrh r3, [r7, #28] + 800a632: 4413 add r3, r2 + 800a634: b29b uxth r3, r3 + 800a636: 83bb strh r3, [r7, #28] break; - 800a6a4: e059 b.n 800a75a + 800a638: e059 b.n 800a6ee case LV_ALIGN_BOTTOM_RIGHT: x += pw - w; - 800a6a6: 89fa ldrh r2, [r7, #14] - 800a6a8: 897b ldrh r3, [r7, #10] - 800a6aa: 1ad3 subs r3, r2, r3 - 800a6ac: b29a uxth r2, r3 - 800a6ae: 8bfb ldrh r3, [r7, #30] - 800a6b0: 4413 add r3, r2 - 800a6b2: b29b uxth r3, r3 - 800a6b4: 83fb strh r3, [r7, #30] + 800a63a: 89fa ldrh r2, [r7, #14] + 800a63c: 897b ldrh r3, [r7, #10] + 800a63e: 1ad3 subs r3, r2, r3 + 800a640: b29a uxth r2, r3 + 800a642: 8bfb ldrh r3, [r7, #30] + 800a644: 4413 add r3, r2 + 800a646: b29b uxth r3, r3 + 800a648: 83fb strh r3, [r7, #30] y += ph - h; - 800a6b6: 89ba ldrh r2, [r7, #12] - 800a6b8: 893b ldrh r3, [r7, #8] - 800a6ba: 1ad3 subs r3, r2, r3 - 800a6bc: b29a uxth r2, r3 - 800a6be: 8bbb ldrh r3, [r7, #28] - 800a6c0: 4413 add r3, r2 - 800a6c2: b29b uxth r3, r3 - 800a6c4: 83bb strh r3, [r7, #28] + 800a64a: 89ba ldrh r2, [r7, #12] + 800a64c: 893b ldrh r3, [r7, #8] + 800a64e: 1ad3 subs r3, r2, r3 + 800a650: b29a uxth r2, r3 + 800a652: 8bbb ldrh r3, [r7, #28] + 800a654: 4413 add r3, r2 + 800a656: b29b uxth r3, r3 + 800a658: 83bb strh r3, [r7, #28] break; - 800a6c6: e048 b.n 800a75a - 800a6c8: 51eb851f .word 0x51eb851f + 800a65a: e048 b.n 800a6ee + 800a65c: 51eb851f .word 0x51eb851f case LV_ALIGN_RIGHT_MID: x += pw - w; - 800a6cc: 89fa ldrh r2, [r7, #14] - 800a6ce: 897b ldrh r3, [r7, #10] - 800a6d0: 1ad3 subs r3, r2, r3 - 800a6d2: b29a uxth r2, r3 - 800a6d4: 8bfb ldrh r3, [r7, #30] - 800a6d6: 4413 add r3, r2 - 800a6d8: b29b uxth r3, r3 - 800a6da: 83fb strh r3, [r7, #30] + 800a660: 89fa ldrh r2, [r7, #14] + 800a662: 897b ldrh r3, [r7, #10] + 800a664: 1ad3 subs r3, r2, r3 + 800a666: b29a uxth r2, r3 + 800a668: 8bfb ldrh r3, [r7, #30] + 800a66a: 4413 add r3, r2 + 800a66c: b29b uxth r3, r3 + 800a66e: 83fb strh r3, [r7, #30] y += ph / 2 - h / 2; - 800a6dc: f9b7 300c ldrsh.w r3, [r7, #12] - 800a6e0: 0fda lsrs r2, r3, #31 - 800a6e2: 4413 add r3, r2 - 800a6e4: 105b asrs r3, r3, #1 - 800a6e6: b21b sxth r3, r3 - 800a6e8: b29a uxth r2, r3 - 800a6ea: f9b7 3008 ldrsh.w r3, [r7, #8] - 800a6ee: 0fd9 lsrs r1, r3, #31 - 800a6f0: 440b add r3, r1 - 800a6f2: 105b asrs r3, r3, #1 - 800a6f4: b21b sxth r3, r3 - 800a6f6: b29b uxth r3, r3 - 800a6f8: 1ad3 subs r3, r2, r3 - 800a6fa: b29a uxth r2, r3 - 800a6fc: 8bbb ldrh r3, [r7, #28] - 800a6fe: 4413 add r3, r2 - 800a700: b29b uxth r3, r3 - 800a702: 83bb strh r3, [r7, #28] + 800a670: f9b7 300c ldrsh.w r3, [r7, #12] + 800a674: 0fda lsrs r2, r3, #31 + 800a676: 4413 add r3, r2 + 800a678: 105b asrs r3, r3, #1 + 800a67a: b21b sxth r3, r3 + 800a67c: b29a uxth r2, r3 + 800a67e: f9b7 3008 ldrsh.w r3, [r7, #8] + 800a682: 0fd9 lsrs r1, r3, #31 + 800a684: 440b add r3, r1 + 800a686: 105b asrs r3, r3, #1 + 800a688: b21b sxth r3, r3 + 800a68a: b29b uxth r3, r3 + 800a68c: 1ad3 subs r3, r2, r3 + 800a68e: b29a uxth r2, r3 + 800a690: 8bbb ldrh r3, [r7, #28] + 800a692: 4413 add r3, r2 + 800a694: b29b uxth r3, r3 + 800a696: 83bb strh r3, [r7, #28] break; - 800a704: e029 b.n 800a75a + 800a698: e029 b.n 800a6ee case LV_ALIGN_CENTER: x += pw / 2 - w / 2; - 800a706: f9b7 300e ldrsh.w r3, [r7, #14] - 800a70a: 0fda lsrs r2, r3, #31 - 800a70c: 4413 add r3, r2 - 800a70e: 105b asrs r3, r3, #1 - 800a710: b21b sxth r3, r3 - 800a712: b29a uxth r2, r3 - 800a714: f9b7 300a ldrsh.w r3, [r7, #10] - 800a718: 0fd9 lsrs r1, r3, #31 - 800a71a: 440b add r3, r1 - 800a71c: 105b asrs r3, r3, #1 - 800a71e: b21b sxth r3, r3 - 800a720: b29b uxth r3, r3 - 800a722: 1ad3 subs r3, r2, r3 - 800a724: b29a uxth r2, r3 - 800a726: 8bfb ldrh r3, [r7, #30] - 800a728: 4413 add r3, r2 - 800a72a: b29b uxth r3, r3 - 800a72c: 83fb strh r3, [r7, #30] + 800a69a: f9b7 300e ldrsh.w r3, [r7, #14] + 800a69e: 0fda lsrs r2, r3, #31 + 800a6a0: 4413 add r3, r2 + 800a6a2: 105b asrs r3, r3, #1 + 800a6a4: b21b sxth r3, r3 + 800a6a6: b29a uxth r2, r3 + 800a6a8: f9b7 300a ldrsh.w r3, [r7, #10] + 800a6ac: 0fd9 lsrs r1, r3, #31 + 800a6ae: 440b add r3, r1 + 800a6b0: 105b asrs r3, r3, #1 + 800a6b2: b21b sxth r3, r3 + 800a6b4: b29b uxth r3, r3 + 800a6b6: 1ad3 subs r3, r2, r3 + 800a6b8: b29a uxth r2, r3 + 800a6ba: 8bfb ldrh r3, [r7, #30] + 800a6bc: 4413 add r3, r2 + 800a6be: b29b uxth r3, r3 + 800a6c0: 83fb strh r3, [r7, #30] y += ph / 2 - h / 2; - 800a72e: f9b7 300c ldrsh.w r3, [r7, #12] - 800a732: 0fda lsrs r2, r3, #31 - 800a734: 4413 add r3, r2 - 800a736: 105b asrs r3, r3, #1 - 800a738: b21b sxth r3, r3 - 800a73a: b29a uxth r2, r3 - 800a73c: f9b7 3008 ldrsh.w r3, [r7, #8] - 800a740: 0fd9 lsrs r1, r3, #31 - 800a742: 440b add r3, r1 - 800a744: 105b asrs r3, r3, #1 - 800a746: b21b sxth r3, r3 - 800a748: b29b uxth r3, r3 - 800a74a: 1ad3 subs r3, r2, r3 - 800a74c: b29a uxth r2, r3 - 800a74e: 8bbb ldrh r3, [r7, #28] - 800a750: 4413 add r3, r2 - 800a752: b29b uxth r3, r3 - 800a754: 83bb strh r3, [r7, #28] + 800a6c2: f9b7 300c ldrsh.w r3, [r7, #12] + 800a6c6: 0fda lsrs r2, r3, #31 + 800a6c8: 4413 add r3, r2 + 800a6ca: 105b asrs r3, r3, #1 + 800a6cc: b21b sxth r3, r3 + 800a6ce: b29a uxth r2, r3 + 800a6d0: f9b7 3008 ldrsh.w r3, [r7, #8] + 800a6d4: 0fd9 lsrs r1, r3, #31 + 800a6d6: 440b add r3, r1 + 800a6d8: 105b asrs r3, r3, #1 + 800a6da: b21b sxth r3, r3 + 800a6dc: b29b uxth r3, r3 + 800a6de: 1ad3 subs r3, r2, r3 + 800a6e0: b29a uxth r2, r3 + 800a6e2: 8bbb ldrh r3, [r7, #28] + 800a6e4: 4413 add r3, r2 + 800a6e6: b29b uxth r3, r3 + 800a6e8: 83bb strh r3, [r7, #28] break; - 800a756: e000 b.n 800a75a + 800a6ea: e000 b.n 800a6ee default: break; - 800a758: bf00 nop + 800a6ec: bf00 nop } lv_obj_move_to(obj, x, y); - 800a75a: f9b7 201c ldrsh.w r2, [r7, #28] - 800a75e: f9b7 301e ldrsh.w r3, [r7, #30] - 800a762: 4619 mov r1, r3 - 800a764: 6878 ldr r0, [r7, #4] - 800a766: f000 f805 bl 800a774 - 800a76a: e000 b.n 800a76e + 800a6ee: f9b7 201c ldrsh.w r2, [r7, #28] + 800a6f2: f9b7 301e ldrsh.w r3, [r7, #30] + 800a6f6: 4619 mov r1, r3 + 800a6f8: 6878 ldr r0, [r7, #4] + 800a6fa: f000 f805 bl 800a708 + 800a6fe: e000 b.n 800a702 if(lv_obj_is_layout_positioned(obj)) return; - 800a76c: bf00 nop + 800a700: bf00 nop } } - 800a76e: 3720 adds r7, #32 - 800a770: 46bd mov sp, r7 - 800a772: bd80 pop {r7, pc} + 800a702: 3720 adds r7, #32 + 800a704: 46bd mov sp, r7 + 800a706: bd80 pop {r7, pc} -0800a774 : +0800a708 : void lv_obj_move_to(lv_obj_t * obj, lv_coord_t x, lv_coord_t y) { - 800a774: b590 push {r4, r7, lr} - 800a776: b08d sub sp, #52 ; 0x34 - 800a778: af00 add r7, sp, #0 - 800a77a: 6078 str r0, [r7, #4] - 800a77c: 460b mov r3, r1 - 800a77e: 807b strh r3, [r7, #2] - 800a780: 4613 mov r3, r2 - 800a782: 803b strh r3, [r7, #0] + 800a708: b590 push {r4, r7, lr} + 800a70a: b08d sub sp, #52 ; 0x34 + 800a70c: af00 add r7, sp, #0 + 800a70e: 6078 str r0, [r7, #4] + 800a710: 460b mov r3, r1 + 800a712: 807b strh r3, [r7, #2] + 800a714: 4613 mov r3, r2 + 800a716: 803b strh r3, [r7, #0] /*Convert x and y to absolute coordinates*/ lv_obj_t * parent = obj->parent; - 800a784: 687b ldr r3, [r7, #4] - 800a786: 685b ldr r3, [r3, #4] - 800a788: 62bb str r3, [r7, #40] ; 0x28 + 800a718: 687b ldr r3, [r7, #4] + 800a71a: 685b ldr r3, [r3, #4] + 800a71c: 62bb str r3, [r7, #40] ; 0x28 if(parent) { - 800a78a: 6abb ldr r3, [r7, #40] ; 0x28 - 800a78c: 2b00 cmp r3, #0 - 800a78e: d05a beq.n 800a846 + 800a71e: 6abb ldr r3, [r7, #40] ; 0x28 + 800a720: 2b00 cmp r3, #0 + 800a722: d05a beq.n 800a7da lv_coord_t pad_left = lv_obj_get_style_pad_left(parent, LV_PART_MAIN); - 800a790: 2100 movs r1, #0 - 800a792: 6ab8 ldr r0, [r7, #40] ; 0x28 - 800a794: f7fe fd0d bl 80091b2 - 800a798: 4603 mov r3, r0 - 800a79a: 84fb strh r3, [r7, #38] ; 0x26 + 800a724: 2100 movs r1, #0 + 800a726: 6ab8 ldr r0, [r7, #40] ; 0x28 + 800a728: f7fe fd0d bl 8009146 + 800a72c: 4603 mov r3, r0 + 800a72e: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t pad_top = lv_obj_get_style_pad_top(parent, LV_PART_MAIN); - 800a79c: 2100 movs r1, #0 - 800a79e: 6ab8 ldr r0, [r7, #40] ; 0x28 - 800a7a0: f7fe fce1 bl 8009166 - 800a7a4: 4603 mov r3, r0 - 800a7a6: 84bb strh r3, [r7, #36] ; 0x24 + 800a730: 2100 movs r1, #0 + 800a732: 6ab8 ldr r0, [r7, #40] ; 0x28 + 800a734: f7fe fce1 bl 80090fa + 800a738: 4603 mov r3, r0 + 800a73a: 84bb strh r3, [r7, #36] ; 0x24 if(lv_obj_has_flag(obj, LV_OBJ_FLAG_FLOATING)) { - 800a7a8: f44f 2180 mov.w r1, #262144 ; 0x40000 - 800a7ac: 6878 ldr r0, [r7, #4] - 800a7ae: f7fb ffe8 bl 8006782 - 800a7b2: 4603 mov r3, r0 - 800a7b4: 2b00 cmp r3, #0 - 800a7b6: d016 beq.n 800a7e6 + 800a73c: f44f 2180 mov.w r1, #262144 ; 0x40000 + 800a740: 6878 ldr r0, [r7, #4] + 800a742: f7fb ffe8 bl 8006716 + 800a746: 4603 mov r3, r0 + 800a748: 2b00 cmp r3, #0 + 800a74a: d016 beq.n 800a77a x += pad_left + parent->coords.x1; - 800a7b8: 6abb ldr r3, [r7, #40] ; 0x28 - 800a7ba: f9b3 3014 ldrsh.w r3, [r3, #20] - 800a7be: b29a uxth r2, r3 - 800a7c0: 8cfb ldrh r3, [r7, #38] ; 0x26 - 800a7c2: 4413 add r3, r2 - 800a7c4: b29a uxth r2, r3 - 800a7c6: 887b ldrh r3, [r7, #2] - 800a7c8: 4413 add r3, r2 - 800a7ca: b29b uxth r3, r3 - 800a7cc: 807b strh r3, [r7, #2] + 800a74c: 6abb ldr r3, [r7, #40] ; 0x28 + 800a74e: f9b3 3014 ldrsh.w r3, [r3, #20] + 800a752: b29a uxth r2, r3 + 800a754: 8cfb ldrh r3, [r7, #38] ; 0x26 + 800a756: 4413 add r3, r2 + 800a758: b29a uxth r2, r3 + 800a75a: 887b ldrh r3, [r7, #2] + 800a75c: 4413 add r3, r2 + 800a75e: b29b uxth r3, r3 + 800a760: 807b strh r3, [r7, #2] y += pad_top + parent->coords.y1; - 800a7ce: 6abb ldr r3, [r7, #40] ; 0x28 - 800a7d0: f9b3 3016 ldrsh.w r3, [r3, #22] - 800a7d4: b29a uxth r2, r3 - 800a7d6: 8cbb ldrh r3, [r7, #36] ; 0x24 - 800a7d8: 4413 add r3, r2 - 800a7da: b29a uxth r2, r3 - 800a7dc: 883b ldrh r3, [r7, #0] - 800a7de: 4413 add r3, r2 - 800a7e0: b29b uxth r3, r3 - 800a7e2: 803b strh r3, [r7, #0] - 800a7e4: e01f b.n 800a826 + 800a762: 6abb ldr r3, [r7, #40] ; 0x28 + 800a764: f9b3 3016 ldrsh.w r3, [r3, #22] + 800a768: b29a uxth r2, r3 + 800a76a: 8cbb ldrh r3, [r7, #36] ; 0x24 + 800a76c: 4413 add r3, r2 + 800a76e: b29a uxth r2, r3 + 800a770: 883b ldrh r3, [r7, #0] + 800a772: 4413 add r3, r2 + 800a774: b29b uxth r3, r3 + 800a776: 803b strh r3, [r7, #0] + 800a778: e01f b.n 800a7ba } else { x += pad_left + parent->coords.x1 - lv_obj_get_scroll_x(parent); - 800a7e6: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 800a7ea: 6aba ldr r2, [r7, #40] ; 0x28 - 800a7ec: f9b2 2014 ldrsh.w r2, [r2, #20] - 800a7f0: 189c adds r4, r3, r2 - 800a7f2: 6ab8 ldr r0, [r7, #40] ; 0x28 - 800a7f4: f001 f8bc bl 800b970 - 800a7f8: 4603 mov r3, r0 - 800a7fa: 1ae3 subs r3, r4, r3 - 800a7fc: b29a uxth r2, r3 - 800a7fe: 887b ldrh r3, [r7, #2] - 800a800: 4413 add r3, r2 - 800a802: b29b uxth r3, r3 - 800a804: 807b strh r3, [r7, #2] + 800a77a: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 800a77e: 6aba ldr r2, [r7, #40] ; 0x28 + 800a780: f9b2 2014 ldrsh.w r2, [r2, #20] + 800a784: 189c adds r4, r3, r2 + 800a786: 6ab8 ldr r0, [r7, #40] ; 0x28 + 800a788: f001 f8bc bl 800b904 + 800a78c: 4603 mov r3, r0 + 800a78e: 1ae3 subs r3, r4, r3 + 800a790: b29a uxth r2, r3 + 800a792: 887b ldrh r3, [r7, #2] + 800a794: 4413 add r3, r2 + 800a796: b29b uxth r3, r3 + 800a798: 807b strh r3, [r7, #2] y += pad_top + parent->coords.y1 - lv_obj_get_scroll_y(parent); - 800a806: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 - 800a80a: 6aba ldr r2, [r7, #40] ; 0x28 - 800a80c: f9b2 2016 ldrsh.w r2, [r2, #22] - 800a810: 189c adds r4, r3, r2 - 800a812: 6ab8 ldr r0, [r7, #40] ; 0x28 - 800a814: f001 f8c3 bl 800b99e - 800a818: 4603 mov r3, r0 - 800a81a: 1ae3 subs r3, r4, r3 - 800a81c: b29a uxth r2, r3 - 800a81e: 883b ldrh r3, [r7, #0] - 800a820: 4413 add r3, r2 - 800a822: b29b uxth r3, r3 - 800a824: 803b strh r3, [r7, #0] + 800a79a: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 + 800a79e: 6aba ldr r2, [r7, #40] ; 0x28 + 800a7a0: f9b2 2016 ldrsh.w r2, [r2, #22] + 800a7a4: 189c adds r4, r3, r2 + 800a7a6: 6ab8 ldr r0, [r7, #40] ; 0x28 + 800a7a8: f001 f8c3 bl 800b932 + 800a7ac: 4603 mov r3, r0 + 800a7ae: 1ae3 subs r3, r4, r3 + 800a7b0: b29a uxth r2, r3 + 800a7b2: 883b ldrh r3, [r7, #0] + 800a7b4: 4413 add r3, r2 + 800a7b6: b29b uxth r3, r3 + 800a7b8: 803b strh r3, [r7, #0] } lv_coord_t border_width = lv_obj_get_style_border_width(parent, LV_PART_MAIN); - 800a826: 2100 movs r1, #0 - 800a828: 6ab8 ldr r0, [r7, #40] ; 0x28 - 800a82a: f7fe fce8 bl 80091fe - 800a82e: 4603 mov r3, r0 - 800a830: 847b strh r3, [r7, #34] ; 0x22 + 800a7ba: 2100 movs r1, #0 + 800a7bc: 6ab8 ldr r0, [r7, #40] ; 0x28 + 800a7be: f7fe fce8 bl 8009192 + 800a7c2: 4603 mov r3, r0 + 800a7c4: 847b strh r3, [r7, #34] ; 0x22 x += border_width; - 800a832: 887a ldrh r2, [r7, #2] - 800a834: 8c7b ldrh r3, [r7, #34] ; 0x22 - 800a836: 4413 add r3, r2 - 800a838: b29b uxth r3, r3 - 800a83a: 807b strh r3, [r7, #2] + 800a7c6: 887a ldrh r2, [r7, #2] + 800a7c8: 8c7b ldrh r3, [r7, #34] ; 0x22 + 800a7ca: 4413 add r3, r2 + 800a7cc: b29b uxth r3, r3 + 800a7ce: 807b strh r3, [r7, #2] y += border_width; - 800a83c: 883a ldrh r2, [r7, #0] - 800a83e: 8c7b ldrh r3, [r7, #34] ; 0x22 - 800a840: 4413 add r3, r2 - 800a842: b29b uxth r3, r3 - 800a844: 803b strh r3, [r7, #0] + 800a7d0: 883a ldrh r2, [r7, #0] + 800a7d2: 8c7b ldrh r3, [r7, #34] ; 0x22 + 800a7d4: 4413 add r3, r2 + 800a7d6: b29b uxth r3, r3 + 800a7d8: 803b strh r3, [r7, #0] } /*Calculate and set the movement*/ lv_point_t diff; diff.x = x - obj->coords.x1; - 800a846: 887a ldrh r2, [r7, #2] - 800a848: 687b ldr r3, [r7, #4] - 800a84a: f9b3 3014 ldrsh.w r3, [r3, #20] - 800a84e: b29b uxth r3, r3 - 800a850: 1ad3 subs r3, r2, r3 - 800a852: b29b uxth r3, r3 - 800a854: b21b sxth r3, r3 - 800a856: 83bb strh r3, [r7, #28] + 800a7da: 887a ldrh r2, [r7, #2] + 800a7dc: 687b ldr r3, [r7, #4] + 800a7de: f9b3 3014 ldrsh.w r3, [r3, #20] + 800a7e2: b29b uxth r3, r3 + 800a7e4: 1ad3 subs r3, r2, r3 + 800a7e6: b29b uxth r3, r3 + 800a7e8: b21b sxth r3, r3 + 800a7ea: 83bb strh r3, [r7, #28] diff.y = y - obj->coords.y1; - 800a858: 883a ldrh r2, [r7, #0] - 800a85a: 687b ldr r3, [r7, #4] - 800a85c: f9b3 3016 ldrsh.w r3, [r3, #22] - 800a860: b29b uxth r3, r3 - 800a862: 1ad3 subs r3, r2, r3 - 800a864: b29b uxth r3, r3 - 800a866: b21b sxth r3, r3 - 800a868: 83fb strh r3, [r7, #30] + 800a7ec: 883a ldrh r2, [r7, #0] + 800a7ee: 687b ldr r3, [r7, #4] + 800a7f0: f9b3 3016 ldrsh.w r3, [r3, #22] + 800a7f4: b29b uxth r3, r3 + 800a7f6: 1ad3 subs r3, r2, r3 + 800a7f8: b29b uxth r3, r3 + 800a7fa: b21b sxth r3, r3 + 800a7fc: 83fb strh r3, [r7, #30] /*Do nothing if the position is not changed*/ /*It is very important else recursive positioning can *occur without position change*/ if(diff.x == 0 && diff.y == 0) return; - 800a86a: f9b7 301c ldrsh.w r3, [r7, #28] - 800a86e: 2b00 cmp r3, #0 - 800a870: d104 bne.n 800a87c - 800a872: f9b7 301e ldrsh.w r3, [r7, #30] - 800a876: 2b00 cmp r3, #0 - 800a878: f000 808e beq.w 800a998 + 800a7fe: f9b7 301c ldrsh.w r3, [r7, #28] + 800a802: 2b00 cmp r3, #0 + 800a804: d104 bne.n 800a810 + 800a806: f9b7 301e ldrsh.w r3, [r7, #30] + 800a80a: 2b00 cmp r3, #0 + 800a80c: f000 808e beq.w 800a92c /*Invalidate the original area*/ lv_obj_invalidate(obj); - 800a87c: 6878 ldr r0, [r7, #4] - 800a87e: f000 f918 bl 800aab2 + 800a810: 6878 ldr r0, [r7, #4] + 800a812: f000 f918 bl 800aa46 /*Save the original coordinates*/ lv_area_t ori; lv_obj_get_coords(obj, &ori); - 800a882: f107 0314 add.w r3, r7, #20 - 800a886: 4619 mov r1, r3 - 800a888: 6878 ldr r0, [r7, #4] - 800a88a: f7ff fbbf bl 800a00c + 800a816: f107 0314 add.w r3, r7, #20 + 800a81a: 4619 mov r1, r3 + 800a81c: 6878 ldr r0, [r7, #4] + 800a81e: f7ff fbbf bl 8009fa0 /*Check if the object inside the parent or not*/ lv_area_t parent_fit_area; bool on1 = false; - 800a88e: 2300 movs r3, #0 - 800a890: f887 302f strb.w r3, [r7, #47] ; 0x2f + 800a822: 2300 movs r3, #0 + 800a824: f887 302f strb.w r3, [r7, #47] ; 0x2f if(parent) { - 800a894: 6abb ldr r3, [r7, #40] ; 0x28 - 800a896: 2b00 cmp r3, #0 - 800a898: d01a beq.n 800a8d0 + 800a828: 6abb ldr r3, [r7, #40] ; 0x28 + 800a82a: 2b00 cmp r3, #0 + 800a82c: d01a beq.n 800a864 lv_obj_get_content_coords(parent, &parent_fit_area); - 800a89a: f107 030c add.w r3, r7, #12 - 800a89e: 4619 mov r1, r3 - 800a8a0: 6ab8 ldr r0, [r7, #40] ; 0x28 - 800a8a2: f7ff fcc3 bl 800a22c + 800a82e: f107 030c add.w r3, r7, #12 + 800a832: 4619 mov r1, r3 + 800a834: 6ab8 ldr r0, [r7, #40] ; 0x28 + 800a836: f7ff fcc3 bl 800a1c0 /*If the object is already out of the parent and its position is changes *surely the scrollbars also changes so invalidate them*/ on1 = _lv_area_is_in(&ori, &parent_fit_area, 0); - 800a8a6: f107 010c add.w r1, r7, #12 - 800a8aa: f107 0314 add.w r3, r7, #20 - 800a8ae: 2200 movs r2, #0 - 800a8b0: 4618 mov r0, r3 - 800a8b2: f026 fdd8 bl 8031466 <_lv_area_is_in> - 800a8b6: 4603 mov r3, r0 - 800a8b8: f887 302f strb.w r3, [r7, #47] ; 0x2f + 800a83a: f107 010c add.w r1, r7, #12 + 800a83e: f107 0314 add.w r3, r7, #20 + 800a842: 2200 movs r2, #0 + 800a844: 4618 mov r0, r3 + 800a846: f026 fdc4 bl 80313d2 <_lv_area_is_in> + 800a84a: 4603 mov r3, r0 + 800a84c: f887 302f strb.w r3, [r7, #47] ; 0x2f if(!on1) lv_obj_scrollbar_invalidate(parent); - 800a8bc: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 800a8c0: f083 0301 eor.w r3, r3, #1 - 800a8c4: b2db uxtb r3, r3 - 800a8c6: 2b00 cmp r3, #0 - 800a8c8: d002 beq.n 800a8d0 - 800a8ca: 6ab8 ldr r0, [r7, #40] ; 0x28 - 800a8cc: f002 fad2 bl 800ce74 + 800a850: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 800a854: f083 0301 eor.w r3, r3, #1 + 800a858: b2db uxtb r3, r3 + 800a85a: 2b00 cmp r3, #0 + 800a85c: d002 beq.n 800a864 + 800a85e: 6ab8 ldr r0, [r7, #40] ; 0x28 + 800a860: f002 fad2 bl 800ce08 } obj->coords.x1 += diff.x; - 800a8d0: 687b ldr r3, [r7, #4] - 800a8d2: f9b3 3014 ldrsh.w r3, [r3, #20] - 800a8d6: b29a uxth r2, r3 - 800a8d8: f9b7 301c ldrsh.w r3, [r7, #28] - 800a8dc: b29b uxth r3, r3 - 800a8de: 4413 add r3, r2 - 800a8e0: b29b uxth r3, r3 - 800a8e2: b21a sxth r2, r3 - 800a8e4: 687b ldr r3, [r7, #4] - 800a8e6: 829a strh r2, [r3, #20] + 800a864: 687b ldr r3, [r7, #4] + 800a866: f9b3 3014 ldrsh.w r3, [r3, #20] + 800a86a: b29a uxth r2, r3 + 800a86c: f9b7 301c ldrsh.w r3, [r7, #28] + 800a870: b29b uxth r3, r3 + 800a872: 4413 add r3, r2 + 800a874: b29b uxth r3, r3 + 800a876: b21a sxth r2, r3 + 800a878: 687b ldr r3, [r7, #4] + 800a87a: 829a strh r2, [r3, #20] obj->coords.y1 += diff.y; - 800a8e8: 687b ldr r3, [r7, #4] - 800a8ea: f9b3 3016 ldrsh.w r3, [r3, #22] - 800a8ee: b29a uxth r2, r3 - 800a8f0: f9b7 301e ldrsh.w r3, [r7, #30] - 800a8f4: b29b uxth r3, r3 - 800a8f6: 4413 add r3, r2 - 800a8f8: b29b uxth r3, r3 - 800a8fa: b21a sxth r2, r3 - 800a8fc: 687b ldr r3, [r7, #4] - 800a8fe: 82da strh r2, [r3, #22] + 800a87c: 687b ldr r3, [r7, #4] + 800a87e: f9b3 3016 ldrsh.w r3, [r3, #22] + 800a882: b29a uxth r2, r3 + 800a884: f9b7 301e ldrsh.w r3, [r7, #30] + 800a888: b29b uxth r3, r3 + 800a88a: 4413 add r3, r2 + 800a88c: b29b uxth r3, r3 + 800a88e: b21a sxth r2, r3 + 800a890: 687b ldr r3, [r7, #4] + 800a892: 82da strh r2, [r3, #22] obj->coords.x2 += diff.x; - 800a900: 687b ldr r3, [r7, #4] - 800a902: f9b3 3018 ldrsh.w r3, [r3, #24] - 800a906: b29a uxth r2, r3 - 800a908: f9b7 301c ldrsh.w r3, [r7, #28] - 800a90c: b29b uxth r3, r3 - 800a90e: 4413 add r3, r2 - 800a910: b29b uxth r3, r3 - 800a912: b21a sxth r2, r3 - 800a914: 687b ldr r3, [r7, #4] - 800a916: 831a strh r2, [r3, #24] + 800a894: 687b ldr r3, [r7, #4] + 800a896: f9b3 3018 ldrsh.w r3, [r3, #24] + 800a89a: b29a uxth r2, r3 + 800a89c: f9b7 301c ldrsh.w r3, [r7, #28] + 800a8a0: b29b uxth r3, r3 + 800a8a2: 4413 add r3, r2 + 800a8a4: b29b uxth r3, r3 + 800a8a6: b21a sxth r2, r3 + 800a8a8: 687b ldr r3, [r7, #4] + 800a8aa: 831a strh r2, [r3, #24] obj->coords.y2 += diff.y; - 800a918: 687b ldr r3, [r7, #4] - 800a91a: f9b3 301a ldrsh.w r3, [r3, #26] - 800a91e: b29a uxth r2, r3 - 800a920: f9b7 301e ldrsh.w r3, [r7, #30] - 800a924: b29b uxth r3, r3 - 800a926: 4413 add r3, r2 - 800a928: b29b uxth r3, r3 - 800a92a: b21a sxth r2, r3 - 800a92c: 687b ldr r3, [r7, #4] - 800a92e: 835a strh r2, [r3, #26] + 800a8ac: 687b ldr r3, [r7, #4] + 800a8ae: f9b3 301a ldrsh.w r3, [r3, #26] + 800a8b2: b29a uxth r2, r3 + 800a8b4: f9b7 301e ldrsh.w r3, [r7, #30] + 800a8b8: b29b uxth r3, r3 + 800a8ba: 4413 add r3, r2 + 800a8bc: b29b uxth r3, r3 + 800a8be: b21a sxth r2, r3 + 800a8c0: 687b ldr r3, [r7, #4] + 800a8c2: 835a strh r2, [r3, #26] lv_obj_move_children_by(obj, diff.x, diff.y, false); - 800a930: f9b7 101c ldrsh.w r1, [r7, #28] - 800a934: f9b7 201e ldrsh.w r2, [r7, #30] - 800a938: 2300 movs r3, #0 - 800a93a: 6878 ldr r0, [r7, #4] - 800a93c: f000 f830 bl 800a9a0 + 800a8c4: f9b7 101c ldrsh.w r1, [r7, #28] + 800a8c8: f9b7 201e ldrsh.w r2, [r7, #30] + 800a8cc: 2300 movs r3, #0 + 800a8ce: 6878 ldr r0, [r7, #4] + 800a8d0: f000 f830 bl 800a934 /*Call the ancestor's event handler to the parent too*/ if(parent) lv_event_send(parent, LV_EVENT_CHILD_CHANGED, obj); - 800a940: 6abb ldr r3, [r7, #40] ; 0x28 - 800a942: 2b00 cmp r3, #0 - 800a944: d004 beq.n 800a950 - 800a946: 687a ldr r2, [r7, #4] - 800a948: 2122 movs r1, #34 ; 0x22 - 800a94a: 6ab8 ldr r0, [r7, #40] ; 0x28 - 800a94c: f7f7 fd98 bl 8002480 + 800a8d4: 6abb ldr r3, [r7, #40] ; 0x28 + 800a8d6: 2b00 cmp r3, #0 + 800a8d8: d004 beq.n 800a8e4 + 800a8da: 687a ldr r2, [r7, #4] + 800a8dc: 2122 movs r1, #34 ; 0x22 + 800a8de: 6ab8 ldr r0, [r7, #40] ; 0x28 + 800a8e0: f7f7 fd98 bl 8002414 /*Invalidate the new area*/ lv_obj_invalidate(obj); - 800a950: 6878 ldr r0, [r7, #4] - 800a952: f000 f8ae bl 800aab2 + 800a8e4: 6878 ldr r0, [r7, #4] + 800a8e6: f000 f8ae bl 800aa46 /*If the object was out of the parent invalidate the new scrollbar area too. *If it wasn't out of the parent but out now, also invalidate the srollbars*/ if(parent) { - 800a956: 6abb ldr r3, [r7, #40] ; 0x28 - 800a958: 2b00 cmp r3, #0 - 800a95a: d01e beq.n 800a99a + 800a8ea: 6abb ldr r3, [r7, #40] ; 0x28 + 800a8ec: 2b00 cmp r3, #0 + 800a8ee: d01e beq.n 800a92e bool on2 = _lv_area_is_in(&obj->coords, &parent_fit_area, 0); - 800a95c: 687b ldr r3, [r7, #4] - 800a95e: 3314 adds r3, #20 - 800a960: f107 010c add.w r1, r7, #12 - 800a964: 2200 movs r2, #0 - 800a966: 4618 mov r0, r3 - 800a968: f026 fd7d bl 8031466 <_lv_area_is_in> - 800a96c: 4603 mov r3, r0 - 800a96e: f887 3021 strb.w r3, [r7, #33] ; 0x21 + 800a8f0: 687b ldr r3, [r7, #4] + 800a8f2: 3314 adds r3, #20 + 800a8f4: f107 010c add.w r1, r7, #12 + 800a8f8: 2200 movs r2, #0 + 800a8fa: 4618 mov r0, r3 + 800a8fc: f026 fd69 bl 80313d2 <_lv_area_is_in> + 800a900: 4603 mov r3, r0 + 800a902: f887 3021 strb.w r3, [r7, #33] ; 0x21 if(on1 || (!on1 && on2)) lv_obj_scrollbar_invalidate(parent); - 800a972: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 800a976: 2b00 cmp r3, #0 - 800a978: d10a bne.n 800a990 - 800a97a: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 800a97e: f083 0301 eor.w r3, r3, #1 - 800a982: b2db uxtb r3, r3 - 800a984: 2b00 cmp r3, #0 - 800a986: d008 beq.n 800a99a - 800a988: f897 3021 ldrb.w r3, [r7, #33] ; 0x21 - 800a98c: 2b00 cmp r3, #0 - 800a98e: d004 beq.n 800a99a - 800a990: 6ab8 ldr r0, [r7, #40] ; 0x28 - 800a992: f002 fa6f bl 800ce74 - 800a996: e000 b.n 800a99a + 800a906: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 800a90a: 2b00 cmp r3, #0 + 800a90c: d10a bne.n 800a924 + 800a90e: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 800a912: f083 0301 eor.w r3, r3, #1 + 800a916: b2db uxtb r3, r3 + 800a918: 2b00 cmp r3, #0 + 800a91a: d008 beq.n 800a92e + 800a91c: f897 3021 ldrb.w r3, [r7, #33] ; 0x21 + 800a920: 2b00 cmp r3, #0 + 800a922: d004 beq.n 800a92e + 800a924: 6ab8 ldr r0, [r7, #40] ; 0x28 + 800a926: f002 fa6f bl 800ce08 + 800a92a: e000 b.n 800a92e if(diff.x == 0 && diff.y == 0) return; - 800a998: bf00 nop + 800a92c: bf00 nop } } - 800a99a: 3734 adds r7, #52 ; 0x34 - 800a99c: 46bd mov sp, r7 - 800a99e: bd90 pop {r4, r7, pc} + 800a92e: 3734 adds r7, #52 ; 0x34 + 800a930: 46bd mov sp, r7 + 800a932: bd90 pop {r4, r7, pc} -0800a9a0 : +0800a934 : void lv_obj_move_children_by(lv_obj_t * obj, lv_coord_t x_diff, lv_coord_t y_diff, bool ignore_floating) { - 800a9a0: b580 push {r7, lr} - 800a9a2: b088 sub sp, #32 - 800a9a4: af00 add r7, sp, #0 - 800a9a6: 60f8 str r0, [r7, #12] - 800a9a8: 4608 mov r0, r1 - 800a9aa: 4611 mov r1, r2 - 800a9ac: 461a mov r2, r3 - 800a9ae: 4603 mov r3, r0 - 800a9b0: 817b strh r3, [r7, #10] - 800a9b2: 460b mov r3, r1 - 800a9b4: 813b strh r3, [r7, #8] - 800a9b6: 4613 mov r3, r2 - 800a9b8: 71fb strb r3, [r7, #7] + 800a934: b580 push {r7, lr} + 800a936: b088 sub sp, #32 + 800a938: af00 add r7, sp, #0 + 800a93a: 60f8 str r0, [r7, #12] + 800a93c: 4608 mov r0, r1 + 800a93e: 4611 mov r1, r2 + 800a940: 461a mov r2, r3 + 800a942: 4603 mov r3, r0 + 800a944: 817b strh r3, [r7, #10] + 800a946: 460b mov r3, r1 + 800a948: 813b strh r3, [r7, #8] + 800a94a: 4613 mov r3, r2 + 800a94c: 71fb strb r3, [r7, #7] uint32_t i; uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 800a9ba: 68f8 ldr r0, [r7, #12] - 800a9bc: f004 fee8 bl 800f790 - 800a9c0: 61b8 str r0, [r7, #24] + 800a94e: 68f8 ldr r0, [r7, #12] + 800a950: f004 fed4 bl 800f6fc + 800a954: 61b8 str r0, [r7, #24] for(i = 0; i < child_cnt; i++) { - 800a9c2: 2300 movs r3, #0 - 800a9c4: 61fb str r3, [r7, #28] - 800a9c6: e047 b.n 800aa58 + 800a956: 2300 movs r3, #0 + 800a958: 61fb str r3, [r7, #28] + 800a95a: e047 b.n 800a9ec lv_obj_t * child = obj->spec_attr->children[i]; - 800a9c8: 68fb ldr r3, [r7, #12] - 800a9ca: 689b ldr r3, [r3, #8] - 800a9cc: 681a ldr r2, [r3, #0] - 800a9ce: 69fb ldr r3, [r7, #28] - 800a9d0: 009b lsls r3, r3, #2 - 800a9d2: 4413 add r3, r2 - 800a9d4: 681b ldr r3, [r3, #0] - 800a9d6: 617b str r3, [r7, #20] + 800a95c: 68fb ldr r3, [r7, #12] + 800a95e: 689b ldr r3, [r3, #8] + 800a960: 681a ldr r2, [r3, #0] + 800a962: 69fb ldr r3, [r7, #28] + 800a964: 009b lsls r3, r3, #2 + 800a966: 4413 add r3, r2 + 800a968: 681b ldr r3, [r3, #0] + 800a96a: 617b str r3, [r7, #20] if(ignore_floating && lv_obj_has_flag(child, LV_OBJ_FLAG_FLOATING)) continue; - 800a9d8: 79fb ldrb r3, [r7, #7] - 800a9da: 2b00 cmp r3, #0 - 800a9dc: d007 beq.n 800a9ee - 800a9de: f44f 2180 mov.w r1, #262144 ; 0x40000 - 800a9e2: 6978 ldr r0, [r7, #20] - 800a9e4: f7fb fecd bl 8006782 - 800a9e8: 4603 mov r3, r0 - 800a9ea: 2b00 cmp r3, #0 - 800a9ec: d130 bne.n 800aa50 + 800a96c: 79fb ldrb r3, [r7, #7] + 800a96e: 2b00 cmp r3, #0 + 800a970: d007 beq.n 800a982 + 800a972: f44f 2180 mov.w r1, #262144 ; 0x40000 + 800a976: 6978 ldr r0, [r7, #20] + 800a978: f7fb fecd bl 8006716 + 800a97c: 4603 mov r3, r0 + 800a97e: 2b00 cmp r3, #0 + 800a980: d130 bne.n 800a9e4 child->coords.x1 += x_diff; - 800a9ee: 697b ldr r3, [r7, #20] - 800a9f0: f9b3 3014 ldrsh.w r3, [r3, #20] - 800a9f4: b29a uxth r2, r3 - 800a9f6: 897b ldrh r3, [r7, #10] - 800a9f8: 4413 add r3, r2 - 800a9fa: b29b uxth r3, r3 - 800a9fc: b21a sxth r2, r3 - 800a9fe: 697b ldr r3, [r7, #20] - 800aa00: 829a strh r2, [r3, #20] + 800a982: 697b ldr r3, [r7, #20] + 800a984: f9b3 3014 ldrsh.w r3, [r3, #20] + 800a988: b29a uxth r2, r3 + 800a98a: 897b ldrh r3, [r7, #10] + 800a98c: 4413 add r3, r2 + 800a98e: b29b uxth r3, r3 + 800a990: b21a sxth r2, r3 + 800a992: 697b ldr r3, [r7, #20] + 800a994: 829a strh r2, [r3, #20] child->coords.y1 += y_diff; - 800aa02: 697b ldr r3, [r7, #20] - 800aa04: f9b3 3016 ldrsh.w r3, [r3, #22] - 800aa08: b29a uxth r2, r3 - 800aa0a: 893b ldrh r3, [r7, #8] - 800aa0c: 4413 add r3, r2 - 800aa0e: b29b uxth r3, r3 - 800aa10: b21a sxth r2, r3 - 800aa12: 697b ldr r3, [r7, #20] - 800aa14: 82da strh r2, [r3, #22] + 800a996: 697b ldr r3, [r7, #20] + 800a998: f9b3 3016 ldrsh.w r3, [r3, #22] + 800a99c: b29a uxth r2, r3 + 800a99e: 893b ldrh r3, [r7, #8] + 800a9a0: 4413 add r3, r2 + 800a9a2: b29b uxth r3, r3 + 800a9a4: b21a sxth r2, r3 + 800a9a6: 697b ldr r3, [r7, #20] + 800a9a8: 82da strh r2, [r3, #22] child->coords.x2 += x_diff; - 800aa16: 697b ldr r3, [r7, #20] - 800aa18: f9b3 3018 ldrsh.w r3, [r3, #24] - 800aa1c: b29a uxth r2, r3 - 800aa1e: 897b ldrh r3, [r7, #10] - 800aa20: 4413 add r3, r2 - 800aa22: b29b uxth r3, r3 - 800aa24: b21a sxth r2, r3 - 800aa26: 697b ldr r3, [r7, #20] - 800aa28: 831a strh r2, [r3, #24] + 800a9aa: 697b ldr r3, [r7, #20] + 800a9ac: f9b3 3018 ldrsh.w r3, [r3, #24] + 800a9b0: b29a uxth r2, r3 + 800a9b2: 897b ldrh r3, [r7, #10] + 800a9b4: 4413 add r3, r2 + 800a9b6: b29b uxth r3, r3 + 800a9b8: b21a sxth r2, r3 + 800a9ba: 697b ldr r3, [r7, #20] + 800a9bc: 831a strh r2, [r3, #24] child->coords.y2 += y_diff; - 800aa2a: 697b ldr r3, [r7, #20] - 800aa2c: f9b3 301a ldrsh.w r3, [r3, #26] - 800aa30: b29a uxth r2, r3 - 800aa32: 893b ldrh r3, [r7, #8] - 800aa34: 4413 add r3, r2 - 800aa36: b29b uxth r3, r3 - 800aa38: b21a sxth r2, r3 - 800aa3a: 697b ldr r3, [r7, #20] - 800aa3c: 835a strh r2, [r3, #26] + 800a9be: 697b ldr r3, [r7, #20] + 800a9c0: f9b3 301a ldrsh.w r3, [r3, #26] + 800a9c4: b29a uxth r2, r3 + 800a9c6: 893b ldrh r3, [r7, #8] + 800a9c8: 4413 add r3, r2 + 800a9ca: b29b uxth r3, r3 + 800a9cc: b21a sxth r2, r3 + 800a9ce: 697b ldr r3, [r7, #20] + 800a9d0: 835a strh r2, [r3, #26] lv_obj_move_children_by(child, x_diff, y_diff, false); - 800aa3e: f9b7 2008 ldrsh.w r2, [r7, #8] - 800aa42: f9b7 100a ldrsh.w r1, [r7, #10] - 800aa46: 2300 movs r3, #0 - 800aa48: 6978 ldr r0, [r7, #20] - 800aa4a: f7ff ffa9 bl 800a9a0 - 800aa4e: e000 b.n 800aa52 + 800a9d2: f9b7 2008 ldrsh.w r2, [r7, #8] + 800a9d6: f9b7 100a ldrsh.w r1, [r7, #10] + 800a9da: 2300 movs r3, #0 + 800a9dc: 6978 ldr r0, [r7, #20] + 800a9de: f7ff ffa9 bl 800a934 + 800a9e2: e000 b.n 800a9e6 if(ignore_floating && lv_obj_has_flag(child, LV_OBJ_FLAG_FLOATING)) continue; - 800aa50: bf00 nop + 800a9e4: bf00 nop for(i = 0; i < child_cnt; i++) { - 800aa52: 69fb ldr r3, [r7, #28] - 800aa54: 3301 adds r3, #1 - 800aa56: 61fb str r3, [r7, #28] - 800aa58: 69fa ldr r2, [r7, #28] - 800aa5a: 69bb ldr r3, [r7, #24] - 800aa5c: 429a cmp r2, r3 - 800aa5e: d3b3 bcc.n 800a9c8 + 800a9e6: 69fb ldr r3, [r7, #28] + 800a9e8: 3301 adds r3, #1 + 800a9ea: 61fb str r3, [r7, #28] + 800a9ec: 69fa ldr r2, [r7, #28] + 800a9ee: 69bb ldr r3, [r7, #24] + 800a9f0: 429a cmp r2, r3 + 800a9f2: d3b3 bcc.n 800a95c } } - 800aa60: bf00 nop - 800aa62: bf00 nop - 800aa64: 3720 adds r7, #32 - 800aa66: 46bd mov sp, r7 - 800aa68: bd80 pop {r7, pc} + 800a9f4: bf00 nop + 800a9f6: bf00 nop + 800a9f8: 3720 adds r7, #32 + 800a9fa: 46bd mov sp, r7 + 800a9fc: bd80 pop {r7, pc} -0800aa6a : +0800a9fe : void lv_obj_invalidate_area(const lv_obj_t * obj, const lv_area_t * area) { - 800aa6a: b580 push {r7, lr} - 800aa6c: b086 sub sp, #24 - 800aa6e: af00 add r7, sp, #0 - 800aa70: 6078 str r0, [r7, #4] - 800aa72: 6039 str r1, [r7, #0] + 800a9fe: b580 push {r7, lr} + 800aa00: b086 sub sp, #24 + 800aa02: af00 add r7, sp, #0 + 800aa04: 6078 str r0, [r7, #4] + 800aa06: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_area_t area_tmp; lv_area_copy(&area_tmp, area); - 800aa74: f107 030c add.w r3, r7, #12 - 800aa78: 6839 ldr r1, [r7, #0] - 800aa7a: 4618 mov r0, r3 - 800aa7c: f7fe fa58 bl 8008f30 + 800aa08: f107 030c add.w r3, r7, #12 + 800aa0c: 6839 ldr r1, [r7, #0] + 800aa0e: 4618 mov r0, r3 + 800aa10: f7fe fa58 bl 8008ec4 bool visible = lv_obj_area_is_visible(obj, &area_tmp); - 800aa80: f107 030c add.w r3, r7, #12 - 800aa84: 4619 mov r1, r3 - 800aa86: 6878 ldr r0, [r7, #4] - 800aa88: f000 f862 bl 800ab50 - 800aa8c: 4603 mov r3, r0 - 800aa8e: 75fb strb r3, [r7, #23] + 800aa14: f107 030c add.w r3, r7, #12 + 800aa18: 4619 mov r1, r3 + 800aa1a: 6878 ldr r0, [r7, #4] + 800aa1c: f000 f862 bl 800aae4 + 800aa20: 4603 mov r3, r0 + 800aa22: 75fb strb r3, [r7, #23] if(visible) _lv_inv_area(lv_obj_get_disp(obj), &area_tmp); - 800aa90: 7dfb ldrb r3, [r7, #23] - 800aa92: 2b00 cmp r3, #0 - 800aa94: d009 beq.n 800aaaa - 800aa96: 6878 ldr r0, [r7, #4] - 800aa98: f004 fdfe bl 800f698 - 800aa9c: 4602 mov r2, r0 - 800aa9e: f107 030c add.w r3, r7, #12 - 800aaa2: 4619 mov r1, r3 - 800aaa4: 4610 mov r0, r2 - 800aaa6: f005 f88f bl 800fbc8 <_lv_inv_area> + 800aa24: 7dfb ldrb r3, [r7, #23] + 800aa26: 2b00 cmp r3, #0 + 800aa28: d009 beq.n 800aa3e + 800aa2a: 6878 ldr r0, [r7, #4] + 800aa2c: f004 fdea bl 800f604 + 800aa30: 4602 mov r2, r0 + 800aa32: f107 030c add.w r3, r7, #12 + 800aa36: 4619 mov r1, r3 + 800aa38: 4610 mov r0, r2 + 800aa3a: f005 f87b bl 800fb34 <_lv_inv_area> } - 800aaaa: bf00 nop - 800aaac: 3718 adds r7, #24 - 800aaae: 46bd mov sp, r7 - 800aab0: bd80 pop {r7, pc} + 800aa3e: bf00 nop + 800aa40: 3718 adds r7, #24 + 800aa42: 46bd mov sp, r7 + 800aa44: bd80 pop {r7, pc} -0800aab2 : +0800aa46 : void lv_obj_invalidate(const lv_obj_t * obj) { - 800aab2: b580 push {r7, lr} - 800aab4: b086 sub sp, #24 - 800aab6: af00 add r7, sp, #0 - 800aab8: 6078 str r0, [r7, #4] + 800aa46: b580 push {r7, lr} + 800aa48: b086 sub sp, #24 + 800aa4a: af00 add r7, sp, #0 + 800aa4c: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); /*If the object has overflow visible it can be drawn anywhere on its parent *It needs to be checked recursively*/ while(lv_obj_get_parent(obj) && lv_obj_has_flag(obj, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) { - 800aaba: e003 b.n 800aac4 + 800aa4e: e003 b.n 800aa58 obj = lv_obj_get_parent(obj); - 800aabc: 6878 ldr r0, [r7, #4] - 800aabe: f004 fe25 bl 800f70c - 800aac2: 6078 str r0, [r7, #4] + 800aa50: 6878 ldr r0, [r7, #4] + 800aa52: f004 fe11 bl 800f678 + 800aa56: 6078 str r0, [r7, #4] while(lv_obj_get_parent(obj) && lv_obj_has_flag(obj, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) { - 800aac4: 6878 ldr r0, [r7, #4] - 800aac6: f004 fe21 bl 800f70c - 800aaca: 4603 mov r3, r0 - 800aacc: 2b00 cmp r3, #0 - 800aace: d007 beq.n 800aae0 - 800aad0: f44f 2100 mov.w r1, #524288 ; 0x80000 - 800aad4: 6878 ldr r0, [r7, #4] - 800aad6: f7fb fe54 bl 8006782 - 800aada: 4603 mov r3, r0 - 800aadc: 2b00 cmp r3, #0 - 800aade: d1ed bne.n 800aabc + 800aa58: 6878 ldr r0, [r7, #4] + 800aa5a: f004 fe0d bl 800f678 + 800aa5e: 4603 mov r3, r0 + 800aa60: 2b00 cmp r3, #0 + 800aa62: d007 beq.n 800aa74 + 800aa64: f44f 2100 mov.w r1, #524288 ; 0x80000 + 800aa68: 6878 ldr r0, [r7, #4] + 800aa6a: f7fb fe54 bl 8006716 + 800aa6e: 4603 mov r3, r0 + 800aa70: 2b00 cmp r3, #0 + 800aa72: d1ed bne.n 800aa50 } /*Truncate the area to the object*/ lv_area_t obj_coords; lv_coord_t ext_size = _lv_obj_get_ext_draw_size(obj); - 800aae0: 6878 ldr r0, [r7, #4] - 800aae2: f7fe fa12 bl 8008f0a <_lv_obj_get_ext_draw_size> - 800aae6: 4603 mov r3, r0 - 800aae8: 82fb strh r3, [r7, #22] + 800aa74: 6878 ldr r0, [r7, #4] + 800aa76: f7fe fa12 bl 8008e9e <_lv_obj_get_ext_draw_size> + 800aa7a: 4603 mov r3, r0 + 800aa7c: 82fb strh r3, [r7, #22] lv_area_copy(&obj_coords, &obj->coords); - 800aaea: 687b ldr r3, [r7, #4] - 800aaec: f103 0214 add.w r2, r3, #20 - 800aaf0: f107 030c add.w r3, r7, #12 - 800aaf4: 4611 mov r1, r2 - 800aaf6: 4618 mov r0, r3 - 800aaf8: f7fe fa1a bl 8008f30 + 800aa7e: 687b ldr r3, [r7, #4] + 800aa80: f103 0214 add.w r2, r3, #20 + 800aa84: f107 030c add.w r3, r7, #12 + 800aa88: 4611 mov r1, r2 + 800aa8a: 4618 mov r0, r3 + 800aa8c: f7fe fa1a bl 8008ec4 obj_coords.x1 -= ext_size; - 800aafc: f9b7 300c ldrsh.w r3, [r7, #12] - 800ab00: b29a uxth r2, r3 - 800ab02: 8afb ldrh r3, [r7, #22] - 800ab04: 1ad3 subs r3, r2, r3 - 800ab06: b29b uxth r3, r3 - 800ab08: b21b sxth r3, r3 - 800ab0a: 81bb strh r3, [r7, #12] + 800aa90: f9b7 300c ldrsh.w r3, [r7, #12] + 800aa94: b29a uxth r2, r3 + 800aa96: 8afb ldrh r3, [r7, #22] + 800aa98: 1ad3 subs r3, r2, r3 + 800aa9a: b29b uxth r3, r3 + 800aa9c: b21b sxth r3, r3 + 800aa9e: 81bb strh r3, [r7, #12] obj_coords.y1 -= ext_size; - 800ab0c: f9b7 300e ldrsh.w r3, [r7, #14] - 800ab10: b29a uxth r2, r3 - 800ab12: 8afb ldrh r3, [r7, #22] - 800ab14: 1ad3 subs r3, r2, r3 - 800ab16: b29b uxth r3, r3 - 800ab18: b21b sxth r3, r3 - 800ab1a: 81fb strh r3, [r7, #14] + 800aaa0: f9b7 300e ldrsh.w r3, [r7, #14] + 800aaa4: b29a uxth r2, r3 + 800aaa6: 8afb ldrh r3, [r7, #22] + 800aaa8: 1ad3 subs r3, r2, r3 + 800aaaa: b29b uxth r3, r3 + 800aaac: b21b sxth r3, r3 + 800aaae: 81fb strh r3, [r7, #14] obj_coords.x2 += ext_size; - 800ab1c: f9b7 3010 ldrsh.w r3, [r7, #16] - 800ab20: b29a uxth r2, r3 - 800ab22: 8afb ldrh r3, [r7, #22] - 800ab24: 4413 add r3, r2 - 800ab26: b29b uxth r3, r3 - 800ab28: b21b sxth r3, r3 - 800ab2a: 823b strh r3, [r7, #16] + 800aab0: f9b7 3010 ldrsh.w r3, [r7, #16] + 800aab4: b29a uxth r2, r3 + 800aab6: 8afb ldrh r3, [r7, #22] + 800aab8: 4413 add r3, r2 + 800aaba: b29b uxth r3, r3 + 800aabc: b21b sxth r3, r3 + 800aabe: 823b strh r3, [r7, #16] obj_coords.y2 += ext_size; - 800ab2c: f9b7 3012 ldrsh.w r3, [r7, #18] - 800ab30: b29a uxth r2, r3 - 800ab32: 8afb ldrh r3, [r7, #22] - 800ab34: 4413 add r3, r2 - 800ab36: b29b uxth r3, r3 - 800ab38: b21b sxth r3, r3 - 800ab3a: 827b strh r3, [r7, #18] + 800aac0: f9b7 3012 ldrsh.w r3, [r7, #18] + 800aac4: b29a uxth r2, r3 + 800aac6: 8afb ldrh r3, [r7, #22] + 800aac8: 4413 add r3, r2 + 800aaca: b29b uxth r3, r3 + 800aacc: b21b sxth r3, r3 + 800aace: 827b strh r3, [r7, #18] lv_obj_invalidate_area(obj, &obj_coords); - 800ab3c: f107 030c add.w r3, r7, #12 - 800ab40: 4619 mov r1, r3 - 800ab42: 6878 ldr r0, [r7, #4] - 800ab44: f7ff ff91 bl 800aa6a + 800aad0: f107 030c add.w r3, r7, #12 + 800aad4: 4619 mov r1, r3 + 800aad6: 6878 ldr r0, [r7, #4] + 800aad8: f7ff ff91 bl 800a9fe } - 800ab48: bf00 nop - 800ab4a: 3718 adds r7, #24 - 800ab4c: 46bd mov sp, r7 - 800ab4e: bd80 pop {r7, pc} + 800aadc: bf00 nop + 800aade: 3718 adds r7, #24 + 800aae0: 46bd mov sp, r7 + 800aae2: bd80 pop {r7, pc} -0800ab50 : +0800aae4 : bool lv_obj_area_is_visible(const lv_obj_t * obj, lv_area_t * area) { - 800ab50: b580 push {r7, lr} - 800ab52: b088 sub sp, #32 - 800ab54: af00 add r7, sp, #0 - 800ab56: 6078 str r0, [r7, #4] - 800ab58: 6039 str r1, [r7, #0] + 800aae4: b580 push {r7, lr} + 800aae6: b088 sub sp, #32 + 800aae8: af00 add r7, sp, #0 + 800aaea: 6078 str r0, [r7, #4] + 800aaec: 6039 str r1, [r7, #0] if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return false; - 800ab5a: 2101 movs r1, #1 - 800ab5c: 6878 ldr r0, [r7, #4] - 800ab5e: f7fb fe10 bl 8006782 - 800ab62: 4603 mov r3, r0 - 800ab64: 2b00 cmp r3, #0 - 800ab66: d001 beq.n 800ab6c - 800ab68: 2300 movs r3, #0 - 800ab6a: e09d b.n 800aca8 + 800aaee: 2101 movs r1, #1 + 800aaf0: 6878 ldr r0, [r7, #4] + 800aaf2: f7fb fe10 bl 8006716 + 800aaf6: 4603 mov r3, r0 + 800aaf8: 2b00 cmp r3, #0 + 800aafa: d001 beq.n 800ab00 + 800aafc: 2300 movs r3, #0 + 800aafe: e09d b.n 800ac3c /*Invalidate the object only if it belongs to the current or previous or one of the layers'*/ lv_obj_t * obj_scr = lv_obj_get_screen(obj); - 800ab6c: 6878 ldr r0, [r7, #4] - 800ab6e: f004 fd7f bl 800f670 - 800ab72: 61b8 str r0, [r7, #24] + 800ab00: 6878 ldr r0, [r7, #4] + 800ab02: f004 fd6b bl 800f5dc + 800ab06: 61b8 str r0, [r7, #24] lv_disp_t * disp = lv_obj_get_disp(obj_scr); - 800ab74: 69b8 ldr r0, [r7, #24] - 800ab76: f004 fd8f bl 800f698 - 800ab7a: 6178 str r0, [r7, #20] + 800ab08: 69b8 ldr r0, [r7, #24] + 800ab0a: f004 fd7b bl 800f604 + 800ab0e: 6178 str r0, [r7, #20] if(obj_scr != lv_disp_get_scr_act(disp) && - 800ab7c: 6978 ldr r0, [r7, #20] - 800ab7e: f7f7 fc1b bl 80023b8 - 800ab82: 4602 mov r2, r0 - 800ab84: 69bb ldr r3, [r7, #24] - 800ab86: 4293 cmp r3, r2 - 800ab88: d016 beq.n 800abb8 + 800ab10: 6978 ldr r0, [r7, #20] + 800ab12: f7f7 fbdd bl 80022d0 + 800ab16: 4602 mov r2, r0 + 800ab18: 69bb ldr r3, [r7, #24] + 800ab1a: 4293 cmp r3, r2 + 800ab1c: d016 beq.n 800ab4c obj_scr != lv_disp_get_scr_prev(disp) && - 800ab8a: 6978 ldr r0, [r7, #20] - 800ab8c: f7f7 fc29 bl 80023e2 - 800ab90: 4602 mov r2, r0 + 800ab1e: 6978 ldr r0, [r7, #20] + 800ab20: f7f7 fbeb bl 80022fa + 800ab24: 4602 mov r2, r0 if(obj_scr != lv_disp_get_scr_act(disp) && - 800ab92: 69bb ldr r3, [r7, #24] - 800ab94: 4293 cmp r3, r2 - 800ab96: d00f beq.n 800abb8 + 800ab26: 69bb ldr r3, [r7, #24] + 800ab28: 4293 cmp r3, r2 + 800ab2a: d00f beq.n 800ab4c obj_scr != lv_disp_get_layer_top(disp) && - 800ab98: 6978 ldr r0, [r7, #20] - 800ab9a: f7f7 fc37 bl 800240c - 800ab9e: 4602 mov r2, r0 + 800ab2c: 6978 ldr r0, [r7, #20] + 800ab2e: f7f7 fc36 bl 800239e + 800ab32: 4602 mov r2, r0 obj_scr != lv_disp_get_scr_prev(disp) && - 800aba0: 69bb ldr r3, [r7, #24] - 800aba2: 4293 cmp r3, r2 - 800aba4: d008 beq.n 800abb8 + 800ab34: 69bb ldr r3, [r7, #24] + 800ab36: 4293 cmp r3, r2 + 800ab38: d008 beq.n 800ab4c obj_scr != lv_disp_get_layer_sys(disp)) { - 800aba6: 6978 ldr r0, [r7, #20] - 800aba8: f7f7 fc45 bl 8002436 - 800abac: 4602 mov r2, r0 + 800ab3a: 6978 ldr r0, [r7, #20] + 800ab3c: f7f7 fc44 bl 80023c8 + 800ab40: 4602 mov r2, r0 obj_scr != lv_disp_get_layer_top(disp) && - 800abae: 69bb ldr r3, [r7, #24] - 800abb0: 4293 cmp r3, r2 - 800abb2: d001 beq.n 800abb8 + 800ab42: 69bb ldr r3, [r7, #24] + 800ab44: 4293 cmp r3, r2 + 800ab46: d001 beq.n 800ab4c return false; - 800abb4: 2300 movs r3, #0 - 800abb6: e077 b.n 800aca8 + 800ab48: 2300 movs r3, #0 + 800ab4a: e077 b.n 800ac3c } /*Truncate the area to the object*/ if(!lv_obj_has_flag(obj, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) { - 800abb8: f44f 2100 mov.w r1, #524288 ; 0x80000 - 800abbc: 6878 ldr r0, [r7, #4] - 800abbe: f7fb fde0 bl 8006782 - 800abc2: 4603 mov r3, r0 - 800abc4: f083 0301 eor.w r3, r3, #1 - 800abc8: b2db uxtb r3, r3 - 800abca: 2b00 cmp r3, #0 - 800abcc: d03c beq.n 800ac48 + 800ab4c: f44f 2100 mov.w r1, #524288 ; 0x80000 + 800ab50: 6878 ldr r0, [r7, #4] + 800ab52: f7fb fde0 bl 8006716 + 800ab56: 4603 mov r3, r0 + 800ab58: f083 0301 eor.w r3, r3, #1 + 800ab5c: b2db uxtb r3, r3 + 800ab5e: 2b00 cmp r3, #0 + 800ab60: d03c beq.n 800abdc lv_area_t obj_coords; lv_coord_t ext_size = _lv_obj_get_ext_draw_size(obj); - 800abce: 6878 ldr r0, [r7, #4] - 800abd0: f7fe f99b bl 8008f0a <_lv_obj_get_ext_draw_size> - 800abd4: 4603 mov r3, r0 - 800abd6: 827b strh r3, [r7, #18] + 800ab62: 6878 ldr r0, [r7, #4] + 800ab64: f7fe f99b bl 8008e9e <_lv_obj_get_ext_draw_size> + 800ab68: 4603 mov r3, r0 + 800ab6a: 827b strh r3, [r7, #18] lv_area_copy(&obj_coords, &obj->coords); - 800abd8: 687b ldr r3, [r7, #4] - 800abda: f103 0214 add.w r2, r3, #20 - 800abde: f107 0308 add.w r3, r7, #8 - 800abe2: 4611 mov r1, r2 - 800abe4: 4618 mov r0, r3 - 800abe6: f7fe f9a3 bl 8008f30 + 800ab6c: 687b ldr r3, [r7, #4] + 800ab6e: f103 0214 add.w r2, r3, #20 + 800ab72: f107 0308 add.w r3, r7, #8 + 800ab76: 4611 mov r1, r2 + 800ab78: 4618 mov r0, r3 + 800ab7a: f7fe f9a3 bl 8008ec4 obj_coords.x1 -= ext_size; - 800abea: f9b7 3008 ldrsh.w r3, [r7, #8] - 800abee: b29a uxth r2, r3 - 800abf0: 8a7b ldrh r3, [r7, #18] - 800abf2: 1ad3 subs r3, r2, r3 - 800abf4: b29b uxth r3, r3 - 800abf6: b21b sxth r3, r3 - 800abf8: 813b strh r3, [r7, #8] + 800ab7e: f9b7 3008 ldrsh.w r3, [r7, #8] + 800ab82: b29a uxth r2, r3 + 800ab84: 8a7b ldrh r3, [r7, #18] + 800ab86: 1ad3 subs r3, r2, r3 + 800ab88: b29b uxth r3, r3 + 800ab8a: b21b sxth r3, r3 + 800ab8c: 813b strh r3, [r7, #8] obj_coords.y1 -= ext_size; - 800abfa: f9b7 300a ldrsh.w r3, [r7, #10] - 800abfe: b29a uxth r2, r3 - 800ac00: 8a7b ldrh r3, [r7, #18] - 800ac02: 1ad3 subs r3, r2, r3 - 800ac04: b29b uxth r3, r3 - 800ac06: b21b sxth r3, r3 - 800ac08: 817b strh r3, [r7, #10] + 800ab8e: f9b7 300a ldrsh.w r3, [r7, #10] + 800ab92: b29a uxth r2, r3 + 800ab94: 8a7b ldrh r3, [r7, #18] + 800ab96: 1ad3 subs r3, r2, r3 + 800ab98: b29b uxth r3, r3 + 800ab9a: b21b sxth r3, r3 + 800ab9c: 817b strh r3, [r7, #10] obj_coords.x2 += ext_size; - 800ac0a: f9b7 300c ldrsh.w r3, [r7, #12] - 800ac0e: b29a uxth r2, r3 - 800ac10: 8a7b ldrh r3, [r7, #18] - 800ac12: 4413 add r3, r2 - 800ac14: b29b uxth r3, r3 - 800ac16: b21b sxth r3, r3 - 800ac18: 81bb strh r3, [r7, #12] + 800ab9e: f9b7 300c ldrsh.w r3, [r7, #12] + 800aba2: b29a uxth r2, r3 + 800aba4: 8a7b ldrh r3, [r7, #18] + 800aba6: 4413 add r3, r2 + 800aba8: b29b uxth r3, r3 + 800abaa: b21b sxth r3, r3 + 800abac: 81bb strh r3, [r7, #12] obj_coords.y2 += ext_size; - 800ac1a: f9b7 300e ldrsh.w r3, [r7, #14] - 800ac1e: b29a uxth r2, r3 - 800ac20: 8a7b ldrh r3, [r7, #18] - 800ac22: 4413 add r3, r2 - 800ac24: b29b uxth r3, r3 - 800ac26: b21b sxth r3, r3 - 800ac28: 81fb strh r3, [r7, #14] + 800abae: f9b7 300e ldrsh.w r3, [r7, #14] + 800abb2: b29a uxth r2, r3 + 800abb4: 8a7b ldrh r3, [r7, #18] + 800abb6: 4413 add r3, r2 + 800abb8: b29b uxth r3, r3 + 800abba: b21b sxth r3, r3 + 800abbc: 81fb strh r3, [r7, #14] /*The area is not on the object*/ if(!_lv_area_intersect(area, area, &obj_coords)) return false; - 800ac2a: f107 0308 add.w r3, r7, #8 - 800ac2e: 461a mov r2, r3 - 800ac30: 6839 ldr r1, [r7, #0] - 800ac32: 6838 ldr r0, [r7, #0] - 800ac34: f026 fa38 bl 80310a8 <_lv_area_intersect> - 800ac38: 4603 mov r3, r0 - 800ac3a: f083 0301 eor.w r3, r3, #1 - 800ac3e: b2db uxtb r3, r3 - 800ac40: 2b00 cmp r3, #0 - 800ac42: d001 beq.n 800ac48 - 800ac44: 2300 movs r3, #0 - 800ac46: e02f b.n 800aca8 + 800abbe: f107 0308 add.w r3, r7, #8 + 800abc2: 461a mov r2, r3 + 800abc4: 6839 ldr r1, [r7, #0] + 800abc6: 6838 ldr r0, [r7, #0] + 800abc8: f026 fa24 bl 8031014 <_lv_area_intersect> + 800abcc: 4603 mov r3, r0 + 800abce: f083 0301 eor.w r3, r3, #1 + 800abd2: b2db uxtb r3, r3 + 800abd4: 2b00 cmp r3, #0 + 800abd6: d001 beq.n 800abdc + 800abd8: 2300 movs r3, #0 + 800abda: e02f b.n 800ac3c } /*Truncate recursively to the parents*/ lv_obj_t * par = lv_obj_get_parent(obj); - 800ac48: 6878 ldr r0, [r7, #4] - 800ac4a: f004 fd5f bl 800f70c - 800ac4e: 61f8 str r0, [r7, #28] + 800abdc: 6878 ldr r0, [r7, #4] + 800abde: f004 fd4b bl 800f678 + 800abe2: 61f8 str r0, [r7, #28] while(par != NULL) { - 800ac50: e026 b.n 800aca0 + 800abe4: e026 b.n 800ac34 /*If the parent is hidden then the child is hidden and won't be drawn*/ if(lv_obj_has_flag(par, LV_OBJ_FLAG_HIDDEN)) return false; - 800ac52: 2101 movs r1, #1 - 800ac54: 69f8 ldr r0, [r7, #28] - 800ac56: f7fb fd94 bl 8006782 - 800ac5a: 4603 mov r3, r0 - 800ac5c: 2b00 cmp r3, #0 - 800ac5e: d001 beq.n 800ac64 - 800ac60: 2300 movs r3, #0 - 800ac62: e021 b.n 800aca8 + 800abe6: 2101 movs r1, #1 + 800abe8: 69f8 ldr r0, [r7, #28] + 800abea: f7fb fd94 bl 8006716 + 800abee: 4603 mov r3, r0 + 800abf0: 2b00 cmp r3, #0 + 800abf2: d001 beq.n 800abf8 + 800abf4: 2300 movs r3, #0 + 800abf6: e021 b.n 800ac3c /*Truncate to the parent and if no common parts break*/ if(!lv_obj_has_flag(par, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) { - 800ac64: f44f 2100 mov.w r1, #524288 ; 0x80000 - 800ac68: 69f8 ldr r0, [r7, #28] - 800ac6a: f7fb fd8a bl 8006782 - 800ac6e: 4603 mov r3, r0 - 800ac70: f083 0301 eor.w r3, r3, #1 - 800ac74: b2db uxtb r3, r3 - 800ac76: 2b00 cmp r3, #0 - 800ac78: d00e beq.n 800ac98 + 800abf8: f44f 2100 mov.w r1, #524288 ; 0x80000 + 800abfc: 69f8 ldr r0, [r7, #28] + 800abfe: f7fb fd8a bl 8006716 + 800ac02: 4603 mov r3, r0 + 800ac04: f083 0301 eor.w r3, r3, #1 + 800ac08: b2db uxtb r3, r3 + 800ac0a: 2b00 cmp r3, #0 + 800ac0c: d00e beq.n 800ac2c if(!_lv_area_intersect(area, area, &par->coords)) return false; - 800ac7a: 69fb ldr r3, [r7, #28] - 800ac7c: 3314 adds r3, #20 - 800ac7e: 461a mov r2, r3 - 800ac80: 6839 ldr r1, [r7, #0] - 800ac82: 6838 ldr r0, [r7, #0] - 800ac84: f026 fa10 bl 80310a8 <_lv_area_intersect> - 800ac88: 4603 mov r3, r0 - 800ac8a: f083 0301 eor.w r3, r3, #1 - 800ac8e: b2db uxtb r3, r3 - 800ac90: 2b00 cmp r3, #0 - 800ac92: d001 beq.n 800ac98 - 800ac94: 2300 movs r3, #0 - 800ac96: e007 b.n 800aca8 + 800ac0e: 69fb ldr r3, [r7, #28] + 800ac10: 3314 adds r3, #20 + 800ac12: 461a mov r2, r3 + 800ac14: 6839 ldr r1, [r7, #0] + 800ac16: 6838 ldr r0, [r7, #0] + 800ac18: f026 f9fc bl 8031014 <_lv_area_intersect> + 800ac1c: 4603 mov r3, r0 + 800ac1e: f083 0301 eor.w r3, r3, #1 + 800ac22: b2db uxtb r3, r3 + 800ac24: 2b00 cmp r3, #0 + 800ac26: d001 beq.n 800ac2c + 800ac28: 2300 movs r3, #0 + 800ac2a: e007 b.n 800ac3c } par = lv_obj_get_parent(par); - 800ac98: 69f8 ldr r0, [r7, #28] - 800ac9a: f004 fd37 bl 800f70c - 800ac9e: 61f8 str r0, [r7, #28] + 800ac2c: 69f8 ldr r0, [r7, #28] + 800ac2e: f004 fd23 bl 800f678 + 800ac32: 61f8 str r0, [r7, #28] while(par != NULL) { - 800aca0: 69fb ldr r3, [r7, #28] - 800aca2: 2b00 cmp r3, #0 - 800aca4: d1d5 bne.n 800ac52 + 800ac34: 69fb ldr r3, [r7, #28] + 800ac36: 2b00 cmp r3, #0 + 800ac38: d1d5 bne.n 800abe6 } return true; - 800aca6: 2301 movs r3, #1 + 800ac3a: 2301 movs r3, #1 } - 800aca8: 4618 mov r0, r3 - 800acaa: 3720 adds r7, #32 - 800acac: 46bd mov sp, r7 - 800acae: bd80 pop {r7, pc} + 800ac3c: 4618 mov r0, r3 + 800ac3e: 3720 adds r7, #32 + 800ac40: 46bd mov sp, r7 + 800ac42: bd80 pop {r7, pc} -0800acb0 : +0800ac44 : bool lv_obj_is_visible(const lv_obj_t * obj) { - 800acb0: b580 push {r7, lr} - 800acb2: b086 sub sp, #24 - 800acb4: af00 add r7, sp, #0 - 800acb6: 6078 str r0, [r7, #4] + 800ac44: b580 push {r7, lr} + 800ac46: b086 sub sp, #24 + 800ac48: af00 add r7, sp, #0 + 800ac4a: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_area_t obj_coords; lv_coord_t ext_size = _lv_obj_get_ext_draw_size(obj); - 800acb8: 6878 ldr r0, [r7, #4] - 800acba: f7fe f926 bl 8008f0a <_lv_obj_get_ext_draw_size> - 800acbe: 4603 mov r3, r0 - 800acc0: 82fb strh r3, [r7, #22] + 800ac4c: 6878 ldr r0, [r7, #4] + 800ac4e: f7fe f926 bl 8008e9e <_lv_obj_get_ext_draw_size> + 800ac52: 4603 mov r3, r0 + 800ac54: 82fb strh r3, [r7, #22] lv_area_copy(&obj_coords, &obj->coords); - 800acc2: 687b ldr r3, [r7, #4] - 800acc4: f103 0214 add.w r2, r3, #20 - 800acc8: f107 030c add.w r3, r7, #12 - 800accc: 4611 mov r1, r2 - 800acce: 4618 mov r0, r3 - 800acd0: f7fe f92e bl 8008f30 + 800ac56: 687b ldr r3, [r7, #4] + 800ac58: f103 0214 add.w r2, r3, #20 + 800ac5c: f107 030c add.w r3, r7, #12 + 800ac60: 4611 mov r1, r2 + 800ac62: 4618 mov r0, r3 + 800ac64: f7fe f92e bl 8008ec4 obj_coords.x1 -= ext_size; - 800acd4: f9b7 300c ldrsh.w r3, [r7, #12] - 800acd8: b29a uxth r2, r3 - 800acda: 8afb ldrh r3, [r7, #22] - 800acdc: 1ad3 subs r3, r2, r3 - 800acde: b29b uxth r3, r3 - 800ace0: b21b sxth r3, r3 - 800ace2: 81bb strh r3, [r7, #12] + 800ac68: f9b7 300c ldrsh.w r3, [r7, #12] + 800ac6c: b29a uxth r2, r3 + 800ac6e: 8afb ldrh r3, [r7, #22] + 800ac70: 1ad3 subs r3, r2, r3 + 800ac72: b29b uxth r3, r3 + 800ac74: b21b sxth r3, r3 + 800ac76: 81bb strh r3, [r7, #12] obj_coords.y1 -= ext_size; - 800ace4: f9b7 300e ldrsh.w r3, [r7, #14] - 800ace8: b29a uxth r2, r3 - 800acea: 8afb ldrh r3, [r7, #22] - 800acec: 1ad3 subs r3, r2, r3 - 800acee: b29b uxth r3, r3 - 800acf0: b21b sxth r3, r3 - 800acf2: 81fb strh r3, [r7, #14] + 800ac78: f9b7 300e ldrsh.w r3, [r7, #14] + 800ac7c: b29a uxth r2, r3 + 800ac7e: 8afb ldrh r3, [r7, #22] + 800ac80: 1ad3 subs r3, r2, r3 + 800ac82: b29b uxth r3, r3 + 800ac84: b21b sxth r3, r3 + 800ac86: 81fb strh r3, [r7, #14] obj_coords.x2 += ext_size; - 800acf4: f9b7 3010 ldrsh.w r3, [r7, #16] - 800acf8: b29a uxth r2, r3 - 800acfa: 8afb ldrh r3, [r7, #22] - 800acfc: 4413 add r3, r2 - 800acfe: b29b uxth r3, r3 - 800ad00: b21b sxth r3, r3 - 800ad02: 823b strh r3, [r7, #16] + 800ac88: f9b7 3010 ldrsh.w r3, [r7, #16] + 800ac8c: b29a uxth r2, r3 + 800ac8e: 8afb ldrh r3, [r7, #22] + 800ac90: 4413 add r3, r2 + 800ac92: b29b uxth r3, r3 + 800ac94: b21b sxth r3, r3 + 800ac96: 823b strh r3, [r7, #16] obj_coords.y2 += ext_size; - 800ad04: f9b7 3012 ldrsh.w r3, [r7, #18] - 800ad08: b29a uxth r2, r3 - 800ad0a: 8afb ldrh r3, [r7, #22] - 800ad0c: 4413 add r3, r2 - 800ad0e: b29b uxth r3, r3 - 800ad10: b21b sxth r3, r3 - 800ad12: 827b strh r3, [r7, #18] + 800ac98: f9b7 3012 ldrsh.w r3, [r7, #18] + 800ac9c: b29a uxth r2, r3 + 800ac9e: 8afb ldrh r3, [r7, #22] + 800aca0: 4413 add r3, r2 + 800aca2: b29b uxth r3, r3 + 800aca4: b21b sxth r3, r3 + 800aca6: 827b strh r3, [r7, #18] return lv_obj_area_is_visible(obj, &obj_coords); - 800ad14: f107 030c add.w r3, r7, #12 - 800ad18: 4619 mov r1, r3 - 800ad1a: 6878 ldr r0, [r7, #4] - 800ad1c: f7ff ff18 bl 800ab50 - 800ad20: 4603 mov r3, r0 + 800aca8: f107 030c add.w r3, r7, #12 + 800acac: 4619 mov r1, r3 + 800acae: 6878 ldr r0, [r7, #4] + 800acb0: f7ff ff18 bl 800aae4 + 800acb4: 4603 mov r3, r0 } - 800ad22: 4618 mov r0, r3 - 800ad24: 3718 adds r7, #24 - 800ad26: 46bd mov sp, r7 - 800ad28: bd80 pop {r7, pc} + 800acb6: 4618 mov r0, r3 + 800acb8: 3718 adds r7, #24 + 800acba: 46bd mov sp, r7 + 800acbc: bd80 pop {r7, pc} -0800ad2a : +0800acbe : void lv_obj_set_ext_click_area(lv_obj_t * obj, lv_coord_t size) { - 800ad2a: b580 push {r7, lr} - 800ad2c: b082 sub sp, #8 - 800ad2e: af00 add r7, sp, #0 - 800ad30: 6078 str r0, [r7, #4] - 800ad32: 460b mov r3, r1 - 800ad34: 807b strh r3, [r7, #2] + 800acbe: b580 push {r7, lr} + 800acc0: b082 sub sp, #8 + 800acc2: af00 add r7, sp, #0 + 800acc4: 6078 str r0, [r7, #4] + 800acc6: 460b mov r3, r1 + 800acc8: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_obj_allocate_spec_attr(obj); - 800ad36: 6878 ldr r0, [r7, #4] - 800ad38: f7fb fd7c bl 8006834 + 800acca: 6878 ldr r0, [r7, #4] + 800accc: f7fb fd7c bl 80067c8 obj->spec_attr->ext_click_pad = size; - 800ad3c: 687b ldr r3, [r7, #4] - 800ad3e: 689b ldr r3, [r3, #8] - 800ad40: 887a ldrh r2, [r7, #2] - 800ad42: 829a strh r2, [r3, #20] + 800acd0: 687b ldr r3, [r7, #4] + 800acd2: 689b ldr r3, [r3, #8] + 800acd4: 887a ldrh r2, [r7, #2] + 800acd6: 829a strh r2, [r3, #20] } - 800ad44: bf00 nop - 800ad46: 3708 adds r7, #8 - 800ad48: 46bd mov sp, r7 - 800ad4a: bd80 pop {r7, pc} + 800acd8: bf00 nop + 800acda: 3708 adds r7, #8 + 800acdc: 46bd mov sp, r7 + 800acde: bd80 pop {r7, pc} -0800ad4c : +0800ace0 : void lv_obj_get_click_area(const lv_obj_t * obj, lv_area_t * area) { - 800ad4c: b580 push {r7, lr} - 800ad4e: b082 sub sp, #8 - 800ad50: af00 add r7, sp, #0 - 800ad52: 6078 str r0, [r7, #4] - 800ad54: 6039 str r1, [r7, #0] + 800ace0: b580 push {r7, lr} + 800ace2: b082 sub sp, #8 + 800ace4: af00 add r7, sp, #0 + 800ace6: 6078 str r0, [r7, #4] + 800ace8: 6039 str r1, [r7, #0] lv_area_copy(area, &obj->coords); - 800ad56: 687b ldr r3, [r7, #4] - 800ad58: 3314 adds r3, #20 - 800ad5a: 4619 mov r1, r3 - 800ad5c: 6838 ldr r0, [r7, #0] - 800ad5e: f7fe f8e7 bl 8008f30 + 800acea: 687b ldr r3, [r7, #4] + 800acec: 3314 adds r3, #20 + 800acee: 4619 mov r1, r3 + 800acf0: 6838 ldr r0, [r7, #0] + 800acf2: f7fe f8e7 bl 8008ec4 if(obj->spec_attr) { - 800ad62: 687b ldr r3, [r7, #4] - 800ad64: 689b ldr r3, [r3, #8] - 800ad66: 2b00 cmp r3, #0 - 800ad68: d037 beq.n 800adda + 800acf6: 687b ldr r3, [r7, #4] + 800acf8: 689b ldr r3, [r3, #8] + 800acfa: 2b00 cmp r3, #0 + 800acfc: d037 beq.n 800ad6e area->x1 -= obj->spec_attr->ext_click_pad; - 800ad6a: 683b ldr r3, [r7, #0] - 800ad6c: f9b3 3000 ldrsh.w r3, [r3] - 800ad70: b29a uxth r2, r3 - 800ad72: 687b ldr r3, [r7, #4] - 800ad74: 689b ldr r3, [r3, #8] - 800ad76: f9b3 3014 ldrsh.w r3, [r3, #20] - 800ad7a: b29b uxth r3, r3 - 800ad7c: 1ad3 subs r3, r2, r3 - 800ad7e: b29b uxth r3, r3 - 800ad80: b21a sxth r2, r3 - 800ad82: 683b ldr r3, [r7, #0] - 800ad84: 801a strh r2, [r3, #0] + 800acfe: 683b ldr r3, [r7, #0] + 800ad00: f9b3 3000 ldrsh.w r3, [r3] + 800ad04: b29a uxth r2, r3 + 800ad06: 687b ldr r3, [r7, #4] + 800ad08: 689b ldr r3, [r3, #8] + 800ad0a: f9b3 3014 ldrsh.w r3, [r3, #20] + 800ad0e: b29b uxth r3, r3 + 800ad10: 1ad3 subs r3, r2, r3 + 800ad12: b29b uxth r3, r3 + 800ad14: b21a sxth r2, r3 + 800ad16: 683b ldr r3, [r7, #0] + 800ad18: 801a strh r2, [r3, #0] area->x2 += obj->spec_attr->ext_click_pad; - 800ad86: 683b ldr r3, [r7, #0] - 800ad88: f9b3 3004 ldrsh.w r3, [r3, #4] - 800ad8c: b29a uxth r2, r3 - 800ad8e: 687b ldr r3, [r7, #4] - 800ad90: 689b ldr r3, [r3, #8] - 800ad92: f9b3 3014 ldrsh.w r3, [r3, #20] - 800ad96: b29b uxth r3, r3 - 800ad98: 4413 add r3, r2 - 800ad9a: b29b uxth r3, r3 - 800ad9c: b21a sxth r2, r3 - 800ad9e: 683b ldr r3, [r7, #0] - 800ada0: 809a strh r2, [r3, #4] + 800ad1a: 683b ldr r3, [r7, #0] + 800ad1c: f9b3 3004 ldrsh.w r3, [r3, #4] + 800ad20: b29a uxth r2, r3 + 800ad22: 687b ldr r3, [r7, #4] + 800ad24: 689b ldr r3, [r3, #8] + 800ad26: f9b3 3014 ldrsh.w r3, [r3, #20] + 800ad2a: b29b uxth r3, r3 + 800ad2c: 4413 add r3, r2 + 800ad2e: b29b uxth r3, r3 + 800ad30: b21a sxth r2, r3 + 800ad32: 683b ldr r3, [r7, #0] + 800ad34: 809a strh r2, [r3, #4] area->y1 -= obj->spec_attr->ext_click_pad; - 800ada2: 683b ldr r3, [r7, #0] - 800ada4: f9b3 3002 ldrsh.w r3, [r3, #2] - 800ada8: b29a uxth r2, r3 - 800adaa: 687b ldr r3, [r7, #4] - 800adac: 689b ldr r3, [r3, #8] - 800adae: f9b3 3014 ldrsh.w r3, [r3, #20] - 800adb2: b29b uxth r3, r3 - 800adb4: 1ad3 subs r3, r2, r3 - 800adb6: b29b uxth r3, r3 - 800adb8: b21a sxth r2, r3 - 800adba: 683b ldr r3, [r7, #0] - 800adbc: 805a strh r2, [r3, #2] + 800ad36: 683b ldr r3, [r7, #0] + 800ad38: f9b3 3002 ldrsh.w r3, [r3, #2] + 800ad3c: b29a uxth r2, r3 + 800ad3e: 687b ldr r3, [r7, #4] + 800ad40: 689b ldr r3, [r3, #8] + 800ad42: f9b3 3014 ldrsh.w r3, [r3, #20] + 800ad46: b29b uxth r3, r3 + 800ad48: 1ad3 subs r3, r2, r3 + 800ad4a: b29b uxth r3, r3 + 800ad4c: b21a sxth r2, r3 + 800ad4e: 683b ldr r3, [r7, #0] + 800ad50: 805a strh r2, [r3, #2] area->y2 += obj->spec_attr->ext_click_pad; - 800adbe: 683b ldr r3, [r7, #0] - 800adc0: f9b3 3006 ldrsh.w r3, [r3, #6] - 800adc4: b29a uxth r2, r3 - 800adc6: 687b ldr r3, [r7, #4] - 800adc8: 689b ldr r3, [r3, #8] - 800adca: f9b3 3014 ldrsh.w r3, [r3, #20] - 800adce: b29b uxth r3, r3 - 800add0: 4413 add r3, r2 - 800add2: b29b uxth r3, r3 - 800add4: b21a sxth r2, r3 - 800add6: 683b ldr r3, [r7, #0] - 800add8: 80da strh r2, [r3, #6] + 800ad52: 683b ldr r3, [r7, #0] + 800ad54: f9b3 3006 ldrsh.w r3, [r3, #6] + 800ad58: b29a uxth r2, r3 + 800ad5a: 687b ldr r3, [r7, #4] + 800ad5c: 689b ldr r3, [r3, #8] + 800ad5e: f9b3 3014 ldrsh.w r3, [r3, #20] + 800ad62: b29b uxth r3, r3 + 800ad64: 4413 add r3, r2 + 800ad66: b29b uxth r3, r3 + 800ad68: b21a sxth r2, r3 + 800ad6a: 683b ldr r3, [r7, #0] + 800ad6c: 80da strh r2, [r3, #6] } } - 800adda: bf00 nop - 800addc: 3708 adds r7, #8 - 800adde: 46bd mov sp, r7 - 800ade0: bd80 pop {r7, pc} + 800ad6e: bf00 nop + 800ad70: 3708 adds r7, #8 + 800ad72: 46bd mov sp, r7 + 800ad74: bd80 pop {r7, pc} -0800ade2 : +0800ad76 : bool lv_obj_hit_test(lv_obj_t * obj, const lv_point_t * point) { - 800ade2: b580 push {r7, lr} - 800ade4: b088 sub sp, #32 - 800ade6: af00 add r7, sp, #0 - 800ade8: 6078 str r0, [r7, #4] - 800adea: 6039 str r1, [r7, #0] + 800ad76: b580 push {r7, lr} + 800ad78: b088 sub sp, #32 + 800ad7a: af00 add r7, sp, #0 + 800ad7c: 6078 str r0, [r7, #4] + 800ad7e: 6039 str r1, [r7, #0] if(!lv_obj_has_flag(obj, LV_OBJ_FLAG_CLICKABLE)) return false; - 800adec: 2102 movs r1, #2 - 800adee: 6878 ldr r0, [r7, #4] - 800adf0: f7fb fcc7 bl 8006782 - 800adf4: 4603 mov r3, r0 - 800adf6: f083 0301 eor.w r3, r3, #1 - 800adfa: b2db uxtb r3, r3 - 800adfc: 2b00 cmp r3, #0 - 800adfe: d001 beq.n 800ae04 - 800ae00: 2300 movs r3, #0 - 800ae02: e035 b.n 800ae70 + 800ad80: 2102 movs r1, #2 + 800ad82: 6878 ldr r0, [r7, #4] + 800ad84: f7fb fcc7 bl 8006716 + 800ad88: 4603 mov r3, r0 + 800ad8a: f083 0301 eor.w r3, r3, #1 + 800ad8e: b2db uxtb r3, r3 + 800ad90: 2b00 cmp r3, #0 + 800ad92: d001 beq.n 800ad98 + 800ad94: 2300 movs r3, #0 + 800ad96: e035 b.n 800ae04 if(lv_obj_has_state(obj, LV_STATE_DISABLED)) return false; - 800ae04: 2180 movs r1, #128 ; 0x80 - 800ae06: 6878 ldr r0, [r7, #4] - 800ae08: f7fb fced bl 80067e6 - 800ae0c: 4603 mov r3, r0 - 800ae0e: 2b00 cmp r3, #0 - 800ae10: d001 beq.n 800ae16 - 800ae12: 2300 movs r3, #0 - 800ae14: e02c b.n 800ae70 + 800ad98: 2180 movs r1, #128 ; 0x80 + 800ad9a: 6878 ldr r0, [r7, #4] + 800ad9c: f7fb fced bl 800677a + 800ada0: 4603 mov r3, r0 + 800ada2: 2b00 cmp r3, #0 + 800ada4: d001 beq.n 800adaa + 800ada6: 2300 movs r3, #0 + 800ada8: e02c b.n 800ae04 lv_area_t a; lv_obj_get_click_area(obj, &a); - 800ae16: f107 0314 add.w r3, r7, #20 - 800ae1a: 4619 mov r1, r3 - 800ae1c: 6878 ldr r0, [r7, #4] - 800ae1e: f7ff ff95 bl 800ad4c + 800adaa: f107 0314 add.w r3, r7, #20 + 800adae: 4619 mov r1, r3 + 800adb0: 6878 ldr r0, [r7, #4] + 800adb2: f7ff ff95 bl 800ace0 bool res = _lv_area_is_point_on(&a, point, 0); - 800ae22: f107 0314 add.w r3, r7, #20 - 800ae26: 2200 movs r2, #0 - 800ae28: 6839 ldr r1, [r7, #0] - 800ae2a: 4618 mov r0, r3 - 800ae2c: f026 f9c7 bl 80311be <_lv_area_is_point_on> - 800ae30: 4603 mov r3, r0 - 800ae32: 77fb strb r3, [r7, #31] + 800adb6: f107 0314 add.w r3, r7, #20 + 800adba: 2200 movs r2, #0 + 800adbc: 6839 ldr r1, [r7, #0] + 800adbe: 4618 mov r0, r3 + 800adc0: f026 f9b3 bl 803112a <_lv_area_is_point_on> + 800adc4: 4603 mov r3, r0 + 800adc6: 77fb strb r3, [r7, #31] if(res == false) return false; - 800ae34: 7ffb ldrb r3, [r7, #31] - 800ae36: f083 0301 eor.w r3, r3, #1 - 800ae3a: b2db uxtb r3, r3 - 800ae3c: 2b00 cmp r3, #0 - 800ae3e: d001 beq.n 800ae44 - 800ae40: 2300 movs r3, #0 - 800ae42: e015 b.n 800ae70 + 800adc8: 7ffb ldrb r3, [r7, #31] + 800adca: f083 0301 eor.w r3, r3, #1 + 800adce: b2db uxtb r3, r3 + 800add0: 2b00 cmp r3, #0 + 800add2: d001 beq.n 800add8 + 800add4: 2300 movs r3, #0 + 800add6: e015 b.n 800ae04 if(lv_obj_has_flag(obj, LV_OBJ_FLAG_ADV_HITTEST)) { - 800ae44: f44f 3180 mov.w r1, #65536 ; 0x10000 - 800ae48: 6878 ldr r0, [r7, #4] - 800ae4a: f7fb fc9a bl 8006782 - 800ae4e: 4603 mov r3, r0 - 800ae50: 2b00 cmp r3, #0 - 800ae52: d00c beq.n 800ae6e + 800add8: f44f 3180 mov.w r1, #65536 ; 0x10000 + 800addc: 6878 ldr r0, [r7, #4] + 800adde: f7fb fc9a bl 8006716 + 800ade2: 4603 mov r3, r0 + 800ade4: 2b00 cmp r3, #0 + 800ade6: d00c beq.n 800ae02 lv_hit_test_info_t hit_info; hit_info.point = point; - 800ae54: 683b ldr r3, [r7, #0] - 800ae56: 60fb str r3, [r7, #12] + 800ade8: 683b ldr r3, [r7, #0] + 800adea: 60fb str r3, [r7, #12] hit_info.res = true; - 800ae58: 2301 movs r3, #1 - 800ae5a: 743b strb r3, [r7, #16] + 800adec: 2301 movs r3, #1 + 800adee: 743b strb r3, [r7, #16] lv_event_send(obj, LV_EVENT_HIT_TEST, &hit_info); - 800ae5c: f107 030c add.w r3, r7, #12 - 800ae60: 461a mov r2, r3 - 800ae62: 2111 movs r1, #17 - 800ae64: 6878 ldr r0, [r7, #4] - 800ae66: f7f7 fb0b bl 8002480 + 800adf0: f107 030c add.w r3, r7, #12 + 800adf4: 461a mov r2, r3 + 800adf6: 2111 movs r1, #17 + 800adf8: 6878 ldr r0, [r7, #4] + 800adfa: f7f7 fb0b bl 8002414 return hit_info.res; - 800ae6a: 7c3b ldrb r3, [r7, #16] - 800ae6c: e000 b.n 800ae70 + 800adfe: 7c3b ldrb r3, [r7, #16] + 800ae00: e000 b.n 800ae04 } return res; - 800ae6e: 7ffb ldrb r3, [r7, #31] + 800ae02: 7ffb ldrb r3, [r7, #31] } - 800ae70: 4618 mov r0, r3 - 800ae72: 3720 adds r7, #32 - 800ae74: 46bd mov sp, r7 - 800ae76: bd80 pop {r7, pc} + 800ae04: 4618 mov r0, r3 + 800ae06: 3720 adds r7, #32 + 800ae08: 46bd mov sp, r7 + 800ae0a: bd80 pop {r7, pc} -0800ae78 : +0800ae0c : lv_coord_t lv_clamp_width(lv_coord_t width, lv_coord_t min_width, lv_coord_t max_width, lv_coord_t ref_width) { - 800ae78: b490 push {r4, r7} - 800ae7a: b082 sub sp, #8 - 800ae7c: af00 add r7, sp, #0 - 800ae7e: 4604 mov r4, r0 - 800ae80: 4608 mov r0, r1 - 800ae82: 4611 mov r1, r2 - 800ae84: 461a mov r2, r3 - 800ae86: 4623 mov r3, r4 - 800ae88: 80fb strh r3, [r7, #6] - 800ae8a: 4603 mov r3, r0 - 800ae8c: 80bb strh r3, [r7, #4] - 800ae8e: 460b mov r3, r1 - 800ae90: 807b strh r3, [r7, #2] - 800ae92: 4613 mov r3, r2 - 800ae94: 803b strh r3, [r7, #0] + 800ae0c: b490 push {r4, r7} + 800ae0e: b082 sub sp, #8 + 800ae10: af00 add r7, sp, #0 + 800ae12: 4604 mov r4, r0 + 800ae14: 4608 mov r0, r1 + 800ae16: 4611 mov r1, r2 + 800ae18: 461a mov r2, r3 + 800ae1a: 4623 mov r3, r4 + 800ae1c: 80fb strh r3, [r7, #6] + 800ae1e: 4603 mov r3, r0 + 800ae20: 80bb strh r3, [r7, #4] + 800ae22: 460b mov r3, r1 + 800ae24: 807b strh r3, [r7, #2] + 800ae26: 4613 mov r3, r2 + 800ae28: 803b strh r3, [r7, #0] if(LV_COORD_IS_PCT(min_width)) min_width = (ref_width * LV_COORD_GET_PCT(min_width)) / 100; - 800ae96: 88bb ldrh r3, [r7, #4] - 800ae98: f403 43c0 and.w r3, r3, #24576 ; 0x6000 - 800ae9c: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 800aea0: d123 bne.n 800aeea - 800aea2: 88bb ldrh r3, [r7, #4] - 800aea4: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800aea8: b21b sxth r3, r3 - 800aeaa: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 - 800aeae: dc1c bgt.n 800aeea - 800aeb0: f9b7 2000 ldrsh.w r2, [r7] - 800aeb4: 88bb ldrh r3, [r7, #4] - 800aeb6: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800aeba: b21b sxth r3, r3 - 800aebc: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - 800aec0: dd06 ble.n 800aed0 - 800aec2: 88bb ldrh r3, [r7, #4] - 800aec4: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800aec8: b21b sxth r3, r3 - 800aeca: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 800aece: e003 b.n 800aed8 - 800aed0: 88bb ldrh r3, [r7, #4] - 800aed2: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800aed6: b21b sxth r3, r3 - 800aed8: fb02 f303 mul.w r3, r2, r3 - 800aedc: 4a21 ldr r2, [pc, #132] ; (800af64 ) - 800aede: fb82 1203 smull r1, r2, r2, r3 - 800aee2: 1152 asrs r2, r2, #5 - 800aee4: 17db asrs r3, r3, #31 - 800aee6: 1ad3 subs r3, r2, r3 - 800aee8: 80bb strh r3, [r7, #4] + 800ae2a: 88bb ldrh r3, [r7, #4] + 800ae2c: f403 43c0 and.w r3, r3, #24576 ; 0x6000 + 800ae30: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 800ae34: d123 bne.n 800ae7e + 800ae36: 88bb ldrh r3, [r7, #4] + 800ae38: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800ae3c: b21b sxth r3, r3 + 800ae3e: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 + 800ae42: dc1c bgt.n 800ae7e + 800ae44: f9b7 2000 ldrsh.w r2, [r7] + 800ae48: 88bb ldrh r3, [r7, #4] + 800ae4a: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800ae4e: b21b sxth r3, r3 + 800ae50: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 + 800ae54: dd06 ble.n 800ae64 + 800ae56: 88bb ldrh r3, [r7, #4] + 800ae58: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800ae5c: b21b sxth r3, r3 + 800ae5e: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 800ae62: e003 b.n 800ae6c + 800ae64: 88bb ldrh r3, [r7, #4] + 800ae66: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800ae6a: b21b sxth r3, r3 + 800ae6c: fb02 f303 mul.w r3, r2, r3 + 800ae70: 4a21 ldr r2, [pc, #132] ; (800aef8 ) + 800ae72: fb82 1203 smull r1, r2, r2, r3 + 800ae76: 1152 asrs r2, r2, #5 + 800ae78: 17db asrs r3, r3, #31 + 800ae7a: 1ad3 subs r3, r2, r3 + 800ae7c: 80bb strh r3, [r7, #4] if(LV_COORD_IS_PCT(max_width)) max_width = (ref_width * LV_COORD_GET_PCT(max_width)) / 100; - 800aeea: 887b ldrh r3, [r7, #2] - 800aeec: f403 43c0 and.w r3, r3, #24576 ; 0x6000 - 800aef0: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 800aef4: d123 bne.n 800af3e - 800aef6: 887b ldrh r3, [r7, #2] - 800aef8: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800aefc: b21b sxth r3, r3 - 800aefe: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 - 800af02: dc1c bgt.n 800af3e - 800af04: f9b7 2000 ldrsh.w r2, [r7] - 800af08: 887b ldrh r3, [r7, #2] - 800af0a: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800af0e: b21b sxth r3, r3 - 800af10: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - 800af14: dd06 ble.n 800af24 - 800af16: 887b ldrh r3, [r7, #2] - 800af18: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800af1c: b21b sxth r3, r3 - 800af1e: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 800af22: e003 b.n 800af2c - 800af24: 887b ldrh r3, [r7, #2] - 800af26: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800af2a: b21b sxth r3, r3 - 800af2c: fb02 f303 mul.w r3, r2, r3 - 800af30: 4a0c ldr r2, [pc, #48] ; (800af64 ) - 800af32: fb82 1203 smull r1, r2, r2, r3 - 800af36: 1152 asrs r2, r2, #5 - 800af38: 17db asrs r3, r3, #31 - 800af3a: 1ad3 subs r3, r2, r3 - 800af3c: 807b strh r3, [r7, #2] + 800ae7e: 887b ldrh r3, [r7, #2] + 800ae80: f403 43c0 and.w r3, r3, #24576 ; 0x6000 + 800ae84: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 800ae88: d123 bne.n 800aed2 + 800ae8a: 887b ldrh r3, [r7, #2] + 800ae8c: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800ae90: b21b sxth r3, r3 + 800ae92: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 + 800ae96: dc1c bgt.n 800aed2 + 800ae98: f9b7 2000 ldrsh.w r2, [r7] + 800ae9c: 887b ldrh r3, [r7, #2] + 800ae9e: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800aea2: b21b sxth r3, r3 + 800aea4: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 + 800aea8: dd06 ble.n 800aeb8 + 800aeaa: 887b ldrh r3, [r7, #2] + 800aeac: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800aeb0: b21b sxth r3, r3 + 800aeb2: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 800aeb6: e003 b.n 800aec0 + 800aeb8: 887b ldrh r3, [r7, #2] + 800aeba: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800aebe: b21b sxth r3, r3 + 800aec0: fb02 f303 mul.w r3, r2, r3 + 800aec4: 4a0c ldr r2, [pc, #48] ; (800aef8 ) + 800aec6: fb82 1203 smull r1, r2, r2, r3 + 800aeca: 1152 asrs r2, r2, #5 + 800aecc: 17db asrs r3, r3, #31 + 800aece: 1ad3 subs r3, r2, r3 + 800aed0: 807b strh r3, [r7, #2] return LV_CLAMP(min_width, width, max_width); - 800af3e: f9b7 2002 ldrsh.w r2, [r7, #2] - 800af42: f9b7 3006 ldrsh.w r3, [r7, #6] - 800af46: 4293 cmp r3, r2 - 800af48: bfa8 it ge - 800af4a: 4613 movge r3, r2 - 800af4c: b21b sxth r3, r3 - 800af4e: f9b7 2004 ldrsh.w r2, [r7, #4] - 800af52: 4293 cmp r3, r2 - 800af54: bfb8 it lt - 800af56: 4613 movlt r3, r2 - 800af58: b21b sxth r3, r3 + 800aed2: f9b7 2002 ldrsh.w r2, [r7, #2] + 800aed6: f9b7 3006 ldrsh.w r3, [r7, #6] + 800aeda: 4293 cmp r3, r2 + 800aedc: bfa8 it ge + 800aede: 4613 movge r3, r2 + 800aee0: b21b sxth r3, r3 + 800aee2: f9b7 2004 ldrsh.w r2, [r7, #4] + 800aee6: 4293 cmp r3, r2 + 800aee8: bfb8 it lt + 800aeea: 4613 movlt r3, r2 + 800aeec: b21b sxth r3, r3 } - 800af5a: 4618 mov r0, r3 - 800af5c: 3708 adds r7, #8 - 800af5e: 46bd mov sp, r7 - 800af60: bc90 pop {r4, r7} - 800af62: 4770 bx lr - 800af64: 51eb851f .word 0x51eb851f + 800aeee: 4618 mov r0, r3 + 800aef0: 3708 adds r7, #8 + 800aef2: 46bd mov sp, r7 + 800aef4: bc90 pop {r4, r7} + 800aef6: 4770 bx lr + 800aef8: 51eb851f .word 0x51eb851f -0800af68 : +0800aefc : lv_coord_t lv_clamp_height(lv_coord_t height, lv_coord_t min_height, lv_coord_t max_height, lv_coord_t ref_height) { - 800af68: b490 push {r4, r7} - 800af6a: b082 sub sp, #8 - 800af6c: af00 add r7, sp, #0 - 800af6e: 4604 mov r4, r0 - 800af70: 4608 mov r0, r1 - 800af72: 4611 mov r1, r2 - 800af74: 461a mov r2, r3 - 800af76: 4623 mov r3, r4 - 800af78: 80fb strh r3, [r7, #6] - 800af7a: 4603 mov r3, r0 - 800af7c: 80bb strh r3, [r7, #4] - 800af7e: 460b mov r3, r1 - 800af80: 807b strh r3, [r7, #2] - 800af82: 4613 mov r3, r2 - 800af84: 803b strh r3, [r7, #0] + 800aefc: b490 push {r4, r7} + 800aefe: b082 sub sp, #8 + 800af00: af00 add r7, sp, #0 + 800af02: 4604 mov r4, r0 + 800af04: 4608 mov r0, r1 + 800af06: 4611 mov r1, r2 + 800af08: 461a mov r2, r3 + 800af0a: 4623 mov r3, r4 + 800af0c: 80fb strh r3, [r7, #6] + 800af0e: 4603 mov r3, r0 + 800af10: 80bb strh r3, [r7, #4] + 800af12: 460b mov r3, r1 + 800af14: 807b strh r3, [r7, #2] + 800af16: 4613 mov r3, r2 + 800af18: 803b strh r3, [r7, #0] if(LV_COORD_IS_PCT(min_height)) min_height = (ref_height * LV_COORD_GET_PCT(min_height)) / 100; - 800af86: 88bb ldrh r3, [r7, #4] - 800af88: f403 43c0 and.w r3, r3, #24576 ; 0x6000 - 800af8c: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 800af90: d123 bne.n 800afda - 800af92: 88bb ldrh r3, [r7, #4] - 800af94: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800af98: b21b sxth r3, r3 - 800af9a: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 - 800af9e: dc1c bgt.n 800afda - 800afa0: f9b7 2000 ldrsh.w r2, [r7] - 800afa4: 88bb ldrh r3, [r7, #4] - 800afa6: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800afaa: b21b sxth r3, r3 - 800afac: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - 800afb0: dd06 ble.n 800afc0 - 800afb2: 88bb ldrh r3, [r7, #4] - 800afb4: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800afb8: b21b sxth r3, r3 - 800afba: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 800afbe: e003 b.n 800afc8 - 800afc0: 88bb ldrh r3, [r7, #4] - 800afc2: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800afc6: b21b sxth r3, r3 - 800afc8: fb02 f303 mul.w r3, r2, r3 - 800afcc: 4a21 ldr r2, [pc, #132] ; (800b054 ) - 800afce: fb82 1203 smull r1, r2, r2, r3 - 800afd2: 1152 asrs r2, r2, #5 - 800afd4: 17db asrs r3, r3, #31 - 800afd6: 1ad3 subs r3, r2, r3 - 800afd8: 80bb strh r3, [r7, #4] + 800af1a: 88bb ldrh r3, [r7, #4] + 800af1c: f403 43c0 and.w r3, r3, #24576 ; 0x6000 + 800af20: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 800af24: d123 bne.n 800af6e + 800af26: 88bb ldrh r3, [r7, #4] + 800af28: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800af2c: b21b sxth r3, r3 + 800af2e: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 + 800af32: dc1c bgt.n 800af6e + 800af34: f9b7 2000 ldrsh.w r2, [r7] + 800af38: 88bb ldrh r3, [r7, #4] + 800af3a: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800af3e: b21b sxth r3, r3 + 800af40: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 + 800af44: dd06 ble.n 800af54 + 800af46: 88bb ldrh r3, [r7, #4] + 800af48: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800af4c: b21b sxth r3, r3 + 800af4e: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 800af52: e003 b.n 800af5c + 800af54: 88bb ldrh r3, [r7, #4] + 800af56: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800af5a: b21b sxth r3, r3 + 800af5c: fb02 f303 mul.w r3, r2, r3 + 800af60: 4a21 ldr r2, [pc, #132] ; (800afe8 ) + 800af62: fb82 1203 smull r1, r2, r2, r3 + 800af66: 1152 asrs r2, r2, #5 + 800af68: 17db asrs r3, r3, #31 + 800af6a: 1ad3 subs r3, r2, r3 + 800af6c: 80bb strh r3, [r7, #4] if(LV_COORD_IS_PCT(max_height)) max_height = (ref_height * LV_COORD_GET_PCT(max_height)) / 100; - 800afda: 887b ldrh r3, [r7, #2] - 800afdc: f403 43c0 and.w r3, r3, #24576 ; 0x6000 - 800afe0: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 800afe4: d123 bne.n 800b02e - 800afe6: 887b ldrh r3, [r7, #2] - 800afe8: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800afec: b21b sxth r3, r3 - 800afee: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 - 800aff2: dc1c bgt.n 800b02e - 800aff4: f9b7 2000 ldrsh.w r2, [r7] - 800aff8: 887b ldrh r3, [r7, #2] - 800affa: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800affe: b21b sxth r3, r3 - 800b000: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - 800b004: dd06 ble.n 800b014 - 800b006: 887b ldrh r3, [r7, #2] - 800b008: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800b00c: b21b sxth r3, r3 - 800b00e: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 800b012: e003 b.n 800b01c - 800b014: 887b ldrh r3, [r7, #2] - 800b016: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 800b01a: b21b sxth r3, r3 - 800b01c: fb02 f303 mul.w r3, r2, r3 - 800b020: 4a0c ldr r2, [pc, #48] ; (800b054 ) - 800b022: fb82 1203 smull r1, r2, r2, r3 - 800b026: 1152 asrs r2, r2, #5 - 800b028: 17db asrs r3, r3, #31 - 800b02a: 1ad3 subs r3, r2, r3 - 800b02c: 807b strh r3, [r7, #2] + 800af6e: 887b ldrh r3, [r7, #2] + 800af70: f403 43c0 and.w r3, r3, #24576 ; 0x6000 + 800af74: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 800af78: d123 bne.n 800afc2 + 800af7a: 887b ldrh r3, [r7, #2] + 800af7c: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800af80: b21b sxth r3, r3 + 800af82: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 + 800af86: dc1c bgt.n 800afc2 + 800af88: f9b7 2000 ldrsh.w r2, [r7] + 800af8c: 887b ldrh r3, [r7, #2] + 800af8e: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800af92: b21b sxth r3, r3 + 800af94: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 + 800af98: dd06 ble.n 800afa8 + 800af9a: 887b ldrh r3, [r7, #2] + 800af9c: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800afa0: b21b sxth r3, r3 + 800afa2: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 800afa6: e003 b.n 800afb0 + 800afa8: 887b ldrh r3, [r7, #2] + 800afaa: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 800afae: b21b sxth r3, r3 + 800afb0: fb02 f303 mul.w r3, r2, r3 + 800afb4: 4a0c ldr r2, [pc, #48] ; (800afe8 ) + 800afb6: fb82 1203 smull r1, r2, r2, r3 + 800afba: 1152 asrs r2, r2, #5 + 800afbc: 17db asrs r3, r3, #31 + 800afbe: 1ad3 subs r3, r2, r3 + 800afc0: 807b strh r3, [r7, #2] return LV_CLAMP(min_height, height, max_height); - 800b02e: f9b7 2002 ldrsh.w r2, [r7, #2] - 800b032: f9b7 3006 ldrsh.w r3, [r7, #6] - 800b036: 4293 cmp r3, r2 - 800b038: bfa8 it ge - 800b03a: 4613 movge r3, r2 - 800b03c: b21b sxth r3, r3 - 800b03e: f9b7 2004 ldrsh.w r2, [r7, #4] - 800b042: 4293 cmp r3, r2 - 800b044: bfb8 it lt - 800b046: 4613 movlt r3, r2 - 800b048: b21b sxth r3, r3 + 800afc2: f9b7 2002 ldrsh.w r2, [r7, #2] + 800afc6: f9b7 3006 ldrsh.w r3, [r7, #6] + 800afca: 4293 cmp r3, r2 + 800afcc: bfa8 it ge + 800afce: 4613 movge r3, r2 + 800afd0: b21b sxth r3, r3 + 800afd2: f9b7 2004 ldrsh.w r2, [r7, #4] + 800afd6: 4293 cmp r3, r2 + 800afd8: bfb8 it lt + 800afda: 4613 movlt r3, r2 + 800afdc: b21b sxth r3, r3 } - 800b04a: 4618 mov r0, r3 - 800b04c: 3708 adds r7, #8 - 800b04e: 46bd mov sp, r7 - 800b050: bc90 pop {r4, r7} - 800b052: 4770 bx lr - 800b054: 51eb851f .word 0x51eb851f + 800afde: 4618 mov r0, r3 + 800afe0: 3708 adds r7, #8 + 800afe2: 46bd mov sp, r7 + 800afe4: bc90 pop {r4, r7} + 800afe6: 4770 bx lr + 800afe8: 51eb851f .word 0x51eb851f -0800b058 : +0800afec : /********************** * STATIC FUNCTIONS **********************/ static lv_coord_t calc_content_width(lv_obj_t * obj) { - 800b058: b590 push {r4, r7, lr} - 800b05a: b08d sub sp, #52 ; 0x34 - 800b05c: af00 add r7, sp, #0 - 800b05e: 6078 str r0, [r7, #4] + 800afec: b590 push {r4, r7, lr} + 800afee: b08d sub sp, #52 ; 0x34 + 800aff0: af00 add r7, sp, #0 + 800aff2: 6078 str r0, [r7, #4] lv_obj_scroll_to_x(obj, 0, LV_ANIM_OFF); - 800b060: 2200 movs r2, #0 - 800b062: 2100 movs r1, #0 - 800b064: 6878 ldr r0, [r7, #4] - 800b066: f001 f8cd bl 800c204 + 800aff4: 2200 movs r2, #0 + 800aff6: 2100 movs r1, #0 + 800aff8: 6878 ldr r0, [r7, #4] + 800affa: f001 f8cd bl 800c198 lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 800b06a: 2100 movs r1, #0 - 800b06c: 6878 ldr r0, [r7, #4] - 800b06e: f7fe f8c6 bl 80091fe - 800b072: 4603 mov r3, r0 - 800b074: 84fb strh r3, [r7, #38] ; 0x26 + 800affe: 2100 movs r1, #0 + 800b000: 6878 ldr r0, [r7, #4] + 800b002: f7fe f8c6 bl 8009192 + 800b006: 4603 mov r3, r0 + 800b008: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t pad_right = lv_obj_get_style_pad_right(obj, LV_PART_MAIN) + border_width; - 800b076: 2100 movs r1, #0 - 800b078: 6878 ldr r0, [r7, #4] - 800b07a: f7fe f8ad bl 80091d8 - 800b07e: 4603 mov r3, r0 - 800b080: b29a uxth r2, r3 - 800b082: 8cfb ldrh r3, [r7, #38] ; 0x26 - 800b084: 4413 add r3, r2 - 800b086: b29b uxth r3, r3 - 800b088: 84bb strh r3, [r7, #36] ; 0x24 + 800b00a: 2100 movs r1, #0 + 800b00c: 6878 ldr r0, [r7, #4] + 800b00e: f7fe f8ad bl 800916c + 800b012: 4603 mov r3, r0 + 800b014: b29a uxth r2, r3 + 800b016: 8cfb ldrh r3, [r7, #38] ; 0x26 + 800b018: 4413 add r3, r2 + 800b01a: b29b uxth r3, r3 + 800b01c: 84bb strh r3, [r7, #36] ; 0x24 lv_coord_t pad_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN) + border_width; - 800b08a: 2100 movs r1, #0 - 800b08c: 6878 ldr r0, [r7, #4] - 800b08e: f7fe f890 bl 80091b2 - 800b092: 4603 mov r3, r0 - 800b094: b29a uxth r2, r3 - 800b096: 8cfb ldrh r3, [r7, #38] ; 0x26 - 800b098: 4413 add r3, r2 - 800b09a: b29b uxth r3, r3 - 800b09c: 847b strh r3, [r7, #34] ; 0x22 + 800b01e: 2100 movs r1, #0 + 800b020: 6878 ldr r0, [r7, #4] + 800b022: f7fe f890 bl 8009146 + 800b026: 4603 mov r3, r0 + 800b028: b29a uxth r2, r3 + 800b02a: 8cfb ldrh r3, [r7, #38] ; 0x26 + 800b02c: 4413 add r3, r2 + 800b02e: b29b uxth r3, r3 + 800b030: 847b strh r3, [r7, #34] ; 0x22 lv_coord_t self_w; self_w = lv_obj_get_self_width(obj) + pad_left + pad_right; - 800b09e: 6878 ldr r0, [r7, #4] - 800b0a0: f7ff f923 bl 800a2ea - 800b0a4: 4603 mov r3, r0 - 800b0a6: b29a uxth r2, r3 - 800b0a8: 8c7b ldrh r3, [r7, #34] ; 0x22 - 800b0aa: 4413 add r3, r2 - 800b0ac: b29a uxth r2, r3 - 800b0ae: 8cbb ldrh r3, [r7, #36] ; 0x24 - 800b0b0: 4413 add r3, r2 - 800b0b2: b29b uxth r3, r3 - 800b0b4: 843b strh r3, [r7, #32] + 800b032: 6878 ldr r0, [r7, #4] + 800b034: f7ff f923 bl 800a27e + 800b038: 4603 mov r3, r0 + 800b03a: b29a uxth r2, r3 + 800b03c: 8c7b ldrh r3, [r7, #34] ; 0x22 + 800b03e: 4413 add r3, r2 + 800b040: b29a uxth r2, r3 + 800b042: 8cbb ldrh r3, [r7, #36] ; 0x24 + 800b044: 4413 add r3, r2 + 800b046: b29b uxth r3, r3 + 800b048: 843b strh r3, [r7, #32] lv_coord_t child_res = LV_COORD_MIN; - 800b0b6: f24e 0301 movw r3, #57345 ; 0xe001 - 800b0ba: 85fb strh r3, [r7, #46] ; 0x2e + 800b04a: f24e 0301 movw r3, #57345 ; 0xe001 + 800b04e: 85fb strh r3, [r7, #46] ; 0x2e uint32_t i; uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 800b0bc: 6878 ldr r0, [r7, #4] - 800b0be: f004 fb67 bl 800f790 - 800b0c2: 61f8 str r0, [r7, #28] + 800b050: 6878 ldr r0, [r7, #4] + 800b052: f004 fb53 bl 800f6fc + 800b056: 61f8 str r0, [r7, #28] /*With RTL find the left most coordinate*/ if(lv_obj_get_style_base_dir(obj, LV_PART_MAIN) == LV_BASE_DIR_RTL) { - 800b0c4: 2100 movs r1, #0 - 800b0c6: 6878 ldr r0, [r7, #4] - 800b0c8: f7fe f8bf bl 800924a - 800b0cc: 4603 mov r3, r0 - 800b0ce: 2b01 cmp r3, #1 - 800b0d0: f040 8090 bne.w 800b1f4 + 800b058: 2100 movs r1, #0 + 800b05a: 6878 ldr r0, [r7, #4] + 800b05c: f7fe f8bf bl 80091de + 800b060: 4603 mov r3, r0 + 800b062: 2b01 cmp r3, #1 + 800b064: f040 8090 bne.w 800b188 for(i = 0; i < child_cnt; i++) { - 800b0d4: 2300 movs r3, #0 - 800b0d6: 62bb str r3, [r7, #40] ; 0x28 - 800b0d8: e07b b.n 800b1d2 + 800b068: 2300 movs r3, #0 + 800b06a: 62bb str r3, [r7, #40] ; 0x28 + 800b06c: e07b b.n 800b166 lv_obj_t * child = obj->spec_attr->children[i]; - 800b0da: 687b ldr r3, [r7, #4] - 800b0dc: 689b ldr r3, [r3, #8] - 800b0de: 681a ldr r2, [r3, #0] - 800b0e0: 6abb ldr r3, [r7, #40] ; 0x28 - 800b0e2: 009b lsls r3, r3, #2 - 800b0e4: 4413 add r3, r2 - 800b0e6: 681b ldr r3, [r3, #0] - 800b0e8: 613b str r3, [r7, #16] + 800b06e: 687b ldr r3, [r7, #4] + 800b070: 689b ldr r3, [r3, #8] + 800b072: 681a ldr r2, [r3, #0] + 800b074: 6abb ldr r3, [r7, #40] ; 0x28 + 800b076: 009b lsls r3, r3, #2 + 800b078: 4413 add r3, r2 + 800b07a: 681b ldr r3, [r3, #0] + 800b07c: 613b str r3, [r7, #16] if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 800b0ea: 4992 ldr r1, [pc, #584] ; (800b334 ) - 800b0ec: 6938 ldr r0, [r7, #16] - 800b0ee: f7fb fb5c bl 80067aa - 800b0f2: 4603 mov r3, r0 - 800b0f4: 2b00 cmp r3, #0 - 800b0f6: d168 bne.n 800b1ca + 800b07e: 4992 ldr r1, [pc, #584] ; (800b2c8 ) + 800b080: 6938 ldr r0, [r7, #16] + 800b082: f7fb fb5c bl 800673e + 800b086: 4603 mov r3, r0 + 800b088: 2b00 cmp r3, #0 + 800b08a: d168 bne.n 800b15e if(!lv_obj_is_layout_positioned(child)) { - 800b0f8: 6938 ldr r0, [r7, #16] - 800b0fa: f7fe fbcf bl 800989c - 800b0fe: 4603 mov r3, r0 - 800b100: f083 0301 eor.w r3, r3, #1 - 800b104: b2db uxtb r3, r3 - 800b106: 2b00 cmp r3, #0 - 800b108: d04f beq.n 800b1aa + 800b08c: 6938 ldr r0, [r7, #16] + 800b08e: f7fe fbcf bl 8009830 + 800b092: 4603 mov r3, r0 + 800b094: f083 0301 eor.w r3, r3, #1 + 800b098: b2db uxtb r3, r3 + 800b09a: 2b00 cmp r3, #0 + 800b09c: d04f beq.n 800b13e lv_align_t align = lv_obj_get_style_align(child, 0); - 800b10a: 2100 movs r1, #0 - 800b10c: 6938 ldr r0, [r7, #16] - 800b10e: f7fd fff1 bl 80090f4 - 800b112: 4603 mov r3, r0 - 800b114: 73fb strb r3, [r7, #15] + 800b09e: 2100 movs r1, #0 + 800b0a0: 6938 ldr r0, [r7, #16] + 800b0a2: f7fd fff1 bl 8009088 + 800b0a6: 4603 mov r3, r0 + 800b0a8: 73fb strb r3, [r7, #15] switch(align) { - 800b116: 7bfb ldrb r3, [r7, #15] - 800b118: 2b08 cmp r3, #8 - 800b11a: bf8c ite hi - 800b11c: 2201 movhi r2, #1 - 800b11e: 2200 movls r2, #0 - 800b120: b2d2 uxtb r2, r2 - 800b122: 2a00 cmp r2, #0 - 800b124: d11c bne.n 800b160 - 800b126: f240 1249 movw r2, #329 ; 0x149 - 800b12a: fa22 f303 lsr.w r3, r2, r3 - 800b12e: f003 0301 and.w r3, r3, #1 - 800b132: 2b00 cmp r3, #0 - 800b134: bf14 ite ne - 800b136: 2301 movne r3, #1 - 800b138: 2300 moveq r3, #0 - 800b13a: b2db uxtb r3, r3 - 800b13c: 2b00 cmp r3, #0 - 800b13e: d00f beq.n 800b160 + 800b0aa: 7bfb ldrb r3, [r7, #15] + 800b0ac: 2b08 cmp r3, #8 + 800b0ae: bf8c ite hi + 800b0b0: 2201 movhi r2, #1 + 800b0b2: 2200 movls r2, #0 + 800b0b4: b2d2 uxtb r2, r2 + 800b0b6: 2a00 cmp r2, #0 + 800b0b8: d11c bne.n 800b0f4 + 800b0ba: f240 1249 movw r2, #329 ; 0x149 + 800b0be: fa22 f303 lsr.w r3, r2, r3 + 800b0c2: f003 0301 and.w r3, r3, #1 + 800b0c6: 2b00 cmp r3, #0 + 800b0c8: bf14 ite ne + 800b0ca: 2301 movne r3, #1 + 800b0cc: 2300 moveq r3, #0 + 800b0ce: b2db uxtb r3, r3 + 800b0d0: 2b00 cmp r3, #0 + 800b0d2: d00f beq.n 800b0f4 case LV_ALIGN_DEFAULT: case LV_ALIGN_TOP_RIGHT: case LV_ALIGN_BOTTOM_RIGHT: case LV_ALIGN_RIGHT_MID: /*Normal right aligns. Other are ignored due to possible circular dependencies*/ child_res = LV_MAX(child_res, obj->coords.x2 - child->coords.x1 + 1); - 800b140: 687b ldr r3, [r7, #4] - 800b142: f9b3 3018 ldrsh.w r3, [r3, #24] - 800b146: 461a mov r2, r3 - 800b148: 693b ldr r3, [r7, #16] - 800b14a: f9b3 3014 ldrsh.w r3, [r3, #20] - 800b14e: 1ad3 subs r3, r2, r3 - 800b150: 1c5a adds r2, r3, #1 - 800b152: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 800b156: 4293 cmp r3, r2 - 800b158: bfb8 it lt - 800b15a: 4613 movlt r3, r2 - 800b15c: 85fb strh r3, [r7, #46] ; 0x2e + 800b0d4: 687b ldr r3, [r7, #4] + 800b0d6: f9b3 3018 ldrsh.w r3, [r3, #24] + 800b0da: 461a mov r2, r3 + 800b0dc: 693b ldr r3, [r7, #16] + 800b0de: f9b3 3014 ldrsh.w r3, [r3, #20] + 800b0e2: 1ad3 subs r3, r2, r3 + 800b0e4: 1c5a adds r2, r3, #1 + 800b0e6: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 800b0ea: 4293 cmp r3, r2 + 800b0ec: bfb8 it lt + 800b0ee: 4613 movlt r3, r2 + 800b0f0: 85fb strh r3, [r7, #46] ; 0x2e break; - 800b15e: e035 b.n 800b1cc + 800b0f2: e035 b.n 800b160 default: /* Consider other cases only if x=0 and use the width of the object. * With x!=0 circular dependency could occur. */ if(lv_obj_get_style_x(child, 0) == 0) { - 800b160: 2100 movs r1, #0 - 800b162: 6938 ldr r0, [r7, #16] - 800b164: f7fd ffa0 bl 80090a8 - 800b168: 4603 mov r3, r0 - 800b16a: 2b00 cmp r3, #0 - 800b16c: d12e bne.n 800b1cc + 800b0f4: 2100 movs r1, #0 + 800b0f6: 6938 ldr r0, [r7, #16] + 800b0f8: f7fd ffa0 bl 800903c + 800b0fc: 4603 mov r3, r0 + 800b0fe: 2b00 cmp r3, #0 + 800b100: d12e bne.n 800b160 child_res = LV_MAX(child_res, lv_area_get_width(&child->coords) + pad_right); - 800b16e: f9b7 402e ldrsh.w r4, [r7, #46] ; 0x2e - 800b172: 693b ldr r3, [r7, #16] - 800b174: 3314 adds r3, #20 - 800b176: 4618 mov r0, r3 - 800b178: f7fd fef8 bl 8008f6c - 800b17c: 4603 mov r3, r0 - 800b17e: 461a mov r2, r3 - 800b180: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 - 800b184: 4413 add r3, r2 - 800b186: 429c cmp r4, r3 - 800b188: dc0b bgt.n 800b1a2 - 800b18a: 693b ldr r3, [r7, #16] - 800b18c: 3314 adds r3, #20 - 800b18e: 4618 mov r0, r3 - 800b190: f7fd feec bl 8008f6c - 800b194: 4603 mov r3, r0 - 800b196: b29a uxth r2, r3 - 800b198: 8cbb ldrh r3, [r7, #36] ; 0x24 - 800b19a: 4413 add r3, r2 - 800b19c: b29b uxth r3, r3 - 800b19e: b21b sxth r3, r3 - 800b1a0: e001 b.n 800b1a6 - 800b1a2: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 800b1a6: 85fb strh r3, [r7, #46] ; 0x2e - 800b1a8: e010 b.n 800b1cc + 800b102: f9b7 402e ldrsh.w r4, [r7, #46] ; 0x2e + 800b106: 693b ldr r3, [r7, #16] + 800b108: 3314 adds r3, #20 + 800b10a: 4618 mov r0, r3 + 800b10c: f7fd fef8 bl 8008f00 + 800b110: 4603 mov r3, r0 + 800b112: 461a mov r2, r3 + 800b114: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 + 800b118: 4413 add r3, r2 + 800b11a: 429c cmp r4, r3 + 800b11c: dc0b bgt.n 800b136 + 800b11e: 693b ldr r3, [r7, #16] + 800b120: 3314 adds r3, #20 + 800b122: 4618 mov r0, r3 + 800b124: f7fd feec bl 8008f00 + 800b128: 4603 mov r3, r0 + 800b12a: b29a uxth r2, r3 + 800b12c: 8cbb ldrh r3, [r7, #36] ; 0x24 + 800b12e: 4413 add r3, r2 + 800b130: b29b uxth r3, r3 + 800b132: b21b sxth r3, r3 + 800b134: e001 b.n 800b13a + 800b136: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 800b13a: 85fb strh r3, [r7, #46] ; 0x2e + 800b13c: e010 b.n 800b160 } } } else { child_res = LV_MAX(child_res, obj->coords.x2 - child->coords.x1 + 1); - 800b1aa: 687b ldr r3, [r7, #4] - 800b1ac: f9b3 3018 ldrsh.w r3, [r3, #24] - 800b1b0: 461a mov r2, r3 - 800b1b2: 693b ldr r3, [r7, #16] - 800b1b4: f9b3 3014 ldrsh.w r3, [r3, #20] - 800b1b8: 1ad3 subs r3, r2, r3 - 800b1ba: 1c5a adds r2, r3, #1 - 800b1bc: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 800b1c0: 4293 cmp r3, r2 - 800b1c2: bfb8 it lt - 800b1c4: 4613 movlt r3, r2 - 800b1c6: 85fb strh r3, [r7, #46] ; 0x2e - 800b1c8: e000 b.n 800b1cc + 800b13e: 687b ldr r3, [r7, #4] + 800b140: f9b3 3018 ldrsh.w r3, [r3, #24] + 800b144: 461a mov r2, r3 + 800b146: 693b ldr r3, [r7, #16] + 800b148: f9b3 3014 ldrsh.w r3, [r3, #20] + 800b14c: 1ad3 subs r3, r2, r3 + 800b14e: 1c5a adds r2, r3, #1 + 800b150: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 800b154: 4293 cmp r3, r2 + 800b156: bfb8 it lt + 800b158: 4613 movlt r3, r2 + 800b15a: 85fb strh r3, [r7, #46] ; 0x2e + 800b15c: e000 b.n 800b160 if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 800b1ca: bf00 nop + 800b15e: bf00 nop for(i = 0; i < child_cnt; i++) { - 800b1cc: 6abb ldr r3, [r7, #40] ; 0x28 - 800b1ce: 3301 adds r3, #1 - 800b1d0: 62bb str r3, [r7, #40] ; 0x28 - 800b1d2: 6aba ldr r2, [r7, #40] ; 0x28 - 800b1d4: 69fb ldr r3, [r7, #28] - 800b1d6: 429a cmp r2, r3 - 800b1d8: f4ff af7f bcc.w 800b0da + 800b160: 6abb ldr r3, [r7, #40] ; 0x28 + 800b162: 3301 adds r3, #1 + 800b164: 62bb str r3, [r7, #40] ; 0x28 + 800b166: 6aba ldr r2, [r7, #40] ; 0x28 + 800b168: 69fb ldr r3, [r7, #28] + 800b16a: 429a cmp r2, r3 + 800b16c: f4ff af7f bcc.w 800b06e } } if(child_res != LV_COORD_MIN) { - 800b1dc: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 800b1e0: 4a55 ldr r2, [pc, #340] ; (800b338 ) - 800b1e2: 4293 cmp r3, r2 - 800b1e4: f000 8092 beq.w 800b30c + 800b170: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 800b174: 4a55 ldr r2, [pc, #340] ; (800b2cc ) + 800b176: 4293 cmp r3, r2 + 800b178: f000 8092 beq.w 800b2a0 child_res += pad_left; - 800b1e8: 8dfa ldrh r2, [r7, #46] ; 0x2e - 800b1ea: 8c7b ldrh r3, [r7, #34] ; 0x22 - 800b1ec: 4413 add r3, r2 - 800b1ee: b29b uxth r3, r3 - 800b1f0: 85fb strh r3, [r7, #46] ; 0x2e - 800b1f2: e08b b.n 800b30c + 800b17c: 8dfa ldrh r2, [r7, #46] ; 0x2e + 800b17e: 8c7b ldrh r3, [r7, #34] ; 0x22 + 800b180: 4413 add r3, r2 + 800b182: b29b uxth r3, r3 + 800b184: 85fb strh r3, [r7, #46] ; 0x2e + 800b186: e08b b.n 800b2a0 } } /*Else find the right most coordinate*/ else { for(i = 0; i < child_cnt; i++) { - 800b1f4: 2300 movs r3, #0 - 800b1f6: 62bb str r3, [r7, #40] ; 0x28 - 800b1f8: e07a b.n 800b2f0 + 800b188: 2300 movs r3, #0 + 800b18a: 62bb str r3, [r7, #40] ; 0x28 + 800b18c: e07a b.n 800b284 lv_obj_t * child = obj->spec_attr->children[i]; - 800b1fa: 687b ldr r3, [r7, #4] - 800b1fc: 689b ldr r3, [r3, #8] - 800b1fe: 681a ldr r2, [r3, #0] - 800b200: 6abb ldr r3, [r7, #40] ; 0x28 - 800b202: 009b lsls r3, r3, #2 - 800b204: 4413 add r3, r2 - 800b206: 681b ldr r3, [r3, #0] - 800b208: 61bb str r3, [r7, #24] + 800b18e: 687b ldr r3, [r7, #4] + 800b190: 689b ldr r3, [r3, #8] + 800b192: 681a ldr r2, [r3, #0] + 800b194: 6abb ldr r3, [r7, #40] ; 0x28 + 800b196: 009b lsls r3, r3, #2 + 800b198: 4413 add r3, r2 + 800b19a: 681b ldr r3, [r3, #0] + 800b19c: 61bb str r3, [r7, #24] if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 800b20a: 494a ldr r1, [pc, #296] ; (800b334 ) - 800b20c: 69b8 ldr r0, [r7, #24] - 800b20e: f7fb facc bl 80067aa - 800b212: 4603 mov r3, r0 - 800b214: 2b00 cmp r3, #0 - 800b216: d167 bne.n 800b2e8 + 800b19e: 494a ldr r1, [pc, #296] ; (800b2c8 ) + 800b1a0: 69b8 ldr r0, [r7, #24] + 800b1a2: f7fb facc bl 800673e + 800b1a6: 4603 mov r3, r0 + 800b1a8: 2b00 cmp r3, #0 + 800b1aa: d167 bne.n 800b27c if(!lv_obj_is_layout_positioned(child)) { - 800b218: 69b8 ldr r0, [r7, #24] - 800b21a: f7fe fb3f bl 800989c - 800b21e: 4603 mov r3, r0 - 800b220: f083 0301 eor.w r3, r3, #1 - 800b224: b2db uxtb r3, r3 - 800b226: 2b00 cmp r3, #0 - 800b228: d04e beq.n 800b2c8 + 800b1ac: 69b8 ldr r0, [r7, #24] + 800b1ae: f7fe fb3f bl 8009830 + 800b1b2: 4603 mov r3, r0 + 800b1b4: f083 0301 eor.w r3, r3, #1 + 800b1b8: b2db uxtb r3, r3 + 800b1ba: 2b00 cmp r3, #0 + 800b1bc: d04e beq.n 800b25c lv_align_t align = lv_obj_get_style_align(child, 0); - 800b22a: 2100 movs r1, #0 - 800b22c: 69b8 ldr r0, [r7, #24] - 800b22e: f7fd ff61 bl 80090f4 - 800b232: 4603 mov r3, r0 - 800b234: 75fb strb r3, [r7, #23] + 800b1be: 2100 movs r1, #0 + 800b1c0: 69b8 ldr r0, [r7, #24] + 800b1c2: f7fd ff61 bl 8009088 + 800b1c6: 4603 mov r3, r0 + 800b1c8: 75fb strb r3, [r7, #23] switch(align) { - 800b236: 7dfb ldrb r3, [r7, #23] - 800b238: 2b07 cmp r3, #7 - 800b23a: bf8c ite hi - 800b23c: 2201 movhi r2, #1 - 800b23e: 2200 movls r2, #0 - 800b240: b2d2 uxtb r2, r2 - 800b242: 2a00 cmp r2, #0 - 800b244: d11b bne.n 800b27e - 800b246: 2293 movs r2, #147 ; 0x93 - 800b248: fa22 f303 lsr.w r3, r2, r3 - 800b24c: f003 0301 and.w r3, r3, #1 - 800b250: 2b00 cmp r3, #0 - 800b252: bf14 ite ne - 800b254: 2301 movne r3, #1 - 800b256: 2300 moveq r3, #0 - 800b258: b2db uxtb r3, r3 - 800b25a: 2b00 cmp r3, #0 - 800b25c: d00f beq.n 800b27e + 800b1ca: 7dfb ldrb r3, [r7, #23] + 800b1cc: 2b07 cmp r3, #7 + 800b1ce: bf8c ite hi + 800b1d0: 2201 movhi r2, #1 + 800b1d2: 2200 movls r2, #0 + 800b1d4: b2d2 uxtb r2, r2 + 800b1d6: 2a00 cmp r2, #0 + 800b1d8: d11b bne.n 800b212 + 800b1da: 2293 movs r2, #147 ; 0x93 + 800b1dc: fa22 f303 lsr.w r3, r2, r3 + 800b1e0: f003 0301 and.w r3, r3, #1 + 800b1e4: 2b00 cmp r3, #0 + 800b1e6: bf14 ite ne + 800b1e8: 2301 movne r3, #1 + 800b1ea: 2300 moveq r3, #0 + 800b1ec: b2db uxtb r3, r3 + 800b1ee: 2b00 cmp r3, #0 + 800b1f0: d00f beq.n 800b212 case LV_ALIGN_DEFAULT: case LV_ALIGN_TOP_LEFT: case LV_ALIGN_BOTTOM_LEFT: case LV_ALIGN_LEFT_MID: /*Normal left aligns.*/ child_res = LV_MAX(child_res, child->coords.x2 - obj->coords.x1 + 1); - 800b25e: 69bb ldr r3, [r7, #24] - 800b260: f9b3 3018 ldrsh.w r3, [r3, #24] - 800b264: 461a mov r2, r3 - 800b266: 687b ldr r3, [r7, #4] - 800b268: f9b3 3014 ldrsh.w r3, [r3, #20] - 800b26c: 1ad3 subs r3, r2, r3 - 800b26e: 1c5a adds r2, r3, #1 - 800b270: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 800b274: 4293 cmp r3, r2 - 800b276: bfb8 it lt - 800b278: 4613 movlt r3, r2 - 800b27a: 85fb strh r3, [r7, #46] ; 0x2e + 800b1f2: 69bb ldr r3, [r7, #24] + 800b1f4: f9b3 3018 ldrsh.w r3, [r3, #24] + 800b1f8: 461a mov r2, r3 + 800b1fa: 687b ldr r3, [r7, #4] + 800b1fc: f9b3 3014 ldrsh.w r3, [r3, #20] + 800b200: 1ad3 subs r3, r2, r3 + 800b202: 1c5a adds r2, r3, #1 + 800b204: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 800b208: 4293 cmp r3, r2 + 800b20a: bfb8 it lt + 800b20c: 4613 movlt r3, r2 + 800b20e: 85fb strh r3, [r7, #46] ; 0x2e break; - 800b27c: e035 b.n 800b2ea + 800b210: e035 b.n 800b27e default: /* Consider other cases only if x=0 and use the width of the object. * With x!=0 circular dependency could occur. */ if(lv_obj_get_style_y(child, 0) == 0) { - 800b27e: 2100 movs r1, #0 - 800b280: 69b8 ldr r0, [r7, #24] - 800b282: f7fd ff24 bl 80090ce - 800b286: 4603 mov r3, r0 - 800b288: 2b00 cmp r3, #0 - 800b28a: d12e bne.n 800b2ea + 800b212: 2100 movs r1, #0 + 800b214: 69b8 ldr r0, [r7, #24] + 800b216: f7fd ff24 bl 8009062 + 800b21a: 4603 mov r3, r0 + 800b21c: 2b00 cmp r3, #0 + 800b21e: d12e bne.n 800b27e child_res = LV_MAX(child_res, lv_area_get_width(&child->coords) + pad_left); - 800b28c: f9b7 402e ldrsh.w r4, [r7, #46] ; 0x2e - 800b290: 69bb ldr r3, [r7, #24] - 800b292: 3314 adds r3, #20 - 800b294: 4618 mov r0, r3 - 800b296: f7fd fe69 bl 8008f6c - 800b29a: 4603 mov r3, r0 - 800b29c: 461a mov r2, r3 - 800b29e: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 800b2a2: 4413 add r3, r2 - 800b2a4: 429c cmp r4, r3 - 800b2a6: dc0b bgt.n 800b2c0 - 800b2a8: 69bb ldr r3, [r7, #24] - 800b2aa: 3314 adds r3, #20 - 800b2ac: 4618 mov r0, r3 - 800b2ae: f7fd fe5d bl 8008f6c - 800b2b2: 4603 mov r3, r0 - 800b2b4: b29a uxth r2, r3 - 800b2b6: 8c7b ldrh r3, [r7, #34] ; 0x22 - 800b2b8: 4413 add r3, r2 - 800b2ba: b29b uxth r3, r3 - 800b2bc: b21b sxth r3, r3 - 800b2be: e001 b.n 800b2c4 - 800b2c0: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 800b2c4: 85fb strh r3, [r7, #46] ; 0x2e - 800b2c6: e010 b.n 800b2ea + 800b220: f9b7 402e ldrsh.w r4, [r7, #46] ; 0x2e + 800b224: 69bb ldr r3, [r7, #24] + 800b226: 3314 adds r3, #20 + 800b228: 4618 mov r0, r3 + 800b22a: f7fd fe69 bl 8008f00 + 800b22e: 4603 mov r3, r0 + 800b230: 461a mov r2, r3 + 800b232: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 800b236: 4413 add r3, r2 + 800b238: 429c cmp r4, r3 + 800b23a: dc0b bgt.n 800b254 + 800b23c: 69bb ldr r3, [r7, #24] + 800b23e: 3314 adds r3, #20 + 800b240: 4618 mov r0, r3 + 800b242: f7fd fe5d bl 8008f00 + 800b246: 4603 mov r3, r0 + 800b248: b29a uxth r2, r3 + 800b24a: 8c7b ldrh r3, [r7, #34] ; 0x22 + 800b24c: 4413 add r3, r2 + 800b24e: b29b uxth r3, r3 + 800b250: b21b sxth r3, r3 + 800b252: e001 b.n 800b258 + 800b254: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 800b258: 85fb strh r3, [r7, #46] ; 0x2e + 800b25a: e010 b.n 800b27e } } } else { child_res = LV_MAX(child_res, child->coords.x2 - obj->coords.x1 + 1); - 800b2c8: 69bb ldr r3, [r7, #24] - 800b2ca: f9b3 3018 ldrsh.w r3, [r3, #24] - 800b2ce: 461a mov r2, r3 - 800b2d0: 687b ldr r3, [r7, #4] - 800b2d2: f9b3 3014 ldrsh.w r3, [r3, #20] - 800b2d6: 1ad3 subs r3, r2, r3 - 800b2d8: 1c5a adds r2, r3, #1 - 800b2da: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 800b2de: 4293 cmp r3, r2 - 800b2e0: bfb8 it lt - 800b2e2: 4613 movlt r3, r2 - 800b2e4: 85fb strh r3, [r7, #46] ; 0x2e - 800b2e6: e000 b.n 800b2ea + 800b25c: 69bb ldr r3, [r7, #24] + 800b25e: f9b3 3018 ldrsh.w r3, [r3, #24] + 800b262: 461a mov r2, r3 + 800b264: 687b ldr r3, [r7, #4] + 800b266: f9b3 3014 ldrsh.w r3, [r3, #20] + 800b26a: 1ad3 subs r3, r2, r3 + 800b26c: 1c5a adds r2, r3, #1 + 800b26e: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 800b272: 4293 cmp r3, r2 + 800b274: bfb8 it lt + 800b276: 4613 movlt r3, r2 + 800b278: 85fb strh r3, [r7, #46] ; 0x2e + 800b27a: e000 b.n 800b27e if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 800b2e8: bf00 nop + 800b27c: bf00 nop for(i = 0; i < child_cnt; i++) { - 800b2ea: 6abb ldr r3, [r7, #40] ; 0x28 - 800b2ec: 3301 adds r3, #1 - 800b2ee: 62bb str r3, [r7, #40] ; 0x28 - 800b2f0: 6aba ldr r2, [r7, #40] ; 0x28 - 800b2f2: 69fb ldr r3, [r7, #28] - 800b2f4: 429a cmp r2, r3 - 800b2f6: d380 bcc.n 800b1fa + 800b27e: 6abb ldr r3, [r7, #40] ; 0x28 + 800b280: 3301 adds r3, #1 + 800b282: 62bb str r3, [r7, #40] ; 0x28 + 800b284: 6aba ldr r2, [r7, #40] ; 0x28 + 800b286: 69fb ldr r3, [r7, #28] + 800b288: 429a cmp r2, r3 + 800b28a: d380 bcc.n 800b18e } } if(child_res != LV_COORD_MIN) { - 800b2f8: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 800b2fc: 4a0e ldr r2, [pc, #56] ; (800b338 ) - 800b2fe: 4293 cmp r3, r2 - 800b300: d004 beq.n 800b30c + 800b28c: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 800b290: 4a0e ldr r2, [pc, #56] ; (800b2cc ) + 800b292: 4293 cmp r3, r2 + 800b294: d004 beq.n 800b2a0 child_res += pad_right; - 800b302: 8dfa ldrh r2, [r7, #46] ; 0x2e - 800b304: 8cbb ldrh r3, [r7, #36] ; 0x24 - 800b306: 4413 add r3, r2 - 800b308: b29b uxth r3, r3 - 800b30a: 85fb strh r3, [r7, #46] ; 0x2e + 800b296: 8dfa ldrh r2, [r7, #46] ; 0x2e + 800b298: 8cbb ldrh r3, [r7, #36] ; 0x24 + 800b29a: 4413 add r3, r2 + 800b29c: b29b uxth r3, r3 + 800b29e: 85fb strh r3, [r7, #46] ; 0x2e } } if(child_res == LV_COORD_MIN) return self_w; - 800b30c: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 800b310: 4a09 ldr r2, [pc, #36] ; (800b338 ) - 800b312: 4293 cmp r3, r2 - 800b314: d102 bne.n 800b31c - 800b316: f9b7 3020 ldrsh.w r3, [r7, #32] - 800b31a: e007 b.n 800b32c + 800b2a0: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 800b2a4: 4a09 ldr r2, [pc, #36] ; (800b2cc ) + 800b2a6: 4293 cmp r3, r2 + 800b2a8: d102 bne.n 800b2b0 + 800b2aa: f9b7 3020 ldrsh.w r3, [r7, #32] + 800b2ae: e007 b.n 800b2c0 else return LV_MAX(child_res, self_w); - 800b31c: f9b7 2020 ldrsh.w r2, [r7, #32] - 800b320: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 800b324: 4293 cmp r3, r2 - 800b326: bfb8 it lt - 800b328: 4613 movlt r3, r2 - 800b32a: b21b sxth r3, r3 + 800b2b0: f9b7 2020 ldrsh.w r2, [r7, #32] + 800b2b4: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 800b2b8: 4293 cmp r3, r2 + 800b2ba: bfb8 it lt + 800b2bc: 4613 movlt r3, r2 + 800b2be: b21b sxth r3, r3 } - 800b32c: 4618 mov r0, r3 - 800b32e: 3734 adds r7, #52 ; 0x34 - 800b330: 46bd mov sp, r7 - 800b332: bd90 pop {r4, r7, pc} - 800b334: 00040001 .word 0x00040001 - 800b338: ffffe001 .word 0xffffe001 + 800b2c0: 4618 mov r0, r3 + 800b2c2: 3734 adds r7, #52 ; 0x34 + 800b2c4: 46bd mov sp, r7 + 800b2c6: bd90 pop {r4, r7, pc} + 800b2c8: 00040001 .word 0x00040001 + 800b2cc: ffffe001 .word 0xffffe001 -0800b33c : +0800b2d0 : static lv_coord_t calc_content_height(lv_obj_t * obj) { - 800b33c: b590 push {r4, r7, lr} - 800b33e: b08b sub sp, #44 ; 0x2c - 800b340: af00 add r7, sp, #0 - 800b342: 6078 str r0, [r7, #4] + 800b2d0: b590 push {r4, r7, lr} + 800b2d2: b08b sub sp, #44 ; 0x2c + 800b2d4: af00 add r7, sp, #0 + 800b2d6: 6078 str r0, [r7, #4] lv_obj_scroll_to_y(obj, 0, LV_ANIM_OFF); - 800b344: 2200 movs r2, #0 - 800b346: 2100 movs r1, #0 - 800b348: 6878 ldr r0, [r7, #4] - 800b34a: f000 ff7f bl 800c24c + 800b2d8: 2200 movs r2, #0 + 800b2da: 2100 movs r1, #0 + 800b2dc: 6878 ldr r0, [r7, #4] + 800b2de: f000 ff7f bl 800c1e0 lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 800b34e: 2100 movs r1, #0 - 800b350: 6878 ldr r0, [r7, #4] - 800b352: f7fd ff54 bl 80091fe - 800b356: 4603 mov r3, r0 - 800b358: 83fb strh r3, [r7, #30] + 800b2e2: 2100 movs r1, #0 + 800b2e4: 6878 ldr r0, [r7, #4] + 800b2e6: f7fd ff54 bl 8009192 + 800b2ea: 4603 mov r3, r0 + 800b2ec: 83fb strh r3, [r7, #30] lv_coord_t pad_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN) + border_width; - 800b35a: 2100 movs r1, #0 - 800b35c: 6878 ldr r0, [r7, #4] - 800b35e: f7fd ff02 bl 8009166 - 800b362: 4603 mov r3, r0 - 800b364: b29a uxth r2, r3 - 800b366: 8bfb ldrh r3, [r7, #30] - 800b368: 4413 add r3, r2 - 800b36a: b29b uxth r3, r3 - 800b36c: 83bb strh r3, [r7, #28] + 800b2ee: 2100 movs r1, #0 + 800b2f0: 6878 ldr r0, [r7, #4] + 800b2f2: f7fd ff02 bl 80090fa + 800b2f6: 4603 mov r3, r0 + 800b2f8: b29a uxth r2, r3 + 800b2fa: 8bfb ldrh r3, [r7, #30] + 800b2fc: 4413 add r3, r2 + 800b2fe: b29b uxth r3, r3 + 800b300: 83bb strh r3, [r7, #28] lv_coord_t pad_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN) + border_width; - 800b36e: 2100 movs r1, #0 - 800b370: 6878 ldr r0, [r7, #4] - 800b372: f7fd ff0b bl 800918c - 800b376: 4603 mov r3, r0 - 800b378: b29a uxth r2, r3 - 800b37a: 8bfb ldrh r3, [r7, #30] - 800b37c: 4413 add r3, r2 - 800b37e: b29b uxth r3, r3 - 800b380: 837b strh r3, [r7, #26] + 800b302: 2100 movs r1, #0 + 800b304: 6878 ldr r0, [r7, #4] + 800b306: f7fd ff0b bl 8009120 + 800b30a: 4603 mov r3, r0 + 800b30c: b29a uxth r2, r3 + 800b30e: 8bfb ldrh r3, [r7, #30] + 800b310: 4413 add r3, r2 + 800b312: b29b uxth r3, r3 + 800b314: 837b strh r3, [r7, #26] lv_coord_t self_h; self_h = lv_obj_get_self_height(obj) + pad_top + pad_bottom; - 800b382: 6878 ldr r0, [r7, #4] - 800b384: f7fe ffc7 bl 800a316 - 800b388: 4603 mov r3, r0 - 800b38a: b29a uxth r2, r3 - 800b38c: 8bbb ldrh r3, [r7, #28] - 800b38e: 4413 add r3, r2 - 800b390: b29a uxth r2, r3 - 800b392: 8b7b ldrh r3, [r7, #26] - 800b394: 4413 add r3, r2 - 800b396: b29b uxth r3, r3 - 800b398: 833b strh r3, [r7, #24] + 800b316: 6878 ldr r0, [r7, #4] + 800b318: f7fe ffc7 bl 800a2aa + 800b31c: 4603 mov r3, r0 + 800b31e: b29a uxth r2, r3 + 800b320: 8bbb ldrh r3, [r7, #28] + 800b322: 4413 add r3, r2 + 800b324: b29a uxth r2, r3 + 800b326: 8b7b ldrh r3, [r7, #26] + 800b328: 4413 add r3, r2 + 800b32a: b29b uxth r3, r3 + 800b32c: 833b strh r3, [r7, #24] lv_coord_t child_res = LV_COORD_MIN; - 800b39a: f24e 0301 movw r3, #57345 ; 0xe001 - 800b39e: 84fb strh r3, [r7, #38] ; 0x26 + 800b32e: f24e 0301 movw r3, #57345 ; 0xe001 + 800b332: 84fb strh r3, [r7, #38] ; 0x26 uint32_t i; uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 800b3a0: 6878 ldr r0, [r7, #4] - 800b3a2: f004 f9f5 bl 800f790 - 800b3a6: 6178 str r0, [r7, #20] + 800b334: 6878 ldr r0, [r7, #4] + 800b336: f004 f9e1 bl 800f6fc + 800b33a: 6178 str r0, [r7, #20] for(i = 0; i < child_cnt; i++) { - 800b3a8: 2300 movs r3, #0 - 800b3aa: 623b str r3, [r7, #32] - 800b3ac: e06b b.n 800b486 + 800b33c: 2300 movs r3, #0 + 800b33e: 623b str r3, [r7, #32] + 800b340: e06b b.n 800b41a lv_obj_t * child = obj->spec_attr->children[i]; - 800b3ae: 687b ldr r3, [r7, #4] - 800b3b0: 689b ldr r3, [r3, #8] - 800b3b2: 681a ldr r2, [r3, #0] - 800b3b4: 6a3b ldr r3, [r7, #32] - 800b3b6: 009b lsls r3, r3, #2 - 800b3b8: 4413 add r3, r2 - 800b3ba: 681b ldr r3, [r3, #0] - 800b3bc: 613b str r3, [r7, #16] + 800b342: 687b ldr r3, [r7, #4] + 800b344: 689b ldr r3, [r3, #8] + 800b346: 681a ldr r2, [r3, #0] + 800b348: 6a3b ldr r3, [r7, #32] + 800b34a: 009b lsls r3, r3, #2 + 800b34c: 4413 add r3, r2 + 800b34e: 681b ldr r3, [r3, #0] + 800b350: 613b str r3, [r7, #16] if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 800b3be: 4940 ldr r1, [pc, #256] ; (800b4c0 ) - 800b3c0: 6938 ldr r0, [r7, #16] - 800b3c2: f7fb f9f2 bl 80067aa - 800b3c6: 4603 mov r3, r0 - 800b3c8: 2b00 cmp r3, #0 - 800b3ca: d156 bne.n 800b47a + 800b352: 4940 ldr r1, [pc, #256] ; (800b454 ) + 800b354: 6938 ldr r0, [r7, #16] + 800b356: f7fb f9f2 bl 800673e + 800b35a: 4603 mov r3, r0 + 800b35c: 2b00 cmp r3, #0 + 800b35e: d156 bne.n 800b40e if(!lv_obj_is_layout_positioned(child)) { - 800b3cc: 6938 ldr r0, [r7, #16] - 800b3ce: f7fe fa65 bl 800989c - 800b3d2: 4603 mov r3, r0 - 800b3d4: f083 0301 eor.w r3, r3, #1 - 800b3d8: b2db uxtb r3, r3 - 800b3da: 2b00 cmp r3, #0 - 800b3dc: d03d beq.n 800b45a + 800b360: 6938 ldr r0, [r7, #16] + 800b362: f7fe fa65 bl 8009830 + 800b366: 4603 mov r3, r0 + 800b368: f083 0301 eor.w r3, r3, #1 + 800b36c: b2db uxtb r3, r3 + 800b36e: 2b00 cmp r3, #0 + 800b370: d03d beq.n 800b3ee lv_align_t align = lv_obj_get_style_align(child, 0); - 800b3de: 2100 movs r1, #0 - 800b3e0: 6938 ldr r0, [r7, #16] - 800b3e2: f7fd fe87 bl 80090f4 - 800b3e6: 4603 mov r3, r0 - 800b3e8: 73fb strb r3, [r7, #15] + 800b372: 2100 movs r1, #0 + 800b374: 6938 ldr r0, [r7, #16] + 800b376: f7fd fe87 bl 8009088 + 800b37a: 4603 mov r3, r0 + 800b37c: 73fb strb r3, [r7, #15] switch(align) { - 800b3ea: 7bfb ldrb r3, [r7, #15] - 800b3ec: 2b03 cmp r3, #3 - 800b3ee: d80f bhi.n 800b410 + 800b37e: 7bfb ldrb r3, [r7, #15] + 800b380: 2b03 cmp r3, #3 + 800b382: d80f bhi.n 800b3a4 case LV_ALIGN_DEFAULT: case LV_ALIGN_TOP_RIGHT: case LV_ALIGN_TOP_MID: case LV_ALIGN_TOP_LEFT: /*Normal top aligns. */ child_res = LV_MAX(child_res, child->coords.y2 - obj->coords.y1 + 1); - 800b3f0: 693b ldr r3, [r7, #16] - 800b3f2: f9b3 301a ldrsh.w r3, [r3, #26] - 800b3f6: 461a mov r2, r3 - 800b3f8: 687b ldr r3, [r7, #4] - 800b3fa: f9b3 3016 ldrsh.w r3, [r3, #22] - 800b3fe: 1ad3 subs r3, r2, r3 - 800b400: 1c5a adds r2, r3, #1 - 800b402: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 800b406: 4293 cmp r3, r2 - 800b408: bfb8 it lt - 800b40a: 4613 movlt r3, r2 - 800b40c: 84fb strh r3, [r7, #38] ; 0x26 + 800b384: 693b ldr r3, [r7, #16] + 800b386: f9b3 301a ldrsh.w r3, [r3, #26] + 800b38a: 461a mov r2, r3 + 800b38c: 687b ldr r3, [r7, #4] + 800b38e: f9b3 3016 ldrsh.w r3, [r3, #22] + 800b392: 1ad3 subs r3, r2, r3 + 800b394: 1c5a adds r2, r3, #1 + 800b396: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 800b39a: 4293 cmp r3, r2 + 800b39c: bfb8 it lt + 800b39e: 4613 movlt r3, r2 + 800b3a0: 84fb strh r3, [r7, #38] ; 0x26 break; - 800b40e: e037 b.n 800b480 + 800b3a2: e037 b.n 800b414 default: /* Consider other cases only if y=0 and use the height of the object. * With y!=0 circular dependency could occur. */ if(lv_obj_get_style_y(child, 0) == 0) { - 800b410: 2100 movs r1, #0 - 800b412: 6938 ldr r0, [r7, #16] - 800b414: f7fd fe5b bl 80090ce - 800b418: 4603 mov r3, r0 - 800b41a: 2b00 cmp r3, #0 - 800b41c: d12f bne.n 800b47e + 800b3a4: 2100 movs r1, #0 + 800b3a6: 6938 ldr r0, [r7, #16] + 800b3a8: f7fd fe5b bl 8009062 + 800b3ac: 4603 mov r3, r0 + 800b3ae: 2b00 cmp r3, #0 + 800b3b0: d12f bne.n 800b412 child_res = LV_MAX(child_res, lv_area_get_height(&child->coords) + pad_top); - 800b41e: f9b7 4026 ldrsh.w r4, [r7, #38] ; 0x26 - 800b422: 693b ldr r3, [r7, #16] - 800b424: 3314 adds r3, #20 - 800b426: 4618 mov r0, r3 - 800b428: f7fd fdb6 bl 8008f98 - 800b42c: 4603 mov r3, r0 - 800b42e: 461a mov r2, r3 - 800b430: f9b7 301c ldrsh.w r3, [r7, #28] - 800b434: 4413 add r3, r2 - 800b436: 429c cmp r4, r3 - 800b438: dc0b bgt.n 800b452 - 800b43a: 693b ldr r3, [r7, #16] - 800b43c: 3314 adds r3, #20 - 800b43e: 4618 mov r0, r3 - 800b440: f7fd fdaa bl 8008f98 - 800b444: 4603 mov r3, r0 - 800b446: b29a uxth r2, r3 - 800b448: 8bbb ldrh r3, [r7, #28] - 800b44a: 4413 add r3, r2 - 800b44c: b29b uxth r3, r3 - 800b44e: b21b sxth r3, r3 - 800b450: e001 b.n 800b456 - 800b452: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 800b456: 84fb strh r3, [r7, #38] ; 0x26 + 800b3b2: f9b7 4026 ldrsh.w r4, [r7, #38] ; 0x26 + 800b3b6: 693b ldr r3, [r7, #16] + 800b3b8: 3314 adds r3, #20 + 800b3ba: 4618 mov r0, r3 + 800b3bc: f7fd fdb6 bl 8008f2c + 800b3c0: 4603 mov r3, r0 + 800b3c2: 461a mov r2, r3 + 800b3c4: f9b7 301c ldrsh.w r3, [r7, #28] + 800b3c8: 4413 add r3, r2 + 800b3ca: 429c cmp r4, r3 + 800b3cc: dc0b bgt.n 800b3e6 + 800b3ce: 693b ldr r3, [r7, #16] + 800b3d0: 3314 adds r3, #20 + 800b3d2: 4618 mov r0, r3 + 800b3d4: f7fd fdaa bl 8008f2c + 800b3d8: 4603 mov r3, r0 + 800b3da: b29a uxth r2, r3 + 800b3dc: 8bbb ldrh r3, [r7, #28] + 800b3de: 4413 add r3, r2 + 800b3e0: b29b uxth r3, r3 + 800b3e2: b21b sxth r3, r3 + 800b3e4: e001 b.n 800b3ea + 800b3e6: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 800b3ea: 84fb strh r3, [r7, #38] ; 0x26 } break; - 800b458: e011 b.n 800b47e + 800b3ec: e011 b.n 800b412 } } else { child_res = LV_MAX(child_res, child->coords.y2 - obj->coords.y1 + 1); - 800b45a: 693b ldr r3, [r7, #16] - 800b45c: f9b3 301a ldrsh.w r3, [r3, #26] - 800b460: 461a mov r2, r3 - 800b462: 687b ldr r3, [r7, #4] - 800b464: f9b3 3016 ldrsh.w r3, [r3, #22] - 800b468: 1ad3 subs r3, r2, r3 - 800b46a: 1c5a adds r2, r3, #1 - 800b46c: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 800b470: 4293 cmp r3, r2 - 800b472: bfb8 it lt - 800b474: 4613 movlt r3, r2 - 800b476: 84fb strh r3, [r7, #38] ; 0x26 - 800b478: e002 b.n 800b480 + 800b3ee: 693b ldr r3, [r7, #16] + 800b3f0: f9b3 301a ldrsh.w r3, [r3, #26] + 800b3f4: 461a mov r2, r3 + 800b3f6: 687b ldr r3, [r7, #4] + 800b3f8: f9b3 3016 ldrsh.w r3, [r3, #22] + 800b3fc: 1ad3 subs r3, r2, r3 + 800b3fe: 1c5a adds r2, r3, #1 + 800b400: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 800b404: 4293 cmp r3, r2 + 800b406: bfb8 it lt + 800b408: 4613 movlt r3, r2 + 800b40a: 84fb strh r3, [r7, #38] ; 0x26 + 800b40c: e002 b.n 800b414 if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 800b47a: bf00 nop - 800b47c: e000 b.n 800b480 + 800b40e: bf00 nop + 800b410: e000 b.n 800b414 break; - 800b47e: bf00 nop + 800b412: bf00 nop for(i = 0; i < child_cnt; i++) { - 800b480: 6a3b ldr r3, [r7, #32] - 800b482: 3301 adds r3, #1 - 800b484: 623b str r3, [r7, #32] - 800b486: 6a3a ldr r2, [r7, #32] - 800b488: 697b ldr r3, [r7, #20] - 800b48a: 429a cmp r2, r3 - 800b48c: d38f bcc.n 800b3ae + 800b414: 6a3b ldr r3, [r7, #32] + 800b416: 3301 adds r3, #1 + 800b418: 623b str r3, [r7, #32] + 800b41a: 6a3a ldr r2, [r7, #32] + 800b41c: 697b ldr r3, [r7, #20] + 800b41e: 429a cmp r2, r3 + 800b420: d38f bcc.n 800b342 } } if(child_res != LV_COORD_MIN) { - 800b48e: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 800b492: 4a0c ldr r2, [pc, #48] ; (800b4c4 ) - 800b494: 4293 cmp r3, r2 - 800b496: d00d beq.n 800b4b4 + 800b422: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 800b426: 4a0c ldr r2, [pc, #48] ; (800b458 ) + 800b428: 4293 cmp r3, r2 + 800b42a: d00d beq.n 800b448 child_res += pad_bottom; - 800b498: 8cfa ldrh r2, [r7, #38] ; 0x26 - 800b49a: 8b7b ldrh r3, [r7, #26] - 800b49c: 4413 add r3, r2 - 800b49e: b29b uxth r3, r3 - 800b4a0: 84fb strh r3, [r7, #38] ; 0x26 + 800b42c: 8cfa ldrh r2, [r7, #38] ; 0x26 + 800b42e: 8b7b ldrh r3, [r7, #26] + 800b430: 4413 add r3, r2 + 800b432: b29b uxth r3, r3 + 800b434: 84fb strh r3, [r7, #38] ; 0x26 return LV_MAX(child_res, self_h); - 800b4a2: f9b7 2018 ldrsh.w r2, [r7, #24] - 800b4a6: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 800b4aa: 4293 cmp r3, r2 - 800b4ac: bfb8 it lt - 800b4ae: 4613 movlt r3, r2 - 800b4b0: b21b sxth r3, r3 - 800b4b2: e001 b.n 800b4b8 + 800b436: f9b7 2018 ldrsh.w r2, [r7, #24] + 800b43a: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 800b43e: 4293 cmp r3, r2 + 800b440: bfb8 it lt + 800b442: 4613 movlt r3, r2 + 800b444: b21b sxth r3, r3 + 800b446: e001 b.n 800b44c } else { return self_h; - 800b4b4: f9b7 3018 ldrsh.w r3, [r7, #24] + 800b448: f9b7 3018 ldrsh.w r3, [r7, #24] } } - 800b4b8: 4618 mov r0, r3 - 800b4ba: 372c adds r7, #44 ; 0x2c - 800b4bc: 46bd mov sp, r7 - 800b4be: bd90 pop {r4, r7, pc} - 800b4c0: 00040001 .word 0x00040001 - 800b4c4: ffffe001 .word 0xffffe001 + 800b44c: 4618 mov r0, r3 + 800b44e: 372c adds r7, #44 ; 0x2c + 800b450: 46bd mov sp, r7 + 800b452: bd90 pop {r4, r7, pc} + 800b454: 00040001 .word 0x00040001 + 800b458: ffffe001 .word 0xffffe001 -0800b4c8 : +0800b45c : static void layout_update_core(lv_obj_t * obj) { - 800b4c8: b580 push {r7, lr} - 800b4ca: b088 sub sp, #32 - 800b4cc: af00 add r7, sp, #0 - 800b4ce: 6078 str r0, [r7, #4] + 800b45c: b580 push {r7, lr} + 800b45e: b088 sub sp, #32 + 800b460: af00 add r7, sp, #0 + 800b462: 6078 str r0, [r7, #4] uint32_t i; uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 800b4d0: 6878 ldr r0, [r7, #4] - 800b4d2: f004 f95d bl 800f790 - 800b4d6: 61b8 str r0, [r7, #24] + 800b464: 6878 ldr r0, [r7, #4] + 800b466: f004 f949 bl 800f6fc + 800b46a: 61b8 str r0, [r7, #24] for(i = 0; i < child_cnt; i++) { - 800b4d8: 2300 movs r3, #0 - 800b4da: 61fb str r3, [r7, #28] - 800b4dc: e00d b.n 800b4fa + 800b46c: 2300 movs r3, #0 + 800b46e: 61fb str r3, [r7, #28] + 800b470: e00d b.n 800b48e lv_obj_t * child = obj->spec_attr->children[i]; - 800b4de: 687b ldr r3, [r7, #4] - 800b4e0: 689b ldr r3, [r3, #8] - 800b4e2: 681a ldr r2, [r3, #0] - 800b4e4: 69fb ldr r3, [r7, #28] - 800b4e6: 009b lsls r3, r3, #2 - 800b4e8: 4413 add r3, r2 - 800b4ea: 681b ldr r3, [r3, #0] - 800b4ec: 60fb str r3, [r7, #12] + 800b472: 687b ldr r3, [r7, #4] + 800b474: 689b ldr r3, [r3, #8] + 800b476: 681a ldr r2, [r3, #0] + 800b478: 69fb ldr r3, [r7, #28] + 800b47a: 009b lsls r3, r3, #2 + 800b47c: 4413 add r3, r2 + 800b47e: 681b ldr r3, [r3, #0] + 800b480: 60fb str r3, [r7, #12] layout_update_core(child); - 800b4ee: 68f8 ldr r0, [r7, #12] - 800b4f0: f7ff ffea bl 800b4c8 + 800b482: 68f8 ldr r0, [r7, #12] + 800b484: f7ff ffea bl 800b45c for(i = 0; i < child_cnt; i++) { - 800b4f4: 69fb ldr r3, [r7, #28] - 800b4f6: 3301 adds r3, #1 - 800b4f8: 61fb str r3, [r7, #28] - 800b4fa: 69fa ldr r2, [r7, #28] - 800b4fc: 69bb ldr r3, [r7, #24] - 800b4fe: 429a cmp r2, r3 - 800b500: d3ed bcc.n 800b4de + 800b488: 69fb ldr r3, [r7, #28] + 800b48a: 3301 adds r3, #1 + 800b48c: 61fb str r3, [r7, #28] + 800b48e: 69fa ldr r2, [r7, #28] + 800b490: 69bb ldr r3, [r7, #24] + 800b492: 429a cmp r2, r3 + 800b494: d3ed bcc.n 800b472 } if(obj->layout_inv == 0) return; - 800b502: 687b ldr r3, [r7, #4] - 800b504: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 - 800b508: f003 0301 and.w r3, r3, #1 - 800b50c: b2db uxtb r3, r3 - 800b50e: 2b00 cmp r3, #0 - 800b510: d034 beq.n 800b57c + 800b496: 687b ldr r3, [r7, #4] + 800b498: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 + 800b49c: f003 0301 and.w r3, r3, #1 + 800b4a0: b2db uxtb r3, r3 + 800b4a2: 2b00 cmp r3, #0 + 800b4a4: d034 beq.n 800b510 obj->layout_inv = 0; - 800b512: 687a ldr r2, [r7, #4] - 800b514: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 800b518: f36f 0300 bfc r3, #0, #1 - 800b51c: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 800b4a6: 687a ldr r2, [r7, #4] + 800b4a8: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 800b4ac: f36f 0300 bfc r3, #0, #1 + 800b4b0: f882 3022 strb.w r3, [r2, #34] ; 0x22 lv_obj_refr_size(obj); - 800b520: 6878 ldr r0, [r7, #4] - 800b522: f7fd ff09 bl 8009338 + 800b4b4: 6878 ldr r0, [r7, #4] + 800b4b6: f7fd ff09 bl 80092cc lv_obj_refr_pos(obj); - 800b526: 6878 ldr r0, [r7, #4] - 800b528: f7fe ff32 bl 800a390 + 800b4ba: 6878 ldr r0, [r7, #4] + 800b4bc: f7fe ff32 bl 800a324 if(child_cnt > 0) { - 800b52c: 69bb ldr r3, [r7, #24] - 800b52e: 2b00 cmp r3, #0 - 800b530: d025 beq.n 800b57e + 800b4c0: 69bb ldr r3, [r7, #24] + 800b4c2: 2b00 cmp r3, #0 + 800b4c4: d025 beq.n 800b512 uint32_t layout_id = lv_obj_get_style_layout(obj, LV_PART_MAIN); - 800b532: 2100 movs r1, #0 - 800b534: 6878 ldr r0, [r7, #4] - 800b536: f7fd fe75 bl 8009224 - 800b53a: 4603 mov r3, r0 - 800b53c: 617b str r3, [r7, #20] + 800b4c6: 2100 movs r1, #0 + 800b4c8: 6878 ldr r0, [r7, #4] + 800b4ca: f7fd fe75 bl 80091b8 + 800b4ce: 4603 mov r3, r0 + 800b4d0: 617b str r3, [r7, #20] if(layout_id > 0 && layout_id <= layout_cnt) { - 800b53e: 697b ldr r3, [r7, #20] - 800b540: 2b00 cmp r3, #0 - 800b542: d01c beq.n 800b57e - 800b544: 4b0f ldr r3, [pc, #60] ; (800b584 ) - 800b546: 681b ldr r3, [r3, #0] - 800b548: 697a ldr r2, [r7, #20] - 800b54a: 429a cmp r2, r3 - 800b54c: d817 bhi.n 800b57e + 800b4d2: 697b ldr r3, [r7, #20] + 800b4d4: 2b00 cmp r3, #0 + 800b4d6: d01c beq.n 800b512 + 800b4d8: 4b0f ldr r3, [pc, #60] ; (800b518 ) + 800b4da: 681b ldr r3, [r3, #0] + 800b4dc: 697a ldr r2, [r7, #20] + 800b4de: 429a cmp r2, r3 + 800b4e0: d817 bhi.n 800b512 void * user_data = LV_GC_ROOT(_lv_layout_list)[layout_id - 1].user_data; - 800b54e: 4b0e ldr r3, [pc, #56] ; (800b588 ) - 800b550: 681a ldr r2, [r3, #0] - 800b552: 697b ldr r3, [r7, #20] - 800b554: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 - 800b558: 3b01 subs r3, #1 - 800b55a: 00db lsls r3, r3, #3 - 800b55c: 4413 add r3, r2 - 800b55e: 685b ldr r3, [r3, #4] - 800b560: 613b str r3, [r7, #16] + 800b4e2: 4b0e ldr r3, [pc, #56] ; (800b51c ) + 800b4e4: 681a ldr r2, [r3, #0] + 800b4e6: 697b ldr r3, [r7, #20] + 800b4e8: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 + 800b4ec: 3b01 subs r3, #1 + 800b4ee: 00db lsls r3, r3, #3 + 800b4f0: 4413 add r3, r2 + 800b4f2: 685b ldr r3, [r3, #4] + 800b4f4: 613b str r3, [r7, #16] LV_GC_ROOT(_lv_layout_list)[layout_id - 1].cb(obj, user_data); - 800b562: 4b09 ldr r3, [pc, #36] ; (800b588 ) - 800b564: 681a ldr r2, [r3, #0] - 800b566: 697b ldr r3, [r7, #20] - 800b568: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 - 800b56c: 3b01 subs r3, #1 - 800b56e: 00db lsls r3, r3, #3 - 800b570: 4413 add r3, r2 - 800b572: 681b ldr r3, [r3, #0] - 800b574: 6939 ldr r1, [r7, #16] - 800b576: 6878 ldr r0, [r7, #4] - 800b578: 4798 blx r3 - 800b57a: e000 b.n 800b57e + 800b4f6: 4b09 ldr r3, [pc, #36] ; (800b51c ) + 800b4f8: 681a ldr r2, [r3, #0] + 800b4fa: 697b ldr r3, [r7, #20] + 800b4fc: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 + 800b500: 3b01 subs r3, #1 + 800b502: 00db lsls r3, r3, #3 + 800b504: 4413 add r3, r2 + 800b506: 681b ldr r3, [r3, #0] + 800b508: 6939 ldr r1, [r7, #16] + 800b50a: 6878 ldr r0, [r7, #4] + 800b50c: 4798 blx r3 + 800b50e: e000 b.n 800b512 if(obj->layout_inv == 0) return; - 800b57c: bf00 nop + 800b510: bf00 nop } } } - 800b57e: 3720 adds r7, #32 - 800b580: 46bd mov sp, r7 - 800b582: bd80 pop {r7, pc} - 800b584: 20001b04 .word 0x20001b04 - 800b588: 20001d64 .word 0x20001d64 + 800b512: 3720 adds r7, #32 + 800b514: 46bd mov sp, r7 + 800b516: bd80 pop {r7, pc} + 800b518: 20001b04 .word 0x20001b04 + 800b51c: 20001d64 .word 0x20001d64 -0800b58c : +0800b520 : * Get the width of an area * @param area_p pointer to an area * @return the width of the area (if x1 == x2 -> width = 1) */ static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p) { - 800b58c: b480 push {r7} - 800b58e: b083 sub sp, #12 - 800b590: af00 add r7, sp, #0 - 800b592: 6078 str r0, [r7, #4] + 800b520: b480 push {r7} + 800b522: b083 sub sp, #12 + 800b524: af00 add r7, sp, #0 + 800b526: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 800b594: 687b ldr r3, [r7, #4] - 800b596: f9b3 3004 ldrsh.w r3, [r3, #4] - 800b59a: b29a uxth r2, r3 - 800b59c: 687b ldr r3, [r7, #4] - 800b59e: f9b3 3000 ldrsh.w r3, [r3] - 800b5a2: b29b uxth r3, r3 - 800b5a4: 1ad3 subs r3, r2, r3 - 800b5a6: b29b uxth r3, r3 - 800b5a8: 3301 adds r3, #1 - 800b5aa: b29b uxth r3, r3 - 800b5ac: b21b sxth r3, r3 + 800b528: 687b ldr r3, [r7, #4] + 800b52a: f9b3 3004 ldrsh.w r3, [r3, #4] + 800b52e: b29a uxth r2, r3 + 800b530: 687b ldr r3, [r7, #4] + 800b532: f9b3 3000 ldrsh.w r3, [r3] + 800b536: b29b uxth r3, r3 + 800b538: 1ad3 subs r3, r2, r3 + 800b53a: b29b uxth r3, r3 + 800b53c: 3301 adds r3, #1 + 800b53e: b29b uxth r3, r3 + 800b540: b21b sxth r3, r3 } - 800b5ae: 4618 mov r0, r3 - 800b5b0: 370c adds r7, #12 - 800b5b2: 46bd mov sp, r7 - 800b5b4: bc80 pop {r7} - 800b5b6: 4770 bx lr + 800b542: 4618 mov r0, r3 + 800b544: 370c adds r7, #12 + 800b546: 46bd mov sp, r7 + 800b548: bc80 pop {r7} + 800b54a: 4770 bx lr -0800b5b8 : +0800b54c : * Get the height of an area * @param area_p pointer to an area * @return the height of the area (if y1 == y2 -> height = 1) */ static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) { - 800b5b8: b480 push {r7} - 800b5ba: b083 sub sp, #12 - 800b5bc: af00 add r7, sp, #0 - 800b5be: 6078 str r0, [r7, #4] + 800b54c: b480 push {r7} + 800b54e: b083 sub sp, #12 + 800b550: af00 add r7, sp, #0 + 800b552: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 800b5c0: 687b ldr r3, [r7, #4] - 800b5c2: f9b3 3006 ldrsh.w r3, [r3, #6] - 800b5c6: b29a uxth r2, r3 - 800b5c8: 687b ldr r3, [r7, #4] - 800b5ca: f9b3 3002 ldrsh.w r3, [r3, #2] - 800b5ce: b29b uxth r3, r3 - 800b5d0: 1ad3 subs r3, r2, r3 - 800b5d2: b29b uxth r3, r3 - 800b5d4: 3301 adds r3, #1 - 800b5d6: b29b uxth r3, r3 - 800b5d8: b21b sxth r3, r3 + 800b554: 687b ldr r3, [r7, #4] + 800b556: f9b3 3006 ldrsh.w r3, [r3, #6] + 800b55a: b29a uxth r2, r3 + 800b55c: 687b ldr r3, [r7, #4] + 800b55e: f9b3 3002 ldrsh.w r3, [r3, #2] + 800b562: b29b uxth r3, r3 + 800b564: 1ad3 subs r3, r2, r3 + 800b566: b29b uxth r3, r3 + 800b568: 3301 adds r3, #1 + 800b56a: b29b uxth r3, r3 + 800b56c: b21b sxth r3, r3 } - 800b5da: 4618 mov r0, r3 - 800b5dc: 370c adds r7, #12 - 800b5de: 46bd mov sp, r7 - 800b5e0: bc80 pop {r7} - 800b5e2: 4770 bx lr + 800b56e: 4618 mov r0, r3 + 800b570: 370c adds r7, #12 + 800b572: 46bd mov sp, r7 + 800b574: bc80 pop {r7} + 800b576: 4770 bx lr -0800b5e4 : +0800b578 : * Set a variable to animate * @param a pointer to an initialized `lv_anim_t` variable * @param var pointer to a variable to animate */ static inline void lv_anim_set_var(lv_anim_t * a, void * var) { - 800b5e4: b480 push {r7} - 800b5e6: b083 sub sp, #12 - 800b5e8: af00 add r7, sp, #0 - 800b5ea: 6078 str r0, [r7, #4] - 800b5ec: 6039 str r1, [r7, #0] + 800b578: b480 push {r7} + 800b57a: b083 sub sp, #12 + 800b57c: af00 add r7, sp, #0 + 800b57e: 6078 str r0, [r7, #4] + 800b580: 6039 str r1, [r7, #0] a->var = var; - 800b5ee: 687b ldr r3, [r7, #4] - 800b5f0: 683a ldr r2, [r7, #0] - 800b5f2: 601a str r2, [r3, #0] + 800b582: 687b ldr r3, [r7, #4] + 800b584: 683a ldr r2, [r7, #0] + 800b586: 601a str r2, [r3, #0] } - 800b5f4: bf00 nop - 800b5f6: 370c adds r7, #12 - 800b5f8: 46bd mov sp, r7 - 800b5fa: bc80 pop {r7} - 800b5fc: 4770 bx lr + 800b588: bf00 nop + 800b58a: 370c adds r7, #12 + 800b58c: 46bd mov sp, r7 + 800b58e: bc80 pop {r7} + 800b590: 4770 bx lr -0800b5fe : +0800b592 : * @param exec_cb a function to execute during animation * LVGL's built-in functions can be used. * E.g. lv_obj_set_x */ static inline void lv_anim_set_exec_cb(lv_anim_t * a, lv_anim_exec_xcb_t exec_cb) { - 800b5fe: b480 push {r7} - 800b600: b083 sub sp, #12 - 800b602: af00 add r7, sp, #0 - 800b604: 6078 str r0, [r7, #4] - 800b606: 6039 str r1, [r7, #0] + 800b592: b480 push {r7} + 800b594: b083 sub sp, #12 + 800b596: af00 add r7, sp, #0 + 800b598: 6078 str r0, [r7, #4] + 800b59a: 6039 str r1, [r7, #0] a->exec_cb = exec_cb; - 800b608: 687b ldr r3, [r7, #4] - 800b60a: 683a ldr r2, [r7, #0] - 800b60c: 605a str r2, [r3, #4] + 800b59c: 687b ldr r3, [r7, #4] + 800b59e: 683a ldr r2, [r7, #0] + 800b5a0: 605a str r2, [r3, #4] } - 800b60e: bf00 nop - 800b610: 370c adds r7, #12 - 800b612: 46bd mov sp, r7 - 800b614: bc80 pop {r7} - 800b616: 4770 bx lr + 800b5a2: bf00 nop + 800b5a4: 370c adds r7, #12 + 800b5a6: 46bd mov sp, r7 + 800b5a8: bc80 pop {r7} + 800b5aa: 4770 bx lr -0800b618 : +0800b5ac : * Set the duration of an animation * @param a pointer to an initialized `lv_anim_t` variable * @param duration duration of the animation in milliseconds */ static inline void lv_anim_set_time(lv_anim_t * a, uint32_t duration) { - 800b618: b480 push {r7} - 800b61a: b083 sub sp, #12 - 800b61c: af00 add r7, sp, #0 - 800b61e: 6078 str r0, [r7, #4] - 800b620: 6039 str r1, [r7, #0] + 800b5ac: b480 push {r7} + 800b5ae: b083 sub sp, #12 + 800b5b0: af00 add r7, sp, #0 + 800b5b2: 6078 str r0, [r7, #4] + 800b5b4: 6039 str r1, [r7, #0] a->time = duration; - 800b622: 683a ldr r2, [r7, #0] - 800b624: 687b ldr r3, [r7, #4] - 800b626: 629a str r2, [r3, #40] ; 0x28 + 800b5b6: 683a ldr r2, [r7, #0] + 800b5b8: 687b ldr r3, [r7, #4] + 800b5ba: 629a str r2, [r3, #40] ; 0x28 } - 800b628: bf00 nop - 800b62a: 370c adds r7, #12 - 800b62c: 46bd mov sp, r7 - 800b62e: bc80 pop {r7} - 800b630: 4770 bx lr + 800b5bc: bf00 nop + 800b5be: 370c adds r7, #12 + 800b5c0: 46bd mov sp, r7 + 800b5c2: bc80 pop {r7} + 800b5c4: 4770 bx lr -0800b632 : +0800b5c6 : * @param a pointer to an initialized `lv_anim_t` variable * @param start the start value * @param end the end value */ static inline void lv_anim_set_values(lv_anim_t * a, int32_t start, int32_t end) { - 800b632: b480 push {r7} - 800b634: b085 sub sp, #20 - 800b636: af00 add r7, sp, #0 - 800b638: 60f8 str r0, [r7, #12] - 800b63a: 60b9 str r1, [r7, #8] - 800b63c: 607a str r2, [r7, #4] + 800b5c6: b480 push {r7} + 800b5c8: b085 sub sp, #20 + 800b5ca: af00 add r7, sp, #0 + 800b5cc: 60f8 str r0, [r7, #12] + 800b5ce: 60b9 str r1, [r7, #8] + 800b5d0: 607a str r2, [r7, #4] a->start_value = start; - 800b63e: 68fb ldr r3, [r7, #12] - 800b640: 68ba ldr r2, [r7, #8] - 800b642: 61da str r2, [r3, #28] + 800b5d2: 68fb ldr r3, [r7, #12] + 800b5d4: 68ba ldr r2, [r7, #8] + 800b5d6: 61da str r2, [r3, #28] a->current_value = start; - 800b644: 68fb ldr r3, [r7, #12] - 800b646: 68ba ldr r2, [r7, #8] - 800b648: 621a str r2, [r3, #32] + 800b5d8: 68fb ldr r3, [r7, #12] + 800b5da: 68ba ldr r2, [r7, #8] + 800b5dc: 621a str r2, [r3, #32] a->end_value = end; - 800b64a: 68fb ldr r3, [r7, #12] - 800b64c: 687a ldr r2, [r7, #4] - 800b64e: 625a str r2, [r3, #36] ; 0x24 + 800b5de: 68fb ldr r3, [r7, #12] + 800b5e0: 687a ldr r2, [r7, #4] + 800b5e2: 625a str r2, [r3, #36] ; 0x24 } - 800b650: bf00 nop - 800b652: 3714 adds r7, #20 - 800b654: 46bd mov sp, r7 - 800b656: bc80 pop {r7} - 800b658: 4770 bx lr + 800b5e4: bf00 nop + 800b5e6: 3714 adds r7, #20 + 800b5e8: 46bd mov sp, r7 + 800b5ea: bc80 pop {r7} + 800b5ec: 4770 bx lr -0800b65a : +0800b5ee : * Set the path (curve) of the animation. * @param a pointer to an initialized `lv_anim_t` variable * @param path_cb a function to set the current value of the animation. */ static inline void lv_anim_set_path_cb(lv_anim_t * a, lv_anim_path_cb_t path_cb) { - 800b65a: b480 push {r7} - 800b65c: b083 sub sp, #12 - 800b65e: af00 add r7, sp, #0 - 800b660: 6078 str r0, [r7, #4] - 800b662: 6039 str r1, [r7, #0] + 800b5ee: b480 push {r7} + 800b5f0: b083 sub sp, #12 + 800b5f2: af00 add r7, sp, #0 + 800b5f4: 6078 str r0, [r7, #4] + 800b5f6: 6039 str r1, [r7, #0] a->path_cb = path_cb; - 800b664: 687b ldr r3, [r7, #4] - 800b666: 683a ldr r2, [r7, #0] - 800b668: 619a str r2, [r3, #24] + 800b5f8: 687b ldr r3, [r7, #4] + 800b5fa: 683a ldr r2, [r7, #0] + 800b5fc: 619a str r2, [r3, #24] } - 800b66a: bf00 nop - 800b66c: 370c adds r7, #12 - 800b66e: 46bd mov sp, r7 - 800b670: bc80 pop {r7} - 800b672: 4770 bx lr + 800b5fe: bf00 nop + 800b600: 370c adds r7, #12 + 800b602: 46bd mov sp, r7 + 800b604: bc80 pop {r7} + 800b606: 4770 bx lr -0800b674 : +0800b608 : * Set a function call when the animation is ready * @param a pointer to an initialized `lv_anim_t` variable * @param ready_cb a function call when the animation is ready */ static inline void lv_anim_set_ready_cb(lv_anim_t * a, lv_anim_ready_cb_t ready_cb) { - 800b674: b480 push {r7} - 800b676: b083 sub sp, #12 - 800b678: af00 add r7, sp, #0 - 800b67a: 6078 str r0, [r7, #4] - 800b67c: 6039 str r1, [r7, #0] + 800b608: b480 push {r7} + 800b60a: b083 sub sp, #12 + 800b60c: af00 add r7, sp, #0 + 800b60e: 6078 str r0, [r7, #4] + 800b610: 6039 str r1, [r7, #0] a->ready_cb = ready_cb; - 800b67e: 687b ldr r3, [r7, #4] - 800b680: 683a ldr r2, [r7, #0] - 800b682: 60da str r2, [r3, #12] + 800b612: 687b ldr r3, [r7, #4] + 800b614: 683a ldr r2, [r7, #0] + 800b616: 60da str r2, [r3, #12] } - 800b684: bf00 nop - 800b686: 370c adds r7, #12 - 800b688: 46bd mov sp, r7 - 800b68a: bc80 pop {r7} - 800b68c: 4770 bx lr + 800b618: bf00 nop + 800b61a: 370c adds r7, #12 + 800b61c: 46bd mov sp, r7 + 800b61e: bc80 pop {r7} + 800b620: 4770 bx lr -0800b68e : +0800b622 : { - 800b68e: b580 push {r7, lr} - 800b690: b084 sub sp, #16 - 800b692: af00 add r7, sp, #0 - 800b694: 6078 str r0, [r7, #4] - 800b696: 6039 str r1, [r7, #0] + 800b622: b580 push {r7, lr} + 800b624: b084 sub sp, #16 + 800b626: af00 add r7, sp, #0 + 800b628: 6078 str r0, [r7, #4] + 800b62a: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_WIDTH); - 800b698: f241 0201 movw r2, #4097 ; 0x1001 - 800b69c: 6839 ldr r1, [r7, #0] - 800b69e: 6878 ldr r0, [r7, #4] - 800b6a0: f002 fb86 bl 800ddb0 - 800b6a4: 4603 mov r3, r0 - 800b6a6: 60fb str r3, [r7, #12] + 800b62c: f241 0201 movw r2, #4097 ; 0x1001 + 800b630: 6839 ldr r1, [r7, #0] + 800b632: 6878 ldr r0, [r7, #4] + 800b634: f002 fb86 bl 800dd44 + 800b638: 4603 mov r3, r0 + 800b63a: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 800b6a8: 68fb ldr r3, [r7, #12] - 800b6aa: b21b sxth r3, r3 + 800b63c: 68fb ldr r3, [r7, #12] + 800b63e: b21b sxth r3, r3 } - 800b6ac: 4618 mov r0, r3 - 800b6ae: 3710 adds r7, #16 - 800b6b0: 46bd mov sp, r7 - 800b6b2: bd80 pop {r7, pc} + 800b640: 4618 mov r0, r3 + 800b642: 3710 adds r7, #16 + 800b644: 46bd mov sp, r7 + 800b646: bd80 pop {r7, pc} -0800b6b4 : +0800b648 : { - 800b6b4: b580 push {r7, lr} - 800b6b6: b084 sub sp, #16 - 800b6b8: af00 add r7, sp, #0 - 800b6ba: 6078 str r0, [r7, #4] - 800b6bc: 6039 str r1, [r7, #0] + 800b648: b580 push {r7, lr} + 800b64a: b084 sub sp, #16 + 800b64c: af00 add r7, sp, #0 + 800b64e: 6078 str r0, [r7, #4] + 800b650: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 800b6be: f641 0210 movw r2, #6160 ; 0x1810 - 800b6c2: 6839 ldr r1, [r7, #0] - 800b6c4: 6878 ldr r0, [r7, #4] - 800b6c6: f002 fb73 bl 800ddb0 - 800b6ca: 4603 mov r3, r0 - 800b6cc: 60fb str r3, [r7, #12] + 800b652: f641 0210 movw r2, #6160 ; 0x1810 + 800b656: 6839 ldr r1, [r7, #0] + 800b658: 6878 ldr r0, [r7, #4] + 800b65a: f002 fb73 bl 800dd44 + 800b65e: 4603 mov r3, r0 + 800b660: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 800b6ce: 68fb ldr r3, [r7, #12] - 800b6d0: b21b sxth r3, r3 + 800b662: 68fb ldr r3, [r7, #12] + 800b664: b21b sxth r3, r3 } - 800b6d2: 4618 mov r0, r3 - 800b6d4: 3710 adds r7, #16 - 800b6d6: 46bd mov sp, r7 - 800b6d8: bd80 pop {r7, pc} + 800b666: 4618 mov r0, r3 + 800b668: 3710 adds r7, #16 + 800b66a: 46bd mov sp, r7 + 800b66c: bd80 pop {r7, pc} -0800b6da : +0800b66e : { - 800b6da: b580 push {r7, lr} - 800b6dc: b084 sub sp, #16 - 800b6de: af00 add r7, sp, #0 - 800b6e0: 6078 str r0, [r7, #4] - 800b6e2: 6039 str r1, [r7, #0] + 800b66e: b580 push {r7, lr} + 800b670: b084 sub sp, #16 + 800b672: af00 add r7, sp, #0 + 800b674: 6078 str r0, [r7, #4] + 800b676: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); - 800b6e4: f641 0211 movw r2, #6161 ; 0x1811 - 800b6e8: 6839 ldr r1, [r7, #0] - 800b6ea: 6878 ldr r0, [r7, #4] - 800b6ec: f002 fb60 bl 800ddb0 - 800b6f0: 4603 mov r3, r0 - 800b6f2: 60fb str r3, [r7, #12] + 800b678: f641 0211 movw r2, #6161 ; 0x1811 + 800b67c: 6839 ldr r1, [r7, #0] + 800b67e: 6878 ldr r0, [r7, #4] + 800b680: f002 fb60 bl 800dd44 + 800b684: 4603 mov r3, r0 + 800b686: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 800b6f4: 68fb ldr r3, [r7, #12] - 800b6f6: b21b sxth r3, r3 + 800b688: 68fb ldr r3, [r7, #12] + 800b68a: b21b sxth r3, r3 } - 800b6f8: 4618 mov r0, r3 - 800b6fa: 3710 adds r7, #16 - 800b6fc: 46bd mov sp, r7 - 800b6fe: bd80 pop {r7, pc} + 800b68c: 4618 mov r0, r3 + 800b68e: 3710 adds r7, #16 + 800b690: 46bd mov sp, r7 + 800b692: bd80 pop {r7, pc} -0800b700 : +0800b694 : { - 800b700: b580 push {r7, lr} - 800b702: b084 sub sp, #16 - 800b704: af00 add r7, sp, #0 - 800b706: 6078 str r0, [r7, #4] - 800b708: 6039 str r1, [r7, #0] + 800b694: b580 push {r7, lr} + 800b696: b084 sub sp, #16 + 800b698: af00 add r7, sp, #0 + 800b69a: 6078 str r0, [r7, #4] + 800b69c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 800b70a: f641 0212 movw r2, #6162 ; 0x1812 - 800b70e: 6839 ldr r1, [r7, #0] - 800b710: 6878 ldr r0, [r7, #4] - 800b712: f002 fb4d bl 800ddb0 - 800b716: 4603 mov r3, r0 - 800b718: 60fb str r3, [r7, #12] + 800b69e: f641 0212 movw r2, #6162 ; 0x1812 + 800b6a2: 6839 ldr r1, [r7, #0] + 800b6a4: 6878 ldr r0, [r7, #4] + 800b6a6: f002 fb4d bl 800dd44 + 800b6aa: 4603 mov r3, r0 + 800b6ac: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 800b71a: 68fb ldr r3, [r7, #12] - 800b71c: b21b sxth r3, r3 + 800b6ae: 68fb ldr r3, [r7, #12] + 800b6b0: b21b sxth r3, r3 } - 800b71e: 4618 mov r0, r3 - 800b720: 3710 adds r7, #16 - 800b722: 46bd mov sp, r7 - 800b724: bd80 pop {r7, pc} + 800b6b2: 4618 mov r0, r3 + 800b6b4: 3710 adds r7, #16 + 800b6b6: 46bd mov sp, r7 + 800b6b8: bd80 pop {r7, pc} -0800b726 : +0800b6ba : { - 800b726: b580 push {r7, lr} - 800b728: b084 sub sp, #16 - 800b72a: af00 add r7, sp, #0 - 800b72c: 6078 str r0, [r7, #4] - 800b72e: 6039 str r1, [r7, #0] + 800b6ba: b580 push {r7, lr} + 800b6bc: b084 sub sp, #16 + 800b6be: af00 add r7, sp, #0 + 800b6c0: 6078 str r0, [r7, #4] + 800b6c2: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - 800b730: f641 0213 movw r2, #6163 ; 0x1813 - 800b734: 6839 ldr r1, [r7, #0] - 800b736: 6878 ldr r0, [r7, #4] - 800b738: f002 fb3a bl 800ddb0 - 800b73c: 4603 mov r3, r0 - 800b73e: 60fb str r3, [r7, #12] + 800b6c4: f641 0213 movw r2, #6163 ; 0x1813 + 800b6c8: 6839 ldr r1, [r7, #0] + 800b6ca: 6878 ldr r0, [r7, #4] + 800b6cc: f002 fb3a bl 800dd44 + 800b6d0: 4603 mov r3, r0 + 800b6d2: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 800b740: 68fb ldr r3, [r7, #12] - 800b742: b21b sxth r3, r3 + 800b6d4: 68fb ldr r3, [r7, #12] + 800b6d6: b21b sxth r3, r3 } - 800b744: 4618 mov r0, r3 - 800b746: 3710 adds r7, #16 - 800b748: 46bd mov sp, r7 - 800b74a: bd80 pop {r7, pc} + 800b6d8: 4618 mov r0, r3 + 800b6da: 3710 adds r7, #16 + 800b6dc: 46bd mov sp, r7 + 800b6de: bd80 pop {r7, pc} -0800b74c : +0800b6e0 : { - 800b74c: b580 push {r7, lr} - 800b74e: b084 sub sp, #16 - 800b750: af00 add r7, sp, #0 - 800b752: 6078 str r0, [r7, #4] - 800b754: 6039 str r1, [r7, #0] + 800b6e0: b580 push {r7, lr} + 800b6e2: b084 sub sp, #16 + 800b6e4: af00 add r7, sp, #0 + 800b6e6: 6078 str r0, [r7, #4] + 800b6e8: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_OPA); - 800b756: 2221 movs r2, #33 ; 0x21 - 800b758: 6839 ldr r1, [r7, #0] - 800b75a: 6878 ldr r0, [r7, #4] - 800b75c: f002 fb28 bl 800ddb0 - 800b760: 4603 mov r3, r0 - 800b762: 60fb str r3, [r7, #12] + 800b6ea: 2221 movs r2, #33 ; 0x21 + 800b6ec: 6839 ldr r1, [r7, #0] + 800b6ee: 6878 ldr r0, [r7, #4] + 800b6f0: f002 fb28 bl 800dd44 + 800b6f4: 4603 mov r3, r0 + 800b6f6: 60fb str r3, [r7, #12] return (lv_opa_t)v.num; - 800b764: 68fb ldr r3, [r7, #12] - 800b766: b2db uxtb r3, r3 + 800b6f8: 68fb ldr r3, [r7, #12] + 800b6fa: b2db uxtb r3, r3 } - 800b768: 4618 mov r0, r3 - 800b76a: 3710 adds r7, #16 - 800b76c: 46bd mov sp, r7 - 800b76e: bd80 pop {r7, pc} + 800b6fc: 4618 mov r0, r3 + 800b6fe: 3710 adds r7, #16 + 800b700: 46bd mov sp, r7 + 800b702: bd80 pop {r7, pc} -0800b770 : +0800b704 : { - 800b770: b580 push {r7, lr} - 800b772: b084 sub sp, #16 - 800b774: af00 add r7, sp, #0 - 800b776: 6078 str r0, [r7, #4] - 800b778: 6039 str r1, [r7, #0] + 800b704: b580 push {r7, lr} + 800b706: b084 sub sp, #16 + 800b708: af00 add r7, sp, #0 + 800b70a: 6078 str r0, [r7, #4] + 800b70c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_OPA); - 800b77a: 2231 movs r2, #49 ; 0x31 - 800b77c: 6839 ldr r1, [r7, #0] - 800b77e: 6878 ldr r0, [r7, #4] - 800b780: f002 fb16 bl 800ddb0 - 800b784: 4603 mov r3, r0 - 800b786: 60fb str r3, [r7, #12] + 800b70e: 2231 movs r2, #49 ; 0x31 + 800b710: 6839 ldr r1, [r7, #0] + 800b712: 6878 ldr r0, [r7, #4] + 800b714: f002 fb16 bl 800dd44 + 800b718: 4603 mov r3, r0 + 800b71a: 60fb str r3, [r7, #12] return (lv_opa_t)v.num; - 800b788: 68fb ldr r3, [r7, #12] - 800b78a: b2db uxtb r3, r3 + 800b71c: 68fb ldr r3, [r7, #12] + 800b71e: b2db uxtb r3, r3 } - 800b78c: 4618 mov r0, r3 - 800b78e: 3710 adds r7, #16 - 800b790: 46bd mov sp, r7 - 800b792: bd80 pop {r7, pc} + 800b720: 4618 mov r0, r3 + 800b722: 3710 adds r7, #16 + 800b724: 46bd mov sp, r7 + 800b726: bd80 pop {r7, pc} -0800b794 : +0800b728 : { - 800b794: b580 push {r7, lr} - 800b796: b084 sub sp, #16 - 800b798: af00 add r7, sp, #0 - 800b79a: 6078 str r0, [r7, #4] - 800b79c: 6039 str r1, [r7, #0] + 800b728: b580 push {r7, lr} + 800b72a: b084 sub sp, #16 + 800b72c: af00 add r7, sp, #0 + 800b72e: 6078 str r0, [r7, #4] + 800b730: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); - 800b79e: f241 0232 movw r2, #4146 ; 0x1032 - 800b7a2: 6839 ldr r1, [r7, #0] - 800b7a4: 6878 ldr r0, [r7, #4] - 800b7a6: f002 fb03 bl 800ddb0 - 800b7aa: 4603 mov r3, r0 - 800b7ac: 60fb str r3, [r7, #12] + 800b732: f241 0232 movw r2, #4146 ; 0x1032 + 800b736: 6839 ldr r1, [r7, #0] + 800b738: 6878 ldr r0, [r7, #4] + 800b73a: f002 fb03 bl 800dd44 + 800b73e: 4603 mov r3, r0 + 800b740: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 800b7ae: 68fb ldr r3, [r7, #12] - 800b7b0: b21b sxth r3, r3 + 800b742: 68fb ldr r3, [r7, #12] + 800b744: b21b sxth r3, r3 } - 800b7b2: 4618 mov r0, r3 - 800b7b4: 3710 adds r7, #16 - 800b7b6: 46bd mov sp, r7 - 800b7b8: bd80 pop {r7, pc} + 800b746: 4618 mov r0, r3 + 800b748: 3710 adds r7, #16 + 800b74a: 46bd mov sp, r7 + 800b74c: bd80 pop {r7, pc} -0800b7ba : +0800b74e : { - 800b7ba: b580 push {r7, lr} - 800b7bc: b084 sub sp, #16 - 800b7be: af00 add r7, sp, #0 - 800b7c0: 6078 str r0, [r7, #4] - 800b7c2: 6039 str r1, [r7, #0] + 800b74e: b580 push {r7, lr} + 800b750: b084 sub sp, #16 + 800b752: af00 add r7, sp, #0 + 800b754: 6078 str r0, [r7, #4] + 800b756: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BASE_DIR); - 800b7c4: f241 426a movw r2, #5226 ; 0x146a - 800b7c8: 6839 ldr r1, [r7, #0] - 800b7ca: 6878 ldr r0, [r7, #4] - 800b7cc: f002 faf0 bl 800ddb0 - 800b7d0: 4603 mov r3, r0 - 800b7d2: 60fb str r3, [r7, #12] + 800b758: f241 426a movw r2, #5226 ; 0x146a + 800b75c: 6839 ldr r1, [r7, #0] + 800b75e: 6878 ldr r0, [r7, #4] + 800b760: f002 faf0 bl 800dd44 + 800b764: 4603 mov r3, r0 + 800b766: 60fb str r3, [r7, #12] return (lv_base_dir_t)v.num; - 800b7d4: 68fb ldr r3, [r7, #12] - 800b7d6: b2db uxtb r3, r3 + 800b768: 68fb ldr r3, [r7, #12] + 800b76a: b2db uxtb r3, r3 } - 800b7d8: 4618 mov r0, r3 - 800b7da: 3710 adds r7, #16 - 800b7dc: 46bd mov sp, r7 - 800b7de: bd80 pop {r7, pc} + 800b76c: 4618 mov r0, r3 + 800b76e: 3710 adds r7, #16 + 800b770: 46bd mov sp, r7 + 800b772: bd80 pop {r7, pc} -0800b7e0 : +0800b774 : /*===================== * Setter functions *====================*/ void lv_obj_set_scrollbar_mode(lv_obj_t * obj, lv_scrollbar_mode_t mode) { - 800b7e0: b580 push {r7, lr} - 800b7e2: b082 sub sp, #8 - 800b7e4: af00 add r7, sp, #0 - 800b7e6: 6078 str r0, [r7, #4] - 800b7e8: 460b mov r3, r1 - 800b7ea: 70fb strb r3, [r7, #3] + 800b774: b580 push {r7, lr} + 800b776: b082 sub sp, #8 + 800b778: af00 add r7, sp, #0 + 800b77a: 6078 str r0, [r7, #4] + 800b77c: 460b mov r3, r1 + 800b77e: 70fb strb r3, [r7, #3] LV_ASSERT_OBJ(obj, MY_CLASS); lv_obj_allocate_spec_attr(obj); - 800b7ec: 6878 ldr r0, [r7, #4] - 800b7ee: f7fb f821 bl 8006834 + 800b780: 6878 ldr r0, [r7, #4] + 800b782: f7fb f821 bl 80067c8 if(obj->spec_attr->scrollbar_mode == mode) return; - 800b7f2: 687b ldr r3, [r7, #4] - 800b7f4: 689b ldr r3, [r3, #8] - 800b7f6: 7e1b ldrb r3, [r3, #24] - 800b7f8: f3c3 0301 ubfx r3, r3, #0, #2 - 800b7fc: b2db uxtb r3, r3 - 800b7fe: 461a mov r2, r3 - 800b800: 78fb ldrb r3, [r7, #3] - 800b802: 429a cmp r2, r3 - 800b804: d00d beq.n 800b822 + 800b786: 687b ldr r3, [r7, #4] + 800b788: 689b ldr r3, [r3, #8] + 800b78a: 7e1b ldrb r3, [r3, #24] + 800b78c: f3c3 0301 ubfx r3, r3, #0, #2 + 800b790: b2db uxtb r3, r3 + 800b792: 461a mov r2, r3 + 800b794: 78fb ldrb r3, [r7, #3] + 800b796: 429a cmp r2, r3 + 800b798: d00d beq.n 800b7b6 obj->spec_attr->scrollbar_mode = mode; - 800b806: 687b ldr r3, [r7, #4] - 800b808: 689a ldr r2, [r3, #8] - 800b80a: 78fb ldrb r3, [r7, #3] - 800b80c: f003 0303 and.w r3, r3, #3 - 800b810: b2d9 uxtb r1, r3 - 800b812: 7e13 ldrb r3, [r2, #24] - 800b814: f361 0301 bfi r3, r1, #0, #2 - 800b818: 7613 strb r3, [r2, #24] + 800b79a: 687b ldr r3, [r7, #4] + 800b79c: 689a ldr r2, [r3, #8] + 800b79e: 78fb ldrb r3, [r7, #3] + 800b7a0: f003 0303 and.w r3, r3, #3 + 800b7a4: b2d9 uxtb r1, r3 + 800b7a6: 7e13 ldrb r3, [r2, #24] + 800b7a8: f361 0301 bfi r3, r1, #0, #2 + 800b7ac: 7613 strb r3, [r2, #24] lv_obj_invalidate(obj); - 800b81a: 6878 ldr r0, [r7, #4] - 800b81c: f7ff f949 bl 800aab2 - 800b820: e000 b.n 800b824 + 800b7ae: 6878 ldr r0, [r7, #4] + 800b7b0: f7ff f949 bl 800aa46 + 800b7b4: e000 b.n 800b7b8 if(obj->spec_attr->scrollbar_mode == mode) return; - 800b822: bf00 nop + 800b7b6: bf00 nop } - 800b824: 3708 adds r7, #8 - 800b826: 46bd mov sp, r7 - 800b828: bd80 pop {r7, pc} + 800b7b8: 3708 adds r7, #8 + 800b7ba: 46bd mov sp, r7 + 800b7bc: bd80 pop {r7, pc} -0800b82a : +0800b7be : void lv_obj_set_scroll_dir(lv_obj_t * obj, lv_dir_t dir) { - 800b82a: b580 push {r7, lr} - 800b82c: b082 sub sp, #8 - 800b82e: af00 add r7, sp, #0 - 800b830: 6078 str r0, [r7, #4] - 800b832: 460b mov r3, r1 - 800b834: 70fb strb r3, [r7, #3] + 800b7be: b580 push {r7, lr} + 800b7c0: b082 sub sp, #8 + 800b7c2: af00 add r7, sp, #0 + 800b7c4: 6078 str r0, [r7, #4] + 800b7c6: 460b mov r3, r1 + 800b7c8: 70fb strb r3, [r7, #3] lv_obj_allocate_spec_attr(obj); - 800b836: 6878 ldr r0, [r7, #4] - 800b838: f7fa fffc bl 8006834 + 800b7ca: 6878 ldr r0, [r7, #4] + 800b7cc: f7fa fffc bl 80067c8 if(dir != obj->spec_attr->scroll_dir) { - 800b83c: 687b ldr r3, [r7, #4] - 800b83e: 689b ldr r3, [r3, #8] - 800b840: 7e5b ldrb r3, [r3, #25] - 800b842: f3c3 0303 ubfx r3, r3, #0, #4 - 800b846: b2db uxtb r3, r3 - 800b848: 461a mov r2, r3 - 800b84a: 78fb ldrb r3, [r7, #3] - 800b84c: 4293 cmp r3, r2 - 800b84e: d009 beq.n 800b864 + 800b7d0: 687b ldr r3, [r7, #4] + 800b7d2: 689b ldr r3, [r3, #8] + 800b7d4: 7e5b ldrb r3, [r3, #25] + 800b7d6: f3c3 0303 ubfx r3, r3, #0, #4 + 800b7da: b2db uxtb r3, r3 + 800b7dc: 461a mov r2, r3 + 800b7de: 78fb ldrb r3, [r7, #3] + 800b7e0: 4293 cmp r3, r2 + 800b7e2: d009 beq.n 800b7f8 obj->spec_attr->scroll_dir = dir; - 800b850: 687b ldr r3, [r7, #4] - 800b852: 689a ldr r2, [r3, #8] - 800b854: 78fb ldrb r3, [r7, #3] - 800b856: f003 030f and.w r3, r3, #15 - 800b85a: b2d9 uxtb r1, r3 - 800b85c: 7e53 ldrb r3, [r2, #25] - 800b85e: f361 0303 bfi r3, r1, #0, #4 - 800b862: 7653 strb r3, [r2, #25] + 800b7e4: 687b ldr r3, [r7, #4] + 800b7e6: 689a ldr r2, [r3, #8] + 800b7e8: 78fb ldrb r3, [r7, #3] + 800b7ea: f003 030f and.w r3, r3, #15 + 800b7ee: b2d9 uxtb r1, r3 + 800b7f0: 7e53 ldrb r3, [r2, #25] + 800b7f2: f361 0303 bfi r3, r1, #0, #4 + 800b7f6: 7653 strb r3, [r2, #25] } } - 800b864: bf00 nop - 800b866: 3708 adds r7, #8 - 800b868: 46bd mov sp, r7 - 800b86a: bd80 pop {r7, pc} + 800b7f8: bf00 nop + 800b7fa: 3708 adds r7, #8 + 800b7fc: 46bd mov sp, r7 + 800b7fe: bd80 pop {r7, pc} -0800b86c : +0800b800 : void lv_obj_set_scroll_snap_x(lv_obj_t * obj, lv_scroll_snap_t align) { - 800b86c: b580 push {r7, lr} - 800b86e: b082 sub sp, #8 - 800b870: af00 add r7, sp, #0 - 800b872: 6078 str r0, [r7, #4] - 800b874: 460b mov r3, r1 - 800b876: 70fb strb r3, [r7, #3] + 800b800: b580 push {r7, lr} + 800b802: b082 sub sp, #8 + 800b804: af00 add r7, sp, #0 + 800b806: 6078 str r0, [r7, #4] + 800b808: 460b mov r3, r1 + 800b80a: 70fb strb r3, [r7, #3] lv_obj_allocate_spec_attr(obj); - 800b878: 6878 ldr r0, [r7, #4] - 800b87a: f7fa ffdb bl 8006834 + 800b80c: 6878 ldr r0, [r7, #4] + 800b80e: f7fa ffdb bl 80067c8 obj->spec_attr->scroll_snap_x = align; - 800b87e: 687b ldr r3, [r7, #4] - 800b880: 689a ldr r2, [r3, #8] - 800b882: 78fb ldrb r3, [r7, #3] - 800b884: f003 0303 and.w r3, r3, #3 - 800b888: b2d9 uxtb r1, r3 - 800b88a: 7e13 ldrb r3, [r2, #24] - 800b88c: f361 0383 bfi r3, r1, #2, #2 - 800b890: 7613 strb r3, [r2, #24] + 800b812: 687b ldr r3, [r7, #4] + 800b814: 689a ldr r2, [r3, #8] + 800b816: 78fb ldrb r3, [r7, #3] + 800b818: f003 0303 and.w r3, r3, #3 + 800b81c: b2d9 uxtb r1, r3 + 800b81e: 7e13 ldrb r3, [r2, #24] + 800b820: f361 0383 bfi r3, r1, #2, #2 + 800b824: 7613 strb r3, [r2, #24] } - 800b892: bf00 nop - 800b894: 3708 adds r7, #8 - 800b896: 46bd mov sp, r7 - 800b898: bd80 pop {r7, pc} + 800b826: bf00 nop + 800b828: 3708 adds r7, #8 + 800b82a: 46bd mov sp, r7 + 800b82c: bd80 pop {r7, pc} -0800b89a : +0800b82e : void lv_obj_set_scroll_snap_y(lv_obj_t * obj, lv_scroll_snap_t align) { - 800b89a: b580 push {r7, lr} - 800b89c: b082 sub sp, #8 - 800b89e: af00 add r7, sp, #0 - 800b8a0: 6078 str r0, [r7, #4] - 800b8a2: 460b mov r3, r1 - 800b8a4: 70fb strb r3, [r7, #3] + 800b82e: b580 push {r7, lr} + 800b830: b082 sub sp, #8 + 800b832: af00 add r7, sp, #0 + 800b834: 6078 str r0, [r7, #4] + 800b836: 460b mov r3, r1 + 800b838: 70fb strb r3, [r7, #3] lv_obj_allocate_spec_attr(obj); - 800b8a6: 6878 ldr r0, [r7, #4] - 800b8a8: f7fa ffc4 bl 8006834 + 800b83a: 6878 ldr r0, [r7, #4] + 800b83c: f7fa ffc4 bl 80067c8 obj->spec_attr->scroll_snap_y = align; - 800b8ac: 687b ldr r3, [r7, #4] - 800b8ae: 689a ldr r2, [r3, #8] - 800b8b0: 78fb ldrb r3, [r7, #3] - 800b8b2: f003 0303 and.w r3, r3, #3 - 800b8b6: b2d9 uxtb r1, r3 - 800b8b8: 7e13 ldrb r3, [r2, #24] - 800b8ba: f361 1305 bfi r3, r1, #4, #2 - 800b8be: 7613 strb r3, [r2, #24] + 800b840: 687b ldr r3, [r7, #4] + 800b842: 689a ldr r2, [r3, #8] + 800b844: 78fb ldrb r3, [r7, #3] + 800b846: f003 0303 and.w r3, r3, #3 + 800b84a: b2d9 uxtb r1, r3 + 800b84c: 7e13 ldrb r3, [r2, #24] + 800b84e: f361 1305 bfi r3, r1, #4, #2 + 800b852: 7613 strb r3, [r2, #24] } - 800b8c0: bf00 nop - 800b8c2: 3708 adds r7, #8 - 800b8c4: 46bd mov sp, r7 - 800b8c6: bd80 pop {r7, pc} + 800b854: bf00 nop + 800b856: 3708 adds r7, #8 + 800b858: 46bd mov sp, r7 + 800b85a: bd80 pop {r7, pc} -0800b8c8 : +0800b85c : /*===================== * Getter functions *====================*/ lv_scrollbar_mode_t lv_obj_get_scrollbar_mode(const lv_obj_t * obj) { - 800b8c8: b480 push {r7} - 800b8ca: b083 sub sp, #12 - 800b8cc: af00 add r7, sp, #0 - 800b8ce: 6078 str r0, [r7, #4] + 800b85c: b480 push {r7} + 800b85e: b083 sub sp, #12 + 800b860: af00 add r7, sp, #0 + 800b862: 6078 str r0, [r7, #4] if(obj->spec_attr) return obj->spec_attr->scrollbar_mode; - 800b8d0: 687b ldr r3, [r7, #4] - 800b8d2: 689b ldr r3, [r3, #8] - 800b8d4: 2b00 cmp r3, #0 - 800b8d6: d006 beq.n 800b8e6 - 800b8d8: 687b ldr r3, [r7, #4] - 800b8da: 689b ldr r3, [r3, #8] - 800b8dc: 7e1b ldrb r3, [r3, #24] - 800b8de: f3c3 0301 ubfx r3, r3, #0, #2 - 800b8e2: b2db uxtb r3, r3 - 800b8e4: e000 b.n 800b8e8 + 800b864: 687b ldr r3, [r7, #4] + 800b866: 689b ldr r3, [r3, #8] + 800b868: 2b00 cmp r3, #0 + 800b86a: d006 beq.n 800b87a + 800b86c: 687b ldr r3, [r7, #4] + 800b86e: 689b ldr r3, [r3, #8] + 800b870: 7e1b ldrb r3, [r3, #24] + 800b872: f3c3 0301 ubfx r3, r3, #0, #2 + 800b876: b2db uxtb r3, r3 + 800b878: e000 b.n 800b87c else return LV_SCROLLBAR_MODE_AUTO; - 800b8e6: 2303 movs r3, #3 + 800b87a: 2303 movs r3, #3 } - 800b8e8: 4618 mov r0, r3 - 800b8ea: 370c adds r7, #12 - 800b8ec: 46bd mov sp, r7 - 800b8ee: bc80 pop {r7} - 800b8f0: 4770 bx lr + 800b87c: 4618 mov r0, r3 + 800b87e: 370c adds r7, #12 + 800b880: 46bd mov sp, r7 + 800b882: bc80 pop {r7} + 800b884: 4770 bx lr -0800b8f2 : +0800b886 : lv_dir_t lv_obj_get_scroll_dir(const lv_obj_t * obj) { - 800b8f2: b480 push {r7} - 800b8f4: b083 sub sp, #12 - 800b8f6: af00 add r7, sp, #0 - 800b8f8: 6078 str r0, [r7, #4] + 800b886: b480 push {r7} + 800b888: b083 sub sp, #12 + 800b88a: af00 add r7, sp, #0 + 800b88c: 6078 str r0, [r7, #4] if(obj->spec_attr) return obj->spec_attr->scroll_dir; - 800b8fa: 687b ldr r3, [r7, #4] - 800b8fc: 689b ldr r3, [r3, #8] - 800b8fe: 2b00 cmp r3, #0 - 800b900: d006 beq.n 800b910 - 800b902: 687b ldr r3, [r7, #4] - 800b904: 689b ldr r3, [r3, #8] - 800b906: 7e5b ldrb r3, [r3, #25] - 800b908: f3c3 0303 ubfx r3, r3, #0, #4 - 800b90c: b2db uxtb r3, r3 - 800b90e: e000 b.n 800b912 + 800b88e: 687b ldr r3, [r7, #4] + 800b890: 689b ldr r3, [r3, #8] + 800b892: 2b00 cmp r3, #0 + 800b894: d006 beq.n 800b8a4 + 800b896: 687b ldr r3, [r7, #4] + 800b898: 689b ldr r3, [r3, #8] + 800b89a: 7e5b ldrb r3, [r3, #25] + 800b89c: f3c3 0303 ubfx r3, r3, #0, #4 + 800b8a0: b2db uxtb r3, r3 + 800b8a2: e000 b.n 800b8a6 else return LV_DIR_ALL; - 800b910: 230f movs r3, #15 + 800b8a4: 230f movs r3, #15 } - 800b912: 4618 mov r0, r3 - 800b914: 370c adds r7, #12 - 800b916: 46bd mov sp, r7 - 800b918: bc80 pop {r7} - 800b91a: 4770 bx lr + 800b8a6: 4618 mov r0, r3 + 800b8a8: 370c adds r7, #12 + 800b8aa: 46bd mov sp, r7 + 800b8ac: bc80 pop {r7} + 800b8ae: 4770 bx lr -0800b91c : +0800b8b0 : lv_scroll_snap_t lv_obj_get_scroll_snap_x(const lv_obj_t * obj) { - 800b91c: b480 push {r7} - 800b91e: b083 sub sp, #12 - 800b920: af00 add r7, sp, #0 - 800b922: 6078 str r0, [r7, #4] + 800b8b0: b480 push {r7} + 800b8b2: b083 sub sp, #12 + 800b8b4: af00 add r7, sp, #0 + 800b8b6: 6078 str r0, [r7, #4] if(obj->spec_attr) return obj->spec_attr->scroll_snap_x; - 800b924: 687b ldr r3, [r7, #4] - 800b926: 689b ldr r3, [r3, #8] - 800b928: 2b00 cmp r3, #0 - 800b92a: d006 beq.n 800b93a - 800b92c: 687b ldr r3, [r7, #4] - 800b92e: 689b ldr r3, [r3, #8] - 800b930: 7e1b ldrb r3, [r3, #24] - 800b932: f3c3 0381 ubfx r3, r3, #2, #2 - 800b936: b2db uxtb r3, r3 - 800b938: e000 b.n 800b93c + 800b8b8: 687b ldr r3, [r7, #4] + 800b8ba: 689b ldr r3, [r3, #8] + 800b8bc: 2b00 cmp r3, #0 + 800b8be: d006 beq.n 800b8ce + 800b8c0: 687b ldr r3, [r7, #4] + 800b8c2: 689b ldr r3, [r3, #8] + 800b8c4: 7e1b ldrb r3, [r3, #24] + 800b8c6: f3c3 0381 ubfx r3, r3, #2, #2 + 800b8ca: b2db uxtb r3, r3 + 800b8cc: e000 b.n 800b8d0 else return LV_SCROLL_SNAP_NONE; - 800b93a: 2300 movs r3, #0 + 800b8ce: 2300 movs r3, #0 } - 800b93c: 4618 mov r0, r3 - 800b93e: 370c adds r7, #12 - 800b940: 46bd mov sp, r7 - 800b942: bc80 pop {r7} - 800b944: 4770 bx lr + 800b8d0: 4618 mov r0, r3 + 800b8d2: 370c adds r7, #12 + 800b8d4: 46bd mov sp, r7 + 800b8d6: bc80 pop {r7} + 800b8d8: 4770 bx lr -0800b946 : +0800b8da : lv_scroll_snap_t lv_obj_get_scroll_snap_y(const lv_obj_t * obj) { - 800b946: b480 push {r7} - 800b948: b083 sub sp, #12 - 800b94a: af00 add r7, sp, #0 - 800b94c: 6078 str r0, [r7, #4] + 800b8da: b480 push {r7} + 800b8dc: b083 sub sp, #12 + 800b8de: af00 add r7, sp, #0 + 800b8e0: 6078 str r0, [r7, #4] if(obj->spec_attr) return obj->spec_attr->scroll_snap_y; - 800b94e: 687b ldr r3, [r7, #4] - 800b950: 689b ldr r3, [r3, #8] - 800b952: 2b00 cmp r3, #0 - 800b954: d006 beq.n 800b964 - 800b956: 687b ldr r3, [r7, #4] - 800b958: 689b ldr r3, [r3, #8] - 800b95a: 7e1b ldrb r3, [r3, #24] - 800b95c: f3c3 1301 ubfx r3, r3, #4, #2 - 800b960: b2db uxtb r3, r3 - 800b962: e000 b.n 800b966 + 800b8e2: 687b ldr r3, [r7, #4] + 800b8e4: 689b ldr r3, [r3, #8] + 800b8e6: 2b00 cmp r3, #0 + 800b8e8: d006 beq.n 800b8f8 + 800b8ea: 687b ldr r3, [r7, #4] + 800b8ec: 689b ldr r3, [r3, #8] + 800b8ee: 7e1b ldrb r3, [r3, #24] + 800b8f0: f3c3 1301 ubfx r3, r3, #4, #2 + 800b8f4: b2db uxtb r3, r3 + 800b8f6: e000 b.n 800b8fa else return LV_SCROLL_SNAP_NONE; - 800b964: 2300 movs r3, #0 + 800b8f8: 2300 movs r3, #0 } - 800b966: 4618 mov r0, r3 - 800b968: 370c adds r7, #12 - 800b96a: 46bd mov sp, r7 - 800b96c: bc80 pop {r7} - 800b96e: 4770 bx lr + 800b8fa: 4618 mov r0, r3 + 800b8fc: 370c adds r7, #12 + 800b8fe: 46bd mov sp, r7 + 800b900: bc80 pop {r7} + 800b902: 4770 bx lr -0800b970 : +0800b904 : lv_coord_t lv_obj_get_scroll_x(const lv_obj_t * obj) { - 800b970: b480 push {r7} - 800b972: b083 sub sp, #12 - 800b974: af00 add r7, sp, #0 - 800b976: 6078 str r0, [r7, #4] + 800b904: b480 push {r7} + 800b906: b083 sub sp, #12 + 800b908: af00 add r7, sp, #0 + 800b90a: 6078 str r0, [r7, #4] if(obj->spec_attr == NULL) return 0; - 800b978: 687b ldr r3, [r7, #4] - 800b97a: 689b ldr r3, [r3, #8] - 800b97c: 2b00 cmp r3, #0 - 800b97e: d101 bne.n 800b984 - 800b980: 2300 movs r3, #0 - 800b982: e007 b.n 800b994 + 800b90c: 687b ldr r3, [r7, #4] + 800b90e: 689b ldr r3, [r3, #8] + 800b910: 2b00 cmp r3, #0 + 800b912: d101 bne.n 800b918 + 800b914: 2300 movs r3, #0 + 800b916: e007 b.n 800b928 return -obj->spec_attr->scroll.x; - 800b984: 687b ldr r3, [r7, #4] - 800b986: 689b ldr r3, [r3, #8] - 800b988: f9b3 3010 ldrsh.w r3, [r3, #16] - 800b98c: b29b uxth r3, r3 - 800b98e: 425b negs r3, r3 - 800b990: b29b uxth r3, r3 - 800b992: b21b sxth r3, r3 + 800b918: 687b ldr r3, [r7, #4] + 800b91a: 689b ldr r3, [r3, #8] + 800b91c: f9b3 3010 ldrsh.w r3, [r3, #16] + 800b920: b29b uxth r3, r3 + 800b922: 425b negs r3, r3 + 800b924: b29b uxth r3, r3 + 800b926: b21b sxth r3, r3 } - 800b994: 4618 mov r0, r3 - 800b996: 370c adds r7, #12 - 800b998: 46bd mov sp, r7 - 800b99a: bc80 pop {r7} - 800b99c: 4770 bx lr + 800b928: 4618 mov r0, r3 + 800b92a: 370c adds r7, #12 + 800b92c: 46bd mov sp, r7 + 800b92e: bc80 pop {r7} + 800b930: 4770 bx lr -0800b99e : +0800b932 : lv_coord_t lv_obj_get_scroll_y(const lv_obj_t * obj) { - 800b99e: b480 push {r7} - 800b9a0: b083 sub sp, #12 - 800b9a2: af00 add r7, sp, #0 - 800b9a4: 6078 str r0, [r7, #4] + 800b932: b480 push {r7} + 800b934: b083 sub sp, #12 + 800b936: af00 add r7, sp, #0 + 800b938: 6078 str r0, [r7, #4] if(obj->spec_attr == NULL) return 0; - 800b9a6: 687b ldr r3, [r7, #4] - 800b9a8: 689b ldr r3, [r3, #8] - 800b9aa: 2b00 cmp r3, #0 - 800b9ac: d101 bne.n 800b9b2 - 800b9ae: 2300 movs r3, #0 - 800b9b0: e007 b.n 800b9c2 + 800b93a: 687b ldr r3, [r7, #4] + 800b93c: 689b ldr r3, [r3, #8] + 800b93e: 2b00 cmp r3, #0 + 800b940: d101 bne.n 800b946 + 800b942: 2300 movs r3, #0 + 800b944: e007 b.n 800b956 return -obj->spec_attr->scroll.y; - 800b9b2: 687b ldr r3, [r7, #4] - 800b9b4: 689b ldr r3, [r3, #8] - 800b9b6: f9b3 3012 ldrsh.w r3, [r3, #18] - 800b9ba: b29b uxth r3, r3 - 800b9bc: 425b negs r3, r3 - 800b9be: b29b uxth r3, r3 - 800b9c0: b21b sxth r3, r3 + 800b946: 687b ldr r3, [r7, #4] + 800b948: 689b ldr r3, [r3, #8] + 800b94a: f9b3 3012 ldrsh.w r3, [r3, #18] + 800b94e: b29b uxth r3, r3 + 800b950: 425b negs r3, r3 + 800b952: b29b uxth r3, r3 + 800b954: b21b sxth r3, r3 } - 800b9c2: 4618 mov r0, r3 - 800b9c4: 370c adds r7, #12 - 800b9c6: 46bd mov sp, r7 - 800b9c8: bc80 pop {r7} - 800b9ca: 4770 bx lr + 800b956: 4618 mov r0, r3 + 800b958: 370c adds r7, #12 + 800b95a: 46bd mov sp, r7 + 800b95c: bc80 pop {r7} + 800b95e: 4770 bx lr -0800b9cc : +0800b960 : lv_coord_t lv_obj_get_scroll_top(lv_obj_t * obj) { - 800b9cc: b480 push {r7} - 800b9ce: b083 sub sp, #12 - 800b9d0: af00 add r7, sp, #0 - 800b9d2: 6078 str r0, [r7, #4] + 800b960: b480 push {r7} + 800b962: b083 sub sp, #12 + 800b964: af00 add r7, sp, #0 + 800b966: 6078 str r0, [r7, #4] if(obj->spec_attr == NULL) return 0; - 800b9d4: 687b ldr r3, [r7, #4] - 800b9d6: 689b ldr r3, [r3, #8] - 800b9d8: 2b00 cmp r3, #0 - 800b9da: d101 bne.n 800b9e0 - 800b9dc: 2300 movs r3, #0 - 800b9de: e007 b.n 800b9f0 + 800b968: 687b ldr r3, [r7, #4] + 800b96a: 689b ldr r3, [r3, #8] + 800b96c: 2b00 cmp r3, #0 + 800b96e: d101 bne.n 800b974 + 800b970: 2300 movs r3, #0 + 800b972: e007 b.n 800b984 return -obj->spec_attr->scroll.y; - 800b9e0: 687b ldr r3, [r7, #4] - 800b9e2: 689b ldr r3, [r3, #8] - 800b9e4: f9b3 3012 ldrsh.w r3, [r3, #18] - 800b9e8: b29b uxth r3, r3 - 800b9ea: 425b negs r3, r3 - 800b9ec: b29b uxth r3, r3 - 800b9ee: b21b sxth r3, r3 + 800b974: 687b ldr r3, [r7, #4] + 800b976: 689b ldr r3, [r3, #8] + 800b978: f9b3 3012 ldrsh.w r3, [r3, #18] + 800b97c: b29b uxth r3, r3 + 800b97e: 425b negs r3, r3 + 800b980: b29b uxth r3, r3 + 800b982: b21b sxth r3, r3 } - 800b9f0: 4618 mov r0, r3 - 800b9f2: 370c adds r7, #12 - 800b9f4: 46bd mov sp, r7 - 800b9f6: bc80 pop {r7} - 800b9f8: 4770 bx lr + 800b984: 4618 mov r0, r3 + 800b986: 370c adds r7, #12 + 800b988: 46bd mov sp, r7 + 800b98a: bc80 pop {r7} + 800b98c: 4770 bx lr ... -0800b9fc : +0800b990 : lv_coord_t lv_obj_get_scroll_bottom(lv_obj_t * obj) { - 800b9fc: b5b0 push {r4, r5, r7, lr} - 800b9fe: b088 sub sp, #32 - 800ba00: af00 add r7, sp, #0 - 800ba02: 6078 str r0, [r7, #4] + 800b990: b5b0 push {r4, r5, r7, lr} + 800b992: b088 sub sp, #32 + 800b994: af00 add r7, sp, #0 + 800b996: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_coord_t child_res = LV_COORD_MIN; - 800ba04: f24e 0301 movw r3, #57345 ; 0xe001 - 800ba08: 83fb strh r3, [r7, #30] + 800b998: f24e 0301 movw r3, #57345 ; 0xe001 + 800b99c: 83fb strh r3, [r7, #30] uint32_t i; uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 800ba0a: 6878 ldr r0, [r7, #4] - 800ba0c: f003 fec0 bl 800f790 - 800ba10: 6178 str r0, [r7, #20] + 800b99e: 6878 ldr r0, [r7, #4] + 800b9a0: f003 feac bl 800f6fc + 800b9a4: 6178 str r0, [r7, #20] for(i = 0; i < child_cnt; i++) { - 800ba12: 2300 movs r3, #0 - 800ba14: 61bb str r3, [r7, #24] - 800ba16: e01c b.n 800ba52 + 800b9a6: 2300 movs r3, #0 + 800b9a8: 61bb str r3, [r7, #24] + 800b9aa: e01c b.n 800b9e6 lv_obj_t * child = obj->spec_attr->children[i]; - 800ba18: 687b ldr r3, [r7, #4] - 800ba1a: 689b ldr r3, [r3, #8] - 800ba1c: 681a ldr r2, [r3, #0] - 800ba1e: 69bb ldr r3, [r7, #24] - 800ba20: 009b lsls r3, r3, #2 - 800ba22: 4413 add r3, r2 - 800ba24: 681b ldr r3, [r3, #0] - 800ba26: 60bb str r3, [r7, #8] + 800b9ac: 687b ldr r3, [r7, #4] + 800b9ae: 689b ldr r3, [r3, #8] + 800b9b0: 681a ldr r2, [r3, #0] + 800b9b2: 69bb ldr r3, [r7, #24] + 800b9b4: 009b lsls r3, r3, #2 + 800b9b6: 4413 add r3, r2 + 800b9b8: 681b ldr r3, [r3, #0] + 800b9ba: 60bb str r3, [r7, #8] if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 800ba28: 4935 ldr r1, [pc, #212] ; (800bb00 ) - 800ba2a: 68b8 ldr r0, [r7, #8] - 800ba2c: f7fa febd bl 80067aa - 800ba30: 4603 mov r3, r0 - 800ba32: 2b00 cmp r3, #0 - 800ba34: d109 bne.n 800ba4a + 800b9bc: 4935 ldr r1, [pc, #212] ; (800ba94 ) + 800b9be: 68b8 ldr r0, [r7, #8] + 800b9c0: f7fa febd bl 800673e + 800b9c4: 4603 mov r3, r0 + 800b9c6: 2b00 cmp r3, #0 + 800b9c8: d109 bne.n 800b9de child_res = LV_MAX(child_res, child->coords.y2); - 800ba36: 68bb ldr r3, [r7, #8] - 800ba38: f9b3 301a ldrsh.w r3, [r3, #26] - 800ba3c: f9b7 201e ldrsh.w r2, [r7, #30] - 800ba40: 4293 cmp r3, r2 - 800ba42: bfb8 it lt - 800ba44: 4613 movlt r3, r2 - 800ba46: 83fb strh r3, [r7, #30] - 800ba48: e000 b.n 800ba4c + 800b9ca: 68bb ldr r3, [r7, #8] + 800b9cc: f9b3 301a ldrsh.w r3, [r3, #26] + 800b9d0: f9b7 201e ldrsh.w r2, [r7, #30] + 800b9d4: 4293 cmp r3, r2 + 800b9d6: bfb8 it lt + 800b9d8: 4613 movlt r3, r2 + 800b9da: 83fb strh r3, [r7, #30] + 800b9dc: e000 b.n 800b9e0 if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 800ba4a: bf00 nop + 800b9de: bf00 nop for(i = 0; i < child_cnt; i++) { - 800ba4c: 69bb ldr r3, [r7, #24] - 800ba4e: 3301 adds r3, #1 - 800ba50: 61bb str r3, [r7, #24] - 800ba52: 69ba ldr r2, [r7, #24] - 800ba54: 697b ldr r3, [r7, #20] - 800ba56: 429a cmp r2, r3 - 800ba58: d3de bcc.n 800ba18 + 800b9e0: 69bb ldr r3, [r7, #24] + 800b9e2: 3301 adds r3, #1 + 800b9e4: 61bb str r3, [r7, #24] + 800b9e6: 69ba ldr r2, [r7, #24] + 800b9e8: 697b ldr r3, [r7, #20] + 800b9ea: 429a cmp r2, r3 + 800b9ec: d3de bcc.n 800b9ac } lv_coord_t pad_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 800ba5a: 2100 movs r1, #0 - 800ba5c: 6878 ldr r0, [r7, #4] - 800ba5e: f7ff fe29 bl 800b6b4 - 800ba62: 4603 mov r3, r0 - 800ba64: 827b strh r3, [r7, #18] + 800b9ee: 2100 movs r1, #0 + 800b9f0: 6878 ldr r0, [r7, #4] + 800b9f2: f7ff fe29 bl 800b648 + 800b9f6: 4603 mov r3, r0 + 800b9f8: 827b strh r3, [r7, #18] lv_coord_t pad_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN); - 800ba66: 2100 movs r1, #0 - 800ba68: 6878 ldr r0, [r7, #4] - 800ba6a: f7ff fe36 bl 800b6da - 800ba6e: 4603 mov r3, r0 - 800ba70: 823b strh r3, [r7, #16] + 800b9fa: 2100 movs r1, #0 + 800b9fc: 6878 ldr r0, [r7, #4] + 800b9fe: f7ff fe36 bl 800b66e + 800ba02: 4603 mov r3, r0 + 800ba04: 823b strh r3, [r7, #16] lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 800ba72: 2100 movs r1, #0 - 800ba74: 6878 ldr r0, [r7, #4] - 800ba76: f7ff fe8d bl 800b794 - 800ba7a: 4603 mov r3, r0 - 800ba7c: 81fb strh r3, [r7, #14] + 800ba06: 2100 movs r1, #0 + 800ba08: 6878 ldr r0, [r7, #4] + 800ba0a: f7ff fe8d bl 800b728 + 800ba0e: 4603 mov r3, r0 + 800ba10: 81fb strh r3, [r7, #14] if(child_res != LV_COORD_MIN) { - 800ba7e: f9b7 301e ldrsh.w r3, [r7, #30] - 800ba82: 4a20 ldr r2, [pc, #128] ; (800bb04 ) - 800ba84: 4293 cmp r3, r2 - 800ba86: d00d beq.n 800baa4 + 800ba12: f9b7 301e ldrsh.w r3, [r7, #30] + 800ba16: 4a20 ldr r2, [pc, #128] ; (800ba98 ) + 800ba18: 4293 cmp r3, r2 + 800ba1a: d00d beq.n 800ba38 child_res -= (obj->coords.y2 - pad_bottom - border_width); - 800ba88: 8a3a ldrh r2, [r7, #16] - 800ba8a: 687b ldr r3, [r7, #4] - 800ba8c: f9b3 301a ldrsh.w r3, [r3, #26] - 800ba90: b29b uxth r3, r3 - 800ba92: 1ad3 subs r3, r2, r3 - 800ba94: b29a uxth r2, r3 - 800ba96: 89fb ldrh r3, [r7, #14] - 800ba98: 4413 add r3, r2 - 800ba9a: b29a uxth r2, r3 - 800ba9c: 8bfb ldrh r3, [r7, #30] - 800ba9e: 4413 add r3, r2 - 800baa0: b29b uxth r3, r3 - 800baa2: 83fb strh r3, [r7, #30] + 800ba1c: 8a3a ldrh r2, [r7, #16] + 800ba1e: 687b ldr r3, [r7, #4] + 800ba20: f9b3 301a ldrsh.w r3, [r3, #26] + 800ba24: b29b uxth r3, r3 + 800ba26: 1ad3 subs r3, r2, r3 + 800ba28: b29a uxth r2, r3 + 800ba2a: 89fb ldrh r3, [r7, #14] + 800ba2c: 4413 add r3, r2 + 800ba2e: b29a uxth r2, r3 + 800ba30: 8bfb ldrh r3, [r7, #30] + 800ba32: 4413 add r3, r2 + 800ba34: b29b uxth r3, r3 + 800ba36: 83fb strh r3, [r7, #30] } lv_coord_t self_h = lv_obj_get_self_height(obj); - 800baa4: 6878 ldr r0, [r7, #4] - 800baa6: f7fe fc36 bl 800a316 - 800baaa: 4603 mov r3, r0 - 800baac: 81bb strh r3, [r7, #12] + 800ba38: 6878 ldr r0, [r7, #4] + 800ba3a: f7fe fc36 bl 800a2aa + 800ba3e: 4603 mov r3, r0 + 800ba40: 81bb strh r3, [r7, #12] self_h = self_h - (lv_obj_get_height(obj) - pad_top - pad_bottom - 2 * border_width); - 800baae: 89fb ldrh r3, [r7, #14] - 800bab0: 005b lsls r3, r3, #1 - 800bab2: b29c uxth r4, r3 - 800bab4: 8a7d ldrh r5, [r7, #18] - 800bab6: 6878 ldr r0, [r7, #4] - 800bab8: f7fe fb54 bl 800a164 - 800babc: 4603 mov r3, r0 - 800babe: b29b uxth r3, r3 - 800bac0: 1aeb subs r3, r5, r3 - 800bac2: b29a uxth r2, r3 - 800bac4: 8a3b ldrh r3, [r7, #16] - 800bac6: 4413 add r3, r2 - 800bac8: b29b uxth r3, r3 - 800baca: 4423 add r3, r4 - 800bacc: b29a uxth r2, r3 - 800bace: 89bb ldrh r3, [r7, #12] - 800bad0: 4413 add r3, r2 - 800bad2: b29b uxth r3, r3 - 800bad4: 81bb strh r3, [r7, #12] + 800ba42: 89fb ldrh r3, [r7, #14] + 800ba44: 005b lsls r3, r3, #1 + 800ba46: b29c uxth r4, r3 + 800ba48: 8a7d ldrh r5, [r7, #18] + 800ba4a: 6878 ldr r0, [r7, #4] + 800ba4c: f7fe fb54 bl 800a0f8 + 800ba50: 4603 mov r3, r0 + 800ba52: b29b uxth r3, r3 + 800ba54: 1aeb subs r3, r5, r3 + 800ba56: b29a uxth r2, r3 + 800ba58: 8a3b ldrh r3, [r7, #16] + 800ba5a: 4413 add r3, r2 + 800ba5c: b29b uxth r3, r3 + 800ba5e: 4423 add r3, r4 + 800ba60: b29a uxth r2, r3 + 800ba62: 89bb ldrh r3, [r7, #12] + 800ba64: 4413 add r3, r2 + 800ba66: b29b uxth r3, r3 + 800ba68: 81bb strh r3, [r7, #12] self_h -= lv_obj_get_scroll_y(obj); - 800bad6: 6878 ldr r0, [r7, #4] - 800bad8: f7ff ff61 bl 800b99e - 800badc: 4603 mov r3, r0 - 800bade: 89ba ldrh r2, [r7, #12] - 800bae0: b29b uxth r3, r3 - 800bae2: 1ad3 subs r3, r2, r3 - 800bae4: b29b uxth r3, r3 - 800bae6: 81bb strh r3, [r7, #12] + 800ba6a: 6878 ldr r0, [r7, #4] + 800ba6c: f7ff ff61 bl 800b932 + 800ba70: 4603 mov r3, r0 + 800ba72: 89ba ldrh r2, [r7, #12] + 800ba74: b29b uxth r3, r3 + 800ba76: 1ad3 subs r3, r2, r3 + 800ba78: b29b uxth r3, r3 + 800ba7a: 81bb strh r3, [r7, #12] return LV_MAX(child_res, self_h); - 800bae8: f9b7 200c ldrsh.w r2, [r7, #12] - 800baec: f9b7 301e ldrsh.w r3, [r7, #30] - 800baf0: 4293 cmp r3, r2 - 800baf2: bfb8 it lt - 800baf4: 4613 movlt r3, r2 - 800baf6: b21b sxth r3, r3 + 800ba7c: f9b7 200c ldrsh.w r2, [r7, #12] + 800ba80: f9b7 301e ldrsh.w r3, [r7, #30] + 800ba84: 4293 cmp r3, r2 + 800ba86: bfb8 it lt + 800ba88: 4613 movlt r3, r2 + 800ba8a: b21b sxth r3, r3 } - 800baf8: 4618 mov r0, r3 - 800bafa: 3720 adds r7, #32 - 800bafc: 46bd mov sp, r7 - 800bafe: bdb0 pop {r4, r5, r7, pc} - 800bb00: 00040001 .word 0x00040001 - 800bb04: ffffe001 .word 0xffffe001 + 800ba8c: 4618 mov r0, r3 + 800ba8e: 3720 adds r7, #32 + 800ba90: 46bd mov sp, r7 + 800ba92: bdb0 pop {r4, r5, r7, pc} + 800ba94: 00040001 .word 0x00040001 + 800ba98: ffffe001 .word 0xffffe001 -0800bb08 : +0800ba9c : lv_coord_t lv_obj_get_scroll_left(lv_obj_t * obj) { - 800bb08: b5b0 push {r4, r5, r7, lr} - 800bb0a: b08a sub sp, #40 ; 0x28 - 800bb0c: af00 add r7, sp, #0 - 800bb0e: 6078 str r0, [r7, #4] + 800ba9c: b5b0 push {r4, r5, r7, lr} + 800ba9e: b08a sub sp, #40 ; 0x28 + 800baa0: af00 add r7, sp, #0 + 800baa2: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); /*Normally can't scroll the object out on the left. *So simply use the current scroll position as "left size"*/ if(lv_obj_get_style_base_dir(obj, LV_PART_MAIN) != LV_BASE_DIR_RTL) { - 800bb10: 2100 movs r1, #0 - 800bb12: 6878 ldr r0, [r7, #4] - 800bb14: f7ff fe51 bl 800b7ba - 800bb18: 4603 mov r3, r0 - 800bb1a: 2b01 cmp r3, #1 - 800bb1c: d00e beq.n 800bb3c + 800baa4: 2100 movs r1, #0 + 800baa6: 6878 ldr r0, [r7, #4] + 800baa8: f7ff fe51 bl 800b74e + 800baac: 4603 mov r3, r0 + 800baae: 2b01 cmp r3, #1 + 800bab0: d00e beq.n 800bad0 if(obj->spec_attr == NULL) return 0; - 800bb1e: 687b ldr r3, [r7, #4] - 800bb20: 689b ldr r3, [r3, #8] - 800bb22: 2b00 cmp r3, #0 - 800bb24: d101 bne.n 800bb2a - 800bb26: 2300 movs r3, #0 - 800bb28: e08b b.n 800bc42 + 800bab2: 687b ldr r3, [r7, #4] + 800bab4: 689b ldr r3, [r3, #8] + 800bab6: 2b00 cmp r3, #0 + 800bab8: d101 bne.n 800babe + 800baba: 2300 movs r3, #0 + 800babc: e08b b.n 800bbd6 return -obj->spec_attr->scroll.x; - 800bb2a: 687b ldr r3, [r7, #4] - 800bb2c: 689b ldr r3, [r3, #8] - 800bb2e: f9b3 3010 ldrsh.w r3, [r3, #16] - 800bb32: b29b uxth r3, r3 - 800bb34: 425b negs r3, r3 - 800bb36: b29b uxth r3, r3 - 800bb38: b21b sxth r3, r3 - 800bb3a: e082 b.n 800bc42 + 800babe: 687b ldr r3, [r7, #4] + 800bac0: 689b ldr r3, [r3, #8] + 800bac2: f9b3 3010 ldrsh.w r3, [r3, #16] + 800bac6: b29b uxth r3, r3 + 800bac8: 425b negs r3, r3 + 800baca: b29b uxth r3, r3 + 800bacc: b21b sxth r3, r3 + 800bace: e082 b.n 800bbd6 } /*With RTL base direction scrolling the left is normal so find the left most coordinate*/ lv_coord_t pad_right = lv_obj_get_style_pad_right(obj, LV_PART_MAIN); - 800bb3c: 2100 movs r1, #0 - 800bb3e: 6878 ldr r0, [r7, #4] - 800bb40: f7ff fdf1 bl 800b726 - 800bb44: 4603 mov r3, r0 - 800bb46: 83bb strh r3, [r7, #28] + 800bad0: 2100 movs r1, #0 + 800bad2: 6878 ldr r0, [r7, #4] + 800bad4: f7ff fdf1 bl 800b6ba + 800bad8: 4603 mov r3, r0 + 800bada: 83bb strh r3, [r7, #28] lv_coord_t pad_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 800bb48: 2100 movs r1, #0 - 800bb4a: 6878 ldr r0, [r7, #4] - 800bb4c: f7ff fdd8 bl 800b700 - 800bb50: 4603 mov r3, r0 - 800bb52: 837b strh r3, [r7, #26] + 800badc: 2100 movs r1, #0 + 800bade: 6878 ldr r0, [r7, #4] + 800bae0: f7ff fdd8 bl 800b694 + 800bae4: 4603 mov r3, r0 + 800bae6: 837b strh r3, [r7, #26] lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 800bb54: 2100 movs r1, #0 - 800bb56: 6878 ldr r0, [r7, #4] - 800bb58: f7ff fe1c bl 800b794 - 800bb5c: 4603 mov r3, r0 - 800bb5e: 833b strh r3, [r7, #24] + 800bae8: 2100 movs r1, #0 + 800baea: 6878 ldr r0, [r7, #4] + 800baec: f7ff fe1c bl 800b728 + 800baf0: 4603 mov r3, r0 + 800baf2: 833b strh r3, [r7, #24] lv_coord_t child_res = 0; - 800bb60: 2300 movs r3, #0 - 800bb62: 84fb strh r3, [r7, #38] ; 0x26 + 800baf4: 2300 movs r3, #0 + 800baf6: 84fb strh r3, [r7, #38] ; 0x26 uint32_t i; lv_coord_t x1 = LV_COORD_MAX; - 800bb64: f641 73ff movw r3, #8191 ; 0x1fff - 800bb68: 83fb strh r3, [r7, #30] + 800baf8: f641 73ff movw r3, #8191 ; 0x1fff + 800bafc: 83fb strh r3, [r7, #30] uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 800bb6a: 6878 ldr r0, [r7, #4] - 800bb6c: f003 fe10 bl 800f790 - 800bb70: 6178 str r0, [r7, #20] + 800bafe: 6878 ldr r0, [r7, #4] + 800bb00: f003 fdfc bl 800f6fc + 800bb04: 6178 str r0, [r7, #20] for(i = 0; i < child_cnt; i++) { - 800bb72: 2300 movs r3, #0 - 800bb74: 623b str r3, [r7, #32] - 800bb76: e01c b.n 800bbb2 + 800bb06: 2300 movs r3, #0 + 800bb08: 623b str r3, [r7, #32] + 800bb0a: e01c b.n 800bb46 lv_obj_t * child = obj->spec_attr->children[i]; - 800bb78: 687b ldr r3, [r7, #4] - 800bb7a: 689b ldr r3, [r3, #8] - 800bb7c: 681a ldr r2, [r3, #0] - 800bb7e: 6a3b ldr r3, [r7, #32] - 800bb80: 009b lsls r3, r3, #2 - 800bb82: 4413 add r3, r2 - 800bb84: 681b ldr r3, [r3, #0] - 800bb86: 60fb str r3, [r7, #12] + 800bb0c: 687b ldr r3, [r7, #4] + 800bb0e: 689b ldr r3, [r3, #8] + 800bb10: 681a ldr r2, [r3, #0] + 800bb12: 6a3b ldr r3, [r7, #32] + 800bb14: 009b lsls r3, r3, #2 + 800bb16: 4413 add r3, r2 + 800bb18: 681b ldr r3, [r3, #0] + 800bb1a: 60fb str r3, [r7, #12] if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 800bb88: 4930 ldr r1, [pc, #192] ; (800bc4c ) - 800bb8a: 68f8 ldr r0, [r7, #12] - 800bb8c: f7fa fe0d bl 80067aa - 800bb90: 4603 mov r3, r0 - 800bb92: 2b00 cmp r3, #0 - 800bb94: d109 bne.n 800bbaa + 800bb1c: 4930 ldr r1, [pc, #192] ; (800bbe0 ) + 800bb1e: 68f8 ldr r0, [r7, #12] + 800bb20: f7fa fe0d bl 800673e + 800bb24: 4603 mov r3, r0 + 800bb26: 2b00 cmp r3, #0 + 800bb28: d109 bne.n 800bb3e x1 = LV_MIN(x1, child->coords.x1); - 800bb96: 68fb ldr r3, [r7, #12] - 800bb98: f9b3 3014 ldrsh.w r3, [r3, #20] - 800bb9c: f9b7 201e ldrsh.w r2, [r7, #30] - 800bba0: 4293 cmp r3, r2 - 800bba2: bfa8 it ge - 800bba4: 4613 movge r3, r2 - 800bba6: 83fb strh r3, [r7, #30] - 800bba8: e000 b.n 800bbac + 800bb2a: 68fb ldr r3, [r7, #12] + 800bb2c: f9b3 3014 ldrsh.w r3, [r3, #20] + 800bb30: f9b7 201e ldrsh.w r2, [r7, #30] + 800bb34: 4293 cmp r3, r2 + 800bb36: bfa8 it ge + 800bb38: 4613 movge r3, r2 + 800bb3a: 83fb strh r3, [r7, #30] + 800bb3c: e000 b.n 800bb40 if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 800bbaa: bf00 nop + 800bb3e: bf00 nop for(i = 0; i < child_cnt; i++) { - 800bbac: 6a3b ldr r3, [r7, #32] - 800bbae: 3301 adds r3, #1 - 800bbb0: 623b str r3, [r7, #32] - 800bbb2: 6a3a ldr r2, [r7, #32] - 800bbb4: 697b ldr r3, [r7, #20] - 800bbb6: 429a cmp r2, r3 - 800bbb8: d3de bcc.n 800bb78 + 800bb40: 6a3b ldr r3, [r7, #32] + 800bb42: 3301 adds r3, #1 + 800bb44: 623b str r3, [r7, #32] + 800bb46: 6a3a ldr r2, [r7, #32] + 800bb48: 697b ldr r3, [r7, #20] + 800bb4a: 429a cmp r2, r3 + 800bb4c: d3de bcc.n 800bb0c } if(x1 != LV_COORD_MAX) { - 800bbba: f9b7 301e ldrsh.w r3, [r7, #30] - 800bbbe: f641 72ff movw r2, #8191 ; 0x1fff - 800bbc2: 4293 cmp r3, r2 - 800bbc4: d010 beq.n 800bbe8 + 800bb4e: f9b7 301e ldrsh.w r3, [r7, #30] + 800bb52: f641 72ff movw r2, #8191 ; 0x1fff + 800bb56: 4293 cmp r3, r2 + 800bb58: d010 beq.n 800bb7c child_res = x1; - 800bbc6: 8bfb ldrh r3, [r7, #30] - 800bbc8: 84fb strh r3, [r7, #38] ; 0x26 + 800bb5a: 8bfb ldrh r3, [r7, #30] + 800bb5c: 84fb strh r3, [r7, #38] ; 0x26 child_res = (obj->coords.x1 + pad_left + border_width) - child_res; - 800bbca: 687b ldr r3, [r7, #4] - 800bbcc: f9b3 3014 ldrsh.w r3, [r3, #20] - 800bbd0: b29a uxth r2, r3 - 800bbd2: 8b7b ldrh r3, [r7, #26] - 800bbd4: 4413 add r3, r2 - 800bbd6: b29a uxth r2, r3 - 800bbd8: 8b3b ldrh r3, [r7, #24] - 800bbda: 4413 add r3, r2 - 800bbdc: b29a uxth r2, r3 - 800bbde: 8cfb ldrh r3, [r7, #38] ; 0x26 - 800bbe0: 1ad3 subs r3, r2, r3 - 800bbe2: b29b uxth r3, r3 - 800bbe4: 84fb strh r3, [r7, #38] ; 0x26 - 800bbe6: e002 b.n 800bbee + 800bb5e: 687b ldr r3, [r7, #4] + 800bb60: f9b3 3014 ldrsh.w r3, [r3, #20] + 800bb64: b29a uxth r2, r3 + 800bb66: 8b7b ldrh r3, [r7, #26] + 800bb68: 4413 add r3, r2 + 800bb6a: b29a uxth r2, r3 + 800bb6c: 8b3b ldrh r3, [r7, #24] + 800bb6e: 4413 add r3, r2 + 800bb70: b29a uxth r2, r3 + 800bb72: 8cfb ldrh r3, [r7, #38] ; 0x26 + 800bb74: 1ad3 subs r3, r2, r3 + 800bb76: b29b uxth r3, r3 + 800bb78: 84fb strh r3, [r7, #38] ; 0x26 + 800bb7a: e002 b.n 800bb82 } else { child_res = LV_COORD_MIN; - 800bbe8: f24e 0301 movw r3, #57345 ; 0xe001 - 800bbec: 84fb strh r3, [r7, #38] ; 0x26 + 800bb7c: f24e 0301 movw r3, #57345 ; 0xe001 + 800bb80: 84fb strh r3, [r7, #38] ; 0x26 } lv_coord_t self_w = lv_obj_get_self_width(obj); - 800bbee: 6878 ldr r0, [r7, #4] - 800bbf0: f7fe fb7b bl 800a2ea - 800bbf4: 4603 mov r3, r0 - 800bbf6: 827b strh r3, [r7, #18] + 800bb82: 6878 ldr r0, [r7, #4] + 800bb84: f7fe fb7b bl 800a27e + 800bb88: 4603 mov r3, r0 + 800bb8a: 827b strh r3, [r7, #18] self_w = self_w - (lv_obj_get_width(obj) - pad_right - pad_left - 2 * border_width); - 800bbf8: 8b3b ldrh r3, [r7, #24] - 800bbfa: 005b lsls r3, r3, #1 - 800bbfc: b29c uxth r4, r3 - 800bbfe: 8bbd ldrh r5, [r7, #28] - 800bc00: 6878 ldr r0, [r7, #4] - 800bc02: f7fe faa1 bl 800a148 - 800bc06: 4603 mov r3, r0 - 800bc08: b29b uxth r3, r3 - 800bc0a: 1aeb subs r3, r5, r3 - 800bc0c: b29a uxth r2, r3 - 800bc0e: 8b7b ldrh r3, [r7, #26] - 800bc10: 4413 add r3, r2 - 800bc12: b29b uxth r3, r3 - 800bc14: 4423 add r3, r4 - 800bc16: b29a uxth r2, r3 - 800bc18: 8a7b ldrh r3, [r7, #18] - 800bc1a: 4413 add r3, r2 - 800bc1c: b29b uxth r3, r3 - 800bc1e: 827b strh r3, [r7, #18] + 800bb8c: 8b3b ldrh r3, [r7, #24] + 800bb8e: 005b lsls r3, r3, #1 + 800bb90: b29c uxth r4, r3 + 800bb92: 8bbd ldrh r5, [r7, #28] + 800bb94: 6878 ldr r0, [r7, #4] + 800bb96: f7fe faa1 bl 800a0dc + 800bb9a: 4603 mov r3, r0 + 800bb9c: b29b uxth r3, r3 + 800bb9e: 1aeb subs r3, r5, r3 + 800bba0: b29a uxth r2, r3 + 800bba2: 8b7b ldrh r3, [r7, #26] + 800bba4: 4413 add r3, r2 + 800bba6: b29b uxth r3, r3 + 800bba8: 4423 add r3, r4 + 800bbaa: b29a uxth r2, r3 + 800bbac: 8a7b ldrh r3, [r7, #18] + 800bbae: 4413 add r3, r2 + 800bbb0: b29b uxth r3, r3 + 800bbb2: 827b strh r3, [r7, #18] self_w += lv_obj_get_scroll_x(obj); - 800bc20: 6878 ldr r0, [r7, #4] - 800bc22: f7ff fea5 bl 800b970 - 800bc26: 4603 mov r3, r0 - 800bc28: b29a uxth r2, r3 - 800bc2a: 8a7b ldrh r3, [r7, #18] - 800bc2c: 4413 add r3, r2 - 800bc2e: b29b uxth r3, r3 - 800bc30: 827b strh r3, [r7, #18] + 800bbb4: 6878 ldr r0, [r7, #4] + 800bbb6: f7ff fea5 bl 800b904 + 800bbba: 4603 mov r3, r0 + 800bbbc: b29a uxth r2, r3 + 800bbbe: 8a7b ldrh r3, [r7, #18] + 800bbc0: 4413 add r3, r2 + 800bbc2: b29b uxth r3, r3 + 800bbc4: 827b strh r3, [r7, #18] return LV_MAX(child_res, self_w); - 800bc32: f9b7 2012 ldrsh.w r2, [r7, #18] - 800bc36: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 800bc3a: 4293 cmp r3, r2 - 800bc3c: bfb8 it lt - 800bc3e: 4613 movlt r3, r2 - 800bc40: b21b sxth r3, r3 + 800bbc6: f9b7 2012 ldrsh.w r2, [r7, #18] + 800bbca: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 800bbce: 4293 cmp r3, r2 + 800bbd0: bfb8 it lt + 800bbd2: 4613 movlt r3, r2 + 800bbd4: b21b sxth r3, r3 } - 800bc42: 4618 mov r0, r3 - 800bc44: 3728 adds r7, #40 ; 0x28 - 800bc46: 46bd mov sp, r7 - 800bc48: bdb0 pop {r4, r5, r7, pc} - 800bc4a: bf00 nop - 800bc4c: 00040001 .word 0x00040001 + 800bbd6: 4618 mov r0, r3 + 800bbd8: 3728 adds r7, #40 ; 0x28 + 800bbda: 46bd mov sp, r7 + 800bbdc: bdb0 pop {r4, r5, r7, pc} + 800bbde: bf00 nop + 800bbe0: 00040001 .word 0x00040001 -0800bc50 : +0800bbe4 : lv_coord_t lv_obj_get_scroll_right(lv_obj_t * obj) { - 800bc50: b5b0 push {r4, r5, r7, lr} - 800bc52: b088 sub sp, #32 - 800bc54: af00 add r7, sp, #0 - 800bc56: 6078 str r0, [r7, #4] + 800bbe4: b5b0 push {r4, r5, r7, lr} + 800bbe6: b088 sub sp, #32 + 800bbe8: af00 add r7, sp, #0 + 800bbea: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); /*With RTL base dir can't scroll to the object out on the right. *So simply use the current scroll position as "right size"*/ if(lv_obj_get_style_base_dir(obj, LV_PART_MAIN) == LV_BASE_DIR_RTL) { - 800bc58: 2100 movs r1, #0 - 800bc5a: 6878 ldr r0, [r7, #4] - 800bc5c: f7ff fdad bl 800b7ba - 800bc60: 4603 mov r3, r0 - 800bc62: 2b01 cmp r3, #1 - 800bc64: d10a bne.n 800bc7c + 800bbec: 2100 movs r1, #0 + 800bbee: 6878 ldr r0, [r7, #4] + 800bbf0: f7ff fdad bl 800b74e + 800bbf4: 4603 mov r3, r0 + 800bbf6: 2b01 cmp r3, #1 + 800bbf8: d10a bne.n 800bc10 if(obj->spec_attr == NULL) return 0; - 800bc66: 687b ldr r3, [r7, #4] - 800bc68: 689b ldr r3, [r3, #8] - 800bc6a: 2b00 cmp r3, #0 - 800bc6c: d101 bne.n 800bc72 - 800bc6e: 2300 movs r3, #0 - 800bc70: e07e b.n 800bd70 + 800bbfa: 687b ldr r3, [r7, #4] + 800bbfc: 689b ldr r3, [r3, #8] + 800bbfe: 2b00 cmp r3, #0 + 800bc00: d101 bne.n 800bc06 + 800bc02: 2300 movs r3, #0 + 800bc04: e07e b.n 800bd04 return obj->spec_attr->scroll.x; - 800bc72: 687b ldr r3, [r7, #4] - 800bc74: 689b ldr r3, [r3, #8] - 800bc76: f9b3 3010 ldrsh.w r3, [r3, #16] - 800bc7a: e079 b.n 800bd70 + 800bc06: 687b ldr r3, [r7, #4] + 800bc08: 689b ldr r3, [r3, #8] + 800bc0a: f9b3 3010 ldrsh.w r3, [r3, #16] + 800bc0e: e079 b.n 800bd04 } /*With other base direction (LTR) scrolling to the right is normal so find the right most coordinate*/ lv_coord_t child_res = LV_COORD_MIN; - 800bc7c: f24e 0301 movw r3, #57345 ; 0xe001 - 800bc80: 83fb strh r3, [r7, #30] + 800bc10: f24e 0301 movw r3, #57345 ; 0xe001 + 800bc14: 83fb strh r3, [r7, #30] uint32_t i; uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 800bc82: 6878 ldr r0, [r7, #4] - 800bc84: f003 fd84 bl 800f790 - 800bc88: 6178 str r0, [r7, #20] + 800bc16: 6878 ldr r0, [r7, #4] + 800bc18: f003 fd70 bl 800f6fc + 800bc1c: 6178 str r0, [r7, #20] for(i = 0; i < child_cnt; i++) { - 800bc8a: 2300 movs r3, #0 - 800bc8c: 61bb str r3, [r7, #24] - 800bc8e: e01c b.n 800bcca + 800bc1e: 2300 movs r3, #0 + 800bc20: 61bb str r3, [r7, #24] + 800bc22: e01c b.n 800bc5e lv_obj_t * child = obj->spec_attr->children[i]; - 800bc90: 687b ldr r3, [r7, #4] - 800bc92: 689b ldr r3, [r3, #8] - 800bc94: 681a ldr r2, [r3, #0] - 800bc96: 69bb ldr r3, [r7, #24] - 800bc98: 009b lsls r3, r3, #2 - 800bc9a: 4413 add r3, r2 - 800bc9c: 681b ldr r3, [r3, #0] - 800bc9e: 60bb str r3, [r7, #8] + 800bc24: 687b ldr r3, [r7, #4] + 800bc26: 689b ldr r3, [r3, #8] + 800bc28: 681a ldr r2, [r3, #0] + 800bc2a: 69bb ldr r3, [r7, #24] + 800bc2c: 009b lsls r3, r3, #2 + 800bc2e: 4413 add r3, r2 + 800bc30: 681b ldr r3, [r3, #0] + 800bc32: 60bb str r3, [r7, #8] if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 800bca0: 4935 ldr r1, [pc, #212] ; (800bd78 ) - 800bca2: 68b8 ldr r0, [r7, #8] - 800bca4: f7fa fd81 bl 80067aa - 800bca8: 4603 mov r3, r0 - 800bcaa: 2b00 cmp r3, #0 - 800bcac: d109 bne.n 800bcc2 + 800bc34: 4935 ldr r1, [pc, #212] ; (800bd0c ) + 800bc36: 68b8 ldr r0, [r7, #8] + 800bc38: f7fa fd81 bl 800673e + 800bc3c: 4603 mov r3, r0 + 800bc3e: 2b00 cmp r3, #0 + 800bc40: d109 bne.n 800bc56 child_res = LV_MAX(child_res, child->coords.x2); - 800bcae: 68bb ldr r3, [r7, #8] - 800bcb0: f9b3 3018 ldrsh.w r3, [r3, #24] - 800bcb4: f9b7 201e ldrsh.w r2, [r7, #30] - 800bcb8: 4293 cmp r3, r2 - 800bcba: bfb8 it lt - 800bcbc: 4613 movlt r3, r2 - 800bcbe: 83fb strh r3, [r7, #30] - 800bcc0: e000 b.n 800bcc4 + 800bc42: 68bb ldr r3, [r7, #8] + 800bc44: f9b3 3018 ldrsh.w r3, [r3, #24] + 800bc48: f9b7 201e ldrsh.w r2, [r7, #30] + 800bc4c: 4293 cmp r3, r2 + 800bc4e: bfb8 it lt + 800bc50: 4613 movlt r3, r2 + 800bc52: 83fb strh r3, [r7, #30] + 800bc54: e000 b.n 800bc58 if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 800bcc2: bf00 nop + 800bc56: bf00 nop for(i = 0; i < child_cnt; i++) { - 800bcc4: 69bb ldr r3, [r7, #24] - 800bcc6: 3301 adds r3, #1 - 800bcc8: 61bb str r3, [r7, #24] - 800bcca: 69ba ldr r2, [r7, #24] - 800bccc: 697b ldr r3, [r7, #20] - 800bcce: 429a cmp r2, r3 - 800bcd0: d3de bcc.n 800bc90 + 800bc58: 69bb ldr r3, [r7, #24] + 800bc5a: 3301 adds r3, #1 + 800bc5c: 61bb str r3, [r7, #24] + 800bc5e: 69ba ldr r2, [r7, #24] + 800bc60: 697b ldr r3, [r7, #20] + 800bc62: 429a cmp r2, r3 + 800bc64: d3de bcc.n 800bc24 } lv_coord_t pad_right = lv_obj_get_style_pad_right(obj, LV_PART_MAIN); - 800bcd2: 2100 movs r1, #0 - 800bcd4: 6878 ldr r0, [r7, #4] - 800bcd6: f7ff fd26 bl 800b726 - 800bcda: 4603 mov r3, r0 - 800bcdc: 827b strh r3, [r7, #18] + 800bc66: 2100 movs r1, #0 + 800bc68: 6878 ldr r0, [r7, #4] + 800bc6a: f7ff fd26 bl 800b6ba + 800bc6e: 4603 mov r3, r0 + 800bc70: 827b strh r3, [r7, #18] lv_coord_t pad_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 800bcde: 2100 movs r1, #0 - 800bce0: 6878 ldr r0, [r7, #4] - 800bce2: f7ff fd0d bl 800b700 - 800bce6: 4603 mov r3, r0 - 800bce8: 823b strh r3, [r7, #16] + 800bc72: 2100 movs r1, #0 + 800bc74: 6878 ldr r0, [r7, #4] + 800bc76: f7ff fd0d bl 800b694 + 800bc7a: 4603 mov r3, r0 + 800bc7c: 823b strh r3, [r7, #16] lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 800bcea: 2100 movs r1, #0 - 800bcec: 6878 ldr r0, [r7, #4] - 800bcee: f7ff fd51 bl 800b794 - 800bcf2: 4603 mov r3, r0 - 800bcf4: 81fb strh r3, [r7, #14] + 800bc7e: 2100 movs r1, #0 + 800bc80: 6878 ldr r0, [r7, #4] + 800bc82: f7ff fd51 bl 800b728 + 800bc86: 4603 mov r3, r0 + 800bc88: 81fb strh r3, [r7, #14] if(child_res != LV_COORD_MIN) { - 800bcf6: f9b7 301e ldrsh.w r3, [r7, #30] - 800bcfa: 4a20 ldr r2, [pc, #128] ; (800bd7c ) - 800bcfc: 4293 cmp r3, r2 - 800bcfe: d00d beq.n 800bd1c + 800bc8a: f9b7 301e ldrsh.w r3, [r7, #30] + 800bc8e: 4a20 ldr r2, [pc, #128] ; (800bd10 ) + 800bc90: 4293 cmp r3, r2 + 800bc92: d00d beq.n 800bcb0 child_res -= (obj->coords.x2 - pad_right - border_width); - 800bd00: 8a7a ldrh r2, [r7, #18] - 800bd02: 687b ldr r3, [r7, #4] - 800bd04: f9b3 3018 ldrsh.w r3, [r3, #24] - 800bd08: b29b uxth r3, r3 - 800bd0a: 1ad3 subs r3, r2, r3 - 800bd0c: b29a uxth r2, r3 - 800bd0e: 89fb ldrh r3, [r7, #14] - 800bd10: 4413 add r3, r2 - 800bd12: b29a uxth r2, r3 - 800bd14: 8bfb ldrh r3, [r7, #30] - 800bd16: 4413 add r3, r2 - 800bd18: b29b uxth r3, r3 - 800bd1a: 83fb strh r3, [r7, #30] + 800bc94: 8a7a ldrh r2, [r7, #18] + 800bc96: 687b ldr r3, [r7, #4] + 800bc98: f9b3 3018 ldrsh.w r3, [r3, #24] + 800bc9c: b29b uxth r3, r3 + 800bc9e: 1ad3 subs r3, r2, r3 + 800bca0: b29a uxth r2, r3 + 800bca2: 89fb ldrh r3, [r7, #14] + 800bca4: 4413 add r3, r2 + 800bca6: b29a uxth r2, r3 + 800bca8: 8bfb ldrh r3, [r7, #30] + 800bcaa: 4413 add r3, r2 + 800bcac: b29b uxth r3, r3 + 800bcae: 83fb strh r3, [r7, #30] } lv_coord_t self_w; self_w = lv_obj_get_self_width(obj); - 800bd1c: 6878 ldr r0, [r7, #4] - 800bd1e: f7fe fae4 bl 800a2ea - 800bd22: 4603 mov r3, r0 - 800bd24: 81bb strh r3, [r7, #12] + 800bcb0: 6878 ldr r0, [r7, #4] + 800bcb2: f7fe fae4 bl 800a27e + 800bcb6: 4603 mov r3, r0 + 800bcb8: 81bb strh r3, [r7, #12] self_w = self_w - (lv_obj_get_width(obj) - pad_right - pad_left - 2 * border_width); - 800bd26: 89fb ldrh r3, [r7, #14] - 800bd28: 005b lsls r3, r3, #1 - 800bd2a: b29c uxth r4, r3 - 800bd2c: 8a7d ldrh r5, [r7, #18] - 800bd2e: 6878 ldr r0, [r7, #4] - 800bd30: f7fe fa0a bl 800a148 - 800bd34: 4603 mov r3, r0 - 800bd36: b29b uxth r3, r3 - 800bd38: 1aeb subs r3, r5, r3 - 800bd3a: b29a uxth r2, r3 - 800bd3c: 8a3b ldrh r3, [r7, #16] - 800bd3e: 4413 add r3, r2 - 800bd40: b29b uxth r3, r3 - 800bd42: 4423 add r3, r4 - 800bd44: b29a uxth r2, r3 - 800bd46: 89bb ldrh r3, [r7, #12] - 800bd48: 4413 add r3, r2 - 800bd4a: b29b uxth r3, r3 - 800bd4c: 81bb strh r3, [r7, #12] + 800bcba: 89fb ldrh r3, [r7, #14] + 800bcbc: 005b lsls r3, r3, #1 + 800bcbe: b29c uxth r4, r3 + 800bcc0: 8a7d ldrh r5, [r7, #18] + 800bcc2: 6878 ldr r0, [r7, #4] + 800bcc4: f7fe fa0a bl 800a0dc + 800bcc8: 4603 mov r3, r0 + 800bcca: b29b uxth r3, r3 + 800bccc: 1aeb subs r3, r5, r3 + 800bcce: b29a uxth r2, r3 + 800bcd0: 8a3b ldrh r3, [r7, #16] + 800bcd2: 4413 add r3, r2 + 800bcd4: b29b uxth r3, r3 + 800bcd6: 4423 add r3, r4 + 800bcd8: b29a uxth r2, r3 + 800bcda: 89bb ldrh r3, [r7, #12] + 800bcdc: 4413 add r3, r2 + 800bcde: b29b uxth r3, r3 + 800bce0: 81bb strh r3, [r7, #12] self_w -= lv_obj_get_scroll_x(obj); - 800bd4e: 6878 ldr r0, [r7, #4] - 800bd50: f7ff fe0e bl 800b970 - 800bd54: 4603 mov r3, r0 - 800bd56: 89ba ldrh r2, [r7, #12] - 800bd58: b29b uxth r3, r3 - 800bd5a: 1ad3 subs r3, r2, r3 - 800bd5c: b29b uxth r3, r3 - 800bd5e: 81bb strh r3, [r7, #12] + 800bce2: 6878 ldr r0, [r7, #4] + 800bce4: f7ff fe0e bl 800b904 + 800bce8: 4603 mov r3, r0 + 800bcea: 89ba ldrh r2, [r7, #12] + 800bcec: b29b uxth r3, r3 + 800bcee: 1ad3 subs r3, r2, r3 + 800bcf0: b29b uxth r3, r3 + 800bcf2: 81bb strh r3, [r7, #12] return LV_MAX(child_res, self_w); - 800bd60: f9b7 200c ldrsh.w r2, [r7, #12] - 800bd64: f9b7 301e ldrsh.w r3, [r7, #30] - 800bd68: 4293 cmp r3, r2 - 800bd6a: bfb8 it lt - 800bd6c: 4613 movlt r3, r2 - 800bd6e: b21b sxth r3, r3 + 800bcf4: f9b7 200c ldrsh.w r2, [r7, #12] + 800bcf8: f9b7 301e ldrsh.w r3, [r7, #30] + 800bcfc: 4293 cmp r3, r2 + 800bcfe: bfb8 it lt + 800bd00: 4613 movlt r3, r2 + 800bd02: b21b sxth r3, r3 } - 800bd70: 4618 mov r0, r3 - 800bd72: 3720 adds r7, #32 - 800bd74: 46bd mov sp, r7 - 800bd76: bdb0 pop {r4, r5, r7, pc} - 800bd78: 00040001 .word 0x00040001 - 800bd7c: ffffe001 .word 0xffffe001 + 800bd04: 4618 mov r0, r3 + 800bd06: 3720 adds r7, #32 + 800bd08: 46bd mov sp, r7 + 800bd0a: bdb0 pop {r4, r5, r7, pc} + 800bd0c: 00040001 .word 0x00040001 + 800bd10: ffffe001 .word 0xffffe001 -0800bd80 : +0800bd14 : void lv_obj_get_scroll_end(struct _lv_obj_t * obj, lv_point_t * end) { - 800bd80: b580 push {r7, lr} - 800bd82: b084 sub sp, #16 - 800bd84: af00 add r7, sp, #0 - 800bd86: 6078 str r0, [r7, #4] - 800bd88: 6039 str r1, [r7, #0] + 800bd14: b580 push {r7, lr} + 800bd16: b084 sub sp, #16 + 800bd18: af00 add r7, sp, #0 + 800bd1a: 6078 str r0, [r7, #4] + 800bd1c: 6039 str r1, [r7, #0] lv_anim_t * a; a = lv_anim_get(obj, scroll_x_anim); - 800bd8a: 4918 ldr r1, [pc, #96] ; (800bdec ) - 800bd8c: 6878 ldr r0, [r7, #4] - 800bd8e: f024 fe35 bl 80309fc - 800bd92: 60f8 str r0, [r7, #12] + 800bd1e: 4918 ldr r1, [pc, #96] ; (800bd80 ) + 800bd20: 6878 ldr r0, [r7, #4] + 800bd22: f024 fe21 bl 8030968 + 800bd26: 60f8 str r0, [r7, #12] end->x = a ? -a->end_value : lv_obj_get_scroll_x(obj); - 800bd94: 68fb ldr r3, [r7, #12] - 800bd96: 2b00 cmp r3, #0 - 800bd98: d006 beq.n 800bda8 - 800bd9a: 68fb ldr r3, [r7, #12] - 800bd9c: 6a5b ldr r3, [r3, #36] ; 0x24 - 800bd9e: b29b uxth r3, r3 - 800bda0: 425b negs r3, r3 - 800bda2: b29b uxth r3, r3 - 800bda4: b21a sxth r2, r3 - 800bda6: e004 b.n 800bdb2 - 800bda8: 6878 ldr r0, [r7, #4] - 800bdaa: f7ff fde1 bl 800b970 - 800bdae: 4603 mov r3, r0 - 800bdb0: 461a mov r2, r3 - 800bdb2: 683b ldr r3, [r7, #0] - 800bdb4: 801a strh r2, [r3, #0] + 800bd28: 68fb ldr r3, [r7, #12] + 800bd2a: 2b00 cmp r3, #0 + 800bd2c: d006 beq.n 800bd3c + 800bd2e: 68fb ldr r3, [r7, #12] + 800bd30: 6a5b ldr r3, [r3, #36] ; 0x24 + 800bd32: b29b uxth r3, r3 + 800bd34: 425b negs r3, r3 + 800bd36: b29b uxth r3, r3 + 800bd38: b21a sxth r2, r3 + 800bd3a: e004 b.n 800bd46 + 800bd3c: 6878 ldr r0, [r7, #4] + 800bd3e: f7ff fde1 bl 800b904 + 800bd42: 4603 mov r3, r0 + 800bd44: 461a mov r2, r3 + 800bd46: 683b ldr r3, [r7, #0] + 800bd48: 801a strh r2, [r3, #0] a = lv_anim_get(obj, scroll_y_anim); - 800bdb6: 490e ldr r1, [pc, #56] ; (800bdf0 ) - 800bdb8: 6878 ldr r0, [r7, #4] - 800bdba: f024 fe1f bl 80309fc - 800bdbe: 60f8 str r0, [r7, #12] + 800bd4a: 490e ldr r1, [pc, #56] ; (800bd84 ) + 800bd4c: 6878 ldr r0, [r7, #4] + 800bd4e: f024 fe0b bl 8030968 + 800bd52: 60f8 str r0, [r7, #12] end->y = a ? -a->end_value : lv_obj_get_scroll_y(obj); - 800bdc0: 68fb ldr r3, [r7, #12] - 800bdc2: 2b00 cmp r3, #0 - 800bdc4: d006 beq.n 800bdd4 - 800bdc6: 68fb ldr r3, [r7, #12] - 800bdc8: 6a5b ldr r3, [r3, #36] ; 0x24 - 800bdca: b29b uxth r3, r3 - 800bdcc: 425b negs r3, r3 - 800bdce: b29b uxth r3, r3 - 800bdd0: b21a sxth r2, r3 - 800bdd2: e004 b.n 800bdde - 800bdd4: 6878 ldr r0, [r7, #4] - 800bdd6: f7ff fde2 bl 800b99e - 800bdda: 4603 mov r3, r0 - 800bddc: 461a mov r2, r3 - 800bdde: 683b ldr r3, [r7, #0] - 800bde0: 805a strh r2, [r3, #2] + 800bd54: 68fb ldr r3, [r7, #12] + 800bd56: 2b00 cmp r3, #0 + 800bd58: d006 beq.n 800bd68 + 800bd5a: 68fb ldr r3, [r7, #12] + 800bd5c: 6a5b ldr r3, [r3, #36] ; 0x24 + 800bd5e: b29b uxth r3, r3 + 800bd60: 425b negs r3, r3 + 800bd62: b29b uxth r3, r3 + 800bd64: b21a sxth r2, r3 + 800bd66: e004 b.n 800bd72 + 800bd68: 6878 ldr r0, [r7, #4] + 800bd6a: f7ff fde2 bl 800b932 + 800bd6e: 4603 mov r3, r0 + 800bd70: 461a mov r2, r3 + 800bd72: 683b ldr r3, [r7, #0] + 800bd74: 805a strh r2, [r3, #2] } - 800bde2: bf00 nop - 800bde4: 3710 adds r7, #16 - 800bde6: 46bd mov sp, r7 - 800bde8: bd80 pop {r7, pc} - 800bdea: bf00 nop - 800bdec: 0800d071 .word 0x0800d071 - 800bdf0: 0800d0a1 .word 0x0800d0a1 + 800bd76: bf00 nop + 800bd78: 3710 adds r7, #16 + 800bd7a: 46bd mov sp, r7 + 800bd7c: bd80 pop {r7, pc} + 800bd7e: bf00 nop + 800bd80: 0800d005 .word 0x0800d005 + 800bd84: 0800d035 .word 0x0800d035 -0800bdf4 : +0800bd88 : /*===================== * Other functions *====================*/ void lv_obj_scroll_by_bounded(lv_obj_t * obj, lv_coord_t dx, lv_coord_t dy, lv_anim_enable_t anim_en) { - 800bdf4: b590 push {r4, r7, lr} - 800bdf6: b089 sub sp, #36 ; 0x24 - 800bdf8: af00 add r7, sp, #0 - 800bdfa: 60f8 str r0, [r7, #12] - 800bdfc: 4608 mov r0, r1 - 800bdfe: 4611 mov r1, r2 - 800be00: 461a mov r2, r3 - 800be02: 4603 mov r3, r0 - 800be04: 817b strh r3, [r7, #10] - 800be06: 460b mov r3, r1 - 800be08: 813b strh r3, [r7, #8] - 800be0a: 4613 mov r3, r2 - 800be0c: 71fb strb r3, [r7, #7] + 800bd88: b590 push {r4, r7, lr} + 800bd8a: b089 sub sp, #36 ; 0x24 + 800bd8c: af00 add r7, sp, #0 + 800bd8e: 60f8 str r0, [r7, #12] + 800bd90: 4608 mov r0, r1 + 800bd92: 4611 mov r1, r2 + 800bd94: 461a mov r2, r3 + 800bd96: 4603 mov r3, r0 + 800bd98: 817b strh r3, [r7, #10] + 800bd9a: 460b mov r3, r1 + 800bd9c: 813b strh r3, [r7, #8] + 800bd9e: 4613 mov r3, r2 + 800bda0: 71fb strb r3, [r7, #7] if(dx == 0 && dy == 0) return; - 800be0e: f9b7 300a ldrsh.w r3, [r7, #10] - 800be12: 2b00 cmp r3, #0 - 800be14: d104 bne.n 800be20 - 800be16: f9b7 3008 ldrsh.w r3, [r7, #8] - 800be1a: 2b00 cmp r3, #0 - 800be1c: f000 80b5 beq.w 800bf8a + 800bda2: f9b7 300a ldrsh.w r3, [r7, #10] + 800bda6: 2b00 cmp r3, #0 + 800bda8: d104 bne.n 800bdb4 + 800bdaa: f9b7 3008 ldrsh.w r3, [r7, #8] + 800bdae: 2b00 cmp r3, #0 + 800bdb0: f000 80b5 beq.w 800bf1e /*We need to know the final sizes for bound check*/ lv_obj_update_layout(obj); - 800be20: 68f8 ldr r0, [r7, #12] - 800be22: f7fd fd8b bl 800993c + 800bdb4: 68f8 ldr r0, [r7, #12] + 800bdb6: f7fd fd8b bl 80098d0 /*Don't let scroll more then naturally possible by the size of the content*/ lv_coord_t x_current = -lv_obj_get_scroll_x(obj); - 800be26: 68f8 ldr r0, [r7, #12] - 800be28: f7ff fda2 bl 800b970 - 800be2c: 4603 mov r3, r0 - 800be2e: b29b uxth r3, r3 - 800be30: 425b negs r3, r3 - 800be32: b29b uxth r3, r3 - 800be34: 82bb strh r3, [r7, #20] + 800bdba: 68f8 ldr r0, [r7, #12] + 800bdbc: f7ff fda2 bl 800b904 + 800bdc0: 4603 mov r3, r0 + 800bdc2: b29b uxth r3, r3 + 800bdc4: 425b negs r3, r3 + 800bdc6: b29b uxth r3, r3 + 800bdc8: 82bb strh r3, [r7, #20] lv_coord_t x_bounded = x_current + dx; - 800be36: 8aba ldrh r2, [r7, #20] - 800be38: 897b ldrh r3, [r7, #10] - 800be3a: 4413 add r3, r2 - 800be3c: b29b uxth r3, r3 - 800be3e: 83fb strh r3, [r7, #30] + 800bdca: 8aba ldrh r2, [r7, #20] + 800bdcc: 897b ldrh r3, [r7, #10] + 800bdce: 4413 add r3, r2 + 800bdd0: b29b uxth r3, r3 + 800bdd2: 83fb strh r3, [r7, #30] if(lv_obj_get_style_base_dir(obj, LV_PART_MAIN) != LV_BASE_DIR_RTL) { - 800be40: 2100 movs r1, #0 - 800be42: 68f8 ldr r0, [r7, #12] - 800be44: f7ff fcb9 bl 800b7ba - 800be48: 4603 mov r3, r0 - 800be4a: 2b01 cmp r3, #1 - 800be4c: d028 beq.n 800bea0 + 800bdd4: 2100 movs r1, #0 + 800bdd6: 68f8 ldr r0, [r7, #12] + 800bdd8: f7ff fcb9 bl 800b74e + 800bddc: 4603 mov r3, r0 + 800bdde: 2b01 cmp r3, #1 + 800bde0: d028 beq.n 800be34 if(x_bounded > 0) x_bounded = 0; - 800be4e: f9b7 301e ldrsh.w r3, [r7, #30] - 800be52: 2b00 cmp r3, #0 - 800be54: dd01 ble.n 800be5a - 800be56: 2300 movs r3, #0 - 800be58: 83fb strh r3, [r7, #30] + 800bde2: f9b7 301e ldrsh.w r3, [r7, #30] + 800bde6: 2b00 cmp r3, #0 + 800bde8: dd01 ble.n 800bdee + 800bdea: 2300 movs r3, #0 + 800bdec: 83fb strh r3, [r7, #30] if(x_bounded < 0) { - 800be5a: f9b7 301e ldrsh.w r3, [r7, #30] - 800be5e: 2b00 cmp r3, #0 - 800be60: da43 bge.n 800beea + 800bdee: f9b7 301e ldrsh.w r3, [r7, #30] + 800bdf2: 2b00 cmp r3, #0 + 800bdf4: da43 bge.n 800be7e lv_coord_t scroll_max = lv_obj_get_scroll_left(obj) + lv_obj_get_scroll_right(obj); - 800be62: 68f8 ldr r0, [r7, #12] - 800be64: f7ff fe50 bl 800bb08 - 800be68: 4603 mov r3, r0 - 800be6a: b29c uxth r4, r3 - 800be6c: 68f8 ldr r0, [r7, #12] - 800be6e: f7ff feef bl 800bc50 - 800be72: 4603 mov r3, r0 - 800be74: b29b uxth r3, r3 - 800be76: 4423 add r3, r4 - 800be78: b29b uxth r3, r3 - 800be7a: 83bb strh r3, [r7, #28] + 800bdf6: 68f8 ldr r0, [r7, #12] + 800bdf8: f7ff fe50 bl 800ba9c + 800bdfc: 4603 mov r3, r0 + 800bdfe: b29c uxth r4, r3 + 800be00: 68f8 ldr r0, [r7, #12] + 800be02: f7ff feef bl 800bbe4 + 800be06: 4603 mov r3, r0 + 800be08: b29b uxth r3, r3 + 800be0a: 4423 add r3, r4 + 800be0c: b29b uxth r3, r3 + 800be0e: 83bb strh r3, [r7, #28] if(scroll_max < 0) scroll_max = 0; - 800be7c: f9b7 301c ldrsh.w r3, [r7, #28] - 800be80: 2b00 cmp r3, #0 - 800be82: da01 bge.n 800be88 - 800be84: 2300 movs r3, #0 - 800be86: 83bb strh r3, [r7, #28] + 800be10: f9b7 301c ldrsh.w r3, [r7, #28] + 800be14: 2b00 cmp r3, #0 + 800be16: da01 bge.n 800be1c + 800be18: 2300 movs r3, #0 + 800be1a: 83bb strh r3, [r7, #28] if(x_bounded < -scroll_max) x_bounded = -scroll_max; - 800be88: f9b7 201e ldrsh.w r2, [r7, #30] - 800be8c: f9b7 301c ldrsh.w r3, [r7, #28] - 800be90: 425b negs r3, r3 - 800be92: 429a cmp r2, r3 - 800be94: da29 bge.n 800beea - 800be96: 8bbb ldrh r3, [r7, #28] - 800be98: 425b negs r3, r3 - 800be9a: b29b uxth r3, r3 - 800be9c: 83fb strh r3, [r7, #30] - 800be9e: e024 b.n 800beea + 800be1c: f9b7 201e ldrsh.w r2, [r7, #30] + 800be20: f9b7 301c ldrsh.w r3, [r7, #28] + 800be24: 425b negs r3, r3 + 800be26: 429a cmp r2, r3 + 800be28: da29 bge.n 800be7e + 800be2a: 8bbb ldrh r3, [r7, #28] + 800be2c: 425b negs r3, r3 + 800be2e: b29b uxth r3, r3 + 800be30: 83fb strh r3, [r7, #30] + 800be32: e024 b.n 800be7e } } else { if(x_bounded < 0) x_bounded = 0; - 800bea0: f9b7 301e ldrsh.w r3, [r7, #30] - 800bea4: 2b00 cmp r3, #0 - 800bea6: da01 bge.n 800beac - 800bea8: 2300 movs r3, #0 - 800beaa: 83fb strh r3, [r7, #30] + 800be34: f9b7 301e ldrsh.w r3, [r7, #30] + 800be38: 2b00 cmp r3, #0 + 800be3a: da01 bge.n 800be40 + 800be3c: 2300 movs r3, #0 + 800be3e: 83fb strh r3, [r7, #30] if(x_bounded > 0) { - 800beac: f9b7 301e ldrsh.w r3, [r7, #30] - 800beb0: 2b00 cmp r3, #0 - 800beb2: dd1a ble.n 800beea + 800be40: f9b7 301e ldrsh.w r3, [r7, #30] + 800be44: 2b00 cmp r3, #0 + 800be46: dd1a ble.n 800be7e lv_coord_t scroll_max = lv_obj_get_scroll_left(obj) + lv_obj_get_scroll_right(obj); - 800beb4: 68f8 ldr r0, [r7, #12] - 800beb6: f7ff fe27 bl 800bb08 - 800beba: 4603 mov r3, r0 - 800bebc: b29c uxth r4, r3 - 800bebe: 68f8 ldr r0, [r7, #12] - 800bec0: f7ff fec6 bl 800bc50 - 800bec4: 4603 mov r3, r0 - 800bec6: b29b uxth r3, r3 - 800bec8: 4423 add r3, r4 - 800beca: b29b uxth r3, r3 - 800becc: 837b strh r3, [r7, #26] + 800be48: 68f8 ldr r0, [r7, #12] + 800be4a: f7ff fe27 bl 800ba9c + 800be4e: 4603 mov r3, r0 + 800be50: b29c uxth r4, r3 + 800be52: 68f8 ldr r0, [r7, #12] + 800be54: f7ff fec6 bl 800bbe4 + 800be58: 4603 mov r3, r0 + 800be5a: b29b uxth r3, r3 + 800be5c: 4423 add r3, r4 + 800be5e: b29b uxth r3, r3 + 800be60: 837b strh r3, [r7, #26] if(scroll_max < 0) scroll_max = 0; - 800bece: f9b7 301a ldrsh.w r3, [r7, #26] - 800bed2: 2b00 cmp r3, #0 - 800bed4: da01 bge.n 800beda - 800bed6: 2300 movs r3, #0 - 800bed8: 837b strh r3, [r7, #26] + 800be62: f9b7 301a ldrsh.w r3, [r7, #26] + 800be66: 2b00 cmp r3, #0 + 800be68: da01 bge.n 800be6e + 800be6a: 2300 movs r3, #0 + 800be6c: 837b strh r3, [r7, #26] if(x_bounded > scroll_max) x_bounded = scroll_max; - 800beda: f9b7 201e ldrsh.w r2, [r7, #30] - 800bede: f9b7 301a ldrsh.w r3, [r7, #26] - 800bee2: 429a cmp r2, r3 - 800bee4: dd01 ble.n 800beea - 800bee6: 8b7b ldrh r3, [r7, #26] - 800bee8: 83fb strh r3, [r7, #30] + 800be6e: f9b7 201e ldrsh.w r2, [r7, #30] + 800be72: f9b7 301a ldrsh.w r3, [r7, #26] + 800be76: 429a cmp r2, r3 + 800be78: dd01 ble.n 800be7e + 800be7a: 8b7b ldrh r3, [r7, #26] + 800be7c: 83fb strh r3, [r7, #30] } } /*Don't let scroll more then naturally possible by the size of the content*/ lv_coord_t y_current = -lv_obj_get_scroll_y(obj); - 800beea: 68f8 ldr r0, [r7, #12] - 800beec: f7ff fd57 bl 800b99e - 800bef0: 4603 mov r3, r0 - 800bef2: b29b uxth r3, r3 - 800bef4: 425b negs r3, r3 - 800bef6: b29b uxth r3, r3 - 800bef8: 827b strh r3, [r7, #18] + 800be7e: 68f8 ldr r0, [r7, #12] + 800be80: f7ff fd57 bl 800b932 + 800be84: 4603 mov r3, r0 + 800be86: b29b uxth r3, r3 + 800be88: 425b negs r3, r3 + 800be8a: b29b uxth r3, r3 + 800be8c: 827b strh r3, [r7, #18] lv_coord_t y_bounded = y_current + dy; - 800befa: 8a7a ldrh r2, [r7, #18] - 800befc: 893b ldrh r3, [r7, #8] - 800befe: 4413 add r3, r2 - 800bf00: b29b uxth r3, r3 - 800bf02: 833b strh r3, [r7, #24] + 800be8e: 8a7a ldrh r2, [r7, #18] + 800be90: 893b ldrh r3, [r7, #8] + 800be92: 4413 add r3, r2 + 800be94: b29b uxth r3, r3 + 800be96: 833b strh r3, [r7, #24] if(y_bounded > 0) y_bounded = 0; - 800bf04: f9b7 3018 ldrsh.w r3, [r7, #24] - 800bf08: 2b00 cmp r3, #0 - 800bf0a: dd01 ble.n 800bf10 - 800bf0c: 2300 movs r3, #0 - 800bf0e: 833b strh r3, [r7, #24] + 800be98: f9b7 3018 ldrsh.w r3, [r7, #24] + 800be9c: 2b00 cmp r3, #0 + 800be9e: dd01 ble.n 800bea4 + 800bea0: 2300 movs r3, #0 + 800bea2: 833b strh r3, [r7, #24] if(y_bounded < 0) { - 800bf10: f9b7 3018 ldrsh.w r3, [r7, #24] - 800bf14: 2b00 cmp r3, #0 - 800bf16: da1d bge.n 800bf54 + 800bea4: f9b7 3018 ldrsh.w r3, [r7, #24] + 800bea8: 2b00 cmp r3, #0 + 800beaa: da1d bge.n 800bee8 lv_coord_t scroll_max = lv_obj_get_scroll_top(obj) + lv_obj_get_scroll_bottom(obj); - 800bf18: 68f8 ldr r0, [r7, #12] - 800bf1a: f7ff fd57 bl 800b9cc - 800bf1e: 4603 mov r3, r0 - 800bf20: b29c uxth r4, r3 - 800bf22: 68f8 ldr r0, [r7, #12] - 800bf24: f7ff fd6a bl 800b9fc - 800bf28: 4603 mov r3, r0 - 800bf2a: b29b uxth r3, r3 - 800bf2c: 4423 add r3, r4 - 800bf2e: b29b uxth r3, r3 - 800bf30: 82fb strh r3, [r7, #22] + 800beac: 68f8 ldr r0, [r7, #12] + 800beae: f7ff fd57 bl 800b960 + 800beb2: 4603 mov r3, r0 + 800beb4: b29c uxth r4, r3 + 800beb6: 68f8 ldr r0, [r7, #12] + 800beb8: f7ff fd6a bl 800b990 + 800bebc: 4603 mov r3, r0 + 800bebe: b29b uxth r3, r3 + 800bec0: 4423 add r3, r4 + 800bec2: b29b uxth r3, r3 + 800bec4: 82fb strh r3, [r7, #22] if(scroll_max < 0) scroll_max = 0; - 800bf32: f9b7 3016 ldrsh.w r3, [r7, #22] - 800bf36: 2b00 cmp r3, #0 - 800bf38: da01 bge.n 800bf3e - 800bf3a: 2300 movs r3, #0 - 800bf3c: 82fb strh r3, [r7, #22] + 800bec6: f9b7 3016 ldrsh.w r3, [r7, #22] + 800beca: 2b00 cmp r3, #0 + 800becc: da01 bge.n 800bed2 + 800bece: 2300 movs r3, #0 + 800bed0: 82fb strh r3, [r7, #22] if(y_bounded < -scroll_max) y_bounded = -scroll_max; - 800bf3e: f9b7 2018 ldrsh.w r2, [r7, #24] - 800bf42: f9b7 3016 ldrsh.w r3, [r7, #22] - 800bf46: 425b negs r3, r3 - 800bf48: 429a cmp r2, r3 - 800bf4a: da03 bge.n 800bf54 - 800bf4c: 8afb ldrh r3, [r7, #22] - 800bf4e: 425b negs r3, r3 - 800bf50: b29b uxth r3, r3 - 800bf52: 833b strh r3, [r7, #24] + 800bed2: f9b7 2018 ldrsh.w r2, [r7, #24] + 800bed6: f9b7 3016 ldrsh.w r3, [r7, #22] + 800beda: 425b negs r3, r3 + 800bedc: 429a cmp r2, r3 + 800bede: da03 bge.n 800bee8 + 800bee0: 8afb ldrh r3, [r7, #22] + 800bee2: 425b negs r3, r3 + 800bee4: b29b uxth r3, r3 + 800bee6: 833b strh r3, [r7, #24] } dx = x_bounded - x_current; - 800bf54: 8bfa ldrh r2, [r7, #30] - 800bf56: 8abb ldrh r3, [r7, #20] - 800bf58: 1ad3 subs r3, r2, r3 - 800bf5a: b29b uxth r3, r3 - 800bf5c: 817b strh r3, [r7, #10] + 800bee8: 8bfa ldrh r2, [r7, #30] + 800beea: 8abb ldrh r3, [r7, #20] + 800beec: 1ad3 subs r3, r2, r3 + 800beee: b29b uxth r3, r3 + 800bef0: 817b strh r3, [r7, #10] dy = y_bounded - y_current; - 800bf5e: 8b3a ldrh r2, [r7, #24] - 800bf60: 8a7b ldrh r3, [r7, #18] - 800bf62: 1ad3 subs r3, r2, r3 - 800bf64: b29b uxth r3, r3 - 800bf66: 813b strh r3, [r7, #8] + 800bef2: 8b3a ldrh r2, [r7, #24] + 800bef4: 8a7b ldrh r3, [r7, #18] + 800bef6: 1ad3 subs r3, r2, r3 + 800bef8: b29b uxth r3, r3 + 800befa: 813b strh r3, [r7, #8] if(dx || dy) { - 800bf68: f9b7 300a ldrsh.w r3, [r7, #10] - 800bf6c: 2b00 cmp r3, #0 - 800bf6e: d103 bne.n 800bf78 - 800bf70: f9b7 3008 ldrsh.w r3, [r7, #8] - 800bf74: 2b00 cmp r3, #0 - 800bf76: d009 beq.n 800bf8c + 800befc: f9b7 300a ldrsh.w r3, [r7, #10] + 800bf00: 2b00 cmp r3, #0 + 800bf02: d103 bne.n 800bf0c + 800bf04: f9b7 3008 ldrsh.w r3, [r7, #8] + 800bf08: 2b00 cmp r3, #0 + 800bf0a: d009 beq.n 800bf20 lv_obj_scroll_by(obj, dx, dy, anim_en); - 800bf78: 79fb ldrb r3, [r7, #7] - 800bf7a: f9b7 2008 ldrsh.w r2, [r7, #8] - 800bf7e: f9b7 100a ldrsh.w r1, [r7, #10] - 800bf82: 68f8 ldr r0, [r7, #12] - 800bf84: f000 f806 bl 800bf94 - 800bf88: e000 b.n 800bf8c + 800bf0c: 79fb ldrb r3, [r7, #7] + 800bf0e: f9b7 2008 ldrsh.w r2, [r7, #8] + 800bf12: f9b7 100a ldrsh.w r1, [r7, #10] + 800bf16: 68f8 ldr r0, [r7, #12] + 800bf18: f000 f806 bl 800bf28 + 800bf1c: e000 b.n 800bf20 if(dx == 0 && dy == 0) return; - 800bf8a: bf00 nop + 800bf1e: bf00 nop } } - 800bf8c: 3724 adds r7, #36 ; 0x24 - 800bf8e: 46bd mov sp, r7 - 800bf90: bd90 pop {r4, r7, pc} + 800bf20: 3724 adds r7, #36 ; 0x24 + 800bf22: 46bd mov sp, r7 + 800bf24: bd90 pop {r4, r7, pc} ... -0800bf94 : +0800bf28 : void lv_obj_scroll_by(lv_obj_t * obj, lv_coord_t dx, lv_coord_t dy, lv_anim_enable_t anim_en) { - 800bf94: b580 push {r7, lr} - 800bf96: b09a sub sp, #104 ; 0x68 - 800bf98: af00 add r7, sp, #0 - 800bf9a: 60f8 str r0, [r7, #12] - 800bf9c: 4608 mov r0, r1 - 800bf9e: 4611 mov r1, r2 - 800bfa0: 461a mov r2, r3 - 800bfa2: 4603 mov r3, r0 - 800bfa4: 817b strh r3, [r7, #10] - 800bfa6: 460b mov r3, r1 - 800bfa8: 813b strh r3, [r7, #8] - 800bfaa: 4613 mov r3, r2 - 800bfac: 71fb strb r3, [r7, #7] + 800bf28: b580 push {r7, lr} + 800bf2a: b09a sub sp, #104 ; 0x68 + 800bf2c: af00 add r7, sp, #0 + 800bf2e: 60f8 str r0, [r7, #12] + 800bf30: 4608 mov r0, r1 + 800bf32: 4611 mov r1, r2 + 800bf34: 461a mov r2, r3 + 800bf36: 4603 mov r3, r0 + 800bf38: 817b strh r3, [r7, #10] + 800bf3a: 460b mov r3, r1 + 800bf3c: 813b strh r3, [r7, #8] + 800bf3e: 4613 mov r3, r2 + 800bf40: 71fb strb r3, [r7, #7] if(dx == 0 && dy == 0) return; - 800bfae: f9b7 300a ldrsh.w r3, [r7, #10] - 800bfb2: 2b00 cmp r3, #0 - 800bfb4: d104 bne.n 800bfc0 - 800bfb6: f9b7 3008 ldrsh.w r3, [r7, #8] - 800bfba: 2b00 cmp r3, #0 - 800bfbc: f000 80f2 beq.w 800c1a4 + 800bf42: f9b7 300a ldrsh.w r3, [r7, #10] + 800bf46: 2b00 cmp r3, #0 + 800bf48: d104 bne.n 800bf54 + 800bf4a: f9b7 3008 ldrsh.w r3, [r7, #8] + 800bf4e: 2b00 cmp r3, #0 + 800bf50: f000 80f2 beq.w 800c138 if(anim_en == LV_ANIM_ON) { - 800bfc0: 79fb ldrb r3, [r7, #7] - 800bfc2: 2b01 cmp r3, #1 - 800bfc4: f040 80c4 bne.w 800c150 + 800bf54: 79fb ldrb r3, [r7, #7] + 800bf56: 2b01 cmp r3, #1 + 800bf58: f040 80c4 bne.w 800c0e4 lv_disp_t * d = lv_obj_get_disp(obj); - 800bfc8: 68f8 ldr r0, [r7, #12] - 800bfca: f003 fb65 bl 800f698 - 800bfce: 65b8 str r0, [r7, #88] ; 0x58 + 800bf5c: 68f8 ldr r0, [r7, #12] + 800bf5e: f003 fb51 bl 800f604 + 800bf62: 65b8 str r0, [r7, #88] ; 0x58 lv_anim_t a; lv_anim_init(&a); - 800bfd0: f107 0310 add.w r3, r7, #16 - 800bfd4: 4618 mov r0, r3 - 800bfd6: f024 fc3b bl 8030850 + 800bf64: f107 0310 add.w r3, r7, #16 + 800bf68: 4618 mov r0, r3 + 800bf6a: f024 fc27 bl 80307bc lv_anim_set_var(&a, obj); - 800bfda: f107 0310 add.w r3, r7, #16 - 800bfde: 68f9 ldr r1, [r7, #12] - 800bfe0: 4618 mov r0, r3 - 800bfe2: f7ff faff bl 800b5e4 + 800bf6e: f107 0310 add.w r3, r7, #16 + 800bf72: 68f9 ldr r1, [r7, #12] + 800bf74: 4618 mov r0, r3 + 800bf76: f7ff faff bl 800b578 lv_anim_set_ready_cb(&a, scroll_anim_ready_cb); - 800bfe6: f107 0310 add.w r3, r7, #16 - 800bfea: 4972 ldr r1, [pc, #456] ; (800c1b4 ) - 800bfec: 4618 mov r0, r3 - 800bfee: f7ff fb41 bl 800b674 + 800bf7a: f107 0310 add.w r3, r7, #16 + 800bf7e: 4972 ldr r1, [pc, #456] ; (800c148 ) + 800bf80: 4618 mov r0, r3 + 800bf82: f7ff fb41 bl 800b608 if(dx) { - 800bff2: f9b7 300a ldrsh.w r3, [r7, #10] - 800bff6: 2b00 cmp r3, #0 - 800bff8: d052 beq.n 800c0a0 + 800bf86: f9b7 300a ldrsh.w r3, [r7, #10] + 800bf8a: 2b00 cmp r3, #0 + 800bf8c: d052 beq.n 800c034 uint32_t t = lv_anim_speed_to_time((lv_disp_get_hor_res(d) * 2) >> 2, 0, dx); - 800bffa: 6db8 ldr r0, [r7, #88] ; 0x58 - 800bffc: f024 fa70 bl 80304e0 - 800c000: 4603 mov r3, r0 - 800c002: 005b lsls r3, r3, #1 - 800c004: 109b asrs r3, r3, #2 - 800c006: 4618 mov r0, r3 - 800c008: f9b7 300a ldrsh.w r3, [r7, #10] - 800c00c: 461a mov r2, r3 - 800c00e: 2100 movs r1, #0 - 800c010: f024 fd1c bl 8030a4c - 800c014: 6678 str r0, [r7, #100] ; 0x64 + 800bf8e: 6db8 ldr r0, [r7, #88] ; 0x58 + 800bf90: f024 fa5c bl 803044c + 800bf94: 4603 mov r3, r0 + 800bf96: 005b lsls r3, r3, #1 + 800bf98: 109b asrs r3, r3, #2 + 800bf9a: 4618 mov r0, r3 + 800bf9c: f9b7 300a ldrsh.w r3, [r7, #10] + 800bfa0: 461a mov r2, r3 + 800bfa2: 2100 movs r1, #0 + 800bfa4: f024 fd08 bl 80309b8 + 800bfa8: 6678 str r0, [r7, #100] ; 0x64 if(t < SCROLL_ANIM_TIME_MIN) t = SCROLL_ANIM_TIME_MIN; - 800c016: 6e7b ldr r3, [r7, #100] ; 0x64 - 800c018: 2bc7 cmp r3, #199 ; 0xc7 - 800c01a: d801 bhi.n 800c020 - 800c01c: 23c8 movs r3, #200 ; 0xc8 - 800c01e: 667b str r3, [r7, #100] ; 0x64 + 800bfaa: 6e7b ldr r3, [r7, #100] ; 0x64 + 800bfac: 2bc7 cmp r3, #199 ; 0xc7 + 800bfae: d801 bhi.n 800bfb4 + 800bfb0: 23c8 movs r3, #200 ; 0xc8 + 800bfb2: 667b str r3, [r7, #100] ; 0x64 if(t > SCROLL_ANIM_TIME_MAX) t = SCROLL_ANIM_TIME_MAX; - 800c020: 6e7b ldr r3, [r7, #100] ; 0x64 - 800c022: f5b3 7fc8 cmp.w r3, #400 ; 0x190 - 800c026: d902 bls.n 800c02e - 800c028: f44f 73c8 mov.w r3, #400 ; 0x190 - 800c02c: 667b str r3, [r7, #100] ; 0x64 + 800bfb4: 6e7b ldr r3, [r7, #100] ; 0x64 + 800bfb6: f5b3 7fc8 cmp.w r3, #400 ; 0x190 + 800bfba: d902 bls.n 800bfc2 + 800bfbc: f44f 73c8 mov.w r3, #400 ; 0x190 + 800bfc0: 667b str r3, [r7, #100] ; 0x64 lv_anim_set_time(&a, t); - 800c02e: f107 0310 add.w r3, r7, #16 - 800c032: 6e79 ldr r1, [r7, #100] ; 0x64 - 800c034: 4618 mov r0, r3 - 800c036: f7ff faef bl 800b618 + 800bfc2: f107 0310 add.w r3, r7, #16 + 800bfc6: 6e79 ldr r1, [r7, #100] ; 0x64 + 800bfc8: 4618 mov r0, r3 + 800bfca: f7ff faef bl 800b5ac lv_coord_t sx = lv_obj_get_scroll_x(obj); - 800c03a: 68f8 ldr r0, [r7, #12] - 800c03c: f7ff fc98 bl 800b970 - 800c040: 4603 mov r3, r0 - 800c042: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 800bfce: 68f8 ldr r0, [r7, #12] + 800bfd0: f7ff fc98 bl 800b904 + 800bfd4: 4603 mov r3, r0 + 800bfd6: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 lv_anim_set_values(&a, -sx, -sx + dx); - 800c046: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 800c04a: 4259 negs r1, r3 - 800c04c: f9b7 200a ldrsh.w r2, [r7, #10] - 800c050: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 800c054: 1ad2 subs r2, r2, r3 - 800c056: f107 0310 add.w r3, r7, #16 - 800c05a: 4618 mov r0, r3 - 800c05c: f7ff fae9 bl 800b632 + 800bfda: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 800bfde: 4259 negs r1, r3 + 800bfe0: f9b7 200a ldrsh.w r2, [r7, #10] + 800bfe4: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 800bfe8: 1ad2 subs r2, r2, r3 + 800bfea: f107 0310 add.w r3, r7, #16 + 800bfee: 4618 mov r0, r3 + 800bff0: f7ff fae9 bl 800b5c6 lv_anim_set_exec_cb(&a, scroll_x_anim); - 800c060: f107 0310 add.w r3, r7, #16 - 800c064: 4954 ldr r1, [pc, #336] ; (800c1b8 ) - 800c066: 4618 mov r0, r3 - 800c068: f7ff fac9 bl 800b5fe + 800bff4: f107 0310 add.w r3, r7, #16 + 800bff8: 4954 ldr r1, [pc, #336] ; (800c14c ) + 800bffa: 4618 mov r0, r3 + 800bffc: f7ff fac9 bl 800b592 lv_anim_set_path_cb(&a, lv_anim_path_ease_out); - 800c06c: f107 0310 add.w r3, r7, #16 - 800c070: 4952 ldr r1, [pc, #328] ; (800c1bc ) - 800c072: 4618 mov r0, r3 - 800c074: f7ff faf1 bl 800b65a + 800c000: f107 0310 add.w r3, r7, #16 + 800c004: 4952 ldr r1, [pc, #328] ; (800c150 ) + 800c006: 4618 mov r0, r3 + 800c008: f7ff faf1 bl 800b5ee lv_res_t res; res = lv_event_send(obj, LV_EVENT_SCROLL_BEGIN, &a); - 800c078: f107 0310 add.w r3, r7, #16 - 800c07c: 461a mov r2, r3 - 800c07e: 2109 movs r1, #9 - 800c080: 68f8 ldr r0, [r7, #12] - 800c082: f7f6 f9fd bl 8002480 - 800c086: 4603 mov r3, r0 - 800c088: f887 3055 strb.w r3, [r7, #85] ; 0x55 + 800c00c: f107 0310 add.w r3, r7, #16 + 800c010: 461a mov r2, r3 + 800c012: 2109 movs r1, #9 + 800c014: 68f8 ldr r0, [r7, #12] + 800c016: f7f6 f9fd bl 8002414 + 800c01a: 4603 mov r3, r0 + 800c01c: f887 3055 strb.w r3, [r7, #85] ; 0x55 if(res != LV_RES_OK) return; - 800c08c: f897 3055 ldrb.w r3, [r7, #85] ; 0x55 - 800c090: 2b01 cmp r3, #1 - 800c092: f040 8089 bne.w 800c1a8 + 800c020: f897 3055 ldrb.w r3, [r7, #85] ; 0x55 + 800c024: 2b01 cmp r3, #1 + 800c026: f040 8089 bne.w 800c13c lv_anim_start(&a); - 800c096: f107 0310 add.w r3, r7, #16 - 800c09a: 4618 mov r0, r3 - 800c09c: f024 fbfe bl 803089c + 800c02a: f107 0310 add.w r3, r7, #16 + 800c02e: 4618 mov r0, r3 + 800c030: f024 fbea bl 8030808 } if(dy) { - 800c0a0: f9b7 3008 ldrsh.w r3, [r7, #8] - 800c0a4: 2b00 cmp r3, #0 - 800c0a6: f000 8082 beq.w 800c1ae + 800c034: f9b7 3008 ldrsh.w r3, [r7, #8] + 800c038: 2b00 cmp r3, #0 + 800c03a: f000 8082 beq.w 800c142 uint32_t t = lv_anim_speed_to_time((lv_disp_get_ver_res(d) * 2) >> 2, 0, dy); - 800c0aa: 6db8 ldr r0, [r7, #88] ; 0x58 - 800c0ac: f024 fa3e bl 803052c - 800c0b0: 4603 mov r3, r0 - 800c0b2: 005b lsls r3, r3, #1 - 800c0b4: 109b asrs r3, r3, #2 - 800c0b6: 4618 mov r0, r3 - 800c0b8: f9b7 3008 ldrsh.w r3, [r7, #8] - 800c0bc: 461a mov r2, r3 - 800c0be: 2100 movs r1, #0 - 800c0c0: f024 fcc4 bl 8030a4c - 800c0c4: 6638 str r0, [r7, #96] ; 0x60 + 800c03e: 6db8 ldr r0, [r7, #88] ; 0x58 + 800c040: f024 fa2a bl 8030498 + 800c044: 4603 mov r3, r0 + 800c046: 005b lsls r3, r3, #1 + 800c048: 109b asrs r3, r3, #2 + 800c04a: 4618 mov r0, r3 + 800c04c: f9b7 3008 ldrsh.w r3, [r7, #8] + 800c050: 461a mov r2, r3 + 800c052: 2100 movs r1, #0 + 800c054: f024 fcb0 bl 80309b8 + 800c058: 6638 str r0, [r7, #96] ; 0x60 if(t < SCROLL_ANIM_TIME_MIN) t = SCROLL_ANIM_TIME_MIN; - 800c0c6: 6e3b ldr r3, [r7, #96] ; 0x60 - 800c0c8: 2bc7 cmp r3, #199 ; 0xc7 - 800c0ca: d801 bhi.n 800c0d0 - 800c0cc: 23c8 movs r3, #200 ; 0xc8 - 800c0ce: 663b str r3, [r7, #96] ; 0x60 + 800c05a: 6e3b ldr r3, [r7, #96] ; 0x60 + 800c05c: 2bc7 cmp r3, #199 ; 0xc7 + 800c05e: d801 bhi.n 800c064 + 800c060: 23c8 movs r3, #200 ; 0xc8 + 800c062: 663b str r3, [r7, #96] ; 0x60 if(t > SCROLL_ANIM_TIME_MAX) t = SCROLL_ANIM_TIME_MAX; - 800c0d0: 6e3b ldr r3, [r7, #96] ; 0x60 - 800c0d2: f5b3 7fc8 cmp.w r3, #400 ; 0x190 - 800c0d6: d902 bls.n 800c0de - 800c0d8: f44f 73c8 mov.w r3, #400 ; 0x190 - 800c0dc: 663b str r3, [r7, #96] ; 0x60 + 800c064: 6e3b ldr r3, [r7, #96] ; 0x60 + 800c066: f5b3 7fc8 cmp.w r3, #400 ; 0x190 + 800c06a: d902 bls.n 800c072 + 800c06c: f44f 73c8 mov.w r3, #400 ; 0x190 + 800c070: 663b str r3, [r7, #96] ; 0x60 lv_anim_set_time(&a, t); - 800c0de: f107 0310 add.w r3, r7, #16 - 800c0e2: 6e39 ldr r1, [r7, #96] ; 0x60 - 800c0e4: 4618 mov r0, r3 - 800c0e6: f7ff fa97 bl 800b618 + 800c072: f107 0310 add.w r3, r7, #16 + 800c076: 6e39 ldr r1, [r7, #96] ; 0x60 + 800c078: 4618 mov r0, r3 + 800c07a: f7ff fa97 bl 800b5ac lv_coord_t sy = lv_obj_get_scroll_y(obj); - 800c0ea: 68f8 ldr r0, [r7, #12] - 800c0ec: f7ff fc57 bl 800b99e - 800c0f0: 4603 mov r3, r0 - 800c0f2: f8a7 3052 strh.w r3, [r7, #82] ; 0x52 + 800c07e: 68f8 ldr r0, [r7, #12] + 800c080: f7ff fc57 bl 800b932 + 800c084: 4603 mov r3, r0 + 800c086: f8a7 3052 strh.w r3, [r7, #82] ; 0x52 lv_anim_set_values(&a, -sy, -sy + dy); - 800c0f6: f9b7 3052 ldrsh.w r3, [r7, #82] ; 0x52 - 800c0fa: 4259 negs r1, r3 - 800c0fc: f9b7 2008 ldrsh.w r2, [r7, #8] - 800c100: f9b7 3052 ldrsh.w r3, [r7, #82] ; 0x52 - 800c104: 1ad2 subs r2, r2, r3 - 800c106: f107 0310 add.w r3, r7, #16 - 800c10a: 4618 mov r0, r3 - 800c10c: f7ff fa91 bl 800b632 + 800c08a: f9b7 3052 ldrsh.w r3, [r7, #82] ; 0x52 + 800c08e: 4259 negs r1, r3 + 800c090: f9b7 2008 ldrsh.w r2, [r7, #8] + 800c094: f9b7 3052 ldrsh.w r3, [r7, #82] ; 0x52 + 800c098: 1ad2 subs r2, r2, r3 + 800c09a: f107 0310 add.w r3, r7, #16 + 800c09e: 4618 mov r0, r3 + 800c0a0: f7ff fa91 bl 800b5c6 lv_anim_set_exec_cb(&a, scroll_y_anim); - 800c110: f107 0310 add.w r3, r7, #16 - 800c114: 492a ldr r1, [pc, #168] ; (800c1c0 ) - 800c116: 4618 mov r0, r3 - 800c118: f7ff fa71 bl 800b5fe + 800c0a4: f107 0310 add.w r3, r7, #16 + 800c0a8: 492a ldr r1, [pc, #168] ; (800c154 ) + 800c0aa: 4618 mov r0, r3 + 800c0ac: f7ff fa71 bl 800b592 lv_anim_set_path_cb(&a, lv_anim_path_ease_out); - 800c11c: f107 0310 add.w r3, r7, #16 - 800c120: 4926 ldr r1, [pc, #152] ; (800c1bc ) - 800c122: 4618 mov r0, r3 - 800c124: f7ff fa99 bl 800b65a + 800c0b0: f107 0310 add.w r3, r7, #16 + 800c0b4: 4926 ldr r1, [pc, #152] ; (800c150 ) + 800c0b6: 4618 mov r0, r3 + 800c0b8: f7ff fa99 bl 800b5ee lv_res_t res; res = lv_event_send(obj, LV_EVENT_SCROLL_BEGIN, &a); - 800c128: f107 0310 add.w r3, r7, #16 - 800c12c: 461a mov r2, r3 - 800c12e: 2109 movs r1, #9 - 800c130: 68f8 ldr r0, [r7, #12] - 800c132: f7f6 f9a5 bl 8002480 - 800c136: 4603 mov r3, r0 - 800c138: f887 3051 strb.w r3, [r7, #81] ; 0x51 + 800c0bc: f107 0310 add.w r3, r7, #16 + 800c0c0: 461a mov r2, r3 + 800c0c2: 2109 movs r1, #9 + 800c0c4: 68f8 ldr r0, [r7, #12] + 800c0c6: f7f6 f9a5 bl 8002414 + 800c0ca: 4603 mov r3, r0 + 800c0cc: f887 3051 strb.w r3, [r7, #81] ; 0x51 if(res != LV_RES_OK) return; - 800c13c: f897 3051 ldrb.w r3, [r7, #81] ; 0x51 - 800c140: 2b01 cmp r3, #1 - 800c142: d133 bne.n 800c1ac + 800c0d0: f897 3051 ldrb.w r3, [r7, #81] ; 0x51 + 800c0d4: 2b01 cmp r3, #1 + 800c0d6: d133 bne.n 800c140 lv_anim_start(&a); - 800c144: f107 0310 add.w r3, r7, #16 - 800c148: 4618 mov r0, r3 - 800c14a: f024 fba7 bl 803089c - 800c14e: e02e b.n 800c1ae + 800c0d8: f107 0310 add.w r3, r7, #16 + 800c0dc: 4618 mov r0, r3 + 800c0de: f024 fb93 bl 8030808 + 800c0e2: e02e b.n 800c142 } } else { /*Remove pending animations*/ bool y_del = lv_anim_del(obj, scroll_y_anim); - 800c150: 491b ldr r1, [pc, #108] ; (800c1c0 ) - 800c152: 68f8 ldr r0, [r7, #12] - 800c154: f024 fc1a bl 803098c - 800c158: 4603 mov r3, r0 - 800c15a: f887 305f strb.w r3, [r7, #95] ; 0x5f + 800c0e4: 491b ldr r1, [pc, #108] ; (800c154 ) + 800c0e6: 68f8 ldr r0, [r7, #12] + 800c0e8: f024 fc06 bl 80308f8 + 800c0ec: 4603 mov r3, r0 + 800c0ee: f887 305f strb.w r3, [r7, #95] ; 0x5f bool x_del = lv_anim_del(obj, scroll_x_anim); - 800c15e: 4916 ldr r1, [pc, #88] ; (800c1b8 ) - 800c160: 68f8 ldr r0, [r7, #12] - 800c162: f024 fc13 bl 803098c - 800c166: 4603 mov r3, r0 - 800c168: f887 305e strb.w r3, [r7, #94] ; 0x5e + 800c0f2: 4916 ldr r1, [pc, #88] ; (800c14c ) + 800c0f4: 68f8 ldr r0, [r7, #12] + 800c0f6: f024 fbff bl 80308f8 + 800c0fa: 4603 mov r3, r0 + 800c0fc: f887 305e strb.w r3, [r7, #94] ; 0x5e scroll_by_raw(obj, dx, dy); - 800c16c: f9b7 2008 ldrsh.w r2, [r7, #8] - 800c170: f9b7 300a ldrsh.w r3, [r7, #10] - 800c174: 4619 mov r1, r3 - 800c176: 68f8 ldr r0, [r7, #12] - 800c178: f000 ff33 bl 800cfe2 + 800c100: f9b7 2008 ldrsh.w r2, [r7, #8] + 800c104: f9b7 300a ldrsh.w r3, [r7, #10] + 800c108: 4619 mov r1, r3 + 800c10a: 68f8 ldr r0, [r7, #12] + 800c10c: f000 ff33 bl 800cf76 if(y_del || x_del) { - 800c17c: f897 305f ldrb.w r3, [r7, #95] ; 0x5f - 800c180: 2b00 cmp r3, #0 - 800c182: d103 bne.n 800c18c - 800c184: f897 305e ldrb.w r3, [r7, #94] ; 0x5e - 800c188: 2b00 cmp r3, #0 - 800c18a: d010 beq.n 800c1ae + 800c110: f897 305f ldrb.w r3, [r7, #95] ; 0x5f + 800c114: 2b00 cmp r3, #0 + 800c116: d103 bne.n 800c120 + 800c118: f897 305e ldrb.w r3, [r7, #94] ; 0x5e + 800c11c: 2b00 cmp r3, #0 + 800c11e: d010 beq.n 800c142 lv_res_t res; res = lv_event_send(obj, LV_EVENT_SCROLL_END, NULL); - 800c18c: 2200 movs r2, #0 - 800c18e: 210a movs r1, #10 - 800c190: 68f8 ldr r0, [r7, #12] - 800c192: f7f6 f975 bl 8002480 - 800c196: 4603 mov r3, r0 - 800c198: f887 305d strb.w r3, [r7, #93] ; 0x5d + 800c120: 2200 movs r2, #0 + 800c122: 210a movs r1, #10 + 800c124: 68f8 ldr r0, [r7, #12] + 800c126: f7f6 f975 bl 8002414 + 800c12a: 4603 mov r3, r0 + 800c12c: f887 305d strb.w r3, [r7, #93] ; 0x5d if(res != LV_RES_OK) return; - 800c19c: f897 305d ldrb.w r3, [r7, #93] ; 0x5d - 800c1a0: 2b01 cmp r3, #1 - 800c1a2: e004 b.n 800c1ae + 800c130: f897 305d ldrb.w r3, [r7, #93] ; 0x5d + 800c134: 2b01 cmp r3, #1 + 800c136: e004 b.n 800c142 if(dx == 0 && dy == 0) return; - 800c1a4: bf00 nop - 800c1a6: e002 b.n 800c1ae + 800c138: bf00 nop + 800c13a: e002 b.n 800c142 if(res != LV_RES_OK) return; - 800c1a8: bf00 nop - 800c1aa: e000 b.n 800c1ae + 800c13c: bf00 nop + 800c13e: e000 b.n 800c142 if(res != LV_RES_OK) return; - 800c1ac: bf00 nop + 800c140: bf00 nop } } } - 800c1ae: 3768 adds r7, #104 ; 0x68 - 800c1b0: 46bd mov sp, r7 - 800c1b2: bd80 pop {r7, pc} - 800c1b4: 0800d0d1 .word 0x0800d0d1 - 800c1b8: 0800d071 .word 0x0800d071 - 800c1bc: 08030add .word 0x08030add - 800c1c0: 0800d0a1 .word 0x0800d0a1 + 800c142: 3768 adds r7, #104 ; 0x68 + 800c144: 46bd mov sp, r7 + 800c146: bd80 pop {r7, pc} + 800c148: 0800d065 .word 0x0800d065 + 800c14c: 0800d005 .word 0x0800d005 + 800c150: 08030a49 .word 0x08030a49 + 800c154: 0800d035 .word 0x0800d035 -0800c1c4 : +0800c158 : void lv_obj_scroll_to(lv_obj_t * obj, lv_coord_t x, lv_coord_t y, lv_anim_enable_t anim_en) { - 800c1c4: b580 push {r7, lr} - 800c1c6: b084 sub sp, #16 - 800c1c8: af00 add r7, sp, #0 - 800c1ca: 60f8 str r0, [r7, #12] - 800c1cc: 4608 mov r0, r1 - 800c1ce: 4611 mov r1, r2 - 800c1d0: 461a mov r2, r3 - 800c1d2: 4603 mov r3, r0 - 800c1d4: 817b strh r3, [r7, #10] - 800c1d6: 460b mov r3, r1 - 800c1d8: 813b strh r3, [r7, #8] - 800c1da: 4613 mov r3, r2 - 800c1dc: 71fb strb r3, [r7, #7] + 800c158: b580 push {r7, lr} + 800c15a: b084 sub sp, #16 + 800c15c: af00 add r7, sp, #0 + 800c15e: 60f8 str r0, [r7, #12] + 800c160: 4608 mov r0, r1 + 800c162: 4611 mov r1, r2 + 800c164: 461a mov r2, r3 + 800c166: 4603 mov r3, r0 + 800c168: 817b strh r3, [r7, #10] + 800c16a: 460b mov r3, r1 + 800c16c: 813b strh r3, [r7, #8] + 800c16e: 4613 mov r3, r2 + 800c170: 71fb strb r3, [r7, #7] lv_obj_scroll_to_x(obj, x, anim_en); - 800c1de: 79fa ldrb r2, [r7, #7] - 800c1e0: f9b7 300a ldrsh.w r3, [r7, #10] - 800c1e4: 4619 mov r1, r3 - 800c1e6: 68f8 ldr r0, [r7, #12] - 800c1e8: f000 f80c bl 800c204 + 800c172: 79fa ldrb r2, [r7, #7] + 800c174: f9b7 300a ldrsh.w r3, [r7, #10] + 800c178: 4619 mov r1, r3 + 800c17a: 68f8 ldr r0, [r7, #12] + 800c17c: f000 f80c bl 800c198 lv_obj_scroll_to_y(obj, y, anim_en); - 800c1ec: 79fa ldrb r2, [r7, #7] - 800c1ee: f9b7 3008 ldrsh.w r3, [r7, #8] - 800c1f2: 4619 mov r1, r3 - 800c1f4: 68f8 ldr r0, [r7, #12] - 800c1f6: f000 f829 bl 800c24c + 800c180: 79fa ldrb r2, [r7, #7] + 800c182: f9b7 3008 ldrsh.w r3, [r7, #8] + 800c186: 4619 mov r1, r3 + 800c188: 68f8 ldr r0, [r7, #12] + 800c18a: f000 f829 bl 800c1e0 } - 800c1fa: bf00 nop - 800c1fc: 3710 adds r7, #16 - 800c1fe: 46bd mov sp, r7 - 800c200: bd80 pop {r7, pc} + 800c18e: bf00 nop + 800c190: 3710 adds r7, #16 + 800c192: 46bd mov sp, r7 + 800c194: bd80 pop {r7, pc} ... -0800c204 : +0800c198 : void lv_obj_scroll_to_x(lv_obj_t * obj, lv_coord_t x, lv_anim_enable_t anim_en) { - 800c204: b580 push {r7, lr} - 800c206: b084 sub sp, #16 - 800c208: af00 add r7, sp, #0 - 800c20a: 6078 str r0, [r7, #4] - 800c20c: 460b mov r3, r1 - 800c20e: 807b strh r3, [r7, #2] - 800c210: 4613 mov r3, r2 - 800c212: 707b strb r3, [r7, #1] + 800c198: b580 push {r7, lr} + 800c19a: b084 sub sp, #16 + 800c19c: af00 add r7, sp, #0 + 800c19e: 6078 str r0, [r7, #4] + 800c1a0: 460b mov r3, r1 + 800c1a2: 807b strh r3, [r7, #2] + 800c1a4: 4613 mov r3, r2 + 800c1a6: 707b strb r3, [r7, #1] lv_anim_del(obj, scroll_x_anim); - 800c214: 490c ldr r1, [pc, #48] ; (800c248 ) - 800c216: 6878 ldr r0, [r7, #4] - 800c218: f024 fbb8 bl 803098c + 800c1a8: 490c ldr r1, [pc, #48] ; (800c1dc ) + 800c1aa: 6878 ldr r0, [r7, #4] + 800c1ac: f024 fba4 bl 80308f8 lv_coord_t scroll_x = lv_obj_get_scroll_x(obj); - 800c21c: 6878 ldr r0, [r7, #4] - 800c21e: f7ff fba7 bl 800b970 - 800c222: 4603 mov r3, r0 - 800c224: 81fb strh r3, [r7, #14] + 800c1b0: 6878 ldr r0, [r7, #4] + 800c1b2: f7ff fba7 bl 800b904 + 800c1b6: 4603 mov r3, r0 + 800c1b8: 81fb strh r3, [r7, #14] lv_coord_t diff = -x + scroll_x; - 800c226: 89fa ldrh r2, [r7, #14] - 800c228: 887b ldrh r3, [r7, #2] - 800c22a: 1ad3 subs r3, r2, r3 - 800c22c: b29b uxth r3, r3 - 800c22e: 81bb strh r3, [r7, #12] + 800c1ba: 89fa ldrh r2, [r7, #14] + 800c1bc: 887b ldrh r3, [r7, #2] + 800c1be: 1ad3 subs r3, r2, r3 + 800c1c0: b29b uxth r3, r3 + 800c1c2: 81bb strh r3, [r7, #12] lv_obj_scroll_by_bounded(obj, diff, 0, anim_en); - 800c230: 787b ldrb r3, [r7, #1] - 800c232: f9b7 100c ldrsh.w r1, [r7, #12] - 800c236: 2200 movs r2, #0 - 800c238: 6878 ldr r0, [r7, #4] - 800c23a: f7ff fddb bl 800bdf4 + 800c1c4: 787b ldrb r3, [r7, #1] + 800c1c6: f9b7 100c ldrsh.w r1, [r7, #12] + 800c1ca: 2200 movs r2, #0 + 800c1cc: 6878 ldr r0, [r7, #4] + 800c1ce: f7ff fddb bl 800bd88 } - 800c23e: bf00 nop - 800c240: 3710 adds r7, #16 - 800c242: 46bd mov sp, r7 - 800c244: bd80 pop {r7, pc} - 800c246: bf00 nop - 800c248: 0800d071 .word 0x0800d071 + 800c1d2: bf00 nop + 800c1d4: 3710 adds r7, #16 + 800c1d6: 46bd mov sp, r7 + 800c1d8: bd80 pop {r7, pc} + 800c1da: bf00 nop + 800c1dc: 0800d005 .word 0x0800d005 -0800c24c : +0800c1e0 : void lv_obj_scroll_to_y(lv_obj_t * obj, lv_coord_t y, lv_anim_enable_t anim_en) { - 800c24c: b580 push {r7, lr} - 800c24e: b084 sub sp, #16 - 800c250: af00 add r7, sp, #0 - 800c252: 6078 str r0, [r7, #4] - 800c254: 460b mov r3, r1 - 800c256: 807b strh r3, [r7, #2] - 800c258: 4613 mov r3, r2 - 800c25a: 707b strb r3, [r7, #1] + 800c1e0: b580 push {r7, lr} + 800c1e2: b084 sub sp, #16 + 800c1e4: af00 add r7, sp, #0 + 800c1e6: 6078 str r0, [r7, #4] + 800c1e8: 460b mov r3, r1 + 800c1ea: 807b strh r3, [r7, #2] + 800c1ec: 4613 mov r3, r2 + 800c1ee: 707b strb r3, [r7, #1] lv_anim_del(obj, scroll_y_anim); - 800c25c: 490c ldr r1, [pc, #48] ; (800c290 ) - 800c25e: 6878 ldr r0, [r7, #4] - 800c260: f024 fb94 bl 803098c + 800c1f0: 490c ldr r1, [pc, #48] ; (800c224 ) + 800c1f2: 6878 ldr r0, [r7, #4] + 800c1f4: f024 fb80 bl 80308f8 lv_coord_t scroll_y = lv_obj_get_scroll_y(obj); - 800c264: 6878 ldr r0, [r7, #4] - 800c266: f7ff fb9a bl 800b99e - 800c26a: 4603 mov r3, r0 - 800c26c: 81fb strh r3, [r7, #14] + 800c1f8: 6878 ldr r0, [r7, #4] + 800c1fa: f7ff fb9a bl 800b932 + 800c1fe: 4603 mov r3, r0 + 800c200: 81fb strh r3, [r7, #14] lv_coord_t diff = -y + scroll_y; - 800c26e: 89fa ldrh r2, [r7, #14] - 800c270: 887b ldrh r3, [r7, #2] - 800c272: 1ad3 subs r3, r2, r3 - 800c274: b29b uxth r3, r3 - 800c276: 81bb strh r3, [r7, #12] + 800c202: 89fa ldrh r2, [r7, #14] + 800c204: 887b ldrh r3, [r7, #2] + 800c206: 1ad3 subs r3, r2, r3 + 800c208: b29b uxth r3, r3 + 800c20a: 81bb strh r3, [r7, #12] lv_obj_scroll_by_bounded(obj, 0, diff, anim_en); - 800c278: 787b ldrb r3, [r7, #1] - 800c27a: f9b7 200c ldrsh.w r2, [r7, #12] - 800c27e: 2100 movs r1, #0 - 800c280: 6878 ldr r0, [r7, #4] - 800c282: f7ff fdb7 bl 800bdf4 + 800c20c: 787b ldrb r3, [r7, #1] + 800c20e: f9b7 200c ldrsh.w r2, [r7, #12] + 800c212: 2100 movs r1, #0 + 800c214: 6878 ldr r0, [r7, #4] + 800c216: f7ff fdb7 bl 800bd88 } - 800c286: bf00 nop - 800c288: 3710 adds r7, #16 - 800c28a: 46bd mov sp, r7 - 800c28c: bd80 pop {r7, pc} - 800c28e: bf00 nop - 800c290: 0800d0a1 .word 0x0800d0a1 + 800c21a: bf00 nop + 800c21c: 3710 adds r7, #16 + 800c21e: 46bd mov sp, r7 + 800c220: bd80 pop {r7, pc} + 800c222: bf00 nop + 800c224: 0800d035 .word 0x0800d035 -0800c294 : +0800c228 : lv_point_t p = {0, 0}; scroll_area_into_view(&obj->coords, obj, &p, anim_en); } void lv_obj_scroll_to_view_recursive(lv_obj_t * obj, lv_anim_enable_t anim_en) { - 800c294: b580 push {r7, lr} - 800c296: b086 sub sp, #24 - 800c298: af00 add r7, sp, #0 - 800c29a: 6078 str r0, [r7, #4] - 800c29c: 460b mov r3, r1 - 800c29e: 70fb strb r3, [r7, #3] + 800c228: b580 push {r7, lr} + 800c22a: b086 sub sp, #24 + 800c22c: af00 add r7, sp, #0 + 800c22e: 6078 str r0, [r7, #4] + 800c230: 460b mov r3, r1 + 800c232: 70fb strb r3, [r7, #3] /*Be sure the screens layout is correct*/ lv_obj_update_layout(obj); - 800c2a0: 6878 ldr r0, [r7, #4] - 800c2a2: f7fd fb4b bl 800993c + 800c234: 6878 ldr r0, [r7, #4] + 800c236: f7fd fb4b bl 80098d0 lv_point_t p = {0, 0}; - 800c2a6: 2300 movs r3, #0 - 800c2a8: 81bb strh r3, [r7, #12] - 800c2aa: 2300 movs r3, #0 - 800c2ac: 81fb strh r3, [r7, #14] + 800c23a: 2300 movs r3, #0 + 800c23c: 81bb strh r3, [r7, #12] + 800c23e: 2300 movs r3, #0 + 800c240: 81fb strh r3, [r7, #14] lv_obj_t * child = obj; - 800c2ae: 687b ldr r3, [r7, #4] - 800c2b0: 617b str r3, [r7, #20] + 800c242: 687b ldr r3, [r7, #4] + 800c244: 617b str r3, [r7, #20] lv_obj_t * parent = lv_obj_get_parent(child); - 800c2b2: 6978 ldr r0, [r7, #20] - 800c2b4: f003 fa2a bl 800f70c - 800c2b8: 6138 str r0, [r7, #16] + 800c246: 6978 ldr r0, [r7, #20] + 800c248: f003 fa16 bl 800f678 + 800c24c: 6138 str r0, [r7, #16] while(parent) { - 800c2ba: e00e b.n 800c2da + 800c24e: e00e b.n 800c26e scroll_area_into_view(&obj->coords, child, &p, anim_en); - 800c2bc: 687b ldr r3, [r7, #4] - 800c2be: f103 0014 add.w r0, r3, #20 - 800c2c2: 78fb ldrb r3, [r7, #3] - 800c2c4: f107 020c add.w r2, r7, #12 - 800c2c8: 6979 ldr r1, [r7, #20] - 800c2ca: f000 ff11 bl 800d0f0 + 800c250: 687b ldr r3, [r7, #4] + 800c252: f103 0014 add.w r0, r3, #20 + 800c256: 78fb ldrb r3, [r7, #3] + 800c258: f107 020c add.w r2, r7, #12 + 800c25c: 6979 ldr r1, [r7, #20] + 800c25e: f000 ff11 bl 800d084 child = parent; - 800c2ce: 693b ldr r3, [r7, #16] - 800c2d0: 617b str r3, [r7, #20] + 800c262: 693b ldr r3, [r7, #16] + 800c264: 617b str r3, [r7, #20] parent = lv_obj_get_parent(parent); - 800c2d2: 6938 ldr r0, [r7, #16] - 800c2d4: f003 fa1a bl 800f70c - 800c2d8: 6138 str r0, [r7, #16] + 800c266: 6938 ldr r0, [r7, #16] + 800c268: f003 fa06 bl 800f678 + 800c26c: 6138 str r0, [r7, #16] while(parent) { - 800c2da: 693b ldr r3, [r7, #16] - 800c2dc: 2b00 cmp r3, #0 - 800c2de: d1ed bne.n 800c2bc + 800c26e: 693b ldr r3, [r7, #16] + 800c270: 2b00 cmp r3, #0 + 800c272: d1ed bne.n 800c250 } } - 800c2e0: bf00 nop - 800c2e2: bf00 nop - 800c2e4: 3718 adds r7, #24 - 800c2e6: 46bd mov sp, r7 - 800c2e8: bd80 pop {r7, pc} + 800c274: bf00 nop + 800c276: bf00 nop + 800c278: 3718 adds r7, #24 + 800c27a: 46bd mov sp, r7 + 800c27c: bd80 pop {r7, pc} ... -0800c2ec : +0800c280 : lv_indev_scroll_get_snap_dist(obj, &p); lv_obj_scroll_by(obj, p.x, p.y, anim_en); } void lv_obj_get_scrollbar_area(lv_obj_t * obj, lv_area_t * hor_area, lv_area_t * ver_area) { - 800c2ec: b590 push {r4, r7, lr} - 800c2ee: b095 sub sp, #84 ; 0x54 - 800c2f0: af02 add r7, sp, #8 - 800c2f2: 60f8 str r0, [r7, #12] - 800c2f4: 60b9 str r1, [r7, #8] - 800c2f6: 607a str r2, [r7, #4] + 800c280: b590 push {r4, r7, lr} + 800c282: b095 sub sp, #84 ; 0x54 + 800c284: af02 add r7, sp, #8 + 800c286: 60f8 str r0, [r7, #12] + 800c288: 60b9 str r1, [r7, #8] + 800c28a: 607a str r2, [r7, #4] lv_area_set(hor_area, 0, 0, -1, -1); - 800c2f8: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 800c2fc: 9300 str r3, [sp, #0] - 800c2fe: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 800c302: 2200 movs r2, #0 - 800c304: 2100 movs r1, #0 - 800c306: 68b8 ldr r0, [r7, #8] - 800c308: f024 fdf8 bl 8030efc + 800c28c: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 800c290: 9300 str r3, [sp, #0] + 800c292: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 800c296: 2200 movs r2, #0 + 800c298: 2100 movs r1, #0 + 800c29a: 68b8 ldr r0, [r7, #8] + 800c29c: f024 fde4 bl 8030e68 lv_area_set(ver_area, 0, 0, -1, -1); - 800c30c: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 800c310: 9300 str r3, [sp, #0] - 800c312: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 800c316: 2200 movs r2, #0 - 800c318: 2100 movs r1, #0 - 800c31a: 6878 ldr r0, [r7, #4] - 800c31c: f024 fdee bl 8030efc + 800c2a0: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 800c2a4: 9300 str r3, [sp, #0] + 800c2a6: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 800c2aa: 2200 movs r2, #0 + 800c2ac: 2100 movs r1, #0 + 800c2ae: 6878 ldr r0, [r7, #4] + 800c2b0: f024 fdda bl 8030e68 if(lv_obj_has_flag(obj, LV_OBJ_FLAG_SCROLLABLE) == false) return; - 800c320: 2110 movs r1, #16 - 800c322: 68f8 ldr r0, [r7, #12] - 800c324: f7fa fa2d bl 8006782 - 800c328: 4603 mov r3, r0 - 800c32a: f083 0301 eor.w r3, r3, #1 - 800c32e: b2db uxtb r3, r3 - 800c330: 2b00 cmp r3, #0 - 800c332: f040 8591 bne.w 800ce58 + 800c2b4: 2110 movs r1, #16 + 800c2b6: 68f8 ldr r0, [r7, #12] + 800c2b8: f7fa fa2d bl 8006716 + 800c2bc: 4603 mov r3, r0 + 800c2be: f083 0301 eor.w r3, r3, #1 + 800c2c2: b2db uxtb r3, r3 + 800c2c4: 2b00 cmp r3, #0 + 800c2c6: f040 8591 bne.w 800cdec lv_dir_t sm = lv_obj_get_scrollbar_mode(obj); - 800c336: 68f8 ldr r0, [r7, #12] - 800c338: f7ff fac6 bl 800b8c8 - 800c33c: 4603 mov r3, r0 - 800c33e: f887 3041 strb.w r3, [r7, #65] ; 0x41 + 800c2ca: 68f8 ldr r0, [r7, #12] + 800c2cc: f7ff fac6 bl 800b85c + 800c2d0: 4603 mov r3, r0 + 800c2d2: f887 3041 strb.w r3, [r7, #65] ; 0x41 if(sm == LV_SCROLLBAR_MODE_OFF) return; - 800c342: f897 3041 ldrb.w r3, [r7, #65] ; 0x41 - 800c346: 2b00 cmp r3, #0 - 800c348: f000 8588 beq.w 800ce5c + 800c2d6: f897 3041 ldrb.w r3, [r7, #65] ; 0x41 + 800c2da: 2b00 cmp r3, #0 + 800c2dc: f000 8588 beq.w 800cdf0 /*If there is no indev scrolling this object but `mode==active` return*/ lv_indev_t * indev = lv_indev_get_next(NULL); - 800c34c: 2000 movs r0, #0 - 800c34e: f024 f9c3 bl 80306d8 - 800c352: 6478 str r0, [r7, #68] ; 0x44 + 800c2e0: 2000 movs r0, #0 + 800c2e2: f024 f9af bl 8030644 + 800c2e6: 6478 str r0, [r7, #68] ; 0x44 if(sm == LV_SCROLLBAR_MODE_ACTIVE) { - 800c354: f897 3041 ldrb.w r3, [r7, #65] ; 0x41 - 800c358: 2b02 cmp r3, #2 - 800c35a: d114 bne.n 800c386 + 800c2e8: f897 3041 ldrb.w r3, [r7, #65] ; 0x41 + 800c2ec: 2b02 cmp r3, #2 + 800c2ee: d114 bne.n 800c31a while(indev) { - 800c35c: e00a b.n 800c374 + 800c2f0: e00a b.n 800c308 if(lv_indev_get_scroll_obj(indev) == obj) break; - 800c35e: 6c78 ldr r0, [r7, #68] ; 0x44 - 800c360: f7f7 f91c bl 800359c - 800c364: 4602 mov r2, r0 - 800c366: 68fb ldr r3, [r7, #12] - 800c368: 4293 cmp r3, r2 - 800c36a: d007 beq.n 800c37c + 800c2f2: 6c78 ldr r0, [r7, #68] ; 0x44 + 800c2f4: f7f7 f91c bl 8003530 + 800c2f8: 4602 mov r2, r0 + 800c2fa: 68fb ldr r3, [r7, #12] + 800c2fc: 4293 cmp r3, r2 + 800c2fe: d007 beq.n 800c310 indev = lv_indev_get_next(indev); - 800c36c: 6c78 ldr r0, [r7, #68] ; 0x44 - 800c36e: f024 f9b3 bl 80306d8 - 800c372: 6478 str r0, [r7, #68] ; 0x44 + 800c300: 6c78 ldr r0, [r7, #68] ; 0x44 + 800c302: f024 f99f bl 8030644 + 800c306: 6478 str r0, [r7, #68] ; 0x44 while(indev) { - 800c374: 6c7b ldr r3, [r7, #68] ; 0x44 - 800c376: 2b00 cmp r3, #0 - 800c378: d1f1 bne.n 800c35e - 800c37a: e000 b.n 800c37e + 800c308: 6c7b ldr r3, [r7, #68] ; 0x44 + 800c30a: 2b00 cmp r3, #0 + 800c30c: d1f1 bne.n 800c2f2 + 800c30e: e000 b.n 800c312 if(lv_indev_get_scroll_obj(indev) == obj) break; - 800c37c: bf00 nop + 800c310: bf00 nop } if(indev == NULL) return; - 800c37e: 6c7b ldr r3, [r7, #68] ; 0x44 - 800c380: 2b00 cmp r3, #0 - 800c382: f000 856d beq.w 800ce60 + 800c312: 6c7b ldr r3, [r7, #68] ; 0x44 + 800c314: 2b00 cmp r3, #0 + 800c316: f000 856d beq.w 800cdf4 } lv_coord_t st = lv_obj_get_scroll_top(obj); - 800c386: 68f8 ldr r0, [r7, #12] - 800c388: f7ff fb20 bl 800b9cc - 800c38c: 4603 mov r3, r0 - 800c38e: 87fb strh r3, [r7, #62] ; 0x3e + 800c31a: 68f8 ldr r0, [r7, #12] + 800c31c: f7ff fb20 bl 800b960 + 800c320: 4603 mov r3, r0 + 800c322: 87fb strh r3, [r7, #62] ; 0x3e lv_coord_t sb = lv_obj_get_scroll_bottom(obj); - 800c390: 68f8 ldr r0, [r7, #12] - 800c392: f7ff fb33 bl 800b9fc - 800c396: 4603 mov r3, r0 - 800c398: 87bb strh r3, [r7, #60] ; 0x3c + 800c324: 68f8 ldr r0, [r7, #12] + 800c326: f7ff fb33 bl 800b990 + 800c32a: 4603 mov r3, r0 + 800c32c: 87bb strh r3, [r7, #60] ; 0x3c lv_coord_t sl = lv_obj_get_scroll_left(obj); - 800c39a: 68f8 ldr r0, [r7, #12] - 800c39c: f7ff fbb4 bl 800bb08 - 800c3a0: 4603 mov r3, r0 - 800c3a2: 877b strh r3, [r7, #58] ; 0x3a + 800c32e: 68f8 ldr r0, [r7, #12] + 800c330: f7ff fbb4 bl 800ba9c + 800c334: 4603 mov r3, r0 + 800c336: 877b strh r3, [r7, #58] ; 0x3a lv_coord_t sr = lv_obj_get_scroll_right(obj); - 800c3a4: 68f8 ldr r0, [r7, #12] - 800c3a6: f7ff fc53 bl 800bc50 - 800c3aa: 4603 mov r3, r0 - 800c3ac: 873b strh r3, [r7, #56] ; 0x38 + 800c338: 68f8 ldr r0, [r7, #12] + 800c33a: f7ff fc53 bl 800bbe4 + 800c33e: 4603 mov r3, r0 + 800c340: 873b strh r3, [r7, #56] ; 0x38 lv_dir_t dir = lv_obj_get_scroll_dir(obj); - 800c3ae: 68f8 ldr r0, [r7, #12] - 800c3b0: f7ff fa9f bl 800b8f2 - 800c3b4: 4603 mov r3, r0 - 800c3b6: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 800c342: 68f8 ldr r0, [r7, #12] + 800c344: f7ff fa9f bl 800b886 + 800c348: 4603 mov r3, r0 + 800c34a: f887 3037 strb.w r3, [r7, #55] ; 0x37 bool ver_draw = false; - 800c3ba: 2300 movs r3, #0 - 800c3bc: f887 3043 strb.w r3, [r7, #67] ; 0x43 + 800c34e: 2300 movs r3, #0 + 800c350: f887 3043 strb.w r3, [r7, #67] ; 0x43 if((dir & LV_DIR_VER) && - 800c3c0: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 800c3c4: f003 030c and.w r3, r3, #12 - 800c3c8: 2b00 cmp r3, #0 - 800c3ca: d01c beq.n 800c406 - 800c3cc: f897 3041 ldrb.w r3, [r7, #65] ; 0x41 - 800c3d0: 2b01 cmp r3, #1 - 800c3d2: d015 beq.n 800c400 + 800c354: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 800c358: f003 030c and.w r3, r3, #12 + 800c35c: 2b00 cmp r3, #0 + 800c35e: d01c beq.n 800c39a + 800c360: f897 3041 ldrb.w r3, [r7, #65] ; 0x41 + 800c364: 2b01 cmp r3, #1 + 800c366: d015 beq.n 800c394 ((sm == LV_SCROLLBAR_MODE_ON) || - 800c3d4: f897 3041 ldrb.w r3, [r7, #65] ; 0x41 - 800c3d8: 2b03 cmp r3, #3 - 800c3da: d107 bne.n 800c3ec + 800c368: f897 3041 ldrb.w r3, [r7, #65] ; 0x41 + 800c36c: 2b03 cmp r3, #3 + 800c36e: d107 bne.n 800c380 (sm == LV_SCROLLBAR_MODE_AUTO && (st > 0 || sb > 0)) || - 800c3dc: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 800c3e0: 2b00 cmp r3, #0 - 800c3e2: dc0d bgt.n 800c400 - 800c3e4: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c - 800c3e8: 2b00 cmp r3, #0 - 800c3ea: dc09 bgt.n 800c400 - 800c3ec: f897 3041 ldrb.w r3, [r7, #65] ; 0x41 - 800c3f0: 2b02 cmp r3, #2 - 800c3f2: d108 bne.n 800c406 + 800c370: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 800c374: 2b00 cmp r3, #0 + 800c376: dc0d bgt.n 800c394 + 800c378: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c + 800c37c: 2b00 cmp r3, #0 + 800c37e: dc09 bgt.n 800c394 + 800c380: f897 3041 ldrb.w r3, [r7, #65] ; 0x41 + 800c384: 2b02 cmp r3, #2 + 800c386: d108 bne.n 800c39a (sm == LV_SCROLLBAR_MODE_ACTIVE && lv_indev_get_scroll_dir(indev) == LV_DIR_VER))) { - 800c3f4: 6c78 ldr r0, [r7, #68] ; 0x44 - 800c3f6: f7f7 f8b1 bl 800355c - 800c3fa: 4603 mov r3, r0 - 800c3fc: 2b0c cmp r3, #12 - 800c3fe: d102 bne.n 800c406 + 800c388: 6c78 ldr r0, [r7, #68] ; 0x44 + 800c38a: f7f7 f8b1 bl 80034f0 + 800c38e: 4603 mov r3, r0 + 800c390: 2b0c cmp r3, #12 + 800c392: d102 bne.n 800c39a ver_draw = true; - 800c400: 2301 movs r3, #1 - 800c402: f887 3043 strb.w r3, [r7, #67] ; 0x43 + 800c394: 2301 movs r3, #1 + 800c396: f887 3043 strb.w r3, [r7, #67] ; 0x43 } bool hor_draw = false; - 800c406: 2300 movs r3, #0 - 800c408: f887 3042 strb.w r3, [r7, #66] ; 0x42 + 800c39a: 2300 movs r3, #0 + 800c39c: f887 3042 strb.w r3, [r7, #66] ; 0x42 if((dir & LV_DIR_HOR) && - 800c40c: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 800c410: f003 0303 and.w r3, r3, #3 - 800c414: 2b00 cmp r3, #0 - 800c416: d01c beq.n 800c452 - 800c418: f897 3041 ldrb.w r3, [r7, #65] ; 0x41 - 800c41c: 2b01 cmp r3, #1 - 800c41e: d015 beq.n 800c44c + 800c3a0: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 800c3a4: f003 0303 and.w r3, r3, #3 + 800c3a8: 2b00 cmp r3, #0 + 800c3aa: d01c beq.n 800c3e6 + 800c3ac: f897 3041 ldrb.w r3, [r7, #65] ; 0x41 + 800c3b0: 2b01 cmp r3, #1 + 800c3b2: d015 beq.n 800c3e0 ((sm == LV_SCROLLBAR_MODE_ON) || - 800c420: f897 3041 ldrb.w r3, [r7, #65] ; 0x41 - 800c424: 2b03 cmp r3, #3 - 800c426: d107 bne.n 800c438 + 800c3b4: f897 3041 ldrb.w r3, [r7, #65] ; 0x41 + 800c3b8: 2b03 cmp r3, #3 + 800c3ba: d107 bne.n 800c3cc (sm == LV_SCROLLBAR_MODE_AUTO && (sl > 0 || sr > 0)) || - 800c428: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 800c42c: 2b00 cmp r3, #0 - 800c42e: dc0d bgt.n 800c44c - 800c430: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 800c434: 2b00 cmp r3, #0 - 800c436: dc09 bgt.n 800c44c - 800c438: f897 3041 ldrb.w r3, [r7, #65] ; 0x41 - 800c43c: 2b02 cmp r3, #2 - 800c43e: d108 bne.n 800c452 + 800c3bc: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 800c3c0: 2b00 cmp r3, #0 + 800c3c2: dc0d bgt.n 800c3e0 + 800c3c4: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 800c3c8: 2b00 cmp r3, #0 + 800c3ca: dc09 bgt.n 800c3e0 + 800c3cc: f897 3041 ldrb.w r3, [r7, #65] ; 0x41 + 800c3d0: 2b02 cmp r3, #2 + 800c3d2: d108 bne.n 800c3e6 (sm == LV_SCROLLBAR_MODE_ACTIVE && lv_indev_get_scroll_dir(indev) == LV_DIR_HOR))) { - 800c440: 6c78 ldr r0, [r7, #68] ; 0x44 - 800c442: f7f7 f88b bl 800355c - 800c446: 4603 mov r3, r0 - 800c448: 2b03 cmp r3, #3 - 800c44a: d102 bne.n 800c452 + 800c3d4: 6c78 ldr r0, [r7, #68] ; 0x44 + 800c3d6: f7f7 f88b bl 80034f0 + 800c3da: 4603 mov r3, r0 + 800c3dc: 2b03 cmp r3, #3 + 800c3de: d102 bne.n 800c3e6 hor_draw = true; - 800c44c: 2301 movs r3, #1 - 800c44e: f887 3042 strb.w r3, [r7, #66] ; 0x42 + 800c3e0: 2301 movs r3, #1 + 800c3e2: f887 3042 strb.w r3, [r7, #66] ; 0x42 } if(!hor_draw && !ver_draw) return; - 800c452: f897 3042 ldrb.w r3, [r7, #66] ; 0x42 - 800c456: f083 0301 eor.w r3, r3, #1 - 800c45a: b2db uxtb r3, r3 - 800c45c: 2b00 cmp r3, #0 - 800c45e: d007 beq.n 800c470 - 800c460: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 - 800c464: f083 0301 eor.w r3, r3, #1 - 800c468: b2db uxtb r3, r3 - 800c46a: 2b00 cmp r3, #0 - 800c46c: f040 84fa bne.w 800ce64 + 800c3e6: f897 3042 ldrb.w r3, [r7, #66] ; 0x42 + 800c3ea: f083 0301 eor.w r3, r3, #1 + 800c3ee: b2db uxtb r3, r3 + 800c3f0: 2b00 cmp r3, #0 + 800c3f2: d007 beq.n 800c404 + 800c3f4: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 + 800c3f8: f083 0301 eor.w r3, r3, #1 + 800c3fc: b2db uxtb r3, r3 + 800c3fe: 2b00 cmp r3, #0 + 800c400: f040 84fa bne.w 800cdf8 bool rtl = lv_obj_get_style_base_dir(obj, LV_PART_SCROLLBAR) == LV_BASE_DIR_RTL ? true : false; - 800c470: f44f 3180 mov.w r1, #65536 ; 0x10000 - 800c474: 68f8 ldr r0, [r7, #12] - 800c476: f7ff f9a0 bl 800b7ba - 800c47a: 4603 mov r3, r0 - 800c47c: 2b01 cmp r3, #1 - 800c47e: bf0c ite eq - 800c480: 2301 moveq r3, #1 - 800c482: 2300 movne r3, #0 - 800c484: f887 3036 strb.w r3, [r7, #54] ; 0x36 + 800c404: f44f 3180 mov.w r1, #65536 ; 0x10000 + 800c408: 68f8 ldr r0, [r7, #12] + 800c40a: f7ff f9a0 bl 800b74e + 800c40e: 4603 mov r3, r0 + 800c410: 2b01 cmp r3, #1 + 800c412: bf0c ite eq + 800c414: 2301 moveq r3, #1 + 800c416: 2300 movne r3, #0 + 800c418: f887 3036 strb.w r3, [r7, #54] ; 0x36 lv_coord_t top_space = lv_obj_get_style_pad_top(obj, LV_PART_SCROLLBAR); - 800c488: f44f 3180 mov.w r1, #65536 ; 0x10000 - 800c48c: 68f8 ldr r0, [r7, #12] - 800c48e: f7ff f911 bl 800b6b4 - 800c492: 4603 mov r3, r0 - 800c494: 86bb strh r3, [r7, #52] ; 0x34 + 800c41c: f44f 3180 mov.w r1, #65536 ; 0x10000 + 800c420: 68f8 ldr r0, [r7, #12] + 800c422: f7ff f911 bl 800b648 + 800c426: 4603 mov r3, r0 + 800c428: 86bb strh r3, [r7, #52] ; 0x34 lv_coord_t bottom_space = lv_obj_get_style_pad_bottom(obj, LV_PART_SCROLLBAR); - 800c496: f44f 3180 mov.w r1, #65536 ; 0x10000 - 800c49a: 68f8 ldr r0, [r7, #12] - 800c49c: f7ff f91d bl 800b6da - 800c4a0: 4603 mov r3, r0 - 800c4a2: 867b strh r3, [r7, #50] ; 0x32 + 800c42a: f44f 3180 mov.w r1, #65536 ; 0x10000 + 800c42e: 68f8 ldr r0, [r7, #12] + 800c430: f7ff f91d bl 800b66e + 800c434: 4603 mov r3, r0 + 800c436: 867b strh r3, [r7, #50] ; 0x32 lv_coord_t left_space = lv_obj_get_style_pad_left(obj, LV_PART_SCROLLBAR); - 800c4a4: f44f 3180 mov.w r1, #65536 ; 0x10000 - 800c4a8: 68f8 ldr r0, [r7, #12] - 800c4aa: f7ff f929 bl 800b700 - 800c4ae: 4603 mov r3, r0 - 800c4b0: 863b strh r3, [r7, #48] ; 0x30 + 800c438: f44f 3180 mov.w r1, #65536 ; 0x10000 + 800c43c: 68f8 ldr r0, [r7, #12] + 800c43e: f7ff f929 bl 800b694 + 800c442: 4603 mov r3, r0 + 800c444: 863b strh r3, [r7, #48] ; 0x30 lv_coord_t right_space = lv_obj_get_style_pad_right(obj, LV_PART_SCROLLBAR); - 800c4b2: f44f 3180 mov.w r1, #65536 ; 0x10000 - 800c4b6: 68f8 ldr r0, [r7, #12] - 800c4b8: f7ff f935 bl 800b726 - 800c4bc: 4603 mov r3, r0 - 800c4be: 85fb strh r3, [r7, #46] ; 0x2e + 800c446: f44f 3180 mov.w r1, #65536 ; 0x10000 + 800c44a: 68f8 ldr r0, [r7, #12] + 800c44c: f7ff f935 bl 800b6ba + 800c450: 4603 mov r3, r0 + 800c452: 85fb strh r3, [r7, #46] ; 0x2e lv_coord_t tickness = lv_obj_get_style_width(obj, LV_PART_SCROLLBAR); - 800c4c0: f44f 3180 mov.w r1, #65536 ; 0x10000 - 800c4c4: 68f8 ldr r0, [r7, #12] - 800c4c6: f7ff f8e2 bl 800b68e - 800c4ca: 4603 mov r3, r0 - 800c4cc: 85bb strh r3, [r7, #44] ; 0x2c + 800c454: f44f 3180 mov.w r1, #65536 ; 0x10000 + 800c458: 68f8 ldr r0, [r7, #12] + 800c45a: f7ff f8e2 bl 800b622 + 800c45e: 4603 mov r3, r0 + 800c460: 85bb strh r3, [r7, #44] ; 0x2c lv_coord_t obj_h = lv_obj_get_height(obj); - 800c4ce: 68f8 ldr r0, [r7, #12] - 800c4d0: f7fd fe48 bl 800a164 - 800c4d4: 4603 mov r3, r0 - 800c4d6: 857b strh r3, [r7, #42] ; 0x2a + 800c462: 68f8 ldr r0, [r7, #12] + 800c464: f7fd fe48 bl 800a0f8 + 800c468: 4603 mov r3, r0 + 800c46a: 857b strh r3, [r7, #42] ; 0x2a lv_coord_t obj_w = lv_obj_get_width(obj); - 800c4d8: 68f8 ldr r0, [r7, #12] - 800c4da: f7fd fe35 bl 800a148 - 800c4de: 4603 mov r3, r0 - 800c4e0: 853b strh r3, [r7, #40] ; 0x28 + 800c46c: 68f8 ldr r0, [r7, #12] + 800c46e: f7fd fe35 bl 800a0dc + 800c472: 4603 mov r3, r0 + 800c474: 853b strh r3, [r7, #40] ; 0x28 /*Space required for the vertical and horizontal scrollbars*/ lv_coord_t ver_reg_space = ver_draw ? tickness : 0; - 800c4e2: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 - 800c4e6: 2b00 cmp r3, #0 - 800c4e8: d002 beq.n 800c4f0 - 800c4ea: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 800c4ee: e000 b.n 800c4f2 - 800c4f0: 2300 movs r3, #0 - 800c4f2: 84fb strh r3, [r7, #38] ; 0x26 + 800c476: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 + 800c47a: 2b00 cmp r3, #0 + 800c47c: d002 beq.n 800c484 + 800c47e: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 800c482: e000 b.n 800c486 + 800c484: 2300 movs r3, #0 + 800c486: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t hor_req_space = hor_draw ? tickness : 0; - 800c4f4: f897 3042 ldrb.w r3, [r7, #66] ; 0x42 - 800c4f8: 2b00 cmp r3, #0 - 800c4fa: d002 beq.n 800c502 - 800c4fc: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 800c500: e000 b.n 800c504 - 800c502: 2300 movs r3, #0 - 800c504: 84bb strh r3, [r7, #36] ; 0x24 + 800c488: f897 3042 ldrb.w r3, [r7, #66] ; 0x42 + 800c48c: 2b00 cmp r3, #0 + 800c48e: d002 beq.n 800c496 + 800c490: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 800c494: e000 b.n 800c498 + 800c496: 2300 movs r3, #0 + 800c498: 84bb strh r3, [r7, #36] ; 0x24 lv_coord_t rem; if(lv_obj_get_style_bg_opa(obj, LV_PART_SCROLLBAR) < LV_OPA_MIN && - 800c506: f44f 3180 mov.w r1, #65536 ; 0x10000 - 800c50a: 68f8 ldr r0, [r7, #12] - 800c50c: f7ff f91e bl 800b74c - 800c510: 4603 mov r3, r0 - 800c512: 2b01 cmp r3, #1 - 800c514: d808 bhi.n 800c528 + 800c49a: f44f 3180 mov.w r1, #65536 ; 0x10000 + 800c49e: 68f8 ldr r0, [r7, #12] + 800c4a0: f7ff f91e bl 800b6e0 + 800c4a4: 4603 mov r3, r0 + 800c4a6: 2b01 cmp r3, #1 + 800c4a8: d808 bhi.n 800c4bc lv_obj_get_style_border_opa(obj, LV_PART_SCROLLBAR) < LV_OPA_MIN) { - 800c516: f44f 3180 mov.w r1, #65536 ; 0x10000 - 800c51a: 68f8 ldr r0, [r7, #12] - 800c51c: f7ff f928 bl 800b770 - 800c520: 4603 mov r3, r0 + 800c4aa: f44f 3180 mov.w r1, #65536 ; 0x10000 + 800c4ae: 68f8 ldr r0, [r7, #12] + 800c4b0: f7ff f928 bl 800b704 + 800c4b4: 4603 mov r3, r0 if(lv_obj_get_style_bg_opa(obj, LV_PART_SCROLLBAR) < LV_OPA_MIN && - 800c522: 2b01 cmp r3, #1 - 800c524: f240 84a0 bls.w 800ce68 + 800c4b6: 2b01 cmp r3, #1 + 800c4b8: f240 84a0 bls.w 800cdfc return; } /*Draw vertical scrollbar if the mode is ON or can be scrolled in this direction*/ lv_coord_t content_h = obj_h + st + sb; - 800c528: 8d7a ldrh r2, [r7, #42] ; 0x2a - 800c52a: 8ffb ldrh r3, [r7, #62] ; 0x3e - 800c52c: 4413 add r3, r2 - 800c52e: b29a uxth r2, r3 - 800c530: 8fbb ldrh r3, [r7, #60] ; 0x3c - 800c532: 4413 add r3, r2 - 800c534: b29b uxth r3, r3 - 800c536: 847b strh r3, [r7, #34] ; 0x22 + 800c4bc: 8d7a ldrh r2, [r7, #42] ; 0x2a + 800c4be: 8ffb ldrh r3, [r7, #62] ; 0x3e + 800c4c0: 4413 add r3, r2 + 800c4c2: b29a uxth r2, r3 + 800c4c4: 8fbb ldrh r3, [r7, #60] ; 0x3c + 800c4c6: 4413 add r3, r2 + 800c4c8: b29b uxth r3, r3 + 800c4ca: 847b strh r3, [r7, #34] ; 0x22 if(ver_draw && content_h) { - 800c538: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 - 800c53c: 2b00 cmp r3, #0 - 800c53e: f000 81c3 beq.w 800c8c8 - 800c542: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 800c546: 2b00 cmp r3, #0 - 800c548: f000 81be beq.w 800c8c8 + 800c4cc: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 + 800c4d0: 2b00 cmp r3, #0 + 800c4d2: f000 81c3 beq.w 800c85c + 800c4d6: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 800c4da: 2b00 cmp r3, #0 + 800c4dc: f000 81be beq.w 800c85c ver_area->y1 = obj->coords.y1; - 800c54c: 68fb ldr r3, [r7, #12] - 800c54e: f9b3 2016 ldrsh.w r2, [r3, #22] - 800c552: 687b ldr r3, [r7, #4] - 800c554: 805a strh r2, [r3, #2] + 800c4e0: 68fb ldr r3, [r7, #12] + 800c4e2: f9b3 2016 ldrsh.w r2, [r3, #22] + 800c4e6: 687b ldr r3, [r7, #4] + 800c4e8: 805a strh r2, [r3, #2] ver_area->y2 = obj->coords.y2; - 800c556: 68fb ldr r3, [r7, #12] - 800c558: f9b3 201a ldrsh.w r2, [r3, #26] - 800c55c: 687b ldr r3, [r7, #4] - 800c55e: 80da strh r2, [r3, #6] + 800c4ea: 68fb ldr r3, [r7, #12] + 800c4ec: f9b3 201a ldrsh.w r2, [r3, #26] + 800c4f0: 687b ldr r3, [r7, #4] + 800c4f2: 80da strh r2, [r3, #6] if(rtl) { - 800c560: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 - 800c564: 2b00 cmp r3, #0 - 800c566: d016 beq.n 800c596 + 800c4f4: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 + 800c4f8: 2b00 cmp r3, #0 + 800c4fa: d016 beq.n 800c52a ver_area->x1 = obj->coords.x1 + left_space; - 800c568: 68fb ldr r3, [r7, #12] - 800c56a: f9b3 3014 ldrsh.w r3, [r3, #20] - 800c56e: b29a uxth r2, r3 - 800c570: 8e3b ldrh r3, [r7, #48] ; 0x30 - 800c572: 4413 add r3, r2 - 800c574: b29b uxth r3, r3 - 800c576: b21a sxth r2, r3 - 800c578: 687b ldr r3, [r7, #4] - 800c57a: 801a strh r2, [r3, #0] + 800c4fc: 68fb ldr r3, [r7, #12] + 800c4fe: f9b3 3014 ldrsh.w r3, [r3, #20] + 800c502: b29a uxth r2, r3 + 800c504: 8e3b ldrh r3, [r7, #48] ; 0x30 + 800c506: 4413 add r3, r2 + 800c508: b29b uxth r3, r3 + 800c50a: b21a sxth r2, r3 + 800c50c: 687b ldr r3, [r7, #4] + 800c50e: 801a strh r2, [r3, #0] ver_area->x2 = ver_area->x1 + tickness - 1; - 800c57c: 687b ldr r3, [r7, #4] - 800c57e: f9b3 3000 ldrsh.w r3, [r3] - 800c582: b29a uxth r2, r3 - 800c584: 8dbb ldrh r3, [r7, #44] ; 0x2c - 800c586: 4413 add r3, r2 - 800c588: b29b uxth r3, r3 - 800c58a: 3b01 subs r3, #1 - 800c58c: b29b uxth r3, r3 - 800c58e: b21a sxth r2, r3 - 800c590: 687b ldr r3, [r7, #4] - 800c592: 809a strh r2, [r3, #4] - 800c594: e015 b.n 800c5c2 + 800c510: 687b ldr r3, [r7, #4] + 800c512: f9b3 3000 ldrsh.w r3, [r3] + 800c516: b29a uxth r2, r3 + 800c518: 8dbb ldrh r3, [r7, #44] ; 0x2c + 800c51a: 4413 add r3, r2 + 800c51c: b29b uxth r3, r3 + 800c51e: 3b01 subs r3, #1 + 800c520: b29b uxth r3, r3 + 800c522: b21a sxth r2, r3 + 800c524: 687b ldr r3, [r7, #4] + 800c526: 809a strh r2, [r3, #4] + 800c528: e015 b.n 800c556 } else { ver_area->x2 = obj->coords.x2 - right_space; - 800c596: 68fb ldr r3, [r7, #12] - 800c598: f9b3 3018 ldrsh.w r3, [r3, #24] - 800c59c: b29a uxth r2, r3 - 800c59e: 8dfb ldrh r3, [r7, #46] ; 0x2e - 800c5a0: 1ad3 subs r3, r2, r3 - 800c5a2: b29b uxth r3, r3 - 800c5a4: b21a sxth r2, r3 - 800c5a6: 687b ldr r3, [r7, #4] - 800c5a8: 809a strh r2, [r3, #4] + 800c52a: 68fb ldr r3, [r7, #12] + 800c52c: f9b3 3018 ldrsh.w r3, [r3, #24] + 800c530: b29a uxth r2, r3 + 800c532: 8dfb ldrh r3, [r7, #46] ; 0x2e + 800c534: 1ad3 subs r3, r2, r3 + 800c536: b29b uxth r3, r3 + 800c538: b21a sxth r2, r3 + 800c53a: 687b ldr r3, [r7, #4] + 800c53c: 809a strh r2, [r3, #4] ver_area->x1 = ver_area->x2 - tickness + 1; - 800c5aa: 687b ldr r3, [r7, #4] - 800c5ac: f9b3 3004 ldrsh.w r3, [r3, #4] - 800c5b0: b29a uxth r2, r3 - 800c5b2: 8dbb ldrh r3, [r7, #44] ; 0x2c - 800c5b4: 1ad3 subs r3, r2, r3 - 800c5b6: b29b uxth r3, r3 - 800c5b8: 3301 adds r3, #1 - 800c5ba: b29b uxth r3, r3 - 800c5bc: b21a sxth r2, r3 - 800c5be: 687b ldr r3, [r7, #4] - 800c5c0: 801a strh r2, [r3, #0] + 800c53e: 687b ldr r3, [r7, #4] + 800c540: f9b3 3004 ldrsh.w r3, [r3, #4] + 800c544: b29a uxth r2, r3 + 800c546: 8dbb ldrh r3, [r7, #44] ; 0x2c + 800c548: 1ad3 subs r3, r2, r3 + 800c54a: b29b uxth r3, r3 + 800c54c: 3301 adds r3, #1 + 800c54e: b29b uxth r3, r3 + 800c550: b21a sxth r2, r3 + 800c552: 687b ldr r3, [r7, #4] + 800c554: 801a strh r2, [r3, #0] } lv_coord_t sb_h = ((obj_h - top_space - bottom_space - hor_req_space) * obj_h) / content_h; - 800c5c2: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a - 800c5c6: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 800c5ca: 1ad2 subs r2, r2, r3 - 800c5cc: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 800c5d0: 1ad2 subs r2, r2, r3 - 800c5d2: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 - 800c5d6: 1ad3 subs r3, r2, r3 - 800c5d8: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a - 800c5dc: fb03 f202 mul.w r2, r3, r2 - 800c5e0: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 800c5e4: fb92 f3f3 sdiv r3, r2, r3 - 800c5e8: 843b strh r3, [r7, #32] + 800c556: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a + 800c55a: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 800c55e: 1ad2 subs r2, r2, r3 + 800c560: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 800c564: 1ad2 subs r2, r2, r3 + 800c566: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 + 800c56a: 1ad3 subs r3, r2, r3 + 800c56c: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a + 800c570: fb03 f202 mul.w r2, r3, r2 + 800c574: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 800c578: fb92 f3f3 sdiv r3, r2, r3 + 800c57c: 843b strh r3, [r7, #32] sb_h = LV_MAX(sb_h, SCROLLBAR_MIN_SIZE); - 800c5ea: f9b7 4020 ldrsh.w r4, [r7, #32] - 800c5ee: 2000 movs r0, #0 - 800c5f0: f023 ffc2 bl 8030578 - 800c5f4: 4603 mov r3, r0 - 800c5f6: 461a mov r2, r3 - 800c5f8: 4613 mov r3, r2 - 800c5fa: 009b lsls r3, r3, #2 - 800c5fc: 4413 add r3, r2 - 800c5fe: 005b lsls r3, r3, #1 - 800c600: 2bef cmp r3, #239 ; 0xef - 800c602: dd10 ble.n 800c626 - 800c604: 2000 movs r0, #0 - 800c606: f023 ffb7 bl 8030578 - 800c60a: 4603 mov r3, r0 - 800c60c: 461a mov r2, r3 - 800c60e: 4613 mov r3, r2 - 800c610: 009b lsls r3, r3, #2 - 800c612: 4413 add r3, r2 - 800c614: 005b lsls r3, r3, #1 - 800c616: 3350 adds r3, #80 ; 0x50 - 800c618: 4aa7 ldr r2, [pc, #668] ; (800c8b8 ) - 800c61a: fb82 1203 smull r1, r2, r2, r3 - 800c61e: 1192 asrs r2, r2, #6 - 800c620: 17db asrs r3, r3, #31 - 800c622: 1ad3 subs r3, r2, r3 - 800c624: e000 b.n 800c628 - 800c626: 2301 movs r3, #1 - 800c628: 42a3 cmp r3, r4 - 800c62a: db1e blt.n 800c66a - 800c62c: 2000 movs r0, #0 - 800c62e: f023 ffa3 bl 8030578 - 800c632: 4603 mov r3, r0 - 800c634: 461a mov r2, r3 - 800c636: 4613 mov r3, r2 - 800c638: 009b lsls r3, r3, #2 - 800c63a: 4413 add r3, r2 - 800c63c: 005b lsls r3, r3, #1 - 800c63e: 2bef cmp r3, #239 ; 0xef - 800c640: dd11 ble.n 800c666 - 800c642: 2000 movs r0, #0 - 800c644: f023 ff98 bl 8030578 - 800c648: 4603 mov r3, r0 - 800c64a: 461a mov r2, r3 - 800c64c: 4613 mov r3, r2 - 800c64e: 009b lsls r3, r3, #2 - 800c650: 4413 add r3, r2 - 800c652: 005b lsls r3, r3, #1 - 800c654: 3350 adds r3, #80 ; 0x50 - 800c656: 4a98 ldr r2, [pc, #608] ; (800c8b8 ) - 800c658: fb82 1203 smull r1, r2, r2, r3 - 800c65c: 1192 asrs r2, r2, #6 - 800c65e: 17db asrs r3, r3, #31 - 800c660: 1ad3 subs r3, r2, r3 - 800c662: b21b sxth r3, r3 - 800c664: e003 b.n 800c66e - 800c666: 2301 movs r3, #1 - 800c668: e001 b.n 800c66e - 800c66a: f9b7 3020 ldrsh.w r3, [r7, #32] - 800c66e: 843b strh r3, [r7, #32] + 800c57e: f9b7 4020 ldrsh.w r4, [r7, #32] + 800c582: 2000 movs r0, #0 + 800c584: f023 ffae bl 80304e4 + 800c588: 4603 mov r3, r0 + 800c58a: 461a mov r2, r3 + 800c58c: 4613 mov r3, r2 + 800c58e: 009b lsls r3, r3, #2 + 800c590: 4413 add r3, r2 + 800c592: 005b lsls r3, r3, #1 + 800c594: 2bef cmp r3, #239 ; 0xef + 800c596: dd10 ble.n 800c5ba + 800c598: 2000 movs r0, #0 + 800c59a: f023 ffa3 bl 80304e4 + 800c59e: 4603 mov r3, r0 + 800c5a0: 461a mov r2, r3 + 800c5a2: 4613 mov r3, r2 + 800c5a4: 009b lsls r3, r3, #2 + 800c5a6: 4413 add r3, r2 + 800c5a8: 005b lsls r3, r3, #1 + 800c5aa: 3350 adds r3, #80 ; 0x50 + 800c5ac: 4aa7 ldr r2, [pc, #668] ; (800c84c ) + 800c5ae: fb82 1203 smull r1, r2, r2, r3 + 800c5b2: 1192 asrs r2, r2, #6 + 800c5b4: 17db asrs r3, r3, #31 + 800c5b6: 1ad3 subs r3, r2, r3 + 800c5b8: e000 b.n 800c5bc + 800c5ba: 2301 movs r3, #1 + 800c5bc: 42a3 cmp r3, r4 + 800c5be: db1e blt.n 800c5fe + 800c5c0: 2000 movs r0, #0 + 800c5c2: f023 ff8f bl 80304e4 + 800c5c6: 4603 mov r3, r0 + 800c5c8: 461a mov r2, r3 + 800c5ca: 4613 mov r3, r2 + 800c5cc: 009b lsls r3, r3, #2 + 800c5ce: 4413 add r3, r2 + 800c5d0: 005b lsls r3, r3, #1 + 800c5d2: 2bef cmp r3, #239 ; 0xef + 800c5d4: dd11 ble.n 800c5fa + 800c5d6: 2000 movs r0, #0 + 800c5d8: f023 ff84 bl 80304e4 + 800c5dc: 4603 mov r3, r0 + 800c5de: 461a mov r2, r3 + 800c5e0: 4613 mov r3, r2 + 800c5e2: 009b lsls r3, r3, #2 + 800c5e4: 4413 add r3, r2 + 800c5e6: 005b lsls r3, r3, #1 + 800c5e8: 3350 adds r3, #80 ; 0x50 + 800c5ea: 4a98 ldr r2, [pc, #608] ; (800c84c ) + 800c5ec: fb82 1203 smull r1, r2, r2, r3 + 800c5f0: 1192 asrs r2, r2, #6 + 800c5f2: 17db asrs r3, r3, #31 + 800c5f4: 1ad3 subs r3, r2, r3 + 800c5f6: b21b sxth r3, r3 + 800c5f8: e003 b.n 800c602 + 800c5fa: 2301 movs r3, #1 + 800c5fc: e001 b.n 800c602 + 800c5fe: f9b7 3020 ldrsh.w r3, [r7, #32] + 800c602: 843b strh r3, [r7, #32] rem = (obj_h - top_space - bottom_space - hor_req_space) - - 800c670: 8d7a ldrh r2, [r7, #42] ; 0x2a - 800c672: 8ebb ldrh r3, [r7, #52] ; 0x34 - 800c674: 1ad3 subs r3, r2, r3 - 800c676: b29a uxth r2, r3 - 800c678: 8e7b ldrh r3, [r7, #50] ; 0x32 - 800c67a: 1ad3 subs r3, r2, r3 - 800c67c: b29a uxth r2, r3 - 800c67e: 8cbb ldrh r3, [r7, #36] ; 0x24 - 800c680: 1ad3 subs r3, r2, r3 - 800c682: b29a uxth r2, r3 - 800c684: 8c3b ldrh r3, [r7, #32] - 800c686: 1ad3 subs r3, r2, r3 - 800c688: b29b uxth r3, r3 - 800c68a: 83fb strh r3, [r7, #30] + 800c604: 8d7a ldrh r2, [r7, #42] ; 0x2a + 800c606: 8ebb ldrh r3, [r7, #52] ; 0x34 + 800c608: 1ad3 subs r3, r2, r3 + 800c60a: b29a uxth r2, r3 + 800c60c: 8e7b ldrh r3, [r7, #50] ; 0x32 + 800c60e: 1ad3 subs r3, r2, r3 + 800c610: b29a uxth r2, r3 + 800c612: 8cbb ldrh r3, [r7, #36] ; 0x24 + 800c614: 1ad3 subs r3, r2, r3 + 800c616: b29a uxth r2, r3 + 800c618: 8c3b ldrh r3, [r7, #32] + 800c61a: 1ad3 subs r3, r2, r3 + 800c61c: b29b uxth r3, r3 + 800c61e: 83fb strh r3, [r7, #30] sb_h; /*Remaining size from the scrollbar track that is not the scrollbar itself*/ lv_coord_t scroll_h = content_h - obj_h; /*The size of the content which can be really scrolled*/ - 800c68c: 8c7a ldrh r2, [r7, #34] ; 0x22 - 800c68e: 8d7b ldrh r3, [r7, #42] ; 0x2a - 800c690: 1ad3 subs r3, r2, r3 - 800c692: b29b uxth r3, r3 - 800c694: 83bb strh r3, [r7, #28] + 800c620: 8c7a ldrh r2, [r7, #34] ; 0x22 + 800c622: 8d7b ldrh r3, [r7, #42] ; 0x2a + 800c624: 1ad3 subs r3, r2, r3 + 800c626: b29b uxth r3, r3 + 800c628: 83bb strh r3, [r7, #28] if(scroll_h <= 0) { - 800c696: f9b7 301c ldrsh.w r3, [r7, #28] - 800c69a: 2b00 cmp r3, #0 - 800c69c: dc19 bgt.n 800c6d2 + 800c62a: f9b7 301c ldrsh.w r3, [r7, #28] + 800c62e: 2b00 cmp r3, #0 + 800c630: dc19 bgt.n 800c666 ver_area->y1 = obj->coords.y1 + top_space; - 800c69e: 68fb ldr r3, [r7, #12] - 800c6a0: f9b3 3016 ldrsh.w r3, [r3, #22] - 800c6a4: b29a uxth r2, r3 - 800c6a6: 8ebb ldrh r3, [r7, #52] ; 0x34 - 800c6a8: 4413 add r3, r2 - 800c6aa: b29b uxth r3, r3 - 800c6ac: b21a sxth r2, r3 - 800c6ae: 687b ldr r3, [r7, #4] - 800c6b0: 805a strh r2, [r3, #2] + 800c632: 68fb ldr r3, [r7, #12] + 800c634: f9b3 3016 ldrsh.w r3, [r3, #22] + 800c638: b29a uxth r2, r3 + 800c63a: 8ebb ldrh r3, [r7, #52] ; 0x34 + 800c63c: 4413 add r3, r2 + 800c63e: b29b uxth r3, r3 + 800c640: b21a sxth r2, r3 + 800c642: 687b ldr r3, [r7, #4] + 800c644: 805a strh r2, [r3, #2] ver_area->y2 = obj->coords.y2 - bottom_space - hor_req_space - 1; - 800c6b2: 68fb ldr r3, [r7, #12] - 800c6b4: f9b3 301a ldrsh.w r3, [r3, #26] - 800c6b8: b29a uxth r2, r3 - 800c6ba: 8e7b ldrh r3, [r7, #50] ; 0x32 - 800c6bc: 1ad3 subs r3, r2, r3 - 800c6be: b29a uxth r2, r3 - 800c6c0: 8cbb ldrh r3, [r7, #36] ; 0x24 - 800c6c2: 1ad3 subs r3, r2, r3 - 800c6c4: b29b uxth r3, r3 - 800c6c6: 3b01 subs r3, #1 - 800c6c8: b29b uxth r3, r3 - 800c6ca: b21a sxth r2, r3 - 800c6cc: 687b ldr r3, [r7, #4] - 800c6ce: 80da strh r2, [r3, #6] - 800c6d0: e0fa b.n 800c8c8 + 800c646: 68fb ldr r3, [r7, #12] + 800c648: f9b3 301a ldrsh.w r3, [r3, #26] + 800c64c: b29a uxth r2, r3 + 800c64e: 8e7b ldrh r3, [r7, #50] ; 0x32 + 800c650: 1ad3 subs r3, r2, r3 + 800c652: b29a uxth r2, r3 + 800c654: 8cbb ldrh r3, [r7, #36] ; 0x24 + 800c656: 1ad3 subs r3, r2, r3 + 800c658: b29b uxth r3, r3 + 800c65a: 3b01 subs r3, #1 + 800c65c: b29b uxth r3, r3 + 800c65e: b21a sxth r2, r3 + 800c660: 687b ldr r3, [r7, #4] + 800c662: 80da strh r2, [r3, #6] + 800c664: e0fa b.n 800c85c } else { lv_coord_t sb_y = (rem * sb) / scroll_h; - 800c6d2: f9b7 301e ldrsh.w r3, [r7, #30] - 800c6d6: f9b7 203c ldrsh.w r2, [r7, #60] ; 0x3c - 800c6da: fb03 f202 mul.w r2, r3, r2 - 800c6de: f9b7 301c ldrsh.w r3, [r7, #28] - 800c6e2: fb92 f3f3 sdiv r3, r2, r3 - 800c6e6: 837b strh r3, [r7, #26] + 800c666: f9b7 301e ldrsh.w r3, [r7, #30] + 800c66a: f9b7 203c ldrsh.w r2, [r7, #60] ; 0x3c + 800c66e: fb03 f202 mul.w r2, r3, r2 + 800c672: f9b7 301c ldrsh.w r3, [r7, #28] + 800c676: fb92 f3f3 sdiv r3, r2, r3 + 800c67a: 837b strh r3, [r7, #26] sb_y = rem - sb_y; - 800c6e8: 8bfa ldrh r2, [r7, #30] - 800c6ea: 8b7b ldrh r3, [r7, #26] - 800c6ec: 1ad3 subs r3, r2, r3 - 800c6ee: b29b uxth r3, r3 - 800c6f0: 837b strh r3, [r7, #26] + 800c67c: 8bfa ldrh r2, [r7, #30] + 800c67e: 8b7b ldrh r3, [r7, #26] + 800c680: 1ad3 subs r3, r2, r3 + 800c682: b29b uxth r3, r3 + 800c684: 837b strh r3, [r7, #26] ver_area->y1 = obj->coords.y1 + sb_y + top_space; - 800c6f2: 68fb ldr r3, [r7, #12] - 800c6f4: f9b3 3016 ldrsh.w r3, [r3, #22] - 800c6f8: b29a uxth r2, r3 - 800c6fa: 8b7b ldrh r3, [r7, #26] - 800c6fc: 4413 add r3, r2 - 800c6fe: b29a uxth r2, r3 - 800c700: 8ebb ldrh r3, [r7, #52] ; 0x34 - 800c702: 4413 add r3, r2 - 800c704: b29b uxth r3, r3 - 800c706: b21a sxth r2, r3 - 800c708: 687b ldr r3, [r7, #4] - 800c70a: 805a strh r2, [r3, #2] + 800c686: 68fb ldr r3, [r7, #12] + 800c688: f9b3 3016 ldrsh.w r3, [r3, #22] + 800c68c: b29a uxth r2, r3 + 800c68e: 8b7b ldrh r3, [r7, #26] + 800c690: 4413 add r3, r2 + 800c692: b29a uxth r2, r3 + 800c694: 8ebb ldrh r3, [r7, #52] ; 0x34 + 800c696: 4413 add r3, r2 + 800c698: b29b uxth r3, r3 + 800c69a: b21a sxth r2, r3 + 800c69c: 687b ldr r3, [r7, #4] + 800c69e: 805a strh r2, [r3, #2] ver_area->y2 = ver_area->y1 + sb_h - 1; - 800c70c: 687b ldr r3, [r7, #4] - 800c70e: f9b3 3002 ldrsh.w r3, [r3, #2] - 800c712: b29a uxth r2, r3 - 800c714: 8c3b ldrh r3, [r7, #32] - 800c716: 4413 add r3, r2 - 800c718: b29b uxth r3, r3 - 800c71a: 3b01 subs r3, #1 - 800c71c: b29b uxth r3, r3 - 800c71e: b21a sxth r2, r3 - 800c720: 687b ldr r3, [r7, #4] - 800c722: 80da strh r2, [r3, #6] + 800c6a0: 687b ldr r3, [r7, #4] + 800c6a2: f9b3 3002 ldrsh.w r3, [r3, #2] + 800c6a6: b29a uxth r2, r3 + 800c6a8: 8c3b ldrh r3, [r7, #32] + 800c6aa: 4413 add r3, r2 + 800c6ac: b29b uxth r3, r3 + 800c6ae: 3b01 subs r3, #1 + 800c6b0: b29b uxth r3, r3 + 800c6b2: b21a sxth r2, r3 + 800c6b4: 687b ldr r3, [r7, #4] + 800c6b6: 80da strh r2, [r3, #6] if(ver_area->y1 < obj->coords.y1 + top_space) { - 800c724: 687b ldr r3, [r7, #4] - 800c726: f9b3 3002 ldrsh.w r3, [r3, #2] - 800c72a: 461a mov r2, r3 - 800c72c: 68fb ldr r3, [r7, #12] - 800c72e: f9b3 3016 ldrsh.w r3, [r3, #22] - 800c732: 4619 mov r1, r3 - 800c734: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 800c738: 440b add r3, r1 - 800c73a: 429a cmp r2, r3 - 800c73c: da57 bge.n 800c7ee + 800c6b8: 687b ldr r3, [r7, #4] + 800c6ba: f9b3 3002 ldrsh.w r3, [r3, #2] + 800c6be: 461a mov r2, r3 + 800c6c0: 68fb ldr r3, [r7, #12] + 800c6c2: f9b3 3016 ldrsh.w r3, [r3, #22] + 800c6c6: 4619 mov r1, r3 + 800c6c8: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 800c6cc: 440b add r3, r1 + 800c6ce: 429a cmp r2, r3 + 800c6d0: da57 bge.n 800c782 ver_area->y1 = obj->coords.y1 + top_space; - 800c73e: 68fb ldr r3, [r7, #12] - 800c740: f9b3 3016 ldrsh.w r3, [r3, #22] - 800c744: b29a uxth r2, r3 - 800c746: 8ebb ldrh r3, [r7, #52] ; 0x34 - 800c748: 4413 add r3, r2 - 800c74a: b29b uxth r3, r3 - 800c74c: b21a sxth r2, r3 - 800c74e: 687b ldr r3, [r7, #4] - 800c750: 805a strh r2, [r3, #2] + 800c6d2: 68fb ldr r3, [r7, #12] + 800c6d4: f9b3 3016 ldrsh.w r3, [r3, #22] + 800c6d8: b29a uxth r2, r3 + 800c6da: 8ebb ldrh r3, [r7, #52] ; 0x34 + 800c6dc: 4413 add r3, r2 + 800c6de: b29b uxth r3, r3 + 800c6e0: b21a sxth r2, r3 + 800c6e2: 687b ldr r3, [r7, #4] + 800c6e4: 805a strh r2, [r3, #2] if(ver_area->y1 + SCROLLBAR_MIN_SIZE > ver_area->y2) { - 800c752: 687b ldr r3, [r7, #4] - 800c754: f9b3 3002 ldrsh.w r3, [r3, #2] - 800c758: 461c mov r4, r3 - 800c75a: 2000 movs r0, #0 - 800c75c: f023 ff0c bl 8030578 - 800c760: 4603 mov r3, r0 - 800c762: 461a mov r2, r3 - 800c764: 4613 mov r3, r2 - 800c766: 009b lsls r3, r3, #2 - 800c768: 4413 add r3, r2 - 800c76a: 005b lsls r3, r3, #1 - 800c76c: 2bef cmp r3, #239 ; 0xef - 800c76e: dd10 ble.n 800c792 - 800c770: 2000 movs r0, #0 - 800c772: f023 ff01 bl 8030578 - 800c776: 4603 mov r3, r0 - 800c778: 461a mov r2, r3 - 800c77a: 4613 mov r3, r2 - 800c77c: 009b lsls r3, r3, #2 - 800c77e: 4413 add r3, r2 - 800c780: 005b lsls r3, r3, #1 - 800c782: 3350 adds r3, #80 ; 0x50 - 800c784: 4a4c ldr r2, [pc, #304] ; (800c8b8 ) - 800c786: fb82 1203 smull r1, r2, r2, r3 - 800c78a: 1192 asrs r2, r2, #6 - 800c78c: 17db asrs r3, r3, #31 - 800c78e: 1ad3 subs r3, r2, r3 - 800c790: e000 b.n 800c794 - 800c792: 2301 movs r3, #1 - 800c794: 4423 add r3, r4 - 800c796: 687a ldr r2, [r7, #4] - 800c798: f9b2 2006 ldrsh.w r2, [r2, #6] - 800c79c: 4293 cmp r3, r2 - 800c79e: dd26 ble.n 800c7ee + 800c6e6: 687b ldr r3, [r7, #4] + 800c6e8: f9b3 3002 ldrsh.w r3, [r3, #2] + 800c6ec: 461c mov r4, r3 + 800c6ee: 2000 movs r0, #0 + 800c6f0: f023 fef8 bl 80304e4 + 800c6f4: 4603 mov r3, r0 + 800c6f6: 461a mov r2, r3 + 800c6f8: 4613 mov r3, r2 + 800c6fa: 009b lsls r3, r3, #2 + 800c6fc: 4413 add r3, r2 + 800c6fe: 005b lsls r3, r3, #1 + 800c700: 2bef cmp r3, #239 ; 0xef + 800c702: dd10 ble.n 800c726 + 800c704: 2000 movs r0, #0 + 800c706: f023 feed bl 80304e4 + 800c70a: 4603 mov r3, r0 + 800c70c: 461a mov r2, r3 + 800c70e: 4613 mov r3, r2 + 800c710: 009b lsls r3, r3, #2 + 800c712: 4413 add r3, r2 + 800c714: 005b lsls r3, r3, #1 + 800c716: 3350 adds r3, #80 ; 0x50 + 800c718: 4a4c ldr r2, [pc, #304] ; (800c84c ) + 800c71a: fb82 1203 smull r1, r2, r2, r3 + 800c71e: 1192 asrs r2, r2, #6 + 800c720: 17db asrs r3, r3, #31 + 800c722: 1ad3 subs r3, r2, r3 + 800c724: e000 b.n 800c728 + 800c726: 2301 movs r3, #1 + 800c728: 4423 add r3, r4 + 800c72a: 687a ldr r2, [r7, #4] + 800c72c: f9b2 2006 ldrsh.w r2, [r2, #6] + 800c730: 4293 cmp r3, r2 + 800c732: dd26 ble.n 800c782 ver_area->y2 = ver_area->y1 + SCROLLBAR_MIN_SIZE; - 800c7a0: 687b ldr r3, [r7, #4] - 800c7a2: f9b3 3002 ldrsh.w r3, [r3, #2] - 800c7a6: b29c uxth r4, r3 - 800c7a8: 2000 movs r0, #0 - 800c7aa: f023 fee5 bl 8030578 - 800c7ae: 4603 mov r3, r0 - 800c7b0: 461a mov r2, r3 - 800c7b2: 4613 mov r3, r2 - 800c7b4: 009b lsls r3, r3, #2 - 800c7b6: 4413 add r3, r2 - 800c7b8: 005b lsls r3, r3, #1 - 800c7ba: 2bef cmp r3, #239 ; 0xef - 800c7bc: dd11 ble.n 800c7e2 - 800c7be: 2000 movs r0, #0 - 800c7c0: f023 feda bl 8030578 - 800c7c4: 4603 mov r3, r0 - 800c7c6: 461a mov r2, r3 - 800c7c8: 4613 mov r3, r2 - 800c7ca: 009b lsls r3, r3, #2 - 800c7cc: 4413 add r3, r2 - 800c7ce: 005b lsls r3, r3, #1 - 800c7d0: 3350 adds r3, #80 ; 0x50 - 800c7d2: 4a39 ldr r2, [pc, #228] ; (800c8b8 ) - 800c7d4: fb82 1203 smull r1, r2, r2, r3 - 800c7d8: 1192 asrs r2, r2, #6 - 800c7da: 17db asrs r3, r3, #31 - 800c7dc: 1ad3 subs r3, r2, r3 - 800c7de: b29b uxth r3, r3 - 800c7e0: e000 b.n 800c7e4 - 800c7e2: 2301 movs r3, #1 - 800c7e4: 4423 add r3, r4 - 800c7e6: b29b uxth r3, r3 - 800c7e8: b21a sxth r2, r3 - 800c7ea: 687b ldr r3, [r7, #4] - 800c7ec: 80da strh r2, [r3, #6] + 800c734: 687b ldr r3, [r7, #4] + 800c736: f9b3 3002 ldrsh.w r3, [r3, #2] + 800c73a: b29c uxth r4, r3 + 800c73c: 2000 movs r0, #0 + 800c73e: f023 fed1 bl 80304e4 + 800c742: 4603 mov r3, r0 + 800c744: 461a mov r2, r3 + 800c746: 4613 mov r3, r2 + 800c748: 009b lsls r3, r3, #2 + 800c74a: 4413 add r3, r2 + 800c74c: 005b lsls r3, r3, #1 + 800c74e: 2bef cmp r3, #239 ; 0xef + 800c750: dd11 ble.n 800c776 + 800c752: 2000 movs r0, #0 + 800c754: f023 fec6 bl 80304e4 + 800c758: 4603 mov r3, r0 + 800c75a: 461a mov r2, r3 + 800c75c: 4613 mov r3, r2 + 800c75e: 009b lsls r3, r3, #2 + 800c760: 4413 add r3, r2 + 800c762: 005b lsls r3, r3, #1 + 800c764: 3350 adds r3, #80 ; 0x50 + 800c766: 4a39 ldr r2, [pc, #228] ; (800c84c ) + 800c768: fb82 1203 smull r1, r2, r2, r3 + 800c76c: 1192 asrs r2, r2, #6 + 800c76e: 17db asrs r3, r3, #31 + 800c770: 1ad3 subs r3, r2, r3 + 800c772: b29b uxth r3, r3 + 800c774: e000 b.n 800c778 + 800c776: 2301 movs r3, #1 + 800c778: 4423 add r3, r4 + 800c77a: b29b uxth r3, r3 + 800c77c: b21a sxth r2, r3 + 800c77e: 687b ldr r3, [r7, #4] + 800c780: 80da strh r2, [r3, #6] } } if(ver_area->y2 > obj->coords.y2 - hor_req_space - bottom_space) { - 800c7ee: 687b ldr r3, [r7, #4] - 800c7f0: f9b3 3006 ldrsh.w r3, [r3, #6] - 800c7f4: 4619 mov r1, r3 - 800c7f6: 68fb ldr r3, [r7, #12] - 800c7f8: f9b3 301a ldrsh.w r3, [r3, #26] - 800c7fc: 461a mov r2, r3 - 800c7fe: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 - 800c802: 1ad2 subs r2, r2, r3 - 800c804: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 800c808: 1ad3 subs r3, r2, r3 - 800c80a: 4299 cmp r1, r3 - 800c80c: dd5c ble.n 800c8c8 + 800c782: 687b ldr r3, [r7, #4] + 800c784: f9b3 3006 ldrsh.w r3, [r3, #6] + 800c788: 4619 mov r1, r3 + 800c78a: 68fb ldr r3, [r7, #12] + 800c78c: f9b3 301a ldrsh.w r3, [r3, #26] + 800c790: 461a mov r2, r3 + 800c792: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 + 800c796: 1ad2 subs r2, r2, r3 + 800c798: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 800c79c: 1ad3 subs r3, r2, r3 + 800c79e: 4299 cmp r1, r3 + 800c7a0: dd5c ble.n 800c85c ver_area->y2 = obj->coords.y2 - hor_req_space - bottom_space; - 800c80e: 68fb ldr r3, [r7, #12] - 800c810: f9b3 301a ldrsh.w r3, [r3, #26] - 800c814: b29a uxth r2, r3 - 800c816: 8cbb ldrh r3, [r7, #36] ; 0x24 - 800c818: 1ad3 subs r3, r2, r3 - 800c81a: b29a uxth r2, r3 - 800c81c: 8e7b ldrh r3, [r7, #50] ; 0x32 - 800c81e: 1ad3 subs r3, r2, r3 - 800c820: b29b uxth r3, r3 - 800c822: b21a sxth r2, r3 - 800c824: 687b ldr r3, [r7, #4] - 800c826: 80da strh r2, [r3, #6] + 800c7a2: 68fb ldr r3, [r7, #12] + 800c7a4: f9b3 301a ldrsh.w r3, [r3, #26] + 800c7a8: b29a uxth r2, r3 + 800c7aa: 8cbb ldrh r3, [r7, #36] ; 0x24 + 800c7ac: 1ad3 subs r3, r2, r3 + 800c7ae: b29a uxth r2, r3 + 800c7b0: 8e7b ldrh r3, [r7, #50] ; 0x32 + 800c7b2: 1ad3 subs r3, r2, r3 + 800c7b4: b29b uxth r3, r3 + 800c7b6: b21a sxth r2, r3 + 800c7b8: 687b ldr r3, [r7, #4] + 800c7ba: 80da strh r2, [r3, #6] if(ver_area->y2 - SCROLLBAR_MIN_SIZE < ver_area->y1) { - 800c828: 687b ldr r3, [r7, #4] - 800c82a: f9b3 3006 ldrsh.w r3, [r3, #6] - 800c82e: 461c mov r4, r3 - 800c830: 2000 movs r0, #0 - 800c832: f023 fea1 bl 8030578 - 800c836: 4603 mov r3, r0 - 800c838: 461a mov r2, r3 - 800c83a: 4613 mov r3, r2 - 800c83c: 009b lsls r3, r3, #2 - 800c83e: 4413 add r3, r2 - 800c840: 005b lsls r3, r3, #1 - 800c842: 2bef cmp r3, #239 ; 0xef - 800c844: dd10 ble.n 800c868 - 800c846: 2000 movs r0, #0 - 800c848: f023 fe96 bl 8030578 - 800c84c: 4603 mov r3, r0 - 800c84e: 461a mov r2, r3 - 800c850: 4613 mov r3, r2 - 800c852: 009b lsls r3, r3, #2 - 800c854: 4413 add r3, r2 - 800c856: 005b lsls r3, r3, #1 - 800c858: 3350 adds r3, #80 ; 0x50 - 800c85a: 4a17 ldr r2, [pc, #92] ; (800c8b8 ) - 800c85c: fb82 1203 smull r1, r2, r2, r3 - 800c860: 1192 asrs r2, r2, #6 - 800c862: 17db asrs r3, r3, #31 - 800c864: 1ad3 subs r3, r2, r3 - 800c866: e000 b.n 800c86a - 800c868: 2301 movs r3, #1 - 800c86a: 1ae3 subs r3, r4, r3 - 800c86c: 687a ldr r2, [r7, #4] - 800c86e: f9b2 2002 ldrsh.w r2, [r2, #2] - 800c872: 4293 cmp r3, r2 - 800c874: da28 bge.n 800c8c8 + 800c7bc: 687b ldr r3, [r7, #4] + 800c7be: f9b3 3006 ldrsh.w r3, [r3, #6] + 800c7c2: 461c mov r4, r3 + 800c7c4: 2000 movs r0, #0 + 800c7c6: f023 fe8d bl 80304e4 + 800c7ca: 4603 mov r3, r0 + 800c7cc: 461a mov r2, r3 + 800c7ce: 4613 mov r3, r2 + 800c7d0: 009b lsls r3, r3, #2 + 800c7d2: 4413 add r3, r2 + 800c7d4: 005b lsls r3, r3, #1 + 800c7d6: 2bef cmp r3, #239 ; 0xef + 800c7d8: dd10 ble.n 800c7fc + 800c7da: 2000 movs r0, #0 + 800c7dc: f023 fe82 bl 80304e4 + 800c7e0: 4603 mov r3, r0 + 800c7e2: 461a mov r2, r3 + 800c7e4: 4613 mov r3, r2 + 800c7e6: 009b lsls r3, r3, #2 + 800c7e8: 4413 add r3, r2 + 800c7ea: 005b lsls r3, r3, #1 + 800c7ec: 3350 adds r3, #80 ; 0x50 + 800c7ee: 4a17 ldr r2, [pc, #92] ; (800c84c ) + 800c7f0: fb82 1203 smull r1, r2, r2, r3 + 800c7f4: 1192 asrs r2, r2, #6 + 800c7f6: 17db asrs r3, r3, #31 + 800c7f8: 1ad3 subs r3, r2, r3 + 800c7fa: e000 b.n 800c7fe + 800c7fc: 2301 movs r3, #1 + 800c7fe: 1ae3 subs r3, r4, r3 + 800c800: 687a ldr r2, [r7, #4] + 800c802: f9b2 2002 ldrsh.w r2, [r2, #2] + 800c806: 4293 cmp r3, r2 + 800c808: da28 bge.n 800c85c ver_area->y1 = ver_area->y2 - SCROLLBAR_MIN_SIZE; - 800c876: 687b ldr r3, [r7, #4] - 800c878: f9b3 3006 ldrsh.w r3, [r3, #6] - 800c87c: b29c uxth r4, r3 - 800c87e: 2000 movs r0, #0 - 800c880: f023 fe7a bl 8030578 - 800c884: 4603 mov r3, r0 - 800c886: 461a mov r2, r3 - 800c888: 4613 mov r3, r2 - 800c88a: 009b lsls r3, r3, #2 - 800c88c: 4413 add r3, r2 - 800c88e: 005b lsls r3, r3, #1 - 800c890: 2bef cmp r3, #239 ; 0xef - 800c892: dd13 ble.n 800c8bc - 800c894: 2000 movs r0, #0 - 800c896: f023 fe6f bl 8030578 - 800c89a: 4603 mov r3, r0 - 800c89c: 461a mov r2, r3 - 800c89e: 4613 mov r3, r2 - 800c8a0: 009b lsls r3, r3, #2 - 800c8a2: 4413 add r3, r2 - 800c8a4: 005b lsls r3, r3, #1 - 800c8a6: 3350 adds r3, #80 ; 0x50 - 800c8a8: 4a03 ldr r2, [pc, #12] ; (800c8b8 ) - 800c8aa: fb82 1203 smull r1, r2, r2, r3 - 800c8ae: 1192 asrs r2, r2, #6 - 800c8b0: 17db asrs r3, r3, #31 - 800c8b2: 1ad3 subs r3, r2, r3 - 800c8b4: b29b uxth r3, r3 - 800c8b6: e002 b.n 800c8be - 800c8b8: 66666667 .word 0x66666667 - 800c8bc: 2301 movs r3, #1 - 800c8be: 1ae3 subs r3, r4, r3 - 800c8c0: b29b uxth r3, r3 - 800c8c2: b21a sxth r2, r3 - 800c8c4: 687b ldr r3, [r7, #4] - 800c8c6: 805a strh r2, [r3, #2] + 800c80a: 687b ldr r3, [r7, #4] + 800c80c: f9b3 3006 ldrsh.w r3, [r3, #6] + 800c810: b29c uxth r4, r3 + 800c812: 2000 movs r0, #0 + 800c814: f023 fe66 bl 80304e4 + 800c818: 4603 mov r3, r0 + 800c81a: 461a mov r2, r3 + 800c81c: 4613 mov r3, r2 + 800c81e: 009b lsls r3, r3, #2 + 800c820: 4413 add r3, r2 + 800c822: 005b lsls r3, r3, #1 + 800c824: 2bef cmp r3, #239 ; 0xef + 800c826: dd13 ble.n 800c850 + 800c828: 2000 movs r0, #0 + 800c82a: f023 fe5b bl 80304e4 + 800c82e: 4603 mov r3, r0 + 800c830: 461a mov r2, r3 + 800c832: 4613 mov r3, r2 + 800c834: 009b lsls r3, r3, #2 + 800c836: 4413 add r3, r2 + 800c838: 005b lsls r3, r3, #1 + 800c83a: 3350 adds r3, #80 ; 0x50 + 800c83c: 4a03 ldr r2, [pc, #12] ; (800c84c ) + 800c83e: fb82 1203 smull r1, r2, r2, r3 + 800c842: 1192 asrs r2, r2, #6 + 800c844: 17db asrs r3, r3, #31 + 800c846: 1ad3 subs r3, r2, r3 + 800c848: b29b uxth r3, r3 + 800c84a: e002 b.n 800c852 + 800c84c: 66666667 .word 0x66666667 + 800c850: 2301 movs r3, #1 + 800c852: 1ae3 subs r3, r4, r3 + 800c854: b29b uxth r3, r3 + 800c856: b21a sxth r2, r3 + 800c858: 687b ldr r3, [r7, #4] + 800c85a: 805a strh r2, [r3, #2] } } } /*Draw horizontal scrollbar if the mode is ON or can be scrolled in this direction*/ lv_coord_t content_w = obj_w + sl + sr; - 800c8c8: 8d3a ldrh r2, [r7, #40] ; 0x28 - 800c8ca: 8f7b ldrh r3, [r7, #58] ; 0x3a - 800c8cc: 4413 add r3, r2 - 800c8ce: b29a uxth r2, r3 - 800c8d0: 8f3b ldrh r3, [r7, #56] ; 0x38 - 800c8d2: 4413 add r3, r2 - 800c8d4: b29b uxth r3, r3 - 800c8d6: 833b strh r3, [r7, #24] + 800c85c: 8d3a ldrh r2, [r7, #40] ; 0x28 + 800c85e: 8f7b ldrh r3, [r7, #58] ; 0x3a + 800c860: 4413 add r3, r2 + 800c862: b29a uxth r2, r3 + 800c864: 8f3b ldrh r3, [r7, #56] ; 0x38 + 800c866: 4413 add r3, r2 + 800c868: b29b uxth r3, r3 + 800c86a: 833b strh r3, [r7, #24] if(hor_draw && content_w) { - 800c8d8: f897 3042 ldrb.w r3, [r7, #66] ; 0x42 - 800c8dc: 2b00 cmp r3, #0 - 800c8de: f000 82c4 beq.w 800ce6a - 800c8e2: f9b7 3018 ldrsh.w r3, [r7, #24] - 800c8e6: 2b00 cmp r3, #0 - 800c8e8: f000 82bf beq.w 800ce6a + 800c86c: f897 3042 ldrb.w r3, [r7, #66] ; 0x42 + 800c870: 2b00 cmp r3, #0 + 800c872: f000 82c4 beq.w 800cdfe + 800c876: f9b7 3018 ldrsh.w r3, [r7, #24] + 800c87a: 2b00 cmp r3, #0 + 800c87c: f000 82bf beq.w 800cdfe hor_area->y2 = obj->coords.y2 - bottom_space; - 800c8ec: 68fb ldr r3, [r7, #12] - 800c8ee: f9b3 301a ldrsh.w r3, [r3, #26] - 800c8f2: b29a uxth r2, r3 - 800c8f4: 8e7b ldrh r3, [r7, #50] ; 0x32 - 800c8f6: 1ad3 subs r3, r2, r3 - 800c8f8: b29b uxth r3, r3 - 800c8fa: b21a sxth r2, r3 - 800c8fc: 68bb ldr r3, [r7, #8] - 800c8fe: 80da strh r2, [r3, #6] + 800c880: 68fb ldr r3, [r7, #12] + 800c882: f9b3 301a ldrsh.w r3, [r3, #26] + 800c886: b29a uxth r2, r3 + 800c888: 8e7b ldrh r3, [r7, #50] ; 0x32 + 800c88a: 1ad3 subs r3, r2, r3 + 800c88c: b29b uxth r3, r3 + 800c88e: b21a sxth r2, r3 + 800c890: 68bb ldr r3, [r7, #8] + 800c892: 80da strh r2, [r3, #6] hor_area->y1 = hor_area->y2 - tickness + 1; - 800c900: 68bb ldr r3, [r7, #8] - 800c902: f9b3 3006 ldrsh.w r3, [r3, #6] - 800c906: b29a uxth r2, r3 - 800c908: 8dbb ldrh r3, [r7, #44] ; 0x2c - 800c90a: 1ad3 subs r3, r2, r3 - 800c90c: b29b uxth r3, r3 - 800c90e: 3301 adds r3, #1 - 800c910: b29b uxth r3, r3 - 800c912: b21a sxth r2, r3 - 800c914: 68bb ldr r3, [r7, #8] - 800c916: 805a strh r2, [r3, #2] + 800c894: 68bb ldr r3, [r7, #8] + 800c896: f9b3 3006 ldrsh.w r3, [r3, #6] + 800c89a: b29a uxth r2, r3 + 800c89c: 8dbb ldrh r3, [r7, #44] ; 0x2c + 800c89e: 1ad3 subs r3, r2, r3 + 800c8a0: b29b uxth r3, r3 + 800c8a2: 3301 adds r3, #1 + 800c8a4: b29b uxth r3, r3 + 800c8a6: b21a sxth r2, r3 + 800c8a8: 68bb ldr r3, [r7, #8] + 800c8aa: 805a strh r2, [r3, #2] hor_area->x1 = obj->coords.x1; - 800c918: 68fb ldr r3, [r7, #12] - 800c91a: f9b3 2014 ldrsh.w r2, [r3, #20] - 800c91e: 68bb ldr r3, [r7, #8] - 800c920: 801a strh r2, [r3, #0] + 800c8ac: 68fb ldr r3, [r7, #12] + 800c8ae: f9b3 2014 ldrsh.w r2, [r3, #20] + 800c8b2: 68bb ldr r3, [r7, #8] + 800c8b4: 801a strh r2, [r3, #0] hor_area->x2 = obj->coords.x2; - 800c922: 68fb ldr r3, [r7, #12] - 800c924: f9b3 2018 ldrsh.w r2, [r3, #24] - 800c928: 68bb ldr r3, [r7, #8] - 800c92a: 809a strh r2, [r3, #4] + 800c8b6: 68fb ldr r3, [r7, #12] + 800c8b8: f9b3 2018 ldrsh.w r2, [r3, #24] + 800c8bc: 68bb ldr r3, [r7, #8] + 800c8be: 809a strh r2, [r3, #4] lv_coord_t sb_w = ((obj_w - left_space - right_space - ver_reg_space) * obj_w) / content_w; - 800c92c: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 - 800c930: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 800c934: 1ad2 subs r2, r2, r3 - 800c936: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 800c93a: 1ad2 subs r2, r2, r3 - 800c93c: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 800c940: 1ad3 subs r3, r2, r3 - 800c942: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 - 800c946: fb03 f202 mul.w r2, r3, r2 - 800c94a: f9b7 3018 ldrsh.w r3, [r7, #24] - 800c94e: fb92 f3f3 sdiv r3, r2, r3 - 800c952: 82fb strh r3, [r7, #22] + 800c8c0: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 + 800c8c4: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 800c8c8: 1ad2 subs r2, r2, r3 + 800c8ca: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 800c8ce: 1ad2 subs r2, r2, r3 + 800c8d0: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 800c8d4: 1ad3 subs r3, r2, r3 + 800c8d6: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 + 800c8da: fb03 f202 mul.w r2, r3, r2 + 800c8de: f9b7 3018 ldrsh.w r3, [r7, #24] + 800c8e2: fb92 f3f3 sdiv r3, r2, r3 + 800c8e6: 82fb strh r3, [r7, #22] sb_w = LV_MAX(sb_w, SCROLLBAR_MIN_SIZE); - 800c954: f9b7 4016 ldrsh.w r4, [r7, #22] - 800c958: 2000 movs r0, #0 - 800c95a: f023 fe0d bl 8030578 - 800c95e: 4603 mov r3, r0 - 800c960: 461a mov r2, r3 - 800c962: 4613 mov r3, r2 - 800c964: 009b lsls r3, r3, #2 - 800c966: 4413 add r3, r2 - 800c968: 005b lsls r3, r3, #1 - 800c96a: 2bef cmp r3, #239 ; 0xef - 800c96c: dd10 ble.n 800c990 - 800c96e: 2000 movs r0, #0 - 800c970: f023 fe02 bl 8030578 - 800c974: 4603 mov r3, r0 - 800c976: 461a mov r2, r3 - 800c978: 4613 mov r3, r2 - 800c97a: 009b lsls r3, r3, #2 - 800c97c: 4413 add r3, r2 - 800c97e: 005b lsls r3, r3, #1 - 800c980: 3350 adds r3, #80 ; 0x50 - 800c982: 4aa7 ldr r2, [pc, #668] ; (800cc20 ) - 800c984: fb82 1203 smull r1, r2, r2, r3 - 800c988: 1192 asrs r2, r2, #6 - 800c98a: 17db asrs r3, r3, #31 - 800c98c: 1ad3 subs r3, r2, r3 - 800c98e: e000 b.n 800c992 - 800c990: 2301 movs r3, #1 - 800c992: 42a3 cmp r3, r4 - 800c994: db1e blt.n 800c9d4 - 800c996: 2000 movs r0, #0 - 800c998: f023 fdee bl 8030578 - 800c99c: 4603 mov r3, r0 - 800c99e: 461a mov r2, r3 - 800c9a0: 4613 mov r3, r2 - 800c9a2: 009b lsls r3, r3, #2 - 800c9a4: 4413 add r3, r2 - 800c9a6: 005b lsls r3, r3, #1 - 800c9a8: 2bef cmp r3, #239 ; 0xef - 800c9aa: dd11 ble.n 800c9d0 - 800c9ac: 2000 movs r0, #0 - 800c9ae: f023 fde3 bl 8030578 - 800c9b2: 4603 mov r3, r0 - 800c9b4: 461a mov r2, r3 - 800c9b6: 4613 mov r3, r2 - 800c9b8: 009b lsls r3, r3, #2 - 800c9ba: 4413 add r3, r2 - 800c9bc: 005b lsls r3, r3, #1 - 800c9be: 3350 adds r3, #80 ; 0x50 - 800c9c0: 4a97 ldr r2, [pc, #604] ; (800cc20 ) - 800c9c2: fb82 1203 smull r1, r2, r2, r3 - 800c9c6: 1192 asrs r2, r2, #6 - 800c9c8: 17db asrs r3, r3, #31 - 800c9ca: 1ad3 subs r3, r2, r3 - 800c9cc: b21b sxth r3, r3 - 800c9ce: e003 b.n 800c9d8 - 800c9d0: 2301 movs r3, #1 - 800c9d2: e001 b.n 800c9d8 - 800c9d4: f9b7 3016 ldrsh.w r3, [r7, #22] - 800c9d8: 82fb strh r3, [r7, #22] + 800c8e8: f9b7 4016 ldrsh.w r4, [r7, #22] + 800c8ec: 2000 movs r0, #0 + 800c8ee: f023 fdf9 bl 80304e4 + 800c8f2: 4603 mov r3, r0 + 800c8f4: 461a mov r2, r3 + 800c8f6: 4613 mov r3, r2 + 800c8f8: 009b lsls r3, r3, #2 + 800c8fa: 4413 add r3, r2 + 800c8fc: 005b lsls r3, r3, #1 + 800c8fe: 2bef cmp r3, #239 ; 0xef + 800c900: dd10 ble.n 800c924 + 800c902: 2000 movs r0, #0 + 800c904: f023 fdee bl 80304e4 + 800c908: 4603 mov r3, r0 + 800c90a: 461a mov r2, r3 + 800c90c: 4613 mov r3, r2 + 800c90e: 009b lsls r3, r3, #2 + 800c910: 4413 add r3, r2 + 800c912: 005b lsls r3, r3, #1 + 800c914: 3350 adds r3, #80 ; 0x50 + 800c916: 4aa7 ldr r2, [pc, #668] ; (800cbb4 ) + 800c918: fb82 1203 smull r1, r2, r2, r3 + 800c91c: 1192 asrs r2, r2, #6 + 800c91e: 17db asrs r3, r3, #31 + 800c920: 1ad3 subs r3, r2, r3 + 800c922: e000 b.n 800c926 + 800c924: 2301 movs r3, #1 + 800c926: 42a3 cmp r3, r4 + 800c928: db1e blt.n 800c968 + 800c92a: 2000 movs r0, #0 + 800c92c: f023 fdda bl 80304e4 + 800c930: 4603 mov r3, r0 + 800c932: 461a mov r2, r3 + 800c934: 4613 mov r3, r2 + 800c936: 009b lsls r3, r3, #2 + 800c938: 4413 add r3, r2 + 800c93a: 005b lsls r3, r3, #1 + 800c93c: 2bef cmp r3, #239 ; 0xef + 800c93e: dd11 ble.n 800c964 + 800c940: 2000 movs r0, #0 + 800c942: f023 fdcf bl 80304e4 + 800c946: 4603 mov r3, r0 + 800c948: 461a mov r2, r3 + 800c94a: 4613 mov r3, r2 + 800c94c: 009b lsls r3, r3, #2 + 800c94e: 4413 add r3, r2 + 800c950: 005b lsls r3, r3, #1 + 800c952: 3350 adds r3, #80 ; 0x50 + 800c954: 4a97 ldr r2, [pc, #604] ; (800cbb4 ) + 800c956: fb82 1203 smull r1, r2, r2, r3 + 800c95a: 1192 asrs r2, r2, #6 + 800c95c: 17db asrs r3, r3, #31 + 800c95e: 1ad3 subs r3, r2, r3 + 800c960: b21b sxth r3, r3 + 800c962: e003 b.n 800c96c + 800c964: 2301 movs r3, #1 + 800c966: e001 b.n 800c96c + 800c968: f9b7 3016 ldrsh.w r3, [r7, #22] + 800c96c: 82fb strh r3, [r7, #22] rem = (obj_w - left_space - right_space - ver_reg_space) - - 800c9da: 8d3a ldrh r2, [r7, #40] ; 0x28 - 800c9dc: 8e3b ldrh r3, [r7, #48] ; 0x30 - 800c9de: 1ad3 subs r3, r2, r3 - 800c9e0: b29a uxth r2, r3 - 800c9e2: 8dfb ldrh r3, [r7, #46] ; 0x2e - 800c9e4: 1ad3 subs r3, r2, r3 - 800c9e6: b29a uxth r2, r3 - 800c9e8: 8cfb ldrh r3, [r7, #38] ; 0x26 - 800c9ea: 1ad3 subs r3, r2, r3 - 800c9ec: b29a uxth r2, r3 - 800c9ee: 8afb ldrh r3, [r7, #22] - 800c9f0: 1ad3 subs r3, r2, r3 - 800c9f2: b29b uxth r3, r3 - 800c9f4: 83fb strh r3, [r7, #30] + 800c96e: 8d3a ldrh r2, [r7, #40] ; 0x28 + 800c970: 8e3b ldrh r3, [r7, #48] ; 0x30 + 800c972: 1ad3 subs r3, r2, r3 + 800c974: b29a uxth r2, r3 + 800c976: 8dfb ldrh r3, [r7, #46] ; 0x2e + 800c978: 1ad3 subs r3, r2, r3 + 800c97a: b29a uxth r2, r3 + 800c97c: 8cfb ldrh r3, [r7, #38] ; 0x26 + 800c97e: 1ad3 subs r3, r2, r3 + 800c980: b29a uxth r2, r3 + 800c982: 8afb ldrh r3, [r7, #22] + 800c984: 1ad3 subs r3, r2, r3 + 800c986: b29b uxth r3, r3 + 800c988: 83fb strh r3, [r7, #30] sb_w; /*Remaining size from the scrollbar track that is not the scrollbar itself*/ lv_coord_t scroll_w = content_w - obj_w; /*The size of the content which can be really scrolled*/ - 800c9f6: 8b3a ldrh r2, [r7, #24] - 800c9f8: 8d3b ldrh r3, [r7, #40] ; 0x28 - 800c9fa: 1ad3 subs r3, r2, r3 - 800c9fc: b29b uxth r3, r3 - 800c9fe: 82bb strh r3, [r7, #20] + 800c98a: 8b3a ldrh r2, [r7, #24] + 800c98c: 8d3b ldrh r3, [r7, #40] ; 0x28 + 800c98e: 1ad3 subs r3, r2, r3 + 800c990: b29b uxth r3, r3 + 800c992: 82bb strh r3, [r7, #20] if(scroll_w <= 0) { - 800ca00: f9b7 3014 ldrsh.w r3, [r7, #20] - 800ca04: 2b00 cmp r3, #0 - 800ca06: dc37 bgt.n 800ca78 + 800c994: f9b7 3014 ldrsh.w r3, [r7, #20] + 800c998: 2b00 cmp r3, #0 + 800c99a: dc37 bgt.n 800ca0c if(rtl) { - 800ca08: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 - 800ca0c: 2b00 cmp r3, #0 - 800ca0e: d019 beq.n 800ca44 + 800c99c: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 + 800c9a0: 2b00 cmp r3, #0 + 800c9a2: d019 beq.n 800c9d8 hor_area->x1 = obj->coords.x1 + left_space + ver_reg_space - 1; - 800ca10: 68fb ldr r3, [r7, #12] - 800ca12: f9b3 3014 ldrsh.w r3, [r3, #20] - 800ca16: b29a uxth r2, r3 - 800ca18: 8e3b ldrh r3, [r7, #48] ; 0x30 - 800ca1a: 4413 add r3, r2 - 800ca1c: b29a uxth r2, r3 - 800ca1e: 8cfb ldrh r3, [r7, #38] ; 0x26 - 800ca20: 4413 add r3, r2 - 800ca22: b29b uxth r3, r3 - 800ca24: 3b01 subs r3, #1 - 800ca26: b29b uxth r3, r3 - 800ca28: b21a sxth r2, r3 - 800ca2a: 68bb ldr r3, [r7, #8] - 800ca2c: 801a strh r2, [r3, #0] + 800c9a4: 68fb ldr r3, [r7, #12] + 800c9a6: f9b3 3014 ldrsh.w r3, [r3, #20] + 800c9aa: b29a uxth r2, r3 + 800c9ac: 8e3b ldrh r3, [r7, #48] ; 0x30 + 800c9ae: 4413 add r3, r2 + 800c9b0: b29a uxth r2, r3 + 800c9b2: 8cfb ldrh r3, [r7, #38] ; 0x26 + 800c9b4: 4413 add r3, r2 + 800c9b6: b29b uxth r3, r3 + 800c9b8: 3b01 subs r3, #1 + 800c9ba: b29b uxth r3, r3 + 800c9bc: b21a sxth r2, r3 + 800c9be: 68bb ldr r3, [r7, #8] + 800c9c0: 801a strh r2, [r3, #0] hor_area->x2 = obj->coords.x2 - right_space; - 800ca2e: 68fb ldr r3, [r7, #12] - 800ca30: f9b3 3018 ldrsh.w r3, [r3, #24] - 800ca34: b29a uxth r2, r3 - 800ca36: 8dfb ldrh r3, [r7, #46] ; 0x2e - 800ca38: 1ad3 subs r3, r2, r3 - 800ca3a: b29b uxth r3, r3 - 800ca3c: b21a sxth r2, r3 - 800ca3e: 68bb ldr r3, [r7, #8] - 800ca40: 809a strh r2, [r3, #4] - 800ca42: e212 b.n 800ce6a + 800c9c2: 68fb ldr r3, [r7, #12] + 800c9c4: f9b3 3018 ldrsh.w r3, [r3, #24] + 800c9c8: b29a uxth r2, r3 + 800c9ca: 8dfb ldrh r3, [r7, #46] ; 0x2e + 800c9cc: 1ad3 subs r3, r2, r3 + 800c9ce: b29b uxth r3, r3 + 800c9d0: b21a sxth r2, r3 + 800c9d2: 68bb ldr r3, [r7, #8] + 800c9d4: 809a strh r2, [r3, #4] + 800c9d6: e212 b.n 800cdfe } else { hor_area->x1 = obj->coords.x1 + left_space; - 800ca44: 68fb ldr r3, [r7, #12] - 800ca46: f9b3 3014 ldrsh.w r3, [r3, #20] - 800ca4a: b29a uxth r2, r3 - 800ca4c: 8e3b ldrh r3, [r7, #48] ; 0x30 - 800ca4e: 4413 add r3, r2 - 800ca50: b29b uxth r3, r3 - 800ca52: b21a sxth r2, r3 - 800ca54: 68bb ldr r3, [r7, #8] - 800ca56: 801a strh r2, [r3, #0] + 800c9d8: 68fb ldr r3, [r7, #12] + 800c9da: f9b3 3014 ldrsh.w r3, [r3, #20] + 800c9de: b29a uxth r2, r3 + 800c9e0: 8e3b ldrh r3, [r7, #48] ; 0x30 + 800c9e2: 4413 add r3, r2 + 800c9e4: b29b uxth r3, r3 + 800c9e6: b21a sxth r2, r3 + 800c9e8: 68bb ldr r3, [r7, #8] + 800c9ea: 801a strh r2, [r3, #0] hor_area->x2 = obj->coords.x2 - right_space - ver_reg_space - 1; - 800ca58: 68fb ldr r3, [r7, #12] - 800ca5a: f9b3 3018 ldrsh.w r3, [r3, #24] - 800ca5e: b29a uxth r2, r3 - 800ca60: 8dfb ldrh r3, [r7, #46] ; 0x2e - 800ca62: 1ad3 subs r3, r2, r3 - 800ca64: b29a uxth r2, r3 - 800ca66: 8cfb ldrh r3, [r7, #38] ; 0x26 - 800ca68: 1ad3 subs r3, r2, r3 - 800ca6a: b29b uxth r3, r3 - 800ca6c: 3b01 subs r3, #1 - 800ca6e: b29b uxth r3, r3 - 800ca70: b21a sxth r2, r3 - 800ca72: 68bb ldr r3, [r7, #8] - 800ca74: 809a strh r2, [r3, #4] - 800ca76: e1f8 b.n 800ce6a + 800c9ec: 68fb ldr r3, [r7, #12] + 800c9ee: f9b3 3018 ldrsh.w r3, [r3, #24] + 800c9f2: b29a uxth r2, r3 + 800c9f4: 8dfb ldrh r3, [r7, #46] ; 0x2e + 800c9f6: 1ad3 subs r3, r2, r3 + 800c9f8: b29a uxth r2, r3 + 800c9fa: 8cfb ldrh r3, [r7, #38] ; 0x26 + 800c9fc: 1ad3 subs r3, r2, r3 + 800c9fe: b29b uxth r3, r3 + 800ca00: 3b01 subs r3, #1 + 800ca02: b29b uxth r3, r3 + 800ca04: b21a sxth r2, r3 + 800ca06: 68bb ldr r3, [r7, #8] + 800ca08: 809a strh r2, [r3, #4] + 800ca0a: e1f8 b.n 800cdfe } } else { lv_coord_t sb_x = (rem * sr) / scroll_w; - 800ca78: f9b7 301e ldrsh.w r3, [r7, #30] - 800ca7c: f9b7 2038 ldrsh.w r2, [r7, #56] ; 0x38 - 800ca80: fb03 f202 mul.w r2, r3, r2 - 800ca84: f9b7 3014 ldrsh.w r3, [r7, #20] - 800ca88: fb92 f3f3 sdiv r3, r2, r3 - 800ca8c: 827b strh r3, [r7, #18] + 800ca0c: f9b7 301e ldrsh.w r3, [r7, #30] + 800ca10: f9b7 2038 ldrsh.w r2, [r7, #56] ; 0x38 + 800ca14: fb03 f202 mul.w r2, r3, r2 + 800ca18: f9b7 3014 ldrsh.w r3, [r7, #20] + 800ca1c: fb92 f3f3 sdiv r3, r2, r3 + 800ca20: 827b strh r3, [r7, #18] sb_x = rem - sb_x; - 800ca8e: 8bfa ldrh r2, [r7, #30] - 800ca90: 8a7b ldrh r3, [r7, #18] - 800ca92: 1ad3 subs r3, r2, r3 - 800ca94: b29b uxth r3, r3 - 800ca96: 827b strh r3, [r7, #18] + 800ca22: 8bfa ldrh r2, [r7, #30] + 800ca24: 8a7b ldrh r3, [r7, #18] + 800ca26: 1ad3 subs r3, r2, r3 + 800ca28: b29b uxth r3, r3 + 800ca2a: 827b strh r3, [r7, #18] if(rtl) { - 800ca98: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 - 800ca9c: 2b00 cmp r3, #0 - 800ca9e: f000 80f1 beq.w 800cc84 + 800ca2c: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 + 800ca30: 2b00 cmp r3, #0 + 800ca32: f000 80f1 beq.w 800cc18 hor_area->x1 = obj->coords.x1 + sb_x + left_space + ver_reg_space; - 800caa2: 68fb ldr r3, [r7, #12] - 800caa4: f9b3 3014 ldrsh.w r3, [r3, #20] - 800caa8: b29a uxth r2, r3 - 800caaa: 8a7b ldrh r3, [r7, #18] - 800caac: 4413 add r3, r2 - 800caae: b29a uxth r2, r3 - 800cab0: 8e3b ldrh r3, [r7, #48] ; 0x30 - 800cab2: 4413 add r3, r2 - 800cab4: b29a uxth r2, r3 - 800cab6: 8cfb ldrh r3, [r7, #38] ; 0x26 - 800cab8: 4413 add r3, r2 - 800caba: b29b uxth r3, r3 - 800cabc: b21a sxth r2, r3 - 800cabe: 68bb ldr r3, [r7, #8] - 800cac0: 801a strh r2, [r3, #0] + 800ca36: 68fb ldr r3, [r7, #12] + 800ca38: f9b3 3014 ldrsh.w r3, [r3, #20] + 800ca3c: b29a uxth r2, r3 + 800ca3e: 8a7b ldrh r3, [r7, #18] + 800ca40: 4413 add r3, r2 + 800ca42: b29a uxth r2, r3 + 800ca44: 8e3b ldrh r3, [r7, #48] ; 0x30 + 800ca46: 4413 add r3, r2 + 800ca48: b29a uxth r2, r3 + 800ca4a: 8cfb ldrh r3, [r7, #38] ; 0x26 + 800ca4c: 4413 add r3, r2 + 800ca4e: b29b uxth r3, r3 + 800ca50: b21a sxth r2, r3 + 800ca52: 68bb ldr r3, [r7, #8] + 800ca54: 801a strh r2, [r3, #0] hor_area->x2 = hor_area->x1 + sb_w - 1; - 800cac2: 68bb ldr r3, [r7, #8] - 800cac4: f9b3 3000 ldrsh.w r3, [r3] - 800cac8: b29a uxth r2, r3 - 800caca: 8afb ldrh r3, [r7, #22] - 800cacc: 4413 add r3, r2 - 800cace: b29b uxth r3, r3 - 800cad0: 3b01 subs r3, #1 - 800cad2: b29b uxth r3, r3 - 800cad4: b21a sxth r2, r3 - 800cad6: 68bb ldr r3, [r7, #8] - 800cad8: 809a strh r2, [r3, #4] + 800ca56: 68bb ldr r3, [r7, #8] + 800ca58: f9b3 3000 ldrsh.w r3, [r3] + 800ca5c: b29a uxth r2, r3 + 800ca5e: 8afb ldrh r3, [r7, #22] + 800ca60: 4413 add r3, r2 + 800ca62: b29b uxth r3, r3 + 800ca64: 3b01 subs r3, #1 + 800ca66: b29b uxth r3, r3 + 800ca68: b21a sxth r2, r3 + 800ca6a: 68bb ldr r3, [r7, #8] + 800ca6c: 809a strh r2, [r3, #4] if(hor_area->x1 < obj->coords.x1 + left_space + ver_reg_space) { - 800cada: 68bb ldr r3, [r7, #8] - 800cadc: f9b3 3000 ldrsh.w r3, [r3] - 800cae0: 4619 mov r1, r3 - 800cae2: 68fb ldr r3, [r7, #12] - 800cae4: f9b3 3014 ldrsh.w r3, [r3, #20] - 800cae8: 461a mov r2, r3 - 800caea: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 800caee: 441a add r2, r3 - 800caf0: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 800caf4: 4413 add r3, r2 - 800caf6: 4299 cmp r1, r3 - 800caf8: da5a bge.n 800cbb0 + 800ca6e: 68bb ldr r3, [r7, #8] + 800ca70: f9b3 3000 ldrsh.w r3, [r3] + 800ca74: 4619 mov r1, r3 + 800ca76: 68fb ldr r3, [r7, #12] + 800ca78: f9b3 3014 ldrsh.w r3, [r3, #20] + 800ca7c: 461a mov r2, r3 + 800ca7e: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 800ca82: 441a add r2, r3 + 800ca84: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 800ca88: 4413 add r3, r2 + 800ca8a: 4299 cmp r1, r3 + 800ca8c: da5a bge.n 800cb44 hor_area->x1 = obj->coords.x1 + left_space + ver_reg_space; - 800cafa: 68fb ldr r3, [r7, #12] - 800cafc: f9b3 3014 ldrsh.w r3, [r3, #20] - 800cb00: b29a uxth r2, r3 - 800cb02: 8e3b ldrh r3, [r7, #48] ; 0x30 - 800cb04: 4413 add r3, r2 - 800cb06: b29a uxth r2, r3 - 800cb08: 8cfb ldrh r3, [r7, #38] ; 0x26 - 800cb0a: 4413 add r3, r2 - 800cb0c: b29b uxth r3, r3 - 800cb0e: b21a sxth r2, r3 - 800cb10: 68bb ldr r3, [r7, #8] - 800cb12: 801a strh r2, [r3, #0] + 800ca8e: 68fb ldr r3, [r7, #12] + 800ca90: f9b3 3014 ldrsh.w r3, [r3, #20] + 800ca94: b29a uxth r2, r3 + 800ca96: 8e3b ldrh r3, [r7, #48] ; 0x30 + 800ca98: 4413 add r3, r2 + 800ca9a: b29a uxth r2, r3 + 800ca9c: 8cfb ldrh r3, [r7, #38] ; 0x26 + 800ca9e: 4413 add r3, r2 + 800caa0: b29b uxth r3, r3 + 800caa2: b21a sxth r2, r3 + 800caa4: 68bb ldr r3, [r7, #8] + 800caa6: 801a strh r2, [r3, #0] if(hor_area->x1 + SCROLLBAR_MIN_SIZE > hor_area->x2) { - 800cb14: 68bb ldr r3, [r7, #8] - 800cb16: f9b3 3000 ldrsh.w r3, [r3] - 800cb1a: 461c mov r4, r3 - 800cb1c: 2000 movs r0, #0 - 800cb1e: f023 fd2b bl 8030578 - 800cb22: 4603 mov r3, r0 - 800cb24: 461a mov r2, r3 - 800cb26: 4613 mov r3, r2 - 800cb28: 009b lsls r3, r3, #2 - 800cb2a: 4413 add r3, r2 - 800cb2c: 005b lsls r3, r3, #1 - 800cb2e: 2bef cmp r3, #239 ; 0xef - 800cb30: dd10 ble.n 800cb54 - 800cb32: 2000 movs r0, #0 - 800cb34: f023 fd20 bl 8030578 - 800cb38: 4603 mov r3, r0 - 800cb3a: 461a mov r2, r3 - 800cb3c: 4613 mov r3, r2 - 800cb3e: 009b lsls r3, r3, #2 - 800cb40: 4413 add r3, r2 - 800cb42: 005b lsls r3, r3, #1 - 800cb44: 3350 adds r3, #80 ; 0x50 - 800cb46: 4a36 ldr r2, [pc, #216] ; (800cc20 ) - 800cb48: fb82 1203 smull r1, r2, r2, r3 - 800cb4c: 1192 asrs r2, r2, #6 - 800cb4e: 17db asrs r3, r3, #31 - 800cb50: 1ad3 subs r3, r2, r3 - 800cb52: e000 b.n 800cb56 - 800cb54: 2301 movs r3, #1 - 800cb56: 4423 add r3, r4 - 800cb58: 68ba ldr r2, [r7, #8] - 800cb5a: f9b2 2004 ldrsh.w r2, [r2, #4] - 800cb5e: 4293 cmp r3, r2 - 800cb60: dd26 ble.n 800cbb0 + 800caa8: 68bb ldr r3, [r7, #8] + 800caaa: f9b3 3000 ldrsh.w r3, [r3] + 800caae: 461c mov r4, r3 + 800cab0: 2000 movs r0, #0 + 800cab2: f023 fd17 bl 80304e4 + 800cab6: 4603 mov r3, r0 + 800cab8: 461a mov r2, r3 + 800caba: 4613 mov r3, r2 + 800cabc: 009b lsls r3, r3, #2 + 800cabe: 4413 add r3, r2 + 800cac0: 005b lsls r3, r3, #1 + 800cac2: 2bef cmp r3, #239 ; 0xef + 800cac4: dd10 ble.n 800cae8 + 800cac6: 2000 movs r0, #0 + 800cac8: f023 fd0c bl 80304e4 + 800cacc: 4603 mov r3, r0 + 800cace: 461a mov r2, r3 + 800cad0: 4613 mov r3, r2 + 800cad2: 009b lsls r3, r3, #2 + 800cad4: 4413 add r3, r2 + 800cad6: 005b lsls r3, r3, #1 + 800cad8: 3350 adds r3, #80 ; 0x50 + 800cada: 4a36 ldr r2, [pc, #216] ; (800cbb4 ) + 800cadc: fb82 1203 smull r1, r2, r2, r3 + 800cae0: 1192 asrs r2, r2, #6 + 800cae2: 17db asrs r3, r3, #31 + 800cae4: 1ad3 subs r3, r2, r3 + 800cae6: e000 b.n 800caea + 800cae8: 2301 movs r3, #1 + 800caea: 4423 add r3, r4 + 800caec: 68ba ldr r2, [r7, #8] + 800caee: f9b2 2004 ldrsh.w r2, [r2, #4] + 800caf2: 4293 cmp r3, r2 + 800caf4: dd26 ble.n 800cb44 hor_area->x2 = hor_area->x1 + SCROLLBAR_MIN_SIZE; - 800cb62: 68bb ldr r3, [r7, #8] - 800cb64: f9b3 3000 ldrsh.w r3, [r3] - 800cb68: b29c uxth r4, r3 - 800cb6a: 2000 movs r0, #0 - 800cb6c: f023 fd04 bl 8030578 - 800cb70: 4603 mov r3, r0 - 800cb72: 461a mov r2, r3 - 800cb74: 4613 mov r3, r2 - 800cb76: 009b lsls r3, r3, #2 - 800cb78: 4413 add r3, r2 - 800cb7a: 005b lsls r3, r3, #1 - 800cb7c: 2bef cmp r3, #239 ; 0xef - 800cb7e: dd11 ble.n 800cba4 - 800cb80: 2000 movs r0, #0 - 800cb82: f023 fcf9 bl 8030578 - 800cb86: 4603 mov r3, r0 - 800cb88: 461a mov r2, r3 - 800cb8a: 4613 mov r3, r2 - 800cb8c: 009b lsls r3, r3, #2 - 800cb8e: 4413 add r3, r2 - 800cb90: 005b lsls r3, r3, #1 - 800cb92: 3350 adds r3, #80 ; 0x50 - 800cb94: 4a22 ldr r2, [pc, #136] ; (800cc20 ) - 800cb96: fb82 1203 smull r1, r2, r2, r3 - 800cb9a: 1192 asrs r2, r2, #6 - 800cb9c: 17db asrs r3, r3, #31 - 800cb9e: 1ad3 subs r3, r2, r3 - 800cba0: b29b uxth r3, r3 - 800cba2: e000 b.n 800cba6 - 800cba4: 2301 movs r3, #1 - 800cba6: 4423 add r3, r4 - 800cba8: b29b uxth r3, r3 - 800cbaa: b21a sxth r2, r3 - 800cbac: 68bb ldr r3, [r7, #8] - 800cbae: 809a strh r2, [r3, #4] + 800caf6: 68bb ldr r3, [r7, #8] + 800caf8: f9b3 3000 ldrsh.w r3, [r3] + 800cafc: b29c uxth r4, r3 + 800cafe: 2000 movs r0, #0 + 800cb00: f023 fcf0 bl 80304e4 + 800cb04: 4603 mov r3, r0 + 800cb06: 461a mov r2, r3 + 800cb08: 4613 mov r3, r2 + 800cb0a: 009b lsls r3, r3, #2 + 800cb0c: 4413 add r3, r2 + 800cb0e: 005b lsls r3, r3, #1 + 800cb10: 2bef cmp r3, #239 ; 0xef + 800cb12: dd11 ble.n 800cb38 + 800cb14: 2000 movs r0, #0 + 800cb16: f023 fce5 bl 80304e4 + 800cb1a: 4603 mov r3, r0 + 800cb1c: 461a mov r2, r3 + 800cb1e: 4613 mov r3, r2 + 800cb20: 009b lsls r3, r3, #2 + 800cb22: 4413 add r3, r2 + 800cb24: 005b lsls r3, r3, #1 + 800cb26: 3350 adds r3, #80 ; 0x50 + 800cb28: 4a22 ldr r2, [pc, #136] ; (800cbb4 ) + 800cb2a: fb82 1203 smull r1, r2, r2, r3 + 800cb2e: 1192 asrs r2, r2, #6 + 800cb30: 17db asrs r3, r3, #31 + 800cb32: 1ad3 subs r3, r2, r3 + 800cb34: b29b uxth r3, r3 + 800cb36: e000 b.n 800cb3a + 800cb38: 2301 movs r3, #1 + 800cb3a: 4423 add r3, r4 + 800cb3c: b29b uxth r3, r3 + 800cb3e: b21a sxth r2, r3 + 800cb40: 68bb ldr r3, [r7, #8] + 800cb42: 809a strh r2, [r3, #4] } } if(hor_area->x2 > obj->coords.x2 - right_space) { - 800cbb0: 68bb ldr r3, [r7, #8] - 800cbb2: f9b3 3004 ldrsh.w r3, [r3, #4] - 800cbb6: 461a mov r2, r3 - 800cbb8: 68fb ldr r3, [r7, #12] - 800cbba: f9b3 3018 ldrsh.w r3, [r3, #24] - 800cbbe: 4619 mov r1, r3 - 800cbc0: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 800cbc4: 1acb subs r3, r1, r3 - 800cbc6: 429a cmp r2, r3 - 800cbc8: f340 814f ble.w 800ce6a + 800cb44: 68bb ldr r3, [r7, #8] + 800cb46: f9b3 3004 ldrsh.w r3, [r3, #4] + 800cb4a: 461a mov r2, r3 + 800cb4c: 68fb ldr r3, [r7, #12] + 800cb4e: f9b3 3018 ldrsh.w r3, [r3, #24] + 800cb52: 4619 mov r1, r3 + 800cb54: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 800cb58: 1acb subs r3, r1, r3 + 800cb5a: 429a cmp r2, r3 + 800cb5c: f340 814f ble.w 800cdfe hor_area->x2 = obj->coords.x2 - right_space; - 800cbcc: 68fb ldr r3, [r7, #12] - 800cbce: f9b3 3018 ldrsh.w r3, [r3, #24] - 800cbd2: b29a uxth r2, r3 - 800cbd4: 8dfb ldrh r3, [r7, #46] ; 0x2e - 800cbd6: 1ad3 subs r3, r2, r3 - 800cbd8: b29b uxth r3, r3 - 800cbda: b21a sxth r2, r3 - 800cbdc: 68bb ldr r3, [r7, #8] - 800cbde: 809a strh r2, [r3, #4] + 800cb60: 68fb ldr r3, [r7, #12] + 800cb62: f9b3 3018 ldrsh.w r3, [r3, #24] + 800cb66: b29a uxth r2, r3 + 800cb68: 8dfb ldrh r3, [r7, #46] ; 0x2e + 800cb6a: 1ad3 subs r3, r2, r3 + 800cb6c: b29b uxth r3, r3 + 800cb6e: b21a sxth r2, r3 + 800cb70: 68bb ldr r3, [r7, #8] + 800cb72: 809a strh r2, [r3, #4] if(hor_area->x2 - SCROLLBAR_MIN_SIZE < hor_area->x1) { - 800cbe0: 68bb ldr r3, [r7, #8] - 800cbe2: f9b3 3004 ldrsh.w r3, [r3, #4] - 800cbe6: 461c mov r4, r3 - 800cbe8: 2000 movs r0, #0 - 800cbea: f023 fcc5 bl 8030578 - 800cbee: 4603 mov r3, r0 - 800cbf0: 461a mov r2, r3 - 800cbf2: 4613 mov r3, r2 - 800cbf4: 009b lsls r3, r3, #2 - 800cbf6: 4413 add r3, r2 - 800cbf8: 005b lsls r3, r3, #1 - 800cbfa: 2bef cmp r3, #239 ; 0xef - 800cbfc: dd12 ble.n 800cc24 - 800cbfe: 2000 movs r0, #0 - 800cc00: f023 fcba bl 8030578 - 800cc04: 4603 mov r3, r0 - 800cc06: 461a mov r2, r3 - 800cc08: 4613 mov r3, r2 - 800cc0a: 009b lsls r3, r3, #2 - 800cc0c: 4413 add r3, r2 - 800cc0e: 005b lsls r3, r3, #1 - 800cc10: 3350 adds r3, #80 ; 0x50 - 800cc12: 4a03 ldr r2, [pc, #12] ; (800cc20 ) - 800cc14: fb82 1203 smull r1, r2, r2, r3 - 800cc18: 1192 asrs r2, r2, #6 - 800cc1a: 17db asrs r3, r3, #31 - 800cc1c: 1ad3 subs r3, r2, r3 - 800cc1e: e002 b.n 800cc26 - 800cc20: 66666667 .word 0x66666667 - 800cc24: 2301 movs r3, #1 - 800cc26: 1ae3 subs r3, r4, r3 - 800cc28: 68ba ldr r2, [r7, #8] - 800cc2a: f9b2 2000 ldrsh.w r2, [r2] - 800cc2e: 4293 cmp r3, r2 - 800cc30: f280 811b bge.w 800ce6a + 800cb74: 68bb ldr r3, [r7, #8] + 800cb76: f9b3 3004 ldrsh.w r3, [r3, #4] + 800cb7a: 461c mov r4, r3 + 800cb7c: 2000 movs r0, #0 + 800cb7e: f023 fcb1 bl 80304e4 + 800cb82: 4603 mov r3, r0 + 800cb84: 461a mov r2, r3 + 800cb86: 4613 mov r3, r2 + 800cb88: 009b lsls r3, r3, #2 + 800cb8a: 4413 add r3, r2 + 800cb8c: 005b lsls r3, r3, #1 + 800cb8e: 2bef cmp r3, #239 ; 0xef + 800cb90: dd12 ble.n 800cbb8 + 800cb92: 2000 movs r0, #0 + 800cb94: f023 fca6 bl 80304e4 + 800cb98: 4603 mov r3, r0 + 800cb9a: 461a mov r2, r3 + 800cb9c: 4613 mov r3, r2 + 800cb9e: 009b lsls r3, r3, #2 + 800cba0: 4413 add r3, r2 + 800cba2: 005b lsls r3, r3, #1 + 800cba4: 3350 adds r3, #80 ; 0x50 + 800cba6: 4a03 ldr r2, [pc, #12] ; (800cbb4 ) + 800cba8: fb82 1203 smull r1, r2, r2, r3 + 800cbac: 1192 asrs r2, r2, #6 + 800cbae: 17db asrs r3, r3, #31 + 800cbb0: 1ad3 subs r3, r2, r3 + 800cbb2: e002 b.n 800cbba + 800cbb4: 66666667 .word 0x66666667 + 800cbb8: 2301 movs r3, #1 + 800cbba: 1ae3 subs r3, r4, r3 + 800cbbc: 68ba ldr r2, [r7, #8] + 800cbbe: f9b2 2000 ldrsh.w r2, [r2] + 800cbc2: 4293 cmp r3, r2 + 800cbc4: f280 811b bge.w 800cdfe hor_area->x1 = hor_area->x2 - SCROLLBAR_MIN_SIZE; - 800cc34: 68bb ldr r3, [r7, #8] - 800cc36: f9b3 3004 ldrsh.w r3, [r3, #4] - 800cc3a: b29c uxth r4, r3 - 800cc3c: 2000 movs r0, #0 - 800cc3e: f023 fc9b bl 8030578 - 800cc42: 4603 mov r3, r0 - 800cc44: 461a mov r2, r3 - 800cc46: 4613 mov r3, r2 - 800cc48: 009b lsls r3, r3, #2 - 800cc4a: 4413 add r3, r2 - 800cc4c: 005b lsls r3, r3, #1 - 800cc4e: 2bef cmp r3, #239 ; 0xef - 800cc50: dd11 ble.n 800cc76 - 800cc52: 2000 movs r0, #0 - 800cc54: f023 fc90 bl 8030578 - 800cc58: 4603 mov r3, r0 - 800cc5a: 461a mov r2, r3 - 800cc5c: 4613 mov r3, r2 - 800cc5e: 009b lsls r3, r3, #2 - 800cc60: 4413 add r3, r2 - 800cc62: 005b lsls r3, r3, #1 - 800cc64: 3350 adds r3, #80 ; 0x50 - 800cc66: 4a82 ldr r2, [pc, #520] ; (800ce70 ) - 800cc68: fb82 1203 smull r1, r2, r2, r3 - 800cc6c: 1192 asrs r2, r2, #6 - 800cc6e: 17db asrs r3, r3, #31 - 800cc70: 1ad3 subs r3, r2, r3 - 800cc72: b29b uxth r3, r3 - 800cc74: e000 b.n 800cc78 - 800cc76: 2301 movs r3, #1 - 800cc78: 1ae3 subs r3, r4, r3 - 800cc7a: b29b uxth r3, r3 - 800cc7c: b21a sxth r2, r3 - 800cc7e: 68bb ldr r3, [r7, #8] - 800cc80: 801a strh r2, [r3, #0] - 800cc82: e0f2 b.n 800ce6a + 800cbc8: 68bb ldr r3, [r7, #8] + 800cbca: f9b3 3004 ldrsh.w r3, [r3, #4] + 800cbce: b29c uxth r4, r3 + 800cbd0: 2000 movs r0, #0 + 800cbd2: f023 fc87 bl 80304e4 + 800cbd6: 4603 mov r3, r0 + 800cbd8: 461a mov r2, r3 + 800cbda: 4613 mov r3, r2 + 800cbdc: 009b lsls r3, r3, #2 + 800cbde: 4413 add r3, r2 + 800cbe0: 005b lsls r3, r3, #1 + 800cbe2: 2bef cmp r3, #239 ; 0xef + 800cbe4: dd11 ble.n 800cc0a + 800cbe6: 2000 movs r0, #0 + 800cbe8: f023 fc7c bl 80304e4 + 800cbec: 4603 mov r3, r0 + 800cbee: 461a mov r2, r3 + 800cbf0: 4613 mov r3, r2 + 800cbf2: 009b lsls r3, r3, #2 + 800cbf4: 4413 add r3, r2 + 800cbf6: 005b lsls r3, r3, #1 + 800cbf8: 3350 adds r3, #80 ; 0x50 + 800cbfa: 4a82 ldr r2, [pc, #520] ; (800ce04 ) + 800cbfc: fb82 1203 smull r1, r2, r2, r3 + 800cc00: 1192 asrs r2, r2, #6 + 800cc02: 17db asrs r3, r3, #31 + 800cc04: 1ad3 subs r3, r2, r3 + 800cc06: b29b uxth r3, r3 + 800cc08: e000 b.n 800cc0c + 800cc0a: 2301 movs r3, #1 + 800cc0c: 1ae3 subs r3, r4, r3 + 800cc0e: b29b uxth r3, r3 + 800cc10: b21a sxth r2, r3 + 800cc12: 68bb ldr r3, [r7, #8] + 800cc14: 801a strh r2, [r3, #0] + 800cc16: e0f2 b.n 800cdfe } } } else { hor_area->x1 = obj->coords.x1 + sb_x + left_space; - 800cc84: 68fb ldr r3, [r7, #12] - 800cc86: f9b3 3014 ldrsh.w r3, [r3, #20] - 800cc8a: b29a uxth r2, r3 - 800cc8c: 8a7b ldrh r3, [r7, #18] - 800cc8e: 4413 add r3, r2 - 800cc90: b29a uxth r2, r3 - 800cc92: 8e3b ldrh r3, [r7, #48] ; 0x30 - 800cc94: 4413 add r3, r2 - 800cc96: b29b uxth r3, r3 - 800cc98: b21a sxth r2, r3 - 800cc9a: 68bb ldr r3, [r7, #8] - 800cc9c: 801a strh r2, [r3, #0] + 800cc18: 68fb ldr r3, [r7, #12] + 800cc1a: f9b3 3014 ldrsh.w r3, [r3, #20] + 800cc1e: b29a uxth r2, r3 + 800cc20: 8a7b ldrh r3, [r7, #18] + 800cc22: 4413 add r3, r2 + 800cc24: b29a uxth r2, r3 + 800cc26: 8e3b ldrh r3, [r7, #48] ; 0x30 + 800cc28: 4413 add r3, r2 + 800cc2a: b29b uxth r3, r3 + 800cc2c: b21a sxth r2, r3 + 800cc2e: 68bb ldr r3, [r7, #8] + 800cc30: 801a strh r2, [r3, #0] hor_area->x2 = hor_area->x1 + sb_w - 1; - 800cc9e: 68bb ldr r3, [r7, #8] - 800cca0: f9b3 3000 ldrsh.w r3, [r3] - 800cca4: b29a uxth r2, r3 - 800cca6: 8afb ldrh r3, [r7, #22] - 800cca8: 4413 add r3, r2 - 800ccaa: b29b uxth r3, r3 - 800ccac: 3b01 subs r3, #1 - 800ccae: b29b uxth r3, r3 - 800ccb0: b21a sxth r2, r3 - 800ccb2: 68bb ldr r3, [r7, #8] - 800ccb4: 809a strh r2, [r3, #4] + 800cc32: 68bb ldr r3, [r7, #8] + 800cc34: f9b3 3000 ldrsh.w r3, [r3] + 800cc38: b29a uxth r2, r3 + 800cc3a: 8afb ldrh r3, [r7, #22] + 800cc3c: 4413 add r3, r2 + 800cc3e: b29b uxth r3, r3 + 800cc40: 3b01 subs r3, #1 + 800cc42: b29b uxth r3, r3 + 800cc44: b21a sxth r2, r3 + 800cc46: 68bb ldr r3, [r7, #8] + 800cc48: 809a strh r2, [r3, #4] if(hor_area->x1 < obj->coords.x1 + left_space) { - 800ccb6: 68bb ldr r3, [r7, #8] - 800ccb8: f9b3 3000 ldrsh.w r3, [r3] - 800ccbc: 461a mov r2, r3 - 800ccbe: 68fb ldr r3, [r7, #12] - 800ccc0: f9b3 3014 ldrsh.w r3, [r3, #20] - 800ccc4: 4619 mov r1, r3 - 800ccc6: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 800ccca: 440b add r3, r1 - 800cccc: 429a cmp r2, r3 - 800ccce: da57 bge.n 800cd80 + 800cc4a: 68bb ldr r3, [r7, #8] + 800cc4c: f9b3 3000 ldrsh.w r3, [r3] + 800cc50: 461a mov r2, r3 + 800cc52: 68fb ldr r3, [r7, #12] + 800cc54: f9b3 3014 ldrsh.w r3, [r3, #20] + 800cc58: 4619 mov r1, r3 + 800cc5a: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 800cc5e: 440b add r3, r1 + 800cc60: 429a cmp r2, r3 + 800cc62: da57 bge.n 800cd14 hor_area->x1 = obj->coords.x1 + left_space; - 800ccd0: 68fb ldr r3, [r7, #12] - 800ccd2: f9b3 3014 ldrsh.w r3, [r3, #20] - 800ccd6: b29a uxth r2, r3 - 800ccd8: 8e3b ldrh r3, [r7, #48] ; 0x30 - 800ccda: 4413 add r3, r2 - 800ccdc: b29b uxth r3, r3 - 800ccde: b21a sxth r2, r3 - 800cce0: 68bb ldr r3, [r7, #8] - 800cce2: 801a strh r2, [r3, #0] + 800cc64: 68fb ldr r3, [r7, #12] + 800cc66: f9b3 3014 ldrsh.w r3, [r3, #20] + 800cc6a: b29a uxth r2, r3 + 800cc6c: 8e3b ldrh r3, [r7, #48] ; 0x30 + 800cc6e: 4413 add r3, r2 + 800cc70: b29b uxth r3, r3 + 800cc72: b21a sxth r2, r3 + 800cc74: 68bb ldr r3, [r7, #8] + 800cc76: 801a strh r2, [r3, #0] if(hor_area->x1 + SCROLLBAR_MIN_SIZE > hor_area->x2) { - 800cce4: 68bb ldr r3, [r7, #8] - 800cce6: f9b3 3000 ldrsh.w r3, [r3] - 800ccea: 461c mov r4, r3 - 800ccec: 2000 movs r0, #0 - 800ccee: f023 fc43 bl 8030578 - 800ccf2: 4603 mov r3, r0 - 800ccf4: 461a mov r2, r3 - 800ccf6: 4613 mov r3, r2 - 800ccf8: 009b lsls r3, r3, #2 - 800ccfa: 4413 add r3, r2 - 800ccfc: 005b lsls r3, r3, #1 - 800ccfe: 2bef cmp r3, #239 ; 0xef - 800cd00: dd10 ble.n 800cd24 - 800cd02: 2000 movs r0, #0 - 800cd04: f023 fc38 bl 8030578 - 800cd08: 4603 mov r3, r0 - 800cd0a: 461a mov r2, r3 - 800cd0c: 4613 mov r3, r2 - 800cd0e: 009b lsls r3, r3, #2 - 800cd10: 4413 add r3, r2 - 800cd12: 005b lsls r3, r3, #1 - 800cd14: 3350 adds r3, #80 ; 0x50 - 800cd16: 4a56 ldr r2, [pc, #344] ; (800ce70 ) - 800cd18: fb82 1203 smull r1, r2, r2, r3 - 800cd1c: 1192 asrs r2, r2, #6 - 800cd1e: 17db asrs r3, r3, #31 - 800cd20: 1ad3 subs r3, r2, r3 - 800cd22: e000 b.n 800cd26 - 800cd24: 2301 movs r3, #1 - 800cd26: 4423 add r3, r4 - 800cd28: 68ba ldr r2, [r7, #8] - 800cd2a: f9b2 2004 ldrsh.w r2, [r2, #4] - 800cd2e: 4293 cmp r3, r2 - 800cd30: dd26 ble.n 800cd80 + 800cc78: 68bb ldr r3, [r7, #8] + 800cc7a: f9b3 3000 ldrsh.w r3, [r3] + 800cc7e: 461c mov r4, r3 + 800cc80: 2000 movs r0, #0 + 800cc82: f023 fc2f bl 80304e4 + 800cc86: 4603 mov r3, r0 + 800cc88: 461a mov r2, r3 + 800cc8a: 4613 mov r3, r2 + 800cc8c: 009b lsls r3, r3, #2 + 800cc8e: 4413 add r3, r2 + 800cc90: 005b lsls r3, r3, #1 + 800cc92: 2bef cmp r3, #239 ; 0xef + 800cc94: dd10 ble.n 800ccb8 + 800cc96: 2000 movs r0, #0 + 800cc98: f023 fc24 bl 80304e4 + 800cc9c: 4603 mov r3, r0 + 800cc9e: 461a mov r2, r3 + 800cca0: 4613 mov r3, r2 + 800cca2: 009b lsls r3, r3, #2 + 800cca4: 4413 add r3, r2 + 800cca6: 005b lsls r3, r3, #1 + 800cca8: 3350 adds r3, #80 ; 0x50 + 800ccaa: 4a56 ldr r2, [pc, #344] ; (800ce04 ) + 800ccac: fb82 1203 smull r1, r2, r2, r3 + 800ccb0: 1192 asrs r2, r2, #6 + 800ccb2: 17db asrs r3, r3, #31 + 800ccb4: 1ad3 subs r3, r2, r3 + 800ccb6: e000 b.n 800ccba + 800ccb8: 2301 movs r3, #1 + 800ccba: 4423 add r3, r4 + 800ccbc: 68ba ldr r2, [r7, #8] + 800ccbe: f9b2 2004 ldrsh.w r2, [r2, #4] + 800ccc2: 4293 cmp r3, r2 + 800ccc4: dd26 ble.n 800cd14 hor_area->x2 = hor_area->x1 + SCROLLBAR_MIN_SIZE; - 800cd32: 68bb ldr r3, [r7, #8] - 800cd34: f9b3 3000 ldrsh.w r3, [r3] - 800cd38: b29c uxth r4, r3 - 800cd3a: 2000 movs r0, #0 - 800cd3c: f023 fc1c bl 8030578 - 800cd40: 4603 mov r3, r0 - 800cd42: 461a mov r2, r3 - 800cd44: 4613 mov r3, r2 - 800cd46: 009b lsls r3, r3, #2 - 800cd48: 4413 add r3, r2 - 800cd4a: 005b lsls r3, r3, #1 - 800cd4c: 2bef cmp r3, #239 ; 0xef - 800cd4e: dd11 ble.n 800cd74 - 800cd50: 2000 movs r0, #0 - 800cd52: f023 fc11 bl 8030578 - 800cd56: 4603 mov r3, r0 - 800cd58: 461a mov r2, r3 - 800cd5a: 4613 mov r3, r2 - 800cd5c: 009b lsls r3, r3, #2 - 800cd5e: 4413 add r3, r2 - 800cd60: 005b lsls r3, r3, #1 - 800cd62: 3350 adds r3, #80 ; 0x50 - 800cd64: 4a42 ldr r2, [pc, #264] ; (800ce70 ) - 800cd66: fb82 1203 smull r1, r2, r2, r3 - 800cd6a: 1192 asrs r2, r2, #6 - 800cd6c: 17db asrs r3, r3, #31 - 800cd6e: 1ad3 subs r3, r2, r3 - 800cd70: b29b uxth r3, r3 - 800cd72: e000 b.n 800cd76 - 800cd74: 2301 movs r3, #1 - 800cd76: 4423 add r3, r4 - 800cd78: b29b uxth r3, r3 - 800cd7a: b21a sxth r2, r3 - 800cd7c: 68bb ldr r3, [r7, #8] - 800cd7e: 809a strh r2, [r3, #4] + 800ccc6: 68bb ldr r3, [r7, #8] + 800ccc8: f9b3 3000 ldrsh.w r3, [r3] + 800cccc: b29c uxth r4, r3 + 800ccce: 2000 movs r0, #0 + 800ccd0: f023 fc08 bl 80304e4 + 800ccd4: 4603 mov r3, r0 + 800ccd6: 461a mov r2, r3 + 800ccd8: 4613 mov r3, r2 + 800ccda: 009b lsls r3, r3, #2 + 800ccdc: 4413 add r3, r2 + 800ccde: 005b lsls r3, r3, #1 + 800cce0: 2bef cmp r3, #239 ; 0xef + 800cce2: dd11 ble.n 800cd08 + 800cce4: 2000 movs r0, #0 + 800cce6: f023 fbfd bl 80304e4 + 800ccea: 4603 mov r3, r0 + 800ccec: 461a mov r2, r3 + 800ccee: 4613 mov r3, r2 + 800ccf0: 009b lsls r3, r3, #2 + 800ccf2: 4413 add r3, r2 + 800ccf4: 005b lsls r3, r3, #1 + 800ccf6: 3350 adds r3, #80 ; 0x50 + 800ccf8: 4a42 ldr r2, [pc, #264] ; (800ce04 ) + 800ccfa: fb82 1203 smull r1, r2, r2, r3 + 800ccfe: 1192 asrs r2, r2, #6 + 800cd00: 17db asrs r3, r3, #31 + 800cd02: 1ad3 subs r3, r2, r3 + 800cd04: b29b uxth r3, r3 + 800cd06: e000 b.n 800cd0a + 800cd08: 2301 movs r3, #1 + 800cd0a: 4423 add r3, r4 + 800cd0c: b29b uxth r3, r3 + 800cd0e: b21a sxth r2, r3 + 800cd10: 68bb ldr r3, [r7, #8] + 800cd12: 809a strh r2, [r3, #4] } } if(hor_area->x2 > obj->coords.x2 - ver_reg_space - right_space) { - 800cd80: 68bb ldr r3, [r7, #8] - 800cd82: f9b3 3004 ldrsh.w r3, [r3, #4] - 800cd86: 4619 mov r1, r3 - 800cd88: 68fb ldr r3, [r7, #12] - 800cd8a: f9b3 3018 ldrsh.w r3, [r3, #24] - 800cd8e: 461a mov r2, r3 - 800cd90: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 800cd94: 1ad2 subs r2, r2, r3 - 800cd96: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 800cd9a: 1ad3 subs r3, r2, r3 - 800cd9c: 4299 cmp r1, r3 - 800cd9e: dd64 ble.n 800ce6a + 800cd14: 68bb ldr r3, [r7, #8] + 800cd16: f9b3 3004 ldrsh.w r3, [r3, #4] + 800cd1a: 4619 mov r1, r3 + 800cd1c: 68fb ldr r3, [r7, #12] + 800cd1e: f9b3 3018 ldrsh.w r3, [r3, #24] + 800cd22: 461a mov r2, r3 + 800cd24: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 800cd28: 1ad2 subs r2, r2, r3 + 800cd2a: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 800cd2e: 1ad3 subs r3, r2, r3 + 800cd30: 4299 cmp r1, r3 + 800cd32: dd64 ble.n 800cdfe hor_area->x2 = obj->coords.x2 - ver_reg_space - right_space; - 800cda0: 68fb ldr r3, [r7, #12] - 800cda2: f9b3 3018 ldrsh.w r3, [r3, #24] - 800cda6: b29a uxth r2, r3 - 800cda8: 8cfb ldrh r3, [r7, #38] ; 0x26 - 800cdaa: 1ad3 subs r3, r2, r3 - 800cdac: b29a uxth r2, r3 - 800cdae: 8dfb ldrh r3, [r7, #46] ; 0x2e - 800cdb0: 1ad3 subs r3, r2, r3 - 800cdb2: b29b uxth r3, r3 - 800cdb4: b21a sxth r2, r3 - 800cdb6: 68bb ldr r3, [r7, #8] - 800cdb8: 809a strh r2, [r3, #4] + 800cd34: 68fb ldr r3, [r7, #12] + 800cd36: f9b3 3018 ldrsh.w r3, [r3, #24] + 800cd3a: b29a uxth r2, r3 + 800cd3c: 8cfb ldrh r3, [r7, #38] ; 0x26 + 800cd3e: 1ad3 subs r3, r2, r3 + 800cd40: b29a uxth r2, r3 + 800cd42: 8dfb ldrh r3, [r7, #46] ; 0x2e + 800cd44: 1ad3 subs r3, r2, r3 + 800cd46: b29b uxth r3, r3 + 800cd48: b21a sxth r2, r3 + 800cd4a: 68bb ldr r3, [r7, #8] + 800cd4c: 809a strh r2, [r3, #4] if(hor_area->x2 - SCROLLBAR_MIN_SIZE < hor_area->x1) { - 800cdba: 68bb ldr r3, [r7, #8] - 800cdbc: f9b3 3004 ldrsh.w r3, [r3, #4] - 800cdc0: 461c mov r4, r3 - 800cdc2: 2000 movs r0, #0 - 800cdc4: f023 fbd8 bl 8030578 - 800cdc8: 4603 mov r3, r0 - 800cdca: 461a mov r2, r3 - 800cdcc: 4613 mov r3, r2 - 800cdce: 009b lsls r3, r3, #2 - 800cdd0: 4413 add r3, r2 - 800cdd2: 005b lsls r3, r3, #1 - 800cdd4: 2bef cmp r3, #239 ; 0xef - 800cdd6: dd10 ble.n 800cdfa - 800cdd8: 2000 movs r0, #0 - 800cdda: f023 fbcd bl 8030578 - 800cdde: 4603 mov r3, r0 - 800cde0: 461a mov r2, r3 - 800cde2: 4613 mov r3, r2 - 800cde4: 009b lsls r3, r3, #2 - 800cde6: 4413 add r3, r2 - 800cde8: 005b lsls r3, r3, #1 - 800cdea: 3350 adds r3, #80 ; 0x50 - 800cdec: 4a20 ldr r2, [pc, #128] ; (800ce70 ) - 800cdee: fb82 1203 smull r1, r2, r2, r3 - 800cdf2: 1192 asrs r2, r2, #6 - 800cdf4: 17db asrs r3, r3, #31 - 800cdf6: 1ad3 subs r3, r2, r3 - 800cdf8: e000 b.n 800cdfc - 800cdfa: 2301 movs r3, #1 - 800cdfc: 1ae3 subs r3, r4, r3 - 800cdfe: 68ba ldr r2, [r7, #8] - 800ce00: f9b2 2000 ldrsh.w r2, [r2] - 800ce04: 4293 cmp r3, r2 - 800ce06: da30 bge.n 800ce6a + 800cd4e: 68bb ldr r3, [r7, #8] + 800cd50: f9b3 3004 ldrsh.w r3, [r3, #4] + 800cd54: 461c mov r4, r3 + 800cd56: 2000 movs r0, #0 + 800cd58: f023 fbc4 bl 80304e4 + 800cd5c: 4603 mov r3, r0 + 800cd5e: 461a mov r2, r3 + 800cd60: 4613 mov r3, r2 + 800cd62: 009b lsls r3, r3, #2 + 800cd64: 4413 add r3, r2 + 800cd66: 005b lsls r3, r3, #1 + 800cd68: 2bef cmp r3, #239 ; 0xef + 800cd6a: dd10 ble.n 800cd8e + 800cd6c: 2000 movs r0, #0 + 800cd6e: f023 fbb9 bl 80304e4 + 800cd72: 4603 mov r3, r0 + 800cd74: 461a mov r2, r3 + 800cd76: 4613 mov r3, r2 + 800cd78: 009b lsls r3, r3, #2 + 800cd7a: 4413 add r3, r2 + 800cd7c: 005b lsls r3, r3, #1 + 800cd7e: 3350 adds r3, #80 ; 0x50 + 800cd80: 4a20 ldr r2, [pc, #128] ; (800ce04 ) + 800cd82: fb82 1203 smull r1, r2, r2, r3 + 800cd86: 1192 asrs r2, r2, #6 + 800cd88: 17db asrs r3, r3, #31 + 800cd8a: 1ad3 subs r3, r2, r3 + 800cd8c: e000 b.n 800cd90 + 800cd8e: 2301 movs r3, #1 + 800cd90: 1ae3 subs r3, r4, r3 + 800cd92: 68ba ldr r2, [r7, #8] + 800cd94: f9b2 2000 ldrsh.w r2, [r2] + 800cd98: 4293 cmp r3, r2 + 800cd9a: da30 bge.n 800cdfe hor_area->x1 = hor_area->x2 - SCROLLBAR_MIN_SIZE; - 800ce08: 68bb ldr r3, [r7, #8] - 800ce0a: f9b3 3004 ldrsh.w r3, [r3, #4] - 800ce0e: b29c uxth r4, r3 - 800ce10: 2000 movs r0, #0 - 800ce12: f023 fbb1 bl 8030578 - 800ce16: 4603 mov r3, r0 - 800ce18: 461a mov r2, r3 - 800ce1a: 4613 mov r3, r2 - 800ce1c: 009b lsls r3, r3, #2 - 800ce1e: 4413 add r3, r2 - 800ce20: 005b lsls r3, r3, #1 - 800ce22: 2bef cmp r3, #239 ; 0xef - 800ce24: dd11 ble.n 800ce4a - 800ce26: 2000 movs r0, #0 - 800ce28: f023 fba6 bl 8030578 - 800ce2c: 4603 mov r3, r0 - 800ce2e: 461a mov r2, r3 - 800ce30: 4613 mov r3, r2 - 800ce32: 009b lsls r3, r3, #2 - 800ce34: 4413 add r3, r2 - 800ce36: 005b lsls r3, r3, #1 - 800ce38: 3350 adds r3, #80 ; 0x50 - 800ce3a: 4a0d ldr r2, [pc, #52] ; (800ce70 ) - 800ce3c: fb82 1203 smull r1, r2, r2, r3 - 800ce40: 1192 asrs r2, r2, #6 - 800ce42: 17db asrs r3, r3, #31 - 800ce44: 1ad3 subs r3, r2, r3 - 800ce46: b29b uxth r3, r3 - 800ce48: e000 b.n 800ce4c - 800ce4a: 2301 movs r3, #1 - 800ce4c: 1ae3 subs r3, r4, r3 - 800ce4e: b29b uxth r3, r3 - 800ce50: b21a sxth r2, r3 - 800ce52: 68bb ldr r3, [r7, #8] - 800ce54: 801a strh r2, [r3, #0] - 800ce56: e008 b.n 800ce6a + 800cd9c: 68bb ldr r3, [r7, #8] + 800cd9e: f9b3 3004 ldrsh.w r3, [r3, #4] + 800cda2: b29c uxth r4, r3 + 800cda4: 2000 movs r0, #0 + 800cda6: f023 fb9d bl 80304e4 + 800cdaa: 4603 mov r3, r0 + 800cdac: 461a mov r2, r3 + 800cdae: 4613 mov r3, r2 + 800cdb0: 009b lsls r3, r3, #2 + 800cdb2: 4413 add r3, r2 + 800cdb4: 005b lsls r3, r3, #1 + 800cdb6: 2bef cmp r3, #239 ; 0xef + 800cdb8: dd11 ble.n 800cdde + 800cdba: 2000 movs r0, #0 + 800cdbc: f023 fb92 bl 80304e4 + 800cdc0: 4603 mov r3, r0 + 800cdc2: 461a mov r2, r3 + 800cdc4: 4613 mov r3, r2 + 800cdc6: 009b lsls r3, r3, #2 + 800cdc8: 4413 add r3, r2 + 800cdca: 005b lsls r3, r3, #1 + 800cdcc: 3350 adds r3, #80 ; 0x50 + 800cdce: 4a0d ldr r2, [pc, #52] ; (800ce04 ) + 800cdd0: fb82 1203 smull r1, r2, r2, r3 + 800cdd4: 1192 asrs r2, r2, #6 + 800cdd6: 17db asrs r3, r3, #31 + 800cdd8: 1ad3 subs r3, r2, r3 + 800cdda: b29b uxth r3, r3 + 800cddc: e000 b.n 800cde0 + 800cdde: 2301 movs r3, #1 + 800cde0: 1ae3 subs r3, r4, r3 + 800cde2: b29b uxth r3, r3 + 800cde4: b21a sxth r2, r3 + 800cde6: 68bb ldr r3, [r7, #8] + 800cde8: 801a strh r2, [r3, #0] + 800cdea: e008 b.n 800cdfe if(lv_obj_has_flag(obj, LV_OBJ_FLAG_SCROLLABLE) == false) return; - 800ce58: bf00 nop - 800ce5a: e006 b.n 800ce6a + 800cdec: bf00 nop + 800cdee: e006 b.n 800cdfe if(sm == LV_SCROLLBAR_MODE_OFF) return; - 800ce5c: bf00 nop - 800ce5e: e004 b.n 800ce6a + 800cdf0: bf00 nop + 800cdf2: e004 b.n 800cdfe if(indev == NULL) return; - 800ce60: bf00 nop - 800ce62: e002 b.n 800ce6a + 800cdf4: bf00 nop + 800cdf6: e002 b.n 800cdfe if(!hor_draw && !ver_draw) return; - 800ce64: bf00 nop - 800ce66: e000 b.n 800ce6a + 800cdf8: bf00 nop + 800cdfa: e000 b.n 800cdfe return; - 800ce68: bf00 nop + 800cdfc: bf00 nop } } } } } } - 800ce6a: 374c adds r7, #76 ; 0x4c - 800ce6c: 46bd mov sp, r7 - 800ce6e: bd90 pop {r4, r7, pc} - 800ce70: 66666667 .word 0x66666667 + 800cdfe: 374c adds r7, #76 ; 0x4c + 800ce00: 46bd mov sp, r7 + 800ce02: bd90 pop {r4, r7, pc} + 800ce04: 66666667 .word 0x66666667 -0800ce74 : +0800ce08 : void lv_obj_scrollbar_invalidate(lv_obj_t * obj) { - 800ce74: b580 push {r7, lr} - 800ce76: b086 sub sp, #24 - 800ce78: af00 add r7, sp, #0 - 800ce7a: 6078 str r0, [r7, #4] + 800ce08: b580 push {r7, lr} + 800ce0a: b086 sub sp, #24 + 800ce0c: af00 add r7, sp, #0 + 800ce0e: 6078 str r0, [r7, #4] lv_area_t hor_area; lv_area_t ver_area; lv_obj_get_scrollbar_area(obj, &hor_area, &ver_area); - 800ce7c: f107 0208 add.w r2, r7, #8 - 800ce80: f107 0310 add.w r3, r7, #16 - 800ce84: 4619 mov r1, r3 - 800ce86: 6878 ldr r0, [r7, #4] - 800ce88: f7ff fa30 bl 800c2ec + 800ce10: f107 0208 add.w r2, r7, #8 + 800ce14: f107 0310 add.w r3, r7, #16 + 800ce18: 4619 mov r1, r3 + 800ce1a: 6878 ldr r0, [r7, #4] + 800ce1c: f7ff fa30 bl 800c280 if(lv_area_get_size(&hor_area) <= 0 && lv_area_get_size(&ver_area) <= 0) return; - 800ce8c: f107 0310 add.w r3, r7, #16 - 800ce90: 4618 mov r0, r3 - 800ce92: f024 f87f bl 8030f94 - 800ce96: 4603 mov r3, r0 - 800ce98: 2b00 cmp r3, #0 - 800ce9a: d107 bne.n 800ceac - 800ce9c: f107 0308 add.w r3, r7, #8 - 800cea0: 4618 mov r0, r3 - 800cea2: f024 f877 bl 8030f94 - 800cea6: 4603 mov r3, r0 - 800cea8: 2b00 cmp r3, #0 - 800ceaa: d01c beq.n 800cee6 + 800ce20: f107 0310 add.w r3, r7, #16 + 800ce24: 4618 mov r0, r3 + 800ce26: f024 f86b bl 8030f00 + 800ce2a: 4603 mov r3, r0 + 800ce2c: 2b00 cmp r3, #0 + 800ce2e: d107 bne.n 800ce40 + 800ce30: f107 0308 add.w r3, r7, #8 + 800ce34: 4618 mov r0, r3 + 800ce36: f024 f863 bl 8030f00 + 800ce3a: 4603 mov r3, r0 + 800ce3c: 2b00 cmp r3, #0 + 800ce3e: d01c beq.n 800ce7a if(lv_area_get_size(&hor_area) > 0) lv_obj_invalidate_area(obj, &hor_area); - 800ceac: f107 0310 add.w r3, r7, #16 - 800ceb0: 4618 mov r0, r3 - 800ceb2: f024 f86f bl 8030f94 - 800ceb6: 4603 mov r3, r0 - 800ceb8: 2b00 cmp r3, #0 - 800ceba: d005 beq.n 800cec8 - 800cebc: f107 0310 add.w r3, r7, #16 - 800cec0: 4619 mov r1, r3 - 800cec2: 6878 ldr r0, [r7, #4] - 800cec4: f7fd fdd1 bl 800aa6a + 800ce40: f107 0310 add.w r3, r7, #16 + 800ce44: 4618 mov r0, r3 + 800ce46: f024 f85b bl 8030f00 + 800ce4a: 4603 mov r3, r0 + 800ce4c: 2b00 cmp r3, #0 + 800ce4e: d005 beq.n 800ce5c + 800ce50: f107 0310 add.w r3, r7, #16 + 800ce54: 4619 mov r1, r3 + 800ce56: 6878 ldr r0, [r7, #4] + 800ce58: f7fd fdd1 bl 800a9fe if(lv_area_get_size(&ver_area) > 0) lv_obj_invalidate_area(obj, &ver_area); - 800cec8: f107 0308 add.w r3, r7, #8 - 800cecc: 4618 mov r0, r3 - 800cece: f024 f861 bl 8030f94 - 800ced2: 4603 mov r3, r0 - 800ced4: 2b00 cmp r3, #0 - 800ced6: d007 beq.n 800cee8 - 800ced8: f107 0308 add.w r3, r7, #8 - 800cedc: 4619 mov r1, r3 - 800cede: 6878 ldr r0, [r7, #4] - 800cee0: f7fd fdc3 bl 800aa6a - 800cee4: e000 b.n 800cee8 + 800ce5c: f107 0308 add.w r3, r7, #8 + 800ce60: 4618 mov r0, r3 + 800ce62: f024 f84d bl 8030f00 + 800ce66: 4603 mov r3, r0 + 800ce68: 2b00 cmp r3, #0 + 800ce6a: d007 beq.n 800ce7c + 800ce6c: f107 0308 add.w r3, r7, #8 + 800ce70: 4619 mov r1, r3 + 800ce72: 6878 ldr r0, [r7, #4] + 800ce74: f7fd fdc3 bl 800a9fe + 800ce78: e000 b.n 800ce7c if(lv_area_get_size(&hor_area) <= 0 && lv_area_get_size(&ver_area) <= 0) return; - 800cee6: bf00 nop + 800ce7a: bf00 nop } - 800cee8: 3718 adds r7, #24 - 800ceea: 46bd mov sp, r7 - 800ceec: bd80 pop {r7, pc} + 800ce7c: 3718 adds r7, #24 + 800ce7e: 46bd mov sp, r7 + 800ce80: bd80 pop {r7, pc} -0800ceee : +0800ce82 : void lv_obj_readjust_scroll(lv_obj_t * obj, lv_anim_enable_t anim_en) { - 800ceee: b580 push {r7, lr} - 800cef0: b084 sub sp, #16 - 800cef2: af00 add r7, sp, #0 - 800cef4: 6078 str r0, [r7, #4] - 800cef6: 460b mov r3, r1 - 800cef8: 70fb strb r3, [r7, #3] + 800ce82: b580 push {r7, lr} + 800ce84: b084 sub sp, #16 + 800ce86: af00 add r7, sp, #0 + 800ce88: 6078 str r0, [r7, #4] + 800ce8a: 460b mov r3, r1 + 800ce8c: 70fb strb r3, [r7, #3] /*Be sure the bottom side is not remains scrolled in*/ /*With snapping the content can't be scrolled in*/ if(lv_obj_get_scroll_snap_y(obj) == LV_SCROLL_SNAP_NONE) { - 800cefa: 6878 ldr r0, [r7, #4] - 800cefc: f7fe fd23 bl 800b946 - 800cf00: 4603 mov r3, r0 - 800cf02: 2b00 cmp r3, #0 - 800cf04: d121 bne.n 800cf4a + 800ce8e: 6878 ldr r0, [r7, #4] + 800ce90: f7fe fd23 bl 800b8da + 800ce94: 4603 mov r3, r0 + 800ce96: 2b00 cmp r3, #0 + 800ce98: d121 bne.n 800cede lv_coord_t st = lv_obj_get_scroll_top(obj); - 800cf06: 6878 ldr r0, [r7, #4] - 800cf08: f7fe fd60 bl 800b9cc - 800cf0c: 4603 mov r3, r0 - 800cf0e: 81fb strh r3, [r7, #14] + 800ce9a: 6878 ldr r0, [r7, #4] + 800ce9c: f7fe fd60 bl 800b960 + 800cea0: 4603 mov r3, r0 + 800cea2: 81fb strh r3, [r7, #14] lv_coord_t sb = lv_obj_get_scroll_bottom(obj); - 800cf10: 6878 ldr r0, [r7, #4] - 800cf12: f7fe fd73 bl 800b9fc - 800cf16: 4603 mov r3, r0 - 800cf18: 81bb strh r3, [r7, #12] + 800cea4: 6878 ldr r0, [r7, #4] + 800cea6: f7fe fd73 bl 800b990 + 800ceaa: 4603 mov r3, r0 + 800ceac: 81bb strh r3, [r7, #12] if(sb < 0 && st > 0) { - 800cf1a: f9b7 300c ldrsh.w r3, [r7, #12] - 800cf1e: 2b00 cmp r3, #0 - 800cf20: da13 bge.n 800cf4a - 800cf22: f9b7 300e ldrsh.w r3, [r7, #14] - 800cf26: 2b00 cmp r3, #0 - 800cf28: dd0f ble.n 800cf4a + 800ceae: f9b7 300c ldrsh.w r3, [r7, #12] + 800ceb2: 2b00 cmp r3, #0 + 800ceb4: da13 bge.n 800cede + 800ceb6: f9b7 300e ldrsh.w r3, [r7, #14] + 800ceba: 2b00 cmp r3, #0 + 800cebc: dd0f ble.n 800cede sb = LV_MIN(st, -sb); - 800cf2a: f9b7 300c ldrsh.w r3, [r7, #12] - 800cf2e: 425a negs r2, r3 - 800cf30: f9b7 300e ldrsh.w r3, [r7, #14] - 800cf34: 4293 cmp r3, r2 - 800cf36: bfa8 it ge - 800cf38: 4613 movge r3, r2 - 800cf3a: 81bb strh r3, [r7, #12] + 800cebe: f9b7 300c ldrsh.w r3, [r7, #12] + 800cec2: 425a negs r2, r3 + 800cec4: f9b7 300e ldrsh.w r3, [r7, #14] + 800cec8: 4293 cmp r3, r2 + 800ceca: bfa8 it ge + 800cecc: 4613 movge r3, r2 + 800cece: 81bb strh r3, [r7, #12] lv_obj_scroll_by(obj, 0, sb, anim_en); - 800cf3c: 78fb ldrb r3, [r7, #3] - 800cf3e: f9b7 200c ldrsh.w r2, [r7, #12] - 800cf42: 2100 movs r1, #0 - 800cf44: 6878 ldr r0, [r7, #4] - 800cf46: f7ff f825 bl 800bf94 + 800ced0: 78fb ldrb r3, [r7, #3] + 800ced2: f9b7 200c ldrsh.w r2, [r7, #12] + 800ced6: 2100 movs r1, #0 + 800ced8: 6878 ldr r0, [r7, #4] + 800ceda: f7ff f825 bl 800bf28 } } if(lv_obj_get_scroll_snap_x(obj) == LV_SCROLL_SNAP_NONE) { - 800cf4a: 6878 ldr r0, [r7, #4] - 800cf4c: f7fe fce6 bl 800b91c - 800cf50: 4603 mov r3, r0 - 800cf52: 2b00 cmp r3, #0 - 800cf54: d141 bne.n 800cfda + 800cede: 6878 ldr r0, [r7, #4] + 800cee0: f7fe fce6 bl 800b8b0 + 800cee4: 4603 mov r3, r0 + 800cee6: 2b00 cmp r3, #0 + 800cee8: d141 bne.n 800cf6e lv_coord_t sl = lv_obj_get_scroll_left(obj); - 800cf56: 6878 ldr r0, [r7, #4] - 800cf58: f7fe fdd6 bl 800bb08 - 800cf5c: 4603 mov r3, r0 - 800cf5e: 817b strh r3, [r7, #10] + 800ceea: 6878 ldr r0, [r7, #4] + 800ceec: f7fe fdd6 bl 800ba9c + 800cef0: 4603 mov r3, r0 + 800cef2: 817b strh r3, [r7, #10] lv_coord_t sr = lv_obj_get_scroll_right(obj); - 800cf60: 6878 ldr r0, [r7, #4] - 800cf62: f7fe fe75 bl 800bc50 - 800cf66: 4603 mov r3, r0 - 800cf68: 813b strh r3, [r7, #8] + 800cef4: 6878 ldr r0, [r7, #4] + 800cef6: f7fe fe75 bl 800bbe4 + 800cefa: 4603 mov r3, r0 + 800cefc: 813b strh r3, [r7, #8] if(lv_obj_get_style_base_dir(obj, LV_PART_MAIN) != LV_BASE_DIR_RTL) { - 800cf6a: 2100 movs r1, #0 - 800cf6c: 6878 ldr r0, [r7, #4] - 800cf6e: f7fe fc24 bl 800b7ba - 800cf72: 4603 mov r3, r0 - 800cf74: 2b01 cmp r3, #1 - 800cf76: d018 beq.n 800cfaa + 800cefe: 2100 movs r1, #0 + 800cf00: 6878 ldr r0, [r7, #4] + 800cf02: f7fe fc24 bl 800b74e + 800cf06: 4603 mov r3, r0 + 800cf08: 2b01 cmp r3, #1 + 800cf0a: d018 beq.n 800cf3e /*Be sure the left side is not remains scrolled in*/ if(sr < 0 && sl > 0) { - 800cf78: f9b7 3008 ldrsh.w r3, [r7, #8] - 800cf7c: 2b00 cmp r3, #0 - 800cf7e: da2c bge.n 800cfda - 800cf80: f9b7 300a ldrsh.w r3, [r7, #10] - 800cf84: 2b00 cmp r3, #0 - 800cf86: dd28 ble.n 800cfda + 800cf0c: f9b7 3008 ldrsh.w r3, [r7, #8] + 800cf10: 2b00 cmp r3, #0 + 800cf12: da2c bge.n 800cf6e + 800cf14: f9b7 300a ldrsh.w r3, [r7, #10] + 800cf18: 2b00 cmp r3, #0 + 800cf1a: dd28 ble.n 800cf6e sr = LV_MIN(sl, -sr); - 800cf88: f9b7 3008 ldrsh.w r3, [r7, #8] - 800cf8c: 425a negs r2, r3 - 800cf8e: f9b7 300a ldrsh.w r3, [r7, #10] - 800cf92: 4293 cmp r3, r2 - 800cf94: bfa8 it ge - 800cf96: 4613 movge r3, r2 - 800cf98: 813b strh r3, [r7, #8] + 800cf1c: f9b7 3008 ldrsh.w r3, [r7, #8] + 800cf20: 425a negs r2, r3 + 800cf22: f9b7 300a ldrsh.w r3, [r7, #10] + 800cf26: 4293 cmp r3, r2 + 800cf28: bfa8 it ge + 800cf2a: 4613 movge r3, r2 + 800cf2c: 813b strh r3, [r7, #8] lv_obj_scroll_by(obj, sr, 0, anim_en); - 800cf9a: 78fb ldrb r3, [r7, #3] - 800cf9c: f9b7 1008 ldrsh.w r1, [r7, #8] - 800cfa0: 2200 movs r2, #0 - 800cfa2: 6878 ldr r0, [r7, #4] - 800cfa4: f7fe fff6 bl 800bf94 + 800cf2e: 78fb ldrb r3, [r7, #3] + 800cf30: f9b7 1008 ldrsh.w r1, [r7, #8] + 800cf34: 2200 movs r2, #0 + 800cf36: 6878 ldr r0, [r7, #4] + 800cf38: f7fe fff6 bl 800bf28 sr = LV_MIN(sr, -sl); lv_obj_scroll_by(obj, sl, 0, anim_en); } } } } - 800cfa8: e017 b.n 800cfda + 800cf3c: e017 b.n 800cf6e if(sl < 0 && sr > 0) { - 800cfaa: f9b7 300a ldrsh.w r3, [r7, #10] - 800cfae: 2b00 cmp r3, #0 - 800cfb0: da13 bge.n 800cfda - 800cfb2: f9b7 3008 ldrsh.w r3, [r7, #8] - 800cfb6: 2b00 cmp r3, #0 - 800cfb8: dd0f ble.n 800cfda + 800cf3e: f9b7 300a ldrsh.w r3, [r7, #10] + 800cf42: 2b00 cmp r3, #0 + 800cf44: da13 bge.n 800cf6e + 800cf46: f9b7 3008 ldrsh.w r3, [r7, #8] + 800cf4a: 2b00 cmp r3, #0 + 800cf4c: dd0f ble.n 800cf6e sr = LV_MIN(sr, -sl); - 800cfba: f9b7 300a ldrsh.w r3, [r7, #10] - 800cfbe: 425a negs r2, r3 - 800cfc0: f9b7 3008 ldrsh.w r3, [r7, #8] - 800cfc4: 4293 cmp r3, r2 - 800cfc6: bfa8 it ge - 800cfc8: 4613 movge r3, r2 - 800cfca: 813b strh r3, [r7, #8] + 800cf4e: f9b7 300a ldrsh.w r3, [r7, #10] + 800cf52: 425a negs r2, r3 + 800cf54: f9b7 3008 ldrsh.w r3, [r7, #8] + 800cf58: 4293 cmp r3, r2 + 800cf5a: bfa8 it ge + 800cf5c: 4613 movge r3, r2 + 800cf5e: 813b strh r3, [r7, #8] lv_obj_scroll_by(obj, sl, 0, anim_en); - 800cfcc: 78fb ldrb r3, [r7, #3] - 800cfce: f9b7 100a ldrsh.w r1, [r7, #10] - 800cfd2: 2200 movs r2, #0 - 800cfd4: 6878 ldr r0, [r7, #4] - 800cfd6: f7fe ffdd bl 800bf94 + 800cf60: 78fb ldrb r3, [r7, #3] + 800cf62: f9b7 100a ldrsh.w r1, [r7, #10] + 800cf66: 2200 movs r2, #0 + 800cf68: 6878 ldr r0, [r7, #4] + 800cf6a: f7fe ffdd bl 800bf28 } - 800cfda: bf00 nop - 800cfdc: 3710 adds r7, #16 - 800cfde: 46bd mov sp, r7 - 800cfe0: bd80 pop {r7, pc} + 800cf6e: bf00 nop + 800cf70: 3710 adds r7, #16 + 800cf72: 46bd mov sp, r7 + 800cf74: bd80 pop {r7, pc} -0800cfe2 : +0800cf76 : /********************** * STATIC FUNCTIONS **********************/ static void scroll_by_raw(lv_obj_t * obj, lv_coord_t x, lv_coord_t y) { - 800cfe2: b580 push {r7, lr} - 800cfe4: b084 sub sp, #16 - 800cfe6: af00 add r7, sp, #0 - 800cfe8: 6078 str r0, [r7, #4] - 800cfea: 460b mov r3, r1 - 800cfec: 807b strh r3, [r7, #2] - 800cfee: 4613 mov r3, r2 - 800cff0: 803b strh r3, [r7, #0] + 800cf76: b580 push {r7, lr} + 800cf78: b084 sub sp, #16 + 800cf7a: af00 add r7, sp, #0 + 800cf7c: 6078 str r0, [r7, #4] + 800cf7e: 460b mov r3, r1 + 800cf80: 807b strh r3, [r7, #2] + 800cf82: 4613 mov r3, r2 + 800cf84: 803b strh r3, [r7, #0] if(x == 0 && y == 0) return; - 800cff2: f9b7 3002 ldrsh.w r3, [r7, #2] - 800cff6: 2b00 cmp r3, #0 - 800cff8: d103 bne.n 800d002 - 800cffa: f9b7 3000 ldrsh.w r3, [r7] - 800cffe: 2b00 cmp r3, #0 - 800d000: d030 beq.n 800d064 + 800cf86: f9b7 3002 ldrsh.w r3, [r7, #2] + 800cf8a: 2b00 cmp r3, #0 + 800cf8c: d103 bne.n 800cf96 + 800cf8e: f9b7 3000 ldrsh.w r3, [r7] + 800cf92: 2b00 cmp r3, #0 + 800cf94: d030 beq.n 800cff8 lv_obj_allocate_spec_attr(obj); - 800d002: 6878 ldr r0, [r7, #4] - 800d004: f7f9 fc16 bl 8006834 + 800cf96: 6878 ldr r0, [r7, #4] + 800cf98: f7f9 fc16 bl 80067c8 obj->spec_attr->scroll.x += x; - 800d008: 687b ldr r3, [r7, #4] - 800d00a: 689b ldr r3, [r3, #8] - 800d00c: f9b3 3010 ldrsh.w r3, [r3, #16] - 800d010: b29a uxth r2, r3 - 800d012: 887b ldrh r3, [r7, #2] - 800d014: 4413 add r3, r2 - 800d016: b29a uxth r2, r3 - 800d018: 687b ldr r3, [r7, #4] - 800d01a: 689b ldr r3, [r3, #8] - 800d01c: b212 sxth r2, r2 - 800d01e: 821a strh r2, [r3, #16] + 800cf9c: 687b ldr r3, [r7, #4] + 800cf9e: 689b ldr r3, [r3, #8] + 800cfa0: f9b3 3010 ldrsh.w r3, [r3, #16] + 800cfa4: b29a uxth r2, r3 + 800cfa6: 887b ldrh r3, [r7, #2] + 800cfa8: 4413 add r3, r2 + 800cfaa: b29a uxth r2, r3 + 800cfac: 687b ldr r3, [r7, #4] + 800cfae: 689b ldr r3, [r3, #8] + 800cfb0: b212 sxth r2, r2 + 800cfb2: 821a strh r2, [r3, #16] obj->spec_attr->scroll.y += y; - 800d020: 687b ldr r3, [r7, #4] - 800d022: 689b ldr r3, [r3, #8] - 800d024: f9b3 3012 ldrsh.w r3, [r3, #18] - 800d028: b29a uxth r2, r3 - 800d02a: 883b ldrh r3, [r7, #0] - 800d02c: 4413 add r3, r2 - 800d02e: b29a uxth r2, r3 - 800d030: 687b ldr r3, [r7, #4] - 800d032: 689b ldr r3, [r3, #8] - 800d034: b212 sxth r2, r2 - 800d036: 825a strh r2, [r3, #18] + 800cfb4: 687b ldr r3, [r7, #4] + 800cfb6: 689b ldr r3, [r3, #8] + 800cfb8: f9b3 3012 ldrsh.w r3, [r3, #18] + 800cfbc: b29a uxth r2, r3 + 800cfbe: 883b ldrh r3, [r7, #0] + 800cfc0: 4413 add r3, r2 + 800cfc2: b29a uxth r2, r3 + 800cfc4: 687b ldr r3, [r7, #4] + 800cfc6: 689b ldr r3, [r3, #8] + 800cfc8: b212 sxth r2, r2 + 800cfca: 825a strh r2, [r3, #18] lv_obj_move_children_by(obj, x, y, true); - 800d038: f9b7 2000 ldrsh.w r2, [r7] - 800d03c: f9b7 1002 ldrsh.w r1, [r7, #2] - 800d040: 2301 movs r3, #1 - 800d042: 6878 ldr r0, [r7, #4] - 800d044: f7fd fcac bl 800a9a0 + 800cfcc: f9b7 2000 ldrsh.w r2, [r7] + 800cfd0: f9b7 1002 ldrsh.w r1, [r7, #2] + 800cfd4: 2301 movs r3, #1 + 800cfd6: 6878 ldr r0, [r7, #4] + 800cfd8: f7fd fcac bl 800a934 lv_res_t res = lv_event_send(obj, LV_EVENT_SCROLL, NULL); - 800d048: 2200 movs r2, #0 - 800d04a: 210b movs r1, #11 - 800d04c: 6878 ldr r0, [r7, #4] - 800d04e: f7f5 fa17 bl 8002480 - 800d052: 4603 mov r3, r0 - 800d054: 73fb strb r3, [r7, #15] + 800cfdc: 2200 movs r2, #0 + 800cfde: 210b movs r1, #11 + 800cfe0: 6878 ldr r0, [r7, #4] + 800cfe2: f7f5 fa17 bl 8002414 + 800cfe6: 4603 mov r3, r0 + 800cfe8: 73fb strb r3, [r7, #15] if(res != LV_RES_OK) return; - 800d056: 7bfb ldrb r3, [r7, #15] - 800d058: 2b01 cmp r3, #1 - 800d05a: d105 bne.n 800d068 + 800cfea: 7bfb ldrb r3, [r7, #15] + 800cfec: 2b01 cmp r3, #1 + 800cfee: d105 bne.n 800cffc lv_obj_invalidate(obj); - 800d05c: 6878 ldr r0, [r7, #4] - 800d05e: f7fd fd28 bl 800aab2 - 800d062: e002 b.n 800d06a + 800cff0: 6878 ldr r0, [r7, #4] + 800cff2: f7fd fd28 bl 800aa46 + 800cff6: e002 b.n 800cffe if(x == 0 && y == 0) return; - 800d064: bf00 nop - 800d066: e000 b.n 800d06a + 800cff8: bf00 nop + 800cffa: e000 b.n 800cffe if(res != LV_RES_OK) return; - 800d068: bf00 nop + 800cffc: bf00 nop } - 800d06a: 3710 adds r7, #16 - 800d06c: 46bd mov sp, r7 - 800d06e: bd80 pop {r7, pc} + 800cffe: 3710 adds r7, #16 + 800d000: 46bd mov sp, r7 + 800d002: bd80 pop {r7, pc} -0800d070 : +0800d004 : static void scroll_x_anim(void * obj, int32_t v) { - 800d070: b580 push {r7, lr} - 800d072: b082 sub sp, #8 - 800d074: af00 add r7, sp, #0 - 800d076: 6078 str r0, [r7, #4] - 800d078: 6039 str r1, [r7, #0] + 800d004: b580 push {r7, lr} + 800d006: b082 sub sp, #8 + 800d008: af00 add r7, sp, #0 + 800d00a: 6078 str r0, [r7, #4] + 800d00c: 6039 str r1, [r7, #0] scroll_by_raw(obj, v + lv_obj_get_scroll_x(obj), 0); - 800d07a: 6878 ldr r0, [r7, #4] - 800d07c: f7fe fc78 bl 800b970 - 800d080: 4603 mov r3, r0 - 800d082: b29a uxth r2, r3 - 800d084: 683b ldr r3, [r7, #0] - 800d086: b29b uxth r3, r3 - 800d088: 4413 add r3, r2 - 800d08a: b29b uxth r3, r3 - 800d08c: b21b sxth r3, r3 - 800d08e: 2200 movs r2, #0 - 800d090: 4619 mov r1, r3 - 800d092: 6878 ldr r0, [r7, #4] - 800d094: f7ff ffa5 bl 800cfe2 + 800d00e: 6878 ldr r0, [r7, #4] + 800d010: f7fe fc78 bl 800b904 + 800d014: 4603 mov r3, r0 + 800d016: b29a uxth r2, r3 + 800d018: 683b ldr r3, [r7, #0] + 800d01a: b29b uxth r3, r3 + 800d01c: 4413 add r3, r2 + 800d01e: b29b uxth r3, r3 + 800d020: b21b sxth r3, r3 + 800d022: 2200 movs r2, #0 + 800d024: 4619 mov r1, r3 + 800d026: 6878 ldr r0, [r7, #4] + 800d028: f7ff ffa5 bl 800cf76 } - 800d098: bf00 nop - 800d09a: 3708 adds r7, #8 - 800d09c: 46bd mov sp, r7 - 800d09e: bd80 pop {r7, pc} + 800d02c: bf00 nop + 800d02e: 3708 adds r7, #8 + 800d030: 46bd mov sp, r7 + 800d032: bd80 pop {r7, pc} -0800d0a0 : +0800d034 : static void scroll_y_anim(void * obj, int32_t v) { - 800d0a0: b580 push {r7, lr} - 800d0a2: b082 sub sp, #8 - 800d0a4: af00 add r7, sp, #0 - 800d0a6: 6078 str r0, [r7, #4] - 800d0a8: 6039 str r1, [r7, #0] + 800d034: b580 push {r7, lr} + 800d036: b082 sub sp, #8 + 800d038: af00 add r7, sp, #0 + 800d03a: 6078 str r0, [r7, #4] + 800d03c: 6039 str r1, [r7, #0] scroll_by_raw(obj, 0, v + lv_obj_get_scroll_y(obj)); - 800d0aa: 6878 ldr r0, [r7, #4] - 800d0ac: f7fe fc77 bl 800b99e - 800d0b0: 4603 mov r3, r0 - 800d0b2: b29a uxth r2, r3 - 800d0b4: 683b ldr r3, [r7, #0] - 800d0b6: b29b uxth r3, r3 - 800d0b8: 4413 add r3, r2 - 800d0ba: b29b uxth r3, r3 - 800d0bc: b21b sxth r3, r3 - 800d0be: 461a mov r2, r3 - 800d0c0: 2100 movs r1, #0 - 800d0c2: 6878 ldr r0, [r7, #4] - 800d0c4: f7ff ff8d bl 800cfe2 + 800d03e: 6878 ldr r0, [r7, #4] + 800d040: f7fe fc77 bl 800b932 + 800d044: 4603 mov r3, r0 + 800d046: b29a uxth r2, r3 + 800d048: 683b ldr r3, [r7, #0] + 800d04a: b29b uxth r3, r3 + 800d04c: 4413 add r3, r2 + 800d04e: b29b uxth r3, r3 + 800d050: b21b sxth r3, r3 + 800d052: 461a mov r2, r3 + 800d054: 2100 movs r1, #0 + 800d056: 6878 ldr r0, [r7, #4] + 800d058: f7ff ff8d bl 800cf76 } - 800d0c8: bf00 nop - 800d0ca: 3708 adds r7, #8 - 800d0cc: 46bd mov sp, r7 - 800d0ce: bd80 pop {r7, pc} + 800d05c: bf00 nop + 800d05e: 3708 adds r7, #8 + 800d060: 46bd mov sp, r7 + 800d062: bd80 pop {r7, pc} -0800d0d0 : +0800d064 : static void scroll_anim_ready_cb(lv_anim_t * a) { - 800d0d0: b580 push {r7, lr} - 800d0d2: b082 sub sp, #8 - 800d0d4: af00 add r7, sp, #0 - 800d0d6: 6078 str r0, [r7, #4] + 800d064: b580 push {r7, lr} + 800d066: b082 sub sp, #8 + 800d068: af00 add r7, sp, #0 + 800d06a: 6078 str r0, [r7, #4] lv_event_send(a->var, LV_EVENT_SCROLL_END, NULL); - 800d0d8: 687b ldr r3, [r7, #4] - 800d0da: 681b ldr r3, [r3, #0] - 800d0dc: 2200 movs r2, #0 - 800d0de: 210a movs r1, #10 - 800d0e0: 4618 mov r0, r3 - 800d0e2: f7f5 f9cd bl 8002480 + 800d06c: 687b ldr r3, [r7, #4] + 800d06e: 681b ldr r3, [r3, #0] + 800d070: 2200 movs r2, #0 + 800d072: 210a movs r1, #10 + 800d074: 4618 mov r0, r3 + 800d076: f7f5 f9cd bl 8002414 } - 800d0e6: bf00 nop - 800d0e8: 3708 adds r7, #8 - 800d0ea: 46bd mov sp, r7 - 800d0ec: bd80 pop {r7, pc} + 800d07a: bf00 nop + 800d07c: 3708 adds r7, #8 + 800d07e: 46bd mov sp, r7 + 800d080: bd80 pop {r7, pc} ... -0800d0f0 : +0800d084 : static void scroll_area_into_view(const lv_area_t * area, lv_obj_t * child, lv_point_t * scroll_value, lv_anim_enable_t anim_en) { - 800d0f0: b580 push {r7, lr} - 800d0f2: b092 sub sp, #72 ; 0x48 - 800d0f4: af00 add r7, sp, #0 - 800d0f6: 60f8 str r0, [r7, #12] - 800d0f8: 60b9 str r1, [r7, #8] - 800d0fa: 607a str r2, [r7, #4] - 800d0fc: 70fb strb r3, [r7, #3] + 800d084: b580 push {r7, lr} + 800d086: b092 sub sp, #72 ; 0x48 + 800d088: af00 add r7, sp, #0 + 800d08a: 60f8 str r0, [r7, #12] + 800d08c: 60b9 str r1, [r7, #8] + 800d08e: 607a str r2, [r7, #4] + 800d090: 70fb strb r3, [r7, #3] lv_obj_t * parent = lv_obj_get_parent(child); - 800d0fe: 68b8 ldr r0, [r7, #8] - 800d100: f002 fb04 bl 800f70c - 800d104: 63f8 str r0, [r7, #60] ; 0x3c + 800d092: 68b8 ldr r0, [r7, #8] + 800d094: f002 faf0 bl 800f678 + 800d098: 63f8 str r0, [r7, #60] ; 0x3c if(!lv_obj_has_flag(parent, LV_OBJ_FLAG_SCROLLABLE)) return; - 800d106: 2110 movs r1, #16 - 800d108: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d10a: f7f9 fb3a bl 8006782 - 800d10e: 4603 mov r3, r0 - 800d110: f083 0301 eor.w r3, r3, #1 - 800d114: b2db uxtb r3, r3 - 800d116: 2b00 cmp r3, #0 - 800d118: f040 829b bne.w 800d652 + 800d09a: 2110 movs r1, #16 + 800d09c: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d09e: f7f9 fb3a bl 8006716 + 800d0a2: 4603 mov r3, r0 + 800d0a4: f083 0301 eor.w r3, r3, #1 + 800d0a8: b2db uxtb r3, r3 + 800d0aa: 2b00 cmp r3, #0 + 800d0ac: f040 829b bne.w 800d5e6 lv_dir_t scroll_dir = lv_obj_get_scroll_dir(parent); - 800d11c: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d11e: f7fe fbe8 bl 800b8f2 - 800d122: 4603 mov r3, r0 - 800d124: f887 303b strb.w r3, [r7, #59] ; 0x3b + 800d0b0: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d0b2: f7fe fbe8 bl 800b886 + 800d0b6: 4603 mov r3, r0 + 800d0b8: f887 303b strb.w r3, [r7, #59] ; 0x3b lv_coord_t snap_goal = 0; - 800d128: 2300 movs r3, #0 - 800d12a: 873b strh r3, [r7, #56] ; 0x38 + 800d0bc: 2300 movs r3, #0 + 800d0be: 873b strh r3, [r7, #56] ; 0x38 lv_coord_t act = 0; - 800d12c: 2300 movs r3, #0 - 800d12e: 86fb strh r3, [r7, #54] ; 0x36 + 800d0c0: 2300 movs r3, #0 + 800d0c2: 86fb strh r3, [r7, #54] ; 0x36 const lv_area_t * area_tmp; lv_coord_t y_scroll = 0; - 800d130: 2300 movs r3, #0 - 800d132: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 800d0c4: 2300 movs r3, #0 + 800d0c6: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 lv_scroll_snap_t snap_y = lv_obj_get_scroll_snap_y(parent); - 800d136: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d138: f7fe fc05 bl 800b946 - 800d13c: 4603 mov r3, r0 - 800d13e: f887 3035 strb.w r3, [r7, #53] ; 0x35 + 800d0ca: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d0cc: f7fe fc05 bl 800b8da + 800d0d0: 4603 mov r3, r0 + 800d0d2: f887 3035 strb.w r3, [r7, #53] ; 0x35 if(snap_y != LV_SCROLL_SNAP_NONE) area_tmp = &child->coords; - 800d142: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 - 800d146: 2b00 cmp r3, #0 - 800d148: d003 beq.n 800d152 - 800d14a: 68bb ldr r3, [r7, #8] - 800d14c: 3314 adds r3, #20 - 800d14e: 647b str r3, [r7, #68] ; 0x44 - 800d150: e001 b.n 800d156 + 800d0d6: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 + 800d0da: 2b00 cmp r3, #0 + 800d0dc: d003 beq.n 800d0e6 + 800d0de: 68bb ldr r3, [r7, #8] + 800d0e0: 3314 adds r3, #20 + 800d0e2: 647b str r3, [r7, #68] ; 0x44 + 800d0e4: e001 b.n 800d0ea else area_tmp = area; - 800d152: 68fb ldr r3, [r7, #12] - 800d154: 647b str r3, [r7, #68] ; 0x44 + 800d0e6: 68fb ldr r3, [r7, #12] + 800d0e8: 647b str r3, [r7, #68] ; 0x44 lv_coord_t border_width = lv_obj_get_style_border_width(parent, LV_PART_MAIN); - 800d156: 2100 movs r1, #0 - 800d158: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d15a: f7fe fb1b bl 800b794 - 800d15e: 4603 mov r3, r0 - 800d160: 867b strh r3, [r7, #50] ; 0x32 + 800d0ea: 2100 movs r1, #0 + 800d0ec: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d0ee: f7fe fb1b bl 800b728 + 800d0f2: 4603 mov r3, r0 + 800d0f4: 867b strh r3, [r7, #50] ; 0x32 lv_coord_t ptop = lv_obj_get_style_pad_top(parent, LV_PART_MAIN) + border_width; - 800d162: 2100 movs r1, #0 - 800d164: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d166: f7fe faa5 bl 800b6b4 - 800d16a: 4603 mov r3, r0 - 800d16c: b29a uxth r2, r3 - 800d16e: 8e7b ldrh r3, [r7, #50] ; 0x32 - 800d170: 4413 add r3, r2 - 800d172: b29b uxth r3, r3 - 800d174: 863b strh r3, [r7, #48] ; 0x30 + 800d0f6: 2100 movs r1, #0 + 800d0f8: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d0fa: f7fe faa5 bl 800b648 + 800d0fe: 4603 mov r3, r0 + 800d100: b29a uxth r2, r3 + 800d102: 8e7b ldrh r3, [r7, #50] ; 0x32 + 800d104: 4413 add r3, r2 + 800d106: b29b uxth r3, r3 + 800d108: 863b strh r3, [r7, #48] ; 0x30 lv_coord_t pbottom = lv_obj_get_style_pad_bottom(parent, LV_PART_MAIN) + border_width; - 800d176: 2100 movs r1, #0 - 800d178: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d17a: f7fe faae bl 800b6da - 800d17e: 4603 mov r3, r0 - 800d180: b29a uxth r2, r3 - 800d182: 8e7b ldrh r3, [r7, #50] ; 0x32 - 800d184: 4413 add r3, r2 - 800d186: b29b uxth r3, r3 - 800d188: 85fb strh r3, [r7, #46] ; 0x2e + 800d10a: 2100 movs r1, #0 + 800d10c: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d10e: f7fe faae bl 800b66e + 800d112: 4603 mov r3, r0 + 800d114: b29a uxth r2, r3 + 800d116: 8e7b ldrh r3, [r7, #50] ; 0x32 + 800d118: 4413 add r3, r2 + 800d11a: b29b uxth r3, r3 + 800d11c: 85fb strh r3, [r7, #46] ; 0x2e lv_coord_t top_diff = parent->coords.y1 + ptop - area_tmp->y1 - scroll_value->y; - 800d18a: 6bfb ldr r3, [r7, #60] ; 0x3c - 800d18c: f9b3 3016 ldrsh.w r3, [r3, #22] - 800d190: b29a uxth r2, r3 - 800d192: 8e3b ldrh r3, [r7, #48] ; 0x30 - 800d194: 4413 add r3, r2 - 800d196: b29a uxth r2, r3 - 800d198: 6c7b ldr r3, [r7, #68] ; 0x44 - 800d19a: f9b3 3002 ldrsh.w r3, [r3, #2] - 800d19e: b29b uxth r3, r3 - 800d1a0: 1ad3 subs r3, r2, r3 - 800d1a2: b29a uxth r2, r3 - 800d1a4: 687b ldr r3, [r7, #4] - 800d1a6: f9b3 3002 ldrsh.w r3, [r3, #2] - 800d1aa: b29b uxth r3, r3 - 800d1ac: 1ad3 subs r3, r2, r3 - 800d1ae: b29b uxth r3, r3 - 800d1b0: 85bb strh r3, [r7, #44] ; 0x2c + 800d11e: 6bfb ldr r3, [r7, #60] ; 0x3c + 800d120: f9b3 3016 ldrsh.w r3, [r3, #22] + 800d124: b29a uxth r2, r3 + 800d126: 8e3b ldrh r3, [r7, #48] ; 0x30 + 800d128: 4413 add r3, r2 + 800d12a: b29a uxth r2, r3 + 800d12c: 6c7b ldr r3, [r7, #68] ; 0x44 + 800d12e: f9b3 3002 ldrsh.w r3, [r3, #2] + 800d132: b29b uxth r3, r3 + 800d134: 1ad3 subs r3, r2, r3 + 800d136: b29a uxth r2, r3 + 800d138: 687b ldr r3, [r7, #4] + 800d13a: f9b3 3002 ldrsh.w r3, [r3, #2] + 800d13e: b29b uxth r3, r3 + 800d140: 1ad3 subs r3, r2, r3 + 800d142: b29b uxth r3, r3 + 800d144: 85bb strh r3, [r7, #44] ; 0x2c lv_coord_t bottom_diff = -(parent->coords.y2 - pbottom - area_tmp->y2 - scroll_value->y); - 800d1b2: 687b ldr r3, [r7, #4] - 800d1b4: f9b3 3002 ldrsh.w r3, [r3, #2] - 800d1b8: b29a uxth r2, r3 - 800d1ba: 6c7b ldr r3, [r7, #68] ; 0x44 - 800d1bc: f9b3 3006 ldrsh.w r3, [r3, #6] - 800d1c0: b299 uxth r1, r3 - 800d1c2: 8df8 ldrh r0, [r7, #46] ; 0x2e - 800d1c4: 6bfb ldr r3, [r7, #60] ; 0x3c - 800d1c6: f9b3 301a ldrsh.w r3, [r3, #26] - 800d1ca: b29b uxth r3, r3 - 800d1cc: 1ac3 subs r3, r0, r3 - 800d1ce: b29b uxth r3, r3 - 800d1d0: 440b add r3, r1 - 800d1d2: b29b uxth r3, r3 - 800d1d4: 4413 add r3, r2 - 800d1d6: b29b uxth r3, r3 - 800d1d8: 857b strh r3, [r7, #42] ; 0x2a + 800d146: 687b ldr r3, [r7, #4] + 800d148: f9b3 3002 ldrsh.w r3, [r3, #2] + 800d14c: b29a uxth r2, r3 + 800d14e: 6c7b ldr r3, [r7, #68] ; 0x44 + 800d150: f9b3 3006 ldrsh.w r3, [r3, #6] + 800d154: b299 uxth r1, r3 + 800d156: 8df8 ldrh r0, [r7, #46] ; 0x2e + 800d158: 6bfb ldr r3, [r7, #60] ; 0x3c + 800d15a: f9b3 301a ldrsh.w r3, [r3, #26] + 800d15e: b29b uxth r3, r3 + 800d160: 1ac3 subs r3, r0, r3 + 800d162: b29b uxth r3, r3 + 800d164: 440b add r3, r1 + 800d166: b29b uxth r3, r3 + 800d168: 4413 add r3, r2 + 800d16a: b29b uxth r3, r3 + 800d16c: 857b strh r3, [r7, #42] ; 0x2a lv_coord_t parent_h = lv_obj_get_height(parent) - ptop - pbottom; - 800d1da: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d1dc: f7fc ffc2 bl 800a164 - 800d1e0: 4603 mov r3, r0 - 800d1e2: b29a uxth r2, r3 - 800d1e4: 8e3b ldrh r3, [r7, #48] ; 0x30 - 800d1e6: 1ad3 subs r3, r2, r3 - 800d1e8: b29a uxth r2, r3 - 800d1ea: 8dfb ldrh r3, [r7, #46] ; 0x2e - 800d1ec: 1ad3 subs r3, r2, r3 - 800d1ee: b29b uxth r3, r3 - 800d1f0: 853b strh r3, [r7, #40] ; 0x28 + 800d16e: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d170: f7fc ffc2 bl 800a0f8 + 800d174: 4603 mov r3, r0 + 800d176: b29a uxth r2, r3 + 800d178: 8e3b ldrh r3, [r7, #48] ; 0x30 + 800d17a: 1ad3 subs r3, r2, r3 + 800d17c: b29a uxth r2, r3 + 800d17e: 8dfb ldrh r3, [r7, #46] ; 0x2e + 800d180: 1ad3 subs r3, r2, r3 + 800d182: b29b uxth r3, r3 + 800d184: 853b strh r3, [r7, #40] ; 0x28 if((top_diff >= 0 && bottom_diff >= 0)) y_scroll = 0; - 800d1f2: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 800d1f6: 2b00 cmp r3, #0 - 800d1f8: db07 blt.n 800d20a - 800d1fa: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a - 800d1fe: 2b00 cmp r3, #0 - 800d200: db03 blt.n 800d20a - 800d202: 2300 movs r3, #0 - 800d204: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 - 800d208: e02e b.n 800d268 + 800d186: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 800d18a: 2b00 cmp r3, #0 + 800d18c: db07 blt.n 800d19e + 800d18e: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a + 800d192: 2b00 cmp r3, #0 + 800d194: db03 blt.n 800d19e + 800d196: 2300 movs r3, #0 + 800d198: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 800d19c: e02e b.n 800d1fc else if(top_diff > 0) { - 800d20a: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 800d20e: 2b00 cmp r3, #0 - 800d210: dd12 ble.n 800d238 + 800d19e: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 800d1a2: 2b00 cmp r3, #0 + 800d1a4: dd12 ble.n 800d1cc y_scroll = top_diff; - 800d212: 8dbb ldrh r3, [r7, #44] ; 0x2c - 800d214: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 800d1a6: 8dbb ldrh r3, [r7, #44] ; 0x2c + 800d1a8: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 /*Do not let scrolling in*/ lv_coord_t st = lv_obj_get_scroll_top(parent); - 800d218: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d21a: f7fe fbd7 bl 800b9cc - 800d21e: 4603 mov r3, r0 - 800d220: 84bb strh r3, [r7, #36] ; 0x24 + 800d1ac: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d1ae: f7fe fbd7 bl 800b960 + 800d1b2: 4603 mov r3, r0 + 800d1b4: 84bb strh r3, [r7, #36] ; 0x24 if(st - y_scroll < 0) y_scroll = 0; - 800d222: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 - 800d226: f9b7 3042 ldrsh.w r3, [r7, #66] ; 0x42 - 800d22a: 1ad3 subs r3, r2, r3 - 800d22c: 2b00 cmp r3, #0 - 800d22e: da1b bge.n 800d268 - 800d230: 2300 movs r3, #0 - 800d232: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 - 800d236: e017 b.n 800d268 + 800d1b6: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 + 800d1ba: f9b7 3042 ldrsh.w r3, [r7, #66] ; 0x42 + 800d1be: 1ad3 subs r3, r2, r3 + 800d1c0: 2b00 cmp r3, #0 + 800d1c2: da1b bge.n 800d1fc + 800d1c4: 2300 movs r3, #0 + 800d1c6: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 800d1ca: e017 b.n 800d1fc } else if(bottom_diff > 0) { - 800d238: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a - 800d23c: 2b00 cmp r3, #0 - 800d23e: dd13 ble.n 800d268 + 800d1cc: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a + 800d1d0: 2b00 cmp r3, #0 + 800d1d2: dd13 ble.n 800d1fc y_scroll = -bottom_diff; - 800d240: 8d7b ldrh r3, [r7, #42] ; 0x2a - 800d242: 425b negs r3, r3 - 800d244: b29b uxth r3, r3 - 800d246: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 800d1d4: 8d7b ldrh r3, [r7, #42] ; 0x2a + 800d1d6: 425b negs r3, r3 + 800d1d8: b29b uxth r3, r3 + 800d1da: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 /*Do not let scrolling in*/ lv_coord_t sb = lv_obj_get_scroll_bottom(parent); - 800d24a: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d24c: f7fe fbd6 bl 800b9fc - 800d250: 4603 mov r3, r0 - 800d252: 84fb strh r3, [r7, #38] ; 0x26 + 800d1de: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d1e0: f7fe fbd6 bl 800b990 + 800d1e4: 4603 mov r3, r0 + 800d1e6: 84fb strh r3, [r7, #38] ; 0x26 if(sb + y_scroll < 0) y_scroll = 0; - 800d254: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 - 800d258: f9b7 3042 ldrsh.w r3, [r7, #66] ; 0x42 - 800d25c: 4413 add r3, r2 - 800d25e: 2b00 cmp r3, #0 - 800d260: da02 bge.n 800d268 - 800d262: 2300 movs r3, #0 - 800d264: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 800d1e8: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 + 800d1ec: f9b7 3042 ldrsh.w r3, [r7, #66] ; 0x42 + 800d1f0: 4413 add r3, r2 + 800d1f2: 2b00 cmp r3, #0 + 800d1f4: da02 bge.n 800d1fc + 800d1f6: 2300 movs r3, #0 + 800d1f8: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 } switch(snap_y) { - 800d268: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 - 800d26c: 2b03 cmp r3, #3 - 800d26e: d03e beq.n 800d2ee - 800d270: 2b03 cmp r3, #3 - 800d272: dc6c bgt.n 800d34e - 800d274: 2b01 cmp r3, #1 - 800d276: d002 beq.n 800d27e - 800d278: 2b02 cmp r3, #2 - 800d27a: d01c beq.n 800d2b6 - 800d27c: e067 b.n 800d34e + 800d1fc: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 + 800d200: 2b03 cmp r3, #3 + 800d202: d03e beq.n 800d282 + 800d204: 2b03 cmp r3, #3 + 800d206: dc6c bgt.n 800d2e2 + 800d208: 2b01 cmp r3, #1 + 800d20a: d002 beq.n 800d212 + 800d20c: 2b02 cmp r3, #2 + 800d20e: d01c beq.n 800d24a + 800d210: e067 b.n 800d2e2 case LV_SCROLL_SNAP_START: snap_goal = parent->coords.y1 + ptop; - 800d27e: 6bfb ldr r3, [r7, #60] ; 0x3c - 800d280: f9b3 3016 ldrsh.w r3, [r3, #22] - 800d284: b29a uxth r2, r3 - 800d286: 8e3b ldrh r3, [r7, #48] ; 0x30 - 800d288: 4413 add r3, r2 - 800d28a: b29b uxth r3, r3 - 800d28c: 873b strh r3, [r7, #56] ; 0x38 + 800d212: 6bfb ldr r3, [r7, #60] ; 0x3c + 800d214: f9b3 3016 ldrsh.w r3, [r3, #22] + 800d218: b29a uxth r2, r3 + 800d21a: 8e3b ldrh r3, [r7, #48] ; 0x30 + 800d21c: 4413 add r3, r2 + 800d21e: b29b uxth r3, r3 + 800d220: 873b strh r3, [r7, #56] ; 0x38 act = area_tmp->y1 + y_scroll; - 800d28e: 6c7b ldr r3, [r7, #68] ; 0x44 - 800d290: f9b3 3002 ldrsh.w r3, [r3, #2] - 800d294: b29a uxth r2, r3 - 800d296: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 800d29a: 4413 add r3, r2 - 800d29c: b29b uxth r3, r3 - 800d29e: 86fb strh r3, [r7, #54] ; 0x36 + 800d222: 6c7b ldr r3, [r7, #68] ; 0x44 + 800d224: f9b3 3002 ldrsh.w r3, [r3, #2] + 800d228: b29a uxth r2, r3 + 800d22a: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 800d22e: 4413 add r3, r2 + 800d230: b29b uxth r3, r3 + 800d232: 86fb strh r3, [r7, #54] ; 0x36 y_scroll += snap_goal - act; - 800d2a0: 8f3a ldrh r2, [r7, #56] ; 0x38 - 800d2a2: 8efb ldrh r3, [r7, #54] ; 0x36 - 800d2a4: 1ad3 subs r3, r2, r3 - 800d2a6: b29a uxth r2, r3 - 800d2a8: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 800d2ac: 4413 add r3, r2 - 800d2ae: b29b uxth r3, r3 - 800d2b0: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 800d234: 8f3a ldrh r2, [r7, #56] ; 0x38 + 800d236: 8efb ldrh r3, [r7, #54] ; 0x36 + 800d238: 1ad3 subs r3, r2, r3 + 800d23a: b29a uxth r2, r3 + 800d23c: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 800d240: 4413 add r3, r2 + 800d242: b29b uxth r3, r3 + 800d244: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 break; - 800d2b4: e04b b.n 800d34e + 800d248: e04b b.n 800d2e2 case LV_SCROLL_SNAP_END: snap_goal = parent->coords.y2 - pbottom; - 800d2b6: 6bfb ldr r3, [r7, #60] ; 0x3c - 800d2b8: f9b3 301a ldrsh.w r3, [r3, #26] - 800d2bc: b29a uxth r2, r3 - 800d2be: 8dfb ldrh r3, [r7, #46] ; 0x2e - 800d2c0: 1ad3 subs r3, r2, r3 - 800d2c2: b29b uxth r3, r3 - 800d2c4: 873b strh r3, [r7, #56] ; 0x38 + 800d24a: 6bfb ldr r3, [r7, #60] ; 0x3c + 800d24c: f9b3 301a ldrsh.w r3, [r3, #26] + 800d250: b29a uxth r2, r3 + 800d252: 8dfb ldrh r3, [r7, #46] ; 0x2e + 800d254: 1ad3 subs r3, r2, r3 + 800d256: b29b uxth r3, r3 + 800d258: 873b strh r3, [r7, #56] ; 0x38 act = area_tmp->y2 + y_scroll; - 800d2c6: 6c7b ldr r3, [r7, #68] ; 0x44 - 800d2c8: f9b3 3006 ldrsh.w r3, [r3, #6] - 800d2cc: b29a uxth r2, r3 - 800d2ce: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 800d2d2: 4413 add r3, r2 - 800d2d4: b29b uxth r3, r3 - 800d2d6: 86fb strh r3, [r7, #54] ; 0x36 + 800d25a: 6c7b ldr r3, [r7, #68] ; 0x44 + 800d25c: f9b3 3006 ldrsh.w r3, [r3, #6] + 800d260: b29a uxth r2, r3 + 800d262: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 800d266: 4413 add r3, r2 + 800d268: b29b uxth r3, r3 + 800d26a: 86fb strh r3, [r7, #54] ; 0x36 y_scroll += snap_goal - act; - 800d2d8: 8f3a ldrh r2, [r7, #56] ; 0x38 - 800d2da: 8efb ldrh r3, [r7, #54] ; 0x36 - 800d2dc: 1ad3 subs r3, r2, r3 - 800d2de: b29a uxth r2, r3 - 800d2e0: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 800d2e4: 4413 add r3, r2 - 800d2e6: b29b uxth r3, r3 - 800d2e8: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 800d26c: 8f3a ldrh r2, [r7, #56] ; 0x38 + 800d26e: 8efb ldrh r3, [r7, #54] ; 0x36 + 800d270: 1ad3 subs r3, r2, r3 + 800d272: b29a uxth r2, r3 + 800d274: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 800d278: 4413 add r3, r2 + 800d27a: b29b uxth r3, r3 + 800d27c: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 break; - 800d2ec: e02f b.n 800d34e + 800d280: e02f b.n 800d2e2 case LV_SCROLL_SNAP_CENTER: snap_goal = parent->coords.y1 + ptop + parent_h / 2; - 800d2ee: 6bfb ldr r3, [r7, #60] ; 0x3c - 800d2f0: f9b3 3016 ldrsh.w r3, [r3, #22] - 800d2f4: b29a uxth r2, r3 - 800d2f6: 8e3b ldrh r3, [r7, #48] ; 0x30 - 800d2f8: 4413 add r3, r2 - 800d2fa: b29a uxth r2, r3 - 800d2fc: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 - 800d300: 0fd9 lsrs r1, r3, #31 - 800d302: 440b add r3, r1 - 800d304: 105b asrs r3, r3, #1 - 800d306: b21b sxth r3, r3 - 800d308: b29b uxth r3, r3 - 800d30a: 4413 add r3, r2 - 800d30c: b29b uxth r3, r3 - 800d30e: 873b strh r3, [r7, #56] ; 0x38 + 800d282: 6bfb ldr r3, [r7, #60] ; 0x3c + 800d284: f9b3 3016 ldrsh.w r3, [r3, #22] + 800d288: b29a uxth r2, r3 + 800d28a: 8e3b ldrh r3, [r7, #48] ; 0x30 + 800d28c: 4413 add r3, r2 + 800d28e: b29a uxth r2, r3 + 800d290: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 800d294: 0fd9 lsrs r1, r3, #31 + 800d296: 440b add r3, r1 + 800d298: 105b asrs r3, r3, #1 + 800d29a: b21b sxth r3, r3 + 800d29c: b29b uxth r3, r3 + 800d29e: 4413 add r3, r2 + 800d2a0: b29b uxth r3, r3 + 800d2a2: 873b strh r3, [r7, #56] ; 0x38 act = lv_area_get_height(area_tmp) / 2 + area_tmp->y1 + y_scroll; - 800d310: 6c78 ldr r0, [r7, #68] ; 0x44 - 800d312: f7fe f951 bl 800b5b8 - 800d316: 4603 mov r3, r0 - 800d318: 0fda lsrs r2, r3, #31 - 800d31a: 4413 add r3, r2 - 800d31c: 105b asrs r3, r3, #1 - 800d31e: b21b sxth r3, r3 - 800d320: b29a uxth r2, r3 - 800d322: 6c7b ldr r3, [r7, #68] ; 0x44 - 800d324: f9b3 3002 ldrsh.w r3, [r3, #2] - 800d328: b29b uxth r3, r3 - 800d32a: 4413 add r3, r2 - 800d32c: b29a uxth r2, r3 - 800d32e: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 800d332: 4413 add r3, r2 - 800d334: b29b uxth r3, r3 - 800d336: 86fb strh r3, [r7, #54] ; 0x36 + 800d2a4: 6c78 ldr r0, [r7, #68] ; 0x44 + 800d2a6: f7fe f951 bl 800b54c + 800d2aa: 4603 mov r3, r0 + 800d2ac: 0fda lsrs r2, r3, #31 + 800d2ae: 4413 add r3, r2 + 800d2b0: 105b asrs r3, r3, #1 + 800d2b2: b21b sxth r3, r3 + 800d2b4: b29a uxth r2, r3 + 800d2b6: 6c7b ldr r3, [r7, #68] ; 0x44 + 800d2b8: f9b3 3002 ldrsh.w r3, [r3, #2] + 800d2bc: b29b uxth r3, r3 + 800d2be: 4413 add r3, r2 + 800d2c0: b29a uxth r2, r3 + 800d2c2: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 800d2c6: 4413 add r3, r2 + 800d2c8: b29b uxth r3, r3 + 800d2ca: 86fb strh r3, [r7, #54] ; 0x36 y_scroll += snap_goal - act; - 800d338: 8f3a ldrh r2, [r7, #56] ; 0x38 - 800d33a: 8efb ldrh r3, [r7, #54] ; 0x36 - 800d33c: 1ad3 subs r3, r2, r3 - 800d33e: b29a uxth r2, r3 - 800d340: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 800d344: 4413 add r3, r2 - 800d346: b29b uxth r3, r3 - 800d348: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 800d2cc: 8f3a ldrh r2, [r7, #56] ; 0x38 + 800d2ce: 8efb ldrh r3, [r7, #54] ; 0x36 + 800d2d0: 1ad3 subs r3, r2, r3 + 800d2d2: b29a uxth r2, r3 + 800d2d4: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 800d2d8: 4413 add r3, r2 + 800d2da: b29b uxth r3, r3 + 800d2dc: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 break; - 800d34c: bf00 nop + 800d2e0: bf00 nop } lv_coord_t x_scroll = 0; - 800d34e: 2300 movs r3, #0 - 800d350: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 800d2e2: 2300 movs r3, #0 + 800d2e4: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 lv_scroll_snap_t snap_x = lv_obj_get_scroll_snap_x(parent); - 800d354: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d356: f7fe fae1 bl 800b91c - 800d35a: 4603 mov r3, r0 - 800d35c: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 800d2e8: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d2ea: f7fe fae1 bl 800b8b0 + 800d2ee: 4603 mov r3, r0 + 800d2f0: f887 3023 strb.w r3, [r7, #35] ; 0x23 if(snap_x != LV_SCROLL_SNAP_NONE) area_tmp = &child->coords; - 800d360: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 800d364: 2b00 cmp r3, #0 - 800d366: d003 beq.n 800d370 - 800d368: 68bb ldr r3, [r7, #8] - 800d36a: 3314 adds r3, #20 - 800d36c: 647b str r3, [r7, #68] ; 0x44 - 800d36e: e001 b.n 800d374 + 800d2f4: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 800d2f8: 2b00 cmp r3, #0 + 800d2fa: d003 beq.n 800d304 + 800d2fc: 68bb ldr r3, [r7, #8] + 800d2fe: 3314 adds r3, #20 + 800d300: 647b str r3, [r7, #68] ; 0x44 + 800d302: e001 b.n 800d308 else area_tmp = area; - 800d370: 68fb ldr r3, [r7, #12] - 800d372: 647b str r3, [r7, #68] ; 0x44 + 800d304: 68fb ldr r3, [r7, #12] + 800d306: 647b str r3, [r7, #68] ; 0x44 lv_coord_t pleft = lv_obj_get_style_pad_left(parent, LV_PART_MAIN) + border_width; - 800d374: 2100 movs r1, #0 - 800d376: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d378: f7fe f9c2 bl 800b700 - 800d37c: 4603 mov r3, r0 - 800d37e: b29a uxth r2, r3 - 800d380: 8e7b ldrh r3, [r7, #50] ; 0x32 - 800d382: 4413 add r3, r2 - 800d384: b29b uxth r3, r3 - 800d386: 843b strh r3, [r7, #32] + 800d308: 2100 movs r1, #0 + 800d30a: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d30c: f7fe f9c2 bl 800b694 + 800d310: 4603 mov r3, r0 + 800d312: b29a uxth r2, r3 + 800d314: 8e7b ldrh r3, [r7, #50] ; 0x32 + 800d316: 4413 add r3, r2 + 800d318: b29b uxth r3, r3 + 800d31a: 843b strh r3, [r7, #32] lv_coord_t pright = lv_obj_get_style_pad_right(parent, LV_PART_MAIN) + border_width; - 800d388: 2100 movs r1, #0 - 800d38a: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d38c: f7fe f9cb bl 800b726 - 800d390: 4603 mov r3, r0 - 800d392: b29a uxth r2, r3 - 800d394: 8e7b ldrh r3, [r7, #50] ; 0x32 - 800d396: 4413 add r3, r2 - 800d398: b29b uxth r3, r3 - 800d39a: 83fb strh r3, [r7, #30] + 800d31c: 2100 movs r1, #0 + 800d31e: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d320: f7fe f9cb bl 800b6ba + 800d324: 4603 mov r3, r0 + 800d326: b29a uxth r2, r3 + 800d328: 8e7b ldrh r3, [r7, #50] ; 0x32 + 800d32a: 4413 add r3, r2 + 800d32c: b29b uxth r3, r3 + 800d32e: 83fb strh r3, [r7, #30] lv_coord_t left_diff = parent->coords.x1 + pleft - area_tmp->x1 - scroll_value->x; - 800d39c: 6bfb ldr r3, [r7, #60] ; 0x3c - 800d39e: f9b3 3014 ldrsh.w r3, [r3, #20] - 800d3a2: b29a uxth r2, r3 - 800d3a4: 8c3b ldrh r3, [r7, #32] - 800d3a6: 4413 add r3, r2 - 800d3a8: b29a uxth r2, r3 - 800d3aa: 6c7b ldr r3, [r7, #68] ; 0x44 - 800d3ac: f9b3 3000 ldrsh.w r3, [r3] - 800d3b0: b29b uxth r3, r3 - 800d3b2: 1ad3 subs r3, r2, r3 - 800d3b4: b29a uxth r2, r3 - 800d3b6: 687b ldr r3, [r7, #4] - 800d3b8: f9b3 3000 ldrsh.w r3, [r3] - 800d3bc: b29b uxth r3, r3 - 800d3be: 1ad3 subs r3, r2, r3 - 800d3c0: b29b uxth r3, r3 - 800d3c2: 83bb strh r3, [r7, #28] + 800d330: 6bfb ldr r3, [r7, #60] ; 0x3c + 800d332: f9b3 3014 ldrsh.w r3, [r3, #20] + 800d336: b29a uxth r2, r3 + 800d338: 8c3b ldrh r3, [r7, #32] + 800d33a: 4413 add r3, r2 + 800d33c: b29a uxth r2, r3 + 800d33e: 6c7b ldr r3, [r7, #68] ; 0x44 + 800d340: f9b3 3000 ldrsh.w r3, [r3] + 800d344: b29b uxth r3, r3 + 800d346: 1ad3 subs r3, r2, r3 + 800d348: b29a uxth r2, r3 + 800d34a: 687b ldr r3, [r7, #4] + 800d34c: f9b3 3000 ldrsh.w r3, [r3] + 800d350: b29b uxth r3, r3 + 800d352: 1ad3 subs r3, r2, r3 + 800d354: b29b uxth r3, r3 + 800d356: 83bb strh r3, [r7, #28] lv_coord_t right_diff = -(parent->coords.x2 - pright - area_tmp->x2 - scroll_value->x); - 800d3c4: 687b ldr r3, [r7, #4] - 800d3c6: f9b3 3000 ldrsh.w r3, [r3] - 800d3ca: b29a uxth r2, r3 - 800d3cc: 6c7b ldr r3, [r7, #68] ; 0x44 - 800d3ce: f9b3 3004 ldrsh.w r3, [r3, #4] - 800d3d2: b299 uxth r1, r3 - 800d3d4: 8bf8 ldrh r0, [r7, #30] - 800d3d6: 6bfb ldr r3, [r7, #60] ; 0x3c - 800d3d8: f9b3 3018 ldrsh.w r3, [r3, #24] - 800d3dc: b29b uxth r3, r3 - 800d3de: 1ac3 subs r3, r0, r3 - 800d3e0: b29b uxth r3, r3 - 800d3e2: 440b add r3, r1 - 800d3e4: b29b uxth r3, r3 - 800d3e6: 4413 add r3, r2 - 800d3e8: b29b uxth r3, r3 - 800d3ea: 837b strh r3, [r7, #26] + 800d358: 687b ldr r3, [r7, #4] + 800d35a: f9b3 3000 ldrsh.w r3, [r3] + 800d35e: b29a uxth r2, r3 + 800d360: 6c7b ldr r3, [r7, #68] ; 0x44 + 800d362: f9b3 3004 ldrsh.w r3, [r3, #4] + 800d366: b299 uxth r1, r3 + 800d368: 8bf8 ldrh r0, [r7, #30] + 800d36a: 6bfb ldr r3, [r7, #60] ; 0x3c + 800d36c: f9b3 3018 ldrsh.w r3, [r3, #24] + 800d370: b29b uxth r3, r3 + 800d372: 1ac3 subs r3, r0, r3 + 800d374: b29b uxth r3, r3 + 800d376: 440b add r3, r1 + 800d378: b29b uxth r3, r3 + 800d37a: 4413 add r3, r2 + 800d37c: b29b uxth r3, r3 + 800d37e: 837b strh r3, [r7, #26] if((left_diff >= 0 && right_diff >= 0)) x_scroll = 0; - 800d3ec: f9b7 301c ldrsh.w r3, [r7, #28] - 800d3f0: 2b00 cmp r3, #0 - 800d3f2: db07 blt.n 800d404 - 800d3f4: f9b7 301a ldrsh.w r3, [r7, #26] - 800d3f8: 2b00 cmp r3, #0 - 800d3fa: db03 blt.n 800d404 - 800d3fc: 2300 movs r3, #0 - 800d3fe: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 - 800d402: e02e b.n 800d462 + 800d380: f9b7 301c ldrsh.w r3, [r7, #28] + 800d384: 2b00 cmp r3, #0 + 800d386: db07 blt.n 800d398 + 800d388: f9b7 301a ldrsh.w r3, [r7, #26] + 800d38c: 2b00 cmp r3, #0 + 800d38e: db03 blt.n 800d398 + 800d390: 2300 movs r3, #0 + 800d392: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 800d396: e02e b.n 800d3f6 else if(left_diff > 0) { - 800d404: f9b7 301c ldrsh.w r3, [r7, #28] - 800d408: 2b00 cmp r3, #0 - 800d40a: dd12 ble.n 800d432 + 800d398: f9b7 301c ldrsh.w r3, [r7, #28] + 800d39c: 2b00 cmp r3, #0 + 800d39e: dd12 ble.n 800d3c6 x_scroll = left_diff; - 800d40c: 8bbb ldrh r3, [r7, #28] - 800d40e: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 800d3a0: 8bbb ldrh r3, [r7, #28] + 800d3a2: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 /*Do not let scrolling in*/ lv_coord_t sl = lv_obj_get_scroll_left(parent); - 800d412: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d414: f7fe fb78 bl 800bb08 - 800d418: 4603 mov r3, r0 - 800d41a: 82fb strh r3, [r7, #22] + 800d3a6: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d3a8: f7fe fb78 bl 800ba9c + 800d3ac: 4603 mov r3, r0 + 800d3ae: 82fb strh r3, [r7, #22] if(sl + x_scroll > 0) x_scroll = 0; - 800d41c: f9b7 2016 ldrsh.w r2, [r7, #22] - 800d420: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 - 800d424: 4413 add r3, r2 - 800d426: 2b00 cmp r3, #0 - 800d428: dd1b ble.n 800d462 - 800d42a: 2300 movs r3, #0 - 800d42c: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 - 800d430: e017 b.n 800d462 + 800d3b0: f9b7 2016 ldrsh.w r2, [r7, #22] + 800d3b4: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 + 800d3b8: 4413 add r3, r2 + 800d3ba: 2b00 cmp r3, #0 + 800d3bc: dd1b ble.n 800d3f6 + 800d3be: 2300 movs r3, #0 + 800d3c0: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 800d3c4: e017 b.n 800d3f6 } else if(right_diff > 0) { - 800d432: f9b7 301a ldrsh.w r3, [r7, #26] - 800d436: 2b00 cmp r3, #0 - 800d438: dd13 ble.n 800d462 + 800d3c6: f9b7 301a ldrsh.w r3, [r7, #26] + 800d3ca: 2b00 cmp r3, #0 + 800d3cc: dd13 ble.n 800d3f6 x_scroll = -right_diff; - 800d43a: 8b7b ldrh r3, [r7, #26] - 800d43c: 425b negs r3, r3 - 800d43e: b29b uxth r3, r3 - 800d440: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 800d3ce: 8b7b ldrh r3, [r7, #26] + 800d3d0: 425b negs r3, r3 + 800d3d2: b29b uxth r3, r3 + 800d3d4: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 /*Do not let scrolling in*/ lv_coord_t sr = lv_obj_get_scroll_right(parent); - 800d444: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d446: f7fe fc03 bl 800bc50 - 800d44a: 4603 mov r3, r0 - 800d44c: 833b strh r3, [r7, #24] + 800d3d8: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d3da: f7fe fc03 bl 800bbe4 + 800d3de: 4603 mov r3, r0 + 800d3e0: 833b strh r3, [r7, #24] if(sr + x_scroll < 0) x_scroll = 0; - 800d44e: f9b7 2018 ldrsh.w r2, [r7, #24] - 800d452: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 - 800d456: 4413 add r3, r2 - 800d458: 2b00 cmp r3, #0 - 800d45a: da02 bge.n 800d462 - 800d45c: 2300 movs r3, #0 - 800d45e: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 800d3e2: f9b7 2018 ldrsh.w r2, [r7, #24] + 800d3e6: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 + 800d3ea: 4413 add r3, r2 + 800d3ec: 2b00 cmp r3, #0 + 800d3ee: da02 bge.n 800d3f6 + 800d3f0: 2300 movs r3, #0 + 800d3f2: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 } lv_coord_t parent_w = lv_obj_get_width(parent) - pleft - pright; - 800d462: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d464: f7fc fe70 bl 800a148 - 800d468: 4603 mov r3, r0 - 800d46a: b29a uxth r2, r3 - 800d46c: 8c3b ldrh r3, [r7, #32] - 800d46e: 1ad3 subs r3, r2, r3 - 800d470: b29a uxth r2, r3 - 800d472: 8bfb ldrh r3, [r7, #30] - 800d474: 1ad3 subs r3, r2, r3 - 800d476: b29b uxth r3, r3 - 800d478: 82bb strh r3, [r7, #20] + 800d3f6: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d3f8: f7fc fe70 bl 800a0dc + 800d3fc: 4603 mov r3, r0 + 800d3fe: b29a uxth r2, r3 + 800d400: 8c3b ldrh r3, [r7, #32] + 800d402: 1ad3 subs r3, r2, r3 + 800d404: b29a uxth r2, r3 + 800d406: 8bfb ldrh r3, [r7, #30] + 800d408: 1ad3 subs r3, r2, r3 + 800d40a: b29b uxth r3, r3 + 800d40c: 82bb strh r3, [r7, #20] switch(snap_x) { - 800d47a: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 800d47e: 2b03 cmp r3, #3 - 800d480: d03e beq.n 800d500 - 800d482: 2b03 cmp r3, #3 - 800d484: dc6c bgt.n 800d560 - 800d486: 2b01 cmp r3, #1 - 800d488: d002 beq.n 800d490 - 800d48a: 2b02 cmp r3, #2 - 800d48c: d01c beq.n 800d4c8 - 800d48e: e067 b.n 800d560 + 800d40e: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 800d412: 2b03 cmp r3, #3 + 800d414: d03e beq.n 800d494 + 800d416: 2b03 cmp r3, #3 + 800d418: dc6c bgt.n 800d4f4 + 800d41a: 2b01 cmp r3, #1 + 800d41c: d002 beq.n 800d424 + 800d41e: 2b02 cmp r3, #2 + 800d420: d01c beq.n 800d45c + 800d422: e067 b.n 800d4f4 case LV_SCROLL_SNAP_START: snap_goal = parent->coords.x1 + pleft; - 800d490: 6bfb ldr r3, [r7, #60] ; 0x3c - 800d492: f9b3 3014 ldrsh.w r3, [r3, #20] - 800d496: b29a uxth r2, r3 - 800d498: 8c3b ldrh r3, [r7, #32] - 800d49a: 4413 add r3, r2 - 800d49c: b29b uxth r3, r3 - 800d49e: 873b strh r3, [r7, #56] ; 0x38 + 800d424: 6bfb ldr r3, [r7, #60] ; 0x3c + 800d426: f9b3 3014 ldrsh.w r3, [r3, #20] + 800d42a: b29a uxth r2, r3 + 800d42c: 8c3b ldrh r3, [r7, #32] + 800d42e: 4413 add r3, r2 + 800d430: b29b uxth r3, r3 + 800d432: 873b strh r3, [r7, #56] ; 0x38 act = area_tmp->x1 + x_scroll; - 800d4a0: 6c7b ldr r3, [r7, #68] ; 0x44 - 800d4a2: f9b3 3000 ldrsh.w r3, [r3] - 800d4a6: b29a uxth r2, r3 - 800d4a8: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 - 800d4ac: 4413 add r3, r2 - 800d4ae: b29b uxth r3, r3 - 800d4b0: 86fb strh r3, [r7, #54] ; 0x36 + 800d434: 6c7b ldr r3, [r7, #68] ; 0x44 + 800d436: f9b3 3000 ldrsh.w r3, [r3] + 800d43a: b29a uxth r2, r3 + 800d43c: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 + 800d440: 4413 add r3, r2 + 800d442: b29b uxth r3, r3 + 800d444: 86fb strh r3, [r7, #54] ; 0x36 x_scroll += snap_goal - act; - 800d4b2: 8f3a ldrh r2, [r7, #56] ; 0x38 - 800d4b4: 8efb ldrh r3, [r7, #54] ; 0x36 - 800d4b6: 1ad3 subs r3, r2, r3 - 800d4b8: b29a uxth r2, r3 - 800d4ba: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 - 800d4be: 4413 add r3, r2 - 800d4c0: b29b uxth r3, r3 - 800d4c2: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 800d446: 8f3a ldrh r2, [r7, #56] ; 0x38 + 800d448: 8efb ldrh r3, [r7, #54] ; 0x36 + 800d44a: 1ad3 subs r3, r2, r3 + 800d44c: b29a uxth r2, r3 + 800d44e: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 + 800d452: 4413 add r3, r2 + 800d454: b29b uxth r3, r3 + 800d456: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 break; - 800d4c6: e04b b.n 800d560 + 800d45a: e04b b.n 800d4f4 case LV_SCROLL_SNAP_END: snap_goal = parent->coords.x2 - pright; - 800d4c8: 6bfb ldr r3, [r7, #60] ; 0x3c - 800d4ca: f9b3 3018 ldrsh.w r3, [r3, #24] - 800d4ce: b29a uxth r2, r3 - 800d4d0: 8bfb ldrh r3, [r7, #30] - 800d4d2: 1ad3 subs r3, r2, r3 - 800d4d4: b29b uxth r3, r3 - 800d4d6: 873b strh r3, [r7, #56] ; 0x38 + 800d45c: 6bfb ldr r3, [r7, #60] ; 0x3c + 800d45e: f9b3 3018 ldrsh.w r3, [r3, #24] + 800d462: b29a uxth r2, r3 + 800d464: 8bfb ldrh r3, [r7, #30] + 800d466: 1ad3 subs r3, r2, r3 + 800d468: b29b uxth r3, r3 + 800d46a: 873b strh r3, [r7, #56] ; 0x38 act = area_tmp->x2 + x_scroll; - 800d4d8: 6c7b ldr r3, [r7, #68] ; 0x44 - 800d4da: f9b3 3004 ldrsh.w r3, [r3, #4] - 800d4de: b29a uxth r2, r3 - 800d4e0: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 - 800d4e4: 4413 add r3, r2 - 800d4e6: b29b uxth r3, r3 - 800d4e8: 86fb strh r3, [r7, #54] ; 0x36 + 800d46c: 6c7b ldr r3, [r7, #68] ; 0x44 + 800d46e: f9b3 3004 ldrsh.w r3, [r3, #4] + 800d472: b29a uxth r2, r3 + 800d474: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 + 800d478: 4413 add r3, r2 + 800d47a: b29b uxth r3, r3 + 800d47c: 86fb strh r3, [r7, #54] ; 0x36 x_scroll += snap_goal - act; - 800d4ea: 8f3a ldrh r2, [r7, #56] ; 0x38 - 800d4ec: 8efb ldrh r3, [r7, #54] ; 0x36 - 800d4ee: 1ad3 subs r3, r2, r3 - 800d4f0: b29a uxth r2, r3 - 800d4f2: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 - 800d4f6: 4413 add r3, r2 - 800d4f8: b29b uxth r3, r3 - 800d4fa: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 800d47e: 8f3a ldrh r2, [r7, #56] ; 0x38 + 800d480: 8efb ldrh r3, [r7, #54] ; 0x36 + 800d482: 1ad3 subs r3, r2, r3 + 800d484: b29a uxth r2, r3 + 800d486: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 + 800d48a: 4413 add r3, r2 + 800d48c: b29b uxth r3, r3 + 800d48e: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 break; - 800d4fe: e02f b.n 800d560 + 800d492: e02f b.n 800d4f4 case LV_SCROLL_SNAP_CENTER: snap_goal = parent->coords.x1 + pleft + parent_w / 2; - 800d500: 6bfb ldr r3, [r7, #60] ; 0x3c - 800d502: f9b3 3014 ldrsh.w r3, [r3, #20] - 800d506: b29a uxth r2, r3 - 800d508: 8c3b ldrh r3, [r7, #32] - 800d50a: 4413 add r3, r2 - 800d50c: b29a uxth r2, r3 - 800d50e: f9b7 3014 ldrsh.w r3, [r7, #20] - 800d512: 0fd9 lsrs r1, r3, #31 - 800d514: 440b add r3, r1 - 800d516: 105b asrs r3, r3, #1 - 800d518: b21b sxth r3, r3 - 800d51a: b29b uxth r3, r3 - 800d51c: 4413 add r3, r2 - 800d51e: b29b uxth r3, r3 - 800d520: 873b strh r3, [r7, #56] ; 0x38 + 800d494: 6bfb ldr r3, [r7, #60] ; 0x3c + 800d496: f9b3 3014 ldrsh.w r3, [r3, #20] + 800d49a: b29a uxth r2, r3 + 800d49c: 8c3b ldrh r3, [r7, #32] + 800d49e: 4413 add r3, r2 + 800d4a0: b29a uxth r2, r3 + 800d4a2: f9b7 3014 ldrsh.w r3, [r7, #20] + 800d4a6: 0fd9 lsrs r1, r3, #31 + 800d4a8: 440b add r3, r1 + 800d4aa: 105b asrs r3, r3, #1 + 800d4ac: b21b sxth r3, r3 + 800d4ae: b29b uxth r3, r3 + 800d4b0: 4413 add r3, r2 + 800d4b2: b29b uxth r3, r3 + 800d4b4: 873b strh r3, [r7, #56] ; 0x38 act = lv_area_get_width(area_tmp) / 2 + area_tmp->x1 + x_scroll; - 800d522: 6c78 ldr r0, [r7, #68] ; 0x44 - 800d524: f7fe f832 bl 800b58c - 800d528: 4603 mov r3, r0 - 800d52a: 0fda lsrs r2, r3, #31 - 800d52c: 4413 add r3, r2 - 800d52e: 105b asrs r3, r3, #1 - 800d530: b21b sxth r3, r3 - 800d532: b29a uxth r2, r3 - 800d534: 6c7b ldr r3, [r7, #68] ; 0x44 - 800d536: f9b3 3000 ldrsh.w r3, [r3] - 800d53a: b29b uxth r3, r3 - 800d53c: 4413 add r3, r2 - 800d53e: b29a uxth r2, r3 - 800d540: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 - 800d544: 4413 add r3, r2 - 800d546: b29b uxth r3, r3 - 800d548: 86fb strh r3, [r7, #54] ; 0x36 + 800d4b6: 6c78 ldr r0, [r7, #68] ; 0x44 + 800d4b8: f7fe f832 bl 800b520 + 800d4bc: 4603 mov r3, r0 + 800d4be: 0fda lsrs r2, r3, #31 + 800d4c0: 4413 add r3, r2 + 800d4c2: 105b asrs r3, r3, #1 + 800d4c4: b21b sxth r3, r3 + 800d4c6: b29a uxth r2, r3 + 800d4c8: 6c7b ldr r3, [r7, #68] ; 0x44 + 800d4ca: f9b3 3000 ldrsh.w r3, [r3] + 800d4ce: b29b uxth r3, r3 + 800d4d0: 4413 add r3, r2 + 800d4d2: b29a uxth r2, r3 + 800d4d4: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 + 800d4d8: 4413 add r3, r2 + 800d4da: b29b uxth r3, r3 + 800d4dc: 86fb strh r3, [r7, #54] ; 0x36 x_scroll += snap_goal - act; - 800d54a: 8f3a ldrh r2, [r7, #56] ; 0x38 - 800d54c: 8efb ldrh r3, [r7, #54] ; 0x36 - 800d54e: 1ad3 subs r3, r2, r3 - 800d550: b29a uxth r2, r3 - 800d552: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 - 800d556: 4413 add r3, r2 - 800d558: b29b uxth r3, r3 - 800d55a: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 800d4de: 8f3a ldrh r2, [r7, #56] ; 0x38 + 800d4e0: 8efb ldrh r3, [r7, #54] ; 0x36 + 800d4e2: 1ad3 subs r3, r2, r3 + 800d4e4: b29a uxth r2, r3 + 800d4e6: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 + 800d4ea: 4413 add r3, r2 + 800d4ec: b29b uxth r3, r3 + 800d4ee: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 break; - 800d55e: bf00 nop + 800d4f2: bf00 nop } /*Remove any pending scroll animations.*/ bool y_del = lv_anim_del(parent, scroll_y_anim); - 800d560: 493f ldr r1, [pc, #252] ; (800d660 ) - 800d562: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d564: f023 fa12 bl 803098c - 800d568: 4603 mov r3, r0 - 800d56a: 74fb strb r3, [r7, #19] + 800d4f4: 493f ldr r1, [pc, #252] ; (800d5f4 ) + 800d4f6: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d4f8: f023 f9fe bl 80308f8 + 800d4fc: 4603 mov r3, r0 + 800d4fe: 74fb strb r3, [r7, #19] bool x_del = lv_anim_del(parent, scroll_x_anim); - 800d56c: 493d ldr r1, [pc, #244] ; (800d664 ) - 800d56e: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d570: f023 fa0c bl 803098c - 800d574: 4603 mov r3, r0 - 800d576: 74bb strb r3, [r7, #18] + 800d500: 493d ldr r1, [pc, #244] ; (800d5f8 ) + 800d502: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d504: f023 f9f8 bl 80308f8 + 800d508: 4603 mov r3, r0 + 800d50a: 74bb strb r3, [r7, #18] if(y_del || x_del) { - 800d578: 7cfb ldrb r3, [r7, #19] - 800d57a: 2b00 cmp r3, #0 - 800d57c: d102 bne.n 800d584 - 800d57e: 7cbb ldrb r3, [r7, #18] - 800d580: 2b00 cmp r3, #0 - 800d582: d009 beq.n 800d598 + 800d50c: 7cfb ldrb r3, [r7, #19] + 800d50e: 2b00 cmp r3, #0 + 800d510: d102 bne.n 800d518 + 800d512: 7cbb ldrb r3, [r7, #18] + 800d514: 2b00 cmp r3, #0 + 800d516: d009 beq.n 800d52c lv_res_t res; res = lv_event_send(parent, LV_EVENT_SCROLL_END, NULL); - 800d584: 2200 movs r2, #0 - 800d586: 210a movs r1, #10 - 800d588: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d58a: f7f4 ff79 bl 8002480 - 800d58e: 4603 mov r3, r0 - 800d590: 747b strb r3, [r7, #17] + 800d518: 2200 movs r2, #0 + 800d51a: 210a movs r1, #10 + 800d51c: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d51e: f7f4 ff79 bl 8002414 + 800d522: 4603 mov r3, r0 + 800d524: 747b strb r3, [r7, #17] if(res != LV_RES_OK) return; - 800d592: 7c7b ldrb r3, [r7, #17] - 800d594: 2b01 cmp r3, #1 - 800d596: d15e bne.n 800d656 + 800d526: 7c7b ldrb r3, [r7, #17] + 800d528: 2b01 cmp r3, #1 + 800d52a: d15e bne.n 800d5ea } if((scroll_dir & LV_DIR_LEFT) == 0 && x_scroll < 0) x_scroll = 0; - 800d598: f897 303b ldrb.w r3, [r7, #59] ; 0x3b - 800d59c: f003 0301 and.w r3, r3, #1 - 800d5a0: 2b00 cmp r3, #0 - 800d5a2: d106 bne.n 800d5b2 - 800d5a4: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 - 800d5a8: 2b00 cmp r3, #0 - 800d5aa: da02 bge.n 800d5b2 - 800d5ac: 2300 movs r3, #0 - 800d5ae: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 800d52c: f897 303b ldrb.w r3, [r7, #59] ; 0x3b + 800d530: f003 0301 and.w r3, r3, #1 + 800d534: 2b00 cmp r3, #0 + 800d536: d106 bne.n 800d546 + 800d538: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 + 800d53c: 2b00 cmp r3, #0 + 800d53e: da02 bge.n 800d546 + 800d540: 2300 movs r3, #0 + 800d542: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 if((scroll_dir & LV_DIR_RIGHT) == 0 && x_scroll > 0) x_scroll = 0; - 800d5b2: f897 303b ldrb.w r3, [r7, #59] ; 0x3b - 800d5b6: f003 0302 and.w r3, r3, #2 - 800d5ba: 2b00 cmp r3, #0 - 800d5bc: d106 bne.n 800d5cc - 800d5be: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 - 800d5c2: 2b00 cmp r3, #0 - 800d5c4: dd02 ble.n 800d5cc - 800d5c6: 2300 movs r3, #0 - 800d5c8: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 800d546: f897 303b ldrb.w r3, [r7, #59] ; 0x3b + 800d54a: f003 0302 and.w r3, r3, #2 + 800d54e: 2b00 cmp r3, #0 + 800d550: d106 bne.n 800d560 + 800d552: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 + 800d556: 2b00 cmp r3, #0 + 800d558: dd02 ble.n 800d560 + 800d55a: 2300 movs r3, #0 + 800d55c: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 if((scroll_dir & LV_DIR_TOP) == 0 && y_scroll < 0) y_scroll = 0; - 800d5cc: f897 303b ldrb.w r3, [r7, #59] ; 0x3b - 800d5d0: f003 0304 and.w r3, r3, #4 - 800d5d4: 2b00 cmp r3, #0 - 800d5d6: d106 bne.n 800d5e6 - 800d5d8: f9b7 3042 ldrsh.w r3, [r7, #66] ; 0x42 - 800d5dc: 2b00 cmp r3, #0 - 800d5de: da02 bge.n 800d5e6 - 800d5e0: 2300 movs r3, #0 - 800d5e2: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 800d560: f897 303b ldrb.w r3, [r7, #59] ; 0x3b + 800d564: f003 0304 and.w r3, r3, #4 + 800d568: 2b00 cmp r3, #0 + 800d56a: d106 bne.n 800d57a + 800d56c: f9b7 3042 ldrsh.w r3, [r7, #66] ; 0x42 + 800d570: 2b00 cmp r3, #0 + 800d572: da02 bge.n 800d57a + 800d574: 2300 movs r3, #0 + 800d576: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 if((scroll_dir & LV_DIR_BOTTOM) == 0 && y_scroll > 0) y_scroll = 0; - 800d5e6: f897 303b ldrb.w r3, [r7, #59] ; 0x3b - 800d5ea: f003 0308 and.w r3, r3, #8 - 800d5ee: 2b00 cmp r3, #0 - 800d5f0: d106 bne.n 800d600 - 800d5f2: f9b7 3042 ldrsh.w r3, [r7, #66] ; 0x42 - 800d5f6: 2b00 cmp r3, #0 - 800d5f8: dd02 ble.n 800d600 - 800d5fa: 2300 movs r3, #0 - 800d5fc: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 800d57a: f897 303b ldrb.w r3, [r7, #59] ; 0x3b + 800d57e: f003 0308 and.w r3, r3, #8 + 800d582: 2b00 cmp r3, #0 + 800d584: d106 bne.n 800d594 + 800d586: f9b7 3042 ldrsh.w r3, [r7, #66] ; 0x42 + 800d58a: 2b00 cmp r3, #0 + 800d58c: dd02 ble.n 800d594 + 800d58e: 2300 movs r3, #0 + 800d590: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 scroll_value->x += anim_en == LV_ANIM_OFF ? 0 : x_scroll; - 800d600: 687b ldr r3, [r7, #4] - 800d602: f9b3 3000 ldrsh.w r3, [r3] - 800d606: b29a uxth r2, r3 - 800d608: 78fb ldrb r3, [r7, #3] - 800d60a: 2b00 cmp r3, #0 - 800d60c: d002 beq.n 800d614 - 800d60e: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 - 800d612: e000 b.n 800d616 - 800d614: 2300 movs r3, #0 - 800d616: 4413 add r3, r2 - 800d618: b29b uxth r3, r3 - 800d61a: b21a sxth r2, r3 - 800d61c: 687b ldr r3, [r7, #4] - 800d61e: 801a strh r2, [r3, #0] + 800d594: 687b ldr r3, [r7, #4] + 800d596: f9b3 3000 ldrsh.w r3, [r3] + 800d59a: b29a uxth r2, r3 + 800d59c: 78fb ldrb r3, [r7, #3] + 800d59e: 2b00 cmp r3, #0 + 800d5a0: d002 beq.n 800d5a8 + 800d5a2: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 + 800d5a6: e000 b.n 800d5aa + 800d5a8: 2300 movs r3, #0 + 800d5aa: 4413 add r3, r2 + 800d5ac: b29b uxth r3, r3 + 800d5ae: b21a sxth r2, r3 + 800d5b0: 687b ldr r3, [r7, #4] + 800d5b2: 801a strh r2, [r3, #0] scroll_value->y += anim_en == LV_ANIM_OFF ? 0 : y_scroll; - 800d620: 687b ldr r3, [r7, #4] - 800d622: f9b3 3002 ldrsh.w r3, [r3, #2] - 800d626: b29a uxth r2, r3 - 800d628: 78fb ldrb r3, [r7, #3] - 800d62a: 2b00 cmp r3, #0 - 800d62c: d002 beq.n 800d634 - 800d62e: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 800d632: e000 b.n 800d636 - 800d634: 2300 movs r3, #0 - 800d636: 4413 add r3, r2 - 800d638: b29b uxth r3, r3 - 800d63a: b21a sxth r2, r3 - 800d63c: 687b ldr r3, [r7, #4] - 800d63e: 805a strh r2, [r3, #2] + 800d5b4: 687b ldr r3, [r7, #4] + 800d5b6: f9b3 3002 ldrsh.w r3, [r3, #2] + 800d5ba: b29a uxth r2, r3 + 800d5bc: 78fb ldrb r3, [r7, #3] + 800d5be: 2b00 cmp r3, #0 + 800d5c0: d002 beq.n 800d5c8 + 800d5c2: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 800d5c6: e000 b.n 800d5ca + 800d5c8: 2300 movs r3, #0 + 800d5ca: 4413 add r3, r2 + 800d5cc: b29b uxth r3, r3 + 800d5ce: b21a sxth r2, r3 + 800d5d0: 687b ldr r3, [r7, #4] + 800d5d2: 805a strh r2, [r3, #2] lv_obj_scroll_by(parent, x_scroll, y_scroll, anim_en); - 800d640: 78fb ldrb r3, [r7, #3] - 800d642: f9b7 2042 ldrsh.w r2, [r7, #66] ; 0x42 - 800d646: f9b7 1040 ldrsh.w r1, [r7, #64] ; 0x40 - 800d64a: 6bf8 ldr r0, [r7, #60] ; 0x3c - 800d64c: f7fe fca2 bl 800bf94 - 800d650: e002 b.n 800d658 + 800d5d4: 78fb ldrb r3, [r7, #3] + 800d5d6: f9b7 2042 ldrsh.w r2, [r7, #66] ; 0x42 + 800d5da: f9b7 1040 ldrsh.w r1, [r7, #64] ; 0x40 + 800d5de: 6bf8 ldr r0, [r7, #60] ; 0x3c + 800d5e0: f7fe fca2 bl 800bf28 + 800d5e4: e002 b.n 800d5ec if(!lv_obj_has_flag(parent, LV_OBJ_FLAG_SCROLLABLE)) return; - 800d652: bf00 nop - 800d654: e000 b.n 800d658 + 800d5e6: bf00 nop + 800d5e8: e000 b.n 800d5ec if(res != LV_RES_OK) return; - 800d656: bf00 nop + 800d5ea: bf00 nop } - 800d658: 3748 adds r7, #72 ; 0x48 - 800d65a: 46bd mov sp, r7 - 800d65c: bd80 pop {r7, pc} - 800d65e: bf00 nop - 800d660: 0800d0a1 .word 0x0800d0a1 - 800d664: 0800d071 .word 0x0800d071 + 800d5ec: 3748 adds r7, #72 ; 0x48 + 800d5ee: 46bd mov sp, r7 + 800d5f0: bd80 pop {r7, pc} + 800d5f2: bf00 nop + 800d5f4: 0800d035 .word 0x0800d035 + 800d5f8: 0800d005 .word 0x0800d005 -0800d668 : +0800d5fc : * @param c2 the second color to mix (usually the background) * @param mix The ratio of the colors. 0: full `c2`, 255: full `c1`, 127: half `c1` and half`c2` * @return the mixed color */ LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix) { - 800d668: b480 push {r7} - 800d66a: b087 sub sp, #28 - 800d66c: af00 add r7, sp, #0 - 800d66e: 80b8 strh r0, [r7, #4] - 800d670: 8039 strh r1, [r7, #0] - 800d672: 4613 mov r3, r2 - 800d674: 70fb strb r3, [r7, #3] + 800d5fc: b480 push {r7} + 800d5fe: b087 sub sp, #28 + 800d600: af00 add r7, sp, #0 + 800d602: 80b8 strh r0, [r7, #4] + 800d604: 8039 strh r1, [r7, #0] + 800d606: 4613 mov r3, r2 + 800d608: 70fb strb r3, [r7, #3] lv_color_t ret; #if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0 /*Source: https://stackoverflow.com/a/50012418/1999969*/ mix = (mix + 4) >> 3; - 800d676: 78fb ldrb r3, [r7, #3] - 800d678: 3304 adds r3, #4 - 800d67a: 10db asrs r3, r3, #3 - 800d67c: 70fb strb r3, [r7, #3] + 800d60a: 78fb ldrb r3, [r7, #3] + 800d60c: 3304 adds r3, #4 + 800d60e: 10db asrs r3, r3, #3 + 800d610: 70fb strb r3, [r7, #3] uint32_t bg = (uint32_t)((uint32_t)c2.full | ((uint32_t)c2.full << 16)) & - 800d67e: 883b ldrh r3, [r7, #0] - 800d680: 461a mov r2, r3 - 800d682: 883b ldrh r3, [r7, #0] - 800d684: 041b lsls r3, r3, #16 - 800d686: 431a orrs r2, r3 - 800d688: 4b12 ldr r3, [pc, #72] ; (800d6d4 ) - 800d68a: 4013 ands r3, r2 - 800d68c: 617b str r3, [r7, #20] + 800d612: 883b ldrh r3, [r7, #0] + 800d614: 461a mov r2, r3 + 800d616: 883b ldrh r3, [r7, #0] + 800d618: 041b lsls r3, r3, #16 + 800d61a: 431a orrs r2, r3 + 800d61c: 4b12 ldr r3, [pc, #72] ; (800d668 ) + 800d61e: 4013 ands r3, r2 + 800d620: 617b str r3, [r7, #20] 0x7E0F81F; /*0b00000111111000001111100000011111*/ uint32_t fg = (uint32_t)((uint32_t)c1.full | ((uint32_t)c1.full << 16)) & 0x7E0F81F; - 800d68e: 88bb ldrh r3, [r7, #4] - 800d690: 461a mov r2, r3 - 800d692: 88bb ldrh r3, [r7, #4] - 800d694: 041b lsls r3, r3, #16 - 800d696: 431a orrs r2, r3 - 800d698: 4b0e ldr r3, [pc, #56] ; (800d6d4 ) - 800d69a: 4013 ands r3, r2 - 800d69c: 613b str r3, [r7, #16] + 800d622: 88bb ldrh r3, [r7, #4] + 800d624: 461a mov r2, r3 + 800d626: 88bb ldrh r3, [r7, #4] + 800d628: 041b lsls r3, r3, #16 + 800d62a: 431a orrs r2, r3 + 800d62c: 4b0e ldr r3, [pc, #56] ; (800d668 ) + 800d62e: 4013 ands r3, r2 + 800d630: 613b str r3, [r7, #16] uint32_t result = ((((fg - bg) * mix) >> 5) + bg) & 0x7E0F81F; - 800d69e: 693a ldr r2, [r7, #16] - 800d6a0: 697b ldr r3, [r7, #20] - 800d6a2: 1ad3 subs r3, r2, r3 - 800d6a4: 78fa ldrb r2, [r7, #3] - 800d6a6: fb02 f303 mul.w r3, r2, r3 - 800d6aa: 095a lsrs r2, r3, #5 - 800d6ac: 697b ldr r3, [r7, #20] - 800d6ae: 441a add r2, r3 - 800d6b0: 4b08 ldr r3, [pc, #32] ; (800d6d4 ) - 800d6b2: 4013 ands r3, r2 - 800d6b4: 60fb str r3, [r7, #12] + 800d632: 693a ldr r2, [r7, #16] + 800d634: 697b ldr r3, [r7, #20] + 800d636: 1ad3 subs r3, r2, r3 + 800d638: 78fa ldrb r2, [r7, #3] + 800d63a: fb02 f303 mul.w r3, r2, r3 + 800d63e: 095a lsrs r2, r3, #5 + 800d640: 697b ldr r3, [r7, #20] + 800d642: 441a add r2, r3 + 800d644: 4b08 ldr r3, [pc, #32] ; (800d668 ) + 800d646: 4013 ands r3, r2 + 800d648: 60fb str r3, [r7, #12] ret.full = (uint16_t)((result >> 16) | result); - 800d6b6: 68fb ldr r3, [r7, #12] - 800d6b8: 0c1b lsrs r3, r3, #16 - 800d6ba: b29a uxth r2, r3 - 800d6bc: 68fb ldr r3, [r7, #12] - 800d6be: b29b uxth r3, r3 - 800d6c0: 4313 orrs r3, r2 - 800d6c2: b29b uxth r3, r3 - 800d6c4: 813b strh r3, [r7, #8] + 800d64a: 68fb ldr r3, [r7, #12] + 800d64c: 0c1b lsrs r3, r3, #16 + 800d64e: b29a uxth r2, r3 + 800d650: 68fb ldr r3, [r7, #12] + 800d652: b29b uxth r3, r3 + 800d654: 4313 orrs r3, r2 + 800d656: b29b uxth r3, r3 + 800d658: 813b strh r3, [r7, #8] #else /*LV_COLOR_DEPTH == 1*/ ret.full = mix > LV_OPA_50 ? c1.full : c2.full; #endif return ret; - 800d6c6: 893b ldrh r3, [r7, #8] + 800d65a: 893b ldrh r3, [r7, #8] } - 800d6c8: 4618 mov r0, r3 - 800d6ca: 371c adds r7, #28 - 800d6cc: 46bd mov sp, r7 - 800d6ce: bc80 pop {r7} - 800d6d0: 4770 bx lr - 800d6d2: bf00 nop - 800d6d4: 07e0f81f .word 0x07e0f81f + 800d65c: 4618 mov r0, r3 + 800d65e: 371c adds r7, #28 + 800d660: 46bd mov sp, r7 + 800d662: bc80 pop {r7} + 800d664: 4770 bx lr + 800d666: bf00 nop + 800d668: 07e0f81f .word 0x07e0f81f -0800d6d8 : +0800d66c : { - 800d6d8: b480 push {r7} - 800d6da: b083 sub sp, #12 - 800d6dc: af00 add r7, sp, #0 - 800d6de: 6078 str r0, [r7, #4] - 800d6e0: 6039 str r1, [r7, #0] + 800d66c: b480 push {r7} + 800d66e: b083 sub sp, #12 + 800d670: af00 add r7, sp, #0 + 800d672: 6078 str r0, [r7, #4] + 800d674: 6039 str r1, [r7, #0] a->var = var; - 800d6e2: 687b ldr r3, [r7, #4] - 800d6e4: 683a ldr r2, [r7, #0] - 800d6e6: 601a str r2, [r3, #0] + 800d676: 687b ldr r3, [r7, #4] + 800d678: 683a ldr r2, [r7, #0] + 800d67a: 601a str r2, [r3, #0] } - 800d6e8: bf00 nop - 800d6ea: 370c adds r7, #12 - 800d6ec: 46bd mov sp, r7 - 800d6ee: bc80 pop {r7} - 800d6f0: 4770 bx lr + 800d67c: bf00 nop + 800d67e: 370c adds r7, #12 + 800d680: 46bd mov sp, r7 + 800d682: bc80 pop {r7} + 800d684: 4770 bx lr -0800d6f2 : +0800d686 : { - 800d6f2: b480 push {r7} - 800d6f4: b083 sub sp, #12 - 800d6f6: af00 add r7, sp, #0 - 800d6f8: 6078 str r0, [r7, #4] - 800d6fa: 6039 str r1, [r7, #0] + 800d686: b480 push {r7} + 800d688: b083 sub sp, #12 + 800d68a: af00 add r7, sp, #0 + 800d68c: 6078 str r0, [r7, #4] + 800d68e: 6039 str r1, [r7, #0] a->exec_cb = exec_cb; - 800d6fc: 687b ldr r3, [r7, #4] - 800d6fe: 683a ldr r2, [r7, #0] - 800d700: 605a str r2, [r3, #4] + 800d690: 687b ldr r3, [r7, #4] + 800d692: 683a ldr r2, [r7, #0] + 800d694: 605a str r2, [r3, #4] } - 800d702: bf00 nop - 800d704: 370c adds r7, #12 - 800d706: 46bd mov sp, r7 - 800d708: bc80 pop {r7} - 800d70a: 4770 bx lr + 800d696: bf00 nop + 800d698: 370c adds r7, #12 + 800d69a: 46bd mov sp, r7 + 800d69c: bc80 pop {r7} + 800d69e: 4770 bx lr -0800d70c : +0800d6a0 : { - 800d70c: b480 push {r7} - 800d70e: b083 sub sp, #12 - 800d710: af00 add r7, sp, #0 - 800d712: 6078 str r0, [r7, #4] - 800d714: 6039 str r1, [r7, #0] + 800d6a0: b480 push {r7} + 800d6a2: b083 sub sp, #12 + 800d6a4: af00 add r7, sp, #0 + 800d6a6: 6078 str r0, [r7, #4] + 800d6a8: 6039 str r1, [r7, #0] a->time = duration; - 800d716: 683a ldr r2, [r7, #0] - 800d718: 687b ldr r3, [r7, #4] - 800d71a: 629a str r2, [r3, #40] ; 0x28 + 800d6aa: 683a ldr r2, [r7, #0] + 800d6ac: 687b ldr r3, [r7, #4] + 800d6ae: 629a str r2, [r3, #40] ; 0x28 } - 800d71c: bf00 nop - 800d71e: 370c adds r7, #12 - 800d720: 46bd mov sp, r7 - 800d722: bc80 pop {r7} - 800d724: 4770 bx lr + 800d6b0: bf00 nop + 800d6b2: 370c adds r7, #12 + 800d6b4: 46bd mov sp, r7 + 800d6b6: bc80 pop {r7} + 800d6b8: 4770 bx lr -0800d726 : +0800d6ba : { - 800d726: b480 push {r7} - 800d728: b083 sub sp, #12 - 800d72a: af00 add r7, sp, #0 - 800d72c: 6078 str r0, [r7, #4] - 800d72e: 6039 str r1, [r7, #0] + 800d6ba: b480 push {r7} + 800d6bc: b083 sub sp, #12 + 800d6be: af00 add r7, sp, #0 + 800d6c0: 6078 str r0, [r7, #4] + 800d6c2: 6039 str r1, [r7, #0] a->act_time = -(int32_t)(delay); - 800d730: 683b ldr r3, [r7, #0] - 800d732: 425a negs r2, r3 - 800d734: 687b ldr r3, [r7, #4] - 800d736: 62da str r2, [r3, #44] ; 0x2c + 800d6c4: 683b ldr r3, [r7, #0] + 800d6c6: 425a negs r2, r3 + 800d6c8: 687b ldr r3, [r7, #4] + 800d6ca: 62da str r2, [r3, #44] ; 0x2c } - 800d738: bf00 nop - 800d73a: 370c adds r7, #12 - 800d73c: 46bd mov sp, r7 - 800d73e: bc80 pop {r7} - 800d740: 4770 bx lr + 800d6cc: bf00 nop + 800d6ce: 370c adds r7, #12 + 800d6d0: 46bd mov sp, r7 + 800d6d2: bc80 pop {r7} + 800d6d4: 4770 bx lr -0800d742 : +0800d6d6 : { - 800d742: b480 push {r7} - 800d744: b085 sub sp, #20 - 800d746: af00 add r7, sp, #0 - 800d748: 60f8 str r0, [r7, #12] - 800d74a: 60b9 str r1, [r7, #8] - 800d74c: 607a str r2, [r7, #4] + 800d6d6: b480 push {r7} + 800d6d8: b085 sub sp, #20 + 800d6da: af00 add r7, sp, #0 + 800d6dc: 60f8 str r0, [r7, #12] + 800d6de: 60b9 str r1, [r7, #8] + 800d6e0: 607a str r2, [r7, #4] a->start_value = start; - 800d74e: 68fb ldr r3, [r7, #12] - 800d750: 68ba ldr r2, [r7, #8] - 800d752: 61da str r2, [r3, #28] + 800d6e2: 68fb ldr r3, [r7, #12] + 800d6e4: 68ba ldr r2, [r7, #8] + 800d6e6: 61da str r2, [r3, #28] a->current_value = start; - 800d754: 68fb ldr r3, [r7, #12] - 800d756: 68ba ldr r2, [r7, #8] - 800d758: 621a str r2, [r3, #32] + 800d6e8: 68fb ldr r3, [r7, #12] + 800d6ea: 68ba ldr r2, [r7, #8] + 800d6ec: 621a str r2, [r3, #32] a->end_value = end; - 800d75a: 68fb ldr r3, [r7, #12] - 800d75c: 687a ldr r2, [r7, #4] - 800d75e: 625a str r2, [r3, #36] ; 0x24 + 800d6ee: 68fb ldr r3, [r7, #12] + 800d6f0: 687a ldr r2, [r7, #4] + 800d6f2: 625a str r2, [r3, #36] ; 0x24 } - 800d760: bf00 nop - 800d762: 3714 adds r7, #20 - 800d764: 46bd mov sp, r7 - 800d766: bc80 pop {r7} - 800d768: 4770 bx lr + 800d6f4: bf00 nop + 800d6f6: 3714 adds r7, #20 + 800d6f8: 46bd mov sp, r7 + 800d6fa: bc80 pop {r7} + 800d6fc: 4770 bx lr -0800d76a : +0800d6fe : { - 800d76a: b480 push {r7} - 800d76c: b083 sub sp, #12 - 800d76e: af00 add r7, sp, #0 - 800d770: 6078 str r0, [r7, #4] - 800d772: 6039 str r1, [r7, #0] + 800d6fe: b480 push {r7} + 800d700: b083 sub sp, #12 + 800d702: af00 add r7, sp, #0 + 800d704: 6078 str r0, [r7, #4] + 800d706: 6039 str r1, [r7, #0] a->path_cb = path_cb; - 800d774: 687b ldr r3, [r7, #4] - 800d776: 683a ldr r2, [r7, #0] - 800d778: 619a str r2, [r3, #24] + 800d708: 687b ldr r3, [r7, #4] + 800d70a: 683a ldr r2, [r7, #0] + 800d70c: 619a str r2, [r3, #24] } - 800d77a: bf00 nop - 800d77c: 370c adds r7, #12 - 800d77e: 46bd mov sp, r7 - 800d780: bc80 pop {r7} - 800d782: 4770 bx lr + 800d70e: bf00 nop + 800d710: 370c adds r7, #12 + 800d712: 46bd mov sp, r7 + 800d714: bc80 pop {r7} + 800d716: 4770 bx lr -0800d784 : +0800d718 : { - 800d784: b480 push {r7} - 800d786: b083 sub sp, #12 - 800d788: af00 add r7, sp, #0 - 800d78a: 6078 str r0, [r7, #4] - 800d78c: 6039 str r1, [r7, #0] + 800d718: b480 push {r7} + 800d71a: b083 sub sp, #12 + 800d71c: af00 add r7, sp, #0 + 800d71e: 6078 str r0, [r7, #4] + 800d720: 6039 str r1, [r7, #0] a->start_cb = start_cb; - 800d78e: 687b ldr r3, [r7, #4] - 800d790: 683a ldr r2, [r7, #0] - 800d792: 609a str r2, [r3, #8] + 800d722: 687b ldr r3, [r7, #4] + 800d724: 683a ldr r2, [r7, #0] + 800d726: 609a str r2, [r3, #8] } - 800d794: bf00 nop - 800d796: 370c adds r7, #12 - 800d798: 46bd mov sp, r7 - 800d79a: bc80 pop {r7} - 800d79c: 4770 bx lr + 800d728: bf00 nop + 800d72a: 370c adds r7, #12 + 800d72c: 46bd mov sp, r7 + 800d72e: bc80 pop {r7} + 800d730: 4770 bx lr -0800d79e : +0800d732 : { - 800d79e: b480 push {r7} - 800d7a0: b083 sub sp, #12 - 800d7a2: af00 add r7, sp, #0 - 800d7a4: 6078 str r0, [r7, #4] - 800d7a6: 6039 str r1, [r7, #0] + 800d732: b480 push {r7} + 800d734: b083 sub sp, #12 + 800d736: af00 add r7, sp, #0 + 800d738: 6078 str r0, [r7, #4] + 800d73a: 6039 str r1, [r7, #0] a->ready_cb = ready_cb; - 800d7a8: 687b ldr r3, [r7, #4] - 800d7aa: 683a ldr r2, [r7, #0] - 800d7ac: 60da str r2, [r3, #12] + 800d73c: 687b ldr r3, [r7, #4] + 800d73e: 683a ldr r2, [r7, #0] + 800d740: 60da str r2, [r3, #12] } - 800d7ae: bf00 nop - 800d7b0: 370c adds r7, #12 - 800d7b2: 46bd mov sp, r7 - 800d7b4: bc80 pop {r7} - 800d7b6: 4770 bx lr + 800d742: bf00 nop + 800d744: 370c adds r7, #12 + 800d746: 46bd mov sp, r7 + 800d748: bc80 pop {r7} + 800d74a: 4770 bx lr -0800d7b8 : +0800d74c : * @param a pointer to an initialized `lv_anim_t` variable * @param en true: apply the start value immediately in `lv_anim_start`; * false: apply the start value only when `delay` ms is elapsed and the animations really starts */ static inline void lv_anim_set_early_apply(lv_anim_t * a, bool en) { - 800d7b8: b480 push {r7} - 800d7ba: b083 sub sp, #12 - 800d7bc: af00 add r7, sp, #0 - 800d7be: 6078 str r0, [r7, #4] - 800d7c0: 460b mov r3, r1 - 800d7c2: 70fb strb r3, [r7, #3] + 800d74c: b480 push {r7} + 800d74e: b083 sub sp, #12 + 800d750: af00 add r7, sp, #0 + 800d752: 6078 str r0, [r7, #4] + 800d754: 460b mov r3, r1 + 800d756: 70fb strb r3, [r7, #3] a->early_apply = en; - 800d7c4: 687a ldr r2, [r7, #4] - 800d7c6: f892 303e ldrb.w r3, [r2, #62] ; 0x3e - 800d7ca: 78f9 ldrb r1, [r7, #3] - 800d7cc: f361 0300 bfi r3, r1, #0, #1 - 800d7d0: f882 303e strb.w r3, [r2, #62] ; 0x3e + 800d758: 687a ldr r2, [r7, #4] + 800d75a: f892 303e ldrb.w r3, [r2, #62] ; 0x3e + 800d75e: 78f9 ldrb r1, [r7, #3] + 800d760: f361 0300 bfi r3, r1, #0, #1 + 800d764: f882 303e strb.w r3, [r2, #62] ; 0x3e } - 800d7d4: bf00 nop - 800d7d6: 370c adds r7, #12 - 800d7d8: 46bd mov sp, r7 - 800d7da: bc80 pop {r7} - 800d7dc: 4770 bx lr + 800d768: bf00 nop + 800d76a: 370c adds r7, #12 + 800d76c: 46bd mov sp, r7 + 800d76e: bc80 pop {r7} + 800d770: 4770 bx lr -0800d7de : +0800d772 : * @param align For LV_TEXT_ALIGN_AUTO give LV_TEXT_ALIGN_LEFT else leave unchanged, write back the calculated align here * @param base_dir Unused * @param txt Unused */ static inline void lv_bidi_calculate_align(lv_text_align_t * align, lv_base_dir_t * base_dir, const char * txt) { - 800d7de: b480 push {r7} - 800d7e0: b085 sub sp, #20 - 800d7e2: af00 add r7, sp, #0 - 800d7e4: 60f8 str r0, [r7, #12] - 800d7e6: 60b9 str r1, [r7, #8] - 800d7e8: 607a str r2, [r7, #4] + 800d772: b480 push {r7} + 800d774: b085 sub sp, #20 + 800d776: af00 add r7, sp, #0 + 800d778: 60f8 str r0, [r7, #12] + 800d77a: 60b9 str r1, [r7, #8] + 800d77c: 607a str r2, [r7, #4] LV_UNUSED(txt); LV_UNUSED(base_dir); if(*align == LV_TEXT_ALIGN_AUTO) * align = LV_TEXT_ALIGN_LEFT; - 800d7ea: 68fb ldr r3, [r7, #12] - 800d7ec: 781b ldrb r3, [r3, #0] - 800d7ee: 2b00 cmp r3, #0 - 800d7f0: d102 bne.n 800d7f8 - 800d7f2: 68fb ldr r3, [r7, #12] - 800d7f4: 2201 movs r2, #1 - 800d7f6: 701a strb r2, [r3, #0] + 800d77e: 68fb ldr r3, [r7, #12] + 800d780: 781b ldrb r3, [r3, #0] + 800d782: 2b00 cmp r3, #0 + 800d784: d102 bne.n 800d78c + 800d786: 68fb ldr r3, [r7, #12] + 800d788: 2201 movs r2, #1 + 800d78a: 701a strb r2, [r3, #0] } - 800d7f8: bf00 nop - 800d7fa: 3714 adds r7, #20 - 800d7fc: 46bd mov sp, r7 - 800d7fe: bc80 pop {r7} - 800d800: 4770 bx lr + 800d78c: bf00 nop + 800d78e: 3714 adds r7, #20 + 800d790: 46bd mov sp, r7 + 800d792: bc80 pop {r7} + 800d794: 4770 bx lr -0800d802 : +0800d796 : { - 800d802: b580 push {r7, lr} - 800d804: b084 sub sp, #16 - 800d806: af00 add r7, sp, #0 - 800d808: 6078 str r0, [r7, #4] - 800d80a: 6039 str r1, [r7, #0] + 800d796: b580 push {r7, lr} + 800d798: b084 sub sp, #16 + 800d79a: af00 add r7, sp, #0 + 800d79c: 6078 str r0, [r7, #4] + 800d79e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_WIDTH); - 800d80c: f241 0201 movw r2, #4097 ; 0x1001 - 800d810: 6839 ldr r1, [r7, #0] - 800d812: 6878 ldr r0, [r7, #4] - 800d814: f000 facc bl 800ddb0 - 800d818: 4603 mov r3, r0 - 800d81a: 60fb str r3, [r7, #12] + 800d7a0: f241 0201 movw r2, #4097 ; 0x1001 + 800d7a4: 6839 ldr r1, [r7, #0] + 800d7a6: 6878 ldr r0, [r7, #4] + 800d7a8: f000 facc bl 800dd44 + 800d7ac: 4603 mov r3, r0 + 800d7ae: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 800d81c: 68fb ldr r3, [r7, #12] - 800d81e: b21b sxth r3, r3 + 800d7b0: 68fb ldr r3, [r7, #12] + 800d7b2: b21b sxth r3, r3 } - 800d820: 4618 mov r0, r3 - 800d822: 3710 adds r7, #16 - 800d824: 46bd mov sp, r7 - 800d826: bd80 pop {r7, pc} + 800d7b4: 4618 mov r0, r3 + 800d7b6: 3710 adds r7, #16 + 800d7b8: 46bd mov sp, r7 + 800d7ba: bd80 pop {r7, pc} -0800d828 : +0800d7bc : { - 800d828: b580 push {r7, lr} - 800d82a: b084 sub sp, #16 - 800d82c: af00 add r7, sp, #0 - 800d82e: 6078 str r0, [r7, #4] - 800d830: 6039 str r1, [r7, #0] + 800d7bc: b580 push {r7, lr} + 800d7be: b084 sub sp, #16 + 800d7c0: af00 add r7, sp, #0 + 800d7c2: 6078 str r0, [r7, #4] + 800d7c4: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_HEIGHT); - 800d832: f241 0204 movw r2, #4100 ; 0x1004 + 800d7c6: f241 0204 movw r2, #4100 ; 0x1004 + 800d7ca: 6839 ldr r1, [r7, #0] + 800d7cc: 6878 ldr r0, [r7, #4] + 800d7ce: f000 fab9 bl 800dd44 + 800d7d2: 4603 mov r3, r0 + 800d7d4: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 800d7d6: 68fb ldr r3, [r7, #12] + 800d7d8: b21b sxth r3, r3 +} + 800d7da: 4618 mov r0, r3 + 800d7dc: 3710 adds r7, #16 + 800d7de: 46bd mov sp, r7 + 800d7e0: bd80 pop {r7, pc} + +0800d7e2 : +{ + 800d7e2: b580 push {r7, lr} + 800d7e4: b084 sub sp, #16 + 800d7e6: af00 add r7, sp, #0 + 800d7e8: 6078 str r0, [r7, #4] + 800d7ea: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_ALIGN); + 800d7ec: f241 425d movw r2, #5213 ; 0x145d + 800d7f0: 6839 ldr r1, [r7, #0] + 800d7f2: 6878 ldr r0, [r7, #4] + 800d7f4: f000 faa6 bl 800dd44 + 800d7f8: 4603 mov r3, r0 + 800d7fa: 60fb str r3, [r7, #12] + return (lv_text_align_t)v.num; + 800d7fc: 68fb ldr r3, [r7, #12] + 800d7fe: b2db uxtb r3, r3 +} + 800d800: 4618 mov r0, r3 + 800d802: 3710 adds r7, #16 + 800d804: 46bd mov sp, r7 + 800d806: bd80 pop {r7, pc} + +0800d808 : +{ + 800d808: b580 push {r7, lr} + 800d80a: b084 sub sp, #16 + 800d80c: af00 add r7, sp, #0 + 800d80e: 6078 str r0, [r7, #4] + 800d810: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_COLOR_FILTER_DSC); + 800d812: 2263 movs r2, #99 ; 0x63 + 800d814: 6839 ldr r1, [r7, #0] + 800d816: 6878 ldr r0, [r7, #4] + 800d818: f000 fa94 bl 800dd44 + 800d81c: 4603 mov r3, r0 + 800d81e: 60fb str r3, [r7, #12] + return (const lv_color_filter_dsc_t *)v.ptr; + 800d820: 68fb ldr r3, [r7, #12] +} + 800d822: 4618 mov r0, r3 + 800d824: 3710 adds r7, #16 + 800d826: 46bd mov sp, r7 + 800d828: bd80 pop {r7, pc} + +0800d82a : +{ + 800d82a: b580 push {r7, lr} + 800d82c: b084 sub sp, #16 + 800d82e: af00 add r7, sp, #0 + 800d830: 6078 str r0, [r7, #4] + 800d832: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_COLOR_FILTER_OPA); + 800d834: 2264 movs r2, #100 ; 0x64 800d836: 6839 ldr r1, [r7, #0] 800d838: 6878 ldr r0, [r7, #4] - 800d83a: f000 fab9 bl 800ddb0 + 800d83a: f000 fa83 bl 800dd44 800d83e: 4603 mov r3, r0 800d840: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; + return (lv_opa_t)v.num; 800d842: 68fb ldr r3, [r7, #12] - 800d844: b21b sxth r3, r3 + 800d844: b2db uxtb r3, r3 } 800d846: 4618 mov r0, r3 800d848: 3710 adds r7, #16 800d84a: 46bd mov sp, r7 800d84c: bd80 pop {r7, pc} -0800d84e : +0800d84e : { 800d84e: b580 push {r7, lr} 800d850: b084 sub sp, #16 800d852: af00 add r7, sp, #0 800d854: 6078 str r0, [r7, #4] 800d856: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_ALIGN); - 800d858: f241 425d movw r2, #5213 ; 0x145d + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BASE_DIR); + 800d858: f241 426a movw r2, #5226 ; 0x146a 800d85c: 6839 ldr r1, [r7, #0] 800d85e: 6878 ldr r0, [r7, #4] - 800d860: f000 faa6 bl 800ddb0 + 800d860: f000 fa70 bl 800dd44 800d864: 4603 mov r3, r0 800d866: 60fb str r3, [r7, #12] - return (lv_text_align_t)v.num; + return (lv_base_dir_t)v.num; 800d868: 68fb ldr r3, [r7, #12] 800d86a: b2db uxtb r3, r3 } @@ -32429,8970 +32450,8940 @@ static inline void lv_bidi_calculate_align(lv_text_align_t * align, lv_base_dir_ 800d870: 46bd mov sp, r7 800d872: bd80 pop {r7, pc} -0800d874 : -{ - 800d874: b580 push {r7, lr} - 800d876: b084 sub sp, #16 - 800d878: af00 add r7, sp, #0 - 800d87a: 6078 str r0, [r7, #4] - 800d87c: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_COLOR_FILTER_DSC); - 800d87e: 2263 movs r2, #99 ; 0x63 - 800d880: 6839 ldr r1, [r7, #0] - 800d882: 6878 ldr r0, [r7, #4] - 800d884: f000 fa94 bl 800ddb0 - 800d888: 4603 mov r3, r0 - 800d88a: 60fb str r3, [r7, #12] - return (const lv_color_filter_dsc_t *)v.ptr; - 800d88c: 68fb ldr r3, [r7, #12] -} - 800d88e: 4618 mov r0, r3 - 800d890: 3710 adds r7, #16 - 800d892: 46bd mov sp, r7 - 800d894: bd80 pop {r7, pc} - -0800d896 : -{ - 800d896: b580 push {r7, lr} - 800d898: b084 sub sp, #16 - 800d89a: af00 add r7, sp, #0 - 800d89c: 6078 str r0, [r7, #4] - 800d89e: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_COLOR_FILTER_OPA); - 800d8a0: 2264 movs r2, #100 ; 0x64 - 800d8a2: 6839 ldr r1, [r7, #0] - 800d8a4: 6878 ldr r0, [r7, #4] - 800d8a6: f000 fa83 bl 800ddb0 - 800d8aa: 4603 mov r3, r0 - 800d8ac: 60fb str r3, [r7, #12] - return (lv_opa_t)v.num; - 800d8ae: 68fb ldr r3, [r7, #12] - 800d8b0: b2db uxtb r3, r3 -} - 800d8b2: 4618 mov r0, r3 - 800d8b4: 3710 adds r7, #16 - 800d8b6: 46bd mov sp, r7 - 800d8b8: bd80 pop {r7, pc} - -0800d8ba : -{ - 800d8ba: b580 push {r7, lr} - 800d8bc: b084 sub sp, #16 - 800d8be: af00 add r7, sp, #0 - 800d8c0: 6078 str r0, [r7, #4] - 800d8c2: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BASE_DIR); - 800d8c4: f241 426a movw r2, #5226 ; 0x146a - 800d8c8: 6839 ldr r1, [r7, #0] - 800d8ca: 6878 ldr r0, [r7, #4] - 800d8cc: f000 fa70 bl 800ddb0 - 800d8d0: 4603 mov r3, r0 - 800d8d2: 60fb str r3, [r7, #12] - return (lv_base_dir_t)v.num; - 800d8d4: 68fb ldr r3, [r7, #12] - 800d8d6: b2db uxtb r3, r3 -} - 800d8d8: 4618 mov r0, r3 - 800d8da: 3710 adds r7, #16 - 800d8dc: 46bd mov sp, r7 - 800d8de: bd80 pop {r7, pc} - -0800d8e0 <_lv_obj_style_init>: +0800d874 <_lv_obj_style_init>: /********************** * GLOBAL FUNCTIONS **********************/ void _lv_obj_style_init(void) { - 800d8e0: b580 push {r7, lr} - 800d8e2: af00 add r7, sp, #0 + 800d874: b580 push {r7, lr} + 800d876: af00 add r7, sp, #0 _lv_ll_init(&LV_GC_ROOT(_lv_obj_style_trans_ll), sizeof(trans_t)); - 800d8e4: 2114 movs r1, #20 - 800d8e6: 4802 ldr r0, [pc, #8] ; (800d8f0 <_lv_obj_style_init+0x10>) - 800d8e8: f024 fc3a bl 8032160 <_lv_ll_init> + 800d878: 2114 movs r1, #20 + 800d87a: 4802 ldr r0, [pc, #8] ; (800d884 <_lv_obj_style_init+0x10>) + 800d87c: f024 fc26 bl 80320cc <_lv_ll_init> } - 800d8ec: bf00 nop - 800d8ee: bd80 pop {r7, pc} - 800d8f0: 20001d58 .word 0x20001d58 + 800d880: bf00 nop + 800d882: bd80 pop {r7, pc} + 800d884: 20001d58 .word 0x20001d58 -0800d8f4 : +0800d888 : void lv_obj_add_style(lv_obj_t * obj, lv_style_t * style, lv_style_selector_t selector) { - 800d8f4: b580 push {r7, lr} - 800d8f6: b086 sub sp, #24 - 800d8f8: af00 add r7, sp, #0 - 800d8fa: 60f8 str r0, [r7, #12] - 800d8fc: 60b9 str r1, [r7, #8] - 800d8fe: 607a str r2, [r7, #4] + 800d888: b580 push {r7, lr} + 800d88a: b086 sub sp, #24 + 800d88c: af00 add r7, sp, #0 + 800d88e: 60f8 str r0, [r7, #12] + 800d890: 60b9 str r1, [r7, #8] + 800d892: 607a str r2, [r7, #4] trans_del(obj, selector, LV_STYLE_PROP_ANY, NULL); - 800d900: 2300 movs r3, #0 - 800d902: f64f 72ff movw r2, #65535 ; 0xffff - 800d906: 6879 ldr r1, [r7, #4] - 800d908: 68f8 ldr r0, [r7, #12] - 800d90a: f001 f9ff bl 800ed0c + 800d894: 2300 movs r3, #0 + 800d896: f64f 72ff movw r2, #65535 ; 0xffff + 800d89a: 6879 ldr r1, [r7, #4] + 800d89c: 68f8 ldr r0, [r7, #12] + 800d89e: f001 f9ff bl 800eca0 uint32_t i; /*Go after the transition and local styles*/ for(i = 0; i < obj->style_cnt; i++) { - 800d90e: 2300 movs r3, #0 - 800d910: 617b str r3, [r7, #20] - 800d912: e01a b.n 800d94a + 800d8a2: 2300 movs r3, #0 + 800d8a4: 617b str r3, [r7, #20] + 800d8a6: e01a b.n 800d8de if(obj->styles[i].is_trans) continue; - 800d914: 68fb ldr r3, [r7, #12] - 800d916: 68da ldr r2, [r3, #12] - 800d918: 697b ldr r3, [r7, #20] - 800d91a: 00db lsls r3, r3, #3 - 800d91c: 4413 add r3, r2 - 800d91e: 79db ldrb r3, [r3, #7] - 800d920: f003 0302 and.w r3, r3, #2 - 800d924: b2db uxtb r3, r3 - 800d926: 2b00 cmp r3, #0 - 800d928: d10b bne.n 800d942 + 800d8a8: 68fb ldr r3, [r7, #12] + 800d8aa: 68da ldr r2, [r3, #12] + 800d8ac: 697b ldr r3, [r7, #20] + 800d8ae: 00db lsls r3, r3, #3 + 800d8b0: 4413 add r3, r2 + 800d8b2: 79db ldrb r3, [r3, #7] + 800d8b4: f003 0302 and.w r3, r3, #2 + 800d8b8: b2db uxtb r3, r3 + 800d8ba: 2b00 cmp r3, #0 + 800d8bc: d10b bne.n 800d8d6 if(obj->styles[i].is_local) continue; - 800d92a: 68fb ldr r3, [r7, #12] - 800d92c: 68da ldr r2, [r3, #12] - 800d92e: 697b ldr r3, [r7, #20] - 800d930: 00db lsls r3, r3, #3 - 800d932: 4413 add r3, r2 - 800d934: 79db ldrb r3, [r3, #7] - 800d936: f003 0301 and.w r3, r3, #1 - 800d93a: b2db uxtb r3, r3 - 800d93c: 2b00 cmp r3, #0 - 800d93e: d00e beq.n 800d95e - 800d940: e000 b.n 800d944 + 800d8be: 68fb ldr r3, [r7, #12] + 800d8c0: 68da ldr r2, [r3, #12] + 800d8c2: 697b ldr r3, [r7, #20] + 800d8c4: 00db lsls r3, r3, #3 + 800d8c6: 4413 add r3, r2 + 800d8c8: 79db ldrb r3, [r3, #7] + 800d8ca: f003 0301 and.w r3, r3, #1 + 800d8ce: b2db uxtb r3, r3 + 800d8d0: 2b00 cmp r3, #0 + 800d8d2: d00e beq.n 800d8f2 + 800d8d4: e000 b.n 800d8d8 if(obj->styles[i].is_trans) continue; - 800d942: bf00 nop + 800d8d6: bf00 nop for(i = 0; i < obj->style_cnt; i++) { - 800d944: 697b ldr r3, [r7, #20] - 800d946: 3301 adds r3, #1 - 800d948: 617b str r3, [r7, #20] - 800d94a: 68fb ldr r3, [r7, #12] - 800d94c: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800d94e: f3c3 03c5 ubfx r3, r3, #3, #6 - 800d952: b2db uxtb r3, r3 - 800d954: 461a mov r2, r3 - 800d956: 697b ldr r3, [r7, #20] - 800d958: 4293 cmp r3, r2 - 800d95a: d3db bcc.n 800d914 - 800d95c: e000 b.n 800d960 + 800d8d8: 697b ldr r3, [r7, #20] + 800d8da: 3301 adds r3, #1 + 800d8dc: 617b str r3, [r7, #20] + 800d8de: 68fb ldr r3, [r7, #12] + 800d8e0: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800d8e2: f3c3 03c5 ubfx r3, r3, #3, #6 + 800d8e6: b2db uxtb r3, r3 + 800d8e8: 461a mov r2, r3 + 800d8ea: 697b ldr r3, [r7, #20] + 800d8ec: 4293 cmp r3, r2 + 800d8ee: d3db bcc.n 800d8a8 + 800d8f0: e000 b.n 800d8f4 break; - 800d95e: bf00 nop + 800d8f2: bf00 nop } /*Now `i` is at the first normal style. Insert the new style before this*/ /*Allocate space for the new style and shift the rest of the style to the end*/ obj->style_cnt++; - 800d960: 68fb ldr r3, [r7, #12] - 800d962: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800d964: f3c3 03c5 ubfx r3, r3, #3, #6 - 800d968: b2db uxtb r3, r3 - 800d96a: 3301 adds r3, #1 - 800d96c: f003 033f and.w r3, r3, #63 ; 0x3f - 800d970: b2d9 uxtb r1, r3 - 800d972: 68fa ldr r2, [r7, #12] - 800d974: 8c53 ldrh r3, [r2, #34] ; 0x22 - 800d976: f361 03c8 bfi r3, r1, #3, #6 - 800d97a: 8453 strh r3, [r2, #34] ; 0x22 + 800d8f4: 68fb ldr r3, [r7, #12] + 800d8f6: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800d8f8: f3c3 03c5 ubfx r3, r3, #3, #6 + 800d8fc: b2db uxtb r3, r3 + 800d8fe: 3301 adds r3, #1 + 800d900: f003 033f and.w r3, r3, #63 ; 0x3f + 800d904: b2d9 uxtb r1, r3 + 800d906: 68fa ldr r2, [r7, #12] + 800d908: 8c53 ldrh r3, [r2, #34] ; 0x22 + 800d90a: f361 03c8 bfi r3, r1, #3, #6 + 800d90e: 8453 strh r3, [r2, #34] ; 0x22 obj->styles = lv_mem_realloc(obj->styles, obj->style_cnt * sizeof(_lv_obj_style_t)); - 800d97c: 68fb ldr r3, [r7, #12] - 800d97e: 68da ldr r2, [r3, #12] - 800d980: 68fb ldr r3, [r7, #12] - 800d982: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800d984: f3c3 03c5 ubfx r3, r3, #3, #6 - 800d988: b2db uxtb r3, r3 - 800d98a: 00db lsls r3, r3, #3 - 800d98c: 4619 mov r1, r3 - 800d98e: 4610 mov r0, r2 - 800d990: f024 ffc0 bl 8032914 - 800d994: 4602 mov r2, r0 - 800d996: 68fb ldr r3, [r7, #12] - 800d998: 60da str r2, [r3, #12] + 800d910: 68fb ldr r3, [r7, #12] + 800d912: 68da ldr r2, [r3, #12] + 800d914: 68fb ldr r3, [r7, #12] + 800d916: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800d918: f3c3 03c5 ubfx r3, r3, #3, #6 + 800d91c: b2db uxtb r3, r3 + 800d91e: 00db lsls r3, r3, #3 + 800d920: 4619 mov r1, r3 + 800d922: 4610 mov r0, r2 + 800d924: f024 ffac bl 8032880 + 800d928: 4602 mov r2, r0 + 800d92a: 68fb ldr r3, [r7, #12] + 800d92c: 60da str r2, [r3, #12] uint32_t j; for(j = obj->style_cnt - 1; j > i ; j--) { - 800d99a: 68fb ldr r3, [r7, #12] - 800d99c: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800d99e: f3c3 03c5 ubfx r3, r3, #3, #6 - 800d9a2: b2db uxtb r3, r3 - 800d9a4: 3b01 subs r3, #1 - 800d9a6: 613b str r3, [r7, #16] - 800d9a8: e014 b.n 800d9d4 + 800d92e: 68fb ldr r3, [r7, #12] + 800d930: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800d932: f3c3 03c5 ubfx r3, r3, #3, #6 + 800d936: b2db uxtb r3, r3 + 800d938: 3b01 subs r3, #1 + 800d93a: 613b str r3, [r7, #16] + 800d93c: e014 b.n 800d968 obj->styles[j] = obj->styles[j - 1]; - 800d9aa: 68fb ldr r3, [r7, #12] - 800d9ac: 68da ldr r2, [r3, #12] - 800d9ae: 693b ldr r3, [r7, #16] - 800d9b0: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 - 800d9b4: 3b01 subs r3, #1 - 800d9b6: 00db lsls r3, r3, #3 - 800d9b8: 18d1 adds r1, r2, r3 - 800d9ba: 68fb ldr r3, [r7, #12] - 800d9bc: 68da ldr r2, [r3, #12] - 800d9be: 693b ldr r3, [r7, #16] - 800d9c0: 00db lsls r3, r3, #3 - 800d9c2: 4413 add r3, r2 - 800d9c4: 460a mov r2, r1 - 800d9c6: e892 0003 ldmia.w r2, {r0, r1} - 800d9ca: e883 0003 stmia.w r3, {r0, r1} + 800d93e: 68fb ldr r3, [r7, #12] + 800d940: 68da ldr r2, [r3, #12] + 800d942: 693b ldr r3, [r7, #16] + 800d944: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 + 800d948: 3b01 subs r3, #1 + 800d94a: 00db lsls r3, r3, #3 + 800d94c: 18d1 adds r1, r2, r3 + 800d94e: 68fb ldr r3, [r7, #12] + 800d950: 68da ldr r2, [r3, #12] + 800d952: 693b ldr r3, [r7, #16] + 800d954: 00db lsls r3, r3, #3 + 800d956: 4413 add r3, r2 + 800d958: 460a mov r2, r1 + 800d95a: e892 0003 ldmia.w r2, {r0, r1} + 800d95e: e883 0003 stmia.w r3, {r0, r1} for(j = obj->style_cnt - 1; j > i ; j--) { - 800d9ce: 693b ldr r3, [r7, #16] - 800d9d0: 3b01 subs r3, #1 - 800d9d2: 613b str r3, [r7, #16] - 800d9d4: 693a ldr r2, [r7, #16] - 800d9d6: 697b ldr r3, [r7, #20] - 800d9d8: 429a cmp r2, r3 - 800d9da: d8e6 bhi.n 800d9aa + 800d962: 693b ldr r3, [r7, #16] + 800d964: 3b01 subs r3, #1 + 800d966: 613b str r3, [r7, #16] + 800d968: 693a ldr r2, [r7, #16] + 800d96a: 697b ldr r3, [r7, #20] + 800d96c: 429a cmp r2, r3 + 800d96e: d8e6 bhi.n 800d93e } lv_memset_00(&obj->styles[i], sizeof(_lv_obj_style_t)); - 800d9dc: 68fb ldr r3, [r7, #12] - 800d9de: 68da ldr r2, [r3, #12] - 800d9e0: 697b ldr r3, [r7, #20] - 800d9e2: 00db lsls r3, r3, #3 - 800d9e4: 4413 add r3, r2 - 800d9e6: 2108 movs r1, #8 - 800d9e8: 4618 mov r0, r3 - 800d9ea: f025 fbb1 bl 8033150 + 800d970: 68fb ldr r3, [r7, #12] + 800d972: 68da ldr r2, [r3, #12] + 800d974: 697b ldr r3, [r7, #20] + 800d976: 00db lsls r3, r3, #3 + 800d978: 4413 add r3, r2 + 800d97a: 2108 movs r1, #8 + 800d97c: 4618 mov r0, r3 + 800d97e: f025 fb9d bl 80330bc obj->styles[i].style = style; - 800d9ee: 68fb ldr r3, [r7, #12] - 800d9f0: 68da ldr r2, [r3, #12] - 800d9f2: 697b ldr r3, [r7, #20] - 800d9f4: 00db lsls r3, r3, #3 - 800d9f6: 4413 add r3, r2 - 800d9f8: 68ba ldr r2, [r7, #8] - 800d9fa: 601a str r2, [r3, #0] + 800d982: 68fb ldr r3, [r7, #12] + 800d984: 68da ldr r2, [r3, #12] + 800d986: 697b ldr r3, [r7, #20] + 800d988: 00db lsls r3, r3, #3 + 800d98a: 4413 add r3, r2 + 800d98c: 68ba ldr r2, [r7, #8] + 800d98e: 601a str r2, [r3, #0] obj->styles[i].selector = selector; - 800d9fc: 68fb ldr r3, [r7, #12] - 800d9fe: 68da ldr r2, [r3, #12] - 800da00: 697b ldr r3, [r7, #20] - 800da02: 00db lsls r3, r3, #3 - 800da04: 441a add r2, r3 - 800da06: 687b ldr r3, [r7, #4] - 800da08: f023 417f bic.w r1, r3, #4278190080 ; 0xff000000 - 800da0c: 6853 ldr r3, [r2, #4] - 800da0e: f361 0317 bfi r3, r1, #0, #24 - 800da12: 6053 str r3, [r2, #4] + 800d990: 68fb ldr r3, [r7, #12] + 800d992: 68da ldr r2, [r3, #12] + 800d994: 697b ldr r3, [r7, #20] + 800d996: 00db lsls r3, r3, #3 + 800d998: 441a add r2, r3 + 800d99a: 687b ldr r3, [r7, #4] + 800d99c: f023 417f bic.w r1, r3, #4278190080 ; 0xff000000 + 800d9a0: 6853 ldr r3, [r2, #4] + 800d9a2: f361 0317 bfi r3, r1, #0, #24 + 800d9a6: 6053 str r3, [r2, #4] lv_obj_refresh_style(obj, selector, LV_STYLE_PROP_ANY); - 800da14: f64f 72ff movw r2, #65535 ; 0xffff - 800da18: 6879 ldr r1, [r7, #4] - 800da1a: 68f8 ldr r0, [r7, #12] - 800da1c: f000 f92e bl 800dc7c + 800d9a8: f64f 72ff movw r2, #65535 ; 0xffff + 800d9ac: 6879 ldr r1, [r7, #4] + 800d9ae: 68f8 ldr r0, [r7, #12] + 800d9b0: f000 f92e bl 800dc10 } - 800da20: bf00 nop - 800da22: 3718 adds r7, #24 - 800da24: 46bd mov sp, r7 - 800da26: bd80 pop {r7, pc} + 800d9b4: bf00 nop + 800d9b6: 3718 adds r7, #24 + 800d9b8: 46bd mov sp, r7 + 800d9ba: bd80 pop {r7, pc} -0800da28 : +0800d9bc : void lv_obj_remove_style(lv_obj_t * obj, lv_style_t * style, lv_style_selector_t selector) { - 800da28: b580 push {r7, lr} - 800da2a: b08c sub sp, #48 ; 0x30 - 800da2c: af00 add r7, sp, #0 - 800da2e: 60f8 str r0, [r7, #12] - 800da30: 60b9 str r1, [r7, #8] - 800da32: 607a str r2, [r7, #4] + 800d9bc: b580 push {r7, lr} + 800d9be: b08c sub sp, #48 ; 0x30 + 800d9c0: af00 add r7, sp, #0 + 800d9c2: 60f8 str r0, [r7, #12] + 800d9c4: 60b9 str r1, [r7, #8] + 800d9c6: 607a str r2, [r7, #4] lv_state_t state = lv_obj_style_get_selector_state(selector); - 800da34: 6878 ldr r0, [r7, #4] - 800da36: f000 fe2c bl 800e692 - 800da3a: 4603 mov r3, r0 - 800da3c: 83fb strh r3, [r7, #30] + 800d9c8: 6878 ldr r0, [r7, #4] + 800d9ca: f000 fe2c bl 800e626 + 800d9ce: 4603 mov r3, r0 + 800d9d0: 83fb strh r3, [r7, #30] lv_part_t part = lv_obj_style_get_selector_part(selector); - 800da3e: 6878 ldr r0, [r7, #4] - 800da40: f000 fe32 bl 800e6a8 - 800da44: 61b8 str r0, [r7, #24] + 800d9d2: 6878 ldr r0, [r7, #4] + 800d9d4: f000 fe32 bl 800e63c + 800d9d8: 61b8 str r0, [r7, #24] lv_style_prop_t prop = LV_STYLE_PROP_ANY; - 800da46: f64f 73ff movw r3, #65535 ; 0xffff - 800da4a: 85fb strh r3, [r7, #46] ; 0x2e + 800d9da: f64f 73ff movw r3, #65535 ; 0xffff + 800d9de: 85fb strh r3, [r7, #46] ; 0x2e if(style && style->prop_cnt == 0) prop = LV_STYLE_PROP_INV; - 800da4c: 68bb ldr r3, [r7, #8] - 800da4e: 2b00 cmp r3, #0 - 800da50: d005 beq.n 800da5e - 800da52: 68bb ldr r3, [r7, #8] - 800da54: 79db ldrb r3, [r3, #7] - 800da56: 2b00 cmp r3, #0 - 800da58: d101 bne.n 800da5e - 800da5a: 2300 movs r3, #0 - 800da5c: 85fb strh r3, [r7, #46] ; 0x2e + 800d9e0: 68bb ldr r3, [r7, #8] + 800d9e2: 2b00 cmp r3, #0 + 800d9e4: d005 beq.n 800d9f2 + 800d9e6: 68bb ldr r3, [r7, #8] + 800d9e8: 79db ldrb r3, [r3, #7] + 800d9ea: 2b00 cmp r3, #0 + 800d9ec: d101 bne.n 800d9f2 + 800d9ee: 2300 movs r3, #0 + 800d9f0: 85fb strh r3, [r7, #46] ; 0x2e uint32_t i = 0; - 800da5e: 2300 movs r3, #0 - 800da60: 62bb str r3, [r7, #40] ; 0x28 + 800d9f2: 2300 movs r3, #0 + 800d9f4: 62bb str r3, [r7, #40] ; 0x28 bool deleted = false; - 800da62: 2300 movs r3, #0 - 800da64: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 800d9f6: 2300 movs r3, #0 + 800d9f8: f887 3027 strb.w r3, [r7, #39] ; 0x27 while(i < obj->style_cnt) { - 800da68: e0b9 b.n 800dbde + 800d9fc: e0b9 b.n 800db72 lv_state_t state_act = lv_obj_style_get_selector_state(obj->styles[i].selector); - 800da6a: 68fb ldr r3, [r7, #12] - 800da6c: 68da ldr r2, [r3, #12] - 800da6e: 6abb ldr r3, [r7, #40] ; 0x28 - 800da70: 00db lsls r3, r3, #3 - 800da72: 4413 add r3, r2 - 800da74: 685b ldr r3, [r3, #4] - 800da76: f3c3 0317 ubfx r3, r3, #0, #24 - 800da7a: 4618 mov r0, r3 - 800da7c: f000 fe09 bl 800e692 - 800da80: 4603 mov r3, r0 - 800da82: 82fb strh r3, [r7, #22] + 800d9fe: 68fb ldr r3, [r7, #12] + 800da00: 68da ldr r2, [r3, #12] + 800da02: 6abb ldr r3, [r7, #40] ; 0x28 + 800da04: 00db lsls r3, r3, #3 + 800da06: 4413 add r3, r2 + 800da08: 685b ldr r3, [r3, #4] + 800da0a: f3c3 0317 ubfx r3, r3, #0, #24 + 800da0e: 4618 mov r0, r3 + 800da10: f000 fe09 bl 800e626 + 800da14: 4603 mov r3, r0 + 800da16: 82fb strh r3, [r7, #22] lv_part_t part_act = lv_obj_style_get_selector_part(obj->styles[i].selector); - 800da84: 68fb ldr r3, [r7, #12] - 800da86: 68da ldr r2, [r3, #12] - 800da88: 6abb ldr r3, [r7, #40] ; 0x28 - 800da8a: 00db lsls r3, r3, #3 - 800da8c: 4413 add r3, r2 - 800da8e: 685b ldr r3, [r3, #4] - 800da90: f3c3 0317 ubfx r3, r3, #0, #24 - 800da94: 4618 mov r0, r3 - 800da96: f000 fe07 bl 800e6a8 - 800da9a: 6138 str r0, [r7, #16] + 800da18: 68fb ldr r3, [r7, #12] + 800da1a: 68da ldr r2, [r3, #12] + 800da1c: 6abb ldr r3, [r7, #40] ; 0x28 + 800da1e: 00db lsls r3, r3, #3 + 800da20: 4413 add r3, r2 + 800da22: 685b ldr r3, [r3, #4] + 800da24: f3c3 0317 ubfx r3, r3, #0, #24 + 800da28: 4618 mov r0, r3 + 800da2a: f000 fe07 bl 800e63c + 800da2e: 6138 str r0, [r7, #16] if((state != LV_STATE_ANY && state_act != state) || - 800da9c: 8bfb ldrh r3, [r7, #30] - 800da9e: f64f 72ff movw r2, #65535 ; 0xffff - 800daa2: 4293 cmp r3, r2 - 800daa4: d003 beq.n 800daae - 800daa6: 8afa ldrh r2, [r7, #22] - 800daa8: 8bfb ldrh r3, [r7, #30] - 800daaa: 429a cmp r2, r3 - 800daac: d113 bne.n 800dad6 - 800daae: 69bb ldr r3, [r7, #24] - 800dab0: f5b3 2f70 cmp.w r3, #983040 ; 0xf0000 - 800dab4: d003 beq.n 800dabe + 800da30: 8bfb ldrh r3, [r7, #30] + 800da32: f64f 72ff movw r2, #65535 ; 0xffff + 800da36: 4293 cmp r3, r2 + 800da38: d003 beq.n 800da42 + 800da3a: 8afa ldrh r2, [r7, #22] + 800da3c: 8bfb ldrh r3, [r7, #30] + 800da3e: 429a cmp r2, r3 + 800da40: d113 bne.n 800da6a + 800da42: 69bb ldr r3, [r7, #24] + 800da44: f5b3 2f70 cmp.w r3, #983040 ; 0xf0000 + 800da48: d003 beq.n 800da52 (part != LV_PART_ANY && part_act != part) || - 800dab6: 693a ldr r2, [r7, #16] - 800dab8: 69bb ldr r3, [r7, #24] - 800daba: 429a cmp r2, r3 - 800dabc: d10b bne.n 800dad6 - 800dabe: 68bb ldr r3, [r7, #8] - 800dac0: 2b00 cmp r3, #0 - 800dac2: d00c beq.n 800dade + 800da4a: 693a ldr r2, [r7, #16] + 800da4c: 69bb ldr r3, [r7, #24] + 800da4e: 429a cmp r2, r3 + 800da50: d10b bne.n 800da6a + 800da52: 68bb ldr r3, [r7, #8] + 800da54: 2b00 cmp r3, #0 + 800da56: d00c beq.n 800da72 (style != NULL && style != obj->styles[i].style)) { - 800dac4: 68fb ldr r3, [r7, #12] - 800dac6: 68da ldr r2, [r3, #12] - 800dac8: 6abb ldr r3, [r7, #40] ; 0x28 - 800daca: 00db lsls r3, r3, #3 - 800dacc: 4413 add r3, r2 - 800dace: 681b ldr r3, [r3, #0] - 800dad0: 68ba ldr r2, [r7, #8] - 800dad2: 429a cmp r2, r3 - 800dad4: d003 beq.n 800dade + 800da58: 68fb ldr r3, [r7, #12] + 800da5a: 68da ldr r2, [r3, #12] + 800da5c: 6abb ldr r3, [r7, #40] ; 0x28 + 800da5e: 00db lsls r3, r3, #3 + 800da60: 4413 add r3, r2 + 800da62: 681b ldr r3, [r3, #0] + 800da64: 68ba ldr r2, [r7, #8] + 800da66: 429a cmp r2, r3 + 800da68: d003 beq.n 800da72 i++; - 800dad6: 6abb ldr r3, [r7, #40] ; 0x28 - 800dad8: 3301 adds r3, #1 - 800dada: 62bb str r3, [r7, #40] ; 0x28 + 800da6a: 6abb ldr r3, [r7, #40] ; 0x28 + 800da6c: 3301 adds r3, #1 + 800da6e: 62bb str r3, [r7, #40] ; 0x28 continue; - 800dadc: e07f b.n 800dbde + 800da70: e07f b.n 800db72 } if(obj->styles[i].is_trans) { - 800dade: 68fb ldr r3, [r7, #12] - 800dae0: 68da ldr r2, [r3, #12] - 800dae2: 6abb ldr r3, [r7, #40] ; 0x28 - 800dae4: 00db lsls r3, r3, #3 - 800dae6: 4413 add r3, r2 - 800dae8: 79db ldrb r3, [r3, #7] - 800daea: f003 0302 and.w r3, r3, #2 - 800daee: b2db uxtb r3, r3 - 800daf0: 2b00 cmp r3, #0 - 800daf2: d006 beq.n 800db02 + 800da72: 68fb ldr r3, [r7, #12] + 800da74: 68da ldr r2, [r3, #12] + 800da76: 6abb ldr r3, [r7, #40] ; 0x28 + 800da78: 00db lsls r3, r3, #3 + 800da7a: 4413 add r3, r2 + 800da7c: 79db ldrb r3, [r3, #7] + 800da7e: f003 0302 and.w r3, r3, #2 + 800da82: b2db uxtb r3, r3 + 800da84: 2b00 cmp r3, #0 + 800da86: d006 beq.n 800da96 trans_del(obj, part, LV_STYLE_PROP_ANY, NULL); - 800daf4: 2300 movs r3, #0 - 800daf6: f64f 72ff movw r2, #65535 ; 0xffff - 800dafa: 69b9 ldr r1, [r7, #24] - 800dafc: 68f8 ldr r0, [r7, #12] - 800dafe: f001 f905 bl 800ed0c + 800da88: 2300 movs r3, #0 + 800da8a: f64f 72ff movw r2, #65535 ; 0xffff + 800da8e: 69b9 ldr r1, [r7, #24] + 800da90: 68f8 ldr r0, [r7, #12] + 800da92: f001 f905 bl 800eca0 } if(obj->styles[i].is_local || obj->styles[i].is_trans) { - 800db02: 68fb ldr r3, [r7, #12] - 800db04: 68da ldr r2, [r3, #12] - 800db06: 6abb ldr r3, [r7, #40] ; 0x28 - 800db08: 00db lsls r3, r3, #3 - 800db0a: 4413 add r3, r2 - 800db0c: 79db ldrb r3, [r3, #7] - 800db0e: f003 0301 and.w r3, r3, #1 - 800db12: b2db uxtb r3, r3 - 800db14: 2b00 cmp r3, #0 - 800db16: d10a bne.n 800db2e - 800db18: 68fb ldr r3, [r7, #12] - 800db1a: 68da ldr r2, [r3, #12] - 800db1c: 6abb ldr r3, [r7, #40] ; 0x28 - 800db1e: 00db lsls r3, r3, #3 - 800db20: 4413 add r3, r2 - 800db22: 79db ldrb r3, [r3, #7] - 800db24: f003 0302 and.w r3, r3, #2 - 800db28: b2db uxtb r3, r3 - 800db2a: 2b00 cmp r3, #0 - 800db2c: d018 beq.n 800db60 + 800da96: 68fb ldr r3, [r7, #12] + 800da98: 68da ldr r2, [r3, #12] + 800da9a: 6abb ldr r3, [r7, #40] ; 0x28 + 800da9c: 00db lsls r3, r3, #3 + 800da9e: 4413 add r3, r2 + 800daa0: 79db ldrb r3, [r3, #7] + 800daa2: f003 0301 and.w r3, r3, #1 + 800daa6: b2db uxtb r3, r3 + 800daa8: 2b00 cmp r3, #0 + 800daaa: d10a bne.n 800dac2 + 800daac: 68fb ldr r3, [r7, #12] + 800daae: 68da ldr r2, [r3, #12] + 800dab0: 6abb ldr r3, [r7, #40] ; 0x28 + 800dab2: 00db lsls r3, r3, #3 + 800dab4: 4413 add r3, r2 + 800dab6: 79db ldrb r3, [r3, #7] + 800dab8: f003 0302 and.w r3, r3, #2 + 800dabc: b2db uxtb r3, r3 + 800dabe: 2b00 cmp r3, #0 + 800dac0: d018 beq.n 800daf4 lv_style_reset(obj->styles[i].style); - 800db2e: 68fb ldr r3, [r7, #12] - 800db30: 68da ldr r2, [r3, #12] - 800db32: 6abb ldr r3, [r7, #40] ; 0x28 - 800db34: 00db lsls r3, r3, #3 - 800db36: 4413 add r3, r2 - 800db38: 681b ldr r3, [r3, #0] - 800db3a: 4618 mov r0, r3 - 800db3c: f026 fb96 bl 803426c + 800dac2: 68fb ldr r3, [r7, #12] + 800dac4: 68da ldr r2, [r3, #12] + 800dac6: 6abb ldr r3, [r7, #40] ; 0x28 + 800dac8: 00db lsls r3, r3, #3 + 800daca: 4413 add r3, r2 + 800dacc: 681b ldr r3, [r3, #0] + 800dace: 4618 mov r0, r3 + 800dad0: f026 fb82 bl 80341d8 lv_mem_free(obj->styles[i].style); - 800db40: 68fb ldr r3, [r7, #12] - 800db42: 68da ldr r2, [r3, #12] - 800db44: 6abb ldr r3, [r7, #40] ; 0x28 - 800db46: 00db lsls r3, r3, #3 - 800db48: 4413 add r3, r2 - 800db4a: 681b ldr r3, [r3, #0] - 800db4c: 4618 mov r0, r3 - 800db4e: f024 fec5 bl 80328dc + 800dad4: 68fb ldr r3, [r7, #12] + 800dad6: 68da ldr r2, [r3, #12] + 800dad8: 6abb ldr r3, [r7, #40] ; 0x28 + 800dada: 00db lsls r3, r3, #3 + 800dadc: 4413 add r3, r2 + 800dade: 681b ldr r3, [r3, #0] + 800dae0: 4618 mov r0, r3 + 800dae2: f024 feb1 bl 8032848 obj->styles[i].style = NULL; - 800db52: 68fb ldr r3, [r7, #12] - 800db54: 68da ldr r2, [r3, #12] - 800db56: 6abb ldr r3, [r7, #40] ; 0x28 - 800db58: 00db lsls r3, r3, #3 - 800db5a: 4413 add r3, r2 - 800db5c: 2200 movs r2, #0 - 800db5e: 601a str r2, [r3, #0] + 800dae6: 68fb ldr r3, [r7, #12] + 800dae8: 68da ldr r2, [r3, #12] + 800daea: 6abb ldr r3, [r7, #40] ; 0x28 + 800daec: 00db lsls r3, r3, #3 + 800daee: 4413 add r3, r2 + 800daf0: 2200 movs r2, #0 + 800daf2: 601a str r2, [r3, #0] } /*Shift the styles after `i` by one*/ uint32_t j; for(j = i; j < (uint32_t)obj->style_cnt - 1 ; j++) { - 800db60: 6abb ldr r3, [r7, #40] ; 0x28 - 800db62: 623b str r3, [r7, #32] - 800db64: e012 b.n 800db8c + 800daf4: 6abb ldr r3, [r7, #40] ; 0x28 + 800daf6: 623b str r3, [r7, #32] + 800daf8: e012 b.n 800db20 obj->styles[j] = obj->styles[j + 1]; - 800db66: 68fb ldr r3, [r7, #12] - 800db68: 68da ldr r2, [r3, #12] - 800db6a: 6a3b ldr r3, [r7, #32] - 800db6c: 3301 adds r3, #1 - 800db6e: 00db lsls r3, r3, #3 - 800db70: 18d1 adds r1, r2, r3 - 800db72: 68fb ldr r3, [r7, #12] - 800db74: 68da ldr r2, [r3, #12] - 800db76: 6a3b ldr r3, [r7, #32] - 800db78: 00db lsls r3, r3, #3 - 800db7a: 4413 add r3, r2 - 800db7c: 460a mov r2, r1 - 800db7e: e892 0003 ldmia.w r2, {r0, r1} - 800db82: e883 0003 stmia.w r3, {r0, r1} + 800dafa: 68fb ldr r3, [r7, #12] + 800dafc: 68da ldr r2, [r3, #12] + 800dafe: 6a3b ldr r3, [r7, #32] + 800db00: 3301 adds r3, #1 + 800db02: 00db lsls r3, r3, #3 + 800db04: 18d1 adds r1, r2, r3 + 800db06: 68fb ldr r3, [r7, #12] + 800db08: 68da ldr r2, [r3, #12] + 800db0a: 6a3b ldr r3, [r7, #32] + 800db0c: 00db lsls r3, r3, #3 + 800db0e: 4413 add r3, r2 + 800db10: 460a mov r2, r1 + 800db12: e892 0003 ldmia.w r2, {r0, r1} + 800db16: e883 0003 stmia.w r3, {r0, r1} for(j = i; j < (uint32_t)obj->style_cnt - 1 ; j++) { - 800db86: 6a3b ldr r3, [r7, #32] - 800db88: 3301 adds r3, #1 - 800db8a: 623b str r3, [r7, #32] - 800db8c: 68fb ldr r3, [r7, #12] - 800db8e: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800db90: f3c3 03c5 ubfx r3, r3, #3, #6 - 800db94: b2db uxtb r3, r3 - 800db96: 3b01 subs r3, #1 - 800db98: 6a3a ldr r2, [r7, #32] - 800db9a: 429a cmp r2, r3 - 800db9c: d3e3 bcc.n 800db66 + 800db1a: 6a3b ldr r3, [r7, #32] + 800db1c: 3301 adds r3, #1 + 800db1e: 623b str r3, [r7, #32] + 800db20: 68fb ldr r3, [r7, #12] + 800db22: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800db24: f3c3 03c5 ubfx r3, r3, #3, #6 + 800db28: b2db uxtb r3, r3 + 800db2a: 3b01 subs r3, #1 + 800db2c: 6a3a ldr r2, [r7, #32] + 800db2e: 429a cmp r2, r3 + 800db30: d3e3 bcc.n 800dafa } obj->style_cnt--; - 800db9e: 68fb ldr r3, [r7, #12] - 800dba0: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800dba2: f3c3 03c5 ubfx r3, r3, #3, #6 - 800dba6: b2db uxtb r3, r3 - 800dba8: 333f adds r3, #63 ; 0x3f - 800dbaa: f003 033f and.w r3, r3, #63 ; 0x3f - 800dbae: b2d9 uxtb r1, r3 - 800dbb0: 68fa ldr r2, [r7, #12] - 800dbb2: 8c53 ldrh r3, [r2, #34] ; 0x22 - 800dbb4: f361 03c8 bfi r3, r1, #3, #6 - 800dbb8: 8453 strh r3, [r2, #34] ; 0x22 + 800db32: 68fb ldr r3, [r7, #12] + 800db34: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800db36: f3c3 03c5 ubfx r3, r3, #3, #6 + 800db3a: b2db uxtb r3, r3 + 800db3c: 333f adds r3, #63 ; 0x3f + 800db3e: f003 033f and.w r3, r3, #63 ; 0x3f + 800db42: b2d9 uxtb r1, r3 + 800db44: 68fa ldr r2, [r7, #12] + 800db46: 8c53 ldrh r3, [r2, #34] ; 0x22 + 800db48: f361 03c8 bfi r3, r1, #3, #6 + 800db4c: 8453 strh r3, [r2, #34] ; 0x22 obj->styles = lv_mem_realloc(obj->styles, obj->style_cnt * sizeof(_lv_obj_style_t)); - 800dbba: 68fb ldr r3, [r7, #12] - 800dbbc: 68da ldr r2, [r3, #12] - 800dbbe: 68fb ldr r3, [r7, #12] - 800dbc0: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800dbc2: f3c3 03c5 ubfx r3, r3, #3, #6 - 800dbc6: b2db uxtb r3, r3 - 800dbc8: 00db lsls r3, r3, #3 - 800dbca: 4619 mov r1, r3 - 800dbcc: 4610 mov r0, r2 - 800dbce: f024 fea1 bl 8032914 - 800dbd2: 4602 mov r2, r0 - 800dbd4: 68fb ldr r3, [r7, #12] - 800dbd6: 60da str r2, [r3, #12] + 800db4e: 68fb ldr r3, [r7, #12] + 800db50: 68da ldr r2, [r3, #12] + 800db52: 68fb ldr r3, [r7, #12] + 800db54: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800db56: f3c3 03c5 ubfx r3, r3, #3, #6 + 800db5a: b2db uxtb r3, r3 + 800db5c: 00db lsls r3, r3, #3 + 800db5e: 4619 mov r1, r3 + 800db60: 4610 mov r0, r2 + 800db62: f024 fe8d bl 8032880 + 800db66: 4602 mov r2, r0 + 800db68: 68fb ldr r3, [r7, #12] + 800db6a: 60da str r2, [r3, #12] deleted = true; - 800dbd8: 2301 movs r3, #1 - 800dbda: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 800db6c: 2301 movs r3, #1 + 800db6e: f887 3027 strb.w r3, [r7, #39] ; 0x27 while(i < obj->style_cnt) { - 800dbde: 68fb ldr r3, [r7, #12] - 800dbe0: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800dbe2: f3c3 03c5 ubfx r3, r3, #3, #6 - 800dbe6: b2db uxtb r3, r3 - 800dbe8: 461a mov r2, r3 - 800dbea: 6abb ldr r3, [r7, #40] ; 0x28 - 800dbec: 4293 cmp r3, r2 - 800dbee: f4ff af3c bcc.w 800da6a + 800db72: 68fb ldr r3, [r7, #12] + 800db74: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800db76: f3c3 03c5 ubfx r3, r3, #3, #6 + 800db7a: b2db uxtb r3, r3 + 800db7c: 461a mov r2, r3 + 800db7e: 6abb ldr r3, [r7, #40] ; 0x28 + 800db80: 4293 cmp r3, r2 + 800db82: f4ff af3c bcc.w 800d9fe /*The style from the current `i` index is removed, so `i` points to the next style. *Therefore it doesn't needs to be incremented*/ } if(deleted && prop != LV_STYLE_PROP_INV) { - 800dbf2: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 800dbf6: 2b00 cmp r3, #0 - 800dbf8: d008 beq.n 800dc0c - 800dbfa: 8dfb ldrh r3, [r7, #46] ; 0x2e - 800dbfc: 2b00 cmp r3, #0 - 800dbfe: d005 beq.n 800dc0c + 800db86: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 800db8a: 2b00 cmp r3, #0 + 800db8c: d008 beq.n 800dba0 + 800db8e: 8dfb ldrh r3, [r7, #46] ; 0x2e + 800db90: 2b00 cmp r3, #0 + 800db92: d005 beq.n 800dba0 lv_obj_refresh_style(obj, part, prop); - 800dc00: 8dfb ldrh r3, [r7, #46] ; 0x2e - 800dc02: 461a mov r2, r3 - 800dc04: 69b9 ldr r1, [r7, #24] - 800dc06: 68f8 ldr r0, [r7, #12] - 800dc08: f000 f838 bl 800dc7c + 800db94: 8dfb ldrh r3, [r7, #46] ; 0x2e + 800db96: 461a mov r2, r3 + 800db98: 69b9 ldr r1, [r7, #24] + 800db9a: 68f8 ldr r0, [r7, #12] + 800db9c: f000 f838 bl 800dc10 } } - 800dc0c: bf00 nop - 800dc0e: 3730 adds r7, #48 ; 0x30 - 800dc10: 46bd mov sp, r7 - 800dc12: bd80 pop {r7, pc} + 800dba0: bf00 nop + 800dba2: 3730 adds r7, #48 ; 0x30 + 800dba4: 46bd mov sp, r7 + 800dba6: bd80 pop {r7, pc} -0800dc14 : +0800dba8 : void lv_obj_report_style_change(lv_style_t * style) { - 800dc14: b580 push {r7, lr} - 800dc16: b084 sub sp, #16 - 800dc18: af00 add r7, sp, #0 - 800dc1a: 6078 str r0, [r7, #4] + 800dba8: b580 push {r7, lr} + 800dbaa: b084 sub sp, #16 + 800dbac: af00 add r7, sp, #0 + 800dbae: 6078 str r0, [r7, #4] if(!style_refr) return; - 800dc1c: 4b16 ldr r3, [pc, #88] ; (800dc78 ) - 800dc1e: 781b ldrb r3, [r3, #0] - 800dc20: f083 0301 eor.w r3, r3, #1 - 800dc24: b2db uxtb r3, r3 - 800dc26: 2b00 cmp r3, #0 - 800dc28: d121 bne.n 800dc6e + 800dbb0: 4b16 ldr r3, [pc, #88] ; (800dc0c ) + 800dbb2: 781b ldrb r3, [r3, #0] + 800dbb4: f083 0301 eor.w r3, r3, #1 + 800dbb8: b2db uxtb r3, r3 + 800dbba: 2b00 cmp r3, #0 + 800dbbc: d121 bne.n 800dc02 lv_disp_t * d = lv_disp_get_next(NULL); - 800dc2a: 2000 movs r0, #0 - 800dc2c: f022 fcd0 bl 80305d0 - 800dc30: 60f8 str r0, [r7, #12] + 800dbbe: 2000 movs r0, #0 + 800dbc0: f022 fcbc bl 803053c + 800dbc4: 60f8 str r0, [r7, #12] while(d) { - 800dc32: e018 b.n 800dc66 + 800dbc6: e018 b.n 800dbfa uint32_t i; for(i = 0; i < d->screen_cnt; i++) { - 800dc34: 2300 movs r3, #0 - 800dc36: 60bb str r3, [r7, #8] - 800dc38: e00c b.n 800dc54 + 800dbc8: 2300 movs r3, #0 + 800dbca: 60bb str r3, [r7, #8] + 800dbcc: e00c b.n 800dbe8 report_style_change_core(style, d->screens[i]); - 800dc3a: 68fb ldr r3, [r7, #12] - 800dc3c: 68da ldr r2, [r3, #12] - 800dc3e: 68bb ldr r3, [r7, #8] - 800dc40: 009b lsls r3, r3, #2 - 800dc42: 4413 add r3, r2 - 800dc44: 681b ldr r3, [r3, #0] - 800dc46: 4619 mov r1, r3 - 800dc48: 6878 ldr r0, [r7, #4] - 800dc4a: f000 ffec bl 800ec26 + 800dbce: 68fb ldr r3, [r7, #12] + 800dbd0: 68da ldr r2, [r3, #12] + 800dbd2: 68bb ldr r3, [r7, #8] + 800dbd4: 009b lsls r3, r3, #2 + 800dbd6: 4413 add r3, r2 + 800dbd8: 681b ldr r3, [r3, #0] + 800dbda: 4619 mov r1, r3 + 800dbdc: 6878 ldr r0, [r7, #4] + 800dbde: f000 ffec bl 800ebba for(i = 0; i < d->screen_cnt; i++) { - 800dc4e: 68bb ldr r3, [r7, #8] - 800dc50: 3301 adds r3, #1 - 800dc52: 60bb str r3, [r7, #8] - 800dc54: 68fb ldr r3, [r7, #12] - 800dc56: 6a5b ldr r3, [r3, #36] ; 0x24 - 800dc58: 68ba ldr r2, [r7, #8] - 800dc5a: 429a cmp r2, r3 - 800dc5c: d3ed bcc.n 800dc3a + 800dbe2: 68bb ldr r3, [r7, #8] + 800dbe4: 3301 adds r3, #1 + 800dbe6: 60bb str r3, [r7, #8] + 800dbe8: 68fb ldr r3, [r7, #12] + 800dbea: 6a5b ldr r3, [r3, #36] ; 0x24 + 800dbec: 68ba ldr r2, [r7, #8] + 800dbee: 429a cmp r2, r3 + 800dbf0: d3ed bcc.n 800dbce } d = lv_disp_get_next(d); - 800dc5e: 68f8 ldr r0, [r7, #12] - 800dc60: f022 fcb6 bl 80305d0 - 800dc64: 60f8 str r0, [r7, #12] + 800dbf2: 68f8 ldr r0, [r7, #12] + 800dbf4: f022 fca2 bl 803053c + 800dbf8: 60f8 str r0, [r7, #12] while(d) { - 800dc66: 68fb ldr r3, [r7, #12] - 800dc68: 2b00 cmp r3, #0 - 800dc6a: d1e3 bne.n 800dc34 - 800dc6c: e000 b.n 800dc70 + 800dbfa: 68fb ldr r3, [r7, #12] + 800dbfc: 2b00 cmp r3, #0 + 800dbfe: d1e3 bne.n 800dbc8 + 800dc00: e000 b.n 800dc04 if(!style_refr) return; - 800dc6e: bf00 nop + 800dc02: bf00 nop } } - 800dc70: 3710 adds r7, #16 - 800dc72: 46bd mov sp, r7 - 800dc74: bd80 pop {r7, pc} - 800dc76: bf00 nop - 800dc78: 20000039 .word 0x20000039 + 800dc04: 3710 adds r7, #16 + 800dc06: 46bd mov sp, r7 + 800dc08: bd80 pop {r7, pc} + 800dc0a: bf00 nop + 800dc0c: 20000039 .word 0x20000039 -0800dc7c : +0800dc10 : void lv_obj_refresh_style(lv_obj_t * obj, lv_style_selector_t selector, lv_style_prop_t prop) { - 800dc7c: b580 push {r7, lr} - 800dc7e: b086 sub sp, #24 - 800dc80: af00 add r7, sp, #0 - 800dc82: 60f8 str r0, [r7, #12] - 800dc84: 60b9 str r1, [r7, #8] - 800dc86: 4613 mov r3, r2 - 800dc88: 80fb strh r3, [r7, #6] + 800dc10: b580 push {r7, lr} + 800dc12: b086 sub sp, #24 + 800dc14: af00 add r7, sp, #0 + 800dc16: 60f8 str r0, [r7, #12] + 800dc18: 60b9 str r1, [r7, #8] + 800dc1a: 4613 mov r3, r2 + 800dc1c: 80fb strh r3, [r7, #6] LV_ASSERT_OBJ(obj, MY_CLASS); if(!style_refr) return; - 800dc8a: 4b40 ldr r3, [pc, #256] ; (800dd8c ) - 800dc8c: 781b ldrb r3, [r3, #0] - 800dc8e: f083 0301 eor.w r3, r3, #1 - 800dc92: b2db uxtb r3, r3 - 800dc94: 2b00 cmp r3, #0 - 800dc96: d175 bne.n 800dd84 + 800dc1e: 4b40 ldr r3, [pc, #256] ; (800dd20 ) + 800dc20: 781b ldrb r3, [r3, #0] + 800dc22: f083 0301 eor.w r3, r3, #1 + 800dc26: b2db uxtb r3, r3 + 800dc28: 2b00 cmp r3, #0 + 800dc2a: d175 bne.n 800dd18 lv_obj_invalidate(obj); - 800dc98: 68f8 ldr r0, [r7, #12] - 800dc9a: f7fc ff0a bl 800aab2 + 800dc2c: 68f8 ldr r0, [r7, #12] + 800dc2e: f7fc ff0a bl 800aa46 lv_part_t part = lv_obj_style_get_selector_part(selector); - 800dc9e: 68b8 ldr r0, [r7, #8] - 800dca0: f000 fd02 bl 800e6a8 - 800dca4: 6178 str r0, [r7, #20] + 800dc32: 68b8 ldr r0, [r7, #8] + 800dc34: f000 fd02 bl 800e63c + 800dc38: 6178 str r0, [r7, #20] if(prop & LV_STYLE_PROP_LAYOUT_REFR) { - 800dca6: 88fb ldrh r3, [r7, #6] - 800dca8: f403 5380 and.w r3, r3, #4096 ; 0x1000 - 800dcac: 2b00 cmp r3, #0 - 800dcae: d022 beq.n 800dcf6 + 800dc3a: 88fb ldrh r3, [r7, #6] + 800dc3c: f403 5380 and.w r3, r3, #4096 ; 0x1000 + 800dc40: 2b00 cmp r3, #0 + 800dc42: d022 beq.n 800dc8a if(part == LV_PART_ANY || - 800dcb0: 697b ldr r3, [r7, #20] - 800dcb2: f5b3 2f70 cmp.w r3, #983040 ; 0xf0000 - 800dcb6: d016 beq.n 800dce6 - 800dcb8: 697b ldr r3, [r7, #20] - 800dcba: 2b00 cmp r3, #0 - 800dcbc: d013 beq.n 800dce6 + 800dc44: 697b ldr r3, [r7, #20] + 800dc46: f5b3 2f70 cmp.w r3, #983040 ; 0xf0000 + 800dc4a: d016 beq.n 800dc7a + 800dc4c: 697b ldr r3, [r7, #20] + 800dc4e: 2b00 cmp r3, #0 + 800dc50: d013 beq.n 800dc7a part == LV_PART_MAIN || lv_obj_get_style_height(obj, 0) == LV_SIZE_CONTENT || - 800dcbe: 2100 movs r1, #0 - 800dcc0: 68f8 ldr r0, [r7, #12] - 800dcc2: f7ff fdb1 bl 800d828 - 800dcc6: 4603 mov r3, r0 - 800dcc8: 461a mov r2, r3 + 800dc52: 2100 movs r1, #0 + 800dc54: 68f8 ldr r0, [r7, #12] + 800dc56: f7ff fdb1 bl 800d7bc + 800dc5a: 4603 mov r3, r0 + 800dc5c: 461a mov r2, r3 part == LV_PART_MAIN || - 800dcca: f242 73d1 movw r3, #10193 ; 0x27d1 - 800dcce: 429a cmp r2, r3 - 800dcd0: d009 beq.n 800dce6 + 800dc5e: f242 73d1 movw r3, #10193 ; 0x27d1 + 800dc62: 429a cmp r2, r3 + 800dc64: d009 beq.n 800dc7a lv_obj_get_style_width(obj, 0) == LV_SIZE_CONTENT) { - 800dcd2: 2100 movs r1, #0 - 800dcd4: 68f8 ldr r0, [r7, #12] - 800dcd6: f7ff fd94 bl 800d802 - 800dcda: 4603 mov r3, r0 - 800dcdc: 461a mov r2, r3 + 800dc66: 2100 movs r1, #0 + 800dc68: 68f8 ldr r0, [r7, #12] + 800dc6a: f7ff fd94 bl 800d796 + 800dc6e: 4603 mov r3, r0 + 800dc70: 461a mov r2, r3 lv_obj_get_style_height(obj, 0) == LV_SIZE_CONTENT || - 800dcde: f242 73d1 movw r3, #10193 ; 0x27d1 - 800dce2: 429a cmp r2, r3 - 800dce4: d107 bne.n 800dcf6 + 800dc72: f242 73d1 movw r3, #10193 ; 0x27d1 + 800dc76: 429a cmp r2, r3 + 800dc78: d107 bne.n 800dc8a lv_event_send(obj, LV_EVENT_STYLE_CHANGED, NULL); - 800dce6: 2200 movs r2, #0 - 800dce8: 212a movs r1, #42 ; 0x2a - 800dcea: 68f8 ldr r0, [r7, #12] - 800dcec: f7f4 fbc8 bl 8002480 + 800dc7a: 2200 movs r2, #0 + 800dc7c: 212a movs r1, #42 ; 0x2a + 800dc7e: 68f8 ldr r0, [r7, #12] + 800dc80: f7f4 fbc8 bl 8002414 lv_obj_mark_layout_as_dirty(obj); - 800dcf0: 68f8 ldr r0, [r7, #12] - 800dcf2: f7fb fdfb bl 80098ec + 800dc84: 68f8 ldr r0, [r7, #12] + 800dc86: f7fb fdfb bl 8009880 } } if((part == LV_PART_ANY || part == LV_PART_MAIN) && (prop == LV_STYLE_PROP_ANY || - 800dcf6: 697b ldr r3, [r7, #20] - 800dcf8: f5b3 2f70 cmp.w r3, #983040 ; 0xf0000 - 800dcfc: d002 beq.n 800dd04 - 800dcfe: 697b ldr r3, [r7, #20] - 800dd00: 2b00 cmp r3, #0 - 800dd02: d113 bne.n 800dd2c - 800dd04: 88fb ldrh r3, [r7, #6] - 800dd06: f64f 72ff movw r2, #65535 ; 0xffff - 800dd0a: 4293 cmp r3, r2 - 800dd0c: d004 beq.n 800dd18 + 800dc8a: 697b ldr r3, [r7, #20] + 800dc8c: f5b3 2f70 cmp.w r3, #983040 ; 0xf0000 + 800dc90: d002 beq.n 800dc98 + 800dc92: 697b ldr r3, [r7, #20] + 800dc94: 2b00 cmp r3, #0 + 800dc96: d113 bne.n 800dcc0 + 800dc98: 88fb ldrh r3, [r7, #6] + 800dc9a: f64f 72ff movw r2, #65535 ; 0xffff + 800dc9e: 4293 cmp r3, r2 + 800dca0: d004 beq.n 800dcac (prop & LV_STYLE_PROP_PARENT_LAYOUT_REFR))) { - 800dd0e: 88fb ldrh r3, [r7, #6] - 800dd10: f403 5300 and.w r3, r3, #8192 ; 0x2000 + 800dca2: 88fb ldrh r3, [r7, #6] + 800dca4: f403 5300 and.w r3, r3, #8192 ; 0x2000 if((part == LV_PART_ANY || part == LV_PART_MAIN) && (prop == LV_STYLE_PROP_ANY || - 800dd14: 2b00 cmp r3, #0 - 800dd16: d009 beq.n 800dd2c + 800dca8: 2b00 cmp r3, #0 + 800dcaa: d009 beq.n 800dcc0 lv_obj_t * parent = lv_obj_get_parent(obj); - 800dd18: 68f8 ldr r0, [r7, #12] - 800dd1a: f001 fcf7 bl 800f70c - 800dd1e: 6138 str r0, [r7, #16] + 800dcac: 68f8 ldr r0, [r7, #12] + 800dcae: f001 fce3 bl 800f678 + 800dcb2: 6138 str r0, [r7, #16] if(parent) lv_obj_mark_layout_as_dirty(parent); - 800dd20: 693b ldr r3, [r7, #16] - 800dd22: 2b00 cmp r3, #0 - 800dd24: d002 beq.n 800dd2c - 800dd26: 6938 ldr r0, [r7, #16] - 800dd28: f7fb fde0 bl 80098ec + 800dcb4: 693b ldr r3, [r7, #16] + 800dcb6: 2b00 cmp r3, #0 + 800dcb8: d002 beq.n 800dcc0 + 800dcba: 6938 ldr r0, [r7, #16] + 800dcbc: f7fb fde0 bl 8009880 } if(prop == LV_STYLE_PROP_ANY || (prop & LV_STYLE_PROP_EXT_DRAW)) { - 800dd2c: 88fb ldrh r3, [r7, #6] - 800dd2e: f64f 72ff movw r2, #65535 ; 0xffff - 800dd32: 4293 cmp r3, r2 - 800dd34: d004 beq.n 800dd40 - 800dd36: 88fb ldrh r3, [r7, #6] - 800dd38: f403 6300 and.w r3, r3, #2048 ; 0x800 - 800dd3c: 2b00 cmp r3, #0 - 800dd3e: d002 beq.n 800dd46 + 800dcc0: 88fb ldrh r3, [r7, #6] + 800dcc2: f64f 72ff movw r2, #65535 ; 0xffff + 800dcc6: 4293 cmp r3, r2 + 800dcc8: d004 beq.n 800dcd4 + 800dcca: 88fb ldrh r3, [r7, #6] + 800dccc: f403 6300 and.w r3, r3, #2048 ; 0x800 + 800dcd0: 2b00 cmp r3, #0 + 800dcd2: d002 beq.n 800dcda lv_obj_refresh_ext_draw_size(obj); - 800dd40: 68f8 ldr r0, [r7, #12] - 800dd42: f7fb f8a4 bl 8008e8e + 800dcd4: 68f8 ldr r0, [r7, #12] + 800dcd6: f7fb f8a4 bl 8008e22 } lv_obj_invalidate(obj); - 800dd46: 68f8 ldr r0, [r7, #12] - 800dd48: f7fc feb3 bl 800aab2 + 800dcda: 68f8 ldr r0, [r7, #12] + 800dcdc: f7fc feb3 bl 800aa46 if(prop == LV_STYLE_PROP_ANY || - 800dd4c: 88fb ldrh r3, [r7, #6] - 800dd4e: f64f 72ff movw r2, #65535 ; 0xffff - 800dd52: 4293 cmp r3, r2 - 800dd54: d00e beq.n 800dd74 + 800dce0: 88fb ldrh r3, [r7, #6] + 800dce2: f64f 72ff movw r2, #65535 ; 0xffff + 800dce6: 4293 cmp r3, r2 + 800dce8: d00e beq.n 800dd08 ((prop & LV_STYLE_PROP_INHERIT) && ((prop & LV_STYLE_PROP_EXT_DRAW) || (prop & LV_STYLE_PROP_LAYOUT_REFR)))) { - 800dd56: 88fb ldrh r3, [r7, #6] - 800dd58: f403 6380 and.w r3, r3, #1024 ; 0x400 + 800dcea: 88fb ldrh r3, [r7, #6] + 800dcec: f403 6380 and.w r3, r3, #1024 ; 0x400 if(prop == LV_STYLE_PROP_ANY || - 800dd5c: 2b00 cmp r3, #0 - 800dd5e: d012 beq.n 800dd86 + 800dcf0: 2b00 cmp r3, #0 + 800dcf2: d012 beq.n 800dd1a ((prop & LV_STYLE_PROP_INHERIT) && ((prop & LV_STYLE_PROP_EXT_DRAW) || (prop & LV_STYLE_PROP_LAYOUT_REFR)))) { - 800dd60: 88fb ldrh r3, [r7, #6] - 800dd62: f403 6300 and.w r3, r3, #2048 ; 0x800 - 800dd66: 2b00 cmp r3, #0 - 800dd68: d104 bne.n 800dd74 - 800dd6a: 88fb ldrh r3, [r7, #6] - 800dd6c: f403 5380 and.w r3, r3, #4096 ; 0x1000 - 800dd70: 2b00 cmp r3, #0 - 800dd72: d008 beq.n 800dd86 + 800dcf4: 88fb ldrh r3, [r7, #6] + 800dcf6: f403 6300 and.w r3, r3, #2048 ; 0x800 + 800dcfa: 2b00 cmp r3, #0 + 800dcfc: d104 bne.n 800dd08 + 800dcfe: 88fb ldrh r3, [r7, #6] + 800dd00: f403 5380 and.w r3, r3, #4096 ; 0x1000 + 800dd04: 2b00 cmp r3, #0 + 800dd06: d008 beq.n 800dd1a if(part != LV_PART_SCROLLBAR) { - 800dd74: 697b ldr r3, [r7, #20] - 800dd76: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 800dd7a: d004 beq.n 800dd86 + 800dd08: 697b ldr r3, [r7, #20] + 800dd0a: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 800dd0e: d004 beq.n 800dd1a refresh_children_style(obj); - 800dd7c: 68f8 ldr r0, [r7, #12] - 800dd7e: f000 ff98 bl 800ecb2 - 800dd82: e000 b.n 800dd86 + 800dd10: 68f8 ldr r0, [r7, #12] + 800dd12: f000 ff98 bl 800ec46 + 800dd16: e000 b.n 800dd1a if(!style_refr) return; - 800dd84: bf00 nop + 800dd18: bf00 nop } } } - 800dd86: 3718 adds r7, #24 - 800dd88: 46bd mov sp, r7 - 800dd8a: bd80 pop {r7, pc} - 800dd8c: 20000039 .word 0x20000039 + 800dd1a: 3718 adds r7, #24 + 800dd1c: 46bd mov sp, r7 + 800dd1e: bd80 pop {r7, pc} + 800dd20: 20000039 .word 0x20000039 -0800dd90 : +0800dd24 : void lv_obj_enable_style_refresh(bool en) { - 800dd90: b480 push {r7} - 800dd92: b083 sub sp, #12 - 800dd94: af00 add r7, sp, #0 - 800dd96: 4603 mov r3, r0 - 800dd98: 71fb strb r3, [r7, #7] + 800dd24: b480 push {r7} + 800dd26: b083 sub sp, #12 + 800dd28: af00 add r7, sp, #0 + 800dd2a: 4603 mov r3, r0 + 800dd2c: 71fb strb r3, [r7, #7] style_refr = en; - 800dd9a: 4a04 ldr r2, [pc, #16] ; (800ddac ) - 800dd9c: 79fb ldrb r3, [r7, #7] - 800dd9e: 7013 strb r3, [r2, #0] + 800dd2e: 4a04 ldr r2, [pc, #16] ; (800dd40 ) + 800dd30: 79fb ldrb r3, [r7, #7] + 800dd32: 7013 strb r3, [r2, #0] } - 800dda0: bf00 nop - 800dda2: 370c adds r7, #12 - 800dda4: 46bd mov sp, r7 - 800dda6: bc80 pop {r7} - 800dda8: 4770 bx lr - 800ddaa: bf00 nop - 800ddac: 20000039 .word 0x20000039 + 800dd34: bf00 nop + 800dd36: 370c adds r7, #12 + 800dd38: 46bd mov sp, r7 + 800dd3a: bc80 pop {r7} + 800dd3c: 4770 bx lr + 800dd3e: bf00 nop + 800dd40: 20000039 .word 0x20000039 -0800ddb0 : +0800dd44 : lv_style_value_t lv_obj_get_style_prop(const lv_obj_t * obj, lv_part_t part, lv_style_prop_t prop) { - 800ddb0: b580 push {r7, lr} - 800ddb2: b088 sub sp, #32 - 800ddb4: af00 add r7, sp, #0 - 800ddb6: 60f8 str r0, [r7, #12] - 800ddb8: 60b9 str r1, [r7, #8] - 800ddba: 4613 mov r3, r2 - 800ddbc: 80fb strh r3, [r7, #6] + 800dd44: b580 push {r7, lr} + 800dd46: b088 sub sp, #32 + 800dd48: af00 add r7, sp, #0 + 800dd4a: 60f8 str r0, [r7, #12] + 800dd4c: 60b9 str r1, [r7, #8] + 800dd4e: 4613 mov r3, r2 + 800dd50: 80fb strh r3, [r7, #6] lv_style_value_t value_act; bool inherit = prop & LV_STYLE_PROP_INHERIT ? true : false; - 800ddbe: 88fb ldrh r3, [r7, #6] - 800ddc0: 129b asrs r3, r3, #10 - 800ddc2: f003 0301 and.w r3, r3, #1 - 800ddc6: 2b00 cmp r3, #0 - 800ddc8: bf14 ite ne - 800ddca: 2301 movne r3, #1 - 800ddcc: 2300 moveq r3, #0 - 800ddce: 75fb strb r3, [r7, #23] + 800dd52: 88fb ldrh r3, [r7, #6] + 800dd54: 129b asrs r3, r3, #10 + 800dd56: f003 0301 and.w r3, r3, #1 + 800dd5a: 2b00 cmp r3, #0 + 800dd5c: bf14 ite ne + 800dd5e: 2301 movne r3, #1 + 800dd60: 2300 moveq r3, #0 + 800dd62: 75fb strb r3, [r7, #23] bool filter = prop & LV_STYLE_PROP_FILTER ? true : false; - 800ddd0: 88fb ldrh r3, [r7, #6] - 800ddd2: 139b asrs r3, r3, #14 - 800ddd4: f003 0301 and.w r3, r3, #1 - 800ddd8: 2b00 cmp r3, #0 - 800ddda: bf14 ite ne - 800dddc: 2301 movne r3, #1 - 800ddde: 2300 moveq r3, #0 - 800dde0: 75bb strb r3, [r7, #22] + 800dd64: 88fb ldrh r3, [r7, #6] + 800dd66: 139b asrs r3, r3, #14 + 800dd68: f003 0301 and.w r3, r3, #1 + 800dd6c: 2b00 cmp r3, #0 + 800dd6e: bf14 ite ne + 800dd70: 2301 movne r3, #1 + 800dd72: 2300 moveq r3, #0 + 800dd74: 75bb strb r3, [r7, #22] if(filter) { - 800dde2: 7dbb ldrb r3, [r7, #22] - 800dde4: 2b00 cmp r3, #0 - 800dde6: d003 beq.n 800ddf0 + 800dd76: 7dbb ldrb r3, [r7, #22] + 800dd78: 2b00 cmp r3, #0 + 800dd7a: d003 beq.n 800dd84 prop &= ~LV_STYLE_PROP_FILTER; - 800dde8: 88fb ldrh r3, [r7, #6] - 800ddea: f423 4380 bic.w r3, r3, #16384 ; 0x4000 - 800ddee: 80fb strh r3, [r7, #6] + 800dd7c: 88fb ldrh r3, [r7, #6] + 800dd7e: f423 4380 bic.w r3, r3, #16384 ; 0x4000 + 800dd82: 80fb strh r3, [r7, #6] } bool found = false; - 800ddf0: 2300 movs r3, #0 - 800ddf2: 77fb strb r3, [r7, #31] + 800dd84: 2300 movs r3, #0 + 800dd86: 77fb strb r3, [r7, #31] while(obj) { - 800ddf4: e01b b.n 800de2e + 800dd88: e01b b.n 800ddc2 found = get_prop_core(obj, part, prop, &value_act); - 800ddf6: f107 0310 add.w r3, r7, #16 - 800ddfa: 88fa ldrh r2, [r7, #6] - 800ddfc: 68b9 ldr r1, [r7, #8] - 800ddfe: 68f8 ldr r0, [r7, #12] - 800de00: f000 fde9 bl 800e9d6 - 800de04: 4603 mov r3, r0 - 800de06: 77fb strb r3, [r7, #31] + 800dd8a: f107 0310 add.w r3, r7, #16 + 800dd8e: 88fa ldrh r2, [r7, #6] + 800dd90: 68b9 ldr r1, [r7, #8] + 800dd92: 68f8 ldr r0, [r7, #12] + 800dd94: f000 fde9 bl 800e96a + 800dd98: 4603 mov r3, r0 + 800dd9a: 77fb strb r3, [r7, #31] if(found) break; - 800de08: 7ffb ldrb r3, [r7, #31] - 800de0a: 2b00 cmp r3, #0 - 800de0c: d113 bne.n 800de36 + 800dd9c: 7ffb ldrb r3, [r7, #31] + 800dd9e: 2b00 cmp r3, #0 + 800dda0: d113 bne.n 800ddca if(!inherit) break; - 800de0e: 7dfb ldrb r3, [r7, #23] - 800de10: f083 0301 eor.w r3, r3, #1 - 800de14: b2db uxtb r3, r3 - 800de16: 2b00 cmp r3, #0 - 800de18: d10f bne.n 800de3a + 800dda2: 7dfb ldrb r3, [r7, #23] + 800dda4: f083 0301 eor.w r3, r3, #1 + 800dda8: b2db uxtb r3, r3 + 800ddaa: 2b00 cmp r3, #0 + 800ddac: d10f bne.n 800ddce /*If not found, check the `MAIN` style first*/ if(part != LV_PART_MAIN) { - 800de1a: 68bb ldr r3, [r7, #8] - 800de1c: 2b00 cmp r3, #0 - 800de1e: d002 beq.n 800de26 + 800ddae: 68bb ldr r3, [r7, #8] + 800ddb0: 2b00 cmp r3, #0 + 800ddb2: d002 beq.n 800ddba part = LV_PART_MAIN; - 800de20: 2300 movs r3, #0 - 800de22: 60bb str r3, [r7, #8] + 800ddb4: 2300 movs r3, #0 + 800ddb6: 60bb str r3, [r7, #8] continue; - 800de24: e003 b.n 800de2e + 800ddb8: e003 b.n 800ddc2 } /*Check the parent too.*/ obj = lv_obj_get_parent(obj); - 800de26: 68f8 ldr r0, [r7, #12] - 800de28: f001 fc70 bl 800f70c - 800de2c: 60f8 str r0, [r7, #12] + 800ddba: 68f8 ldr r0, [r7, #12] + 800ddbc: f001 fc5c bl 800f678 + 800ddc0: 60f8 str r0, [r7, #12] while(obj) { - 800de2e: 68fb ldr r3, [r7, #12] - 800de30: 2b00 cmp r3, #0 - 800de32: d1e0 bne.n 800ddf6 - 800de34: e002 b.n 800de3c + 800ddc2: 68fb ldr r3, [r7, #12] + 800ddc4: 2b00 cmp r3, #0 + 800ddc6: d1e0 bne.n 800dd8a + 800ddc8: e002 b.n 800ddd0 if(found) break; - 800de36: bf00 nop - 800de38: e000 b.n 800de3c + 800ddca: bf00 nop + 800ddcc: e000 b.n 800ddd0 if(!inherit) break; - 800de3a: bf00 nop + 800ddce: bf00 nop } if(!found) { - 800de3c: 7ffb ldrb r3, [r7, #31] - 800de3e: f083 0301 eor.w r3, r3, #1 - 800de42: b2db uxtb r3, r3 - 800de44: 2b00 cmp r3, #0 - 800de46: d03c beq.n 800dec2 + 800ddd0: 7ffb ldrb r3, [r7, #31] + 800ddd2: f083 0301 eor.w r3, r3, #1 + 800ddd6: b2db uxtb r3, r3 + 800ddd8: 2b00 cmp r3, #0 + 800ddda: d03c beq.n 800de56 if(part == LV_PART_MAIN && (prop == LV_STYLE_WIDTH || prop == LV_STYLE_HEIGHT)) { - 800de48: 68bb ldr r3, [r7, #8] - 800de4a: 2b00 cmp r3, #0 - 800de4c: d133 bne.n 800deb6 - 800de4e: 88fb ldrh r3, [r7, #6] - 800de50: f241 0201 movw r2, #4097 ; 0x1001 - 800de54: 4293 cmp r3, r2 - 800de56: d004 beq.n 800de62 - 800de58: 88fb ldrh r3, [r7, #6] - 800de5a: f241 0204 movw r2, #4100 ; 0x1004 - 800de5e: 4293 cmp r3, r2 - 800de60: d129 bne.n 800deb6 + 800dddc: 68bb ldr r3, [r7, #8] + 800ddde: 2b00 cmp r3, #0 + 800dde0: d133 bne.n 800de4a + 800dde2: 88fb ldrh r3, [r7, #6] + 800dde4: f241 0201 movw r2, #4097 ; 0x1001 + 800dde8: 4293 cmp r3, r2 + 800ddea: d004 beq.n 800ddf6 + 800ddec: 88fb ldrh r3, [r7, #6] + 800ddee: f241 0204 movw r2, #4100 ; 0x1004 + 800ddf2: 4293 cmp r3, r2 + 800ddf4: d129 bne.n 800de4a const lv_obj_class_t * cls = obj->class_p; - 800de62: 68fb ldr r3, [r7, #12] - 800de64: 681b ldr r3, [r3, #0] - 800de66: 61bb str r3, [r7, #24] + 800ddf6: 68fb ldr r3, [r7, #12] + 800ddf8: 681b ldr r3, [r3, #0] + 800ddfa: 61bb str r3, [r7, #24] while(cls) { - 800de68: e012 b.n 800de90 + 800ddfc: e012 b.n 800de24 if(prop == LV_STYLE_WIDTH) { - 800de6a: 88fb ldrh r3, [r7, #6] - 800de6c: f241 0201 movw r2, #4097 ; 0x1001 - 800de70: 4293 cmp r3, r2 - 800de72: d105 bne.n 800de80 + 800ddfe: 88fb ldrh r3, [r7, #6] + 800de00: f241 0201 movw r2, #4097 ; 0x1001 + 800de04: 4293 cmp r3, r2 + 800de06: d105 bne.n 800de14 if(cls->width_def != 0) break; - 800de74: 69bb ldr r3, [r7, #24] - 800de76: f9b3 3014 ldrsh.w r3, [r3, #20] - 800de7a: 2b00 cmp r3, #0 - 800de7c: d005 beq.n 800de8a - 800de7e: e00c b.n 800de9a + 800de08: 69bb ldr r3, [r7, #24] + 800de0a: f9b3 3014 ldrsh.w r3, [r3, #20] + 800de0e: 2b00 cmp r3, #0 + 800de10: d005 beq.n 800de1e + 800de12: e00c b.n 800de2e } else { if(cls->height_def != 0) break; - 800de80: 69bb ldr r3, [r7, #24] - 800de82: f9b3 3016 ldrsh.w r3, [r3, #22] - 800de86: 2b00 cmp r3, #0 - 800de88: d106 bne.n 800de98 + 800de14: 69bb ldr r3, [r7, #24] + 800de16: f9b3 3016 ldrsh.w r3, [r3, #22] + 800de1a: 2b00 cmp r3, #0 + 800de1c: d106 bne.n 800de2c } cls = cls->base_class; - 800de8a: 69bb ldr r3, [r7, #24] - 800de8c: 681b ldr r3, [r3, #0] - 800de8e: 61bb str r3, [r7, #24] + 800de1e: 69bb ldr r3, [r7, #24] + 800de20: 681b ldr r3, [r3, #0] + 800de22: 61bb str r3, [r7, #24] while(cls) { - 800de90: 69bb ldr r3, [r7, #24] - 800de92: 2b00 cmp r3, #0 - 800de94: d1e9 bne.n 800de6a - 800de96: e000 b.n 800de9a + 800de24: 69bb ldr r3, [r7, #24] + 800de26: 2b00 cmp r3, #0 + 800de28: d1e9 bne.n 800ddfe + 800de2a: e000 b.n 800de2e if(cls->height_def != 0) break; - 800de98: bf00 nop + 800de2c: bf00 nop } value_act.num = prop == LV_STYLE_WIDTH ? cls->width_def : cls->height_def; - 800de9a: 88fb ldrh r3, [r7, #6] - 800de9c: f241 0201 movw r2, #4097 ; 0x1001 - 800dea0: 4293 cmp r3, r2 - 800dea2: d103 bne.n 800deac - 800dea4: 69bb ldr r3, [r7, #24] - 800dea6: f9b3 3014 ldrsh.w r3, [r3, #20] - 800deaa: e002 b.n 800deb2 - 800deac: 69bb ldr r3, [r7, #24] - 800deae: f9b3 3016 ldrsh.w r3, [r3, #22] - 800deb2: 613b str r3, [r7, #16] + 800de2e: 88fb ldrh r3, [r7, #6] + 800de30: f241 0201 movw r2, #4097 ; 0x1001 + 800de34: 4293 cmp r3, r2 + 800de36: d103 bne.n 800de40 + 800de38: 69bb ldr r3, [r7, #24] + 800de3a: f9b3 3014 ldrsh.w r3, [r3, #20] + 800de3e: e002 b.n 800de46 + 800de40: 69bb ldr r3, [r7, #24] + 800de42: f9b3 3016 ldrsh.w r3, [r3, #22] + 800de46: 613b str r3, [r7, #16] if(part == LV_PART_MAIN && (prop == LV_STYLE_WIDTH || prop == LV_STYLE_HEIGHT)) { - 800deb4: e005 b.n 800dec2 + 800de48: e005 b.n 800de56 } else { value_act = lv_style_prop_get_default(prop); - 800deb6: 88fb ldrh r3, [r7, #6] - 800deb8: 4618 mov r0, r3 - 800deba: f026 fc19 bl 80346f0 - 800debe: 4603 mov r3, r0 - 800dec0: 613b str r3, [r7, #16] + 800de4a: 88fb ldrh r3, [r7, #6] + 800de4c: 4618 mov r0, r3 + 800de4e: f026 fc05 bl 803465c + 800de52: 4603 mov r3, r0 + 800de54: 613b str r3, [r7, #16] } } if(filter) value_act = apply_color_filter(obj, part, value_act); - 800dec2: 7dbb ldrb r3, [r7, #22] - 800dec4: 2b00 cmp r3, #0 - 800dec6: d006 beq.n 800ded6 - 800dec8: 693a ldr r2, [r7, #16] - 800deca: 68b9 ldr r1, [r7, #8] - 800decc: 68f8 ldr r0, [r7, #12] - 800dece: f000 fe7e bl 800ebce - 800ded2: 4603 mov r3, r0 - 800ded4: 613b str r3, [r7, #16] + 800de56: 7dbb ldrb r3, [r7, #22] + 800de58: 2b00 cmp r3, #0 + 800de5a: d006 beq.n 800de6a + 800de5c: 693a ldr r2, [r7, #16] + 800de5e: 68b9 ldr r1, [r7, #8] + 800de60: 68f8 ldr r0, [r7, #12] + 800de62: f000 fe7e bl 800eb62 + 800de66: 4603 mov r3, r0 + 800de68: 613b str r3, [r7, #16] return value_act; - 800ded6: 693b ldr r3, [r7, #16] + 800de6a: 693b ldr r3, [r7, #16] } - 800ded8: 4618 mov r0, r3 - 800deda: 3720 adds r7, #32 - 800dedc: 46bd mov sp, r7 - 800dede: bd80 pop {r7, pc} + 800de6c: 4618 mov r0, r3 + 800de6e: 3720 adds r7, #32 + 800de70: 46bd mov sp, r7 + 800de72: bd80 pop {r7, pc} -0800dee0 : +0800de74 : void lv_obj_set_local_style_prop(lv_obj_t * obj, lv_style_prop_t prop, lv_style_value_t value, lv_style_selector_t selector) { - 800dee0: b580 push {r7, lr} - 800dee2: b086 sub sp, #24 - 800dee4: af00 add r7, sp, #0 - 800dee6: 60f8 str r0, [r7, #12] - 800dee8: 607a str r2, [r7, #4] - 800deea: 603b str r3, [r7, #0] - 800deec: 460b mov r3, r1 - 800deee: 817b strh r3, [r7, #10] + 800de74: b580 push {r7, lr} + 800de76: b086 sub sp, #24 + 800de78: af00 add r7, sp, #0 + 800de7a: 60f8 str r0, [r7, #12] + 800de7c: 607a str r2, [r7, #4] + 800de7e: 603b str r3, [r7, #0] + 800de80: 460b mov r3, r1 + 800de82: 817b strh r3, [r7, #10] lv_style_t * style = get_local_style(obj, selector); - 800def0: 6839 ldr r1, [r7, #0] - 800def2: 68f8 ldr r0, [r7, #12] - 800def4: f000 fc03 bl 800e6fe - 800def8: 6178 str r0, [r7, #20] + 800de84: 6839 ldr r1, [r7, #0] + 800de86: 68f8 ldr r0, [r7, #12] + 800de88: f000 fc03 bl 800e692 + 800de8c: 6178 str r0, [r7, #20] lv_style_set_prop(style, prop, value); - 800defa: 897b ldrh r3, [r7, #10] - 800defc: 687a ldr r2, [r7, #4] - 800defe: 4619 mov r1, r3 - 800df00: 6978 ldr r0, [r7, #20] - 800df02: f026 fab4 bl 803446e + 800de8e: 897b ldrh r3, [r7, #10] + 800de90: 687a ldr r2, [r7, #4] + 800de92: 4619 mov r1, r3 + 800de94: 6978 ldr r0, [r7, #20] + 800de96: f026 faa0 bl 80343da lv_obj_refresh_style(obj, selector, prop); - 800df06: 897b ldrh r3, [r7, #10] - 800df08: 461a mov r2, r3 - 800df0a: 6839 ldr r1, [r7, #0] - 800df0c: 68f8 ldr r0, [r7, #12] - 800df0e: f7ff feb5 bl 800dc7c + 800de9a: 897b ldrh r3, [r7, #10] + 800de9c: 461a mov r2, r3 + 800de9e: 6839 ldr r1, [r7, #0] + 800dea0: 68f8 ldr r0, [r7, #12] + 800dea2: f7ff feb5 bl 800dc10 } - 800df12: bf00 nop - 800df14: 3718 adds r7, #24 - 800df16: 46bd mov sp, r7 - 800df18: bd80 pop {r7, pc} + 800dea6: bf00 nop + 800dea8: 3718 adds r7, #24 + 800deaa: 46bd mov sp, r7 + 800deac: bd80 pop {r7, pc} -0800df1a : +0800deae : lv_res_t lv_obj_get_local_style_prop(lv_obj_t * obj, lv_style_prop_t prop, lv_style_value_t * value, lv_style_selector_t selector) { - 800df1a: b580 push {r7, lr} - 800df1c: b086 sub sp, #24 - 800df1e: af00 add r7, sp, #0 - 800df20: 60f8 str r0, [r7, #12] - 800df22: 607a str r2, [r7, #4] - 800df24: 603b str r3, [r7, #0] - 800df26: 460b mov r3, r1 - 800df28: 817b strh r3, [r7, #10] + 800deae: b580 push {r7, lr} + 800deb0: b086 sub sp, #24 + 800deb2: af00 add r7, sp, #0 + 800deb4: 60f8 str r0, [r7, #12] + 800deb6: 607a str r2, [r7, #4] + 800deb8: 603b str r3, [r7, #0] + 800deba: 460b mov r3, r1 + 800debc: 817b strh r3, [r7, #10] uint32_t i; for(i = 0; i < obj->style_cnt; i++) { - 800df2a: 2300 movs r3, #0 - 800df2c: 617b str r3, [r7, #20] - 800df2e: e026 b.n 800df7e + 800debe: 2300 movs r3, #0 + 800dec0: 617b str r3, [r7, #20] + 800dec2: e026 b.n 800df12 if(obj->styles[i].is_local && - 800df30: 68fb ldr r3, [r7, #12] - 800df32: 68da ldr r2, [r3, #12] - 800df34: 697b ldr r3, [r7, #20] - 800df36: 00db lsls r3, r3, #3 - 800df38: 4413 add r3, r2 - 800df3a: 79db ldrb r3, [r3, #7] - 800df3c: f003 0301 and.w r3, r3, #1 - 800df40: b2db uxtb r3, r3 - 800df42: 2b00 cmp r3, #0 - 800df44: d018 beq.n 800df78 + 800dec4: 68fb ldr r3, [r7, #12] + 800dec6: 68da ldr r2, [r3, #12] + 800dec8: 697b ldr r3, [r7, #20] + 800deca: 00db lsls r3, r3, #3 + 800decc: 4413 add r3, r2 + 800dece: 79db ldrb r3, [r3, #7] + 800ded0: f003 0301 and.w r3, r3, #1 + 800ded4: b2db uxtb r3, r3 + 800ded6: 2b00 cmp r3, #0 + 800ded8: d018 beq.n 800df0c obj->styles[i].selector == selector) { - 800df46: 68fb ldr r3, [r7, #12] - 800df48: 68da ldr r2, [r3, #12] - 800df4a: 697b ldr r3, [r7, #20] - 800df4c: 00db lsls r3, r3, #3 - 800df4e: 4413 add r3, r2 - 800df50: 685b ldr r3, [r3, #4] - 800df52: f3c3 0317 ubfx r3, r3, #0, #24 - 800df56: 461a mov r2, r3 + 800deda: 68fb ldr r3, [r7, #12] + 800dedc: 68da ldr r2, [r3, #12] + 800dede: 697b ldr r3, [r7, #20] + 800dee0: 00db lsls r3, r3, #3 + 800dee2: 4413 add r3, r2 + 800dee4: 685b ldr r3, [r3, #4] + 800dee6: f3c3 0317 ubfx r3, r3, #0, #24 + 800deea: 461a mov r2, r3 if(obj->styles[i].is_local && - 800df58: 683b ldr r3, [r7, #0] - 800df5a: 4293 cmp r3, r2 - 800df5c: d10c bne.n 800df78 + 800deec: 683b ldr r3, [r7, #0] + 800deee: 4293 cmp r3, r2 + 800def0: d10c bne.n 800df0c return lv_style_get_prop(obj->styles[i].style, prop, value); - 800df5e: 68fb ldr r3, [r7, #12] - 800df60: 68da ldr r2, [r3, #12] - 800df62: 697b ldr r3, [r7, #20] - 800df64: 00db lsls r3, r3, #3 - 800df66: 4413 add r3, r2 - 800df68: 681b ldr r3, [r3, #0] - 800df6a: 8979 ldrh r1, [r7, #10] - 800df6c: 687a ldr r2, [r7, #4] - 800df6e: 4618 mov r0, r3 - 800df70: f026 fb86 bl 8034680 - 800df74: 4603 mov r3, r0 - 800df76: e00c b.n 800df92 + 800def2: 68fb ldr r3, [r7, #12] + 800def4: 68da ldr r2, [r3, #12] + 800def6: 697b ldr r3, [r7, #20] + 800def8: 00db lsls r3, r3, #3 + 800defa: 4413 add r3, r2 + 800defc: 681b ldr r3, [r3, #0] + 800defe: 8979 ldrh r1, [r7, #10] + 800df00: 687a ldr r2, [r7, #4] + 800df02: 4618 mov r0, r3 + 800df04: f026 fb72 bl 80345ec + 800df08: 4603 mov r3, r0 + 800df0a: e00c b.n 800df26 for(i = 0; i < obj->style_cnt; i++) { - 800df78: 697b ldr r3, [r7, #20] - 800df7a: 3301 adds r3, #1 - 800df7c: 617b str r3, [r7, #20] - 800df7e: 68fb ldr r3, [r7, #12] - 800df80: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800df82: f3c3 03c5 ubfx r3, r3, #3, #6 - 800df86: b2db uxtb r3, r3 - 800df88: 461a mov r2, r3 - 800df8a: 697b ldr r3, [r7, #20] - 800df8c: 4293 cmp r3, r2 - 800df8e: d3cf bcc.n 800df30 + 800df0c: 697b ldr r3, [r7, #20] + 800df0e: 3301 adds r3, #1 + 800df10: 617b str r3, [r7, #20] + 800df12: 68fb ldr r3, [r7, #12] + 800df14: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800df16: f3c3 03c5 ubfx r3, r3, #3, #6 + 800df1a: b2db uxtb r3, r3 + 800df1c: 461a mov r2, r3 + 800df1e: 697b ldr r3, [r7, #20] + 800df20: 4293 cmp r3, r2 + 800df22: d3cf bcc.n 800dec4 } } return LV_RES_INV; - 800df90: 2300 movs r3, #0 + 800df24: 2300 movs r3, #0 } - 800df92: 4618 mov r0, r3 - 800df94: 3718 adds r7, #24 - 800df96: 46bd mov sp, r7 - 800df98: bd80 pop {r7, pc} + 800df26: 4618 mov r0, r3 + 800df28: 3718 adds r7, #24 + 800df2a: 46bd mov sp, r7 + 800df2c: bd80 pop {r7, pc} -0800df9a : +0800df2e : bool lv_obj_remove_local_style_prop(lv_obj_t * obj, lv_style_prop_t prop, lv_style_selector_t selector) { - 800df9a: b580 push {r7, lr} - 800df9c: b086 sub sp, #24 - 800df9e: af00 add r7, sp, #0 - 800dfa0: 60f8 str r0, [r7, #12] - 800dfa2: 460b mov r3, r1 - 800dfa4: 607a str r2, [r7, #4] - 800dfa6: 817b strh r3, [r7, #10] + 800df2e: b580 push {r7, lr} + 800df30: b086 sub sp, #24 + 800df32: af00 add r7, sp, #0 + 800df34: 60f8 str r0, [r7, #12] + 800df36: 460b mov r3, r1 + 800df38: 607a str r2, [r7, #4] + 800df3a: 817b strh r3, [r7, #10] LV_ASSERT_OBJ(obj, MY_CLASS); uint32_t i; /*Find the style*/ for(i = 0; i < obj->style_cnt; i++) { - 800dfa8: 2300 movs r3, #0 - 800dfaa: 617b str r3, [r7, #20] - 800dfac: e019 b.n 800dfe2 + 800df3c: 2300 movs r3, #0 + 800df3e: 617b str r3, [r7, #20] + 800df40: e019 b.n 800df76 if(obj->styles[i].is_local && - 800dfae: 68fb ldr r3, [r7, #12] - 800dfb0: 68da ldr r2, [r3, #12] - 800dfb2: 697b ldr r3, [r7, #20] - 800dfb4: 00db lsls r3, r3, #3 - 800dfb6: 4413 add r3, r2 - 800dfb8: 79db ldrb r3, [r3, #7] - 800dfba: f003 0301 and.w r3, r3, #1 - 800dfbe: b2db uxtb r3, r3 - 800dfc0: 2b00 cmp r3, #0 - 800dfc2: d00b beq.n 800dfdc + 800df42: 68fb ldr r3, [r7, #12] + 800df44: 68da ldr r2, [r3, #12] + 800df46: 697b ldr r3, [r7, #20] + 800df48: 00db lsls r3, r3, #3 + 800df4a: 4413 add r3, r2 + 800df4c: 79db ldrb r3, [r3, #7] + 800df4e: f003 0301 and.w r3, r3, #1 + 800df52: b2db uxtb r3, r3 + 800df54: 2b00 cmp r3, #0 + 800df56: d00b beq.n 800df70 obj->styles[i].selector == selector) { - 800dfc4: 68fb ldr r3, [r7, #12] - 800dfc6: 68da ldr r2, [r3, #12] - 800dfc8: 697b ldr r3, [r7, #20] - 800dfca: 00db lsls r3, r3, #3 - 800dfcc: 4413 add r3, r2 - 800dfce: 685b ldr r3, [r3, #4] - 800dfd0: f3c3 0317 ubfx r3, r3, #0, #24 - 800dfd4: 461a mov r2, r3 + 800df58: 68fb ldr r3, [r7, #12] + 800df5a: 68da ldr r2, [r3, #12] + 800df5c: 697b ldr r3, [r7, #20] + 800df5e: 00db lsls r3, r3, #3 + 800df60: 4413 add r3, r2 + 800df62: 685b ldr r3, [r3, #4] + 800df64: f3c3 0317 ubfx r3, r3, #0, #24 + 800df68: 461a mov r2, r3 if(obj->styles[i].is_local && - 800dfd6: 687b ldr r3, [r7, #4] - 800dfd8: 4293 cmp r3, r2 - 800dfda: d00c beq.n 800dff6 + 800df6a: 687b ldr r3, [r7, #4] + 800df6c: 4293 cmp r3, r2 + 800df6e: d00c beq.n 800df8a for(i = 0; i < obj->style_cnt; i++) { - 800dfdc: 697b ldr r3, [r7, #20] - 800dfde: 3301 adds r3, #1 - 800dfe0: 617b str r3, [r7, #20] - 800dfe2: 68fb ldr r3, [r7, #12] - 800dfe4: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800dfe6: f3c3 03c5 ubfx r3, r3, #3, #6 - 800dfea: b2db uxtb r3, r3 - 800dfec: 461a mov r2, r3 - 800dfee: 697b ldr r3, [r7, #20] - 800dff0: 4293 cmp r3, r2 - 800dff2: d3dc bcc.n 800dfae - 800dff4: e000 b.n 800dff8 + 800df70: 697b ldr r3, [r7, #20] + 800df72: 3301 adds r3, #1 + 800df74: 617b str r3, [r7, #20] + 800df76: 68fb ldr r3, [r7, #12] + 800df78: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800df7a: f3c3 03c5 ubfx r3, r3, #3, #6 + 800df7e: b2db uxtb r3, r3 + 800df80: 461a mov r2, r3 + 800df82: 697b ldr r3, [r7, #20] + 800df84: 4293 cmp r3, r2 + 800df86: d3dc bcc.n 800df42 + 800df88: e000 b.n 800df8c break; - 800dff6: bf00 nop + 800df8a: bf00 nop } } /*The style is not found*/ if(i == obj->style_cnt) return false; - 800dff8: 68fb ldr r3, [r7, #12] - 800dffa: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800dffc: f3c3 03c5 ubfx r3, r3, #3, #6 - 800e000: b2db uxtb r3, r3 - 800e002: 461a mov r2, r3 - 800e004: 697b ldr r3, [r7, #20] - 800e006: 4293 cmp r3, r2 - 800e008: d101 bne.n 800e00e - 800e00a: 2300 movs r3, #0 - 800e00c: e00b b.n 800e026 + 800df8c: 68fb ldr r3, [r7, #12] + 800df8e: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800df90: f3c3 03c5 ubfx r3, r3, #3, #6 + 800df94: b2db uxtb r3, r3 + 800df96: 461a mov r2, r3 + 800df98: 697b ldr r3, [r7, #20] + 800df9a: 4293 cmp r3, r2 + 800df9c: d101 bne.n 800dfa2 + 800df9e: 2300 movs r3, #0 + 800dfa0: e00b b.n 800dfba return lv_style_remove_prop(obj->styles[i].style, prop); - 800e00e: 68fb ldr r3, [r7, #12] - 800e010: 68da ldr r2, [r3, #12] - 800e012: 697b ldr r3, [r7, #20] - 800e014: 00db lsls r3, r3, #3 - 800e016: 4413 add r3, r2 - 800e018: 681b ldr r3, [r3, #0] - 800e01a: 897a ldrh r2, [r7, #10] - 800e01c: 4611 mov r1, r2 - 800e01e: 4618 mov r0, r3 - 800e020: f026 f952 bl 80342c8 - 800e024: 4603 mov r3, r0 + 800dfa2: 68fb ldr r3, [r7, #12] + 800dfa4: 68da ldr r2, [r3, #12] + 800dfa6: 697b ldr r3, [r7, #20] + 800dfa8: 00db lsls r3, r3, #3 + 800dfaa: 4413 add r3, r2 + 800dfac: 681b ldr r3, [r3, #0] + 800dfae: 897a ldrh r2, [r7, #10] + 800dfb0: 4611 mov r1, r2 + 800dfb2: 4618 mov r0, r3 + 800dfb4: f026 f93e bl 8034234 + 800dfb8: 4603 mov r3, r0 } - 800e026: 4618 mov r0, r3 - 800e028: 3718 adds r7, #24 - 800e02a: 46bd mov sp, r7 - 800e02c: bd80 pop {r7, pc} + 800dfba: 4618 mov r0, r3 + 800dfbc: 3718 adds r7, #24 + 800dfbe: 46bd mov sp, r7 + 800dfc0: bd80 pop {r7, pc} ... -0800e030 <_lv_obj_style_create_transition>: +0800dfc4 <_lv_obj_style_create_transition>: void _lv_obj_style_create_transition(lv_obj_t * obj, lv_part_t part, lv_state_t prev_state, lv_state_t new_state, const _lv_obj_style_transition_dsc_t * tr_dsc) { - 800e030: b580 push {r7, lr} - 800e032: b09a sub sp, #104 ; 0x68 - 800e034: af00 add r7, sp, #0 - 800e036: 60f8 str r0, [r7, #12] - 800e038: 60b9 str r1, [r7, #8] - 800e03a: 4611 mov r1, r2 - 800e03c: 461a mov r2, r3 - 800e03e: 460b mov r3, r1 - 800e040: 80fb strh r3, [r7, #6] - 800e042: 4613 mov r3, r2 - 800e044: 80bb strh r3, [r7, #4] + 800dfc4: b580 push {r7, lr} + 800dfc6: b09a sub sp, #104 ; 0x68 + 800dfc8: af00 add r7, sp, #0 + 800dfca: 60f8 str r0, [r7, #12] + 800dfcc: 60b9 str r1, [r7, #8] + 800dfce: 4611 mov r1, r2 + 800dfd0: 461a mov r2, r3 + 800dfd2: 460b mov r3, r1 + 800dfd4: 80fb strh r3, [r7, #6] + 800dfd6: 4613 mov r3, r2 + 800dfd8: 80bb strh r3, [r7, #4] trans_t * tr; /*Get the previous and current values*/ obj->skip_trans = 1; - 800e046: 68fa ldr r2, [r7, #12] - 800e048: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 800e04c: f043 0304 orr.w r3, r3, #4 - 800e050: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 800dfda: 68fa ldr r2, [r7, #12] + 800dfdc: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 800dfe0: f043 0304 orr.w r3, r3, #4 + 800dfe4: f882 3022 strb.w r3, [r2, #34] ; 0x22 obj->state = prev_state; - 800e054: 68fb ldr r3, [r7, #12] - 800e056: 88fa ldrh r2, [r7, #6] - 800e058: 841a strh r2, [r3, #32] + 800dfe8: 68fb ldr r3, [r7, #12] + 800dfea: 88fa ldrh r2, [r7, #6] + 800dfec: 841a strh r2, [r3, #32] lv_style_value_t v1 = lv_obj_get_style_prop(obj, part, tr_dsc->prop); - 800e05a: 6f3b ldr r3, [r7, #112] ; 0x70 - 800e05c: 891b ldrh r3, [r3, #8] - 800e05e: 461a mov r2, r3 - 800e060: 68b9 ldr r1, [r7, #8] - 800e062: 68f8 ldr r0, [r7, #12] - 800e064: f7ff fea4 bl 800ddb0 - 800e068: 4603 mov r3, r0 - 800e06a: 65bb str r3, [r7, #88] ; 0x58 + 800dfee: 6f3b ldr r3, [r7, #112] ; 0x70 + 800dff0: 891b ldrh r3, [r3, #8] + 800dff2: 461a mov r2, r3 + 800dff4: 68b9 ldr r1, [r7, #8] + 800dff6: 68f8 ldr r0, [r7, #12] + 800dff8: f7ff fea4 bl 800dd44 + 800dffc: 4603 mov r3, r0 + 800dffe: 65bb str r3, [r7, #88] ; 0x58 obj->state = new_state; - 800e06c: 68fb ldr r3, [r7, #12] - 800e06e: 88ba ldrh r2, [r7, #4] - 800e070: 841a strh r2, [r3, #32] + 800e000: 68fb ldr r3, [r7, #12] + 800e002: 88ba ldrh r2, [r7, #4] + 800e004: 841a strh r2, [r3, #32] lv_style_value_t v2 = lv_obj_get_style_prop(obj, part, tr_dsc->prop); - 800e072: 6f3b ldr r3, [r7, #112] ; 0x70 - 800e074: 891b ldrh r3, [r3, #8] - 800e076: 461a mov r2, r3 - 800e078: 68b9 ldr r1, [r7, #8] - 800e07a: 68f8 ldr r0, [r7, #12] - 800e07c: f7ff fe98 bl 800ddb0 - 800e080: 4603 mov r3, r0 - 800e082: 657b str r3, [r7, #84] ; 0x54 + 800e006: 6f3b ldr r3, [r7, #112] ; 0x70 + 800e008: 891b ldrh r3, [r3, #8] + 800e00a: 461a mov r2, r3 + 800e00c: 68b9 ldr r1, [r7, #8] + 800e00e: 68f8 ldr r0, [r7, #12] + 800e010: f7ff fe98 bl 800dd44 + 800e014: 4603 mov r3, r0 + 800e016: 657b str r3, [r7, #84] ; 0x54 obj->skip_trans = 0; - 800e084: 68fa ldr r2, [r7, #12] - 800e086: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 800e08a: f36f 0382 bfc r3, #2, #1 - 800e08e: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 800e018: 68fa ldr r2, [r7, #12] + 800e01a: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 800e01e: f36f 0382 bfc r3, #2, #1 + 800e022: f882 3022 strb.w r3, [r2, #34] ; 0x22 if(v1.ptr == v2.ptr && v1.num == v2.num && v1.color.full == v2.color.full) return; - 800e092: 6dba ldr r2, [r7, #88] ; 0x58 - 800e094: 6d7b ldr r3, [r7, #84] ; 0x54 - 800e096: 429a cmp r2, r3 - 800e098: d10a bne.n 800e0b0 <_lv_obj_style_create_transition+0x80> - 800e09a: 6dba ldr r2, [r7, #88] ; 0x58 - 800e09c: 6d7b ldr r3, [r7, #84] ; 0x54 - 800e09e: 429a cmp r2, r3 - 800e0a0: d106 bne.n 800e0b0 <_lv_obj_style_create_transition+0x80> - 800e0a2: f8b7 2058 ldrh.w r2, [r7, #88] ; 0x58 - 800e0a6: f8b7 3054 ldrh.w r3, [r7, #84] ; 0x54 - 800e0aa: 429a cmp r2, r3 - 800e0ac: f000 80cd beq.w 800e24a <_lv_obj_style_create_transition+0x21a> + 800e026: 6dba ldr r2, [r7, #88] ; 0x58 + 800e028: 6d7b ldr r3, [r7, #84] ; 0x54 + 800e02a: 429a cmp r2, r3 + 800e02c: d10a bne.n 800e044 <_lv_obj_style_create_transition+0x80> + 800e02e: 6dba ldr r2, [r7, #88] ; 0x58 + 800e030: 6d7b ldr r3, [r7, #84] ; 0x54 + 800e032: 429a cmp r2, r3 + 800e034: d106 bne.n 800e044 <_lv_obj_style_create_transition+0x80> + 800e036: f8b7 2058 ldrh.w r2, [r7, #88] ; 0x58 + 800e03a: f8b7 3054 ldrh.w r3, [r7, #84] ; 0x54 + 800e03e: 429a cmp r2, r3 + 800e040: f000 80cd beq.w 800e1de <_lv_obj_style_create_transition+0x21a> obj->state = prev_state; - 800e0b0: 68fb ldr r3, [r7, #12] - 800e0b2: 88fa ldrh r2, [r7, #6] - 800e0b4: 841a strh r2, [r3, #32] + 800e044: 68fb ldr r3, [r7, #12] + 800e046: 88fa ldrh r2, [r7, #6] + 800e048: 841a strh r2, [r3, #32] v1 = lv_obj_get_style_prop(obj, part, tr_dsc->prop); - 800e0b6: 6f3b ldr r3, [r7, #112] ; 0x70 - 800e0b8: 891b ldrh r3, [r3, #8] - 800e0ba: 461a mov r2, r3 - 800e0bc: 68b9 ldr r1, [r7, #8] - 800e0be: 68f8 ldr r0, [r7, #12] - 800e0c0: f7ff fe76 bl 800ddb0 - 800e0c4: 4603 mov r3, r0 - 800e0c6: 65bb str r3, [r7, #88] ; 0x58 + 800e04a: 6f3b ldr r3, [r7, #112] ; 0x70 + 800e04c: 891b ldrh r3, [r3, #8] + 800e04e: 461a mov r2, r3 + 800e050: 68b9 ldr r1, [r7, #8] + 800e052: 68f8 ldr r0, [r7, #12] + 800e054: f7ff fe76 bl 800dd44 + 800e058: 4603 mov r3, r0 + 800e05a: 65bb str r3, [r7, #88] ; 0x58 obj->state = new_state; - 800e0c8: 68fb ldr r3, [r7, #12] - 800e0ca: 88ba ldrh r2, [r7, #4] - 800e0cc: 841a strh r2, [r3, #32] + 800e05c: 68fb ldr r3, [r7, #12] + 800e05e: 88ba ldrh r2, [r7, #4] + 800e060: 841a strh r2, [r3, #32] _lv_obj_style_t * style_trans = get_trans_style(obj, part); - 800e0ce: 68b9 ldr r1, [r7, #8] - 800e0d0: 68f8 ldr r0, [r7, #12] - 800e0d2: f000 fbdf bl 800e894 - 800e0d6: 6678 str r0, [r7, #100] ; 0x64 + 800e062: 68b9 ldr r1, [r7, #8] + 800e064: 68f8 ldr r0, [r7, #12] + 800e066: f000 fbdf bl 800e828 + 800e06a: 6678 str r0, [r7, #100] ; 0x64 lv_style_set_prop(style_trans->style, tr_dsc->prop, v1); /*Be sure `trans_style` has a valid value*/ - 800e0d8: 6e7b ldr r3, [r7, #100] ; 0x64 - 800e0da: 6818 ldr r0, [r3, #0] - 800e0dc: 6f3b ldr r3, [r7, #112] ; 0x70 - 800e0de: 891b ldrh r3, [r3, #8] - 800e0e0: 6dba ldr r2, [r7, #88] ; 0x58 - 800e0e2: 4619 mov r1, r3 - 800e0e4: f026 f9c3 bl 803446e + 800e06c: 6e7b ldr r3, [r7, #100] ; 0x64 + 800e06e: 6818 ldr r0, [r3, #0] + 800e070: 6f3b ldr r3, [r7, #112] ; 0x70 + 800e072: 891b ldrh r3, [r3, #8] + 800e074: 6dba ldr r2, [r7, #88] ; 0x58 + 800e076: 4619 mov r1, r3 + 800e078: f026 f9af bl 80343da if(tr_dsc->prop == LV_STYLE_RADIUS) { - 800e0e8: 6f3b ldr r3, [r7, #112] ; 0x70 - 800e0ea: 891b ldrh r3, [r3, #8] - 800e0ec: 2b60 cmp r3, #96 ; 0x60 - 800e0ee: d141 bne.n 800e174 <_lv_obj_style_create_transition+0x144> + 800e07c: 6f3b ldr r3, [r7, #112] ; 0x70 + 800e07e: 891b ldrh r3, [r3, #8] + 800e080: 2b60 cmp r3, #96 ; 0x60 + 800e082: d141 bne.n 800e108 <_lv_obj_style_create_transition+0x144> if(v1.num == LV_RADIUS_CIRCLE || v2.num == LV_RADIUS_CIRCLE) { - 800e0f0: 6dbb ldr r3, [r7, #88] ; 0x58 - 800e0f2: f647 72ff movw r2, #32767 ; 0x7fff - 800e0f6: 4293 cmp r3, r2 - 800e0f8: d004 beq.n 800e104 <_lv_obj_style_create_transition+0xd4> - 800e0fa: 6d7b ldr r3, [r7, #84] ; 0x54 - 800e0fc: f647 72ff movw r2, #32767 ; 0x7fff - 800e100: 4293 cmp r3, r2 - 800e102: d137 bne.n 800e174 <_lv_obj_style_create_transition+0x144> + 800e084: 6dbb ldr r3, [r7, #88] ; 0x58 + 800e086: f647 72ff movw r2, #32767 ; 0x7fff + 800e08a: 4293 cmp r3, r2 + 800e08c: d004 beq.n 800e098 <_lv_obj_style_create_transition+0xd4> + 800e08e: 6d7b ldr r3, [r7, #84] ; 0x54 + 800e090: f647 72ff movw r2, #32767 ; 0x7fff + 800e094: 4293 cmp r3, r2 + 800e096: d137 bne.n 800e108 <_lv_obj_style_create_transition+0x144> lv_coord_t whalf = lv_obj_get_width(obj) / 2; - 800e104: 68f8 ldr r0, [r7, #12] - 800e106: f7fc f81f bl 800a148 - 800e10a: 4603 mov r3, r0 - 800e10c: 0fda lsrs r2, r3, #31 - 800e10e: 4413 add r3, r2 - 800e110: 105b asrs r3, r3, #1 - 800e112: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 + 800e098: 68f8 ldr r0, [r7, #12] + 800e09a: f7fc f81f bl 800a0dc + 800e09e: 4603 mov r3, r0 + 800e0a0: 0fda lsrs r2, r3, #31 + 800e0a2: 4413 add r3, r2 + 800e0a4: 105b asrs r3, r3, #1 + 800e0a6: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 lv_coord_t hhalf = lv_obj_get_width(obj) / 2; - 800e116: 68f8 ldr r0, [r7, #12] - 800e118: f7fc f816 bl 800a148 - 800e11c: 4603 mov r3, r0 - 800e11e: 0fda lsrs r2, r3, #31 - 800e120: 4413 add r3, r2 - 800e122: 105b asrs r3, r3, #1 - 800e124: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 + 800e0aa: 68f8 ldr r0, [r7, #12] + 800e0ac: f7fc f816 bl 800a0dc + 800e0b0: 4603 mov r3, r0 + 800e0b2: 0fda lsrs r2, r3, #31 + 800e0b4: 4413 add r3, r2 + 800e0b6: 105b asrs r3, r3, #1 + 800e0b8: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 if(v1.num == LV_RADIUS_CIRCLE) v1.num = LV_MIN(whalf + 1, hhalf + 1); - 800e128: 6dbb ldr r3, [r7, #88] ; 0x58 - 800e12a: f647 72ff movw r2, #32767 ; 0x7fff - 800e12e: 4293 cmp r3, r2 - 800e130: d10d bne.n 800e14e <_lv_obj_style_create_transition+0x11e> - 800e132: f9b7 2062 ldrsh.w r2, [r7, #98] ; 0x62 - 800e136: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 - 800e13a: 429a cmp r2, r3 - 800e13c: da03 bge.n 800e146 <_lv_obj_style_create_transition+0x116> - 800e13e: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 - 800e142: 3301 adds r3, #1 - 800e144: e002 b.n 800e14c <_lv_obj_style_create_transition+0x11c> - 800e146: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 - 800e14a: 3301 adds r3, #1 - 800e14c: 65bb str r3, [r7, #88] ; 0x58 + 800e0bc: 6dbb ldr r3, [r7, #88] ; 0x58 + 800e0be: f647 72ff movw r2, #32767 ; 0x7fff + 800e0c2: 4293 cmp r3, r2 + 800e0c4: d10d bne.n 800e0e2 <_lv_obj_style_create_transition+0x11e> + 800e0c6: f9b7 2062 ldrsh.w r2, [r7, #98] ; 0x62 + 800e0ca: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 + 800e0ce: 429a cmp r2, r3 + 800e0d0: da03 bge.n 800e0da <_lv_obj_style_create_transition+0x116> + 800e0d2: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 + 800e0d6: 3301 adds r3, #1 + 800e0d8: e002 b.n 800e0e0 <_lv_obj_style_create_transition+0x11c> + 800e0da: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 + 800e0de: 3301 adds r3, #1 + 800e0e0: 65bb str r3, [r7, #88] ; 0x58 if(v2.num == LV_RADIUS_CIRCLE) v2.num = LV_MIN(whalf + 1, hhalf + 1); - 800e14e: 6d7b ldr r3, [r7, #84] ; 0x54 - 800e150: f647 72ff movw r2, #32767 ; 0x7fff - 800e154: 4293 cmp r3, r2 - 800e156: d10d bne.n 800e174 <_lv_obj_style_create_transition+0x144> - 800e158: f9b7 2062 ldrsh.w r2, [r7, #98] ; 0x62 - 800e15c: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 - 800e160: 429a cmp r2, r3 - 800e162: da03 bge.n 800e16c <_lv_obj_style_create_transition+0x13c> - 800e164: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 - 800e168: 3301 adds r3, #1 - 800e16a: e002 b.n 800e172 <_lv_obj_style_create_transition+0x142> - 800e16c: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 - 800e170: 3301 adds r3, #1 - 800e172: 657b str r3, [r7, #84] ; 0x54 + 800e0e2: 6d7b ldr r3, [r7, #84] ; 0x54 + 800e0e4: f647 72ff movw r2, #32767 ; 0x7fff + 800e0e8: 4293 cmp r3, r2 + 800e0ea: d10d bne.n 800e108 <_lv_obj_style_create_transition+0x144> + 800e0ec: f9b7 2062 ldrsh.w r2, [r7, #98] ; 0x62 + 800e0f0: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 + 800e0f4: 429a cmp r2, r3 + 800e0f6: da03 bge.n 800e100 <_lv_obj_style_create_transition+0x13c> + 800e0f8: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 + 800e0fc: 3301 adds r3, #1 + 800e0fe: e002 b.n 800e106 <_lv_obj_style_create_transition+0x142> + 800e100: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 + 800e104: 3301 adds r3, #1 + 800e106: 657b str r3, [r7, #84] ; 0x54 } } tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); - 800e174: 4838 ldr r0, [pc, #224] ; (800e258 <_lv_obj_style_create_transition+0x228>) - 800e176: f024 f80b bl 8032190 <_lv_ll_ins_head> - 800e17a: 65f8 str r0, [r7, #92] ; 0x5c + 800e108: 4838 ldr r0, [pc, #224] ; (800e1ec <_lv_obj_style_create_transition+0x228>) + 800e10a: f023 fff7 bl 80320fc <_lv_ll_ins_head> + 800e10e: 65f8 str r0, [r7, #92] ; 0x5c LV_ASSERT_MALLOC(tr); - 800e17c: 6dfb ldr r3, [r7, #92] ; 0x5c - 800e17e: 2b00 cmp r3, #0 - 800e180: d100 bne.n 800e184 <_lv_obj_style_create_transition+0x154> - 800e182: e7fe b.n 800e182 <_lv_obj_style_create_transition+0x152> + 800e110: 6dfb ldr r3, [r7, #92] ; 0x5c + 800e112: 2b00 cmp r3, #0 + 800e114: d100 bne.n 800e118 <_lv_obj_style_create_transition+0x154> + 800e116: e7fe b.n 800e116 <_lv_obj_style_create_transition+0x152> if(tr == NULL) return; - 800e184: 6dfb ldr r3, [r7, #92] ; 0x5c - 800e186: 2b00 cmp r3, #0 - 800e188: d061 beq.n 800e24e <_lv_obj_style_create_transition+0x21e> + 800e118: 6dfb ldr r3, [r7, #92] ; 0x5c + 800e11a: 2b00 cmp r3, #0 + 800e11c: d061 beq.n 800e1e2 <_lv_obj_style_create_transition+0x21e> tr->start_value = v1; - 800e18a: 6dfb ldr r3, [r7, #92] ; 0x5c - 800e18c: 6dba ldr r2, [r7, #88] ; 0x58 - 800e18e: 60da str r2, [r3, #12] + 800e11e: 6dfb ldr r3, [r7, #92] ; 0x5c + 800e120: 6dba ldr r2, [r7, #88] ; 0x58 + 800e122: 60da str r2, [r3, #12] tr->end_value = v2; - 800e190: 6dfb ldr r3, [r7, #92] ; 0x5c - 800e192: 6d7a ldr r2, [r7, #84] ; 0x54 - 800e194: 611a str r2, [r3, #16] + 800e124: 6dfb ldr r3, [r7, #92] ; 0x5c + 800e126: 6d7a ldr r2, [r7, #84] ; 0x54 + 800e128: 611a str r2, [r3, #16] if(tr) { - 800e196: 6dfb ldr r3, [r7, #92] ; 0x5c - 800e198: 2b00 cmp r3, #0 - 800e19a: d059 beq.n 800e250 <_lv_obj_style_create_transition+0x220> + 800e12a: 6dfb ldr r3, [r7, #92] ; 0x5c + 800e12c: 2b00 cmp r3, #0 + 800e12e: d059 beq.n 800e1e4 <_lv_obj_style_create_transition+0x220> tr->obj = obj; - 800e19c: 6dfb ldr r3, [r7, #92] ; 0x5c - 800e19e: 68fa ldr r2, [r7, #12] - 800e1a0: 601a str r2, [r3, #0] + 800e130: 6dfb ldr r3, [r7, #92] ; 0x5c + 800e132: 68fa ldr r2, [r7, #12] + 800e134: 601a str r2, [r3, #0] tr->prop = tr_dsc->prop; - 800e1a2: 6f3b ldr r3, [r7, #112] ; 0x70 - 800e1a4: 891a ldrh r2, [r3, #8] - 800e1a6: 6dfb ldr r3, [r7, #92] ; 0x5c - 800e1a8: 809a strh r2, [r3, #4] + 800e136: 6f3b ldr r3, [r7, #112] ; 0x70 + 800e138: 891a ldrh r2, [r3, #8] + 800e13a: 6dfb ldr r3, [r7, #92] ; 0x5c + 800e13c: 809a strh r2, [r3, #4] tr->selector = part; - 800e1aa: 6dfb ldr r3, [r7, #92] ; 0x5c - 800e1ac: 68ba ldr r2, [r7, #8] - 800e1ae: 609a str r2, [r3, #8] + 800e13e: 6dfb ldr r3, [r7, #92] ; 0x5c + 800e140: 68ba ldr r2, [r7, #8] + 800e142: 609a str r2, [r3, #8] lv_anim_t a; lv_anim_init(&a); - 800e1b0: f107 0314 add.w r3, r7, #20 - 800e1b4: 4618 mov r0, r3 - 800e1b6: f022 fb4b bl 8030850 + 800e144: f107 0314 add.w r3, r7, #20 + 800e148: 4618 mov r0, r3 + 800e14a: f022 fb37 bl 80307bc lv_anim_set_var(&a, tr); - 800e1ba: f107 0314 add.w r3, r7, #20 - 800e1be: 6df9 ldr r1, [r7, #92] ; 0x5c - 800e1c0: 4618 mov r0, r3 - 800e1c2: f7ff fa89 bl 800d6d8 + 800e14e: f107 0314 add.w r3, r7, #20 + 800e152: 6df9 ldr r1, [r7, #92] ; 0x5c + 800e154: 4618 mov r0, r3 + 800e156: f7ff fa89 bl 800d66c lv_anim_set_exec_cb(&a, trans_anim_cb); - 800e1c6: f107 0314 add.w r3, r7, #20 - 800e1ca: 4924 ldr r1, [pc, #144] ; (800e25c <_lv_obj_style_create_transition+0x22c>) - 800e1cc: 4618 mov r0, r3 - 800e1ce: f7ff fa90 bl 800d6f2 + 800e15a: f107 0314 add.w r3, r7, #20 + 800e15e: 4924 ldr r1, [pc, #144] ; (800e1f0 <_lv_obj_style_create_transition+0x22c>) + 800e160: 4618 mov r0, r3 + 800e162: f7ff fa90 bl 800d686 lv_anim_set_start_cb(&a, trans_anim_start_cb); - 800e1d2: f107 0314 add.w r3, r7, #20 - 800e1d6: 4922 ldr r1, [pc, #136] ; (800e260 <_lv_obj_style_create_transition+0x230>) - 800e1d8: 4618 mov r0, r3 - 800e1da: f7ff fad3 bl 800d784 + 800e166: f107 0314 add.w r3, r7, #20 + 800e16a: 4922 ldr r1, [pc, #136] ; (800e1f4 <_lv_obj_style_create_transition+0x230>) + 800e16c: 4618 mov r0, r3 + 800e16e: f7ff fad3 bl 800d718 lv_anim_set_ready_cb(&a, trans_anim_ready_cb); - 800e1de: f107 0314 add.w r3, r7, #20 - 800e1e2: 4920 ldr r1, [pc, #128] ; (800e264 <_lv_obj_style_create_transition+0x234>) - 800e1e4: 4618 mov r0, r3 - 800e1e6: f7ff fada bl 800d79e + 800e172: f107 0314 add.w r3, r7, #20 + 800e176: 4920 ldr r1, [pc, #128] ; (800e1f8 <_lv_obj_style_create_transition+0x234>) + 800e178: 4618 mov r0, r3 + 800e17a: f7ff fada bl 800d732 lv_anim_set_values(&a, 0x00, 0xFF); - 800e1ea: f107 0314 add.w r3, r7, #20 - 800e1ee: 22ff movs r2, #255 ; 0xff - 800e1f0: 2100 movs r1, #0 - 800e1f2: 4618 mov r0, r3 - 800e1f4: f7ff faa5 bl 800d742 + 800e17e: f107 0314 add.w r3, r7, #20 + 800e182: 22ff movs r2, #255 ; 0xff + 800e184: 2100 movs r1, #0 + 800e186: 4618 mov r0, r3 + 800e188: f7ff faa5 bl 800d6d6 lv_anim_set_time(&a, tr_dsc->time); - 800e1f8: 6f3b ldr r3, [r7, #112] ; 0x70 - 800e1fa: 881b ldrh r3, [r3, #0] - 800e1fc: 461a mov r2, r3 - 800e1fe: f107 0314 add.w r3, r7, #20 - 800e202: 4611 mov r1, r2 - 800e204: 4618 mov r0, r3 - 800e206: f7ff fa81 bl 800d70c + 800e18c: 6f3b ldr r3, [r7, #112] ; 0x70 + 800e18e: 881b ldrh r3, [r3, #0] + 800e190: 461a mov r2, r3 + 800e192: f107 0314 add.w r3, r7, #20 + 800e196: 4611 mov r1, r2 + 800e198: 4618 mov r0, r3 + 800e19a: f7ff fa81 bl 800d6a0 lv_anim_set_delay(&a, tr_dsc->delay); - 800e20a: 6f3b ldr r3, [r7, #112] ; 0x70 - 800e20c: 885b ldrh r3, [r3, #2] - 800e20e: 461a mov r2, r3 - 800e210: f107 0314 add.w r3, r7, #20 - 800e214: 4611 mov r1, r2 - 800e216: 4618 mov r0, r3 - 800e218: f7ff fa85 bl 800d726 + 800e19e: 6f3b ldr r3, [r7, #112] ; 0x70 + 800e1a0: 885b ldrh r3, [r3, #2] + 800e1a2: 461a mov r2, r3 + 800e1a4: f107 0314 add.w r3, r7, #20 + 800e1a8: 4611 mov r1, r2 + 800e1aa: 4618 mov r0, r3 + 800e1ac: f7ff fa85 bl 800d6ba lv_anim_set_path_cb(&a, tr_dsc->path_cb); - 800e21c: 6f3b ldr r3, [r7, #112] ; 0x70 - 800e21e: 68da ldr r2, [r3, #12] - 800e220: f107 0314 add.w r3, r7, #20 - 800e224: 4611 mov r1, r2 - 800e226: 4618 mov r0, r3 - 800e228: f7ff fa9f bl 800d76a + 800e1b0: 6f3b ldr r3, [r7, #112] ; 0x70 + 800e1b2: 68da ldr r2, [r3, #12] + 800e1b4: f107 0314 add.w r3, r7, #20 + 800e1b8: 4611 mov r1, r2 + 800e1ba: 4618 mov r0, r3 + 800e1bc: f7ff fa9f bl 800d6fe lv_anim_set_early_apply(&a, false); - 800e22c: f107 0314 add.w r3, r7, #20 - 800e230: 2100 movs r1, #0 - 800e232: 4618 mov r0, r3 - 800e234: f7ff fac0 bl 800d7b8 + 800e1c0: f107 0314 add.w r3, r7, #20 + 800e1c4: 2100 movs r1, #0 + 800e1c6: 4618 mov r0, r3 + 800e1c8: f7ff fac0 bl 800d74c #if LV_USE_USER_DATA a.user_data = tr_dsc->user_data; - 800e238: 6f3b ldr r3, [r7, #112] ; 0x70 - 800e23a: 691b ldr r3, [r3, #16] - 800e23c: 62bb str r3, [r7, #40] ; 0x28 + 800e1cc: 6f3b ldr r3, [r7, #112] ; 0x70 + 800e1ce: 691b ldr r3, [r3, #16] + 800e1d0: 62bb str r3, [r7, #40] ; 0x28 #endif lv_anim_start(&a); - 800e23e: f107 0314 add.w r3, r7, #20 - 800e242: 4618 mov r0, r3 - 800e244: f022 fb2a bl 803089c - 800e248: e002 b.n 800e250 <_lv_obj_style_create_transition+0x220> + 800e1d2: f107 0314 add.w r3, r7, #20 + 800e1d6: 4618 mov r0, r3 + 800e1d8: f022 fb16 bl 8030808 + 800e1dc: e002 b.n 800e1e4 <_lv_obj_style_create_transition+0x220> if(v1.ptr == v2.ptr && v1.num == v2.num && v1.color.full == v2.color.full) return; - 800e24a: bf00 nop - 800e24c: e000 b.n 800e250 <_lv_obj_style_create_transition+0x220> + 800e1de: bf00 nop + 800e1e0: e000 b.n 800e1e4 <_lv_obj_style_create_transition+0x220> if(tr == NULL) return; - 800e24e: bf00 nop + 800e1e2: bf00 nop } } - 800e250: 3768 adds r7, #104 ; 0x68 - 800e252: 46bd mov sp, r7 - 800e254: bd80 pop {r7, pc} - 800e256: bf00 nop - 800e258: 20001d58 .word 0x20001d58 - 800e25c: 0800ee11 .word 0x0800ee11 - 800e260: 0800f039 .word 0x0800f039 - 800e264: 0800f0b1 .word 0x0800f0b1 + 800e1e4: 3768 adds r7, #104 ; 0x68 + 800e1e6: 46bd mov sp, r7 + 800e1e8: bd80 pop {r7, pc} + 800e1ea: bf00 nop + 800e1ec: 20001d58 .word 0x20001d58 + 800e1f0: 0800eda5 .word 0x0800eda5 + 800e1f4: 0800efcd .word 0x0800efcd + 800e1f8: 0800f045 .word 0x0800f045 -0800e268 <_lv_obj_style_state_compare>: +0800e1fc <_lv_obj_style_state_compare>: _lv_style_state_cmp_t _lv_obj_style_state_compare(lv_obj_t * obj, lv_state_t state1, lv_state_t state2) { - 800e268: b580 push {r7, lr} - 800e26a: b088 sub sp, #32 - 800e26c: af00 add r7, sp, #0 - 800e26e: 6078 str r0, [r7, #4] - 800e270: 460b mov r3, r1 - 800e272: 807b strh r3, [r7, #2] - 800e274: 4613 mov r3, r2 - 800e276: 803b strh r3, [r7, #0] + 800e1fc: b580 push {r7, lr} + 800e1fe: b088 sub sp, #32 + 800e200: af00 add r7, sp, #0 + 800e202: 6078 str r0, [r7, #4] + 800e204: 460b mov r3, r1 + 800e206: 807b strh r3, [r7, #2] + 800e208: 4613 mov r3, r2 + 800e20a: 803b strh r3, [r7, #0] _lv_style_state_cmp_t res = _LV_STYLE_STATE_CMP_SAME; - 800e278: 2300 movs r3, #0 - 800e27a: 77fb strb r3, [r7, #31] + 800e20c: 2300 movs r3, #0 + 800e20e: 77fb strb r3, [r7, #31] /*Are there any new styles for the new state?*/ uint32_t i; for(i = 0; i < obj->style_cnt; i++) { - 800e27c: 2300 movs r3, #0 - 800e27e: 61bb str r3, [r7, #24] - 800e280: e1f8 b.n 800e674 <_lv_obj_style_state_compare+0x40c> + 800e210: 2300 movs r3, #0 + 800e212: 61bb str r3, [r7, #24] + 800e214: e1f8 b.n 800e608 <_lv_obj_style_state_compare+0x40c> if(obj->styles[i].is_trans) continue; - 800e282: 687b ldr r3, [r7, #4] - 800e284: 68da ldr r2, [r3, #12] - 800e286: 69bb ldr r3, [r7, #24] - 800e288: 00db lsls r3, r3, #3 - 800e28a: 4413 add r3, r2 - 800e28c: 79db ldrb r3, [r3, #7] - 800e28e: f003 0302 and.w r3, r3, #2 - 800e292: b2db uxtb r3, r3 - 800e294: 2b00 cmp r3, #0 - 800e296: f040 81e9 bne.w 800e66c <_lv_obj_style_state_compare+0x404> + 800e216: 687b ldr r3, [r7, #4] + 800e218: 68da ldr r2, [r3, #12] + 800e21a: 69bb ldr r3, [r7, #24] + 800e21c: 00db lsls r3, r3, #3 + 800e21e: 4413 add r3, r2 + 800e220: 79db ldrb r3, [r3, #7] + 800e222: f003 0302 and.w r3, r3, #2 + 800e226: b2db uxtb r3, r3 + 800e228: 2b00 cmp r3, #0 + 800e22a: f040 81e9 bne.w 800e600 <_lv_obj_style_state_compare+0x404> lv_state_t state_act = lv_obj_style_get_selector_state(obj->styles[i].selector); - 800e29a: 687b ldr r3, [r7, #4] - 800e29c: 68da ldr r2, [r3, #12] - 800e29e: 69bb ldr r3, [r7, #24] - 800e2a0: 00db lsls r3, r3, #3 - 800e2a2: 4413 add r3, r2 - 800e2a4: 685b ldr r3, [r3, #4] - 800e2a6: f3c3 0317 ubfx r3, r3, #0, #24 - 800e2aa: 4618 mov r0, r3 - 800e2ac: f000 f9f1 bl 800e692 - 800e2b0: 4603 mov r3, r0 - 800e2b2: 82bb strh r3, [r7, #20] + 800e22e: 687b ldr r3, [r7, #4] + 800e230: 68da ldr r2, [r3, #12] + 800e232: 69bb ldr r3, [r7, #24] + 800e234: 00db lsls r3, r3, #3 + 800e236: 4413 add r3, r2 + 800e238: 685b ldr r3, [r3, #4] + 800e23a: f3c3 0317 ubfx r3, r3, #0, #24 + 800e23e: 4618 mov r0, r3 + 800e240: f000 f9f1 bl 800e626 + 800e244: 4603 mov r3, r0 + 800e246: 82bb strh r3, [r7, #20] /*The style is valid for a state but not the other*/ bool valid1 = state_act & (~state1) ? false : true; - 800e2b4: 8aba ldrh r2, [r7, #20] - 800e2b6: 887b ldrh r3, [r7, #2] - 800e2b8: 43db mvns r3, r3 - 800e2ba: 4013 ands r3, r2 - 800e2bc: 2b00 cmp r3, #0 - 800e2be: bf0c ite eq - 800e2c0: 2301 moveq r3, #1 - 800e2c2: 2300 movne r3, #0 - 800e2c4: 74fb strb r3, [r7, #19] + 800e248: 8aba ldrh r2, [r7, #20] + 800e24a: 887b ldrh r3, [r7, #2] + 800e24c: 43db mvns r3, r3 + 800e24e: 4013 ands r3, r2 + 800e250: 2b00 cmp r3, #0 + 800e252: bf0c ite eq + 800e254: 2301 moveq r3, #1 + 800e256: 2300 movne r3, #0 + 800e258: 74fb strb r3, [r7, #19] bool valid2 = state_act & (~state2) ? false : true; - 800e2c6: 8aba ldrh r2, [r7, #20] - 800e2c8: 883b ldrh r3, [r7, #0] - 800e2ca: 43db mvns r3, r3 - 800e2cc: 4013 ands r3, r2 - 800e2ce: 2b00 cmp r3, #0 - 800e2d0: bf0c ite eq - 800e2d2: 2301 moveq r3, #1 - 800e2d4: 2300 movne r3, #0 - 800e2d6: 74bb strb r3, [r7, #18] + 800e25a: 8aba ldrh r2, [r7, #20] + 800e25c: 883b ldrh r3, [r7, #0] + 800e25e: 43db mvns r3, r3 + 800e260: 4013 ands r3, r2 + 800e262: 2b00 cmp r3, #0 + 800e264: bf0c ite eq + 800e266: 2301 moveq r3, #1 + 800e268: 2300 movne r3, #0 + 800e26a: 74bb strb r3, [r7, #18] if(valid1 != valid2) { - 800e2d8: 7cfa ldrb r2, [r7, #19] - 800e2da: 7cbb ldrb r3, [r7, #18] - 800e2dc: 429a cmp r2, r3 - 800e2de: f000 81c6 beq.w 800e66e <_lv_obj_style_state_compare+0x406> + 800e26c: 7cfa ldrb r2, [r7, #19] + 800e26e: 7cbb ldrb r3, [r7, #18] + 800e270: 429a cmp r2, r3 + 800e272: f000 81c6 beq.w 800e602 <_lv_obj_style_state_compare+0x406> lv_style_t * style = obj->styles[i].style; - 800e2e2: 687b ldr r3, [r7, #4] - 800e2e4: 68da ldr r2, [r3, #12] - 800e2e6: 69bb ldr r3, [r7, #24] - 800e2e8: 00db lsls r3, r3, #3 - 800e2ea: 4413 add r3, r2 - 800e2ec: 681b ldr r3, [r3, #0] - 800e2ee: 60fb str r3, [r7, #12] + 800e276: 687b ldr r3, [r7, #4] + 800e278: 68da ldr r2, [r3, #12] + 800e27a: 69bb ldr r3, [r7, #24] + 800e27c: 00db lsls r3, r3, #3 + 800e27e: 4413 add r3, r2 + 800e280: 681b ldr r3, [r3, #0] + 800e282: 60fb str r3, [r7, #12] lv_style_value_t v; /*If there is layout difference on the main part, return immediately. There is no more serious difference*/ bool layout_diff = false; - 800e2f0: 2300 movs r3, #0 - 800e2f2: 75fb strb r3, [r7, #23] + 800e284: 2300 movs r3, #0 + 800e286: 75fb strb r3, [r7, #23] if(lv_style_get_prop(style, LV_STYLE_PAD_TOP, &v))layout_diff = true; - 800e2f4: f107 0308 add.w r3, r7, #8 - 800e2f8: 461a mov r2, r3 - 800e2fa: f641 0110 movw r1, #6160 ; 0x1810 - 800e2fe: 68f8 ldr r0, [r7, #12] - 800e300: f026 f9be bl 8034680 - 800e304: 4603 mov r3, r0 - 800e306: 2b00 cmp r3, #0 - 800e308: d002 beq.n 800e310 <_lv_obj_style_state_compare+0xa8> - 800e30a: 2301 movs r3, #1 - 800e30c: 75fb strb r3, [r7, #23] - 800e30e: e0ec b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e288: f107 0308 add.w r3, r7, #8 + 800e28c: 461a mov r2, r3 + 800e28e: f641 0110 movw r1, #6160 ; 0x1810 + 800e292: 68f8 ldr r0, [r7, #12] + 800e294: f026 f9aa bl 80345ec + 800e298: 4603 mov r3, r0 + 800e29a: 2b00 cmp r3, #0 + 800e29c: d002 beq.n 800e2a4 <_lv_obj_style_state_compare+0xa8> + 800e29e: 2301 movs r3, #1 + 800e2a0: 75fb strb r3, [r7, #23] + 800e2a2: e0ec b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_PAD_BOTTOM, &v)) layout_diff = true; - 800e310: f107 0308 add.w r3, r7, #8 - 800e314: 461a mov r2, r3 - 800e316: f641 0111 movw r1, #6161 ; 0x1811 - 800e31a: 68f8 ldr r0, [r7, #12] - 800e31c: f026 f9b0 bl 8034680 - 800e320: 4603 mov r3, r0 - 800e322: 2b00 cmp r3, #0 - 800e324: d002 beq.n 800e32c <_lv_obj_style_state_compare+0xc4> - 800e326: 2301 movs r3, #1 - 800e328: 75fb strb r3, [r7, #23] - 800e32a: e0de b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e2a4: f107 0308 add.w r3, r7, #8 + 800e2a8: 461a mov r2, r3 + 800e2aa: f641 0111 movw r1, #6161 ; 0x1811 + 800e2ae: 68f8 ldr r0, [r7, #12] + 800e2b0: f026 f99c bl 80345ec + 800e2b4: 4603 mov r3, r0 + 800e2b6: 2b00 cmp r3, #0 + 800e2b8: d002 beq.n 800e2c0 <_lv_obj_style_state_compare+0xc4> + 800e2ba: 2301 movs r3, #1 + 800e2bc: 75fb strb r3, [r7, #23] + 800e2be: e0de b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_PAD_LEFT, &v)) layout_diff = true; - 800e32c: f107 0308 add.w r3, r7, #8 - 800e330: 461a mov r2, r3 - 800e332: f641 0112 movw r1, #6162 ; 0x1812 - 800e336: 68f8 ldr r0, [r7, #12] - 800e338: f026 f9a2 bl 8034680 - 800e33c: 4603 mov r3, r0 - 800e33e: 2b00 cmp r3, #0 - 800e340: d002 beq.n 800e348 <_lv_obj_style_state_compare+0xe0> - 800e342: 2301 movs r3, #1 - 800e344: 75fb strb r3, [r7, #23] - 800e346: e0d0 b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e2c0: f107 0308 add.w r3, r7, #8 + 800e2c4: 461a mov r2, r3 + 800e2c6: f641 0112 movw r1, #6162 ; 0x1812 + 800e2ca: 68f8 ldr r0, [r7, #12] + 800e2cc: f026 f98e bl 80345ec + 800e2d0: 4603 mov r3, r0 + 800e2d2: 2b00 cmp r3, #0 + 800e2d4: d002 beq.n 800e2dc <_lv_obj_style_state_compare+0xe0> + 800e2d6: 2301 movs r3, #1 + 800e2d8: 75fb strb r3, [r7, #23] + 800e2da: e0d0 b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_PAD_RIGHT, &v)) layout_diff = true; - 800e348: f107 0308 add.w r3, r7, #8 - 800e34c: 461a mov r2, r3 - 800e34e: f641 0113 movw r1, #6163 ; 0x1813 - 800e352: 68f8 ldr r0, [r7, #12] - 800e354: f026 f994 bl 8034680 - 800e358: 4603 mov r3, r0 - 800e35a: 2b00 cmp r3, #0 - 800e35c: d002 beq.n 800e364 <_lv_obj_style_state_compare+0xfc> - 800e35e: 2301 movs r3, #1 - 800e360: 75fb strb r3, [r7, #23] - 800e362: e0c2 b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e2dc: f107 0308 add.w r3, r7, #8 + 800e2e0: 461a mov r2, r3 + 800e2e2: f641 0113 movw r1, #6163 ; 0x1813 + 800e2e6: 68f8 ldr r0, [r7, #12] + 800e2e8: f026 f980 bl 80345ec + 800e2ec: 4603 mov r3, r0 + 800e2ee: 2b00 cmp r3, #0 + 800e2f0: d002 beq.n 800e2f8 <_lv_obj_style_state_compare+0xfc> + 800e2f2: 2301 movs r3, #1 + 800e2f4: 75fb strb r3, [r7, #23] + 800e2f6: e0c2 b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_PAD_COLUMN, &v)) layout_diff = true; - 800e364: f107 0308 add.w r3, r7, #8 - 800e368: 461a mov r2, r3 - 800e36a: f641 0115 movw r1, #6165 ; 0x1815 - 800e36e: 68f8 ldr r0, [r7, #12] - 800e370: f026 f986 bl 8034680 - 800e374: 4603 mov r3, r0 - 800e376: 2b00 cmp r3, #0 - 800e378: d002 beq.n 800e380 <_lv_obj_style_state_compare+0x118> - 800e37a: 2301 movs r3, #1 - 800e37c: 75fb strb r3, [r7, #23] - 800e37e: e0b4 b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e2f8: f107 0308 add.w r3, r7, #8 + 800e2fc: 461a mov r2, r3 + 800e2fe: f641 0115 movw r1, #6165 ; 0x1815 + 800e302: 68f8 ldr r0, [r7, #12] + 800e304: f026 f972 bl 80345ec + 800e308: 4603 mov r3, r0 + 800e30a: 2b00 cmp r3, #0 + 800e30c: d002 beq.n 800e314 <_lv_obj_style_state_compare+0x118> + 800e30e: 2301 movs r3, #1 + 800e310: 75fb strb r3, [r7, #23] + 800e312: e0b4 b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_PAD_ROW, &v)) layout_diff = true; - 800e380: f107 0308 add.w r3, r7, #8 - 800e384: 461a mov r2, r3 - 800e386: f641 0114 movw r1, #6164 ; 0x1814 - 800e38a: 68f8 ldr r0, [r7, #12] - 800e38c: f026 f978 bl 8034680 - 800e390: 4603 mov r3, r0 - 800e392: 2b00 cmp r3, #0 - 800e394: d002 beq.n 800e39c <_lv_obj_style_state_compare+0x134> - 800e396: 2301 movs r3, #1 - 800e398: 75fb strb r3, [r7, #23] - 800e39a: e0a6 b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e314: f107 0308 add.w r3, r7, #8 + 800e318: 461a mov r2, r3 + 800e31a: f641 0114 movw r1, #6164 ; 0x1814 + 800e31e: 68f8 ldr r0, [r7, #12] + 800e320: f026 f964 bl 80345ec + 800e324: 4603 mov r3, r0 + 800e326: 2b00 cmp r3, #0 + 800e328: d002 beq.n 800e330 <_lv_obj_style_state_compare+0x134> + 800e32a: 2301 movs r3, #1 + 800e32c: 75fb strb r3, [r7, #23] + 800e32e: e0a6 b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_LAYOUT, &v)) layout_diff = true; - 800e39c: f107 0308 add.w r3, r7, #8 - 800e3a0: 461a mov r2, r3 - 800e3a2: f241 0169 movw r1, #4201 ; 0x1069 - 800e3a6: 68f8 ldr r0, [r7, #12] - 800e3a8: f026 f96a bl 8034680 - 800e3ac: 4603 mov r3, r0 - 800e3ae: 2b00 cmp r3, #0 - 800e3b0: d002 beq.n 800e3b8 <_lv_obj_style_state_compare+0x150> - 800e3b2: 2301 movs r3, #1 - 800e3b4: 75fb strb r3, [r7, #23] - 800e3b6: e098 b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e330: f107 0308 add.w r3, r7, #8 + 800e334: 461a mov r2, r3 + 800e336: f241 0169 movw r1, #4201 ; 0x1069 + 800e33a: 68f8 ldr r0, [r7, #12] + 800e33c: f026 f956 bl 80345ec + 800e340: 4603 mov r3, r0 + 800e342: 2b00 cmp r3, #0 + 800e344: d002 beq.n 800e34c <_lv_obj_style_state_compare+0x150> + 800e346: 2301 movs r3, #1 + 800e348: 75fb strb r3, [r7, #23] + 800e34a: e098 b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_TRANSLATE_X, &v)) layout_diff = true; - 800e3b8: f107 0308 add.w r3, r7, #8 - 800e3bc: 461a mov r2, r3 - 800e3be: f243 010c movw r1, #12300 ; 0x300c - 800e3c2: 68f8 ldr r0, [r7, #12] - 800e3c4: f026 f95c bl 8034680 - 800e3c8: 4603 mov r3, r0 - 800e3ca: 2b00 cmp r3, #0 - 800e3cc: d002 beq.n 800e3d4 <_lv_obj_style_state_compare+0x16c> - 800e3ce: 2301 movs r3, #1 - 800e3d0: 75fb strb r3, [r7, #23] - 800e3d2: e08a b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e34c: f107 0308 add.w r3, r7, #8 + 800e350: 461a mov r2, r3 + 800e352: f243 010c movw r1, #12300 ; 0x300c + 800e356: 68f8 ldr r0, [r7, #12] + 800e358: f026 f948 bl 80345ec + 800e35c: 4603 mov r3, r0 + 800e35e: 2b00 cmp r3, #0 + 800e360: d002 beq.n 800e368 <_lv_obj_style_state_compare+0x16c> + 800e362: 2301 movs r3, #1 + 800e364: 75fb strb r3, [r7, #23] + 800e366: e08a b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_TRANSLATE_Y, &v)) layout_diff = true; - 800e3d4: f107 0308 add.w r3, r7, #8 - 800e3d8: 461a mov r2, r3 - 800e3da: f243 010d movw r1, #12301 ; 0x300d - 800e3de: 68f8 ldr r0, [r7, #12] - 800e3e0: f026 f94e bl 8034680 - 800e3e4: 4603 mov r3, r0 - 800e3e6: 2b00 cmp r3, #0 - 800e3e8: d002 beq.n 800e3f0 <_lv_obj_style_state_compare+0x188> - 800e3ea: 2301 movs r3, #1 - 800e3ec: 75fb strb r3, [r7, #23] - 800e3ee: e07c b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e368: f107 0308 add.w r3, r7, #8 + 800e36c: 461a mov r2, r3 + 800e36e: f243 010d movw r1, #12301 ; 0x300d + 800e372: 68f8 ldr r0, [r7, #12] + 800e374: f026 f93a bl 80345ec + 800e378: 4603 mov r3, r0 + 800e37a: 2b00 cmp r3, #0 + 800e37c: d002 beq.n 800e384 <_lv_obj_style_state_compare+0x188> + 800e37e: 2301 movs r3, #1 + 800e380: 75fb strb r3, [r7, #23] + 800e382: e07c b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_WIDTH, &v)) layout_diff = true; - 800e3f0: f107 0308 add.w r3, r7, #8 - 800e3f4: 461a mov r2, r3 - 800e3f6: f241 0101 movw r1, #4097 ; 0x1001 - 800e3fa: 68f8 ldr r0, [r7, #12] - 800e3fc: f026 f940 bl 8034680 - 800e400: 4603 mov r3, r0 - 800e402: 2b00 cmp r3, #0 - 800e404: d002 beq.n 800e40c <_lv_obj_style_state_compare+0x1a4> - 800e406: 2301 movs r3, #1 - 800e408: 75fb strb r3, [r7, #23] - 800e40a: e06e b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e384: f107 0308 add.w r3, r7, #8 + 800e388: 461a mov r2, r3 + 800e38a: f241 0101 movw r1, #4097 ; 0x1001 + 800e38e: 68f8 ldr r0, [r7, #12] + 800e390: f026 f92c bl 80345ec + 800e394: 4603 mov r3, r0 + 800e396: 2b00 cmp r3, #0 + 800e398: d002 beq.n 800e3a0 <_lv_obj_style_state_compare+0x1a4> + 800e39a: 2301 movs r3, #1 + 800e39c: 75fb strb r3, [r7, #23] + 800e39e: e06e b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_HEIGHT, &v)) layout_diff = true; - 800e40c: f107 0308 add.w r3, r7, #8 - 800e410: 461a mov r2, r3 - 800e412: f241 0104 movw r1, #4100 ; 0x1004 - 800e416: 68f8 ldr r0, [r7, #12] - 800e418: f026 f932 bl 8034680 - 800e41c: 4603 mov r3, r0 - 800e41e: 2b00 cmp r3, #0 - 800e420: d002 beq.n 800e428 <_lv_obj_style_state_compare+0x1c0> - 800e422: 2301 movs r3, #1 - 800e424: 75fb strb r3, [r7, #23] - 800e426: e060 b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e3a0: f107 0308 add.w r3, r7, #8 + 800e3a4: 461a mov r2, r3 + 800e3a6: f241 0104 movw r1, #4100 ; 0x1004 + 800e3aa: 68f8 ldr r0, [r7, #12] + 800e3ac: f026 f91e bl 80345ec + 800e3b0: 4603 mov r3, r0 + 800e3b2: 2b00 cmp r3, #0 + 800e3b4: d002 beq.n 800e3bc <_lv_obj_style_state_compare+0x1c0> + 800e3b6: 2301 movs r3, #1 + 800e3b8: 75fb strb r3, [r7, #23] + 800e3ba: e060 b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_MIN_WIDTH, &v)) layout_diff = true; - 800e428: f107 0308 add.w r3, r7, #8 - 800e42c: 461a mov r2, r3 - 800e42e: f241 0102 movw r1, #4098 ; 0x1002 - 800e432: 68f8 ldr r0, [r7, #12] - 800e434: f026 f924 bl 8034680 - 800e438: 4603 mov r3, r0 - 800e43a: 2b00 cmp r3, #0 - 800e43c: d002 beq.n 800e444 <_lv_obj_style_state_compare+0x1dc> - 800e43e: 2301 movs r3, #1 - 800e440: 75fb strb r3, [r7, #23] - 800e442: e052 b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e3bc: f107 0308 add.w r3, r7, #8 + 800e3c0: 461a mov r2, r3 + 800e3c2: f241 0102 movw r1, #4098 ; 0x1002 + 800e3c6: 68f8 ldr r0, [r7, #12] + 800e3c8: f026 f910 bl 80345ec + 800e3cc: 4603 mov r3, r0 + 800e3ce: 2b00 cmp r3, #0 + 800e3d0: d002 beq.n 800e3d8 <_lv_obj_style_state_compare+0x1dc> + 800e3d2: 2301 movs r3, #1 + 800e3d4: 75fb strb r3, [r7, #23] + 800e3d6: e052 b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_MAX_WIDTH, &v)) layout_diff = true; - 800e444: f107 0308 add.w r3, r7, #8 - 800e448: 461a mov r2, r3 - 800e44a: f241 0103 movw r1, #4099 ; 0x1003 - 800e44e: 68f8 ldr r0, [r7, #12] - 800e450: f026 f916 bl 8034680 - 800e454: 4603 mov r3, r0 - 800e456: 2b00 cmp r3, #0 - 800e458: d002 beq.n 800e460 <_lv_obj_style_state_compare+0x1f8> - 800e45a: 2301 movs r3, #1 - 800e45c: 75fb strb r3, [r7, #23] - 800e45e: e044 b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e3d8: f107 0308 add.w r3, r7, #8 + 800e3dc: 461a mov r2, r3 + 800e3de: f241 0103 movw r1, #4099 ; 0x1003 + 800e3e2: 68f8 ldr r0, [r7, #12] + 800e3e4: f026 f902 bl 80345ec + 800e3e8: 4603 mov r3, r0 + 800e3ea: 2b00 cmp r3, #0 + 800e3ec: d002 beq.n 800e3f4 <_lv_obj_style_state_compare+0x1f8> + 800e3ee: 2301 movs r3, #1 + 800e3f0: 75fb strb r3, [r7, #23] + 800e3f2: e044 b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_MIN_HEIGHT, &v)) layout_diff = true; - 800e460: f107 0308 add.w r3, r7, #8 - 800e464: 461a mov r2, r3 - 800e466: f241 0105 movw r1, #4101 ; 0x1005 - 800e46a: 68f8 ldr r0, [r7, #12] - 800e46c: f026 f908 bl 8034680 - 800e470: 4603 mov r3, r0 - 800e472: 2b00 cmp r3, #0 - 800e474: d002 beq.n 800e47c <_lv_obj_style_state_compare+0x214> - 800e476: 2301 movs r3, #1 - 800e478: 75fb strb r3, [r7, #23] - 800e47a: e036 b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e3f4: f107 0308 add.w r3, r7, #8 + 800e3f8: 461a mov r2, r3 + 800e3fa: f241 0105 movw r1, #4101 ; 0x1005 + 800e3fe: 68f8 ldr r0, [r7, #12] + 800e400: f026 f8f4 bl 80345ec + 800e404: 4603 mov r3, r0 + 800e406: 2b00 cmp r3, #0 + 800e408: d002 beq.n 800e410 <_lv_obj_style_state_compare+0x214> + 800e40a: 2301 movs r3, #1 + 800e40c: 75fb strb r3, [r7, #23] + 800e40e: e036 b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_MAX_HEIGHT, &v)) layout_diff = true; - 800e47c: f107 0308 add.w r3, r7, #8 - 800e480: 461a mov r2, r3 - 800e482: f241 0106 movw r1, #4102 ; 0x1006 - 800e486: 68f8 ldr r0, [r7, #12] - 800e488: f026 f8fa bl 8034680 - 800e48c: 4603 mov r3, r0 - 800e48e: 2b00 cmp r3, #0 - 800e490: d002 beq.n 800e498 <_lv_obj_style_state_compare+0x230> - 800e492: 2301 movs r3, #1 - 800e494: 75fb strb r3, [r7, #23] - 800e496: e028 b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e410: f107 0308 add.w r3, r7, #8 + 800e414: 461a mov r2, r3 + 800e416: f241 0106 movw r1, #4102 ; 0x1006 + 800e41a: 68f8 ldr r0, [r7, #12] + 800e41c: f026 f8e6 bl 80345ec + 800e420: 4603 mov r3, r0 + 800e422: 2b00 cmp r3, #0 + 800e424: d002 beq.n 800e42c <_lv_obj_style_state_compare+0x230> + 800e426: 2301 movs r3, #1 + 800e428: 75fb strb r3, [r7, #23] + 800e42a: e028 b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_BORDER_WIDTH, &v)) layout_diff = true; - 800e498: f107 0308 add.w r3, r7, #8 - 800e49c: 461a mov r2, r3 - 800e49e: f241 0132 movw r1, #4146 ; 0x1032 - 800e4a2: 68f8 ldr r0, [r7, #12] - 800e4a4: f026 f8ec bl 8034680 - 800e4a8: 4603 mov r3, r0 - 800e4aa: 2b00 cmp r3, #0 - 800e4ac: d002 beq.n 800e4b4 <_lv_obj_style_state_compare+0x24c> - 800e4ae: 2301 movs r3, #1 - 800e4b0: 75fb strb r3, [r7, #23] - 800e4b2: e01a b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e42c: f107 0308 add.w r3, r7, #8 + 800e430: 461a mov r2, r3 + 800e432: f241 0132 movw r1, #4146 ; 0x1032 + 800e436: 68f8 ldr r0, [r7, #12] + 800e438: f026 f8d8 bl 80345ec + 800e43c: 4603 mov r3, r0 + 800e43e: 2b00 cmp r3, #0 + 800e440: d002 beq.n 800e448 <_lv_obj_style_state_compare+0x24c> + 800e442: 2301 movs r3, #1 + 800e444: 75fb strb r3, [r7, #23] + 800e446: e01a b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_TRANSFORM_ANGLE, &v)) layout_diff = true; - 800e4b4: f107 0308 add.w r3, r7, #8 - 800e4b8: 461a mov r2, r3 - 800e4ba: f643 010f movw r1, #14351 ; 0x380f - 800e4be: 68f8 ldr r0, [r7, #12] - 800e4c0: f026 f8de bl 8034680 - 800e4c4: 4603 mov r3, r0 - 800e4c6: 2b00 cmp r3, #0 - 800e4c8: d002 beq.n 800e4d0 <_lv_obj_style_state_compare+0x268> - 800e4ca: 2301 movs r3, #1 - 800e4cc: 75fb strb r3, [r7, #23] - 800e4ce: e00c b.n 800e4ea <_lv_obj_style_state_compare+0x282> + 800e448: f107 0308 add.w r3, r7, #8 + 800e44c: 461a mov r2, r3 + 800e44e: f643 010f movw r1, #14351 ; 0x380f + 800e452: 68f8 ldr r0, [r7, #12] + 800e454: f026 f8ca bl 80345ec + 800e458: 4603 mov r3, r0 + 800e45a: 2b00 cmp r3, #0 + 800e45c: d002 beq.n 800e464 <_lv_obj_style_state_compare+0x268> + 800e45e: 2301 movs r3, #1 + 800e460: 75fb strb r3, [r7, #23] + 800e462: e00c b.n 800e47e <_lv_obj_style_state_compare+0x282> else if(lv_style_get_prop(style, LV_STYLE_TRANSFORM_ZOOM, &v)) layout_diff = true; - 800e4d0: f107 0308 add.w r3, r7, #8 - 800e4d4: 461a mov r2, r3 - 800e4d6: f643 010e movw r1, #14350 ; 0x380e - 800e4da: 68f8 ldr r0, [r7, #12] - 800e4dc: f026 f8d0 bl 8034680 - 800e4e0: 4603 mov r3, r0 - 800e4e2: 2b00 cmp r3, #0 - 800e4e4: d001 beq.n 800e4ea <_lv_obj_style_state_compare+0x282> - 800e4e6: 2301 movs r3, #1 - 800e4e8: 75fb strb r3, [r7, #23] + 800e464: f107 0308 add.w r3, r7, #8 + 800e468: 461a mov r2, r3 + 800e46a: f643 010e movw r1, #14350 ; 0x380e + 800e46e: 68f8 ldr r0, [r7, #12] + 800e470: f026 f8bc bl 80345ec + 800e474: 4603 mov r3, r0 + 800e476: 2b00 cmp r3, #0 + 800e478: d001 beq.n 800e47e <_lv_obj_style_state_compare+0x282> + 800e47a: 2301 movs r3, #1 + 800e47c: 75fb strb r3, [r7, #23] if(layout_diff) { - 800e4ea: 7dfb ldrb r3, [r7, #23] - 800e4ec: 2b00 cmp r3, #0 - 800e4ee: d001 beq.n 800e4f4 <_lv_obj_style_state_compare+0x28c> + 800e47e: 7dfb ldrb r3, [r7, #23] + 800e480: 2b00 cmp r3, #0 + 800e482: d001 beq.n 800e488 <_lv_obj_style_state_compare+0x28c> return _LV_STYLE_STATE_CMP_DIFF_LAYOUT; - 800e4f0: 2303 movs r3, #3 - 800e4f2: e0ca b.n 800e68a <_lv_obj_style_state_compare+0x422> + 800e484: 2303 movs r3, #3 + 800e486: e0ca b.n 800e61e <_lv_obj_style_state_compare+0x422> } /*Check for draw pad changes*/ if(lv_style_get_prop(style, LV_STYLE_TRANSFORM_WIDTH, &v)) res = _LV_STYLE_STATE_CMP_DIFF_DRAW_PAD; - 800e4f4: f107 0308 add.w r3, r7, #8 - 800e4f8: 461a mov r2, r3 - 800e4fa: f640 010a movw r1, #2058 ; 0x80a - 800e4fe: 68f8 ldr r0, [r7, #12] - 800e500: f026 f8be bl 8034680 - 800e504: 4603 mov r3, r0 - 800e506: 2b00 cmp r3, #0 - 800e508: d002 beq.n 800e510 <_lv_obj_style_state_compare+0x2a8> - 800e50a: 2302 movs r3, #2 - 800e50c: 77fb strb r3, [r7, #31] - 800e50e: e0ae b.n 800e66e <_lv_obj_style_state_compare+0x406> + 800e488: f107 0308 add.w r3, r7, #8 + 800e48c: 461a mov r2, r3 + 800e48e: f640 010a movw r1, #2058 ; 0x80a + 800e492: 68f8 ldr r0, [r7, #12] + 800e494: f026 f8aa bl 80345ec + 800e498: 4603 mov r3, r0 + 800e49a: 2b00 cmp r3, #0 + 800e49c: d002 beq.n 800e4a4 <_lv_obj_style_state_compare+0x2a8> + 800e49e: 2302 movs r3, #2 + 800e4a0: 77fb strb r3, [r7, #31] + 800e4a2: e0ae b.n 800e602 <_lv_obj_style_state_compare+0x406> else if(lv_style_get_prop(style, LV_STYLE_TRANSFORM_HEIGHT, &v)) res = _LV_STYLE_STATE_CMP_DIFF_DRAW_PAD; - 800e510: f107 0308 add.w r3, r7, #8 - 800e514: 461a mov r2, r3 - 800e516: f640 010b movw r1, #2059 ; 0x80b - 800e51a: 68f8 ldr r0, [r7, #12] - 800e51c: f026 f8b0 bl 8034680 - 800e520: 4603 mov r3, r0 - 800e522: 2b00 cmp r3, #0 - 800e524: d002 beq.n 800e52c <_lv_obj_style_state_compare+0x2c4> - 800e526: 2302 movs r3, #2 - 800e528: 77fb strb r3, [r7, #31] - 800e52a: e0a0 b.n 800e66e <_lv_obj_style_state_compare+0x406> + 800e4a4: f107 0308 add.w r3, r7, #8 + 800e4a8: 461a mov r2, r3 + 800e4aa: f640 010b movw r1, #2059 ; 0x80b + 800e4ae: 68f8 ldr r0, [r7, #12] + 800e4b0: f026 f89c bl 80345ec + 800e4b4: 4603 mov r3, r0 + 800e4b6: 2b00 cmp r3, #0 + 800e4b8: d002 beq.n 800e4c0 <_lv_obj_style_state_compare+0x2c4> + 800e4ba: 2302 movs r3, #2 + 800e4bc: 77fb strb r3, [r7, #31] + 800e4be: e0a0 b.n 800e602 <_lv_obj_style_state_compare+0x406> else if(lv_style_get_prop(style, LV_STYLE_TRANSFORM_ANGLE, &v)) res = _LV_STYLE_STATE_CMP_DIFF_DRAW_PAD; - 800e52c: f107 0308 add.w r3, r7, #8 - 800e530: 461a mov r2, r3 - 800e532: f643 010f movw r1, #14351 ; 0x380f - 800e536: 68f8 ldr r0, [r7, #12] - 800e538: f026 f8a2 bl 8034680 - 800e53c: 4603 mov r3, r0 - 800e53e: 2b00 cmp r3, #0 - 800e540: d002 beq.n 800e548 <_lv_obj_style_state_compare+0x2e0> - 800e542: 2302 movs r3, #2 - 800e544: 77fb strb r3, [r7, #31] - 800e546: e092 b.n 800e66e <_lv_obj_style_state_compare+0x406> + 800e4c0: f107 0308 add.w r3, r7, #8 + 800e4c4: 461a mov r2, r3 + 800e4c6: f643 010f movw r1, #14351 ; 0x380f + 800e4ca: 68f8 ldr r0, [r7, #12] + 800e4cc: f026 f88e bl 80345ec + 800e4d0: 4603 mov r3, r0 + 800e4d2: 2b00 cmp r3, #0 + 800e4d4: d002 beq.n 800e4dc <_lv_obj_style_state_compare+0x2e0> + 800e4d6: 2302 movs r3, #2 + 800e4d8: 77fb strb r3, [r7, #31] + 800e4da: e092 b.n 800e602 <_lv_obj_style_state_compare+0x406> else if(lv_style_get_prop(style, LV_STYLE_TRANSFORM_ZOOM, &v)) res = _LV_STYLE_STATE_CMP_DIFF_DRAW_PAD; - 800e548: f107 0308 add.w r3, r7, #8 - 800e54c: 461a mov r2, r3 - 800e54e: f643 010e movw r1, #14350 ; 0x380e - 800e552: 68f8 ldr r0, [r7, #12] - 800e554: f026 f894 bl 8034680 - 800e558: 4603 mov r3, r0 - 800e55a: 2b00 cmp r3, #0 - 800e55c: d002 beq.n 800e564 <_lv_obj_style_state_compare+0x2fc> - 800e55e: 2302 movs r3, #2 - 800e560: 77fb strb r3, [r7, #31] - 800e562: e084 b.n 800e66e <_lv_obj_style_state_compare+0x406> + 800e4dc: f107 0308 add.w r3, r7, #8 + 800e4e0: 461a mov r2, r3 + 800e4e2: f643 010e movw r1, #14350 ; 0x380e + 800e4e6: 68f8 ldr r0, [r7, #12] + 800e4e8: f026 f880 bl 80345ec + 800e4ec: 4603 mov r3, r0 + 800e4ee: 2b00 cmp r3, #0 + 800e4f0: d002 beq.n 800e4f8 <_lv_obj_style_state_compare+0x2fc> + 800e4f2: 2302 movs r3, #2 + 800e4f4: 77fb strb r3, [r7, #31] + 800e4f6: e084 b.n 800e602 <_lv_obj_style_state_compare+0x406> else if(lv_style_get_prop(style, LV_STYLE_OUTLINE_OPA, &v)) res = _LV_STYLE_STATE_CMP_DIFF_DRAW_PAD; - 800e564: f107 0308 add.w r3, r7, #8 - 800e568: 461a mov r2, r3 - 800e56a: f640 013c movw r1, #2108 ; 0x83c - 800e56e: 68f8 ldr r0, [r7, #12] - 800e570: f026 f886 bl 8034680 - 800e574: 4603 mov r3, r0 - 800e576: 2b00 cmp r3, #0 - 800e578: d002 beq.n 800e580 <_lv_obj_style_state_compare+0x318> - 800e57a: 2302 movs r3, #2 - 800e57c: 77fb strb r3, [r7, #31] - 800e57e: e076 b.n 800e66e <_lv_obj_style_state_compare+0x406> + 800e4f8: f107 0308 add.w r3, r7, #8 + 800e4fc: 461a mov r2, r3 + 800e4fe: f640 013c movw r1, #2108 ; 0x83c + 800e502: 68f8 ldr r0, [r7, #12] + 800e504: f026 f872 bl 80345ec + 800e508: 4603 mov r3, r0 + 800e50a: 2b00 cmp r3, #0 + 800e50c: d002 beq.n 800e514 <_lv_obj_style_state_compare+0x318> + 800e50e: 2302 movs r3, #2 + 800e510: 77fb strb r3, [r7, #31] + 800e512: e076 b.n 800e602 <_lv_obj_style_state_compare+0x406> else if(lv_style_get_prop(style, LV_STYLE_OUTLINE_PAD, &v)) res = _LV_STYLE_STATE_CMP_DIFF_DRAW_PAD; - 800e580: f107 0308 add.w r3, r7, #8 - 800e584: 461a mov r2, r3 - 800e586: f640 013d movw r1, #2109 ; 0x83d - 800e58a: 68f8 ldr r0, [r7, #12] - 800e58c: f026 f878 bl 8034680 - 800e590: 4603 mov r3, r0 - 800e592: 2b00 cmp r3, #0 - 800e594: d002 beq.n 800e59c <_lv_obj_style_state_compare+0x334> - 800e596: 2302 movs r3, #2 - 800e598: 77fb strb r3, [r7, #31] - 800e59a: e068 b.n 800e66e <_lv_obj_style_state_compare+0x406> + 800e514: f107 0308 add.w r3, r7, #8 + 800e518: 461a mov r2, r3 + 800e51a: f640 013d movw r1, #2109 ; 0x83d + 800e51e: 68f8 ldr r0, [r7, #12] + 800e520: f026 f864 bl 80345ec + 800e524: 4603 mov r3, r0 + 800e526: 2b00 cmp r3, #0 + 800e528: d002 beq.n 800e530 <_lv_obj_style_state_compare+0x334> + 800e52a: 2302 movs r3, #2 + 800e52c: 77fb strb r3, [r7, #31] + 800e52e: e068 b.n 800e602 <_lv_obj_style_state_compare+0x406> else if(lv_style_get_prop(style, LV_STYLE_OUTLINE_WIDTH, &v)) res = _LV_STYLE_STATE_CMP_DIFF_DRAW_PAD; - 800e59c: f107 0308 add.w r3, r7, #8 - 800e5a0: 461a mov r2, r3 - 800e5a2: f640 013a movw r1, #2106 ; 0x83a - 800e5a6: 68f8 ldr r0, [r7, #12] - 800e5a8: f026 f86a bl 8034680 - 800e5ac: 4603 mov r3, r0 - 800e5ae: 2b00 cmp r3, #0 - 800e5b0: d002 beq.n 800e5b8 <_lv_obj_style_state_compare+0x350> - 800e5b2: 2302 movs r3, #2 - 800e5b4: 77fb strb r3, [r7, #31] - 800e5b6: e05a b.n 800e66e <_lv_obj_style_state_compare+0x406> + 800e530: f107 0308 add.w r3, r7, #8 + 800e534: 461a mov r2, r3 + 800e536: f640 013a movw r1, #2106 ; 0x83a + 800e53a: 68f8 ldr r0, [r7, #12] + 800e53c: f026 f856 bl 80345ec + 800e540: 4603 mov r3, r0 + 800e542: 2b00 cmp r3, #0 + 800e544: d002 beq.n 800e54c <_lv_obj_style_state_compare+0x350> + 800e546: 2302 movs r3, #2 + 800e548: 77fb strb r3, [r7, #31] + 800e54a: e05a b.n 800e602 <_lv_obj_style_state_compare+0x406> else if(lv_style_get_prop(style, LV_STYLE_SHADOW_WIDTH, &v)) res = _LV_STYLE_STATE_CMP_DIFF_DRAW_PAD; - 800e5b8: f107 0308 add.w r3, r7, #8 - 800e5bc: 461a mov r2, r3 - 800e5be: f44f 6104 mov.w r1, #2112 ; 0x840 - 800e5c2: 68f8 ldr r0, [r7, #12] - 800e5c4: f026 f85c bl 8034680 - 800e5c8: 4603 mov r3, r0 - 800e5ca: 2b00 cmp r3, #0 - 800e5cc: d002 beq.n 800e5d4 <_lv_obj_style_state_compare+0x36c> - 800e5ce: 2302 movs r3, #2 - 800e5d0: 77fb strb r3, [r7, #31] - 800e5d2: e04c b.n 800e66e <_lv_obj_style_state_compare+0x406> + 800e54c: f107 0308 add.w r3, r7, #8 + 800e550: 461a mov r2, r3 + 800e552: f44f 6104 mov.w r1, #2112 ; 0x840 + 800e556: 68f8 ldr r0, [r7, #12] + 800e558: f026 f848 bl 80345ec + 800e55c: 4603 mov r3, r0 + 800e55e: 2b00 cmp r3, #0 + 800e560: d002 beq.n 800e568 <_lv_obj_style_state_compare+0x36c> + 800e562: 2302 movs r3, #2 + 800e564: 77fb strb r3, [r7, #31] + 800e566: e04c b.n 800e602 <_lv_obj_style_state_compare+0x406> else if(lv_style_get_prop(style, LV_STYLE_SHADOW_OPA, &v)) res = _LV_STYLE_STATE_CMP_DIFF_DRAW_PAD; - 800e5d4: f107 0308 add.w r3, r7, #8 - 800e5d8: 461a mov r2, r3 - 800e5da: f640 0145 movw r1, #2117 ; 0x845 - 800e5de: 68f8 ldr r0, [r7, #12] - 800e5e0: f026 f84e bl 8034680 - 800e5e4: 4603 mov r3, r0 - 800e5e6: 2b00 cmp r3, #0 - 800e5e8: d002 beq.n 800e5f0 <_lv_obj_style_state_compare+0x388> - 800e5ea: 2302 movs r3, #2 - 800e5ec: 77fb strb r3, [r7, #31] - 800e5ee: e03e b.n 800e66e <_lv_obj_style_state_compare+0x406> + 800e568: f107 0308 add.w r3, r7, #8 + 800e56c: 461a mov r2, r3 + 800e56e: f640 0145 movw r1, #2117 ; 0x845 + 800e572: 68f8 ldr r0, [r7, #12] + 800e574: f026 f83a bl 80345ec + 800e578: 4603 mov r3, r0 + 800e57a: 2b00 cmp r3, #0 + 800e57c: d002 beq.n 800e584 <_lv_obj_style_state_compare+0x388> + 800e57e: 2302 movs r3, #2 + 800e580: 77fb strb r3, [r7, #31] + 800e582: e03e b.n 800e602 <_lv_obj_style_state_compare+0x406> else if(lv_style_get_prop(style, LV_STYLE_SHADOW_OFS_X, &v)) res = _LV_STYLE_STATE_CMP_DIFF_DRAW_PAD; - 800e5f0: f107 0308 add.w r3, r7, #8 - 800e5f4: 461a mov r2, r3 - 800e5f6: f640 0141 movw r1, #2113 ; 0x841 - 800e5fa: 68f8 ldr r0, [r7, #12] - 800e5fc: f026 f840 bl 8034680 - 800e600: 4603 mov r3, r0 - 800e602: 2b00 cmp r3, #0 - 800e604: d002 beq.n 800e60c <_lv_obj_style_state_compare+0x3a4> - 800e606: 2302 movs r3, #2 - 800e608: 77fb strb r3, [r7, #31] - 800e60a: e030 b.n 800e66e <_lv_obj_style_state_compare+0x406> + 800e584: f107 0308 add.w r3, r7, #8 + 800e588: 461a mov r2, r3 + 800e58a: f640 0141 movw r1, #2113 ; 0x841 + 800e58e: 68f8 ldr r0, [r7, #12] + 800e590: f026 f82c bl 80345ec + 800e594: 4603 mov r3, r0 + 800e596: 2b00 cmp r3, #0 + 800e598: d002 beq.n 800e5a0 <_lv_obj_style_state_compare+0x3a4> + 800e59a: 2302 movs r3, #2 + 800e59c: 77fb strb r3, [r7, #31] + 800e59e: e030 b.n 800e602 <_lv_obj_style_state_compare+0x406> else if(lv_style_get_prop(style, LV_STYLE_SHADOW_OFS_Y, &v)) res = _LV_STYLE_STATE_CMP_DIFF_DRAW_PAD; - 800e60c: f107 0308 add.w r3, r7, #8 - 800e610: 461a mov r2, r3 - 800e612: f640 0142 movw r1, #2114 ; 0x842 - 800e616: 68f8 ldr r0, [r7, #12] - 800e618: f026 f832 bl 8034680 - 800e61c: 4603 mov r3, r0 - 800e61e: 2b00 cmp r3, #0 - 800e620: d002 beq.n 800e628 <_lv_obj_style_state_compare+0x3c0> - 800e622: 2302 movs r3, #2 - 800e624: 77fb strb r3, [r7, #31] - 800e626: e022 b.n 800e66e <_lv_obj_style_state_compare+0x406> + 800e5a0: f107 0308 add.w r3, r7, #8 + 800e5a4: 461a mov r2, r3 + 800e5a6: f640 0142 movw r1, #2114 ; 0x842 + 800e5aa: 68f8 ldr r0, [r7, #12] + 800e5ac: f026 f81e bl 80345ec + 800e5b0: 4603 mov r3, r0 + 800e5b2: 2b00 cmp r3, #0 + 800e5b4: d002 beq.n 800e5bc <_lv_obj_style_state_compare+0x3c0> + 800e5b6: 2302 movs r3, #2 + 800e5b8: 77fb strb r3, [r7, #31] + 800e5ba: e022 b.n 800e602 <_lv_obj_style_state_compare+0x406> else if(lv_style_get_prop(style, LV_STYLE_SHADOW_SPREAD, &v)) res = _LV_STYLE_STATE_CMP_DIFF_DRAW_PAD; - 800e628: f107 0308 add.w r3, r7, #8 - 800e62c: 461a mov r2, r3 - 800e62e: f640 0143 movw r1, #2115 ; 0x843 - 800e632: 68f8 ldr r0, [r7, #12] - 800e634: f026 f824 bl 8034680 - 800e638: 4603 mov r3, r0 - 800e63a: 2b00 cmp r3, #0 - 800e63c: d002 beq.n 800e644 <_lv_obj_style_state_compare+0x3dc> - 800e63e: 2302 movs r3, #2 - 800e640: 77fb strb r3, [r7, #31] - 800e642: e014 b.n 800e66e <_lv_obj_style_state_compare+0x406> + 800e5bc: f107 0308 add.w r3, r7, #8 + 800e5c0: 461a mov r2, r3 + 800e5c2: f640 0143 movw r1, #2115 ; 0x843 + 800e5c6: 68f8 ldr r0, [r7, #12] + 800e5c8: f026 f810 bl 80345ec + 800e5cc: 4603 mov r3, r0 + 800e5ce: 2b00 cmp r3, #0 + 800e5d0: d002 beq.n 800e5d8 <_lv_obj_style_state_compare+0x3dc> + 800e5d2: 2302 movs r3, #2 + 800e5d4: 77fb strb r3, [r7, #31] + 800e5d6: e014 b.n 800e602 <_lv_obj_style_state_compare+0x406> else if(lv_style_get_prop(style, LV_STYLE_LINE_WIDTH, &v)) res = _LV_STYLE_STATE_CMP_DIFF_DRAW_PAD; - 800e644: f107 0308 add.w r3, r7, #8 - 800e648: 461a mov r2, r3 - 800e64a: f640 0149 movw r1, #2121 ; 0x849 - 800e64e: 68f8 ldr r0, [r7, #12] - 800e650: f026 f816 bl 8034680 - 800e654: 4603 mov r3, r0 - 800e656: 2b00 cmp r3, #0 - 800e658: d002 beq.n 800e660 <_lv_obj_style_state_compare+0x3f8> - 800e65a: 2302 movs r3, #2 - 800e65c: 77fb strb r3, [r7, #31] - 800e65e: e006 b.n 800e66e <_lv_obj_style_state_compare+0x406> + 800e5d8: f107 0308 add.w r3, r7, #8 + 800e5dc: 461a mov r2, r3 + 800e5de: f640 0149 movw r1, #2121 ; 0x849 + 800e5e2: 68f8 ldr r0, [r7, #12] + 800e5e4: f026 f802 bl 80345ec + 800e5e8: 4603 mov r3, r0 + 800e5ea: 2b00 cmp r3, #0 + 800e5ec: d002 beq.n 800e5f4 <_lv_obj_style_state_compare+0x3f8> + 800e5ee: 2302 movs r3, #2 + 800e5f0: 77fb strb r3, [r7, #31] + 800e5f2: e006 b.n 800e602 <_lv_obj_style_state_compare+0x406> else if(res == _LV_STYLE_STATE_CMP_SAME) res = _LV_STYLE_STATE_CMP_DIFF_REDRAW; - 800e660: 7ffb ldrb r3, [r7, #31] - 800e662: 2b00 cmp r3, #0 - 800e664: d103 bne.n 800e66e <_lv_obj_style_state_compare+0x406> - 800e666: 2301 movs r3, #1 - 800e668: 77fb strb r3, [r7, #31] - 800e66a: e000 b.n 800e66e <_lv_obj_style_state_compare+0x406> + 800e5f4: 7ffb ldrb r3, [r7, #31] + 800e5f6: 2b00 cmp r3, #0 + 800e5f8: d103 bne.n 800e602 <_lv_obj_style_state_compare+0x406> + 800e5fa: 2301 movs r3, #1 + 800e5fc: 77fb strb r3, [r7, #31] + 800e5fe: e000 b.n 800e602 <_lv_obj_style_state_compare+0x406> if(obj->styles[i].is_trans) continue; - 800e66c: bf00 nop + 800e600: bf00 nop for(i = 0; i < obj->style_cnt; i++) { - 800e66e: 69bb ldr r3, [r7, #24] - 800e670: 3301 adds r3, #1 - 800e672: 61bb str r3, [r7, #24] - 800e674: 687b ldr r3, [r7, #4] - 800e676: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800e678: f3c3 03c5 ubfx r3, r3, #3, #6 - 800e67c: b2db uxtb r3, r3 - 800e67e: 461a mov r2, r3 - 800e680: 69bb ldr r3, [r7, #24] - 800e682: 4293 cmp r3, r2 - 800e684: f4ff adfd bcc.w 800e282 <_lv_obj_style_state_compare+0x1a> + 800e602: 69bb ldr r3, [r7, #24] + 800e604: 3301 adds r3, #1 + 800e606: 61bb str r3, [r7, #24] + 800e608: 687b ldr r3, [r7, #4] + 800e60a: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800e60c: f3c3 03c5 ubfx r3, r3, #3, #6 + 800e610: b2db uxtb r3, r3 + 800e612: 461a mov r2, r3 + 800e614: 69bb ldr r3, [r7, #24] + 800e616: 4293 cmp r3, r2 + 800e618: f4ff adfd bcc.w 800e216 <_lv_obj_style_state_compare+0x1a> } } return res; - 800e688: 7ffb ldrb r3, [r7, #31] + 800e61c: 7ffb ldrb r3, [r7, #31] } - 800e68a: 4618 mov r0, r3 - 800e68c: 3720 adds r7, #32 - 800e68e: 46bd mov sp, r7 - 800e690: bd80 pop {r7, pc} + 800e61e: 4618 mov r0, r3 + 800e620: 3720 adds r7, #32 + 800e622: 46bd mov sp, r7 + 800e624: bd80 pop {r7, pc} -0800e692 : +0800e626 : lv_anim_set_delay(&a, delay); lv_anim_start(&a); } lv_state_t lv_obj_style_get_selector_state(lv_style_selector_t selector) { - 800e692: b480 push {r7} - 800e694: b083 sub sp, #12 - 800e696: af00 add r7, sp, #0 - 800e698: 6078 str r0, [r7, #4] + 800e626: b480 push {r7} + 800e628: b083 sub sp, #12 + 800e62a: af00 add r7, sp, #0 + 800e62c: 6078 str r0, [r7, #4] return selector & 0xFFFF; - 800e69a: 687b ldr r3, [r7, #4] - 800e69c: b29b uxth r3, r3 + 800e62e: 687b ldr r3, [r7, #4] + 800e630: b29b uxth r3, r3 } - 800e69e: 4618 mov r0, r3 - 800e6a0: 370c adds r7, #12 - 800e6a2: 46bd mov sp, r7 - 800e6a4: bc80 pop {r7} - 800e6a6: 4770 bx lr + 800e632: 4618 mov r0, r3 + 800e634: 370c adds r7, #12 + 800e636: 46bd mov sp, r7 + 800e638: bc80 pop {r7} + 800e63a: 4770 bx lr -0800e6a8 : +0800e63c : lv_part_t lv_obj_style_get_selector_part(lv_style_selector_t selector) { - 800e6a8: b480 push {r7} - 800e6aa: b083 sub sp, #12 - 800e6ac: af00 add r7, sp, #0 - 800e6ae: 6078 str r0, [r7, #4] + 800e63c: b480 push {r7} + 800e63e: b083 sub sp, #12 + 800e640: af00 add r7, sp, #0 + 800e642: 6078 str r0, [r7, #4] return selector & 0xFF0000; - 800e6b0: 687b ldr r3, [r7, #4] - 800e6b2: f403 037f and.w r3, r3, #16711680 ; 0xff0000 + 800e644: 687b ldr r3, [r7, #4] + 800e646: f403 037f and.w r3, r3, #16711680 ; 0xff0000 } - 800e6b6: 4618 mov r0, r3 - 800e6b8: 370c adds r7, #12 - 800e6ba: 46bd mov sp, r7 - 800e6bc: bc80 pop {r7} - 800e6be: 4770 bx lr + 800e64a: 4618 mov r0, r3 + 800e64c: 370c adds r7, #12 + 800e64e: 46bd mov sp, r7 + 800e650: bc80 pop {r7} + 800e652: 4770 bx lr -0800e6c0 : +0800e654 : lv_text_align_t lv_obj_calculate_style_text_align(const struct _lv_obj_t * obj, lv_part_t part, const char * txt) { - 800e6c0: b580 push {r7, lr} - 800e6c2: b086 sub sp, #24 - 800e6c4: af00 add r7, sp, #0 - 800e6c6: 60f8 str r0, [r7, #12] - 800e6c8: 60b9 str r1, [r7, #8] - 800e6ca: 607a str r2, [r7, #4] + 800e654: b580 push {r7, lr} + 800e656: b086 sub sp, #24 + 800e658: af00 add r7, sp, #0 + 800e65a: 60f8 str r0, [r7, #12] + 800e65c: 60b9 str r1, [r7, #8] + 800e65e: 607a str r2, [r7, #4] lv_text_align_t align = lv_obj_get_style_text_align(obj, part); - 800e6cc: 68b9 ldr r1, [r7, #8] - 800e6ce: 68f8 ldr r0, [r7, #12] - 800e6d0: f7ff f8bd bl 800d84e - 800e6d4: 4603 mov r3, r0 - 800e6d6: 75fb strb r3, [r7, #23] + 800e660: 68b9 ldr r1, [r7, #8] + 800e662: 68f8 ldr r0, [r7, #12] + 800e664: f7ff f8bd bl 800d7e2 + 800e668: 4603 mov r3, r0 + 800e66a: 75fb strb r3, [r7, #23] lv_base_dir_t base_dir = lv_obj_get_style_base_dir(obj, part); - 800e6d8: 68b9 ldr r1, [r7, #8] - 800e6da: 68f8 ldr r0, [r7, #12] - 800e6dc: f7ff f8ed bl 800d8ba - 800e6e0: 4603 mov r3, r0 - 800e6e2: 75bb strb r3, [r7, #22] + 800e66c: 68b9 ldr r1, [r7, #8] + 800e66e: 68f8 ldr r0, [r7, #12] + 800e670: f7ff f8ed bl 800d84e + 800e674: 4603 mov r3, r0 + 800e676: 75bb strb r3, [r7, #22] lv_bidi_calculate_align(&align, &base_dir, txt); - 800e6e4: f107 0116 add.w r1, r7, #22 - 800e6e8: f107 0317 add.w r3, r7, #23 - 800e6ec: 687a ldr r2, [r7, #4] - 800e6ee: 4618 mov r0, r3 - 800e6f0: f7ff f875 bl 800d7de + 800e678: f107 0116 add.w r1, r7, #22 + 800e67c: f107 0317 add.w r3, r7, #23 + 800e680: 687a ldr r2, [r7, #4] + 800e682: 4618 mov r0, r3 + 800e684: f7ff f875 bl 800d772 return align; - 800e6f4: 7dfb ldrb r3, [r7, #23] + 800e688: 7dfb ldrb r3, [r7, #23] } - 800e6f6: 4618 mov r0, r3 - 800e6f8: 3718 adds r7, #24 - 800e6fa: 46bd mov sp, r7 - 800e6fc: bd80 pop {r7, pc} + 800e68a: 4618 mov r0, r3 + 800e68c: 3718 adds r7, #24 + 800e68e: 46bd mov sp, r7 + 800e690: bd80 pop {r7, pc} -0800e6fe : +0800e692 : * @param obj pointer to an object * @param selector OR-ed value of parts and state for which the style should be get * @return pointer to the local style */ static lv_style_t * get_local_style(lv_obj_t * obj, lv_style_selector_t selector) { - 800e6fe: b590 push {r4, r7, lr} - 800e700: b085 sub sp, #20 - 800e702: af00 add r7, sp, #0 - 800e704: 6078 str r0, [r7, #4] - 800e706: 6039 str r1, [r7, #0] + 800e692: b590 push {r4, r7, lr} + 800e694: b085 sub sp, #20 + 800e696: af00 add r7, sp, #0 + 800e698: 6078 str r0, [r7, #4] + 800e69a: 6039 str r1, [r7, #0] uint32_t i; for(i = 0; i < obj->style_cnt; i++) { - 800e708: 2300 movs r3, #0 - 800e70a: 60fb str r3, [r7, #12] - 800e70c: e020 b.n 800e750 + 800e69c: 2300 movs r3, #0 + 800e69e: 60fb str r3, [r7, #12] + 800e6a0: e020 b.n 800e6e4 if(obj->styles[i].is_local && - 800e70e: 687b ldr r3, [r7, #4] - 800e710: 68da ldr r2, [r3, #12] - 800e712: 68fb ldr r3, [r7, #12] - 800e714: 00db lsls r3, r3, #3 - 800e716: 4413 add r3, r2 - 800e718: 79db ldrb r3, [r3, #7] - 800e71a: f003 0301 and.w r3, r3, #1 - 800e71e: b2db uxtb r3, r3 - 800e720: 2b00 cmp r3, #0 - 800e722: d012 beq.n 800e74a + 800e6a2: 687b ldr r3, [r7, #4] + 800e6a4: 68da ldr r2, [r3, #12] + 800e6a6: 68fb ldr r3, [r7, #12] + 800e6a8: 00db lsls r3, r3, #3 + 800e6aa: 4413 add r3, r2 + 800e6ac: 79db ldrb r3, [r3, #7] + 800e6ae: f003 0301 and.w r3, r3, #1 + 800e6b2: b2db uxtb r3, r3 + 800e6b4: 2b00 cmp r3, #0 + 800e6b6: d012 beq.n 800e6de obj->styles[i].selector == selector) { - 800e724: 687b ldr r3, [r7, #4] - 800e726: 68da ldr r2, [r3, #12] - 800e728: 68fb ldr r3, [r7, #12] - 800e72a: 00db lsls r3, r3, #3 - 800e72c: 4413 add r3, r2 - 800e72e: 685b ldr r3, [r3, #4] - 800e730: f3c3 0317 ubfx r3, r3, #0, #24 - 800e734: 461a mov r2, r3 + 800e6b8: 687b ldr r3, [r7, #4] + 800e6ba: 68da ldr r2, [r3, #12] + 800e6bc: 68fb ldr r3, [r7, #12] + 800e6be: 00db lsls r3, r3, #3 + 800e6c0: 4413 add r3, r2 + 800e6c2: 685b ldr r3, [r3, #4] + 800e6c4: f3c3 0317 ubfx r3, r3, #0, #24 + 800e6c8: 461a mov r2, r3 if(obj->styles[i].is_local && - 800e736: 683b ldr r3, [r7, #0] - 800e738: 4293 cmp r3, r2 - 800e73a: d106 bne.n 800e74a + 800e6ca: 683b ldr r3, [r7, #0] + 800e6cc: 4293 cmp r3, r2 + 800e6ce: d106 bne.n 800e6de return obj->styles[i].style; - 800e73c: 687b ldr r3, [r7, #4] - 800e73e: 68da ldr r2, [r3, #12] - 800e740: 68fb ldr r3, [r7, #12] - 800e742: 00db lsls r3, r3, #3 - 800e744: 4413 add r3, r2 - 800e746: 681b ldr r3, [r3, #0] - 800e748: e0a0 b.n 800e88c + 800e6d0: 687b ldr r3, [r7, #4] + 800e6d2: 68da ldr r2, [r3, #12] + 800e6d4: 68fb ldr r3, [r7, #12] + 800e6d6: 00db lsls r3, r3, #3 + 800e6d8: 4413 add r3, r2 + 800e6da: 681b ldr r3, [r3, #0] + 800e6dc: e0a0 b.n 800e820 for(i = 0; i < obj->style_cnt; i++) { - 800e74a: 68fb ldr r3, [r7, #12] - 800e74c: 3301 adds r3, #1 - 800e74e: 60fb str r3, [r7, #12] - 800e750: 687b ldr r3, [r7, #4] - 800e752: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800e754: f3c3 03c5 ubfx r3, r3, #3, #6 - 800e758: b2db uxtb r3, r3 - 800e75a: 461a mov r2, r3 - 800e75c: 68fb ldr r3, [r7, #12] - 800e75e: 4293 cmp r3, r2 - 800e760: d3d5 bcc.n 800e70e + 800e6de: 68fb ldr r3, [r7, #12] + 800e6e0: 3301 adds r3, #1 + 800e6e2: 60fb str r3, [r7, #12] + 800e6e4: 687b ldr r3, [r7, #4] + 800e6e6: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800e6e8: f3c3 03c5 ubfx r3, r3, #3, #6 + 800e6ec: b2db uxtb r3, r3 + 800e6ee: 461a mov r2, r3 + 800e6f0: 68fb ldr r3, [r7, #12] + 800e6f2: 4293 cmp r3, r2 + 800e6f4: d3d5 bcc.n 800e6a2 } } obj->style_cnt++; - 800e762: 687b ldr r3, [r7, #4] - 800e764: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800e766: f3c3 03c5 ubfx r3, r3, #3, #6 - 800e76a: b2db uxtb r3, r3 - 800e76c: 3301 adds r3, #1 - 800e76e: f003 033f and.w r3, r3, #63 ; 0x3f - 800e772: b2d9 uxtb r1, r3 - 800e774: 687a ldr r2, [r7, #4] - 800e776: 8c53 ldrh r3, [r2, #34] ; 0x22 - 800e778: f361 03c8 bfi r3, r1, #3, #6 - 800e77c: 8453 strh r3, [r2, #34] ; 0x22 + 800e6f6: 687b ldr r3, [r7, #4] + 800e6f8: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800e6fa: f3c3 03c5 ubfx r3, r3, #3, #6 + 800e6fe: b2db uxtb r3, r3 + 800e700: 3301 adds r3, #1 + 800e702: f003 033f and.w r3, r3, #63 ; 0x3f + 800e706: b2d9 uxtb r1, r3 + 800e708: 687a ldr r2, [r7, #4] + 800e70a: 8c53 ldrh r3, [r2, #34] ; 0x22 + 800e70c: f361 03c8 bfi r3, r1, #3, #6 + 800e710: 8453 strh r3, [r2, #34] ; 0x22 obj->styles = lv_mem_realloc(obj->styles, obj->style_cnt * sizeof(_lv_obj_style_t)); - 800e77e: 687b ldr r3, [r7, #4] - 800e780: 68da ldr r2, [r3, #12] - 800e782: 687b ldr r3, [r7, #4] - 800e784: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800e786: f3c3 03c5 ubfx r3, r3, #3, #6 - 800e78a: b2db uxtb r3, r3 - 800e78c: 00db lsls r3, r3, #3 - 800e78e: 4619 mov r1, r3 - 800e790: 4610 mov r0, r2 - 800e792: f024 f8bf bl 8032914 - 800e796: 4602 mov r2, r0 - 800e798: 687b ldr r3, [r7, #4] - 800e79a: 60da str r2, [r3, #12] + 800e712: 687b ldr r3, [r7, #4] + 800e714: 68da ldr r2, [r3, #12] + 800e716: 687b ldr r3, [r7, #4] + 800e718: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800e71a: f3c3 03c5 ubfx r3, r3, #3, #6 + 800e71e: b2db uxtb r3, r3 + 800e720: 00db lsls r3, r3, #3 + 800e722: 4619 mov r1, r3 + 800e724: 4610 mov r0, r2 + 800e726: f024 f8ab bl 8032880 + 800e72a: 4602 mov r2, r0 + 800e72c: 687b ldr r3, [r7, #4] + 800e72e: 60da str r2, [r3, #12] LV_ASSERT_MALLOC(obj->styles); - 800e79c: 687b ldr r3, [r7, #4] - 800e79e: 68db ldr r3, [r3, #12] - 800e7a0: 2b00 cmp r3, #0 - 800e7a2: d100 bne.n 800e7a6 - 800e7a4: e7fe b.n 800e7a4 + 800e730: 687b ldr r3, [r7, #4] + 800e732: 68db ldr r3, [r3, #12] + 800e734: 2b00 cmp r3, #0 + 800e736: d100 bne.n 800e73a + 800e738: e7fe b.n 800e738 for(i = obj->style_cnt - 1; i > 0 ; i--) { - 800e7a6: 687b ldr r3, [r7, #4] - 800e7a8: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800e7aa: f3c3 03c5 ubfx r3, r3, #3, #6 - 800e7ae: b2db uxtb r3, r3 - 800e7b0: 3b01 subs r3, #1 - 800e7b2: 60fb str r3, [r7, #12] - 800e7b4: e030 b.n 800e818 + 800e73a: 687b ldr r3, [r7, #4] + 800e73c: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800e73e: f3c3 03c5 ubfx r3, r3, #3, #6 + 800e742: b2db uxtb r3, r3 + 800e744: 3b01 subs r3, #1 + 800e746: 60fb str r3, [r7, #12] + 800e748: e030 b.n 800e7ac /*Copy only normal styles (not local and transition). *The new local style will be added as the last local style*/ if(obj->styles[i - 1].is_local || obj->styles[i - 1].is_trans) break; - 800e7b6: 687b ldr r3, [r7, #4] - 800e7b8: 68da ldr r2, [r3, #12] - 800e7ba: 68fb ldr r3, [r7, #12] - 800e7bc: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 - 800e7c0: 3b01 subs r3, #1 - 800e7c2: 00db lsls r3, r3, #3 - 800e7c4: 4413 add r3, r2 - 800e7c6: 79db ldrb r3, [r3, #7] - 800e7c8: f003 0301 and.w r3, r3, #1 - 800e7cc: b2db uxtb r3, r3 - 800e7ce: 2b00 cmp r3, #0 - 800e7d0: d125 bne.n 800e81e - 800e7d2: 687b ldr r3, [r7, #4] - 800e7d4: 68da ldr r2, [r3, #12] - 800e7d6: 68fb ldr r3, [r7, #12] - 800e7d8: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 - 800e7dc: 3b01 subs r3, #1 - 800e7de: 00db lsls r3, r3, #3 - 800e7e0: 4413 add r3, r2 - 800e7e2: 79db ldrb r3, [r3, #7] - 800e7e4: f003 0302 and.w r3, r3, #2 - 800e7e8: b2db uxtb r3, r3 - 800e7ea: 2b00 cmp r3, #0 - 800e7ec: d117 bne.n 800e81e + 800e74a: 687b ldr r3, [r7, #4] + 800e74c: 68da ldr r2, [r3, #12] + 800e74e: 68fb ldr r3, [r7, #12] + 800e750: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 + 800e754: 3b01 subs r3, #1 + 800e756: 00db lsls r3, r3, #3 + 800e758: 4413 add r3, r2 + 800e75a: 79db ldrb r3, [r3, #7] + 800e75c: f003 0301 and.w r3, r3, #1 + 800e760: b2db uxtb r3, r3 + 800e762: 2b00 cmp r3, #0 + 800e764: d125 bne.n 800e7b2 + 800e766: 687b ldr r3, [r7, #4] + 800e768: 68da ldr r2, [r3, #12] + 800e76a: 68fb ldr r3, [r7, #12] + 800e76c: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 + 800e770: 3b01 subs r3, #1 + 800e772: 00db lsls r3, r3, #3 + 800e774: 4413 add r3, r2 + 800e776: 79db ldrb r3, [r3, #7] + 800e778: f003 0302 and.w r3, r3, #2 + 800e77c: b2db uxtb r3, r3 + 800e77e: 2b00 cmp r3, #0 + 800e780: d117 bne.n 800e7b2 obj->styles[i] = obj->styles[i - 1]; - 800e7ee: 687b ldr r3, [r7, #4] - 800e7f0: 68da ldr r2, [r3, #12] - 800e7f2: 68fb ldr r3, [r7, #12] - 800e7f4: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 - 800e7f8: 3b01 subs r3, #1 - 800e7fa: 00db lsls r3, r3, #3 - 800e7fc: 18d1 adds r1, r2, r3 - 800e7fe: 687b ldr r3, [r7, #4] - 800e800: 68da ldr r2, [r3, #12] - 800e802: 68fb ldr r3, [r7, #12] - 800e804: 00db lsls r3, r3, #3 - 800e806: 4413 add r3, r2 - 800e808: 460a mov r2, r1 - 800e80a: e892 0003 ldmia.w r2, {r0, r1} - 800e80e: e883 0003 stmia.w r3, {r0, r1} + 800e782: 687b ldr r3, [r7, #4] + 800e784: 68da ldr r2, [r3, #12] + 800e786: 68fb ldr r3, [r7, #12] + 800e788: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 + 800e78c: 3b01 subs r3, #1 + 800e78e: 00db lsls r3, r3, #3 + 800e790: 18d1 adds r1, r2, r3 + 800e792: 687b ldr r3, [r7, #4] + 800e794: 68da ldr r2, [r3, #12] + 800e796: 68fb ldr r3, [r7, #12] + 800e798: 00db lsls r3, r3, #3 + 800e79a: 4413 add r3, r2 + 800e79c: 460a mov r2, r1 + 800e79e: e892 0003 ldmia.w r2, {r0, r1} + 800e7a2: e883 0003 stmia.w r3, {r0, r1} for(i = obj->style_cnt - 1; i > 0 ; i--) { - 800e812: 68fb ldr r3, [r7, #12] - 800e814: 3b01 subs r3, #1 - 800e816: 60fb str r3, [r7, #12] - 800e818: 68fb ldr r3, [r7, #12] - 800e81a: 2b00 cmp r3, #0 - 800e81c: d1cb bne.n 800e7b6 + 800e7a6: 68fb ldr r3, [r7, #12] + 800e7a8: 3b01 subs r3, #1 + 800e7aa: 60fb str r3, [r7, #12] + 800e7ac: 68fb ldr r3, [r7, #12] + 800e7ae: 2b00 cmp r3, #0 + 800e7b0: d1cb bne.n 800e74a } lv_memset_00(&obj->styles[i], sizeof(_lv_obj_style_t)); - 800e81e: 687b ldr r3, [r7, #4] - 800e820: 68da ldr r2, [r3, #12] - 800e822: 68fb ldr r3, [r7, #12] - 800e824: 00db lsls r3, r3, #3 - 800e826: 4413 add r3, r2 - 800e828: 2108 movs r1, #8 - 800e82a: 4618 mov r0, r3 - 800e82c: f024 fc90 bl 8033150 + 800e7b2: 687b ldr r3, [r7, #4] + 800e7b4: 68da ldr r2, [r3, #12] + 800e7b6: 68fb ldr r3, [r7, #12] + 800e7b8: 00db lsls r3, r3, #3 + 800e7ba: 4413 add r3, r2 + 800e7bc: 2108 movs r1, #8 + 800e7be: 4618 mov r0, r3 + 800e7c0: f024 fc7c bl 80330bc obj->styles[i].style = lv_mem_alloc(sizeof(lv_style_t)); - 800e830: 687b ldr r3, [r7, #4] - 800e832: 68da ldr r2, [r3, #12] - 800e834: 68fb ldr r3, [r7, #12] - 800e836: 00db lsls r3, r3, #3 - 800e838: 18d4 adds r4, r2, r3 - 800e83a: 2008 movs r0, #8 - 800e83c: f024 f82c bl 8032898 - 800e840: 4603 mov r3, r0 - 800e842: 6023 str r3, [r4, #0] + 800e7c4: 687b ldr r3, [r7, #4] + 800e7c6: 68da ldr r2, [r3, #12] + 800e7c8: 68fb ldr r3, [r7, #12] + 800e7ca: 00db lsls r3, r3, #3 + 800e7cc: 18d4 adds r4, r2, r3 + 800e7ce: 2008 movs r0, #8 + 800e7d0: f024 f818 bl 8032804 + 800e7d4: 4603 mov r3, r0 + 800e7d6: 6023 str r3, [r4, #0] lv_style_init(obj->styles[i].style); - 800e844: 687b ldr r3, [r7, #4] - 800e846: 68da ldr r2, [r3, #12] - 800e848: 68fb ldr r3, [r7, #12] - 800e84a: 00db lsls r3, r3, #3 - 800e84c: 4413 add r3, r2 - 800e84e: 681b ldr r3, [r3, #0] - 800e850: 4618 mov r0, r3 - 800e852: f025 fcff bl 8034254 + 800e7d8: 687b ldr r3, [r7, #4] + 800e7da: 68da ldr r2, [r3, #12] + 800e7dc: 68fb ldr r3, [r7, #12] + 800e7de: 00db lsls r3, r3, #3 + 800e7e0: 4413 add r3, r2 + 800e7e2: 681b ldr r3, [r3, #0] + 800e7e4: 4618 mov r0, r3 + 800e7e6: f025 fceb bl 80341c0 obj->styles[i].is_local = 1; - 800e856: 687b ldr r3, [r7, #4] - 800e858: 68da ldr r2, [r3, #12] - 800e85a: 68fb ldr r3, [r7, #12] - 800e85c: 00db lsls r3, r3, #3 - 800e85e: 441a add r2, r3 - 800e860: 79d3 ldrb r3, [r2, #7] - 800e862: f043 0301 orr.w r3, r3, #1 - 800e866: 71d3 strb r3, [r2, #7] + 800e7ea: 687b ldr r3, [r7, #4] + 800e7ec: 68da ldr r2, [r3, #12] + 800e7ee: 68fb ldr r3, [r7, #12] + 800e7f0: 00db lsls r3, r3, #3 + 800e7f2: 441a add r2, r3 + 800e7f4: 79d3 ldrb r3, [r2, #7] + 800e7f6: f043 0301 orr.w r3, r3, #1 + 800e7fa: 71d3 strb r3, [r2, #7] obj->styles[i].selector = selector; - 800e868: 687b ldr r3, [r7, #4] - 800e86a: 68da ldr r2, [r3, #12] - 800e86c: 68fb ldr r3, [r7, #12] - 800e86e: 00db lsls r3, r3, #3 - 800e870: 441a add r2, r3 - 800e872: 683b ldr r3, [r7, #0] - 800e874: f023 417f bic.w r1, r3, #4278190080 ; 0xff000000 - 800e878: 6853 ldr r3, [r2, #4] - 800e87a: f361 0317 bfi r3, r1, #0, #24 - 800e87e: 6053 str r3, [r2, #4] + 800e7fc: 687b ldr r3, [r7, #4] + 800e7fe: 68da ldr r2, [r3, #12] + 800e800: 68fb ldr r3, [r7, #12] + 800e802: 00db lsls r3, r3, #3 + 800e804: 441a add r2, r3 + 800e806: 683b ldr r3, [r7, #0] + 800e808: f023 417f bic.w r1, r3, #4278190080 ; 0xff000000 + 800e80c: 6853 ldr r3, [r2, #4] + 800e80e: f361 0317 bfi r3, r1, #0, #24 + 800e812: 6053 str r3, [r2, #4] return obj->styles[i].style; - 800e880: 687b ldr r3, [r7, #4] - 800e882: 68da ldr r2, [r3, #12] - 800e884: 68fb ldr r3, [r7, #12] - 800e886: 00db lsls r3, r3, #3 - 800e888: 4413 add r3, r2 - 800e88a: 681b ldr r3, [r3, #0] + 800e814: 687b ldr r3, [r7, #4] + 800e816: 68da ldr r2, [r3, #12] + 800e818: 68fb ldr r3, [r7, #12] + 800e81a: 00db lsls r3, r3, #3 + 800e81c: 4413 add r3, r2 + 800e81e: 681b ldr r3, [r3, #0] } - 800e88c: 4618 mov r0, r3 - 800e88e: 3714 adds r7, #20 - 800e890: 46bd mov sp, r7 - 800e892: bd90 pop {r4, r7, pc} + 800e820: 4618 mov r0, r3 + 800e822: 3714 adds r7, #20 + 800e824: 46bd mov sp, r7 + 800e826: bd90 pop {r4, r7, pc} -0800e894 : +0800e828 : * @param obj pointer to an object * @param selector OR-ed value of parts and state for which the style should be get * @return pointer to the transition style */ static _lv_obj_style_t * get_trans_style(lv_obj_t * obj, lv_style_selector_t selector) { - 800e894: b590 push {r4, r7, lr} - 800e896: b085 sub sp, #20 - 800e898: af00 add r7, sp, #0 - 800e89a: 6078 str r0, [r7, #4] - 800e89c: 6039 str r1, [r7, #0] + 800e828: b590 push {r4, r7, lr} + 800e82a: b085 sub sp, #20 + 800e82c: af00 add r7, sp, #0 + 800e82e: 6078 str r0, [r7, #4] + 800e830: 6039 str r1, [r7, #0] uint32_t i; for(i = 0; i < obj->style_cnt; i++) { - 800e89e: 2300 movs r3, #0 - 800e8a0: 60fb str r3, [r7, #12] - 800e8a2: e019 b.n 800e8d8 + 800e832: 2300 movs r3, #0 + 800e834: 60fb str r3, [r7, #12] + 800e836: e019 b.n 800e86c if(obj->styles[i].is_trans && obj->styles[i].selector == selector) break; - 800e8a4: 687b ldr r3, [r7, #4] - 800e8a6: 68da ldr r2, [r3, #12] - 800e8a8: 68fb ldr r3, [r7, #12] - 800e8aa: 00db lsls r3, r3, #3 - 800e8ac: 4413 add r3, r2 - 800e8ae: 79db ldrb r3, [r3, #7] - 800e8b0: f003 0302 and.w r3, r3, #2 - 800e8b4: b2db uxtb r3, r3 - 800e8b6: 2b00 cmp r3, #0 - 800e8b8: d00b beq.n 800e8d2 - 800e8ba: 687b ldr r3, [r7, #4] - 800e8bc: 68da ldr r2, [r3, #12] - 800e8be: 68fb ldr r3, [r7, #12] - 800e8c0: 00db lsls r3, r3, #3 - 800e8c2: 4413 add r3, r2 - 800e8c4: 685b ldr r3, [r3, #4] - 800e8c6: f3c3 0317 ubfx r3, r3, #0, #24 - 800e8ca: 461a mov r2, r3 - 800e8cc: 683b ldr r3, [r7, #0] - 800e8ce: 4293 cmp r3, r2 - 800e8d0: d00c beq.n 800e8ec + 800e838: 687b ldr r3, [r7, #4] + 800e83a: 68da ldr r2, [r3, #12] + 800e83c: 68fb ldr r3, [r7, #12] + 800e83e: 00db lsls r3, r3, #3 + 800e840: 4413 add r3, r2 + 800e842: 79db ldrb r3, [r3, #7] + 800e844: f003 0302 and.w r3, r3, #2 + 800e848: b2db uxtb r3, r3 + 800e84a: 2b00 cmp r3, #0 + 800e84c: d00b beq.n 800e866 + 800e84e: 687b ldr r3, [r7, #4] + 800e850: 68da ldr r2, [r3, #12] + 800e852: 68fb ldr r3, [r7, #12] + 800e854: 00db lsls r3, r3, #3 + 800e856: 4413 add r3, r2 + 800e858: 685b ldr r3, [r3, #4] + 800e85a: f3c3 0317 ubfx r3, r3, #0, #24 + 800e85e: 461a mov r2, r3 + 800e860: 683b ldr r3, [r7, #0] + 800e862: 4293 cmp r3, r2 + 800e864: d00c beq.n 800e880 for(i = 0; i < obj->style_cnt; i++) { - 800e8d2: 68fb ldr r3, [r7, #12] - 800e8d4: 3301 adds r3, #1 - 800e8d6: 60fb str r3, [r7, #12] - 800e8d8: 687b ldr r3, [r7, #4] - 800e8da: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800e8dc: f3c3 03c5 ubfx r3, r3, #3, #6 - 800e8e0: b2db uxtb r3, r3 - 800e8e2: 461a mov r2, r3 - 800e8e4: 68fb ldr r3, [r7, #12] - 800e8e6: 4293 cmp r3, r2 - 800e8e8: d3dc bcc.n 800e8a4 - 800e8ea: e000 b.n 800e8ee + 800e866: 68fb ldr r3, [r7, #12] + 800e868: 3301 adds r3, #1 + 800e86a: 60fb str r3, [r7, #12] + 800e86c: 687b ldr r3, [r7, #4] + 800e86e: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800e870: f3c3 03c5 ubfx r3, r3, #3, #6 + 800e874: b2db uxtb r3, r3 + 800e876: 461a mov r2, r3 + 800e878: 68fb ldr r3, [r7, #12] + 800e87a: 4293 cmp r3, r2 + 800e87c: d3dc bcc.n 800e838 + 800e87e: e000 b.n 800e882 if(obj->styles[i].is_trans && obj->styles[i].selector == selector) break; - 800e8ec: bf00 nop + 800e880: bf00 nop } /*Already have a transition style for it*/ if(i != obj->style_cnt) return &obj->styles[i]; - 800e8ee: 687b ldr r3, [r7, #4] - 800e8f0: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800e8f2: f3c3 03c5 ubfx r3, r3, #3, #6 - 800e8f6: b2db uxtb r3, r3 - 800e8f8: 461a mov r2, r3 - 800e8fa: 68fb ldr r3, [r7, #12] - 800e8fc: 4293 cmp r3, r2 - 800e8fe: d005 beq.n 800e90c - 800e900: 687b ldr r3, [r7, #4] - 800e902: 68da ldr r2, [r3, #12] - 800e904: 68fb ldr r3, [r7, #12] - 800e906: 00db lsls r3, r3, #3 - 800e908: 4413 add r3, r2 - 800e90a: e060 b.n 800e9ce + 800e882: 687b ldr r3, [r7, #4] + 800e884: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800e886: f3c3 03c5 ubfx r3, r3, #3, #6 + 800e88a: b2db uxtb r3, r3 + 800e88c: 461a mov r2, r3 + 800e88e: 68fb ldr r3, [r7, #12] + 800e890: 4293 cmp r3, r2 + 800e892: d005 beq.n 800e8a0 + 800e894: 687b ldr r3, [r7, #4] + 800e896: 68da ldr r2, [r3, #12] + 800e898: 68fb ldr r3, [r7, #12] + 800e89a: 00db lsls r3, r3, #3 + 800e89c: 4413 add r3, r2 + 800e89e: e060 b.n 800e962 obj->style_cnt++; - 800e90c: 687b ldr r3, [r7, #4] - 800e90e: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800e910: f3c3 03c5 ubfx r3, r3, #3, #6 - 800e914: b2db uxtb r3, r3 - 800e916: 3301 adds r3, #1 - 800e918: f003 033f and.w r3, r3, #63 ; 0x3f - 800e91c: b2d9 uxtb r1, r3 - 800e91e: 687a ldr r2, [r7, #4] - 800e920: 8c53 ldrh r3, [r2, #34] ; 0x22 - 800e922: f361 03c8 bfi r3, r1, #3, #6 - 800e926: 8453 strh r3, [r2, #34] ; 0x22 + 800e8a0: 687b ldr r3, [r7, #4] + 800e8a2: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800e8a4: f3c3 03c5 ubfx r3, r3, #3, #6 + 800e8a8: b2db uxtb r3, r3 + 800e8aa: 3301 adds r3, #1 + 800e8ac: f003 033f and.w r3, r3, #63 ; 0x3f + 800e8b0: b2d9 uxtb r1, r3 + 800e8b2: 687a ldr r2, [r7, #4] + 800e8b4: 8c53 ldrh r3, [r2, #34] ; 0x22 + 800e8b6: f361 03c8 bfi r3, r1, #3, #6 + 800e8ba: 8453 strh r3, [r2, #34] ; 0x22 obj->styles = lv_mem_realloc(obj->styles, obj->style_cnt * sizeof(_lv_obj_style_t)); - 800e928: 687b ldr r3, [r7, #4] - 800e92a: 68da ldr r2, [r3, #12] - 800e92c: 687b ldr r3, [r7, #4] - 800e92e: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800e930: f3c3 03c5 ubfx r3, r3, #3, #6 - 800e934: b2db uxtb r3, r3 - 800e936: 00db lsls r3, r3, #3 - 800e938: 4619 mov r1, r3 - 800e93a: 4610 mov r0, r2 - 800e93c: f023 ffea bl 8032914 - 800e940: 4602 mov r2, r0 - 800e942: 687b ldr r3, [r7, #4] - 800e944: 60da str r2, [r3, #12] + 800e8bc: 687b ldr r3, [r7, #4] + 800e8be: 68da ldr r2, [r3, #12] + 800e8c0: 687b ldr r3, [r7, #4] + 800e8c2: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800e8c4: f3c3 03c5 ubfx r3, r3, #3, #6 + 800e8c8: b2db uxtb r3, r3 + 800e8ca: 00db lsls r3, r3, #3 + 800e8cc: 4619 mov r1, r3 + 800e8ce: 4610 mov r0, r2 + 800e8d0: f023 ffd6 bl 8032880 + 800e8d4: 4602 mov r2, r0 + 800e8d6: 687b ldr r3, [r7, #4] + 800e8d8: 60da str r2, [r3, #12] for(i = obj->style_cnt - 1; i > 0 ; i--) { - 800e946: 687b ldr r3, [r7, #4] - 800e948: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800e94a: f3c3 03c5 ubfx r3, r3, #3, #6 - 800e94e: b2db uxtb r3, r3 - 800e950: 3b01 subs r3, #1 - 800e952: 60fb str r3, [r7, #12] - 800e954: e014 b.n 800e980 + 800e8da: 687b ldr r3, [r7, #4] + 800e8dc: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800e8de: f3c3 03c5 ubfx r3, r3, #3, #6 + 800e8e2: b2db uxtb r3, r3 + 800e8e4: 3b01 subs r3, #1 + 800e8e6: 60fb str r3, [r7, #12] + 800e8e8: e014 b.n 800e914 obj->styles[i] = obj->styles[i - 1]; - 800e956: 687b ldr r3, [r7, #4] - 800e958: 68da ldr r2, [r3, #12] - 800e95a: 68fb ldr r3, [r7, #12] - 800e95c: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 - 800e960: 3b01 subs r3, #1 - 800e962: 00db lsls r3, r3, #3 - 800e964: 18d1 adds r1, r2, r3 - 800e966: 687b ldr r3, [r7, #4] - 800e968: 68da ldr r2, [r3, #12] - 800e96a: 68fb ldr r3, [r7, #12] - 800e96c: 00db lsls r3, r3, #3 - 800e96e: 4413 add r3, r2 - 800e970: 460a mov r2, r1 - 800e972: e892 0003 ldmia.w r2, {r0, r1} - 800e976: e883 0003 stmia.w r3, {r0, r1} + 800e8ea: 687b ldr r3, [r7, #4] + 800e8ec: 68da ldr r2, [r3, #12] + 800e8ee: 68fb ldr r3, [r7, #12] + 800e8f0: f103 5300 add.w r3, r3, #536870912 ; 0x20000000 + 800e8f4: 3b01 subs r3, #1 + 800e8f6: 00db lsls r3, r3, #3 + 800e8f8: 18d1 adds r1, r2, r3 + 800e8fa: 687b ldr r3, [r7, #4] + 800e8fc: 68da ldr r2, [r3, #12] + 800e8fe: 68fb ldr r3, [r7, #12] + 800e900: 00db lsls r3, r3, #3 + 800e902: 4413 add r3, r2 + 800e904: 460a mov r2, r1 + 800e906: e892 0003 ldmia.w r2, {r0, r1} + 800e90a: e883 0003 stmia.w r3, {r0, r1} for(i = obj->style_cnt - 1; i > 0 ; i--) { - 800e97a: 68fb ldr r3, [r7, #12] - 800e97c: 3b01 subs r3, #1 - 800e97e: 60fb str r3, [r7, #12] - 800e980: 68fb ldr r3, [r7, #12] - 800e982: 2b00 cmp r3, #0 - 800e984: d1e7 bne.n 800e956 + 800e90e: 68fb ldr r3, [r7, #12] + 800e910: 3b01 subs r3, #1 + 800e912: 60fb str r3, [r7, #12] + 800e914: 68fb ldr r3, [r7, #12] + 800e916: 2b00 cmp r3, #0 + 800e918: d1e7 bne.n 800e8ea } lv_memset_00(&obj->styles[0], sizeof(_lv_obj_style_t)); - 800e986: 687b ldr r3, [r7, #4] - 800e988: 68db ldr r3, [r3, #12] - 800e98a: 2108 movs r1, #8 - 800e98c: 4618 mov r0, r3 - 800e98e: f024 fbdf bl 8033150 + 800e91a: 687b ldr r3, [r7, #4] + 800e91c: 68db ldr r3, [r3, #12] + 800e91e: 2108 movs r1, #8 + 800e920: 4618 mov r0, r3 + 800e922: f024 fbcb bl 80330bc obj->styles[0].style = lv_mem_alloc(sizeof(lv_style_t)); - 800e992: 687b ldr r3, [r7, #4] - 800e994: 68dc ldr r4, [r3, #12] - 800e996: 2008 movs r0, #8 - 800e998: f023 ff7e bl 8032898 - 800e99c: 4603 mov r3, r0 - 800e99e: 6023 str r3, [r4, #0] + 800e926: 687b ldr r3, [r7, #4] + 800e928: 68dc ldr r4, [r3, #12] + 800e92a: 2008 movs r0, #8 + 800e92c: f023 ff6a bl 8032804 + 800e930: 4603 mov r3, r0 + 800e932: 6023 str r3, [r4, #0] lv_style_init(obj->styles[0].style); - 800e9a0: 687b ldr r3, [r7, #4] - 800e9a2: 68db ldr r3, [r3, #12] - 800e9a4: 681b ldr r3, [r3, #0] - 800e9a6: 4618 mov r0, r3 - 800e9a8: f025 fc54 bl 8034254 + 800e934: 687b ldr r3, [r7, #4] + 800e936: 68db ldr r3, [r3, #12] + 800e938: 681b ldr r3, [r3, #0] + 800e93a: 4618 mov r0, r3 + 800e93c: f025 fc40 bl 80341c0 obj->styles[0].is_trans = 1; - 800e9ac: 687b ldr r3, [r7, #4] - 800e9ae: 68da ldr r2, [r3, #12] - 800e9b0: 79d3 ldrb r3, [r2, #7] - 800e9b2: f043 0302 orr.w r3, r3, #2 - 800e9b6: 71d3 strb r3, [r2, #7] + 800e940: 687b ldr r3, [r7, #4] + 800e942: 68da ldr r2, [r3, #12] + 800e944: 79d3 ldrb r3, [r2, #7] + 800e946: f043 0302 orr.w r3, r3, #2 + 800e94a: 71d3 strb r3, [r2, #7] obj->styles[0].selector = selector; - 800e9b8: 687b ldr r3, [r7, #4] - 800e9ba: 68da ldr r2, [r3, #12] - 800e9bc: 683b ldr r3, [r7, #0] - 800e9be: f023 417f bic.w r1, r3, #4278190080 ; 0xff000000 - 800e9c2: 6853 ldr r3, [r2, #4] - 800e9c4: f361 0317 bfi r3, r1, #0, #24 - 800e9c8: 6053 str r3, [r2, #4] + 800e94c: 687b ldr r3, [r7, #4] + 800e94e: 68da ldr r2, [r3, #12] + 800e950: 683b ldr r3, [r7, #0] + 800e952: f023 417f bic.w r1, r3, #4278190080 ; 0xff000000 + 800e956: 6853 ldr r3, [r2, #4] + 800e958: f361 0317 bfi r3, r1, #0, #24 + 800e95c: 6053 str r3, [r2, #4] return &obj->styles[0]; - 800e9ca: 687b ldr r3, [r7, #4] - 800e9cc: 68db ldr r3, [r3, #12] + 800e95e: 687b ldr r3, [r7, #4] + 800e960: 68db ldr r3, [r3, #12] } - 800e9ce: 4618 mov r0, r3 - 800e9d0: 3714 adds r7, #20 - 800e9d2: 46bd mov sp, r7 - 800e9d4: bd90 pop {r4, r7, pc} + 800e962: 4618 mov r0, r3 + 800e964: 3714 adds r7, #20 + 800e966: 46bd mov sp, r7 + 800e968: bd90 pop {r4, r7, pc} -0800e9d6 : +0800e96a : static bool get_prop_core(const lv_obj_t * obj, lv_part_t part, lv_style_prop_t prop, lv_style_value_t * v) { - 800e9d6: b580 push {r7, lr} - 800e9d8: b090 sub sp, #64 ; 0x40 - 800e9da: af00 add r7, sp, #0 - 800e9dc: 60f8 str r0, [r7, #12] - 800e9de: 60b9 str r1, [r7, #8] - 800e9e0: 603b str r3, [r7, #0] - 800e9e2: 4613 mov r3, r2 - 800e9e4: 80fb strh r3, [r7, #6] + 800e96a: b580 push {r7, lr} + 800e96c: b090 sub sp, #64 ; 0x40 + 800e96e: af00 add r7, sp, #0 + 800e970: 60f8 str r0, [r7, #12] + 800e972: 60b9 str r1, [r7, #8] + 800e974: 603b str r3, [r7, #0] + 800e976: 4613 mov r3, r2 + 800e978: 80fb strh r3, [r7, #6] uint8_t group = 1 << _lv_style_get_prop_group(prop); - 800e9e6: 88fb ldrh r3, [r7, #6] - 800e9e8: 4618 mov r0, r3 - 800e9ea: f025 ff61 bl 80348b0 <_lv_style_get_prop_group> - 800e9ee: 4603 mov r3, r0 - 800e9f0: 461a mov r2, r3 - 800e9f2: 2301 movs r3, #1 - 800e9f4: 4093 lsls r3, r2 - 800e9f6: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 800e97a: 88fb ldrh r3, [r7, #6] + 800e97c: 4618 mov r0, r3 + 800e97e: f025 ff4d bl 803481c <_lv_style_get_prop_group> + 800e982: 4603 mov r3, r0 + 800e984: 461a mov r2, r3 + 800e986: 2301 movs r3, #1 + 800e988: 4093 lsls r3, r2 + 800e98a: f887 3037 strb.w r3, [r7, #55] ; 0x37 int32_t weight = -1; - 800e9fa: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 800e9fe: 63fb str r3, [r7, #60] ; 0x3c + 800e98e: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 800e992: 63fb str r3, [r7, #60] ; 0x3c lv_state_t state = obj->state; - 800ea00: 68fb ldr r3, [r7, #12] - 800ea02: 8c1b ldrh r3, [r3, #32] - 800ea04: 86bb strh r3, [r7, #52] ; 0x34 + 800e994: 68fb ldr r3, [r7, #12] + 800e996: 8c1b ldrh r3, [r3, #32] + 800e998: 86bb strh r3, [r7, #52] ; 0x34 lv_state_t state_inv = ~state; - 800ea06: 8ebb ldrh r3, [r7, #52] ; 0x34 - 800ea08: 43db mvns r3, r3 - 800ea0a: 867b strh r3, [r7, #50] ; 0x32 + 800e99a: 8ebb ldrh r3, [r7, #52] ; 0x34 + 800e99c: 43db mvns r3, r3 + 800e99e: 867b strh r3, [r7, #50] ; 0x32 lv_style_value_t value_tmp; bool skip_trans = obj->skip_trans; - 800ea0c: 68fb ldr r3, [r7, #12] - 800ea0e: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 - 800ea12: f3c3 0380 ubfx r3, r3, #2, #1 - 800ea16: b2db uxtb r3, r3 - 800ea18: 2b00 cmp r3, #0 - 800ea1a: bf14 ite ne - 800ea1c: 2301 movne r3, #1 - 800ea1e: 2300 moveq r3, #0 - 800ea20: f887 3031 strb.w r3, [r7, #49] ; 0x31 + 800e9a0: 68fb ldr r3, [r7, #12] + 800e9a2: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 + 800e9a6: f3c3 0380 ubfx r3, r3, #2, #1 + 800e9aa: b2db uxtb r3, r3 + 800e9ac: 2b00 cmp r3, #0 + 800e9ae: bf14 ite ne + 800e9b0: 2301 movne r3, #1 + 800e9b2: 2300 moveq r3, #0 + 800e9b4: f887 3031 strb.w r3, [r7, #49] ; 0x31 uint32_t i; bool found; for(i = 0; i < obj->style_cnt; i++) { - 800ea24: 2300 movs r3, #0 - 800ea26: 63bb str r3, [r7, #56] ; 0x38 - 800ea28: e049 b.n 800eabe + 800e9b8: 2300 movs r3, #0 + 800e9ba: 63bb str r3, [r7, #56] ; 0x38 + 800e9bc: e049 b.n 800ea52 _lv_obj_style_t * obj_style = &obj->styles[i]; - 800ea2a: 68fb ldr r3, [r7, #12] - 800ea2c: 68da ldr r2, [r3, #12] - 800ea2e: 6bbb ldr r3, [r7, #56] ; 0x38 - 800ea30: 00db lsls r3, r3, #3 - 800ea32: 4413 add r3, r2 - 800ea34: 62fb str r3, [r7, #44] ; 0x2c + 800e9be: 68fb ldr r3, [r7, #12] + 800e9c0: 68da ldr r2, [r3, #12] + 800e9c2: 6bbb ldr r3, [r7, #56] ; 0x38 + 800e9c4: 00db lsls r3, r3, #3 + 800e9c6: 4413 add r3, r2 + 800e9c8: 62fb str r3, [r7, #44] ; 0x2c if(obj_style->is_trans == false) break; - 800ea36: 6afb ldr r3, [r7, #44] ; 0x2c - 800ea38: 79db ldrb r3, [r3, #7] - 800ea3a: f003 0302 and.w r3, r3, #2 - 800ea3e: b2db uxtb r3, r3 - 800ea40: 2b00 cmp r3, #0 - 800ea42: d046 beq.n 800ead2 + 800e9ca: 6afb ldr r3, [r7, #44] ; 0x2c + 800e9cc: 79db ldrb r3, [r3, #7] + 800e9ce: f003 0302 and.w r3, r3, #2 + 800e9d2: b2db uxtb r3, r3 + 800e9d4: 2b00 cmp r3, #0 + 800e9d6: d046 beq.n 800ea66 if(skip_trans) continue; - 800ea44: f897 3031 ldrb.w r3, [r7, #49] ; 0x31 - 800ea48: 2b00 cmp r3, #0 - 800ea4a: d130 bne.n 800eaae + 800e9d8: f897 3031 ldrb.w r3, [r7, #49] ; 0x31 + 800e9dc: 2b00 cmp r3, #0 + 800e9de: d130 bne.n 800ea42 lv_part_t part_act = lv_obj_style_get_selector_part(obj->styles[i].selector); - 800ea4c: 68fb ldr r3, [r7, #12] - 800ea4e: 68da ldr r2, [r3, #12] - 800ea50: 6bbb ldr r3, [r7, #56] ; 0x38 - 800ea52: 00db lsls r3, r3, #3 - 800ea54: 4413 add r3, r2 - 800ea56: 685b ldr r3, [r3, #4] - 800ea58: f3c3 0317 ubfx r3, r3, #0, #24 - 800ea5c: 4618 mov r0, r3 - 800ea5e: f7ff fe23 bl 800e6a8 - 800ea62: 62b8 str r0, [r7, #40] ; 0x28 + 800e9e0: 68fb ldr r3, [r7, #12] + 800e9e2: 68da ldr r2, [r3, #12] + 800e9e4: 6bbb ldr r3, [r7, #56] ; 0x38 + 800e9e6: 00db lsls r3, r3, #3 + 800e9e8: 4413 add r3, r2 + 800e9ea: 685b ldr r3, [r3, #4] + 800e9ec: f3c3 0317 ubfx r3, r3, #0, #24 + 800e9f0: 4618 mov r0, r3 + 800e9f2: f7ff fe23 bl 800e63c + 800e9f6: 62b8 str r0, [r7, #40] ; 0x28 if(part_act != part) continue; - 800ea64: 6aba ldr r2, [r7, #40] ; 0x28 - 800ea66: 68bb ldr r3, [r7, #8] - 800ea68: 429a cmp r2, r3 - 800ea6a: d122 bne.n 800eab2 + 800e9f8: 6aba ldr r2, [r7, #40] ; 0x28 + 800e9fa: 68bb ldr r3, [r7, #8] + 800e9fc: 429a cmp r2, r3 + 800e9fe: d122 bne.n 800ea46 if((obj_style->style->has_group & group) == 0) continue; - 800ea6c: 6afb ldr r3, [r7, #44] ; 0x2c - 800ea6e: 681b ldr r3, [r3, #0] - 800ea70: 799a ldrb r2, [r3, #6] - 800ea72: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 800ea76: 4013 ands r3, r2 - 800ea78: b2db uxtb r3, r3 - 800ea7a: 2b00 cmp r3, #0 - 800ea7c: d01b beq.n 800eab6 + 800ea00: 6afb ldr r3, [r7, #44] ; 0x2c + 800ea02: 681b ldr r3, [r3, #0] + 800ea04: 799a ldrb r2, [r3, #6] + 800ea06: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 800ea0a: 4013 ands r3, r2 + 800ea0c: b2db uxtb r3, r3 + 800ea0e: 2b00 cmp r3, #0 + 800ea10: d01b beq.n 800ea4a found = lv_style_get_prop(obj_style->style, prop, &value_tmp); - 800ea7e: 6afb ldr r3, [r7, #44] ; 0x2c - 800ea80: 681b ldr r3, [r3, #0] - 800ea82: f107 0214 add.w r2, r7, #20 - 800ea86: 88f9 ldrh r1, [r7, #6] - 800ea88: 4618 mov r0, r3 - 800ea8a: f025 fdf9 bl 8034680 - 800ea8e: 4603 mov r3, r0 - 800ea90: 2b00 cmp r3, #0 - 800ea92: bf14 ite ne - 800ea94: 2301 movne r3, #1 - 800ea96: 2300 moveq r3, #0 - 800ea98: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 800ea12: 6afb ldr r3, [r7, #44] ; 0x2c + 800ea14: 681b ldr r3, [r3, #0] + 800ea16: f107 0214 add.w r2, r7, #20 + 800ea1a: 88f9 ldrh r1, [r7, #6] + 800ea1c: 4618 mov r0, r3 + 800ea1e: f025 fde5 bl 80345ec + 800ea22: 4603 mov r3, r0 + 800ea24: 2b00 cmp r3, #0 + 800ea26: bf14 ite ne + 800ea28: 2301 movne r3, #1 + 800ea2a: 2300 moveq r3, #0 + 800ea2c: f887 3027 strb.w r3, [r7, #39] ; 0x27 if(found) { - 800ea9c: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 800eaa0: 2b00 cmp r3, #0 - 800eaa2: d009 beq.n 800eab8 + 800ea30: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 800ea34: 2b00 cmp r3, #0 + 800ea36: d009 beq.n 800ea4c *v = value_tmp; - 800eaa4: 683b ldr r3, [r7, #0] - 800eaa6: 697a ldr r2, [r7, #20] - 800eaa8: 601a str r2, [r3, #0] + 800ea38: 683b ldr r3, [r7, #0] + 800ea3a: 697a ldr r2, [r7, #20] + 800ea3c: 601a str r2, [r3, #0] return true; - 800eaaa: 2301 movs r3, #1 - 800eaac: e08b b.n 800ebc6 + 800ea3e: 2301 movs r3, #1 + 800ea40: e08b b.n 800eb5a if(skip_trans) continue; - 800eaae: bf00 nop - 800eab0: e002 b.n 800eab8 + 800ea42: bf00 nop + 800ea44: e002 b.n 800ea4c if(part_act != part) continue; - 800eab2: bf00 nop - 800eab4: e000 b.n 800eab8 + 800ea46: bf00 nop + 800ea48: e000 b.n 800ea4c if((obj_style->style->has_group & group) == 0) continue; - 800eab6: bf00 nop + 800ea4a: bf00 nop for(i = 0; i < obj->style_cnt; i++) { - 800eab8: 6bbb ldr r3, [r7, #56] ; 0x38 - 800eaba: 3301 adds r3, #1 - 800eabc: 63bb str r3, [r7, #56] ; 0x38 - 800eabe: 68fb ldr r3, [r7, #12] - 800eac0: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800eac2: f3c3 03c5 ubfx r3, r3, #3, #6 - 800eac6: b2db uxtb r3, r3 - 800eac8: 461a mov r2, r3 - 800eaca: 6bbb ldr r3, [r7, #56] ; 0x38 - 800eacc: 4293 cmp r3, r2 - 800eace: d3ac bcc.n 800ea2a - 800ead0: e067 b.n 800eba2 + 800ea4c: 6bbb ldr r3, [r7, #56] ; 0x38 + 800ea4e: 3301 adds r3, #1 + 800ea50: 63bb str r3, [r7, #56] ; 0x38 + 800ea52: 68fb ldr r3, [r7, #12] + 800ea54: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800ea56: f3c3 03c5 ubfx r3, r3, #3, #6 + 800ea5a: b2db uxtb r3, r3 + 800ea5c: 461a mov r2, r3 + 800ea5e: 6bbb ldr r3, [r7, #56] ; 0x38 + 800ea60: 4293 cmp r3, r2 + 800ea62: d3ac bcc.n 800e9be + 800ea64: e067 b.n 800eb36 if(obj_style->is_trans == false) break; - 800ead2: bf00 nop + 800ea66: bf00 nop } } for(; i < obj->style_cnt; i++) { - 800ead4: e065 b.n 800eba2 + 800ea68: e065 b.n 800eb36 _lv_obj_style_t * obj_style = &obj->styles[i]; - 800ead6: 68fb ldr r3, [r7, #12] - 800ead8: 68da ldr r2, [r3, #12] - 800eada: 6bbb ldr r3, [r7, #56] ; 0x38 - 800eadc: 00db lsls r3, r3, #3 - 800eade: 4413 add r3, r2 - 800eae0: 623b str r3, [r7, #32] + 800ea6a: 68fb ldr r3, [r7, #12] + 800ea6c: 68da ldr r2, [r3, #12] + 800ea6e: 6bbb ldr r3, [r7, #56] ; 0x38 + 800ea70: 00db lsls r3, r3, #3 + 800ea72: 4413 add r3, r2 + 800ea74: 623b str r3, [r7, #32] lv_part_t part_act = lv_obj_style_get_selector_part(obj->styles[i].selector); - 800eae2: 68fb ldr r3, [r7, #12] - 800eae4: 68da ldr r2, [r3, #12] - 800eae6: 6bbb ldr r3, [r7, #56] ; 0x38 - 800eae8: 00db lsls r3, r3, #3 - 800eaea: 4413 add r3, r2 - 800eaec: 685b ldr r3, [r3, #4] - 800eaee: f3c3 0317 ubfx r3, r3, #0, #24 - 800eaf2: 4618 mov r0, r3 - 800eaf4: f7ff fdd8 bl 800e6a8 - 800eaf8: 61f8 str r0, [r7, #28] + 800ea76: 68fb ldr r3, [r7, #12] + 800ea78: 68da ldr r2, [r3, #12] + 800ea7a: 6bbb ldr r3, [r7, #56] ; 0x38 + 800ea7c: 00db lsls r3, r3, #3 + 800ea7e: 4413 add r3, r2 + 800ea80: 685b ldr r3, [r3, #4] + 800ea82: f3c3 0317 ubfx r3, r3, #0, #24 + 800ea86: 4618 mov r0, r3 + 800ea88: f7ff fdd8 bl 800e63c + 800ea8c: 61f8 str r0, [r7, #28] lv_state_t state_act = lv_obj_style_get_selector_state(obj->styles[i].selector); - 800eafa: 68fb ldr r3, [r7, #12] - 800eafc: 68da ldr r2, [r3, #12] - 800eafe: 6bbb ldr r3, [r7, #56] ; 0x38 - 800eb00: 00db lsls r3, r3, #3 - 800eb02: 4413 add r3, r2 - 800eb04: 685b ldr r3, [r3, #4] - 800eb06: f3c3 0317 ubfx r3, r3, #0, #24 - 800eb0a: 4618 mov r0, r3 - 800eb0c: f7ff fdc1 bl 800e692 - 800eb10: 4603 mov r3, r0 - 800eb12: 837b strh r3, [r7, #26] + 800ea8e: 68fb ldr r3, [r7, #12] + 800ea90: 68da ldr r2, [r3, #12] + 800ea92: 6bbb ldr r3, [r7, #56] ; 0x38 + 800ea94: 00db lsls r3, r3, #3 + 800ea96: 4413 add r3, r2 + 800ea98: 685b ldr r3, [r3, #4] + 800ea9a: f3c3 0317 ubfx r3, r3, #0, #24 + 800ea9e: 4618 mov r0, r3 + 800eaa0: f7ff fdc1 bl 800e626 + 800eaa4: 4603 mov r3, r0 + 800eaa6: 837b strh r3, [r7, #26] if(part_act != part) continue; - 800eb14: 69fa ldr r2, [r7, #28] - 800eb16: 68bb ldr r3, [r7, #8] - 800eb18: 429a cmp r2, r3 - 800eb1a: d138 bne.n 800eb8e + 800eaa8: 69fa ldr r2, [r7, #28] + 800eaaa: 68bb ldr r3, [r7, #8] + 800eaac: 429a cmp r2, r3 + 800eaae: d138 bne.n 800eb22 if((obj_style->style->has_group & group) == 0) continue; - 800eb1c: 6a3b ldr r3, [r7, #32] - 800eb1e: 681b ldr r3, [r3, #0] - 800eb20: 799a ldrb r2, [r3, #6] - 800eb22: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 800eb26: 4013 ands r3, r2 - 800eb28: b2db uxtb r3, r3 - 800eb2a: 2b00 cmp r3, #0 - 800eb2c: d031 beq.n 800eb92 + 800eab0: 6a3b ldr r3, [r7, #32] + 800eab2: 681b ldr r3, [r3, #0] + 800eab4: 799a ldrb r2, [r3, #6] + 800eab6: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 800eaba: 4013 ands r3, r2 + 800eabc: b2db uxtb r3, r3 + 800eabe: 2b00 cmp r3, #0 + 800eac0: d031 beq.n 800eb26 /*Be sure the style not specifies other state than the requested. *E.g. For HOVER+PRESS object state, HOVER style only is OK, but HOVER+FOCUS style is not*/ if((state_act & state_inv)) continue; - 800eb2e: 8b7a ldrh r2, [r7, #26] - 800eb30: 8e7b ldrh r3, [r7, #50] ; 0x32 - 800eb32: 4013 ands r3, r2 - 800eb34: b29b uxth r3, r3 - 800eb36: 2b00 cmp r3, #0 - 800eb38: d12d bne.n 800eb96 + 800eac2: 8b7a ldrh r2, [r7, #26] + 800eac4: 8e7b ldrh r3, [r7, #50] ; 0x32 + 800eac6: 4013 ands r3, r2 + 800eac8: b29b uxth r3, r3 + 800eaca: 2b00 cmp r3, #0 + 800eacc: d12d bne.n 800eb2a /*Check only better candidates*/ if(state_act <= weight) continue; - 800eb3a: 8b7b ldrh r3, [r7, #26] - 800eb3c: 6bfa ldr r2, [r7, #60] ; 0x3c - 800eb3e: 429a cmp r2, r3 - 800eb40: da2b bge.n 800eb9a + 800eace: 8b7b ldrh r3, [r7, #26] + 800ead0: 6bfa ldr r2, [r7, #60] ; 0x3c + 800ead2: 429a cmp r2, r3 + 800ead4: da2b bge.n 800eb2e found = lv_style_get_prop(obj_style->style, prop, &value_tmp); - 800eb42: 6a3b ldr r3, [r7, #32] - 800eb44: 681b ldr r3, [r3, #0] - 800eb46: f107 0214 add.w r2, r7, #20 - 800eb4a: 88f9 ldrh r1, [r7, #6] - 800eb4c: 4618 mov r0, r3 - 800eb4e: f025 fd97 bl 8034680 - 800eb52: 4603 mov r3, r0 - 800eb54: 2b00 cmp r3, #0 - 800eb56: bf14 ite ne - 800eb58: 2301 movne r3, #1 - 800eb5a: 2300 moveq r3, #0 - 800eb5c: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 800ead6: 6a3b ldr r3, [r7, #32] + 800ead8: 681b ldr r3, [r3, #0] + 800eada: f107 0214 add.w r2, r7, #20 + 800eade: 88f9 ldrh r1, [r7, #6] + 800eae0: 4618 mov r0, r3 + 800eae2: f025 fd83 bl 80345ec + 800eae6: 4603 mov r3, r0 + 800eae8: 2b00 cmp r3, #0 + 800eaea: bf14 ite ne + 800eaec: 2301 movne r3, #1 + 800eaee: 2300 moveq r3, #0 + 800eaf0: f887 3027 strb.w r3, [r7, #39] ; 0x27 if(found) { - 800eb60: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 800eb64: 2b00 cmp r3, #0 - 800eb66: d019 beq.n 800eb9c + 800eaf4: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 800eaf8: 2b00 cmp r3, #0 + 800eafa: d019 beq.n 800eb30 if(state_act == state) { - 800eb68: 8b7a ldrh r2, [r7, #26] - 800eb6a: 8ebb ldrh r3, [r7, #52] ; 0x34 - 800eb6c: 429a cmp r2, r3 - 800eb6e: d104 bne.n 800eb7a + 800eafc: 8b7a ldrh r2, [r7, #26] + 800eafe: 8ebb ldrh r3, [r7, #52] ; 0x34 + 800eb00: 429a cmp r2, r3 + 800eb02: d104 bne.n 800eb0e *v = value_tmp; - 800eb70: 683b ldr r3, [r7, #0] - 800eb72: 697a ldr r2, [r7, #20] - 800eb74: 601a str r2, [r3, #0] + 800eb04: 683b ldr r3, [r7, #0] + 800eb06: 697a ldr r2, [r7, #20] + 800eb08: 601a str r2, [r3, #0] return true; - 800eb76: 2301 movs r3, #1 - 800eb78: e025 b.n 800ebc6 + 800eb0a: 2301 movs r3, #1 + 800eb0c: e025 b.n 800eb5a } if(weight < state_act) { - 800eb7a: 8b7b ldrh r3, [r7, #26] - 800eb7c: 6bfa ldr r2, [r7, #60] ; 0x3c - 800eb7e: 429a cmp r2, r3 - 800eb80: da0c bge.n 800eb9c + 800eb0e: 8b7b ldrh r3, [r7, #26] + 800eb10: 6bfa ldr r2, [r7, #60] ; 0x3c + 800eb12: 429a cmp r2, r3 + 800eb14: da0c bge.n 800eb30 weight = state_act; - 800eb82: 8b7b ldrh r3, [r7, #26] - 800eb84: 63fb str r3, [r7, #60] ; 0x3c + 800eb16: 8b7b ldrh r3, [r7, #26] + 800eb18: 63fb str r3, [r7, #60] ; 0x3c *v = value_tmp; - 800eb86: 683b ldr r3, [r7, #0] - 800eb88: 697a ldr r2, [r7, #20] - 800eb8a: 601a str r2, [r3, #0] - 800eb8c: e006 b.n 800eb9c + 800eb1a: 683b ldr r3, [r7, #0] + 800eb1c: 697a ldr r2, [r7, #20] + 800eb1e: 601a str r2, [r3, #0] + 800eb20: e006 b.n 800eb30 if(part_act != part) continue; - 800eb8e: bf00 nop - 800eb90: e004 b.n 800eb9c + 800eb22: bf00 nop + 800eb24: e004 b.n 800eb30 if((obj_style->style->has_group & group) == 0) continue; - 800eb92: bf00 nop - 800eb94: e002 b.n 800eb9c + 800eb26: bf00 nop + 800eb28: e002 b.n 800eb30 if((state_act & state_inv)) continue; - 800eb96: bf00 nop - 800eb98: e000 b.n 800eb9c + 800eb2a: bf00 nop + 800eb2c: e000 b.n 800eb30 if(state_act <= weight) continue; - 800eb9a: bf00 nop + 800eb2e: bf00 nop for(; i < obj->style_cnt; i++) { - 800eb9c: 6bbb ldr r3, [r7, #56] ; 0x38 - 800eb9e: 3301 adds r3, #1 - 800eba0: 63bb str r3, [r7, #56] ; 0x38 - 800eba2: 68fb ldr r3, [r7, #12] - 800eba4: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800eba6: f3c3 03c5 ubfx r3, r3, #3, #6 - 800ebaa: b2db uxtb r3, r3 - 800ebac: 461a mov r2, r3 - 800ebae: 6bbb ldr r3, [r7, #56] ; 0x38 - 800ebb0: 4293 cmp r3, r2 - 800ebb2: d390 bcc.n 800ead6 + 800eb30: 6bbb ldr r3, [r7, #56] ; 0x38 + 800eb32: 3301 adds r3, #1 + 800eb34: 63bb str r3, [r7, #56] ; 0x38 + 800eb36: 68fb ldr r3, [r7, #12] + 800eb38: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800eb3a: f3c3 03c5 ubfx r3, r3, #3, #6 + 800eb3e: b2db uxtb r3, r3 + 800eb40: 461a mov r2, r3 + 800eb42: 6bbb ldr r3, [r7, #56] ; 0x38 + 800eb44: 4293 cmp r3, r2 + 800eb46: d390 bcc.n 800ea6a } } } if(weight >= 0) { - 800ebb4: 6bfb ldr r3, [r7, #60] ; 0x3c - 800ebb6: 2b00 cmp r3, #0 - 800ebb8: db04 blt.n 800ebc4 + 800eb48: 6bfb ldr r3, [r7, #60] ; 0x3c + 800eb4a: 2b00 cmp r3, #0 + 800eb4c: db04 blt.n 800eb58 *v = value_tmp; - 800ebba: 683b ldr r3, [r7, #0] - 800ebbc: 697a ldr r2, [r7, #20] - 800ebbe: 601a str r2, [r3, #0] + 800eb4e: 683b ldr r3, [r7, #0] + 800eb50: 697a ldr r2, [r7, #20] + 800eb52: 601a str r2, [r3, #0] return true; - 800ebc0: 2301 movs r3, #1 - 800ebc2: e000 b.n 800ebc6 + 800eb54: 2301 movs r3, #1 + 800eb56: e000 b.n 800eb5a } else return false; - 800ebc4: 2300 movs r3, #0 + 800eb58: 2300 movs r3, #0 } - 800ebc6: 4618 mov r0, r3 - 800ebc8: 3740 adds r7, #64 ; 0x40 - 800ebca: 46bd mov sp, r7 - 800ebcc: bd80 pop {r7, pc} + 800eb5a: 4618 mov r0, r3 + 800eb5c: 3740 adds r7, #64 ; 0x40 + 800eb5e: 46bd mov sp, r7 + 800eb60: bd80 pop {r7, pc} -0800ebce : +0800eb62 : static lv_style_value_t apply_color_filter(const lv_obj_t * obj, uint32_t part, lv_style_value_t v) { - 800ebce: b580 push {r7, lr} - 800ebd0: b086 sub sp, #24 - 800ebd2: af00 add r7, sp, #0 - 800ebd4: 60f8 str r0, [r7, #12] - 800ebd6: 60b9 str r1, [r7, #8] - 800ebd8: 607a str r2, [r7, #4] + 800eb62: b580 push {r7, lr} + 800eb64: b086 sub sp, #24 + 800eb66: af00 add r7, sp, #0 + 800eb68: 60f8 str r0, [r7, #12] + 800eb6a: 60b9 str r1, [r7, #8] + 800eb6c: 607a str r2, [r7, #4] if(obj == NULL) return v; - 800ebda: 68fb ldr r3, [r7, #12] - 800ebdc: 2b00 cmp r3, #0 - 800ebde: d101 bne.n 800ebe4 - 800ebe0: 687b ldr r3, [r7, #4] - 800ebe2: e01c b.n 800ec1e + 800eb6e: 68fb ldr r3, [r7, #12] + 800eb70: 2b00 cmp r3, #0 + 800eb72: d101 bne.n 800eb78 + 800eb74: 687b ldr r3, [r7, #4] + 800eb76: e01c b.n 800ebb2 const lv_color_filter_dsc_t * f = lv_obj_get_style_color_filter_dsc(obj, part); - 800ebe4: 68b9 ldr r1, [r7, #8] - 800ebe6: 68f8 ldr r0, [r7, #12] - 800ebe8: f7fe fe44 bl 800d874 - 800ebec: 6178 str r0, [r7, #20] + 800eb78: 68b9 ldr r1, [r7, #8] + 800eb7a: 68f8 ldr r0, [r7, #12] + 800eb7c: f7fe fe44 bl 800d808 + 800eb80: 6178 str r0, [r7, #20] if(f && f->filter_cb) { - 800ebee: 697b ldr r3, [r7, #20] - 800ebf0: 2b00 cmp r3, #0 - 800ebf2: d013 beq.n 800ec1c - 800ebf4: 697b ldr r3, [r7, #20] - 800ebf6: 681b ldr r3, [r3, #0] - 800ebf8: 2b00 cmp r3, #0 - 800ebfa: d00f beq.n 800ec1c + 800eb82: 697b ldr r3, [r7, #20] + 800eb84: 2b00 cmp r3, #0 + 800eb86: d013 beq.n 800ebb0 + 800eb88: 697b ldr r3, [r7, #20] + 800eb8a: 681b ldr r3, [r3, #0] + 800eb8c: 2b00 cmp r3, #0 + 800eb8e: d00f beq.n 800ebb0 lv_opa_t f_opa = lv_obj_get_style_color_filter_opa(obj, part); - 800ebfc: 68b9 ldr r1, [r7, #8] - 800ebfe: 68f8 ldr r0, [r7, #12] - 800ec00: f7fe fe49 bl 800d896 - 800ec04: 4603 mov r3, r0 - 800ec06: 74fb strb r3, [r7, #19] + 800eb90: 68b9 ldr r1, [r7, #8] + 800eb92: 68f8 ldr r0, [r7, #12] + 800eb94: f7fe fe49 bl 800d82a + 800eb98: 4603 mov r3, r0 + 800eb9a: 74fb strb r3, [r7, #19] if(f_opa != 0) v.color = f->filter_cb(f, v.color, f_opa); - 800ec08: 7cfb ldrb r3, [r7, #19] - 800ec0a: 2b00 cmp r3, #0 - 800ec0c: d006 beq.n 800ec1c - 800ec0e: 697b ldr r3, [r7, #20] - 800ec10: 681b ldr r3, [r3, #0] - 800ec12: 7cfa ldrb r2, [r7, #19] - 800ec14: 88b9 ldrh r1, [r7, #4] - 800ec16: 6978 ldr r0, [r7, #20] - 800ec18: 4798 blx r3 - 800ec1a: 80b8 strh r0, [r7, #4] + 800eb9c: 7cfb ldrb r3, [r7, #19] + 800eb9e: 2b00 cmp r3, #0 + 800eba0: d006 beq.n 800ebb0 + 800eba2: 697b ldr r3, [r7, #20] + 800eba4: 681b ldr r3, [r3, #0] + 800eba6: 7cfa ldrb r2, [r7, #19] + 800eba8: 88b9 ldrh r1, [r7, #4] + 800ebaa: 6978 ldr r0, [r7, #20] + 800ebac: 4798 blx r3 + 800ebae: 80b8 strh r0, [r7, #4] } return v; - 800ec1c: 687b ldr r3, [r7, #4] + 800ebb0: 687b ldr r3, [r7, #4] } - 800ec1e: 4618 mov r0, r3 - 800ec20: 3718 adds r7, #24 - 800ec22: 46bd mov sp, r7 - 800ec24: bd80 pop {r7, pc} + 800ebb2: 4618 mov r0, r3 + 800ebb4: 3718 adds r7, #24 + 800ebb6: 46bd mov sp, r7 + 800ebb8: bd80 pop {r7, pc} -0800ec26 : +0800ebba : * Refresh the style of all children of an object. (Called recursively) * @param style refresh objects only with this * @param obj pointer to an object */ static void report_style_change_core(void * style, lv_obj_t * obj) { - 800ec26: b580 push {r7, lr} - 800ec28: b084 sub sp, #16 - 800ec2a: af00 add r7, sp, #0 - 800ec2c: 6078 str r0, [r7, #4] - 800ec2e: 6039 str r1, [r7, #0] + 800ebba: b580 push {r7, lr} + 800ebbc: b084 sub sp, #16 + 800ebbe: af00 add r7, sp, #0 + 800ebc0: 6078 str r0, [r7, #4] + 800ebc2: 6039 str r1, [r7, #0] uint32_t i; for(i = 0; i < obj->style_cnt; i++) { - 800ec30: 2300 movs r3, #0 - 800ec32: 60fb str r3, [r7, #12] - 800ec34: e016 b.n 800ec64 + 800ebc4: 2300 movs r3, #0 + 800ebc6: 60fb str r3, [r7, #12] + 800ebc8: e016 b.n 800ebf8 if(style == NULL || obj->styles[i].style == style) { - 800ec36: 687b ldr r3, [r7, #4] - 800ec38: 2b00 cmp r3, #0 - 800ec3a: d008 beq.n 800ec4e - 800ec3c: 683b ldr r3, [r7, #0] - 800ec3e: 68da ldr r2, [r3, #12] - 800ec40: 68fb ldr r3, [r7, #12] - 800ec42: 00db lsls r3, r3, #3 - 800ec44: 4413 add r3, r2 - 800ec46: 681b ldr r3, [r3, #0] - 800ec48: 687a ldr r2, [r7, #4] - 800ec4a: 429a cmp r2, r3 - 800ec4c: d107 bne.n 800ec5e + 800ebca: 687b ldr r3, [r7, #4] + 800ebcc: 2b00 cmp r3, #0 + 800ebce: d008 beq.n 800ebe2 + 800ebd0: 683b ldr r3, [r7, #0] + 800ebd2: 68da ldr r2, [r3, #12] + 800ebd4: 68fb ldr r3, [r7, #12] + 800ebd6: 00db lsls r3, r3, #3 + 800ebd8: 4413 add r3, r2 + 800ebda: 681b ldr r3, [r3, #0] + 800ebdc: 687a ldr r2, [r7, #4] + 800ebde: 429a cmp r2, r3 + 800ebe0: d107 bne.n 800ebf2 lv_obj_refresh_style(obj, LV_PART_ANY, LV_STYLE_PROP_ANY); - 800ec4e: f64f 72ff movw r2, #65535 ; 0xffff - 800ec52: f44f 2170 mov.w r1, #983040 ; 0xf0000 - 800ec56: 6838 ldr r0, [r7, #0] - 800ec58: f7ff f810 bl 800dc7c + 800ebe2: f64f 72ff movw r2, #65535 ; 0xffff + 800ebe6: f44f 2170 mov.w r1, #983040 ; 0xf0000 + 800ebea: 6838 ldr r0, [r7, #0] + 800ebec: f7ff f810 bl 800dc10 break; - 800ec5c: e00b b.n 800ec76 + 800ebf0: e00b b.n 800ec0a for(i = 0; i < obj->style_cnt; i++) { - 800ec5e: 68fb ldr r3, [r7, #12] - 800ec60: 3301 adds r3, #1 - 800ec62: 60fb str r3, [r7, #12] - 800ec64: 683b ldr r3, [r7, #0] - 800ec66: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800ec68: f3c3 03c5 ubfx r3, r3, #3, #6 - 800ec6c: b2db uxtb r3, r3 - 800ec6e: 461a mov r2, r3 - 800ec70: 68fb ldr r3, [r7, #12] - 800ec72: 4293 cmp r3, r2 - 800ec74: d3df bcc.n 800ec36 + 800ebf2: 68fb ldr r3, [r7, #12] + 800ebf4: 3301 adds r3, #1 + 800ebf6: 60fb str r3, [r7, #12] + 800ebf8: 683b ldr r3, [r7, #0] + 800ebfa: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800ebfc: f3c3 03c5 ubfx r3, r3, #3, #6 + 800ec00: b2db uxtb r3, r3 + 800ec02: 461a mov r2, r3 + 800ec04: 68fb ldr r3, [r7, #12] + 800ec06: 4293 cmp r3, r2 + 800ec08: d3df bcc.n 800ebca } } uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 800ec76: 6838 ldr r0, [r7, #0] - 800ec78: f000 fd8a bl 800f790 - 800ec7c: 60b8 str r0, [r7, #8] + 800ec0a: 6838 ldr r0, [r7, #0] + 800ec0c: f000 fd76 bl 800f6fc + 800ec10: 60b8 str r0, [r7, #8] for(i = 0; i < child_cnt; i++) { - 800ec7e: 2300 movs r3, #0 - 800ec80: 60fb str r3, [r7, #12] - 800ec82: e00d b.n 800eca0 + 800ec12: 2300 movs r3, #0 + 800ec14: 60fb str r3, [r7, #12] + 800ec16: e00d b.n 800ec34 report_style_change_core(style, obj->spec_attr->children[i]); - 800ec84: 683b ldr r3, [r7, #0] - 800ec86: 689b ldr r3, [r3, #8] - 800ec88: 681a ldr r2, [r3, #0] - 800ec8a: 68fb ldr r3, [r7, #12] - 800ec8c: 009b lsls r3, r3, #2 - 800ec8e: 4413 add r3, r2 - 800ec90: 681b ldr r3, [r3, #0] - 800ec92: 4619 mov r1, r3 - 800ec94: 6878 ldr r0, [r7, #4] - 800ec96: f7ff ffc6 bl 800ec26 + 800ec18: 683b ldr r3, [r7, #0] + 800ec1a: 689b ldr r3, [r3, #8] + 800ec1c: 681a ldr r2, [r3, #0] + 800ec1e: 68fb ldr r3, [r7, #12] + 800ec20: 009b lsls r3, r3, #2 + 800ec22: 4413 add r3, r2 + 800ec24: 681b ldr r3, [r3, #0] + 800ec26: 4619 mov r1, r3 + 800ec28: 6878 ldr r0, [r7, #4] + 800ec2a: f7ff ffc6 bl 800ebba for(i = 0; i < child_cnt; i++) { - 800ec9a: 68fb ldr r3, [r7, #12] - 800ec9c: 3301 adds r3, #1 - 800ec9e: 60fb str r3, [r7, #12] - 800eca0: 68fa ldr r2, [r7, #12] - 800eca2: 68bb ldr r3, [r7, #8] - 800eca4: 429a cmp r2, r3 - 800eca6: d3ed bcc.n 800ec84 + 800ec2e: 68fb ldr r3, [r7, #12] + 800ec30: 3301 adds r3, #1 + 800ec32: 60fb str r3, [r7, #12] + 800ec34: 68fa ldr r2, [r7, #12] + 800ec36: 68bb ldr r3, [r7, #8] + 800ec38: 429a cmp r2, r3 + 800ec3a: d3ed bcc.n 800ec18 } } - 800eca8: bf00 nop - 800ecaa: bf00 nop - 800ecac: 3710 adds r7, #16 - 800ecae: 46bd mov sp, r7 - 800ecb0: bd80 pop {r7, pc} + 800ec3c: bf00 nop + 800ec3e: bf00 nop + 800ec40: 3710 adds r7, #16 + 800ec42: 46bd mov sp, r7 + 800ec44: bd80 pop {r7, pc} -0800ecb2 : +0800ec46 : * Recursively refresh the style of the children. Go deeper until a not NULL style is found * because the NULL styles are inherited from the parent * @param obj pointer to an object */ static void refresh_children_style(lv_obj_t * obj) { - 800ecb2: b580 push {r7, lr} - 800ecb4: b086 sub sp, #24 - 800ecb6: af00 add r7, sp, #0 - 800ecb8: 6078 str r0, [r7, #4] + 800ec46: b580 push {r7, lr} + 800ec48: b086 sub sp, #24 + 800ec4a: af00 add r7, sp, #0 + 800ec4c: 6078 str r0, [r7, #4] uint32_t i; uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 800ecba: 6878 ldr r0, [r7, #4] - 800ecbc: f000 fd68 bl 800f790 - 800ecc0: 6138 str r0, [r7, #16] + 800ec4e: 6878 ldr r0, [r7, #4] + 800ec50: f000 fd54 bl 800f6fc + 800ec54: 6138 str r0, [r7, #16] for(i = 0; i < child_cnt; i++) { - 800ecc2: 2300 movs r3, #0 - 800ecc4: 617b str r3, [r7, #20] - 800ecc6: e018 b.n 800ecfa + 800ec56: 2300 movs r3, #0 + 800ec58: 617b str r3, [r7, #20] + 800ec5a: e018 b.n 800ec8e lv_obj_t * child = obj->spec_attr->children[i]; - 800ecc8: 687b ldr r3, [r7, #4] - 800ecca: 689b ldr r3, [r3, #8] - 800eccc: 681a ldr r2, [r3, #0] - 800ecce: 697b ldr r3, [r7, #20] - 800ecd0: 009b lsls r3, r3, #2 - 800ecd2: 4413 add r3, r2 - 800ecd4: 681b ldr r3, [r3, #0] - 800ecd6: 60fb str r3, [r7, #12] + 800ec5c: 687b ldr r3, [r7, #4] + 800ec5e: 689b ldr r3, [r3, #8] + 800ec60: 681a ldr r2, [r3, #0] + 800ec62: 697b ldr r3, [r7, #20] + 800ec64: 009b lsls r3, r3, #2 + 800ec66: 4413 add r3, r2 + 800ec68: 681b ldr r3, [r3, #0] + 800ec6a: 60fb str r3, [r7, #12] lv_obj_invalidate(child); - 800ecd8: 68f8 ldr r0, [r7, #12] - 800ecda: f7fb feea bl 800aab2 + 800ec6c: 68f8 ldr r0, [r7, #12] + 800ec6e: f7fb feea bl 800aa46 lv_event_send(child, LV_EVENT_STYLE_CHANGED, NULL); - 800ecde: 2200 movs r2, #0 - 800ece0: 212a movs r1, #42 ; 0x2a - 800ece2: 68f8 ldr r0, [r7, #12] - 800ece4: f7f3 fbcc bl 8002480 + 800ec72: 2200 movs r2, #0 + 800ec74: 212a movs r1, #42 ; 0x2a + 800ec76: 68f8 ldr r0, [r7, #12] + 800ec78: f7f3 fbcc bl 8002414 lv_obj_invalidate(child); - 800ece8: 68f8 ldr r0, [r7, #12] - 800ecea: f7fb fee2 bl 800aab2 + 800ec7c: 68f8 ldr r0, [r7, #12] + 800ec7e: f7fb fee2 bl 800aa46 refresh_children_style(child); /*Check children too*/ - 800ecee: 68f8 ldr r0, [r7, #12] - 800ecf0: f7ff ffdf bl 800ecb2 + 800ec82: 68f8 ldr r0, [r7, #12] + 800ec84: f7ff ffdf bl 800ec46 for(i = 0; i < child_cnt; i++) { - 800ecf4: 697b ldr r3, [r7, #20] - 800ecf6: 3301 adds r3, #1 - 800ecf8: 617b str r3, [r7, #20] - 800ecfa: 697a ldr r2, [r7, #20] - 800ecfc: 693b ldr r3, [r7, #16] - 800ecfe: 429a cmp r2, r3 - 800ed00: d3e2 bcc.n 800ecc8 + 800ec88: 697b ldr r3, [r7, #20] + 800ec8a: 3301 adds r3, #1 + 800ec8c: 617b str r3, [r7, #20] + 800ec8e: 697a ldr r2, [r7, #20] + 800ec90: 693b ldr r3, [r7, #16] + 800ec92: 429a cmp r2, r3 + 800ec94: d3e2 bcc.n 800ec5c } } - 800ed02: bf00 nop - 800ed04: bf00 nop - 800ed06: 3718 adds r7, #24 - 800ed08: 46bd mov sp, r7 - 800ed0a: bd80 pop {r7, pc} + 800ec96: bf00 nop + 800ec98: bf00 nop + 800ec9a: 3718 adds r7, #24 + 800ec9c: 46bd mov sp, r7 + 800ec9e: bd80 pop {r7, pc} -0800ed0c : +0800eca0 : * @param part a part of object or 0xFF to remove from all parts * @param prop a property or 0xFF to remove all properties * @param tr_limit delete transitions only "older" than this. `NULL` if not used */ static bool trans_del(lv_obj_t * obj, lv_part_t part, lv_style_prop_t prop, trans_t * tr_limit) { - 800ed0c: b580 push {r7, lr} - 800ed0e: b088 sub sp, #32 - 800ed10: af00 add r7, sp, #0 - 800ed12: 60f8 str r0, [r7, #12] - 800ed14: 60b9 str r1, [r7, #8] - 800ed16: 603b str r3, [r7, #0] - 800ed18: 4613 mov r3, r2 - 800ed1a: 80fb strh r3, [r7, #6] + 800eca0: b580 push {r7, lr} + 800eca2: b088 sub sp, #32 + 800eca4: af00 add r7, sp, #0 + 800eca6: 60f8 str r0, [r7, #12] + 800eca8: 60b9 str r1, [r7, #8] + 800ecaa: 603b str r3, [r7, #0] + 800ecac: 4613 mov r3, r2 + 800ecae: 80fb strh r3, [r7, #6] trans_t * tr; trans_t * tr_prev; bool removed = false; - 800ed1c: 2300 movs r3, #0 - 800ed1e: 76fb strb r3, [r7, #27] + 800ecb0: 2300 movs r3, #0 + 800ecb2: 76fb strb r3, [r7, #27] tr = _lv_ll_get_tail(&LV_GC_ROOT(_lv_obj_style_trans_ll)); - 800ed20: 483a ldr r0, [pc, #232] ; (800ee0c ) - 800ed22: f023 fb2b bl 803237c <_lv_ll_get_tail> - 800ed26: 61f8 str r0, [r7, #28] + 800ecb4: 483a ldr r0, [pc, #232] ; (800eda0 ) + 800ecb6: f023 fb17 bl 80322e8 <_lv_ll_get_tail> + 800ecba: 61f8 str r0, [r7, #28] while(tr != NULL) { - 800ed28: e065 b.n 800edf6 + 800ecbc: e065 b.n 800ed8a if(tr == tr_limit) break; - 800ed2a: 69fa ldr r2, [r7, #28] - 800ed2c: 683b ldr r3, [r7, #0] - 800ed2e: 429a cmp r2, r3 - 800ed30: d065 beq.n 800edfe + 800ecbe: 69fa ldr r2, [r7, #28] + 800ecc0: 683b ldr r3, [r7, #0] + 800ecc2: 429a cmp r2, r3 + 800ecc4: d065 beq.n 800ed92 /*'tr' might be deleted, so get the next object while 'tr' is valid*/ tr_prev = _lv_ll_get_prev(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr); - 800ed32: 69f9 ldr r1, [r7, #28] - 800ed34: 4835 ldr r0, [pc, #212] ; (800ee0c ) - 800ed36: f023 fb45 bl 80323c4 <_lv_ll_get_prev> - 800ed3a: 6138 str r0, [r7, #16] + 800ecc6: 69f9 ldr r1, [r7, #28] + 800ecc8: 4835 ldr r0, [pc, #212] ; (800eda0 ) + 800ecca: f023 fb31 bl 8032330 <_lv_ll_get_prev> + 800ecce: 6138 str r0, [r7, #16] if(tr->obj == obj && (part == tr->selector || part == LV_PART_ANY) && (prop == tr->prop || prop == LV_STYLE_PROP_ANY)) { - 800ed3c: 69fb ldr r3, [r7, #28] - 800ed3e: 681b ldr r3, [r3, #0] - 800ed40: 68fa ldr r2, [r7, #12] - 800ed42: 429a cmp r2, r3 - 800ed44: d155 bne.n 800edf2 - 800ed46: 69fb ldr r3, [r7, #28] - 800ed48: 689b ldr r3, [r3, #8] - 800ed4a: 68ba ldr r2, [r7, #8] - 800ed4c: 429a cmp r2, r3 - 800ed4e: d003 beq.n 800ed58 - 800ed50: 68bb ldr r3, [r7, #8] - 800ed52: f5b3 2f70 cmp.w r3, #983040 ; 0xf0000 - 800ed56: d14c bne.n 800edf2 - 800ed58: 69fb ldr r3, [r7, #28] - 800ed5a: 889b ldrh r3, [r3, #4] - 800ed5c: 88fa ldrh r2, [r7, #6] - 800ed5e: 429a cmp r2, r3 - 800ed60: d004 beq.n 800ed6c - 800ed62: 88fb ldrh r3, [r7, #6] - 800ed64: f64f 72ff movw r2, #65535 ; 0xffff - 800ed68: 4293 cmp r3, r2 - 800ed6a: d142 bne.n 800edf2 + 800ecd0: 69fb ldr r3, [r7, #28] + 800ecd2: 681b ldr r3, [r3, #0] + 800ecd4: 68fa ldr r2, [r7, #12] + 800ecd6: 429a cmp r2, r3 + 800ecd8: d155 bne.n 800ed86 + 800ecda: 69fb ldr r3, [r7, #28] + 800ecdc: 689b ldr r3, [r3, #8] + 800ecde: 68ba ldr r2, [r7, #8] + 800ece0: 429a cmp r2, r3 + 800ece2: d003 beq.n 800ecec + 800ece4: 68bb ldr r3, [r7, #8] + 800ece6: f5b3 2f70 cmp.w r3, #983040 ; 0xf0000 + 800ecea: d14c bne.n 800ed86 + 800ecec: 69fb ldr r3, [r7, #28] + 800ecee: 889b ldrh r3, [r3, #4] + 800ecf0: 88fa ldrh r2, [r7, #6] + 800ecf2: 429a cmp r2, r3 + 800ecf4: d004 beq.n 800ed00 + 800ecf6: 88fb ldrh r3, [r7, #6] + 800ecf8: f64f 72ff movw r2, #65535 ; 0xffff + 800ecfc: 4293 cmp r3, r2 + 800ecfe: d142 bne.n 800ed86 /*Remove the transitioned property from trans. style *to allow changing it by normal styles*/ uint32_t i; for(i = 0; i < obj->style_cnt; i++) { - 800ed6c: 2300 movs r3, #0 - 800ed6e: 617b str r3, [r7, #20] - 800ed70: e036 b.n 800ede0 + 800ed00: 2300 movs r3, #0 + 800ed02: 617b str r3, [r7, #20] + 800ed04: e036 b.n 800ed74 if(obj->styles[i].is_trans && (part == LV_PART_ANY || obj->styles[i].selector == part)) { - 800ed72: 68fb ldr r3, [r7, #12] - 800ed74: 68da ldr r2, [r3, #12] - 800ed76: 697b ldr r3, [r7, #20] - 800ed78: 00db lsls r3, r3, #3 - 800ed7a: 4413 add r3, r2 - 800ed7c: 79db ldrb r3, [r3, #7] - 800ed7e: f003 0302 and.w r3, r3, #2 - 800ed82: b2db uxtb r3, r3 - 800ed84: 2b00 cmp r3, #0 - 800ed86: d028 beq.n 800edda - 800ed88: 68bb ldr r3, [r7, #8] - 800ed8a: f5b3 2f70 cmp.w r3, #983040 ; 0xf0000 - 800ed8e: d00b beq.n 800eda8 - 800ed90: 68fb ldr r3, [r7, #12] - 800ed92: 68da ldr r2, [r3, #12] - 800ed94: 697b ldr r3, [r7, #20] - 800ed96: 00db lsls r3, r3, #3 - 800ed98: 4413 add r3, r2 - 800ed9a: 685b ldr r3, [r3, #4] - 800ed9c: f3c3 0317 ubfx r3, r3, #0, #24 - 800eda0: 461a mov r2, r3 - 800eda2: 68bb ldr r3, [r7, #8] - 800eda4: 4293 cmp r3, r2 - 800eda6: d118 bne.n 800edda + 800ed06: 68fb ldr r3, [r7, #12] + 800ed08: 68da ldr r2, [r3, #12] + 800ed0a: 697b ldr r3, [r7, #20] + 800ed0c: 00db lsls r3, r3, #3 + 800ed0e: 4413 add r3, r2 + 800ed10: 79db ldrb r3, [r3, #7] + 800ed12: f003 0302 and.w r3, r3, #2 + 800ed16: b2db uxtb r3, r3 + 800ed18: 2b00 cmp r3, #0 + 800ed1a: d028 beq.n 800ed6e + 800ed1c: 68bb ldr r3, [r7, #8] + 800ed1e: f5b3 2f70 cmp.w r3, #983040 ; 0xf0000 + 800ed22: d00b beq.n 800ed3c + 800ed24: 68fb ldr r3, [r7, #12] + 800ed26: 68da ldr r2, [r3, #12] + 800ed28: 697b ldr r3, [r7, #20] + 800ed2a: 00db lsls r3, r3, #3 + 800ed2c: 4413 add r3, r2 + 800ed2e: 685b ldr r3, [r3, #4] + 800ed30: f3c3 0317 ubfx r3, r3, #0, #24 + 800ed34: 461a mov r2, r3 + 800ed36: 68bb ldr r3, [r7, #8] + 800ed38: 4293 cmp r3, r2 + 800ed3a: d118 bne.n 800ed6e lv_style_remove_prop(obj->styles[i].style, tr->prop); - 800eda8: 68fb ldr r3, [r7, #12] - 800edaa: 68da ldr r2, [r3, #12] - 800edac: 697b ldr r3, [r7, #20] - 800edae: 00db lsls r3, r3, #3 - 800edb0: 4413 add r3, r2 - 800edb2: 681a ldr r2, [r3, #0] - 800edb4: 69fb ldr r3, [r7, #28] - 800edb6: 889b ldrh r3, [r3, #4] - 800edb8: 4619 mov r1, r3 - 800edba: 4610 mov r0, r2 - 800edbc: f025 fa84 bl 80342c8 + 800ed3c: 68fb ldr r3, [r7, #12] + 800ed3e: 68da ldr r2, [r3, #12] + 800ed40: 697b ldr r3, [r7, #20] + 800ed42: 00db lsls r3, r3, #3 + 800ed44: 4413 add r3, r2 + 800ed46: 681a ldr r2, [r3, #0] + 800ed48: 69fb ldr r3, [r7, #28] + 800ed4a: 889b ldrh r3, [r3, #4] + 800ed4c: 4619 mov r1, r3 + 800ed4e: 4610 mov r0, r2 + 800ed50: f025 fa70 bl 8034234 lv_anim_del(tr, NULL); - 800edc0: 2100 movs r1, #0 - 800edc2: 69f8 ldr r0, [r7, #28] - 800edc4: f021 fde2 bl 803098c + 800ed54: 2100 movs r1, #0 + 800ed56: 69f8 ldr r0, [r7, #28] + 800ed58: f021 fdce bl 80308f8 _lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr); - 800edc8: 69f9 ldr r1, [r7, #28] - 800edca: 4810 ldr r0, [pc, #64] ; (800ee0c ) - 800edcc: f023 fa48 bl 8032260 <_lv_ll_remove> + 800ed5c: 69f9 ldr r1, [r7, #28] + 800ed5e: 4810 ldr r0, [pc, #64] ; (800eda0 ) + 800ed60: f023 fa34 bl 80321cc <_lv_ll_remove> lv_mem_free(tr); - 800edd0: 69f8 ldr r0, [r7, #28] - 800edd2: f023 fd83 bl 80328dc + 800ed64: 69f8 ldr r0, [r7, #28] + 800ed66: f023 fd6f bl 8032848 removed = true; - 800edd6: 2301 movs r3, #1 - 800edd8: 76fb strb r3, [r7, #27] + 800ed6a: 2301 movs r3, #1 + 800ed6c: 76fb strb r3, [r7, #27] for(i = 0; i < obj->style_cnt; i++) { - 800edda: 697b ldr r3, [r7, #20] - 800eddc: 3301 adds r3, #1 - 800edde: 617b str r3, [r7, #20] - 800ede0: 68fb ldr r3, [r7, #12] - 800ede2: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800ede4: f3c3 03c5 ubfx r3, r3, #3, #6 - 800ede8: b2db uxtb r3, r3 - 800edea: 461a mov r2, r3 - 800edec: 697b ldr r3, [r7, #20] - 800edee: 4293 cmp r3, r2 - 800edf0: d3bf bcc.n 800ed72 + 800ed6e: 697b ldr r3, [r7, #20] + 800ed70: 3301 adds r3, #1 + 800ed72: 617b str r3, [r7, #20] + 800ed74: 68fb ldr r3, [r7, #12] + 800ed76: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800ed78: f3c3 03c5 ubfx r3, r3, #3, #6 + 800ed7c: b2db uxtb r3, r3 + 800ed7e: 461a mov r2, r3 + 800ed80: 697b ldr r3, [r7, #20] + 800ed82: 4293 cmp r3, r2 + 800ed84: d3bf bcc.n 800ed06 } } } tr = tr_prev; - 800edf2: 693b ldr r3, [r7, #16] - 800edf4: 61fb str r3, [r7, #28] + 800ed86: 693b ldr r3, [r7, #16] + 800ed88: 61fb str r3, [r7, #28] while(tr != NULL) { - 800edf6: 69fb ldr r3, [r7, #28] - 800edf8: 2b00 cmp r3, #0 - 800edfa: d196 bne.n 800ed2a - 800edfc: e000 b.n 800ee00 + 800ed8a: 69fb ldr r3, [r7, #28] + 800ed8c: 2b00 cmp r3, #0 + 800ed8e: d196 bne.n 800ecbe + 800ed90: e000 b.n 800ed94 if(tr == tr_limit) break; - 800edfe: bf00 nop + 800ed92: bf00 nop } return removed; - 800ee00: 7efb ldrb r3, [r7, #27] + 800ed94: 7efb ldrb r3, [r7, #27] } - 800ee02: 4618 mov r0, r3 - 800ee04: 3720 adds r7, #32 - 800ee06: 46bd mov sp, r7 - 800ee08: bd80 pop {r7, pc} - 800ee0a: bf00 nop - 800ee0c: 20001d58 .word 0x20001d58 + 800ed96: 4618 mov r0, r3 + 800ed98: 3720 adds r7, #32 + 800ed9a: 46bd mov sp, r7 + 800ed9c: bd80 pop {r7, pc} + 800ed9e: bf00 nop + 800eda0: 20001d58 .word 0x20001d58 -0800ee10 : +0800eda4 : static void trans_anim_cb(void * _tr, int32_t v) { - 800ee10: b580 push {r7, lr} - 800ee12: b088 sub sp, #32 - 800ee14: af00 add r7, sp, #0 - 800ee16: 6078 str r0, [r7, #4] - 800ee18: 6039 str r1, [r7, #0] + 800eda4: b580 push {r7, lr} + 800eda6: b088 sub sp, #32 + 800eda8: af00 add r7, sp, #0 + 800edaa: 6078 str r0, [r7, #4] + 800edac: 6039 str r1, [r7, #0] trans_t * tr = _tr; - 800ee1a: 687b ldr r3, [r7, #4] - 800ee1c: 617b str r3, [r7, #20] + 800edae: 687b ldr r3, [r7, #4] + 800edb0: 617b str r3, [r7, #20] lv_obj_t * obj = tr->obj; - 800ee1e: 697b ldr r3, [r7, #20] - 800ee20: 681b ldr r3, [r3, #0] - 800ee22: 613b str r3, [r7, #16] + 800edb2: 697b ldr r3, [r7, #20] + 800edb4: 681b ldr r3, [r3, #0] + 800edb6: 613b str r3, [r7, #16] uint32_t i; for(i = 0; i < obj->style_cnt; i++) { - 800ee24: 2300 movs r3, #0 - 800ee26: 61fb str r3, [r7, #28] - 800ee28: e0f3 b.n 800f012 + 800edb8: 2300 movs r3, #0 + 800edba: 61fb str r3, [r7, #28] + 800edbc: e0f3 b.n 800efa6 if(obj->styles[i].is_trans == 0 || obj->styles[i].selector != tr->selector) continue; - 800ee2a: 693b ldr r3, [r7, #16] - 800ee2c: 68da ldr r2, [r3, #12] - 800ee2e: 69fb ldr r3, [r7, #28] - 800ee30: 00db lsls r3, r3, #3 - 800ee32: 4413 add r3, r2 - 800ee34: 79db ldrb r3, [r3, #7] - 800ee36: f003 0302 and.w r3, r3, #2 - 800ee3a: b2db uxtb r3, r3 - 800ee3c: 2b00 cmp r3, #0 - 800ee3e: d00c beq.n 800ee5a - 800ee40: 693b ldr r3, [r7, #16] - 800ee42: 68da ldr r2, [r3, #12] - 800ee44: 69fb ldr r3, [r7, #28] - 800ee46: 00db lsls r3, r3, #3 - 800ee48: 4413 add r3, r2 - 800ee4a: 685b ldr r3, [r3, #4] - 800ee4c: f3c3 0317 ubfx r3, r3, #0, #24 - 800ee50: 461a mov r2, r3 - 800ee52: 697b ldr r3, [r7, #20] - 800ee54: 689b ldr r3, [r3, #8] - 800ee56: 429a cmp r2, r3 - 800ee58: d003 beq.n 800ee62 + 800edbe: 693b ldr r3, [r7, #16] + 800edc0: 68da ldr r2, [r3, #12] + 800edc2: 69fb ldr r3, [r7, #28] + 800edc4: 00db lsls r3, r3, #3 + 800edc6: 4413 add r3, r2 + 800edc8: 79db ldrb r3, [r3, #7] + 800edca: f003 0302 and.w r3, r3, #2 + 800edce: b2db uxtb r3, r3 + 800edd0: 2b00 cmp r3, #0 + 800edd2: d00c beq.n 800edee + 800edd4: 693b ldr r3, [r7, #16] + 800edd6: 68da ldr r2, [r3, #12] + 800edd8: 69fb ldr r3, [r7, #28] + 800edda: 00db lsls r3, r3, #3 + 800eddc: 4413 add r3, r2 + 800edde: 685b ldr r3, [r3, #4] + 800ede0: f3c3 0317 ubfx r3, r3, #0, #24 + 800ede4: 461a mov r2, r3 + 800ede6: 697b ldr r3, [r7, #20] + 800ede8: 689b ldr r3, [r3, #8] + 800edea: 429a cmp r2, r3 + 800edec: d003 beq.n 800edf6 for(i = 0; i < obj->style_cnt; i++) { - 800ee5a: 69fb ldr r3, [r7, #28] - 800ee5c: 3301 adds r3, #1 - 800ee5e: 61fb str r3, [r7, #28] - 800ee60: e0d7 b.n 800f012 + 800edee: 69fb ldr r3, [r7, #28] + 800edf0: 3301 adds r3, #1 + 800edf2: 61fb str r3, [r7, #28] + 800edf4: e0d7 b.n 800efa6 lv_style_value_t value_final; switch(tr->prop) { - 800ee62: 697b ldr r3, [r7, #20] - 800ee64: 889b ldrh r3, [r3, #4] - 800ee66: f241 4259 movw r2, #5209 ; 0x1459 - 800ee6a: 4293 cmp r3, r2 - 800ee6c: d03e beq.n 800eeec - 800ee6e: f241 4259 movw r2, #5209 ; 0x1459 - 800ee72: 4293 cmp r3, r2 - 800ee74: dc78 bgt.n 800ef68 - 800ee76: f240 4257 movw r2, #1111 ; 0x457 - 800ee7a: 4293 cmp r3, r2 - 800ee7c: d05c beq.n 800ef38 - 800ee7e: f5b3 6f8b cmp.w r3, #1112 ; 0x458 - 800ee82: da71 bge.n 800ef68 - 800ee84: 2b68 cmp r3, #104 ; 0x68 - 800ee86: d026 beq.n 800eed6 - 800ee88: 2b68 cmp r3, #104 ; 0x68 - 800ee8a: dc6d bgt.n 800ef68 - 800ee8c: 2b67 cmp r3, #103 ; 0x67 - 800ee8e: d02d beq.n 800eeec - 800ee90: 2b67 cmp r3, #103 ; 0x67 - 800ee92: dc69 bgt.n 800ef68 - 800ee94: 2b63 cmp r3, #99 ; 0x63 - 800ee96: d034 beq.n 800ef02 - 800ee98: 2b63 cmp r3, #99 ; 0x63 - 800ee9a: dc65 bgt.n 800ef68 - 800ee9c: 2b20 cmp r3, #32 - 800ee9e: d04b beq.n 800ef38 - 800eea0: 2b20 cmp r3, #32 - 800eea2: db61 blt.n 800ef68 - 800eea4: 2b47 cmp r3, #71 ; 0x47 - 800eea6: dc5f bgt.n 800ef68 - 800eea8: 2b30 cmp r3, #48 ; 0x30 - 800eeaa: db5d blt.n 800ef68 - 800eeac: 3b30 subs r3, #48 ; 0x30 - 800eeae: 2201 movs r2, #1 - 800eeb0: 409a lsls r2, r3 - 800eeb2: 4b60 ldr r3, [pc, #384] ; (800f034 ) - 800eeb4: 4013 ands r3, r2 - 800eeb6: 2b00 cmp r3, #0 - 800eeb8: bf14 ite ne - 800eeba: 2301 movne r3, #1 - 800eebc: 2300 moveq r3, #0 - 800eebe: b2db uxtb r3, r3 - 800eec0: 2b00 cmp r3, #0 - 800eec2: d139 bne.n 800ef38 - 800eec4: f002 0318 and.w r3, r2, #24 - 800eec8: 2b00 cmp r3, #0 - 800eeca: bf14 ite ne - 800eecc: 2301 movne r3, #1 - 800eece: 2300 moveq r3, #0 - 800eed0: b2db uxtb r3, r3 - 800eed2: 2b00 cmp r3, #0 - 800eed4: d048 beq.n 800ef68 + 800edf6: 697b ldr r3, [r7, #20] + 800edf8: 889b ldrh r3, [r3, #4] + 800edfa: f241 4259 movw r2, #5209 ; 0x1459 + 800edfe: 4293 cmp r3, r2 + 800ee00: d03e beq.n 800ee80 + 800ee02: f241 4259 movw r2, #5209 ; 0x1459 + 800ee06: 4293 cmp r3, r2 + 800ee08: dc78 bgt.n 800eefc + 800ee0a: f240 4257 movw r2, #1111 ; 0x457 + 800ee0e: 4293 cmp r3, r2 + 800ee10: d05c beq.n 800eecc + 800ee12: f5b3 6f8b cmp.w r3, #1112 ; 0x458 + 800ee16: da71 bge.n 800eefc + 800ee18: 2b68 cmp r3, #104 ; 0x68 + 800ee1a: d026 beq.n 800ee6a + 800ee1c: 2b68 cmp r3, #104 ; 0x68 + 800ee1e: dc6d bgt.n 800eefc + 800ee20: 2b67 cmp r3, #103 ; 0x67 + 800ee22: d02d beq.n 800ee80 + 800ee24: 2b67 cmp r3, #103 ; 0x67 + 800ee26: dc69 bgt.n 800eefc + 800ee28: 2b63 cmp r3, #99 ; 0x63 + 800ee2a: d034 beq.n 800ee96 + 800ee2c: 2b63 cmp r3, #99 ; 0x63 + 800ee2e: dc65 bgt.n 800eefc + 800ee30: 2b20 cmp r3, #32 + 800ee32: d04b beq.n 800eecc + 800ee34: 2b20 cmp r3, #32 + 800ee36: db61 blt.n 800eefc + 800ee38: 2b47 cmp r3, #71 ; 0x47 + 800ee3a: dc5f bgt.n 800eefc + 800ee3c: 2b30 cmp r3, #48 ; 0x30 + 800ee3e: db5d blt.n 800eefc + 800ee40: 3b30 subs r3, #48 ; 0x30 + 800ee42: 2201 movs r2, #1 + 800ee44: 409a lsls r2, r3 + 800ee46: 4b60 ldr r3, [pc, #384] ; (800efc8 ) + 800ee48: 4013 ands r3, r2 + 800ee4a: 2b00 cmp r3, #0 + 800ee4c: bf14 ite ne + 800ee4e: 2301 movne r3, #1 + 800ee50: 2300 moveq r3, #0 + 800ee52: b2db uxtb r3, r3 + 800ee54: 2b00 cmp r3, #0 + 800ee56: d139 bne.n 800eecc + 800ee58: f002 0318 and.w r3, r2, #24 + 800ee5c: 2b00 cmp r3, #0 + 800ee5e: bf14 ite ne + 800ee60: 2301 movne r3, #1 + 800ee62: 2300 moveq r3, #0 + 800ee64: b2db uxtb r3, r3 + 800ee66: 2b00 cmp r3, #0 + 800ee68: d048 beq.n 800eefc case LV_STYLE_BORDER_SIDE: case LV_STYLE_BORDER_POST: case LV_STYLE_BLEND_MODE: if(v < 255) value_final.num = tr->start_value.num; - 800eed6: 683b ldr r3, [r7, #0] - 800eed8: 2bfe cmp r3, #254 ; 0xfe - 800eeda: dc03 bgt.n 800eee4 - 800eedc: 697b ldr r3, [r7, #20] - 800eede: 68db ldr r3, [r3, #12] - 800eee0: 60fb str r3, [r7, #12] + 800ee6a: 683b ldr r3, [r7, #0] + 800ee6c: 2bfe cmp r3, #254 ; 0xfe + 800ee6e: dc03 bgt.n 800ee78 + 800ee70: 697b ldr r3, [r7, #20] + 800ee72: 68db ldr r3, [r3, #12] + 800ee74: 60fb str r3, [r7, #12] else value_final.num = tr->end_value.num; break; - 800eee2: e05d b.n 800efa0 + 800ee76: e05d b.n 800ef34 else value_final.num = tr->end_value.num; - 800eee4: 697b ldr r3, [r7, #20] - 800eee6: 691b ldr r3, [r3, #16] - 800eee8: 60fb str r3, [r7, #12] + 800ee78: 697b ldr r3, [r7, #20] + 800ee7a: 691b ldr r3, [r3, #16] + 800ee7c: 60fb str r3, [r7, #12] break; - 800eeea: e059 b.n 800efa0 + 800ee7e: e059 b.n 800ef34 case LV_STYLE_TRANSITION: case LV_STYLE_TEXT_FONT: if(v < 255) value_final.ptr = tr->start_value.ptr; - 800eeec: 683b ldr r3, [r7, #0] - 800eeee: 2bfe cmp r3, #254 ; 0xfe - 800eef0: dc03 bgt.n 800eefa - 800eef2: 697b ldr r3, [r7, #20] - 800eef4: 68db ldr r3, [r3, #12] - 800eef6: 60fb str r3, [r7, #12] + 800ee80: 683b ldr r3, [r7, #0] + 800ee82: 2bfe cmp r3, #254 ; 0xfe + 800ee84: dc03 bgt.n 800ee8e + 800ee86: 697b ldr r3, [r7, #20] + 800ee88: 68db ldr r3, [r3, #12] + 800ee8a: 60fb str r3, [r7, #12] else value_final.ptr = tr->end_value.ptr; break; - 800eef8: e052 b.n 800efa0 + 800ee8c: e052 b.n 800ef34 else value_final.ptr = tr->end_value.ptr; - 800eefa: 697b ldr r3, [r7, #20] - 800eefc: 691b ldr r3, [r3, #16] - 800eefe: 60fb str r3, [r7, #12] + 800ee8e: 697b ldr r3, [r7, #20] + 800ee90: 691b ldr r3, [r3, #16] + 800ee92: 60fb str r3, [r7, #12] break; - 800ef00: e04e b.n 800efa0 + 800ee94: e04e b.n 800ef34 case LV_STYLE_COLOR_FILTER_DSC: if(tr->start_value.ptr == NULL) value_final.ptr = tr->end_value.ptr; - 800ef02: 697b ldr r3, [r7, #20] - 800ef04: 68db ldr r3, [r3, #12] - 800ef06: 2b00 cmp r3, #0 - 800ef08: d103 bne.n 800ef12 - 800ef0a: 697b ldr r3, [r7, #20] - 800ef0c: 691b ldr r3, [r3, #16] - 800ef0e: 60fb str r3, [r7, #12] + 800ee96: 697b ldr r3, [r7, #20] + 800ee98: 68db ldr r3, [r3, #12] + 800ee9a: 2b00 cmp r3, #0 + 800ee9c: d103 bne.n 800eea6 + 800ee9e: 697b ldr r3, [r7, #20] + 800eea0: 691b ldr r3, [r3, #16] + 800eea2: 60fb str r3, [r7, #12] else if(tr->end_value.ptr == NULL) value_final.ptr = tr->start_value.ptr; else if(v < 128) value_final.ptr = tr->start_value.ptr; else value_final.ptr = tr->end_value.ptr; break; - 800ef10: e046 b.n 800efa0 + 800eea4: e046 b.n 800ef34 else if(tr->end_value.ptr == NULL) value_final.ptr = tr->start_value.ptr; - 800ef12: 697b ldr r3, [r7, #20] - 800ef14: 691b ldr r3, [r3, #16] - 800ef16: 2b00 cmp r3, #0 - 800ef18: d103 bne.n 800ef22 - 800ef1a: 697b ldr r3, [r7, #20] - 800ef1c: 68db ldr r3, [r3, #12] - 800ef1e: 60fb str r3, [r7, #12] + 800eea6: 697b ldr r3, [r7, #20] + 800eea8: 691b ldr r3, [r3, #16] + 800eeaa: 2b00 cmp r3, #0 + 800eeac: d103 bne.n 800eeb6 + 800eeae: 697b ldr r3, [r7, #20] + 800eeb0: 68db ldr r3, [r3, #12] + 800eeb2: 60fb str r3, [r7, #12] break; - 800ef20: e03e b.n 800efa0 + 800eeb4: e03e b.n 800ef34 else if(v < 128) value_final.ptr = tr->start_value.ptr; - 800ef22: 683b ldr r3, [r7, #0] - 800ef24: 2b7f cmp r3, #127 ; 0x7f - 800ef26: dc03 bgt.n 800ef30 - 800ef28: 697b ldr r3, [r7, #20] - 800ef2a: 68db ldr r3, [r3, #12] - 800ef2c: 60fb str r3, [r7, #12] + 800eeb6: 683b ldr r3, [r7, #0] + 800eeb8: 2b7f cmp r3, #127 ; 0x7f + 800eeba: dc03 bgt.n 800eec4 + 800eebc: 697b ldr r3, [r7, #20] + 800eebe: 68db ldr r3, [r3, #12] + 800eec0: 60fb str r3, [r7, #12] break; - 800ef2e: e037 b.n 800efa0 + 800eec2: e037 b.n 800ef34 else value_final.ptr = tr->end_value.ptr; - 800ef30: 697b ldr r3, [r7, #20] - 800ef32: 691b ldr r3, [r3, #16] - 800ef34: 60fb str r3, [r7, #12] + 800eec4: 697b ldr r3, [r7, #20] + 800eec6: 691b ldr r3, [r3, #16] + 800eec8: 60fb str r3, [r7, #12] break; - 800ef36: e033 b.n 800efa0 + 800eeca: e033 b.n 800ef34 case LV_STYLE_BORDER_COLOR: case LV_STYLE_TEXT_COLOR: case LV_STYLE_SHADOW_COLOR: case LV_STYLE_OUTLINE_COLOR: case LV_STYLE_IMG_RECOLOR: if(v <= 0) value_final.color = tr->start_value.color; - 800ef38: 683b ldr r3, [r7, #0] - 800ef3a: 2b00 cmp r3, #0 - 800ef3c: dc03 bgt.n 800ef46 - 800ef3e: 697b ldr r3, [r7, #20] - 800ef40: 899b ldrh r3, [r3, #12] - 800ef42: 81bb strh r3, [r7, #12] + 800eecc: 683b ldr r3, [r7, #0] + 800eece: 2b00 cmp r3, #0 + 800eed0: dc03 bgt.n 800eeda + 800eed2: 697b ldr r3, [r7, #20] + 800eed4: 899b ldrh r3, [r3, #12] + 800eed6: 81bb strh r3, [r7, #12] else if(v >= 255) value_final.color = tr->end_value.color; else value_final.color = lv_color_mix(tr->end_value.color, tr->start_value.color, v); break; - 800ef44: e02c b.n 800efa0 + 800eed8: e02c b.n 800ef34 else if(v >= 255) value_final.color = tr->end_value.color; - 800ef46: 683b ldr r3, [r7, #0] - 800ef48: 2bfe cmp r3, #254 ; 0xfe - 800ef4a: dd03 ble.n 800ef54 - 800ef4c: 697b ldr r3, [r7, #20] - 800ef4e: 8a1b ldrh r3, [r3, #16] - 800ef50: 81bb strh r3, [r7, #12] + 800eeda: 683b ldr r3, [r7, #0] + 800eedc: 2bfe cmp r3, #254 ; 0xfe + 800eede: dd03 ble.n 800eee8 + 800eee0: 697b ldr r3, [r7, #20] + 800eee2: 8a1b ldrh r3, [r3, #16] + 800eee4: 81bb strh r3, [r7, #12] break; - 800ef52: e025 b.n 800efa0 + 800eee6: e025 b.n 800ef34 else value_final.color = lv_color_mix(tr->end_value.color, tr->start_value.color, v); - 800ef54: 683b ldr r3, [r7, #0] - 800ef56: b2da uxtb r2, r3 - 800ef58: 6979 ldr r1, [r7, #20] - 800ef5a: 697b ldr r3, [r7, #20] - 800ef5c: 8989 ldrh r1, [r1, #12] - 800ef5e: 8a18 ldrh r0, [r3, #16] - 800ef60: f7fe fb82 bl 800d668 - 800ef64: 81b8 strh r0, [r7, #12] + 800eee8: 683b ldr r3, [r7, #0] + 800eeea: b2da uxtb r2, r3 + 800eeec: 6979 ldr r1, [r7, #20] + 800eeee: 697b ldr r3, [r7, #20] + 800eef0: 8989 ldrh r1, [r1, #12] + 800eef2: 8a18 ldrh r0, [r3, #16] + 800eef4: f7fe fb82 bl 800d5fc + 800eef8: 81b8 strh r0, [r7, #12] break; - 800ef66: e01b b.n 800efa0 + 800eefa: e01b b.n 800ef34 default: if(v == 0) value_final.num = tr->start_value.num; - 800ef68: 683b ldr r3, [r7, #0] - 800ef6a: 2b00 cmp r3, #0 - 800ef6c: d103 bne.n 800ef76 - 800ef6e: 697b ldr r3, [r7, #20] - 800ef70: 68db ldr r3, [r3, #12] - 800ef72: 60fb str r3, [r7, #12] + 800eefc: 683b ldr r3, [r7, #0] + 800eefe: 2b00 cmp r3, #0 + 800ef00: d103 bne.n 800ef0a + 800ef02: 697b ldr r3, [r7, #20] + 800ef04: 68db ldr r3, [r3, #12] + 800ef06: 60fb str r3, [r7, #12] else if(v == 255) value_final.num = tr->end_value.num; else value_final.num = tr->start_value.num + ((int32_t)((int32_t)(tr->end_value.num - tr->start_value.num) * v) >> 8); break; - 800ef74: e013 b.n 800ef9e + 800ef08: e013 b.n 800ef32 else if(v == 255) value_final.num = tr->end_value.num; - 800ef76: 683b ldr r3, [r7, #0] - 800ef78: 2bff cmp r3, #255 ; 0xff - 800ef7a: d103 bne.n 800ef84 - 800ef7c: 697b ldr r3, [r7, #20] - 800ef7e: 691b ldr r3, [r3, #16] - 800ef80: 60fb str r3, [r7, #12] + 800ef0a: 683b ldr r3, [r7, #0] + 800ef0c: 2bff cmp r3, #255 ; 0xff + 800ef0e: d103 bne.n 800ef18 + 800ef10: 697b ldr r3, [r7, #20] + 800ef12: 691b ldr r3, [r3, #16] + 800ef14: 60fb str r3, [r7, #12] break; - 800ef82: e00c b.n 800ef9e + 800ef16: e00c b.n 800ef32 else value_final.num = tr->start_value.num + ((int32_t)((int32_t)(tr->end_value.num - tr->start_value.num) * v) >> 8); - 800ef84: 697b ldr r3, [r7, #20] - 800ef86: 68da ldr r2, [r3, #12] - 800ef88: 697b ldr r3, [r7, #20] - 800ef8a: 6919 ldr r1, [r3, #16] - 800ef8c: 697b ldr r3, [r7, #20] - 800ef8e: 68db ldr r3, [r3, #12] - 800ef90: 1acb subs r3, r1, r3 - 800ef92: 6839 ldr r1, [r7, #0] - 800ef94: fb01 f303 mul.w r3, r1, r3 - 800ef98: 121b asrs r3, r3, #8 - 800ef9a: 4413 add r3, r2 - 800ef9c: 60fb str r3, [r7, #12] + 800ef18: 697b ldr r3, [r7, #20] + 800ef1a: 68da ldr r2, [r3, #12] + 800ef1c: 697b ldr r3, [r7, #20] + 800ef1e: 6919 ldr r1, [r3, #16] + 800ef20: 697b ldr r3, [r7, #20] + 800ef22: 68db ldr r3, [r3, #12] + 800ef24: 1acb subs r3, r1, r3 + 800ef26: 6839 ldr r1, [r7, #0] + 800ef28: fb01 f303 mul.w r3, r1, r3 + 800ef2c: 121b asrs r3, r3, #8 + 800ef2e: 4413 add r3, r2 + 800ef30: 60fb str r3, [r7, #12] break; - 800ef9e: bf00 nop + 800ef32: bf00 nop } lv_style_value_t old_value; bool refr = true; - 800efa0: 2301 movs r3, #1 - 800efa2: 76fb strb r3, [r7, #27] + 800ef34: 2301 movs r3, #1 + 800ef36: 76fb strb r3, [r7, #27] if(lv_style_get_prop(obj->styles[i].style, tr->prop, &old_value)) { - 800efa4: 693b ldr r3, [r7, #16] - 800efa6: 68da ldr r2, [r3, #12] - 800efa8: 69fb ldr r3, [r7, #28] - 800efaa: 00db lsls r3, r3, #3 - 800efac: 4413 add r3, r2 - 800efae: 6818 ldr r0, [r3, #0] - 800efb0: 697b ldr r3, [r7, #20] - 800efb2: 889b ldrh r3, [r3, #4] - 800efb4: f107 0208 add.w r2, r7, #8 - 800efb8: 4619 mov r1, r3 - 800efba: f025 fb61 bl 8034680 - 800efbe: 4603 mov r3, r0 - 800efc0: 2b00 cmp r3, #0 - 800efc2: d00d beq.n 800efe0 + 800ef38: 693b ldr r3, [r7, #16] + 800ef3a: 68da ldr r2, [r3, #12] + 800ef3c: 69fb ldr r3, [r7, #28] + 800ef3e: 00db lsls r3, r3, #3 + 800ef40: 4413 add r3, r2 + 800ef42: 6818 ldr r0, [r3, #0] + 800ef44: 697b ldr r3, [r7, #20] + 800ef46: 889b ldrh r3, [r3, #4] + 800ef48: f107 0208 add.w r2, r7, #8 + 800ef4c: 4619 mov r1, r3 + 800ef4e: f025 fb4d bl 80345ec + 800ef52: 4603 mov r3, r0 + 800ef54: 2b00 cmp r3, #0 + 800ef56: d00d beq.n 800ef74 if(value_final.ptr == old_value.ptr && value_final.color.full == old_value.color.full && - 800efc4: 68fa ldr r2, [r7, #12] - 800efc6: 68bb ldr r3, [r7, #8] - 800efc8: 429a cmp r2, r3 - 800efca: d109 bne.n 800efe0 - 800efcc: 89ba ldrh r2, [r7, #12] - 800efce: 893b ldrh r3, [r7, #8] - 800efd0: 429a cmp r2, r3 - 800efd2: d105 bne.n 800efe0 + 800ef58: 68fa ldr r2, [r7, #12] + 800ef5a: 68bb ldr r3, [r7, #8] + 800ef5c: 429a cmp r2, r3 + 800ef5e: d109 bne.n 800ef74 + 800ef60: 89ba ldrh r2, [r7, #12] + 800ef62: 893b ldrh r3, [r7, #8] + 800ef64: 429a cmp r2, r3 + 800ef66: d105 bne.n 800ef74 value_final.num == old_value.num) { - 800efd4: 68fa ldr r2, [r7, #12] - 800efd6: 68bb ldr r3, [r7, #8] + 800ef68: 68fa ldr r2, [r7, #12] + 800ef6a: 68bb ldr r3, [r7, #8] if(value_final.ptr == old_value.ptr && value_final.color.full == old_value.color.full && - 800efd8: 429a cmp r2, r3 - 800efda: d101 bne.n 800efe0 + 800ef6c: 429a cmp r2, r3 + 800ef6e: d101 bne.n 800ef74 refr = false; - 800efdc: 2300 movs r3, #0 - 800efde: 76fb strb r3, [r7, #27] + 800ef70: 2300 movs r3, #0 + 800ef72: 76fb strb r3, [r7, #27] } } lv_style_set_prop(obj->styles[i].style, tr->prop, value_final); - 800efe0: 693b ldr r3, [r7, #16] - 800efe2: 68da ldr r2, [r3, #12] - 800efe4: 69fb ldr r3, [r7, #28] - 800efe6: 00db lsls r3, r3, #3 - 800efe8: 4413 add r3, r2 - 800efea: 6818 ldr r0, [r3, #0] - 800efec: 697b ldr r3, [r7, #20] - 800efee: 889b ldrh r3, [r3, #4] - 800eff0: 68fa ldr r2, [r7, #12] - 800eff2: 4619 mov r1, r3 - 800eff4: f025 fa3b bl 803446e + 800ef74: 693b ldr r3, [r7, #16] + 800ef76: 68da ldr r2, [r3, #12] + 800ef78: 69fb ldr r3, [r7, #28] + 800ef7a: 00db lsls r3, r3, #3 + 800ef7c: 4413 add r3, r2 + 800ef7e: 6818 ldr r0, [r3, #0] + 800ef80: 697b ldr r3, [r7, #20] + 800ef82: 889b ldrh r3, [r3, #4] + 800ef84: 68fa ldr r2, [r7, #12] + 800ef86: 4619 mov r1, r3 + 800ef88: f025 fa27 bl 80343da if(refr) lv_obj_refresh_style(tr->obj, tr->selector, tr->prop); - 800eff8: 7efb ldrb r3, [r7, #27] - 800effa: 2b00 cmp r3, #0 - 800effc: d014 beq.n 800f028 - 800effe: 697b ldr r3, [r7, #20] - 800f000: 6818 ldr r0, [r3, #0] - 800f002: 697b ldr r3, [r7, #20] - 800f004: 6899 ldr r1, [r3, #8] - 800f006: 697b ldr r3, [r7, #20] - 800f008: 889b ldrh r3, [r3, #4] - 800f00a: 461a mov r2, r3 - 800f00c: f7fe fe36 bl 800dc7c + 800ef8c: 7efb ldrb r3, [r7, #27] + 800ef8e: 2b00 cmp r3, #0 + 800ef90: d014 beq.n 800efbc + 800ef92: 697b ldr r3, [r7, #20] + 800ef94: 6818 ldr r0, [r3, #0] + 800ef96: 697b ldr r3, [r7, #20] + 800ef98: 6899 ldr r1, [r3, #8] + 800ef9a: 697b ldr r3, [r7, #20] + 800ef9c: 889b ldrh r3, [r3, #4] + 800ef9e: 461a mov r2, r3 + 800efa0: f7fe fe36 bl 800dc10 break; } } - 800f010: e00b b.n 800f02a + 800efa4: e00b b.n 800efbe for(i = 0; i < obj->style_cnt; i++) { - 800f012: 693b ldr r3, [r7, #16] - 800f014: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800f016: f3c3 03c5 ubfx r3, r3, #3, #6 - 800f01a: b2db uxtb r3, r3 - 800f01c: 461a mov r2, r3 - 800f01e: 69fb ldr r3, [r7, #28] - 800f020: 4293 cmp r3, r2 - 800f022: f4ff af02 bcc.w 800ee2a + 800efa6: 693b ldr r3, [r7, #16] + 800efa8: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800efaa: f3c3 03c5 ubfx r3, r3, #3, #6 + 800efae: b2db uxtb r3, r3 + 800efb0: 461a mov r2, r3 + 800efb2: 69fb ldr r3, [r7, #28] + 800efb4: 4293 cmp r3, r2 + 800efb6: f4ff af02 bcc.w 800edbe } - 800f026: e000 b.n 800f02a + 800efba: e000 b.n 800efbe break; - 800f028: bf00 nop + 800efbc: bf00 nop } - 800f02a: bf00 nop - 800f02c: 3720 adds r7, #32 - 800f02e: 46bd mov sp, r7 - 800f030: bd80 pop {r7, pc} - 800f032: bf00 nop - 800f034: 00900801 .word 0x00900801 + 800efbe: bf00 nop + 800efc0: 3720 adds r7, #32 + 800efc2: 46bd mov sp, r7 + 800efc4: bd80 pop {r7, pc} + 800efc6: bf00 nop + 800efc8: 00900801 .word 0x00900801 -0800f038 : +0800efcc : static void trans_anim_start_cb(lv_anim_t * a) { - 800f038: b590 push {r4, r7, lr} - 800f03a: b087 sub sp, #28 - 800f03c: af00 add r7, sp, #0 - 800f03e: 6078 str r0, [r7, #4] + 800efcc: b590 push {r4, r7, lr} + 800efce: b087 sub sp, #28 + 800efd0: af00 add r7, sp, #0 + 800efd2: 6078 str r0, [r7, #4] trans_t * tr = a->var; - 800f040: 687b ldr r3, [r7, #4] - 800f042: 681b ldr r3, [r3, #0] - 800f044: 617b str r3, [r7, #20] + 800efd4: 687b ldr r3, [r7, #4] + 800efd6: 681b ldr r3, [r3, #0] + 800efd8: 617b str r3, [r7, #20] lv_part_t part = lv_obj_style_get_selector_part(tr->selector); - 800f046: 697b ldr r3, [r7, #20] - 800f048: 689b ldr r3, [r3, #8] - 800f04a: 4618 mov r0, r3 - 800f04c: f7ff fb2c bl 800e6a8 - 800f050: 6138 str r0, [r7, #16] + 800efda: 697b ldr r3, [r7, #20] + 800efdc: 689b ldr r3, [r3, #8] + 800efde: 4618 mov r0, r3 + 800efe0: f7ff fb2c bl 800e63c + 800efe4: 6138 str r0, [r7, #16] tr->start_value = lv_obj_get_style_prop(tr->obj, part, tr->prop); - 800f052: 697b ldr r3, [r7, #20] - 800f054: 6818 ldr r0, [r3, #0] - 800f056: 697b ldr r3, [r7, #20] - 800f058: 889b ldrh r3, [r3, #4] - 800f05a: 697c ldr r4, [r7, #20] - 800f05c: 461a mov r2, r3 - 800f05e: 6939 ldr r1, [r7, #16] - 800f060: f7fe fea6 bl 800ddb0 - 800f064: 60e0 str r0, [r4, #12] + 800efe6: 697b ldr r3, [r7, #20] + 800efe8: 6818 ldr r0, [r3, #0] + 800efea: 697b ldr r3, [r7, #20] + 800efec: 889b ldrh r3, [r3, #4] + 800efee: 697c ldr r4, [r7, #20] + 800eff0: 461a mov r2, r3 + 800eff2: 6939 ldr r1, [r7, #16] + 800eff4: f7fe fea6 bl 800dd44 + 800eff8: 60e0 str r0, [r4, #12] /*Init prop to an invalid values to be sure `trans_del` won't delete this added `tr`*/ lv_style_prop_t prop_tmp = tr->prop; - 800f066: 697b ldr r3, [r7, #20] - 800f068: 889b ldrh r3, [r3, #4] - 800f06a: 81fb strh r3, [r7, #14] + 800effa: 697b ldr r3, [r7, #20] + 800effc: 889b ldrh r3, [r3, #4] + 800effe: 81fb strh r3, [r7, #14] tr->prop = LV_STYLE_PROP_INV; - 800f06c: 697b ldr r3, [r7, #20] - 800f06e: 2200 movs r2, #0 - 800f070: 809a strh r2, [r3, #4] + 800f000: 697b ldr r3, [r7, #20] + 800f002: 2200 movs r2, #0 + 800f004: 809a strh r2, [r3, #4] /*Delete the related transitions if any*/ trans_del(tr->obj, part, prop_tmp, tr); - 800f072: 697b ldr r3, [r7, #20] - 800f074: 6818 ldr r0, [r3, #0] - 800f076: 89fa ldrh r2, [r7, #14] - 800f078: 697b ldr r3, [r7, #20] - 800f07a: 6939 ldr r1, [r7, #16] - 800f07c: f7ff fe46 bl 800ed0c + 800f006: 697b ldr r3, [r7, #20] + 800f008: 6818 ldr r0, [r3, #0] + 800f00a: 89fa ldrh r2, [r7, #14] + 800f00c: 697b ldr r3, [r7, #20] + 800f00e: 6939 ldr r1, [r7, #16] + 800f010: f7ff fe46 bl 800eca0 tr->prop = prop_tmp; - 800f080: 697b ldr r3, [r7, #20] - 800f082: 89fa ldrh r2, [r7, #14] - 800f084: 809a strh r2, [r3, #4] + 800f014: 697b ldr r3, [r7, #20] + 800f016: 89fa ldrh r2, [r7, #14] + 800f018: 809a strh r2, [r3, #4] _lv_obj_style_t * style_trans = get_trans_style(tr->obj, tr->selector); - 800f086: 697b ldr r3, [r7, #20] - 800f088: 681a ldr r2, [r3, #0] - 800f08a: 697b ldr r3, [r7, #20] - 800f08c: 689b ldr r3, [r3, #8] - 800f08e: 4619 mov r1, r3 - 800f090: 4610 mov r0, r2 - 800f092: f7ff fbff bl 800e894 - 800f096: 60b8 str r0, [r7, #8] + 800f01a: 697b ldr r3, [r7, #20] + 800f01c: 681a ldr r2, [r3, #0] + 800f01e: 697b ldr r3, [r7, #20] + 800f020: 689b ldr r3, [r3, #8] + 800f022: 4619 mov r1, r3 + 800f024: 4610 mov r0, r2 + 800f026: f7ff fbff bl 800e828 + 800f02a: 60b8 str r0, [r7, #8] lv_style_set_prop(style_trans->style, tr->prop, tr->start_value); /*Be sure `trans_style` has a valid value*/ - 800f098: 68bb ldr r3, [r7, #8] - 800f09a: 6818 ldr r0, [r3, #0] - 800f09c: 697b ldr r3, [r7, #20] - 800f09e: 8899 ldrh r1, [r3, #4] - 800f0a0: 697b ldr r3, [r7, #20] - 800f0a2: 68da ldr r2, [r3, #12] - 800f0a4: f025 f9e3 bl 803446e + 800f02c: 68bb ldr r3, [r7, #8] + 800f02e: 6818 ldr r0, [r3, #0] + 800f030: 697b ldr r3, [r7, #20] + 800f032: 8899 ldrh r1, [r3, #4] + 800f034: 697b ldr r3, [r7, #20] + 800f036: 68da ldr r2, [r3, #12] + 800f038: f025 f9cf bl 80343da } - 800f0a8: bf00 nop - 800f0aa: 371c adds r7, #28 - 800f0ac: 46bd mov sp, r7 - 800f0ae: bd90 pop {r4, r7, pc} + 800f03c: bf00 nop + 800f03e: 371c adds r7, #28 + 800f040: 46bd mov sp, r7 + 800f042: bd90 pop {r4, r7, pc} -0800f0b0 : +0800f044 : static void trans_anim_ready_cb(lv_anim_t * a) { - 800f0b0: b580 push {r7, lr} - 800f0b2: b08a sub sp, #40 ; 0x28 - 800f0b4: af00 add r7, sp, #0 - 800f0b6: 6078 str r0, [r7, #4] + 800f044: b580 push {r7, lr} + 800f046: b08a sub sp, #40 ; 0x28 + 800f048: af00 add r7, sp, #0 + 800f04a: 6078 str r0, [r7, #4] trans_t * tr = a->var; - 800f0b8: 687b ldr r3, [r7, #4] - 800f0ba: 681b ldr r3, [r3, #0] - 800f0bc: 61bb str r3, [r7, #24] + 800f04c: 687b ldr r3, [r7, #4] + 800f04e: 681b ldr r3, [r3, #0] + 800f050: 61bb str r3, [r7, #24] lv_obj_t * obj = tr->obj; - 800f0be: 69bb ldr r3, [r7, #24] - 800f0c0: 681b ldr r3, [r3, #0] - 800f0c2: 617b str r3, [r7, #20] + 800f052: 69bb ldr r3, [r7, #24] + 800f054: 681b ldr r3, [r3, #0] + 800f056: 617b str r3, [r7, #20] lv_style_prop_t prop = tr->prop; - 800f0c4: 69bb ldr r3, [r7, #24] - 800f0c6: 889b ldrh r3, [r3, #4] - 800f0c8: 827b strh r3, [r7, #18] + 800f058: 69bb ldr r3, [r7, #24] + 800f05a: 889b ldrh r3, [r3, #4] + 800f05c: 827b strh r3, [r7, #18] /*Remove the transitioned property from trans. style *if there no more transitions for this property *It allows changing it by normal styles*/ bool running = false; - 800f0ca: 2300 movs r3, #0 - 800f0cc: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 800f05e: 2300 movs r3, #0 + 800f060: f887 3027 strb.w r3, [r7, #39] ; 0x27 trans_t * tr_i; _LV_LL_READ(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) { - 800f0d0: 4842 ldr r0, [pc, #264] ; (800f1dc ) - 800f0d2: f023 f943 bl 803235c <_lv_ll_get_head> - 800f0d6: 6238 str r0, [r7, #32] - 800f0d8: e01e b.n 800f118 + 800f064: 4842 ldr r0, [pc, #264] ; (800f170 ) + 800f066: f023 f92f bl 80322c8 <_lv_ll_get_head> + 800f06a: 6238 str r0, [r7, #32] + 800f06c: e01e b.n 800f0ac if(tr_i != tr && tr_i->obj == tr->obj && tr_i->selector == tr->selector && tr_i->prop == tr->prop) { - 800f0da: 6a3a ldr r2, [r7, #32] - 800f0dc: 69bb ldr r3, [r7, #24] - 800f0de: 429a cmp r2, r3 - 800f0e0: d015 beq.n 800f10e - 800f0e2: 6a3b ldr r3, [r7, #32] - 800f0e4: 681a ldr r2, [r3, #0] - 800f0e6: 69bb ldr r3, [r7, #24] - 800f0e8: 681b ldr r3, [r3, #0] - 800f0ea: 429a cmp r2, r3 - 800f0ec: d10f bne.n 800f10e - 800f0ee: 6a3b ldr r3, [r7, #32] - 800f0f0: 689a ldr r2, [r3, #8] - 800f0f2: 69bb ldr r3, [r7, #24] - 800f0f4: 689b ldr r3, [r3, #8] - 800f0f6: 429a cmp r2, r3 - 800f0f8: d109 bne.n 800f10e - 800f0fa: 6a3b ldr r3, [r7, #32] - 800f0fc: 889a ldrh r2, [r3, #4] - 800f0fe: 69bb ldr r3, [r7, #24] - 800f100: 889b ldrh r3, [r3, #4] - 800f102: 429a cmp r2, r3 - 800f104: d103 bne.n 800f10e + 800f06e: 6a3a ldr r2, [r7, #32] + 800f070: 69bb ldr r3, [r7, #24] + 800f072: 429a cmp r2, r3 + 800f074: d015 beq.n 800f0a2 + 800f076: 6a3b ldr r3, [r7, #32] + 800f078: 681a ldr r2, [r3, #0] + 800f07a: 69bb ldr r3, [r7, #24] + 800f07c: 681b ldr r3, [r3, #0] + 800f07e: 429a cmp r2, r3 + 800f080: d10f bne.n 800f0a2 + 800f082: 6a3b ldr r3, [r7, #32] + 800f084: 689a ldr r2, [r3, #8] + 800f086: 69bb ldr r3, [r7, #24] + 800f088: 689b ldr r3, [r3, #8] + 800f08a: 429a cmp r2, r3 + 800f08c: d109 bne.n 800f0a2 + 800f08e: 6a3b ldr r3, [r7, #32] + 800f090: 889a ldrh r2, [r3, #4] + 800f092: 69bb ldr r3, [r7, #24] + 800f094: 889b ldrh r3, [r3, #4] + 800f096: 429a cmp r2, r3 + 800f098: d103 bne.n 800f0a2 running = true; - 800f106: 2301 movs r3, #1 - 800f108: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 800f09a: 2301 movs r3, #1 + 800f09c: f887 3027 strb.w r3, [r7, #39] ; 0x27 break; - 800f10c: e007 b.n 800f11e + 800f0a0: e007 b.n 800f0b2 _LV_LL_READ(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) { - 800f10e: 6a39 ldr r1, [r7, #32] - 800f110: 4832 ldr r0, [pc, #200] ; (800f1dc ) - 800f112: f023 f943 bl 803239c <_lv_ll_get_next> - 800f116: 6238 str r0, [r7, #32] - 800f118: 6a3b ldr r3, [r7, #32] - 800f11a: 2b00 cmp r3, #0 - 800f11c: d1dd bne.n 800f0da + 800f0a2: 6a39 ldr r1, [r7, #32] + 800f0a4: 4832 ldr r0, [pc, #200] ; (800f170 ) + 800f0a6: f023 f92f bl 8032308 <_lv_ll_get_next> + 800f0aa: 6238 str r0, [r7, #32] + 800f0ac: 6a3b ldr r3, [r7, #32] + 800f0ae: 2b00 cmp r3, #0 + 800f0b0: d1dd bne.n 800f06e } } if(!running) { - 800f11e: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 800f122: f083 0301 eor.w r3, r3, #1 - 800f126: b2db uxtb r3, r3 - 800f128: 2b00 cmp r3, #0 - 800f12a: d053 beq.n 800f1d4 + 800f0b2: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 800f0b6: f083 0301 eor.w r3, r3, #1 + 800f0ba: b2db uxtb r3, r3 + 800f0bc: 2b00 cmp r3, #0 + 800f0be: d053 beq.n 800f168 uint32_t i; for(i = 0; i < obj->style_cnt; i++) { - 800f12c: 2300 movs r3, #0 - 800f12e: 61fb str r3, [r7, #28] - 800f130: e045 b.n 800f1be + 800f0c0: 2300 movs r3, #0 + 800f0c2: 61fb str r3, [r7, #28] + 800f0c4: e045 b.n 800f152 if(obj->styles[i].is_trans && obj->styles[i].selector == tr->selector) { - 800f132: 697b ldr r3, [r7, #20] - 800f134: 68da ldr r2, [r3, #12] - 800f136: 69fb ldr r3, [r7, #28] - 800f138: 00db lsls r3, r3, #3 - 800f13a: 4413 add r3, r2 - 800f13c: 79db ldrb r3, [r3, #7] - 800f13e: f003 0302 and.w r3, r3, #2 - 800f142: b2db uxtb r3, r3 - 800f144: 2b00 cmp r3, #0 - 800f146: d037 beq.n 800f1b8 - 800f148: 697b ldr r3, [r7, #20] - 800f14a: 68da ldr r2, [r3, #12] - 800f14c: 69fb ldr r3, [r7, #28] - 800f14e: 00db lsls r3, r3, #3 - 800f150: 4413 add r3, r2 - 800f152: 685b ldr r3, [r3, #4] - 800f154: f3c3 0317 ubfx r3, r3, #0, #24 - 800f158: 461a mov r2, r3 - 800f15a: 69bb ldr r3, [r7, #24] - 800f15c: 689b ldr r3, [r3, #8] - 800f15e: 429a cmp r2, r3 - 800f160: d12a bne.n 800f1b8 + 800f0c6: 697b ldr r3, [r7, #20] + 800f0c8: 68da ldr r2, [r3, #12] + 800f0ca: 69fb ldr r3, [r7, #28] + 800f0cc: 00db lsls r3, r3, #3 + 800f0ce: 4413 add r3, r2 + 800f0d0: 79db ldrb r3, [r3, #7] + 800f0d2: f003 0302 and.w r3, r3, #2 + 800f0d6: b2db uxtb r3, r3 + 800f0d8: 2b00 cmp r3, #0 + 800f0da: d037 beq.n 800f14c + 800f0dc: 697b ldr r3, [r7, #20] + 800f0de: 68da ldr r2, [r3, #12] + 800f0e0: 69fb ldr r3, [r7, #28] + 800f0e2: 00db lsls r3, r3, #3 + 800f0e4: 4413 add r3, r2 + 800f0e6: 685b ldr r3, [r3, #4] + 800f0e8: f3c3 0317 ubfx r3, r3, #0, #24 + 800f0ec: 461a mov r2, r3 + 800f0ee: 69bb ldr r3, [r7, #24] + 800f0f0: 689b ldr r3, [r3, #8] + 800f0f2: 429a cmp r2, r3 + 800f0f4: d12a bne.n 800f14c _lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr); - 800f162: 69b9 ldr r1, [r7, #24] - 800f164: 481d ldr r0, [pc, #116] ; (800f1dc ) - 800f166: f023 f87b bl 8032260 <_lv_ll_remove> + 800f0f6: 69b9 ldr r1, [r7, #24] + 800f0f8: 481d ldr r0, [pc, #116] ; (800f170 ) + 800f0fa: f023 f867 bl 80321cc <_lv_ll_remove> lv_mem_free(tr); - 800f16a: 69b8 ldr r0, [r7, #24] - 800f16c: f023 fbb6 bl 80328dc + 800f0fe: 69b8 ldr r0, [r7, #24] + 800f100: f023 fba2 bl 8032848 _lv_obj_style_t * obj_style = &obj->styles[i]; - 800f170: 697b ldr r3, [r7, #20] - 800f172: 68da ldr r2, [r3, #12] - 800f174: 69fb ldr r3, [r7, #28] - 800f176: 00db lsls r3, r3, #3 - 800f178: 4413 add r3, r2 - 800f17a: 60fb str r3, [r7, #12] + 800f104: 697b ldr r3, [r7, #20] + 800f106: 68da ldr r2, [r3, #12] + 800f108: 69fb ldr r3, [r7, #28] + 800f10a: 00db lsls r3, r3, #3 + 800f10c: 4413 add r3, r2 + 800f10e: 60fb str r3, [r7, #12] lv_style_remove_prop(obj_style->style, prop); - 800f17c: 68fb ldr r3, [r7, #12] - 800f17e: 681b ldr r3, [r3, #0] - 800f180: 8a7a ldrh r2, [r7, #18] - 800f182: 4611 mov r1, r2 - 800f184: 4618 mov r0, r3 - 800f186: f025 f89f bl 80342c8 + 800f110: 68fb ldr r3, [r7, #12] + 800f112: 681b ldr r3, [r3, #0] + 800f114: 8a7a ldrh r2, [r7, #18] + 800f116: 4611 mov r1, r2 + 800f118: 4618 mov r0, r3 + 800f11a: f025 f88b bl 8034234 if(lv_style_is_empty(obj->styles[i].style)) { - 800f18a: 697b ldr r3, [r7, #20] - 800f18c: 68da ldr r2, [r3, #12] - 800f18e: 69fb ldr r3, [r7, #28] - 800f190: 00db lsls r3, r3, #3 - 800f192: 4413 add r3, r2 - 800f194: 681b ldr r3, [r3, #0] - 800f196: 4618 mov r0, r3 - 800f198: f025 fb7a bl 8034890 - 800f19c: 4603 mov r3, r0 - 800f19e: 2b00 cmp r3, #0 - 800f1a0: d017 beq.n 800f1d2 + 800f11e: 697b ldr r3, [r7, #20] + 800f120: 68da ldr r2, [r3, #12] + 800f122: 69fb ldr r3, [r7, #28] + 800f124: 00db lsls r3, r3, #3 + 800f126: 4413 add r3, r2 + 800f128: 681b ldr r3, [r3, #0] + 800f12a: 4618 mov r0, r3 + 800f12c: f025 fb66 bl 80347fc + 800f130: 4603 mov r3, r0 + 800f132: 2b00 cmp r3, #0 + 800f134: d017 beq.n 800f166 lv_obj_remove_style(obj, obj_style->style, obj_style->selector); - 800f1a2: 68fb ldr r3, [r7, #12] - 800f1a4: 6819 ldr r1, [r3, #0] - 800f1a6: 68fb ldr r3, [r7, #12] - 800f1a8: 685b ldr r3, [r3, #4] - 800f1aa: f3c3 0317 ubfx r3, r3, #0, #24 - 800f1ae: 461a mov r2, r3 - 800f1b0: 6978 ldr r0, [r7, #20] - 800f1b2: f7fe fc39 bl 800da28 + 800f136: 68fb ldr r3, [r7, #12] + 800f138: 6819 ldr r1, [r3, #0] + 800f13a: 68fb ldr r3, [r7, #12] + 800f13c: 685b ldr r3, [r3, #4] + 800f13e: f3c3 0317 ubfx r3, r3, #0, #24 + 800f142: 461a mov r2, r3 + 800f144: 6978 ldr r0, [r7, #20] + 800f146: f7fe fc39 bl 800d9bc } break; - 800f1b6: e00c b.n 800f1d2 + 800f14a: e00c b.n 800f166 for(i = 0; i < obj->style_cnt; i++) { - 800f1b8: 69fb ldr r3, [r7, #28] - 800f1ba: 3301 adds r3, #1 - 800f1bc: 61fb str r3, [r7, #28] - 800f1be: 697b ldr r3, [r7, #20] - 800f1c0: 8c5b ldrh r3, [r3, #34] ; 0x22 - 800f1c2: f3c3 03c5 ubfx r3, r3, #3, #6 - 800f1c6: b2db uxtb r3, r3 - 800f1c8: 461a mov r2, r3 - 800f1ca: 69fb ldr r3, [r7, #28] - 800f1cc: 4293 cmp r3, r2 - 800f1ce: d3b0 bcc.n 800f132 + 800f14c: 69fb ldr r3, [r7, #28] + 800f14e: 3301 adds r3, #1 + 800f150: 61fb str r3, [r7, #28] + 800f152: 697b ldr r3, [r7, #20] + 800f154: 8c5b ldrh r3, [r3, #34] ; 0x22 + 800f156: f3c3 03c5 ubfx r3, r3, #3, #6 + 800f15a: b2db uxtb r3, r3 + 800f15c: 461a mov r2, r3 + 800f15e: 69fb ldr r3, [r7, #28] + 800f160: 4293 cmp r3, r2 + 800f162: d3b0 bcc.n 800f0c6 } } } } - 800f1d0: e000 b.n 800f1d4 + 800f164: e000 b.n 800f168 break; - 800f1d2: bf00 nop + 800f166: bf00 nop } - 800f1d4: bf00 nop - 800f1d6: 3728 adds r7, #40 ; 0x28 - 800f1d8: 46bd mov sp, r7 - 800f1da: bd80 pop {r7, pc} - 800f1dc: 20001d58 .word 0x20001d58 + 800f168: bf00 nop + 800f16a: 3728 adds r7, #40 ; 0x28 + 800f16c: 46bd mov sp, r7 + 800f16e: bd80 pop {r7, pc} + 800f170: 20001d58 .word 0x20001d58 -0800f1e0 : +0800f174 : #include "lv_obj.h" void lv_obj_set_style_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector) { - 800f1e0: b580 push {r7, lr} - 800f1e2: b086 sub sp, #24 - 800f1e4: af00 add r7, sp, #0 - 800f1e6: 60f8 str r0, [r7, #12] - 800f1e8: 460b mov r3, r1 - 800f1ea: 607a str r2, [r7, #4] - 800f1ec: 817b strh r3, [r7, #10] + 800f174: b580 push {r7, lr} + 800f176: b086 sub sp, #24 + 800f178: af00 add r7, sp, #0 + 800f17a: 60f8 str r0, [r7, #12] + 800f17c: 460b mov r3, r1 + 800f17e: 607a str r2, [r7, #4] + 800f180: 817b strh r3, [r7, #10] lv_style_value_t v = { .num = (int32_t)value - 800f1ee: f9b7 300a ldrsh.w r3, [r7, #10] + 800f182: f9b7 300a ldrsh.w r3, [r7, #10] lv_style_value_t v = { - 800f1f2: 617b str r3, [r7, #20] + 800f186: 617b str r3, [r7, #20] }; lv_obj_set_local_style_prop(obj, LV_STYLE_WIDTH, v, selector); - 800f1f4: 687b ldr r3, [r7, #4] - 800f1f6: 697a ldr r2, [r7, #20] - 800f1f8: f241 0101 movw r1, #4097 ; 0x1001 - 800f1fc: 68f8 ldr r0, [r7, #12] - 800f1fe: f7fe fe6f bl 800dee0 + 800f188: 687b ldr r3, [r7, #4] + 800f18a: 697a ldr r2, [r7, #20] + 800f18c: f241 0101 movw r1, #4097 ; 0x1001 + 800f190: 68f8 ldr r0, [r7, #12] + 800f192: f7fe fe6f bl 800de74 } - 800f202: bf00 nop - 800f204: 3718 adds r7, #24 - 800f206: 46bd mov sp, r7 - 800f208: bd80 pop {r7, pc} + 800f196: bf00 nop + 800f198: 3718 adds r7, #24 + 800f19a: 46bd mov sp, r7 + 800f19c: bd80 pop {r7, pc} -0800f20a : +0800f19e : void lv_obj_set_style_min_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector) { - 800f20a: b580 push {r7, lr} - 800f20c: b086 sub sp, #24 - 800f20e: af00 add r7, sp, #0 - 800f210: 60f8 str r0, [r7, #12] - 800f212: 460b mov r3, r1 - 800f214: 607a str r2, [r7, #4] - 800f216: 817b strh r3, [r7, #10] + 800f19e: b580 push {r7, lr} + 800f1a0: b086 sub sp, #24 + 800f1a2: af00 add r7, sp, #0 + 800f1a4: 60f8 str r0, [r7, #12] + 800f1a6: 460b mov r3, r1 + 800f1a8: 607a str r2, [r7, #4] + 800f1aa: 817b strh r3, [r7, #10] lv_style_value_t v = { .num = (int32_t)value - 800f218: f9b7 300a ldrsh.w r3, [r7, #10] + 800f1ac: f9b7 300a ldrsh.w r3, [r7, #10] lv_style_value_t v = { - 800f21c: 617b str r3, [r7, #20] + 800f1b0: 617b str r3, [r7, #20] }; lv_obj_set_local_style_prop(obj, LV_STYLE_MIN_WIDTH, v, selector); - 800f21e: 687b ldr r3, [r7, #4] - 800f220: 697a ldr r2, [r7, #20] - 800f222: f241 0102 movw r1, #4098 ; 0x1002 - 800f226: 68f8 ldr r0, [r7, #12] - 800f228: f7fe fe5a bl 800dee0 + 800f1b2: 687b ldr r3, [r7, #4] + 800f1b4: 697a ldr r2, [r7, #20] + 800f1b6: f241 0102 movw r1, #4098 ; 0x1002 + 800f1ba: 68f8 ldr r0, [r7, #12] + 800f1bc: f7fe fe5a bl 800de74 } - 800f22c: bf00 nop - 800f22e: 3718 adds r7, #24 - 800f230: 46bd mov sp, r7 - 800f232: bd80 pop {r7, pc} + 800f1c0: bf00 nop + 800f1c2: 3718 adds r7, #24 + 800f1c4: 46bd mov sp, r7 + 800f1c6: bd80 pop {r7, pc} -0800f234 : +0800f1c8 : }; lv_obj_set_local_style_prop(obj, LV_STYLE_MAX_WIDTH, v, selector); } void lv_obj_set_style_height(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector) { - 800f234: b580 push {r7, lr} - 800f236: b086 sub sp, #24 - 800f238: af00 add r7, sp, #0 - 800f23a: 60f8 str r0, [r7, #12] - 800f23c: 460b mov r3, r1 - 800f23e: 607a str r2, [r7, #4] - 800f240: 817b strh r3, [r7, #10] + 800f1c8: b580 push {r7, lr} + 800f1ca: b086 sub sp, #24 + 800f1cc: af00 add r7, sp, #0 + 800f1ce: 60f8 str r0, [r7, #12] + 800f1d0: 460b mov r3, r1 + 800f1d2: 607a str r2, [r7, #4] + 800f1d4: 817b strh r3, [r7, #10] lv_style_value_t v = { .num = (int32_t)value - 800f242: f9b7 300a ldrsh.w r3, [r7, #10] + 800f1d6: f9b7 300a ldrsh.w r3, [r7, #10] lv_style_value_t v = { - 800f246: 617b str r3, [r7, #20] + 800f1da: 617b str r3, [r7, #20] }; lv_obj_set_local_style_prop(obj, LV_STYLE_HEIGHT, v, selector); - 800f248: 687b ldr r3, [r7, #4] - 800f24a: 697a ldr r2, [r7, #20] - 800f24c: f241 0104 movw r1, #4100 ; 0x1004 - 800f250: 68f8 ldr r0, [r7, #12] - 800f252: f7fe fe45 bl 800dee0 + 800f1dc: 687b ldr r3, [r7, #4] + 800f1de: 697a ldr r2, [r7, #20] + 800f1e0: f241 0104 movw r1, #4100 ; 0x1004 + 800f1e4: 68f8 ldr r0, [r7, #12] + 800f1e6: f7fe fe45 bl 800de74 } - 800f256: bf00 nop - 800f258: 3718 adds r7, #24 - 800f25a: 46bd mov sp, r7 - 800f25c: bd80 pop {r7, pc} + 800f1ea: bf00 nop + 800f1ec: 3718 adds r7, #24 + 800f1ee: 46bd mov sp, r7 + 800f1f0: bd80 pop {r7, pc} -0800f25e : +0800f1f2 : }; lv_obj_set_local_style_prop(obj, LV_STYLE_MAX_HEIGHT, v, selector); } void lv_obj_set_style_x(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector) { - 800f25e: b580 push {r7, lr} - 800f260: b086 sub sp, #24 - 800f262: af00 add r7, sp, #0 - 800f264: 60f8 str r0, [r7, #12] - 800f266: 460b mov r3, r1 - 800f268: 607a str r2, [r7, #4] - 800f26a: 817b strh r3, [r7, #10] + 800f1f2: b580 push {r7, lr} + 800f1f4: b086 sub sp, #24 + 800f1f6: af00 add r7, sp, #0 + 800f1f8: 60f8 str r0, [r7, #12] + 800f1fa: 460b mov r3, r1 + 800f1fc: 607a str r2, [r7, #4] + 800f1fe: 817b strh r3, [r7, #10] lv_style_value_t v = { .num = (int32_t)value - 800f26c: f9b7 300a ldrsh.w r3, [r7, #10] + 800f200: f9b7 300a ldrsh.w r3, [r7, #10] lv_style_value_t v = { - 800f270: 617b str r3, [r7, #20] + 800f204: 617b str r3, [r7, #20] }; lv_obj_set_local_style_prop(obj, LV_STYLE_X, v, selector); - 800f272: 687b ldr r3, [r7, #4] - 800f274: 697a ldr r2, [r7, #20] - 800f276: f241 0107 movw r1, #4103 ; 0x1007 - 800f27a: 68f8 ldr r0, [r7, #12] - 800f27c: f7fe fe30 bl 800dee0 + 800f206: 687b ldr r3, [r7, #4] + 800f208: 697a ldr r2, [r7, #20] + 800f20a: f241 0107 movw r1, #4103 ; 0x1007 + 800f20e: 68f8 ldr r0, [r7, #12] + 800f210: f7fe fe30 bl 800de74 } - 800f280: bf00 nop - 800f282: 3718 adds r7, #24 - 800f284: 46bd mov sp, r7 - 800f286: bd80 pop {r7, pc} + 800f214: bf00 nop + 800f216: 3718 adds r7, #24 + 800f218: 46bd mov sp, r7 + 800f21a: bd80 pop {r7, pc} -0800f288 : +0800f21c : void lv_obj_set_style_y(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector) { - 800f288: b580 push {r7, lr} - 800f28a: b086 sub sp, #24 - 800f28c: af00 add r7, sp, #0 - 800f28e: 60f8 str r0, [r7, #12] - 800f290: 460b mov r3, r1 - 800f292: 607a str r2, [r7, #4] - 800f294: 817b strh r3, [r7, #10] + 800f21c: b580 push {r7, lr} + 800f21e: b086 sub sp, #24 + 800f220: af00 add r7, sp, #0 + 800f222: 60f8 str r0, [r7, #12] + 800f224: 460b mov r3, r1 + 800f226: 607a str r2, [r7, #4] + 800f228: 817b strh r3, [r7, #10] lv_style_value_t v = { .num = (int32_t)value - 800f296: f9b7 300a ldrsh.w r3, [r7, #10] + 800f22a: f9b7 300a ldrsh.w r3, [r7, #10] lv_style_value_t v = { - 800f29a: 617b str r3, [r7, #20] + 800f22e: 617b str r3, [r7, #20] }; lv_obj_set_local_style_prop(obj, LV_STYLE_Y, v, selector); - 800f29c: 687b ldr r3, [r7, #4] - 800f29e: 697a ldr r2, [r7, #20] - 800f2a0: f241 0108 movw r1, #4104 ; 0x1008 - 800f2a4: 68f8 ldr r0, [r7, #12] - 800f2a6: f7fe fe1b bl 800dee0 + 800f230: 687b ldr r3, [r7, #4] + 800f232: 697a ldr r2, [r7, #20] + 800f234: f241 0108 movw r1, #4104 ; 0x1008 + 800f238: 68f8 ldr r0, [r7, #12] + 800f23a: f7fe fe1b bl 800de74 } - 800f2aa: bf00 nop - 800f2ac: 3718 adds r7, #24 - 800f2ae: 46bd mov sp, r7 - 800f2b0: bd80 pop {r7, pc} + 800f23e: bf00 nop + 800f240: 3718 adds r7, #24 + 800f242: 46bd mov sp, r7 + 800f244: bd80 pop {r7, pc} -0800f2b2 : +0800f246 : void lv_obj_set_style_align(struct _lv_obj_t * obj, lv_align_t value, lv_style_selector_t selector) { - 800f2b2: b580 push {r7, lr} - 800f2b4: b086 sub sp, #24 - 800f2b6: af00 add r7, sp, #0 - 800f2b8: 60f8 str r0, [r7, #12] - 800f2ba: 460b mov r3, r1 - 800f2bc: 607a str r2, [r7, #4] - 800f2be: 72fb strb r3, [r7, #11] + 800f246: b580 push {r7, lr} + 800f248: b086 sub sp, #24 + 800f24a: af00 add r7, sp, #0 + 800f24c: 60f8 str r0, [r7, #12] + 800f24e: 460b mov r3, r1 + 800f250: 607a str r2, [r7, #4] + 800f252: 72fb strb r3, [r7, #11] lv_style_value_t v = { .num = (int32_t)value - 800f2c0: 7afb ldrb r3, [r7, #11] + 800f254: 7afb ldrb r3, [r7, #11] lv_style_value_t v = { - 800f2c2: 617b str r3, [r7, #20] + 800f256: 617b str r3, [r7, #20] }; lv_obj_set_local_style_prop(obj, LV_STYLE_ALIGN, v, selector); - 800f2c4: 687b ldr r3, [r7, #4] - 800f2c6: 697a ldr r2, [r7, #20] - 800f2c8: f241 0109 movw r1, #4105 ; 0x1009 - 800f2cc: 68f8 ldr r0, [r7, #12] - 800f2ce: f7fe fe07 bl 800dee0 + 800f258: 687b ldr r3, [r7, #4] + 800f25a: 697a ldr r2, [r7, #20] + 800f25c: f241 0109 movw r1, #4105 ; 0x1009 + 800f260: 68f8 ldr r0, [r7, #12] + 800f262: f7fe fe07 bl 800de74 } - 800f2d2: bf00 nop - 800f2d4: 3718 adds r7, #24 - 800f2d6: 46bd mov sp, r7 - 800f2d8: bd80 pop {r7, pc} + 800f266: bf00 nop + 800f268: 3718 adds r7, #24 + 800f26a: 46bd mov sp, r7 + 800f26c: bd80 pop {r7, pc} -0800f2da : - }; - lv_obj_set_local_style_prop(obj, LV_STYLE_PAD_COLUMN, v, selector); -} - -void lv_obj_set_style_bg_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector) -{ - 800f2da: b580 push {r7, lr} - 800f2dc: b086 sub sp, #24 - 800f2de: af00 add r7, sp, #0 - 800f2e0: 60f8 str r0, [r7, #12] - 800f2e2: 8139 strh r1, [r7, #8] - 800f2e4: 607a str r2, [r7, #4] - lv_style_value_t v = { - 800f2e6: 2300 movs r3, #0 - 800f2e8: 617b str r3, [r7, #20] - 800f2ea: 893b ldrh r3, [r7, #8] - 800f2ec: 82bb strh r3, [r7, #20] - .color = value - }; - lv_obj_set_local_style_prop(obj, LV_STYLE_BG_COLOR, v, selector); - 800f2ee: 687b ldr r3, [r7, #4] - 800f2f0: 697a ldr r2, [r7, #20] - 800f2f2: 2120 movs r1, #32 - 800f2f4: 68f8 ldr r0, [r7, #12] - 800f2f6: f7fe fdf3 bl 800dee0 -} - 800f2fa: bf00 nop - 800f2fc: 3718 adds r7, #24 - 800f2fe: 46bd mov sp, r7 - 800f300: bd80 pop {r7, pc} - -0800f302 : +0800f26e : }; lv_obj_set_local_style_prop(obj, LV_STYLE_BG_DITHER_MODE, v, selector); } void lv_obj_set_style_bg_img_src(struct _lv_obj_t * obj, const void * value, lv_style_selector_t selector) { - 800f302: b580 push {r7, lr} - 800f304: b086 sub sp, #24 - 800f306: af00 add r7, sp, #0 - 800f308: 60f8 str r0, [r7, #12] - 800f30a: 60b9 str r1, [r7, #8] - 800f30c: 607a str r2, [r7, #4] + 800f26e: b580 push {r7, lr} + 800f270: b086 sub sp, #24 + 800f272: af00 add r7, sp, #0 + 800f274: 60f8 str r0, [r7, #12] + 800f276: 60b9 str r1, [r7, #8] + 800f278: 607a str r2, [r7, #4] lv_style_value_t v = { - 800f30e: 68bb ldr r3, [r7, #8] - 800f310: 617b str r3, [r7, #20] + 800f27a: 68bb ldr r3, [r7, #8] + 800f27c: 617b str r3, [r7, #20] .ptr = value }; lv_obj_set_local_style_prop(obj, LV_STYLE_BG_IMG_SRC, v, selector); - 800f312: 687b ldr r3, [r7, #4] - 800f314: 697a ldr r2, [r7, #20] - 800f316: f640 0128 movw r1, #2088 ; 0x828 - 800f31a: 68f8 ldr r0, [r7, #12] - 800f31c: f7fe fde0 bl 800dee0 + 800f27e: 687b ldr r3, [r7, #4] + 800f280: 697a ldr r2, [r7, #20] + 800f282: f640 0128 movw r1, #2088 ; 0x828 + 800f286: 68f8 ldr r0, [r7, #12] + 800f288: f7fe fdf4 bl 800de74 } - 800f320: bf00 nop - 800f322: 3718 adds r7, #24 - 800f324: 46bd mov sp, r7 - 800f326: bd80 pop {r7, pc} + 800f28c: bf00 nop + 800f28e: 3718 adds r7, #24 + 800f290: 46bd mov sp, r7 + 800f292: bd80 pop {r7, pc} -0800f328 : +0800f294 : }; lv_obj_set_local_style_prop(obj, LV_STYLE_TEXT_DECOR, v, selector); } void lv_obj_set_style_text_align(struct _lv_obj_t * obj, lv_text_align_t value, lv_style_selector_t selector) { - 800f328: b580 push {r7, lr} - 800f32a: b086 sub sp, #24 - 800f32c: af00 add r7, sp, #0 - 800f32e: 60f8 str r0, [r7, #12] - 800f330: 460b mov r3, r1 - 800f332: 607a str r2, [r7, #4] - 800f334: 72fb strb r3, [r7, #11] + 800f294: b580 push {r7, lr} + 800f296: b086 sub sp, #24 + 800f298: af00 add r7, sp, #0 + 800f29a: 60f8 str r0, [r7, #12] + 800f29c: 460b mov r3, r1 + 800f29e: 607a str r2, [r7, #4] + 800f2a0: 72fb strb r3, [r7, #11] lv_style_value_t v = { .num = (int32_t)value - 800f336: 7afb ldrb r3, [r7, #11] + 800f2a2: 7afb ldrb r3, [r7, #11] lv_style_value_t v = { - 800f338: 617b str r3, [r7, #20] + 800f2a4: 617b str r3, [r7, #20] }; lv_obj_set_local_style_prop(obj, LV_STYLE_TEXT_ALIGN, v, selector); - 800f33a: 687b ldr r3, [r7, #4] - 800f33c: 697a ldr r2, [r7, #20] - 800f33e: f241 415d movw r1, #5213 ; 0x145d - 800f342: 68f8 ldr r0, [r7, #12] - 800f344: f7fe fdcc bl 800dee0 + 800f2a6: 687b ldr r3, [r7, #4] + 800f2a8: 697a ldr r2, [r7, #20] + 800f2aa: f241 415d movw r1, #5213 ; 0x145d + 800f2ae: 68f8 ldr r0, [r7, #12] + 800f2b0: f7fe fde0 bl 800de74 } - 800f348: bf00 nop - 800f34a: 3718 adds r7, #24 - 800f34c: 46bd mov sp, r7 - 800f34e: bd80 pop {r7, pc} + 800f2b4: bf00 nop + 800f2b6: 3718 adds r7, #24 + 800f2b8: 46bd mov sp, r7 + 800f2ba: bd80 pop {r7, pc} -0800f350 : +0800f2bc : }; lv_obj_set_local_style_prop(obj, LV_STYLE_BLEND_MODE, v, selector); } void lv_obj_set_style_layout(struct _lv_obj_t * obj, uint16_t value, lv_style_selector_t selector) { - 800f350: b580 push {r7, lr} - 800f352: b086 sub sp, #24 - 800f354: af00 add r7, sp, #0 - 800f356: 60f8 str r0, [r7, #12] - 800f358: 460b mov r3, r1 - 800f35a: 607a str r2, [r7, #4] - 800f35c: 817b strh r3, [r7, #10] + 800f2bc: b580 push {r7, lr} + 800f2be: b086 sub sp, #24 + 800f2c0: af00 add r7, sp, #0 + 800f2c2: 60f8 str r0, [r7, #12] + 800f2c4: 460b mov r3, r1 + 800f2c6: 607a str r2, [r7, #4] + 800f2c8: 817b strh r3, [r7, #10] lv_style_value_t v = { .num = (int32_t)value - 800f35e: 897b ldrh r3, [r7, #10] + 800f2ca: 897b ldrh r3, [r7, #10] lv_style_value_t v = { - 800f360: 617b str r3, [r7, #20] + 800f2cc: 617b str r3, [r7, #20] }; lv_obj_set_local_style_prop(obj, LV_STYLE_LAYOUT, v, selector); - 800f362: 687b ldr r3, [r7, #4] - 800f364: 697a ldr r2, [r7, #20] - 800f366: f241 0169 movw r1, #4201 ; 0x1069 - 800f36a: 68f8 ldr r0, [r7, #12] - 800f36c: f7fe fdb8 bl 800dee0 + 800f2ce: 687b ldr r3, [r7, #4] + 800f2d0: 697a ldr r2, [r7, #20] + 800f2d2: f241 0169 movw r1, #4201 ; 0x1069 + 800f2d6: 68f8 ldr r0, [r7, #12] + 800f2d8: f7fe fdcc bl 800de74 } - 800f370: bf00 nop - 800f372: 3718 adds r7, #24 - 800f374: 46bd mov sp, r7 - 800f376: bd80 pop {r7, pc} + 800f2dc: bf00 nop + 800f2de: 3718 adds r7, #24 + 800f2e0: 46bd mov sp, r7 + 800f2e2: bd80 pop {r7, pc} -0800f378 : +0800f2e4 : void lv_obj_set_style_base_dir(struct _lv_obj_t * obj, lv_base_dir_t value, lv_style_selector_t selector) { - 800f378: b580 push {r7, lr} - 800f37a: b086 sub sp, #24 - 800f37c: af00 add r7, sp, #0 - 800f37e: 60f8 str r0, [r7, #12] - 800f380: 460b mov r3, r1 - 800f382: 607a str r2, [r7, #4] - 800f384: 72fb strb r3, [r7, #11] + 800f2e4: b580 push {r7, lr} + 800f2e6: b086 sub sp, #24 + 800f2e8: af00 add r7, sp, #0 + 800f2ea: 60f8 str r0, [r7, #12] + 800f2ec: 460b mov r3, r1 + 800f2ee: 607a str r2, [r7, #4] + 800f2f0: 72fb strb r3, [r7, #11] lv_style_value_t v = { .num = (int32_t)value - 800f386: 7afb ldrb r3, [r7, #11] + 800f2f2: 7afb ldrb r3, [r7, #11] lv_style_value_t v = { - 800f388: 617b str r3, [r7, #20] + 800f2f4: 617b str r3, [r7, #20] }; lv_obj_set_local_style_prop(obj, LV_STYLE_BASE_DIR, v, selector); - 800f38a: 687b ldr r3, [r7, #4] - 800f38c: 697a ldr r2, [r7, #20] - 800f38e: f241 416a movw r1, #5226 ; 0x146a - 800f392: 68f8 ldr r0, [r7, #12] - 800f394: f7fe fda4 bl 800dee0 + 800f2f6: 687b ldr r3, [r7, #4] + 800f2f8: 697a ldr r2, [r7, #20] + 800f2fa: f241 416a movw r1, #5226 ; 0x146a + 800f2fe: 68f8 ldr r0, [r7, #12] + 800f300: f7fe fdb8 bl 800de74 } - 800f398: bf00 nop - 800f39a: 3718 adds r7, #24 - 800f39c: 46bd mov sp, r7 - 800f39e: bd80 pop {r7, pc} + 800f304: bf00 nop + 800f306: 3718 adds r7, #24 + 800f308: 46bd mov sp, r7 + 800f30a: bd80 pop {r7, pc} -0800f3a0 : +0800f30c : /********************** * GLOBAL FUNCTIONS **********************/ void lv_obj_del(lv_obj_t * obj) { - 800f3a0: b580 push {r7, lr} - 800f3a2: b086 sub sp, #24 - 800f3a4: af00 add r7, sp, #0 - 800f3a6: 6078 str r0, [r7, #4] + 800f30c: b580 push {r7, lr} + 800f30e: b086 sub sp, #24 + 800f310: af00 add r7, sp, #0 + 800f312: 6078 str r0, [r7, #4] LV_LOG_TRACE("begin (delete %p)", (void *)obj); LV_ASSERT_OBJ(obj, MY_CLASS); lv_obj_invalidate(obj); - 800f3a8: 6878 ldr r0, [r7, #4] - 800f3aa: f7fb fb82 bl 800aab2 + 800f314: 6878 ldr r0, [r7, #4] + 800f316: f7fb fb96 bl 800aa46 lv_obj_t * par = lv_obj_get_parent(obj); - 800f3ae: 6878 ldr r0, [r7, #4] - 800f3b0: f000 f9ac bl 800f70c - 800f3b4: 60f8 str r0, [r7, #12] + 800f31a: 6878 ldr r0, [r7, #4] + 800f31c: f000 f9ac bl 800f678 + 800f320: 60f8 str r0, [r7, #12] if(par) { - 800f3b6: 68fb ldr r3, [r7, #12] - 800f3b8: 2b00 cmp r3, #0 - 800f3ba: d002 beq.n 800f3c2 + 800f322: 68fb ldr r3, [r7, #12] + 800f324: 2b00 cmp r3, #0 + 800f326: d002 beq.n 800f32e lv_obj_scrollbar_invalidate(par); - 800f3bc: 68f8 ldr r0, [r7, #12] - 800f3be: f7fd fd59 bl 800ce74 + 800f328: 68f8 ldr r0, [r7, #12] + 800f32a: f7fd fd6d bl 800ce08 } lv_disp_t * disp = NULL; - 800f3c2: 2300 movs r3, #0 - 800f3c4: 617b str r3, [r7, #20] + 800f32e: 2300 movs r3, #0 + 800f330: 617b str r3, [r7, #20] bool act_scr_del = false; - 800f3c6: 2300 movs r3, #0 - 800f3c8: 74fb strb r3, [r7, #19] + 800f332: 2300 movs r3, #0 + 800f334: 74fb strb r3, [r7, #19] if(par == NULL) { - 800f3ca: 68fb ldr r3, [r7, #12] - 800f3cc: 2b00 cmp r3, #0 - 800f3ce: d10d bne.n 800f3ec + 800f336: 68fb ldr r3, [r7, #12] + 800f338: 2b00 cmp r3, #0 + 800f33a: d10d bne.n 800f358 disp = lv_obj_get_disp(obj); - 800f3d0: 6878 ldr r0, [r7, #4] - 800f3d2: f000 f961 bl 800f698 - 800f3d6: 6178 str r0, [r7, #20] + 800f33c: 6878 ldr r0, [r7, #4] + 800f33e: f000 f961 bl 800f604 + 800f342: 6178 str r0, [r7, #20] if(!disp) return; /*Shouldn't happen*/ - 800f3d8: 697b ldr r3, [r7, #20] - 800f3da: 2b00 cmp r3, #0 - 800f3dc: d024 beq.n 800f428 + 800f344: 697b ldr r3, [r7, #20] + 800f346: 2b00 cmp r3, #0 + 800f348: d024 beq.n 800f394 if(disp->act_scr == obj) act_scr_del = true; - 800f3de: 697b ldr r3, [r7, #20] - 800f3e0: 691b ldr r3, [r3, #16] - 800f3e2: 687a ldr r2, [r7, #4] - 800f3e4: 429a cmp r2, r3 - 800f3e6: d101 bne.n 800f3ec - 800f3e8: 2301 movs r3, #1 - 800f3ea: 74fb strb r3, [r7, #19] + 800f34a: 697b ldr r3, [r7, #20] + 800f34c: 691b ldr r3, [r3, #16] + 800f34e: 687a ldr r2, [r7, #4] + 800f350: 429a cmp r2, r3 + 800f352: d101 bne.n 800f358 + 800f354: 2301 movs r3, #1 + 800f356: 74fb strb r3, [r7, #19] } obj_del_core(obj); - 800f3ec: 6878 ldr r0, [r7, #4] - 800f3ee: f000 fa0e bl 800f80e + 800f358: 6878 ldr r0, [r7, #4] + 800f35a: f000 fa0e bl 800f77a /*Call the ancestor's event handler to the parent to notify it about the child delete*/ if(par) { - 800f3f2: 68fb ldr r3, [r7, #12] - 800f3f4: 2b00 cmp r3, #0 - 800f3f6: d010 beq.n 800f41a + 800f35e: 68fb ldr r3, [r7, #12] + 800f360: 2b00 cmp r3, #0 + 800f362: d010 beq.n 800f386 lv_obj_readjust_scroll(par, LV_ANIM_OFF); - 800f3f8: 2100 movs r1, #0 - 800f3fa: 68f8 ldr r0, [r7, #12] - 800f3fc: f7fd fd77 bl 800ceee + 800f364: 2100 movs r1, #0 + 800f366: 68f8 ldr r0, [r7, #12] + 800f368: f7fd fd8b bl 800ce82 lv_obj_scrollbar_invalidate(par); - 800f400: 68f8 ldr r0, [r7, #12] - 800f402: f7fd fd37 bl 800ce74 + 800f36c: 68f8 ldr r0, [r7, #12] + 800f36e: f7fd fd4b bl 800ce08 lv_event_send(par, LV_EVENT_CHILD_CHANGED, NULL); - 800f406: 2200 movs r2, #0 - 800f408: 2122 movs r1, #34 ; 0x22 - 800f40a: 68f8 ldr r0, [r7, #12] - 800f40c: f7f3 f838 bl 8002480 + 800f372: 2200 movs r2, #0 + 800f374: 2122 movs r1, #34 ; 0x22 + 800f376: 68f8 ldr r0, [r7, #12] + 800f378: f7f3 f84c bl 8002414 lv_event_send(par, LV_EVENT_CHILD_DELETED, NULL); - 800f410: 2200 movs r2, #0 - 800f412: 2124 movs r1, #36 ; 0x24 - 800f414: 68f8 ldr r0, [r7, #12] - 800f416: f7f3 f833 bl 8002480 + 800f37c: 2200 movs r2, #0 + 800f37e: 2124 movs r1, #36 ; 0x24 + 800f380: 68f8 ldr r0, [r7, #12] + 800f382: f7f3 f847 bl 8002414 } /*Handle if the active screen was deleted*/ if(act_scr_del) { - 800f41a: 7cfb ldrb r3, [r7, #19] - 800f41c: 2b00 cmp r3, #0 - 800f41e: d004 beq.n 800f42a + 800f386: 7cfb ldrb r3, [r7, #19] + 800f388: 2b00 cmp r3, #0 + 800f38a: d004 beq.n 800f396 LV_LOG_WARN("the active screen was deleted"); disp->act_scr = NULL; - 800f420: 697b ldr r3, [r7, #20] - 800f422: 2200 movs r2, #0 - 800f424: 611a str r2, [r3, #16] - 800f426: e000 b.n 800f42a + 800f38c: 697b ldr r3, [r7, #20] + 800f38e: 2200 movs r2, #0 + 800f390: 611a str r2, [r3, #16] + 800f392: e000 b.n 800f396 if(!disp) return; /*Shouldn't happen*/ - 800f428: bf00 nop + 800f394: bf00 nop } LV_ASSERT_MEM_INTEGRITY(); LV_LOG_TRACE("finished (delete %p)", (void *)obj); } - 800f42a: 3718 adds r7, #24 - 800f42c: 46bd mov sp, r7 - 800f42e: bd80 pop {r7, pc} + 800f396: 3718 adds r7, #24 + 800f398: 46bd mov sp, r7 + 800f39a: bd80 pop {r7, pc} -0800f430 : +0800f39c : LV_ASSERT_OBJ(obj, MY_CLASS); lv_async_call(lv_obj_del_async_cb, obj); } void lv_obj_set_parent(lv_obj_t * obj, lv_obj_t * parent) { - 800f430: b590 push {r4, r7, lr} - 800f432: b085 sub sp, #20 - 800f434: af00 add r7, sp, #0 - 800f436: 6078 str r0, [r7, #4] - 800f438: 6039 str r1, [r7, #0] + 800f39c: b590 push {r4, r7, lr} + 800f39e: b085 sub sp, #20 + 800f3a0: af00 add r7, sp, #0 + 800f3a2: 6078 str r0, [r7, #4] + 800f3a4: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); LV_ASSERT_OBJ(parent, MY_CLASS); if(obj->parent == NULL) { - 800f43a: 687b ldr r3, [r7, #4] - 800f43c: 685b ldr r3, [r3, #4] - 800f43e: 2b00 cmp r3, #0 - 800f440: f000 8096 beq.w 800f570 + 800f3a6: 687b ldr r3, [r7, #4] + 800f3a8: 685b ldr r3, [r3, #4] + 800f3aa: 2b00 cmp r3, #0 + 800f3ac: f000 8096 beq.w 800f4dc LV_LOG_WARN("Can't set the parent of a screen"); return; } if(parent == NULL) { - 800f444: 683b ldr r3, [r7, #0] - 800f446: 2b00 cmp r3, #0 - 800f448: f000 8094 beq.w 800f574 + 800f3b0: 683b ldr r3, [r7, #0] + 800f3b2: 2b00 cmp r3, #0 + 800f3b4: f000 8094 beq.w 800f4e0 LV_LOG_WARN("Can't set parent == NULL to an object"); return; } lv_obj_invalidate(obj); - 800f44c: 6878 ldr r0, [r7, #4] - 800f44e: f7fb fb30 bl 800aab2 + 800f3b8: 6878 ldr r0, [r7, #4] + 800f3ba: f7fb fb44 bl 800aa46 lv_obj_allocate_spec_attr(parent); - 800f452: 6838 ldr r0, [r7, #0] - 800f454: f7f7 f9ee bl 8006834 + 800f3be: 6838 ldr r0, [r7, #0] + 800f3c0: f7f7 fa02 bl 80067c8 lv_obj_t * old_parent = obj->parent; - 800f458: 687b ldr r3, [r7, #4] - 800f45a: 685b ldr r3, [r3, #4] - 800f45c: 60bb str r3, [r7, #8] + 800f3c4: 687b ldr r3, [r7, #4] + 800f3c6: 685b ldr r3, [r3, #4] + 800f3c8: 60bb str r3, [r7, #8] /*Remove the object from the old parent's child list*/ int32_t i; for(i = lv_obj_get_index(obj); i <= (int32_t)lv_obj_get_child_cnt(old_parent) - 2; i++) { - 800f45e: 6878 ldr r0, [r7, #4] - 800f460: f000 f9a8 bl 800f7b4 - 800f464: 4603 mov r3, r0 - 800f466: 60fb str r3, [r7, #12] - 800f468: e011 b.n 800f48e + 800f3ca: 6878 ldr r0, [r7, #4] + 800f3cc: f000 f9a8 bl 800f720 + 800f3d0: 4603 mov r3, r0 + 800f3d2: 60fb str r3, [r7, #12] + 800f3d4: e011 b.n 800f3fa old_parent->spec_attr->children[i] = old_parent->spec_attr->children[i + 1]; - 800f46a: 68bb ldr r3, [r7, #8] - 800f46c: 689b ldr r3, [r3, #8] - 800f46e: 681a ldr r2, [r3, #0] - 800f470: 68fb ldr r3, [r7, #12] - 800f472: 3301 adds r3, #1 - 800f474: 009b lsls r3, r3, #2 - 800f476: 441a add r2, r3 - 800f478: 68bb ldr r3, [r7, #8] - 800f47a: 689b ldr r3, [r3, #8] - 800f47c: 6819 ldr r1, [r3, #0] - 800f47e: 68fb ldr r3, [r7, #12] - 800f480: 009b lsls r3, r3, #2 - 800f482: 440b add r3, r1 - 800f484: 6812 ldr r2, [r2, #0] - 800f486: 601a str r2, [r3, #0] + 800f3d6: 68bb ldr r3, [r7, #8] + 800f3d8: 689b ldr r3, [r3, #8] + 800f3da: 681a ldr r2, [r3, #0] + 800f3dc: 68fb ldr r3, [r7, #12] + 800f3de: 3301 adds r3, #1 + 800f3e0: 009b lsls r3, r3, #2 + 800f3e2: 441a add r2, r3 + 800f3e4: 68bb ldr r3, [r7, #8] + 800f3e6: 689b ldr r3, [r3, #8] + 800f3e8: 6819 ldr r1, [r3, #0] + 800f3ea: 68fb ldr r3, [r7, #12] + 800f3ec: 009b lsls r3, r3, #2 + 800f3ee: 440b add r3, r1 + 800f3f0: 6812 ldr r2, [r2, #0] + 800f3f2: 601a str r2, [r3, #0] for(i = lv_obj_get_index(obj); i <= (int32_t)lv_obj_get_child_cnt(old_parent) - 2; i++) { - 800f488: 68fb ldr r3, [r7, #12] - 800f48a: 3301 adds r3, #1 - 800f48c: 60fb str r3, [r7, #12] - 800f48e: 68b8 ldr r0, [r7, #8] - 800f490: f000 f97e bl 800f790 - 800f494: 4603 mov r3, r0 - 800f496: 3b01 subs r3, #1 - 800f498: 68fa ldr r2, [r7, #12] - 800f49a: 429a cmp r2, r3 - 800f49c: dbe5 blt.n 800f46a + 800f3f4: 68fb ldr r3, [r7, #12] + 800f3f6: 3301 adds r3, #1 + 800f3f8: 60fb str r3, [r7, #12] + 800f3fa: 68b8 ldr r0, [r7, #8] + 800f3fc: f000 f97e bl 800f6fc + 800f400: 4603 mov r3, r0 + 800f402: 3b01 subs r3, #1 + 800f404: 68fa ldr r2, [r7, #12] + 800f406: 429a cmp r2, r3 + 800f408: dbe5 blt.n 800f3d6 } old_parent->spec_attr->child_cnt--; - 800f49e: 68bb ldr r3, [r7, #8] - 800f4a0: 689b ldr r3, [r3, #8] - 800f4a2: 685a ldr r2, [r3, #4] - 800f4a4: 3a01 subs r2, #1 - 800f4a6: 605a str r2, [r3, #4] + 800f40a: 68bb ldr r3, [r7, #8] + 800f40c: 689b ldr r3, [r3, #8] + 800f40e: 685a ldr r2, [r3, #4] + 800f410: 3a01 subs r2, #1 + 800f412: 605a str r2, [r3, #4] if(old_parent->spec_attr->child_cnt) { - 800f4a8: 68bb ldr r3, [r7, #8] - 800f4aa: 689b ldr r3, [r3, #8] - 800f4ac: 685b ldr r3, [r3, #4] - 800f4ae: 2b00 cmp r3, #0 - 800f4b0: d00e beq.n 800f4d0 + 800f414: 68bb ldr r3, [r7, #8] + 800f416: 689b ldr r3, [r3, #8] + 800f418: 685b ldr r3, [r3, #4] + 800f41a: 2b00 cmp r3, #0 + 800f41c: d00e beq.n 800f43c old_parent->spec_attr->children = lv_mem_realloc(old_parent->spec_attr->children, - 800f4b2: 68bb ldr r3, [r7, #8] - 800f4b4: 689b ldr r3, [r3, #8] - 800f4b6: 681a ldr r2, [r3, #0] + 800f41e: 68bb ldr r3, [r7, #8] + 800f420: 689b ldr r3, [r3, #8] + 800f422: 681a ldr r2, [r3, #0] old_parent->spec_attr->child_cnt * (sizeof(lv_obj_t *))); - 800f4b8: 68bb ldr r3, [r7, #8] - 800f4ba: 689b ldr r3, [r3, #8] - 800f4bc: 685b ldr r3, [r3, #4] - 800f4be: 0099 lsls r1, r3, #2 + 800f424: 68bb ldr r3, [r7, #8] + 800f426: 689b ldr r3, [r3, #8] + 800f428: 685b ldr r3, [r3, #4] + 800f42a: 0099 lsls r1, r3, #2 old_parent->spec_attr->children = lv_mem_realloc(old_parent->spec_attr->children, - 800f4c0: 68bb ldr r3, [r7, #8] - 800f4c2: 689c ldr r4, [r3, #8] - 800f4c4: 4610 mov r0, r2 - 800f4c6: f023 fa25 bl 8032914 - 800f4ca: 4603 mov r3, r0 - 800f4cc: 6023 str r3, [r4, #0] - 800f4ce: e009 b.n 800f4e4 + 800f42c: 68bb ldr r3, [r7, #8] + 800f42e: 689c ldr r4, [r3, #8] + 800f430: 4610 mov r0, r2 + 800f432: f023 fa25 bl 8032880 + 800f436: 4603 mov r3, r0 + 800f438: 6023 str r3, [r4, #0] + 800f43a: e009 b.n 800f450 } else { lv_mem_free(old_parent->spec_attr->children); - 800f4d0: 68bb ldr r3, [r7, #8] - 800f4d2: 689b ldr r3, [r3, #8] - 800f4d4: 681b ldr r3, [r3, #0] - 800f4d6: 4618 mov r0, r3 - 800f4d8: f023 fa00 bl 80328dc + 800f43c: 68bb ldr r3, [r7, #8] + 800f43e: 689b ldr r3, [r3, #8] + 800f440: 681b ldr r3, [r3, #0] + 800f442: 4618 mov r0, r3 + 800f444: f023 fa00 bl 8032848 old_parent->spec_attr->children = NULL; - 800f4dc: 68bb ldr r3, [r7, #8] - 800f4de: 689b ldr r3, [r3, #8] - 800f4e0: 2200 movs r2, #0 - 800f4e2: 601a str r2, [r3, #0] + 800f448: 68bb ldr r3, [r7, #8] + 800f44a: 689b ldr r3, [r3, #8] + 800f44c: 2200 movs r2, #0 + 800f44e: 601a str r2, [r3, #0] } /*Add the child to the new parent as the last (newest child)*/ parent->spec_attr->child_cnt++; - 800f4e4: 683b ldr r3, [r7, #0] - 800f4e6: 689b ldr r3, [r3, #8] - 800f4e8: 685a ldr r2, [r3, #4] - 800f4ea: 3201 adds r2, #1 - 800f4ec: 605a str r2, [r3, #4] + 800f450: 683b ldr r3, [r7, #0] + 800f452: 689b ldr r3, [r3, #8] + 800f454: 685a ldr r2, [r3, #4] + 800f456: 3201 adds r2, #1 + 800f458: 605a str r2, [r3, #4] parent->spec_attr->children = lv_mem_realloc(parent->spec_attr->children, - 800f4ee: 683b ldr r3, [r7, #0] - 800f4f0: 689b ldr r3, [r3, #8] - 800f4f2: 681a ldr r2, [r3, #0] + 800f45a: 683b ldr r3, [r7, #0] + 800f45c: 689b ldr r3, [r3, #8] + 800f45e: 681a ldr r2, [r3, #0] parent->spec_attr->child_cnt * (sizeof(lv_obj_t *))); - 800f4f4: 683b ldr r3, [r7, #0] - 800f4f6: 689b ldr r3, [r3, #8] - 800f4f8: 685b ldr r3, [r3, #4] - 800f4fa: 0099 lsls r1, r3, #2 + 800f460: 683b ldr r3, [r7, #0] + 800f462: 689b ldr r3, [r3, #8] + 800f464: 685b ldr r3, [r3, #4] + 800f466: 0099 lsls r1, r3, #2 parent->spec_attr->children = lv_mem_realloc(parent->spec_attr->children, - 800f4fc: 683b ldr r3, [r7, #0] - 800f4fe: 689c ldr r4, [r3, #8] - 800f500: 4610 mov r0, r2 - 800f502: f023 fa07 bl 8032914 - 800f506: 4603 mov r3, r0 - 800f508: 6023 str r3, [r4, #0] + 800f468: 683b ldr r3, [r7, #0] + 800f46a: 689c ldr r4, [r3, #8] + 800f46c: 4610 mov r0, r2 + 800f46e: f023 fa07 bl 8032880 + 800f472: 4603 mov r3, r0 + 800f474: 6023 str r3, [r4, #0] parent->spec_attr->children[lv_obj_get_child_cnt(parent) - 1] = obj; - 800f50a: 683b ldr r3, [r7, #0] - 800f50c: 689b ldr r3, [r3, #8] - 800f50e: 681c ldr r4, [r3, #0] - 800f510: 6838 ldr r0, [r7, #0] - 800f512: f000 f93d bl 800f790 - 800f516: 4603 mov r3, r0 - 800f518: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 - 800f51c: 3b01 subs r3, #1 - 800f51e: 009b lsls r3, r3, #2 - 800f520: 4423 add r3, r4 - 800f522: 687a ldr r2, [r7, #4] - 800f524: 601a str r2, [r3, #0] + 800f476: 683b ldr r3, [r7, #0] + 800f478: 689b ldr r3, [r3, #8] + 800f47a: 681c ldr r4, [r3, #0] + 800f47c: 6838 ldr r0, [r7, #0] + 800f47e: f000 f93d bl 800f6fc + 800f482: 4603 mov r3, r0 + 800f484: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 + 800f488: 3b01 subs r3, #1 + 800f48a: 009b lsls r3, r3, #2 + 800f48c: 4423 add r3, r4 + 800f48e: 687a ldr r2, [r7, #4] + 800f490: 601a str r2, [r3, #0] obj->parent = parent; - 800f526: 687b ldr r3, [r7, #4] - 800f528: 683a ldr r2, [r7, #0] - 800f52a: 605a str r2, [r3, #4] + 800f492: 687b ldr r3, [r7, #4] + 800f494: 683a ldr r2, [r7, #0] + 800f496: 605a str r2, [r3, #4] /*Notify the original parent because one of its children is lost*/ lv_obj_readjust_scroll(old_parent, LV_ANIM_OFF); - 800f52c: 2100 movs r1, #0 - 800f52e: 68b8 ldr r0, [r7, #8] - 800f530: f7fd fcdd bl 800ceee + 800f498: 2100 movs r1, #0 + 800f49a: 68b8 ldr r0, [r7, #8] + 800f49c: f7fd fcf1 bl 800ce82 lv_obj_scrollbar_invalidate(old_parent); - 800f534: 68b8 ldr r0, [r7, #8] - 800f536: f7fd fc9d bl 800ce74 + 800f4a0: 68b8 ldr r0, [r7, #8] + 800f4a2: f7fd fcb1 bl 800ce08 lv_event_send(old_parent, LV_EVENT_CHILD_CHANGED, obj); - 800f53a: 687a ldr r2, [r7, #4] - 800f53c: 2122 movs r1, #34 ; 0x22 - 800f53e: 68b8 ldr r0, [r7, #8] - 800f540: f7f2 ff9e bl 8002480 + 800f4a6: 687a ldr r2, [r7, #4] + 800f4a8: 2122 movs r1, #34 ; 0x22 + 800f4aa: 68b8 ldr r0, [r7, #8] + 800f4ac: f7f2 ffb2 bl 8002414 lv_event_send(old_parent, LV_EVENT_CHILD_DELETED, NULL); - 800f544: 2200 movs r2, #0 - 800f546: 2124 movs r1, #36 ; 0x24 - 800f548: 68b8 ldr r0, [r7, #8] - 800f54a: f7f2 ff99 bl 8002480 + 800f4b0: 2200 movs r2, #0 + 800f4b2: 2124 movs r1, #36 ; 0x24 + 800f4b4: 68b8 ldr r0, [r7, #8] + 800f4b6: f7f2 ffad bl 8002414 /*Notify the new parent about the child*/ lv_event_send(parent, LV_EVENT_CHILD_CHANGED, obj); - 800f54e: 687a ldr r2, [r7, #4] - 800f550: 2122 movs r1, #34 ; 0x22 - 800f552: 6838 ldr r0, [r7, #0] - 800f554: f7f2 ff94 bl 8002480 + 800f4ba: 687a ldr r2, [r7, #4] + 800f4bc: 2122 movs r1, #34 ; 0x22 + 800f4be: 6838 ldr r0, [r7, #0] + 800f4c0: f7f2 ffa8 bl 8002414 lv_event_send(parent, LV_EVENT_CHILD_CREATED, NULL); - 800f558: 2200 movs r2, #0 - 800f55a: 2123 movs r1, #35 ; 0x23 - 800f55c: 6838 ldr r0, [r7, #0] - 800f55e: f7f2 ff8f bl 8002480 + 800f4c4: 2200 movs r2, #0 + 800f4c6: 2123 movs r1, #35 ; 0x23 + 800f4c8: 6838 ldr r0, [r7, #0] + 800f4ca: f7f2 ffa3 bl 8002414 lv_obj_mark_layout_as_dirty(obj); - 800f562: 6878 ldr r0, [r7, #4] - 800f564: f7fa f9c2 bl 80098ec + 800f4ce: 6878 ldr r0, [r7, #4] + 800f4d0: f7fa f9d6 bl 8009880 lv_obj_invalidate(obj); - 800f568: 6878 ldr r0, [r7, #4] - 800f56a: f7fb faa2 bl 800aab2 - 800f56e: e002 b.n 800f576 + 800f4d4: 6878 ldr r0, [r7, #4] + 800f4d6: f7fb fab6 bl 800aa46 + 800f4da: e002 b.n 800f4e2 return; - 800f570: bf00 nop - 800f572: e000 b.n 800f576 + 800f4dc: bf00 nop + 800f4de: e000 b.n 800f4e2 return; - 800f574: bf00 nop + 800f4e0: bf00 nop } - 800f576: 3714 adds r7, #20 - 800f578: 46bd mov sp, r7 - 800f57a: bd90 pop {r4, r7, pc} + 800f4e2: 3714 adds r7, #20 + 800f4e4: 46bd mov sp, r7 + 800f4e6: bd90 pop {r4, r7, pc} -0800f57c : +0800f4e8 : void lv_obj_move_to_index(lv_obj_t * obj, int32_t index) { - 800f57c: b580 push {r7, lr} - 800f57e: b086 sub sp, #24 - 800f580: af00 add r7, sp, #0 - 800f582: 6078 str r0, [r7, #4] - 800f584: 6039 str r1, [r7, #0] + 800f4e8: b580 push {r7, lr} + 800f4ea: b086 sub sp, #24 + 800f4ec: af00 add r7, sp, #0 + 800f4ee: 6078 str r0, [r7, #4] + 800f4f0: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); if(index < 0) { - 800f586: 683b ldr r3, [r7, #0] - 800f588: 2b00 cmp r3, #0 - 800f58a: da0a bge.n 800f5a2 + 800f4f2: 683b ldr r3, [r7, #0] + 800f4f4: 2b00 cmp r3, #0 + 800f4f6: da0a bge.n 800f50e index = lv_obj_get_child_cnt(lv_obj_get_parent(obj)) + index; - 800f58c: 6878 ldr r0, [r7, #4] - 800f58e: f000 f8bd bl 800f70c - 800f592: 4603 mov r3, r0 - 800f594: 4618 mov r0, r3 - 800f596: f000 f8fb bl 800f790 - 800f59a: 4602 mov r2, r0 - 800f59c: 683b ldr r3, [r7, #0] - 800f59e: 4413 add r3, r2 - 800f5a0: 603b str r3, [r7, #0] + 800f4f8: 6878 ldr r0, [r7, #4] + 800f4fa: f000 f8bd bl 800f678 + 800f4fe: 4603 mov r3, r0 + 800f500: 4618 mov r0, r3 + 800f502: f000 f8fb bl 800f6fc + 800f506: 4602 mov r2, r0 + 800f508: 683b ldr r3, [r7, #0] + 800f50a: 4413 add r3, r2 + 800f50c: 603b str r3, [r7, #0] } const int32_t old_index = lv_obj_get_index(obj); - 800f5a2: 6878 ldr r0, [r7, #4] - 800f5a4: f000 f906 bl 800f7b4 - 800f5a8: 4603 mov r3, r0 - 800f5aa: 613b str r3, [r7, #16] + 800f50e: 6878 ldr r0, [r7, #4] + 800f510: f000 f906 bl 800f720 + 800f514: 4603 mov r3, r0 + 800f516: 613b str r3, [r7, #16] lv_obj_t * parent = lv_obj_get_parent(obj); - 800f5ac: 6878 ldr r0, [r7, #4] - 800f5ae: f000 f8ad bl 800f70c - 800f5b2: 60f8 str r0, [r7, #12] + 800f518: 6878 ldr r0, [r7, #4] + 800f51a: f000 f8ad bl 800f678 + 800f51e: 60f8 str r0, [r7, #12] if(index < 0) return; - 800f5b4: 683b ldr r3, [r7, #0] - 800f5b6: 2b00 cmp r3, #0 - 800f5b8: db52 blt.n 800f660 + 800f520: 683b ldr r3, [r7, #0] + 800f522: 2b00 cmp r3, #0 + 800f524: db52 blt.n 800f5cc if(index >= (int32_t) lv_obj_get_child_cnt(parent)) return; - 800f5ba: 68f8 ldr r0, [r7, #12] - 800f5bc: f000 f8e8 bl 800f790 - 800f5c0: 4603 mov r3, r0 - 800f5c2: 461a mov r2, r3 - 800f5c4: 683b ldr r3, [r7, #0] - 800f5c6: 4293 cmp r3, r2 - 800f5c8: da4c bge.n 800f664 + 800f526: 68f8 ldr r0, [r7, #12] + 800f528: f000 f8e8 bl 800f6fc + 800f52c: 4603 mov r3, r0 + 800f52e: 461a mov r2, r3 + 800f530: 683b ldr r3, [r7, #0] + 800f532: 4293 cmp r3, r2 + 800f534: da4c bge.n 800f5d0 if(index == old_index) return; - 800f5ca: 683a ldr r2, [r7, #0] - 800f5cc: 693b ldr r3, [r7, #16] - 800f5ce: 429a cmp r2, r3 - 800f5d0: d04a beq.n 800f668 + 800f536: 683a ldr r2, [r7, #0] + 800f538: 693b ldr r3, [r7, #16] + 800f53a: 429a cmp r2, r3 + 800f53c: d04a beq.n 800f5d4 int32_t i = old_index; - 800f5d2: 693b ldr r3, [r7, #16] - 800f5d4: 617b str r3, [r7, #20] + 800f53e: 693b ldr r3, [r7, #16] + 800f540: 617b str r3, [r7, #20] if(index < old_index) { - 800f5d6: 683a ldr r2, [r7, #0] - 800f5d8: 693b ldr r3, [r7, #16] - 800f5da: 429a cmp r2, r3 - 800f5dc: da2b bge.n 800f636 + 800f542: 683a ldr r2, [r7, #0] + 800f544: 693b ldr r3, [r7, #16] + 800f546: 429a cmp r2, r3 + 800f548: da2b bge.n 800f5a2 while(i > index) { - 800f5de: e013 b.n 800f608 + 800f54a: e013 b.n 800f574 parent->spec_attr->children[i] = parent->spec_attr->children[i - 1]; - 800f5e0: 68fb ldr r3, [r7, #12] - 800f5e2: 689b ldr r3, [r3, #8] - 800f5e4: 681a ldr r2, [r3, #0] - 800f5e6: 697b ldr r3, [r7, #20] - 800f5e8: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 - 800f5ec: 3b01 subs r3, #1 - 800f5ee: 009b lsls r3, r3, #2 - 800f5f0: 441a add r2, r3 - 800f5f2: 68fb ldr r3, [r7, #12] - 800f5f4: 689b ldr r3, [r3, #8] - 800f5f6: 6819 ldr r1, [r3, #0] - 800f5f8: 697b ldr r3, [r7, #20] - 800f5fa: 009b lsls r3, r3, #2 - 800f5fc: 440b add r3, r1 - 800f5fe: 6812 ldr r2, [r2, #0] - 800f600: 601a str r2, [r3, #0] + 800f54c: 68fb ldr r3, [r7, #12] + 800f54e: 689b ldr r3, [r3, #8] + 800f550: 681a ldr r2, [r3, #0] + 800f552: 697b ldr r3, [r7, #20] + 800f554: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 + 800f558: 3b01 subs r3, #1 + 800f55a: 009b lsls r3, r3, #2 + 800f55c: 441a add r2, r3 + 800f55e: 68fb ldr r3, [r7, #12] + 800f560: 689b ldr r3, [r3, #8] + 800f562: 6819 ldr r1, [r3, #0] + 800f564: 697b ldr r3, [r7, #20] + 800f566: 009b lsls r3, r3, #2 + 800f568: 440b add r3, r1 + 800f56a: 6812 ldr r2, [r2, #0] + 800f56c: 601a str r2, [r3, #0] i--; - 800f602: 697b ldr r3, [r7, #20] - 800f604: 3b01 subs r3, #1 - 800f606: 617b str r3, [r7, #20] + 800f56e: 697b ldr r3, [r7, #20] + 800f570: 3b01 subs r3, #1 + 800f572: 617b str r3, [r7, #20] while(i > index) { - 800f608: 697a ldr r2, [r7, #20] - 800f60a: 683b ldr r3, [r7, #0] - 800f60c: 429a cmp r2, r3 - 800f60e: dce7 bgt.n 800f5e0 - 800f610: e015 b.n 800f63e + 800f574: 697a ldr r2, [r7, #20] + 800f576: 683b ldr r3, [r7, #0] + 800f578: 429a cmp r2, r3 + 800f57a: dce7 bgt.n 800f54c + 800f57c: e015 b.n 800f5aa } } else { while(i < index) { parent->spec_attr->children[i] = parent->spec_attr->children[i + 1]; - 800f612: 68fb ldr r3, [r7, #12] - 800f614: 689b ldr r3, [r3, #8] - 800f616: 681a ldr r2, [r3, #0] - 800f618: 697b ldr r3, [r7, #20] - 800f61a: 3301 adds r3, #1 - 800f61c: 009b lsls r3, r3, #2 - 800f61e: 441a add r2, r3 - 800f620: 68fb ldr r3, [r7, #12] - 800f622: 689b ldr r3, [r3, #8] - 800f624: 6819 ldr r1, [r3, #0] - 800f626: 697b ldr r3, [r7, #20] - 800f628: 009b lsls r3, r3, #2 - 800f62a: 440b add r3, r1 - 800f62c: 6812 ldr r2, [r2, #0] - 800f62e: 601a str r2, [r3, #0] + 800f57e: 68fb ldr r3, [r7, #12] + 800f580: 689b ldr r3, [r3, #8] + 800f582: 681a ldr r2, [r3, #0] + 800f584: 697b ldr r3, [r7, #20] + 800f586: 3301 adds r3, #1 + 800f588: 009b lsls r3, r3, #2 + 800f58a: 441a add r2, r3 + 800f58c: 68fb ldr r3, [r7, #12] + 800f58e: 689b ldr r3, [r3, #8] + 800f590: 6819 ldr r1, [r3, #0] + 800f592: 697b ldr r3, [r7, #20] + 800f594: 009b lsls r3, r3, #2 + 800f596: 440b add r3, r1 + 800f598: 6812 ldr r2, [r2, #0] + 800f59a: 601a str r2, [r3, #0] i++; - 800f630: 697b ldr r3, [r7, #20] - 800f632: 3301 adds r3, #1 - 800f634: 617b str r3, [r7, #20] + 800f59c: 697b ldr r3, [r7, #20] + 800f59e: 3301 adds r3, #1 + 800f5a0: 617b str r3, [r7, #20] while(i < index) { - 800f636: 697a ldr r2, [r7, #20] - 800f638: 683b ldr r3, [r7, #0] - 800f63a: 429a cmp r2, r3 - 800f63c: dbe9 blt.n 800f612 + 800f5a2: 697a ldr r2, [r7, #20] + 800f5a4: 683b ldr r3, [r7, #0] + 800f5a6: 429a cmp r2, r3 + 800f5a8: dbe9 blt.n 800f57e } } parent->spec_attr->children[index] = obj; - 800f63e: 68fb ldr r3, [r7, #12] - 800f640: 689b ldr r3, [r3, #8] - 800f642: 681a ldr r2, [r3, #0] - 800f644: 683b ldr r3, [r7, #0] - 800f646: 009b lsls r3, r3, #2 - 800f648: 4413 add r3, r2 - 800f64a: 687a ldr r2, [r7, #4] - 800f64c: 601a str r2, [r3, #0] + 800f5aa: 68fb ldr r3, [r7, #12] + 800f5ac: 689b ldr r3, [r3, #8] + 800f5ae: 681a ldr r2, [r3, #0] + 800f5b0: 683b ldr r3, [r7, #0] + 800f5b2: 009b lsls r3, r3, #2 + 800f5b4: 4413 add r3, r2 + 800f5b6: 687a ldr r2, [r7, #4] + 800f5b8: 601a str r2, [r3, #0] lv_event_send(parent, LV_EVENT_CHILD_CHANGED, NULL); - 800f64e: 2200 movs r2, #0 - 800f650: 2122 movs r1, #34 ; 0x22 - 800f652: 68f8 ldr r0, [r7, #12] - 800f654: f7f2 ff14 bl 8002480 + 800f5ba: 2200 movs r2, #0 + 800f5bc: 2122 movs r1, #34 ; 0x22 + 800f5be: 68f8 ldr r0, [r7, #12] + 800f5c0: f7f2 ff28 bl 8002414 lv_obj_invalidate(parent); - 800f658: 68f8 ldr r0, [r7, #12] - 800f65a: f7fb fa2a bl 800aab2 - 800f65e: e004 b.n 800f66a + 800f5c4: 68f8 ldr r0, [r7, #12] + 800f5c6: f7fb fa3e bl 800aa46 + 800f5ca: e004 b.n 800f5d6 if(index < 0) return; - 800f660: bf00 nop - 800f662: e002 b.n 800f66a + 800f5cc: bf00 nop + 800f5ce: e002 b.n 800f5d6 if(index >= (int32_t) lv_obj_get_child_cnt(parent)) return; - 800f664: bf00 nop - 800f666: e000 b.n 800f66a + 800f5d0: bf00 nop + 800f5d2: e000 b.n 800f5d6 if(index == old_index) return; - 800f668: bf00 nop + 800f5d4: bf00 nop } - 800f66a: 3718 adds r7, #24 - 800f66c: 46bd mov sp, r7 - 800f66e: bd80 pop {r7, pc} + 800f5d6: 3718 adds r7, #24 + 800f5d8: 46bd mov sp, r7 + 800f5da: bd80 pop {r7, pc} -0800f670 : +0800f5dc : } lv_group_swap_obj(obj1, obj2); } lv_obj_t * lv_obj_get_screen(const lv_obj_t * obj) { - 800f670: b580 push {r7, lr} - 800f672: b084 sub sp, #16 - 800f674: af00 add r7, sp, #0 - 800f676: 6078 str r0, [r7, #4] + 800f5dc: b580 push {r7, lr} + 800f5de: b084 sub sp, #16 + 800f5e0: af00 add r7, sp, #0 + 800f5e2: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); const lv_obj_t * par = obj; - 800f678: 687b ldr r3, [r7, #4] - 800f67a: 60fb str r3, [r7, #12] + 800f5e4: 687b ldr r3, [r7, #4] + 800f5e6: 60fb str r3, [r7, #12] const lv_obj_t * act_par; do { act_par = par; - 800f67c: 68fb ldr r3, [r7, #12] - 800f67e: 60bb str r3, [r7, #8] + 800f5e8: 68fb ldr r3, [r7, #12] + 800f5ea: 60bb str r3, [r7, #8] par = lv_obj_get_parent(act_par); - 800f680: 68b8 ldr r0, [r7, #8] - 800f682: f000 f843 bl 800f70c - 800f686: 60f8 str r0, [r7, #12] + 800f5ec: 68b8 ldr r0, [r7, #8] + 800f5ee: f000 f843 bl 800f678 + 800f5f2: 60f8 str r0, [r7, #12] } while(par != NULL); - 800f688: 68fb ldr r3, [r7, #12] - 800f68a: 2b00 cmp r3, #0 - 800f68c: d1f6 bne.n 800f67c + 800f5f4: 68fb ldr r3, [r7, #12] + 800f5f6: 2b00 cmp r3, #0 + 800f5f8: d1f6 bne.n 800f5e8 return (lv_obj_t *)act_par; - 800f68e: 68bb ldr r3, [r7, #8] + 800f5fa: 68bb ldr r3, [r7, #8] } - 800f690: 4618 mov r0, r3 - 800f692: 3710 adds r7, #16 - 800f694: 46bd mov sp, r7 - 800f696: bd80 pop {r7, pc} + 800f5fc: 4618 mov r0, r3 + 800f5fe: 3710 adds r7, #16 + 800f600: 46bd mov sp, r7 + 800f602: bd80 pop {r7, pc} -0800f698 : +0800f604 : lv_disp_t * lv_obj_get_disp(const lv_obj_t * obj) { - 800f698: b580 push {r7, lr} - 800f69a: b086 sub sp, #24 - 800f69c: af00 add r7, sp, #0 - 800f69e: 6078 str r0, [r7, #4] + 800f604: b580 push {r7, lr} + 800f606: b086 sub sp, #24 + 800f608: af00 add r7, sp, #0 + 800f60a: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); const lv_obj_t * scr; if(obj->parent == NULL) scr = obj; /*`obj` is a screen*/ - 800f6a0: 687b ldr r3, [r7, #4] - 800f6a2: 685b ldr r3, [r3, #4] - 800f6a4: 2b00 cmp r3, #0 - 800f6a6: d102 bne.n 800f6ae - 800f6a8: 687b ldr r3, [r7, #4] - 800f6aa: 617b str r3, [r7, #20] - 800f6ac: e003 b.n 800f6b6 + 800f60c: 687b ldr r3, [r7, #4] + 800f60e: 685b ldr r3, [r3, #4] + 800f610: 2b00 cmp r3, #0 + 800f612: d102 bne.n 800f61a + 800f614: 687b ldr r3, [r7, #4] + 800f616: 617b str r3, [r7, #20] + 800f618: e003 b.n 800f622 else scr = lv_obj_get_screen(obj); /*get the screen of `obj`*/ - 800f6ae: 6878 ldr r0, [r7, #4] - 800f6b0: f7ff ffde bl 800f670 - 800f6b4: 6178 str r0, [r7, #20] + 800f61a: 6878 ldr r0, [r7, #4] + 800f61c: f7ff ffde bl 800f5dc + 800f620: 6178 str r0, [r7, #20] lv_disp_t * d; _LV_LL_READ(&LV_GC_ROOT(_lv_disp_ll), d) { - 800f6b6: 4814 ldr r0, [pc, #80] ; (800f708 ) - 800f6b8: f022 fe50 bl 803235c <_lv_ll_get_head> - 800f6bc: 6138 str r0, [r7, #16] - 800f6be: e01a b.n 800f6f6 + 800f622: 4814 ldr r0, [pc, #80] ; (800f674 ) + 800f624: f022 fe50 bl 80322c8 <_lv_ll_get_head> + 800f628: 6138 str r0, [r7, #16] + 800f62a: e01a b.n 800f662 uint32_t i; for(i = 0; i < d->screen_cnt; i++) { - 800f6c0: 2300 movs r3, #0 - 800f6c2: 60fb str r3, [r7, #12] - 800f6c4: e00d b.n 800f6e2 + 800f62c: 2300 movs r3, #0 + 800f62e: 60fb str r3, [r7, #12] + 800f630: e00d b.n 800f64e if(d->screens[i] == scr) return d; - 800f6c6: 693b ldr r3, [r7, #16] - 800f6c8: 68da ldr r2, [r3, #12] - 800f6ca: 68fb ldr r3, [r7, #12] - 800f6cc: 009b lsls r3, r3, #2 - 800f6ce: 4413 add r3, r2 - 800f6d0: 681b ldr r3, [r3, #0] - 800f6d2: 697a ldr r2, [r7, #20] - 800f6d4: 429a cmp r2, r3 - 800f6d6: d101 bne.n 800f6dc - 800f6d8: 693b ldr r3, [r7, #16] - 800f6da: e010 b.n 800f6fe + 800f632: 693b ldr r3, [r7, #16] + 800f634: 68da ldr r2, [r3, #12] + 800f636: 68fb ldr r3, [r7, #12] + 800f638: 009b lsls r3, r3, #2 + 800f63a: 4413 add r3, r2 + 800f63c: 681b ldr r3, [r3, #0] + 800f63e: 697a ldr r2, [r7, #20] + 800f640: 429a cmp r2, r3 + 800f642: d101 bne.n 800f648 + 800f644: 693b ldr r3, [r7, #16] + 800f646: e010 b.n 800f66a for(i = 0; i < d->screen_cnt; i++) { - 800f6dc: 68fb ldr r3, [r7, #12] - 800f6de: 3301 adds r3, #1 - 800f6e0: 60fb str r3, [r7, #12] - 800f6e2: 693b ldr r3, [r7, #16] - 800f6e4: 6a5b ldr r3, [r3, #36] ; 0x24 - 800f6e6: 68fa ldr r2, [r7, #12] - 800f6e8: 429a cmp r2, r3 - 800f6ea: d3ec bcc.n 800f6c6 + 800f648: 68fb ldr r3, [r7, #12] + 800f64a: 3301 adds r3, #1 + 800f64c: 60fb str r3, [r7, #12] + 800f64e: 693b ldr r3, [r7, #16] + 800f650: 6a5b ldr r3, [r3, #36] ; 0x24 + 800f652: 68fa ldr r2, [r7, #12] + 800f654: 429a cmp r2, r3 + 800f656: d3ec bcc.n 800f632 _LV_LL_READ(&LV_GC_ROOT(_lv_disp_ll), d) { - 800f6ec: 6939 ldr r1, [r7, #16] - 800f6ee: 4806 ldr r0, [pc, #24] ; (800f708 ) - 800f6f0: f022 fe54 bl 803239c <_lv_ll_get_next> - 800f6f4: 6138 str r0, [r7, #16] - 800f6f6: 693b ldr r3, [r7, #16] - 800f6f8: 2b00 cmp r3, #0 - 800f6fa: d1e1 bne.n 800f6c0 + 800f658: 6939 ldr r1, [r7, #16] + 800f65a: 4806 ldr r0, [pc, #24] ; (800f674 ) + 800f65c: f022 fe54 bl 8032308 <_lv_ll_get_next> + 800f660: 6138 str r0, [r7, #16] + 800f662: 693b ldr r3, [r7, #16] + 800f664: 2b00 cmp r3, #0 + 800f666: d1e1 bne.n 800f62c } } LV_LOG_WARN("No screen found"); return NULL; - 800f6fc: 2300 movs r3, #0 + 800f668: 2300 movs r3, #0 } - 800f6fe: 4618 mov r0, r3 - 800f700: 3718 adds r7, #24 - 800f702: 46bd mov sp, r7 - 800f704: bd80 pop {r7, pc} - 800f706: bf00 nop - 800f708: 20001d10 .word 0x20001d10 + 800f66a: 4618 mov r0, r3 + 800f66c: 3718 adds r7, #24 + 800f66e: 46bd mov sp, r7 + 800f670: bd80 pop {r7, pc} + 800f672: bf00 nop + 800f674: 20001d10 .word 0x20001d10 -0800f70c : +0800f678 : lv_obj_t * lv_obj_get_parent(const lv_obj_t * obj) { - 800f70c: b480 push {r7} - 800f70e: b083 sub sp, #12 - 800f710: af00 add r7, sp, #0 - 800f712: 6078 str r0, [r7, #4] + 800f678: b480 push {r7} + 800f67a: b083 sub sp, #12 + 800f67c: af00 add r7, sp, #0 + 800f67e: 6078 str r0, [r7, #4] if(obj == NULL) return NULL; - 800f714: 687b ldr r3, [r7, #4] - 800f716: 2b00 cmp r3, #0 - 800f718: d101 bne.n 800f71e - 800f71a: 2300 movs r3, #0 - 800f71c: e001 b.n 800f722 + 800f680: 687b ldr r3, [r7, #4] + 800f682: 2b00 cmp r3, #0 + 800f684: d101 bne.n 800f68a + 800f686: 2300 movs r3, #0 + 800f688: e001 b.n 800f68e LV_ASSERT_OBJ(obj, MY_CLASS); return obj->parent; - 800f71e: 687b ldr r3, [r7, #4] - 800f720: 685b ldr r3, [r3, #4] + 800f68a: 687b ldr r3, [r7, #4] + 800f68c: 685b ldr r3, [r3, #4] } - 800f722: 4618 mov r0, r3 - 800f724: 370c adds r7, #12 - 800f726: 46bd mov sp, r7 - 800f728: bc80 pop {r7} - 800f72a: 4770 bx lr + 800f68e: 4618 mov r0, r3 + 800f690: 370c adds r7, #12 + 800f692: 46bd mov sp, r7 + 800f694: bc80 pop {r7} + 800f696: 4770 bx lr -0800f72c : +0800f698 : lv_obj_t * lv_obj_get_child(const lv_obj_t * obj, int32_t id) { - 800f72c: b480 push {r7} - 800f72e: b085 sub sp, #20 - 800f730: af00 add r7, sp, #0 - 800f732: 6078 str r0, [r7, #4] - 800f734: 6039 str r1, [r7, #0] + 800f698: b480 push {r7} + 800f69a: b085 sub sp, #20 + 800f69c: af00 add r7, sp, #0 + 800f69e: 6078 str r0, [r7, #4] + 800f6a0: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); if(obj->spec_attr == NULL) return NULL; - 800f736: 687b ldr r3, [r7, #4] - 800f738: 689b ldr r3, [r3, #8] - 800f73a: 2b00 cmp r3, #0 - 800f73c: d101 bne.n 800f742 - 800f73e: 2300 movs r3, #0 - 800f740: e021 b.n 800f786 + 800f6a2: 687b ldr r3, [r7, #4] + 800f6a4: 689b ldr r3, [r3, #8] + 800f6a6: 2b00 cmp r3, #0 + 800f6a8: d101 bne.n 800f6ae + 800f6aa: 2300 movs r3, #0 + 800f6ac: e021 b.n 800f6f2 uint32_t idu; if(id < 0) { - 800f742: 683b ldr r3, [r7, #0] - 800f744: 2b00 cmp r3, #0 - 800f746: da0d bge.n 800f764 + 800f6ae: 683b ldr r3, [r7, #0] + 800f6b0: 2b00 cmp r3, #0 + 800f6b2: da0d bge.n 800f6d0 id = obj->spec_attr->child_cnt + id; - 800f748: 687b ldr r3, [r7, #4] - 800f74a: 689b ldr r3, [r3, #8] - 800f74c: 685a ldr r2, [r3, #4] - 800f74e: 683b ldr r3, [r7, #0] - 800f750: 4413 add r3, r2 - 800f752: 603b str r3, [r7, #0] + 800f6b4: 687b ldr r3, [r7, #4] + 800f6b6: 689b ldr r3, [r3, #8] + 800f6b8: 685a ldr r2, [r3, #4] + 800f6ba: 683b ldr r3, [r7, #0] + 800f6bc: 4413 add r3, r2 + 800f6be: 603b str r3, [r7, #0] if(id < 0) return NULL; - 800f754: 683b ldr r3, [r7, #0] - 800f756: 2b00 cmp r3, #0 - 800f758: da01 bge.n 800f75e - 800f75a: 2300 movs r3, #0 - 800f75c: e013 b.n 800f786 + 800f6c0: 683b ldr r3, [r7, #0] + 800f6c2: 2b00 cmp r3, #0 + 800f6c4: da01 bge.n 800f6ca + 800f6c6: 2300 movs r3, #0 + 800f6c8: e013 b.n 800f6f2 idu = (uint32_t) id; - 800f75e: 683b ldr r3, [r7, #0] - 800f760: 60fb str r3, [r7, #12] - 800f762: e001 b.n 800f768 + 800f6ca: 683b ldr r3, [r7, #0] + 800f6cc: 60fb str r3, [r7, #12] + 800f6ce: e001 b.n 800f6d4 } else { idu = id; - 800f764: 683b ldr r3, [r7, #0] - 800f766: 60fb str r3, [r7, #12] + 800f6d0: 683b ldr r3, [r7, #0] + 800f6d2: 60fb str r3, [r7, #12] } if(idu >= obj->spec_attr->child_cnt) return NULL; - 800f768: 687b ldr r3, [r7, #4] - 800f76a: 689b ldr r3, [r3, #8] - 800f76c: 685b ldr r3, [r3, #4] - 800f76e: 68fa ldr r2, [r7, #12] - 800f770: 429a cmp r2, r3 - 800f772: d301 bcc.n 800f778 - 800f774: 2300 movs r3, #0 - 800f776: e006 b.n 800f786 + 800f6d4: 687b ldr r3, [r7, #4] + 800f6d6: 689b ldr r3, [r3, #8] + 800f6d8: 685b ldr r3, [r3, #4] + 800f6da: 68fa ldr r2, [r7, #12] + 800f6dc: 429a cmp r2, r3 + 800f6de: d301 bcc.n 800f6e4 + 800f6e0: 2300 movs r3, #0 + 800f6e2: e006 b.n 800f6f2 else return obj->spec_attr->children[id]; - 800f778: 687b ldr r3, [r7, #4] - 800f77a: 689b ldr r3, [r3, #8] - 800f77c: 681a ldr r2, [r3, #0] - 800f77e: 683b ldr r3, [r7, #0] - 800f780: 009b lsls r3, r3, #2 - 800f782: 4413 add r3, r2 - 800f784: 681b ldr r3, [r3, #0] + 800f6e4: 687b ldr r3, [r7, #4] + 800f6e6: 689b ldr r3, [r3, #8] + 800f6e8: 681a ldr r2, [r3, #0] + 800f6ea: 683b ldr r3, [r7, #0] + 800f6ec: 009b lsls r3, r3, #2 + 800f6ee: 4413 add r3, r2 + 800f6f0: 681b ldr r3, [r3, #0] } - 800f786: 4618 mov r0, r3 - 800f788: 3714 adds r7, #20 - 800f78a: 46bd mov sp, r7 - 800f78c: bc80 pop {r7} - 800f78e: 4770 bx lr + 800f6f2: 4618 mov r0, r3 + 800f6f4: 3714 adds r7, #20 + 800f6f6: 46bd mov sp, r7 + 800f6f8: bc80 pop {r7} + 800f6fa: 4770 bx lr -0800f790 : +0800f6fc : uint32_t lv_obj_get_child_cnt(const lv_obj_t * obj) { - 800f790: b480 push {r7} - 800f792: b083 sub sp, #12 - 800f794: af00 add r7, sp, #0 - 800f796: 6078 str r0, [r7, #4] + 800f6fc: b480 push {r7} + 800f6fe: b083 sub sp, #12 + 800f700: af00 add r7, sp, #0 + 800f702: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); if(obj->spec_attr == NULL) return 0; - 800f798: 687b ldr r3, [r7, #4] - 800f79a: 689b ldr r3, [r3, #8] - 800f79c: 2b00 cmp r3, #0 - 800f79e: d101 bne.n 800f7a4 - 800f7a0: 2300 movs r3, #0 - 800f7a2: e002 b.n 800f7aa + 800f704: 687b ldr r3, [r7, #4] + 800f706: 689b ldr r3, [r3, #8] + 800f708: 2b00 cmp r3, #0 + 800f70a: d101 bne.n 800f710 + 800f70c: 2300 movs r3, #0 + 800f70e: e002 b.n 800f716 return obj->spec_attr->child_cnt; - 800f7a4: 687b ldr r3, [r7, #4] - 800f7a6: 689b ldr r3, [r3, #8] - 800f7a8: 685b ldr r3, [r3, #4] + 800f710: 687b ldr r3, [r7, #4] + 800f712: 689b ldr r3, [r3, #8] + 800f714: 685b ldr r3, [r3, #4] } - 800f7aa: 4618 mov r0, r3 - 800f7ac: 370c adds r7, #12 - 800f7ae: 46bd mov sp, r7 - 800f7b0: bc80 pop {r7} - 800f7b2: 4770 bx lr + 800f716: 4618 mov r0, r3 + 800f718: 370c adds r7, #12 + 800f71a: 46bd mov sp, r7 + 800f71c: bc80 pop {r7} + 800f71e: 4770 bx lr -0800f7b4 : +0800f720 : uint32_t lv_obj_get_index(const lv_obj_t * obj) { - 800f7b4: b580 push {r7, lr} - 800f7b6: b084 sub sp, #16 - 800f7b8: af00 add r7, sp, #0 - 800f7ba: 6078 str r0, [r7, #4] + 800f720: b580 push {r7, lr} + 800f722: b084 sub sp, #16 + 800f724: af00 add r7, sp, #0 + 800f726: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_obj_t * parent = lv_obj_get_parent(obj); - 800f7bc: 6878 ldr r0, [r7, #4] - 800f7be: f7ff ffa5 bl 800f70c - 800f7c2: 60b8 str r0, [r7, #8] + 800f728: 6878 ldr r0, [r7, #4] + 800f72a: f7ff ffa5 bl 800f678 + 800f72e: 60b8 str r0, [r7, #8] if(parent == NULL) return 0; - 800f7c4: 68bb ldr r3, [r7, #8] - 800f7c6: 2b00 cmp r3, #0 - 800f7c8: d101 bne.n 800f7ce - 800f7ca: 2300 movs r3, #0 - 800f7cc: e01b b.n 800f806 + 800f730: 68bb ldr r3, [r7, #8] + 800f732: 2b00 cmp r3, #0 + 800f734: d101 bne.n 800f73a + 800f736: 2300 movs r3, #0 + 800f738: e01b b.n 800f772 uint32_t i = 0; - 800f7ce: 2300 movs r3, #0 - 800f7d0: 60fb str r3, [r7, #12] + 800f73a: 2300 movs r3, #0 + 800f73c: 60fb str r3, [r7, #12] for(i = 0; i < lv_obj_get_child_cnt(parent); i++) { - 800f7d2: 2300 movs r3, #0 - 800f7d4: 60fb str r3, [r7, #12] - 800f7d6: e00d b.n 800f7f4 + 800f73e: 2300 movs r3, #0 + 800f740: 60fb str r3, [r7, #12] + 800f742: e00d b.n 800f760 if(lv_obj_get_child(parent, i) == obj) return i; - 800f7d8: 68fb ldr r3, [r7, #12] - 800f7da: 4619 mov r1, r3 - 800f7dc: 68b8 ldr r0, [r7, #8] - 800f7de: f7ff ffa5 bl 800f72c - 800f7e2: 4602 mov r2, r0 - 800f7e4: 687b ldr r3, [r7, #4] - 800f7e6: 4293 cmp r3, r2 - 800f7e8: d101 bne.n 800f7ee - 800f7ea: 68fb ldr r3, [r7, #12] - 800f7ec: e00b b.n 800f806 + 800f744: 68fb ldr r3, [r7, #12] + 800f746: 4619 mov r1, r3 + 800f748: 68b8 ldr r0, [r7, #8] + 800f74a: f7ff ffa5 bl 800f698 + 800f74e: 4602 mov r2, r0 + 800f750: 687b ldr r3, [r7, #4] + 800f752: 4293 cmp r3, r2 + 800f754: d101 bne.n 800f75a + 800f756: 68fb ldr r3, [r7, #12] + 800f758: e00b b.n 800f772 for(i = 0; i < lv_obj_get_child_cnt(parent); i++) { - 800f7ee: 68fb ldr r3, [r7, #12] - 800f7f0: 3301 adds r3, #1 - 800f7f2: 60fb str r3, [r7, #12] - 800f7f4: 68b8 ldr r0, [r7, #8] - 800f7f6: f7ff ffcb bl 800f790 - 800f7fa: 4602 mov r2, r0 - 800f7fc: 68fb ldr r3, [r7, #12] - 800f7fe: 4293 cmp r3, r2 - 800f800: d3ea bcc.n 800f7d8 + 800f75a: 68fb ldr r3, [r7, #12] + 800f75c: 3301 adds r3, #1 + 800f75e: 60fb str r3, [r7, #12] + 800f760: 68b8 ldr r0, [r7, #8] + 800f762: f7ff ffcb bl 800f6fc + 800f766: 4602 mov r2, r0 + 800f768: 68fb ldr r3, [r7, #12] + 800f76a: 4293 cmp r3, r2 + 800f76c: d3ea bcc.n 800f744 } return 0xFFFFFFFF; /*Shouldn't happen*/ - 800f802: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 800f76e: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff } - 800f806: 4618 mov r0, r3 - 800f808: 3710 adds r7, #16 - 800f80a: 46bd mov sp, r7 - 800f80c: bd80 pop {r7, pc} + 800f772: 4618 mov r0, r3 + 800f774: 3710 adds r7, #16 + 800f776: 46bd mov sp, r7 + 800f778: bd80 pop {r7, pc} -0800f80e : +0800f77a : lv_obj_del(obj); } static void obj_del_core(lv_obj_t * obj) { - 800f80e: b590 push {r4, r7, lr} - 800f810: b08d sub sp, #52 ; 0x34 - 800f812: af00 add r7, sp, #0 - 800f814: 6078 str r0, [r7, #4] + 800f77a: b590 push {r4, r7, lr} + 800f77c: b08d sub sp, #52 ; 0x34 + 800f77e: af00 add r7, sp, #0 + 800f780: 6078 str r0, [r7, #4] /*Let the user free the resources used in `LV_EVENT_DELETE`*/ lv_res_t res = lv_event_send(obj, LV_EVENT_DELETE, NULL); - 800f816: 2200 movs r2, #0 - 800f818: 2121 movs r1, #33 ; 0x21 - 800f81a: 6878 ldr r0, [r7, #4] - 800f81c: f7f2 fe30 bl 8002480 - 800f820: 4603 mov r3, r0 - 800f822: 77fb strb r3, [r7, #31] + 800f782: 2200 movs r2, #0 + 800f784: 2121 movs r1, #33 ; 0x21 + 800f786: 6878 ldr r0, [r7, #4] + 800f788: f7f2 fe44 bl 8002414 + 800f78c: 4603 mov r3, r0 + 800f78e: 77fb strb r3, [r7, #31] if(res == LV_RES_INV) return; - 800f824: 7ffb ldrb r3, [r7, #31] - 800f826: 2b00 cmp r3, #0 - 800f828: f000 80d2 beq.w 800f9d0 + 800f790: 7ffb ldrb r3, [r7, #31] + 800f792: 2b00 cmp r3, #0 + 800f794: f000 80d2 beq.w 800f93c /*Recursively delete the children*/ lv_obj_t * child = lv_obj_get_child(obj, 0); - 800f82c: 2100 movs r1, #0 - 800f82e: 6878 ldr r0, [r7, #4] - 800f830: f7ff ff7c bl 800f72c - 800f834: 62f8 str r0, [r7, #44] ; 0x2c + 800f798: 2100 movs r1, #0 + 800f79a: 6878 ldr r0, [r7, #4] + 800f79c: f7ff ff7c bl 800f698 + 800f7a0: 62f8 str r0, [r7, #44] ; 0x2c while(child) { - 800f836: e007 b.n 800f848 + 800f7a2: e007 b.n 800f7b4 obj_del_core(child); - 800f838: 6af8 ldr r0, [r7, #44] ; 0x2c - 800f83a: f7ff ffe8 bl 800f80e + 800f7a4: 6af8 ldr r0, [r7, #44] ; 0x2c + 800f7a6: f7ff ffe8 bl 800f77a child = lv_obj_get_child(obj, 0); - 800f83e: 2100 movs r1, #0 - 800f840: 6878 ldr r0, [r7, #4] - 800f842: f7ff ff73 bl 800f72c - 800f846: 62f8 str r0, [r7, #44] ; 0x2c + 800f7aa: 2100 movs r1, #0 + 800f7ac: 6878 ldr r0, [r7, #4] + 800f7ae: f7ff ff73 bl 800f698 + 800f7b2: 62f8 str r0, [r7, #44] ; 0x2c while(child) { - 800f848: 6afb ldr r3, [r7, #44] ; 0x2c - 800f84a: 2b00 cmp r3, #0 - 800f84c: d1f4 bne.n 800f838 + 800f7b4: 6afb ldr r3, [r7, #44] ; 0x2c + 800f7b6: 2b00 cmp r3, #0 + 800f7b8: d1f4 bne.n 800f7a4 } lv_group_t * group = lv_obj_get_group(obj); - 800f84e: 6878 ldr r0, [r7, #4] - 800f850: f7f6 ffde bl 8006810 - 800f854: 61b8 str r0, [r7, #24] + 800f7ba: 6878 ldr r0, [r7, #4] + 800f7bc: f7f6 fff2 bl 80067a4 + 800f7c0: 61b8 str r0, [r7, #24] /*Reset all input devices if the object to delete is used*/ lv_indev_t * indev = lv_indev_get_next(NULL); - 800f856: 2000 movs r0, #0 - 800f858: f020 ff3e bl 80306d8 - 800f85c: 62b8 str r0, [r7, #40] ; 0x28 + 800f7c2: 2000 movs r0, #0 + 800f7c4: f020 ff3e bl 8030644 + 800f7c8: 62b8 str r0, [r7, #40] ; 0x28 while(indev) { - 800f85e: e028 b.n 800f8b2 + 800f7ca: e028 b.n 800f81e if(indev->proc.types.pointer.act_obj == obj || indev->proc.types.pointer.last_obj == obj) { - 800f860: 6abb ldr r3, [r7, #40] ; 0x28 - 800f862: 6a5b ldr r3, [r3, #36] ; 0x24 - 800f864: 687a ldr r2, [r7, #4] - 800f866: 429a cmp r2, r3 - 800f868: d004 beq.n 800f874 - 800f86a: 6abb ldr r3, [r7, #40] ; 0x28 - 800f86c: 6a9b ldr r3, [r3, #40] ; 0x28 - 800f86e: 687a ldr r2, [r7, #4] - 800f870: 429a cmp r2, r3 - 800f872: d103 bne.n 800f87c + 800f7cc: 6abb ldr r3, [r7, #40] ; 0x28 + 800f7ce: 6a5b ldr r3, [r3, #36] ; 0x24 + 800f7d0: 687a ldr r2, [r7, #4] + 800f7d2: 429a cmp r2, r3 + 800f7d4: d004 beq.n 800f7e0 + 800f7d6: 6abb ldr r3, [r7, #40] ; 0x28 + 800f7d8: 6a9b ldr r3, [r3, #40] ; 0x28 + 800f7da: 687a ldr r2, [r7, #4] + 800f7dc: 429a cmp r2, r3 + 800f7de: d103 bne.n 800f7e8 lv_indev_reset(indev, obj); - 800f874: 6879 ldr r1, [r7, #4] - 800f876: 6ab8 ldr r0, [r7, #40] ; 0x28 - 800f878: f7f3 fd6a bl 8003350 + 800f7e0: 6879 ldr r1, [r7, #4] + 800f7e2: 6ab8 ldr r0, [r7, #40] ; 0x28 + 800f7e4: f7f3 fd7e bl 80032e4 } if(indev->proc.types.pointer.last_pressed == obj) { - 800f87c: 6abb ldr r3, [r7, #40] ; 0x28 - 800f87e: 6b1b ldr r3, [r3, #48] ; 0x30 - 800f880: 687a ldr r2, [r7, #4] - 800f882: 429a cmp r2, r3 - 800f884: d102 bne.n 800f88c + 800f7e8: 6abb ldr r3, [r7, #40] ; 0x28 + 800f7ea: 6b1b ldr r3, [r3, #48] ; 0x30 + 800f7ec: 687a ldr r2, [r7, #4] + 800f7ee: 429a cmp r2, r3 + 800f7f0: d102 bne.n 800f7f8 indev->proc.types.pointer.last_pressed = NULL; - 800f886: 6abb ldr r3, [r7, #40] ; 0x28 - 800f888: 2200 movs r2, #0 - 800f88a: 631a str r2, [r3, #48] ; 0x30 + 800f7f2: 6abb ldr r3, [r7, #40] ; 0x28 + 800f7f4: 2200 movs r2, #0 + 800f7f6: 631a str r2, [r3, #48] ; 0x30 } if(indev->group == group && obj == lv_indev_get_obj_act()) { - 800f88c: 6abb ldr r3, [r7, #40] ; 0x28 - 800f88e: 6d1b ldr r3, [r3, #80] ; 0x50 - 800f890: 69ba ldr r2, [r7, #24] - 800f892: 429a cmp r2, r3 - 800f894: d109 bne.n 800f8aa - 800f896: f7f3 fed7 bl 8003648 - 800f89a: 4602 mov r2, r0 - 800f89c: 687b ldr r3, [r7, #4] - 800f89e: 4293 cmp r3, r2 - 800f8a0: d103 bne.n 800f8aa + 800f7f8: 6abb ldr r3, [r7, #40] ; 0x28 + 800f7fa: 6d1b ldr r3, [r3, #80] ; 0x50 + 800f7fc: 69ba ldr r2, [r7, #24] + 800f7fe: 429a cmp r2, r3 + 800f800: d109 bne.n 800f816 + 800f802: f7f3 feeb bl 80035dc + 800f806: 4602 mov r2, r0 + 800f808: 687b ldr r3, [r7, #4] + 800f80a: 4293 cmp r3, r2 + 800f80c: d103 bne.n 800f816 lv_indev_reset(indev, obj); - 800f8a2: 6879 ldr r1, [r7, #4] - 800f8a4: 6ab8 ldr r0, [r7, #40] ; 0x28 - 800f8a6: f7f3 fd53 bl 8003350 + 800f80e: 6879 ldr r1, [r7, #4] + 800f810: 6ab8 ldr r0, [r7, #40] ; 0x28 + 800f812: f7f3 fd67 bl 80032e4 } indev = lv_indev_get_next(indev); - 800f8aa: 6ab8 ldr r0, [r7, #40] ; 0x28 - 800f8ac: f020 ff14 bl 80306d8 - 800f8b0: 62b8 str r0, [r7, #40] ; 0x28 + 800f816: 6ab8 ldr r0, [r7, #40] ; 0x28 + 800f818: f020 ff14 bl 8030644 + 800f81c: 62b8 str r0, [r7, #40] ; 0x28 while(indev) { - 800f8b2: 6abb ldr r3, [r7, #40] ; 0x28 - 800f8b4: 2b00 cmp r3, #0 - 800f8b6: d1d3 bne.n 800f860 + 800f81e: 6abb ldr r3, [r7, #40] ; 0x28 + 800f820: 2b00 cmp r3, #0 + 800f822: d1d3 bne.n 800f7cc } /*All children deleted. Now clean up the object specific data*/ _lv_obj_destruct(obj); - 800f8b8: 6878 ldr r0, [r7, #4] - 800f8ba: f7f8 f9c1 bl 8007c40 <_lv_obj_destruct> + 800f824: 6878 ldr r0, [r7, #4] + 800f826: f7f8 f9d5 bl 8007bd4 <_lv_obj_destruct> /*Remove the screen for the screen list*/ if(obj->parent == NULL) { - 800f8be: 687b ldr r3, [r7, #4] - 800f8c0: 685b ldr r3, [r3, #4] - 800f8c2: 2b00 cmp r3, #0 - 800f8c4: d146 bne.n 800f954 + 800f82a: 687b ldr r3, [r7, #4] + 800f82c: 685b ldr r3, [r3, #4] + 800f82e: 2b00 cmp r3, #0 + 800f830: d146 bne.n 800f8c0 lv_disp_t * disp = lv_obj_get_disp(obj); - 800f8c6: 6878 ldr r0, [r7, #4] - 800f8c8: f7ff fee6 bl 800f698 - 800f8cc: 6138 str r0, [r7, #16] + 800f832: 6878 ldr r0, [r7, #4] + 800f834: f7ff fee6 bl 800f604 + 800f838: 6138 str r0, [r7, #16] uint32_t i; /*Find the screen in the list*/ for(i = 0; i < disp->screen_cnt; i++) { - 800f8ce: 2300 movs r3, #0 - 800f8d0: 627b str r3, [r7, #36] ; 0x24 - 800f8d2: e00b b.n 800f8ec + 800f83a: 2300 movs r3, #0 + 800f83c: 627b str r3, [r7, #36] ; 0x24 + 800f83e: e00b b.n 800f858 if(disp->screens[i] == obj) break; - 800f8d4: 693b ldr r3, [r7, #16] - 800f8d6: 68da ldr r2, [r3, #12] - 800f8d8: 6a7b ldr r3, [r7, #36] ; 0x24 - 800f8da: 009b lsls r3, r3, #2 - 800f8dc: 4413 add r3, r2 - 800f8de: 681b ldr r3, [r3, #0] - 800f8e0: 687a ldr r2, [r7, #4] - 800f8e2: 429a cmp r2, r3 - 800f8e4: d008 beq.n 800f8f8 + 800f840: 693b ldr r3, [r7, #16] + 800f842: 68da ldr r2, [r3, #12] + 800f844: 6a7b ldr r3, [r7, #36] ; 0x24 + 800f846: 009b lsls r3, r3, #2 + 800f848: 4413 add r3, r2 + 800f84a: 681b ldr r3, [r3, #0] + 800f84c: 687a ldr r2, [r7, #4] + 800f84e: 429a cmp r2, r3 + 800f850: d008 beq.n 800f864 for(i = 0; i < disp->screen_cnt; i++) { - 800f8e6: 6a7b ldr r3, [r7, #36] ; 0x24 - 800f8e8: 3301 adds r3, #1 - 800f8ea: 627b str r3, [r7, #36] ; 0x24 - 800f8ec: 693b ldr r3, [r7, #16] - 800f8ee: 6a5b ldr r3, [r3, #36] ; 0x24 - 800f8f0: 6a7a ldr r2, [r7, #36] ; 0x24 - 800f8f2: 429a cmp r2, r3 - 800f8f4: d3ee bcc.n 800f8d4 - 800f8f6: e000 b.n 800f8fa + 800f852: 6a7b ldr r3, [r7, #36] ; 0x24 + 800f854: 3301 adds r3, #1 + 800f856: 627b str r3, [r7, #36] ; 0x24 + 800f858: 693b ldr r3, [r7, #16] + 800f85a: 6a5b ldr r3, [r3, #36] ; 0x24 + 800f85c: 6a7a ldr r2, [r7, #36] ; 0x24 + 800f85e: 429a cmp r2, r3 + 800f860: d3ee bcc.n 800f840 + 800f862: e000 b.n 800f866 if(disp->screens[i] == obj) break; - 800f8f8: bf00 nop + 800f864: bf00 nop } uint32_t id = i; - 800f8fa: 6a7b ldr r3, [r7, #36] ; 0x24 - 800f8fc: 60fb str r3, [r7, #12] + 800f866: 6a7b ldr r3, [r7, #36] ; 0x24 + 800f868: 60fb str r3, [r7, #12] for(i = id; i < disp->screen_cnt - 1; i++) { - 800f8fe: 68fb ldr r3, [r7, #12] - 800f900: 627b str r3, [r7, #36] ; 0x24 - 800f902: e00f b.n 800f924 + 800f86a: 68fb ldr r3, [r7, #12] + 800f86c: 627b str r3, [r7, #36] ; 0x24 + 800f86e: e00f b.n 800f890 disp->screens[i] = disp->screens[i + 1]; - 800f904: 693b ldr r3, [r7, #16] - 800f906: 68da ldr r2, [r3, #12] - 800f908: 6a7b ldr r3, [r7, #36] ; 0x24 - 800f90a: 3301 adds r3, #1 - 800f90c: 009b lsls r3, r3, #2 - 800f90e: 441a add r2, r3 - 800f910: 693b ldr r3, [r7, #16] - 800f912: 68d9 ldr r1, [r3, #12] - 800f914: 6a7b ldr r3, [r7, #36] ; 0x24 - 800f916: 009b lsls r3, r3, #2 - 800f918: 440b add r3, r1 - 800f91a: 6812 ldr r2, [r2, #0] - 800f91c: 601a str r2, [r3, #0] + 800f870: 693b ldr r3, [r7, #16] + 800f872: 68da ldr r2, [r3, #12] + 800f874: 6a7b ldr r3, [r7, #36] ; 0x24 + 800f876: 3301 adds r3, #1 + 800f878: 009b lsls r3, r3, #2 + 800f87a: 441a add r2, r3 + 800f87c: 693b ldr r3, [r7, #16] + 800f87e: 68d9 ldr r1, [r3, #12] + 800f880: 6a7b ldr r3, [r7, #36] ; 0x24 + 800f882: 009b lsls r3, r3, #2 + 800f884: 440b add r3, r1 + 800f886: 6812 ldr r2, [r2, #0] + 800f888: 601a str r2, [r3, #0] for(i = id; i < disp->screen_cnt - 1; i++) { - 800f91e: 6a7b ldr r3, [r7, #36] ; 0x24 - 800f920: 3301 adds r3, #1 - 800f922: 627b str r3, [r7, #36] ; 0x24 - 800f924: 693b ldr r3, [r7, #16] - 800f926: 6a5b ldr r3, [r3, #36] ; 0x24 - 800f928: 3b01 subs r3, #1 - 800f92a: 6a7a ldr r2, [r7, #36] ; 0x24 - 800f92c: 429a cmp r2, r3 - 800f92e: d3e9 bcc.n 800f904 + 800f88a: 6a7b ldr r3, [r7, #36] ; 0x24 + 800f88c: 3301 adds r3, #1 + 800f88e: 627b str r3, [r7, #36] ; 0x24 + 800f890: 693b ldr r3, [r7, #16] + 800f892: 6a5b ldr r3, [r3, #36] ; 0x24 + 800f894: 3b01 subs r3, #1 + 800f896: 6a7a ldr r2, [r7, #36] ; 0x24 + 800f898: 429a cmp r2, r3 + 800f89a: d3e9 bcc.n 800f870 } disp->screen_cnt--; - 800f930: 693b ldr r3, [r7, #16] - 800f932: 6a5b ldr r3, [r3, #36] ; 0x24 - 800f934: 1e5a subs r2, r3, #1 - 800f936: 693b ldr r3, [r7, #16] - 800f938: 625a str r2, [r3, #36] ; 0x24 + 800f89c: 693b ldr r3, [r7, #16] + 800f89e: 6a5b ldr r3, [r3, #36] ; 0x24 + 800f8a0: 1e5a subs r2, r3, #1 + 800f8a2: 693b ldr r3, [r7, #16] + 800f8a4: 625a str r2, [r3, #36] ; 0x24 disp->screens = lv_mem_realloc(disp->screens, disp->screen_cnt * sizeof(lv_obj_t *)); - 800f93a: 693b ldr r3, [r7, #16] - 800f93c: 68da ldr r2, [r3, #12] - 800f93e: 693b ldr r3, [r7, #16] - 800f940: 6a5b ldr r3, [r3, #36] ; 0x24 - 800f942: 009b lsls r3, r3, #2 - 800f944: 4619 mov r1, r3 - 800f946: 4610 mov r0, r2 - 800f948: f022 ffe4 bl 8032914 - 800f94c: 4602 mov r2, r0 - 800f94e: 693b ldr r3, [r7, #16] - 800f950: 60da str r2, [r3, #12] - 800f952: e039 b.n 800f9c8 + 800f8a6: 693b ldr r3, [r7, #16] + 800f8a8: 68da ldr r2, [r3, #12] + 800f8aa: 693b ldr r3, [r7, #16] + 800f8ac: 6a5b ldr r3, [r3, #36] ; 0x24 + 800f8ae: 009b lsls r3, r3, #2 + 800f8b0: 4619 mov r1, r3 + 800f8b2: 4610 mov r0, r2 + 800f8b4: f022 ffe4 bl 8032880 + 800f8b8: 4602 mov r2, r0 + 800f8ba: 693b ldr r3, [r7, #16] + 800f8bc: 60da str r2, [r3, #12] + 800f8be: e039 b.n 800f934 } /*Remove the object from the child list of its parent*/ else { uint32_t id = lv_obj_get_index(obj); - 800f954: 6878 ldr r0, [r7, #4] - 800f956: f7ff ff2d bl 800f7b4 - 800f95a: 6178 str r0, [r7, #20] + 800f8c0: 6878 ldr r0, [r7, #4] + 800f8c2: f7ff ff2d bl 800f720 + 800f8c6: 6178 str r0, [r7, #20] uint32_t i; for(i = id; i < obj->parent->spec_attr->child_cnt - 1; i++) { - 800f95c: 697b ldr r3, [r7, #20] - 800f95e: 623b str r3, [r7, #32] - 800f960: e013 b.n 800f98a + 800f8c8: 697b ldr r3, [r7, #20] + 800f8ca: 623b str r3, [r7, #32] + 800f8cc: e013 b.n 800f8f6 obj->parent->spec_attr->children[i] = obj->parent->spec_attr->children[i + 1]; - 800f962: 687b ldr r3, [r7, #4] - 800f964: 685b ldr r3, [r3, #4] - 800f966: 689b ldr r3, [r3, #8] - 800f968: 681a ldr r2, [r3, #0] - 800f96a: 6a3b ldr r3, [r7, #32] - 800f96c: 3301 adds r3, #1 - 800f96e: 009b lsls r3, r3, #2 - 800f970: 441a add r2, r3 - 800f972: 687b ldr r3, [r7, #4] - 800f974: 685b ldr r3, [r3, #4] - 800f976: 689b ldr r3, [r3, #8] - 800f978: 6819 ldr r1, [r3, #0] - 800f97a: 6a3b ldr r3, [r7, #32] - 800f97c: 009b lsls r3, r3, #2 - 800f97e: 440b add r3, r1 - 800f980: 6812 ldr r2, [r2, #0] - 800f982: 601a str r2, [r3, #0] + 800f8ce: 687b ldr r3, [r7, #4] + 800f8d0: 685b ldr r3, [r3, #4] + 800f8d2: 689b ldr r3, [r3, #8] + 800f8d4: 681a ldr r2, [r3, #0] + 800f8d6: 6a3b ldr r3, [r7, #32] + 800f8d8: 3301 adds r3, #1 + 800f8da: 009b lsls r3, r3, #2 + 800f8dc: 441a add r2, r3 + 800f8de: 687b ldr r3, [r7, #4] + 800f8e0: 685b ldr r3, [r3, #4] + 800f8e2: 689b ldr r3, [r3, #8] + 800f8e4: 6819 ldr r1, [r3, #0] + 800f8e6: 6a3b ldr r3, [r7, #32] + 800f8e8: 009b lsls r3, r3, #2 + 800f8ea: 440b add r3, r1 + 800f8ec: 6812 ldr r2, [r2, #0] + 800f8ee: 601a str r2, [r3, #0] for(i = id; i < obj->parent->spec_attr->child_cnt - 1; i++) { - 800f984: 6a3b ldr r3, [r7, #32] - 800f986: 3301 adds r3, #1 - 800f988: 623b str r3, [r7, #32] - 800f98a: 687b ldr r3, [r7, #4] - 800f98c: 685b ldr r3, [r3, #4] - 800f98e: 689b ldr r3, [r3, #8] - 800f990: 685b ldr r3, [r3, #4] - 800f992: 3b01 subs r3, #1 - 800f994: 6a3a ldr r2, [r7, #32] - 800f996: 429a cmp r2, r3 - 800f998: d3e3 bcc.n 800f962 + 800f8f0: 6a3b ldr r3, [r7, #32] + 800f8f2: 3301 adds r3, #1 + 800f8f4: 623b str r3, [r7, #32] + 800f8f6: 687b ldr r3, [r7, #4] + 800f8f8: 685b ldr r3, [r3, #4] + 800f8fa: 689b ldr r3, [r3, #8] + 800f8fc: 685b ldr r3, [r3, #4] + 800f8fe: 3b01 subs r3, #1 + 800f900: 6a3a ldr r2, [r7, #32] + 800f902: 429a cmp r2, r3 + 800f904: d3e3 bcc.n 800f8ce } obj->parent->spec_attr->child_cnt--; - 800f99a: 687b ldr r3, [r7, #4] - 800f99c: 685b ldr r3, [r3, #4] - 800f99e: 689b ldr r3, [r3, #8] - 800f9a0: 685a ldr r2, [r3, #4] - 800f9a2: 3a01 subs r2, #1 - 800f9a4: 605a str r2, [r3, #4] + 800f906: 687b ldr r3, [r7, #4] + 800f908: 685b ldr r3, [r3, #4] + 800f90a: 689b ldr r3, [r3, #8] + 800f90c: 685a ldr r2, [r3, #4] + 800f90e: 3a01 subs r2, #1 + 800f910: 605a str r2, [r3, #4] obj->parent->spec_attr->children = lv_mem_realloc(obj->parent->spec_attr->children, - 800f9a6: 687b ldr r3, [r7, #4] - 800f9a8: 685b ldr r3, [r3, #4] - 800f9aa: 689b ldr r3, [r3, #8] - 800f9ac: 681a ldr r2, [r3, #0] + 800f912: 687b ldr r3, [r7, #4] + 800f914: 685b ldr r3, [r3, #4] + 800f916: 689b ldr r3, [r3, #8] + 800f918: 681a ldr r2, [r3, #0] obj->parent->spec_attr->child_cnt * sizeof(lv_obj_t *)); - 800f9ae: 687b ldr r3, [r7, #4] - 800f9b0: 685b ldr r3, [r3, #4] - 800f9b2: 689b ldr r3, [r3, #8] - 800f9b4: 685b ldr r3, [r3, #4] - 800f9b6: 0099 lsls r1, r3, #2 + 800f91a: 687b ldr r3, [r7, #4] + 800f91c: 685b ldr r3, [r3, #4] + 800f91e: 689b ldr r3, [r3, #8] + 800f920: 685b ldr r3, [r3, #4] + 800f922: 0099 lsls r1, r3, #2 obj->parent->spec_attr->children = lv_mem_realloc(obj->parent->spec_attr->children, - 800f9b8: 687b ldr r3, [r7, #4] - 800f9ba: 685b ldr r3, [r3, #4] - 800f9bc: 689c ldr r4, [r3, #8] - 800f9be: 4610 mov r0, r2 - 800f9c0: f022 ffa8 bl 8032914 - 800f9c4: 4603 mov r3, r0 - 800f9c6: 6023 str r3, [r4, #0] + 800f924: 687b ldr r3, [r7, #4] + 800f926: 685b ldr r3, [r3, #4] + 800f928: 689c ldr r4, [r3, #8] + 800f92a: 4610 mov r0, r2 + 800f92c: f022 ffa8 bl 8032880 + 800f930: 4603 mov r3, r0 + 800f932: 6023 str r3, [r4, #0] } /*Free the object itself*/ lv_mem_free(obj); - 800f9c8: 6878 ldr r0, [r7, #4] - 800f9ca: f022 ff87 bl 80328dc - 800f9ce: e000 b.n 800f9d2 + 800f934: 6878 ldr r0, [r7, #4] + 800f936: f022 ff87 bl 8032848 + 800f93a: e000 b.n 800f93e if(res == LV_RES_INV) return; - 800f9d0: bf00 nop + 800f93c: bf00 nop } - 800f9d2: 3734 adds r7, #52 ; 0x34 - 800f9d4: 46bd mov sp, r7 - 800f9d6: bd90 pop {r4, r7, pc} + 800f93e: 3734 adds r7, #52 ; 0x34 + 800f940: 46bd mov sp, r7 + 800f942: bd90 pop {r4, r7, pc} -0800f9d8 : +0800f944 : { - 800f9d8: b480 push {r7} - 800f9da: b083 sub sp, #12 - 800f9dc: af00 add r7, sp, #0 - 800f9de: 6078 str r0, [r7, #4] - 800f9e0: 6039 str r1, [r7, #0] + 800f944: b480 push {r7} + 800f946: b083 sub sp, #12 + 800f948: af00 add r7, sp, #0 + 800f94a: 6078 str r0, [r7, #4] + 800f94c: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 800f9e2: 683b ldr r3, [r7, #0] - 800f9e4: f9b3 2000 ldrsh.w r2, [r3] - 800f9e8: 687b ldr r3, [r7, #4] - 800f9ea: 801a strh r2, [r3, #0] + 800f94e: 683b ldr r3, [r7, #0] + 800f950: f9b3 2000 ldrsh.w r2, [r3] + 800f954: 687b ldr r3, [r7, #4] + 800f956: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 800f9ec: 683b ldr r3, [r7, #0] - 800f9ee: f9b3 2002 ldrsh.w r2, [r3, #2] - 800f9f2: 687b ldr r3, [r7, #4] - 800f9f4: 805a strh r2, [r3, #2] + 800f958: 683b ldr r3, [r7, #0] + 800f95a: f9b3 2002 ldrsh.w r2, [r3, #2] + 800f95e: 687b ldr r3, [r7, #4] + 800f960: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 800f9f6: 683b ldr r3, [r7, #0] - 800f9f8: f9b3 2004 ldrsh.w r2, [r3, #4] - 800f9fc: 687b ldr r3, [r7, #4] - 800f9fe: 809a strh r2, [r3, #4] + 800f962: 683b ldr r3, [r7, #0] + 800f964: f9b3 2004 ldrsh.w r2, [r3, #4] + 800f968: 687b ldr r3, [r7, #4] + 800f96a: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 800fa00: 683b ldr r3, [r7, #0] - 800fa02: f9b3 2006 ldrsh.w r2, [r3, #6] - 800fa06: 687b ldr r3, [r7, #4] - 800fa08: 80da strh r2, [r3, #6] + 800f96c: 683b ldr r3, [r7, #0] + 800f96e: f9b3 2006 ldrsh.w r2, [r3, #6] + 800f972: 687b ldr r3, [r7, #4] + 800f974: 80da strh r2, [r3, #6] } - 800fa0a: bf00 nop - 800fa0c: 370c adds r7, #12 - 800fa0e: 46bd mov sp, r7 - 800fa10: bc80 pop {r7} - 800fa12: 4770 bx lr + 800f976: bf00 nop + 800f978: 370c adds r7, #12 + 800f97a: 46bd mov sp, r7 + 800f97c: bc80 pop {r7} + 800f97e: 4770 bx lr -0800fa14 : +0800f980 : { - 800fa14: b480 push {r7} - 800fa16: b083 sub sp, #12 - 800fa18: af00 add r7, sp, #0 - 800fa1a: 6078 str r0, [r7, #4] + 800f980: b480 push {r7} + 800f982: b083 sub sp, #12 + 800f984: af00 add r7, sp, #0 + 800f986: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 800fa1c: 687b ldr r3, [r7, #4] - 800fa1e: f9b3 3004 ldrsh.w r3, [r3, #4] - 800fa22: b29a uxth r2, r3 - 800fa24: 687b ldr r3, [r7, #4] - 800fa26: f9b3 3000 ldrsh.w r3, [r3] - 800fa2a: b29b uxth r3, r3 - 800fa2c: 1ad3 subs r3, r2, r3 - 800fa2e: b29b uxth r3, r3 - 800fa30: 3301 adds r3, #1 - 800fa32: b29b uxth r3, r3 - 800fa34: b21b sxth r3, r3 + 800f988: 687b ldr r3, [r7, #4] + 800f98a: f9b3 3004 ldrsh.w r3, [r3, #4] + 800f98e: b29a uxth r2, r3 + 800f990: 687b ldr r3, [r7, #4] + 800f992: f9b3 3000 ldrsh.w r3, [r3] + 800f996: b29b uxth r3, r3 + 800f998: 1ad3 subs r3, r2, r3 + 800f99a: b29b uxth r3, r3 + 800f99c: 3301 adds r3, #1 + 800f99e: b29b uxth r3, r3 + 800f9a0: b21b sxth r3, r3 } - 800fa36: 4618 mov r0, r3 - 800fa38: 370c adds r7, #12 - 800fa3a: 46bd mov sp, r7 - 800fa3c: bc80 pop {r7} - 800fa3e: 4770 bx lr + 800f9a2: 4618 mov r0, r3 + 800f9a4: 370c adds r7, #12 + 800f9a6: 46bd mov sp, r7 + 800f9a8: bc80 pop {r7} + 800f9aa: 4770 bx lr -0800fa40 : +0800f9ac : { - 800fa40: b480 push {r7} - 800fa42: b083 sub sp, #12 - 800fa44: af00 add r7, sp, #0 - 800fa46: 6078 str r0, [r7, #4] + 800f9ac: b480 push {r7} + 800f9ae: b083 sub sp, #12 + 800f9b0: af00 add r7, sp, #0 + 800f9b2: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 800fa48: 687b ldr r3, [r7, #4] - 800fa4a: f9b3 3006 ldrsh.w r3, [r3, #6] - 800fa4e: b29a uxth r2, r3 - 800fa50: 687b ldr r3, [r7, #4] - 800fa52: f9b3 3002 ldrsh.w r3, [r3, #2] - 800fa56: b29b uxth r3, r3 - 800fa58: 1ad3 subs r3, r2, r3 - 800fa5a: b29b uxth r3, r3 - 800fa5c: 3301 adds r3, #1 - 800fa5e: b29b uxth r3, r3 - 800fa60: b21b sxth r3, r3 + 800f9b4: 687b ldr r3, [r7, #4] + 800f9b6: f9b3 3006 ldrsh.w r3, [r3, #6] + 800f9ba: b29a uxth r2, r3 + 800f9bc: 687b ldr r3, [r7, #4] + 800f9be: f9b3 3002 ldrsh.w r3, [r3, #2] + 800f9c2: b29b uxth r3, r3 + 800f9c4: 1ad3 subs r3, r2, r3 + 800f9c6: b29b uxth r3, r3 + 800f9c8: 3301 adds r3, #1 + 800f9ca: b29b uxth r3, r3 + 800f9cc: b21b sxth r3, r3 } - 800fa62: 4618 mov r0, r3 - 800fa64: 370c adds r7, #12 - 800fa66: 46bd mov sp, r7 - 800fa68: bc80 pop {r7} - 800fa6a: 4770 bx lr + 800f9ce: 4618 mov r0, r3 + 800f9d0: 370c adds r7, #12 + 800f9d2: 46bd mov sp, r7 + 800f9d4: bc80 pop {r7} + 800f9d6: 4770 bx lr -0800fa6c <_lv_refr_init>: +0800f9d8 <_lv_refr_init>: /** * Initialize the screen refresh subsystem */ void _lv_refr_init(void) { - 800fa6c: b480 push {r7} - 800fa6e: af00 add r7, sp, #0 + 800f9d8: b480 push {r7} + 800f9da: af00 add r7, sp, #0 perf_monitor_init(&perf_monitor); #endif #if LV_USE_MEM_MONITOR mem_monitor_init(&mem_monitor); #endif } - 800fa70: bf00 nop - 800fa72: 46bd mov sp, r7 - 800fa74: bc80 pop {r7} - 800fa76: 4770 bx lr + 800f9dc: bf00 nop + 800f9de: 46bd mov sp, r7 + 800f9e0: bc80 pop {r7} + 800f9e2: 4770 bx lr -0800fa78 : +0800f9e4 : } } } void lv_refr_obj(lv_draw_ctx_t * draw_ctx, lv_obj_t * obj) { - 800fa78: b580 push {r7, lr} - 800fa7a: b08e sub sp, #56 ; 0x38 - 800fa7c: af00 add r7, sp, #0 - 800fa7e: 6078 str r0, [r7, #4] - 800fa80: 6039 str r1, [r7, #0] + 800f9e4: b580 push {r7, lr} + 800f9e6: b08e sub sp, #56 ; 0x38 + 800f9e8: af00 add r7, sp, #0 + 800f9ea: 6078 str r0, [r7, #4] + 800f9ec: 6039 str r1, [r7, #0] /*Do not refresh hidden objects*/ if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return; - 800fa82: 2101 movs r1, #1 - 800fa84: 6838 ldr r0, [r7, #0] - 800fa86: f7f6 fe7c bl 8006782 - 800fa8a: 4603 mov r3, r0 - 800fa8c: 2b00 cmp r3, #0 - 800fa8e: f040 8095 bne.w 800fbbc + 800f9ee: 2101 movs r1, #1 + 800f9f0: 6838 ldr r0, [r7, #0] + 800f9f2: f7f6 fe90 bl 8006716 + 800f9f6: 4603 mov r3, r0 + 800f9f8: 2b00 cmp r3, #0 + 800f9fa: f040 8095 bne.w 800fb28 const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 800fa92: 687b ldr r3, [r7, #4] - 800fa94: 689b ldr r3, [r3, #8] - 800fa96: 62fb str r3, [r7, #44] ; 0x2c + 800f9fe: 687b ldr r3, [r7, #4] + 800fa00: 689b ldr r3, [r3, #8] + 800fa02: 62fb str r3, [r7, #44] ; 0x2c lv_area_t clip_coords_for_obj; /*Truncate the clip area to `obj size + ext size` area*/ lv_area_t obj_coords_ext; lv_obj_get_coords(obj, &obj_coords_ext); - 800fa98: f107 0310 add.w r3, r7, #16 - 800fa9c: 4619 mov r1, r3 - 800fa9e: 6838 ldr r0, [r7, #0] - 800faa0: f7fa fab4 bl 800a00c + 800fa04: f107 0310 add.w r3, r7, #16 + 800fa08: 4619 mov r1, r3 + 800fa0a: 6838 ldr r0, [r7, #0] + 800fa0c: f7fa fac8 bl 8009fa0 lv_coord_t ext_draw_size = _lv_obj_get_ext_draw_size(obj); - 800faa4: 6838 ldr r0, [r7, #0] - 800faa6: f7f9 fa30 bl 8008f0a <_lv_obj_get_ext_draw_size> - 800faaa: 4603 mov r3, r0 - 800faac: 857b strh r3, [r7, #42] ; 0x2a + 800fa10: 6838 ldr r0, [r7, #0] + 800fa12: f7f9 fa44 bl 8008e9e <_lv_obj_get_ext_draw_size> + 800fa16: 4603 mov r3, r0 + 800fa18: 857b strh r3, [r7, #42] ; 0x2a lv_area_increase(&obj_coords_ext, ext_draw_size, ext_draw_size); - 800faae: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a - 800fab2: f9b7 102a ldrsh.w r1, [r7, #42] ; 0x2a - 800fab6: f107 0310 add.w r3, r7, #16 - 800faba: 4618 mov r0, r3 - 800fabc: f021 fa8a bl 8030fd4 + 800fa1a: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a + 800fa1e: f9b7 102a ldrsh.w r1, [r7, #42] ; 0x2a + 800fa22: f107 0310 add.w r3, r7, #16 + 800fa26: 4618 mov r0, r3 + 800fa28: f021 fa8a bl 8030f40 if(!_lv_area_intersect(&clip_coords_for_obj, clip_area_ori, &obj_coords_ext)) return; - 800fac0: f107 0210 add.w r2, r7, #16 - 800fac4: f107 0318 add.w r3, r7, #24 - 800fac8: 6af9 ldr r1, [r7, #44] ; 0x2c - 800faca: 4618 mov r0, r3 - 800facc: f021 faec bl 80310a8 <_lv_area_intersect> - 800fad0: 4603 mov r3, r0 - 800fad2: f083 0301 eor.w r3, r3, #1 - 800fad6: b2db uxtb r3, r3 - 800fad8: 2b00 cmp r3, #0 - 800fada: d171 bne.n 800fbc0 + 800fa2c: f107 0210 add.w r2, r7, #16 + 800fa30: f107 0318 add.w r3, r7, #24 + 800fa34: 6af9 ldr r1, [r7, #44] ; 0x2c + 800fa36: 4618 mov r0, r3 + 800fa38: f021 faec bl 8031014 <_lv_area_intersect> + 800fa3c: 4603 mov r3, r0 + 800fa3e: f083 0301 eor.w r3, r3, #1 + 800fa42: b2db uxtb r3, r3 + 800fa44: 2b00 cmp r3, #0 + 800fa46: d171 bne.n 800fb2c draw_ctx->clip_area = &clip_coords_for_obj; - 800fadc: 687b ldr r3, [r7, #4] - 800fade: f107 0218 add.w r2, r7, #24 - 800fae2: 609a str r2, [r3, #8] + 800fa48: 687b ldr r3, [r7, #4] + 800fa4a: f107 0218 add.w r2, r7, #24 + 800fa4e: 609a str r2, [r3, #8] /*Draw the object*/ lv_event_send(obj, LV_EVENT_DRAW_MAIN_BEGIN, draw_ctx); - 800fae4: 687a ldr r2, [r7, #4] - 800fae6: 2114 movs r1, #20 - 800fae8: 6838 ldr r0, [r7, #0] - 800faea: f7f2 fcc9 bl 8002480 + 800fa50: 687a ldr r2, [r7, #4] + 800fa52: 2114 movs r1, #20 + 800fa54: 6838 ldr r0, [r7, #0] + 800fa56: f7f2 fcdd bl 8002414 lv_event_send(obj, LV_EVENT_DRAW_MAIN, draw_ctx); - 800faee: 687a ldr r2, [r7, #4] - 800faf0: 2115 movs r1, #21 - 800faf2: 6838 ldr r0, [r7, #0] - 800faf4: f7f2 fcc4 bl 8002480 + 800fa5a: 687a ldr r2, [r7, #4] + 800fa5c: 2115 movs r1, #21 + 800fa5e: 6838 ldr r0, [r7, #0] + 800fa60: f7f2 fcd8 bl 8002414 lv_event_send(obj, LV_EVENT_DRAW_MAIN_END, draw_ctx); - 800faf8: 687a ldr r2, [r7, #4] - 800fafa: 2116 movs r1, #22 - 800fafc: 6838 ldr r0, [r7, #0] - 800fafe: f7f2 fcbf bl 8002480 + 800fa64: 687a ldr r2, [r7, #4] + 800fa66: 2116 movs r1, #22 + 800fa68: 6838 ldr r0, [r7, #0] + 800fa6a: f7f2 fcd3 bl 8002414 lv_draw_rect(draw_ctx, &draw_dsc, &obj_coords_ext); #endif /*With overflow visible keep the previous clip area to let the children visible out of this object too *With not overflow visible limit the clip are to the object's coordinates to clip the children*/ bool refr_children = true; - 800fb02: 2301 movs r3, #1 - 800fb04: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 800fa6e: 2301 movs r3, #1 + 800fa70: f887 3037 strb.w r3, [r7, #55] ; 0x37 lv_area_t clip_coords_for_children; if(lv_obj_has_flag(obj, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) { - 800fb08: f44f 2100 mov.w r1, #524288 ; 0x80000 - 800fb0c: 6838 ldr r0, [r7, #0] - 800fb0e: f7f6 fe38 bl 8006782 - 800fb12: 4603 mov r3, r0 - 800fb14: 2b00 cmp r3, #0 - 800fb16: d006 beq.n 800fb26 + 800fa74: f44f 2100 mov.w r1, #524288 ; 0x80000 + 800fa78: 6838 ldr r0, [r7, #0] + 800fa7a: f7f6 fe4c bl 8006716 + 800fa7e: 4603 mov r3, r0 + 800fa80: 2b00 cmp r3, #0 + 800fa82: d006 beq.n 800fa92 clip_coords_for_children = *clip_area_ori; - 800fb18: 6afa ldr r2, [r7, #44] ; 0x2c - 800fb1a: f107 0308 add.w r3, r7, #8 - 800fb1e: 6810 ldr r0, [r2, #0] - 800fb20: 6851 ldr r1, [r2, #4] - 800fb22: c303 stmia r3!, {r0, r1} - 800fb24: e011 b.n 800fb4a + 800fa84: 6afa ldr r2, [r7, #44] ; 0x2c + 800fa86: f107 0308 add.w r3, r7, #8 + 800fa8a: 6810 ldr r0, [r2, #0] + 800fa8c: 6851 ldr r1, [r2, #4] + 800fa8e: c303 stmia r3!, {r0, r1} + 800fa90: e011 b.n 800fab6 } else { if(!_lv_area_intersect(&clip_coords_for_children, clip_area_ori, &obj->coords)) { - 800fb26: 683b ldr r3, [r7, #0] - 800fb28: f103 0214 add.w r2, r3, #20 - 800fb2c: f107 0308 add.w r3, r7, #8 - 800fb30: 6af9 ldr r1, [r7, #44] ; 0x2c - 800fb32: 4618 mov r0, r3 - 800fb34: f021 fab8 bl 80310a8 <_lv_area_intersect> - 800fb38: 4603 mov r3, r0 - 800fb3a: f083 0301 eor.w r3, r3, #1 - 800fb3e: b2db uxtb r3, r3 - 800fb40: 2b00 cmp r3, #0 - 800fb42: d002 beq.n 800fb4a + 800fa92: 683b ldr r3, [r7, #0] + 800fa94: f103 0214 add.w r2, r3, #20 + 800fa98: f107 0308 add.w r3, r7, #8 + 800fa9c: 6af9 ldr r1, [r7, #44] ; 0x2c + 800fa9e: 4618 mov r0, r3 + 800faa0: f021 fab8 bl 8031014 <_lv_area_intersect> + 800faa4: 4603 mov r3, r0 + 800faa6: f083 0301 eor.w r3, r3, #1 + 800faaa: b2db uxtb r3, r3 + 800faac: 2b00 cmp r3, #0 + 800faae: d002 beq.n 800fab6 refr_children = false; - 800fb44: 2300 movs r3, #0 - 800fb46: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 800fab0: 2300 movs r3, #0 + 800fab2: f887 3037 strb.w r3, [r7, #55] ; 0x37 } } if(refr_children) { - 800fb4a: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 800fb4e: 2b00 cmp r3, #0 - 800fb50: d01d beq.n 800fb8e + 800fab6: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 800faba: 2b00 cmp r3, #0 + 800fabc: d01d beq.n 800fafa draw_ctx->clip_area = &clip_coords_for_children; - 800fb52: 687b ldr r3, [r7, #4] - 800fb54: f107 0208 add.w r2, r7, #8 - 800fb58: 609a str r2, [r3, #8] + 800fabe: 687b ldr r3, [r7, #4] + 800fac0: f107 0208 add.w r2, r7, #8 + 800fac4: 609a str r2, [r3, #8] uint32_t i; uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 800fb5a: 6838 ldr r0, [r7, #0] - 800fb5c: f7ff fe18 bl 800f790 - 800fb60: 6278 str r0, [r7, #36] ; 0x24 + 800fac6: 6838 ldr r0, [r7, #0] + 800fac8: f7ff fe18 bl 800f6fc + 800facc: 6278 str r0, [r7, #36] ; 0x24 for(i = 0; i < child_cnt; i++) { - 800fb62: 2300 movs r3, #0 - 800fb64: 633b str r3, [r7, #48] ; 0x30 - 800fb66: e00e b.n 800fb86 + 800face: 2300 movs r3, #0 + 800fad0: 633b str r3, [r7, #48] ; 0x30 + 800fad2: e00e b.n 800faf2 lv_obj_t * child = obj->spec_attr->children[i]; - 800fb68: 683b ldr r3, [r7, #0] - 800fb6a: 689b ldr r3, [r3, #8] - 800fb6c: 681a ldr r2, [r3, #0] - 800fb6e: 6b3b ldr r3, [r7, #48] ; 0x30 - 800fb70: 009b lsls r3, r3, #2 - 800fb72: 4413 add r3, r2 - 800fb74: 681b ldr r3, [r3, #0] - 800fb76: 623b str r3, [r7, #32] + 800fad4: 683b ldr r3, [r7, #0] + 800fad6: 689b ldr r3, [r3, #8] + 800fad8: 681a ldr r2, [r3, #0] + 800fada: 6b3b ldr r3, [r7, #48] ; 0x30 + 800fadc: 009b lsls r3, r3, #2 + 800fade: 4413 add r3, r2 + 800fae0: 681b ldr r3, [r3, #0] + 800fae2: 623b str r3, [r7, #32] lv_refr_obj(draw_ctx, child); - 800fb78: 6a39 ldr r1, [r7, #32] - 800fb7a: 6878 ldr r0, [r7, #4] - 800fb7c: f7ff ff7c bl 800fa78 + 800fae4: 6a39 ldr r1, [r7, #32] + 800fae6: 6878 ldr r0, [r7, #4] + 800fae8: f7ff ff7c bl 800f9e4 for(i = 0; i < child_cnt; i++) { - 800fb80: 6b3b ldr r3, [r7, #48] ; 0x30 - 800fb82: 3301 adds r3, #1 - 800fb84: 633b str r3, [r7, #48] ; 0x30 - 800fb86: 6b3a ldr r2, [r7, #48] ; 0x30 - 800fb88: 6a7b ldr r3, [r7, #36] ; 0x24 - 800fb8a: 429a cmp r2, r3 - 800fb8c: d3ec bcc.n 800fb68 + 800faec: 6b3b ldr r3, [r7, #48] ; 0x30 + 800faee: 3301 adds r3, #1 + 800faf0: 633b str r3, [r7, #48] ; 0x30 + 800faf2: 6b3a ldr r2, [r7, #48] ; 0x30 + 800faf4: 6a7b ldr r3, [r7, #36] ; 0x24 + 800faf6: 429a cmp r2, r3 + 800faf8: d3ec bcc.n 800fad4 } } draw_ctx->clip_area = &clip_coords_for_obj; - 800fb8e: 687b ldr r3, [r7, #4] - 800fb90: f107 0218 add.w r2, r7, #24 - 800fb94: 609a str r2, [r3, #8] + 800fafa: 687b ldr r3, [r7, #4] + 800fafc: f107 0218 add.w r2, r7, #24 + 800fb00: 609a str r2, [r3, #8] /*If all the children are redrawn make 'post draw' draw*/ lv_event_send(obj, LV_EVENT_DRAW_POST_BEGIN, draw_ctx); - 800fb96: 687a ldr r2, [r7, #4] - 800fb98: 2117 movs r1, #23 - 800fb9a: 6838 ldr r0, [r7, #0] - 800fb9c: f7f2 fc70 bl 8002480 + 800fb02: 687a ldr r2, [r7, #4] + 800fb04: 2117 movs r1, #23 + 800fb06: 6838 ldr r0, [r7, #0] + 800fb08: f7f2 fc84 bl 8002414 lv_event_send(obj, LV_EVENT_DRAW_POST, draw_ctx); - 800fba0: 687a ldr r2, [r7, #4] - 800fba2: 2118 movs r1, #24 - 800fba4: 6838 ldr r0, [r7, #0] - 800fba6: f7f2 fc6b bl 8002480 + 800fb0c: 687a ldr r2, [r7, #4] + 800fb0e: 2118 movs r1, #24 + 800fb10: 6838 ldr r0, [r7, #0] + 800fb12: f7f2 fc7f bl 8002414 lv_event_send(obj, LV_EVENT_DRAW_POST_END, draw_ctx); - 800fbaa: 687a ldr r2, [r7, #4] - 800fbac: 2119 movs r1, #25 - 800fbae: 6838 ldr r0, [r7, #0] - 800fbb0: f7f2 fc66 bl 8002480 + 800fb16: 687a ldr r2, [r7, #4] + 800fb18: 2119 movs r1, #25 + 800fb1a: 6838 ldr r0, [r7, #0] + 800fb1c: f7f2 fc7a bl 8002414 draw_ctx->clip_area = clip_area_ori; - 800fbb4: 687b ldr r3, [r7, #4] - 800fbb6: 6afa ldr r2, [r7, #44] ; 0x2c - 800fbb8: 609a str r2, [r3, #8] - 800fbba: e002 b.n 800fbc2 + 800fb20: 687b ldr r3, [r7, #4] + 800fb22: 6afa ldr r2, [r7, #44] ; 0x2c + 800fb24: 609a str r2, [r3, #8] + 800fb26: e002 b.n 800fb2e if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return; - 800fbbc: bf00 nop - 800fbbe: e000 b.n 800fbc2 + 800fb28: bf00 nop + 800fb2a: e000 b.n 800fb2e if(!_lv_area_intersect(&clip_coords_for_obj, clip_area_ori, &obj_coords_ext)) return; - 800fbc0: bf00 nop + 800fb2c: bf00 nop } - 800fbc2: 3738 adds r7, #56 ; 0x38 - 800fbc4: 46bd mov sp, r7 - 800fbc6: bd80 pop {r7, pc} + 800fb2e: 3738 adds r7, #56 ; 0x38 + 800fb30: 46bd mov sp, r7 + 800fb32: bd80 pop {r7, pc} -0800fbc8 <_lv_inv_area>: +0800fb34 <_lv_inv_area>: * @param area_p pointer to area which should be invalidated (NULL: delete the invalidated areas) * @param disp pointer to display where the area should be invalidated (NULL can be used if there is * only one display) */ void _lv_inv_area(lv_disp_t * disp, const lv_area_t * area_p) { - 800fbc8: b580 push {r7, lr} - 800fbca: b088 sub sp, #32 - 800fbcc: af00 add r7, sp, #0 - 800fbce: 6078 str r0, [r7, #4] - 800fbd0: 6039 str r1, [r7, #0] + 800fb34: b580 push {r7, lr} + 800fb36: b088 sub sp, #32 + 800fb38: af00 add r7, sp, #0 + 800fb3a: 6078 str r0, [r7, #4] + 800fb3c: 6039 str r1, [r7, #0] if(!disp) disp = lv_disp_get_default(); - 800fbd2: 687b ldr r3, [r7, #4] - 800fbd4: 2b00 cmp r3, #0 - 800fbd6: d102 bne.n 800fbde <_lv_inv_area+0x16> - 800fbd8: f020 fc78 bl 80304cc - 800fbdc: 6078 str r0, [r7, #4] + 800fb3e: 687b ldr r3, [r7, #4] + 800fb40: 2b00 cmp r3, #0 + 800fb42: d102 bne.n 800fb4a <_lv_inv_area+0x16> + 800fb44: f020 fc78 bl 8030438 + 800fb48: 6078 str r0, [r7, #4] if(!disp) return; - 800fbde: 687b ldr r3, [r7, #4] - 800fbe0: 2b00 cmp r3, #0 - 800fbe2: f000 80aa beq.w 800fd3a <_lv_inv_area+0x172> + 800fb4a: 687b ldr r3, [r7, #4] + 800fb4c: 2b00 cmp r3, #0 + 800fb4e: f000 80aa beq.w 800fca6 <_lv_inv_area+0x172> /*Clear the invalidate buffer if the parameter is NULL*/ if(area_p == NULL) { - 800fbe6: 683b ldr r3, [r7, #0] - 800fbe8: 2b00 cmp r3, #0 - 800fbea: d104 bne.n 800fbf6 <_lv_inv_area+0x2e> + 800fb52: 683b ldr r3, [r7, #0] + 800fb54: 2b00 cmp r3, #0 + 800fb56: d104 bne.n 800fb62 <_lv_inv_area+0x2e> disp->inv_p = 0; - 800fbec: 687b ldr r3, [r7, #4] - 800fbee: 2200 movs r2, #0 - 800fbf0: f8a3 2150 strh.w r2, [r3, #336] ; 0x150 + 800fb58: 687b ldr r3, [r7, #4] + 800fb5a: 2200 movs r2, #0 + 800fb5c: f8a3 2150 strh.w r2, [r3, #336] ; 0x150 return; - 800fbf4: e0a8 b.n 800fd48 <_lv_inv_area+0x180> + 800fb60: e0a8 b.n 800fcb4 <_lv_inv_area+0x180> } lv_area_t scr_area; scr_area.x1 = 0; - 800fbf6: 2300 movs r3, #0 - 800fbf8: 82bb strh r3, [r7, #20] + 800fb62: 2300 movs r3, #0 + 800fb64: 82bb strh r3, [r7, #20] scr_area.y1 = 0; - 800fbfa: 2300 movs r3, #0 - 800fbfc: 82fb strh r3, [r7, #22] + 800fb66: 2300 movs r3, #0 + 800fb68: 82fb strh r3, [r7, #22] scr_area.x2 = lv_disp_get_hor_res(disp) - 1; - 800fbfe: 6878 ldr r0, [r7, #4] - 800fc00: f020 fc6e bl 80304e0 - 800fc04: 4603 mov r3, r0 - 800fc06: b29b uxth r3, r3 - 800fc08: 3b01 subs r3, #1 - 800fc0a: b29b uxth r3, r3 - 800fc0c: b21b sxth r3, r3 - 800fc0e: 833b strh r3, [r7, #24] + 800fb6a: 6878 ldr r0, [r7, #4] + 800fb6c: f020 fc6e bl 803044c + 800fb70: 4603 mov r3, r0 + 800fb72: b29b uxth r3, r3 + 800fb74: 3b01 subs r3, #1 + 800fb76: b29b uxth r3, r3 + 800fb78: b21b sxth r3, r3 + 800fb7a: 833b strh r3, [r7, #24] scr_area.y2 = lv_disp_get_ver_res(disp) - 1; - 800fc10: 6878 ldr r0, [r7, #4] - 800fc12: f020 fc8b bl 803052c - 800fc16: 4603 mov r3, r0 - 800fc18: b29b uxth r3, r3 - 800fc1a: 3b01 subs r3, #1 - 800fc1c: b29b uxth r3, r3 - 800fc1e: b21b sxth r3, r3 - 800fc20: 837b strh r3, [r7, #26] + 800fb7c: 6878 ldr r0, [r7, #4] + 800fb7e: f020 fc8b bl 8030498 + 800fb82: 4603 mov r3, r0 + 800fb84: b29b uxth r3, r3 + 800fb86: 3b01 subs r3, #1 + 800fb88: b29b uxth r3, r3 + 800fb8a: b21b sxth r3, r3 + 800fb8c: 837b strh r3, [r7, #26] lv_area_t com_area; bool suc; suc = _lv_area_intersect(&com_area, area_p, &scr_area); - 800fc22: f107 0214 add.w r2, r7, #20 - 800fc26: f107 030c add.w r3, r7, #12 - 800fc2a: 6839 ldr r1, [r7, #0] - 800fc2c: 4618 mov r0, r3 - 800fc2e: f021 fa3b bl 80310a8 <_lv_area_intersect> - 800fc32: 4603 mov r3, r0 - 800fc34: 777b strb r3, [r7, #29] + 800fb8e: f107 0214 add.w r2, r7, #20 + 800fb92: f107 030c add.w r3, r7, #12 + 800fb96: 6839 ldr r1, [r7, #0] + 800fb98: 4618 mov r0, r3 + 800fb9a: f021 fa3b bl 8031014 <_lv_area_intersect> + 800fb9e: 4603 mov r3, r0 + 800fba0: 777b strb r3, [r7, #29] if(suc == false) return; /*Out of the screen*/ - 800fc36: 7f7b ldrb r3, [r7, #29] - 800fc38: f083 0301 eor.w r3, r3, #1 - 800fc3c: b2db uxtb r3, r3 - 800fc3e: 2b00 cmp r3, #0 - 800fc40: d17d bne.n 800fd3e <_lv_inv_area+0x176> + 800fba2: 7f7b ldrb r3, [r7, #29] + 800fba4: f083 0301 eor.w r3, r3, #1 + 800fba8: b2db uxtb r3, r3 + 800fbaa: 2b00 cmp r3, #0 + 800fbac: d17d bne.n 800fcaa <_lv_inv_area+0x176> /*If there were at least 1 invalid area in full refresh mode, redraw the whole screen*/ if(disp->driver->full_refresh) { - 800fc42: 687b ldr r3, [r7, #4] - 800fc44: 681b ldr r3, [r3, #0] - 800fc46: 7c1b ldrb r3, [r3, #16] - 800fc48: f003 0302 and.w r3, r3, #2 - 800fc4c: b2db uxtb r3, r3 - 800fc4e: 2b00 cmp r3, #0 - 800fc50: d015 beq.n 800fc7e <_lv_inv_area+0xb6> + 800fbae: 687b ldr r3, [r7, #4] + 800fbb0: 681b ldr r3, [r3, #0] + 800fbb2: 7c1b ldrb r3, [r3, #16] + 800fbb4: f003 0302 and.w r3, r3, #2 + 800fbb8: b2db uxtb r3, r3 + 800fbba: 2b00 cmp r3, #0 + 800fbbc: d015 beq.n 800fbea <_lv_inv_area+0xb6> disp->inv_areas[0] = scr_area; - 800fc52: 687b ldr r3, [r7, #4] - 800fc54: 3330 adds r3, #48 ; 0x30 - 800fc56: f107 0214 add.w r2, r7, #20 - 800fc5a: e892 0003 ldmia.w r2, {r0, r1} - 800fc5e: e883 0003 stmia.w r3, {r0, r1} + 800fbbe: 687b ldr r3, [r7, #4] + 800fbc0: 3330 adds r3, #48 ; 0x30 + 800fbc2: f107 0214 add.w r2, r7, #20 + 800fbc6: e892 0003 ldmia.w r2, {r0, r1} + 800fbca: e883 0003 stmia.w r3, {r0, r1} disp->inv_p = 1; - 800fc62: 687b ldr r3, [r7, #4] - 800fc64: 2201 movs r2, #1 - 800fc66: f8a3 2150 strh.w r2, [r3, #336] ; 0x150 + 800fbce: 687b ldr r3, [r7, #4] + 800fbd0: 2201 movs r2, #1 + 800fbd2: f8a3 2150 strh.w r2, [r3, #336] ; 0x150 if(disp->refr_timer) lv_timer_resume(disp->refr_timer); - 800fc6a: 687b ldr r3, [r7, #4] - 800fc6c: 685b ldr r3, [r3, #4] - 800fc6e: 2b00 cmp r3, #0 - 800fc70: d067 beq.n 800fd42 <_lv_inv_area+0x17a> - 800fc72: 687b ldr r3, [r7, #4] - 800fc74: 685b ldr r3, [r3, #4] - 800fc76: 4618 mov r0, r3 - 800fc78: f025 fa96 bl 80351a8 + 800fbd6: 687b ldr r3, [r7, #4] + 800fbd8: 685b ldr r3, [r3, #4] + 800fbda: 2b00 cmp r3, #0 + 800fbdc: d067 beq.n 800fcae <_lv_inv_area+0x17a> + 800fbde: 687b ldr r3, [r7, #4] + 800fbe0: 685b ldr r3, [r3, #4] + 800fbe2: 4618 mov r0, r3 + 800fbe4: f025 fa96 bl 8035114 return; - 800fc7c: e061 b.n 800fd42 <_lv_inv_area+0x17a> + 800fbe8: e061 b.n 800fcae <_lv_inv_area+0x17a> } if(disp->driver->rounder_cb) disp->driver->rounder_cb(disp->driver, &com_area); - 800fc7e: 687b ldr r3, [r7, #4] - 800fc80: 681b ldr r3, [r3, #0] - 800fc82: 699b ldr r3, [r3, #24] - 800fc84: 2b00 cmp r3, #0 - 800fc86: d008 beq.n 800fc9a <_lv_inv_area+0xd2> - 800fc88: 687b ldr r3, [r7, #4] - 800fc8a: 681b ldr r3, [r3, #0] - 800fc8c: 699b ldr r3, [r3, #24] - 800fc8e: 687a ldr r2, [r7, #4] - 800fc90: 6812 ldr r2, [r2, #0] - 800fc92: f107 010c add.w r1, r7, #12 - 800fc96: 4610 mov r0, r2 - 800fc98: 4798 blx r3 + 800fbea: 687b ldr r3, [r7, #4] + 800fbec: 681b ldr r3, [r3, #0] + 800fbee: 699b ldr r3, [r3, #24] + 800fbf0: 2b00 cmp r3, #0 + 800fbf2: d008 beq.n 800fc06 <_lv_inv_area+0xd2> + 800fbf4: 687b ldr r3, [r7, #4] + 800fbf6: 681b ldr r3, [r3, #0] + 800fbf8: 699b ldr r3, [r3, #24] + 800fbfa: 687a ldr r2, [r7, #4] + 800fbfc: 6812 ldr r2, [r2, #0] + 800fbfe: f107 010c add.w r1, r7, #12 + 800fc02: 4610 mov r0, r2 + 800fc04: 4798 blx r3 /*Save only if this area is not in one of the saved areas*/ uint16_t i; for(i = 0; i < disp->inv_p; i++) { - 800fc9a: 2300 movs r3, #0 - 800fc9c: 83fb strh r3, [r7, #30] - 800fc9e: e010 b.n 800fcc2 <_lv_inv_area+0xfa> + 800fc06: 2300 movs r3, #0 + 800fc08: 83fb strh r3, [r7, #30] + 800fc0a: e010 b.n 800fc2e <_lv_inv_area+0xfa> if(_lv_area_is_in(&com_area, &disp->inv_areas[i], 0) != false) return; - 800fca0: 8bfb ldrh r3, [r7, #30] - 800fca2: 3306 adds r3, #6 - 800fca4: 00db lsls r3, r3, #3 - 800fca6: 687a ldr r2, [r7, #4] - 800fca8: 18d1 adds r1, r2, r3 - 800fcaa: f107 030c add.w r3, r7, #12 - 800fcae: 2200 movs r2, #0 - 800fcb0: 4618 mov r0, r3 - 800fcb2: f021 fbd8 bl 8031466 <_lv_area_is_in> - 800fcb6: 4603 mov r3, r0 - 800fcb8: 2b00 cmp r3, #0 - 800fcba: d144 bne.n 800fd46 <_lv_inv_area+0x17e> + 800fc0c: 8bfb ldrh r3, [r7, #30] + 800fc0e: 3306 adds r3, #6 + 800fc10: 00db lsls r3, r3, #3 + 800fc12: 687a ldr r2, [r7, #4] + 800fc14: 18d1 adds r1, r2, r3 + 800fc16: f107 030c add.w r3, r7, #12 + 800fc1a: 2200 movs r2, #0 + 800fc1c: 4618 mov r0, r3 + 800fc1e: f021 fbd8 bl 80313d2 <_lv_area_is_in> + 800fc22: 4603 mov r3, r0 + 800fc24: 2b00 cmp r3, #0 + 800fc26: d144 bne.n 800fcb2 <_lv_inv_area+0x17e> for(i = 0; i < disp->inv_p; i++) { - 800fcbc: 8bfb ldrh r3, [r7, #30] - 800fcbe: 3301 adds r3, #1 - 800fcc0: 83fb strh r3, [r7, #30] - 800fcc2: 687b ldr r3, [r7, #4] - 800fcc4: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 - 800fcc8: 8bfa ldrh r2, [r7, #30] - 800fcca: 429a cmp r2, r3 - 800fccc: d3e8 bcc.n 800fca0 <_lv_inv_area+0xd8> + 800fc28: 8bfb ldrh r3, [r7, #30] + 800fc2a: 3301 adds r3, #1 + 800fc2c: 83fb strh r3, [r7, #30] + 800fc2e: 687b ldr r3, [r7, #4] + 800fc30: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 + 800fc34: 8bfa ldrh r2, [r7, #30] + 800fc36: 429a cmp r2, r3 + 800fc38: d3e8 bcc.n 800fc0c <_lv_inv_area+0xd8> } /*Save the area*/ if(disp->inv_p < LV_INV_BUF_SIZE) { - 800fcce: 687b ldr r3, [r7, #4] - 800fcd0: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 - 800fcd4: 2b1f cmp r3, #31 - 800fcd6: d80d bhi.n 800fcf4 <_lv_inv_area+0x12c> + 800fc3a: 687b ldr r3, [r7, #4] + 800fc3c: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 + 800fc40: 2b1f cmp r3, #31 + 800fc42: d80d bhi.n 800fc60 <_lv_inv_area+0x12c> lv_area_copy(&disp->inv_areas[disp->inv_p], &com_area); - 800fcd8: 687b ldr r3, [r7, #4] - 800fcda: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 - 800fcde: 3306 adds r3, #6 - 800fce0: 00db lsls r3, r3, #3 - 800fce2: 687a ldr r2, [r7, #4] - 800fce4: 4413 add r3, r2 - 800fce6: f107 020c add.w r2, r7, #12 - 800fcea: 4611 mov r1, r2 - 800fcec: 4618 mov r0, r3 - 800fcee: f7ff fe73 bl 800f9d8 - 800fcf2: e010 b.n 800fd16 <_lv_inv_area+0x14e> + 800fc44: 687b ldr r3, [r7, #4] + 800fc46: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 + 800fc4a: 3306 adds r3, #6 + 800fc4c: 00db lsls r3, r3, #3 + 800fc4e: 687a ldr r2, [r7, #4] + 800fc50: 4413 add r3, r2 + 800fc52: f107 020c add.w r2, r7, #12 + 800fc56: 4611 mov r1, r2 + 800fc58: 4618 mov r0, r3 + 800fc5a: f7ff fe73 bl 800f944 + 800fc5e: e010 b.n 800fc82 <_lv_inv_area+0x14e> } else { /*If no place for the area add the screen*/ disp->inv_p = 0; - 800fcf4: 687b ldr r3, [r7, #4] - 800fcf6: 2200 movs r2, #0 - 800fcf8: f8a3 2150 strh.w r2, [r3, #336] ; 0x150 + 800fc60: 687b ldr r3, [r7, #4] + 800fc62: 2200 movs r2, #0 + 800fc64: f8a3 2150 strh.w r2, [r3, #336] ; 0x150 lv_area_copy(&disp->inv_areas[disp->inv_p], &scr_area); - 800fcfc: 687b ldr r3, [r7, #4] - 800fcfe: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 - 800fd02: 3306 adds r3, #6 - 800fd04: 00db lsls r3, r3, #3 - 800fd06: 687a ldr r2, [r7, #4] - 800fd08: 4413 add r3, r2 - 800fd0a: f107 0214 add.w r2, r7, #20 - 800fd0e: 4611 mov r1, r2 - 800fd10: 4618 mov r0, r3 - 800fd12: f7ff fe61 bl 800f9d8 + 800fc68: 687b ldr r3, [r7, #4] + 800fc6a: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 + 800fc6e: 3306 adds r3, #6 + 800fc70: 00db lsls r3, r3, #3 + 800fc72: 687a ldr r2, [r7, #4] + 800fc74: 4413 add r3, r2 + 800fc76: f107 0214 add.w r2, r7, #20 + 800fc7a: 4611 mov r1, r2 + 800fc7c: 4618 mov r0, r3 + 800fc7e: f7ff fe61 bl 800f944 } disp->inv_p++; - 800fd16: 687b ldr r3, [r7, #4] - 800fd18: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 - 800fd1c: 3301 adds r3, #1 - 800fd1e: b29a uxth r2, r3 - 800fd20: 687b ldr r3, [r7, #4] - 800fd22: f8a3 2150 strh.w r2, [r3, #336] ; 0x150 + 800fc82: 687b ldr r3, [r7, #4] + 800fc84: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 + 800fc88: 3301 adds r3, #1 + 800fc8a: b29a uxth r2, r3 + 800fc8c: 687b ldr r3, [r7, #4] + 800fc8e: f8a3 2150 strh.w r2, [r3, #336] ; 0x150 if(disp->refr_timer) lv_timer_resume(disp->refr_timer); - 800fd26: 687b ldr r3, [r7, #4] - 800fd28: 685b ldr r3, [r3, #4] - 800fd2a: 2b00 cmp r3, #0 - 800fd2c: d00c beq.n 800fd48 <_lv_inv_area+0x180> - 800fd2e: 687b ldr r3, [r7, #4] - 800fd30: 685b ldr r3, [r3, #4] - 800fd32: 4618 mov r0, r3 - 800fd34: f025 fa38 bl 80351a8 - 800fd38: e006 b.n 800fd48 <_lv_inv_area+0x180> + 800fc92: 687b ldr r3, [r7, #4] + 800fc94: 685b ldr r3, [r3, #4] + 800fc96: 2b00 cmp r3, #0 + 800fc98: d00c beq.n 800fcb4 <_lv_inv_area+0x180> + 800fc9a: 687b ldr r3, [r7, #4] + 800fc9c: 685b ldr r3, [r3, #4] + 800fc9e: 4618 mov r0, r3 + 800fca0: f025 fa38 bl 8035114 + 800fca4: e006 b.n 800fcb4 <_lv_inv_area+0x180> if(!disp) return; - 800fd3a: bf00 nop - 800fd3c: e004 b.n 800fd48 <_lv_inv_area+0x180> + 800fca6: bf00 nop + 800fca8: e004 b.n 800fcb4 <_lv_inv_area+0x180> if(suc == false) return; /*Out of the screen*/ - 800fd3e: bf00 nop - 800fd40: e002 b.n 800fd48 <_lv_inv_area+0x180> + 800fcaa: bf00 nop + 800fcac: e002 b.n 800fcb4 <_lv_inv_area+0x180> return; - 800fd42: bf00 nop - 800fd44: e000 b.n 800fd48 <_lv_inv_area+0x180> + 800fcae: bf00 nop + 800fcb0: e000 b.n 800fcb4 <_lv_inv_area+0x180> if(_lv_area_is_in(&com_area, &disp->inv_areas[i], 0) != false) return; - 800fd46: bf00 nop + 800fcb2: bf00 nop } - 800fd48: 3720 adds r7, #32 - 800fd4a: 46bd mov sp, r7 - 800fd4c: bd80 pop {r7, pc} + 800fcb4: 3720 adds r7, #32 + 800fcb6: 46bd mov sp, r7 + 800fcb8: bd80 pop {r7, pc} ... -0800fd50 <_lv_refr_get_disp_refreshing>: +0800fcbc <_lv_refr_get_disp_refreshing>: /** * Get the display which is being refreshed * @return the display being refreshed */ lv_disp_t * _lv_refr_get_disp_refreshing(void) { - 800fd50: b480 push {r7} - 800fd52: af00 add r7, sp, #0 + 800fcbc: b480 push {r7} + 800fcbe: af00 add r7, sp, #0 return disp_refr; - 800fd54: 4b02 ldr r3, [pc, #8] ; (800fd60 <_lv_refr_get_disp_refreshing+0x10>) - 800fd56: 681b ldr r3, [r3, #0] + 800fcc0: 4b02 ldr r3, [pc, #8] ; (800fccc <_lv_refr_get_disp_refreshing+0x10>) + 800fcc2: 681b ldr r3, [r3, #0] } - 800fd58: 4618 mov r0, r3 - 800fd5a: 46bd mov sp, r7 - 800fd5c: bc80 pop {r7} - 800fd5e: 4770 bx lr - 800fd60: 20001b10 .word 0x20001b10 + 800fcc4: 4618 mov r0, r3 + 800fcc6: 46bd mov sp, r7 + 800fcc8: bc80 pop {r7} + 800fcca: 4770 bx lr + 800fccc: 20001b10 .word 0x20001b10 -0800fd64 <_lv_disp_refr_timer>: +0800fcd0 <_lv_disp_refr_timer>: /** * Called periodically to handle the refreshing * @param tmr pointer to the timer itself */ void _lv_disp_refr_timer(lv_timer_t * tmr) { - 800fd64: b590 push {r4, r7, lr} - 800fd66: b089 sub sp, #36 ; 0x24 - 800fd68: af02 add r7, sp, #8 - 800fd6a: 6078 str r0, [r7, #4] + 800fcd0: b590 push {r4, r7, lr} + 800fcd2: b089 sub sp, #36 ; 0x24 + 800fcd4: af02 add r7, sp, #8 + 800fcd6: 6078 str r0, [r7, #4] REFR_TRACE("begin"); uint32_t start = lv_tick_get(); - 800fd6c: f020 fd1e bl 80307ac - 800fd70: 6178 str r0, [r7, #20] + 800fcd8: f020 fd1e bl 8030718 + 800fcdc: 6178 str r0, [r7, #20] volatile uint32_t elaps = 0; - 800fd72: 2300 movs r3, #0 - 800fd74: 613b str r3, [r7, #16] + 800fcde: 2300 movs r3, #0 + 800fce0: 613b str r3, [r7, #16] if(tmr) { - 800fd76: 687b ldr r3, [r7, #4] - 800fd78: 2b00 cmp r3, #0 - 800fd7a: d007 beq.n 800fd8c <_lv_disp_refr_timer+0x28> + 800fce2: 687b ldr r3, [r7, #4] + 800fce4: 2b00 cmp r3, #0 + 800fce6: d007 beq.n 800fcf8 <_lv_disp_refr_timer+0x28> disp_refr = tmr->user_data; - 800fd7c: 687b ldr r3, [r7, #4] - 800fd7e: 68db ldr r3, [r3, #12] - 800fd80: 4a50 ldr r2, [pc, #320] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fd82: 6013 str r3, [r2, #0] + 800fce8: 687b ldr r3, [r7, #4] + 800fcea: 68db ldr r3, [r3, #12] + 800fcec: 4a50 ldr r2, [pc, #320] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fcee: 6013 str r3, [r2, #0] #if LV_USE_PERF_MONITOR == 0 && LV_USE_MEM_MONITOR == 0 /** * Ensure the timer does not run again automatically. * This is done before refreshing in case refreshing invalidates something else. */ lv_timer_pause(tmr); - 800fd84: 6878 ldr r0, [r7, #4] - 800fd86: f025 fa01 bl 803518c - 800fd8a: e004 b.n 800fd96 <_lv_disp_refr_timer+0x32> + 800fcf0: 6878 ldr r0, [r7, #4] + 800fcf2: f025 fa01 bl 80350f8 + 800fcf6: e004 b.n 800fd02 <_lv_disp_refr_timer+0x32> #endif } else { disp_refr = lv_disp_get_default(); - 800fd8c: f020 fb9e bl 80304cc - 800fd90: 4603 mov r3, r0 - 800fd92: 4a4c ldr r2, [pc, #304] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fd94: 6013 str r3, [r2, #0] + 800fcf8: f020 fb9e bl 8030438 + 800fcfc: 4603 mov r3, r0 + 800fcfe: 4a4c ldr r2, [pc, #304] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fd00: 6013 str r3, [r2, #0] } /*Refresh the screen's layout if required*/ lv_obj_update_layout(disp_refr->act_scr); - 800fd96: 4b4b ldr r3, [pc, #300] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fd98: 681b ldr r3, [r3, #0] - 800fd9a: 691b ldr r3, [r3, #16] - 800fd9c: 4618 mov r0, r3 - 800fd9e: f7f9 fdcd bl 800993c + 800fd02: 4b4b ldr r3, [pc, #300] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fd04: 681b ldr r3, [r3, #0] + 800fd06: 691b ldr r3, [r3, #16] + 800fd08: 4618 mov r0, r3 + 800fd0a: f7f9 fde1 bl 80098d0 if(disp_refr->prev_scr) lv_obj_update_layout(disp_refr->prev_scr); - 800fda2: 4b48 ldr r3, [pc, #288] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fda4: 681b ldr r3, [r3, #0] - 800fda6: 695b ldr r3, [r3, #20] - 800fda8: 2b00 cmp r3, #0 - 800fdaa: d005 beq.n 800fdb8 <_lv_disp_refr_timer+0x54> - 800fdac: 4b45 ldr r3, [pc, #276] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fdae: 681b ldr r3, [r3, #0] - 800fdb0: 695b ldr r3, [r3, #20] - 800fdb2: 4618 mov r0, r3 - 800fdb4: f7f9 fdc2 bl 800993c + 800fd0e: 4b48 ldr r3, [pc, #288] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fd10: 681b ldr r3, [r3, #0] + 800fd12: 695b ldr r3, [r3, #20] + 800fd14: 2b00 cmp r3, #0 + 800fd16: d005 beq.n 800fd24 <_lv_disp_refr_timer+0x54> + 800fd18: 4b45 ldr r3, [pc, #276] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fd1a: 681b ldr r3, [r3, #0] + 800fd1c: 695b ldr r3, [r3, #20] + 800fd1e: 4618 mov r0, r3 + 800fd20: f7f9 fdd6 bl 80098d0 lv_obj_update_layout(disp_refr->top_layer); - 800fdb8: 4b42 ldr r3, [pc, #264] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fdba: 681b ldr r3, [r3, #0] - 800fdbc: 69db ldr r3, [r3, #28] - 800fdbe: 4618 mov r0, r3 - 800fdc0: f7f9 fdbc bl 800993c + 800fd24: 4b42 ldr r3, [pc, #264] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fd26: 681b ldr r3, [r3, #0] + 800fd28: 69db ldr r3, [r3, #28] + 800fd2a: 4618 mov r0, r3 + 800fd2c: f7f9 fdd0 bl 80098d0 lv_obj_update_layout(disp_refr->sys_layer); - 800fdc4: 4b3f ldr r3, [pc, #252] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fdc6: 681b ldr r3, [r3, #0] - 800fdc8: 6a1b ldr r3, [r3, #32] - 800fdca: 4618 mov r0, r3 - 800fdcc: f7f9 fdb6 bl 800993c + 800fd30: 4b3f ldr r3, [pc, #252] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fd32: 681b ldr r3, [r3, #0] + 800fd34: 6a1b ldr r3, [r3, #32] + 800fd36: 4618 mov r0, r3 + 800fd38: f7f9 fdca bl 80098d0 /*Do nothing if there is no active screen*/ if(disp_refr->act_scr == NULL) { - 800fdd0: 4b3c ldr r3, [pc, #240] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fdd2: 681b ldr r3, [r3, #0] - 800fdd4: 691b ldr r3, [r3, #16] - 800fdd6: 2b00 cmp r3, #0 - 800fdd8: d105 bne.n 800fde6 <_lv_disp_refr_timer+0x82> + 800fd3c: 4b3c ldr r3, [pc, #240] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fd3e: 681b ldr r3, [r3, #0] + 800fd40: 691b ldr r3, [r3, #16] + 800fd42: 2b00 cmp r3, #0 + 800fd44: d105 bne.n 800fd52 <_lv_disp_refr_timer+0x82> disp_refr->inv_p = 0; - 800fdda: 4b3a ldr r3, [pc, #232] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fddc: 681b ldr r3, [r3, #0] - 800fdde: 2200 movs r2, #0 - 800fde0: f8a3 2150 strh.w r2, [r3, #336] ; 0x150 + 800fd46: 4b3a ldr r3, [pc, #232] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fd48: 681b ldr r3, [r3, #0] + 800fd4a: 2200 movs r2, #0 + 800fd4c: f8a3 2150 strh.w r2, [r3, #336] ; 0x150 LV_LOG_WARN("there is no active screen"); REFR_TRACE("finished"); return; - 800fde4: e06b b.n 800febe <_lv_disp_refr_timer+0x15a> + 800fd50: e06b b.n 800fe2a <_lv_disp_refr_timer+0x15a> } lv_refr_join_area(); - 800fde6: f000 f871 bl 800fecc + 800fd52: f000 f871 bl 800fe38 lv_refr_areas(); - 800fdea: f000 f907 bl 800fffc + 800fd56: f000 f907 bl 800ff68 /*If refresh happened ...*/ if(disp_refr->inv_p != 0) { - 800fdee: 4b35 ldr r3, [pc, #212] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fdf0: 681b ldr r3, [r3, #0] - 800fdf2: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 - 800fdf6: 2b00 cmp r3, #0 - 800fdf8: d05b beq.n 800feb2 <_lv_disp_refr_timer+0x14e> + 800fd5a: 4b35 ldr r3, [pc, #212] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fd5c: 681b ldr r3, [r3, #0] + 800fd5e: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 + 800fd62: 2b00 cmp r3, #0 + 800fd64: d05b beq.n 800fe1e <_lv_disp_refr_timer+0x14e> if(disp_refr->driver->full_refresh) { - 800fdfa: 4b32 ldr r3, [pc, #200] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fdfc: 681b ldr r3, [r3, #0] - 800fdfe: 681b ldr r3, [r3, #0] - 800fe00: 7c1b ldrb r3, [r3, #16] - 800fe02: f003 0302 and.w r3, r3, #2 - 800fe06: b2db uxtb r3, r3 - 800fe08: 2b00 cmp r3, #0 - 800fe0a: d027 beq.n 800fe5c <_lv_disp_refr_timer+0xf8> + 800fd66: 4b32 ldr r3, [pc, #200] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fd68: 681b ldr r3, [r3, #0] + 800fd6a: 681b ldr r3, [r3, #0] + 800fd6c: 7c1b ldrb r3, [r3, #16] + 800fd6e: f003 0302 and.w r3, r3, #2 + 800fd72: b2db uxtb r3, r3 + 800fd74: 2b00 cmp r3, #0 + 800fd76: d027 beq.n 800fdc8 <_lv_disp_refr_timer+0xf8> lv_area_t disp_area; lv_area_set(&disp_area, 0, 0, lv_disp_get_hor_res(disp_refr) - 1, lv_disp_get_ver_res(disp_refr) - 1); - 800fe0c: 4b2d ldr r3, [pc, #180] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fe0e: 681b ldr r3, [r3, #0] - 800fe10: 4618 mov r0, r3 - 800fe12: f020 fb65 bl 80304e0 - 800fe16: 4603 mov r3, r0 - 800fe18: b29b uxth r3, r3 - 800fe1a: 3b01 subs r3, #1 - 800fe1c: b29b uxth r3, r3 - 800fe1e: b21c sxth r4, r3 - 800fe20: 4b28 ldr r3, [pc, #160] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fe22: 681b ldr r3, [r3, #0] - 800fe24: 4618 mov r0, r3 - 800fe26: f020 fb81 bl 803052c - 800fe2a: 4603 mov r3, r0 - 800fe2c: b29b uxth r3, r3 - 800fe2e: 3b01 subs r3, #1 - 800fe30: b29b uxth r3, r3 - 800fe32: b21b sxth r3, r3 - 800fe34: f107 0008 add.w r0, r7, #8 - 800fe38: 9300 str r3, [sp, #0] - 800fe3a: 4623 mov r3, r4 - 800fe3c: 2200 movs r2, #0 - 800fe3e: 2100 movs r1, #0 - 800fe40: f021 f85c bl 8030efc + 800fd78: 4b2d ldr r3, [pc, #180] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fd7a: 681b ldr r3, [r3, #0] + 800fd7c: 4618 mov r0, r3 + 800fd7e: f020 fb65 bl 803044c + 800fd82: 4603 mov r3, r0 + 800fd84: b29b uxth r3, r3 + 800fd86: 3b01 subs r3, #1 + 800fd88: b29b uxth r3, r3 + 800fd8a: b21c sxth r4, r3 + 800fd8c: 4b28 ldr r3, [pc, #160] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fd8e: 681b ldr r3, [r3, #0] + 800fd90: 4618 mov r0, r3 + 800fd92: f020 fb81 bl 8030498 + 800fd96: 4603 mov r3, r0 + 800fd98: b29b uxth r3, r3 + 800fd9a: 3b01 subs r3, #1 + 800fd9c: b29b uxth r3, r3 + 800fd9e: b21b sxth r3, r3 + 800fda0: f107 0008 add.w r0, r7, #8 + 800fda4: 9300 str r3, [sp, #0] + 800fda6: 4623 mov r3, r4 + 800fda8: 2200 movs r2, #0 + 800fdaa: 2100 movs r1, #0 + 800fdac: f021 f85c bl 8030e68 disp_refr->driver->draw_ctx->buf_area = &disp_area; - 800fe44: 4b1f ldr r3, [pc, #124] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fe46: 681b ldr r3, [r3, #0] - 800fe48: 681b ldr r3, [r3, #0] - 800fe4a: 6b9b ldr r3, [r3, #56] ; 0x38 - 800fe4c: f107 0208 add.w r2, r7, #8 - 800fe50: 605a str r2, [r3, #4] + 800fdb0: 4b1f ldr r3, [pc, #124] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fdb2: 681b ldr r3, [r3, #0] + 800fdb4: 681b ldr r3, [r3, #0] + 800fdb6: 6b9b ldr r3, [r3, #56] ; 0x38 + 800fdb8: f107 0208 add.w r2, r7, #8 + 800fdbc: 605a str r2, [r3, #4] draw_buf_flush(disp_refr); - 800fe52: 4b1c ldr r3, [pc, #112] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fe54: 681b ldr r3, [r3, #0] - 800fe56: 4618 mov r0, r3 - 800fe58: f000 ffde bl 8010e18 + 800fdbe: 4b1c ldr r3, [pc, #112] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fdc0: 681b ldr r3, [r3, #0] + 800fdc2: 4618 mov r0, r3 + 800fdc4: f000 ffde bl 8010d84 } /*Clean up*/ lv_memset_00(disp_refr->inv_areas, sizeof(disp_refr->inv_areas)); - 800fe5c: 4b19 ldr r3, [pc, #100] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fe5e: 681b ldr r3, [r3, #0] - 800fe60: 3330 adds r3, #48 ; 0x30 - 800fe62: f44f 7180 mov.w r1, #256 ; 0x100 - 800fe66: 4618 mov r0, r3 - 800fe68: f023 f972 bl 8033150 + 800fdc8: 4b19 ldr r3, [pc, #100] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fdca: 681b ldr r3, [r3, #0] + 800fdcc: 3330 adds r3, #48 ; 0x30 + 800fdce: f44f 7180 mov.w r1, #256 ; 0x100 + 800fdd2: 4618 mov r0, r3 + 800fdd4: f023 f972 bl 80330bc lv_memset_00(disp_refr->inv_area_joined, sizeof(disp_refr->inv_area_joined)); - 800fe6c: 4b15 ldr r3, [pc, #84] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fe6e: 681b ldr r3, [r3, #0] - 800fe70: f503 7398 add.w r3, r3, #304 ; 0x130 - 800fe74: 2120 movs r1, #32 - 800fe76: 4618 mov r0, r3 - 800fe78: f023 f96a bl 8033150 + 800fdd8: 4b15 ldr r3, [pc, #84] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fdda: 681b ldr r3, [r3, #0] + 800fddc: f503 7398 add.w r3, r3, #304 ; 0x130 + 800fde0: 2120 movs r1, #32 + 800fde2: 4618 mov r0, r3 + 800fde4: f023 f96a bl 80330bc disp_refr->inv_p = 0; - 800fe7c: 4b11 ldr r3, [pc, #68] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fe7e: 681b ldr r3, [r3, #0] - 800fe80: 2200 movs r2, #0 - 800fe82: f8a3 2150 strh.w r2, [r3, #336] ; 0x150 + 800fde8: 4b11 ldr r3, [pc, #68] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fdea: 681b ldr r3, [r3, #0] + 800fdec: 2200 movs r2, #0 + 800fdee: f8a3 2150 strh.w r2, [r3, #336] ; 0x150 elaps = lv_tick_elaps(start); - 800fe86: 6978 ldr r0, [r7, #20] - 800fe88: f020 fca8 bl 80307dc - 800fe8c: 4603 mov r3, r0 - 800fe8e: 613b str r3, [r7, #16] + 800fdf2: 6978 ldr r0, [r7, #20] + 800fdf4: f020 fca8 bl 8030748 + 800fdf8: 4603 mov r3, r0 + 800fdfa: 613b str r3, [r7, #16] /*Call monitor cb if present*/ if(disp_refr->driver->monitor_cb) { - 800fe90: 4b0c ldr r3, [pc, #48] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fe92: 681b ldr r3, [r3, #0] - 800fe94: 681b ldr r3, [r3, #0] - 800fe96: 6a5b ldr r3, [r3, #36] ; 0x24 - 800fe98: 2b00 cmp r3, #0 - 800fe9a: d00a beq.n 800feb2 <_lv_disp_refr_timer+0x14e> + 800fdfc: 4b0c ldr r3, [pc, #48] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fdfe: 681b ldr r3, [r3, #0] + 800fe00: 681b ldr r3, [r3, #0] + 800fe02: 6a5b ldr r3, [r3, #36] ; 0x24 + 800fe04: 2b00 cmp r3, #0 + 800fe06: d00a beq.n 800fe1e <_lv_disp_refr_timer+0x14e> disp_refr->driver->monitor_cb(disp_refr->driver, elaps, px_num); - 800fe9c: 4b09 ldr r3, [pc, #36] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fe9e: 681b ldr r3, [r3, #0] - 800fea0: 681b ldr r3, [r3, #0] - 800fea2: 6a5b ldr r3, [r3, #36] ; 0x24 - 800fea4: 4a07 ldr r2, [pc, #28] ; (800fec4 <_lv_disp_refr_timer+0x160>) - 800fea6: 6812 ldr r2, [r2, #0] - 800fea8: 6810 ldr r0, [r2, #0] - 800feaa: 6939 ldr r1, [r7, #16] - 800feac: 4a06 ldr r2, [pc, #24] ; (800fec8 <_lv_disp_refr_timer+0x164>) - 800feae: 6812 ldr r2, [r2, #0] - 800feb0: 4798 blx r3 + 800fe08: 4b09 ldr r3, [pc, #36] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fe0a: 681b ldr r3, [r3, #0] + 800fe0c: 681b ldr r3, [r3, #0] + 800fe0e: 6a5b ldr r3, [r3, #36] ; 0x24 + 800fe10: 4a07 ldr r2, [pc, #28] ; (800fe30 <_lv_disp_refr_timer+0x160>) + 800fe12: 6812 ldr r2, [r2, #0] + 800fe14: 6810 ldr r0, [r2, #0] + 800fe16: 6939 ldr r1, [r7, #16] + 800fe18: 4a06 ldr r2, [pc, #24] ; (800fe34 <_lv_disp_refr_timer+0x164>) + 800fe1a: 6812 ldr r2, [r2, #0] + 800fe1c: 4798 blx r3 } } lv_mem_buf_free_all(); - 800feb2: f022 fe75 bl 8032ba0 + 800fe1e: f022 fe75 bl 8032b0c _lv_font_clean_up_fmt_txt(); - 800feb6: f01f ff12 bl 802fcde <_lv_font_clean_up_fmt_txt> + 800fe22: f01f ff12 bl 802fc4a <_lv_font_clean_up_fmt_txt> #if LV_DRAW_COMPLEX _lv_draw_mask_cleanup(); - 800feba: f003 f9bd bl 8013238 <_lv_draw_mask_cleanup> + 800fe26: f003 f9bd bl 80131a4 <_lv_draw_mask_cleanup> mon.frag_pct); } #endif REFR_TRACE("finished"); } - 800febe: 371c adds r7, #28 - 800fec0: 46bd mov sp, r7 - 800fec2: bd90 pop {r4, r7, pc} - 800fec4: 20001b10 .word 0x20001b10 - 800fec8: 20001b0c .word 0x20001b0c + 800fe2a: 371c adds r7, #28 + 800fe2c: 46bd mov sp, r7 + 800fe2e: bd90 pop {r4, r7, pc} + 800fe30: 20001b10 .word 0x20001b10 + 800fe34: 20001b0c .word 0x20001b0c -0800fecc : +0800fe38 : /** * Join the areas which has got common parts */ static void lv_refr_join_area(void) { - 800fecc: b5b0 push {r4, r5, r7, lr} - 800fece: b084 sub sp, #16 - 800fed0: af00 add r7, sp, #0 + 800fe38: b5b0 push {r4, r5, r7, lr} + 800fe3a: b084 sub sp, #16 + 800fe3c: af00 add r7, sp, #0 uint32_t join_from; uint32_t join_in; lv_area_t joined_area; for(join_in = 0; join_in < disp_refr->inv_p; join_in++) { - 800fed2: 2300 movs r3, #0 - 800fed4: 60bb str r3, [r7, #8] - 800fed6: e080 b.n 800ffda + 800fe3e: 2300 movs r3, #0 + 800fe40: 60bb str r3, [r7, #8] + 800fe42: e080 b.n 800ff46 if(disp_refr->inv_area_joined[join_in] != 0) continue; - 800fed8: 4b47 ldr r3, [pc, #284] ; (800fff8 ) - 800feda: 681a ldr r2, [r3, #0] - 800fedc: 68bb ldr r3, [r7, #8] - 800fede: 4413 add r3, r2 - 800fee0: f503 7398 add.w r3, r3, #304 ; 0x130 - 800fee4: 781b ldrb r3, [r3, #0] - 800fee6: 2b00 cmp r3, #0 - 800fee8: d173 bne.n 800ffd2 + 800fe44: 4b47 ldr r3, [pc, #284] ; (800ff64 ) + 800fe46: 681a ldr r2, [r3, #0] + 800fe48: 68bb ldr r3, [r7, #8] + 800fe4a: 4413 add r3, r2 + 800fe4c: f503 7398 add.w r3, r3, #304 ; 0x130 + 800fe50: 781b ldrb r3, [r3, #0] + 800fe52: 2b00 cmp r3, #0 + 800fe54: d173 bne.n 800ff3e /*Check all areas to join them in 'join_in'*/ for(join_from = 0; join_from < disp_refr->inv_p; join_from++) { - 800feea: 2300 movs r3, #0 - 800feec: 60fb str r3, [r7, #12] - 800feee: e067 b.n 800ffc0 + 800fe56: 2300 movs r3, #0 + 800fe58: 60fb str r3, [r7, #12] + 800fe5a: e067 b.n 800ff2c /*Handle only unjoined areas and ignore itself*/ if(disp_refr->inv_area_joined[join_from] != 0 || join_in == join_from) { - 800fef0: 4b41 ldr r3, [pc, #260] ; (800fff8 ) - 800fef2: 681a ldr r2, [r3, #0] - 800fef4: 68fb ldr r3, [r7, #12] - 800fef6: 4413 add r3, r2 - 800fef8: f503 7398 add.w r3, r3, #304 ; 0x130 - 800fefc: 781b ldrb r3, [r3, #0] - 800fefe: 2b00 cmp r3, #0 - 800ff00: d158 bne.n 800ffb4 - 800ff02: 68ba ldr r2, [r7, #8] - 800ff04: 68fb ldr r3, [r7, #12] - 800ff06: 429a cmp r2, r3 - 800ff08: d054 beq.n 800ffb4 + 800fe5c: 4b41 ldr r3, [pc, #260] ; (800ff64 ) + 800fe5e: 681a ldr r2, [r3, #0] + 800fe60: 68fb ldr r3, [r7, #12] + 800fe62: 4413 add r3, r2 + 800fe64: f503 7398 add.w r3, r3, #304 ; 0x130 + 800fe68: 781b ldrb r3, [r3, #0] + 800fe6a: 2b00 cmp r3, #0 + 800fe6c: d158 bne.n 800ff20 + 800fe6e: 68ba ldr r2, [r7, #8] + 800fe70: 68fb ldr r3, [r7, #12] + 800fe72: 429a cmp r2, r3 + 800fe74: d054 beq.n 800ff20 continue; } /*Check if the areas are on each other*/ if(_lv_area_is_on(&disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]) == false) { - 800ff0a: 4b3b ldr r3, [pc, #236] ; (800fff8 ) - 800ff0c: 681a ldr r2, [r3, #0] - 800ff0e: 68bb ldr r3, [r7, #8] - 800ff10: 3306 adds r3, #6 - 800ff12: 00db lsls r3, r3, #3 - 800ff14: 18d0 adds r0, r2, r3 - 800ff16: 4b38 ldr r3, [pc, #224] ; (800fff8 ) - 800ff18: 681a ldr r2, [r3, #0] - 800ff1a: 68fb ldr r3, [r7, #12] - 800ff1c: 3306 adds r3, #6 - 800ff1e: 00db lsls r3, r3, #3 - 800ff20: 4413 add r3, r2 - 800ff22: 4619 mov r1, r3 - 800ff24: f021 fa72 bl 803140c <_lv_area_is_on> - 800ff28: 4603 mov r3, r0 - 800ff2a: f083 0301 eor.w r3, r3, #1 - 800ff2e: b2db uxtb r3, r3 - 800ff30: 2b00 cmp r3, #0 - 800ff32: d141 bne.n 800ffb8 + 800fe76: 4b3b ldr r3, [pc, #236] ; (800ff64 ) + 800fe78: 681a ldr r2, [r3, #0] + 800fe7a: 68bb ldr r3, [r7, #8] + 800fe7c: 3306 adds r3, #6 + 800fe7e: 00db lsls r3, r3, #3 + 800fe80: 18d0 adds r0, r2, r3 + 800fe82: 4b38 ldr r3, [pc, #224] ; (800ff64 ) + 800fe84: 681a ldr r2, [r3, #0] + 800fe86: 68fb ldr r3, [r7, #12] + 800fe88: 3306 adds r3, #6 + 800fe8a: 00db lsls r3, r3, #3 + 800fe8c: 4413 add r3, r2 + 800fe8e: 4619 mov r1, r3 + 800fe90: f021 fa72 bl 8031378 <_lv_area_is_on> + 800fe94: 4603 mov r3, r0 + 800fe96: f083 0301 eor.w r3, r3, #1 + 800fe9a: b2db uxtb r3, r3 + 800fe9c: 2b00 cmp r3, #0 + 800fe9e: d141 bne.n 800ff24 continue; } _lv_area_join(&joined_area, &disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]); - 800ff34: 4b30 ldr r3, [pc, #192] ; (800fff8 ) - 800ff36: 681a ldr r2, [r3, #0] - 800ff38: 68bb ldr r3, [r7, #8] - 800ff3a: 3306 adds r3, #6 - 800ff3c: 00db lsls r3, r3, #3 - 800ff3e: 18d1 adds r1, r2, r3 - 800ff40: 4b2d ldr r3, [pc, #180] ; (800fff8 ) - 800ff42: 681a ldr r2, [r3, #0] - 800ff44: 68fb ldr r3, [r7, #12] - 800ff46: 3306 adds r3, #6 - 800ff48: 00db lsls r3, r3, #3 - 800ff4a: 441a add r2, r3 - 800ff4c: 463b mov r3, r7 - 800ff4e: 4618 mov r0, r3 - 800ff50: f021 f8fa bl 8031148 <_lv_area_join> + 800fea0: 4b30 ldr r3, [pc, #192] ; (800ff64 ) + 800fea2: 681a ldr r2, [r3, #0] + 800fea4: 68bb ldr r3, [r7, #8] + 800fea6: 3306 adds r3, #6 + 800fea8: 00db lsls r3, r3, #3 + 800feaa: 18d1 adds r1, r2, r3 + 800feac: 4b2d ldr r3, [pc, #180] ; (800ff64 ) + 800feae: 681a ldr r2, [r3, #0] + 800feb0: 68fb ldr r3, [r7, #12] + 800feb2: 3306 adds r3, #6 + 800feb4: 00db lsls r3, r3, #3 + 800feb6: 441a add r2, r3 + 800feb8: 463b mov r3, r7 + 800feba: 4618 mov r0, r3 + 800febc: f021 f8fa bl 80310b4 <_lv_area_join> /*Join two area only if the joined area size is smaller*/ if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) + - 800ff54: 463b mov r3, r7 - 800ff56: 4618 mov r0, r3 - 800ff58: f021 f81c bl 8030f94 - 800ff5c: 4604 mov r4, r0 - 800ff5e: 4b26 ldr r3, [pc, #152] ; (800fff8 ) - 800ff60: 681a ldr r2, [r3, #0] - 800ff62: 68bb ldr r3, [r7, #8] - 800ff64: 3306 adds r3, #6 - 800ff66: 00db lsls r3, r3, #3 - 800ff68: 4413 add r3, r2 - 800ff6a: 4618 mov r0, r3 - 800ff6c: f021 f812 bl 8030f94 - 800ff70: 4605 mov r5, r0 + 800fec0: 463b mov r3, r7 + 800fec2: 4618 mov r0, r3 + 800fec4: f021 f81c bl 8030f00 + 800fec8: 4604 mov r4, r0 + 800feca: 4b26 ldr r3, [pc, #152] ; (800ff64 ) + 800fecc: 681a ldr r2, [r3, #0] + 800fece: 68bb ldr r3, [r7, #8] + 800fed0: 3306 adds r3, #6 + 800fed2: 00db lsls r3, r3, #3 + 800fed4: 4413 add r3, r2 + 800fed6: 4618 mov r0, r3 + 800fed8: f021 f812 bl 8030f00 + 800fedc: 4605 mov r5, r0 lv_area_get_size(&disp_refr->inv_areas[join_from]))) { - 800ff72: 4b21 ldr r3, [pc, #132] ; (800fff8 ) - 800ff74: 681a ldr r2, [r3, #0] - 800ff76: 68fb ldr r3, [r7, #12] - 800ff78: 3306 adds r3, #6 - 800ff7a: 00db lsls r3, r3, #3 - 800ff7c: 4413 add r3, r2 - 800ff7e: 4618 mov r0, r3 - 800ff80: f021 f808 bl 8030f94 - 800ff84: 4603 mov r3, r0 + 800fede: 4b21 ldr r3, [pc, #132] ; (800ff64 ) + 800fee0: 681a ldr r2, [r3, #0] + 800fee2: 68fb ldr r3, [r7, #12] + 800fee4: 3306 adds r3, #6 + 800fee6: 00db lsls r3, r3, #3 + 800fee8: 4413 add r3, r2 + 800feea: 4618 mov r0, r3 + 800feec: f021 f808 bl 8030f00 + 800fef0: 4603 mov r3, r0 if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) + - 800ff86: 442b add r3, r5 - 800ff88: 429c cmp r4, r3 - 800ff8a: d216 bcs.n 800ffba + 800fef2: 442b add r3, r5 + 800fef4: 429c cmp r4, r3 + 800fef6: d216 bcs.n 800ff26 lv_area_copy(&disp_refr->inv_areas[join_in], &joined_area); - 800ff8c: 4b1a ldr r3, [pc, #104] ; (800fff8 ) - 800ff8e: 681a ldr r2, [r3, #0] - 800ff90: 68bb ldr r3, [r7, #8] - 800ff92: 3306 adds r3, #6 - 800ff94: 00db lsls r3, r3, #3 - 800ff96: 4413 add r3, r2 - 800ff98: 463a mov r2, r7 - 800ff9a: 4611 mov r1, r2 - 800ff9c: 4618 mov r0, r3 - 800ff9e: f7ff fd1b bl 800f9d8 + 800fef8: 4b1a ldr r3, [pc, #104] ; (800ff64 ) + 800fefa: 681a ldr r2, [r3, #0] + 800fefc: 68bb ldr r3, [r7, #8] + 800fefe: 3306 adds r3, #6 + 800ff00: 00db lsls r3, r3, #3 + 800ff02: 4413 add r3, r2 + 800ff04: 463a mov r2, r7 + 800ff06: 4611 mov r1, r2 + 800ff08: 4618 mov r0, r3 + 800ff0a: f7ff fd1b bl 800f944 /*Mark 'join_form' is joined into 'join_in'*/ disp_refr->inv_area_joined[join_from] = 1; - 800ffa2: 4b15 ldr r3, [pc, #84] ; (800fff8 ) - 800ffa4: 681a ldr r2, [r3, #0] - 800ffa6: 68fb ldr r3, [r7, #12] - 800ffa8: 4413 add r3, r2 - 800ffaa: f503 7398 add.w r3, r3, #304 ; 0x130 - 800ffae: 2201 movs r2, #1 - 800ffb0: 701a strb r2, [r3, #0] - 800ffb2: e002 b.n 800ffba + 800ff0e: 4b15 ldr r3, [pc, #84] ; (800ff64 ) + 800ff10: 681a ldr r2, [r3, #0] + 800ff12: 68fb ldr r3, [r7, #12] + 800ff14: 4413 add r3, r2 + 800ff16: f503 7398 add.w r3, r3, #304 ; 0x130 + 800ff1a: 2201 movs r2, #1 + 800ff1c: 701a strb r2, [r3, #0] + 800ff1e: e002 b.n 800ff26 continue; - 800ffb4: bf00 nop - 800ffb6: e000 b.n 800ffba + 800ff20: bf00 nop + 800ff22: e000 b.n 800ff26 continue; - 800ffb8: bf00 nop + 800ff24: bf00 nop for(join_from = 0; join_from < disp_refr->inv_p; join_from++) { - 800ffba: 68fb ldr r3, [r7, #12] - 800ffbc: 3301 adds r3, #1 - 800ffbe: 60fb str r3, [r7, #12] - 800ffc0: 4b0d ldr r3, [pc, #52] ; (800fff8 ) - 800ffc2: 681b ldr r3, [r3, #0] - 800ffc4: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 - 800ffc8: 461a mov r2, r3 - 800ffca: 68fb ldr r3, [r7, #12] - 800ffcc: 4293 cmp r3, r2 - 800ffce: d38f bcc.n 800fef0 - 800ffd0: e000 b.n 800ffd4 + 800ff26: 68fb ldr r3, [r7, #12] + 800ff28: 3301 adds r3, #1 + 800ff2a: 60fb str r3, [r7, #12] + 800ff2c: 4b0d ldr r3, [pc, #52] ; (800ff64 ) + 800ff2e: 681b ldr r3, [r3, #0] + 800ff30: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 + 800ff34: 461a mov r2, r3 + 800ff36: 68fb ldr r3, [r7, #12] + 800ff38: 4293 cmp r3, r2 + 800ff3a: d38f bcc.n 800fe5c + 800ff3c: e000 b.n 800ff40 if(disp_refr->inv_area_joined[join_in] != 0) continue; - 800ffd2: bf00 nop + 800ff3e: bf00 nop for(join_in = 0; join_in < disp_refr->inv_p; join_in++) { - 800ffd4: 68bb ldr r3, [r7, #8] - 800ffd6: 3301 adds r3, #1 - 800ffd8: 60bb str r3, [r7, #8] - 800ffda: 4b07 ldr r3, [pc, #28] ; (800fff8 ) - 800ffdc: 681b ldr r3, [r3, #0] - 800ffde: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 - 800ffe2: 461a mov r2, r3 - 800ffe4: 68bb ldr r3, [r7, #8] - 800ffe6: 4293 cmp r3, r2 - 800ffe8: f4ff af76 bcc.w 800fed8 + 800ff40: 68bb ldr r3, [r7, #8] + 800ff42: 3301 adds r3, #1 + 800ff44: 60bb str r3, [r7, #8] + 800ff46: 4b07 ldr r3, [pc, #28] ; (800ff64 ) + 800ff48: 681b ldr r3, [r3, #0] + 800ff4a: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 + 800ff4e: 461a mov r2, r3 + 800ff50: 68bb ldr r3, [r7, #8] + 800ff52: 4293 cmp r3, r2 + 800ff54: f4ff af76 bcc.w 800fe44 } } } } - 800ffec: bf00 nop - 800ffee: bf00 nop - 800fff0: 3710 adds r7, #16 - 800fff2: 46bd mov sp, r7 - 800fff4: bdb0 pop {r4, r5, r7, pc} - 800fff6: bf00 nop - 800fff8: 20001b10 .word 0x20001b10 + 800ff58: bf00 nop + 800ff5a: bf00 nop + 800ff5c: 3710 adds r7, #16 + 800ff5e: 46bd mov sp, r7 + 800ff60: bdb0 pop {r4, r5, r7, pc} + 800ff62: bf00 nop + 800ff64: 20001b10 .word 0x20001b10 -0800fffc : +0800ff68 : /** * Refresh the joined areas */ static void lv_refr_areas(void) { - 800fffc: b580 push {r7, lr} - 800fffe: b082 sub sp, #8 - 8010000: af00 add r7, sp, #0 + 800ff68: b580 push {r7, lr} + 800ff6a: b082 sub sp, #8 + 800ff6c: af00 add r7, sp, #0 px_num = 0; - 8010002: 4b3e ldr r3, [pc, #248] ; (80100fc ) - 8010004: 2200 movs r2, #0 - 8010006: 601a str r2, [r3, #0] + 800ff6e: 4b3e ldr r3, [pc, #248] ; (8010068 ) + 800ff70: 2200 movs r2, #0 + 800ff72: 601a str r2, [r3, #0] if(disp_refr->inv_p == 0) return; - 8010008: 4b3d ldr r3, [pc, #244] ; (8010100 ) - 801000a: 681b ldr r3, [r3, #0] - 801000c: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 - 8010010: 2b00 cmp r3, #0 - 8010012: d06e beq.n 80100f2 + 800ff74: 4b3d ldr r3, [pc, #244] ; (801006c ) + 800ff76: 681b ldr r3, [r3, #0] + 800ff78: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 + 800ff7c: 2b00 cmp r3, #0 + 800ff7e: d06e beq.n 801005e /*Find the last area which will be drawn*/ int32_t i; int32_t last_i = 0; - 8010014: 2300 movs r3, #0 - 8010016: 603b str r3, [r7, #0] + 800ff80: 2300 movs r3, #0 + 800ff82: 603b str r3, [r7, #0] for(i = disp_refr->inv_p - 1; i >= 0; i--) { - 8010018: 4b39 ldr r3, [pc, #228] ; (8010100 ) - 801001a: 681b ldr r3, [r3, #0] - 801001c: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 - 8010020: 3b01 subs r3, #1 - 8010022: 607b str r3, [r7, #4] - 8010024: e00e b.n 8010044 + 800ff84: 4b39 ldr r3, [pc, #228] ; (801006c ) + 800ff86: 681b ldr r3, [r3, #0] + 800ff88: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 + 800ff8c: 3b01 subs r3, #1 + 800ff8e: 607b str r3, [r7, #4] + 800ff90: e00e b.n 800ffb0 if(disp_refr->inv_area_joined[i] == 0) { - 8010026: 4b36 ldr r3, [pc, #216] ; (8010100 ) - 8010028: 681a ldr r2, [r3, #0] - 801002a: 687b ldr r3, [r7, #4] - 801002c: 4413 add r3, r2 - 801002e: f503 7398 add.w r3, r3, #304 ; 0x130 - 8010032: 781b ldrb r3, [r3, #0] - 8010034: 2b00 cmp r3, #0 - 8010036: d102 bne.n 801003e + 800ff92: 4b36 ldr r3, [pc, #216] ; (801006c ) + 800ff94: 681a ldr r2, [r3, #0] + 800ff96: 687b ldr r3, [r7, #4] + 800ff98: 4413 add r3, r2 + 800ff9a: f503 7398 add.w r3, r3, #304 ; 0x130 + 800ff9e: 781b ldrb r3, [r3, #0] + 800ffa0: 2b00 cmp r3, #0 + 800ffa2: d102 bne.n 800ffaa last_i = i; - 8010038: 687b ldr r3, [r7, #4] - 801003a: 603b str r3, [r7, #0] + 800ffa4: 687b ldr r3, [r7, #4] + 800ffa6: 603b str r3, [r7, #0] break; - 801003c: e005 b.n 801004a + 800ffa8: e005 b.n 800ffb6 for(i = disp_refr->inv_p - 1; i >= 0; i--) { - 801003e: 687b ldr r3, [r7, #4] - 8010040: 3b01 subs r3, #1 - 8010042: 607b str r3, [r7, #4] - 8010044: 687b ldr r3, [r7, #4] - 8010046: 2b00 cmp r3, #0 - 8010048: daed bge.n 8010026 + 800ffaa: 687b ldr r3, [r7, #4] + 800ffac: 3b01 subs r3, #1 + 800ffae: 607b str r3, [r7, #4] + 800ffb0: 687b ldr r3, [r7, #4] + 800ffb2: 2b00 cmp r3, #0 + 800ffb4: daed bge.n 800ff92 } } disp_refr->driver->draw_buf->last_area = 0; - 801004a: 4b2d ldr r3, [pc, #180] ; (8010100 ) - 801004c: 681b ldr r3, [r3, #0] - 801004e: 681b ldr r3, [r3, #0] - 8010050: 68da ldr r2, [r3, #12] - 8010052: 7e13 ldrb r3, [r2, #24] - 8010054: f36f 0300 bfc r3, #0, #1 - 8010058: 7613 strb r3, [r2, #24] + 800ffb6: 4b2d ldr r3, [pc, #180] ; (801006c ) + 800ffb8: 681b ldr r3, [r3, #0] + 800ffba: 681b ldr r3, [r3, #0] + 800ffbc: 68da ldr r2, [r3, #12] + 800ffbe: 7e13 ldrb r3, [r2, #24] + 800ffc0: f36f 0300 bfc r3, #0, #1 + 800ffc4: 7613 strb r3, [r2, #24] disp_refr->driver->draw_buf->last_part = 0; - 801005a: 4b29 ldr r3, [pc, #164] ; (8010100 ) - 801005c: 681b ldr r3, [r3, #0] - 801005e: 681b ldr r3, [r3, #0] - 8010060: 68da ldr r2, [r3, #12] - 8010062: 7e13 ldrb r3, [r2, #24] - 8010064: f36f 0341 bfc r3, #1, #1 - 8010068: 7613 strb r3, [r2, #24] + 800ffc6: 4b29 ldr r3, [pc, #164] ; (801006c ) + 800ffc8: 681b ldr r3, [r3, #0] + 800ffca: 681b ldr r3, [r3, #0] + 800ffcc: 68da ldr r2, [r3, #12] + 800ffce: 7e13 ldrb r3, [r2, #24] + 800ffd0: f36f 0341 bfc r3, #1, #1 + 800ffd4: 7613 strb r3, [r2, #24] for(i = 0; i < disp_refr->inv_p; i++) { - 801006a: 2300 movs r3, #0 - 801006c: 607b str r3, [r7, #4] - 801006e: e037 b.n 80100e0 + 800ffd6: 2300 movs r3, #0 + 800ffd8: 607b str r3, [r7, #4] + 800ffda: e037 b.n 801004c /*Refresh the unjoined areas*/ if(disp_refr->inv_area_joined[i] == 0) { - 8010070: 4b23 ldr r3, [pc, #140] ; (8010100 ) - 8010072: 681a ldr r2, [r3, #0] - 8010074: 687b ldr r3, [r7, #4] - 8010076: 4413 add r3, r2 - 8010078: f503 7398 add.w r3, r3, #304 ; 0x130 - 801007c: 781b ldrb r3, [r3, #0] - 801007e: 2b00 cmp r3, #0 - 8010080: d12b bne.n 80100da + 800ffdc: 4b23 ldr r3, [pc, #140] ; (801006c ) + 800ffde: 681a ldr r2, [r3, #0] + 800ffe0: 687b ldr r3, [r7, #4] + 800ffe2: 4413 add r3, r2 + 800ffe4: f503 7398 add.w r3, r3, #304 ; 0x130 + 800ffe8: 781b ldrb r3, [r3, #0] + 800ffea: 2b00 cmp r3, #0 + 800ffec: d12b bne.n 8010046 if(i == last_i) disp_refr->driver->draw_buf->last_area = 1; - 8010082: 687a ldr r2, [r7, #4] - 8010084: 683b ldr r3, [r7, #0] - 8010086: 429a cmp r2, r3 - 8010088: d107 bne.n 801009a - 801008a: 4b1d ldr r3, [pc, #116] ; (8010100 ) - 801008c: 681b ldr r3, [r3, #0] - 801008e: 681b ldr r3, [r3, #0] - 8010090: 68da ldr r2, [r3, #12] - 8010092: 7e13 ldrb r3, [r2, #24] - 8010094: f043 0301 orr.w r3, r3, #1 - 8010098: 7613 strb r3, [r2, #24] + 800ffee: 687a ldr r2, [r7, #4] + 800fff0: 683b ldr r3, [r7, #0] + 800fff2: 429a cmp r2, r3 + 800fff4: d107 bne.n 8010006 + 800fff6: 4b1d ldr r3, [pc, #116] ; (801006c ) + 800fff8: 681b ldr r3, [r3, #0] + 800fffa: 681b ldr r3, [r3, #0] + 800fffc: 68da ldr r2, [r3, #12] + 800fffe: 7e13 ldrb r3, [r2, #24] + 8010000: f043 0301 orr.w r3, r3, #1 + 8010004: 7613 strb r3, [r2, #24] disp_refr->driver->draw_buf->last_part = 0; - 801009a: 4b19 ldr r3, [pc, #100] ; (8010100 ) - 801009c: 681b ldr r3, [r3, #0] - 801009e: 681b ldr r3, [r3, #0] - 80100a0: 68da ldr r2, [r3, #12] - 80100a2: 7e13 ldrb r3, [r2, #24] - 80100a4: f36f 0341 bfc r3, #1, #1 - 80100a8: 7613 strb r3, [r2, #24] + 8010006: 4b19 ldr r3, [pc, #100] ; (801006c ) + 8010008: 681b ldr r3, [r3, #0] + 801000a: 681b ldr r3, [r3, #0] + 801000c: 68da ldr r2, [r3, #12] + 801000e: 7e13 ldrb r3, [r2, #24] + 8010010: f36f 0341 bfc r3, #1, #1 + 8010014: 7613 strb r3, [r2, #24] lv_refr_area(&disp_refr->inv_areas[i]); - 80100aa: 4b15 ldr r3, [pc, #84] ; (8010100 ) - 80100ac: 681a ldr r2, [r3, #0] - 80100ae: 687b ldr r3, [r7, #4] - 80100b0: 3306 adds r3, #6 - 80100b2: 00db lsls r3, r3, #3 - 80100b4: 4413 add r3, r2 - 80100b6: 4618 mov r0, r3 - 80100b8: f000 f824 bl 8010104 + 8010016: 4b15 ldr r3, [pc, #84] ; (801006c ) + 8010018: 681a ldr r2, [r3, #0] + 801001a: 687b ldr r3, [r7, #4] + 801001c: 3306 adds r3, #6 + 801001e: 00db lsls r3, r3, #3 + 8010020: 4413 add r3, r2 + 8010022: 4618 mov r0, r3 + 8010024: f000 f824 bl 8010070 px_num += lv_area_get_size(&disp_refr->inv_areas[i]); - 80100bc: 4b10 ldr r3, [pc, #64] ; (8010100 ) - 80100be: 681a ldr r2, [r3, #0] - 80100c0: 687b ldr r3, [r7, #4] - 80100c2: 3306 adds r3, #6 - 80100c4: 00db lsls r3, r3, #3 - 80100c6: 4413 add r3, r2 - 80100c8: 4618 mov r0, r3 - 80100ca: f020 ff63 bl 8030f94 - 80100ce: 4602 mov r2, r0 - 80100d0: 4b0a ldr r3, [pc, #40] ; (80100fc ) - 80100d2: 681b ldr r3, [r3, #0] - 80100d4: 4413 add r3, r2 - 80100d6: 4a09 ldr r2, [pc, #36] ; (80100fc ) - 80100d8: 6013 str r3, [r2, #0] + 8010028: 4b10 ldr r3, [pc, #64] ; (801006c ) + 801002a: 681a ldr r2, [r3, #0] + 801002c: 687b ldr r3, [r7, #4] + 801002e: 3306 adds r3, #6 + 8010030: 00db lsls r3, r3, #3 + 8010032: 4413 add r3, r2 + 8010034: 4618 mov r0, r3 + 8010036: f020 ff63 bl 8030f00 + 801003a: 4602 mov r2, r0 + 801003c: 4b0a ldr r3, [pc, #40] ; (8010068 ) + 801003e: 681b ldr r3, [r3, #0] + 8010040: 4413 add r3, r2 + 8010042: 4a09 ldr r2, [pc, #36] ; (8010068 ) + 8010044: 6013 str r3, [r2, #0] for(i = 0; i < disp_refr->inv_p; i++) { - 80100da: 687b ldr r3, [r7, #4] - 80100dc: 3301 adds r3, #1 - 80100de: 607b str r3, [r7, #4] - 80100e0: 4b07 ldr r3, [pc, #28] ; (8010100 ) - 80100e2: 681b ldr r3, [r3, #0] - 80100e4: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 - 80100e8: 461a mov r2, r3 - 80100ea: 687b ldr r3, [r7, #4] - 80100ec: 4293 cmp r3, r2 - 80100ee: dbbf blt.n 8010070 - 80100f0: e000 b.n 80100f4 + 8010046: 687b ldr r3, [r7, #4] + 8010048: 3301 adds r3, #1 + 801004a: 607b str r3, [r7, #4] + 801004c: 4b07 ldr r3, [pc, #28] ; (801006c ) + 801004e: 681b ldr r3, [r3, #0] + 8010050: f8b3 3150 ldrh.w r3, [r3, #336] ; 0x150 + 8010054: 461a mov r2, r3 + 8010056: 687b ldr r3, [r7, #4] + 8010058: 4293 cmp r3, r2 + 801005a: dbbf blt.n 800ffdc + 801005c: e000 b.n 8010060 if(disp_refr->inv_p == 0) return; - 80100f2: bf00 nop + 801005e: bf00 nop } } } - 80100f4: 3708 adds r7, #8 - 80100f6: 46bd mov sp, r7 - 80100f8: bd80 pop {r7, pc} - 80100fa: bf00 nop - 80100fc: 20001b0c .word 0x20001b0c - 8010100: 20001b10 .word 0x20001b10 + 8010060: 3708 adds r7, #8 + 8010062: 46bd mov sp, r7 + 8010064: bd80 pop {r7, pc} + 8010066: bf00 nop + 8010068: 20001b0c .word 0x20001b0c + 801006c: 20001b10 .word 0x20001b10 -08010104 : +08010070 : /** * Refresh an area if there is Virtual Display Buffer * @param area_p pointer to an area to refresh */ static void lv_refr_area(const lv_area_t * area_p) { - 8010104: b590 push {r4, r7, lr} - 8010106: b08f sub sp, #60 ; 0x3c - 8010108: af02 add r7, sp, #8 - 801010a: 6078 str r0, [r7, #4] + 8010070: b590 push {r4, r7, lr} + 8010072: b08f sub sp, #60 ; 0x3c + 8010074: af02 add r7, sp, #8 + 8010076: 6078 str r0, [r7, #4] lv_draw_ctx_t * draw_ctx = disp_refr->driver->draw_ctx; - 801010c: 4b8e ldr r3, [pc, #568] ; (8010348 ) - 801010e: 681b ldr r3, [r3, #0] - 8010110: 681b ldr r3, [r3, #0] - 8010112: 6b9b ldr r3, [r3, #56] ; 0x38 - 8010114: 62bb str r3, [r7, #40] ; 0x28 + 8010078: 4b8e ldr r3, [pc, #568] ; (80102b4 ) + 801007a: 681b ldr r3, [r3, #0] + 801007c: 681b ldr r3, [r3, #0] + 801007e: 6b9b ldr r3, [r3, #56] ; 0x38 + 8010080: 62bb str r3, [r7, #40] ; 0x28 draw_ctx->buf = disp_refr->driver->draw_buf->buf_act; - 8010116: 4b8c ldr r3, [pc, #560] ; (8010348 ) - 8010118: 681b ldr r3, [r3, #0] - 801011a: 681b ldr r3, [r3, #0] - 801011c: 68db ldr r3, [r3, #12] - 801011e: 689a ldr r2, [r3, #8] - 8010120: 6abb ldr r3, [r7, #40] ; 0x28 - 8010122: 601a str r2, [r3, #0] + 8010082: 4b8c ldr r3, [pc, #560] ; (80102b4 ) + 8010084: 681b ldr r3, [r3, #0] + 8010086: 681b ldr r3, [r3, #0] + 8010088: 68db ldr r3, [r3, #12] + 801008a: 689a ldr r2, [r3, #8] + 801008c: 6abb ldr r3, [r7, #40] ; 0x28 + 801008e: 601a str r2, [r3, #0] /*With full refresh just redraw directly into the buffer*/ /*In direct mode draw directly on the absolute coordinates of the buffer*/ if(disp_refr->driver->full_refresh || disp_refr->driver->direct_mode) { - 8010124: 4b88 ldr r3, [pc, #544] ; (8010348 ) - 8010126: 681b ldr r3, [r3, #0] - 8010128: 681b ldr r3, [r3, #0] - 801012a: 7c1b ldrb r3, [r3, #16] - 801012c: f003 0302 and.w r3, r3, #2 - 8010130: b2db uxtb r3, r3 - 8010132: 2b00 cmp r3, #0 - 8010134: d108 bne.n 8010148 - 8010136: 4b84 ldr r3, [pc, #528] ; (8010348 ) - 8010138: 681b ldr r3, [r3, #0] - 801013a: 681b ldr r3, [r3, #0] - 801013c: 7c1b ldrb r3, [r3, #16] - 801013e: f003 0301 and.w r3, r3, #1 - 8010142: b2db uxtb r3, r3 - 8010144: 2b00 cmp r3, #0 - 8010146: d04f beq.n 80101e8 + 8010090: 4b88 ldr r3, [pc, #544] ; (80102b4 ) + 8010092: 681b ldr r3, [r3, #0] + 8010094: 681b ldr r3, [r3, #0] + 8010096: 7c1b ldrb r3, [r3, #16] + 8010098: f003 0302 and.w r3, r3, #2 + 801009c: b2db uxtb r3, r3 + 801009e: 2b00 cmp r3, #0 + 80100a0: d108 bne.n 80100b4 + 80100a2: 4b84 ldr r3, [pc, #528] ; (80102b4 ) + 80100a4: 681b ldr r3, [r3, #0] + 80100a6: 681b ldr r3, [r3, #0] + 80100a8: 7c1b ldrb r3, [r3, #16] + 80100aa: f003 0301 and.w r3, r3, #1 + 80100ae: b2db uxtb r3, r3 + 80100b0: 2b00 cmp r3, #0 + 80100b2: d04f beq.n 8010154 lv_area_t disp_area; lv_area_set(&disp_area, 0, 0, lv_disp_get_hor_res(disp_refr) - 1, lv_disp_get_ver_res(disp_refr) - 1); - 8010148: 4b7f ldr r3, [pc, #508] ; (8010348 ) - 801014a: 681b ldr r3, [r3, #0] - 801014c: 4618 mov r0, r3 - 801014e: f020 f9c7 bl 80304e0 - 8010152: 4603 mov r3, r0 - 8010154: b29b uxth r3, r3 - 8010156: 3b01 subs r3, #1 - 8010158: b29b uxth r3, r3 - 801015a: b21c sxth r4, r3 - 801015c: 4b7a ldr r3, [pc, #488] ; (8010348 ) - 801015e: 681b ldr r3, [r3, #0] - 8010160: 4618 mov r0, r3 - 8010162: f020 f9e3 bl 803052c - 8010166: 4603 mov r3, r0 - 8010168: b29b uxth r3, r3 - 801016a: 3b01 subs r3, #1 - 801016c: b29b uxth r3, r3 - 801016e: b21b sxth r3, r3 - 8010170: f107 000c add.w r0, r7, #12 - 8010174: 9300 str r3, [sp, #0] - 8010176: 4623 mov r3, r4 - 8010178: 2200 movs r2, #0 - 801017a: 2100 movs r1, #0 - 801017c: f020 febe bl 8030efc + 80100b4: 4b7f ldr r3, [pc, #508] ; (80102b4 ) + 80100b6: 681b ldr r3, [r3, #0] + 80100b8: 4618 mov r0, r3 + 80100ba: f020 f9c7 bl 803044c + 80100be: 4603 mov r3, r0 + 80100c0: b29b uxth r3, r3 + 80100c2: 3b01 subs r3, #1 + 80100c4: b29b uxth r3, r3 + 80100c6: b21c sxth r4, r3 + 80100c8: 4b7a ldr r3, [pc, #488] ; (80102b4 ) + 80100ca: 681b ldr r3, [r3, #0] + 80100cc: 4618 mov r0, r3 + 80100ce: f020 f9e3 bl 8030498 + 80100d2: 4603 mov r3, r0 + 80100d4: b29b uxth r3, r3 + 80100d6: 3b01 subs r3, #1 + 80100d8: b29b uxth r3, r3 + 80100da: b21b sxth r3, r3 + 80100dc: f107 000c add.w r0, r7, #12 + 80100e0: 9300 str r3, [sp, #0] + 80100e2: 4623 mov r3, r4 + 80100e4: 2200 movs r2, #0 + 80100e6: 2100 movs r1, #0 + 80100e8: f020 febe bl 8030e68 draw_ctx->buf_area = &disp_area; - 8010180: 6abb ldr r3, [r7, #40] ; 0x28 - 8010182: f107 020c add.w r2, r7, #12 - 8010186: 605a str r2, [r3, #4] + 80100ec: 6abb ldr r3, [r7, #40] ; 0x28 + 80100ee: f107 020c add.w r2, r7, #12 + 80100f2: 605a str r2, [r3, #4] if(disp_refr->driver->full_refresh) { - 8010188: 4b6f ldr r3, [pc, #444] ; (8010348 ) - 801018a: 681b ldr r3, [r3, #0] - 801018c: 681b ldr r3, [r3, #0] - 801018e: 7c1b ldrb r3, [r3, #16] - 8010190: f003 0302 and.w r3, r3, #2 - 8010194: b2db uxtb r3, r3 - 8010196: 2b00 cmp r3, #0 - 8010198: d00f beq.n 80101ba + 80100f4: 4b6f ldr r3, [pc, #444] ; (80102b4 ) + 80100f6: 681b ldr r3, [r3, #0] + 80100f8: 681b ldr r3, [r3, #0] + 80100fa: 7c1b ldrb r3, [r3, #16] + 80100fc: f003 0302 and.w r3, r3, #2 + 8010100: b2db uxtb r3, r3 + 8010102: 2b00 cmp r3, #0 + 8010104: d00f beq.n 8010126 disp_refr->driver->draw_buf->last_part = 1; - 801019a: 4b6b ldr r3, [pc, #428] ; (8010348 ) - 801019c: 681b ldr r3, [r3, #0] - 801019e: 681b ldr r3, [r3, #0] - 80101a0: 68da ldr r2, [r3, #12] - 80101a2: 7e13 ldrb r3, [r2, #24] - 80101a4: f043 0302 orr.w r3, r3, #2 - 80101a8: 7613 strb r3, [r2, #24] + 8010106: 4b6b ldr r3, [pc, #428] ; (80102b4 ) + 8010108: 681b ldr r3, [r3, #0] + 801010a: 681b ldr r3, [r3, #0] + 801010c: 68da ldr r2, [r3, #12] + 801010e: 7e13 ldrb r3, [r2, #24] + 8010110: f043 0302 orr.w r3, r3, #2 + 8010114: 7613 strb r3, [r2, #24] draw_ctx->clip_area = &disp_area; - 80101aa: 6abb ldr r3, [r7, #40] ; 0x28 - 80101ac: f107 020c add.w r2, r7, #12 - 80101b0: 609a str r2, [r3, #8] + 8010116: 6abb ldr r3, [r7, #40] ; 0x28 + 8010118: f107 020c add.w r2, r7, #12 + 801011c: 609a str r2, [r3, #8] lv_refr_area_part(draw_ctx); - 80101b2: 6ab8 ldr r0, [r7, #40] ; 0x28 - 80101b4: f000 f8ca bl 801034c - 80101b8: e0c3 b.n 8010342 + 801011e: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8010120: f000 f8ca bl 80102b8 + 8010124: e0c3 b.n 80102ae } else { disp_refr->driver->draw_buf->last_part = disp_refr->driver->draw_buf->last_area; - 80101ba: 4b63 ldr r3, [pc, #396] ; (8010348 ) - 80101bc: 681b ldr r3, [r3, #0] - 80101be: 681b ldr r3, [r3, #0] - 80101c0: 68db ldr r3, [r3, #12] - 80101c2: 4a61 ldr r2, [pc, #388] ; (8010348 ) - 80101c4: 6812 ldr r2, [r2, #0] - 80101c6: 6812 ldr r2, [r2, #0] - 80101c8: 68d2 ldr r2, [r2, #12] - 80101ca: 699b ldr r3, [r3, #24] - 80101cc: f3c3 0300 ubfx r3, r3, #0, #1 - 80101d0: b2d9 uxtb r1, r3 - 80101d2: 7e13 ldrb r3, [r2, #24] - 80101d4: f361 0341 bfi r3, r1, #1, #1 - 80101d8: 7613 strb r3, [r2, #24] + 8010126: 4b63 ldr r3, [pc, #396] ; (80102b4 ) + 8010128: 681b ldr r3, [r3, #0] + 801012a: 681b ldr r3, [r3, #0] + 801012c: 68db ldr r3, [r3, #12] + 801012e: 4a61 ldr r2, [pc, #388] ; (80102b4 ) + 8010130: 6812 ldr r2, [r2, #0] + 8010132: 6812 ldr r2, [r2, #0] + 8010134: 68d2 ldr r2, [r2, #12] + 8010136: 699b ldr r3, [r3, #24] + 8010138: f3c3 0300 ubfx r3, r3, #0, #1 + 801013c: b2d9 uxtb r1, r3 + 801013e: 7e13 ldrb r3, [r2, #24] + 8010140: f361 0341 bfi r3, r1, #1, #1 + 8010144: 7613 strb r3, [r2, #24] draw_ctx->clip_area = area_p; - 80101da: 6abb ldr r3, [r7, #40] ; 0x28 - 80101dc: 687a ldr r2, [r7, #4] - 80101de: 609a str r2, [r3, #8] + 8010146: 6abb ldr r3, [r7, #40] ; 0x28 + 8010148: 687a ldr r2, [r7, #4] + 801014a: 609a str r2, [r3, #8] lv_refr_area_part(draw_ctx); - 80101e0: 6ab8 ldr r0, [r7, #40] ; 0x28 - 80101e2: f000 f8b3 bl 801034c - 80101e6: e0ac b.n 8010342 + 801014c: 6ab8 ldr r0, [r7, #40] ; 0x28 + 801014e: f000 f8b3 bl 80102b8 + 8010152: e0ac b.n 80102ae return; } /*Normal refresh: draw the area in parts*/ /*Calculate the max row num*/ lv_coord_t w = lv_area_get_width(area_p); - 80101e8: 6878 ldr r0, [r7, #4] - 80101ea: f7ff fc13 bl 800fa14 - 80101ee: 4603 mov r3, r0 - 80101f0: 84fb strh r3, [r7, #38] ; 0x26 + 8010154: 6878 ldr r0, [r7, #4] + 8010156: f7ff fc13 bl 800f980 + 801015a: 4603 mov r3, r0 + 801015c: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t h = lv_area_get_height(area_p); - 80101f2: 6878 ldr r0, [r7, #4] - 80101f4: f7ff fc24 bl 800fa40 - 80101f8: 4603 mov r3, r0 - 80101fa: 84bb strh r3, [r7, #36] ; 0x24 + 801015e: 6878 ldr r0, [r7, #4] + 8010160: f7ff fc24 bl 800f9ac + 8010164: 4603 mov r3, r0 + 8010166: 84bb strh r3, [r7, #36] ; 0x24 lv_coord_t y2 = area_p->y2 >= lv_disp_get_ver_res(disp_refr) ? - 80101fc: 687b ldr r3, [r7, #4] - 80101fe: f9b3 4006 ldrsh.w r4, [r3, #6] - 8010202: 4b51 ldr r3, [pc, #324] ; (8010348 ) - 8010204: 681b ldr r3, [r3, #0] - 8010206: 4618 mov r0, r3 - 8010208: f020 f990 bl 803052c - 801020c: 4603 mov r3, r0 - 801020e: 429c cmp r4, r3 - 8010210: db0a blt.n 8010228 + 8010168: 687b ldr r3, [r7, #4] + 801016a: f9b3 4006 ldrsh.w r4, [r3, #6] + 801016e: 4b51 ldr r3, [pc, #324] ; (80102b4 ) + 8010170: 681b ldr r3, [r3, #0] + 8010172: 4618 mov r0, r3 + 8010174: f020 f990 bl 8030498 + 8010178: 4603 mov r3, r0 + 801017a: 429c cmp r4, r3 + 801017c: db0a blt.n 8010194 lv_disp_get_ver_res(disp_refr) - 1 : area_p->y2; - 8010212: 4b4d ldr r3, [pc, #308] ; (8010348 ) - 8010214: 681b ldr r3, [r3, #0] - 8010216: 4618 mov r0, r3 - 8010218: f020 f988 bl 803052c - 801021c: 4603 mov r3, r0 - 801021e: b29b uxth r3, r3 - 8010220: 3b01 subs r3, #1 - 8010222: b29b uxth r3, r3 + 801017e: 4b4d ldr r3, [pc, #308] ; (80102b4 ) + 8010180: 681b ldr r3, [r3, #0] + 8010182: 4618 mov r0, r3 + 8010184: f020 f988 bl 8030498 + 8010188: 4603 mov r3, r0 + 801018a: b29b uxth r3, r3 + 801018c: 3b01 subs r3, #1 + 801018e: b29b uxth r3, r3 lv_coord_t y2 = area_p->y2 >= lv_disp_get_ver_res(disp_refr) ? - 8010224: b21b sxth r3, r3 - 8010226: e002 b.n 801022e - 8010228: 687b ldr r3, [r7, #4] - 801022a: f9b3 3006 ldrsh.w r3, [r3, #6] - 801022e: 847b strh r3, [r7, #34] ; 0x22 + 8010190: b21b sxth r3, r3 + 8010192: e002 b.n 801019a + 8010194: 687b ldr r3, [r7, #4] + 8010196: f9b3 3006 ldrsh.w r3, [r3, #6] + 801019a: 847b strh r3, [r7, #34] ; 0x22 int32_t max_row = get_max_row(disp_refr, w, h); - 8010230: 4b45 ldr r3, [pc, #276] ; (8010348 ) - 8010232: 681b ldr r3, [r3, #0] - 8010234: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 - 8010238: f9b7 1026 ldrsh.w r1, [r7, #38] ; 0x26 - 801023c: 4618 mov r0, r3 - 801023e: f000 fa4d bl 80106dc - 8010242: 4603 mov r3, r0 - 8010244: 61fb str r3, [r7, #28] + 801019c: 4b45 ldr r3, [pc, #276] ; (80102b4 ) + 801019e: 681b ldr r3, [r3, #0] + 80101a0: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 + 80101a4: f9b7 1026 ldrsh.w r1, [r7, #38] ; 0x26 + 80101a8: 4618 mov r0, r3 + 80101aa: f000 fa4d bl 8010648 + 80101ae: 4603 mov r3, r0 + 80101b0: 61fb str r3, [r7, #28] lv_coord_t row; lv_coord_t row_last = 0; - 8010246: 2300 movs r3, #0 - 8010248: 85bb strh r3, [r7, #44] ; 0x2c + 80101b2: 2300 movs r3, #0 + 80101b4: 85bb strh r3, [r7, #44] ; 0x2c lv_area_t sub_area; for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) { - 801024a: 687b ldr r3, [r7, #4] - 801024c: 885b ldrh r3, [r3, #2] - 801024e: 85fb strh r3, [r7, #46] ; 0x2e - 8010250: e042 b.n 80102d8 + 80101b6: 687b ldr r3, [r7, #4] + 80101b8: 885b ldrh r3, [r3, #2] + 80101ba: 85fb strh r3, [r7, #46] ; 0x2e + 80101bc: e042 b.n 8010244 /*Calc. the next y coordinates of draw_buf*/ sub_area.x1 = area_p->x1; - 8010252: 687b ldr r3, [r7, #4] - 8010254: f9b3 3000 ldrsh.w r3, [r3] - 8010258: 82bb strh r3, [r7, #20] + 80101be: 687b ldr r3, [r7, #4] + 80101c0: f9b3 3000 ldrsh.w r3, [r3] + 80101c4: 82bb strh r3, [r7, #20] sub_area.x2 = area_p->x2; - 801025a: 687b ldr r3, [r7, #4] - 801025c: f9b3 3004 ldrsh.w r3, [r3, #4] - 8010260: 833b strh r3, [r7, #24] + 80101c6: 687b ldr r3, [r7, #4] + 80101c8: f9b3 3004 ldrsh.w r3, [r3, #4] + 80101cc: 833b strh r3, [r7, #24] sub_area.y1 = row; - 8010262: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8010264: 82fb strh r3, [r7, #22] + 80101ce: 8dfb ldrh r3, [r7, #46] ; 0x2e + 80101d0: 82fb strh r3, [r7, #22] sub_area.y2 = row + max_row - 1; - 8010266: 69fb ldr r3, [r7, #28] - 8010268: b29a uxth r2, r3 - 801026a: 8dfb ldrh r3, [r7, #46] ; 0x2e - 801026c: 4413 add r3, r2 - 801026e: b29b uxth r3, r3 - 8010270: 3b01 subs r3, #1 - 8010272: b29b uxth r3, r3 - 8010274: b21b sxth r3, r3 - 8010276: 837b strh r3, [r7, #26] + 80101d2: 69fb ldr r3, [r7, #28] + 80101d4: b29a uxth r2, r3 + 80101d6: 8dfb ldrh r3, [r7, #46] ; 0x2e + 80101d8: 4413 add r3, r2 + 80101da: b29b uxth r3, r3 + 80101dc: 3b01 subs r3, #1 + 80101de: b29b uxth r3, r3 + 80101e0: b21b sxth r3, r3 + 80101e2: 837b strh r3, [r7, #26] draw_ctx->buf_area = &sub_area; - 8010278: 6abb ldr r3, [r7, #40] ; 0x28 - 801027a: f107 0214 add.w r2, r7, #20 - 801027e: 605a str r2, [r3, #4] + 80101e4: 6abb ldr r3, [r7, #40] ; 0x28 + 80101e6: f107 0214 add.w r2, r7, #20 + 80101ea: 605a str r2, [r3, #4] draw_ctx->clip_area = &sub_area; - 8010280: 6abb ldr r3, [r7, #40] ; 0x28 - 8010282: f107 0214 add.w r2, r7, #20 - 8010286: 609a str r2, [r3, #8] + 80101ec: 6abb ldr r3, [r7, #40] ; 0x28 + 80101ee: f107 0214 add.w r2, r7, #20 + 80101f2: 609a str r2, [r3, #8] draw_ctx->buf = disp_refr->driver->draw_buf->buf_act; - 8010288: 4b2f ldr r3, [pc, #188] ; (8010348 ) - 801028a: 681b ldr r3, [r3, #0] - 801028c: 681b ldr r3, [r3, #0] - 801028e: 68db ldr r3, [r3, #12] - 8010290: 689a ldr r2, [r3, #8] - 8010292: 6abb ldr r3, [r7, #40] ; 0x28 - 8010294: 601a str r2, [r3, #0] + 80101f4: 4b2f ldr r3, [pc, #188] ; (80102b4 ) + 80101f6: 681b ldr r3, [r3, #0] + 80101f8: 681b ldr r3, [r3, #0] + 80101fa: 68db ldr r3, [r3, #12] + 80101fc: 689a ldr r2, [r3, #8] + 80101fe: 6abb ldr r3, [r7, #40] ; 0x28 + 8010200: 601a str r2, [r3, #0] if(sub_area.y2 > y2) sub_area.y2 = y2; - 8010296: f9b7 301a ldrsh.w r3, [r7, #26] - 801029a: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 - 801029e: 429a cmp r2, r3 - 80102a0: da01 bge.n 80102a6 - 80102a2: 8c7b ldrh r3, [r7, #34] ; 0x22 - 80102a4: 837b strh r3, [r7, #26] + 8010202: f9b7 301a ldrsh.w r3, [r7, #26] + 8010206: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 + 801020a: 429a cmp r2, r3 + 801020c: da01 bge.n 8010212 + 801020e: 8c7b ldrh r3, [r7, #34] ; 0x22 + 8010210: 837b strh r3, [r7, #26] row_last = sub_area.y2; - 80102a6: 8b7b ldrh r3, [r7, #26] - 80102a8: 85bb strh r3, [r7, #44] ; 0x2c + 8010212: 8b7b ldrh r3, [r7, #26] + 8010214: 85bb strh r3, [r7, #44] ; 0x2c if(y2 == row_last) disp_refr->driver->draw_buf->last_part = 1; - 80102aa: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 - 80102ae: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 80102b2: 429a cmp r2, r3 - 80102b4: d107 bne.n 80102c6 - 80102b6: 4b24 ldr r3, [pc, #144] ; (8010348 ) - 80102b8: 681b ldr r3, [r3, #0] - 80102ba: 681b ldr r3, [r3, #0] - 80102bc: 68da ldr r2, [r3, #12] - 80102be: 7e13 ldrb r3, [r2, #24] - 80102c0: f043 0302 orr.w r3, r3, #2 - 80102c4: 7613 strb r3, [r2, #24] + 8010216: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 + 801021a: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 801021e: 429a cmp r2, r3 + 8010220: d107 bne.n 8010232 + 8010222: 4b24 ldr r3, [pc, #144] ; (80102b4 ) + 8010224: 681b ldr r3, [r3, #0] + 8010226: 681b ldr r3, [r3, #0] + 8010228: 68da ldr r2, [r3, #12] + 801022a: 7e13 ldrb r3, [r2, #24] + 801022c: f043 0302 orr.w r3, r3, #2 + 8010230: 7613 strb r3, [r2, #24] lv_refr_area_part(draw_ctx); - 80102c6: 6ab8 ldr r0, [r7, #40] ; 0x28 - 80102c8: f000 f840 bl 801034c + 8010232: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8010234: f000 f840 bl 80102b8 for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) { - 80102cc: 69fb ldr r3, [r7, #28] - 80102ce: b29a uxth r2, r3 - 80102d0: 8dfb ldrh r3, [r7, #46] ; 0x2e - 80102d2: 4413 add r3, r2 - 80102d4: b29b uxth r3, r3 - 80102d6: 85fb strh r3, [r7, #46] ; 0x2e - 80102d8: f9b7 202e ldrsh.w r2, [r7, #46] ; 0x2e - 80102dc: 69fb ldr r3, [r7, #28] - 80102de: 4413 add r3, r2 - 80102e0: 1e5a subs r2, r3, #1 - 80102e2: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 80102e6: 429a cmp r2, r3 - 80102e8: ddb3 ble.n 8010252 + 8010238: 69fb ldr r3, [r7, #28] + 801023a: b29a uxth r2, r3 + 801023c: 8dfb ldrh r3, [r7, #46] ; 0x2e + 801023e: 4413 add r3, r2 + 8010240: b29b uxth r3, r3 + 8010242: 85fb strh r3, [r7, #46] ; 0x2e + 8010244: f9b7 202e ldrsh.w r2, [r7, #46] ; 0x2e + 8010248: 69fb ldr r3, [r7, #28] + 801024a: 4413 add r3, r2 + 801024c: 1e5a subs r2, r3, #1 + 801024e: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 8010252: 429a cmp r2, r3 + 8010254: ddb3 ble.n 80101be } /*If the last y coordinates are not handled yet ...*/ if(y2 != row_last) { - 80102ea: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 - 80102ee: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 80102f2: 429a cmp r2, r3 - 80102f4: d025 beq.n 8010342 + 8010256: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 + 801025a: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 801025e: 429a cmp r2, r3 + 8010260: d025 beq.n 80102ae /*Calc. the next y coordinates of draw_buf*/ sub_area.x1 = area_p->x1; - 80102f6: 687b ldr r3, [r7, #4] - 80102f8: f9b3 3000 ldrsh.w r3, [r3] - 80102fc: 82bb strh r3, [r7, #20] + 8010262: 687b ldr r3, [r7, #4] + 8010264: f9b3 3000 ldrsh.w r3, [r3] + 8010268: 82bb strh r3, [r7, #20] sub_area.x2 = area_p->x2; - 80102fe: 687b ldr r3, [r7, #4] - 8010300: f9b3 3004 ldrsh.w r3, [r3, #4] - 8010304: 833b strh r3, [r7, #24] + 801026a: 687b ldr r3, [r7, #4] + 801026c: f9b3 3004 ldrsh.w r3, [r3, #4] + 8010270: 833b strh r3, [r7, #24] sub_area.y1 = row; - 8010306: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8010308: 82fb strh r3, [r7, #22] + 8010272: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8010274: 82fb strh r3, [r7, #22] sub_area.y2 = y2; - 801030a: 8c7b ldrh r3, [r7, #34] ; 0x22 - 801030c: 837b strh r3, [r7, #26] + 8010276: 8c7b ldrh r3, [r7, #34] ; 0x22 + 8010278: 837b strh r3, [r7, #26] draw_ctx->buf_area = &sub_area; - 801030e: 6abb ldr r3, [r7, #40] ; 0x28 - 8010310: f107 0214 add.w r2, r7, #20 - 8010314: 605a str r2, [r3, #4] + 801027a: 6abb ldr r3, [r7, #40] ; 0x28 + 801027c: f107 0214 add.w r2, r7, #20 + 8010280: 605a str r2, [r3, #4] draw_ctx->clip_area = &sub_area; - 8010316: 6abb ldr r3, [r7, #40] ; 0x28 - 8010318: f107 0214 add.w r2, r7, #20 - 801031c: 609a str r2, [r3, #8] + 8010282: 6abb ldr r3, [r7, #40] ; 0x28 + 8010284: f107 0214 add.w r2, r7, #20 + 8010288: 609a str r2, [r3, #8] draw_ctx->buf = disp_refr->driver->draw_buf->buf_act; - 801031e: 4b0a ldr r3, [pc, #40] ; (8010348 ) - 8010320: 681b ldr r3, [r3, #0] - 8010322: 681b ldr r3, [r3, #0] - 8010324: 68db ldr r3, [r3, #12] - 8010326: 689a ldr r2, [r3, #8] - 8010328: 6abb ldr r3, [r7, #40] ; 0x28 - 801032a: 601a str r2, [r3, #0] + 801028a: 4b0a ldr r3, [pc, #40] ; (80102b4 ) + 801028c: 681b ldr r3, [r3, #0] + 801028e: 681b ldr r3, [r3, #0] + 8010290: 68db ldr r3, [r3, #12] + 8010292: 689a ldr r2, [r3, #8] + 8010294: 6abb ldr r3, [r7, #40] ; 0x28 + 8010296: 601a str r2, [r3, #0] disp_refr->driver->draw_buf->last_part = 1; - 801032c: 4b06 ldr r3, [pc, #24] ; (8010348 ) - 801032e: 681b ldr r3, [r3, #0] - 8010330: 681b ldr r3, [r3, #0] - 8010332: 68da ldr r2, [r3, #12] - 8010334: 7e13 ldrb r3, [r2, #24] - 8010336: f043 0302 orr.w r3, r3, #2 - 801033a: 7613 strb r3, [r2, #24] + 8010298: 4b06 ldr r3, [pc, #24] ; (80102b4 ) + 801029a: 681b ldr r3, [r3, #0] + 801029c: 681b ldr r3, [r3, #0] + 801029e: 68da ldr r2, [r3, #12] + 80102a0: 7e13 ldrb r3, [r2, #24] + 80102a2: f043 0302 orr.w r3, r3, #2 + 80102a6: 7613 strb r3, [r2, #24] lv_refr_area_part(draw_ctx); - 801033c: 6ab8 ldr r0, [r7, #40] ; 0x28 - 801033e: f000 f805 bl 801034c + 80102a8: 6ab8 ldr r0, [r7, #40] ; 0x28 + 80102aa: f000 f805 bl 80102b8 } } - 8010342: 3734 adds r7, #52 ; 0x34 - 8010344: 46bd mov sp, r7 - 8010346: bd90 pop {r4, r7, pc} - 8010348: 20001b10 .word 0x20001b10 + 80102ae: 3734 adds r7, #52 ; 0x34 + 80102b0: 46bd mov sp, r7 + 80102b2: bd90 pop {r4, r7, pc} + 80102b4: 20001b10 .word 0x20001b10 -0801034c : +080102b8 : static void lv_refr_area_part(lv_draw_ctx_t * draw_ctx) { - 801034c: b590 push {r4, r7, lr} - 801034e: b0a1 sub sp, #132 ; 0x84 - 8010350: af02 add r7, sp, #8 - 8010352: 6078 str r0, [r7, #4] + 80102b8: b590 push {r4, r7, lr} + 80102ba: b0a1 sub sp, #132 ; 0x84 + 80102bc: af02 add r7, sp, #8 + 80102be: 6078 str r0, [r7, #4] lv_disp_draw_buf_t * draw_buf = lv_disp_get_draw_buf(disp_refr); - 8010354: 4b82 ldr r3, [pc, #520] ; (8010560 ) - 8010356: 681b ldr r3, [r3, #0] - 8010358: 4618 mov r0, r3 - 801035a: f020 f951 bl 8030600 - 801035e: 66f8 str r0, [r7, #108] ; 0x6c + 80102c0: 4b82 ldr r3, [pc, #520] ; (80104cc ) + 80102c2: 681b ldr r3, [r3, #0] + 80102c4: 4618 mov r0, r3 + 80102c6: f020 f951 bl 803056c + 80102ca: 66f8 str r0, [r7, #108] ; 0x6c /* Below the `area_p` area will be redrawn into the draw buffer. * In single buffered mode wait here until the buffer is freed.*/ if(draw_buf->buf1 && !draw_buf->buf2) { - 8010360: 6efb ldr r3, [r7, #108] ; 0x6c - 8010362: 681b ldr r3, [r3, #0] - 8010364: 2b00 cmp r3, #0 - 8010366: d017 beq.n 8010398 - 8010368: 6efb ldr r3, [r7, #108] ; 0x6c - 801036a: 685b ldr r3, [r3, #4] - 801036c: 2b00 cmp r3, #0 - 801036e: d113 bne.n 8010398 + 80102cc: 6efb ldr r3, [r7, #108] ; 0x6c + 80102ce: 681b ldr r3, [r3, #0] + 80102d0: 2b00 cmp r3, #0 + 80102d2: d017 beq.n 8010304 + 80102d4: 6efb ldr r3, [r7, #108] ; 0x6c + 80102d6: 685b ldr r3, [r3, #4] + 80102d8: 2b00 cmp r3, #0 + 80102da: d113 bne.n 8010304 while(draw_buf->flushing) { - 8010370: e00e b.n 8010390 + 80102dc: e00e b.n 80102fc if(disp_refr->driver->wait_cb) disp_refr->driver->wait_cb(disp_refr->driver); - 8010372: 4b7b ldr r3, [pc, #492] ; (8010560 ) - 8010374: 681b ldr r3, [r3, #0] - 8010376: 681b ldr r3, [r3, #0] - 8010378: 6a9b ldr r3, [r3, #40] ; 0x28 - 801037a: 2b00 cmp r3, #0 - 801037c: d008 beq.n 8010390 - 801037e: 4b78 ldr r3, [pc, #480] ; (8010560 ) - 8010380: 681b ldr r3, [r3, #0] - 8010382: 681b ldr r3, [r3, #0] - 8010384: 6a9b ldr r3, [r3, #40] ; 0x28 - 8010386: 4a76 ldr r2, [pc, #472] ; (8010560 ) - 8010388: 6812 ldr r2, [r2, #0] - 801038a: 6812 ldr r2, [r2, #0] - 801038c: 4610 mov r0, r2 - 801038e: 4798 blx r3 + 80102de: 4b7b ldr r3, [pc, #492] ; (80104cc ) + 80102e0: 681b ldr r3, [r3, #0] + 80102e2: 681b ldr r3, [r3, #0] + 80102e4: 6a9b ldr r3, [r3, #40] ; 0x28 + 80102e6: 2b00 cmp r3, #0 + 80102e8: d008 beq.n 80102fc + 80102ea: 4b78 ldr r3, [pc, #480] ; (80104cc ) + 80102ec: 681b ldr r3, [r3, #0] + 80102ee: 681b ldr r3, [r3, #0] + 80102f0: 6a9b ldr r3, [r3, #40] ; 0x28 + 80102f2: 4a76 ldr r2, [pc, #472] ; (80104cc ) + 80102f4: 6812 ldr r2, [r2, #0] + 80102f6: 6812 ldr r2, [r2, #0] + 80102f8: 4610 mov r0, r2 + 80102fa: 4798 blx r3 while(draw_buf->flushing) { - 8010390: 6efb ldr r3, [r7, #108] ; 0x6c - 8010392: 691b ldr r3, [r3, #16] - 8010394: 2b00 cmp r3, #0 - 8010396: d1ec bne.n 8010372 + 80102fc: 6efb ldr r3, [r7, #108] ; 0x6c + 80102fe: 691b ldr r3, [r3, #16] + 8010300: 2b00 cmp r3, #0 + 8010302: d1ec bne.n 80102de } } lv_obj_t * top_act_scr = NULL; - 8010398: 2300 movs r3, #0 - 801039a: 677b str r3, [r7, #116] ; 0x74 + 8010304: 2300 movs r3, #0 + 8010306: 677b str r3, [r7, #116] ; 0x74 lv_obj_t * top_prev_scr = NULL; - 801039c: 2300 movs r3, #0 - 801039e: 673b str r3, [r7, #112] ; 0x70 + 8010308: 2300 movs r3, #0 + 801030a: 673b str r3, [r7, #112] ; 0x70 /*Get the most top object which is not covered by others*/ top_act_scr = lv_refr_get_top_obj(draw_ctx->buf_area, lv_disp_get_scr_act(disp_refr)); - 80103a0: 687b ldr r3, [r7, #4] - 80103a2: 685c ldr r4, [r3, #4] - 80103a4: 4b6e ldr r3, [pc, #440] ; (8010560 ) - 80103a6: 681b ldr r3, [r3, #0] - 80103a8: 4618 mov r0, r3 - 80103aa: f7f2 f805 bl 80023b8 - 80103ae: 4603 mov r3, r0 - 80103b0: 4619 mov r1, r3 - 80103b2: 4620 mov r0, r4 - 80103b4: f000 f8d6 bl 8010564 - 80103b8: 6778 str r0, [r7, #116] ; 0x74 + 801030c: 687b ldr r3, [r7, #4] + 801030e: 685c ldr r4, [r3, #4] + 8010310: 4b6e ldr r3, [pc, #440] ; (80104cc ) + 8010312: 681b ldr r3, [r3, #0] + 8010314: 4618 mov r0, r3 + 8010316: f7f1 ffdb bl 80022d0 + 801031a: 4603 mov r3, r0 + 801031c: 4619 mov r1, r3 + 801031e: 4620 mov r0, r4 + 8010320: f000 f8d6 bl 80104d0 + 8010324: 6778 str r0, [r7, #116] ; 0x74 if(disp_refr->prev_scr) { - 80103ba: 4b69 ldr r3, [pc, #420] ; (8010560 ) - 80103bc: 681b ldr r3, [r3, #0] - 80103be: 695b ldr r3, [r3, #20] - 80103c0: 2b00 cmp r3, #0 - 80103c2: d009 beq.n 80103d8 + 8010326: 4b69 ldr r3, [pc, #420] ; (80104cc ) + 8010328: 681b ldr r3, [r3, #0] + 801032a: 695b ldr r3, [r3, #20] + 801032c: 2b00 cmp r3, #0 + 801032e: d009 beq.n 8010344 top_prev_scr = lv_refr_get_top_obj(draw_ctx->buf_area, disp_refr->prev_scr); - 80103c4: 687b ldr r3, [r7, #4] - 80103c6: 685a ldr r2, [r3, #4] - 80103c8: 4b65 ldr r3, [pc, #404] ; (8010560 ) - 80103ca: 681b ldr r3, [r3, #0] - 80103cc: 695b ldr r3, [r3, #20] - 80103ce: 4619 mov r1, r3 - 80103d0: 4610 mov r0, r2 - 80103d2: f000 f8c7 bl 8010564 - 80103d6: 6738 str r0, [r7, #112] ; 0x70 + 8010330: 687b ldr r3, [r7, #4] + 8010332: 685a ldr r2, [r3, #4] + 8010334: 4b65 ldr r3, [pc, #404] ; (80104cc ) + 8010336: 681b ldr r3, [r3, #0] + 8010338: 695b ldr r3, [r3, #20] + 801033a: 4619 mov r1, r3 + 801033c: 4610 mov r0, r2 + 801033e: f000 f8c7 bl 80104d0 + 8010342: 6738 str r0, [r7, #112] ; 0x70 } /*Draw a display background if there is no top object*/ if(top_act_scr == NULL && top_prev_scr == NULL) { - 80103d8: 6f7b ldr r3, [r7, #116] ; 0x74 - 80103da: 2b00 cmp r3, #0 - 80103dc: d17f bne.n 80104de - 80103de: 6f3b ldr r3, [r7, #112] ; 0x70 - 80103e0: 2b00 cmp r3, #0 - 80103e2: d17c bne.n 80104de + 8010344: 6f7b ldr r3, [r7, #116] ; 0x74 + 8010346: 2b00 cmp r3, #0 + 8010348: d17f bne.n 801044a + 801034a: 6f3b ldr r3, [r7, #112] ; 0x70 + 801034c: 2b00 cmp r3, #0 + 801034e: d17c bne.n 801044a if(draw_ctx->draw_bg) { - 80103e4: 687b ldr r3, [r7, #4] - 80103e6: 6a9b ldr r3, [r3, #40] ; 0x28 - 80103e8: 2b00 cmp r3, #0 - 80103ea: d020 beq.n 801042e + 8010350: 687b ldr r3, [r7, #4] + 8010352: 6a9b ldr r3, [r3, #40] ; 0x28 + 8010354: 2b00 cmp r3, #0 + 8010356: d020 beq.n 801039a lv_draw_rect_dsc_t dsc; lv_draw_rect_dsc_init(&dsc); - 80103ec: f107 030c add.w r3, r7, #12 - 80103f0: 4618 mov r0, r3 - 80103f2: f005 f9ff bl 80157f4 + 8010358: f107 030c add.w r3, r7, #12 + 801035c: 4618 mov r0, r3 + 801035e: f005 f9ff bl 8015760 dsc.bg_img_src = disp_refr->bg_img; - 80103f6: 4b5a ldr r3, [pc, #360] ; (8010560 ) - 80103f8: 681b ldr r3, [r3, #0] - 80103fa: 6adb ldr r3, [r3, #44] ; 0x2c - 80103fc: 61fb str r3, [r7, #28] + 8010362: 4b5a ldr r3, [pc, #360] ; (80104cc ) + 8010364: 681b ldr r3, [r3, #0] + 8010366: 6adb ldr r3, [r3, #44] ; 0x2c + 8010368: 61fb str r3, [r7, #28] dsc.bg_img_opa = disp_refr->bg_opa; - 80103fe: 4b58 ldr r3, [pc, #352] ; (8010560 ) - 8010400: 681b ldr r3, [r3, #0] - 8010402: f893 3029 ldrb.w r3, [r3, #41] ; 0x29 - 8010406: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 801036a: 4b58 ldr r3, [pc, #352] ; (80104cc ) + 801036c: 681b ldr r3, [r3, #0] + 801036e: f893 3029 ldrb.w r3, [r3, #41] ; 0x29 + 8010372: f887 3026 strb.w r3, [r7, #38] ; 0x26 dsc.bg_color = disp_refr->bg_color; - 801040a: 4b55 ldr r3, [pc, #340] ; (8010560 ) - 801040c: 681b ldr r3, [r3, #0] - 801040e: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8010410: 823b strh r3, [r7, #16] + 8010376: 4b55 ldr r3, [pc, #340] ; (80104cc ) + 8010378: 681b ldr r3, [r3, #0] + 801037a: 8d5b ldrh r3, [r3, #42] ; 0x2a + 801037c: 823b strh r3, [r7, #16] dsc.bg_opa = disp_refr->bg_opa; - 8010412: 4b53 ldr r3, [pc, #332] ; (8010560 ) - 8010414: 681b ldr r3, [r3, #0] - 8010416: f893 3029 ldrb.w r3, [r3, #41] ; 0x29 - 801041a: 73fb strb r3, [r7, #15] + 801037e: 4b53 ldr r3, [pc, #332] ; (80104cc ) + 8010380: 681b ldr r3, [r3, #0] + 8010382: f893 3029 ldrb.w r3, [r3, #41] ; 0x29 + 8010386: 73fb strb r3, [r7, #15] draw_ctx->draw_bg(draw_ctx, &dsc, draw_ctx->buf_area); - 801041c: 687b ldr r3, [r7, #4] - 801041e: 6a9b ldr r3, [r3, #40] ; 0x28 - 8010420: 687a ldr r2, [r7, #4] - 8010422: 6852 ldr r2, [r2, #4] - 8010424: f107 010c add.w r1, r7, #12 - 8010428: 6878 ldr r0, [r7, #4] - 801042a: 4798 blx r3 - 801042c: e057 b.n 80104de + 8010388: 687b ldr r3, [r7, #4] + 801038a: 6a9b ldr r3, [r3, #40] ; 0x28 + 801038c: 687a ldr r2, [r7, #4] + 801038e: 6852 ldr r2, [r2, #4] + 8010390: f107 010c add.w r1, r7, #12 + 8010394: 6878 ldr r0, [r7, #4] + 8010396: 4798 blx r3 + 8010398: e057 b.n 801044a } else if(disp_refr->bg_img) { - 801042e: 4b4c ldr r3, [pc, #304] ; (8010560 ) - 8010430: 681b ldr r3, [r3, #0] - 8010432: 6adb ldr r3, [r3, #44] ; 0x2c - 8010434: 2b00 cmp r3, #0 - 8010436: d03c beq.n 80104b2 + 801039a: 4b4c ldr r3, [pc, #304] ; (80104cc ) + 801039c: 681b ldr r3, [r3, #0] + 801039e: 6adb ldr r3, [r3, #44] ; 0x2c + 80103a0: 2b00 cmp r3, #0 + 80103a2: d03c beq.n 801041e lv_img_header_t header; lv_res_t res; res = lv_img_decoder_get_info(disp_refr->bg_img, &header); - 8010438: 4b49 ldr r3, [pc, #292] ; (8010560 ) - 801043a: 681b ldr r3, [r3, #0] - 801043c: 6adb ldr r3, [r3, #44] ; 0x2c - 801043e: f107 0264 add.w r2, r7, #100 ; 0x64 - 8010442: 4611 mov r1, r2 - 8010444: 4618 mov r0, r3 - 8010446: f006 fd19 bl 8016e7c - 801044a: 4603 mov r3, r0 - 801044c: f887 306b strb.w r3, [r7, #107] ; 0x6b + 80103a4: 4b49 ldr r3, [pc, #292] ; (80104cc ) + 80103a6: 681b ldr r3, [r3, #0] + 80103a8: 6adb ldr r3, [r3, #44] ; 0x2c + 80103aa: f107 0264 add.w r2, r7, #100 ; 0x64 + 80103ae: 4611 mov r1, r2 + 80103b0: 4618 mov r0, r3 + 80103b2: f006 fd19 bl 8016de8 + 80103b6: 4603 mov r3, r0 + 80103b8: f887 306b strb.w r3, [r7, #107] ; 0x6b if(res == LV_RES_OK) { - 8010450: f897 306b ldrb.w r3, [r7, #107] ; 0x6b - 8010454: 2b01 cmp r3, #1 - 8010456: d142 bne.n 80104de + 80103bc: f897 306b ldrb.w r3, [r7, #107] ; 0x6b + 80103c0: 2b01 cmp r3, #1 + 80103c2: d142 bne.n 801044a lv_area_t a; lv_area_set(&a, 0, 0, header.w - 1, header.h - 1); - 8010458: 6e7b ldr r3, [r7, #100] ; 0x64 - 801045a: f3c3 238a ubfx r3, r3, #10, #11 - 801045e: b29b uxth r3, r3 - 8010460: 3b01 subs r3, #1 - 8010462: b29b uxth r3, r3 - 8010464: b21a sxth r2, r3 - 8010466: f8b7 3066 ldrh.w r3, [r7, #102] ; 0x66 - 801046a: f3c3 134a ubfx r3, r3, #5, #11 - 801046e: b29b uxth r3, r3 - 8010470: 3b01 subs r3, #1 - 8010472: b29b uxth r3, r3 - 8010474: b21b sxth r3, r3 - 8010476: f107 005c add.w r0, r7, #92 ; 0x5c - 801047a: 9300 str r3, [sp, #0] - 801047c: 4613 mov r3, r2 - 801047e: 2200 movs r2, #0 - 8010480: 2100 movs r1, #0 - 8010482: f020 fd3b bl 8030efc + 80103c4: 6e7b ldr r3, [r7, #100] ; 0x64 + 80103c6: f3c3 238a ubfx r3, r3, #10, #11 + 80103ca: b29b uxth r3, r3 + 80103cc: 3b01 subs r3, #1 + 80103ce: b29b uxth r3, r3 + 80103d0: b21a sxth r2, r3 + 80103d2: f8b7 3066 ldrh.w r3, [r7, #102] ; 0x66 + 80103d6: f3c3 134a ubfx r3, r3, #5, #11 + 80103da: b29b uxth r3, r3 + 80103dc: 3b01 subs r3, #1 + 80103de: b29b uxth r3, r3 + 80103e0: b21b sxth r3, r3 + 80103e2: f107 005c add.w r0, r7, #92 ; 0x5c + 80103e6: 9300 str r3, [sp, #0] + 80103e8: 4613 mov r3, r2 + 80103ea: 2200 movs r2, #0 + 80103ec: 2100 movs r1, #0 + 80103ee: f020 fd3b bl 8030e68 lv_draw_img_dsc_t dsc; lv_draw_img_dsc_init(&dsc); - 8010486: f107 0344 add.w r3, r7, #68 ; 0x44 - 801048a: 4618 mov r0, r3 - 801048c: f001 fb0f bl 8011aae + 80103f2: f107 0344 add.w r3, r7, #68 ; 0x44 + 80103f6: 4618 mov r0, r3 + 80103f8: f001 fb0f bl 8011a1a dsc.opa = disp_refr->bg_opa; - 8010490: 4b33 ldr r3, [pc, #204] ; (8010560 ) - 8010492: 681b ldr r3, [r3, #0] - 8010494: f893 3029 ldrb.w r3, [r3, #41] ; 0x29 - 8010498: f887 304f strb.w r3, [r7, #79] ; 0x4f + 80103fc: 4b33 ldr r3, [pc, #204] ; (80104cc ) + 80103fe: 681b ldr r3, [r3, #0] + 8010400: f893 3029 ldrb.w r3, [r3, #41] ; 0x29 + 8010404: f887 304f strb.w r3, [r7, #79] ; 0x4f lv_draw_img(draw_ctx, &dsc, &a, disp_refr->bg_img); - 801049c: 4b30 ldr r3, [pc, #192] ; (8010560 ) - 801049e: 681b ldr r3, [r3, #0] - 80104a0: 6adb ldr r3, [r3, #44] ; 0x2c - 80104a2: f107 025c add.w r2, r7, #92 ; 0x5c - 80104a6: f107 0144 add.w r1, r7, #68 ; 0x44 - 80104aa: 6878 ldr r0, [r7, #4] - 80104ac: f001 fb1c bl 8011ae8 - 80104b0: e015 b.n 80104de + 8010408: 4b30 ldr r3, [pc, #192] ; (80104cc ) + 801040a: 681b ldr r3, [r3, #0] + 801040c: 6adb ldr r3, [r3, #44] ; 0x2c + 801040e: f107 025c add.w r2, r7, #92 ; 0x5c + 8010412: f107 0144 add.w r1, r7, #68 ; 0x44 + 8010416: 6878 ldr r0, [r7, #4] + 8010418: f001 fb1c bl 8011a54 + 801041c: e015 b.n 801044a LV_LOG_WARN("Can't draw the background image"); } } else { lv_draw_rect_dsc_t dsc; lv_draw_rect_dsc_init(&dsc); - 80104b2: f107 030c add.w r3, r7, #12 - 80104b6: 4618 mov r0, r3 - 80104b8: f005 f99c bl 80157f4 + 801041e: f107 030c add.w r3, r7, #12 + 8010422: 4618 mov r0, r3 + 8010424: f005 f99c bl 8015760 dsc.bg_color = disp_refr->bg_color; - 80104bc: 4b28 ldr r3, [pc, #160] ; (8010560 ) - 80104be: 681b ldr r3, [r3, #0] - 80104c0: 8d5b ldrh r3, [r3, #42] ; 0x2a - 80104c2: 823b strh r3, [r7, #16] + 8010428: 4b28 ldr r3, [pc, #160] ; (80104cc ) + 801042a: 681b ldr r3, [r3, #0] + 801042c: 8d5b ldrh r3, [r3, #42] ; 0x2a + 801042e: 823b strh r3, [r7, #16] dsc.bg_opa = disp_refr->bg_opa; - 80104c4: 4b26 ldr r3, [pc, #152] ; (8010560 ) - 80104c6: 681b ldr r3, [r3, #0] - 80104c8: f893 3029 ldrb.w r3, [r3, #41] ; 0x29 - 80104cc: 73fb strb r3, [r7, #15] + 8010430: 4b26 ldr r3, [pc, #152] ; (80104cc ) + 8010432: 681b ldr r3, [r3, #0] + 8010434: f893 3029 ldrb.w r3, [r3, #41] ; 0x29 + 8010438: 73fb strb r3, [r7, #15] lv_draw_rect(draw_ctx, &dsc, draw_ctx->buf_area); - 80104ce: 687b ldr r3, [r7, #4] - 80104d0: 685a ldr r2, [r3, #4] - 80104d2: f107 030c add.w r3, r7, #12 - 80104d6: 4619 mov r1, r3 - 80104d8: 6878 ldr r0, [r7, #4] - 80104da: f005 f9cd bl 8015878 + 801043a: 687b ldr r3, [r7, #4] + 801043c: 685a ldr r2, [r3, #4] + 801043e: f107 030c add.w r3, r7, #12 + 8010442: 4619 mov r1, r3 + 8010444: 6878 ldr r0, [r7, #4] + 8010446: f005 f9cd bl 80157e4 } } /*Refresh the previous screen if any*/ if(disp_refr->prev_scr) { - 80104de: 4b20 ldr r3, [pc, #128] ; (8010560 ) - 80104e0: 681b ldr r3, [r3, #0] - 80104e2: 695b ldr r3, [r3, #20] - 80104e4: 2b00 cmp r3, #0 - 80104e6: d00a beq.n 80104fe + 801044a: 4b20 ldr r3, [pc, #128] ; (80104cc ) + 801044c: 681b ldr r3, [r3, #0] + 801044e: 695b ldr r3, [r3, #20] + 8010450: 2b00 cmp r3, #0 + 8010452: d00a beq.n 801046a if(top_prev_scr == NULL) top_prev_scr = disp_refr->prev_scr; - 80104e8: 6f3b ldr r3, [r7, #112] ; 0x70 - 80104ea: 2b00 cmp r3, #0 - 80104ec: d103 bne.n 80104f6 - 80104ee: 4b1c ldr r3, [pc, #112] ; (8010560 ) - 80104f0: 681b ldr r3, [r3, #0] - 80104f2: 695b ldr r3, [r3, #20] - 80104f4: 673b str r3, [r7, #112] ; 0x70 + 8010454: 6f3b ldr r3, [r7, #112] ; 0x70 + 8010456: 2b00 cmp r3, #0 + 8010458: d103 bne.n 8010462 + 801045a: 4b1c ldr r3, [pc, #112] ; (80104cc ) + 801045c: 681b ldr r3, [r3, #0] + 801045e: 695b ldr r3, [r3, #20] + 8010460: 673b str r3, [r7, #112] ; 0x70 lv_refr_obj_and_children(draw_ctx, top_prev_scr); - 80104f6: 6f39 ldr r1, [r7, #112] ; 0x70 - 80104f8: 6878 ldr r0, [r7, #4] - 80104fa: f000 f88b bl 8010614 + 8010462: 6f39 ldr r1, [r7, #112] ; 0x70 + 8010464: 6878 ldr r0, [r7, #4] + 8010466: f000 f88b bl 8010580 } if(top_act_scr == NULL) top_act_scr = disp_refr->act_scr; - 80104fe: 6f7b ldr r3, [r7, #116] ; 0x74 - 8010500: 2b00 cmp r3, #0 - 8010502: d103 bne.n 801050c - 8010504: 4b16 ldr r3, [pc, #88] ; (8010560 ) - 8010506: 681b ldr r3, [r3, #0] - 8010508: 691b ldr r3, [r3, #16] - 801050a: 677b str r3, [r7, #116] ; 0x74 + 801046a: 6f7b ldr r3, [r7, #116] ; 0x74 + 801046c: 2b00 cmp r3, #0 + 801046e: d103 bne.n 8010478 + 8010470: 4b16 ldr r3, [pc, #88] ; (80104cc ) + 8010472: 681b ldr r3, [r3, #0] + 8010474: 691b ldr r3, [r3, #16] + 8010476: 677b str r3, [r7, #116] ; 0x74 lv_refr_obj_and_children(draw_ctx, top_act_scr); - 801050c: 6f79 ldr r1, [r7, #116] ; 0x74 - 801050e: 6878 ldr r0, [r7, #4] - 8010510: f000 f880 bl 8010614 + 8010478: 6f79 ldr r1, [r7, #116] ; 0x74 + 801047a: 6878 ldr r0, [r7, #4] + 801047c: f000 f880 bl 8010580 /*Also refresh top and sys layer unconditionally*/ lv_refr_obj_and_children(draw_ctx, lv_disp_get_layer_top(disp_refr)); - 8010514: 4b12 ldr r3, [pc, #72] ; (8010560 ) - 8010516: 681b ldr r3, [r3, #0] - 8010518: 4618 mov r0, r3 - 801051a: f7f1 ff77 bl 800240c - 801051e: 4603 mov r3, r0 - 8010520: 4619 mov r1, r3 - 8010522: 6878 ldr r0, [r7, #4] - 8010524: f000 f876 bl 8010614 + 8010480: 4b12 ldr r3, [pc, #72] ; (80104cc ) + 8010482: 681b ldr r3, [r3, #0] + 8010484: 4618 mov r0, r3 + 8010486: f7f1 ff8a bl 800239e + 801048a: 4603 mov r3, r0 + 801048c: 4619 mov r1, r3 + 801048e: 6878 ldr r0, [r7, #4] + 8010490: f000 f876 bl 8010580 lv_refr_obj_and_children(draw_ctx, lv_disp_get_layer_sys(disp_refr)); - 8010528: 4b0d ldr r3, [pc, #52] ; (8010560 ) - 801052a: 681b ldr r3, [r3, #0] - 801052c: 4618 mov r0, r3 - 801052e: f7f1 ff82 bl 8002436 - 8010532: 4603 mov r3, r0 - 8010534: 4619 mov r1, r3 - 8010536: 6878 ldr r0, [r7, #4] - 8010538: f000 f86c bl 8010614 + 8010494: 4b0d ldr r3, [pc, #52] ; (80104cc ) + 8010496: 681b ldr r3, [r3, #0] + 8010498: 4618 mov r0, r3 + 801049a: f7f1 ff95 bl 80023c8 + 801049e: 4603 mov r3, r0 + 80104a0: 4619 mov r1, r3 + 80104a2: 6878 ldr r0, [r7, #4] + 80104a4: f000 f86c bl 8010580 /*In true double buffered mode flush only once when all areas were rendered. *In normal mode flush after every area*/ if(disp_refr->driver->full_refresh == false) { - 801053c: 4b08 ldr r3, [pc, #32] ; (8010560 ) - 801053e: 681b ldr r3, [r3, #0] - 8010540: 681b ldr r3, [r3, #0] - 8010542: 7c1b ldrb r3, [r3, #16] - 8010544: f003 0302 and.w r3, r3, #2 - 8010548: b2db uxtb r3, r3 - 801054a: 2b00 cmp r3, #0 - 801054c: d104 bne.n 8010558 + 80104a8: 4b08 ldr r3, [pc, #32] ; (80104cc ) + 80104aa: 681b ldr r3, [r3, #0] + 80104ac: 681b ldr r3, [r3, #0] + 80104ae: 7c1b ldrb r3, [r3, #16] + 80104b0: f003 0302 and.w r3, r3, #2 + 80104b4: b2db uxtb r3, r3 + 80104b6: 2b00 cmp r3, #0 + 80104b8: d104 bne.n 80104c4 draw_buf_flush(disp_refr); - 801054e: 4b04 ldr r3, [pc, #16] ; (8010560 ) - 8010550: 681b ldr r3, [r3, #0] - 8010552: 4618 mov r0, r3 - 8010554: f000 fc60 bl 8010e18 + 80104ba: 4b04 ldr r3, [pc, #16] ; (80104cc ) + 80104bc: 681b ldr r3, [r3, #0] + 80104be: 4618 mov r0, r3 + 80104c0: f000 fc60 bl 8010d84 } } - 8010558: bf00 nop - 801055a: 377c adds r7, #124 ; 0x7c - 801055c: 46bd mov sp, r7 - 801055e: bd90 pop {r4, r7, pc} - 8010560: 20001b10 .word 0x20001b10 + 80104c4: bf00 nop + 80104c6: 377c adds r7, #124 ; 0x7c + 80104c8: 46bd mov sp, r7 + 80104ca: bd90 pop {r4, r7, pc} + 80104cc: 20001b10 .word 0x20001b10 -08010564 : +080104d0 : * @param area_p pointer to an area * @param obj the first object to start the searching (typically a screen) * @return */ static lv_obj_t * lv_refr_get_top_obj(const lv_area_t * area_p, lv_obj_t * obj) { - 8010564: b580 push {r7, lr} - 8010566: b088 sub sp, #32 - 8010568: af00 add r7, sp, #0 - 801056a: 6078 str r0, [r7, #4] - 801056c: 6039 str r1, [r7, #0] + 80104d0: b580 push {r7, lr} + 80104d2: b088 sub sp, #32 + 80104d4: af00 add r7, sp, #0 + 80104d6: 6078 str r0, [r7, #4] + 80104d8: 6039 str r1, [r7, #0] lv_obj_t * found_p = NULL; - 801056e: 2300 movs r3, #0 - 8010570: 61fb str r3, [r7, #28] + 80104da: 2300 movs r3, #0 + 80104dc: 61fb str r3, [r7, #28] /*If this object is fully cover the draw area then check the children too*/ if(_lv_area_is_in(area_p, &obj->coords, 0) && lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN) == false) { - 8010572: 683b ldr r3, [r7, #0] - 8010574: 3314 adds r3, #20 - 8010576: 2200 movs r2, #0 - 8010578: 4619 mov r1, r3 - 801057a: 6878 ldr r0, [r7, #4] - 801057c: f020 ff73 bl 8031466 <_lv_area_is_in> - 8010580: 4603 mov r3, r0 - 8010582: 2b00 cmp r3, #0 - 8010584: d041 beq.n 801060a - 8010586: 2101 movs r1, #1 - 8010588: 6838 ldr r0, [r7, #0] - 801058a: f7f6 f8fa bl 8006782 - 801058e: 4603 mov r3, r0 - 8010590: f083 0301 eor.w r3, r3, #1 - 8010594: b2db uxtb r3, r3 - 8010596: 2b00 cmp r3, #0 - 8010598: d037 beq.n 801060a + 80104de: 683b ldr r3, [r7, #0] + 80104e0: 3314 adds r3, #20 + 80104e2: 2200 movs r2, #0 + 80104e4: 4619 mov r1, r3 + 80104e6: 6878 ldr r0, [r7, #4] + 80104e8: f020 ff73 bl 80313d2 <_lv_area_is_in> + 80104ec: 4603 mov r3, r0 + 80104ee: 2b00 cmp r3, #0 + 80104f0: d041 beq.n 8010576 + 80104f2: 2101 movs r1, #1 + 80104f4: 6838 ldr r0, [r7, #0] + 80104f6: f7f6 f90e bl 8006716 + 80104fa: 4603 mov r3, r0 + 80104fc: f083 0301 eor.w r3, r3, #1 + 8010500: b2db uxtb r3, r3 + 8010502: 2b00 cmp r3, #0 + 8010504: d037 beq.n 8010576 lv_cover_check_info_t info; info.res = LV_COVER_RES_COVER; - 801059a: 2300 movs r3, #0 - 801059c: 723b strb r3, [r7, #8] + 8010506: 2300 movs r3, #0 + 8010508: 723b strb r3, [r7, #8] info.area = area_p; - 801059e: 687b ldr r3, [r7, #4] - 80105a0: 60fb str r3, [r7, #12] + 801050a: 687b ldr r3, [r7, #4] + 801050c: 60fb str r3, [r7, #12] lv_event_send(obj, LV_EVENT_COVER_CHECK, &info); - 80105a2: f107 0308 add.w r3, r7, #8 - 80105a6: 461a mov r2, r3 - 80105a8: 2112 movs r1, #18 - 80105aa: 6838 ldr r0, [r7, #0] - 80105ac: f7f1 ff68 bl 8002480 + 801050e: f107 0308 add.w r3, r7, #8 + 8010512: 461a mov r2, r3 + 8010514: 2112 movs r1, #18 + 8010516: 6838 ldr r0, [r7, #0] + 8010518: f7f1 ff7c bl 8002414 if(info.res == LV_COVER_RES_MASKED) return NULL; - 80105b0: 7a3b ldrb r3, [r7, #8] - 80105b2: 2b02 cmp r3, #2 - 80105b4: d101 bne.n 80105ba - 80105b6: 2300 movs r3, #0 - 80105b8: e028 b.n 801060c + 801051c: 7a3b ldrb r3, [r7, #8] + 801051e: 2b02 cmp r3, #2 + 8010520: d101 bne.n 8010526 + 8010522: 2300 movs r3, #0 + 8010524: e028 b.n 8010578 uint32_t i; uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 80105ba: 6838 ldr r0, [r7, #0] - 80105bc: f7ff f8e8 bl 800f790 - 80105c0: 6178 str r0, [r7, #20] + 8010526: 6838 ldr r0, [r7, #0] + 8010528: f7ff f8e8 bl 800f6fc + 801052c: 6178 str r0, [r7, #20] for(i = 0; i < child_cnt; i++) { - 80105c2: 2300 movs r3, #0 - 80105c4: 61bb str r3, [r7, #24] - 80105c6: e012 b.n 80105ee + 801052e: 2300 movs r3, #0 + 8010530: 61bb str r3, [r7, #24] + 8010532: e012 b.n 801055a lv_obj_t * child = obj->spec_attr->children[i]; - 80105c8: 683b ldr r3, [r7, #0] - 80105ca: 689b ldr r3, [r3, #8] - 80105cc: 681a ldr r2, [r3, #0] - 80105ce: 69bb ldr r3, [r7, #24] - 80105d0: 009b lsls r3, r3, #2 - 80105d2: 4413 add r3, r2 - 80105d4: 681b ldr r3, [r3, #0] - 80105d6: 613b str r3, [r7, #16] + 8010534: 683b ldr r3, [r7, #0] + 8010536: 689b ldr r3, [r3, #8] + 8010538: 681a ldr r2, [r3, #0] + 801053a: 69bb ldr r3, [r7, #24] + 801053c: 009b lsls r3, r3, #2 + 801053e: 4413 add r3, r2 + 8010540: 681b ldr r3, [r3, #0] + 8010542: 613b str r3, [r7, #16] found_p = lv_refr_get_top_obj(area_p, child); - 80105d8: 6939 ldr r1, [r7, #16] - 80105da: 6878 ldr r0, [r7, #4] - 80105dc: f7ff ffc2 bl 8010564 - 80105e0: 61f8 str r0, [r7, #28] + 8010544: 6939 ldr r1, [r7, #16] + 8010546: 6878 ldr r0, [r7, #4] + 8010548: f7ff ffc2 bl 80104d0 + 801054c: 61f8 str r0, [r7, #28] /*If a children is ok then break*/ if(found_p != NULL) { - 80105e2: 69fb ldr r3, [r7, #28] - 80105e4: 2b00 cmp r3, #0 - 80105e6: d107 bne.n 80105f8 + 801054e: 69fb ldr r3, [r7, #28] + 8010550: 2b00 cmp r3, #0 + 8010552: d107 bne.n 8010564 for(i = 0; i < child_cnt; i++) { - 80105e8: 69bb ldr r3, [r7, #24] - 80105ea: 3301 adds r3, #1 - 80105ec: 61bb str r3, [r7, #24] - 80105ee: 69ba ldr r2, [r7, #24] - 80105f0: 697b ldr r3, [r7, #20] - 80105f2: 429a cmp r2, r3 - 80105f4: d3e8 bcc.n 80105c8 - 80105f6: e000 b.n 80105fa + 8010554: 69bb ldr r3, [r7, #24] + 8010556: 3301 adds r3, #1 + 8010558: 61bb str r3, [r7, #24] + 801055a: 69ba ldr r2, [r7, #24] + 801055c: 697b ldr r3, [r7, #20] + 801055e: 429a cmp r2, r3 + 8010560: d3e8 bcc.n 8010534 + 8010562: e000 b.n 8010566 break; - 80105f8: bf00 nop + 8010564: bf00 nop } } /*If no better children use this object*/ if(found_p == NULL) { - 80105fa: 69fb ldr r3, [r7, #28] - 80105fc: 2b00 cmp r3, #0 - 80105fe: d104 bne.n 801060a + 8010566: 69fb ldr r3, [r7, #28] + 8010568: 2b00 cmp r3, #0 + 801056a: d104 bne.n 8010576 if(info.res == LV_COVER_RES_COVER) { - 8010600: 7a3b ldrb r3, [r7, #8] - 8010602: 2b00 cmp r3, #0 - 8010604: d101 bne.n 801060a + 801056c: 7a3b ldrb r3, [r7, #8] + 801056e: 2b00 cmp r3, #0 + 8010570: d101 bne.n 8010576 found_p = obj; - 8010606: 683b ldr r3, [r7, #0] - 8010608: 61fb str r3, [r7, #28] + 8010572: 683b ldr r3, [r7, #0] + 8010574: 61fb str r3, [r7, #28] } } } return found_p; - 801060a: 69fb ldr r3, [r7, #28] + 8010576: 69fb ldr r3, [r7, #28] } - 801060c: 4618 mov r0, r3 - 801060e: 3720 adds r7, #32 - 8010610: 46bd mov sp, r7 - 8010612: bd80 pop {r7, pc} + 8010578: 4618 mov r0, r3 + 801057a: 3720 adds r7, #32 + 801057c: 46bd mov sp, r7 + 801057e: bd80 pop {r7, pc} -08010614 : +08010580 : * Make the refreshing from an object. Draw all its children and the youngers too. * @param top_p pointer to an objects. Start the drawing from it. * @param mask_p pointer to an area, the objects will be drawn only here */ static void lv_refr_obj_and_children(lv_draw_ctx_t * draw_ctx, lv_obj_t * top_obj) { - 8010614: b580 push {r7, lr} - 8010616: b088 sub sp, #32 - 8010618: af00 add r7, sp, #0 - 801061a: 6078 str r0, [r7, #4] - 801061c: 6039 str r1, [r7, #0] + 8010580: b580 push {r7, lr} + 8010582: b088 sub sp, #32 + 8010584: af00 add r7, sp, #0 + 8010586: 6078 str r0, [r7, #4] + 8010588: 6039 str r1, [r7, #0] /*Normally always will be a top_obj (at least the screen) *but in special cases (e.g. if the screen has alpha) it won't. *In this case use the screen directly*/ if(top_obj == NULL) top_obj = lv_disp_get_scr_act(disp_refr); - 801061e: 683b ldr r3, [r7, #0] - 8010620: 2b00 cmp r3, #0 - 8010622: d105 bne.n 8010630 - 8010624: 4b2c ldr r3, [pc, #176] ; (80106d8 ) - 8010626: 681b ldr r3, [r3, #0] - 8010628: 4618 mov r0, r3 - 801062a: f7f1 fec5 bl 80023b8 - 801062e: 6038 str r0, [r7, #0] + 801058a: 683b ldr r3, [r7, #0] + 801058c: 2b00 cmp r3, #0 + 801058e: d105 bne.n 801059c + 8010590: 4b2c ldr r3, [pc, #176] ; (8010644 ) + 8010592: 681b ldr r3, [r3, #0] + 8010594: 4618 mov r0, r3 + 8010596: f7f1 fe9b bl 80022d0 + 801059a: 6038 str r0, [r7, #0] if(top_obj == NULL) return; /*Shouldn't happen*/ - 8010630: 683b ldr r3, [r7, #0] - 8010632: 2b00 cmp r3, #0 - 8010634: d04c beq.n 80106d0 + 801059c: 683b ldr r3, [r7, #0] + 801059e: 2b00 cmp r3, #0 + 80105a0: d04c beq.n 801063c /*Refresh the top object and its children*/ lv_refr_obj(draw_ctx, top_obj); - 8010636: 6839 ldr r1, [r7, #0] - 8010638: 6878 ldr r0, [r7, #4] - 801063a: f7ff fa1d bl 800fa78 + 80105a2: 6839 ldr r1, [r7, #0] + 80105a4: 6878 ldr r0, [r7, #4] + 80105a6: f7ff fa1d bl 800f9e4 /*Draw the 'younger' sibling objects because they can be on top_obj*/ lv_obj_t * parent; lv_obj_t * border_p = top_obj; - 801063e: 683b ldr r3, [r7, #0] - 8010640: 61bb str r3, [r7, #24] + 80105aa: 683b ldr r3, [r7, #0] + 80105ac: 61bb str r3, [r7, #24] parent = lv_obj_get_parent(top_obj); - 8010642: 6838 ldr r0, [r7, #0] - 8010644: f7ff f862 bl 800f70c - 8010648: 61f8 str r0, [r7, #28] + 80105ae: 6838 ldr r0, [r7, #0] + 80105b0: f7ff f862 bl 800f678 + 80105b4: 61f8 str r0, [r7, #28] /*Do until not reach the screen*/ while(parent != NULL) { - 801064a: e03d b.n 80106c8 + 80105b6: e03d b.n 8010634 bool go = false; - 801064c: 2300 movs r3, #0 - 801064e: 75fb strb r3, [r7, #23] + 80105b8: 2300 movs r3, #0 + 80105ba: 75fb strb r3, [r7, #23] uint32_t i; uint32_t child_cnt = lv_obj_get_child_cnt(parent); - 8010650: 69f8 ldr r0, [r7, #28] - 8010652: f7ff f89d bl 800f790 - 8010656: 60f8 str r0, [r7, #12] + 80105bc: 69f8 ldr r0, [r7, #28] + 80105be: f7ff f89d bl 800f6fc + 80105c2: 60f8 str r0, [r7, #12] for(i = 0; i < child_cnt; i++) { - 8010658: 2300 movs r3, #0 - 801065a: 613b str r3, [r7, #16] - 801065c: e01b b.n 8010696 + 80105c4: 2300 movs r3, #0 + 80105c6: 613b str r3, [r7, #16] + 80105c8: e01b b.n 8010602 lv_obj_t * child = parent->spec_attr->children[i]; - 801065e: 69fb ldr r3, [r7, #28] - 8010660: 689b ldr r3, [r3, #8] - 8010662: 681a ldr r2, [r3, #0] - 8010664: 693b ldr r3, [r7, #16] - 8010666: 009b lsls r3, r3, #2 - 8010668: 4413 add r3, r2 - 801066a: 681b ldr r3, [r3, #0] - 801066c: 60bb str r3, [r7, #8] + 80105ca: 69fb ldr r3, [r7, #28] + 80105cc: 689b ldr r3, [r3, #8] + 80105ce: 681a ldr r2, [r3, #0] + 80105d0: 693b ldr r3, [r7, #16] + 80105d2: 009b lsls r3, r3, #2 + 80105d4: 4413 add r3, r2 + 80105d6: 681b ldr r3, [r3, #0] + 80105d8: 60bb str r3, [r7, #8] if(!go) { - 801066e: 7dfb ldrb r3, [r7, #23] - 8010670: f083 0301 eor.w r3, r3, #1 - 8010674: b2db uxtb r3, r3 - 8010676: 2b00 cmp r3, #0 - 8010678: d006 beq.n 8010688 + 80105da: 7dfb ldrb r3, [r7, #23] + 80105dc: f083 0301 eor.w r3, r3, #1 + 80105e0: b2db uxtb r3, r3 + 80105e2: 2b00 cmp r3, #0 + 80105e4: d006 beq.n 80105f4 if(child == border_p) go = true; - 801067a: 68ba ldr r2, [r7, #8] - 801067c: 69bb ldr r3, [r7, #24] - 801067e: 429a cmp r2, r3 - 8010680: d106 bne.n 8010690 - 8010682: 2301 movs r3, #1 - 8010684: 75fb strb r3, [r7, #23] - 8010686: e003 b.n 8010690 + 80105e6: 68ba ldr r2, [r7, #8] + 80105e8: 69bb ldr r3, [r7, #24] + 80105ea: 429a cmp r2, r3 + 80105ec: d106 bne.n 80105fc + 80105ee: 2301 movs r3, #1 + 80105f0: 75fb strb r3, [r7, #23] + 80105f2: e003 b.n 80105fc } else { /*Refresh the objects*/ lv_refr_obj(draw_ctx, child); - 8010688: 68b9 ldr r1, [r7, #8] - 801068a: 6878 ldr r0, [r7, #4] - 801068c: f7ff f9f4 bl 800fa78 + 80105f4: 68b9 ldr r1, [r7, #8] + 80105f6: 6878 ldr r0, [r7, #4] + 80105f8: f7ff f9f4 bl 800f9e4 for(i = 0; i < child_cnt; i++) { - 8010690: 693b ldr r3, [r7, #16] - 8010692: 3301 adds r3, #1 - 8010694: 613b str r3, [r7, #16] - 8010696: 693a ldr r2, [r7, #16] - 8010698: 68fb ldr r3, [r7, #12] - 801069a: 429a cmp r2, r3 - 801069c: d3df bcc.n 801065e + 80105fc: 693b ldr r3, [r7, #16] + 80105fe: 3301 adds r3, #1 + 8010600: 613b str r3, [r7, #16] + 8010602: 693a ldr r2, [r7, #16] + 8010604: 68fb ldr r3, [r7, #12] + 8010606: 429a cmp r2, r3 + 8010608: d3df bcc.n 80105ca } } /*Call the post draw draw function of the parents of the to object*/ lv_event_send(parent, LV_EVENT_DRAW_POST_BEGIN, (void *)draw_ctx); - 801069e: 687a ldr r2, [r7, #4] - 80106a0: 2117 movs r1, #23 - 80106a2: 69f8 ldr r0, [r7, #28] - 80106a4: f7f1 feec bl 8002480 + 801060a: 687a ldr r2, [r7, #4] + 801060c: 2117 movs r1, #23 + 801060e: 69f8 ldr r0, [r7, #28] + 8010610: f7f1 ff00 bl 8002414 lv_event_send(parent, LV_EVENT_DRAW_POST, (void *)draw_ctx); - 80106a8: 687a ldr r2, [r7, #4] - 80106aa: 2118 movs r1, #24 - 80106ac: 69f8 ldr r0, [r7, #28] - 80106ae: f7f1 fee7 bl 8002480 + 8010614: 687a ldr r2, [r7, #4] + 8010616: 2118 movs r1, #24 + 8010618: 69f8 ldr r0, [r7, #28] + 801061a: f7f1 fefb bl 8002414 lv_event_send(parent, LV_EVENT_DRAW_POST_END, (void *)draw_ctx); - 80106b2: 687a ldr r2, [r7, #4] - 80106b4: 2119 movs r1, #25 - 80106b6: 69f8 ldr r0, [r7, #28] - 80106b8: f7f1 fee2 bl 8002480 + 801061e: 687a ldr r2, [r7, #4] + 8010620: 2119 movs r1, #25 + 8010622: 69f8 ldr r0, [r7, #28] + 8010624: f7f1 fef6 bl 8002414 /*The new border will be the last parents, *so the 'younger' brothers of parent will be refreshed*/ border_p = parent; - 80106bc: 69fb ldr r3, [r7, #28] - 80106be: 61bb str r3, [r7, #24] + 8010628: 69fb ldr r3, [r7, #28] + 801062a: 61bb str r3, [r7, #24] /*Go a level deeper*/ parent = lv_obj_get_parent(parent); - 80106c0: 69f8 ldr r0, [r7, #28] - 80106c2: f7ff f823 bl 800f70c - 80106c6: 61f8 str r0, [r7, #28] + 801062c: 69f8 ldr r0, [r7, #28] + 801062e: f7ff f823 bl 800f678 + 8010632: 61f8 str r0, [r7, #28] while(parent != NULL) { - 80106c8: 69fb ldr r3, [r7, #28] - 80106ca: 2b00 cmp r3, #0 - 80106cc: d1be bne.n 801064c - 80106ce: e000 b.n 80106d2 + 8010634: 69fb ldr r3, [r7, #28] + 8010636: 2b00 cmp r3, #0 + 8010638: d1be bne.n 80105b8 + 801063a: e000 b.n 801063e if(top_obj == NULL) return; /*Shouldn't happen*/ - 80106d0: bf00 nop + 801063c: bf00 nop } } - 80106d2: 3720 adds r7, #32 - 80106d4: 46bd mov sp, r7 - 80106d6: bd80 pop {r7, pc} - 80106d8: 20001b10 .word 0x20001b10 + 801063e: 3720 adds r7, #32 + 8010640: 46bd mov sp, r7 + 8010642: bd80 pop {r7, pc} + 8010644: 20001b10 .word 0x20001b10 -080106dc : +08010648 : static uint32_t get_max_row(lv_disp_t * disp, lv_coord_t area_w, lv_coord_t area_h) { - 80106dc: b580 push {r7, lr} - 80106de: b086 sub sp, #24 - 80106e0: af00 add r7, sp, #0 - 80106e2: 6078 str r0, [r7, #4] - 80106e4: 460b mov r3, r1 - 80106e6: 807b strh r3, [r7, #2] - 80106e8: 4613 mov r3, r2 - 80106ea: 803b strh r3, [r7, #0] + 8010648: b580 push {r7, lr} + 801064a: b086 sub sp, #24 + 801064c: af00 add r7, sp, #0 + 801064e: 6078 str r0, [r7, #4] + 8010650: 460b mov r3, r1 + 8010652: 807b strh r3, [r7, #2] + 8010654: 4613 mov r3, r2 + 8010656: 803b strh r3, [r7, #0] int32_t max_row = (uint32_t)disp->driver->draw_buf->size / area_w; - 80106ec: 687b ldr r3, [r7, #4] - 80106ee: 681b ldr r3, [r3, #0] - 80106f0: 68db ldr r3, [r3, #12] - 80106f2: 68da ldr r2, [r3, #12] - 80106f4: f9b7 3002 ldrsh.w r3, [r7, #2] - 80106f8: fbb2 f3f3 udiv r3, r2, r3 - 80106fc: 617b str r3, [r7, #20] + 8010658: 687b ldr r3, [r7, #4] + 801065a: 681b ldr r3, [r3, #0] + 801065c: 68db ldr r3, [r3, #12] + 801065e: 68da ldr r2, [r3, #12] + 8010660: f9b7 3002 ldrsh.w r3, [r7, #2] + 8010664: fbb2 f3f3 udiv r3, r2, r3 + 8010668: 617b str r3, [r7, #20] if(max_row > area_h) max_row = area_h; - 80106fe: f9b7 3000 ldrsh.w r3, [r7] - 8010702: 697a ldr r2, [r7, #20] - 8010704: 429a cmp r2, r3 - 8010706: dd02 ble.n 801070e - 8010708: f9b7 3000 ldrsh.w r3, [r7] - 801070c: 617b str r3, [r7, #20] + 801066a: f9b7 3000 ldrsh.w r3, [r7] + 801066e: 697a ldr r2, [r7, #20] + 8010670: 429a cmp r2, r3 + 8010672: dd02 ble.n 801067a + 8010674: f9b7 3000 ldrsh.w r3, [r7] + 8010678: 617b str r3, [r7, #20] /*Round down the lines of draw_buf if rounding is added*/ if(disp_refr->driver->rounder_cb) { - 801070e: 4b21 ldr r3, [pc, #132] ; (8010794 ) - 8010710: 681b ldr r3, [r3, #0] - 8010712: 681b ldr r3, [r3, #0] - 8010714: 699b ldr r3, [r3, #24] - 8010716: 2b00 cmp r3, #0 - 8010718: d037 beq.n 801078a + 801067a: 4b21 ldr r3, [pc, #132] ; (8010700 ) + 801067c: 681b ldr r3, [r3, #0] + 801067e: 681b ldr r3, [r3, #0] + 8010680: 699b ldr r3, [r3, #24] + 8010682: 2b00 cmp r3, #0 + 8010684: d037 beq.n 80106f6 lv_area_t tmp; tmp.x1 = 0; - 801071a: 2300 movs r3, #0 - 801071c: 813b strh r3, [r7, #8] + 8010686: 2300 movs r3, #0 + 8010688: 813b strh r3, [r7, #8] tmp.x2 = 0; - 801071e: 2300 movs r3, #0 - 8010720: 81bb strh r3, [r7, #12] + 801068a: 2300 movs r3, #0 + 801068c: 81bb strh r3, [r7, #12] tmp.y1 = 0; - 8010722: 2300 movs r3, #0 - 8010724: 817b strh r3, [r7, #10] + 801068e: 2300 movs r3, #0 + 8010690: 817b strh r3, [r7, #10] lv_coord_t h_tmp = max_row; - 8010726: 697b ldr r3, [r7, #20] - 8010728: 827b strh r3, [r7, #18] + 8010692: 697b ldr r3, [r7, #20] + 8010694: 827b strh r3, [r7, #18] do { tmp.y2 = h_tmp - 1; - 801072a: 8a7b ldrh r3, [r7, #18] - 801072c: 3b01 subs r3, #1 - 801072e: b29b uxth r3, r3 - 8010730: b21b sxth r3, r3 - 8010732: 81fb strh r3, [r7, #14] + 8010696: 8a7b ldrh r3, [r7, #18] + 8010698: 3b01 subs r3, #1 + 801069a: b29b uxth r3, r3 + 801069c: b21b sxth r3, r3 + 801069e: 81fb strh r3, [r7, #14] disp_refr->driver->rounder_cb(disp_refr->driver, &tmp); - 8010734: 4b17 ldr r3, [pc, #92] ; (8010794 ) - 8010736: 681b ldr r3, [r3, #0] - 8010738: 681b ldr r3, [r3, #0] - 801073a: 699b ldr r3, [r3, #24] - 801073c: 4a15 ldr r2, [pc, #84] ; (8010794 ) - 801073e: 6812 ldr r2, [r2, #0] - 8010740: 6812 ldr r2, [r2, #0] - 8010742: f107 0108 add.w r1, r7, #8 - 8010746: 4610 mov r0, r2 - 8010748: 4798 blx r3 + 80106a0: 4b17 ldr r3, [pc, #92] ; (8010700 ) + 80106a2: 681b ldr r3, [r3, #0] + 80106a4: 681b ldr r3, [r3, #0] + 80106a6: 699b ldr r3, [r3, #24] + 80106a8: 4a15 ldr r2, [pc, #84] ; (8010700 ) + 80106aa: 6812 ldr r2, [r2, #0] + 80106ac: 6812 ldr r2, [r2, #0] + 80106ae: f107 0108 add.w r1, r7, #8 + 80106b2: 4610 mov r0, r2 + 80106b4: 4798 blx r3 /*If this height fits into `max_row` then fine*/ if(lv_area_get_height(&tmp) <= max_row) break; - 801074a: f107 0308 add.w r3, r7, #8 - 801074e: 4618 mov r0, r3 - 8010750: f7ff f976 bl 800fa40 - 8010754: 4603 mov r3, r0 - 8010756: 461a mov r2, r3 - 8010758: 697b ldr r3, [r7, #20] - 801075a: 4293 cmp r3, r2 - 801075c: da0a bge.n 8010774 + 80106b6: f107 0308 add.w r3, r7, #8 + 80106ba: 4618 mov r0, r3 + 80106bc: f7ff f976 bl 800f9ac + 80106c0: 4603 mov r3, r0 + 80106c2: 461a mov r2, r3 + 80106c4: 697b ldr r3, [r7, #20] + 80106c6: 4293 cmp r3, r2 + 80106c8: da0a bge.n 80106e0 /*Decrement the height of the area until it fits into `max_row` after rounding*/ h_tmp--; - 801075e: f9b7 3012 ldrsh.w r3, [r7, #18] - 8010762: b29b uxth r3, r3 - 8010764: 3b01 subs r3, #1 - 8010766: b29b uxth r3, r3 - 8010768: 827b strh r3, [r7, #18] + 80106ca: f9b7 3012 ldrsh.w r3, [r7, #18] + 80106ce: b29b uxth r3, r3 + 80106d0: 3b01 subs r3, #1 + 80106d2: b29b uxth r3, r3 + 80106d4: 827b strh r3, [r7, #18] } while(h_tmp > 0); - 801076a: f9b7 3012 ldrsh.w r3, [r7, #18] - 801076e: 2b00 cmp r3, #0 - 8010770: dcdb bgt.n 801072a - 8010772: e000 b.n 8010776 + 80106d6: f9b7 3012 ldrsh.w r3, [r7, #18] + 80106da: 2b00 cmp r3, #0 + 80106dc: dcdb bgt.n 8010696 + 80106de: e000 b.n 80106e2 if(lv_area_get_height(&tmp) <= max_row) break; - 8010774: bf00 nop + 80106e0: bf00 nop if(h_tmp <= 0) { - 8010776: f9b7 3012 ldrsh.w r3, [r7, #18] - 801077a: 2b00 cmp r3, #0 - 801077c: dc01 bgt.n 8010782 + 80106e2: f9b7 3012 ldrsh.w r3, [r7, #18] + 80106e6: 2b00 cmp r3, #0 + 80106e8: dc01 bgt.n 80106ee LV_LOG_WARN("Can't set draw_buf height using the round function. (Wrong round_cb or to " "small draw_buf)"); return 0; - 801077e: 2300 movs r3, #0 - 8010780: e004 b.n 801078c + 80106ea: 2300 movs r3, #0 + 80106ec: e004 b.n 80106f8 } else { max_row = tmp.y2 + 1; - 8010782: f9b7 300e ldrsh.w r3, [r7, #14] - 8010786: 3301 adds r3, #1 - 8010788: 617b str r3, [r7, #20] + 80106ee: f9b7 300e ldrsh.w r3, [r7, #14] + 80106f2: 3301 adds r3, #1 + 80106f4: 617b str r3, [r7, #20] } } return max_row; - 801078a: 697b ldr r3, [r7, #20] + 80106f6: 697b ldr r3, [r7, #20] } - 801078c: 4618 mov r0, r3 - 801078e: 3718 adds r7, #24 - 8010790: 46bd mov sp, r7 - 8010792: bd80 pop {r7, pc} - 8010794: 20001b10 .word 0x20001b10 + 80106f8: 4618 mov r0, r3 + 80106fa: 3718 adds r7, #24 + 80106fc: 46bd mov sp, r7 + 80106fe: bd80 pop {r7, pc} + 8010700: 20001b10 .word 0x20001b10 -08010798 : +08010704 : static void draw_buf_rotate_180(lv_disp_drv_t * drv, lv_area_t * area, lv_color_t * color_p) { - 8010798: b580 push {r7, lr} - 801079a: b08a sub sp, #40 ; 0x28 - 801079c: af00 add r7, sp, #0 - 801079e: 60f8 str r0, [r7, #12] - 80107a0: 60b9 str r1, [r7, #8] - 80107a2: 607a str r2, [r7, #4] + 8010704: b580 push {r7, lr} + 8010706: b08a sub sp, #40 ; 0x28 + 8010708: af00 add r7, sp, #0 + 801070a: 60f8 str r0, [r7, #12] + 801070c: 60b9 str r1, [r7, #8] + 801070e: 607a str r2, [r7, #4] lv_coord_t area_w = lv_area_get_width(area); - 80107a4: 68b8 ldr r0, [r7, #8] - 80107a6: f7ff f935 bl 800fa14 - 80107aa: 4603 mov r3, r0 - 80107ac: 83fb strh r3, [r7, #30] + 8010710: 68b8 ldr r0, [r7, #8] + 8010712: f7ff f935 bl 800f980 + 8010716: 4603 mov r3, r0 + 8010718: 83fb strh r3, [r7, #30] lv_coord_t area_h = lv_area_get_height(area); - 80107ae: 68b8 ldr r0, [r7, #8] - 80107b0: f7ff f946 bl 800fa40 - 80107b4: 4603 mov r3, r0 - 80107b6: 83bb strh r3, [r7, #28] + 801071a: 68b8 ldr r0, [r7, #8] + 801071c: f7ff f946 bl 800f9ac + 8010720: 4603 mov r3, r0 + 8010722: 83bb strh r3, [r7, #28] uint32_t total = area_w * area_h; - 80107b8: f9b7 301e ldrsh.w r3, [r7, #30] - 80107bc: f9b7 201c ldrsh.w r2, [r7, #28] - 80107c0: fb02 f303 mul.w r3, r2, r3 - 80107c4: 61bb str r3, [r7, #24] + 8010724: f9b7 301e ldrsh.w r3, [r7, #30] + 8010728: f9b7 201c ldrsh.w r2, [r7, #28] + 801072c: fb02 f303 mul.w r3, r2, r3 + 8010730: 61bb str r3, [r7, #24] /*Swap the beginning and end values*/ lv_color_t tmp; uint32_t i = total - 1, j = 0; - 80107c6: 69bb ldr r3, [r7, #24] - 80107c8: 3b01 subs r3, #1 - 80107ca: 627b str r3, [r7, #36] ; 0x24 - 80107cc: 2300 movs r3, #0 - 80107ce: 623b str r3, [r7, #32] + 8010732: 69bb ldr r3, [r7, #24] + 8010734: 3b01 subs r3, #1 + 8010736: 627b str r3, [r7, #36] ; 0x24 + 8010738: 2300 movs r3, #0 + 801073a: 623b str r3, [r7, #32] while(i > j) { - 80107d0: e01b b.n 801080a + 801073c: e01b b.n 8010776 tmp = color_p[i]; - 80107d2: 6a7b ldr r3, [r7, #36] ; 0x24 - 80107d4: 005b lsls r3, r3, #1 - 80107d6: 687a ldr r2, [r7, #4] - 80107d8: 4413 add r3, r2 - 80107da: 881b ldrh r3, [r3, #0] - 80107dc: 82bb strh r3, [r7, #20] + 801073e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8010740: 005b lsls r3, r3, #1 + 8010742: 687a ldr r2, [r7, #4] + 8010744: 4413 add r3, r2 + 8010746: 881b ldrh r3, [r3, #0] + 8010748: 82bb strh r3, [r7, #20] color_p[i] = color_p[j]; - 80107de: 6a3b ldr r3, [r7, #32] - 80107e0: 005b lsls r3, r3, #1 - 80107e2: 687a ldr r2, [r7, #4] - 80107e4: 441a add r2, r3 - 80107e6: 6a7b ldr r3, [r7, #36] ; 0x24 - 80107e8: 005b lsls r3, r3, #1 - 80107ea: 6879 ldr r1, [r7, #4] - 80107ec: 440b add r3, r1 - 80107ee: 8812 ldrh r2, [r2, #0] - 80107f0: 801a strh r2, [r3, #0] + 801074a: 6a3b ldr r3, [r7, #32] + 801074c: 005b lsls r3, r3, #1 + 801074e: 687a ldr r2, [r7, #4] + 8010750: 441a add r2, r3 + 8010752: 6a7b ldr r3, [r7, #36] ; 0x24 + 8010754: 005b lsls r3, r3, #1 + 8010756: 6879 ldr r1, [r7, #4] + 8010758: 440b add r3, r1 + 801075a: 8812 ldrh r2, [r2, #0] + 801075c: 801a strh r2, [r3, #0] color_p[j] = tmp; - 80107f2: 6a3b ldr r3, [r7, #32] - 80107f4: 005b lsls r3, r3, #1 - 80107f6: 687a ldr r2, [r7, #4] - 80107f8: 4413 add r3, r2 - 80107fa: 8aba ldrh r2, [r7, #20] - 80107fc: 801a strh r2, [r3, #0] + 801075e: 6a3b ldr r3, [r7, #32] + 8010760: 005b lsls r3, r3, #1 + 8010762: 687a ldr r2, [r7, #4] + 8010764: 4413 add r3, r2 + 8010766: 8aba ldrh r2, [r7, #20] + 8010768: 801a strh r2, [r3, #0] i--; - 80107fe: 6a7b ldr r3, [r7, #36] ; 0x24 - 8010800: 3b01 subs r3, #1 - 8010802: 627b str r3, [r7, #36] ; 0x24 + 801076a: 6a7b ldr r3, [r7, #36] ; 0x24 + 801076c: 3b01 subs r3, #1 + 801076e: 627b str r3, [r7, #36] ; 0x24 j++; - 8010804: 6a3b ldr r3, [r7, #32] - 8010806: 3301 adds r3, #1 - 8010808: 623b str r3, [r7, #32] + 8010770: 6a3b ldr r3, [r7, #32] + 8010772: 3301 adds r3, #1 + 8010774: 623b str r3, [r7, #32] while(i > j) { - 801080a: 6a7a ldr r2, [r7, #36] ; 0x24 - 801080c: 6a3b ldr r3, [r7, #32] - 801080e: 429a cmp r2, r3 - 8010810: d8df bhi.n 80107d2 + 8010776: 6a7a ldr r2, [r7, #36] ; 0x24 + 8010778: 6a3b ldr r3, [r7, #32] + 801077a: 429a cmp r2, r3 + 801077c: d8df bhi.n 801073e } lv_coord_t tmp_coord; tmp_coord = area->y2; - 8010812: 68bb ldr r3, [r7, #8] - 8010814: 88db ldrh r3, [r3, #6] - 8010816: 82fb strh r3, [r7, #22] + 801077e: 68bb ldr r3, [r7, #8] + 8010780: 88db ldrh r3, [r3, #6] + 8010782: 82fb strh r3, [r7, #22] area->y2 = drv->ver_res - area->y1 - 1; - 8010818: 68fb ldr r3, [r7, #12] - 801081a: f9b3 3002 ldrsh.w r3, [r3, #2] - 801081e: b29a uxth r2, r3 - 8010820: 68bb ldr r3, [r7, #8] - 8010822: f9b3 3002 ldrsh.w r3, [r3, #2] - 8010826: b29b uxth r3, r3 - 8010828: 1ad3 subs r3, r2, r3 - 801082a: b29b uxth r3, r3 - 801082c: 3b01 subs r3, #1 - 801082e: b29b uxth r3, r3 - 8010830: b21a sxth r2, r3 - 8010832: 68bb ldr r3, [r7, #8] - 8010834: 80da strh r2, [r3, #6] + 8010784: 68fb ldr r3, [r7, #12] + 8010786: f9b3 3002 ldrsh.w r3, [r3, #2] + 801078a: b29a uxth r2, r3 + 801078c: 68bb ldr r3, [r7, #8] + 801078e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8010792: b29b uxth r3, r3 + 8010794: 1ad3 subs r3, r2, r3 + 8010796: b29b uxth r3, r3 + 8010798: 3b01 subs r3, #1 + 801079a: b29b uxth r3, r3 + 801079c: b21a sxth r2, r3 + 801079e: 68bb ldr r3, [r7, #8] + 80107a0: 80da strh r2, [r3, #6] area->y1 = drv->ver_res - tmp_coord - 1; - 8010836: 68fb ldr r3, [r7, #12] - 8010838: f9b3 3002 ldrsh.w r3, [r3, #2] - 801083c: b29a uxth r2, r3 - 801083e: 8afb ldrh r3, [r7, #22] - 8010840: 1ad3 subs r3, r2, r3 - 8010842: b29b uxth r3, r3 - 8010844: 3b01 subs r3, #1 - 8010846: b29b uxth r3, r3 - 8010848: b21a sxth r2, r3 - 801084a: 68bb ldr r3, [r7, #8] - 801084c: 805a strh r2, [r3, #2] + 80107a2: 68fb ldr r3, [r7, #12] + 80107a4: f9b3 3002 ldrsh.w r3, [r3, #2] + 80107a8: b29a uxth r2, r3 + 80107aa: 8afb ldrh r3, [r7, #22] + 80107ac: 1ad3 subs r3, r2, r3 + 80107ae: b29b uxth r3, r3 + 80107b0: 3b01 subs r3, #1 + 80107b2: b29b uxth r3, r3 + 80107b4: b21a sxth r2, r3 + 80107b6: 68bb ldr r3, [r7, #8] + 80107b8: 805a strh r2, [r3, #2] tmp_coord = area->x2; - 801084e: 68bb ldr r3, [r7, #8] - 8010850: 889b ldrh r3, [r3, #4] - 8010852: 82fb strh r3, [r7, #22] + 80107ba: 68bb ldr r3, [r7, #8] + 80107bc: 889b ldrh r3, [r3, #4] + 80107be: 82fb strh r3, [r7, #22] area->x2 = drv->hor_res - area->x1 - 1; - 8010854: 68fb ldr r3, [r7, #12] - 8010856: f9b3 3000 ldrsh.w r3, [r3] - 801085a: b29a uxth r2, r3 - 801085c: 68bb ldr r3, [r7, #8] - 801085e: f9b3 3000 ldrsh.w r3, [r3] - 8010862: b29b uxth r3, r3 - 8010864: 1ad3 subs r3, r2, r3 - 8010866: b29b uxth r3, r3 - 8010868: 3b01 subs r3, #1 - 801086a: b29b uxth r3, r3 - 801086c: b21a sxth r2, r3 - 801086e: 68bb ldr r3, [r7, #8] - 8010870: 809a strh r2, [r3, #4] + 80107c0: 68fb ldr r3, [r7, #12] + 80107c2: f9b3 3000 ldrsh.w r3, [r3] + 80107c6: b29a uxth r2, r3 + 80107c8: 68bb ldr r3, [r7, #8] + 80107ca: f9b3 3000 ldrsh.w r3, [r3] + 80107ce: b29b uxth r3, r3 + 80107d0: 1ad3 subs r3, r2, r3 + 80107d2: b29b uxth r3, r3 + 80107d4: 3b01 subs r3, #1 + 80107d6: b29b uxth r3, r3 + 80107d8: b21a sxth r2, r3 + 80107da: 68bb ldr r3, [r7, #8] + 80107dc: 809a strh r2, [r3, #4] area->x1 = drv->hor_res - tmp_coord - 1; - 8010872: 68fb ldr r3, [r7, #12] - 8010874: f9b3 3000 ldrsh.w r3, [r3] - 8010878: b29a uxth r2, r3 - 801087a: 8afb ldrh r3, [r7, #22] - 801087c: 1ad3 subs r3, r2, r3 - 801087e: b29b uxth r3, r3 - 8010880: 3b01 subs r3, #1 - 8010882: b29b uxth r3, r3 - 8010884: b21a sxth r2, r3 - 8010886: 68bb ldr r3, [r7, #8] - 8010888: 801a strh r2, [r3, #0] + 80107de: 68fb ldr r3, [r7, #12] + 80107e0: f9b3 3000 ldrsh.w r3, [r3] + 80107e4: b29a uxth r2, r3 + 80107e6: 8afb ldrh r3, [r7, #22] + 80107e8: 1ad3 subs r3, r2, r3 + 80107ea: b29b uxth r3, r3 + 80107ec: 3b01 subs r3, #1 + 80107ee: b29b uxth r3, r3 + 80107f0: b21a sxth r2, r3 + 80107f2: 68bb ldr r3, [r7, #8] + 80107f4: 801a strh r2, [r3, #0] } - 801088a: bf00 nop - 801088c: 3728 adds r7, #40 ; 0x28 - 801088e: 46bd mov sp, r7 - 8010890: bd80 pop {r7, pc} + 80107f6: bf00 nop + 80107f8: 3728 adds r7, #40 ; 0x28 + 80107fa: 46bd mov sp, r7 + 80107fc: bd80 pop {r7, pc} -08010892 : +080107fe : static LV_ATTRIBUTE_FAST_MEM void draw_buf_rotate_90(bool invert_i, lv_coord_t area_w, lv_coord_t area_h, lv_color_t * orig_color_p, lv_color_t * rot_buf) { - 8010892: b480 push {r7} - 8010894: b08b sub sp, #44 ; 0x2c - 8010896: af00 add r7, sp, #0 - 8010898: 607b str r3, [r7, #4] - 801089a: 4603 mov r3, r0 - 801089c: 73fb strb r3, [r7, #15] - 801089e: 460b mov r3, r1 - 80108a0: 81bb strh r3, [r7, #12] - 80108a2: 4613 mov r3, r2 - 80108a4: 817b strh r3, [r7, #10] + 80107fe: b480 push {r7} + 8010800: b08b sub sp, #44 ; 0x2c + 8010802: af00 add r7, sp, #0 + 8010804: 607b str r3, [r7, #4] + 8010806: 4603 mov r3, r0 + 8010808: 73fb strb r3, [r7, #15] + 801080a: 460b mov r3, r1 + 801080c: 81bb strh r3, [r7, #12] + 801080e: 4613 mov r3, r2 + 8010810: 817b strh r3, [r7, #10] uint32_t invert = (area_w * area_h) - 1; - 80108a6: f9b7 300c ldrsh.w r3, [r7, #12] - 80108aa: f9b7 200a ldrsh.w r2, [r7, #10] - 80108ae: fb02 f303 mul.w r3, r2, r3 - 80108b2: 3b01 subs r3, #1 - 80108b4: 61bb str r3, [r7, #24] + 8010812: f9b7 300c ldrsh.w r3, [r7, #12] + 8010816: f9b7 200a ldrsh.w r2, [r7, #10] + 801081a: fb02 f303 mul.w r3, r2, r3 + 801081e: 3b01 subs r3, #1 + 8010820: 61bb str r3, [r7, #24] uint32_t initial_i = ((area_w - 1) * area_h); - 80108b6: f9b7 300c ldrsh.w r3, [r7, #12] - 80108ba: 3b01 subs r3, #1 - 80108bc: f9b7 200a ldrsh.w r2, [r7, #10] - 80108c0: fb02 f303 mul.w r3, r2, r3 - 80108c4: 617b str r3, [r7, #20] + 8010822: f9b7 300c ldrsh.w r3, [r7, #12] + 8010826: 3b01 subs r3, #1 + 8010828: f9b7 200a ldrsh.w r2, [r7, #10] + 801082c: fb02 f303 mul.w r3, r2, r3 + 8010830: 617b str r3, [r7, #20] for(lv_coord_t y = 0; y < area_h; y++) { - 80108c6: 2300 movs r3, #0 - 80108c8: 84fb strh r3, [r7, #38] ; 0x26 - 80108ca: e037 b.n 801093c + 8010832: 2300 movs r3, #0 + 8010834: 84fb strh r3, [r7, #38] ; 0x26 + 8010836: e037 b.n 80108a8 uint32_t i = initial_i + y; - 80108cc: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 80108d0: 697a ldr r2, [r7, #20] - 80108d2: 4413 add r3, r2 - 80108d4: 623b str r3, [r7, #32] + 8010838: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 801083c: 697a ldr r2, [r7, #20] + 801083e: 4413 add r3, r2 + 8010840: 623b str r3, [r7, #32] if(invert_i) - 80108d6: 7bfb ldrb r3, [r7, #15] - 80108d8: 2b00 cmp r3, #0 - 80108da: d003 beq.n 80108e4 + 8010842: 7bfb ldrb r3, [r7, #15] + 8010844: 2b00 cmp r3, #0 + 8010846: d003 beq.n 8010850 i = invert - i; - 80108dc: 69ba ldr r2, [r7, #24] - 80108de: 6a3b ldr r3, [r7, #32] - 80108e0: 1ad3 subs r3, r2, r3 - 80108e2: 623b str r3, [r7, #32] + 8010848: 69ba ldr r2, [r7, #24] + 801084a: 6a3b ldr r3, [r7, #32] + 801084c: 1ad3 subs r3, r2, r3 + 801084e: 623b str r3, [r7, #32] for(lv_coord_t x = 0; x < area_w; x++) { - 80108e4: 2300 movs r3, #0 - 80108e6: 83fb strh r3, [r7, #30] - 80108e8: e01c b.n 8010924 + 8010850: 2300 movs r3, #0 + 8010852: 83fb strh r3, [r7, #30] + 8010854: e01c b.n 8010890 rot_buf[i] = *(orig_color_p++); - 80108ea: 687b ldr r3, [r7, #4] - 80108ec: 1c9a adds r2, r3, #2 - 80108ee: 607a str r2, [r7, #4] - 80108f0: 6a3a ldr r2, [r7, #32] - 80108f2: 0052 lsls r2, r2, #1 - 80108f4: 6b39 ldr r1, [r7, #48] ; 0x30 - 80108f6: 440a add r2, r1 - 80108f8: 881b ldrh r3, [r3, #0] - 80108fa: 8013 strh r3, [r2, #0] + 8010856: 687b ldr r3, [r7, #4] + 8010858: 1c9a adds r2, r3, #2 + 801085a: 607a str r2, [r7, #4] + 801085c: 6a3a ldr r2, [r7, #32] + 801085e: 0052 lsls r2, r2, #1 + 8010860: 6b39 ldr r1, [r7, #48] ; 0x30 + 8010862: 440a add r2, r1 + 8010864: 881b ldrh r3, [r3, #0] + 8010866: 8013 strh r3, [r2, #0] if(invert_i) - 80108fc: 7bfb ldrb r3, [r7, #15] - 80108fe: 2b00 cmp r3, #0 - 8010900: d005 beq.n 801090e + 8010868: 7bfb ldrb r3, [r7, #15] + 801086a: 2b00 cmp r3, #0 + 801086c: d005 beq.n 801087a i += area_h; - 8010902: f9b7 300a ldrsh.w r3, [r7, #10] - 8010906: 6a3a ldr r2, [r7, #32] - 8010908: 4413 add r3, r2 - 801090a: 623b str r3, [r7, #32] - 801090c: e004 b.n 8010918 + 801086e: f9b7 300a ldrsh.w r3, [r7, #10] + 8010872: 6a3a ldr r2, [r7, #32] + 8010874: 4413 add r3, r2 + 8010876: 623b str r3, [r7, #32] + 8010878: e004 b.n 8010884 else i -= area_h; - 801090e: f9b7 300a ldrsh.w r3, [r7, #10] - 8010912: 6a3a ldr r2, [r7, #32] - 8010914: 1ad3 subs r3, r2, r3 - 8010916: 623b str r3, [r7, #32] + 801087a: f9b7 300a ldrsh.w r3, [r7, #10] + 801087e: 6a3a ldr r2, [r7, #32] + 8010880: 1ad3 subs r3, r2, r3 + 8010882: 623b str r3, [r7, #32] for(lv_coord_t x = 0; x < area_w; x++) { - 8010918: f9b7 301e ldrsh.w r3, [r7, #30] - 801091c: b29b uxth r3, r3 - 801091e: 3301 adds r3, #1 - 8010920: b29b uxth r3, r3 - 8010922: 83fb strh r3, [r7, #30] - 8010924: f9b7 201e ldrsh.w r2, [r7, #30] - 8010928: f9b7 300c ldrsh.w r3, [r7, #12] - 801092c: 429a cmp r2, r3 - 801092e: dbdc blt.n 80108ea + 8010884: f9b7 301e ldrsh.w r3, [r7, #30] + 8010888: b29b uxth r3, r3 + 801088a: 3301 adds r3, #1 + 801088c: b29b uxth r3, r3 + 801088e: 83fb strh r3, [r7, #30] + 8010890: f9b7 201e ldrsh.w r2, [r7, #30] + 8010894: f9b7 300c ldrsh.w r3, [r7, #12] + 8010898: 429a cmp r2, r3 + 801089a: dbdc blt.n 8010856 for(lv_coord_t y = 0; y < area_h; y++) { - 8010930: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 8010934: b29b uxth r3, r3 - 8010936: 3301 adds r3, #1 - 8010938: b29b uxth r3, r3 - 801093a: 84fb strh r3, [r7, #38] ; 0x26 - 801093c: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 - 8010940: f9b7 300a ldrsh.w r3, [r7, #10] - 8010944: 429a cmp r2, r3 - 8010946: dbc1 blt.n 80108cc + 801089c: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 80108a0: b29b uxth r3, r3 + 80108a2: 3301 adds r3, #1 + 80108a4: b29b uxth r3, r3 + 80108a6: 84fb strh r3, [r7, #38] ; 0x26 + 80108a8: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 + 80108ac: f9b7 300a ldrsh.w r3, [r7, #10] + 80108b0: 429a cmp r2, r3 + 80108b2: dbc1 blt.n 8010838 } } } - 8010948: bf00 nop - 801094a: bf00 nop - 801094c: 372c adds r7, #44 ; 0x2c - 801094e: 46bd mov sp, r7 - 8010950: bc80 pop {r7} - 8010952: 4770 bx lr + 80108b4: bf00 nop + 80108b6: bf00 nop + 80108b8: 372c adds r7, #44 ; 0x2c + 80108ba: 46bd mov sp, r7 + 80108bc: bc80 pop {r7} + 80108be: 4770 bx lr -08010954 : +080108c0 : /** * Helper function for draw_buf_rotate_90_sqr. Given a list of four numbers, rotate the entire list to the left. */ static inline void draw_buf_rotate4(lv_color_t * a, lv_color_t * b, lv_color_t * c, lv_color_t * d) { - 8010954: b480 push {r7} - 8010956: b087 sub sp, #28 - 8010958: af00 add r7, sp, #0 - 801095a: 60f8 str r0, [r7, #12] - 801095c: 60b9 str r1, [r7, #8] - 801095e: 607a str r2, [r7, #4] - 8010960: 603b str r3, [r7, #0] + 80108c0: b480 push {r7} + 80108c2: b087 sub sp, #28 + 80108c4: af00 add r7, sp, #0 + 80108c6: 60f8 str r0, [r7, #12] + 80108c8: 60b9 str r1, [r7, #8] + 80108ca: 607a str r2, [r7, #4] + 80108cc: 603b str r3, [r7, #0] lv_color_t tmp; tmp = *a; - 8010962: 68fb ldr r3, [r7, #12] - 8010964: 881b ldrh r3, [r3, #0] - 8010966: 82bb strh r3, [r7, #20] + 80108ce: 68fb ldr r3, [r7, #12] + 80108d0: 881b ldrh r3, [r3, #0] + 80108d2: 82bb strh r3, [r7, #20] *a = *b; - 8010968: 68fb ldr r3, [r7, #12] - 801096a: 68ba ldr r2, [r7, #8] - 801096c: 8812 ldrh r2, [r2, #0] - 801096e: 801a strh r2, [r3, #0] + 80108d4: 68fb ldr r3, [r7, #12] + 80108d6: 68ba ldr r2, [r7, #8] + 80108d8: 8812 ldrh r2, [r2, #0] + 80108da: 801a strh r2, [r3, #0] *b = *c; - 8010970: 68bb ldr r3, [r7, #8] - 8010972: 687a ldr r2, [r7, #4] - 8010974: 8812 ldrh r2, [r2, #0] - 8010976: 801a strh r2, [r3, #0] + 80108dc: 68bb ldr r3, [r7, #8] + 80108de: 687a ldr r2, [r7, #4] + 80108e0: 8812 ldrh r2, [r2, #0] + 80108e2: 801a strh r2, [r3, #0] *c = *d; - 8010978: 687b ldr r3, [r7, #4] - 801097a: 683a ldr r2, [r7, #0] - 801097c: 8812 ldrh r2, [r2, #0] - 801097e: 801a strh r2, [r3, #0] + 80108e4: 687b ldr r3, [r7, #4] + 80108e6: 683a ldr r2, [r7, #0] + 80108e8: 8812 ldrh r2, [r2, #0] + 80108ea: 801a strh r2, [r3, #0] *d = tmp; - 8010980: 683b ldr r3, [r7, #0] - 8010982: 8aba ldrh r2, [r7, #20] - 8010984: 801a strh r2, [r3, #0] + 80108ec: 683b ldr r3, [r7, #0] + 80108ee: 8aba ldrh r2, [r7, #20] + 80108f0: 801a strh r2, [r3, #0] } - 8010986: bf00 nop - 8010988: 371c adds r7, #28 - 801098a: 46bd mov sp, r7 - 801098c: bc80 pop {r7} - 801098e: 4770 bx lr + 80108f2: bf00 nop + 80108f4: 371c adds r7, #28 + 80108f6: 46bd mov sp, r7 + 80108f8: bc80 pop {r7} + 80108fa: 4770 bx lr -08010990 : +080108fc : /** * Rotate a square image 90/270 degrees in place. * @note inspired by https://stackoverflow.com/a/43694906 */ static void draw_buf_rotate_90_sqr(bool is_270, lv_coord_t w, lv_color_t * color_p) { - 8010990: b590 push {r4, r7, lr} - 8010992: b085 sub sp, #20 - 8010994: af00 add r7, sp, #0 - 8010996: 4603 mov r3, r0 - 8010998: 603a str r2, [r7, #0] - 801099a: 71fb strb r3, [r7, #7] - 801099c: 460b mov r3, r1 - 801099e: 80bb strh r3, [r7, #4] + 80108fc: b590 push {r4, r7, lr} + 80108fe: b085 sub sp, #20 + 8010900: af00 add r7, sp, #0 + 8010902: 4603 mov r3, r0 + 8010904: 603a str r2, [r7, #0] + 8010906: 71fb strb r3, [r7, #7] + 8010908: 460b mov r3, r1 + 801090a: 80bb strh r3, [r7, #4] for(lv_coord_t i = 0; i < w / 2; i++) { - 80109a0: 2300 movs r3, #0 - 80109a2: 81fb strh r3, [r7, #14] - 80109a4: e091 b.n 8010aca + 801090c: 2300 movs r3, #0 + 801090e: 81fb strh r3, [r7, #14] + 8010910: e091 b.n 8010a36 for(lv_coord_t j = 0; j < (w + 1) / 2; j++) { - 80109a6: 2300 movs r3, #0 - 80109a8: 81bb strh r3, [r7, #12] - 80109aa: e07d b.n 8010aa8 + 8010912: 2300 movs r3, #0 + 8010914: 81bb strh r3, [r7, #12] + 8010916: e07d b.n 8010a14 lv_coord_t inv_i = (w - 1) - i; - 80109ac: 88ba ldrh r2, [r7, #4] - 80109ae: 89fb ldrh r3, [r7, #14] - 80109b0: 1ad3 subs r3, r2, r3 - 80109b2: b29b uxth r3, r3 - 80109b4: 3b01 subs r3, #1 - 80109b6: b29b uxth r3, r3 - 80109b8: 817b strh r3, [r7, #10] + 8010918: 88ba ldrh r2, [r7, #4] + 801091a: 89fb ldrh r3, [r7, #14] + 801091c: 1ad3 subs r3, r2, r3 + 801091e: b29b uxth r3, r3 + 8010920: 3b01 subs r3, #1 + 8010922: b29b uxth r3, r3 + 8010924: 817b strh r3, [r7, #10] lv_coord_t inv_j = (w - 1) - j; - 80109ba: 88ba ldrh r2, [r7, #4] - 80109bc: 89bb ldrh r3, [r7, #12] - 80109be: 1ad3 subs r3, r2, r3 - 80109c0: b29b uxth r3, r3 - 80109c2: 3b01 subs r3, #1 - 80109c4: b29b uxth r3, r3 - 80109c6: 813b strh r3, [r7, #8] + 8010926: 88ba ldrh r2, [r7, #4] + 8010928: 89bb ldrh r3, [r7, #12] + 801092a: 1ad3 subs r3, r2, r3 + 801092c: b29b uxth r3, r3 + 801092e: 3b01 subs r3, #1 + 8010930: b29b uxth r3, r3 + 8010932: 813b strh r3, [r7, #8] if(is_270) { - 80109c8: 79fb ldrb r3, [r7, #7] - 80109ca: 2b00 cmp r3, #0 - 80109cc: d033 beq.n 8010a36 + 8010934: 79fb ldrb r3, [r7, #7] + 8010936: 2b00 cmp r3, #0 + 8010938: d033 beq.n 80109a2 draw_buf_rotate4( &color_p[i * w + j], - 80109ce: f9b7 300e ldrsh.w r3, [r7, #14] - 80109d2: f9b7 2004 ldrsh.w r2, [r7, #4] - 80109d6: fb03 f202 mul.w r2, r3, r2 - 80109da: f9b7 300c ldrsh.w r3, [r7, #12] - 80109de: 4413 add r3, r2 - 80109e0: 005b lsls r3, r3, #1 + 801093a: f9b7 300e ldrsh.w r3, [r7, #14] + 801093e: f9b7 2004 ldrsh.w r2, [r7, #4] + 8010942: fb03 f202 mul.w r2, r3, r2 + 8010946: f9b7 300c ldrsh.w r3, [r7, #12] + 801094a: 4413 add r3, r2 + 801094c: 005b lsls r3, r3, #1 draw_buf_rotate4( - 80109e2: 683a ldr r2, [r7, #0] - 80109e4: 18d0 adds r0, r2, r3 + 801094e: 683a ldr r2, [r7, #0] + 8010950: 18d0 adds r0, r2, r3 &color_p[inv_j * w + i], - 80109e6: f9b7 3008 ldrsh.w r3, [r7, #8] - 80109ea: f9b7 2004 ldrsh.w r2, [r7, #4] - 80109ee: fb03 f202 mul.w r2, r3, r2 - 80109f2: f9b7 300e ldrsh.w r3, [r7, #14] - 80109f6: 4413 add r3, r2 - 80109f8: 005b lsls r3, r3, #1 + 8010952: f9b7 3008 ldrsh.w r3, [r7, #8] + 8010956: f9b7 2004 ldrsh.w r2, [r7, #4] + 801095a: fb03 f202 mul.w r2, r3, r2 + 801095e: f9b7 300e ldrsh.w r3, [r7, #14] + 8010962: 4413 add r3, r2 + 8010964: 005b lsls r3, r3, #1 draw_buf_rotate4( - 80109fa: 683a ldr r2, [r7, #0] - 80109fc: 18d1 adds r1, r2, r3 + 8010966: 683a ldr r2, [r7, #0] + 8010968: 18d1 adds r1, r2, r3 &color_p[inv_i * w + inv_j], - 80109fe: f9b7 300a ldrsh.w r3, [r7, #10] - 8010a02: f9b7 2004 ldrsh.w r2, [r7, #4] - 8010a06: fb03 f202 mul.w r2, r3, r2 - 8010a0a: f9b7 3008 ldrsh.w r3, [r7, #8] - 8010a0e: 4413 add r3, r2 - 8010a10: 005b lsls r3, r3, #1 + 801096a: f9b7 300a ldrsh.w r3, [r7, #10] + 801096e: f9b7 2004 ldrsh.w r2, [r7, #4] + 8010972: fb03 f202 mul.w r2, r3, r2 + 8010976: f9b7 3008 ldrsh.w r3, [r7, #8] + 801097a: 4413 add r3, r2 + 801097c: 005b lsls r3, r3, #1 draw_buf_rotate4( - 8010a12: 683a ldr r2, [r7, #0] - 8010a14: 18d4 adds r4, r2, r3 + 801097e: 683a ldr r2, [r7, #0] + 8010980: 18d4 adds r4, r2, r3 &color_p[j * w + inv_i] - 8010a16: f9b7 300c ldrsh.w r3, [r7, #12] - 8010a1a: f9b7 2004 ldrsh.w r2, [r7, #4] - 8010a1e: fb03 f202 mul.w r2, r3, r2 - 8010a22: f9b7 300a ldrsh.w r3, [r7, #10] - 8010a26: 4413 add r3, r2 - 8010a28: 005b lsls r3, r3, #1 + 8010982: f9b7 300c ldrsh.w r3, [r7, #12] + 8010986: f9b7 2004 ldrsh.w r2, [r7, #4] + 801098a: fb03 f202 mul.w r2, r3, r2 + 801098e: f9b7 300a ldrsh.w r3, [r7, #10] + 8010992: 4413 add r3, r2 + 8010994: 005b lsls r3, r3, #1 draw_buf_rotate4( - 8010a2a: 683a ldr r2, [r7, #0] - 8010a2c: 4413 add r3, r2 - 8010a2e: 4622 mov r2, r4 - 8010a30: f7ff ff90 bl 8010954 - 8010a34: e032 b.n 8010a9c + 8010996: 683a ldr r2, [r7, #0] + 8010998: 4413 add r3, r2 + 801099a: 4622 mov r2, r4 + 801099c: f7ff ff90 bl 80108c0 + 80109a0: e032 b.n 8010a08 ); } else { draw_buf_rotate4( &color_p[i * w + j], - 8010a36: f9b7 300e ldrsh.w r3, [r7, #14] - 8010a3a: f9b7 2004 ldrsh.w r2, [r7, #4] - 8010a3e: fb03 f202 mul.w r2, r3, r2 - 8010a42: f9b7 300c ldrsh.w r3, [r7, #12] - 8010a46: 4413 add r3, r2 - 8010a48: 005b lsls r3, r3, #1 + 80109a2: f9b7 300e ldrsh.w r3, [r7, #14] + 80109a6: f9b7 2004 ldrsh.w r2, [r7, #4] + 80109aa: fb03 f202 mul.w r2, r3, r2 + 80109ae: f9b7 300c ldrsh.w r3, [r7, #12] + 80109b2: 4413 add r3, r2 + 80109b4: 005b lsls r3, r3, #1 draw_buf_rotate4( - 8010a4a: 683a ldr r2, [r7, #0] - 8010a4c: 18d0 adds r0, r2, r3 + 80109b6: 683a ldr r2, [r7, #0] + 80109b8: 18d0 adds r0, r2, r3 &color_p[j * w + inv_i], - 8010a4e: f9b7 300c ldrsh.w r3, [r7, #12] - 8010a52: f9b7 2004 ldrsh.w r2, [r7, #4] - 8010a56: fb03 f202 mul.w r2, r3, r2 - 8010a5a: f9b7 300a ldrsh.w r3, [r7, #10] - 8010a5e: 4413 add r3, r2 - 8010a60: 005b lsls r3, r3, #1 + 80109ba: f9b7 300c ldrsh.w r3, [r7, #12] + 80109be: f9b7 2004 ldrsh.w r2, [r7, #4] + 80109c2: fb03 f202 mul.w r2, r3, r2 + 80109c6: f9b7 300a ldrsh.w r3, [r7, #10] + 80109ca: 4413 add r3, r2 + 80109cc: 005b lsls r3, r3, #1 draw_buf_rotate4( - 8010a62: 683a ldr r2, [r7, #0] - 8010a64: 18d1 adds r1, r2, r3 + 80109ce: 683a ldr r2, [r7, #0] + 80109d0: 18d1 adds r1, r2, r3 &color_p[inv_i * w + inv_j], - 8010a66: f9b7 300a ldrsh.w r3, [r7, #10] - 8010a6a: f9b7 2004 ldrsh.w r2, [r7, #4] - 8010a6e: fb03 f202 mul.w r2, r3, r2 - 8010a72: f9b7 3008 ldrsh.w r3, [r7, #8] - 8010a76: 4413 add r3, r2 - 8010a78: 005b lsls r3, r3, #1 + 80109d2: f9b7 300a ldrsh.w r3, [r7, #10] + 80109d6: f9b7 2004 ldrsh.w r2, [r7, #4] + 80109da: fb03 f202 mul.w r2, r3, r2 + 80109de: f9b7 3008 ldrsh.w r3, [r7, #8] + 80109e2: 4413 add r3, r2 + 80109e4: 005b lsls r3, r3, #1 draw_buf_rotate4( - 8010a7a: 683a ldr r2, [r7, #0] - 8010a7c: 18d4 adds r4, r2, r3 + 80109e6: 683a ldr r2, [r7, #0] + 80109e8: 18d4 adds r4, r2, r3 &color_p[inv_j * w + i] - 8010a7e: f9b7 3008 ldrsh.w r3, [r7, #8] - 8010a82: f9b7 2004 ldrsh.w r2, [r7, #4] - 8010a86: fb03 f202 mul.w r2, r3, r2 - 8010a8a: f9b7 300e ldrsh.w r3, [r7, #14] - 8010a8e: 4413 add r3, r2 - 8010a90: 005b lsls r3, r3, #1 + 80109ea: f9b7 3008 ldrsh.w r3, [r7, #8] + 80109ee: f9b7 2004 ldrsh.w r2, [r7, #4] + 80109f2: fb03 f202 mul.w r2, r3, r2 + 80109f6: f9b7 300e ldrsh.w r3, [r7, #14] + 80109fa: 4413 add r3, r2 + 80109fc: 005b lsls r3, r3, #1 draw_buf_rotate4( - 8010a92: 683a ldr r2, [r7, #0] - 8010a94: 4413 add r3, r2 - 8010a96: 4622 mov r2, r4 - 8010a98: f7ff ff5c bl 8010954 + 80109fe: 683a ldr r2, [r7, #0] + 8010a00: 4413 add r3, r2 + 8010a02: 4622 mov r2, r4 + 8010a04: f7ff ff5c bl 80108c0 for(lv_coord_t j = 0; j < (w + 1) / 2; j++) { - 8010a9c: f9b7 300c ldrsh.w r3, [r7, #12] - 8010aa0: b29b uxth r3, r3 - 8010aa2: 3301 adds r3, #1 - 8010aa4: b29b uxth r3, r3 - 8010aa6: 81bb strh r3, [r7, #12] - 8010aa8: f9b7 200c ldrsh.w r2, [r7, #12] - 8010aac: f9b7 3004 ldrsh.w r3, [r7, #4] - 8010ab0: 3301 adds r3, #1 - 8010ab2: 0fd9 lsrs r1, r3, #31 - 8010ab4: 440b add r3, r1 - 8010ab6: 105b asrs r3, r3, #1 - 8010ab8: 429a cmp r2, r3 - 8010aba: f6ff af77 blt.w 80109ac + 8010a08: f9b7 300c ldrsh.w r3, [r7, #12] + 8010a0c: b29b uxth r3, r3 + 8010a0e: 3301 adds r3, #1 + 8010a10: b29b uxth r3, r3 + 8010a12: 81bb strh r3, [r7, #12] + 8010a14: f9b7 200c ldrsh.w r2, [r7, #12] + 8010a18: f9b7 3004 ldrsh.w r3, [r7, #4] + 8010a1c: 3301 adds r3, #1 + 8010a1e: 0fd9 lsrs r1, r3, #31 + 8010a20: 440b add r3, r1 + 8010a22: 105b asrs r3, r3, #1 + 8010a24: 429a cmp r2, r3 + 8010a26: f6ff af77 blt.w 8010918 for(lv_coord_t i = 0; i < w / 2; i++) { - 8010abe: f9b7 300e ldrsh.w r3, [r7, #14] - 8010ac2: b29b uxth r3, r3 - 8010ac4: 3301 adds r3, #1 - 8010ac6: b29b uxth r3, r3 - 8010ac8: 81fb strh r3, [r7, #14] - 8010aca: f9b7 3004 ldrsh.w r3, [r7, #4] - 8010ace: 0fda lsrs r2, r3, #31 - 8010ad0: 4413 add r3, r2 - 8010ad2: 105b asrs r3, r3, #1 - 8010ad4: b21b sxth r3, r3 - 8010ad6: f9b7 200e ldrsh.w r2, [r7, #14] - 8010ada: 429a cmp r2, r3 - 8010adc: f6ff af63 blt.w 80109a6 + 8010a2a: f9b7 300e ldrsh.w r3, [r7, #14] + 8010a2e: b29b uxth r3, r3 + 8010a30: 3301 adds r3, #1 + 8010a32: b29b uxth r3, r3 + 8010a34: 81fb strh r3, [r7, #14] + 8010a36: f9b7 3004 ldrsh.w r3, [r7, #4] + 8010a3a: 0fda lsrs r2, r3, #31 + 8010a3c: 4413 add r3, r2 + 8010a3e: 105b asrs r3, r3, #1 + 8010a40: b21b sxth r3, r3 + 8010a42: f9b7 200e ldrsh.w r2, [r7, #14] + 8010a46: 429a cmp r2, r3 + 8010a48: f6ff af63 blt.w 8010912 ); } } } } - 8010ae0: bf00 nop - 8010ae2: bf00 nop - 8010ae4: 3714 adds r7, #20 - 8010ae6: 46bd mov sp, r7 - 8010ae8: bd90 pop {r4, r7, pc} + 8010a4c: bf00 nop + 8010a4e: bf00 nop + 8010a50: 3714 adds r7, #20 + 8010a52: 46bd mov sp, r7 + 8010a54: bd90 pop {r4, r7, pc} ... -08010aec : +08010a58 : /** * Rotate the draw_buf to the display's native orientation. */ static void draw_buf_rotate(lv_area_t * area, lv_color_t * color_p) { - 8010aec: b580 push {r7, lr} - 8010aee: b08a sub sp, #40 ; 0x28 - 8010af0: af02 add r7, sp, #8 - 8010af2: 6078 str r0, [r7, #4] - 8010af4: 6039 str r1, [r7, #0] + 8010a58: b580 push {r7, lr} + 8010a5a: b08a sub sp, #40 ; 0x28 + 8010a5c: af02 add r7, sp, #8 + 8010a5e: 6078 str r0, [r7, #4] + 8010a60: 6039 str r1, [r7, #0] lv_disp_drv_t * drv = disp_refr->driver; - 8010af6: 4b8e ldr r3, [pc, #568] ; (8010d30 ) - 8010af8: 681b ldr r3, [r3, #0] - 8010afa: 681b ldr r3, [r3, #0] - 8010afc: 617b str r3, [r7, #20] + 8010a62: 4b8e ldr r3, [pc, #568] ; (8010c9c ) + 8010a64: 681b ldr r3, [r3, #0] + 8010a66: 681b ldr r3, [r3, #0] + 8010a68: 617b str r3, [r7, #20] if(disp_refr->driver->full_refresh && drv->sw_rotate) { - 8010afe: 4b8c ldr r3, [pc, #560] ; (8010d30 ) - 8010b00: 681b ldr r3, [r3, #0] - 8010b02: 681b ldr r3, [r3, #0] - 8010b04: 7c1b ldrb r3, [r3, #16] - 8010b06: f003 0302 and.w r3, r3, #2 - 8010b0a: b2db uxtb r3, r3 - 8010b0c: 2b00 cmp r3, #0 - 8010b0e: d007 beq.n 8010b20 - 8010b10: 697b ldr r3, [r7, #20] - 8010b12: 7c1b ldrb r3, [r3, #16] - 8010b14: f003 0304 and.w r3, r3, #4 - 8010b18: b2db uxtb r3, r3 - 8010b1a: 2b00 cmp r3, #0 - 8010b1c: f040 8178 bne.w 8010e10 + 8010a6a: 4b8c ldr r3, [pc, #560] ; (8010c9c ) + 8010a6c: 681b ldr r3, [r3, #0] + 8010a6e: 681b ldr r3, [r3, #0] + 8010a70: 7c1b ldrb r3, [r3, #16] + 8010a72: f003 0302 and.w r3, r3, #2 + 8010a76: b2db uxtb r3, r3 + 8010a78: 2b00 cmp r3, #0 + 8010a7a: d007 beq.n 8010a8c + 8010a7c: 697b ldr r3, [r7, #20] + 8010a7e: 7c1b ldrb r3, [r3, #16] + 8010a80: f003 0304 and.w r3, r3, #4 + 8010a84: b2db uxtb r3, r3 + 8010a86: 2b00 cmp r3, #0 + 8010a88: f040 8178 bne.w 8010d7c LV_LOG_ERROR("cannot rotate a full refreshed display!"); return; } if(drv->rotated == LV_DISP_ROT_180) { - 8010b20: 697b ldr r3, [r7, #20] - 8010b22: 7c1b ldrb r3, [r3, #16] - 8010b24: f003 0330 and.w r3, r3, #48 ; 0x30 - 8010b28: b2db uxtb r3, r3 - 8010b2a: 2b20 cmp r3, #32 - 8010b2c: d10a bne.n 8010b44 + 8010a8c: 697b ldr r3, [r7, #20] + 8010a8e: 7c1b ldrb r3, [r3, #16] + 8010a90: f003 0330 and.w r3, r3, #48 ; 0x30 + 8010a94: b2db uxtb r3, r3 + 8010a96: 2b20 cmp r3, #32 + 8010a98: d10a bne.n 8010ab0 draw_buf_rotate_180(drv, area, color_p); - 8010b2e: 683a ldr r2, [r7, #0] - 8010b30: 6879 ldr r1, [r7, #4] - 8010b32: 6978 ldr r0, [r7, #20] - 8010b34: f7ff fe30 bl 8010798 + 8010a9a: 683a ldr r2, [r7, #0] + 8010a9c: 6879 ldr r1, [r7, #4] + 8010a9e: 6978 ldr r0, [r7, #20] + 8010aa0: f7ff fe30 bl 8010704 call_flush_cb(drv, area, color_p); - 8010b38: 683a ldr r2, [r7, #0] - 8010b3a: 6879 ldr r1, [r7, #4] - 8010b3c: 6978 ldr r0, [r7, #20] - 8010b3e: f000 fa11 bl 8010f64 - 8010b42: e166 b.n 8010e12 + 8010aa4: 683a ldr r2, [r7, #0] + 8010aa6: 6879 ldr r1, [r7, #4] + 8010aa8: 6978 ldr r0, [r7, #20] + 8010aaa: f000 fa11 bl 8010ed0 + 8010aae: e166 b.n 8010d7e } else if(drv->rotated == LV_DISP_ROT_90 || drv->rotated == LV_DISP_ROT_270) { - 8010b44: 697b ldr r3, [r7, #20] - 8010b46: 7c1b ldrb r3, [r3, #16] - 8010b48: f003 0330 and.w r3, r3, #48 ; 0x30 - 8010b4c: b2db uxtb r3, r3 - 8010b4e: 2b10 cmp r3, #16 - 8010b50: d007 beq.n 8010b62 - 8010b52: 697b ldr r3, [r7, #20] - 8010b54: 7c1b ldrb r3, [r3, #16] - 8010b56: f003 0330 and.w r3, r3, #48 ; 0x30 - 8010b5a: b2db uxtb r3, r3 - 8010b5c: 2b30 cmp r3, #48 ; 0x30 - 8010b5e: f040 8158 bne.w 8010e12 + 8010ab0: 697b ldr r3, [r7, #20] + 8010ab2: 7c1b ldrb r3, [r3, #16] + 8010ab4: f003 0330 and.w r3, r3, #48 ; 0x30 + 8010ab8: b2db uxtb r3, r3 + 8010aba: 2b10 cmp r3, #16 + 8010abc: d007 beq.n 8010ace + 8010abe: 697b ldr r3, [r7, #20] + 8010ac0: 7c1b ldrb r3, [r3, #16] + 8010ac2: f003 0330 and.w r3, r3, #48 ; 0x30 + 8010ac6: b2db uxtb r3, r3 + 8010ac8: 2b30 cmp r3, #48 ; 0x30 + 8010aca: f040 8158 bne.w 8010d7e /*Allocate a temporary buffer to store rotated image*/ lv_color_t * rot_buf = NULL; - 8010b62: 2300 movs r3, #0 - 8010b64: 61fb str r3, [r7, #28] + 8010ace: 2300 movs r3, #0 + 8010ad0: 61fb str r3, [r7, #28] lv_disp_draw_buf_t * draw_buf = lv_disp_get_draw_buf(disp_refr); - 8010b66: 4b72 ldr r3, [pc, #456] ; (8010d30 ) - 8010b68: 681b ldr r3, [r3, #0] - 8010b6a: 4618 mov r0, r3 - 8010b6c: f01f fd48 bl 8030600 - 8010b70: 6138 str r0, [r7, #16] + 8010ad2: 4b72 ldr r3, [pc, #456] ; (8010c9c ) + 8010ad4: 681b ldr r3, [r3, #0] + 8010ad6: 4618 mov r0, r3 + 8010ad8: f01f fd48 bl 803056c + 8010adc: 6138 str r0, [r7, #16] lv_coord_t area_w = lv_area_get_width(area); - 8010b72: 6878 ldr r0, [r7, #4] - 8010b74: f7fe ff4e bl 800fa14 - 8010b78: 4603 mov r3, r0 - 8010b7a: 81fb strh r3, [r7, #14] + 8010ade: 6878 ldr r0, [r7, #4] + 8010ae0: f7fe ff4e bl 800f980 + 8010ae4: 4603 mov r3, r0 + 8010ae6: 81fb strh r3, [r7, #14] lv_coord_t area_h = lv_area_get_height(area); - 8010b7c: 6878 ldr r0, [r7, #4] - 8010b7e: f7fe ff5f bl 800fa40 - 8010b82: 4603 mov r3, r0 - 8010b84: 81bb strh r3, [r7, #12] + 8010ae8: 6878 ldr r0, [r7, #4] + 8010aea: f7fe ff5f bl 800f9ac + 8010aee: 4603 mov r3, r0 + 8010af0: 81bb strh r3, [r7, #12] /*Determine the maximum number of rows that can be rotated at a time*/ lv_coord_t max_row = LV_MIN((lv_coord_t)((LV_DISP_ROT_MAX_BUF / sizeof(lv_color_t)) / area_w), area_h); - 8010b86: f9b7 300e ldrsh.w r3, [r7, #14] - 8010b8a: f44f 52a0 mov.w r2, #5120 ; 0x1400 - 8010b8e: fbb2 f3f3 udiv r3, r2, r3 - 8010b92: b21b sxth r3, r3 - 8010b94: f9b7 200c ldrsh.w r2, [r7, #12] - 8010b98: 4293 cmp r3, r2 - 8010b9a: bfa8 it ge - 8010b9c: 4613 movge r3, r2 - 8010b9e: 817b strh r3, [r7, #10] + 8010af2: f9b7 300e ldrsh.w r3, [r7, #14] + 8010af6: f44f 52a0 mov.w r2, #5120 ; 0x1400 + 8010afa: fbb2 f3f3 udiv r3, r2, r3 + 8010afe: b21b sxth r3, r3 + 8010b00: f9b7 200c ldrsh.w r2, [r7, #12] + 8010b04: 4293 cmp r3, r2 + 8010b06: bfa8 it ge + 8010b08: 4613 movge r3, r2 + 8010b0a: 817b strh r3, [r7, #10] lv_coord_t init_y_off; init_y_off = area->y1; - 8010ba0: 687b ldr r3, [r7, #4] - 8010ba2: 885b ldrh r3, [r3, #2] - 8010ba4: 813b strh r3, [r7, #8] + 8010b0c: 687b ldr r3, [r7, #4] + 8010b0e: 885b ldrh r3, [r3, #2] + 8010b10: 813b strh r3, [r7, #8] if(drv->rotated == LV_DISP_ROT_90) { - 8010ba6: 697b ldr r3, [r7, #20] - 8010ba8: 7c1b ldrb r3, [r3, #16] - 8010baa: f003 0330 and.w r3, r3, #48 ; 0x30 - 8010bae: b2db uxtb r3, r3 - 8010bb0: 2b10 cmp r3, #16 - 8010bb2: d11b bne.n 8010bec + 8010b12: 697b ldr r3, [r7, #20] + 8010b14: 7c1b ldrb r3, [r3, #16] + 8010b16: f003 0330 and.w r3, r3, #48 ; 0x30 + 8010b1a: b2db uxtb r3, r3 + 8010b1c: 2b10 cmp r3, #16 + 8010b1e: d11b bne.n 8010b58 area->y2 = drv->ver_res - area->x1 - 1; - 8010bb4: 697b ldr r3, [r7, #20] - 8010bb6: f9b3 3002 ldrsh.w r3, [r3, #2] - 8010bba: b29a uxth r2, r3 - 8010bbc: 687b ldr r3, [r7, #4] - 8010bbe: f9b3 3000 ldrsh.w r3, [r3] - 8010bc2: b29b uxth r3, r3 - 8010bc4: 1ad3 subs r3, r2, r3 - 8010bc6: b29b uxth r3, r3 - 8010bc8: 3b01 subs r3, #1 - 8010bca: b29b uxth r3, r3 - 8010bcc: b21a sxth r2, r3 - 8010bce: 687b ldr r3, [r7, #4] - 8010bd0: 80da strh r2, [r3, #6] + 8010b20: 697b ldr r3, [r7, #20] + 8010b22: f9b3 3002 ldrsh.w r3, [r3, #2] + 8010b26: b29a uxth r2, r3 + 8010b28: 687b ldr r3, [r7, #4] + 8010b2a: f9b3 3000 ldrsh.w r3, [r3] + 8010b2e: b29b uxth r3, r3 + 8010b30: 1ad3 subs r3, r2, r3 + 8010b32: b29b uxth r3, r3 + 8010b34: 3b01 subs r3, #1 + 8010b36: b29b uxth r3, r3 + 8010b38: b21a sxth r2, r3 + 8010b3a: 687b ldr r3, [r7, #4] + 8010b3c: 80da strh r2, [r3, #6] area->y1 = area->y2 - area_w + 1; - 8010bd2: 687b ldr r3, [r7, #4] - 8010bd4: f9b3 3006 ldrsh.w r3, [r3, #6] - 8010bd8: b29a uxth r2, r3 - 8010bda: 89fb ldrh r3, [r7, #14] - 8010bdc: 1ad3 subs r3, r2, r3 - 8010bde: b29b uxth r3, r3 - 8010be0: 3301 adds r3, #1 - 8010be2: b29b uxth r3, r3 - 8010be4: b21a sxth r2, r3 - 8010be6: 687b ldr r3, [r7, #4] - 8010be8: 805a strh r2, [r3, #2] - 8010bea: e010 b.n 8010c0e + 8010b3e: 687b ldr r3, [r7, #4] + 8010b40: f9b3 3006 ldrsh.w r3, [r3, #6] + 8010b44: b29a uxth r2, r3 + 8010b46: 89fb ldrh r3, [r7, #14] + 8010b48: 1ad3 subs r3, r2, r3 + 8010b4a: b29b uxth r3, r3 + 8010b4c: 3301 adds r3, #1 + 8010b4e: b29b uxth r3, r3 + 8010b50: b21a sxth r2, r3 + 8010b52: 687b ldr r3, [r7, #4] + 8010b54: 805a strh r2, [r3, #2] + 8010b56: e010 b.n 8010b7a } else { area->y1 = area->x1; - 8010bec: 687b ldr r3, [r7, #4] - 8010bee: f9b3 2000 ldrsh.w r2, [r3] - 8010bf2: 687b ldr r3, [r7, #4] - 8010bf4: 805a strh r2, [r3, #2] + 8010b58: 687b ldr r3, [r7, #4] + 8010b5a: f9b3 2000 ldrsh.w r2, [r3] + 8010b5e: 687b ldr r3, [r7, #4] + 8010b60: 805a strh r2, [r3, #2] area->y2 = area->y1 + area_w - 1; - 8010bf6: 687b ldr r3, [r7, #4] - 8010bf8: f9b3 3002 ldrsh.w r3, [r3, #2] - 8010bfc: b29a uxth r2, r3 - 8010bfe: 89fb ldrh r3, [r7, #14] - 8010c00: 4413 add r3, r2 - 8010c02: b29b uxth r3, r3 - 8010c04: 3b01 subs r3, #1 - 8010c06: b29b uxth r3, r3 - 8010c08: b21a sxth r2, r3 - 8010c0a: 687b ldr r3, [r7, #4] - 8010c0c: 80da strh r2, [r3, #6] + 8010b62: 687b ldr r3, [r7, #4] + 8010b64: f9b3 3002 ldrsh.w r3, [r3, #2] + 8010b68: b29a uxth r2, r3 + 8010b6a: 89fb ldrh r3, [r7, #14] + 8010b6c: 4413 add r3, r2 + 8010b6e: b29b uxth r3, r3 + 8010b70: 3b01 subs r3, #1 + 8010b72: b29b uxth r3, r3 + 8010b74: b21a sxth r2, r3 + 8010b76: 687b ldr r3, [r7, #4] + 8010b78: 80da strh r2, [r3, #6] } /*Rotate the screen in chunks, flushing after each one*/ lv_coord_t row = 0; - 8010c0e: 2300 movs r3, #0 - 8010c10: 837b strh r3, [r7, #26] + 8010b7a: 2300 movs r3, #0 + 8010b7c: 837b strh r3, [r7, #26] while(row < area_h) { - 8010c12: e0ef b.n 8010df4 + 8010b7e: e0ef b.n 8010d60 lv_coord_t height = LV_MIN(max_row, area_h - row); - 8010c14: f9b7 200c ldrsh.w r2, [r7, #12] - 8010c18: f9b7 301a ldrsh.w r3, [r7, #26] - 8010c1c: 1ad2 subs r2, r2, r3 - 8010c1e: f9b7 300a ldrsh.w r3, [r7, #10] - 8010c22: 4293 cmp r3, r2 - 8010c24: bfa8 it ge - 8010c26: 4613 movge r3, r2 - 8010c28: 833b strh r3, [r7, #24] + 8010b80: f9b7 200c ldrsh.w r2, [r7, #12] + 8010b84: f9b7 301a ldrsh.w r3, [r7, #26] + 8010b88: 1ad2 subs r2, r2, r3 + 8010b8a: f9b7 300a ldrsh.w r3, [r7, #10] + 8010b8e: 4293 cmp r3, r2 + 8010b90: bfa8 it ge + 8010b92: 4613 movge r3, r2 + 8010b94: 833b strh r3, [r7, #24] draw_buf->flushing = 1; - 8010c2a: 693b ldr r3, [r7, #16] - 8010c2c: 2201 movs r2, #1 - 8010c2e: 611a str r2, [r3, #16] + 8010b96: 693b ldr r3, [r7, #16] + 8010b98: 2201 movs r2, #1 + 8010b9a: 611a str r2, [r3, #16] if((row == 0) && (area_h >= area_w)) { - 8010c30: f9b7 301a ldrsh.w r3, [r7, #26] - 8010c34: 2b00 cmp r3, #0 - 8010c36: d144 bne.n 8010cc2 - 8010c38: f9b7 200c ldrsh.w r2, [r7, #12] - 8010c3c: f9b7 300e ldrsh.w r3, [r7, #14] - 8010c40: 429a cmp r2, r3 - 8010c42: db3e blt.n 8010cc2 + 8010b9c: f9b7 301a ldrsh.w r3, [r7, #26] + 8010ba0: 2b00 cmp r3, #0 + 8010ba2: d144 bne.n 8010c2e + 8010ba4: f9b7 200c ldrsh.w r2, [r7, #12] + 8010ba8: f9b7 300e ldrsh.w r3, [r7, #14] + 8010bac: 429a cmp r2, r3 + 8010bae: db3e blt.n 8010c2e /*Rotate the initial area as a square*/ height = area_w; - 8010c44: 89fb ldrh r3, [r7, #14] - 8010c46: 833b strh r3, [r7, #24] + 8010bb0: 89fb ldrh r3, [r7, #14] + 8010bb2: 833b strh r3, [r7, #24] draw_buf_rotate_90_sqr(drv->rotated == LV_DISP_ROT_270, area_w, color_p); - 8010c48: 697b ldr r3, [r7, #20] - 8010c4a: 7c1b ldrb r3, [r3, #16] - 8010c4c: f003 0330 and.w r3, r3, #48 ; 0x30 - 8010c50: b2db uxtb r3, r3 - 8010c52: 2b30 cmp r3, #48 ; 0x30 - 8010c54: bf0c ite eq - 8010c56: 2301 moveq r3, #1 - 8010c58: 2300 movne r3, #0 - 8010c5a: b2db uxtb r3, r3 - 8010c5c: f9b7 100e ldrsh.w r1, [r7, #14] - 8010c60: 683a ldr r2, [r7, #0] - 8010c62: 4618 mov r0, r3 - 8010c64: f7ff fe94 bl 8010990 + 8010bb4: 697b ldr r3, [r7, #20] + 8010bb6: 7c1b ldrb r3, [r3, #16] + 8010bb8: f003 0330 and.w r3, r3, #48 ; 0x30 + 8010bbc: b2db uxtb r3, r3 + 8010bbe: 2b30 cmp r3, #48 ; 0x30 + 8010bc0: bf0c ite eq + 8010bc2: 2301 moveq r3, #1 + 8010bc4: 2300 movne r3, #0 + 8010bc6: b2db uxtb r3, r3 + 8010bc8: f9b7 100e ldrsh.w r1, [r7, #14] + 8010bcc: 683a ldr r2, [r7, #0] + 8010bce: 4618 mov r0, r3 + 8010bd0: f7ff fe94 bl 80108fc if(drv->rotated == LV_DISP_ROT_90) { - 8010c68: 697b ldr r3, [r7, #20] - 8010c6a: 7c1b ldrb r3, [r3, #16] - 8010c6c: f003 0330 and.w r3, r3, #48 ; 0x30 - 8010c70: b2db uxtb r3, r3 - 8010c72: 2b10 cmp r3, #16 - 8010c74: d10c bne.n 8010c90 + 8010bd4: 697b ldr r3, [r7, #20] + 8010bd6: 7c1b ldrb r3, [r3, #16] + 8010bd8: f003 0330 and.w r3, r3, #48 ; 0x30 + 8010bdc: b2db uxtb r3, r3 + 8010bde: 2b10 cmp r3, #16 + 8010be0: d10c bne.n 8010bfc area->x1 = init_y_off; - 8010c76: 687b ldr r3, [r7, #4] - 8010c78: 893a ldrh r2, [r7, #8] - 8010c7a: 801a strh r2, [r3, #0] + 8010be2: 687b ldr r3, [r7, #4] + 8010be4: 893a ldrh r2, [r7, #8] + 8010be6: 801a strh r2, [r3, #0] area->x2 = init_y_off + area_w - 1; - 8010c7c: 893a ldrh r2, [r7, #8] - 8010c7e: 89fb ldrh r3, [r7, #14] - 8010c80: 4413 add r3, r2 - 8010c82: b29b uxth r3, r3 - 8010c84: 3b01 subs r3, #1 - 8010c86: b29b uxth r3, r3 - 8010c88: b21a sxth r2, r3 - 8010c8a: 687b ldr r3, [r7, #4] - 8010c8c: 809a strh r2, [r3, #4] + 8010be8: 893a ldrh r2, [r7, #8] + 8010bea: 89fb ldrh r3, [r7, #14] + 8010bec: 4413 add r3, r2 + 8010bee: b29b uxth r3, r3 + 8010bf0: 3b01 subs r3, #1 + 8010bf2: b29b uxth r3, r3 + 8010bf4: b21a sxth r2, r3 + 8010bf6: 687b ldr r3, [r7, #4] + 8010bf8: 809a strh r2, [r3, #4] if(drv->rotated == LV_DISP_ROT_90) { - 8010c8e: e06c b.n 8010d6a + 8010bfa: e06c b.n 8010cd6 } else { area->x2 = drv->hor_res - 1 - init_y_off; - 8010c90: 697b ldr r3, [r7, #20] - 8010c92: f9b3 3000 ldrsh.w r3, [r3] - 8010c96: b29a uxth r2, r3 - 8010c98: 893b ldrh r3, [r7, #8] - 8010c9a: 1ad3 subs r3, r2, r3 - 8010c9c: b29b uxth r3, r3 - 8010c9e: 3b01 subs r3, #1 - 8010ca0: b29b uxth r3, r3 - 8010ca2: b21a sxth r2, r3 - 8010ca4: 687b ldr r3, [r7, #4] - 8010ca6: 809a strh r2, [r3, #4] + 8010bfc: 697b ldr r3, [r7, #20] + 8010bfe: f9b3 3000 ldrsh.w r3, [r3] + 8010c02: b29a uxth r2, r3 + 8010c04: 893b ldrh r3, [r7, #8] + 8010c06: 1ad3 subs r3, r2, r3 + 8010c08: b29b uxth r3, r3 + 8010c0a: 3b01 subs r3, #1 + 8010c0c: b29b uxth r3, r3 + 8010c0e: b21a sxth r2, r3 + 8010c10: 687b ldr r3, [r7, #4] + 8010c12: 809a strh r2, [r3, #4] area->x1 = area->x2 - area_w + 1; - 8010ca8: 687b ldr r3, [r7, #4] - 8010caa: f9b3 3004 ldrsh.w r3, [r3, #4] - 8010cae: b29a uxth r2, r3 - 8010cb0: 89fb ldrh r3, [r7, #14] - 8010cb2: 1ad3 subs r3, r2, r3 - 8010cb4: b29b uxth r3, r3 - 8010cb6: 3301 adds r3, #1 - 8010cb8: b29b uxth r3, r3 - 8010cba: b21a sxth r2, r3 - 8010cbc: 687b ldr r3, [r7, #4] - 8010cbe: 801a strh r2, [r3, #0] + 8010c14: 687b ldr r3, [r7, #4] + 8010c16: f9b3 3004 ldrsh.w r3, [r3, #4] + 8010c1a: b29a uxth r2, r3 + 8010c1c: 89fb ldrh r3, [r7, #14] + 8010c1e: 1ad3 subs r3, r2, r3 + 8010c20: b29b uxth r3, r3 + 8010c22: 3301 adds r3, #1 + 8010c24: b29b uxth r3, r3 + 8010c26: b21a sxth r2, r3 + 8010c28: 687b ldr r3, [r7, #4] + 8010c2a: 801a strh r2, [r3, #0] if(drv->rotated == LV_DISP_ROT_90) { - 8010cc0: e053 b.n 8010d6a + 8010c2c: e053 b.n 8010cd6 } } else { /*Rotate other areas using a maximum buffer size*/ if(rot_buf == NULL) rot_buf = lv_mem_buf_get(LV_DISP_ROT_MAX_BUF); - 8010cc2: 69fb ldr r3, [r7, #28] - 8010cc4: 2b00 cmp r3, #0 - 8010cc6: d104 bne.n 8010cd2 - 8010cc8: f44f 5020 mov.w r0, #10240 ; 0x2800 - 8010ccc: f021 fe98 bl 8032a00 - 8010cd0: 61f8 str r0, [r7, #28] + 8010c2e: 69fb ldr r3, [r7, #28] + 8010c30: 2b00 cmp r3, #0 + 8010c32: d104 bne.n 8010c3e + 8010c34: f44f 5020 mov.w r0, #10240 ; 0x2800 + 8010c38: f021 fe98 bl 803296c + 8010c3c: 61f8 str r0, [r7, #28] draw_buf_rotate_90(drv->rotated == LV_DISP_ROT_270, area_w, height, color_p, rot_buf); - 8010cd2: 697b ldr r3, [r7, #20] - 8010cd4: 7c1b ldrb r3, [r3, #16] - 8010cd6: f003 0330 and.w r3, r3, #48 ; 0x30 - 8010cda: b2db uxtb r3, r3 - 8010cdc: 2b30 cmp r3, #48 ; 0x30 - 8010cde: bf0c ite eq - 8010ce0: 2301 moveq r3, #1 - 8010ce2: 2300 movne r3, #0 - 8010ce4: b2d8 uxtb r0, r3 - 8010ce6: f9b7 2018 ldrsh.w r2, [r7, #24] - 8010cea: f9b7 100e ldrsh.w r1, [r7, #14] - 8010cee: 69fb ldr r3, [r7, #28] - 8010cf0: 9300 str r3, [sp, #0] - 8010cf2: 683b ldr r3, [r7, #0] - 8010cf4: f7ff fdcd bl 8010892 + 8010c3e: 697b ldr r3, [r7, #20] + 8010c40: 7c1b ldrb r3, [r3, #16] + 8010c42: f003 0330 and.w r3, r3, #48 ; 0x30 + 8010c46: b2db uxtb r3, r3 + 8010c48: 2b30 cmp r3, #48 ; 0x30 + 8010c4a: bf0c ite eq + 8010c4c: 2301 moveq r3, #1 + 8010c4e: 2300 movne r3, #0 + 8010c50: b2d8 uxtb r0, r3 + 8010c52: f9b7 2018 ldrsh.w r2, [r7, #24] + 8010c56: f9b7 100e ldrsh.w r1, [r7, #14] + 8010c5a: 69fb ldr r3, [r7, #28] + 8010c5c: 9300 str r3, [sp, #0] + 8010c5e: 683b ldr r3, [r7, #0] + 8010c60: f7ff fdcd bl 80107fe if(drv->rotated == LV_DISP_ROT_90) { - 8010cf8: 697b ldr r3, [r7, #20] - 8010cfa: 7c1b ldrb r3, [r3, #16] - 8010cfc: f003 0330 and.w r3, r3, #48 ; 0x30 - 8010d00: b2db uxtb r3, r3 - 8010d02: 2b10 cmp r3, #16 - 8010d04: d116 bne.n 8010d34 + 8010c64: 697b ldr r3, [r7, #20] + 8010c66: 7c1b ldrb r3, [r3, #16] + 8010c68: f003 0330 and.w r3, r3, #48 ; 0x30 + 8010c6c: b2db uxtb r3, r3 + 8010c6e: 2b10 cmp r3, #16 + 8010c70: d116 bne.n 8010ca0 area->x1 = init_y_off + row; - 8010d06: 893a ldrh r2, [r7, #8] - 8010d08: 8b7b ldrh r3, [r7, #26] - 8010d0a: 4413 add r3, r2 - 8010d0c: b29b uxth r3, r3 - 8010d0e: b21a sxth r2, r3 - 8010d10: 687b ldr r3, [r7, #4] - 8010d12: 801a strh r2, [r3, #0] + 8010c72: 893a ldrh r2, [r7, #8] + 8010c74: 8b7b ldrh r3, [r7, #26] + 8010c76: 4413 add r3, r2 + 8010c78: b29b uxth r3, r3 + 8010c7a: b21a sxth r2, r3 + 8010c7c: 687b ldr r3, [r7, #4] + 8010c7e: 801a strh r2, [r3, #0] area->x2 = init_y_off + row + height - 1; - 8010d14: 893a ldrh r2, [r7, #8] - 8010d16: 8b7b ldrh r3, [r7, #26] - 8010d18: 4413 add r3, r2 - 8010d1a: b29a uxth r2, r3 - 8010d1c: 8b3b ldrh r3, [r7, #24] - 8010d1e: 4413 add r3, r2 - 8010d20: b29b uxth r3, r3 - 8010d22: 3b01 subs r3, #1 - 8010d24: b29b uxth r3, r3 - 8010d26: b21a sxth r2, r3 - 8010d28: 687b ldr r3, [r7, #4] - 8010d2a: 809a strh r2, [r3, #4] - 8010d2c: e01d b.n 8010d6a - 8010d2e: bf00 nop - 8010d30: 20001b10 .word 0x20001b10 + 8010c80: 893a ldrh r2, [r7, #8] + 8010c82: 8b7b ldrh r3, [r7, #26] + 8010c84: 4413 add r3, r2 + 8010c86: b29a uxth r2, r3 + 8010c88: 8b3b ldrh r3, [r7, #24] + 8010c8a: 4413 add r3, r2 + 8010c8c: b29b uxth r3, r3 + 8010c8e: 3b01 subs r3, #1 + 8010c90: b29b uxth r3, r3 + 8010c92: b21a sxth r2, r3 + 8010c94: 687b ldr r3, [r7, #4] + 8010c96: 809a strh r2, [r3, #4] + 8010c98: e01d b.n 8010cd6 + 8010c9a: bf00 nop + 8010c9c: 20001b10 .word 0x20001b10 } else { area->x2 = drv->hor_res - 1 - init_y_off - row; - 8010d34: 697b ldr r3, [r7, #20] - 8010d36: f9b3 3000 ldrsh.w r3, [r3] - 8010d3a: b29a uxth r2, r3 - 8010d3c: 893b ldrh r3, [r7, #8] - 8010d3e: 1ad3 subs r3, r2, r3 - 8010d40: b29a uxth r2, r3 - 8010d42: 8b7b ldrh r3, [r7, #26] - 8010d44: 1ad3 subs r3, r2, r3 - 8010d46: b29b uxth r3, r3 - 8010d48: 3b01 subs r3, #1 - 8010d4a: b29b uxth r3, r3 - 8010d4c: b21a sxth r2, r3 - 8010d4e: 687b ldr r3, [r7, #4] - 8010d50: 809a strh r2, [r3, #4] + 8010ca0: 697b ldr r3, [r7, #20] + 8010ca2: f9b3 3000 ldrsh.w r3, [r3] + 8010ca6: b29a uxth r2, r3 + 8010ca8: 893b ldrh r3, [r7, #8] + 8010caa: 1ad3 subs r3, r2, r3 + 8010cac: b29a uxth r2, r3 + 8010cae: 8b7b ldrh r3, [r7, #26] + 8010cb0: 1ad3 subs r3, r2, r3 + 8010cb2: b29b uxth r3, r3 + 8010cb4: 3b01 subs r3, #1 + 8010cb6: b29b uxth r3, r3 + 8010cb8: b21a sxth r2, r3 + 8010cba: 687b ldr r3, [r7, #4] + 8010cbc: 809a strh r2, [r3, #4] area->x1 = area->x2 - height + 1; - 8010d52: 687b ldr r3, [r7, #4] - 8010d54: f9b3 3004 ldrsh.w r3, [r3, #4] - 8010d58: b29a uxth r2, r3 - 8010d5a: 8b3b ldrh r3, [r7, #24] - 8010d5c: 1ad3 subs r3, r2, r3 - 8010d5e: b29b uxth r3, r3 - 8010d60: 3301 adds r3, #1 - 8010d62: b29b uxth r3, r3 - 8010d64: b21a sxth r2, r3 - 8010d66: 687b ldr r3, [r7, #4] - 8010d68: 801a strh r2, [r3, #0] + 8010cbe: 687b ldr r3, [r7, #4] + 8010cc0: f9b3 3004 ldrsh.w r3, [r3, #4] + 8010cc4: b29a uxth r2, r3 + 8010cc6: 8b3b ldrh r3, [r7, #24] + 8010cc8: 1ad3 subs r3, r2, r3 + 8010cca: b29b uxth r3, r3 + 8010ccc: 3301 adds r3, #1 + 8010cce: b29b uxth r3, r3 + 8010cd0: b21a sxth r2, r3 + 8010cd2: 687b ldr r3, [r7, #4] + 8010cd4: 801a strh r2, [r3, #0] } } /* The original part (chunk of the current area) were split into more parts here. * Set the original last_part flag on the last part of rotation. */ if(row + height >= area_h && draw_buf->last_area && draw_buf->last_part) { - 8010d6a: f9b7 201a ldrsh.w r2, [r7, #26] - 8010d6e: f9b7 3018 ldrsh.w r3, [r7, #24] - 8010d72: 441a add r2, r3 - 8010d74: f9b7 300c ldrsh.w r3, [r7, #12] - 8010d78: 429a cmp r2, r3 - 8010d7a: db11 blt.n 8010da0 - 8010d7c: 693b ldr r3, [r7, #16] - 8010d7e: 699b ldr r3, [r3, #24] - 8010d80: f3c3 0300 ubfx r3, r3, #0, #1 - 8010d84: b2db uxtb r3, r3 - 8010d86: 2b00 cmp r3, #0 - 8010d88: d00a beq.n 8010da0 - 8010d8a: 693b ldr r3, [r7, #16] - 8010d8c: 699b ldr r3, [r3, #24] - 8010d8e: f3c3 0340 ubfx r3, r3, #1, #1 - 8010d92: b2db uxtb r3, r3 - 8010d94: 2b00 cmp r3, #0 - 8010d96: d003 beq.n 8010da0 + 8010cd6: f9b7 201a ldrsh.w r2, [r7, #26] + 8010cda: f9b7 3018 ldrsh.w r3, [r7, #24] + 8010cde: 441a add r2, r3 + 8010ce0: f9b7 300c ldrsh.w r3, [r7, #12] + 8010ce4: 429a cmp r2, r3 + 8010ce6: db11 blt.n 8010d0c + 8010ce8: 693b ldr r3, [r7, #16] + 8010cea: 699b ldr r3, [r3, #24] + 8010cec: f3c3 0300 ubfx r3, r3, #0, #1 + 8010cf0: b2db uxtb r3, r3 + 8010cf2: 2b00 cmp r3, #0 + 8010cf4: d00a beq.n 8010d0c + 8010cf6: 693b ldr r3, [r7, #16] + 8010cf8: 699b ldr r3, [r3, #24] + 8010cfa: f3c3 0340 ubfx r3, r3, #1, #1 + 8010cfe: b2db uxtb r3, r3 + 8010d00: 2b00 cmp r3, #0 + 8010d02: d003 beq.n 8010d0c draw_buf->flushing_last = 1; - 8010d98: 693b ldr r3, [r7, #16] - 8010d9a: 2201 movs r2, #1 - 8010d9c: 615a str r2, [r3, #20] - 8010d9e: e002 b.n 8010da6 + 8010d04: 693b ldr r3, [r7, #16] + 8010d06: 2201 movs r2, #1 + 8010d08: 615a str r2, [r3, #20] + 8010d0a: e002 b.n 8010d12 } else { draw_buf->flushing_last = 0; - 8010da0: 693b ldr r3, [r7, #16] - 8010da2: 2200 movs r2, #0 - 8010da4: 615a str r2, [r3, #20] + 8010d0c: 693b ldr r3, [r7, #16] + 8010d0e: 2200 movs r2, #0 + 8010d10: 615a str r2, [r3, #20] } /*Flush the completed area to the display*/ call_flush_cb(drv, area, rot_buf == NULL ? color_p : rot_buf); - 8010da6: 69fb ldr r3, [r7, #28] - 8010da8: 2b00 cmp r3, #0 - 8010daa: d101 bne.n 8010db0 - 8010dac: 683b ldr r3, [r7, #0] - 8010dae: e000 b.n 8010db2 - 8010db0: 69fb ldr r3, [r7, #28] - 8010db2: 461a mov r2, r3 - 8010db4: 6879 ldr r1, [r7, #4] - 8010db6: 6978 ldr r0, [r7, #20] - 8010db8: f000 f8d4 bl 8010f64 + 8010d12: 69fb ldr r3, [r7, #28] + 8010d14: 2b00 cmp r3, #0 + 8010d16: d101 bne.n 8010d1c + 8010d18: 683b ldr r3, [r7, #0] + 8010d1a: e000 b.n 8010d1e + 8010d1c: 69fb ldr r3, [r7, #28] + 8010d1e: 461a mov r2, r3 + 8010d20: 6879 ldr r1, [r7, #4] + 8010d22: 6978 ldr r0, [r7, #20] + 8010d24: f000 f8d4 bl 8010ed0 /*FIXME: Rotation forces legacy behavior where rendering and flushing are done serially*/ while(draw_buf->flushing) { - 8010dbc: e007 b.n 8010dce + 8010d28: e007 b.n 8010d3a if(drv->wait_cb) drv->wait_cb(drv); - 8010dbe: 697b ldr r3, [r7, #20] - 8010dc0: 6a9b ldr r3, [r3, #40] ; 0x28 - 8010dc2: 2b00 cmp r3, #0 - 8010dc4: d003 beq.n 8010dce - 8010dc6: 697b ldr r3, [r7, #20] - 8010dc8: 6a9b ldr r3, [r3, #40] ; 0x28 - 8010dca: 6978 ldr r0, [r7, #20] - 8010dcc: 4798 blx r3 + 8010d2a: 697b ldr r3, [r7, #20] + 8010d2c: 6a9b ldr r3, [r3, #40] ; 0x28 + 8010d2e: 2b00 cmp r3, #0 + 8010d30: d003 beq.n 8010d3a + 8010d32: 697b ldr r3, [r7, #20] + 8010d34: 6a9b ldr r3, [r3, #40] ; 0x28 + 8010d36: 6978 ldr r0, [r7, #20] + 8010d38: 4798 blx r3 while(draw_buf->flushing) { - 8010dce: 693b ldr r3, [r7, #16] - 8010dd0: 691b ldr r3, [r3, #16] - 8010dd2: 2b00 cmp r3, #0 - 8010dd4: d1f3 bne.n 8010dbe + 8010d3a: 693b ldr r3, [r7, #16] + 8010d3c: 691b ldr r3, [r3, #16] + 8010d3e: 2b00 cmp r3, #0 + 8010d40: d1f3 bne.n 8010d2a } color_p += area_w * height; - 8010dd6: f9b7 300e ldrsh.w r3, [r7, #14] - 8010dda: f9b7 2018 ldrsh.w r2, [r7, #24] - 8010dde: fb02 f303 mul.w r3, r2, r3 - 8010de2: 005b lsls r3, r3, #1 - 8010de4: 683a ldr r2, [r7, #0] - 8010de6: 4413 add r3, r2 - 8010de8: 603b str r3, [r7, #0] + 8010d42: f9b7 300e ldrsh.w r3, [r7, #14] + 8010d46: f9b7 2018 ldrsh.w r2, [r7, #24] + 8010d4a: fb02 f303 mul.w r3, r2, r3 + 8010d4e: 005b lsls r3, r3, #1 + 8010d50: 683a ldr r2, [r7, #0] + 8010d52: 4413 add r3, r2 + 8010d54: 603b str r3, [r7, #0] row += height; - 8010dea: 8b7a ldrh r2, [r7, #26] - 8010dec: 8b3b ldrh r3, [r7, #24] - 8010dee: 4413 add r3, r2 - 8010df0: b29b uxth r3, r3 - 8010df2: 837b strh r3, [r7, #26] + 8010d56: 8b7a ldrh r2, [r7, #26] + 8010d58: 8b3b ldrh r3, [r7, #24] + 8010d5a: 4413 add r3, r2 + 8010d5c: b29b uxth r3, r3 + 8010d5e: 837b strh r3, [r7, #26] while(row < area_h) { - 8010df4: f9b7 201a ldrsh.w r2, [r7, #26] - 8010df8: f9b7 300c ldrsh.w r3, [r7, #12] - 8010dfc: 429a cmp r2, r3 - 8010dfe: f6ff af09 blt.w 8010c14 + 8010d60: f9b7 201a ldrsh.w r2, [r7, #26] + 8010d64: f9b7 300c ldrsh.w r3, [r7, #12] + 8010d68: 429a cmp r2, r3 + 8010d6a: f6ff af09 blt.w 8010b80 } /*Free the allocated buffer at the end if necessary*/ if(rot_buf != NULL) lv_mem_buf_release(rot_buf); - 8010e02: 69fb ldr r3, [r7, #28] - 8010e04: 2b00 cmp r3, #0 - 8010e06: d004 beq.n 8010e12 - 8010e08: 69f8 ldr r0, [r7, #28] - 8010e0a: f021 fea5 bl 8032b58 - 8010e0e: e000 b.n 8010e12 + 8010d6e: 69fb ldr r3, [r7, #28] + 8010d70: 2b00 cmp r3, #0 + 8010d72: d004 beq.n 8010d7e + 8010d74: 69f8 ldr r0, [r7, #28] + 8010d76: f021 fea5 bl 8032ac4 + 8010d7a: e000 b.n 8010d7e return; - 8010e10: bf00 nop + 8010d7c: bf00 nop } } - 8010e12: 3720 adds r7, #32 - 8010e14: 46bd mov sp, r7 - 8010e16: bd80 pop {r7, pc} + 8010d7e: 3720 adds r7, #32 + 8010d80: 46bd mov sp, r7 + 8010d82: bd80 pop {r7, pc} -08010e18 : +08010d84 : /** * Flush the content of the draw buffer */ static void draw_buf_flush(lv_disp_t * disp) { - 8010e18: b580 push {r7, lr} - 8010e1a: b086 sub sp, #24 - 8010e1c: af00 add r7, sp, #0 - 8010e1e: 6078 str r0, [r7, #4] + 8010d84: b580 push {r7, lr} + 8010d86: b086 sub sp, #24 + 8010d88: af00 add r7, sp, #0 + 8010d8a: 6078 str r0, [r7, #4] lv_disp_draw_buf_t * draw_buf = lv_disp_get_draw_buf(disp_refr); - 8010e20: 4b4f ldr r3, [pc, #316] ; (8010f60 ) - 8010e22: 681b ldr r3, [r3, #0] - 8010e24: 4618 mov r0, r3 - 8010e26: f01f fbeb bl 8030600 - 8010e2a: 6178 str r0, [r7, #20] + 8010d8c: 4b4f ldr r3, [pc, #316] ; (8010ecc ) + 8010d8e: 681b ldr r3, [r3, #0] + 8010d90: 4618 mov r0, r3 + 8010d92: f01f fbeb bl 803056c + 8010d96: 6178 str r0, [r7, #20] /*Flush the rendered content to the display*/ lv_draw_ctx_t * draw_ctx = disp->driver->draw_ctx; - 8010e2c: 687b ldr r3, [r7, #4] - 8010e2e: 681b ldr r3, [r3, #0] - 8010e30: 6b9b ldr r3, [r3, #56] ; 0x38 - 8010e32: 613b str r3, [r7, #16] + 8010d98: 687b ldr r3, [r7, #4] + 8010d9a: 681b ldr r3, [r3, #0] + 8010d9c: 6b9b ldr r3, [r3, #56] ; 0x38 + 8010d9e: 613b str r3, [r7, #16] if(draw_ctx->wait_for_finish) draw_ctx->wait_for_finish(draw_ctx); - 8010e34: 693b ldr r3, [r7, #16] - 8010e36: 6adb ldr r3, [r3, #44] ; 0x2c - 8010e38: 2b00 cmp r3, #0 - 8010e3a: d003 beq.n 8010e44 - 8010e3c: 693b ldr r3, [r7, #16] - 8010e3e: 6adb ldr r3, [r3, #44] ; 0x2c - 8010e40: 6938 ldr r0, [r7, #16] - 8010e42: 4798 blx r3 + 8010da0: 693b ldr r3, [r7, #16] + 8010da2: 6adb ldr r3, [r3, #44] ; 0x2c + 8010da4: 2b00 cmp r3, #0 + 8010da6: d003 beq.n 8010db0 + 8010da8: 693b ldr r3, [r7, #16] + 8010daa: 6adb ldr r3, [r3, #44] ; 0x2c + 8010dac: 6938 ldr r0, [r7, #16] + 8010dae: 4798 blx r3 /* In double buffered mode wait until the other buffer is freed * and driver is ready to receive the new buffer */ if(draw_buf->buf1 && draw_buf->buf2) { - 8010e44: 697b ldr r3, [r7, #20] - 8010e46: 681b ldr r3, [r3, #0] - 8010e48: 2b00 cmp r3, #0 - 8010e4a: d017 beq.n 8010e7c - 8010e4c: 697b ldr r3, [r7, #20] - 8010e4e: 685b ldr r3, [r3, #4] - 8010e50: 2b00 cmp r3, #0 - 8010e52: d013 beq.n 8010e7c + 8010db0: 697b ldr r3, [r7, #20] + 8010db2: 681b ldr r3, [r3, #0] + 8010db4: 2b00 cmp r3, #0 + 8010db6: d017 beq.n 8010de8 + 8010db8: 697b ldr r3, [r7, #20] + 8010dba: 685b ldr r3, [r3, #4] + 8010dbc: 2b00 cmp r3, #0 + 8010dbe: d013 beq.n 8010de8 while(draw_buf->flushing) { - 8010e54: e00e b.n 8010e74 + 8010dc0: e00e b.n 8010de0 if(disp_refr->driver->wait_cb) disp_refr->driver->wait_cb(disp_refr->driver); - 8010e56: 4b42 ldr r3, [pc, #264] ; (8010f60 ) - 8010e58: 681b ldr r3, [r3, #0] - 8010e5a: 681b ldr r3, [r3, #0] - 8010e5c: 6a9b ldr r3, [r3, #40] ; 0x28 - 8010e5e: 2b00 cmp r3, #0 - 8010e60: d008 beq.n 8010e74 - 8010e62: 4b3f ldr r3, [pc, #252] ; (8010f60 ) - 8010e64: 681b ldr r3, [r3, #0] - 8010e66: 681b ldr r3, [r3, #0] - 8010e68: 6a9b ldr r3, [r3, #40] ; 0x28 - 8010e6a: 4a3d ldr r2, [pc, #244] ; (8010f60 ) - 8010e6c: 6812 ldr r2, [r2, #0] - 8010e6e: 6812 ldr r2, [r2, #0] - 8010e70: 4610 mov r0, r2 - 8010e72: 4798 blx r3 + 8010dc2: 4b42 ldr r3, [pc, #264] ; (8010ecc ) + 8010dc4: 681b ldr r3, [r3, #0] + 8010dc6: 681b ldr r3, [r3, #0] + 8010dc8: 6a9b ldr r3, [r3, #40] ; 0x28 + 8010dca: 2b00 cmp r3, #0 + 8010dcc: d008 beq.n 8010de0 + 8010dce: 4b3f ldr r3, [pc, #252] ; (8010ecc ) + 8010dd0: 681b ldr r3, [r3, #0] + 8010dd2: 681b ldr r3, [r3, #0] + 8010dd4: 6a9b ldr r3, [r3, #40] ; 0x28 + 8010dd6: 4a3d ldr r2, [pc, #244] ; (8010ecc ) + 8010dd8: 6812 ldr r2, [r2, #0] + 8010dda: 6812 ldr r2, [r2, #0] + 8010ddc: 4610 mov r0, r2 + 8010dde: 4798 blx r3 while(draw_buf->flushing) { - 8010e74: 697b ldr r3, [r7, #20] - 8010e76: 691b ldr r3, [r3, #16] - 8010e78: 2b00 cmp r3, #0 - 8010e7a: d1ec bne.n 8010e56 + 8010de0: 697b ldr r3, [r7, #20] + 8010de2: 691b ldr r3, [r3, #16] + 8010de4: 2b00 cmp r3, #0 + 8010de6: d1ec bne.n 8010dc2 } } draw_buf->flushing = 1; - 8010e7c: 697b ldr r3, [r7, #20] - 8010e7e: 2201 movs r2, #1 - 8010e80: 611a str r2, [r3, #16] + 8010de8: 697b ldr r3, [r7, #20] + 8010dea: 2201 movs r2, #1 + 8010dec: 611a str r2, [r3, #16] if(disp_refr->driver->draw_buf->last_area && disp_refr->driver->draw_buf->last_part) draw_buf->flushing_last = 1; - 8010e82: 4b37 ldr r3, [pc, #220] ; (8010f60 ) - 8010e84: 681b ldr r3, [r3, #0] - 8010e86: 681b ldr r3, [r3, #0] - 8010e88: 68db ldr r3, [r3, #12] - 8010e8a: 699b ldr r3, [r3, #24] - 8010e8c: f3c3 0300 ubfx r3, r3, #0, #1 - 8010e90: b2db uxtb r3, r3 - 8010e92: 2b00 cmp r3, #0 - 8010e94: d00d beq.n 8010eb2 - 8010e96: 4b32 ldr r3, [pc, #200] ; (8010f60 ) - 8010e98: 681b ldr r3, [r3, #0] - 8010e9a: 681b ldr r3, [r3, #0] - 8010e9c: 68db ldr r3, [r3, #12] - 8010e9e: 699b ldr r3, [r3, #24] - 8010ea0: f3c3 0340 ubfx r3, r3, #1, #1 - 8010ea4: b2db uxtb r3, r3 - 8010ea6: 2b00 cmp r3, #0 - 8010ea8: d003 beq.n 8010eb2 - 8010eaa: 697b ldr r3, [r7, #20] - 8010eac: 2201 movs r2, #1 - 8010eae: 615a str r2, [r3, #20] - 8010eb0: e002 b.n 8010eb8 + 8010dee: 4b37 ldr r3, [pc, #220] ; (8010ecc ) + 8010df0: 681b ldr r3, [r3, #0] + 8010df2: 681b ldr r3, [r3, #0] + 8010df4: 68db ldr r3, [r3, #12] + 8010df6: 699b ldr r3, [r3, #24] + 8010df8: f3c3 0300 ubfx r3, r3, #0, #1 + 8010dfc: b2db uxtb r3, r3 + 8010dfe: 2b00 cmp r3, #0 + 8010e00: d00d beq.n 8010e1e + 8010e02: 4b32 ldr r3, [pc, #200] ; (8010ecc ) + 8010e04: 681b ldr r3, [r3, #0] + 8010e06: 681b ldr r3, [r3, #0] + 8010e08: 68db ldr r3, [r3, #12] + 8010e0a: 699b ldr r3, [r3, #24] + 8010e0c: f3c3 0340 ubfx r3, r3, #1, #1 + 8010e10: b2db uxtb r3, r3 + 8010e12: 2b00 cmp r3, #0 + 8010e14: d003 beq.n 8010e1e + 8010e16: 697b ldr r3, [r7, #20] + 8010e18: 2201 movs r2, #1 + 8010e1a: 615a str r2, [r3, #20] + 8010e1c: e002 b.n 8010e24 else draw_buf->flushing_last = 0; - 8010eb2: 697b ldr r3, [r7, #20] - 8010eb4: 2200 movs r2, #0 - 8010eb6: 615a str r2, [r3, #20] + 8010e1e: 697b ldr r3, [r7, #20] + 8010e20: 2200 movs r2, #0 + 8010e22: 615a str r2, [r3, #20] bool flushing_last = draw_buf->flushing_last; - 8010eb8: 697b ldr r3, [r7, #20] - 8010eba: 695b ldr r3, [r3, #20] - 8010ebc: 2b00 cmp r3, #0 - 8010ebe: bf14 ite ne - 8010ec0: 2301 movne r3, #1 - 8010ec2: 2300 moveq r3, #0 - 8010ec4: 73fb strb r3, [r7, #15] + 8010e24: 697b ldr r3, [r7, #20] + 8010e26: 695b ldr r3, [r3, #20] + 8010e28: 2b00 cmp r3, #0 + 8010e2a: bf14 ite ne + 8010e2c: 2301 movne r3, #1 + 8010e2e: 2300 moveq r3, #0 + 8010e30: 73fb strb r3, [r7, #15] if(disp->driver->flush_cb) { - 8010ec6: 687b ldr r3, [r7, #4] - 8010ec8: 681b ldr r3, [r3, #0] - 8010eca: 695b ldr r3, [r3, #20] - 8010ecc: 2b00 cmp r3, #0 - 8010ece: d021 beq.n 8010f14 + 8010e32: 687b ldr r3, [r7, #4] + 8010e34: 681b ldr r3, [r3, #0] + 8010e36: 695b ldr r3, [r3, #20] + 8010e38: 2b00 cmp r3, #0 + 8010e3a: d021 beq.n 8010e80 /*Rotate the buffer to the display's native orientation if necessary*/ if(disp->driver->rotated != LV_DISP_ROT_NONE && disp->driver->sw_rotate) { - 8010ed0: 687b ldr r3, [r7, #4] - 8010ed2: 681b ldr r3, [r3, #0] - 8010ed4: 7c1b ldrb r3, [r3, #16] - 8010ed6: f003 0330 and.w r3, r3, #48 ; 0x30 - 8010eda: b2db uxtb r3, r3 - 8010edc: 2b00 cmp r3, #0 - 8010ede: d010 beq.n 8010f02 - 8010ee0: 687b ldr r3, [r7, #4] - 8010ee2: 681b ldr r3, [r3, #0] - 8010ee4: 7c1b ldrb r3, [r3, #16] - 8010ee6: f003 0304 and.w r3, r3, #4 - 8010eea: b2db uxtb r3, r3 - 8010eec: 2b00 cmp r3, #0 - 8010eee: d008 beq.n 8010f02 + 8010e3c: 687b ldr r3, [r7, #4] + 8010e3e: 681b ldr r3, [r3, #0] + 8010e40: 7c1b ldrb r3, [r3, #16] + 8010e42: f003 0330 and.w r3, r3, #48 ; 0x30 + 8010e46: b2db uxtb r3, r3 + 8010e48: 2b00 cmp r3, #0 + 8010e4a: d010 beq.n 8010e6e + 8010e4c: 687b ldr r3, [r7, #4] + 8010e4e: 681b ldr r3, [r3, #0] + 8010e50: 7c1b ldrb r3, [r3, #16] + 8010e52: f003 0304 and.w r3, r3, #4 + 8010e56: b2db uxtb r3, r3 + 8010e58: 2b00 cmp r3, #0 + 8010e5a: d008 beq.n 8010e6e draw_buf_rotate(draw_ctx->buf_area, draw_ctx->buf); - 8010ef0: 693b ldr r3, [r7, #16] - 8010ef2: 685a ldr r2, [r3, #4] - 8010ef4: 693b ldr r3, [r7, #16] - 8010ef6: 681b ldr r3, [r3, #0] - 8010ef8: 4619 mov r1, r3 - 8010efa: 4610 mov r0, r2 - 8010efc: f7ff fdf6 bl 8010aec - 8010f00: e008 b.n 8010f14 + 8010e5c: 693b ldr r3, [r7, #16] + 8010e5e: 685a ldr r2, [r3, #4] + 8010e60: 693b ldr r3, [r7, #16] + 8010e62: 681b ldr r3, [r3, #0] + 8010e64: 4619 mov r1, r3 + 8010e66: 4610 mov r0, r2 + 8010e68: f7ff fdf6 bl 8010a58 + 8010e6c: e008 b.n 8010e80 } else { call_flush_cb(disp->driver, draw_ctx->buf_area, draw_ctx->buf); - 8010f02: 687b ldr r3, [r7, #4] - 8010f04: 6818 ldr r0, [r3, #0] - 8010f06: 693b ldr r3, [r7, #16] - 8010f08: 6859 ldr r1, [r3, #4] - 8010f0a: 693b ldr r3, [r7, #16] - 8010f0c: 681b ldr r3, [r3, #0] - 8010f0e: 461a mov r2, r3 - 8010f10: f000 f828 bl 8010f64 + 8010e6e: 687b ldr r3, [r7, #4] + 8010e70: 6818 ldr r0, [r3, #0] + 8010e72: 693b ldr r3, [r7, #16] + 8010e74: 6859 ldr r1, [r3, #4] + 8010e76: 693b ldr r3, [r7, #16] + 8010e78: 681b ldr r3, [r3, #0] + 8010e7a: 461a mov r2, r3 + 8010e7c: f000 f828 bl 8010ed0 } } /*If there are 2 buffers swap them. With direct mode swap only on the last area*/ if(draw_buf->buf1 && draw_buf->buf2 && (!disp->driver->direct_mode || flushing_last)) { - 8010f14: 697b ldr r3, [r7, #20] - 8010f16: 681b ldr r3, [r3, #0] - 8010f18: 2b00 cmp r3, #0 - 8010f1a: d01d beq.n 8010f58 - 8010f1c: 697b ldr r3, [r7, #20] - 8010f1e: 685b ldr r3, [r3, #4] - 8010f20: 2b00 cmp r3, #0 - 8010f22: d019 beq.n 8010f58 - 8010f24: 687b ldr r3, [r7, #4] - 8010f26: 681b ldr r3, [r3, #0] - 8010f28: 7c1b ldrb r3, [r3, #16] - 8010f2a: f003 0301 and.w r3, r3, #1 - 8010f2e: b2db uxtb r3, r3 - 8010f30: 2b00 cmp r3, #0 - 8010f32: d002 beq.n 8010f3a - 8010f34: 7bfb ldrb r3, [r7, #15] - 8010f36: 2b00 cmp r3, #0 - 8010f38: d00e beq.n 8010f58 + 8010e80: 697b ldr r3, [r7, #20] + 8010e82: 681b ldr r3, [r3, #0] + 8010e84: 2b00 cmp r3, #0 + 8010e86: d01d beq.n 8010ec4 + 8010e88: 697b ldr r3, [r7, #20] + 8010e8a: 685b ldr r3, [r3, #4] + 8010e8c: 2b00 cmp r3, #0 + 8010e8e: d019 beq.n 8010ec4 + 8010e90: 687b ldr r3, [r7, #4] + 8010e92: 681b ldr r3, [r3, #0] + 8010e94: 7c1b ldrb r3, [r3, #16] + 8010e96: f003 0301 and.w r3, r3, #1 + 8010e9a: b2db uxtb r3, r3 + 8010e9c: 2b00 cmp r3, #0 + 8010e9e: d002 beq.n 8010ea6 + 8010ea0: 7bfb ldrb r3, [r7, #15] + 8010ea2: 2b00 cmp r3, #0 + 8010ea4: d00e beq.n 8010ec4 if(draw_buf->buf_act == draw_buf->buf1) - 8010f3a: 697b ldr r3, [r7, #20] - 8010f3c: 689a ldr r2, [r3, #8] - 8010f3e: 697b ldr r3, [r7, #20] - 8010f40: 681b ldr r3, [r3, #0] - 8010f42: 429a cmp r2, r3 - 8010f44: d104 bne.n 8010f50 + 8010ea6: 697b ldr r3, [r7, #20] + 8010ea8: 689a ldr r2, [r3, #8] + 8010eaa: 697b ldr r3, [r7, #20] + 8010eac: 681b ldr r3, [r3, #0] + 8010eae: 429a cmp r2, r3 + 8010eb0: d104 bne.n 8010ebc draw_buf->buf_act = draw_buf->buf2; - 8010f46: 697b ldr r3, [r7, #20] - 8010f48: 685a ldr r2, [r3, #4] - 8010f4a: 697b ldr r3, [r7, #20] - 8010f4c: 609a str r2, [r3, #8] + 8010eb2: 697b ldr r3, [r7, #20] + 8010eb4: 685a ldr r2, [r3, #4] + 8010eb6: 697b ldr r3, [r7, #20] + 8010eb8: 609a str r2, [r3, #8] else draw_buf->buf_act = draw_buf->buf1; } } - 8010f4e: e003 b.n 8010f58 + 8010eba: e003 b.n 8010ec4 draw_buf->buf_act = draw_buf->buf1; - 8010f50: 697b ldr r3, [r7, #20] - 8010f52: 681a ldr r2, [r3, #0] - 8010f54: 697b ldr r3, [r7, #20] - 8010f56: 609a str r2, [r3, #8] + 8010ebc: 697b ldr r3, [r7, #20] + 8010ebe: 681a ldr r2, [r3, #0] + 8010ec0: 697b ldr r3, [r7, #20] + 8010ec2: 609a str r2, [r3, #8] } - 8010f58: bf00 nop - 8010f5a: 3718 adds r7, #24 - 8010f5c: 46bd mov sp, r7 - 8010f5e: bd80 pop {r7, pc} - 8010f60: 20001b10 .word 0x20001b10 + 8010ec4: bf00 nop + 8010ec6: 3718 adds r7, #24 + 8010ec8: 46bd mov sp, r7 + 8010eca: bd80 pop {r7, pc} + 8010ecc: 20001b10 .word 0x20001b10 -08010f64 : +08010ed0 : static void call_flush_cb(lv_disp_drv_t * drv, const lv_area_t * area, lv_color_t * color_p) { - 8010f64: b580 push {r7, lr} - 8010f66: b086 sub sp, #24 - 8010f68: af00 add r7, sp, #0 - 8010f6a: 60f8 str r0, [r7, #12] - 8010f6c: 60b9 str r1, [r7, #8] - 8010f6e: 607a str r2, [r7, #4] + 8010ed0: b580 push {r7, lr} + 8010ed2: b086 sub sp, #24 + 8010ed4: af00 add r7, sp, #0 + 8010ed6: 60f8 str r0, [r7, #12] + 8010ed8: 60b9 str r1, [r7, #8] + 8010eda: 607a str r2, [r7, #4] REFR_TRACE("Calling flush_cb on (%d;%d)(%d;%d) area with %p image pointer", area->x1, area->y1, area->x2, area->y2, (void *)color_p); lv_area_t offset_area = { .x1 = area->x1 + drv->offset_x, - 8010f70: 68bb ldr r3, [r7, #8] - 8010f72: f9b3 3000 ldrsh.w r3, [r3] - 8010f76: b29a uxth r2, r3 - 8010f78: 68fb ldr r3, [r7, #12] - 8010f7a: f9b3 3008 ldrsh.w r3, [r3, #8] - 8010f7e: b29b uxth r3, r3 - 8010f80: 4413 add r3, r2 - 8010f82: b29b uxth r3, r3 - 8010f84: b21b sxth r3, r3 + 8010edc: 68bb ldr r3, [r7, #8] + 8010ede: f9b3 3000 ldrsh.w r3, [r3] + 8010ee2: b29a uxth r2, r3 + 8010ee4: 68fb ldr r3, [r7, #12] + 8010ee6: f9b3 3008 ldrsh.w r3, [r3, #8] + 8010eea: b29b uxth r3, r3 + 8010eec: 4413 add r3, r2 + 8010eee: b29b uxth r3, r3 + 8010ef0: b21b sxth r3, r3 lv_area_t offset_area = { - 8010f86: 823b strh r3, [r7, #16] + 8010ef2: 823b strh r3, [r7, #16] .y1 = area->y1 + drv->offset_y, - 8010f88: 68bb ldr r3, [r7, #8] - 8010f8a: f9b3 3002 ldrsh.w r3, [r3, #2] - 8010f8e: b29a uxth r2, r3 - 8010f90: 68fb ldr r3, [r7, #12] - 8010f92: f9b3 300a ldrsh.w r3, [r3, #10] - 8010f96: b29b uxth r3, r3 - 8010f98: 4413 add r3, r2 - 8010f9a: b29b uxth r3, r3 - 8010f9c: b21b sxth r3, r3 + 8010ef4: 68bb ldr r3, [r7, #8] + 8010ef6: f9b3 3002 ldrsh.w r3, [r3, #2] + 8010efa: b29a uxth r2, r3 + 8010efc: 68fb ldr r3, [r7, #12] + 8010efe: f9b3 300a ldrsh.w r3, [r3, #10] + 8010f02: b29b uxth r3, r3 + 8010f04: 4413 add r3, r2 + 8010f06: b29b uxth r3, r3 + 8010f08: b21b sxth r3, r3 lv_area_t offset_area = { - 8010f9e: 827b strh r3, [r7, #18] + 8010f0a: 827b strh r3, [r7, #18] .x2 = area->x2 + drv->offset_x, - 8010fa0: 68bb ldr r3, [r7, #8] - 8010fa2: f9b3 3004 ldrsh.w r3, [r3, #4] - 8010fa6: b29a uxth r2, r3 - 8010fa8: 68fb ldr r3, [r7, #12] - 8010faa: f9b3 3008 ldrsh.w r3, [r3, #8] - 8010fae: b29b uxth r3, r3 - 8010fb0: 4413 add r3, r2 - 8010fb2: b29b uxth r3, r3 - 8010fb4: b21b sxth r3, r3 + 8010f0c: 68bb ldr r3, [r7, #8] + 8010f0e: f9b3 3004 ldrsh.w r3, [r3, #4] + 8010f12: b29a uxth r2, r3 + 8010f14: 68fb ldr r3, [r7, #12] + 8010f16: f9b3 3008 ldrsh.w r3, [r3, #8] + 8010f1a: b29b uxth r3, r3 + 8010f1c: 4413 add r3, r2 + 8010f1e: b29b uxth r3, r3 + 8010f20: b21b sxth r3, r3 lv_area_t offset_area = { - 8010fb6: 82bb strh r3, [r7, #20] + 8010f22: 82bb strh r3, [r7, #20] .y2 = area->y2 + drv->offset_y - 8010fb8: 68bb ldr r3, [r7, #8] - 8010fba: f9b3 3006 ldrsh.w r3, [r3, #6] - 8010fbe: b29a uxth r2, r3 - 8010fc0: 68fb ldr r3, [r7, #12] - 8010fc2: f9b3 300a ldrsh.w r3, [r3, #10] - 8010fc6: b29b uxth r3, r3 - 8010fc8: 4413 add r3, r2 - 8010fca: b29b uxth r3, r3 - 8010fcc: b21b sxth r3, r3 + 8010f24: 68bb ldr r3, [r7, #8] + 8010f26: f9b3 3006 ldrsh.w r3, [r3, #6] + 8010f2a: b29a uxth r2, r3 + 8010f2c: 68fb ldr r3, [r7, #12] + 8010f2e: f9b3 300a ldrsh.w r3, [r3, #10] + 8010f32: b29b uxth r3, r3 + 8010f34: 4413 add r3, r2 + 8010f36: b29b uxth r3, r3 + 8010f38: b21b sxth r3, r3 lv_area_t offset_area = { - 8010fce: 82fb strh r3, [r7, #22] + 8010f3a: 82fb strh r3, [r7, #22] }; drv->flush_cb(drv, &offset_area, color_p); - 8010fd0: 68fb ldr r3, [r7, #12] - 8010fd2: 695b ldr r3, [r3, #20] - 8010fd4: f107 0110 add.w r1, r7, #16 - 8010fd8: 687a ldr r2, [r7, #4] - 8010fda: 68f8 ldr r0, [r7, #12] - 8010fdc: 4798 blx r3 + 8010f3c: 68fb ldr r3, [r7, #12] + 8010f3e: 695b ldr r3, [r3, #20] + 8010f40: f107 0110 add.w r1, r7, #16 + 8010f44: 687a ldr r2, [r7, #4] + 8010f46: 68f8 ldr r0, [r7, #12] + 8010f48: 4798 blx r3 } - 8010fde: bf00 nop - 8010fe0: 3718 adds r7, #24 - 8010fe2: 46bd mov sp, r7 - 8010fe4: bd80 pop {r7, pc} + 8010f4a: bf00 nop + 8010f4c: 3718 adds r7, #24 + 8010f4e: 46bd mov sp, r7 + 8010f50: bd80 pop {r7, pc} ... -08010fe8 : +08010f54 : /** * Remove all styles from an object * @param obj pointer to an object */ static inline void lv_obj_remove_style_all(struct _lv_obj_t * obj) { - 8010fe8: b580 push {r7, lr} - 8010fea: b082 sub sp, #8 - 8010fec: af00 add r7, sp, #0 - 8010fee: 6078 str r0, [r7, #4] + 8010f54: b580 push {r7, lr} + 8010f56: b082 sub sp, #8 + 8010f58: af00 add r7, sp, #0 + 8010f5a: 6078 str r0, [r7, #4] lv_obj_remove_style(obj, NULL, LV_PART_ANY | LV_STATE_ANY); - 8010ff0: 4a04 ldr r2, [pc, #16] ; (8011004 ) - 8010ff2: 2100 movs r1, #0 - 8010ff4: 6878 ldr r0, [r7, #4] - 8010ff6: f7fc fd17 bl 800da28 + 8010f5c: 4a04 ldr r2, [pc, #16] ; (8010f70 ) + 8010f5e: 2100 movs r1, #0 + 8010f60: 6878 ldr r0, [r7, #4] + 8010f62: f7fc fd2b bl 800d9bc } - 8010ffa: bf00 nop - 8010ffc: 3708 adds r7, #8 - 8010ffe: 46bd mov sp, r7 - 8011000: bd80 pop {r7, pc} - 8011002: bf00 nop - 8011004: 000fffff .word 0x000fffff + 8010f66: bf00 nop + 8010f68: 3708 adds r7, #8 + 8010f6a: 46bd mov sp, r7 + 8010f6c: bd80 pop {r7, pc} + 8010f6e: bf00 nop + 8010f70: 000fffff .word 0x000fffff -08011008 : +08010f74 : /********************** * GLOBAL FUNCTIONS **********************/ lv_theme_t * lv_theme_get_from_obj(lv_obj_t * obj) { - 8011008: b580 push {r7, lr} - 801100a: b084 sub sp, #16 - 801100c: af00 add r7, sp, #0 - 801100e: 6078 str r0, [r7, #4] + 8010f74: b580 push {r7, lr} + 8010f76: b084 sub sp, #16 + 8010f78: af00 add r7, sp, #0 + 8010f7a: 6078 str r0, [r7, #4] lv_disp_t * disp = obj ? lv_obj_get_disp(obj) : lv_disp_get_default(); - 8011010: 687b ldr r3, [r7, #4] - 8011012: 2b00 cmp r3, #0 - 8011014: d004 beq.n 8011020 - 8011016: 6878 ldr r0, [r7, #4] - 8011018: f7fe fb3e bl 800f698 - 801101c: 4603 mov r3, r0 - 801101e: e002 b.n 8011026 - 8011020: f01f fa54 bl 80304cc - 8011024: 4603 mov r3, r0 - 8011026: 60fb str r3, [r7, #12] + 8010f7c: 687b ldr r3, [r7, #4] + 8010f7e: 2b00 cmp r3, #0 + 8010f80: d004 beq.n 8010f8c + 8010f82: 6878 ldr r0, [r7, #4] + 8010f84: f7fe fb3e bl 800f604 + 8010f88: 4603 mov r3, r0 + 8010f8a: e002 b.n 8010f92 + 8010f8c: f01f fa54 bl 8030438 + 8010f90: 4603 mov r3, r0 + 8010f92: 60fb str r3, [r7, #12] return lv_disp_get_theme(disp); - 8011028: 68f8 ldr r0, [r7, #12] - 801102a: f7f1 fa19 bl 8002460 - 801102e: 4603 mov r3, r0 + 8010f94: 68f8 ldr r0, [r7, #12] + 8010f96: f7f1 fa2c bl 80023f2 + 8010f9a: 4603 mov r3, r0 } - 8011030: 4618 mov r0, r3 - 8011032: 3710 adds r7, #16 - 8011034: 46bd mov sp, r7 - 8011036: bd80 pop {r7, pc} + 8010f9c: 4618 mov r0, r3 + 8010f9e: 3710 adds r7, #16 + 8010fa0: 46bd mov sp, r7 + 8010fa2: bd80 pop {r7, pc} -08011038 : +08010fa4 : * Apply the active theme on an object * @param obj pointer to an object * @param name the name of the theme element to apply. E.g. `LV_THEME_BTN` */ void lv_theme_apply(lv_obj_t * obj) { - 8011038: b580 push {r7, lr} - 801103a: b084 sub sp, #16 - 801103c: af00 add r7, sp, #0 - 801103e: 6078 str r0, [r7, #4] + 8010fa4: b580 push {r7, lr} + 8010fa6: b084 sub sp, #16 + 8010fa8: af00 add r7, sp, #0 + 8010faa: 6078 str r0, [r7, #4] lv_theme_t * th = lv_theme_get_from_obj(obj); - 8011040: 6878 ldr r0, [r7, #4] - 8011042: f7ff ffe1 bl 8011008 - 8011046: 60f8 str r0, [r7, #12] + 8010fac: 6878 ldr r0, [r7, #4] + 8010fae: f7ff ffe1 bl 8010f74 + 8010fb2: 60f8 str r0, [r7, #12] if(th == NULL) return; - 8011048: 68fb ldr r3, [r7, #12] - 801104a: 2b00 cmp r3, #0 - 801104c: d007 beq.n 801105e + 8010fb4: 68fb ldr r3, [r7, #12] + 8010fb6: 2b00 cmp r3, #0 + 8010fb8: d007 beq.n 8010fca lv_obj_remove_style_all(obj); - 801104e: 6878 ldr r0, [r7, #4] - 8011050: f7ff ffca bl 8010fe8 + 8010fba: 6878 ldr r0, [r7, #4] + 8010fbc: f7ff ffca bl 8010f54 apply_theme(th, obj); /*Apply the theme including the base theme(s)*/ - 8011054: 6879 ldr r1, [r7, #4] - 8011056: 68f8 ldr r0, [r7, #12] - 8011058: f000 f81b bl 8011092 - 801105c: e000 b.n 8011060 + 8010fc0: 6879 ldr r1, [r7, #4] + 8010fc2: 68f8 ldr r0, [r7, #12] + 8010fc4: f000 f81b bl 8010ffe + 8010fc8: e000 b.n 8010fcc if(th == NULL) return; - 801105e: bf00 nop + 8010fca: bf00 nop } - 8011060: 3710 adds r7, #16 - 8011062: 46bd mov sp, r7 - 8011064: bd80 pop {r7, pc} + 8010fcc: 3710 adds r7, #16 + 8010fce: 46bd mov sp, r7 + 8010fd0: bd80 pop {r7, pc} -08011066 : +08010fd2 : lv_theme_t * th = lv_theme_get_from_obj(obj); return th ? th->font_large : LV_FONT_DEFAULT; } lv_color_t lv_theme_get_color_primary(lv_obj_t * obj) { - 8011066: b580 push {r7, lr} - 8011068: b084 sub sp, #16 - 801106a: af00 add r7, sp, #0 - 801106c: 6078 str r0, [r7, #4] + 8010fd2: b580 push {r7, lr} + 8010fd4: b084 sub sp, #16 + 8010fd6: af00 add r7, sp, #0 + 8010fd8: 6078 str r0, [r7, #4] lv_theme_t * th = lv_theme_get_from_obj(obj); - 801106e: 6878 ldr r0, [r7, #4] - 8011070: f7ff ffca bl 8011008 - 8011074: 60f8 str r0, [r7, #12] + 8010fda: 6878 ldr r0, [r7, #4] + 8010fdc: f7ff ffca bl 8010f74 + 8010fe0: 60f8 str r0, [r7, #12] return th ? th->color_primary : lv_palette_main(LV_PALETTE_BLUE_GREY); - 8011076: 68fb ldr r3, [r7, #12] - 8011078: 2b00 cmp r3, #0 - 801107a: d002 beq.n 8011082 - 801107c: 68fb ldr r3, [r7, #12] - 801107e: 8a1b ldrh r3, [r3, #16] - 8011080: e003 b.n 801108a - 8011082: 2011 movs r0, #17 - 8011084: f020 fd0a bl 8031a9c - 8011088: 4603 mov r3, r0 + 8010fe2: 68fb ldr r3, [r7, #12] + 8010fe4: 2b00 cmp r3, #0 + 8010fe6: d002 beq.n 8010fee + 8010fe8: 68fb ldr r3, [r7, #12] + 8010fea: 8a1b ldrh r3, [r3, #16] + 8010fec: e003 b.n 8010ff6 + 8010fee: 2011 movs r0, #17 + 8010ff0: f020 fd0a bl 8031a08 + 8010ff4: 4603 mov r3, r0 } - 801108a: 4618 mov r0, r3 - 801108c: 3710 adds r7, #16 - 801108e: 46bd mov sp, r7 - 8011090: bd80 pop {r7, pc} + 8010ff6: 4618 mov r0, r3 + 8010ff8: 3710 adds r7, #16 + 8010ffa: 46bd mov sp, r7 + 8010ffc: bd80 pop {r7, pc} -08011092 : +08010ffe : /********************** * STATIC FUNCTIONS **********************/ static void apply_theme(lv_theme_t * th, lv_obj_t * obj) { - 8011092: b580 push {r7, lr} - 8011094: b082 sub sp, #8 - 8011096: af00 add r7, sp, #0 - 8011098: 6078 str r0, [r7, #4] - 801109a: 6039 str r1, [r7, #0] + 8010ffe: b580 push {r7, lr} + 8011000: b082 sub sp, #8 + 8011002: af00 add r7, sp, #0 + 8011004: 6078 str r0, [r7, #4] + 8011006: 6039 str r1, [r7, #0] if(th->parent) apply_theme(th->parent, obj); - 801109c: 687b ldr r3, [r7, #4] - 801109e: 685b ldr r3, [r3, #4] - 80110a0: 2b00 cmp r3, #0 - 80110a2: d005 beq.n 80110b0 - 80110a4: 687b ldr r3, [r7, #4] - 80110a6: 685b ldr r3, [r3, #4] - 80110a8: 6839 ldr r1, [r7, #0] - 80110aa: 4618 mov r0, r3 - 80110ac: f7ff fff1 bl 8011092 + 8011008: 687b ldr r3, [r7, #4] + 801100a: 685b ldr r3, [r3, #4] + 801100c: 2b00 cmp r3, #0 + 801100e: d005 beq.n 801101c + 8011010: 687b ldr r3, [r7, #4] + 8011012: 685b ldr r3, [r3, #4] + 8011014: 6839 ldr r1, [r7, #0] + 8011016: 4618 mov r0, r3 + 8011018: f7ff fff1 bl 8010ffe if(th->apply_cb) th->apply_cb(th, obj); - 80110b0: 687b ldr r3, [r7, #4] - 80110b2: 681b ldr r3, [r3, #0] - 80110b4: 2b00 cmp r3, #0 - 80110b6: d004 beq.n 80110c2 - 80110b8: 687b ldr r3, [r7, #4] - 80110ba: 681b ldr r3, [r3, #0] - 80110bc: 6839 ldr r1, [r7, #0] - 80110be: 6878 ldr r0, [r7, #4] - 80110c0: 4798 blx r3 + 801101c: 687b ldr r3, [r7, #4] + 801101e: 681b ldr r3, [r3, #0] + 8011020: 2b00 cmp r3, #0 + 8011022: d004 beq.n 801102e + 8011024: 687b ldr r3, [r7, #4] + 8011026: 681b ldr r3, [r3, #0] + 8011028: 6839 ldr r1, [r7, #0] + 801102a: 6878 ldr r0, [r7, #4] + 801102c: 4798 blx r3 } - 80110c2: bf00 nop - 80110c4: 3708 adds r7, #8 - 80110c6: 46bd mov sp, r7 - 80110c8: bd80 pop {r7, pc} + 801102e: bf00 nop + 8011030: 3708 adds r7, #8 + 8011032: 46bd mov sp, r7 + 8011034: bd80 pop {r7, pc} -080110ca : +08011036 : /********************** * GLOBAL FUNCTIONS **********************/ void lv_draw_init(void) { - 80110ca: b480 push {r7} - 80110cc: af00 add r7, sp, #0 + 8011036: b480 push {r7} + 8011038: af00 add r7, sp, #0 // lv_draw_sw_init(); // //#if LV_USE_GPU_STM32_DMA2D == 0 // lv_gpu_stm32_dma2d_init(); //#endif } - 80110ce: bf00 nop - 80110d0: 46bd mov sp, r7 - 80110d2: bc80 pop {r7} - 80110d4: 4770 bx lr + 801103a: bf00 nop + 801103c: 46bd mov sp, r7 + 801103e: bc80 pop {r7} + 8011040: 4770 bx lr -080110d6 : +08011042 : uint16_t bright = (uint16_t)(3u * LV_COLOR_GET_R32(c32) + LV_COLOR_GET_B32(c32) + 4u * LV_COLOR_GET_G32(c32)); return (uint8_t)(bright >> 3); } static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b) { - 80110d6: b490 push {r4, r7} - 80110d8: b082 sub sp, #8 - 80110da: af00 add r7, sp, #0 - 80110dc: 4604 mov r4, r0 - 80110de: 4608 mov r0, r1 - 80110e0: 4611 mov r1, r2 - 80110e2: 4622 mov r2, r4 - 80110e4: 71fa strb r2, [r7, #7] - 80110e6: 4602 mov r2, r0 - 80110e8: 71ba strb r2, [r7, #6] - 80110ea: 460a mov r2, r1 - 80110ec: 717a strb r2, [r7, #5] + 8011042: b490 push {r4, r7} + 8011044: b082 sub sp, #8 + 8011046: af00 add r7, sp, #0 + 8011048: 4604 mov r4, r0 + 801104a: 4608 mov r0, r1 + 801104c: 4611 mov r1, r2 + 801104e: 4622 mov r2, r4 + 8011050: 71fa strb r2, [r7, #7] + 8011052: 4602 mov r2, r0 + 8011054: 71ba strb r2, [r7, #6] + 8011056: 460a mov r2, r1 + 8011058: 717a strb r2, [r7, #5] return _LV_COLOR_MAKE_TYPE_HELPER LV_COLOR_MAKE(r, g, b); - 80110ee: 797a ldrb r2, [r7, #5] - 80110f0: 08d2 lsrs r2, r2, #3 - 80110f2: b2d2 uxtb r2, r2 - 80110f4: f002 021f and.w r2, r2, #31 - 80110f8: b2d0 uxtb r0, r2 - 80110fa: 79ba ldrb r2, [r7, #6] - 80110fc: 0892 lsrs r2, r2, #2 - 80110fe: b2d2 uxtb r2, r2 - 8011100: f002 023f and.w r2, r2, #63 ; 0x3f - 8011104: b2d1 uxtb r1, r2 - 8011106: 79fa ldrb r2, [r7, #7] - 8011108: 08d2 lsrs r2, r2, #3 - 801110a: b2d2 uxtb r2, r2 - 801110c: f002 021f and.w r2, r2, #31 - 8011110: b2d2 uxtb r2, r2 - 8011112: f360 0304 bfi r3, r0, #0, #5 - 8011116: f361 134a bfi r3, r1, #5, #6 - 801111a: f362 23cf bfi r3, r2, #11, #5 + 801105a: 797a ldrb r2, [r7, #5] + 801105c: 08d2 lsrs r2, r2, #3 + 801105e: b2d2 uxtb r2, r2 + 8011060: f002 021f and.w r2, r2, #31 + 8011064: b2d0 uxtb r0, r2 + 8011066: 79ba ldrb r2, [r7, #6] + 8011068: 0892 lsrs r2, r2, #2 + 801106a: b2d2 uxtb r2, r2 + 801106c: f002 023f and.w r2, r2, #63 ; 0x3f + 8011070: b2d1 uxtb r1, r2 + 8011072: 79fa ldrb r2, [r7, #7] + 8011074: 08d2 lsrs r2, r2, #3 + 8011076: b2d2 uxtb r2, r2 + 8011078: f002 021f and.w r2, r2, #31 + 801107c: b2d2 uxtb r2, r2 + 801107e: f360 0304 bfi r3, r0, #0, #5 + 8011082: f361 134a bfi r3, r1, #5, #6 + 8011086: f362 23cf bfi r3, r2, #11, #5 } - 801111e: 4618 mov r0, r3 - 8011120: 3708 adds r7, #8 - 8011122: 46bd mov sp, r7 - 8011124: bc90 pop {r4, r7} - 8011126: 4770 bx lr + 801108a: 4618 mov r0, r3 + 801108c: 3708 adds r7, #8 + 801108e: 46bd mov sp, r7 + 8011090: bc90 pop {r4, r7} + 8011092: 4770 bx lr -08011128 : +08011094 : static inline lv_color_t lv_color_white(void) { return lv_color_make(0xff, 0xff, 0xff); } static inline lv_color_t lv_color_black(void) { - 8011128: b580 push {r7, lr} - 801112a: af00 add r7, sp, #0 + 8011094: b580 push {r7, lr} + 8011096: af00 add r7, sp, #0 return lv_color_make(0x00, 0x0, 0x00); - 801112c: 2200 movs r2, #0 - 801112e: 2100 movs r1, #0 - 8011130: 2000 movs r0, #0 - 8011132: f7ff ffd0 bl 80110d6 - 8011136: 4603 mov r3, r0 + 8011098: 2200 movs r2, #0 + 801109a: 2100 movs r1, #0 + 801109c: 2000 movs r0, #0 + 801109e: f7ff ffd0 bl 8011042 + 80110a2: 4603 mov r3, r0 } - 8011138: 4618 mov r0, r3 - 801113a: bd80 pop {r7, pc} + 80110a4: 4618 mov r0, r3 + 80110a6: bd80 pop {r7, pc} -0801113c : +080110a8 : /********************** * GLOBAL FUNCTIONS **********************/ void lv_draw_arc_dsc_init(lv_draw_arc_dsc_t * dsc) { - 801113c: b590 push {r4, r7, lr} - 801113e: b083 sub sp, #12 - 8011140: af00 add r7, sp, #0 - 8011142: 6078 str r0, [r7, #4] + 80110a8: b590 push {r4, r7, lr} + 80110aa: b083 sub sp, #12 + 80110ac: af00 add r7, sp, #0 + 80110ae: 6078 str r0, [r7, #4] lv_memset_00(dsc, sizeof(lv_draw_arc_dsc_t)); - 8011144: 2110 movs r1, #16 - 8011146: 6878 ldr r0, [r7, #4] - 8011148: f022 f802 bl 8033150 + 80110b0: 2110 movs r1, #16 + 80110b2: 6878 ldr r0, [r7, #4] + 80110b4: f022 f802 bl 80330bc dsc->width = 1; - 801114c: 687b ldr r3, [r7, #4] - 801114e: 2201 movs r2, #1 - 8011150: 805a strh r2, [r3, #2] + 80110b8: 687b ldr r3, [r7, #4] + 80110ba: 2201 movs r2, #1 + 80110bc: 805a strh r2, [r3, #2] dsc->opa = LV_OPA_COVER; - 8011152: 687b ldr r3, [r7, #4] - 8011154: 22ff movs r2, #255 ; 0xff - 8011156: 731a strb r2, [r3, #12] + 80110be: 687b ldr r3, [r7, #4] + 80110c0: 22ff movs r2, #255 ; 0xff + 80110c2: 731a strb r2, [r3, #12] dsc->color = lv_color_black(); - 8011158: 687c ldr r4, [r7, #4] - 801115a: f7ff ffe5 bl 8011128 - 801115e: 8020 strh r0, [r4, #0] + 80110c4: 687c ldr r4, [r7, #4] + 80110c6: f7ff ffe5 bl 8011094 + 80110ca: 8020 strh r0, [r4, #0] } - 8011160: bf00 nop - 8011162: 370c adds r7, #12 - 8011164: 46bd mov sp, r7 - 8011166: bd90 pop {r4, r7, pc} + 80110cc: bf00 nop + 80110ce: 370c adds r7, #12 + 80110d0: 46bd mov sp, r7 + 80110d2: bd90 pop {r4, r7, pc} -08011168 : +080110d4 : void lv_draw_arc(lv_draw_ctx_t * draw_ctx, const lv_draw_arc_dsc_t * dsc, const lv_point_t * center, uint16_t radius, uint16_t start_angle, uint16_t end_angle) { - 8011168: b590 push {r4, r7, lr} - 801116a: b087 sub sp, #28 - 801116c: af02 add r7, sp, #8 - 801116e: 60f8 str r0, [r7, #12] - 8011170: 60b9 str r1, [r7, #8] - 8011172: 607a str r2, [r7, #4] - 8011174: 807b strh r3, [r7, #2] + 80110d4: b590 push {r4, r7, lr} + 80110d6: b087 sub sp, #28 + 80110d8: af02 add r7, sp, #8 + 80110da: 60f8 str r0, [r7, #12] + 80110dc: 60b9 str r1, [r7, #8] + 80110de: 607a str r2, [r7, #4] + 80110e0: 807b strh r3, [r7, #2] if(dsc->opa <= LV_OPA_MIN) return; - 8011176: 68bb ldr r3, [r7, #8] - 8011178: 7b1b ldrb r3, [r3, #12] - 801117a: 2b02 cmp r3, #2 - 801117c: d915 bls.n 80111aa + 80110e2: 68bb ldr r3, [r7, #8] + 80110e4: 7b1b ldrb r3, [r3, #12] + 80110e6: 2b02 cmp r3, #2 + 80110e8: d915 bls.n 8011116 if(dsc->width == 0) return; - 801117e: 68bb ldr r3, [r7, #8] - 8011180: f9b3 3002 ldrsh.w r3, [r3, #2] - 8011184: 2b00 cmp r3, #0 - 8011186: d012 beq.n 80111ae + 80110ea: 68bb ldr r3, [r7, #8] + 80110ec: f9b3 3002 ldrsh.w r3, [r3, #2] + 80110f0: 2b00 cmp r3, #0 + 80110f2: d012 beq.n 801111a if(start_angle == end_angle) return; - 8011188: 8c3a ldrh r2, [r7, #32] - 801118a: 8cbb ldrh r3, [r7, #36] ; 0x24 - 801118c: 429a cmp r2, r3 - 801118e: d010 beq.n 80111b2 + 80110f4: 8c3a ldrh r2, [r7, #32] + 80110f6: 8cbb ldrh r3, [r7, #36] ; 0x24 + 80110f8: 429a cmp r2, r3 + 80110fa: d010 beq.n 801111e draw_ctx->draw_arc(draw_ctx, dsc, center, radius, start_angle, end_angle); - 8011190: 68fb ldr r3, [r7, #12] - 8011192: 691c ldr r4, [r3, #16] - 8011194: 887a ldrh r2, [r7, #2] - 8011196: 8cbb ldrh r3, [r7, #36] ; 0x24 - 8011198: 9301 str r3, [sp, #4] - 801119a: 8c3b ldrh r3, [r7, #32] - 801119c: 9300 str r3, [sp, #0] - 801119e: 4613 mov r3, r2 - 80111a0: 687a ldr r2, [r7, #4] - 80111a2: 68b9 ldr r1, [r7, #8] - 80111a4: 68f8 ldr r0, [r7, #12] - 80111a6: 47a0 blx r4 - 80111a8: e004 b.n 80111b4 + 80110fc: 68fb ldr r3, [r7, #12] + 80110fe: 691c ldr r4, [r3, #16] + 8011100: 887a ldrh r2, [r7, #2] + 8011102: 8cbb ldrh r3, [r7, #36] ; 0x24 + 8011104: 9301 str r3, [sp, #4] + 8011106: 8c3b ldrh r3, [r7, #32] + 8011108: 9300 str r3, [sp, #0] + 801110a: 4613 mov r3, r2 + 801110c: 687a ldr r2, [r7, #4] + 801110e: 68b9 ldr r1, [r7, #8] + 8011110: 68f8 ldr r0, [r7, #12] + 8011112: 47a0 blx r4 + 8011114: e004 b.n 8011120 if(dsc->opa <= LV_OPA_MIN) return; - 80111aa: bf00 nop - 80111ac: e002 b.n 80111b4 + 8011116: bf00 nop + 8011118: e002 b.n 8011120 if(dsc->width == 0) return; - 80111ae: bf00 nop - 80111b0: e000 b.n 80111b4 + 801111a: bf00 nop + 801111c: e000 b.n 8011120 if(start_angle == end_angle) return; - 80111b2: bf00 nop + 801111e: bf00 nop // const lv_draw_backend_t * backend = lv_draw_backend_get(); // backend->draw_arc(center_x, center_y, radius, start_angle, end_angle, clip_area, dsc); } - 80111b4: 3714 adds r7, #20 - 80111b6: 46bd mov sp, r7 - 80111b8: bd90 pop {r4, r7, pc} + 8011120: 3714 adds r7, #20 + 8011122: 46bd mov sp, r7 + 8011124: bd90 pop {r4, r7, pc} ... -080111bc : +08011128 : void lv_draw_arc_get_area(lv_coord_t x, lv_coord_t y, uint16_t radius, uint16_t start_angle, uint16_t end_angle, lv_coord_t w, bool rounded, lv_area_t * area) { - 80111bc: b590 push {r4, r7, lr} - 80111be: b085 sub sp, #20 - 80111c0: af00 add r7, sp, #0 - 80111c2: 4604 mov r4, r0 - 80111c4: 4608 mov r0, r1 - 80111c6: 4611 mov r1, r2 - 80111c8: 461a mov r2, r3 - 80111ca: 4623 mov r3, r4 - 80111cc: 80fb strh r3, [r7, #6] - 80111ce: 4603 mov r3, r0 - 80111d0: 80bb strh r3, [r7, #4] - 80111d2: 460b mov r3, r1 - 80111d4: 807b strh r3, [r7, #2] - 80111d6: 4613 mov r3, r2 - 80111d8: 803b strh r3, [r7, #0] + 8011128: b590 push {r4, r7, lr} + 801112a: b085 sub sp, #20 + 801112c: af00 add r7, sp, #0 + 801112e: 4604 mov r4, r0 + 8011130: 4608 mov r0, r1 + 8011132: 4611 mov r1, r2 + 8011134: 461a mov r2, r3 + 8011136: 4623 mov r3, r4 + 8011138: 80fb strh r3, [r7, #6] + 801113a: 4603 mov r3, r0 + 801113c: 80bb strh r3, [r7, #4] + 801113e: 460b mov r3, r1 + 8011140: 807b strh r3, [r7, #2] + 8011142: 4613 mov r3, r2 + 8011144: 803b strh r3, [r7, #0] lv_coord_t rout = radius; - 80111da: 887b ldrh r3, [r7, #2] - 80111dc: 81bb strh r3, [r7, #12] + 8011146: 887b ldrh r3, [r7, #2] + 8011148: 81bb strh r3, [r7, #12] /*Special case: full arc invalidation */ if(end_angle == start_angle + 360) { - 80111de: 8c3a ldrh r2, [r7, #32] - 80111e0: 883b ldrh r3, [r7, #0] - 80111e2: f503 73b4 add.w r3, r3, #360 ; 0x168 - 80111e6: 429a cmp r2, r3 - 80111e8: d11c bne.n 8011224 + 801114a: 8c3a ldrh r2, [r7, #32] + 801114c: 883b ldrh r3, [r7, #0] + 801114e: f503 73b4 add.w r3, r3, #360 ; 0x168 + 8011152: 429a cmp r2, r3 + 8011154: d11c bne.n 8011190 area->x1 = x - rout; - 80111ea: 88fa ldrh r2, [r7, #6] - 80111ec: 89bb ldrh r3, [r7, #12] - 80111ee: 1ad3 subs r3, r2, r3 - 80111f0: b29b uxth r3, r3 - 80111f2: b21a sxth r2, r3 - 80111f4: 6afb ldr r3, [r7, #44] ; 0x2c - 80111f6: 801a strh r2, [r3, #0] + 8011156: 88fa ldrh r2, [r7, #6] + 8011158: 89bb ldrh r3, [r7, #12] + 801115a: 1ad3 subs r3, r2, r3 + 801115c: b29b uxth r3, r3 + 801115e: b21a sxth r2, r3 + 8011160: 6afb ldr r3, [r7, #44] ; 0x2c + 8011162: 801a strh r2, [r3, #0] area->y1 = y - rout; - 80111f8: 88ba ldrh r2, [r7, #4] - 80111fa: 89bb ldrh r3, [r7, #12] - 80111fc: 1ad3 subs r3, r2, r3 - 80111fe: b29b uxth r3, r3 - 8011200: b21a sxth r2, r3 - 8011202: 6afb ldr r3, [r7, #44] ; 0x2c - 8011204: 805a strh r2, [r3, #2] + 8011164: 88ba ldrh r2, [r7, #4] + 8011166: 89bb ldrh r3, [r7, #12] + 8011168: 1ad3 subs r3, r2, r3 + 801116a: b29b uxth r3, r3 + 801116c: b21a sxth r2, r3 + 801116e: 6afb ldr r3, [r7, #44] ; 0x2c + 8011170: 805a strh r2, [r3, #2] area->x2 = x + rout; - 8011206: 88fa ldrh r2, [r7, #6] - 8011208: 89bb ldrh r3, [r7, #12] - 801120a: 4413 add r3, r2 - 801120c: b29b uxth r3, r3 - 801120e: b21a sxth r2, r3 - 8011210: 6afb ldr r3, [r7, #44] ; 0x2c - 8011212: 809a strh r2, [r3, #4] + 8011172: 88fa ldrh r2, [r7, #6] + 8011174: 89bb ldrh r3, [r7, #12] + 8011176: 4413 add r3, r2 + 8011178: b29b uxth r3, r3 + 801117a: b21a sxth r2, r3 + 801117c: 6afb ldr r3, [r7, #44] ; 0x2c + 801117e: 809a strh r2, [r3, #4] area->y2 = y + rout; - 8011214: 88ba ldrh r2, [r7, #4] - 8011216: 89bb ldrh r3, [r7, #12] - 8011218: 4413 add r3, r2 - 801121a: b29b uxth r3, r3 - 801121c: b21a sxth r2, r3 - 801121e: 6afb ldr r3, [r7, #44] ; 0x2c - 8011220: 80da strh r2, [r3, #6] + 8011180: 88ba ldrh r2, [r7, #4] + 8011182: 89bb ldrh r3, [r7, #12] + 8011184: 4413 add r3, r2 + 8011186: b29b uxth r3, r3 + 8011188: b21a sxth r2, r3 + 801118a: 6afb ldr r3, [r7, #44] ; 0x2c + 801118c: 80da strh r2, [r3, #6] return; - 8011222: e3b9 b.n 8011998 + 801118e: e3b9 b.n 8011904 } if(start_angle > 360) start_angle -= 360; - 8011224: 883b ldrh r3, [r7, #0] - 8011226: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 801122a: d903 bls.n 8011234 - 801122c: 883b ldrh r3, [r7, #0] - 801122e: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 - 8011232: 803b strh r3, [r7, #0] + 8011190: 883b ldrh r3, [r7, #0] + 8011192: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 8011196: d903 bls.n 80111a0 + 8011198: 883b ldrh r3, [r7, #0] + 801119a: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 + 801119e: 803b strh r3, [r7, #0] if(end_angle > 360) end_angle -= 360; - 8011234: 8c3b ldrh r3, [r7, #32] - 8011236: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 801123a: d903 bls.n 8011244 - 801123c: 8c3b ldrh r3, [r7, #32] - 801123e: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 - 8011242: 843b strh r3, [r7, #32] + 80111a0: 8c3b ldrh r3, [r7, #32] + 80111a2: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 80111a6: d903 bls.n 80111b0 + 80111a8: 8c3b ldrh r3, [r7, #32] + 80111aa: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 + 80111ae: 843b strh r3, [r7, #32] lv_coord_t rin = radius - w; - 8011244: 8cbb ldrh r3, [r7, #36] ; 0x24 - 8011246: 887a ldrh r2, [r7, #2] - 8011248: 1ad3 subs r3, r2, r3 - 801124a: b29b uxth r3, r3 - 801124c: 817b strh r3, [r7, #10] + 80111b0: 8cbb ldrh r3, [r7, #36] ; 0x24 + 80111b2: 887a ldrh r2, [r7, #2] + 80111b4: 1ad3 subs r3, r2, r3 + 80111b6: b29b uxth r3, r3 + 80111b8: 817b strh r3, [r7, #10] lv_coord_t extra_area = rounded ? w / 2 + 1 : 0; - 801124e: f897 3028 ldrb.w r3, [r7, #40] ; 0x28 - 8011252: 2b00 cmp r3, #0 - 8011254: d00a beq.n 801126c - 8011256: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 - 801125a: 0fda lsrs r2, r3, #31 - 801125c: 4413 add r3, r2 - 801125e: 105b asrs r3, r3, #1 - 8011260: b21b sxth r3, r3 - 8011262: b29b uxth r3, r3 - 8011264: 3301 adds r3, #1 - 8011266: b29b uxth r3, r3 - 8011268: b21b sxth r3, r3 - 801126a: e000 b.n 801126e - 801126c: 2300 movs r3, #0 - 801126e: 813b strh r3, [r7, #8] + 80111ba: f897 3028 ldrb.w r3, [r7, #40] ; 0x28 + 80111be: 2b00 cmp r3, #0 + 80111c0: d00a beq.n 80111d8 + 80111c2: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 + 80111c6: 0fda lsrs r2, r3, #31 + 80111c8: 4413 add r3, r2 + 80111ca: 105b asrs r3, r3, #1 + 80111cc: b21b sxth r3, r3 + 80111ce: b29b uxth r3, r3 + 80111d0: 3301 adds r3, #1 + 80111d2: b29b uxth r3, r3 + 80111d4: b21b sxth r3, r3 + 80111d6: e000 b.n 80111da + 80111d8: 2300 movs r3, #0 + 80111da: 813b strh r3, [r7, #8] uint8_t start_quarter = start_angle / 90; - 8011270: 883b ldrh r3, [r7, #0] - 8011272: 085b lsrs r3, r3, #1 - 8011274: 4aa0 ldr r2, [pc, #640] ; (80114f8 ) - 8011276: fba2 2303 umull r2, r3, r2, r3 - 801127a: 095b lsrs r3, r3, #5 - 801127c: b29b uxth r3, r3 - 801127e: 73fb strb r3, [r7, #15] + 80111dc: 883b ldrh r3, [r7, #0] + 80111de: 085b lsrs r3, r3, #1 + 80111e0: 4aa0 ldr r2, [pc, #640] ; (8011464 ) + 80111e2: fba2 2303 umull r2, r3, r2, r3 + 80111e6: 095b lsrs r3, r3, #5 + 80111e8: b29b uxth r3, r3 + 80111ea: 73fb strb r3, [r7, #15] uint8_t end_quarter = end_angle / 90; - 8011280: 8c3b ldrh r3, [r7, #32] - 8011282: 085b lsrs r3, r3, #1 - 8011284: 4a9c ldr r2, [pc, #624] ; (80114f8 ) - 8011286: fba2 2303 umull r2, r3, r2, r3 - 801128a: 095b lsrs r3, r3, #5 - 801128c: b29b uxth r3, r3 - 801128e: 73bb strb r3, [r7, #14] + 80111ec: 8c3b ldrh r3, [r7, #32] + 80111ee: 085b lsrs r3, r3, #1 + 80111f0: 4a9c ldr r2, [pc, #624] ; (8011464 ) + 80111f2: fba2 2303 umull r2, r3, r2, r3 + 80111f6: 095b lsrs r3, r3, #5 + 80111f8: b29b uxth r3, r3 + 80111fa: 73bb strb r3, [r7, #14] /*360 deg still counts as quarter 3 (360 / 90 would be 4)*/ if(start_quarter == 4) start_quarter = 3; - 8011290: 7bfb ldrb r3, [r7, #15] - 8011292: 2b04 cmp r3, #4 - 8011294: d101 bne.n 801129a - 8011296: 2303 movs r3, #3 - 8011298: 73fb strb r3, [r7, #15] + 80111fc: 7bfb ldrb r3, [r7, #15] + 80111fe: 2b04 cmp r3, #4 + 8011200: d101 bne.n 8011206 + 8011202: 2303 movs r3, #3 + 8011204: 73fb strb r3, [r7, #15] if(end_quarter == 4) end_quarter = 3; - 801129a: 7bbb ldrb r3, [r7, #14] - 801129c: 2b04 cmp r3, #4 - 801129e: d101 bne.n 80112a4 - 80112a0: 2303 movs r3, #3 - 80112a2: 73bb strb r3, [r7, #14] + 8011206: 7bbb ldrb r3, [r7, #14] + 8011208: 2b04 cmp r3, #4 + 801120a: d101 bne.n 8011210 + 801120c: 2303 movs r3, #3 + 801120e: 73bb strb r3, [r7, #14] if(start_quarter == end_quarter && start_angle <= end_angle) { - 80112a4: 7bfa ldrb r2, [r7, #15] - 80112a6: 7bbb ldrb r3, [r7, #14] - 80112a8: 429a cmp r2, r3 - 80112aa: f040 8188 bne.w 80115be - 80112ae: 883a ldrh r2, [r7, #0] - 80112b0: 8c3b ldrh r3, [r7, #32] - 80112b2: 429a cmp r2, r3 - 80112b4: f200 8183 bhi.w 80115be + 8011210: 7bfa ldrb r2, [r7, #15] + 8011212: 7bbb ldrb r3, [r7, #14] + 8011214: 429a cmp r2, r3 + 8011216: f040 8188 bne.w 801152a + 801121a: 883a ldrh r2, [r7, #0] + 801121c: 8c3b ldrh r3, [r7, #32] + 801121e: 429a cmp r2, r3 + 8011220: f200 8183 bhi.w 801152a if(start_quarter == 0) { - 80112b8: 7bfb ldrb r3, [r7, #15] - 80112ba: 2b00 cmp r3, #0 - 80112bc: d15c bne.n 8011378 + 8011224: 7bfb ldrb r3, [r7, #15] + 8011226: 2b00 cmp r3, #0 + 8011228: d15c bne.n 80112e4 area->y1 = y + ((lv_trigo_sin(start_angle) * rin) >> LV_TRIGO_SHIFT) - extra_area; - 80112be: f9b7 3000 ldrsh.w r3, [r7] - 80112c2: 4618 mov r0, r3 - 80112c4: f021 f902 bl 80324cc - 80112c8: 4603 mov r3, r0 - 80112ca: 461a mov r2, r3 - 80112cc: f9b7 300a ldrsh.w r3, [r7, #10] - 80112d0: fb02 f303 mul.w r3, r2, r3 - 80112d4: 13db asrs r3, r3, #15 - 80112d6: b29a uxth r2, r3 - 80112d8: 88bb ldrh r3, [r7, #4] - 80112da: 4413 add r3, r2 - 80112dc: b29a uxth r2, r3 - 80112de: 893b ldrh r3, [r7, #8] - 80112e0: 1ad3 subs r3, r2, r3 - 80112e2: b29b uxth r3, r3 - 80112e4: b21a sxth r2, r3 - 80112e6: 6afb ldr r3, [r7, #44] ; 0x2c - 80112e8: 805a strh r2, [r3, #2] + 801122a: f9b7 3000 ldrsh.w r3, [r7] + 801122e: 4618 mov r0, r3 + 8011230: f021 f902 bl 8032438 + 8011234: 4603 mov r3, r0 + 8011236: 461a mov r2, r3 + 8011238: f9b7 300a ldrsh.w r3, [r7, #10] + 801123c: fb02 f303 mul.w r3, r2, r3 + 8011240: 13db asrs r3, r3, #15 + 8011242: b29a uxth r2, r3 + 8011244: 88bb ldrh r3, [r7, #4] + 8011246: 4413 add r3, r2 + 8011248: b29a uxth r2, r3 + 801124a: 893b ldrh r3, [r7, #8] + 801124c: 1ad3 subs r3, r2, r3 + 801124e: b29b uxth r3, r3 + 8011250: b21a sxth r2, r3 + 8011252: 6afb ldr r3, [r7, #44] ; 0x2c + 8011254: 805a strh r2, [r3, #2] area->x2 = x + ((lv_trigo_sin(start_angle + 90) * rout) >> LV_TRIGO_SHIFT) + extra_area; - 80112ea: 883b ldrh r3, [r7, #0] - 80112ec: 335a adds r3, #90 ; 0x5a - 80112ee: b29b uxth r3, r3 - 80112f0: b21b sxth r3, r3 - 80112f2: 4618 mov r0, r3 - 80112f4: f021 f8ea bl 80324cc - 80112f8: 4603 mov r3, r0 - 80112fa: 461a mov r2, r3 - 80112fc: f9b7 300c ldrsh.w r3, [r7, #12] - 8011300: fb02 f303 mul.w r3, r2, r3 - 8011304: 13db asrs r3, r3, #15 - 8011306: b29a uxth r2, r3 - 8011308: 88fb ldrh r3, [r7, #6] - 801130a: 4413 add r3, r2 - 801130c: b29a uxth r2, r3 - 801130e: 893b ldrh r3, [r7, #8] - 8011310: 4413 add r3, r2 - 8011312: b29b uxth r3, r3 - 8011314: b21a sxth r2, r3 - 8011316: 6afb ldr r3, [r7, #44] ; 0x2c - 8011318: 809a strh r2, [r3, #4] + 8011256: 883b ldrh r3, [r7, #0] + 8011258: 335a adds r3, #90 ; 0x5a + 801125a: b29b uxth r3, r3 + 801125c: b21b sxth r3, r3 + 801125e: 4618 mov r0, r3 + 8011260: f021 f8ea bl 8032438 + 8011264: 4603 mov r3, r0 + 8011266: 461a mov r2, r3 + 8011268: f9b7 300c ldrsh.w r3, [r7, #12] + 801126c: fb02 f303 mul.w r3, r2, r3 + 8011270: 13db asrs r3, r3, #15 + 8011272: b29a uxth r2, r3 + 8011274: 88fb ldrh r3, [r7, #6] + 8011276: 4413 add r3, r2 + 8011278: b29a uxth r2, r3 + 801127a: 893b ldrh r3, [r7, #8] + 801127c: 4413 add r3, r2 + 801127e: b29b uxth r3, r3 + 8011280: b21a sxth r2, r3 + 8011282: 6afb ldr r3, [r7, #44] ; 0x2c + 8011284: 809a strh r2, [r3, #4] area->y2 = y + ((lv_trigo_sin(end_angle) * rout) >> LV_TRIGO_SHIFT) + extra_area; - 801131a: f9b7 3020 ldrsh.w r3, [r7, #32] + 8011286: f9b7 3020 ldrsh.w r3, [r7, #32] + 801128a: 4618 mov r0, r3 + 801128c: f021 f8d4 bl 8032438 + 8011290: 4603 mov r3, r0 + 8011292: 461a mov r2, r3 + 8011294: f9b7 300c ldrsh.w r3, [r7, #12] + 8011298: fb02 f303 mul.w r3, r2, r3 + 801129c: 13db asrs r3, r3, #15 + 801129e: b29a uxth r2, r3 + 80112a0: 88bb ldrh r3, [r7, #4] + 80112a2: 4413 add r3, r2 + 80112a4: b29a uxth r2, r3 + 80112a6: 893b ldrh r3, [r7, #8] + 80112a8: 4413 add r3, r2 + 80112aa: b29b uxth r3, r3 + 80112ac: b21a sxth r2, r3 + 80112ae: 6afb ldr r3, [r7, #44] ; 0x2c + 80112b0: 80da strh r2, [r3, #6] + area->x1 = x + ((lv_trigo_sin(end_angle + 90) * rin) >> LV_TRIGO_SHIFT) - extra_area; + 80112b2: 8c3b ldrh r3, [r7, #32] + 80112b4: 335a adds r3, #90 ; 0x5a + 80112b6: b29b uxth r3, r3 + 80112b8: b21b sxth r3, r3 + 80112ba: 4618 mov r0, r3 + 80112bc: f021 f8bc bl 8032438 + 80112c0: 4603 mov r3, r0 + 80112c2: 461a mov r2, r3 + 80112c4: f9b7 300a ldrsh.w r3, [r7, #10] + 80112c8: fb02 f303 mul.w r3, r2, r3 + 80112cc: 13db asrs r3, r3, #15 + 80112ce: b29a uxth r2, r3 + 80112d0: 88fb ldrh r3, [r7, #6] + 80112d2: 4413 add r3, r2 + 80112d4: b29a uxth r2, r3 + 80112d6: 893b ldrh r3, [r7, #8] + 80112d8: 1ad3 subs r3, r2, r3 + 80112da: b29b uxth r3, r3 + 80112dc: b21a sxth r2, r3 + 80112de: 6afb ldr r3, [r7, #44] ; 0x2c + 80112e0: 801a strh r2, [r3, #0] + if(start_quarter == 0) { + 80112e2: e30e b.n 8011902 + } + else if(start_quarter == 1) { + 80112e4: 7bfb ldrb r3, [r7, #15] + 80112e6: 2b01 cmp r3, #1 + 80112e8: d15c bne.n 80113a4 + area->y2 = y + ((lv_trigo_sin(start_angle) * rout) >> LV_TRIGO_SHIFT) + extra_area; + 80112ea: f9b7 3000 ldrsh.w r3, [r7] + 80112ee: 4618 mov r0, r3 + 80112f0: f021 f8a2 bl 8032438 + 80112f4: 4603 mov r3, r0 + 80112f6: 461a mov r2, r3 + 80112f8: f9b7 300c ldrsh.w r3, [r7, #12] + 80112fc: fb02 f303 mul.w r3, r2, r3 + 8011300: 13db asrs r3, r3, #15 + 8011302: b29a uxth r2, r3 + 8011304: 88bb ldrh r3, [r7, #4] + 8011306: 4413 add r3, r2 + 8011308: b29a uxth r2, r3 + 801130a: 893b ldrh r3, [r7, #8] + 801130c: 4413 add r3, r2 + 801130e: b29b uxth r3, r3 + 8011310: b21a sxth r2, r3 + 8011312: 6afb ldr r3, [r7, #44] ; 0x2c + 8011314: 80da strh r2, [r3, #6] + area->x2 = x + ((lv_trigo_sin(start_angle + 90) * rin) >> LV_TRIGO_SHIFT) + extra_area; + 8011316: 883b ldrh r3, [r7, #0] + 8011318: 335a adds r3, #90 ; 0x5a + 801131a: b29b uxth r3, r3 + 801131c: b21b sxth r3, r3 801131e: 4618 mov r0, r3 - 8011320: f021 f8d4 bl 80324cc + 8011320: f021 f88a bl 8032438 8011324: 4603 mov r3, r0 8011326: 461a mov r2, r3 - 8011328: f9b7 300c ldrsh.w r3, [r7, #12] + 8011328: f9b7 300a ldrsh.w r3, [r7, #10] 801132c: fb02 f303 mul.w r3, r2, r3 8011330: 13db asrs r3, r3, #15 8011332: b29a uxth r2, r3 - 8011334: 88bb ldrh r3, [r7, #4] + 8011334: 88fb ldrh r3, [r7, #6] 8011336: 4413 add r3, r2 8011338: b29a uxth r2, r3 801133a: 893b ldrh r3, [r7, #8] @@ -41400,65 +41391,66 @@ void lv_draw_arc_get_area(lv_coord_t x, lv_coord_t y, uint16_t radius, uint16_t 801133e: b29b uxth r3, r3 8011340: b21a sxth r2, r3 8011342: 6afb ldr r3, [r7, #44] ; 0x2c - 8011344: 80da strh r2, [r3, #6] - area->x1 = x + ((lv_trigo_sin(end_angle + 90) * rin) >> LV_TRIGO_SHIFT) - extra_area; - 8011346: 8c3b ldrh r3, [r7, #32] - 8011348: 335a adds r3, #90 ; 0x5a - 801134a: b29b uxth r3, r3 - 801134c: b21b sxth r3, r3 - 801134e: 4618 mov r0, r3 - 8011350: f021 f8bc bl 80324cc - 8011354: 4603 mov r3, r0 - 8011356: 461a mov r2, r3 - 8011358: f9b7 300a ldrsh.w r3, [r7, #10] - 801135c: fb02 f303 mul.w r3, r2, r3 - 8011360: 13db asrs r3, r3, #15 - 8011362: b29a uxth r2, r3 - 8011364: 88fb ldrh r3, [r7, #6] - 8011366: 4413 add r3, r2 - 8011368: b29a uxth r2, r3 - 801136a: 893b ldrh r3, [r7, #8] - 801136c: 1ad3 subs r3, r2, r3 - 801136e: b29b uxth r3, r3 - 8011370: b21a sxth r2, r3 - 8011372: 6afb ldr r3, [r7, #44] ; 0x2c - 8011374: 801a strh r2, [r3, #0] + 8011344: 809a strh r2, [r3, #4] + + area->y1 = y + ((lv_trigo_sin(end_angle) * rin) >> LV_TRIGO_SHIFT) - extra_area; + 8011346: f9b7 3020 ldrsh.w r3, [r7, #32] + 801134a: 4618 mov r0, r3 + 801134c: f021 f874 bl 8032438 + 8011350: 4603 mov r3, r0 + 8011352: 461a mov r2, r3 + 8011354: f9b7 300a ldrsh.w r3, [r7, #10] + 8011358: fb02 f303 mul.w r3, r2, r3 + 801135c: 13db asrs r3, r3, #15 + 801135e: b29a uxth r2, r3 + 8011360: 88bb ldrh r3, [r7, #4] + 8011362: 4413 add r3, r2 + 8011364: b29a uxth r2, r3 + 8011366: 893b ldrh r3, [r7, #8] + 8011368: 1ad3 subs r3, r2, r3 + 801136a: b29b uxth r3, r3 + 801136c: b21a sxth r2, r3 + 801136e: 6afb ldr r3, [r7, #44] ; 0x2c + 8011370: 805a strh r2, [r3, #2] + area->x1 = x + ((lv_trigo_sin(end_angle + 90) * rout) >> LV_TRIGO_SHIFT) - extra_area; + 8011372: 8c3b ldrh r3, [r7, #32] + 8011374: 335a adds r3, #90 ; 0x5a + 8011376: b29b uxth r3, r3 + 8011378: b21b sxth r3, r3 + 801137a: 4618 mov r0, r3 + 801137c: f021 f85c bl 8032438 + 8011380: 4603 mov r3, r0 + 8011382: 461a mov r2, r3 + 8011384: f9b7 300c ldrsh.w r3, [r7, #12] + 8011388: fb02 f303 mul.w r3, r2, r3 + 801138c: 13db asrs r3, r3, #15 + 801138e: b29a uxth r2, r3 + 8011390: 88fb ldrh r3, [r7, #6] + 8011392: 4413 add r3, r2 + 8011394: b29a uxth r2, r3 + 8011396: 893b ldrh r3, [r7, #8] + 8011398: 1ad3 subs r3, r2, r3 + 801139a: b29b uxth r3, r3 + 801139c: b21a sxth r2, r3 + 801139e: 6afb ldr r3, [r7, #44] ; 0x2c + 80113a0: 801a strh r2, [r3, #0] if(start_quarter == 0) { - 8011376: e30e b.n 8011996 + 80113a2: e2ae b.n 8011902 } - else if(start_quarter == 1) { - 8011378: 7bfb ldrb r3, [r7, #15] - 801137a: 2b01 cmp r3, #1 - 801137c: d15c bne.n 8011438 - area->y2 = y + ((lv_trigo_sin(start_angle) * rout) >> LV_TRIGO_SHIFT) + extra_area; - 801137e: f9b7 3000 ldrsh.w r3, [r7] - 8011382: 4618 mov r0, r3 - 8011384: f021 f8a2 bl 80324cc - 8011388: 4603 mov r3, r0 - 801138a: 461a mov r2, r3 - 801138c: f9b7 300c ldrsh.w r3, [r7, #12] - 8011390: fb02 f303 mul.w r3, r2, r3 - 8011394: 13db asrs r3, r3, #15 - 8011396: b29a uxth r2, r3 - 8011398: 88bb ldrh r3, [r7, #4] - 801139a: 4413 add r3, r2 - 801139c: b29a uxth r2, r3 - 801139e: 893b ldrh r3, [r7, #8] - 80113a0: 4413 add r3, r2 - 80113a2: b29b uxth r3, r3 - 80113a4: b21a sxth r2, r3 - 80113a6: 6afb ldr r3, [r7, #44] ; 0x2c - 80113a8: 80da strh r2, [r3, #6] - area->x2 = x + ((lv_trigo_sin(start_angle + 90) * rin) >> LV_TRIGO_SHIFT) + extra_area; + else if(start_quarter == 2) { + 80113a4: 7bfb ldrb r3, [r7, #15] + 80113a6: 2b02 cmp r3, #2 + 80113a8: d15e bne.n 8011468 + area->x1 = x + ((lv_trigo_sin(start_angle + 90) * rout) >> LV_TRIGO_SHIFT) - extra_area; 80113aa: 883b ldrh r3, [r7, #0] 80113ac: 335a adds r3, #90 ; 0x5a 80113ae: b29b uxth r3, r3 80113b0: b21b sxth r3, r3 80113b2: 4618 mov r0, r3 - 80113b4: f021 f88a bl 80324cc + 80113b4: f021 f840 bl 8032438 80113b8: 4603 mov r3, r0 80113ba: 461a mov r2, r3 - 80113bc: f9b7 300a ldrsh.w r3, [r7, #10] + 80113bc: f9b7 300c ldrsh.w r3, [r7, #12] 80113c0: fb02 f303 mul.w r3, r2, r3 80113c4: 13db asrs r3, r3, #15 80113c6: b29a uxth r2, r3 @@ -41466,16 +41458,15 @@ void lv_draw_arc_get_area(lv_coord_t x, lv_coord_t y, uint16_t radius, uint16_t 80113ca: 4413 add r3, r2 80113cc: b29a uxth r2, r3 80113ce: 893b ldrh r3, [r7, #8] - 80113d0: 4413 add r3, r2 + 80113d0: 1ad3 subs r3, r2, r3 80113d2: b29b uxth r3, r3 80113d4: b21a sxth r2, r3 80113d6: 6afb ldr r3, [r7, #44] ; 0x2c - 80113d8: 809a strh r2, [r3, #4] - - area->y1 = y + ((lv_trigo_sin(end_angle) * rin) >> LV_TRIGO_SHIFT) - extra_area; - 80113da: f9b7 3020 ldrsh.w r3, [r7, #32] + 80113d8: 801a strh r2, [r3, #0] + area->y2 = y + ((lv_trigo_sin(start_angle) * rin) >> LV_TRIGO_SHIFT) + extra_area; + 80113da: f9b7 3000 ldrsh.w r3, [r7] 80113de: 4618 mov r0, r3 - 80113e0: f021 f874 bl 80324cc + 80113e0: f021 f82a bl 8032438 80113e4: 4603 mov r3, r0 80113e6: 461a mov r2, r3 80113e8: f9b7 300a ldrsh.w r3, [r7, #10] @@ -41486,15728 +41477,15730 @@ void lv_draw_arc_get_area(lv_coord_t x, lv_coord_t y, uint16_t radius, uint16_t 80113f6: 4413 add r3, r2 80113f8: b29a uxth r2, r3 80113fa: 893b ldrh r3, [r7, #8] - 80113fc: 1ad3 subs r3, r2, r3 + 80113fc: 4413 add r3, r2 80113fe: b29b uxth r3, r3 8011400: b21a sxth r2, r3 8011402: 6afb ldr r3, [r7, #44] ; 0x2c - 8011404: 805a strh r2, [r3, #2] - area->x1 = x + ((lv_trigo_sin(end_angle + 90) * rout) >> LV_TRIGO_SHIFT) - extra_area; - 8011406: 8c3b ldrh r3, [r7, #32] - 8011408: 335a adds r3, #90 ; 0x5a - 801140a: b29b uxth r3, r3 - 801140c: b21b sxth r3, r3 - 801140e: 4618 mov r0, r3 - 8011410: f021 f85c bl 80324cc - 8011414: 4603 mov r3, r0 - 8011416: 461a mov r2, r3 - 8011418: f9b7 300c ldrsh.w r3, [r7, #12] - 801141c: fb02 f303 mul.w r3, r2, r3 - 8011420: 13db asrs r3, r3, #15 - 8011422: b29a uxth r2, r3 - 8011424: 88fb ldrh r3, [r7, #6] - 8011426: 4413 add r3, r2 - 8011428: b29a uxth r2, r3 - 801142a: 893b ldrh r3, [r7, #8] - 801142c: 1ad3 subs r3, r2, r3 - 801142e: b29b uxth r3, r3 - 8011430: b21a sxth r2, r3 - 8011432: 6afb ldr r3, [r7, #44] ; 0x2c - 8011434: 801a strh r2, [r3, #0] - if(start_quarter == 0) { - 8011436: e2ae b.n 8011996 - } - else if(start_quarter == 2) { - 8011438: 7bfb ldrb r3, [r7, #15] - 801143a: 2b02 cmp r3, #2 - 801143c: d15e bne.n 80114fc - area->x1 = x + ((lv_trigo_sin(start_angle + 90) * rout) >> LV_TRIGO_SHIFT) - extra_area; - 801143e: 883b ldrh r3, [r7, #0] - 8011440: 335a adds r3, #90 ; 0x5a - 8011442: b29b uxth r3, r3 - 8011444: b21b sxth r3, r3 - 8011446: 4618 mov r0, r3 - 8011448: f021 f840 bl 80324cc - 801144c: 4603 mov r3, r0 - 801144e: 461a mov r2, r3 - 8011450: f9b7 300c ldrsh.w r3, [r7, #12] - 8011454: fb02 f303 mul.w r3, r2, r3 - 8011458: 13db asrs r3, r3, #15 - 801145a: b29a uxth r2, r3 - 801145c: 88fb ldrh r3, [r7, #6] - 801145e: 4413 add r3, r2 - 8011460: b29a uxth r2, r3 - 8011462: 893b ldrh r3, [r7, #8] - 8011464: 1ad3 subs r3, r2, r3 - 8011466: b29b uxth r3, r3 - 8011468: b21a sxth r2, r3 - 801146a: 6afb ldr r3, [r7, #44] ; 0x2c - 801146c: 801a strh r2, [r3, #0] - area->y2 = y + ((lv_trigo_sin(start_angle) * rin) >> LV_TRIGO_SHIFT) + extra_area; - 801146e: f9b7 3000 ldrsh.w r3, [r7] - 8011472: 4618 mov r0, r3 - 8011474: f021 f82a bl 80324cc - 8011478: 4603 mov r3, r0 - 801147a: 461a mov r2, r3 - 801147c: f9b7 300a ldrsh.w r3, [r7, #10] - 8011480: fb02 f303 mul.w r3, r2, r3 - 8011484: 13db asrs r3, r3, #15 - 8011486: b29a uxth r2, r3 - 8011488: 88bb ldrh r3, [r7, #4] - 801148a: 4413 add r3, r2 - 801148c: b29a uxth r2, r3 - 801148e: 893b ldrh r3, [r7, #8] - 8011490: 4413 add r3, r2 - 8011492: b29b uxth r3, r3 - 8011494: b21a sxth r2, r3 - 8011496: 6afb ldr r3, [r7, #44] ; 0x2c - 8011498: 80da strh r2, [r3, #6] + 8011404: 80da strh r2, [r3, #6] area->y1 = y + ((lv_trigo_sin(end_angle) * rout) >> LV_TRIGO_SHIFT) - extra_area; - 801149a: f9b7 3020 ldrsh.w r3, [r7, #32] - 801149e: 4618 mov r0, r3 - 80114a0: f021 f814 bl 80324cc - 80114a4: 4603 mov r3, r0 - 80114a6: 461a mov r2, r3 - 80114a8: f9b7 300c ldrsh.w r3, [r7, #12] - 80114ac: fb02 f303 mul.w r3, r2, r3 - 80114b0: 13db asrs r3, r3, #15 - 80114b2: b29a uxth r2, r3 - 80114b4: 88bb ldrh r3, [r7, #4] - 80114b6: 4413 add r3, r2 - 80114b8: b29a uxth r2, r3 - 80114ba: 893b ldrh r3, [r7, #8] - 80114bc: 1ad3 subs r3, r2, r3 - 80114be: b29b uxth r3, r3 - 80114c0: b21a sxth r2, r3 - 80114c2: 6afb ldr r3, [r7, #44] ; 0x2c - 80114c4: 805a strh r2, [r3, #2] + 8011406: f9b7 3020 ldrsh.w r3, [r7, #32] + 801140a: 4618 mov r0, r3 + 801140c: f021 f814 bl 8032438 + 8011410: 4603 mov r3, r0 + 8011412: 461a mov r2, r3 + 8011414: f9b7 300c ldrsh.w r3, [r7, #12] + 8011418: fb02 f303 mul.w r3, r2, r3 + 801141c: 13db asrs r3, r3, #15 + 801141e: b29a uxth r2, r3 + 8011420: 88bb ldrh r3, [r7, #4] + 8011422: 4413 add r3, r2 + 8011424: b29a uxth r2, r3 + 8011426: 893b ldrh r3, [r7, #8] + 8011428: 1ad3 subs r3, r2, r3 + 801142a: b29b uxth r3, r3 + 801142c: b21a sxth r2, r3 + 801142e: 6afb ldr r3, [r7, #44] ; 0x2c + 8011430: 805a strh r2, [r3, #2] area->x2 = x + ((lv_trigo_sin(end_angle + 90) * rin) >> LV_TRIGO_SHIFT) + extra_area; - 80114c6: 8c3b ldrh r3, [r7, #32] - 80114c8: 335a adds r3, #90 ; 0x5a - 80114ca: b29b uxth r3, r3 - 80114cc: b21b sxth r3, r3 - 80114ce: 4618 mov r0, r3 - 80114d0: f020 fffc bl 80324cc - 80114d4: 4603 mov r3, r0 - 80114d6: 461a mov r2, r3 - 80114d8: f9b7 300a ldrsh.w r3, [r7, #10] - 80114dc: fb02 f303 mul.w r3, r2, r3 - 80114e0: 13db asrs r3, r3, #15 - 80114e2: b29a uxth r2, r3 - 80114e4: 88fb ldrh r3, [r7, #6] - 80114e6: 4413 add r3, r2 - 80114e8: b29a uxth r2, r3 - 80114ea: 893b ldrh r3, [r7, #8] - 80114ec: 4413 add r3, r2 - 80114ee: b29b uxth r3, r3 - 80114f0: b21a sxth r2, r3 - 80114f2: 6afb ldr r3, [r7, #44] ; 0x2c - 80114f4: 809a strh r2, [r3, #4] + 8011432: 8c3b ldrh r3, [r7, #32] + 8011434: 335a adds r3, #90 ; 0x5a + 8011436: b29b uxth r3, r3 + 8011438: b21b sxth r3, r3 + 801143a: 4618 mov r0, r3 + 801143c: f020 fffc bl 8032438 + 8011440: 4603 mov r3, r0 + 8011442: 461a mov r2, r3 + 8011444: f9b7 300a ldrsh.w r3, [r7, #10] + 8011448: fb02 f303 mul.w r3, r2, r3 + 801144c: 13db asrs r3, r3, #15 + 801144e: b29a uxth r2, r3 + 8011450: 88fb ldrh r3, [r7, #6] + 8011452: 4413 add r3, r2 + 8011454: b29a uxth r2, r3 + 8011456: 893b ldrh r3, [r7, #8] + 8011458: 4413 add r3, r2 + 801145a: b29b uxth r3, r3 + 801145c: b21a sxth r2, r3 + 801145e: 6afb ldr r3, [r7, #44] ; 0x2c + 8011460: 809a strh r2, [r3, #4] if(start_quarter == 0) { - 80114f6: e24e b.n 8011996 - 80114f8: b60b60b7 .word 0xb60b60b7 + 8011462: e24e b.n 8011902 + 8011464: b60b60b7 .word 0xb60b60b7 } else if(start_quarter == 3) { - 80114fc: 7bfb ldrb r3, [r7, #15] - 80114fe: 2b03 cmp r3, #3 - 8011500: f040 8249 bne.w 8011996 + 8011468: 7bfb ldrb r3, [r7, #15] + 801146a: 2b03 cmp r3, #3 + 801146c: f040 8249 bne.w 8011902 area->x1 = x + ((lv_trigo_sin(start_angle + 90) * rin) >> LV_TRIGO_SHIFT) - extra_area; - 8011504: 883b ldrh r3, [r7, #0] - 8011506: 335a adds r3, #90 ; 0x5a - 8011508: b29b uxth r3, r3 - 801150a: b21b sxth r3, r3 - 801150c: 4618 mov r0, r3 - 801150e: f020 ffdd bl 80324cc - 8011512: 4603 mov r3, r0 - 8011514: 461a mov r2, r3 - 8011516: f9b7 300a ldrsh.w r3, [r7, #10] - 801151a: fb02 f303 mul.w r3, r2, r3 - 801151e: 13db asrs r3, r3, #15 - 8011520: b29a uxth r2, r3 - 8011522: 88fb ldrh r3, [r7, #6] - 8011524: 4413 add r3, r2 - 8011526: b29a uxth r2, r3 - 8011528: 893b ldrh r3, [r7, #8] - 801152a: 1ad3 subs r3, r2, r3 - 801152c: b29b uxth r3, r3 - 801152e: b21a sxth r2, r3 - 8011530: 6afb ldr r3, [r7, #44] ; 0x2c - 8011532: 801a strh r2, [r3, #0] + 8011470: 883b ldrh r3, [r7, #0] + 8011472: 335a adds r3, #90 ; 0x5a + 8011474: b29b uxth r3, r3 + 8011476: b21b sxth r3, r3 + 8011478: 4618 mov r0, r3 + 801147a: f020 ffdd bl 8032438 + 801147e: 4603 mov r3, r0 + 8011480: 461a mov r2, r3 + 8011482: f9b7 300a ldrsh.w r3, [r7, #10] + 8011486: fb02 f303 mul.w r3, r2, r3 + 801148a: 13db asrs r3, r3, #15 + 801148c: b29a uxth r2, r3 + 801148e: 88fb ldrh r3, [r7, #6] + 8011490: 4413 add r3, r2 + 8011492: b29a uxth r2, r3 + 8011494: 893b ldrh r3, [r7, #8] + 8011496: 1ad3 subs r3, r2, r3 + 8011498: b29b uxth r3, r3 + 801149a: b21a sxth r2, r3 + 801149c: 6afb ldr r3, [r7, #44] ; 0x2c + 801149e: 801a strh r2, [r3, #0] area->y1 = y + ((lv_trigo_sin(start_angle) * rout) >> LV_TRIGO_SHIFT) - extra_area; - 8011534: f9b7 3000 ldrsh.w r3, [r7] - 8011538: 4618 mov r0, r3 - 801153a: f020 ffc7 bl 80324cc - 801153e: 4603 mov r3, r0 - 8011540: 461a mov r2, r3 - 8011542: f9b7 300c ldrsh.w r3, [r7, #12] - 8011546: fb02 f303 mul.w r3, r2, r3 - 801154a: 13db asrs r3, r3, #15 - 801154c: b29a uxth r2, r3 - 801154e: 88bb ldrh r3, [r7, #4] - 8011550: 4413 add r3, r2 - 8011552: b29a uxth r2, r3 - 8011554: 893b ldrh r3, [r7, #8] - 8011556: 1ad3 subs r3, r2, r3 - 8011558: b29b uxth r3, r3 - 801155a: b21a sxth r2, r3 - 801155c: 6afb ldr r3, [r7, #44] ; 0x2c - 801155e: 805a strh r2, [r3, #2] + 80114a0: f9b7 3000 ldrsh.w r3, [r7] + 80114a4: 4618 mov r0, r3 + 80114a6: f020 ffc7 bl 8032438 + 80114aa: 4603 mov r3, r0 + 80114ac: 461a mov r2, r3 + 80114ae: f9b7 300c ldrsh.w r3, [r7, #12] + 80114b2: fb02 f303 mul.w r3, r2, r3 + 80114b6: 13db asrs r3, r3, #15 + 80114b8: b29a uxth r2, r3 + 80114ba: 88bb ldrh r3, [r7, #4] + 80114bc: 4413 add r3, r2 + 80114be: b29a uxth r2, r3 + 80114c0: 893b ldrh r3, [r7, #8] + 80114c2: 1ad3 subs r3, r2, r3 + 80114c4: b29b uxth r3, r3 + 80114c6: b21a sxth r2, r3 + 80114c8: 6afb ldr r3, [r7, #44] ; 0x2c + 80114ca: 805a strh r2, [r3, #2] area->x2 = x + ((lv_trigo_sin(end_angle + 90) * rout) >> LV_TRIGO_SHIFT) + extra_area; - 8011560: 8c3b ldrh r3, [r7, #32] - 8011562: 335a adds r3, #90 ; 0x5a - 8011564: b29b uxth r3, r3 - 8011566: b21b sxth r3, r3 - 8011568: 4618 mov r0, r3 - 801156a: f020 ffaf bl 80324cc - 801156e: 4603 mov r3, r0 - 8011570: 461a mov r2, r3 - 8011572: f9b7 300c ldrsh.w r3, [r7, #12] - 8011576: fb02 f303 mul.w r3, r2, r3 - 801157a: 13db asrs r3, r3, #15 - 801157c: b29a uxth r2, r3 - 801157e: 88fb ldrh r3, [r7, #6] - 8011580: 4413 add r3, r2 - 8011582: b29a uxth r2, r3 - 8011584: 893b ldrh r3, [r7, #8] - 8011586: 4413 add r3, r2 - 8011588: b29b uxth r3, r3 - 801158a: b21a sxth r2, r3 - 801158c: 6afb ldr r3, [r7, #44] ; 0x2c - 801158e: 809a strh r2, [r3, #4] + 80114cc: 8c3b ldrh r3, [r7, #32] + 80114ce: 335a adds r3, #90 ; 0x5a + 80114d0: b29b uxth r3, r3 + 80114d2: b21b sxth r3, r3 + 80114d4: 4618 mov r0, r3 + 80114d6: f020 ffaf bl 8032438 + 80114da: 4603 mov r3, r0 + 80114dc: 461a mov r2, r3 + 80114de: f9b7 300c ldrsh.w r3, [r7, #12] + 80114e2: fb02 f303 mul.w r3, r2, r3 + 80114e6: 13db asrs r3, r3, #15 + 80114e8: b29a uxth r2, r3 + 80114ea: 88fb ldrh r3, [r7, #6] + 80114ec: 4413 add r3, r2 + 80114ee: b29a uxth r2, r3 + 80114f0: 893b ldrh r3, [r7, #8] + 80114f2: 4413 add r3, r2 + 80114f4: b29b uxth r3, r3 + 80114f6: b21a sxth r2, r3 + 80114f8: 6afb ldr r3, [r7, #44] ; 0x2c + 80114fa: 809a strh r2, [r3, #4] area->y2 = y + ((lv_trigo_sin(end_angle) * rin) >> LV_TRIGO_SHIFT) + extra_area; - 8011590: f9b7 3020 ldrsh.w r3, [r7, #32] - 8011594: 4618 mov r0, r3 - 8011596: f020 ff99 bl 80324cc - 801159a: 4603 mov r3, r0 - 801159c: 461a mov r2, r3 - 801159e: f9b7 300a ldrsh.w r3, [r7, #10] - 80115a2: fb02 f303 mul.w r3, r2, r3 - 80115a6: 13db asrs r3, r3, #15 - 80115a8: b29a uxth r2, r3 - 80115aa: 88bb ldrh r3, [r7, #4] - 80115ac: 4413 add r3, r2 - 80115ae: b29a uxth r2, r3 - 80115b0: 893b ldrh r3, [r7, #8] - 80115b2: 4413 add r3, r2 - 80115b4: b29b uxth r3, r3 - 80115b6: b21a sxth r2, r3 - 80115b8: 6afb ldr r3, [r7, #44] ; 0x2c - 80115ba: 80da strh r2, [r3, #6] + 80114fc: f9b7 3020 ldrsh.w r3, [r7, #32] + 8011500: 4618 mov r0, r3 + 8011502: f020 ff99 bl 8032438 + 8011506: 4603 mov r3, r0 + 8011508: 461a mov r2, r3 + 801150a: f9b7 300a ldrsh.w r3, [r7, #10] + 801150e: fb02 f303 mul.w r3, r2, r3 + 8011512: 13db asrs r3, r3, #15 + 8011514: b29a uxth r2, r3 + 8011516: 88bb ldrh r3, [r7, #4] + 8011518: 4413 add r3, r2 + 801151a: b29a uxth r2, r3 + 801151c: 893b ldrh r3, [r7, #8] + 801151e: 4413 add r3, r2 + 8011520: b29b uxth r3, r3 + 8011522: b21a sxth r2, r3 + 8011524: 6afb ldr r3, [r7, #44] ; 0x2c + 8011526: 80da strh r2, [r3, #6] if(start_quarter == 0) { - 80115bc: e1eb b.n 8011996 + 8011528: e1eb b.n 8011902 } } else if(start_quarter == 0 && end_quarter == 1) { - 80115be: 7bfb ldrb r3, [r7, #15] - 80115c0: 2b00 cmp r3, #0 - 80115c2: d16a bne.n 801169a - 80115c4: 7bbb ldrb r3, [r7, #14] - 80115c6: 2b01 cmp r3, #1 - 80115c8: d167 bne.n 801169a + 801152a: 7bfb ldrb r3, [r7, #15] + 801152c: 2b00 cmp r3, #0 + 801152e: d16a bne.n 8011606 + 8011530: 7bbb ldrb r3, [r7, #14] + 8011532: 2b01 cmp r3, #1 + 8011534: d167 bne.n 8011606 area->x1 = x + ((lv_trigo_sin(end_angle + 90) * rout) >> LV_TRIGO_SHIFT) - extra_area; - 80115ca: 8c3b ldrh r3, [r7, #32] - 80115cc: 335a adds r3, #90 ; 0x5a - 80115ce: b29b uxth r3, r3 - 80115d0: b21b sxth r3, r3 - 80115d2: 4618 mov r0, r3 - 80115d4: f020 ff7a bl 80324cc - 80115d8: 4603 mov r3, r0 - 80115da: 461a mov r2, r3 - 80115dc: f9b7 300c ldrsh.w r3, [r7, #12] - 80115e0: fb02 f303 mul.w r3, r2, r3 - 80115e4: 13db asrs r3, r3, #15 - 80115e6: b29a uxth r2, r3 - 80115e8: 88fb ldrh r3, [r7, #6] - 80115ea: 4413 add r3, r2 - 80115ec: b29a uxth r2, r3 - 80115ee: 893b ldrh r3, [r7, #8] - 80115f0: 1ad3 subs r3, r2, r3 - 80115f2: b29b uxth r3, r3 - 80115f4: b21a sxth r2, r3 - 80115f6: 6afb ldr r3, [r7, #44] ; 0x2c - 80115f8: 801a strh r2, [r3, #0] + 8011536: 8c3b ldrh r3, [r7, #32] + 8011538: 335a adds r3, #90 ; 0x5a + 801153a: b29b uxth r3, r3 + 801153c: b21b sxth r3, r3 + 801153e: 4618 mov r0, r3 + 8011540: f020 ff7a bl 8032438 + 8011544: 4603 mov r3, r0 + 8011546: 461a mov r2, r3 + 8011548: f9b7 300c ldrsh.w r3, [r7, #12] + 801154c: fb02 f303 mul.w r3, r2, r3 + 8011550: 13db asrs r3, r3, #15 + 8011552: b29a uxth r2, r3 + 8011554: 88fb ldrh r3, [r7, #6] + 8011556: 4413 add r3, r2 + 8011558: b29a uxth r2, r3 + 801155a: 893b ldrh r3, [r7, #8] + 801155c: 1ad3 subs r3, r2, r3 + 801155e: b29b uxth r3, r3 + 8011560: b21a sxth r2, r3 + 8011562: 6afb ldr r3, [r7, #44] ; 0x2c + 8011564: 801a strh r2, [r3, #0] area->y1 = y + ((LV_MIN(lv_trigo_sin(end_angle), - 80115fa: f9b7 3020 ldrsh.w r3, [r7, #32] - 80115fe: 4618 mov r0, r3 - 8011600: f020 ff64 bl 80324cc - 8011604: 4603 mov r3, r0 - 8011606: 461c mov r4, r3 - 8011608: f9b7 3000 ldrsh.w r3, [r7] - 801160c: 4618 mov r0, r3 - 801160e: f020 ff5d bl 80324cc - 8011612: 4603 mov r3, r0 - 8011614: 429c cmp r4, r3 - 8011616: da07 bge.n 8011628 - 8011618: f9b7 3020 ldrsh.w r3, [r7, #32] - 801161c: 4618 mov r0, r3 - 801161e: f020 ff55 bl 80324cc - 8011622: 4603 mov r3, r0 - 8011624: 461a mov r2, r3 - 8011626: e006 b.n 8011636 - 8011628: f9b7 3000 ldrsh.w r3, [r7] - 801162c: 4618 mov r0, r3 - 801162e: f020 ff4d bl 80324cc - 8011632: 4603 mov r3, r0 - 8011634: 461a mov r2, r3 + 8011566: f9b7 3020 ldrsh.w r3, [r7, #32] + 801156a: 4618 mov r0, r3 + 801156c: f020 ff64 bl 8032438 + 8011570: 4603 mov r3, r0 + 8011572: 461c mov r4, r3 + 8011574: f9b7 3000 ldrsh.w r3, [r7] + 8011578: 4618 mov r0, r3 + 801157a: f020 ff5d bl 8032438 + 801157e: 4603 mov r3, r0 + 8011580: 429c cmp r4, r3 + 8011582: da07 bge.n 8011594 + 8011584: f9b7 3020 ldrsh.w r3, [r7, #32] + 8011588: 4618 mov r0, r3 + 801158a: f020 ff55 bl 8032438 + 801158e: 4603 mov r3, r0 + 8011590: 461a mov r2, r3 + 8011592: e006 b.n 80115a2 + 8011594: f9b7 3000 ldrsh.w r3, [r7] + 8011598: 4618 mov r0, r3 + 801159a: f020 ff4d bl 8032438 + 801159e: 4603 mov r3, r0 + 80115a0: 461a mov r2, r3 lv_trigo_sin(start_angle)) * rin) >> LV_TRIGO_SHIFT) - extra_area; - 8011636: f9b7 300a ldrsh.w r3, [r7, #10] - 801163a: fb02 f303 mul.w r3, r2, r3 - 801163e: 13db asrs r3, r3, #15 + 80115a2: f9b7 300a ldrsh.w r3, [r7, #10] + 80115a6: fb02 f303 mul.w r3, r2, r3 + 80115aa: 13db asrs r3, r3, #15 area->y1 = y + ((LV_MIN(lv_trigo_sin(end_angle), - 8011640: b29a uxth r2, r3 - 8011642: 88bb ldrh r3, [r7, #4] - 8011644: 4413 add r3, r2 - 8011646: b29a uxth r2, r3 + 80115ac: b29a uxth r2, r3 + 80115ae: 88bb ldrh r3, [r7, #4] + 80115b0: 4413 add r3, r2 + 80115b2: b29a uxth r2, r3 lv_trigo_sin(start_angle)) * rin) >> LV_TRIGO_SHIFT) - extra_area; - 8011648: 893b ldrh r3, [r7, #8] - 801164a: 1ad3 subs r3, r2, r3 - 801164c: b29b uxth r3, r3 - 801164e: b21a sxth r2, r3 + 80115b4: 893b ldrh r3, [r7, #8] + 80115b6: 1ad3 subs r3, r2, r3 + 80115b8: b29b uxth r3, r3 + 80115ba: b21a sxth r2, r3 area->y1 = y + ((LV_MIN(lv_trigo_sin(end_angle), - 8011650: 6afb ldr r3, [r7, #44] ; 0x2c - 8011652: 805a strh r2, [r3, #2] + 80115bc: 6afb ldr r3, [r7, #44] ; 0x2c + 80115be: 805a strh r2, [r3, #2] area->x2 = x + ((lv_trigo_sin(start_angle + 90) * rout) >> LV_TRIGO_SHIFT) + extra_area; - 8011654: 883b ldrh r3, [r7, #0] - 8011656: 335a adds r3, #90 ; 0x5a - 8011658: b29b uxth r3, r3 - 801165a: b21b sxth r3, r3 - 801165c: 4618 mov r0, r3 - 801165e: f020 ff35 bl 80324cc - 8011662: 4603 mov r3, r0 - 8011664: 461a mov r2, r3 - 8011666: f9b7 300c ldrsh.w r3, [r7, #12] - 801166a: fb02 f303 mul.w r3, r2, r3 - 801166e: 13db asrs r3, r3, #15 - 8011670: b29a uxth r2, r3 - 8011672: 88fb ldrh r3, [r7, #6] - 8011674: 4413 add r3, r2 - 8011676: b29a uxth r2, r3 - 8011678: 893b ldrh r3, [r7, #8] - 801167a: 4413 add r3, r2 - 801167c: b29b uxth r3, r3 - 801167e: b21a sxth r2, r3 - 8011680: 6afb ldr r3, [r7, #44] ; 0x2c - 8011682: 809a strh r2, [r3, #4] + 80115c0: 883b ldrh r3, [r7, #0] + 80115c2: 335a adds r3, #90 ; 0x5a + 80115c4: b29b uxth r3, r3 + 80115c6: b21b sxth r3, r3 + 80115c8: 4618 mov r0, r3 + 80115ca: f020 ff35 bl 8032438 + 80115ce: 4603 mov r3, r0 + 80115d0: 461a mov r2, r3 + 80115d2: f9b7 300c ldrsh.w r3, [r7, #12] + 80115d6: fb02 f303 mul.w r3, r2, r3 + 80115da: 13db asrs r3, r3, #15 + 80115dc: b29a uxth r2, r3 + 80115de: 88fb ldrh r3, [r7, #6] + 80115e0: 4413 add r3, r2 + 80115e2: b29a uxth r2, r3 + 80115e4: 893b ldrh r3, [r7, #8] + 80115e6: 4413 add r3, r2 + 80115e8: b29b uxth r3, r3 + 80115ea: b21a sxth r2, r3 + 80115ec: 6afb ldr r3, [r7, #44] ; 0x2c + 80115ee: 809a strh r2, [r3, #4] area->y2 = y + rout + extra_area; - 8011684: 88ba ldrh r2, [r7, #4] - 8011686: 89bb ldrh r3, [r7, #12] - 8011688: 4413 add r3, r2 - 801168a: b29a uxth r2, r3 - 801168c: 893b ldrh r3, [r7, #8] - 801168e: 4413 add r3, r2 - 8011690: b29b uxth r3, r3 - 8011692: b21a sxth r2, r3 - 8011694: 6afb ldr r3, [r7, #44] ; 0x2c - 8011696: 80da strh r2, [r3, #6] - 8011698: e17e b.n 8011998 + 80115f0: 88ba ldrh r2, [r7, #4] + 80115f2: 89bb ldrh r3, [r7, #12] + 80115f4: 4413 add r3, r2 + 80115f6: b29a uxth r2, r3 + 80115f8: 893b ldrh r3, [r7, #8] + 80115fa: 4413 add r3, r2 + 80115fc: b29b uxth r3, r3 + 80115fe: b21a sxth r2, r3 + 8011600: 6afb ldr r3, [r7, #44] ; 0x2c + 8011602: 80da strh r2, [r3, #6] + 8011604: e17e b.n 8011904 } else if(start_quarter == 1 && end_quarter == 2) { - 801169a: 7bfb ldrb r3, [r7, #15] - 801169c: 2b01 cmp r3, #1 - 801169e: d16e bne.n 801177e - 80116a0: 7bbb ldrb r3, [r7, #14] - 80116a2: 2b02 cmp r3, #2 - 80116a4: d16b bne.n 801177e + 8011606: 7bfb ldrb r3, [r7, #15] + 8011608: 2b01 cmp r3, #1 + 801160a: d16e bne.n 80116ea + 801160c: 7bbb ldrb r3, [r7, #14] + 801160e: 2b02 cmp r3, #2 + 8011610: d16b bne.n 80116ea area->x1 = x - rout - extra_area; - 80116a6: 88fa ldrh r2, [r7, #6] - 80116a8: 89bb ldrh r3, [r7, #12] - 80116aa: 1ad3 subs r3, r2, r3 - 80116ac: b29a uxth r2, r3 - 80116ae: 893b ldrh r3, [r7, #8] - 80116b0: 1ad3 subs r3, r2, r3 - 80116b2: b29b uxth r3, r3 - 80116b4: b21a sxth r2, r3 - 80116b6: 6afb ldr r3, [r7, #44] ; 0x2c - 80116b8: 801a strh r2, [r3, #0] + 8011612: 88fa ldrh r2, [r7, #6] + 8011614: 89bb ldrh r3, [r7, #12] + 8011616: 1ad3 subs r3, r2, r3 + 8011618: b29a uxth r2, r3 + 801161a: 893b ldrh r3, [r7, #8] + 801161c: 1ad3 subs r3, r2, r3 + 801161e: b29b uxth r3, r3 + 8011620: b21a sxth r2, r3 + 8011622: 6afb ldr r3, [r7, #44] ; 0x2c + 8011624: 801a strh r2, [r3, #0] area->y1 = y + ((lv_trigo_sin(end_angle) * rout) >> LV_TRIGO_SHIFT) - extra_area; - 80116ba: f9b7 3020 ldrsh.w r3, [r7, #32] - 80116be: 4618 mov r0, r3 - 80116c0: f020 ff04 bl 80324cc - 80116c4: 4603 mov r3, r0 - 80116c6: 461a mov r2, r3 - 80116c8: f9b7 300c ldrsh.w r3, [r7, #12] - 80116cc: fb02 f303 mul.w r3, r2, r3 - 80116d0: 13db asrs r3, r3, #15 - 80116d2: b29a uxth r2, r3 - 80116d4: 88bb ldrh r3, [r7, #4] - 80116d6: 4413 add r3, r2 - 80116d8: b29a uxth r2, r3 - 80116da: 893b ldrh r3, [r7, #8] - 80116dc: 1ad3 subs r3, r2, r3 - 80116de: b29b uxth r3, r3 - 80116e0: b21a sxth r2, r3 - 80116e2: 6afb ldr r3, [r7, #44] ; 0x2c - 80116e4: 805a strh r2, [r3, #2] + 8011626: f9b7 3020 ldrsh.w r3, [r7, #32] + 801162a: 4618 mov r0, r3 + 801162c: f020 ff04 bl 8032438 + 8011630: 4603 mov r3, r0 + 8011632: 461a mov r2, r3 + 8011634: f9b7 300c ldrsh.w r3, [r7, #12] + 8011638: fb02 f303 mul.w r3, r2, r3 + 801163c: 13db asrs r3, r3, #15 + 801163e: b29a uxth r2, r3 + 8011640: 88bb ldrh r3, [r7, #4] + 8011642: 4413 add r3, r2 + 8011644: b29a uxth r2, r3 + 8011646: 893b ldrh r3, [r7, #8] + 8011648: 1ad3 subs r3, r2, r3 + 801164a: b29b uxth r3, r3 + 801164c: b21a sxth r2, r3 + 801164e: 6afb ldr r3, [r7, #44] ; 0x2c + 8011650: 805a strh r2, [r3, #2] area->x2 = x + ((LV_MAX(lv_trigo_sin(start_angle + 90), - 80116e6: 883b ldrh r3, [r7, #0] - 80116e8: 335a adds r3, #90 ; 0x5a - 80116ea: b29b uxth r3, r3 - 80116ec: b21b sxth r3, r3 - 80116ee: 4618 mov r0, r3 - 80116f0: f020 feec bl 80324cc - 80116f4: 4603 mov r3, r0 - 80116f6: 461c mov r4, r3 - 80116f8: 8c3b ldrh r3, [r7, #32] - 80116fa: 335a adds r3, #90 ; 0x5a - 80116fc: b29b uxth r3, r3 - 80116fe: b21b sxth r3, r3 - 8011700: 4618 mov r0, r3 - 8011702: f020 fee3 bl 80324cc - 8011706: 4603 mov r3, r0 - 8011708: 429c cmp r4, r3 - 801170a: dd09 ble.n 8011720 - 801170c: 883b ldrh r3, [r7, #0] - 801170e: 335a adds r3, #90 ; 0x5a - 8011710: b29b uxth r3, r3 - 8011712: b21b sxth r3, r3 - 8011714: 4618 mov r0, r3 - 8011716: f020 fed9 bl 80324cc - 801171a: 4603 mov r3, r0 - 801171c: 461a mov r2, r3 - 801171e: e008 b.n 8011732 - 8011720: 8c3b ldrh r3, [r7, #32] - 8011722: 335a adds r3, #90 ; 0x5a - 8011724: b29b uxth r3, r3 - 8011726: b21b sxth r3, r3 - 8011728: 4618 mov r0, r3 - 801172a: f020 fecf bl 80324cc - 801172e: 4603 mov r3, r0 - 8011730: 461a mov r2, r3 + 8011652: 883b ldrh r3, [r7, #0] + 8011654: 335a adds r3, #90 ; 0x5a + 8011656: b29b uxth r3, r3 + 8011658: b21b sxth r3, r3 + 801165a: 4618 mov r0, r3 + 801165c: f020 feec bl 8032438 + 8011660: 4603 mov r3, r0 + 8011662: 461c mov r4, r3 + 8011664: 8c3b ldrh r3, [r7, #32] + 8011666: 335a adds r3, #90 ; 0x5a + 8011668: b29b uxth r3, r3 + 801166a: b21b sxth r3, r3 + 801166c: 4618 mov r0, r3 + 801166e: f020 fee3 bl 8032438 + 8011672: 4603 mov r3, r0 + 8011674: 429c cmp r4, r3 + 8011676: dd09 ble.n 801168c + 8011678: 883b ldrh r3, [r7, #0] + 801167a: 335a adds r3, #90 ; 0x5a + 801167c: b29b uxth r3, r3 + 801167e: b21b sxth r3, r3 + 8011680: 4618 mov r0, r3 + 8011682: f020 fed9 bl 8032438 + 8011686: 4603 mov r3, r0 + 8011688: 461a mov r2, r3 + 801168a: e008 b.n 801169e + 801168c: 8c3b ldrh r3, [r7, #32] + 801168e: 335a adds r3, #90 ; 0x5a + 8011690: b29b uxth r3, r3 + 8011692: b21b sxth r3, r3 + 8011694: 4618 mov r0, r3 + 8011696: f020 fecf bl 8032438 + 801169a: 4603 mov r3, r0 + 801169c: 461a mov r2, r3 lv_trigo_sin(end_angle + 90)) * rin) >> LV_TRIGO_SHIFT) + extra_area; - 8011732: f9b7 300a ldrsh.w r3, [r7, #10] - 8011736: fb02 f303 mul.w r3, r2, r3 - 801173a: 13db asrs r3, r3, #15 + 801169e: f9b7 300a ldrsh.w r3, [r7, #10] + 80116a2: fb02 f303 mul.w r3, r2, r3 + 80116a6: 13db asrs r3, r3, #15 area->x2 = x + ((LV_MAX(lv_trigo_sin(start_angle + 90), - 801173c: b29a uxth r2, r3 - 801173e: 88fb ldrh r3, [r7, #6] - 8011740: 4413 add r3, r2 - 8011742: b29a uxth r2, r3 + 80116a8: b29a uxth r2, r3 + 80116aa: 88fb ldrh r3, [r7, #6] + 80116ac: 4413 add r3, r2 + 80116ae: b29a uxth r2, r3 lv_trigo_sin(end_angle + 90)) * rin) >> LV_TRIGO_SHIFT) + extra_area; - 8011744: 893b ldrh r3, [r7, #8] - 8011746: 4413 add r3, r2 - 8011748: b29b uxth r3, r3 - 801174a: b21a sxth r2, r3 + 80116b0: 893b ldrh r3, [r7, #8] + 80116b2: 4413 add r3, r2 + 80116b4: b29b uxth r3, r3 + 80116b6: b21a sxth r2, r3 area->x2 = x + ((LV_MAX(lv_trigo_sin(start_angle + 90), - 801174c: 6afb ldr r3, [r7, #44] ; 0x2c - 801174e: 809a strh r2, [r3, #4] + 80116b8: 6afb ldr r3, [r7, #44] ; 0x2c + 80116ba: 809a strh r2, [r3, #4] area->y2 = y + ((lv_trigo_sin(start_angle) * rout) >> LV_TRIGO_SHIFT) + extra_area; - 8011750: f9b7 3000 ldrsh.w r3, [r7] - 8011754: 4618 mov r0, r3 - 8011756: f020 feb9 bl 80324cc - 801175a: 4603 mov r3, r0 - 801175c: 461a mov r2, r3 - 801175e: f9b7 300c ldrsh.w r3, [r7, #12] - 8011762: fb02 f303 mul.w r3, r2, r3 - 8011766: 13db asrs r3, r3, #15 - 8011768: b29a uxth r2, r3 - 801176a: 88bb ldrh r3, [r7, #4] - 801176c: 4413 add r3, r2 - 801176e: b29a uxth r2, r3 - 8011770: 893b ldrh r3, [r7, #8] - 8011772: 4413 add r3, r2 - 8011774: b29b uxth r3, r3 - 8011776: b21a sxth r2, r3 - 8011778: 6afb ldr r3, [r7, #44] ; 0x2c - 801177a: 80da strh r2, [r3, #6] - 801177c: e10c b.n 8011998 + 80116bc: f9b7 3000 ldrsh.w r3, [r7] + 80116c0: 4618 mov r0, r3 + 80116c2: f020 feb9 bl 8032438 + 80116c6: 4603 mov r3, r0 + 80116c8: 461a mov r2, r3 + 80116ca: f9b7 300c ldrsh.w r3, [r7, #12] + 80116ce: fb02 f303 mul.w r3, r2, r3 + 80116d2: 13db asrs r3, r3, #15 + 80116d4: b29a uxth r2, r3 + 80116d6: 88bb ldrh r3, [r7, #4] + 80116d8: 4413 add r3, r2 + 80116da: b29a uxth r2, r3 + 80116dc: 893b ldrh r3, [r7, #8] + 80116de: 4413 add r3, r2 + 80116e0: b29b uxth r3, r3 + 80116e2: b21a sxth r2, r3 + 80116e4: 6afb ldr r3, [r7, #44] ; 0x2c + 80116e6: 80da strh r2, [r3, #6] + 80116e8: e10c b.n 8011904 } else if(start_quarter == 2 && end_quarter == 3) { - 801177e: 7bfb ldrb r3, [r7, #15] - 8011780: 2b02 cmp r3, #2 - 8011782: d179 bne.n 8011878 - 8011784: 7bbb ldrb r3, [r7, #14] - 8011786: 2b03 cmp r3, #3 - 8011788: d176 bne.n 8011878 + 80116ea: 7bfb ldrb r3, [r7, #15] + 80116ec: 2b02 cmp r3, #2 + 80116ee: d179 bne.n 80117e4 + 80116f0: 7bbb ldrb r3, [r7, #14] + 80116f2: 2b03 cmp r3, #3 + 80116f4: d176 bne.n 80117e4 area->x1 = x + ((lv_trigo_sin(start_angle + 90) * rout) >> LV_TRIGO_SHIFT) - extra_area; - 801178a: 883b ldrh r3, [r7, #0] - 801178c: 335a adds r3, #90 ; 0x5a - 801178e: b29b uxth r3, r3 - 8011790: b21b sxth r3, r3 - 8011792: 4618 mov r0, r3 - 8011794: f020 fe9a bl 80324cc - 8011798: 4603 mov r3, r0 - 801179a: 461a mov r2, r3 - 801179c: f9b7 300c ldrsh.w r3, [r7, #12] - 80117a0: fb02 f303 mul.w r3, r2, r3 - 80117a4: 13db asrs r3, r3, #15 - 80117a6: b29a uxth r2, r3 - 80117a8: 88fb ldrh r3, [r7, #6] - 80117aa: 4413 add r3, r2 - 80117ac: b29a uxth r2, r3 - 80117ae: 893b ldrh r3, [r7, #8] - 80117b0: 1ad3 subs r3, r2, r3 - 80117b2: b29b uxth r3, r3 - 80117b4: b21a sxth r2, r3 - 80117b6: 6afb ldr r3, [r7, #44] ; 0x2c - 80117b8: 801a strh r2, [r3, #0] + 80116f6: 883b ldrh r3, [r7, #0] + 80116f8: 335a adds r3, #90 ; 0x5a + 80116fa: b29b uxth r3, r3 + 80116fc: b21b sxth r3, r3 + 80116fe: 4618 mov r0, r3 + 8011700: f020 fe9a bl 8032438 + 8011704: 4603 mov r3, r0 + 8011706: 461a mov r2, r3 + 8011708: f9b7 300c ldrsh.w r3, [r7, #12] + 801170c: fb02 f303 mul.w r3, r2, r3 + 8011710: 13db asrs r3, r3, #15 + 8011712: b29a uxth r2, r3 + 8011714: 88fb ldrh r3, [r7, #6] + 8011716: 4413 add r3, r2 + 8011718: b29a uxth r2, r3 + 801171a: 893b ldrh r3, [r7, #8] + 801171c: 1ad3 subs r3, r2, r3 + 801171e: b29b uxth r3, r3 + 8011720: b21a sxth r2, r3 + 8011722: 6afb ldr r3, [r7, #44] ; 0x2c + 8011724: 801a strh r2, [r3, #0] area->y1 = y - rout - extra_area; - 80117ba: 88ba ldrh r2, [r7, #4] - 80117bc: 89bb ldrh r3, [r7, #12] - 80117be: 1ad3 subs r3, r2, r3 - 80117c0: b29a uxth r2, r3 - 80117c2: 893b ldrh r3, [r7, #8] - 80117c4: 1ad3 subs r3, r2, r3 - 80117c6: b29b uxth r3, r3 - 80117c8: b21a sxth r2, r3 - 80117ca: 6afb ldr r3, [r7, #44] ; 0x2c - 80117cc: 805a strh r2, [r3, #2] + 8011726: 88ba ldrh r2, [r7, #4] + 8011728: 89bb ldrh r3, [r7, #12] + 801172a: 1ad3 subs r3, r2, r3 + 801172c: b29a uxth r2, r3 + 801172e: 893b ldrh r3, [r7, #8] + 8011730: 1ad3 subs r3, r2, r3 + 8011732: b29b uxth r3, r3 + 8011734: b21a sxth r2, r3 + 8011736: 6afb ldr r3, [r7, #44] ; 0x2c + 8011738: 805a strh r2, [r3, #2] area->x2 = x + ((lv_trigo_sin(end_angle + 90) * rout) >> LV_TRIGO_SHIFT) + extra_area; - 80117ce: 8c3b ldrh r3, [r7, #32] - 80117d0: 335a adds r3, #90 ; 0x5a - 80117d2: b29b uxth r3, r3 - 80117d4: b21b sxth r3, r3 - 80117d6: 4618 mov r0, r3 - 80117d8: f020 fe78 bl 80324cc - 80117dc: 4603 mov r3, r0 - 80117de: 461a mov r2, r3 - 80117e0: f9b7 300c ldrsh.w r3, [r7, #12] - 80117e4: fb02 f303 mul.w r3, r2, r3 - 80117e8: 13db asrs r3, r3, #15 - 80117ea: b29a uxth r2, r3 - 80117ec: 88fb ldrh r3, [r7, #6] - 80117ee: 4413 add r3, r2 - 80117f0: b29a uxth r2, r3 - 80117f2: 893b ldrh r3, [r7, #8] - 80117f4: 4413 add r3, r2 - 80117f6: b29b uxth r3, r3 - 80117f8: b21a sxth r2, r3 - 80117fa: 6afb ldr r3, [r7, #44] ; 0x2c - 80117fc: 809a strh r2, [r3, #4] + 801173a: 8c3b ldrh r3, [r7, #32] + 801173c: 335a adds r3, #90 ; 0x5a + 801173e: b29b uxth r3, r3 + 8011740: b21b sxth r3, r3 + 8011742: 4618 mov r0, r3 + 8011744: f020 fe78 bl 8032438 + 8011748: 4603 mov r3, r0 + 801174a: 461a mov r2, r3 + 801174c: f9b7 300c ldrsh.w r3, [r7, #12] + 8011750: fb02 f303 mul.w r3, r2, r3 + 8011754: 13db asrs r3, r3, #15 + 8011756: b29a uxth r2, r3 + 8011758: 88fb ldrh r3, [r7, #6] + 801175a: 4413 add r3, r2 + 801175c: b29a uxth r2, r3 + 801175e: 893b ldrh r3, [r7, #8] + 8011760: 4413 add r3, r2 + 8011762: b29b uxth r3, r3 + 8011764: b21a sxth r2, r3 + 8011766: 6afb ldr r3, [r7, #44] ; 0x2c + 8011768: 809a strh r2, [r3, #4] area->y2 = y + (LV_MAX(lv_trigo_sin(end_angle) * rin, - 80117fe: f9b7 3020 ldrsh.w r3, [r7, #32] - 8011802: 4618 mov r0, r3 - 8011804: f020 fe62 bl 80324cc - 8011808: 4603 mov r3, r0 - 801180a: 461a mov r2, r3 - 801180c: f9b7 300a ldrsh.w r3, [r7, #10] - 8011810: fb03 f402 mul.w r4, r3, r2 - 8011814: f9b7 3000 ldrsh.w r3, [r7] - 8011818: 4618 mov r0, r3 - 801181a: f020 fe57 bl 80324cc - 801181e: 4603 mov r3, r0 - 8011820: 461a mov r2, r3 - 8011822: f9b7 300a ldrsh.w r3, [r7, #10] - 8011826: fb02 f303 mul.w r3, r2, r3 - 801182a: 429c cmp r4, r3 - 801182c: dd0d ble.n 801184a - 801182e: f9b7 3020 ldrsh.w r3, [r7, #32] - 8011832: 4618 mov r0, r3 - 8011834: f020 fe4a bl 80324cc - 8011838: 4603 mov r3, r0 - 801183a: 461a mov r2, r3 - 801183c: f9b7 300a ldrsh.w r3, [r7, #10] - 8011840: fb02 f303 mul.w r3, r2, r3 + 801176a: f9b7 3020 ldrsh.w r3, [r7, #32] + 801176e: 4618 mov r0, r3 + 8011770: f020 fe62 bl 8032438 + 8011774: 4603 mov r3, r0 + 8011776: 461a mov r2, r3 + 8011778: f9b7 300a ldrsh.w r3, [r7, #10] + 801177c: fb03 f402 mul.w r4, r3, r2 + 8011780: f9b7 3000 ldrsh.w r3, [r7] + 8011784: 4618 mov r0, r3 + 8011786: f020 fe57 bl 8032438 + 801178a: 4603 mov r3, r0 + 801178c: 461a mov r2, r3 + 801178e: f9b7 300a ldrsh.w r3, [r7, #10] + 8011792: fb02 f303 mul.w r3, r2, r3 + 8011796: 429c cmp r4, r3 + 8011798: dd0d ble.n 80117b6 + 801179a: f9b7 3020 ldrsh.w r3, [r7, #32] + 801179e: 4618 mov r0, r3 + 80117a0: f020 fe4a bl 8032438 + 80117a4: 4603 mov r3, r0 + 80117a6: 461a mov r2, r3 + 80117a8: f9b7 300a ldrsh.w r3, [r7, #10] + 80117ac: fb02 f303 mul.w r3, r2, r3 lv_trigo_sin(start_angle) * rin) >> LV_TRIGO_SHIFT) + extra_area; - 8011844: 13db asrs r3, r3, #15 + 80117b0: 13db asrs r3, r3, #15 area->y2 = y + (LV_MAX(lv_trigo_sin(end_angle) * rin, - 8011846: b29b uxth r3, r3 - 8011848: e00c b.n 8011864 - 801184a: f9b7 3000 ldrsh.w r3, [r7] - 801184e: 4618 mov r0, r3 - 8011850: f020 fe3c bl 80324cc - 8011854: 4603 mov r3, r0 - 8011856: 461a mov r2, r3 - 8011858: f9b7 300a ldrsh.w r3, [r7, #10] - 801185c: fb02 f303 mul.w r3, r2, r3 + 80117b2: b29b uxth r3, r3 + 80117b4: e00c b.n 80117d0 + 80117b6: f9b7 3000 ldrsh.w r3, [r7] + 80117ba: 4618 mov r0, r3 + 80117bc: f020 fe3c bl 8032438 + 80117c0: 4603 mov r3, r0 + 80117c2: 461a mov r2, r3 + 80117c4: f9b7 300a ldrsh.w r3, [r7, #10] + 80117c8: fb02 f303 mul.w r3, r2, r3 lv_trigo_sin(start_angle) * rin) >> LV_TRIGO_SHIFT) + extra_area; - 8011860: 13db asrs r3, r3, #15 + 80117cc: 13db asrs r3, r3, #15 area->y2 = y + (LV_MAX(lv_trigo_sin(end_angle) * rin, - 8011862: b29b uxth r3, r3 - 8011864: 88ba ldrh r2, [r7, #4] - 8011866: 4413 add r3, r2 - 8011868: b29a uxth r2, r3 + 80117ce: b29b uxth r3, r3 + 80117d0: 88ba ldrh r2, [r7, #4] + 80117d2: 4413 add r3, r2 + 80117d4: b29a uxth r2, r3 lv_trigo_sin(start_angle) * rin) >> LV_TRIGO_SHIFT) + extra_area; - 801186a: 893b ldrh r3, [r7, #8] - 801186c: 4413 add r3, r2 - 801186e: b29b uxth r3, r3 - 8011870: b21a sxth r2, r3 + 80117d6: 893b ldrh r3, [r7, #8] + 80117d8: 4413 add r3, r2 + 80117da: b29b uxth r3, r3 + 80117dc: b21a sxth r2, r3 area->y2 = y + (LV_MAX(lv_trigo_sin(end_angle) * rin, - 8011872: 6afb ldr r3, [r7, #44] ; 0x2c - 8011874: 80da strh r2, [r3, #6] - 8011876: e08f b.n 8011998 + 80117de: 6afb ldr r3, [r7, #44] ; 0x2c + 80117e0: 80da strh r2, [r3, #6] + 80117e2: e08f b.n 8011904 } else if(start_quarter == 3 && end_quarter == 0) { - 8011878: 7bfb ldrb r3, [r7, #15] - 801187a: 2b03 cmp r3, #3 - 801187c: d16e bne.n 801195c - 801187e: 7bbb ldrb r3, [r7, #14] - 8011880: 2b00 cmp r3, #0 - 8011882: d16b bne.n 801195c + 80117e4: 7bfb ldrb r3, [r7, #15] + 80117e6: 2b03 cmp r3, #3 + 80117e8: d16e bne.n 80118c8 + 80117ea: 7bbb ldrb r3, [r7, #14] + 80117ec: 2b00 cmp r3, #0 + 80117ee: d16b bne.n 80118c8 area->x1 = x + ((LV_MIN(lv_trigo_sin(end_angle + 90), - 8011884: 8c3b ldrh r3, [r7, #32] - 8011886: 335a adds r3, #90 ; 0x5a - 8011888: b29b uxth r3, r3 - 801188a: b21b sxth r3, r3 - 801188c: 4618 mov r0, r3 - 801188e: f020 fe1d bl 80324cc - 8011892: 4603 mov r3, r0 - 8011894: 461c mov r4, r3 - 8011896: 883b ldrh r3, [r7, #0] - 8011898: 335a adds r3, #90 ; 0x5a - 801189a: b29b uxth r3, r3 - 801189c: b21b sxth r3, r3 - 801189e: 4618 mov r0, r3 - 80118a0: f020 fe14 bl 80324cc - 80118a4: 4603 mov r3, r0 - 80118a6: 429c cmp r4, r3 - 80118a8: da09 bge.n 80118be - 80118aa: 8c3b ldrh r3, [r7, #32] - 80118ac: 335a adds r3, #90 ; 0x5a - 80118ae: b29b uxth r3, r3 - 80118b0: b21b sxth r3, r3 - 80118b2: 4618 mov r0, r3 - 80118b4: f020 fe0a bl 80324cc - 80118b8: 4603 mov r3, r0 - 80118ba: 461a mov r2, r3 - 80118bc: e008 b.n 80118d0 - 80118be: 883b ldrh r3, [r7, #0] - 80118c0: 335a adds r3, #90 ; 0x5a - 80118c2: b29b uxth r3, r3 - 80118c4: b21b sxth r3, r3 - 80118c6: 4618 mov r0, r3 - 80118c8: f020 fe00 bl 80324cc - 80118cc: 4603 mov r3, r0 - 80118ce: 461a mov r2, r3 + 80117f0: 8c3b ldrh r3, [r7, #32] + 80117f2: 335a adds r3, #90 ; 0x5a + 80117f4: b29b uxth r3, r3 + 80117f6: b21b sxth r3, r3 + 80117f8: 4618 mov r0, r3 + 80117fa: f020 fe1d bl 8032438 + 80117fe: 4603 mov r3, r0 + 8011800: 461c mov r4, r3 + 8011802: 883b ldrh r3, [r7, #0] + 8011804: 335a adds r3, #90 ; 0x5a + 8011806: b29b uxth r3, r3 + 8011808: b21b sxth r3, r3 + 801180a: 4618 mov r0, r3 + 801180c: f020 fe14 bl 8032438 + 8011810: 4603 mov r3, r0 + 8011812: 429c cmp r4, r3 + 8011814: da09 bge.n 801182a + 8011816: 8c3b ldrh r3, [r7, #32] + 8011818: 335a adds r3, #90 ; 0x5a + 801181a: b29b uxth r3, r3 + 801181c: b21b sxth r3, r3 + 801181e: 4618 mov r0, r3 + 8011820: f020 fe0a bl 8032438 + 8011824: 4603 mov r3, r0 + 8011826: 461a mov r2, r3 + 8011828: e008 b.n 801183c + 801182a: 883b ldrh r3, [r7, #0] + 801182c: 335a adds r3, #90 ; 0x5a + 801182e: b29b uxth r3, r3 + 8011830: b21b sxth r3, r3 + 8011832: 4618 mov r0, r3 + 8011834: f020 fe00 bl 8032438 + 8011838: 4603 mov r3, r0 + 801183a: 461a mov r2, r3 lv_trigo_sin(start_angle + 90)) * rin) >> LV_TRIGO_SHIFT) - extra_area; - 80118d0: f9b7 300a ldrsh.w r3, [r7, #10] - 80118d4: fb02 f303 mul.w r3, r2, r3 - 80118d8: 13db asrs r3, r3, #15 + 801183c: f9b7 300a ldrsh.w r3, [r7, #10] + 8011840: fb02 f303 mul.w r3, r2, r3 + 8011844: 13db asrs r3, r3, #15 area->x1 = x + ((LV_MIN(lv_trigo_sin(end_angle + 90), - 80118da: b29a uxth r2, r3 - 80118dc: 88fb ldrh r3, [r7, #6] - 80118de: 4413 add r3, r2 - 80118e0: b29a uxth r2, r3 + 8011846: b29a uxth r2, r3 + 8011848: 88fb ldrh r3, [r7, #6] + 801184a: 4413 add r3, r2 + 801184c: b29a uxth r2, r3 lv_trigo_sin(start_angle + 90)) * rin) >> LV_TRIGO_SHIFT) - extra_area; - 80118e2: 893b ldrh r3, [r7, #8] - 80118e4: 1ad3 subs r3, r2, r3 - 80118e6: b29b uxth r3, r3 - 80118e8: b21a sxth r2, r3 + 801184e: 893b ldrh r3, [r7, #8] + 8011850: 1ad3 subs r3, r2, r3 + 8011852: b29b uxth r3, r3 + 8011854: b21a sxth r2, r3 area->x1 = x + ((LV_MIN(lv_trigo_sin(end_angle + 90), - 80118ea: 6afb ldr r3, [r7, #44] ; 0x2c - 80118ec: 801a strh r2, [r3, #0] + 8011856: 6afb ldr r3, [r7, #44] ; 0x2c + 8011858: 801a strh r2, [r3, #0] area->y1 = y + ((lv_trigo_sin(start_angle) * rout) >> LV_TRIGO_SHIFT) - extra_area; - 80118ee: f9b7 3000 ldrsh.w r3, [r7] - 80118f2: 4618 mov r0, r3 - 80118f4: f020 fdea bl 80324cc - 80118f8: 4603 mov r3, r0 - 80118fa: 461a mov r2, r3 - 80118fc: f9b7 300c ldrsh.w r3, [r7, #12] - 8011900: fb02 f303 mul.w r3, r2, r3 - 8011904: 13db asrs r3, r3, #15 - 8011906: b29a uxth r2, r3 - 8011908: 88bb ldrh r3, [r7, #4] - 801190a: 4413 add r3, r2 - 801190c: b29a uxth r2, r3 - 801190e: 893b ldrh r3, [r7, #8] - 8011910: 1ad3 subs r3, r2, r3 - 8011912: b29b uxth r3, r3 - 8011914: b21a sxth r2, r3 - 8011916: 6afb ldr r3, [r7, #44] ; 0x2c - 8011918: 805a strh r2, [r3, #2] + 801185a: f9b7 3000 ldrsh.w r3, [r7] + 801185e: 4618 mov r0, r3 + 8011860: f020 fdea bl 8032438 + 8011864: 4603 mov r3, r0 + 8011866: 461a mov r2, r3 + 8011868: f9b7 300c ldrsh.w r3, [r7, #12] + 801186c: fb02 f303 mul.w r3, r2, r3 + 8011870: 13db asrs r3, r3, #15 + 8011872: b29a uxth r2, r3 + 8011874: 88bb ldrh r3, [r7, #4] + 8011876: 4413 add r3, r2 + 8011878: b29a uxth r2, r3 + 801187a: 893b ldrh r3, [r7, #8] + 801187c: 1ad3 subs r3, r2, r3 + 801187e: b29b uxth r3, r3 + 8011880: b21a sxth r2, r3 + 8011882: 6afb ldr r3, [r7, #44] ; 0x2c + 8011884: 805a strh r2, [r3, #2] area->x2 = x + rout + extra_area; - 801191a: 88fa ldrh r2, [r7, #6] - 801191c: 89bb ldrh r3, [r7, #12] - 801191e: 4413 add r3, r2 - 8011920: b29a uxth r2, r3 - 8011922: 893b ldrh r3, [r7, #8] - 8011924: 4413 add r3, r2 - 8011926: b29b uxth r3, r3 - 8011928: b21a sxth r2, r3 - 801192a: 6afb ldr r3, [r7, #44] ; 0x2c - 801192c: 809a strh r2, [r3, #4] + 8011886: 88fa ldrh r2, [r7, #6] + 8011888: 89bb ldrh r3, [r7, #12] + 801188a: 4413 add r3, r2 + 801188c: b29a uxth r2, r3 + 801188e: 893b ldrh r3, [r7, #8] + 8011890: 4413 add r3, r2 + 8011892: b29b uxth r3, r3 + 8011894: b21a sxth r2, r3 + 8011896: 6afb ldr r3, [r7, #44] ; 0x2c + 8011898: 809a strh r2, [r3, #4] area->y2 = y + ((lv_trigo_sin(end_angle) * rout) >> LV_TRIGO_SHIFT) + extra_area; - 801192e: f9b7 3020 ldrsh.w r3, [r7, #32] - 8011932: 4618 mov r0, r3 - 8011934: f020 fdca bl 80324cc - 8011938: 4603 mov r3, r0 - 801193a: 461a mov r2, r3 - 801193c: f9b7 300c ldrsh.w r3, [r7, #12] - 8011940: fb02 f303 mul.w r3, r2, r3 - 8011944: 13db asrs r3, r3, #15 - 8011946: b29a uxth r2, r3 - 8011948: 88bb ldrh r3, [r7, #4] - 801194a: 4413 add r3, r2 - 801194c: b29a uxth r2, r3 - 801194e: 893b ldrh r3, [r7, #8] - 8011950: 4413 add r3, r2 - 8011952: b29b uxth r3, r3 - 8011954: b21a sxth r2, r3 - 8011956: 6afb ldr r3, [r7, #44] ; 0x2c - 8011958: 80da strh r2, [r3, #6] - 801195a: e01d b.n 8011998 + 801189a: f9b7 3020 ldrsh.w r3, [r7, #32] + 801189e: 4618 mov r0, r3 + 80118a0: f020 fdca bl 8032438 + 80118a4: 4603 mov r3, r0 + 80118a6: 461a mov r2, r3 + 80118a8: f9b7 300c ldrsh.w r3, [r7, #12] + 80118ac: fb02 f303 mul.w r3, r2, r3 + 80118b0: 13db asrs r3, r3, #15 + 80118b2: b29a uxth r2, r3 + 80118b4: 88bb ldrh r3, [r7, #4] + 80118b6: 4413 add r3, r2 + 80118b8: b29a uxth r2, r3 + 80118ba: 893b ldrh r3, [r7, #8] + 80118bc: 4413 add r3, r2 + 80118be: b29b uxth r3, r3 + 80118c0: b21a sxth r2, r3 + 80118c2: 6afb ldr r3, [r7, #44] ; 0x2c + 80118c4: 80da strh r2, [r3, #6] + 80118c6: e01d b.n 8011904 } else { area->x1 = x - rout; - 801195c: 88fa ldrh r2, [r7, #6] - 801195e: 89bb ldrh r3, [r7, #12] - 8011960: 1ad3 subs r3, r2, r3 - 8011962: b29b uxth r3, r3 - 8011964: b21a sxth r2, r3 - 8011966: 6afb ldr r3, [r7, #44] ; 0x2c - 8011968: 801a strh r2, [r3, #0] + 80118c8: 88fa ldrh r2, [r7, #6] + 80118ca: 89bb ldrh r3, [r7, #12] + 80118cc: 1ad3 subs r3, r2, r3 + 80118ce: b29b uxth r3, r3 + 80118d0: b21a sxth r2, r3 + 80118d2: 6afb ldr r3, [r7, #44] ; 0x2c + 80118d4: 801a strh r2, [r3, #0] area->y1 = y - rout; - 801196a: 88ba ldrh r2, [r7, #4] - 801196c: 89bb ldrh r3, [r7, #12] - 801196e: 1ad3 subs r3, r2, r3 - 8011970: b29b uxth r3, r3 - 8011972: b21a sxth r2, r3 - 8011974: 6afb ldr r3, [r7, #44] ; 0x2c - 8011976: 805a strh r2, [r3, #2] + 80118d6: 88ba ldrh r2, [r7, #4] + 80118d8: 89bb ldrh r3, [r7, #12] + 80118da: 1ad3 subs r3, r2, r3 + 80118dc: b29b uxth r3, r3 + 80118de: b21a sxth r2, r3 + 80118e0: 6afb ldr r3, [r7, #44] ; 0x2c + 80118e2: 805a strh r2, [r3, #2] area->x2 = x + rout; - 8011978: 88fa ldrh r2, [r7, #6] - 801197a: 89bb ldrh r3, [r7, #12] - 801197c: 4413 add r3, r2 - 801197e: b29b uxth r3, r3 - 8011980: b21a sxth r2, r3 - 8011982: 6afb ldr r3, [r7, #44] ; 0x2c - 8011984: 809a strh r2, [r3, #4] + 80118e4: 88fa ldrh r2, [r7, #6] + 80118e6: 89bb ldrh r3, [r7, #12] + 80118e8: 4413 add r3, r2 + 80118ea: b29b uxth r3, r3 + 80118ec: b21a sxth r2, r3 + 80118ee: 6afb ldr r3, [r7, #44] ; 0x2c + 80118f0: 809a strh r2, [r3, #4] area->y2 = y + rout; - 8011986: 88ba ldrh r2, [r7, #4] - 8011988: 89bb ldrh r3, [r7, #12] - 801198a: 4413 add r3, r2 - 801198c: b29b uxth r3, r3 - 801198e: b21a sxth r2, r3 - 8011990: 6afb ldr r3, [r7, #44] ; 0x2c - 8011992: 80da strh r2, [r3, #6] - 8011994: e000 b.n 8011998 + 80118f2: 88ba ldrh r2, [r7, #4] + 80118f4: 89bb ldrh r3, [r7, #12] + 80118f6: 4413 add r3, r2 + 80118f8: b29b uxth r3, r3 + 80118fa: b21a sxth r2, r3 + 80118fc: 6afb ldr r3, [r7, #44] ; 0x2c + 80118fe: 80da strh r2, [r3, #6] + 8011900: e000 b.n 8011904 if(start_quarter == 0) { - 8011996: bf00 nop + 8011902: bf00 nop } } - 8011998: 3714 adds r7, #20 - 801199a: 46bd mov sp, r7 - 801199c: bd90 pop {r4, r7, pc} - 801199e: bf00 nop + 8011904: 3714 adds r7, #20 + 8011906: 46bd mov sp, r7 + 8011908: bd90 pop {r4, r7, pc} + 801190a: bf00 nop -080119a0 : +0801190c : { - 80119a0: b490 push {r4, r7} - 80119a2: b082 sub sp, #8 - 80119a4: af00 add r7, sp, #0 - 80119a6: 4604 mov r4, r0 - 80119a8: 4608 mov r0, r1 - 80119aa: 4611 mov r1, r2 - 80119ac: 4622 mov r2, r4 - 80119ae: 71fa strb r2, [r7, #7] - 80119b0: 4602 mov r2, r0 - 80119b2: 71ba strb r2, [r7, #6] - 80119b4: 460a mov r2, r1 - 80119b6: 717a strb r2, [r7, #5] + 801190c: b490 push {r4, r7} + 801190e: b082 sub sp, #8 + 8011910: af00 add r7, sp, #0 + 8011912: 4604 mov r4, r0 + 8011914: 4608 mov r0, r1 + 8011916: 4611 mov r1, r2 + 8011918: 4622 mov r2, r4 + 801191a: 71fa strb r2, [r7, #7] + 801191c: 4602 mov r2, r0 + 801191e: 71ba strb r2, [r7, #6] + 8011920: 460a mov r2, r1 + 8011922: 717a strb r2, [r7, #5] return _LV_COLOR_MAKE_TYPE_HELPER LV_COLOR_MAKE(r, g, b); - 80119b8: 797a ldrb r2, [r7, #5] - 80119ba: 08d2 lsrs r2, r2, #3 - 80119bc: b2d2 uxtb r2, r2 - 80119be: f002 021f and.w r2, r2, #31 - 80119c2: b2d0 uxtb r0, r2 - 80119c4: 79ba ldrb r2, [r7, #6] - 80119c6: 0892 lsrs r2, r2, #2 - 80119c8: b2d2 uxtb r2, r2 - 80119ca: f002 023f and.w r2, r2, #63 ; 0x3f - 80119ce: b2d1 uxtb r1, r2 - 80119d0: 79fa ldrb r2, [r7, #7] - 80119d2: 08d2 lsrs r2, r2, #3 - 80119d4: b2d2 uxtb r2, r2 - 80119d6: f002 021f and.w r2, r2, #31 - 80119da: b2d2 uxtb r2, r2 - 80119dc: f360 0304 bfi r3, r0, #0, #5 - 80119e0: f361 134a bfi r3, r1, #5, #6 - 80119e4: f362 23cf bfi r3, r2, #11, #5 + 8011924: 797a ldrb r2, [r7, #5] + 8011926: 08d2 lsrs r2, r2, #3 + 8011928: b2d2 uxtb r2, r2 + 801192a: f002 021f and.w r2, r2, #31 + 801192e: b2d0 uxtb r0, r2 + 8011930: 79ba ldrb r2, [r7, #6] + 8011932: 0892 lsrs r2, r2, #2 + 8011934: b2d2 uxtb r2, r2 + 8011936: f002 023f and.w r2, r2, #63 ; 0x3f + 801193a: b2d1 uxtb r1, r2 + 801193c: 79fa ldrb r2, [r7, #7] + 801193e: 08d2 lsrs r2, r2, #3 + 8011940: b2d2 uxtb r2, r2 + 8011942: f002 021f and.w r2, r2, #31 + 8011946: b2d2 uxtb r2, r2 + 8011948: f360 0304 bfi r3, r0, #0, #5 + 801194c: f361 134a bfi r3, r1, #5, #6 + 8011950: f362 23cf bfi r3, r2, #11, #5 } - 80119e8: 4618 mov r0, r3 - 80119ea: 3708 adds r7, #8 - 80119ec: 46bd mov sp, r7 - 80119ee: bc90 pop {r4, r7} - 80119f0: 4770 bx lr + 8011954: 4618 mov r0, r3 + 8011956: 3708 adds r7, #8 + 8011958: 46bd mov sp, r7 + 801195a: bc90 pop {r4, r7} + 801195c: 4770 bx lr -080119f2 : +0801195e : { - 80119f2: b580 push {r7, lr} - 80119f4: af00 add r7, sp, #0 + 801195e: b580 push {r7, lr} + 8011960: af00 add r7, sp, #0 return lv_color_make(0xff, 0xff, 0xff); - 80119f6: 22ff movs r2, #255 ; 0xff - 80119f8: 21ff movs r1, #255 ; 0xff - 80119fa: 20ff movs r0, #255 ; 0xff - 80119fc: f7ff ffd0 bl 80119a0 - 8011a00: 4603 mov r3, r0 + 8011962: 22ff movs r2, #255 ; 0xff + 8011964: 21ff movs r1, #255 ; 0xff + 8011966: 20ff movs r0, #255 ; 0xff + 8011968: f7ff ffd0 bl 801190c + 801196c: 4603 mov r3, r0 } - 8011a02: 4618 mov r0, r3 - 8011a04: bd80 pop {r7, pc} + 801196e: 4618 mov r0, r3 + 8011970: bd80 pop {r7, pc} -08011a06 : +08011972 : { - 8011a06: b580 push {r7, lr} - 8011a08: af00 add r7, sp, #0 + 8011972: b580 push {r7, lr} + 8011974: af00 add r7, sp, #0 return lv_color_make(0x00, 0x0, 0x00); - 8011a0a: 2200 movs r2, #0 - 8011a0c: 2100 movs r1, #0 - 8011a0e: 2000 movs r0, #0 - 8011a10: f7ff ffc6 bl 80119a0 - 8011a14: 4603 mov r3, r0 + 8011976: 2200 movs r2, #0 + 8011978: 2100 movs r1, #0 + 801197a: 2000 movs r0, #0 + 801197c: f7ff ffc6 bl 801190c + 8011980: 4603 mov r3, r0 } - 8011a16: 4618 mov r0, r3 - 8011a18: bd80 pop {r7, pc} + 8011982: 4618 mov r0, r3 + 8011984: bd80 pop {r7, pc} -08011a1a : +08011986 : * Copy an area * @param dest pointer to the destination area * @param src pointer to the source area */ inline static void lv_area_copy(lv_area_t * dest, const lv_area_t * src) { - 8011a1a: b480 push {r7} - 8011a1c: b083 sub sp, #12 - 8011a1e: af00 add r7, sp, #0 - 8011a20: 6078 str r0, [r7, #4] - 8011a22: 6039 str r1, [r7, #0] + 8011986: b480 push {r7} + 8011988: b083 sub sp, #12 + 801198a: af00 add r7, sp, #0 + 801198c: 6078 str r0, [r7, #4] + 801198e: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 8011a24: 683b ldr r3, [r7, #0] - 8011a26: f9b3 2000 ldrsh.w r2, [r3] - 8011a2a: 687b ldr r3, [r7, #4] - 8011a2c: 801a strh r2, [r3, #0] + 8011990: 683b ldr r3, [r7, #0] + 8011992: f9b3 2000 ldrsh.w r2, [r3] + 8011996: 687b ldr r3, [r7, #4] + 8011998: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 8011a2e: 683b ldr r3, [r7, #0] - 8011a30: f9b3 2002 ldrsh.w r2, [r3, #2] - 8011a34: 687b ldr r3, [r7, #4] - 8011a36: 805a strh r2, [r3, #2] + 801199a: 683b ldr r3, [r7, #0] + 801199c: f9b3 2002 ldrsh.w r2, [r3, #2] + 80119a0: 687b ldr r3, [r7, #4] + 80119a2: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 8011a38: 683b ldr r3, [r7, #0] - 8011a3a: f9b3 2004 ldrsh.w r2, [r3, #4] - 8011a3e: 687b ldr r3, [r7, #4] - 8011a40: 809a strh r2, [r3, #4] + 80119a4: 683b ldr r3, [r7, #0] + 80119a6: f9b3 2004 ldrsh.w r2, [r3, #4] + 80119aa: 687b ldr r3, [r7, #4] + 80119ac: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 8011a42: 683b ldr r3, [r7, #0] - 8011a44: f9b3 2006 ldrsh.w r2, [r3, #6] - 8011a48: 687b ldr r3, [r7, #4] - 8011a4a: 80da strh r2, [r3, #6] + 80119ae: 683b ldr r3, [r7, #0] + 80119b0: f9b3 2006 ldrsh.w r2, [r3, #6] + 80119b4: 687b ldr r3, [r7, #4] + 80119b6: 80da strh r2, [r3, #6] } - 8011a4c: bf00 nop - 8011a4e: 370c adds r7, #12 - 8011a50: 46bd mov sp, r7 - 8011a52: bc80 pop {r7} - 8011a54: 4770 bx lr + 80119b8: bf00 nop + 80119ba: 370c adds r7, #12 + 80119bc: 46bd mov sp, r7 + 80119be: bc80 pop {r7} + 80119c0: 4770 bx lr -08011a56 : +080119c2 : * Get the width of an area * @param area_p pointer to an area * @return the width of the area (if x1 == x2 -> width = 1) */ static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p) { - 8011a56: b480 push {r7} - 8011a58: b083 sub sp, #12 - 8011a5a: af00 add r7, sp, #0 - 8011a5c: 6078 str r0, [r7, #4] + 80119c2: b480 push {r7} + 80119c4: b083 sub sp, #12 + 80119c6: af00 add r7, sp, #0 + 80119c8: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 8011a5e: 687b ldr r3, [r7, #4] - 8011a60: f9b3 3004 ldrsh.w r3, [r3, #4] - 8011a64: b29a uxth r2, r3 - 8011a66: 687b ldr r3, [r7, #4] - 8011a68: f9b3 3000 ldrsh.w r3, [r3] - 8011a6c: b29b uxth r3, r3 - 8011a6e: 1ad3 subs r3, r2, r3 - 8011a70: b29b uxth r3, r3 - 8011a72: 3301 adds r3, #1 - 8011a74: b29b uxth r3, r3 - 8011a76: b21b sxth r3, r3 + 80119ca: 687b ldr r3, [r7, #4] + 80119cc: f9b3 3004 ldrsh.w r3, [r3, #4] + 80119d0: b29a uxth r2, r3 + 80119d2: 687b ldr r3, [r7, #4] + 80119d4: f9b3 3000 ldrsh.w r3, [r3] + 80119d8: b29b uxth r3, r3 + 80119da: 1ad3 subs r3, r2, r3 + 80119dc: b29b uxth r3, r3 + 80119de: 3301 adds r3, #1 + 80119e0: b29b uxth r3, r3 + 80119e2: b21b sxth r3, r3 } - 8011a78: 4618 mov r0, r3 - 8011a7a: 370c adds r7, #12 - 8011a7c: 46bd mov sp, r7 - 8011a7e: bc80 pop {r7} - 8011a80: 4770 bx lr + 80119e4: 4618 mov r0, r3 + 80119e6: 370c adds r7, #12 + 80119e8: 46bd mov sp, r7 + 80119ea: bc80 pop {r7} + 80119ec: 4770 bx lr -08011a82 : +080119ee : * Get the height of an area * @param area_p pointer to an area * @return the height of the area (if y1 == y2 -> height = 1) */ static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) { - 8011a82: b480 push {r7} - 8011a84: b083 sub sp, #12 - 8011a86: af00 add r7, sp, #0 - 8011a88: 6078 str r0, [r7, #4] + 80119ee: b480 push {r7} + 80119f0: b083 sub sp, #12 + 80119f2: af00 add r7, sp, #0 + 80119f4: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 8011a8a: 687b ldr r3, [r7, #4] - 8011a8c: f9b3 3006 ldrsh.w r3, [r3, #6] - 8011a90: b29a uxth r2, r3 - 8011a92: 687b ldr r3, [r7, #4] - 8011a94: f9b3 3002 ldrsh.w r3, [r3, #2] - 8011a98: b29b uxth r3, r3 - 8011a9a: 1ad3 subs r3, r2, r3 - 8011a9c: b29b uxth r3, r3 - 8011a9e: 3301 adds r3, #1 - 8011aa0: b29b uxth r3, r3 - 8011aa2: b21b sxth r3, r3 + 80119f6: 687b ldr r3, [r7, #4] + 80119f8: f9b3 3006 ldrsh.w r3, [r3, #6] + 80119fc: b29a uxth r2, r3 + 80119fe: 687b ldr r3, [r7, #4] + 8011a00: f9b3 3002 ldrsh.w r3, [r3, #2] + 8011a04: b29b uxth r3, r3 + 8011a06: 1ad3 subs r3, r2, r3 + 8011a08: b29b uxth r3, r3 + 8011a0a: 3301 adds r3, #1 + 8011a0c: b29b uxth r3, r3 + 8011a0e: b21b sxth r3, r3 } - 8011aa4: 4618 mov r0, r3 - 8011aa6: 370c adds r7, #12 - 8011aa8: 46bd mov sp, r7 - 8011aaa: bc80 pop {r7} - 8011aac: 4770 bx lr + 8011a10: 4618 mov r0, r3 + 8011a12: 370c adds r7, #12 + 8011a14: 46bd mov sp, r7 + 8011a16: bc80 pop {r7} + 8011a18: 4770 bx lr -08011aae : +08011a1a : /********************** * GLOBAL FUNCTIONS **********************/ void lv_draw_img_dsc_init(lv_draw_img_dsc_t * dsc) { - 8011aae: b590 push {r4, r7, lr} - 8011ab0: b083 sub sp, #12 - 8011ab2: af00 add r7, sp, #0 - 8011ab4: 6078 str r0, [r7, #4] + 8011a1a: b590 push {r4, r7, lr} + 8011a1c: b083 sub sp, #12 + 8011a1e: af00 add r7, sp, #0 + 8011a20: 6078 str r0, [r7, #4] lv_memset_00(dsc, sizeof(lv_draw_img_dsc_t)); - 8011ab6: 2118 movs r1, #24 - 8011ab8: 6878 ldr r0, [r7, #4] - 8011aba: f021 fb49 bl 8033150 + 8011a22: 2118 movs r1, #24 + 8011a24: 6878 ldr r0, [r7, #4] + 8011a26: f021 fb49 bl 80330bc dsc->recolor = lv_color_black(); - 8011abe: 687c ldr r4, [r7, #4] - 8011ac0: f7ff ffa1 bl 8011a06 - 8011ac4: 8120 strh r0, [r4, #8] + 8011a2a: 687c ldr r4, [r7, #4] + 8011a2c: f7ff ffa1 bl 8011972 + 8011a30: 8120 strh r0, [r4, #8] dsc->opa = LV_OPA_COVER; - 8011ac6: 687b ldr r3, [r7, #4] - 8011ac8: 22ff movs r2, #255 ; 0xff - 8011aca: 72da strb r2, [r3, #11] + 8011a32: 687b ldr r3, [r7, #4] + 8011a34: 22ff movs r2, #255 ; 0xff + 8011a36: 72da strb r2, [r3, #11] dsc->zoom = LV_IMG_ZOOM_NONE; - 8011acc: 687b ldr r3, [r7, #4] - 8011ace: f44f 7280 mov.w r2, #256 ; 0x100 - 8011ad2: 805a strh r2, [r3, #2] + 8011a38: 687b ldr r3, [r7, #4] + 8011a3a: f44f 7280 mov.w r2, #256 ; 0x100 + 8011a3e: 805a strh r2, [r3, #2] dsc->antialias = LV_COLOR_DEPTH > 8 ? 1 : 0; - 8011ad4: 687a ldr r2, [r7, #4] - 8011ad6: 7d13 ldrb r3, [r2, #20] - 8011ad8: f043 0301 orr.w r3, r3, #1 - 8011adc: 7513 strb r3, [r2, #20] + 8011a40: 687a ldr r2, [r7, #4] + 8011a42: 7d13 ldrb r3, [r2, #20] + 8011a44: f043 0301 orr.w r3, r3, #1 + 8011a48: 7513 strb r3, [r2, #20] } - 8011ade: bf00 nop - 8011ae0: 370c adds r7, #12 - 8011ae2: 46bd mov sp, r7 - 8011ae4: bd90 pop {r4, r7, pc} + 8011a4a: bf00 nop + 8011a4c: 370c adds r7, #12 + 8011a4e: 46bd mov sp, r7 + 8011a50: bd90 pop {r4, r7, pc} ... -08011ae8 : +08011a54 : * @param mask the image will be drawn only in this area * @param src pointer to a lv_color_t array which contains the pixels of the image * @param dsc pointer to an initialized `lv_draw_img_dsc_t` variable */ void lv_draw_img(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * dsc, const lv_area_t * coords, const void * src) { - 8011ae8: b590 push {r4, r7, lr} - 8011aea: b087 sub sp, #28 - 8011aec: af00 add r7, sp, #0 - 8011aee: 60f8 str r0, [r7, #12] - 8011af0: 60b9 str r1, [r7, #8] - 8011af2: 607a str r2, [r7, #4] - 8011af4: 603b str r3, [r7, #0] + 8011a54: b590 push {r4, r7, lr} + 8011a56: b087 sub sp, #28 + 8011a58: af00 add r7, sp, #0 + 8011a5a: 60f8 str r0, [r7, #12] + 8011a5c: 60b9 str r1, [r7, #8] + 8011a5e: 607a str r2, [r7, #4] + 8011a60: 603b str r3, [r7, #0] if(src == NULL) { - 8011af6: 683b ldr r3, [r7, #0] - 8011af8: 2b00 cmp r3, #0 - 8011afa: d105 bne.n 8011b08 + 8011a62: 683b ldr r3, [r7, #0] + 8011a64: 2b00 cmp r3, #0 + 8011a66: d105 bne.n 8011a74 LV_LOG_WARN("Image draw: src is NULL"); show_error(draw_ctx, coords, "No\ndata"); - 8011afc: 4a16 ldr r2, [pc, #88] ; (8011b58 ) - 8011afe: 6879 ldr r1, [r7, #4] - 8011b00: 68f8 ldr r0, [r7, #12] - 8011b02: f000 fa87 bl 8012014 + 8011a68: 4a16 ldr r2, [pc, #88] ; (8011ac4 ) + 8011a6a: 6879 ldr r1, [r7, #4] + 8011a6c: 68f8 ldr r0, [r7, #12] + 8011a6e: f000 fa87 bl 8011f80 return; - 8011b06: e023 b.n 8011b50 + 8011a72: e023 b.n 8011abc } if(dsc->opa <= LV_OPA_MIN) return; - 8011b08: 68bb ldr r3, [r7, #8] - 8011b0a: 7adb ldrb r3, [r3, #11] - 8011b0c: 2b02 cmp r3, #2 - 8011b0e: d91e bls.n 8011b4e + 8011a74: 68bb ldr r3, [r7, #8] + 8011a76: 7adb ldrb r3, [r3, #11] + 8011a78: 2b02 cmp r3, #2 + 8011a7a: d91e bls.n 8011aba lv_res_t res; if(draw_ctx->draw_img) { - 8011b10: 68fb ldr r3, [r7, #12] - 8011b12: 699b ldr r3, [r3, #24] - 8011b14: 2b00 cmp r3, #0 - 8011b16: d009 beq.n 8011b2c + 8011a7c: 68fb ldr r3, [r7, #12] + 8011a7e: 699b ldr r3, [r3, #24] + 8011a80: 2b00 cmp r3, #0 + 8011a82: d009 beq.n 8011a98 res = draw_ctx->draw_img(draw_ctx, dsc, coords, src); - 8011b18: 68fb ldr r3, [r7, #12] - 8011b1a: 699c ldr r4, [r3, #24] - 8011b1c: 683b ldr r3, [r7, #0] - 8011b1e: 687a ldr r2, [r7, #4] - 8011b20: 68b9 ldr r1, [r7, #8] - 8011b22: 68f8 ldr r0, [r7, #12] - 8011b24: 47a0 blx r4 - 8011b26: 4603 mov r3, r0 - 8011b28: 75fb strb r3, [r7, #23] - 8011b2a: e007 b.n 8011b3c + 8011a84: 68fb ldr r3, [r7, #12] + 8011a86: 699c ldr r4, [r3, #24] + 8011a88: 683b ldr r3, [r7, #0] + 8011a8a: 687a ldr r2, [r7, #4] + 8011a8c: 68b9 ldr r1, [r7, #8] + 8011a8e: 68f8 ldr r0, [r7, #12] + 8011a90: 47a0 blx r4 + 8011a92: 4603 mov r3, r0 + 8011a94: 75fb strb r3, [r7, #23] + 8011a96: e007 b.n 8011aa8 } else { res = decode_and_draw(draw_ctx, dsc, coords, src); - 8011b2c: 683b ldr r3, [r7, #0] - 8011b2e: 687a ldr r2, [r7, #4] - 8011b30: 68b9 ldr r1, [r7, #8] - 8011b32: 68f8 ldr r0, [r7, #12] - 8011b34: f000 f8df bl 8011cf6 - 8011b38: 4603 mov r3, r0 - 8011b3a: 75fb strb r3, [r7, #23] + 8011a98: 683b ldr r3, [r7, #0] + 8011a9a: 687a ldr r2, [r7, #4] + 8011a9c: 68b9 ldr r1, [r7, #8] + 8011a9e: 68f8 ldr r0, [r7, #12] + 8011aa0: f000 f8df bl 8011c62 + 8011aa4: 4603 mov r3, r0 + 8011aa6: 75fb strb r3, [r7, #23] } if(res == LV_RES_INV) { - 8011b3c: 7dfb ldrb r3, [r7, #23] - 8011b3e: 2b00 cmp r3, #0 - 8011b40: d106 bne.n 8011b50 + 8011aa8: 7dfb ldrb r3, [r7, #23] + 8011aaa: 2b00 cmp r3, #0 + 8011aac: d106 bne.n 8011abc LV_LOG_WARN("Image draw error"); show_error(draw_ctx, coords, "No\ndata"); - 8011b42: 4a05 ldr r2, [pc, #20] ; (8011b58 ) - 8011b44: 6879 ldr r1, [r7, #4] - 8011b46: 68f8 ldr r0, [r7, #12] - 8011b48: f000 fa64 bl 8012014 + 8011aae: 4a05 ldr r2, [pc, #20] ; (8011ac4 ) + 8011ab0: 6879 ldr r1, [r7, #4] + 8011ab2: 68f8 ldr r0, [r7, #12] + 8011ab4: f000 fa64 bl 8011f80 return; - 8011b4c: e000 b.n 8011b50 + 8011ab8: e000 b.n 8011abc if(dsc->opa <= LV_OPA_MIN) return; - 8011b4e: bf00 nop + 8011aba: bf00 nop } } - 8011b50: 371c adds r7, #28 - 8011b52: 46bd mov sp, r7 - 8011b54: bd90 pop {r4, r7, pc} - 8011b56: bf00 nop - 8011b58: 08046c24 .word 0x08046c24 + 8011abc: 371c adds r7, #28 + 8011abe: 46bd mov sp, r7 + 8011ac0: bd90 pop {r4, r7, pc} + 8011ac2: bf00 nop + 8011ac4: 08046b7c .word 0x08046b7c -08011b5c : +08011ac8 : * Get the pixel size of a color format in bits * @param cf a color format (`LV_IMG_CF_...`) * @return the pixel size in bits */ uint8_t lv_img_cf_get_px_size(lv_img_cf_t cf) { - 8011b5c: b480 push {r7} - 8011b5e: b085 sub sp, #20 - 8011b60: af00 add r7, sp, #0 - 8011b62: 4603 mov r3, r0 - 8011b64: 71fb strb r3, [r7, #7] + 8011ac8: b480 push {r7} + 8011aca: b085 sub sp, #20 + 8011acc: af00 add r7, sp, #0 + 8011ace: 4603 mov r3, r0 + 8011ad0: 71fb strb r3, [r7, #7] uint8_t px_size = 0; - 8011b66: 2300 movs r3, #0 - 8011b68: 73fb strb r3, [r7, #15] + 8011ad2: 2300 movs r3, #0 + 8011ad4: 73fb strb r3, [r7, #15] switch(cf) { - 8011b6a: 79fb ldrb r3, [r7, #7] - 8011b6c: 2b0e cmp r3, #14 - 8011b6e: d836 bhi.n 8011bde - 8011b70: a201 add r2, pc, #4 ; (adr r2, 8011b78 ) - 8011b72: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8011b76: bf00 nop - 8011b78: 08011bb5 .word 0x08011bb5 - 8011b7c: 08011bb5 .word 0x08011bb5 - 8011b80: 08011bdf .word 0x08011bdf - 8011b84: 08011bdf .word 0x08011bdf - 8011b88: 08011bbb .word 0x08011bbb - 8011b8c: 08011bc1 .word 0x08011bc1 - 8011b90: 08011bbb .word 0x08011bbb - 8011b94: 08011bc7 .word 0x08011bc7 - 8011b98: 08011bcd .word 0x08011bcd - 8011b9c: 08011bd3 .word 0x08011bd3 - 8011ba0: 08011bd9 .word 0x08011bd9 - 8011ba4: 08011bc7 .word 0x08011bc7 - 8011ba8: 08011bcd .word 0x08011bcd - 8011bac: 08011bd3 .word 0x08011bd3 - 8011bb0: 08011bd9 .word 0x08011bd9 + 8011ad6: 79fb ldrb r3, [r7, #7] + 8011ad8: 2b0e cmp r3, #14 + 8011ada: d836 bhi.n 8011b4a + 8011adc: a201 add r2, pc, #4 ; (adr r2, 8011ae4 ) + 8011ade: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8011ae2: bf00 nop + 8011ae4: 08011b21 .word 0x08011b21 + 8011ae8: 08011b21 .word 0x08011b21 + 8011aec: 08011b4b .word 0x08011b4b + 8011af0: 08011b4b .word 0x08011b4b + 8011af4: 08011b27 .word 0x08011b27 + 8011af8: 08011b2d .word 0x08011b2d + 8011afc: 08011b27 .word 0x08011b27 + 8011b00: 08011b33 .word 0x08011b33 + 8011b04: 08011b39 .word 0x08011b39 + 8011b08: 08011b3f .word 0x08011b3f + 8011b0c: 08011b45 .word 0x08011b45 + 8011b10: 08011b33 .word 0x08011b33 + 8011b14: 08011b39 .word 0x08011b39 + 8011b18: 08011b3f .word 0x08011b3f + 8011b1c: 08011b45 .word 0x08011b45 case LV_IMG_CF_UNKNOWN: case LV_IMG_CF_RAW: px_size = 0; - 8011bb4: 2300 movs r3, #0 - 8011bb6: 73fb strb r3, [r7, #15] + 8011b20: 2300 movs r3, #0 + 8011b22: 73fb strb r3, [r7, #15] break; - 8011bb8: e014 b.n 8011be4 + 8011b24: e014 b.n 8011b50 case LV_IMG_CF_TRUE_COLOR: case LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED: px_size = LV_COLOR_SIZE; - 8011bba: 2310 movs r3, #16 - 8011bbc: 73fb strb r3, [r7, #15] + 8011b26: 2310 movs r3, #16 + 8011b28: 73fb strb r3, [r7, #15] break; - 8011bbe: e011 b.n 8011be4 + 8011b2a: e011 b.n 8011b50 case LV_IMG_CF_TRUE_COLOR_ALPHA: px_size = LV_IMG_PX_SIZE_ALPHA_BYTE << 3; - 8011bc0: 2318 movs r3, #24 - 8011bc2: 73fb strb r3, [r7, #15] + 8011b2c: 2318 movs r3, #24 + 8011b2e: 73fb strb r3, [r7, #15] break; - 8011bc4: e00e b.n 8011be4 + 8011b30: e00e b.n 8011b50 case LV_IMG_CF_INDEXED_1BIT: case LV_IMG_CF_ALPHA_1BIT: px_size = 1; - 8011bc6: 2301 movs r3, #1 - 8011bc8: 73fb strb r3, [r7, #15] + 8011b32: 2301 movs r3, #1 + 8011b34: 73fb strb r3, [r7, #15] break; - 8011bca: e00b b.n 8011be4 + 8011b36: e00b b.n 8011b50 case LV_IMG_CF_INDEXED_2BIT: case LV_IMG_CF_ALPHA_2BIT: px_size = 2; - 8011bcc: 2302 movs r3, #2 - 8011bce: 73fb strb r3, [r7, #15] + 8011b38: 2302 movs r3, #2 + 8011b3a: 73fb strb r3, [r7, #15] break; - 8011bd0: e008 b.n 8011be4 + 8011b3c: e008 b.n 8011b50 case LV_IMG_CF_INDEXED_4BIT: case LV_IMG_CF_ALPHA_4BIT: px_size = 4; - 8011bd2: 2304 movs r3, #4 - 8011bd4: 73fb strb r3, [r7, #15] + 8011b3e: 2304 movs r3, #4 + 8011b40: 73fb strb r3, [r7, #15] break; - 8011bd6: e005 b.n 8011be4 + 8011b42: e005 b.n 8011b50 case LV_IMG_CF_INDEXED_8BIT: case LV_IMG_CF_ALPHA_8BIT: px_size = 8; - 8011bd8: 2308 movs r3, #8 - 8011bda: 73fb strb r3, [r7, #15] + 8011b44: 2308 movs r3, #8 + 8011b46: 73fb strb r3, [r7, #15] break; - 8011bdc: e002 b.n 8011be4 + 8011b48: e002 b.n 8011b50 default: px_size = 0; - 8011bde: 2300 movs r3, #0 - 8011be0: 73fb strb r3, [r7, #15] + 8011b4a: 2300 movs r3, #0 + 8011b4c: 73fb strb r3, [r7, #15] break; - 8011be2: bf00 nop + 8011b4e: bf00 nop } return px_size; - 8011be4: 7bfb ldrb r3, [r7, #15] + 8011b50: 7bfb ldrb r3, [r7, #15] } - 8011be6: 4618 mov r0, r3 - 8011be8: 3714 adds r7, #20 - 8011bea: 46bd mov sp, r7 - 8011bec: bc80 pop {r7} - 8011bee: 4770 bx lr + 8011b52: 4618 mov r0, r3 + 8011b54: 3714 adds r7, #20 + 8011b56: 46bd mov sp, r7 + 8011b58: bc80 pop {r7} + 8011b5a: 4770 bx lr -08011bf0 : +08011b5c : * Check if a color format is chroma keyed or not * @param cf a color format (`LV_IMG_CF_...`) * @return true: chroma keyed; false: not chroma keyed */ bool lv_img_cf_is_chroma_keyed(lv_img_cf_t cf) { - 8011bf0: b480 push {r7} - 8011bf2: b085 sub sp, #20 - 8011bf4: af00 add r7, sp, #0 - 8011bf6: 4603 mov r3, r0 - 8011bf8: 71fb strb r3, [r7, #7] + 8011b5c: b480 push {r7} + 8011b5e: b085 sub sp, #20 + 8011b60: af00 add r7, sp, #0 + 8011b62: 4603 mov r3, r0 + 8011b64: 71fb strb r3, [r7, #7] bool is_chroma_keyed = false; - 8011bfa: 2300 movs r3, #0 - 8011bfc: 73fb strb r3, [r7, #15] + 8011b66: 2300 movs r3, #0 + 8011b68: 73fb strb r3, [r7, #15] switch(cf) { - 8011bfe: 79fb ldrb r3, [r7, #7] - 8011c00: 2b03 cmp r3, #3 - 8011c02: d001 beq.n 8011c08 - 8011c04: 2b06 cmp r3, #6 - 8011c06: d102 bne.n 8011c0e + 8011b6a: 79fb ldrb r3, [r7, #7] + 8011b6c: 2b03 cmp r3, #3 + 8011b6e: d001 beq.n 8011b74 + 8011b70: 2b06 cmp r3, #6 + 8011b72: d102 bne.n 8011b7a case LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED: case LV_IMG_CF_RAW_CHROMA_KEYED: is_chroma_keyed = true; - 8011c08: 2301 movs r3, #1 - 8011c0a: 73fb strb r3, [r7, #15] + 8011b74: 2301 movs r3, #1 + 8011b76: 73fb strb r3, [r7, #15] break; - 8011c0c: e002 b.n 8011c14 + 8011b78: e002 b.n 8011b80 default: is_chroma_keyed = false; - 8011c0e: 2300 movs r3, #0 - 8011c10: 73fb strb r3, [r7, #15] + 8011b7a: 2300 movs r3, #0 + 8011b7c: 73fb strb r3, [r7, #15] break; - 8011c12: bf00 nop + 8011b7e: bf00 nop } return is_chroma_keyed; - 8011c14: 7bfb ldrb r3, [r7, #15] + 8011b80: 7bfb ldrb r3, [r7, #15] } - 8011c16: 4618 mov r0, r3 - 8011c18: 3714 adds r7, #20 - 8011c1a: 46bd mov sp, r7 - 8011c1c: bc80 pop {r7} - 8011c1e: 4770 bx lr + 8011b82: 4618 mov r0, r3 + 8011b84: 3714 adds r7, #20 + 8011b86: 46bd mov sp, r7 + 8011b88: bc80 pop {r7} + 8011b8a: 4770 bx lr -08011c20 : +08011b8c : * Check if a color format has alpha channel or not * @param cf a color format (`LV_IMG_CF_...`) * @return true: has alpha channel; false: doesn't have alpha channel */ bool lv_img_cf_has_alpha(lv_img_cf_t cf) { - 8011c20: b480 push {r7} - 8011c22: b085 sub sp, #20 - 8011c24: af00 add r7, sp, #0 - 8011c26: 4603 mov r3, r0 - 8011c28: 71fb strb r3, [r7, #7] + 8011b8c: b480 push {r7} + 8011b8e: b085 sub sp, #20 + 8011b90: af00 add r7, sp, #0 + 8011b92: 4603 mov r3, r0 + 8011b94: 71fb strb r3, [r7, #7] bool has_alpha = false; - 8011c2a: 2300 movs r3, #0 - 8011c2c: 73fb strb r3, [r7, #15] + 8011b96: 2300 movs r3, #0 + 8011b98: 73fb strb r3, [r7, #15] switch(cf) { - 8011c2e: 79fb ldrb r3, [r7, #7] - 8011c30: 2b0e cmp r3, #14 - 8011c32: bf8c ite hi - 8011c34: 2201 movhi r2, #1 - 8011c36: 2200 movls r2, #0 - 8011c38: b2d2 uxtb r2, r2 - 8011c3a: 2a00 cmp r2, #0 - 8011c3c: d10f bne.n 8011c5e - 8011c3e: f647 72a4 movw r2, #32676 ; 0x7fa4 - 8011c42: fa22 f303 lsr.w r3, r2, r3 - 8011c46: f003 0301 and.w r3, r3, #1 - 8011c4a: 2b00 cmp r3, #0 - 8011c4c: bf14 ite ne - 8011c4e: 2301 movne r3, #1 - 8011c50: 2300 moveq r3, #0 - 8011c52: b2db uxtb r3, r3 - 8011c54: 2b00 cmp r3, #0 - 8011c56: d002 beq.n 8011c5e + 8011b9a: 79fb ldrb r3, [r7, #7] + 8011b9c: 2b0e cmp r3, #14 + 8011b9e: bf8c ite hi + 8011ba0: 2201 movhi r2, #1 + 8011ba2: 2200 movls r2, #0 + 8011ba4: b2d2 uxtb r2, r2 + 8011ba6: 2a00 cmp r2, #0 + 8011ba8: d10f bne.n 8011bca + 8011baa: f647 72a4 movw r2, #32676 ; 0x7fa4 + 8011bae: fa22 f303 lsr.w r3, r2, r3 + 8011bb2: f003 0301 and.w r3, r3, #1 + 8011bb6: 2b00 cmp r3, #0 + 8011bb8: bf14 ite ne + 8011bba: 2301 movne r3, #1 + 8011bbc: 2300 moveq r3, #0 + 8011bbe: b2db uxtb r3, r3 + 8011bc0: 2b00 cmp r3, #0 + 8011bc2: d002 beq.n 8011bca case LV_IMG_CF_INDEXED_8BIT: case LV_IMG_CF_ALPHA_1BIT: case LV_IMG_CF_ALPHA_2BIT: case LV_IMG_CF_ALPHA_4BIT: case LV_IMG_CF_ALPHA_8BIT: has_alpha = true; - 8011c58: 2301 movs r3, #1 - 8011c5a: 73fb strb r3, [r7, #15] + 8011bc4: 2301 movs r3, #1 + 8011bc6: 73fb strb r3, [r7, #15] break; - 8011c5c: e002 b.n 8011c64 + 8011bc8: e002 b.n 8011bd0 default: has_alpha = false; - 8011c5e: 2300 movs r3, #0 - 8011c60: 73fb strb r3, [r7, #15] + 8011bca: 2300 movs r3, #0 + 8011bcc: 73fb strb r3, [r7, #15] break; - 8011c62: bf00 nop + 8011bce: bf00 nop } return has_alpha; - 8011c64: 7bfb ldrb r3, [r7, #15] + 8011bd0: 7bfb ldrb r3, [r7, #15] } - 8011c66: 4618 mov r0, r3 - 8011c68: 3714 adds r7, #20 - 8011c6a: 46bd mov sp, r7 - 8011c6c: bc80 pop {r7} - 8011c6e: 4770 bx lr + 8011bd2: 4618 mov r0, r3 + 8011bd4: 3714 adds r7, #20 + 8011bd6: 46bd mov sp, r7 + 8011bd8: bc80 pop {r7} + 8011bda: 4770 bx lr -08011c70 : +08011bdc : * - a path to a file (e.g. "S:/folder/image.bin") * - or a symbol (e.g. LV_SYMBOL_CLOSE) * @return type of the image source LV_IMG_SRC_VARIABLE/FILE/SYMBOL/UNKNOWN */ lv_img_src_t lv_img_src_get_type(const void * src) { - 8011c70: b480 push {r7} - 8011c72: b085 sub sp, #20 - 8011c74: af00 add r7, sp, #0 - 8011c76: 6078 str r0, [r7, #4] + 8011bdc: b480 push {r7} + 8011bde: b085 sub sp, #20 + 8011be0: af00 add r7, sp, #0 + 8011be2: 6078 str r0, [r7, #4] lv_img_src_t img_src_type = LV_IMG_SRC_UNKNOWN; - 8011c78: 2303 movs r3, #3 - 8011c7a: 73fb strb r3, [r7, #15] + 8011be4: 2303 movs r3, #3 + 8011be6: 73fb strb r3, [r7, #15] if(src == NULL) return img_src_type; - 8011c7c: 687b ldr r3, [r7, #4] - 8011c7e: 2b00 cmp r3, #0 - 8011c80: d101 bne.n 8011c86 - 8011c82: 7bfb ldrb r3, [r7, #15] - 8011c84: e018 b.n 8011cb8 + 8011be8: 687b ldr r3, [r7, #4] + 8011bea: 2b00 cmp r3, #0 + 8011bec: d101 bne.n 8011bf2 + 8011bee: 7bfb ldrb r3, [r7, #15] + 8011bf0: e018 b.n 8011c24 const uint8_t * u8_p = src; - 8011c86: 687b ldr r3, [r7, #4] - 8011c88: 60bb str r3, [r7, #8] + 8011bf2: 687b ldr r3, [r7, #4] + 8011bf4: 60bb str r3, [r7, #8] /*The first byte shows the type of the image source*/ if(u8_p[0] >= 0x20 && u8_p[0] <= 0x7F) { - 8011c8a: 68bb ldr r3, [r7, #8] - 8011c8c: 781b ldrb r3, [r3, #0] - 8011c8e: 2b1f cmp r3, #31 - 8011c90: d907 bls.n 8011ca2 - 8011c92: 68bb ldr r3, [r7, #8] - 8011c94: 781b ldrb r3, [r3, #0] - 8011c96: b25b sxtb r3, r3 - 8011c98: 2b00 cmp r3, #0 - 8011c9a: db02 blt.n 8011ca2 + 8011bf6: 68bb ldr r3, [r7, #8] + 8011bf8: 781b ldrb r3, [r3, #0] + 8011bfa: 2b1f cmp r3, #31 + 8011bfc: d907 bls.n 8011c0e + 8011bfe: 68bb ldr r3, [r7, #8] + 8011c00: 781b ldrb r3, [r3, #0] + 8011c02: b25b sxtb r3, r3 + 8011c04: 2b00 cmp r3, #0 + 8011c06: db02 blt.n 8011c0e img_src_type = LV_IMG_SRC_FILE; /*If it's an ASCII character then it's file name*/ - 8011c9c: 2301 movs r3, #1 - 8011c9e: 73fb strb r3, [r7, #15] - 8011ca0: e009 b.n 8011cb6 + 8011c08: 2301 movs r3, #1 + 8011c0a: 73fb strb r3, [r7, #15] + 8011c0c: e009 b.n 8011c22 } else if(u8_p[0] >= 0x80) { - 8011ca2: 68bb ldr r3, [r7, #8] - 8011ca4: 781b ldrb r3, [r3, #0] - 8011ca6: b25b sxtb r3, r3 - 8011ca8: 2b00 cmp r3, #0 - 8011caa: da02 bge.n 8011cb2 + 8011c0e: 68bb ldr r3, [r7, #8] + 8011c10: 781b ldrb r3, [r3, #0] + 8011c12: b25b sxtb r3, r3 + 8011c14: 2b00 cmp r3, #0 + 8011c16: da02 bge.n 8011c1e img_src_type = LV_IMG_SRC_SYMBOL; /*Symbols begins after 0x7F*/ - 8011cac: 2302 movs r3, #2 - 8011cae: 73fb strb r3, [r7, #15] - 8011cb0: e001 b.n 8011cb6 + 8011c18: 2302 movs r3, #2 + 8011c1a: 73fb strb r3, [r7, #15] + 8011c1c: e001 b.n 8011c22 } else { img_src_type = LV_IMG_SRC_VARIABLE; /*`lv_img_dsc_t` is draw to the first byte < 0x20*/ - 8011cb2: 2300 movs r3, #0 - 8011cb4: 73fb strb r3, [r7, #15] + 8011c1e: 2300 movs r3, #0 + 8011c20: 73fb strb r3, [r7, #15] if(LV_IMG_SRC_UNKNOWN == img_src_type) { LV_LOG_WARN("lv_img_src_get_type: unknown image type"); } return img_src_type; - 8011cb6: 7bfb ldrb r3, [r7, #15] + 8011c22: 7bfb ldrb r3, [r7, #15] } - 8011cb8: 4618 mov r0, r3 - 8011cba: 3714 adds r7, #20 - 8011cbc: 46bd mov sp, r7 - 8011cbe: bc80 pop {r7} - 8011cc0: 4770 bx lr + 8011c24: 4618 mov r0, r3 + 8011c26: 3714 adds r7, #20 + 8011c28: 46bd mov sp, r7 + 8011c2a: bc80 pop {r7} + 8011c2c: 4770 bx lr -08011cc2 : +08011c2e : void lv_draw_img_decoded(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * dsc, const lv_area_t * coords, const uint8_t * map_p, lv_img_cf_t color_format) { - 8011cc2: b590 push {r4, r7, lr} - 8011cc4: b087 sub sp, #28 - 8011cc6: af02 add r7, sp, #8 - 8011cc8: 60f8 str r0, [r7, #12] - 8011cca: 60b9 str r1, [r7, #8] - 8011ccc: 607a str r2, [r7, #4] - 8011cce: 603b str r3, [r7, #0] + 8011c2e: b590 push {r4, r7, lr} + 8011c30: b087 sub sp, #28 + 8011c32: af02 add r7, sp, #8 + 8011c34: 60f8 str r0, [r7, #12] + 8011c36: 60b9 str r1, [r7, #8] + 8011c38: 607a str r2, [r7, #4] + 8011c3a: 603b str r3, [r7, #0] if(draw_ctx->draw_img_decoded == NULL) return; - 8011cd0: 68fb ldr r3, [r7, #12] - 8011cd2: 695b ldr r3, [r3, #20] - 8011cd4: 2b00 cmp r3, #0 - 8011cd6: d00a beq.n 8011cee + 8011c3c: 68fb ldr r3, [r7, #12] + 8011c3e: 695b ldr r3, [r3, #20] + 8011c40: 2b00 cmp r3, #0 + 8011c42: d00a beq.n 8011c5a draw_ctx->draw_img_decoded(draw_ctx, dsc, coords, map_p, color_format); - 8011cd8: 68fb ldr r3, [r7, #12] - 8011cda: 695c ldr r4, [r3, #20] - 8011cdc: f897 3020 ldrb.w r3, [r7, #32] - 8011ce0: 9300 str r3, [sp, #0] - 8011ce2: 683b ldr r3, [r7, #0] - 8011ce4: 687a ldr r2, [r7, #4] - 8011ce6: 68b9 ldr r1, [r7, #8] - 8011ce8: 68f8 ldr r0, [r7, #12] - 8011cea: 47a0 blx r4 - 8011cec: e000 b.n 8011cf0 + 8011c44: 68fb ldr r3, [r7, #12] + 8011c46: 695c ldr r4, [r3, #20] + 8011c48: f897 3020 ldrb.w r3, [r7, #32] + 8011c4c: 9300 str r3, [sp, #0] + 8011c4e: 683b ldr r3, [r7, #0] + 8011c50: 687a ldr r2, [r7, #4] + 8011c52: 68b9 ldr r1, [r7, #8] + 8011c54: 68f8 ldr r0, [r7, #12] + 8011c56: 47a0 blx r4 + 8011c58: e000 b.n 8011c5c if(draw_ctx->draw_img_decoded == NULL) return; - 8011cee: bf00 nop + 8011c5a: bf00 nop } - 8011cf0: 3714 adds r7, #20 - 8011cf2: 46bd mov sp, r7 - 8011cf4: bd90 pop {r4, r7, pc} + 8011c5c: 3714 adds r7, #20 + 8011c5e: 46bd mov sp, r7 + 8011c60: bd90 pop {r4, r7, pc} -08011cf6 : +08011c62 : * STATIC FUNCTIONS **********************/ LV_ATTRIBUTE_FAST_MEM static lv_res_t decode_and_draw(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * draw_dsc, const lv_area_t * coords, const void * src) { - 8011cf6: b5b0 push {r4, r5, r7, lr} - 8011cf8: b09e sub sp, #120 ; 0x78 - 8011cfa: af02 add r7, sp, #8 - 8011cfc: 60f8 str r0, [r7, #12] - 8011cfe: 60b9 str r1, [r7, #8] - 8011d00: 607a str r2, [r7, #4] - 8011d02: 603b str r3, [r7, #0] + 8011c62: b5b0 push {r4, r5, r7, lr} + 8011c64: b09e sub sp, #120 ; 0x78 + 8011c66: af02 add r7, sp, #8 + 8011c68: 60f8 str r0, [r7, #12] + 8011c6a: 60b9 str r1, [r7, #8] + 8011c6c: 607a str r2, [r7, #4] + 8011c6e: 603b str r3, [r7, #0] if(draw_dsc->opa <= LV_OPA_MIN) return LV_RES_OK; - 8011d04: 68bb ldr r3, [r7, #8] - 8011d06: 7adb ldrb r3, [r3, #11] - 8011d08: 2b02 cmp r3, #2 - 8011d0a: d801 bhi.n 8011d10 - 8011d0c: 2301 movs r3, #1 - 8011d0e: e17d b.n 801200c + 8011c70: 68bb ldr r3, [r7, #8] + 8011c72: 7adb ldrb r3, [r3, #11] + 8011c74: 2b02 cmp r3, #2 + 8011c76: d801 bhi.n 8011c7c + 8011c78: 2301 movs r3, #1 + 8011c7a: e17d b.n 8011f78 _lv_img_cache_entry_t * cdsc = _lv_img_cache_open(src, draw_dsc->recolor, draw_dsc->frame_id); - 8011d10: 68bb ldr r3, [r7, #8] - 8011d12: 691a ldr r2, [r3, #16] - 8011d14: 68bb ldr r3, [r7, #8] - 8011d16: 8919 ldrh r1, [r3, #8] - 8011d18: 6838 ldr r0, [r7, #0] - 8011d1a: f004 fff7 bl 8016d0c <_lv_img_cache_open> - 8011d1e: 6638 str r0, [r7, #96] ; 0x60 + 8011c7c: 68bb ldr r3, [r7, #8] + 8011c7e: 691a ldr r2, [r3, #16] + 8011c80: 68bb ldr r3, [r7, #8] + 8011c82: 8919 ldrh r1, [r3, #8] + 8011c84: 6838 ldr r0, [r7, #0] + 8011c86: f004 fff7 bl 8016c78 <_lv_img_cache_open> + 8011c8a: 6638 str r0, [r7, #96] ; 0x60 if(cdsc == NULL) return LV_RES_INV; - 8011d20: 6e3b ldr r3, [r7, #96] ; 0x60 - 8011d22: 2b00 cmp r3, #0 - 8011d24: d101 bne.n 8011d2a - 8011d26: 2300 movs r3, #0 - 8011d28: e170 b.n 801200c + 8011c8c: 6e3b ldr r3, [r7, #96] ; 0x60 + 8011c8e: 2b00 cmp r3, #0 + 8011c90: d101 bne.n 8011c96 + 8011c92: 2300 movs r3, #0 + 8011c94: e170 b.n 8011f78 lv_img_cf_t cf; if(lv_img_cf_is_chroma_keyed(cdsc->dec_dsc.header.cf)) cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED; - 8011d2a: 6e3b ldr r3, [r7, #96] ; 0x60 - 8011d2c: 7d1b ldrb r3, [r3, #20] - 8011d2e: f3c3 0304 ubfx r3, r3, #0, #5 - 8011d32: b2db uxtb r3, r3 - 8011d34: 4618 mov r0, r3 - 8011d36: f7ff ff5b bl 8011bf0 - 8011d3a: 4603 mov r3, r0 - 8011d3c: 2b00 cmp r3, #0 - 8011d3e: d003 beq.n 8011d48 - 8011d40: 2306 movs r3, #6 - 8011d42: f887 306f strb.w r3, [r7, #111] ; 0x6f - 8011d46: e011 b.n 8011d6c + 8011c96: 6e3b ldr r3, [r7, #96] ; 0x60 + 8011c98: 7d1b ldrb r3, [r3, #20] + 8011c9a: f3c3 0304 ubfx r3, r3, #0, #5 + 8011c9e: b2db uxtb r3, r3 + 8011ca0: 4618 mov r0, r3 + 8011ca2: f7ff ff5b bl 8011b5c + 8011ca6: 4603 mov r3, r0 + 8011ca8: 2b00 cmp r3, #0 + 8011caa: d003 beq.n 8011cb4 + 8011cac: 2306 movs r3, #6 + 8011cae: f887 306f strb.w r3, [r7, #111] ; 0x6f + 8011cb2: e011 b.n 8011cd8 else if(lv_img_cf_has_alpha(cdsc->dec_dsc.header.cf)) cf = LV_IMG_CF_TRUE_COLOR_ALPHA; - 8011d48: 6e3b ldr r3, [r7, #96] ; 0x60 - 8011d4a: 7d1b ldrb r3, [r3, #20] - 8011d4c: f3c3 0304 ubfx r3, r3, #0, #5 - 8011d50: b2db uxtb r3, r3 - 8011d52: 4618 mov r0, r3 - 8011d54: f7ff ff64 bl 8011c20 - 8011d58: 4603 mov r3, r0 - 8011d5a: 2b00 cmp r3, #0 - 8011d5c: d003 beq.n 8011d66 - 8011d5e: 2305 movs r3, #5 - 8011d60: f887 306f strb.w r3, [r7, #111] ; 0x6f - 8011d64: e002 b.n 8011d6c + 8011cb4: 6e3b ldr r3, [r7, #96] ; 0x60 + 8011cb6: 7d1b ldrb r3, [r3, #20] + 8011cb8: f3c3 0304 ubfx r3, r3, #0, #5 + 8011cbc: b2db uxtb r3, r3 + 8011cbe: 4618 mov r0, r3 + 8011cc0: f7ff ff64 bl 8011b8c + 8011cc4: 4603 mov r3, r0 + 8011cc6: 2b00 cmp r3, #0 + 8011cc8: d003 beq.n 8011cd2 + 8011cca: 2305 movs r3, #5 + 8011ccc: f887 306f strb.w r3, [r7, #111] ; 0x6f + 8011cd0: e002 b.n 8011cd8 else cf = LV_IMG_CF_TRUE_COLOR; - 8011d66: 2304 movs r3, #4 - 8011d68: f887 306f strb.w r3, [r7, #111] ; 0x6f + 8011cd2: 2304 movs r3, #4 + 8011cd4: f887 306f strb.w r3, [r7, #111] ; 0x6f if(cdsc->dec_dsc.error_msg != NULL) { - 8011d6c: 6e3b ldr r3, [r7, #96] ; 0x60 - 8011d6e: 6a1b ldr r3, [r3, #32] - 8011d70: 2b00 cmp r3, #0 - 8011d72: d007 beq.n 8011d84 + 8011cd8: 6e3b ldr r3, [r7, #96] ; 0x60 + 8011cda: 6a1b ldr r3, [r3, #32] + 8011cdc: 2b00 cmp r3, #0 + 8011cde: d007 beq.n 8011cf0 LV_LOG_WARN("Image draw error"); show_error(draw_ctx, coords, cdsc->dec_dsc.error_msg); - 8011d74: 6e3b ldr r3, [r7, #96] ; 0x60 - 8011d76: 6a1b ldr r3, [r3, #32] - 8011d78: 461a mov r2, r3 - 8011d7a: 6879 ldr r1, [r7, #4] - 8011d7c: 68f8 ldr r0, [r7, #12] - 8011d7e: f000 f949 bl 8012014 - 8011d82: e13f b.n 8012004 + 8011ce0: 6e3b ldr r3, [r7, #96] ; 0x60 + 8011ce2: 6a1b ldr r3, [r3, #32] + 8011ce4: 461a mov r2, r3 + 8011ce6: 6879 ldr r1, [r7, #4] + 8011ce8: 68f8 ldr r0, [r7, #12] + 8011cea: f000 f949 bl 8011f80 + 8011cee: e13f b.n 8011f70 } /*The decoder could open the image and gave the entire uncompressed image. *Just draw it!*/ else if(cdsc->dec_dsc.img_data) { - 8011d84: 6e3b ldr r3, [r7, #96] ; 0x60 - 8011d86: 699b ldr r3, [r3, #24] - 8011d88: 2b00 cmp r3, #0 - 8011d8a: f000 8086 beq.w 8011e9a + 8011cf0: 6e3b ldr r3, [r7, #96] ; 0x60 + 8011cf2: 699b ldr r3, [r3, #24] + 8011cf4: 2b00 cmp r3, #0 + 8011cf6: f000 8086 beq.w 8011e06 lv_area_t map_area_rot; lv_area_copy(&map_area_rot, coords); - 8011d8e: f107 0330 add.w r3, r7, #48 ; 0x30 - 8011d92: 6879 ldr r1, [r7, #4] - 8011d94: 4618 mov r0, r3 - 8011d96: f7ff fe40 bl 8011a1a + 8011cfa: f107 0330 add.w r3, r7, #48 ; 0x30 + 8011cfe: 6879 ldr r1, [r7, #4] + 8011d00: 4618 mov r0, r3 + 8011d02: f7ff fe40 bl 8011986 if(draw_dsc->angle || draw_dsc->zoom != LV_IMG_ZOOM_NONE) { - 8011d9a: 68bb ldr r3, [r7, #8] - 8011d9c: 881b ldrh r3, [r3, #0] - 8011d9e: 2b00 cmp r3, #0 - 8011da0: d104 bne.n 8011dac - 8011da2: 68bb ldr r3, [r7, #8] - 8011da4: 885b ldrh r3, [r3, #2] - 8011da6: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 8011daa: d048 beq.n 8011e3e + 8011d06: 68bb ldr r3, [r7, #8] + 8011d08: 881b ldrh r3, [r3, #0] + 8011d0a: 2b00 cmp r3, #0 + 8011d0c: d104 bne.n 8011d18 + 8011d0e: 68bb ldr r3, [r7, #8] + 8011d10: 885b ldrh r3, [r3, #2] + 8011d12: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 8011d16: d048 beq.n 8011daa int32_t w = lv_area_get_width(coords); - 8011dac: 6878 ldr r0, [r7, #4] - 8011dae: f7ff fe52 bl 8011a56 - 8011db2: 4603 mov r3, r0 - 8011db4: 647b str r3, [r7, #68] ; 0x44 + 8011d18: 6878 ldr r0, [r7, #4] + 8011d1a: f7ff fe52 bl 80119c2 + 8011d1e: 4603 mov r3, r0 + 8011d20: 647b str r3, [r7, #68] ; 0x44 int32_t h = lv_area_get_height(coords); - 8011db6: 6878 ldr r0, [r7, #4] - 8011db8: f7ff fe63 bl 8011a82 - 8011dbc: 4603 mov r3, r0 - 8011dbe: 643b str r3, [r7, #64] ; 0x40 + 8011d22: 6878 ldr r0, [r7, #4] + 8011d24: f7ff fe63 bl 80119ee + 8011d28: 4603 mov r3, r0 + 8011d2a: 643b str r3, [r7, #64] ; 0x40 _lv_img_buf_get_transformed_area(&map_area_rot, w, h, draw_dsc->angle, draw_dsc->zoom, &draw_dsc->pivot); - 8011dc0: 6c7b ldr r3, [r7, #68] ; 0x44 - 8011dc2: b219 sxth r1, r3 - 8011dc4: 6c3b ldr r3, [r7, #64] ; 0x40 - 8011dc6: b21c sxth r4, r3 - 8011dc8: 68bb ldr r3, [r7, #8] - 8011dca: 881b ldrh r3, [r3, #0] - 8011dcc: b21d sxth r5, r3 - 8011dce: 68bb ldr r3, [r7, #8] - 8011dd0: 885b ldrh r3, [r3, #2] - 8011dd2: 68ba ldr r2, [r7, #8] - 8011dd4: 3204 adds r2, #4 - 8011dd6: f107 0030 add.w r0, r7, #48 ; 0x30 - 8011dda: 9201 str r2, [sp, #4] - 8011ddc: 9300 str r3, [sp, #0] - 8011dde: 462b mov r3, r5 - 8011de0: 4622 mov r2, r4 - 8011de2: f004 f969 bl 80160b8 <_lv_img_buf_get_transformed_area> + 8011d2c: 6c7b ldr r3, [r7, #68] ; 0x44 + 8011d2e: b219 sxth r1, r3 + 8011d30: 6c3b ldr r3, [r7, #64] ; 0x40 + 8011d32: b21c sxth r4, r3 + 8011d34: 68bb ldr r3, [r7, #8] + 8011d36: 881b ldrh r3, [r3, #0] + 8011d38: b21d sxth r5, r3 + 8011d3a: 68bb ldr r3, [r7, #8] + 8011d3c: 885b ldrh r3, [r3, #2] + 8011d3e: 68ba ldr r2, [r7, #8] + 8011d40: 3204 adds r2, #4 + 8011d42: f107 0030 add.w r0, r7, #48 ; 0x30 + 8011d46: 9201 str r2, [sp, #4] + 8011d48: 9300 str r3, [sp, #0] + 8011d4a: 462b mov r3, r5 + 8011d4c: 4622 mov r2, r4 + 8011d4e: f004 f969 bl 8016024 <_lv_img_buf_get_transformed_area> map_area_rot.x1 += coords->x1; - 8011de6: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 8011dea: b29a uxth r2, r3 - 8011dec: 687b ldr r3, [r7, #4] - 8011dee: f9b3 3000 ldrsh.w r3, [r3] - 8011df2: b29b uxth r3, r3 - 8011df4: 4413 add r3, r2 - 8011df6: b29b uxth r3, r3 - 8011df8: b21b sxth r3, r3 - 8011dfa: 863b strh r3, [r7, #48] ; 0x30 + 8011d52: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 8011d56: b29a uxth r2, r3 + 8011d58: 687b ldr r3, [r7, #4] + 8011d5a: f9b3 3000 ldrsh.w r3, [r3] + 8011d5e: b29b uxth r3, r3 + 8011d60: 4413 add r3, r2 + 8011d62: b29b uxth r3, r3 + 8011d64: b21b sxth r3, r3 + 8011d66: 863b strh r3, [r7, #48] ; 0x30 map_area_rot.y1 += coords->y1; - 8011dfc: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 8011e00: b29a uxth r2, r3 - 8011e02: 687b ldr r3, [r7, #4] - 8011e04: f9b3 3002 ldrsh.w r3, [r3, #2] - 8011e08: b29b uxth r3, r3 - 8011e0a: 4413 add r3, r2 - 8011e0c: b29b uxth r3, r3 - 8011e0e: b21b sxth r3, r3 - 8011e10: 867b strh r3, [r7, #50] ; 0x32 + 8011d68: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 8011d6c: b29a uxth r2, r3 + 8011d6e: 687b ldr r3, [r7, #4] + 8011d70: f9b3 3002 ldrsh.w r3, [r3, #2] + 8011d74: b29b uxth r3, r3 + 8011d76: 4413 add r3, r2 + 8011d78: b29b uxth r3, r3 + 8011d7a: b21b sxth r3, r3 + 8011d7c: 867b strh r3, [r7, #50] ; 0x32 map_area_rot.x2 += coords->x1; - 8011e12: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 8011e16: b29a uxth r2, r3 - 8011e18: 687b ldr r3, [r7, #4] - 8011e1a: f9b3 3000 ldrsh.w r3, [r3] - 8011e1e: b29b uxth r3, r3 - 8011e20: 4413 add r3, r2 - 8011e22: b29b uxth r3, r3 - 8011e24: b21b sxth r3, r3 - 8011e26: 86bb strh r3, [r7, #52] ; 0x34 + 8011d7e: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 8011d82: b29a uxth r2, r3 + 8011d84: 687b ldr r3, [r7, #4] + 8011d86: f9b3 3000 ldrsh.w r3, [r3] + 8011d8a: b29b uxth r3, r3 + 8011d8c: 4413 add r3, r2 + 8011d8e: b29b uxth r3, r3 + 8011d90: b21b sxth r3, r3 + 8011d92: 86bb strh r3, [r7, #52] ; 0x34 map_area_rot.y2 += coords->y1; - 8011e28: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 8011e2c: b29a uxth r2, r3 - 8011e2e: 687b ldr r3, [r7, #4] - 8011e30: f9b3 3002 ldrsh.w r3, [r3, #2] - 8011e34: b29b uxth r3, r3 - 8011e36: 4413 add r3, r2 - 8011e38: b29b uxth r3, r3 - 8011e3a: b21b sxth r3, r3 - 8011e3c: 86fb strh r3, [r7, #54] ; 0x36 + 8011d94: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 8011d98: b29a uxth r2, r3 + 8011d9a: 687b ldr r3, [r7, #4] + 8011d9c: f9b3 3002 ldrsh.w r3, [r3, #2] + 8011da0: b29b uxth r3, r3 + 8011da2: 4413 add r3, r2 + 8011da4: b29b uxth r3, r3 + 8011da6: b21b sxth r3, r3 + 8011da8: 86fb strh r3, [r7, #54] ; 0x36 } lv_area_t clip_com; /*Common area of mask and coords*/ bool union_ok; union_ok = _lv_area_intersect(&clip_com, draw_ctx->clip_area, &map_area_rot); - 8011e3e: 68fb ldr r3, [r7, #12] - 8011e40: 6899 ldr r1, [r3, #8] - 8011e42: f107 0230 add.w r2, r7, #48 ; 0x30 - 8011e46: f107 0328 add.w r3, r7, #40 ; 0x28 - 8011e4a: 4618 mov r0, r3 - 8011e4c: f01f f92c bl 80310a8 <_lv_area_intersect> - 8011e50: 4603 mov r3, r0 - 8011e52: f887 303f strb.w r3, [r7, #63] ; 0x3f + 8011daa: 68fb ldr r3, [r7, #12] + 8011dac: 6899 ldr r1, [r3, #8] + 8011dae: f107 0230 add.w r2, r7, #48 ; 0x30 + 8011db2: f107 0328 add.w r3, r7, #40 ; 0x28 + 8011db6: 4618 mov r0, r3 + 8011db8: f01f f92c bl 8031014 <_lv_area_intersect> + 8011dbc: 4603 mov r3, r0 + 8011dbe: f887 303f strb.w r3, [r7, #63] ; 0x3f /*Out of mask. There is nothing to draw so the image is drawn successfully.*/ if(union_ok == false) { - 8011e56: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 8011e5a: f083 0301 eor.w r3, r3, #1 - 8011e5e: b2db uxtb r3, r3 - 8011e60: 2b00 cmp r3, #0 - 8011e62: d004 beq.n 8011e6e + 8011dc2: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 8011dc6: f083 0301 eor.w r3, r3, #1 + 8011dca: b2db uxtb r3, r3 + 8011dcc: 2b00 cmp r3, #0 + 8011dce: d004 beq.n 8011dda draw_cleanup(cdsc); - 8011e64: 6e38 ldr r0, [r7, #96] ; 0x60 - 8011e66: f000 f8fc bl 8012062 + 8011dd0: 6e38 ldr r0, [r7, #96] ; 0x60 + 8011dd2: f000 f8fc bl 8011fce return LV_RES_OK; - 8011e6a: 2301 movs r3, #1 - 8011e6c: e0ce b.n 801200c + 8011dd6: 2301 movs r3, #1 + 8011dd8: e0ce b.n 8011f78 } const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 8011e6e: 68fb ldr r3, [r7, #12] - 8011e70: 689b ldr r3, [r3, #8] - 8011e72: 63bb str r3, [r7, #56] ; 0x38 + 8011dda: 68fb ldr r3, [r7, #12] + 8011ddc: 689b ldr r3, [r3, #8] + 8011dde: 63bb str r3, [r7, #56] ; 0x38 draw_ctx->clip_area = &clip_com; - 8011e74: 68fb ldr r3, [r7, #12] - 8011e76: f107 0228 add.w r2, r7, #40 ; 0x28 - 8011e7a: 609a str r2, [r3, #8] + 8011de0: 68fb ldr r3, [r7, #12] + 8011de2: f107 0228 add.w r2, r7, #40 ; 0x28 + 8011de6: 609a str r2, [r3, #8] lv_draw_img_decoded(draw_ctx, draw_dsc, coords, cdsc->dec_dsc.img_data, cf); - 8011e7c: 6e3b ldr r3, [r7, #96] ; 0x60 - 8011e7e: 699a ldr r2, [r3, #24] - 8011e80: f897 306f ldrb.w r3, [r7, #111] ; 0x6f - 8011e84: 9300 str r3, [sp, #0] - 8011e86: 4613 mov r3, r2 - 8011e88: 687a ldr r2, [r7, #4] - 8011e8a: 68b9 ldr r1, [r7, #8] - 8011e8c: 68f8 ldr r0, [r7, #12] - 8011e8e: f7ff ff18 bl 8011cc2 + 8011de8: 6e3b ldr r3, [r7, #96] ; 0x60 + 8011dea: 699a ldr r2, [r3, #24] + 8011dec: f897 306f ldrb.w r3, [r7, #111] ; 0x6f + 8011df0: 9300 str r3, [sp, #0] + 8011df2: 4613 mov r3, r2 + 8011df4: 687a ldr r2, [r7, #4] + 8011df6: 68b9 ldr r1, [r7, #8] + 8011df8: 68f8 ldr r0, [r7, #12] + 8011dfa: f7ff ff18 bl 8011c2e draw_ctx->clip_area = clip_area_ori; - 8011e92: 68fb ldr r3, [r7, #12] - 8011e94: 6bba ldr r2, [r7, #56] ; 0x38 - 8011e96: 609a str r2, [r3, #8] - 8011e98: e0b4 b.n 8012004 + 8011dfe: 68fb ldr r3, [r7, #12] + 8011e00: 6bba ldr r2, [r7, #56] ; 0x38 + 8011e02: 609a str r2, [r3, #8] + 8011e04: e0b4 b.n 8011f70 } /*The whole uncompressed image is not available. Try to read it line-by-line*/ else { lv_area_t mask_com; /*Common area of mask and coords*/ bool union_ok; union_ok = _lv_area_intersect(&mask_com, draw_ctx->clip_area, coords); - 8011e9a: 68fb ldr r3, [r7, #12] - 8011e9c: 6899 ldr r1, [r3, #8] - 8011e9e: f107 0320 add.w r3, r7, #32 - 8011ea2: 687a ldr r2, [r7, #4] - 8011ea4: 4618 mov r0, r3 - 8011ea6: f01f f8ff bl 80310a8 <_lv_area_intersect> - 8011eaa: 4603 mov r3, r0 - 8011eac: f887 305f strb.w r3, [r7, #95] ; 0x5f + 8011e06: 68fb ldr r3, [r7, #12] + 8011e08: 6899 ldr r1, [r3, #8] + 8011e0a: f107 0320 add.w r3, r7, #32 + 8011e0e: 687a ldr r2, [r7, #4] + 8011e10: 4618 mov r0, r3 + 8011e12: f01f f8ff bl 8031014 <_lv_area_intersect> + 8011e16: 4603 mov r3, r0 + 8011e18: f887 305f strb.w r3, [r7, #95] ; 0x5f /*Out of mask. There is nothing to draw so the image is drawn successfully.*/ if(union_ok == false) { - 8011eb0: f897 305f ldrb.w r3, [r7, #95] ; 0x5f - 8011eb4: f083 0301 eor.w r3, r3, #1 - 8011eb8: b2db uxtb r3, r3 - 8011eba: 2b00 cmp r3, #0 - 8011ebc: d004 beq.n 8011ec8 + 8011e1c: f897 305f ldrb.w r3, [r7, #95] ; 0x5f + 8011e20: f083 0301 eor.w r3, r3, #1 + 8011e24: b2db uxtb r3, r3 + 8011e26: 2b00 cmp r3, #0 + 8011e28: d004 beq.n 8011e34 draw_cleanup(cdsc); - 8011ebe: 6e38 ldr r0, [r7, #96] ; 0x60 - 8011ec0: f000 f8cf bl 8012062 + 8011e2a: 6e38 ldr r0, [r7, #96] ; 0x60 + 8011e2c: f000 f8cf bl 8011fce return LV_RES_OK; - 8011ec4: 2301 movs r3, #1 - 8011ec6: e0a1 b.n 801200c + 8011e30: 2301 movs r3, #1 + 8011e32: e0a1 b.n 8011f78 } int32_t width = lv_area_get_width(&mask_com); - 8011ec8: f107 0320 add.w r3, r7, #32 - 8011ecc: 4618 mov r0, r3 - 8011ece: f7ff fdc2 bl 8011a56 - 8011ed2: 4603 mov r3, r0 - 8011ed4: 65bb str r3, [r7, #88] ; 0x58 + 8011e34: f107 0320 add.w r3, r7, #32 + 8011e38: 4618 mov r0, r3 + 8011e3a: f7ff fdc2 bl 80119c2 + 8011e3e: 4603 mov r3, r0 + 8011e40: 65bb str r3, [r7, #88] ; 0x58 uint8_t * buf = lv_mem_buf_get(lv_area_get_width(&mask_com) * - 8011ed6: f107 0320 add.w r3, r7, #32 - 8011eda: 4618 mov r0, r3 - 8011edc: f7ff fdbb bl 8011a56 - 8011ee0: 4603 mov r3, r0 - 8011ee2: 461a mov r2, r3 - 8011ee4: 4613 mov r3, r2 - 8011ee6: 005b lsls r3, r3, #1 - 8011ee8: 4413 add r3, r2 - 8011eea: 4618 mov r0, r3 - 8011eec: f020 fd88 bl 8032a00 - 8011ef0: 6578 str r0, [r7, #84] ; 0x54 + 8011e42: f107 0320 add.w r3, r7, #32 + 8011e46: 4618 mov r0, r3 + 8011e48: f7ff fdbb bl 80119c2 + 8011e4c: 4603 mov r3, r0 + 8011e4e: 461a mov r2, r3 + 8011e50: 4613 mov r3, r2 + 8011e52: 005b lsls r3, r3, #1 + 8011e54: 4413 add r3, r2 + 8011e56: 4618 mov r0, r3 + 8011e58: f020 fd88 bl 803296c + 8011e5c: 6578 str r0, [r7, #84] ; 0x54 LV_IMG_PX_SIZE_ALPHA_BYTE); /*+1 because of the possible alpha byte*/ const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 8011ef2: 68fb ldr r3, [r7, #12] - 8011ef4: 689b ldr r3, [r3, #8] - 8011ef6: 653b str r3, [r7, #80] ; 0x50 + 8011e5e: 68fb ldr r3, [r7, #12] + 8011e60: 689b ldr r3, [r3, #8] + 8011e62: 653b str r3, [r7, #80] ; 0x50 lv_area_t line; lv_area_copy(&line, &mask_com); - 8011ef8: f107 0220 add.w r2, r7, #32 - 8011efc: f107 0318 add.w r3, r7, #24 - 8011f00: 4611 mov r1, r2 - 8011f02: 4618 mov r0, r3 - 8011f04: f7ff fd89 bl 8011a1a + 8011e64: f107 0220 add.w r2, r7, #32 + 8011e68: f107 0318 add.w r3, r7, #24 + 8011e6c: 4611 mov r1, r2 + 8011e6e: 4618 mov r0, r3 + 8011e70: f7ff fd89 bl 8011986 lv_area_set_height(&line, 1); - 8011f08: f107 0318 add.w r3, r7, #24 - 8011f0c: 2101 movs r1, #1 - 8011f0e: 4618 mov r0, r3 - 8011f10: f01f f829 bl 8030f66 + 8011e74: f107 0318 add.w r3, r7, #24 + 8011e78: 2101 movs r1, #1 + 8011e7a: 4618 mov r0, r3 + 8011e7c: f01f f829 bl 8030ed2 int32_t x = mask_com.x1 - coords->x1; - 8011f14: f9b7 3020 ldrsh.w r3, [r7, #32] - 8011f18: 461a mov r2, r3 - 8011f1a: 687b ldr r3, [r7, #4] - 8011f1c: f9b3 3000 ldrsh.w r3, [r3] - 8011f20: 1ad3 subs r3, r2, r3 - 8011f22: 64fb str r3, [r7, #76] ; 0x4c + 8011e80: f9b7 3020 ldrsh.w r3, [r7, #32] + 8011e84: 461a mov r2, r3 + 8011e86: 687b ldr r3, [r7, #4] + 8011e88: f9b3 3000 ldrsh.w r3, [r3] + 8011e8c: 1ad3 subs r3, r2, r3 + 8011e8e: 64fb str r3, [r7, #76] ; 0x4c int32_t y = mask_com.y1 - coords->y1; - 8011f24: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 8011f28: 461a mov r2, r3 - 8011f2a: 687b ldr r3, [r7, #4] - 8011f2c: f9b3 3002 ldrsh.w r3, [r3, #2] - 8011f30: 1ad3 subs r3, r2, r3 - 8011f32: 66bb str r3, [r7, #104] ; 0x68 + 8011e90: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 8011e94: 461a mov r2, r3 + 8011e96: 687b ldr r3, [r7, #4] + 8011e98: f9b3 3002 ldrsh.w r3, [r3, #2] + 8011e9c: 1ad3 subs r3, r2, r3 + 8011e9e: 66bb str r3, [r7, #104] ; 0x68 int32_t row; lv_res_t read_res; for(row = mask_com.y1; row <= mask_com.y2; row++) { - 8011f34: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 8011f38: 667b str r3, [r7, #100] ; 0x64 - 8011f3a: e057 b.n 8011fec + 8011ea0: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 8011ea4: 667b str r3, [r7, #100] ; 0x64 + 8011ea6: e057 b.n 8011f58 lv_area_t mask_line; union_ok = _lv_area_intersect(&mask_line, clip_area_ori, &line); - 8011f3c: f107 0218 add.w r2, r7, #24 - 8011f40: f107 0310 add.w r3, r7, #16 - 8011f44: 6d39 ldr r1, [r7, #80] ; 0x50 - 8011f46: 4618 mov r0, r3 - 8011f48: f01f f8ae bl 80310a8 <_lv_area_intersect> - 8011f4c: 4603 mov r3, r0 - 8011f4e: f887 305f strb.w r3, [r7, #95] ; 0x5f + 8011ea8: f107 0218 add.w r2, r7, #24 + 8011eac: f107 0310 add.w r3, r7, #16 + 8011eb0: 6d39 ldr r1, [r7, #80] ; 0x50 + 8011eb2: 4618 mov r0, r3 + 8011eb4: f01f f8ae bl 8031014 <_lv_area_intersect> + 8011eb8: 4603 mov r3, r0 + 8011eba: f887 305f strb.w r3, [r7, #95] ; 0x5f if(union_ok == false) continue; - 8011f52: f897 305f ldrb.w r3, [r7, #95] ; 0x5f - 8011f56: f083 0301 eor.w r3, r3, #1 - 8011f5a: b2db uxtb r3, r3 - 8011f5c: 2b00 cmp r3, #0 - 8011f5e: d141 bne.n 8011fe4 + 8011ebe: f897 305f ldrb.w r3, [r7, #95] ; 0x5f + 8011ec2: f083 0301 eor.w r3, r3, #1 + 8011ec6: b2db uxtb r3, r3 + 8011ec8: 2b00 cmp r3, #0 + 8011eca: d141 bne.n 8011f50 read_res = lv_img_decoder_read_line(&cdsc->dec_dsc, x, y, width, buf); - 8011f60: 6e38 ldr r0, [r7, #96] ; 0x60 - 8011f62: 6cfb ldr r3, [r7, #76] ; 0x4c - 8011f64: b219 sxth r1, r3 - 8011f66: 6ebb ldr r3, [r7, #104] ; 0x68 - 8011f68: b21a sxth r2, r3 - 8011f6a: 6dbb ldr r3, [r7, #88] ; 0x58 - 8011f6c: b21c sxth r4, r3 - 8011f6e: 6d7b ldr r3, [r7, #84] ; 0x54 - 8011f70: 9300 str r3, [sp, #0] - 8011f72: 4623 mov r3, r4 - 8011f74: f005 f876 bl 8017064 - 8011f78: 4603 mov r3, r0 - 8011f7a: f887 304b strb.w r3, [r7, #75] ; 0x4b + 8011ecc: 6e38 ldr r0, [r7, #96] ; 0x60 + 8011ece: 6cfb ldr r3, [r7, #76] ; 0x4c + 8011ed0: b219 sxth r1, r3 + 8011ed2: 6ebb ldr r3, [r7, #104] ; 0x68 + 8011ed4: b21a sxth r2, r3 + 8011ed6: 6dbb ldr r3, [r7, #88] ; 0x58 + 8011ed8: b21c sxth r4, r3 + 8011eda: 6d7b ldr r3, [r7, #84] ; 0x54 + 8011edc: 9300 str r3, [sp, #0] + 8011ede: 4623 mov r3, r4 + 8011ee0: f005 f876 bl 8016fd0 + 8011ee4: 4603 mov r3, r0 + 8011ee6: f887 304b strb.w r3, [r7, #75] ; 0x4b if(read_res != LV_RES_OK) { - 8011f7e: f897 304b ldrb.w r3, [r7, #75] ; 0x4b - 8011f82: 2b01 cmp r3, #1 - 8011f84: d00e beq.n 8011fa4 + 8011eea: f897 304b ldrb.w r3, [r7, #75] ; 0x4b + 8011eee: 2b01 cmp r3, #1 + 8011ef0: d00e beq.n 8011f10 lv_img_decoder_close(&cdsc->dec_dsc); - 8011f86: 6e3b ldr r3, [r7, #96] ; 0x60 - 8011f88: 4618 mov r0, r3 - 8011f8a: f005 f897 bl 80170bc + 8011ef2: 6e3b ldr r3, [r7, #96] ; 0x60 + 8011ef4: 4618 mov r0, r3 + 8011ef6: f005 f897 bl 8017028 LV_LOG_WARN("Image draw can't read the line"); lv_mem_buf_release(buf); - 8011f8e: 6d78 ldr r0, [r7, #84] ; 0x54 - 8011f90: f020 fde2 bl 8032b58 + 8011efa: 6d78 ldr r0, [r7, #84] ; 0x54 + 8011efc: f020 fde2 bl 8032ac4 draw_cleanup(cdsc); - 8011f94: 6e38 ldr r0, [r7, #96] ; 0x60 - 8011f96: f000 f864 bl 8012062 + 8011f00: 6e38 ldr r0, [r7, #96] ; 0x60 + 8011f02: f000 f864 bl 8011fce draw_ctx->clip_area = clip_area_ori; - 8011f9a: 68fb ldr r3, [r7, #12] - 8011f9c: 6d3a ldr r2, [r7, #80] ; 0x50 - 8011f9e: 609a str r2, [r3, #8] + 8011f06: 68fb ldr r3, [r7, #12] + 8011f08: 6d3a ldr r2, [r7, #80] ; 0x50 + 8011f0a: 609a str r2, [r3, #8] return LV_RES_INV; - 8011fa0: 2300 movs r3, #0 + 8011f0c: 2300 movs r3, #0 return LV_RES_OK; - 8011fa2: e033 b.n 801200c + 8011f0e: e033 b.n 8011f78 } draw_ctx->clip_area = &mask_line; - 8011fa4: 68fb ldr r3, [r7, #12] - 8011fa6: f107 0210 add.w r2, r7, #16 - 8011faa: 609a str r2, [r3, #8] + 8011f10: 68fb ldr r3, [r7, #12] + 8011f12: f107 0210 add.w r2, r7, #16 + 8011f16: 609a str r2, [r3, #8] lv_draw_img_decoded(draw_ctx, draw_dsc, &line, buf, cf); - 8011fac: f107 0218 add.w r2, r7, #24 - 8011fb0: f897 306f ldrb.w r3, [r7, #111] ; 0x6f - 8011fb4: 9300 str r3, [sp, #0] - 8011fb6: 6d7b ldr r3, [r7, #84] ; 0x54 - 8011fb8: 68b9 ldr r1, [r7, #8] - 8011fba: 68f8 ldr r0, [r7, #12] - 8011fbc: f7ff fe81 bl 8011cc2 + 8011f18: f107 0218 add.w r2, r7, #24 + 8011f1c: f897 306f ldrb.w r3, [r7, #111] ; 0x6f + 8011f20: 9300 str r3, [sp, #0] + 8011f22: 6d7b ldr r3, [r7, #84] ; 0x54 + 8011f24: 68b9 ldr r1, [r7, #8] + 8011f26: 68f8 ldr r0, [r7, #12] + 8011f28: f7ff fe81 bl 8011c2e line.y1++; - 8011fc0: f9b7 301a ldrsh.w r3, [r7, #26] - 8011fc4: b29b uxth r3, r3 - 8011fc6: 3301 adds r3, #1 - 8011fc8: b29b uxth r3, r3 - 8011fca: b21b sxth r3, r3 - 8011fcc: 837b strh r3, [r7, #26] + 8011f2c: f9b7 301a ldrsh.w r3, [r7, #26] + 8011f30: b29b uxth r3, r3 + 8011f32: 3301 adds r3, #1 + 8011f34: b29b uxth r3, r3 + 8011f36: b21b sxth r3, r3 + 8011f38: 837b strh r3, [r7, #26] line.y2++; - 8011fce: f9b7 301e ldrsh.w r3, [r7, #30] - 8011fd2: b29b uxth r3, r3 - 8011fd4: 3301 adds r3, #1 - 8011fd6: b29b uxth r3, r3 - 8011fd8: b21b sxth r3, r3 - 8011fda: 83fb strh r3, [r7, #30] + 8011f3a: f9b7 301e ldrsh.w r3, [r7, #30] + 8011f3e: b29b uxth r3, r3 + 8011f40: 3301 adds r3, #1 + 8011f42: b29b uxth r3, r3 + 8011f44: b21b sxth r3, r3 + 8011f46: 83fb strh r3, [r7, #30] y++; - 8011fdc: 6ebb ldr r3, [r7, #104] ; 0x68 - 8011fde: 3301 adds r3, #1 - 8011fe0: 66bb str r3, [r7, #104] ; 0x68 - 8011fe2: e000 b.n 8011fe6 + 8011f48: 6ebb ldr r3, [r7, #104] ; 0x68 + 8011f4a: 3301 adds r3, #1 + 8011f4c: 66bb str r3, [r7, #104] ; 0x68 + 8011f4e: e000 b.n 8011f52 if(union_ok == false) continue; - 8011fe4: bf00 nop + 8011f50: bf00 nop for(row = mask_com.y1; row <= mask_com.y2; row++) { - 8011fe6: 6e7b ldr r3, [r7, #100] ; 0x64 - 8011fe8: 3301 adds r3, #1 - 8011fea: 667b str r3, [r7, #100] ; 0x64 - 8011fec: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 8011ff0: 461a mov r2, r3 - 8011ff2: 6e7b ldr r3, [r7, #100] ; 0x64 - 8011ff4: 4293 cmp r3, r2 - 8011ff6: dda1 ble.n 8011f3c + 8011f52: 6e7b ldr r3, [r7, #100] ; 0x64 + 8011f54: 3301 adds r3, #1 + 8011f56: 667b str r3, [r7, #100] ; 0x64 + 8011f58: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 8011f5c: 461a mov r2, r3 + 8011f5e: 6e7b ldr r3, [r7, #100] ; 0x64 + 8011f60: 4293 cmp r3, r2 + 8011f62: dda1 ble.n 8011ea8 } draw_ctx->clip_area = clip_area_ori; - 8011ff8: 68fb ldr r3, [r7, #12] - 8011ffa: 6d3a ldr r2, [r7, #80] ; 0x50 - 8011ffc: 609a str r2, [r3, #8] + 8011f64: 68fb ldr r3, [r7, #12] + 8011f66: 6d3a ldr r2, [r7, #80] ; 0x50 + 8011f68: 609a str r2, [r3, #8] lv_mem_buf_release(buf); - 8011ffe: 6d78 ldr r0, [r7, #84] ; 0x54 - 8012000: f020 fdaa bl 8032b58 + 8011f6a: 6d78 ldr r0, [r7, #84] ; 0x54 + 8011f6c: f020 fdaa bl 8032ac4 } draw_cleanup(cdsc); - 8012004: 6e38 ldr r0, [r7, #96] ; 0x60 - 8012006: f000 f82c bl 8012062 + 8011f70: 6e38 ldr r0, [r7, #96] ; 0x60 + 8011f72: f000 f82c bl 8011fce return LV_RES_OK; - 801200a: 2301 movs r3, #1 + 8011f76: 2301 movs r3, #1 } - 801200c: 4618 mov r0, r3 - 801200e: 3770 adds r7, #112 ; 0x70 - 8012010: 46bd mov sp, r7 - 8012012: bdb0 pop {r4, r5, r7, pc} + 8011f78: 4618 mov r0, r3 + 8011f7a: 3770 adds r7, #112 ; 0x70 + 8011f7c: 46bd mov sp, r7 + 8011f7e: bdb0 pop {r4, r5, r7, pc} -08012014 : +08011f80 : static void show_error(lv_draw_ctx_t * draw_ctx, const lv_area_t * coords, const char * msg) { - 8012014: b580 push {r7, lr} - 8012016: b09c sub sp, #112 ; 0x70 - 8012018: af02 add r7, sp, #8 - 801201a: 60f8 str r0, [r7, #12] - 801201c: 60b9 str r1, [r7, #8] - 801201e: 607a str r2, [r7, #4] + 8011f80: b580 push {r7, lr} + 8011f82: b09c sub sp, #112 ; 0x70 + 8011f84: af02 add r7, sp, #8 + 8011f86: 60f8 str r0, [r7, #12] + 8011f88: 60b9 str r1, [r7, #8] + 8011f8a: 607a str r2, [r7, #4] lv_draw_rect_dsc_t rect_dsc; lv_draw_rect_dsc_init(&rect_dsc); - 8012020: f107 0330 add.w r3, r7, #48 ; 0x30 - 8012024: 4618 mov r0, r3 - 8012026: f003 fbe5 bl 80157f4 + 8011f8c: f107 0330 add.w r3, r7, #48 ; 0x30 + 8011f90: 4618 mov r0, r3 + 8011f92: f003 fbe5 bl 8015760 rect_dsc.bg_color = lv_color_white(); - 801202a: f7ff fce2 bl 80119f2 - 801202e: 86b8 strh r0, [r7, #52] ; 0x34 + 8011f96: f7ff fce2 bl 801195e + 8011f9a: 86b8 strh r0, [r7, #52] ; 0x34 lv_draw_rect(draw_ctx, &rect_dsc, coords); - 8012030: f107 0330 add.w r3, r7, #48 ; 0x30 - 8012034: 68ba ldr r2, [r7, #8] - 8012036: 4619 mov r1, r3 - 8012038: 68f8 ldr r0, [r7, #12] - 801203a: f003 fc1d bl 8015878 + 8011f9c: f107 0330 add.w r3, r7, #48 ; 0x30 + 8011fa0: 68ba ldr r2, [r7, #8] + 8011fa2: 4619 mov r1, r3 + 8011fa4: 68f8 ldr r0, [r7, #12] + 8011fa6: f003 fc1d bl 80157e4 lv_draw_label_dsc_t label_dsc; lv_draw_label_dsc_init(&label_dsc); - 801203e: f107 0310 add.w r3, r7, #16 - 8012042: 4618 mov r0, r3 - 8012044: f000 f8a2 bl 801218c + 8011faa: f107 0310 add.w r3, r7, #16 + 8011fae: 4618 mov r0, r3 + 8011fb0: f000 f8a2 bl 80120f8 lv_draw_label(draw_ctx, &label_dsc, coords, msg, NULL); - 8012048: f107 0110 add.w r1, r7, #16 - 801204c: 2300 movs r3, #0 - 801204e: 9300 str r3, [sp, #0] - 8012050: 687b ldr r3, [r7, #4] - 8012052: 68ba ldr r2, [r7, #8] - 8012054: 68f8 ldr r0, [r7, #12] - 8012056: f000 f8c5 bl 80121e4 + 8011fb4: f107 0110 add.w r1, r7, #16 + 8011fb8: 2300 movs r3, #0 + 8011fba: 9300 str r3, [sp, #0] + 8011fbc: 687b ldr r3, [r7, #4] + 8011fbe: 68ba ldr r2, [r7, #8] + 8011fc0: 68f8 ldr r0, [r7, #12] + 8011fc2: f000 f8c5 bl 8012150 } - 801205a: bf00 nop - 801205c: 3768 adds r7, #104 ; 0x68 - 801205e: 46bd mov sp, r7 - 8012060: bd80 pop {r7, pc} + 8011fc6: bf00 nop + 8011fc8: 3768 adds r7, #104 ; 0x68 + 8011fca: 46bd mov sp, r7 + 8011fcc: bd80 pop {r7, pc} -08012062 : +08011fce : static void draw_cleanup(_lv_img_cache_entry_t * cache) { - 8012062: b580 push {r7, lr} - 8012064: b082 sub sp, #8 - 8012066: af00 add r7, sp, #0 - 8012068: 6078 str r0, [r7, #4] + 8011fce: b580 push {r7, lr} + 8011fd0: b082 sub sp, #8 + 8011fd2: af00 add r7, sp, #0 + 8011fd4: 6078 str r0, [r7, #4] /*Automatically close images with no caching*/ #if LV_IMG_CACHE_DEF_SIZE == 0 lv_img_decoder_close(&cache->dec_dsc); - 801206a: 687b ldr r3, [r7, #4] - 801206c: 4618 mov r0, r3 - 801206e: f005 f825 bl 80170bc + 8011fd6: 687b ldr r3, [r7, #4] + 8011fd8: 4618 mov r0, r3 + 8011fda: f005 f825 bl 8017028 #else LV_UNUSED(cache); #endif } - 8012072: bf00 nop - 8012074: 3708 adds r7, #8 - 8012076: 46bd mov sp, r7 - 8012078: bd80 pop {r7, pc} + 8011fde: bf00 nop + 8011fe0: 3708 adds r7, #8 + 8011fe2: 46bd mov sp, r7 + 8011fe4: bd80 pop {r7, pc} -0801207a : +08011fe6 : * Get the width of an area * @param area_p pointer to an area * @return the width of the area (if x1 == x2 -> width = 1) */ static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p) { - 801207a: b480 push {r7} - 801207c: b083 sub sp, #12 - 801207e: af00 add r7, sp, #0 - 8012080: 6078 str r0, [r7, #4] + 8011fe6: b480 push {r7} + 8011fe8: b083 sub sp, #12 + 8011fea: af00 add r7, sp, #0 + 8011fec: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 8012082: 687b ldr r3, [r7, #4] - 8012084: f9b3 3004 ldrsh.w r3, [r3, #4] - 8012088: b29a uxth r2, r3 - 801208a: 687b ldr r3, [r7, #4] - 801208c: f9b3 3000 ldrsh.w r3, [r3] - 8012090: b29b uxth r3, r3 - 8012092: 1ad3 subs r3, r2, r3 - 8012094: b29b uxth r3, r3 - 8012096: 3301 adds r3, #1 - 8012098: b29b uxth r3, r3 - 801209a: b21b sxth r3, r3 + 8011fee: 687b ldr r3, [r7, #4] + 8011ff0: f9b3 3004 ldrsh.w r3, [r3, #4] + 8011ff4: b29a uxth r2, r3 + 8011ff6: 687b ldr r3, [r7, #4] + 8011ff8: f9b3 3000 ldrsh.w r3, [r3] + 8011ffc: b29b uxth r3, r3 + 8011ffe: 1ad3 subs r3, r2, r3 + 8012000: b29b uxth r3, r3 + 8012002: 3301 adds r3, #1 + 8012004: b29b uxth r3, r3 + 8012006: b21b sxth r3, r3 } - 801209c: 4618 mov r0, r3 - 801209e: 370c adds r7, #12 - 80120a0: 46bd mov sp, r7 - 80120a2: bc80 pop {r7} - 80120a4: 4770 bx lr + 8012008: 4618 mov r0, r3 + 801200a: 370c adds r7, #12 + 801200c: 46bd mov sp, r7 + 801200e: bc80 pop {r7} + 8012010: 4770 bx lr -080120a6 : +08012012 : * Get the line height of a font. All characters fit into this height * @param font_p pointer to a font * @return the height of a font */ static inline lv_coord_t lv_font_get_line_height(const lv_font_t * font_p) { - 80120a6: b480 push {r7} - 80120a8: b083 sub sp, #12 - 80120aa: af00 add r7, sp, #0 - 80120ac: 6078 str r0, [r7, #4] + 8012012: b480 push {r7} + 8012014: b083 sub sp, #12 + 8012016: af00 add r7, sp, #0 + 8012018: 6078 str r0, [r7, #4] return font_p->line_height; - 80120ae: 687b ldr r3, [r7, #4] - 80120b0: f9b3 3008 ldrsh.w r3, [r3, #8] + 801201a: 687b ldr r3, [r7, #4] + 801201c: f9b3 3008 ldrsh.w r3, [r3, #8] } - 80120b4: 4618 mov r0, r3 - 80120b6: 370c adds r7, #12 - 80120b8: 46bd mov sp, r7 - 80120ba: bc80 pop {r7} - 80120bc: 4770 bx lr + 8012020: 4618 mov r0, r3 + 8012022: 370c adds r7, #12 + 8012024: 46bd mov sp, r7 + 8012026: bc80 pop {r7} + 8012028: 4770 bx lr -080120be : +0801202a : * @param dst pointer to the destination buffer * @param src pointer to the source buffer * @param len number of byte to copy */ LV_ATTRIBUTE_FAST_MEM static inline void * lv_memcpy_small(void * dst, const void * src, size_t len) { - 80120be: b480 push {r7} - 80120c0: b087 sub sp, #28 - 80120c2: af00 add r7, sp, #0 - 80120c4: 60f8 str r0, [r7, #12] - 80120c6: 60b9 str r1, [r7, #8] - 80120c8: 607a str r2, [r7, #4] + 801202a: b480 push {r7} + 801202c: b087 sub sp, #28 + 801202e: af00 add r7, sp, #0 + 8012030: 60f8 str r0, [r7, #12] + 8012032: 60b9 str r1, [r7, #8] + 8012034: 607a str r2, [r7, #4] uint8_t * d8 = (uint8_t *)dst; - 80120ca: 68fb ldr r3, [r7, #12] - 80120cc: 617b str r3, [r7, #20] + 8012036: 68fb ldr r3, [r7, #12] + 8012038: 617b str r3, [r7, #20] const uint8_t * s8 = (const uint8_t *)src; - 80120ce: 68bb ldr r3, [r7, #8] - 80120d0: 613b str r3, [r7, #16] + 801203a: 68bb ldr r3, [r7, #8] + 801203c: 613b str r3, [r7, #16] while(len) { - 80120d2: e00c b.n 80120ee + 801203e: e00c b.n 801205a *d8 = *s8; - 80120d4: 693b ldr r3, [r7, #16] - 80120d6: 781a ldrb r2, [r3, #0] - 80120d8: 697b ldr r3, [r7, #20] - 80120da: 701a strb r2, [r3, #0] + 8012040: 693b ldr r3, [r7, #16] + 8012042: 781a ldrb r2, [r3, #0] + 8012044: 697b ldr r3, [r7, #20] + 8012046: 701a strb r2, [r3, #0] d8++; - 80120dc: 697b ldr r3, [r7, #20] - 80120de: 3301 adds r3, #1 - 80120e0: 617b str r3, [r7, #20] + 8012048: 697b ldr r3, [r7, #20] + 801204a: 3301 adds r3, #1 + 801204c: 617b str r3, [r7, #20] s8++; - 80120e2: 693b ldr r3, [r7, #16] - 80120e4: 3301 adds r3, #1 - 80120e6: 613b str r3, [r7, #16] + 801204e: 693b ldr r3, [r7, #16] + 8012050: 3301 adds r3, #1 + 8012052: 613b str r3, [r7, #16] len--; - 80120e8: 687b ldr r3, [r7, #4] - 80120ea: 3b01 subs r3, #1 - 80120ec: 607b str r3, [r7, #4] + 8012054: 687b ldr r3, [r7, #4] + 8012056: 3b01 subs r3, #1 + 8012058: 607b str r3, [r7, #4] while(len) { - 80120ee: 687b ldr r3, [r7, #4] - 80120f0: 2b00 cmp r3, #0 - 80120f2: d1ef bne.n 80120d4 + 801205a: 687b ldr r3, [r7, #4] + 801205c: 2b00 cmp r3, #0 + 801205e: d1ef bne.n 8012040 } return dst; - 80120f4: 68fb ldr r3, [r7, #12] + 8012060: 68fb ldr r3, [r7, #12] } - 80120f6: 4618 mov r0, r3 - 80120f8: 371c adds r7, #28 - 80120fa: 46bd mov sp, r7 - 80120fc: bc80 pop {r7} - 80120fe: 4770 bx lr + 8012062: 4618 mov r0, r3 + 8012064: 371c adds r7, #28 + 8012066: 46bd mov sp, r7 + 8012068: bc80 pop {r7} + 801206a: 4770 bx lr -08012100 : +0801206c : { - 8012100: b490 push {r4, r7} - 8012102: b082 sub sp, #8 - 8012104: af00 add r7, sp, #0 - 8012106: 4604 mov r4, r0 - 8012108: 4608 mov r0, r1 - 801210a: 4611 mov r1, r2 - 801210c: 4622 mov r2, r4 - 801210e: 71fa strb r2, [r7, #7] - 8012110: 4602 mov r2, r0 - 8012112: 71ba strb r2, [r7, #6] - 8012114: 460a mov r2, r1 - 8012116: 717a strb r2, [r7, #5] + 801206c: b490 push {r4, r7} + 801206e: b082 sub sp, #8 + 8012070: af00 add r7, sp, #0 + 8012072: 4604 mov r4, r0 + 8012074: 4608 mov r0, r1 + 8012076: 4611 mov r1, r2 + 8012078: 4622 mov r2, r4 + 801207a: 71fa strb r2, [r7, #7] + 801207c: 4602 mov r2, r0 + 801207e: 71ba strb r2, [r7, #6] + 8012080: 460a mov r2, r1 + 8012082: 717a strb r2, [r7, #5] return _LV_COLOR_MAKE_TYPE_HELPER LV_COLOR_MAKE(r, g, b); - 8012118: 797a ldrb r2, [r7, #5] - 801211a: 08d2 lsrs r2, r2, #3 - 801211c: b2d2 uxtb r2, r2 - 801211e: f002 021f and.w r2, r2, #31 - 8012122: b2d0 uxtb r0, r2 - 8012124: 79ba ldrb r2, [r7, #6] - 8012126: 0892 lsrs r2, r2, #2 - 8012128: b2d2 uxtb r2, r2 - 801212a: f002 023f and.w r2, r2, #63 ; 0x3f - 801212e: b2d1 uxtb r1, r2 - 8012130: 79fa ldrb r2, [r7, #7] - 8012132: 08d2 lsrs r2, r2, #3 - 8012134: b2d2 uxtb r2, r2 - 8012136: f002 021f and.w r2, r2, #31 - 801213a: b2d2 uxtb r2, r2 - 801213c: f360 0304 bfi r3, r0, #0, #5 - 8012140: f361 134a bfi r3, r1, #5, #6 - 8012144: f362 23cf bfi r3, r2, #11, #5 + 8012084: 797a ldrb r2, [r7, #5] + 8012086: 08d2 lsrs r2, r2, #3 + 8012088: b2d2 uxtb r2, r2 + 801208a: f002 021f and.w r2, r2, #31 + 801208e: b2d0 uxtb r0, r2 + 8012090: 79ba ldrb r2, [r7, #6] + 8012092: 0892 lsrs r2, r2, #2 + 8012094: b2d2 uxtb r2, r2 + 8012096: f002 023f and.w r2, r2, #63 ; 0x3f + 801209a: b2d1 uxtb r1, r2 + 801209c: 79fa ldrb r2, [r7, #7] + 801209e: 08d2 lsrs r2, r2, #3 + 80120a0: b2d2 uxtb r2, r2 + 80120a2: f002 021f and.w r2, r2, #31 + 80120a6: b2d2 uxtb r2, r2 + 80120a8: f360 0304 bfi r3, r0, #0, #5 + 80120ac: f361 134a bfi r3, r1, #5, #6 + 80120b0: f362 23cf bfi r3, r2, #11, #5 } - 8012148: 4618 mov r0, r3 - 801214a: 3708 adds r7, #8 - 801214c: 46bd mov sp, r7 - 801214e: bc90 pop {r4, r7} - 8012150: 4770 bx lr + 80120b4: 4618 mov r0, r3 + 80120b6: 3708 adds r7, #8 + 80120b8: 46bd mov sp, r7 + 80120ba: bc90 pop {r4, r7} + 80120bc: 4770 bx lr -08012152 : +080120be : { - 8012152: b580 push {r7, lr} - 8012154: af00 add r7, sp, #0 + 80120be: b580 push {r7, lr} + 80120c0: af00 add r7, sp, #0 return lv_color_make(0x00, 0x0, 0x00); - 8012156: 2200 movs r2, #0 - 8012158: 2100 movs r1, #0 - 801215a: 2000 movs r0, #0 - 801215c: f7ff ffd0 bl 8012100 - 8012160: 4603 mov r3, r0 + 80120c2: 2200 movs r2, #0 + 80120c4: 2100 movs r1, #0 + 80120c6: 2000 movs r0, #0 + 80120c8: f7ff ffd0 bl 801206c + 80120cc: 4603 mov r3, r0 } - 8012162: 4618 mov r0, r3 - 8012164: bd80 pop {r7, pc} + 80120ce: 4618 mov r0, r3 + 80120d0: bd80 pop {r7, pc} -08012166 : +080120d2 : * @param align For LV_TEXT_ALIGN_AUTO give LV_TEXT_ALIGN_LEFT else leave unchanged, write back the calculated align here * @param base_dir Unused * @param txt Unused */ static inline void lv_bidi_calculate_align(lv_text_align_t * align, lv_base_dir_t * base_dir, const char * txt) { - 8012166: b480 push {r7} - 8012168: b085 sub sp, #20 - 801216a: af00 add r7, sp, #0 - 801216c: 60f8 str r0, [r7, #12] - 801216e: 60b9 str r1, [r7, #8] - 8012170: 607a str r2, [r7, #4] + 80120d2: b480 push {r7} + 80120d4: b085 sub sp, #20 + 80120d6: af00 add r7, sp, #0 + 80120d8: 60f8 str r0, [r7, #12] + 80120da: 60b9 str r1, [r7, #8] + 80120dc: 607a str r2, [r7, #4] LV_UNUSED(txt); LV_UNUSED(base_dir); if(*align == LV_TEXT_ALIGN_AUTO) * align = LV_TEXT_ALIGN_LEFT; - 8012172: 68fb ldr r3, [r7, #12] - 8012174: 781b ldrb r3, [r3, #0] - 8012176: 2b00 cmp r3, #0 - 8012178: d102 bne.n 8012180 - 801217a: 68fb ldr r3, [r7, #12] - 801217c: 2201 movs r2, #1 - 801217e: 701a strb r2, [r3, #0] + 80120de: 68fb ldr r3, [r7, #12] + 80120e0: 781b ldrb r3, [r3, #0] + 80120e2: 2b00 cmp r3, #0 + 80120e4: d102 bne.n 80120ec + 80120e6: 68fb ldr r3, [r7, #12] + 80120e8: 2201 movs r2, #1 + 80120ea: 701a strb r2, [r3, #0] } - 8012180: bf00 nop - 8012182: 3714 adds r7, #20 - 8012184: 46bd mov sp, r7 - 8012186: bc80 pop {r7} - 8012188: 4770 bx lr + 80120ec: bf00 nop + 80120ee: 3714 adds r7, #20 + 80120f0: 46bd mov sp, r7 + 80120f2: bc80 pop {r7} + 80120f4: 4770 bx lr ... -0801218c : +080120f8 : /********************** * GLOBAL FUNCTIONS **********************/ void lv_draw_label_dsc_init(lv_draw_label_dsc_t * dsc) { - 801218c: b590 push {r4, r7, lr} - 801218e: b083 sub sp, #12 - 8012190: af00 add r7, sp, #0 - 8012192: 6078 str r0, [r7, #4] + 80120f8: b590 push {r4, r7, lr} + 80120fa: b083 sub sp, #12 + 80120fc: af00 add r7, sp, #0 + 80120fe: 6078 str r0, [r7, #4] lv_memset_00(dsc, sizeof(lv_draw_label_dsc_t)); - 8012194: 2120 movs r1, #32 - 8012196: 6878 ldr r0, [r7, #4] - 8012198: f020 ffda bl 8033150 + 8012100: 2120 movs r1, #32 + 8012102: 6878 ldr r0, [r7, #4] + 8012104: f020 ffda bl 80330bc dsc->opa = LV_OPA_COVER; - 801219c: 687b ldr r3, [r7, #4] - 801219e: 22ff movs r2, #255 ; 0xff - 80121a0: 769a strb r2, [r3, #26] + 8012108: 687b ldr r3, [r7, #4] + 801210a: 22ff movs r2, #255 ; 0xff + 801210c: 769a strb r2, [r3, #26] dsc->color = lv_color_black(); - 80121a2: 687c ldr r4, [r7, #4] - 80121a4: f7ff ffd5 bl 8012152 - 80121a8: 81a0 strh r0, [r4, #12] + 801210e: 687c ldr r4, [r7, #4] + 8012110: f7ff ffd5 bl 80120be + 8012114: 81a0 strh r0, [r4, #12] dsc->font = LV_FONT_DEFAULT; - 80121aa: 687b ldr r3, [r7, #4] - 80121ac: 4a0c ldr r2, [pc, #48] ; (80121e0 ) - 80121ae: 601a str r2, [r3, #0] + 8012116: 687b ldr r3, [r7, #4] + 8012118: 4a0c ldr r2, [pc, #48] ; (801214c ) + 801211a: 601a str r2, [r3, #0] dsc->sel_start = LV_DRAW_LABEL_NO_TXT_SEL; - 80121b0: 687b ldr r3, [r7, #4] - 80121b2: f64f 72ff movw r2, #65535 ; 0xffff - 80121b6: 605a str r2, [r3, #4] + 801211c: 687b ldr r3, [r7, #4] + 801211e: f64f 72ff movw r2, #65535 ; 0xffff + 8012122: 605a str r2, [r3, #4] dsc->sel_end = LV_DRAW_LABEL_NO_TXT_SEL; - 80121b8: 687b ldr r3, [r7, #4] - 80121ba: f64f 72ff movw r2, #65535 ; 0xffff - 80121be: 609a str r2, [r3, #8] + 8012124: 687b ldr r3, [r7, #4] + 8012126: f64f 72ff movw r2, #65535 ; 0xffff + 801212a: 609a str r2, [r3, #8] dsc->sel_color = lv_color_black(); - 80121c0: 687c ldr r4, [r7, #4] - 80121c2: f7ff ffc6 bl 8012152 - 80121c6: 81e0 strh r0, [r4, #14] + 801212c: 687c ldr r4, [r7, #4] + 801212e: f7ff ffc6 bl 80120be + 8012132: 81e0 strh r0, [r4, #14] dsc->sel_bg_color = lv_palette_main(LV_PALETTE_BLUE); - 80121c8: 687c ldr r4, [r7, #4] - 80121ca: 2005 movs r0, #5 - 80121cc: f01f fc66 bl 8031a9c - 80121d0: 8220 strh r0, [r4, #16] + 8012134: 687c ldr r4, [r7, #4] + 8012136: 2005 movs r0, #5 + 8012138: f01f fc66 bl 8031a08 + 801213c: 8220 strh r0, [r4, #16] dsc->bidi_dir = LV_BASE_DIR_LTR; - 80121d2: 687b ldr r3, [r7, #4] - 80121d4: 2200 movs r2, #0 - 80121d6: 76da strb r2, [r3, #27] + 801213e: 687b ldr r3, [r7, #4] + 8012140: 2200 movs r2, #0 + 8012142: 76da strb r2, [r3, #27] } - 80121d8: bf00 nop - 80121da: 370c adds r7, #12 - 80121dc: 46bd mov sp, r7 - 80121de: bd90 pop {r4, r7, pc} - 80121e0: 08070758 .word 0x08070758 + 8012144: bf00 nop + 8012146: 370c adds r7, #12 + 8012148: 46bd mov sp, r7 + 801214a: bd90 pop {r4, r7, pc} + 801214c: 080706b0 .word 0x080706b0 -080121e4 : +08012150 : * @param hint pointer to a `lv_draw_label_hint_t` variable. * It is managed by the draw to speed up the drawing of very long texts (thousands of lines). */ LV_ATTRIBUTE_FAST_MEM void lv_draw_label(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_area_t * coords, const char * txt, lv_draw_label_hint_t * hint) { - 80121e4: b5b0 push {r4, r5, r7, lr} - 80121e6: b0ca sub sp, #296 ; 0x128 - 80121e8: af04 add r7, sp, #16 - 80121ea: f507 748c add.w r4, r7, #280 ; 0x118 - 80121ee: f5a4 7486 sub.w r4, r4, #268 ; 0x10c - 80121f2: 6020 str r0, [r4, #0] - 80121f4: f507 708c add.w r0, r7, #280 ; 0x118 - 80121f8: f5a0 7088 sub.w r0, r0, #272 ; 0x110 - 80121fc: 6001 str r1, [r0, #0] - 80121fe: f507 718c add.w r1, r7, #280 ; 0x118 - 8012202: f5a1 718a sub.w r1, r1, #276 ; 0x114 - 8012206: 600a str r2, [r1, #0] - 8012208: f507 728c add.w r2, r7, #280 ; 0x118 - 801220c: f5a2 728c sub.w r2, r2, #280 ; 0x118 - 8012210: 6013 str r3, [r2, #0] + 8012150: b5b0 push {r4, r5, r7, lr} + 8012152: b0ca sub sp, #296 ; 0x128 + 8012154: af04 add r7, sp, #16 + 8012156: f507 748c add.w r4, r7, #280 ; 0x118 + 801215a: f5a4 7486 sub.w r4, r4, #268 ; 0x10c + 801215e: 6020 str r0, [r4, #0] + 8012160: f507 708c add.w r0, r7, #280 ; 0x118 + 8012164: f5a0 7088 sub.w r0, r0, #272 ; 0x110 + 8012168: 6001 str r1, [r0, #0] + 801216a: f507 718c add.w r1, r7, #280 ; 0x118 + 801216e: f5a1 718a sub.w r1, r1, #276 ; 0x114 + 8012172: 600a str r2, [r1, #0] + 8012174: f507 728c add.w r2, r7, #280 ; 0x118 + 8012178: f5a2 728c sub.w r2, r2, #280 ; 0x118 + 801217c: 6013 str r3, [r2, #0] if(dsc->opa <= LV_OPA_MIN) return; - 8012212: f507 738c add.w r3, r7, #280 ; 0x118 - 8012216: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 801221a: 681b ldr r3, [r3, #0] - 801221c: 7e9b ldrb r3, [r3, #26] - 801221e: 2b02 cmp r3, #2 - 8012220: f240 85f5 bls.w 8012e0e + 801217e: f507 738c add.w r3, r7, #280 ; 0x118 + 8012182: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012186: 681b ldr r3, [r3, #0] + 8012188: 7e9b ldrb r3, [r3, #26] + 801218a: 2b02 cmp r3, #2 + 801218c: f240 85f5 bls.w 8012d7a if(dsc->font == NULL) { - 8012224: f507 738c add.w r3, r7, #280 ; 0x118 - 8012228: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 801222c: 681b ldr r3, [r3, #0] - 801222e: 681b ldr r3, [r3, #0] - 8012230: 2b00 cmp r3, #0 - 8012232: f000 85ee beq.w 8012e12 + 8012190: f507 738c add.w r3, r7, #280 ; 0x118 + 8012194: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012198: 681b ldr r3, [r3, #0] + 801219a: 681b ldr r3, [r3, #0] + 801219c: 2b00 cmp r3, #0 + 801219e: f000 85ee beq.w 8012d7e LV_LOG_WARN("dsc->font == NULL"); return; } if(draw_ctx->draw_letter == NULL) { - 8012236: f507 738c add.w r3, r7, #280 ; 0x118 - 801223a: f5a3 7386 sub.w r3, r3, #268 ; 0x10c - 801223e: 681b ldr r3, [r3, #0] - 8012240: 69db ldr r3, [r3, #28] - 8012242: 2b00 cmp r3, #0 - 8012244: f000 85e7 beq.w 8012e16 + 80121a2: f507 738c add.w r3, r7, #280 ; 0x118 + 80121a6: f5a3 7386 sub.w r3, r3, #268 ; 0x10c + 80121aa: 681b ldr r3, [r3, #0] + 80121ac: 69db ldr r3, [r3, #28] + 80121ae: 2b00 cmp r3, #0 + 80121b0: f000 85e7 beq.w 8012d82 LV_LOG_WARN("draw->draw_letter == NULL (there is no function to draw letters)"); return; } lv_draw_label_dsc_t dsc_mod = *dsc; - 8012248: f507 738c add.w r3, r7, #280 ; 0x118 - 801224c: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012250: 681b ldr r3, [r3, #0] - 8012252: f107 049c add.w r4, r7, #156 ; 0x9c - 8012256: 461d mov r5, r3 - 8012258: cd0f ldmia r5!, {r0, r1, r2, r3} - 801225a: c40f stmia r4!, {r0, r1, r2, r3} - 801225c: e895 000f ldmia.w r5, {r0, r1, r2, r3} - 8012260: e884 000f stmia.w r4, {r0, r1, r2, r3} + 80121b4: f507 738c add.w r3, r7, #280 ; 0x118 + 80121b8: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 80121bc: 681b ldr r3, [r3, #0] + 80121be: f107 049c add.w r4, r7, #156 ; 0x9c + 80121c2: 461d mov r5, r3 + 80121c4: cd0f ldmia r5!, {r0, r1, r2, r3} + 80121c6: c40f stmia r4!, {r0, r1, r2, r3} + 80121c8: e895 000f ldmia.w r5, {r0, r1, r2, r3} + 80121cc: e884 000f stmia.w r4, {r0, r1, r2, r3} const lv_font_t * font = dsc->font; - 8012264: f507 738c add.w r3, r7, #280 ; 0x118 - 8012268: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 801226c: 681b ldr r3, [r3, #0] - 801226e: 681b ldr r3, [r3, #0] - 8012270: f8c7 30f0 str.w r3, [r7, #240] ; 0xf0 + 80121d0: f507 738c add.w r3, r7, #280 ; 0x118 + 80121d4: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 80121d8: 681b ldr r3, [r3, #0] + 80121da: 681b ldr r3, [r3, #0] + 80121dc: f8c7 30f0 str.w r3, [r7, #240] ; 0xf0 int32_t w; /*No need to waste processor time if string is empty*/ if(txt == NULL || txt[0] == '\0') - 8012274: f507 738c add.w r3, r7, #280 ; 0x118 - 8012278: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 801227c: 681b ldr r3, [r3, #0] - 801227e: 2b00 cmp r3, #0 - 8012280: f000 85cb beq.w 8012e1a - 8012284: f507 738c add.w r3, r7, #280 ; 0x118 - 8012288: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 801228c: 681b ldr r3, [r3, #0] - 801228e: 781b ldrb r3, [r3, #0] - 8012290: 2b00 cmp r3, #0 - 8012292: f000 85c2 beq.w 8012e1a + 80121e0: f507 738c add.w r3, r7, #280 ; 0x118 + 80121e4: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 80121e8: 681b ldr r3, [r3, #0] + 80121ea: 2b00 cmp r3, #0 + 80121ec: f000 85cb beq.w 8012d86 + 80121f0: f507 738c add.w r3, r7, #280 ; 0x118 + 80121f4: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 80121f8: 681b ldr r3, [r3, #0] + 80121fa: 781b ldrb r3, [r3, #0] + 80121fc: 2b00 cmp r3, #0 + 80121fe: f000 85c2 beq.w 8012d86 return; lv_area_t clipped_area; bool clip_ok = _lv_area_intersect(&clipped_area, coords, draw_ctx->clip_area); - 8012296: f507 738c add.w r3, r7, #280 ; 0x118 - 801229a: f5a3 7386 sub.w r3, r3, #268 ; 0x10c - 801229e: 681b ldr r3, [r3, #0] - 80122a0: 689a ldr r2, [r3, #8] - 80122a2: f507 738c add.w r3, r7, #280 ; 0x118 - 80122a6: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 80122aa: f107 0094 add.w r0, r7, #148 ; 0x94 - 80122ae: 6819 ldr r1, [r3, #0] - 80122b0: f01e fefa bl 80310a8 <_lv_area_intersect> - 80122b4: 4603 mov r3, r0 - 80122b6: f887 30ef strb.w r3, [r7, #239] ; 0xef + 8012202: f507 738c add.w r3, r7, #280 ; 0x118 + 8012206: f5a3 7386 sub.w r3, r3, #268 ; 0x10c + 801220a: 681b ldr r3, [r3, #0] + 801220c: 689a ldr r2, [r3, #8] + 801220e: f507 738c add.w r3, r7, #280 ; 0x118 + 8012212: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 8012216: f107 0094 add.w r0, r7, #148 ; 0x94 + 801221a: 6819 ldr r1, [r3, #0] + 801221c: f01e fefa bl 8031014 <_lv_area_intersect> + 8012220: 4603 mov r3, r0 + 8012222: f887 30ef strb.w r3, [r7, #239] ; 0xef if(!clip_ok) return; - 80122ba: f897 30ef ldrb.w r3, [r7, #239] ; 0xef - 80122be: f083 0301 eor.w r3, r3, #1 - 80122c2: b2db uxtb r3, r3 - 80122c4: 2b00 cmp r3, #0 - 80122c6: f040 85aa bne.w 8012e1e + 8012226: f897 30ef ldrb.w r3, [r7, #239] ; 0xef + 801222a: f083 0301 eor.w r3, r3, #1 + 801222e: b2db uxtb r3, r3 + 8012230: 2b00 cmp r3, #0 + 8012232: f040 85aa bne.w 8012d8a lv_text_align_t align = dsc->align; - 80122ca: f507 738c add.w r3, r7, #280 ; 0x118 - 80122ce: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 80122d2: 681b ldr r3, [r3, #0] - 80122d4: 7f1b ldrb r3, [r3, #28] - 80122d6: f887 3093 strb.w r3, [r7, #147] ; 0x93 + 8012236: f507 738c add.w r3, r7, #280 ; 0x118 + 801223a: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 801223e: 681b ldr r3, [r3, #0] + 8012240: 7f1b ldrb r3, [r3, #28] + 8012242: f887 3093 strb.w r3, [r7, #147] ; 0x93 lv_base_dir_t base_dir = dsc->bidi_dir; - 80122da: f507 738c add.w r3, r7, #280 ; 0x118 - 80122de: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 80122e2: 681b ldr r3, [r3, #0] - 80122e4: 7edb ldrb r3, [r3, #27] - 80122e6: f887 3092 strb.w r3, [r7, #146] ; 0x92 + 8012246: f507 738c add.w r3, r7, #280 ; 0x118 + 801224a: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 801224e: 681b ldr r3, [r3, #0] + 8012250: 7edb ldrb r3, [r3, #27] + 8012252: f887 3092 strb.w r3, [r7, #146] ; 0x92 lv_bidi_calculate_align(&align, &base_dir, txt); - 80122ea: f507 738c add.w r3, r7, #280 ; 0x118 - 80122ee: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 80122f2: f107 0192 add.w r1, r7, #146 ; 0x92 - 80122f6: f107 0093 add.w r0, r7, #147 ; 0x93 - 80122fa: 681a ldr r2, [r3, #0] - 80122fc: f7ff ff33 bl 8012166 + 8012256: f507 738c add.w r3, r7, #280 ; 0x118 + 801225a: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 801225e: f107 0192 add.w r1, r7, #146 ; 0x92 + 8012262: f107 0093 add.w r0, r7, #147 ; 0x93 + 8012266: 681a ldr r2, [r3, #0] + 8012268: f7ff ff33 bl 80120d2 if((dsc->flag & LV_TEXT_FLAG_EXPAND) == 0) { - 8012300: f507 738c add.w r3, r7, #280 ; 0x118 - 8012304: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012308: 681b ldr r3, [r3, #0] - 801230a: 7f5b ldrb r3, [r3, #29] - 801230c: f003 0302 and.w r3, r3, #2 - 8012310: 2b00 cmp r3, #0 - 8012312: d10a bne.n 801232a + 801226c: f507 738c add.w r3, r7, #280 ; 0x118 + 8012270: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012274: 681b ldr r3, [r3, #0] + 8012276: 7f5b ldrb r3, [r3, #29] + 8012278: f003 0302 and.w r3, r3, #2 + 801227c: 2b00 cmp r3, #0 + 801227e: d10a bne.n 8012296 /*Normally use the label's width as width*/ w = lv_area_get_width(coords); - 8012314: f507 738c add.w r3, r7, #280 ; 0x118 - 8012318: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 801231c: 6818 ldr r0, [r3, #0] - 801231e: f7ff feac bl 801207a - 8012322: 4603 mov r3, r0 - 8012324: f8c7 3114 str.w r3, [r7, #276] ; 0x114 - 8012328: e02d b.n 8012386 + 8012280: f507 738c add.w r3, r7, #280 ; 0x118 + 8012284: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 8012288: 6818 ldr r0, [r3, #0] + 801228a: f7ff feac bl 8011fe6 + 801228e: 4603 mov r3, r0 + 8012290: f8c7 3114 str.w r3, [r7, #276] ; 0x114 + 8012294: e02d b.n 80122f2 } else { /*If EXPAND is enabled then not limit the text's width to the object's width*/ lv_point_t p; lv_txt_get_size(&p, txt, dsc->font, dsc->letter_space, dsc->line_space, LV_COORD_MAX, - 801232a: f507 738c add.w r3, r7, #280 ; 0x118 - 801232e: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012332: 681b ldr r3, [r3, #0] - 8012334: 681c ldr r4, [r3, #0] - 8012336: f507 738c add.w r3, r7, #280 ; 0x118 - 801233a: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 801233e: 681b ldr r3, [r3, #0] - 8012340: f9b3 5014 ldrsh.w r5, [r3, #20] - 8012344: f507 738c add.w r3, r7, #280 ; 0x118 - 8012348: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 801234c: 681b ldr r3, [r3, #0] - 801234e: f9b3 3012 ldrsh.w r3, [r3, #18] + 8012296: f507 738c add.w r3, r7, #280 ; 0x118 + 801229a: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 801229e: 681b ldr r3, [r3, #0] + 80122a0: 681c ldr r4, [r3, #0] + 80122a2: f507 738c add.w r3, r7, #280 ; 0x118 + 80122a6: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 80122aa: 681b ldr r3, [r3, #0] + 80122ac: f9b3 5014 ldrsh.w r5, [r3, #20] + 80122b0: f507 738c add.w r3, r7, #280 ; 0x118 + 80122b4: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 80122b8: 681b ldr r3, [r3, #0] + 80122ba: f9b3 3012 ldrsh.w r3, [r3, #18] dsc->flag); - 8012352: f507 728c add.w r2, r7, #280 ; 0x118 - 8012356: f5a2 7288 sub.w r2, r2, #272 ; 0x110 - 801235a: 6812 ldr r2, [r2, #0] - 801235c: 7f52 ldrb r2, [r2, #29] + 80122be: f507 728c add.w r2, r7, #280 ; 0x118 + 80122c2: f5a2 7288 sub.w r2, r2, #272 ; 0x110 + 80122c6: 6812 ldr r2, [r2, #0] + 80122c8: 7f52 ldrb r2, [r2, #29] lv_txt_get_size(&p, txt, dsc->font, dsc->letter_space, dsc->line_space, LV_COORD_MAX, - 801235e: f507 718c add.w r1, r7, #280 ; 0x118 - 8012362: f5a1 718c sub.w r1, r1, #280 ; 0x118 - 8012366: f107 0038 add.w r0, r7, #56 ; 0x38 - 801236a: 9202 str r2, [sp, #8] - 801236c: f641 72ff movw r2, #8191 ; 0x1fff - 8012370: 9201 str r2, [sp, #4] - 8012372: 9300 str r3, [sp, #0] - 8012374: 462b mov r3, r5 - 8012376: 4622 mov r2, r4 - 8012378: 6809 ldr r1, [r1, #0] - 801237a: f023 fe86 bl 803608a + 80122ca: f507 718c add.w r1, r7, #280 ; 0x118 + 80122ce: f5a1 718c sub.w r1, r1, #280 ; 0x118 + 80122d2: f107 0038 add.w r0, r7, #56 ; 0x38 + 80122d6: 9202 str r2, [sp, #8] + 80122d8: f641 72ff movw r2, #8191 ; 0x1fff + 80122dc: 9201 str r2, [sp, #4] + 80122de: 9300 str r3, [sp, #0] + 80122e0: 462b mov r3, r5 + 80122e2: 4622 mov r2, r4 + 80122e4: 6809 ldr r1, [r1, #0] + 80122e6: f023 fe86 bl 8035ff6 w = p.x; - 801237e: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 8012382: f8c7 3114 str.w r3, [r7, #276] ; 0x114 + 80122ea: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 80122ee: f8c7 3114 str.w r3, [r7, #276] ; 0x114 } int32_t line_height_font = lv_font_get_line_height(font); - 8012386: f8d7 00f0 ldr.w r0, [r7, #240] ; 0xf0 - 801238a: f7ff fe8c bl 80120a6 - 801238e: 4603 mov r3, r0 - 8012390: f8c7 30e8 str.w r3, [r7, #232] ; 0xe8 + 80122f2: f8d7 00f0 ldr.w r0, [r7, #240] ; 0xf0 + 80122f6: f7ff fe8c bl 8012012 + 80122fa: 4603 mov r3, r0 + 80122fc: f8c7 30e8 str.w r3, [r7, #232] ; 0xe8 int32_t line_height = line_height_font + dsc->line_space; - 8012394: f507 738c add.w r3, r7, #280 ; 0x118 - 8012398: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 801239c: 681b ldr r3, [r3, #0] - 801239e: f9b3 3012 ldrsh.w r3, [r3, #18] - 80123a2: 461a mov r2, r3 - 80123a4: f8d7 30e8 ldr.w r3, [r7, #232] ; 0xe8 - 80123a8: 4413 add r3, r2 - 80123aa: f8c7 30e4 str.w r3, [r7, #228] ; 0xe4 + 8012300: f507 738c add.w r3, r7, #280 ; 0x118 + 8012304: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012308: 681b ldr r3, [r3, #0] + 801230a: f9b3 3012 ldrsh.w r3, [r3, #18] + 801230e: 461a mov r2, r3 + 8012310: f8d7 30e8 ldr.w r3, [r7, #232] ; 0xe8 + 8012314: 4413 add r3, r2 + 8012316: f8c7 30e4 str.w r3, [r7, #228] ; 0xe4 /*Init variables for the first line*/ int32_t line_width = 0; - 80123ae: 2300 movs r3, #0 - 80123b0: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 + 801231a: 2300 movs r3, #0 + 801231c: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 lv_point_t pos; pos.x = coords->x1; - 80123b4: f507 738c add.w r3, r7, #280 ; 0x118 - 80123b8: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 80123bc: 681b ldr r3, [r3, #0] - 80123be: f9b3 3000 ldrsh.w r3, [r3] - 80123c2: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 8012320: f507 738c add.w r3, r7, #280 ; 0x118 + 8012324: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 8012328: 681b ldr r3, [r3, #0] + 801232a: f9b3 3000 ldrsh.w r3, [r3] + 801232e: f8a7 308c strh.w r3, [r7, #140] ; 0x8c pos.y = coords->y1; - 80123c6: f507 738c add.w r3, r7, #280 ; 0x118 - 80123ca: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 80123ce: 681b ldr r3, [r3, #0] - 80123d0: f9b3 3002 ldrsh.w r3, [r3, #2] - 80123d4: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 8012332: f507 738c add.w r3, r7, #280 ; 0x118 + 8012336: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 801233a: 681b ldr r3, [r3, #0] + 801233c: f9b3 3002 ldrsh.w r3, [r3, #2] + 8012340: f8a7 308e strh.w r3, [r7, #142] ; 0x8e int32_t x_ofs = 0; - 80123d8: 2300 movs r3, #0 - 80123da: f8c7 30dc str.w r3, [r7, #220] ; 0xdc + 8012344: 2300 movs r3, #0 + 8012346: f8c7 30dc str.w r3, [r7, #220] ; 0xdc int32_t y_ofs = 0; - 80123de: 2300 movs r3, #0 - 80123e0: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8 + 801234a: 2300 movs r3, #0 + 801234c: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8 x_ofs = dsc->ofs_x; - 80123e4: f507 738c add.w r3, r7, #280 ; 0x118 - 80123e8: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 80123ec: 681b ldr r3, [r3, #0] - 80123ee: f9b3 3016 ldrsh.w r3, [r3, #22] - 80123f2: f8c7 30dc str.w r3, [r7, #220] ; 0xdc + 8012350: f507 738c add.w r3, r7, #280 ; 0x118 + 8012354: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012358: 681b ldr r3, [r3, #0] + 801235a: f9b3 3016 ldrsh.w r3, [r3, #22] + 801235e: f8c7 30dc str.w r3, [r7, #220] ; 0xdc y_ofs = dsc->ofs_y; - 80123f6: f507 738c add.w r3, r7, #280 ; 0x118 - 80123fa: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 80123fe: 681b ldr r3, [r3, #0] - 8012400: f9b3 3018 ldrsh.w r3, [r3, #24] - 8012404: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8 + 8012362: f507 738c add.w r3, r7, #280 ; 0x118 + 8012366: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 801236a: 681b ldr r3, [r3, #0] + 801236c: f9b3 3018 ldrsh.w r3, [r3, #24] + 8012370: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8 pos.y += y_ofs; - 8012408: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e - 801240c: b29a uxth r2, r3 - 801240e: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8012412: b29b uxth r3, r3 - 8012414: 4413 add r3, r2 - 8012416: b29b uxth r3, r3 - 8012418: b21b sxth r3, r3 - 801241a: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 8012374: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e + 8012378: b29a uxth r2, r3 + 801237a: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 801237e: b29b uxth r3, r3 + 8012380: 4413 add r3, r2 + 8012382: b29b uxth r3, r3 + 8012384: b21b sxth r3, r3 + 8012386: f8a7 308e strh.w r3, [r7, #142] ; 0x8e uint32_t line_start = 0; - 801241e: 2300 movs r3, #0 - 8012420: f8c7 3110 str.w r3, [r7, #272] ; 0x110 + 801238a: 2300 movs r3, #0 + 801238c: f8c7 3110 str.w r3, [r7, #272] ; 0x110 int32_t last_line_start = -1; - 8012424: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 8012428: f8c7 310c str.w r3, [r7, #268] ; 0x10c + 8012390: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 8012394: f8c7 310c str.w r3, [r7, #268] ; 0x10c /*Check the hint to use the cached info*/ if(hint && y_ofs == 0 && coords->y1 < 0) { - 801242c: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 - 8012430: 2b00 cmp r3, #0 - 8012432: d02c beq.n 801248e - 8012434: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8012438: 2b00 cmp r3, #0 - 801243a: d128 bne.n 801248e - 801243c: f507 738c add.w r3, r7, #280 ; 0x118 - 8012440: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 8012444: 681b ldr r3, [r3, #0] - 8012446: f9b3 3002 ldrsh.w r3, [r3, #2] - 801244a: 2b00 cmp r3, #0 - 801244c: da1f bge.n 801248e + 8012398: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 + 801239c: 2b00 cmp r3, #0 + 801239e: d02c beq.n 80123fa + 80123a0: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 80123a4: 2b00 cmp r3, #0 + 80123a6: d128 bne.n 80123fa + 80123a8: f507 738c add.w r3, r7, #280 ; 0x118 + 80123ac: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 80123b0: 681b ldr r3, [r3, #0] + 80123b2: f9b3 3002 ldrsh.w r3, [r3, #2] + 80123b6: 2b00 cmp r3, #0 + 80123b8: da1f bge.n 80123fa /*If the label changed too much recalculate the hint.*/ if(LV_ABS(hint->coord_y - coords->y1) > LV_LABEL_HINT_UPDATE_TH - 2 * line_height) { - 801244e: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 - 8012452: 689b ldr r3, [r3, #8] - 8012454: f507 728c add.w r2, r7, #280 ; 0x118 - 8012458: f5a2 728a sub.w r2, r2, #276 ; 0x114 - 801245c: 6812 ldr r2, [r2, #0] - 801245e: f9b2 2002 ldrsh.w r2, [r2, #2] - 8012462: 1a9b subs r3, r3, r2 - 8012464: ea83 72e3 eor.w r2, r3, r3, asr #31 - 8012468: eba2 72e3 sub.w r2, r2, r3, asr #31 - 801246c: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 - 8012470: f5c3 7300 rsb r3, r3, #512 ; 0x200 - 8012474: 005b lsls r3, r3, #1 - 8012476: 429a cmp r2, r3 - 8012478: dd04 ble.n 8012484 + 80123ba: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 + 80123be: 689b ldr r3, [r3, #8] + 80123c0: f507 728c add.w r2, r7, #280 ; 0x118 + 80123c4: f5a2 728a sub.w r2, r2, #276 ; 0x114 + 80123c8: 6812 ldr r2, [r2, #0] + 80123ca: f9b2 2002 ldrsh.w r2, [r2, #2] + 80123ce: 1a9b subs r3, r3, r2 + 80123d0: ea83 72e3 eor.w r2, r3, r3, asr #31 + 80123d4: eba2 72e3 sub.w r2, r2, r3, asr #31 + 80123d8: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 + 80123dc: f5c3 7300 rsb r3, r3, #512 ; 0x200 + 80123e0: 005b lsls r3, r3, #1 + 80123e2: 429a cmp r2, r3 + 80123e4: dd04 ble.n 80123f0 hint->line_start = -1; - 801247a: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 - 801247e: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 8012482: 601a str r2, [r3, #0] + 80123e6: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 + 80123ea: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 80123ee: 601a str r2, [r3, #0] } last_line_start = hint->line_start; - 8012484: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 - 8012488: 681b ldr r3, [r3, #0] - 801248a: f8c7 310c str.w r3, [r7, #268] ; 0x10c + 80123f0: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 + 80123f4: 681b ldr r3, [r3, #0] + 80123f6: f8c7 310c str.w r3, [r7, #268] ; 0x10c } /*Use the hint if it's valid*/ if(hint && last_line_start >= 0) { - 801248e: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 - 8012492: 2b00 cmp r3, #0 - 8012494: d013 beq.n 80124be - 8012496: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c - 801249a: 2b00 cmp r3, #0 - 801249c: db0f blt.n 80124be + 80123fa: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 + 80123fe: 2b00 cmp r3, #0 + 8012400: d013 beq.n 801242a + 8012402: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c + 8012406: 2b00 cmp r3, #0 + 8012408: db0f blt.n 801242a line_start = last_line_start; - 801249e: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c - 80124a2: f8c7 3110 str.w r3, [r7, #272] ; 0x110 + 801240a: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c + 801240e: f8c7 3110 str.w r3, [r7, #272] ; 0x110 pos.y += hint->y; - 80124a6: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e - 80124aa: b29a uxth r2, r3 - 80124ac: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 - 80124b0: 685b ldr r3, [r3, #4] - 80124b2: b29b uxth r3, r3 - 80124b4: 4413 add r3, r2 - 80124b6: b29b uxth r3, r3 - 80124b8: b21b sxth r3, r3 - 80124ba: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 8012412: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e + 8012416: b29a uxth r2, r3 + 8012418: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 + 801241c: 685b ldr r3, [r3, #4] + 801241e: b29b uxth r3, r3 + 8012420: 4413 add r3, r2 + 8012422: b29b uxth r3, r3 + 8012424: b21b sxth r3, r3 + 8012426: f8a7 308e strh.w r3, [r7, #142] ; 0x8e } uint32_t line_end = line_start + _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, NULL, dsc->flag); - 80124be: f507 738c add.w r3, r7, #280 ; 0x118 - 80124c2: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 80124c6: 681a ldr r2, [r3, #0] - 80124c8: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 80124cc: 18d0 adds r0, r2, r3 - 80124ce: f507 738c add.w r3, r7, #280 ; 0x118 - 80124d2: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 80124d6: 681b ldr r3, [r3, #0] - 80124d8: f9b3 2014 ldrsh.w r2, [r3, #20] - 80124dc: f8d7 3114 ldr.w r3, [r7, #276] ; 0x114 - 80124e0: b219 sxth r1, r3 - 80124e2: f507 738c add.w r3, r7, #280 ; 0x118 - 80124e6: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 80124ea: 681b ldr r3, [r3, #0] - 80124ec: 7f5b ldrb r3, [r3, #29] - 80124ee: 9301 str r3, [sp, #4] - 80124f0: 2300 movs r3, #0 - 80124f2: 9300 str r3, [sp, #0] - 80124f4: 460b mov r3, r1 - 80124f6: f8d7 10f0 ldr.w r1, [r7, #240] ; 0xf0 - 80124fa: f023 ff61 bl 80363c0 <_lv_txt_get_next_line> - 80124fe: 4602 mov r2, r0 - 8012500: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 8012504: 4413 add r3, r2 - 8012506: f8c7 3108 str.w r3, [r7, #264] ; 0x108 + 801242a: f507 738c add.w r3, r7, #280 ; 0x118 + 801242e: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8012432: 681a ldr r2, [r3, #0] + 8012434: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 8012438: 18d0 adds r0, r2, r3 + 801243a: f507 738c add.w r3, r7, #280 ; 0x118 + 801243e: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012442: 681b ldr r3, [r3, #0] + 8012444: f9b3 2014 ldrsh.w r2, [r3, #20] + 8012448: f8d7 3114 ldr.w r3, [r7, #276] ; 0x114 + 801244c: b219 sxth r1, r3 + 801244e: f507 738c add.w r3, r7, #280 ; 0x118 + 8012452: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012456: 681b ldr r3, [r3, #0] + 8012458: 7f5b ldrb r3, [r3, #29] + 801245a: 9301 str r3, [sp, #4] + 801245c: 2300 movs r3, #0 + 801245e: 9300 str r3, [sp, #0] + 8012460: 460b mov r3, r1 + 8012462: f8d7 10f0 ldr.w r1, [r7, #240] ; 0xf0 + 8012466: f023 ff61 bl 803632c <_lv_txt_get_next_line> + 801246a: 4602 mov r2, r0 + 801246c: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 8012470: 4413 add r3, r2 + 8012472: f8c7 3108 str.w r3, [r7, #264] ; 0x108 /*Go the first visible line*/ while(pos.y + line_height_font < draw_ctx->clip_area->y1) { - 801250a: e06c b.n 80125e6 + 8012476: e06c b.n 8012552 /*Go to next line*/ line_start = line_end; - 801250c: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 - 8012510: f8c7 3110 str.w r3, [r7, #272] ; 0x110 + 8012478: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 + 801247c: f8c7 3110 str.w r3, [r7, #272] ; 0x110 line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, NULL, dsc->flag); - 8012514: f507 738c add.w r3, r7, #280 ; 0x118 - 8012518: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 801251c: 681a ldr r2, [r3, #0] - 801251e: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 8012522: 18d0 adds r0, r2, r3 - 8012524: f507 738c add.w r3, r7, #280 ; 0x118 - 8012528: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 801252c: 681b ldr r3, [r3, #0] - 801252e: f9b3 2014 ldrsh.w r2, [r3, #20] - 8012532: f8d7 3114 ldr.w r3, [r7, #276] ; 0x114 - 8012536: b219 sxth r1, r3 - 8012538: f507 738c add.w r3, r7, #280 ; 0x118 - 801253c: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012540: 681b ldr r3, [r3, #0] - 8012542: 7f5b ldrb r3, [r3, #29] - 8012544: 9301 str r3, [sp, #4] - 8012546: 2300 movs r3, #0 - 8012548: 9300 str r3, [sp, #0] - 801254a: 460b mov r3, r1 - 801254c: f8d7 10f0 ldr.w r1, [r7, #240] ; 0xf0 - 8012550: f023 ff36 bl 80363c0 <_lv_txt_get_next_line> - 8012554: 4602 mov r2, r0 - 8012556: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 - 801255a: 4413 add r3, r2 - 801255c: f8c7 3108 str.w r3, [r7, #264] ; 0x108 + 8012480: f507 738c add.w r3, r7, #280 ; 0x118 + 8012484: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8012488: 681a ldr r2, [r3, #0] + 801248a: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 801248e: 18d0 adds r0, r2, r3 + 8012490: f507 738c add.w r3, r7, #280 ; 0x118 + 8012494: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012498: 681b ldr r3, [r3, #0] + 801249a: f9b3 2014 ldrsh.w r2, [r3, #20] + 801249e: f8d7 3114 ldr.w r3, [r7, #276] ; 0x114 + 80124a2: b219 sxth r1, r3 + 80124a4: f507 738c add.w r3, r7, #280 ; 0x118 + 80124a8: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 80124ac: 681b ldr r3, [r3, #0] + 80124ae: 7f5b ldrb r3, [r3, #29] + 80124b0: 9301 str r3, [sp, #4] + 80124b2: 2300 movs r3, #0 + 80124b4: 9300 str r3, [sp, #0] + 80124b6: 460b mov r3, r1 + 80124b8: f8d7 10f0 ldr.w r1, [r7, #240] ; 0xf0 + 80124bc: f023 ff36 bl 803632c <_lv_txt_get_next_line> + 80124c0: 4602 mov r2, r0 + 80124c2: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 + 80124c6: 4413 add r3, r2 + 80124c8: f8c7 3108 str.w r3, [r7, #264] ; 0x108 pos.y += line_height; - 8012560: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e - 8012564: b29a uxth r2, r3 - 8012566: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 - 801256a: b29b uxth r3, r3 - 801256c: 4413 add r3, r2 - 801256e: b29b uxth r3, r3 - 8012570: b21b sxth r3, r3 - 8012572: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 80124cc: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e + 80124d0: b29a uxth r2, r3 + 80124d2: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 + 80124d6: b29b uxth r3, r3 + 80124d8: 4413 add r3, r2 + 80124da: b29b uxth r3, r3 + 80124dc: b21b sxth r3, r3 + 80124de: f8a7 308e strh.w r3, [r7, #142] ; 0x8e /*Save at the threshold coordinate*/ if(hint && pos.y >= -LV_LABEL_HINT_UPDATE_TH && hint->line_start < 0) { - 8012576: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 - 801257a: 2b00 cmp r3, #0 - 801257c: d027 beq.n 80125ce - 801257e: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e - 8012582: f513 6f80 cmn.w r3, #1024 ; 0x400 - 8012586: db22 blt.n 80125ce - 8012588: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 - 801258c: 681b ldr r3, [r3, #0] - 801258e: 2b00 cmp r3, #0 - 8012590: da1d bge.n 80125ce + 80124e2: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 + 80124e6: 2b00 cmp r3, #0 + 80124e8: d027 beq.n 801253a + 80124ea: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e + 80124ee: f513 6f80 cmn.w r3, #1024 ; 0x400 + 80124f2: db22 blt.n 801253a + 80124f4: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 + 80124f8: 681b ldr r3, [r3, #0] + 80124fa: 2b00 cmp r3, #0 + 80124fc: da1d bge.n 801253a hint->line_start = line_start; - 8012592: f8d7 2110 ldr.w r2, [r7, #272] ; 0x110 - 8012596: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 - 801259a: 601a str r2, [r3, #0] + 80124fe: f8d7 2110 ldr.w r2, [r7, #272] ; 0x110 + 8012502: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 + 8012506: 601a str r2, [r3, #0] hint->y = pos.y - coords->y1; - 801259c: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e - 80125a0: 461a mov r2, r3 - 80125a2: f507 738c add.w r3, r7, #280 ; 0x118 - 80125a6: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 80125aa: 681b ldr r3, [r3, #0] - 80125ac: f9b3 3002 ldrsh.w r3, [r3, #2] - 80125b0: 1ad2 subs r2, r2, r3 - 80125b2: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 - 80125b6: 605a str r2, [r3, #4] + 8012508: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e + 801250c: 461a mov r2, r3 + 801250e: f507 738c add.w r3, r7, #280 ; 0x118 + 8012512: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 8012516: 681b ldr r3, [r3, #0] + 8012518: f9b3 3002 ldrsh.w r3, [r3, #2] + 801251c: 1ad2 subs r2, r2, r3 + 801251e: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 + 8012522: 605a str r2, [r3, #4] hint->coord_y = coords->y1; - 80125b8: f507 738c add.w r3, r7, #280 ; 0x118 - 80125bc: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 80125c0: 681b ldr r3, [r3, #0] - 80125c2: f9b3 3002 ldrsh.w r3, [r3, #2] - 80125c6: 461a mov r2, r3 - 80125c8: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 - 80125cc: 609a str r2, [r3, #8] + 8012524: f507 738c add.w r3, r7, #280 ; 0x118 + 8012528: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 801252c: 681b ldr r3, [r3, #0] + 801252e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8012532: 461a mov r2, r3 + 8012534: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 + 8012538: 609a str r2, [r3, #8] } if(txt[line_start] == '\0') return; - 80125ce: f507 738c add.w r3, r7, #280 ; 0x118 - 80125d2: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 80125d6: 681a ldr r2, [r3, #0] - 80125d8: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 80125dc: 4413 add r3, r2 - 80125de: 781b ldrb r3, [r3, #0] - 80125e0: 2b00 cmp r3, #0 - 80125e2: f000 841e beq.w 8012e22 + 801253a: f507 738c add.w r3, r7, #280 ; 0x118 + 801253e: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8012542: 681a ldr r2, [r3, #0] + 8012544: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 8012548: 4413 add r3, r2 + 801254a: 781b ldrb r3, [r3, #0] + 801254c: 2b00 cmp r3, #0 + 801254e: f000 841e beq.w 8012d8e while(pos.y + line_height_font < draw_ctx->clip_area->y1) { - 80125e6: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e - 80125ea: 461a mov r2, r3 - 80125ec: f8d7 30e8 ldr.w r3, [r7, #232] ; 0xe8 - 80125f0: 4413 add r3, r2 - 80125f2: f507 728c add.w r2, r7, #280 ; 0x118 - 80125f6: f5a2 7286 sub.w r2, r2, #268 ; 0x10c - 80125fa: 6812 ldr r2, [r2, #0] - 80125fc: 6892 ldr r2, [r2, #8] - 80125fe: f9b2 2002 ldrsh.w r2, [r2, #2] - 8012602: 4293 cmp r3, r2 - 8012604: db82 blt.n 801250c + 8012552: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e + 8012556: 461a mov r2, r3 + 8012558: f8d7 30e8 ldr.w r3, [r7, #232] ; 0xe8 + 801255c: 4413 add r3, r2 + 801255e: f507 728c add.w r2, r7, #280 ; 0x118 + 8012562: f5a2 7286 sub.w r2, r2, #268 ; 0x10c + 8012566: 6812 ldr r2, [r2, #0] + 8012568: 6892 ldr r2, [r2, #8] + 801256a: f9b2 2002 ldrsh.w r2, [r2, #2] + 801256e: 4293 cmp r3, r2 + 8012570: db82 blt.n 8012478 } /*Align to middle*/ if(align == LV_TEXT_ALIGN_CENTER) { - 8012606: f897 3093 ldrb.w r3, [r7, #147] ; 0x93 - 801260a: 2b02 cmp r3, #2 - 801260c: d13c bne.n 8012688 + 8012572: f897 3093 ldrb.w r3, [r7, #147] ; 0x93 + 8012576: 2b02 cmp r3, #2 + 8012578: d13c bne.n 80125f4 line_width = lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag); - 801260e: f507 738c add.w r3, r7, #280 ; 0x118 - 8012612: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 8012616: 681a ldr r2, [r3, #0] - 8012618: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 801261c: 18d0 adds r0, r2, r3 - 801261e: f8d7 2108 ldr.w r2, [r7, #264] ; 0x108 - 8012622: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 8012626: 1ad1 subs r1, r2, r3 - 8012628: f507 738c add.w r3, r7, #280 ; 0x118 - 801262c: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012630: 681b ldr r3, [r3, #0] - 8012632: f9b3 2014 ldrsh.w r2, [r3, #20] - 8012636: f507 738c add.w r3, r7, #280 ; 0x118 - 801263a: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 801263e: 681b ldr r3, [r3, #0] - 8012640: 7f5b ldrb r3, [r3, #29] - 8012642: 9300 str r3, [sp, #0] - 8012644: 4613 mov r3, r2 - 8012646: f8d7 20f0 ldr.w r2, [r7, #240] ; 0xf0 - 801264a: f023 ff97 bl 803657c - 801264e: 4603 mov r3, r0 - 8012650: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 + 801257a: f507 738c add.w r3, r7, #280 ; 0x118 + 801257e: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8012582: 681a ldr r2, [r3, #0] + 8012584: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 8012588: 18d0 adds r0, r2, r3 + 801258a: f8d7 2108 ldr.w r2, [r7, #264] ; 0x108 + 801258e: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 8012592: 1ad1 subs r1, r2, r3 + 8012594: f507 738c add.w r3, r7, #280 ; 0x118 + 8012598: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 801259c: 681b ldr r3, [r3, #0] + 801259e: f9b3 2014 ldrsh.w r2, [r3, #20] + 80125a2: f507 738c add.w r3, r7, #280 ; 0x118 + 80125a6: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 80125aa: 681b ldr r3, [r3, #0] + 80125ac: 7f5b ldrb r3, [r3, #29] + 80125ae: 9300 str r3, [sp, #0] + 80125b0: 4613 mov r3, r2 + 80125b2: f8d7 20f0 ldr.w r2, [r7, #240] ; 0xf0 + 80125b6: f023 ff97 bl 80364e8 + 80125ba: 4603 mov r3, r0 + 80125bc: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 pos.x += (lv_area_get_width(coords) - line_width) / 2; - 8012654: f507 738c add.w r3, r7, #280 ; 0x118 - 8012658: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 801265c: 6818 ldr r0, [r3, #0] - 801265e: f7ff fd0c bl 801207a - 8012662: 4603 mov r3, r0 - 8012664: 461a mov r2, r3 - 8012666: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 801266a: 1ad3 subs r3, r2, r3 - 801266c: 0fda lsrs r2, r3, #31 - 801266e: 4413 add r3, r2 - 8012670: 105b asrs r3, r3, #1 - 8012672: 4619 mov r1, r3 - 8012674: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c - 8012678: b29a uxth r2, r3 - 801267a: b28b uxth r3, r1 - 801267c: 4413 add r3, r2 - 801267e: b29b uxth r3, r3 - 8012680: b21b sxth r3, r3 - 8012682: f8a7 308c strh.w r3, [r7, #140] ; 0x8c - 8012686: e03b b.n 8012700 + 80125c0: f507 738c add.w r3, r7, #280 ; 0x118 + 80125c4: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 80125c8: 6818 ldr r0, [r3, #0] + 80125ca: f7ff fd0c bl 8011fe6 + 80125ce: 4603 mov r3, r0 + 80125d0: 461a mov r2, r3 + 80125d2: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 80125d6: 1ad3 subs r3, r2, r3 + 80125d8: 0fda lsrs r2, r3, #31 + 80125da: 4413 add r3, r2 + 80125dc: 105b asrs r3, r3, #1 + 80125de: 4619 mov r1, r3 + 80125e0: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c + 80125e4: b29a uxth r2, r3 + 80125e6: b28b uxth r3, r1 + 80125e8: 4413 add r3, r2 + 80125ea: b29b uxth r3, r3 + 80125ec: b21b sxth r3, r3 + 80125ee: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 80125f2: e03b b.n 801266c } /*Align to the right*/ else if(align == LV_TEXT_ALIGN_RIGHT) { - 8012688: f897 3093 ldrb.w r3, [r7, #147] ; 0x93 - 801268c: 2b03 cmp r3, #3 - 801268e: d137 bne.n 8012700 + 80125f4: f897 3093 ldrb.w r3, [r7, #147] ; 0x93 + 80125f8: 2b03 cmp r3, #3 + 80125fa: d137 bne.n 801266c line_width = lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag); - 8012690: f507 738c add.w r3, r7, #280 ; 0x118 - 8012694: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 8012698: 681a ldr r2, [r3, #0] - 801269a: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 801269e: 18d0 adds r0, r2, r3 - 80126a0: f8d7 2108 ldr.w r2, [r7, #264] ; 0x108 - 80126a4: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 80126a8: 1ad1 subs r1, r2, r3 - 80126aa: f507 738c add.w r3, r7, #280 ; 0x118 - 80126ae: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 80126b2: 681b ldr r3, [r3, #0] - 80126b4: f9b3 2014 ldrsh.w r2, [r3, #20] - 80126b8: f507 738c add.w r3, r7, #280 ; 0x118 - 80126bc: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 80126c0: 681b ldr r3, [r3, #0] - 80126c2: 7f5b ldrb r3, [r3, #29] - 80126c4: 9300 str r3, [sp, #0] - 80126c6: 4613 mov r3, r2 - 80126c8: f8d7 20f0 ldr.w r2, [r7, #240] ; 0xf0 - 80126cc: f023 ff56 bl 803657c - 80126d0: 4603 mov r3, r0 - 80126d2: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 + 80125fc: f507 738c add.w r3, r7, #280 ; 0x118 + 8012600: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8012604: 681a ldr r2, [r3, #0] + 8012606: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 801260a: 18d0 adds r0, r2, r3 + 801260c: f8d7 2108 ldr.w r2, [r7, #264] ; 0x108 + 8012610: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 8012614: 1ad1 subs r1, r2, r3 + 8012616: f507 738c add.w r3, r7, #280 ; 0x118 + 801261a: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 801261e: 681b ldr r3, [r3, #0] + 8012620: f9b3 2014 ldrsh.w r2, [r3, #20] + 8012624: f507 738c add.w r3, r7, #280 ; 0x118 + 8012628: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 801262c: 681b ldr r3, [r3, #0] + 801262e: 7f5b ldrb r3, [r3, #29] + 8012630: 9300 str r3, [sp, #0] + 8012632: 4613 mov r3, r2 + 8012634: f8d7 20f0 ldr.w r2, [r7, #240] ; 0xf0 + 8012638: f023 ff56 bl 80364e8 + 801263c: 4603 mov r3, r0 + 801263e: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 pos.x += lv_area_get_width(coords) - line_width; - 80126d6: f507 738c add.w r3, r7, #280 ; 0x118 - 80126da: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 80126de: 6818 ldr r0, [r3, #0] - 80126e0: f7ff fccb bl 801207a - 80126e4: 4603 mov r3, r0 - 80126e6: 461a mov r2, r3 - 80126e8: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 80126ec: 1ad3 subs r3, r2, r3 - 80126ee: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c - 80126f2: b292 uxth r2, r2 - 80126f4: b29b uxth r3, r3 - 80126f6: 4413 add r3, r2 - 80126f8: b29b uxth r3, r3 - 80126fa: b21b sxth r3, r3 - 80126fc: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 8012642: f507 738c add.w r3, r7, #280 ; 0x118 + 8012646: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 801264a: 6818 ldr r0, [r3, #0] + 801264c: f7ff fccb bl 8011fe6 + 8012650: 4603 mov r3, r0 + 8012652: 461a mov r2, r3 + 8012654: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 8012658: 1ad3 subs r3, r2, r3 + 801265a: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c + 801265e: b292 uxth r2, r2 + 8012660: b29b uxth r3, r3 + 8012662: 4413 add r3, r2 + 8012664: b29b uxth r3, r3 + 8012666: b21b sxth r3, r3 + 8012668: f8a7 308c strh.w r3, [r7, #140] ; 0x8c } uint32_t sel_start = dsc->sel_start; - 8012700: f507 738c add.w r3, r7, #280 ; 0x118 - 8012704: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012708: 681b ldr r3, [r3, #0] - 801270a: 685b ldr r3, [r3, #4] - 801270c: f8c7 3104 str.w r3, [r7, #260] ; 0x104 + 801266c: f507 738c add.w r3, r7, #280 ; 0x118 + 8012670: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012674: 681b ldr r3, [r3, #0] + 8012676: 685b ldr r3, [r3, #4] + 8012678: f8c7 3104 str.w r3, [r7, #260] ; 0x104 uint32_t sel_end = dsc->sel_end; - 8012710: f507 738c add.w r3, r7, #280 ; 0x118 - 8012714: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012718: 681b ldr r3, [r3, #0] - 801271a: 689b ldr r3, [r3, #8] - 801271c: f8c7 3100 str.w r3, [r7, #256] ; 0x100 + 801267c: f507 738c add.w r3, r7, #280 ; 0x118 + 8012680: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012684: 681b ldr r3, [r3, #0] + 8012686: 689b ldr r3, [r3, #8] + 8012688: f8c7 3100 str.w r3, [r7, #256] ; 0x100 if(sel_start > sel_end) { - 8012720: f8d7 2104 ldr.w r2, [r7, #260] ; 0x104 - 8012724: f8d7 3100 ldr.w r3, [r7, #256] ; 0x100 - 8012728: 429a cmp r2, r3 - 801272a: d90b bls.n 8012744 + 801268c: f8d7 2104 ldr.w r2, [r7, #260] ; 0x104 + 8012690: f8d7 3100 ldr.w r3, [r7, #256] ; 0x100 + 8012694: 429a cmp r2, r3 + 8012696: d90b bls.n 80126b0 uint32_t tmp = sel_start; - 801272c: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 8012730: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4 + 8012698: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 801269c: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4 sel_start = sel_end; - 8012734: f8d7 3100 ldr.w r3, [r7, #256] ; 0x100 - 8012738: f8c7 3104 str.w r3, [r7, #260] ; 0x104 + 80126a0: f8d7 3100 ldr.w r3, [r7, #256] ; 0x100 + 80126a4: f8c7 3104 str.w r3, [r7, #260] ; 0x104 sel_end = tmp; - 801273c: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 - 8012740: f8c7 3100 str.w r3, [r7, #256] ; 0x100 + 80126a8: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 + 80126ac: f8c7 3100 str.w r3, [r7, #256] ; 0x100 } lv_draw_line_dsc_t line_dsc; if((dsc->decor & LV_TEXT_DECOR_UNDERLINE) || (dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH)) { - 8012744: f507 738c add.w r3, r7, #280 ; 0x118 - 8012748: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 801274c: 681b ldr r3, [r3, #0] - 801274e: 7f9b ldrb r3, [r3, #30] - 8012750: f3c3 0302 ubfx r3, r3, #0, #3 - 8012754: b2db uxtb r3, r3 - 8012756: f003 0301 and.w r3, r3, #1 - 801275a: 2b00 cmp r3, #0 - 801275c: d10c bne.n 8012778 - 801275e: f507 738c add.w r3, r7, #280 ; 0x118 - 8012762: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012766: 681b ldr r3, [r3, #0] - 8012768: 7f9b ldrb r3, [r3, #30] - 801276a: f3c3 0302 ubfx r3, r3, #0, #3 - 801276e: b2db uxtb r3, r3 - 8012770: f003 0302 and.w r3, r3, #2 - 8012774: 2b00 cmp r3, #0 - 8012776: d035 beq.n 80127e4 + 80126b0: f507 738c add.w r3, r7, #280 ; 0x118 + 80126b4: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 80126b8: 681b ldr r3, [r3, #0] + 80126ba: 7f9b ldrb r3, [r3, #30] + 80126bc: f3c3 0302 ubfx r3, r3, #0, #3 + 80126c0: b2db uxtb r3, r3 + 80126c2: f003 0301 and.w r3, r3, #1 + 80126c6: 2b00 cmp r3, #0 + 80126c8: d10c bne.n 80126e4 + 80126ca: f507 738c add.w r3, r7, #280 ; 0x118 + 80126ce: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 80126d2: 681b ldr r3, [r3, #0] + 80126d4: 7f9b ldrb r3, [r3, #30] + 80126d6: f3c3 0302 ubfx r3, r3, #0, #3 + 80126da: b2db uxtb r3, r3 + 80126dc: f003 0302 and.w r3, r3, #2 + 80126e0: 2b00 cmp r3, #0 + 80126e2: d035 beq.n 8012750 lv_draw_line_dsc_init(&line_dsc); - 8012778: f107 0380 add.w r3, r7, #128 ; 0x80 - 801277c: 4618 mov r0, r3 - 801277e: f000 fbe2 bl 8012f46 + 80126e4: f107 0380 add.w r3, r7, #128 ; 0x80 + 80126e8: 4618 mov r0, r3 + 80126ea: f000 fbe2 bl 8012eb2 line_dsc.color = dsc->color; - 8012782: f507 738c add.w r3, r7, #280 ; 0x118 - 8012786: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 801278a: 681b ldr r3, [r3, #0] - 801278c: 899b ldrh r3, [r3, #12] - 801278e: f8a7 3080 strh.w r3, [r7, #128] ; 0x80 + 80126ee: f507 738c add.w r3, r7, #280 ; 0x118 + 80126f2: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 80126f6: 681b ldr r3, [r3, #0] + 80126f8: 899b ldrh r3, [r3, #12] + 80126fa: f8a7 3080 strh.w r3, [r7, #128] ; 0x80 line_dsc.width = font->underline_thickness ? font->underline_thickness : 1; - 8012792: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 8012796: f993 300e ldrsb.w r3, [r3, #14] - 801279a: 2b00 cmp r3, #0 - 801279c: d005 beq.n 80127aa - 801279e: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 80127a2: f993 300e ldrsb.w r3, [r3, #14] - 80127a6: b21b sxth r3, r3 - 80127a8: e000 b.n 80127ac - 80127aa: 2301 movs r3, #1 - 80127ac: f8a7 3082 strh.w r3, [r7, #130] ; 0x82 + 80126fe: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8012702: f993 300e ldrsb.w r3, [r3, #14] + 8012706: 2b00 cmp r3, #0 + 8012708: d005 beq.n 8012716 + 801270a: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 801270e: f993 300e ldrsb.w r3, [r3, #14] + 8012712: b21b sxth r3, r3 + 8012714: e000 b.n 8012718 + 8012716: 2301 movs r3, #1 + 8012718: f8a7 3082 strh.w r3, [r7, #130] ; 0x82 line_dsc.opa = dsc->opa; - 80127b0: f507 738c add.w r3, r7, #280 ; 0x118 - 80127b4: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 80127b8: 681b ldr r3, [r3, #0] - 80127ba: 7e9b ldrb r3, [r3, #26] - 80127bc: f887 3088 strb.w r3, [r7, #136] ; 0x88 + 801271c: f507 738c add.w r3, r7, #280 ; 0x118 + 8012720: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012724: 681b ldr r3, [r3, #0] + 8012726: 7e9b ldrb r3, [r3, #26] + 8012728: f887 3088 strb.w r3, [r7, #136] ; 0x88 line_dsc.blend_mode = dsc->blend_mode; - 80127c0: f507 738c add.w r3, r7, #280 ; 0x118 - 80127c4: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 80127c8: 681b ldr r3, [r3, #0] - 80127ca: 7f9b ldrb r3, [r3, #30] - 80127cc: f3c3 03c2 ubfx r3, r3, #3, #3 - 80127d0: b2db uxtb r3, r3 - 80127d2: f003 0303 and.w r3, r3, #3 - 80127d6: b2da uxtb r2, r3 - 80127d8: f897 3089 ldrb.w r3, [r7, #137] ; 0x89 - 80127dc: f362 0301 bfi r3, r2, #0, #2 - 80127e0: f887 3089 strb.w r3, [r7, #137] ; 0x89 + 801272c: f507 738c add.w r3, r7, #280 ; 0x118 + 8012730: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012734: 681b ldr r3, [r3, #0] + 8012736: 7f9b ldrb r3, [r3, #30] + 8012738: f3c3 03c2 ubfx r3, r3, #3, #3 + 801273c: b2db uxtb r3, r3 + 801273e: f003 0303 and.w r3, r3, #3 + 8012742: b2da uxtb r2, r3 + 8012744: f897 3089 ldrb.w r3, [r7, #137] ; 0x89 + 8012748: f362 0301 bfi r3, r2, #0, #2 + 801274c: f887 3089 strb.w r3, [r7, #137] ; 0x89 } cmd_state_t cmd_state = CMD_STATE_WAIT; - 80127e4: 2300 movs r3, #0 - 80127e6: f887 30ff strb.w r3, [r7, #255] ; 0xff + 8012750: 2300 movs r3, #0 + 8012752: f887 30ff strb.w r3, [r7, #255] ; 0xff uint32_t i; uint32_t par_start = 0; - 80127ea: 2300 movs r3, #0 - 80127ec: f8c7 30f8 str.w r3, [r7, #248] ; 0xf8 + 8012756: 2300 movs r3, #0 + 8012758: f8c7 30f8 str.w r3, [r7, #248] ; 0xf8 lv_color_t recolor; lv_color_t color = lv_color_black(); - 80127f0: f7ff fcaf bl 8012152 - 80127f4: 4603 mov r3, r0 - 80127f6: f8a7 3074 strh.w r3, [r7, #116] ; 0x74 + 801275c: f7ff fcaf bl 80120be + 8012760: 4603 mov r3, r0 + 8012762: f8a7 3074 strh.w r3, [r7, #116] ; 0x74 int32_t letter_w; lv_draw_rect_dsc_t draw_dsc_sel; lv_draw_rect_dsc_init(&draw_dsc_sel); - 80127fa: f107 033c add.w r3, r7, #60 ; 0x3c - 80127fe: 4618 mov r0, r3 - 8012800: f002 fff8 bl 80157f4 + 8012766: f107 033c add.w r3, r7, #60 ; 0x3c + 801276a: 4618 mov r0, r3 + 801276c: f002 fff8 bl 8015760 draw_dsc_sel.bg_color = dsc->sel_bg_color; - 8012804: f507 738c add.w r3, r7, #280 ; 0x118 - 8012808: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 801280c: 681b ldr r3, [r3, #0] - 801280e: 8a1b ldrh r3, [r3, #16] - 8012810: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 8012770: f507 738c add.w r3, r7, #280 ; 0x118 + 8012774: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012778: 681b ldr r3, [r3, #0] + 801277a: 8a1b ldrh r3, [r3, #16] + 801277c: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 int32_t pos_x_start = pos.x; - 8012814: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c - 8012818: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0 + 8012780: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c + 8012784: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0 /*Write out all lines*/ while(txt[line_start] != '\0') { - 801281c: e2ea b.n 8012df4 + 8012788: e2ea b.n 8012d60 pos.x += x_ofs; - 801281e: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c - 8012822: b29a uxth r2, r3 - 8012824: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8012828: b29b uxth r3, r3 - 801282a: 4413 add r3, r2 - 801282c: b29b uxth r3, r3 - 801282e: b21b sxth r3, r3 - 8012830: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 801278a: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c + 801278e: b29a uxth r2, r3 + 8012790: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8012794: b29b uxth r3, r3 + 8012796: 4413 add r3, r2 + 8012798: b29b uxth r3, r3 + 801279a: b21b sxth r3, r3 + 801279c: f8a7 308c strh.w r3, [r7, #140] ; 0x8c /*Write all letter of a line*/ cmd_state = CMD_STATE_WAIT; - 8012834: 2300 movs r3, #0 - 8012836: f887 30ff strb.w r3, [r7, #255] ; 0xff + 80127a0: 2300 movs r3, #0 + 80127a2: f887 30ff strb.w r3, [r7, #255] ; 0xff i = 0; - 801283a: 2300 movs r3, #0 - 801283c: 67fb str r3, [r7, #124] ; 0x7c + 80127a6: 2300 movs r3, #0 + 80127a8: 67fb str r3, [r7, #124] ; 0x7c #if LV_USE_BIDI char * bidi_txt = lv_mem_buf_get(line_end - line_start + 1); _lv_bidi_process_paragraph(txt + line_start, bidi_txt, line_end - line_start, base_dir, NULL, 0); #else const char * bidi_txt = txt + line_start; - 801283e: f507 738c add.w r3, r7, #280 ; 0x118 - 8012842: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 8012846: 681a ldr r2, [r3, #0] - 8012848: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 801284c: 4413 add r3, r2 - 801284e: f8c7 30cc str.w r3, [r7, #204] ; 0xcc + 80127aa: f507 738c add.w r3, r7, #280 ; 0x118 + 80127ae: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 80127b2: 681a ldr r2, [r3, #0] + 80127b4: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 80127b8: 4413 add r3, r2 + 80127ba: f8c7 30cc str.w r3, [r7, #204] ; 0xcc #endif while(i < line_end - line_start) { - 8012852: e154 b.n 8012afe + 80127be: e154 b.n 8012a6a uint32_t logical_char_pos = 0; - 8012854: 2300 movs r3, #0 - 8012856: f8c7 30f4 str.w r3, [r7, #244] ; 0xf4 + 80127c0: 2300 movs r3, #0 + 80127c2: f8c7 30f4 str.w r3, [r7, #244] ; 0xf4 if(sel_start != 0xFFFF && sel_end != 0xFFFF) { - 801285a: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 801285e: f64f 72ff movw r2, #65535 ; 0xffff - 8012862: 4293 cmp r3, r2 - 8012864: d013 beq.n 801288e - 8012866: f8d7 3100 ldr.w r3, [r7, #256] ; 0x100 - 801286a: f64f 72ff movw r2, #65535 ; 0xffff - 801286e: 4293 cmp r3, r2 - 8012870: d00d beq.n 801288e + 80127c6: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 80127ca: f64f 72ff movw r2, #65535 ; 0xffff + 80127ce: 4293 cmp r3, r2 + 80127d0: d013 beq.n 80127fa + 80127d2: f8d7 3100 ldr.w r3, [r7, #256] ; 0x100 + 80127d6: f64f 72ff movw r2, #65535 ; 0xffff + 80127da: 4293 cmp r3, r2 + 80127dc: d00d beq.n 80127fa #if LV_USE_BIDI logical_char_pos = _lv_txt_encoded_get_char_id(txt, line_start); uint32_t t = _lv_txt_encoded_get_char_id(bidi_txt, i); logical_char_pos += _lv_bidi_get_logical_pos(bidi_txt, NULL, line_end - line_start, base_dir, t, NULL); #else logical_char_pos = _lv_txt_encoded_get_char_id(txt, line_start + i); - 8012872: 4ba1 ldr r3, [pc, #644] ; (8012af8 ) - 8012874: 681b ldr r3, [r3, #0] - 8012876: 6ff9 ldr r1, [r7, #124] ; 0x7c - 8012878: f8d7 2110 ldr.w r2, [r7, #272] ; 0x110 - 801287c: 4411 add r1, r2 - 801287e: f507 728c add.w r2, r7, #280 ; 0x118 - 8012882: f5a2 728c sub.w r2, r2, #280 ; 0x118 - 8012886: 6810 ldr r0, [r2, #0] - 8012888: 4798 blx r3 - 801288a: f8c7 00f4 str.w r0, [r7, #244] ; 0xf4 + 80127de: 4ba1 ldr r3, [pc, #644] ; (8012a64 ) + 80127e0: 681b ldr r3, [r3, #0] + 80127e2: 6ff9 ldr r1, [r7, #124] ; 0x7c + 80127e4: f8d7 2110 ldr.w r2, [r7, #272] ; 0x110 + 80127e8: 4411 add r1, r2 + 80127ea: f507 728c add.w r2, r7, #280 ; 0x118 + 80127ee: f5a2 728c sub.w r2, r2, #280 ; 0x118 + 80127f2: 6810 ldr r0, [r2, #0] + 80127f4: 4798 blx r3 + 80127f6: f8c7 00f4 str.w r0, [r7, #244] ; 0xf4 #endif } uint32_t letter; uint32_t letter_next; _lv_txt_encoded_letter_next_2(bidi_txt, &letter, &letter_next, &i); - 801288e: f107 037c add.w r3, r7, #124 ; 0x7c - 8012892: f107 0230 add.w r2, r7, #48 ; 0x30 - 8012896: f107 0134 add.w r1, r7, #52 ; 0x34 - 801289a: f8d7 00cc ldr.w r0, [r7, #204] ; 0xcc - 801289e: f023 ffbf bl 8036820 <_lv_txt_encoded_letter_next_2> + 80127fa: f107 037c add.w r3, r7, #124 ; 0x7c + 80127fe: f107 0230 add.w r2, r7, #48 ; 0x30 + 8012802: f107 0134 add.w r1, r7, #52 ; 0x34 + 8012806: f8d7 00cc ldr.w r0, [r7, #204] ; 0xcc + 801280a: f023 ffbf bl 803678c <_lv_txt_encoded_letter_next_2> /*Handle the re-color command*/ if((dsc->flag & LV_TEXT_FLAG_RECOLOR) != 0) { - 80128a2: f507 738c add.w r3, r7, #280 ; 0x118 - 80128a6: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 80128aa: 681b ldr r3, [r3, #0] - 80128ac: 7f5b ldrb r3, [r3, #29] - 80128ae: f003 0301 and.w r3, r3, #1 - 80128b2: 2b00 cmp r3, #0 - 80128b4: f000 8088 beq.w 80129c8 + 801280e: f507 738c add.w r3, r7, #280 ; 0x118 + 8012812: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012816: 681b ldr r3, [r3, #0] + 8012818: 7f5b ldrb r3, [r3, #29] + 801281a: f003 0301 and.w r3, r3, #1 + 801281e: 2b00 cmp r3, #0 + 8012820: f000 8088 beq.w 8012934 if(letter == (uint32_t)LV_TXT_COLOR_CMD[0]) { - 80128b8: 2323 movs r3, #35 ; 0x23 - 80128ba: 461a mov r2, r3 - 80128bc: 6b7b ldr r3, [r7, #52] ; 0x34 - 80128be: 429a cmp r2, r3 - 80128c0: d11a bne.n 80128f8 + 8012824: 2323 movs r3, #35 ; 0x23 + 8012826: 461a mov r2, r3 + 8012828: 6b7b ldr r3, [r7, #52] ; 0x34 + 801282a: 429a cmp r2, r3 + 801282c: d11a bne.n 8012864 if(cmd_state == CMD_STATE_WAIT) { /*Start char*/ - 80128c2: f897 30ff ldrb.w r3, [r7, #255] ; 0xff - 80128c6: 2b00 cmp r3, #0 - 80128c8: d106 bne.n 80128d8 + 801282e: f897 30ff ldrb.w r3, [r7, #255] ; 0xff + 8012832: 2b00 cmp r3, #0 + 8012834: d106 bne.n 8012844 par_start = i; - 80128ca: 6ffb ldr r3, [r7, #124] ; 0x7c - 80128cc: f8c7 30f8 str.w r3, [r7, #248] ; 0xf8 + 8012836: 6ffb ldr r3, [r7, #124] ; 0x7c + 8012838: f8c7 30f8 str.w r3, [r7, #248] ; 0xf8 cmd_state = CMD_STATE_PAR; - 80128d0: 2301 movs r3, #1 - 80128d2: f887 30ff strb.w r3, [r7, #255] ; 0xff + 801283c: 2301 movs r3, #1 + 801283e: f887 30ff strb.w r3, [r7, #255] ; 0xff continue; - 80128d6: e112 b.n 8012afe + 8012842: e112 b.n 8012a6a } else if(cmd_state == CMD_STATE_PAR) { /*Other start char in parameter escaped cmd. char*/ - 80128d8: f897 30ff ldrb.w r3, [r7, #255] ; 0xff - 80128dc: 2b01 cmp r3, #1 - 80128de: d103 bne.n 80128e8 + 8012844: f897 30ff ldrb.w r3, [r7, #255] ; 0xff + 8012848: 2b01 cmp r3, #1 + 801284a: d103 bne.n 8012854 cmd_state = CMD_STATE_WAIT; - 80128e0: 2300 movs r3, #0 - 80128e2: f887 30ff strb.w r3, [r7, #255] ; 0xff - 80128e6: e007 b.n 80128f8 + 801284c: 2300 movs r3, #0 + 801284e: f887 30ff strb.w r3, [r7, #255] ; 0xff + 8012852: e007 b.n 8012864 } else if(cmd_state == CMD_STATE_IN) { /*Command end*/ - 80128e8: f897 30ff ldrb.w r3, [r7, #255] ; 0xff - 80128ec: 2b02 cmp r3, #2 - 80128ee: d103 bne.n 80128f8 + 8012854: f897 30ff ldrb.w r3, [r7, #255] ; 0xff + 8012858: 2b02 cmp r3, #2 + 801285a: d103 bne.n 8012864 cmd_state = CMD_STATE_WAIT; - 80128f0: 2300 movs r3, #0 - 80128f2: f887 30ff strb.w r3, [r7, #255] ; 0xff + 801285c: 2300 movs r3, #0 + 801285e: f887 30ff strb.w r3, [r7, #255] ; 0xff continue; - 80128f6: e102 b.n 8012afe + 8012862: e102 b.n 8012a6a } } /*Skip the color parameter and wait the space after it*/ if(cmd_state == CMD_STATE_PAR) { - 80128f8: f897 30ff ldrb.w r3, [r7, #255] ; 0xff - 80128fc: 2b01 cmp r3, #1 - 80128fe: d163 bne.n 80129c8 + 8012864: f897 30ff ldrb.w r3, [r7, #255] ; 0xff + 8012868: 2b01 cmp r3, #1 + 801286a: d163 bne.n 8012934 if(letter == ' ') { - 8012900: 6b7b ldr r3, [r7, #52] ; 0x34 - 8012902: 2b20 cmp r3, #32 - 8012904: f040 80fa bne.w 8012afc + 801286c: 6b7b ldr r3, [r7, #52] ; 0x34 + 801286e: 2b20 cmp r3, #32 + 8012870: f040 80fa bne.w 8012a68 /*Get the parameter*/ if(i - par_start == LABEL_RECOLOR_PAR_LENGTH + 1) { - 8012908: 6ffa ldr r2, [r7, #124] ; 0x7c - 801290a: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 - 801290e: 1ad3 subs r3, r2, r3 - 8012910: 2b07 cmp r3, #7 - 8012912: d14d bne.n 80129b0 + 8012874: 6ffa ldr r2, [r7, #124] ; 0x7c + 8012876: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 + 801287a: 1ad3 subs r3, r2, r3 + 801287c: 2b07 cmp r3, #7 + 801287e: d14d bne.n 801291c char buf[LABEL_RECOLOR_PAR_LENGTH + 1]; lv_memcpy_small(buf, &bidi_txt[par_start], LABEL_RECOLOR_PAR_LENGTH); - 8012914: f8d7 20cc ldr.w r2, [r7, #204] ; 0xcc - 8012918: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 - 801291c: 18d1 adds r1, r2, r3 - 801291e: f107 0328 add.w r3, r7, #40 ; 0x28 - 8012922: 2206 movs r2, #6 - 8012924: 4618 mov r0, r3 - 8012926: f7ff fbca bl 80120be + 8012880: f8d7 20cc ldr.w r2, [r7, #204] ; 0xcc + 8012884: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 + 8012888: 18d1 adds r1, r2, r3 + 801288a: f107 0328 add.w r3, r7, #40 ; 0x28 + 801288e: 2206 movs r2, #6 + 8012890: 4618 mov r0, r3 + 8012892: f7ff fbca bl 801202a buf[LABEL_RECOLOR_PAR_LENGTH] = '\0'; - 801292a: 2300 movs r3, #0 - 801292c: f887 302e strb.w r3, [r7, #46] ; 0x2e + 8012896: 2300 movs r3, #0 + 8012898: f887 302e strb.w r3, [r7, #46] ; 0x2e int r, g, b; r = (hex_char_to_num(buf[0]) << 4) + hex_char_to_num(buf[1]); - 8012930: f897 3028 ldrb.w r3, [r7, #40] ; 0x28 - 8012934: 4618 mov r0, r3 - 8012936: f000 fa8d bl 8012e54 - 801293a: 4603 mov r3, r0 - 801293c: 011c lsls r4, r3, #4 - 801293e: f897 3029 ldrb.w r3, [r7, #41] ; 0x29 - 8012942: 4618 mov r0, r3 - 8012944: f000 fa86 bl 8012e54 - 8012948: 4603 mov r3, r0 - 801294a: 4423 add r3, r4 - 801294c: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8 + 801289c: f897 3028 ldrb.w r3, [r7, #40] ; 0x28 + 80128a0: 4618 mov r0, r3 + 80128a2: f000 fa8d bl 8012dc0 + 80128a6: 4603 mov r3, r0 + 80128a8: 011c lsls r4, r3, #4 + 80128aa: f897 3029 ldrb.w r3, [r7, #41] ; 0x29 + 80128ae: 4618 mov r0, r3 + 80128b0: f000 fa86 bl 8012dc0 + 80128b4: 4603 mov r3, r0 + 80128b6: 4423 add r3, r4 + 80128b8: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8 g = (hex_char_to_num(buf[2]) << 4) + hex_char_to_num(buf[3]); - 8012950: f897 302a ldrb.w r3, [r7, #42] ; 0x2a - 8012954: 4618 mov r0, r3 - 8012956: f000 fa7d bl 8012e54 - 801295a: 4603 mov r3, r0 - 801295c: 011c lsls r4, r3, #4 - 801295e: f897 302b ldrb.w r3, [r7, #43] ; 0x2b - 8012962: 4618 mov r0, r3 - 8012964: f000 fa76 bl 8012e54 - 8012968: 4603 mov r3, r0 - 801296a: 4423 add r3, r4 - 801296c: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 + 80128bc: f897 302a ldrb.w r3, [r7, #42] ; 0x2a + 80128c0: 4618 mov r0, r3 + 80128c2: f000 fa7d bl 8012dc0 + 80128c6: 4603 mov r3, r0 + 80128c8: 011c lsls r4, r3, #4 + 80128ca: f897 302b ldrb.w r3, [r7, #43] ; 0x2b + 80128ce: 4618 mov r0, r3 + 80128d0: f000 fa76 bl 8012dc0 + 80128d4: 4603 mov r3, r0 + 80128d6: 4423 add r3, r4 + 80128d8: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 b = (hex_char_to_num(buf[4]) << 4) + hex_char_to_num(buf[5]); - 8012970: f897 302c ldrb.w r3, [r7, #44] ; 0x2c - 8012974: 4618 mov r0, r3 - 8012976: f000 fa6d bl 8012e54 - 801297a: 4603 mov r3, r0 - 801297c: 011c lsls r4, r3, #4 - 801297e: f897 302d ldrb.w r3, [r7, #45] ; 0x2d - 8012982: 4618 mov r0, r3 - 8012984: f000 fa66 bl 8012e54 - 8012988: 4603 mov r3, r0 - 801298a: 4423 add r3, r4 - 801298c: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0 + 80128dc: f897 302c ldrb.w r3, [r7, #44] ; 0x2c + 80128e0: 4618 mov r0, r3 + 80128e2: f000 fa6d bl 8012dc0 + 80128e6: 4603 mov r3, r0 + 80128e8: 011c lsls r4, r3, #4 + 80128ea: f897 302d ldrb.w r3, [r7, #45] ; 0x2d + 80128ee: 4618 mov r0, r3 + 80128f0: f000 fa66 bl 8012dc0 + 80128f4: 4603 mov r3, r0 + 80128f6: 4423 add r3, r4 + 80128f8: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0 recolor = lv_color_make(r, g, b); - 8012990: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 - 8012994: b2db uxtb r3, r3 - 8012996: f8d7 20c4 ldr.w r2, [r7, #196] ; 0xc4 - 801299a: b2d1 uxtb r1, r2 - 801299c: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0 - 80129a0: b2d2 uxtb r2, r2 - 80129a2: 4618 mov r0, r3 - 80129a4: f7ff fbac bl 8012100 - 80129a8: 4603 mov r3, r0 - 80129aa: f8a7 3078 strh.w r3, [r7, #120] ; 0x78 - 80129ae: e007 b.n 80129c0 + 80128fc: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 + 8012900: b2db uxtb r3, r3 + 8012902: f8d7 20c4 ldr.w r2, [r7, #196] ; 0xc4 + 8012906: b2d1 uxtb r1, r2 + 8012908: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0 + 801290c: b2d2 uxtb r2, r2 + 801290e: 4618 mov r0, r3 + 8012910: f7ff fbac bl 801206c + 8012914: 4603 mov r3, r0 + 8012916: f8a7 3078 strh.w r3, [r7, #120] ; 0x78 + 801291a: e007 b.n 801292c } else { recolor.full = dsc->color.full; - 80129b0: f507 738c add.w r3, r7, #280 ; 0x118 - 80129b4: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 80129b8: 681b ldr r3, [r3, #0] - 80129ba: 899b ldrh r3, [r3, #12] - 80129bc: f8a7 3078 strh.w r3, [r7, #120] ; 0x78 + 801291c: f507 738c add.w r3, r7, #280 ; 0x118 + 8012920: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012924: 681b ldr r3, [r3, #0] + 8012926: 899b ldrh r3, [r3, #12] + 8012928: f8a7 3078 strh.w r3, [r7, #120] ; 0x78 } cmd_state = CMD_STATE_IN; /*After the parameter the text is in the command*/ - 80129c0: 2302 movs r3, #2 - 80129c2: f887 30ff strb.w r3, [r7, #255] ; 0xff + 801292c: 2302 movs r3, #2 + 801292e: f887 30ff strb.w r3, [r7, #255] ; 0xff } continue; - 80129c6: e099 b.n 8012afc + 8012932: e099 b.n 8012a68 } } color = dsc->color; - 80129c8: f507 738c add.w r3, r7, #280 ; 0x118 - 80129cc: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 80129d0: 681b ldr r3, [r3, #0] - 80129d2: 899b ldrh r3, [r3, #12] - 80129d4: f8a7 3074 strh.w r3, [r7, #116] ; 0x74 + 8012934: f507 738c add.w r3, r7, #280 ; 0x118 + 8012938: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 801293c: 681b ldr r3, [r3, #0] + 801293e: 899b ldrh r3, [r3, #12] + 8012940: f8a7 3074 strh.w r3, [r7, #116] ; 0x74 if(cmd_state == CMD_STATE_IN) color = recolor; - 80129d8: f897 30ff ldrb.w r3, [r7, #255] ; 0xff - 80129dc: 2b02 cmp r3, #2 - 80129de: d103 bne.n 80129e8 - 80129e0: f8b7 3078 ldrh.w r3, [r7, #120] ; 0x78 - 80129e4: f8a7 3074 strh.w r3, [r7, #116] ; 0x74 + 8012944: f897 30ff ldrb.w r3, [r7, #255] ; 0xff + 8012948: 2b02 cmp r3, #2 + 801294a: d103 bne.n 8012954 + 801294c: f8b7 3078 ldrh.w r3, [r7, #120] ; 0x78 + 8012950: f8a7 3074 strh.w r3, [r7, #116] ; 0x74 letter_w = lv_font_get_glyph_width(font, letter, letter_next); - 80129e8: 6b7b ldr r3, [r7, #52] ; 0x34 - 80129ea: 6b3a ldr r2, [r7, #48] ; 0x30 - 80129ec: 4619 mov r1, r3 - 80129ee: f8d7 00f0 ldr.w r0, [r7, #240] ; 0xf0 - 80129f2: f01d f893 bl 802fb1c - 80129f6: 4603 mov r3, r0 - 80129f8: f8c7 30bc str.w r3, [r7, #188] ; 0xbc + 8012954: 6b7b ldr r3, [r7, #52] ; 0x34 + 8012956: 6b3a ldr r2, [r7, #48] ; 0x30 + 8012958: 4619 mov r1, r3 + 801295a: f8d7 00f0 ldr.w r0, [r7, #240] ; 0xf0 + 801295e: f01d f893 bl 802fa88 + 8012962: 4603 mov r3, r0 + 8012964: f8c7 30bc str.w r3, [r7, #188] ; 0xbc if(sel_start != 0xFFFF && sel_end != 0xFFFF) { - 80129fc: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 8012a00: f64f 72ff movw r2, #65535 ; 0xffff - 8012a04: 4293 cmp r3, r2 - 8012a06: d04c beq.n 8012aa2 - 8012a08: f8d7 3100 ldr.w r3, [r7, #256] ; 0x100 - 8012a0c: f64f 72ff movw r2, #65535 ; 0xffff - 8012a10: 4293 cmp r3, r2 - 8012a12: d046 beq.n 8012aa2 + 8012968: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 801296c: f64f 72ff movw r2, #65535 ; 0xffff + 8012970: 4293 cmp r3, r2 + 8012972: d04c beq.n 8012a0e + 8012974: f8d7 3100 ldr.w r3, [r7, #256] ; 0x100 + 8012978: f64f 72ff movw r2, #65535 ; 0xffff + 801297c: 4293 cmp r3, r2 + 801297e: d046 beq.n 8012a0e if(logical_char_pos >= sel_start && logical_char_pos < sel_end) { - 8012a14: f8d7 20f4 ldr.w r2, [r7, #244] ; 0xf4 - 8012a18: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 8012a1c: 429a cmp r2, r3 - 8012a1e: d340 bcc.n 8012aa2 - 8012a20: f8d7 20f4 ldr.w r2, [r7, #244] ; 0xf4 - 8012a24: f8d7 3100 ldr.w r3, [r7, #256] ; 0x100 - 8012a28: 429a cmp r2, r3 - 8012a2a: d23a bcs.n 8012aa2 + 8012980: f8d7 20f4 ldr.w r2, [r7, #244] ; 0xf4 + 8012984: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 8012988: 429a cmp r2, r3 + 801298a: d340 bcc.n 8012a0e + 801298c: f8d7 20f4 ldr.w r2, [r7, #244] ; 0xf4 + 8012990: f8d7 3100 ldr.w r3, [r7, #256] ; 0x100 + 8012994: 429a cmp r2, r3 + 8012996: d23a bcs.n 8012a0e lv_area_t sel_coords; sel_coords.x1 = pos.x; - 8012a2c: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c - 8012a30: 843b strh r3, [r7, #32] + 8012998: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c + 801299c: 843b strh r3, [r7, #32] sel_coords.y1 = pos.y; - 8012a32: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e - 8012a36: 847b strh r3, [r7, #34] ; 0x22 + 801299e: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e + 80129a2: 847b strh r3, [r7, #34] ; 0x22 sel_coords.x2 = pos.x + letter_w + dsc->letter_space - 1; - 8012a38: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c - 8012a3c: b29a uxth r2, r3 - 8012a3e: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 8012a42: b29b uxth r3, r3 - 8012a44: 4413 add r3, r2 - 8012a46: b29a uxth r2, r3 - 8012a48: f507 738c add.w r3, r7, #280 ; 0x118 - 8012a4c: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012a50: 681b ldr r3, [r3, #0] - 8012a52: f9b3 3014 ldrsh.w r3, [r3, #20] - 8012a56: b29b uxth r3, r3 - 8012a58: 4413 add r3, r2 - 8012a5a: b29b uxth r3, r3 - 8012a5c: 3b01 subs r3, #1 - 8012a5e: b29b uxth r3, r3 - 8012a60: b21b sxth r3, r3 - 8012a62: 84bb strh r3, [r7, #36] ; 0x24 + 80129a4: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c + 80129a8: b29a uxth r2, r3 + 80129aa: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 80129ae: b29b uxth r3, r3 + 80129b0: 4413 add r3, r2 + 80129b2: b29a uxth r2, r3 + 80129b4: f507 738c add.w r3, r7, #280 ; 0x118 + 80129b8: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 80129bc: 681b ldr r3, [r3, #0] + 80129be: f9b3 3014 ldrsh.w r3, [r3, #20] + 80129c2: b29b uxth r3, r3 + 80129c4: 4413 add r3, r2 + 80129c6: b29b uxth r3, r3 + 80129c8: 3b01 subs r3, #1 + 80129ca: b29b uxth r3, r3 + 80129cc: b21b sxth r3, r3 + 80129ce: 84bb strh r3, [r7, #36] ; 0x24 sel_coords.y2 = pos.y + line_height - 1; - 8012a64: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e - 8012a68: b29a uxth r2, r3 - 8012a6a: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 - 8012a6e: b29b uxth r3, r3 - 8012a70: 4413 add r3, r2 - 8012a72: b29b uxth r3, r3 - 8012a74: 3b01 subs r3, #1 - 8012a76: b29b uxth r3, r3 - 8012a78: b21b sxth r3, r3 - 8012a7a: 84fb strh r3, [r7, #38] ; 0x26 + 80129d0: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e + 80129d4: b29a uxth r2, r3 + 80129d6: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 + 80129da: b29b uxth r3, r3 + 80129dc: 4413 add r3, r2 + 80129de: b29b uxth r3, r3 + 80129e0: 3b01 subs r3, #1 + 80129e2: b29b uxth r3, r3 + 80129e4: b21b sxth r3, r3 + 80129e6: 84fb strh r3, [r7, #38] ; 0x26 lv_draw_rect(draw_ctx, &draw_dsc_sel, &sel_coords); - 8012a7c: f107 0220 add.w r2, r7, #32 - 8012a80: f107 013c add.w r1, r7, #60 ; 0x3c - 8012a84: f507 738c add.w r3, r7, #280 ; 0x118 - 8012a88: f5a3 7386 sub.w r3, r3, #268 ; 0x10c - 8012a8c: 6818 ldr r0, [r3, #0] - 8012a8e: f002 fef3 bl 8015878 + 80129e8: f107 0220 add.w r2, r7, #32 + 80129ec: f107 013c add.w r1, r7, #60 ; 0x3c + 80129f0: f507 738c add.w r3, r7, #280 ; 0x118 + 80129f4: f5a3 7386 sub.w r3, r3, #268 ; 0x10c + 80129f8: 6818 ldr r0, [r3, #0] + 80129fa: f002 fef3 bl 80157e4 color = dsc->sel_color; - 8012a92: f507 738c add.w r3, r7, #280 ; 0x118 - 8012a96: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012a9a: 681b ldr r3, [r3, #0] - 8012a9c: 89db ldrh r3, [r3, #14] - 8012a9e: f8a7 3074 strh.w r3, [r7, #116] ; 0x74 + 80129fe: f507 738c add.w r3, r7, #280 ; 0x118 + 8012a02: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012a06: 681b ldr r3, [r3, #0] + 8012a08: 89db ldrh r3, [r3, #14] + 8012a0a: f8a7 3074 strh.w r3, [r7, #116] ; 0x74 } } dsc_mod.color = color; - 8012aa2: f8b7 3074 ldrh.w r3, [r7, #116] ; 0x74 - 8012aa6: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 + 8012a0e: f8b7 3074 ldrh.w r3, [r7, #116] ; 0x74 + 8012a12: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 lv_draw_letter(draw_ctx, &dsc_mod, &pos, letter); - 8012aaa: 6b7b ldr r3, [r7, #52] ; 0x34 - 8012aac: f107 028c add.w r2, r7, #140 ; 0x8c - 8012ab0: f107 019c add.w r1, r7, #156 ; 0x9c - 8012ab4: f507 708c add.w r0, r7, #280 ; 0x118 - 8012ab8: f5a0 7086 sub.w r0, r0, #268 ; 0x10c - 8012abc: 6800 ldr r0, [r0, #0] - 8012abe: f000 f9b7 bl 8012e30 + 8012a16: 6b7b ldr r3, [r7, #52] ; 0x34 + 8012a18: f107 028c add.w r2, r7, #140 ; 0x8c + 8012a1c: f107 019c add.w r1, r7, #156 ; 0x9c + 8012a20: f507 708c add.w r0, r7, #280 ; 0x118 + 8012a24: f5a0 7086 sub.w r0, r0, #268 ; 0x10c + 8012a28: 6800 ldr r0, [r0, #0] + 8012a2a: f000 f9b7 bl 8012d9c if(letter_w > 0) { - 8012ac2: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 8012ac6: 2b00 cmp r3, #0 - 8012ac8: dd19 ble.n 8012afe + 8012a2e: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 8012a32: 2b00 cmp r3, #0 + 8012a34: dd19 ble.n 8012a6a pos.x += letter_w + dsc->letter_space; - 8012aca: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c - 8012ace: b29a uxth r2, r3 - 8012ad0: f507 738c add.w r3, r7, #280 ; 0x118 - 8012ad4: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012ad8: 681b ldr r3, [r3, #0] - 8012ada: f9b3 3014 ldrsh.w r3, [r3, #20] - 8012ade: b299 uxth r1, r3 - 8012ae0: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 8012ae4: b29b uxth r3, r3 - 8012ae6: 440b add r3, r1 - 8012ae8: b29b uxth r3, r3 - 8012aea: 4413 add r3, r2 - 8012aec: b29b uxth r3, r3 - 8012aee: b21b sxth r3, r3 - 8012af0: f8a7 308c strh.w r3, [r7, #140] ; 0x8c - 8012af4: e003 b.n 8012afe - 8012af6: bf00 nop - 8012af8: 200000f8 .word 0x200000f8 + 8012a36: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c + 8012a3a: b29a uxth r2, r3 + 8012a3c: f507 738c add.w r3, r7, #280 ; 0x118 + 8012a40: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012a44: 681b ldr r3, [r3, #0] + 8012a46: f9b3 3014 ldrsh.w r3, [r3, #20] + 8012a4a: b299 uxth r1, r3 + 8012a4c: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 8012a50: b29b uxth r3, r3 + 8012a52: 440b add r3, r1 + 8012a54: b29b uxth r3, r3 + 8012a56: 4413 add r3, r2 + 8012a58: b29b uxth r3, r3 + 8012a5a: b21b sxth r3, r3 + 8012a5c: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 8012a60: e003 b.n 8012a6a + 8012a62: bf00 nop + 8012a64: 200000f8 .word 0x200000f8 continue; - 8012afc: bf00 nop + 8012a68: bf00 nop while(i < line_end - line_start) { - 8012afe: f8d7 2108 ldr.w r2, [r7, #264] ; 0x108 - 8012b02: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 8012b06: 1ad2 subs r2, r2, r3 - 8012b08: 6ffb ldr r3, [r7, #124] ; 0x7c - 8012b0a: 429a cmp r2, r3 - 8012b0c: f63f aea2 bhi.w 8012854 + 8012a6a: f8d7 2108 ldr.w r2, [r7, #264] ; 0x108 + 8012a6e: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 8012a72: 1ad2 subs r2, r2, r3 + 8012a74: 6ffb ldr r3, [r7, #124] ; 0x7c + 8012a76: 429a cmp r2, r3 + 8012a78: f63f aea2 bhi.w 80127c0 } } if(dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH) { - 8012b10: f507 738c add.w r3, r7, #280 ; 0x118 - 8012b14: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012b18: 681b ldr r3, [r3, #0] - 8012b1a: 7f9b ldrb r3, [r3, #30] - 8012b1c: f3c3 0302 ubfx r3, r3, #0, #3 - 8012b20: b2db uxtb r3, r3 - 8012b22: f003 0302 and.w r3, r3, #2 - 8012b26: 2b00 cmp r3, #0 - 8012b28: d03f beq.n 8012baa + 8012a7c: f507 738c add.w r3, r7, #280 ; 0x118 + 8012a80: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012a84: 681b ldr r3, [r3, #0] + 8012a86: 7f9b ldrb r3, [r3, #30] + 8012a88: f3c3 0302 ubfx r3, r3, #0, #3 + 8012a8c: b2db uxtb r3, r3 + 8012a8e: f003 0302 and.w r3, r3, #2 + 8012a92: 2b00 cmp r3, #0 + 8012a94: d03f beq.n 8012b16 lv_point_t p1; lv_point_t p2; p1.x = pos_x_start; - 8012b2a: f8d7 30d0 ldr.w r3, [r7, #208] ; 0xd0 - 8012b2e: b21b sxth r3, r3 - 8012b30: 83bb strh r3, [r7, #28] + 8012a96: f8d7 30d0 ldr.w r3, [r7, #208] ; 0xd0 + 8012a9a: b21b sxth r3, r3 + 8012a9c: 83bb strh r3, [r7, #28] p1.y = pos.y + (dsc->font->line_height / 2) + line_dsc.width / 2; - 8012b32: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e - 8012b36: b29a uxth r2, r3 - 8012b38: f507 738c add.w r3, r7, #280 ; 0x118 - 8012b3c: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012b40: 681b ldr r3, [r3, #0] - 8012b42: 681b ldr r3, [r3, #0] - 8012b44: f9b3 3008 ldrsh.w r3, [r3, #8] - 8012b48: 0fd9 lsrs r1, r3, #31 - 8012b4a: 440b add r3, r1 - 8012b4c: 105b asrs r3, r3, #1 - 8012b4e: b21b sxth r3, r3 - 8012b50: b29b uxth r3, r3 - 8012b52: 4413 add r3, r2 - 8012b54: b29a uxth r2, r3 - 8012b56: f9b7 3082 ldrsh.w r3, [r7, #130] ; 0x82 - 8012b5a: 0fd9 lsrs r1, r3, #31 - 8012b5c: 440b add r3, r1 - 8012b5e: 105b asrs r3, r3, #1 - 8012b60: b21b sxth r3, r3 - 8012b62: b29b uxth r3, r3 - 8012b64: 4413 add r3, r2 - 8012b66: b29b uxth r3, r3 - 8012b68: b21b sxth r3, r3 - 8012b6a: 83fb strh r3, [r7, #30] + 8012a9e: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e + 8012aa2: b29a uxth r2, r3 + 8012aa4: f507 738c add.w r3, r7, #280 ; 0x118 + 8012aa8: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012aac: 681b ldr r3, [r3, #0] + 8012aae: 681b ldr r3, [r3, #0] + 8012ab0: f9b3 3008 ldrsh.w r3, [r3, #8] + 8012ab4: 0fd9 lsrs r1, r3, #31 + 8012ab6: 440b add r3, r1 + 8012ab8: 105b asrs r3, r3, #1 + 8012aba: b21b sxth r3, r3 + 8012abc: b29b uxth r3, r3 + 8012abe: 4413 add r3, r2 + 8012ac0: b29a uxth r2, r3 + 8012ac2: f9b7 3082 ldrsh.w r3, [r7, #130] ; 0x82 + 8012ac6: 0fd9 lsrs r1, r3, #31 + 8012ac8: 440b add r3, r1 + 8012aca: 105b asrs r3, r3, #1 + 8012acc: b21b sxth r3, r3 + 8012ace: b29b uxth r3, r3 + 8012ad0: 4413 add r3, r2 + 8012ad2: b29b uxth r3, r3 + 8012ad4: b21b sxth r3, r3 + 8012ad6: 83fb strh r3, [r7, #30] p2.x = pos.x; - 8012b6c: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c - 8012b70: f507 738c add.w r3, r7, #280 ; 0x118 - 8012b74: f5a3 7380 sub.w r3, r3, #256 ; 0x100 - 8012b78: 801a strh r2, [r3, #0] + 8012ad8: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c + 8012adc: f507 738c add.w r3, r7, #280 ; 0x118 + 8012ae0: f5a3 7380 sub.w r3, r3, #256 ; 0x100 + 8012ae4: 801a strh r2, [r3, #0] p2.y = p1.y; - 8012b7a: f9b7 201e ldrsh.w r2, [r7, #30] - 8012b7e: f507 738c add.w r3, r7, #280 ; 0x118 - 8012b82: f5a3 7380 sub.w r3, r3, #256 ; 0x100 - 8012b86: 805a strh r2, [r3, #2] + 8012ae6: f9b7 201e ldrsh.w r2, [r7, #30] + 8012aea: f507 738c add.w r3, r7, #280 ; 0x118 + 8012aee: f5a3 7380 sub.w r3, r3, #256 ; 0x100 + 8012af2: 805a strh r2, [r3, #2] line_dsc.color = color; - 8012b88: f8b7 3074 ldrh.w r3, [r7, #116] ; 0x74 - 8012b8c: f8a7 3080 strh.w r3, [r7, #128] ; 0x80 + 8012af4: f8b7 3074 ldrh.w r3, [r7, #116] ; 0x74 + 8012af8: f8a7 3080 strh.w r3, [r7, #128] ; 0x80 lv_draw_line(draw_ctx, &line_dsc, &p1, &p2); - 8012b90: f107 0318 add.w r3, r7, #24 - 8012b94: f107 021c add.w r2, r7, #28 - 8012b98: f107 0180 add.w r1, r7, #128 ; 0x80 - 8012b9c: f507 708c add.w r0, r7, #280 ; 0x118 - 8012ba0: f5a0 7086 sub.w r0, r0, #268 ; 0x10c - 8012ba4: 6800 ldr r0, [r0, #0] - 8012ba6: f000 f9e4 bl 8012f72 + 8012afc: f107 0318 add.w r3, r7, #24 + 8012b00: f107 021c add.w r2, r7, #28 + 8012b04: f107 0180 add.w r1, r7, #128 ; 0x80 + 8012b08: f507 708c add.w r0, r7, #280 ; 0x118 + 8012b0c: f5a0 7086 sub.w r0, r0, #268 ; 0x10c + 8012b10: 6800 ldr r0, [r0, #0] + 8012b12: f000 f9e4 bl 8012ede } if(dsc->decor & LV_TEXT_DECOR_UNDERLINE) { - 8012baa: f507 738c add.w r3, r7, #280 ; 0x118 - 8012bae: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012bb2: 681b ldr r3, [r3, #0] - 8012bb4: 7f9b ldrb r3, [r3, #30] - 8012bb6: f3c3 0302 ubfx r3, r3, #0, #3 - 8012bba: b2db uxtb r3, r3 - 8012bbc: f003 0301 and.w r3, r3, #1 - 8012bc0: 2b00 cmp r3, #0 - 8012bc2: d050 beq.n 8012c66 + 8012b16: f507 738c add.w r3, r7, #280 ; 0x118 + 8012b1a: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012b1e: 681b ldr r3, [r3, #0] + 8012b20: 7f9b ldrb r3, [r3, #30] + 8012b22: f3c3 0302 ubfx r3, r3, #0, #3 + 8012b26: b2db uxtb r3, r3 + 8012b28: f003 0301 and.w r3, r3, #1 + 8012b2c: 2b00 cmp r3, #0 + 8012b2e: d050 beq.n 8012bd2 lv_point_t p1; lv_point_t p2; p1.x = pos_x_start; - 8012bc4: f8d7 30d0 ldr.w r3, [r7, #208] ; 0xd0 - 8012bc8: b21a sxth r2, r3 - 8012bca: f507 738c add.w r3, r7, #280 ; 0x118 - 8012bce: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 8012bd2: 801a strh r2, [r3, #0] + 8012b30: f8d7 30d0 ldr.w r3, [r7, #208] ; 0xd0 + 8012b34: b21a sxth r2, r3 + 8012b36: f507 738c add.w r3, r7, #280 ; 0x118 + 8012b3a: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 8012b3e: 801a strh r2, [r3, #0] p1.y = pos.y + dsc->font->line_height - dsc->font->base_line - font->underline_position; - 8012bd4: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e - 8012bd8: b29a uxth r2, r3 - 8012bda: f507 738c add.w r3, r7, #280 ; 0x118 - 8012bde: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012be2: 681b ldr r3, [r3, #0] - 8012be4: 681b ldr r3, [r3, #0] - 8012be6: f9b3 3008 ldrsh.w r3, [r3, #8] - 8012bea: b29b uxth r3, r3 - 8012bec: 4413 add r3, r2 - 8012bee: b29a uxth r2, r3 - 8012bf0: f507 738c add.w r3, r7, #280 ; 0x118 - 8012bf4: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012bf8: 681b ldr r3, [r3, #0] - 8012bfa: 681b ldr r3, [r3, #0] - 8012bfc: f9b3 300a ldrsh.w r3, [r3, #10] - 8012c00: b29b uxth r3, r3 - 8012c02: 1ad3 subs r3, r2, r3 - 8012c04: b29a uxth r2, r3 - 8012c06: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 8012c0a: f993 300d ldrsb.w r3, [r3, #13] - 8012c0e: b29b uxth r3, r3 - 8012c10: 1ad3 subs r3, r2, r3 - 8012c12: b29b uxth r3, r3 - 8012c14: b21a sxth r2, r3 - 8012c16: f507 738c add.w r3, r7, #280 ; 0x118 - 8012c1a: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 8012c1e: 805a strh r2, [r3, #2] + 8012b40: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e + 8012b44: b29a uxth r2, r3 + 8012b46: f507 738c add.w r3, r7, #280 ; 0x118 + 8012b4a: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012b4e: 681b ldr r3, [r3, #0] + 8012b50: 681b ldr r3, [r3, #0] + 8012b52: f9b3 3008 ldrsh.w r3, [r3, #8] + 8012b56: b29b uxth r3, r3 + 8012b58: 4413 add r3, r2 + 8012b5a: b29a uxth r2, r3 + 8012b5c: f507 738c add.w r3, r7, #280 ; 0x118 + 8012b60: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012b64: 681b ldr r3, [r3, #0] + 8012b66: 681b ldr r3, [r3, #0] + 8012b68: f9b3 300a ldrsh.w r3, [r3, #10] + 8012b6c: b29b uxth r3, r3 + 8012b6e: 1ad3 subs r3, r2, r3 + 8012b70: b29a uxth r2, r3 + 8012b72: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8012b76: f993 300d ldrsb.w r3, [r3, #13] + 8012b7a: b29b uxth r3, r3 + 8012b7c: 1ad3 subs r3, r2, r3 + 8012b7e: b29b uxth r3, r3 + 8012b80: b21a sxth r2, r3 + 8012b82: f507 738c add.w r3, r7, #280 ; 0x118 + 8012b86: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 8012b8a: 805a strh r2, [r3, #2] p2.x = pos.x; - 8012c20: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c - 8012c24: f507 738c add.w r3, r7, #280 ; 0x118 - 8012c28: f5a3 7384 sub.w r3, r3, #264 ; 0x108 - 8012c2c: 801a strh r2, [r3, #0] + 8012b8c: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c + 8012b90: f507 738c add.w r3, r7, #280 ; 0x118 + 8012b94: f5a3 7384 sub.w r3, r3, #264 ; 0x108 + 8012b98: 801a strh r2, [r3, #0] p2.y = p1.y; - 8012c2e: f507 738c add.w r3, r7, #280 ; 0x118 - 8012c32: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 8012c36: f9b3 2002 ldrsh.w r2, [r3, #2] - 8012c3a: f507 738c add.w r3, r7, #280 ; 0x118 - 8012c3e: f5a3 7384 sub.w r3, r3, #264 ; 0x108 - 8012c42: 805a strh r2, [r3, #2] + 8012b9a: f507 738c add.w r3, r7, #280 ; 0x118 + 8012b9e: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 8012ba2: f9b3 2002 ldrsh.w r2, [r3, #2] + 8012ba6: f507 738c add.w r3, r7, #280 ; 0x118 + 8012baa: f5a3 7384 sub.w r3, r3, #264 ; 0x108 + 8012bae: 805a strh r2, [r3, #2] line_dsc.color = color; - 8012c44: f8b7 3074 ldrh.w r3, [r7, #116] ; 0x74 - 8012c48: f8a7 3080 strh.w r3, [r7, #128] ; 0x80 + 8012bb0: f8b7 3074 ldrh.w r3, [r7, #116] ; 0x74 + 8012bb4: f8a7 3080 strh.w r3, [r7, #128] ; 0x80 lv_draw_line(draw_ctx, &line_dsc, &p1, &p2); - 8012c4c: f107 0310 add.w r3, r7, #16 - 8012c50: f107 0214 add.w r2, r7, #20 - 8012c54: f107 0180 add.w r1, r7, #128 ; 0x80 - 8012c58: f507 708c add.w r0, r7, #280 ; 0x118 - 8012c5c: f5a0 7086 sub.w r0, r0, #268 ; 0x10c - 8012c60: 6800 ldr r0, [r0, #0] - 8012c62: f000 f986 bl 8012f72 + 8012bb8: f107 0310 add.w r3, r7, #16 + 8012bbc: f107 0214 add.w r2, r7, #20 + 8012bc0: f107 0180 add.w r1, r7, #128 ; 0x80 + 8012bc4: f507 708c add.w r0, r7, #280 ; 0x118 + 8012bc8: f5a0 7086 sub.w r0, r0, #268 ; 0x10c + 8012bcc: 6800 ldr r0, [r0, #0] + 8012bce: f000 f986 bl 8012ede #if LV_USE_BIDI lv_mem_buf_release(bidi_txt); bidi_txt = NULL; #endif /*Go to next line*/ line_start = line_end; - 8012c66: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 - 8012c6a: f8c7 3110 str.w r3, [r7, #272] ; 0x110 + 8012bd2: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 + 8012bd6: f8c7 3110 str.w r3, [r7, #272] ; 0x110 line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, NULL, dsc->flag); - 8012c6e: f507 738c add.w r3, r7, #280 ; 0x118 - 8012c72: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 8012c76: 681a ldr r2, [r3, #0] - 8012c78: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 8012c7c: 18d0 adds r0, r2, r3 - 8012c7e: f507 738c add.w r3, r7, #280 ; 0x118 - 8012c82: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012c86: 681b ldr r3, [r3, #0] - 8012c88: f9b3 2014 ldrsh.w r2, [r3, #20] - 8012c8c: f8d7 3114 ldr.w r3, [r7, #276] ; 0x114 - 8012c90: b219 sxth r1, r3 - 8012c92: f507 738c add.w r3, r7, #280 ; 0x118 - 8012c96: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012c9a: 681b ldr r3, [r3, #0] - 8012c9c: 7f5b ldrb r3, [r3, #29] - 8012c9e: 9301 str r3, [sp, #4] - 8012ca0: 2300 movs r3, #0 - 8012ca2: 9300 str r3, [sp, #0] - 8012ca4: 460b mov r3, r1 - 8012ca6: f8d7 10f0 ldr.w r1, [r7, #240] ; 0xf0 - 8012caa: f023 fb89 bl 80363c0 <_lv_txt_get_next_line> - 8012cae: 4602 mov r2, r0 - 8012cb0: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 - 8012cb4: 4413 add r3, r2 - 8012cb6: f8c7 3108 str.w r3, [r7, #264] ; 0x108 + 8012bda: f507 738c add.w r3, r7, #280 ; 0x118 + 8012bde: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8012be2: 681a ldr r2, [r3, #0] + 8012be4: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 8012be8: 18d0 adds r0, r2, r3 + 8012bea: f507 738c add.w r3, r7, #280 ; 0x118 + 8012bee: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012bf2: 681b ldr r3, [r3, #0] + 8012bf4: f9b3 2014 ldrsh.w r2, [r3, #20] + 8012bf8: f8d7 3114 ldr.w r3, [r7, #276] ; 0x114 + 8012bfc: b219 sxth r1, r3 + 8012bfe: f507 738c add.w r3, r7, #280 ; 0x118 + 8012c02: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012c06: 681b ldr r3, [r3, #0] + 8012c08: 7f5b ldrb r3, [r3, #29] + 8012c0a: 9301 str r3, [sp, #4] + 8012c0c: 2300 movs r3, #0 + 8012c0e: 9300 str r3, [sp, #0] + 8012c10: 460b mov r3, r1 + 8012c12: f8d7 10f0 ldr.w r1, [r7, #240] ; 0xf0 + 8012c16: f023 fb89 bl 803632c <_lv_txt_get_next_line> + 8012c1a: 4602 mov r2, r0 + 8012c1c: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 + 8012c20: 4413 add r3, r2 + 8012c22: f8c7 3108 str.w r3, [r7, #264] ; 0x108 pos.x = coords->x1; - 8012cba: f507 738c add.w r3, r7, #280 ; 0x118 - 8012cbe: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 8012cc2: 681b ldr r3, [r3, #0] - 8012cc4: f9b3 3000 ldrsh.w r3, [r3] - 8012cc8: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 8012c26: f507 738c add.w r3, r7, #280 ; 0x118 + 8012c2a: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 8012c2e: 681b ldr r3, [r3, #0] + 8012c30: f9b3 3000 ldrsh.w r3, [r3] + 8012c34: f8a7 308c strh.w r3, [r7, #140] ; 0x8c /*Align to middle*/ if(align == LV_TEXT_ALIGN_CENTER) { - 8012ccc: f897 3093 ldrb.w r3, [r7, #147] ; 0x93 - 8012cd0: 2b02 cmp r3, #2 - 8012cd2: d13c bne.n 8012d4e + 8012c38: f897 3093 ldrb.w r3, [r7, #147] ; 0x93 + 8012c3c: 2b02 cmp r3, #2 + 8012c3e: d13c bne.n 8012cba line_width = lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag); - 8012cd4: f507 738c add.w r3, r7, #280 ; 0x118 - 8012cd8: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 8012cdc: 681a ldr r2, [r3, #0] - 8012cde: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 8012ce2: 18d0 adds r0, r2, r3 - 8012ce4: f8d7 2108 ldr.w r2, [r7, #264] ; 0x108 - 8012ce8: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 8012cec: 1ad1 subs r1, r2, r3 - 8012cee: f507 738c add.w r3, r7, #280 ; 0x118 - 8012cf2: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012cf6: 681b ldr r3, [r3, #0] - 8012cf8: f9b3 2014 ldrsh.w r2, [r3, #20] - 8012cfc: f507 738c add.w r3, r7, #280 ; 0x118 - 8012d00: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012d04: 681b ldr r3, [r3, #0] - 8012d06: 7f5b ldrb r3, [r3, #29] - 8012d08: 9300 str r3, [sp, #0] - 8012d0a: 4613 mov r3, r2 - 8012d0c: f8d7 20f0 ldr.w r2, [r7, #240] ; 0xf0 - 8012d10: f023 fc34 bl 803657c - 8012d14: 4603 mov r3, r0 + 8012c40: f507 738c add.w r3, r7, #280 ; 0x118 + 8012c44: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8012c48: 681a ldr r2, [r3, #0] + 8012c4a: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 8012c4e: 18d0 adds r0, r2, r3 + 8012c50: f8d7 2108 ldr.w r2, [r7, #264] ; 0x108 + 8012c54: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 8012c58: 1ad1 subs r1, r2, r3 + 8012c5a: f507 738c add.w r3, r7, #280 ; 0x118 + 8012c5e: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012c62: 681b ldr r3, [r3, #0] + 8012c64: f9b3 2014 ldrsh.w r2, [r3, #20] + 8012c68: f507 738c add.w r3, r7, #280 ; 0x118 + 8012c6c: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012c70: 681b ldr r3, [r3, #0] + 8012c72: 7f5b ldrb r3, [r3, #29] + 8012c74: 9300 str r3, [sp, #0] + 8012c76: 4613 mov r3, r2 + 8012c78: f8d7 20f0 ldr.w r2, [r7, #240] ; 0xf0 + 8012c7c: f023 fc34 bl 80364e8 + 8012c80: 4603 mov r3, r0 line_width = - 8012d16: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 + 8012c82: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 pos.x += (lv_area_get_width(coords) - line_width) / 2; - 8012d1a: f507 738c add.w r3, r7, #280 ; 0x118 - 8012d1e: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 8012d22: 6818 ldr r0, [r3, #0] - 8012d24: f7ff f9a9 bl 801207a - 8012d28: 4603 mov r3, r0 - 8012d2a: 461a mov r2, r3 - 8012d2c: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 8012d30: 1ad3 subs r3, r2, r3 - 8012d32: 0fda lsrs r2, r3, #31 - 8012d34: 4413 add r3, r2 - 8012d36: 105b asrs r3, r3, #1 - 8012d38: 4619 mov r1, r3 - 8012d3a: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c - 8012d3e: b29a uxth r2, r3 - 8012d40: b28b uxth r3, r1 - 8012d42: 4413 add r3, r2 - 8012d44: b29b uxth r3, r3 - 8012d46: b21b sxth r3, r3 - 8012d48: f8a7 308c strh.w r3, [r7, #140] ; 0x8c - 8012d4c: e03b b.n 8012dc6 + 8012c86: f507 738c add.w r3, r7, #280 ; 0x118 + 8012c8a: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 8012c8e: 6818 ldr r0, [r3, #0] + 8012c90: f7ff f9a9 bl 8011fe6 + 8012c94: 4603 mov r3, r0 + 8012c96: 461a mov r2, r3 + 8012c98: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 8012c9c: 1ad3 subs r3, r2, r3 + 8012c9e: 0fda lsrs r2, r3, #31 + 8012ca0: 4413 add r3, r2 + 8012ca2: 105b asrs r3, r3, #1 + 8012ca4: 4619 mov r1, r3 + 8012ca6: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c + 8012caa: b29a uxth r2, r3 + 8012cac: b28b uxth r3, r1 + 8012cae: 4413 add r3, r2 + 8012cb0: b29b uxth r3, r3 + 8012cb2: b21b sxth r3, r3 + 8012cb4: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 8012cb8: e03b b.n 8012d32 } /*Align to the right*/ else if(align == LV_TEXT_ALIGN_RIGHT) { - 8012d4e: f897 3093 ldrb.w r3, [r7, #147] ; 0x93 - 8012d52: 2b03 cmp r3, #3 - 8012d54: d137 bne.n 8012dc6 + 8012cba: f897 3093 ldrb.w r3, [r7, #147] ; 0x93 + 8012cbe: 2b03 cmp r3, #3 + 8012cc0: d137 bne.n 8012d32 line_width = lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag); - 8012d56: f507 738c add.w r3, r7, #280 ; 0x118 - 8012d5a: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 8012d5e: 681a ldr r2, [r3, #0] - 8012d60: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 8012d64: 18d0 adds r0, r2, r3 - 8012d66: f8d7 2108 ldr.w r2, [r7, #264] ; 0x108 - 8012d6a: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 8012d6e: 1ad1 subs r1, r2, r3 - 8012d70: f507 738c add.w r3, r7, #280 ; 0x118 - 8012d74: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012d78: 681b ldr r3, [r3, #0] - 8012d7a: f9b3 2014 ldrsh.w r2, [r3, #20] - 8012d7e: f507 738c add.w r3, r7, #280 ; 0x118 - 8012d82: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8012d86: 681b ldr r3, [r3, #0] - 8012d88: 7f5b ldrb r3, [r3, #29] - 8012d8a: 9300 str r3, [sp, #0] - 8012d8c: 4613 mov r3, r2 - 8012d8e: f8d7 20f0 ldr.w r2, [r7, #240] ; 0xf0 - 8012d92: f023 fbf3 bl 803657c - 8012d96: 4603 mov r3, r0 + 8012cc2: f507 738c add.w r3, r7, #280 ; 0x118 + 8012cc6: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8012cca: 681a ldr r2, [r3, #0] + 8012ccc: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 8012cd0: 18d0 adds r0, r2, r3 + 8012cd2: f8d7 2108 ldr.w r2, [r7, #264] ; 0x108 + 8012cd6: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 8012cda: 1ad1 subs r1, r2, r3 + 8012cdc: f507 738c add.w r3, r7, #280 ; 0x118 + 8012ce0: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012ce4: 681b ldr r3, [r3, #0] + 8012ce6: f9b3 2014 ldrsh.w r2, [r3, #20] + 8012cea: f507 738c add.w r3, r7, #280 ; 0x118 + 8012cee: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8012cf2: 681b ldr r3, [r3, #0] + 8012cf4: 7f5b ldrb r3, [r3, #29] + 8012cf6: 9300 str r3, [sp, #0] + 8012cf8: 4613 mov r3, r2 + 8012cfa: f8d7 20f0 ldr.w r2, [r7, #240] ; 0xf0 + 8012cfe: f023 fbf3 bl 80364e8 + 8012d02: 4603 mov r3, r0 line_width = - 8012d98: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 + 8012d04: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 pos.x += lv_area_get_width(coords) - line_width; - 8012d9c: f507 738c add.w r3, r7, #280 ; 0x118 - 8012da0: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 8012da4: 6818 ldr r0, [r3, #0] - 8012da6: f7ff f968 bl 801207a - 8012daa: 4603 mov r3, r0 - 8012dac: 461a mov r2, r3 - 8012dae: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 8012db2: 1ad3 subs r3, r2, r3 - 8012db4: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c - 8012db8: b292 uxth r2, r2 - 8012dba: b29b uxth r3, r3 - 8012dbc: 4413 add r3, r2 - 8012dbe: b29b uxth r3, r3 - 8012dc0: b21b sxth r3, r3 - 8012dc2: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 8012d08: f507 738c add.w r3, r7, #280 ; 0x118 + 8012d0c: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 8012d10: 6818 ldr r0, [r3, #0] + 8012d12: f7ff f968 bl 8011fe6 + 8012d16: 4603 mov r3, r0 + 8012d18: 461a mov r2, r3 + 8012d1a: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 8012d1e: 1ad3 subs r3, r2, r3 + 8012d20: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c + 8012d24: b292 uxth r2, r2 + 8012d26: b29b uxth r3, r3 + 8012d28: 4413 add r3, r2 + 8012d2a: b29b uxth r3, r3 + 8012d2c: b21b sxth r3, r3 + 8012d2e: f8a7 308c strh.w r3, [r7, #140] ; 0x8c } /*Go the next line position*/ pos.y += line_height; - 8012dc6: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e - 8012dca: b29a uxth r2, r3 - 8012dcc: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 - 8012dd0: b29b uxth r3, r3 - 8012dd2: 4413 add r3, r2 - 8012dd4: b29b uxth r3, r3 - 8012dd6: b21b sxth r3, r3 - 8012dd8: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 8012d32: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e + 8012d36: b29a uxth r2, r3 + 8012d38: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 + 8012d3c: b29b uxth r3, r3 + 8012d3e: 4413 add r3, r2 + 8012d40: b29b uxth r3, r3 + 8012d42: b21b sxth r3, r3 + 8012d44: f8a7 308e strh.w r3, [r7, #142] ; 0x8e if(pos.y > draw_ctx->clip_area->y2) return; - 8012ddc: f9b7 208e ldrsh.w r2, [r7, #142] ; 0x8e - 8012de0: f507 738c add.w r3, r7, #280 ; 0x118 - 8012de4: f5a3 7386 sub.w r3, r3, #268 ; 0x10c - 8012de8: 681b ldr r3, [r3, #0] - 8012dea: 689b ldr r3, [r3, #8] - 8012dec: f9b3 3006 ldrsh.w r3, [r3, #6] - 8012df0: 429a cmp r2, r3 - 8012df2: dc18 bgt.n 8012e26 + 8012d48: f9b7 208e ldrsh.w r2, [r7, #142] ; 0x8e + 8012d4c: f507 738c add.w r3, r7, #280 ; 0x118 + 8012d50: f5a3 7386 sub.w r3, r3, #268 ; 0x10c + 8012d54: 681b ldr r3, [r3, #0] + 8012d56: 689b ldr r3, [r3, #8] + 8012d58: f9b3 3006 ldrsh.w r3, [r3, #6] + 8012d5c: 429a cmp r2, r3 + 8012d5e: dc18 bgt.n 8012d92 while(txt[line_start] != '\0') { - 8012df4: f507 738c add.w r3, r7, #280 ; 0x118 - 8012df8: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 8012dfc: 681a ldr r2, [r3, #0] - 8012dfe: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 8012e02: 4413 add r3, r2 - 8012e04: 781b ldrb r3, [r3, #0] - 8012e06: 2b00 cmp r3, #0 - 8012e08: f47f ad09 bne.w 801281e - 8012e0c: e00c b.n 8012e28 + 8012d60: f507 738c add.w r3, r7, #280 ; 0x118 + 8012d64: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8012d68: 681a ldr r2, [r3, #0] + 8012d6a: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 8012d6e: 4413 add r3, r2 + 8012d70: 781b ldrb r3, [r3, #0] + 8012d72: 2b00 cmp r3, #0 + 8012d74: f47f ad09 bne.w 801278a + 8012d78: e00c b.n 8012d94 if(dsc->opa <= LV_OPA_MIN) return; - 8012e0e: bf00 nop - 8012e10: e00a b.n 8012e28 + 8012d7a: bf00 nop + 8012d7c: e00a b.n 8012d94 return; - 8012e12: bf00 nop - 8012e14: e008 b.n 8012e28 + 8012d7e: bf00 nop + 8012d80: e008 b.n 8012d94 return; - 8012e16: bf00 nop - 8012e18: e006 b.n 8012e28 + 8012d82: bf00 nop + 8012d84: e006 b.n 8012d94 return; - 8012e1a: bf00 nop - 8012e1c: e004 b.n 8012e28 + 8012d86: bf00 nop + 8012d88: e004 b.n 8012d94 if(!clip_ok) return; - 8012e1e: bf00 nop - 8012e20: e002 b.n 8012e28 + 8012d8a: bf00 nop + 8012d8c: e002 b.n 8012d94 if(txt[line_start] == '\0') return; - 8012e22: bf00 nop - 8012e24: e000 b.n 8012e28 + 8012d8e: bf00 nop + 8012d90: e000 b.n 8012d94 if(pos.y > draw_ctx->clip_area->y2) return; - 8012e26: bf00 nop + 8012d92: bf00 nop } LV_ASSERT_MEM_INTEGRITY(); } - 8012e28: f507 778c add.w r7, r7, #280 ; 0x118 - 8012e2c: 46bd mov sp, r7 - 8012e2e: bdb0 pop {r4, r5, r7, pc} + 8012d94: f507 778c add.w r7, r7, #280 ; 0x118 + 8012d98: 46bd mov sp, r7 + 8012d9a: bdb0 pop {r4, r5, r7, pc} -08012e30 : +08012d9c : void lv_draw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_point_t * pos_p, uint32_t letter) { - 8012e30: b590 push {r4, r7, lr} - 8012e32: b085 sub sp, #20 - 8012e34: af00 add r7, sp, #0 - 8012e36: 60f8 str r0, [r7, #12] - 8012e38: 60b9 str r1, [r7, #8] - 8012e3a: 607a str r2, [r7, #4] - 8012e3c: 603b str r3, [r7, #0] + 8012d9c: b590 push {r4, r7, lr} + 8012d9e: b085 sub sp, #20 + 8012da0: af00 add r7, sp, #0 + 8012da2: 60f8 str r0, [r7, #12] + 8012da4: 60b9 str r1, [r7, #8] + 8012da6: 607a str r2, [r7, #4] + 8012da8: 603b str r3, [r7, #0] draw_ctx->draw_letter(draw_ctx, dsc, pos_p, letter); - 8012e3e: 68fb ldr r3, [r7, #12] - 8012e40: 69dc ldr r4, [r3, #28] - 8012e42: 683b ldr r3, [r7, #0] - 8012e44: 687a ldr r2, [r7, #4] - 8012e46: 68b9 ldr r1, [r7, #8] - 8012e48: 68f8 ldr r0, [r7, #12] - 8012e4a: 47a0 blx r4 + 8012daa: 68fb ldr r3, [r7, #12] + 8012dac: 69dc ldr r4, [r3, #28] + 8012dae: 683b ldr r3, [r7, #0] + 8012db0: 687a ldr r2, [r7, #4] + 8012db2: 68b9 ldr r1, [r7, #8] + 8012db4: 68f8 ldr r0, [r7, #12] + 8012db6: 47a0 blx r4 } - 8012e4c: bf00 nop - 8012e4e: 3714 adds r7, #20 - 8012e50: 46bd mov sp, r7 - 8012e52: bd90 pop {r4, r7, pc} + 8012db8: bf00 nop + 8012dba: 3714 adds r7, #20 + 8012dbc: 46bd mov sp, r7 + 8012dbe: bd90 pop {r4, r7, pc} -08012e54 : +08012dc0 : * Convert a hexadecimal characters to a number (0..15) * @param hex Pointer to a hexadecimal character (0..9, A..F) * @return the numerical value of `hex` or 0 on error */ static uint8_t hex_char_to_num(char hex) { - 8012e54: b480 push {r7} - 8012e56: b085 sub sp, #20 - 8012e58: af00 add r7, sp, #0 - 8012e5a: 4603 mov r3, r0 - 8012e5c: 71fb strb r3, [r7, #7] + 8012dc0: b480 push {r7} + 8012dc2: b085 sub sp, #20 + 8012dc4: af00 add r7, sp, #0 + 8012dc6: 4603 mov r3, r0 + 8012dc8: 71fb strb r3, [r7, #7] uint8_t result = 0; - 8012e5e: 2300 movs r3, #0 - 8012e60: 73fb strb r3, [r7, #15] + 8012dca: 2300 movs r3, #0 + 8012dcc: 73fb strb r3, [r7, #15] if(hex >= '0' && hex <= '9') { - 8012e62: 79fb ldrb r3, [r7, #7] - 8012e64: 2b2f cmp r3, #47 ; 0x2f - 8012e66: d906 bls.n 8012e76 - 8012e68: 79fb ldrb r3, [r7, #7] - 8012e6a: 2b39 cmp r3, #57 ; 0x39 - 8012e6c: d803 bhi.n 8012e76 + 8012dce: 79fb ldrb r3, [r7, #7] + 8012dd0: 2b2f cmp r3, #47 ; 0x2f + 8012dd2: d906 bls.n 8012de2 + 8012dd4: 79fb ldrb r3, [r7, #7] + 8012dd6: 2b39 cmp r3, #57 ; 0x39 + 8012dd8: d803 bhi.n 8012de2 result = hex - '0'; - 8012e6e: 79fb ldrb r3, [r7, #7] - 8012e70: 3b30 subs r3, #48 ; 0x30 - 8012e72: 73fb strb r3, [r7, #15] - 8012e74: e02d b.n 8012ed2 + 8012dda: 79fb ldrb r3, [r7, #7] + 8012ddc: 3b30 subs r3, #48 ; 0x30 + 8012dde: 73fb strb r3, [r7, #15] + 8012de0: e02d b.n 8012e3e } else { if(hex >= 'a') hex -= 'a' - 'A'; /*Convert to upper case*/ - 8012e76: 79fb ldrb r3, [r7, #7] - 8012e78: 2b60 cmp r3, #96 ; 0x60 - 8012e7a: d902 bls.n 8012e82 - 8012e7c: 79fb ldrb r3, [r7, #7] - 8012e7e: 3b20 subs r3, #32 - 8012e80: 71fb strb r3, [r7, #7] + 8012de2: 79fb ldrb r3, [r7, #7] + 8012de4: 2b60 cmp r3, #96 ; 0x60 + 8012de6: d902 bls.n 8012dee + 8012de8: 79fb ldrb r3, [r7, #7] + 8012dea: 3b20 subs r3, #32 + 8012dec: 71fb strb r3, [r7, #7] switch(hex) { - 8012e82: 79fb ldrb r3, [r7, #7] - 8012e84: 3b41 subs r3, #65 ; 0x41 - 8012e86: 2b05 cmp r3, #5 - 8012e88: d820 bhi.n 8012ecc - 8012e8a: a201 add r2, pc, #4 ; (adr r2, 8012e90 ) - 8012e8c: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8012e90: 08012ea9 .word 0x08012ea9 - 8012e94: 08012eaf .word 0x08012eaf - 8012e98: 08012eb5 .word 0x08012eb5 - 8012e9c: 08012ebb .word 0x08012ebb - 8012ea0: 08012ec1 .word 0x08012ec1 - 8012ea4: 08012ec7 .word 0x08012ec7 + 8012dee: 79fb ldrb r3, [r7, #7] + 8012df0: 3b41 subs r3, #65 ; 0x41 + 8012df2: 2b05 cmp r3, #5 + 8012df4: d820 bhi.n 8012e38 + 8012df6: a201 add r2, pc, #4 ; (adr r2, 8012dfc ) + 8012df8: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8012dfc: 08012e15 .word 0x08012e15 + 8012e00: 08012e1b .word 0x08012e1b + 8012e04: 08012e21 .word 0x08012e21 + 8012e08: 08012e27 .word 0x08012e27 + 8012e0c: 08012e2d .word 0x08012e2d + 8012e10: 08012e33 .word 0x08012e33 case 'A': result = 10; - 8012ea8: 230a movs r3, #10 - 8012eaa: 73fb strb r3, [r7, #15] + 8012e14: 230a movs r3, #10 + 8012e16: 73fb strb r3, [r7, #15] break; - 8012eac: e011 b.n 8012ed2 + 8012e18: e011 b.n 8012e3e case 'B': result = 11; - 8012eae: 230b movs r3, #11 - 8012eb0: 73fb strb r3, [r7, #15] + 8012e1a: 230b movs r3, #11 + 8012e1c: 73fb strb r3, [r7, #15] break; - 8012eb2: e00e b.n 8012ed2 + 8012e1e: e00e b.n 8012e3e case 'C': result = 12; - 8012eb4: 230c movs r3, #12 - 8012eb6: 73fb strb r3, [r7, #15] + 8012e20: 230c movs r3, #12 + 8012e22: 73fb strb r3, [r7, #15] break; - 8012eb8: e00b b.n 8012ed2 + 8012e24: e00b b.n 8012e3e case 'D': result = 13; - 8012eba: 230d movs r3, #13 - 8012ebc: 73fb strb r3, [r7, #15] + 8012e26: 230d movs r3, #13 + 8012e28: 73fb strb r3, [r7, #15] break; - 8012ebe: e008 b.n 8012ed2 + 8012e2a: e008 b.n 8012e3e case 'E': result = 14; - 8012ec0: 230e movs r3, #14 - 8012ec2: 73fb strb r3, [r7, #15] + 8012e2c: 230e movs r3, #14 + 8012e2e: 73fb strb r3, [r7, #15] break; - 8012ec4: e005 b.n 8012ed2 + 8012e30: e005 b.n 8012e3e case 'F': result = 15; - 8012ec6: 230f movs r3, #15 - 8012ec8: 73fb strb r3, [r7, #15] + 8012e32: 230f movs r3, #15 + 8012e34: 73fb strb r3, [r7, #15] break; - 8012eca: e002 b.n 8012ed2 + 8012e36: e002 b.n 8012e3e default: result = 0; - 8012ecc: 2300 movs r3, #0 - 8012ece: 73fb strb r3, [r7, #15] + 8012e38: 2300 movs r3, #0 + 8012e3a: 73fb strb r3, [r7, #15] break; - 8012ed0: bf00 nop + 8012e3c: bf00 nop } } return result; - 8012ed2: 7bfb ldrb r3, [r7, #15] + 8012e3e: 7bfb ldrb r3, [r7, #15] } - 8012ed4: 4618 mov r0, r3 - 8012ed6: 3714 adds r7, #20 - 8012ed8: 46bd mov sp, r7 - 8012eda: bc80 pop {r7} - 8012edc: 4770 bx lr - 8012ede: bf00 nop + 8012e40: 4618 mov r0, r3 + 8012e42: 3714 adds r7, #20 + 8012e44: 46bd mov sp, r7 + 8012e46: bc80 pop {r7} + 8012e48: 4770 bx lr + 8012e4a: bf00 nop -08012ee0 : +08012e4c : uint16_t bright = (uint16_t)(3u * LV_COLOR_GET_R32(c32) + LV_COLOR_GET_B32(c32) + 4u * LV_COLOR_GET_G32(c32)); return (uint8_t)(bright >> 3); } static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b) { - 8012ee0: b490 push {r4, r7} - 8012ee2: b082 sub sp, #8 - 8012ee4: af00 add r7, sp, #0 - 8012ee6: 4604 mov r4, r0 - 8012ee8: 4608 mov r0, r1 - 8012eea: 4611 mov r1, r2 - 8012eec: 4622 mov r2, r4 - 8012eee: 71fa strb r2, [r7, #7] - 8012ef0: 4602 mov r2, r0 - 8012ef2: 71ba strb r2, [r7, #6] - 8012ef4: 460a mov r2, r1 - 8012ef6: 717a strb r2, [r7, #5] + 8012e4c: b490 push {r4, r7} + 8012e4e: b082 sub sp, #8 + 8012e50: af00 add r7, sp, #0 + 8012e52: 4604 mov r4, r0 + 8012e54: 4608 mov r0, r1 + 8012e56: 4611 mov r1, r2 + 8012e58: 4622 mov r2, r4 + 8012e5a: 71fa strb r2, [r7, #7] + 8012e5c: 4602 mov r2, r0 + 8012e5e: 71ba strb r2, [r7, #6] + 8012e60: 460a mov r2, r1 + 8012e62: 717a strb r2, [r7, #5] return _LV_COLOR_MAKE_TYPE_HELPER LV_COLOR_MAKE(r, g, b); - 8012ef8: 797a ldrb r2, [r7, #5] - 8012efa: 08d2 lsrs r2, r2, #3 - 8012efc: b2d2 uxtb r2, r2 - 8012efe: f002 021f and.w r2, r2, #31 - 8012f02: b2d0 uxtb r0, r2 - 8012f04: 79ba ldrb r2, [r7, #6] - 8012f06: 0892 lsrs r2, r2, #2 - 8012f08: b2d2 uxtb r2, r2 - 8012f0a: f002 023f and.w r2, r2, #63 ; 0x3f - 8012f0e: b2d1 uxtb r1, r2 - 8012f10: 79fa ldrb r2, [r7, #7] - 8012f12: 08d2 lsrs r2, r2, #3 - 8012f14: b2d2 uxtb r2, r2 - 8012f16: f002 021f and.w r2, r2, #31 - 8012f1a: b2d2 uxtb r2, r2 - 8012f1c: f360 0304 bfi r3, r0, #0, #5 - 8012f20: f361 134a bfi r3, r1, #5, #6 - 8012f24: f362 23cf bfi r3, r2, #11, #5 + 8012e64: 797a ldrb r2, [r7, #5] + 8012e66: 08d2 lsrs r2, r2, #3 + 8012e68: b2d2 uxtb r2, r2 + 8012e6a: f002 021f and.w r2, r2, #31 + 8012e6e: b2d0 uxtb r0, r2 + 8012e70: 79ba ldrb r2, [r7, #6] + 8012e72: 0892 lsrs r2, r2, #2 + 8012e74: b2d2 uxtb r2, r2 + 8012e76: f002 023f and.w r2, r2, #63 ; 0x3f + 8012e7a: b2d1 uxtb r1, r2 + 8012e7c: 79fa ldrb r2, [r7, #7] + 8012e7e: 08d2 lsrs r2, r2, #3 + 8012e80: b2d2 uxtb r2, r2 + 8012e82: f002 021f and.w r2, r2, #31 + 8012e86: b2d2 uxtb r2, r2 + 8012e88: f360 0304 bfi r3, r0, #0, #5 + 8012e8c: f361 134a bfi r3, r1, #5, #6 + 8012e90: f362 23cf bfi r3, r2, #11, #5 } - 8012f28: 4618 mov r0, r3 - 8012f2a: 3708 adds r7, #8 - 8012f2c: 46bd mov sp, r7 - 8012f2e: bc90 pop {r4, r7} - 8012f30: 4770 bx lr + 8012e94: 4618 mov r0, r3 + 8012e96: 3708 adds r7, #8 + 8012e98: 46bd mov sp, r7 + 8012e9a: bc90 pop {r4, r7} + 8012e9c: 4770 bx lr -08012f32 : +08012e9e : static inline lv_color_t lv_color_white(void) { return lv_color_make(0xff, 0xff, 0xff); } static inline lv_color_t lv_color_black(void) { - 8012f32: b580 push {r7, lr} - 8012f34: af00 add r7, sp, #0 + 8012e9e: b580 push {r7, lr} + 8012ea0: af00 add r7, sp, #0 return lv_color_make(0x00, 0x0, 0x00); - 8012f36: 2200 movs r2, #0 - 8012f38: 2100 movs r1, #0 - 8012f3a: 2000 movs r0, #0 - 8012f3c: f7ff ffd0 bl 8012ee0 - 8012f40: 4603 mov r3, r0 + 8012ea2: 2200 movs r2, #0 + 8012ea4: 2100 movs r1, #0 + 8012ea6: 2000 movs r0, #0 + 8012ea8: f7ff ffd0 bl 8012e4c + 8012eac: 4603 mov r3, r0 } - 8012f42: 4618 mov r0, r3 - 8012f44: bd80 pop {r7, pc} + 8012eae: 4618 mov r0, r3 + 8012eb0: bd80 pop {r7, pc} -08012f46 : +08012eb2 : /********************** * GLOBAL FUNCTIONS **********************/ LV_ATTRIBUTE_FAST_MEM void lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc) { - 8012f46: b590 push {r4, r7, lr} - 8012f48: b083 sub sp, #12 - 8012f4a: af00 add r7, sp, #0 - 8012f4c: 6078 str r0, [r7, #4] + 8012eb2: b590 push {r4, r7, lr} + 8012eb4: b083 sub sp, #12 + 8012eb6: af00 add r7, sp, #0 + 8012eb8: 6078 str r0, [r7, #4] lv_memset_00(dsc, sizeof(lv_draw_line_dsc_t)); - 8012f4e: 210a movs r1, #10 - 8012f50: 6878 ldr r0, [r7, #4] - 8012f52: f020 f8fd bl 8033150 + 8012eba: 210a movs r1, #10 + 8012ebc: 6878 ldr r0, [r7, #4] + 8012ebe: f020 f8fd bl 80330bc dsc->width = 1; - 8012f56: 687b ldr r3, [r7, #4] - 8012f58: 2201 movs r2, #1 - 8012f5a: 805a strh r2, [r3, #2] + 8012ec2: 687b ldr r3, [r7, #4] + 8012ec4: 2201 movs r2, #1 + 8012ec6: 805a strh r2, [r3, #2] dsc->opa = LV_OPA_COVER; - 8012f5c: 687b ldr r3, [r7, #4] - 8012f5e: 22ff movs r2, #255 ; 0xff - 8012f60: 721a strb r2, [r3, #8] + 8012ec8: 687b ldr r3, [r7, #4] + 8012eca: 22ff movs r2, #255 ; 0xff + 8012ecc: 721a strb r2, [r3, #8] dsc->color = lv_color_black(); - 8012f62: 687c ldr r4, [r7, #4] - 8012f64: f7ff ffe5 bl 8012f32 - 8012f68: 8020 strh r0, [r4, #0] + 8012ece: 687c ldr r4, [r7, #4] + 8012ed0: f7ff ffe5 bl 8012e9e + 8012ed4: 8020 strh r0, [r4, #0] } - 8012f6a: bf00 nop - 8012f6c: 370c adds r7, #12 - 8012f6e: 46bd mov sp, r7 - 8012f70: bd90 pop {r4, r7, pc} + 8012ed6: bf00 nop + 8012ed8: 370c adds r7, #12 + 8012eda: 46bd mov sp, r7 + 8012edc: bd90 pop {r4, r7, pc} -08012f72 : +08012ede : LV_ATTRIBUTE_FAST_MEM void lv_draw_line(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, const lv_point_t * point2) { - 8012f72: b590 push {r4, r7, lr} - 8012f74: b085 sub sp, #20 - 8012f76: af00 add r7, sp, #0 - 8012f78: 60f8 str r0, [r7, #12] - 8012f7a: 60b9 str r1, [r7, #8] - 8012f7c: 607a str r2, [r7, #4] - 8012f7e: 603b str r3, [r7, #0] + 8012ede: b590 push {r4, r7, lr} + 8012ee0: b085 sub sp, #20 + 8012ee2: af00 add r7, sp, #0 + 8012ee4: 60f8 str r0, [r7, #12] + 8012ee6: 60b9 str r1, [r7, #8] + 8012ee8: 607a str r2, [r7, #4] + 8012eea: 603b str r3, [r7, #0] if(dsc->width == 0) return; - 8012f80: 68bb ldr r3, [r7, #8] - 8012f82: f9b3 3002 ldrsh.w r3, [r3, #2] - 8012f86: 2b00 cmp r3, #0 - 8012f88: d00b beq.n 8012fa2 + 8012eec: 68bb ldr r3, [r7, #8] + 8012eee: f9b3 3002 ldrsh.w r3, [r3, #2] + 8012ef2: 2b00 cmp r3, #0 + 8012ef4: d00b beq.n 8012f0e if(dsc->opa <= LV_OPA_MIN) return; - 8012f8a: 68bb ldr r3, [r7, #8] - 8012f8c: 7a1b ldrb r3, [r3, #8] - 8012f8e: 2b02 cmp r3, #2 - 8012f90: d909 bls.n 8012fa6 + 8012ef6: 68bb ldr r3, [r7, #8] + 8012ef8: 7a1b ldrb r3, [r3, #8] + 8012efa: 2b02 cmp r3, #2 + 8012efc: d909 bls.n 8012f12 draw_ctx->draw_line(draw_ctx, dsc, point1, point2); - 8012f92: 68fb ldr r3, [r7, #12] - 8012f94: 6a1c ldr r4, [r3, #32] - 8012f96: 683b ldr r3, [r7, #0] - 8012f98: 687a ldr r2, [r7, #4] - 8012f9a: 68b9 ldr r1, [r7, #8] - 8012f9c: 68f8 ldr r0, [r7, #12] - 8012f9e: 47a0 blx r4 - 8012fa0: e002 b.n 8012fa8 + 8012efe: 68fb ldr r3, [r7, #12] + 8012f00: 6a1c ldr r4, [r3, #32] + 8012f02: 683b ldr r3, [r7, #0] + 8012f04: 687a ldr r2, [r7, #4] + 8012f06: 68b9 ldr r1, [r7, #8] + 8012f08: 68f8 ldr r0, [r7, #12] + 8012f0a: 47a0 blx r4 + 8012f0c: e002 b.n 8012f14 if(dsc->width == 0) return; - 8012fa2: bf00 nop - 8012fa4: e000 b.n 8012fa8 + 8012f0e: bf00 nop + 8012f10: e000 b.n 8012f14 if(dsc->opa <= LV_OPA_MIN) return; - 8012fa6: bf00 nop + 8012f12: bf00 nop } - 8012fa8: 3714 adds r7, #20 - 8012faa: 46bd mov sp, r7 - 8012fac: bd90 pop {r4, r7, pc} + 8012f14: 3714 adds r7, #20 + 8012f16: 46bd mov sp, r7 + 8012f18: bd90 pop {r4, r7, pc} -08012fae : +08012f1a : { - 8012fae: b480 push {r7} - 8012fb0: b083 sub sp, #12 - 8012fb2: af00 add r7, sp, #0 - 8012fb4: 6078 str r0, [r7, #4] - 8012fb6: 6039 str r1, [r7, #0] + 8012f1a: b480 push {r7} + 8012f1c: b083 sub sp, #12 + 8012f1e: af00 add r7, sp, #0 + 8012f20: 6078 str r0, [r7, #4] + 8012f22: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 8012fb8: 683b ldr r3, [r7, #0] - 8012fba: f9b3 2000 ldrsh.w r2, [r3] - 8012fbe: 687b ldr r3, [r7, #4] - 8012fc0: 801a strh r2, [r3, #0] + 8012f24: 683b ldr r3, [r7, #0] + 8012f26: f9b3 2000 ldrsh.w r2, [r3] + 8012f2a: 687b ldr r3, [r7, #4] + 8012f2c: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 8012fc2: 683b ldr r3, [r7, #0] - 8012fc4: f9b3 2002 ldrsh.w r2, [r3, #2] - 8012fc8: 687b ldr r3, [r7, #4] - 8012fca: 805a strh r2, [r3, #2] + 8012f2e: 683b ldr r3, [r7, #0] + 8012f30: f9b3 2002 ldrsh.w r2, [r3, #2] + 8012f34: 687b ldr r3, [r7, #4] + 8012f36: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 8012fcc: 683b ldr r3, [r7, #0] - 8012fce: f9b3 2004 ldrsh.w r2, [r3, #4] - 8012fd2: 687b ldr r3, [r7, #4] - 8012fd4: 809a strh r2, [r3, #4] + 8012f38: 683b ldr r3, [r7, #0] + 8012f3a: f9b3 2004 ldrsh.w r2, [r3, #4] + 8012f3e: 687b ldr r3, [r7, #4] + 8012f40: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 8012fd6: 683b ldr r3, [r7, #0] - 8012fd8: f9b3 2006 ldrsh.w r2, [r3, #6] - 8012fdc: 687b ldr r3, [r7, #4] - 8012fde: 80da strh r2, [r3, #6] + 8012f42: 683b ldr r3, [r7, #0] + 8012f44: f9b3 2006 ldrsh.w r2, [r3, #6] + 8012f48: 687b ldr r3, [r7, #4] + 8012f4a: 80da strh r2, [r3, #6] } - 8012fe0: bf00 nop - 8012fe2: 370c adds r7, #12 - 8012fe4: 46bd mov sp, r7 - 8012fe6: bc80 pop {r7} - 8012fe8: 4770 bx lr + 8012f4c: bf00 nop + 8012f4e: 370c adds r7, #12 + 8012f50: 46bd mov sp, r7 + 8012f52: bc80 pop {r7} + 8012f54: 4770 bx lr -08012fea : +08012f56 : { - 8012fea: b480 push {r7} - 8012fec: b083 sub sp, #12 - 8012fee: af00 add r7, sp, #0 - 8012ff0: 6078 str r0, [r7, #4] + 8012f56: b480 push {r7} + 8012f58: b083 sub sp, #12 + 8012f5a: af00 add r7, sp, #0 + 8012f5c: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 8012ff2: 687b ldr r3, [r7, #4] - 8012ff4: f9b3 3004 ldrsh.w r3, [r3, #4] - 8012ff8: b29a uxth r2, r3 - 8012ffa: 687b ldr r3, [r7, #4] - 8012ffc: f9b3 3000 ldrsh.w r3, [r3] - 8013000: b29b uxth r3, r3 - 8013002: 1ad3 subs r3, r2, r3 - 8013004: b29b uxth r3, r3 - 8013006: 3301 adds r3, #1 - 8013008: b29b uxth r3, r3 - 801300a: b21b sxth r3, r3 + 8012f5e: 687b ldr r3, [r7, #4] + 8012f60: f9b3 3004 ldrsh.w r3, [r3, #4] + 8012f64: b29a uxth r2, r3 + 8012f66: 687b ldr r3, [r7, #4] + 8012f68: f9b3 3000 ldrsh.w r3, [r3] + 8012f6c: b29b uxth r3, r3 + 8012f6e: 1ad3 subs r3, r2, r3 + 8012f70: b29b uxth r3, r3 + 8012f72: 3301 adds r3, #1 + 8012f74: b29b uxth r3, r3 + 8012f76: b21b sxth r3, r3 } - 801300c: 4618 mov r0, r3 - 801300e: 370c adds r7, #12 - 8013010: 46bd mov sp, r7 - 8013012: bc80 pop {r7} - 8013014: 4770 bx lr + 8012f78: 4618 mov r0, r3 + 8012f7a: 370c adds r7, #12 + 8012f7c: 46bd mov sp, r7 + 8012f7e: bc80 pop {r7} + 8012f80: 4770 bx lr -08013016 : +08012f82 : * Get the height of an area * @param area_p pointer to an area * @return the height of the area (if y1 == y2 -> height = 1) */ static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) { - 8013016: b480 push {r7} - 8013018: b083 sub sp, #12 - 801301a: af00 add r7, sp, #0 - 801301c: 6078 str r0, [r7, #4] + 8012f82: b480 push {r7} + 8012f84: b083 sub sp, #12 + 8012f86: af00 add r7, sp, #0 + 8012f88: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 801301e: 687b ldr r3, [r7, #4] - 8013020: f9b3 3006 ldrsh.w r3, [r3, #6] - 8013024: b29a uxth r2, r3 - 8013026: 687b ldr r3, [r7, #4] - 8013028: f9b3 3002 ldrsh.w r3, [r3, #2] - 801302c: b29b uxth r3, r3 - 801302e: 1ad3 subs r3, r2, r3 - 8013030: b29b uxth r3, r3 - 8013032: 3301 adds r3, #1 - 8013034: b29b uxth r3, r3 - 8013036: b21b sxth r3, r3 + 8012f8a: 687b ldr r3, [r7, #4] + 8012f8c: f9b3 3006 ldrsh.w r3, [r3, #6] + 8012f90: b29a uxth r2, r3 + 8012f92: 687b ldr r3, [r7, #4] + 8012f94: f9b3 3002 ldrsh.w r3, [r3, #2] + 8012f98: b29b uxth r3, r3 + 8012f9a: 1ad3 subs r3, r2, r3 + 8012f9c: b29b uxth r3, r3 + 8012f9e: 3301 adds r3, #1 + 8012fa0: b29b uxth r3, r3 + 8012fa2: b21b sxth r3, r3 } - 8013038: 4618 mov r0, r3 - 801303a: 370c adds r7, #12 - 801303c: 46bd mov sp, r7 - 801303e: bc80 pop {r7} - 8013040: 4770 bx lr + 8012fa4: 4618 mov r0, r3 + 8012fa6: 370c adds r7, #12 + 8012fa8: 46bd mov sp, r7 + 8012faa: bc80 pop {r7} + 8012fac: 4770 bx lr ... -08013044 : +08012fb0 : * @param param an initialized mask parameter. Only the pointer is saved. * @param custom_id a custom pointer to identify the mask. Used in `lv_draw_mask_remove_custom`. * @return the an integer, the ID of the mask. Can be used in `lv_draw_mask_remove_id`. */ int16_t lv_draw_mask_add(void * param, void * custom_id) { - 8013044: b480 push {r7} - 8013046: b085 sub sp, #20 - 8013048: af00 add r7, sp, #0 - 801304a: 6078 str r0, [r7, #4] - 801304c: 6039 str r1, [r7, #0] + 8012fb0: b480 push {r7} + 8012fb2: b085 sub sp, #20 + 8012fb4: af00 add r7, sp, #0 + 8012fb6: 6078 str r0, [r7, #4] + 8012fb8: 6039 str r1, [r7, #0] /*Look for a free entry*/ uint8_t i; for(i = 0; i < _LV_MASK_MAX_NUM; i++) { - 801304e: 2300 movs r3, #0 - 8013050: 73fb strb r3, [r7, #15] - 8013052: e008 b.n 8013066 + 8012fba: 2300 movs r3, #0 + 8012fbc: 73fb strb r3, [r7, #15] + 8012fbe: e008 b.n 8012fd2 if(LV_GC_ROOT(_lv_draw_mask_list[i]).param == NULL) break; - 8013054: 7bfb ldrb r3, [r7, #15] - 8013056: 4a12 ldr r2, [pc, #72] ; (80130a0 ) - 8013058: f852 3033 ldr.w r3, [r2, r3, lsl #3] - 801305c: 2b00 cmp r3, #0 - 801305e: d006 beq.n 801306e + 8012fc0: 7bfb ldrb r3, [r7, #15] + 8012fc2: 4a12 ldr r2, [pc, #72] ; (801300c ) + 8012fc4: f852 3033 ldr.w r3, [r2, r3, lsl #3] + 8012fc8: 2b00 cmp r3, #0 + 8012fca: d006 beq.n 8012fda for(i = 0; i < _LV_MASK_MAX_NUM; i++) { - 8013060: 7bfb ldrb r3, [r7, #15] - 8013062: 3301 adds r3, #1 - 8013064: 73fb strb r3, [r7, #15] - 8013066: 7bfb ldrb r3, [r7, #15] - 8013068: 2b0f cmp r3, #15 - 801306a: d9f3 bls.n 8013054 - 801306c: e000 b.n 8013070 + 8012fcc: 7bfb ldrb r3, [r7, #15] + 8012fce: 3301 adds r3, #1 + 8012fd0: 73fb strb r3, [r7, #15] + 8012fd2: 7bfb ldrb r3, [r7, #15] + 8012fd4: 2b0f cmp r3, #15 + 8012fd6: d9f3 bls.n 8012fc0 + 8012fd8: e000 b.n 8012fdc if(LV_GC_ROOT(_lv_draw_mask_list[i]).param == NULL) break; - 801306e: bf00 nop + 8012fda: bf00 nop } if(i >= _LV_MASK_MAX_NUM) { - 8013070: 7bfb ldrb r3, [r7, #15] - 8013072: 2b0f cmp r3, #15 - 8013074: d902 bls.n 801307c + 8012fdc: 7bfb ldrb r3, [r7, #15] + 8012fde: 2b0f cmp r3, #15 + 8012fe0: d902 bls.n 8012fe8 LV_LOG_WARN("lv_mask_add: no place to add the mask"); return LV_MASK_ID_INV; - 8013076: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 801307a: e00c b.n 8013096 + 8012fe2: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 8012fe6: e00c b.n 8013002 } LV_GC_ROOT(_lv_draw_mask_list[i]).param = param; - 801307c: 7bfb ldrb r3, [r7, #15] - 801307e: 4908 ldr r1, [pc, #32] ; (80130a0 ) - 8013080: 687a ldr r2, [r7, #4] - 8013082: f841 2033 str.w r2, [r1, r3, lsl #3] + 8012fe8: 7bfb ldrb r3, [r7, #15] + 8012fea: 4908 ldr r1, [pc, #32] ; (801300c ) + 8012fec: 687a ldr r2, [r7, #4] + 8012fee: f841 2033 str.w r2, [r1, r3, lsl #3] LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id = custom_id; - 8013086: 7bfb ldrb r3, [r7, #15] - 8013088: 4a05 ldr r2, [pc, #20] ; (80130a0 ) - 801308a: 00db lsls r3, r3, #3 - 801308c: 4413 add r3, r2 - 801308e: 683a ldr r2, [r7, #0] - 8013090: 605a str r2, [r3, #4] + 8012ff2: 7bfb ldrb r3, [r7, #15] + 8012ff4: 4a05 ldr r2, [pc, #20] ; (801300c ) + 8012ff6: 00db lsls r3, r3, #3 + 8012ff8: 4413 add r3, r2 + 8012ffa: 683a ldr r2, [r7, #0] + 8012ffc: 605a str r2, [r3, #4] return i; - 8013092: 7bfb ldrb r3, [r7, #15] - 8013094: b21b sxth r3, r3 + 8012ffe: 7bfb ldrb r3, [r7, #15] + 8013000: b21b sxth r3, r3 } - 8013096: 4618 mov r0, r3 - 8013098: 3714 adds r7, #20 - 801309a: 46bd mov sp, r7 - 801309c: bc80 pop {r7} - 801309e: 4770 bx lr - 80130a0: 20001e88 .word 0x20001e88 + 8013002: 4618 mov r0, r3 + 8013004: 3714 adds r7, #20 + 8013006: 46bd mov sp, r7 + 8013008: bc80 pop {r7} + 801300a: 4770 bx lr + 801300c: 20001e88 .word 0x20001e88 -080130a4 : +08013010 : * - `LV_DRAW_MASK_RES_FULL_COVER`: the whole line is fully visible. `mask_buf` is unchanged * - `LV_DRAW_MASK_RES_CHANGED`: `mask_buf` has changed, it shows the desired opacity of each pixel in the given line */ LV_ATTRIBUTE_FAST_MEM lv_draw_mask_res_t lv_draw_mask_apply(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, lv_coord_t len) { - 80130a4: b590 push {r4, r7, lr} - 80130a6: b08b sub sp, #44 ; 0x2c - 80130a8: af02 add r7, sp, #8 - 80130aa: 60f8 str r0, [r7, #12] - 80130ac: 4608 mov r0, r1 - 80130ae: 4611 mov r1, r2 - 80130b0: 461a mov r2, r3 - 80130b2: 4603 mov r3, r0 - 80130b4: 817b strh r3, [r7, #10] - 80130b6: 460b mov r3, r1 - 80130b8: 813b strh r3, [r7, #8] - 80130ba: 4613 mov r3, r2 - 80130bc: 80fb strh r3, [r7, #6] + 8013010: b590 push {r4, r7, lr} + 8013012: b08b sub sp, #44 ; 0x2c + 8013014: af02 add r7, sp, #8 + 8013016: 60f8 str r0, [r7, #12] + 8013018: 4608 mov r0, r1 + 801301a: 4611 mov r1, r2 + 801301c: 461a mov r2, r3 + 801301e: 4603 mov r3, r0 + 8013020: 817b strh r3, [r7, #10] + 8013022: 460b mov r3, r1 + 8013024: 813b strh r3, [r7, #8] + 8013026: 4613 mov r3, r2 + 8013028: 80fb strh r3, [r7, #6] bool changed = false; - 80130be: 2300 movs r3, #0 - 80130c0: 77fb strb r3, [r7, #31] + 801302a: 2300 movs r3, #0 + 801302c: 77fb strb r3, [r7, #31] _lv_draw_mask_common_dsc_t * dsc; _lv_draw_mask_saved_t * m = LV_GC_ROOT(_lv_draw_mask_list); - 80130c2: 4b19 ldr r3, [pc, #100] ; (8013128 ) - 80130c4: 61bb str r3, [r7, #24] + 801302e: 4b19 ldr r3, [pc, #100] ; (8013094 ) + 8013030: 61bb str r3, [r7, #24] while(m->param) { - 80130c6: e021 b.n 801310c + 8013032: e021 b.n 8013078 dsc = m->param; - 80130c8: 69bb ldr r3, [r7, #24] - 80130ca: 681b ldr r3, [r3, #0] - 80130cc: 617b str r3, [r7, #20] + 8013034: 69bb ldr r3, [r7, #24] + 8013036: 681b ldr r3, [r3, #0] + 8013038: 617b str r3, [r7, #20] lv_draw_mask_res_t res = LV_DRAW_MASK_RES_FULL_COVER; - 80130ce: 2301 movs r3, #1 - 80130d0: 74fb strb r3, [r7, #19] + 801303a: 2301 movs r3, #1 + 801303c: 74fb strb r3, [r7, #19] res = dsc->cb(mask_buf, abs_x, abs_y, len, (void *)m->param); - 80130d2: 697b ldr r3, [r7, #20] - 80130d4: 681c ldr r4, [r3, #0] - 80130d6: 69bb ldr r3, [r7, #24] - 80130d8: 681b ldr r3, [r3, #0] - 80130da: f9b7 0006 ldrsh.w r0, [r7, #6] - 80130de: f9b7 2008 ldrsh.w r2, [r7, #8] - 80130e2: f9b7 100a ldrsh.w r1, [r7, #10] - 80130e6: 9300 str r3, [sp, #0] - 80130e8: 4603 mov r3, r0 - 80130ea: 68f8 ldr r0, [r7, #12] - 80130ec: 47a0 blx r4 - 80130ee: 4603 mov r3, r0 - 80130f0: 74fb strb r3, [r7, #19] + 801303e: 697b ldr r3, [r7, #20] + 8013040: 681c ldr r4, [r3, #0] + 8013042: 69bb ldr r3, [r7, #24] + 8013044: 681b ldr r3, [r3, #0] + 8013046: f9b7 0006 ldrsh.w r0, [r7, #6] + 801304a: f9b7 2008 ldrsh.w r2, [r7, #8] + 801304e: f9b7 100a ldrsh.w r1, [r7, #10] + 8013052: 9300 str r3, [sp, #0] + 8013054: 4603 mov r3, r0 + 8013056: 68f8 ldr r0, [r7, #12] + 8013058: 47a0 blx r4 + 801305a: 4603 mov r3, r0 + 801305c: 74fb strb r3, [r7, #19] if(res == LV_DRAW_MASK_RES_TRANSP) return LV_DRAW_MASK_RES_TRANSP; - 80130f2: 7cfb ldrb r3, [r7, #19] - 80130f4: 2b00 cmp r3, #0 - 80130f6: d101 bne.n 80130fc - 80130f8: 2300 movs r3, #0 - 80130fa: e011 b.n 8013120 + 801305e: 7cfb ldrb r3, [r7, #19] + 8013060: 2b00 cmp r3, #0 + 8013062: d101 bne.n 8013068 + 8013064: 2300 movs r3, #0 + 8013066: e011 b.n 801308c else if(res == LV_DRAW_MASK_RES_CHANGED) changed = true; - 80130fc: 7cfb ldrb r3, [r7, #19] - 80130fe: 2b02 cmp r3, #2 - 8013100: d101 bne.n 8013106 - 8013102: 2301 movs r3, #1 - 8013104: 77fb strb r3, [r7, #31] + 8013068: 7cfb ldrb r3, [r7, #19] + 801306a: 2b02 cmp r3, #2 + 801306c: d101 bne.n 8013072 + 801306e: 2301 movs r3, #1 + 8013070: 77fb strb r3, [r7, #31] m++; - 8013106: 69bb ldr r3, [r7, #24] - 8013108: 3308 adds r3, #8 - 801310a: 61bb str r3, [r7, #24] + 8013072: 69bb ldr r3, [r7, #24] + 8013074: 3308 adds r3, #8 + 8013076: 61bb str r3, [r7, #24] while(m->param) { - 801310c: 69bb ldr r3, [r7, #24] - 801310e: 681b ldr r3, [r3, #0] - 8013110: 2b00 cmp r3, #0 - 8013112: d1d9 bne.n 80130c8 + 8013078: 69bb ldr r3, [r7, #24] + 801307a: 681b ldr r3, [r3, #0] + 801307c: 2b00 cmp r3, #0 + 801307e: d1d9 bne.n 8013034 } return changed ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER; - 8013114: 7ffb ldrb r3, [r7, #31] - 8013116: 2b00 cmp r3, #0 - 8013118: d001 beq.n 801311e - 801311a: 2302 movs r3, #2 - 801311c: e000 b.n 8013120 - 801311e: 2301 movs r3, #1 + 8013080: 7ffb ldrb r3, [r7, #31] + 8013082: 2b00 cmp r3, #0 + 8013084: d001 beq.n 801308a + 8013086: 2302 movs r3, #2 + 8013088: e000 b.n 801308c + 801308a: 2301 movs r3, #1 } - 8013120: 4618 mov r0, r3 - 8013122: 3724 adds r7, #36 ; 0x24 - 8013124: 46bd mov sp, r7 - 8013126: bd90 pop {r4, r7, pc} - 8013128: 20001e88 .word 0x20001e88 + 801308c: 4618 mov r0, r3 + 801308e: 3724 adds r7, #36 ; 0x24 + 8013090: 46bd mov sp, r7 + 8013092: bd90 pop {r4, r7, pc} + 8013094: 20001e88 .word 0x20001e88 -0801312c : +08013098 : * @param id the ID of the mask. Returned by `lv_draw_mask_add` * @return the parameter of the removed mask. * If more masks have `custom_id` ID then the last mask's parameter will be returned */ void * lv_draw_mask_remove_id(int16_t id) { - 801312c: b480 push {r7} - 801312e: b085 sub sp, #20 - 8013130: af00 add r7, sp, #0 - 8013132: 4603 mov r3, r0 - 8013134: 80fb strh r3, [r7, #6] + 8013098: b480 push {r7} + 801309a: b085 sub sp, #20 + 801309c: af00 add r7, sp, #0 + 801309e: 4603 mov r3, r0 + 80130a0: 80fb strh r3, [r7, #6] _lv_draw_mask_common_dsc_t * p = NULL; - 8013136: 2300 movs r3, #0 - 8013138: 60fb str r3, [r7, #12] + 80130a2: 2300 movs r3, #0 + 80130a4: 60fb str r3, [r7, #12] if(id != LV_MASK_ID_INV) { - 801313a: f9b7 3006 ldrsh.w r3, [r7, #6] - 801313e: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 8013142: d012 beq.n 801316a + 80130a6: f9b7 3006 ldrsh.w r3, [r7, #6] + 80130aa: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 80130ae: d012 beq.n 80130d6 p = LV_GC_ROOT(_lv_draw_mask_list[id]).param; - 8013144: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013148: 4a0b ldr r2, [pc, #44] ; (8013178 ) - 801314a: f852 3033 ldr.w r3, [r2, r3, lsl #3] - 801314e: 60fb str r3, [r7, #12] + 80130b0: f9b7 3006 ldrsh.w r3, [r7, #6] + 80130b4: 4a0b ldr r2, [pc, #44] ; (80130e4 ) + 80130b6: f852 3033 ldr.w r3, [r2, r3, lsl #3] + 80130ba: 60fb str r3, [r7, #12] LV_GC_ROOT(_lv_draw_mask_list[id]).param = NULL; - 8013150: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013154: 4a08 ldr r2, [pc, #32] ; (8013178 ) - 8013156: 2100 movs r1, #0 - 8013158: f842 1033 str.w r1, [r2, r3, lsl #3] + 80130bc: f9b7 3006 ldrsh.w r3, [r7, #6] + 80130c0: 4a08 ldr r2, [pc, #32] ; (80130e4 ) + 80130c2: 2100 movs r1, #0 + 80130c4: f842 1033 str.w r1, [r2, r3, lsl #3] LV_GC_ROOT(_lv_draw_mask_list[id]).custom_id = NULL; - 801315c: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013160: 4a05 ldr r2, [pc, #20] ; (8013178 ) - 8013162: 00db lsls r3, r3, #3 - 8013164: 4413 add r3, r2 - 8013166: 2200 movs r2, #0 - 8013168: 605a str r2, [r3, #4] + 80130c8: f9b7 3006 ldrsh.w r3, [r7, #6] + 80130cc: 4a05 ldr r2, [pc, #20] ; (80130e4 ) + 80130ce: 00db lsls r3, r3, #3 + 80130d0: 4413 add r3, r2 + 80130d2: 2200 movs r2, #0 + 80130d4: 605a str r2, [r3, #4] } return p; - 801316a: 68fb ldr r3, [r7, #12] + 80130d6: 68fb ldr r3, [r7, #12] } - 801316c: 4618 mov r0, r3 - 801316e: 3714 adds r7, #20 - 8013170: 46bd mov sp, r7 - 8013172: bc80 pop {r7} - 8013174: 4770 bx lr - 8013176: bf00 nop - 8013178: 20001e88 .word 0x20001e88 + 80130d8: 4618 mov r0, r3 + 80130da: 3714 adds r7, #20 + 80130dc: 46bd mov sp, r7 + 80130de: bc80 pop {r7} + 80130e0: 4770 bx lr + 80130e2: bf00 nop + 80130e4: 20001e88 .word 0x20001e88 -0801317c : +080130e8 : * @param custom_id a pointer used in `lv_draw_mask_add` * @return return the parameter of the removed mask. * If more masks have `custom_id` ID then the last mask's parameter will be returned */ void * lv_draw_mask_remove_custom(void * custom_id) { - 801317c: b580 push {r7, lr} - 801317e: b084 sub sp, #16 - 8013180: af00 add r7, sp, #0 - 8013182: 6078 str r0, [r7, #4] + 80130e8: b580 push {r7, lr} + 80130ea: b084 sub sp, #16 + 80130ec: af00 add r7, sp, #0 + 80130ee: 6078 str r0, [r7, #4] _lv_draw_mask_common_dsc_t * p = NULL; - 8013184: 2300 movs r3, #0 - 8013186: 60fb str r3, [r7, #12] + 80130f0: 2300 movs r3, #0 + 80130f2: 60fb str r3, [r7, #12] uint8_t i; for(i = 0; i < _LV_MASK_MAX_NUM; i++) { - 8013188: 2300 movs r3, #0 - 801318a: 72fb strb r3, [r7, #11] - 801318c: e014 b.n 80131b8 + 80130f4: 2300 movs r3, #0 + 80130f6: 72fb strb r3, [r7, #11] + 80130f8: e014 b.n 8013124 if(LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id == custom_id) { - 801318e: 7afb ldrb r3, [r7, #11] - 8013190: 4a0d ldr r2, [pc, #52] ; (80131c8 ) - 8013192: 00db lsls r3, r3, #3 - 8013194: 4413 add r3, r2 - 8013196: 685b ldr r3, [r3, #4] - 8013198: 687a ldr r2, [r7, #4] - 801319a: 429a cmp r2, r3 - 801319c: d109 bne.n 80131b2 + 80130fa: 7afb ldrb r3, [r7, #11] + 80130fc: 4a0d ldr r2, [pc, #52] ; (8013134 ) + 80130fe: 00db lsls r3, r3, #3 + 8013100: 4413 add r3, r2 + 8013102: 685b ldr r3, [r3, #4] + 8013104: 687a ldr r2, [r7, #4] + 8013106: 429a cmp r2, r3 + 8013108: d109 bne.n 801311e p = LV_GC_ROOT(_lv_draw_mask_list[i]).param; - 801319e: 7afb ldrb r3, [r7, #11] - 80131a0: 4a09 ldr r2, [pc, #36] ; (80131c8 ) - 80131a2: f852 3033 ldr.w r3, [r2, r3, lsl #3] - 80131a6: 60fb str r3, [r7, #12] + 801310a: 7afb ldrb r3, [r7, #11] + 801310c: 4a09 ldr r2, [pc, #36] ; (8013134 ) + 801310e: f852 3033 ldr.w r3, [r2, r3, lsl #3] + 8013112: 60fb str r3, [r7, #12] lv_draw_mask_remove_id(i); - 80131a8: 7afb ldrb r3, [r7, #11] - 80131aa: b21b sxth r3, r3 - 80131ac: 4618 mov r0, r3 - 80131ae: f7ff ffbd bl 801312c + 8013114: 7afb ldrb r3, [r7, #11] + 8013116: b21b sxth r3, r3 + 8013118: 4618 mov r0, r3 + 801311a: f7ff ffbd bl 8013098 for(i = 0; i < _LV_MASK_MAX_NUM; i++) { - 80131b2: 7afb ldrb r3, [r7, #11] - 80131b4: 3301 adds r3, #1 - 80131b6: 72fb strb r3, [r7, #11] - 80131b8: 7afb ldrb r3, [r7, #11] - 80131ba: 2b0f cmp r3, #15 - 80131bc: d9e7 bls.n 801318e + 801311e: 7afb ldrb r3, [r7, #11] + 8013120: 3301 adds r3, #1 + 8013122: 72fb strb r3, [r7, #11] + 8013124: 7afb ldrb r3, [r7, #11] + 8013126: 2b0f cmp r3, #15 + 8013128: d9e7 bls.n 80130fa } } return p; - 80131be: 68fb ldr r3, [r7, #12] + 801312a: 68fb ldr r3, [r7, #12] } - 80131c0: 4618 mov r0, r3 - 80131c2: 3710 adds r7, #16 - 80131c4: 46bd mov sp, r7 - 80131c6: bd80 pop {r7, pc} - 80131c8: 20001e88 .word 0x20001e88 + 801312c: 4618 mov r0, r3 + 801312e: 3710 adds r7, #16 + 8013130: 46bd mov sp, r7 + 8013132: bd80 pop {r7, pc} + 8013134: 20001e88 .word 0x20001e88 -080131cc : +08013138 : * Needs to be called only in special cases when the mask is not added by `lv_draw_mask_add` * and not removed by `lv_draw_mask_remove_id` or `lv_draw_mask_remove_custom` * @param p pointer to a mask parameter */ void lv_draw_mask_free_param(void * p) { - 80131cc: b580 push {r7, lr} - 80131ce: b086 sub sp, #24 - 80131d0: af00 add r7, sp, #0 - 80131d2: 6078 str r0, [r7, #4] + 8013138: b580 push {r7, lr} + 801313a: b086 sub sp, #24 + 801313c: af00 add r7, sp, #0 + 801313e: 6078 str r0, [r7, #4] _lv_draw_mask_common_dsc_t * pdsc = p; - 80131d4: 687b ldr r3, [r7, #4] - 80131d6: 617b str r3, [r7, #20] + 8013140: 687b ldr r3, [r7, #4] + 8013142: 617b str r3, [r7, #20] if(pdsc->type == LV_DRAW_MASK_TYPE_RADIUS) { - 80131d8: 697b ldr r3, [r7, #20] - 80131da: 791b ldrb r3, [r3, #4] - 80131dc: 2b02 cmp r3, #2 - 80131de: d11c bne.n 801321a + 8013144: 697b ldr r3, [r7, #20] + 8013146: 791b ldrb r3, [r3, #4] + 8013148: 2b02 cmp r3, #2 + 801314a: d11c bne.n 8013186 lv_draw_mask_radius_param_t * radius_p = (lv_draw_mask_radius_param_t *) p; - 80131e0: 687b ldr r3, [r7, #4] - 80131e2: 60fb str r3, [r7, #12] + 801314c: 687b ldr r3, [r7, #4] + 801314e: 60fb str r3, [r7, #12] if(radius_p->circle) { - 80131e4: 68fb ldr r3, [r7, #12] - 80131e6: 695b ldr r3, [r3, #20] - 80131e8: 2b00 cmp r3, #0 - 80131ea: d021 beq.n 8013230 + 8013150: 68fb ldr r3, [r7, #12] + 8013152: 695b ldr r3, [r3, #20] + 8013154: 2b00 cmp r3, #0 + 8013156: d021 beq.n 801319c if(radius_p->circle->life < 0) { - 80131ec: 68fb ldr r3, [r7, #12] - 80131ee: 695b ldr r3, [r3, #20] - 80131f0: 691b ldr r3, [r3, #16] - 80131f2: 2b00 cmp r3, #0 - 80131f4: da0b bge.n 801320e + 8013158: 68fb ldr r3, [r7, #12] + 801315a: 695b ldr r3, [r3, #20] + 801315c: 691b ldr r3, [r3, #16] + 801315e: 2b00 cmp r3, #0 + 8013160: da0b bge.n 801317a lv_mem_free(radius_p->circle->cir_opa); - 80131f6: 68fb ldr r3, [r7, #12] - 80131f8: 695b ldr r3, [r3, #20] - 80131fa: 685b ldr r3, [r3, #4] - 80131fc: 4618 mov r0, r3 - 80131fe: f01f fb6d bl 80328dc + 8013162: 68fb ldr r3, [r7, #12] + 8013164: 695b ldr r3, [r3, #20] + 8013166: 685b ldr r3, [r3, #4] + 8013168: 4618 mov r0, r3 + 801316a: f01f fb6d bl 8032848 lv_mem_free(radius_p->circle); - 8013202: 68fb ldr r3, [r7, #12] - 8013204: 695b ldr r3, [r3, #20] - 8013206: 4618 mov r0, r3 - 8013208: f01f fb68 bl 80328dc + 801316e: 68fb ldr r3, [r7, #12] + 8013170: 695b ldr r3, [r3, #20] + 8013172: 4618 mov r0, r3 + 8013174: f01f fb68 bl 8032848 } else if(pdsc->type == LV_DRAW_MASK_TYPE_POLYGON) { lv_draw_mask_polygon_param_t * poly_p = (lv_draw_mask_polygon_param_t *) p; lv_mem_free(poly_p->cfg.points); } } - 801320c: e010 b.n 8013230 + 8013178: e010 b.n 801319c radius_p->circle->used_cnt--; - 801320e: 68fb ldr r3, [r7, #12] - 8013210: 695b ldr r3, [r3, #20] - 8013212: 695a ldr r2, [r3, #20] - 8013214: 3a01 subs r2, #1 - 8013216: 615a str r2, [r3, #20] + 801317a: 68fb ldr r3, [r7, #12] + 801317c: 695b ldr r3, [r3, #20] + 801317e: 695a ldr r2, [r3, #20] + 8013180: 3a01 subs r2, #1 + 8013182: 615a str r2, [r3, #20] } - 8013218: e00a b.n 8013230 + 8013184: e00a b.n 801319c else if(pdsc->type == LV_DRAW_MASK_TYPE_POLYGON) { - 801321a: 697b ldr r3, [r7, #20] - 801321c: 791b ldrb r3, [r3, #4] - 801321e: 2b05 cmp r3, #5 - 8013220: d106 bne.n 8013230 + 8013186: 697b ldr r3, [r7, #20] + 8013188: 791b ldrb r3, [r3, #4] + 801318a: 2b05 cmp r3, #5 + 801318c: d106 bne.n 801319c lv_draw_mask_polygon_param_t * poly_p = (lv_draw_mask_polygon_param_t *) p; - 8013222: 687b ldr r3, [r7, #4] - 8013224: 613b str r3, [r7, #16] + 801318e: 687b ldr r3, [r7, #4] + 8013190: 613b str r3, [r7, #16] lv_mem_free(poly_p->cfg.points); - 8013226: 693b ldr r3, [r7, #16] - 8013228: 689b ldr r3, [r3, #8] - 801322a: 4618 mov r0, r3 - 801322c: f01f fb56 bl 80328dc + 8013192: 693b ldr r3, [r7, #16] + 8013194: 689b ldr r3, [r3, #8] + 8013196: 4618 mov r0, r3 + 8013198: f01f fb56 bl 8032848 } - 8013230: bf00 nop - 8013232: 3718 adds r7, #24 - 8013234: 46bd mov sp, r7 - 8013236: bd80 pop {r7, pc} + 801319c: bf00 nop + 801319e: 3718 adds r7, #24 + 80131a0: 46bd mov sp, r7 + 80131a2: bd80 pop {r7, pc} -08013238 <_lv_draw_mask_cleanup>: +080131a4 <_lv_draw_mask_cleanup>: void _lv_draw_mask_cleanup(void) { - 8013238: b580 push {r7, lr} - 801323a: b082 sub sp, #8 - 801323c: af00 add r7, sp, #0 + 80131a4: b580 push {r7, lr} + 80131a6: b082 sub sp, #8 + 80131a8: af00 add r7, sp, #0 uint8_t i; for(i = 0; i < LV_CIRCLE_CACHE_SIZE; i++) { - 801323e: 2300 movs r3, #0 - 8013240: 71fb strb r3, [r7, #7] - 8013242: e022 b.n 801328a <_lv_draw_mask_cleanup+0x52> + 80131aa: 2300 movs r3, #0 + 80131ac: 71fb strb r3, [r7, #7] + 80131ae: e022 b.n 80131f6 <_lv_draw_mask_cleanup+0x52> if(LV_GC_ROOT(_lv_circle_cache[i]).buf) { - 8013244: 79fa ldrb r2, [r7, #7] - 8013246: 4915 ldr r1, [pc, #84] ; (801329c <_lv_draw_mask_cleanup+0x64>) - 8013248: 4613 mov r3, r2 - 801324a: 00db lsls r3, r3, #3 - 801324c: 1a9b subs r3, r3, r2 - 801324e: 009b lsls r3, r3, #2 - 8013250: 440b add r3, r1 - 8013252: 681b ldr r3, [r3, #0] - 8013254: 2b00 cmp r3, #0 - 8013256: d00a beq.n 801326e <_lv_draw_mask_cleanup+0x36> + 80131b0: 79fa ldrb r2, [r7, #7] + 80131b2: 4915 ldr r1, [pc, #84] ; (8013208 <_lv_draw_mask_cleanup+0x64>) + 80131b4: 4613 mov r3, r2 + 80131b6: 00db lsls r3, r3, #3 + 80131b8: 1a9b subs r3, r3, r2 + 80131ba: 009b lsls r3, r3, #2 + 80131bc: 440b add r3, r1 + 80131be: 681b ldr r3, [r3, #0] + 80131c0: 2b00 cmp r3, #0 + 80131c2: d00a beq.n 80131da <_lv_draw_mask_cleanup+0x36> lv_mem_free(LV_GC_ROOT(_lv_circle_cache[i]).buf); - 8013258: 79fa ldrb r2, [r7, #7] - 801325a: 4910 ldr r1, [pc, #64] ; (801329c <_lv_draw_mask_cleanup+0x64>) - 801325c: 4613 mov r3, r2 - 801325e: 00db lsls r3, r3, #3 - 8013260: 1a9b subs r3, r3, r2 - 8013262: 009b lsls r3, r3, #2 - 8013264: 440b add r3, r1 - 8013266: 681b ldr r3, [r3, #0] - 8013268: 4618 mov r0, r3 - 801326a: f01f fb37 bl 80328dc + 80131c4: 79fa ldrb r2, [r7, #7] + 80131c6: 4910 ldr r1, [pc, #64] ; (8013208 <_lv_draw_mask_cleanup+0x64>) + 80131c8: 4613 mov r3, r2 + 80131ca: 00db lsls r3, r3, #3 + 80131cc: 1a9b subs r3, r3, r2 + 80131ce: 009b lsls r3, r3, #2 + 80131d0: 440b add r3, r1 + 80131d2: 681b ldr r3, [r3, #0] + 80131d4: 4618 mov r0, r3 + 80131d6: f01f fb37 bl 8032848 } lv_memset_00(&LV_GC_ROOT(_lv_circle_cache[i]), sizeof(LV_GC_ROOT(_lv_circle_cache[i]))); - 801326e: 79fa ldrb r2, [r7, #7] - 8013270: 4613 mov r3, r2 - 8013272: 00db lsls r3, r3, #3 - 8013274: 1a9b subs r3, r3, r2 - 8013276: 009b lsls r3, r3, #2 - 8013278: 4a08 ldr r2, [pc, #32] ; (801329c <_lv_draw_mask_cleanup+0x64>) - 801327a: 4413 add r3, r2 - 801327c: 211c movs r1, #28 - 801327e: 4618 mov r0, r3 - 8013280: f01f ff66 bl 8033150 + 80131da: 79fa ldrb r2, [r7, #7] + 80131dc: 4613 mov r3, r2 + 80131de: 00db lsls r3, r3, #3 + 80131e0: 1a9b subs r3, r3, r2 + 80131e2: 009b lsls r3, r3, #2 + 80131e4: 4a08 ldr r2, [pc, #32] ; (8013208 <_lv_draw_mask_cleanup+0x64>) + 80131e6: 4413 add r3, r2 + 80131e8: 211c movs r1, #28 + 80131ea: 4618 mov r0, r3 + 80131ec: f01f ff66 bl 80330bc for(i = 0; i < LV_CIRCLE_CACHE_SIZE; i++) { - 8013284: 79fb ldrb r3, [r7, #7] - 8013286: 3301 adds r3, #1 - 8013288: 71fb strb r3, [r7, #7] - 801328a: 79fb ldrb r3, [r7, #7] - 801328c: 2b03 cmp r3, #3 - 801328e: d9d9 bls.n 8013244 <_lv_draw_mask_cleanup+0xc> + 80131f0: 79fb ldrb r3, [r7, #7] + 80131f2: 3301 adds r3, #1 + 80131f4: 71fb strb r3, [r7, #7] + 80131f6: 79fb ldrb r3, [r7, #7] + 80131f8: 2b03 cmp r3, #3 + 80131fa: d9d9 bls.n 80131b0 <_lv_draw_mask_cleanup+0xc> } } - 8013290: bf00 nop - 8013292: bf00 nop - 8013294: 3708 adds r7, #8 - 8013296: 46bd mov sp, r7 - 8013298: bd80 pop {r7, pc} - 801329a: bf00 nop - 801329c: 20001e18 .word 0x20001e18 + 80131fc: bf00 nop + 80131fe: bf00 nop + 8013200: 3708 adds r7, #8 + 8013202: 46bd mov sp, r7 + 8013204: bd80 pop {r7, pc} + 8013206: bf00 nop + 8013208: 20001e18 .word 0x20001e18 -080132a0 : +0801320c : } return cnt; } bool lv_draw_mask_is_any(const lv_area_t * a) { - 80132a0: b580 push {r7, lr} - 80132a2: b086 sub sp, #24 - 80132a4: af00 add r7, sp, #0 - 80132a6: 6078 str r0, [r7, #4] + 801320c: b580 push {r7, lr} + 801320e: b086 sub sp, #24 + 8013210: af00 add r7, sp, #0 + 8013212: 6078 str r0, [r7, #4] if(a == NULL) return LV_GC_ROOT(_lv_draw_mask_list[0]).param ? true : false; - 80132a8: 687b ldr r3, [r7, #4] - 80132aa: 2b00 cmp r3, #0 - 80132ac: d107 bne.n 80132be - 80132ae: 4b2a ldr r3, [pc, #168] ; (8013358 ) - 80132b0: 681b ldr r3, [r3, #0] - 80132b2: 2b00 cmp r3, #0 - 80132b4: bf14 ite ne - 80132b6: 2301 movne r3, #1 - 80132b8: 2300 moveq r3, #0 - 80132ba: b2db uxtb r3, r3 - 80132bc: e048 b.n 8013350 + 8013214: 687b ldr r3, [r7, #4] + 8013216: 2b00 cmp r3, #0 + 8013218: d107 bne.n 801322a + 801321a: 4b2a ldr r3, [pc, #168] ; (80132c4 ) + 801321c: 681b ldr r3, [r3, #0] + 801321e: 2b00 cmp r3, #0 + 8013220: bf14 ite ne + 8013222: 2301 movne r3, #1 + 8013224: 2300 moveq r3, #0 + 8013226: b2db uxtb r3, r3 + 8013228: e048 b.n 80132bc uint8_t i; for(i = 0; i < _LV_MASK_MAX_NUM; i++) { - 80132be: 2300 movs r3, #0 - 80132c0: 75fb strb r3, [r7, #23] - 80132c2: e041 b.n 8013348 + 801322a: 2300 movs r3, #0 + 801322c: 75fb strb r3, [r7, #23] + 801322e: e041 b.n 80132b4 _lv_draw_mask_common_dsc_t * comm_param = LV_GC_ROOT(_lv_draw_mask_list[i]).param; - 80132c4: 7dfb ldrb r3, [r7, #23] - 80132c6: 4a24 ldr r2, [pc, #144] ; (8013358 ) - 80132c8: f852 3033 ldr.w r3, [r2, r3, lsl #3] - 80132cc: 613b str r3, [r7, #16] + 8013230: 7dfb ldrb r3, [r7, #23] + 8013232: 4a24 ldr r2, [pc, #144] ; (80132c4 ) + 8013234: f852 3033 ldr.w r3, [r2, r3, lsl #3] + 8013238: 613b str r3, [r7, #16] if(comm_param == NULL) continue; - 80132ce: 693b ldr r3, [r7, #16] - 80132d0: 2b00 cmp r3, #0 - 80132d2: d035 beq.n 8013340 + 801323a: 693b ldr r3, [r7, #16] + 801323c: 2b00 cmp r3, #0 + 801323e: d035 beq.n 80132ac if(comm_param->type == LV_DRAW_MASK_TYPE_RADIUS) { - 80132d4: 693b ldr r3, [r7, #16] - 80132d6: 791b ldrb r3, [r3, #4] - 80132d8: 2b02 cmp r3, #2 - 80132da: d12f bne.n 801333c + 8013240: 693b ldr r3, [r7, #16] + 8013242: 791b ldrb r3, [r3, #4] + 8013244: 2b02 cmp r3, #2 + 8013246: d12f bne.n 80132a8 lv_draw_mask_radius_param_t * radius_param = LV_GC_ROOT(_lv_draw_mask_list[i]).param; - 80132dc: 7dfb ldrb r3, [r7, #23] - 80132de: 4a1e ldr r2, [pc, #120] ; (8013358 ) - 80132e0: f852 3033 ldr.w r3, [r2, r3, lsl #3] - 80132e4: 60fb str r3, [r7, #12] + 8013248: 7dfb ldrb r3, [r7, #23] + 801324a: 4a1e ldr r2, [pc, #120] ; (80132c4 ) + 801324c: f852 3033 ldr.w r3, [r2, r3, lsl #3] + 8013250: 60fb str r3, [r7, #12] if(radius_param->cfg.outer) { - 80132e6: 68fb ldr r3, [r7, #12] - 80132e8: 7c9b ldrb r3, [r3, #18] - 80132ea: f003 0301 and.w r3, r3, #1 - 80132ee: b2db uxtb r3, r3 - 80132f0: 2b00 cmp r3, #0 - 80132f2: d011 beq.n 8013318 + 8013252: 68fb ldr r3, [r7, #12] + 8013254: 7c9b ldrb r3, [r3, #18] + 8013256: f003 0301 and.w r3, r3, #1 + 801325a: b2db uxtb r3, r3 + 801325c: 2b00 cmp r3, #0 + 801325e: d011 beq.n 8013284 if(!_lv_area_is_out(a, &radius_param->cfg.rect, radius_param->cfg.radius)) return true; - 80132f4: 68fb ldr r3, [r7, #12] - 80132f6: f103 0108 add.w r1, r3, #8 - 80132fa: 68fb ldr r3, [r7, #12] - 80132fc: f9b3 3010 ldrsh.w r3, [r3, #16] - 8013300: 461a mov r2, r3 - 8013302: 6878 ldr r0, [r7, #4] - 8013304: f01e f94d bl 80315a2 <_lv_area_is_out> - 8013308: 4603 mov r3, r0 - 801330a: f083 0301 eor.w r3, r3, #1 - 801330e: b2db uxtb r3, r3 - 8013310: 2b00 cmp r3, #0 - 8013312: d016 beq.n 8013342 - 8013314: 2301 movs r3, #1 - 8013316: e01b b.n 8013350 + 8013260: 68fb ldr r3, [r7, #12] + 8013262: f103 0108 add.w r1, r3, #8 + 8013266: 68fb ldr r3, [r7, #12] + 8013268: f9b3 3010 ldrsh.w r3, [r3, #16] + 801326c: 461a mov r2, r3 + 801326e: 6878 ldr r0, [r7, #4] + 8013270: f01e f94d bl 803150e <_lv_area_is_out> + 8013274: 4603 mov r3, r0 + 8013276: f083 0301 eor.w r3, r3, #1 + 801327a: b2db uxtb r3, r3 + 801327c: 2b00 cmp r3, #0 + 801327e: d016 beq.n 80132ae + 8013280: 2301 movs r3, #1 + 8013282: e01b b.n 80132bc } else { if(!_lv_area_is_in(a, &radius_param->cfg.rect, radius_param->cfg.radius)) return true; - 8013318: 68fb ldr r3, [r7, #12] - 801331a: f103 0108 add.w r1, r3, #8 - 801331e: 68fb ldr r3, [r7, #12] - 8013320: f9b3 3010 ldrsh.w r3, [r3, #16] - 8013324: 461a mov r2, r3 - 8013326: 6878 ldr r0, [r7, #4] - 8013328: f01e f89d bl 8031466 <_lv_area_is_in> - 801332c: 4603 mov r3, r0 - 801332e: f083 0301 eor.w r3, r3, #1 - 8013332: b2db uxtb r3, r3 - 8013334: 2b00 cmp r3, #0 - 8013336: d004 beq.n 8013342 - 8013338: 2301 movs r3, #1 - 801333a: e009 b.n 8013350 + 8013284: 68fb ldr r3, [r7, #12] + 8013286: f103 0108 add.w r1, r3, #8 + 801328a: 68fb ldr r3, [r7, #12] + 801328c: f9b3 3010 ldrsh.w r3, [r3, #16] + 8013290: 461a mov r2, r3 + 8013292: 6878 ldr r0, [r7, #4] + 8013294: f01e f89d bl 80313d2 <_lv_area_is_in> + 8013298: 4603 mov r3, r0 + 801329a: f083 0301 eor.w r3, r3, #1 + 801329e: b2db uxtb r3, r3 + 80132a0: 2b00 cmp r3, #0 + 80132a2: d004 beq.n 80132ae + 80132a4: 2301 movs r3, #1 + 80132a6: e009 b.n 80132bc } } else { return true; - 801333c: 2301 movs r3, #1 - 801333e: e007 b.n 8013350 + 80132a8: 2301 movs r3, #1 + 80132aa: e007 b.n 80132bc if(comm_param == NULL) continue; - 8013340: bf00 nop + 80132ac: bf00 nop for(i = 0; i < _LV_MASK_MAX_NUM; i++) { - 8013342: 7dfb ldrb r3, [r7, #23] - 8013344: 3301 adds r3, #1 - 8013346: 75fb strb r3, [r7, #23] - 8013348: 7dfb ldrb r3, [r7, #23] - 801334a: 2b0f cmp r3, #15 - 801334c: d9ba bls.n 80132c4 + 80132ae: 7dfb ldrb r3, [r7, #23] + 80132b0: 3301 adds r3, #1 + 80132b2: 75fb strb r3, [r7, #23] + 80132b4: 7dfb ldrb r3, [r7, #23] + 80132b6: 2b0f cmp r3, #15 + 80132b8: d9ba bls.n 8013230 } } return false; - 801334e: 2300 movs r3, #0 + 80132ba: 2300 movs r3, #0 } - 8013350: 4618 mov r0, r3 - 8013352: 3718 adds r7, #24 - 8013354: 46bd mov sp, r7 - 8013356: bd80 pop {r7, pc} - 8013358: 20001e88 .word 0x20001e88 + 80132bc: 4618 mov r0, r3 + 80132be: 3718 adds r7, #24 + 80132c0: 46bd mov sp, r7 + 80132c2: bd80 pop {r7, pc} + 80132c4: 20001e88 .word 0x20001e88 -0801335c : +080132c8 : * With `LV_DRAW_MASK_LINE_SIDE_LEFT/RIGHT` and horizontal line all pixels are kept * With `LV_DRAW_MASK_LINE_SIDE_TOP/BOTTOM` and vertical line all pixels are kept */ void lv_draw_mask_line_points_init(lv_draw_mask_line_param_t * param, lv_coord_t p1x, lv_coord_t p1y, lv_coord_t p2x, lv_coord_t p2y, lv_draw_mask_line_side_t side) { - 801335c: b580 push {r7, lr} - 801335e: b08a sub sp, #40 ; 0x28 - 8013360: af00 add r7, sp, #0 - 8013362: 60f8 str r0, [r7, #12] - 8013364: 4608 mov r0, r1 - 8013366: 4611 mov r1, r2 - 8013368: 461a mov r2, r3 - 801336a: 4603 mov r3, r0 - 801336c: 817b strh r3, [r7, #10] - 801336e: 460b mov r3, r1 - 8013370: 813b strh r3, [r7, #8] - 8013372: 4613 mov r3, r2 - 8013374: 80fb strh r3, [r7, #6] + 80132c8: b580 push {r7, lr} + 80132ca: b08a sub sp, #40 ; 0x28 + 80132cc: af00 add r7, sp, #0 + 80132ce: 60f8 str r0, [r7, #12] + 80132d0: 4608 mov r0, r1 + 80132d2: 4611 mov r1, r2 + 80132d4: 461a mov r2, r3 + 80132d6: 4603 mov r3, r0 + 80132d8: 817b strh r3, [r7, #10] + 80132da: 460b mov r3, r1 + 80132dc: 813b strh r3, [r7, #8] + 80132de: 4613 mov r3, r2 + 80132e0: 80fb strh r3, [r7, #6] lv_memset_00(param, sizeof(lv_draw_mask_line_param_t)); - 8013376: 212c movs r1, #44 ; 0x2c - 8013378: 68f8 ldr r0, [r7, #12] - 801337a: f01f fee9 bl 8033150 + 80132e2: 212c movs r1, #44 ; 0x2c + 80132e4: 68f8 ldr r0, [r7, #12] + 80132e6: f01f fee9 bl 80330bc if(p1y == p2y && side == LV_DRAW_MASK_LINE_SIDE_BOTTOM) { - 801337e: f9b7 2008 ldrsh.w r2, [r7, #8] - 8013382: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 8013386: 429a cmp r2, r3 - 8013388: d10f bne.n 80133aa - 801338a: f897 3034 ldrb.w r3, [r7, #52] ; 0x34 - 801338e: 2b03 cmp r3, #3 - 8013390: d10b bne.n 80133aa + 80132ea: f9b7 2008 ldrsh.w r2, [r7, #8] + 80132ee: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 80132f2: 429a cmp r2, r3 + 80132f4: d10f bne.n 8013316 + 80132f6: f897 3034 ldrb.w r3, [r7, #52] ; 0x34 + 80132fa: 2b03 cmp r3, #3 + 80132fc: d10b bne.n 8013316 p1y--; - 8013392: f9b7 3008 ldrsh.w r3, [r7, #8] - 8013396: b29b uxth r3, r3 - 8013398: 3b01 subs r3, #1 - 801339a: b29b uxth r3, r3 - 801339c: 813b strh r3, [r7, #8] + 80132fe: f9b7 3008 ldrsh.w r3, [r7, #8] + 8013302: b29b uxth r3, r3 + 8013304: 3b01 subs r3, #1 + 8013306: b29b uxth r3, r3 + 8013308: 813b strh r3, [r7, #8] p2y--; - 801339e: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 80133a2: b29b uxth r3, r3 - 80133a4: 3b01 subs r3, #1 - 80133a6: b29b uxth r3, r3 - 80133a8: 863b strh r3, [r7, #48] ; 0x30 + 801330a: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801330e: b29b uxth r3, r3 + 8013310: 3b01 subs r3, #1 + 8013312: b29b uxth r3, r3 + 8013314: 863b strh r3, [r7, #48] ; 0x30 } if(p1y > p2y) { - 80133aa: f9b7 2008 ldrsh.w r2, [r7, #8] - 80133ae: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 80133b2: 429a cmp r2, r3 - 80133b4: dd0b ble.n 80133ce + 8013316: f9b7 2008 ldrsh.w r2, [r7, #8] + 801331a: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801331e: 429a cmp r2, r3 + 8013320: dd0b ble.n 801333a lv_coord_t t; t = p2x; - 80133b6: 88fb ldrh r3, [r7, #6] - 80133b8: 84fb strh r3, [r7, #38] ; 0x26 + 8013322: 88fb ldrh r3, [r7, #6] + 8013324: 84fb strh r3, [r7, #38] ; 0x26 p2x = p1x; - 80133ba: 897b ldrh r3, [r7, #10] - 80133bc: 80fb strh r3, [r7, #6] + 8013326: 897b ldrh r3, [r7, #10] + 8013328: 80fb strh r3, [r7, #6] p1x = t; - 80133be: 8cfb ldrh r3, [r7, #38] ; 0x26 - 80133c0: 817b strh r3, [r7, #10] + 801332a: 8cfb ldrh r3, [r7, #38] ; 0x26 + 801332c: 817b strh r3, [r7, #10] t = p2y; - 80133c2: 8e3b ldrh r3, [r7, #48] ; 0x30 - 80133c4: 84fb strh r3, [r7, #38] ; 0x26 + 801332e: 8e3b ldrh r3, [r7, #48] ; 0x30 + 8013330: 84fb strh r3, [r7, #38] ; 0x26 p2y = p1y; - 80133c6: 893b ldrh r3, [r7, #8] - 80133c8: 863b strh r3, [r7, #48] ; 0x30 + 8013332: 893b ldrh r3, [r7, #8] + 8013334: 863b strh r3, [r7, #48] ; 0x30 p1y = t; - 80133ca: 8cfb ldrh r3, [r7, #38] ; 0x26 - 80133cc: 813b strh r3, [r7, #8] + 8013336: 8cfb ldrh r3, [r7, #38] ; 0x26 + 8013338: 813b strh r3, [r7, #8] } param->cfg.p1.x = p1x; - 80133ce: 68fb ldr r3, [r7, #12] - 80133d0: 897a ldrh r2, [r7, #10] - 80133d2: 811a strh r2, [r3, #8] + 801333a: 68fb ldr r3, [r7, #12] + 801333c: 897a ldrh r2, [r7, #10] + 801333e: 811a strh r2, [r3, #8] param->cfg.p1.y = p1y; - 80133d4: 68fb ldr r3, [r7, #12] - 80133d6: 893a ldrh r2, [r7, #8] - 80133d8: 815a strh r2, [r3, #10] + 8013340: 68fb ldr r3, [r7, #12] + 8013342: 893a ldrh r2, [r7, #8] + 8013344: 815a strh r2, [r3, #10] param->cfg.p2.x = p2x; - 80133da: 68fb ldr r3, [r7, #12] - 80133dc: 88fa ldrh r2, [r7, #6] - 80133de: 819a strh r2, [r3, #12] + 8013346: 68fb ldr r3, [r7, #12] + 8013348: 88fa ldrh r2, [r7, #6] + 801334a: 819a strh r2, [r3, #12] param->cfg.p2.y = p2y; - 80133e0: 68fb ldr r3, [r7, #12] - 80133e2: 8e3a ldrh r2, [r7, #48] ; 0x30 - 80133e4: 81da strh r2, [r3, #14] + 801334c: 68fb ldr r3, [r7, #12] + 801334e: 8e3a ldrh r2, [r7, #48] ; 0x30 + 8013350: 81da strh r2, [r3, #14] param->cfg.side = side; - 80133e6: f897 3034 ldrb.w r3, [r7, #52] ; 0x34 - 80133ea: f003 0303 and.w r3, r3, #3 - 80133ee: b2d9 uxtb r1, r3 - 80133f0: 68fa ldr r2, [r7, #12] - 80133f2: 7c13 ldrb r3, [r2, #16] - 80133f4: f361 0301 bfi r3, r1, #0, #2 - 80133f8: 7413 strb r3, [r2, #16] + 8013352: f897 3034 ldrb.w r3, [r7, #52] ; 0x34 + 8013356: f003 0303 and.w r3, r3, #3 + 801335a: b2d9 uxtb r1, r3 + 801335c: 68fa ldr r2, [r7, #12] + 801335e: 7c13 ldrb r3, [r2, #16] + 8013360: f361 0301 bfi r3, r1, #0, #2 + 8013364: 7413 strb r3, [r2, #16] param->origo.x = p1x; - 80133fa: 68fb ldr r3, [r7, #12] - 80133fc: 897a ldrh r2, [r7, #10] - 80133fe: 825a strh r2, [r3, #18] + 8013366: 68fb ldr r3, [r7, #12] + 8013368: 897a ldrh r2, [r7, #10] + 801336a: 825a strh r2, [r3, #18] param->origo.y = p1y; - 8013400: 68fb ldr r3, [r7, #12] - 8013402: 893a ldrh r2, [r7, #8] - 8013404: 829a strh r2, [r3, #20] + 801336c: 68fb ldr r3, [r7, #12] + 801336e: 893a ldrh r2, [r7, #8] + 8013370: 829a strh r2, [r3, #20] param->flat = (LV_ABS(p2x - p1x) > LV_ABS(p2y - p1y)) ? 1 : 0; - 8013406: f9b7 2006 ldrsh.w r2, [r7, #6] - 801340a: f9b7 300a ldrsh.w r3, [r7, #10] - 801340e: 1ad3 subs r3, r2, r3 - 8013410: ea83 72e3 eor.w r2, r3, r3, asr #31 - 8013414: eba2 72e3 sub.w r2, r2, r3, asr #31 - 8013418: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 - 801341c: f9b7 3008 ldrsh.w r3, [r7, #8] - 8013420: 1acb subs r3, r1, r3 - 8013422: 2b00 cmp r3, #0 - 8013424: bfb8 it lt - 8013426: 425b neglt r3, r3 - 8013428: 429a cmp r2, r3 - 801342a: bfcc ite gt - 801342c: 2301 movgt r3, #1 - 801342e: 2300 movle r3, #0 - 8013430: b2d9 uxtb r1, r3 - 8013432: 68fa ldr r2, [r7, #12] - 8013434: f892 3028 ldrb.w r3, [r2, #40] ; 0x28 - 8013438: f361 0300 bfi r3, r1, #0, #1 - 801343c: f882 3028 strb.w r3, [r2, #40] ; 0x28 + 8013372: f9b7 2006 ldrsh.w r2, [r7, #6] + 8013376: f9b7 300a ldrsh.w r3, [r7, #10] + 801337a: 1ad3 subs r3, r2, r3 + 801337c: ea83 72e3 eor.w r2, r3, r3, asr #31 + 8013380: eba2 72e3 sub.w r2, r2, r3, asr #31 + 8013384: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 + 8013388: f9b7 3008 ldrsh.w r3, [r7, #8] + 801338c: 1acb subs r3, r1, r3 + 801338e: 2b00 cmp r3, #0 + 8013390: bfb8 it lt + 8013392: 425b neglt r3, r3 + 8013394: 429a cmp r2, r3 + 8013396: bfcc ite gt + 8013398: 2301 movgt r3, #1 + 801339a: 2300 movle r3, #0 + 801339c: b2d9 uxtb r1, r3 + 801339e: 68fa ldr r2, [r7, #12] + 80133a0: f892 3028 ldrb.w r3, [r2, #40] ; 0x28 + 80133a4: f361 0300 bfi r3, r1, #0, #1 + 80133a8: f882 3028 strb.w r3, [r2, #40] ; 0x28 param->yx_steep = 0; - 8013440: 68fb ldr r3, [r7, #12] - 8013442: 2200 movs r2, #0 - 8013444: 61da str r2, [r3, #28] + 80133ac: 68fb ldr r3, [r7, #12] + 80133ae: 2200 movs r2, #0 + 80133b0: 61da str r2, [r3, #28] param->xy_steep = 0; - 8013446: 68fb ldr r3, [r7, #12] - 8013448: 2200 movs r2, #0 - 801344a: 619a str r2, [r3, #24] + 80133b2: 68fb ldr r3, [r7, #12] + 80133b4: 2200 movs r2, #0 + 80133b6: 619a str r2, [r3, #24] param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_line; - 801344c: 68fb ldr r3, [r7, #12] - 801344e: 4a63 ldr r2, [pc, #396] ; (80135dc ) - 8013450: 601a str r2, [r3, #0] + 80133b8: 68fb ldr r3, [r7, #12] + 80133ba: 4a63 ldr r2, [pc, #396] ; (8013548 ) + 80133bc: 601a str r2, [r3, #0] param->dsc.type = LV_DRAW_MASK_TYPE_LINE; - 8013452: 68fb ldr r3, [r7, #12] - 8013454: 2200 movs r2, #0 - 8013456: 711a strb r2, [r3, #4] + 80133be: 68fb ldr r3, [r7, #12] + 80133c0: 2200 movs r2, #0 + 80133c2: 711a strb r2, [r3, #4] int32_t dx = p2x - p1x; - 8013458: f9b7 2006 ldrsh.w r2, [r7, #6] - 801345c: f9b7 300a ldrsh.w r3, [r7, #10] - 8013460: 1ad3 subs r3, r2, r3 - 8013462: 623b str r3, [r7, #32] + 80133c4: f9b7 2006 ldrsh.w r2, [r7, #6] + 80133c8: f9b7 300a ldrsh.w r3, [r7, #10] + 80133cc: 1ad3 subs r3, r2, r3 + 80133ce: 623b str r3, [r7, #32] int32_t dy = p2y - p1y; - 8013464: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 - 8013468: f9b7 3008 ldrsh.w r3, [r7, #8] - 801346c: 1ad3 subs r3, r2, r3 - 801346e: 61fb str r3, [r7, #28] + 80133d0: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 + 80133d4: f9b7 3008 ldrsh.w r3, [r7, #8] + 80133d8: 1ad3 subs r3, r2, r3 + 80133da: 61fb str r3, [r7, #28] if(param->flat) { - 8013470: 68fb ldr r3, [r7, #12] - 8013472: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 8013476: f003 0301 and.w r3, r3, #1 - 801347a: b2db uxtb r3, r3 - 801347c: 2b00 cmp r3, #0 - 801347e: d024 beq.n 80134ca + 80133dc: 68fb ldr r3, [r7, #12] + 80133de: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 80133e2: f003 0301 and.w r3, r3, #1 + 80133e6: b2db uxtb r3, r3 + 80133e8: 2b00 cmp r3, #0 + 80133ea: d024 beq.n 8013436 /*Normalize the steep. Delta x should be relative to delta x = 1024*/ int32_t m; if(dx) { - 8013480: 6a3b ldr r3, [r7, #32] - 8013482: 2b00 cmp r3, #0 - 8013484: d00c beq.n 80134a0 + 80133ec: 6a3b ldr r3, [r7, #32] + 80133ee: 2b00 cmp r3, #0 + 80133f0: d00c beq.n 801340c m = (1L << 20) / dx; /*m is multiplier to normalize y (upscaled by 1024)*/ - 8013486: f44f 1280 mov.w r2, #1048576 ; 0x100000 - 801348a: 6a3b ldr r3, [r7, #32] - 801348c: fb92 f3f3 sdiv r3, r2, r3 - 8013490: 617b str r3, [r7, #20] + 80133f2: f44f 1280 mov.w r2, #1048576 ; 0x100000 + 80133f6: 6a3b ldr r3, [r7, #32] + 80133f8: fb92 f3f3 sdiv r3, r2, r3 + 80133fc: 617b str r3, [r7, #20] param->yx_steep = (m * dy) >> 10; - 8013492: 697b ldr r3, [r7, #20] - 8013494: 69fa ldr r2, [r7, #28] - 8013496: fb02 f303 mul.w r3, r2, r3 - 801349a: 129a asrs r2, r3, #10 - 801349c: 68fb ldr r3, [r7, #12] - 801349e: 61da str r2, [r3, #28] + 80133fe: 697b ldr r3, [r7, #20] + 8013400: 69fa ldr r2, [r7, #28] + 8013402: fb02 f303 mul.w r3, r2, r3 + 8013406: 129a asrs r2, r3, #10 + 8013408: 68fb ldr r3, [r7, #12] + 801340a: 61da str r2, [r3, #28] } if(dy) { - 80134a0: 69fb ldr r3, [r7, #28] - 80134a2: 2b00 cmp r3, #0 - 80134a4: d00c beq.n 80134c0 + 801340c: 69fb ldr r3, [r7, #28] + 801340e: 2b00 cmp r3, #0 + 8013410: d00c beq.n 801342c m = (1L << 20) / dy; /*m is multiplier to normalize x (upscaled by 1024)*/ - 80134a6: f44f 1280 mov.w r2, #1048576 ; 0x100000 - 80134aa: 69fb ldr r3, [r7, #28] - 80134ac: fb92 f3f3 sdiv r3, r2, r3 - 80134b0: 617b str r3, [r7, #20] + 8013412: f44f 1280 mov.w r2, #1048576 ; 0x100000 + 8013416: 69fb ldr r3, [r7, #28] + 8013418: fb92 f3f3 sdiv r3, r2, r3 + 801341c: 617b str r3, [r7, #20] param->xy_steep = (m * dx) >> 10; - 80134b2: 697b ldr r3, [r7, #20] - 80134b4: 6a3a ldr r2, [r7, #32] - 80134b6: fb02 f303 mul.w r3, r2, r3 - 80134ba: 129a asrs r2, r3, #10 - 80134bc: 68fb ldr r3, [r7, #12] - 80134be: 619a str r2, [r3, #24] + 801341e: 697b ldr r3, [r7, #20] + 8013420: 6a3a ldr r2, [r7, #32] + 8013422: fb02 f303 mul.w r3, r2, r3 + 8013426: 129a asrs r2, r3, #10 + 8013428: 68fb ldr r3, [r7, #12] + 801342a: 619a str r2, [r3, #24] } param->steep = param->yx_steep; - 80134c0: 68fb ldr r3, [r7, #12] - 80134c2: 69da ldr r2, [r3, #28] - 80134c4: 68fb ldr r3, [r7, #12] - 80134c6: 621a str r2, [r3, #32] - 80134c8: e023 b.n 8013512 + 801342c: 68fb ldr r3, [r7, #12] + 801342e: 69da ldr r2, [r3, #28] + 8013430: 68fb ldr r3, [r7, #12] + 8013432: 621a str r2, [r3, #32] + 8013434: e023 b.n 801347e } else { /*Normalize the steep. Delta y should be relative to delta x = 1024*/ int32_t m; if(dy) { - 80134ca: 69fb ldr r3, [r7, #28] - 80134cc: 2b00 cmp r3, #0 - 80134ce: d00c beq.n 80134ea + 8013436: 69fb ldr r3, [r7, #28] + 8013438: 2b00 cmp r3, #0 + 801343a: d00c beq.n 8013456 m = (1L << 20) / dy; /*m is multiplier to normalize x (upscaled by 1024)*/ - 80134d0: f44f 1280 mov.w r2, #1048576 ; 0x100000 - 80134d4: 69fb ldr r3, [r7, #28] - 80134d6: fb92 f3f3 sdiv r3, r2, r3 - 80134da: 61bb str r3, [r7, #24] + 801343c: f44f 1280 mov.w r2, #1048576 ; 0x100000 + 8013440: 69fb ldr r3, [r7, #28] + 8013442: fb92 f3f3 sdiv r3, r2, r3 + 8013446: 61bb str r3, [r7, #24] param->xy_steep = (m * dx) >> 10; - 80134dc: 69bb ldr r3, [r7, #24] - 80134de: 6a3a ldr r2, [r7, #32] - 80134e0: fb02 f303 mul.w r3, r2, r3 - 80134e4: 129a asrs r2, r3, #10 - 80134e6: 68fb ldr r3, [r7, #12] - 80134e8: 619a str r2, [r3, #24] + 8013448: 69bb ldr r3, [r7, #24] + 801344a: 6a3a ldr r2, [r7, #32] + 801344c: fb02 f303 mul.w r3, r2, r3 + 8013450: 129a asrs r2, r3, #10 + 8013452: 68fb ldr r3, [r7, #12] + 8013454: 619a str r2, [r3, #24] } if(dx) { - 80134ea: 6a3b ldr r3, [r7, #32] - 80134ec: 2b00 cmp r3, #0 - 80134ee: d00c beq.n 801350a + 8013456: 6a3b ldr r3, [r7, #32] + 8013458: 2b00 cmp r3, #0 + 801345a: d00c beq.n 8013476 m = (1L << 20) / dx; /*m is multiplier to normalize x (upscaled by 1024)*/ - 80134f0: f44f 1280 mov.w r2, #1048576 ; 0x100000 - 80134f4: 6a3b ldr r3, [r7, #32] - 80134f6: fb92 f3f3 sdiv r3, r2, r3 - 80134fa: 61bb str r3, [r7, #24] + 801345c: f44f 1280 mov.w r2, #1048576 ; 0x100000 + 8013460: 6a3b ldr r3, [r7, #32] + 8013462: fb92 f3f3 sdiv r3, r2, r3 + 8013466: 61bb str r3, [r7, #24] param->yx_steep = (m * dy) >> 10; - 80134fc: 69bb ldr r3, [r7, #24] - 80134fe: 69fa ldr r2, [r7, #28] - 8013500: fb02 f303 mul.w r3, r2, r3 - 8013504: 129a asrs r2, r3, #10 - 8013506: 68fb ldr r3, [r7, #12] - 8013508: 61da str r2, [r3, #28] + 8013468: 69bb ldr r3, [r7, #24] + 801346a: 69fa ldr r2, [r7, #28] + 801346c: fb02 f303 mul.w r3, r2, r3 + 8013470: 129a asrs r2, r3, #10 + 8013472: 68fb ldr r3, [r7, #12] + 8013474: 61da str r2, [r3, #28] } param->steep = param->xy_steep; - 801350a: 68fb ldr r3, [r7, #12] - 801350c: 699a ldr r2, [r3, #24] - 801350e: 68fb ldr r3, [r7, #12] - 8013510: 621a str r2, [r3, #32] + 8013476: 68fb ldr r3, [r7, #12] + 8013478: 699a ldr r2, [r3, #24] + 801347a: 68fb ldr r3, [r7, #12] + 801347c: 621a str r2, [r3, #32] } if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0; - 8013512: 68fb ldr r3, [r7, #12] - 8013514: 7c1b ldrb r3, [r3, #16] - 8013516: f003 0303 and.w r3, r3, #3 - 801351a: b2db uxtb r3, r3 - 801351c: 2b00 cmp r3, #0 - 801351e: d107 bne.n 8013530 - 8013520: 68fa ldr r2, [r7, #12] - 8013522: f892 3028 ldrb.w r3, [r2, #40] ; 0x28 - 8013526: f36f 0341 bfc r3, #1, #1 - 801352a: f882 3028 strb.w r3, [r2, #40] ; 0x28 - 801352e: e043 b.n 80135b8 + 801347e: 68fb ldr r3, [r7, #12] + 8013480: 7c1b ldrb r3, [r3, #16] + 8013482: f003 0303 and.w r3, r3, #3 + 8013486: b2db uxtb r3, r3 + 8013488: 2b00 cmp r3, #0 + 801348a: d107 bne.n 801349c + 801348c: 68fa ldr r2, [r7, #12] + 801348e: f892 3028 ldrb.w r3, [r2, #40] ; 0x28 + 8013492: f36f 0341 bfc r3, #1, #1 + 8013496: f882 3028 strb.w r3, [r2, #40] ; 0x28 + 801349a: e043 b.n 8013524 else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) param->inv = 1; - 8013530: 68fb ldr r3, [r7, #12] - 8013532: 7c1b ldrb r3, [r3, #16] - 8013534: f003 0303 and.w r3, r3, #3 - 8013538: b2db uxtb r3, r3 - 801353a: 2b01 cmp r3, #1 - 801353c: d107 bne.n 801354e - 801353e: 68fa ldr r2, [r7, #12] - 8013540: f892 3028 ldrb.w r3, [r2, #40] ; 0x28 - 8013544: f043 0302 orr.w r3, r3, #2 - 8013548: f882 3028 strb.w r3, [r2, #40] ; 0x28 - 801354c: e034 b.n 80135b8 + 801349c: 68fb ldr r3, [r7, #12] + 801349e: 7c1b ldrb r3, [r3, #16] + 80134a0: f003 0303 and.w r3, r3, #3 + 80134a4: b2db uxtb r3, r3 + 80134a6: 2b01 cmp r3, #1 + 80134a8: d107 bne.n 80134ba + 80134aa: 68fa ldr r2, [r7, #12] + 80134ac: f892 3028 ldrb.w r3, [r2, #40] ; 0x28 + 80134b0: f043 0302 orr.w r3, r3, #2 + 80134b4: f882 3028 strb.w r3, [r2, #40] ; 0x28 + 80134b8: e034 b.n 8013524 else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP) { - 801354e: 68fb ldr r3, [r7, #12] - 8013550: 7c1b ldrb r3, [r3, #16] - 8013552: f003 0303 and.w r3, r3, #3 - 8013556: b2db uxtb r3, r3 - 8013558: 2b02 cmp r3, #2 - 801355a: d113 bne.n 8013584 + 80134ba: 68fb ldr r3, [r7, #12] + 80134bc: 7c1b ldrb r3, [r3, #16] + 80134be: f003 0303 and.w r3, r3, #3 + 80134c2: b2db uxtb r3, r3 + 80134c4: 2b02 cmp r3, #2 + 80134c6: d113 bne.n 80134f0 if(param->steep > 0) param->inv = 1; - 801355c: 68fb ldr r3, [r7, #12] - 801355e: 6a1b ldr r3, [r3, #32] - 8013560: 2b00 cmp r3, #0 - 8013562: dd07 ble.n 8013574 - 8013564: 68fa ldr r2, [r7, #12] - 8013566: f892 3028 ldrb.w r3, [r2, #40] ; 0x28 - 801356a: f043 0302 orr.w r3, r3, #2 - 801356e: f882 3028 strb.w r3, [r2, #40] ; 0x28 - 8013572: e021 b.n 80135b8 + 80134c8: 68fb ldr r3, [r7, #12] + 80134ca: 6a1b ldr r3, [r3, #32] + 80134cc: 2b00 cmp r3, #0 + 80134ce: dd07 ble.n 80134e0 + 80134d0: 68fa ldr r2, [r7, #12] + 80134d2: f892 3028 ldrb.w r3, [r2, #40] ; 0x28 + 80134d6: f043 0302 orr.w r3, r3, #2 + 80134da: f882 3028 strb.w r3, [r2, #40] ; 0x28 + 80134de: e021 b.n 8013524 else param->inv = 0; - 8013574: 68fa ldr r2, [r7, #12] - 8013576: f892 3028 ldrb.w r3, [r2, #40] ; 0x28 - 801357a: f36f 0341 bfc r3, #1, #1 - 801357e: f882 3028 strb.w r3, [r2, #40] ; 0x28 - 8013582: e019 b.n 80135b8 + 80134e0: 68fa ldr r2, [r7, #12] + 80134e2: f892 3028 ldrb.w r3, [r2, #40] ; 0x28 + 80134e6: f36f 0341 bfc r3, #1, #1 + 80134ea: f882 3028 strb.w r3, [r2, #40] ; 0x28 + 80134ee: e019 b.n 8013524 } else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM) { - 8013584: 68fb ldr r3, [r7, #12] - 8013586: 7c1b ldrb r3, [r3, #16] - 8013588: f003 0303 and.w r3, r3, #3 - 801358c: b2db uxtb r3, r3 - 801358e: 2b03 cmp r3, #3 - 8013590: d112 bne.n 80135b8 + 80134f0: 68fb ldr r3, [r7, #12] + 80134f2: 7c1b ldrb r3, [r3, #16] + 80134f4: f003 0303 and.w r3, r3, #3 + 80134f8: b2db uxtb r3, r3 + 80134fa: 2b03 cmp r3, #3 + 80134fc: d112 bne.n 8013524 if(param->steep > 0) param->inv = 0; - 8013592: 68fb ldr r3, [r7, #12] - 8013594: 6a1b ldr r3, [r3, #32] - 8013596: 2b00 cmp r3, #0 - 8013598: dd07 ble.n 80135aa - 801359a: 68fa ldr r2, [r7, #12] - 801359c: f892 3028 ldrb.w r3, [r2, #40] ; 0x28 - 80135a0: f36f 0341 bfc r3, #1, #1 - 80135a4: f882 3028 strb.w r3, [r2, #40] ; 0x28 - 80135a8: e006 b.n 80135b8 + 80134fe: 68fb ldr r3, [r7, #12] + 8013500: 6a1b ldr r3, [r3, #32] + 8013502: 2b00 cmp r3, #0 + 8013504: dd07 ble.n 8013516 + 8013506: 68fa ldr r2, [r7, #12] + 8013508: f892 3028 ldrb.w r3, [r2, #40] ; 0x28 + 801350c: f36f 0341 bfc r3, #1, #1 + 8013510: f882 3028 strb.w r3, [r2, #40] ; 0x28 + 8013514: e006 b.n 8013524 else param->inv = 1; - 80135aa: 68fa ldr r2, [r7, #12] - 80135ac: f892 3028 ldrb.w r3, [r2, #40] ; 0x28 - 80135b0: f043 0302 orr.w r3, r3, #2 - 80135b4: f882 3028 strb.w r3, [r2, #40] ; 0x28 + 8013516: 68fa ldr r2, [r7, #12] + 8013518: f892 3028 ldrb.w r3, [r2, #40] ; 0x28 + 801351c: f043 0302 orr.w r3, r3, #2 + 8013520: f882 3028 strb.w r3, [r2, #40] ; 0x28 } param->spx = param->steep >> 2; - 80135b8: 68fb ldr r3, [r7, #12] - 80135ba: 6a1b ldr r3, [r3, #32] - 80135bc: 109a asrs r2, r3, #2 - 80135be: 68fb ldr r3, [r7, #12] - 80135c0: 625a str r2, [r3, #36] ; 0x24 + 8013524: 68fb ldr r3, [r7, #12] + 8013526: 6a1b ldr r3, [r3, #32] + 8013528: 109a asrs r2, r3, #2 + 801352a: 68fb ldr r3, [r7, #12] + 801352c: 625a str r2, [r3, #36] ; 0x24 if(param->steep < 0) param->spx = -param->spx; - 80135c2: 68fb ldr r3, [r7, #12] - 80135c4: 6a1b ldr r3, [r3, #32] - 80135c6: 2b00 cmp r3, #0 - 80135c8: da04 bge.n 80135d4 - 80135ca: 68fb ldr r3, [r7, #12] - 80135cc: 6a5b ldr r3, [r3, #36] ; 0x24 - 80135ce: 425a negs r2, r3 - 80135d0: 68fb ldr r3, [r7, #12] - 80135d2: 625a str r2, [r3, #36] ; 0x24 + 801352e: 68fb ldr r3, [r7, #12] + 8013530: 6a1b ldr r3, [r3, #32] + 8013532: 2b00 cmp r3, #0 + 8013534: da04 bge.n 8013540 + 8013536: 68fb ldr r3, [r7, #12] + 8013538: 6a5b ldr r3, [r3, #36] ; 0x24 + 801353a: 425a negs r2, r3 + 801353c: 68fb ldr r3, [r7, #12] + 801353e: 625a str r2, [r3, #36] ; 0x24 } - 80135d4: bf00 nop - 80135d6: 3728 adds r7, #40 ; 0x28 - 80135d8: 46bd mov sp, r7 - 80135da: bd80 pop {r7, pc} - 80135dc: 08013a29 .word 0x08013a29 + 8013540: bf00 nop + 8013542: 3728 adds r7, #40 ; 0x28 + 8013544: 46bd mov sp, r7 + 8013546: bd80 pop {r7, pc} + 8013548: 08013995 .word 0x08013995 -080135e0 : +0801354c : * With `LV_DRAW_MASK_LINE_SIDE_LEFT/RIGHT` and horizontal line all pixels are kept * With `LV_DRAW_MASK_LINE_SIDE_TOP/BOTTOM` and vertical line all pixels are kept */ void lv_draw_mask_line_angle_init(lv_draw_mask_line_param_t * param, lv_coord_t p1x, lv_coord_t py, int16_t angle, lv_draw_mask_line_side_t side) { - 80135e0: b590 push {r4, r7, lr} - 80135e2: b089 sub sp, #36 ; 0x24 - 80135e4: af02 add r7, sp, #8 - 80135e6: 60f8 str r0, [r7, #12] - 80135e8: 4608 mov r0, r1 - 80135ea: 4611 mov r1, r2 - 80135ec: 461a mov r2, r3 - 80135ee: 4603 mov r3, r0 - 80135f0: 817b strh r3, [r7, #10] - 80135f2: 460b mov r3, r1 - 80135f4: 813b strh r3, [r7, #8] - 80135f6: 4613 mov r3, r2 - 80135f8: 80fb strh r3, [r7, #6] + 801354c: b590 push {r4, r7, lr} + 801354e: b089 sub sp, #36 ; 0x24 + 8013550: af02 add r7, sp, #8 + 8013552: 60f8 str r0, [r7, #12] + 8013554: 4608 mov r0, r1 + 8013556: 4611 mov r1, r2 + 8013558: 461a mov r2, r3 + 801355a: 4603 mov r3, r0 + 801355c: 817b strh r3, [r7, #10] + 801355e: 460b mov r3, r1 + 8013560: 813b strh r3, [r7, #8] + 8013562: 4613 mov r3, r2 + 8013564: 80fb strh r3, [r7, #6] /*Find an optimal degree. *lv_mask_line_points_init will swap the points to keep the smaller y in p1 *Theoretically a line with `angle` or `angle+180` is the same only the points are swapped *Find the degree which keeps the origo in place*/ if(angle > 180) angle -= 180; /*> 180 will swap the origo*/ - 80135fa: f9b7 3006 ldrsh.w r3, [r7, #6] - 80135fe: 2bb4 cmp r3, #180 ; 0xb4 - 8013600: dd03 ble.n 801360a - 8013602: 88fb ldrh r3, [r7, #6] - 8013604: 3bb4 subs r3, #180 ; 0xb4 - 8013606: b29b uxth r3, r3 - 8013608: 80fb strh r3, [r7, #6] + 8013566: f9b7 3006 ldrsh.w r3, [r7, #6] + 801356a: 2bb4 cmp r3, #180 ; 0xb4 + 801356c: dd03 ble.n 8013576 + 801356e: 88fb ldrh r3, [r7, #6] + 8013570: 3bb4 subs r3, #180 ; 0xb4 + 8013572: b29b uxth r3, r3 + 8013574: 80fb strh r3, [r7, #6] int32_t p2x; int32_t p2y; p2x = (lv_trigo_sin(angle + 90) >> 5) + p1x; - 801360a: 88fb ldrh r3, [r7, #6] - 801360c: 335a adds r3, #90 ; 0x5a - 801360e: b29b uxth r3, r3 - 8013610: b21b sxth r3, r3 - 8013612: 4618 mov r0, r3 - 8013614: f01e ff5a bl 80324cc - 8013618: 4603 mov r3, r0 - 801361a: 115b asrs r3, r3, #5 - 801361c: b21b sxth r3, r3 - 801361e: 461a mov r2, r3 - 8013620: f9b7 300a ldrsh.w r3, [r7, #10] - 8013624: 4413 add r3, r2 - 8013626: 617b str r3, [r7, #20] + 8013576: 88fb ldrh r3, [r7, #6] + 8013578: 335a adds r3, #90 ; 0x5a + 801357a: b29b uxth r3, r3 + 801357c: b21b sxth r3, r3 + 801357e: 4618 mov r0, r3 + 8013580: f01e ff5a bl 8032438 + 8013584: 4603 mov r3, r0 + 8013586: 115b asrs r3, r3, #5 + 8013588: b21b sxth r3, r3 + 801358a: 461a mov r2, r3 + 801358c: f9b7 300a ldrsh.w r3, [r7, #10] + 8013590: 4413 add r3, r2 + 8013592: 617b str r3, [r7, #20] p2y = (lv_trigo_sin(angle) >> 5) + py; - 8013628: f9b7 3006 ldrsh.w r3, [r7, #6] - 801362c: 4618 mov r0, r3 - 801362e: f01e ff4d bl 80324cc - 8013632: 4603 mov r3, r0 - 8013634: 115b asrs r3, r3, #5 - 8013636: b21b sxth r3, r3 - 8013638: 461a mov r2, r3 - 801363a: f9b7 3008 ldrsh.w r3, [r7, #8] - 801363e: 4413 add r3, r2 - 8013640: 613b str r3, [r7, #16] + 8013594: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013598: 4618 mov r0, r3 + 801359a: f01e ff4d bl 8032438 + 801359e: 4603 mov r3, r0 + 80135a0: 115b asrs r3, r3, #5 + 80135a2: b21b sxth r3, r3 + 80135a4: 461a mov r2, r3 + 80135a6: f9b7 3008 ldrsh.w r3, [r7, #8] + 80135aa: 4413 add r3, r2 + 80135ac: 613b str r3, [r7, #16] lv_draw_mask_line_points_init(param, p1x, py, p2x, p2y, side); - 8013642: 697b ldr r3, [r7, #20] - 8013644: b21c sxth r4, r3 - 8013646: 693b ldr r3, [r7, #16] - 8013648: b21b sxth r3, r3 - 801364a: f9b7 0008 ldrsh.w r0, [r7, #8] - 801364e: f9b7 100a ldrsh.w r1, [r7, #10] - 8013652: f897 2028 ldrb.w r2, [r7, #40] ; 0x28 - 8013656: 9201 str r2, [sp, #4] - 8013658: 9300 str r3, [sp, #0] - 801365a: 4623 mov r3, r4 - 801365c: 4602 mov r2, r0 - 801365e: 68f8 ldr r0, [r7, #12] - 8013660: f7ff fe7c bl 801335c + 80135ae: 697b ldr r3, [r7, #20] + 80135b0: b21c sxth r4, r3 + 80135b2: 693b ldr r3, [r7, #16] + 80135b4: b21b sxth r3, r3 + 80135b6: f9b7 0008 ldrsh.w r0, [r7, #8] + 80135ba: f9b7 100a ldrsh.w r1, [r7, #10] + 80135be: f897 2028 ldrb.w r2, [r7, #40] ; 0x28 + 80135c2: 9201 str r2, [sp, #4] + 80135c4: 9300 str r3, [sp, #0] + 80135c6: 4623 mov r3, r4 + 80135c8: 4602 mov r2, r0 + 80135ca: 68f8 ldr r0, [r7, #12] + 80135cc: f7ff fe7c bl 80132c8 } - 8013664: bf00 nop - 8013666: 371c adds r7, #28 - 8013668: 46bd mov sp, r7 - 801366a: bd90 pop {r4, r7, pc} + 80135d0: bf00 nop + 80135d2: 371c adds r7, #28 + 80135d4: 46bd mov sp, r7 + 80135d6: bd90 pop {r4, r7, pc} -0801366c : +080135d8 : * @param start_angle start angle in degrees. 0 deg on the right, 90 deg, on the bottom * @param end_angle end angle */ void lv_draw_mask_angle_init(lv_draw_mask_angle_param_t * param, lv_coord_t vertex_x, lv_coord_t vertex_y, lv_coord_t start_angle, lv_coord_t end_angle) { - 801366c: b590 push {r4, r7, lr} - 801366e: b089 sub sp, #36 ; 0x24 - 8013670: af02 add r7, sp, #8 - 8013672: 60f8 str r0, [r7, #12] - 8013674: 4608 mov r0, r1 - 8013676: 4611 mov r1, r2 - 8013678: 461a mov r2, r3 - 801367a: 4603 mov r3, r0 - 801367c: 817b strh r3, [r7, #10] - 801367e: 460b mov r3, r1 - 8013680: 813b strh r3, [r7, #8] - 8013682: 4613 mov r3, r2 - 8013684: 80fb strh r3, [r7, #6] + 80135d8: b590 push {r4, r7, lr} + 80135da: b089 sub sp, #36 ; 0x24 + 80135dc: af02 add r7, sp, #8 + 80135de: 60f8 str r0, [r7, #12] + 80135e0: 4608 mov r0, r1 + 80135e2: 4611 mov r1, r2 + 80135e4: 461a mov r2, r3 + 80135e6: 4603 mov r3, r0 + 80135e8: 817b strh r3, [r7, #10] + 80135ea: 460b mov r3, r1 + 80135ec: 813b strh r3, [r7, #8] + 80135ee: 4613 mov r3, r2 + 80135f0: 80fb strh r3, [r7, #6] lv_draw_mask_line_side_t start_side; lv_draw_mask_line_side_t end_side; /*Constrain the input angles*/ if(start_angle < 0) - 8013686: f9b7 3006 ldrsh.w r3, [r7, #6] - 801368a: 2b00 cmp r3, #0 - 801368c: da02 bge.n 8013694 + 80135f2: f9b7 3006 ldrsh.w r3, [r7, #6] + 80135f6: 2b00 cmp r3, #0 + 80135f8: da02 bge.n 8013600 start_angle = 0; - 801368e: 2300 movs r3, #0 - 8013690: 80fb strh r3, [r7, #6] - 8013692: e007 b.n 80136a4 + 80135fa: 2300 movs r3, #0 + 80135fc: 80fb strh r3, [r7, #6] + 80135fe: e007 b.n 8013610 else if(start_angle > 359) - 8013694: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013698: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 801369c: db02 blt.n 80136a4 + 8013600: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013604: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 8013608: db02 blt.n 8013610 start_angle = 359; - 801369e: f240 1367 movw r3, #359 ; 0x167 - 80136a2: 80fb strh r3, [r7, #6] + 801360a: f240 1367 movw r3, #359 ; 0x167 + 801360e: 80fb strh r3, [r7, #6] if(end_angle < 0) - 80136a4: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 - 80136a8: 2b00 cmp r3, #0 - 80136aa: da02 bge.n 80136b2 + 8013610: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 8013614: 2b00 cmp r3, #0 + 8013616: da02 bge.n 801361e end_angle = 0; - 80136ac: 2300 movs r3, #0 - 80136ae: 853b strh r3, [r7, #40] ; 0x28 - 80136b0: e007 b.n 80136c2 + 8013618: 2300 movs r3, #0 + 801361a: 853b strh r3, [r7, #40] ; 0x28 + 801361c: e007 b.n 801362e else if(end_angle > 359) - 80136b2: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 - 80136b6: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 80136ba: db02 blt.n 80136c2 + 801361e: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 8013622: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 8013626: db02 blt.n 801362e end_angle = 359; - 80136bc: f240 1367 movw r3, #359 ; 0x167 - 80136c0: 853b strh r3, [r7, #40] ; 0x28 + 8013628: f240 1367 movw r3, #359 ; 0x167 + 801362c: 853b strh r3, [r7, #40] ; 0x28 if(end_angle < start_angle) { - 80136c2: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 - 80136c6: f9b7 3006 ldrsh.w r3, [r7, #6] - 80136ca: 429a cmp r2, r3 - 80136cc: da0a bge.n 80136e4 + 801362e: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 + 8013632: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013636: 429a cmp r2, r3 + 8013638: da0a bge.n 8013650 param->delta_deg = 360 - start_angle + end_angle; - 80136ce: 8d3a ldrh r2, [r7, #40] ; 0x28 - 80136d0: 88fb ldrh r3, [r7, #6] - 80136d2: 1ad3 subs r3, r2, r3 - 80136d4: b29b uxth r3, r3 - 80136d6: f503 73b4 add.w r3, r3, #360 ; 0x168 - 80136da: b29a uxth r2, r3 - 80136dc: 68fb ldr r3, [r7, #12] - 80136de: f8a3 2068 strh.w r2, [r3, #104] ; 0x68 - 80136e2: e00b b.n 80136fc + 801363a: 8d3a ldrh r2, [r7, #40] ; 0x28 + 801363c: 88fb ldrh r3, [r7, #6] + 801363e: 1ad3 subs r3, r2, r3 + 8013640: b29b uxth r3, r3 + 8013642: f503 73b4 add.w r3, r3, #360 ; 0x168 + 8013646: b29a uxth r2, r3 + 8013648: 68fb ldr r3, [r7, #12] + 801364a: f8a3 2068 strh.w r2, [r3, #104] ; 0x68 + 801364e: e00b b.n 8013668 } else { param->delta_deg = LV_ABS(end_angle - start_angle); - 80136e4: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 - 80136e8: f9b7 3006 ldrsh.w r3, [r7, #6] - 80136ec: 1ad3 subs r3, r2, r3 - 80136ee: 2b00 cmp r3, #0 - 80136f0: bfb8 it lt - 80136f2: 425b neglt r3, r3 - 80136f4: b29a uxth r2, r3 - 80136f6: 68fb ldr r3, [r7, #12] - 80136f8: f8a3 2068 strh.w r2, [r3, #104] ; 0x68 + 8013650: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 + 8013654: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013658: 1ad3 subs r3, r2, r3 + 801365a: 2b00 cmp r3, #0 + 801365c: bfb8 it lt + 801365e: 425b neglt r3, r3 + 8013660: b29a uxth r2, r3 + 8013662: 68fb ldr r3, [r7, #12] + 8013664: f8a3 2068 strh.w r2, [r3, #104] ; 0x68 } param->cfg.start_angle = start_angle; - 80136fc: 68fb ldr r3, [r7, #12] - 80136fe: 88fa ldrh r2, [r7, #6] - 8013700: 819a strh r2, [r3, #12] + 8013668: 68fb ldr r3, [r7, #12] + 801366a: 88fa ldrh r2, [r7, #6] + 801366c: 819a strh r2, [r3, #12] param->cfg.end_angle = end_angle; - 8013702: 68fb ldr r3, [r7, #12] - 8013704: 8d3a ldrh r2, [r7, #40] ; 0x28 - 8013706: 81da strh r2, [r3, #14] + 801366e: 68fb ldr r3, [r7, #12] + 8013670: 8d3a ldrh r2, [r7, #40] ; 0x28 + 8013672: 81da strh r2, [r3, #14] param->cfg.vertex_p.x = vertex_x; - 8013708: 68fb ldr r3, [r7, #12] - 801370a: 897a ldrh r2, [r7, #10] - 801370c: 811a strh r2, [r3, #8] + 8013674: 68fb ldr r3, [r7, #12] + 8013676: 897a ldrh r2, [r7, #10] + 8013678: 811a strh r2, [r3, #8] param->cfg.vertex_p.y = vertex_y; - 801370e: 68fb ldr r3, [r7, #12] - 8013710: 893a ldrh r2, [r7, #8] - 8013712: 815a strh r2, [r3, #10] + 801367a: 68fb ldr r3, [r7, #12] + 801367c: 893a ldrh r2, [r7, #8] + 801367e: 815a strh r2, [r3, #10] param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_angle; - 8013714: 68fb ldr r3, [r7, #12] - 8013716: 4a35 ldr r2, [pc, #212] ; (80137ec ) - 8013718: 601a str r2, [r3, #0] + 8013680: 68fb ldr r3, [r7, #12] + 8013682: 4a35 ldr r2, [pc, #212] ; (8013758 ) + 8013684: 601a str r2, [r3, #0] param->dsc.type = LV_DRAW_MASK_TYPE_ANGLE; - 801371a: 68fb ldr r3, [r7, #12] - 801371c: 2201 movs r2, #1 - 801371e: 711a strb r2, [r3, #4] + 8013686: 68fb ldr r3, [r7, #12] + 8013688: 2201 movs r2, #1 + 801368a: 711a strb r2, [r3, #4] LV_ASSERT_MSG(start_angle >= 0 && start_angle <= 360, "Unexpected start angle"); - 8013720: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013724: 2b00 cmp r3, #0 - 8013726: db04 blt.n 8013732 - 8013728: f9b7 3006 ldrsh.w r3, [r7, #6] - 801372c: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 8013730: dd00 ble.n 8013734 - 8013732: e7fe b.n 8013732 + 801368c: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013690: 2b00 cmp r3, #0 + 8013692: db04 blt.n 801369e + 8013694: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013698: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 801369c: dd00 ble.n 80136a0 + 801369e: e7fe b.n 801369e if(start_angle >= 0 && start_angle < 180) { - 8013734: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013738: 2b00 cmp r3, #0 - 801373a: db06 blt.n 801374a - 801373c: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013740: 2bb3 cmp r3, #179 ; 0xb3 - 8013742: dc02 bgt.n 801374a + 80136a0: f9b7 3006 ldrsh.w r3, [r7, #6] + 80136a4: 2b00 cmp r3, #0 + 80136a6: db06 blt.n 80136b6 + 80136a8: f9b7 3006 ldrsh.w r3, [r7, #6] + 80136ac: 2bb3 cmp r3, #179 ; 0xb3 + 80136ae: dc02 bgt.n 80136b6 start_side = LV_DRAW_MASK_LINE_SIDE_LEFT; - 8013744: 2300 movs r3, #0 - 8013746: 75fb strb r3, [r7, #23] - 8013748: e00d b.n 8013766 + 80136b0: 2300 movs r3, #0 + 80136b2: 75fb strb r3, [r7, #23] + 80136b4: e00d b.n 80136d2 } else if(start_angle >= 180 && start_angle < 360) { - 801374a: f9b7 3006 ldrsh.w r3, [r7, #6] - 801374e: 2bb3 cmp r3, #179 ; 0xb3 - 8013750: dd07 ble.n 8013762 - 8013752: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013756: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 801375a: da02 bge.n 8013762 + 80136b6: f9b7 3006 ldrsh.w r3, [r7, #6] + 80136ba: 2bb3 cmp r3, #179 ; 0xb3 + 80136bc: dd07 ble.n 80136ce + 80136be: f9b7 3006 ldrsh.w r3, [r7, #6] + 80136c2: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 80136c6: da02 bge.n 80136ce start_side = LV_DRAW_MASK_LINE_SIDE_RIGHT; - 801375c: 2301 movs r3, #1 - 801375e: 75fb strb r3, [r7, #23] - 8013760: e001 b.n 8013766 + 80136c8: 2301 movs r3, #1 + 80136ca: 75fb strb r3, [r7, #23] + 80136cc: e001 b.n 80136d2 } else start_side = LV_DRAW_MASK_LINE_SIDE_RIGHT; /*silence compiler*/ - 8013762: 2301 movs r3, #1 - 8013764: 75fb strb r3, [r7, #23] + 80136ce: 2301 movs r3, #1 + 80136d0: 75fb strb r3, [r7, #23] LV_ASSERT_MSG(end_angle >= 0 && start_angle <= 360, "Unexpected end angle"); - 8013766: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 - 801376a: 2b00 cmp r3, #0 - 801376c: db04 blt.n 8013778 - 801376e: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013772: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 8013776: dd00 ble.n 801377a - 8013778: e7fe b.n 8013778 + 80136d2: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 80136d6: 2b00 cmp r3, #0 + 80136d8: db04 blt.n 80136e4 + 80136da: f9b7 3006 ldrsh.w r3, [r7, #6] + 80136de: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 80136e2: dd00 ble.n 80136e6 + 80136e4: e7fe b.n 80136e4 if(end_angle >= 0 && end_angle < 180) { - 801377a: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 - 801377e: 2b00 cmp r3, #0 - 8013780: db06 blt.n 8013790 - 8013782: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 - 8013786: 2bb3 cmp r3, #179 ; 0xb3 - 8013788: dc02 bgt.n 8013790 + 80136e6: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 80136ea: 2b00 cmp r3, #0 + 80136ec: db06 blt.n 80136fc + 80136ee: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 80136f2: 2bb3 cmp r3, #179 ; 0xb3 + 80136f4: dc02 bgt.n 80136fc end_side = LV_DRAW_MASK_LINE_SIDE_RIGHT; - 801378a: 2301 movs r3, #1 - 801378c: 75bb strb r3, [r7, #22] - 801378e: e00d b.n 80137ac + 80136f6: 2301 movs r3, #1 + 80136f8: 75bb strb r3, [r7, #22] + 80136fa: e00d b.n 8013718 } else if(end_angle >= 180 && end_angle < 360) { - 8013790: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 - 8013794: 2bb3 cmp r3, #179 ; 0xb3 - 8013796: dd07 ble.n 80137a8 - 8013798: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 - 801379c: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 80137a0: da02 bge.n 80137a8 + 80136fc: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 8013700: 2bb3 cmp r3, #179 ; 0xb3 + 8013702: dd07 ble.n 8013714 + 8013704: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 8013708: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 801370c: da02 bge.n 8013714 end_side = LV_DRAW_MASK_LINE_SIDE_LEFT; - 80137a2: 2300 movs r3, #0 - 80137a4: 75bb strb r3, [r7, #22] - 80137a6: e001 b.n 80137ac + 801370e: 2300 movs r3, #0 + 8013710: 75bb strb r3, [r7, #22] + 8013712: e001 b.n 8013718 } else end_side = LV_DRAW_MASK_LINE_SIDE_RIGHT; /*silence compiler*/ - 80137a8: 2301 movs r3, #1 - 80137aa: 75bb strb r3, [r7, #22] + 8013714: 2301 movs r3, #1 + 8013716: 75bb strb r3, [r7, #22] lv_draw_mask_line_angle_init(¶m->start_line, vertex_x, vertex_y, start_angle, start_side); - 80137ac: 68fb ldr r3, [r7, #12] - 80137ae: f103 0010 add.w r0, r3, #16 - 80137b2: f9b7 4006 ldrsh.w r4, [r7, #6] - 80137b6: f9b7 2008 ldrsh.w r2, [r7, #8] - 80137ba: f9b7 100a ldrsh.w r1, [r7, #10] - 80137be: 7dfb ldrb r3, [r7, #23] - 80137c0: 9300 str r3, [sp, #0] - 80137c2: 4623 mov r3, r4 - 80137c4: f7ff ff0c bl 80135e0 + 8013718: 68fb ldr r3, [r7, #12] + 801371a: f103 0010 add.w r0, r3, #16 + 801371e: f9b7 4006 ldrsh.w r4, [r7, #6] + 8013722: f9b7 2008 ldrsh.w r2, [r7, #8] + 8013726: f9b7 100a ldrsh.w r1, [r7, #10] + 801372a: 7dfb ldrb r3, [r7, #23] + 801372c: 9300 str r3, [sp, #0] + 801372e: 4623 mov r3, r4 + 8013730: f7ff ff0c bl 801354c lv_draw_mask_line_angle_init(¶m->end_line, vertex_x, vertex_y, end_angle, end_side); - 80137c8: 68fb ldr r3, [r7, #12] - 80137ca: f103 003c add.w r0, r3, #60 ; 0x3c - 80137ce: f9b7 4028 ldrsh.w r4, [r7, #40] ; 0x28 - 80137d2: f9b7 2008 ldrsh.w r2, [r7, #8] - 80137d6: f9b7 100a ldrsh.w r1, [r7, #10] - 80137da: 7dbb ldrb r3, [r7, #22] - 80137dc: 9300 str r3, [sp, #0] - 80137de: 4623 mov r3, r4 - 80137e0: f7ff fefe bl 80135e0 + 8013734: 68fb ldr r3, [r7, #12] + 8013736: f103 003c add.w r0, r3, #60 ; 0x3c + 801373a: f9b7 4028 ldrsh.w r4, [r7, #40] ; 0x28 + 801373e: f9b7 2008 ldrsh.w r2, [r7, #8] + 8013742: f9b7 100a ldrsh.w r1, [r7, #10] + 8013746: 7dbb ldrb r3, [r7, #22] + 8013748: 9300 str r3, [sp, #0] + 801374a: 4623 mov r3, r4 + 801374c: f7ff fefe bl 801354c } - 80137e4: bf00 nop - 80137e6: 371c adds r7, #28 - 80137e8: 46bd mov sp, r7 - 80137ea: bd90 pop {r4, r7, pc} - 80137ec: 080143a9 .word 0x080143a9 + 8013750: bf00 nop + 8013752: 371c adds r7, #28 + 8013754: 46bd mov sp, r7 + 8013756: bd90 pop {r4, r7, pc} + 8013758: 08014315 .word 0x08014315 -080137f0 : +0801375c : * @param rect coordinates of the rectangle to affect (absolute coordinates) * @param radius radius of the rectangle * @param inv true: keep the pixels inside the rectangle; keep the pixels outside of the rectangle */ void lv_draw_mask_radius_init(lv_draw_mask_radius_param_t * param, const lv_area_t * rect, lv_coord_t radius, bool inv) { - 80137f0: b580 push {r7, lr} - 80137f2: b088 sub sp, #32 - 80137f4: af00 add r7, sp, #0 - 80137f6: 60f8 str r0, [r7, #12] - 80137f8: 60b9 str r1, [r7, #8] - 80137fa: 4611 mov r1, r2 - 80137fc: 461a mov r2, r3 - 80137fe: 460b mov r3, r1 - 8013800: 80fb strh r3, [r7, #6] - 8013802: 4613 mov r3, r2 - 8013804: 717b strb r3, [r7, #5] + 801375c: b580 push {r7, lr} + 801375e: b088 sub sp, #32 + 8013760: af00 add r7, sp, #0 + 8013762: 60f8 str r0, [r7, #12] + 8013764: 60b9 str r1, [r7, #8] + 8013766: 4611 mov r1, r2 + 8013768: 461a mov r2, r3 + 801376a: 460b mov r3, r1 + 801376c: 80fb strh r3, [r7, #6] + 801376e: 4613 mov r3, r2 + 8013770: 717b strb r3, [r7, #5] lv_coord_t w = lv_area_get_width(rect); - 8013806: 68b8 ldr r0, [r7, #8] - 8013808: f7ff fbef bl 8012fea - 801380c: 4603 mov r3, r0 - 801380e: 82fb strh r3, [r7, #22] + 8013772: 68b8 ldr r0, [r7, #8] + 8013774: f7ff fbef bl 8012f56 + 8013778: 4603 mov r3, r0 + 801377a: 82fb strh r3, [r7, #22] lv_coord_t h = lv_area_get_height(rect); - 8013810: 68b8 ldr r0, [r7, #8] - 8013812: f7ff fc00 bl 8013016 - 8013816: 4603 mov r3, r0 - 8013818: 82bb strh r3, [r7, #20] + 801377c: 68b8 ldr r0, [r7, #8] + 801377e: f7ff fc00 bl 8012f82 + 8013782: 4603 mov r3, r0 + 8013784: 82bb strh r3, [r7, #20] int32_t short_side = LV_MIN(w, h); - 801381a: f9b7 2014 ldrsh.w r2, [r7, #20] - 801381e: f9b7 3016 ldrsh.w r3, [r7, #22] - 8013822: 4293 cmp r3, r2 - 8013824: bfa8 it ge - 8013826: 4613 movge r3, r2 - 8013828: b21b sxth r3, r3 - 801382a: 613b str r3, [r7, #16] + 8013786: f9b7 2014 ldrsh.w r2, [r7, #20] + 801378a: f9b7 3016 ldrsh.w r3, [r7, #22] + 801378e: 4293 cmp r3, r2 + 8013790: bfa8 it ge + 8013792: 4613 movge r3, r2 + 8013794: b21b sxth r3, r3 + 8013796: 613b str r3, [r7, #16] if(radius > short_side >> 1) radius = short_side >> 1; - 801382c: f9b7 2006 ldrsh.w r2, [r7, #6] - 8013830: 693b ldr r3, [r7, #16] - 8013832: 105b asrs r3, r3, #1 - 8013834: 429a cmp r2, r3 - 8013836: dd02 ble.n 801383e - 8013838: 693b ldr r3, [r7, #16] - 801383a: 105b asrs r3, r3, #1 - 801383c: 80fb strh r3, [r7, #6] + 8013798: f9b7 2006 ldrsh.w r2, [r7, #6] + 801379c: 693b ldr r3, [r7, #16] + 801379e: 105b asrs r3, r3, #1 + 80137a0: 429a cmp r2, r3 + 80137a2: dd02 ble.n 80137aa + 80137a4: 693b ldr r3, [r7, #16] + 80137a6: 105b asrs r3, r3, #1 + 80137a8: 80fb strh r3, [r7, #6] if(radius < 0) radius = 0; - 801383e: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013842: 2b00 cmp r3, #0 - 8013844: da01 bge.n 801384a - 8013846: 2300 movs r3, #0 - 8013848: 80fb strh r3, [r7, #6] + 80137aa: f9b7 3006 ldrsh.w r3, [r7, #6] + 80137ae: 2b00 cmp r3, #0 + 80137b0: da01 bge.n 80137b6 + 80137b2: 2300 movs r3, #0 + 80137b4: 80fb strh r3, [r7, #6] lv_area_copy(¶m->cfg.rect, rect); - 801384a: 68fb ldr r3, [r7, #12] - 801384c: 3308 adds r3, #8 - 801384e: 68b9 ldr r1, [r7, #8] - 8013850: 4618 mov r0, r3 - 8013852: f7ff fbac bl 8012fae + 80137b6: 68fb ldr r3, [r7, #12] + 80137b8: 3308 adds r3, #8 + 80137ba: 68b9 ldr r1, [r7, #8] + 80137bc: 4618 mov r0, r3 + 80137be: f7ff fbac bl 8012f1a param->cfg.radius = radius; - 8013856: 68fb ldr r3, [r7, #12] - 8013858: 88fa ldrh r2, [r7, #6] - 801385a: 821a strh r2, [r3, #16] + 80137c2: 68fb ldr r3, [r7, #12] + 80137c4: 88fa ldrh r2, [r7, #6] + 80137c6: 821a strh r2, [r3, #16] param->cfg.outer = inv ? 1 : 0; - 801385c: 7979 ldrb r1, [r7, #5] - 801385e: 68fa ldr r2, [r7, #12] - 8013860: 7c93 ldrb r3, [r2, #18] - 8013862: f361 0300 bfi r3, r1, #0, #1 - 8013866: 7493 strb r3, [r2, #18] + 80137c8: 7979 ldrb r1, [r7, #5] + 80137ca: 68fa ldr r2, [r7, #12] + 80137cc: 7c93 ldrb r3, [r2, #18] + 80137ce: f361 0300 bfi r3, r1, #0, #1 + 80137d2: 7493 strb r3, [r2, #18] param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_radius; - 8013868: 68fb ldr r3, [r7, #12] - 801386a: 4a6d ldr r2, [pc, #436] ; (8013a20 ) - 801386c: 601a str r2, [r3, #0] + 80137d4: 68fb ldr r3, [r7, #12] + 80137d6: 4a6d ldr r2, [pc, #436] ; (801398c ) + 80137d8: 601a str r2, [r3, #0] param->dsc.type = LV_DRAW_MASK_TYPE_RADIUS; - 801386e: 68fb ldr r3, [r7, #12] - 8013870: 2202 movs r2, #2 - 8013872: 711a strb r2, [r3, #4] + 80137da: 68fb ldr r3, [r7, #12] + 80137dc: 2202 movs r2, #2 + 80137de: 711a strb r2, [r3, #4] if(radius == 0) { - 8013874: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013878: 2b00 cmp r3, #0 - 801387a: d103 bne.n 8013884 + 80137e0: f9b7 3006 ldrsh.w r3, [r7, #6] + 80137e4: 2b00 cmp r3, #0 + 80137e6: d103 bne.n 80137f0 param->circle = NULL; - 801387c: 68fb ldr r3, [r7, #12] - 801387e: 2200 movs r2, #0 - 8013880: 615a str r2, [r3, #20] + 80137e8: 68fb ldr r3, [r7, #12] + 80137ea: 2200 movs r2, #0 + 80137ec: 615a str r2, [r3, #20] return; - 8013882: e0c9 b.n 8013a18 + 80137ee: e0c9 b.n 8013984 } uint32_t i; /*Try to reuse a circle cache entry*/ for(i = 0; i < LV_CIRCLE_CACHE_SIZE; i++) { - 8013884: 2300 movs r3, #0 - 8013886: 61fb str r3, [r7, #28] - 8013888: e050 b.n 801392c + 80137f0: 2300 movs r3, #0 + 80137f2: 61fb str r3, [r7, #28] + 80137f4: e050 b.n 8013898 if(LV_GC_ROOT(_lv_circle_cache[i]).radius == radius) { - 801388a: 4966 ldr r1, [pc, #408] ; (8013a24 ) - 801388c: 69fa ldr r2, [r7, #28] - 801388e: 4613 mov r3, r2 - 8013890: 00db lsls r3, r3, #3 - 8013892: 1a9b subs r3, r3, r2 - 8013894: 009b lsls r3, r3, #2 - 8013896: 440b add r3, r1 - 8013898: 3318 adds r3, #24 - 801389a: f9b3 3000 ldrsh.w r3, [r3] - 801389e: f9b7 2006 ldrsh.w r2, [r7, #6] - 80138a2: 429a cmp r2, r3 - 80138a4: d13f bne.n 8013926 + 80137f6: 4966 ldr r1, [pc, #408] ; (8013990 ) + 80137f8: 69fa ldr r2, [r7, #28] + 80137fa: 4613 mov r3, r2 + 80137fc: 00db lsls r3, r3, #3 + 80137fe: 1a9b subs r3, r3, r2 + 8013800: 009b lsls r3, r3, #2 + 8013802: 440b add r3, r1 + 8013804: 3318 adds r3, #24 + 8013806: f9b3 3000 ldrsh.w r3, [r3] + 801380a: f9b7 2006 ldrsh.w r2, [r7, #6] + 801380e: 429a cmp r2, r3 + 8013810: d13f bne.n 8013892 LV_GC_ROOT(_lv_circle_cache[i]).used_cnt++; - 80138a6: 495f ldr r1, [pc, #380] ; (8013a24 ) - 80138a8: 69fa ldr r2, [r7, #28] - 80138aa: 4613 mov r3, r2 - 80138ac: 00db lsls r3, r3, #3 - 80138ae: 1a9b subs r3, r3, r2 - 80138b0: 009b lsls r3, r3, #2 - 80138b2: 440b add r3, r1 - 80138b4: 3314 adds r3, #20 - 80138b6: 681b ldr r3, [r3, #0] - 80138b8: 1c59 adds r1, r3, #1 - 80138ba: 485a ldr r0, [pc, #360] ; (8013a24 ) - 80138bc: 69fa ldr r2, [r7, #28] - 80138be: 4613 mov r3, r2 - 80138c0: 00db lsls r3, r3, #3 - 80138c2: 1a9b subs r3, r3, r2 - 80138c4: 009b lsls r3, r3, #2 - 80138c6: 4403 add r3, r0 - 80138c8: 3314 adds r3, #20 - 80138ca: 6019 str r1, [r3, #0] + 8013812: 495f ldr r1, [pc, #380] ; (8013990 ) + 8013814: 69fa ldr r2, [r7, #28] + 8013816: 4613 mov r3, r2 + 8013818: 00db lsls r3, r3, #3 + 801381a: 1a9b subs r3, r3, r2 + 801381c: 009b lsls r3, r3, #2 + 801381e: 440b add r3, r1 + 8013820: 3314 adds r3, #20 + 8013822: 681b ldr r3, [r3, #0] + 8013824: 1c59 adds r1, r3, #1 + 8013826: 485a ldr r0, [pc, #360] ; (8013990 ) + 8013828: 69fa ldr r2, [r7, #28] + 801382a: 4613 mov r3, r2 + 801382c: 00db lsls r3, r3, #3 + 801382e: 1a9b subs r3, r3, r2 + 8013830: 009b lsls r3, r3, #2 + 8013832: 4403 add r3, r0 + 8013834: 3314 adds r3, #20 + 8013836: 6019 str r1, [r3, #0] CIRCLE_CACHE_AGING(LV_GC_ROOT(_lv_circle_cache[i]).life, radius); - 80138cc: 4955 ldr r1, [pc, #340] ; (8013a24 ) - 80138ce: 69fa ldr r2, [r7, #28] - 80138d0: 4613 mov r3, r2 - 80138d2: 00db lsls r3, r3, #3 - 80138d4: 1a9b subs r3, r3, r2 - 80138d6: 009b lsls r3, r3, #2 - 80138d8: 440b add r3, r1 - 80138da: 3310 adds r3, #16 - 80138dc: 681b ldr r3, [r3, #0] - 80138de: f9b7 2006 ldrsh.w r2, [r7, #6] - 80138e2: 2a0f cmp r2, #15 - 80138e4: dd04 ble.n 80138f0 - 80138e6: f9b7 2006 ldrsh.w r2, [r7, #6] - 80138ea: 1112 asrs r2, r2, #4 - 80138ec: b212 sxth r2, r2 - 80138ee: e000 b.n 80138f2 - 80138f0: 2201 movs r2, #1 - 80138f2: 4413 add r3, r2 - 80138f4: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - 80138f8: bfa8 it ge - 80138fa: f44f 737a movge.w r3, #1000 ; 0x3e8 - 80138fe: 4619 mov r1, r3 - 8013900: 4848 ldr r0, [pc, #288] ; (8013a24 ) - 8013902: 69fa ldr r2, [r7, #28] - 8013904: 4613 mov r3, r2 - 8013906: 00db lsls r3, r3, #3 - 8013908: 1a9b subs r3, r3, r2 - 801390a: 009b lsls r3, r3, #2 - 801390c: 4403 add r3, r0 - 801390e: 3310 adds r3, #16 - 8013910: 6019 str r1, [r3, #0] + 8013838: 4955 ldr r1, [pc, #340] ; (8013990 ) + 801383a: 69fa ldr r2, [r7, #28] + 801383c: 4613 mov r3, r2 + 801383e: 00db lsls r3, r3, #3 + 8013840: 1a9b subs r3, r3, r2 + 8013842: 009b lsls r3, r3, #2 + 8013844: 440b add r3, r1 + 8013846: 3310 adds r3, #16 + 8013848: 681b ldr r3, [r3, #0] + 801384a: f9b7 2006 ldrsh.w r2, [r7, #6] + 801384e: 2a0f cmp r2, #15 + 8013850: dd04 ble.n 801385c + 8013852: f9b7 2006 ldrsh.w r2, [r7, #6] + 8013856: 1112 asrs r2, r2, #4 + 8013858: b212 sxth r2, r2 + 801385a: e000 b.n 801385e + 801385c: 2201 movs r2, #1 + 801385e: 4413 add r3, r2 + 8013860: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 + 8013864: bfa8 it ge + 8013866: f44f 737a movge.w r3, #1000 ; 0x3e8 + 801386a: 4619 mov r1, r3 + 801386c: 4848 ldr r0, [pc, #288] ; (8013990 ) + 801386e: 69fa ldr r2, [r7, #28] + 8013870: 4613 mov r3, r2 + 8013872: 00db lsls r3, r3, #3 + 8013874: 1a9b subs r3, r3, r2 + 8013876: 009b lsls r3, r3, #2 + 8013878: 4403 add r3, r0 + 801387a: 3310 adds r3, #16 + 801387c: 6019 str r1, [r3, #0] param->circle = &LV_GC_ROOT(_lv_circle_cache[i]); - 8013912: 69fa ldr r2, [r7, #28] - 8013914: 4613 mov r3, r2 - 8013916: 00db lsls r3, r3, #3 - 8013918: 1a9b subs r3, r3, r2 - 801391a: 009b lsls r3, r3, #2 - 801391c: 4a41 ldr r2, [pc, #260] ; (8013a24 ) - 801391e: 441a add r2, r3 - 8013920: 68fb ldr r3, [r7, #12] - 8013922: 615a str r2, [r3, #20] + 801387e: 69fa ldr r2, [r7, #28] + 8013880: 4613 mov r3, r2 + 8013882: 00db lsls r3, r3, #3 + 8013884: 1a9b subs r3, r3, r2 + 8013886: 009b lsls r3, r3, #2 + 8013888: 4a41 ldr r2, [pc, #260] ; (8013990 ) + 801388a: 441a add r2, r3 + 801388c: 68fb ldr r3, [r7, #12] + 801388e: 615a str r2, [r3, #20] return; - 8013924: e078 b.n 8013a18 + 8013890: e078 b.n 8013984 for(i = 0; i < LV_CIRCLE_CACHE_SIZE; i++) { - 8013926: 69fb ldr r3, [r7, #28] - 8013928: 3301 adds r3, #1 - 801392a: 61fb str r3, [r7, #28] - 801392c: 69fb ldr r3, [r7, #28] - 801392e: 2b03 cmp r3, #3 - 8013930: d9ab bls.n 801388a + 8013892: 69fb ldr r3, [r7, #28] + 8013894: 3301 adds r3, #1 + 8013896: 61fb str r3, [r7, #28] + 8013898: 69fb ldr r3, [r7, #28] + 801389a: 2b03 cmp r3, #3 + 801389c: d9ab bls.n 80137f6 } } /*If not found find a free entry with lowest life*/ _lv_draw_mask_radius_circle_dsc_t * entry = NULL; - 8013932: 2300 movs r3, #0 - 8013934: 61bb str r3, [r7, #24] + 801389e: 2300 movs r3, #0 + 80138a0: 61bb str r3, [r7, #24] for(i = 0; i < LV_CIRCLE_CACHE_SIZE; i++) { - 8013936: 2300 movs r3, #0 - 8013938: 61fb str r3, [r7, #28] - 801393a: e02e b.n 801399a + 80138a2: 2300 movs r3, #0 + 80138a4: 61fb str r3, [r7, #28] + 80138a6: e02e b.n 8013906 if(LV_GC_ROOT(_lv_circle_cache[i]).used_cnt == 0) { - 801393c: 4939 ldr r1, [pc, #228] ; (8013a24 ) - 801393e: 69fa ldr r2, [r7, #28] - 8013940: 4613 mov r3, r2 - 8013942: 00db lsls r3, r3, #3 - 8013944: 1a9b subs r3, r3, r2 - 8013946: 009b lsls r3, r3, #2 - 8013948: 440b add r3, r1 - 801394a: 3314 adds r3, #20 - 801394c: 681b ldr r3, [r3, #0] - 801394e: 2b00 cmp r3, #0 - 8013950: d120 bne.n 8013994 + 80138a8: 4939 ldr r1, [pc, #228] ; (8013990 ) + 80138aa: 69fa ldr r2, [r7, #28] + 80138ac: 4613 mov r3, r2 + 80138ae: 00db lsls r3, r3, #3 + 80138b0: 1a9b subs r3, r3, r2 + 80138b2: 009b lsls r3, r3, #2 + 80138b4: 440b add r3, r1 + 80138b6: 3314 adds r3, #20 + 80138b8: 681b ldr r3, [r3, #0] + 80138ba: 2b00 cmp r3, #0 + 80138bc: d120 bne.n 8013900 if(!entry) entry = &LV_GC_ROOT(_lv_circle_cache[i]); - 8013952: 69bb ldr r3, [r7, #24] - 8013954: 2b00 cmp r3, #0 - 8013956: d108 bne.n 801396a - 8013958: 69fa ldr r2, [r7, #28] - 801395a: 4613 mov r3, r2 - 801395c: 00db lsls r3, r3, #3 - 801395e: 1a9b subs r3, r3, r2 - 8013960: 009b lsls r3, r3, #2 - 8013962: 4a30 ldr r2, [pc, #192] ; (8013a24 ) - 8013964: 4413 add r3, r2 - 8013966: 61bb str r3, [r7, #24] - 8013968: e014 b.n 8013994 + 80138be: 69bb ldr r3, [r7, #24] + 80138c0: 2b00 cmp r3, #0 + 80138c2: d108 bne.n 80138d6 + 80138c4: 69fa ldr r2, [r7, #28] + 80138c6: 4613 mov r3, r2 + 80138c8: 00db lsls r3, r3, #3 + 80138ca: 1a9b subs r3, r3, r2 + 80138cc: 009b lsls r3, r3, #2 + 80138ce: 4a30 ldr r2, [pc, #192] ; (8013990 ) + 80138d0: 4413 add r3, r2 + 80138d2: 61bb str r3, [r7, #24] + 80138d4: e014 b.n 8013900 else if(LV_GC_ROOT(_lv_circle_cache[i]).life < entry->life) entry = &LV_GC_ROOT(_lv_circle_cache[i]); - 801396a: 492e ldr r1, [pc, #184] ; (8013a24 ) - 801396c: 69fa ldr r2, [r7, #28] - 801396e: 4613 mov r3, r2 - 8013970: 00db lsls r3, r3, #3 - 8013972: 1a9b subs r3, r3, r2 - 8013974: 009b lsls r3, r3, #2 - 8013976: 440b add r3, r1 - 8013978: 3310 adds r3, #16 - 801397a: 681a ldr r2, [r3, #0] - 801397c: 69bb ldr r3, [r7, #24] - 801397e: 691b ldr r3, [r3, #16] - 8013980: 429a cmp r2, r3 - 8013982: da07 bge.n 8013994 - 8013984: 69fa ldr r2, [r7, #28] - 8013986: 4613 mov r3, r2 - 8013988: 00db lsls r3, r3, #3 - 801398a: 1a9b subs r3, r3, r2 - 801398c: 009b lsls r3, r3, #2 - 801398e: 4a25 ldr r2, [pc, #148] ; (8013a24 ) - 8013990: 4413 add r3, r2 - 8013992: 61bb str r3, [r7, #24] + 80138d6: 492e ldr r1, [pc, #184] ; (8013990 ) + 80138d8: 69fa ldr r2, [r7, #28] + 80138da: 4613 mov r3, r2 + 80138dc: 00db lsls r3, r3, #3 + 80138de: 1a9b subs r3, r3, r2 + 80138e0: 009b lsls r3, r3, #2 + 80138e2: 440b add r3, r1 + 80138e4: 3310 adds r3, #16 + 80138e6: 681a ldr r2, [r3, #0] + 80138e8: 69bb ldr r3, [r7, #24] + 80138ea: 691b ldr r3, [r3, #16] + 80138ec: 429a cmp r2, r3 + 80138ee: da07 bge.n 8013900 + 80138f0: 69fa ldr r2, [r7, #28] + 80138f2: 4613 mov r3, r2 + 80138f4: 00db lsls r3, r3, #3 + 80138f6: 1a9b subs r3, r3, r2 + 80138f8: 009b lsls r3, r3, #2 + 80138fa: 4a25 ldr r2, [pc, #148] ; (8013990 ) + 80138fc: 4413 add r3, r2 + 80138fe: 61bb str r3, [r7, #24] for(i = 0; i < LV_CIRCLE_CACHE_SIZE; i++) { - 8013994: 69fb ldr r3, [r7, #28] - 8013996: 3301 adds r3, #1 - 8013998: 61fb str r3, [r7, #28] - 801399a: 69fb ldr r3, [r7, #28] - 801399c: 2b03 cmp r3, #3 - 801399e: d9cd bls.n 801393c + 8013900: 69fb ldr r3, [r7, #28] + 8013902: 3301 adds r3, #1 + 8013904: 61fb str r3, [r7, #28] + 8013906: 69fb ldr r3, [r7, #28] + 8013908: 2b03 cmp r3, #3 + 801390a: d9cd bls.n 80138a8 } } if(!entry) { - 80139a0: 69bb ldr r3, [r7, #24] - 80139a2: 2b00 cmp r3, #0 - 80139a4: d110 bne.n 80139c8 + 801390c: 69bb ldr r3, [r7, #24] + 801390e: 2b00 cmp r3, #0 + 8013910: d110 bne.n 8013934 entry = lv_mem_alloc(sizeof(_lv_draw_mask_radius_circle_dsc_t)); - 80139a6: 201c movs r0, #28 - 80139a8: f01e ff76 bl 8032898 - 80139ac: 61b8 str r0, [r7, #24] + 8013912: 201c movs r0, #28 + 8013914: f01e ff76 bl 8032804 + 8013918: 61b8 str r0, [r7, #24] LV_ASSERT_MALLOC(entry); - 80139ae: 69bb ldr r3, [r7, #24] - 80139b0: 2b00 cmp r3, #0 - 80139b2: d100 bne.n 80139b6 - 80139b4: e7fe b.n 80139b4 + 801391a: 69bb ldr r3, [r7, #24] + 801391c: 2b00 cmp r3, #0 + 801391e: d100 bne.n 8013922 + 8013920: e7fe b.n 8013920 lv_memset_00(entry, sizeof(_lv_draw_mask_radius_circle_dsc_t)); - 80139b6: 211c movs r1, #28 - 80139b8: 69b8 ldr r0, [r7, #24] - 80139ba: f01f fbc9 bl 8033150 + 8013922: 211c movs r1, #28 + 8013924: 69b8 ldr r0, [r7, #24] + 8013926: f01f fbc9 bl 80330bc entry->life = -1; - 80139be: 69bb ldr r3, [r7, #24] - 80139c0: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 80139c4: 611a str r2, [r3, #16] - 80139c6: e01c b.n 8013a02 + 801392a: 69bb ldr r3, [r7, #24] + 801392c: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 8013930: 611a str r2, [r3, #16] + 8013932: e01c b.n 801396e } else { entry->used_cnt++; - 80139c8: 69bb ldr r3, [r7, #24] - 80139ca: 695b ldr r3, [r3, #20] - 80139cc: 1c5a adds r2, r3, #1 - 80139ce: 69bb ldr r3, [r7, #24] - 80139d0: 615a str r2, [r3, #20] + 8013934: 69bb ldr r3, [r7, #24] + 8013936: 695b ldr r3, [r3, #20] + 8013938: 1c5a adds r2, r3, #1 + 801393a: 69bb ldr r3, [r7, #24] + 801393c: 615a str r2, [r3, #20] entry->life = 0; - 80139d2: 69bb ldr r3, [r7, #24] - 80139d4: 2200 movs r2, #0 - 80139d6: 611a str r2, [r3, #16] + 801393e: 69bb ldr r3, [r7, #24] + 8013940: 2200 movs r2, #0 + 8013942: 611a str r2, [r3, #16] CIRCLE_CACHE_AGING(entry->life, radius); - 80139d8: 69bb ldr r3, [r7, #24] - 80139da: 691b ldr r3, [r3, #16] - 80139dc: f9b7 2006 ldrsh.w r2, [r7, #6] - 80139e0: 2a0f cmp r2, #15 - 80139e2: dd04 ble.n 80139ee - 80139e4: f9b7 2006 ldrsh.w r2, [r7, #6] - 80139e8: 1112 asrs r2, r2, #4 - 80139ea: b212 sxth r2, r2 - 80139ec: e000 b.n 80139f0 - 80139ee: 2201 movs r2, #1 - 80139f0: 4413 add r3, r2 - 80139f2: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - 80139f6: bfa8 it ge - 80139f8: f44f 737a movge.w r3, #1000 ; 0x3e8 - 80139fc: 461a mov r2, r3 - 80139fe: 69bb ldr r3, [r7, #24] - 8013a00: 611a str r2, [r3, #16] + 8013944: 69bb ldr r3, [r7, #24] + 8013946: 691b ldr r3, [r3, #16] + 8013948: f9b7 2006 ldrsh.w r2, [r7, #6] + 801394c: 2a0f cmp r2, #15 + 801394e: dd04 ble.n 801395a + 8013950: f9b7 2006 ldrsh.w r2, [r7, #6] + 8013954: 1112 asrs r2, r2, #4 + 8013956: b212 sxth r2, r2 + 8013958: e000 b.n 801395c + 801395a: 2201 movs r2, #1 + 801395c: 4413 add r3, r2 + 801395e: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 + 8013962: bfa8 it ge + 8013964: f44f 737a movge.w r3, #1000 ; 0x3e8 + 8013968: 461a mov r2, r3 + 801396a: 69bb ldr r3, [r7, #24] + 801396c: 611a str r2, [r3, #16] } param->circle = entry; - 8013a02: 68fb ldr r3, [r7, #12] - 8013a04: 69ba ldr r2, [r7, #24] - 8013a06: 615a str r2, [r3, #20] + 801396e: 68fb ldr r3, [r7, #12] + 8013970: 69ba ldr r2, [r7, #24] + 8013972: 615a str r2, [r3, #20] circ_calc_aa4(param->circle, radius); - 8013a08: 68fb ldr r3, [r7, #12] - 8013a0a: 695b ldr r3, [r3, #20] - 8013a0c: f9b7 2006 ldrsh.w r2, [r7, #6] - 8013a10: 4611 mov r1, r2 - 8013a12: 4618 mov r0, r3 - 8013a14: f001 fae3 bl 8014fde + 8013974: 68fb ldr r3, [r7, #12] + 8013976: 695b ldr r3, [r3, #20] + 8013978: f9b7 2006 ldrsh.w r2, [r7, #6] + 801397c: 4611 mov r1, r2 + 801397e: 4618 mov r0, r3 + 8013980: f001 fae3 bl 8014f4a } - 8013a18: 3720 adds r7, #32 - 8013a1a: 46bd mov sp, r7 - 8013a1c: bd80 pop {r7, pc} - 8013a1e: bf00 nop - 8013a20: 080149a9 .word 0x080149a9 - 8013a24: 20001e18 .word 0x20001e18 + 8013984: 3720 adds r7, #32 + 8013986: 46bd mov sp, r7 + 8013988: bd80 pop {r7, pc} + 801398a: bf00 nop + 801398c: 08014915 .word 0x08014915 + 8013990: 20001e18 .word 0x20001e18 -08013a28 : +08013994 : **********************/ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_line(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, lv_coord_t len, lv_draw_mask_line_param_t * p) { - 8013a28: b580 push {r7, lr} - 8013a2a: b08a sub sp, #40 ; 0x28 - 8013a2c: af02 add r7, sp, #8 - 8013a2e: 60f8 str r0, [r7, #12] - 8013a30: 4608 mov r0, r1 - 8013a32: 4611 mov r1, r2 - 8013a34: 461a mov r2, r3 - 8013a36: 4603 mov r3, r0 - 8013a38: 817b strh r3, [r7, #10] - 8013a3a: 460b mov r3, r1 - 8013a3c: 813b strh r3, [r7, #8] - 8013a3e: 4613 mov r3, r2 - 8013a40: 80fb strh r3, [r7, #6] + 8013994: b580 push {r7, lr} + 8013996: b08a sub sp, #40 ; 0x28 + 8013998: af02 add r7, sp, #8 + 801399a: 60f8 str r0, [r7, #12] + 801399c: 4608 mov r0, r1 + 801399e: 4611 mov r1, r2 + 80139a0: 461a mov r2, r3 + 80139a2: 4603 mov r3, r0 + 80139a4: 817b strh r3, [r7, #10] + 80139a6: 460b mov r3, r1 + 80139a8: 813b strh r3, [r7, #8] + 80139aa: 4613 mov r3, r2 + 80139ac: 80fb strh r3, [r7, #6] /*Make to points relative to the vertex*/ abs_y -= p->origo.y; - 8013a42: 893a ldrh r2, [r7, #8] - 8013a44: 6abb ldr r3, [r7, #40] ; 0x28 - 8013a46: f9b3 3014 ldrsh.w r3, [r3, #20] - 8013a4a: b29b uxth r3, r3 - 8013a4c: 1ad3 subs r3, r2, r3 - 8013a4e: b29b uxth r3, r3 - 8013a50: 813b strh r3, [r7, #8] + 80139ae: 893a ldrh r2, [r7, #8] + 80139b0: 6abb ldr r3, [r7, #40] ; 0x28 + 80139b2: f9b3 3014 ldrsh.w r3, [r3, #20] + 80139b6: b29b uxth r3, r3 + 80139b8: 1ad3 subs r3, r2, r3 + 80139ba: b29b uxth r3, r3 + 80139bc: 813b strh r3, [r7, #8] abs_x -= p->origo.x; - 8013a52: 897a ldrh r2, [r7, #10] - 8013a54: 6abb ldr r3, [r7, #40] ; 0x28 - 8013a56: f9b3 3012 ldrsh.w r3, [r3, #18] - 8013a5a: b29b uxth r3, r3 - 8013a5c: 1ad3 subs r3, r2, r3 - 8013a5e: b29b uxth r3, r3 - 8013a60: 817b strh r3, [r7, #10] + 80139be: 897a ldrh r2, [r7, #10] + 80139c0: 6abb ldr r3, [r7, #40] ; 0x28 + 80139c2: f9b3 3012 ldrsh.w r3, [r3, #18] + 80139c6: b29b uxth r3, r3 + 80139c8: 1ad3 subs r3, r2, r3 + 80139ca: b29b uxth r3, r3 + 80139cc: 817b strh r3, [r7, #10] /*Handle special cases*/ if(p->steep == 0) { - 8013a62: 6abb ldr r3, [r7, #40] ; 0x28 - 8013a64: 6a1b ldr r3, [r3, #32] - 8013a66: 2b00 cmp r3, #0 - 8013a68: f040 80a7 bne.w 8013bba + 80139ce: 6abb ldr r3, [r7, #40] ; 0x28 + 80139d0: 6a1b ldr r3, [r3, #32] + 80139d2: 2b00 cmp r3, #0 + 80139d4: f040 80a7 bne.w 8013b26 /*Horizontal*/ if(p->flat) { - 8013a6c: 6abb ldr r3, [r7, #40] ; 0x28 - 8013a6e: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 8013a72: f003 0301 and.w r3, r3, #1 - 8013a76: b2db uxtb r3, r3 - 8013a78: 2b00 cmp r3, #0 - 8013a7a: d02c beq.n 8013ad6 + 80139d8: 6abb ldr r3, [r7, #40] ; 0x28 + 80139da: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 80139de: f003 0301 and.w r3, r3, #1 + 80139e2: b2db uxtb r3, r3 + 80139e4: 2b00 cmp r3, #0 + 80139e6: d02c beq.n 8013a42 /*Non sense: Can't be on the right/left of a horizontal line*/ if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT || - 8013a7c: 6abb ldr r3, [r7, #40] ; 0x28 - 8013a7e: 7c1b ldrb r3, [r3, #16] - 8013a80: f003 0303 and.w r3, r3, #3 - 8013a84: b2db uxtb r3, r3 - 8013a86: 2b00 cmp r3, #0 - 8013a88: d006 beq.n 8013a98 + 80139e8: 6abb ldr r3, [r7, #40] ; 0x28 + 80139ea: 7c1b ldrb r3, [r3, #16] + 80139ec: f003 0303 and.w r3, r3, #3 + 80139f0: b2db uxtb r3, r3 + 80139f2: 2b00 cmp r3, #0 + 80139f4: d006 beq.n 8013a04 p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER; - 8013a8a: 6abb ldr r3, [r7, #40] ; 0x28 - 8013a8c: 7c1b ldrb r3, [r3, #16] - 8013a8e: f003 0303 and.w r3, r3, #3 - 8013a92: b2db uxtb r3, r3 + 80139f6: 6abb ldr r3, [r7, #40] ; 0x28 + 80139f8: 7c1b ldrb r3, [r3, #16] + 80139fa: f003 0303 and.w r3, r3, #3 + 80139fe: b2db uxtb r3, r3 if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT || - 8013a94: 2b01 cmp r3, #1 - 8013a96: d101 bne.n 8013a9c + 8013a00: 2b01 cmp r3, #1 + 8013a02: d101 bne.n 8013a08 p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER; - 8013a98: 2301 movs r3, #1 - 8013a9a: e0b4 b.n 8013c06 + 8013a04: 2301 movs r3, #1 + 8013a06: e0b4 b.n 8013b72 else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP && abs_y + 1 < 0) return LV_DRAW_MASK_RES_FULL_COVER; - 8013a9c: 6abb ldr r3, [r7, #40] ; 0x28 - 8013a9e: 7c1b ldrb r3, [r3, #16] - 8013aa0: f003 0303 and.w r3, r3, #3 - 8013aa4: b2db uxtb r3, r3 - 8013aa6: 2b02 cmp r3, #2 - 8013aa8: d106 bne.n 8013ab8 - 8013aaa: f9b7 3008 ldrsh.w r3, [r7, #8] - 8013aae: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 8013ab2: da01 bge.n 8013ab8 - 8013ab4: 2301 movs r3, #1 - 8013ab6: e0a6 b.n 8013c06 + 8013a08: 6abb ldr r3, [r7, #40] ; 0x28 + 8013a0a: 7c1b ldrb r3, [r3, #16] + 8013a0c: f003 0303 and.w r3, r3, #3 + 8013a10: b2db uxtb r3, r3 + 8013a12: 2b02 cmp r3, #2 + 8013a14: d106 bne.n 8013a24 + 8013a16: f9b7 3008 ldrsh.w r3, [r7, #8] + 8013a1a: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 8013a1e: da01 bge.n 8013a24 + 8013a20: 2301 movs r3, #1 + 8013a22: e0a6 b.n 8013b72 else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM && abs_y > 0) return LV_DRAW_MASK_RES_FULL_COVER; - 8013ab8: 6abb ldr r3, [r7, #40] ; 0x28 - 8013aba: 7c1b ldrb r3, [r3, #16] - 8013abc: f003 0303 and.w r3, r3, #3 - 8013ac0: b2db uxtb r3, r3 - 8013ac2: 2b03 cmp r3, #3 - 8013ac4: d105 bne.n 8013ad2 - 8013ac6: f9b7 3008 ldrsh.w r3, [r7, #8] - 8013aca: 2b00 cmp r3, #0 - 8013acc: dd01 ble.n 8013ad2 - 8013ace: 2301 movs r3, #1 - 8013ad0: e099 b.n 8013c06 + 8013a24: 6abb ldr r3, [r7, #40] ; 0x28 + 8013a26: 7c1b ldrb r3, [r3, #16] + 8013a28: f003 0303 and.w r3, r3, #3 + 8013a2c: b2db uxtb r3, r3 + 8013a2e: 2b03 cmp r3, #3 + 8013a30: d105 bne.n 8013a3e + 8013a32: f9b7 3008 ldrsh.w r3, [r7, #8] + 8013a36: 2b00 cmp r3, #0 + 8013a38: dd01 ble.n 8013a3e + 8013a3a: 2301 movs r3, #1 + 8013a3c: e099 b.n 8013b72 else { return LV_DRAW_MASK_RES_TRANSP; - 8013ad2: 2300 movs r3, #0 - 8013ad4: e097 b.n 8013c06 + 8013a3e: 2300 movs r3, #0 + 8013a40: e097 b.n 8013b72 } } /*Vertical*/ else { /*Non sense: Can't be on the top/bottom of a vertical line*/ if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP || - 8013ad6: 6abb ldr r3, [r7, #40] ; 0x28 - 8013ad8: 7c1b ldrb r3, [r3, #16] - 8013ada: f003 0303 and.w r3, r3, #3 - 8013ade: b2db uxtb r3, r3 - 8013ae0: 2b02 cmp r3, #2 - 8013ae2: d006 beq.n 8013af2 + 8013a42: 6abb ldr r3, [r7, #40] ; 0x28 + 8013a44: 7c1b ldrb r3, [r3, #16] + 8013a46: f003 0303 and.w r3, r3, #3 + 8013a4a: b2db uxtb r3, r3 + 8013a4c: 2b02 cmp r3, #2 + 8013a4e: d006 beq.n 8013a5e p->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM) return LV_DRAW_MASK_RES_FULL_COVER; - 8013ae4: 6abb ldr r3, [r7, #40] ; 0x28 - 8013ae6: 7c1b ldrb r3, [r3, #16] - 8013ae8: f003 0303 and.w r3, r3, #3 - 8013aec: b2db uxtb r3, r3 + 8013a50: 6abb ldr r3, [r7, #40] ; 0x28 + 8013a52: 7c1b ldrb r3, [r3, #16] + 8013a54: f003 0303 and.w r3, r3, #3 + 8013a58: b2db uxtb r3, r3 if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP || - 8013aee: 2b03 cmp r3, #3 - 8013af0: d101 bne.n 8013af6 + 8013a5a: 2b03 cmp r3, #3 + 8013a5c: d101 bne.n 8013a62 p->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM) return LV_DRAW_MASK_RES_FULL_COVER; - 8013af2: 2301 movs r3, #1 - 8013af4: e087 b.n 8013c06 + 8013a5e: 2301 movs r3, #1 + 8013a60: e087 b.n 8013b72 else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT && abs_x > 0) return LV_DRAW_MASK_RES_FULL_COVER; - 8013af6: 6abb ldr r3, [r7, #40] ; 0x28 - 8013af8: 7c1b ldrb r3, [r3, #16] - 8013afa: f003 0303 and.w r3, r3, #3 - 8013afe: b2db uxtb r3, r3 - 8013b00: 2b01 cmp r3, #1 - 8013b02: d105 bne.n 8013b10 - 8013b04: f9b7 300a ldrsh.w r3, [r7, #10] - 8013b08: 2b00 cmp r3, #0 - 8013b0a: dd01 ble.n 8013b10 - 8013b0c: 2301 movs r3, #1 - 8013b0e: e07a b.n 8013c06 + 8013a62: 6abb ldr r3, [r7, #40] ; 0x28 + 8013a64: 7c1b ldrb r3, [r3, #16] + 8013a66: f003 0303 and.w r3, r3, #3 + 8013a6a: b2db uxtb r3, r3 + 8013a6c: 2b01 cmp r3, #1 + 8013a6e: d105 bne.n 8013a7c + 8013a70: f9b7 300a ldrsh.w r3, [r7, #10] + 8013a74: 2b00 cmp r3, #0 + 8013a76: dd01 ble.n 8013a7c + 8013a78: 2301 movs r3, #1 + 8013a7a: e07a b.n 8013b72 else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) { - 8013b10: 6abb ldr r3, [r7, #40] ; 0x28 - 8013b12: 7c1b ldrb r3, [r3, #16] - 8013b14: f003 0303 and.w r3, r3, #3 - 8013b18: b2db uxtb r3, r3 - 8013b1a: 2b00 cmp r3, #0 - 8013b1c: d125 bne.n 8013b6a + 8013a7c: 6abb ldr r3, [r7, #40] ; 0x28 + 8013a7e: 7c1b ldrb r3, [r3, #16] + 8013a80: f003 0303 and.w r3, r3, #3 + 8013a84: b2db uxtb r3, r3 + 8013a86: 2b00 cmp r3, #0 + 8013a88: d125 bne.n 8013ad6 if(abs_x + len < 0) return LV_DRAW_MASK_RES_FULL_COVER; - 8013b1e: f9b7 200a ldrsh.w r2, [r7, #10] - 8013b22: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013b26: 4413 add r3, r2 - 8013b28: 2b00 cmp r3, #0 - 8013b2a: da01 bge.n 8013b30 - 8013b2c: 2301 movs r3, #1 - 8013b2e: e06a b.n 8013c06 + 8013a8a: f9b7 200a ldrsh.w r2, [r7, #10] + 8013a8e: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013a92: 4413 add r3, r2 + 8013a94: 2b00 cmp r3, #0 + 8013a96: da01 bge.n 8013a9c + 8013a98: 2301 movs r3, #1 + 8013a9a: e06a b.n 8013b72 else { int32_t k = - abs_x; - 8013b30: f9b7 300a ldrsh.w r3, [r7, #10] - 8013b34: 425b negs r3, r3 - 8013b36: 617b str r3, [r7, #20] + 8013a9c: f9b7 300a ldrsh.w r3, [r7, #10] + 8013aa0: 425b negs r3, r3 + 8013aa2: 617b str r3, [r7, #20] if(k < 0) return LV_DRAW_MASK_RES_TRANSP; - 8013b38: 697b ldr r3, [r7, #20] - 8013b3a: 2b00 cmp r3, #0 - 8013b3c: da01 bge.n 8013b42 - 8013b3e: 2300 movs r3, #0 - 8013b40: e061 b.n 8013c06 + 8013aa4: 697b ldr r3, [r7, #20] + 8013aa6: 2b00 cmp r3, #0 + 8013aa8: da01 bge.n 8013aae + 8013aaa: 2300 movs r3, #0 + 8013aac: e061 b.n 8013b72 if(k >= 0 && k < len) lv_memset_00(&mask_buf[k], len - k); - 8013b42: 697b ldr r3, [r7, #20] - 8013b44: 2b00 cmp r3, #0 - 8013b46: db0e blt.n 8013b66 - 8013b48: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013b4c: 697a ldr r2, [r7, #20] - 8013b4e: 429a cmp r2, r3 - 8013b50: da09 bge.n 8013b66 - 8013b52: 697b ldr r3, [r7, #20] - 8013b54: 68fa ldr r2, [r7, #12] - 8013b56: 18d0 adds r0, r2, r3 - 8013b58: f9b7 2006 ldrsh.w r2, [r7, #6] - 8013b5c: 697b ldr r3, [r7, #20] - 8013b5e: 1ad3 subs r3, r2, r3 - 8013b60: 4619 mov r1, r3 - 8013b62: f01f faf5 bl 8033150 + 8013aae: 697b ldr r3, [r7, #20] + 8013ab0: 2b00 cmp r3, #0 + 8013ab2: db0e blt.n 8013ad2 + 8013ab4: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013ab8: 697a ldr r2, [r7, #20] + 8013aba: 429a cmp r2, r3 + 8013abc: da09 bge.n 8013ad2 + 8013abe: 697b ldr r3, [r7, #20] + 8013ac0: 68fa ldr r2, [r7, #12] + 8013ac2: 18d0 adds r0, r2, r3 + 8013ac4: f9b7 2006 ldrsh.w r2, [r7, #6] + 8013ac8: 697b ldr r3, [r7, #20] + 8013aca: 1ad3 subs r3, r2, r3 + 8013acc: 4619 mov r1, r3 + 8013ace: f01f faf5 bl 80330bc return LV_DRAW_MASK_RES_CHANGED; - 8013b66: 2302 movs r3, #2 - 8013b68: e04d b.n 8013c06 + 8013ad2: 2302 movs r3, #2 + 8013ad4: e04d b.n 8013b72 } } else { if(abs_x + len < 0) return LV_DRAW_MASK_RES_TRANSP; - 8013b6a: f9b7 200a ldrsh.w r2, [r7, #10] - 8013b6e: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013b72: 4413 add r3, r2 - 8013b74: 2b00 cmp r3, #0 - 8013b76: da01 bge.n 8013b7c - 8013b78: 2300 movs r3, #0 - 8013b7a: e044 b.n 8013c06 + 8013ad6: f9b7 200a ldrsh.w r2, [r7, #10] + 8013ada: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013ade: 4413 add r3, r2 + 8013ae0: 2b00 cmp r3, #0 + 8013ae2: da01 bge.n 8013ae8 + 8013ae4: 2300 movs r3, #0 + 8013ae6: e044 b.n 8013b72 else { int32_t k = - abs_x; - 8013b7c: f9b7 300a ldrsh.w r3, [r7, #10] - 8013b80: 425b negs r3, r3 - 8013b82: 61fb str r3, [r7, #28] + 8013ae8: f9b7 300a ldrsh.w r3, [r7, #10] + 8013aec: 425b negs r3, r3 + 8013aee: 61fb str r3, [r7, #28] if(k < 0) k = 0; - 8013b84: 69fb ldr r3, [r7, #28] - 8013b86: 2b00 cmp r3, #0 - 8013b88: da01 bge.n 8013b8e - 8013b8a: 2300 movs r3, #0 - 8013b8c: 61fb str r3, [r7, #28] + 8013af0: 69fb ldr r3, [r7, #28] + 8013af2: 2b00 cmp r3, #0 + 8013af4: da01 bge.n 8013afa + 8013af6: 2300 movs r3, #0 + 8013af8: 61fb str r3, [r7, #28] if(k >= len) return LV_DRAW_MASK_RES_TRANSP; - 8013b8e: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013b92: 69fa ldr r2, [r7, #28] - 8013b94: 429a cmp r2, r3 - 8013b96: db01 blt.n 8013b9c - 8013b98: 2300 movs r3, #0 - 8013b9a: e034 b.n 8013c06 + 8013afa: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013afe: 69fa ldr r2, [r7, #28] + 8013b00: 429a cmp r2, r3 + 8013b02: db01 blt.n 8013b08 + 8013b04: 2300 movs r3, #0 + 8013b06: e034 b.n 8013b72 else if(k >= 0 && k < len) lv_memset_00(&mask_buf[0], k); - 8013b9c: 69fb ldr r3, [r7, #28] - 8013b9e: 2b00 cmp r3, #0 - 8013ba0: db09 blt.n 8013bb6 - 8013ba2: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013ba6: 69fa ldr r2, [r7, #28] - 8013ba8: 429a cmp r2, r3 - 8013baa: da04 bge.n 8013bb6 - 8013bac: 69fb ldr r3, [r7, #28] - 8013bae: 4619 mov r1, r3 - 8013bb0: 68f8 ldr r0, [r7, #12] - 8013bb2: f01f facd bl 8033150 + 8013b08: 69fb ldr r3, [r7, #28] + 8013b0a: 2b00 cmp r3, #0 + 8013b0c: db09 blt.n 8013b22 + 8013b0e: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013b12: 69fa ldr r2, [r7, #28] + 8013b14: 429a cmp r2, r3 + 8013b16: da04 bge.n 8013b22 + 8013b18: 69fb ldr r3, [r7, #28] + 8013b1a: 4619 mov r1, r3 + 8013b1c: 68f8 ldr r0, [r7, #12] + 8013b1e: f01f facd bl 80330bc return LV_DRAW_MASK_RES_CHANGED; - 8013bb6: 2302 movs r3, #2 - 8013bb8: e025 b.n 8013c06 + 8013b22: 2302 movs r3, #2 + 8013b24: e025 b.n 8013b72 } } } lv_draw_mask_res_t res; if(p->flat) { - 8013bba: 6abb ldr r3, [r7, #40] ; 0x28 - 8013bbc: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 8013bc0: f003 0301 and.w r3, r3, #1 - 8013bc4: b2db uxtb r3, r3 - 8013bc6: 2b00 cmp r3, #0 - 8013bc8: d00e beq.n 8013be8 + 8013b26: 6abb ldr r3, [r7, #40] ; 0x28 + 8013b28: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 8013b2c: f003 0301 and.w r3, r3, #1 + 8013b30: b2db uxtb r3, r3 + 8013b32: 2b00 cmp r3, #0 + 8013b34: d00e beq.n 8013b54 res = line_mask_flat(mask_buf, abs_x, abs_y, len, p); - 8013bca: f9b7 0006 ldrsh.w r0, [r7, #6] - 8013bce: f9b7 2008 ldrsh.w r2, [r7, #8] - 8013bd2: f9b7 100a ldrsh.w r1, [r7, #10] - 8013bd6: 6abb ldr r3, [r7, #40] ; 0x28 - 8013bd8: 9300 str r3, [sp, #0] - 8013bda: 4603 mov r3, r0 - 8013bdc: 68f8 ldr r0, [r7, #12] - 8013bde: f000 f816 bl 8013c0e - 8013be2: 4603 mov r3, r0 - 8013be4: 76fb strb r3, [r7, #27] - 8013be6: e00d b.n 8013c04 + 8013b36: f9b7 0006 ldrsh.w r0, [r7, #6] + 8013b3a: f9b7 2008 ldrsh.w r2, [r7, #8] + 8013b3e: f9b7 100a ldrsh.w r1, [r7, #10] + 8013b42: 6abb ldr r3, [r7, #40] ; 0x28 + 8013b44: 9300 str r3, [sp, #0] + 8013b46: 4603 mov r3, r0 + 8013b48: 68f8 ldr r0, [r7, #12] + 8013b4a: f000 f816 bl 8013b7a + 8013b4e: 4603 mov r3, r0 + 8013b50: 76fb strb r3, [r7, #27] + 8013b52: e00d b.n 8013b70 } else { res = line_mask_steep(mask_buf, abs_x, abs_y, len, p); - 8013be8: f9b7 0006 ldrsh.w r0, [r7, #6] - 8013bec: f9b7 2008 ldrsh.w r2, [r7, #8] - 8013bf0: f9b7 100a ldrsh.w r1, [r7, #10] - 8013bf4: 6abb ldr r3, [r7, #40] ; 0x28 - 8013bf6: 9300 str r3, [sp, #0] - 8013bf8: 4603 mov r3, r0 - 8013bfa: 68f8 ldr r0, [r7, #12] - 8013bfc: f000 f991 bl 8013f22 - 8013c00: 4603 mov r3, r0 - 8013c02: 76fb strb r3, [r7, #27] + 8013b54: f9b7 0006 ldrsh.w r0, [r7, #6] + 8013b58: f9b7 2008 ldrsh.w r2, [r7, #8] + 8013b5c: f9b7 100a ldrsh.w r1, [r7, #10] + 8013b60: 6abb ldr r3, [r7, #40] ; 0x28 + 8013b62: 9300 str r3, [sp, #0] + 8013b64: 4603 mov r3, r0 + 8013b66: 68f8 ldr r0, [r7, #12] + 8013b68: f000 f991 bl 8013e8e + 8013b6c: 4603 mov r3, r0 + 8013b6e: 76fb strb r3, [r7, #27] } return res; - 8013c04: 7efb ldrb r3, [r7, #27] + 8013b70: 7efb ldrb r3, [r7, #27] } - 8013c06: 4618 mov r0, r3 - 8013c08: 3720 adds r7, #32 - 8013c0a: 46bd mov sp, r7 - 8013c0c: bd80 pop {r7, pc} + 8013b72: 4618 mov r0, r3 + 8013b74: 3720 adds r7, #32 + 8013b76: 46bd mov sp, r7 + 8013b78: bd80 pop {r7, pc} -08013c0e : +08013b7a : LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t line_mask_flat(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, lv_coord_t len, lv_draw_mask_line_param_t * p) { - 8013c0e: b590 push {r4, r7, lr} - 8013c10: b08d sub sp, #52 ; 0x34 - 8013c12: af00 add r7, sp, #0 - 8013c14: 60f8 str r0, [r7, #12] - 8013c16: 4608 mov r0, r1 - 8013c18: 4611 mov r1, r2 - 8013c1a: 461a mov r2, r3 - 8013c1c: 4603 mov r3, r0 - 8013c1e: 817b strh r3, [r7, #10] - 8013c20: 460b mov r3, r1 - 8013c22: 813b strh r3, [r7, #8] - 8013c24: 4613 mov r3, r2 - 8013c26: 80fb strh r3, [r7, #6] + 8013b7a: b590 push {r4, r7, lr} + 8013b7c: b08d sub sp, #52 ; 0x34 + 8013b7e: af00 add r7, sp, #0 + 8013b80: 60f8 str r0, [r7, #12] + 8013b82: 4608 mov r0, r1 + 8013b84: 4611 mov r1, r2 + 8013b86: 461a mov r2, r3 + 8013b88: 4603 mov r3, r0 + 8013b8a: 817b strh r3, [r7, #10] + 8013b8c: 460b mov r3, r1 + 8013b8e: 813b strh r3, [r7, #8] + 8013b90: 4613 mov r3, r2 + 8013b92: 80fb strh r3, [r7, #6] int32_t y_at_x; y_at_x = (int32_t)((int32_t)p->yx_steep * abs_x) >> 10; - 8013c28: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013c2a: 69db ldr r3, [r3, #28] - 8013c2c: f9b7 200a ldrsh.w r2, [r7, #10] - 8013c30: fb02 f303 mul.w r3, r2, r3 - 8013c34: 129b asrs r3, r3, #10 - 8013c36: 61fb str r3, [r7, #28] + 8013b94: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013b96: 69db ldr r3, [r3, #28] + 8013b98: f9b7 200a ldrsh.w r2, [r7, #10] + 8013b9c: fb02 f303 mul.w r3, r2, r3 + 8013ba0: 129b asrs r3, r3, #10 + 8013ba2: 61fb str r3, [r7, #28] if(p->yx_steep > 0) { - 8013c38: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013c3a: 69db ldr r3, [r3, #28] - 8013c3c: 2b00 cmp r3, #0 - 8013c3e: dd10 ble.n 8013c62 + 8013ba4: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013ba6: 69db ldr r3, [r3, #28] + 8013ba8: 2b00 cmp r3, #0 + 8013baa: dd10 ble.n 8013bce if(y_at_x > abs_y) { - 8013c40: f9b7 3008 ldrsh.w r3, [r7, #8] - 8013c44: 69fa ldr r2, [r7, #28] - 8013c46: 429a cmp r2, r3 - 8013c48: dd1c ble.n 8013c84 + 8013bac: f9b7 3008 ldrsh.w r3, [r7, #8] + 8013bb0: 69fa ldr r2, [r7, #28] + 8013bb2: 429a cmp r2, r3 + 8013bb4: dd1c ble.n 8013bf0 if(p->inv) { - 8013c4a: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013c4c: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 8013c50: f003 0302 and.w r3, r3, #2 - 8013c54: b2db uxtb r3, r3 - 8013c56: 2b00 cmp r3, #0 - 8013c58: d001 beq.n 8013c5e + 8013bb6: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013bb8: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 8013bbc: f003 0302 and.w r3, r3, #2 + 8013bc0: b2db uxtb r3, r3 + 8013bc2: 2b00 cmp r3, #0 + 8013bc4: d001 beq.n 8013bca return LV_DRAW_MASK_RES_FULL_COVER; - 8013c5a: 2301 movs r3, #1 - 8013c5c: e15d b.n 8013f1a + 8013bc6: 2301 movs r3, #1 + 8013bc8: e15d b.n 8013e86 } else { return LV_DRAW_MASK_RES_TRANSP; - 8013c5e: 2300 movs r3, #0 - 8013c60: e15b b.n 8013f1a + 8013bca: 2300 movs r3, #0 + 8013bcc: e15b b.n 8013e86 } } } else { if(y_at_x < abs_y) { - 8013c62: f9b7 3008 ldrsh.w r3, [r7, #8] - 8013c66: 69fa ldr r2, [r7, #28] - 8013c68: 429a cmp r2, r3 - 8013c6a: da0b bge.n 8013c84 + 8013bce: f9b7 3008 ldrsh.w r3, [r7, #8] + 8013bd2: 69fa ldr r2, [r7, #28] + 8013bd4: 429a cmp r2, r3 + 8013bd6: da0b bge.n 8013bf0 if(p->inv) { - 8013c6c: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013c6e: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 8013c72: f003 0302 and.w r3, r3, #2 - 8013c76: b2db uxtb r3, r3 - 8013c78: 2b00 cmp r3, #0 - 8013c7a: d001 beq.n 8013c80 + 8013bd8: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013bda: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 8013bde: f003 0302 and.w r3, r3, #2 + 8013be2: b2db uxtb r3, r3 + 8013be4: 2b00 cmp r3, #0 + 8013be6: d001 beq.n 8013bec return LV_DRAW_MASK_RES_FULL_COVER; - 8013c7c: 2301 movs r3, #1 - 8013c7e: e14c b.n 8013f1a + 8013be8: 2301 movs r3, #1 + 8013bea: e14c b.n 8013e86 } else { return LV_DRAW_MASK_RES_TRANSP; - 8013c80: 2300 movs r3, #0 - 8013c82: e14a b.n 8013f1a + 8013bec: 2300 movs r3, #0 + 8013bee: e14a b.n 8013e86 } } /*At the end of the mask if the limit line is smaller than the mask's y. *Then the mask is in the "good" area*/ y_at_x = (int32_t)((int32_t)p->yx_steep * (abs_x + len)) >> 10; - 8013c84: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013c86: 69db ldr r3, [r3, #28] - 8013c88: f9b7 100a ldrsh.w r1, [r7, #10] - 8013c8c: f9b7 2006 ldrsh.w r2, [r7, #6] - 8013c90: 440a add r2, r1 - 8013c92: fb02 f303 mul.w r3, r2, r3 - 8013c96: 129b asrs r3, r3, #10 - 8013c98: 61fb str r3, [r7, #28] + 8013bf0: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013bf2: 69db ldr r3, [r3, #28] + 8013bf4: f9b7 100a ldrsh.w r1, [r7, #10] + 8013bf8: f9b7 2006 ldrsh.w r2, [r7, #6] + 8013bfc: 440a add r2, r1 + 8013bfe: fb02 f303 mul.w r3, r2, r3 + 8013c02: 129b asrs r3, r3, #10 + 8013c04: 61fb str r3, [r7, #28] if(p->yx_steep > 0) { - 8013c9a: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013c9c: 69db ldr r3, [r3, #28] - 8013c9e: 2b00 cmp r3, #0 - 8013ca0: dd10 ble.n 8013cc4 + 8013c06: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013c08: 69db ldr r3, [r3, #28] + 8013c0a: 2b00 cmp r3, #0 + 8013c0c: dd10 ble.n 8013c30 if(y_at_x < abs_y) { - 8013ca2: f9b7 3008 ldrsh.w r3, [r7, #8] - 8013ca6: 69fa ldr r2, [r7, #28] - 8013ca8: 429a cmp r2, r3 - 8013caa: da1c bge.n 8013ce6 + 8013c0e: f9b7 3008 ldrsh.w r3, [r7, #8] + 8013c12: 69fa ldr r2, [r7, #28] + 8013c14: 429a cmp r2, r3 + 8013c16: da1c bge.n 8013c52 if(p->inv) { - 8013cac: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013cae: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 8013cb2: f003 0302 and.w r3, r3, #2 - 8013cb6: b2db uxtb r3, r3 - 8013cb8: 2b00 cmp r3, #0 - 8013cba: d001 beq.n 8013cc0 + 8013c18: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013c1a: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 8013c1e: f003 0302 and.w r3, r3, #2 + 8013c22: b2db uxtb r3, r3 + 8013c24: 2b00 cmp r3, #0 + 8013c26: d001 beq.n 8013c2c return LV_DRAW_MASK_RES_TRANSP; - 8013cbc: 2300 movs r3, #0 - 8013cbe: e12c b.n 8013f1a + 8013c28: 2300 movs r3, #0 + 8013c2a: e12c b.n 8013e86 } else { return LV_DRAW_MASK_RES_FULL_COVER; - 8013cc0: 2301 movs r3, #1 - 8013cc2: e12a b.n 8013f1a + 8013c2c: 2301 movs r3, #1 + 8013c2e: e12a b.n 8013e86 } } } else { if(y_at_x > abs_y) { - 8013cc4: f9b7 3008 ldrsh.w r3, [r7, #8] - 8013cc8: 69fa ldr r2, [r7, #28] - 8013cca: 429a cmp r2, r3 - 8013ccc: dd0b ble.n 8013ce6 + 8013c30: f9b7 3008 ldrsh.w r3, [r7, #8] + 8013c34: 69fa ldr r2, [r7, #28] + 8013c36: 429a cmp r2, r3 + 8013c38: dd0b ble.n 8013c52 if(p->inv) { - 8013cce: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013cd0: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 8013cd4: f003 0302 and.w r3, r3, #2 - 8013cd8: b2db uxtb r3, r3 - 8013cda: 2b00 cmp r3, #0 - 8013cdc: d001 beq.n 8013ce2 + 8013c3a: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013c3c: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 8013c40: f003 0302 and.w r3, r3, #2 + 8013c44: b2db uxtb r3, r3 + 8013c46: 2b00 cmp r3, #0 + 8013c48: d001 beq.n 8013c4e return LV_DRAW_MASK_RES_TRANSP; - 8013cde: 2300 movs r3, #0 - 8013ce0: e11b b.n 8013f1a + 8013c4a: 2300 movs r3, #0 + 8013c4c: e11b b.n 8013e86 } else { return LV_DRAW_MASK_RES_FULL_COVER; - 8013ce2: 2301 movs r3, #1 - 8013ce4: e119 b.n 8013f1a + 8013c4e: 2301 movs r3, #1 + 8013c50: e119 b.n 8013e86 } } } int32_t xe; if(p->yx_steep > 0) xe = ((abs_y * 256) * p->xy_steep) >> 10; - 8013ce6: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013ce8: 69db ldr r3, [r3, #28] - 8013cea: 2b00 cmp r3, #0 - 8013cec: dd09 ble.n 8013d02 - 8013cee: f9b7 3008 ldrsh.w r3, [r7, #8] - 8013cf2: 021b lsls r3, r3, #8 - 8013cf4: 6c3a ldr r2, [r7, #64] ; 0x40 - 8013cf6: 6992 ldr r2, [r2, #24] - 8013cf8: fb02 f303 mul.w r3, r2, r3 - 8013cfc: 129b asrs r3, r3, #10 - 8013cfe: 62fb str r3, [r7, #44] ; 0x2c - 8013d00: e009 b.n 8013d16 + 8013c52: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013c54: 69db ldr r3, [r3, #28] + 8013c56: 2b00 cmp r3, #0 + 8013c58: dd09 ble.n 8013c6e + 8013c5a: f9b7 3008 ldrsh.w r3, [r7, #8] + 8013c5e: 021b lsls r3, r3, #8 + 8013c60: 6c3a ldr r2, [r7, #64] ; 0x40 + 8013c62: 6992 ldr r2, [r2, #24] + 8013c64: fb02 f303 mul.w r3, r2, r3 + 8013c68: 129b asrs r3, r3, #10 + 8013c6a: 62fb str r3, [r7, #44] ; 0x2c + 8013c6c: e009 b.n 8013c82 else xe = (((abs_y + 1) * 256) * p->xy_steep) >> 10; - 8013d02: f9b7 3008 ldrsh.w r3, [r7, #8] - 8013d06: 3301 adds r3, #1 - 8013d08: 021b lsls r3, r3, #8 - 8013d0a: 6c3a ldr r2, [r7, #64] ; 0x40 - 8013d0c: 6992 ldr r2, [r2, #24] - 8013d0e: fb02 f303 mul.w r3, r2, r3 - 8013d12: 129b asrs r3, r3, #10 - 8013d14: 62fb str r3, [r7, #44] ; 0x2c + 8013c6e: f9b7 3008 ldrsh.w r3, [r7, #8] + 8013c72: 3301 adds r3, #1 + 8013c74: 021b lsls r3, r3, #8 + 8013c76: 6c3a ldr r2, [r7, #64] ; 0x40 + 8013c78: 6992 ldr r2, [r2, #24] + 8013c7a: fb02 f303 mul.w r3, r2, r3 + 8013c7e: 129b asrs r3, r3, #10 + 8013c80: 62fb str r3, [r7, #44] ; 0x2c int32_t xei = xe >> 8; - 8013d16: 6afb ldr r3, [r7, #44] ; 0x2c - 8013d18: 121b asrs r3, r3, #8 - 8013d1a: 61bb str r3, [r7, #24] + 8013c82: 6afb ldr r3, [r7, #44] ; 0x2c + 8013c84: 121b asrs r3, r3, #8 + 8013c86: 61bb str r3, [r7, #24] int32_t xef = xe & 0xFF; - 8013d1c: 6afb ldr r3, [r7, #44] ; 0x2c - 8013d1e: b2db uxtb r3, r3 - 8013d20: 617b str r3, [r7, #20] + 8013c88: 6afb ldr r3, [r7, #44] ; 0x2c + 8013c8a: b2db uxtb r3, r3 + 8013c8c: 617b str r3, [r7, #20] int32_t px_h; if(xef == 0) px_h = 255; - 8013d22: 697b ldr r3, [r7, #20] - 8013d24: 2b00 cmp r3, #0 - 8013d26: d102 bne.n 8013d2e - 8013d28: 23ff movs r3, #255 ; 0xff - 8013d2a: 62bb str r3, [r7, #40] ; 0x28 - 8013d2c: e00a b.n 8013d44 + 8013c8e: 697b ldr r3, [r7, #20] + 8013c90: 2b00 cmp r3, #0 + 8013c92: d102 bne.n 8013c9a + 8013c94: 23ff movs r3, #255 ; 0xff + 8013c96: 62bb str r3, [r7, #40] ; 0x28 + 8013c98: e00a b.n 8013cb0 else px_h = 255 - (((255 - xef) * p->spx) >> 8); - 8013d2e: 697b ldr r3, [r7, #20] - 8013d30: f1c3 03ff rsb r3, r3, #255 ; 0xff - 8013d34: 6c3a ldr r2, [r7, #64] ; 0x40 - 8013d36: 6a52 ldr r2, [r2, #36] ; 0x24 - 8013d38: fb02 f303 mul.w r3, r2, r3 - 8013d3c: 121b asrs r3, r3, #8 - 8013d3e: f1c3 03ff rsb r3, r3, #255 ; 0xff - 8013d42: 62bb str r3, [r7, #40] ; 0x28 + 8013c9a: 697b ldr r3, [r7, #20] + 8013c9c: f1c3 03ff rsb r3, r3, #255 ; 0xff + 8013ca0: 6c3a ldr r2, [r7, #64] ; 0x40 + 8013ca2: 6a52 ldr r2, [r2, #36] ; 0x24 + 8013ca4: fb02 f303 mul.w r3, r2, r3 + 8013ca8: 121b asrs r3, r3, #8 + 8013caa: f1c3 03ff rsb r3, r3, #255 ; 0xff + 8013cae: 62bb str r3, [r7, #40] ; 0x28 int32_t k = xei - abs_x; - 8013d44: f9b7 300a ldrsh.w r3, [r7, #10] - 8013d48: 69ba ldr r2, [r7, #24] - 8013d4a: 1ad3 subs r3, r2, r3 - 8013d4c: 627b str r3, [r7, #36] ; 0x24 + 8013cb0: f9b7 300a ldrsh.w r3, [r7, #10] + 8013cb4: 69ba ldr r2, [r7, #24] + 8013cb6: 1ad3 subs r3, r2, r3 + 8013cb8: 627b str r3, [r7, #36] ; 0x24 lv_opa_t m; if(xef) { - 8013d4e: 697b ldr r3, [r7, #20] - 8013d50: 2b00 cmp r3, #0 - 8013d52: d06c beq.n 8013e2e + 8013cba: 697b ldr r3, [r7, #20] + 8013cbc: 2b00 cmp r3, #0 + 8013cbe: d06c beq.n 8013d9a if(k >= 0 && k < len) { - 8013d54: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013d56: 2b00 cmp r3, #0 - 8013d58: db2c blt.n 8013db4 - 8013d5a: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013d5e: 6a7a ldr r2, [r7, #36] ; 0x24 - 8013d60: 429a cmp r2, r3 - 8013d62: da27 bge.n 8013db4 + 8013cc0: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013cc2: 2b00 cmp r3, #0 + 8013cc4: db2c blt.n 8013d20 + 8013cc6: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013cca: 6a7a ldr r2, [r7, #36] ; 0x24 + 8013ccc: 429a cmp r2, r3 + 8013cce: da27 bge.n 8013d20 m = 255 - (((255 - xef) * (255 - px_h)) >> 9); - 8013d64: 697b ldr r3, [r7, #20] - 8013d66: f1c3 03ff rsb r3, r3, #255 ; 0xff - 8013d6a: 6aba ldr r2, [r7, #40] ; 0x28 - 8013d6c: f1c2 02ff rsb r2, r2, #255 ; 0xff - 8013d70: fb02 f303 mul.w r3, r2, r3 - 8013d74: 125b asrs r3, r3, #9 - 8013d76: b2db uxtb r3, r3 - 8013d78: 43db mvns r3, r3 - 8013d7a: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 8013cd0: 697b ldr r3, [r7, #20] + 8013cd2: f1c3 03ff rsb r3, r3, #255 ; 0xff + 8013cd6: 6aba ldr r2, [r7, #40] ; 0x28 + 8013cd8: f1c2 02ff rsb r2, r2, #255 ; 0xff + 8013cdc: fb02 f303 mul.w r3, r2, r3 + 8013ce0: 125b asrs r3, r3, #9 + 8013ce2: b2db uxtb r3, r3 + 8013ce4: 43db mvns r3, r3 + 8013ce6: f887 3023 strb.w r3, [r7, #35] ; 0x23 if(p->inv) m = 255 - m; - 8013d7e: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013d80: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 8013d84: f003 0302 and.w r3, r3, #2 - 8013d88: b2db uxtb r3, r3 - 8013d8a: 2b00 cmp r3, #0 - 8013d8c: d004 beq.n 8013d98 - 8013d8e: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8013d92: 43db mvns r3, r3 - 8013d94: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 8013cea: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013cec: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 8013cf0: f003 0302 and.w r3, r3, #2 + 8013cf4: b2db uxtb r3, r3 + 8013cf6: 2b00 cmp r3, #0 + 8013cf8: d004 beq.n 8013d04 + 8013cfa: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8013cfe: 43db mvns r3, r3 + 8013d00: f887 3023 strb.w r3, [r7, #35] ; 0x23 mask_buf[k] = mask_mix(mask_buf[k], m); - 8013d98: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013d9a: 68fa ldr r2, [r7, #12] - 8013d9c: 4413 add r3, r2 - 8013d9e: 7818 ldrb r0, [r3, #0] - 8013da0: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013da2: 68fa ldr r2, [r7, #12] - 8013da4: 18d4 adds r4, r2, r3 - 8013da6: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8013daa: 4619 mov r1, r3 - 8013dac: f001 fc96 bl 80156dc - 8013db0: 4603 mov r3, r0 - 8013db2: 7023 strb r3, [r4, #0] + 8013d04: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013d06: 68fa ldr r2, [r7, #12] + 8013d08: 4413 add r3, r2 + 8013d0a: 7818 ldrb r0, [r3, #0] + 8013d0c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013d0e: 68fa ldr r2, [r7, #12] + 8013d10: 18d4 adds r4, r2, r3 + 8013d12: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8013d16: 4619 mov r1, r3 + 8013d18: f001 fc96 bl 8015648 + 8013d1c: 4603 mov r3, r0 + 8013d1e: 7023 strb r3, [r4, #0] } k++; - 8013db4: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013db6: 3301 adds r3, #1 - 8013db8: 627b str r3, [r7, #36] ; 0x24 + 8013d20: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013d22: 3301 adds r3, #1 + 8013d24: 627b str r3, [r7, #36] ; 0x24 } while(px_h > p->spx) { - 8013dba: e038 b.n 8013e2e + 8013d26: e038 b.n 8013d9a if(k >= 0 && k < len) { - 8013dbc: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013dbe: 2b00 cmp r3, #0 - 8013dc0: db28 blt.n 8013e14 - 8013dc2: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013dc6: 6a7a ldr r2, [r7, #36] ; 0x24 - 8013dc8: 429a cmp r2, r3 - 8013dca: da23 bge.n 8013e14 + 8013d28: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013d2a: 2b00 cmp r3, #0 + 8013d2c: db28 blt.n 8013d80 + 8013d2e: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013d32: 6a7a ldr r2, [r7, #36] ; 0x24 + 8013d34: 429a cmp r2, r3 + 8013d36: da23 bge.n 8013d80 m = px_h - (p->spx >> 1); - 8013dcc: 6abb ldr r3, [r7, #40] ; 0x28 - 8013dce: b2da uxtb r2, r3 - 8013dd0: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013dd2: 6a5b ldr r3, [r3, #36] ; 0x24 - 8013dd4: 105b asrs r3, r3, #1 - 8013dd6: b2db uxtb r3, r3 - 8013dd8: 1ad3 subs r3, r2, r3 - 8013dda: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 8013d38: 6abb ldr r3, [r7, #40] ; 0x28 + 8013d3a: b2da uxtb r2, r3 + 8013d3c: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013d3e: 6a5b ldr r3, [r3, #36] ; 0x24 + 8013d40: 105b asrs r3, r3, #1 + 8013d42: b2db uxtb r3, r3 + 8013d44: 1ad3 subs r3, r2, r3 + 8013d46: f887 3023 strb.w r3, [r7, #35] ; 0x23 if(p->inv) m = 255 - m; - 8013dde: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013de0: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 8013de4: f003 0302 and.w r3, r3, #2 - 8013de8: b2db uxtb r3, r3 - 8013dea: 2b00 cmp r3, #0 - 8013dec: d004 beq.n 8013df8 - 8013dee: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8013df2: 43db mvns r3, r3 - 8013df4: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 8013d4a: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013d4c: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 8013d50: f003 0302 and.w r3, r3, #2 + 8013d54: b2db uxtb r3, r3 + 8013d56: 2b00 cmp r3, #0 + 8013d58: d004 beq.n 8013d64 + 8013d5a: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8013d5e: 43db mvns r3, r3 + 8013d60: f887 3023 strb.w r3, [r7, #35] ; 0x23 mask_buf[k] = mask_mix(mask_buf[k], m); - 8013df8: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013dfa: 68fa ldr r2, [r7, #12] - 8013dfc: 4413 add r3, r2 - 8013dfe: 7818 ldrb r0, [r3, #0] - 8013e00: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013e02: 68fa ldr r2, [r7, #12] - 8013e04: 18d4 adds r4, r2, r3 - 8013e06: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8013e0a: 4619 mov r1, r3 - 8013e0c: f001 fc66 bl 80156dc - 8013e10: 4603 mov r3, r0 - 8013e12: 7023 strb r3, [r4, #0] + 8013d64: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013d66: 68fa ldr r2, [r7, #12] + 8013d68: 4413 add r3, r2 + 8013d6a: 7818 ldrb r0, [r3, #0] + 8013d6c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013d6e: 68fa ldr r2, [r7, #12] + 8013d70: 18d4 adds r4, r2, r3 + 8013d72: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8013d76: 4619 mov r1, r3 + 8013d78: f001 fc66 bl 8015648 + 8013d7c: 4603 mov r3, r0 + 8013d7e: 7023 strb r3, [r4, #0] } px_h -= p->spx; - 8013e14: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013e16: 6a5b ldr r3, [r3, #36] ; 0x24 - 8013e18: 6aba ldr r2, [r7, #40] ; 0x28 - 8013e1a: 1ad3 subs r3, r2, r3 - 8013e1c: 62bb str r3, [r7, #40] ; 0x28 + 8013d80: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013d82: 6a5b ldr r3, [r3, #36] ; 0x24 + 8013d84: 6aba ldr r2, [r7, #40] ; 0x28 + 8013d86: 1ad3 subs r3, r2, r3 + 8013d88: 62bb str r3, [r7, #40] ; 0x28 k++; - 8013e1e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013e20: 3301 adds r3, #1 - 8013e22: 627b str r3, [r7, #36] ; 0x24 + 8013d8a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013d8c: 3301 adds r3, #1 + 8013d8e: 627b str r3, [r7, #36] ; 0x24 if(k >= len) break; - 8013e24: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013e28: 6a7a ldr r2, [r7, #36] ; 0x24 - 8013e2a: 429a cmp r2, r3 - 8013e2c: da05 bge.n 8013e3a + 8013d90: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013d94: 6a7a ldr r2, [r7, #36] ; 0x24 + 8013d96: 429a cmp r2, r3 + 8013d98: da05 bge.n 8013da6 while(px_h > p->spx) { - 8013e2e: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013e30: 6a5b ldr r3, [r3, #36] ; 0x24 - 8013e32: 6aba ldr r2, [r7, #40] ; 0x28 - 8013e34: 429a cmp r2, r3 - 8013e36: dcc1 bgt.n 8013dbc - 8013e38: e000 b.n 8013e3c + 8013d9a: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013d9c: 6a5b ldr r3, [r3, #36] ; 0x24 + 8013d9e: 6aba ldr r2, [r7, #40] ; 0x28 + 8013da0: 429a cmp r2, r3 + 8013da2: dcc1 bgt.n 8013d28 + 8013da4: e000 b.n 8013da8 if(k >= len) break; - 8013e3a: bf00 nop + 8013da6: bf00 nop } if(k < len && k >= 0) { - 8013e3c: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013e40: 6a7a ldr r2, [r7, #36] ; 0x24 - 8013e42: 429a cmp r2, r3 - 8013e44: da34 bge.n 8013eb0 - 8013e46: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013e48: 2b00 cmp r3, #0 - 8013e4a: db31 blt.n 8013eb0 + 8013da8: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013dac: 6a7a ldr r2, [r7, #36] ; 0x24 + 8013dae: 429a cmp r2, r3 + 8013db0: da34 bge.n 8013e1c + 8013db2: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013db4: 2b00 cmp r3, #0 + 8013db6: db31 blt.n 8013e1c int32_t x_inters = (px_h * p->xy_steep) >> 10; - 8013e4c: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013e4e: 699b ldr r3, [r3, #24] - 8013e50: 6aba ldr r2, [r7, #40] ; 0x28 - 8013e52: fb02 f303 mul.w r3, r2, r3 - 8013e56: 129b asrs r3, r3, #10 - 8013e58: 613b str r3, [r7, #16] + 8013db8: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013dba: 699b ldr r3, [r3, #24] + 8013dbc: 6aba ldr r2, [r7, #40] ; 0x28 + 8013dbe: fb02 f303 mul.w r3, r2, r3 + 8013dc2: 129b asrs r3, r3, #10 + 8013dc4: 613b str r3, [r7, #16] m = (x_inters * px_h) >> 9; - 8013e5a: 693b ldr r3, [r7, #16] - 8013e5c: 6aba ldr r2, [r7, #40] ; 0x28 - 8013e5e: fb02 f303 mul.w r3, r2, r3 - 8013e62: 125b asrs r3, r3, #9 - 8013e64: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 8013dc6: 693b ldr r3, [r7, #16] + 8013dc8: 6aba ldr r2, [r7, #40] ; 0x28 + 8013dca: fb02 f303 mul.w r3, r2, r3 + 8013dce: 125b asrs r3, r3, #9 + 8013dd0: f887 3023 strb.w r3, [r7, #35] ; 0x23 if(p->yx_steep < 0) m = 255 - m; - 8013e68: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013e6a: 69db ldr r3, [r3, #28] - 8013e6c: 2b00 cmp r3, #0 - 8013e6e: da04 bge.n 8013e7a - 8013e70: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8013e74: 43db mvns r3, r3 - 8013e76: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 8013dd4: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013dd6: 69db ldr r3, [r3, #28] + 8013dd8: 2b00 cmp r3, #0 + 8013dda: da04 bge.n 8013de6 + 8013ddc: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8013de0: 43db mvns r3, r3 + 8013de2: f887 3023 strb.w r3, [r7, #35] ; 0x23 if(p->inv) m = 255 - m; - 8013e7a: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013e7c: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 8013e80: f003 0302 and.w r3, r3, #2 - 8013e84: b2db uxtb r3, r3 - 8013e86: 2b00 cmp r3, #0 - 8013e88: d004 beq.n 8013e94 - 8013e8a: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8013e8e: 43db mvns r3, r3 - 8013e90: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 8013de6: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013de8: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 8013dec: f003 0302 and.w r3, r3, #2 + 8013df0: b2db uxtb r3, r3 + 8013df2: 2b00 cmp r3, #0 + 8013df4: d004 beq.n 8013e00 + 8013df6: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8013dfa: 43db mvns r3, r3 + 8013dfc: f887 3023 strb.w r3, [r7, #35] ; 0x23 mask_buf[k] = mask_mix(mask_buf[k], m); - 8013e94: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013e96: 68fa ldr r2, [r7, #12] - 8013e98: 4413 add r3, r2 - 8013e9a: 7818 ldrb r0, [r3, #0] - 8013e9c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013e9e: 68fa ldr r2, [r7, #12] - 8013ea0: 18d4 adds r4, r2, r3 - 8013ea2: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8013ea6: 4619 mov r1, r3 - 8013ea8: f001 fc18 bl 80156dc - 8013eac: 4603 mov r3, r0 - 8013eae: 7023 strb r3, [r4, #0] + 8013e00: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013e02: 68fa ldr r2, [r7, #12] + 8013e04: 4413 add r3, r2 + 8013e06: 7818 ldrb r0, [r3, #0] + 8013e08: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013e0a: 68fa ldr r2, [r7, #12] + 8013e0c: 18d4 adds r4, r2, r3 + 8013e0e: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8013e12: 4619 mov r1, r3 + 8013e14: f001 fc18 bl 8015648 + 8013e18: 4603 mov r3, r0 + 8013e1a: 7023 strb r3, [r4, #0] } if(p->inv) { - 8013eb0: 6c3b ldr r3, [r7, #64] ; 0x40 - 8013eb2: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 8013eb6: f003 0302 and.w r3, r3, #2 - 8013eba: b2db uxtb r3, r3 - 8013ebc: 2b00 cmp r3, #0 - 8013ebe: d014 beq.n 8013eea + 8013e1c: 6c3b ldr r3, [r7, #64] ; 0x40 + 8013e1e: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 8013e22: f003 0302 and.w r3, r3, #2 + 8013e26: b2db uxtb r3, r3 + 8013e28: 2b00 cmp r3, #0 + 8013e2a: d014 beq.n 8013e56 k = xei - abs_x; - 8013ec0: f9b7 300a ldrsh.w r3, [r7, #10] - 8013ec4: 69ba ldr r2, [r7, #24] - 8013ec6: 1ad3 subs r3, r2, r3 - 8013ec8: 627b str r3, [r7, #36] ; 0x24 + 8013e2c: f9b7 300a ldrsh.w r3, [r7, #10] + 8013e30: 69ba ldr r2, [r7, #24] + 8013e32: 1ad3 subs r3, r2, r3 + 8013e34: 627b str r3, [r7, #36] ; 0x24 if(k > len) { - 8013eca: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013ece: 6a7a ldr r2, [r7, #36] ; 0x24 - 8013ed0: 429a cmp r2, r3 - 8013ed2: dd01 ble.n 8013ed8 + 8013e36: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013e3a: 6a7a ldr r2, [r7, #36] ; 0x24 + 8013e3c: 429a cmp r2, r3 + 8013e3e: dd01 ble.n 8013e44 return LV_DRAW_MASK_RES_TRANSP; - 8013ed4: 2300 movs r3, #0 - 8013ed6: e020 b.n 8013f1a + 8013e40: 2300 movs r3, #0 + 8013e42: e020 b.n 8013e86 } if(k >= 0) { - 8013ed8: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013eda: 2b00 cmp r3, #0 - 8013edc: db1c blt.n 8013f18 + 8013e44: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013e46: 2b00 cmp r3, #0 + 8013e48: db1c blt.n 8013e84 lv_memset_00(&mask_buf[0], k); - 8013ede: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013ee0: 4619 mov r1, r3 - 8013ee2: 68f8 ldr r0, [r7, #12] - 8013ee4: f01f f934 bl 8033150 - 8013ee8: e016 b.n 8013f18 + 8013e4a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013e4c: 4619 mov r1, r3 + 8013e4e: 68f8 ldr r0, [r7, #12] + 8013e50: f01f f934 bl 80330bc + 8013e54: e016 b.n 8013e84 } } else { k++; - 8013eea: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013eec: 3301 adds r3, #1 - 8013eee: 627b str r3, [r7, #36] ; 0x24 + 8013e56: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013e58: 3301 adds r3, #1 + 8013e5a: 627b str r3, [r7, #36] ; 0x24 if(k < 0) { - 8013ef0: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013ef2: 2b00 cmp r3, #0 - 8013ef4: da01 bge.n 8013efa + 8013e5c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013e5e: 2b00 cmp r3, #0 + 8013e60: da01 bge.n 8013e66 return LV_DRAW_MASK_RES_TRANSP; - 8013ef6: 2300 movs r3, #0 - 8013ef8: e00f b.n 8013f1a + 8013e62: 2300 movs r3, #0 + 8013e64: e00f b.n 8013e86 } if(k <= len) { - 8013efa: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013efe: 6a7a ldr r2, [r7, #36] ; 0x24 - 8013f00: 429a cmp r2, r3 - 8013f02: dc09 bgt.n 8013f18 + 8013e66: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013e6a: 6a7a ldr r2, [r7, #36] ; 0x24 + 8013e6c: 429a cmp r2, r3 + 8013e6e: dc09 bgt.n 8013e84 lv_memset_00(&mask_buf[k], len - k); - 8013f04: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013f06: 68fa ldr r2, [r7, #12] - 8013f08: 18d0 adds r0, r2, r3 - 8013f0a: f9b7 2006 ldrsh.w r2, [r7, #6] - 8013f0e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013f10: 1ad3 subs r3, r2, r3 - 8013f12: 4619 mov r1, r3 - 8013f14: f01f f91c bl 8033150 + 8013e70: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013e72: 68fa ldr r2, [r7, #12] + 8013e74: 18d0 adds r0, r2, r3 + 8013e76: f9b7 2006 ldrsh.w r2, [r7, #6] + 8013e7a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013e7c: 1ad3 subs r3, r2, r3 + 8013e7e: 4619 mov r1, r3 + 8013e80: f01f f91c bl 80330bc } } return LV_DRAW_MASK_RES_CHANGED; - 8013f18: 2302 movs r3, #2 + 8013e84: 2302 movs r3, #2 } - 8013f1a: 4618 mov r0, r3 - 8013f1c: 3734 adds r7, #52 ; 0x34 - 8013f1e: 46bd mov sp, r7 - 8013f20: bd90 pop {r4, r7, pc} + 8013e86: 4618 mov r0, r3 + 8013e88: 3734 adds r7, #52 ; 0x34 + 8013e8a: 46bd mov sp, r7 + 8013e8c: bd90 pop {r4, r7, pc} -08013f22 : +08013e8e : LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t line_mask_steep(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, lv_coord_t len, lv_draw_mask_line_param_t * p) { - 8013f22: b590 push {r4, r7, lr} - 8013f24: b091 sub sp, #68 ; 0x44 - 8013f26: af00 add r7, sp, #0 - 8013f28: 60f8 str r0, [r7, #12] - 8013f2a: 4608 mov r0, r1 - 8013f2c: 4611 mov r1, r2 - 8013f2e: 461a mov r2, r3 - 8013f30: 4603 mov r3, r0 - 8013f32: 817b strh r3, [r7, #10] - 8013f34: 460b mov r3, r1 - 8013f36: 813b strh r3, [r7, #8] - 8013f38: 4613 mov r3, r2 - 8013f3a: 80fb strh r3, [r7, #6] + 8013e8e: b590 push {r4, r7, lr} + 8013e90: b091 sub sp, #68 ; 0x44 + 8013e92: af00 add r7, sp, #0 + 8013e94: 60f8 str r0, [r7, #12] + 8013e96: 4608 mov r0, r1 + 8013e98: 4611 mov r1, r2 + 8013e9a: 461a mov r2, r3 + 8013e9c: 4603 mov r3, r0 + 8013e9e: 817b strh r3, [r7, #10] + 8013ea0: 460b mov r3, r1 + 8013ea2: 813b strh r3, [r7, #8] + 8013ea4: 4613 mov r3, r2 + 8013ea6: 80fb strh r3, [r7, #6] int32_t k; int32_t x_at_y; /*At the beginning of the mask if the limit line is greater than the mask's y. *Then the mask is in the "wrong" area*/ x_at_y = (int32_t)((int32_t)p->xy_steep * abs_y) >> 10; - 8013f3c: 6d3b ldr r3, [r7, #80] ; 0x50 - 8013f3e: 699b ldr r3, [r3, #24] - 8013f40: f9b7 2008 ldrsh.w r2, [r7, #8] - 8013f44: fb02 f303 mul.w r3, r2, r3 - 8013f48: 129b asrs r3, r3, #10 - 8013f4a: 63bb str r3, [r7, #56] ; 0x38 + 8013ea8: 6d3b ldr r3, [r7, #80] ; 0x50 + 8013eaa: 699b ldr r3, [r3, #24] + 8013eac: f9b7 2008 ldrsh.w r2, [r7, #8] + 8013eb0: fb02 f303 mul.w r3, r2, r3 + 8013eb4: 129b asrs r3, r3, #10 + 8013eb6: 63bb str r3, [r7, #56] ; 0x38 if(p->xy_steep > 0) x_at_y++; - 8013f4c: 6d3b ldr r3, [r7, #80] ; 0x50 - 8013f4e: 699b ldr r3, [r3, #24] - 8013f50: 2b00 cmp r3, #0 - 8013f52: dd02 ble.n 8013f5a - 8013f54: 6bbb ldr r3, [r7, #56] ; 0x38 - 8013f56: 3301 adds r3, #1 - 8013f58: 63bb str r3, [r7, #56] ; 0x38 + 8013eb8: 6d3b ldr r3, [r7, #80] ; 0x50 + 8013eba: 699b ldr r3, [r3, #24] + 8013ebc: 2b00 cmp r3, #0 + 8013ebe: dd02 ble.n 8013ec6 + 8013ec0: 6bbb ldr r3, [r7, #56] ; 0x38 + 8013ec2: 3301 adds r3, #1 + 8013ec4: 63bb str r3, [r7, #56] ; 0x38 if(x_at_y < abs_x) { - 8013f5a: f9b7 300a ldrsh.w r3, [r7, #10] - 8013f5e: 6bba ldr r2, [r7, #56] ; 0x38 - 8013f60: 429a cmp r2, r3 - 8013f62: da0b bge.n 8013f7c + 8013ec6: f9b7 300a ldrsh.w r3, [r7, #10] + 8013eca: 6bba ldr r2, [r7, #56] ; 0x38 + 8013ecc: 429a cmp r2, r3 + 8013ece: da0b bge.n 8013ee8 if(p->inv) { - 8013f64: 6d3b ldr r3, [r7, #80] ; 0x50 - 8013f66: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 8013f6a: f003 0302 and.w r3, r3, #2 - 8013f6e: b2db uxtb r3, r3 - 8013f70: 2b00 cmp r3, #0 - 8013f72: d001 beq.n 8013f78 + 8013ed0: 6d3b ldr r3, [r7, #80] ; 0x50 + 8013ed2: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 8013ed6: f003 0302 and.w r3, r3, #2 + 8013eda: b2db uxtb r3, r3 + 8013edc: 2b00 cmp r3, #0 + 8013ede: d001 beq.n 8013ee4 return LV_DRAW_MASK_RES_FULL_COVER; - 8013f74: 2301 movs r3, #1 - 8013f76: e213 b.n 80143a0 + 8013ee0: 2301 movs r3, #1 + 8013ee2: e213 b.n 801430c } else { return LV_DRAW_MASK_RES_TRANSP; - 8013f78: 2300 movs r3, #0 - 8013f7a: e211 b.n 80143a0 + 8013ee4: 2300 movs r3, #0 + 8013ee6: e211 b.n 801430c } } /*At the end of the mask if the limit line is smaller than the mask's y. *Then the mask is in the "good" area*/ x_at_y = (int32_t)((int32_t)p->xy_steep * (abs_y)) >> 10; - 8013f7c: 6d3b ldr r3, [r7, #80] ; 0x50 - 8013f7e: 699b ldr r3, [r3, #24] - 8013f80: f9b7 2008 ldrsh.w r2, [r7, #8] - 8013f84: fb02 f303 mul.w r3, r2, r3 - 8013f88: 129b asrs r3, r3, #10 - 8013f8a: 63bb str r3, [r7, #56] ; 0x38 + 8013ee8: 6d3b ldr r3, [r7, #80] ; 0x50 + 8013eea: 699b ldr r3, [r3, #24] + 8013eec: f9b7 2008 ldrsh.w r2, [r7, #8] + 8013ef0: fb02 f303 mul.w r3, r2, r3 + 8013ef4: 129b asrs r3, r3, #10 + 8013ef6: 63bb str r3, [r7, #56] ; 0x38 if(x_at_y > abs_x + len) { - 8013f8c: f9b7 200a ldrsh.w r2, [r7, #10] - 8013f90: f9b7 3006 ldrsh.w r3, [r7, #6] - 8013f94: 4413 add r3, r2 - 8013f96: 6bba ldr r2, [r7, #56] ; 0x38 - 8013f98: 429a cmp r2, r3 - 8013f9a: dd0b ble.n 8013fb4 + 8013ef8: f9b7 200a ldrsh.w r2, [r7, #10] + 8013efc: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013f00: 4413 add r3, r2 + 8013f02: 6bba ldr r2, [r7, #56] ; 0x38 + 8013f04: 429a cmp r2, r3 + 8013f06: dd0b ble.n 8013f20 if(p->inv) { - 8013f9c: 6d3b ldr r3, [r7, #80] ; 0x50 - 8013f9e: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 8013fa2: f003 0302 and.w r3, r3, #2 - 8013fa6: b2db uxtb r3, r3 - 8013fa8: 2b00 cmp r3, #0 - 8013faa: d001 beq.n 8013fb0 + 8013f08: 6d3b ldr r3, [r7, #80] ; 0x50 + 8013f0a: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 8013f0e: f003 0302 and.w r3, r3, #2 + 8013f12: b2db uxtb r3, r3 + 8013f14: 2b00 cmp r3, #0 + 8013f16: d001 beq.n 8013f1c return LV_DRAW_MASK_RES_TRANSP; - 8013fac: 2300 movs r3, #0 - 8013fae: e1f7 b.n 80143a0 + 8013f18: 2300 movs r3, #0 + 8013f1a: e1f7 b.n 801430c } else { return LV_DRAW_MASK_RES_FULL_COVER; - 8013fb0: 2301 movs r3, #1 - 8013fb2: e1f5 b.n 80143a0 + 8013f1c: 2301 movs r3, #1 + 8013f1e: e1f5 b.n 801430c } } /*X start*/ int32_t xs = ((abs_y * 256) * p->xy_steep) >> 10; - 8013fb4: f9b7 3008 ldrsh.w r3, [r7, #8] - 8013fb8: 021b lsls r3, r3, #8 - 8013fba: 6d3a ldr r2, [r7, #80] ; 0x50 - 8013fbc: 6992 ldr r2, [r2, #24] - 8013fbe: fb02 f303 mul.w r3, r2, r3 - 8013fc2: 129b asrs r3, r3, #10 - 8013fc4: 62bb str r3, [r7, #40] ; 0x28 + 8013f20: f9b7 3008 ldrsh.w r3, [r7, #8] + 8013f24: 021b lsls r3, r3, #8 + 8013f26: 6d3a ldr r2, [r7, #80] ; 0x50 + 8013f28: 6992 ldr r2, [r2, #24] + 8013f2a: fb02 f303 mul.w r3, r2, r3 + 8013f2e: 129b asrs r3, r3, #10 + 8013f30: 62bb str r3, [r7, #40] ; 0x28 int32_t xsi = xs >> 8; - 8013fc6: 6abb ldr r3, [r7, #40] ; 0x28 - 8013fc8: 121b asrs r3, r3, #8 - 8013fca: 637b str r3, [r7, #52] ; 0x34 + 8013f32: 6abb ldr r3, [r7, #40] ; 0x28 + 8013f34: 121b asrs r3, r3, #8 + 8013f36: 637b str r3, [r7, #52] ; 0x34 int32_t xsf = xs & 0xFF; - 8013fcc: 6abb ldr r3, [r7, #40] ; 0x28 - 8013fce: b2db uxtb r3, r3 - 8013fd0: 633b str r3, [r7, #48] ; 0x30 + 8013f38: 6abb ldr r3, [r7, #40] ; 0x28 + 8013f3a: b2db uxtb r3, r3 + 8013f3c: 633b str r3, [r7, #48] ; 0x30 /*X end*/ int32_t xe = (((abs_y + 1) * 256) * p->xy_steep) >> 10; - 8013fd2: f9b7 3008 ldrsh.w r3, [r7, #8] - 8013fd6: 3301 adds r3, #1 - 8013fd8: 021b lsls r3, r3, #8 - 8013fda: 6d3a ldr r2, [r7, #80] ; 0x50 - 8013fdc: 6992 ldr r2, [r2, #24] - 8013fde: fb02 f303 mul.w r3, r2, r3 - 8013fe2: 129b asrs r3, r3, #10 - 8013fe4: 627b str r3, [r7, #36] ; 0x24 + 8013f3e: f9b7 3008 ldrsh.w r3, [r7, #8] + 8013f42: 3301 adds r3, #1 + 8013f44: 021b lsls r3, r3, #8 + 8013f46: 6d3a ldr r2, [r7, #80] ; 0x50 + 8013f48: 6992 ldr r2, [r2, #24] + 8013f4a: fb02 f303 mul.w r3, r2, r3 + 8013f4e: 129b asrs r3, r3, #10 + 8013f50: 627b str r3, [r7, #36] ; 0x24 int32_t xei = xe >> 8; - 8013fe6: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013fe8: 121b asrs r3, r3, #8 - 8013fea: 623b str r3, [r7, #32] + 8013f52: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013f54: 121b asrs r3, r3, #8 + 8013f56: 623b str r3, [r7, #32] int32_t xef = xe & 0xFF; - 8013fec: 6a7b ldr r3, [r7, #36] ; 0x24 - 8013fee: b2db uxtb r3, r3 - 8013ff0: 61fb str r3, [r7, #28] + 8013f58: 6a7b ldr r3, [r7, #36] ; 0x24 + 8013f5a: b2db uxtb r3, r3 + 8013f5c: 61fb str r3, [r7, #28] lv_opa_t m; k = xsi - abs_x; - 8013ff2: f9b7 300a ldrsh.w r3, [r7, #10] - 8013ff6: 6b7a ldr r2, [r7, #52] ; 0x34 - 8013ff8: 1ad3 subs r3, r2, r3 - 8013ffa: 63fb str r3, [r7, #60] ; 0x3c + 8013f5e: f9b7 300a ldrsh.w r3, [r7, #10] + 8013f62: 6b7a ldr r2, [r7, #52] ; 0x34 + 8013f64: 1ad3 subs r3, r2, r3 + 8013f66: 63fb str r3, [r7, #60] ; 0x3c if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) { - 8013ffc: 6b7a ldr r2, [r7, #52] ; 0x34 - 8013ffe: 6a3b ldr r3, [r7, #32] - 8014000: 429a cmp r2, r3 - 8014002: d00d beq.n 8014020 - 8014004: 6d3b ldr r3, [r7, #80] ; 0x50 - 8014006: 699b ldr r3, [r3, #24] - 8014008: 2b00 cmp r3, #0 - 801400a: da09 bge.n 8014020 - 801400c: 6b3b ldr r3, [r7, #48] ; 0x30 - 801400e: 2b00 cmp r3, #0 - 8014010: d106 bne.n 8014020 + 8013f68: 6b7a ldr r2, [r7, #52] ; 0x34 + 8013f6a: 6a3b ldr r3, [r7, #32] + 8013f6c: 429a cmp r2, r3 + 8013f6e: d00d beq.n 8013f8c + 8013f70: 6d3b ldr r3, [r7, #80] ; 0x50 + 8013f72: 699b ldr r3, [r3, #24] + 8013f74: 2b00 cmp r3, #0 + 8013f76: da09 bge.n 8013f8c + 8013f78: 6b3b ldr r3, [r7, #48] ; 0x30 + 8013f7a: 2b00 cmp r3, #0 + 8013f7c: d106 bne.n 8013f8c xsf = 0xFF; - 8014012: 23ff movs r3, #255 ; 0xff - 8014014: 633b str r3, [r7, #48] ; 0x30 + 8013f7e: 23ff movs r3, #255 ; 0xff + 8013f80: 633b str r3, [r7, #48] ; 0x30 xsi = xei; - 8014016: 6a3b ldr r3, [r7, #32] - 8014018: 637b str r3, [r7, #52] ; 0x34 + 8013f82: 6a3b ldr r3, [r7, #32] + 8013f84: 637b str r3, [r7, #52] ; 0x34 k--; - 801401a: 6bfb ldr r3, [r7, #60] ; 0x3c - 801401c: 3b01 subs r3, #1 - 801401e: 63fb str r3, [r7, #60] ; 0x3c + 8013f86: 6bfb ldr r3, [r7, #60] ; 0x3c + 8013f88: 3b01 subs r3, #1 + 8013f8a: 63fb str r3, [r7, #60] ; 0x3c } if(xsi == xei) { - 8014020: 6b7a ldr r2, [r7, #52] ; 0x34 - 8014022: 6a3b ldr r3, [r7, #32] - 8014024: 429a cmp r2, r3 - 8014026: d165 bne.n 80140f4 + 8013f8c: 6b7a ldr r2, [r7, #52] ; 0x34 + 8013f8e: 6a3b ldr r3, [r7, #32] + 8013f90: 429a cmp r2, r3 + 8013f92: d165 bne.n 8014060 if(k >= 0 && k < len) { - 8014028: 6bfb ldr r3, [r7, #60] ; 0x3c - 801402a: 2b00 cmp r3, #0 - 801402c: db25 blt.n 801407a - 801402e: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014032: 6bfa ldr r2, [r7, #60] ; 0x3c - 8014034: 429a cmp r2, r3 - 8014036: da20 bge.n 801407a + 8013f94: 6bfb ldr r3, [r7, #60] ; 0x3c + 8013f96: 2b00 cmp r3, #0 + 8013f98: db25 blt.n 8013fe6 + 8013f9a: f9b7 3006 ldrsh.w r3, [r7, #6] + 8013f9e: 6bfa ldr r2, [r7, #60] ; 0x3c + 8013fa0: 429a cmp r2, r3 + 8013fa2: da20 bge.n 8013fe6 m = (xsf + xef) >> 1; - 8014038: 6b3a ldr r2, [r7, #48] ; 0x30 - 801403a: 69fb ldr r3, [r7, #28] - 801403c: 4413 add r3, r2 - 801403e: 105b asrs r3, r3, #1 - 8014040: f887 302f strb.w r3, [r7, #47] ; 0x2f + 8013fa4: 6b3a ldr r2, [r7, #48] ; 0x30 + 8013fa6: 69fb ldr r3, [r7, #28] + 8013fa8: 4413 add r3, r2 + 8013faa: 105b asrs r3, r3, #1 + 8013fac: f887 302f strb.w r3, [r7, #47] ; 0x2f if(p->inv) m = 255 - m; - 8014044: 6d3b ldr r3, [r7, #80] ; 0x50 - 8014046: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 801404a: f003 0302 and.w r3, r3, #2 - 801404e: b2db uxtb r3, r3 - 8014050: 2b00 cmp r3, #0 - 8014052: d004 beq.n 801405e - 8014054: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8014058: 43db mvns r3, r3 - 801405a: f887 302f strb.w r3, [r7, #47] ; 0x2f + 8013fb0: 6d3b ldr r3, [r7, #80] ; 0x50 + 8013fb2: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 8013fb6: f003 0302 and.w r3, r3, #2 + 8013fba: b2db uxtb r3, r3 + 8013fbc: 2b00 cmp r3, #0 + 8013fbe: d004 beq.n 8013fca + 8013fc0: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8013fc4: 43db mvns r3, r3 + 8013fc6: f887 302f strb.w r3, [r7, #47] ; 0x2f mask_buf[k] = mask_mix(mask_buf[k], m); - 801405e: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014060: 68fa ldr r2, [r7, #12] - 8014062: 4413 add r3, r2 - 8014064: 7818 ldrb r0, [r3, #0] - 8014066: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014068: 68fa ldr r2, [r7, #12] - 801406a: 18d4 adds r4, r2, r3 - 801406c: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8014070: 4619 mov r1, r3 - 8014072: f001 fb33 bl 80156dc - 8014076: 4603 mov r3, r0 - 8014078: 7023 strb r3, [r4, #0] + 8013fca: 6bfb ldr r3, [r7, #60] ; 0x3c + 8013fcc: 68fa ldr r2, [r7, #12] + 8013fce: 4413 add r3, r2 + 8013fd0: 7818 ldrb r0, [r3, #0] + 8013fd2: 6bfb ldr r3, [r7, #60] ; 0x3c + 8013fd4: 68fa ldr r2, [r7, #12] + 8013fd6: 18d4 adds r4, r2, r3 + 8013fd8: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8013fdc: 4619 mov r1, r3 + 8013fde: f001 fb33 bl 8015648 + 8013fe2: 4603 mov r3, r0 + 8013fe4: 7023 strb r3, [r4, #0] } k++; - 801407a: 6bfb ldr r3, [r7, #60] ; 0x3c - 801407c: 3301 adds r3, #1 - 801407e: 63fb str r3, [r7, #60] ; 0x3c + 8013fe6: 6bfb ldr r3, [r7, #60] ; 0x3c + 8013fe8: 3301 adds r3, #1 + 8013fea: 63fb str r3, [r7, #60] ; 0x3c if(p->inv) { - 8014080: 6d3b ldr r3, [r7, #80] ; 0x50 - 8014082: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 8014086: f003 0302 and.w r3, r3, #2 - 801408a: b2db uxtb r3, r3 - 801408c: 2b00 cmp r3, #0 - 801408e: d015 beq.n 80140bc + 8013fec: 6d3b ldr r3, [r7, #80] ; 0x50 + 8013fee: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 8013ff2: f003 0302 and.w r3, r3, #2 + 8013ff6: b2db uxtb r3, r3 + 8013ff8: 2b00 cmp r3, #0 + 8013ffa: d015 beq.n 8014028 k = xsi - abs_x; - 8014090: f9b7 300a ldrsh.w r3, [r7, #10] - 8014094: 6b7a ldr r2, [r7, #52] ; 0x34 - 8014096: 1ad3 subs r3, r2, r3 - 8014098: 63fb str r3, [r7, #60] ; 0x3c + 8013ffc: f9b7 300a ldrsh.w r3, [r7, #10] + 8014000: 6b7a ldr r2, [r7, #52] ; 0x34 + 8014002: 1ad3 subs r3, r2, r3 + 8014004: 63fb str r3, [r7, #60] ; 0x3c if(k >= len) { - 801409a: f9b7 3006 ldrsh.w r3, [r7, #6] - 801409e: 6bfa ldr r2, [r7, #60] ; 0x3c - 80140a0: 429a cmp r2, r3 - 80140a2: db01 blt.n 80140a8 + 8014006: f9b7 3006 ldrsh.w r3, [r7, #6] + 801400a: 6bfa ldr r2, [r7, #60] ; 0x3c + 801400c: 429a cmp r2, r3 + 801400e: db01 blt.n 8014014 return LV_DRAW_MASK_RES_TRANSP; - 80140a4: 2300 movs r3, #0 - 80140a6: e17b b.n 80143a0 + 8014010: 2300 movs r3, #0 + 8014012: e17b b.n 801430c } if(k >= 0) lv_memset_00(&mask_buf[0], k); - 80140a8: 6bfb ldr r3, [r7, #60] ; 0x3c - 80140aa: 2b00 cmp r3, #0 - 80140ac: f2c0 8177 blt.w 801439e - 80140b0: 6bfb ldr r3, [r7, #60] ; 0x3c - 80140b2: 4619 mov r1, r3 - 80140b4: 68f8 ldr r0, [r7, #12] - 80140b6: f01f f84b bl 8033150 - 80140ba: e170 b.n 801439e + 8014014: 6bfb ldr r3, [r7, #60] ; 0x3c + 8014016: 2b00 cmp r3, #0 + 8014018: f2c0 8177 blt.w 801430a + 801401c: 6bfb ldr r3, [r7, #60] ; 0x3c + 801401e: 4619 mov r1, r3 + 8014020: 68f8 ldr r0, [r7, #12] + 8014022: f01f f84b bl 80330bc + 8014026: e170 b.n 801430a } else { if(k > len) k = len; - 80140bc: f9b7 3006 ldrsh.w r3, [r7, #6] - 80140c0: 6bfa ldr r2, [r7, #60] ; 0x3c - 80140c2: 429a cmp r2, r3 - 80140c4: dd02 ble.n 80140cc - 80140c6: f9b7 3006 ldrsh.w r3, [r7, #6] - 80140ca: 63fb str r3, [r7, #60] ; 0x3c + 8014028: f9b7 3006 ldrsh.w r3, [r7, #6] + 801402c: 6bfa ldr r2, [r7, #60] ; 0x3c + 801402e: 429a cmp r2, r3 + 8014030: dd02 ble.n 8014038 + 8014032: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014036: 63fb str r3, [r7, #60] ; 0x3c if(k == 0) return LV_DRAW_MASK_RES_TRANSP; - 80140cc: 6bfb ldr r3, [r7, #60] ; 0x3c - 80140ce: 2b00 cmp r3, #0 - 80140d0: d101 bne.n 80140d6 - 80140d2: 2300 movs r3, #0 - 80140d4: e164 b.n 80143a0 + 8014038: 6bfb ldr r3, [r7, #60] ; 0x3c + 801403a: 2b00 cmp r3, #0 + 801403c: d101 bne.n 8014042 + 801403e: 2300 movs r3, #0 + 8014040: e164 b.n 801430c else if(k > 0) lv_memset_00(&mask_buf[k], len - k); - 80140d6: 6bfb ldr r3, [r7, #60] ; 0x3c - 80140d8: 2b00 cmp r3, #0 - 80140da: f340 8160 ble.w 801439e - 80140de: 6bfb ldr r3, [r7, #60] ; 0x3c - 80140e0: 68fa ldr r2, [r7, #12] - 80140e2: 18d0 adds r0, r2, r3 - 80140e4: f9b7 2006 ldrsh.w r2, [r7, #6] - 80140e8: 6bfb ldr r3, [r7, #60] ; 0x3c - 80140ea: 1ad3 subs r3, r2, r3 - 80140ec: 4619 mov r1, r3 - 80140ee: f01f f82f bl 8033150 - 80140f2: e154 b.n 801439e + 8014042: 6bfb ldr r3, [r7, #60] ; 0x3c + 8014044: 2b00 cmp r3, #0 + 8014046: f340 8160 ble.w 801430a + 801404a: 6bfb ldr r3, [r7, #60] ; 0x3c + 801404c: 68fa ldr r2, [r7, #12] + 801404e: 18d0 adds r0, r2, r3 + 8014050: f9b7 2006 ldrsh.w r2, [r7, #6] + 8014054: 6bfb ldr r3, [r7, #60] ; 0x3c + 8014056: 1ad3 subs r3, r2, r3 + 8014058: 4619 mov r1, r3 + 801405a: f01f f82f bl 80330bc + 801405e: e154 b.n 801430a } } else { int32_t y_inters; if(p->xy_steep < 0) { - 80140f4: 6d3b ldr r3, [r7, #80] ; 0x50 - 80140f6: 699b ldr r3, [r3, #24] - 80140f8: 2b00 cmp r3, #0 - 80140fa: f280 80a7 bge.w 801424c + 8014060: 6d3b ldr r3, [r7, #80] ; 0x50 + 8014062: 699b ldr r3, [r3, #24] + 8014064: 2b00 cmp r3, #0 + 8014066: f280 80a7 bge.w 80141b8 y_inters = (xsf * (-p->yx_steep)) >> 10; - 80140fe: 6d3b ldr r3, [r7, #80] ; 0x50 - 8014100: 69db ldr r3, [r3, #28] - 8014102: 425b negs r3, r3 - 8014104: 6b3a ldr r2, [r7, #48] ; 0x30 - 8014106: fb02 f303 mul.w r3, r2, r3 - 801410a: 129b asrs r3, r3, #10 - 801410c: 61bb str r3, [r7, #24] + 801406a: 6d3b ldr r3, [r7, #80] ; 0x50 + 801406c: 69db ldr r3, [r3, #28] + 801406e: 425b negs r3, r3 + 8014070: 6b3a ldr r2, [r7, #48] ; 0x30 + 8014072: fb02 f303 mul.w r3, r2, r3 + 8014076: 129b asrs r3, r3, #10 + 8014078: 61bb str r3, [r7, #24] if(k >= 0 && k < len) { - 801410e: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014110: 2b00 cmp r3, #0 - 8014112: db26 blt.n 8014162 - 8014114: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014118: 6bfa ldr r2, [r7, #60] ; 0x3c - 801411a: 429a cmp r2, r3 - 801411c: da21 bge.n 8014162 + 801407a: 6bfb ldr r3, [r7, #60] ; 0x3c + 801407c: 2b00 cmp r3, #0 + 801407e: db26 blt.n 80140ce + 8014080: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014084: 6bfa ldr r2, [r7, #60] ; 0x3c + 8014086: 429a cmp r2, r3 + 8014088: da21 bge.n 80140ce m = (y_inters * xsf) >> 9; - 801411e: 69bb ldr r3, [r7, #24] - 8014120: 6b3a ldr r2, [r7, #48] ; 0x30 - 8014122: fb02 f303 mul.w r3, r2, r3 - 8014126: 125b asrs r3, r3, #9 - 8014128: f887 302f strb.w r3, [r7, #47] ; 0x2f + 801408a: 69bb ldr r3, [r7, #24] + 801408c: 6b3a ldr r2, [r7, #48] ; 0x30 + 801408e: fb02 f303 mul.w r3, r2, r3 + 8014092: 125b asrs r3, r3, #9 + 8014094: f887 302f strb.w r3, [r7, #47] ; 0x2f if(p->inv) m = 255 - m; - 801412c: 6d3b ldr r3, [r7, #80] ; 0x50 - 801412e: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 8014132: f003 0302 and.w r3, r3, #2 - 8014136: b2db uxtb r3, r3 - 8014138: 2b00 cmp r3, #0 - 801413a: d004 beq.n 8014146 - 801413c: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8014140: 43db mvns r3, r3 - 8014142: f887 302f strb.w r3, [r7, #47] ; 0x2f + 8014098: 6d3b ldr r3, [r7, #80] ; 0x50 + 801409a: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 801409e: f003 0302 and.w r3, r3, #2 + 80140a2: b2db uxtb r3, r3 + 80140a4: 2b00 cmp r3, #0 + 80140a6: d004 beq.n 80140b2 + 80140a8: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 80140ac: 43db mvns r3, r3 + 80140ae: f887 302f strb.w r3, [r7, #47] ; 0x2f mask_buf[k] = mask_mix(mask_buf[k], m); - 8014146: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014148: 68fa ldr r2, [r7, #12] - 801414a: 4413 add r3, r2 - 801414c: 7818 ldrb r0, [r3, #0] - 801414e: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014150: 68fa ldr r2, [r7, #12] - 8014152: 18d4 adds r4, r2, r3 - 8014154: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8014158: 4619 mov r1, r3 - 801415a: f001 fabf bl 80156dc - 801415e: 4603 mov r3, r0 - 8014160: 7023 strb r3, [r4, #0] + 80140b2: 6bfb ldr r3, [r7, #60] ; 0x3c + 80140b4: 68fa ldr r2, [r7, #12] + 80140b6: 4413 add r3, r2 + 80140b8: 7818 ldrb r0, [r3, #0] + 80140ba: 6bfb ldr r3, [r7, #60] ; 0x3c + 80140bc: 68fa ldr r2, [r7, #12] + 80140be: 18d4 adds r4, r2, r3 + 80140c0: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 80140c4: 4619 mov r1, r3 + 80140c6: f001 fabf bl 8015648 + 80140ca: 4603 mov r3, r0 + 80140cc: 7023 strb r3, [r4, #0] } k--; - 8014162: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014164: 3b01 subs r3, #1 - 8014166: 63fb str r3, [r7, #60] ; 0x3c + 80140ce: 6bfb ldr r3, [r7, #60] ; 0x3c + 80140d0: 3b01 subs r3, #1 + 80140d2: 63fb str r3, [r7, #60] ; 0x3c int32_t x_inters = ((255 - y_inters) * (-p->xy_steep)) >> 10; - 8014168: 69bb ldr r3, [r7, #24] - 801416a: f1c3 03ff rsb r3, r3, #255 ; 0xff - 801416e: 6d3a ldr r2, [r7, #80] ; 0x50 - 8014170: 6992 ldr r2, [r2, #24] - 8014172: 4252 negs r2, r2 - 8014174: fb02 f303 mul.w r3, r2, r3 - 8014178: 129b asrs r3, r3, #10 - 801417a: 613b str r3, [r7, #16] + 80140d4: 69bb ldr r3, [r7, #24] + 80140d6: f1c3 03ff rsb r3, r3, #255 ; 0xff + 80140da: 6d3a ldr r2, [r7, #80] ; 0x50 + 80140dc: 6992 ldr r2, [r2, #24] + 80140de: 4252 negs r2, r2 + 80140e0: fb02 f303 mul.w r3, r2, r3 + 80140e4: 129b asrs r3, r3, #10 + 80140e6: 613b str r3, [r7, #16] if(k >= 0 && k < len) { - 801417c: 6bfb ldr r3, [r7, #60] ; 0x3c - 801417e: 2b00 cmp r3, #0 - 8014180: db2a blt.n 80141d8 - 8014182: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014186: 6bfa ldr r2, [r7, #60] ; 0x3c - 8014188: 429a cmp r2, r3 - 801418a: da25 bge.n 80141d8 + 80140e8: 6bfb ldr r3, [r7, #60] ; 0x3c + 80140ea: 2b00 cmp r3, #0 + 80140ec: db2a blt.n 8014144 + 80140ee: f9b7 3006 ldrsh.w r3, [r7, #6] + 80140f2: 6bfa ldr r2, [r7, #60] ; 0x3c + 80140f4: 429a cmp r2, r3 + 80140f6: da25 bge.n 8014144 m = 255 - (((255 - y_inters) * x_inters) >> 9); - 801418c: 69bb ldr r3, [r7, #24] - 801418e: f1c3 03ff rsb r3, r3, #255 ; 0xff - 8014192: 693a ldr r2, [r7, #16] - 8014194: fb02 f303 mul.w r3, r2, r3 - 8014198: 125b asrs r3, r3, #9 - 801419a: b2db uxtb r3, r3 - 801419c: 43db mvns r3, r3 - 801419e: f887 302f strb.w r3, [r7, #47] ; 0x2f + 80140f8: 69bb ldr r3, [r7, #24] + 80140fa: f1c3 03ff rsb r3, r3, #255 ; 0xff + 80140fe: 693a ldr r2, [r7, #16] + 8014100: fb02 f303 mul.w r3, r2, r3 + 8014104: 125b asrs r3, r3, #9 + 8014106: b2db uxtb r3, r3 + 8014108: 43db mvns r3, r3 + 801410a: f887 302f strb.w r3, [r7, #47] ; 0x2f if(p->inv) m = 255 - m; - 80141a2: 6d3b ldr r3, [r7, #80] ; 0x50 - 80141a4: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 80141a8: f003 0302 and.w r3, r3, #2 - 80141ac: b2db uxtb r3, r3 - 80141ae: 2b00 cmp r3, #0 - 80141b0: d004 beq.n 80141bc - 80141b2: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 80141b6: 43db mvns r3, r3 - 80141b8: f887 302f strb.w r3, [r7, #47] ; 0x2f + 801410e: 6d3b ldr r3, [r7, #80] ; 0x50 + 8014110: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 8014114: f003 0302 and.w r3, r3, #2 + 8014118: b2db uxtb r3, r3 + 801411a: 2b00 cmp r3, #0 + 801411c: d004 beq.n 8014128 + 801411e: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8014122: 43db mvns r3, r3 + 8014124: f887 302f strb.w r3, [r7, #47] ; 0x2f mask_buf[k] = mask_mix(mask_buf[k], m); - 80141bc: 6bfb ldr r3, [r7, #60] ; 0x3c - 80141be: 68fa ldr r2, [r7, #12] - 80141c0: 4413 add r3, r2 - 80141c2: 7818 ldrb r0, [r3, #0] - 80141c4: 6bfb ldr r3, [r7, #60] ; 0x3c - 80141c6: 68fa ldr r2, [r7, #12] - 80141c8: 18d4 adds r4, r2, r3 - 80141ca: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 80141ce: 4619 mov r1, r3 - 80141d0: f001 fa84 bl 80156dc - 80141d4: 4603 mov r3, r0 - 80141d6: 7023 strb r3, [r4, #0] + 8014128: 6bfb ldr r3, [r7, #60] ; 0x3c + 801412a: 68fa ldr r2, [r7, #12] + 801412c: 4413 add r3, r2 + 801412e: 7818 ldrb r0, [r3, #0] + 8014130: 6bfb ldr r3, [r7, #60] ; 0x3c + 8014132: 68fa ldr r2, [r7, #12] + 8014134: 18d4 adds r4, r2, r3 + 8014136: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 801413a: 4619 mov r1, r3 + 801413c: f001 fa84 bl 8015648 + 8014140: 4603 mov r3, r0 + 8014142: 7023 strb r3, [r4, #0] } k += 2; - 80141d8: 6bfb ldr r3, [r7, #60] ; 0x3c - 80141da: 3302 adds r3, #2 - 80141dc: 63fb str r3, [r7, #60] ; 0x3c + 8014144: 6bfb ldr r3, [r7, #60] ; 0x3c + 8014146: 3302 adds r3, #2 + 8014148: 63fb str r3, [r7, #60] ; 0x3c if(p->inv) { - 80141de: 6d3b ldr r3, [r7, #80] ; 0x50 - 80141e0: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 80141e4: f003 0302 and.w r3, r3, #2 - 80141e8: b2db uxtb r3, r3 - 80141ea: 2b00 cmp r3, #0 - 80141ec: d018 beq.n 8014220 + 801414a: 6d3b ldr r3, [r7, #80] ; 0x50 + 801414c: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 8014150: f003 0302 and.w r3, r3, #2 + 8014154: b2db uxtb r3, r3 + 8014156: 2b00 cmp r3, #0 + 8014158: d018 beq.n 801418c k = xsi - abs_x - 1; - 80141ee: f9b7 300a ldrsh.w r3, [r7, #10] - 80141f2: 6b7a ldr r2, [r7, #52] ; 0x34 - 80141f4: 1ad3 subs r3, r2, r3 - 80141f6: 3b01 subs r3, #1 - 80141f8: 63fb str r3, [r7, #60] ; 0x3c + 801415a: f9b7 300a ldrsh.w r3, [r7, #10] + 801415e: 6b7a ldr r2, [r7, #52] ; 0x34 + 8014160: 1ad3 subs r3, r2, r3 + 8014162: 3b01 subs r3, #1 + 8014164: 63fb str r3, [r7, #60] ; 0x3c if(k > len) k = len; - 80141fa: f9b7 3006 ldrsh.w r3, [r7, #6] - 80141fe: 6bfa ldr r2, [r7, #60] ; 0x3c - 8014200: 429a cmp r2, r3 - 8014202: dd03 ble.n 801420c - 8014204: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014208: 63fb str r3, [r7, #60] ; 0x3c - 801420a: e0c8 b.n 801439e + 8014166: f9b7 3006 ldrsh.w r3, [r7, #6] + 801416a: 6bfa ldr r2, [r7, #60] ; 0x3c + 801416c: 429a cmp r2, r3 + 801416e: dd03 ble.n 8014178 + 8014170: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014174: 63fb str r3, [r7, #60] ; 0x3c + 8014176: e0c8 b.n 801430a else if(k > 0) lv_memset_00(&mask_buf[0], k); - 801420c: 6bfb ldr r3, [r7, #60] ; 0x3c - 801420e: 2b00 cmp r3, #0 - 8014210: f340 80c5 ble.w 801439e - 8014214: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014216: 4619 mov r1, r3 - 8014218: 68f8 ldr r0, [r7, #12] - 801421a: f01e ff99 bl 8033150 - 801421e: e0be b.n 801439e + 8014178: 6bfb ldr r3, [r7, #60] ; 0x3c + 801417a: 2b00 cmp r3, #0 + 801417c: f340 80c5 ble.w 801430a + 8014180: 6bfb ldr r3, [r7, #60] ; 0x3c + 8014182: 4619 mov r1, r3 + 8014184: 68f8 ldr r0, [r7, #12] + 8014186: f01e ff99 bl 80330bc + 801418a: e0be b.n 801430a } else { if(k > len) return LV_DRAW_MASK_RES_FULL_COVER; - 8014220: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014224: 6bfa ldr r2, [r7, #60] ; 0x3c - 8014226: 429a cmp r2, r3 - 8014228: dd01 ble.n 801422e - 801422a: 2301 movs r3, #1 - 801422c: e0b8 b.n 80143a0 + 801418c: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014190: 6bfa ldr r2, [r7, #60] ; 0x3c + 8014192: 429a cmp r2, r3 + 8014194: dd01 ble.n 801419a + 8014196: 2301 movs r3, #1 + 8014198: e0b8 b.n 801430c if(k >= 0) lv_memset_00(&mask_buf[k], len - k); - 801422e: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014230: 2b00 cmp r3, #0 - 8014232: f2c0 80b4 blt.w 801439e - 8014236: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014238: 68fa ldr r2, [r7, #12] - 801423a: 18d0 adds r0, r2, r3 - 801423c: f9b7 2006 ldrsh.w r2, [r7, #6] - 8014240: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014242: 1ad3 subs r3, r2, r3 - 8014244: 4619 mov r1, r3 - 8014246: f01e ff83 bl 8033150 - 801424a: e0a8 b.n 801439e + 801419a: 6bfb ldr r3, [r7, #60] ; 0x3c + 801419c: 2b00 cmp r3, #0 + 801419e: f2c0 80b4 blt.w 801430a + 80141a2: 6bfb ldr r3, [r7, #60] ; 0x3c + 80141a4: 68fa ldr r2, [r7, #12] + 80141a6: 18d0 adds r0, r2, r3 + 80141a8: f9b7 2006 ldrsh.w r2, [r7, #6] + 80141ac: 6bfb ldr r3, [r7, #60] ; 0x3c + 80141ae: 1ad3 subs r3, r2, r3 + 80141b0: 4619 mov r1, r3 + 80141b2: f01e ff83 bl 80330bc + 80141b6: e0a8 b.n 801430a } } else { y_inters = ((255 - xsf) * p->yx_steep) >> 10; - 801424c: 6b3b ldr r3, [r7, #48] ; 0x30 - 801424e: f1c3 03ff rsb r3, r3, #255 ; 0xff - 8014252: 6d3a ldr r2, [r7, #80] ; 0x50 - 8014254: 69d2 ldr r2, [r2, #28] - 8014256: fb02 f303 mul.w r3, r2, r3 - 801425a: 129b asrs r3, r3, #10 - 801425c: 61bb str r3, [r7, #24] + 80141b8: 6b3b ldr r3, [r7, #48] ; 0x30 + 80141ba: f1c3 03ff rsb r3, r3, #255 ; 0xff + 80141be: 6d3a ldr r2, [r7, #80] ; 0x50 + 80141c0: 69d2 ldr r2, [r2, #28] + 80141c2: fb02 f303 mul.w r3, r2, r3 + 80141c6: 129b asrs r3, r3, #10 + 80141c8: 61bb str r3, [r7, #24] if(k >= 0 && k < len) { - 801425e: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014260: 2b00 cmp r3, #0 - 8014262: db2a blt.n 80142ba - 8014264: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014268: 6bfa ldr r2, [r7, #60] ; 0x3c - 801426a: 429a cmp r2, r3 - 801426c: da25 bge.n 80142ba + 80141ca: 6bfb ldr r3, [r7, #60] ; 0x3c + 80141cc: 2b00 cmp r3, #0 + 80141ce: db2a blt.n 8014226 + 80141d0: f9b7 3006 ldrsh.w r3, [r7, #6] + 80141d4: 6bfa ldr r2, [r7, #60] ; 0x3c + 80141d6: 429a cmp r2, r3 + 80141d8: da25 bge.n 8014226 m = 255 - ((y_inters * (255 - xsf)) >> 9); - 801426e: 6b3b ldr r3, [r7, #48] ; 0x30 - 8014270: f1c3 03ff rsb r3, r3, #255 ; 0xff - 8014274: 69ba ldr r2, [r7, #24] - 8014276: fb02 f303 mul.w r3, r2, r3 - 801427a: 125b asrs r3, r3, #9 - 801427c: b2db uxtb r3, r3 - 801427e: 43db mvns r3, r3 - 8014280: f887 302f strb.w r3, [r7, #47] ; 0x2f + 80141da: 6b3b ldr r3, [r7, #48] ; 0x30 + 80141dc: f1c3 03ff rsb r3, r3, #255 ; 0xff + 80141e0: 69ba ldr r2, [r7, #24] + 80141e2: fb02 f303 mul.w r3, r2, r3 + 80141e6: 125b asrs r3, r3, #9 + 80141e8: b2db uxtb r3, r3 + 80141ea: 43db mvns r3, r3 + 80141ec: f887 302f strb.w r3, [r7, #47] ; 0x2f if(p->inv) m = 255 - m; - 8014284: 6d3b ldr r3, [r7, #80] ; 0x50 - 8014286: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 801428a: f003 0302 and.w r3, r3, #2 - 801428e: b2db uxtb r3, r3 - 8014290: 2b00 cmp r3, #0 - 8014292: d004 beq.n 801429e - 8014294: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8014298: 43db mvns r3, r3 - 801429a: f887 302f strb.w r3, [r7, #47] ; 0x2f + 80141f0: 6d3b ldr r3, [r7, #80] ; 0x50 + 80141f2: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 80141f6: f003 0302 and.w r3, r3, #2 + 80141fa: b2db uxtb r3, r3 + 80141fc: 2b00 cmp r3, #0 + 80141fe: d004 beq.n 801420a + 8014200: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8014204: 43db mvns r3, r3 + 8014206: f887 302f strb.w r3, [r7, #47] ; 0x2f mask_buf[k] = mask_mix(mask_buf[k], m); - 801429e: 6bfb ldr r3, [r7, #60] ; 0x3c - 80142a0: 68fa ldr r2, [r7, #12] - 80142a2: 4413 add r3, r2 - 80142a4: 7818 ldrb r0, [r3, #0] - 80142a6: 6bfb ldr r3, [r7, #60] ; 0x3c - 80142a8: 68fa ldr r2, [r7, #12] - 80142aa: 18d4 adds r4, r2, r3 - 80142ac: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 80142b0: 4619 mov r1, r3 - 80142b2: f001 fa13 bl 80156dc - 80142b6: 4603 mov r3, r0 - 80142b8: 7023 strb r3, [r4, #0] + 801420a: 6bfb ldr r3, [r7, #60] ; 0x3c + 801420c: 68fa ldr r2, [r7, #12] + 801420e: 4413 add r3, r2 + 8014210: 7818 ldrb r0, [r3, #0] + 8014212: 6bfb ldr r3, [r7, #60] ; 0x3c + 8014214: 68fa ldr r2, [r7, #12] + 8014216: 18d4 adds r4, r2, r3 + 8014218: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 801421c: 4619 mov r1, r3 + 801421e: f001 fa13 bl 8015648 + 8014222: 4603 mov r3, r0 + 8014224: 7023 strb r3, [r4, #0] } k++; - 80142ba: 6bfb ldr r3, [r7, #60] ; 0x3c - 80142bc: 3301 adds r3, #1 - 80142be: 63fb str r3, [r7, #60] ; 0x3c + 8014226: 6bfb ldr r3, [r7, #60] ; 0x3c + 8014228: 3301 adds r3, #1 + 801422a: 63fb str r3, [r7, #60] ; 0x3c int32_t x_inters = ((255 - y_inters) * p->xy_steep) >> 10; - 80142c0: 69bb ldr r3, [r7, #24] - 80142c2: f1c3 03ff rsb r3, r3, #255 ; 0xff - 80142c6: 6d3a ldr r2, [r7, #80] ; 0x50 - 80142c8: 6992 ldr r2, [r2, #24] - 80142ca: fb02 f303 mul.w r3, r2, r3 - 80142ce: 129b asrs r3, r3, #10 - 80142d0: 617b str r3, [r7, #20] + 801422c: 69bb ldr r3, [r7, #24] + 801422e: f1c3 03ff rsb r3, r3, #255 ; 0xff + 8014232: 6d3a ldr r2, [r7, #80] ; 0x50 + 8014234: 6992 ldr r2, [r2, #24] + 8014236: fb02 f303 mul.w r3, r2, r3 + 801423a: 129b asrs r3, r3, #10 + 801423c: 617b str r3, [r7, #20] if(k >= 0 && k < len) { - 80142d2: 6bfb ldr r3, [r7, #60] ; 0x3c - 80142d4: 2b00 cmp r3, #0 - 80142d6: db28 blt.n 801432a - 80142d8: f9b7 3006 ldrsh.w r3, [r7, #6] - 80142dc: 6bfa ldr r2, [r7, #60] ; 0x3c - 80142de: 429a cmp r2, r3 - 80142e0: da23 bge.n 801432a + 801423e: 6bfb ldr r3, [r7, #60] ; 0x3c + 8014240: 2b00 cmp r3, #0 + 8014242: db28 blt.n 8014296 + 8014244: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014248: 6bfa ldr r2, [r7, #60] ; 0x3c + 801424a: 429a cmp r2, r3 + 801424c: da23 bge.n 8014296 m = ((255 - y_inters) * x_inters) >> 9; - 80142e2: 69bb ldr r3, [r7, #24] - 80142e4: f1c3 03ff rsb r3, r3, #255 ; 0xff - 80142e8: 697a ldr r2, [r7, #20] - 80142ea: fb02 f303 mul.w r3, r2, r3 - 80142ee: 125b asrs r3, r3, #9 - 80142f0: f887 302f strb.w r3, [r7, #47] ; 0x2f + 801424e: 69bb ldr r3, [r7, #24] + 8014250: f1c3 03ff rsb r3, r3, #255 ; 0xff + 8014254: 697a ldr r2, [r7, #20] + 8014256: fb02 f303 mul.w r3, r2, r3 + 801425a: 125b asrs r3, r3, #9 + 801425c: f887 302f strb.w r3, [r7, #47] ; 0x2f if(p->inv) m = 255 - m; - 80142f4: 6d3b ldr r3, [r7, #80] ; 0x50 - 80142f6: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 80142fa: f003 0302 and.w r3, r3, #2 - 80142fe: b2db uxtb r3, r3 - 8014300: 2b00 cmp r3, #0 - 8014302: d004 beq.n 801430e - 8014304: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8014308: 43db mvns r3, r3 - 801430a: f887 302f strb.w r3, [r7, #47] ; 0x2f + 8014260: 6d3b ldr r3, [r7, #80] ; 0x50 + 8014262: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 8014266: f003 0302 and.w r3, r3, #2 + 801426a: b2db uxtb r3, r3 + 801426c: 2b00 cmp r3, #0 + 801426e: d004 beq.n 801427a + 8014270: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8014274: 43db mvns r3, r3 + 8014276: f887 302f strb.w r3, [r7, #47] ; 0x2f mask_buf[k] = mask_mix(mask_buf[k], m); - 801430e: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014310: 68fa ldr r2, [r7, #12] - 8014312: 4413 add r3, r2 - 8014314: 7818 ldrb r0, [r3, #0] - 8014316: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014318: 68fa ldr r2, [r7, #12] - 801431a: 18d4 adds r4, r2, r3 - 801431c: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8014320: 4619 mov r1, r3 - 8014322: f001 f9db bl 80156dc - 8014326: 4603 mov r3, r0 - 8014328: 7023 strb r3, [r4, #0] + 801427a: 6bfb ldr r3, [r7, #60] ; 0x3c + 801427c: 68fa ldr r2, [r7, #12] + 801427e: 4413 add r3, r2 + 8014280: 7818 ldrb r0, [r3, #0] + 8014282: 6bfb ldr r3, [r7, #60] ; 0x3c + 8014284: 68fa ldr r2, [r7, #12] + 8014286: 18d4 adds r4, r2, r3 + 8014288: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 801428c: 4619 mov r1, r3 + 801428e: f001 f9db bl 8015648 + 8014292: 4603 mov r3, r0 + 8014294: 7023 strb r3, [r4, #0] } k++; - 801432a: 6bfb ldr r3, [r7, #60] ; 0x3c - 801432c: 3301 adds r3, #1 - 801432e: 63fb str r3, [r7, #60] ; 0x3c + 8014296: 6bfb ldr r3, [r7, #60] ; 0x3c + 8014298: 3301 adds r3, #1 + 801429a: 63fb str r3, [r7, #60] ; 0x3c if(p->inv) { - 8014330: 6d3b ldr r3, [r7, #80] ; 0x50 - 8014332: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 8014336: f003 0302 and.w r3, r3, #2 - 801433a: b2db uxtb r3, r3 - 801433c: 2b00 cmp r3, #0 - 801433e: d014 beq.n 801436a + 801429c: 6d3b ldr r3, [r7, #80] ; 0x50 + 801429e: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 80142a2: f003 0302 and.w r3, r3, #2 + 80142a6: b2db uxtb r3, r3 + 80142a8: 2b00 cmp r3, #0 + 80142aa: d014 beq.n 80142d6 k = xsi - abs_x; - 8014340: f9b7 300a ldrsh.w r3, [r7, #10] - 8014344: 6b7a ldr r2, [r7, #52] ; 0x34 - 8014346: 1ad3 subs r3, r2, r3 - 8014348: 63fb str r3, [r7, #60] ; 0x3c + 80142ac: f9b7 300a ldrsh.w r3, [r7, #10] + 80142b0: 6b7a ldr r2, [r7, #52] ; 0x34 + 80142b2: 1ad3 subs r3, r2, r3 + 80142b4: 63fb str r3, [r7, #60] ; 0x3c if(k > len) return LV_DRAW_MASK_RES_TRANSP; - 801434a: f9b7 3006 ldrsh.w r3, [r7, #6] - 801434e: 6bfa ldr r2, [r7, #60] ; 0x3c - 8014350: 429a cmp r2, r3 - 8014352: dd01 ble.n 8014358 - 8014354: 2300 movs r3, #0 - 8014356: e023 b.n 80143a0 + 80142b6: f9b7 3006 ldrsh.w r3, [r7, #6] + 80142ba: 6bfa ldr r2, [r7, #60] ; 0x3c + 80142bc: 429a cmp r2, r3 + 80142be: dd01 ble.n 80142c4 + 80142c0: 2300 movs r3, #0 + 80142c2: e023 b.n 801430c if(k >= 0) lv_memset_00(&mask_buf[0], k); - 8014358: 6bfb ldr r3, [r7, #60] ; 0x3c - 801435a: 2b00 cmp r3, #0 - 801435c: db1f blt.n 801439e - 801435e: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014360: 4619 mov r1, r3 - 8014362: 68f8 ldr r0, [r7, #12] - 8014364: f01e fef4 bl 8033150 - 8014368: e019 b.n 801439e + 80142c4: 6bfb ldr r3, [r7, #60] ; 0x3c + 80142c6: 2b00 cmp r3, #0 + 80142c8: db1f blt.n 801430a + 80142ca: 6bfb ldr r3, [r7, #60] ; 0x3c + 80142cc: 4619 mov r1, r3 + 80142ce: 68f8 ldr r0, [r7, #12] + 80142d0: f01e fef4 bl 80330bc + 80142d4: e019 b.n 801430a } else { if(k > len) k = len; - 801436a: f9b7 3006 ldrsh.w r3, [r7, #6] - 801436e: 6bfa ldr r2, [r7, #60] ; 0x3c - 8014370: 429a cmp r2, r3 - 8014372: dd02 ble.n 801437a - 8014374: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014378: 63fb str r3, [r7, #60] ; 0x3c + 80142d6: f9b7 3006 ldrsh.w r3, [r7, #6] + 80142da: 6bfa ldr r2, [r7, #60] ; 0x3c + 80142dc: 429a cmp r2, r3 + 80142de: dd02 ble.n 80142e6 + 80142e0: f9b7 3006 ldrsh.w r3, [r7, #6] + 80142e4: 63fb str r3, [r7, #60] ; 0x3c if(k == 0) return LV_DRAW_MASK_RES_TRANSP; - 801437a: 6bfb ldr r3, [r7, #60] ; 0x3c - 801437c: 2b00 cmp r3, #0 - 801437e: d101 bne.n 8014384 - 8014380: 2300 movs r3, #0 - 8014382: e00d b.n 80143a0 + 80142e6: 6bfb ldr r3, [r7, #60] ; 0x3c + 80142e8: 2b00 cmp r3, #0 + 80142ea: d101 bne.n 80142f0 + 80142ec: 2300 movs r3, #0 + 80142ee: e00d b.n 801430c else if(k > 0) lv_memset_00(&mask_buf[k], len - k); - 8014384: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014386: 2b00 cmp r3, #0 - 8014388: dd09 ble.n 801439e - 801438a: 6bfb ldr r3, [r7, #60] ; 0x3c - 801438c: 68fa ldr r2, [r7, #12] - 801438e: 18d0 adds r0, r2, r3 - 8014390: f9b7 2006 ldrsh.w r2, [r7, #6] - 8014394: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014396: 1ad3 subs r3, r2, r3 - 8014398: 4619 mov r1, r3 - 801439a: f01e fed9 bl 8033150 + 80142f0: 6bfb ldr r3, [r7, #60] ; 0x3c + 80142f2: 2b00 cmp r3, #0 + 80142f4: dd09 ble.n 801430a + 80142f6: 6bfb ldr r3, [r7, #60] ; 0x3c + 80142f8: 68fa ldr r2, [r7, #12] + 80142fa: 18d0 adds r0, r2, r3 + 80142fc: f9b7 2006 ldrsh.w r2, [r7, #6] + 8014300: 6bfb ldr r3, [r7, #60] ; 0x3c + 8014302: 1ad3 subs r3, r2, r3 + 8014304: 4619 mov r1, r3 + 8014306: f01e fed9 bl 80330bc } } } return LV_DRAW_MASK_RES_CHANGED; - 801439e: 2302 movs r3, #2 + 801430a: 2302 movs r3, #2 } - 80143a0: 4618 mov r0, r3 - 80143a2: 3744 adds r7, #68 ; 0x44 - 80143a4: 46bd mov sp, r7 - 80143a6: bd90 pop {r4, r7, pc} + 801430c: 4618 mov r0, r3 + 801430e: 3744 adds r7, #68 ; 0x44 + 8014310: 46bd mov sp, r7 + 8014312: bd90 pop {r4, r7, pc} -080143a8 : +08014314 : LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_angle(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, lv_coord_t len, lv_draw_mask_angle_param_t * p) { - 80143a8: b590 push {r4, r7, lr} - 80143aa: b097 sub sp, #92 ; 0x5c - 80143ac: af02 add r7, sp, #8 - 80143ae: 60f8 str r0, [r7, #12] - 80143b0: 4608 mov r0, r1 - 80143b2: 4611 mov r1, r2 - 80143b4: 461a mov r2, r3 - 80143b6: 4603 mov r3, r0 - 80143b8: 817b strh r3, [r7, #10] - 80143ba: 460b mov r3, r1 - 80143bc: 813b strh r3, [r7, #8] - 80143be: 4613 mov r3, r2 - 80143c0: 80fb strh r3, [r7, #6] + 8014314: b590 push {r4, r7, lr} + 8014316: b097 sub sp, #92 ; 0x5c + 8014318: af02 add r7, sp, #8 + 801431a: 60f8 str r0, [r7, #12] + 801431c: 4608 mov r0, r1 + 801431e: 4611 mov r1, r2 + 8014320: 461a mov r2, r3 + 8014322: 4603 mov r3, r0 + 8014324: 817b strh r3, [r7, #10] + 8014326: 460b mov r3, r1 + 8014328: 813b strh r3, [r7, #8] + 801432a: 4613 mov r3, r2 + 801432c: 80fb strh r3, [r7, #6] int32_t rel_y = abs_y - p->cfg.vertex_p.y; - 80143c2: f9b7 3008 ldrsh.w r3, [r7, #8] - 80143c6: 6e3a ldr r2, [r7, #96] ; 0x60 - 80143c8: f9b2 200a ldrsh.w r2, [r2, #10] - 80143cc: 1a9b subs r3, r3, r2 - 80143ce: 633b str r3, [r7, #48] ; 0x30 + 801432e: f9b7 3008 ldrsh.w r3, [r7, #8] + 8014332: 6e3a ldr r2, [r7, #96] ; 0x60 + 8014334: f9b2 200a ldrsh.w r2, [r2, #10] + 8014338: 1a9b subs r3, r3, r2 + 801433a: 633b str r3, [r7, #48] ; 0x30 int32_t rel_x = abs_x - p->cfg.vertex_p.x; - 80143d0: f9b7 300a ldrsh.w r3, [r7, #10] - 80143d4: 6e3a ldr r2, [r7, #96] ; 0x60 - 80143d6: f9b2 2008 ldrsh.w r2, [r2, #8] - 80143da: 1a9b subs r3, r3, r2 - 80143dc: 62fb str r3, [r7, #44] ; 0x2c + 801433c: f9b7 300a ldrsh.w r3, [r7, #10] + 8014340: 6e3a ldr r2, [r7, #96] ; 0x60 + 8014342: f9b2 2008 ldrsh.w r2, [r2, #8] + 8014346: 1a9b subs r3, r3, r2 + 8014348: 62fb str r3, [r7, #44] ; 0x2c if(p->cfg.start_angle < 180 && p->cfg.end_angle < 180 && - 80143de: 6e3b ldr r3, [r7, #96] ; 0x60 - 80143e0: f9b3 300c ldrsh.w r3, [r3, #12] - 80143e4: 2bb3 cmp r3, #179 ; 0xb3 - 80143e6: f300 810c bgt.w 8014602 - 80143ea: 6e3b ldr r3, [r7, #96] ; 0x60 - 80143ec: f9b3 300e ldrsh.w r3, [r3, #14] - 80143f0: 2bb3 cmp r3, #179 ; 0xb3 - 80143f2: f300 8106 bgt.w 8014602 + 801434a: 6e3b ldr r3, [r7, #96] ; 0x60 + 801434c: f9b3 300c ldrsh.w r3, [r3, #12] + 8014350: 2bb3 cmp r3, #179 ; 0xb3 + 8014352: f300 810c bgt.w 801456e + 8014356: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014358: f9b3 300e ldrsh.w r3, [r3, #14] + 801435c: 2bb3 cmp r3, #179 ; 0xb3 + 801435e: f300 8106 bgt.w 801456e p->cfg.start_angle != 0 && p->cfg.end_angle != 0 && - 80143f6: 6e3b ldr r3, [r7, #96] ; 0x60 - 80143f8: f9b3 300c ldrsh.w r3, [r3, #12] + 8014362: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014364: f9b3 300c ldrsh.w r3, [r3, #12] if(p->cfg.start_angle < 180 && p->cfg.end_angle < 180 && - 80143fc: 2b00 cmp r3, #0 - 80143fe: f000 8100 beq.w 8014602 + 8014368: 2b00 cmp r3, #0 + 801436a: f000 8100 beq.w 801456e p->cfg.start_angle != 0 && p->cfg.end_angle != 0 && - 8014402: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014404: f9b3 300e ldrsh.w r3, [r3, #14] - 8014408: 2b00 cmp r3, #0 - 801440a: f000 80fa beq.w 8014602 + 801436e: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014370: f9b3 300e ldrsh.w r3, [r3, #14] + 8014374: 2b00 cmp r3, #0 + 8014376: f000 80fa beq.w 801456e p->cfg.start_angle > p->cfg.end_angle) { - 801440e: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014410: f9b3 200c ldrsh.w r2, [r3, #12] - 8014414: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014416: f9b3 300e ldrsh.w r3, [r3, #14] + 801437a: 6e3b ldr r3, [r7, #96] ; 0x60 + 801437c: f9b3 200c ldrsh.w r2, [r3, #12] + 8014380: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014382: f9b3 300e ldrsh.w r3, [r3, #14] p->cfg.start_angle != 0 && p->cfg.end_angle != 0 && - 801441a: 429a cmp r2, r3 - 801441c: f340 80f1 ble.w 8014602 + 8014386: 429a cmp r2, r3 + 8014388: f340 80f1 ble.w 801456e if(abs_y < p->cfg.vertex_p.y) { - 8014420: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014422: f9b3 300a ldrsh.w r3, [r3, #10] - 8014426: f9b7 2008 ldrsh.w r2, [r7, #8] - 801442a: 429a cmp r2, r3 - 801442c: da01 bge.n 8014432 + 801438c: 6e3b ldr r3, [r7, #96] ; 0x60 + 801438e: f9b3 300a ldrsh.w r3, [r3, #10] + 8014392: f9b7 2008 ldrsh.w r2, [r7, #8] + 8014396: 429a cmp r2, r3 + 8014398: da01 bge.n 801439e return LV_DRAW_MASK_RES_FULL_COVER; - 801442e: 2301 movs r3, #1 - 8014430: e2b6 b.n 80149a0 + 801439a: 2301 movs r3, #1 + 801439c: e2b6 b.n 801490c } /*Start angle mask can work only from the end of end angle mask*/ int32_t end_angle_first = (rel_y * p->end_line.xy_steep) >> 10; - 8014432: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014434: 6d5b ldr r3, [r3, #84] ; 0x54 - 8014436: 6b3a ldr r2, [r7, #48] ; 0x30 - 8014438: fb02 f303 mul.w r3, r2, r3 - 801443c: 129b asrs r3, r3, #10 - 801443e: 62bb str r3, [r7, #40] ; 0x28 + 801439e: 6e3b ldr r3, [r7, #96] ; 0x60 + 80143a0: 6d5b ldr r3, [r3, #84] ; 0x54 + 80143a2: 6b3a ldr r2, [r7, #48] ; 0x30 + 80143a4: fb02 f303 mul.w r3, r2, r3 + 80143a8: 129b asrs r3, r3, #10 + 80143aa: 62bb str r3, [r7, #40] ; 0x28 int32_t start_angle_last = ((rel_y + 1) * p->start_line.xy_steep) >> 10; - 8014440: 6b3b ldr r3, [r7, #48] ; 0x30 - 8014442: 3301 adds r3, #1 - 8014444: 6e3a ldr r2, [r7, #96] ; 0x60 - 8014446: 6a92 ldr r2, [r2, #40] ; 0x28 - 8014448: fb02 f303 mul.w r3, r2, r3 - 801444c: 129b asrs r3, r3, #10 - 801444e: 64fb str r3, [r7, #76] ; 0x4c + 80143ac: 6b3b ldr r3, [r7, #48] ; 0x30 + 80143ae: 3301 adds r3, #1 + 80143b0: 6e3a ldr r2, [r7, #96] ; 0x60 + 80143b2: 6a92 ldr r2, [r2, #40] ; 0x28 + 80143b4: fb02 f303 mul.w r3, r2, r3 + 80143b8: 129b asrs r3, r3, #10 + 80143ba: 64fb str r3, [r7, #76] ; 0x4c /*Do not let the line end cross the vertex else it will affect the opposite part*/ if(p->cfg.start_angle > 270 && p->cfg.start_angle <= 359 && start_angle_last < 0) start_angle_last = 0; - 8014450: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014452: f9b3 300c ldrsh.w r3, [r3, #12] - 8014456: f5b3 7f87 cmp.w r3, #270 ; 0x10e - 801445a: dd0b ble.n 8014474 - 801445c: 6e3b ldr r3, [r7, #96] ; 0x60 - 801445e: f9b3 300c ldrsh.w r3, [r3, #12] - 8014462: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 8014466: da05 bge.n 8014474 - 8014468: 6cfb ldr r3, [r7, #76] ; 0x4c - 801446a: 2b00 cmp r3, #0 - 801446c: da02 bge.n 8014474 - 801446e: 2300 movs r3, #0 - 8014470: 64fb str r3, [r7, #76] ; 0x4c - 8014472: e01f b.n 80144b4 + 80143bc: 6e3b ldr r3, [r7, #96] ; 0x60 + 80143be: f9b3 300c ldrsh.w r3, [r3, #12] + 80143c2: f5b3 7f87 cmp.w r3, #270 ; 0x10e + 80143c6: dd0b ble.n 80143e0 + 80143c8: 6e3b ldr r3, [r7, #96] ; 0x60 + 80143ca: f9b3 300c ldrsh.w r3, [r3, #12] + 80143ce: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 80143d2: da05 bge.n 80143e0 + 80143d4: 6cfb ldr r3, [r7, #76] ; 0x4c + 80143d6: 2b00 cmp r3, #0 + 80143d8: da02 bge.n 80143e0 + 80143da: 2300 movs r3, #0 + 80143dc: 64fb str r3, [r7, #76] ; 0x4c + 80143de: e01f b.n 8014420 else if(p->cfg.start_angle > 0 && p->cfg.start_angle <= 90 && start_angle_last < 0) start_angle_last = 0; - 8014474: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014476: f9b3 300c ldrsh.w r3, [r3, #12] - 801447a: 2b00 cmp r3, #0 - 801447c: dd0a ble.n 8014494 - 801447e: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014480: f9b3 300c ldrsh.w r3, [r3, #12] - 8014484: 2b5a cmp r3, #90 ; 0x5a - 8014486: dc05 bgt.n 8014494 - 8014488: 6cfb ldr r3, [r7, #76] ; 0x4c - 801448a: 2b00 cmp r3, #0 - 801448c: da02 bge.n 8014494 - 801448e: 2300 movs r3, #0 - 8014490: 64fb str r3, [r7, #76] ; 0x4c - 8014492: e00f b.n 80144b4 + 80143e0: 6e3b ldr r3, [r7, #96] ; 0x60 + 80143e2: f9b3 300c ldrsh.w r3, [r3, #12] + 80143e6: 2b00 cmp r3, #0 + 80143e8: dd0a ble.n 8014400 + 80143ea: 6e3b ldr r3, [r7, #96] ; 0x60 + 80143ec: f9b3 300c ldrsh.w r3, [r3, #12] + 80143f0: 2b5a cmp r3, #90 ; 0x5a + 80143f2: dc05 bgt.n 8014400 + 80143f4: 6cfb ldr r3, [r7, #76] ; 0x4c + 80143f6: 2b00 cmp r3, #0 + 80143f8: da02 bge.n 8014400 + 80143fa: 2300 movs r3, #0 + 80143fc: 64fb str r3, [r7, #76] ; 0x4c + 80143fe: e00f b.n 8014420 else if(p->cfg.start_angle > 90 && p->cfg.start_angle < 270 && start_angle_last > 0) start_angle_last = 0; - 8014494: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014496: f9b3 300c ldrsh.w r3, [r3, #12] - 801449a: 2b5a cmp r3, #90 ; 0x5a - 801449c: dd0a ble.n 80144b4 - 801449e: 6e3b ldr r3, [r7, #96] ; 0x60 - 80144a0: f9b3 300c ldrsh.w r3, [r3, #12] - 80144a4: f5b3 7f87 cmp.w r3, #270 ; 0x10e - 80144a8: da04 bge.n 80144b4 - 80144aa: 6cfb ldr r3, [r7, #76] ; 0x4c - 80144ac: 2b00 cmp r3, #0 - 80144ae: dd01 ble.n 80144b4 - 80144b0: 2300 movs r3, #0 - 80144b2: 64fb str r3, [r7, #76] ; 0x4c + 8014400: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014402: f9b3 300c ldrsh.w r3, [r3, #12] + 8014406: 2b5a cmp r3, #90 ; 0x5a + 8014408: dd0a ble.n 8014420 + 801440a: 6e3b ldr r3, [r7, #96] ; 0x60 + 801440c: f9b3 300c ldrsh.w r3, [r3, #12] + 8014410: f5b3 7f87 cmp.w r3, #270 ; 0x10e + 8014414: da04 bge.n 8014420 + 8014416: 6cfb ldr r3, [r7, #76] ; 0x4c + 8014418: 2b00 cmp r3, #0 + 801441a: dd01 ble.n 8014420 + 801441c: 2300 movs r3, #0 + 801441e: 64fb str r3, [r7, #76] ; 0x4c if(p->cfg.end_angle > 270 && p->cfg.end_angle <= 359 && start_angle_last < 0) start_angle_last = 0; - 80144b4: 6e3b ldr r3, [r7, #96] ; 0x60 - 80144b6: f9b3 300e ldrsh.w r3, [r3, #14] - 80144ba: f5b3 7f87 cmp.w r3, #270 ; 0x10e - 80144be: dd0b ble.n 80144d8 - 80144c0: 6e3b ldr r3, [r7, #96] ; 0x60 - 80144c2: f9b3 300e ldrsh.w r3, [r3, #14] - 80144c6: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 80144ca: da05 bge.n 80144d8 - 80144cc: 6cfb ldr r3, [r7, #76] ; 0x4c - 80144ce: 2b00 cmp r3, #0 - 80144d0: da02 bge.n 80144d8 - 80144d2: 2300 movs r3, #0 - 80144d4: 64fb str r3, [r7, #76] ; 0x4c - 80144d6: e01f b.n 8014518 + 8014420: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014422: f9b3 300e ldrsh.w r3, [r3, #14] + 8014426: f5b3 7f87 cmp.w r3, #270 ; 0x10e + 801442a: dd0b ble.n 8014444 + 801442c: 6e3b ldr r3, [r7, #96] ; 0x60 + 801442e: f9b3 300e ldrsh.w r3, [r3, #14] + 8014432: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 8014436: da05 bge.n 8014444 + 8014438: 6cfb ldr r3, [r7, #76] ; 0x4c + 801443a: 2b00 cmp r3, #0 + 801443c: da02 bge.n 8014444 + 801443e: 2300 movs r3, #0 + 8014440: 64fb str r3, [r7, #76] ; 0x4c + 8014442: e01f b.n 8014484 else if(p->cfg.end_angle > 0 && p->cfg.end_angle <= 90 && start_angle_last < 0) start_angle_last = 0; - 80144d8: 6e3b ldr r3, [r7, #96] ; 0x60 - 80144da: f9b3 300e ldrsh.w r3, [r3, #14] - 80144de: 2b00 cmp r3, #0 - 80144e0: dd0a ble.n 80144f8 - 80144e2: 6e3b ldr r3, [r7, #96] ; 0x60 - 80144e4: f9b3 300e ldrsh.w r3, [r3, #14] - 80144e8: 2b5a cmp r3, #90 ; 0x5a - 80144ea: dc05 bgt.n 80144f8 - 80144ec: 6cfb ldr r3, [r7, #76] ; 0x4c - 80144ee: 2b00 cmp r3, #0 - 80144f0: da02 bge.n 80144f8 - 80144f2: 2300 movs r3, #0 - 80144f4: 64fb str r3, [r7, #76] ; 0x4c - 80144f6: e00f b.n 8014518 + 8014444: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014446: f9b3 300e ldrsh.w r3, [r3, #14] + 801444a: 2b00 cmp r3, #0 + 801444c: dd0a ble.n 8014464 + 801444e: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014450: f9b3 300e ldrsh.w r3, [r3, #14] + 8014454: 2b5a cmp r3, #90 ; 0x5a + 8014456: dc05 bgt.n 8014464 + 8014458: 6cfb ldr r3, [r7, #76] ; 0x4c + 801445a: 2b00 cmp r3, #0 + 801445c: da02 bge.n 8014464 + 801445e: 2300 movs r3, #0 + 8014460: 64fb str r3, [r7, #76] ; 0x4c + 8014462: e00f b.n 8014484 else if(p->cfg.end_angle > 90 && p->cfg.end_angle < 270 && start_angle_last > 0) start_angle_last = 0; - 80144f8: 6e3b ldr r3, [r7, #96] ; 0x60 - 80144fa: f9b3 300e ldrsh.w r3, [r3, #14] - 80144fe: 2b5a cmp r3, #90 ; 0x5a - 8014500: dd0a ble.n 8014518 - 8014502: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014504: f9b3 300e ldrsh.w r3, [r3, #14] - 8014508: f5b3 7f87 cmp.w r3, #270 ; 0x10e - 801450c: da04 bge.n 8014518 - 801450e: 6cfb ldr r3, [r7, #76] ; 0x4c - 8014510: 2b00 cmp r3, #0 - 8014512: dd01 ble.n 8014518 - 8014514: 2300 movs r3, #0 - 8014516: 64fb str r3, [r7, #76] ; 0x4c + 8014464: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014466: f9b3 300e ldrsh.w r3, [r3, #14] + 801446a: 2b5a cmp r3, #90 ; 0x5a + 801446c: dd0a ble.n 8014484 + 801446e: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014470: f9b3 300e ldrsh.w r3, [r3, #14] + 8014474: f5b3 7f87 cmp.w r3, #270 ; 0x10e + 8014478: da04 bge.n 8014484 + 801447a: 6cfb ldr r3, [r7, #76] ; 0x4c + 801447c: 2b00 cmp r3, #0 + 801447e: dd01 ble.n 8014484 + 8014480: 2300 movs r3, #0 + 8014482: 64fb str r3, [r7, #76] ; 0x4c int32_t dist = (end_angle_first - start_angle_last) >> 1; - 8014518: 6aba ldr r2, [r7, #40] ; 0x28 - 801451a: 6cfb ldr r3, [r7, #76] ; 0x4c - 801451c: 1ad3 subs r3, r2, r3 - 801451e: 105b asrs r3, r3, #1 - 8014520: 627b str r3, [r7, #36] ; 0x24 + 8014484: 6aba ldr r2, [r7, #40] ; 0x28 + 8014486: 6cfb ldr r3, [r7, #76] ; 0x4c + 8014488: 1ad3 subs r3, r2, r3 + 801448a: 105b asrs r3, r3, #1 + 801448c: 627b str r3, [r7, #36] ; 0x24 lv_draw_mask_res_t res1 = LV_DRAW_MASK_RES_FULL_COVER; - 8014522: 2301 movs r3, #1 - 8014524: f887 304b strb.w r3, [r7, #75] ; 0x4b + 801448e: 2301 movs r3, #1 + 8014490: f887 304b strb.w r3, [r7, #75] ; 0x4b lv_draw_mask_res_t res2 = LV_DRAW_MASK_RES_FULL_COVER; - 8014528: 2301 movs r3, #1 - 801452a: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 8014494: 2301 movs r3, #1 + 8014496: f887 3023 strb.w r3, [r7, #35] ; 0x23 int32_t tmp = start_angle_last + dist - rel_x; - 801452e: 6cfa ldr r2, [r7, #76] ; 0x4c - 8014530: 6a7b ldr r3, [r7, #36] ; 0x24 - 8014532: 441a add r2, r3 - 8014534: 6afb ldr r3, [r7, #44] ; 0x2c - 8014536: 1ad3 subs r3, r2, r3 - 8014538: 647b str r3, [r7, #68] ; 0x44 + 801449a: 6cfa ldr r2, [r7, #76] ; 0x4c + 801449c: 6a7b ldr r3, [r7, #36] ; 0x24 + 801449e: 441a add r2, r3 + 80144a0: 6afb ldr r3, [r7, #44] ; 0x2c + 80144a2: 1ad3 subs r3, r2, r3 + 80144a4: 647b str r3, [r7, #68] ; 0x44 if(tmp > len) tmp = len; - 801453a: f9b7 3006 ldrsh.w r3, [r7, #6] - 801453e: 6c7a ldr r2, [r7, #68] ; 0x44 - 8014540: 429a cmp r2, r3 - 8014542: dd02 ble.n 801454a - 8014544: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014548: 647b str r3, [r7, #68] ; 0x44 + 80144a6: f9b7 3006 ldrsh.w r3, [r7, #6] + 80144aa: 6c7a ldr r2, [r7, #68] ; 0x44 + 80144ac: 429a cmp r2, r3 + 80144ae: dd02 ble.n 80144b6 + 80144b0: f9b7 3006 ldrsh.w r3, [r7, #6] + 80144b4: 647b str r3, [r7, #68] ; 0x44 if(tmp > 0) { - 801454a: 6c7b ldr r3, [r7, #68] ; 0x44 - 801454c: 2b00 cmp r3, #0 - 801454e: dd18 ble.n 8014582 + 80144b6: 6c7b ldr r3, [r7, #68] ; 0x44 + 80144b8: 2b00 cmp r3, #0 + 80144ba: dd18 ble.n 80144ee res1 = lv_draw_mask_line(&mask_buf[0], abs_x, abs_y, tmp, &p->start_line); - 8014550: 6c7b ldr r3, [r7, #68] ; 0x44 - 8014552: b218 sxth r0, r3 - 8014554: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014556: 3310 adds r3, #16 - 8014558: f9b7 2008 ldrsh.w r2, [r7, #8] - 801455c: f9b7 100a ldrsh.w r1, [r7, #10] - 8014560: 9300 str r3, [sp, #0] - 8014562: 4603 mov r3, r0 - 8014564: 68f8 ldr r0, [r7, #12] - 8014566: f7ff fa5f bl 8013a28 - 801456a: 4603 mov r3, r0 - 801456c: f887 304b strb.w r3, [r7, #75] ; 0x4b + 80144bc: 6c7b ldr r3, [r7, #68] ; 0x44 + 80144be: b218 sxth r0, r3 + 80144c0: 6e3b ldr r3, [r7, #96] ; 0x60 + 80144c2: 3310 adds r3, #16 + 80144c4: f9b7 2008 ldrsh.w r2, [r7, #8] + 80144c8: f9b7 100a ldrsh.w r1, [r7, #10] + 80144cc: 9300 str r3, [sp, #0] + 80144ce: 4603 mov r3, r0 + 80144d0: 68f8 ldr r0, [r7, #12] + 80144d2: f7ff fa5f bl 8013994 + 80144d6: 4603 mov r3, r0 + 80144d8: f887 304b strb.w r3, [r7, #75] ; 0x4b if(res1 == LV_DRAW_MASK_RES_TRANSP) { - 8014570: f897 304b ldrb.w r3, [r7, #75] ; 0x4b - 8014574: 2b00 cmp r3, #0 - 8014576: d104 bne.n 8014582 + 80144dc: f897 304b ldrb.w r3, [r7, #75] ; 0x4b + 80144e0: 2b00 cmp r3, #0 + 80144e2: d104 bne.n 80144ee lv_memset_00(&mask_buf[0], tmp); - 8014578: 6c7b ldr r3, [r7, #68] ; 0x44 - 801457a: 4619 mov r1, r3 - 801457c: 68f8 ldr r0, [r7, #12] - 801457e: f01e fde7 bl 8033150 + 80144e4: 6c7b ldr r3, [r7, #68] ; 0x44 + 80144e6: 4619 mov r1, r3 + 80144e8: 68f8 ldr r0, [r7, #12] + 80144ea: f01e fde7 bl 80330bc } } if(tmp > len) tmp = len; - 8014582: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014586: 6c7a ldr r2, [r7, #68] ; 0x44 - 8014588: 429a cmp r2, r3 - 801458a: dd02 ble.n 8014592 - 801458c: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014590: 647b str r3, [r7, #68] ; 0x44 + 80144ee: f9b7 3006 ldrsh.w r3, [r7, #6] + 80144f2: 6c7a ldr r2, [r7, #68] ; 0x44 + 80144f4: 429a cmp r2, r3 + 80144f6: dd02 ble.n 80144fe + 80144f8: f9b7 3006 ldrsh.w r3, [r7, #6] + 80144fc: 647b str r3, [r7, #68] ; 0x44 if(tmp < 0) tmp = 0; - 8014592: 6c7b ldr r3, [r7, #68] ; 0x44 - 8014594: 2b00 cmp r3, #0 - 8014596: da01 bge.n 801459c - 8014598: 2300 movs r3, #0 - 801459a: 647b str r3, [r7, #68] ; 0x44 + 80144fe: 6c7b ldr r3, [r7, #68] ; 0x44 + 8014500: 2b00 cmp r3, #0 + 8014502: da01 bge.n 8014508 + 8014504: 2300 movs r3, #0 + 8014506: 647b str r3, [r7, #68] ; 0x44 res2 = lv_draw_mask_line(&mask_buf[tmp], abs_x + tmp, abs_y, len - tmp, &p->end_line); - 801459c: 6c7b ldr r3, [r7, #68] ; 0x44 - 801459e: 68fa ldr r2, [r7, #12] - 80145a0: 18d0 adds r0, r2, r3 - 80145a2: 6c7b ldr r3, [r7, #68] ; 0x44 - 80145a4: b29a uxth r2, r3 - 80145a6: 897b ldrh r3, [r7, #10] - 80145a8: 4413 add r3, r2 - 80145aa: b29b uxth r3, r3 - 80145ac: b219 sxth r1, r3 - 80145ae: 88fa ldrh r2, [r7, #6] - 80145b0: 6c7b ldr r3, [r7, #68] ; 0x44 - 80145b2: b29b uxth r3, r3 - 80145b4: 1ad3 subs r3, r2, r3 - 80145b6: b29b uxth r3, r3 - 80145b8: b21c sxth r4, r3 - 80145ba: 6e3b ldr r3, [r7, #96] ; 0x60 - 80145bc: 333c adds r3, #60 ; 0x3c - 80145be: f9b7 2008 ldrsh.w r2, [r7, #8] - 80145c2: 9300 str r3, [sp, #0] - 80145c4: 4623 mov r3, r4 - 80145c6: f7ff fa2f bl 8013a28 - 80145ca: 4603 mov r3, r0 - 80145cc: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 8014508: 6c7b ldr r3, [r7, #68] ; 0x44 + 801450a: 68fa ldr r2, [r7, #12] + 801450c: 18d0 adds r0, r2, r3 + 801450e: 6c7b ldr r3, [r7, #68] ; 0x44 + 8014510: b29a uxth r2, r3 + 8014512: 897b ldrh r3, [r7, #10] + 8014514: 4413 add r3, r2 + 8014516: b29b uxth r3, r3 + 8014518: b219 sxth r1, r3 + 801451a: 88fa ldrh r2, [r7, #6] + 801451c: 6c7b ldr r3, [r7, #68] ; 0x44 + 801451e: b29b uxth r3, r3 + 8014520: 1ad3 subs r3, r2, r3 + 8014522: b29b uxth r3, r3 + 8014524: b21c sxth r4, r3 + 8014526: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014528: 333c adds r3, #60 ; 0x3c + 801452a: f9b7 2008 ldrsh.w r2, [r7, #8] + 801452e: 9300 str r3, [sp, #0] + 8014530: 4623 mov r3, r4 + 8014532: f7ff fa2f bl 8013994 + 8014536: 4603 mov r3, r0 + 8014538: f887 3023 strb.w r3, [r7, #35] ; 0x23 if(res2 == LV_DRAW_MASK_RES_TRANSP) { - 80145d0: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 80145d4: 2b00 cmp r3, #0 - 80145d6: d109 bne.n 80145ec + 801453c: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8014540: 2b00 cmp r3, #0 + 8014542: d109 bne.n 8014558 lv_memset_00(&mask_buf[tmp], len - tmp); - 80145d8: 6c7b ldr r3, [r7, #68] ; 0x44 - 80145da: 68fa ldr r2, [r7, #12] - 80145dc: 18d0 adds r0, r2, r3 - 80145de: f9b7 2006 ldrsh.w r2, [r7, #6] - 80145e2: 6c7b ldr r3, [r7, #68] ; 0x44 - 80145e4: 1ad3 subs r3, r2, r3 - 80145e6: 4619 mov r1, r3 - 80145e8: f01e fdb2 bl 8033150 + 8014544: 6c7b ldr r3, [r7, #68] ; 0x44 + 8014546: 68fa ldr r2, [r7, #12] + 8014548: 18d0 adds r0, r2, r3 + 801454a: f9b7 2006 ldrsh.w r2, [r7, #6] + 801454e: 6c7b ldr r3, [r7, #68] ; 0x44 + 8014550: 1ad3 subs r3, r2, r3 + 8014552: 4619 mov r1, r3 + 8014554: f01e fdb2 bl 80330bc } if(res1 == res2) return res1; - 80145ec: f897 204b ldrb.w r2, [r7, #75] ; 0x4b - 80145f0: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 80145f4: 429a cmp r2, r3 - 80145f6: d102 bne.n 80145fe - 80145f8: f897 304b ldrb.w r3, [r7, #75] ; 0x4b - 80145fc: e1d0 b.n 80149a0 + 8014558: f897 204b ldrb.w r2, [r7, #75] ; 0x4b + 801455c: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8014560: 429a cmp r2, r3 + 8014562: d102 bne.n 801456a + 8014564: f897 304b ldrb.w r3, [r7, #75] ; 0x4b + 8014568: e1d0 b.n 801490c else return LV_DRAW_MASK_RES_CHANGED; - 80145fe: 2302 movs r3, #2 - 8014600: e1ce b.n 80149a0 + 801456a: 2302 movs r3, #2 + 801456c: e1ce b.n 801490c } else if(p->cfg.start_angle > 180 && p->cfg.end_angle > 180 && p->cfg.start_angle > p->cfg.end_angle) { - 8014602: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014604: f9b3 300c ldrsh.w r3, [r3, #12] - 8014608: 2bb4 cmp r3, #180 ; 0xb4 - 801460a: f340 80fc ble.w 8014806 - 801460e: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014610: f9b3 300e ldrsh.w r3, [r3, #14] - 8014614: 2bb4 cmp r3, #180 ; 0xb4 - 8014616: f340 80f6 ble.w 8014806 - 801461a: 6e3b ldr r3, [r7, #96] ; 0x60 - 801461c: f9b3 200c ldrsh.w r2, [r3, #12] - 8014620: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014622: f9b3 300e ldrsh.w r3, [r3, #14] - 8014626: 429a cmp r2, r3 - 8014628: f340 80ed ble.w 8014806 + 801456e: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014570: f9b3 300c ldrsh.w r3, [r3, #12] + 8014574: 2bb4 cmp r3, #180 ; 0xb4 + 8014576: f340 80fc ble.w 8014772 + 801457a: 6e3b ldr r3, [r7, #96] ; 0x60 + 801457c: f9b3 300e ldrsh.w r3, [r3, #14] + 8014580: 2bb4 cmp r3, #180 ; 0xb4 + 8014582: f340 80f6 ble.w 8014772 + 8014586: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014588: f9b3 200c ldrsh.w r2, [r3, #12] + 801458c: 6e3b ldr r3, [r7, #96] ; 0x60 + 801458e: f9b3 300e ldrsh.w r3, [r3, #14] + 8014592: 429a cmp r2, r3 + 8014594: f340 80ed ble.w 8014772 if(abs_y > p->cfg.vertex_p.y) { - 801462c: 6e3b ldr r3, [r7, #96] ; 0x60 - 801462e: f9b3 300a ldrsh.w r3, [r3, #10] - 8014632: f9b7 2008 ldrsh.w r2, [r7, #8] - 8014636: 429a cmp r2, r3 - 8014638: dd01 ble.n 801463e + 8014598: 6e3b ldr r3, [r7, #96] ; 0x60 + 801459a: f9b3 300a ldrsh.w r3, [r3, #10] + 801459e: f9b7 2008 ldrsh.w r2, [r7, #8] + 80145a2: 429a cmp r2, r3 + 80145a4: dd01 ble.n 80145aa return LV_DRAW_MASK_RES_FULL_COVER; - 801463a: 2301 movs r3, #1 - 801463c: e1b0 b.n 80149a0 + 80145a6: 2301 movs r3, #1 + 80145a8: e1b0 b.n 801490c } /*Start angle mask can work only from the end of end angle mask*/ int32_t end_angle_first = (rel_y * p->end_line.xy_steep) >> 10; - 801463e: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014640: 6d5b ldr r3, [r3, #84] ; 0x54 - 8014642: 6b3a ldr r2, [r7, #48] ; 0x30 - 8014644: fb02 f303 mul.w r3, r2, r3 - 8014648: 129b asrs r3, r3, #10 - 801464a: 61fb str r3, [r7, #28] + 80145aa: 6e3b ldr r3, [r7, #96] ; 0x60 + 80145ac: 6d5b ldr r3, [r3, #84] ; 0x54 + 80145ae: 6b3a ldr r2, [r7, #48] ; 0x30 + 80145b0: fb02 f303 mul.w r3, r2, r3 + 80145b4: 129b asrs r3, r3, #10 + 80145b6: 61fb str r3, [r7, #28] int32_t start_angle_last = ((rel_y + 1) * p->start_line.xy_steep) >> 10; - 801464c: 6b3b ldr r3, [r7, #48] ; 0x30 - 801464e: 3301 adds r3, #1 - 8014650: 6e3a ldr r2, [r7, #96] ; 0x60 - 8014652: 6a92 ldr r2, [r2, #40] ; 0x28 - 8014654: fb02 f303 mul.w r3, r2, r3 - 8014658: 129b asrs r3, r3, #10 - 801465a: 643b str r3, [r7, #64] ; 0x40 + 80145b8: 6b3b ldr r3, [r7, #48] ; 0x30 + 80145ba: 3301 adds r3, #1 + 80145bc: 6e3a ldr r2, [r7, #96] ; 0x60 + 80145be: 6a92 ldr r2, [r2, #40] ; 0x28 + 80145c0: fb02 f303 mul.w r3, r2, r3 + 80145c4: 129b asrs r3, r3, #10 + 80145c6: 643b str r3, [r7, #64] ; 0x40 /*Do not let the line end cross the vertex else it will affect the opposite part*/ if(p->cfg.start_angle > 270 && p->cfg.start_angle <= 359 && start_angle_last < 0) start_angle_last = 0; - 801465c: 6e3b ldr r3, [r7, #96] ; 0x60 - 801465e: f9b3 300c ldrsh.w r3, [r3, #12] - 8014662: f5b3 7f87 cmp.w r3, #270 ; 0x10e - 8014666: dd0b ble.n 8014680 - 8014668: 6e3b ldr r3, [r7, #96] ; 0x60 - 801466a: f9b3 300c ldrsh.w r3, [r3, #12] - 801466e: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 8014672: da05 bge.n 8014680 - 8014674: 6c3b ldr r3, [r7, #64] ; 0x40 - 8014676: 2b00 cmp r3, #0 - 8014678: da02 bge.n 8014680 - 801467a: 2300 movs r3, #0 - 801467c: 643b str r3, [r7, #64] ; 0x40 - 801467e: e01f b.n 80146c0 + 80145c8: 6e3b ldr r3, [r7, #96] ; 0x60 + 80145ca: f9b3 300c ldrsh.w r3, [r3, #12] + 80145ce: f5b3 7f87 cmp.w r3, #270 ; 0x10e + 80145d2: dd0b ble.n 80145ec + 80145d4: 6e3b ldr r3, [r7, #96] ; 0x60 + 80145d6: f9b3 300c ldrsh.w r3, [r3, #12] + 80145da: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 80145de: da05 bge.n 80145ec + 80145e0: 6c3b ldr r3, [r7, #64] ; 0x40 + 80145e2: 2b00 cmp r3, #0 + 80145e4: da02 bge.n 80145ec + 80145e6: 2300 movs r3, #0 + 80145e8: 643b str r3, [r7, #64] ; 0x40 + 80145ea: e01f b.n 801462c else if(p->cfg.start_angle > 0 && p->cfg.start_angle <= 90 && start_angle_last < 0) start_angle_last = 0; - 8014680: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014682: f9b3 300c ldrsh.w r3, [r3, #12] - 8014686: 2b00 cmp r3, #0 - 8014688: dd0a ble.n 80146a0 - 801468a: 6e3b ldr r3, [r7, #96] ; 0x60 - 801468c: f9b3 300c ldrsh.w r3, [r3, #12] - 8014690: 2b5a cmp r3, #90 ; 0x5a - 8014692: dc05 bgt.n 80146a0 - 8014694: 6c3b ldr r3, [r7, #64] ; 0x40 - 8014696: 2b00 cmp r3, #0 - 8014698: da02 bge.n 80146a0 - 801469a: 2300 movs r3, #0 - 801469c: 643b str r3, [r7, #64] ; 0x40 - 801469e: e00f b.n 80146c0 + 80145ec: 6e3b ldr r3, [r7, #96] ; 0x60 + 80145ee: f9b3 300c ldrsh.w r3, [r3, #12] + 80145f2: 2b00 cmp r3, #0 + 80145f4: dd0a ble.n 801460c + 80145f6: 6e3b ldr r3, [r7, #96] ; 0x60 + 80145f8: f9b3 300c ldrsh.w r3, [r3, #12] + 80145fc: 2b5a cmp r3, #90 ; 0x5a + 80145fe: dc05 bgt.n 801460c + 8014600: 6c3b ldr r3, [r7, #64] ; 0x40 + 8014602: 2b00 cmp r3, #0 + 8014604: da02 bge.n 801460c + 8014606: 2300 movs r3, #0 + 8014608: 643b str r3, [r7, #64] ; 0x40 + 801460a: e00f b.n 801462c else if(p->cfg.start_angle > 90 && p->cfg.start_angle < 270 && start_angle_last > 0) start_angle_last = 0; - 80146a0: 6e3b ldr r3, [r7, #96] ; 0x60 - 80146a2: f9b3 300c ldrsh.w r3, [r3, #12] - 80146a6: 2b5a cmp r3, #90 ; 0x5a - 80146a8: dd0a ble.n 80146c0 - 80146aa: 6e3b ldr r3, [r7, #96] ; 0x60 - 80146ac: f9b3 300c ldrsh.w r3, [r3, #12] - 80146b0: f5b3 7f87 cmp.w r3, #270 ; 0x10e - 80146b4: da04 bge.n 80146c0 - 80146b6: 6c3b ldr r3, [r7, #64] ; 0x40 - 80146b8: 2b00 cmp r3, #0 - 80146ba: dd01 ble.n 80146c0 - 80146bc: 2300 movs r3, #0 - 80146be: 643b str r3, [r7, #64] ; 0x40 + 801460c: 6e3b ldr r3, [r7, #96] ; 0x60 + 801460e: f9b3 300c ldrsh.w r3, [r3, #12] + 8014612: 2b5a cmp r3, #90 ; 0x5a + 8014614: dd0a ble.n 801462c + 8014616: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014618: f9b3 300c ldrsh.w r3, [r3, #12] + 801461c: f5b3 7f87 cmp.w r3, #270 ; 0x10e + 8014620: da04 bge.n 801462c + 8014622: 6c3b ldr r3, [r7, #64] ; 0x40 + 8014624: 2b00 cmp r3, #0 + 8014626: dd01 ble.n 801462c + 8014628: 2300 movs r3, #0 + 801462a: 643b str r3, [r7, #64] ; 0x40 if(p->cfg.end_angle > 270 && p->cfg.end_angle <= 359 && start_angle_last < 0) start_angle_last = 0; - 80146c0: 6e3b ldr r3, [r7, #96] ; 0x60 - 80146c2: f9b3 300e ldrsh.w r3, [r3, #14] - 80146c6: f5b3 7f87 cmp.w r3, #270 ; 0x10e - 80146ca: dd0b ble.n 80146e4 - 80146cc: 6e3b ldr r3, [r7, #96] ; 0x60 - 80146ce: f9b3 300e ldrsh.w r3, [r3, #14] - 80146d2: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 80146d6: da05 bge.n 80146e4 - 80146d8: 6c3b ldr r3, [r7, #64] ; 0x40 - 80146da: 2b00 cmp r3, #0 - 80146dc: da02 bge.n 80146e4 - 80146de: 2300 movs r3, #0 - 80146e0: 643b str r3, [r7, #64] ; 0x40 - 80146e2: e01f b.n 8014724 + 801462c: 6e3b ldr r3, [r7, #96] ; 0x60 + 801462e: f9b3 300e ldrsh.w r3, [r3, #14] + 8014632: f5b3 7f87 cmp.w r3, #270 ; 0x10e + 8014636: dd0b ble.n 8014650 + 8014638: 6e3b ldr r3, [r7, #96] ; 0x60 + 801463a: f9b3 300e ldrsh.w r3, [r3, #14] + 801463e: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 8014642: da05 bge.n 8014650 + 8014644: 6c3b ldr r3, [r7, #64] ; 0x40 + 8014646: 2b00 cmp r3, #0 + 8014648: da02 bge.n 8014650 + 801464a: 2300 movs r3, #0 + 801464c: 643b str r3, [r7, #64] ; 0x40 + 801464e: e01f b.n 8014690 else if(p->cfg.end_angle > 0 && p->cfg.end_angle <= 90 && start_angle_last < 0) start_angle_last = 0; - 80146e4: 6e3b ldr r3, [r7, #96] ; 0x60 - 80146e6: f9b3 300e ldrsh.w r3, [r3, #14] - 80146ea: 2b00 cmp r3, #0 - 80146ec: dd0a ble.n 8014704 - 80146ee: 6e3b ldr r3, [r7, #96] ; 0x60 - 80146f0: f9b3 300e ldrsh.w r3, [r3, #14] - 80146f4: 2b5a cmp r3, #90 ; 0x5a - 80146f6: dc05 bgt.n 8014704 - 80146f8: 6c3b ldr r3, [r7, #64] ; 0x40 - 80146fa: 2b00 cmp r3, #0 - 80146fc: da02 bge.n 8014704 - 80146fe: 2300 movs r3, #0 - 8014700: 643b str r3, [r7, #64] ; 0x40 - 8014702: e00f b.n 8014724 + 8014650: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014652: f9b3 300e ldrsh.w r3, [r3, #14] + 8014656: 2b00 cmp r3, #0 + 8014658: dd0a ble.n 8014670 + 801465a: 6e3b ldr r3, [r7, #96] ; 0x60 + 801465c: f9b3 300e ldrsh.w r3, [r3, #14] + 8014660: 2b5a cmp r3, #90 ; 0x5a + 8014662: dc05 bgt.n 8014670 + 8014664: 6c3b ldr r3, [r7, #64] ; 0x40 + 8014666: 2b00 cmp r3, #0 + 8014668: da02 bge.n 8014670 + 801466a: 2300 movs r3, #0 + 801466c: 643b str r3, [r7, #64] ; 0x40 + 801466e: e00f b.n 8014690 else if(p->cfg.end_angle > 90 && p->cfg.end_angle < 270 && start_angle_last > 0) start_angle_last = 0; - 8014704: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014706: f9b3 300e ldrsh.w r3, [r3, #14] - 801470a: 2b5a cmp r3, #90 ; 0x5a - 801470c: dd0a ble.n 8014724 - 801470e: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014710: f9b3 300e ldrsh.w r3, [r3, #14] - 8014714: f5b3 7f87 cmp.w r3, #270 ; 0x10e - 8014718: da04 bge.n 8014724 - 801471a: 6c3b ldr r3, [r7, #64] ; 0x40 - 801471c: 2b00 cmp r3, #0 - 801471e: dd01 ble.n 8014724 - 8014720: 2300 movs r3, #0 - 8014722: 643b str r3, [r7, #64] ; 0x40 + 8014670: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014672: f9b3 300e ldrsh.w r3, [r3, #14] + 8014676: 2b5a cmp r3, #90 ; 0x5a + 8014678: dd0a ble.n 8014690 + 801467a: 6e3b ldr r3, [r7, #96] ; 0x60 + 801467c: f9b3 300e ldrsh.w r3, [r3, #14] + 8014680: f5b3 7f87 cmp.w r3, #270 ; 0x10e + 8014684: da04 bge.n 8014690 + 8014686: 6c3b ldr r3, [r7, #64] ; 0x40 + 8014688: 2b00 cmp r3, #0 + 801468a: dd01 ble.n 8014690 + 801468c: 2300 movs r3, #0 + 801468e: 643b str r3, [r7, #64] ; 0x40 int32_t dist = (end_angle_first - start_angle_last) >> 1; - 8014724: 69fa ldr r2, [r7, #28] - 8014726: 6c3b ldr r3, [r7, #64] ; 0x40 - 8014728: 1ad3 subs r3, r2, r3 - 801472a: 105b asrs r3, r3, #1 - 801472c: 61bb str r3, [r7, #24] + 8014690: 69fa ldr r2, [r7, #28] + 8014692: 6c3b ldr r3, [r7, #64] ; 0x40 + 8014694: 1ad3 subs r3, r2, r3 + 8014696: 105b asrs r3, r3, #1 + 8014698: 61bb str r3, [r7, #24] lv_draw_mask_res_t res1 = LV_DRAW_MASK_RES_FULL_COVER; - 801472e: 2301 movs r3, #1 - 8014730: f887 303f strb.w r3, [r7, #63] ; 0x3f + 801469a: 2301 movs r3, #1 + 801469c: f887 303f strb.w r3, [r7, #63] ; 0x3f lv_draw_mask_res_t res2 = LV_DRAW_MASK_RES_FULL_COVER; - 8014734: 2301 movs r3, #1 - 8014736: 75fb strb r3, [r7, #23] + 80146a0: 2301 movs r3, #1 + 80146a2: 75fb strb r3, [r7, #23] int32_t tmp = start_angle_last + dist - rel_x; - 8014738: 6c3a ldr r2, [r7, #64] ; 0x40 - 801473a: 69bb ldr r3, [r7, #24] - 801473c: 441a add r2, r3 - 801473e: 6afb ldr r3, [r7, #44] ; 0x2c - 8014740: 1ad3 subs r3, r2, r3 - 8014742: 63bb str r3, [r7, #56] ; 0x38 + 80146a4: 6c3a ldr r2, [r7, #64] ; 0x40 + 80146a6: 69bb ldr r3, [r7, #24] + 80146a8: 441a add r2, r3 + 80146aa: 6afb ldr r3, [r7, #44] ; 0x2c + 80146ac: 1ad3 subs r3, r2, r3 + 80146ae: 63bb str r3, [r7, #56] ; 0x38 if(tmp > len) tmp = len; - 8014744: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014748: 6bba ldr r2, [r7, #56] ; 0x38 - 801474a: 429a cmp r2, r3 - 801474c: dd02 ble.n 8014754 - 801474e: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014752: 63bb str r3, [r7, #56] ; 0x38 + 80146b0: f9b7 3006 ldrsh.w r3, [r7, #6] + 80146b4: 6bba ldr r2, [r7, #56] ; 0x38 + 80146b6: 429a cmp r2, r3 + 80146b8: dd02 ble.n 80146c0 + 80146ba: f9b7 3006 ldrsh.w r3, [r7, #6] + 80146be: 63bb str r3, [r7, #56] ; 0x38 if(tmp > 0) { - 8014754: 6bbb ldr r3, [r7, #56] ; 0x38 - 8014756: 2b00 cmp r3, #0 - 8014758: dd18 ble.n 801478c + 80146c0: 6bbb ldr r3, [r7, #56] ; 0x38 + 80146c2: 2b00 cmp r3, #0 + 80146c4: dd18 ble.n 80146f8 res1 = lv_draw_mask_line(&mask_buf[0], abs_x, abs_y, tmp, (lv_draw_mask_line_param_t *)&p->end_line); - 801475a: 6bbb ldr r3, [r7, #56] ; 0x38 - 801475c: b218 sxth r0, r3 - 801475e: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014760: 333c adds r3, #60 ; 0x3c - 8014762: f9b7 2008 ldrsh.w r2, [r7, #8] - 8014766: f9b7 100a ldrsh.w r1, [r7, #10] - 801476a: 9300 str r3, [sp, #0] - 801476c: 4603 mov r3, r0 - 801476e: 68f8 ldr r0, [r7, #12] - 8014770: f7ff f95a bl 8013a28 - 8014774: 4603 mov r3, r0 - 8014776: f887 303f strb.w r3, [r7, #63] ; 0x3f + 80146c6: 6bbb ldr r3, [r7, #56] ; 0x38 + 80146c8: b218 sxth r0, r3 + 80146ca: 6e3b ldr r3, [r7, #96] ; 0x60 + 80146cc: 333c adds r3, #60 ; 0x3c + 80146ce: f9b7 2008 ldrsh.w r2, [r7, #8] + 80146d2: f9b7 100a ldrsh.w r1, [r7, #10] + 80146d6: 9300 str r3, [sp, #0] + 80146d8: 4603 mov r3, r0 + 80146da: 68f8 ldr r0, [r7, #12] + 80146dc: f7ff f95a bl 8013994 + 80146e0: 4603 mov r3, r0 + 80146e2: f887 303f strb.w r3, [r7, #63] ; 0x3f if(res1 == LV_DRAW_MASK_RES_TRANSP) { - 801477a: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 801477e: 2b00 cmp r3, #0 - 8014780: d104 bne.n 801478c + 80146e6: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 80146ea: 2b00 cmp r3, #0 + 80146ec: d104 bne.n 80146f8 lv_memset_00(&mask_buf[0], tmp); - 8014782: 6bbb ldr r3, [r7, #56] ; 0x38 - 8014784: 4619 mov r1, r3 - 8014786: 68f8 ldr r0, [r7, #12] - 8014788: f01e fce2 bl 8033150 + 80146ee: 6bbb ldr r3, [r7, #56] ; 0x38 + 80146f0: 4619 mov r1, r3 + 80146f2: 68f8 ldr r0, [r7, #12] + 80146f4: f01e fce2 bl 80330bc } } if(tmp > len) tmp = len; - 801478c: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014790: 6bba ldr r2, [r7, #56] ; 0x38 - 8014792: 429a cmp r2, r3 - 8014794: dd02 ble.n 801479c - 8014796: f9b7 3006 ldrsh.w r3, [r7, #6] - 801479a: 63bb str r3, [r7, #56] ; 0x38 + 80146f8: f9b7 3006 ldrsh.w r3, [r7, #6] + 80146fc: 6bba ldr r2, [r7, #56] ; 0x38 + 80146fe: 429a cmp r2, r3 + 8014700: dd02 ble.n 8014708 + 8014702: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014706: 63bb str r3, [r7, #56] ; 0x38 if(tmp < 0) tmp = 0; - 801479c: 6bbb ldr r3, [r7, #56] ; 0x38 - 801479e: 2b00 cmp r3, #0 - 80147a0: da01 bge.n 80147a6 - 80147a2: 2300 movs r3, #0 - 80147a4: 63bb str r3, [r7, #56] ; 0x38 + 8014708: 6bbb ldr r3, [r7, #56] ; 0x38 + 801470a: 2b00 cmp r3, #0 + 801470c: da01 bge.n 8014712 + 801470e: 2300 movs r3, #0 + 8014710: 63bb str r3, [r7, #56] ; 0x38 res2 = lv_draw_mask_line(&mask_buf[tmp], abs_x + tmp, abs_y, len - tmp, (lv_draw_mask_line_param_t *)&p->start_line); - 80147a6: 6bbb ldr r3, [r7, #56] ; 0x38 - 80147a8: 68fa ldr r2, [r7, #12] - 80147aa: 18d0 adds r0, r2, r3 - 80147ac: 6bbb ldr r3, [r7, #56] ; 0x38 - 80147ae: b29a uxth r2, r3 - 80147b0: 897b ldrh r3, [r7, #10] - 80147b2: 4413 add r3, r2 - 80147b4: b29b uxth r3, r3 - 80147b6: b219 sxth r1, r3 - 80147b8: 88fa ldrh r2, [r7, #6] - 80147ba: 6bbb ldr r3, [r7, #56] ; 0x38 - 80147bc: b29b uxth r3, r3 - 80147be: 1ad3 subs r3, r2, r3 - 80147c0: b29b uxth r3, r3 - 80147c2: b21c sxth r4, r3 - 80147c4: 6e3b ldr r3, [r7, #96] ; 0x60 - 80147c6: 3310 adds r3, #16 - 80147c8: f9b7 2008 ldrsh.w r2, [r7, #8] - 80147cc: 9300 str r3, [sp, #0] - 80147ce: 4623 mov r3, r4 - 80147d0: f7ff f92a bl 8013a28 - 80147d4: 4603 mov r3, r0 - 80147d6: 75fb strb r3, [r7, #23] + 8014712: 6bbb ldr r3, [r7, #56] ; 0x38 + 8014714: 68fa ldr r2, [r7, #12] + 8014716: 18d0 adds r0, r2, r3 + 8014718: 6bbb ldr r3, [r7, #56] ; 0x38 + 801471a: b29a uxth r2, r3 + 801471c: 897b ldrh r3, [r7, #10] + 801471e: 4413 add r3, r2 + 8014720: b29b uxth r3, r3 + 8014722: b219 sxth r1, r3 + 8014724: 88fa ldrh r2, [r7, #6] + 8014726: 6bbb ldr r3, [r7, #56] ; 0x38 + 8014728: b29b uxth r3, r3 + 801472a: 1ad3 subs r3, r2, r3 + 801472c: b29b uxth r3, r3 + 801472e: b21c sxth r4, r3 + 8014730: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014732: 3310 adds r3, #16 + 8014734: f9b7 2008 ldrsh.w r2, [r7, #8] + 8014738: 9300 str r3, [sp, #0] + 801473a: 4623 mov r3, r4 + 801473c: f7ff f92a bl 8013994 + 8014740: 4603 mov r3, r0 + 8014742: 75fb strb r3, [r7, #23] if(res2 == LV_DRAW_MASK_RES_TRANSP) { - 80147d8: 7dfb ldrb r3, [r7, #23] - 80147da: 2b00 cmp r3, #0 - 80147dc: d109 bne.n 80147f2 + 8014744: 7dfb ldrb r3, [r7, #23] + 8014746: 2b00 cmp r3, #0 + 8014748: d109 bne.n 801475e lv_memset_00(&mask_buf[tmp], len - tmp); - 80147de: 6bbb ldr r3, [r7, #56] ; 0x38 - 80147e0: 68fa ldr r2, [r7, #12] - 80147e2: 18d0 adds r0, r2, r3 - 80147e4: f9b7 2006 ldrsh.w r2, [r7, #6] - 80147e8: 6bbb ldr r3, [r7, #56] ; 0x38 - 80147ea: 1ad3 subs r3, r2, r3 - 80147ec: 4619 mov r1, r3 - 80147ee: f01e fcaf bl 8033150 + 801474a: 6bbb ldr r3, [r7, #56] ; 0x38 + 801474c: 68fa ldr r2, [r7, #12] + 801474e: 18d0 adds r0, r2, r3 + 8014750: f9b7 2006 ldrsh.w r2, [r7, #6] + 8014754: 6bbb ldr r3, [r7, #56] ; 0x38 + 8014756: 1ad3 subs r3, r2, r3 + 8014758: 4619 mov r1, r3 + 801475a: f01e fcaf bl 80330bc } if(res1 == res2) return res1; - 80147f2: f897 203f ldrb.w r2, [r7, #63] ; 0x3f - 80147f6: 7dfb ldrb r3, [r7, #23] - 80147f8: 429a cmp r2, r3 - 80147fa: d102 bne.n 8014802 - 80147fc: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 8014800: e0ce b.n 80149a0 + 801475e: f897 203f ldrb.w r2, [r7, #63] ; 0x3f + 8014762: 7dfb ldrb r3, [r7, #23] + 8014764: 429a cmp r2, r3 + 8014766: d102 bne.n 801476e + 8014768: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 801476c: e0ce b.n 801490c else return LV_DRAW_MASK_RES_CHANGED; - 8014802: 2302 movs r3, #2 - 8014804: e0cc b.n 80149a0 + 801476e: 2302 movs r3, #2 + 8014770: e0cc b.n 801490c } else { lv_draw_mask_res_t res1 = LV_DRAW_MASK_RES_FULL_COVER; - 8014806: 2301 movs r3, #1 - 8014808: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 8014772: 2301 movs r3, #1 + 8014774: f887 3037 strb.w r3, [r7, #55] ; 0x37 lv_draw_mask_res_t res2 = LV_DRAW_MASK_RES_FULL_COVER; - 801480c: 2301 movs r3, #1 - 801480e: f887 3036 strb.w r3, [r7, #54] ; 0x36 + 8014778: 2301 movs r3, #1 + 801477a: f887 3036 strb.w r3, [r7, #54] ; 0x36 if(p->cfg.start_angle == 180) { - 8014812: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014814: f9b3 300c ldrsh.w r3, [r3, #12] - 8014818: 2bb4 cmp r3, #180 ; 0xb4 - 801481a: d10e bne.n 801483a + 801477e: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014780: f9b3 300c ldrsh.w r3, [r3, #12] + 8014784: 2bb4 cmp r3, #180 ; 0xb4 + 8014786: d10e bne.n 80147a6 if(abs_y < p->cfg.vertex_p.y) res1 = LV_DRAW_MASK_RES_FULL_COVER; - 801481c: 6e3b ldr r3, [r7, #96] ; 0x60 - 801481e: f9b3 300a ldrsh.w r3, [r3, #10] - 8014822: f9b7 2008 ldrsh.w r2, [r7, #8] - 8014826: 429a cmp r2, r3 - 8014828: da03 bge.n 8014832 - 801482a: 2301 movs r3, #1 - 801482c: f887 3037 strb.w r3, [r7, #55] ; 0x37 - 8014830: e043 b.n 80148ba + 8014788: 6e3b ldr r3, [r7, #96] ; 0x60 + 801478a: f9b3 300a ldrsh.w r3, [r3, #10] + 801478e: f9b7 2008 ldrsh.w r2, [r7, #8] + 8014792: 429a cmp r2, r3 + 8014794: da03 bge.n 801479e + 8014796: 2301 movs r3, #1 + 8014798: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 801479c: e043 b.n 8014826 else res1 = LV_DRAW_MASK_RES_UNKNOWN; - 8014832: 2303 movs r3, #3 - 8014834: f887 3037 strb.w r3, [r7, #55] ; 0x37 - 8014838: e03f b.n 80148ba + 801479e: 2303 movs r3, #3 + 80147a0: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 80147a4: e03f b.n 8014826 } else if(p->cfg.start_angle == 0) { - 801483a: 6e3b ldr r3, [r7, #96] ; 0x60 - 801483c: f9b3 300c ldrsh.w r3, [r3, #12] - 8014840: 2b00 cmp r3, #0 - 8014842: d10e bne.n 8014862 + 80147a6: 6e3b ldr r3, [r7, #96] ; 0x60 + 80147a8: f9b3 300c ldrsh.w r3, [r3, #12] + 80147ac: 2b00 cmp r3, #0 + 80147ae: d10e bne.n 80147ce if(abs_y < p->cfg.vertex_p.y) res1 = LV_DRAW_MASK_RES_UNKNOWN; - 8014844: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014846: f9b3 300a ldrsh.w r3, [r3, #10] - 801484a: f9b7 2008 ldrsh.w r2, [r7, #8] - 801484e: 429a cmp r2, r3 - 8014850: da03 bge.n 801485a - 8014852: 2303 movs r3, #3 - 8014854: f887 3037 strb.w r3, [r7, #55] ; 0x37 - 8014858: e02f b.n 80148ba + 80147b0: 6e3b ldr r3, [r7, #96] ; 0x60 + 80147b2: f9b3 300a ldrsh.w r3, [r3, #10] + 80147b6: f9b7 2008 ldrsh.w r2, [r7, #8] + 80147ba: 429a cmp r2, r3 + 80147bc: da03 bge.n 80147c6 + 80147be: 2303 movs r3, #3 + 80147c0: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 80147c4: e02f b.n 8014826 else res1 = LV_DRAW_MASK_RES_FULL_COVER; - 801485a: 2301 movs r3, #1 - 801485c: f887 3037 strb.w r3, [r7, #55] ; 0x37 - 8014860: e02b b.n 80148ba + 80147c6: 2301 movs r3, #1 + 80147c8: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 80147cc: e02b b.n 8014826 } else if((p->cfg.start_angle < 180 && abs_y < p->cfg.vertex_p.y) || - 8014862: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014864: f9b3 300c ldrsh.w r3, [r3, #12] - 8014868: 2bb3 cmp r3, #179 ; 0xb3 - 801486a: dc06 bgt.n 801487a - 801486c: 6e3b ldr r3, [r7, #96] ; 0x60 - 801486e: f9b3 300a ldrsh.w r3, [r3, #10] - 8014872: f9b7 2008 ldrsh.w r2, [r7, #8] - 8014876: 429a cmp r2, r3 - 8014878: db0b blt.n 8014892 + 80147ce: 6e3b ldr r3, [r7, #96] ; 0x60 + 80147d0: f9b3 300c ldrsh.w r3, [r3, #12] + 80147d4: 2bb3 cmp r3, #179 ; 0xb3 + 80147d6: dc06 bgt.n 80147e6 + 80147d8: 6e3b ldr r3, [r7, #96] ; 0x60 + 80147da: f9b3 300a ldrsh.w r3, [r3, #10] + 80147de: f9b7 2008 ldrsh.w r2, [r7, #8] + 80147e2: 429a cmp r2, r3 + 80147e4: db0b blt.n 80147fe (p->cfg.start_angle > 180 && abs_y >= p->cfg.vertex_p.y)) { - 801487a: 6e3b ldr r3, [r7, #96] ; 0x60 - 801487c: f9b3 300c ldrsh.w r3, [r3, #12] + 80147e6: 6e3b ldr r3, [r7, #96] ; 0x60 + 80147e8: f9b3 300c ldrsh.w r3, [r3, #12] else if((p->cfg.start_angle < 180 && abs_y < p->cfg.vertex_p.y) || - 8014880: 2bb4 cmp r3, #180 ; 0xb4 - 8014882: dd0a ble.n 801489a + 80147ec: 2bb4 cmp r3, #180 ; 0xb4 + 80147ee: dd0a ble.n 8014806 (p->cfg.start_angle > 180 && abs_y >= p->cfg.vertex_p.y)) { - 8014884: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014886: f9b3 300a ldrsh.w r3, [r3, #10] - 801488a: f9b7 2008 ldrsh.w r2, [r7, #8] - 801488e: 429a cmp r2, r3 - 8014890: db03 blt.n 801489a + 80147f0: 6e3b ldr r3, [r7, #96] ; 0x60 + 80147f2: f9b3 300a ldrsh.w r3, [r3, #10] + 80147f6: f9b7 2008 ldrsh.w r2, [r7, #8] + 80147fa: 429a cmp r2, r3 + 80147fc: db03 blt.n 8014806 res1 = LV_DRAW_MASK_RES_UNKNOWN; - 8014892: 2303 movs r3, #3 - 8014894: f887 3037 strb.w r3, [r7, #55] ; 0x37 - 8014898: e00f b.n 80148ba + 80147fe: 2303 movs r3, #3 + 8014800: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 8014804: e00f b.n 8014826 } else { res1 = lv_draw_mask_line(mask_buf, abs_x, abs_y, len, &p->start_line); - 801489a: 6e3b ldr r3, [r7, #96] ; 0x60 - 801489c: 3310 adds r3, #16 - 801489e: f9b7 0006 ldrsh.w r0, [r7, #6] - 80148a2: f9b7 2008 ldrsh.w r2, [r7, #8] - 80148a6: f9b7 100a ldrsh.w r1, [r7, #10] - 80148aa: 9300 str r3, [sp, #0] - 80148ac: 4603 mov r3, r0 - 80148ae: 68f8 ldr r0, [r7, #12] - 80148b0: f7ff f8ba bl 8013a28 - 80148b4: 4603 mov r3, r0 - 80148b6: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 8014806: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014808: 3310 adds r3, #16 + 801480a: f9b7 0006 ldrsh.w r0, [r7, #6] + 801480e: f9b7 2008 ldrsh.w r2, [r7, #8] + 8014812: f9b7 100a ldrsh.w r1, [r7, #10] + 8014816: 9300 str r3, [sp, #0] + 8014818: 4603 mov r3, r0 + 801481a: 68f8 ldr r0, [r7, #12] + 801481c: f7ff f8ba bl 8013994 + 8014820: 4603 mov r3, r0 + 8014822: f887 3037 strb.w r3, [r7, #55] ; 0x37 } if(p->cfg.end_angle == 180) { - 80148ba: 6e3b ldr r3, [r7, #96] ; 0x60 - 80148bc: f9b3 300e ldrsh.w r3, [r3, #14] - 80148c0: 2bb4 cmp r3, #180 ; 0xb4 - 80148c2: d10e bne.n 80148e2 + 8014826: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014828: f9b3 300e ldrsh.w r3, [r3, #14] + 801482c: 2bb4 cmp r3, #180 ; 0xb4 + 801482e: d10e bne.n 801484e if(abs_y < p->cfg.vertex_p.y) res2 = LV_DRAW_MASK_RES_UNKNOWN; - 80148c4: 6e3b ldr r3, [r7, #96] ; 0x60 - 80148c6: f9b3 300a ldrsh.w r3, [r3, #10] - 80148ca: f9b7 2008 ldrsh.w r2, [r7, #8] - 80148ce: 429a cmp r2, r3 - 80148d0: da03 bge.n 80148da - 80148d2: 2303 movs r3, #3 - 80148d4: f887 3036 strb.w r3, [r7, #54] ; 0x36 - 80148d8: e043 b.n 8014962 + 8014830: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014832: f9b3 300a ldrsh.w r3, [r3, #10] + 8014836: f9b7 2008 ldrsh.w r2, [r7, #8] + 801483a: 429a cmp r2, r3 + 801483c: da03 bge.n 8014846 + 801483e: 2303 movs r3, #3 + 8014840: f887 3036 strb.w r3, [r7, #54] ; 0x36 + 8014844: e043 b.n 80148ce else res2 = LV_DRAW_MASK_RES_FULL_COVER; - 80148da: 2301 movs r3, #1 - 80148dc: f887 3036 strb.w r3, [r7, #54] ; 0x36 - 80148e0: e03f b.n 8014962 + 8014846: 2301 movs r3, #1 + 8014848: f887 3036 strb.w r3, [r7, #54] ; 0x36 + 801484c: e03f b.n 80148ce } else if(p->cfg.end_angle == 0) { - 80148e2: 6e3b ldr r3, [r7, #96] ; 0x60 - 80148e4: f9b3 300e ldrsh.w r3, [r3, #14] - 80148e8: 2b00 cmp r3, #0 - 80148ea: d10e bne.n 801490a + 801484e: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014850: f9b3 300e ldrsh.w r3, [r3, #14] + 8014854: 2b00 cmp r3, #0 + 8014856: d10e bne.n 8014876 if(abs_y < p->cfg.vertex_p.y) res2 = LV_DRAW_MASK_RES_FULL_COVER; - 80148ec: 6e3b ldr r3, [r7, #96] ; 0x60 - 80148ee: f9b3 300a ldrsh.w r3, [r3, #10] - 80148f2: f9b7 2008 ldrsh.w r2, [r7, #8] - 80148f6: 429a cmp r2, r3 - 80148f8: da03 bge.n 8014902 - 80148fa: 2301 movs r3, #1 - 80148fc: f887 3036 strb.w r3, [r7, #54] ; 0x36 - 8014900: e02f b.n 8014962 + 8014858: 6e3b ldr r3, [r7, #96] ; 0x60 + 801485a: f9b3 300a ldrsh.w r3, [r3, #10] + 801485e: f9b7 2008 ldrsh.w r2, [r7, #8] + 8014862: 429a cmp r2, r3 + 8014864: da03 bge.n 801486e + 8014866: 2301 movs r3, #1 + 8014868: f887 3036 strb.w r3, [r7, #54] ; 0x36 + 801486c: e02f b.n 80148ce else res2 = LV_DRAW_MASK_RES_UNKNOWN; - 8014902: 2303 movs r3, #3 - 8014904: f887 3036 strb.w r3, [r7, #54] ; 0x36 - 8014908: e02b b.n 8014962 + 801486e: 2303 movs r3, #3 + 8014870: f887 3036 strb.w r3, [r7, #54] ; 0x36 + 8014874: e02b b.n 80148ce } else if((p->cfg.end_angle < 180 && abs_y < p->cfg.vertex_p.y) || - 801490a: 6e3b ldr r3, [r7, #96] ; 0x60 - 801490c: f9b3 300e ldrsh.w r3, [r3, #14] - 8014910: 2bb3 cmp r3, #179 ; 0xb3 - 8014912: dc06 bgt.n 8014922 - 8014914: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014916: f9b3 300a ldrsh.w r3, [r3, #10] - 801491a: f9b7 2008 ldrsh.w r2, [r7, #8] - 801491e: 429a cmp r2, r3 - 8014920: db0b blt.n 801493a + 8014876: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014878: f9b3 300e ldrsh.w r3, [r3, #14] + 801487c: 2bb3 cmp r3, #179 ; 0xb3 + 801487e: dc06 bgt.n 801488e + 8014880: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014882: f9b3 300a ldrsh.w r3, [r3, #10] + 8014886: f9b7 2008 ldrsh.w r2, [r7, #8] + 801488a: 429a cmp r2, r3 + 801488c: db0b blt.n 80148a6 (p->cfg.end_angle > 180 && abs_y >= p->cfg.vertex_p.y)) { - 8014922: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014924: f9b3 300e ldrsh.w r3, [r3, #14] + 801488e: 6e3b ldr r3, [r7, #96] ; 0x60 + 8014890: f9b3 300e ldrsh.w r3, [r3, #14] else if((p->cfg.end_angle < 180 && abs_y < p->cfg.vertex_p.y) || - 8014928: 2bb4 cmp r3, #180 ; 0xb4 - 801492a: dd0a ble.n 8014942 + 8014894: 2bb4 cmp r3, #180 ; 0xb4 + 8014896: dd0a ble.n 80148ae (p->cfg.end_angle > 180 && abs_y >= p->cfg.vertex_p.y)) { - 801492c: 6e3b ldr r3, [r7, #96] ; 0x60 - 801492e: f9b3 300a ldrsh.w r3, [r3, #10] - 8014932: f9b7 2008 ldrsh.w r2, [r7, #8] - 8014936: 429a cmp r2, r3 - 8014938: db03 blt.n 8014942 + 8014898: 6e3b ldr r3, [r7, #96] ; 0x60 + 801489a: f9b3 300a ldrsh.w r3, [r3, #10] + 801489e: f9b7 2008 ldrsh.w r2, [r7, #8] + 80148a2: 429a cmp r2, r3 + 80148a4: db03 blt.n 80148ae res2 = LV_DRAW_MASK_RES_UNKNOWN; - 801493a: 2303 movs r3, #3 - 801493c: f887 3036 strb.w r3, [r7, #54] ; 0x36 - 8014940: e00f b.n 8014962 + 80148a6: 2303 movs r3, #3 + 80148a8: f887 3036 strb.w r3, [r7, #54] ; 0x36 + 80148ac: e00f b.n 80148ce } else { res2 = lv_draw_mask_line(mask_buf, abs_x, abs_y, len, &p->end_line); - 8014942: 6e3b ldr r3, [r7, #96] ; 0x60 - 8014944: 333c adds r3, #60 ; 0x3c - 8014946: f9b7 0006 ldrsh.w r0, [r7, #6] - 801494a: f9b7 2008 ldrsh.w r2, [r7, #8] - 801494e: f9b7 100a ldrsh.w r1, [r7, #10] - 8014952: 9300 str r3, [sp, #0] - 8014954: 4603 mov r3, r0 - 8014956: 68f8 ldr r0, [r7, #12] - 8014958: f7ff f866 bl 8013a28 - 801495c: 4603 mov r3, r0 - 801495e: f887 3036 strb.w r3, [r7, #54] ; 0x36 + 80148ae: 6e3b ldr r3, [r7, #96] ; 0x60 + 80148b0: 333c adds r3, #60 ; 0x3c + 80148b2: f9b7 0006 ldrsh.w r0, [r7, #6] + 80148b6: f9b7 2008 ldrsh.w r2, [r7, #8] + 80148ba: f9b7 100a ldrsh.w r1, [r7, #10] + 80148be: 9300 str r3, [sp, #0] + 80148c0: 4603 mov r3, r0 + 80148c2: 68f8 ldr r0, [r7, #12] + 80148c4: f7ff f866 bl 8013994 + 80148c8: 4603 mov r3, r0 + 80148ca: f887 3036 strb.w r3, [r7, #54] ; 0x36 } if(res1 == LV_DRAW_MASK_RES_TRANSP || res2 == LV_DRAW_MASK_RES_TRANSP) return LV_DRAW_MASK_RES_TRANSP; - 8014962: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 8014966: 2b00 cmp r3, #0 - 8014968: d003 beq.n 8014972 - 801496a: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 - 801496e: 2b00 cmp r3, #0 - 8014970: d101 bne.n 8014976 - 8014972: 2300 movs r3, #0 - 8014974: e014 b.n 80149a0 + 80148ce: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 80148d2: 2b00 cmp r3, #0 + 80148d4: d003 beq.n 80148de + 80148d6: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 + 80148da: 2b00 cmp r3, #0 + 80148dc: d101 bne.n 80148e2 + 80148de: 2300 movs r3, #0 + 80148e0: e014 b.n 801490c else if(res1 == LV_DRAW_MASK_RES_UNKNOWN && res2 == LV_DRAW_MASK_RES_UNKNOWN) return LV_DRAW_MASK_RES_TRANSP; - 8014976: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 801497a: 2b03 cmp r3, #3 - 801497c: d105 bne.n 801498a - 801497e: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 - 8014982: 2b03 cmp r3, #3 - 8014984: d101 bne.n 801498a - 8014986: 2300 movs r3, #0 - 8014988: e00a b.n 80149a0 + 80148e2: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 80148e6: 2b03 cmp r3, #3 + 80148e8: d105 bne.n 80148f6 + 80148ea: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 + 80148ee: 2b03 cmp r3, #3 + 80148f0: d101 bne.n 80148f6 + 80148f2: 2300 movs r3, #0 + 80148f4: e00a b.n 801490c else if(res1 == LV_DRAW_MASK_RES_FULL_COVER && res2 == LV_DRAW_MASK_RES_FULL_COVER) return LV_DRAW_MASK_RES_FULL_COVER; - 801498a: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 801498e: 2b01 cmp r3, #1 - 8014990: d105 bne.n 801499e - 8014992: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 - 8014996: 2b01 cmp r3, #1 - 8014998: d101 bne.n 801499e - 801499a: 2301 movs r3, #1 - 801499c: e000 b.n 80149a0 + 80148f6: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 80148fa: 2b01 cmp r3, #1 + 80148fc: d105 bne.n 801490a + 80148fe: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 + 8014902: 2b01 cmp r3, #1 + 8014904: d101 bne.n 801490a + 8014906: 2301 movs r3, #1 + 8014908: e000 b.n 801490c else return LV_DRAW_MASK_RES_CHANGED; - 801499e: 2302 movs r3, #2 + 801490a: 2302 movs r3, #2 } } - 80149a0: 4618 mov r0, r3 - 80149a2: 3754 adds r7, #84 ; 0x54 - 80149a4: 46bd mov sp, r7 - 80149a6: bd90 pop {r4, r7, pc} + 801490c: 4618 mov r0, r3 + 801490e: 3754 adds r7, #84 ; 0x54 + 8014910: 46bd mov sp, r7 + 8014912: bd90 pop {r4, r7, pc} -080149a8 : +08014914 : LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_radius(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, lv_coord_t len, lv_draw_mask_radius_param_t * p) { - 80149a8: b590 push {r4, r7, lr} - 80149aa: b097 sub sp, #92 ; 0x5c - 80149ac: af00 add r7, sp, #0 - 80149ae: 60f8 str r0, [r7, #12] - 80149b0: 4608 mov r0, r1 - 80149b2: 4611 mov r1, r2 - 80149b4: 461a mov r2, r3 - 80149b6: 4603 mov r3, r0 - 80149b8: 817b strh r3, [r7, #10] - 80149ba: 460b mov r3, r1 - 80149bc: 813b strh r3, [r7, #8] - 80149be: 4613 mov r3, r2 - 80149c0: 80fb strh r3, [r7, #6] + 8014914: b590 push {r4, r7, lr} + 8014916: b097 sub sp, #92 ; 0x5c + 8014918: af00 add r7, sp, #0 + 801491a: 60f8 str r0, [r7, #12] + 801491c: 4608 mov r0, r1 + 801491e: 4611 mov r1, r2 + 8014920: 461a mov r2, r3 + 8014922: 4603 mov r3, r0 + 8014924: 817b strh r3, [r7, #10] + 8014926: 460b mov r3, r1 + 8014928: 813b strh r3, [r7, #8] + 801492a: 4613 mov r3, r2 + 801492c: 80fb strh r3, [r7, #6] bool outer = p->cfg.outer; - 80149c2: 6ebb ldr r3, [r7, #104] ; 0x68 - 80149c4: 7c9b ldrb r3, [r3, #18] - 80149c6: f3c3 0300 ubfx r3, r3, #0, #1 - 80149ca: b2db uxtb r3, r3 - 80149cc: 2b00 cmp r3, #0 - 80149ce: bf14 ite ne - 80149d0: 2301 movne r3, #1 - 80149d2: 2300 moveq r3, #0 - 80149d4: f887 304b strb.w r3, [r7, #75] ; 0x4b + 801492e: 6ebb ldr r3, [r7, #104] ; 0x68 + 8014930: 7c9b ldrb r3, [r3, #18] + 8014932: f3c3 0300 ubfx r3, r3, #0, #1 + 8014936: b2db uxtb r3, r3 + 8014938: 2b00 cmp r3, #0 + 801493a: bf14 ite ne + 801493c: 2301 movne r3, #1 + 801493e: 2300 moveq r3, #0 + 8014940: f887 304b strb.w r3, [r7, #75] ; 0x4b int32_t radius = p->cfg.radius; - 80149d8: 6ebb ldr r3, [r7, #104] ; 0x68 - 80149da: f9b3 3010 ldrsh.w r3, [r3, #16] - 80149de: 647b str r3, [r7, #68] ; 0x44 + 8014944: 6ebb ldr r3, [r7, #104] ; 0x68 + 8014946: f9b3 3010 ldrsh.w r3, [r3, #16] + 801494a: 647b str r3, [r7, #68] ; 0x44 lv_area_t rect; lv_area_copy(&rect, &p->cfg.rect); - 80149e0: 6ebb ldr r3, [r7, #104] ; 0x68 - 80149e2: f103 0208 add.w r2, r3, #8 - 80149e6: f107 0318 add.w r3, r7, #24 - 80149ea: 4611 mov r1, r2 - 80149ec: 4618 mov r0, r3 - 80149ee: f7fe fade bl 8012fae + 801494c: 6ebb ldr r3, [r7, #104] ; 0x68 + 801494e: f103 0208 add.w r2, r3, #8 + 8014952: f107 0318 add.w r3, r7, #24 + 8014956: 4611 mov r1, r2 + 8014958: 4618 mov r0, r3 + 801495a: f7fe fade bl 8012f1a if(outer == false) { - 80149f2: f897 304b ldrb.w r3, [r7, #75] ; 0x4b - 80149f6: f083 0301 eor.w r3, r3, #1 - 80149fa: b2db uxtb r3, r3 - 80149fc: 2b00 cmp r3, #0 - 80149fe: d00d beq.n 8014a1c + 801495e: f897 304b ldrb.w r3, [r7, #75] ; 0x4b + 8014962: f083 0301 eor.w r3, r3, #1 + 8014966: b2db uxtb r3, r3 + 8014968: 2b00 cmp r3, #0 + 801496a: d00d beq.n 8014988 if((abs_y < rect.y1 || abs_y > rect.y2)) { - 8014a00: f9b7 301a ldrsh.w r3, [r7, #26] - 8014a04: f9b7 2008 ldrsh.w r2, [r7, #8] - 8014a08: 429a cmp r2, r3 - 8014a0a: db05 blt.n 8014a18 - 8014a0c: f9b7 301e ldrsh.w r3, [r7, #30] - 8014a10: f9b7 2008 ldrsh.w r2, [r7, #8] - 8014a14: 429a cmp r2, r3 - 8014a16: dd0f ble.n 8014a38 + 801496c: f9b7 301a ldrsh.w r3, [r7, #26] + 8014970: f9b7 2008 ldrsh.w r2, [r7, #8] + 8014974: 429a cmp r2, r3 + 8014976: db05 blt.n 8014984 + 8014978: f9b7 301e ldrsh.w r3, [r7, #30] + 801497c: f9b7 2008 ldrsh.w r2, [r7, #8] + 8014980: 429a cmp r2, r3 + 8014982: dd0f ble.n 80149a4 return LV_DRAW_MASK_RES_TRANSP; - 8014a18: 2300 movs r3, #0 - 8014a1a: e266 b.n 8014eea + 8014984: 2300 movs r3, #0 + 8014986: e266 b.n 8014e56 } } else { if(abs_y < rect.y1 || abs_y > rect.y2) { - 8014a1c: f9b7 301a ldrsh.w r3, [r7, #26] - 8014a20: f9b7 2008 ldrsh.w r2, [r7, #8] - 8014a24: 429a cmp r2, r3 - 8014a26: db05 blt.n 8014a34 - 8014a28: f9b7 301e ldrsh.w r3, [r7, #30] - 8014a2c: f9b7 2008 ldrsh.w r2, [r7, #8] - 8014a30: 429a cmp r2, r3 - 8014a32: dd01 ble.n 8014a38 + 8014988: f9b7 301a ldrsh.w r3, [r7, #26] + 801498c: f9b7 2008 ldrsh.w r2, [r7, #8] + 8014990: 429a cmp r2, r3 + 8014992: db05 blt.n 80149a0 + 8014994: f9b7 301e ldrsh.w r3, [r7, #30] + 8014998: f9b7 2008 ldrsh.w r2, [r7, #8] + 801499c: 429a cmp r2, r3 + 801499e: dd01 ble.n 80149a4 return LV_DRAW_MASK_RES_FULL_COVER; - 8014a34: 2301 movs r3, #1 - 8014a36: e258 b.n 8014eea + 80149a0: 2301 movs r3, #1 + 80149a2: e258 b.n 8014e56 } } if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) || - 8014a38: f9b7 200a ldrsh.w r2, [r7, #10] - 8014a3c: f9b7 3018 ldrsh.w r3, [r7, #24] - 8014a40: 4619 mov r1, r3 - 8014a42: 6c7b ldr r3, [r7, #68] ; 0x44 - 8014a44: 440b add r3, r1 - 8014a46: 429a cmp r2, r3 - 8014a48: db0b blt.n 8014a62 - 8014a4a: f9b7 200a ldrsh.w r2, [r7, #10] - 8014a4e: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014a52: 441a add r2, r3 - 8014a54: f9b7 301c ldrsh.w r3, [r7, #28] - 8014a58: 4619 mov r1, r3 - 8014a5a: 6c7b ldr r3, [r7, #68] ; 0x44 - 8014a5c: 1acb subs r3, r1, r3 - 8014a5e: 429a cmp r2, r3 - 8014a60: dd12 ble.n 8014a88 + 80149a4: f9b7 200a ldrsh.w r2, [r7, #10] + 80149a8: f9b7 3018 ldrsh.w r3, [r7, #24] + 80149ac: 4619 mov r1, r3 + 80149ae: 6c7b ldr r3, [r7, #68] ; 0x44 + 80149b0: 440b add r3, r1 + 80149b2: 429a cmp r2, r3 + 80149b4: db0b blt.n 80149ce + 80149b6: f9b7 200a ldrsh.w r2, [r7, #10] + 80149ba: f9b7 3006 ldrsh.w r3, [r7, #6] + 80149be: 441a add r2, r3 + 80149c0: f9b7 301c ldrsh.w r3, [r7, #28] + 80149c4: 4619 mov r1, r3 + 80149c6: 6c7b ldr r3, [r7, #68] ; 0x44 + 80149c8: 1acb subs r3, r1, r3 + 80149ca: 429a cmp r2, r3 + 80149cc: dd12 ble.n 80149f4 (abs_y >= rect.y1 + radius && abs_y <= rect.y2 - radius)) { - 8014a62: f9b7 2008 ldrsh.w r2, [r7, #8] - 8014a66: f9b7 301a ldrsh.w r3, [r7, #26] - 8014a6a: 4619 mov r1, r3 - 8014a6c: 6c7b ldr r3, [r7, #68] ; 0x44 - 8014a6e: 440b add r3, r1 + 80149ce: f9b7 2008 ldrsh.w r2, [r7, #8] + 80149d2: f9b7 301a ldrsh.w r3, [r7, #26] + 80149d6: 4619 mov r1, r3 + 80149d8: 6c7b ldr r3, [r7, #68] ; 0x44 + 80149da: 440b add r3, r1 if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) || - 8014a70: 429a cmp r2, r3 - 8014a72: f2c0 8082 blt.w 8014b7a + 80149dc: 429a cmp r2, r3 + 80149de: f2c0 8082 blt.w 8014ae6 (abs_y >= rect.y1 + radius && abs_y <= rect.y2 - radius)) { - 8014a76: f9b7 2008 ldrsh.w r2, [r7, #8] - 8014a7a: f9b7 301e ldrsh.w r3, [r7, #30] - 8014a7e: 4619 mov r1, r3 - 8014a80: 6c7b ldr r3, [r7, #68] ; 0x44 - 8014a82: 1acb subs r3, r1, r3 - 8014a84: 429a cmp r2, r3 - 8014a86: dc78 bgt.n 8014b7a + 80149e2: f9b7 2008 ldrsh.w r2, [r7, #8] + 80149e6: f9b7 301e ldrsh.w r3, [r7, #30] + 80149ea: 4619 mov r1, r3 + 80149ec: 6c7b ldr r3, [r7, #68] ; 0x44 + 80149ee: 1acb subs r3, r1, r3 + 80149f0: 429a cmp r2, r3 + 80149f2: dc78 bgt.n 8014ae6 if(outer == false) { - 8014a88: f897 304b ldrb.w r3, [r7, #75] ; 0x4b - 8014a8c: f083 0301 eor.w r3, r3, #1 - 8014a90: b2db uxtb r3, r3 - 8014a92: 2b00 cmp r3, #0 - 8014a94: d03d beq.n 8014b12 + 80149f4: f897 304b ldrb.w r3, [r7, #75] ; 0x4b + 80149f8: f083 0301 eor.w r3, r3, #1 + 80149fc: b2db uxtb r3, r3 + 80149fe: 2b00 cmp r3, #0 + 8014a00: d03d beq.n 8014a7e /*Remove the edges*/ int32_t last = rect.x1 - abs_x; - 8014a96: f9b7 3018 ldrsh.w r3, [r7, #24] - 8014a9a: 461a mov r2, r3 - 8014a9c: f9b7 300a ldrsh.w r3, [r7, #10] - 8014aa0: 1ad3 subs r3, r2, r3 - 8014aa2: 627b str r3, [r7, #36] ; 0x24 + 8014a02: f9b7 3018 ldrsh.w r3, [r7, #24] + 8014a06: 461a mov r2, r3 + 8014a08: f9b7 300a ldrsh.w r3, [r7, #10] + 8014a0c: 1ad3 subs r3, r2, r3 + 8014a0e: 627b str r3, [r7, #36] ; 0x24 if(last > len) return LV_DRAW_MASK_RES_TRANSP; - 8014aa4: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014aa8: 6a7a ldr r2, [r7, #36] ; 0x24 - 8014aaa: 429a cmp r2, r3 - 8014aac: dd01 ble.n 8014ab2 - 8014aae: 2300 movs r3, #0 - 8014ab0: e21b b.n 8014eea + 8014a10: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014a14: 6a7a ldr r2, [r7, #36] ; 0x24 + 8014a16: 429a cmp r2, r3 + 8014a18: dd01 ble.n 8014a1e + 8014a1a: 2300 movs r3, #0 + 8014a1c: e21b b.n 8014e56 if(last >= 0) { - 8014ab2: 6a7b ldr r3, [r7, #36] ; 0x24 - 8014ab4: 2b00 cmp r3, #0 - 8014ab6: db04 blt.n 8014ac2 + 8014a1e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8014a20: 2b00 cmp r3, #0 + 8014a22: db04 blt.n 8014a2e lv_memset_00(&mask_buf[0], last); - 8014ab8: 6a7b ldr r3, [r7, #36] ; 0x24 - 8014aba: 4619 mov r1, r3 - 8014abc: 68f8 ldr r0, [r7, #12] - 8014abe: f01e fb47 bl 8033150 + 8014a24: 6a7b ldr r3, [r7, #36] ; 0x24 + 8014a26: 4619 mov r1, r3 + 8014a28: 68f8 ldr r0, [r7, #12] + 8014a2a: f01e fb47 bl 80330bc } int32_t first = rect.x2 - abs_x + 1; - 8014ac2: f9b7 301c ldrsh.w r3, [r7, #28] - 8014ac6: 461a mov r2, r3 - 8014ac8: f9b7 300a ldrsh.w r3, [r7, #10] - 8014acc: 1ad3 subs r3, r2, r3 - 8014ace: 3301 adds r3, #1 - 8014ad0: 623b str r3, [r7, #32] + 8014a2e: f9b7 301c ldrsh.w r3, [r7, #28] + 8014a32: 461a mov r2, r3 + 8014a34: f9b7 300a ldrsh.w r3, [r7, #10] + 8014a38: 1ad3 subs r3, r2, r3 + 8014a3a: 3301 adds r3, #1 + 8014a3c: 623b str r3, [r7, #32] if(first <= 0) return LV_DRAW_MASK_RES_TRANSP; - 8014ad2: 6a3b ldr r3, [r7, #32] - 8014ad4: 2b00 cmp r3, #0 - 8014ad6: dc01 bgt.n 8014adc - 8014ad8: 2300 movs r3, #0 - 8014ada: e206 b.n 8014eea + 8014a3e: 6a3b ldr r3, [r7, #32] + 8014a40: 2b00 cmp r3, #0 + 8014a42: dc01 bgt.n 8014a48 + 8014a44: 2300 movs r3, #0 + 8014a46: e206 b.n 8014e56 else if(first < len) { - 8014adc: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014ae0: 6a3a ldr r2, [r7, #32] - 8014ae2: 429a cmp r2, r3 - 8014ae4: da09 bge.n 8014afa + 8014a48: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014a4c: 6a3a ldr r2, [r7, #32] + 8014a4e: 429a cmp r2, r3 + 8014a50: da09 bge.n 8014a66 lv_memset_00(&mask_buf[first], len - first); - 8014ae6: 6a3b ldr r3, [r7, #32] - 8014ae8: 68fa ldr r2, [r7, #12] - 8014aea: 18d0 adds r0, r2, r3 - 8014aec: f9b7 2006 ldrsh.w r2, [r7, #6] - 8014af0: 6a3b ldr r3, [r7, #32] - 8014af2: 1ad3 subs r3, r2, r3 - 8014af4: 4619 mov r1, r3 - 8014af6: f01e fb2b bl 8033150 + 8014a52: 6a3b ldr r3, [r7, #32] + 8014a54: 68fa ldr r2, [r7, #12] + 8014a56: 18d0 adds r0, r2, r3 + 8014a58: f9b7 2006 ldrsh.w r2, [r7, #6] + 8014a5c: 6a3b ldr r3, [r7, #32] + 8014a5e: 1ad3 subs r3, r2, r3 + 8014a60: 4619 mov r1, r3 + 8014a62: f01e fb2b bl 80330bc } if(last == 0 && first == len) return LV_DRAW_MASK_RES_FULL_COVER; - 8014afa: 6a7b ldr r3, [r7, #36] ; 0x24 - 8014afc: 2b00 cmp r3, #0 - 8014afe: d106 bne.n 8014b0e - 8014b00: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014b04: 6a3a ldr r2, [r7, #32] - 8014b06: 429a cmp r2, r3 - 8014b08: d101 bne.n 8014b0e - 8014b0a: 2301 movs r3, #1 - 8014b0c: e1ed b.n 8014eea + 8014a66: 6a7b ldr r3, [r7, #36] ; 0x24 + 8014a68: 2b00 cmp r3, #0 + 8014a6a: d106 bne.n 8014a7a + 8014a6c: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014a70: 6a3a ldr r2, [r7, #32] + 8014a72: 429a cmp r2, r3 + 8014a74: d101 bne.n 8014a7a + 8014a76: 2301 movs r3, #1 + 8014a78: e1ed b.n 8014e56 else return LV_DRAW_MASK_RES_CHANGED; - 8014b0e: 2302 movs r3, #2 - 8014b10: e1eb b.n 8014eea + 8014a7a: 2302 movs r3, #2 + 8014a7c: e1eb b.n 8014e56 } else { int32_t first = rect.x1 - abs_x; - 8014b12: f9b7 3018 ldrsh.w r3, [r7, #24] - 8014b16: 461a mov r2, r3 - 8014b18: f9b7 300a ldrsh.w r3, [r7, #10] - 8014b1c: 1ad3 subs r3, r2, r3 - 8014b1e: 657b str r3, [r7, #84] ; 0x54 + 8014a7e: f9b7 3018 ldrsh.w r3, [r7, #24] + 8014a82: 461a mov r2, r3 + 8014a84: f9b7 300a ldrsh.w r3, [r7, #10] + 8014a88: 1ad3 subs r3, r2, r3 + 8014a8a: 657b str r3, [r7, #84] ; 0x54 if(first < 0) first = 0; - 8014b20: 6d7b ldr r3, [r7, #84] ; 0x54 - 8014b22: 2b00 cmp r3, #0 - 8014b24: da01 bge.n 8014b2a - 8014b26: 2300 movs r3, #0 - 8014b28: 657b str r3, [r7, #84] ; 0x54 + 8014a8c: 6d7b ldr r3, [r7, #84] ; 0x54 + 8014a8e: 2b00 cmp r3, #0 + 8014a90: da01 bge.n 8014a96 + 8014a92: 2300 movs r3, #0 + 8014a94: 657b str r3, [r7, #84] ; 0x54 if(first <= len) { - 8014b2a: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014b2e: 6d7a ldr r2, [r7, #84] ; 0x54 - 8014b30: 429a cmp r2, r3 - 8014b32: dc20 bgt.n 8014b76 + 8014a96: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014a9a: 6d7a ldr r2, [r7, #84] ; 0x54 + 8014a9c: 429a cmp r2, r3 + 8014a9e: dc20 bgt.n 8014ae2 int32_t last = rect.x2 - abs_x - first + 1; - 8014b34: f9b7 301c ldrsh.w r3, [r7, #28] - 8014b38: 461a mov r2, r3 - 8014b3a: f9b7 300a ldrsh.w r3, [r7, #10] - 8014b3e: 1ad2 subs r2, r2, r3 - 8014b40: 6d7b ldr r3, [r7, #84] ; 0x54 - 8014b42: 1ad3 subs r3, r2, r3 - 8014b44: 3301 adds r3, #1 - 8014b46: 653b str r3, [r7, #80] ; 0x50 + 8014aa0: f9b7 301c ldrsh.w r3, [r7, #28] + 8014aa4: 461a mov r2, r3 + 8014aa6: f9b7 300a ldrsh.w r3, [r7, #10] + 8014aaa: 1ad2 subs r2, r2, r3 + 8014aac: 6d7b ldr r3, [r7, #84] ; 0x54 + 8014aae: 1ad3 subs r3, r2, r3 + 8014ab0: 3301 adds r3, #1 + 8014ab2: 653b str r3, [r7, #80] ; 0x50 if(first + last > len) last = len - first; - 8014b48: 6d7a ldr r2, [r7, #84] ; 0x54 - 8014b4a: 6d3b ldr r3, [r7, #80] ; 0x50 - 8014b4c: 441a add r2, r3 - 8014b4e: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014b52: 429a cmp r2, r3 - 8014b54: dd04 ble.n 8014b60 - 8014b56: f9b7 2006 ldrsh.w r2, [r7, #6] - 8014b5a: 6d7b ldr r3, [r7, #84] ; 0x54 - 8014b5c: 1ad3 subs r3, r2, r3 - 8014b5e: 653b str r3, [r7, #80] ; 0x50 + 8014ab4: 6d7a ldr r2, [r7, #84] ; 0x54 + 8014ab6: 6d3b ldr r3, [r7, #80] ; 0x50 + 8014ab8: 441a add r2, r3 + 8014aba: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014abe: 429a cmp r2, r3 + 8014ac0: dd04 ble.n 8014acc + 8014ac2: f9b7 2006 ldrsh.w r2, [r7, #6] + 8014ac6: 6d7b ldr r3, [r7, #84] ; 0x54 + 8014ac8: 1ad3 subs r3, r2, r3 + 8014aca: 653b str r3, [r7, #80] ; 0x50 if(last >= 0) { - 8014b60: 6d3b ldr r3, [r7, #80] ; 0x50 - 8014b62: 2b00 cmp r3, #0 - 8014b64: db07 blt.n 8014b76 + 8014acc: 6d3b ldr r3, [r7, #80] ; 0x50 + 8014ace: 2b00 cmp r3, #0 + 8014ad0: db07 blt.n 8014ae2 lv_memset_00(&mask_buf[first], last); - 8014b66: 6d7b ldr r3, [r7, #84] ; 0x54 - 8014b68: 68fa ldr r2, [r7, #12] - 8014b6a: 4413 add r3, r2 - 8014b6c: 6d3a ldr r2, [r7, #80] ; 0x50 - 8014b6e: 4611 mov r1, r2 - 8014b70: 4618 mov r0, r3 - 8014b72: f01e faed bl 8033150 + 8014ad2: 6d7b ldr r3, [r7, #84] ; 0x54 + 8014ad4: 68fa ldr r2, [r7, #12] + 8014ad6: 4413 add r3, r2 + 8014ad8: 6d3a ldr r2, [r7, #80] ; 0x50 + 8014ada: 4611 mov r1, r2 + 8014adc: 4618 mov r0, r3 + 8014ade: f01e faed bl 80330bc } } } return LV_DRAW_MASK_RES_CHANGED; - 8014b76: 2302 movs r3, #2 - 8014b78: e1b7 b.n 8014eea + 8014ae2: 2302 movs r3, #2 + 8014ae4: e1b7 b.n 8014e56 // if( abs_x == 276 && abs_x + len - 1 == 479 && abs_y == 63 && p->cfg.radius == 5 && p->cfg.outer == 1) { // char x = 0; // } //exec: x:276.. 479, y:63: r:5, inv) int32_t k = rect.x1 - abs_x; /*First relevant coordinate on the of the mask*/ - 8014b7a: f9b7 3018 ldrsh.w r3, [r7, #24] - 8014b7e: 461a mov r2, r3 - 8014b80: f9b7 300a ldrsh.w r3, [r7, #10] - 8014b84: 1ad3 subs r3, r2, r3 - 8014b86: 643b str r3, [r7, #64] ; 0x40 + 8014ae6: f9b7 3018 ldrsh.w r3, [r7, #24] + 8014aea: 461a mov r2, r3 + 8014aec: f9b7 300a ldrsh.w r3, [r7, #10] + 8014af0: 1ad3 subs r3, r2, r3 + 8014af2: 643b str r3, [r7, #64] ; 0x40 int32_t w = lv_area_get_width(&rect); - 8014b88: f107 0318 add.w r3, r7, #24 - 8014b8c: 4618 mov r0, r3 - 8014b8e: f7fe fa2c bl 8012fea - 8014b92: 4603 mov r3, r0 - 8014b94: 63fb str r3, [r7, #60] ; 0x3c + 8014af4: f107 0318 add.w r3, r7, #24 + 8014af8: 4618 mov r0, r3 + 8014afa: f7fe fa2c bl 8012f56 + 8014afe: 4603 mov r3, r0 + 8014b00: 63fb str r3, [r7, #60] ; 0x3c int32_t h = lv_area_get_height(&rect); - 8014b96: f107 0318 add.w r3, r7, #24 - 8014b9a: 4618 mov r0, r3 - 8014b9c: f7fe fa3b bl 8013016 - 8014ba0: 4603 mov r3, r0 - 8014ba2: 63bb str r3, [r7, #56] ; 0x38 + 8014b02: f107 0318 add.w r3, r7, #24 + 8014b06: 4618 mov r0, r3 + 8014b08: f7fe fa3b bl 8012f82 + 8014b0c: 4603 mov r3, r0 + 8014b0e: 63bb str r3, [r7, #56] ; 0x38 abs_x -= rect.x1; - 8014ba4: 897a ldrh r2, [r7, #10] - 8014ba6: f9b7 3018 ldrsh.w r3, [r7, #24] - 8014baa: b29b uxth r3, r3 - 8014bac: 1ad3 subs r3, r2, r3 - 8014bae: b29b uxth r3, r3 - 8014bb0: 817b strh r3, [r7, #10] + 8014b10: 897a ldrh r2, [r7, #10] + 8014b12: f9b7 3018 ldrsh.w r3, [r7, #24] + 8014b16: b29b uxth r3, r3 + 8014b18: 1ad3 subs r3, r2, r3 + 8014b1a: b29b uxth r3, r3 + 8014b1c: 817b strh r3, [r7, #10] abs_y -= rect.y1; - 8014bb2: 893a ldrh r2, [r7, #8] - 8014bb4: f9b7 301a ldrsh.w r3, [r7, #26] - 8014bb8: b29b uxth r3, r3 - 8014bba: 1ad3 subs r3, r2, r3 - 8014bbc: b29b uxth r3, r3 - 8014bbe: 813b strh r3, [r7, #8] + 8014b1e: 893a ldrh r2, [r7, #8] + 8014b20: f9b7 301a ldrsh.w r3, [r7, #26] + 8014b24: b29b uxth r3, r3 + 8014b26: 1ad3 subs r3, r2, r3 + 8014b28: b29b uxth r3, r3 + 8014b2a: 813b strh r3, [r7, #8] lv_coord_t aa_len; lv_coord_t x_start; lv_coord_t cir_y; if(abs_y < radius) { - 8014bc0: f9b7 3008 ldrsh.w r3, [r7, #8] - 8014bc4: 6c7a ldr r2, [r7, #68] ; 0x44 - 8014bc6: 429a cmp r2, r3 - 8014bc8: dd09 ble.n 8014bde + 8014b2c: f9b7 3008 ldrsh.w r3, [r7, #8] + 8014b30: 6c7a ldr r2, [r7, #68] ; 0x44 + 8014b32: 429a cmp r2, r3 + 8014b34: dd09 ble.n 8014b4a cir_y = radius - abs_y - 1; - 8014bca: 6c7b ldr r3, [r7, #68] ; 0x44 - 8014bcc: b29a uxth r2, r3 - 8014bce: 893b ldrh r3, [r7, #8] - 8014bd0: 1ad3 subs r3, r2, r3 - 8014bd2: b29b uxth r3, r3 - 8014bd4: 3b01 subs r3, #1 - 8014bd6: b29b uxth r3, r3 - 8014bd8: f8a7 304e strh.w r3, [r7, #78] ; 0x4e - 8014bdc: e00a b.n 8014bf4 + 8014b36: 6c7b ldr r3, [r7, #68] ; 0x44 + 8014b38: b29a uxth r2, r3 + 8014b3a: 893b ldrh r3, [r7, #8] + 8014b3c: 1ad3 subs r3, r2, r3 + 8014b3e: b29b uxth r3, r3 + 8014b40: 3b01 subs r3, #1 + 8014b42: b29b uxth r3, r3 + 8014b44: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 8014b48: e00a b.n 8014b60 } else { cir_y = abs_y - (h - radius); - 8014bde: 6c7b ldr r3, [r7, #68] ; 0x44 - 8014be0: b29a uxth r2, r3 - 8014be2: 6bbb ldr r3, [r7, #56] ; 0x38 - 8014be4: b29b uxth r3, r3 - 8014be6: 1ad3 subs r3, r2, r3 - 8014be8: b29a uxth r2, r3 - 8014bea: 893b ldrh r3, [r7, #8] - 8014bec: 4413 add r3, r2 - 8014bee: b29b uxth r3, r3 - 8014bf0: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 8014b4a: 6c7b ldr r3, [r7, #68] ; 0x44 + 8014b4c: b29a uxth r2, r3 + 8014b4e: 6bbb ldr r3, [r7, #56] ; 0x38 + 8014b50: b29b uxth r3, r3 + 8014b52: 1ad3 subs r3, r2, r3 + 8014b54: b29a uxth r2, r3 + 8014b56: 893b ldrh r3, [r7, #8] + 8014b58: 4413 add r3, r2 + 8014b5a: b29b uxth r3, r3 + 8014b5c: f8a7 304e strh.w r3, [r7, #78] ; 0x4e } lv_opa_t * aa_opa = get_next_line(p->circle, cir_y, &aa_len, &x_start); - 8014bf4: 6ebb ldr r3, [r7, #104] ; 0x68 - 8014bf6: 6958 ldr r0, [r3, #20] - 8014bf8: f107 0314 add.w r3, r7, #20 - 8014bfc: f107 0216 add.w r2, r7, #22 - 8014c00: f9b7 104e ldrsh.w r1, [r7, #78] ; 0x4e - 8014c04: f000 fd35 bl 8015672 - 8014c08: 6378 str r0, [r7, #52] ; 0x34 + 8014b60: 6ebb ldr r3, [r7, #104] ; 0x68 + 8014b62: 6958 ldr r0, [r3, #20] + 8014b64: f107 0314 add.w r3, r7, #20 + 8014b68: f107 0216 add.w r2, r7, #22 + 8014b6c: f9b7 104e ldrsh.w r1, [r7, #78] ; 0x4e + 8014b70: f000 fd35 bl 80155de + 8014b74: 6378 str r0, [r7, #52] ; 0x34 lv_coord_t cir_x_right = k + w - radius + x_start; - 8014c0a: 6c3b ldr r3, [r7, #64] ; 0x40 - 8014c0c: b29a uxth r2, r3 - 8014c0e: 6bfb ldr r3, [r7, #60] ; 0x3c - 8014c10: b29b uxth r3, r3 - 8014c12: 4413 add r3, r2 - 8014c14: b29a uxth r2, r3 - 8014c16: 6c7b ldr r3, [r7, #68] ; 0x44 - 8014c18: b29b uxth r3, r3 - 8014c1a: 1ad3 subs r3, r2, r3 - 8014c1c: b29a uxth r2, r3 - 8014c1e: f9b7 3014 ldrsh.w r3, [r7, #20] - 8014c22: b29b uxth r3, r3 - 8014c24: 4413 add r3, r2 - 8014c26: b29b uxth r3, r3 - 8014c28: 867b strh r3, [r7, #50] ; 0x32 + 8014b76: 6c3b ldr r3, [r7, #64] ; 0x40 + 8014b78: b29a uxth r2, r3 + 8014b7a: 6bfb ldr r3, [r7, #60] ; 0x3c + 8014b7c: b29b uxth r3, r3 + 8014b7e: 4413 add r3, r2 + 8014b80: b29a uxth r2, r3 + 8014b82: 6c7b ldr r3, [r7, #68] ; 0x44 + 8014b84: b29b uxth r3, r3 + 8014b86: 1ad3 subs r3, r2, r3 + 8014b88: b29a uxth r2, r3 + 8014b8a: f9b7 3014 ldrsh.w r3, [r7, #20] + 8014b8e: b29b uxth r3, r3 + 8014b90: 4413 add r3, r2 + 8014b92: b29b uxth r3, r3 + 8014b94: 867b strh r3, [r7, #50] ; 0x32 lv_coord_t cir_x_left = k + radius - x_start - 1; - 8014c2a: 6c3b ldr r3, [r7, #64] ; 0x40 - 8014c2c: b29a uxth r2, r3 - 8014c2e: 6c7b ldr r3, [r7, #68] ; 0x44 - 8014c30: b29b uxth r3, r3 - 8014c32: 4413 add r3, r2 - 8014c34: b29a uxth r2, r3 - 8014c36: f9b7 3014 ldrsh.w r3, [r7, #20] - 8014c3a: b29b uxth r3, r3 - 8014c3c: 1ad3 subs r3, r2, r3 - 8014c3e: b29b uxth r3, r3 - 8014c40: 3b01 subs r3, #1 - 8014c42: b29b uxth r3, r3 - 8014c44: 863b strh r3, [r7, #48] ; 0x30 + 8014b96: 6c3b ldr r3, [r7, #64] ; 0x40 + 8014b98: b29a uxth r2, r3 + 8014b9a: 6c7b ldr r3, [r7, #68] ; 0x44 + 8014b9c: b29b uxth r3, r3 + 8014b9e: 4413 add r3, r2 + 8014ba0: b29a uxth r2, r3 + 8014ba2: f9b7 3014 ldrsh.w r3, [r7, #20] + 8014ba6: b29b uxth r3, r3 + 8014ba8: 1ad3 subs r3, r2, r3 + 8014baa: b29b uxth r3, r3 + 8014bac: 3b01 subs r3, #1 + 8014bae: b29b uxth r3, r3 + 8014bb0: 863b strh r3, [r7, #48] ; 0x30 lv_coord_t i; if(outer == false) { - 8014c46: f897 304b ldrb.w r3, [r7, #75] ; 0x4b - 8014c4a: f083 0301 eor.w r3, r3, #1 - 8014c4e: b2db uxtb r3, r3 - 8014c50: 2b00 cmp r3, #0 - 8014c52: f000 809b beq.w 8014d8c + 8014bb2: f897 304b ldrb.w r3, [r7, #75] ; 0x4b + 8014bb6: f083 0301 eor.w r3, r3, #1 + 8014bba: b2db uxtb r3, r3 + 8014bbc: 2b00 cmp r3, #0 + 8014bbe: f000 809b beq.w 8014cf8 for(i = 0; i < aa_len; i++) { - 8014c56: 2300 movs r3, #0 - 8014c58: f8a7 304c strh.w r3, [r7, #76] ; 0x4c - 8014c5c: e062 b.n 8014d24 + 8014bc2: 2300 movs r3, #0 + 8014bc4: f8a7 304c strh.w r3, [r7, #76] ; 0x4c + 8014bc8: e062 b.n 8014c90 lv_opa_t opa = aa_opa[aa_len - i - 1]; - 8014c5e: f9b7 3016 ldrsh.w r3, [r7, #22] - 8014c62: 461a mov r2, r3 - 8014c64: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014c68: 1ad3 subs r3, r2, r3 - 8014c6a: 3b01 subs r3, #1 - 8014c6c: 6b7a ldr r2, [r7, #52] ; 0x34 - 8014c6e: 4413 add r3, r2 - 8014c70: 781b ldrb r3, [r3, #0] - 8014c72: f887 302a strb.w r3, [r7, #42] ; 0x2a + 8014bca: f9b7 3016 ldrsh.w r3, [r7, #22] + 8014bce: 461a mov r2, r3 + 8014bd0: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014bd4: 1ad3 subs r3, r2, r3 + 8014bd6: 3b01 subs r3, #1 + 8014bd8: 6b7a ldr r2, [r7, #52] ; 0x34 + 8014bda: 4413 add r3, r2 + 8014bdc: 781b ldrb r3, [r3, #0] + 8014bde: f887 302a strb.w r3, [r7, #42] ; 0x2a if(cir_x_right + i >= 0 && cir_x_right + i < len) { - 8014c76: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 - 8014c7a: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014c7e: 4413 add r3, r2 - 8014c80: 2b00 cmp r3, #0 - 8014c82: db20 blt.n 8014cc6 - 8014c84: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 - 8014c88: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014c8c: 441a add r2, r3 - 8014c8e: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014c92: 429a cmp r2, r3 - 8014c94: da17 bge.n 8014cc6 + 8014be2: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 + 8014be6: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014bea: 4413 add r3, r2 + 8014bec: 2b00 cmp r3, #0 + 8014bee: db20 blt.n 8014c32 + 8014bf0: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 + 8014bf4: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014bf8: 441a add r2, r3 + 8014bfa: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014bfe: 429a cmp r2, r3 + 8014c00: da17 bge.n 8014c32 mask_buf[cir_x_right + i] = mask_mix(opa, mask_buf[cir_x_right + i]); - 8014c96: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 - 8014c9a: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014c9e: 4413 add r3, r2 - 8014ca0: 461a mov r2, r3 - 8014ca2: 68fb ldr r3, [r7, #12] - 8014ca4: 4413 add r3, r2 - 8014ca6: 7819 ldrb r1, [r3, #0] - 8014ca8: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 - 8014cac: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014cb0: 4413 add r3, r2 - 8014cb2: 461a mov r2, r3 - 8014cb4: 68fb ldr r3, [r7, #12] - 8014cb6: 189c adds r4, r3, r2 - 8014cb8: f897 302a ldrb.w r3, [r7, #42] ; 0x2a - 8014cbc: 4618 mov r0, r3 - 8014cbe: f000 fd0d bl 80156dc - 8014cc2: 4603 mov r3, r0 - 8014cc4: 7023 strb r3, [r4, #0] + 8014c02: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 + 8014c06: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014c0a: 4413 add r3, r2 + 8014c0c: 461a mov r2, r3 + 8014c0e: 68fb ldr r3, [r7, #12] + 8014c10: 4413 add r3, r2 + 8014c12: 7819 ldrb r1, [r3, #0] + 8014c14: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 + 8014c18: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014c1c: 4413 add r3, r2 + 8014c1e: 461a mov r2, r3 + 8014c20: 68fb ldr r3, [r7, #12] + 8014c22: 189c adds r4, r3, r2 + 8014c24: f897 302a ldrb.w r3, [r7, #42] ; 0x2a + 8014c28: 4618 mov r0, r3 + 8014c2a: f000 fd0d bl 8015648 + 8014c2e: 4603 mov r3, r0 + 8014c30: 7023 strb r3, [r4, #0] } if(cir_x_left - i >= 0 && cir_x_left - i < len) { - 8014cc6: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 - 8014cca: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014cce: 1ad3 subs r3, r2, r3 - 8014cd0: 2b00 cmp r3, #0 - 8014cd2: db20 blt.n 8014d16 - 8014cd4: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 - 8014cd8: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014cdc: 1ad2 subs r2, r2, r3 - 8014cde: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014ce2: 429a cmp r2, r3 - 8014ce4: da17 bge.n 8014d16 + 8014c32: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 + 8014c36: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014c3a: 1ad3 subs r3, r2, r3 + 8014c3c: 2b00 cmp r3, #0 + 8014c3e: db20 blt.n 8014c82 + 8014c40: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 + 8014c44: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014c48: 1ad2 subs r2, r2, r3 + 8014c4a: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014c4e: 429a cmp r2, r3 + 8014c50: da17 bge.n 8014c82 mask_buf[cir_x_left - i] = mask_mix(opa, mask_buf[cir_x_left - i]); - 8014ce6: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 - 8014cea: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014cee: 1ad3 subs r3, r2, r3 - 8014cf0: 461a mov r2, r3 - 8014cf2: 68fb ldr r3, [r7, #12] - 8014cf4: 4413 add r3, r2 - 8014cf6: 7819 ldrb r1, [r3, #0] - 8014cf8: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 - 8014cfc: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014d00: 1ad3 subs r3, r2, r3 - 8014d02: 461a mov r2, r3 - 8014d04: 68fb ldr r3, [r7, #12] - 8014d06: 189c adds r4, r3, r2 - 8014d08: f897 302a ldrb.w r3, [r7, #42] ; 0x2a - 8014d0c: 4618 mov r0, r3 - 8014d0e: f000 fce5 bl 80156dc - 8014d12: 4603 mov r3, r0 - 8014d14: 7023 strb r3, [r4, #0] + 8014c52: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 + 8014c56: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014c5a: 1ad3 subs r3, r2, r3 + 8014c5c: 461a mov r2, r3 + 8014c5e: 68fb ldr r3, [r7, #12] + 8014c60: 4413 add r3, r2 + 8014c62: 7819 ldrb r1, [r3, #0] + 8014c64: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 + 8014c68: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014c6c: 1ad3 subs r3, r2, r3 + 8014c6e: 461a mov r2, r3 + 8014c70: 68fb ldr r3, [r7, #12] + 8014c72: 189c adds r4, r3, r2 + 8014c74: f897 302a ldrb.w r3, [r7, #42] ; 0x2a + 8014c78: 4618 mov r0, r3 + 8014c7a: f000 fce5 bl 8015648 + 8014c7e: 4603 mov r3, r0 + 8014c80: 7023 strb r3, [r4, #0] for(i = 0; i < aa_len; i++) { - 8014d16: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014d1a: b29b uxth r3, r3 - 8014d1c: 3301 adds r3, #1 - 8014d1e: b29b uxth r3, r3 - 8014d20: f8a7 304c strh.w r3, [r7, #76] ; 0x4c - 8014d24: f9b7 3016 ldrsh.w r3, [r7, #22] - 8014d28: f9b7 204c ldrsh.w r2, [r7, #76] ; 0x4c - 8014d2c: 429a cmp r2, r3 - 8014d2e: db96 blt.n 8014c5e + 8014c82: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014c86: b29b uxth r3, r3 + 8014c88: 3301 adds r3, #1 + 8014c8a: b29b uxth r3, r3 + 8014c8c: f8a7 304c strh.w r3, [r7, #76] ; 0x4c + 8014c90: f9b7 3016 ldrsh.w r3, [r7, #22] + 8014c94: f9b7 204c ldrsh.w r2, [r7, #76] ; 0x4c + 8014c98: 429a cmp r2, r3 + 8014c9a: db96 blt.n 8014bca } } /*Clean the right side*/ cir_x_right = LV_CLAMP(0, cir_x_right + i, len); - 8014d30: f9b7 2006 ldrsh.w r2, [r7, #6] - 8014d34: f9b7 1032 ldrsh.w r1, [r7, #50] ; 0x32 - 8014d38: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014d3c: 440b add r3, r1 - 8014d3e: 4293 cmp r3, r2 - 8014d40: bfa8 it ge - 8014d42: 4613 movge r3, r2 - 8014d44: ea23 73e3 bic.w r3, r3, r3, asr #31 - 8014d48: 867b strh r3, [r7, #50] ; 0x32 + 8014c9c: f9b7 2006 ldrsh.w r2, [r7, #6] + 8014ca0: f9b7 1032 ldrsh.w r1, [r7, #50] ; 0x32 + 8014ca4: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014ca8: 440b add r3, r1 + 8014caa: 4293 cmp r3, r2 + 8014cac: bfa8 it ge + 8014cae: 4613 movge r3, r2 + 8014cb0: ea23 73e3 bic.w r3, r3, r3, asr #31 + 8014cb4: 867b strh r3, [r7, #50] ; 0x32 lv_memset_00(&mask_buf[cir_x_right], len - cir_x_right); - 8014d4a: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 8014d4e: 68fa ldr r2, [r7, #12] - 8014d50: 18d0 adds r0, r2, r3 - 8014d52: f9b7 2006 ldrsh.w r2, [r7, #6] - 8014d56: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 8014d5a: 1ad3 subs r3, r2, r3 - 8014d5c: 4619 mov r1, r3 - 8014d5e: f01e f9f7 bl 8033150 + 8014cb6: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 8014cba: 68fa ldr r2, [r7, #12] + 8014cbc: 18d0 adds r0, r2, r3 + 8014cbe: f9b7 2006 ldrsh.w r2, [r7, #6] + 8014cc2: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 8014cc6: 1ad3 subs r3, r2, r3 + 8014cc8: 4619 mov r1, r3 + 8014cca: f01e f9f7 bl 80330bc /*Clean the left side*/ cir_x_left = LV_CLAMP(0, cir_x_left - aa_len + 1, len); - 8014d62: f9b7 2006 ldrsh.w r2, [r7, #6] - 8014d66: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 8014d6a: f9b7 1016 ldrsh.w r1, [r7, #22] - 8014d6e: 1a5b subs r3, r3, r1 - 8014d70: 3301 adds r3, #1 - 8014d72: 4293 cmp r3, r2 - 8014d74: bfa8 it ge - 8014d76: 4613 movge r3, r2 - 8014d78: ea23 73e3 bic.w r3, r3, r3, asr #31 - 8014d7c: 863b strh r3, [r7, #48] ; 0x30 + 8014cce: f9b7 2006 ldrsh.w r2, [r7, #6] + 8014cd2: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 8014cd6: f9b7 1016 ldrsh.w r1, [r7, #22] + 8014cda: 1a5b subs r3, r3, r1 + 8014cdc: 3301 adds r3, #1 + 8014cde: 4293 cmp r3, r2 + 8014ce0: bfa8 it ge + 8014ce2: 4613 movge r3, r2 + 8014ce4: ea23 73e3 bic.w r3, r3, r3, asr #31 + 8014ce8: 863b strh r3, [r7, #48] ; 0x30 lv_memset_00(&mask_buf[0], cir_x_left); - 8014d7e: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 8014d82: 4619 mov r1, r3 - 8014d84: 68f8 ldr r0, [r7, #12] - 8014d86: f01e f9e3 bl 8033150 - 8014d8a: e0ad b.n 8014ee8 + 8014cea: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 8014cee: 4619 mov r1, r3 + 8014cf0: 68f8 ldr r0, [r7, #12] + 8014cf2: f01e f9e3 bl 80330bc + 8014cf6: e0ad b.n 8014e54 } else { for(i = 0; i < aa_len; i++) { - 8014d8c: 2300 movs r3, #0 - 8014d8e: f8a7 304c strh.w r3, [r7, #76] ; 0x4c - 8014d92: e063 b.n 8014e5c + 8014cf8: 2300 movs r3, #0 + 8014cfa: f8a7 304c strh.w r3, [r7, #76] ; 0x4c + 8014cfe: e063 b.n 8014dc8 lv_opa_t opa = 255 - (aa_opa[aa_len - 1 - i]); - 8014d94: f9b7 3016 ldrsh.w r3, [r7, #22] - 8014d98: 1e5a subs r2, r3, #1 - 8014d9a: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014d9e: 1ad3 subs r3, r2, r3 - 8014da0: 461a mov r2, r3 - 8014da2: 6b7b ldr r3, [r7, #52] ; 0x34 - 8014da4: 4413 add r3, r2 - 8014da6: 781b ldrb r3, [r3, #0] - 8014da8: 43db mvns r3, r3 - 8014daa: f887 302b strb.w r3, [r7, #43] ; 0x2b + 8014d00: f9b7 3016 ldrsh.w r3, [r7, #22] + 8014d04: 1e5a subs r2, r3, #1 + 8014d06: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014d0a: 1ad3 subs r3, r2, r3 + 8014d0c: 461a mov r2, r3 + 8014d0e: 6b7b ldr r3, [r7, #52] ; 0x34 + 8014d10: 4413 add r3, r2 + 8014d12: 781b ldrb r3, [r3, #0] + 8014d14: 43db mvns r3, r3 + 8014d16: f887 302b strb.w r3, [r7, #43] ; 0x2b if(cir_x_right + i >= 0 && cir_x_right + i < len) { - 8014dae: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 - 8014db2: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014db6: 4413 add r3, r2 - 8014db8: 2b00 cmp r3, #0 - 8014dba: db20 blt.n 8014dfe - 8014dbc: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 - 8014dc0: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014dc4: 441a add r2, r3 - 8014dc6: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014dca: 429a cmp r2, r3 - 8014dcc: da17 bge.n 8014dfe + 8014d1a: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 + 8014d1e: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014d22: 4413 add r3, r2 + 8014d24: 2b00 cmp r3, #0 + 8014d26: db20 blt.n 8014d6a + 8014d28: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 + 8014d2c: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014d30: 441a add r2, r3 + 8014d32: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014d36: 429a cmp r2, r3 + 8014d38: da17 bge.n 8014d6a mask_buf[cir_x_right + i] = mask_mix(opa, mask_buf[cir_x_right + i]); - 8014dce: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 - 8014dd2: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014dd6: 4413 add r3, r2 - 8014dd8: 461a mov r2, r3 - 8014dda: 68fb ldr r3, [r7, #12] - 8014ddc: 4413 add r3, r2 - 8014dde: 7819 ldrb r1, [r3, #0] - 8014de0: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 - 8014de4: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014de8: 4413 add r3, r2 - 8014dea: 461a mov r2, r3 - 8014dec: 68fb ldr r3, [r7, #12] - 8014dee: 189c adds r4, r3, r2 - 8014df0: f897 302b ldrb.w r3, [r7, #43] ; 0x2b - 8014df4: 4618 mov r0, r3 - 8014df6: f000 fc71 bl 80156dc - 8014dfa: 4603 mov r3, r0 - 8014dfc: 7023 strb r3, [r4, #0] + 8014d3a: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 + 8014d3e: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014d42: 4413 add r3, r2 + 8014d44: 461a mov r2, r3 + 8014d46: 68fb ldr r3, [r7, #12] + 8014d48: 4413 add r3, r2 + 8014d4a: 7819 ldrb r1, [r3, #0] + 8014d4c: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 + 8014d50: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014d54: 4413 add r3, r2 + 8014d56: 461a mov r2, r3 + 8014d58: 68fb ldr r3, [r7, #12] + 8014d5a: 189c adds r4, r3, r2 + 8014d5c: f897 302b ldrb.w r3, [r7, #43] ; 0x2b + 8014d60: 4618 mov r0, r3 + 8014d62: f000 fc71 bl 8015648 + 8014d66: 4603 mov r3, r0 + 8014d68: 7023 strb r3, [r4, #0] } if(cir_x_left - i >= 0 && cir_x_left - i < len) { - 8014dfe: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 - 8014e02: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014e06: 1ad3 subs r3, r2, r3 - 8014e08: 2b00 cmp r3, #0 - 8014e0a: db20 blt.n 8014e4e - 8014e0c: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 - 8014e10: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014e14: 1ad2 subs r2, r2, r3 - 8014e16: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014e1a: 429a cmp r2, r3 - 8014e1c: da17 bge.n 8014e4e + 8014d6a: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 + 8014d6e: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014d72: 1ad3 subs r3, r2, r3 + 8014d74: 2b00 cmp r3, #0 + 8014d76: db20 blt.n 8014dba + 8014d78: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 + 8014d7c: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014d80: 1ad2 subs r2, r2, r3 + 8014d82: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014d86: 429a cmp r2, r3 + 8014d88: da17 bge.n 8014dba mask_buf[cir_x_left - i] = mask_mix(opa, mask_buf[cir_x_left - i]); - 8014e1e: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 - 8014e22: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014e26: 1ad3 subs r3, r2, r3 - 8014e28: 461a mov r2, r3 - 8014e2a: 68fb ldr r3, [r7, #12] - 8014e2c: 4413 add r3, r2 - 8014e2e: 7819 ldrb r1, [r3, #0] - 8014e30: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 - 8014e34: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014e38: 1ad3 subs r3, r2, r3 - 8014e3a: 461a mov r2, r3 - 8014e3c: 68fb ldr r3, [r7, #12] - 8014e3e: 189c adds r4, r3, r2 - 8014e40: f897 302b ldrb.w r3, [r7, #43] ; 0x2b - 8014e44: 4618 mov r0, r3 - 8014e46: f000 fc49 bl 80156dc - 8014e4a: 4603 mov r3, r0 - 8014e4c: 7023 strb r3, [r4, #0] + 8014d8a: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 + 8014d8e: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014d92: 1ad3 subs r3, r2, r3 + 8014d94: 461a mov r2, r3 + 8014d96: 68fb ldr r3, [r7, #12] + 8014d98: 4413 add r3, r2 + 8014d9a: 7819 ldrb r1, [r3, #0] + 8014d9c: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 + 8014da0: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014da4: 1ad3 subs r3, r2, r3 + 8014da6: 461a mov r2, r3 + 8014da8: 68fb ldr r3, [r7, #12] + 8014daa: 189c adds r4, r3, r2 + 8014dac: f897 302b ldrb.w r3, [r7, #43] ; 0x2b + 8014db0: 4618 mov r0, r3 + 8014db2: f000 fc49 bl 8015648 + 8014db6: 4603 mov r3, r0 + 8014db8: 7023 strb r3, [r4, #0] for(i = 0; i < aa_len; i++) { - 8014e4e: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 8014e52: b29b uxth r3, r3 - 8014e54: 3301 adds r3, #1 - 8014e56: b29b uxth r3, r3 - 8014e58: f8a7 304c strh.w r3, [r7, #76] ; 0x4c - 8014e5c: f9b7 3016 ldrsh.w r3, [r7, #22] - 8014e60: f9b7 204c ldrsh.w r2, [r7, #76] ; 0x4c - 8014e64: 429a cmp r2, r3 - 8014e66: db95 blt.n 8014d94 + 8014dba: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 8014dbe: b29b uxth r3, r3 + 8014dc0: 3301 adds r3, #1 + 8014dc2: b29b uxth r3, r3 + 8014dc4: f8a7 304c strh.w r3, [r7, #76] ; 0x4c + 8014dc8: f9b7 3016 ldrsh.w r3, [r7, #22] + 8014dcc: f9b7 204c ldrsh.w r2, [r7, #76] ; 0x4c + 8014dd0: 429a cmp r2, r3 + 8014dd2: db95 blt.n 8014d00 } } lv_coord_t clr_start = LV_CLAMP(0, cir_x_left + 1, len); - 8014e68: f9b7 2006 ldrsh.w r2, [r7, #6] - 8014e6c: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 8014e70: 3301 adds r3, #1 - 8014e72: 4293 cmp r3, r2 - 8014e74: bfa8 it ge - 8014e76: 4613 movge r3, r2 - 8014e78: ea23 73e3 bic.w r3, r3, r3, asr #31 - 8014e7c: 85fb strh r3, [r7, #46] ; 0x2e + 8014dd4: f9b7 2006 ldrsh.w r2, [r7, #6] + 8014dd8: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 8014ddc: 3301 adds r3, #1 + 8014dde: 4293 cmp r3, r2 + 8014de0: bfa8 it ge + 8014de2: 4613 movge r3, r2 + 8014de4: ea23 73e3 bic.w r3, r3, r3, asr #31 + 8014de8: 85fb strh r3, [r7, #46] ; 0x2e lv_coord_t clr_len = LV_CLAMP(0, cir_x_right - clr_start, len - clr_start); - 8014e7e: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 - 8014e82: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014e86: 429a cmp r2, r3 - 8014e88: da07 bge.n 8014e9a - 8014e8a: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 - 8014e8e: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 8014e92: 1ad3 subs r3, r2, r3 - 8014e94: 0fdb lsrs r3, r3, #31 - 8014e96: b2db uxtb r3, r3 - 8014e98: e006 b.n 8014ea8 - 8014e9a: f9b7 2006 ldrsh.w r2, [r7, #6] - 8014e9e: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 8014ea2: 1ad3 subs r3, r2, r3 - 8014ea4: 0fdb lsrs r3, r3, #31 - 8014ea6: b2db uxtb r3, r3 - 8014ea8: 2b00 cmp r3, #0 - 8014eaa: d001 beq.n 8014eb0 - 8014eac: 2300 movs r3, #0 - 8014eae: e010 b.n 8014ed2 - 8014eb0: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 - 8014eb4: f9b7 3006 ldrsh.w r3, [r7, #6] - 8014eb8: 429a cmp r2, r3 - 8014eba: da05 bge.n 8014ec8 - 8014ebc: 8e7a ldrh r2, [r7, #50] ; 0x32 - 8014ebe: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8014ec0: 1ad3 subs r3, r2, r3 - 8014ec2: b29b uxth r3, r3 - 8014ec4: b21b sxth r3, r3 - 8014ec6: e004 b.n 8014ed2 - 8014ec8: 88fa ldrh r2, [r7, #6] - 8014eca: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8014ecc: 1ad3 subs r3, r2, r3 - 8014ece: b29b uxth r3, r3 - 8014ed0: b21b sxth r3, r3 - 8014ed2: 85bb strh r3, [r7, #44] ; 0x2c + 8014dea: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 + 8014dee: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014df2: 429a cmp r2, r3 + 8014df4: da07 bge.n 8014e06 + 8014df6: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 + 8014dfa: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 8014dfe: 1ad3 subs r3, r2, r3 + 8014e00: 0fdb lsrs r3, r3, #31 + 8014e02: b2db uxtb r3, r3 + 8014e04: e006 b.n 8014e14 + 8014e06: f9b7 2006 ldrsh.w r2, [r7, #6] + 8014e0a: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 8014e0e: 1ad3 subs r3, r2, r3 + 8014e10: 0fdb lsrs r3, r3, #31 + 8014e12: b2db uxtb r3, r3 + 8014e14: 2b00 cmp r3, #0 + 8014e16: d001 beq.n 8014e1c + 8014e18: 2300 movs r3, #0 + 8014e1a: e010 b.n 8014e3e + 8014e1c: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 + 8014e20: f9b7 3006 ldrsh.w r3, [r7, #6] + 8014e24: 429a cmp r2, r3 + 8014e26: da05 bge.n 8014e34 + 8014e28: 8e7a ldrh r2, [r7, #50] ; 0x32 + 8014e2a: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8014e2c: 1ad3 subs r3, r2, r3 + 8014e2e: b29b uxth r3, r3 + 8014e30: b21b sxth r3, r3 + 8014e32: e004 b.n 8014e3e + 8014e34: 88fa ldrh r2, [r7, #6] + 8014e36: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8014e38: 1ad3 subs r3, r2, r3 + 8014e3a: b29b uxth r3, r3 + 8014e3c: b21b sxth r3, r3 + 8014e3e: 85bb strh r3, [r7, #44] ; 0x2c lv_memset_00(&mask_buf[clr_start], clr_len); - 8014ed4: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 8014ed8: 68fa ldr r2, [r7, #12] - 8014eda: 4413 add r3, r2 - 8014edc: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c - 8014ee0: 4611 mov r1, r2 - 8014ee2: 4618 mov r0, r3 - 8014ee4: f01e f934 bl 8033150 + 8014e40: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 8014e44: 68fa ldr r2, [r7, #12] + 8014e46: 4413 add r3, r2 + 8014e48: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c + 8014e4c: 4611 mov r1, r2 + 8014e4e: 4618 mov r0, r3 + 8014e50: f01e f934 bl 80330bc } return LV_DRAW_MASK_RES_CHANGED; - 8014ee8: 2302 movs r3, #2 + 8014e54: 2302 movs r3, #2 } - 8014eea: 4618 mov r0, r3 - 8014eec: 375c adds r7, #92 ; 0x5c - 8014eee: 46bd mov sp, r7 - 8014ef0: bd90 pop {r4, r7, pc} + 8014e56: 4618 mov r0, r3 + 8014e58: 375c adds r7, #92 ; 0x5c + 8014e5a: 46bd mov sp, r7 + 8014e5c: bd90 pop {r4, r7, pc} -08014ef2 : +08014e5e : * @param c pointer to a point. The coordinates will be calculated here * @param tmp point to a variable. It will store temporary data * @param radius radius of the circle */ static void circ_init(lv_point_t * c, lv_coord_t * tmp, lv_coord_t radius) { - 8014ef2: b480 push {r7} - 8014ef4: b085 sub sp, #20 - 8014ef6: af00 add r7, sp, #0 - 8014ef8: 60f8 str r0, [r7, #12] - 8014efa: 60b9 str r1, [r7, #8] - 8014efc: 4613 mov r3, r2 - 8014efe: 80fb strh r3, [r7, #6] + 8014e5e: b480 push {r7} + 8014e60: b085 sub sp, #20 + 8014e62: af00 add r7, sp, #0 + 8014e64: 60f8 str r0, [r7, #12] + 8014e66: 60b9 str r1, [r7, #8] + 8014e68: 4613 mov r3, r2 + 8014e6a: 80fb strh r3, [r7, #6] c->x = radius; - 8014f00: 68fb ldr r3, [r7, #12] - 8014f02: 88fa ldrh r2, [r7, #6] - 8014f04: 801a strh r2, [r3, #0] + 8014e6c: 68fb ldr r3, [r7, #12] + 8014e6e: 88fa ldrh r2, [r7, #6] + 8014e70: 801a strh r2, [r3, #0] c->y = 0; - 8014f06: 68fb ldr r3, [r7, #12] - 8014f08: 2200 movs r2, #0 - 8014f0a: 805a strh r2, [r3, #2] + 8014e72: 68fb ldr r3, [r7, #12] + 8014e74: 2200 movs r2, #0 + 8014e76: 805a strh r2, [r3, #2] *tmp = 1 - radius; - 8014f0c: 88fb ldrh r3, [r7, #6] - 8014f0e: f1c3 0301 rsb r3, r3, #1 - 8014f12: b29b uxth r3, r3 - 8014f14: b21a sxth r2, r3 - 8014f16: 68bb ldr r3, [r7, #8] - 8014f18: 801a strh r2, [r3, #0] + 8014e78: 88fb ldrh r3, [r7, #6] + 8014e7a: f1c3 0301 rsb r3, r3, #1 + 8014e7e: b29b uxth r3, r3 + 8014e80: b21a sxth r2, r3 + 8014e82: 68bb ldr r3, [r7, #8] + 8014e84: 801a strh r2, [r3, #0] } - 8014f1a: bf00 nop - 8014f1c: 3714 adds r7, #20 - 8014f1e: 46bd mov sp, r7 - 8014f20: bc80 pop {r7} - 8014f22: 4770 bx lr + 8014e86: bf00 nop + 8014e88: 3714 adds r7, #20 + 8014e8a: 46bd mov sp, r7 + 8014e8c: bc80 pop {r7} + 8014e8e: 4770 bx lr -08014f24 : +08014e90 : * Test the circle drawing is ready or not * @param c same as in circ_init * @return true if the circle is not ready yet */ static bool circ_cont(lv_point_t * c) { - 8014f24: b480 push {r7} - 8014f26: b083 sub sp, #12 - 8014f28: af00 add r7, sp, #0 - 8014f2a: 6078 str r0, [r7, #4] + 8014e90: b480 push {r7} + 8014e92: b083 sub sp, #12 + 8014e94: af00 add r7, sp, #0 + 8014e96: 6078 str r0, [r7, #4] return c->y <= c->x ? true : false; - 8014f2c: 687b ldr r3, [r7, #4] - 8014f2e: f9b3 2002 ldrsh.w r2, [r3, #2] - 8014f32: 687b ldr r3, [r7, #4] - 8014f34: f9b3 3000 ldrsh.w r3, [r3] - 8014f38: 429a cmp r2, r3 - 8014f3a: bfd4 ite le - 8014f3c: 2301 movle r3, #1 - 8014f3e: 2300 movgt r3, #0 - 8014f40: b2db uxtb r3, r3 + 8014e98: 687b ldr r3, [r7, #4] + 8014e9a: f9b3 2002 ldrsh.w r2, [r3, #2] + 8014e9e: 687b ldr r3, [r7, #4] + 8014ea0: f9b3 3000 ldrsh.w r3, [r3] + 8014ea4: 429a cmp r2, r3 + 8014ea6: bfd4 ite le + 8014ea8: 2301 movle r3, #1 + 8014eaa: 2300 movgt r3, #0 + 8014eac: b2db uxtb r3, r3 } - 8014f42: 4618 mov r0, r3 - 8014f44: 370c adds r7, #12 - 8014f46: 46bd mov sp, r7 - 8014f48: bc80 pop {r7} - 8014f4a: 4770 bx lr + 8014eae: 4618 mov r0, r3 + 8014eb0: 370c adds r7, #12 + 8014eb2: 46bd mov sp, r7 + 8014eb4: bc80 pop {r7} + 8014eb6: 4770 bx lr -08014f4c : +08014eb8 : * Get the next point from the circle * @param c same as in circ_init. The next point stored here. * @param tmp same as in circ_init. */ static void circ_next(lv_point_t * c, lv_coord_t * tmp) { - 8014f4c: b480 push {r7} - 8014f4e: b083 sub sp, #12 - 8014f50: af00 add r7, sp, #0 - 8014f52: 6078 str r0, [r7, #4] - 8014f54: 6039 str r1, [r7, #0] + 8014eb8: b480 push {r7} + 8014eba: b083 sub sp, #12 + 8014ebc: af00 add r7, sp, #0 + 8014ebe: 6078 str r0, [r7, #4] + 8014ec0: 6039 str r1, [r7, #0] if(*tmp <= 0) { - 8014f56: 683b ldr r3, [r7, #0] - 8014f58: f9b3 3000 ldrsh.w r3, [r3] - 8014f5c: 2b00 cmp r3, #0 - 8014f5e: dc11 bgt.n 8014f84 + 8014ec2: 683b ldr r3, [r7, #0] + 8014ec4: f9b3 3000 ldrsh.w r3, [r3] + 8014ec8: 2b00 cmp r3, #0 + 8014eca: dc11 bgt.n 8014ef0 (*tmp) += 2 * c->y + 3; /*Change in decision criterion for y -> y+1*/ - 8014f60: 683b ldr r3, [r7, #0] - 8014f62: f9b3 3000 ldrsh.w r3, [r3] - 8014f66: b29a uxth r2, r3 - 8014f68: 687b ldr r3, [r7, #4] - 8014f6a: f9b3 3002 ldrsh.w r3, [r3, #2] - 8014f6e: b29b uxth r3, r3 - 8014f70: 005b lsls r3, r3, #1 - 8014f72: b29b uxth r3, r3 - 8014f74: 4413 add r3, r2 - 8014f76: b29b uxth r3, r3 - 8014f78: 3303 adds r3, #3 - 8014f7a: b29b uxth r3, r3 - 8014f7c: b21a sxth r2, r3 - 8014f7e: 683b ldr r3, [r7, #0] - 8014f80: 801a strh r2, [r3, #0] - 8014f82: e01e b.n 8014fc2 + 8014ecc: 683b ldr r3, [r7, #0] + 8014ece: f9b3 3000 ldrsh.w r3, [r3] + 8014ed2: b29a uxth r2, r3 + 8014ed4: 687b ldr r3, [r7, #4] + 8014ed6: f9b3 3002 ldrsh.w r3, [r3, #2] + 8014eda: b29b uxth r3, r3 + 8014edc: 005b lsls r3, r3, #1 + 8014ede: b29b uxth r3, r3 + 8014ee0: 4413 add r3, r2 + 8014ee2: b29b uxth r3, r3 + 8014ee4: 3303 adds r3, #3 + 8014ee6: b29b uxth r3, r3 + 8014ee8: b21a sxth r2, r3 + 8014eea: 683b ldr r3, [r7, #0] + 8014eec: 801a strh r2, [r3, #0] + 8014eee: e01e b.n 8014f2e } else { (*tmp) += 2 * (c->y - c->x) + 5; /*Change for y -> y+1, x -> x-1*/ - 8014f84: 683b ldr r3, [r7, #0] - 8014f86: f9b3 3000 ldrsh.w r3, [r3] - 8014f8a: b29a uxth r2, r3 - 8014f8c: 687b ldr r3, [r7, #4] - 8014f8e: f9b3 3002 ldrsh.w r3, [r3, #2] - 8014f92: 4619 mov r1, r3 - 8014f94: 687b ldr r3, [r7, #4] - 8014f96: f9b3 3000 ldrsh.w r3, [r3] - 8014f9a: 1acb subs r3, r1, r3 - 8014f9c: b29b uxth r3, r3 - 8014f9e: 005b lsls r3, r3, #1 - 8014fa0: b29b uxth r3, r3 - 8014fa2: 4413 add r3, r2 - 8014fa4: b29b uxth r3, r3 - 8014fa6: 3305 adds r3, #5 - 8014fa8: b29b uxth r3, r3 - 8014faa: b21a sxth r2, r3 - 8014fac: 683b ldr r3, [r7, #0] - 8014fae: 801a strh r2, [r3, #0] + 8014ef0: 683b ldr r3, [r7, #0] + 8014ef2: f9b3 3000 ldrsh.w r3, [r3] + 8014ef6: b29a uxth r2, r3 + 8014ef8: 687b ldr r3, [r7, #4] + 8014efa: f9b3 3002 ldrsh.w r3, [r3, #2] + 8014efe: 4619 mov r1, r3 + 8014f00: 687b ldr r3, [r7, #4] + 8014f02: f9b3 3000 ldrsh.w r3, [r3] + 8014f06: 1acb subs r3, r1, r3 + 8014f08: b29b uxth r3, r3 + 8014f0a: 005b lsls r3, r3, #1 + 8014f0c: b29b uxth r3, r3 + 8014f0e: 4413 add r3, r2 + 8014f10: b29b uxth r3, r3 + 8014f12: 3305 adds r3, #5 + 8014f14: b29b uxth r3, r3 + 8014f16: b21a sxth r2, r3 + 8014f18: 683b ldr r3, [r7, #0] + 8014f1a: 801a strh r2, [r3, #0] c->x--; - 8014fb0: 687b ldr r3, [r7, #4] - 8014fb2: f9b3 3000 ldrsh.w r3, [r3] - 8014fb6: b29b uxth r3, r3 - 8014fb8: 3b01 subs r3, #1 - 8014fba: b29b uxth r3, r3 - 8014fbc: b21a sxth r2, r3 - 8014fbe: 687b ldr r3, [r7, #4] - 8014fc0: 801a strh r2, [r3, #0] + 8014f1c: 687b ldr r3, [r7, #4] + 8014f1e: f9b3 3000 ldrsh.w r3, [r3] + 8014f22: b29b uxth r3, r3 + 8014f24: 3b01 subs r3, #1 + 8014f26: b29b uxth r3, r3 + 8014f28: b21a sxth r2, r3 + 8014f2a: 687b ldr r3, [r7, #4] + 8014f2c: 801a strh r2, [r3, #0] } c->y++; - 8014fc2: 687b ldr r3, [r7, #4] - 8014fc4: f9b3 3002 ldrsh.w r3, [r3, #2] - 8014fc8: b29b uxth r3, r3 - 8014fca: 3301 adds r3, #1 - 8014fcc: b29b uxth r3, r3 - 8014fce: b21a sxth r2, r3 - 8014fd0: 687b ldr r3, [r7, #4] - 8014fd2: 805a strh r2, [r3, #2] + 8014f2e: 687b ldr r3, [r7, #4] + 8014f30: f9b3 3002 ldrsh.w r3, [r3, #2] + 8014f34: b29b uxth r3, r3 + 8014f36: 3301 adds r3, #1 + 8014f38: b29b uxth r3, r3 + 8014f3a: b21a sxth r2, r3 + 8014f3c: 687b ldr r3, [r7, #4] + 8014f3e: 805a strh r2, [r3, #2] } - 8014fd4: bf00 nop - 8014fd6: 370c adds r7, #12 - 8014fd8: 46bd mov sp, r7 - 8014fda: bc80 pop {r7} - 8014fdc: 4770 bx lr + 8014f40: bf00 nop + 8014f42: 370c adds r7, #12 + 8014f44: 46bd mov sp, r7 + 8014f46: bc80 pop {r7} + 8014f48: 4770 bx lr -08014fde : +08014f4a : static void circ_calc_aa4(_lv_draw_mask_radius_circle_dsc_t * c, lv_coord_t radius) { - 8014fde: b580 push {r7, lr} - 8014fe0: b096 sub sp, #88 ; 0x58 - 8014fe2: af00 add r7, sp, #0 - 8014fe4: 6078 str r0, [r7, #4] - 8014fe6: 460b mov r3, r1 - 8014fe8: 807b strh r3, [r7, #2] + 8014f4a: b580 push {r7, lr} + 8014f4c: b096 sub sp, #88 ; 0x58 + 8014f4e: af00 add r7, sp, #0 + 8014f50: 6078 str r0, [r7, #4] + 8014f52: 460b mov r3, r1 + 8014f54: 807b strh r3, [r7, #2] if(radius == 0) return; - 8014fea: f9b7 3002 ldrsh.w r3, [r7, #2] - 8014fee: 2b00 cmp r3, #0 - 8014ff0: f000 833b beq.w 801566a + 8014f56: f9b7 3002 ldrsh.w r3, [r7, #2] + 8014f5a: 2b00 cmp r3, #0 + 8014f5c: f000 833b beq.w 80155d6 c->radius = radius; - 8014ff4: 687b ldr r3, [r7, #4] - 8014ff6: 887a ldrh r2, [r7, #2] - 8014ff8: 831a strh r2, [r3, #24] + 8014f60: 687b ldr r3, [r7, #4] + 8014f62: 887a ldrh r2, [r7, #2] + 8014f64: 831a strh r2, [r3, #24] /*Allocate buffers*/ if(c->buf) lv_mem_free(c->buf); - 8014ffa: 687b ldr r3, [r7, #4] - 8014ffc: 681b ldr r3, [r3, #0] - 8014ffe: 2b00 cmp r3, #0 - 8015000: d004 beq.n 801500c - 8015002: 687b ldr r3, [r7, #4] - 8015004: 681b ldr r3, [r3, #0] - 8015006: 4618 mov r0, r3 - 8015008: f01d fc68 bl 80328dc + 8014f66: 687b ldr r3, [r7, #4] + 8014f68: 681b ldr r3, [r3, #0] + 8014f6a: 2b00 cmp r3, #0 + 8014f6c: d004 beq.n 8014f78 + 8014f6e: 687b ldr r3, [r7, #4] + 8014f70: 681b ldr r3, [r3, #0] + 8014f72: 4618 mov r0, r3 + 8014f74: f01d fc68 bl 8032848 c->buf = lv_mem_alloc(radius * 6 + 6); /*Use uint16_t for opa_start_on_y and x_start_on_y*/ - 801500c: f9b7 3002 ldrsh.w r3, [r7, #2] - 8015010: 1c5a adds r2, r3, #1 - 8015012: 4613 mov r3, r2 - 8015014: 005b lsls r3, r3, #1 - 8015016: 4413 add r3, r2 - 8015018: 005b lsls r3, r3, #1 - 801501a: 4618 mov r0, r3 - 801501c: f01d fc3c bl 8032898 - 8015020: 4602 mov r2, r0 - 8015022: 687b ldr r3, [r7, #4] - 8015024: 601a str r2, [r3, #0] + 8014f78: f9b7 3002 ldrsh.w r3, [r7, #2] + 8014f7c: 1c5a adds r2, r3, #1 + 8014f7e: 4613 mov r3, r2 + 8014f80: 005b lsls r3, r3, #1 + 8014f82: 4413 add r3, r2 + 8014f84: 005b lsls r3, r3, #1 + 8014f86: 4618 mov r0, r3 + 8014f88: f01d fc3c bl 8032804 + 8014f8c: 4602 mov r2, r0 + 8014f8e: 687b ldr r3, [r7, #4] + 8014f90: 601a str r2, [r3, #0] LV_ASSERT_MALLOC(c->buf); - 8015026: 687b ldr r3, [r7, #4] - 8015028: 681b ldr r3, [r3, #0] - 801502a: 2b00 cmp r3, #0 - 801502c: d100 bne.n 8015030 - 801502e: e7fe b.n 801502e + 8014f92: 687b ldr r3, [r7, #4] + 8014f94: 681b ldr r3, [r3, #0] + 8014f96: 2b00 cmp r3, #0 + 8014f98: d100 bne.n 8014f9c + 8014f9a: e7fe b.n 8014f9a c->cir_opa = c->buf; - 8015030: 687b ldr r3, [r7, #4] - 8015032: 681a ldr r2, [r3, #0] - 8015034: 687b ldr r3, [r7, #4] - 8015036: 605a str r2, [r3, #4] + 8014f9c: 687b ldr r3, [r7, #4] + 8014f9e: 681a ldr r2, [r3, #0] + 8014fa0: 687b ldr r3, [r7, #4] + 8014fa2: 605a str r2, [r3, #4] c->opa_start_on_y = (uint16_t *)(c->buf + 2 * radius + 2); - 8015038: 687b ldr r3, [r7, #4] - 801503a: 681a ldr r2, [r3, #0] - 801503c: f9b7 3002 ldrsh.w r3, [r7, #2] - 8015040: 005b lsls r3, r3, #1 - 8015042: 3302 adds r3, #2 - 8015044: 441a add r2, r3 - 8015046: 687b ldr r3, [r7, #4] - 8015048: 60da str r2, [r3, #12] + 8014fa4: 687b ldr r3, [r7, #4] + 8014fa6: 681a ldr r2, [r3, #0] + 8014fa8: f9b7 3002 ldrsh.w r3, [r7, #2] + 8014fac: 005b lsls r3, r3, #1 + 8014fae: 3302 adds r3, #2 + 8014fb0: 441a add r2, r3 + 8014fb2: 687b ldr r3, [r7, #4] + 8014fb4: 60da str r2, [r3, #12] c->x_start_on_y = (uint16_t *)(c->buf + 4 * radius + 4); - 801504a: 687b ldr r3, [r7, #4] - 801504c: 681a ldr r2, [r3, #0] - 801504e: f9b7 3002 ldrsh.w r3, [r7, #2] - 8015052: 009b lsls r3, r3, #2 - 8015054: 3304 adds r3, #4 - 8015056: 441a add r2, r3 - 8015058: 687b ldr r3, [r7, #4] - 801505a: 609a str r2, [r3, #8] + 8014fb6: 687b ldr r3, [r7, #4] + 8014fb8: 681a ldr r2, [r3, #0] + 8014fba: f9b7 3002 ldrsh.w r3, [r7, #2] + 8014fbe: 009b lsls r3, r3, #2 + 8014fc0: 3304 adds r3, #4 + 8014fc2: 441a add r2, r3 + 8014fc4: 687b ldr r3, [r7, #4] + 8014fc6: 609a str r2, [r3, #8] /*Special case, handle manually*/ if(radius == 1) { - 801505c: f9b7 3002 ldrsh.w r3, [r7, #2] - 8015060: 2b01 cmp r3, #1 - 8015062: d111 bne.n 8015088 + 8014fc8: f9b7 3002 ldrsh.w r3, [r7, #2] + 8014fcc: 2b01 cmp r3, #1 + 8014fce: d111 bne.n 8014ff4 c->cir_opa[0] = 180; - 8015064: 687b ldr r3, [r7, #4] - 8015066: 685b ldr r3, [r3, #4] - 8015068: 22b4 movs r2, #180 ; 0xb4 - 801506a: 701a strb r2, [r3, #0] + 8014fd0: 687b ldr r3, [r7, #4] + 8014fd2: 685b ldr r3, [r3, #4] + 8014fd4: 22b4 movs r2, #180 ; 0xb4 + 8014fd6: 701a strb r2, [r3, #0] c->opa_start_on_y[0] = 0; - 801506c: 687b ldr r3, [r7, #4] - 801506e: 68db ldr r3, [r3, #12] - 8015070: 2200 movs r2, #0 - 8015072: 801a strh r2, [r3, #0] + 8014fd8: 687b ldr r3, [r7, #4] + 8014fda: 68db ldr r3, [r3, #12] + 8014fdc: 2200 movs r2, #0 + 8014fde: 801a strh r2, [r3, #0] c->opa_start_on_y[1] = 1; - 8015074: 687b ldr r3, [r7, #4] - 8015076: 68db ldr r3, [r3, #12] - 8015078: 3302 adds r3, #2 - 801507a: 2201 movs r2, #1 - 801507c: 801a strh r2, [r3, #0] + 8014fe0: 687b ldr r3, [r7, #4] + 8014fe2: 68db ldr r3, [r3, #12] + 8014fe4: 3302 adds r3, #2 + 8014fe6: 2201 movs r2, #1 + 8014fe8: 801a strh r2, [r3, #0] c->x_start_on_y[0] = 0; - 801507e: 687b ldr r3, [r7, #4] - 8015080: 689b ldr r3, [r3, #8] - 8015082: 2200 movs r2, #0 - 8015084: 801a strh r2, [r3, #0] + 8014fea: 687b ldr r3, [r7, #4] + 8014fec: 689b ldr r3, [r3, #8] + 8014fee: 2200 movs r2, #0 + 8014ff0: 801a strh r2, [r3, #0] return; - 8015086: e2f1 b.n 801566c + 8014ff2: e2f1 b.n 80155d8 } lv_coord_t * cir_x = lv_mem_buf_get((radius + 1) * 2 * 2 * sizeof(lv_coord_t)); - 8015088: f9b7 3002 ldrsh.w r3, [r7, #2] - 801508c: 3301 adds r3, #1 - 801508e: 00db lsls r3, r3, #3 - 8015090: 4618 mov r0, r3 - 8015092: f01d fcb5 bl 8032a00 - 8015096: 6438 str r0, [r7, #64] ; 0x40 + 8014ff4: f9b7 3002 ldrsh.w r3, [r7, #2] + 8014ff8: 3301 adds r3, #1 + 8014ffa: 00db lsls r3, r3, #3 + 8014ffc: 4618 mov r0, r3 + 8014ffe: f01d fcb5 bl 803296c + 8015002: 6438 str r0, [r7, #64] ; 0x40 lv_coord_t * cir_y = &cir_x[(radius + 1) * 2]; - 8015098: f9b7 3002 ldrsh.w r3, [r7, #2] - 801509c: 3301 adds r3, #1 - 801509e: 009b lsls r3, r3, #2 - 80150a0: 6c3a ldr r2, [r7, #64] ; 0x40 - 80150a2: 4413 add r3, r2 - 80150a4: 63fb str r3, [r7, #60] ; 0x3c + 8015004: f9b7 3002 ldrsh.w r3, [r7, #2] + 8015008: 3301 adds r3, #1 + 801500a: 009b lsls r3, r3, #2 + 801500c: 6c3a ldr r2, [r7, #64] ; 0x40 + 801500e: 4413 add r3, r2 + 8015010: 63fb str r3, [r7, #60] ; 0x3c uint32_t y_8th_cnt = 0; - 80150a6: 2300 movs r3, #0 - 80150a8: 657b str r3, [r7, #84] ; 0x54 + 8015012: 2300 movs r3, #0 + 8015014: 657b str r3, [r7, #84] ; 0x54 lv_point_t cp; lv_coord_t tmp; circ_init(&cp, &tmp, radius * 4); /*Upscale by 4*/ - 80150aa: 887b ldrh r3, [r7, #2] - 80150ac: 009b lsls r3, r3, #2 - 80150ae: b29b uxth r3, r3 - 80150b0: b21a sxth r2, r3 - 80150b2: f107 012e add.w r1, r7, #46 ; 0x2e - 80150b6: f107 0330 add.w r3, r7, #48 ; 0x30 - 80150ba: 4618 mov r0, r3 - 80150bc: f7ff ff19 bl 8014ef2 + 8015016: 887b ldrh r3, [r7, #2] + 8015018: 009b lsls r3, r3, #2 + 801501a: b29b uxth r3, r3 + 801501c: b21a sxth r2, r3 + 801501e: f107 012e add.w r1, r7, #46 ; 0x2e + 8015022: f107 0330 add.w r3, r7, #48 ; 0x30 + 8015026: 4618 mov r0, r3 + 8015028: f7ff ff19 bl 8014e5e int32_t i; uint32_t x_int[4]; uint32_t x_fract[4]; lv_coord_t cir_size = 0; - 80150c0: 2300 movs r3, #0 - 80150c2: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 801502c: 2300 movs r3, #0 + 801502e: f8a7 304e strh.w r3, [r7, #78] ; 0x4e x_int[0] = cp.x >> 2; - 80150c6: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 80150ca: 109b asrs r3, r3, #2 - 80150cc: b21b sxth r3, r3 - 80150ce: 61fb str r3, [r7, #28] + 8015032: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 8015036: 109b asrs r3, r3, #2 + 8015038: b21b sxth r3, r3 + 801503a: 61fb str r3, [r7, #28] x_fract[0] = 0; - 80150d0: 2300 movs r3, #0 - 80150d2: 60fb str r3, [r7, #12] + 801503c: 2300 movs r3, #0 + 801503e: 60fb str r3, [r7, #12] /*Calculate an 1/8 circle*/ while(circ_cont(&cp)) { - 80150d4: e1b7 b.n 8015446 + 8015040: e1b7 b.n 80153b2 /*Calculate 4 point of the circle */ for(i = 0; i < 4; i++) { - 80150d6: 2300 movs r3, #0 - 80150d8: 653b str r3, [r7, #80] ; 0x50 - 80150da: e02b b.n 8015134 + 8015042: 2300 movs r3, #0 + 8015044: 653b str r3, [r7, #80] ; 0x50 + 8015046: e02b b.n 80150a0 circ_next(&cp, &tmp); - 80150dc: f107 022e add.w r2, r7, #46 ; 0x2e - 80150e0: f107 0330 add.w r3, r7, #48 ; 0x30 - 80150e4: 4611 mov r1, r2 - 80150e6: 4618 mov r0, r3 - 80150e8: f7ff ff30 bl 8014f4c + 8015048: f107 022e add.w r2, r7, #46 ; 0x2e + 801504c: f107 0330 add.w r3, r7, #48 ; 0x30 + 8015050: 4611 mov r1, r2 + 8015052: 4618 mov r0, r3 + 8015054: f7ff ff30 bl 8014eb8 if(circ_cont(&cp) == false) break; - 80150ec: f107 0330 add.w r3, r7, #48 ; 0x30 - 80150f0: 4618 mov r0, r3 - 80150f2: f7ff ff17 bl 8014f24 - 80150f6: 4603 mov r3, r0 - 80150f8: f083 0301 eor.w r3, r3, #1 - 80150fc: b2db uxtb r3, r3 - 80150fe: 2b00 cmp r3, #0 - 8015100: d11c bne.n 801513c + 8015058: f107 0330 add.w r3, r7, #48 ; 0x30 + 801505c: 4618 mov r0, r3 + 801505e: f7ff ff17 bl 8014e90 + 8015062: 4603 mov r3, r0 + 8015064: f083 0301 eor.w r3, r3, #1 + 8015068: b2db uxtb r3, r3 + 801506a: 2b00 cmp r3, #0 + 801506c: d11c bne.n 80150a8 x_int[i] = cp.x >> 2; - 8015102: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 8015106: 109b asrs r3, r3, #2 - 8015108: b21b sxth r3, r3 - 801510a: 461a mov r2, r3 - 801510c: 6d3b ldr r3, [r7, #80] ; 0x50 - 801510e: 009b lsls r3, r3, #2 - 8015110: 3358 adds r3, #88 ; 0x58 - 8015112: 443b add r3, r7 - 8015114: f843 2c3c str.w r2, [r3, #-60] + 801506e: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 8015072: 109b asrs r3, r3, #2 + 8015074: b21b sxth r3, r3 + 8015076: 461a mov r2, r3 + 8015078: 6d3b ldr r3, [r7, #80] ; 0x50 + 801507a: 009b lsls r3, r3, #2 + 801507c: 3358 adds r3, #88 ; 0x58 + 801507e: 443b add r3, r7 + 8015080: f843 2c3c str.w r2, [r3, #-60] x_fract[i] = cp.x & 0x3; - 8015118: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801511c: b29b uxth r3, r3 - 801511e: f003 0203 and.w r2, r3, #3 - 8015122: 6d3b ldr r3, [r7, #80] ; 0x50 - 8015124: 009b lsls r3, r3, #2 - 8015126: 3358 adds r3, #88 ; 0x58 - 8015128: 443b add r3, r7 - 801512a: f843 2c4c str.w r2, [r3, #-76] + 8015084: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 8015088: b29b uxth r3, r3 + 801508a: f003 0203 and.w r2, r3, #3 + 801508e: 6d3b ldr r3, [r7, #80] ; 0x50 + 8015090: 009b lsls r3, r3, #2 + 8015092: 3358 adds r3, #88 ; 0x58 + 8015094: 443b add r3, r7 + 8015096: f843 2c4c str.w r2, [r3, #-76] for(i = 0; i < 4; i++) { - 801512e: 6d3b ldr r3, [r7, #80] ; 0x50 - 8015130: 3301 adds r3, #1 - 8015132: 653b str r3, [r7, #80] ; 0x50 - 8015134: 6d3b ldr r3, [r7, #80] ; 0x50 - 8015136: 2b03 cmp r3, #3 - 8015138: ddd0 ble.n 80150dc - 801513a: e000 b.n 801513e + 801509a: 6d3b ldr r3, [r7, #80] ; 0x50 + 801509c: 3301 adds r3, #1 + 801509e: 653b str r3, [r7, #80] ; 0x50 + 80150a0: 6d3b ldr r3, [r7, #80] ; 0x50 + 80150a2: 2b03 cmp r3, #3 + 80150a4: ddd0 ble.n 8015048 + 80150a6: e000 b.n 80150aa if(circ_cont(&cp) == false) break; - 801513c: bf00 nop + 80150a8: bf00 nop } if(i != 4) break; - 801513e: 6d3b ldr r3, [r7, #80] ; 0x50 - 8015140: 2b04 cmp r3, #4 - 8015142: f040 818a bne.w 801545a + 80150aa: 6d3b ldr r3, [r7, #80] ; 0x50 + 80150ac: 2b04 cmp r3, #4 + 80150ae: f040 818a bne.w 80153c6 /*All lines on the same x when downscaled*/ if(x_int[0] == x_int[3]) { - 8015146: 69fa ldr r2, [r7, #28] - 8015148: 6abb ldr r3, [r7, #40] ; 0x28 - 801514a: 429a cmp r2, r3 - 801514c: d139 bne.n 80151c2 + 80150b2: 69fa ldr r2, [r7, #28] + 80150b4: 6abb ldr r3, [r7, #40] ; 0x28 + 80150b6: 429a cmp r2, r3 + 80150b8: d139 bne.n 801512e cir_x[cir_size] = x_int[0]; - 801514e: 69f9 ldr r1, [r7, #28] - 8015150: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015154: 005b lsls r3, r3, #1 - 8015156: 6c3a ldr r2, [r7, #64] ; 0x40 - 8015158: 4413 add r3, r2 - 801515a: b20a sxth r2, r1 - 801515c: 801a strh r2, [r3, #0] + 80150ba: 69f9 ldr r1, [r7, #28] + 80150bc: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80150c0: 005b lsls r3, r3, #1 + 80150c2: 6c3a ldr r2, [r7, #64] ; 0x40 + 80150c4: 4413 add r3, r2 + 80150c6: b20a sxth r2, r1 + 80150c8: 801a strh r2, [r3, #0] cir_y[cir_size] = y_8th_cnt; - 801515e: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015162: 005b lsls r3, r3, #1 - 8015164: 6bfa ldr r2, [r7, #60] ; 0x3c - 8015166: 4413 add r3, r2 - 8015168: 6d7a ldr r2, [r7, #84] ; 0x54 - 801516a: b212 sxth r2, r2 - 801516c: 801a strh r2, [r3, #0] + 80150ca: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80150ce: 005b lsls r3, r3, #1 + 80150d0: 6bfa ldr r2, [r7, #60] ; 0x3c + 80150d2: 4413 add r3, r2 + 80150d4: 6d7a ldr r2, [r7, #84] ; 0x54 + 80150d6: b212 sxth r2, r2 + 80150d8: 801a strh r2, [r3, #0] c->cir_opa[cir_size] = x_fract[0] + x_fract[1] + x_fract[2] + x_fract[3]; - 801516e: 68fb ldr r3, [r7, #12] - 8015170: b2da uxtb r2, r3 - 8015172: 693b ldr r3, [r7, #16] - 8015174: b2db uxtb r3, r3 - 8015176: 4413 add r3, r2 - 8015178: b2da uxtb r2, r3 - 801517a: 697b ldr r3, [r7, #20] - 801517c: b2db uxtb r3, r3 - 801517e: 4413 add r3, r2 - 8015180: b2d9 uxtb r1, r3 - 8015182: 69bb ldr r3, [r7, #24] - 8015184: b2da uxtb r2, r3 - 8015186: 687b ldr r3, [r7, #4] - 8015188: 6858 ldr r0, [r3, #4] - 801518a: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801518e: 4403 add r3, r0 - 8015190: 440a add r2, r1 - 8015192: b2d2 uxtb r2, r2 - 8015194: 701a strb r2, [r3, #0] + 80150da: 68fb ldr r3, [r7, #12] + 80150dc: b2da uxtb r2, r3 + 80150de: 693b ldr r3, [r7, #16] + 80150e0: b2db uxtb r3, r3 + 80150e2: 4413 add r3, r2 + 80150e4: b2da uxtb r2, r3 + 80150e6: 697b ldr r3, [r7, #20] + 80150e8: b2db uxtb r3, r3 + 80150ea: 4413 add r3, r2 + 80150ec: b2d9 uxtb r1, r3 + 80150ee: 69bb ldr r3, [r7, #24] + 80150f0: b2da uxtb r2, r3 + 80150f2: 687b ldr r3, [r7, #4] + 80150f4: 6858 ldr r0, [r3, #4] + 80150f6: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80150fa: 4403 add r3, r0 + 80150fc: 440a add r2, r1 + 80150fe: b2d2 uxtb r2, r2 + 8015100: 701a strb r2, [r3, #0] c->cir_opa[cir_size] *= 16; - 8015196: 687b ldr r3, [r7, #4] - 8015198: 685a ldr r2, [r3, #4] - 801519a: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801519e: 4413 add r3, r2 - 80151a0: 781a ldrb r2, [r3, #0] - 80151a2: 687b ldr r3, [r7, #4] - 80151a4: 6859 ldr r1, [r3, #4] - 80151a6: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80151aa: 440b add r3, r1 - 80151ac: 0112 lsls r2, r2, #4 - 80151ae: b2d2 uxtb r2, r2 - 80151b0: 701a strb r2, [r3, #0] + 8015102: 687b ldr r3, [r7, #4] + 8015104: 685a ldr r2, [r3, #4] + 8015106: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801510a: 4413 add r3, r2 + 801510c: 781a ldrb r2, [r3, #0] + 801510e: 687b ldr r3, [r7, #4] + 8015110: 6859 ldr r1, [r3, #4] + 8015112: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8015116: 440b add r3, r1 + 8015118: 0112 lsls r2, r2, #4 + 801511a: b2d2 uxtb r2, r2 + 801511c: 701a strb r2, [r3, #0] cir_size++; - 80151b2: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80151b6: b29b uxth r3, r3 - 80151b8: 3301 adds r3, #1 - 80151ba: b29b uxth r3, r3 - 80151bc: f8a7 304e strh.w r3, [r7, #78] ; 0x4e - 80151c0: e13e b.n 8015440 + 801511e: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8015122: b29b uxth r3, r3 + 8015124: 3301 adds r3, #1 + 8015126: b29b uxth r3, r3 + 8015128: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 801512c: e13e b.n 80153ac } /*Second line on new x when downscaled*/ else if(x_int[0] != x_int[1]) { - 80151c2: 69fa ldr r2, [r7, #28] - 80151c4: 6a3b ldr r3, [r7, #32] - 80151c6: 429a cmp r2, r3 - 80151c8: d067 beq.n 801529a + 801512e: 69fa ldr r2, [r7, #28] + 8015130: 6a3b ldr r3, [r7, #32] + 8015132: 429a cmp r2, r3 + 8015134: d067 beq.n 8015206 cir_x[cir_size] = x_int[0]; - 80151ca: 69f9 ldr r1, [r7, #28] - 80151cc: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80151d0: 005b lsls r3, r3, #1 - 80151d2: 6c3a ldr r2, [r7, #64] ; 0x40 - 80151d4: 4413 add r3, r2 - 80151d6: b20a sxth r2, r1 - 80151d8: 801a strh r2, [r3, #0] + 8015136: 69f9 ldr r1, [r7, #28] + 8015138: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801513c: 005b lsls r3, r3, #1 + 801513e: 6c3a ldr r2, [r7, #64] ; 0x40 + 8015140: 4413 add r3, r2 + 8015142: b20a sxth r2, r1 + 8015144: 801a strh r2, [r3, #0] cir_y[cir_size] = y_8th_cnt; - 80151da: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80151de: 005b lsls r3, r3, #1 - 80151e0: 6bfa ldr r2, [r7, #60] ; 0x3c - 80151e2: 4413 add r3, r2 - 80151e4: 6d7a ldr r2, [r7, #84] ; 0x54 - 80151e6: b212 sxth r2, r2 - 80151e8: 801a strh r2, [r3, #0] + 8015146: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801514a: 005b lsls r3, r3, #1 + 801514c: 6bfa ldr r2, [r7, #60] ; 0x3c + 801514e: 4413 add r3, r2 + 8015150: 6d7a ldr r2, [r7, #84] ; 0x54 + 8015152: b212 sxth r2, r2 + 8015154: 801a strh r2, [r3, #0] c->cir_opa[cir_size] = x_fract[0]; - 80151ea: 68f9 ldr r1, [r7, #12] - 80151ec: 687b ldr r3, [r7, #4] - 80151ee: 685a ldr r2, [r3, #4] - 80151f0: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80151f4: 4413 add r3, r2 - 80151f6: b2ca uxtb r2, r1 - 80151f8: 701a strb r2, [r3, #0] + 8015156: 68f9 ldr r1, [r7, #12] + 8015158: 687b ldr r3, [r7, #4] + 801515a: 685a ldr r2, [r3, #4] + 801515c: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8015160: 4413 add r3, r2 + 8015162: b2ca uxtb r2, r1 + 8015164: 701a strb r2, [r3, #0] c->cir_opa[cir_size] *= 16; - 80151fa: 687b ldr r3, [r7, #4] - 80151fc: 685a ldr r2, [r3, #4] - 80151fe: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015202: 4413 add r3, r2 - 8015204: 781a ldrb r2, [r3, #0] - 8015206: 687b ldr r3, [r7, #4] - 8015208: 6859 ldr r1, [r3, #4] - 801520a: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801520e: 440b add r3, r1 - 8015210: 0112 lsls r2, r2, #4 - 8015212: b2d2 uxtb r2, r2 - 8015214: 701a strb r2, [r3, #0] + 8015166: 687b ldr r3, [r7, #4] + 8015168: 685a ldr r2, [r3, #4] + 801516a: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801516e: 4413 add r3, r2 + 8015170: 781a ldrb r2, [r3, #0] + 8015172: 687b ldr r3, [r7, #4] + 8015174: 6859 ldr r1, [r3, #4] + 8015176: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801517a: 440b add r3, r1 + 801517c: 0112 lsls r2, r2, #4 + 801517e: b2d2 uxtb r2, r2 + 8015180: 701a strb r2, [r3, #0] cir_size++; - 8015216: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801521a: b29b uxth r3, r3 - 801521c: 3301 adds r3, #1 - 801521e: b29b uxth r3, r3 - 8015220: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 8015182: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8015186: b29b uxth r3, r3 + 8015188: 3301 adds r3, #1 + 801518a: b29b uxth r3, r3 + 801518c: f8a7 304e strh.w r3, [r7, #78] ; 0x4e cir_x[cir_size] = x_int[0] - 1; - 8015224: 69fb ldr r3, [r7, #28] - 8015226: b29b uxth r3, r3 - 8015228: 3b01 subs r3, #1 - 801522a: b299 uxth r1, r3 - 801522c: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015230: 005b lsls r3, r3, #1 - 8015232: 6c3a ldr r2, [r7, #64] ; 0x40 - 8015234: 4413 add r3, r2 - 8015236: b20a sxth r2, r1 - 8015238: 801a strh r2, [r3, #0] + 8015190: 69fb ldr r3, [r7, #28] + 8015192: b29b uxth r3, r3 + 8015194: 3b01 subs r3, #1 + 8015196: b299 uxth r1, r3 + 8015198: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801519c: 005b lsls r3, r3, #1 + 801519e: 6c3a ldr r2, [r7, #64] ; 0x40 + 80151a0: 4413 add r3, r2 + 80151a2: b20a sxth r2, r1 + 80151a4: 801a strh r2, [r3, #0] cir_y[cir_size] = y_8th_cnt; - 801523a: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801523e: 005b lsls r3, r3, #1 - 8015240: 6bfa ldr r2, [r7, #60] ; 0x3c - 8015242: 4413 add r3, r2 - 8015244: 6d7a ldr r2, [r7, #84] ; 0x54 - 8015246: b212 sxth r2, r2 - 8015248: 801a strh r2, [r3, #0] + 80151a6: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80151aa: 005b lsls r3, r3, #1 + 80151ac: 6bfa ldr r2, [r7, #60] ; 0x3c + 80151ae: 4413 add r3, r2 + 80151b0: 6d7a ldr r2, [r7, #84] ; 0x54 + 80151b2: b212 sxth r2, r2 + 80151b4: 801a strh r2, [r3, #0] c->cir_opa[cir_size] = 1 * 4 + x_fract[1] + x_fract[2] + x_fract[3];; - 801524a: 693b ldr r3, [r7, #16] - 801524c: b2da uxtb r2, r3 - 801524e: 697b ldr r3, [r7, #20] - 8015250: b2db uxtb r3, r3 - 8015252: 4413 add r3, r2 - 8015254: b2da uxtb r2, r3 - 8015256: 69bb ldr r3, [r7, #24] - 8015258: b2db uxtb r3, r3 - 801525a: 4413 add r3, r2 - 801525c: b2da uxtb r2, r3 - 801525e: 687b ldr r3, [r7, #4] - 8015260: 6859 ldr r1, [r3, #4] - 8015262: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015266: 440b add r3, r1 - 8015268: 3204 adds r2, #4 - 801526a: b2d2 uxtb r2, r2 - 801526c: 701a strb r2, [r3, #0] + 80151b6: 693b ldr r3, [r7, #16] + 80151b8: b2da uxtb r2, r3 + 80151ba: 697b ldr r3, [r7, #20] + 80151bc: b2db uxtb r3, r3 + 80151be: 4413 add r3, r2 + 80151c0: b2da uxtb r2, r3 + 80151c2: 69bb ldr r3, [r7, #24] + 80151c4: b2db uxtb r3, r3 + 80151c6: 4413 add r3, r2 + 80151c8: b2da uxtb r2, r3 + 80151ca: 687b ldr r3, [r7, #4] + 80151cc: 6859 ldr r1, [r3, #4] + 80151ce: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80151d2: 440b add r3, r1 + 80151d4: 3204 adds r2, #4 + 80151d6: b2d2 uxtb r2, r2 + 80151d8: 701a strb r2, [r3, #0] c->cir_opa[cir_size] *= 16; - 801526e: 687b ldr r3, [r7, #4] - 8015270: 685a ldr r2, [r3, #4] - 8015272: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015276: 4413 add r3, r2 - 8015278: 781a ldrb r2, [r3, #0] - 801527a: 687b ldr r3, [r7, #4] - 801527c: 6859 ldr r1, [r3, #4] - 801527e: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015282: 440b add r3, r1 - 8015284: 0112 lsls r2, r2, #4 - 8015286: b2d2 uxtb r2, r2 - 8015288: 701a strb r2, [r3, #0] + 80151da: 687b ldr r3, [r7, #4] + 80151dc: 685a ldr r2, [r3, #4] + 80151de: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80151e2: 4413 add r3, r2 + 80151e4: 781a ldrb r2, [r3, #0] + 80151e6: 687b ldr r3, [r7, #4] + 80151e8: 6859 ldr r1, [r3, #4] + 80151ea: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80151ee: 440b add r3, r1 + 80151f0: 0112 lsls r2, r2, #4 + 80151f2: b2d2 uxtb r2, r2 + 80151f4: 701a strb r2, [r3, #0] cir_size++; - 801528a: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801528e: b29b uxth r3, r3 - 8015290: 3301 adds r3, #1 - 8015292: b29b uxth r3, r3 - 8015294: f8a7 304e strh.w r3, [r7, #78] ; 0x4e - 8015298: e0d2 b.n 8015440 + 80151f6: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80151fa: b29b uxth r3, r3 + 80151fc: 3301 adds r3, #1 + 80151fe: b29b uxth r3, r3 + 8015200: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 8015204: e0d2 b.n 80153ac } /*Third line on new x when downscaled*/ else if(x_int[0] != x_int[2]) { - 801529a: 69fa ldr r2, [r7, #28] - 801529c: 6a7b ldr r3, [r7, #36] ; 0x24 - 801529e: 429a cmp r2, r3 - 80152a0: d067 beq.n 8015372 + 8015206: 69fa ldr r2, [r7, #28] + 8015208: 6a7b ldr r3, [r7, #36] ; 0x24 + 801520a: 429a cmp r2, r3 + 801520c: d067 beq.n 80152de cir_x[cir_size] = x_int[0]; - 80152a2: 69f9 ldr r1, [r7, #28] - 80152a4: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80152a8: 005b lsls r3, r3, #1 - 80152aa: 6c3a ldr r2, [r7, #64] ; 0x40 - 80152ac: 4413 add r3, r2 - 80152ae: b20a sxth r2, r1 - 80152b0: 801a strh r2, [r3, #0] + 801520e: 69f9 ldr r1, [r7, #28] + 8015210: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8015214: 005b lsls r3, r3, #1 + 8015216: 6c3a ldr r2, [r7, #64] ; 0x40 + 8015218: 4413 add r3, r2 + 801521a: b20a sxth r2, r1 + 801521c: 801a strh r2, [r3, #0] cir_y[cir_size] = y_8th_cnt; - 80152b2: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80152b6: 005b lsls r3, r3, #1 - 80152b8: 6bfa ldr r2, [r7, #60] ; 0x3c - 80152ba: 4413 add r3, r2 - 80152bc: 6d7a ldr r2, [r7, #84] ; 0x54 - 80152be: b212 sxth r2, r2 - 80152c0: 801a strh r2, [r3, #0] + 801521e: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8015222: 005b lsls r3, r3, #1 + 8015224: 6bfa ldr r2, [r7, #60] ; 0x3c + 8015226: 4413 add r3, r2 + 8015228: 6d7a ldr r2, [r7, #84] ; 0x54 + 801522a: b212 sxth r2, r2 + 801522c: 801a strh r2, [r3, #0] c->cir_opa[cir_size] = x_fract[0] + x_fract[1]; - 80152c2: 68fb ldr r3, [r7, #12] - 80152c4: b2d9 uxtb r1, r3 - 80152c6: 693b ldr r3, [r7, #16] - 80152c8: b2da uxtb r2, r3 - 80152ca: 687b ldr r3, [r7, #4] - 80152cc: 6858 ldr r0, [r3, #4] - 80152ce: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80152d2: 4403 add r3, r0 - 80152d4: 440a add r2, r1 - 80152d6: b2d2 uxtb r2, r2 - 80152d8: 701a strb r2, [r3, #0] + 801522e: 68fb ldr r3, [r7, #12] + 8015230: b2d9 uxtb r1, r3 + 8015232: 693b ldr r3, [r7, #16] + 8015234: b2da uxtb r2, r3 + 8015236: 687b ldr r3, [r7, #4] + 8015238: 6858 ldr r0, [r3, #4] + 801523a: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801523e: 4403 add r3, r0 + 8015240: 440a add r2, r1 + 8015242: b2d2 uxtb r2, r2 + 8015244: 701a strb r2, [r3, #0] c->cir_opa[cir_size] *= 16; - 80152da: 687b ldr r3, [r7, #4] - 80152dc: 685a ldr r2, [r3, #4] - 80152de: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80152e2: 4413 add r3, r2 - 80152e4: 781a ldrb r2, [r3, #0] - 80152e6: 687b ldr r3, [r7, #4] - 80152e8: 6859 ldr r1, [r3, #4] - 80152ea: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80152ee: 440b add r3, r1 - 80152f0: 0112 lsls r2, r2, #4 - 80152f2: b2d2 uxtb r2, r2 - 80152f4: 701a strb r2, [r3, #0] + 8015246: 687b ldr r3, [r7, #4] + 8015248: 685a ldr r2, [r3, #4] + 801524a: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801524e: 4413 add r3, r2 + 8015250: 781a ldrb r2, [r3, #0] + 8015252: 687b ldr r3, [r7, #4] + 8015254: 6859 ldr r1, [r3, #4] + 8015256: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801525a: 440b add r3, r1 + 801525c: 0112 lsls r2, r2, #4 + 801525e: b2d2 uxtb r2, r2 + 8015260: 701a strb r2, [r3, #0] cir_size++; - 80152f6: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80152fa: b29b uxth r3, r3 - 80152fc: 3301 adds r3, #1 - 80152fe: b29b uxth r3, r3 - 8015300: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 8015262: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8015266: b29b uxth r3, r3 + 8015268: 3301 adds r3, #1 + 801526a: b29b uxth r3, r3 + 801526c: f8a7 304e strh.w r3, [r7, #78] ; 0x4e cir_x[cir_size] = x_int[0] - 1; - 8015304: 69fb ldr r3, [r7, #28] - 8015306: b29b uxth r3, r3 - 8015308: 3b01 subs r3, #1 - 801530a: b299 uxth r1, r3 - 801530c: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015310: 005b lsls r3, r3, #1 - 8015312: 6c3a ldr r2, [r7, #64] ; 0x40 - 8015314: 4413 add r3, r2 - 8015316: b20a sxth r2, r1 - 8015318: 801a strh r2, [r3, #0] + 8015270: 69fb ldr r3, [r7, #28] + 8015272: b29b uxth r3, r3 + 8015274: 3b01 subs r3, #1 + 8015276: b299 uxth r1, r3 + 8015278: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801527c: 005b lsls r3, r3, #1 + 801527e: 6c3a ldr r2, [r7, #64] ; 0x40 + 8015280: 4413 add r3, r2 + 8015282: b20a sxth r2, r1 + 8015284: 801a strh r2, [r3, #0] cir_y[cir_size] = y_8th_cnt; - 801531a: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801531e: 005b lsls r3, r3, #1 - 8015320: 6bfa ldr r2, [r7, #60] ; 0x3c - 8015322: 4413 add r3, r2 - 8015324: 6d7a ldr r2, [r7, #84] ; 0x54 - 8015326: b212 sxth r2, r2 - 8015328: 801a strh r2, [r3, #0] + 8015286: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801528a: 005b lsls r3, r3, #1 + 801528c: 6bfa ldr r2, [r7, #60] ; 0x3c + 801528e: 4413 add r3, r2 + 8015290: 6d7a ldr r2, [r7, #84] ; 0x54 + 8015292: b212 sxth r2, r2 + 8015294: 801a strh r2, [r3, #0] c->cir_opa[cir_size] = 2 * 4 + x_fract[2] + x_fract[3];; - 801532a: 697b ldr r3, [r7, #20] - 801532c: b2da uxtb r2, r3 - 801532e: 69bb ldr r3, [r7, #24] - 8015330: b2db uxtb r3, r3 - 8015332: 4413 add r3, r2 - 8015334: b2da uxtb r2, r3 - 8015336: 687b ldr r3, [r7, #4] - 8015338: 6859 ldr r1, [r3, #4] - 801533a: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801533e: 440b add r3, r1 - 8015340: 3208 adds r2, #8 - 8015342: b2d2 uxtb r2, r2 - 8015344: 701a strb r2, [r3, #0] + 8015296: 697b ldr r3, [r7, #20] + 8015298: b2da uxtb r2, r3 + 801529a: 69bb ldr r3, [r7, #24] + 801529c: b2db uxtb r3, r3 + 801529e: 4413 add r3, r2 + 80152a0: b2da uxtb r2, r3 + 80152a2: 687b ldr r3, [r7, #4] + 80152a4: 6859 ldr r1, [r3, #4] + 80152a6: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80152aa: 440b add r3, r1 + 80152ac: 3208 adds r2, #8 + 80152ae: b2d2 uxtb r2, r2 + 80152b0: 701a strb r2, [r3, #0] c->cir_opa[cir_size] *= 16; - 8015346: 687b ldr r3, [r7, #4] - 8015348: 685a ldr r2, [r3, #4] - 801534a: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801534e: 4413 add r3, r2 - 8015350: 781a ldrb r2, [r3, #0] - 8015352: 687b ldr r3, [r7, #4] - 8015354: 6859 ldr r1, [r3, #4] - 8015356: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801535a: 440b add r3, r1 - 801535c: 0112 lsls r2, r2, #4 - 801535e: b2d2 uxtb r2, r2 - 8015360: 701a strb r2, [r3, #0] + 80152b2: 687b ldr r3, [r7, #4] + 80152b4: 685a ldr r2, [r3, #4] + 80152b6: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80152ba: 4413 add r3, r2 + 80152bc: 781a ldrb r2, [r3, #0] + 80152be: 687b ldr r3, [r7, #4] + 80152c0: 6859 ldr r1, [r3, #4] + 80152c2: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80152c6: 440b add r3, r1 + 80152c8: 0112 lsls r2, r2, #4 + 80152ca: b2d2 uxtb r2, r2 + 80152cc: 701a strb r2, [r3, #0] cir_size++; - 8015362: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015366: b29b uxth r3, r3 - 8015368: 3301 adds r3, #1 - 801536a: b29b uxth r3, r3 - 801536c: f8a7 304e strh.w r3, [r7, #78] ; 0x4e - 8015370: e066 b.n 8015440 + 80152ce: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80152d2: b29b uxth r3, r3 + 80152d4: 3301 adds r3, #1 + 80152d6: b29b uxth r3, r3 + 80152d8: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 80152dc: e066 b.n 80153ac } /*Forth line on new x when downscaled*/ else { cir_x[cir_size] = x_int[0]; - 8015372: 69f9 ldr r1, [r7, #28] - 8015374: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015378: 005b lsls r3, r3, #1 - 801537a: 6c3a ldr r2, [r7, #64] ; 0x40 - 801537c: 4413 add r3, r2 - 801537e: b20a sxth r2, r1 - 8015380: 801a strh r2, [r3, #0] + 80152de: 69f9 ldr r1, [r7, #28] + 80152e0: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80152e4: 005b lsls r3, r3, #1 + 80152e6: 6c3a ldr r2, [r7, #64] ; 0x40 + 80152e8: 4413 add r3, r2 + 80152ea: b20a sxth r2, r1 + 80152ec: 801a strh r2, [r3, #0] cir_y[cir_size] = y_8th_cnt; - 8015382: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015386: 005b lsls r3, r3, #1 - 8015388: 6bfa ldr r2, [r7, #60] ; 0x3c - 801538a: 4413 add r3, r2 - 801538c: 6d7a ldr r2, [r7, #84] ; 0x54 - 801538e: b212 sxth r2, r2 - 8015390: 801a strh r2, [r3, #0] + 80152ee: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80152f2: 005b lsls r3, r3, #1 + 80152f4: 6bfa ldr r2, [r7, #60] ; 0x3c + 80152f6: 4413 add r3, r2 + 80152f8: 6d7a ldr r2, [r7, #84] ; 0x54 + 80152fa: b212 sxth r2, r2 + 80152fc: 801a strh r2, [r3, #0] c->cir_opa[cir_size] = x_fract[0] + x_fract[1] + x_fract[2]; - 8015392: 68fb ldr r3, [r7, #12] - 8015394: b2da uxtb r2, r3 - 8015396: 693b ldr r3, [r7, #16] - 8015398: b2db uxtb r3, r3 - 801539a: 4413 add r3, r2 - 801539c: b2d9 uxtb r1, r3 - 801539e: 697b ldr r3, [r7, #20] - 80153a0: b2da uxtb r2, r3 - 80153a2: 687b ldr r3, [r7, #4] - 80153a4: 6858 ldr r0, [r3, #4] - 80153a6: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80153aa: 4403 add r3, r0 - 80153ac: 440a add r2, r1 - 80153ae: b2d2 uxtb r2, r2 - 80153b0: 701a strb r2, [r3, #0] + 80152fe: 68fb ldr r3, [r7, #12] + 8015300: b2da uxtb r2, r3 + 8015302: 693b ldr r3, [r7, #16] + 8015304: b2db uxtb r3, r3 + 8015306: 4413 add r3, r2 + 8015308: b2d9 uxtb r1, r3 + 801530a: 697b ldr r3, [r7, #20] + 801530c: b2da uxtb r2, r3 + 801530e: 687b ldr r3, [r7, #4] + 8015310: 6858 ldr r0, [r3, #4] + 8015312: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8015316: 4403 add r3, r0 + 8015318: 440a add r2, r1 + 801531a: b2d2 uxtb r2, r2 + 801531c: 701a strb r2, [r3, #0] c->cir_opa[cir_size] *= 16; - 80153b2: 687b ldr r3, [r7, #4] - 80153b4: 685a ldr r2, [r3, #4] - 80153b6: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80153ba: 4413 add r3, r2 - 80153bc: 781a ldrb r2, [r3, #0] - 80153be: 687b ldr r3, [r7, #4] - 80153c0: 6859 ldr r1, [r3, #4] - 80153c2: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80153c6: 440b add r3, r1 - 80153c8: 0112 lsls r2, r2, #4 - 80153ca: b2d2 uxtb r2, r2 - 80153cc: 701a strb r2, [r3, #0] + 801531e: 687b ldr r3, [r7, #4] + 8015320: 685a ldr r2, [r3, #4] + 8015322: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8015326: 4413 add r3, r2 + 8015328: 781a ldrb r2, [r3, #0] + 801532a: 687b ldr r3, [r7, #4] + 801532c: 6859 ldr r1, [r3, #4] + 801532e: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8015332: 440b add r3, r1 + 8015334: 0112 lsls r2, r2, #4 + 8015336: b2d2 uxtb r2, r2 + 8015338: 701a strb r2, [r3, #0] cir_size++; - 80153ce: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80153d2: b29b uxth r3, r3 - 80153d4: 3301 adds r3, #1 - 80153d6: b29b uxth r3, r3 - 80153d8: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 801533a: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801533e: b29b uxth r3, r3 + 8015340: 3301 adds r3, #1 + 8015342: b29b uxth r3, r3 + 8015344: f8a7 304e strh.w r3, [r7, #78] ; 0x4e cir_x[cir_size] = x_int[0] - 1; - 80153dc: 69fb ldr r3, [r7, #28] - 80153de: b29b uxth r3, r3 - 80153e0: 3b01 subs r3, #1 - 80153e2: b299 uxth r1, r3 - 80153e4: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80153e8: 005b lsls r3, r3, #1 - 80153ea: 6c3a ldr r2, [r7, #64] ; 0x40 - 80153ec: 4413 add r3, r2 - 80153ee: b20a sxth r2, r1 - 80153f0: 801a strh r2, [r3, #0] + 8015348: 69fb ldr r3, [r7, #28] + 801534a: b29b uxth r3, r3 + 801534c: 3b01 subs r3, #1 + 801534e: b299 uxth r1, r3 + 8015350: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8015354: 005b lsls r3, r3, #1 + 8015356: 6c3a ldr r2, [r7, #64] ; 0x40 + 8015358: 4413 add r3, r2 + 801535a: b20a sxth r2, r1 + 801535c: 801a strh r2, [r3, #0] cir_y[cir_size] = y_8th_cnt; - 80153f2: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80153f6: 005b lsls r3, r3, #1 - 80153f8: 6bfa ldr r2, [r7, #60] ; 0x3c - 80153fa: 4413 add r3, r2 - 80153fc: 6d7a ldr r2, [r7, #84] ; 0x54 - 80153fe: b212 sxth r2, r2 - 8015400: 801a strh r2, [r3, #0] + 801535e: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8015362: 005b lsls r3, r3, #1 + 8015364: 6bfa ldr r2, [r7, #60] ; 0x3c + 8015366: 4413 add r3, r2 + 8015368: 6d7a ldr r2, [r7, #84] ; 0x54 + 801536a: b212 sxth r2, r2 + 801536c: 801a strh r2, [r3, #0] c->cir_opa[cir_size] = 3 * 4 + x_fract[3];; - 8015402: 69bb ldr r3, [r7, #24] - 8015404: b2da uxtb r2, r3 - 8015406: 687b ldr r3, [r7, #4] - 8015408: 6859 ldr r1, [r3, #4] - 801540a: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801540e: 440b add r3, r1 - 8015410: 320c adds r2, #12 - 8015412: b2d2 uxtb r2, r2 - 8015414: 701a strb r2, [r3, #0] + 801536e: 69bb ldr r3, [r7, #24] + 8015370: b2da uxtb r2, r3 + 8015372: 687b ldr r3, [r7, #4] + 8015374: 6859 ldr r1, [r3, #4] + 8015376: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801537a: 440b add r3, r1 + 801537c: 320c adds r2, #12 + 801537e: b2d2 uxtb r2, r2 + 8015380: 701a strb r2, [r3, #0] c->cir_opa[cir_size] *= 16; - 8015416: 687b ldr r3, [r7, #4] - 8015418: 685a ldr r2, [r3, #4] - 801541a: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801541e: 4413 add r3, r2 - 8015420: 781a ldrb r2, [r3, #0] - 8015422: 687b ldr r3, [r7, #4] - 8015424: 6859 ldr r1, [r3, #4] - 8015426: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801542a: 440b add r3, r1 - 801542c: 0112 lsls r2, r2, #4 - 801542e: b2d2 uxtb r2, r2 - 8015430: 701a strb r2, [r3, #0] + 8015382: 687b ldr r3, [r7, #4] + 8015384: 685a ldr r2, [r3, #4] + 8015386: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801538a: 4413 add r3, r2 + 801538c: 781a ldrb r2, [r3, #0] + 801538e: 687b ldr r3, [r7, #4] + 8015390: 6859 ldr r1, [r3, #4] + 8015392: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8015396: 440b add r3, r1 + 8015398: 0112 lsls r2, r2, #4 + 801539a: b2d2 uxtb r2, r2 + 801539c: 701a strb r2, [r3, #0] cir_size++; - 8015432: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015436: b29b uxth r3, r3 - 8015438: 3301 adds r3, #1 - 801543a: b29b uxth r3, r3 - 801543c: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 801539e: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80153a2: b29b uxth r3, r3 + 80153a4: 3301 adds r3, #1 + 80153a6: b29b uxth r3, r3 + 80153a8: f8a7 304e strh.w r3, [r7, #78] ; 0x4e } y_8th_cnt++; - 8015440: 6d7b ldr r3, [r7, #84] ; 0x54 - 8015442: 3301 adds r3, #1 - 8015444: 657b str r3, [r7, #84] ; 0x54 + 80153ac: 6d7b ldr r3, [r7, #84] ; 0x54 + 80153ae: 3301 adds r3, #1 + 80153b0: 657b str r3, [r7, #84] ; 0x54 while(circ_cont(&cp)) { - 8015446: f107 0330 add.w r3, r7, #48 ; 0x30 - 801544a: 4618 mov r0, r3 - 801544c: f7ff fd6a bl 8014f24 - 8015450: 4603 mov r3, r0 - 8015452: 2b00 cmp r3, #0 - 8015454: f47f ae3f bne.w 80150d6 - 8015458: e000 b.n 801545c + 80153b2: f107 0330 add.w r3, r7, #48 ; 0x30 + 80153b6: 4618 mov r0, r3 + 80153b8: f7ff fd6a bl 8014e90 + 80153bc: 4603 mov r3, r0 + 80153be: 2b00 cmp r3, #0 + 80153c0: f47f ae3f bne.w 8015042 + 80153c4: e000 b.n 80153c8 if(i != 4) break; - 801545a: bf00 nop + 80153c6: bf00 nop } /*The point on the 1/8 circle is special, calculate it manually*/ int32_t mid = radius * 723; - 801545c: f9b7 3002 ldrsh.w r3, [r7, #2] - 8015460: f240 22d3 movw r2, #723 ; 0x2d3 - 8015464: fb02 f303 mul.w r3, r2, r3 - 8015468: 63bb str r3, [r7, #56] ; 0x38 + 80153c8: f9b7 3002 ldrsh.w r3, [r7, #2] + 80153cc: f240 22d3 movw r2, #723 ; 0x2d3 + 80153d0: fb02 f303 mul.w r3, r2, r3 + 80153d4: 63bb str r3, [r7, #56] ; 0x38 int32_t mid_int = mid >> 10; - 801546a: 6bbb ldr r3, [r7, #56] ; 0x38 - 801546c: 129b asrs r3, r3, #10 - 801546e: 637b str r3, [r7, #52] ; 0x34 + 80153d6: 6bbb ldr r3, [r7, #56] ; 0x38 + 80153d8: 129b asrs r3, r3, #10 + 80153da: 637b str r3, [r7, #52] ; 0x34 if(cir_x[cir_size - 1] != mid_int || cir_y[cir_size - 1] != mid_int) { - 8015470: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015474: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 - 8015478: 3b01 subs r3, #1 - 801547a: 005b lsls r3, r3, #1 - 801547c: 6c3a ldr r2, [r7, #64] ; 0x40 - 801547e: 4413 add r3, r2 - 8015480: f9b3 3000 ldrsh.w r3, [r3] - 8015484: 461a mov r2, r3 - 8015486: 6b7b ldr r3, [r7, #52] ; 0x34 - 8015488: 4293 cmp r3, r2 - 801548a: d10d bne.n 80154a8 - 801548c: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015490: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 - 8015494: 3b01 subs r3, #1 - 8015496: 005b lsls r3, r3, #1 - 8015498: 6bfa ldr r2, [r7, #60] ; 0x3c - 801549a: 4413 add r3, r2 - 801549c: f9b3 3000 ldrsh.w r3, [r3] - 80154a0: 461a mov r2, r3 - 80154a2: 6b7b ldr r3, [r7, #52] ; 0x34 - 80154a4: 4293 cmp r3, r2 - 80154a6: d04e beq.n 8015546 + 80153dc: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80153e0: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 + 80153e4: 3b01 subs r3, #1 + 80153e6: 005b lsls r3, r3, #1 + 80153e8: 6c3a ldr r2, [r7, #64] ; 0x40 + 80153ea: 4413 add r3, r2 + 80153ec: f9b3 3000 ldrsh.w r3, [r3] + 80153f0: 461a mov r2, r3 + 80153f2: 6b7b ldr r3, [r7, #52] ; 0x34 + 80153f4: 4293 cmp r3, r2 + 80153f6: d10d bne.n 8015414 + 80153f8: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80153fc: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 + 8015400: 3b01 subs r3, #1 + 8015402: 005b lsls r3, r3, #1 + 8015404: 6bfa ldr r2, [r7, #60] ; 0x3c + 8015406: 4413 add r3, r2 + 8015408: f9b3 3000 ldrsh.w r3, [r3] + 801540c: 461a mov r2, r3 + 801540e: 6b7b ldr r3, [r7, #52] ; 0x34 + 8015410: 4293 cmp r3, r2 + 8015412: d04e beq.n 80154b2 int32_t tmp_val = mid - (mid_int << 10); - 80154a8: 6b7b ldr r3, [r7, #52] ; 0x34 - 80154aa: 029b lsls r3, r3, #10 - 80154ac: 6bba ldr r2, [r7, #56] ; 0x38 - 80154ae: 1ad3 subs r3, r2, r3 - 80154b0: 64bb str r3, [r7, #72] ; 0x48 + 8015414: 6b7b ldr r3, [r7, #52] ; 0x34 + 8015416: 029b lsls r3, r3, #10 + 8015418: 6bba ldr r2, [r7, #56] ; 0x38 + 801541a: 1ad3 subs r3, r2, r3 + 801541c: 64bb str r3, [r7, #72] ; 0x48 if(tmp_val <= 512) { - 80154b2: 6cbb ldr r3, [r7, #72] ; 0x48 - 80154b4: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 80154b8: dc08 bgt.n 80154cc + 801541e: 6cbb ldr r3, [r7, #72] ; 0x48 + 8015420: f5b3 7f00 cmp.w r3, #512 ; 0x200 + 8015424: dc08 bgt.n 8015438 tmp_val = tmp_val * tmp_val * 2; - 80154ba: 6cbb ldr r3, [r7, #72] ; 0x48 - 80154bc: fb03 f303 mul.w r3, r3, r3 - 80154c0: 005b lsls r3, r3, #1 - 80154c2: 64bb str r3, [r7, #72] ; 0x48 + 8015426: 6cbb ldr r3, [r7, #72] ; 0x48 + 8015428: fb03 f303 mul.w r3, r3, r3 + 801542c: 005b lsls r3, r3, #1 + 801542e: 64bb str r3, [r7, #72] ; 0x48 tmp_val = tmp_val >> (10 + 6); - 80154c4: 6cbb ldr r3, [r7, #72] ; 0x48 - 80154c6: 141b asrs r3, r3, #16 - 80154c8: 64bb str r3, [r7, #72] ; 0x48 - 80154ca: e00f b.n 80154ec + 8015430: 6cbb ldr r3, [r7, #72] ; 0x48 + 8015432: 141b asrs r3, r3, #16 + 8015434: 64bb str r3, [r7, #72] ; 0x48 + 8015436: e00f b.n 8015458 } else { tmp_val = 1024 - tmp_val; - 80154cc: 6cbb ldr r3, [r7, #72] ; 0x48 - 80154ce: f5c3 6380 rsb r3, r3, #1024 ; 0x400 - 80154d2: 64bb str r3, [r7, #72] ; 0x48 + 8015438: 6cbb ldr r3, [r7, #72] ; 0x48 + 801543a: f5c3 6380 rsb r3, r3, #1024 ; 0x400 + 801543e: 64bb str r3, [r7, #72] ; 0x48 tmp_val = tmp_val * tmp_val * 2; - 80154d4: 6cbb ldr r3, [r7, #72] ; 0x48 - 80154d6: fb03 f303 mul.w r3, r3, r3 - 80154da: 005b lsls r3, r3, #1 - 80154dc: 64bb str r3, [r7, #72] ; 0x48 + 8015440: 6cbb ldr r3, [r7, #72] ; 0x48 + 8015442: fb03 f303 mul.w r3, r3, r3 + 8015446: 005b lsls r3, r3, #1 + 8015448: 64bb str r3, [r7, #72] ; 0x48 tmp_val = tmp_val >> (10 + 6); - 80154de: 6cbb ldr r3, [r7, #72] ; 0x48 - 80154e0: 141b asrs r3, r3, #16 - 80154e2: 64bb str r3, [r7, #72] ; 0x48 + 801544a: 6cbb ldr r3, [r7, #72] ; 0x48 + 801544c: 141b asrs r3, r3, #16 + 801544e: 64bb str r3, [r7, #72] ; 0x48 tmp_val = 15 - tmp_val; - 80154e4: 6cbb ldr r3, [r7, #72] ; 0x48 - 80154e6: f1c3 030f rsb r3, r3, #15 - 80154ea: 64bb str r3, [r7, #72] ; 0x48 + 8015450: 6cbb ldr r3, [r7, #72] ; 0x48 + 8015452: f1c3 030f rsb r3, r3, #15 + 8015456: 64bb str r3, [r7, #72] ; 0x48 } cir_x[cir_size] = mid_int; - 80154ec: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80154f0: 005b lsls r3, r3, #1 - 80154f2: 6c3a ldr r2, [r7, #64] ; 0x40 - 80154f4: 4413 add r3, r2 - 80154f6: 6b7a ldr r2, [r7, #52] ; 0x34 - 80154f8: b212 sxth r2, r2 - 80154fa: 801a strh r2, [r3, #0] + 8015458: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801545c: 005b lsls r3, r3, #1 + 801545e: 6c3a ldr r2, [r7, #64] ; 0x40 + 8015460: 4413 add r3, r2 + 8015462: 6b7a ldr r2, [r7, #52] ; 0x34 + 8015464: b212 sxth r2, r2 + 8015466: 801a strh r2, [r3, #0] cir_y[cir_size] = mid_int; - 80154fc: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015500: 005b lsls r3, r3, #1 - 8015502: 6bfa ldr r2, [r7, #60] ; 0x3c - 8015504: 4413 add r3, r2 - 8015506: 6b7a ldr r2, [r7, #52] ; 0x34 - 8015508: b212 sxth r2, r2 - 801550a: 801a strh r2, [r3, #0] + 8015468: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801546c: 005b lsls r3, r3, #1 + 801546e: 6bfa ldr r2, [r7, #60] ; 0x3c + 8015470: 4413 add r3, r2 + 8015472: 6b7a ldr r2, [r7, #52] ; 0x34 + 8015474: b212 sxth r2, r2 + 8015476: 801a strh r2, [r3, #0] c->cir_opa[cir_size] = tmp_val; - 801550c: 687b ldr r3, [r7, #4] - 801550e: 685a ldr r2, [r3, #4] - 8015510: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015514: 4413 add r3, r2 - 8015516: 6cba ldr r2, [r7, #72] ; 0x48 - 8015518: b2d2 uxtb r2, r2 - 801551a: 701a strb r2, [r3, #0] + 8015478: 687b ldr r3, [r7, #4] + 801547a: 685a ldr r2, [r3, #4] + 801547c: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8015480: 4413 add r3, r2 + 8015482: 6cba ldr r2, [r7, #72] ; 0x48 + 8015484: b2d2 uxtb r2, r2 + 8015486: 701a strb r2, [r3, #0] c->cir_opa[cir_size] *= 16; - 801551c: 687b ldr r3, [r7, #4] - 801551e: 685a ldr r2, [r3, #4] - 8015520: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015524: 4413 add r3, r2 - 8015526: 781a ldrb r2, [r3, #0] - 8015528: 687b ldr r3, [r7, #4] - 801552a: 6859 ldr r1, [r3, #4] - 801552c: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015530: 440b add r3, r1 - 8015532: 0112 lsls r2, r2, #4 - 8015534: b2d2 uxtb r2, r2 - 8015536: 701a strb r2, [r3, #0] + 8015488: 687b ldr r3, [r7, #4] + 801548a: 685a ldr r2, [r3, #4] + 801548c: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8015490: 4413 add r3, r2 + 8015492: 781a ldrb r2, [r3, #0] + 8015494: 687b ldr r3, [r7, #4] + 8015496: 6859 ldr r1, [r3, #4] + 8015498: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801549c: 440b add r3, r1 + 801549e: 0112 lsls r2, r2, #4 + 80154a0: b2d2 uxtb r2, r2 + 80154a2: 701a strb r2, [r3, #0] cir_size++; - 8015538: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801553c: b29b uxth r3, r3 - 801553e: 3301 adds r3, #1 - 8015540: b29b uxth r3, r3 - 8015542: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 80154a4: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80154a8: b29b uxth r3, r3 + 80154aa: 3301 adds r3, #1 + 80154ac: b29b uxth r3, r3 + 80154ae: f8a7 304e strh.w r3, [r7, #78] ; 0x4e } /*Build the second octet by mirroring the first*/ for(i = cir_size - 2; i >= 0; i--, cir_size++) { - 8015546: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801554a: 3b02 subs r3, #2 - 801554c: 653b str r3, [r7, #80] ; 0x50 - 801554e: e02c b.n 80155aa + 80154b2: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80154b6: 3b02 subs r3, #2 + 80154b8: 653b str r3, [r7, #80] ; 0x50 + 80154ba: e02c b.n 8015516 cir_x[cir_size] = cir_y[i]; - 8015550: 6d3b ldr r3, [r7, #80] ; 0x50 - 8015552: 005b lsls r3, r3, #1 - 8015554: 6bfa ldr r2, [r7, #60] ; 0x3c - 8015556: 441a add r2, r3 - 8015558: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801555c: 005b lsls r3, r3, #1 - 801555e: 6c39 ldr r1, [r7, #64] ; 0x40 - 8015560: 440b add r3, r1 - 8015562: f9b2 2000 ldrsh.w r2, [r2] - 8015566: 801a strh r2, [r3, #0] + 80154bc: 6d3b ldr r3, [r7, #80] ; 0x50 + 80154be: 005b lsls r3, r3, #1 + 80154c0: 6bfa ldr r2, [r7, #60] ; 0x3c + 80154c2: 441a add r2, r3 + 80154c4: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80154c8: 005b lsls r3, r3, #1 + 80154ca: 6c39 ldr r1, [r7, #64] ; 0x40 + 80154cc: 440b add r3, r1 + 80154ce: f9b2 2000 ldrsh.w r2, [r2] + 80154d2: 801a strh r2, [r3, #0] cir_y[cir_size] = cir_x[i]; - 8015568: 6d3b ldr r3, [r7, #80] ; 0x50 - 801556a: 005b lsls r3, r3, #1 - 801556c: 6c3a ldr r2, [r7, #64] ; 0x40 - 801556e: 441a add r2, r3 - 8015570: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015574: 005b lsls r3, r3, #1 - 8015576: 6bf9 ldr r1, [r7, #60] ; 0x3c - 8015578: 440b add r3, r1 - 801557a: f9b2 2000 ldrsh.w r2, [r2] - 801557e: 801a strh r2, [r3, #0] + 80154d4: 6d3b ldr r3, [r7, #80] ; 0x50 + 80154d6: 005b lsls r3, r3, #1 + 80154d8: 6c3a ldr r2, [r7, #64] ; 0x40 + 80154da: 441a add r2, r3 + 80154dc: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80154e0: 005b lsls r3, r3, #1 + 80154e2: 6bf9 ldr r1, [r7, #60] ; 0x3c + 80154e4: 440b add r3, r1 + 80154e6: f9b2 2000 ldrsh.w r2, [r2] + 80154ea: 801a strh r2, [r3, #0] c->cir_opa[cir_size] = c->cir_opa[i]; - 8015580: 687b ldr r3, [r7, #4] - 8015582: 685a ldr r2, [r3, #4] - 8015584: 6d3b ldr r3, [r7, #80] ; 0x50 - 8015586: 441a add r2, r3 - 8015588: 687b ldr r3, [r7, #4] - 801558a: 6859 ldr r1, [r3, #4] - 801558c: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015590: 440b add r3, r1 - 8015592: 7812 ldrb r2, [r2, #0] - 8015594: 701a strb r2, [r3, #0] + 80154ec: 687b ldr r3, [r7, #4] + 80154ee: 685a ldr r2, [r3, #4] + 80154f0: 6d3b ldr r3, [r7, #80] ; 0x50 + 80154f2: 441a add r2, r3 + 80154f4: 687b ldr r3, [r7, #4] + 80154f6: 6859 ldr r1, [r3, #4] + 80154f8: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80154fc: 440b add r3, r1 + 80154fe: 7812 ldrb r2, [r2, #0] + 8015500: 701a strb r2, [r3, #0] for(i = cir_size - 2; i >= 0; i--, cir_size++) { - 8015596: 6d3b ldr r3, [r7, #80] ; 0x50 - 8015598: 3b01 subs r3, #1 - 801559a: 653b str r3, [r7, #80] ; 0x50 - 801559c: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80155a0: b29b uxth r3, r3 - 80155a2: 3301 adds r3, #1 - 80155a4: b29b uxth r3, r3 - 80155a6: f8a7 304e strh.w r3, [r7, #78] ; 0x4e - 80155aa: 6d3b ldr r3, [r7, #80] ; 0x50 - 80155ac: 2b00 cmp r3, #0 - 80155ae: dacf bge.n 8015550 + 8015502: 6d3b ldr r3, [r7, #80] ; 0x50 + 8015504: 3b01 subs r3, #1 + 8015506: 653b str r3, [r7, #80] ; 0x50 + 8015508: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801550c: b29b uxth r3, r3 + 801550e: 3301 adds r3, #1 + 8015510: b29b uxth r3, r3 + 8015512: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 8015516: 6d3b ldr r3, [r7, #80] ; 0x50 + 8015518: 2b00 cmp r3, #0 + 801551a: dacf bge.n 80154bc } lv_coord_t y = 0; - 80155b0: 2300 movs r3, #0 - 80155b2: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 801551c: 2300 movs r3, #0 + 801551e: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 i = 0; - 80155b6: 2300 movs r3, #0 - 80155b8: 653b str r3, [r7, #80] ; 0x50 + 8015522: 2300 movs r3, #0 + 8015524: 653b str r3, [r7, #80] ; 0x50 c->opa_start_on_y[0] = 0; - 80155ba: 687b ldr r3, [r7, #4] - 80155bc: 68db ldr r3, [r3, #12] - 80155be: 2200 movs r2, #0 - 80155c0: 801a strh r2, [r3, #0] + 8015526: 687b ldr r3, [r7, #4] + 8015528: 68db ldr r3, [r3, #12] + 801552a: 2200 movs r2, #0 + 801552c: 801a strh r2, [r3, #0] while(i < cir_size) { - 80155c2: e049 b.n 8015658 + 801552e: e049 b.n 80155c4 c->opa_start_on_y[y] = i; - 80155c4: 687b ldr r3, [r7, #4] - 80155c6: 68da ldr r2, [r3, #12] - 80155c8: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 - 80155cc: 005b lsls r3, r3, #1 - 80155ce: 4413 add r3, r2 - 80155d0: 6d3a ldr r2, [r7, #80] ; 0x50 - 80155d2: b292 uxth r2, r2 - 80155d4: 801a strh r2, [r3, #0] + 8015530: 687b ldr r3, [r7, #4] + 8015532: 68da ldr r2, [r3, #12] + 8015534: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 + 8015538: 005b lsls r3, r3, #1 + 801553a: 4413 add r3, r2 + 801553c: 6d3a ldr r2, [r7, #80] ; 0x50 + 801553e: b292 uxth r2, r2 + 8015540: 801a strh r2, [r3, #0] c->x_start_on_y[y] = cir_x[i]; - 80155d6: 6d3b ldr r3, [r7, #80] ; 0x50 - 80155d8: 005b lsls r3, r3, #1 - 80155da: 6c3a ldr r2, [r7, #64] ; 0x40 - 80155dc: 4413 add r3, r2 - 80155de: f9b3 1000 ldrsh.w r1, [r3] - 80155e2: 687b ldr r3, [r7, #4] - 80155e4: 689a ldr r2, [r3, #8] - 80155e6: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 - 80155ea: 005b lsls r3, r3, #1 - 80155ec: 4413 add r3, r2 - 80155ee: b28a uxth r2, r1 - 80155f0: 801a strh r2, [r3, #0] + 8015542: 6d3b ldr r3, [r7, #80] ; 0x50 + 8015544: 005b lsls r3, r3, #1 + 8015546: 6c3a ldr r2, [r7, #64] ; 0x40 + 8015548: 4413 add r3, r2 + 801554a: f9b3 1000 ldrsh.w r1, [r3] + 801554e: 687b ldr r3, [r7, #4] + 8015550: 689a ldr r2, [r3, #8] + 8015552: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 + 8015556: 005b lsls r3, r3, #1 + 8015558: 4413 add r3, r2 + 801555a: b28a uxth r2, r1 + 801555c: 801a strh r2, [r3, #0] for(; cir_y[i] == y && i < (int32_t)cir_size; i++) { - 80155f2: e01b b.n 801562c + 801555e: e01b b.n 8015598 c->x_start_on_y[y] = LV_MIN(c->x_start_on_y[y], cir_x[i]); - 80155f4: 6d3b ldr r3, [r7, #80] ; 0x50 - 80155f6: 005b lsls r3, r3, #1 - 80155f8: 6c3a ldr r2, [r7, #64] ; 0x40 - 80155fa: 4413 add r3, r2 - 80155fc: f9b3 3000 ldrsh.w r3, [r3] - 8015600: 4619 mov r1, r3 - 8015602: 687b ldr r3, [r7, #4] - 8015604: 689a ldr r2, [r3, #8] - 8015606: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 - 801560a: 005b lsls r3, r3, #1 - 801560c: 4413 add r3, r2 - 801560e: 881b ldrh r3, [r3, #0] - 8015610: 4299 cmp r1, r3 - 8015612: bfa8 it ge - 8015614: 4619 movge r1, r3 - 8015616: 687b ldr r3, [r7, #4] - 8015618: 689a ldr r2, [r3, #8] - 801561a: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 - 801561e: 005b lsls r3, r3, #1 - 8015620: 4413 add r3, r2 - 8015622: b28a uxth r2, r1 - 8015624: 801a strh r2, [r3, #0] + 8015560: 6d3b ldr r3, [r7, #80] ; 0x50 + 8015562: 005b lsls r3, r3, #1 + 8015564: 6c3a ldr r2, [r7, #64] ; 0x40 + 8015566: 4413 add r3, r2 + 8015568: f9b3 3000 ldrsh.w r3, [r3] + 801556c: 4619 mov r1, r3 + 801556e: 687b ldr r3, [r7, #4] + 8015570: 689a ldr r2, [r3, #8] + 8015572: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 + 8015576: 005b lsls r3, r3, #1 + 8015578: 4413 add r3, r2 + 801557a: 881b ldrh r3, [r3, #0] + 801557c: 4299 cmp r1, r3 + 801557e: bfa8 it ge + 8015580: 4619 movge r1, r3 + 8015582: 687b ldr r3, [r7, #4] + 8015584: 689a ldr r2, [r3, #8] + 8015586: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 + 801558a: 005b lsls r3, r3, #1 + 801558c: 4413 add r3, r2 + 801558e: b28a uxth r2, r1 + 8015590: 801a strh r2, [r3, #0] for(; cir_y[i] == y && i < (int32_t)cir_size; i++) { - 8015626: 6d3b ldr r3, [r7, #80] ; 0x50 - 8015628: 3301 adds r3, #1 - 801562a: 653b str r3, [r7, #80] ; 0x50 - 801562c: 6d3b ldr r3, [r7, #80] ; 0x50 - 801562e: 005b lsls r3, r3, #1 - 8015630: 6bfa ldr r2, [r7, #60] ; 0x3c - 8015632: 4413 add r3, r2 - 8015634: f9b3 3000 ldrsh.w r3, [r3] - 8015638: f9b7 2046 ldrsh.w r2, [r7, #70] ; 0x46 - 801563c: 429a cmp r2, r3 - 801563e: d104 bne.n 801564a - 8015640: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8015644: 6d3a ldr r2, [r7, #80] ; 0x50 - 8015646: 429a cmp r2, r3 - 8015648: dbd4 blt.n 80155f4 + 8015592: 6d3b ldr r3, [r7, #80] ; 0x50 + 8015594: 3301 adds r3, #1 + 8015596: 653b str r3, [r7, #80] ; 0x50 + 8015598: 6d3b ldr r3, [r7, #80] ; 0x50 + 801559a: 005b lsls r3, r3, #1 + 801559c: 6bfa ldr r2, [r7, #60] ; 0x3c + 801559e: 4413 add r3, r2 + 80155a0: f9b3 3000 ldrsh.w r3, [r3] + 80155a4: f9b7 2046 ldrsh.w r2, [r7, #70] ; 0x46 + 80155a8: 429a cmp r2, r3 + 80155aa: d104 bne.n 80155b6 + 80155ac: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80155b0: 6d3a ldr r2, [r7, #80] ; 0x50 + 80155b2: 429a cmp r2, r3 + 80155b4: dbd4 blt.n 8015560 } y++; - 801564a: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 - 801564e: b29b uxth r3, r3 - 8015650: 3301 adds r3, #1 - 8015652: b29b uxth r3, r3 - 8015654: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 80155b6: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 + 80155ba: b29b uxth r3, r3 + 80155bc: 3301 adds r3, #1 + 80155be: b29b uxth r3, r3 + 80155c0: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 while(i < cir_size) { - 8015658: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801565c: 6d3a ldr r2, [r7, #80] ; 0x50 - 801565e: 429a cmp r2, r3 - 8015660: dbb0 blt.n 80155c4 + 80155c4: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80155c8: 6d3a ldr r2, [r7, #80] ; 0x50 + 80155ca: 429a cmp r2, r3 + 80155cc: dbb0 blt.n 8015530 } lv_mem_buf_release(cir_x); - 8015662: 6c38 ldr r0, [r7, #64] ; 0x40 - 8015664: f01d fa78 bl 8032b58 - 8015668: e000 b.n 801566c + 80155ce: 6c38 ldr r0, [r7, #64] ; 0x40 + 80155d0: f01d fa78 bl 8032ac4 + 80155d4: e000 b.n 80155d8 if(radius == 0) return; - 801566a: bf00 nop + 80155d6: bf00 nop } - 801566c: 3758 adds r7, #88 ; 0x58 - 801566e: 46bd mov sp, r7 - 8015670: bd80 pop {r7, pc} + 80155d8: 3758 adds r7, #88 ; 0x58 + 80155da: 46bd mov sp, r7 + 80155dc: bd80 pop {r7, pc} -08015672 : +080155de : static lv_opa_t * get_next_line(_lv_draw_mask_radius_circle_dsc_t * c, lv_coord_t y, lv_coord_t * len, lv_coord_t * x_start) { - 8015672: b480 push {r7} - 8015674: b085 sub sp, #20 - 8015676: af00 add r7, sp, #0 - 8015678: 60f8 str r0, [r7, #12] - 801567a: 607a str r2, [r7, #4] - 801567c: 603b str r3, [r7, #0] - 801567e: 460b mov r3, r1 - 8015680: 817b strh r3, [r7, #10] + 80155de: b480 push {r7} + 80155e0: b085 sub sp, #20 + 80155e2: af00 add r7, sp, #0 + 80155e4: 60f8 str r0, [r7, #12] + 80155e6: 607a str r2, [r7, #4] + 80155e8: 603b str r3, [r7, #0] + 80155ea: 460b mov r3, r1 + 80155ec: 817b strh r3, [r7, #10] *len = c->opa_start_on_y[y + 1] - c->opa_start_on_y[y]; - 8015682: 68fb ldr r3, [r7, #12] - 8015684: 68da ldr r2, [r3, #12] - 8015686: f9b7 300a ldrsh.w r3, [r7, #10] - 801568a: 3301 adds r3, #1 - 801568c: 005b lsls r3, r3, #1 - 801568e: 4413 add r3, r2 - 8015690: 881a ldrh r2, [r3, #0] - 8015692: 68fb ldr r3, [r7, #12] - 8015694: 68d9 ldr r1, [r3, #12] - 8015696: f9b7 300a ldrsh.w r3, [r7, #10] - 801569a: 005b lsls r3, r3, #1 - 801569c: 440b add r3, r1 - 801569e: 881b ldrh r3, [r3, #0] - 80156a0: 1ad3 subs r3, r2, r3 - 80156a2: b29b uxth r3, r3 - 80156a4: b21a sxth r2, r3 - 80156a6: 687b ldr r3, [r7, #4] - 80156a8: 801a strh r2, [r3, #0] + 80155ee: 68fb ldr r3, [r7, #12] + 80155f0: 68da ldr r2, [r3, #12] + 80155f2: f9b7 300a ldrsh.w r3, [r7, #10] + 80155f6: 3301 adds r3, #1 + 80155f8: 005b lsls r3, r3, #1 + 80155fa: 4413 add r3, r2 + 80155fc: 881a ldrh r2, [r3, #0] + 80155fe: 68fb ldr r3, [r7, #12] + 8015600: 68d9 ldr r1, [r3, #12] + 8015602: f9b7 300a ldrsh.w r3, [r7, #10] + 8015606: 005b lsls r3, r3, #1 + 8015608: 440b add r3, r1 + 801560a: 881b ldrh r3, [r3, #0] + 801560c: 1ad3 subs r3, r2, r3 + 801560e: b29b uxth r3, r3 + 8015610: b21a sxth r2, r3 + 8015612: 687b ldr r3, [r7, #4] + 8015614: 801a strh r2, [r3, #0] *x_start = c->x_start_on_y[y]; - 80156aa: 68fb ldr r3, [r7, #12] - 80156ac: 689a ldr r2, [r3, #8] - 80156ae: f9b7 300a ldrsh.w r3, [r7, #10] - 80156b2: 005b lsls r3, r3, #1 - 80156b4: 4413 add r3, r2 - 80156b6: 881b ldrh r3, [r3, #0] - 80156b8: b21a sxth r2, r3 - 80156ba: 683b ldr r3, [r7, #0] - 80156bc: 801a strh r2, [r3, #0] + 8015616: 68fb ldr r3, [r7, #12] + 8015618: 689a ldr r2, [r3, #8] + 801561a: f9b7 300a ldrsh.w r3, [r7, #10] + 801561e: 005b lsls r3, r3, #1 + 8015620: 4413 add r3, r2 + 8015622: 881b ldrh r3, [r3, #0] + 8015624: b21a sxth r2, r3 + 8015626: 683b ldr r3, [r7, #0] + 8015628: 801a strh r2, [r3, #0] return &c->cir_opa[c->opa_start_on_y[y]]; - 80156be: 68fb ldr r3, [r7, #12] - 80156c0: 685b ldr r3, [r3, #4] - 80156c2: 68fa ldr r2, [r7, #12] - 80156c4: 68d1 ldr r1, [r2, #12] - 80156c6: f9b7 200a ldrsh.w r2, [r7, #10] - 80156ca: 0052 lsls r2, r2, #1 - 80156cc: 440a add r2, r1 - 80156ce: 8812 ldrh r2, [r2, #0] - 80156d0: 4413 add r3, r2 + 801562a: 68fb ldr r3, [r7, #12] + 801562c: 685b ldr r3, [r3, #4] + 801562e: 68fa ldr r2, [r7, #12] + 8015630: 68d1 ldr r1, [r2, #12] + 8015632: f9b7 200a ldrsh.w r2, [r7, #10] + 8015636: 0052 lsls r2, r2, #1 + 8015638: 440a add r2, r1 + 801563a: 8812 ldrh r2, [r2, #0] + 801563c: 4413 add r3, r2 } - 80156d2: 4618 mov r0, r3 - 80156d4: 3714 adds r7, #20 - 80156d6: 46bd mov sp, r7 - 80156d8: bc80 pop {r7} - 80156da: 4770 bx lr + 801563e: 4618 mov r0, r3 + 8015640: 3714 adds r7, #20 + 8015642: 46bd mov sp, r7 + 8015644: bc80 pop {r7} + 8015646: 4770 bx lr -080156dc : +08015648 : LV_ATTRIBUTE_FAST_MEM static inline lv_opa_t mask_mix(lv_opa_t mask_act, lv_opa_t mask_new) { - 80156dc: b480 push {r7} - 80156de: b083 sub sp, #12 - 80156e0: af00 add r7, sp, #0 - 80156e2: 4603 mov r3, r0 - 80156e4: 460a mov r2, r1 - 80156e6: 71fb strb r3, [r7, #7] - 80156e8: 4613 mov r3, r2 - 80156ea: 71bb strb r3, [r7, #6] + 8015648: b480 push {r7} + 801564a: b083 sub sp, #12 + 801564c: af00 add r7, sp, #0 + 801564e: 4603 mov r3, r0 + 8015650: 460a mov r2, r1 + 8015652: 71fb strb r3, [r7, #7] + 8015654: 4613 mov r3, r2 + 8015656: 71bb strb r3, [r7, #6] if(mask_new >= LV_OPA_MAX) return mask_act; - 80156ec: 79bb ldrb r3, [r7, #6] - 80156ee: 2bfc cmp r3, #252 ; 0xfc - 80156f0: d901 bls.n 80156f6 - 80156f2: 79fb ldrb r3, [r7, #7] - 80156f4: e010 b.n 8015718 + 8015658: 79bb ldrb r3, [r7, #6] + 801565a: 2bfc cmp r3, #252 ; 0xfc + 801565c: d901 bls.n 8015662 + 801565e: 79fb ldrb r3, [r7, #7] + 8015660: e010 b.n 8015684 if(mask_new <= LV_OPA_MIN) return 0; - 80156f6: 79bb ldrb r3, [r7, #6] - 80156f8: 2b02 cmp r3, #2 - 80156fa: d801 bhi.n 8015700 - 80156fc: 2300 movs r3, #0 - 80156fe: e00b b.n 8015718 + 8015662: 79bb ldrb r3, [r7, #6] + 8015664: 2b02 cmp r3, #2 + 8015666: d801 bhi.n 801566c + 8015668: 2300 movs r3, #0 + 801566a: e00b b.n 8015684 return LV_UDIV255(mask_act * mask_new);// >> 8); - 8015700: 79fb ldrb r3, [r7, #7] - 8015702: 79ba ldrb r2, [r7, #6] - 8015704: fb02 f303 mul.w r3, r2, r3 - 8015708: 461a mov r2, r3 - 801570a: 4613 mov r3, r2 - 801570c: 021b lsls r3, r3, #8 - 801570e: 4413 add r3, r2 - 8015710: 01db lsls r3, r3, #7 - 8015712: 4413 add r3, r2 - 8015714: 0ddb lsrs r3, r3, #23 - 8015716: b2db uxtb r3, r3 + 801566c: 79fb ldrb r3, [r7, #7] + 801566e: 79ba ldrb r2, [r7, #6] + 8015670: fb02 f303 mul.w r3, r2, r3 + 8015674: 461a mov r2, r3 + 8015676: 4613 mov r3, r2 + 8015678: 021b lsls r3, r3, #8 + 801567a: 4413 add r3, r2 + 801567c: 01db lsls r3, r3, #7 + 801567e: 4413 add r3, r2 + 8015680: 0ddb lsrs r3, r3, #23 + 8015682: b2db uxtb r3, r3 } - 8015718: 4618 mov r0, r3 - 801571a: 370c adds r7, #12 - 801571c: 46bd mov sp, r7 - 801571e: bc80 pop {r7} - 8015720: 4770 bx lr + 8015684: 4618 mov r0, r3 + 8015686: 370c adds r7, #12 + 8015688: 46bd mov sp, r7 + 801568a: bc80 pop {r7} + 801568c: 4770 bx lr -08015722 : +0801568e : { - 8015722: b480 push {r7} - 8015724: b083 sub sp, #12 - 8015726: af00 add r7, sp, #0 - 8015728: 6078 str r0, [r7, #4] + 801568e: b480 push {r7} + 8015690: b083 sub sp, #12 + 8015692: af00 add r7, sp, #0 + 8015694: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 801572a: 687b ldr r3, [r7, #4] - 801572c: f9b3 3004 ldrsh.w r3, [r3, #4] - 8015730: b29a uxth r2, r3 - 8015732: 687b ldr r3, [r7, #4] - 8015734: f9b3 3000 ldrsh.w r3, [r3] - 8015738: b29b uxth r3, r3 - 801573a: 1ad3 subs r3, r2, r3 - 801573c: b29b uxth r3, r3 - 801573e: 3301 adds r3, #1 - 8015740: b29b uxth r3, r3 - 8015742: b21b sxth r3, r3 + 8015696: 687b ldr r3, [r7, #4] + 8015698: f9b3 3004 ldrsh.w r3, [r3, #4] + 801569c: b29a uxth r2, r3 + 801569e: 687b ldr r3, [r7, #4] + 80156a0: f9b3 3000 ldrsh.w r3, [r3] + 80156a4: b29b uxth r3, r3 + 80156a6: 1ad3 subs r3, r2, r3 + 80156a8: b29b uxth r3, r3 + 80156aa: 3301 adds r3, #1 + 80156ac: b29b uxth r3, r3 + 80156ae: b21b sxth r3, r3 } - 8015744: 4618 mov r0, r3 - 8015746: 370c adds r7, #12 - 8015748: 46bd mov sp, r7 - 801574a: bc80 pop {r7} - 801574c: 4770 bx lr + 80156b0: 4618 mov r0, r3 + 80156b2: 370c adds r7, #12 + 80156b4: 46bd mov sp, r7 + 80156b6: bc80 pop {r7} + 80156b8: 4770 bx lr -0801574e : +080156ba : { - 801574e: b480 push {r7} - 8015750: b083 sub sp, #12 - 8015752: af00 add r7, sp, #0 - 8015754: 6078 str r0, [r7, #4] + 80156ba: b480 push {r7} + 80156bc: b083 sub sp, #12 + 80156be: af00 add r7, sp, #0 + 80156c0: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 8015756: 687b ldr r3, [r7, #4] - 8015758: f9b3 3006 ldrsh.w r3, [r3, #6] - 801575c: b29a uxth r2, r3 - 801575e: 687b ldr r3, [r7, #4] - 8015760: f9b3 3002 ldrsh.w r3, [r3, #2] - 8015764: b29b uxth r3, r3 - 8015766: 1ad3 subs r3, r2, r3 - 8015768: b29b uxth r3, r3 - 801576a: 3301 adds r3, #1 - 801576c: b29b uxth r3, r3 - 801576e: b21b sxth r3, r3 + 80156c2: 687b ldr r3, [r7, #4] + 80156c4: f9b3 3006 ldrsh.w r3, [r3, #6] + 80156c8: b29a uxth r2, r3 + 80156ca: 687b ldr r3, [r7, #4] + 80156cc: f9b3 3002 ldrsh.w r3, [r3, #2] + 80156d0: b29b uxth r3, r3 + 80156d2: 1ad3 subs r3, r2, r3 + 80156d4: b29b uxth r3, r3 + 80156d6: 3301 adds r3, #1 + 80156d8: b29b uxth r3, r3 + 80156da: b21b sxth r3, r3 } - 8015770: 4618 mov r0, r3 - 8015772: 370c adds r7, #12 - 8015774: 46bd mov sp, r7 - 8015776: bc80 pop {r7} - 8015778: 4770 bx lr + 80156dc: 4618 mov r0, r3 + 80156de: 370c adds r7, #12 + 80156e0: 46bd mov sp, r7 + 80156e2: bc80 pop {r7} + 80156e4: 4770 bx lr -0801577a : +080156e6 : { - 801577a: b490 push {r4, r7} - 801577c: b082 sub sp, #8 - 801577e: af00 add r7, sp, #0 - 8015780: 4604 mov r4, r0 - 8015782: 4608 mov r0, r1 - 8015784: 4611 mov r1, r2 - 8015786: 4622 mov r2, r4 - 8015788: 71fa strb r2, [r7, #7] - 801578a: 4602 mov r2, r0 - 801578c: 71ba strb r2, [r7, #6] - 801578e: 460a mov r2, r1 - 8015790: 717a strb r2, [r7, #5] + 80156e6: b490 push {r4, r7} + 80156e8: b082 sub sp, #8 + 80156ea: af00 add r7, sp, #0 + 80156ec: 4604 mov r4, r0 + 80156ee: 4608 mov r0, r1 + 80156f0: 4611 mov r1, r2 + 80156f2: 4622 mov r2, r4 + 80156f4: 71fa strb r2, [r7, #7] + 80156f6: 4602 mov r2, r0 + 80156f8: 71ba strb r2, [r7, #6] + 80156fa: 460a mov r2, r1 + 80156fc: 717a strb r2, [r7, #5] return _LV_COLOR_MAKE_TYPE_HELPER LV_COLOR_MAKE(r, g, b); - 8015792: 797a ldrb r2, [r7, #5] - 8015794: 08d2 lsrs r2, r2, #3 - 8015796: b2d2 uxtb r2, r2 - 8015798: f002 021f and.w r2, r2, #31 - 801579c: b2d0 uxtb r0, r2 - 801579e: 79ba ldrb r2, [r7, #6] - 80157a0: 0892 lsrs r2, r2, #2 - 80157a2: b2d2 uxtb r2, r2 - 80157a4: f002 023f and.w r2, r2, #63 ; 0x3f - 80157a8: b2d1 uxtb r1, r2 - 80157aa: 79fa ldrb r2, [r7, #7] - 80157ac: 08d2 lsrs r2, r2, #3 - 80157ae: b2d2 uxtb r2, r2 - 80157b0: f002 021f and.w r2, r2, #31 - 80157b4: b2d2 uxtb r2, r2 - 80157b6: f360 0304 bfi r3, r0, #0, #5 - 80157ba: f361 134a bfi r3, r1, #5, #6 - 80157be: f362 23cf bfi r3, r2, #11, #5 + 80156fe: 797a ldrb r2, [r7, #5] + 8015700: 08d2 lsrs r2, r2, #3 + 8015702: b2d2 uxtb r2, r2 + 8015704: f002 021f and.w r2, r2, #31 + 8015708: b2d0 uxtb r0, r2 + 801570a: 79ba ldrb r2, [r7, #6] + 801570c: 0892 lsrs r2, r2, #2 + 801570e: b2d2 uxtb r2, r2 + 8015710: f002 023f and.w r2, r2, #63 ; 0x3f + 8015714: b2d1 uxtb r1, r2 + 8015716: 79fa ldrb r2, [r7, #7] + 8015718: 08d2 lsrs r2, r2, #3 + 801571a: b2d2 uxtb r2, r2 + 801571c: f002 021f and.w r2, r2, #31 + 8015720: b2d2 uxtb r2, r2 + 8015722: f360 0304 bfi r3, r0, #0, #5 + 8015726: f361 134a bfi r3, r1, #5, #6 + 801572a: f362 23cf bfi r3, r2, #11, #5 } - 80157c2: 4618 mov r0, r3 - 80157c4: 3708 adds r7, #8 - 80157c6: 46bd mov sp, r7 - 80157c8: bc90 pop {r4, r7} - 80157ca: 4770 bx lr + 801572e: 4618 mov r0, r3 + 8015730: 3708 adds r7, #8 + 8015732: 46bd mov sp, r7 + 8015734: bc90 pop {r4, r7} + 8015736: 4770 bx lr -080157cc : +08015738 : { - 80157cc: b580 push {r7, lr} - 80157ce: af00 add r7, sp, #0 + 8015738: b580 push {r7, lr} + 801573a: af00 add r7, sp, #0 return lv_color_make(0xff, 0xff, 0xff); - 80157d0: 22ff movs r2, #255 ; 0xff - 80157d2: 21ff movs r1, #255 ; 0xff - 80157d4: 20ff movs r0, #255 ; 0xff - 80157d6: f7ff ffd0 bl 801577a - 80157da: 4603 mov r3, r0 + 801573c: 22ff movs r2, #255 ; 0xff + 801573e: 21ff movs r1, #255 ; 0xff + 8015740: 20ff movs r0, #255 ; 0xff + 8015742: f7ff ffd0 bl 80156e6 + 8015746: 4603 mov r3, r0 } - 80157dc: 4618 mov r0, r3 - 80157de: bd80 pop {r7, pc} + 8015748: 4618 mov r0, r3 + 801574a: bd80 pop {r7, pc} -080157e0 : +0801574c : { - 80157e0: b580 push {r7, lr} - 80157e2: af00 add r7, sp, #0 + 801574c: b580 push {r7, lr} + 801574e: af00 add r7, sp, #0 return lv_color_make(0x00, 0x0, 0x00); - 80157e4: 2200 movs r2, #0 - 80157e6: 2100 movs r1, #0 - 80157e8: 2000 movs r0, #0 - 80157ea: f7ff ffc6 bl 801577a - 80157ee: 4603 mov r3, r0 + 8015750: 2200 movs r2, #0 + 8015752: 2100 movs r1, #0 + 8015754: 2000 movs r0, #0 + 8015756: f7ff ffc6 bl 80156e6 + 801575a: 4603 mov r3, r0 } - 80157f0: 4618 mov r0, r3 - 80157f2: bd80 pop {r7, pc} + 801575c: 4618 mov r0, r3 + 801575e: bd80 pop {r7, pc} -080157f4 : +08015760 : /********************** * GLOBAL FUNCTIONS **********************/ LV_ATTRIBUTE_FAST_MEM void lv_draw_rect_dsc_init(lv_draw_rect_dsc_t * dsc) { - 80157f4: b590 push {r4, r7, lr} - 80157f6: b083 sub sp, #12 - 80157f8: af00 add r7, sp, #0 - 80157fa: 6078 str r0, [r7, #4] + 8015760: b590 push {r4, r7, lr} + 8015762: b083 sub sp, #12 + 8015764: af00 add r7, sp, #0 + 8015766: 6078 str r0, [r7, #4] lv_memset_00(dsc, sizeof(lv_draw_rect_dsc_t)); - 80157fc: 2138 movs r1, #56 ; 0x38 - 80157fe: 6878 ldr r0, [r7, #4] - 8015800: f01d fca6 bl 8033150 + 8015768: 2138 movs r1, #56 ; 0x38 + 801576a: 6878 ldr r0, [r7, #4] + 801576c: f01d fca6 bl 80330bc dsc->bg_color = lv_color_white(); - 8015804: 687c ldr r4, [r7, #4] - 8015806: f7ff ffe1 bl 80157cc - 801580a: 80a0 strh r0, [r4, #4] + 8015770: 687c ldr r4, [r7, #4] + 8015772: f7ff ffe1 bl 8015738 + 8015776: 80a0 strh r0, [r4, #4] #if __STDC_VERSION__ < 201112L dsc->bg_grad.stops[0].color = lv_color_white(); #endif dsc->bg_grad.stops[1].color = lv_color_black(); - 801580c: 687c ldr r4, [r7, #4] - 801580e: f7ff ffe7 bl 80157e0 - 8015812: 8120 strh r0, [r4, #8] + 8015778: 687c ldr r4, [r7, #4] + 801577a: f7ff ffe7 bl 801574c + 801577e: 8120 strh r0, [r4, #8] dsc->bg_grad.stops[1].frac = 0xFF; - 8015814: 687b ldr r3, [r7, #4] - 8015816: 22ff movs r2, #255 ; 0xff - 8015818: 729a strb r2, [r3, #10] + 8015780: 687b ldr r3, [r7, #4] + 8015782: 22ff movs r2, #255 ; 0xff + 8015784: 729a strb r2, [r3, #10] dsc->bg_grad.stops_count = 2; - 801581a: 687b ldr r3, [r7, #4] - 801581c: 2202 movs r2, #2 - 801581e: 731a strb r2, [r3, #12] + 8015786: 687b ldr r3, [r7, #4] + 8015788: 2202 movs r2, #2 + 801578a: 731a strb r2, [r3, #12] dsc->border_color = lv_color_black(); - 8015820: 687c ldr r4, [r7, #4] - 8015822: f7ff ffdd bl 80157e0 - 8015826: 83e0 strh r0, [r4, #30] + 801578c: 687c ldr r4, [r7, #4] + 801578e: f7ff ffdd bl 801574c + 8015792: 83e0 strh r0, [r4, #30] dsc->shadow_color = lv_color_black(); - 8015828: 687c ldr r4, [r7, #4] - 801582a: f7ff ffd9 bl 80157e0 - 801582e: 85a0 strh r0, [r4, #44] ; 0x2c + 8015794: 687c ldr r4, [r7, #4] + 8015796: f7ff ffd9 bl 801574c + 801579a: 85a0 strh r0, [r4, #44] ; 0x2c dsc->bg_img_symbol_font = LV_FONT_DEFAULT; - 8015830: 687b ldr r3, [r7, #4] - 8015832: 4a10 ldr r2, [pc, #64] ; (8015874 ) - 8015834: 615a str r2, [r3, #20] + 801579c: 687b ldr r3, [r7, #4] + 801579e: 4a10 ldr r2, [pc, #64] ; (80157e0 ) + 80157a0: 615a str r2, [r3, #20] dsc->bg_opa = LV_OPA_COVER; - 8015836: 687b ldr r3, [r7, #4] - 8015838: 22ff movs r2, #255 ; 0xff - 801583a: 70da strb r2, [r3, #3] + 80157a2: 687b ldr r3, [r7, #4] + 80157a4: 22ff movs r2, #255 ; 0xff + 80157a6: 70da strb r2, [r3, #3] dsc->bg_img_opa = LV_OPA_COVER; - 801583c: 687b ldr r3, [r7, #4] - 801583e: 22ff movs r2, #255 ; 0xff - 8015840: 769a strb r2, [r3, #26] + 80157a8: 687b ldr r3, [r7, #4] + 80157aa: 22ff movs r2, #255 ; 0xff + 80157ac: 769a strb r2, [r3, #26] dsc->outline_opa = LV_OPA_COVER; - 8015842: 687b ldr r3, [r7, #4] - 8015844: 22ff movs r2, #255 ; 0xff - 8015846: f883 202a strb.w r2, [r3, #42] ; 0x2a + 80157ae: 687b ldr r3, [r7, #4] + 80157b0: 22ff movs r2, #255 ; 0xff + 80157b2: f883 202a strb.w r2, [r3, #42] ; 0x2a dsc->border_opa = LV_OPA_COVER; - 801584a: 687b ldr r3, [r7, #4] - 801584c: 22ff movs r2, #255 ; 0xff - 801584e: f883 2022 strb.w r2, [r3, #34] ; 0x22 + 80157b6: 687b ldr r3, [r7, #4] + 80157b8: 22ff movs r2, #255 ; 0xff + 80157ba: f883 2022 strb.w r2, [r3, #34] ; 0x22 dsc->shadow_opa = LV_OPA_COVER; - 8015852: 687b ldr r3, [r7, #4] - 8015854: 22ff movs r2, #255 ; 0xff - 8015856: f883 2036 strb.w r2, [r3, #54] ; 0x36 + 80157be: 687b ldr r3, [r7, #4] + 80157c0: 22ff movs r2, #255 ; 0xff + 80157c2: f883 2036 strb.w r2, [r3, #54] ; 0x36 dsc->border_side = LV_BORDER_SIDE_FULL; - 801585a: 687a ldr r2, [r7, #4] - 801585c: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 - 8015860: 210f movs r1, #15 - 8015862: f361 0345 bfi r3, r1, #1, #5 - 8015866: f882 3023 strb.w r3, [r2, #35] ; 0x23 + 80157c6: 687a ldr r2, [r7, #4] + 80157c8: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 + 80157cc: 210f movs r1, #15 + 80157ce: f361 0345 bfi r3, r1, #1, #5 + 80157d2: f882 3023 strb.w r3, [r2, #35] ; 0x23 } - 801586a: bf00 nop - 801586c: 370c adds r7, #12 - 801586e: 46bd mov sp, r7 - 8015870: bd90 pop {r4, r7, pc} - 8015872: bf00 nop - 8015874: 08070758 .word 0x08070758 + 80157d6: bf00 nop + 80157d8: 370c adds r7, #12 + 80157da: 46bd mov sp, r7 + 80157dc: bd90 pop {r4, r7, pc} + 80157de: bf00 nop + 80157e0: 080706b0 .word 0x080706b0 -08015878 : +080157e4 : * @param coords the coordinates of the rectangle * @param mask the rectangle will be drawn only in this mask * @param dsc pointer to an initialized `lv_draw_rect_dsc_t` variable */ void lv_draw_rect(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords) { - 8015878: b580 push {r7, lr} - 801587a: b084 sub sp, #16 - 801587c: af00 add r7, sp, #0 - 801587e: 60f8 str r0, [r7, #12] - 8015880: 60b9 str r1, [r7, #8] - 8015882: 607a str r2, [r7, #4] + 80157e4: b580 push {r7, lr} + 80157e6: b084 sub sp, #16 + 80157e8: af00 add r7, sp, #0 + 80157ea: 60f8 str r0, [r7, #12] + 80157ec: 60b9 str r1, [r7, #8] + 80157ee: 607a str r2, [r7, #4] if(lv_area_get_height(coords) < 1 || lv_area_get_width(coords) < 1) return; - 8015884: 6878 ldr r0, [r7, #4] - 8015886: f7ff ff62 bl 801574e - 801588a: 4603 mov r3, r0 - 801588c: 2b00 cmp r3, #0 - 801588e: dd0c ble.n 80158aa - 8015890: 6878 ldr r0, [r7, #4] - 8015892: f7ff ff46 bl 8015722 - 8015896: 4603 mov r3, r0 - 8015898: 2b00 cmp r3, #0 - 801589a: dd06 ble.n 80158aa + 80157f0: 6878 ldr r0, [r7, #4] + 80157f2: f7ff ff62 bl 80156ba + 80157f6: 4603 mov r3, r0 + 80157f8: 2b00 cmp r3, #0 + 80157fa: dd0c ble.n 8015816 + 80157fc: 6878 ldr r0, [r7, #4] + 80157fe: f7ff ff46 bl 801568e + 8015802: 4603 mov r3, r0 + 8015804: 2b00 cmp r3, #0 + 8015806: dd06 ble.n 8015816 draw_ctx->draw_rect(draw_ctx, dsc, coords); - 801589c: 68fb ldr r3, [r7, #12] - 801589e: 68db ldr r3, [r3, #12] - 80158a0: 687a ldr r2, [r7, #4] - 80158a2: 68b9 ldr r1, [r7, #8] - 80158a4: 68f8 ldr r0, [r7, #12] - 80158a6: 4798 blx r3 - 80158a8: e000 b.n 80158ac + 8015808: 68fb ldr r3, [r7, #12] + 801580a: 68db ldr r3, [r3, #12] + 801580c: 687a ldr r2, [r7, #4] + 801580e: 68b9 ldr r1, [r7, #8] + 8015810: 68f8 ldr r0, [r7, #12] + 8015812: 4798 blx r3 + 8015814: e000 b.n 8015818 if(lv_area_get_height(coords) < 1 || lv_area_get_width(coords) < 1) return; - 80158aa: bf00 nop + 8015816: bf00 nop LV_ASSERT_MEM_INTEGRITY(); } - 80158ac: 3710 adds r7, #16 - 80158ae: 46bd mov sp, r7 - 80158b0: bd80 pop {r7, pc} + 8015818: 3710 adds r7, #16 + 801581a: 46bd mov sp, r7 + 801581c: bd80 pop {r7, pc} -080158b2 : +0801581e : { - 80158b2: b480 push {r7} - 80158b4: b087 sub sp, #28 - 80158b6: af00 add r7, sp, #0 - 80158b8: 60f8 str r0, [r7, #12] - 80158ba: 60b9 str r1, [r7, #8] - 80158bc: 607a str r2, [r7, #4] + 801581e: b480 push {r7} + 8015820: b087 sub sp, #28 + 8015822: af00 add r7, sp, #0 + 8015824: 60f8 str r0, [r7, #12] + 8015826: 60b9 str r1, [r7, #8] + 8015828: 607a str r2, [r7, #4] uint8_t * d8 = (uint8_t *)dst; - 80158be: 68fb ldr r3, [r7, #12] - 80158c0: 617b str r3, [r7, #20] + 801582a: 68fb ldr r3, [r7, #12] + 801582c: 617b str r3, [r7, #20] const uint8_t * s8 = (const uint8_t *)src; - 80158c2: 68bb ldr r3, [r7, #8] - 80158c4: 613b str r3, [r7, #16] + 801582e: 68bb ldr r3, [r7, #8] + 8015830: 613b str r3, [r7, #16] while(len) { - 80158c6: e00c b.n 80158e2 + 8015832: e00c b.n 801584e *d8 = *s8; - 80158c8: 693b ldr r3, [r7, #16] - 80158ca: 781a ldrb r2, [r3, #0] - 80158cc: 697b ldr r3, [r7, #20] - 80158ce: 701a strb r2, [r3, #0] + 8015834: 693b ldr r3, [r7, #16] + 8015836: 781a ldrb r2, [r3, #0] + 8015838: 697b ldr r3, [r7, #20] + 801583a: 701a strb r2, [r3, #0] d8++; - 80158d0: 697b ldr r3, [r7, #20] - 80158d2: 3301 adds r3, #1 - 80158d4: 617b str r3, [r7, #20] + 801583c: 697b ldr r3, [r7, #20] + 801583e: 3301 adds r3, #1 + 8015840: 617b str r3, [r7, #20] s8++; - 80158d6: 693b ldr r3, [r7, #16] - 80158d8: 3301 adds r3, #1 - 80158da: 613b str r3, [r7, #16] + 8015842: 693b ldr r3, [r7, #16] + 8015844: 3301 adds r3, #1 + 8015846: 613b str r3, [r7, #16] len--; - 80158dc: 687b ldr r3, [r7, #4] - 80158de: 3b01 subs r3, #1 - 80158e0: 607b str r3, [r7, #4] + 8015848: 687b ldr r3, [r7, #4] + 801584a: 3b01 subs r3, #1 + 801584c: 607b str r3, [r7, #4] while(len) { - 80158e2: 687b ldr r3, [r7, #4] - 80158e4: 2b00 cmp r3, #0 - 80158e6: d1ef bne.n 80158c8 + 801584e: 687b ldr r3, [r7, #4] + 8015850: 2b00 cmp r3, #0 + 8015852: d1ef bne.n 8015834 return dst; - 80158e8: 68fb ldr r3, [r7, #12] + 8015854: 68fb ldr r3, [r7, #12] } - 80158ea: 4618 mov r0, r3 - 80158ec: 371c adds r7, #28 - 80158ee: 46bd mov sp, r7 - 80158f0: bc80 pop {r7} - 80158f2: 4770 bx lr + 8015856: 4618 mov r0, r3 + 8015858: 371c adds r7, #28 + 801585a: 46bd mov sp, r7 + 801585c: bc80 pop {r7} + 801585e: 4770 bx lr -080158f4 : +08015860 : { - 80158f4: b480 push {r7} - 80158f6: b087 sub sp, #28 - 80158f8: af00 add r7, sp, #0 - 80158fa: 80b8 strh r0, [r7, #4] - 80158fc: 8039 strh r1, [r7, #0] - 80158fe: 4613 mov r3, r2 - 8015900: 70fb strb r3, [r7, #3] + 8015860: b480 push {r7} + 8015862: b087 sub sp, #28 + 8015864: af00 add r7, sp, #0 + 8015866: 80b8 strh r0, [r7, #4] + 8015868: 8039 strh r1, [r7, #0] + 801586a: 4613 mov r3, r2 + 801586c: 70fb strb r3, [r7, #3] mix = (mix + 4) >> 3; - 8015902: 78fb ldrb r3, [r7, #3] - 8015904: 3304 adds r3, #4 - 8015906: 10db asrs r3, r3, #3 - 8015908: 70fb strb r3, [r7, #3] + 801586e: 78fb ldrb r3, [r7, #3] + 8015870: 3304 adds r3, #4 + 8015872: 10db asrs r3, r3, #3 + 8015874: 70fb strb r3, [r7, #3] uint32_t bg = (uint32_t)((uint32_t)c2.full | ((uint32_t)c2.full << 16)) & - 801590a: 883b ldrh r3, [r7, #0] - 801590c: 461a mov r2, r3 - 801590e: 883b ldrh r3, [r7, #0] - 8015910: 041b lsls r3, r3, #16 - 8015912: 431a orrs r2, r3 - 8015914: 4b12 ldr r3, [pc, #72] ; (8015960 ) - 8015916: 4013 ands r3, r2 - 8015918: 617b str r3, [r7, #20] + 8015876: 883b ldrh r3, [r7, #0] + 8015878: 461a mov r2, r3 + 801587a: 883b ldrh r3, [r7, #0] + 801587c: 041b lsls r3, r3, #16 + 801587e: 431a orrs r2, r3 + 8015880: 4b12 ldr r3, [pc, #72] ; (80158cc ) + 8015882: 4013 ands r3, r2 + 8015884: 617b str r3, [r7, #20] uint32_t fg = (uint32_t)((uint32_t)c1.full | ((uint32_t)c1.full << 16)) & 0x7E0F81F; - 801591a: 88bb ldrh r3, [r7, #4] - 801591c: 461a mov r2, r3 - 801591e: 88bb ldrh r3, [r7, #4] - 8015920: 041b lsls r3, r3, #16 - 8015922: 431a orrs r2, r3 - 8015924: 4b0e ldr r3, [pc, #56] ; (8015960 ) - 8015926: 4013 ands r3, r2 - 8015928: 613b str r3, [r7, #16] + 8015886: 88bb ldrh r3, [r7, #4] + 8015888: 461a mov r2, r3 + 801588a: 88bb ldrh r3, [r7, #4] + 801588c: 041b lsls r3, r3, #16 + 801588e: 431a orrs r2, r3 + 8015890: 4b0e ldr r3, [pc, #56] ; (80158cc ) + 8015892: 4013 ands r3, r2 + 8015894: 613b str r3, [r7, #16] uint32_t result = ((((fg - bg) * mix) >> 5) + bg) & 0x7E0F81F; - 801592a: 693a ldr r2, [r7, #16] - 801592c: 697b ldr r3, [r7, #20] - 801592e: 1ad3 subs r3, r2, r3 - 8015930: 78fa ldrb r2, [r7, #3] - 8015932: fb02 f303 mul.w r3, r2, r3 - 8015936: 095a lsrs r2, r3, #5 - 8015938: 697b ldr r3, [r7, #20] - 801593a: 441a add r2, r3 - 801593c: 4b08 ldr r3, [pc, #32] ; (8015960 ) - 801593e: 4013 ands r3, r2 - 8015940: 60fb str r3, [r7, #12] + 8015896: 693a ldr r2, [r7, #16] + 8015898: 697b ldr r3, [r7, #20] + 801589a: 1ad3 subs r3, r2, r3 + 801589c: 78fa ldrb r2, [r7, #3] + 801589e: fb02 f303 mul.w r3, r2, r3 + 80158a2: 095a lsrs r2, r3, #5 + 80158a4: 697b ldr r3, [r7, #20] + 80158a6: 441a add r2, r3 + 80158a8: 4b08 ldr r3, [pc, #32] ; (80158cc ) + 80158aa: 4013 ands r3, r2 + 80158ac: 60fb str r3, [r7, #12] ret.full = (uint16_t)((result >> 16) | result); - 8015942: 68fb ldr r3, [r7, #12] - 8015944: 0c1b lsrs r3, r3, #16 - 8015946: b29a uxth r2, r3 - 8015948: 68fb ldr r3, [r7, #12] - 801594a: b29b uxth r3, r3 - 801594c: 4313 orrs r3, r2 - 801594e: b29b uxth r3, r3 - 8015950: 813b strh r3, [r7, #8] + 80158ae: 68fb ldr r3, [r7, #12] + 80158b0: 0c1b lsrs r3, r3, #16 + 80158b2: b29a uxth r2, r3 + 80158b4: 68fb ldr r3, [r7, #12] + 80158b6: b29b uxth r3, r3 + 80158b8: 4313 orrs r3, r2 + 80158ba: b29b uxth r3, r3 + 80158bc: 813b strh r3, [r7, #8] return ret; - 8015952: 893b ldrh r3, [r7, #8] + 80158be: 893b ldrh r3, [r7, #8] } - 8015954: 4618 mov r0, r3 - 8015956: 371c adds r7, #28 - 8015958: 46bd mov sp, r7 - 801595a: bc80 pop {r7} - 801595c: 4770 bx lr - 801595e: bf00 nop - 8015960: 07e0f81f .word 0x07e0f81f + 80158c0: 4618 mov r0, r3 + 80158c2: 371c adds r7, #28 + 80158c4: 46bd mov sp, r7 + 80158c6: bc80 pop {r7} + 80158c8: 4770 bx lr + 80158ca: bf00 nop + 80158cc: 07e0f81f .word 0x07e0f81f -08015964 : +080158d0 : { - 8015964: b490 push {r4, r7} - 8015966: b082 sub sp, #8 - 8015968: af00 add r7, sp, #0 - 801596a: 4604 mov r4, r0 - 801596c: 4608 mov r0, r1 - 801596e: 4611 mov r1, r2 - 8015970: 4622 mov r2, r4 - 8015972: 71fa strb r2, [r7, #7] - 8015974: 4602 mov r2, r0 - 8015976: 71ba strb r2, [r7, #6] - 8015978: 460a mov r2, r1 - 801597a: 717a strb r2, [r7, #5] + 80158d0: b490 push {r4, r7} + 80158d2: b082 sub sp, #8 + 80158d4: af00 add r7, sp, #0 + 80158d6: 4604 mov r4, r0 + 80158d8: 4608 mov r0, r1 + 80158da: 4611 mov r1, r2 + 80158dc: 4622 mov r2, r4 + 80158de: 71fa strb r2, [r7, #7] + 80158e0: 4602 mov r2, r0 + 80158e2: 71ba strb r2, [r7, #6] + 80158e4: 460a mov r2, r1 + 80158e6: 717a strb r2, [r7, #5] return _LV_COLOR_MAKE_TYPE_HELPER LV_COLOR_MAKE(r, g, b); - 801597c: 797a ldrb r2, [r7, #5] - 801597e: 08d2 lsrs r2, r2, #3 - 8015980: b2d2 uxtb r2, r2 - 8015982: f002 021f and.w r2, r2, #31 - 8015986: b2d0 uxtb r0, r2 - 8015988: 79ba ldrb r2, [r7, #6] - 801598a: 0892 lsrs r2, r2, #2 - 801598c: b2d2 uxtb r2, r2 - 801598e: f002 023f and.w r2, r2, #63 ; 0x3f - 8015992: b2d1 uxtb r1, r2 - 8015994: 79fa ldrb r2, [r7, #7] - 8015996: 08d2 lsrs r2, r2, #3 - 8015998: b2d2 uxtb r2, r2 - 801599a: f002 021f and.w r2, r2, #31 - 801599e: b2d2 uxtb r2, r2 - 80159a0: f360 0304 bfi r3, r0, #0, #5 - 80159a4: f361 134a bfi r3, r1, #5, #6 - 80159a8: f362 23cf bfi r3, r2, #11, #5 + 80158e8: 797a ldrb r2, [r7, #5] + 80158ea: 08d2 lsrs r2, r2, #3 + 80158ec: b2d2 uxtb r2, r2 + 80158ee: f002 021f and.w r2, r2, #31 + 80158f2: b2d0 uxtb r0, r2 + 80158f4: 79ba ldrb r2, [r7, #6] + 80158f6: 0892 lsrs r2, r2, #2 + 80158f8: b2d2 uxtb r2, r2 + 80158fa: f002 023f and.w r2, r2, #63 ; 0x3f + 80158fe: b2d1 uxtb r1, r2 + 8015900: 79fa ldrb r2, [r7, #7] + 8015902: 08d2 lsrs r2, r2, #3 + 8015904: b2d2 uxtb r2, r2 + 8015906: f002 021f and.w r2, r2, #31 + 801590a: b2d2 uxtb r2, r2 + 801590c: f360 0304 bfi r3, r0, #0, #5 + 8015910: f361 134a bfi r3, r1, #5, #6 + 8015914: f362 23cf bfi r3, r2, #11, #5 } - 80159ac: 4618 mov r0, r3 - 80159ae: 3708 adds r7, #8 - 80159b0: 46bd mov sp, r7 - 80159b2: bc90 pop {r4, r7} - 80159b4: 4770 bx lr + 8015918: 4618 mov r0, r3 + 801591a: 3708 adds r7, #8 + 801591c: 46bd mov sp, r7 + 801591e: bc90 pop {r4, r7} + 8015920: 4770 bx lr -080159b6 : +08015922 : { - 80159b6: b480 push {r7} - 80159b8: b085 sub sp, #20 - 80159ba: af00 add r7, sp, #0 - 80159bc: 6078 str r0, [r7, #4] + 8015922: b480 push {r7} + 8015924: b085 sub sp, #20 + 8015926: af00 add r7, sp, #0 + 8015928: 6078 str r0, [r7, #4] r.full = (uint16_t)(((c & 0xF80000) >> 8) | ((c & 0xFC00) >> 5) | ((c & 0xFF) >> 3)); - 80159be: 687b ldr r3, [r7, #4] - 80159c0: 0a1b lsrs r3, r3, #8 - 80159c2: b29b uxth r3, r3 - 80159c4: f423 63ff bic.w r3, r3, #2040 ; 0x7f8 - 80159c8: f023 0307 bic.w r3, r3, #7 - 80159cc: b29a uxth r2, r3 - 80159ce: 687b ldr r3, [r7, #4] - 80159d0: 095b lsrs r3, r3, #5 - 80159d2: b29b uxth r3, r3 - 80159d4: f403 63fc and.w r3, r3, #2016 ; 0x7e0 - 80159d8: b29b uxth r3, r3 - 80159da: 4313 orrs r3, r2 - 80159dc: b29a uxth r2, r3 - 80159de: 687b ldr r3, [r7, #4] - 80159e0: 08db lsrs r3, r3, #3 - 80159e2: b29b uxth r3, r3 - 80159e4: f003 031f and.w r3, r3, #31 - 80159e8: b29b uxth r3, r3 - 80159ea: 4313 orrs r3, r2 - 80159ec: b29b uxth r3, r3 - 80159ee: 81bb strh r3, [r7, #12] + 801592a: 687b ldr r3, [r7, #4] + 801592c: 0a1b lsrs r3, r3, #8 + 801592e: b29b uxth r3, r3 + 8015930: f423 63ff bic.w r3, r3, #2040 ; 0x7f8 + 8015934: f023 0307 bic.w r3, r3, #7 + 8015938: b29a uxth r2, r3 + 801593a: 687b ldr r3, [r7, #4] + 801593c: 095b lsrs r3, r3, #5 + 801593e: b29b uxth r3, r3 + 8015940: f403 63fc and.w r3, r3, #2016 ; 0x7e0 + 8015944: b29b uxth r3, r3 + 8015946: 4313 orrs r3, r2 + 8015948: b29a uxth r2, r3 + 801594a: 687b ldr r3, [r7, #4] + 801594c: 08db lsrs r3, r3, #3 + 801594e: b29b uxth r3, r3 + 8015950: f003 031f and.w r3, r3, #31 + 8015954: b29b uxth r3, r3 + 8015956: 4313 orrs r3, r2 + 8015958: b29b uxth r3, r3 + 801595a: 81bb strh r3, [r7, #12] return r; - 80159f0: 89bb ldrh r3, [r7, #12] + 801595c: 89bb ldrh r3, [r7, #12] } - 80159f2: 4618 mov r0, r3 - 80159f4: 3714 adds r7, #20 - 80159f6: 46bd mov sp, r7 - 80159f8: bc80 pop {r7} - 80159fa: 4770 bx lr + 801595e: 4618 mov r0, r3 + 8015960: 3714 adds r7, #20 + 8015962: 46bd mov sp, r7 + 8015964: bc80 pop {r7} + 8015966: 4770 bx lr -080159fc : +08015968 : { - 80159fc: b580 push {r7, lr} - 80159fe: af00 add r7, sp, #0 + 8015968: b580 push {r7, lr} + 801596a: af00 add r7, sp, #0 return lv_color_make(0x00, 0x0, 0x00); - 8015a00: 2200 movs r2, #0 - 8015a02: 2100 movs r1, #0 - 8015a04: 2000 movs r0, #0 - 8015a06: f7ff ffad bl 8015964 - 8015a0a: 4603 mov r3, r0 + 801596c: 2200 movs r2, #0 + 801596e: 2100 movs r1, #0 + 8015970: 2000 movs r0, #0 + 8015972: f7ff ffad bl 80158d0 + 8015976: 4603 mov r3, r0 } - 8015a0c: 4618 mov r0, r3 - 8015a0e: bd80 pop {r7, pc} + 8015978: 4618 mov r0, r3 + 801597a: bd80 pop {r7, pc} -08015a10 : +0801597c : * Not used in other cases. * @param safe true: check out of bounds * @return color of the point */ lv_color_t lv_img_buf_get_px_color(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_color_t color) { - 8015a10: b580 push {r7, lr} - 8015a12: b090 sub sp, #64 ; 0x40 - 8015a14: af00 add r7, sp, #0 - 8015a16: 60f8 str r0, [r7, #12] - 8015a18: 80bb strh r3, [r7, #4] - 8015a1a: 460b mov r3, r1 - 8015a1c: 817b strh r3, [r7, #10] - 8015a1e: 4613 mov r3, r2 - 8015a20: 813b strh r3, [r7, #8] + 801597c: b580 push {r7, lr} + 801597e: b090 sub sp, #64 ; 0x40 + 8015980: af00 add r7, sp, #0 + 8015982: 60f8 str r0, [r7, #12] + 8015984: 80bb strh r3, [r7, #4] + 8015986: 460b mov r3, r1 + 8015988: 817b strh r3, [r7, #10] + 801598a: 4613 mov r3, r2 + 801598c: 813b strh r3, [r7, #8] lv_color_t p_color = lv_color_black(); - 8015a22: f7ff ffeb bl 80159fc - 8015a26: 4603 mov r3, r0 - 8015a28: 82bb strh r3, [r7, #20] + 801598e: f7ff ffeb bl 8015968 + 8015992: 4603 mov r3, r0 + 8015994: 82bb strh r3, [r7, #20] uint8_t * buf_u8 = (uint8_t *)dsc->data; - 8015a2a: 68fb ldr r3, [r7, #12] - 8015a2c: 689b ldr r3, [r3, #8] - 8015a2e: 63fb str r3, [r7, #60] ; 0x3c + 8015996: 68fb ldr r3, [r7, #12] + 8015998: 689b ldr r3, [r3, #8] + 801599a: 63fb str r3, [r7, #60] ; 0x3c if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED || - 8015a30: 68fb ldr r3, [r7, #12] - 8015a32: 781b ldrb r3, [r3, #0] - 8015a34: f003 031f and.w r3, r3, #31 - 8015a38: b2db uxtb r3, r3 - 8015a3a: 2b04 cmp r3, #4 - 8015a3c: d00d beq.n 8015a5a - 8015a3e: 68fb ldr r3, [r7, #12] - 8015a40: 781b ldrb r3, [r3, #0] - 8015a42: f003 031f and.w r3, r3, #31 - 8015a46: b2db uxtb r3, r3 - 8015a48: 2b06 cmp r3, #6 - 8015a4a: d006 beq.n 8015a5a + 801599c: 68fb ldr r3, [r7, #12] + 801599e: 781b ldrb r3, [r3, #0] + 80159a0: f003 031f and.w r3, r3, #31 + 80159a4: b2db uxtb r3, r3 + 80159a6: 2b04 cmp r3, #4 + 80159a8: d00d beq.n 80159c6 + 80159aa: 68fb ldr r3, [r7, #12] + 80159ac: 781b ldrb r3, [r3, #0] + 80159ae: f003 031f and.w r3, r3, #31 + 80159b2: b2db uxtb r3, r3 + 80159b4: 2b06 cmp r3, #6 + 80159b6: d006 beq.n 80159c6 dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) { - 8015a4c: 68fb ldr r3, [r7, #12] - 8015a4e: 781b ldrb r3, [r3, #0] - 8015a50: f003 031f and.w r3, r3, #31 - 8015a54: b2db uxtb r3, r3 + 80159b8: 68fb ldr r3, [r7, #12] + 80159ba: 781b ldrb r3, [r3, #0] + 80159bc: f003 031f and.w r3, r3, #31 + 80159c0: b2db uxtb r3, r3 if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED || - 8015a56: 2b05 cmp r3, #5 - 8015a58: d128 bne.n 8015aac + 80159c2: 2b05 cmp r3, #5 + 80159c4: d128 bne.n 8015a18 uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf) >> 3; - 8015a5a: 68fb ldr r3, [r7, #12] - 8015a5c: 781b ldrb r3, [r3, #0] - 8015a5e: f3c3 0304 ubfx r3, r3, #0, #5 - 8015a62: b2db uxtb r3, r3 - 8015a64: 4618 mov r0, r3 - 8015a66: f7fc f879 bl 8011b5c - 8015a6a: 4603 mov r3, r0 - 8015a6c: 08db lsrs r3, r3, #3 - 8015a6e: 77fb strb r3, [r7, #31] + 80159c6: 68fb ldr r3, [r7, #12] + 80159c8: 781b ldrb r3, [r3, #0] + 80159ca: f3c3 0304 ubfx r3, r3, #0, #5 + 80159ce: b2db uxtb r3, r3 + 80159d0: 4618 mov r0, r3 + 80159d2: f7fc f879 bl 8011ac8 + 80159d6: 4603 mov r3, r0 + 80159d8: 08db lsrs r3, r3, #3 + 80159da: 77fb strb r3, [r7, #31] uint32_t px = dsc->header.w * y * px_size + x * px_size; - 8015a70: 68fb ldr r3, [r7, #12] - 8015a72: 681b ldr r3, [r3, #0] - 8015a74: f3c3 238a ubfx r3, r3, #10, #11 - 8015a78: b29b uxth r3, r3 - 8015a7a: 461a mov r2, r3 - 8015a7c: f9b7 3008 ldrsh.w r3, [r7, #8] - 8015a80: fb02 f303 mul.w r3, r2, r3 - 8015a84: 7ffa ldrb r2, [r7, #31] - 8015a86: fb03 f202 mul.w r2, r3, r2 - 8015a8a: f9b7 300a ldrsh.w r3, [r7, #10] - 8015a8e: 7ff9 ldrb r1, [r7, #31] - 8015a90: fb01 f303 mul.w r3, r1, r3 - 8015a94: 4413 add r3, r2 - 8015a96: 61bb str r3, [r7, #24] + 80159dc: 68fb ldr r3, [r7, #12] + 80159de: 681b ldr r3, [r3, #0] + 80159e0: f3c3 238a ubfx r3, r3, #10, #11 + 80159e4: b29b uxth r3, r3 + 80159e6: 461a mov r2, r3 + 80159e8: f9b7 3008 ldrsh.w r3, [r7, #8] + 80159ec: fb02 f303 mul.w r3, r2, r3 + 80159f0: 7ffa ldrb r2, [r7, #31] + 80159f2: fb03 f202 mul.w r2, r3, r2 + 80159f6: f9b7 300a ldrsh.w r3, [r7, #10] + 80159fa: 7ff9 ldrb r1, [r7, #31] + 80159fc: fb01 f303 mul.w r3, r1, r3 + 8015a00: 4413 add r3, r2 + 8015a02: 61bb str r3, [r7, #24] lv_memcpy_small(&p_color, &buf_u8[px], sizeof(lv_color_t)); - 8015a98: 6bfa ldr r2, [r7, #60] ; 0x3c - 8015a9a: 69bb ldr r3, [r7, #24] - 8015a9c: 18d1 adds r1, r2, r3 - 8015a9e: f107 0314 add.w r3, r7, #20 - 8015aa2: 2202 movs r2, #2 - 8015aa4: 4618 mov r0, r3 - 8015aa6: f7ff ff04 bl 80158b2 + 8015a04: 6bfa ldr r2, [r7, #60] ; 0x3c + 8015a06: 69bb ldr r3, [r7, #24] + 8015a08: 18d1 adds r1, r2, r3 + 8015a0a: f107 0314 add.w r3, r7, #20 + 8015a0e: 2202 movs r2, #2 + 8015a10: 4618 mov r0, r3 + 8015a12: f7ff ff04 bl 801581e dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) { - 8015aaa: e0ef b.n 8015c8c + 8015a16: e0ef b.n 8015bf8 #if LV_COLOR_SIZE == 32 p_color.ch.alpha = 0xFF; /*Only the color should be get so use a default alpha value*/ #endif } else if(dsc->header.cf == LV_IMG_CF_INDEXED_1BIT) { - 8015aac: 68fb ldr r3, [r7, #12] - 8015aae: 781b ldrb r3, [r3, #0] - 8015ab0: f003 031f and.w r3, r3, #31 - 8015ab4: b2db uxtb r3, r3 - 8015ab6: 2b07 cmp r3, #7 - 8015ab8: d132 bne.n 8015b20 + 8015a18: 68fb ldr r3, [r7, #12] + 8015a1a: 781b ldrb r3, [r3, #0] + 8015a1c: f003 031f and.w r3, r3, #31 + 8015a20: b2db uxtb r3, r3 + 8015a22: 2b07 cmp r3, #7 + 8015a24: d132 bne.n 8015a8c buf_u8 += 4 * 2; - 8015aba: 6bfb ldr r3, [r7, #60] ; 0x3c - 8015abc: 3308 adds r3, #8 - 8015abe: 63fb str r3, [r7, #60] ; 0x3c + 8015a26: 6bfb ldr r3, [r7, #60] ; 0x3c + 8015a28: 3308 adds r3, #8 + 8015a2a: 63fb str r3, [r7, #60] ; 0x3c uint8_t bit = x & 0x7; - 8015ac0: 897b ldrh r3, [r7, #10] - 8015ac2: b2db uxtb r3, r3 - 8015ac4: f003 0307 and.w r3, r3, #7 - 8015ac8: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8015a2c: 897b ldrh r3, [r7, #10] + 8015a2e: b2db uxtb r3, r3 + 8015a30: f003 0307 and.w r3, r3, #7 + 8015a34: f887 3027 strb.w r3, [r7, #39] ; 0x27 x = x >> 3; - 8015acc: f9b7 300a ldrsh.w r3, [r7, #10] - 8015ad0: 10db asrs r3, r3, #3 - 8015ad2: 817b strh r3, [r7, #10] + 8015a38: f9b7 300a ldrsh.w r3, [r7, #10] + 8015a3c: 10db asrs r3, r3, #3 + 8015a3e: 817b strh r3, [r7, #10] /*Get the current pixel. *dsc->header.w + 7 means rounding up to 8 because the lines are byte aligned *so the possible real width are 8, 16, 24 ...*/ uint32_t px = ((dsc->header.w + 7) >> 3) * y + x; - 8015ad4: 68fb ldr r3, [r7, #12] - 8015ad6: 681b ldr r3, [r3, #0] - 8015ad8: f3c3 238a ubfx r3, r3, #10, #11 - 8015adc: b29b uxth r3, r3 - 8015ade: 3307 adds r3, #7 - 8015ae0: 10db asrs r3, r3, #3 - 8015ae2: f9b7 2008 ldrsh.w r2, [r7, #8] - 8015ae6: fb03 f202 mul.w r2, r3, r2 - 8015aea: f9b7 300a ldrsh.w r3, [r7, #10] - 8015aee: 4413 add r3, r2 - 8015af0: 623b str r3, [r7, #32] + 8015a40: 68fb ldr r3, [r7, #12] + 8015a42: 681b ldr r3, [r3, #0] + 8015a44: f3c3 238a ubfx r3, r3, #10, #11 + 8015a48: b29b uxth r3, r3 + 8015a4a: 3307 adds r3, #7 + 8015a4c: 10db asrs r3, r3, #3 + 8015a4e: f9b7 2008 ldrsh.w r2, [r7, #8] + 8015a52: fb03 f202 mul.w r2, r3, r2 + 8015a56: f9b7 300a ldrsh.w r3, [r7, #10] + 8015a5a: 4413 add r3, r2 + 8015a5c: 623b str r3, [r7, #32] p_color.full = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit); - 8015af2: 6bfa ldr r2, [r7, #60] ; 0x3c - 8015af4: 6a3b ldr r3, [r7, #32] - 8015af6: 4413 add r3, r2 - 8015af8: 781b ldrb r3, [r3, #0] - 8015afa: 4619 mov r1, r3 - 8015afc: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8015b00: f1c3 0307 rsb r3, r3, #7 - 8015b04: 2201 movs r2, #1 - 8015b06: fa02 f303 lsl.w r3, r2, r3 - 8015b0a: ea01 0203 and.w r2, r1, r3 - 8015b0e: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8015b12: f1c3 0307 rsb r3, r3, #7 - 8015b16: fa42 f303 asr.w r3, r2, r3 - 8015b1a: b29b uxth r3, r3 - 8015b1c: 82bb strh r3, [r7, #20] - 8015b1e: e0b5 b.n 8015c8c + 8015a5e: 6bfa ldr r2, [r7, #60] ; 0x3c + 8015a60: 6a3b ldr r3, [r7, #32] + 8015a62: 4413 add r3, r2 + 8015a64: 781b ldrb r3, [r3, #0] + 8015a66: 4619 mov r1, r3 + 8015a68: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8015a6c: f1c3 0307 rsb r3, r3, #7 + 8015a70: 2201 movs r2, #1 + 8015a72: fa02 f303 lsl.w r3, r2, r3 + 8015a76: ea01 0203 and.w r2, r1, r3 + 8015a7a: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8015a7e: f1c3 0307 rsb r3, r3, #7 + 8015a82: fa42 f303 asr.w r3, r2, r3 + 8015a86: b29b uxth r3, r3 + 8015a88: 82bb strh r3, [r7, #20] + 8015a8a: e0b5 b.n 8015bf8 } else if(dsc->header.cf == LV_IMG_CF_INDEXED_2BIT) { - 8015b20: 68fb ldr r3, [r7, #12] - 8015b22: 781b ldrb r3, [r3, #0] - 8015b24: f003 031f and.w r3, r3, #31 - 8015b28: b2db uxtb r3, r3 - 8015b2a: 2b08 cmp r3, #8 - 8015b2c: d134 bne.n 8015b98 + 8015a8c: 68fb ldr r3, [r7, #12] + 8015a8e: 781b ldrb r3, [r3, #0] + 8015a90: f003 031f and.w r3, r3, #31 + 8015a94: b2db uxtb r3, r3 + 8015a96: 2b08 cmp r3, #8 + 8015a98: d134 bne.n 8015b04 buf_u8 += 4 * 4; - 8015b2e: 6bfb ldr r3, [r7, #60] ; 0x3c - 8015b30: 3310 adds r3, #16 - 8015b32: 63fb str r3, [r7, #60] ; 0x3c + 8015a9a: 6bfb ldr r3, [r7, #60] ; 0x3c + 8015a9c: 3310 adds r3, #16 + 8015a9e: 63fb str r3, [r7, #60] ; 0x3c uint8_t bit = (x & 0x3) * 2; - 8015b34: 897b ldrh r3, [r7, #10] - 8015b36: b2db uxtb r3, r3 - 8015b38: f003 0303 and.w r3, r3, #3 - 8015b3c: b2db uxtb r3, r3 - 8015b3e: 005b lsls r3, r3, #1 - 8015b40: f887 302f strb.w r3, [r7, #47] ; 0x2f + 8015aa0: 897b ldrh r3, [r7, #10] + 8015aa2: b2db uxtb r3, r3 + 8015aa4: f003 0303 and.w r3, r3, #3 + 8015aa8: b2db uxtb r3, r3 + 8015aaa: 005b lsls r3, r3, #1 + 8015aac: f887 302f strb.w r3, [r7, #47] ; 0x2f x = x >> 2; - 8015b44: f9b7 300a ldrsh.w r3, [r7, #10] - 8015b48: 109b asrs r3, r3, #2 - 8015b4a: 817b strh r3, [r7, #10] + 8015ab0: f9b7 300a ldrsh.w r3, [r7, #10] + 8015ab4: 109b asrs r3, r3, #2 + 8015ab6: 817b strh r3, [r7, #10] /*Get the current pixel. *dsc->header.w + 3 means rounding up to 4 because the lines are byte aligned *so the possible real width are 4, 8, 12 ...*/ uint32_t px = ((dsc->header.w + 3) >> 2) * y + x; - 8015b4c: 68fb ldr r3, [r7, #12] - 8015b4e: 681b ldr r3, [r3, #0] - 8015b50: f3c3 238a ubfx r3, r3, #10, #11 - 8015b54: b29b uxth r3, r3 - 8015b56: 3303 adds r3, #3 - 8015b58: 109b asrs r3, r3, #2 - 8015b5a: f9b7 2008 ldrsh.w r2, [r7, #8] - 8015b5e: fb03 f202 mul.w r2, r3, r2 - 8015b62: f9b7 300a ldrsh.w r3, [r7, #10] - 8015b66: 4413 add r3, r2 - 8015b68: 62bb str r3, [r7, #40] ; 0x28 + 8015ab8: 68fb ldr r3, [r7, #12] + 8015aba: 681b ldr r3, [r3, #0] + 8015abc: f3c3 238a ubfx r3, r3, #10, #11 + 8015ac0: b29b uxth r3, r3 + 8015ac2: 3303 adds r3, #3 + 8015ac4: 109b asrs r3, r3, #2 + 8015ac6: f9b7 2008 ldrsh.w r2, [r7, #8] + 8015aca: fb03 f202 mul.w r2, r3, r2 + 8015ace: f9b7 300a ldrsh.w r3, [r7, #10] + 8015ad2: 4413 add r3, r2 + 8015ad4: 62bb str r3, [r7, #40] ; 0x28 p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit); - 8015b6a: 6bfa ldr r2, [r7, #60] ; 0x3c - 8015b6c: 6abb ldr r3, [r7, #40] ; 0x28 - 8015b6e: 4413 add r3, r2 - 8015b70: 781b ldrb r3, [r3, #0] - 8015b72: 4619 mov r1, r3 - 8015b74: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8015b78: f1c3 0306 rsb r3, r3, #6 - 8015b7c: 2203 movs r2, #3 - 8015b7e: fa02 f303 lsl.w r3, r2, r3 - 8015b82: ea01 0203 and.w r2, r1, r3 - 8015b86: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8015b8a: f1c3 0306 rsb r3, r3, #6 - 8015b8e: fa42 f303 asr.w r3, r2, r3 - 8015b92: b29b uxth r3, r3 - 8015b94: 82bb strh r3, [r7, #20] - 8015b96: e079 b.n 8015c8c + 8015ad6: 6bfa ldr r2, [r7, #60] ; 0x3c + 8015ad8: 6abb ldr r3, [r7, #40] ; 0x28 + 8015ada: 4413 add r3, r2 + 8015adc: 781b ldrb r3, [r3, #0] + 8015ade: 4619 mov r1, r3 + 8015ae0: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8015ae4: f1c3 0306 rsb r3, r3, #6 + 8015ae8: 2203 movs r2, #3 + 8015aea: fa02 f303 lsl.w r3, r2, r3 + 8015aee: ea01 0203 and.w r2, r1, r3 + 8015af2: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8015af6: f1c3 0306 rsb r3, r3, #6 + 8015afa: fa42 f303 asr.w r3, r2, r3 + 8015afe: b29b uxth r3, r3 + 8015b00: 82bb strh r3, [r7, #20] + 8015b02: e079 b.n 8015bf8 } else if(dsc->header.cf == LV_IMG_CF_INDEXED_4BIT) { - 8015b98: 68fb ldr r3, [r7, #12] - 8015b9a: 781b ldrb r3, [r3, #0] - 8015b9c: f003 031f and.w r3, r3, #31 - 8015ba0: b2db uxtb r3, r3 - 8015ba2: 2b09 cmp r3, #9 - 8015ba4: d134 bne.n 8015c10 + 8015b04: 68fb ldr r3, [r7, #12] + 8015b06: 781b ldrb r3, [r3, #0] + 8015b08: f003 031f and.w r3, r3, #31 + 8015b0c: b2db uxtb r3, r3 + 8015b0e: 2b09 cmp r3, #9 + 8015b10: d134 bne.n 8015b7c buf_u8 += 4 * 16; - 8015ba6: 6bfb ldr r3, [r7, #60] ; 0x3c - 8015ba8: 3340 adds r3, #64 ; 0x40 - 8015baa: 63fb str r3, [r7, #60] ; 0x3c + 8015b12: 6bfb ldr r3, [r7, #60] ; 0x3c + 8015b14: 3340 adds r3, #64 ; 0x40 + 8015b16: 63fb str r3, [r7, #60] ; 0x3c uint8_t bit = (x & 0x1) * 4; - 8015bac: 897b ldrh r3, [r7, #10] - 8015bae: b2db uxtb r3, r3 - 8015bb0: f003 0301 and.w r3, r3, #1 - 8015bb4: b2db uxtb r3, r3 - 8015bb6: 009b lsls r3, r3, #2 - 8015bb8: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 8015b18: 897b ldrh r3, [r7, #10] + 8015b1a: b2db uxtb r3, r3 + 8015b1c: f003 0301 and.w r3, r3, #1 + 8015b20: b2db uxtb r3, r3 + 8015b22: 009b lsls r3, r3, #2 + 8015b24: f887 3037 strb.w r3, [r7, #55] ; 0x37 x = x >> 1; - 8015bbc: f9b7 300a ldrsh.w r3, [r7, #10] - 8015bc0: 105b asrs r3, r3, #1 - 8015bc2: 817b strh r3, [r7, #10] + 8015b28: f9b7 300a ldrsh.w r3, [r7, #10] + 8015b2c: 105b asrs r3, r3, #1 + 8015b2e: 817b strh r3, [r7, #10] /*Get the current pixel. *dsc->header.w + 1 means rounding up to 2 because the lines are byte aligned *so the possible real width are 2, 4, 6 ...*/ uint32_t px = ((dsc->header.w + 1) >> 1) * y + x; - 8015bc4: 68fb ldr r3, [r7, #12] - 8015bc6: 681b ldr r3, [r3, #0] - 8015bc8: f3c3 238a ubfx r3, r3, #10, #11 - 8015bcc: b29b uxth r3, r3 - 8015bce: 3301 adds r3, #1 - 8015bd0: 105b asrs r3, r3, #1 - 8015bd2: f9b7 2008 ldrsh.w r2, [r7, #8] - 8015bd6: fb03 f202 mul.w r2, r3, r2 - 8015bda: f9b7 300a ldrsh.w r3, [r7, #10] - 8015bde: 4413 add r3, r2 - 8015be0: 633b str r3, [r7, #48] ; 0x30 + 8015b30: 68fb ldr r3, [r7, #12] + 8015b32: 681b ldr r3, [r3, #0] + 8015b34: f3c3 238a ubfx r3, r3, #10, #11 + 8015b38: b29b uxth r3, r3 + 8015b3a: 3301 adds r3, #1 + 8015b3c: 105b asrs r3, r3, #1 + 8015b3e: f9b7 2008 ldrsh.w r2, [r7, #8] + 8015b42: fb03 f202 mul.w r2, r3, r2 + 8015b46: f9b7 300a ldrsh.w r3, [r7, #10] + 8015b4a: 4413 add r3, r2 + 8015b4c: 633b str r3, [r7, #48] ; 0x30 p_color.full = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit); - 8015be2: 6bfa ldr r2, [r7, #60] ; 0x3c - 8015be4: 6b3b ldr r3, [r7, #48] ; 0x30 - 8015be6: 4413 add r3, r2 - 8015be8: 781b ldrb r3, [r3, #0] - 8015bea: 4619 mov r1, r3 - 8015bec: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 8015bf0: f1c3 0304 rsb r3, r3, #4 - 8015bf4: 220f movs r2, #15 - 8015bf6: fa02 f303 lsl.w r3, r2, r3 - 8015bfa: ea01 0203 and.w r2, r1, r3 - 8015bfe: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 8015c02: f1c3 0304 rsb r3, r3, #4 - 8015c06: fa42 f303 asr.w r3, r2, r3 - 8015c0a: b29b uxth r3, r3 - 8015c0c: 82bb strh r3, [r7, #20] - 8015c0e: e03d b.n 8015c8c + 8015b4e: 6bfa ldr r2, [r7, #60] ; 0x3c + 8015b50: 6b3b ldr r3, [r7, #48] ; 0x30 + 8015b52: 4413 add r3, r2 + 8015b54: 781b ldrb r3, [r3, #0] + 8015b56: 4619 mov r1, r3 + 8015b58: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 8015b5c: f1c3 0304 rsb r3, r3, #4 + 8015b60: 220f movs r2, #15 + 8015b62: fa02 f303 lsl.w r3, r2, r3 + 8015b66: ea01 0203 and.w r2, r1, r3 + 8015b6a: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 8015b6e: f1c3 0304 rsb r3, r3, #4 + 8015b72: fa42 f303 asr.w r3, r2, r3 + 8015b76: b29b uxth r3, r3 + 8015b78: 82bb strh r3, [r7, #20] + 8015b7a: e03d b.n 8015bf8 } else if(dsc->header.cf == LV_IMG_CF_INDEXED_8BIT) { - 8015c10: 68fb ldr r3, [r7, #12] - 8015c12: 781b ldrb r3, [r3, #0] - 8015c14: f003 031f and.w r3, r3, #31 - 8015c18: b2db uxtb r3, r3 - 8015c1a: 2b0a cmp r3, #10 - 8015c1c: d118 bne.n 8015c50 + 8015b7c: 68fb ldr r3, [r7, #12] + 8015b7e: 781b ldrb r3, [r3, #0] + 8015b80: f003 031f and.w r3, r3, #31 + 8015b84: b2db uxtb r3, r3 + 8015b86: 2b0a cmp r3, #10 + 8015b88: d118 bne.n 8015bbc buf_u8 += 4 * 256; - 8015c1e: 6bfb ldr r3, [r7, #60] ; 0x3c - 8015c20: f503 6380 add.w r3, r3, #1024 ; 0x400 - 8015c24: 63fb str r3, [r7, #60] ; 0x3c + 8015b8a: 6bfb ldr r3, [r7, #60] ; 0x3c + 8015b8c: f503 6380 add.w r3, r3, #1024 ; 0x400 + 8015b90: 63fb str r3, [r7, #60] ; 0x3c uint32_t px = dsc->header.w * y + x; - 8015c26: 68fb ldr r3, [r7, #12] - 8015c28: 681b ldr r3, [r3, #0] - 8015c2a: f3c3 238a ubfx r3, r3, #10, #11 - 8015c2e: b29b uxth r3, r3 - 8015c30: 461a mov r2, r3 - 8015c32: f9b7 3008 ldrsh.w r3, [r7, #8] - 8015c36: fb03 f202 mul.w r2, r3, r2 - 8015c3a: f9b7 300a ldrsh.w r3, [r7, #10] - 8015c3e: 4413 add r3, r2 - 8015c40: 63bb str r3, [r7, #56] ; 0x38 + 8015b92: 68fb ldr r3, [r7, #12] + 8015b94: 681b ldr r3, [r3, #0] + 8015b96: f3c3 238a ubfx r3, r3, #10, #11 + 8015b9a: b29b uxth r3, r3 + 8015b9c: 461a mov r2, r3 + 8015b9e: f9b7 3008 ldrsh.w r3, [r7, #8] + 8015ba2: fb03 f202 mul.w r2, r3, r2 + 8015ba6: f9b7 300a ldrsh.w r3, [r7, #10] + 8015baa: 4413 add r3, r2 + 8015bac: 63bb str r3, [r7, #56] ; 0x38 p_color.full = buf_u8[px]; - 8015c42: 6bfa ldr r2, [r7, #60] ; 0x3c - 8015c44: 6bbb ldr r3, [r7, #56] ; 0x38 - 8015c46: 4413 add r3, r2 - 8015c48: 781b ldrb r3, [r3, #0] - 8015c4a: b29b uxth r3, r3 - 8015c4c: 82bb strh r3, [r7, #20] - 8015c4e: e01d b.n 8015c8c + 8015bae: 6bfa ldr r2, [r7, #60] ; 0x3c + 8015bb0: 6bbb ldr r3, [r7, #56] ; 0x38 + 8015bb2: 4413 add r3, r2 + 8015bb4: 781b ldrb r3, [r3, #0] + 8015bb6: b29b uxth r3, r3 + 8015bb8: 82bb strh r3, [r7, #20] + 8015bba: e01d b.n 8015bf8 } else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT || dsc->header.cf == LV_IMG_CF_ALPHA_2BIT || - 8015c50: 68fb ldr r3, [r7, #12] - 8015c52: 781b ldrb r3, [r3, #0] - 8015c54: f003 031f and.w r3, r3, #31 - 8015c58: b2db uxtb r3, r3 - 8015c5a: 2b0b cmp r3, #11 - 8015c5c: d014 beq.n 8015c88 - 8015c5e: 68fb ldr r3, [r7, #12] - 8015c60: 781b ldrb r3, [r3, #0] - 8015c62: f003 031f and.w r3, r3, #31 - 8015c66: b2db uxtb r3, r3 - 8015c68: 2b0c cmp r3, #12 - 8015c6a: d00d beq.n 8015c88 + 8015bbc: 68fb ldr r3, [r7, #12] + 8015bbe: 781b ldrb r3, [r3, #0] + 8015bc0: f003 031f and.w r3, r3, #31 + 8015bc4: b2db uxtb r3, r3 + 8015bc6: 2b0b cmp r3, #11 + 8015bc8: d014 beq.n 8015bf4 + 8015bca: 68fb ldr r3, [r7, #12] + 8015bcc: 781b ldrb r3, [r3, #0] + 8015bce: f003 031f and.w r3, r3, #31 + 8015bd2: b2db uxtb r3, r3 + 8015bd4: 2b0c cmp r3, #12 + 8015bd6: d00d beq.n 8015bf4 dsc->header.cf == LV_IMG_CF_ALPHA_4BIT || dsc->header.cf == LV_IMG_CF_ALPHA_8BIT) { - 8015c6c: 68fb ldr r3, [r7, #12] - 8015c6e: 781b ldrb r3, [r3, #0] - 8015c70: f003 031f and.w r3, r3, #31 - 8015c74: b2db uxtb r3, r3 + 8015bd8: 68fb ldr r3, [r7, #12] + 8015bda: 781b ldrb r3, [r3, #0] + 8015bdc: f003 031f and.w r3, r3, #31 + 8015be0: b2db uxtb r3, r3 else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT || dsc->header.cf == LV_IMG_CF_ALPHA_2BIT || - 8015c76: 2b0d cmp r3, #13 - 8015c78: d006 beq.n 8015c88 + 8015be2: 2b0d cmp r3, #13 + 8015be4: d006 beq.n 8015bf4 dsc->header.cf == LV_IMG_CF_ALPHA_4BIT || dsc->header.cf == LV_IMG_CF_ALPHA_8BIT) { - 8015c7a: 68fb ldr r3, [r7, #12] - 8015c7c: 781b ldrb r3, [r3, #0] - 8015c7e: f003 031f and.w r3, r3, #31 - 8015c82: b2db uxtb r3, r3 - 8015c84: 2b0e cmp r3, #14 - 8015c86: d101 bne.n 8015c8c + 8015be6: 68fb ldr r3, [r7, #12] + 8015be8: 781b ldrb r3, [r3, #0] + 8015bea: f003 031f and.w r3, r3, #31 + 8015bee: b2db uxtb r3, r3 + 8015bf0: 2b0e cmp r3, #14 + 8015bf2: d101 bne.n 8015bf8 p_color = color; - 8015c88: 88bb ldrh r3, [r7, #4] - 8015c8a: 82bb strh r3, [r7, #20] + 8015bf4: 88bb ldrh r3, [r7, #4] + 8015bf6: 82bb strh r3, [r7, #20] } return p_color; - 8015c8c: 8abb ldrh r3, [r7, #20] + 8015bf8: 8abb ldrh r3, [r7, #20] } - 8015c8e: 4618 mov r0, r3 - 8015c90: 3740 adds r7, #64 ; 0x40 - 8015c92: 46bd mov sp, r7 - 8015c94: bd80 pop {r7, pc} + 8015bfa: 4618 mov r0, r3 + 8015bfc: 3740 adds r7, #64 ; 0x40 + 8015bfe: 46bd mov sp, r7 + 8015c00: bd80 pop {r7, pc} ... -08015c98 : +08015c04 : * @param y x coordinate of the point to set * @param safe true: check out of bounds * @return alpha value of the point */ lv_opa_t lv_img_buf_get_px_alpha(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y) { - 8015c98: b490 push {r4, r7} - 8015c9a: b092 sub sp, #72 ; 0x48 - 8015c9c: af00 add r7, sp, #0 - 8015c9e: 6078 str r0, [r7, #4] - 8015ca0: 460b mov r3, r1 - 8015ca2: 807b strh r3, [r7, #2] - 8015ca4: 4613 mov r3, r2 - 8015ca6: 803b strh r3, [r7, #0] + 8015c04: b490 push {r4, r7} + 8015c06: b092 sub sp, #72 ; 0x48 + 8015c08: af00 add r7, sp, #0 + 8015c0a: 6078 str r0, [r7, #4] + 8015c0c: 460b mov r3, r1 + 8015c0e: 807b strh r3, [r7, #2] + 8015c10: 4613 mov r3, r2 + 8015c12: 803b strh r3, [r7, #0] uint8_t * buf_u8 = (uint8_t *)dsc->data; - 8015ca8: 687b ldr r3, [r7, #4] - 8015caa: 689b ldr r3, [r3, #8] - 8015cac: 647b str r3, [r7, #68] ; 0x44 + 8015c14: 687b ldr r3, [r7, #4] + 8015c16: 689b ldr r3, [r3, #8] + 8015c18: 647b str r3, [r7, #68] ; 0x44 if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) { - 8015cae: 687b ldr r3, [r7, #4] - 8015cb0: 781b ldrb r3, [r3, #0] - 8015cb2: f003 031f and.w r3, r3, #31 - 8015cb6: b2db uxtb r3, r3 - 8015cb8: 2b05 cmp r3, #5 - 8015cba: d116 bne.n 8015cea + 8015c1a: 687b ldr r3, [r7, #4] + 8015c1c: 781b ldrb r3, [r3, #0] + 8015c1e: f003 031f and.w r3, r3, #31 + 8015c22: b2db uxtb r3, r3 + 8015c24: 2b05 cmp r3, #5 + 8015c26: d116 bne.n 8015c56 uint32_t px = dsc->header.w * y * LV_IMG_PX_SIZE_ALPHA_BYTE + x * LV_IMG_PX_SIZE_ALPHA_BYTE; - 8015cbc: 687b ldr r3, [r7, #4] - 8015cbe: 681b ldr r3, [r3, #0] - 8015cc0: f3c3 238a ubfx r3, r3, #10, #11 - 8015cc4: b29b uxth r3, r3 - 8015cc6: 461a mov r2, r3 - 8015cc8: f9b7 3000 ldrsh.w r3, [r7] - 8015ccc: fb03 f202 mul.w r2, r3, r2 - 8015cd0: f9b7 3002 ldrsh.w r3, [r7, #2] - 8015cd4: 441a add r2, r3 - 8015cd6: 4613 mov r3, r2 - 8015cd8: 005b lsls r3, r3, #1 - 8015cda: 4413 add r3, r2 - 8015cdc: 623b str r3, [r7, #32] + 8015c28: 687b ldr r3, [r7, #4] + 8015c2a: 681b ldr r3, [r3, #0] + 8015c2c: f3c3 238a ubfx r3, r3, #10, #11 + 8015c30: b29b uxth r3, r3 + 8015c32: 461a mov r2, r3 + 8015c34: f9b7 3000 ldrsh.w r3, [r7] + 8015c38: fb03 f202 mul.w r2, r3, r2 + 8015c3c: f9b7 3002 ldrsh.w r3, [r7, #2] + 8015c40: 441a add r2, r3 + 8015c42: 4613 mov r3, r2 + 8015c44: 005b lsls r3, r3, #1 + 8015c46: 4413 add r3, r2 + 8015c48: 623b str r3, [r7, #32] return buf_u8[px + LV_IMG_PX_SIZE_ALPHA_BYTE - 1]; - 8015cde: 6a3b ldr r3, [r7, #32] - 8015ce0: 3302 adds r3, #2 - 8015ce2: 6c7a ldr r2, [r7, #68] ; 0x44 - 8015ce4: 4413 add r3, r2 - 8015ce6: 781b ldrb r3, [r3, #0] - 8015ce8: e0de b.n 8015ea8 + 8015c4a: 6a3b ldr r3, [r7, #32] + 8015c4c: 3302 adds r3, #2 + 8015c4e: 6c7a ldr r2, [r7, #68] ; 0x44 + 8015c50: 4413 add r3, r2 + 8015c52: 781b ldrb r3, [r3, #0] + 8015c54: e0de b.n 8015e14 } else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT) { - 8015cea: 687b ldr r3, [r7, #4] - 8015cec: 781b ldrb r3, [r3, #0] - 8015cee: f003 031f and.w r3, r3, #31 - 8015cf2: b2db uxtb r3, r3 - 8015cf4: 2b0b cmp r3, #11 - 8015cf6: d136 bne.n 8015d66 + 8015c56: 687b ldr r3, [r7, #4] + 8015c58: 781b ldrb r3, [r3, #0] + 8015c5a: f003 031f and.w r3, r3, #31 + 8015c5e: b2db uxtb r3, r3 + 8015c60: 2b0b cmp r3, #11 + 8015c62: d136 bne.n 8015cd2 uint8_t bit = x & 0x7; - 8015cf8: 887b ldrh r3, [r7, #2] - 8015cfa: b2db uxtb r3, r3 - 8015cfc: f003 0307 and.w r3, r3, #7 - 8015d00: f887 302e strb.w r3, [r7, #46] ; 0x2e + 8015c64: 887b ldrh r3, [r7, #2] + 8015c66: b2db uxtb r3, r3 + 8015c68: f003 0307 and.w r3, r3, #7 + 8015c6c: f887 302e strb.w r3, [r7, #46] ; 0x2e x = x >> 3; - 8015d04: f9b7 3002 ldrsh.w r3, [r7, #2] - 8015d08: 10db asrs r3, r3, #3 - 8015d0a: 807b strh r3, [r7, #2] + 8015c70: f9b7 3002 ldrsh.w r3, [r7, #2] + 8015c74: 10db asrs r3, r3, #3 + 8015c76: 807b strh r3, [r7, #2] /*Get the current pixel. *dsc->header.w + 7 means rounding up to 8 because the lines are byte aligned *so the possible real width are 8 ,16, 24 ...*/ uint32_t px = ((dsc->header.w + 7) >> 3) * y + x; - 8015d0c: 687b ldr r3, [r7, #4] - 8015d0e: 681b ldr r3, [r3, #0] - 8015d10: f3c3 238a ubfx r3, r3, #10, #11 - 8015d14: b29b uxth r3, r3 - 8015d16: 3307 adds r3, #7 - 8015d18: 10db asrs r3, r3, #3 - 8015d1a: f9b7 2000 ldrsh.w r2, [r7] - 8015d1e: fb03 f202 mul.w r2, r3, r2 - 8015d22: f9b7 3002 ldrsh.w r3, [r7, #2] - 8015d26: 4413 add r3, r2 - 8015d28: 62bb str r3, [r7, #40] ; 0x28 + 8015c78: 687b ldr r3, [r7, #4] + 8015c7a: 681b ldr r3, [r3, #0] + 8015c7c: f3c3 238a ubfx r3, r3, #10, #11 + 8015c80: b29b uxth r3, r3 + 8015c82: 3307 adds r3, #7 + 8015c84: 10db asrs r3, r3, #3 + 8015c86: f9b7 2000 ldrsh.w r2, [r7] + 8015c8a: fb03 f202 mul.w r2, r3, r2 + 8015c8e: f9b7 3002 ldrsh.w r3, [r7, #2] + 8015c92: 4413 add r3, r2 + 8015c94: 62bb str r3, [r7, #40] ; 0x28 uint8_t px_opa = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit); - 8015d2a: 6c7a ldr r2, [r7, #68] ; 0x44 - 8015d2c: 6abb ldr r3, [r7, #40] ; 0x28 - 8015d2e: 4413 add r3, r2 - 8015d30: 781b ldrb r3, [r3, #0] - 8015d32: 4619 mov r1, r3 - 8015d34: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 8015d38: f1c3 0307 rsb r3, r3, #7 - 8015d3c: 2201 movs r2, #1 - 8015d3e: fa02 f303 lsl.w r3, r2, r3 - 8015d42: ea01 0203 and.w r2, r1, r3 - 8015d46: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 8015d4a: f1c3 0307 rsb r3, r3, #7 - 8015d4e: fa42 f303 asr.w r3, r2, r3 - 8015d52: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8015c96: 6c7a ldr r2, [r7, #68] ; 0x44 + 8015c98: 6abb ldr r3, [r7, #40] ; 0x28 + 8015c9a: 4413 add r3, r2 + 8015c9c: 781b ldrb r3, [r3, #0] + 8015c9e: 4619 mov r1, r3 + 8015ca0: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 8015ca4: f1c3 0307 rsb r3, r3, #7 + 8015ca8: 2201 movs r2, #1 + 8015caa: fa02 f303 lsl.w r3, r2, r3 + 8015cae: ea01 0203 and.w r2, r1, r3 + 8015cb2: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 8015cb6: f1c3 0307 rsb r3, r3, #7 + 8015cba: fa42 f303 asr.w r3, r2, r3 + 8015cbe: f887 3027 strb.w r3, [r7, #39] ; 0x27 return px_opa ? LV_OPA_TRANSP : LV_OPA_COVER; - 8015d56: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8015d5a: 2b00 cmp r3, #0 - 8015d5c: d001 beq.n 8015d62 - 8015d5e: 2300 movs r3, #0 - 8015d60: e0a2 b.n 8015ea8 - 8015d62: 23ff movs r3, #255 ; 0xff - 8015d64: e0a0 b.n 8015ea8 + 8015cc2: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8015cc6: 2b00 cmp r3, #0 + 8015cc8: d001 beq.n 8015cce + 8015cca: 2300 movs r3, #0 + 8015ccc: e0a2 b.n 8015e14 + 8015cce: 23ff movs r3, #255 ; 0xff + 8015cd0: e0a0 b.n 8015e14 } else if(dsc->header.cf == LV_IMG_CF_ALPHA_2BIT) { - 8015d66: 687b ldr r3, [r7, #4] - 8015d68: 781b ldrb r3, [r3, #0] - 8015d6a: f003 031f and.w r3, r3, #31 - 8015d6e: b2db uxtb r3, r3 - 8015d70: 2b0c cmp r3, #12 - 8015d72: d139 bne.n 8015de8 + 8015cd2: 687b ldr r3, [r7, #4] + 8015cd4: 781b ldrb r3, [r3, #0] + 8015cd6: f003 031f and.w r3, r3, #31 + 8015cda: b2db uxtb r3, r3 + 8015cdc: 2b0c cmp r3, #12 + 8015cde: d139 bne.n 8015d54 const uint8_t opa_table[4] = {0, 85, 170, 255}; /*Opacity mapping with bpp = 2*/ - 8015d74: 4b4f ldr r3, [pc, #316] ; (8015eb4 ) - 8015d76: 61fb str r3, [r7, #28] + 8015ce0: 4b4f ldr r3, [pc, #316] ; (8015e20 ) + 8015ce2: 61fb str r3, [r7, #28] uint8_t bit = (x & 0x3) * 2; - 8015d78: 887b ldrh r3, [r7, #2] - 8015d7a: b2db uxtb r3, r3 - 8015d7c: f003 0303 and.w r3, r3, #3 - 8015d80: b2db uxtb r3, r3 - 8015d82: 005b lsls r3, r3, #1 - 8015d84: f887 3036 strb.w r3, [r7, #54] ; 0x36 + 8015ce4: 887b ldrh r3, [r7, #2] + 8015ce6: b2db uxtb r3, r3 + 8015ce8: f003 0303 and.w r3, r3, #3 + 8015cec: b2db uxtb r3, r3 + 8015cee: 005b lsls r3, r3, #1 + 8015cf0: f887 3036 strb.w r3, [r7, #54] ; 0x36 x = x >> 2; - 8015d88: f9b7 3002 ldrsh.w r3, [r7, #2] - 8015d8c: 109b asrs r3, r3, #2 - 8015d8e: 807b strh r3, [r7, #2] + 8015cf4: f9b7 3002 ldrsh.w r3, [r7, #2] + 8015cf8: 109b asrs r3, r3, #2 + 8015cfa: 807b strh r3, [r7, #2] /*Get the current pixel. *dsc->header.w + 4 means rounding up to 8 because the lines are byte aligned *so the possible real width are 4 ,8, 12 ...*/ uint32_t px = ((dsc->header.w + 3) >> 2) * y + x; - 8015d90: 687b ldr r3, [r7, #4] - 8015d92: 681b ldr r3, [r3, #0] - 8015d94: f3c3 238a ubfx r3, r3, #10, #11 - 8015d98: b29b uxth r3, r3 - 8015d9a: 3303 adds r3, #3 - 8015d9c: 109b asrs r3, r3, #2 - 8015d9e: f9b7 2000 ldrsh.w r2, [r7] - 8015da2: fb03 f202 mul.w r2, r3, r2 - 8015da6: f9b7 3002 ldrsh.w r3, [r7, #2] - 8015daa: 4413 add r3, r2 - 8015dac: 633b str r3, [r7, #48] ; 0x30 + 8015cfc: 687b ldr r3, [r7, #4] + 8015cfe: 681b ldr r3, [r3, #0] + 8015d00: f3c3 238a ubfx r3, r3, #10, #11 + 8015d04: b29b uxth r3, r3 + 8015d06: 3303 adds r3, #3 + 8015d08: 109b asrs r3, r3, #2 + 8015d0a: f9b7 2000 ldrsh.w r2, [r7] + 8015d0e: fb03 f202 mul.w r2, r3, r2 + 8015d12: f9b7 3002 ldrsh.w r3, [r7, #2] + 8015d16: 4413 add r3, r2 + 8015d18: 633b str r3, [r7, #48] ; 0x30 uint8_t px_opa = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit); - 8015dae: 6c7a ldr r2, [r7, #68] ; 0x44 - 8015db0: 6b3b ldr r3, [r7, #48] ; 0x30 - 8015db2: 4413 add r3, r2 - 8015db4: 781b ldrb r3, [r3, #0] - 8015db6: 4619 mov r1, r3 - 8015db8: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 - 8015dbc: f1c3 0306 rsb r3, r3, #6 - 8015dc0: 2203 movs r2, #3 - 8015dc2: fa02 f303 lsl.w r3, r2, r3 - 8015dc6: ea01 0203 and.w r2, r1, r3 - 8015dca: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 - 8015dce: f1c3 0306 rsb r3, r3, #6 - 8015dd2: fa42 f303 asr.w r3, r2, r3 - 8015dd6: f887 302f strb.w r3, [r7, #47] ; 0x2f + 8015d1a: 6c7a ldr r2, [r7, #68] ; 0x44 + 8015d1c: 6b3b ldr r3, [r7, #48] ; 0x30 + 8015d1e: 4413 add r3, r2 + 8015d20: 781b ldrb r3, [r3, #0] + 8015d22: 4619 mov r1, r3 + 8015d24: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 + 8015d28: f1c3 0306 rsb r3, r3, #6 + 8015d2c: 2203 movs r2, #3 + 8015d2e: fa02 f303 lsl.w r3, r2, r3 + 8015d32: ea01 0203 and.w r2, r1, r3 + 8015d36: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 + 8015d3a: f1c3 0306 rsb r3, r3, #6 + 8015d3e: fa42 f303 asr.w r3, r2, r3 + 8015d42: f887 302f strb.w r3, [r7, #47] ; 0x2f return opa_table[px_opa]; - 8015dda: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8015dde: 3348 adds r3, #72 ; 0x48 - 8015de0: 443b add r3, r7 - 8015de2: f813 3c2c ldrb.w r3, [r3, #-44] - 8015de6: e05f b.n 8015ea8 + 8015d46: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8015d4a: 3348 adds r3, #72 ; 0x48 + 8015d4c: 443b add r3, r7 + 8015d4e: f813 3c2c ldrb.w r3, [r3, #-44] + 8015d52: e05f b.n 8015e14 } else if(dsc->header.cf == LV_IMG_CF_ALPHA_4BIT) { - 8015de8: 687b ldr r3, [r7, #4] - 8015dea: 781b ldrb r3, [r3, #0] - 8015dec: f003 031f and.w r3, r3, #31 - 8015df0: b2db uxtb r3, r3 - 8015df2: 2b0d cmp r3, #13 - 8015df4: d13d bne.n 8015e72 + 8015d54: 687b ldr r3, [r7, #4] + 8015d56: 781b ldrb r3, [r3, #0] + 8015d58: f003 031f and.w r3, r3, #31 + 8015d5c: b2db uxtb r3, r3 + 8015d5e: 2b0d cmp r3, #13 + 8015d60: d13d bne.n 8015dde const uint8_t opa_table[16] = {0, 17, 34, 51, /*Opacity mapping with bpp = 4*/ - 8015df6: 4b30 ldr r3, [pc, #192] ; (8015eb8 ) - 8015df8: f107 040c add.w r4, r7, #12 - 8015dfc: cb0f ldmia r3, {r0, r1, r2, r3} - 8015dfe: e884 000f stmia.w r4, {r0, r1, r2, r3} + 8015d62: 4b30 ldr r3, [pc, #192] ; (8015e24 ) + 8015d64: f107 040c add.w r4, r7, #12 + 8015d68: cb0f ldmia r3, {r0, r1, r2, r3} + 8015d6a: e884 000f stmia.w r4, {r0, r1, r2, r3} 68, 85, 102, 119, 136, 153, 170, 187, 204, 221, 238, 255 }; uint8_t bit = (x & 0x1) * 4; - 8015e02: 887b ldrh r3, [r7, #2] - 8015e04: b2db uxtb r3, r3 - 8015e06: f003 0301 and.w r3, r3, #1 - 8015e0a: b2db uxtb r3, r3 - 8015e0c: 009b lsls r3, r3, #2 - 8015e0e: f887 303f strb.w r3, [r7, #63] ; 0x3f + 8015d6e: 887b ldrh r3, [r7, #2] + 8015d70: b2db uxtb r3, r3 + 8015d72: f003 0301 and.w r3, r3, #1 + 8015d76: b2db uxtb r3, r3 + 8015d78: 009b lsls r3, r3, #2 + 8015d7a: f887 303f strb.w r3, [r7, #63] ; 0x3f x = x >> 1; - 8015e12: f9b7 3002 ldrsh.w r3, [r7, #2] - 8015e16: 105b asrs r3, r3, #1 - 8015e18: 807b strh r3, [r7, #2] + 8015d7e: f9b7 3002 ldrsh.w r3, [r7, #2] + 8015d82: 105b asrs r3, r3, #1 + 8015d84: 807b strh r3, [r7, #2] /*Get the current pixel. *dsc->header.w + 1 means rounding up to 8 because the lines are byte aligned *so the possible real width are 2 ,4, 6 ...*/ uint32_t px = ((dsc->header.w + 1) >> 1) * y + x; - 8015e1a: 687b ldr r3, [r7, #4] - 8015e1c: 681b ldr r3, [r3, #0] - 8015e1e: f3c3 238a ubfx r3, r3, #10, #11 - 8015e22: b29b uxth r3, r3 - 8015e24: 3301 adds r3, #1 - 8015e26: 105b asrs r3, r3, #1 - 8015e28: f9b7 2000 ldrsh.w r2, [r7] - 8015e2c: fb03 f202 mul.w r2, r3, r2 - 8015e30: f9b7 3002 ldrsh.w r3, [r7, #2] - 8015e34: 4413 add r3, r2 - 8015e36: 63bb str r3, [r7, #56] ; 0x38 + 8015d86: 687b ldr r3, [r7, #4] + 8015d88: 681b ldr r3, [r3, #0] + 8015d8a: f3c3 238a ubfx r3, r3, #10, #11 + 8015d8e: b29b uxth r3, r3 + 8015d90: 3301 adds r3, #1 + 8015d92: 105b asrs r3, r3, #1 + 8015d94: f9b7 2000 ldrsh.w r2, [r7] + 8015d98: fb03 f202 mul.w r2, r3, r2 + 8015d9c: f9b7 3002 ldrsh.w r3, [r7, #2] + 8015da0: 4413 add r3, r2 + 8015da2: 63bb str r3, [r7, #56] ; 0x38 uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit); - 8015e38: 6c7a ldr r2, [r7, #68] ; 0x44 - 8015e3a: 6bbb ldr r3, [r7, #56] ; 0x38 - 8015e3c: 4413 add r3, r2 - 8015e3e: 781b ldrb r3, [r3, #0] - 8015e40: 4619 mov r1, r3 - 8015e42: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 8015e46: f1c3 0304 rsb r3, r3, #4 - 8015e4a: 220f movs r2, #15 - 8015e4c: fa02 f303 lsl.w r3, r2, r3 - 8015e50: ea01 0203 and.w r2, r1, r3 - 8015e54: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 8015e58: f1c3 0304 rsb r3, r3, #4 - 8015e5c: fa42 f303 asr.w r3, r2, r3 - 8015e60: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 8015da4: 6c7a ldr r2, [r7, #68] ; 0x44 + 8015da6: 6bbb ldr r3, [r7, #56] ; 0x38 + 8015da8: 4413 add r3, r2 + 8015daa: 781b ldrb r3, [r3, #0] + 8015dac: 4619 mov r1, r3 + 8015dae: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 8015db2: f1c3 0304 rsb r3, r3, #4 + 8015db6: 220f movs r2, #15 + 8015db8: fa02 f303 lsl.w r3, r2, r3 + 8015dbc: ea01 0203 and.w r2, r1, r3 + 8015dc0: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 8015dc4: f1c3 0304 rsb r3, r3, #4 + 8015dc8: fa42 f303 asr.w r3, r2, r3 + 8015dcc: f887 3037 strb.w r3, [r7, #55] ; 0x37 return opa_table[px_opa]; - 8015e64: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 8015e68: 3348 adds r3, #72 ; 0x48 - 8015e6a: 443b add r3, r7 - 8015e6c: f813 3c3c ldrb.w r3, [r3, #-60] - 8015e70: e01a b.n 8015ea8 + 8015dd0: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 8015dd4: 3348 adds r3, #72 ; 0x48 + 8015dd6: 443b add r3, r7 + 8015dd8: f813 3c3c ldrb.w r3, [r3, #-60] + 8015ddc: e01a b.n 8015e14 } else if(dsc->header.cf == LV_IMG_CF_ALPHA_8BIT) { - 8015e72: 687b ldr r3, [r7, #4] - 8015e74: 781b ldrb r3, [r3, #0] - 8015e76: f003 031f and.w r3, r3, #31 - 8015e7a: b2db uxtb r3, r3 - 8015e7c: 2b0e cmp r3, #14 - 8015e7e: d112 bne.n 8015ea6 + 8015dde: 687b ldr r3, [r7, #4] + 8015de0: 781b ldrb r3, [r3, #0] + 8015de2: f003 031f and.w r3, r3, #31 + 8015de6: b2db uxtb r3, r3 + 8015de8: 2b0e cmp r3, #14 + 8015dea: d112 bne.n 8015e12 uint32_t px = dsc->header.w * y + x; - 8015e80: 687b ldr r3, [r7, #4] - 8015e82: 681b ldr r3, [r3, #0] - 8015e84: f3c3 238a ubfx r3, r3, #10, #11 - 8015e88: b29b uxth r3, r3 - 8015e8a: 461a mov r2, r3 - 8015e8c: f9b7 3000 ldrsh.w r3, [r7] - 8015e90: fb03 f202 mul.w r2, r3, r2 - 8015e94: f9b7 3002 ldrsh.w r3, [r7, #2] - 8015e98: 4413 add r3, r2 - 8015e9a: 643b str r3, [r7, #64] ; 0x40 + 8015dec: 687b ldr r3, [r7, #4] + 8015dee: 681b ldr r3, [r3, #0] + 8015df0: f3c3 238a ubfx r3, r3, #10, #11 + 8015df4: b29b uxth r3, r3 + 8015df6: 461a mov r2, r3 + 8015df8: f9b7 3000 ldrsh.w r3, [r7] + 8015dfc: fb03 f202 mul.w r2, r3, r2 + 8015e00: f9b7 3002 ldrsh.w r3, [r7, #2] + 8015e04: 4413 add r3, r2 + 8015e06: 643b str r3, [r7, #64] ; 0x40 return buf_u8[px]; - 8015e9c: 6c7a ldr r2, [r7, #68] ; 0x44 - 8015e9e: 6c3b ldr r3, [r7, #64] ; 0x40 - 8015ea0: 4413 add r3, r2 - 8015ea2: 781b ldrb r3, [r3, #0] - 8015ea4: e000 b.n 8015ea8 + 8015e08: 6c7a ldr r2, [r7, #68] ; 0x44 + 8015e0a: 6c3b ldr r3, [r7, #64] ; 0x40 + 8015e0c: 4413 add r3, r2 + 8015e0e: 781b ldrb r3, [r3, #0] + 8015e10: e000 b.n 8015e14 } return LV_OPA_COVER; - 8015ea6: 23ff movs r3, #255 ; 0xff + 8015e12: 23ff movs r3, #255 ; 0xff } - 8015ea8: 4618 mov r0, r3 - 8015eaa: 3748 adds r7, #72 ; 0x48 - 8015eac: 46bd mov sp, r7 - 8015eae: bc90 pop {r4, r7} - 8015eb0: 4770 bx lr - 8015eb2: bf00 nop - 8015eb4: ffaa5500 .word 0xffaa5500 - 8015eb8: 08046c2c .word 0x08046c2c + 8015e14: 4618 mov r0, r3 + 8015e16: 3748 adds r7, #72 ; 0x48 + 8015e18: 46bd mov sp, r7 + 8015e1a: bc90 pop {r4, r7} + 8015e1c: 4770 bx lr + 8015e1e: bf00 nop + 8015e20: ffaa5500 .word 0xffaa5500 + 8015e24: 08046b84 .word 0x08046b84 -08015ebc <_lv_img_buf_transform_init>: +08015e28 <_lv_img_buf_transform_init>: /** * Initialize a descriptor to transform an image * @param dsc pointer to an `lv_img_transform_dsc_t` variable whose `cfg` field is initialized */ void _lv_img_buf_transform_init(lv_img_transform_dsc_t * dsc) { - 8015ebc: b580 push {r7, lr} - 8015ebe: b08a sub sp, #40 ; 0x28 - 8015ec0: af00 add r7, sp, #0 - 8015ec2: 6078 str r0, [r7, #4] + 8015e28: b580 push {r7, lr} + 8015e2a: b08a sub sp, #40 ; 0x28 + 8015e2c: af00 add r7, sp, #0 + 8015e2e: 6078 str r0, [r7, #4] dsc->tmp.pivot_x_256 = dsc->cfg.pivot_x * 256; - 8015ec4: 687b ldr r3, [r7, #4] - 8015ec6: f9b3 3008 ldrsh.w r3, [r3, #8] - 8015eca: 021a lsls r2, r3, #8 - 8015ecc: 687b ldr r3, [r7, #4] - 8015ece: 625a str r2, [r3, #36] ; 0x24 + 8015e30: 687b ldr r3, [r7, #4] + 8015e32: f9b3 3008 ldrsh.w r3, [r3, #8] + 8015e36: 021a lsls r2, r3, #8 + 8015e38: 687b ldr r3, [r7, #4] + 8015e3a: 625a str r2, [r3, #36] ; 0x24 dsc->tmp.pivot_y_256 = dsc->cfg.pivot_y * 256; - 8015ed0: 687b ldr r3, [r7, #4] - 8015ed2: f9b3 300a ldrsh.w r3, [r3, #10] - 8015ed6: 021a lsls r2, r3, #8 - 8015ed8: 687b ldr r3, [r7, #4] - 8015eda: 629a str r2, [r3, #40] ; 0x28 + 8015e3c: 687b ldr r3, [r7, #4] + 8015e3e: f9b3 300a ldrsh.w r3, [r3, #10] + 8015e42: 021a lsls r2, r3, #8 + 8015e44: 687b ldr r3, [r7, #4] + 8015e46: 629a str r2, [r3, #40] ; 0x28 int32_t angle_low = dsc->cfg.angle / 10; - 8015edc: 687b ldr r3, [r7, #4] - 8015ede: f9b3 300c ldrsh.w r3, [r3, #12] - 8015ee2: 4a74 ldr r2, [pc, #464] ; (80160b4 <_lv_img_buf_transform_init+0x1f8>) - 8015ee4: fb82 1203 smull r1, r2, r2, r3 - 8015ee8: 1092 asrs r2, r2, #2 - 8015eea: 17db asrs r3, r3, #31 - 8015eec: 1ad3 subs r3, r2, r3 - 8015eee: b21b sxth r3, r3 - 8015ef0: 627b str r3, [r7, #36] ; 0x24 + 8015e48: 687b ldr r3, [r7, #4] + 8015e4a: f9b3 300c ldrsh.w r3, [r3, #12] + 8015e4e: 4a74 ldr r2, [pc, #464] ; (8016020 <_lv_img_buf_transform_init+0x1f8>) + 8015e50: fb82 1203 smull r1, r2, r2, r3 + 8015e54: 1092 asrs r2, r2, #2 + 8015e56: 17db asrs r3, r3, #31 + 8015e58: 1ad3 subs r3, r2, r3 + 8015e5a: b21b sxth r3, r3 + 8015e5c: 627b str r3, [r7, #36] ; 0x24 int32_t angle_high = angle_low + 1; - 8015ef2: 6a7b ldr r3, [r7, #36] ; 0x24 - 8015ef4: 3301 adds r3, #1 - 8015ef6: 623b str r3, [r7, #32] + 8015e5e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8015e60: 3301 adds r3, #1 + 8015e62: 623b str r3, [r7, #32] int32_t angle_rem = dsc->cfg.angle - (angle_low * 10); - 8015ef8: 687b ldr r3, [r7, #4] - 8015efa: f9b3 300c ldrsh.w r3, [r3, #12] - 8015efe: 4619 mov r1, r3 - 8015f00: 6a7b ldr r3, [r7, #36] ; 0x24 - 8015f02: f06f 0209 mvn.w r2, #9 - 8015f06: fb02 f303 mul.w r3, r2, r3 - 8015f0a: 440b add r3, r1 - 8015f0c: 61fb str r3, [r7, #28] + 8015e64: 687b ldr r3, [r7, #4] + 8015e66: f9b3 300c ldrsh.w r3, [r3, #12] + 8015e6a: 4619 mov r1, r3 + 8015e6c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8015e6e: f06f 0209 mvn.w r2, #9 + 8015e72: fb02 f303 mul.w r3, r2, r3 + 8015e76: 440b add r3, r1 + 8015e78: 61fb str r3, [r7, #28] int32_t s1 = lv_trigo_sin(-angle_low); - 8015f0e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8015f10: b29b uxth r3, r3 - 8015f12: 425b negs r3, r3 - 8015f14: b29b uxth r3, r3 - 8015f16: b21b sxth r3, r3 - 8015f18: 4618 mov r0, r3 - 8015f1a: f01c fad7 bl 80324cc - 8015f1e: 4603 mov r3, r0 - 8015f20: 61bb str r3, [r7, #24] + 8015e7a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8015e7c: b29b uxth r3, r3 + 8015e7e: 425b negs r3, r3 + 8015e80: b29b uxth r3, r3 + 8015e82: b21b sxth r3, r3 + 8015e84: 4618 mov r0, r3 + 8015e86: f01c fad7 bl 8032438 + 8015e8a: 4603 mov r3, r0 + 8015e8c: 61bb str r3, [r7, #24] int32_t s2 = lv_trigo_sin(-angle_high); - 8015f22: 6a3b ldr r3, [r7, #32] - 8015f24: b29b uxth r3, r3 - 8015f26: 425b negs r3, r3 - 8015f28: b29b uxth r3, r3 - 8015f2a: b21b sxth r3, r3 - 8015f2c: 4618 mov r0, r3 - 8015f2e: f01c facd bl 80324cc - 8015f32: 4603 mov r3, r0 - 8015f34: 617b str r3, [r7, #20] + 8015e8e: 6a3b ldr r3, [r7, #32] + 8015e90: b29b uxth r3, r3 + 8015e92: 425b negs r3, r3 + 8015e94: b29b uxth r3, r3 + 8015e96: b21b sxth r3, r3 + 8015e98: 4618 mov r0, r3 + 8015e9a: f01c facd bl 8032438 + 8015e9e: 4603 mov r3, r0 + 8015ea0: 617b str r3, [r7, #20] int32_t c1 = lv_trigo_sin(-angle_low + 90); - 8015f36: 6a7b ldr r3, [r7, #36] ; 0x24 - 8015f38: b29b uxth r3, r3 - 8015f3a: f1c3 035a rsb r3, r3, #90 ; 0x5a - 8015f3e: b29b uxth r3, r3 - 8015f40: b21b sxth r3, r3 - 8015f42: 4618 mov r0, r3 - 8015f44: f01c fac2 bl 80324cc - 8015f48: 4603 mov r3, r0 - 8015f4a: 613b str r3, [r7, #16] + 8015ea2: 6a7b ldr r3, [r7, #36] ; 0x24 + 8015ea4: b29b uxth r3, r3 + 8015ea6: f1c3 035a rsb r3, r3, #90 ; 0x5a + 8015eaa: b29b uxth r3, r3 + 8015eac: b21b sxth r3, r3 + 8015eae: 4618 mov r0, r3 + 8015eb0: f01c fac2 bl 8032438 + 8015eb4: 4603 mov r3, r0 + 8015eb6: 613b str r3, [r7, #16] int32_t c2 = lv_trigo_sin(-angle_high + 90); - 8015f4c: 6a3b ldr r3, [r7, #32] - 8015f4e: b29b uxth r3, r3 - 8015f50: f1c3 035a rsb r3, r3, #90 ; 0x5a - 8015f54: b29b uxth r3, r3 - 8015f56: b21b sxth r3, r3 - 8015f58: 4618 mov r0, r3 - 8015f5a: f01c fab7 bl 80324cc - 8015f5e: 4603 mov r3, r0 - 8015f60: 60fb str r3, [r7, #12] + 8015eb8: 6a3b ldr r3, [r7, #32] + 8015eba: b29b uxth r3, r3 + 8015ebc: f1c3 035a rsb r3, r3, #90 ; 0x5a + 8015ec0: b29b uxth r3, r3 + 8015ec2: b21b sxth r3, r3 + 8015ec4: 4618 mov r0, r3 + 8015ec6: f01c fab7 bl 8032438 + 8015eca: 4603 mov r3, r0 + 8015ecc: 60fb str r3, [r7, #12] dsc->tmp.sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10; - 8015f62: 69fb ldr r3, [r7, #28] - 8015f64: f1c3 030a rsb r3, r3, #10 - 8015f68: 69ba ldr r2, [r7, #24] - 8015f6a: fb03 f202 mul.w r2, r3, r2 - 8015f6e: 697b ldr r3, [r7, #20] - 8015f70: 69f9 ldr r1, [r7, #28] - 8015f72: fb01 f303 mul.w r3, r1, r3 - 8015f76: 4413 add r3, r2 - 8015f78: 4a4e ldr r2, [pc, #312] ; (80160b4 <_lv_img_buf_transform_init+0x1f8>) - 8015f7a: fb82 1203 smull r1, r2, r2, r3 - 8015f7e: 1092 asrs r2, r2, #2 - 8015f80: 17db asrs r3, r3, #31 - 8015f82: 1ad2 subs r2, r2, r3 - 8015f84: 687b ldr r3, [r7, #4] - 8015f86: 62da str r2, [r3, #44] ; 0x2c + 8015ece: 69fb ldr r3, [r7, #28] + 8015ed0: f1c3 030a rsb r3, r3, #10 + 8015ed4: 69ba ldr r2, [r7, #24] + 8015ed6: fb03 f202 mul.w r2, r3, r2 + 8015eda: 697b ldr r3, [r7, #20] + 8015edc: 69f9 ldr r1, [r7, #28] + 8015ede: fb01 f303 mul.w r3, r1, r3 + 8015ee2: 4413 add r3, r2 + 8015ee4: 4a4e ldr r2, [pc, #312] ; (8016020 <_lv_img_buf_transform_init+0x1f8>) + 8015ee6: fb82 1203 smull r1, r2, r2, r3 + 8015eea: 1092 asrs r2, r2, #2 + 8015eec: 17db asrs r3, r3, #31 + 8015eee: 1ad2 subs r2, r2, r3 + 8015ef0: 687b ldr r3, [r7, #4] + 8015ef2: 62da str r2, [r3, #44] ; 0x2c dsc->tmp.cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10; - 8015f88: 69fb ldr r3, [r7, #28] - 8015f8a: f1c3 030a rsb r3, r3, #10 - 8015f8e: 693a ldr r2, [r7, #16] - 8015f90: fb03 f202 mul.w r2, r3, r2 - 8015f94: 68fb ldr r3, [r7, #12] - 8015f96: 69f9 ldr r1, [r7, #28] - 8015f98: fb01 f303 mul.w r3, r1, r3 - 8015f9c: 4413 add r3, r2 - 8015f9e: 4a45 ldr r2, [pc, #276] ; (80160b4 <_lv_img_buf_transform_init+0x1f8>) - 8015fa0: fb82 1203 smull r1, r2, r2, r3 - 8015fa4: 1092 asrs r2, r2, #2 - 8015fa6: 17db asrs r3, r3, #31 - 8015fa8: 1ad2 subs r2, r2, r3 - 8015faa: 687b ldr r3, [r7, #4] - 8015fac: 631a str r2, [r3, #48] ; 0x30 + 8015ef4: 69fb ldr r3, [r7, #28] + 8015ef6: f1c3 030a rsb r3, r3, #10 + 8015efa: 693a ldr r2, [r7, #16] + 8015efc: fb03 f202 mul.w r2, r3, r2 + 8015f00: 68fb ldr r3, [r7, #12] + 8015f02: 69f9 ldr r1, [r7, #28] + 8015f04: fb01 f303 mul.w r3, r1, r3 + 8015f08: 4413 add r3, r2 + 8015f0a: 4a45 ldr r2, [pc, #276] ; (8016020 <_lv_img_buf_transform_init+0x1f8>) + 8015f0c: fb82 1203 smull r1, r2, r2, r3 + 8015f10: 1092 asrs r2, r2, #2 + 8015f12: 17db asrs r3, r3, #31 + 8015f14: 1ad2 subs r2, r2, r3 + 8015f16: 687b ldr r3, [r7, #4] + 8015f18: 631a str r2, [r3, #48] ; 0x30 /*Use smaller value to avoid overflow*/ dsc->tmp.sinma = dsc->tmp.sinma >> (LV_TRIGO_SHIFT - _LV_TRANSFORM_TRIGO_SHIFT); - 8015fae: 687b ldr r3, [r7, #4] - 8015fb0: 6adb ldr r3, [r3, #44] ; 0x2c - 8015fb2: 115a asrs r2, r3, #5 - 8015fb4: 687b ldr r3, [r7, #4] - 8015fb6: 62da str r2, [r3, #44] ; 0x2c + 8015f1a: 687b ldr r3, [r7, #4] + 8015f1c: 6adb ldr r3, [r3, #44] ; 0x2c + 8015f1e: 115a asrs r2, r3, #5 + 8015f20: 687b ldr r3, [r7, #4] + 8015f22: 62da str r2, [r3, #44] ; 0x2c dsc->tmp.cosma = dsc->tmp.cosma >> (LV_TRIGO_SHIFT - _LV_TRANSFORM_TRIGO_SHIFT); - 8015fb8: 687b ldr r3, [r7, #4] - 8015fba: 6b1b ldr r3, [r3, #48] ; 0x30 - 8015fbc: 115a asrs r2, r3, #5 - 8015fbe: 687b ldr r3, [r7, #4] - 8015fc0: 631a str r2, [r3, #48] ; 0x30 + 8015f24: 687b ldr r3, [r7, #4] + 8015f26: 6b1b ldr r3, [r3, #48] ; 0x30 + 8015f28: 115a asrs r2, r3, #5 + 8015f2a: 687b ldr r3, [r7, #4] + 8015f2c: 631a str r2, [r3, #48] ; 0x30 dsc->tmp.chroma_keyed = lv_img_cf_is_chroma_keyed(dsc->cfg.cf) ? 1 : 0; - 8015fc2: 687b ldr r3, [r7, #4] - 8015fc4: 7c9b ldrb r3, [r3, #18] - 8015fc6: 4618 mov r0, r3 - 8015fc8: f7fb fe12 bl 8011bf0 - 8015fcc: 4603 mov r3, r0 - 8015fce: 4619 mov r1, r3 - 8015fd0: 687a ldr r2, [r7, #4] - 8015fd2: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 - 8015fd6: f361 0300 bfi r3, r1, #0, #1 - 8015fda: f882 3034 strb.w r3, [r2, #52] ; 0x34 + 8015f2e: 687b ldr r3, [r7, #4] + 8015f30: 7c9b ldrb r3, [r3, #18] + 8015f32: 4618 mov r0, r3 + 8015f34: f7fb fe12 bl 8011b5c + 8015f38: 4603 mov r3, r0 + 8015f3a: 4619 mov r1, r3 + 8015f3c: 687a ldr r2, [r7, #4] + 8015f3e: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 + 8015f42: f361 0300 bfi r3, r1, #0, #1 + 8015f46: f882 3034 strb.w r3, [r2, #52] ; 0x34 dsc->tmp.has_alpha = lv_img_cf_has_alpha(dsc->cfg.cf) ? 1 : 0; - 8015fde: 687b ldr r3, [r7, #4] - 8015fe0: 7c9b ldrb r3, [r3, #18] - 8015fe2: 4618 mov r0, r3 - 8015fe4: f7fb fe1c bl 8011c20 - 8015fe8: 4603 mov r3, r0 - 8015fea: 4619 mov r1, r3 - 8015fec: 687a ldr r2, [r7, #4] - 8015fee: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 - 8015ff2: f361 0341 bfi r3, r1, #1, #1 - 8015ff6: f882 3034 strb.w r3, [r2, #52] ; 0x34 + 8015f4a: 687b ldr r3, [r7, #4] + 8015f4c: 7c9b ldrb r3, [r3, #18] + 8015f4e: 4618 mov r0, r3 + 8015f50: f7fb fe1c bl 8011b8c + 8015f54: 4603 mov r3, r0 + 8015f56: 4619 mov r1, r3 + 8015f58: 687a ldr r2, [r7, #4] + 8015f5a: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 + 8015f5e: f361 0341 bfi r3, r1, #1, #1 + 8015f62: f882 3034 strb.w r3, [r2, #52] ; 0x34 if(dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR || dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR_ALPHA || - 8015ffa: 687b ldr r3, [r7, #4] - 8015ffc: 7c9b ldrb r3, [r3, #18] - 8015ffe: 2b04 cmp r3, #4 - 8016000: d007 beq.n 8016012 <_lv_img_buf_transform_init+0x156> - 8016002: 687b ldr r3, [r7, #4] - 8016004: 7c9b ldrb r3, [r3, #18] - 8016006: 2b05 cmp r3, #5 - 8016008: d003 beq.n 8016012 <_lv_img_buf_transform_init+0x156> + 8015f66: 687b ldr r3, [r7, #4] + 8015f68: 7c9b ldrb r3, [r3, #18] + 8015f6a: 2b04 cmp r3, #4 + 8015f6c: d007 beq.n 8015f7e <_lv_img_buf_transform_init+0x156> + 8015f6e: 687b ldr r3, [r7, #4] + 8015f70: 7c9b ldrb r3, [r3, #18] + 8015f72: 2b05 cmp r3, #5 + 8015f74: d003 beq.n 8015f7e <_lv_img_buf_transform_init+0x156> dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) { - 801600a: 687b ldr r3, [r7, #4] - 801600c: 7c9b ldrb r3, [r3, #18] + 8015f76: 687b ldr r3, [r7, #4] + 8015f78: 7c9b ldrb r3, [r3, #18] if(dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR || dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR_ALPHA || - 801600e: 2b06 cmp r3, #6 - 8016010: d107 bne.n 8016022 <_lv_img_buf_transform_init+0x166> + 8015f7a: 2b06 cmp r3, #6 + 8015f7c: d107 bne.n 8015f8e <_lv_img_buf_transform_init+0x166> dsc->tmp.native_color = 1; - 8016012: 687a ldr r2, [r7, #4] - 8016014: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 - 8016018: f043 0304 orr.w r3, r3, #4 - 801601c: f882 3034 strb.w r3, [r2, #52] ; 0x34 - 8016020: e006 b.n 8016030 <_lv_img_buf_transform_init+0x174> + 8015f7e: 687a ldr r2, [r7, #4] + 8015f80: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 + 8015f84: f043 0304 orr.w r3, r3, #4 + 8015f88: f882 3034 strb.w r3, [r2, #52] ; 0x34 + 8015f8c: e006 b.n 8015f9c <_lv_img_buf_transform_init+0x174> } else { dsc->tmp.native_color = 0; - 8016022: 687a ldr r2, [r7, #4] - 8016024: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 - 8016028: f36f 0382 bfc r3, #2, #1 - 801602c: f882 3034 strb.w r3, [r2, #52] ; 0x34 + 8015f8e: 687a ldr r2, [r7, #4] + 8015f90: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 + 8015f94: f36f 0382 bfc r3, #2, #1 + 8015f98: f882 3034 strb.w r3, [r2, #52] ; 0x34 } dsc->tmp.img_dsc.data = dsc->cfg.src; - 8016030: 687b ldr r3, [r7, #4] - 8016032: 681a ldr r2, [r3, #0] - 8016034: 687b ldr r3, [r7, #4] - 8016036: 621a str r2, [r3, #32] + 8015f9c: 687b ldr r3, [r7, #4] + 8015f9e: 681a ldr r2, [r3, #0] + 8015fa0: 687b ldr r3, [r7, #4] + 8015fa2: 621a str r2, [r3, #32] dsc->tmp.img_dsc.header.always_zero = 0; - 8016038: 687a ldr r2, [r7, #4] - 801603a: 7e13 ldrb r3, [r2, #24] - 801603c: f36f 1347 bfc r3, #5, #3 - 8016040: 7613 strb r3, [r2, #24] + 8015fa4: 687a ldr r2, [r7, #4] + 8015fa6: 7e13 ldrb r3, [r2, #24] + 8015fa8: f36f 1347 bfc r3, #5, #3 + 8015fac: 7613 strb r3, [r2, #24] dsc->tmp.img_dsc.header.cf = dsc->cfg.cf; - 8016042: 687b ldr r3, [r7, #4] - 8016044: 7c9b ldrb r3, [r3, #18] - 8016046: f003 031f and.w r3, r3, #31 - 801604a: b2d9 uxtb r1, r3 - 801604c: 687a ldr r2, [r7, #4] - 801604e: 7e13 ldrb r3, [r2, #24] - 8016050: f361 0304 bfi r3, r1, #0, #5 - 8016054: 7613 strb r3, [r2, #24] + 8015fae: 687b ldr r3, [r7, #4] + 8015fb0: 7c9b ldrb r3, [r3, #18] + 8015fb2: f003 031f and.w r3, r3, #31 + 8015fb6: b2d9 uxtb r1, r3 + 8015fb8: 687a ldr r2, [r7, #4] + 8015fba: 7e13 ldrb r3, [r2, #24] + 8015fbc: f361 0304 bfi r3, r1, #0, #5 + 8015fc0: 7613 strb r3, [r2, #24] dsc->tmp.img_dsc.header.w = dsc->cfg.src_w; - 8016056: 687b ldr r3, [r7, #4] - 8016058: f9b3 3004 ldrsh.w r3, [r3, #4] - 801605c: f3c3 030a ubfx r3, r3, #0, #11 - 8016060: b299 uxth r1, r3 - 8016062: 687a ldr r2, [r7, #4] - 8016064: 6993 ldr r3, [r2, #24] - 8016066: f361 2394 bfi r3, r1, #10, #11 - 801606a: 6193 str r3, [r2, #24] + 8015fc2: 687b ldr r3, [r7, #4] + 8015fc4: f9b3 3004 ldrsh.w r3, [r3, #4] + 8015fc8: f3c3 030a ubfx r3, r3, #0, #11 + 8015fcc: b299 uxth r1, r3 + 8015fce: 687a ldr r2, [r7, #4] + 8015fd0: 6993 ldr r3, [r2, #24] + 8015fd2: f361 2394 bfi r3, r1, #10, #11 + 8015fd6: 6193 str r3, [r2, #24] dsc->tmp.img_dsc.header.h = dsc->cfg.src_h; - 801606c: 687b ldr r3, [r7, #4] - 801606e: f9b3 3006 ldrsh.w r3, [r3, #6] - 8016072: f3c3 030a ubfx r3, r3, #0, #11 - 8016076: b299 uxth r1, r3 - 8016078: 687a ldr r2, [r7, #4] - 801607a: 8b53 ldrh r3, [r2, #26] - 801607c: f361 134f bfi r3, r1, #5, #11 - 8016080: 8353 strh r3, [r2, #26] + 8015fd8: 687b ldr r3, [r7, #4] + 8015fda: f9b3 3006 ldrsh.w r3, [r3, #6] + 8015fde: f3c3 030a ubfx r3, r3, #0, #11 + 8015fe2: b299 uxth r1, r3 + 8015fe4: 687a ldr r2, [r7, #4] + 8015fe6: 8b53 ldrh r3, [r2, #26] + 8015fe8: f361 134f bfi r3, r1, #5, #11 + 8015fec: 8353 strh r3, [r2, #26] /*The inverse of the zoom will be sued during the transformation * + dsc->cfg.zoom / 2 for rounding*/ dsc->tmp.zoom_inv = (((256 * 256) << _LV_ZOOM_INV_UPSCALE) + dsc->cfg.zoom / 2) / dsc->cfg.zoom; - 8016082: 687b ldr r3, [r7, #4] - 8016084: 89db ldrh r3, [r3, #14] - 8016086: 085b lsrs r3, r3, #1 - 8016088: b29b uxth r3, r3 - 801608a: f503 1300 add.w r3, r3, #2097152 ; 0x200000 - 801608e: 687a ldr r2, [r7, #4] - 8016090: 89d2 ldrh r2, [r2, #14] - 8016092: fb93 f3f2 sdiv r3, r3, r2 - 8016096: 461a mov r2, r3 - 8016098: 687b ldr r3, [r7, #4] - 801609a: 639a str r2, [r3, #56] ; 0x38 + 8015fee: 687b ldr r3, [r7, #4] + 8015ff0: 89db ldrh r3, [r3, #14] + 8015ff2: 085b lsrs r3, r3, #1 + 8015ff4: b29b uxth r3, r3 + 8015ff6: f503 1300 add.w r3, r3, #2097152 ; 0x200000 + 8015ffa: 687a ldr r2, [r7, #4] + 8015ffc: 89d2 ldrh r2, [r2, #14] + 8015ffe: fb93 f3f2 sdiv r3, r3, r2 + 8016002: 461a mov r2, r3 + 8016004: 687b ldr r3, [r7, #4] + 8016006: 639a str r2, [r3, #56] ; 0x38 dsc->res.opa = LV_OPA_COVER; - 801609c: 687b ldr r3, [r7, #4] - 801609e: 22ff movs r2, #255 ; 0xff - 80160a0: 759a strb r2, [r3, #22] + 8016008: 687b ldr r3, [r7, #4] + 801600a: 22ff movs r2, #255 ; 0xff + 801600c: 759a strb r2, [r3, #22] dsc->res.color = dsc->cfg.color; - 80160a2: 687b ldr r3, [r7, #4] - 80160a4: 687a ldr r2, [r7, #4] - 80160a6: 8a12 ldrh r2, [r2, #16] - 80160a8: 829a strh r2, [r3, #20] + 801600e: 687b ldr r3, [r7, #4] + 8016010: 687a ldr r2, [r7, #4] + 8016012: 8a12 ldrh r2, [r2, #16] + 8016014: 829a strh r2, [r3, #20] } - 80160aa: bf00 nop - 80160ac: 3728 adds r7, #40 ; 0x28 - 80160ae: 46bd mov sp, r7 - 80160b0: bd80 pop {r7, pc} - 80160b2: bf00 nop - 80160b4: 66666667 .word 0x66666667 + 8016016: bf00 nop + 8016018: 3728 adds r7, #40 ; 0x28 + 801601a: 46bd mov sp, r7 + 801601c: bd80 pop {r7, pc} + 801601e: bf00 nop + 8016020: 66666667 .word 0x66666667 -080160b8 <_lv_img_buf_get_transformed_area>: +08016024 <_lv_img_buf_get_transformed_area>: * @param zoom zoom, (256 no zoom) * @param pivot x,y pivot coordinates of rotation */ void _lv_img_buf_get_transformed_area(lv_area_t * res, lv_coord_t w, lv_coord_t h, int16_t angle, uint16_t zoom, const lv_point_t * pivot) { - 80160b8: b580 push {r7, lr} - 80160ba: b092 sub sp, #72 ; 0x48 - 80160bc: af00 add r7, sp, #0 - 80160be: 60f8 str r0, [r7, #12] - 80160c0: 4608 mov r0, r1 - 80160c2: 4611 mov r1, r2 - 80160c4: 461a mov r2, r3 - 80160c6: 4603 mov r3, r0 - 80160c8: 817b strh r3, [r7, #10] - 80160ca: 460b mov r3, r1 - 80160cc: 813b strh r3, [r7, #8] - 80160ce: 4613 mov r3, r2 - 80160d0: 80fb strh r3, [r7, #6] + 8016024: b580 push {r7, lr} + 8016026: b092 sub sp, #72 ; 0x48 + 8016028: af00 add r7, sp, #0 + 801602a: 60f8 str r0, [r7, #12] + 801602c: 4608 mov r0, r1 + 801602e: 4611 mov r1, r2 + 8016030: 461a mov r2, r3 + 8016032: 4603 mov r3, r0 + 8016034: 817b strh r3, [r7, #10] + 8016036: 460b mov r3, r1 + 8016038: 813b strh r3, [r7, #8] + 801603a: 4613 mov r3, r2 + 801603c: 80fb strh r3, [r7, #6] #if LV_DRAW_COMPLEX if(angle == 0 && zoom == LV_IMG_ZOOM_NONE) { - 80160d2: f9b7 3006 ldrsh.w r3, [r7, #6] - 80160d6: 2b00 cmp r3, #0 - 80160d8: d117 bne.n 801610a <_lv_img_buf_get_transformed_area+0x52> - 80160da: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 - 80160de: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 80160e2: d112 bne.n 801610a <_lv_img_buf_get_transformed_area+0x52> + 801603e: f9b7 3006 ldrsh.w r3, [r7, #6] + 8016042: 2b00 cmp r3, #0 + 8016044: d117 bne.n 8016076 <_lv_img_buf_get_transformed_area+0x52> + 8016046: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 + 801604a: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 801604e: d112 bne.n 8016076 <_lv_img_buf_get_transformed_area+0x52> res->x1 = 0; - 80160e4: 68fb ldr r3, [r7, #12] - 80160e6: 2200 movs r2, #0 - 80160e8: 801a strh r2, [r3, #0] + 8016050: 68fb ldr r3, [r7, #12] + 8016052: 2200 movs r2, #0 + 8016054: 801a strh r2, [r3, #0] res->y1 = 0; - 80160ea: 68fb ldr r3, [r7, #12] - 80160ec: 2200 movs r2, #0 - 80160ee: 805a strh r2, [r3, #2] + 8016056: 68fb ldr r3, [r7, #12] + 8016058: 2200 movs r2, #0 + 801605a: 805a strh r2, [r3, #2] res->x2 = w - 1; - 80160f0: 897b ldrh r3, [r7, #10] - 80160f2: 3b01 subs r3, #1 - 80160f4: b29b uxth r3, r3 - 80160f6: b21a sxth r2, r3 - 80160f8: 68fb ldr r3, [r7, #12] - 80160fa: 809a strh r2, [r3, #4] + 801605c: 897b ldrh r3, [r7, #10] + 801605e: 3b01 subs r3, #1 + 8016060: b29b uxth r3, r3 + 8016062: b21a sxth r2, r3 + 8016064: 68fb ldr r3, [r7, #12] + 8016066: 809a strh r2, [r3, #4] res->y2 = h - 1; - 80160fc: 893b ldrh r3, [r7, #8] - 80160fe: 3b01 subs r3, #1 - 8016100: b29b uxth r3, r3 - 8016102: b21a sxth r2, r3 - 8016104: 68fb ldr r3, [r7, #12] - 8016106: 80da strh r2, [r3, #6] + 8016068: 893b ldrh r3, [r7, #8] + 801606a: 3b01 subs r3, #1 + 801606c: b29b uxth r3, r3 + 801606e: b21a sxth r2, r3 + 8016070: 68fb ldr r3, [r7, #12] + 8016072: 80da strh r2, [r3, #6] return; - 8016108: e1f6 b.n 80164f8 <_lv_img_buf_get_transformed_area+0x440> + 8016074: e1f6 b.n 8016464 <_lv_img_buf_get_transformed_area+0x440> } res->x1 = (((int32_t)(-pivot->x) * zoom) >> 8) - 1; - 801610a: 6d7b ldr r3, [r7, #84] ; 0x54 - 801610c: f9b3 3000 ldrsh.w r3, [r3] - 8016110: 425b negs r3, r3 - 8016112: f8b7 2050 ldrh.w r2, [r7, #80] ; 0x50 - 8016116: fb02 f303 mul.w r3, r2, r3 - 801611a: 121b asrs r3, r3, #8 - 801611c: b29b uxth r3, r3 - 801611e: 3b01 subs r3, #1 - 8016120: b29b uxth r3, r3 - 8016122: b21a sxth r2, r3 - 8016124: 68fb ldr r3, [r7, #12] - 8016126: 801a strh r2, [r3, #0] + 8016076: 6d7b ldr r3, [r7, #84] ; 0x54 + 8016078: f9b3 3000 ldrsh.w r3, [r3] + 801607c: 425b negs r3, r3 + 801607e: f8b7 2050 ldrh.w r2, [r7, #80] ; 0x50 + 8016082: fb02 f303 mul.w r3, r2, r3 + 8016086: 121b asrs r3, r3, #8 + 8016088: b29b uxth r3, r3 + 801608a: 3b01 subs r3, #1 + 801608c: b29b uxth r3, r3 + 801608e: b21a sxth r2, r3 + 8016090: 68fb ldr r3, [r7, #12] + 8016092: 801a strh r2, [r3, #0] res->y1 = (((int32_t)(-pivot->y) * zoom) >> 8) - 1; - 8016128: 6d7b ldr r3, [r7, #84] ; 0x54 - 801612a: f9b3 3002 ldrsh.w r3, [r3, #2] - 801612e: 425b negs r3, r3 - 8016130: f8b7 2050 ldrh.w r2, [r7, #80] ; 0x50 - 8016134: fb02 f303 mul.w r3, r2, r3 - 8016138: 121b asrs r3, r3, #8 - 801613a: b29b uxth r3, r3 - 801613c: 3b01 subs r3, #1 - 801613e: b29b uxth r3, r3 - 8016140: b21a sxth r2, r3 - 8016142: 68fb ldr r3, [r7, #12] - 8016144: 805a strh r2, [r3, #2] + 8016094: 6d7b ldr r3, [r7, #84] ; 0x54 + 8016096: f9b3 3002 ldrsh.w r3, [r3, #2] + 801609a: 425b negs r3, r3 + 801609c: f8b7 2050 ldrh.w r2, [r7, #80] ; 0x50 + 80160a0: fb02 f303 mul.w r3, r2, r3 + 80160a4: 121b asrs r3, r3, #8 + 80160a6: b29b uxth r3, r3 + 80160a8: 3b01 subs r3, #1 + 80160aa: b29b uxth r3, r3 + 80160ac: b21a sxth r2, r3 + 80160ae: 68fb ldr r3, [r7, #12] + 80160b0: 805a strh r2, [r3, #2] res->x2 = (((int32_t)(w - pivot->x) * zoom) >> 8) + 2; - 8016146: f9b7 300a ldrsh.w r3, [r7, #10] - 801614a: 6d7a ldr r2, [r7, #84] ; 0x54 - 801614c: f9b2 2000 ldrsh.w r2, [r2] - 8016150: 1a9b subs r3, r3, r2 - 8016152: f8b7 2050 ldrh.w r2, [r7, #80] ; 0x50 - 8016156: fb02 f303 mul.w r3, r2, r3 - 801615a: 121b asrs r3, r3, #8 - 801615c: b29b uxth r3, r3 - 801615e: 3302 adds r3, #2 - 8016160: b29b uxth r3, r3 - 8016162: b21a sxth r2, r3 - 8016164: 68fb ldr r3, [r7, #12] - 8016166: 809a strh r2, [r3, #4] + 80160b2: f9b7 300a ldrsh.w r3, [r7, #10] + 80160b6: 6d7a ldr r2, [r7, #84] ; 0x54 + 80160b8: f9b2 2000 ldrsh.w r2, [r2] + 80160bc: 1a9b subs r3, r3, r2 + 80160be: f8b7 2050 ldrh.w r2, [r7, #80] ; 0x50 + 80160c2: fb02 f303 mul.w r3, r2, r3 + 80160c6: 121b asrs r3, r3, #8 + 80160c8: b29b uxth r3, r3 + 80160ca: 3302 adds r3, #2 + 80160cc: b29b uxth r3, r3 + 80160ce: b21a sxth r2, r3 + 80160d0: 68fb ldr r3, [r7, #12] + 80160d2: 809a strh r2, [r3, #4] res->y2 = (((int32_t)(h - pivot->y) * zoom) >> 8) + 2; - 8016168: f9b7 3008 ldrsh.w r3, [r7, #8] - 801616c: 6d7a ldr r2, [r7, #84] ; 0x54 - 801616e: f9b2 2002 ldrsh.w r2, [r2, #2] - 8016172: 1a9b subs r3, r3, r2 - 8016174: f8b7 2050 ldrh.w r2, [r7, #80] ; 0x50 - 8016178: fb02 f303 mul.w r3, r2, r3 - 801617c: 121b asrs r3, r3, #8 - 801617e: b29b uxth r3, r3 - 8016180: 3302 adds r3, #2 - 8016182: b29b uxth r3, r3 - 8016184: b21a sxth r2, r3 - 8016186: 68fb ldr r3, [r7, #12] - 8016188: 80da strh r2, [r3, #6] + 80160d4: f9b7 3008 ldrsh.w r3, [r7, #8] + 80160d8: 6d7a ldr r2, [r7, #84] ; 0x54 + 80160da: f9b2 2002 ldrsh.w r2, [r2, #2] + 80160de: 1a9b subs r3, r3, r2 + 80160e0: f8b7 2050 ldrh.w r2, [r7, #80] ; 0x50 + 80160e4: fb02 f303 mul.w r3, r2, r3 + 80160e8: 121b asrs r3, r3, #8 + 80160ea: b29b uxth r3, r3 + 80160ec: 3302 adds r3, #2 + 80160ee: b29b uxth r3, r3 + 80160f0: b21a sxth r2, r3 + 80160f2: 68fb ldr r3, [r7, #12] + 80160f4: 80da strh r2, [r3, #6] if(angle == 0) { - 801618a: f9b7 3006 ldrsh.w r3, [r7, #6] - 801618e: 2b00 cmp r3, #0 - 8016190: d134 bne.n 80161fc <_lv_img_buf_get_transformed_area+0x144> + 80160f6: f9b7 3006 ldrsh.w r3, [r7, #6] + 80160fa: 2b00 cmp r3, #0 + 80160fc: d134 bne.n 8016168 <_lv_img_buf_get_transformed_area+0x144> res->x1 += pivot->x; - 8016192: 68fb ldr r3, [r7, #12] - 8016194: f9b3 3000 ldrsh.w r3, [r3] - 8016198: b29a uxth r2, r3 - 801619a: 6d7b ldr r3, [r7, #84] ; 0x54 - 801619c: f9b3 3000 ldrsh.w r3, [r3] - 80161a0: b29b uxth r3, r3 - 80161a2: 4413 add r3, r2 - 80161a4: b29b uxth r3, r3 - 80161a6: b21a sxth r2, r3 - 80161a8: 68fb ldr r3, [r7, #12] - 80161aa: 801a strh r2, [r3, #0] + 80160fe: 68fb ldr r3, [r7, #12] + 8016100: f9b3 3000 ldrsh.w r3, [r3] + 8016104: b29a uxth r2, r3 + 8016106: 6d7b ldr r3, [r7, #84] ; 0x54 + 8016108: f9b3 3000 ldrsh.w r3, [r3] + 801610c: b29b uxth r3, r3 + 801610e: 4413 add r3, r2 + 8016110: b29b uxth r3, r3 + 8016112: b21a sxth r2, r3 + 8016114: 68fb ldr r3, [r7, #12] + 8016116: 801a strh r2, [r3, #0] res->y1 += pivot->y; - 80161ac: 68fb ldr r3, [r7, #12] - 80161ae: f9b3 3002 ldrsh.w r3, [r3, #2] - 80161b2: b29a uxth r2, r3 - 80161b4: 6d7b ldr r3, [r7, #84] ; 0x54 - 80161b6: f9b3 3002 ldrsh.w r3, [r3, #2] - 80161ba: b29b uxth r3, r3 - 80161bc: 4413 add r3, r2 - 80161be: b29b uxth r3, r3 - 80161c0: b21a sxth r2, r3 - 80161c2: 68fb ldr r3, [r7, #12] - 80161c4: 805a strh r2, [r3, #2] + 8016118: 68fb ldr r3, [r7, #12] + 801611a: f9b3 3002 ldrsh.w r3, [r3, #2] + 801611e: b29a uxth r2, r3 + 8016120: 6d7b ldr r3, [r7, #84] ; 0x54 + 8016122: f9b3 3002 ldrsh.w r3, [r3, #2] + 8016126: b29b uxth r3, r3 + 8016128: 4413 add r3, r2 + 801612a: b29b uxth r3, r3 + 801612c: b21a sxth r2, r3 + 801612e: 68fb ldr r3, [r7, #12] + 8016130: 805a strh r2, [r3, #2] res->x2 += pivot->x; - 80161c6: 68fb ldr r3, [r7, #12] - 80161c8: f9b3 3004 ldrsh.w r3, [r3, #4] - 80161cc: b29a uxth r2, r3 - 80161ce: 6d7b ldr r3, [r7, #84] ; 0x54 - 80161d0: f9b3 3000 ldrsh.w r3, [r3] - 80161d4: b29b uxth r3, r3 - 80161d6: 4413 add r3, r2 - 80161d8: b29b uxth r3, r3 - 80161da: b21a sxth r2, r3 - 80161dc: 68fb ldr r3, [r7, #12] - 80161de: 809a strh r2, [r3, #4] + 8016132: 68fb ldr r3, [r7, #12] + 8016134: f9b3 3004 ldrsh.w r3, [r3, #4] + 8016138: b29a uxth r2, r3 + 801613a: 6d7b ldr r3, [r7, #84] ; 0x54 + 801613c: f9b3 3000 ldrsh.w r3, [r3] + 8016140: b29b uxth r3, r3 + 8016142: 4413 add r3, r2 + 8016144: b29b uxth r3, r3 + 8016146: b21a sxth r2, r3 + 8016148: 68fb ldr r3, [r7, #12] + 801614a: 809a strh r2, [r3, #4] res->y2 += pivot->y; - 80161e0: 68fb ldr r3, [r7, #12] - 80161e2: f9b3 3006 ldrsh.w r3, [r3, #6] - 80161e6: b29a uxth r2, r3 - 80161e8: 6d7b ldr r3, [r7, #84] ; 0x54 - 80161ea: f9b3 3002 ldrsh.w r3, [r3, #2] - 80161ee: b29b uxth r3, r3 - 80161f0: 4413 add r3, r2 - 80161f2: b29b uxth r3, r3 - 80161f4: b21a sxth r2, r3 - 80161f6: 68fb ldr r3, [r7, #12] - 80161f8: 80da strh r2, [r3, #6] + 801614c: 68fb ldr r3, [r7, #12] + 801614e: f9b3 3006 ldrsh.w r3, [r3, #6] + 8016152: b29a uxth r2, r3 + 8016154: 6d7b ldr r3, [r7, #84] ; 0x54 + 8016156: f9b3 3002 ldrsh.w r3, [r3, #2] + 801615a: b29b uxth r3, r3 + 801615c: 4413 add r3, r2 + 801615e: b29b uxth r3, r3 + 8016160: b21a sxth r2, r3 + 8016162: 68fb ldr r3, [r7, #12] + 8016164: 80da strh r2, [r3, #6] return; - 80161fa: e17d b.n 80164f8 <_lv_img_buf_get_transformed_area+0x440> + 8016166: e17d b.n 8016464 <_lv_img_buf_get_transformed_area+0x440> } int32_t angle_low = angle / 10; - 80161fc: f9b7 3006 ldrsh.w r3, [r7, #6] - 8016200: 4ab6 ldr r2, [pc, #728] ; (80164dc <_lv_img_buf_get_transformed_area+0x424>) - 8016202: fb82 1203 smull r1, r2, r2, r3 - 8016206: 1092 asrs r2, r2, #2 - 8016208: 17db asrs r3, r3, #31 - 801620a: 1ad3 subs r3, r2, r3 - 801620c: b21b sxth r3, r3 - 801620e: 647b str r3, [r7, #68] ; 0x44 + 8016168: f9b7 3006 ldrsh.w r3, [r7, #6] + 801616c: 4ab6 ldr r2, [pc, #728] ; (8016448 <_lv_img_buf_get_transformed_area+0x424>) + 801616e: fb82 1203 smull r1, r2, r2, r3 + 8016172: 1092 asrs r2, r2, #2 + 8016174: 17db asrs r3, r3, #31 + 8016176: 1ad3 subs r3, r2, r3 + 8016178: b21b sxth r3, r3 + 801617a: 647b str r3, [r7, #68] ; 0x44 int32_t angle_high = angle_low + 1; - 8016210: 6c7b ldr r3, [r7, #68] ; 0x44 - 8016212: 3301 adds r3, #1 - 8016214: 643b str r3, [r7, #64] ; 0x40 + 801617c: 6c7b ldr r3, [r7, #68] ; 0x44 + 801617e: 3301 adds r3, #1 + 8016180: 643b str r3, [r7, #64] ; 0x40 int32_t angle_rem = angle - (angle_low * 10); - 8016216: f9b7 2006 ldrsh.w r2, [r7, #6] - 801621a: 6c7b ldr r3, [r7, #68] ; 0x44 - 801621c: f06f 0109 mvn.w r1, #9 - 8016220: fb01 f303 mul.w r3, r1, r3 - 8016224: 4413 add r3, r2 - 8016226: 63fb str r3, [r7, #60] ; 0x3c + 8016182: f9b7 2006 ldrsh.w r2, [r7, #6] + 8016186: 6c7b ldr r3, [r7, #68] ; 0x44 + 8016188: f06f 0109 mvn.w r1, #9 + 801618c: fb01 f303 mul.w r3, r1, r3 + 8016190: 4413 add r3, r2 + 8016192: 63fb str r3, [r7, #60] ; 0x3c int32_t s1 = lv_trigo_sin(angle_low); - 8016228: 6c7b ldr r3, [r7, #68] ; 0x44 - 801622a: b21b sxth r3, r3 - 801622c: 4618 mov r0, r3 - 801622e: f01c f94d bl 80324cc - 8016232: 4603 mov r3, r0 - 8016234: 63bb str r3, [r7, #56] ; 0x38 + 8016194: 6c7b ldr r3, [r7, #68] ; 0x44 + 8016196: b21b sxth r3, r3 + 8016198: 4618 mov r0, r3 + 801619a: f01c f94d bl 8032438 + 801619e: 4603 mov r3, r0 + 80161a0: 63bb str r3, [r7, #56] ; 0x38 int32_t s2 = lv_trigo_sin(angle_high); - 8016236: 6c3b ldr r3, [r7, #64] ; 0x40 - 8016238: b21b sxth r3, r3 - 801623a: 4618 mov r0, r3 - 801623c: f01c f946 bl 80324cc - 8016240: 4603 mov r3, r0 - 8016242: 637b str r3, [r7, #52] ; 0x34 + 80161a2: 6c3b ldr r3, [r7, #64] ; 0x40 + 80161a4: b21b sxth r3, r3 + 80161a6: 4618 mov r0, r3 + 80161a8: f01c f946 bl 8032438 + 80161ac: 4603 mov r3, r0 + 80161ae: 637b str r3, [r7, #52] ; 0x34 int32_t c1 = lv_trigo_sin(angle_low + 90); - 8016244: 6c7b ldr r3, [r7, #68] ; 0x44 - 8016246: b29b uxth r3, r3 - 8016248: 335a adds r3, #90 ; 0x5a - 801624a: b29b uxth r3, r3 - 801624c: b21b sxth r3, r3 - 801624e: 4618 mov r0, r3 - 8016250: f01c f93c bl 80324cc - 8016254: 4603 mov r3, r0 - 8016256: 633b str r3, [r7, #48] ; 0x30 + 80161b0: 6c7b ldr r3, [r7, #68] ; 0x44 + 80161b2: b29b uxth r3, r3 + 80161b4: 335a adds r3, #90 ; 0x5a + 80161b6: b29b uxth r3, r3 + 80161b8: b21b sxth r3, r3 + 80161ba: 4618 mov r0, r3 + 80161bc: f01c f93c bl 8032438 + 80161c0: 4603 mov r3, r0 + 80161c2: 633b str r3, [r7, #48] ; 0x30 int32_t c2 = lv_trigo_sin(angle_high + 90); - 8016258: 6c3b ldr r3, [r7, #64] ; 0x40 - 801625a: b29b uxth r3, r3 - 801625c: 335a adds r3, #90 ; 0x5a - 801625e: b29b uxth r3, r3 - 8016260: b21b sxth r3, r3 - 8016262: 4618 mov r0, r3 - 8016264: f01c f932 bl 80324cc - 8016268: 4603 mov r3, r0 - 801626a: 62fb str r3, [r7, #44] ; 0x2c + 80161c4: 6c3b ldr r3, [r7, #64] ; 0x40 + 80161c6: b29b uxth r3, r3 + 80161c8: 335a adds r3, #90 ; 0x5a + 80161ca: b29b uxth r3, r3 + 80161cc: b21b sxth r3, r3 + 80161ce: 4618 mov r0, r3 + 80161d0: f01c f932 bl 8032438 + 80161d4: 4603 mov r3, r0 + 80161d6: 62fb str r3, [r7, #44] ; 0x2c int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10; - 801626c: 6bfb ldr r3, [r7, #60] ; 0x3c - 801626e: f1c3 030a rsb r3, r3, #10 - 8016272: 6bba ldr r2, [r7, #56] ; 0x38 - 8016274: fb03 f202 mul.w r2, r3, r2 - 8016278: 6b7b ldr r3, [r7, #52] ; 0x34 - 801627a: 6bf9 ldr r1, [r7, #60] ; 0x3c - 801627c: fb01 f303 mul.w r3, r1, r3 - 8016280: 4413 add r3, r2 - 8016282: 4a96 ldr r2, [pc, #600] ; (80164dc <_lv_img_buf_get_transformed_area+0x424>) - 8016284: fb82 1203 smull r1, r2, r2, r3 - 8016288: 1092 asrs r2, r2, #2 - 801628a: 17db asrs r3, r3, #31 - 801628c: 1ad3 subs r3, r2, r3 - 801628e: 62bb str r3, [r7, #40] ; 0x28 + 80161d8: 6bfb ldr r3, [r7, #60] ; 0x3c + 80161da: f1c3 030a rsb r3, r3, #10 + 80161de: 6bba ldr r2, [r7, #56] ; 0x38 + 80161e0: fb03 f202 mul.w r2, r3, r2 + 80161e4: 6b7b ldr r3, [r7, #52] ; 0x34 + 80161e6: 6bf9 ldr r1, [r7, #60] ; 0x3c + 80161e8: fb01 f303 mul.w r3, r1, r3 + 80161ec: 4413 add r3, r2 + 80161ee: 4a96 ldr r2, [pc, #600] ; (8016448 <_lv_img_buf_get_transformed_area+0x424>) + 80161f0: fb82 1203 smull r1, r2, r2, r3 + 80161f4: 1092 asrs r2, r2, #2 + 80161f6: 17db asrs r3, r3, #31 + 80161f8: 1ad3 subs r3, r2, r3 + 80161fa: 62bb str r3, [r7, #40] ; 0x28 int32_t cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10; - 8016290: 6bfb ldr r3, [r7, #60] ; 0x3c - 8016292: f1c3 030a rsb r3, r3, #10 - 8016296: 6b3a ldr r2, [r7, #48] ; 0x30 - 8016298: fb03 f202 mul.w r2, r3, r2 - 801629c: 6afb ldr r3, [r7, #44] ; 0x2c - 801629e: 6bf9 ldr r1, [r7, #60] ; 0x3c - 80162a0: fb01 f303 mul.w r3, r1, r3 - 80162a4: 4413 add r3, r2 - 80162a6: 4a8d ldr r2, [pc, #564] ; (80164dc <_lv_img_buf_get_transformed_area+0x424>) - 80162a8: fb82 1203 smull r1, r2, r2, r3 - 80162ac: 1092 asrs r2, r2, #2 - 80162ae: 17db asrs r3, r3, #31 - 80162b0: 1ad3 subs r3, r2, r3 - 80162b2: 627b str r3, [r7, #36] ; 0x24 + 80161fc: 6bfb ldr r3, [r7, #60] ; 0x3c + 80161fe: f1c3 030a rsb r3, r3, #10 + 8016202: 6b3a ldr r2, [r7, #48] ; 0x30 + 8016204: fb03 f202 mul.w r2, r3, r2 + 8016208: 6afb ldr r3, [r7, #44] ; 0x2c + 801620a: 6bf9 ldr r1, [r7, #60] ; 0x3c + 801620c: fb01 f303 mul.w r3, r1, r3 + 8016210: 4413 add r3, r2 + 8016212: 4a8d ldr r2, [pc, #564] ; (8016448 <_lv_img_buf_get_transformed_area+0x424>) + 8016214: fb82 1203 smull r1, r2, r2, r3 + 8016218: 1092 asrs r2, r2, #2 + 801621a: 17db asrs r3, r3, #31 + 801621c: 1ad3 subs r3, r2, r3 + 801621e: 627b str r3, [r7, #36] ; 0x24 /*Use smaller value to avoid overflow*/ sinma = sinma >> (LV_TRIGO_SHIFT - _LV_TRANSFORM_TRIGO_SHIFT); - 80162b4: 6abb ldr r3, [r7, #40] ; 0x28 - 80162b6: 115b asrs r3, r3, #5 - 80162b8: 62bb str r3, [r7, #40] ; 0x28 + 8016220: 6abb ldr r3, [r7, #40] ; 0x28 + 8016222: 115b asrs r3, r3, #5 + 8016224: 62bb str r3, [r7, #40] ; 0x28 cosma = cosma >> (LV_TRIGO_SHIFT - _LV_TRANSFORM_TRIGO_SHIFT); - 80162ba: 6a7b ldr r3, [r7, #36] ; 0x24 - 80162bc: 115b asrs r3, r3, #5 - 80162be: 627b str r3, [r7, #36] ; 0x24 + 8016226: 6a7b ldr r3, [r7, #36] ; 0x24 + 8016228: 115b asrs r3, r3, #5 + 801622a: 627b str r3, [r7, #36] ; 0x24 lv_point_t rb; lv_coord_t xt; lv_coord_t yt; xt = res->x1; - 80162c0: 68fb ldr r3, [r7, #12] - 80162c2: 881b ldrh r3, [r3, #0] - 80162c4: 847b strh r3, [r7, #34] ; 0x22 + 801622c: 68fb ldr r3, [r7, #12] + 801622e: 881b ldrh r3, [r3, #0] + 8016230: 847b strh r3, [r7, #34] ; 0x22 yt = res->y1; - 80162c6: 68fb ldr r3, [r7, #12] - 80162c8: 885b ldrh r3, [r3, #2] - 80162ca: 843b strh r3, [r7, #32] + 8016232: 68fb ldr r3, [r7, #12] + 8016234: 885b ldrh r3, [r3, #2] + 8016236: 843b strh r3, [r7, #32] lt.x = ((cosma * xt - sinma * yt) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->x; - 80162cc: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 80162d0: 6a7a ldr r2, [r7, #36] ; 0x24 - 80162d2: fb03 f202 mul.w r2, r3, r2 - 80162d6: f9b7 3020 ldrsh.w r3, [r7, #32] - 80162da: 6ab9 ldr r1, [r7, #40] ; 0x28 - 80162dc: fb01 f303 mul.w r3, r1, r3 - 80162e0: 1ad3 subs r3, r2, r3 - 80162e2: 129b asrs r3, r3, #10 - 80162e4: b29a uxth r2, r3 - 80162e6: 6d7b ldr r3, [r7, #84] ; 0x54 - 80162e8: f9b3 3000 ldrsh.w r3, [r3] - 80162ec: b29b uxth r3, r3 - 80162ee: 4413 add r3, r2 - 80162f0: b29b uxth r3, r3 - 80162f2: b21b sxth r3, r3 - 80162f4: 83bb strh r3, [r7, #28] + 8016238: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 801623c: 6a7a ldr r2, [r7, #36] ; 0x24 + 801623e: fb03 f202 mul.w r2, r3, r2 + 8016242: f9b7 3020 ldrsh.w r3, [r7, #32] + 8016246: 6ab9 ldr r1, [r7, #40] ; 0x28 + 8016248: fb01 f303 mul.w r3, r1, r3 + 801624c: 1ad3 subs r3, r2, r3 + 801624e: 129b asrs r3, r3, #10 + 8016250: b29a uxth r2, r3 + 8016252: 6d7b ldr r3, [r7, #84] ; 0x54 + 8016254: f9b3 3000 ldrsh.w r3, [r3] + 8016258: b29b uxth r3, r3 + 801625a: 4413 add r3, r2 + 801625c: b29b uxth r3, r3 + 801625e: b21b sxth r3, r3 + 8016260: 83bb strh r3, [r7, #28] lt.y = ((sinma * xt + cosma * yt) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->y; - 80162f6: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 80162fa: 6aba ldr r2, [r7, #40] ; 0x28 - 80162fc: fb03 f202 mul.w r2, r3, r2 - 8016300: f9b7 3020 ldrsh.w r3, [r7, #32] - 8016304: 6a79 ldr r1, [r7, #36] ; 0x24 - 8016306: fb01 f303 mul.w r3, r1, r3 - 801630a: 4413 add r3, r2 - 801630c: 129b asrs r3, r3, #10 - 801630e: b29a uxth r2, r3 - 8016310: 6d7b ldr r3, [r7, #84] ; 0x54 - 8016312: f9b3 3002 ldrsh.w r3, [r3, #2] - 8016316: b29b uxth r3, r3 - 8016318: 4413 add r3, r2 - 801631a: b29b uxth r3, r3 - 801631c: b21b sxth r3, r3 - 801631e: 83fb strh r3, [r7, #30] + 8016262: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 8016266: 6aba ldr r2, [r7, #40] ; 0x28 + 8016268: fb03 f202 mul.w r2, r3, r2 + 801626c: f9b7 3020 ldrsh.w r3, [r7, #32] + 8016270: 6a79 ldr r1, [r7, #36] ; 0x24 + 8016272: fb01 f303 mul.w r3, r1, r3 + 8016276: 4413 add r3, r2 + 8016278: 129b asrs r3, r3, #10 + 801627a: b29a uxth r2, r3 + 801627c: 6d7b ldr r3, [r7, #84] ; 0x54 + 801627e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8016282: b29b uxth r3, r3 + 8016284: 4413 add r3, r2 + 8016286: b29b uxth r3, r3 + 8016288: b21b sxth r3, r3 + 801628a: 83fb strh r3, [r7, #30] xt = res->x2; - 8016320: 68fb ldr r3, [r7, #12] - 8016322: 889b ldrh r3, [r3, #4] - 8016324: 847b strh r3, [r7, #34] ; 0x22 + 801628c: 68fb ldr r3, [r7, #12] + 801628e: 889b ldrh r3, [r3, #4] + 8016290: 847b strh r3, [r7, #34] ; 0x22 yt = res->y1; - 8016326: 68fb ldr r3, [r7, #12] - 8016328: 885b ldrh r3, [r3, #2] - 801632a: 843b strh r3, [r7, #32] + 8016292: 68fb ldr r3, [r7, #12] + 8016294: 885b ldrh r3, [r3, #2] + 8016296: 843b strh r3, [r7, #32] rt.x = ((cosma * xt - sinma * yt) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->x; - 801632c: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 8016330: 6a7a ldr r2, [r7, #36] ; 0x24 - 8016332: fb03 f202 mul.w r2, r3, r2 - 8016336: f9b7 3020 ldrsh.w r3, [r7, #32] - 801633a: 6ab9 ldr r1, [r7, #40] ; 0x28 - 801633c: fb01 f303 mul.w r3, r1, r3 - 8016340: 1ad3 subs r3, r2, r3 - 8016342: 129b asrs r3, r3, #10 - 8016344: b29a uxth r2, r3 - 8016346: 6d7b ldr r3, [r7, #84] ; 0x54 - 8016348: f9b3 3000 ldrsh.w r3, [r3] - 801634c: b29b uxth r3, r3 - 801634e: 4413 add r3, r2 - 8016350: b29b uxth r3, r3 - 8016352: b21b sxth r3, r3 - 8016354: 833b strh r3, [r7, #24] + 8016298: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 801629c: 6a7a ldr r2, [r7, #36] ; 0x24 + 801629e: fb03 f202 mul.w r2, r3, r2 + 80162a2: f9b7 3020 ldrsh.w r3, [r7, #32] + 80162a6: 6ab9 ldr r1, [r7, #40] ; 0x28 + 80162a8: fb01 f303 mul.w r3, r1, r3 + 80162ac: 1ad3 subs r3, r2, r3 + 80162ae: 129b asrs r3, r3, #10 + 80162b0: b29a uxth r2, r3 + 80162b2: 6d7b ldr r3, [r7, #84] ; 0x54 + 80162b4: f9b3 3000 ldrsh.w r3, [r3] + 80162b8: b29b uxth r3, r3 + 80162ba: 4413 add r3, r2 + 80162bc: b29b uxth r3, r3 + 80162be: b21b sxth r3, r3 + 80162c0: 833b strh r3, [r7, #24] rt.y = ((sinma * xt + cosma * yt) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->y; - 8016356: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 801635a: 6aba ldr r2, [r7, #40] ; 0x28 - 801635c: fb03 f202 mul.w r2, r3, r2 - 8016360: f9b7 3020 ldrsh.w r3, [r7, #32] - 8016364: 6a79 ldr r1, [r7, #36] ; 0x24 - 8016366: fb01 f303 mul.w r3, r1, r3 - 801636a: 4413 add r3, r2 - 801636c: 129b asrs r3, r3, #10 - 801636e: b29a uxth r2, r3 - 8016370: 6d7b ldr r3, [r7, #84] ; 0x54 - 8016372: f9b3 3002 ldrsh.w r3, [r3, #2] - 8016376: b29b uxth r3, r3 - 8016378: 4413 add r3, r2 - 801637a: b29b uxth r3, r3 - 801637c: b21b sxth r3, r3 - 801637e: 837b strh r3, [r7, #26] + 80162c2: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 80162c6: 6aba ldr r2, [r7, #40] ; 0x28 + 80162c8: fb03 f202 mul.w r2, r3, r2 + 80162cc: f9b7 3020 ldrsh.w r3, [r7, #32] + 80162d0: 6a79 ldr r1, [r7, #36] ; 0x24 + 80162d2: fb01 f303 mul.w r3, r1, r3 + 80162d6: 4413 add r3, r2 + 80162d8: 129b asrs r3, r3, #10 + 80162da: b29a uxth r2, r3 + 80162dc: 6d7b ldr r3, [r7, #84] ; 0x54 + 80162de: f9b3 3002 ldrsh.w r3, [r3, #2] + 80162e2: b29b uxth r3, r3 + 80162e4: 4413 add r3, r2 + 80162e6: b29b uxth r3, r3 + 80162e8: b21b sxth r3, r3 + 80162ea: 837b strh r3, [r7, #26] xt = res->x1; - 8016380: 68fb ldr r3, [r7, #12] - 8016382: 881b ldrh r3, [r3, #0] - 8016384: 847b strh r3, [r7, #34] ; 0x22 + 80162ec: 68fb ldr r3, [r7, #12] + 80162ee: 881b ldrh r3, [r3, #0] + 80162f0: 847b strh r3, [r7, #34] ; 0x22 yt = res->y2; - 8016386: 68fb ldr r3, [r7, #12] - 8016388: 88db ldrh r3, [r3, #6] - 801638a: 843b strh r3, [r7, #32] + 80162f2: 68fb ldr r3, [r7, #12] + 80162f4: 88db ldrh r3, [r3, #6] + 80162f6: 843b strh r3, [r7, #32] lb.x = ((cosma * xt - sinma * yt) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->x; - 801638c: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 8016390: 6a7a ldr r2, [r7, #36] ; 0x24 - 8016392: fb03 f202 mul.w r2, r3, r2 - 8016396: f9b7 3020 ldrsh.w r3, [r7, #32] - 801639a: 6ab9 ldr r1, [r7, #40] ; 0x28 - 801639c: fb01 f303 mul.w r3, r1, r3 - 80163a0: 1ad3 subs r3, r2, r3 - 80163a2: 129b asrs r3, r3, #10 - 80163a4: b29a uxth r2, r3 - 80163a6: 6d7b ldr r3, [r7, #84] ; 0x54 - 80163a8: f9b3 3000 ldrsh.w r3, [r3] - 80163ac: b29b uxth r3, r3 - 80163ae: 4413 add r3, r2 - 80163b0: b29b uxth r3, r3 - 80163b2: b21b sxth r3, r3 - 80163b4: 82bb strh r3, [r7, #20] + 80162f8: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 80162fc: 6a7a ldr r2, [r7, #36] ; 0x24 + 80162fe: fb03 f202 mul.w r2, r3, r2 + 8016302: f9b7 3020 ldrsh.w r3, [r7, #32] + 8016306: 6ab9 ldr r1, [r7, #40] ; 0x28 + 8016308: fb01 f303 mul.w r3, r1, r3 + 801630c: 1ad3 subs r3, r2, r3 + 801630e: 129b asrs r3, r3, #10 + 8016310: b29a uxth r2, r3 + 8016312: 6d7b ldr r3, [r7, #84] ; 0x54 + 8016314: f9b3 3000 ldrsh.w r3, [r3] + 8016318: b29b uxth r3, r3 + 801631a: 4413 add r3, r2 + 801631c: b29b uxth r3, r3 + 801631e: b21b sxth r3, r3 + 8016320: 82bb strh r3, [r7, #20] lb.y = ((sinma * xt + cosma * yt) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->y; - 80163b6: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 80163ba: 6aba ldr r2, [r7, #40] ; 0x28 - 80163bc: fb03 f202 mul.w r2, r3, r2 - 80163c0: f9b7 3020 ldrsh.w r3, [r7, #32] - 80163c4: 6a79 ldr r1, [r7, #36] ; 0x24 - 80163c6: fb01 f303 mul.w r3, r1, r3 - 80163ca: 4413 add r3, r2 - 80163cc: 129b asrs r3, r3, #10 - 80163ce: b29a uxth r2, r3 - 80163d0: 6d7b ldr r3, [r7, #84] ; 0x54 - 80163d2: f9b3 3002 ldrsh.w r3, [r3, #2] - 80163d6: b29b uxth r3, r3 - 80163d8: 4413 add r3, r2 - 80163da: b29b uxth r3, r3 - 80163dc: b21b sxth r3, r3 - 80163de: 82fb strh r3, [r7, #22] + 8016322: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 8016326: 6aba ldr r2, [r7, #40] ; 0x28 + 8016328: fb03 f202 mul.w r2, r3, r2 + 801632c: f9b7 3020 ldrsh.w r3, [r7, #32] + 8016330: 6a79 ldr r1, [r7, #36] ; 0x24 + 8016332: fb01 f303 mul.w r3, r1, r3 + 8016336: 4413 add r3, r2 + 8016338: 129b asrs r3, r3, #10 + 801633a: b29a uxth r2, r3 + 801633c: 6d7b ldr r3, [r7, #84] ; 0x54 + 801633e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8016342: b29b uxth r3, r3 + 8016344: 4413 add r3, r2 + 8016346: b29b uxth r3, r3 + 8016348: b21b sxth r3, r3 + 801634a: 82fb strh r3, [r7, #22] xt = res->x2; - 80163e0: 68fb ldr r3, [r7, #12] - 80163e2: 889b ldrh r3, [r3, #4] - 80163e4: 847b strh r3, [r7, #34] ; 0x22 + 801634c: 68fb ldr r3, [r7, #12] + 801634e: 889b ldrh r3, [r3, #4] + 8016350: 847b strh r3, [r7, #34] ; 0x22 yt = res->y2; - 80163e6: 68fb ldr r3, [r7, #12] - 80163e8: 88db ldrh r3, [r3, #6] - 80163ea: 843b strh r3, [r7, #32] + 8016352: 68fb ldr r3, [r7, #12] + 8016354: 88db ldrh r3, [r3, #6] + 8016356: 843b strh r3, [r7, #32] rb.x = ((cosma * xt - sinma * yt) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->x; - 80163ec: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 80163f0: 6a7a ldr r2, [r7, #36] ; 0x24 - 80163f2: fb03 f202 mul.w r2, r3, r2 - 80163f6: f9b7 3020 ldrsh.w r3, [r7, #32] - 80163fa: 6ab9 ldr r1, [r7, #40] ; 0x28 - 80163fc: fb01 f303 mul.w r3, r1, r3 - 8016400: 1ad3 subs r3, r2, r3 - 8016402: 129b asrs r3, r3, #10 - 8016404: b29a uxth r2, r3 - 8016406: 6d7b ldr r3, [r7, #84] ; 0x54 - 8016408: f9b3 3000 ldrsh.w r3, [r3] - 801640c: b29b uxth r3, r3 - 801640e: 4413 add r3, r2 - 8016410: b29b uxth r3, r3 - 8016412: b21b sxth r3, r3 - 8016414: 823b strh r3, [r7, #16] + 8016358: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 801635c: 6a7a ldr r2, [r7, #36] ; 0x24 + 801635e: fb03 f202 mul.w r2, r3, r2 + 8016362: f9b7 3020 ldrsh.w r3, [r7, #32] + 8016366: 6ab9 ldr r1, [r7, #40] ; 0x28 + 8016368: fb01 f303 mul.w r3, r1, r3 + 801636c: 1ad3 subs r3, r2, r3 + 801636e: 129b asrs r3, r3, #10 + 8016370: b29a uxth r2, r3 + 8016372: 6d7b ldr r3, [r7, #84] ; 0x54 + 8016374: f9b3 3000 ldrsh.w r3, [r3] + 8016378: b29b uxth r3, r3 + 801637a: 4413 add r3, r2 + 801637c: b29b uxth r3, r3 + 801637e: b21b sxth r3, r3 + 8016380: 823b strh r3, [r7, #16] rb.y = ((sinma * xt + cosma * yt) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->y; - 8016416: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 801641a: 6aba ldr r2, [r7, #40] ; 0x28 - 801641c: fb03 f202 mul.w r2, r3, r2 - 8016420: f9b7 3020 ldrsh.w r3, [r7, #32] - 8016424: 6a79 ldr r1, [r7, #36] ; 0x24 - 8016426: fb01 f303 mul.w r3, r1, r3 - 801642a: 4413 add r3, r2 - 801642c: 129b asrs r3, r3, #10 - 801642e: b29a uxth r2, r3 - 8016430: 6d7b ldr r3, [r7, #84] ; 0x54 - 8016432: f9b3 3002 ldrsh.w r3, [r3, #2] - 8016436: b29b uxth r3, r3 - 8016438: 4413 add r3, r2 - 801643a: b29b uxth r3, r3 - 801643c: b21b sxth r3, r3 - 801643e: 827b strh r3, [r7, #18] + 8016382: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 8016386: 6aba ldr r2, [r7, #40] ; 0x28 + 8016388: fb03 f202 mul.w r2, r3, r2 + 801638c: f9b7 3020 ldrsh.w r3, [r7, #32] + 8016390: 6a79 ldr r1, [r7, #36] ; 0x24 + 8016392: fb01 f303 mul.w r3, r1, r3 + 8016396: 4413 add r3, r2 + 8016398: 129b asrs r3, r3, #10 + 801639a: b29a uxth r2, r3 + 801639c: 6d7b ldr r3, [r7, #84] ; 0x54 + 801639e: f9b3 3002 ldrsh.w r3, [r3, #2] + 80163a2: b29b uxth r3, r3 + 80163a4: 4413 add r3, r2 + 80163a6: b29b uxth r3, r3 + 80163a8: b21b sxth r3, r3 + 80163aa: 827b strh r3, [r7, #18] res->x1 = LV_MIN4(lb.x, lt.x, rb.x, rt.x); - 8016440: f9b7 2018 ldrsh.w r2, [r7, #24] - 8016444: f9b7 3010 ldrsh.w r3, [r7, #16] - 8016448: 4293 cmp r3, r2 - 801644a: bfa8 it ge - 801644c: 4613 movge r3, r2 - 801644e: b21a sxth r2, r3 - 8016450: f9b7 101c ldrsh.w r1, [r7, #28] - 8016454: f9b7 3014 ldrsh.w r3, [r7, #20] - 8016458: 428b cmp r3, r1 - 801645a: bfa8 it ge - 801645c: 460b movge r3, r1 - 801645e: b21b sxth r3, r3 - 8016460: 4293 cmp r3, r2 - 8016462: bfa8 it ge - 8016464: 4613 movge r3, r2 - 8016466: b21a sxth r2, r3 - 8016468: 68fb ldr r3, [r7, #12] - 801646a: 801a strh r2, [r3, #0] + 80163ac: f9b7 2018 ldrsh.w r2, [r7, #24] + 80163b0: f9b7 3010 ldrsh.w r3, [r7, #16] + 80163b4: 4293 cmp r3, r2 + 80163b6: bfa8 it ge + 80163b8: 4613 movge r3, r2 + 80163ba: b21a sxth r2, r3 + 80163bc: f9b7 101c ldrsh.w r1, [r7, #28] + 80163c0: f9b7 3014 ldrsh.w r3, [r7, #20] + 80163c4: 428b cmp r3, r1 + 80163c6: bfa8 it ge + 80163c8: 460b movge r3, r1 + 80163ca: b21b sxth r3, r3 + 80163cc: 4293 cmp r3, r2 + 80163ce: bfa8 it ge + 80163d0: 4613 movge r3, r2 + 80163d2: b21a sxth r2, r3 + 80163d4: 68fb ldr r3, [r7, #12] + 80163d6: 801a strh r2, [r3, #0] res->x2 = LV_MAX4(lb.x, lt.x, rb.x, rt.x); - 801646c: f9b7 2018 ldrsh.w r2, [r7, #24] - 8016470: f9b7 3010 ldrsh.w r3, [r7, #16] - 8016474: 4293 cmp r3, r2 - 8016476: bfb8 it lt - 8016478: 4613 movlt r3, r2 - 801647a: b21a sxth r2, r3 - 801647c: f9b7 101c ldrsh.w r1, [r7, #28] - 8016480: f9b7 3014 ldrsh.w r3, [r7, #20] - 8016484: 428b cmp r3, r1 - 8016486: bfb8 it lt - 8016488: 460b movlt r3, r1 - 801648a: b21b sxth r3, r3 - 801648c: 4293 cmp r3, r2 - 801648e: bfb8 it lt - 8016490: 4613 movlt r3, r2 - 8016492: b21a sxth r2, r3 - 8016494: 68fb ldr r3, [r7, #12] - 8016496: 809a strh r2, [r3, #4] + 80163d8: f9b7 2018 ldrsh.w r2, [r7, #24] + 80163dc: f9b7 3010 ldrsh.w r3, [r7, #16] + 80163e0: 4293 cmp r3, r2 + 80163e2: bfb8 it lt + 80163e4: 4613 movlt r3, r2 + 80163e6: b21a sxth r2, r3 + 80163e8: f9b7 101c ldrsh.w r1, [r7, #28] + 80163ec: f9b7 3014 ldrsh.w r3, [r7, #20] + 80163f0: 428b cmp r3, r1 + 80163f2: bfb8 it lt + 80163f4: 460b movlt r3, r1 + 80163f6: b21b sxth r3, r3 + 80163f8: 4293 cmp r3, r2 + 80163fa: bfb8 it lt + 80163fc: 4613 movlt r3, r2 + 80163fe: b21a sxth r2, r3 + 8016400: 68fb ldr r3, [r7, #12] + 8016402: 809a strh r2, [r3, #4] res->y1 = LV_MIN4(lb.y, lt.y, rb.y, rt.y); - 8016498: f9b7 201a ldrsh.w r2, [r7, #26] - 801649c: f9b7 3012 ldrsh.w r3, [r7, #18] - 80164a0: 4293 cmp r3, r2 - 80164a2: bfa8 it ge - 80164a4: 4613 movge r3, r2 - 80164a6: b21a sxth r2, r3 - 80164a8: f9b7 101e ldrsh.w r1, [r7, #30] - 80164ac: f9b7 3016 ldrsh.w r3, [r7, #22] - 80164b0: 428b cmp r3, r1 - 80164b2: bfa8 it ge - 80164b4: 460b movge r3, r1 - 80164b6: b21b sxth r3, r3 - 80164b8: 4293 cmp r3, r2 - 80164ba: bfa8 it ge - 80164bc: 4613 movge r3, r2 - 80164be: b21a sxth r2, r3 - 80164c0: 68fb ldr r3, [r7, #12] - 80164c2: 805a strh r2, [r3, #2] + 8016404: f9b7 201a ldrsh.w r2, [r7, #26] + 8016408: f9b7 3012 ldrsh.w r3, [r7, #18] + 801640c: 4293 cmp r3, r2 + 801640e: bfa8 it ge + 8016410: 4613 movge r3, r2 + 8016412: b21a sxth r2, r3 + 8016414: f9b7 101e ldrsh.w r1, [r7, #30] + 8016418: f9b7 3016 ldrsh.w r3, [r7, #22] + 801641c: 428b cmp r3, r1 + 801641e: bfa8 it ge + 8016420: 460b movge r3, r1 + 8016422: b21b sxth r3, r3 + 8016424: 4293 cmp r3, r2 + 8016426: bfa8 it ge + 8016428: 4613 movge r3, r2 + 801642a: b21a sxth r2, r3 + 801642c: 68fb ldr r3, [r7, #12] + 801642e: 805a strh r2, [r3, #2] res->y2 = LV_MAX4(lb.y, lt.y, rb.y, rt.y); - 80164c4: f9b7 201a ldrsh.w r2, [r7, #26] - 80164c8: f9b7 3012 ldrsh.w r3, [r7, #18] - 80164cc: 4293 cmp r3, r2 - 80164ce: bfb8 it lt - 80164d0: 4613 movlt r3, r2 - 80164d2: b21a sxth r2, r3 - 80164d4: f9b7 101e ldrsh.w r1, [r7, #30] - 80164d8: e002 b.n 80164e0 <_lv_img_buf_get_transformed_area+0x428> - 80164da: bf00 nop - 80164dc: 66666667 .word 0x66666667 - 80164e0: f9b7 3016 ldrsh.w r3, [r7, #22] - 80164e4: 428b cmp r3, r1 - 80164e6: bfb8 it lt - 80164e8: 460b movlt r3, r1 - 80164ea: b21b sxth r3, r3 - 80164ec: 4293 cmp r3, r2 - 80164ee: bfb8 it lt - 80164f0: 4613 movlt r3, r2 - 80164f2: b21a sxth r2, r3 - 80164f4: 68fb ldr r3, [r7, #12] - 80164f6: 80da strh r2, [r3, #6] + 8016430: f9b7 201a ldrsh.w r2, [r7, #26] + 8016434: f9b7 3012 ldrsh.w r3, [r7, #18] + 8016438: 4293 cmp r3, r2 + 801643a: bfb8 it lt + 801643c: 4613 movlt r3, r2 + 801643e: b21a sxth r2, r3 + 8016440: f9b7 101e ldrsh.w r1, [r7, #30] + 8016444: e002 b.n 801644c <_lv_img_buf_get_transformed_area+0x428> + 8016446: bf00 nop + 8016448: 66666667 .word 0x66666667 + 801644c: f9b7 3016 ldrsh.w r3, [r7, #22] + 8016450: 428b cmp r3, r1 + 8016452: bfb8 it lt + 8016454: 460b movlt r3, r1 + 8016456: b21b sxth r3, r3 + 8016458: 4293 cmp r3, r2 + 801645a: bfb8 it lt + 801645c: 4613 movlt r3, r2 + 801645e: b21a sxth r2, r3 + 8016460: 68fb ldr r3, [r7, #12] + 8016462: 80da strh r2, [r3, #6] res->x1 = 0; res->y1 = 0; res->x2 = w - 1; res->y2 = h - 1; #endif } - 80164f8: 3748 adds r7, #72 ; 0x48 - 80164fa: 46bd mov sp, r7 - 80164fc: bd80 pop {r7, pc} - 80164fe: bf00 nop + 8016464: 3748 adds r7, #72 ; 0x48 + 8016466: 46bd mov sp, r7 + 8016468: bd80 pop {r7, pc} + 801646a: bf00 nop -08016500 <_lv_img_buf_transform>: +0801646c <_lv_img_buf_transform>: * @param y the coordinate which color and opa should be get * @return true: there is valid pixel on these x/y coordinates; false: the rotated pixel was out of the image * @note the result is written back to `dsc->res_color` and `dsc->res_opa` */ bool _lv_img_buf_transform(lv_img_transform_dsc_t * dsc, lv_coord_t x, lv_coord_t y) { - 8016500: b590 push {r4, r7, lr} - 8016502: b08d sub sp, #52 ; 0x34 - 8016504: af00 add r7, sp, #0 - 8016506: 6078 str r0, [r7, #4] - 8016508: 460b mov r3, r1 - 801650a: 807b strh r3, [r7, #2] - 801650c: 4613 mov r3, r2 - 801650e: 803b strh r3, [r7, #0] + 801646c: b590 push {r4, r7, lr} + 801646e: b08d sub sp, #52 ; 0x34 + 8016470: af00 add r7, sp, #0 + 8016472: 6078 str r0, [r7, #4] + 8016474: 460b mov r3, r1 + 8016476: 807b strh r3, [r7, #2] + 8016478: 4613 mov r3, r2 + 801647a: 803b strh r3, [r7, #0] const uint8_t * src_u8 = (const uint8_t *)dsc->cfg.src; - 8016510: 687b ldr r3, [r7, #4] - 8016512: 681b ldr r3, [r3, #0] - 8016514: 61fb str r3, [r7, #28] + 801647c: 687b ldr r3, [r7, #4] + 801647e: 681b ldr r3, [r3, #0] + 8016480: 61fb str r3, [r7, #28] /*Get the target point relative coordinates to the pivot*/ int32_t xt = x - dsc->cfg.pivot_x; - 8016516: f9b7 3002 ldrsh.w r3, [r7, #2] - 801651a: 687a ldr r2, [r7, #4] - 801651c: f9b2 2008 ldrsh.w r2, [r2, #8] - 8016520: 1a9b subs r3, r3, r2 - 8016522: 61bb str r3, [r7, #24] + 8016482: f9b7 3002 ldrsh.w r3, [r7, #2] + 8016486: 687a ldr r2, [r7, #4] + 8016488: f9b2 2008 ldrsh.w r2, [r2, #8] + 801648c: 1a9b subs r3, r3, r2 + 801648e: 61bb str r3, [r7, #24] int32_t yt = y - dsc->cfg.pivot_y; - 8016524: f9b7 3000 ldrsh.w r3, [r7] - 8016528: 687a ldr r2, [r7, #4] - 801652a: f9b2 200a ldrsh.w r2, [r2, #10] - 801652e: 1a9b subs r3, r3, r2 - 8016530: 617b str r3, [r7, #20] + 8016490: f9b7 3000 ldrsh.w r3, [r7] + 8016494: 687a ldr r2, [r7, #4] + 8016496: f9b2 200a ldrsh.w r2, [r2, #10] + 801649a: 1a9b subs r3, r3, r2 + 801649c: 617b str r3, [r7, #20] int32_t xs; int32_t ys; if(dsc->cfg.zoom == LV_IMG_ZOOM_NONE) { - 8016532: 687b ldr r3, [r7, #4] - 8016534: 89db ldrh r3, [r3, #14] - 8016536: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 801653a: d120 bne.n 801657e <_lv_img_buf_transform+0x7e> + 801649e: 687b ldr r3, [r7, #4] + 80164a0: 89db ldrh r3, [r3, #14] + 80164a2: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 80164a6: d120 bne.n 80164ea <_lv_img_buf_transform+0x7e> /*Get the source pixel from the upscaled image*/ xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (_LV_TRANSFORM_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256; - 801653c: 687b ldr r3, [r7, #4] - 801653e: 6b1b ldr r3, [r3, #48] ; 0x30 - 8016540: 69ba ldr r2, [r7, #24] - 8016542: fb03 f202 mul.w r2, r3, r2 - 8016546: 687b ldr r3, [r7, #4] - 8016548: 6adb ldr r3, [r3, #44] ; 0x2c - 801654a: 6979 ldr r1, [r7, #20] - 801654c: fb01 f303 mul.w r3, r1, r3 - 8016550: 1ad3 subs r3, r2, r3 - 8016552: 109a asrs r2, r3, #2 - 8016554: 687b ldr r3, [r7, #4] - 8016556: 6a5b ldr r3, [r3, #36] ; 0x24 - 8016558: 4413 add r3, r2 - 801655a: 62fb str r3, [r7, #44] ; 0x2c + 80164a8: 687b ldr r3, [r7, #4] + 80164aa: 6b1b ldr r3, [r3, #48] ; 0x30 + 80164ac: 69ba ldr r2, [r7, #24] + 80164ae: fb03 f202 mul.w r2, r3, r2 + 80164b2: 687b ldr r3, [r7, #4] + 80164b4: 6adb ldr r3, [r3, #44] ; 0x2c + 80164b6: 6979 ldr r1, [r7, #20] + 80164b8: fb01 f303 mul.w r3, r1, r3 + 80164bc: 1ad3 subs r3, r2, r3 + 80164be: 109a asrs r2, r3, #2 + 80164c0: 687b ldr r3, [r7, #4] + 80164c2: 6a5b ldr r3, [r3, #36] ; 0x24 + 80164c4: 4413 add r3, r2 + 80164c6: 62fb str r3, [r7, #44] ; 0x2c ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (_LV_TRANSFORM_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_y_256; - 801655c: 687b ldr r3, [r7, #4] - 801655e: 6adb ldr r3, [r3, #44] ; 0x2c - 8016560: 69ba ldr r2, [r7, #24] - 8016562: fb03 f202 mul.w r2, r3, r2 - 8016566: 687b ldr r3, [r7, #4] - 8016568: 6b1b ldr r3, [r3, #48] ; 0x30 - 801656a: 6979 ldr r1, [r7, #20] - 801656c: fb01 f303 mul.w r3, r1, r3 - 8016570: 4413 add r3, r2 - 8016572: 109a asrs r2, r3, #2 - 8016574: 687b ldr r3, [r7, #4] - 8016576: 6a9b ldr r3, [r3, #40] ; 0x28 - 8016578: 4413 add r3, r2 - 801657a: 62bb str r3, [r7, #40] ; 0x28 - 801657c: e04b b.n 8016616 <_lv_img_buf_transform+0x116> + 80164c8: 687b ldr r3, [r7, #4] + 80164ca: 6adb ldr r3, [r3, #44] ; 0x2c + 80164cc: 69ba ldr r2, [r7, #24] + 80164ce: fb03 f202 mul.w r2, r3, r2 + 80164d2: 687b ldr r3, [r7, #4] + 80164d4: 6b1b ldr r3, [r3, #48] ; 0x30 + 80164d6: 6979 ldr r1, [r7, #20] + 80164d8: fb01 f303 mul.w r3, r1, r3 + 80164dc: 4413 add r3, r2 + 80164de: 109a asrs r2, r3, #2 + 80164e0: 687b ldr r3, [r7, #4] + 80164e2: 6a9b ldr r3, [r3, #40] ; 0x28 + 80164e4: 4413 add r3, r2 + 80164e6: 62bb str r3, [r7, #40] ; 0x28 + 80164e8: e04b b.n 8016582 <_lv_img_buf_transform+0x116> } else if(dsc->cfg.angle == 0) { - 801657e: 687b ldr r3, [r7, #4] - 8016580: f9b3 300c ldrsh.w r3, [r3, #12] - 8016584: 2b00 cmp r3, #0 - 8016586: d118 bne.n 80165ba <_lv_img_buf_transform+0xba> + 80164ea: 687b ldr r3, [r7, #4] + 80164ec: f9b3 300c ldrsh.w r3, [r3, #12] + 80164f0: 2b00 cmp r3, #0 + 80164f2: d118 bne.n 8016526 <_lv_img_buf_transform+0xba> xt = (int32_t)((int32_t)xt * dsc->tmp.zoom_inv) >> _LV_ZOOM_INV_UPSCALE; - 8016588: 687b ldr r3, [r7, #4] - 801658a: 6b9b ldr r3, [r3, #56] ; 0x38 - 801658c: 69ba ldr r2, [r7, #24] - 801658e: fb02 f303 mul.w r3, r2, r3 - 8016592: 115b asrs r3, r3, #5 - 8016594: 61bb str r3, [r7, #24] + 80164f4: 687b ldr r3, [r7, #4] + 80164f6: 6b9b ldr r3, [r3, #56] ; 0x38 + 80164f8: 69ba ldr r2, [r7, #24] + 80164fa: fb02 f303 mul.w r3, r2, r3 + 80164fe: 115b asrs r3, r3, #5 + 8016500: 61bb str r3, [r7, #24] yt = (int32_t)((int32_t)yt * dsc->tmp.zoom_inv) >> _LV_ZOOM_INV_UPSCALE; - 8016596: 687b ldr r3, [r7, #4] - 8016598: 6b9b ldr r3, [r3, #56] ; 0x38 - 801659a: 697a ldr r2, [r7, #20] - 801659c: fb02 f303 mul.w r3, r2, r3 - 80165a0: 115b asrs r3, r3, #5 - 80165a2: 617b str r3, [r7, #20] + 8016502: 687b ldr r3, [r7, #4] + 8016504: 6b9b ldr r3, [r3, #56] ; 0x38 + 8016506: 697a ldr r2, [r7, #20] + 8016508: fb02 f303 mul.w r3, r2, r3 + 801650c: 115b asrs r3, r3, #5 + 801650e: 617b str r3, [r7, #20] xs = xt + dsc->tmp.pivot_x_256; - 80165a4: 687b ldr r3, [r7, #4] - 80165a6: 6a5b ldr r3, [r3, #36] ; 0x24 - 80165a8: 69ba ldr r2, [r7, #24] - 80165aa: 4413 add r3, r2 - 80165ac: 62fb str r3, [r7, #44] ; 0x2c + 8016510: 687b ldr r3, [r7, #4] + 8016512: 6a5b ldr r3, [r3, #36] ; 0x24 + 8016514: 69ba ldr r2, [r7, #24] + 8016516: 4413 add r3, r2 + 8016518: 62fb str r3, [r7, #44] ; 0x2c ys = yt + dsc->tmp.pivot_y_256; - 80165ae: 687b ldr r3, [r7, #4] - 80165b0: 6a9b ldr r3, [r3, #40] ; 0x28 - 80165b2: 697a ldr r2, [r7, #20] - 80165b4: 4413 add r3, r2 - 80165b6: 62bb str r3, [r7, #40] ; 0x28 - 80165b8: e02d b.n 8016616 <_lv_img_buf_transform+0x116> + 801651a: 687b ldr r3, [r7, #4] + 801651c: 6a9b ldr r3, [r3, #40] ; 0x28 + 801651e: 697a ldr r2, [r7, #20] + 8016520: 4413 add r3, r2 + 8016522: 62bb str r3, [r7, #40] ; 0x28 + 8016524: e02d b.n 8016582 <_lv_img_buf_transform+0x116> } else { xt = (int32_t)((int32_t)xt * dsc->tmp.zoom_inv) >> _LV_ZOOM_INV_UPSCALE; - 80165ba: 687b ldr r3, [r7, #4] - 80165bc: 6b9b ldr r3, [r3, #56] ; 0x38 - 80165be: 69ba ldr r2, [r7, #24] - 80165c0: fb02 f303 mul.w r3, r2, r3 - 80165c4: 115b asrs r3, r3, #5 - 80165c6: 61bb str r3, [r7, #24] + 8016526: 687b ldr r3, [r7, #4] + 8016528: 6b9b ldr r3, [r3, #56] ; 0x38 + 801652a: 69ba ldr r2, [r7, #24] + 801652c: fb02 f303 mul.w r3, r2, r3 + 8016530: 115b asrs r3, r3, #5 + 8016532: 61bb str r3, [r7, #24] yt = (int32_t)((int32_t)yt * dsc->tmp.zoom_inv) >> _LV_ZOOM_INV_UPSCALE; - 80165c8: 687b ldr r3, [r7, #4] - 80165ca: 6b9b ldr r3, [r3, #56] ; 0x38 - 80165cc: 697a ldr r2, [r7, #20] - 80165ce: fb02 f303 mul.w r3, r2, r3 - 80165d2: 115b asrs r3, r3, #5 - 80165d4: 617b str r3, [r7, #20] + 8016534: 687b ldr r3, [r7, #4] + 8016536: 6b9b ldr r3, [r3, #56] ; 0x38 + 8016538: 697a ldr r2, [r7, #20] + 801653a: fb02 f303 mul.w r3, r2, r3 + 801653e: 115b asrs r3, r3, #5 + 8016540: 617b str r3, [r7, #20] xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (_LV_TRANSFORM_TRIGO_SHIFT)) + dsc->tmp.pivot_x_256; - 80165d6: 687b ldr r3, [r7, #4] - 80165d8: 6b1b ldr r3, [r3, #48] ; 0x30 - 80165da: 69ba ldr r2, [r7, #24] - 80165dc: fb03 f202 mul.w r2, r3, r2 - 80165e0: 687b ldr r3, [r7, #4] - 80165e2: 6adb ldr r3, [r3, #44] ; 0x2c - 80165e4: 6979 ldr r1, [r7, #20] - 80165e6: fb01 f303 mul.w r3, r1, r3 - 80165ea: 1ad3 subs r3, r2, r3 - 80165ec: 129a asrs r2, r3, #10 - 80165ee: 687b ldr r3, [r7, #4] - 80165f0: 6a5b ldr r3, [r3, #36] ; 0x24 - 80165f2: 4413 add r3, r2 - 80165f4: 62fb str r3, [r7, #44] ; 0x2c + 8016542: 687b ldr r3, [r7, #4] + 8016544: 6b1b ldr r3, [r3, #48] ; 0x30 + 8016546: 69ba ldr r2, [r7, #24] + 8016548: fb03 f202 mul.w r2, r3, r2 + 801654c: 687b ldr r3, [r7, #4] + 801654e: 6adb ldr r3, [r3, #44] ; 0x2c + 8016550: 6979 ldr r1, [r7, #20] + 8016552: fb01 f303 mul.w r3, r1, r3 + 8016556: 1ad3 subs r3, r2, r3 + 8016558: 129a asrs r2, r3, #10 + 801655a: 687b ldr r3, [r7, #4] + 801655c: 6a5b ldr r3, [r3, #36] ; 0x24 + 801655e: 4413 add r3, r2 + 8016560: 62fb str r3, [r7, #44] ; 0x2c ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (_LV_TRANSFORM_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256; - 80165f6: 687b ldr r3, [r7, #4] - 80165f8: 6adb ldr r3, [r3, #44] ; 0x2c - 80165fa: 69ba ldr r2, [r7, #24] - 80165fc: fb03 f202 mul.w r2, r3, r2 - 8016600: 687b ldr r3, [r7, #4] - 8016602: 6b1b ldr r3, [r3, #48] ; 0x30 - 8016604: 6979 ldr r1, [r7, #20] - 8016606: fb01 f303 mul.w r3, r1, r3 - 801660a: 4413 add r3, r2 - 801660c: 129a asrs r2, r3, #10 - 801660e: 687b ldr r3, [r7, #4] - 8016610: 6a9b ldr r3, [r3, #40] ; 0x28 - 8016612: 4413 add r3, r2 - 8016614: 62bb str r3, [r7, #40] ; 0x28 + 8016562: 687b ldr r3, [r7, #4] + 8016564: 6adb ldr r3, [r3, #44] ; 0x2c + 8016566: 69ba ldr r2, [r7, #24] + 8016568: fb03 f202 mul.w r2, r3, r2 + 801656c: 687b ldr r3, [r7, #4] + 801656e: 6b1b ldr r3, [r3, #48] ; 0x30 + 8016570: 6979 ldr r1, [r7, #20] + 8016572: fb01 f303 mul.w r3, r1, r3 + 8016576: 4413 add r3, r2 + 8016578: 129a asrs r2, r3, #10 + 801657a: 687b ldr r3, [r7, #4] + 801657c: 6a9b ldr r3, [r3, #40] ; 0x28 + 801657e: 4413 add r3, r2 + 8016580: 62bb str r3, [r7, #40] ; 0x28 } /*Get the integer part of the source pixel*/ int32_t xs_int = xs >> 8; - 8016616: 6afb ldr r3, [r7, #44] ; 0x2c - 8016618: 121b asrs r3, r3, #8 - 801661a: 613b str r3, [r7, #16] + 8016582: 6afb ldr r3, [r7, #44] ; 0x2c + 8016584: 121b asrs r3, r3, #8 + 8016586: 613b str r3, [r7, #16] int32_t ys_int = ys >> 8; - 801661c: 6abb ldr r3, [r7, #40] ; 0x28 - 801661e: 121b asrs r3, r3, #8 - 8016620: 60fb str r3, [r7, #12] + 8016588: 6abb ldr r3, [r7, #40] ; 0x28 + 801658a: 121b asrs r3, r3, #8 + 801658c: 60fb str r3, [r7, #12] if(xs_int >= dsc->cfg.src_w) return false; - 8016622: 687b ldr r3, [r7, #4] - 8016624: f9b3 3004 ldrsh.w r3, [r3, #4] - 8016628: 461a mov r2, r3 - 801662a: 693b ldr r3, [r7, #16] - 801662c: 4293 cmp r3, r2 - 801662e: db01 blt.n 8016634 <_lv_img_buf_transform+0x134> - 8016630: 2300 movs r3, #0 - 8016632: e0cc b.n 80167ce <_lv_img_buf_transform+0x2ce> + 801658e: 687b ldr r3, [r7, #4] + 8016590: f9b3 3004 ldrsh.w r3, [r3, #4] + 8016594: 461a mov r2, r3 + 8016596: 693b ldr r3, [r7, #16] + 8016598: 4293 cmp r3, r2 + 801659a: db01 blt.n 80165a0 <_lv_img_buf_transform+0x134> + 801659c: 2300 movs r3, #0 + 801659e: e0cc b.n 801673a <_lv_img_buf_transform+0x2ce> else if(xs_int < 0) return false; - 8016634: 693b ldr r3, [r7, #16] - 8016636: 2b00 cmp r3, #0 - 8016638: da01 bge.n 801663e <_lv_img_buf_transform+0x13e> - 801663a: 2300 movs r3, #0 - 801663c: e0c7 b.n 80167ce <_lv_img_buf_transform+0x2ce> + 80165a0: 693b ldr r3, [r7, #16] + 80165a2: 2b00 cmp r3, #0 + 80165a4: da01 bge.n 80165aa <_lv_img_buf_transform+0x13e> + 80165a6: 2300 movs r3, #0 + 80165a8: e0c7 b.n 801673a <_lv_img_buf_transform+0x2ce> if(ys_int >= dsc->cfg.src_h) return false; - 801663e: 687b ldr r3, [r7, #4] - 8016640: f9b3 3006 ldrsh.w r3, [r3, #6] - 8016644: 461a mov r2, r3 - 8016646: 68fb ldr r3, [r7, #12] - 8016648: 4293 cmp r3, r2 - 801664a: db01 blt.n 8016650 <_lv_img_buf_transform+0x150> - 801664c: 2300 movs r3, #0 - 801664e: e0be b.n 80167ce <_lv_img_buf_transform+0x2ce> + 80165aa: 687b ldr r3, [r7, #4] + 80165ac: f9b3 3006 ldrsh.w r3, [r3, #6] + 80165b0: 461a mov r2, r3 + 80165b2: 68fb ldr r3, [r7, #12] + 80165b4: 4293 cmp r3, r2 + 80165b6: db01 blt.n 80165bc <_lv_img_buf_transform+0x150> + 80165b8: 2300 movs r3, #0 + 80165ba: e0be b.n 801673a <_lv_img_buf_transform+0x2ce> else if(ys_int < 0) return false; - 8016650: 68fb ldr r3, [r7, #12] - 8016652: 2b00 cmp r3, #0 - 8016654: da01 bge.n 801665a <_lv_img_buf_transform+0x15a> - 8016656: 2300 movs r3, #0 - 8016658: e0b9 b.n 80167ce <_lv_img_buf_transform+0x2ce> + 80165bc: 68fb ldr r3, [r7, #12] + 80165be: 2b00 cmp r3, #0 + 80165c0: da01 bge.n 80165c6 <_lv_img_buf_transform+0x15a> + 80165c2: 2300 movs r3, #0 + 80165c4: e0b9 b.n 801673a <_lv_img_buf_transform+0x2ce> uint8_t px_size; uint32_t pxi; if(dsc->tmp.native_color) { - 801665a: 687b ldr r3, [r7, #4] - 801665c: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 - 8016660: f003 0304 and.w r3, r3, #4 - 8016664: b2db uxtb r3, r3 - 8016666: 2b00 cmp r3, #0 - 8016668: d054 beq.n 8016714 <_lv_img_buf_transform+0x214> + 80165c6: 687b ldr r3, [r7, #4] + 80165c8: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 + 80165cc: f003 0304 and.w r3, r3, #4 + 80165d0: b2db uxtb r3, r3 + 80165d2: 2b00 cmp r3, #0 + 80165d4: d054 beq.n 8016680 <_lv_img_buf_transform+0x214> if(dsc->tmp.has_alpha == 0) { - 801666a: 687b ldr r3, [r7, #4] - 801666c: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 - 8016670: f003 0302 and.w r3, r3, #2 - 8016674: b2db uxtb r3, r3 - 8016676: 2b00 cmp r3, #0 - 8016678: d120 bne.n 80166bc <_lv_img_buf_transform+0x1bc> + 80165d6: 687b ldr r3, [r7, #4] + 80165d8: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 + 80165dc: f003 0302 and.w r3, r3, #2 + 80165e0: b2db uxtb r3, r3 + 80165e2: 2b00 cmp r3, #0 + 80165e4: d120 bne.n 8016628 <_lv_img_buf_transform+0x1bc> px_size = LV_COLOR_SIZE >> 3; - 801667a: 2302 movs r3, #2 - 801667c: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 80165e6: 2302 movs r3, #2 + 80165e8: f887 3027 strb.w r3, [r7, #39] ; 0x27 pxi = dsc->cfg.src_w * ys_int * px_size + xs_int * px_size; - 8016680: 687b ldr r3, [r7, #4] - 8016682: f9b3 3004 ldrsh.w r3, [r3, #4] - 8016686: 461a mov r2, r3 - 8016688: 68fb ldr r3, [r7, #12] - 801668a: fb02 f303 mul.w r3, r2, r3 - 801668e: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 - 8016692: fb03 f202 mul.w r2, r3, r2 - 8016696: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 801669a: 6939 ldr r1, [r7, #16] - 801669c: fb01 f303 mul.w r3, r1, r3 - 80166a0: 4413 add r3, r2 - 80166a2: 623b str r3, [r7, #32] + 80165ec: 687b ldr r3, [r7, #4] + 80165ee: f9b3 3004 ldrsh.w r3, [r3, #4] + 80165f2: 461a mov r2, r3 + 80165f4: 68fb ldr r3, [r7, #12] + 80165f6: fb02 f303 mul.w r3, r2, r3 + 80165fa: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 + 80165fe: fb03 f202 mul.w r2, r3, r2 + 8016602: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8016606: 6939 ldr r1, [r7, #16] + 8016608: fb01 f303 mul.w r3, r1, r3 + 801660c: 4413 add r3, r2 + 801660e: 623b str r3, [r7, #32] lv_memcpy_small(&dsc->res.color, &src_u8[pxi], px_size); - 80166a4: 687b ldr r3, [r7, #4] - 80166a6: f103 0014 add.w r0, r3, #20 - 80166aa: 69fa ldr r2, [r7, #28] - 80166ac: 6a3b ldr r3, [r7, #32] - 80166ae: 4413 add r3, r2 - 80166b0: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 - 80166b4: 4619 mov r1, r3 - 80166b6: f7ff f8fc bl 80158b2 - 80166ba: e04a b.n 8016752 <_lv_img_buf_transform+0x252> + 8016610: 687b ldr r3, [r7, #4] + 8016612: f103 0014 add.w r0, r3, #20 + 8016616: 69fa ldr r2, [r7, #28] + 8016618: 6a3b ldr r3, [r7, #32] + 801661a: 4413 add r3, r2 + 801661c: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 + 8016620: 4619 mov r1, r3 + 8016622: f7ff f8fc bl 801581e + 8016626: e04a b.n 80166be <_lv_img_buf_transform+0x252> } else { px_size = LV_IMG_PX_SIZE_ALPHA_BYTE; - 80166bc: 2303 movs r3, #3 - 80166be: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8016628: 2303 movs r3, #3 + 801662a: f887 3027 strb.w r3, [r7, #39] ; 0x27 pxi = dsc->cfg.src_w * ys_int * px_size + xs_int * px_size; - 80166c2: 687b ldr r3, [r7, #4] - 80166c4: f9b3 3004 ldrsh.w r3, [r3, #4] - 80166c8: 461a mov r2, r3 - 80166ca: 68fb ldr r3, [r7, #12] - 80166cc: fb02 f303 mul.w r3, r2, r3 - 80166d0: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 - 80166d4: fb03 f202 mul.w r2, r3, r2 - 80166d8: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80166dc: 6939 ldr r1, [r7, #16] - 80166de: fb01 f303 mul.w r3, r1, r3 - 80166e2: 4413 add r3, r2 - 80166e4: 623b str r3, [r7, #32] + 801662e: 687b ldr r3, [r7, #4] + 8016630: f9b3 3004 ldrsh.w r3, [r3, #4] + 8016634: 461a mov r2, r3 + 8016636: 68fb ldr r3, [r7, #12] + 8016638: fb02 f303 mul.w r3, r2, r3 + 801663c: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 + 8016640: fb03 f202 mul.w r2, r3, r2 + 8016644: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8016648: 6939 ldr r1, [r7, #16] + 801664a: fb01 f303 mul.w r3, r1, r3 + 801664e: 4413 add r3, r2 + 8016650: 623b str r3, [r7, #32] lv_memcpy_small(&dsc->res.color, &src_u8[pxi], px_size - 1); - 80166e6: 687b ldr r3, [r7, #4] - 80166e8: f103 0014 add.w r0, r3, #20 - 80166ec: 69fa ldr r2, [r7, #28] - 80166ee: 6a3b ldr r3, [r7, #32] - 80166f0: 18d1 adds r1, r2, r3 - 80166f2: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80166f6: 3b01 subs r3, #1 - 80166f8: 461a mov r2, r3 - 80166fa: f7ff f8da bl 80158b2 + 8016652: 687b ldr r3, [r7, #4] + 8016654: f103 0014 add.w r0, r3, #20 + 8016658: 69fa ldr r2, [r7, #28] + 801665a: 6a3b ldr r3, [r7, #32] + 801665c: 18d1 adds r1, r2, r3 + 801665e: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8016662: 3b01 subs r3, #1 + 8016664: 461a mov r2, r3 + 8016666: f7ff f8da bl 801581e dsc->res.opa = src_u8[pxi + px_size - 1]; - 80166fe: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 - 8016702: 6a3b ldr r3, [r7, #32] - 8016704: 4413 add r3, r2 - 8016706: 3b01 subs r3, #1 - 8016708: 69fa ldr r2, [r7, #28] - 801670a: 4413 add r3, r2 - 801670c: 781a ldrb r2, [r3, #0] - 801670e: 687b ldr r3, [r7, #4] - 8016710: 759a strb r2, [r3, #22] - 8016712: e01e b.n 8016752 <_lv_img_buf_transform+0x252> + 801666a: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 + 801666e: 6a3b ldr r3, [r7, #32] + 8016670: 4413 add r3, r2 + 8016672: 3b01 subs r3, #1 + 8016674: 69fa ldr r2, [r7, #28] + 8016676: 4413 add r3, r2 + 8016678: 781a ldrb r2, [r3, #0] + 801667a: 687b ldr r3, [r7, #4] + 801667c: 759a strb r2, [r3, #22] + 801667e: e01e b.n 80166be <_lv_img_buf_transform+0x252> } } else { pxi = 0; /*unused*/ - 8016714: 2300 movs r3, #0 - 8016716: 623b str r3, [r7, #32] + 8016680: 2300 movs r3, #0 + 8016682: 623b str r3, [r7, #32] px_size = 0; /*unused*/ - 8016718: 2300 movs r3, #0 - 801671a: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8016684: 2300 movs r3, #0 + 8016686: f887 3027 strb.w r3, [r7, #39] ; 0x27 dsc->res.color = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, xs_int, ys_int, dsc->cfg.color); - 801671e: 687b ldr r3, [r7, #4] - 8016720: f103 0018 add.w r0, r3, #24 - 8016724: 693b ldr r3, [r7, #16] - 8016726: b219 sxth r1, r3 - 8016728: 68fb ldr r3, [r7, #12] - 801672a: b21a sxth r2, r3 - 801672c: 687c ldr r4, [r7, #4] - 801672e: 687b ldr r3, [r7, #4] - 8016730: 8a1b ldrh r3, [r3, #16] - 8016732: f7ff f96d bl 8015a10 - 8016736: 82a0 strh r0, [r4, #20] + 801668a: 687b ldr r3, [r7, #4] + 801668c: f103 0018 add.w r0, r3, #24 + 8016690: 693b ldr r3, [r7, #16] + 8016692: b219 sxth r1, r3 + 8016694: 68fb ldr r3, [r7, #12] + 8016696: b21a sxth r2, r3 + 8016698: 687c ldr r4, [r7, #4] + 801669a: 687b ldr r3, [r7, #4] + 801669c: 8a1b ldrh r3, [r3, #16] + 801669e: f7ff f96d bl 801597c + 80166a2: 82a0 strh r0, [r4, #20] dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int); - 8016738: 687b ldr r3, [r7, #4] - 801673a: 3318 adds r3, #24 - 801673c: 693a ldr r2, [r7, #16] - 801673e: b211 sxth r1, r2 - 8016740: 68fa ldr r2, [r7, #12] - 8016742: b212 sxth r2, r2 - 8016744: 4618 mov r0, r3 - 8016746: f7ff faa7 bl 8015c98 - 801674a: 4603 mov r3, r0 - 801674c: 461a mov r2, r3 - 801674e: 687b ldr r3, [r7, #4] - 8016750: 759a strb r2, [r3, #22] + 80166a4: 687b ldr r3, [r7, #4] + 80166a6: 3318 adds r3, #24 + 80166a8: 693a ldr r2, [r7, #16] + 80166aa: b211 sxth r1, r2 + 80166ac: 68fa ldr r2, [r7, #12] + 80166ae: b212 sxth r2, r2 + 80166b0: 4618 mov r0, r3 + 80166b2: f7ff faa7 bl 8015c04 + 80166b6: 4603 mov r3, r0 + 80166b8: 461a mov r2, r3 + 80166ba: 687b ldr r3, [r7, #4] + 80166bc: 759a strb r2, [r3, #22] } if(dsc->tmp.chroma_keyed) { - 8016752: 687b ldr r3, [r7, #4] - 8016754: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 - 8016758: f003 0301 and.w r3, r3, #1 - 801675c: b2db uxtb r3, r3 - 801675e: 2b00 cmp r3, #0 - 8016760: d00c beq.n 801677c <_lv_img_buf_transform+0x27c> + 80166be: 687b ldr r3, [r7, #4] + 80166c0: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 + 80166c4: f003 0301 and.w r3, r3, #1 + 80166c8: b2db uxtb r3, r3 + 80166ca: 2b00 cmp r3, #0 + 80166cc: d00c beq.n 80166e8 <_lv_img_buf_transform+0x27c> lv_color_t ct = LV_COLOR_CHROMA_KEY; - 8016762: f44f 407f mov.w r0, #65280 ; 0xff00 - 8016766: f7ff f926 bl 80159b6 - 801676a: 4603 mov r3, r0 - 801676c: 813b strh r3, [r7, #8] + 80166ce: f44f 407f mov.w r0, #65280 ; 0xff00 + 80166d2: f7ff f926 bl 8015922 + 80166d6: 4603 mov r3, r0 + 80166d8: 813b strh r3, [r7, #8] if(dsc->res.color.full == ct.full) return false; - 801676e: 687b ldr r3, [r7, #4] - 8016770: 8a9a ldrh r2, [r3, #20] - 8016772: 893b ldrh r3, [r7, #8] - 8016774: 429a cmp r2, r3 - 8016776: d101 bne.n 801677c <_lv_img_buf_transform+0x27c> - 8016778: 2300 movs r3, #0 - 801677a: e028 b.n 80167ce <_lv_img_buf_transform+0x2ce> + 80166da: 687b ldr r3, [r7, #4] + 80166dc: 8a9a ldrh r2, [r3, #20] + 80166de: 893b ldrh r3, [r7, #8] + 80166e0: 429a cmp r2, r3 + 80166e2: d101 bne.n 80166e8 <_lv_img_buf_transform+0x27c> + 80166e4: 2300 movs r3, #0 + 80166e6: e028 b.n 801673a <_lv_img_buf_transform+0x2ce> } if(dsc->cfg.antialias == false) return true; - 801677c: 687b ldr r3, [r7, #4] - 801677e: 7cdb ldrb r3, [r3, #19] - 8016780: f083 0301 eor.w r3, r3, #1 - 8016784: b2db uxtb r3, r3 - 8016786: 2b00 cmp r3, #0 - 8016788: d001 beq.n 801678e <_lv_img_buf_transform+0x28e> - 801678a: 2301 movs r3, #1 - 801678c: e01f b.n 80167ce <_lv_img_buf_transform+0x2ce> + 80166e8: 687b ldr r3, [r7, #4] + 80166ea: 7cdb ldrb r3, [r3, #19] + 80166ec: f083 0301 eor.w r3, r3, #1 + 80166f0: b2db uxtb r3, r3 + 80166f2: 2b00 cmp r3, #0 + 80166f4: d001 beq.n 80166fa <_lv_img_buf_transform+0x28e> + 80166f6: 2301 movs r3, #1 + 80166f8: e01f b.n 801673a <_lv_img_buf_transform+0x2ce> dsc->tmp.xs = xs; - 801678e: 6afb ldr r3, [r7, #44] ; 0x2c - 8016790: b21a sxth r2, r3 - 8016792: 687b ldr r3, [r7, #4] - 8016794: 879a strh r2, [r3, #60] ; 0x3c + 80166fa: 6afb ldr r3, [r7, #44] ; 0x2c + 80166fc: b21a sxth r2, r3 + 80166fe: 687b ldr r3, [r7, #4] + 8016700: 879a strh r2, [r3, #60] ; 0x3c dsc->tmp.ys = ys; - 8016796: 6abb ldr r3, [r7, #40] ; 0x28 - 8016798: b21a sxth r2, r3 - 801679a: 687b ldr r3, [r7, #4] - 801679c: 87da strh r2, [r3, #62] ; 0x3e + 8016702: 6abb ldr r3, [r7, #40] ; 0x28 + 8016704: b21a sxth r2, r3 + 8016706: 687b ldr r3, [r7, #4] + 8016708: 87da strh r2, [r3, #62] ; 0x3e dsc->tmp.xs_int = xs_int; - 801679e: 693b ldr r3, [r7, #16] - 80167a0: b21a sxth r2, r3 - 80167a2: 687b ldr r3, [r7, #4] - 80167a4: f8a3 2040 strh.w r2, [r3, #64] ; 0x40 + 801670a: 693b ldr r3, [r7, #16] + 801670c: b21a sxth r2, r3 + 801670e: 687b ldr r3, [r7, #4] + 8016710: f8a3 2040 strh.w r2, [r3, #64] ; 0x40 dsc->tmp.ys_int = ys_int; - 80167a8: 68fb ldr r3, [r7, #12] - 80167aa: b21a sxth r2, r3 - 80167ac: 687b ldr r3, [r7, #4] - 80167ae: f8a3 2042 strh.w r2, [r3, #66] ; 0x42 + 8016714: 68fb ldr r3, [r7, #12] + 8016716: b21a sxth r2, r3 + 8016718: 687b ldr r3, [r7, #4] + 801671a: f8a3 2042 strh.w r2, [r3, #66] ; 0x42 dsc->tmp.pxi = pxi; - 80167b2: 687b ldr r3, [r7, #4] - 80167b4: 6a3a ldr r2, [r7, #32] - 80167b6: 645a str r2, [r3, #68] ; 0x44 + 801671e: 687b ldr r3, [r7, #4] + 8016720: 6a3a ldr r2, [r7, #32] + 8016722: 645a str r2, [r3, #68] ; 0x44 dsc->tmp.px_size = px_size; - 80167b8: 687b ldr r3, [r7, #4] - 80167ba: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 - 80167be: f883 2048 strb.w r2, [r3, #72] ; 0x48 + 8016724: 687b ldr r3, [r7, #4] + 8016726: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 + 801672a: f883 2048 strb.w r2, [r3, #72] ; 0x48 bool ret; ret = _lv_img_buf_transform_anti_alias(dsc); - 80167c2: 6878 ldr r0, [r7, #4] - 80167c4: f000 f807 bl 80167d6 <_lv_img_buf_transform_anti_alias> - 80167c8: 4603 mov r3, r0 - 80167ca: 72fb strb r3, [r7, #11] + 801672e: 6878 ldr r0, [r7, #4] + 8016730: f000 f807 bl 8016742 <_lv_img_buf_transform_anti_alias> + 8016734: 4603 mov r3, r0 + 8016736: 72fb strb r3, [r7, #11] return ret; - 80167cc: 7afb ldrb r3, [r7, #11] + 8016738: 7afb ldrb r3, [r7, #11] } - 80167ce: 4618 mov r0, r3 - 80167d0: 3734 adds r7, #52 ; 0x34 - 80167d2: 46bd mov sp, r7 - 80167d4: bd90 pop {r4, r7, pc} + 801673a: 4618 mov r0, r3 + 801673c: 3734 adds r7, #52 ; 0x34 + 801673e: 46bd mov sp, r7 + 8016740: bd90 pop {r4, r7, pc} -080167d6 <_lv_img_buf_transform_anti_alias>: +08016742 <_lv_img_buf_transform_anti_alias>: /** * Continue transformation by taking the neighbors into account * @param dsc pointer to the transformation descriptor */ bool _lv_img_buf_transform_anti_alias(lv_img_transform_dsc_t * dsc) { - 80167d6: b590 push {r4, r7, lr} - 80167d8: b093 sub sp, #76 ; 0x4c - 80167da: af00 add r7, sp, #0 - 80167dc: 6078 str r0, [r7, #4] + 8016742: b590 push {r4, r7, lr} + 8016744: b093 sub sp, #76 ; 0x4c + 8016746: af00 add r7, sp, #0 + 8016748: 6078 str r0, [r7, #4] const uint8_t * src_u8 = dsc->cfg.src; - 80167de: 687b ldr r3, [r7, #4] - 80167e0: 681b ldr r3, [r3, #0] - 80167e2: 633b str r3, [r7, #48] ; 0x30 + 801674a: 687b ldr r3, [r7, #4] + 801674c: 681b ldr r3, [r3, #0] + 801674e: 633b str r3, [r7, #48] ; 0x30 /*Get the fractional part of the source pixel*/ int xs_fract = dsc->tmp.xs & 0xff; - 80167e4: 687b ldr r3, [r7, #4] - 80167e6: f9b3 303c ldrsh.w r3, [r3, #60] ; 0x3c - 80167ea: b29b uxth r3, r3 - 80167ec: b2db uxtb r3, r3 - 80167ee: 62fb str r3, [r7, #44] ; 0x2c + 8016750: 687b ldr r3, [r7, #4] + 8016752: f9b3 303c ldrsh.w r3, [r3, #60] ; 0x3c + 8016756: b29b uxth r3, r3 + 8016758: b2db uxtb r3, r3 + 801675a: 62fb str r3, [r7, #44] ; 0x2c int ys_fract = dsc->tmp.ys & 0xff; - 80167f0: 687b ldr r3, [r7, #4] - 80167f2: f9b3 303e ldrsh.w r3, [r3, #62] ; 0x3e - 80167f6: b29b uxth r3, r3 - 80167f8: b2db uxtb r3, r3 - 80167fa: 62bb str r3, [r7, #40] ; 0x28 + 801675c: 687b ldr r3, [r7, #4] + 801675e: f9b3 303e ldrsh.w r3, [r3, #62] ; 0x3e + 8016762: b29b uxth r3, r3 + 8016764: b2db uxtb r3, r3 + 8016766: 62bb str r3, [r7, #40] ; 0x28 int32_t xn; /*x neighbor*/ lv_opa_t xr; /*x mix ratio*/ if(xs_fract < 0x70) { - 80167fc: 6afb ldr r3, [r7, #44] ; 0x2c - 80167fe: 2b6f cmp r3, #111 ; 0x6f - 8016800: dc12 bgt.n 8016828 <_lv_img_buf_transform_anti_alias+0x52> + 8016768: 6afb ldr r3, [r7, #44] ; 0x2c + 801676a: 2b6f cmp r3, #111 ; 0x6f + 801676c: dc12 bgt.n 8016794 <_lv_img_buf_transform_anti_alias+0x52> xn = - 1; - 8016802: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 8016806: 647b str r3, [r7, #68] ; 0x44 + 801676e: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 8016772: 647b str r3, [r7, #68] ; 0x44 if(dsc->tmp.xs_int + xn < 0) xn = 0; - 8016808: 687b ldr r3, [r7, #4] - 801680a: f9b3 3040 ldrsh.w r3, [r3, #64] ; 0x40 - 801680e: 461a mov r2, r3 - 8016810: 6c7b ldr r3, [r7, #68] ; 0x44 - 8016812: 4413 add r3, r2 - 8016814: 2b00 cmp r3, #0 - 8016816: da01 bge.n 801681c <_lv_img_buf_transform_anti_alias+0x46> - 8016818: 2300 movs r3, #0 - 801681a: 647b str r3, [r7, #68] ; 0x44 + 8016774: 687b ldr r3, [r7, #4] + 8016776: f9b3 3040 ldrsh.w r3, [r3, #64] ; 0x40 + 801677a: 461a mov r2, r3 + 801677c: 6c7b ldr r3, [r7, #68] ; 0x44 + 801677e: 4413 add r3, r2 + 8016780: 2b00 cmp r3, #0 + 8016782: da01 bge.n 8016788 <_lv_img_buf_transform_anti_alias+0x46> + 8016784: 2300 movs r3, #0 + 8016786: 647b str r3, [r7, #68] ; 0x44 xr = xs_fract + 0x80; - 801681c: 6afb ldr r3, [r7, #44] ; 0x2c - 801681e: b2db uxtb r3, r3 - 8016820: 3b80 subs r3, #128 ; 0x80 - 8016822: f887 3043 strb.w r3, [r7, #67] ; 0x43 - 8016826: e01d b.n 8016864 <_lv_img_buf_transform_anti_alias+0x8e> + 8016788: 6afb ldr r3, [r7, #44] ; 0x2c + 801678a: b2db uxtb r3, r3 + 801678c: 3b80 subs r3, #128 ; 0x80 + 801678e: f887 3043 strb.w r3, [r7, #67] ; 0x43 + 8016792: e01d b.n 80167d0 <_lv_img_buf_transform_anti_alias+0x8e> } else if(xs_fract > 0x90) { - 8016828: 6afb ldr r3, [r7, #44] ; 0x2c - 801682a: 2b90 cmp r3, #144 ; 0x90 - 801682c: dd15 ble.n 801685a <_lv_img_buf_transform_anti_alias+0x84> + 8016794: 6afb ldr r3, [r7, #44] ; 0x2c + 8016796: 2b90 cmp r3, #144 ; 0x90 + 8016798: dd15 ble.n 80167c6 <_lv_img_buf_transform_anti_alias+0x84> xn = 1; - 801682e: 2301 movs r3, #1 - 8016830: 647b str r3, [r7, #68] ; 0x44 + 801679a: 2301 movs r3, #1 + 801679c: 647b str r3, [r7, #68] ; 0x44 if(dsc->tmp.xs_int + xn >= dsc->cfg.src_w) xn = 0; - 8016832: 687b ldr r3, [r7, #4] - 8016834: f9b3 3040 ldrsh.w r3, [r3, #64] ; 0x40 - 8016838: 461a mov r2, r3 - 801683a: 6c7b ldr r3, [r7, #68] ; 0x44 - 801683c: 4413 add r3, r2 - 801683e: 687a ldr r2, [r7, #4] - 8016840: f9b2 2004 ldrsh.w r2, [r2, #4] - 8016844: 4293 cmp r3, r2 - 8016846: db01 blt.n 801684c <_lv_img_buf_transform_anti_alias+0x76> - 8016848: 2300 movs r3, #0 - 801684a: 647b str r3, [r7, #68] ; 0x44 + 801679e: 687b ldr r3, [r7, #4] + 80167a0: f9b3 3040 ldrsh.w r3, [r3, #64] ; 0x40 + 80167a4: 461a mov r2, r3 + 80167a6: 6c7b ldr r3, [r7, #68] ; 0x44 + 80167a8: 4413 add r3, r2 + 80167aa: 687a ldr r2, [r7, #4] + 80167ac: f9b2 2004 ldrsh.w r2, [r2, #4] + 80167b0: 4293 cmp r3, r2 + 80167b2: db01 blt.n 80167b8 <_lv_img_buf_transform_anti_alias+0x76> + 80167b4: 2300 movs r3, #0 + 80167b6: 647b str r3, [r7, #68] ; 0x44 xr = (0xFF - xs_fract) + 0x80; - 801684c: 6afb ldr r3, [r7, #44] ; 0x2c - 801684e: b2db uxtb r3, r3 - 8016850: f1c3 037f rsb r3, r3, #127 ; 0x7f - 8016854: f887 3043 strb.w r3, [r7, #67] ; 0x43 - 8016858: e004 b.n 8016864 <_lv_img_buf_transform_anti_alias+0x8e> + 80167b8: 6afb ldr r3, [r7, #44] ; 0x2c + 80167ba: b2db uxtb r3, r3 + 80167bc: f1c3 037f rsb r3, r3, #127 ; 0x7f + 80167c0: f887 3043 strb.w r3, [r7, #67] ; 0x43 + 80167c4: e004 b.n 80167d0 <_lv_img_buf_transform_anti_alias+0x8e> } else { xn = 0; - 801685a: 2300 movs r3, #0 - 801685c: 647b str r3, [r7, #68] ; 0x44 + 80167c6: 2300 movs r3, #0 + 80167c8: 647b str r3, [r7, #68] ; 0x44 xr = 0xFF; - 801685e: 23ff movs r3, #255 ; 0xff - 8016860: f887 3043 strb.w r3, [r7, #67] ; 0x43 + 80167ca: 23ff movs r3, #255 ; 0xff + 80167cc: f887 3043 strb.w r3, [r7, #67] ; 0x43 } int32_t yn; /*x neighbor*/ lv_opa_t yr; /*x mix ratio*/ if(ys_fract < 0x70) { - 8016864: 6abb ldr r3, [r7, #40] ; 0x28 - 8016866: 2b6f cmp r3, #111 ; 0x6f - 8016868: dc12 bgt.n 8016890 <_lv_img_buf_transform_anti_alias+0xba> + 80167d0: 6abb ldr r3, [r7, #40] ; 0x28 + 80167d2: 2b6f cmp r3, #111 ; 0x6f + 80167d4: dc12 bgt.n 80167fc <_lv_img_buf_transform_anti_alias+0xba> yn = - 1; - 801686a: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 801686e: 63fb str r3, [r7, #60] ; 0x3c + 80167d6: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 80167da: 63fb str r3, [r7, #60] ; 0x3c if(dsc->tmp.ys_int + yn < 0) yn = 0; - 8016870: 687b ldr r3, [r7, #4] - 8016872: f9b3 3042 ldrsh.w r3, [r3, #66] ; 0x42 - 8016876: 461a mov r2, r3 - 8016878: 6bfb ldr r3, [r7, #60] ; 0x3c - 801687a: 4413 add r3, r2 - 801687c: 2b00 cmp r3, #0 - 801687e: da01 bge.n 8016884 <_lv_img_buf_transform_anti_alias+0xae> - 8016880: 2300 movs r3, #0 - 8016882: 63fb str r3, [r7, #60] ; 0x3c + 80167dc: 687b ldr r3, [r7, #4] + 80167de: f9b3 3042 ldrsh.w r3, [r3, #66] ; 0x42 + 80167e2: 461a mov r2, r3 + 80167e4: 6bfb ldr r3, [r7, #60] ; 0x3c + 80167e6: 4413 add r3, r2 + 80167e8: 2b00 cmp r3, #0 + 80167ea: da01 bge.n 80167f0 <_lv_img_buf_transform_anti_alias+0xae> + 80167ec: 2300 movs r3, #0 + 80167ee: 63fb str r3, [r7, #60] ; 0x3c yr = ys_fract + 0x80; - 8016884: 6abb ldr r3, [r7, #40] ; 0x28 - 8016886: b2db uxtb r3, r3 - 8016888: 3b80 subs r3, #128 ; 0x80 - 801688a: f887 303b strb.w r3, [r7, #59] ; 0x3b - 801688e: e01d b.n 80168cc <_lv_img_buf_transform_anti_alias+0xf6> + 80167f0: 6abb ldr r3, [r7, #40] ; 0x28 + 80167f2: b2db uxtb r3, r3 + 80167f4: 3b80 subs r3, #128 ; 0x80 + 80167f6: f887 303b strb.w r3, [r7, #59] ; 0x3b + 80167fa: e01d b.n 8016838 <_lv_img_buf_transform_anti_alias+0xf6> } else if(ys_fract > 0x90) { - 8016890: 6abb ldr r3, [r7, #40] ; 0x28 - 8016892: 2b90 cmp r3, #144 ; 0x90 - 8016894: dd15 ble.n 80168c2 <_lv_img_buf_transform_anti_alias+0xec> + 80167fc: 6abb ldr r3, [r7, #40] ; 0x28 + 80167fe: 2b90 cmp r3, #144 ; 0x90 + 8016800: dd15 ble.n 801682e <_lv_img_buf_transform_anti_alias+0xec> yn = 1; - 8016896: 2301 movs r3, #1 - 8016898: 63fb str r3, [r7, #60] ; 0x3c + 8016802: 2301 movs r3, #1 + 8016804: 63fb str r3, [r7, #60] ; 0x3c if(dsc->tmp.ys_int + yn >= dsc->cfg.src_h) yn = 0; - 801689a: 687b ldr r3, [r7, #4] - 801689c: f9b3 3042 ldrsh.w r3, [r3, #66] ; 0x42 - 80168a0: 461a mov r2, r3 - 80168a2: 6bfb ldr r3, [r7, #60] ; 0x3c - 80168a4: 4413 add r3, r2 - 80168a6: 687a ldr r2, [r7, #4] - 80168a8: f9b2 2006 ldrsh.w r2, [r2, #6] - 80168ac: 4293 cmp r3, r2 - 80168ae: db01 blt.n 80168b4 <_lv_img_buf_transform_anti_alias+0xde> - 80168b0: 2300 movs r3, #0 - 80168b2: 63fb str r3, [r7, #60] ; 0x3c + 8016806: 687b ldr r3, [r7, #4] + 8016808: f9b3 3042 ldrsh.w r3, [r3, #66] ; 0x42 + 801680c: 461a mov r2, r3 + 801680e: 6bfb ldr r3, [r7, #60] ; 0x3c + 8016810: 4413 add r3, r2 + 8016812: 687a ldr r2, [r7, #4] + 8016814: f9b2 2006 ldrsh.w r2, [r2, #6] + 8016818: 4293 cmp r3, r2 + 801681a: db01 blt.n 8016820 <_lv_img_buf_transform_anti_alias+0xde> + 801681c: 2300 movs r3, #0 + 801681e: 63fb str r3, [r7, #60] ; 0x3c yr = (0xFF - ys_fract) + 0x80; - 80168b4: 6abb ldr r3, [r7, #40] ; 0x28 - 80168b6: b2db uxtb r3, r3 - 80168b8: f1c3 037f rsb r3, r3, #127 ; 0x7f - 80168bc: f887 303b strb.w r3, [r7, #59] ; 0x3b - 80168c0: e004 b.n 80168cc <_lv_img_buf_transform_anti_alias+0xf6> + 8016820: 6abb ldr r3, [r7, #40] ; 0x28 + 8016822: b2db uxtb r3, r3 + 8016824: f1c3 037f rsb r3, r3, #127 ; 0x7f + 8016828: f887 303b strb.w r3, [r7, #59] ; 0x3b + 801682c: e004 b.n 8016838 <_lv_img_buf_transform_anti_alias+0xf6> } else { yn = 0; - 80168c2: 2300 movs r3, #0 - 80168c4: 63fb str r3, [r7, #60] ; 0x3c + 801682e: 2300 movs r3, #0 + 8016830: 63fb str r3, [r7, #60] ; 0x3c yr = 0xFF; - 80168c6: 23ff movs r3, #255 ; 0xff - 80168c8: f887 303b strb.w r3, [r7, #59] ; 0x3b + 8016832: 23ff movs r3, #255 ; 0xff + 8016834: f887 303b strb.w r3, [r7, #59] ; 0x3b } lv_color_t c00 = dsc->res.color; - 80168cc: 687b ldr r3, [r7, #4] - 80168ce: 8a9b ldrh r3, [r3, #20] - 80168d0: 843b strh r3, [r7, #32] + 8016838: 687b ldr r3, [r7, #4] + 801683a: 8a9b ldrh r3, [r3, #20] + 801683c: 843b strh r3, [r7, #32] lv_color_t c01; lv_color_t c10; lv_color_t c11; lv_opa_t a00 = dsc->res.opa; - 80168d2: 687b ldr r3, [r7, #4] - 80168d4: 7d9b ldrb r3, [r3, #22] - 80168d6: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 801683e: 687b ldr r3, [r7, #4] + 8016840: 7d9b ldrb r3, [r3, #22] + 8016842: f887 3027 strb.w r3, [r7, #39] ; 0x27 lv_opa_t a10 = 0; - 80168da: 2300 movs r3, #0 - 80168dc: f887 303a strb.w r3, [r7, #58] ; 0x3a + 8016846: 2300 movs r3, #0 + 8016848: f887 303a strb.w r3, [r7, #58] ; 0x3a lv_opa_t a01 = 0; - 80168e0: 2300 movs r3, #0 - 80168e2: f887 3039 strb.w r3, [r7, #57] ; 0x39 + 801684c: 2300 movs r3, #0 + 801684e: f887 3039 strb.w r3, [r7, #57] ; 0x39 lv_opa_t a11 = 0; - 80168e6: 2300 movs r3, #0 - 80168e8: f887 3038 strb.w r3, [r7, #56] ; 0x38 + 8016852: 2300 movs r3, #0 + 8016854: f887 3038 strb.w r3, [r7, #56] ; 0x38 if(dsc->tmp.native_color) { - 80168ec: 687b ldr r3, [r7, #4] - 80168ee: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 - 80168f2: f003 0304 and.w r3, r3, #4 - 80168f6: b2db uxtb r3, r3 - 80168f8: 2b00 cmp r3, #0 - 80168fa: f000 80a2 beq.w 8016a42 <_lv_img_buf_transform_anti_alias+0x26c> + 8016858: 687b ldr r3, [r7, #4] + 801685a: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 + 801685e: f003 0304 and.w r3, r3, #4 + 8016862: b2db uxtb r3, r3 + 8016864: 2b00 cmp r3, #0 + 8016866: f000 80a2 beq.w 80169ae <_lv_img_buf_transform_anti_alias+0x26c> lv_memcpy_small(&c01, &src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn], sizeof(lv_color_t)); - 80168fe: 687b ldr r3, [r7, #4] - 8016900: 6c5b ldr r3, [r3, #68] ; 0x44 - 8016902: 687a ldr r2, [r7, #4] - 8016904: f892 2048 ldrb.w r2, [r2, #72] ; 0x48 - 8016908: 4611 mov r1, r2 - 801690a: 6c7a ldr r2, [r7, #68] ; 0x44 - 801690c: fb01 f202 mul.w r2, r1, r2 - 8016910: 4413 add r3, r2 - 8016912: 6b3a ldr r2, [r7, #48] ; 0x30 - 8016914: 18d1 adds r1, r2, r3 - 8016916: f107 031c add.w r3, r7, #28 - 801691a: 2202 movs r2, #2 - 801691c: 4618 mov r0, r3 - 801691e: f7fe ffc8 bl 80158b2 + 801686a: 687b ldr r3, [r7, #4] + 801686c: 6c5b ldr r3, [r3, #68] ; 0x44 + 801686e: 687a ldr r2, [r7, #4] + 8016870: f892 2048 ldrb.w r2, [r2, #72] ; 0x48 + 8016874: 4611 mov r1, r2 + 8016876: 6c7a ldr r2, [r7, #68] ; 0x44 + 8016878: fb01 f202 mul.w r2, r1, r2 + 801687c: 4413 add r3, r2 + 801687e: 6b3a ldr r2, [r7, #48] ; 0x30 + 8016880: 18d1 adds r1, r2, r3 + 8016882: f107 031c add.w r3, r7, #28 + 8016886: 2202 movs r2, #2 + 8016888: 4618 mov r0, r3 + 801688a: f7fe ffc8 bl 801581e lv_memcpy_small(&c10, &src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn], sizeof(lv_color_t)); - 8016922: 687b ldr r3, [r7, #4] - 8016924: 6c5b ldr r3, [r3, #68] ; 0x44 - 8016926: 687a ldr r2, [r7, #4] - 8016928: f9b2 2004 ldrsh.w r2, [r2, #4] - 801692c: 4611 mov r1, r2 - 801692e: 687a ldr r2, [r7, #4] - 8016930: f892 2048 ldrb.w r2, [r2, #72] ; 0x48 - 8016934: fb01 f202 mul.w r2, r1, r2 - 8016938: 6bf9 ldr r1, [r7, #60] ; 0x3c - 801693a: fb01 f202 mul.w r2, r1, r2 - 801693e: 4413 add r3, r2 - 8016940: 6b3a ldr r2, [r7, #48] ; 0x30 - 8016942: 18d1 adds r1, r2, r3 - 8016944: f107 0318 add.w r3, r7, #24 - 8016948: 2202 movs r2, #2 - 801694a: 4618 mov r0, r3 - 801694c: f7fe ffb1 bl 80158b2 + 801688e: 687b ldr r3, [r7, #4] + 8016890: 6c5b ldr r3, [r3, #68] ; 0x44 + 8016892: 687a ldr r2, [r7, #4] + 8016894: f9b2 2004 ldrsh.w r2, [r2, #4] + 8016898: 4611 mov r1, r2 + 801689a: 687a ldr r2, [r7, #4] + 801689c: f892 2048 ldrb.w r2, [r2, #72] ; 0x48 + 80168a0: fb01 f202 mul.w r2, r1, r2 + 80168a4: 6bf9 ldr r1, [r7, #60] ; 0x3c + 80168a6: fb01 f202 mul.w r2, r1, r2 + 80168aa: 4413 add r3, r2 + 80168ac: 6b3a ldr r2, [r7, #48] ; 0x30 + 80168ae: 18d1 adds r1, r2, r3 + 80168b0: f107 0318 add.w r3, r7, #24 + 80168b4: 2202 movs r2, #2 + 80168b6: 4618 mov r0, r3 + 80168b8: f7fe ffb1 bl 801581e lv_memcpy_small(&c11, &src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size * xn], - 8016950: 687b ldr r3, [r7, #4] - 8016952: 6c5a ldr r2, [r3, #68] ; 0x44 - 8016954: 687b ldr r3, [r7, #4] - 8016956: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 801695a: 4619 mov r1, r3 - 801695c: 6c7b ldr r3, [r7, #68] ; 0x44 - 801695e: fb01 f303 mul.w r3, r1, r3 - 8016962: 4618 mov r0, r3 - 8016964: 687b ldr r3, [r7, #4] - 8016966: f9b3 3004 ldrsh.w r3, [r3, #4] - 801696a: 4619 mov r1, r3 - 801696c: 687b ldr r3, [r7, #4] - 801696e: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 8016972: fb01 f303 mul.w r3, r1, r3 - 8016976: 6bf9 ldr r1, [r7, #60] ; 0x3c - 8016978: fb01 f303 mul.w r3, r1, r3 - 801697c: 4403 add r3, r0 - 801697e: 4413 add r3, r2 - 8016980: 6b3a ldr r2, [r7, #48] ; 0x30 - 8016982: 18d1 adds r1, r2, r3 - 8016984: f107 0314 add.w r3, r7, #20 - 8016988: 2202 movs r2, #2 - 801698a: 4618 mov r0, r3 - 801698c: f7fe ff91 bl 80158b2 + 80168bc: 687b ldr r3, [r7, #4] + 80168be: 6c5a ldr r2, [r3, #68] ; 0x44 + 80168c0: 687b ldr r3, [r7, #4] + 80168c2: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 80168c6: 4619 mov r1, r3 + 80168c8: 6c7b ldr r3, [r7, #68] ; 0x44 + 80168ca: fb01 f303 mul.w r3, r1, r3 + 80168ce: 4618 mov r0, r3 + 80168d0: 687b ldr r3, [r7, #4] + 80168d2: f9b3 3004 ldrsh.w r3, [r3, #4] + 80168d6: 4619 mov r1, r3 + 80168d8: 687b ldr r3, [r7, #4] + 80168da: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 80168de: fb01 f303 mul.w r3, r1, r3 + 80168e2: 6bf9 ldr r1, [r7, #60] ; 0x3c + 80168e4: fb01 f303 mul.w r3, r1, r3 + 80168e8: 4403 add r3, r0 + 80168ea: 4413 add r3, r2 + 80168ec: 6b3a ldr r2, [r7, #48] ; 0x30 + 80168ee: 18d1 adds r1, r2, r3 + 80168f0: f107 0314 add.w r3, r7, #20 + 80168f4: 2202 movs r2, #2 + 80168f6: 4618 mov r0, r3 + 80168f8: f7fe ff91 bl 801581e sizeof(lv_color_t)); if(dsc->tmp.has_alpha) { - 8016990: 687b ldr r3, [r7, #4] - 8016992: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 - 8016996: f003 0302 and.w r3, r3, #2 - 801699a: b2db uxtb r3, r3 - 801699c: 2b00 cmp r3, #0 - 801699e: f000 80e2 beq.w 8016b66 <_lv_img_buf_transform_anti_alias+0x390> + 80168fc: 687b ldr r3, [r7, #4] + 80168fe: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 + 8016902: f003 0302 and.w r3, r3, #2 + 8016906: b2db uxtb r3, r3 + 8016908: 2b00 cmp r3, #0 + 801690a: f000 80e2 beq.w 8016ad2 <_lv_img_buf_transform_anti_alias+0x390> a10 = src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1]; - 80169a2: 687b ldr r3, [r7, #4] - 80169a4: 6c5b ldr r3, [r3, #68] ; 0x44 - 80169a6: 687a ldr r2, [r7, #4] - 80169a8: f892 2048 ldrb.w r2, [r2, #72] ; 0x48 - 80169ac: 4611 mov r1, r2 - 80169ae: 6c7a ldr r2, [r7, #68] ; 0x44 - 80169b0: fb01 f202 mul.w r2, r1, r2 - 80169b4: 4413 add r3, r2 - 80169b6: 687a ldr r2, [r7, #4] - 80169b8: f892 2048 ldrb.w r2, [r2, #72] ; 0x48 - 80169bc: 4413 add r3, r2 - 80169be: 3b01 subs r3, #1 - 80169c0: 6b3a ldr r2, [r7, #48] ; 0x30 - 80169c2: 4413 add r3, r2 - 80169c4: 781b ldrb r3, [r3, #0] - 80169c6: f887 303a strb.w r3, [r7, #58] ; 0x3a + 801690e: 687b ldr r3, [r7, #4] + 8016910: 6c5b ldr r3, [r3, #68] ; 0x44 + 8016912: 687a ldr r2, [r7, #4] + 8016914: f892 2048 ldrb.w r2, [r2, #72] ; 0x48 + 8016918: 4611 mov r1, r2 + 801691a: 6c7a ldr r2, [r7, #68] ; 0x44 + 801691c: fb01 f202 mul.w r2, r1, r2 + 8016920: 4413 add r3, r2 + 8016922: 687a ldr r2, [r7, #4] + 8016924: f892 2048 ldrb.w r2, [r2, #72] ; 0x48 + 8016928: 4413 add r3, r2 + 801692a: 3b01 subs r3, #1 + 801692c: 6b3a ldr r2, [r7, #48] ; 0x30 + 801692e: 4413 add r3, r2 + 8016930: 781b ldrb r3, [r3, #0] + 8016932: f887 303a strb.w r3, [r7, #58] ; 0x3a a01 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size - 1]; - 80169ca: 687b ldr r3, [r7, #4] - 80169cc: 6c5b ldr r3, [r3, #68] ; 0x44 - 80169ce: 687a ldr r2, [r7, #4] - 80169d0: f9b2 2004 ldrsh.w r2, [r2, #4] - 80169d4: 4611 mov r1, r2 - 80169d6: 687a ldr r2, [r7, #4] - 80169d8: f892 2048 ldrb.w r2, [r2, #72] ; 0x48 - 80169dc: fb01 f202 mul.w r2, r1, r2 - 80169e0: 6bf9 ldr r1, [r7, #60] ; 0x3c - 80169e2: fb01 f202 mul.w r2, r1, r2 - 80169e6: 4413 add r3, r2 - 80169e8: 687a ldr r2, [r7, #4] - 80169ea: f892 2048 ldrb.w r2, [r2, #72] ; 0x48 - 80169ee: 4413 add r3, r2 - 80169f0: 3b01 subs r3, #1 - 80169f2: 6b3a ldr r2, [r7, #48] ; 0x30 - 80169f4: 4413 add r3, r2 - 80169f6: 781b ldrb r3, [r3, #0] - 80169f8: f887 3039 strb.w r3, [r7, #57] ; 0x39 + 8016936: 687b ldr r3, [r7, #4] + 8016938: 6c5b ldr r3, [r3, #68] ; 0x44 + 801693a: 687a ldr r2, [r7, #4] + 801693c: f9b2 2004 ldrsh.w r2, [r2, #4] + 8016940: 4611 mov r1, r2 + 8016942: 687a ldr r2, [r7, #4] + 8016944: f892 2048 ldrb.w r2, [r2, #72] ; 0x48 + 8016948: fb01 f202 mul.w r2, r1, r2 + 801694c: 6bf9 ldr r1, [r7, #60] ; 0x3c + 801694e: fb01 f202 mul.w r2, r1, r2 + 8016952: 4413 add r3, r2 + 8016954: 687a ldr r2, [r7, #4] + 8016956: f892 2048 ldrb.w r2, [r2, #72] ; 0x48 + 801695a: 4413 add r3, r2 + 801695c: 3b01 subs r3, #1 + 801695e: 6b3a ldr r2, [r7, #48] ; 0x30 + 8016960: 4413 add r3, r2 + 8016962: 781b ldrb r3, [r3, #0] + 8016964: f887 3039 strb.w r3, [r7, #57] ; 0x39 a11 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1]; - 80169fc: 687b ldr r3, [r7, #4] - 80169fe: 6c5a ldr r2, [r3, #68] ; 0x44 - 8016a00: 687b ldr r3, [r7, #4] - 8016a02: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 8016a06: 4619 mov r1, r3 - 8016a08: 6c7b ldr r3, [r7, #68] ; 0x44 - 8016a0a: fb01 f303 mul.w r3, r1, r3 - 8016a0e: 4618 mov r0, r3 - 8016a10: 687b ldr r3, [r7, #4] - 8016a12: f9b3 3004 ldrsh.w r3, [r3, #4] - 8016a16: 4619 mov r1, r3 - 8016a18: 687b ldr r3, [r7, #4] - 8016a1a: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 8016a1e: fb01 f303 mul.w r3, r1, r3 - 8016a22: 6bf9 ldr r1, [r7, #60] ; 0x3c - 8016a24: fb01 f303 mul.w r3, r1, r3 - 8016a28: 4403 add r3, r0 - 8016a2a: 4413 add r3, r2 - 8016a2c: 687a ldr r2, [r7, #4] - 8016a2e: f892 2048 ldrb.w r2, [r2, #72] ; 0x48 - 8016a32: 4413 add r3, r2 - 8016a34: 3b01 subs r3, #1 - 8016a36: 6b3a ldr r2, [r7, #48] ; 0x30 - 8016a38: 4413 add r3, r2 - 8016a3a: 781b ldrb r3, [r3, #0] - 8016a3c: f887 3038 strb.w r3, [r7, #56] ; 0x38 - 8016a40: e091 b.n 8016b66 <_lv_img_buf_transform_anti_alias+0x390> + 8016968: 687b ldr r3, [r7, #4] + 801696a: 6c5a ldr r2, [r3, #68] ; 0x44 + 801696c: 687b ldr r3, [r7, #4] + 801696e: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 8016972: 4619 mov r1, r3 + 8016974: 6c7b ldr r3, [r7, #68] ; 0x44 + 8016976: fb01 f303 mul.w r3, r1, r3 + 801697a: 4618 mov r0, r3 + 801697c: 687b ldr r3, [r7, #4] + 801697e: f9b3 3004 ldrsh.w r3, [r3, #4] + 8016982: 4619 mov r1, r3 + 8016984: 687b ldr r3, [r7, #4] + 8016986: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 801698a: fb01 f303 mul.w r3, r1, r3 + 801698e: 6bf9 ldr r1, [r7, #60] ; 0x3c + 8016990: fb01 f303 mul.w r3, r1, r3 + 8016994: 4403 add r3, r0 + 8016996: 4413 add r3, r2 + 8016998: 687a ldr r2, [r7, #4] + 801699a: f892 2048 ldrb.w r2, [r2, #72] ; 0x48 + 801699e: 4413 add r3, r2 + 80169a0: 3b01 subs r3, #1 + 80169a2: 6b3a ldr r2, [r7, #48] ; 0x30 + 80169a4: 4413 add r3, r2 + 80169a6: 781b ldrb r3, [r3, #0] + 80169a8: f887 3038 strb.w r3, [r7, #56] ; 0x38 + 80169ac: e091 b.n 8016ad2 <_lv_img_buf_transform_anti_alias+0x390> } } else { c01 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int, dsc->cfg.color); - 8016a42: 687b ldr r3, [r7, #4] - 8016a44: f103 0018 add.w r0, r3, #24 - 8016a48: 687b ldr r3, [r7, #4] - 8016a4a: f9b3 3040 ldrsh.w r3, [r3, #64] ; 0x40 - 8016a4e: b29a uxth r2, r3 - 8016a50: 6c7b ldr r3, [r7, #68] ; 0x44 - 8016a52: b29b uxth r3, r3 - 8016a54: 4413 add r3, r2 - 8016a56: b29b uxth r3, r3 - 8016a58: b219 sxth r1, r3 - 8016a5a: 687b ldr r3, [r7, #4] - 8016a5c: f9b3 2042 ldrsh.w r2, [r3, #66] ; 0x42 - 8016a60: 687b ldr r3, [r7, #4] - 8016a62: 8a1b ldrh r3, [r3, #16] - 8016a64: f7fe ffd4 bl 8015a10 - 8016a68: 4603 mov r3, r0 - 8016a6a: 83bb strh r3, [r7, #28] + 80169ae: 687b ldr r3, [r7, #4] + 80169b0: f103 0018 add.w r0, r3, #24 + 80169b4: 687b ldr r3, [r7, #4] + 80169b6: f9b3 3040 ldrsh.w r3, [r3, #64] ; 0x40 + 80169ba: b29a uxth r2, r3 + 80169bc: 6c7b ldr r3, [r7, #68] ; 0x44 + 80169be: b29b uxth r3, r3 + 80169c0: 4413 add r3, r2 + 80169c2: b29b uxth r3, r3 + 80169c4: b219 sxth r1, r3 + 80169c6: 687b ldr r3, [r7, #4] + 80169c8: f9b3 2042 ldrsh.w r2, [r3, #66] ; 0x42 + 80169cc: 687b ldr r3, [r7, #4] + 80169ce: 8a1b ldrh r3, [r3, #16] + 80169d0: f7fe ffd4 bl 801597c + 80169d4: 4603 mov r3, r0 + 80169d6: 83bb strh r3, [r7, #28] c10 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn, dsc->cfg.color); - 8016a6c: 687b ldr r3, [r7, #4] - 8016a6e: f103 0018 add.w r0, r3, #24 - 8016a72: 687b ldr r3, [r7, #4] - 8016a74: f9b3 1040 ldrsh.w r1, [r3, #64] ; 0x40 - 8016a78: 687b ldr r3, [r7, #4] - 8016a7a: f9b3 3042 ldrsh.w r3, [r3, #66] ; 0x42 - 8016a7e: b29a uxth r2, r3 - 8016a80: 6bfb ldr r3, [r7, #60] ; 0x3c - 8016a82: b29b uxth r3, r3 - 8016a84: 4413 add r3, r2 - 8016a86: b29b uxth r3, r3 - 8016a88: b21a sxth r2, r3 - 8016a8a: 687b ldr r3, [r7, #4] - 8016a8c: 8a1b ldrh r3, [r3, #16] - 8016a8e: f7fe ffbf bl 8015a10 - 8016a92: 4603 mov r3, r0 - 8016a94: 833b strh r3, [r7, #24] + 80169d8: 687b ldr r3, [r7, #4] + 80169da: f103 0018 add.w r0, r3, #24 + 80169de: 687b ldr r3, [r7, #4] + 80169e0: f9b3 1040 ldrsh.w r1, [r3, #64] ; 0x40 + 80169e4: 687b ldr r3, [r7, #4] + 80169e6: f9b3 3042 ldrsh.w r3, [r3, #66] ; 0x42 + 80169ea: b29a uxth r2, r3 + 80169ec: 6bfb ldr r3, [r7, #60] ; 0x3c + 80169ee: b29b uxth r3, r3 + 80169f0: 4413 add r3, r2 + 80169f2: b29b uxth r3, r3 + 80169f4: b21a sxth r2, r3 + 80169f6: 687b ldr r3, [r7, #4] + 80169f8: 8a1b ldrh r3, [r3, #16] + 80169fa: f7fe ffbf bl 801597c + 80169fe: 4603 mov r3, r0 + 8016a00: 833b strh r3, [r7, #24] c11 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn, dsc->cfg.color); - 8016a96: 687b ldr r3, [r7, #4] - 8016a98: f103 0018 add.w r0, r3, #24 - 8016a9c: 687b ldr r3, [r7, #4] - 8016a9e: f9b3 3040 ldrsh.w r3, [r3, #64] ; 0x40 - 8016aa2: b29a uxth r2, r3 - 8016aa4: 6c7b ldr r3, [r7, #68] ; 0x44 - 8016aa6: b29b uxth r3, r3 - 8016aa8: 4413 add r3, r2 - 8016aaa: b29b uxth r3, r3 - 8016aac: b219 sxth r1, r3 - 8016aae: 687b ldr r3, [r7, #4] - 8016ab0: f9b3 3042 ldrsh.w r3, [r3, #66] ; 0x42 - 8016ab4: b29a uxth r2, r3 - 8016ab6: 6bfb ldr r3, [r7, #60] ; 0x3c - 8016ab8: b29b uxth r3, r3 - 8016aba: 4413 add r3, r2 - 8016abc: b29b uxth r3, r3 - 8016abe: b21a sxth r2, r3 - 8016ac0: 687b ldr r3, [r7, #4] - 8016ac2: 8a1b ldrh r3, [r3, #16] - 8016ac4: f7fe ffa4 bl 8015a10 - 8016ac8: 4603 mov r3, r0 - 8016aca: 82bb strh r3, [r7, #20] + 8016a02: 687b ldr r3, [r7, #4] + 8016a04: f103 0018 add.w r0, r3, #24 + 8016a08: 687b ldr r3, [r7, #4] + 8016a0a: f9b3 3040 ldrsh.w r3, [r3, #64] ; 0x40 + 8016a0e: b29a uxth r2, r3 + 8016a10: 6c7b ldr r3, [r7, #68] ; 0x44 + 8016a12: b29b uxth r3, r3 + 8016a14: 4413 add r3, r2 + 8016a16: b29b uxth r3, r3 + 8016a18: b219 sxth r1, r3 + 8016a1a: 687b ldr r3, [r7, #4] + 8016a1c: f9b3 3042 ldrsh.w r3, [r3, #66] ; 0x42 + 8016a20: b29a uxth r2, r3 + 8016a22: 6bfb ldr r3, [r7, #60] ; 0x3c + 8016a24: b29b uxth r3, r3 + 8016a26: 4413 add r3, r2 + 8016a28: b29b uxth r3, r3 + 8016a2a: b21a sxth r2, r3 + 8016a2c: 687b ldr r3, [r7, #4] + 8016a2e: 8a1b ldrh r3, [r3, #16] + 8016a30: f7fe ffa4 bl 801597c + 8016a34: 4603 mov r3, r0 + 8016a36: 82bb strh r3, [r7, #20] if(dsc->tmp.has_alpha) { - 8016acc: 687b ldr r3, [r7, #4] - 8016ace: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 - 8016ad2: f003 0302 and.w r3, r3, #2 - 8016ad6: b2db uxtb r3, r3 - 8016ad8: 2b00 cmp r3, #0 - 8016ada: d044 beq.n 8016b66 <_lv_img_buf_transform_anti_alias+0x390> + 8016a38: 687b ldr r3, [r7, #4] + 8016a3a: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 + 8016a3e: f003 0302 and.w r3, r3, #2 + 8016a42: b2db uxtb r3, r3 + 8016a44: 2b00 cmp r3, #0 + 8016a46: d044 beq.n 8016ad2 <_lv_img_buf_transform_anti_alias+0x390> a10 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int); - 8016adc: 687b ldr r3, [r7, #4] - 8016ade: f103 0018 add.w r0, r3, #24 - 8016ae2: 687b ldr r3, [r7, #4] - 8016ae4: f9b3 3040 ldrsh.w r3, [r3, #64] ; 0x40 - 8016ae8: b29a uxth r2, r3 - 8016aea: 6c7b ldr r3, [r7, #68] ; 0x44 - 8016aec: b29b uxth r3, r3 - 8016aee: 4413 add r3, r2 - 8016af0: b29b uxth r3, r3 - 8016af2: b219 sxth r1, r3 - 8016af4: 687b ldr r3, [r7, #4] - 8016af6: f9b3 3042 ldrsh.w r3, [r3, #66] ; 0x42 - 8016afa: 461a mov r2, r3 - 8016afc: f7ff f8cc bl 8015c98 - 8016b00: 4603 mov r3, r0 - 8016b02: f887 303a strb.w r3, [r7, #58] ; 0x3a + 8016a48: 687b ldr r3, [r7, #4] + 8016a4a: f103 0018 add.w r0, r3, #24 + 8016a4e: 687b ldr r3, [r7, #4] + 8016a50: f9b3 3040 ldrsh.w r3, [r3, #64] ; 0x40 + 8016a54: b29a uxth r2, r3 + 8016a56: 6c7b ldr r3, [r7, #68] ; 0x44 + 8016a58: b29b uxth r3, r3 + 8016a5a: 4413 add r3, r2 + 8016a5c: b29b uxth r3, r3 + 8016a5e: b219 sxth r1, r3 + 8016a60: 687b ldr r3, [r7, #4] + 8016a62: f9b3 3042 ldrsh.w r3, [r3, #66] ; 0x42 + 8016a66: 461a mov r2, r3 + 8016a68: f7ff f8cc bl 8015c04 + 8016a6c: 4603 mov r3, r0 + 8016a6e: f887 303a strb.w r3, [r7, #58] ; 0x3a a01 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn); - 8016b06: 687b ldr r3, [r7, #4] - 8016b08: f103 0018 add.w r0, r3, #24 - 8016b0c: 687b ldr r3, [r7, #4] - 8016b0e: f9b3 1040 ldrsh.w r1, [r3, #64] ; 0x40 - 8016b12: 687b ldr r3, [r7, #4] - 8016b14: f9b3 3042 ldrsh.w r3, [r3, #66] ; 0x42 - 8016b18: b29a uxth r2, r3 - 8016b1a: 6bfb ldr r3, [r7, #60] ; 0x3c - 8016b1c: b29b uxth r3, r3 - 8016b1e: 4413 add r3, r2 - 8016b20: b29b uxth r3, r3 - 8016b22: b21b sxth r3, r3 - 8016b24: 461a mov r2, r3 - 8016b26: f7ff f8b7 bl 8015c98 - 8016b2a: 4603 mov r3, r0 - 8016b2c: f887 3039 strb.w r3, [r7, #57] ; 0x39 + 8016a72: 687b ldr r3, [r7, #4] + 8016a74: f103 0018 add.w r0, r3, #24 + 8016a78: 687b ldr r3, [r7, #4] + 8016a7a: f9b3 1040 ldrsh.w r1, [r3, #64] ; 0x40 + 8016a7e: 687b ldr r3, [r7, #4] + 8016a80: f9b3 3042 ldrsh.w r3, [r3, #66] ; 0x42 + 8016a84: b29a uxth r2, r3 + 8016a86: 6bfb ldr r3, [r7, #60] ; 0x3c + 8016a88: b29b uxth r3, r3 + 8016a8a: 4413 add r3, r2 + 8016a8c: b29b uxth r3, r3 + 8016a8e: b21b sxth r3, r3 + 8016a90: 461a mov r2, r3 + 8016a92: f7ff f8b7 bl 8015c04 + 8016a96: 4603 mov r3, r0 + 8016a98: f887 3039 strb.w r3, [r7, #57] ; 0x39 a11 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn); - 8016b30: 687b ldr r3, [r7, #4] - 8016b32: f103 0018 add.w r0, r3, #24 - 8016b36: 687b ldr r3, [r7, #4] - 8016b38: f9b3 3040 ldrsh.w r3, [r3, #64] ; 0x40 - 8016b3c: b29a uxth r2, r3 - 8016b3e: 6c7b ldr r3, [r7, #68] ; 0x44 - 8016b40: b29b uxth r3, r3 - 8016b42: 4413 add r3, r2 - 8016b44: b29b uxth r3, r3 - 8016b46: b219 sxth r1, r3 - 8016b48: 687b ldr r3, [r7, #4] - 8016b4a: f9b3 3042 ldrsh.w r3, [r3, #66] ; 0x42 - 8016b4e: b29a uxth r2, r3 - 8016b50: 6bfb ldr r3, [r7, #60] ; 0x3c - 8016b52: b29b uxth r3, r3 - 8016b54: 4413 add r3, r2 - 8016b56: b29b uxth r3, r3 - 8016b58: b21b sxth r3, r3 - 8016b5a: 461a mov r2, r3 - 8016b5c: f7ff f89c bl 8015c98 - 8016b60: 4603 mov r3, r0 - 8016b62: f887 3038 strb.w r3, [r7, #56] ; 0x38 + 8016a9c: 687b ldr r3, [r7, #4] + 8016a9e: f103 0018 add.w r0, r3, #24 + 8016aa2: 687b ldr r3, [r7, #4] + 8016aa4: f9b3 3040 ldrsh.w r3, [r3, #64] ; 0x40 + 8016aa8: b29a uxth r2, r3 + 8016aaa: 6c7b ldr r3, [r7, #68] ; 0x44 + 8016aac: b29b uxth r3, r3 + 8016aae: 4413 add r3, r2 + 8016ab0: b29b uxth r3, r3 + 8016ab2: b219 sxth r1, r3 + 8016ab4: 687b ldr r3, [r7, #4] + 8016ab6: f9b3 3042 ldrsh.w r3, [r3, #66] ; 0x42 + 8016aba: b29a uxth r2, r3 + 8016abc: 6bfb ldr r3, [r7, #60] ; 0x3c + 8016abe: b29b uxth r3, r3 + 8016ac0: 4413 add r3, r2 + 8016ac2: b29b uxth r3, r3 + 8016ac4: b21b sxth r3, r3 + 8016ac6: 461a mov r2, r3 + 8016ac8: f7ff f89c bl 8015c04 + 8016acc: 4603 mov r3, r0 + 8016ace: f887 3038 strb.w r3, [r7, #56] ; 0x38 } } lv_opa_t xr0 = xr; - 8016b66: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 - 8016b6a: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 8016ad2: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 + 8016ad6: f887 3037 strb.w r3, [r7, #55] ; 0x37 lv_opa_t xr1 = xr; - 8016b6e: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 - 8016b72: f887 3036 strb.w r3, [r7, #54] ; 0x36 + 8016ada: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 + 8016ade: f887 3036 strb.w r3, [r7, #54] ; 0x36 if(dsc->tmp.has_alpha) { - 8016b76: 687b ldr r3, [r7, #4] - 8016b78: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 - 8016b7c: f003 0302 and.w r3, r3, #2 - 8016b80: b2db uxtb r3, r3 - 8016b82: 2b00 cmp r3, #0 - 8016b84: d06b beq.n 8016c5e <_lv_img_buf_transform_anti_alias+0x488> + 8016ae2: 687b ldr r3, [r7, #4] + 8016ae4: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 + 8016ae8: f003 0302 and.w r3, r3, #2 + 8016aec: b2db uxtb r3, r3 + 8016aee: 2b00 cmp r3, #0 + 8016af0: d06b beq.n 8016bca <_lv_img_buf_transform_anti_alias+0x488> lv_opa_t a0 = (a00 * xr + (a10 * (255 - xr))) >> 8; - 8016b86: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8016b8a: f897 2043 ldrb.w r2, [r7, #67] ; 0x43 - 8016b8e: fb03 f202 mul.w r2, r3, r2 - 8016b92: f897 303a ldrb.w r3, [r7, #58] ; 0x3a - 8016b96: f897 1043 ldrb.w r1, [r7, #67] ; 0x43 - 8016b9a: f1c1 01ff rsb r1, r1, #255 ; 0xff - 8016b9e: fb01 f303 mul.w r3, r1, r3 - 8016ba2: 4413 add r3, r2 - 8016ba4: 121b asrs r3, r3, #8 - 8016ba6: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 8016af2: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8016af6: f897 2043 ldrb.w r2, [r7, #67] ; 0x43 + 8016afa: fb03 f202 mul.w r2, r3, r2 + 8016afe: f897 303a ldrb.w r3, [r7, #58] ; 0x3a + 8016b02: f897 1043 ldrb.w r1, [r7, #67] ; 0x43 + 8016b06: f1c1 01ff rsb r1, r1, #255 ; 0xff + 8016b0a: fb01 f303 mul.w r3, r1, r3 + 8016b0e: 4413 add r3, r2 + 8016b10: 121b asrs r3, r3, #8 + 8016b12: f887 3026 strb.w r3, [r7, #38] ; 0x26 lv_opa_t a1 = (a01 * xr + (a11 * (255 - xr))) >> 8; - 8016baa: f897 3039 ldrb.w r3, [r7, #57] ; 0x39 - 8016bae: f897 2043 ldrb.w r2, [r7, #67] ; 0x43 - 8016bb2: fb03 f202 mul.w r2, r3, r2 - 8016bb6: f897 3038 ldrb.w r3, [r7, #56] ; 0x38 - 8016bba: f897 1043 ldrb.w r1, [r7, #67] ; 0x43 - 8016bbe: f1c1 01ff rsb r1, r1, #255 ; 0xff - 8016bc2: fb01 f303 mul.w r3, r1, r3 - 8016bc6: 4413 add r3, r2 - 8016bc8: 121b asrs r3, r3, #8 - 8016bca: f887 3025 strb.w r3, [r7, #37] ; 0x25 + 8016b16: f897 3039 ldrb.w r3, [r7, #57] ; 0x39 + 8016b1a: f897 2043 ldrb.w r2, [r7, #67] ; 0x43 + 8016b1e: fb03 f202 mul.w r2, r3, r2 + 8016b22: f897 3038 ldrb.w r3, [r7, #56] ; 0x38 + 8016b26: f897 1043 ldrb.w r1, [r7, #67] ; 0x43 + 8016b2a: f1c1 01ff rsb r1, r1, #255 ; 0xff + 8016b2e: fb01 f303 mul.w r3, r1, r3 + 8016b32: 4413 add r3, r2 + 8016b34: 121b asrs r3, r3, #8 + 8016b36: f887 3025 strb.w r3, [r7, #37] ; 0x25 dsc->res.opa = (a0 * yr + (a1 * (255 - yr))) >> 8; - 8016bce: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 8016bd2: f897 203b ldrb.w r2, [r7, #59] ; 0x3b - 8016bd6: fb03 f202 mul.w r2, r3, r2 - 8016bda: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 - 8016bde: f897 103b ldrb.w r1, [r7, #59] ; 0x3b - 8016be2: f1c1 01ff rsb r1, r1, #255 ; 0xff - 8016be6: fb01 f303 mul.w r3, r1, r3 - 8016bea: 4413 add r3, r2 - 8016bec: 121b asrs r3, r3, #8 - 8016bee: b2da uxtb r2, r3 - 8016bf0: 687b ldr r3, [r7, #4] - 8016bf2: 759a strb r2, [r3, #22] + 8016b3a: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 8016b3e: f897 203b ldrb.w r2, [r7, #59] ; 0x3b + 8016b42: fb03 f202 mul.w r2, r3, r2 + 8016b46: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 + 8016b4a: f897 103b ldrb.w r1, [r7, #59] ; 0x3b + 8016b4e: f1c1 01ff rsb r1, r1, #255 ; 0xff + 8016b52: fb01 f303 mul.w r3, r1, r3 + 8016b56: 4413 add r3, r2 + 8016b58: 121b asrs r3, r3, #8 + 8016b5a: b2da uxtb r2, r3 + 8016b5c: 687b ldr r3, [r7, #4] + 8016b5e: 759a strb r2, [r3, #22] if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false; - 8016bf4: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 8016bf8: 2b02 cmp r3, #2 - 8016bfa: d805 bhi.n 8016c08 <_lv_img_buf_transform_anti_alias+0x432> - 8016bfc: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 - 8016c00: 2b02 cmp r3, #2 - 8016c02: d801 bhi.n 8016c08 <_lv_img_buf_transform_anti_alias+0x432> - 8016c04: 2300 movs r3, #0 - 8016c06: e07d b.n 8016d04 <_lv_img_buf_transform_anti_alias+0x52e> + 8016b60: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 8016b64: 2b02 cmp r3, #2 + 8016b66: d805 bhi.n 8016b74 <_lv_img_buf_transform_anti_alias+0x432> + 8016b68: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 + 8016b6c: 2b02 cmp r3, #2 + 8016b6e: d801 bhi.n 8016b74 <_lv_img_buf_transform_anti_alias+0x432> + 8016b70: 2300 movs r3, #0 + 8016b72: e07d b.n 8016c70 <_lv_img_buf_transform_anti_alias+0x52e> if(a0 <= LV_OPA_MIN) yr = LV_OPA_TRANSP; - 8016c08: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 8016c0c: 2b02 cmp r3, #2 - 8016c0e: d802 bhi.n 8016c16 <_lv_img_buf_transform_anti_alias+0x440> - 8016c10: 2300 movs r3, #0 - 8016c12: f887 303b strb.w r3, [r7, #59] ; 0x3b + 8016b74: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 8016b78: 2b02 cmp r3, #2 + 8016b7a: d802 bhi.n 8016b82 <_lv_img_buf_transform_anti_alias+0x440> + 8016b7c: 2300 movs r3, #0 + 8016b7e: f887 303b strb.w r3, [r7, #59] ; 0x3b if(a1 <= LV_OPA_MIN) yr = LV_OPA_COVER; - 8016c16: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 - 8016c1a: 2b02 cmp r3, #2 - 8016c1c: d802 bhi.n 8016c24 <_lv_img_buf_transform_anti_alias+0x44e> - 8016c1e: 23ff movs r3, #255 ; 0xff - 8016c20: f887 303b strb.w r3, [r7, #59] ; 0x3b + 8016b82: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 + 8016b86: 2b02 cmp r3, #2 + 8016b88: d802 bhi.n 8016b90 <_lv_img_buf_transform_anti_alias+0x44e> + 8016b8a: 23ff movs r3, #255 ; 0xff + 8016b8c: f887 303b strb.w r3, [r7, #59] ; 0x3b if(a00 <= LV_OPA_MIN) xr0 = LV_OPA_TRANSP; - 8016c24: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8016c28: 2b02 cmp r3, #2 - 8016c2a: d802 bhi.n 8016c32 <_lv_img_buf_transform_anti_alias+0x45c> - 8016c2c: 2300 movs r3, #0 - 8016c2e: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 8016b90: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8016b94: 2b02 cmp r3, #2 + 8016b96: d802 bhi.n 8016b9e <_lv_img_buf_transform_anti_alias+0x45c> + 8016b98: 2300 movs r3, #0 + 8016b9a: f887 3037 strb.w r3, [r7, #55] ; 0x37 if(a10 <= LV_OPA_MIN) xr0 = LV_OPA_COVER; - 8016c32: f897 303a ldrb.w r3, [r7, #58] ; 0x3a - 8016c36: 2b02 cmp r3, #2 - 8016c38: d802 bhi.n 8016c40 <_lv_img_buf_transform_anti_alias+0x46a> - 8016c3a: 23ff movs r3, #255 ; 0xff - 8016c3c: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 8016b9e: f897 303a ldrb.w r3, [r7, #58] ; 0x3a + 8016ba2: 2b02 cmp r3, #2 + 8016ba4: d802 bhi.n 8016bac <_lv_img_buf_transform_anti_alias+0x46a> + 8016ba6: 23ff movs r3, #255 ; 0xff + 8016ba8: f887 3037 strb.w r3, [r7, #55] ; 0x37 if(a01 <= LV_OPA_MIN) xr1 = LV_OPA_TRANSP; - 8016c40: f897 3039 ldrb.w r3, [r7, #57] ; 0x39 - 8016c44: 2b02 cmp r3, #2 - 8016c46: d802 bhi.n 8016c4e <_lv_img_buf_transform_anti_alias+0x478> - 8016c48: 2300 movs r3, #0 - 8016c4a: f887 3036 strb.w r3, [r7, #54] ; 0x36 + 8016bac: f897 3039 ldrb.w r3, [r7, #57] ; 0x39 + 8016bb0: 2b02 cmp r3, #2 + 8016bb2: d802 bhi.n 8016bba <_lv_img_buf_transform_anti_alias+0x478> + 8016bb4: 2300 movs r3, #0 + 8016bb6: f887 3036 strb.w r3, [r7, #54] ; 0x36 if(a11 <= LV_OPA_MIN) xr1 = LV_OPA_COVER; - 8016c4e: f897 3038 ldrb.w r3, [r7, #56] ; 0x38 - 8016c52: 2b02 cmp r3, #2 - 8016c54: d80e bhi.n 8016c74 <_lv_img_buf_transform_anti_alias+0x49e> - 8016c56: 23ff movs r3, #255 ; 0xff - 8016c58: f887 3036 strb.w r3, [r7, #54] ; 0x36 - 8016c5c: e00a b.n 8016c74 <_lv_img_buf_transform_anti_alias+0x49e> + 8016bba: f897 3038 ldrb.w r3, [r7, #56] ; 0x38 + 8016bbe: 2b02 cmp r3, #2 + 8016bc0: d80e bhi.n 8016be0 <_lv_img_buf_transform_anti_alias+0x49e> + 8016bc2: 23ff movs r3, #255 ; 0xff + 8016bc4: f887 3036 strb.w r3, [r7, #54] ; 0x36 + 8016bc8: e00a b.n 8016be0 <_lv_img_buf_transform_anti_alias+0x49e> } else { xr0 = xr; - 8016c5e: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 - 8016c62: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 8016bca: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 + 8016bce: f887 3037 strb.w r3, [r7, #55] ; 0x37 xr1 = xr; - 8016c66: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 - 8016c6a: f887 3036 strb.w r3, [r7, #54] ; 0x36 + 8016bd2: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 + 8016bd6: f887 3036 strb.w r3, [r7, #54] ; 0x36 dsc->res.opa = LV_OPA_COVER; - 8016c6e: 687b ldr r3, [r7, #4] - 8016c70: 22ff movs r2, #255 ; 0xff - 8016c72: 759a strb r2, [r3, #22] + 8016bda: 687b ldr r3, [r7, #4] + 8016bdc: 22ff movs r2, #255 ; 0xff + 8016bde: 759a strb r2, [r3, #22] } lv_color_t c0; if(xr0 == LV_OPA_TRANSP) c0 = c01; - 8016c74: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 8016c78: 2b00 cmp r3, #0 - 8016c7a: d102 bne.n 8016c82 <_lv_img_buf_transform_anti_alias+0x4ac> - 8016c7c: 8bbb ldrh r3, [r7, #28] - 8016c7e: 823b strh r3, [r7, #16] - 8016c80: e00f b.n 8016ca2 <_lv_img_buf_transform_anti_alias+0x4cc> + 8016be0: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 8016be4: 2b00 cmp r3, #0 + 8016be6: d102 bne.n 8016bee <_lv_img_buf_transform_anti_alias+0x4ac> + 8016be8: 8bbb ldrh r3, [r7, #28] + 8016bea: 823b strh r3, [r7, #16] + 8016bec: e00f b.n 8016c0e <_lv_img_buf_transform_anti_alias+0x4cc> else if(xr0 == LV_OPA_COVER) c0 = c00; - 8016c82: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 8016c86: 2bff cmp r3, #255 ; 0xff - 8016c88: d102 bne.n 8016c90 <_lv_img_buf_transform_anti_alias+0x4ba> - 8016c8a: 8c3b ldrh r3, [r7, #32] - 8016c8c: 823b strh r3, [r7, #16] - 8016c8e: e008 b.n 8016ca2 <_lv_img_buf_transform_anti_alias+0x4cc> + 8016bee: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 8016bf2: 2bff cmp r3, #255 ; 0xff + 8016bf4: d102 bne.n 8016bfc <_lv_img_buf_transform_anti_alias+0x4ba> + 8016bf6: 8c3b ldrh r3, [r7, #32] + 8016bf8: 823b strh r3, [r7, #16] + 8016bfa: e008 b.n 8016c0e <_lv_img_buf_transform_anti_alias+0x4cc> else c0 = lv_color_mix(c00, c01, xr0); - 8016c90: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 8016c94: 461a mov r2, r3 - 8016c96: 8bb9 ldrh r1, [r7, #28] - 8016c98: 8c38 ldrh r0, [r7, #32] - 8016c9a: f7fe fe2b bl 80158f4 - 8016c9e: 4603 mov r3, r0 - 8016ca0: 823b strh r3, [r7, #16] + 8016bfc: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 8016c00: 461a mov r2, r3 + 8016c02: 8bb9 ldrh r1, [r7, #28] + 8016c04: 8c38 ldrh r0, [r7, #32] + 8016c06: f7fe fe2b bl 8015860 + 8016c0a: 4603 mov r3, r0 + 8016c0c: 823b strh r3, [r7, #16] lv_color_t c1; if(xr1 == LV_OPA_TRANSP) c1 = c11; - 8016ca2: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 - 8016ca6: 2b00 cmp r3, #0 - 8016ca8: d102 bne.n 8016cb0 <_lv_img_buf_transform_anti_alias+0x4da> - 8016caa: 8abb ldrh r3, [r7, #20] - 8016cac: 81bb strh r3, [r7, #12] - 8016cae: e00f b.n 8016cd0 <_lv_img_buf_transform_anti_alias+0x4fa> + 8016c0e: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 + 8016c12: 2b00 cmp r3, #0 + 8016c14: d102 bne.n 8016c1c <_lv_img_buf_transform_anti_alias+0x4da> + 8016c16: 8abb ldrh r3, [r7, #20] + 8016c18: 81bb strh r3, [r7, #12] + 8016c1a: e00f b.n 8016c3c <_lv_img_buf_transform_anti_alias+0x4fa> else if(xr1 == LV_OPA_COVER) c1 = c10; - 8016cb0: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 - 8016cb4: 2bff cmp r3, #255 ; 0xff - 8016cb6: d102 bne.n 8016cbe <_lv_img_buf_transform_anti_alias+0x4e8> - 8016cb8: 8b3b ldrh r3, [r7, #24] - 8016cba: 81bb strh r3, [r7, #12] - 8016cbc: e008 b.n 8016cd0 <_lv_img_buf_transform_anti_alias+0x4fa> + 8016c1c: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 + 8016c20: 2bff cmp r3, #255 ; 0xff + 8016c22: d102 bne.n 8016c2a <_lv_img_buf_transform_anti_alias+0x4e8> + 8016c24: 8b3b ldrh r3, [r7, #24] + 8016c26: 81bb strh r3, [r7, #12] + 8016c28: e008 b.n 8016c3c <_lv_img_buf_transform_anti_alias+0x4fa> else c1 = lv_color_mix(c10, c11, xr1); - 8016cbe: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 - 8016cc2: 461a mov r2, r3 - 8016cc4: 8ab9 ldrh r1, [r7, #20] - 8016cc6: 8b38 ldrh r0, [r7, #24] - 8016cc8: f7fe fe14 bl 80158f4 - 8016ccc: 4603 mov r3, r0 - 8016cce: 81bb strh r3, [r7, #12] + 8016c2a: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 + 8016c2e: 461a mov r2, r3 + 8016c30: 8ab9 ldrh r1, [r7, #20] + 8016c32: 8b38 ldrh r0, [r7, #24] + 8016c34: f7fe fe14 bl 8015860 + 8016c38: 4603 mov r3, r0 + 8016c3a: 81bb strh r3, [r7, #12] if(yr == LV_OPA_TRANSP) dsc->res.color = c1; - 8016cd0: f897 303b ldrb.w r3, [r7, #59] ; 0x3b - 8016cd4: 2b00 cmp r3, #0 - 8016cd6: d103 bne.n 8016ce0 <_lv_img_buf_transform_anti_alias+0x50a> - 8016cd8: 687b ldr r3, [r7, #4] - 8016cda: 89ba ldrh r2, [r7, #12] - 8016cdc: 829a strh r2, [r3, #20] - 8016cde: e010 b.n 8016d02 <_lv_img_buf_transform_anti_alias+0x52c> + 8016c3c: f897 303b ldrb.w r3, [r7, #59] ; 0x3b + 8016c40: 2b00 cmp r3, #0 + 8016c42: d103 bne.n 8016c4c <_lv_img_buf_transform_anti_alias+0x50a> + 8016c44: 687b ldr r3, [r7, #4] + 8016c46: 89ba ldrh r2, [r7, #12] + 8016c48: 829a strh r2, [r3, #20] + 8016c4a: e010 b.n 8016c6e <_lv_img_buf_transform_anti_alias+0x52c> else if(yr == LV_OPA_COVER) dsc->res.color = c0; - 8016ce0: f897 303b ldrb.w r3, [r7, #59] ; 0x3b - 8016ce4: 2bff cmp r3, #255 ; 0xff - 8016ce6: d103 bne.n 8016cf0 <_lv_img_buf_transform_anti_alias+0x51a> - 8016ce8: 687b ldr r3, [r7, #4] - 8016cea: 8a3a ldrh r2, [r7, #16] - 8016cec: 829a strh r2, [r3, #20] - 8016cee: e008 b.n 8016d02 <_lv_img_buf_transform_anti_alias+0x52c> + 8016c4c: f897 303b ldrb.w r3, [r7, #59] ; 0x3b + 8016c50: 2bff cmp r3, #255 ; 0xff + 8016c52: d103 bne.n 8016c5c <_lv_img_buf_transform_anti_alias+0x51a> + 8016c54: 687b ldr r3, [r7, #4] + 8016c56: 8a3a ldrh r2, [r7, #16] + 8016c58: 829a strh r2, [r3, #20] + 8016c5a: e008 b.n 8016c6e <_lv_img_buf_transform_anti_alias+0x52c> else dsc->res.color = lv_color_mix(c0, c1, yr); - 8016cf0: 687c ldr r4, [r7, #4] - 8016cf2: f897 303b ldrb.w r3, [r7, #59] ; 0x3b - 8016cf6: 461a mov r2, r3 - 8016cf8: 89b9 ldrh r1, [r7, #12] - 8016cfa: 8a38 ldrh r0, [r7, #16] - 8016cfc: f7fe fdfa bl 80158f4 - 8016d00: 82a0 strh r0, [r4, #20] + 8016c5c: 687c ldr r4, [r7, #4] + 8016c5e: f897 303b ldrb.w r3, [r7, #59] ; 0x3b + 8016c62: 461a mov r2, r3 + 8016c64: 89b9 ldrh r1, [r7, #12] + 8016c66: 8a38 ldrh r0, [r7, #16] + 8016c68: f7fe fdfa bl 8015860 + 8016c6c: 82a0 strh r0, [r4, #20] return true; - 8016d02: 2301 movs r3, #1 + 8016c6e: 2301 movs r3, #1 } - 8016d04: 4618 mov r0, r3 - 8016d06: 374c adds r7, #76 ; 0x4c - 8016d08: 46bd mov sp, r7 - 8016d0a: bd90 pop {r4, r7, pc} + 8016c70: 4618 mov r0, r3 + 8016c72: 374c adds r7, #76 ; 0x4c + 8016c74: 46bd mov sp, r7 + 8016c76: bd90 pop {r4, r7, pc} -08016d0c <_lv_img_cache_open>: +08016c78 <_lv_img_cache_open>: * @param src source of the image. Path to file or pointer to an `lv_img_dsc_t` variable * @param color color The color of the image with `LV_IMG_CF_ALPHA_...` * @return pointer to the cache entry or NULL if can open the image */ _lv_img_cache_entry_t * _lv_img_cache_open(const void * src, lv_color_t color, int32_t frame_id) { - 8016d0c: b580 push {r7, lr} - 8016d0e: b088 sub sp, #32 - 8016d10: af00 add r7, sp, #0 - 8016d12: 60f8 str r0, [r7, #12] - 8016d14: 8139 strh r1, [r7, #8] - 8016d16: 607a str r2, [r7, #4] + 8016c78: b580 push {r7, lr} + 8016c7a: b088 sub sp, #32 + 8016c7c: af00 add r7, sp, #0 + 8016c7e: 60f8 str r0, [r7, #12] + 8016c80: 8139 strh r1, [r7, #8] + 8016c82: 607a str r2, [r7, #4] /*Is the image cached?*/ _lv_img_cache_entry_t * cached_src = NULL; - 8016d18: 2300 movs r3, #0 - 8016d1a: 61fb str r3, [r7, #28] + 8016c84: 2300 movs r3, #0 + 8016c86: 61fb str r3, [r7, #28] } else { LV_LOG_INFO("image draw: cache miss, cached to an empty entry"); } #else cached_src = &LV_GC_ROOT(_lv_img_cache_single); - 8016d1c: 4b19 ldr r3, [pc, #100] ; (8016d84 <_lv_img_cache_open+0x78>) - 8016d1e: 61fb str r3, [r7, #28] + 8016c88: 4b19 ldr r3, [pc, #100] ; (8016cf0 <_lv_img_cache_open+0x78>) + 8016c8a: 61fb str r3, [r7, #28] #endif /*Open the image and measure the time to open*/ uint32_t t_start = lv_tick_get(); - 8016d20: f019 fd44 bl 80307ac - 8016d24: 61b8 str r0, [r7, #24] + 8016c8c: f019 fd44 bl 8030718 + 8016c90: 61b8 str r0, [r7, #24] lv_res_t open_res = lv_img_decoder_open(&cached_src->dec_dsc, src, color, frame_id); - 8016d26: 69f8 ldr r0, [r7, #28] - 8016d28: 687b ldr r3, [r7, #4] - 8016d2a: 893a ldrh r2, [r7, #8] - 8016d2c: 68f9 ldr r1, [r7, #12] - 8016d2e: f000 f8eb bl 8016f08 - 8016d32: 4603 mov r3, r0 - 8016d34: 75fb strb r3, [r7, #23] + 8016c92: 69f8 ldr r0, [r7, #28] + 8016c94: 687b ldr r3, [r7, #4] + 8016c96: 893a ldrh r2, [r7, #8] + 8016c98: 68f9 ldr r1, [r7, #12] + 8016c9a: f000 f8eb bl 8016e74 + 8016c9e: 4603 mov r3, r0 + 8016ca0: 75fb strb r3, [r7, #23] if(open_res == LV_RES_INV) { - 8016d36: 7dfb ldrb r3, [r7, #23] - 8016d38: 2b00 cmp r3, #0 - 8016d3a: d109 bne.n 8016d50 <_lv_img_cache_open+0x44> + 8016ca2: 7dfb ldrb r3, [r7, #23] + 8016ca4: 2b00 cmp r3, #0 + 8016ca6: d109 bne.n 8016cbc <_lv_img_cache_open+0x44> LV_LOG_WARN("Image draw cannot open the image resource"); lv_memset_00(cached_src, sizeof(_lv_img_cache_entry_t)); - 8016d3c: 212c movs r1, #44 ; 0x2c - 8016d3e: 69f8 ldr r0, [r7, #28] - 8016d40: f01c fa06 bl 8033150 + 8016ca8: 212c movs r1, #44 ; 0x2c + 8016caa: 69f8 ldr r0, [r7, #28] + 8016cac: f01c fa06 bl 80330bc cached_src->life = INT32_MIN; /*Make the empty entry very "weak" to force its us*/ - 8016d44: 69fb ldr r3, [r7, #28] - 8016d46: f04f 4200 mov.w r2, #2147483648 ; 0x80000000 - 8016d4a: 629a str r2, [r3, #40] ; 0x28 + 8016cb0: 69fb ldr r3, [r7, #28] + 8016cb2: f04f 4200 mov.w r2, #2147483648 ; 0x80000000 + 8016cb6: 629a str r2, [r3, #40] ; 0x28 return NULL; - 8016d4c: 2300 movs r3, #0 - 8016d4e: e014 b.n 8016d7a <_lv_img_cache_open+0x6e> + 8016cb8: 2300 movs r3, #0 + 8016cba: e014 b.n 8016ce6 <_lv_img_cache_open+0x6e> } cached_src->life = 0; - 8016d50: 69fb ldr r3, [r7, #28] - 8016d52: 2200 movs r2, #0 - 8016d54: 629a str r2, [r3, #40] ; 0x28 + 8016cbc: 69fb ldr r3, [r7, #28] + 8016cbe: 2200 movs r2, #0 + 8016cc0: 629a str r2, [r3, #40] ; 0x28 /*If `time_to_open` was not set in the open function set it here*/ if(cached_src->dec_dsc.time_to_open == 0) { - 8016d56: 69fb ldr r3, [r7, #28] - 8016d58: 69db ldr r3, [r3, #28] - 8016d5a: 2b00 cmp r3, #0 - 8016d5c: d105 bne.n 8016d6a <_lv_img_cache_open+0x5e> + 8016cc2: 69fb ldr r3, [r7, #28] + 8016cc4: 69db ldr r3, [r3, #28] + 8016cc6: 2b00 cmp r3, #0 + 8016cc8: d105 bne.n 8016cd6 <_lv_img_cache_open+0x5e> cached_src->dec_dsc.time_to_open = lv_tick_elaps(t_start); - 8016d5e: 69b8 ldr r0, [r7, #24] - 8016d60: f019 fd3c bl 80307dc - 8016d64: 4602 mov r2, r0 - 8016d66: 69fb ldr r3, [r7, #28] - 8016d68: 61da str r2, [r3, #28] + 8016cca: 69b8 ldr r0, [r7, #24] + 8016ccc: f019 fd3c bl 8030748 + 8016cd0: 4602 mov r2, r0 + 8016cd2: 69fb ldr r3, [r7, #28] + 8016cd4: 61da str r2, [r3, #28] } if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1; - 8016d6a: 69fb ldr r3, [r7, #28] - 8016d6c: 69db ldr r3, [r3, #28] - 8016d6e: 2b00 cmp r3, #0 - 8016d70: d102 bne.n 8016d78 <_lv_img_cache_open+0x6c> - 8016d72: 69fb ldr r3, [r7, #28] - 8016d74: 2201 movs r2, #1 - 8016d76: 61da str r2, [r3, #28] + 8016cd6: 69fb ldr r3, [r7, #28] + 8016cd8: 69db ldr r3, [r3, #28] + 8016cda: 2b00 cmp r3, #0 + 8016cdc: d102 bne.n 8016ce4 <_lv_img_cache_open+0x6c> + 8016cde: 69fb ldr r3, [r7, #28] + 8016ce0: 2201 movs r2, #1 + 8016ce2: 61da str r2, [r3, #28] return cached_src; - 8016d78: 69fb ldr r3, [r7, #28] + 8016ce4: 69fb ldr r3, [r7, #28] } - 8016d7a: 4618 mov r0, r3 - 8016d7c: 3720 adds r7, #32 - 8016d7e: 46bd mov sp, r7 - 8016d80: bd80 pop {r7, pc} - 8016d82: bf00 nop - 8016d84: 20001d68 .word 0x20001d68 + 8016ce6: 4618 mov r0, r3 + 8016ce8: 3720 adds r7, #32 + 8016cea: 46bd mov sp, r7 + 8016cec: bd80 pop {r7, pc} + 8016cee: bf00 nop + 8016cf0: 20001d68 .word 0x20001d68 -08016d88 : +08016cf4 : { - 8016d88: b480 push {r7} - 8016d8a: b087 sub sp, #28 - 8016d8c: af00 add r7, sp, #0 - 8016d8e: 60f8 str r0, [r7, #12] - 8016d90: 60b9 str r1, [r7, #8] - 8016d92: 607a str r2, [r7, #4] + 8016cf4: b480 push {r7} + 8016cf6: b087 sub sp, #28 + 8016cf8: af00 add r7, sp, #0 + 8016cfa: 60f8 str r0, [r7, #12] + 8016cfc: 60b9 str r1, [r7, #8] + 8016cfe: 607a str r2, [r7, #4] uint8_t * d8 = (uint8_t *)dst; - 8016d94: 68fb ldr r3, [r7, #12] - 8016d96: 617b str r3, [r7, #20] + 8016d00: 68fb ldr r3, [r7, #12] + 8016d02: 617b str r3, [r7, #20] const uint8_t * s8 = (const uint8_t *)src; - 8016d98: 68bb ldr r3, [r7, #8] - 8016d9a: 613b str r3, [r7, #16] + 8016d04: 68bb ldr r3, [r7, #8] + 8016d06: 613b str r3, [r7, #16] while(len) { - 8016d9c: e00c b.n 8016db8 + 8016d08: e00c b.n 8016d24 *d8 = *s8; - 8016d9e: 693b ldr r3, [r7, #16] - 8016da0: 781a ldrb r2, [r3, #0] - 8016da2: 697b ldr r3, [r7, #20] - 8016da4: 701a strb r2, [r3, #0] + 8016d0a: 693b ldr r3, [r7, #16] + 8016d0c: 781a ldrb r2, [r3, #0] + 8016d0e: 697b ldr r3, [r7, #20] + 8016d10: 701a strb r2, [r3, #0] d8++; - 8016da6: 697b ldr r3, [r7, #20] - 8016da8: 3301 adds r3, #1 - 8016daa: 617b str r3, [r7, #20] + 8016d12: 697b ldr r3, [r7, #20] + 8016d14: 3301 adds r3, #1 + 8016d16: 617b str r3, [r7, #20] s8++; - 8016dac: 693b ldr r3, [r7, #16] - 8016dae: 3301 adds r3, #1 - 8016db0: 613b str r3, [r7, #16] + 8016d18: 693b ldr r3, [r7, #16] + 8016d1a: 3301 adds r3, #1 + 8016d1c: 613b str r3, [r7, #16] len--; - 8016db2: 687b ldr r3, [r7, #4] - 8016db4: 3b01 subs r3, #1 - 8016db6: 607b str r3, [r7, #4] + 8016d1e: 687b ldr r3, [r7, #4] + 8016d20: 3b01 subs r3, #1 + 8016d22: 607b str r3, [r7, #4] while(len) { - 8016db8: 687b ldr r3, [r7, #4] - 8016dba: 2b00 cmp r3, #0 - 8016dbc: d1ef bne.n 8016d9e + 8016d24: 687b ldr r3, [r7, #4] + 8016d26: 2b00 cmp r3, #0 + 8016d28: d1ef bne.n 8016d0a return dst; - 8016dbe: 68fb ldr r3, [r7, #12] + 8016d2a: 68fb ldr r3, [r7, #12] } - 8016dc0: 4618 mov r0, r3 - 8016dc2: 371c adds r7, #28 - 8016dc4: 46bd mov sp, r7 - 8016dc6: bc80 pop {r7} - 8016dc8: 4770 bx lr + 8016d2c: 4618 mov r0, r3 + 8016d2e: 371c adds r7, #28 + 8016d30: 46bd mov sp, r7 + 8016d32: bc80 pop {r7} + 8016d34: 4770 bx lr -08016dca : +08016d36 : { - 8016dca: b490 push {r4, r7} - 8016dcc: b082 sub sp, #8 - 8016dce: af00 add r7, sp, #0 - 8016dd0: 4604 mov r4, r0 - 8016dd2: 4608 mov r0, r1 - 8016dd4: 4611 mov r1, r2 - 8016dd6: 4622 mov r2, r4 - 8016dd8: 71fa strb r2, [r7, #7] - 8016dda: 4602 mov r2, r0 - 8016ddc: 71ba strb r2, [r7, #6] - 8016dde: 460a mov r2, r1 - 8016de0: 717a strb r2, [r7, #5] + 8016d36: b490 push {r4, r7} + 8016d38: b082 sub sp, #8 + 8016d3a: af00 add r7, sp, #0 + 8016d3c: 4604 mov r4, r0 + 8016d3e: 4608 mov r0, r1 + 8016d40: 4611 mov r1, r2 + 8016d42: 4622 mov r2, r4 + 8016d44: 71fa strb r2, [r7, #7] + 8016d46: 4602 mov r2, r0 + 8016d48: 71ba strb r2, [r7, #6] + 8016d4a: 460a mov r2, r1 + 8016d4c: 717a strb r2, [r7, #5] return _LV_COLOR_MAKE_TYPE_HELPER LV_COLOR_MAKE(r, g, b); - 8016de2: 797a ldrb r2, [r7, #5] - 8016de4: 08d2 lsrs r2, r2, #3 - 8016de6: b2d2 uxtb r2, r2 - 8016de8: f002 021f and.w r2, r2, #31 - 8016dec: b2d0 uxtb r0, r2 - 8016dee: 79ba ldrb r2, [r7, #6] - 8016df0: 0892 lsrs r2, r2, #2 - 8016df2: b2d2 uxtb r2, r2 - 8016df4: f002 023f and.w r2, r2, #63 ; 0x3f - 8016df8: b2d1 uxtb r1, r2 - 8016dfa: 79fa ldrb r2, [r7, #7] - 8016dfc: 08d2 lsrs r2, r2, #3 - 8016dfe: b2d2 uxtb r2, r2 - 8016e00: f002 021f and.w r2, r2, #31 - 8016e04: b2d2 uxtb r2, r2 - 8016e06: f360 0304 bfi r3, r0, #0, #5 - 8016e0a: f361 134a bfi r3, r1, #5, #6 - 8016e0e: f362 23cf bfi r3, r2, #11, #5 + 8016d4e: 797a ldrb r2, [r7, #5] + 8016d50: 08d2 lsrs r2, r2, #3 + 8016d52: b2d2 uxtb r2, r2 + 8016d54: f002 021f and.w r2, r2, #31 + 8016d58: b2d0 uxtb r0, r2 + 8016d5a: 79ba ldrb r2, [r7, #6] + 8016d5c: 0892 lsrs r2, r2, #2 + 8016d5e: b2d2 uxtb r2, r2 + 8016d60: f002 023f and.w r2, r2, #63 ; 0x3f + 8016d64: b2d1 uxtb r1, r2 + 8016d66: 79fa ldrb r2, [r7, #7] + 8016d68: 08d2 lsrs r2, r2, #3 + 8016d6a: b2d2 uxtb r2, r2 + 8016d6c: f002 021f and.w r2, r2, #31 + 8016d70: b2d2 uxtb r2, r2 + 8016d72: f360 0304 bfi r3, r0, #0, #5 + 8016d76: f361 134a bfi r3, r1, #5, #6 + 8016d7a: f362 23cf bfi r3, r2, #11, #5 } - 8016e12: 4618 mov r0, r3 - 8016e14: 3708 adds r7, #8 - 8016e16: 46bd mov sp, r7 - 8016e18: bc90 pop {r4, r7} - 8016e1a: 4770 bx lr + 8016d7e: 4618 mov r0, r3 + 8016d80: 3708 adds r7, #8 + 8016d82: 46bd mov sp, r7 + 8016d84: bc90 pop {r4, r7} + 8016d86: 4770 bx lr -08016e1c <_lv_img_decoder_init>: +08016d88 <_lv_img_decoder_init>: /** * Initialize the image decoder module */ void _lv_img_decoder_init(void) { - 8016e1c: b580 push {r7, lr} - 8016e1e: b082 sub sp, #8 - 8016e20: af00 add r7, sp, #0 + 8016d88: b580 push {r7, lr} + 8016d8a: b082 sub sp, #8 + 8016d8c: af00 add r7, sp, #0 _lv_ll_init(&LV_GC_ROOT(_lv_img_decoder_ll), sizeof(lv_img_decoder_t)); - 8016e22: 2114 movs r1, #20 - 8016e24: 4810 ldr r0, [pc, #64] ; (8016e68 <_lv_img_decoder_init+0x4c>) - 8016e26: f01b f99b bl 8032160 <_lv_ll_init> + 8016d8e: 2114 movs r1, #20 + 8016d90: 4810 ldr r0, [pc, #64] ; (8016dd4 <_lv_img_decoder_init+0x4c>) + 8016d92: f01b f99b bl 80320cc <_lv_ll_init> lv_img_decoder_t * decoder; /*Create a decoder for the built in color format*/ decoder = lv_img_decoder_create(); - 8016e2a: f000 f96d bl 8017108 - 8016e2e: 6078 str r0, [r7, #4] + 8016d96: f000 f96d bl 8017074 + 8016d9a: 6078 str r0, [r7, #4] LV_ASSERT_MALLOC(decoder); - 8016e30: 687b ldr r3, [r7, #4] - 8016e32: 2b00 cmp r3, #0 - 8016e34: d100 bne.n 8016e38 <_lv_img_decoder_init+0x1c> - 8016e36: e7fe b.n 8016e36 <_lv_img_decoder_init+0x1a> + 8016d9c: 687b ldr r3, [r7, #4] + 8016d9e: 2b00 cmp r3, #0 + 8016da0: d100 bne.n 8016da4 <_lv_img_decoder_init+0x1c> + 8016da2: e7fe b.n 8016da2 <_lv_img_decoder_init+0x1a> if(decoder == NULL) { - 8016e38: 687b ldr r3, [r7, #4] - 8016e3a: 2b00 cmp r3, #0 - 8016e3c: d010 beq.n 8016e60 <_lv_img_decoder_init+0x44> + 8016da4: 687b ldr r3, [r7, #4] + 8016da6: 2b00 cmp r3, #0 + 8016da8: d010 beq.n 8016dcc <_lv_img_decoder_init+0x44> LV_LOG_WARN("lv_img_decoder_init: out of memory"); return; } lv_img_decoder_set_info_cb(decoder, lv_img_decoder_built_in_info); - 8016e3e: 490b ldr r1, [pc, #44] ; (8016e6c <_lv_img_decoder_init+0x50>) - 8016e40: 6878 ldr r0, [r7, #4] - 8016e42: f000 f97d bl 8017140 + 8016daa: 490b ldr r1, [pc, #44] ; (8016dd8 <_lv_img_decoder_init+0x50>) + 8016dac: 6878 ldr r0, [r7, #4] + 8016dae: f000 f97d bl 80170ac lv_img_decoder_set_open_cb(decoder, lv_img_decoder_built_in_open); - 8016e46: 490a ldr r1, [pc, #40] ; (8016e70 <_lv_img_decoder_init+0x54>) - 8016e48: 6878 ldr r0, [r7, #4] - 8016e4a: f000 f986 bl 801715a + 8016db2: 490a ldr r1, [pc, #40] ; (8016ddc <_lv_img_decoder_init+0x54>) + 8016db4: 6878 ldr r0, [r7, #4] + 8016db6: f000 f986 bl 80170c6 lv_img_decoder_set_read_line_cb(decoder, lv_img_decoder_built_in_read_line); - 8016e4e: 4909 ldr r1, [pc, #36] ; (8016e74 <_lv_img_decoder_init+0x58>) - 8016e50: 6878 ldr r0, [r7, #4] - 8016e52: f000 f98f bl 8017174 + 8016dba: 4909 ldr r1, [pc, #36] ; (8016de0 <_lv_img_decoder_init+0x58>) + 8016dbc: 6878 ldr r0, [r7, #4] + 8016dbe: f000 f98f bl 80170e0 lv_img_decoder_set_close_cb(decoder, lv_img_decoder_built_in_close); - 8016e56: 4908 ldr r1, [pc, #32] ; (8016e78 <_lv_img_decoder_init+0x5c>) - 8016e58: 6878 ldr r0, [r7, #4] - 8016e5a: f000 f998 bl 801718e - 8016e5e: e000 b.n 8016e62 <_lv_img_decoder_init+0x46> + 8016dc2: 4908 ldr r1, [pc, #32] ; (8016de4 <_lv_img_decoder_init+0x5c>) + 8016dc4: 6878 ldr r0, [r7, #4] + 8016dc6: f000 f998 bl 80170fa + 8016dca: e000 b.n 8016dce <_lv_img_decoder_init+0x46> return; - 8016e60: bf00 nop + 8016dcc: bf00 nop } - 8016e62: 3708 adds r7, #8 - 8016e64: 46bd mov sp, r7 - 8016e66: bd80 pop {r7, pc} - 8016e68: 20001d4c .word 0x20001d4c - 8016e6c: 080171a9 .word 0x080171a9 - 8016e70: 080172f9 .word 0x080172f9 - 8016e74: 080175bd .word 0x080175bd - 8016e78: 080176e1 .word 0x080176e1 + 8016dce: 3708 adds r7, #8 + 8016dd0: 46bd mov sp, r7 + 8016dd2: bd80 pop {r7, pc} + 8016dd4: 20001d4c .word 0x20001d4c + 8016dd8: 08017115 .word 0x08017115 + 8016ddc: 08017265 .word 0x08017265 + 8016de0: 08017529 .word 0x08017529 + 8016de4: 0801764d .word 0x0801764d -08016e7c : +08016de8 : * @param src the image source. E.g. file name or variable. * @param header the image info will be stored here * @return LV_RES_OK: success; LV_RES_INV: wasn't able to get info about the image */ lv_res_t lv_img_decoder_get_info(const void * src, lv_img_header_t * header) { - 8016e7c: b580 push {r7, lr} - 8016e7e: b086 sub sp, #24 - 8016e80: af00 add r7, sp, #0 - 8016e82: 6078 str r0, [r7, #4] - 8016e84: 6039 str r1, [r7, #0] + 8016de8: b580 push {r7, lr} + 8016dea: b086 sub sp, #24 + 8016dec: af00 add r7, sp, #0 + 8016dee: 6078 str r0, [r7, #4] + 8016df0: 6039 str r1, [r7, #0] lv_memset_00(header, sizeof(lv_img_header_t)); - 8016e86: 2104 movs r1, #4 - 8016e88: 6838 ldr r0, [r7, #0] - 8016e8a: f01c f961 bl 8033150 + 8016df2: 2104 movs r1, #4 + 8016df4: 6838 ldr r0, [r7, #0] + 8016df6: f01c f961 bl 80330bc if(src == NULL) return LV_RES_INV; - 8016e8e: 687b ldr r3, [r7, #4] - 8016e90: 2b00 cmp r3, #0 - 8016e92: d101 bne.n 8016e98 - 8016e94: 2300 movs r3, #0 - 8016e96: e030 b.n 8016efa + 8016dfa: 687b ldr r3, [r7, #4] + 8016dfc: 2b00 cmp r3, #0 + 8016dfe: d101 bne.n 8016e04 + 8016e00: 2300 movs r3, #0 + 8016e02: e030 b.n 8016e66 lv_img_src_t src_type = lv_img_src_get_type(src); - 8016e98: 6878 ldr r0, [r7, #4] - 8016e9a: f7fa fee9 bl 8011c70 - 8016e9e: 4603 mov r3, r0 - 8016ea0: 73fb strb r3, [r7, #15] + 8016e04: 6878 ldr r0, [r7, #4] + 8016e06: f7fa fee9 bl 8011bdc + 8016e0a: 4603 mov r3, r0 + 8016e0c: 73fb strb r3, [r7, #15] if(src_type == LV_IMG_SRC_VARIABLE) { - 8016ea2: 7bfb ldrb r3, [r7, #15] - 8016ea4: 2b00 cmp r3, #0 - 8016ea6: d107 bne.n 8016eb8 + 8016e0e: 7bfb ldrb r3, [r7, #15] + 8016e10: 2b00 cmp r3, #0 + 8016e12: d107 bne.n 8016e24 const lv_img_dsc_t * img_dsc = src; - 8016ea8: 687b ldr r3, [r7, #4] - 8016eaa: 60bb str r3, [r7, #8] + 8016e14: 687b ldr r3, [r7, #4] + 8016e16: 60bb str r3, [r7, #8] if(img_dsc->data == NULL) return LV_RES_INV; - 8016eac: 68bb ldr r3, [r7, #8] - 8016eae: 689b ldr r3, [r3, #8] - 8016eb0: 2b00 cmp r3, #0 - 8016eb2: d101 bne.n 8016eb8 - 8016eb4: 2300 movs r3, #0 - 8016eb6: e020 b.n 8016efa + 8016e18: 68bb ldr r3, [r7, #8] + 8016e1a: 689b ldr r3, [r3, #8] + 8016e1c: 2b00 cmp r3, #0 + 8016e1e: d101 bne.n 8016e24 + 8016e20: 2300 movs r3, #0 + 8016e22: e020 b.n 8016e66 } lv_res_t res = LV_RES_INV; - 8016eb8: 2300 movs r3, #0 - 8016eba: 75fb strb r3, [r7, #23] + 8016e24: 2300 movs r3, #0 + 8016e26: 75fb strb r3, [r7, #23] lv_img_decoder_t * d; _LV_LL_READ(&LV_GC_ROOT(_lv_img_decoder_ll), d) { - 8016ebc: 4811 ldr r0, [pc, #68] ; (8016f04 ) - 8016ebe: f01b fa4d bl 803235c <_lv_ll_get_head> - 8016ec2: 6138 str r0, [r7, #16] - 8016ec4: e013 b.n 8016eee + 8016e28: 4811 ldr r0, [pc, #68] ; (8016e70 ) + 8016e2a: f01b fa4d bl 80322c8 <_lv_ll_get_head> + 8016e2e: 6138 str r0, [r7, #16] + 8016e30: e013 b.n 8016e5a if(d->info_cb) { - 8016ec6: 693b ldr r3, [r7, #16] - 8016ec8: 681b ldr r3, [r3, #0] - 8016eca: 2b00 cmp r3, #0 - 8016ecc: d00a beq.n 8016ee4 + 8016e32: 693b ldr r3, [r7, #16] + 8016e34: 681b ldr r3, [r3, #0] + 8016e36: 2b00 cmp r3, #0 + 8016e38: d00a beq.n 8016e50 res = d->info_cb(d, src, header); - 8016ece: 693b ldr r3, [r7, #16] - 8016ed0: 681b ldr r3, [r3, #0] - 8016ed2: 683a ldr r2, [r7, #0] - 8016ed4: 6879 ldr r1, [r7, #4] - 8016ed6: 6938 ldr r0, [r7, #16] - 8016ed8: 4798 blx r3 - 8016eda: 4603 mov r3, r0 - 8016edc: 75fb strb r3, [r7, #23] + 8016e3a: 693b ldr r3, [r7, #16] + 8016e3c: 681b ldr r3, [r3, #0] + 8016e3e: 683a ldr r2, [r7, #0] + 8016e40: 6879 ldr r1, [r7, #4] + 8016e42: 6938 ldr r0, [r7, #16] + 8016e44: 4798 blx r3 + 8016e46: 4603 mov r3, r0 + 8016e48: 75fb strb r3, [r7, #23] if(res == LV_RES_OK) break; - 8016ede: 7dfb ldrb r3, [r7, #23] - 8016ee0: 2b01 cmp r3, #1 - 8016ee2: d008 beq.n 8016ef6 + 8016e4a: 7dfb ldrb r3, [r7, #23] + 8016e4c: 2b01 cmp r3, #1 + 8016e4e: d008 beq.n 8016e62 _LV_LL_READ(&LV_GC_ROOT(_lv_img_decoder_ll), d) { - 8016ee4: 6939 ldr r1, [r7, #16] - 8016ee6: 4807 ldr r0, [pc, #28] ; (8016f04 ) - 8016ee8: f01b fa58 bl 803239c <_lv_ll_get_next> - 8016eec: 6138 str r0, [r7, #16] - 8016eee: 693b ldr r3, [r7, #16] - 8016ef0: 2b00 cmp r3, #0 - 8016ef2: d1e8 bne.n 8016ec6 - 8016ef4: e000 b.n 8016ef8 + 8016e50: 6939 ldr r1, [r7, #16] + 8016e52: 4807 ldr r0, [pc, #28] ; (8016e70 ) + 8016e54: f01b fa58 bl 8032308 <_lv_ll_get_next> + 8016e58: 6138 str r0, [r7, #16] + 8016e5a: 693b ldr r3, [r7, #16] + 8016e5c: 2b00 cmp r3, #0 + 8016e5e: d1e8 bne.n 8016e32 + 8016e60: e000 b.n 8016e64 if(res == LV_RES_OK) break; - 8016ef6: bf00 nop + 8016e62: bf00 nop } } return res; - 8016ef8: 7dfb ldrb r3, [r7, #23] + 8016e64: 7dfb ldrb r3, [r7, #23] } - 8016efa: 4618 mov r0, r3 - 8016efc: 3718 adds r7, #24 - 8016efe: 46bd mov sp, r7 - 8016f00: bd80 pop {r7, pc} - 8016f02: bf00 nop - 8016f04: 20001d4c .word 0x20001d4c + 8016e66: 4618 mov r0, r3 + 8016e68: 3718 adds r7, #24 + 8016e6a: 46bd mov sp, r7 + 8016e6c: bd80 pop {r7, pc} + 8016e6e: bf00 nop + 8016e70: 20001d4c .word 0x20001d4c -08016f08 : +08016e74 : lv_res_t lv_img_decoder_open(lv_img_decoder_dsc_t * dsc, const void * src, lv_color_t color, int32_t frame_id) { - 8016f08: b580 push {r7, lr} - 8016f0a: b08a sub sp, #40 ; 0x28 - 8016f0c: af00 add r7, sp, #0 - 8016f0e: 60f8 str r0, [r7, #12] - 8016f10: 60b9 str r1, [r7, #8] - 8016f12: 80ba strh r2, [r7, #4] - 8016f14: 603b str r3, [r7, #0] + 8016e74: b580 push {r7, lr} + 8016e76: b08a sub sp, #40 ; 0x28 + 8016e78: af00 add r7, sp, #0 + 8016e7a: 60f8 str r0, [r7, #12] + 8016e7c: 60b9 str r1, [r7, #8] + 8016e7e: 80ba strh r2, [r7, #4] + 8016e80: 603b str r3, [r7, #0] lv_memset_00(dsc, sizeof(lv_img_decoder_dsc_t)); - 8016f16: 2128 movs r1, #40 ; 0x28 - 8016f18: 68f8 ldr r0, [r7, #12] - 8016f1a: f01c f919 bl 8033150 + 8016e82: 2128 movs r1, #40 ; 0x28 + 8016e84: 68f8 ldr r0, [r7, #12] + 8016e86: f01c f919 bl 80330bc if(src == NULL) return LV_RES_INV; - 8016f1e: 68bb ldr r3, [r7, #8] - 8016f20: 2b00 cmp r3, #0 - 8016f22: d101 bne.n 8016f28 - 8016f24: 2300 movs r3, #0 - 8016f26: e096 b.n 8017056 + 8016e8a: 68bb ldr r3, [r7, #8] + 8016e8c: 2b00 cmp r3, #0 + 8016e8e: d101 bne.n 8016e94 + 8016e90: 2300 movs r3, #0 + 8016e92: e096 b.n 8016fc2 lv_img_src_t src_type = lv_img_src_get_type(src); - 8016f28: 68b8 ldr r0, [r7, #8] - 8016f2a: f7fa fea1 bl 8011c70 - 8016f2e: 4603 mov r3, r0 - 8016f30: 77fb strb r3, [r7, #31] + 8016e94: 68b8 ldr r0, [r7, #8] + 8016e96: f7fa fea1 bl 8011bdc + 8016e9a: 4603 mov r3, r0 + 8016e9c: 77fb strb r3, [r7, #31] if(src_type == LV_IMG_SRC_VARIABLE) { - 8016f32: 7ffb ldrb r3, [r7, #31] - 8016f34: 2b00 cmp r3, #0 - 8016f36: d107 bne.n 8016f48 + 8016e9e: 7ffb ldrb r3, [r7, #31] + 8016ea0: 2b00 cmp r3, #0 + 8016ea2: d107 bne.n 8016eb4 const lv_img_dsc_t * img_dsc = src; - 8016f38: 68bb ldr r3, [r7, #8] - 8016f3a: 61bb str r3, [r7, #24] + 8016ea4: 68bb ldr r3, [r7, #8] + 8016ea6: 61bb str r3, [r7, #24] if(img_dsc->data == NULL) return LV_RES_INV; - 8016f3c: 69bb ldr r3, [r7, #24] - 8016f3e: 689b ldr r3, [r3, #8] - 8016f40: 2b00 cmp r3, #0 - 8016f42: d101 bne.n 8016f48 - 8016f44: 2300 movs r3, #0 - 8016f46: e086 b.n 8017056 + 8016ea8: 69bb ldr r3, [r7, #24] + 8016eaa: 689b ldr r3, [r3, #8] + 8016eac: 2b00 cmp r3, #0 + 8016eae: d101 bne.n 8016eb4 + 8016eb0: 2300 movs r3, #0 + 8016eb2: e086 b.n 8016fc2 } dsc->color = color; - 8016f48: 68fb ldr r3, [r7, #12] - 8016f4a: 88ba ldrh r2, [r7, #4] - 8016f4c: 811a strh r2, [r3, #8] + 8016eb4: 68fb ldr r3, [r7, #12] + 8016eb6: 88ba ldrh r2, [r7, #4] + 8016eb8: 811a strh r2, [r3, #8] dsc->src_type = src_type; - 8016f4e: 68fb ldr r3, [r7, #12] - 8016f50: 7ffa ldrb r2, [r7, #31] - 8016f52: 741a strb r2, [r3, #16] + 8016eba: 68fb ldr r3, [r7, #12] + 8016ebc: 7ffa ldrb r2, [r7, #31] + 8016ebe: 741a strb r2, [r3, #16] dsc->frame_id = frame_id; - 8016f54: 68fb ldr r3, [r7, #12] - 8016f56: 683a ldr r2, [r7, #0] - 8016f58: 60da str r2, [r3, #12] + 8016ec0: 68fb ldr r3, [r7, #12] + 8016ec2: 683a ldr r2, [r7, #0] + 8016ec4: 60da str r2, [r3, #12] if(dsc->src_type == LV_IMG_SRC_FILE) { - 8016f5a: 68fb ldr r3, [r7, #12] - 8016f5c: 7c1b ldrb r3, [r3, #16] - 8016f5e: 2b01 cmp r3, #1 - 8016f60: d11d bne.n 8016f9e + 8016ec6: 68fb ldr r3, [r7, #12] + 8016ec8: 7c1b ldrb r3, [r3, #16] + 8016eca: 2b01 cmp r3, #1 + 8016ecc: d11d bne.n 8016f0a size_t fnlen = strlen(src); - 8016f62: 68b8 ldr r0, [r7, #8] - 8016f64: f7e9 f968 bl 8000238 - 8016f68: 6178 str r0, [r7, #20] + 8016ece: 68b8 ldr r0, [r7, #8] + 8016ed0: f7e9 f9b2 bl 8000238 + 8016ed4: 6178 str r0, [r7, #20] dsc->src = lv_mem_alloc(fnlen + 1); - 8016f6a: 697b ldr r3, [r7, #20] - 8016f6c: 3301 adds r3, #1 - 8016f6e: 4618 mov r0, r3 - 8016f70: f01b fc92 bl 8032898 - 8016f74: 4602 mov r2, r0 - 8016f76: 68fb ldr r3, [r7, #12] - 8016f78: 605a str r2, [r3, #4] + 8016ed6: 697b ldr r3, [r7, #20] + 8016ed8: 3301 adds r3, #1 + 8016eda: 4618 mov r0, r3 + 8016edc: f01b fc92 bl 8032804 + 8016ee0: 4602 mov r2, r0 + 8016ee2: 68fb ldr r3, [r7, #12] + 8016ee4: 605a str r2, [r3, #4] LV_ASSERT_MALLOC(dsc->src); - 8016f7a: 68fb ldr r3, [r7, #12] - 8016f7c: 685b ldr r3, [r3, #4] - 8016f7e: 2b00 cmp r3, #0 - 8016f80: d100 bne.n 8016f84 - 8016f82: e7fe b.n 8016f82 + 8016ee6: 68fb ldr r3, [r7, #12] + 8016ee8: 685b ldr r3, [r3, #4] + 8016eea: 2b00 cmp r3, #0 + 8016eec: d100 bne.n 8016ef0 + 8016eee: e7fe b.n 8016eee if(dsc->src == NULL) { - 8016f84: 68fb ldr r3, [r7, #12] - 8016f86: 685b ldr r3, [r3, #4] - 8016f88: 2b00 cmp r3, #0 - 8016f8a: d101 bne.n 8016f90 + 8016ef0: 68fb ldr r3, [r7, #12] + 8016ef2: 685b ldr r3, [r3, #4] + 8016ef4: 2b00 cmp r3, #0 + 8016ef6: d101 bne.n 8016efc LV_LOG_WARN("lv_img_decoder_open: out of memory"); return LV_RES_INV; - 8016f8c: 2300 movs r3, #0 - 8016f8e: e062 b.n 8017056 + 8016ef8: 2300 movs r3, #0 + 8016efa: e062 b.n 8016fc2 } strcpy((char *)dsc->src, src); - 8016f90: 68fb ldr r3, [r7, #12] - 8016f92: 685b ldr r3, [r3, #4] - 8016f94: 68b9 ldr r1, [r7, #8] - 8016f96: 4618 mov r0, r3 - 8016f98: f02f fe14 bl 8046bc4 - 8016f9c: e002 b.n 8016fa4 + 8016efc: 68fb ldr r3, [r7, #12] + 8016efe: 685b ldr r3, [r3, #4] + 8016f00: 68b9 ldr r1, [r7, #8] + 8016f02: 4618 mov r0, r3 + 8016f04: f02f fe14 bl 8046b30 + 8016f08: e002 b.n 8016f10 } else { dsc->src = src; - 8016f9e: 68fb ldr r3, [r7, #12] - 8016fa0: 68ba ldr r2, [r7, #8] - 8016fa2: 605a str r2, [r3, #4] + 8016f0a: 68fb ldr r3, [r7, #12] + 8016f0c: 68ba ldr r2, [r7, #8] + 8016f0e: 605a str r2, [r3, #4] } lv_res_t res = LV_RES_INV; - 8016fa4: 2300 movs r3, #0 - 8016fa6: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8016f10: 2300 movs r3, #0 + 8016f12: f887 3027 strb.w r3, [r7, #39] ; 0x27 lv_img_decoder_t * decoder; _LV_LL_READ(&LV_GC_ROOT(_lv_img_decoder_ll), decoder) { - 8016faa: 482d ldr r0, [pc, #180] ; (8017060 ) - 8016fac: f01b f9d6 bl 803235c <_lv_ll_get_head> - 8016fb0: 6238 str r0, [r7, #32] - 8016fb2: e042 b.n 801703a + 8016f16: 482d ldr r0, [pc, #180] ; (8016fcc ) + 8016f18: f01b f9d6 bl 80322c8 <_lv_ll_get_head> + 8016f1c: 6238 str r0, [r7, #32] + 8016f1e: e042 b.n 8016fa6 /*Info and Open callbacks are required*/ if(decoder->info_cb == NULL || decoder->open_cb == NULL) continue; - 8016fb4: 6a3b ldr r3, [r7, #32] - 8016fb6: 681b ldr r3, [r3, #0] - 8016fb8: 2b00 cmp r3, #0 - 8016fba: d036 beq.n 801702a - 8016fbc: 6a3b ldr r3, [r7, #32] - 8016fbe: 685b ldr r3, [r3, #4] - 8016fc0: 2b00 cmp r3, #0 - 8016fc2: d032 beq.n 801702a + 8016f20: 6a3b ldr r3, [r7, #32] + 8016f22: 681b ldr r3, [r3, #0] + 8016f24: 2b00 cmp r3, #0 + 8016f26: d036 beq.n 8016f96 + 8016f28: 6a3b ldr r3, [r7, #32] + 8016f2a: 685b ldr r3, [r3, #4] + 8016f2c: 2b00 cmp r3, #0 + 8016f2e: d032 beq.n 8016f96 res = decoder->info_cb(decoder, src, &dsc->header); - 8016fc4: 6a3b ldr r3, [r7, #32] - 8016fc6: 681b ldr r3, [r3, #0] - 8016fc8: 68fa ldr r2, [r7, #12] - 8016fca: 3214 adds r2, #20 - 8016fcc: 68b9 ldr r1, [r7, #8] - 8016fce: 6a38 ldr r0, [r7, #32] - 8016fd0: 4798 blx r3 - 8016fd2: 4603 mov r3, r0 - 8016fd4: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8016f30: 6a3b ldr r3, [r7, #32] + 8016f32: 681b ldr r3, [r3, #0] + 8016f34: 68fa ldr r2, [r7, #12] + 8016f36: 3214 adds r2, #20 + 8016f38: 68b9 ldr r1, [r7, #8] + 8016f3a: 6a38 ldr r0, [r7, #32] + 8016f3c: 4798 blx r3 + 8016f3e: 4603 mov r3, r0 + 8016f40: f887 3027 strb.w r3, [r7, #39] ; 0x27 if(res != LV_RES_OK) continue; - 8016fd8: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8016fdc: 2b01 cmp r3, #1 - 8016fde: d126 bne.n 801702e + 8016f44: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8016f48: 2b01 cmp r3, #1 + 8016f4a: d126 bne.n 8016f9a dsc->decoder = decoder; - 8016fe0: 68fb ldr r3, [r7, #12] - 8016fe2: 6a3a ldr r2, [r7, #32] - 8016fe4: 601a str r2, [r3, #0] + 8016f4c: 68fb ldr r3, [r7, #12] + 8016f4e: 6a3a ldr r2, [r7, #32] + 8016f50: 601a str r2, [r3, #0] res = decoder->open_cb(decoder, dsc); - 8016fe6: 6a3b ldr r3, [r7, #32] - 8016fe8: 685b ldr r3, [r3, #4] - 8016fea: 68f9 ldr r1, [r7, #12] - 8016fec: 6a38 ldr r0, [r7, #32] - 8016fee: 4798 blx r3 - 8016ff0: 4603 mov r3, r0 - 8016ff2: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8016f52: 6a3b ldr r3, [r7, #32] + 8016f54: 685b ldr r3, [r3, #4] + 8016f56: 68f9 ldr r1, [r7, #12] + 8016f58: 6a38 ldr r0, [r7, #32] + 8016f5a: 4798 blx r3 + 8016f5c: 4603 mov r3, r0 + 8016f5e: f887 3027 strb.w r3, [r7, #39] ; 0x27 /*Opened successfully. It is a good decoder to for this image source*/ if(res == LV_RES_OK) return res; - 8016ff6: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8016ffa: 2b01 cmp r3, #1 - 8016ffc: d102 bne.n 8017004 - 8016ffe: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8017002: e028 b.n 8017056 + 8016f62: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8016f66: 2b01 cmp r3, #1 + 8016f68: d102 bne.n 8016f70 + 8016f6a: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8016f6e: e028 b.n 8016fc2 /*Prepare for the next loop*/ lv_memset_00(&dsc->header, sizeof(lv_img_header_t)); - 8017004: 68fb ldr r3, [r7, #12] - 8017006: 3314 adds r3, #20 - 8017008: 2104 movs r1, #4 - 801700a: 4618 mov r0, r3 - 801700c: f01c f8a0 bl 8033150 + 8016f70: 68fb ldr r3, [r7, #12] + 8016f72: 3314 adds r3, #20 + 8016f74: 2104 movs r1, #4 + 8016f76: 4618 mov r0, r3 + 8016f78: f01c f8a0 bl 80330bc dsc->error_msg = NULL; - 8017010: 68fb ldr r3, [r7, #12] - 8017012: 2200 movs r2, #0 - 8017014: 621a str r2, [r3, #32] + 8016f7c: 68fb ldr r3, [r7, #12] + 8016f7e: 2200 movs r2, #0 + 8016f80: 621a str r2, [r3, #32] dsc->img_data = NULL; - 8017016: 68fb ldr r3, [r7, #12] - 8017018: 2200 movs r2, #0 - 801701a: 619a str r2, [r3, #24] + 8016f82: 68fb ldr r3, [r7, #12] + 8016f84: 2200 movs r2, #0 + 8016f86: 619a str r2, [r3, #24] dsc->user_data = NULL; - 801701c: 68fb ldr r3, [r7, #12] - 801701e: 2200 movs r2, #0 - 8017020: 625a str r2, [r3, #36] ; 0x24 + 8016f88: 68fb ldr r3, [r7, #12] + 8016f8a: 2200 movs r2, #0 + 8016f8c: 625a str r2, [r3, #36] ; 0x24 dsc->time_to_open = 0; - 8017022: 68fb ldr r3, [r7, #12] - 8017024: 2200 movs r2, #0 - 8017026: 61da str r2, [r3, #28] - 8017028: e002 b.n 8017030 + 8016f8e: 68fb ldr r3, [r7, #12] + 8016f90: 2200 movs r2, #0 + 8016f92: 61da str r2, [r3, #28] + 8016f94: e002 b.n 8016f9c if(decoder->info_cb == NULL || decoder->open_cb == NULL) continue; - 801702a: bf00 nop - 801702c: e000 b.n 8017030 + 8016f96: bf00 nop + 8016f98: e000 b.n 8016f9c if(res != LV_RES_OK) continue; - 801702e: bf00 nop + 8016f9a: bf00 nop _LV_LL_READ(&LV_GC_ROOT(_lv_img_decoder_ll), decoder) { - 8017030: 6a39 ldr r1, [r7, #32] - 8017032: 480b ldr r0, [pc, #44] ; (8017060 ) - 8017034: f01b f9b2 bl 803239c <_lv_ll_get_next> - 8017038: 6238 str r0, [r7, #32] - 801703a: 6a3b ldr r3, [r7, #32] - 801703c: 2b00 cmp r3, #0 - 801703e: d1b9 bne.n 8016fb4 + 8016f9c: 6a39 ldr r1, [r7, #32] + 8016f9e: 480b ldr r0, [pc, #44] ; (8016fcc ) + 8016fa0: f01b f9b2 bl 8032308 <_lv_ll_get_next> + 8016fa4: 6238 str r0, [r7, #32] + 8016fa6: 6a3b ldr r3, [r7, #32] + 8016fa8: 2b00 cmp r3, #0 + 8016faa: d1b9 bne.n 8016f20 } if(dsc->src_type == LV_IMG_SRC_FILE) - 8017040: 68fb ldr r3, [r7, #12] - 8017042: 7c1b ldrb r3, [r3, #16] - 8017044: 2b01 cmp r3, #1 - 8017046: d104 bne.n 8017052 + 8016fac: 68fb ldr r3, [r7, #12] + 8016fae: 7c1b ldrb r3, [r3, #16] + 8016fb0: 2b01 cmp r3, #1 + 8016fb2: d104 bne.n 8016fbe lv_mem_free((void *)dsc->src); - 8017048: 68fb ldr r3, [r7, #12] - 801704a: 685b ldr r3, [r3, #4] - 801704c: 4618 mov r0, r3 - 801704e: f01b fc45 bl 80328dc + 8016fb4: 68fb ldr r3, [r7, #12] + 8016fb6: 685b ldr r3, [r3, #4] + 8016fb8: 4618 mov r0, r3 + 8016fba: f01b fc45 bl 8032848 return res; - 8017052: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8016fbe: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 } - 8017056: 4618 mov r0, r3 - 8017058: 3728 adds r7, #40 ; 0x28 - 801705a: 46bd mov sp, r7 - 801705c: bd80 pop {r7, pc} - 801705e: bf00 nop - 8017060: 20001d4c .word 0x20001d4c + 8016fc2: 4618 mov r0, r3 + 8016fc4: 3728 adds r7, #40 ; 0x28 + 8016fc6: 46bd mov sp, r7 + 8016fc8: bd80 pop {r7, pc} + 8016fca: bf00 nop + 8016fcc: 20001d4c .word 0x20001d4c -08017064 : +08016fd0 : * @param len number of pixels to read * @param buf store the data here * @return LV_RES_OK: success; LV_RES_INV: an error occurred */ lv_res_t lv_img_decoder_read_line(lv_img_decoder_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_coord_t len, uint8_t * buf) { - 8017064: b590 push {r4, r7, lr} - 8017066: b089 sub sp, #36 ; 0x24 - 8017068: af02 add r7, sp, #8 - 801706a: 60f8 str r0, [r7, #12] - 801706c: 4608 mov r0, r1 - 801706e: 4611 mov r1, r2 - 8017070: 461a mov r2, r3 - 8017072: 4603 mov r3, r0 - 8017074: 817b strh r3, [r7, #10] - 8017076: 460b mov r3, r1 - 8017078: 813b strh r3, [r7, #8] - 801707a: 4613 mov r3, r2 - 801707c: 80fb strh r3, [r7, #6] + 8016fd0: b590 push {r4, r7, lr} + 8016fd2: b089 sub sp, #36 ; 0x24 + 8016fd4: af02 add r7, sp, #8 + 8016fd6: 60f8 str r0, [r7, #12] + 8016fd8: 4608 mov r0, r1 + 8016fda: 4611 mov r1, r2 + 8016fdc: 461a mov r2, r3 + 8016fde: 4603 mov r3, r0 + 8016fe0: 817b strh r3, [r7, #10] + 8016fe2: 460b mov r3, r1 + 8016fe4: 813b strh r3, [r7, #8] + 8016fe6: 4613 mov r3, r2 + 8016fe8: 80fb strh r3, [r7, #6] lv_res_t res = LV_RES_INV; - 801707e: 2300 movs r3, #0 - 8017080: 75fb strb r3, [r7, #23] + 8016fea: 2300 movs r3, #0 + 8016fec: 75fb strb r3, [r7, #23] if(dsc->decoder->read_line_cb) res = dsc->decoder->read_line_cb(dsc->decoder, dsc, x, y, len, buf); - 8017082: 68fb ldr r3, [r7, #12] - 8017084: 681b ldr r3, [r3, #0] - 8017086: 689b ldr r3, [r3, #8] - 8017088: 2b00 cmp r3, #0 - 801708a: d012 beq.n 80170b2 - 801708c: 68fb ldr r3, [r7, #12] - 801708e: 681b ldr r3, [r3, #0] - 8017090: 689c ldr r4, [r3, #8] - 8017092: 68fb ldr r3, [r7, #12] - 8017094: 6818 ldr r0, [r3, #0] - 8017096: f9b7 1008 ldrsh.w r1, [r7, #8] - 801709a: f9b7 200a ldrsh.w r2, [r7, #10] - 801709e: 6abb ldr r3, [r7, #40] ; 0x28 - 80170a0: 9301 str r3, [sp, #4] - 80170a2: f9b7 3006 ldrsh.w r3, [r7, #6] - 80170a6: 9300 str r3, [sp, #0] - 80170a8: 460b mov r3, r1 - 80170aa: 68f9 ldr r1, [r7, #12] - 80170ac: 47a0 blx r4 - 80170ae: 4603 mov r3, r0 - 80170b0: 75fb strb r3, [r7, #23] + 8016fee: 68fb ldr r3, [r7, #12] + 8016ff0: 681b ldr r3, [r3, #0] + 8016ff2: 689b ldr r3, [r3, #8] + 8016ff4: 2b00 cmp r3, #0 + 8016ff6: d012 beq.n 801701e + 8016ff8: 68fb ldr r3, [r7, #12] + 8016ffa: 681b ldr r3, [r3, #0] + 8016ffc: 689c ldr r4, [r3, #8] + 8016ffe: 68fb ldr r3, [r7, #12] + 8017000: 6818 ldr r0, [r3, #0] + 8017002: f9b7 1008 ldrsh.w r1, [r7, #8] + 8017006: f9b7 200a ldrsh.w r2, [r7, #10] + 801700a: 6abb ldr r3, [r7, #40] ; 0x28 + 801700c: 9301 str r3, [sp, #4] + 801700e: f9b7 3006 ldrsh.w r3, [r7, #6] + 8017012: 9300 str r3, [sp, #0] + 8017014: 460b mov r3, r1 + 8017016: 68f9 ldr r1, [r7, #12] + 8017018: 47a0 blx r4 + 801701a: 4603 mov r3, r0 + 801701c: 75fb strb r3, [r7, #23] return res; - 80170b2: 7dfb ldrb r3, [r7, #23] + 801701e: 7dfb ldrb r3, [r7, #23] } - 80170b4: 4618 mov r0, r3 - 80170b6: 371c adds r7, #28 - 80170b8: 46bd mov sp, r7 - 80170ba: bd90 pop {r4, r7, pc} + 8017020: 4618 mov r0, r3 + 8017022: 371c adds r7, #28 + 8017024: 46bd mov sp, r7 + 8017026: bd90 pop {r4, r7, pc} -080170bc : +08017028 : /** * Close a decoding session * @param dsc pointer to `lv_img_decoder_dsc_t` used in `lv_img_decoder_open` */ void lv_img_decoder_close(lv_img_decoder_dsc_t * dsc) { - 80170bc: b580 push {r7, lr} - 80170be: b082 sub sp, #8 - 80170c0: af00 add r7, sp, #0 - 80170c2: 6078 str r0, [r7, #4] + 8017028: b580 push {r7, lr} + 801702a: b082 sub sp, #8 + 801702c: af00 add r7, sp, #0 + 801702e: 6078 str r0, [r7, #4] if(dsc->decoder) { - 80170c4: 687b ldr r3, [r7, #4] - 80170c6: 681b ldr r3, [r3, #0] - 80170c8: 2b00 cmp r3, #0 - 80170ca: d018 beq.n 80170fe + 8017030: 687b ldr r3, [r7, #4] + 8017032: 681b ldr r3, [r3, #0] + 8017034: 2b00 cmp r3, #0 + 8017036: d018 beq.n 801706a if(dsc->decoder->close_cb) dsc->decoder->close_cb(dsc->decoder, dsc); - 80170cc: 687b ldr r3, [r7, #4] - 80170ce: 681b ldr r3, [r3, #0] - 80170d0: 68db ldr r3, [r3, #12] - 80170d2: 2b00 cmp r3, #0 - 80170d4: d007 beq.n 80170e6 - 80170d6: 687b ldr r3, [r7, #4] - 80170d8: 681b ldr r3, [r3, #0] - 80170da: 68db ldr r3, [r3, #12] - 80170dc: 687a ldr r2, [r7, #4] - 80170de: 6812 ldr r2, [r2, #0] - 80170e0: 6879 ldr r1, [r7, #4] - 80170e2: 4610 mov r0, r2 - 80170e4: 4798 blx r3 + 8017038: 687b ldr r3, [r7, #4] + 801703a: 681b ldr r3, [r3, #0] + 801703c: 68db ldr r3, [r3, #12] + 801703e: 2b00 cmp r3, #0 + 8017040: d007 beq.n 8017052 + 8017042: 687b ldr r3, [r7, #4] + 8017044: 681b ldr r3, [r3, #0] + 8017046: 68db ldr r3, [r3, #12] + 8017048: 687a ldr r2, [r7, #4] + 801704a: 6812 ldr r2, [r2, #0] + 801704c: 6879 ldr r1, [r7, #4] + 801704e: 4610 mov r0, r2 + 8017050: 4798 blx r3 if(dsc->src_type == LV_IMG_SRC_FILE) { - 80170e6: 687b ldr r3, [r7, #4] - 80170e8: 7c1b ldrb r3, [r3, #16] - 80170ea: 2b01 cmp r3, #1 - 80170ec: d107 bne.n 80170fe + 8017052: 687b ldr r3, [r7, #4] + 8017054: 7c1b ldrb r3, [r3, #16] + 8017056: 2b01 cmp r3, #1 + 8017058: d107 bne.n 801706a lv_mem_free((void *)dsc->src); - 80170ee: 687b ldr r3, [r7, #4] - 80170f0: 685b ldr r3, [r3, #4] - 80170f2: 4618 mov r0, r3 - 80170f4: f01b fbf2 bl 80328dc + 801705a: 687b ldr r3, [r7, #4] + 801705c: 685b ldr r3, [r3, #4] + 801705e: 4618 mov r0, r3 + 8017060: f01b fbf2 bl 8032848 dsc->src = NULL; - 80170f8: 687b ldr r3, [r7, #4] - 80170fa: 2200 movs r2, #0 - 80170fc: 605a str r2, [r3, #4] + 8017064: 687b ldr r3, [r7, #4] + 8017066: 2200 movs r2, #0 + 8017068: 605a str r2, [r3, #4] } } } - 80170fe: bf00 nop - 8017100: 3708 adds r7, #8 - 8017102: 46bd mov sp, r7 - 8017104: bd80 pop {r7, pc} + 801706a: bf00 nop + 801706c: 3708 adds r7, #8 + 801706e: 46bd mov sp, r7 + 8017070: bd80 pop {r7, pc} ... -08017108 : +08017074 : /** * Create a new image decoder * @return pointer to the new image decoder */ lv_img_decoder_t * lv_img_decoder_create(void) { - 8017108: b580 push {r7, lr} - 801710a: b082 sub sp, #8 - 801710c: af00 add r7, sp, #0 + 8017074: b580 push {r7, lr} + 8017076: b082 sub sp, #8 + 8017078: af00 add r7, sp, #0 lv_img_decoder_t * decoder; decoder = _lv_ll_ins_head(&LV_GC_ROOT(_lv_img_decoder_ll)); - 801710e: 480b ldr r0, [pc, #44] ; (801713c ) - 8017110: f01b f83e bl 8032190 <_lv_ll_ins_head> - 8017114: 6078 str r0, [r7, #4] + 801707a: 480b ldr r0, [pc, #44] ; (80170a8 ) + 801707c: f01b f83e bl 80320fc <_lv_ll_ins_head> + 8017080: 6078 str r0, [r7, #4] LV_ASSERT_MALLOC(decoder); - 8017116: 687b ldr r3, [r7, #4] - 8017118: 2b00 cmp r3, #0 - 801711a: d100 bne.n 801711e - 801711c: e7fe b.n 801711c + 8017082: 687b ldr r3, [r7, #4] + 8017084: 2b00 cmp r3, #0 + 8017086: d100 bne.n 801708a + 8017088: e7fe b.n 8017088 if(decoder == NULL) return NULL; - 801711e: 687b ldr r3, [r7, #4] - 8017120: 2b00 cmp r3, #0 - 8017122: d101 bne.n 8017128 - 8017124: 2300 movs r3, #0 - 8017126: e004 b.n 8017132 + 801708a: 687b ldr r3, [r7, #4] + 801708c: 2b00 cmp r3, #0 + 801708e: d101 bne.n 8017094 + 8017090: 2300 movs r3, #0 + 8017092: e004 b.n 801709e lv_memset_00(decoder, sizeof(lv_img_decoder_t)); - 8017128: 2114 movs r1, #20 - 801712a: 6878 ldr r0, [r7, #4] - 801712c: f01c f810 bl 8033150 + 8017094: 2114 movs r1, #20 + 8017096: 6878 ldr r0, [r7, #4] + 8017098: f01c f810 bl 80330bc return decoder; - 8017130: 687b ldr r3, [r7, #4] + 801709c: 687b ldr r3, [r7, #4] } - 8017132: 4618 mov r0, r3 - 8017134: 3708 adds r7, #8 - 8017136: 46bd mov sp, r7 - 8017138: bd80 pop {r7, pc} - 801713a: bf00 nop - 801713c: 20001d4c .word 0x20001d4c + 801709e: 4618 mov r0, r3 + 80170a0: 3708 adds r7, #8 + 80170a2: 46bd mov sp, r7 + 80170a4: bd80 pop {r7, pc} + 80170a6: bf00 nop + 80170a8: 20001d4c .word 0x20001d4c -08017140 : +080170ac : * Set a callback to get information about the image * @param decoder pointer to an image decoder * @param info_cb a function to collect info about an image (fill an `lv_img_header_t` struct) */ void lv_img_decoder_set_info_cb(lv_img_decoder_t * decoder, lv_img_decoder_info_f_t info_cb) { - 8017140: b480 push {r7} - 8017142: b083 sub sp, #12 - 8017144: af00 add r7, sp, #0 - 8017146: 6078 str r0, [r7, #4] - 8017148: 6039 str r1, [r7, #0] + 80170ac: b480 push {r7} + 80170ae: b083 sub sp, #12 + 80170b0: af00 add r7, sp, #0 + 80170b2: 6078 str r0, [r7, #4] + 80170b4: 6039 str r1, [r7, #0] decoder->info_cb = info_cb; - 801714a: 687b ldr r3, [r7, #4] - 801714c: 683a ldr r2, [r7, #0] - 801714e: 601a str r2, [r3, #0] + 80170b6: 687b ldr r3, [r7, #4] + 80170b8: 683a ldr r2, [r7, #0] + 80170ba: 601a str r2, [r3, #0] } - 8017150: bf00 nop - 8017152: 370c adds r7, #12 - 8017154: 46bd mov sp, r7 - 8017156: bc80 pop {r7} - 8017158: 4770 bx lr + 80170bc: bf00 nop + 80170be: 370c adds r7, #12 + 80170c0: 46bd mov sp, r7 + 80170c2: bc80 pop {r7} + 80170c4: 4770 bx lr -0801715a : +080170c6 : * Set a callback to open an image * @param decoder pointer to an image decoder * @param open_cb a function to open an image */ void lv_img_decoder_set_open_cb(lv_img_decoder_t * decoder, lv_img_decoder_open_f_t open_cb) { - 801715a: b480 push {r7} - 801715c: b083 sub sp, #12 - 801715e: af00 add r7, sp, #0 - 8017160: 6078 str r0, [r7, #4] - 8017162: 6039 str r1, [r7, #0] + 80170c6: b480 push {r7} + 80170c8: b083 sub sp, #12 + 80170ca: af00 add r7, sp, #0 + 80170cc: 6078 str r0, [r7, #4] + 80170ce: 6039 str r1, [r7, #0] decoder->open_cb = open_cb; - 8017164: 687b ldr r3, [r7, #4] - 8017166: 683a ldr r2, [r7, #0] - 8017168: 605a str r2, [r3, #4] + 80170d0: 687b ldr r3, [r7, #4] + 80170d2: 683a ldr r2, [r7, #0] + 80170d4: 605a str r2, [r3, #4] } - 801716a: bf00 nop - 801716c: 370c adds r7, #12 - 801716e: 46bd mov sp, r7 - 8017170: bc80 pop {r7} - 8017172: 4770 bx lr + 80170d6: bf00 nop + 80170d8: 370c adds r7, #12 + 80170da: 46bd mov sp, r7 + 80170dc: bc80 pop {r7} + 80170de: 4770 bx lr -08017174 : +080170e0 : * Set a callback to a decoded line of an image * @param decoder pointer to an image decoder * @param read_line_cb a function to read a line of an image */ void lv_img_decoder_set_read_line_cb(lv_img_decoder_t * decoder, lv_img_decoder_read_line_f_t read_line_cb) { - 8017174: b480 push {r7} - 8017176: b083 sub sp, #12 - 8017178: af00 add r7, sp, #0 - 801717a: 6078 str r0, [r7, #4] - 801717c: 6039 str r1, [r7, #0] + 80170e0: b480 push {r7} + 80170e2: b083 sub sp, #12 + 80170e4: af00 add r7, sp, #0 + 80170e6: 6078 str r0, [r7, #4] + 80170e8: 6039 str r1, [r7, #0] decoder->read_line_cb = read_line_cb; - 801717e: 687b ldr r3, [r7, #4] - 8017180: 683a ldr r2, [r7, #0] - 8017182: 609a str r2, [r3, #8] + 80170ea: 687b ldr r3, [r7, #4] + 80170ec: 683a ldr r2, [r7, #0] + 80170ee: 609a str r2, [r3, #8] } - 8017184: bf00 nop - 8017186: 370c adds r7, #12 - 8017188: 46bd mov sp, r7 - 801718a: bc80 pop {r7} - 801718c: 4770 bx lr + 80170f0: bf00 nop + 80170f2: 370c adds r7, #12 + 80170f4: 46bd mov sp, r7 + 80170f6: bc80 pop {r7} + 80170f8: 4770 bx lr -0801718e : +080170fa : * Set a callback to close a decoding session. E.g. close files and free other resources. * @param decoder pointer to an image decoder * @param close_cb a function to close a decoding session */ void lv_img_decoder_set_close_cb(lv_img_decoder_t * decoder, lv_img_decoder_close_f_t close_cb) { - 801718e: b480 push {r7} - 8017190: b083 sub sp, #12 - 8017192: af00 add r7, sp, #0 - 8017194: 6078 str r0, [r7, #4] - 8017196: 6039 str r1, [r7, #0] + 80170fa: b480 push {r7} + 80170fc: b083 sub sp, #12 + 80170fe: af00 add r7, sp, #0 + 8017100: 6078 str r0, [r7, #4] + 8017102: 6039 str r1, [r7, #0] decoder->close_cb = close_cb; - 8017198: 687b ldr r3, [r7, #4] - 801719a: 683a ldr r2, [r7, #0] - 801719c: 60da str r2, [r3, #12] + 8017104: 687b ldr r3, [r7, #4] + 8017106: 683a ldr r2, [r7, #0] + 8017108: 60da str r2, [r3, #12] } - 801719e: bf00 nop - 80171a0: 370c adds r7, #12 - 80171a2: 46bd mov sp, r7 - 80171a4: bc80 pop {r7} - 80171a6: 4770 bx lr + 801710a: bf00 nop + 801710c: 370c adds r7, #12 + 801710e: 46bd mov sp, r7 + 8017110: bc80 pop {r7} + 8017112: 4770 bx lr -080171a8 : +08017114 : * @param src the image source: pointer to an `lv_img_dsc_t` variable, a file path or a symbol * @param header store the image data here * @return LV_RES_OK: the info is successfully stored in `header`; LV_RES_INV: unknown format or other error. */ lv_res_t lv_img_decoder_built_in_info(lv_img_decoder_t * decoder, const void * src, lv_img_header_t * header) { - 80171a8: b580 push {r7, lr} - 80171aa: b08a sub sp, #40 ; 0x28 - 80171ac: af00 add r7, sp, #0 - 80171ae: 60f8 str r0, [r7, #12] - 80171b0: 60b9 str r1, [r7, #8] - 80171b2: 607a str r2, [r7, #4] + 8017114: b580 push {r7, lr} + 8017116: b08a sub sp, #40 ; 0x28 + 8017118: af00 add r7, sp, #0 + 801711a: 60f8 str r0, [r7, #12] + 801711c: 60b9 str r1, [r7, #8] + 801711e: 607a str r2, [r7, #4] LV_UNUSED(decoder); /*Unused*/ lv_img_src_t src_type = lv_img_src_get_type(src); - 80171b4: 68b8 ldr r0, [r7, #8] - 80171b6: f7fa fd5b bl 8011c70 - 80171ba: 4603 mov r3, r0 - 80171bc: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8017120: 68b8 ldr r0, [r7, #8] + 8017122: f7fa fd5b bl 8011bdc + 8017126: 4603 mov r3, r0 + 8017128: f887 3027 strb.w r3, [r7, #39] ; 0x27 if(src_type == LV_IMG_SRC_VARIABLE) { - 80171c0: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80171c4: 2b00 cmp r3, #0 - 80171c6: d12f bne.n 8017228 + 801712c: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8017130: 2b00 cmp r3, #0 + 8017132: d12f bne.n 8017194 lv_img_cf_t cf = ((lv_img_dsc_t *)src)->header.cf; - 80171c8: 68bb ldr r3, [r7, #8] - 80171ca: 781b ldrb r3, [r3, #0] - 80171cc: f3c3 0304 ubfx r3, r3, #0, #5 - 80171d0: b2db uxtb r3, r3 - 80171d2: f887 3025 strb.w r3, [r7, #37] ; 0x25 + 8017134: 68bb ldr r3, [r7, #8] + 8017136: 781b ldrb r3, [r3, #0] + 8017138: f3c3 0304 ubfx r3, r3, #0, #5 + 801713c: b2db uxtb r3, r3 + 801713e: f887 3025 strb.w r3, [r7, #37] ; 0x25 if(cf < CF_BUILT_IN_FIRST || cf > CF_BUILT_IN_LAST) return LV_RES_INV; - 80171d6: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 - 80171da: 2b03 cmp r3, #3 - 80171dc: d903 bls.n 80171e6 - 80171de: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 - 80171e2: 2b0e cmp r3, #14 - 80171e4: d901 bls.n 80171ea - 80171e6: 2300 movs r3, #0 - 80171e8: e080 b.n 80172ec + 8017142: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 + 8017146: 2b03 cmp r3, #3 + 8017148: d903 bls.n 8017152 + 801714a: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 + 801714e: 2b0e cmp r3, #14 + 8017150: d901 bls.n 8017156 + 8017152: 2300 movs r3, #0 + 8017154: e080 b.n 8017258 header->w = ((lv_img_dsc_t *)src)->header.w; - 80171ea: 68bb ldr r3, [r7, #8] - 80171ec: 681b ldr r3, [r3, #0] - 80171ee: f3c3 238a ubfx r3, r3, #10, #11 - 80171f2: b299 uxth r1, r3 - 80171f4: 687a ldr r2, [r7, #4] - 80171f6: 6813 ldr r3, [r2, #0] - 80171f8: f361 2394 bfi r3, r1, #10, #11 - 80171fc: 6013 str r3, [r2, #0] + 8017156: 68bb ldr r3, [r7, #8] + 8017158: 681b ldr r3, [r3, #0] + 801715a: f3c3 238a ubfx r3, r3, #10, #11 + 801715e: b299 uxth r1, r3 + 8017160: 687a ldr r2, [r7, #4] + 8017162: 6813 ldr r3, [r2, #0] + 8017164: f361 2394 bfi r3, r1, #10, #11 + 8017168: 6013 str r3, [r2, #0] header->h = ((lv_img_dsc_t *)src)->header.h; - 80171fe: 68bb ldr r3, [r7, #8] - 8017200: 885b ldrh r3, [r3, #2] - 8017202: f3c3 134a ubfx r3, r3, #5, #11 - 8017206: b299 uxth r1, r3 - 8017208: 687a ldr r2, [r7, #4] - 801720a: 8853 ldrh r3, [r2, #2] - 801720c: f361 134f bfi r3, r1, #5, #11 - 8017210: 8053 strh r3, [r2, #2] + 801716a: 68bb ldr r3, [r7, #8] + 801716c: 885b ldrh r3, [r3, #2] + 801716e: f3c3 134a ubfx r3, r3, #5, #11 + 8017172: b299 uxth r1, r3 + 8017174: 687a ldr r2, [r7, #4] + 8017176: 8853 ldrh r3, [r2, #2] + 8017178: f361 134f bfi r3, r1, #5, #11 + 801717c: 8053 strh r3, [r2, #2] header->cf = ((lv_img_dsc_t *)src)->header.cf; - 8017212: 68bb ldr r3, [r7, #8] - 8017214: 781b ldrb r3, [r3, #0] - 8017216: f3c3 0304 ubfx r3, r3, #0, #5 - 801721a: b2d9 uxtb r1, r3 - 801721c: 687a ldr r2, [r7, #4] - 801721e: 7813 ldrb r3, [r2, #0] - 8017220: f361 0304 bfi r3, r1, #0, #5 - 8017224: 7013 strb r3, [r2, #0] - 8017226: e060 b.n 80172ea + 801717e: 68bb ldr r3, [r7, #8] + 8017180: 781b ldrb r3, [r3, #0] + 8017182: f3c3 0304 ubfx r3, r3, #0, #5 + 8017186: b2d9 uxtb r1, r3 + 8017188: 687a ldr r2, [r7, #4] + 801718a: 7813 ldrb r3, [r2, #0] + 801718c: f361 0304 bfi r3, r1, #0, #5 + 8017190: 7013 strb r3, [r2, #0] + 8017192: e060 b.n 8017256 } else if(src_type == LV_IMG_SRC_FILE) { - 8017228: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 801722c: 2b01 cmp r3, #1 - 801722e: d143 bne.n 80172b8 + 8017194: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8017198: 2b01 cmp r3, #1 + 801719a: d143 bne.n 8017224 /*Support only "*.bin" files*/ if(strcmp(lv_fs_get_ext(src), "bin")) return LV_RES_INV; - 8017230: 68b8 ldr r0, [r7, #8] - 8017232: f01a ff51 bl 80320d8 - 8017236: 4603 mov r3, r0 - 8017238: 492e ldr r1, [pc, #184] ; (80172f4 ) - 801723a: 4618 mov r0, r3 - 801723c: f7e8 fff2 bl 8000224 - 8017240: 4603 mov r3, r0 - 8017242: 2b00 cmp r3, #0 - 8017244: d001 beq.n 801724a - 8017246: 2300 movs r3, #0 - 8017248: e050 b.n 80172ec + 801719c: 68b8 ldr r0, [r7, #8] + 801719e: f01a ff51 bl 8032044 + 80171a2: 4603 mov r3, r0 + 80171a4: 492e ldr r1, [pc, #184] ; (8017260 ) + 80171a6: 4618 mov r0, r3 + 80171a8: f7e9 f83c bl 8000224 + 80171ac: 4603 mov r3, r0 + 80171ae: 2b00 cmp r3, #0 + 80171b0: d001 beq.n 80171b6 + 80171b2: 2300 movs r3, #0 + 80171b4: e050 b.n 8017258 lv_fs_file_t f; lv_fs_res_t res = lv_fs_open(&f, src, LV_FS_MODE_RD); - 801724a: f107 0318 add.w r3, r7, #24 - 801724e: 2202 movs r2, #2 - 8017250: 68b9 ldr r1, [r7, #8] - 8017252: 4618 mov r0, r3 - 8017254: f01a fc98 bl 8031b88 - 8017258: 4603 mov r3, r0 - 801725a: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 80171b6: f107 0318 add.w r3, r7, #24 + 80171ba: 2202 movs r2, #2 + 80171bc: 68b9 ldr r1, [r7, #8] + 80171be: 4618 mov r0, r3 + 80171c0: f01a fc98 bl 8031af4 + 80171c4: 4603 mov r3, r0 + 80171c6: f887 3026 strb.w r3, [r7, #38] ; 0x26 if(res == LV_FS_RES_OK) { - 801725e: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 8017262: 2b00 cmp r3, #0 - 8017264: d118 bne.n 8017298 + 80171ca: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 80171ce: 2b00 cmp r3, #0 + 80171d0: d118 bne.n 8017204 uint32_t rn; res = lv_fs_read(&f, header, sizeof(lv_img_header_t), &rn); - 8017266: f107 0314 add.w r3, r7, #20 - 801726a: f107 0018 add.w r0, r7, #24 - 801726e: 2204 movs r2, #4 - 8017270: 6879 ldr r1, [r7, #4] - 8017272: f01a fe20 bl 8031eb6 - 8017276: 4603 mov r3, r0 - 8017278: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 80171d2: f107 0314 add.w r3, r7, #20 + 80171d6: f107 0018 add.w r0, r7, #24 + 80171da: 2204 movs r2, #4 + 80171dc: 6879 ldr r1, [r7, #4] + 80171de: f01a fe20 bl 8031e22 + 80171e2: 4603 mov r3, r0 + 80171e4: f887 3026 strb.w r3, [r7, #38] ; 0x26 lv_fs_close(&f); - 801727c: f107 0318 add.w r3, r7, #24 - 8017280: 4618 mov r0, r3 - 8017282: f01a fce4 bl 8031c4e + 80171e8: f107 0318 add.w r3, r7, #24 + 80171ec: 4618 mov r0, r3 + 80171ee: f01a fce4 bl 8031bba if(res != LV_FS_RES_OK || rn != sizeof(lv_img_header_t)) { - 8017286: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 801728a: 2b00 cmp r3, #0 - 801728c: d102 bne.n 8017294 - 801728e: 697b ldr r3, [r7, #20] - 8017290: 2b04 cmp r3, #4 - 8017292: d001 beq.n 8017298 + 80171f2: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 80171f6: 2b00 cmp r3, #0 + 80171f8: d102 bne.n 8017200 + 80171fa: 697b ldr r3, [r7, #20] + 80171fc: 2b04 cmp r3, #4 + 80171fe: d001 beq.n 8017204 LV_LOG_WARN("Image get info get read file header"); return LV_RES_INV; - 8017294: 2300 movs r3, #0 + 8017200: 2300 movs r3, #0 if(strcmp(lv_fs_get_ext(src), "bin")) return LV_RES_INV; - 8017296: e029 b.n 80172ec + 8017202: e029 b.n 8017258 } } if(header->cf < CF_BUILT_IN_FIRST || header->cf > CF_BUILT_IN_LAST) return LV_RES_INV; - 8017298: 687b ldr r3, [r7, #4] - 801729a: 781b ldrb r3, [r3, #0] - 801729c: f3c3 0304 ubfx r3, r3, #0, #5 - 80172a0: b2db uxtb r3, r3 - 80172a2: 2b03 cmp r3, #3 - 80172a4: d906 bls.n 80172b4 - 80172a6: 687b ldr r3, [r7, #4] - 80172a8: 781b ldrb r3, [r3, #0] - 80172aa: f3c3 0304 ubfx r3, r3, #0, #5 - 80172ae: b2db uxtb r3, r3 - 80172b0: 2b0e cmp r3, #14 - 80172b2: d91a bls.n 80172ea - 80172b4: 2300 movs r3, #0 - 80172b6: e019 b.n 80172ec + 8017204: 687b ldr r3, [r7, #4] + 8017206: 781b ldrb r3, [r3, #0] + 8017208: f3c3 0304 ubfx r3, r3, #0, #5 + 801720c: b2db uxtb r3, r3 + 801720e: 2b03 cmp r3, #3 + 8017210: d906 bls.n 8017220 + 8017212: 687b ldr r3, [r7, #4] + 8017214: 781b ldrb r3, [r3, #0] + 8017216: f3c3 0304 ubfx r3, r3, #0, #5 + 801721a: b2db uxtb r3, r3 + 801721c: 2b0e cmp r3, #14 + 801721e: d91a bls.n 8017256 + 8017220: 2300 movs r3, #0 + 8017222: e019 b.n 8017258 } else if(src_type == LV_IMG_SRC_SYMBOL) { - 80172b8: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80172bc: 2b02 cmp r3, #2 - 80172be: d112 bne.n 80172e6 + 8017224: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8017228: 2b02 cmp r3, #2 + 801722a: d112 bne.n 8017252 /*The size depend on the font but it is unknown here. It should be handled outside of the *function*/ header->w = 1; - 80172c0: 687a ldr r2, [r7, #4] - 80172c2: 6813 ldr r3, [r2, #0] - 80172c4: 2101 movs r1, #1 - 80172c6: f361 2394 bfi r3, r1, #10, #11 - 80172ca: 6013 str r3, [r2, #0] + 801722c: 687a ldr r2, [r7, #4] + 801722e: 6813 ldr r3, [r2, #0] + 8017230: 2101 movs r1, #1 + 8017232: f361 2394 bfi r3, r1, #10, #11 + 8017236: 6013 str r3, [r2, #0] header->h = 1; - 80172cc: 687a ldr r2, [r7, #4] - 80172ce: 8853 ldrh r3, [r2, #2] - 80172d0: 2101 movs r1, #1 - 80172d2: f361 134f bfi r3, r1, #5, #11 - 80172d6: 8053 strh r3, [r2, #2] + 8017238: 687a ldr r2, [r7, #4] + 801723a: 8853 ldrh r3, [r2, #2] + 801723c: 2101 movs r1, #1 + 801723e: f361 134f bfi r3, r1, #5, #11 + 8017242: 8053 strh r3, [r2, #2] /*Symbols always have transparent parts. Important because of cover check in the draw *function. The actual value doesn't matter because lv_draw_label will draw it*/ header->cf = LV_IMG_CF_ALPHA_1BIT; - 80172d8: 687a ldr r2, [r7, #4] - 80172da: 7813 ldrb r3, [r2, #0] - 80172dc: 210b movs r1, #11 - 80172de: f361 0304 bfi r3, r1, #0, #5 - 80172e2: 7013 strb r3, [r2, #0] - 80172e4: e001 b.n 80172ea + 8017244: 687a ldr r2, [r7, #4] + 8017246: 7813 ldrb r3, [r2, #0] + 8017248: 210b movs r1, #11 + 801724a: f361 0304 bfi r3, r1, #0, #5 + 801724e: 7013 strb r3, [r2, #0] + 8017250: e001 b.n 8017256 } else { LV_LOG_WARN("Image get info found unknown src type"); return LV_RES_INV; - 80172e6: 2300 movs r3, #0 - 80172e8: e000 b.n 80172ec + 8017252: 2300 movs r3, #0 + 8017254: e000 b.n 8017258 } return LV_RES_OK; - 80172ea: 2301 movs r3, #1 + 8017256: 2301 movs r3, #1 } - 80172ec: 4618 mov r0, r3 - 80172ee: 3728 adds r7, #40 ; 0x28 - 80172f0: 46bd mov sp, r7 - 80172f2: bd80 pop {r7, pc} - 80172f4: 08046c3c .word 0x08046c3c + 8017258: 4618 mov r0, r3 + 801725a: 3728 adds r7, #40 ; 0x28 + 801725c: 46bd mov sp, r7 + 801725e: bd80 pop {r7, pc} + 8017260: 08046b94 .word 0x08046b94 -080172f8 : +08017264 : * @param decoder the decoder where this function belongs * @param dsc pointer to decoder descriptor. `src`, `color` are already initialized in it. * @return LV_RES_OK: the info is successfully stored in `header`; LV_RES_INV: unknown format or other error. */ lv_res_t lv_img_decoder_built_in_open(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * dsc) { - 80172f8: b5b0 push {r4, r5, r7, lr} - 80172fa: b08e sub sp, #56 ; 0x38 - 80172fc: af00 add r7, sp, #0 - 80172fe: 6078 str r0, [r7, #4] - 8017300: 6039 str r1, [r7, #0] + 8017264: b5b0 push {r4, r5, r7, lr} + 8017266: b08e sub sp, #56 ; 0x38 + 8017268: af00 add r7, sp, #0 + 801726a: 6078 str r0, [r7, #4] + 801726c: 6039 str r1, [r7, #0] /*Open the file if it's a file*/ if(dsc->src_type == LV_IMG_SRC_FILE) { - 8017302: 683b ldr r3, [r7, #0] - 8017304: 7c1b ldrb r3, [r3, #16] - 8017306: 2b01 cmp r3, #1 - 8017308: d14a bne.n 80173a0 + 801726e: 683b ldr r3, [r7, #0] + 8017270: 7c1b ldrb r3, [r3, #16] + 8017272: 2b01 cmp r3, #1 + 8017274: d14a bne.n 801730c /*Support only "*.bin" files*/ if(strcmp(lv_fs_get_ext(dsc->src), "bin")) return LV_RES_INV; - 801730a: 683b ldr r3, [r7, #0] - 801730c: 685b ldr r3, [r3, #4] - 801730e: 4618 mov r0, r3 - 8017310: f01a fee2 bl 80320d8 - 8017314: 4603 mov r3, r0 - 8017316: 499a ldr r1, [pc, #616] ; (8017580 ) - 8017318: 4618 mov r0, r3 - 801731a: f7e8 ff83 bl 8000224 - 801731e: 4603 mov r3, r0 - 8017320: 2b00 cmp r3, #0 - 8017322: d001 beq.n 8017328 - 8017324: 2300 movs r3, #0 - 8017326: e144 b.n 80175b2 + 8017276: 683b ldr r3, [r7, #0] + 8017278: 685b ldr r3, [r3, #4] + 801727a: 4618 mov r0, r3 + 801727c: f01a fee2 bl 8032044 + 8017280: 4603 mov r3, r0 + 8017282: 499a ldr r1, [pc, #616] ; (80174ec ) + 8017284: 4618 mov r0, r3 + 8017286: f7e8 ffcd bl 8000224 + 801728a: 4603 mov r3, r0 + 801728c: 2b00 cmp r3, #0 + 801728e: d001 beq.n 8017294 + 8017290: 2300 movs r3, #0 + 8017292: e144 b.n 801751e lv_fs_file_t f; lv_fs_res_t res = lv_fs_open(&f, dsc->src, LV_FS_MODE_RD); - 8017328: 683b ldr r3, [r7, #0] - 801732a: 6859 ldr r1, [r3, #4] - 801732c: f107 030c add.w r3, r7, #12 - 8017330: 2202 movs r2, #2 - 8017332: 4618 mov r0, r3 - 8017334: f01a fc28 bl 8031b88 - 8017338: 4603 mov r3, r0 - 801733a: f887 302f strb.w r3, [r7, #47] ; 0x2f + 8017294: 683b ldr r3, [r7, #0] + 8017296: 6859 ldr r1, [r3, #4] + 8017298: f107 030c add.w r3, r7, #12 + 801729c: 2202 movs r2, #2 + 801729e: 4618 mov r0, r3 + 80172a0: f01a fc28 bl 8031af4 + 80172a4: 4603 mov r3, r0 + 80172a6: f887 302f strb.w r3, [r7, #47] ; 0x2f if(res != LV_FS_RES_OK) { - 801733e: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8017342: 2b00 cmp r3, #0 - 8017344: d001 beq.n 801734a + 80172aa: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 80172ae: 2b00 cmp r3, #0 + 80172b0: d001 beq.n 80172b6 LV_LOG_WARN("Built-in image decoder can't open the file"); return LV_RES_INV; - 8017346: 2300 movs r3, #0 - 8017348: e133 b.n 80175b2 + 80172b2: 2300 movs r3, #0 + 80172b4: e133 b.n 801751e } /*If the file was open successfully save the file descriptor*/ if(dsc->user_data == NULL) { - 801734a: 683b ldr r3, [r7, #0] - 801734c: 6a5b ldr r3, [r3, #36] ; 0x24 - 801734e: 2b00 cmp r3, #0 - 8017350: d11b bne.n 801738a + 80172b6: 683b ldr r3, [r7, #0] + 80172b8: 6a5b ldr r3, [r3, #36] ; 0x24 + 80172ba: 2b00 cmp r3, #0 + 80172bc: d11b bne.n 80172f6 dsc->user_data = lv_mem_alloc(sizeof(lv_img_decoder_built_in_data_t)); - 8017352: 2014 movs r0, #20 - 8017354: f01b faa0 bl 8032898 - 8017358: 4602 mov r2, r0 - 801735a: 683b ldr r3, [r7, #0] - 801735c: 625a str r2, [r3, #36] ; 0x24 + 80172be: 2014 movs r0, #20 + 80172c0: f01b faa0 bl 8032804 + 80172c4: 4602 mov r2, r0 + 80172c6: 683b ldr r3, [r7, #0] + 80172c8: 625a str r2, [r3, #36] ; 0x24 LV_ASSERT_MALLOC(dsc->user_data); - 801735e: 683b ldr r3, [r7, #0] - 8017360: 6a5b ldr r3, [r3, #36] ; 0x24 - 8017362: 2b00 cmp r3, #0 - 8017364: d100 bne.n 8017368 - 8017366: e7fe b.n 8017366 + 80172ca: 683b ldr r3, [r7, #0] + 80172cc: 6a5b ldr r3, [r3, #36] ; 0x24 + 80172ce: 2b00 cmp r3, #0 + 80172d0: d100 bne.n 80172d4 + 80172d2: e7fe b.n 80172d2 if(dsc->user_data == NULL) { - 8017368: 683b ldr r3, [r7, #0] - 801736a: 6a5b ldr r3, [r3, #36] ; 0x24 - 801736c: 2b00 cmp r3, #0 - 801736e: d106 bne.n 801737e + 80172d4: 683b ldr r3, [r7, #0] + 80172d6: 6a5b ldr r3, [r3, #36] ; 0x24 + 80172d8: 2b00 cmp r3, #0 + 80172da: d106 bne.n 80172ea LV_LOG_ERROR("img_decoder_built_in_open: out of memory"); lv_fs_close(&f); - 8017370: f107 030c add.w r3, r7, #12 - 8017374: 4618 mov r0, r3 - 8017376: f01a fc6a bl 8031c4e + 80172dc: f107 030c add.w r3, r7, #12 + 80172e0: 4618 mov r0, r3 + 80172e2: f01a fc6a bl 8031bba return LV_RES_INV; - 801737a: 2300 movs r3, #0 - 801737c: e119 b.n 80175b2 + 80172e6: 2300 movs r3, #0 + 80172e8: e119 b.n 801751e } lv_memset_00(dsc->user_data, sizeof(lv_img_decoder_built_in_data_t)); - 801737e: 683b ldr r3, [r7, #0] - 8017380: 6a5b ldr r3, [r3, #36] ; 0x24 - 8017382: 2114 movs r1, #20 - 8017384: 4618 mov r0, r3 - 8017386: f01b fee3 bl 8033150 + 80172ea: 683b ldr r3, [r7, #0] + 80172ec: 6a5b ldr r3, [r3, #36] ; 0x24 + 80172ee: 2114 movs r1, #20 + 80172f0: 4618 mov r0, r3 + 80172f2: f01b fee3 bl 80330bc } lv_img_decoder_built_in_data_t * user_data = dsc->user_data; - 801738a: 683b ldr r3, [r7, #0] - 801738c: 6a5b ldr r3, [r3, #36] ; 0x24 - 801738e: 62bb str r3, [r7, #40] ; 0x28 + 80172f6: 683b ldr r3, [r7, #0] + 80172f8: 6a5b ldr r3, [r3, #36] ; 0x24 + 80172fa: 62bb str r3, [r7, #40] ; 0x28 lv_memcpy_small(&user_data->f, &f, sizeof(f)); - 8017390: 6abb ldr r3, [r7, #40] ; 0x28 - 8017392: f107 010c add.w r1, r7, #12 - 8017396: 220c movs r2, #12 - 8017398: 4618 mov r0, r3 - 801739a: f7ff fcf5 bl 8016d88 - 801739e: e00a b.n 80173b6 + 80172fc: 6abb ldr r3, [r7, #40] ; 0x28 + 80172fe: f107 010c add.w r1, r7, #12 + 8017302: 220c movs r2, #12 + 8017304: 4618 mov r0, r3 + 8017306: f7ff fcf5 bl 8016cf4 + 801730a: e00a b.n 8017322 } else if(dsc->src_type == LV_IMG_SRC_VARIABLE) { - 80173a0: 683b ldr r3, [r7, #0] - 80173a2: 7c1b ldrb r3, [r3, #16] - 80173a4: 2b00 cmp r3, #0 - 80173a6: d106 bne.n 80173b6 + 801730c: 683b ldr r3, [r7, #0] + 801730e: 7c1b ldrb r3, [r3, #16] + 8017310: 2b00 cmp r3, #0 + 8017312: d106 bne.n 8017322 /*The variables should have valid data*/ if(((lv_img_dsc_t *)dsc->src)->data == NULL) { - 80173a8: 683b ldr r3, [r7, #0] - 80173aa: 685b ldr r3, [r3, #4] - 80173ac: 689b ldr r3, [r3, #8] - 80173ae: 2b00 cmp r3, #0 - 80173b0: d101 bne.n 80173b6 + 8017314: 683b ldr r3, [r7, #0] + 8017316: 685b ldr r3, [r3, #4] + 8017318: 689b ldr r3, [r3, #8] + 801731a: 2b00 cmp r3, #0 + 801731c: d101 bne.n 8017322 return LV_RES_INV; - 80173b2: 2300 movs r3, #0 - 80173b4: e0fd b.n 80175b2 + 801731e: 2300 movs r3, #0 + 8017320: e0fd b.n 801751e } } lv_img_cf_t cf = dsc->header.cf; - 80173b6: 683b ldr r3, [r7, #0] - 80173b8: 7d1b ldrb r3, [r3, #20] - 80173ba: f3c3 0304 ubfx r3, r3, #0, #5 - 80173be: b2db uxtb r3, r3 - 80173c0: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8017322: 683b ldr r3, [r7, #0] + 8017324: 7d1b ldrb r3, [r3, #20] + 8017326: f3c3 0304 ubfx r3, r3, #0, #5 + 801732a: b2db uxtb r3, r3 + 801732c: f887 3027 strb.w r3, [r7, #39] ; 0x27 /*Process true color formats*/ if(cf == LV_IMG_CF_TRUE_COLOR || cf == LV_IMG_CF_TRUE_COLOR_ALPHA || cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) { - 80173c4: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80173c8: 2b04 cmp r3, #4 - 80173ca: d007 beq.n 80173dc - 80173cc: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80173d0: 2b05 cmp r3, #5 - 80173d2: d003 beq.n 80173dc - 80173d4: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80173d8: 2b06 cmp r3, #6 - 80173da: d10c bne.n 80173f6 + 8017330: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8017334: 2b04 cmp r3, #4 + 8017336: d007 beq.n 8017348 + 8017338: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 801733c: 2b05 cmp r3, #5 + 801733e: d003 beq.n 8017348 + 8017340: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8017344: 2b06 cmp r3, #6 + 8017346: d10c bne.n 8017362 if(dsc->src_type == LV_IMG_SRC_VARIABLE) { - 80173dc: 683b ldr r3, [r7, #0] - 80173de: 7c1b ldrb r3, [r3, #16] - 80173e0: 2b00 cmp r3, #0 - 80173e2: d106 bne.n 80173f2 + 8017348: 683b ldr r3, [r7, #0] + 801734a: 7c1b ldrb r3, [r3, #16] + 801734c: 2b00 cmp r3, #0 + 801734e: d106 bne.n 801735e /*In case of uncompressed formats the image stored in the ROM/RAM. *So simply give its pointer*/ dsc->img_data = ((lv_img_dsc_t *)dsc->src)->data; - 80173e4: 683b ldr r3, [r7, #0] - 80173e6: 685b ldr r3, [r3, #4] - 80173e8: 689a ldr r2, [r3, #8] - 80173ea: 683b ldr r3, [r7, #0] - 80173ec: 619a str r2, [r3, #24] + 8017350: 683b ldr r3, [r7, #0] + 8017352: 685b ldr r3, [r3, #4] + 8017354: 689a ldr r2, [r3, #8] + 8017356: 683b ldr r3, [r7, #0] + 8017358: 619a str r2, [r3, #24] return LV_RES_OK; - 80173ee: 2301 movs r3, #1 - 80173f0: e0df b.n 80175b2 + 801735a: 2301 movs r3, #1 + 801735c: e0df b.n 801751e } else { /*If it's a file it need to be read line by line later*/ return LV_RES_OK; - 80173f2: 2301 movs r3, #1 - 80173f4: e0dd b.n 80175b2 + 801735e: 2301 movs r3, #1 + 8017360: e0dd b.n 801751e } } /*Process indexed images. Build a palette*/ else if(cf == LV_IMG_CF_INDEXED_1BIT || cf == LV_IMG_CF_INDEXED_2BIT || cf == LV_IMG_CF_INDEXED_4BIT || - 80173f6: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80173fa: 2b07 cmp r3, #7 - 80173fc: d00c beq.n 8017418 - 80173fe: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8017402: 2b08 cmp r3, #8 - 8017404: d008 beq.n 8017418 - 8017406: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 801740a: 2b09 cmp r3, #9 - 801740c: d004 beq.n 8017418 - 801740e: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8017412: 2b0a cmp r3, #10 - 8017414: f040 80b6 bne.w 8017584 + 8017362: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8017366: 2b07 cmp r3, #7 + 8017368: d00c beq.n 8017384 + 801736a: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 801736e: 2b08 cmp r3, #8 + 8017370: d008 beq.n 8017384 + 8017372: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8017376: 2b09 cmp r3, #9 + 8017378: d004 beq.n 8017384 + 801737a: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 801737e: 2b0a cmp r3, #10 + 8017380: f040 80b6 bne.w 80174f0 cf == LV_IMG_CF_INDEXED_8BIT) { uint8_t px_size = lv_img_cf_get_px_size(cf); - 8017418: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 801741c: 4618 mov r0, r3 - 801741e: f7fa fb9d bl 8011b5c - 8017422: 4603 mov r3, r0 - 8017424: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 8017384: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8017388: 4618 mov r0, r3 + 801738a: f7fa fb9d bl 8011ac8 + 801738e: 4603 mov r3, r0 + 8017390: f887 3026 strb.w r3, [r7, #38] ; 0x26 uint32_t palette_size = 1 << px_size; - 8017428: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 801742c: 2201 movs r2, #1 - 801742e: fa02 f303 lsl.w r3, r2, r3 - 8017432: 623b str r3, [r7, #32] + 8017394: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 8017398: 2201 movs r2, #1 + 801739a: fa02 f303 lsl.w r3, r2, r3 + 801739e: 623b str r3, [r7, #32] /*Allocate the palette*/ if(dsc->user_data == NULL) { - 8017434: 683b ldr r3, [r7, #0] - 8017436: 6a5b ldr r3, [r3, #36] ; 0x24 - 8017438: 2b00 cmp r3, #0 - 801743a: d116 bne.n 801746a + 80173a0: 683b ldr r3, [r7, #0] + 80173a2: 6a5b ldr r3, [r3, #36] ; 0x24 + 80173a4: 2b00 cmp r3, #0 + 80173a6: d116 bne.n 80173d6 dsc->user_data = lv_mem_alloc(sizeof(lv_img_decoder_built_in_data_t)); - 801743c: 2014 movs r0, #20 - 801743e: f01b fa2b bl 8032898 - 8017442: 4602 mov r2, r0 - 8017444: 683b ldr r3, [r7, #0] - 8017446: 625a str r2, [r3, #36] ; 0x24 + 80173a8: 2014 movs r0, #20 + 80173aa: f01b fa2b bl 8032804 + 80173ae: 4602 mov r2, r0 + 80173b0: 683b ldr r3, [r7, #0] + 80173b2: 625a str r2, [r3, #36] ; 0x24 LV_ASSERT_MALLOC(dsc->user_data); - 8017448: 683b ldr r3, [r7, #0] - 801744a: 6a5b ldr r3, [r3, #36] ; 0x24 - 801744c: 2b00 cmp r3, #0 - 801744e: d100 bne.n 8017452 - 8017450: e7fe b.n 8017450 + 80173b4: 683b ldr r3, [r7, #0] + 80173b6: 6a5b ldr r3, [r3, #36] ; 0x24 + 80173b8: 2b00 cmp r3, #0 + 80173ba: d100 bne.n 80173be + 80173bc: e7fe b.n 80173bc if(dsc->user_data == NULL) { - 8017452: 683b ldr r3, [r7, #0] - 8017454: 6a5b ldr r3, [r3, #36] ; 0x24 - 8017456: 2b00 cmp r3, #0 - 8017458: d101 bne.n 801745e + 80173be: 683b ldr r3, [r7, #0] + 80173c0: 6a5b ldr r3, [r3, #36] ; 0x24 + 80173c2: 2b00 cmp r3, #0 + 80173c4: d101 bne.n 80173ca LV_LOG_ERROR("img_decoder_built_in_open: out of memory"); return LV_RES_INV; - 801745a: 2300 movs r3, #0 - 801745c: e0a9 b.n 80175b2 + 80173c6: 2300 movs r3, #0 + 80173c8: e0a9 b.n 801751e } lv_memset_00(dsc->user_data, sizeof(lv_img_decoder_built_in_data_t)); - 801745e: 683b ldr r3, [r7, #0] - 8017460: 6a5b ldr r3, [r3, #36] ; 0x24 - 8017462: 2114 movs r1, #20 - 8017464: 4618 mov r0, r3 - 8017466: f01b fe73 bl 8033150 + 80173ca: 683b ldr r3, [r7, #0] + 80173cc: 6a5b ldr r3, [r3, #36] ; 0x24 + 80173ce: 2114 movs r1, #20 + 80173d0: 4618 mov r0, r3 + 80173d2: f01b fe73 bl 80330bc } lv_img_decoder_built_in_data_t * user_data = dsc->user_data; - 801746a: 683b ldr r3, [r7, #0] - 801746c: 6a5b ldr r3, [r3, #36] ; 0x24 - 801746e: 61fb str r3, [r7, #28] + 80173d6: 683b ldr r3, [r7, #0] + 80173d8: 6a5b ldr r3, [r3, #36] ; 0x24 + 80173da: 61fb str r3, [r7, #28] user_data->palette = lv_mem_alloc(palette_size * sizeof(lv_color_t)); - 8017470: 6a3b ldr r3, [r7, #32] - 8017472: 005b lsls r3, r3, #1 - 8017474: 4618 mov r0, r3 - 8017476: f01b fa0f bl 8032898 - 801747a: 4602 mov r2, r0 - 801747c: 69fb ldr r3, [r7, #28] - 801747e: 60da str r2, [r3, #12] + 80173dc: 6a3b ldr r3, [r7, #32] + 80173de: 005b lsls r3, r3, #1 + 80173e0: 4618 mov r0, r3 + 80173e2: f01b fa0f bl 8032804 + 80173e6: 4602 mov r2, r0 + 80173e8: 69fb ldr r3, [r7, #28] + 80173ea: 60da str r2, [r3, #12] LV_ASSERT_MALLOC(user_data->palette); - 8017480: 69fb ldr r3, [r7, #28] - 8017482: 68db ldr r3, [r3, #12] - 8017484: 2b00 cmp r3, #0 - 8017486: d100 bne.n 801748a - 8017488: e7fe b.n 8017488 + 80173ec: 69fb ldr r3, [r7, #28] + 80173ee: 68db ldr r3, [r3, #12] + 80173f0: 2b00 cmp r3, #0 + 80173f2: d100 bne.n 80173f6 + 80173f4: e7fe b.n 80173f4 user_data->opa = lv_mem_alloc(palette_size * sizeof(lv_opa_t)); - 801748a: 6a38 ldr r0, [r7, #32] - 801748c: f01b fa04 bl 8032898 - 8017490: 4602 mov r2, r0 - 8017492: 69fb ldr r3, [r7, #28] - 8017494: 611a str r2, [r3, #16] + 80173f6: 6a38 ldr r0, [r7, #32] + 80173f8: f01b fa04 bl 8032804 + 80173fc: 4602 mov r2, r0 + 80173fe: 69fb ldr r3, [r7, #28] + 8017400: 611a str r2, [r3, #16] LV_ASSERT_MALLOC(user_data->opa); - 8017496: 69fb ldr r3, [r7, #28] - 8017498: 691b ldr r3, [r3, #16] - 801749a: 2b00 cmp r3, #0 - 801749c: d100 bne.n 80174a0 - 801749e: e7fe b.n 801749e + 8017402: 69fb ldr r3, [r7, #28] + 8017404: 691b ldr r3, [r3, #16] + 8017406: 2b00 cmp r3, #0 + 8017408: d100 bne.n 801740c + 801740a: e7fe b.n 801740a if(user_data->palette == NULL || user_data->opa == NULL) { - 80174a0: 69fb ldr r3, [r7, #28] - 80174a2: 68db ldr r3, [r3, #12] - 80174a4: 2b00 cmp r3, #0 - 80174a6: d003 beq.n 80174b0 - 80174a8: 69fb ldr r3, [r7, #28] - 80174aa: 691b ldr r3, [r3, #16] - 80174ac: 2b00 cmp r3, #0 - 80174ae: d105 bne.n 80174bc + 801740c: 69fb ldr r3, [r7, #28] + 801740e: 68db ldr r3, [r3, #12] + 8017410: 2b00 cmp r3, #0 + 8017412: d003 beq.n 801741c + 8017414: 69fb ldr r3, [r7, #28] + 8017416: 691b ldr r3, [r3, #16] + 8017418: 2b00 cmp r3, #0 + 801741a: d105 bne.n 8017428 LV_LOG_ERROR("img_decoder_built_in_open: out of memory"); lv_img_decoder_built_in_close(decoder, dsc); - 80174b0: 6839 ldr r1, [r7, #0] - 80174b2: 6878 ldr r0, [r7, #4] - 80174b4: f000 f914 bl 80176e0 + 801741c: 6839 ldr r1, [r7, #0] + 801741e: 6878 ldr r0, [r7, #4] + 8017420: f000 f914 bl 801764c return LV_RES_INV; - 80174b8: 2300 movs r3, #0 - 80174ba: e07a b.n 80175b2 + 8017424: 2300 movs r3, #0 + 8017426: e07a b.n 801751e } if(dsc->src_type == LV_IMG_SRC_FILE) { - 80174bc: 683b ldr r3, [r7, #0] - 80174be: 7c1b ldrb r3, [r3, #16] - 80174c0: 2b01 cmp r3, #1 - 80174c2: d12a bne.n 801751a + 8017428: 683b ldr r3, [r7, #0] + 801742a: 7c1b ldrb r3, [r3, #16] + 801742c: 2b01 cmp r3, #1 + 801742e: d12a bne.n 8017486 /*Read the palette from file*/ lv_fs_seek(&user_data->f, 4, LV_FS_SEEK_SET); /*Skip the header*/ - 80174c4: 69fb ldr r3, [r7, #28] - 80174c6: 2200 movs r2, #0 - 80174c8: 2104 movs r1, #4 - 80174ca: 4618 mov r0, r3 - 80174cc: f01a fd38 bl 8031f40 + 8017430: 69fb ldr r3, [r7, #28] + 8017432: 2200 movs r2, #0 + 8017434: 2104 movs r1, #4 + 8017436: 4618 mov r0, r3 + 8017438: f01a fd38 bl 8031eac lv_color32_t cur_color; uint32_t i; for(i = 0; i < palette_size; i++) { - 80174d0: 2300 movs r3, #0 - 80174d2: 637b str r3, [r7, #52] ; 0x34 - 80174d4: e01c b.n 8017510 + 801743c: 2300 movs r3, #0 + 801743e: 637b str r3, [r7, #52] ; 0x34 + 8017440: e01c b.n 801747c lv_fs_read(&user_data->f, &cur_color, sizeof(lv_color32_t), NULL); - 80174d6: 69f8 ldr r0, [r7, #28] - 80174d8: f107 0108 add.w r1, r7, #8 - 80174dc: 2300 movs r3, #0 - 80174de: 2204 movs r2, #4 - 80174e0: f01a fce9 bl 8031eb6 + 8017442: 69f8 ldr r0, [r7, #28] + 8017444: f107 0108 add.w r1, r7, #8 + 8017448: 2300 movs r3, #0 + 801744a: 2204 movs r2, #4 + 801744c: f01a fce9 bl 8031e22 user_data->palette[i] = lv_color_make(cur_color.ch.red, cur_color.ch.green, cur_color.ch.blue); - 80174e4: 7ab8 ldrb r0, [r7, #10] - 80174e6: 7a79 ldrb r1, [r7, #9] - 80174e8: 7a3d ldrb r5, [r7, #8] - 80174ea: 69fb ldr r3, [r7, #28] - 80174ec: 68da ldr r2, [r3, #12] - 80174ee: 6b7b ldr r3, [r7, #52] ; 0x34 - 80174f0: 005b lsls r3, r3, #1 - 80174f2: 18d4 adds r4, r2, r3 - 80174f4: 462a mov r2, r5 - 80174f6: f7ff fc68 bl 8016dca - 80174fa: 4603 mov r3, r0 - 80174fc: 8023 strh r3, [r4, #0] + 8017450: 7ab8 ldrb r0, [r7, #10] + 8017452: 7a79 ldrb r1, [r7, #9] + 8017454: 7a3d ldrb r5, [r7, #8] + 8017456: 69fb ldr r3, [r7, #28] + 8017458: 68da ldr r2, [r3, #12] + 801745a: 6b7b ldr r3, [r7, #52] ; 0x34 + 801745c: 005b lsls r3, r3, #1 + 801745e: 18d4 adds r4, r2, r3 + 8017460: 462a mov r2, r5 + 8017462: f7ff fc68 bl 8016d36 + 8017466: 4603 mov r3, r0 + 8017468: 8023 strh r3, [r4, #0] user_data->opa[i] = cur_color.ch.alpha; - 80174fe: 69fb ldr r3, [r7, #28] - 8017500: 691a ldr r2, [r3, #16] - 8017502: 6b7b ldr r3, [r7, #52] ; 0x34 - 8017504: 4413 add r3, r2 - 8017506: 7afa ldrb r2, [r7, #11] - 8017508: 701a strb r2, [r3, #0] + 801746a: 69fb ldr r3, [r7, #28] + 801746c: 691a ldr r2, [r3, #16] + 801746e: 6b7b ldr r3, [r7, #52] ; 0x34 + 8017470: 4413 add r3, r2 + 8017472: 7afa ldrb r2, [r7, #11] + 8017474: 701a strb r2, [r3, #0] for(i = 0; i < palette_size; i++) { - 801750a: 6b7b ldr r3, [r7, #52] ; 0x34 - 801750c: 3301 adds r3, #1 - 801750e: 637b str r3, [r7, #52] ; 0x34 - 8017510: 6b7a ldr r2, [r7, #52] ; 0x34 - 8017512: 6a3b ldr r3, [r7, #32] - 8017514: 429a cmp r2, r3 - 8017516: d3de bcc.n 80174d6 - 8017518: e030 b.n 801757c + 8017476: 6b7b ldr r3, [r7, #52] ; 0x34 + 8017478: 3301 adds r3, #1 + 801747a: 637b str r3, [r7, #52] ; 0x34 + 801747c: 6b7a ldr r2, [r7, #52] ; 0x34 + 801747e: 6a3b ldr r3, [r7, #32] + 8017480: 429a cmp r2, r3 + 8017482: d3de bcc.n 8017442 + 8017484: e030 b.n 80174e8 } } else { /*The palette begins in the beginning of the image data. Just point to it.*/ lv_color32_t * palette_p = (lv_color32_t *)((lv_img_dsc_t *)dsc->src)->data; - 801751a: 683b ldr r3, [r7, #0] - 801751c: 685b ldr r3, [r3, #4] - 801751e: 689b ldr r3, [r3, #8] - 8017520: 61bb str r3, [r7, #24] + 8017486: 683b ldr r3, [r7, #0] + 8017488: 685b ldr r3, [r3, #4] + 801748a: 689b ldr r3, [r3, #8] + 801748c: 61bb str r3, [r7, #24] uint32_t i; for(i = 0; i < palette_size; i++) { - 8017522: 2300 movs r3, #0 - 8017524: 633b str r3, [r7, #48] ; 0x30 - 8017526: e025 b.n 8017574 + 801748e: 2300 movs r3, #0 + 8017490: 633b str r3, [r7, #48] ; 0x30 + 8017492: e025 b.n 80174e0 user_data->palette[i] = lv_color_make(palette_p[i].ch.red, palette_p[i].ch.green, palette_p[i].ch.blue); - 8017528: 6b3b ldr r3, [r7, #48] ; 0x30 - 801752a: 009b lsls r3, r3, #2 - 801752c: 69ba ldr r2, [r7, #24] - 801752e: 4413 add r3, r2 - 8017530: 7898 ldrb r0, [r3, #2] - 8017532: 6b3b ldr r3, [r7, #48] ; 0x30 - 8017534: 009b lsls r3, r3, #2 - 8017536: 69ba ldr r2, [r7, #24] - 8017538: 4413 add r3, r2 - 801753a: 7859 ldrb r1, [r3, #1] - 801753c: 6b3b ldr r3, [r7, #48] ; 0x30 - 801753e: 009b lsls r3, r3, #2 - 8017540: 69ba ldr r2, [r7, #24] - 8017542: 4413 add r3, r2 - 8017544: 781d ldrb r5, [r3, #0] - 8017546: 69fb ldr r3, [r7, #28] - 8017548: 68da ldr r2, [r3, #12] - 801754a: 6b3b ldr r3, [r7, #48] ; 0x30 - 801754c: 005b lsls r3, r3, #1 - 801754e: 18d4 adds r4, r2, r3 - 8017550: 462a mov r2, r5 - 8017552: f7ff fc3a bl 8016dca - 8017556: 4603 mov r3, r0 - 8017558: 8023 strh r3, [r4, #0] + 8017494: 6b3b ldr r3, [r7, #48] ; 0x30 + 8017496: 009b lsls r3, r3, #2 + 8017498: 69ba ldr r2, [r7, #24] + 801749a: 4413 add r3, r2 + 801749c: 7898 ldrb r0, [r3, #2] + 801749e: 6b3b ldr r3, [r7, #48] ; 0x30 + 80174a0: 009b lsls r3, r3, #2 + 80174a2: 69ba ldr r2, [r7, #24] + 80174a4: 4413 add r3, r2 + 80174a6: 7859 ldrb r1, [r3, #1] + 80174a8: 6b3b ldr r3, [r7, #48] ; 0x30 + 80174aa: 009b lsls r3, r3, #2 + 80174ac: 69ba ldr r2, [r7, #24] + 80174ae: 4413 add r3, r2 + 80174b0: 781d ldrb r5, [r3, #0] + 80174b2: 69fb ldr r3, [r7, #28] + 80174b4: 68da ldr r2, [r3, #12] + 80174b6: 6b3b ldr r3, [r7, #48] ; 0x30 + 80174b8: 005b lsls r3, r3, #1 + 80174ba: 18d4 adds r4, r2, r3 + 80174bc: 462a mov r2, r5 + 80174be: f7ff fc3a bl 8016d36 + 80174c2: 4603 mov r3, r0 + 80174c4: 8023 strh r3, [r4, #0] user_data->opa[i] = palette_p[i].ch.alpha; - 801755a: 6b3b ldr r3, [r7, #48] ; 0x30 - 801755c: 009b lsls r3, r3, #2 - 801755e: 69ba ldr r2, [r7, #24] - 8017560: 441a add r2, r3 - 8017562: 69fb ldr r3, [r7, #28] - 8017564: 6919 ldr r1, [r3, #16] - 8017566: 6b3b ldr r3, [r7, #48] ; 0x30 - 8017568: 440b add r3, r1 - 801756a: 78d2 ldrb r2, [r2, #3] - 801756c: 701a strb r2, [r3, #0] + 80174c6: 6b3b ldr r3, [r7, #48] ; 0x30 + 80174c8: 009b lsls r3, r3, #2 + 80174ca: 69ba ldr r2, [r7, #24] + 80174cc: 441a add r2, r3 + 80174ce: 69fb ldr r3, [r7, #28] + 80174d0: 6919 ldr r1, [r3, #16] + 80174d2: 6b3b ldr r3, [r7, #48] ; 0x30 + 80174d4: 440b add r3, r1 + 80174d6: 78d2 ldrb r2, [r2, #3] + 80174d8: 701a strb r2, [r3, #0] for(i = 0; i < palette_size; i++) { - 801756e: 6b3b ldr r3, [r7, #48] ; 0x30 - 8017570: 3301 adds r3, #1 - 8017572: 633b str r3, [r7, #48] ; 0x30 - 8017574: 6b3a ldr r2, [r7, #48] ; 0x30 - 8017576: 6a3b ldr r3, [r7, #32] - 8017578: 429a cmp r2, r3 - 801757a: d3d5 bcc.n 8017528 + 80174da: 6b3b ldr r3, [r7, #48] ; 0x30 + 80174dc: 3301 adds r3, #1 + 80174de: 633b str r3, [r7, #48] ; 0x30 + 80174e0: 6b3a ldr r2, [r7, #48] ; 0x30 + 80174e2: 6a3b ldr r3, [r7, #32] + 80174e4: 429a cmp r2, r3 + 80174e6: d3d5 bcc.n 8017494 } } return LV_RES_OK; - 801757c: 2301 movs r3, #1 - 801757e: e018 b.n 80175b2 - 8017580: 08046c3c .word 0x08046c3c + 80174e8: 2301 movs r3, #1 + 80174ea: e018 b.n 801751e + 80174ec: 08046b94 .word 0x08046b94 } /*Alpha indexed images.*/ else if(cf == LV_IMG_CF_ALPHA_1BIT || cf == LV_IMG_CF_ALPHA_2BIT || cf == LV_IMG_CF_ALPHA_4BIT || - 8017584: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8017588: 2b0b cmp r3, #11 - 801758a: d00b beq.n 80175a4 - 801758c: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8017590: 2b0c cmp r3, #12 - 8017592: d007 beq.n 80175a4 - 8017594: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8017598: 2b0d cmp r3, #13 - 801759a: d003 beq.n 80175a4 - 801759c: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80175a0: 2b0e cmp r3, #14 - 80175a2: d101 bne.n 80175a8 + 80174f0: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 80174f4: 2b0b cmp r3, #11 + 80174f6: d00b beq.n 8017510 + 80174f8: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 80174fc: 2b0c cmp r3, #12 + 80174fe: d007 beq.n 8017510 + 8017500: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8017504: 2b0d cmp r3, #13 + 8017506: d003 beq.n 8017510 + 8017508: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 801750c: 2b0e cmp r3, #14 + 801750e: d101 bne.n 8017514 cf == LV_IMG_CF_ALPHA_8BIT) { return LV_RES_OK; /*Nothing to process*/ - 80175a4: 2301 movs r3, #1 - 80175a6: e004 b.n 80175b2 + 8017510: 2301 movs r3, #1 + 8017512: e004 b.n 801751e } /*Unknown format. Can't decode it.*/ else { /*Free the potentially allocated memories*/ lv_img_decoder_built_in_close(decoder, dsc); - 80175a8: 6839 ldr r1, [r7, #0] - 80175aa: 6878 ldr r0, [r7, #4] - 80175ac: f000 f898 bl 80176e0 + 8017514: 6839 ldr r1, [r7, #0] + 8017516: 6878 ldr r0, [r7, #4] + 8017518: f000 f898 bl 801764c LV_LOG_WARN("Image decoder open: unknown color format"); return LV_RES_INV; - 80175b0: 2300 movs r3, #0 + 801751c: 2300 movs r3, #0 } } - 80175b2: 4618 mov r0, r3 - 80175b4: 3738 adds r7, #56 ; 0x38 - 80175b6: 46bd mov sp, r7 - 80175b8: bdb0 pop {r4, r5, r7, pc} - 80175ba: bf00 nop + 801751e: 4618 mov r0, r3 + 8017520: 3738 adds r7, #56 ; 0x38 + 8017522: 46bd mov sp, r7 + 8017524: bdb0 pop {r4, r5, r7, pc} + 8017526: bf00 nop -080175bc : +08017528 : * @param buf a buffer to store the decoded pixels * @return LV_RES_OK: ok; LV_RES_INV: failed */ lv_res_t lv_img_decoder_built_in_read_line(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_coord_t len, uint8_t * buf) { - 80175bc: b580 push {r7, lr} - 80175be: b088 sub sp, #32 - 80175c0: af02 add r7, sp, #8 - 80175c2: 60f8 str r0, [r7, #12] - 80175c4: 60b9 str r1, [r7, #8] - 80175c6: 4611 mov r1, r2 - 80175c8: 461a mov r2, r3 - 80175ca: 460b mov r3, r1 - 80175cc: 80fb strh r3, [r7, #6] - 80175ce: 4613 mov r3, r2 - 80175d0: 80bb strh r3, [r7, #4] + 8017528: b580 push {r7, lr} + 801752a: b088 sub sp, #32 + 801752c: af02 add r7, sp, #8 + 801752e: 60f8 str r0, [r7, #12] + 8017530: 60b9 str r1, [r7, #8] + 8017532: 4611 mov r1, r2 + 8017534: 461a mov r2, r3 + 8017536: 460b mov r3, r1 + 8017538: 80fb strh r3, [r7, #6] + 801753a: 4613 mov r3, r2 + 801753c: 80bb strh r3, [r7, #4] LV_UNUSED(decoder); /*Unused*/ lv_res_t res = LV_RES_INV; - 80175d2: 2300 movs r3, #0 - 80175d4: 75fb strb r3, [r7, #23] + 801753e: 2300 movs r3, #0 + 8017540: 75fb strb r3, [r7, #23] if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA || - 80175d6: 68bb ldr r3, [r7, #8] - 80175d8: 7d1b ldrb r3, [r3, #20] - 80175da: f003 031f and.w r3, r3, #31 - 80175de: b2db uxtb r3, r3 - 80175e0: 2b04 cmp r3, #4 - 80175e2: d00d beq.n 8017600 - 80175e4: 68bb ldr r3, [r7, #8] - 80175e6: 7d1b ldrb r3, [r3, #20] - 80175e8: f003 031f and.w r3, r3, #31 - 80175ec: b2db uxtb r3, r3 - 80175ee: 2b05 cmp r3, #5 - 80175f0: d006 beq.n 8017600 + 8017542: 68bb ldr r3, [r7, #8] + 8017544: 7d1b ldrb r3, [r3, #20] + 8017546: f003 031f and.w r3, r3, #31 + 801754a: b2db uxtb r3, r3 + 801754c: 2b04 cmp r3, #4 + 801754e: d00d beq.n 801756c + 8017550: 68bb ldr r3, [r7, #8] + 8017552: 7d1b ldrb r3, [r3, #20] + 8017554: f003 031f and.w r3, r3, #31 + 8017558: b2db uxtb r3, r3 + 801755a: 2b05 cmp r3, #5 + 801755c: d006 beq.n 801756c dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) { - 80175f2: 68bb ldr r3, [r7, #8] - 80175f4: 7d1b ldrb r3, [r3, #20] - 80175f6: f003 031f and.w r3, r3, #31 - 80175fa: b2db uxtb r3, r3 + 801755e: 68bb ldr r3, [r7, #8] + 8017560: 7d1b ldrb r3, [r3, #20] + 8017562: f003 031f and.w r3, r3, #31 + 8017566: b2db uxtb r3, r3 if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA || - 80175fc: 2b06 cmp r3, #6 - 80175fe: d112 bne.n 8017626 + 8017568: 2b06 cmp r3, #6 + 801756a: d112 bne.n 8017592 /*For TRUE_COLOR images read line required only for files. *For variables the image data was returned in `open`*/ if(dsc->src_type == LV_IMG_SRC_FILE) { - 8017600: 68bb ldr r3, [r7, #8] - 8017602: 7c1b ldrb r3, [r3, #16] - 8017604: 2b01 cmp r3, #1 - 8017606: d166 bne.n 80176d6 + 801756c: 68bb ldr r3, [r7, #8] + 801756e: 7c1b ldrb r3, [r3, #16] + 8017570: 2b01 cmp r3, #1 + 8017572: d166 bne.n 8017642 res = lv_img_decoder_built_in_line_true_color(dsc, x, y, len, buf); - 8017608: f9b7 0020 ldrsh.w r0, [r7, #32] - 801760c: f9b7 2004 ldrsh.w r2, [r7, #4] - 8017610: f9b7 1006 ldrsh.w r1, [r7, #6] - 8017614: 6a7b ldr r3, [r7, #36] ; 0x24 - 8017616: 9300 str r3, [sp, #0] - 8017618: 4603 mov r3, r0 - 801761a: 68b8 ldr r0, [r7, #8] - 801761c: f000 f88f bl 801773e - 8017620: 4603 mov r3, r0 - 8017622: 75fb strb r3, [r7, #23] + 8017574: f9b7 0020 ldrsh.w r0, [r7, #32] + 8017578: f9b7 2004 ldrsh.w r2, [r7, #4] + 801757c: f9b7 1006 ldrsh.w r1, [r7, #6] + 8017580: 6a7b ldr r3, [r7, #36] ; 0x24 + 8017582: 9300 str r3, [sp, #0] + 8017584: 4603 mov r3, r0 + 8017586: 68b8 ldr r0, [r7, #8] + 8017588: f000 f88f bl 80176aa + 801758c: 4603 mov r3, r0 + 801758e: 75fb strb r3, [r7, #23] if(dsc->src_type == LV_IMG_SRC_FILE) { - 8017624: e057 b.n 80176d6 + 8017590: e057 b.n 8017642 } } else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT || dsc->header.cf == LV_IMG_CF_ALPHA_2BIT || - 8017626: 68bb ldr r3, [r7, #8] - 8017628: 7d1b ldrb r3, [r3, #20] - 801762a: f003 031f and.w r3, r3, #31 - 801762e: b2db uxtb r3, r3 - 8017630: 2b0b cmp r3, #11 - 8017632: d014 beq.n 801765e - 8017634: 68bb ldr r3, [r7, #8] - 8017636: 7d1b ldrb r3, [r3, #20] - 8017638: f003 031f and.w r3, r3, #31 - 801763c: b2db uxtb r3, r3 - 801763e: 2b0c cmp r3, #12 - 8017640: d00d beq.n 801765e + 8017592: 68bb ldr r3, [r7, #8] + 8017594: 7d1b ldrb r3, [r3, #20] + 8017596: f003 031f and.w r3, r3, #31 + 801759a: b2db uxtb r3, r3 + 801759c: 2b0b cmp r3, #11 + 801759e: d014 beq.n 80175ca + 80175a0: 68bb ldr r3, [r7, #8] + 80175a2: 7d1b ldrb r3, [r3, #20] + 80175a4: f003 031f and.w r3, r3, #31 + 80175a8: b2db uxtb r3, r3 + 80175aa: 2b0c cmp r3, #12 + 80175ac: d00d beq.n 80175ca dsc->header.cf == LV_IMG_CF_ALPHA_4BIT || dsc->header.cf == LV_IMG_CF_ALPHA_8BIT) { - 8017642: 68bb ldr r3, [r7, #8] - 8017644: 7d1b ldrb r3, [r3, #20] - 8017646: f003 031f and.w r3, r3, #31 - 801764a: b2db uxtb r3, r3 + 80175ae: 68bb ldr r3, [r7, #8] + 80175b0: 7d1b ldrb r3, [r3, #20] + 80175b2: f003 031f and.w r3, r3, #31 + 80175b6: b2db uxtb r3, r3 else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT || dsc->header.cf == LV_IMG_CF_ALPHA_2BIT || - 801764c: 2b0d cmp r3, #13 - 801764e: d006 beq.n 801765e + 80175b8: 2b0d cmp r3, #13 + 80175ba: d006 beq.n 80175ca dsc->header.cf == LV_IMG_CF_ALPHA_4BIT || dsc->header.cf == LV_IMG_CF_ALPHA_8BIT) { - 8017650: 68bb ldr r3, [r7, #8] - 8017652: 7d1b ldrb r3, [r3, #20] - 8017654: f003 031f and.w r3, r3, #31 - 8017658: b2db uxtb r3, r3 - 801765a: 2b0e cmp r3, #14 - 801765c: d10e bne.n 801767c + 80175bc: 68bb ldr r3, [r7, #8] + 80175be: 7d1b ldrb r3, [r3, #20] + 80175c0: f003 031f and.w r3, r3, #31 + 80175c4: b2db uxtb r3, r3 + 80175c6: 2b0e cmp r3, #14 + 80175c8: d10e bne.n 80175e8 res = lv_img_decoder_built_in_line_alpha(dsc, x, y, len, buf); - 801765e: f9b7 0020 ldrsh.w r0, [r7, #32] - 8017662: f9b7 2004 ldrsh.w r2, [r7, #4] - 8017666: f9b7 1006 ldrsh.w r1, [r7, #6] - 801766a: 6a7b ldr r3, [r7, #36] ; 0x24 - 801766c: 9300 str r3, [sp, #0] - 801766e: 4603 mov r3, r0 - 8017670: 68b8 ldr r0, [r7, #8] - 8017672: f000 f8c3 bl 80177fc - 8017676: 4603 mov r3, r0 - 8017678: 75fb strb r3, [r7, #23] - 801767a: e02c b.n 80176d6 + 80175ca: f9b7 0020 ldrsh.w r0, [r7, #32] + 80175ce: f9b7 2004 ldrsh.w r2, [r7, #4] + 80175d2: f9b7 1006 ldrsh.w r1, [r7, #6] + 80175d6: 6a7b ldr r3, [r7, #36] ; 0x24 + 80175d8: 9300 str r3, [sp, #0] + 80175da: 4603 mov r3, r0 + 80175dc: 68b8 ldr r0, [r7, #8] + 80175de: f000 f8c3 bl 8017768 + 80175e2: 4603 mov r3, r0 + 80175e4: 75fb strb r3, [r7, #23] + 80175e6: e02c b.n 8017642 } else if(dsc->header.cf == LV_IMG_CF_INDEXED_1BIT || dsc->header.cf == LV_IMG_CF_INDEXED_2BIT || - 801767c: 68bb ldr r3, [r7, #8] - 801767e: 7d1b ldrb r3, [r3, #20] - 8017680: f003 031f and.w r3, r3, #31 - 8017684: b2db uxtb r3, r3 - 8017686: 2b07 cmp r3, #7 - 8017688: d014 beq.n 80176b4 - 801768a: 68bb ldr r3, [r7, #8] - 801768c: 7d1b ldrb r3, [r3, #20] - 801768e: f003 031f and.w r3, r3, #31 - 8017692: b2db uxtb r3, r3 - 8017694: 2b08 cmp r3, #8 - 8017696: d00d beq.n 80176b4 + 80175e8: 68bb ldr r3, [r7, #8] + 80175ea: 7d1b ldrb r3, [r3, #20] + 80175ec: f003 031f and.w r3, r3, #31 + 80175f0: b2db uxtb r3, r3 + 80175f2: 2b07 cmp r3, #7 + 80175f4: d014 beq.n 8017620 + 80175f6: 68bb ldr r3, [r7, #8] + 80175f8: 7d1b ldrb r3, [r3, #20] + 80175fa: f003 031f and.w r3, r3, #31 + 80175fe: b2db uxtb r3, r3 + 8017600: 2b08 cmp r3, #8 + 8017602: d00d beq.n 8017620 dsc->header.cf == LV_IMG_CF_INDEXED_4BIT || dsc->header.cf == LV_IMG_CF_INDEXED_8BIT) { - 8017698: 68bb ldr r3, [r7, #8] - 801769a: 7d1b ldrb r3, [r3, #20] - 801769c: f003 031f and.w r3, r3, #31 - 80176a0: b2db uxtb r3, r3 + 8017604: 68bb ldr r3, [r7, #8] + 8017606: 7d1b ldrb r3, [r3, #20] + 8017608: f003 031f and.w r3, r3, #31 + 801760c: b2db uxtb r3, r3 else if(dsc->header.cf == LV_IMG_CF_INDEXED_1BIT || dsc->header.cf == LV_IMG_CF_INDEXED_2BIT || - 80176a2: 2b09 cmp r3, #9 - 80176a4: d006 beq.n 80176b4 + 801760e: 2b09 cmp r3, #9 + 8017610: d006 beq.n 8017620 dsc->header.cf == LV_IMG_CF_INDEXED_4BIT || dsc->header.cf == LV_IMG_CF_INDEXED_8BIT) { - 80176a6: 68bb ldr r3, [r7, #8] - 80176a8: 7d1b ldrb r3, [r3, #20] - 80176aa: f003 031f and.w r3, r3, #31 - 80176ae: b2db uxtb r3, r3 - 80176b0: 2b0a cmp r3, #10 - 80176b2: d10e bne.n 80176d2 + 8017612: 68bb ldr r3, [r7, #8] + 8017614: 7d1b ldrb r3, [r3, #20] + 8017616: f003 031f and.w r3, r3, #31 + 801761a: b2db uxtb r3, r3 + 801761c: 2b0a cmp r3, #10 + 801761e: d10e bne.n 801763e res = lv_img_decoder_built_in_line_indexed(dsc, x, y, len, buf); - 80176b4: f9b7 0020 ldrsh.w r0, [r7, #32] - 80176b8: f9b7 2004 ldrsh.w r2, [r7, #4] - 80176bc: f9b7 1006 ldrsh.w r1, [r7, #6] - 80176c0: 6a7b ldr r3, [r7, #36] ; 0x24 - 80176c2: 9300 str r3, [sp, #0] - 80176c4: 4603 mov r3, r0 - 80176c6: 68b8 ldr r0, [r7, #8] - 80176c8: f000 fa1c bl 8017b04 - 80176cc: 4603 mov r3, r0 - 80176ce: 75fb strb r3, [r7, #23] - 80176d0: e001 b.n 80176d6 + 8017620: f9b7 0020 ldrsh.w r0, [r7, #32] + 8017624: f9b7 2004 ldrsh.w r2, [r7, #4] + 8017628: f9b7 1006 ldrsh.w r1, [r7, #6] + 801762c: 6a7b ldr r3, [r7, #36] ; 0x24 + 801762e: 9300 str r3, [sp, #0] + 8017630: 4603 mov r3, r0 + 8017632: 68b8 ldr r0, [r7, #8] + 8017634: f000 fa1c bl 8017a70 + 8017638: 4603 mov r3, r0 + 801763a: 75fb strb r3, [r7, #23] + 801763c: e001 b.n 8017642 } else { LV_LOG_WARN("Built-in image decoder read not supports the color format"); return LV_RES_INV; - 80176d2: 2300 movs r3, #0 - 80176d4: e000 b.n 80176d8 + 801763e: 2300 movs r3, #0 + 8017640: e000 b.n 8017644 } return res; - 80176d6: 7dfb ldrb r3, [r7, #23] + 8017642: 7dfb ldrb r3, [r7, #23] } - 80176d8: 4618 mov r0, r3 - 80176da: 3718 adds r7, #24 - 80176dc: 46bd mov sp, r7 - 80176de: bd80 pop {r7, pc} + 8017644: 4618 mov r0, r3 + 8017646: 3718 adds r7, #24 + 8017648: 46bd mov sp, r7 + 801764a: bd80 pop {r7, pc} -080176e0 : +0801764c : * Close the pending decoding. Free resources etc. * @param decoder pointer to the decoder the function associated with * @param dsc pointer to decoder descriptor */ void lv_img_decoder_built_in_close(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * dsc) { - 80176e0: b580 push {r7, lr} - 80176e2: b084 sub sp, #16 - 80176e4: af00 add r7, sp, #0 - 80176e6: 6078 str r0, [r7, #4] - 80176e8: 6039 str r1, [r7, #0] + 801764c: b580 push {r7, lr} + 801764e: b084 sub sp, #16 + 8017650: af00 add r7, sp, #0 + 8017652: 6078 str r0, [r7, #4] + 8017654: 6039 str r1, [r7, #0] LV_UNUSED(decoder); /*Unused*/ lv_img_decoder_built_in_data_t * user_data = dsc->user_data; - 80176ea: 683b ldr r3, [r7, #0] - 80176ec: 6a5b ldr r3, [r3, #36] ; 0x24 - 80176ee: 60fb str r3, [r7, #12] + 8017656: 683b ldr r3, [r7, #0] + 8017658: 6a5b ldr r3, [r3, #36] ; 0x24 + 801765a: 60fb str r3, [r7, #12] if(user_data) { - 80176f0: 68fb ldr r3, [r7, #12] - 80176f2: 2b00 cmp r3, #0 - 80176f4: d01f beq.n 8017736 + 801765c: 68fb ldr r3, [r7, #12] + 801765e: 2b00 cmp r3, #0 + 8017660: d01f beq.n 80176a2 if(dsc->src_type == LV_IMG_SRC_FILE) { - 80176f6: 683b ldr r3, [r7, #0] - 80176f8: 7c1b ldrb r3, [r3, #16] - 80176fa: 2b01 cmp r3, #1 - 80176fc: d103 bne.n 8017706 + 8017662: 683b ldr r3, [r7, #0] + 8017664: 7c1b ldrb r3, [r3, #16] + 8017666: 2b01 cmp r3, #1 + 8017668: d103 bne.n 8017672 lv_fs_close(&user_data->f); - 80176fe: 68fb ldr r3, [r7, #12] - 8017700: 4618 mov r0, r3 - 8017702: f01a faa4 bl 8031c4e + 801766a: 68fb ldr r3, [r7, #12] + 801766c: 4618 mov r0, r3 + 801766e: f01a faa4 bl 8031bba } if(user_data->palette) lv_mem_free(user_data->palette); - 8017706: 68fb ldr r3, [r7, #12] - 8017708: 68db ldr r3, [r3, #12] - 801770a: 2b00 cmp r3, #0 - 801770c: d004 beq.n 8017718 - 801770e: 68fb ldr r3, [r7, #12] - 8017710: 68db ldr r3, [r3, #12] - 8017712: 4618 mov r0, r3 - 8017714: f01b f8e2 bl 80328dc + 8017672: 68fb ldr r3, [r7, #12] + 8017674: 68db ldr r3, [r3, #12] + 8017676: 2b00 cmp r3, #0 + 8017678: d004 beq.n 8017684 + 801767a: 68fb ldr r3, [r7, #12] + 801767c: 68db ldr r3, [r3, #12] + 801767e: 4618 mov r0, r3 + 8017680: f01b f8e2 bl 8032848 if(user_data->opa) lv_mem_free(user_data->opa); - 8017718: 68fb ldr r3, [r7, #12] - 801771a: 691b ldr r3, [r3, #16] - 801771c: 2b00 cmp r3, #0 - 801771e: d004 beq.n 801772a - 8017720: 68fb ldr r3, [r7, #12] - 8017722: 691b ldr r3, [r3, #16] - 8017724: 4618 mov r0, r3 - 8017726: f01b f8d9 bl 80328dc + 8017684: 68fb ldr r3, [r7, #12] + 8017686: 691b ldr r3, [r3, #16] + 8017688: 2b00 cmp r3, #0 + 801768a: d004 beq.n 8017696 + 801768c: 68fb ldr r3, [r7, #12] + 801768e: 691b ldr r3, [r3, #16] + 8017690: 4618 mov r0, r3 + 8017692: f01b f8d9 bl 8032848 lv_mem_free(user_data); - 801772a: 68f8 ldr r0, [r7, #12] - 801772c: f01b f8d6 bl 80328dc + 8017696: 68f8 ldr r0, [r7, #12] + 8017698: f01b f8d6 bl 8032848 dsc->user_data = NULL; - 8017730: 683b ldr r3, [r7, #0] - 8017732: 2200 movs r2, #0 - 8017734: 625a str r2, [r3, #36] ; 0x24 + 801769c: 683b ldr r3, [r7, #0] + 801769e: 2200 movs r2, #0 + 80176a0: 625a str r2, [r3, #36] ; 0x24 } } - 8017736: bf00 nop - 8017738: 3710 adds r7, #16 - 801773a: 46bd mov sp, r7 - 801773c: bd80 pop {r7, pc} + 80176a2: bf00 nop + 80176a4: 3710 adds r7, #16 + 80176a6: 46bd mov sp, r7 + 80176a8: bd80 pop {r7, pc} -0801773e : +080176aa : * STATIC FUNCTIONS **********************/ static lv_res_t lv_img_decoder_built_in_line_true_color(lv_img_decoder_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_coord_t len, uint8_t * buf) { - 801773e: b580 push {r7, lr} - 8017740: b08a sub sp, #40 ; 0x28 - 8017742: af00 add r7, sp, #0 - 8017744: 60f8 str r0, [r7, #12] - 8017746: 4608 mov r0, r1 - 8017748: 4611 mov r1, r2 - 801774a: 461a mov r2, r3 - 801774c: 4603 mov r3, r0 - 801774e: 817b strh r3, [r7, #10] - 8017750: 460b mov r3, r1 - 8017752: 813b strh r3, [r7, #8] - 8017754: 4613 mov r3, r2 - 8017756: 80fb strh r3, [r7, #6] + 80176aa: b580 push {r7, lr} + 80176ac: b08a sub sp, #40 ; 0x28 + 80176ae: af00 add r7, sp, #0 + 80176b0: 60f8 str r0, [r7, #12] + 80176b2: 4608 mov r0, r1 + 80176b4: 4611 mov r1, r2 + 80176b6: 461a mov r2, r3 + 80176b8: 4603 mov r3, r0 + 80176ba: 817b strh r3, [r7, #10] + 80176bc: 460b mov r3, r1 + 80176be: 813b strh r3, [r7, #8] + 80176c0: 4613 mov r3, r2 + 80176c2: 80fb strh r3, [r7, #6] lv_img_decoder_built_in_data_t * user_data = dsc->user_data; - 8017758: 68fb ldr r3, [r7, #12] - 801775a: 6a5b ldr r3, [r3, #36] ; 0x24 - 801775c: 627b str r3, [r7, #36] ; 0x24 + 80176c4: 68fb ldr r3, [r7, #12] + 80176c6: 6a5b ldr r3, [r3, #36] ; 0x24 + 80176c8: 627b str r3, [r7, #36] ; 0x24 lv_fs_res_t res; uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf); - 801775e: 68fb ldr r3, [r7, #12] - 8017760: 7d1b ldrb r3, [r3, #20] - 8017762: f3c3 0304 ubfx r3, r3, #0, #5 - 8017766: b2db uxtb r3, r3 - 8017768: 4618 mov r0, r3 - 801776a: f7fa f9f7 bl 8011b5c - 801776e: 4603 mov r3, r0 - 8017770: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 80176ca: 68fb ldr r3, [r7, #12] + 80176cc: 7d1b ldrb r3, [r3, #20] + 80176ce: f3c3 0304 ubfx r3, r3, #0, #5 + 80176d2: b2db uxtb r3, r3 + 80176d4: 4618 mov r0, r3 + 80176d6: f7fa f9f7 bl 8011ac8 + 80176da: 4603 mov r3, r0 + 80176dc: f887 3023 strb.w r3, [r7, #35] ; 0x23 uint32_t pos = ((y * dsc->header.w + x) * px_size) >> 3; - 8017774: f9b7 3008 ldrsh.w r3, [r7, #8] - 8017778: 68fa ldr r2, [r7, #12] - 801777a: 6952 ldr r2, [r2, #20] - 801777c: f3c2 228a ubfx r2, r2, #10, #11 - 8017780: b292 uxth r2, r2 - 8017782: fb03 f202 mul.w r2, r3, r2 - 8017786: f9b7 300a ldrsh.w r3, [r7, #10] - 801778a: 4413 add r3, r2 - 801778c: f897 2023 ldrb.w r2, [r7, #35] ; 0x23 - 8017790: fb02 f303 mul.w r3, r2, r3 - 8017794: 10db asrs r3, r3, #3 - 8017796: 61fb str r3, [r7, #28] + 80176e0: f9b7 3008 ldrsh.w r3, [r7, #8] + 80176e4: 68fa ldr r2, [r7, #12] + 80176e6: 6952 ldr r2, [r2, #20] + 80176e8: f3c2 228a ubfx r2, r2, #10, #11 + 80176ec: b292 uxth r2, r2 + 80176ee: fb03 f202 mul.w r2, r3, r2 + 80176f2: f9b7 300a ldrsh.w r3, [r7, #10] + 80176f6: 4413 add r3, r2 + 80176f8: f897 2023 ldrb.w r2, [r7, #35] ; 0x23 + 80176fc: fb02 f303 mul.w r3, r2, r3 + 8017700: 10db asrs r3, r3, #3 + 8017702: 61fb str r3, [r7, #28] pos += 4; /*Skip the header*/ - 8017798: 69fb ldr r3, [r7, #28] - 801779a: 3304 adds r3, #4 - 801779c: 61fb str r3, [r7, #28] + 8017704: 69fb ldr r3, [r7, #28] + 8017706: 3304 adds r3, #4 + 8017708: 61fb str r3, [r7, #28] res = lv_fs_seek(&user_data->f, pos, LV_FS_SEEK_SET); - 801779e: 6a7b ldr r3, [r7, #36] ; 0x24 - 80177a0: 2200 movs r2, #0 - 80177a2: 69f9 ldr r1, [r7, #28] - 80177a4: 4618 mov r0, r3 - 80177a6: f01a fbcb bl 8031f40 - 80177aa: 4603 mov r3, r0 - 80177ac: 76fb strb r3, [r7, #27] + 801770a: 6a7b ldr r3, [r7, #36] ; 0x24 + 801770c: 2200 movs r2, #0 + 801770e: 69f9 ldr r1, [r7, #28] + 8017710: 4618 mov r0, r3 + 8017712: f01a fbcb bl 8031eac + 8017716: 4603 mov r3, r0 + 8017718: 76fb strb r3, [r7, #27] if(res != LV_FS_RES_OK) { - 80177ae: 7efb ldrb r3, [r7, #27] - 80177b0: 2b00 cmp r3, #0 - 80177b2: d001 beq.n 80177b8 + 801771a: 7efb ldrb r3, [r7, #27] + 801771c: 2b00 cmp r3, #0 + 801771e: d001 beq.n 8017724 LV_LOG_WARN("Built-in image decoder seek failed"); return LV_RES_INV; - 80177b4: 2300 movs r3, #0 - 80177b6: e01d b.n 80177f4 + 8017720: 2300 movs r3, #0 + 8017722: e01d b.n 8017760 } uint32_t btr = len * (px_size >> 3); - 80177b8: f9b7 3006 ldrsh.w r3, [r7, #6] - 80177bc: f897 2023 ldrb.w r2, [r7, #35] ; 0x23 - 80177c0: 08d2 lsrs r2, r2, #3 - 80177c2: b2d2 uxtb r2, r2 - 80177c4: fb02 f303 mul.w r3, r2, r3 - 80177c8: 617b str r3, [r7, #20] + 8017724: f9b7 3006 ldrsh.w r3, [r7, #6] + 8017728: f897 2023 ldrb.w r2, [r7, #35] ; 0x23 + 801772c: 08d2 lsrs r2, r2, #3 + 801772e: b2d2 uxtb r2, r2 + 8017730: fb02 f303 mul.w r3, r2, r3 + 8017734: 617b str r3, [r7, #20] uint32_t br = 0; - 80177ca: 2300 movs r3, #0 - 80177cc: 613b str r3, [r7, #16] + 8017736: 2300 movs r3, #0 + 8017738: 613b str r3, [r7, #16] res = lv_fs_read(&user_data->f, buf, btr, &br); - 80177ce: 6a78 ldr r0, [r7, #36] ; 0x24 - 80177d0: f107 0310 add.w r3, r7, #16 - 80177d4: 697a ldr r2, [r7, #20] - 80177d6: 6b39 ldr r1, [r7, #48] ; 0x30 - 80177d8: f01a fb6d bl 8031eb6 - 80177dc: 4603 mov r3, r0 - 80177de: 76fb strb r3, [r7, #27] + 801773a: 6a78 ldr r0, [r7, #36] ; 0x24 + 801773c: f107 0310 add.w r3, r7, #16 + 8017740: 697a ldr r2, [r7, #20] + 8017742: 6b39 ldr r1, [r7, #48] ; 0x30 + 8017744: f01a fb6d bl 8031e22 + 8017748: 4603 mov r3, r0 + 801774a: 76fb strb r3, [r7, #27] if(res != LV_FS_RES_OK || btr != br) { - 80177e0: 7efb ldrb r3, [r7, #27] - 80177e2: 2b00 cmp r3, #0 - 80177e4: d103 bne.n 80177ee - 80177e6: 693b ldr r3, [r7, #16] - 80177e8: 697a ldr r2, [r7, #20] - 80177ea: 429a cmp r2, r3 - 80177ec: d001 beq.n 80177f2 + 801774c: 7efb ldrb r3, [r7, #27] + 801774e: 2b00 cmp r3, #0 + 8017750: d103 bne.n 801775a + 8017752: 693b ldr r3, [r7, #16] + 8017754: 697a ldr r2, [r7, #20] + 8017756: 429a cmp r2, r3 + 8017758: d001 beq.n 801775e LV_LOG_WARN("Built-in image decoder read failed"); return LV_RES_INV; - 80177ee: 2300 movs r3, #0 - 80177f0: e000 b.n 80177f4 + 801775a: 2300 movs r3, #0 + 801775c: e000 b.n 8017760 } return LV_RES_OK; - 80177f2: 2301 movs r3, #1 + 801775e: 2301 movs r3, #1 } - 80177f4: 4618 mov r0, r3 - 80177f6: 3728 adds r7, #40 ; 0x28 - 80177f8: 46bd mov sp, r7 - 80177fa: bd80 pop {r7, pc} + 8017760: 4618 mov r0, r3 + 8017762: 3728 adds r7, #40 ; 0x28 + 8017764: 46bd mov sp, r7 + 8017766: bd80 pop {r7, pc} -080177fc : +08017768 : static lv_res_t lv_img_decoder_built_in_line_alpha(lv_img_decoder_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_coord_t len, uint8_t * buf) { - 80177fc: b590 push {r4, r7, lr} - 80177fe: b097 sub sp, #92 ; 0x5c - 8017800: af00 add r7, sp, #0 - 8017802: 60f8 str r0, [r7, #12] - 8017804: 4608 mov r0, r1 - 8017806: 4611 mov r1, r2 - 8017808: 461a mov r2, r3 - 801780a: 4603 mov r3, r0 - 801780c: 817b strh r3, [r7, #10] - 801780e: 460b mov r3, r1 - 8017810: 813b strh r3, [r7, #8] - 8017812: 4613 mov r3, r2 - 8017814: 80fb strh r3, [r7, #6] + 8017768: b590 push {r4, r7, lr} + 801776a: b097 sub sp, #92 ; 0x5c + 801776c: af00 add r7, sp, #0 + 801776e: 60f8 str r0, [r7, #12] + 8017770: 4608 mov r0, r1 + 8017772: 4611 mov r1, r2 + 8017774: 461a mov r2, r3 + 8017776: 4603 mov r3, r0 + 8017778: 817b strh r3, [r7, #10] + 801777a: 460b mov r3, r1 + 801777c: 813b strh r3, [r7, #8] + 801777e: 4613 mov r3, r2 + 8017780: 80fb strh r3, [r7, #6] const lv_opa_t alpha1_opa_table[2] = {0, 255}; /*Opacity mapping with bpp = 1 (Just for compatibility)*/ - 8017816: f44f 437f mov.w r3, #65280 ; 0xff00 - 801781a: 85bb strh r3, [r7, #44] ; 0x2c + 8017782: f44f 437f mov.w r3, #65280 ; 0xff00 + 8017786: 85bb strh r3, [r7, #44] ; 0x2c const lv_opa_t alpha2_opa_table[4] = {0, 85, 170, 255}; /*Opacity mapping with bpp = 2*/ - 801781c: 4bb7 ldr r3, [pc, #732] ; (8017afc ) - 801781e: 62bb str r3, [r7, #40] ; 0x28 + 8017788: 4bb7 ldr r3, [pc, #732] ; (8017a68 ) + 801778a: 62bb str r3, [r7, #40] ; 0x28 const lv_opa_t alpha4_opa_table[16] = {0, 17, 34, 51, /*Opacity mapping with bpp = 4*/ - 8017820: 4bb7 ldr r3, [pc, #732] ; (8017b00 ) - 8017822: f107 0418 add.w r4, r7, #24 - 8017826: cb0f ldmia r3, {r0, r1, r2, r3} - 8017828: e884 000f stmia.w r4, {r0, r1, r2, r3} + 801778c: 4bb7 ldr r3, [pc, #732] ; (8017a6c ) + 801778e: f107 0418 add.w r4, r7, #24 + 8017792: cb0f ldmia r3, {r0, r1, r2, r3} + 8017794: e884 000f stmia.w r4, {r0, r1, r2, r3} 68, 85, 102, 119, 136, 153, 170, 187, 204, 221, 238, 255 }; /*Simply fill the buffer with the color. Later only the alpha value will be modified.*/ lv_color_t bg_color = dsc->color; - 801782c: 68fb ldr r3, [r7, #12] - 801782e: 891b ldrh r3, [r3, #8] - 8017830: 82bb strh r3, [r7, #20] + 8017798: 68fb ldr r3, [r7, #12] + 801779a: 891b ldrh r3, [r3, #8] + 801779c: 82bb strh r3, [r7, #20] lv_coord_t i; for(i = 0; i < len; i++) { - 8017832: 2300 movs r3, #0 - 8017834: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 - 8017838: e01e b.n 8017878 + 801779e: 2300 movs r3, #0 + 80177a0: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 80177a4: e01e b.n 80177e4 #if LV_COLOR_DEPTH == 8 || LV_COLOR_DEPTH == 1 buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = bg_color.full; #elif LV_COLOR_DEPTH == 16 /*Because of Alpha byte 16 bit color can start on odd address which can cause crash*/ buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = bg_color.full & 0xFF; - 801783a: 8ab9 ldrh r1, [r7, #20] - 801783c: f9b7 2056 ldrsh.w r2, [r7, #86] ; 0x56 - 8017840: 4613 mov r3, r2 - 8017842: 005b lsls r3, r3, #1 - 8017844: 4413 add r3, r2 - 8017846: 461a mov r2, r3 - 8017848: 6ebb ldr r3, [r7, #104] ; 0x68 - 801784a: 4413 add r3, r2 - 801784c: b2ca uxtb r2, r1 - 801784e: 701a strb r2, [r3, #0] + 80177a6: 8ab9 ldrh r1, [r7, #20] + 80177a8: f9b7 2056 ldrsh.w r2, [r7, #86] ; 0x56 + 80177ac: 4613 mov r3, r2 + 80177ae: 005b lsls r3, r3, #1 + 80177b0: 4413 add r3, r2 + 80177b2: 461a mov r2, r3 + 80177b4: 6ebb ldr r3, [r7, #104] ; 0x68 + 80177b6: 4413 add r3, r2 + 80177b8: b2ca uxtb r2, r1 + 80177ba: 701a strb r2, [r3, #0] buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (bg_color.full >> 8) & 0xFF; - 8017850: 8abb ldrh r3, [r7, #20] - 8017852: 0a1b lsrs r3, r3, #8 - 8017854: b299 uxth r1, r3 - 8017856: f9b7 2056 ldrsh.w r2, [r7, #86] ; 0x56 - 801785a: 4613 mov r3, r2 - 801785c: 005b lsls r3, r3, #1 - 801785e: 4413 add r3, r2 - 8017860: 3301 adds r3, #1 - 8017862: 6eba ldr r2, [r7, #104] ; 0x68 - 8017864: 4413 add r3, r2 - 8017866: b2ca uxtb r2, r1 - 8017868: 701a strb r2, [r3, #0] + 80177bc: 8abb ldrh r3, [r7, #20] + 80177be: 0a1b lsrs r3, r3, #8 + 80177c0: b299 uxth r1, r3 + 80177c2: f9b7 2056 ldrsh.w r2, [r7, #86] ; 0x56 + 80177c6: 4613 mov r3, r2 + 80177c8: 005b lsls r3, r3, #1 + 80177ca: 4413 add r3, r2 + 80177cc: 3301 adds r3, #1 + 80177ce: 6eba ldr r2, [r7, #104] ; 0x68 + 80177d0: 4413 add r3, r2 + 80177d2: b2ca uxtb r2, r1 + 80177d4: 701a strb r2, [r3, #0] for(i = 0; i < len; i++) { - 801786a: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 801786e: b29b uxth r3, r3 - 8017870: 3301 adds r3, #1 - 8017872: b29b uxth r3, r3 - 8017874: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 - 8017878: f9b7 2056 ldrsh.w r2, [r7, #86] ; 0x56 - 801787c: f9b7 3006 ldrsh.w r3, [r7, #6] - 8017880: 429a cmp r2, r3 - 8017882: dbda blt.n 801783a + 80177d6: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 80177da: b29b uxth r3, r3 + 80177dc: 3301 adds r3, #1 + 80177de: b29b uxth r3, r3 + 80177e0: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 80177e4: f9b7 2056 ldrsh.w r2, [r7, #86] ; 0x56 + 80177e8: f9b7 3006 ldrsh.w r3, [r7, #6] + 80177ec: 429a cmp r2, r3 + 80177ee: dbda blt.n 80177a6 #else #error "Invalid LV_COLOR_DEPTH. Check it in lv_conf.h" #endif } const lv_opa_t * opa_table = NULL; - 8017884: 2300 movs r3, #0 - 8017886: 653b str r3, [r7, #80] ; 0x50 + 80177f0: 2300 movs r3, #0 + 80177f2: 653b str r3, [r7, #80] ; 0x50 uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf); - 8017888: 68fb ldr r3, [r7, #12] - 801788a: 7d1b ldrb r3, [r3, #20] - 801788c: f3c3 0304 ubfx r3, r3, #0, #5 - 8017890: b2db uxtb r3, r3 - 8017892: 4618 mov r0, r3 - 8017894: f7fa f962 bl 8011b5c - 8017898: 4603 mov r3, r0 - 801789a: f887 303f strb.w r3, [r7, #63] ; 0x3f + 80177f4: 68fb ldr r3, [r7, #12] + 80177f6: 7d1b ldrb r3, [r3, #20] + 80177f8: f3c3 0304 ubfx r3, r3, #0, #5 + 80177fc: b2db uxtb r3, r3 + 80177fe: 4618 mov r0, r3 + 8017800: f7fa f962 bl 8011ac8 + 8017804: 4603 mov r3, r0 + 8017806: f887 303f strb.w r3, [r7, #63] ; 0x3f uint16_t mask = (1 << px_size) - 1; /*E.g. px_size = 2; mask = 0x03*/ - 801789e: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 80178a2: 2201 movs r2, #1 - 80178a4: fa02 f303 lsl.w r3, r2, r3 - 80178a8: b29b uxth r3, r3 - 80178aa: 3b01 subs r3, #1 - 80178ac: 87bb strh r3, [r7, #60] ; 0x3c + 801780a: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 801780e: 2201 movs r2, #1 + 8017810: fa02 f303 lsl.w r3, r2, r3 + 8017814: b29b uxth r3, r3 + 8017816: 3b01 subs r3, #1 + 8017818: 87bb strh r3, [r7, #60] ; 0x3c lv_coord_t w = 0; - 80178ae: 2300 movs r3, #0 - 80178b0: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 801781a: 2300 movs r3, #0 + 801781c: f8a7 304e strh.w r3, [r7, #78] ; 0x4e uint32_t ofs = 0; - 80178b4: 2300 movs r3, #0 - 80178b6: 64bb str r3, [r7, #72] ; 0x48 + 8017820: 2300 movs r3, #0 + 8017822: 64bb str r3, [r7, #72] ; 0x48 int8_t pos = 0; - 80178b8: 2300 movs r3, #0 - 80178ba: f887 3047 strb.w r3, [r7, #71] ; 0x47 + 8017824: 2300 movs r3, #0 + 8017826: f887 3047 strb.w r3, [r7, #71] ; 0x47 switch(dsc->header.cf) { - 80178be: 68fb ldr r3, [r7, #12] - 80178c0: 7d1b ldrb r3, [r3, #20] - 80178c2: f3c3 0304 ubfx r3, r3, #0, #5 - 80178c6: b2db uxtb r3, r3 - 80178c8: 3b0b subs r3, #11 - 80178ca: 2b03 cmp r3, #3 - 80178cc: f200 8094 bhi.w 80179f8 - 80178d0: a201 add r2, pc, #4 ; (adr r2, 80178d8 ) - 80178d2: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 80178d6: bf00 nop - 80178d8: 080178e9 .word 0x080178e9 - 80178dc: 08017931 .word 0x08017931 - 80178e0: 0801797d .word 0x0801797d - 80178e4: 080179c9 .word 0x080179c9 + 801782a: 68fb ldr r3, [r7, #12] + 801782c: 7d1b ldrb r3, [r3, #20] + 801782e: f3c3 0304 ubfx r3, r3, #0, #5 + 8017832: b2db uxtb r3, r3 + 8017834: 3b0b subs r3, #11 + 8017836: 2b03 cmp r3, #3 + 8017838: f200 8094 bhi.w 8017964 + 801783c: a201 add r2, pc, #4 ; (adr r2, 8017844 ) + 801783e: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8017842: bf00 nop + 8017844: 08017855 .word 0x08017855 + 8017848: 0801789d .word 0x0801789d + 801784c: 080178e9 .word 0x080178e9 + 8017850: 08017935 .word 0x08017935 case LV_IMG_CF_ALPHA_1BIT: w = (dsc->header.w + 7) >> 3; /*E.g. w = 20 -> w = 2 + 1*/ + 8017854: 68fb ldr r3, [r7, #12] + 8017856: 695b ldr r3, [r3, #20] + 8017858: f3c3 238a ubfx r3, r3, #10, #11 + 801785c: b29b uxth r3, r3 + 801785e: 3307 adds r3, #7 + 8017860: 10db asrs r3, r3, #3 + 8017862: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + ofs += w * y + (x >> 3); /*First pixel*/ + 8017866: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801786a: f9b7 2008 ldrsh.w r2, [r7, #8] + 801786e: fb02 f303 mul.w r3, r2, r3 + 8017872: f9b7 200a ldrsh.w r2, [r7, #10] + 8017876: 10d2 asrs r2, r2, #3 + 8017878: b212 sxth r2, r2 + 801787a: 4413 add r3, r2 + 801787c: 461a mov r2, r3 + 801787e: 6cbb ldr r3, [r7, #72] ; 0x48 + 8017880: 4413 add r3, r2 + 8017882: 64bb str r3, [r7, #72] ; 0x48 + pos = 7 - (x & 0x7); + 8017884: 897b ldrh r3, [r7, #10] + 8017886: b25b sxtb r3, r3 + 8017888: 43db mvns r3, r3 + 801788a: b25b sxtb r3, r3 + 801788c: f003 0307 and.w r3, r3, #7 + 8017890: f887 3047 strb.w r3, [r7, #71] ; 0x47 + opa_table = alpha1_opa_table; + 8017894: f107 032c add.w r3, r7, #44 ; 0x2c + 8017898: 653b str r3, [r7, #80] ; 0x50 + break; + 801789a: e063 b.n 8017964 + case LV_IMG_CF_ALPHA_2BIT: + w = (dsc->header.w + 3) >> 2; /*E.g. w = 13 -> w = 3 + 1 (bytes)*/ + 801789c: 68fb ldr r3, [r7, #12] + 801789e: 695b ldr r3, [r3, #20] + 80178a0: f3c3 238a ubfx r3, r3, #10, #11 + 80178a4: b29b uxth r3, r3 + 80178a6: 3303 adds r3, #3 + 80178a8: 109b asrs r3, r3, #2 + 80178aa: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + ofs += w * y + (x >> 2); /*First pixel*/ + 80178ae: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80178b2: f9b7 2008 ldrsh.w r2, [r7, #8] + 80178b6: fb02 f303 mul.w r3, r2, r3 + 80178ba: f9b7 200a ldrsh.w r2, [r7, #10] + 80178be: 1092 asrs r2, r2, #2 + 80178c0: b212 sxth r2, r2 + 80178c2: 4413 add r3, r2 + 80178c4: 461a mov r2, r3 + 80178c6: 6cbb ldr r3, [r7, #72] ; 0x48 + 80178c8: 4413 add r3, r2 + 80178ca: 64bb str r3, [r7, #72] ; 0x48 + pos = 6 - (x & 0x3) * 2; + 80178cc: 897b ldrh r3, [r7, #10] + 80178ce: 43db mvns r3, r3 + 80178d0: b2db uxtb r3, r3 + 80178d2: f003 0303 and.w r3, r3, #3 + 80178d6: b2db uxtb r3, r3 + 80178d8: 005b lsls r3, r3, #1 + 80178da: b2db uxtb r3, r3 + 80178dc: f887 3047 strb.w r3, [r7, #71] ; 0x47 + opa_table = alpha2_opa_table; + 80178e0: f107 0328 add.w r3, r7, #40 ; 0x28 + 80178e4: 653b str r3, [r7, #80] ; 0x50 + break; + 80178e6: e03d b.n 8017964 + case LV_IMG_CF_ALPHA_4BIT: + w = (dsc->header.w + 1) >> 1; /*E.g. w = 13 -> w = 6 + 1 (bytes)*/ 80178e8: 68fb ldr r3, [r7, #12] 80178ea: 695b ldr r3, [r3, #20] 80178ec: f3c3 238a ubfx r3, r3, #10, #11 80178f0: b29b uxth r3, r3 - 80178f2: 3307 adds r3, #7 - 80178f4: 10db asrs r3, r3, #3 + 80178f2: 3301 adds r3, #1 + 80178f4: 105b asrs r3, r3, #1 80178f6: f8a7 304e strh.w r3, [r7, #78] ; 0x4e - ofs += w * y + (x >> 3); /*First pixel*/ + ofs += w * y + (x >> 1); /*First pixel*/ 80178fa: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e 80178fe: f9b7 2008 ldrsh.w r2, [r7, #8] 8017902: fb02 f303 mul.w r3, r2, r3 8017906: f9b7 200a ldrsh.w r2, [r7, #10] - 801790a: 10d2 asrs r2, r2, #3 + 801790a: 1052 asrs r2, r2, #1 801790c: b212 sxth r2, r2 801790e: 4413 add r3, r2 8017910: 461a mov r2, r3 8017912: 6cbb ldr r3, [r7, #72] ; 0x48 8017914: 4413 add r3, r2 8017916: 64bb str r3, [r7, #72] ; 0x48 - pos = 7 - (x & 0x7); - 8017918: 897b ldrh r3, [r7, #10] - 801791a: b25b sxtb r3, r3 - 801791c: 43db mvns r3, r3 - 801791e: b25b sxtb r3, r3 - 8017920: f003 0307 and.w r3, r3, #7 - 8017924: f887 3047 strb.w r3, [r7, #71] ; 0x47 - opa_table = alpha1_opa_table; - 8017928: f107 032c add.w r3, r7, #44 ; 0x2c - 801792c: 653b str r3, [r7, #80] ; 0x50 - break; - 801792e: e063 b.n 80179f8 - case LV_IMG_CF_ALPHA_2BIT: - w = (dsc->header.w + 3) >> 2; /*E.g. w = 13 -> w = 3 + 1 (bytes)*/ - 8017930: 68fb ldr r3, [r7, #12] - 8017932: 695b ldr r3, [r3, #20] - 8017934: f3c3 238a ubfx r3, r3, #10, #11 - 8017938: b29b uxth r3, r3 - 801793a: 3303 adds r3, #3 - 801793c: 109b asrs r3, r3, #2 - 801793e: f8a7 304e strh.w r3, [r7, #78] ; 0x4e - ofs += w * y + (x >> 2); /*First pixel*/ - 8017942: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8017946: f9b7 2008 ldrsh.w r2, [r7, #8] - 801794a: fb02 f303 mul.w r3, r2, r3 - 801794e: f9b7 200a ldrsh.w r2, [r7, #10] - 8017952: 1092 asrs r2, r2, #2 - 8017954: b212 sxth r2, r2 - 8017956: 4413 add r3, r2 - 8017958: 461a mov r2, r3 - 801795a: 6cbb ldr r3, [r7, #72] ; 0x48 - 801795c: 4413 add r3, r2 - 801795e: 64bb str r3, [r7, #72] ; 0x48 - pos = 6 - (x & 0x3) * 2; - 8017960: 897b ldrh r3, [r7, #10] - 8017962: 43db mvns r3, r3 - 8017964: b2db uxtb r3, r3 - 8017966: f003 0303 and.w r3, r3, #3 - 801796a: b2db uxtb r3, r3 - 801796c: 005b lsls r3, r3, #1 - 801796e: b2db uxtb r3, r3 - 8017970: f887 3047 strb.w r3, [r7, #71] ; 0x47 - opa_table = alpha2_opa_table; - 8017974: f107 0328 add.w r3, r7, #40 ; 0x28 - 8017978: 653b str r3, [r7, #80] ; 0x50 - break; - 801797a: e03d b.n 80179f8 - case LV_IMG_CF_ALPHA_4BIT: - w = (dsc->header.w + 1) >> 1; /*E.g. w = 13 -> w = 6 + 1 (bytes)*/ - 801797c: 68fb ldr r3, [r7, #12] - 801797e: 695b ldr r3, [r3, #20] - 8017980: f3c3 238a ubfx r3, r3, #10, #11 - 8017984: b29b uxth r3, r3 - 8017986: 3301 adds r3, #1 - 8017988: 105b asrs r3, r3, #1 - 801798a: f8a7 304e strh.w r3, [r7, #78] ; 0x4e - ofs += w * y + (x >> 1); /*First pixel*/ - 801798e: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8017992: f9b7 2008 ldrsh.w r2, [r7, #8] - 8017996: fb02 f303 mul.w r3, r2, r3 - 801799a: f9b7 200a ldrsh.w r2, [r7, #10] - 801799e: 1052 asrs r2, r2, #1 - 80179a0: b212 sxth r2, r2 - 80179a2: 4413 add r3, r2 - 80179a4: 461a mov r2, r3 - 80179a6: 6cbb ldr r3, [r7, #72] ; 0x48 - 80179a8: 4413 add r3, r2 - 80179aa: 64bb str r3, [r7, #72] ; 0x48 pos = 4 - (x & 0x1) * 4; - 80179ac: 897b ldrh r3, [r7, #10] - 80179ae: f003 0301 and.w r3, r3, #1 - 80179b2: 2b00 cmp r3, #0 - 80179b4: d101 bne.n 80179ba - 80179b6: 2304 movs r3, #4 - 80179b8: e000 b.n 80179bc - 80179ba: 2300 movs r3, #0 - 80179bc: f887 3047 strb.w r3, [r7, #71] ; 0x47 + 8017918: 897b ldrh r3, [r7, #10] + 801791a: f003 0301 and.w r3, r3, #1 + 801791e: 2b00 cmp r3, #0 + 8017920: d101 bne.n 8017926 + 8017922: 2304 movs r3, #4 + 8017924: e000 b.n 8017928 + 8017926: 2300 movs r3, #0 + 8017928: f887 3047 strb.w r3, [r7, #71] ; 0x47 opa_table = alpha4_opa_table; - 80179c0: f107 0318 add.w r3, r7, #24 - 80179c4: 653b str r3, [r7, #80] ; 0x50 + 801792c: f107 0318 add.w r3, r7, #24 + 8017930: 653b str r3, [r7, #80] ; 0x50 break; - 80179c6: e017 b.n 80179f8 + 8017932: e017 b.n 8017964 case LV_IMG_CF_ALPHA_8BIT: w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/ - 80179c8: 68fb ldr r3, [r7, #12] - 80179ca: 695b ldr r3, [r3, #20] - 80179cc: f3c3 238a ubfx r3, r3, #10, #11 - 80179d0: b29b uxth r3, r3 - 80179d2: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 8017934: 68fb ldr r3, [r7, #12] + 8017936: 695b ldr r3, [r3, #20] + 8017938: f3c3 238a ubfx r3, r3, #10, #11 + 801793c: b29b uxth r3, r3 + 801793e: f8a7 304e strh.w r3, [r7, #78] ; 0x4e ofs += w * y + x; /*First pixel*/ - 80179d6: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80179da: f9b7 2008 ldrsh.w r2, [r7, #8] - 80179de: fb03 f202 mul.w r2, r3, r2 - 80179e2: f9b7 300a ldrsh.w r3, [r7, #10] - 80179e6: 4413 add r3, r2 - 80179e8: 461a mov r2, r3 - 80179ea: 6cbb ldr r3, [r7, #72] ; 0x48 - 80179ec: 4413 add r3, r2 - 80179ee: 64bb str r3, [r7, #72] ; 0x48 + 8017942: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8017946: f9b7 2008 ldrsh.w r2, [r7, #8] + 801794a: fb03 f202 mul.w r2, r3, r2 + 801794e: f9b7 300a ldrsh.w r3, [r7, #10] + 8017952: 4413 add r3, r2 + 8017954: 461a mov r2, r3 + 8017956: 6cbb ldr r3, [r7, #72] ; 0x48 + 8017958: 4413 add r3, r2 + 801795a: 64bb str r3, [r7, #72] ; 0x48 pos = 0; - 80179f0: 2300 movs r3, #0 - 80179f2: f887 3047 strb.w r3, [r7, #71] ; 0x47 + 801795c: 2300 movs r3, #0 + 801795e: f887 3047 strb.w r3, [r7, #71] ; 0x47 break; - 80179f6: bf00 nop + 8017962: bf00 nop } lv_img_decoder_built_in_data_t * user_data = dsc->user_data; - 80179f8: 68fb ldr r3, [r7, #12] - 80179fa: 6a5b ldr r3, [r3, #36] ; 0x24 - 80179fc: 63bb str r3, [r7, #56] ; 0x38 + 8017964: 68fb ldr r3, [r7, #12] + 8017966: 6a5b ldr r3, [r3, #36] ; 0x24 + 8017968: 63bb str r3, [r7, #56] ; 0x38 uint8_t * fs_buf = lv_mem_buf_get(w); - 80179fe: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8017a02: 4618 mov r0, r3 - 8017a04: f01a fffc bl 8032a00 - 8017a08: 6378 str r0, [r7, #52] ; 0x34 + 801796a: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801796e: 4618 mov r0, r3 + 8017970: f01a fffc bl 803296c + 8017974: 6378 str r0, [r7, #52] ; 0x34 if(fs_buf == NULL) return LV_RES_INV; - 8017a0a: 6b7b ldr r3, [r7, #52] ; 0x34 - 8017a0c: 2b00 cmp r3, #0 - 8017a0e: d101 bne.n 8017a14 - 8017a10: 2300 movs r3, #0 - 8017a12: e06f b.n 8017af4 + 8017976: 6b7b ldr r3, [r7, #52] ; 0x34 + 8017978: 2b00 cmp r3, #0 + 801797a: d101 bne.n 8017980 + 801797c: 2300 movs r3, #0 + 801797e: e06f b.n 8017a60 const uint8_t * data_tmp = NULL; - 8017a14: 2300 movs r3, #0 - 8017a16: 643b str r3, [r7, #64] ; 0x40 + 8017980: 2300 movs r3, #0 + 8017982: 643b str r3, [r7, #64] ; 0x40 if(dsc->src_type == LV_IMG_SRC_VARIABLE) { - 8017a18: 68fb ldr r3, [r7, #12] - 8017a1a: 7c1b ldrb r3, [r3, #16] - 8017a1c: 2b00 cmp r3, #0 - 8017a1e: d108 bne.n 8017a32 + 8017984: 68fb ldr r3, [r7, #12] + 8017986: 7c1b ldrb r3, [r3, #16] + 8017988: 2b00 cmp r3, #0 + 801798a: d108 bne.n 801799e const lv_img_dsc_t * img_dsc = dsc->src; - 8017a20: 68fb ldr r3, [r7, #12] - 8017a22: 685b ldr r3, [r3, #4] - 8017a24: 633b str r3, [r7, #48] ; 0x30 + 801798c: 68fb ldr r3, [r7, #12] + 801798e: 685b ldr r3, [r3, #4] + 8017990: 633b str r3, [r7, #48] ; 0x30 data_tmp = img_dsc->data + ofs; - 8017a26: 6b3b ldr r3, [r7, #48] ; 0x30 - 8017a28: 689a ldr r2, [r3, #8] - 8017a2a: 6cbb ldr r3, [r7, #72] ; 0x48 - 8017a2c: 4413 add r3, r2 - 8017a2e: 643b str r3, [r7, #64] ; 0x40 - 8017a30: e00f b.n 8017a52 + 8017992: 6b3b ldr r3, [r7, #48] ; 0x30 + 8017994: 689a ldr r2, [r3, #8] + 8017996: 6cbb ldr r3, [r7, #72] ; 0x48 + 8017998: 4413 add r3, r2 + 801799a: 643b str r3, [r7, #64] ; 0x40 + 801799c: e00f b.n 80179be } else { lv_fs_seek(&user_data->f, ofs + 4, LV_FS_SEEK_SET); /*+4 to skip the header*/ - 8017a32: 6bb8 ldr r0, [r7, #56] ; 0x38 - 8017a34: 6cbb ldr r3, [r7, #72] ; 0x48 - 8017a36: 3304 adds r3, #4 - 8017a38: 2200 movs r2, #0 - 8017a3a: 4619 mov r1, r3 - 8017a3c: f01a fa80 bl 8031f40 + 801799e: 6bb8 ldr r0, [r7, #56] ; 0x38 + 80179a0: 6cbb ldr r3, [r7, #72] ; 0x48 + 80179a2: 3304 adds r3, #4 + 80179a4: 2200 movs r2, #0 + 80179a6: 4619 mov r1, r3 + 80179a8: f01a fa80 bl 8031eac lv_fs_read(&user_data->f, fs_buf, w, NULL); - 8017a40: 6bb8 ldr r0, [r7, #56] ; 0x38 - 8017a42: f9b7 204e ldrsh.w r2, [r7, #78] ; 0x4e - 8017a46: 2300 movs r3, #0 - 8017a48: 6b79 ldr r1, [r7, #52] ; 0x34 - 8017a4a: f01a fa34 bl 8031eb6 + 80179ac: 6bb8 ldr r0, [r7, #56] ; 0x38 + 80179ae: f9b7 204e ldrsh.w r2, [r7, #78] ; 0x4e + 80179b2: 2300 movs r3, #0 + 80179b4: 6b79 ldr r1, [r7, #52] ; 0x34 + 80179b6: f01a fa34 bl 8031e22 data_tmp = fs_buf; - 8017a4e: 6b7b ldr r3, [r7, #52] ; 0x34 - 8017a50: 643b str r3, [r7, #64] ; 0x40 + 80179ba: 6b7b ldr r3, [r7, #52] ; 0x34 + 80179bc: 643b str r3, [r7, #64] ; 0x40 } for(i = 0; i < len; i++) { - 8017a52: 2300 movs r3, #0 - 8017a54: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 - 8017a58: e042 b.n 8017ae0 + 80179be: 2300 movs r3, #0 + 80179c0: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 80179c4: e042 b.n 8017a4c uint8_t val_act = (*data_tmp >> pos) & mask; - 8017a5a: 6c3b ldr r3, [r7, #64] ; 0x40 - 8017a5c: 781b ldrb r3, [r3, #0] - 8017a5e: 461a mov r2, r3 - 8017a60: f997 3047 ldrsb.w r3, [r7, #71] ; 0x47 - 8017a64: fa42 f303 asr.w r3, r2, r3 - 8017a68: b25a sxtb r2, r3 - 8017a6a: 8fbb ldrh r3, [r7, #60] ; 0x3c - 8017a6c: b25b sxtb r3, r3 - 8017a6e: 4013 ands r3, r2 - 8017a70: b25b sxtb r3, r3 - 8017a72: f887 302f strb.w r3, [r7, #47] ; 0x2f + 80179c6: 6c3b ldr r3, [r7, #64] ; 0x40 + 80179c8: 781b ldrb r3, [r3, #0] + 80179ca: 461a mov r2, r3 + 80179cc: f997 3047 ldrsb.w r3, [r7, #71] ; 0x47 + 80179d0: fa42 f303 asr.w r3, r2, r3 + 80179d4: b25a sxtb r2, r3 + 80179d6: 8fbb ldrh r3, [r7, #60] ; 0x3c + 80179d8: b25b sxtb r3, r3 + 80179da: 4013 ands r3, r2 + 80179dc: b25b sxtb r3, r3 + 80179de: f887 302f strb.w r3, [r7, #47] ; 0x2f buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = dsc->header.cf == LV_IMG_CF_ALPHA_8BIT ? val_act : opa_table[val_act]; - 8017a76: 68fb ldr r3, [r7, #12] - 8017a78: 7d1b ldrb r3, [r3, #20] - 8017a7a: f003 031f and.w r3, r3, #31 - 8017a7e: b2db uxtb r3, r3 + 80179e2: 68fb ldr r3, [r7, #12] + 80179e4: 7d1b ldrb r3, [r3, #20] + 80179e6: f003 031f and.w r3, r3, #31 + 80179ea: b2db uxtb r3, r3 buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = - 8017a80: 2b0e cmp r3, #14 - 8017a82: d005 beq.n 8017a90 + 80179ec: 2b0e cmp r3, #14 + 80179ee: d005 beq.n 80179fc dsc->header.cf == LV_IMG_CF_ALPHA_8BIT ? val_act : opa_table[val_act]; - 8017a84: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8017a88: 6d3a ldr r2, [r7, #80] ; 0x50 - 8017a8a: 4413 add r3, r2 + 80179f0: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 80179f4: 6d3a ldr r2, [r7, #80] ; 0x50 + 80179f6: 4413 add r3, r2 buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = - 8017a8c: 781a ldrb r2, [r3, #0] - 8017a8e: e001 b.n 8017a94 - 8017a90: f897 202f ldrb.w r2, [r7, #47] ; 0x2f - 8017a94: f9b7 1056 ldrsh.w r1, [r7, #86] ; 0x56 - 8017a98: 460b mov r3, r1 - 8017a9a: 005b lsls r3, r3, #1 - 8017a9c: 440b add r3, r1 - 8017a9e: 3302 adds r3, #2 - 8017aa0: 6eb9 ldr r1, [r7, #104] ; 0x68 - 8017aa2: 440b add r3, r1 - 8017aa4: 701a strb r2, [r3, #0] + 80179f8: 781a ldrb r2, [r3, #0] + 80179fa: e001 b.n 8017a00 + 80179fc: f897 202f ldrb.w r2, [r7, #47] ; 0x2f + 8017a00: f9b7 1056 ldrsh.w r1, [r7, #86] ; 0x56 + 8017a04: 460b mov r3, r1 + 8017a06: 005b lsls r3, r3, #1 + 8017a08: 440b add r3, r1 + 8017a0a: 3302 adds r3, #2 + 8017a0c: 6eb9 ldr r1, [r7, #104] ; 0x68 + 8017a0e: 440b add r3, r1 + 8017a10: 701a strb r2, [r3, #0] pos -= px_size; - 8017aa6: f897 2047 ldrb.w r2, [r7, #71] ; 0x47 - 8017aaa: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 8017aae: 1ad3 subs r3, r2, r3 - 8017ab0: b2db uxtb r3, r3 - 8017ab2: f887 3047 strb.w r3, [r7, #71] ; 0x47 + 8017a12: f897 2047 ldrb.w r2, [r7, #71] ; 0x47 + 8017a16: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 8017a1a: 1ad3 subs r3, r2, r3 + 8017a1c: b2db uxtb r3, r3 + 8017a1e: f887 3047 strb.w r3, [r7, #71] ; 0x47 if(pos < 0) { - 8017ab6: f997 3047 ldrsb.w r3, [r7, #71] ; 0x47 - 8017aba: 2b00 cmp r3, #0 - 8017abc: da09 bge.n 8017ad2 + 8017a22: f997 3047 ldrsb.w r3, [r7, #71] ; 0x47 + 8017a26: 2b00 cmp r3, #0 + 8017a28: da09 bge.n 8017a3e pos = 8 - px_size; - 8017abe: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 8017ac2: f1c3 0308 rsb r3, r3, #8 - 8017ac6: b2db uxtb r3, r3 - 8017ac8: f887 3047 strb.w r3, [r7, #71] ; 0x47 + 8017a2a: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 8017a2e: f1c3 0308 rsb r3, r3, #8 + 8017a32: b2db uxtb r3, r3 + 8017a34: f887 3047 strb.w r3, [r7, #71] ; 0x47 data_tmp++; - 8017acc: 6c3b ldr r3, [r7, #64] ; 0x40 - 8017ace: 3301 adds r3, #1 - 8017ad0: 643b str r3, [r7, #64] ; 0x40 + 8017a38: 6c3b ldr r3, [r7, #64] ; 0x40 + 8017a3a: 3301 adds r3, #1 + 8017a3c: 643b str r3, [r7, #64] ; 0x40 for(i = 0; i < len; i++) { - 8017ad2: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 8017ad6: b29b uxth r3, r3 - 8017ad8: 3301 adds r3, #1 - 8017ada: b29b uxth r3, r3 - 8017adc: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 - 8017ae0: f9b7 2056 ldrsh.w r2, [r7, #86] ; 0x56 - 8017ae4: f9b7 3006 ldrsh.w r3, [r7, #6] - 8017ae8: 429a cmp r2, r3 - 8017aea: dbb6 blt.n 8017a5a + 8017a3e: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 8017a42: b29b uxth r3, r3 + 8017a44: 3301 adds r3, #1 + 8017a46: b29b uxth r3, r3 + 8017a48: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 8017a4c: f9b7 2056 ldrsh.w r2, [r7, #86] ; 0x56 + 8017a50: f9b7 3006 ldrsh.w r3, [r7, #6] + 8017a54: 429a cmp r2, r3 + 8017a56: dbb6 blt.n 80179c6 } } lv_mem_buf_release(fs_buf); - 8017aec: 6b78 ldr r0, [r7, #52] ; 0x34 - 8017aee: f01b f833 bl 8032b58 + 8017a58: 6b78 ldr r0, [r7, #52] ; 0x34 + 8017a5a: f01b f833 bl 8032ac4 return LV_RES_OK; - 8017af2: 2301 movs r3, #1 + 8017a5e: 2301 movs r3, #1 } - 8017af4: 4618 mov r0, r3 - 8017af6: 375c adds r7, #92 ; 0x5c - 8017af8: 46bd mov sp, r7 - 8017afa: bd90 pop {r4, r7, pc} - 8017afc: ffaa5500 .word 0xffaa5500 - 8017b00: 08046c40 .word 0x08046c40 + 8017a60: 4618 mov r0, r3 + 8017a62: 375c adds r7, #92 ; 0x5c + 8017a64: 46bd mov sp, r7 + 8017a66: bd90 pop {r4, r7, pc} + 8017a68: ffaa5500 .word 0xffaa5500 + 8017a6c: 08046b98 .word 0x08046b98 -08017b04 : +08017a70 : static lv_res_t lv_img_decoder_built_in_line_indexed(lv_img_decoder_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_coord_t len, uint8_t * buf) { - 8017b04: b580 push {r7, lr} - 8017b06: b08e sub sp, #56 ; 0x38 - 8017b08: af00 add r7, sp, #0 - 8017b0a: 60f8 str r0, [r7, #12] - 8017b0c: 4608 mov r0, r1 - 8017b0e: 4611 mov r1, r2 - 8017b10: 461a mov r2, r3 - 8017b12: 4603 mov r3, r0 - 8017b14: 817b strh r3, [r7, #10] - 8017b16: 460b mov r3, r1 - 8017b18: 813b strh r3, [r7, #8] - 8017b1a: 4613 mov r3, r2 - 8017b1c: 80fb strh r3, [r7, #6] + 8017a70: b580 push {r7, lr} + 8017a72: b08e sub sp, #56 ; 0x38 + 8017a74: af00 add r7, sp, #0 + 8017a76: 60f8 str r0, [r7, #12] + 8017a78: 4608 mov r0, r1 + 8017a7a: 4611 mov r1, r2 + 8017a7c: 461a mov r2, r3 + 8017a7e: 4603 mov r3, r0 + 8017a80: 817b strh r3, [r7, #10] + 8017a82: 460b mov r3, r1 + 8017a84: 813b strh r3, [r7, #8] + 8017a86: 4613 mov r3, r2 + 8017a88: 80fb strh r3, [r7, #6] uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf); - 8017b1e: 68fb ldr r3, [r7, #12] - 8017b20: 7d1b ldrb r3, [r3, #20] - 8017b22: f3c3 0304 ubfx r3, r3, #0, #5 - 8017b26: b2db uxtb r3, r3 - 8017b28: 4618 mov r0, r3 - 8017b2a: f7fa f817 bl 8011b5c - 8017b2e: 4603 mov r3, r0 - 8017b30: f887 3029 strb.w r3, [r7, #41] ; 0x29 + 8017a8a: 68fb ldr r3, [r7, #12] + 8017a8c: 7d1b ldrb r3, [r3, #20] + 8017a8e: f3c3 0304 ubfx r3, r3, #0, #5 + 8017a92: b2db uxtb r3, r3 + 8017a94: 4618 mov r0, r3 + 8017a96: f7fa f817 bl 8011ac8 + 8017a9a: 4603 mov r3, r0 + 8017a9c: f887 3029 strb.w r3, [r7, #41] ; 0x29 uint16_t mask = (1 << px_size) - 1; /*E.g. px_size = 2; mask = 0x03*/ - 8017b34: f897 3029 ldrb.w r3, [r7, #41] ; 0x29 - 8017b38: 2201 movs r2, #1 - 8017b3a: fa02 f303 lsl.w r3, r2, r3 - 8017b3e: b29b uxth r3, r3 - 8017b40: 3b01 subs r3, #1 - 8017b42: 84fb strh r3, [r7, #38] ; 0x26 + 8017aa0: f897 3029 ldrb.w r3, [r7, #41] ; 0x29 + 8017aa4: 2201 movs r2, #1 + 8017aa6: fa02 f303 lsl.w r3, r2, r3 + 8017aaa: b29b uxth r3, r3 + 8017aac: 3b01 subs r3, #1 + 8017aae: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t w = 0; - 8017b44: 2300 movs r3, #0 - 8017b46: 86fb strh r3, [r7, #54] ; 0x36 + 8017ab0: 2300 movs r3, #0 + 8017ab2: 86fb strh r3, [r7, #54] ; 0x36 int8_t pos = 0; - 8017b48: 2300 movs r3, #0 - 8017b4a: f887 3035 strb.w r3, [r7, #53] ; 0x35 + 8017ab4: 2300 movs r3, #0 + 8017ab6: f887 3035 strb.w r3, [r7, #53] ; 0x35 uint32_t ofs = 0; - 8017b4e: 2300 movs r3, #0 - 8017b50: 633b str r3, [r7, #48] ; 0x30 + 8017aba: 2300 movs r3, #0 + 8017abc: 633b str r3, [r7, #48] ; 0x30 switch(dsc->header.cf) { - 8017b52: 68fb ldr r3, [r7, #12] - 8017b54: 7d1b ldrb r3, [r3, #20] - 8017b56: f3c3 0304 ubfx r3, r3, #0, #5 - 8017b5a: b2db uxtb r3, r3 - 8017b5c: 3b07 subs r3, #7 - 8017b5e: 2b03 cmp r3, #3 - 8017b60: f200 8094 bhi.w 8017c8c - 8017b64: a201 add r2, pc, #4 ; (adr r2, 8017b6c ) - 8017b66: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8017b6a: bf00 nop - 8017b6c: 08017b7d .word 0x08017b7d - 8017b70: 08017bc3 .word 0x08017bc3 - 8017b74: 08017c0d .word 0x08017c0d - 8017b78: 08017c57 .word 0x08017c57 + 8017abe: 68fb ldr r3, [r7, #12] + 8017ac0: 7d1b ldrb r3, [r3, #20] + 8017ac2: f3c3 0304 ubfx r3, r3, #0, #5 + 8017ac6: b2db uxtb r3, r3 + 8017ac8: 3b07 subs r3, #7 + 8017aca: 2b03 cmp r3, #3 + 8017acc: f200 8094 bhi.w 8017bf8 + 8017ad0: a201 add r2, pc, #4 ; (adr r2, 8017ad8 ) + 8017ad2: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8017ad6: bf00 nop + 8017ad8: 08017ae9 .word 0x08017ae9 + 8017adc: 08017b2f .word 0x08017b2f + 8017ae0: 08017b79 .word 0x08017b79 + 8017ae4: 08017bc3 .word 0x08017bc3 case LV_IMG_CF_INDEXED_1BIT: w = (dsc->header.w + 7) >> 3; /*E.g. w = 20 -> w = 2 + 1*/ - 8017b7c: 68fb ldr r3, [r7, #12] - 8017b7e: 695b ldr r3, [r3, #20] - 8017b80: f3c3 238a ubfx r3, r3, #10, #11 - 8017b84: b29b uxth r3, r3 - 8017b86: 3307 adds r3, #7 - 8017b88: 10db asrs r3, r3, #3 - 8017b8a: 86fb strh r3, [r7, #54] ; 0x36 + 8017ae8: 68fb ldr r3, [r7, #12] + 8017aea: 695b ldr r3, [r3, #20] + 8017aec: f3c3 238a ubfx r3, r3, #10, #11 + 8017af0: b29b uxth r3, r3 + 8017af2: 3307 adds r3, #7 + 8017af4: 10db asrs r3, r3, #3 + 8017af6: 86fb strh r3, [r7, #54] ; 0x36 ofs += w * y + (x >> 3); /*First pixel*/ - 8017b8c: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 8017b90: f9b7 2008 ldrsh.w r2, [r7, #8] - 8017b94: fb02 f303 mul.w r3, r2, r3 - 8017b98: f9b7 200a ldrsh.w r2, [r7, #10] - 8017b9c: 10d2 asrs r2, r2, #3 - 8017b9e: b212 sxth r2, r2 - 8017ba0: 4413 add r3, r2 - 8017ba2: 461a mov r2, r3 - 8017ba4: 6b3b ldr r3, [r7, #48] ; 0x30 - 8017ba6: 4413 add r3, r2 - 8017ba8: 633b str r3, [r7, #48] ; 0x30 + 8017af8: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 8017afc: f9b7 2008 ldrsh.w r2, [r7, #8] + 8017b00: fb02 f303 mul.w r3, r2, r3 + 8017b04: f9b7 200a ldrsh.w r2, [r7, #10] + 8017b08: 10d2 asrs r2, r2, #3 + 8017b0a: b212 sxth r2, r2 + 8017b0c: 4413 add r3, r2 + 8017b0e: 461a mov r2, r3 + 8017b10: 6b3b ldr r3, [r7, #48] ; 0x30 + 8017b12: 4413 add r3, r2 + 8017b14: 633b str r3, [r7, #48] ; 0x30 ofs += 8; /*Skip the palette*/ - 8017baa: 6b3b ldr r3, [r7, #48] ; 0x30 - 8017bac: 3308 adds r3, #8 - 8017bae: 633b str r3, [r7, #48] ; 0x30 + 8017b16: 6b3b ldr r3, [r7, #48] ; 0x30 + 8017b18: 3308 adds r3, #8 + 8017b1a: 633b str r3, [r7, #48] ; 0x30 pos = 7 - (x & 0x7); - 8017bb0: 897b ldrh r3, [r7, #10] - 8017bb2: b25b sxtb r3, r3 - 8017bb4: 43db mvns r3, r3 - 8017bb6: b25b sxtb r3, r3 - 8017bb8: f003 0307 and.w r3, r3, #7 - 8017bbc: f887 3035 strb.w r3, [r7, #53] ; 0x35 + 8017b1c: 897b ldrh r3, [r7, #10] + 8017b1e: b25b sxtb r3, r3 + 8017b20: 43db mvns r3, r3 + 8017b22: b25b sxtb r3, r3 + 8017b24: f003 0307 and.w r3, r3, #7 + 8017b28: f887 3035 strb.w r3, [r7, #53] ; 0x35 break; - 8017bc0: e064 b.n 8017c8c + 8017b2c: e064 b.n 8017bf8 case LV_IMG_CF_INDEXED_2BIT: w = (dsc->header.w + 3) >> 2; /*E.g. w = 13 -> w = 3 + 1 (bytes)*/ + 8017b2e: 68fb ldr r3, [r7, #12] + 8017b30: 695b ldr r3, [r3, #20] + 8017b32: f3c3 238a ubfx r3, r3, #10, #11 + 8017b36: b29b uxth r3, r3 + 8017b38: 3303 adds r3, #3 + 8017b3a: 109b asrs r3, r3, #2 + 8017b3c: 86fb strh r3, [r7, #54] ; 0x36 + ofs += w * y + (x >> 2); /*First pixel*/ + 8017b3e: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 8017b42: f9b7 2008 ldrsh.w r2, [r7, #8] + 8017b46: fb02 f303 mul.w r3, r2, r3 + 8017b4a: f9b7 200a ldrsh.w r2, [r7, #10] + 8017b4e: 1092 asrs r2, r2, #2 + 8017b50: b212 sxth r2, r2 + 8017b52: 4413 add r3, r2 + 8017b54: 461a mov r2, r3 + 8017b56: 6b3b ldr r3, [r7, #48] ; 0x30 + 8017b58: 4413 add r3, r2 + 8017b5a: 633b str r3, [r7, #48] ; 0x30 + ofs += 16; /*Skip the palette*/ + 8017b5c: 6b3b ldr r3, [r7, #48] ; 0x30 + 8017b5e: 3310 adds r3, #16 + 8017b60: 633b str r3, [r7, #48] ; 0x30 + pos = 6 - (x & 0x3) * 2; + 8017b62: 897b ldrh r3, [r7, #10] + 8017b64: 43db mvns r3, r3 + 8017b66: b2db uxtb r3, r3 + 8017b68: f003 0303 and.w r3, r3, #3 + 8017b6c: b2db uxtb r3, r3 + 8017b6e: 005b lsls r3, r3, #1 + 8017b70: b2db uxtb r3, r3 + 8017b72: f887 3035 strb.w r3, [r7, #53] ; 0x35 + break; + 8017b76: e03f b.n 8017bf8 + case LV_IMG_CF_INDEXED_4BIT: + w = (dsc->header.w + 1) >> 1; /*E.g. w = 13 -> w = 6 + 1 (bytes)*/ + 8017b78: 68fb ldr r3, [r7, #12] + 8017b7a: 695b ldr r3, [r3, #20] + 8017b7c: f3c3 238a ubfx r3, r3, #10, #11 + 8017b80: b29b uxth r3, r3 + 8017b82: 3301 adds r3, #1 + 8017b84: 105b asrs r3, r3, #1 + 8017b86: 86fb strh r3, [r7, #54] ; 0x36 + ofs += w * y + (x >> 1); /*First pixel*/ + 8017b88: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 8017b8c: f9b7 2008 ldrsh.w r2, [r7, #8] + 8017b90: fb02 f303 mul.w r3, r2, r3 + 8017b94: f9b7 200a ldrsh.w r2, [r7, #10] + 8017b98: 1052 asrs r2, r2, #1 + 8017b9a: b212 sxth r2, r2 + 8017b9c: 4413 add r3, r2 + 8017b9e: 461a mov r2, r3 + 8017ba0: 6b3b ldr r3, [r7, #48] ; 0x30 + 8017ba2: 4413 add r3, r2 + 8017ba4: 633b str r3, [r7, #48] ; 0x30 + ofs += 64; /*Skip the palette*/ + 8017ba6: 6b3b ldr r3, [r7, #48] ; 0x30 + 8017ba8: 3340 adds r3, #64 ; 0x40 + 8017baa: 633b str r3, [r7, #48] ; 0x30 + pos = 4 - (x & 0x1) * 4; + 8017bac: 897b ldrh r3, [r7, #10] + 8017bae: f003 0301 and.w r3, r3, #1 + 8017bb2: 2b00 cmp r3, #0 + 8017bb4: d101 bne.n 8017bba + 8017bb6: 2304 movs r3, #4 + 8017bb8: e000 b.n 8017bbc + 8017bba: 2300 movs r3, #0 + 8017bbc: f887 3035 strb.w r3, [r7, #53] ; 0x35 + break; + 8017bc0: e01a b.n 8017bf8 + case LV_IMG_CF_INDEXED_8BIT: + w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/ 8017bc2: 68fb ldr r3, [r7, #12] 8017bc4: 695b ldr r3, [r3, #20] 8017bc6: f3c3 238a ubfx r3, r3, #10, #11 8017bca: b29b uxth r3, r3 - 8017bcc: 3303 adds r3, #3 - 8017bce: 109b asrs r3, r3, #2 - 8017bd0: 86fb strh r3, [r7, #54] ; 0x36 - ofs += w * y + (x >> 2); /*First pixel*/ - 8017bd2: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 8017bd6: f9b7 2008 ldrsh.w r2, [r7, #8] - 8017bda: fb02 f303 mul.w r3, r2, r3 - 8017bde: f9b7 200a ldrsh.w r2, [r7, #10] - 8017be2: 1092 asrs r2, r2, #2 - 8017be4: b212 sxth r2, r2 - 8017be6: 4413 add r3, r2 - 8017be8: 461a mov r2, r3 - 8017bea: 6b3b ldr r3, [r7, #48] ; 0x30 - 8017bec: 4413 add r3, r2 - 8017bee: 633b str r3, [r7, #48] ; 0x30 - ofs += 16; /*Skip the palette*/ - 8017bf0: 6b3b ldr r3, [r7, #48] ; 0x30 - 8017bf2: 3310 adds r3, #16 - 8017bf4: 633b str r3, [r7, #48] ; 0x30 - pos = 6 - (x & 0x3) * 2; - 8017bf6: 897b ldrh r3, [r7, #10] - 8017bf8: 43db mvns r3, r3 - 8017bfa: b2db uxtb r3, r3 - 8017bfc: f003 0303 and.w r3, r3, #3 - 8017c00: b2db uxtb r3, r3 - 8017c02: 005b lsls r3, r3, #1 - 8017c04: b2db uxtb r3, r3 - 8017c06: f887 3035 strb.w r3, [r7, #53] ; 0x35 - break; - 8017c0a: e03f b.n 8017c8c - case LV_IMG_CF_INDEXED_4BIT: - w = (dsc->header.w + 1) >> 1; /*E.g. w = 13 -> w = 6 + 1 (bytes)*/ - 8017c0c: 68fb ldr r3, [r7, #12] - 8017c0e: 695b ldr r3, [r3, #20] - 8017c10: f3c3 238a ubfx r3, r3, #10, #11 - 8017c14: b29b uxth r3, r3 - 8017c16: 3301 adds r3, #1 - 8017c18: 105b asrs r3, r3, #1 - 8017c1a: 86fb strh r3, [r7, #54] ; 0x36 - ofs += w * y + (x >> 1); /*First pixel*/ - 8017c1c: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 8017c20: f9b7 2008 ldrsh.w r2, [r7, #8] - 8017c24: fb02 f303 mul.w r3, r2, r3 - 8017c28: f9b7 200a ldrsh.w r2, [r7, #10] - 8017c2c: 1052 asrs r2, r2, #1 - 8017c2e: b212 sxth r2, r2 - 8017c30: 4413 add r3, r2 - 8017c32: 461a mov r2, r3 - 8017c34: 6b3b ldr r3, [r7, #48] ; 0x30 - 8017c36: 4413 add r3, r2 - 8017c38: 633b str r3, [r7, #48] ; 0x30 - ofs += 64; /*Skip the palette*/ - 8017c3a: 6b3b ldr r3, [r7, #48] ; 0x30 - 8017c3c: 3340 adds r3, #64 ; 0x40 - 8017c3e: 633b str r3, [r7, #48] ; 0x30 - pos = 4 - (x & 0x1) * 4; - 8017c40: 897b ldrh r3, [r7, #10] - 8017c42: f003 0301 and.w r3, r3, #1 - 8017c46: 2b00 cmp r3, #0 - 8017c48: d101 bne.n 8017c4e - 8017c4a: 2304 movs r3, #4 - 8017c4c: e000 b.n 8017c50 - 8017c4e: 2300 movs r3, #0 - 8017c50: f887 3035 strb.w r3, [r7, #53] ; 0x35 - break; - 8017c54: e01a b.n 8017c8c - case LV_IMG_CF_INDEXED_8BIT: - w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/ - 8017c56: 68fb ldr r3, [r7, #12] - 8017c58: 695b ldr r3, [r3, #20] - 8017c5a: f3c3 238a ubfx r3, r3, #10, #11 - 8017c5e: b29b uxth r3, r3 - 8017c60: 86fb strh r3, [r7, #54] ; 0x36 + 8017bcc: 86fb strh r3, [r7, #54] ; 0x36 ofs += w * y + x; /*First pixel*/ - 8017c62: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 8017c66: f9b7 2008 ldrsh.w r2, [r7, #8] - 8017c6a: fb03 f202 mul.w r2, r3, r2 - 8017c6e: f9b7 300a ldrsh.w r3, [r7, #10] - 8017c72: 4413 add r3, r2 - 8017c74: 461a mov r2, r3 - 8017c76: 6b3b ldr r3, [r7, #48] ; 0x30 - 8017c78: 4413 add r3, r2 - 8017c7a: 633b str r3, [r7, #48] ; 0x30 + 8017bce: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 8017bd2: f9b7 2008 ldrsh.w r2, [r7, #8] + 8017bd6: fb03 f202 mul.w r2, r3, r2 + 8017bda: f9b7 300a ldrsh.w r3, [r7, #10] + 8017bde: 4413 add r3, r2 + 8017be0: 461a mov r2, r3 + 8017be2: 6b3b ldr r3, [r7, #48] ; 0x30 + 8017be4: 4413 add r3, r2 + 8017be6: 633b str r3, [r7, #48] ; 0x30 ofs += 1024; /*Skip the palette*/ - 8017c7c: 6b3b ldr r3, [r7, #48] ; 0x30 - 8017c7e: f503 6380 add.w r3, r3, #1024 ; 0x400 - 8017c82: 633b str r3, [r7, #48] ; 0x30 + 8017be8: 6b3b ldr r3, [r7, #48] ; 0x30 + 8017bea: f503 6380 add.w r3, r3, #1024 ; 0x400 + 8017bee: 633b str r3, [r7, #48] ; 0x30 pos = 0; - 8017c84: 2300 movs r3, #0 - 8017c86: f887 3035 strb.w r3, [r7, #53] ; 0x35 + 8017bf0: 2300 movs r3, #0 + 8017bf2: f887 3035 strb.w r3, [r7, #53] ; 0x35 break; - 8017c8a: bf00 nop + 8017bf6: bf00 nop } lv_img_decoder_built_in_data_t * user_data = dsc->user_data; - 8017c8c: 68fb ldr r3, [r7, #12] - 8017c8e: 6a5b ldr r3, [r3, #36] ; 0x24 - 8017c90: 623b str r3, [r7, #32] + 8017bf8: 68fb ldr r3, [r7, #12] + 8017bfa: 6a5b ldr r3, [r3, #36] ; 0x24 + 8017bfc: 623b str r3, [r7, #32] uint8_t * fs_buf = lv_mem_buf_get(w); - 8017c92: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 8017c96: 4618 mov r0, r3 - 8017c98: f01a feb2 bl 8032a00 - 8017c9c: 61f8 str r0, [r7, #28] + 8017bfe: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 8017c02: 4618 mov r0, r3 + 8017c04: f01a feb2 bl 803296c + 8017c08: 61f8 str r0, [r7, #28] if(fs_buf == NULL) return LV_RES_INV; - 8017c9e: 69fb ldr r3, [r7, #28] - 8017ca0: 2b00 cmp r3, #0 - 8017ca2: d101 bne.n 8017ca8 - 8017ca4: 2300 movs r3, #0 - 8017ca6: e081 b.n 8017dac + 8017c0a: 69fb ldr r3, [r7, #28] + 8017c0c: 2b00 cmp r3, #0 + 8017c0e: d101 bne.n 8017c14 + 8017c10: 2300 movs r3, #0 + 8017c12: e081 b.n 8017d18 const uint8_t * data_tmp = NULL; - 8017ca8: 2300 movs r3, #0 - 8017caa: 62fb str r3, [r7, #44] ; 0x2c + 8017c14: 2300 movs r3, #0 + 8017c16: 62fb str r3, [r7, #44] ; 0x2c if(dsc->src_type == LV_IMG_SRC_VARIABLE) { - 8017cac: 68fb ldr r3, [r7, #12] - 8017cae: 7c1b ldrb r3, [r3, #16] - 8017cb0: 2b00 cmp r3, #0 - 8017cb2: d108 bne.n 8017cc6 + 8017c18: 68fb ldr r3, [r7, #12] + 8017c1a: 7c1b ldrb r3, [r3, #16] + 8017c1c: 2b00 cmp r3, #0 + 8017c1e: d108 bne.n 8017c32 const lv_img_dsc_t * img_dsc = dsc->src; - 8017cb4: 68fb ldr r3, [r7, #12] - 8017cb6: 685b ldr r3, [r3, #4] - 8017cb8: 61bb str r3, [r7, #24] + 8017c20: 68fb ldr r3, [r7, #12] + 8017c22: 685b ldr r3, [r3, #4] + 8017c24: 61bb str r3, [r7, #24] data_tmp = img_dsc->data + ofs; - 8017cba: 69bb ldr r3, [r7, #24] - 8017cbc: 689a ldr r2, [r3, #8] - 8017cbe: 6b3b ldr r3, [r7, #48] ; 0x30 - 8017cc0: 4413 add r3, r2 - 8017cc2: 62fb str r3, [r7, #44] ; 0x2c - 8017cc4: e00f b.n 8017ce6 + 8017c26: 69bb ldr r3, [r7, #24] + 8017c28: 689a ldr r2, [r3, #8] + 8017c2a: 6b3b ldr r3, [r7, #48] ; 0x30 + 8017c2c: 4413 add r3, r2 + 8017c2e: 62fb str r3, [r7, #44] ; 0x2c + 8017c30: e00f b.n 8017c52 } else { lv_fs_seek(&user_data->f, ofs + 4, LV_FS_SEEK_SET); /*+4 to skip the header*/ - 8017cc6: 6a38 ldr r0, [r7, #32] - 8017cc8: 6b3b ldr r3, [r7, #48] ; 0x30 - 8017cca: 3304 adds r3, #4 - 8017ccc: 2200 movs r2, #0 - 8017cce: 4619 mov r1, r3 - 8017cd0: f01a f936 bl 8031f40 + 8017c32: 6a38 ldr r0, [r7, #32] + 8017c34: 6b3b ldr r3, [r7, #48] ; 0x30 + 8017c36: 3304 adds r3, #4 + 8017c38: 2200 movs r2, #0 + 8017c3a: 4619 mov r1, r3 + 8017c3c: f01a f936 bl 8031eac lv_fs_read(&user_data->f, fs_buf, w, NULL); - 8017cd4: 6a38 ldr r0, [r7, #32] - 8017cd6: f9b7 2036 ldrsh.w r2, [r7, #54] ; 0x36 - 8017cda: 2300 movs r3, #0 - 8017cdc: 69f9 ldr r1, [r7, #28] - 8017cde: f01a f8ea bl 8031eb6 + 8017c40: 6a38 ldr r0, [r7, #32] + 8017c42: f9b7 2036 ldrsh.w r2, [r7, #54] ; 0x36 + 8017c46: 2300 movs r3, #0 + 8017c48: 69f9 ldr r1, [r7, #28] + 8017c4a: f01a f8ea bl 8031e22 data_tmp = fs_buf; - 8017ce2: 69fb ldr r3, [r7, #28] - 8017ce4: 62fb str r3, [r7, #44] ; 0x2c + 8017c4e: 69fb ldr r3, [r7, #28] + 8017c50: 62fb str r3, [r7, #44] ; 0x2c } lv_coord_t i; for(i = 0; i < len; i++) { - 8017ce6: 2300 movs r3, #0 - 8017ce8: 857b strh r3, [r7, #42] ; 0x2a - 8017cea: e055 b.n 8017d98 + 8017c52: 2300 movs r3, #0 + 8017c54: 857b strh r3, [r7, #42] ; 0x2a + 8017c56: e055 b.n 8017d04 uint8_t val_act = (*data_tmp >> pos) & mask; - 8017cec: 6afb ldr r3, [r7, #44] ; 0x2c - 8017cee: 781b ldrb r3, [r3, #0] - 8017cf0: 461a mov r2, r3 - 8017cf2: f997 3035 ldrsb.w r3, [r7, #53] ; 0x35 - 8017cf6: fa42 f303 asr.w r3, r2, r3 - 8017cfa: b25a sxtb r2, r3 - 8017cfc: 8cfb ldrh r3, [r7, #38] ; 0x26 - 8017cfe: b25b sxtb r3, r3 - 8017d00: 4013 ands r3, r2 - 8017d02: b25b sxtb r3, r3 - 8017d04: 75fb strb r3, [r7, #23] + 8017c58: 6afb ldr r3, [r7, #44] ; 0x2c + 8017c5a: 781b ldrb r3, [r3, #0] + 8017c5c: 461a mov r2, r3 + 8017c5e: f997 3035 ldrsb.w r3, [r7, #53] ; 0x35 + 8017c62: fa42 f303 asr.w r3, r2, r3 + 8017c66: b25a sxtb r2, r3 + 8017c68: 8cfb ldrh r3, [r7, #38] ; 0x26 + 8017c6a: b25b sxtb r3, r3 + 8017c6c: 4013 ands r3, r2 + 8017c6e: b25b sxtb r3, r3 + 8017c70: 75fb strb r3, [r7, #23] lv_color_t color = user_data->palette[val_act]; - 8017d06: 6a3b ldr r3, [r7, #32] - 8017d08: 68da ldr r2, [r3, #12] - 8017d0a: 7dfb ldrb r3, [r7, #23] - 8017d0c: 005b lsls r3, r3, #1 - 8017d0e: 4413 add r3, r2 - 8017d10: 881b ldrh r3, [r3, #0] - 8017d12: 82bb strh r3, [r7, #20] + 8017c72: 6a3b ldr r3, [r7, #32] + 8017c74: 68da ldr r2, [r3, #12] + 8017c76: 7dfb ldrb r3, [r7, #23] + 8017c78: 005b lsls r3, r3, #1 + 8017c7a: 4413 add r3, r2 + 8017c7c: 881b ldrh r3, [r3, #0] + 8017c7e: 82bb strh r3, [r7, #20] #if LV_COLOR_DEPTH == 8 || LV_COLOR_DEPTH == 1 buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = color.full; #elif LV_COLOR_DEPTH == 16 /*Because of Alpha byte 16 bit color can start on odd address which can cause crash*/ buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = color.full & 0xFF; - 8017d14: 8ab9 ldrh r1, [r7, #20] - 8017d16: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a - 8017d1a: 4613 mov r3, r2 - 8017d1c: 005b lsls r3, r3, #1 - 8017d1e: 4413 add r3, r2 - 8017d20: 461a mov r2, r3 - 8017d22: 6c3b ldr r3, [r7, #64] ; 0x40 - 8017d24: 4413 add r3, r2 - 8017d26: b2ca uxtb r2, r1 - 8017d28: 701a strb r2, [r3, #0] + 8017c80: 8ab9 ldrh r1, [r7, #20] + 8017c82: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a + 8017c86: 4613 mov r3, r2 + 8017c88: 005b lsls r3, r3, #1 + 8017c8a: 4413 add r3, r2 + 8017c8c: 461a mov r2, r3 + 8017c8e: 6c3b ldr r3, [r7, #64] ; 0x40 + 8017c90: 4413 add r3, r2 + 8017c92: b2ca uxtb r2, r1 + 8017c94: 701a strb r2, [r3, #0] buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (color.full >> 8) & 0xFF; - 8017d2a: 8abb ldrh r3, [r7, #20] - 8017d2c: 0a1b lsrs r3, r3, #8 - 8017d2e: b299 uxth r1, r3 - 8017d30: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a - 8017d34: 4613 mov r3, r2 - 8017d36: 005b lsls r3, r3, #1 - 8017d38: 4413 add r3, r2 - 8017d3a: 3301 adds r3, #1 - 8017d3c: 6c3a ldr r2, [r7, #64] ; 0x40 - 8017d3e: 4413 add r3, r2 - 8017d40: b2ca uxtb r2, r1 - 8017d42: 701a strb r2, [r3, #0] + 8017c96: 8abb ldrh r3, [r7, #20] + 8017c98: 0a1b lsrs r3, r3, #8 + 8017c9a: b299 uxth r1, r3 + 8017c9c: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a + 8017ca0: 4613 mov r3, r2 + 8017ca2: 005b lsls r3, r3, #1 + 8017ca4: 4413 add r3, r2 + 8017ca6: 3301 adds r3, #1 + 8017ca8: 6c3a ldr r2, [r7, #64] ; 0x40 + 8017caa: 4413 add r3, r2 + 8017cac: b2ca uxtb r2, r1 + 8017cae: 701a strb r2, [r3, #0] #elif LV_COLOR_DEPTH == 32 *((uint32_t *)&buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE]) = color.full; #else #error "Invalid LV_COLOR_DEPTH. Check it in lv_conf.h" #endif buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = user_data->opa[val_act]; - 8017d44: 6a3b ldr r3, [r7, #32] - 8017d46: 691a ldr r2, [r3, #16] - 8017d48: 7dfb ldrb r3, [r7, #23] - 8017d4a: 18d1 adds r1, r2, r3 - 8017d4c: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a - 8017d50: 4613 mov r3, r2 - 8017d52: 005b lsls r3, r3, #1 - 8017d54: 4413 add r3, r2 - 8017d56: 3302 adds r3, #2 - 8017d58: 6c3a ldr r2, [r7, #64] ; 0x40 - 8017d5a: 4413 add r3, r2 - 8017d5c: 780a ldrb r2, [r1, #0] - 8017d5e: 701a strb r2, [r3, #0] + 8017cb0: 6a3b ldr r3, [r7, #32] + 8017cb2: 691a ldr r2, [r3, #16] + 8017cb4: 7dfb ldrb r3, [r7, #23] + 8017cb6: 18d1 adds r1, r2, r3 + 8017cb8: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a + 8017cbc: 4613 mov r3, r2 + 8017cbe: 005b lsls r3, r3, #1 + 8017cc0: 4413 add r3, r2 + 8017cc2: 3302 adds r3, #2 + 8017cc4: 6c3a ldr r2, [r7, #64] ; 0x40 + 8017cc6: 4413 add r3, r2 + 8017cc8: 780a ldrb r2, [r1, #0] + 8017cca: 701a strb r2, [r3, #0] pos -= px_size; - 8017d60: f897 2035 ldrb.w r2, [r7, #53] ; 0x35 - 8017d64: f897 3029 ldrb.w r3, [r7, #41] ; 0x29 - 8017d68: 1ad3 subs r3, r2, r3 - 8017d6a: b2db uxtb r3, r3 - 8017d6c: f887 3035 strb.w r3, [r7, #53] ; 0x35 + 8017ccc: f897 2035 ldrb.w r2, [r7, #53] ; 0x35 + 8017cd0: f897 3029 ldrb.w r3, [r7, #41] ; 0x29 + 8017cd4: 1ad3 subs r3, r2, r3 + 8017cd6: b2db uxtb r3, r3 + 8017cd8: f887 3035 strb.w r3, [r7, #53] ; 0x35 if(pos < 0) { - 8017d70: f997 3035 ldrsb.w r3, [r7, #53] ; 0x35 - 8017d74: 2b00 cmp r3, #0 - 8017d76: da09 bge.n 8017d8c + 8017cdc: f997 3035 ldrsb.w r3, [r7, #53] ; 0x35 + 8017ce0: 2b00 cmp r3, #0 + 8017ce2: da09 bge.n 8017cf8 pos = 8 - px_size; - 8017d78: f897 3029 ldrb.w r3, [r7, #41] ; 0x29 - 8017d7c: f1c3 0308 rsb r3, r3, #8 - 8017d80: b2db uxtb r3, r3 - 8017d82: f887 3035 strb.w r3, [r7, #53] ; 0x35 + 8017ce4: f897 3029 ldrb.w r3, [r7, #41] ; 0x29 + 8017ce8: f1c3 0308 rsb r3, r3, #8 + 8017cec: b2db uxtb r3, r3 + 8017cee: f887 3035 strb.w r3, [r7, #53] ; 0x35 data_tmp++; - 8017d86: 6afb ldr r3, [r7, #44] ; 0x2c - 8017d88: 3301 adds r3, #1 - 8017d8a: 62fb str r3, [r7, #44] ; 0x2c + 8017cf2: 6afb ldr r3, [r7, #44] ; 0x2c + 8017cf4: 3301 adds r3, #1 + 8017cf6: 62fb str r3, [r7, #44] ; 0x2c for(i = 0; i < len; i++) { - 8017d8c: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a - 8017d90: b29b uxth r3, r3 - 8017d92: 3301 adds r3, #1 - 8017d94: b29b uxth r3, r3 - 8017d96: 857b strh r3, [r7, #42] ; 0x2a - 8017d98: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a - 8017d9c: f9b7 3006 ldrsh.w r3, [r7, #6] - 8017da0: 429a cmp r2, r3 - 8017da2: dba3 blt.n 8017cec + 8017cf8: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a + 8017cfc: b29b uxth r3, r3 + 8017cfe: 3301 adds r3, #1 + 8017d00: b29b uxth r3, r3 + 8017d02: 857b strh r3, [r7, #42] ; 0x2a + 8017d04: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a + 8017d08: f9b7 3006 ldrsh.w r3, [r7, #6] + 8017d0c: 429a cmp r2, r3 + 8017d0e: dba3 blt.n 8017c58 } } lv_mem_buf_release(fs_buf); - 8017da4: 69f8 ldr r0, [r7, #28] - 8017da6: f01a fed7 bl 8032b58 + 8017d10: 69f8 ldr r0, [r7, #28] + 8017d12: f01a fed7 bl 8032ac4 return LV_RES_OK; - 8017daa: 2301 movs r3, #1 + 8017d16: 2301 movs r3, #1 } - 8017dac: 4618 mov r0, r3 - 8017dae: 3738 adds r7, #56 ; 0x38 - 8017db0: 46bd mov sp, r7 - 8017db2: bd80 pop {r7, pc} + 8017d18: 4618 mov r0, r3 + 8017d1a: 3738 adds r7, #56 ; 0x38 + 8017d1c: 46bd mov sp, r7 + 8017d1e: bd80 pop {r7, pc} -08017db4 : +08017d20 : /********************** * GLOBAL FUNCTIONS **********************/ void lv_draw_sw_init_ctx(lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx) { - 8017db4: b580 push {r7, lr} - 8017db6: b084 sub sp, #16 - 8017db8: af00 add r7, sp, #0 - 8017dba: 6078 str r0, [r7, #4] - 8017dbc: 6039 str r1, [r7, #0] + 8017d20: b580 push {r7, lr} + 8017d22: b084 sub sp, #16 + 8017d24: af00 add r7, sp, #0 + 8017d26: 6078 str r0, [r7, #4] + 8017d28: 6039 str r1, [r7, #0] LV_UNUSED(drv); lv_draw_sw_ctx_t * draw_sw_ctx = (lv_draw_sw_ctx_t *) draw_ctx; - 8017dbe: 683b ldr r3, [r7, #0] - 8017dc0: 60fb str r3, [r7, #12] + 8017d2a: 683b ldr r3, [r7, #0] + 8017d2c: 60fb str r3, [r7, #12] lv_memset_00(draw_sw_ctx, sizeof(lv_draw_sw_ctx_t)); - 8017dc2: 2138 movs r1, #56 ; 0x38 - 8017dc4: 68f8 ldr r0, [r7, #12] - 8017dc6: f01b f9c3 bl 8033150 + 8017d2e: 2138 movs r1, #56 ; 0x38 + 8017d30: 68f8 ldr r0, [r7, #12] + 8017d32: f01b f9c3 bl 80330bc draw_sw_ctx->base_draw.draw_arc = lv_draw_sw_arc; - 8017dca: 68fb ldr r3, [r7, #12] - 8017dcc: 4a0e ldr r2, [pc, #56] ; (8017e08 ) - 8017dce: 611a str r2, [r3, #16] + 8017d36: 68fb ldr r3, [r7, #12] + 8017d38: 4a0e ldr r2, [pc, #56] ; (8017d74 ) + 8017d3a: 611a str r2, [r3, #16] draw_sw_ctx->base_draw.draw_rect = lv_draw_sw_rect; - 8017dd0: 68fb ldr r3, [r7, #12] - 8017dd2: 4a0e ldr r2, [pc, #56] ; (8017e0c ) - 8017dd4: 60da str r2, [r3, #12] + 8017d3c: 68fb ldr r3, [r7, #12] + 8017d3e: 4a0e ldr r2, [pc, #56] ; (8017d78 ) + 8017d40: 60da str r2, [r3, #12] draw_sw_ctx->base_draw.draw_bg = lv_draw_sw_bg; - 8017dd6: 68fb ldr r3, [r7, #12] - 8017dd8: 4a0d ldr r2, [pc, #52] ; (8017e10 ) - 8017dda: 629a str r2, [r3, #40] ; 0x28 + 8017d42: 68fb ldr r3, [r7, #12] + 8017d44: 4a0d ldr r2, [pc, #52] ; (8017d7c ) + 8017d46: 629a str r2, [r3, #40] ; 0x28 draw_sw_ctx->base_draw.draw_letter = lv_draw_sw_letter; - 8017ddc: 68fb ldr r3, [r7, #12] - 8017dde: 4a0d ldr r2, [pc, #52] ; (8017e14 ) - 8017de0: 61da str r2, [r3, #28] + 8017d48: 68fb ldr r3, [r7, #12] + 8017d4a: 4a0d ldr r2, [pc, #52] ; (8017d80 ) + 8017d4c: 61da str r2, [r3, #28] draw_sw_ctx->base_draw.draw_img_decoded = lv_draw_sw_img_decoded; - 8017de2: 68fb ldr r3, [r7, #12] - 8017de4: 4a0c ldr r2, [pc, #48] ; (8017e18 ) - 8017de6: 615a str r2, [r3, #20] + 8017d4e: 68fb ldr r3, [r7, #12] + 8017d50: 4a0c ldr r2, [pc, #48] ; (8017d84 ) + 8017d52: 615a str r2, [r3, #20] draw_sw_ctx->base_draw.draw_line = lv_draw_sw_line; - 8017de8: 68fb ldr r3, [r7, #12] - 8017dea: 4a0c ldr r2, [pc, #48] ; (8017e1c ) - 8017dec: 621a str r2, [r3, #32] + 8017d54: 68fb ldr r3, [r7, #12] + 8017d56: 4a0c ldr r2, [pc, #48] ; (8017d88 ) + 8017d58: 621a str r2, [r3, #32] draw_sw_ctx->base_draw.draw_polygon = lv_draw_sw_polygon; - 8017dee: 68fb ldr r3, [r7, #12] - 8017df0: 4a0b ldr r2, [pc, #44] ; (8017e20 ) - 8017df2: 625a str r2, [r3, #36] ; 0x24 + 8017d5a: 68fb ldr r3, [r7, #12] + 8017d5c: 4a0b ldr r2, [pc, #44] ; (8017d8c ) + 8017d5e: 625a str r2, [r3, #36] ; 0x24 draw_sw_ctx->base_draw.wait_for_finish = lv_draw_sw_wait_for_finish; - 8017df4: 68fb ldr r3, [r7, #12] - 8017df6: 4a0b ldr r2, [pc, #44] ; (8017e24 ) - 8017df8: 62da str r2, [r3, #44] ; 0x2c + 8017d60: 68fb ldr r3, [r7, #12] + 8017d62: 4a0b ldr r2, [pc, #44] ; (8017d90 ) + 8017d64: 62da str r2, [r3, #44] ; 0x2c draw_sw_ctx->blend = lv_draw_sw_blend_basic; - 8017dfa: 68fb ldr r3, [r7, #12] - 8017dfc: 4a0a ldr r2, [pc, #40] ; (8017e28 ) - 8017dfe: 635a str r2, [r3, #52] ; 0x34 + 8017d66: 68fb ldr r3, [r7, #12] + 8017d68: 4a0a ldr r2, [pc, #40] ; (8017d94 ) + 8017d6a: 635a str r2, [r3, #52] ; 0x34 } - 8017e00: bf00 nop - 8017e02: 3710 adds r7, #16 - 8017e04: 46bd mov sp, r7 - 8017e06: bd80 pop {r7, pc} - 8017e08: 08017ed5 .word 0x08017ed5 - 8017e0c: 0801dd59 .word 0x0801dd59 - 8017e10: 0801dd9f .word 0x0801dd9f - 8017e14: 0801c10f .word 0x0801c10f - 8017e18: 0801b861 .word 0x0801b861 - 8017e1c: 0801c7b5 .word 0x0801c7b5 - 8017e20: 0801d74d .word 0x0801d74d - 8017e24: 08017e2d .word 0x08017e2d - 8017e28: 08019aeb .word 0x08019aeb + 8017d6c: bf00 nop + 8017d6e: 3710 adds r7, #16 + 8017d70: 46bd mov sp, r7 + 8017d72: bd80 pop {r7, pc} + 8017d74: 08017e41 .word 0x08017e41 + 8017d78: 0801dcc5 .word 0x0801dcc5 + 8017d7c: 0801dd0b .word 0x0801dd0b + 8017d80: 0801c07b .word 0x0801c07b + 8017d84: 0801b7cd .word 0x0801b7cd + 8017d88: 0801c721 .word 0x0801c721 + 8017d8c: 0801d6b9 .word 0x0801d6b9 + 8017d90: 08017d99 .word 0x08017d99 + 8017d94: 08019a57 .word 0x08019a57 -08017e2c : +08017d98 : lv_draw_sw_ctx_t * draw_sw_ctx = (lv_draw_sw_ctx_t *) draw_ctx; lv_memset_00(draw_sw_ctx, sizeof(lv_draw_sw_ctx_t)); } void lv_draw_sw_wait_for_finish(lv_draw_ctx_t * draw_ctx) { - 8017e2c: b480 push {r7} - 8017e2e: b083 sub sp, #12 - 8017e30: af00 add r7, sp, #0 - 8017e32: 6078 str r0, [r7, #4] + 8017d98: b480 push {r7} + 8017d9a: b083 sub sp, #12 + 8017d9c: af00 add r7, sp, #0 + 8017d9e: 6078 str r0, [r7, #4] LV_UNUSED(draw_ctx); /*Nothing to wait for*/ } - 8017e34: bf00 nop - 8017e36: 370c adds r7, #12 - 8017e38: 46bd mov sp, r7 - 8017e3a: bc80 pop {r7} - 8017e3c: 4770 bx lr + 8017da0: bf00 nop + 8017da2: 370c adds r7, #12 + 8017da4: 46bd mov sp, r7 + 8017da6: bc80 pop {r7} + 8017da8: 4770 bx lr -08017e3e : +08017daa : * Copy an area * @param dest pointer to the destination area * @param src pointer to the source area */ inline static void lv_area_copy(lv_area_t * dest, const lv_area_t * src) { - 8017e3e: b480 push {r7} - 8017e40: b083 sub sp, #12 - 8017e42: af00 add r7, sp, #0 - 8017e44: 6078 str r0, [r7, #4] - 8017e46: 6039 str r1, [r7, #0] + 8017daa: b480 push {r7} + 8017dac: b083 sub sp, #12 + 8017dae: af00 add r7, sp, #0 + 8017db0: 6078 str r0, [r7, #4] + 8017db2: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 8017e48: 683b ldr r3, [r7, #0] - 8017e4a: f9b3 2000 ldrsh.w r2, [r3] - 8017e4e: 687b ldr r3, [r7, #4] - 8017e50: 801a strh r2, [r3, #0] + 8017db4: 683b ldr r3, [r7, #0] + 8017db6: f9b3 2000 ldrsh.w r2, [r3] + 8017dba: 687b ldr r3, [r7, #4] + 8017dbc: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 8017e52: 683b ldr r3, [r7, #0] - 8017e54: f9b3 2002 ldrsh.w r2, [r3, #2] - 8017e58: 687b ldr r3, [r7, #4] - 8017e5a: 805a strh r2, [r3, #2] + 8017dbe: 683b ldr r3, [r7, #0] + 8017dc0: f9b3 2002 ldrsh.w r2, [r3, #2] + 8017dc4: 687b ldr r3, [r7, #4] + 8017dc6: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 8017e5c: 683b ldr r3, [r7, #0] - 8017e5e: f9b3 2004 ldrsh.w r2, [r3, #4] - 8017e62: 687b ldr r3, [r7, #4] - 8017e64: 809a strh r2, [r3, #4] + 8017dc8: 683b ldr r3, [r7, #0] + 8017dca: f9b3 2004 ldrsh.w r2, [r3, #4] + 8017dce: 687b ldr r3, [r7, #4] + 8017dd0: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 8017e66: 683b ldr r3, [r7, #0] - 8017e68: f9b3 2006 ldrsh.w r2, [r3, #6] - 8017e6c: 687b ldr r3, [r7, #4] - 8017e6e: 80da strh r2, [r3, #6] + 8017dd2: 683b ldr r3, [r7, #0] + 8017dd4: f9b3 2006 ldrsh.w r2, [r3, #6] + 8017dd8: 687b ldr r3, [r7, #4] + 8017dda: 80da strh r2, [r3, #6] } - 8017e70: bf00 nop - 8017e72: 370c adds r7, #12 - 8017e74: 46bd mov sp, r7 - 8017e76: bc80 pop {r7} - 8017e78: 4770 bx lr + 8017ddc: bf00 nop + 8017dde: 370c adds r7, #12 + 8017de0: 46bd mov sp, r7 + 8017de2: bc80 pop {r7} + 8017de4: 4770 bx lr -08017e7a : +08017de6 : * Get the width of an area * @param area_p pointer to an area * @return the width of the area (if x1 == x2 -> width = 1) */ static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p) { - 8017e7a: b480 push {r7} - 8017e7c: b083 sub sp, #12 - 8017e7e: af00 add r7, sp, #0 - 8017e80: 6078 str r0, [r7, #4] + 8017de6: b480 push {r7} + 8017de8: b083 sub sp, #12 + 8017dea: af00 add r7, sp, #0 + 8017dec: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 8017e82: 687b ldr r3, [r7, #4] - 8017e84: f9b3 3004 ldrsh.w r3, [r3, #4] - 8017e88: b29a uxth r2, r3 - 8017e8a: 687b ldr r3, [r7, #4] - 8017e8c: f9b3 3000 ldrsh.w r3, [r3] - 8017e90: b29b uxth r3, r3 - 8017e92: 1ad3 subs r3, r2, r3 - 8017e94: b29b uxth r3, r3 - 8017e96: 3301 adds r3, #1 - 8017e98: b29b uxth r3, r3 - 8017e9a: b21b sxth r3, r3 + 8017dee: 687b ldr r3, [r7, #4] + 8017df0: f9b3 3004 ldrsh.w r3, [r3, #4] + 8017df4: b29a uxth r2, r3 + 8017df6: 687b ldr r3, [r7, #4] + 8017df8: f9b3 3000 ldrsh.w r3, [r3] + 8017dfc: b29b uxth r3, r3 + 8017dfe: 1ad3 subs r3, r2, r3 + 8017e00: b29b uxth r3, r3 + 8017e02: 3301 adds r3, #1 + 8017e04: b29b uxth r3, r3 + 8017e06: b21b sxth r3, r3 } - 8017e9c: 4618 mov r0, r3 - 8017e9e: 370c adds r7, #12 - 8017ea0: 46bd mov sp, r7 - 8017ea2: bc80 pop {r7} - 8017ea4: 4770 bx lr + 8017e08: 4618 mov r0, r3 + 8017e0a: 370c adds r7, #12 + 8017e0c: 46bd mov sp, r7 + 8017e0e: bc80 pop {r7} + 8017e10: 4770 bx lr -08017ea6 : +08017e12 : * Get the height of an area * @param area_p pointer to an area * @return the height of the area (if y1 == y2 -> height = 1) */ static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) { - 8017ea6: b480 push {r7} - 8017ea8: b083 sub sp, #12 - 8017eaa: af00 add r7, sp, #0 - 8017eac: 6078 str r0, [r7, #4] + 8017e12: b480 push {r7} + 8017e14: b083 sub sp, #12 + 8017e16: af00 add r7, sp, #0 + 8017e18: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 8017eae: 687b ldr r3, [r7, #4] - 8017eb0: f9b3 3006 ldrsh.w r3, [r3, #6] - 8017eb4: b29a uxth r2, r3 - 8017eb6: 687b ldr r3, [r7, #4] - 8017eb8: f9b3 3002 ldrsh.w r3, [r3, #2] - 8017ebc: b29b uxth r3, r3 - 8017ebe: 1ad3 subs r3, r2, r3 - 8017ec0: b29b uxth r3, r3 - 8017ec2: 3301 adds r3, #1 - 8017ec4: b29b uxth r3, r3 - 8017ec6: b21b sxth r3, r3 + 8017e1a: 687b ldr r3, [r7, #4] + 8017e1c: f9b3 3006 ldrsh.w r3, [r3, #6] + 8017e20: b29a uxth r2, r3 + 8017e22: 687b ldr r3, [r7, #4] + 8017e24: f9b3 3002 ldrsh.w r3, [r3, #2] + 8017e28: b29b uxth r3, r3 + 8017e2a: 1ad3 subs r3, r2, r3 + 8017e2c: b29b uxth r3, r3 + 8017e2e: 3301 adds r3, #1 + 8017e30: b29b uxth r3, r3 + 8017e32: b21b sxth r3, r3 } - 8017ec8: 4618 mov r0, r3 - 8017eca: 370c adds r7, #12 - 8017ecc: 46bd mov sp, r7 - 8017ece: bc80 pop {r7} - 8017ed0: 4770 bx lr + 8017e34: 4618 mov r0, r3 + 8017e36: 370c adds r7, #12 + 8017e38: 46bd mov sp, r7 + 8017e3a: bc80 pop {r7} + 8017e3c: 4770 bx lr ... -08017ed4 : +08017e40 : * GLOBAL FUNCTIONS **********************/ void lv_draw_sw_arc(lv_draw_ctx_t * draw_ctx, const lv_draw_arc_dsc_t * dsc, const lv_point_t * center, uint16_t radius, uint16_t start_angle, uint16_t end_angle) { - 8017ed4: b590 push {r4, r7, lr} - 8017ed6: b0d7 sub sp, #348 ; 0x15c - 8017ed8: af02 add r7, sp, #8 - 8017eda: f507 74a8 add.w r4, r7, #336 ; 0x150 - 8017ede: f5a4 74a2 sub.w r4, r4, #324 ; 0x144 - 8017ee2: 6020 str r0, [r4, #0] - 8017ee4: f507 70a8 add.w r0, r7, #336 ; 0x150 - 8017ee8: f5a0 70a4 sub.w r0, r0, #328 ; 0x148 - 8017eec: 6001 str r1, [r0, #0] - 8017eee: f507 71a8 add.w r1, r7, #336 ; 0x150 - 8017ef2: f5a1 71a6 sub.w r1, r1, #332 ; 0x14c - 8017ef6: 600a str r2, [r1, #0] - 8017ef8: 461a mov r2, r3 - 8017efa: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8017efe: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e - 8017f02: 801a strh r2, [r3, #0] + 8017e40: b590 push {r4, r7, lr} + 8017e42: b0d7 sub sp, #348 ; 0x15c + 8017e44: af02 add r7, sp, #8 + 8017e46: f507 74a8 add.w r4, r7, #336 ; 0x150 + 8017e4a: f5a4 74a2 sub.w r4, r4, #324 ; 0x144 + 8017e4e: 6020 str r0, [r4, #0] + 8017e50: f507 70a8 add.w r0, r7, #336 ; 0x150 + 8017e54: f5a0 70a4 sub.w r0, r0, #328 ; 0x148 + 8017e58: 6001 str r1, [r0, #0] + 8017e5a: f507 71a8 add.w r1, r7, #336 ; 0x150 + 8017e5e: f5a1 71a6 sub.w r1, r1, #332 ; 0x14c + 8017e62: 600a str r2, [r1, #0] + 8017e64: 461a mov r2, r3 + 8017e66: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017e6a: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e + 8017e6e: 801a strh r2, [r3, #0] #if LV_DRAW_COMPLEX if(dsc->opa <= LV_OPA_MIN) return; - 8017f04: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8017f08: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 8017f0c: 681b ldr r3, [r3, #0] - 8017f0e: 7b1b ldrb r3, [r3, #12] - 8017f10: 2b02 cmp r3, #2 - 8017f12: f240 83d4 bls.w 80186be + 8017e70: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017e74: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 8017e78: 681b ldr r3, [r3, #0] + 8017e7a: 7b1b ldrb r3, [r3, #12] + 8017e7c: 2b02 cmp r3, #2 + 8017e7e: f240 83d4 bls.w 801862a if(dsc->width == 0) return; - 8017f16: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8017f1a: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 8017f1e: 681b ldr r3, [r3, #0] - 8017f20: f9b3 3002 ldrsh.w r3, [r3, #2] - 8017f24: 2b00 cmp r3, #0 - 8017f26: f000 83cc beq.w 80186c2 + 8017e82: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017e86: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 8017e8a: 681b ldr r3, [r3, #0] + 8017e8c: f9b3 3002 ldrsh.w r3, [r3, #2] + 8017e90: 2b00 cmp r3, #0 + 8017e92: f000 83cc beq.w 801862e if(start_angle == end_angle) return; - 8017f2a: f8b7 2160 ldrh.w r2, [r7, #352] ; 0x160 - 8017f2e: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 - 8017f32: 429a cmp r2, r3 - 8017f34: f000 83c7 beq.w 80186c6 + 8017e96: f8b7 2160 ldrh.w r2, [r7, #352] ; 0x160 + 8017e9a: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 + 8017e9e: 429a cmp r2, r3 + 8017ea0: f000 83c7 beq.w 8018632 lv_coord_t width = dsc->width; - 8017f38: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8017f3c: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 8017f40: 681b ldr r3, [r3, #0] - 8017f42: 885b ldrh r3, [r3, #2] - 8017f44: f8a7 314e strh.w r3, [r7, #334] ; 0x14e + 8017ea4: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017ea8: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 8017eac: 681b ldr r3, [r3, #0] + 8017eae: 885b ldrh r3, [r3, #2] + 8017eb0: f8a7 314e strh.w r3, [r7, #334] ; 0x14e if(width > radius) width = radius; - 8017f48: f9b7 214e ldrsh.w r2, [r7, #334] ; 0x14e - 8017f4c: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8017f50: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e - 8017f54: 881b ldrh r3, [r3, #0] - 8017f56: 429a cmp r2, r3 - 8017f58: dd06 ble.n 8017f68 - 8017f5a: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8017f5e: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e - 8017f62: 881b ldrh r3, [r3, #0] - 8017f64: f8a7 314e strh.w r3, [r7, #334] ; 0x14e + 8017eb4: f9b7 214e ldrsh.w r2, [r7, #334] ; 0x14e + 8017eb8: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017ebc: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e + 8017ec0: 881b ldrh r3, [r3, #0] + 8017ec2: 429a cmp r2, r3 + 8017ec4: dd06 ble.n 8017ed4 + 8017ec6: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017eca: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e + 8017ece: 881b ldrh r3, [r3, #0] + 8017ed0: f8a7 314e strh.w r3, [r7, #334] ; 0x14e lv_draw_rect_dsc_t cir_dsc; lv_draw_rect_dsc_init(&cir_dsc); - 8017f68: f507 7382 add.w r3, r7, #260 ; 0x104 - 8017f6c: 4618 mov r0, r3 - 8017f6e: f7fd fc41 bl 80157f4 + 8017ed4: f507 7382 add.w r3, r7, #260 ; 0x104 + 8017ed8: 4618 mov r0, r3 + 8017eda: f7fd fc41 bl 8015760 cir_dsc.blend_mode = dsc->blend_mode; - 8017f72: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8017f76: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 8017f7a: 681b ldr r3, [r3, #0] - 8017f7c: 7b5b ldrb r3, [r3, #13] - 8017f7e: f3c3 0301 ubfx r3, r3, #0, #2 - 8017f82: b2db uxtb r3, r3 - 8017f84: f887 3106 strb.w r3, [r7, #262] ; 0x106 + 8017ede: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017ee2: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 8017ee6: 681b ldr r3, [r3, #0] + 8017ee8: 7b5b ldrb r3, [r3, #13] + 8017eea: f3c3 0301 ubfx r3, r3, #0, #2 + 8017eee: b2db uxtb r3, r3 + 8017ef0: f887 3106 strb.w r3, [r7, #262] ; 0x106 if(dsc->img_src) { - 8017f88: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8017f8c: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 8017f90: 681b ldr r3, [r3, #0] - 8017f92: 689b ldr r3, [r3, #8] - 8017f94: 2b00 cmp r3, #0 - 8017f96: d013 beq.n 8017fc0 + 8017ef4: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017ef8: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 8017efc: 681b ldr r3, [r3, #0] + 8017efe: 689b ldr r3, [r3, #8] + 8017f00: 2b00 cmp r3, #0 + 8017f02: d013 beq.n 8017f2c cir_dsc.bg_opa = LV_OPA_TRANSP; - 8017f98: 2300 movs r3, #0 - 8017f9a: f887 3107 strb.w r3, [r7, #263] ; 0x107 + 8017f04: 2300 movs r3, #0 + 8017f06: f887 3107 strb.w r3, [r7, #263] ; 0x107 cir_dsc.bg_img_src = dsc->img_src; - 8017f9e: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8017fa2: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 8017fa6: 681b ldr r3, [r3, #0] - 8017fa8: 689b ldr r3, [r3, #8] - 8017faa: f8c7 3114 str.w r3, [r7, #276] ; 0x114 + 8017f0a: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017f0e: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 8017f12: 681b ldr r3, [r3, #0] + 8017f14: 689b ldr r3, [r3, #8] + 8017f16: f8c7 3114 str.w r3, [r7, #276] ; 0x114 cir_dsc.bg_img_opa = dsc->opa; - 8017fae: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8017fb2: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 8017fb6: 681b ldr r3, [r3, #0] - 8017fb8: 7b1b ldrb r3, [r3, #12] - 8017fba: f887 311e strb.w r3, [r7, #286] ; 0x11e - 8017fbe: e00f b.n 8017fe0 + 8017f1a: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017f1e: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 8017f22: 681b ldr r3, [r3, #0] + 8017f24: 7b1b ldrb r3, [r3, #12] + 8017f26: f887 311e strb.w r3, [r7, #286] ; 0x11e + 8017f2a: e00f b.n 8017f4c } else { cir_dsc.bg_opa = dsc->opa; - 8017fc0: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8017fc4: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 8017fc8: 681b ldr r3, [r3, #0] - 8017fca: 7b1b ldrb r3, [r3, #12] - 8017fcc: f887 3107 strb.w r3, [r7, #263] ; 0x107 + 8017f2c: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017f30: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 8017f34: 681b ldr r3, [r3, #0] + 8017f36: 7b1b ldrb r3, [r3, #12] + 8017f38: f887 3107 strb.w r3, [r7, #263] ; 0x107 cir_dsc.bg_color = dsc->color; - 8017fd0: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8017fd4: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 8017fd8: 681b ldr r3, [r3, #0] - 8017fda: 881b ldrh r3, [r3, #0] - 8017fdc: f8a7 3108 strh.w r3, [r7, #264] ; 0x108 + 8017f3c: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017f40: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 8017f44: 681b ldr r3, [r3, #0] + 8017f46: 881b ldrh r3, [r3, #0] + 8017f48: f8a7 3108 strh.w r3, [r7, #264] ; 0x108 } lv_area_t area_out; area_out.x1 = center->x - radius; - 8017fe0: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8017fe4: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c - 8017fe8: 681b ldr r3, [r3, #0] - 8017fea: f9b3 3000 ldrsh.w r3, [r3] - 8017fee: b29a uxth r2, r3 - 8017ff0: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8017ff4: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e - 8017ff8: 881b ldrh r3, [r3, #0] - 8017ffa: 1ad3 subs r3, r2, r3 - 8017ffc: b29b uxth r3, r3 - 8017ffe: b21b sxth r3, r3 - 8018000: f8a7 30fc strh.w r3, [r7, #252] ; 0xfc + 8017f4c: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017f50: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c + 8017f54: 681b ldr r3, [r3, #0] + 8017f56: f9b3 3000 ldrsh.w r3, [r3] + 8017f5a: b29a uxth r2, r3 + 8017f5c: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017f60: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e + 8017f64: 881b ldrh r3, [r3, #0] + 8017f66: 1ad3 subs r3, r2, r3 + 8017f68: b29b uxth r3, r3 + 8017f6a: b21b sxth r3, r3 + 8017f6c: f8a7 30fc strh.w r3, [r7, #252] ; 0xfc area_out.y1 = center->y - radius; - 8018004: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018008: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c - 801800c: 681b ldr r3, [r3, #0] - 801800e: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018012: b29a uxth r2, r3 - 8018014: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018018: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e - 801801c: 881b ldrh r3, [r3, #0] - 801801e: 1ad3 subs r3, r2, r3 - 8018020: b29b uxth r3, r3 - 8018022: b21b sxth r3, r3 - 8018024: f8a7 30fe strh.w r3, [r7, #254] ; 0xfe + 8017f70: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017f74: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c + 8017f78: 681b ldr r3, [r3, #0] + 8017f7a: f9b3 3002 ldrsh.w r3, [r3, #2] + 8017f7e: b29a uxth r2, r3 + 8017f80: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017f84: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e + 8017f88: 881b ldrh r3, [r3, #0] + 8017f8a: 1ad3 subs r3, r2, r3 + 8017f8c: b29b uxth r3, r3 + 8017f8e: b21b sxth r3, r3 + 8017f90: f8a7 30fe strh.w r3, [r7, #254] ; 0xfe area_out.x2 = center->x + radius - 1; /*-1 because the center already belongs to the left/bottom part*/ - 8018028: f507 73a8 add.w r3, r7, #336 ; 0x150 - 801802c: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c - 8018030: 681b ldr r3, [r3, #0] - 8018032: f9b3 3000 ldrsh.w r3, [r3] - 8018036: b29a uxth r2, r3 - 8018038: f507 73a8 add.w r3, r7, #336 ; 0x150 - 801803c: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e - 8018040: 881b ldrh r3, [r3, #0] - 8018042: 4413 add r3, r2 - 8018044: b29b uxth r3, r3 - 8018046: 3b01 subs r3, #1 - 8018048: b29b uxth r3, r3 - 801804a: b21b sxth r3, r3 - 801804c: f8a7 3100 strh.w r3, [r7, #256] ; 0x100 + 8017f94: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017f98: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c + 8017f9c: 681b ldr r3, [r3, #0] + 8017f9e: f9b3 3000 ldrsh.w r3, [r3] + 8017fa2: b29a uxth r2, r3 + 8017fa4: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017fa8: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e + 8017fac: 881b ldrh r3, [r3, #0] + 8017fae: 4413 add r3, r2 + 8017fb0: b29b uxth r3, r3 + 8017fb2: 3b01 subs r3, #1 + 8017fb4: b29b uxth r3, r3 + 8017fb6: b21b sxth r3, r3 + 8017fb8: f8a7 3100 strh.w r3, [r7, #256] ; 0x100 area_out.y2 = center->y + radius - 1; - 8018050: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018054: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c - 8018058: 681b ldr r3, [r3, #0] - 801805a: f9b3 3002 ldrsh.w r3, [r3, #2] - 801805e: b29a uxth r2, r3 - 8018060: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018064: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e - 8018068: 881b ldrh r3, [r3, #0] - 801806a: 4413 add r3, r2 - 801806c: b29b uxth r3, r3 - 801806e: 3b01 subs r3, #1 - 8018070: b29b uxth r3, r3 - 8018072: b21b sxth r3, r3 - 8018074: f8a7 3102 strh.w r3, [r7, #258] ; 0x102 + 8017fbc: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017fc0: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c + 8017fc4: 681b ldr r3, [r3, #0] + 8017fc6: f9b3 3002 ldrsh.w r3, [r3, #2] + 8017fca: b29a uxth r2, r3 + 8017fcc: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017fd0: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e + 8017fd4: 881b ldrh r3, [r3, #0] + 8017fd6: 4413 add r3, r2 + 8017fd8: b29b uxth r3, r3 + 8017fda: 3b01 subs r3, #1 + 8017fdc: b29b uxth r3, r3 + 8017fde: b21b sxth r3, r3 + 8017fe0: f8a7 3102 strh.w r3, [r7, #258] ; 0x102 lv_area_t area_in; lv_area_copy(&area_in, &area_out); - 8018078: f107 02fc add.w r2, r7, #252 ; 0xfc - 801807c: f107 03f4 add.w r3, r7, #244 ; 0xf4 - 8018080: 4611 mov r1, r2 - 8018082: 4618 mov r0, r3 - 8018084: f7ff fedb bl 8017e3e + 8017fe4: f107 02fc add.w r2, r7, #252 ; 0xfc + 8017fe8: f107 03f4 add.w r3, r7, #244 ; 0xf4 + 8017fec: 4611 mov r1, r2 + 8017fee: 4618 mov r0, r3 + 8017ff0: f7ff fedb bl 8017daa area_in.x1 += dsc->width; - 8018088: f9b7 30f4 ldrsh.w r3, [r7, #244] ; 0xf4 - 801808c: b29a uxth r2, r3 - 801808e: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018092: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 8018096: 681b ldr r3, [r3, #0] - 8018098: f9b3 3002 ldrsh.w r3, [r3, #2] - 801809c: b29b uxth r3, r3 - 801809e: 4413 add r3, r2 - 80180a0: b29b uxth r3, r3 - 80180a2: b21b sxth r3, r3 - 80180a4: f8a7 30f4 strh.w r3, [r7, #244] ; 0xf4 + 8017ff4: f9b7 30f4 ldrsh.w r3, [r7, #244] ; 0xf4 + 8017ff8: b29a uxth r2, r3 + 8017ffa: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8017ffe: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 8018002: 681b ldr r3, [r3, #0] + 8018004: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018008: b29b uxth r3, r3 + 801800a: 4413 add r3, r2 + 801800c: b29b uxth r3, r3 + 801800e: b21b sxth r3, r3 + 8018010: f8a7 30f4 strh.w r3, [r7, #244] ; 0xf4 area_in.y1 += dsc->width; - 80180a8: f9b7 30f6 ldrsh.w r3, [r7, #246] ; 0xf6 - 80180ac: b29a uxth r2, r3 - 80180ae: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80180b2: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 80180b6: 681b ldr r3, [r3, #0] - 80180b8: f9b3 3002 ldrsh.w r3, [r3, #2] - 80180bc: b29b uxth r3, r3 - 80180be: 4413 add r3, r2 - 80180c0: b29b uxth r3, r3 - 80180c2: b21b sxth r3, r3 - 80180c4: f8a7 30f6 strh.w r3, [r7, #246] ; 0xf6 + 8018014: f9b7 30f6 ldrsh.w r3, [r7, #246] ; 0xf6 + 8018018: b29a uxth r2, r3 + 801801a: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801801e: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 8018022: 681b ldr r3, [r3, #0] + 8018024: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018028: b29b uxth r3, r3 + 801802a: 4413 add r3, r2 + 801802c: b29b uxth r3, r3 + 801802e: b21b sxth r3, r3 + 8018030: f8a7 30f6 strh.w r3, [r7, #246] ; 0xf6 area_in.x2 -= dsc->width; - 80180c8: f9b7 30f8 ldrsh.w r3, [r7, #248] ; 0xf8 - 80180cc: b29a uxth r2, r3 - 80180ce: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80180d2: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 80180d6: 681b ldr r3, [r3, #0] - 80180d8: f9b3 3002 ldrsh.w r3, [r3, #2] - 80180dc: b29b uxth r3, r3 - 80180de: 1ad3 subs r3, r2, r3 - 80180e0: b29b uxth r3, r3 - 80180e2: b21b sxth r3, r3 - 80180e4: f8a7 30f8 strh.w r3, [r7, #248] ; 0xf8 + 8018034: f9b7 30f8 ldrsh.w r3, [r7, #248] ; 0xf8 + 8018038: b29a uxth r2, r3 + 801803a: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801803e: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 8018042: 681b ldr r3, [r3, #0] + 8018044: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018048: b29b uxth r3, r3 + 801804a: 1ad3 subs r3, r2, r3 + 801804c: b29b uxth r3, r3 + 801804e: b21b sxth r3, r3 + 8018050: f8a7 30f8 strh.w r3, [r7, #248] ; 0xf8 area_in.y2 -= dsc->width; - 80180e8: f9b7 30fa ldrsh.w r3, [r7, #250] ; 0xfa - 80180ec: b29a uxth r2, r3 - 80180ee: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80180f2: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 80180f6: 681b ldr r3, [r3, #0] - 80180f8: f9b3 3002 ldrsh.w r3, [r3, #2] - 80180fc: b29b uxth r3, r3 - 80180fe: 1ad3 subs r3, r2, r3 - 8018100: b29b uxth r3, r3 - 8018102: b21b sxth r3, r3 - 8018104: f8a7 30fa strh.w r3, [r7, #250] ; 0xfa + 8018054: f9b7 30fa ldrsh.w r3, [r7, #250] ; 0xfa + 8018058: b29a uxth r2, r3 + 801805a: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801805e: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 8018062: 681b ldr r3, [r3, #0] + 8018064: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018068: b29b uxth r3, r3 + 801806a: 1ad3 subs r3, r2, r3 + 801806c: b29b uxth r3, r3 + 801806e: b21b sxth r3, r3 + 8018070: f8a7 30fa strh.w r3, [r7, #250] ; 0xfa /*Create inner the mask*/ int16_t mask_in_id = LV_MASK_ID_INV; - 8018108: f64f 73ff movw r3, #65535 ; 0xffff - 801810c: f8a7 314c strh.w r3, [r7, #332] ; 0x14c + 8018074: f64f 73ff movw r3, #65535 ; 0xffff + 8018078: f8a7 314c strh.w r3, [r7, #332] ; 0x14c lv_draw_mask_radius_param_t mask_in_param; if(lv_area_get_width(&area_in) > 0 && lv_area_get_height(&area_in) > 0) { - 8018110: f107 03f4 add.w r3, r7, #244 ; 0xf4 - 8018114: 4618 mov r0, r3 - 8018116: f7ff feb0 bl 8017e7a - 801811a: 4603 mov r3, r0 - 801811c: 2b00 cmp r3, #0 - 801811e: dd19 ble.n 8018154 - 8018120: f107 03f4 add.w r3, r7, #244 ; 0xf4 - 8018124: 4618 mov r0, r3 - 8018126: f7ff febe bl 8017ea6 - 801812a: 4603 mov r3, r0 - 801812c: 2b00 cmp r3, #0 - 801812e: dd11 ble.n 8018154 + 801807c: f107 03f4 add.w r3, r7, #244 ; 0xf4 + 8018080: 4618 mov r0, r3 + 8018082: f7ff feb0 bl 8017de6 + 8018086: 4603 mov r3, r0 + 8018088: 2b00 cmp r3, #0 + 801808a: dd19 ble.n 80180c0 + 801808c: f107 03f4 add.w r3, r7, #244 ; 0xf4 + 8018090: 4618 mov r0, r3 + 8018092: f7ff febe bl 8017e12 + 8018096: 4603 mov r3, r0 + 8018098: 2b00 cmp r3, #0 + 801809a: dd11 ble.n 80180c0 lv_draw_mask_radius_init(&mask_in_param, &area_in, LV_RADIUS_CIRCLE, true); - 8018130: f107 01f4 add.w r1, r7, #244 ; 0xf4 - 8018134: f107 00dc add.w r0, r7, #220 ; 0xdc - 8018138: 2301 movs r3, #1 - 801813a: f647 72ff movw r2, #32767 ; 0x7fff - 801813e: f7fb fb57 bl 80137f0 + 801809c: f107 01f4 add.w r1, r7, #244 ; 0xf4 + 80180a0: f107 00dc add.w r0, r7, #220 ; 0xdc + 80180a4: 2301 movs r3, #1 + 80180a6: f647 72ff movw r2, #32767 ; 0x7fff + 80180aa: f7fb fb57 bl 801375c mask_in_id = lv_draw_mask_add(&mask_in_param, NULL); - 8018142: f107 03dc add.w r3, r7, #220 ; 0xdc - 8018146: 2100 movs r1, #0 - 8018148: 4618 mov r0, r3 - 801814a: f7fa ff7b bl 8013044 - 801814e: 4603 mov r3, r0 - 8018150: f8a7 314c strh.w r3, [r7, #332] ; 0x14c + 80180ae: f107 03dc add.w r3, r7, #220 ; 0xdc + 80180b2: 2100 movs r1, #0 + 80180b4: 4618 mov r0, r3 + 80180b6: f7fa ff7b bl 8012fb0 + 80180ba: 4603 mov r3, r0 + 80180bc: f8a7 314c strh.w r3, [r7, #332] ; 0x14c } lv_draw_mask_radius_param_t mask_out_param; lv_draw_mask_radius_init(&mask_out_param, &area_out, LV_RADIUS_CIRCLE, false); - 8018154: f107 01fc add.w r1, r7, #252 ; 0xfc - 8018158: f107 00c4 add.w r0, r7, #196 ; 0xc4 - 801815c: 2300 movs r3, #0 - 801815e: f647 72ff movw r2, #32767 ; 0x7fff - 8018162: f7fb fb45 bl 80137f0 + 80180c0: f107 01fc add.w r1, r7, #252 ; 0xfc + 80180c4: f107 00c4 add.w r0, r7, #196 ; 0xc4 + 80180c8: 2300 movs r3, #0 + 80180ca: f647 72ff movw r2, #32767 ; 0x7fff + 80180ce: f7fb fb45 bl 801375c int16_t mask_out_id = lv_draw_mask_add(&mask_out_param, NULL); - 8018166: f107 03c4 add.w r3, r7, #196 ; 0xc4 - 801816a: 2100 movs r1, #0 - 801816c: 4618 mov r0, r3 - 801816e: f7fa ff69 bl 8013044 - 8018172: 4603 mov r3, r0 - 8018174: f8a7 3146 strh.w r3, [r7, #326] ; 0x146 + 80180d2: f107 03c4 add.w r3, r7, #196 ; 0xc4 + 80180d6: 2100 movs r1, #0 + 80180d8: 4618 mov r0, r3 + 80180da: f7fa ff69 bl 8012fb0 + 80180de: 4603 mov r3, r0 + 80180e0: f8a7 3146 strh.w r3, [r7, #326] ; 0x146 /*Draw a full ring*/ if(start_angle + 360 == end_angle || start_angle == end_angle + 360) { - 8018178: f8b7 3160 ldrh.w r3, [r7, #352] ; 0x160 - 801817c: f503 72b4 add.w r2, r3, #360 ; 0x168 - 8018180: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 - 8018184: 429a cmp r2, r3 - 8018186: d007 beq.n 8018198 - 8018188: f8b7 2160 ldrh.w r2, [r7, #352] ; 0x160 - 801818c: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 - 8018190: f503 73b4 add.w r3, r3, #360 ; 0x168 - 8018194: 429a cmp r2, r3 - 8018196: d12e bne.n 80181f6 + 80180e4: f8b7 3160 ldrh.w r3, [r7, #352] ; 0x160 + 80180e8: f503 72b4 add.w r2, r3, #360 ; 0x168 + 80180ec: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 + 80180f0: 429a cmp r2, r3 + 80180f2: d007 beq.n 8018104 + 80180f4: f8b7 2160 ldrh.w r2, [r7, #352] ; 0x160 + 80180f8: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 + 80180fc: f503 73b4 add.w r3, r3, #360 ; 0x168 + 8018100: 429a cmp r2, r3 + 8018102: d12e bne.n 8018162 cir_dsc.radius = LV_RADIUS_CIRCLE; - 8018198: f647 73ff movw r3, #32767 ; 0x7fff - 801819c: f8a7 3104 strh.w r3, [r7, #260] ; 0x104 + 8018104: f647 73ff movw r3, #32767 ; 0x7fff + 8018108: f8a7 3104 strh.w r3, [r7, #260] ; 0x104 lv_draw_rect(draw_ctx, &cir_dsc, &area_out); - 80181a0: f107 02fc add.w r2, r7, #252 ; 0xfc - 80181a4: f507 7182 add.w r1, r7, #260 ; 0x104 - 80181a8: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80181ac: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 - 80181b0: 6818 ldr r0, [r3, #0] - 80181b2: f7fd fb61 bl 8015878 + 801810c: f107 02fc add.w r2, r7, #252 ; 0xfc + 8018110: f507 7182 add.w r1, r7, #260 ; 0x104 + 8018114: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018118: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 + 801811c: 6818 ldr r0, [r3, #0] + 801811e: f7fd fb61 bl 80157e4 lv_draw_mask_remove_id(mask_out_id); - 80181b6: f9b7 3146 ldrsh.w r3, [r7, #326] ; 0x146 - 80181ba: 4618 mov r0, r3 - 80181bc: f7fa ffb6 bl 801312c + 8018122: f9b7 3146 ldrsh.w r3, [r7, #326] ; 0x146 + 8018126: 4618 mov r0, r3 + 8018128: f7fa ffb6 bl 8013098 if(mask_in_id != LV_MASK_ID_INV) lv_draw_mask_remove_id(mask_in_id); - 80181c0: f9b7 314c ldrsh.w r3, [r7, #332] ; 0x14c - 80181c4: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 80181c8: d004 beq.n 80181d4 - 80181ca: f9b7 314c ldrsh.w r3, [r7, #332] ; 0x14c - 80181ce: 4618 mov r0, r3 - 80181d0: f7fa ffac bl 801312c + 801812c: f9b7 314c ldrsh.w r3, [r7, #332] ; 0x14c + 8018130: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 8018134: d004 beq.n 8018140 + 8018136: f9b7 314c ldrsh.w r3, [r7, #332] ; 0x14c + 801813a: 4618 mov r0, r3 + 801813c: f7fa ffac bl 8013098 lv_draw_mask_free_param(&mask_out_param); - 80181d4: f107 03c4 add.w r3, r7, #196 ; 0xc4 - 80181d8: 4618 mov r0, r3 - 80181da: f7fa fff7 bl 80131cc + 8018140: f107 03c4 add.w r3, r7, #196 ; 0xc4 + 8018144: 4618 mov r0, r3 + 8018146: f7fa fff7 bl 8013138 lv_draw_mask_free_param(&mask_in_param); - 80181de: f107 03dc add.w r3, r7, #220 ; 0xdc - 80181e2: 4618 mov r0, r3 - 80181e4: f7fa fff2 bl 80131cc + 801814a: f107 03dc add.w r3, r7, #220 ; 0xdc + 801814e: 4618 mov r0, r3 + 8018150: f7fa fff2 bl 8013138 return; - 80181e8: e26e b.n 80186c8 + 8018154: e26e b.n 8018634 } while(start_angle >= 360) start_angle -= 360; - 80181ea: f8b7 3160 ldrh.w r3, [r7, #352] ; 0x160 - 80181ee: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 - 80181f2: f8a7 3160 strh.w r3, [r7, #352] ; 0x160 - 80181f6: f8b7 3160 ldrh.w r3, [r7, #352] ; 0x160 - 80181fa: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 80181fe: d2f4 bcs.n 80181ea + 8018156: f8b7 3160 ldrh.w r3, [r7, #352] ; 0x160 + 801815a: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 + 801815e: f8a7 3160 strh.w r3, [r7, #352] ; 0x160 + 8018162: f8b7 3160 ldrh.w r3, [r7, #352] ; 0x160 + 8018166: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 801816a: d2f4 bcs.n 8018156 while(end_angle >= 360) end_angle -= 360; - 8018200: e005 b.n 801820e - 8018202: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 - 8018206: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 - 801820a: f8a7 3164 strh.w r3, [r7, #356] ; 0x164 - 801820e: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 - 8018212: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 8018216: d2f4 bcs.n 8018202 + 801816c: e005 b.n 801817a + 801816e: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 + 8018172: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 + 8018176: f8a7 3164 strh.w r3, [r7, #356] ; 0x164 + 801817a: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 + 801817e: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 8018182: d2f4 bcs.n 801816e lv_draw_mask_angle_param_t mask_angle_param; lv_draw_mask_angle_init(&mask_angle_param, center->x, center->y, start_angle, end_angle); - 8018218: f507 73a8 add.w r3, r7, #336 ; 0x150 - 801821c: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c - 8018220: 681b ldr r3, [r3, #0] - 8018222: f9b3 1000 ldrsh.w r1, [r3] - 8018226: f507 73a8 add.w r3, r7, #336 ; 0x150 - 801822a: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c - 801822e: 681b ldr r3, [r3, #0] - 8018230: f9b3 2002 ldrsh.w r2, [r3, #2] - 8018234: f9b7 4160 ldrsh.w r4, [r7, #352] ; 0x160 - 8018238: f9b7 3164 ldrsh.w r3, [r7, #356] ; 0x164 - 801823c: f107 0058 add.w r0, r7, #88 ; 0x58 - 8018240: 9300 str r3, [sp, #0] - 8018242: 4623 mov r3, r4 - 8018244: f7fb fa12 bl 801366c + 8018184: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018188: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c + 801818c: 681b ldr r3, [r3, #0] + 801818e: f9b3 1000 ldrsh.w r1, [r3] + 8018192: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018196: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c + 801819a: 681b ldr r3, [r3, #0] + 801819c: f9b3 2002 ldrsh.w r2, [r3, #2] + 80181a0: f9b7 4160 ldrsh.w r4, [r7, #352] ; 0x160 + 80181a4: f9b7 3164 ldrsh.w r3, [r7, #356] ; 0x164 + 80181a8: f107 0058 add.w r0, r7, #88 ; 0x58 + 80181ac: 9300 str r3, [sp, #0] + 80181ae: 4623 mov r3, r4 + 80181b0: f7fb fa12 bl 80135d8 int16_t mask_angle_id = lv_draw_mask_add(&mask_angle_param, NULL); - 8018248: f107 0358 add.w r3, r7, #88 ; 0x58 - 801824c: 2100 movs r1, #0 - 801824e: 4618 mov r0, r3 - 8018250: f7fa fef8 bl 8013044 - 8018254: 4603 mov r3, r0 - 8018256: f8a7 3144 strh.w r3, [r7, #324] ; 0x144 + 80181b4: f107 0358 add.w r3, r7, #88 ; 0x58 + 80181b8: 2100 movs r1, #0 + 80181ba: 4618 mov r0, r3 + 80181bc: f7fa fef8 bl 8012fb0 + 80181c0: 4603 mov r3, r0 + 80181c2: f8a7 3144 strh.w r3, [r7, #324] ; 0x144 int32_t angle_gap; if(end_angle > start_angle) { - 801825a: f8b7 2164 ldrh.w r2, [r7, #356] ; 0x164 - 801825e: f8b7 3160 ldrh.w r3, [r7, #352] ; 0x160 - 8018262: 429a cmp r2, r3 - 8018264: d909 bls.n 801827a + 80181c6: f8b7 2164 ldrh.w r2, [r7, #356] ; 0x164 + 80181ca: f8b7 3160 ldrh.w r3, [r7, #352] ; 0x160 + 80181ce: 429a cmp r2, r3 + 80181d0: d909 bls.n 80181e6 angle_gap = 360 - (end_angle - start_angle); - 8018266: f8b7 2164 ldrh.w r2, [r7, #356] ; 0x164 - 801826a: f8b7 3160 ldrh.w r3, [r7, #352] ; 0x160 - 801826e: 1ad3 subs r3, r2, r3 - 8018270: f5c3 73b4 rsb r3, r3, #360 ; 0x168 - 8018274: f8c7 3148 str.w r3, [r7, #328] ; 0x148 - 8018278: e006 b.n 8018288 + 80181d2: f8b7 2164 ldrh.w r2, [r7, #356] ; 0x164 + 80181d6: f8b7 3160 ldrh.w r3, [r7, #352] ; 0x160 + 80181da: 1ad3 subs r3, r2, r3 + 80181dc: f5c3 73b4 rsb r3, r3, #360 ; 0x168 + 80181e0: f8c7 3148 str.w r3, [r7, #328] ; 0x148 + 80181e4: e006 b.n 80181f4 } else { angle_gap = start_angle - end_angle; - 801827a: f8b7 2160 ldrh.w r2, [r7, #352] ; 0x160 - 801827e: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 - 8018282: 1ad3 subs r3, r2, r3 - 8018284: f8c7 3148 str.w r3, [r7, #328] ; 0x148 + 80181e6: f8b7 2160 ldrh.w r2, [r7, #352] ; 0x160 + 80181ea: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 + 80181ee: 1ad3 subs r3, r2, r3 + 80181f0: f8c7 3148 str.w r3, [r7, #328] ; 0x148 } const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 8018288: f507 73a8 add.w r3, r7, #336 ; 0x150 - 801828c: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 - 8018290: 681b ldr r3, [r3, #0] - 8018292: 689b ldr r3, [r3, #8] - 8018294: f8c7 3140 str.w r3, [r7, #320] ; 0x140 + 80181f4: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80181f8: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 + 80181fc: 681b ldr r3, [r3, #0] + 80181fe: 689b ldr r3, [r3, #8] + 8018200: f8c7 3140 str.w r3, [r7, #320] ; 0x140 if(angle_gap > SPLIT_ANGLE_GAP_LIMIT && radius > SPLIT_RADIUS_LIMIT) { - 8018298: f8d7 3148 ldr.w r3, [r7, #328] ; 0x148 - 801829c: 2b3c cmp r3, #60 ; 0x3c - 801829e: dd7f ble.n 80183a0 - 80182a0: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80182a4: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e - 80182a8: 881b ldrh r3, [r3, #0] - 80182aa: 2b0a cmp r3, #10 - 80182ac: d978 bls.n 80183a0 + 8018204: f8d7 3148 ldr.w r3, [r7, #328] ; 0x148 + 8018208: 2b3c cmp r3, #60 ; 0x3c + 801820a: dd7f ble.n 801830c + 801820c: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018210: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e + 8018214: 881b ldrh r3, [r3, #0] + 8018216: 2b0a cmp r3, #10 + 8018218: d978 bls.n 801830c /*Handle each quarter individually and skip which is empty*/ quarter_draw_dsc_t q_dsc; q_dsc.center = center; + 801821a: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801821e: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 8018222: f507 72a8 add.w r2, r7, #336 ; 0x150 + 8018226: f5a2 72a6 sub.w r2, r2, #332 ; 0x14c + 801822a: 6812 ldr r2, [r2, #0] + 801822c: 601a str r2, [r3, #0] + q_dsc.radius = radius; + 801822e: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018232: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e + 8018236: f9b3 2000 ldrsh.w r2, [r3] + 801823a: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801823e: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 8018242: 809a strh r2, [r3, #4] + q_dsc.start_angle = start_angle; + 8018244: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018248: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 801824c: f8b7 2160 ldrh.w r2, [r7, #352] ; 0x160 + 8018250: 80da strh r2, [r3, #6] + q_dsc.end_angle = end_angle; + 8018252: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018256: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 801825a: f8b7 2164 ldrh.w r2, [r7, #356] ; 0x164 + 801825e: 811a strh r2, [r3, #8] + q_dsc.start_quarter = (start_angle / 90) & 0x3; + 8018260: f8b7 3160 ldrh.w r3, [r7, #352] ; 0x160 + 8018264: 085b lsrs r3, r3, #1 + 8018266: 4a28 ldr r2, [pc, #160] ; (8018308 ) + 8018268: fba2 2303 umull r2, r3, r2, r3 + 801826c: 095b lsrs r3, r3, #5 + 801826e: b29b uxth r3, r3 + 8018270: f003 0303 and.w r3, r3, #3 + 8018274: b29a uxth r2, r3 + 8018276: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801827a: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 801827e: 815a strh r2, [r3, #10] + q_dsc.end_quarter = (end_angle / 90) & 0x3; + 8018280: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 + 8018284: 085b lsrs r3, r3, #1 + 8018286: 4a20 ldr r2, [pc, #128] ; (8018308 ) + 8018288: fba2 2303 umull r2, r3, r2, r3 + 801828c: 095b lsrs r3, r3, #5 + 801828e: b29b uxth r3, r3 + 8018290: f003 0303 and.w r3, r3, #3 + 8018294: b29a uxth r2, r3 + 8018296: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801829a: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 801829e: 819a strh r2, [r3, #12] + q_dsc.width = width; + 80182a0: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80182a4: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 80182a8: f8b7 214e ldrh.w r2, [r7, #334] ; 0x14e + 80182ac: 81da strh r2, [r3, #14] + q_dsc.draw_dsc = &cir_dsc; 80182ae: f507 73a8 add.w r3, r7, #336 ; 0x150 80182b2: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 80182b6: f507 72a8 add.w r2, r7, #336 ; 0x150 - 80182ba: f5a2 72a6 sub.w r2, r2, #332 ; 0x14c - 80182be: 6812 ldr r2, [r2, #0] - 80182c0: 601a str r2, [r3, #0] - q_dsc.radius = radius; - 80182c2: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80182c6: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e - 80182ca: f9b3 2000 ldrsh.w r2, [r3] - 80182ce: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80182d2: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 80182d6: 809a strh r2, [r3, #4] - q_dsc.start_angle = start_angle; - 80182d8: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80182dc: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 80182e0: f8b7 2160 ldrh.w r2, [r7, #352] ; 0x160 - 80182e4: 80da strh r2, [r3, #6] - q_dsc.end_angle = end_angle; - 80182e6: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80182ea: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 80182ee: f8b7 2164 ldrh.w r2, [r7, #356] ; 0x164 - 80182f2: 811a strh r2, [r3, #8] - q_dsc.start_quarter = (start_angle / 90) & 0x3; - 80182f4: f8b7 3160 ldrh.w r3, [r7, #352] ; 0x160 - 80182f8: 085b lsrs r3, r3, #1 - 80182fa: 4a28 ldr r2, [pc, #160] ; (801839c ) - 80182fc: fba2 2303 umull r2, r3, r2, r3 - 8018300: 095b lsrs r3, r3, #5 - 8018302: b29b uxth r3, r3 - 8018304: f003 0303 and.w r3, r3, #3 - 8018308: b29a uxth r2, r3 - 801830a: f507 73a8 add.w r3, r7, #336 ; 0x150 - 801830e: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 8018312: 815a strh r2, [r3, #10] - q_dsc.end_quarter = (end_angle / 90) & 0x3; - 8018314: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 - 8018318: 085b lsrs r3, r3, #1 - 801831a: 4a20 ldr r2, [pc, #128] ; (801839c ) - 801831c: fba2 2303 umull r2, r3, r2, r3 - 8018320: 095b lsrs r3, r3, #5 - 8018322: b29b uxth r3, r3 - 8018324: f003 0303 and.w r3, r3, #3 - 8018328: b29a uxth r2, r3 - 801832a: f507 73a8 add.w r3, r7, #336 ; 0x150 - 801832e: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 8018332: 819a strh r2, [r3, #12] - q_dsc.width = width; - 8018334: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018338: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 801833c: f8b7 214e ldrh.w r2, [r7, #334] ; 0x14e - 8018340: 81da strh r2, [r3, #14] - q_dsc.draw_dsc = &cir_dsc; - 8018342: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018346: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 801834a: f507 7282 add.w r2, r7, #260 ; 0x104 - 801834e: 611a str r2, [r3, #16] + 80182b6: f507 7282 add.w r2, r7, #260 ; 0x104 + 80182ba: 611a str r2, [r3, #16] q_dsc.draw_area = &area_out; - 8018350: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018354: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 8018358: f107 02fc add.w r2, r7, #252 ; 0xfc - 801835c: 615a str r2, [r3, #20] + 80182bc: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80182c0: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 80182c4: f107 02fc add.w r2, r7, #252 ; 0xfc + 80182c8: 615a str r2, [r3, #20] q_dsc.draw_ctx = draw_ctx; - 801835e: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018362: f5a3 738a sub.w r3, r3, #276 ; 0x114 - 8018366: f507 72a8 add.w r2, r7, #336 ; 0x150 - 801836a: f5a2 72a2 sub.w r2, r2, #324 ; 0x144 - 801836e: 6812 ldr r2, [r2, #0] - 8018370: 619a str r2, [r3, #24] + 80182ca: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80182ce: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 80182d2: f507 72a8 add.w r2, r7, #336 ; 0x150 + 80182d6: f5a2 72a2 sub.w r2, r2, #324 ; 0x144 + 80182da: 6812 ldr r2, [r2, #0] + 80182dc: 619a str r2, [r3, #24] draw_quarter_0(&q_dsc); - 8018372: f107 033c add.w r3, r7, #60 ; 0x3c - 8018376: 4618 mov r0, r3 - 8018378: f000 f9aa bl 80186d0 + 80182de: f107 033c add.w r3, r7, #60 ; 0x3c + 80182e2: 4618 mov r0, r3 + 80182e4: f000 f9aa bl 801863c draw_quarter_1(&q_dsc); - 801837c: f107 033c add.w r3, r7, #60 ; 0x3c - 8018380: 4618 mov r0, r3 - 8018382: f000 fb97 bl 8018ab4 + 80182e8: f107 033c add.w r3, r7, #60 ; 0x3c + 80182ec: 4618 mov r0, r3 + 80182ee: f000 fb97 bl 8018a20 draw_quarter_2(&q_dsc); - 8018386: f107 033c add.w r3, r7, #60 ; 0x3c - 801838a: 4618 mov r0, r3 - 801838c: f000 fd8c bl 8018ea8 + 80182f2: f107 033c add.w r3, r7, #60 ; 0x3c + 80182f6: 4618 mov r0, r3 + 80182f8: f000 fd8c bl 8018e14 draw_quarter_3(&q_dsc); - 8018390: f107 033c add.w r3, r7, #60 ; 0x3c - 8018394: 4618 mov r0, r3 - 8018396: f000 ff8a bl 80192ae + 80182fc: f107 033c add.w r3, r7, #60 ; 0x3c + 8018300: 4618 mov r0, r3 + 8018302: f000 ff8a bl 801921a if(angle_gap > SPLIT_ANGLE_GAP_LIMIT && radius > SPLIT_RADIUS_LIMIT) { - 801839a: e00c b.n 80183b6 - 801839c: b60b60b7 .word 0xb60b60b7 + 8018306: e00c b.n 8018322 + 8018308: b60b60b7 .word 0xb60b60b7 } else { lv_draw_rect(draw_ctx, &cir_dsc, &area_out); - 80183a0: f107 02fc add.w r2, r7, #252 ; 0xfc - 80183a4: f507 7182 add.w r1, r7, #260 ; 0x104 - 80183a8: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80183ac: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 - 80183b0: 6818 ldr r0, [r3, #0] - 80183b2: f7fd fa61 bl 8015878 + 801830c: f107 02fc add.w r2, r7, #252 ; 0xfc + 8018310: f507 7182 add.w r1, r7, #260 ; 0x104 + 8018314: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018318: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 + 801831c: 6818 ldr r0, [r3, #0] + 801831e: f7fd fa61 bl 80157e4 } lv_draw_mask_free_param(&mask_angle_param); - 80183b6: f107 0358 add.w r3, r7, #88 ; 0x58 - 80183ba: 4618 mov r0, r3 - 80183bc: f7fa ff06 bl 80131cc + 8018322: f107 0358 add.w r3, r7, #88 ; 0x58 + 8018326: 4618 mov r0, r3 + 8018328: f7fa ff06 bl 8013138 lv_draw_mask_free_param(&mask_out_param); - 80183c0: f107 03c4 add.w r3, r7, #196 ; 0xc4 - 80183c4: 4618 mov r0, r3 - 80183c6: f7fa ff01 bl 80131cc + 801832c: f107 03c4 add.w r3, r7, #196 ; 0xc4 + 8018330: 4618 mov r0, r3 + 8018332: f7fa ff01 bl 8013138 lv_draw_mask_free_param(&mask_in_param); - 80183ca: f107 03dc add.w r3, r7, #220 ; 0xdc - 80183ce: 4618 mov r0, r3 - 80183d0: f7fa fefc bl 80131cc + 8018336: f107 03dc add.w r3, r7, #220 ; 0xdc + 801833a: 4618 mov r0, r3 + 801833c: f7fa fefc bl 8013138 lv_draw_mask_remove_id(mask_angle_id); - 80183d4: f9b7 3144 ldrsh.w r3, [r7, #324] ; 0x144 - 80183d8: 4618 mov r0, r3 - 80183da: f7fa fea7 bl 801312c + 8018340: f9b7 3144 ldrsh.w r3, [r7, #324] ; 0x144 + 8018344: 4618 mov r0, r3 + 8018346: f7fa fea7 bl 8013098 lv_draw_mask_remove_id(mask_out_id); - 80183de: f9b7 3146 ldrsh.w r3, [r7, #326] ; 0x146 - 80183e2: 4618 mov r0, r3 - 80183e4: f7fa fea2 bl 801312c + 801834a: f9b7 3146 ldrsh.w r3, [r7, #326] ; 0x146 + 801834e: 4618 mov r0, r3 + 8018350: f7fa fea2 bl 8013098 if(mask_in_id != LV_MASK_ID_INV) lv_draw_mask_remove_id(mask_in_id); - 80183e8: f9b7 314c ldrsh.w r3, [r7, #332] ; 0x14c - 80183ec: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 80183f0: d004 beq.n 80183fc - 80183f2: f9b7 314c ldrsh.w r3, [r7, #332] ; 0x14c - 80183f6: 4618 mov r0, r3 - 80183f8: f7fa fe98 bl 801312c + 8018354: f9b7 314c ldrsh.w r3, [r7, #332] ; 0x14c + 8018358: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 801835c: d004 beq.n 8018368 + 801835e: f9b7 314c ldrsh.w r3, [r7, #332] ; 0x14c + 8018362: 4618 mov r0, r3 + 8018364: f7fa fe98 bl 8013098 if(dsc->rounded) { - 80183fc: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018400: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 8018404: 681b ldr r3, [r3, #0] - 8018406: 7b5b ldrb r3, [r3, #13] - 8018408: f003 0304 and.w r3, r3, #4 - 801840c: b2db uxtb r3, r3 - 801840e: 2b00 cmp r3, #0 - 8018410: f000 815a beq.w 80186c8 + 8018368: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801836c: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 8018370: 681b ldr r3, [r3, #0] + 8018372: 7b5b ldrb r3, [r3, #13] + 8018374: f003 0304 and.w r3, r3, #4 + 8018378: b2db uxtb r3, r3 + 801837a: 2b00 cmp r3, #0 + 801837c: f000 815a beq.w 8018634 lv_draw_mask_radius_param_t mask_end_param; lv_area_t round_area; get_rounded_area(start_angle, radius, width, &round_area); - 8018414: f9b7 0160 ldrsh.w r0, [r7, #352] ; 0x160 - 8018418: f507 73a8 add.w r3, r7, #336 ; 0x150 - 801841c: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e - 8018420: f9b3 1000 ldrsh.w r1, [r3] - 8018424: f8b7 314e ldrh.w r3, [r7, #334] ; 0x14e - 8018428: b2da uxtb r2, r3 - 801842a: f107 031c add.w r3, r7, #28 - 801842e: f001 f938 bl 80196a2 + 8018380: f9b7 0160 ldrsh.w r0, [r7, #352] ; 0x160 + 8018384: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018388: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e + 801838c: f9b3 1000 ldrsh.w r1, [r3] + 8018390: f8b7 314e ldrh.w r3, [r7, #334] ; 0x14e + 8018394: b2da uxtb r2, r3 + 8018396: f107 031c add.w r3, r7, #28 + 801839a: f001 f938 bl 801960e round_area.x1 += center->x; - 8018432: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018436: f5a3 739a sub.w r3, r3, #308 ; 0x134 - 801843a: f9b3 3000 ldrsh.w r3, [r3] - 801843e: b29a uxth r2, r3 - 8018440: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018444: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c - 8018448: 681b ldr r3, [r3, #0] - 801844a: f9b3 3000 ldrsh.w r3, [r3] - 801844e: b29b uxth r3, r3 - 8018450: 4413 add r3, r2 - 8018452: b29b uxth r3, r3 - 8018454: b21a sxth r2, r3 - 8018456: f507 73a8 add.w r3, r7, #336 ; 0x150 - 801845a: f5a3 739a sub.w r3, r3, #308 ; 0x134 - 801845e: 801a strh r2, [r3, #0] + 801839e: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80183a2: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 80183a6: f9b3 3000 ldrsh.w r3, [r3] + 80183aa: b29a uxth r2, r3 + 80183ac: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80183b0: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c + 80183b4: 681b ldr r3, [r3, #0] + 80183b6: f9b3 3000 ldrsh.w r3, [r3] + 80183ba: b29b uxth r3, r3 + 80183bc: 4413 add r3, r2 + 80183be: b29b uxth r3, r3 + 80183c0: b21a sxth r2, r3 + 80183c2: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80183c6: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 80183ca: 801a strh r2, [r3, #0] round_area.x2 += center->x; - 8018460: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018464: f5a3 739a sub.w r3, r3, #308 ; 0x134 - 8018468: f9b3 3004 ldrsh.w r3, [r3, #4] - 801846c: b29a uxth r2, r3 - 801846e: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018472: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c - 8018476: 681b ldr r3, [r3, #0] - 8018478: f9b3 3000 ldrsh.w r3, [r3] - 801847c: b29b uxth r3, r3 - 801847e: 4413 add r3, r2 - 8018480: b29b uxth r3, r3 - 8018482: b21a sxth r2, r3 - 8018484: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018488: f5a3 739a sub.w r3, r3, #308 ; 0x134 - 801848c: 809a strh r2, [r3, #4] + 80183cc: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80183d0: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 80183d4: f9b3 3004 ldrsh.w r3, [r3, #4] + 80183d8: b29a uxth r2, r3 + 80183da: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80183de: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c + 80183e2: 681b ldr r3, [r3, #0] + 80183e4: f9b3 3000 ldrsh.w r3, [r3] + 80183e8: b29b uxth r3, r3 + 80183ea: 4413 add r3, r2 + 80183ec: b29b uxth r3, r3 + 80183ee: b21a sxth r2, r3 + 80183f0: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80183f4: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 80183f8: 809a strh r2, [r3, #4] round_area.y1 += center->y; - 801848e: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018492: f5a3 739a sub.w r3, r3, #308 ; 0x134 - 8018496: f9b3 3002 ldrsh.w r3, [r3, #2] - 801849a: b29a uxth r2, r3 - 801849c: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80184a0: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c - 80184a4: 681b ldr r3, [r3, #0] - 80184a6: f9b3 3002 ldrsh.w r3, [r3, #2] - 80184aa: b29b uxth r3, r3 - 80184ac: 4413 add r3, r2 - 80184ae: b29b uxth r3, r3 - 80184b0: b21a sxth r2, r3 - 80184b2: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80184b6: f5a3 739a sub.w r3, r3, #308 ; 0x134 - 80184ba: 805a strh r2, [r3, #2] + 80183fa: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80183fe: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 8018402: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018406: b29a uxth r2, r3 + 8018408: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801840c: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c + 8018410: 681b ldr r3, [r3, #0] + 8018412: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018416: b29b uxth r3, r3 + 8018418: 4413 add r3, r2 + 801841a: b29b uxth r3, r3 + 801841c: b21a sxth r2, r3 + 801841e: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018422: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 8018426: 805a strh r2, [r3, #2] round_area.y2 += center->y; - 80184bc: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80184c0: f5a3 739a sub.w r3, r3, #308 ; 0x134 - 80184c4: f9b3 3006 ldrsh.w r3, [r3, #6] - 80184c8: b29a uxth r2, r3 - 80184ca: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80184ce: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c - 80184d2: 681b ldr r3, [r3, #0] - 80184d4: f9b3 3002 ldrsh.w r3, [r3, #2] - 80184d8: b29b uxth r3, r3 - 80184da: 4413 add r3, r2 - 80184dc: b29b uxth r3, r3 - 80184de: b21a sxth r2, r3 - 80184e0: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80184e4: f5a3 739a sub.w r3, r3, #308 ; 0x134 - 80184e8: 80da strh r2, [r3, #6] + 8018428: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801842c: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 8018430: f9b3 3006 ldrsh.w r3, [r3, #6] + 8018434: b29a uxth r2, r3 + 8018436: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801843a: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c + 801843e: 681b ldr r3, [r3, #0] + 8018440: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018444: b29b uxth r3, r3 + 8018446: 4413 add r3, r2 + 8018448: b29b uxth r3, r3 + 801844a: b21a sxth r2, r3 + 801844c: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018450: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 8018454: 80da strh r2, [r3, #6] lv_area_t clip_area2; if(_lv_area_intersect(&clip_area2, clip_area_ori, &round_area)) { - 80184ea: f107 021c add.w r2, r7, #28 - 80184ee: f107 0314 add.w r3, r7, #20 - 80184f2: f8d7 1140 ldr.w r1, [r7, #320] ; 0x140 - 80184f6: 4618 mov r0, r3 - 80184f8: f018 fdd6 bl 80310a8 <_lv_area_intersect> - 80184fc: 4603 mov r3, r0 - 80184fe: 2b00 cmp r3, #0 - 8018500: d02e beq.n 8018560 + 8018456: f107 021c add.w r2, r7, #28 + 801845a: f107 0314 add.w r3, r7, #20 + 801845e: f8d7 1140 ldr.w r1, [r7, #320] ; 0x140 + 8018462: 4618 mov r0, r3 + 8018464: f018 fdd6 bl 8031014 <_lv_area_intersect> + 8018468: 4603 mov r3, r0 + 801846a: 2b00 cmp r3, #0 + 801846c: d02e beq.n 80184cc lv_draw_mask_radius_init(&mask_end_param, &round_area, LV_RADIUS_CIRCLE, false); - 8018502: f107 011c add.w r1, r7, #28 - 8018506: f107 0024 add.w r0, r7, #36 ; 0x24 - 801850a: 2300 movs r3, #0 - 801850c: f647 72ff movw r2, #32767 ; 0x7fff - 8018510: f7fb f96e bl 80137f0 + 801846e: f107 011c add.w r1, r7, #28 + 8018472: f107 0024 add.w r0, r7, #36 ; 0x24 + 8018476: 2300 movs r3, #0 + 8018478: f647 72ff movw r2, #32767 ; 0x7fff + 801847c: f7fb f96e bl 801375c int16_t mask_end_id = lv_draw_mask_add(&mask_end_param, NULL); - 8018514: f107 0324 add.w r3, r7, #36 ; 0x24 - 8018518: 2100 movs r1, #0 - 801851a: 4618 mov r0, r3 - 801851c: f7fa fd92 bl 8013044 - 8018520: 4603 mov r3, r0 - 8018522: f8a7 313e strh.w r3, [r7, #318] ; 0x13e + 8018480: f107 0324 add.w r3, r7, #36 ; 0x24 + 8018484: 2100 movs r1, #0 + 8018486: 4618 mov r0, r3 + 8018488: f7fa fd92 bl 8012fb0 + 801848c: 4603 mov r3, r0 + 801848e: f8a7 313e strh.w r3, [r7, #318] ; 0x13e draw_ctx->clip_area = &clip_area2; - 8018526: f507 73a8 add.w r3, r7, #336 ; 0x150 - 801852a: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 - 801852e: 681b ldr r3, [r3, #0] - 8018530: f107 0214 add.w r2, r7, #20 - 8018534: 609a str r2, [r3, #8] + 8018492: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018496: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 + 801849a: 681b ldr r3, [r3, #0] + 801849c: f107 0214 add.w r2, r7, #20 + 80184a0: 609a str r2, [r3, #8] lv_draw_rect(draw_ctx, &cir_dsc, &area_out); - 8018536: f107 02fc add.w r2, r7, #252 ; 0xfc - 801853a: f507 7182 add.w r1, r7, #260 ; 0x104 - 801853e: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018542: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 - 8018546: 6818 ldr r0, [r3, #0] - 8018548: f7fd f996 bl 8015878 + 80184a2: f107 02fc add.w r2, r7, #252 ; 0xfc + 80184a6: f507 7182 add.w r1, r7, #260 ; 0x104 + 80184aa: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80184ae: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 + 80184b2: 6818 ldr r0, [r3, #0] + 80184b4: f7fd f996 bl 80157e4 lv_draw_mask_remove_id(mask_end_id); - 801854c: f9b7 313e ldrsh.w r3, [r7, #318] ; 0x13e - 8018550: 4618 mov r0, r3 - 8018552: f7fa fdeb bl 801312c + 80184b8: f9b7 313e ldrsh.w r3, [r7, #318] ; 0x13e + 80184bc: 4618 mov r0, r3 + 80184be: f7fa fdeb bl 8013098 lv_draw_mask_free_param(&mask_end_param); - 8018556: f107 0324 add.w r3, r7, #36 ; 0x24 - 801855a: 4618 mov r0, r3 - 801855c: f7fa fe36 bl 80131cc + 80184c2: f107 0324 add.w r3, r7, #36 ; 0x24 + 80184c6: 4618 mov r0, r3 + 80184c8: f7fa fe36 bl 8013138 } get_rounded_area(end_angle, radius, width, &round_area); - 8018560: f9b7 0164 ldrsh.w r0, [r7, #356] ; 0x164 - 8018564: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018568: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e - 801856c: f9b3 1000 ldrsh.w r1, [r3] - 8018570: f8b7 314e ldrh.w r3, [r7, #334] ; 0x14e - 8018574: b2da uxtb r2, r3 - 8018576: f107 031c add.w r3, r7, #28 - 801857a: f001 f892 bl 80196a2 + 80184cc: f9b7 0164 ldrsh.w r0, [r7, #356] ; 0x164 + 80184d0: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80184d4: f5a3 73a7 sub.w r3, r3, #334 ; 0x14e + 80184d8: f9b3 1000 ldrsh.w r1, [r3] + 80184dc: f8b7 314e ldrh.w r3, [r7, #334] ; 0x14e + 80184e0: b2da uxtb r2, r3 + 80184e2: f107 031c add.w r3, r7, #28 + 80184e6: f001 f892 bl 801960e round_area.x1 += center->x; - 801857e: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018582: f5a3 739a sub.w r3, r3, #308 ; 0x134 - 8018586: f9b3 3000 ldrsh.w r3, [r3] - 801858a: b29a uxth r2, r3 - 801858c: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018590: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c - 8018594: 681b ldr r3, [r3, #0] - 8018596: f9b3 3000 ldrsh.w r3, [r3] - 801859a: b29b uxth r3, r3 - 801859c: 4413 add r3, r2 - 801859e: b29b uxth r3, r3 - 80185a0: b21a sxth r2, r3 - 80185a2: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80185a6: f5a3 739a sub.w r3, r3, #308 ; 0x134 - 80185aa: 801a strh r2, [r3, #0] + 80184ea: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80184ee: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 80184f2: f9b3 3000 ldrsh.w r3, [r3] + 80184f6: b29a uxth r2, r3 + 80184f8: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80184fc: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c + 8018500: 681b ldr r3, [r3, #0] + 8018502: f9b3 3000 ldrsh.w r3, [r3] + 8018506: b29b uxth r3, r3 + 8018508: 4413 add r3, r2 + 801850a: b29b uxth r3, r3 + 801850c: b21a sxth r2, r3 + 801850e: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018512: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 8018516: 801a strh r2, [r3, #0] round_area.x2 += center->x; - 80185ac: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80185b0: f5a3 739a sub.w r3, r3, #308 ; 0x134 - 80185b4: f9b3 3004 ldrsh.w r3, [r3, #4] - 80185b8: b29a uxth r2, r3 - 80185ba: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80185be: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c - 80185c2: 681b ldr r3, [r3, #0] - 80185c4: f9b3 3000 ldrsh.w r3, [r3] - 80185c8: b29b uxth r3, r3 - 80185ca: 4413 add r3, r2 - 80185cc: b29b uxth r3, r3 - 80185ce: b21a sxth r2, r3 - 80185d0: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80185d4: f5a3 739a sub.w r3, r3, #308 ; 0x134 - 80185d8: 809a strh r2, [r3, #4] + 8018518: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801851c: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 8018520: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018524: b29a uxth r2, r3 + 8018526: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801852a: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c + 801852e: 681b ldr r3, [r3, #0] + 8018530: f9b3 3000 ldrsh.w r3, [r3] + 8018534: b29b uxth r3, r3 + 8018536: 4413 add r3, r2 + 8018538: b29b uxth r3, r3 + 801853a: b21a sxth r2, r3 + 801853c: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018540: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 8018544: 809a strh r2, [r3, #4] round_area.y1 += center->y; - 80185da: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80185de: f5a3 739a sub.w r3, r3, #308 ; 0x134 - 80185e2: f9b3 3002 ldrsh.w r3, [r3, #2] - 80185e6: b29a uxth r2, r3 - 80185e8: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80185ec: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c - 80185f0: 681b ldr r3, [r3, #0] - 80185f2: f9b3 3002 ldrsh.w r3, [r3, #2] - 80185f6: b29b uxth r3, r3 - 80185f8: 4413 add r3, r2 - 80185fa: b29b uxth r3, r3 - 80185fc: b21a sxth r2, r3 - 80185fe: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018602: f5a3 739a sub.w r3, r3, #308 ; 0x134 - 8018606: 805a strh r2, [r3, #2] + 8018546: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801854a: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 801854e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018552: b29a uxth r2, r3 + 8018554: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018558: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c + 801855c: 681b ldr r3, [r3, #0] + 801855e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018562: b29b uxth r3, r3 + 8018564: 4413 add r3, r2 + 8018566: b29b uxth r3, r3 + 8018568: b21a sxth r2, r3 + 801856a: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801856e: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 8018572: 805a strh r2, [r3, #2] round_area.y2 += center->y; - 8018608: f507 73a8 add.w r3, r7, #336 ; 0x150 - 801860c: f5a3 739a sub.w r3, r3, #308 ; 0x134 - 8018610: f9b3 3006 ldrsh.w r3, [r3, #6] - 8018614: b29a uxth r2, r3 - 8018616: f507 73a8 add.w r3, r7, #336 ; 0x150 - 801861a: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c - 801861e: 681b ldr r3, [r3, #0] - 8018620: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018624: b29b uxth r3, r3 - 8018626: 4413 add r3, r2 - 8018628: b29b uxth r3, r3 - 801862a: b21a sxth r2, r3 - 801862c: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018630: f5a3 739a sub.w r3, r3, #308 ; 0x134 - 8018634: 80da strh r2, [r3, #6] + 8018574: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018578: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 801857c: f9b3 3006 ldrsh.w r3, [r3, #6] + 8018580: b29a uxth r2, r3 + 8018582: f507 73a8 add.w r3, r7, #336 ; 0x150 + 8018586: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c + 801858a: 681b ldr r3, [r3, #0] + 801858c: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018590: b29b uxth r3, r3 + 8018592: 4413 add r3, r2 + 8018594: b29b uxth r3, r3 + 8018596: b21a sxth r2, r3 + 8018598: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801859c: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 80185a0: 80da strh r2, [r3, #6] if(_lv_area_intersect(&clip_area2, clip_area_ori, &round_area)) { - 8018636: f107 021c add.w r2, r7, #28 - 801863a: f107 0314 add.w r3, r7, #20 - 801863e: f8d7 1140 ldr.w r1, [r7, #320] ; 0x140 - 8018642: 4618 mov r0, r3 - 8018644: f018 fd30 bl 80310a8 <_lv_area_intersect> - 8018648: 4603 mov r3, r0 - 801864a: 2b00 cmp r3, #0 - 801864c: d02e beq.n 80186ac + 80185a2: f107 021c add.w r2, r7, #28 + 80185a6: f107 0314 add.w r3, r7, #20 + 80185aa: f8d7 1140 ldr.w r1, [r7, #320] ; 0x140 + 80185ae: 4618 mov r0, r3 + 80185b0: f018 fd30 bl 8031014 <_lv_area_intersect> + 80185b4: 4603 mov r3, r0 + 80185b6: 2b00 cmp r3, #0 + 80185b8: d02e beq.n 8018618 lv_draw_mask_radius_init(&mask_end_param, &round_area, LV_RADIUS_CIRCLE, false); - 801864e: f107 011c add.w r1, r7, #28 - 8018652: f107 0024 add.w r0, r7, #36 ; 0x24 - 8018656: 2300 movs r3, #0 - 8018658: f647 72ff movw r2, #32767 ; 0x7fff - 801865c: f7fb f8c8 bl 80137f0 + 80185ba: f107 011c add.w r1, r7, #28 + 80185be: f107 0024 add.w r0, r7, #36 ; 0x24 + 80185c2: 2300 movs r3, #0 + 80185c4: f647 72ff movw r2, #32767 ; 0x7fff + 80185c8: f7fb f8c8 bl 801375c int16_t mask_end_id = lv_draw_mask_add(&mask_end_param, NULL); - 8018660: f107 0324 add.w r3, r7, #36 ; 0x24 - 8018664: 2100 movs r1, #0 - 8018666: 4618 mov r0, r3 - 8018668: f7fa fcec bl 8013044 - 801866c: 4603 mov r3, r0 - 801866e: f8a7 313c strh.w r3, [r7, #316] ; 0x13c + 80185cc: f107 0324 add.w r3, r7, #36 ; 0x24 + 80185d0: 2100 movs r1, #0 + 80185d2: 4618 mov r0, r3 + 80185d4: f7fa fcec bl 8012fb0 + 80185d8: 4603 mov r3, r0 + 80185da: f8a7 313c strh.w r3, [r7, #316] ; 0x13c draw_ctx->clip_area = &clip_area2; - 8018672: f507 73a8 add.w r3, r7, #336 ; 0x150 - 8018676: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 - 801867a: 681b ldr r3, [r3, #0] - 801867c: f107 0214 add.w r2, r7, #20 - 8018680: 609a str r2, [r3, #8] + 80185de: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80185e2: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 + 80185e6: 681b ldr r3, [r3, #0] + 80185e8: f107 0214 add.w r2, r7, #20 + 80185ec: 609a str r2, [r3, #8] lv_draw_rect(draw_ctx, &cir_dsc, &area_out); - 8018682: f107 02fc add.w r2, r7, #252 ; 0xfc - 8018686: f507 7182 add.w r1, r7, #260 ; 0x104 - 801868a: f507 73a8 add.w r3, r7, #336 ; 0x150 - 801868e: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 - 8018692: 6818 ldr r0, [r3, #0] - 8018694: f7fd f8f0 bl 8015878 + 80185ee: f107 02fc add.w r2, r7, #252 ; 0xfc + 80185f2: f507 7182 add.w r1, r7, #260 ; 0x104 + 80185f6: f507 73a8 add.w r3, r7, #336 ; 0x150 + 80185fa: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 + 80185fe: 6818 ldr r0, [r3, #0] + 8018600: f7fd f8f0 bl 80157e4 lv_draw_mask_remove_id(mask_end_id); - 8018698: f9b7 313c ldrsh.w r3, [r7, #316] ; 0x13c - 801869c: 4618 mov r0, r3 - 801869e: f7fa fd45 bl 801312c + 8018604: f9b7 313c ldrsh.w r3, [r7, #316] ; 0x13c + 8018608: 4618 mov r0, r3 + 801860a: f7fa fd45 bl 8013098 lv_draw_mask_free_param(&mask_end_param); - 80186a2: f107 0324 add.w r3, r7, #36 ; 0x24 - 80186a6: 4618 mov r0, r3 - 80186a8: f7fa fd90 bl 80131cc + 801860e: f107 0324 add.w r3, r7, #36 ; 0x24 + 8018612: 4618 mov r0, r3 + 8018614: f7fa fd90 bl 8013138 } draw_ctx->clip_area = clip_area_ori; - 80186ac: f507 73a8 add.w r3, r7, #336 ; 0x150 - 80186b0: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 - 80186b4: 681b ldr r3, [r3, #0] - 80186b6: f8d7 2140 ldr.w r2, [r7, #320] ; 0x140 - 80186ba: 609a str r2, [r3, #8] - 80186bc: e004 b.n 80186c8 + 8018618: f507 73a8 add.w r3, r7, #336 ; 0x150 + 801861c: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 + 8018620: 681b ldr r3, [r3, #0] + 8018622: f8d7 2140 ldr.w r2, [r7, #320] ; 0x140 + 8018626: 609a str r2, [r3, #8] + 8018628: e004 b.n 8018634 if(dsc->opa <= LV_OPA_MIN) return; - 80186be: bf00 nop - 80186c0: e002 b.n 80186c8 + 801862a: bf00 nop + 801862c: e002 b.n 8018634 if(dsc->width == 0) return; - 80186c2: bf00 nop - 80186c4: e000 b.n 80186c8 + 801862e: bf00 nop + 8018630: e000 b.n 8018634 if(start_angle == end_angle) return; - 80186c6: bf00 nop + 8018632: bf00 nop LV_UNUSED(start_angle); LV_UNUSED(end_angle); LV_UNUSED(draw_ctx); LV_UNUSED(dsc); #endif /*LV_DRAW_COMPLEX*/ } - 80186c8: f507 77aa add.w r7, r7, #340 ; 0x154 - 80186cc: 46bd mov sp, r7 - 80186ce: bd90 pop {r4, r7, pc} + 8018634: f507 77aa add.w r7, r7, #340 ; 0x154 + 8018638: 46bd mov sp, r7 + 801863a: bd90 pop {r4, r7, pc} -080186d0 : +0801863c : * STATIC FUNCTIONS **********************/ #if LV_DRAW_COMPLEX static void draw_quarter_0(quarter_draw_dsc_t * q) { - 80186d0: b590 push {r4, r7, lr} - 80186d2: b087 sub sp, #28 - 80186d4: af00 add r7, sp, #0 - 80186d6: 6078 str r0, [r7, #4] + 801863c: b590 push {r4, r7, lr} + 801863e: b087 sub sp, #28 + 8018640: af00 add r7, sp, #0 + 8018642: 6078 str r0, [r7, #4] const lv_area_t * clip_area_ori = q->draw_ctx->clip_area; - 80186d8: 687b ldr r3, [r7, #4] - 80186da: 699b ldr r3, [r3, #24] - 80186dc: 689b ldr r3, [r3, #8] - 80186de: 617b str r3, [r7, #20] + 8018644: 687b ldr r3, [r7, #4] + 8018646: 699b ldr r3, [r3, #24] + 8018648: 689b ldr r3, [r3, #8] + 801864a: 617b str r3, [r7, #20] lv_area_t quarter_area; if(q->start_quarter == 0 && q->end_quarter == 0 && q->start_angle < q->end_angle) { - 80186e0: 687b ldr r3, [r7, #4] - 80186e2: 895b ldrh r3, [r3, #10] - 80186e4: 2b00 cmp r3, #0 - 80186e6: f040 8097 bne.w 8018818 - 80186ea: 687b ldr r3, [r7, #4] - 80186ec: 899b ldrh r3, [r3, #12] - 80186ee: 2b00 cmp r3, #0 - 80186f0: f040 8092 bne.w 8018818 - 80186f4: 687b ldr r3, [r7, #4] - 80186f6: 88da ldrh r2, [r3, #6] - 80186f8: 687b ldr r3, [r7, #4] - 80186fa: 891b ldrh r3, [r3, #8] - 80186fc: 429a cmp r2, r3 - 80186fe: f080 808b bcs.w 8018818 + 801864c: 687b ldr r3, [r7, #4] + 801864e: 895b ldrh r3, [r3, #10] + 8018650: 2b00 cmp r3, #0 + 8018652: f040 8097 bne.w 8018784 + 8018656: 687b ldr r3, [r7, #4] + 8018658: 899b ldrh r3, [r3, #12] + 801865a: 2b00 cmp r3, #0 + 801865c: f040 8092 bne.w 8018784 + 8018660: 687b ldr r3, [r7, #4] + 8018662: 88da ldrh r2, [r3, #6] + 8018664: 687b ldr r3, [r7, #4] + 8018666: 891b ldrh r3, [r3, #8] + 8018668: 429a cmp r2, r3 + 801866a: f080 808b bcs.w 8018784 /*Small arc here*/ quarter_area.y1 = q->center->y + ((lv_trigo_sin(q->start_angle) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); - 8018702: 687b ldr r3, [r7, #4] - 8018704: 681b ldr r3, [r3, #0] - 8018706: f9b3 3002 ldrsh.w r3, [r3, #2] - 801870a: b29c uxth r4, r3 - 801870c: 687b ldr r3, [r7, #4] - 801870e: 88db ldrh r3, [r3, #6] - 8018710: b21b sxth r3, r3 - 8018712: 4618 mov r0, r3 - 8018714: f019 feda bl 80324cc - 8018718: 4603 mov r3, r0 - 801871a: 461a mov r2, r3 - 801871c: 687b ldr r3, [r7, #4] - 801871e: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018722: 4619 mov r1, r3 - 8018724: 687b ldr r3, [r7, #4] - 8018726: f9b3 300e ldrsh.w r3, [r3, #14] - 801872a: 1acb subs r3, r1, r3 - 801872c: fb02 f303 mul.w r3, r2, r3 - 8018730: 13db asrs r3, r3, #15 - 8018732: b29b uxth r3, r3 - 8018734: 4423 add r3, r4 - 8018736: b29b uxth r3, r3 - 8018738: b21b sxth r3, r3 - 801873a: 817b strh r3, [r7, #10] + 801866e: 687b ldr r3, [r7, #4] + 8018670: 681b ldr r3, [r3, #0] + 8018672: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018676: b29c uxth r4, r3 + 8018678: 687b ldr r3, [r7, #4] + 801867a: 88db ldrh r3, [r3, #6] + 801867c: b21b sxth r3, r3 + 801867e: 4618 mov r0, r3 + 8018680: f019 feda bl 8032438 + 8018684: 4603 mov r3, r0 + 8018686: 461a mov r2, r3 + 8018688: 687b ldr r3, [r7, #4] + 801868a: f9b3 3004 ldrsh.w r3, [r3, #4] + 801868e: 4619 mov r1, r3 + 8018690: 687b ldr r3, [r7, #4] + 8018692: f9b3 300e ldrsh.w r3, [r3, #14] + 8018696: 1acb subs r3, r1, r3 + 8018698: fb02 f303 mul.w r3, r2, r3 + 801869c: 13db asrs r3, r3, #15 + 801869e: b29b uxth r3, r3 + 80186a0: 4423 add r3, r4 + 80186a2: b29b uxth r3, r3 + 80186a4: b21b sxth r3, r3 + 80186a6: 817b strh r3, [r7, #10] quarter_area.x2 = q->center->x + ((lv_trigo_sin(q->start_angle + 90) * (q->radius)) >> LV_TRIGO_SHIFT); - 801873c: 687b ldr r3, [r7, #4] - 801873e: 681b ldr r3, [r3, #0] - 8018740: f9b3 3000 ldrsh.w r3, [r3] - 8018744: b29c uxth r4, r3 - 8018746: 687b ldr r3, [r7, #4] - 8018748: 88db ldrh r3, [r3, #6] - 801874a: 335a adds r3, #90 ; 0x5a - 801874c: b29b uxth r3, r3 - 801874e: b21b sxth r3, r3 - 8018750: 4618 mov r0, r3 - 8018752: f019 febb bl 80324cc - 8018756: 4603 mov r3, r0 - 8018758: 461a mov r2, r3 - 801875a: 687b ldr r3, [r7, #4] - 801875c: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018760: fb02 f303 mul.w r3, r2, r3 - 8018764: 13db asrs r3, r3, #15 - 8018766: b29b uxth r3, r3 - 8018768: 4423 add r3, r4 - 801876a: b29b uxth r3, r3 - 801876c: b21b sxth r3, r3 - 801876e: 81bb strh r3, [r7, #12] + 80186a8: 687b ldr r3, [r7, #4] + 80186aa: 681b ldr r3, [r3, #0] + 80186ac: f9b3 3000 ldrsh.w r3, [r3] + 80186b0: b29c uxth r4, r3 + 80186b2: 687b ldr r3, [r7, #4] + 80186b4: 88db ldrh r3, [r3, #6] + 80186b6: 335a adds r3, #90 ; 0x5a + 80186b8: b29b uxth r3, r3 + 80186ba: b21b sxth r3, r3 + 80186bc: 4618 mov r0, r3 + 80186be: f019 febb bl 8032438 + 80186c2: 4603 mov r3, r0 + 80186c4: 461a mov r2, r3 + 80186c6: 687b ldr r3, [r7, #4] + 80186c8: f9b3 3004 ldrsh.w r3, [r3, #4] + 80186cc: fb02 f303 mul.w r3, r2, r3 + 80186d0: 13db asrs r3, r3, #15 + 80186d2: b29b uxth r3, r3 + 80186d4: 4423 add r3, r4 + 80186d6: b29b uxth r3, r3 + 80186d8: b21b sxth r3, r3 + 80186da: 81bb strh r3, [r7, #12] quarter_area.y2 = q->center->y + ((lv_trigo_sin(q->end_angle) * q->radius) >> LV_TRIGO_SHIFT); - 8018770: 687b ldr r3, [r7, #4] - 8018772: 681b ldr r3, [r3, #0] - 8018774: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018778: b29c uxth r4, r3 - 801877a: 687b ldr r3, [r7, #4] - 801877c: 891b ldrh r3, [r3, #8] - 801877e: b21b sxth r3, r3 - 8018780: 4618 mov r0, r3 - 8018782: f019 fea3 bl 80324cc - 8018786: 4603 mov r3, r0 - 8018788: 461a mov r2, r3 - 801878a: 687b ldr r3, [r7, #4] - 801878c: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018790: fb02 f303 mul.w r3, r2, r3 - 8018794: 13db asrs r3, r3, #15 - 8018796: b29b uxth r3, r3 - 8018798: 4423 add r3, r4 - 801879a: b29b uxth r3, r3 - 801879c: b21b sxth r3, r3 - 801879e: 81fb strh r3, [r7, #14] + 80186dc: 687b ldr r3, [r7, #4] + 80186de: 681b ldr r3, [r3, #0] + 80186e0: f9b3 3002 ldrsh.w r3, [r3, #2] + 80186e4: b29c uxth r4, r3 + 80186e6: 687b ldr r3, [r7, #4] + 80186e8: 891b ldrh r3, [r3, #8] + 80186ea: b21b sxth r3, r3 + 80186ec: 4618 mov r0, r3 + 80186ee: f019 fea3 bl 8032438 + 80186f2: 4603 mov r3, r0 + 80186f4: 461a mov r2, r3 + 80186f6: 687b ldr r3, [r7, #4] + 80186f8: f9b3 3004 ldrsh.w r3, [r3, #4] + 80186fc: fb02 f303 mul.w r3, r2, r3 + 8018700: 13db asrs r3, r3, #15 + 8018702: b29b uxth r3, r3 + 8018704: 4423 add r3, r4 + 8018706: b29b uxth r3, r3 + 8018708: b21b sxth r3, r3 + 801870a: 81fb strh r3, [r7, #14] quarter_area.x1 = q->center->x + ((lv_trigo_sin(q->end_angle + 90) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); - 80187a0: 687b ldr r3, [r7, #4] - 80187a2: 681b ldr r3, [r3, #0] - 80187a4: f9b3 3000 ldrsh.w r3, [r3] - 80187a8: b29c uxth r4, r3 - 80187aa: 687b ldr r3, [r7, #4] - 80187ac: 891b ldrh r3, [r3, #8] - 80187ae: 335a adds r3, #90 ; 0x5a - 80187b0: b29b uxth r3, r3 - 80187b2: b21b sxth r3, r3 - 80187b4: 4618 mov r0, r3 - 80187b6: f019 fe89 bl 80324cc - 80187ba: 4603 mov r3, r0 - 80187bc: 461a mov r2, r3 - 80187be: 687b ldr r3, [r7, #4] - 80187c0: f9b3 3004 ldrsh.w r3, [r3, #4] - 80187c4: 4619 mov r1, r3 - 80187c6: 687b ldr r3, [r7, #4] - 80187c8: f9b3 300e ldrsh.w r3, [r3, #14] - 80187cc: 1acb subs r3, r1, r3 - 80187ce: fb02 f303 mul.w r3, r2, r3 - 80187d2: 13db asrs r3, r3, #15 - 80187d4: b29b uxth r3, r3 - 80187d6: 4423 add r3, r4 - 80187d8: b29b uxth r3, r3 - 80187da: b21b sxth r3, r3 - 80187dc: 813b strh r3, [r7, #8] + 801870c: 687b ldr r3, [r7, #4] + 801870e: 681b ldr r3, [r3, #0] + 8018710: f9b3 3000 ldrsh.w r3, [r3] + 8018714: b29c uxth r4, r3 + 8018716: 687b ldr r3, [r7, #4] + 8018718: 891b ldrh r3, [r3, #8] + 801871a: 335a adds r3, #90 ; 0x5a + 801871c: b29b uxth r3, r3 + 801871e: b21b sxth r3, r3 + 8018720: 4618 mov r0, r3 + 8018722: f019 fe89 bl 8032438 + 8018726: 4603 mov r3, r0 + 8018728: 461a mov r2, r3 + 801872a: 687b ldr r3, [r7, #4] + 801872c: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018730: 4619 mov r1, r3 + 8018732: 687b ldr r3, [r7, #4] + 8018734: f9b3 300e ldrsh.w r3, [r3, #14] + 8018738: 1acb subs r3, r1, r3 + 801873a: fb02 f303 mul.w r3, r2, r3 + 801873e: 13db asrs r3, r3, #15 + 8018740: b29b uxth r3, r3 + 8018742: 4423 add r3, r4 + 8018744: b29b uxth r3, r3 + 8018746: b21b sxth r3, r3 + 8018748: 813b strh r3, [r7, #8] bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); - 80187de: f107 0108 add.w r1, r7, #8 - 80187e2: f107 0308 add.w r3, r7, #8 - 80187e6: 697a ldr r2, [r7, #20] - 80187e8: 4618 mov r0, r3 - 80187ea: f018 fc5d bl 80310a8 <_lv_area_intersect> - 80187ee: 4603 mov r3, r0 - 80187f0: 74fb strb r3, [r7, #19] + 801874a: f107 0108 add.w r1, r7, #8 + 801874e: f107 0308 add.w r3, r7, #8 + 8018752: 697a ldr r2, [r7, #20] + 8018754: 4618 mov r0, r3 + 8018756: f018 fc5d bl 8031014 <_lv_area_intersect> + 801875a: 4603 mov r3, r0 + 801875c: 74fb strb r3, [r7, #19] if(ok) { - 80187f2: 7cfb ldrb r3, [r7, #19] - 80187f4: 2b00 cmp r3, #0 - 80187f6: f000 8152 beq.w 8018a9e + 801875e: 7cfb ldrb r3, [r7, #19] + 8018760: 2b00 cmp r3, #0 + 8018762: f000 8152 beq.w 8018a0a q->draw_ctx->clip_area = &quarter_area; - 80187fa: 687b ldr r3, [r7, #4] - 80187fc: 699b ldr r3, [r3, #24] - 80187fe: f107 0208 add.w r2, r7, #8 - 8018802: 609a str r2, [r3, #8] + 8018766: 687b ldr r3, [r7, #4] + 8018768: 699b ldr r3, [r3, #24] + 801876a: f107 0208 add.w r2, r7, #8 + 801876e: 609a str r2, [r3, #8] lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); - 8018804: 687b ldr r3, [r7, #4] - 8018806: 6998 ldr r0, [r3, #24] - 8018808: 687b ldr r3, [r7, #4] - 801880a: 691b ldr r3, [r3, #16] - 801880c: f107 0208 add.w r2, r7, #8 - 8018810: 4619 mov r1, r3 - 8018812: f7fd f831 bl 8015878 + 8018770: 687b ldr r3, [r7, #4] + 8018772: 6998 ldr r0, [r3, #24] + 8018774: 687b ldr r3, [r7, #4] + 8018776: 691b ldr r3, [r3, #16] + 8018778: f107 0208 add.w r2, r7, #8 + 801877c: 4619 mov r1, r3 + 801877e: f7fd f831 bl 80157e4 if(q->start_quarter == 0 && q->end_quarter == 0 && q->start_angle < q->end_angle) { - 8018816: e142 b.n 8018a9e + 8018782: e142 b.n 8018a0a } } else if(q->start_quarter == 0 || q->end_quarter == 0) { - 8018818: 687b ldr r3, [r7, #4] - 801881a: 895b ldrh r3, [r3, #10] - 801881c: 2b00 cmp r3, #0 - 801881e: d004 beq.n 801882a - 8018820: 687b ldr r3, [r7, #4] - 8018822: 899b ldrh r3, [r3, #12] - 8018824: 2b00 cmp r3, #0 - 8018826: f040 80d2 bne.w 80189ce + 8018784: 687b ldr r3, [r7, #4] + 8018786: 895b ldrh r3, [r3, #10] + 8018788: 2b00 cmp r3, #0 + 801878a: d004 beq.n 8018796 + 801878c: 687b ldr r3, [r7, #4] + 801878e: 899b ldrh r3, [r3, #12] + 8018790: 2b00 cmp r3, #0 + 8018792: f040 80d2 bne.w 801893a /*Start and/or end arcs here*/ if(q->start_quarter == 0) { - 801882a: 687b ldr r3, [r7, #4] - 801882c: 895b ldrh r3, [r3, #10] - 801882e: 2b00 cmp r3, #0 - 8018830: d163 bne.n 80188fa + 8018796: 687b ldr r3, [r7, #4] + 8018798: 895b ldrh r3, [r3, #10] + 801879a: 2b00 cmp r3, #0 + 801879c: d163 bne.n 8018866 quarter_area.x1 = q->center->x; - 8018832: 687b ldr r3, [r7, #4] - 8018834: 681b ldr r3, [r3, #0] - 8018836: f9b3 3000 ldrsh.w r3, [r3] - 801883a: 813b strh r3, [r7, #8] + 801879e: 687b ldr r3, [r7, #4] + 80187a0: 681b ldr r3, [r3, #0] + 80187a2: f9b3 3000 ldrsh.w r3, [r3] + 80187a6: 813b strh r3, [r7, #8] quarter_area.y2 = q->center->y + q->radius; - 801883c: 687b ldr r3, [r7, #4] - 801883e: 681b ldr r3, [r3, #0] - 8018840: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018844: b29a uxth r2, r3 - 8018846: 687b ldr r3, [r7, #4] - 8018848: f9b3 3004 ldrsh.w r3, [r3, #4] - 801884c: b29b uxth r3, r3 - 801884e: 4413 add r3, r2 - 8018850: b29b uxth r3, r3 - 8018852: b21b sxth r3, r3 - 8018854: 81fb strh r3, [r7, #14] + 80187a8: 687b ldr r3, [r7, #4] + 80187aa: 681b ldr r3, [r3, #0] + 80187ac: f9b3 3002 ldrsh.w r3, [r3, #2] + 80187b0: b29a uxth r2, r3 + 80187b2: 687b ldr r3, [r7, #4] + 80187b4: f9b3 3004 ldrsh.w r3, [r3, #4] + 80187b8: b29b uxth r3, r3 + 80187ba: 4413 add r3, r2 + 80187bc: b29b uxth r3, r3 + 80187be: b21b sxth r3, r3 + 80187c0: 81fb strh r3, [r7, #14] quarter_area.y1 = q->center->y + ((lv_trigo_sin(q->start_angle) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); - 8018856: 687b ldr r3, [r7, #4] - 8018858: 681b ldr r3, [r3, #0] - 801885a: f9b3 3002 ldrsh.w r3, [r3, #2] - 801885e: b29c uxth r4, r3 - 8018860: 687b ldr r3, [r7, #4] - 8018862: 88db ldrh r3, [r3, #6] - 8018864: b21b sxth r3, r3 - 8018866: 4618 mov r0, r3 - 8018868: f019 fe30 bl 80324cc - 801886c: 4603 mov r3, r0 - 801886e: 461a mov r2, r3 - 8018870: 687b ldr r3, [r7, #4] - 8018872: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018876: 4619 mov r1, r3 - 8018878: 687b ldr r3, [r7, #4] - 801887a: f9b3 300e ldrsh.w r3, [r3, #14] - 801887e: 1acb subs r3, r1, r3 - 8018880: fb02 f303 mul.w r3, r2, r3 - 8018884: 13db asrs r3, r3, #15 - 8018886: b29b uxth r3, r3 - 8018888: 4423 add r3, r4 - 801888a: b29b uxth r3, r3 - 801888c: b21b sxth r3, r3 - 801888e: 817b strh r3, [r7, #10] + 80187c2: 687b ldr r3, [r7, #4] + 80187c4: 681b ldr r3, [r3, #0] + 80187c6: f9b3 3002 ldrsh.w r3, [r3, #2] + 80187ca: b29c uxth r4, r3 + 80187cc: 687b ldr r3, [r7, #4] + 80187ce: 88db ldrh r3, [r3, #6] + 80187d0: b21b sxth r3, r3 + 80187d2: 4618 mov r0, r3 + 80187d4: f019 fe30 bl 8032438 + 80187d8: 4603 mov r3, r0 + 80187da: 461a mov r2, r3 + 80187dc: 687b ldr r3, [r7, #4] + 80187de: f9b3 3004 ldrsh.w r3, [r3, #4] + 80187e2: 4619 mov r1, r3 + 80187e4: 687b ldr r3, [r7, #4] + 80187e6: f9b3 300e ldrsh.w r3, [r3, #14] + 80187ea: 1acb subs r3, r1, r3 + 80187ec: fb02 f303 mul.w r3, r2, r3 + 80187f0: 13db asrs r3, r3, #15 + 80187f2: b29b uxth r3, r3 + 80187f4: 4423 add r3, r4 + 80187f6: b29b uxth r3, r3 + 80187f8: b21b sxth r3, r3 + 80187fa: 817b strh r3, [r7, #10] quarter_area.x2 = q->center->x + ((lv_trigo_sin(q->start_angle + 90) * (q->radius)) >> LV_TRIGO_SHIFT); - 8018890: 687b ldr r3, [r7, #4] - 8018892: 681b ldr r3, [r3, #0] - 8018894: f9b3 3000 ldrsh.w r3, [r3] - 8018898: b29c uxth r4, r3 - 801889a: 687b ldr r3, [r7, #4] - 801889c: 88db ldrh r3, [r3, #6] - 801889e: 335a adds r3, #90 ; 0x5a - 80188a0: b29b uxth r3, r3 + 80187fc: 687b ldr r3, [r7, #4] + 80187fe: 681b ldr r3, [r3, #0] + 8018800: f9b3 3000 ldrsh.w r3, [r3] + 8018804: b29c uxth r4, r3 + 8018806: 687b ldr r3, [r7, #4] + 8018808: 88db ldrh r3, [r3, #6] + 801880a: 335a adds r3, #90 ; 0x5a + 801880c: b29b uxth r3, r3 + 801880e: b21b sxth r3, r3 + 8018810: 4618 mov r0, r3 + 8018812: f019 fe11 bl 8032438 + 8018816: 4603 mov r3, r0 + 8018818: 461a mov r2, r3 + 801881a: 687b ldr r3, [r7, #4] + 801881c: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018820: fb02 f303 mul.w r3, r2, r3 + 8018824: 13db asrs r3, r3, #15 + 8018826: b29b uxth r3, r3 + 8018828: 4423 add r3, r4 + 801882a: b29b uxth r3, r3 + 801882c: b21b sxth r3, r3 + 801882e: 81bb strh r3, [r7, #12] + + bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); + 8018830: f107 0108 add.w r1, r7, #8 + 8018834: f107 0308 add.w r3, r7, #8 + 8018838: 697a ldr r2, [r7, #20] + 801883a: 4618 mov r0, r3 + 801883c: f018 fbea bl 8031014 <_lv_area_intersect> + 8018840: 4603 mov r3, r0 + 8018842: 747b strb r3, [r7, #17] + if(ok) { + 8018844: 7c7b ldrb r3, [r7, #17] + 8018846: 2b00 cmp r3, #0 + 8018848: d00d beq.n 8018866 + q->draw_ctx->clip_area = &quarter_area; + 801884a: 687b ldr r3, [r7, #4] + 801884c: 699b ldr r3, [r3, #24] + 801884e: f107 0208 add.w r2, r7, #8 + 8018852: 609a str r2, [r3, #8] + lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); + 8018854: 687b ldr r3, [r7, #4] + 8018856: 6998 ldr r0, [r3, #24] + 8018858: 687b ldr r3, [r7, #4] + 801885a: 691b ldr r3, [r3, #16] + 801885c: f107 0208 add.w r2, r7, #8 + 8018860: 4619 mov r1, r3 + 8018862: f7fc ffbf bl 80157e4 + } + } + if(q->end_quarter == 0) { + 8018866: 687b ldr r3, [r7, #4] + 8018868: 899b ldrh r3, [r3, #12] + 801886a: 2b00 cmp r3, #0 + 801886c: f040 80cf bne.w 8018a0e + quarter_area.x2 = q->center->x + q->radius; + 8018870: 687b ldr r3, [r7, #4] + 8018872: 681b ldr r3, [r3, #0] + 8018874: f9b3 3000 ldrsh.w r3, [r3] + 8018878: b29a uxth r2, r3 + 801887a: 687b ldr r3, [r7, #4] + 801887c: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018880: b29b uxth r3, r3 + 8018882: 4413 add r3, r2 + 8018884: b29b uxth r3, r3 + 8018886: b21b sxth r3, r3 + 8018888: 81bb strh r3, [r7, #12] + quarter_area.y1 = q->center->y; + 801888a: 687b ldr r3, [r7, #4] + 801888c: 681b ldr r3, [r3, #0] + 801888e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018892: 817b strh r3, [r7, #10] + + quarter_area.y2 = q->center->y + ((lv_trigo_sin(q->end_angle) * q->radius) >> LV_TRIGO_SHIFT); + 8018894: 687b ldr r3, [r7, #4] + 8018896: 681b ldr r3, [r3, #0] + 8018898: f9b3 3002 ldrsh.w r3, [r3, #2] + 801889c: b29c uxth r4, r3 + 801889e: 687b ldr r3, [r7, #4] + 80188a0: 891b ldrh r3, [r3, #8] 80188a2: b21b sxth r3, r3 80188a4: 4618 mov r0, r3 - 80188a6: f019 fe11 bl 80324cc + 80188a6: f019 fdc7 bl 8032438 80188aa: 4603 mov r3, r0 80188ac: 461a mov r2, r3 80188ae: 687b ldr r3, [r7, #4] @@ -57218,3938 +57211,3948 @@ static void draw_quarter_0(quarter_draw_dsc_t * q) 80188bc: 4423 add r3, r4 80188be: b29b uxth r3, r3 80188c0: b21b sxth r3, r3 - 80188c2: 81bb strh r3, [r7, #12] - - bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); - 80188c4: f107 0108 add.w r1, r7, #8 - 80188c8: f107 0308 add.w r3, r7, #8 - 80188cc: 697a ldr r2, [r7, #20] - 80188ce: 4618 mov r0, r3 - 80188d0: f018 fbea bl 80310a8 <_lv_area_intersect> - 80188d4: 4603 mov r3, r0 - 80188d6: 747b strb r3, [r7, #17] - if(ok) { - 80188d8: 7c7b ldrb r3, [r7, #17] - 80188da: 2b00 cmp r3, #0 - 80188dc: d00d beq.n 80188fa - q->draw_ctx->clip_area = &quarter_area; - 80188de: 687b ldr r3, [r7, #4] - 80188e0: 699b ldr r3, [r3, #24] - 80188e2: f107 0208 add.w r2, r7, #8 - 80188e6: 609a str r2, [r3, #8] - lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); - 80188e8: 687b ldr r3, [r7, #4] - 80188ea: 6998 ldr r0, [r3, #24] - 80188ec: 687b ldr r3, [r7, #4] - 80188ee: 691b ldr r3, [r3, #16] - 80188f0: f107 0208 add.w r2, r7, #8 - 80188f4: 4619 mov r1, r3 - 80188f6: f7fc ffbf bl 8015878 - } - } - if(q->end_quarter == 0) { - 80188fa: 687b ldr r3, [r7, #4] - 80188fc: 899b ldrh r3, [r3, #12] - 80188fe: 2b00 cmp r3, #0 - 8018900: f040 80cf bne.w 8018aa2 - quarter_area.x2 = q->center->x + q->radius; - 8018904: 687b ldr r3, [r7, #4] - 8018906: 681b ldr r3, [r3, #0] - 8018908: f9b3 3000 ldrsh.w r3, [r3] - 801890c: b29a uxth r2, r3 - 801890e: 687b ldr r3, [r7, #4] - 8018910: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018914: b29b uxth r3, r3 - 8018916: 4413 add r3, r2 - 8018918: b29b uxth r3, r3 - 801891a: b21b sxth r3, r3 - 801891c: 81bb strh r3, [r7, #12] - quarter_area.y1 = q->center->y; - 801891e: 687b ldr r3, [r7, #4] - 8018920: 681b ldr r3, [r3, #0] - 8018922: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018926: 817b strh r3, [r7, #10] - - quarter_area.y2 = q->center->y + ((lv_trigo_sin(q->end_angle) * q->radius) >> LV_TRIGO_SHIFT); - 8018928: 687b ldr r3, [r7, #4] - 801892a: 681b ldr r3, [r3, #0] - 801892c: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018930: b29c uxth r4, r3 - 8018932: 687b ldr r3, [r7, #4] - 8018934: 891b ldrh r3, [r3, #8] - 8018936: b21b sxth r3, r3 - 8018938: 4618 mov r0, r3 - 801893a: f019 fdc7 bl 80324cc - 801893e: 4603 mov r3, r0 - 8018940: 461a mov r2, r3 - 8018942: 687b ldr r3, [r7, #4] - 8018944: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018948: fb02 f303 mul.w r3, r2, r3 - 801894c: 13db asrs r3, r3, #15 - 801894e: b29b uxth r3, r3 - 8018950: 4423 add r3, r4 - 8018952: b29b uxth r3, r3 - 8018954: b21b sxth r3, r3 - 8018956: 81fb strh r3, [r7, #14] + 80188c2: 81fb strh r3, [r7, #14] quarter_area.x1 = q->center->x + ((lv_trigo_sin(q->end_angle + 90) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); - 8018958: 687b ldr r3, [r7, #4] - 801895a: 681b ldr r3, [r3, #0] - 801895c: f9b3 3000 ldrsh.w r3, [r3] - 8018960: b29c uxth r4, r3 - 8018962: 687b ldr r3, [r7, #4] - 8018964: 891b ldrh r3, [r3, #8] - 8018966: 335a adds r3, #90 ; 0x5a - 8018968: b29b uxth r3, r3 - 801896a: b21b sxth r3, r3 - 801896c: 4618 mov r0, r3 - 801896e: f019 fdad bl 80324cc - 8018972: 4603 mov r3, r0 - 8018974: 461a mov r2, r3 - 8018976: 687b ldr r3, [r7, #4] - 8018978: f9b3 3004 ldrsh.w r3, [r3, #4] - 801897c: 4619 mov r1, r3 - 801897e: 687b ldr r3, [r7, #4] - 8018980: f9b3 300e ldrsh.w r3, [r3, #14] - 8018984: 1acb subs r3, r1, r3 - 8018986: fb02 f303 mul.w r3, r2, r3 - 801898a: 13db asrs r3, r3, #15 - 801898c: b29b uxth r3, r3 - 801898e: 4423 add r3, r4 - 8018990: b29b uxth r3, r3 - 8018992: b21b sxth r3, r3 - 8018994: 813b strh r3, [r7, #8] + 80188c4: 687b ldr r3, [r7, #4] + 80188c6: 681b ldr r3, [r3, #0] + 80188c8: f9b3 3000 ldrsh.w r3, [r3] + 80188cc: b29c uxth r4, r3 + 80188ce: 687b ldr r3, [r7, #4] + 80188d0: 891b ldrh r3, [r3, #8] + 80188d2: 335a adds r3, #90 ; 0x5a + 80188d4: b29b uxth r3, r3 + 80188d6: b21b sxth r3, r3 + 80188d8: 4618 mov r0, r3 + 80188da: f019 fdad bl 8032438 + 80188de: 4603 mov r3, r0 + 80188e0: 461a mov r2, r3 + 80188e2: 687b ldr r3, [r7, #4] + 80188e4: f9b3 3004 ldrsh.w r3, [r3, #4] + 80188e8: 4619 mov r1, r3 + 80188ea: 687b ldr r3, [r7, #4] + 80188ec: f9b3 300e ldrsh.w r3, [r3, #14] + 80188f0: 1acb subs r3, r1, r3 + 80188f2: fb02 f303 mul.w r3, r2, r3 + 80188f6: 13db asrs r3, r3, #15 + 80188f8: b29b uxth r3, r3 + 80188fa: 4423 add r3, r4 + 80188fc: b29b uxth r3, r3 + 80188fe: b21b sxth r3, r3 + 8018900: 813b strh r3, [r7, #8] bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); - 8018996: f107 0108 add.w r1, r7, #8 - 801899a: f107 0308 add.w r3, r7, #8 - 801899e: 697a ldr r2, [r7, #20] - 80189a0: 4618 mov r0, r3 - 80189a2: f018 fb81 bl 80310a8 <_lv_area_intersect> - 80189a6: 4603 mov r3, r0 - 80189a8: 743b strb r3, [r7, #16] + 8018902: f107 0108 add.w r1, r7, #8 + 8018906: f107 0308 add.w r3, r7, #8 + 801890a: 697a ldr r2, [r7, #20] + 801890c: 4618 mov r0, r3 + 801890e: f018 fb81 bl 8031014 <_lv_area_intersect> + 8018912: 4603 mov r3, r0 + 8018914: 743b strb r3, [r7, #16] if(ok) { - 80189aa: 7c3b ldrb r3, [r7, #16] - 80189ac: 2b00 cmp r3, #0 - 80189ae: d078 beq.n 8018aa2 + 8018916: 7c3b ldrb r3, [r7, #16] + 8018918: 2b00 cmp r3, #0 + 801891a: d078 beq.n 8018a0e q->draw_ctx->clip_area = &quarter_area; - 80189b0: 687b ldr r3, [r7, #4] - 80189b2: 699b ldr r3, [r3, #24] - 80189b4: f107 0208 add.w r2, r7, #8 - 80189b8: 609a str r2, [r3, #8] + 801891c: 687b ldr r3, [r7, #4] + 801891e: 699b ldr r3, [r3, #24] + 8018920: f107 0208 add.w r2, r7, #8 + 8018924: 609a str r2, [r3, #8] lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); - 80189ba: 687b ldr r3, [r7, #4] - 80189bc: 6998 ldr r0, [r3, #24] - 80189be: 687b ldr r3, [r7, #4] - 80189c0: 691b ldr r3, [r3, #16] - 80189c2: f107 0208 add.w r2, r7, #8 - 80189c6: 4619 mov r1, r3 - 80189c8: f7fc ff56 bl 8015878 + 8018926: 687b ldr r3, [r7, #4] + 8018928: 6998 ldr r0, [r3, #24] + 801892a: 687b ldr r3, [r7, #4] + 801892c: 691b ldr r3, [r3, #16] + 801892e: f107 0208 add.w r2, r7, #8 + 8018932: 4619 mov r1, r3 + 8018934: f7fc ff56 bl 80157e4 if(q->end_quarter == 0) { - 80189cc: e069 b.n 8018aa2 + 8018938: e069 b.n 8018a0e } } } else if((q->start_quarter == q->end_quarter && q->start_quarter != 0 && q->end_angle < q->start_angle) || - 80189ce: 687b ldr r3, [r7, #4] - 80189d0: 895a ldrh r2, [r3, #10] - 80189d2: 687b ldr r3, [r7, #4] - 80189d4: 899b ldrh r3, [r3, #12] - 80189d6: 429a cmp r2, r3 - 80189d8: d109 bne.n 80189ee - 80189da: 687b ldr r3, [r7, #4] - 80189dc: 895b ldrh r3, [r3, #10] - 80189de: 2b00 cmp r3, #0 - 80189e0: d005 beq.n 80189ee - 80189e2: 687b ldr r3, [r7, #4] - 80189e4: 891a ldrh r2, [r3, #8] - 80189e6: 687b ldr r3, [r7, #4] - 80189e8: 88db ldrh r3, [r3, #6] - 80189ea: 429a cmp r2, r3 - 80189ec: d317 bcc.n 8018a1e + 801893a: 687b ldr r3, [r7, #4] + 801893c: 895a ldrh r2, [r3, #10] + 801893e: 687b ldr r3, [r7, #4] + 8018940: 899b ldrh r3, [r3, #12] + 8018942: 429a cmp r2, r3 + 8018944: d109 bne.n 801895a + 8018946: 687b ldr r3, [r7, #4] + 8018948: 895b ldrh r3, [r3, #10] + 801894a: 2b00 cmp r3, #0 + 801894c: d005 beq.n 801895a + 801894e: 687b ldr r3, [r7, #4] + 8018950: 891a ldrh r2, [r3, #8] + 8018952: 687b ldr r3, [r7, #4] + 8018954: 88db ldrh r3, [r3, #6] + 8018956: 429a cmp r2, r3 + 8018958: d317 bcc.n 801898a (q->start_quarter == 2 && q->end_quarter == 1) || - 80189ee: 687b ldr r3, [r7, #4] - 80189f0: 895b ldrh r3, [r3, #10] + 801895a: 687b ldr r3, [r7, #4] + 801895c: 895b ldrh r3, [r3, #10] else if((q->start_quarter == q->end_quarter && q->start_quarter != 0 && q->end_angle < q->start_angle) || - 80189f2: 2b02 cmp r3, #2 - 80189f4: d103 bne.n 80189fe + 801895e: 2b02 cmp r3, #2 + 8018960: d103 bne.n 801896a (q->start_quarter == 2 && q->end_quarter == 1) || - 80189f6: 687b ldr r3, [r7, #4] - 80189f8: 899b ldrh r3, [r3, #12] - 80189fa: 2b01 cmp r3, #1 - 80189fc: d00f beq.n 8018a1e + 8018962: 687b ldr r3, [r7, #4] + 8018964: 899b ldrh r3, [r3, #12] + 8018966: 2b01 cmp r3, #1 + 8018968: d00f beq.n 801898a (q->start_quarter == 3 && q->end_quarter == 2) || - 80189fe: 687b ldr r3, [r7, #4] - 8018a00: 895b ldrh r3, [r3, #10] + 801896a: 687b ldr r3, [r7, #4] + 801896c: 895b ldrh r3, [r3, #10] (q->start_quarter == 2 && q->end_quarter == 1) || - 8018a02: 2b03 cmp r3, #3 - 8018a04: d103 bne.n 8018a0e + 801896e: 2b03 cmp r3, #3 + 8018970: d103 bne.n 801897a (q->start_quarter == 3 && q->end_quarter == 2) || - 8018a06: 687b ldr r3, [r7, #4] - 8018a08: 899b ldrh r3, [r3, #12] - 8018a0a: 2b02 cmp r3, #2 - 8018a0c: d007 beq.n 8018a1e + 8018972: 687b ldr r3, [r7, #4] + 8018974: 899b ldrh r3, [r3, #12] + 8018976: 2b02 cmp r3, #2 + 8018978: d007 beq.n 801898a (q->start_quarter == 3 && q->end_quarter == 1)) { - 8018a0e: 687b ldr r3, [r7, #4] - 8018a10: 895b ldrh r3, [r3, #10] + 801897a: 687b ldr r3, [r7, #4] + 801897c: 895b ldrh r3, [r3, #10] (q->start_quarter == 3 && q->end_quarter == 2) || - 8018a12: 2b03 cmp r3, #3 - 8018a14: d146 bne.n 8018aa4 + 801897e: 2b03 cmp r3, #3 + 8018980: d146 bne.n 8018a10 (q->start_quarter == 3 && q->end_quarter == 1)) { - 8018a16: 687b ldr r3, [r7, #4] - 8018a18: 899b ldrh r3, [r3, #12] - 8018a1a: 2b01 cmp r3, #1 - 8018a1c: d142 bne.n 8018aa4 + 8018982: 687b ldr r3, [r7, #4] + 8018984: 899b ldrh r3, [r3, #12] + 8018986: 2b01 cmp r3, #1 + 8018988: d142 bne.n 8018a10 /*Arc crosses here*/ quarter_area.x1 = q->center->x; - 8018a1e: 687b ldr r3, [r7, #4] - 8018a20: 681b ldr r3, [r3, #0] - 8018a22: f9b3 3000 ldrsh.w r3, [r3] - 8018a26: 813b strh r3, [r7, #8] + 801898a: 687b ldr r3, [r7, #4] + 801898c: 681b ldr r3, [r3, #0] + 801898e: f9b3 3000 ldrsh.w r3, [r3] + 8018992: 813b strh r3, [r7, #8] quarter_area.y1 = q->center->y; - 8018a28: 687b ldr r3, [r7, #4] - 8018a2a: 681b ldr r3, [r3, #0] - 8018a2c: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018a30: 817b strh r3, [r7, #10] + 8018994: 687b ldr r3, [r7, #4] + 8018996: 681b ldr r3, [r3, #0] + 8018998: f9b3 3002 ldrsh.w r3, [r3, #2] + 801899c: 817b strh r3, [r7, #10] quarter_area.x2 = q->center->x + q->radius; - 8018a32: 687b ldr r3, [r7, #4] - 8018a34: 681b ldr r3, [r3, #0] - 8018a36: f9b3 3000 ldrsh.w r3, [r3] - 8018a3a: b29a uxth r2, r3 - 8018a3c: 687b ldr r3, [r7, #4] - 8018a3e: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018a42: b29b uxth r3, r3 - 8018a44: 4413 add r3, r2 - 8018a46: b29b uxth r3, r3 - 8018a48: b21b sxth r3, r3 - 8018a4a: 81bb strh r3, [r7, #12] + 801899e: 687b ldr r3, [r7, #4] + 80189a0: 681b ldr r3, [r3, #0] + 80189a2: f9b3 3000 ldrsh.w r3, [r3] + 80189a6: b29a uxth r2, r3 + 80189a8: 687b ldr r3, [r7, #4] + 80189aa: f9b3 3004 ldrsh.w r3, [r3, #4] + 80189ae: b29b uxth r3, r3 + 80189b0: 4413 add r3, r2 + 80189b2: b29b uxth r3, r3 + 80189b4: b21b sxth r3, r3 + 80189b6: 81bb strh r3, [r7, #12] quarter_area.y2 = q->center->y + q->radius; - 8018a4c: 687b ldr r3, [r7, #4] - 8018a4e: 681b ldr r3, [r3, #0] - 8018a50: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018a54: b29a uxth r2, r3 - 8018a56: 687b ldr r3, [r7, #4] - 8018a58: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018a5c: b29b uxth r3, r3 - 8018a5e: 4413 add r3, r2 - 8018a60: b29b uxth r3, r3 - 8018a62: b21b sxth r3, r3 - 8018a64: 81fb strh r3, [r7, #14] + 80189b8: 687b ldr r3, [r7, #4] + 80189ba: 681b ldr r3, [r3, #0] + 80189bc: f9b3 3002 ldrsh.w r3, [r3, #2] + 80189c0: b29a uxth r2, r3 + 80189c2: 687b ldr r3, [r7, #4] + 80189c4: f9b3 3004 ldrsh.w r3, [r3, #4] + 80189c8: b29b uxth r3, r3 + 80189ca: 4413 add r3, r2 + 80189cc: b29b uxth r3, r3 + 80189ce: b21b sxth r3, r3 + 80189d0: 81fb strh r3, [r7, #14] bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); - 8018a66: f107 0108 add.w r1, r7, #8 - 8018a6a: f107 0308 add.w r3, r7, #8 - 8018a6e: 697a ldr r2, [r7, #20] - 8018a70: 4618 mov r0, r3 - 8018a72: f018 fb19 bl 80310a8 <_lv_area_intersect> - 8018a76: 4603 mov r3, r0 - 8018a78: 74bb strb r3, [r7, #18] + 80189d2: f107 0108 add.w r1, r7, #8 + 80189d6: f107 0308 add.w r3, r7, #8 + 80189da: 697a ldr r2, [r7, #20] + 80189dc: 4618 mov r0, r3 + 80189de: f018 fb19 bl 8031014 <_lv_area_intersect> + 80189e2: 4603 mov r3, r0 + 80189e4: 74bb strb r3, [r7, #18] if(ok) { - 8018a7a: 7cbb ldrb r3, [r7, #18] - 8018a7c: 2b00 cmp r3, #0 - 8018a7e: d011 beq.n 8018aa4 + 80189e6: 7cbb ldrb r3, [r7, #18] + 80189e8: 2b00 cmp r3, #0 + 80189ea: d011 beq.n 8018a10 q->draw_ctx->clip_area = &quarter_area; - 8018a80: 687b ldr r3, [r7, #4] - 8018a82: 699b ldr r3, [r3, #24] - 8018a84: f107 0208 add.w r2, r7, #8 - 8018a88: 609a str r2, [r3, #8] + 80189ec: 687b ldr r3, [r7, #4] + 80189ee: 699b ldr r3, [r3, #24] + 80189f0: f107 0208 add.w r2, r7, #8 + 80189f4: 609a str r2, [r3, #8] lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); - 8018a8a: 687b ldr r3, [r7, #4] - 8018a8c: 6998 ldr r0, [r3, #24] - 8018a8e: 687b ldr r3, [r7, #4] - 8018a90: 691b ldr r3, [r3, #16] - 8018a92: f107 0208 add.w r2, r7, #8 - 8018a96: 4619 mov r1, r3 - 8018a98: f7fc feee bl 8015878 - 8018a9c: e002 b.n 8018aa4 + 80189f6: 687b ldr r3, [r7, #4] + 80189f8: 6998 ldr r0, [r3, #24] + 80189fa: 687b ldr r3, [r7, #4] + 80189fc: 691b ldr r3, [r3, #16] + 80189fe: f107 0208 add.w r2, r7, #8 + 8018a02: 4619 mov r1, r3 + 8018a04: f7fc feee bl 80157e4 + 8018a08: e002 b.n 8018a10 if(q->start_quarter == 0 && q->end_quarter == 0 && q->start_angle < q->end_angle) { - 8018a9e: bf00 nop - 8018aa0: e000 b.n 8018aa4 + 8018a0a: bf00 nop + 8018a0c: e000 b.n 8018a10 if(q->end_quarter == 0) { - 8018aa2: bf00 nop + 8018a0e: bf00 nop } } q->draw_ctx->clip_area = clip_area_ori; - 8018aa4: 687b ldr r3, [r7, #4] - 8018aa6: 699b ldr r3, [r3, #24] - 8018aa8: 697a ldr r2, [r7, #20] - 8018aaa: 609a str r2, [r3, #8] + 8018a10: 687b ldr r3, [r7, #4] + 8018a12: 699b ldr r3, [r3, #24] + 8018a14: 697a ldr r2, [r7, #20] + 8018a16: 609a str r2, [r3, #8] } - 8018aac: bf00 nop - 8018aae: 371c adds r7, #28 - 8018ab0: 46bd mov sp, r7 - 8018ab2: bd90 pop {r4, r7, pc} + 8018a18: bf00 nop + 8018a1a: 371c adds r7, #28 + 8018a1c: 46bd mov sp, r7 + 8018a1e: bd90 pop {r4, r7, pc} -08018ab4 : +08018a20 : static void draw_quarter_1(quarter_draw_dsc_t * q) { - 8018ab4: b590 push {r4, r7, lr} - 8018ab6: b087 sub sp, #28 - 8018ab8: af00 add r7, sp, #0 - 8018aba: 6078 str r0, [r7, #4] + 8018a20: b590 push {r4, r7, lr} + 8018a22: b087 sub sp, #28 + 8018a24: af00 add r7, sp, #0 + 8018a26: 6078 str r0, [r7, #4] const lv_area_t * clip_area_ori = q->draw_ctx->clip_area; - 8018abc: 687b ldr r3, [r7, #4] - 8018abe: 699b ldr r3, [r3, #24] - 8018ac0: 689b ldr r3, [r3, #8] - 8018ac2: 617b str r3, [r7, #20] + 8018a28: 687b ldr r3, [r7, #4] + 8018a2a: 699b ldr r3, [r3, #24] + 8018a2c: 689b ldr r3, [r3, #8] + 8018a2e: 617b str r3, [r7, #20] lv_area_t quarter_area; if(q->start_quarter == 1 && q->end_quarter == 1 && q->start_angle < q->end_angle) { - 8018ac4: 687b ldr r3, [r7, #4] - 8018ac6: 895b ldrh r3, [r3, #10] - 8018ac8: 2b01 cmp r3, #1 - 8018aca: f040 8097 bne.w 8018bfc - 8018ace: 687b ldr r3, [r7, #4] - 8018ad0: 899b ldrh r3, [r3, #12] - 8018ad2: 2b01 cmp r3, #1 - 8018ad4: f040 8092 bne.w 8018bfc - 8018ad8: 687b ldr r3, [r7, #4] - 8018ada: 88da ldrh r2, [r3, #6] - 8018adc: 687b ldr r3, [r7, #4] - 8018ade: 891b ldrh r3, [r3, #8] - 8018ae0: 429a cmp r2, r3 - 8018ae2: f080 808b bcs.w 8018bfc + 8018a30: 687b ldr r3, [r7, #4] + 8018a32: 895b ldrh r3, [r3, #10] + 8018a34: 2b01 cmp r3, #1 + 8018a36: f040 8097 bne.w 8018b68 + 8018a3a: 687b ldr r3, [r7, #4] + 8018a3c: 899b ldrh r3, [r3, #12] + 8018a3e: 2b01 cmp r3, #1 + 8018a40: f040 8092 bne.w 8018b68 + 8018a44: 687b ldr r3, [r7, #4] + 8018a46: 88da ldrh r2, [r3, #6] + 8018a48: 687b ldr r3, [r7, #4] + 8018a4a: 891b ldrh r3, [r3, #8] + 8018a4c: 429a cmp r2, r3 + 8018a4e: f080 808b bcs.w 8018b68 /*Small arc here*/ quarter_area.y2 = q->center->y + ((lv_trigo_sin(q->start_angle) * (q->radius)) >> LV_TRIGO_SHIFT); - 8018ae6: 687b ldr r3, [r7, #4] - 8018ae8: 681b ldr r3, [r3, #0] - 8018aea: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018aee: b29c uxth r4, r3 - 8018af0: 687b ldr r3, [r7, #4] - 8018af2: 88db ldrh r3, [r3, #6] - 8018af4: b21b sxth r3, r3 - 8018af6: 4618 mov r0, r3 - 8018af8: f019 fce8 bl 80324cc - 8018afc: 4603 mov r3, r0 - 8018afe: 461a mov r2, r3 - 8018b00: 687b ldr r3, [r7, #4] - 8018b02: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018b06: fb02 f303 mul.w r3, r2, r3 - 8018b0a: 13db asrs r3, r3, #15 - 8018b0c: b29b uxth r3, r3 - 8018b0e: 4423 add r3, r4 - 8018b10: b29b uxth r3, r3 - 8018b12: b21b sxth r3, r3 - 8018b14: 81fb strh r3, [r7, #14] + 8018a52: 687b ldr r3, [r7, #4] + 8018a54: 681b ldr r3, [r3, #0] + 8018a56: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018a5a: b29c uxth r4, r3 + 8018a5c: 687b ldr r3, [r7, #4] + 8018a5e: 88db ldrh r3, [r3, #6] + 8018a60: b21b sxth r3, r3 + 8018a62: 4618 mov r0, r3 + 8018a64: f019 fce8 bl 8032438 + 8018a68: 4603 mov r3, r0 + 8018a6a: 461a mov r2, r3 + 8018a6c: 687b ldr r3, [r7, #4] + 8018a6e: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018a72: fb02 f303 mul.w r3, r2, r3 + 8018a76: 13db asrs r3, r3, #15 + 8018a78: b29b uxth r3, r3 + 8018a7a: 4423 add r3, r4 + 8018a7c: b29b uxth r3, r3 + 8018a7e: b21b sxth r3, r3 + 8018a80: 81fb strh r3, [r7, #14] quarter_area.x2 = q->center->x + ((lv_trigo_sin(q->start_angle + 90) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); - 8018b16: 687b ldr r3, [r7, #4] - 8018b18: 681b ldr r3, [r3, #0] - 8018b1a: f9b3 3000 ldrsh.w r3, [r3] - 8018b1e: b29c uxth r4, r3 - 8018b20: 687b ldr r3, [r7, #4] - 8018b22: 88db ldrh r3, [r3, #6] - 8018b24: 335a adds r3, #90 ; 0x5a - 8018b26: b29b uxth r3, r3 - 8018b28: b21b sxth r3, r3 - 8018b2a: 4618 mov r0, r3 - 8018b2c: f019 fcce bl 80324cc - 8018b30: 4603 mov r3, r0 - 8018b32: 461a mov r2, r3 - 8018b34: 687b ldr r3, [r7, #4] - 8018b36: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018b3a: 4619 mov r1, r3 - 8018b3c: 687b ldr r3, [r7, #4] - 8018b3e: f9b3 300e ldrsh.w r3, [r3, #14] - 8018b42: 1acb subs r3, r1, r3 - 8018b44: fb02 f303 mul.w r3, r2, r3 - 8018b48: 13db asrs r3, r3, #15 - 8018b4a: b29b uxth r3, r3 - 8018b4c: 4423 add r3, r4 - 8018b4e: b29b uxth r3, r3 - 8018b50: b21b sxth r3, r3 - 8018b52: 81bb strh r3, [r7, #12] + 8018a82: 687b ldr r3, [r7, #4] + 8018a84: 681b ldr r3, [r3, #0] + 8018a86: f9b3 3000 ldrsh.w r3, [r3] + 8018a8a: b29c uxth r4, r3 + 8018a8c: 687b ldr r3, [r7, #4] + 8018a8e: 88db ldrh r3, [r3, #6] + 8018a90: 335a adds r3, #90 ; 0x5a + 8018a92: b29b uxth r3, r3 + 8018a94: b21b sxth r3, r3 + 8018a96: 4618 mov r0, r3 + 8018a98: f019 fcce bl 8032438 + 8018a9c: 4603 mov r3, r0 + 8018a9e: 461a mov r2, r3 + 8018aa0: 687b ldr r3, [r7, #4] + 8018aa2: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018aa6: 4619 mov r1, r3 + 8018aa8: 687b ldr r3, [r7, #4] + 8018aaa: f9b3 300e ldrsh.w r3, [r3, #14] + 8018aae: 1acb subs r3, r1, r3 + 8018ab0: fb02 f303 mul.w r3, r2, r3 + 8018ab4: 13db asrs r3, r3, #15 + 8018ab6: b29b uxth r3, r3 + 8018ab8: 4423 add r3, r4 + 8018aba: b29b uxth r3, r3 + 8018abc: b21b sxth r3, r3 + 8018abe: 81bb strh r3, [r7, #12] quarter_area.y1 = q->center->y + ((lv_trigo_sin(q->end_angle) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); - 8018b54: 687b ldr r3, [r7, #4] - 8018b56: 681b ldr r3, [r3, #0] - 8018b58: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018b5c: b29c uxth r4, r3 - 8018b5e: 687b ldr r3, [r7, #4] - 8018b60: 891b ldrh r3, [r3, #8] - 8018b62: b21b sxth r3, r3 - 8018b64: 4618 mov r0, r3 - 8018b66: f019 fcb1 bl 80324cc - 8018b6a: 4603 mov r3, r0 - 8018b6c: 461a mov r2, r3 - 8018b6e: 687b ldr r3, [r7, #4] - 8018b70: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018b74: 4619 mov r1, r3 - 8018b76: 687b ldr r3, [r7, #4] - 8018b78: f9b3 300e ldrsh.w r3, [r3, #14] - 8018b7c: 1acb subs r3, r1, r3 - 8018b7e: fb02 f303 mul.w r3, r2, r3 - 8018b82: 13db asrs r3, r3, #15 - 8018b84: b29b uxth r3, r3 - 8018b86: 4423 add r3, r4 - 8018b88: b29b uxth r3, r3 - 8018b8a: b21b sxth r3, r3 - 8018b8c: 817b strh r3, [r7, #10] + 8018ac0: 687b ldr r3, [r7, #4] + 8018ac2: 681b ldr r3, [r3, #0] + 8018ac4: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018ac8: b29c uxth r4, r3 + 8018aca: 687b ldr r3, [r7, #4] + 8018acc: 891b ldrh r3, [r3, #8] + 8018ace: b21b sxth r3, r3 + 8018ad0: 4618 mov r0, r3 + 8018ad2: f019 fcb1 bl 8032438 + 8018ad6: 4603 mov r3, r0 + 8018ad8: 461a mov r2, r3 + 8018ada: 687b ldr r3, [r7, #4] + 8018adc: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018ae0: 4619 mov r1, r3 + 8018ae2: 687b ldr r3, [r7, #4] + 8018ae4: f9b3 300e ldrsh.w r3, [r3, #14] + 8018ae8: 1acb subs r3, r1, r3 + 8018aea: fb02 f303 mul.w r3, r2, r3 + 8018aee: 13db asrs r3, r3, #15 + 8018af0: b29b uxth r3, r3 + 8018af2: 4423 add r3, r4 + 8018af4: b29b uxth r3, r3 + 8018af6: b21b sxth r3, r3 + 8018af8: 817b strh r3, [r7, #10] quarter_area.x1 = q->center->x + ((lv_trigo_sin(q->end_angle + 90) * (q->radius)) >> LV_TRIGO_SHIFT); - 8018b8e: 687b ldr r3, [r7, #4] - 8018b90: 681b ldr r3, [r3, #0] - 8018b92: f9b3 3000 ldrsh.w r3, [r3] - 8018b96: b29c uxth r4, r3 - 8018b98: 687b ldr r3, [r7, #4] - 8018b9a: 891b ldrh r3, [r3, #8] - 8018b9c: 335a adds r3, #90 ; 0x5a - 8018b9e: b29b uxth r3, r3 - 8018ba0: b21b sxth r3, r3 - 8018ba2: 4618 mov r0, r3 - 8018ba4: f019 fc92 bl 80324cc - 8018ba8: 4603 mov r3, r0 - 8018baa: 461a mov r2, r3 - 8018bac: 687b ldr r3, [r7, #4] - 8018bae: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018bb2: fb02 f303 mul.w r3, r2, r3 - 8018bb6: 13db asrs r3, r3, #15 - 8018bb8: b29b uxth r3, r3 - 8018bba: 4423 add r3, r4 - 8018bbc: b29b uxth r3, r3 - 8018bbe: b21b sxth r3, r3 - 8018bc0: 813b strh r3, [r7, #8] + 8018afa: 687b ldr r3, [r7, #4] + 8018afc: 681b ldr r3, [r3, #0] + 8018afe: f9b3 3000 ldrsh.w r3, [r3] + 8018b02: b29c uxth r4, r3 + 8018b04: 687b ldr r3, [r7, #4] + 8018b06: 891b ldrh r3, [r3, #8] + 8018b08: 335a adds r3, #90 ; 0x5a + 8018b0a: b29b uxth r3, r3 + 8018b0c: b21b sxth r3, r3 + 8018b0e: 4618 mov r0, r3 + 8018b10: f019 fc92 bl 8032438 + 8018b14: 4603 mov r3, r0 + 8018b16: 461a mov r2, r3 + 8018b18: 687b ldr r3, [r7, #4] + 8018b1a: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018b1e: fb02 f303 mul.w r3, r2, r3 + 8018b22: 13db asrs r3, r3, #15 + 8018b24: b29b uxth r3, r3 + 8018b26: 4423 add r3, r4 + 8018b28: b29b uxth r3, r3 + 8018b2a: b21b sxth r3, r3 + 8018b2c: 813b strh r3, [r7, #8] bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); - 8018bc2: f107 0108 add.w r1, r7, #8 - 8018bc6: f107 0308 add.w r3, r7, #8 - 8018bca: 697a ldr r2, [r7, #20] - 8018bcc: 4618 mov r0, r3 - 8018bce: f018 fa6b bl 80310a8 <_lv_area_intersect> - 8018bd2: 4603 mov r3, r0 - 8018bd4: 74fb strb r3, [r7, #19] + 8018b2e: f107 0108 add.w r1, r7, #8 + 8018b32: f107 0308 add.w r3, r7, #8 + 8018b36: 697a ldr r2, [r7, #20] + 8018b38: 4618 mov r0, r3 + 8018b3a: f018 fa6b bl 8031014 <_lv_area_intersect> + 8018b3e: 4603 mov r3, r0 + 8018b40: 74fb strb r3, [r7, #19] if(ok) { - 8018bd6: 7cfb ldrb r3, [r7, #19] - 8018bd8: 2b00 cmp r3, #0 - 8018bda: f000 815a beq.w 8018e92 + 8018b42: 7cfb ldrb r3, [r7, #19] + 8018b44: 2b00 cmp r3, #0 + 8018b46: f000 815a beq.w 8018dfe q->draw_ctx->clip_area = &quarter_area; - 8018bde: 687b ldr r3, [r7, #4] - 8018be0: 699b ldr r3, [r3, #24] - 8018be2: f107 0208 add.w r2, r7, #8 - 8018be6: 609a str r2, [r3, #8] + 8018b4a: 687b ldr r3, [r7, #4] + 8018b4c: 699b ldr r3, [r3, #24] + 8018b4e: f107 0208 add.w r2, r7, #8 + 8018b52: 609a str r2, [r3, #8] lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); - 8018be8: 687b ldr r3, [r7, #4] - 8018bea: 6998 ldr r0, [r3, #24] - 8018bec: 687b ldr r3, [r7, #4] - 8018bee: 691b ldr r3, [r3, #16] - 8018bf0: f107 0208 add.w r2, r7, #8 - 8018bf4: 4619 mov r1, r3 - 8018bf6: f7fc fe3f bl 8015878 + 8018b54: 687b ldr r3, [r7, #4] + 8018b56: 6998 ldr r0, [r3, #24] + 8018b58: 687b ldr r3, [r7, #4] + 8018b5a: 691b ldr r3, [r3, #16] + 8018b5c: f107 0208 add.w r2, r7, #8 + 8018b60: 4619 mov r1, r3 + 8018b62: f7fc fe3f bl 80157e4 if(q->start_quarter == 1 && q->end_quarter == 1 && q->start_angle < q->end_angle) { - 8018bfa: e14a b.n 8018e92 + 8018b66: e14a b.n 8018dfe } } else if(q->start_quarter == 1 || q->end_quarter == 1) { - 8018bfc: 687b ldr r3, [r7, #4] - 8018bfe: 895b ldrh r3, [r3, #10] - 8018c00: 2b01 cmp r3, #1 - 8018c02: d004 beq.n 8018c0e - 8018c04: 687b ldr r3, [r7, #4] - 8018c06: 899b ldrh r3, [r3, #12] - 8018c08: 2b01 cmp r3, #1 - 8018c0a: f040 80d6 bne.w 8018dba + 8018b68: 687b ldr r3, [r7, #4] + 8018b6a: 895b ldrh r3, [r3, #10] + 8018b6c: 2b01 cmp r3, #1 + 8018b6e: d004 beq.n 8018b7a + 8018b70: 687b ldr r3, [r7, #4] + 8018b72: 899b ldrh r3, [r3, #12] + 8018b74: 2b01 cmp r3, #1 + 8018b76: f040 80d6 bne.w 8018d26 /*Start and/or end arcs here*/ if(q->start_quarter == 1) { - 8018c0e: 687b ldr r3, [r7, #4] - 8018c10: 895b ldrh r3, [r3, #10] - 8018c12: 2b01 cmp r3, #1 - 8018c14: d163 bne.n 8018cde + 8018b7a: 687b ldr r3, [r7, #4] + 8018b7c: 895b ldrh r3, [r3, #10] + 8018b7e: 2b01 cmp r3, #1 + 8018b80: d163 bne.n 8018c4a quarter_area.x1 = q->center->x - q->radius; - 8018c16: 687b ldr r3, [r7, #4] - 8018c18: 681b ldr r3, [r3, #0] - 8018c1a: f9b3 3000 ldrsh.w r3, [r3] - 8018c1e: b29a uxth r2, r3 - 8018c20: 687b ldr r3, [r7, #4] - 8018c22: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018c26: b29b uxth r3, r3 - 8018c28: 1ad3 subs r3, r2, r3 - 8018c2a: b29b uxth r3, r3 - 8018c2c: b21b sxth r3, r3 - 8018c2e: 813b strh r3, [r7, #8] + 8018b82: 687b ldr r3, [r7, #4] + 8018b84: 681b ldr r3, [r3, #0] + 8018b86: f9b3 3000 ldrsh.w r3, [r3] + 8018b8a: b29a uxth r2, r3 + 8018b8c: 687b ldr r3, [r7, #4] + 8018b8e: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018b92: b29b uxth r3, r3 + 8018b94: 1ad3 subs r3, r2, r3 + 8018b96: b29b uxth r3, r3 + 8018b98: b21b sxth r3, r3 + 8018b9a: 813b strh r3, [r7, #8] quarter_area.y1 = q->center->y; - 8018c30: 687b ldr r3, [r7, #4] - 8018c32: 681b ldr r3, [r3, #0] - 8018c34: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018c38: 817b strh r3, [r7, #10] + 8018b9c: 687b ldr r3, [r7, #4] + 8018b9e: 681b ldr r3, [r3, #0] + 8018ba0: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018ba4: 817b strh r3, [r7, #10] quarter_area.y2 = q->center->y + ((lv_trigo_sin(q->start_angle) * (q->radius)) >> LV_TRIGO_SHIFT); - 8018c3a: 687b ldr r3, [r7, #4] - 8018c3c: 681b ldr r3, [r3, #0] - 8018c3e: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018c42: b29c uxth r4, r3 - 8018c44: 687b ldr r3, [r7, #4] - 8018c46: 88db ldrh r3, [r3, #6] - 8018c48: b21b sxth r3, r3 - 8018c4a: 4618 mov r0, r3 - 8018c4c: f019 fc3e bl 80324cc - 8018c50: 4603 mov r3, r0 - 8018c52: 461a mov r2, r3 - 8018c54: 687b ldr r3, [r7, #4] - 8018c56: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018c5a: fb02 f303 mul.w r3, r2, r3 - 8018c5e: 13db asrs r3, r3, #15 - 8018c60: b29b uxth r3, r3 - 8018c62: 4423 add r3, r4 - 8018c64: b29b uxth r3, r3 - 8018c66: b21b sxth r3, r3 - 8018c68: 81fb strh r3, [r7, #14] + 8018ba6: 687b ldr r3, [r7, #4] + 8018ba8: 681b ldr r3, [r3, #0] + 8018baa: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018bae: b29c uxth r4, r3 + 8018bb0: 687b ldr r3, [r7, #4] + 8018bb2: 88db ldrh r3, [r3, #6] + 8018bb4: b21b sxth r3, r3 + 8018bb6: 4618 mov r0, r3 + 8018bb8: f019 fc3e bl 8032438 + 8018bbc: 4603 mov r3, r0 + 8018bbe: 461a mov r2, r3 + 8018bc0: 687b ldr r3, [r7, #4] + 8018bc2: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018bc6: fb02 f303 mul.w r3, r2, r3 + 8018bca: 13db asrs r3, r3, #15 + 8018bcc: b29b uxth r3, r3 + 8018bce: 4423 add r3, r4 + 8018bd0: b29b uxth r3, r3 + 8018bd2: b21b sxth r3, r3 + 8018bd4: 81fb strh r3, [r7, #14] quarter_area.x2 = q->center->x + ((lv_trigo_sin(q->start_angle + 90) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); - 8018c6a: 687b ldr r3, [r7, #4] - 8018c6c: 681b ldr r3, [r3, #0] - 8018c6e: f9b3 3000 ldrsh.w r3, [r3] - 8018c72: b29c uxth r4, r3 - 8018c74: 687b ldr r3, [r7, #4] - 8018c76: 88db ldrh r3, [r3, #6] - 8018c78: 335a adds r3, #90 ; 0x5a - 8018c7a: b29b uxth r3, r3 - 8018c7c: b21b sxth r3, r3 - 8018c7e: 4618 mov r0, r3 - 8018c80: f019 fc24 bl 80324cc - 8018c84: 4603 mov r3, r0 - 8018c86: 461a mov r2, r3 - 8018c88: 687b ldr r3, [r7, #4] - 8018c8a: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018c8e: 4619 mov r1, r3 - 8018c90: 687b ldr r3, [r7, #4] - 8018c92: f9b3 300e ldrsh.w r3, [r3, #14] - 8018c96: 1acb subs r3, r1, r3 - 8018c98: fb02 f303 mul.w r3, r2, r3 - 8018c9c: 13db asrs r3, r3, #15 - 8018c9e: b29b uxth r3, r3 - 8018ca0: 4423 add r3, r4 - 8018ca2: b29b uxth r3, r3 - 8018ca4: b21b sxth r3, r3 - 8018ca6: 81bb strh r3, [r7, #12] + 8018bd6: 687b ldr r3, [r7, #4] + 8018bd8: 681b ldr r3, [r3, #0] + 8018bda: f9b3 3000 ldrsh.w r3, [r3] + 8018bde: b29c uxth r4, r3 + 8018be0: 687b ldr r3, [r7, #4] + 8018be2: 88db ldrh r3, [r3, #6] + 8018be4: 335a adds r3, #90 ; 0x5a + 8018be6: b29b uxth r3, r3 + 8018be8: b21b sxth r3, r3 + 8018bea: 4618 mov r0, r3 + 8018bec: f019 fc24 bl 8032438 + 8018bf0: 4603 mov r3, r0 + 8018bf2: 461a mov r2, r3 + 8018bf4: 687b ldr r3, [r7, #4] + 8018bf6: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018bfa: 4619 mov r1, r3 + 8018bfc: 687b ldr r3, [r7, #4] + 8018bfe: f9b3 300e ldrsh.w r3, [r3, #14] + 8018c02: 1acb subs r3, r1, r3 + 8018c04: fb02 f303 mul.w r3, r2, r3 + 8018c08: 13db asrs r3, r3, #15 + 8018c0a: b29b uxth r3, r3 + 8018c0c: 4423 add r3, r4 + 8018c0e: b29b uxth r3, r3 + 8018c10: b21b sxth r3, r3 + 8018c12: 81bb strh r3, [r7, #12] bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); - 8018ca8: f107 0108 add.w r1, r7, #8 - 8018cac: f107 0308 add.w r3, r7, #8 - 8018cb0: 697a ldr r2, [r7, #20] - 8018cb2: 4618 mov r0, r3 - 8018cb4: f018 f9f8 bl 80310a8 <_lv_area_intersect> - 8018cb8: 4603 mov r3, r0 - 8018cba: 747b strb r3, [r7, #17] + 8018c14: f107 0108 add.w r1, r7, #8 + 8018c18: f107 0308 add.w r3, r7, #8 + 8018c1c: 697a ldr r2, [r7, #20] + 8018c1e: 4618 mov r0, r3 + 8018c20: f018 f9f8 bl 8031014 <_lv_area_intersect> + 8018c24: 4603 mov r3, r0 + 8018c26: 747b strb r3, [r7, #17] if(ok) { - 8018cbc: 7c7b ldrb r3, [r7, #17] - 8018cbe: 2b00 cmp r3, #0 - 8018cc0: d00d beq.n 8018cde + 8018c28: 7c7b ldrb r3, [r7, #17] + 8018c2a: 2b00 cmp r3, #0 + 8018c2c: d00d beq.n 8018c4a q->draw_ctx->clip_area = &quarter_area; - 8018cc2: 687b ldr r3, [r7, #4] - 8018cc4: 699b ldr r3, [r3, #24] - 8018cc6: f107 0208 add.w r2, r7, #8 - 8018cca: 609a str r2, [r3, #8] + 8018c2e: 687b ldr r3, [r7, #4] + 8018c30: 699b ldr r3, [r3, #24] + 8018c32: f107 0208 add.w r2, r7, #8 + 8018c36: 609a str r2, [r3, #8] lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); - 8018ccc: 687b ldr r3, [r7, #4] - 8018cce: 6998 ldr r0, [r3, #24] - 8018cd0: 687b ldr r3, [r7, #4] - 8018cd2: 691b ldr r3, [r3, #16] - 8018cd4: f107 0208 add.w r2, r7, #8 - 8018cd8: 4619 mov r1, r3 - 8018cda: f7fc fdcd bl 8015878 + 8018c38: 687b ldr r3, [r7, #4] + 8018c3a: 6998 ldr r0, [r3, #24] + 8018c3c: 687b ldr r3, [r7, #4] + 8018c3e: 691b ldr r3, [r3, #16] + 8018c40: f107 0208 add.w r2, r7, #8 + 8018c44: 4619 mov r1, r3 + 8018c46: f7fc fdcd bl 80157e4 } } if(q->end_quarter == 1) { - 8018cde: 687b ldr r3, [r7, #4] - 8018ce0: 899b ldrh r3, [r3, #12] - 8018ce2: 2b01 cmp r3, #1 - 8018ce4: f040 80d7 bne.w 8018e96 + 8018c4a: 687b ldr r3, [r7, #4] + 8018c4c: 899b ldrh r3, [r3, #12] + 8018c4e: 2b01 cmp r3, #1 + 8018c50: f040 80d7 bne.w 8018e02 quarter_area.x2 = q->center->x - 1; - 8018ce8: 687b ldr r3, [r7, #4] - 8018cea: 681b ldr r3, [r3, #0] - 8018cec: f9b3 3000 ldrsh.w r3, [r3] - 8018cf0: b29b uxth r3, r3 - 8018cf2: 3b01 subs r3, #1 - 8018cf4: b29b uxth r3, r3 - 8018cf6: b21b sxth r3, r3 - 8018cf8: 81bb strh r3, [r7, #12] + 8018c54: 687b ldr r3, [r7, #4] + 8018c56: 681b ldr r3, [r3, #0] + 8018c58: f9b3 3000 ldrsh.w r3, [r3] + 8018c5c: b29b uxth r3, r3 + 8018c5e: 3b01 subs r3, #1 + 8018c60: b29b uxth r3, r3 + 8018c62: b21b sxth r3, r3 + 8018c64: 81bb strh r3, [r7, #12] quarter_area.y2 = q->center->y + q->radius; - 8018cfa: 687b ldr r3, [r7, #4] - 8018cfc: 681b ldr r3, [r3, #0] - 8018cfe: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018d02: b29a uxth r2, r3 - 8018d04: 687b ldr r3, [r7, #4] - 8018d06: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018d0a: b29b uxth r3, r3 - 8018d0c: 4413 add r3, r2 - 8018d0e: b29b uxth r3, r3 - 8018d10: b21b sxth r3, r3 - 8018d12: 81fb strh r3, [r7, #14] + 8018c66: 687b ldr r3, [r7, #4] + 8018c68: 681b ldr r3, [r3, #0] + 8018c6a: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018c6e: b29a uxth r2, r3 + 8018c70: 687b ldr r3, [r7, #4] + 8018c72: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018c76: b29b uxth r3, r3 + 8018c78: 4413 add r3, r2 + 8018c7a: b29b uxth r3, r3 + 8018c7c: b21b sxth r3, r3 + 8018c7e: 81fb strh r3, [r7, #14] quarter_area.y1 = q->center->y + ((lv_trigo_sin(q->end_angle) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); - 8018d14: 687b ldr r3, [r7, #4] - 8018d16: 681b ldr r3, [r3, #0] - 8018d18: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018d1c: b29c uxth r4, r3 - 8018d1e: 687b ldr r3, [r7, #4] - 8018d20: 891b ldrh r3, [r3, #8] - 8018d22: b21b sxth r3, r3 - 8018d24: 4618 mov r0, r3 - 8018d26: f019 fbd1 bl 80324cc - 8018d2a: 4603 mov r3, r0 - 8018d2c: 461a mov r2, r3 - 8018d2e: 687b ldr r3, [r7, #4] - 8018d30: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018d34: 4619 mov r1, r3 - 8018d36: 687b ldr r3, [r7, #4] - 8018d38: f9b3 300e ldrsh.w r3, [r3, #14] - 8018d3c: 1acb subs r3, r1, r3 - 8018d3e: fb02 f303 mul.w r3, r2, r3 - 8018d42: 13db asrs r3, r3, #15 - 8018d44: b29b uxth r3, r3 - 8018d46: 4423 add r3, r4 - 8018d48: b29b uxth r3, r3 - 8018d4a: b21b sxth r3, r3 - 8018d4c: 817b strh r3, [r7, #10] + 8018c80: 687b ldr r3, [r7, #4] + 8018c82: 681b ldr r3, [r3, #0] + 8018c84: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018c88: b29c uxth r4, r3 + 8018c8a: 687b ldr r3, [r7, #4] + 8018c8c: 891b ldrh r3, [r3, #8] + 8018c8e: b21b sxth r3, r3 + 8018c90: 4618 mov r0, r3 + 8018c92: f019 fbd1 bl 8032438 + 8018c96: 4603 mov r3, r0 + 8018c98: 461a mov r2, r3 + 8018c9a: 687b ldr r3, [r7, #4] + 8018c9c: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018ca0: 4619 mov r1, r3 + 8018ca2: 687b ldr r3, [r7, #4] + 8018ca4: f9b3 300e ldrsh.w r3, [r3, #14] + 8018ca8: 1acb subs r3, r1, r3 + 8018caa: fb02 f303 mul.w r3, r2, r3 + 8018cae: 13db asrs r3, r3, #15 + 8018cb0: b29b uxth r3, r3 + 8018cb2: 4423 add r3, r4 + 8018cb4: b29b uxth r3, r3 + 8018cb6: b21b sxth r3, r3 + 8018cb8: 817b strh r3, [r7, #10] quarter_area.x1 = q->center->x + ((lv_trigo_sin(q->end_angle + 90) * (q->radius)) >> LV_TRIGO_SHIFT); - 8018d4e: 687b ldr r3, [r7, #4] - 8018d50: 681b ldr r3, [r3, #0] - 8018d52: f9b3 3000 ldrsh.w r3, [r3] - 8018d56: b29c uxth r4, r3 - 8018d58: 687b ldr r3, [r7, #4] - 8018d5a: 891b ldrh r3, [r3, #8] - 8018d5c: 335a adds r3, #90 ; 0x5a - 8018d5e: b29b uxth r3, r3 - 8018d60: b21b sxth r3, r3 - 8018d62: 4618 mov r0, r3 - 8018d64: f019 fbb2 bl 80324cc - 8018d68: 4603 mov r3, r0 - 8018d6a: 461a mov r2, r3 - 8018d6c: 687b ldr r3, [r7, #4] - 8018d6e: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018d72: fb02 f303 mul.w r3, r2, r3 - 8018d76: 13db asrs r3, r3, #15 - 8018d78: b29b uxth r3, r3 - 8018d7a: 4423 add r3, r4 - 8018d7c: b29b uxth r3, r3 - 8018d7e: b21b sxth r3, r3 - 8018d80: 813b strh r3, [r7, #8] + 8018cba: 687b ldr r3, [r7, #4] + 8018cbc: 681b ldr r3, [r3, #0] + 8018cbe: f9b3 3000 ldrsh.w r3, [r3] + 8018cc2: b29c uxth r4, r3 + 8018cc4: 687b ldr r3, [r7, #4] + 8018cc6: 891b ldrh r3, [r3, #8] + 8018cc8: 335a adds r3, #90 ; 0x5a + 8018cca: b29b uxth r3, r3 + 8018ccc: b21b sxth r3, r3 + 8018cce: 4618 mov r0, r3 + 8018cd0: f019 fbb2 bl 8032438 + 8018cd4: 4603 mov r3, r0 + 8018cd6: 461a mov r2, r3 + 8018cd8: 687b ldr r3, [r7, #4] + 8018cda: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018cde: fb02 f303 mul.w r3, r2, r3 + 8018ce2: 13db asrs r3, r3, #15 + 8018ce4: b29b uxth r3, r3 + 8018ce6: 4423 add r3, r4 + 8018ce8: b29b uxth r3, r3 + 8018cea: b21b sxth r3, r3 + 8018cec: 813b strh r3, [r7, #8] bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); - 8018d82: f107 0108 add.w r1, r7, #8 - 8018d86: f107 0308 add.w r3, r7, #8 - 8018d8a: 697a ldr r2, [r7, #20] - 8018d8c: 4618 mov r0, r3 - 8018d8e: f018 f98b bl 80310a8 <_lv_area_intersect> - 8018d92: 4603 mov r3, r0 - 8018d94: 743b strb r3, [r7, #16] + 8018cee: f107 0108 add.w r1, r7, #8 + 8018cf2: f107 0308 add.w r3, r7, #8 + 8018cf6: 697a ldr r2, [r7, #20] + 8018cf8: 4618 mov r0, r3 + 8018cfa: f018 f98b bl 8031014 <_lv_area_intersect> + 8018cfe: 4603 mov r3, r0 + 8018d00: 743b strb r3, [r7, #16] if(ok) { - 8018d96: 7c3b ldrb r3, [r7, #16] - 8018d98: 2b00 cmp r3, #0 - 8018d9a: d07c beq.n 8018e96 + 8018d02: 7c3b ldrb r3, [r7, #16] + 8018d04: 2b00 cmp r3, #0 + 8018d06: d07c beq.n 8018e02 q->draw_ctx->clip_area = &quarter_area; - 8018d9c: 687b ldr r3, [r7, #4] - 8018d9e: 699b ldr r3, [r3, #24] - 8018da0: f107 0208 add.w r2, r7, #8 - 8018da4: 609a str r2, [r3, #8] + 8018d08: 687b ldr r3, [r7, #4] + 8018d0a: 699b ldr r3, [r3, #24] + 8018d0c: f107 0208 add.w r2, r7, #8 + 8018d10: 609a str r2, [r3, #8] lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); - 8018da6: 687b ldr r3, [r7, #4] - 8018da8: 6998 ldr r0, [r3, #24] - 8018daa: 687b ldr r3, [r7, #4] - 8018dac: 691b ldr r3, [r3, #16] - 8018dae: f107 0208 add.w r2, r7, #8 - 8018db2: 4619 mov r1, r3 - 8018db4: f7fc fd60 bl 8015878 + 8018d12: 687b ldr r3, [r7, #4] + 8018d14: 6998 ldr r0, [r3, #24] + 8018d16: 687b ldr r3, [r7, #4] + 8018d18: 691b ldr r3, [r3, #16] + 8018d1a: f107 0208 add.w r2, r7, #8 + 8018d1e: 4619 mov r1, r3 + 8018d20: f7fc fd60 bl 80157e4 if(q->end_quarter == 1) { - 8018db8: e06d b.n 8018e96 + 8018d24: e06d b.n 8018e02 } } } else if((q->start_quarter == q->end_quarter && q->start_quarter != 1 && q->end_angle < q->start_angle) || - 8018dba: 687b ldr r3, [r7, #4] - 8018dbc: 895a ldrh r2, [r3, #10] - 8018dbe: 687b ldr r3, [r7, #4] - 8018dc0: 899b ldrh r3, [r3, #12] - 8018dc2: 429a cmp r2, r3 - 8018dc4: d109 bne.n 8018dda - 8018dc6: 687b ldr r3, [r7, #4] - 8018dc8: 895b ldrh r3, [r3, #10] - 8018dca: 2b01 cmp r3, #1 - 8018dcc: d005 beq.n 8018dda - 8018dce: 687b ldr r3, [r7, #4] - 8018dd0: 891a ldrh r2, [r3, #8] - 8018dd2: 687b ldr r3, [r7, #4] - 8018dd4: 88db ldrh r3, [r3, #6] - 8018dd6: 429a cmp r2, r3 - 8018dd8: d317 bcc.n 8018e0a + 8018d26: 687b ldr r3, [r7, #4] + 8018d28: 895a ldrh r2, [r3, #10] + 8018d2a: 687b ldr r3, [r7, #4] + 8018d2c: 899b ldrh r3, [r3, #12] + 8018d2e: 429a cmp r2, r3 + 8018d30: d109 bne.n 8018d46 + 8018d32: 687b ldr r3, [r7, #4] + 8018d34: 895b ldrh r3, [r3, #10] + 8018d36: 2b01 cmp r3, #1 + 8018d38: d005 beq.n 8018d46 + 8018d3a: 687b ldr r3, [r7, #4] + 8018d3c: 891a ldrh r2, [r3, #8] + 8018d3e: 687b ldr r3, [r7, #4] + 8018d40: 88db ldrh r3, [r3, #6] + 8018d42: 429a cmp r2, r3 + 8018d44: d317 bcc.n 8018d76 (q->start_quarter == 0 && q->end_quarter == 2) || - 8018dda: 687b ldr r3, [r7, #4] - 8018ddc: 895b ldrh r3, [r3, #10] + 8018d46: 687b ldr r3, [r7, #4] + 8018d48: 895b ldrh r3, [r3, #10] else if((q->start_quarter == q->end_quarter && q->start_quarter != 1 && q->end_angle < q->start_angle) || - 8018dde: 2b00 cmp r3, #0 - 8018de0: d103 bne.n 8018dea + 8018d4a: 2b00 cmp r3, #0 + 8018d4c: d103 bne.n 8018d56 (q->start_quarter == 0 && q->end_quarter == 2) || - 8018de2: 687b ldr r3, [r7, #4] - 8018de4: 899b ldrh r3, [r3, #12] - 8018de6: 2b02 cmp r3, #2 - 8018de8: d00f beq.n 8018e0a + 8018d4e: 687b ldr r3, [r7, #4] + 8018d50: 899b ldrh r3, [r3, #12] + 8018d52: 2b02 cmp r3, #2 + 8018d54: d00f beq.n 8018d76 (q->start_quarter == 0 && q->end_quarter == 3) || - 8018dea: 687b ldr r3, [r7, #4] - 8018dec: 895b ldrh r3, [r3, #10] + 8018d56: 687b ldr r3, [r7, #4] + 8018d58: 895b ldrh r3, [r3, #10] (q->start_quarter == 0 && q->end_quarter == 2) || - 8018dee: 2b00 cmp r3, #0 - 8018df0: d103 bne.n 8018dfa + 8018d5a: 2b00 cmp r3, #0 + 8018d5c: d103 bne.n 8018d66 (q->start_quarter == 0 && q->end_quarter == 3) || - 8018df2: 687b ldr r3, [r7, #4] - 8018df4: 899b ldrh r3, [r3, #12] - 8018df6: 2b03 cmp r3, #3 - 8018df8: d007 beq.n 8018e0a + 8018d5e: 687b ldr r3, [r7, #4] + 8018d60: 899b ldrh r3, [r3, #12] + 8018d62: 2b03 cmp r3, #3 + 8018d64: d007 beq.n 8018d76 (q->start_quarter == 3 && q->end_quarter == 2)) { - 8018dfa: 687b ldr r3, [r7, #4] - 8018dfc: 895b ldrh r3, [r3, #10] + 8018d66: 687b ldr r3, [r7, #4] + 8018d68: 895b ldrh r3, [r3, #10] (q->start_quarter == 0 && q->end_quarter == 3) || - 8018dfe: 2b03 cmp r3, #3 - 8018e00: d14a bne.n 8018e98 + 8018d6a: 2b03 cmp r3, #3 + 8018d6c: d14a bne.n 8018e04 (q->start_quarter == 3 && q->end_quarter == 2)) { - 8018e02: 687b ldr r3, [r7, #4] - 8018e04: 899b ldrh r3, [r3, #12] - 8018e06: 2b02 cmp r3, #2 - 8018e08: d146 bne.n 8018e98 + 8018d6e: 687b ldr r3, [r7, #4] + 8018d70: 899b ldrh r3, [r3, #12] + 8018d72: 2b02 cmp r3, #2 + 8018d74: d146 bne.n 8018e04 /*Arc crosses here*/ quarter_area.x1 = q->center->x - q->radius; - 8018e0a: 687b ldr r3, [r7, #4] - 8018e0c: 681b ldr r3, [r3, #0] - 8018e0e: f9b3 3000 ldrsh.w r3, [r3] - 8018e12: b29a uxth r2, r3 - 8018e14: 687b ldr r3, [r7, #4] - 8018e16: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018e1a: b29b uxth r3, r3 - 8018e1c: 1ad3 subs r3, r2, r3 - 8018e1e: b29b uxth r3, r3 - 8018e20: b21b sxth r3, r3 - 8018e22: 813b strh r3, [r7, #8] + 8018d76: 687b ldr r3, [r7, #4] + 8018d78: 681b ldr r3, [r3, #0] + 8018d7a: f9b3 3000 ldrsh.w r3, [r3] + 8018d7e: b29a uxth r2, r3 + 8018d80: 687b ldr r3, [r7, #4] + 8018d82: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018d86: b29b uxth r3, r3 + 8018d88: 1ad3 subs r3, r2, r3 + 8018d8a: b29b uxth r3, r3 + 8018d8c: b21b sxth r3, r3 + 8018d8e: 813b strh r3, [r7, #8] quarter_area.y1 = q->center->y; - 8018e24: 687b ldr r3, [r7, #4] - 8018e26: 681b ldr r3, [r3, #0] - 8018e28: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018e2c: 817b strh r3, [r7, #10] + 8018d90: 687b ldr r3, [r7, #4] + 8018d92: 681b ldr r3, [r3, #0] + 8018d94: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018d98: 817b strh r3, [r7, #10] quarter_area.x2 = q->center->x - 1; - 8018e2e: 687b ldr r3, [r7, #4] - 8018e30: 681b ldr r3, [r3, #0] - 8018e32: f9b3 3000 ldrsh.w r3, [r3] - 8018e36: b29b uxth r3, r3 - 8018e38: 3b01 subs r3, #1 - 8018e3a: b29b uxth r3, r3 - 8018e3c: b21b sxth r3, r3 - 8018e3e: 81bb strh r3, [r7, #12] + 8018d9a: 687b ldr r3, [r7, #4] + 8018d9c: 681b ldr r3, [r3, #0] + 8018d9e: f9b3 3000 ldrsh.w r3, [r3] + 8018da2: b29b uxth r3, r3 + 8018da4: 3b01 subs r3, #1 + 8018da6: b29b uxth r3, r3 + 8018da8: b21b sxth r3, r3 + 8018daa: 81bb strh r3, [r7, #12] quarter_area.y2 = q->center->y + q->radius; - 8018e40: 687b ldr r3, [r7, #4] - 8018e42: 681b ldr r3, [r3, #0] - 8018e44: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018e48: b29a uxth r2, r3 - 8018e4a: 687b ldr r3, [r7, #4] - 8018e4c: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018e50: b29b uxth r3, r3 - 8018e52: 4413 add r3, r2 - 8018e54: b29b uxth r3, r3 - 8018e56: b21b sxth r3, r3 - 8018e58: 81fb strh r3, [r7, #14] + 8018dac: 687b ldr r3, [r7, #4] + 8018dae: 681b ldr r3, [r3, #0] + 8018db0: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018db4: b29a uxth r2, r3 + 8018db6: 687b ldr r3, [r7, #4] + 8018db8: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018dbc: b29b uxth r3, r3 + 8018dbe: 4413 add r3, r2 + 8018dc0: b29b uxth r3, r3 + 8018dc2: b21b sxth r3, r3 + 8018dc4: 81fb strh r3, [r7, #14] bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); - 8018e5a: f107 0108 add.w r1, r7, #8 - 8018e5e: f107 0308 add.w r3, r7, #8 - 8018e62: 697a ldr r2, [r7, #20] - 8018e64: 4618 mov r0, r3 - 8018e66: f018 f91f bl 80310a8 <_lv_area_intersect> - 8018e6a: 4603 mov r3, r0 - 8018e6c: 74bb strb r3, [r7, #18] + 8018dc6: f107 0108 add.w r1, r7, #8 + 8018dca: f107 0308 add.w r3, r7, #8 + 8018dce: 697a ldr r2, [r7, #20] + 8018dd0: 4618 mov r0, r3 + 8018dd2: f018 f91f bl 8031014 <_lv_area_intersect> + 8018dd6: 4603 mov r3, r0 + 8018dd8: 74bb strb r3, [r7, #18] if(ok) { - 8018e6e: 7cbb ldrb r3, [r7, #18] - 8018e70: 2b00 cmp r3, #0 - 8018e72: d011 beq.n 8018e98 + 8018dda: 7cbb ldrb r3, [r7, #18] + 8018ddc: 2b00 cmp r3, #0 + 8018dde: d011 beq.n 8018e04 q->draw_ctx->clip_area = &quarter_area; - 8018e74: 687b ldr r3, [r7, #4] - 8018e76: 699b ldr r3, [r3, #24] - 8018e78: f107 0208 add.w r2, r7, #8 - 8018e7c: 609a str r2, [r3, #8] + 8018de0: 687b ldr r3, [r7, #4] + 8018de2: 699b ldr r3, [r3, #24] + 8018de4: f107 0208 add.w r2, r7, #8 + 8018de8: 609a str r2, [r3, #8] lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); - 8018e7e: 687b ldr r3, [r7, #4] - 8018e80: 6998 ldr r0, [r3, #24] - 8018e82: 687b ldr r3, [r7, #4] - 8018e84: 691b ldr r3, [r3, #16] - 8018e86: f107 0208 add.w r2, r7, #8 - 8018e8a: 4619 mov r1, r3 - 8018e8c: f7fc fcf4 bl 8015878 - 8018e90: e002 b.n 8018e98 + 8018dea: 687b ldr r3, [r7, #4] + 8018dec: 6998 ldr r0, [r3, #24] + 8018dee: 687b ldr r3, [r7, #4] + 8018df0: 691b ldr r3, [r3, #16] + 8018df2: f107 0208 add.w r2, r7, #8 + 8018df6: 4619 mov r1, r3 + 8018df8: f7fc fcf4 bl 80157e4 + 8018dfc: e002 b.n 8018e04 if(q->start_quarter == 1 && q->end_quarter == 1 && q->start_angle < q->end_angle) { - 8018e92: bf00 nop - 8018e94: e000 b.n 8018e98 + 8018dfe: bf00 nop + 8018e00: e000 b.n 8018e04 if(q->end_quarter == 1) { - 8018e96: bf00 nop + 8018e02: bf00 nop } } q->draw_ctx->clip_area = clip_area_ori; - 8018e98: 687b ldr r3, [r7, #4] - 8018e9a: 699b ldr r3, [r3, #24] - 8018e9c: 697a ldr r2, [r7, #20] - 8018e9e: 609a str r2, [r3, #8] + 8018e04: 687b ldr r3, [r7, #4] + 8018e06: 699b ldr r3, [r3, #24] + 8018e08: 697a ldr r2, [r7, #20] + 8018e0a: 609a str r2, [r3, #8] } - 8018ea0: bf00 nop - 8018ea2: 371c adds r7, #28 - 8018ea4: 46bd mov sp, r7 - 8018ea6: bd90 pop {r4, r7, pc} + 8018e0c: bf00 nop + 8018e0e: 371c adds r7, #28 + 8018e10: 46bd mov sp, r7 + 8018e12: bd90 pop {r4, r7, pc} -08018ea8 : +08018e14 : static void draw_quarter_2(quarter_draw_dsc_t * q) { - 8018ea8: b590 push {r4, r7, lr} - 8018eaa: b087 sub sp, #28 - 8018eac: af00 add r7, sp, #0 - 8018eae: 6078 str r0, [r7, #4] + 8018e14: b590 push {r4, r7, lr} + 8018e16: b087 sub sp, #28 + 8018e18: af00 add r7, sp, #0 + 8018e1a: 6078 str r0, [r7, #4] const lv_area_t * clip_area_ori = q->draw_ctx->clip_area; - 8018eb0: 687b ldr r3, [r7, #4] - 8018eb2: 699b ldr r3, [r3, #24] - 8018eb4: 689b ldr r3, [r3, #8] - 8018eb6: 617b str r3, [r7, #20] + 8018e1c: 687b ldr r3, [r7, #4] + 8018e1e: 699b ldr r3, [r3, #24] + 8018e20: 689b ldr r3, [r3, #8] + 8018e22: 617b str r3, [r7, #20] lv_area_t quarter_area; if(q->start_quarter == 2 && q->end_quarter == 2 && q->start_angle < q->end_angle) { - 8018eb8: 687b ldr r3, [r7, #4] - 8018eba: 895b ldrh r3, [r3, #10] - 8018ebc: 2b02 cmp r3, #2 - 8018ebe: f040 8097 bne.w 8018ff0 - 8018ec2: 687b ldr r3, [r7, #4] - 8018ec4: 899b ldrh r3, [r3, #12] - 8018ec6: 2b02 cmp r3, #2 - 8018ec8: f040 8092 bne.w 8018ff0 - 8018ecc: 687b ldr r3, [r7, #4] - 8018ece: 88da ldrh r2, [r3, #6] - 8018ed0: 687b ldr r3, [r7, #4] - 8018ed2: 891b ldrh r3, [r3, #8] - 8018ed4: 429a cmp r2, r3 - 8018ed6: f080 808b bcs.w 8018ff0 + 8018e24: 687b ldr r3, [r7, #4] + 8018e26: 895b ldrh r3, [r3, #10] + 8018e28: 2b02 cmp r3, #2 + 8018e2a: f040 8097 bne.w 8018f5c + 8018e2e: 687b ldr r3, [r7, #4] + 8018e30: 899b ldrh r3, [r3, #12] + 8018e32: 2b02 cmp r3, #2 + 8018e34: f040 8092 bne.w 8018f5c + 8018e38: 687b ldr r3, [r7, #4] + 8018e3a: 88da ldrh r2, [r3, #6] + 8018e3c: 687b ldr r3, [r7, #4] + 8018e3e: 891b ldrh r3, [r3, #8] + 8018e40: 429a cmp r2, r3 + 8018e42: f080 808b bcs.w 8018f5c /*Small arc here*/ quarter_area.x1 = q->center->x + ((lv_trigo_sin(q->start_angle + 90) * (q->radius)) >> LV_TRIGO_SHIFT); - 8018eda: 687b ldr r3, [r7, #4] - 8018edc: 681b ldr r3, [r3, #0] - 8018ede: f9b3 3000 ldrsh.w r3, [r3] - 8018ee2: b29c uxth r4, r3 - 8018ee4: 687b ldr r3, [r7, #4] - 8018ee6: 88db ldrh r3, [r3, #6] - 8018ee8: 335a adds r3, #90 ; 0x5a - 8018eea: b29b uxth r3, r3 - 8018eec: b21b sxth r3, r3 - 8018eee: 4618 mov r0, r3 - 8018ef0: f019 faec bl 80324cc - 8018ef4: 4603 mov r3, r0 - 8018ef6: 461a mov r2, r3 - 8018ef8: 687b ldr r3, [r7, #4] - 8018efa: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018efe: fb02 f303 mul.w r3, r2, r3 - 8018f02: 13db asrs r3, r3, #15 - 8018f04: b29b uxth r3, r3 - 8018f06: 4423 add r3, r4 - 8018f08: b29b uxth r3, r3 - 8018f0a: b21b sxth r3, r3 - 8018f0c: 813b strh r3, [r7, #8] + 8018e46: 687b ldr r3, [r7, #4] + 8018e48: 681b ldr r3, [r3, #0] + 8018e4a: f9b3 3000 ldrsh.w r3, [r3] + 8018e4e: b29c uxth r4, r3 + 8018e50: 687b ldr r3, [r7, #4] + 8018e52: 88db ldrh r3, [r3, #6] + 8018e54: 335a adds r3, #90 ; 0x5a + 8018e56: b29b uxth r3, r3 + 8018e58: b21b sxth r3, r3 + 8018e5a: 4618 mov r0, r3 + 8018e5c: f019 faec bl 8032438 + 8018e60: 4603 mov r3, r0 + 8018e62: 461a mov r2, r3 + 8018e64: 687b ldr r3, [r7, #4] + 8018e66: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018e6a: fb02 f303 mul.w r3, r2, r3 + 8018e6e: 13db asrs r3, r3, #15 + 8018e70: b29b uxth r3, r3 + 8018e72: 4423 add r3, r4 + 8018e74: b29b uxth r3, r3 + 8018e76: b21b sxth r3, r3 + 8018e78: 813b strh r3, [r7, #8] quarter_area.y2 = q->center->y + ((lv_trigo_sin(q->start_angle) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); - 8018f0e: 687b ldr r3, [r7, #4] - 8018f10: 681b ldr r3, [r3, #0] - 8018f12: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018f16: b29c uxth r4, r3 - 8018f18: 687b ldr r3, [r7, #4] - 8018f1a: 88db ldrh r3, [r3, #6] - 8018f1c: b21b sxth r3, r3 - 8018f1e: 4618 mov r0, r3 - 8018f20: f019 fad4 bl 80324cc - 8018f24: 4603 mov r3, r0 - 8018f26: 461a mov r2, r3 - 8018f28: 687b ldr r3, [r7, #4] - 8018f2a: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018f2e: 4619 mov r1, r3 - 8018f30: 687b ldr r3, [r7, #4] - 8018f32: f9b3 300e ldrsh.w r3, [r3, #14] - 8018f36: 1acb subs r3, r1, r3 - 8018f38: fb02 f303 mul.w r3, r2, r3 - 8018f3c: 13db asrs r3, r3, #15 - 8018f3e: b29b uxth r3, r3 - 8018f40: 4423 add r3, r4 - 8018f42: b29b uxth r3, r3 - 8018f44: b21b sxth r3, r3 - 8018f46: 81fb strh r3, [r7, #14] + 8018e7a: 687b ldr r3, [r7, #4] + 8018e7c: 681b ldr r3, [r3, #0] + 8018e7e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018e82: b29c uxth r4, r3 + 8018e84: 687b ldr r3, [r7, #4] + 8018e86: 88db ldrh r3, [r3, #6] + 8018e88: b21b sxth r3, r3 + 8018e8a: 4618 mov r0, r3 + 8018e8c: f019 fad4 bl 8032438 + 8018e90: 4603 mov r3, r0 + 8018e92: 461a mov r2, r3 + 8018e94: 687b ldr r3, [r7, #4] + 8018e96: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018e9a: 4619 mov r1, r3 + 8018e9c: 687b ldr r3, [r7, #4] + 8018e9e: f9b3 300e ldrsh.w r3, [r3, #14] + 8018ea2: 1acb subs r3, r1, r3 + 8018ea4: fb02 f303 mul.w r3, r2, r3 + 8018ea8: 13db asrs r3, r3, #15 + 8018eaa: b29b uxth r3, r3 + 8018eac: 4423 add r3, r4 + 8018eae: b29b uxth r3, r3 + 8018eb0: b21b sxth r3, r3 + 8018eb2: 81fb strh r3, [r7, #14] quarter_area.y1 = q->center->y + ((lv_trigo_sin(q->end_angle) * q->radius) >> LV_TRIGO_SHIFT); - 8018f48: 687b ldr r3, [r7, #4] - 8018f4a: 681b ldr r3, [r3, #0] - 8018f4c: f9b3 3002 ldrsh.w r3, [r3, #2] - 8018f50: b29c uxth r4, r3 - 8018f52: 687b ldr r3, [r7, #4] - 8018f54: 891b ldrh r3, [r3, #8] - 8018f56: b21b sxth r3, r3 - 8018f58: 4618 mov r0, r3 - 8018f5a: f019 fab7 bl 80324cc - 8018f5e: 4603 mov r3, r0 - 8018f60: 461a mov r2, r3 - 8018f62: 687b ldr r3, [r7, #4] - 8018f64: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018f68: fb02 f303 mul.w r3, r2, r3 - 8018f6c: 13db asrs r3, r3, #15 - 8018f6e: b29b uxth r3, r3 - 8018f70: 4423 add r3, r4 - 8018f72: b29b uxth r3, r3 - 8018f74: b21b sxth r3, r3 - 8018f76: 817b strh r3, [r7, #10] + 8018eb4: 687b ldr r3, [r7, #4] + 8018eb6: 681b ldr r3, [r3, #0] + 8018eb8: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018ebc: b29c uxth r4, r3 + 8018ebe: 687b ldr r3, [r7, #4] + 8018ec0: 891b ldrh r3, [r3, #8] + 8018ec2: b21b sxth r3, r3 + 8018ec4: 4618 mov r0, r3 + 8018ec6: f019 fab7 bl 8032438 + 8018eca: 4603 mov r3, r0 + 8018ecc: 461a mov r2, r3 + 8018ece: 687b ldr r3, [r7, #4] + 8018ed0: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018ed4: fb02 f303 mul.w r3, r2, r3 + 8018ed8: 13db asrs r3, r3, #15 + 8018eda: b29b uxth r3, r3 + 8018edc: 4423 add r3, r4 + 8018ede: b29b uxth r3, r3 + 8018ee0: b21b sxth r3, r3 + 8018ee2: 817b strh r3, [r7, #10] quarter_area.x2 = q->center->x + ((lv_trigo_sin(q->end_angle + 90) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); - 8018f78: 687b ldr r3, [r7, #4] - 8018f7a: 681b ldr r3, [r3, #0] - 8018f7c: f9b3 3000 ldrsh.w r3, [r3] - 8018f80: b29c uxth r4, r3 - 8018f82: 687b ldr r3, [r7, #4] - 8018f84: 891b ldrh r3, [r3, #8] - 8018f86: 335a adds r3, #90 ; 0x5a - 8018f88: b29b uxth r3, r3 - 8018f8a: b21b sxth r3, r3 - 8018f8c: 4618 mov r0, r3 - 8018f8e: f019 fa9d bl 80324cc - 8018f92: 4603 mov r3, r0 - 8018f94: 461a mov r2, r3 - 8018f96: 687b ldr r3, [r7, #4] - 8018f98: f9b3 3004 ldrsh.w r3, [r3, #4] - 8018f9c: 4619 mov r1, r3 - 8018f9e: 687b ldr r3, [r7, #4] - 8018fa0: f9b3 300e ldrsh.w r3, [r3, #14] - 8018fa4: 1acb subs r3, r1, r3 - 8018fa6: fb02 f303 mul.w r3, r2, r3 - 8018faa: 13db asrs r3, r3, #15 - 8018fac: b29b uxth r3, r3 - 8018fae: 4423 add r3, r4 - 8018fb0: b29b uxth r3, r3 - 8018fb2: b21b sxth r3, r3 - 8018fb4: 81bb strh r3, [r7, #12] + 8018ee4: 687b ldr r3, [r7, #4] + 8018ee6: 681b ldr r3, [r3, #0] + 8018ee8: f9b3 3000 ldrsh.w r3, [r3] + 8018eec: b29c uxth r4, r3 + 8018eee: 687b ldr r3, [r7, #4] + 8018ef0: 891b ldrh r3, [r3, #8] + 8018ef2: 335a adds r3, #90 ; 0x5a + 8018ef4: b29b uxth r3, r3 + 8018ef6: b21b sxth r3, r3 + 8018ef8: 4618 mov r0, r3 + 8018efa: f019 fa9d bl 8032438 + 8018efe: 4603 mov r3, r0 + 8018f00: 461a mov r2, r3 + 8018f02: 687b ldr r3, [r7, #4] + 8018f04: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018f08: 4619 mov r1, r3 + 8018f0a: 687b ldr r3, [r7, #4] + 8018f0c: f9b3 300e ldrsh.w r3, [r3, #14] + 8018f10: 1acb subs r3, r1, r3 + 8018f12: fb02 f303 mul.w r3, r2, r3 + 8018f16: 13db asrs r3, r3, #15 + 8018f18: b29b uxth r3, r3 + 8018f1a: 4423 add r3, r4 + 8018f1c: b29b uxth r3, r3 + 8018f1e: b21b sxth r3, r3 + 8018f20: 81bb strh r3, [r7, #12] bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); - 8018fb6: f107 0108 add.w r1, r7, #8 - 8018fba: f107 0308 add.w r3, r7, #8 - 8018fbe: 697a ldr r2, [r7, #20] - 8018fc0: 4618 mov r0, r3 - 8018fc2: f018 f871 bl 80310a8 <_lv_area_intersect> - 8018fc6: 4603 mov r3, r0 - 8018fc8: 74fb strb r3, [r7, #19] + 8018f22: f107 0108 add.w r1, r7, #8 + 8018f26: f107 0308 add.w r3, r7, #8 + 8018f2a: 697a ldr r2, [r7, #20] + 8018f2c: 4618 mov r0, r3 + 8018f2e: f018 f871 bl 8031014 <_lv_area_intersect> + 8018f32: 4603 mov r3, r0 + 8018f34: 74fb strb r3, [r7, #19] if(ok) { - 8018fca: 7cfb ldrb r3, [r7, #19] - 8018fcc: 2b00 cmp r3, #0 - 8018fce: f000 8163 beq.w 8019298 + 8018f36: 7cfb ldrb r3, [r7, #19] + 8018f38: 2b00 cmp r3, #0 + 8018f3a: f000 8163 beq.w 8019204 q->draw_ctx->clip_area = &quarter_area; - 8018fd2: 687b ldr r3, [r7, #4] - 8018fd4: 699b ldr r3, [r3, #24] - 8018fd6: f107 0208 add.w r2, r7, #8 - 8018fda: 609a str r2, [r3, #8] + 8018f3e: 687b ldr r3, [r7, #4] + 8018f40: 699b ldr r3, [r3, #24] + 8018f42: f107 0208 add.w r2, r7, #8 + 8018f46: 609a str r2, [r3, #8] lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); - 8018fdc: 687b ldr r3, [r7, #4] - 8018fde: 6998 ldr r0, [r3, #24] - 8018fe0: 687b ldr r3, [r7, #4] - 8018fe2: 691b ldr r3, [r3, #16] - 8018fe4: f107 0208 add.w r2, r7, #8 - 8018fe8: 4619 mov r1, r3 - 8018fea: f7fc fc45 bl 8015878 + 8018f48: 687b ldr r3, [r7, #4] + 8018f4a: 6998 ldr r0, [r3, #24] + 8018f4c: 687b ldr r3, [r7, #4] + 8018f4e: 691b ldr r3, [r3, #16] + 8018f50: f107 0208 add.w r2, r7, #8 + 8018f54: 4619 mov r1, r3 + 8018f56: f7fc fc45 bl 80157e4 if(q->start_quarter == 2 && q->end_quarter == 2 && q->start_angle < q->end_angle) { - 8018fee: e153 b.n 8019298 + 8018f5a: e153 b.n 8019204 } } else if(q->start_quarter == 2 || q->end_quarter == 2) { - 8018ff0: 687b ldr r3, [r7, #4] - 8018ff2: 895b ldrh r3, [r3, #10] - 8018ff4: 2b02 cmp r3, #2 - 8018ff6: d004 beq.n 8019002 - 8018ff8: 687b ldr r3, [r7, #4] - 8018ffa: 899b ldrh r3, [r3, #12] - 8018ffc: 2b02 cmp r3, #2 - 8018ffe: f040 80db bne.w 80191b8 + 8018f5c: 687b ldr r3, [r7, #4] + 8018f5e: 895b ldrh r3, [r3, #10] + 8018f60: 2b02 cmp r3, #2 + 8018f62: d004 beq.n 8018f6e + 8018f64: 687b ldr r3, [r7, #4] + 8018f66: 899b ldrh r3, [r3, #12] + 8018f68: 2b02 cmp r3, #2 + 8018f6a: f040 80db bne.w 8019124 /*Start and/or end arcs here*/ if(q->start_quarter == 2) { - 8019002: 687b ldr r3, [r7, #4] - 8019004: 895b ldrh r3, [r3, #10] - 8019006: 2b02 cmp r3, #2 - 8019008: d167 bne.n 80190da + 8018f6e: 687b ldr r3, [r7, #4] + 8018f70: 895b ldrh r3, [r3, #10] + 8018f72: 2b02 cmp r3, #2 + 8018f74: d167 bne.n 8019046 quarter_area.x2 = q->center->x - 1; - 801900a: 687b ldr r3, [r7, #4] - 801900c: 681b ldr r3, [r3, #0] - 801900e: f9b3 3000 ldrsh.w r3, [r3] - 8019012: b29b uxth r3, r3 - 8019014: 3b01 subs r3, #1 - 8019016: b29b uxth r3, r3 - 8019018: b21b sxth r3, r3 - 801901a: 81bb strh r3, [r7, #12] + 8018f76: 687b ldr r3, [r7, #4] + 8018f78: 681b ldr r3, [r3, #0] + 8018f7a: f9b3 3000 ldrsh.w r3, [r3] + 8018f7e: b29b uxth r3, r3 + 8018f80: 3b01 subs r3, #1 + 8018f82: b29b uxth r3, r3 + 8018f84: b21b sxth r3, r3 + 8018f86: 81bb strh r3, [r7, #12] quarter_area.y1 = q->center->y - q->radius; - 801901c: 687b ldr r3, [r7, #4] - 801901e: 681b ldr r3, [r3, #0] - 8019020: f9b3 3002 ldrsh.w r3, [r3, #2] - 8019024: b29a uxth r2, r3 - 8019026: 687b ldr r3, [r7, #4] - 8019028: f9b3 3004 ldrsh.w r3, [r3, #4] - 801902c: b29b uxth r3, r3 - 801902e: 1ad3 subs r3, r2, r3 - 8019030: b29b uxth r3, r3 - 8019032: b21b sxth r3, r3 - 8019034: 817b strh r3, [r7, #10] + 8018f88: 687b ldr r3, [r7, #4] + 8018f8a: 681b ldr r3, [r3, #0] + 8018f8c: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018f90: b29a uxth r2, r3 + 8018f92: 687b ldr r3, [r7, #4] + 8018f94: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018f98: b29b uxth r3, r3 + 8018f9a: 1ad3 subs r3, r2, r3 + 8018f9c: b29b uxth r3, r3 + 8018f9e: b21b sxth r3, r3 + 8018fa0: 817b strh r3, [r7, #10] quarter_area.x1 = q->center->x + ((lv_trigo_sin(q->start_angle + 90) * (q->radius)) >> LV_TRIGO_SHIFT); - 8019036: 687b ldr r3, [r7, #4] - 8019038: 681b ldr r3, [r3, #0] - 801903a: f9b3 3000 ldrsh.w r3, [r3] - 801903e: b29c uxth r4, r3 - 8019040: 687b ldr r3, [r7, #4] - 8019042: 88db ldrh r3, [r3, #6] - 8019044: 335a adds r3, #90 ; 0x5a - 8019046: b29b uxth r3, r3 - 8019048: b21b sxth r3, r3 - 801904a: 4618 mov r0, r3 - 801904c: f019 fa3e bl 80324cc - 8019050: 4603 mov r3, r0 - 8019052: 461a mov r2, r3 - 8019054: 687b ldr r3, [r7, #4] - 8019056: f9b3 3004 ldrsh.w r3, [r3, #4] - 801905a: fb02 f303 mul.w r3, r2, r3 - 801905e: 13db asrs r3, r3, #15 + 8018fa2: 687b ldr r3, [r7, #4] + 8018fa4: 681b ldr r3, [r3, #0] + 8018fa6: f9b3 3000 ldrsh.w r3, [r3] + 8018faa: b29c uxth r4, r3 + 8018fac: 687b ldr r3, [r7, #4] + 8018fae: 88db ldrh r3, [r3, #6] + 8018fb0: 335a adds r3, #90 ; 0x5a + 8018fb2: b29b uxth r3, r3 + 8018fb4: b21b sxth r3, r3 + 8018fb6: 4618 mov r0, r3 + 8018fb8: f019 fa3e bl 8032438 + 8018fbc: 4603 mov r3, r0 + 8018fbe: 461a mov r2, r3 + 8018fc0: 687b ldr r3, [r7, #4] + 8018fc2: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018fc6: fb02 f303 mul.w r3, r2, r3 + 8018fca: 13db asrs r3, r3, #15 + 8018fcc: b29b uxth r3, r3 + 8018fce: 4423 add r3, r4 + 8018fd0: b29b uxth r3, r3 + 8018fd2: b21b sxth r3, r3 + 8018fd4: 813b strh r3, [r7, #8] + quarter_area.y2 = q->center->y + ((lv_trigo_sin(q->start_angle) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); + 8018fd6: 687b ldr r3, [r7, #4] + 8018fd8: 681b ldr r3, [r3, #0] + 8018fda: f9b3 3002 ldrsh.w r3, [r3, #2] + 8018fde: b29c uxth r4, r3 + 8018fe0: 687b ldr r3, [r7, #4] + 8018fe2: 88db ldrh r3, [r3, #6] + 8018fe4: b21b sxth r3, r3 + 8018fe6: 4618 mov r0, r3 + 8018fe8: f019 fa26 bl 8032438 + 8018fec: 4603 mov r3, r0 + 8018fee: 461a mov r2, r3 + 8018ff0: 687b ldr r3, [r7, #4] + 8018ff2: f9b3 3004 ldrsh.w r3, [r3, #4] + 8018ff6: 4619 mov r1, r3 + 8018ff8: 687b ldr r3, [r7, #4] + 8018ffa: f9b3 300e ldrsh.w r3, [r3, #14] + 8018ffe: 1acb subs r3, r1, r3 + 8019000: fb02 f303 mul.w r3, r2, r3 + 8019004: 13db asrs r3, r3, #15 + 8019006: b29b uxth r3, r3 + 8019008: 4423 add r3, r4 + 801900a: b29b uxth r3, r3 + 801900c: b21b sxth r3, r3 + 801900e: 81fb strh r3, [r7, #14] + + bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); + 8019010: f107 0108 add.w r1, r7, #8 + 8019014: f107 0308 add.w r3, r7, #8 + 8019018: 697a ldr r2, [r7, #20] + 801901a: 4618 mov r0, r3 + 801901c: f017 fffa bl 8031014 <_lv_area_intersect> + 8019020: 4603 mov r3, r0 + 8019022: 747b strb r3, [r7, #17] + if(ok) { + 8019024: 7c7b ldrb r3, [r7, #17] + 8019026: 2b00 cmp r3, #0 + 8019028: d00d beq.n 8019046 + q->draw_ctx->clip_area = &quarter_area; + 801902a: 687b ldr r3, [r7, #4] + 801902c: 699b ldr r3, [r3, #24] + 801902e: f107 0208 add.w r2, r7, #8 + 8019032: 609a str r2, [r3, #8] + lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); + 8019034: 687b ldr r3, [r7, #4] + 8019036: 6998 ldr r0, [r3, #24] + 8019038: 687b ldr r3, [r7, #4] + 801903a: 691b ldr r3, [r3, #16] + 801903c: f107 0208 add.w r2, r7, #8 + 8019040: 4619 mov r1, r3 + 8019042: f7fc fbcf bl 80157e4 + } + } + if(q->end_quarter == 2) { + 8019046: 687b ldr r3, [r7, #4] + 8019048: 899b ldrh r3, [r3, #12] + 801904a: 2b02 cmp r3, #2 + 801904c: f040 80dc bne.w 8019208 + quarter_area.x1 = q->center->x - q->radius; + 8019050: 687b ldr r3, [r7, #4] + 8019052: 681b ldr r3, [r3, #0] + 8019054: f9b3 3000 ldrsh.w r3, [r3] + 8019058: b29a uxth r2, r3 + 801905a: 687b ldr r3, [r7, #4] + 801905c: f9b3 3004 ldrsh.w r3, [r3, #4] 8019060: b29b uxth r3, r3 - 8019062: 4423 add r3, r4 + 8019062: 1ad3 subs r3, r2, r3 8019064: b29b uxth r3, r3 8019066: b21b sxth r3, r3 8019068: 813b strh r3, [r7, #8] - quarter_area.y2 = q->center->y + ((lv_trigo_sin(q->start_angle) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); + quarter_area.y2 = q->center->y - 1; 801906a: 687b ldr r3, [r7, #4] 801906c: 681b ldr r3, [r3, #0] 801906e: f9b3 3002 ldrsh.w r3, [r3, #2] - 8019072: b29c uxth r4, r3 - 8019074: 687b ldr r3, [r7, #4] - 8019076: 88db ldrh r3, [r3, #6] + 8019072: b29b uxth r3, r3 + 8019074: 3b01 subs r3, #1 + 8019076: b29b uxth r3, r3 8019078: b21b sxth r3, r3 - 801907a: 4618 mov r0, r3 - 801907c: f019 fa26 bl 80324cc - 8019080: 4603 mov r3, r0 - 8019082: 461a mov r2, r3 - 8019084: 687b ldr r3, [r7, #4] - 8019086: f9b3 3004 ldrsh.w r3, [r3, #4] - 801908a: 4619 mov r1, r3 - 801908c: 687b ldr r3, [r7, #4] - 801908e: f9b3 300e ldrsh.w r3, [r3, #14] - 8019092: 1acb subs r3, r1, r3 - 8019094: fb02 f303 mul.w r3, r2, r3 - 8019098: 13db asrs r3, r3, #15 - 801909a: b29b uxth r3, r3 - 801909c: 4423 add r3, r4 - 801909e: b29b uxth r3, r3 - 80190a0: b21b sxth r3, r3 - 80190a2: 81fb strh r3, [r7, #14] - - bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); - 80190a4: f107 0108 add.w r1, r7, #8 - 80190a8: f107 0308 add.w r3, r7, #8 - 80190ac: 697a ldr r2, [r7, #20] - 80190ae: 4618 mov r0, r3 - 80190b0: f017 fffa bl 80310a8 <_lv_area_intersect> - 80190b4: 4603 mov r3, r0 - 80190b6: 747b strb r3, [r7, #17] - if(ok) { - 80190b8: 7c7b ldrb r3, [r7, #17] - 80190ba: 2b00 cmp r3, #0 - 80190bc: d00d beq.n 80190da - q->draw_ctx->clip_area = &quarter_area; - 80190be: 687b ldr r3, [r7, #4] - 80190c0: 699b ldr r3, [r3, #24] - 80190c2: f107 0208 add.w r2, r7, #8 - 80190c6: 609a str r2, [r3, #8] - lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); - 80190c8: 687b ldr r3, [r7, #4] - 80190ca: 6998 ldr r0, [r3, #24] - 80190cc: 687b ldr r3, [r7, #4] - 80190ce: 691b ldr r3, [r3, #16] - 80190d0: f107 0208 add.w r2, r7, #8 - 80190d4: 4619 mov r1, r3 - 80190d6: f7fc fbcf bl 8015878 - } - } - if(q->end_quarter == 2) { - 80190da: 687b ldr r3, [r7, #4] - 80190dc: 899b ldrh r3, [r3, #12] - 80190de: 2b02 cmp r3, #2 - 80190e0: f040 80dc bne.w 801929c - quarter_area.x1 = q->center->x - q->radius; - 80190e4: 687b ldr r3, [r7, #4] - 80190e6: 681b ldr r3, [r3, #0] - 80190e8: f9b3 3000 ldrsh.w r3, [r3] - 80190ec: b29a uxth r2, r3 - 80190ee: 687b ldr r3, [r7, #4] - 80190f0: f9b3 3004 ldrsh.w r3, [r3, #4] - 80190f4: b29b uxth r3, r3 - 80190f6: 1ad3 subs r3, r2, r3 - 80190f8: b29b uxth r3, r3 - 80190fa: b21b sxth r3, r3 - 80190fc: 813b strh r3, [r7, #8] - quarter_area.y2 = q->center->y - 1; - 80190fe: 687b ldr r3, [r7, #4] - 8019100: 681b ldr r3, [r3, #0] - 8019102: f9b3 3002 ldrsh.w r3, [r3, #2] - 8019106: b29b uxth r3, r3 - 8019108: 3b01 subs r3, #1 - 801910a: b29b uxth r3, r3 - 801910c: b21b sxth r3, r3 - 801910e: 81fb strh r3, [r7, #14] + 801907a: 81fb strh r3, [r7, #14] quarter_area.x2 = q->center->x + ((lv_trigo_sin(q->end_angle + 90) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); - 8019110: 687b ldr r3, [r7, #4] - 8019112: 681b ldr r3, [r3, #0] - 8019114: f9b3 3000 ldrsh.w r3, [r3] - 8019118: b29c uxth r4, r3 - 801911a: 687b ldr r3, [r7, #4] - 801911c: 891b ldrh r3, [r3, #8] - 801911e: 335a adds r3, #90 ; 0x5a - 8019120: b29b uxth r3, r3 - 8019122: b21b sxth r3, r3 - 8019124: 4618 mov r0, r3 - 8019126: f019 f9d1 bl 80324cc - 801912a: 4603 mov r3, r0 - 801912c: 461a mov r2, r3 - 801912e: 687b ldr r3, [r7, #4] - 8019130: f9b3 3004 ldrsh.w r3, [r3, #4] - 8019134: 4619 mov r1, r3 - 8019136: 687b ldr r3, [r7, #4] - 8019138: f9b3 300e ldrsh.w r3, [r3, #14] - 801913c: 1acb subs r3, r1, r3 - 801913e: fb02 f303 mul.w r3, r2, r3 - 8019142: 13db asrs r3, r3, #15 - 8019144: b29b uxth r3, r3 - 8019146: 4423 add r3, r4 - 8019148: b29b uxth r3, r3 - 801914a: b21b sxth r3, r3 - 801914c: 81bb strh r3, [r7, #12] + 801907c: 687b ldr r3, [r7, #4] + 801907e: 681b ldr r3, [r3, #0] + 8019080: f9b3 3000 ldrsh.w r3, [r3] + 8019084: b29c uxth r4, r3 + 8019086: 687b ldr r3, [r7, #4] + 8019088: 891b ldrh r3, [r3, #8] + 801908a: 335a adds r3, #90 ; 0x5a + 801908c: b29b uxth r3, r3 + 801908e: b21b sxth r3, r3 + 8019090: 4618 mov r0, r3 + 8019092: f019 f9d1 bl 8032438 + 8019096: 4603 mov r3, r0 + 8019098: 461a mov r2, r3 + 801909a: 687b ldr r3, [r7, #4] + 801909c: f9b3 3004 ldrsh.w r3, [r3, #4] + 80190a0: 4619 mov r1, r3 + 80190a2: 687b ldr r3, [r7, #4] + 80190a4: f9b3 300e ldrsh.w r3, [r3, #14] + 80190a8: 1acb subs r3, r1, r3 + 80190aa: fb02 f303 mul.w r3, r2, r3 + 80190ae: 13db asrs r3, r3, #15 + 80190b0: b29b uxth r3, r3 + 80190b2: 4423 add r3, r4 + 80190b4: b29b uxth r3, r3 + 80190b6: b21b sxth r3, r3 + 80190b8: 81bb strh r3, [r7, #12] quarter_area.y1 = q->center->y + ((lv_trigo_sin(q->end_angle) * (q->radius)) >> LV_TRIGO_SHIFT); - 801914e: 687b ldr r3, [r7, #4] - 8019150: 681b ldr r3, [r3, #0] - 8019152: f9b3 3002 ldrsh.w r3, [r3, #2] - 8019156: b29c uxth r4, r3 - 8019158: 687b ldr r3, [r7, #4] - 801915a: 891b ldrh r3, [r3, #8] - 801915c: b21b sxth r3, r3 - 801915e: 4618 mov r0, r3 - 8019160: f019 f9b4 bl 80324cc - 8019164: 4603 mov r3, r0 - 8019166: 461a mov r2, r3 - 8019168: 687b ldr r3, [r7, #4] - 801916a: f9b3 3004 ldrsh.w r3, [r3, #4] - 801916e: fb02 f303 mul.w r3, r2, r3 - 8019172: 13db asrs r3, r3, #15 - 8019174: b29b uxth r3, r3 - 8019176: 4423 add r3, r4 - 8019178: b29b uxth r3, r3 - 801917a: b21b sxth r3, r3 - 801917c: 817b strh r3, [r7, #10] + 80190ba: 687b ldr r3, [r7, #4] + 80190bc: 681b ldr r3, [r3, #0] + 80190be: f9b3 3002 ldrsh.w r3, [r3, #2] + 80190c2: b29c uxth r4, r3 + 80190c4: 687b ldr r3, [r7, #4] + 80190c6: 891b ldrh r3, [r3, #8] + 80190c8: b21b sxth r3, r3 + 80190ca: 4618 mov r0, r3 + 80190cc: f019 f9b4 bl 8032438 + 80190d0: 4603 mov r3, r0 + 80190d2: 461a mov r2, r3 + 80190d4: 687b ldr r3, [r7, #4] + 80190d6: f9b3 3004 ldrsh.w r3, [r3, #4] + 80190da: fb02 f303 mul.w r3, r2, r3 + 80190de: 13db asrs r3, r3, #15 + 80190e0: b29b uxth r3, r3 + 80190e2: 4423 add r3, r4 + 80190e4: b29b uxth r3, r3 + 80190e6: b21b sxth r3, r3 + 80190e8: 817b strh r3, [r7, #10] bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); - 801917e: f107 0108 add.w r1, r7, #8 - 8019182: f107 0308 add.w r3, r7, #8 - 8019186: 697a ldr r2, [r7, #20] - 8019188: 4618 mov r0, r3 - 801918a: f017 ff8d bl 80310a8 <_lv_area_intersect> - 801918e: 4603 mov r3, r0 - 8019190: 743b strb r3, [r7, #16] + 80190ea: f107 0108 add.w r1, r7, #8 + 80190ee: f107 0308 add.w r3, r7, #8 + 80190f2: 697a ldr r2, [r7, #20] + 80190f4: 4618 mov r0, r3 + 80190f6: f017 ff8d bl 8031014 <_lv_area_intersect> + 80190fa: 4603 mov r3, r0 + 80190fc: 743b strb r3, [r7, #16] if(ok) { - 8019192: 7c3b ldrb r3, [r7, #16] - 8019194: 2b00 cmp r3, #0 - 8019196: f000 8081 beq.w 801929c + 80190fe: 7c3b ldrb r3, [r7, #16] + 8019100: 2b00 cmp r3, #0 + 8019102: f000 8081 beq.w 8019208 q->draw_ctx->clip_area = &quarter_area; - 801919a: 687b ldr r3, [r7, #4] - 801919c: 699b ldr r3, [r3, #24] - 801919e: f107 0208 add.w r2, r7, #8 - 80191a2: 609a str r2, [r3, #8] + 8019106: 687b ldr r3, [r7, #4] + 8019108: 699b ldr r3, [r3, #24] + 801910a: f107 0208 add.w r2, r7, #8 + 801910e: 609a str r2, [r3, #8] lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); - 80191a4: 687b ldr r3, [r7, #4] - 80191a6: 6998 ldr r0, [r3, #24] - 80191a8: 687b ldr r3, [r7, #4] - 80191aa: 691b ldr r3, [r3, #16] - 80191ac: f107 0208 add.w r2, r7, #8 - 80191b0: 4619 mov r1, r3 - 80191b2: f7fc fb61 bl 8015878 + 8019110: 687b ldr r3, [r7, #4] + 8019112: 6998 ldr r0, [r3, #24] + 8019114: 687b ldr r3, [r7, #4] + 8019116: 691b ldr r3, [r3, #16] + 8019118: f107 0208 add.w r2, r7, #8 + 801911c: 4619 mov r1, r3 + 801911e: f7fc fb61 bl 80157e4 if(q->end_quarter == 2) { - 80191b6: e071 b.n 801929c + 8019122: e071 b.n 8019208 } } } else if((q->start_quarter == q->end_quarter && q->start_quarter != 2 && q->end_angle < q->start_angle) || - 80191b8: 687b ldr r3, [r7, #4] - 80191ba: 895a ldrh r2, [r3, #10] - 80191bc: 687b ldr r3, [r7, #4] - 80191be: 899b ldrh r3, [r3, #12] - 80191c0: 429a cmp r2, r3 - 80191c2: d109 bne.n 80191d8 - 80191c4: 687b ldr r3, [r7, #4] - 80191c6: 895b ldrh r3, [r3, #10] - 80191c8: 2b02 cmp r3, #2 - 80191ca: d005 beq.n 80191d8 - 80191cc: 687b ldr r3, [r7, #4] - 80191ce: 891a ldrh r2, [r3, #8] - 80191d0: 687b ldr r3, [r7, #4] - 80191d2: 88db ldrh r3, [r3, #6] - 80191d4: 429a cmp r2, r3 - 80191d6: d317 bcc.n 8019208 + 8019124: 687b ldr r3, [r7, #4] + 8019126: 895a ldrh r2, [r3, #10] + 8019128: 687b ldr r3, [r7, #4] + 801912a: 899b ldrh r3, [r3, #12] + 801912c: 429a cmp r2, r3 + 801912e: d109 bne.n 8019144 + 8019130: 687b ldr r3, [r7, #4] + 8019132: 895b ldrh r3, [r3, #10] + 8019134: 2b02 cmp r3, #2 + 8019136: d005 beq.n 8019144 + 8019138: 687b ldr r3, [r7, #4] + 801913a: 891a ldrh r2, [r3, #8] + 801913c: 687b ldr r3, [r7, #4] + 801913e: 88db ldrh r3, [r3, #6] + 8019140: 429a cmp r2, r3 + 8019142: d317 bcc.n 8019174 (q->start_quarter == 0 && q->end_quarter == 3) || - 80191d8: 687b ldr r3, [r7, #4] - 80191da: 895b ldrh r3, [r3, #10] + 8019144: 687b ldr r3, [r7, #4] + 8019146: 895b ldrh r3, [r3, #10] else if((q->start_quarter == q->end_quarter && q->start_quarter != 2 && q->end_angle < q->start_angle) || - 80191dc: 2b00 cmp r3, #0 - 80191de: d103 bne.n 80191e8 + 8019148: 2b00 cmp r3, #0 + 801914a: d103 bne.n 8019154 (q->start_quarter == 0 && q->end_quarter == 3) || - 80191e0: 687b ldr r3, [r7, #4] - 80191e2: 899b ldrh r3, [r3, #12] - 80191e4: 2b03 cmp r3, #3 - 80191e6: d00f beq.n 8019208 + 801914c: 687b ldr r3, [r7, #4] + 801914e: 899b ldrh r3, [r3, #12] + 8019150: 2b03 cmp r3, #3 + 8019152: d00f beq.n 8019174 (q->start_quarter == 1 && q->end_quarter == 3) || - 80191e8: 687b ldr r3, [r7, #4] - 80191ea: 895b ldrh r3, [r3, #10] + 8019154: 687b ldr r3, [r7, #4] + 8019156: 895b ldrh r3, [r3, #10] (q->start_quarter == 0 && q->end_quarter == 3) || - 80191ec: 2b01 cmp r3, #1 - 80191ee: d103 bne.n 80191f8 + 8019158: 2b01 cmp r3, #1 + 801915a: d103 bne.n 8019164 (q->start_quarter == 1 && q->end_quarter == 3) || - 80191f0: 687b ldr r3, [r7, #4] - 80191f2: 899b ldrh r3, [r3, #12] - 80191f4: 2b03 cmp r3, #3 - 80191f6: d007 beq.n 8019208 + 801915c: 687b ldr r3, [r7, #4] + 801915e: 899b ldrh r3, [r3, #12] + 8019160: 2b03 cmp r3, #3 + 8019162: d007 beq.n 8019174 (q->start_quarter == 1 && q->end_quarter == 0)) { - 80191f8: 687b ldr r3, [r7, #4] - 80191fa: 895b ldrh r3, [r3, #10] + 8019164: 687b ldr r3, [r7, #4] + 8019166: 895b ldrh r3, [r3, #10] (q->start_quarter == 1 && q->end_quarter == 3) || - 80191fc: 2b01 cmp r3, #1 - 80191fe: d14e bne.n 801929e + 8019168: 2b01 cmp r3, #1 + 801916a: d14e bne.n 801920a (q->start_quarter == 1 && q->end_quarter == 0)) { - 8019200: 687b ldr r3, [r7, #4] - 8019202: 899b ldrh r3, [r3, #12] - 8019204: 2b00 cmp r3, #0 - 8019206: d14a bne.n 801929e + 801916c: 687b ldr r3, [r7, #4] + 801916e: 899b ldrh r3, [r3, #12] + 8019170: 2b00 cmp r3, #0 + 8019172: d14a bne.n 801920a /*Arc crosses here*/ quarter_area.x1 = q->center->x - q->radius; - 8019208: 687b ldr r3, [r7, #4] - 801920a: 681b ldr r3, [r3, #0] - 801920c: f9b3 3000 ldrsh.w r3, [r3] - 8019210: b29a uxth r2, r3 - 8019212: 687b ldr r3, [r7, #4] - 8019214: f9b3 3004 ldrsh.w r3, [r3, #4] - 8019218: b29b uxth r3, r3 - 801921a: 1ad3 subs r3, r2, r3 - 801921c: b29b uxth r3, r3 - 801921e: b21b sxth r3, r3 - 8019220: 813b strh r3, [r7, #8] + 8019174: 687b ldr r3, [r7, #4] + 8019176: 681b ldr r3, [r3, #0] + 8019178: f9b3 3000 ldrsh.w r3, [r3] + 801917c: b29a uxth r2, r3 + 801917e: 687b ldr r3, [r7, #4] + 8019180: f9b3 3004 ldrsh.w r3, [r3, #4] + 8019184: b29b uxth r3, r3 + 8019186: 1ad3 subs r3, r2, r3 + 8019188: b29b uxth r3, r3 + 801918a: b21b sxth r3, r3 + 801918c: 813b strh r3, [r7, #8] quarter_area.y1 = q->center->y - q->radius; - 8019222: 687b ldr r3, [r7, #4] - 8019224: 681b ldr r3, [r3, #0] - 8019226: f9b3 3002 ldrsh.w r3, [r3, #2] - 801922a: b29a uxth r2, r3 - 801922c: 687b ldr r3, [r7, #4] - 801922e: f9b3 3004 ldrsh.w r3, [r3, #4] - 8019232: b29b uxth r3, r3 - 8019234: 1ad3 subs r3, r2, r3 - 8019236: b29b uxth r3, r3 - 8019238: b21b sxth r3, r3 - 801923a: 817b strh r3, [r7, #10] + 801918e: 687b ldr r3, [r7, #4] + 8019190: 681b ldr r3, [r3, #0] + 8019192: f9b3 3002 ldrsh.w r3, [r3, #2] + 8019196: b29a uxth r2, r3 + 8019198: 687b ldr r3, [r7, #4] + 801919a: f9b3 3004 ldrsh.w r3, [r3, #4] + 801919e: b29b uxth r3, r3 + 80191a0: 1ad3 subs r3, r2, r3 + 80191a2: b29b uxth r3, r3 + 80191a4: b21b sxth r3, r3 + 80191a6: 817b strh r3, [r7, #10] quarter_area.x2 = q->center->x - 1; - 801923c: 687b ldr r3, [r7, #4] - 801923e: 681b ldr r3, [r3, #0] - 8019240: f9b3 3000 ldrsh.w r3, [r3] - 8019244: b29b uxth r3, r3 - 8019246: 3b01 subs r3, #1 - 8019248: b29b uxth r3, r3 - 801924a: b21b sxth r3, r3 - 801924c: 81bb strh r3, [r7, #12] + 80191a8: 687b ldr r3, [r7, #4] + 80191aa: 681b ldr r3, [r3, #0] + 80191ac: f9b3 3000 ldrsh.w r3, [r3] + 80191b0: b29b uxth r3, r3 + 80191b2: 3b01 subs r3, #1 + 80191b4: b29b uxth r3, r3 + 80191b6: b21b sxth r3, r3 + 80191b8: 81bb strh r3, [r7, #12] quarter_area.y2 = q->center->y - 1; - 801924e: 687b ldr r3, [r7, #4] - 8019250: 681b ldr r3, [r3, #0] - 8019252: f9b3 3002 ldrsh.w r3, [r3, #2] - 8019256: b29b uxth r3, r3 - 8019258: 3b01 subs r3, #1 - 801925a: b29b uxth r3, r3 - 801925c: b21b sxth r3, r3 - 801925e: 81fb strh r3, [r7, #14] + 80191ba: 687b ldr r3, [r7, #4] + 80191bc: 681b ldr r3, [r3, #0] + 80191be: f9b3 3002 ldrsh.w r3, [r3, #2] + 80191c2: b29b uxth r3, r3 + 80191c4: 3b01 subs r3, #1 + 80191c6: b29b uxth r3, r3 + 80191c8: b21b sxth r3, r3 + 80191ca: 81fb strh r3, [r7, #14] bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); - 8019260: f107 0108 add.w r1, r7, #8 - 8019264: f107 0308 add.w r3, r7, #8 - 8019268: 697a ldr r2, [r7, #20] - 801926a: 4618 mov r0, r3 - 801926c: f017 ff1c bl 80310a8 <_lv_area_intersect> - 8019270: 4603 mov r3, r0 - 8019272: 74bb strb r3, [r7, #18] + 80191cc: f107 0108 add.w r1, r7, #8 + 80191d0: f107 0308 add.w r3, r7, #8 + 80191d4: 697a ldr r2, [r7, #20] + 80191d6: 4618 mov r0, r3 + 80191d8: f017 ff1c bl 8031014 <_lv_area_intersect> + 80191dc: 4603 mov r3, r0 + 80191de: 74bb strb r3, [r7, #18] if(ok) { - 8019274: 7cbb ldrb r3, [r7, #18] - 8019276: 2b00 cmp r3, #0 - 8019278: d011 beq.n 801929e + 80191e0: 7cbb ldrb r3, [r7, #18] + 80191e2: 2b00 cmp r3, #0 + 80191e4: d011 beq.n 801920a q->draw_ctx->clip_area = &quarter_area; - 801927a: 687b ldr r3, [r7, #4] - 801927c: 699b ldr r3, [r3, #24] - 801927e: f107 0208 add.w r2, r7, #8 - 8019282: 609a str r2, [r3, #8] + 80191e6: 687b ldr r3, [r7, #4] + 80191e8: 699b ldr r3, [r3, #24] + 80191ea: f107 0208 add.w r2, r7, #8 + 80191ee: 609a str r2, [r3, #8] lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); - 8019284: 687b ldr r3, [r7, #4] - 8019286: 6998 ldr r0, [r3, #24] - 8019288: 687b ldr r3, [r7, #4] - 801928a: 691b ldr r3, [r3, #16] - 801928c: f107 0208 add.w r2, r7, #8 - 8019290: 4619 mov r1, r3 - 8019292: f7fc faf1 bl 8015878 - 8019296: e002 b.n 801929e + 80191f0: 687b ldr r3, [r7, #4] + 80191f2: 6998 ldr r0, [r3, #24] + 80191f4: 687b ldr r3, [r7, #4] + 80191f6: 691b ldr r3, [r3, #16] + 80191f8: f107 0208 add.w r2, r7, #8 + 80191fc: 4619 mov r1, r3 + 80191fe: f7fc faf1 bl 80157e4 + 8019202: e002 b.n 801920a if(q->start_quarter == 2 && q->end_quarter == 2 && q->start_angle < q->end_angle) { - 8019298: bf00 nop - 801929a: e000 b.n 801929e + 8019204: bf00 nop + 8019206: e000 b.n 801920a if(q->end_quarter == 2) { - 801929c: bf00 nop + 8019208: bf00 nop } } q->draw_ctx->clip_area = clip_area_ori; - 801929e: 687b ldr r3, [r7, #4] - 80192a0: 699b ldr r3, [r3, #24] - 80192a2: 697a ldr r2, [r7, #20] - 80192a4: 609a str r2, [r3, #8] + 801920a: 687b ldr r3, [r7, #4] + 801920c: 699b ldr r3, [r3, #24] + 801920e: 697a ldr r2, [r7, #20] + 8019210: 609a str r2, [r3, #8] } - 80192a6: bf00 nop - 80192a8: 371c adds r7, #28 - 80192aa: 46bd mov sp, r7 - 80192ac: bd90 pop {r4, r7, pc} + 8019212: bf00 nop + 8019214: 371c adds r7, #28 + 8019216: 46bd mov sp, r7 + 8019218: bd90 pop {r4, r7, pc} -080192ae : +0801921a : static void draw_quarter_3(quarter_draw_dsc_t * q) { - 80192ae: b590 push {r4, r7, lr} - 80192b0: b087 sub sp, #28 - 80192b2: af00 add r7, sp, #0 - 80192b4: 6078 str r0, [r7, #4] + 801921a: b590 push {r4, r7, lr} + 801921c: b087 sub sp, #28 + 801921e: af00 add r7, sp, #0 + 8019220: 6078 str r0, [r7, #4] const lv_area_t * clip_area_ori = q->draw_ctx->clip_area; - 80192b6: 687b ldr r3, [r7, #4] - 80192b8: 699b ldr r3, [r3, #24] - 80192ba: 689b ldr r3, [r3, #8] - 80192bc: 617b str r3, [r7, #20] + 8019222: 687b ldr r3, [r7, #4] + 8019224: 699b ldr r3, [r3, #24] + 8019226: 689b ldr r3, [r3, #8] + 8019228: 617b str r3, [r7, #20] lv_area_t quarter_area; if(q->start_quarter == 3 && q->end_quarter == 3 && q->start_angle < q->end_angle) { - 80192be: 687b ldr r3, [r7, #4] - 80192c0: 895b ldrh r3, [r3, #10] - 80192c2: 2b03 cmp r3, #3 - 80192c4: f040 8097 bne.w 80193f6 - 80192c8: 687b ldr r3, [r7, #4] - 80192ca: 899b ldrh r3, [r3, #12] - 80192cc: 2b03 cmp r3, #3 - 80192ce: f040 8092 bne.w 80193f6 - 80192d2: 687b ldr r3, [r7, #4] - 80192d4: 88da ldrh r2, [r3, #6] - 80192d6: 687b ldr r3, [r7, #4] - 80192d8: 891b ldrh r3, [r3, #8] - 80192da: 429a cmp r2, r3 - 80192dc: f080 808b bcs.w 80193f6 + 801922a: 687b ldr r3, [r7, #4] + 801922c: 895b ldrh r3, [r3, #10] + 801922e: 2b03 cmp r3, #3 + 8019230: f040 8097 bne.w 8019362 + 8019234: 687b ldr r3, [r7, #4] + 8019236: 899b ldrh r3, [r3, #12] + 8019238: 2b03 cmp r3, #3 + 801923a: f040 8092 bne.w 8019362 + 801923e: 687b ldr r3, [r7, #4] + 8019240: 88da ldrh r2, [r3, #6] + 8019242: 687b ldr r3, [r7, #4] + 8019244: 891b ldrh r3, [r3, #8] + 8019246: 429a cmp r2, r3 + 8019248: f080 808b bcs.w 8019362 /*Small arc here*/ quarter_area.x1 = q->center->x + ((lv_trigo_sin(q->start_angle + 90) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); - 80192e0: 687b ldr r3, [r7, #4] - 80192e2: 681b ldr r3, [r3, #0] - 80192e4: f9b3 3000 ldrsh.w r3, [r3] - 80192e8: b29c uxth r4, r3 - 80192ea: 687b ldr r3, [r7, #4] - 80192ec: 88db ldrh r3, [r3, #6] - 80192ee: 335a adds r3, #90 ; 0x5a - 80192f0: b29b uxth r3, r3 - 80192f2: b21b sxth r3, r3 - 80192f4: 4618 mov r0, r3 - 80192f6: f019 f8e9 bl 80324cc - 80192fa: 4603 mov r3, r0 - 80192fc: 461a mov r2, r3 - 80192fe: 687b ldr r3, [r7, #4] - 8019300: f9b3 3004 ldrsh.w r3, [r3, #4] - 8019304: 4619 mov r1, r3 - 8019306: 687b ldr r3, [r7, #4] - 8019308: f9b3 300e ldrsh.w r3, [r3, #14] - 801930c: 1acb subs r3, r1, r3 - 801930e: fb02 f303 mul.w r3, r2, r3 - 8019312: 13db asrs r3, r3, #15 - 8019314: b29b uxth r3, r3 - 8019316: 4423 add r3, r4 - 8019318: b29b uxth r3, r3 - 801931a: b21b sxth r3, r3 - 801931c: 813b strh r3, [r7, #8] + 801924c: 687b ldr r3, [r7, #4] + 801924e: 681b ldr r3, [r3, #0] + 8019250: f9b3 3000 ldrsh.w r3, [r3] + 8019254: b29c uxth r4, r3 + 8019256: 687b ldr r3, [r7, #4] + 8019258: 88db ldrh r3, [r3, #6] + 801925a: 335a adds r3, #90 ; 0x5a + 801925c: b29b uxth r3, r3 + 801925e: b21b sxth r3, r3 + 8019260: 4618 mov r0, r3 + 8019262: f019 f8e9 bl 8032438 + 8019266: 4603 mov r3, r0 + 8019268: 461a mov r2, r3 + 801926a: 687b ldr r3, [r7, #4] + 801926c: f9b3 3004 ldrsh.w r3, [r3, #4] + 8019270: 4619 mov r1, r3 + 8019272: 687b ldr r3, [r7, #4] + 8019274: f9b3 300e ldrsh.w r3, [r3, #14] + 8019278: 1acb subs r3, r1, r3 + 801927a: fb02 f303 mul.w r3, r2, r3 + 801927e: 13db asrs r3, r3, #15 + 8019280: b29b uxth r3, r3 + 8019282: 4423 add r3, r4 + 8019284: b29b uxth r3, r3 + 8019286: b21b sxth r3, r3 + 8019288: 813b strh r3, [r7, #8] quarter_area.y1 = q->center->y + ((lv_trigo_sin(q->start_angle) * (q->radius)) >> LV_TRIGO_SHIFT); - 801931e: 687b ldr r3, [r7, #4] - 8019320: 681b ldr r3, [r3, #0] - 8019322: f9b3 3002 ldrsh.w r3, [r3, #2] - 8019326: b29c uxth r4, r3 - 8019328: 687b ldr r3, [r7, #4] - 801932a: 88db ldrh r3, [r3, #6] - 801932c: b21b sxth r3, r3 - 801932e: 4618 mov r0, r3 - 8019330: f019 f8cc bl 80324cc - 8019334: 4603 mov r3, r0 - 8019336: 461a mov r2, r3 - 8019338: 687b ldr r3, [r7, #4] - 801933a: f9b3 3004 ldrsh.w r3, [r3, #4] - 801933e: fb02 f303 mul.w r3, r2, r3 - 8019342: 13db asrs r3, r3, #15 - 8019344: b29b uxth r3, r3 - 8019346: 4423 add r3, r4 - 8019348: b29b uxth r3, r3 - 801934a: b21b sxth r3, r3 - 801934c: 817b strh r3, [r7, #10] + 801928a: 687b ldr r3, [r7, #4] + 801928c: 681b ldr r3, [r3, #0] + 801928e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8019292: b29c uxth r4, r3 + 8019294: 687b ldr r3, [r7, #4] + 8019296: 88db ldrh r3, [r3, #6] + 8019298: b21b sxth r3, r3 + 801929a: 4618 mov r0, r3 + 801929c: f019 f8cc bl 8032438 + 80192a0: 4603 mov r3, r0 + 80192a2: 461a mov r2, r3 + 80192a4: 687b ldr r3, [r7, #4] + 80192a6: f9b3 3004 ldrsh.w r3, [r3, #4] + 80192aa: fb02 f303 mul.w r3, r2, r3 + 80192ae: 13db asrs r3, r3, #15 + 80192b0: b29b uxth r3, r3 + 80192b2: 4423 add r3, r4 + 80192b4: b29b uxth r3, r3 + 80192b6: b21b sxth r3, r3 + 80192b8: 817b strh r3, [r7, #10] quarter_area.x2 = q->center->x + ((lv_trigo_sin(q->end_angle + 90) * (q->radius)) >> LV_TRIGO_SHIFT); - 801934e: 687b ldr r3, [r7, #4] - 8019350: 681b ldr r3, [r3, #0] - 8019352: f9b3 3000 ldrsh.w r3, [r3] - 8019356: b29c uxth r4, r3 - 8019358: 687b ldr r3, [r7, #4] - 801935a: 891b ldrh r3, [r3, #8] - 801935c: 335a adds r3, #90 ; 0x5a - 801935e: b29b uxth r3, r3 - 8019360: b21b sxth r3, r3 - 8019362: 4618 mov r0, r3 - 8019364: f019 f8b2 bl 80324cc - 8019368: 4603 mov r3, r0 - 801936a: 461a mov r2, r3 - 801936c: 687b ldr r3, [r7, #4] - 801936e: f9b3 3004 ldrsh.w r3, [r3, #4] - 8019372: fb02 f303 mul.w r3, r2, r3 - 8019376: 13db asrs r3, r3, #15 - 8019378: b29b uxth r3, r3 - 801937a: 4423 add r3, r4 - 801937c: b29b uxth r3, r3 - 801937e: b21b sxth r3, r3 - 8019380: 81bb strh r3, [r7, #12] + 80192ba: 687b ldr r3, [r7, #4] + 80192bc: 681b ldr r3, [r3, #0] + 80192be: f9b3 3000 ldrsh.w r3, [r3] + 80192c2: b29c uxth r4, r3 + 80192c4: 687b ldr r3, [r7, #4] + 80192c6: 891b ldrh r3, [r3, #8] + 80192c8: 335a adds r3, #90 ; 0x5a + 80192ca: b29b uxth r3, r3 + 80192cc: b21b sxth r3, r3 + 80192ce: 4618 mov r0, r3 + 80192d0: f019 f8b2 bl 8032438 + 80192d4: 4603 mov r3, r0 + 80192d6: 461a mov r2, r3 + 80192d8: 687b ldr r3, [r7, #4] + 80192da: f9b3 3004 ldrsh.w r3, [r3, #4] + 80192de: fb02 f303 mul.w r3, r2, r3 + 80192e2: 13db asrs r3, r3, #15 + 80192e4: b29b uxth r3, r3 + 80192e6: 4423 add r3, r4 + 80192e8: b29b uxth r3, r3 + 80192ea: b21b sxth r3, r3 + 80192ec: 81bb strh r3, [r7, #12] quarter_area.y2 = q->center->y + ((lv_trigo_sin(q->end_angle) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); - 8019382: 687b ldr r3, [r7, #4] - 8019384: 681b ldr r3, [r3, #0] - 8019386: f9b3 3002 ldrsh.w r3, [r3, #2] - 801938a: b29c uxth r4, r3 - 801938c: 687b ldr r3, [r7, #4] - 801938e: 891b ldrh r3, [r3, #8] - 8019390: b21b sxth r3, r3 - 8019392: 4618 mov r0, r3 - 8019394: f019 f89a bl 80324cc - 8019398: 4603 mov r3, r0 - 801939a: 461a mov r2, r3 - 801939c: 687b ldr r3, [r7, #4] - 801939e: f9b3 3004 ldrsh.w r3, [r3, #4] - 80193a2: 4619 mov r1, r3 - 80193a4: 687b ldr r3, [r7, #4] - 80193a6: f9b3 300e ldrsh.w r3, [r3, #14] - 80193aa: 1acb subs r3, r1, r3 - 80193ac: fb02 f303 mul.w r3, r2, r3 - 80193b0: 13db asrs r3, r3, #15 - 80193b2: b29b uxth r3, r3 - 80193b4: 4423 add r3, r4 - 80193b6: b29b uxth r3, r3 - 80193b8: b21b sxth r3, r3 - 80193ba: 81fb strh r3, [r7, #14] + 80192ee: 687b ldr r3, [r7, #4] + 80192f0: 681b ldr r3, [r3, #0] + 80192f2: f9b3 3002 ldrsh.w r3, [r3, #2] + 80192f6: b29c uxth r4, r3 + 80192f8: 687b ldr r3, [r7, #4] + 80192fa: 891b ldrh r3, [r3, #8] + 80192fc: b21b sxth r3, r3 + 80192fe: 4618 mov r0, r3 + 8019300: f019 f89a bl 8032438 + 8019304: 4603 mov r3, r0 + 8019306: 461a mov r2, r3 + 8019308: 687b ldr r3, [r7, #4] + 801930a: f9b3 3004 ldrsh.w r3, [r3, #4] + 801930e: 4619 mov r1, r3 + 8019310: 687b ldr r3, [r7, #4] + 8019312: f9b3 300e ldrsh.w r3, [r3, #14] + 8019316: 1acb subs r3, r1, r3 + 8019318: fb02 f303 mul.w r3, r2, r3 + 801931c: 13db asrs r3, r3, #15 + 801931e: b29b uxth r3, r3 + 8019320: 4423 add r3, r4 + 8019322: b29b uxth r3, r3 + 8019324: b21b sxth r3, r3 + 8019326: 81fb strh r3, [r7, #14] bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); - 80193bc: f107 0108 add.w r1, r7, #8 - 80193c0: f107 0308 add.w r3, r7, #8 - 80193c4: 697a ldr r2, [r7, #20] - 80193c6: 4618 mov r0, r3 - 80193c8: f017 fe6e bl 80310a8 <_lv_area_intersect> - 80193cc: 4603 mov r3, r0 - 80193ce: 74fb strb r3, [r7, #19] + 8019328: f107 0108 add.w r1, r7, #8 + 801932c: f107 0308 add.w r3, r7, #8 + 8019330: 697a ldr r2, [r7, #20] + 8019332: 4618 mov r0, r3 + 8019334: f017 fe6e bl 8031014 <_lv_area_intersect> + 8019338: 4603 mov r3, r0 + 801933a: 74fb strb r3, [r7, #19] if(ok) { - 80193d0: 7cfb ldrb r3, [r7, #19] - 80193d2: 2b00 cmp r3, #0 - 80193d4: f000 815a beq.w 801968c + 801933c: 7cfb ldrb r3, [r7, #19] + 801933e: 2b00 cmp r3, #0 + 8019340: f000 815a beq.w 80195f8 q->draw_ctx->clip_area = &quarter_area; - 80193d8: 687b ldr r3, [r7, #4] - 80193da: 699b ldr r3, [r3, #24] - 80193dc: f107 0208 add.w r2, r7, #8 - 80193e0: 609a str r2, [r3, #8] + 8019344: 687b ldr r3, [r7, #4] + 8019346: 699b ldr r3, [r3, #24] + 8019348: f107 0208 add.w r2, r7, #8 + 801934c: 609a str r2, [r3, #8] lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); - 80193e2: 687b ldr r3, [r7, #4] - 80193e4: 6998 ldr r0, [r3, #24] - 80193e6: 687b ldr r3, [r7, #4] - 80193e8: 691b ldr r3, [r3, #16] - 80193ea: f107 0208 add.w r2, r7, #8 - 80193ee: 4619 mov r1, r3 - 80193f0: f7fc fa42 bl 8015878 + 801934e: 687b ldr r3, [r7, #4] + 8019350: 6998 ldr r0, [r3, #24] + 8019352: 687b ldr r3, [r7, #4] + 8019354: 691b ldr r3, [r3, #16] + 8019356: f107 0208 add.w r2, r7, #8 + 801935a: 4619 mov r1, r3 + 801935c: f7fc fa42 bl 80157e4 if(q->start_quarter == 3 && q->end_quarter == 3 && q->start_angle < q->end_angle) { - 80193f4: e14a b.n 801968c + 8019360: e14a b.n 80195f8 } } else if(q->start_quarter == 3 || q->end_quarter == 3) { - 80193f6: 687b ldr r3, [r7, #4] - 80193f8: 895b ldrh r3, [r3, #10] - 80193fa: 2b03 cmp r3, #3 - 80193fc: d004 beq.n 8019408 - 80193fe: 687b ldr r3, [r7, #4] - 8019400: 899b ldrh r3, [r3, #12] - 8019402: 2b03 cmp r3, #3 - 8019404: f040 80d6 bne.w 80195b4 + 8019362: 687b ldr r3, [r7, #4] + 8019364: 895b ldrh r3, [r3, #10] + 8019366: 2b03 cmp r3, #3 + 8019368: d004 beq.n 8019374 + 801936a: 687b ldr r3, [r7, #4] + 801936c: 899b ldrh r3, [r3, #12] + 801936e: 2b03 cmp r3, #3 + 8019370: f040 80d6 bne.w 8019520 /*Start and/or end arcs here*/ if(q->start_quarter == 3) { - 8019408: 687b ldr r3, [r7, #4] - 801940a: 895b ldrh r3, [r3, #10] - 801940c: 2b03 cmp r3, #3 - 801940e: d167 bne.n 80194e0 + 8019374: 687b ldr r3, [r7, #4] + 8019376: 895b ldrh r3, [r3, #10] + 8019378: 2b03 cmp r3, #3 + 801937a: d167 bne.n 801944c quarter_area.x2 = q->center->x + q->radius; - 8019410: 687b ldr r3, [r7, #4] - 8019412: 681b ldr r3, [r3, #0] - 8019414: f9b3 3000 ldrsh.w r3, [r3] - 8019418: b29a uxth r2, r3 - 801941a: 687b ldr r3, [r7, #4] - 801941c: f9b3 3004 ldrsh.w r3, [r3, #4] - 8019420: b29b uxth r3, r3 - 8019422: 4413 add r3, r2 - 8019424: b29b uxth r3, r3 - 8019426: b21b sxth r3, r3 - 8019428: 81bb strh r3, [r7, #12] + 801937c: 687b ldr r3, [r7, #4] + 801937e: 681b ldr r3, [r3, #0] + 8019380: f9b3 3000 ldrsh.w r3, [r3] + 8019384: b29a uxth r2, r3 + 8019386: 687b ldr r3, [r7, #4] + 8019388: f9b3 3004 ldrsh.w r3, [r3, #4] + 801938c: b29b uxth r3, r3 + 801938e: 4413 add r3, r2 + 8019390: b29b uxth r3, r3 + 8019392: b21b sxth r3, r3 + 8019394: 81bb strh r3, [r7, #12] quarter_area.y2 = q->center->y - 1; - 801942a: 687b ldr r3, [r7, #4] - 801942c: 681b ldr r3, [r3, #0] - 801942e: f9b3 3002 ldrsh.w r3, [r3, #2] - 8019432: b29b uxth r3, r3 - 8019434: 3b01 subs r3, #1 - 8019436: b29b uxth r3, r3 - 8019438: b21b sxth r3, r3 - 801943a: 81fb strh r3, [r7, #14] + 8019396: 687b ldr r3, [r7, #4] + 8019398: 681b ldr r3, [r3, #0] + 801939a: f9b3 3002 ldrsh.w r3, [r3, #2] + 801939e: b29b uxth r3, r3 + 80193a0: 3b01 subs r3, #1 + 80193a2: b29b uxth r3, r3 + 80193a4: b21b sxth r3, r3 + 80193a6: 81fb strh r3, [r7, #14] quarter_area.x1 = q->center->x + ((lv_trigo_sin(q->start_angle + 90) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); - 801943c: 687b ldr r3, [r7, #4] - 801943e: 681b ldr r3, [r3, #0] - 8019440: f9b3 3000 ldrsh.w r3, [r3] - 8019444: b29c uxth r4, r3 - 8019446: 687b ldr r3, [r7, #4] - 8019448: 88db ldrh r3, [r3, #6] - 801944a: 335a adds r3, #90 ; 0x5a - 801944c: b29b uxth r3, r3 - 801944e: b21b sxth r3, r3 - 8019450: 4618 mov r0, r3 - 8019452: f019 f83b bl 80324cc - 8019456: 4603 mov r3, r0 - 8019458: 461a mov r2, r3 - 801945a: 687b ldr r3, [r7, #4] - 801945c: f9b3 3004 ldrsh.w r3, [r3, #4] - 8019460: 4619 mov r1, r3 - 8019462: 687b ldr r3, [r7, #4] - 8019464: f9b3 300e ldrsh.w r3, [r3, #14] - 8019468: 1acb subs r3, r1, r3 - 801946a: fb02 f303 mul.w r3, r2, r3 - 801946e: 13db asrs r3, r3, #15 - 8019470: b29b uxth r3, r3 - 8019472: 4423 add r3, r4 - 8019474: b29b uxth r3, r3 - 8019476: b21b sxth r3, r3 - 8019478: 813b strh r3, [r7, #8] + 80193a8: 687b ldr r3, [r7, #4] + 80193aa: 681b ldr r3, [r3, #0] + 80193ac: f9b3 3000 ldrsh.w r3, [r3] + 80193b0: b29c uxth r4, r3 + 80193b2: 687b ldr r3, [r7, #4] + 80193b4: 88db ldrh r3, [r3, #6] + 80193b6: 335a adds r3, #90 ; 0x5a + 80193b8: b29b uxth r3, r3 + 80193ba: b21b sxth r3, r3 + 80193bc: 4618 mov r0, r3 + 80193be: f019 f83b bl 8032438 + 80193c2: 4603 mov r3, r0 + 80193c4: 461a mov r2, r3 + 80193c6: 687b ldr r3, [r7, #4] + 80193c8: f9b3 3004 ldrsh.w r3, [r3, #4] + 80193cc: 4619 mov r1, r3 + 80193ce: 687b ldr r3, [r7, #4] + 80193d0: f9b3 300e ldrsh.w r3, [r3, #14] + 80193d4: 1acb subs r3, r1, r3 + 80193d6: fb02 f303 mul.w r3, r2, r3 + 80193da: 13db asrs r3, r3, #15 + 80193dc: b29b uxth r3, r3 + 80193de: 4423 add r3, r4 + 80193e0: b29b uxth r3, r3 + 80193e2: b21b sxth r3, r3 + 80193e4: 813b strh r3, [r7, #8] quarter_area.y1 = q->center->y + ((lv_trigo_sin(q->start_angle) * (q->radius)) >> LV_TRIGO_SHIFT); - 801947a: 687b ldr r3, [r7, #4] - 801947c: 681b ldr r3, [r3, #0] - 801947e: f9b3 3002 ldrsh.w r3, [r3, #2] - 8019482: b29c uxth r4, r3 - 8019484: 687b ldr r3, [r7, #4] - 8019486: 88db ldrh r3, [r3, #6] - 8019488: b21b sxth r3, r3 - 801948a: 4618 mov r0, r3 - 801948c: f019 f81e bl 80324cc - 8019490: 4603 mov r3, r0 - 8019492: 461a mov r2, r3 - 8019494: 687b ldr r3, [r7, #4] - 8019496: f9b3 3004 ldrsh.w r3, [r3, #4] - 801949a: fb02 f303 mul.w r3, r2, r3 - 801949e: 13db asrs r3, r3, #15 - 80194a0: b29b uxth r3, r3 - 80194a2: 4423 add r3, r4 - 80194a4: b29b uxth r3, r3 - 80194a6: b21b sxth r3, r3 - 80194a8: 817b strh r3, [r7, #10] + 80193e6: 687b ldr r3, [r7, #4] + 80193e8: 681b ldr r3, [r3, #0] + 80193ea: f9b3 3002 ldrsh.w r3, [r3, #2] + 80193ee: b29c uxth r4, r3 + 80193f0: 687b ldr r3, [r7, #4] + 80193f2: 88db ldrh r3, [r3, #6] + 80193f4: b21b sxth r3, r3 + 80193f6: 4618 mov r0, r3 + 80193f8: f019 f81e bl 8032438 + 80193fc: 4603 mov r3, r0 + 80193fe: 461a mov r2, r3 + 8019400: 687b ldr r3, [r7, #4] + 8019402: f9b3 3004 ldrsh.w r3, [r3, #4] + 8019406: fb02 f303 mul.w r3, r2, r3 + 801940a: 13db asrs r3, r3, #15 + 801940c: b29b uxth r3, r3 + 801940e: 4423 add r3, r4 + 8019410: b29b uxth r3, r3 + 8019412: b21b sxth r3, r3 + 8019414: 817b strh r3, [r7, #10] bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); - 80194aa: f107 0108 add.w r1, r7, #8 - 80194ae: f107 0308 add.w r3, r7, #8 - 80194b2: 697a ldr r2, [r7, #20] - 80194b4: 4618 mov r0, r3 - 80194b6: f017 fdf7 bl 80310a8 <_lv_area_intersect> - 80194ba: 4603 mov r3, r0 - 80194bc: 747b strb r3, [r7, #17] + 8019416: f107 0108 add.w r1, r7, #8 + 801941a: f107 0308 add.w r3, r7, #8 + 801941e: 697a ldr r2, [r7, #20] + 8019420: 4618 mov r0, r3 + 8019422: f017 fdf7 bl 8031014 <_lv_area_intersect> + 8019426: 4603 mov r3, r0 + 8019428: 747b strb r3, [r7, #17] if(ok) { - 80194be: 7c7b ldrb r3, [r7, #17] - 80194c0: 2b00 cmp r3, #0 - 80194c2: d00d beq.n 80194e0 + 801942a: 7c7b ldrb r3, [r7, #17] + 801942c: 2b00 cmp r3, #0 + 801942e: d00d beq.n 801944c q->draw_ctx->clip_area = &quarter_area; - 80194c4: 687b ldr r3, [r7, #4] - 80194c6: 699b ldr r3, [r3, #24] - 80194c8: f107 0208 add.w r2, r7, #8 - 80194cc: 609a str r2, [r3, #8] + 8019430: 687b ldr r3, [r7, #4] + 8019432: 699b ldr r3, [r3, #24] + 8019434: f107 0208 add.w r2, r7, #8 + 8019438: 609a str r2, [r3, #8] lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); - 80194ce: 687b ldr r3, [r7, #4] - 80194d0: 6998 ldr r0, [r3, #24] - 80194d2: 687b ldr r3, [r7, #4] - 80194d4: 691b ldr r3, [r3, #16] - 80194d6: f107 0208 add.w r2, r7, #8 - 80194da: 4619 mov r1, r3 - 80194dc: f7fc f9cc bl 8015878 + 801943a: 687b ldr r3, [r7, #4] + 801943c: 6998 ldr r0, [r3, #24] + 801943e: 687b ldr r3, [r7, #4] + 8019440: 691b ldr r3, [r3, #16] + 8019442: f107 0208 add.w r2, r7, #8 + 8019446: 4619 mov r1, r3 + 8019448: f7fc f9cc bl 80157e4 } } if(q->end_quarter == 3) { - 80194e0: 687b ldr r3, [r7, #4] - 80194e2: 899b ldrh r3, [r3, #12] - 80194e4: 2b03 cmp r3, #3 - 80194e6: f040 80d3 bne.w 8019690 + 801944c: 687b ldr r3, [r7, #4] + 801944e: 899b ldrh r3, [r3, #12] + 8019450: 2b03 cmp r3, #3 + 8019452: f040 80d3 bne.w 80195fc quarter_area.x1 = q->center->x; - 80194ea: 687b ldr r3, [r7, #4] - 80194ec: 681b ldr r3, [r3, #0] - 80194ee: f9b3 3000 ldrsh.w r3, [r3] - 80194f2: 813b strh r3, [r7, #8] + 8019456: 687b ldr r3, [r7, #4] + 8019458: 681b ldr r3, [r3, #0] + 801945a: f9b3 3000 ldrsh.w r3, [r3] + 801945e: 813b strh r3, [r7, #8] quarter_area.y1 = q->center->y - q->radius; - 80194f4: 687b ldr r3, [r7, #4] - 80194f6: 681b ldr r3, [r3, #0] - 80194f8: f9b3 3002 ldrsh.w r3, [r3, #2] - 80194fc: b29a uxth r2, r3 - 80194fe: 687b ldr r3, [r7, #4] - 8019500: f9b3 3004 ldrsh.w r3, [r3, #4] - 8019504: b29b uxth r3, r3 - 8019506: 1ad3 subs r3, r2, r3 - 8019508: b29b uxth r3, r3 - 801950a: b21b sxth r3, r3 - 801950c: 817b strh r3, [r7, #10] + 8019460: 687b ldr r3, [r7, #4] + 8019462: 681b ldr r3, [r3, #0] + 8019464: f9b3 3002 ldrsh.w r3, [r3, #2] + 8019468: b29a uxth r2, r3 + 801946a: 687b ldr r3, [r7, #4] + 801946c: f9b3 3004 ldrsh.w r3, [r3, #4] + 8019470: b29b uxth r3, r3 + 8019472: 1ad3 subs r3, r2, r3 + 8019474: b29b uxth r3, r3 + 8019476: b21b sxth r3, r3 + 8019478: 817b strh r3, [r7, #10] quarter_area.x2 = q->center->x + ((lv_trigo_sin(q->end_angle + 90) * (q->radius)) >> LV_TRIGO_SHIFT); - 801950e: 687b ldr r3, [r7, #4] - 8019510: 681b ldr r3, [r3, #0] - 8019512: f9b3 3000 ldrsh.w r3, [r3] - 8019516: b29c uxth r4, r3 - 8019518: 687b ldr r3, [r7, #4] - 801951a: 891b ldrh r3, [r3, #8] - 801951c: 335a adds r3, #90 ; 0x5a - 801951e: b29b uxth r3, r3 - 8019520: b21b sxth r3, r3 - 8019522: 4618 mov r0, r3 - 8019524: f018 ffd2 bl 80324cc - 8019528: 4603 mov r3, r0 - 801952a: 461a mov r2, r3 - 801952c: 687b ldr r3, [r7, #4] - 801952e: f9b3 3004 ldrsh.w r3, [r3, #4] - 8019532: fb02 f303 mul.w r3, r2, r3 - 8019536: 13db asrs r3, r3, #15 - 8019538: b29b uxth r3, r3 - 801953a: 4423 add r3, r4 - 801953c: b29b uxth r3, r3 - 801953e: b21b sxth r3, r3 - 8019540: 81bb strh r3, [r7, #12] + 801947a: 687b ldr r3, [r7, #4] + 801947c: 681b ldr r3, [r3, #0] + 801947e: f9b3 3000 ldrsh.w r3, [r3] + 8019482: b29c uxth r4, r3 + 8019484: 687b ldr r3, [r7, #4] + 8019486: 891b ldrh r3, [r3, #8] + 8019488: 335a adds r3, #90 ; 0x5a + 801948a: b29b uxth r3, r3 + 801948c: b21b sxth r3, r3 + 801948e: 4618 mov r0, r3 + 8019490: f018 ffd2 bl 8032438 + 8019494: 4603 mov r3, r0 + 8019496: 461a mov r2, r3 + 8019498: 687b ldr r3, [r7, #4] + 801949a: f9b3 3004 ldrsh.w r3, [r3, #4] + 801949e: fb02 f303 mul.w r3, r2, r3 + 80194a2: 13db asrs r3, r3, #15 + 80194a4: b29b uxth r3, r3 + 80194a6: 4423 add r3, r4 + 80194a8: b29b uxth r3, r3 + 80194aa: b21b sxth r3, r3 + 80194ac: 81bb strh r3, [r7, #12] quarter_area.y2 = q->center->y + ((lv_trigo_sin(q->end_angle) * (q->radius - q->width)) >> LV_TRIGO_SHIFT); - 8019542: 687b ldr r3, [r7, #4] - 8019544: 681b ldr r3, [r3, #0] - 8019546: f9b3 3002 ldrsh.w r3, [r3, #2] - 801954a: b29c uxth r4, r3 - 801954c: 687b ldr r3, [r7, #4] - 801954e: 891b ldrh r3, [r3, #8] - 8019550: b21b sxth r3, r3 - 8019552: 4618 mov r0, r3 - 8019554: f018 ffba bl 80324cc - 8019558: 4603 mov r3, r0 - 801955a: 461a mov r2, r3 - 801955c: 687b ldr r3, [r7, #4] - 801955e: f9b3 3004 ldrsh.w r3, [r3, #4] - 8019562: 4619 mov r1, r3 - 8019564: 687b ldr r3, [r7, #4] - 8019566: f9b3 300e ldrsh.w r3, [r3, #14] - 801956a: 1acb subs r3, r1, r3 - 801956c: fb02 f303 mul.w r3, r2, r3 - 8019570: 13db asrs r3, r3, #15 - 8019572: b29b uxth r3, r3 - 8019574: 4423 add r3, r4 - 8019576: b29b uxth r3, r3 - 8019578: b21b sxth r3, r3 - 801957a: 81fb strh r3, [r7, #14] + 80194ae: 687b ldr r3, [r7, #4] + 80194b0: 681b ldr r3, [r3, #0] + 80194b2: f9b3 3002 ldrsh.w r3, [r3, #2] + 80194b6: b29c uxth r4, r3 + 80194b8: 687b ldr r3, [r7, #4] + 80194ba: 891b ldrh r3, [r3, #8] + 80194bc: b21b sxth r3, r3 + 80194be: 4618 mov r0, r3 + 80194c0: f018 ffba bl 8032438 + 80194c4: 4603 mov r3, r0 + 80194c6: 461a mov r2, r3 + 80194c8: 687b ldr r3, [r7, #4] + 80194ca: f9b3 3004 ldrsh.w r3, [r3, #4] + 80194ce: 4619 mov r1, r3 + 80194d0: 687b ldr r3, [r7, #4] + 80194d2: f9b3 300e ldrsh.w r3, [r3, #14] + 80194d6: 1acb subs r3, r1, r3 + 80194d8: fb02 f303 mul.w r3, r2, r3 + 80194dc: 13db asrs r3, r3, #15 + 80194de: b29b uxth r3, r3 + 80194e0: 4423 add r3, r4 + 80194e2: b29b uxth r3, r3 + 80194e4: b21b sxth r3, r3 + 80194e6: 81fb strh r3, [r7, #14] bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); - 801957c: f107 0108 add.w r1, r7, #8 - 8019580: f107 0308 add.w r3, r7, #8 - 8019584: 697a ldr r2, [r7, #20] - 8019586: 4618 mov r0, r3 - 8019588: f017 fd8e bl 80310a8 <_lv_area_intersect> - 801958c: 4603 mov r3, r0 - 801958e: 743b strb r3, [r7, #16] + 80194e8: f107 0108 add.w r1, r7, #8 + 80194ec: f107 0308 add.w r3, r7, #8 + 80194f0: 697a ldr r2, [r7, #20] + 80194f2: 4618 mov r0, r3 + 80194f4: f017 fd8e bl 8031014 <_lv_area_intersect> + 80194f8: 4603 mov r3, r0 + 80194fa: 743b strb r3, [r7, #16] if(ok) { - 8019590: 7c3b ldrb r3, [r7, #16] - 8019592: 2b00 cmp r3, #0 - 8019594: d07c beq.n 8019690 + 80194fc: 7c3b ldrb r3, [r7, #16] + 80194fe: 2b00 cmp r3, #0 + 8019500: d07c beq.n 80195fc q->draw_ctx->clip_area = &quarter_area; - 8019596: 687b ldr r3, [r7, #4] - 8019598: 699b ldr r3, [r3, #24] - 801959a: f107 0208 add.w r2, r7, #8 - 801959e: 609a str r2, [r3, #8] + 8019502: 687b ldr r3, [r7, #4] + 8019504: 699b ldr r3, [r3, #24] + 8019506: f107 0208 add.w r2, r7, #8 + 801950a: 609a str r2, [r3, #8] lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); - 80195a0: 687b ldr r3, [r7, #4] - 80195a2: 6998 ldr r0, [r3, #24] - 80195a4: 687b ldr r3, [r7, #4] - 80195a6: 691b ldr r3, [r3, #16] - 80195a8: f107 0208 add.w r2, r7, #8 - 80195ac: 4619 mov r1, r3 - 80195ae: f7fc f963 bl 8015878 + 801950c: 687b ldr r3, [r7, #4] + 801950e: 6998 ldr r0, [r3, #24] + 8019510: 687b ldr r3, [r7, #4] + 8019512: 691b ldr r3, [r3, #16] + 8019514: f107 0208 add.w r2, r7, #8 + 8019518: 4619 mov r1, r3 + 801951a: f7fc f963 bl 80157e4 if(q->end_quarter == 3) { - 80195b2: e06d b.n 8019690 + 801951e: e06d b.n 80195fc } } } else if((q->start_quarter == q->end_quarter && q->start_quarter != 3 && q->end_angle < q->start_angle) || - 80195b4: 687b ldr r3, [r7, #4] - 80195b6: 895a ldrh r2, [r3, #10] - 80195b8: 687b ldr r3, [r7, #4] - 80195ba: 899b ldrh r3, [r3, #12] - 80195bc: 429a cmp r2, r3 - 80195be: d109 bne.n 80195d4 - 80195c0: 687b ldr r3, [r7, #4] - 80195c2: 895b ldrh r3, [r3, #10] - 80195c4: 2b03 cmp r3, #3 - 80195c6: d005 beq.n 80195d4 - 80195c8: 687b ldr r3, [r7, #4] - 80195ca: 891a ldrh r2, [r3, #8] - 80195cc: 687b ldr r3, [r7, #4] - 80195ce: 88db ldrh r3, [r3, #6] - 80195d0: 429a cmp r2, r3 - 80195d2: d317 bcc.n 8019604 + 8019520: 687b ldr r3, [r7, #4] + 8019522: 895a ldrh r2, [r3, #10] + 8019524: 687b ldr r3, [r7, #4] + 8019526: 899b ldrh r3, [r3, #12] + 8019528: 429a cmp r2, r3 + 801952a: d109 bne.n 8019540 + 801952c: 687b ldr r3, [r7, #4] + 801952e: 895b ldrh r3, [r3, #10] + 8019530: 2b03 cmp r3, #3 + 8019532: d005 beq.n 8019540 + 8019534: 687b ldr r3, [r7, #4] + 8019536: 891a ldrh r2, [r3, #8] + 8019538: 687b ldr r3, [r7, #4] + 801953a: 88db ldrh r3, [r3, #6] + 801953c: 429a cmp r2, r3 + 801953e: d317 bcc.n 8019570 (q->start_quarter == 2 && q->end_quarter == 0) || - 80195d4: 687b ldr r3, [r7, #4] - 80195d6: 895b ldrh r3, [r3, #10] + 8019540: 687b ldr r3, [r7, #4] + 8019542: 895b ldrh r3, [r3, #10] else if((q->start_quarter == q->end_quarter && q->start_quarter != 3 && q->end_angle < q->start_angle) || - 80195d8: 2b02 cmp r3, #2 - 80195da: d103 bne.n 80195e4 + 8019544: 2b02 cmp r3, #2 + 8019546: d103 bne.n 8019550 (q->start_quarter == 2 && q->end_quarter == 0) || - 80195dc: 687b ldr r3, [r7, #4] - 80195de: 899b ldrh r3, [r3, #12] - 80195e0: 2b00 cmp r3, #0 - 80195e2: d00f beq.n 8019604 + 8019548: 687b ldr r3, [r7, #4] + 801954a: 899b ldrh r3, [r3, #12] + 801954c: 2b00 cmp r3, #0 + 801954e: d00f beq.n 8019570 (q->start_quarter == 1 && q->end_quarter == 0) || - 80195e4: 687b ldr r3, [r7, #4] - 80195e6: 895b ldrh r3, [r3, #10] + 8019550: 687b ldr r3, [r7, #4] + 8019552: 895b ldrh r3, [r3, #10] (q->start_quarter == 2 && q->end_quarter == 0) || - 80195e8: 2b01 cmp r3, #1 - 80195ea: d103 bne.n 80195f4 + 8019554: 2b01 cmp r3, #1 + 8019556: d103 bne.n 8019560 (q->start_quarter == 1 && q->end_quarter == 0) || - 80195ec: 687b ldr r3, [r7, #4] - 80195ee: 899b ldrh r3, [r3, #12] - 80195f0: 2b00 cmp r3, #0 - 80195f2: d007 beq.n 8019604 + 8019558: 687b ldr r3, [r7, #4] + 801955a: 899b ldrh r3, [r3, #12] + 801955c: 2b00 cmp r3, #0 + 801955e: d007 beq.n 8019570 (q->start_quarter == 2 && q->end_quarter == 1)) { - 80195f4: 687b ldr r3, [r7, #4] - 80195f6: 895b ldrh r3, [r3, #10] + 8019560: 687b ldr r3, [r7, #4] + 8019562: 895b ldrh r3, [r3, #10] (q->start_quarter == 1 && q->end_quarter == 0) || - 80195f8: 2b02 cmp r3, #2 - 80195fa: d14a bne.n 8019692 + 8019564: 2b02 cmp r3, #2 + 8019566: d14a bne.n 80195fe (q->start_quarter == 2 && q->end_quarter == 1)) { - 80195fc: 687b ldr r3, [r7, #4] - 80195fe: 899b ldrh r3, [r3, #12] - 8019600: 2b01 cmp r3, #1 - 8019602: d146 bne.n 8019692 + 8019568: 687b ldr r3, [r7, #4] + 801956a: 899b ldrh r3, [r3, #12] + 801956c: 2b01 cmp r3, #1 + 801956e: d146 bne.n 80195fe /*Arc crosses here*/ quarter_area.x1 = q->center->x; - 8019604: 687b ldr r3, [r7, #4] - 8019606: 681b ldr r3, [r3, #0] - 8019608: f9b3 3000 ldrsh.w r3, [r3] - 801960c: 813b strh r3, [r7, #8] + 8019570: 687b ldr r3, [r7, #4] + 8019572: 681b ldr r3, [r3, #0] + 8019574: f9b3 3000 ldrsh.w r3, [r3] + 8019578: 813b strh r3, [r7, #8] quarter_area.y1 = q->center->y - q->radius; - 801960e: 687b ldr r3, [r7, #4] - 8019610: 681b ldr r3, [r3, #0] - 8019612: f9b3 3002 ldrsh.w r3, [r3, #2] - 8019616: b29a uxth r2, r3 - 8019618: 687b ldr r3, [r7, #4] - 801961a: f9b3 3004 ldrsh.w r3, [r3, #4] - 801961e: b29b uxth r3, r3 - 8019620: 1ad3 subs r3, r2, r3 - 8019622: b29b uxth r3, r3 - 8019624: b21b sxth r3, r3 - 8019626: 817b strh r3, [r7, #10] + 801957a: 687b ldr r3, [r7, #4] + 801957c: 681b ldr r3, [r3, #0] + 801957e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8019582: b29a uxth r2, r3 + 8019584: 687b ldr r3, [r7, #4] + 8019586: f9b3 3004 ldrsh.w r3, [r3, #4] + 801958a: b29b uxth r3, r3 + 801958c: 1ad3 subs r3, r2, r3 + 801958e: b29b uxth r3, r3 + 8019590: b21b sxth r3, r3 + 8019592: 817b strh r3, [r7, #10] quarter_area.x2 = q->center->x + q->radius; - 8019628: 687b ldr r3, [r7, #4] - 801962a: 681b ldr r3, [r3, #0] - 801962c: f9b3 3000 ldrsh.w r3, [r3] - 8019630: b29a uxth r2, r3 - 8019632: 687b ldr r3, [r7, #4] - 8019634: f9b3 3004 ldrsh.w r3, [r3, #4] - 8019638: b29b uxth r3, r3 - 801963a: 4413 add r3, r2 - 801963c: b29b uxth r3, r3 - 801963e: b21b sxth r3, r3 - 8019640: 81bb strh r3, [r7, #12] + 8019594: 687b ldr r3, [r7, #4] + 8019596: 681b ldr r3, [r3, #0] + 8019598: f9b3 3000 ldrsh.w r3, [r3] + 801959c: b29a uxth r2, r3 + 801959e: 687b ldr r3, [r7, #4] + 80195a0: f9b3 3004 ldrsh.w r3, [r3, #4] + 80195a4: b29b uxth r3, r3 + 80195a6: 4413 add r3, r2 + 80195a8: b29b uxth r3, r3 + 80195aa: b21b sxth r3, r3 + 80195ac: 81bb strh r3, [r7, #12] quarter_area.y2 = q->center->y - 1; - 8019642: 687b ldr r3, [r7, #4] - 8019644: 681b ldr r3, [r3, #0] - 8019646: f9b3 3002 ldrsh.w r3, [r3, #2] - 801964a: b29b uxth r3, r3 - 801964c: 3b01 subs r3, #1 - 801964e: b29b uxth r3, r3 - 8019650: b21b sxth r3, r3 - 8019652: 81fb strh r3, [r7, #14] + 80195ae: 687b ldr r3, [r7, #4] + 80195b0: 681b ldr r3, [r3, #0] + 80195b2: f9b3 3002 ldrsh.w r3, [r3, #2] + 80195b6: b29b uxth r3, r3 + 80195b8: 3b01 subs r3, #1 + 80195ba: b29b uxth r3, r3 + 80195bc: b21b sxth r3, r3 + 80195be: 81fb strh r3, [r7, #14] bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori); - 8019654: f107 0108 add.w r1, r7, #8 - 8019658: f107 0308 add.w r3, r7, #8 - 801965c: 697a ldr r2, [r7, #20] - 801965e: 4618 mov r0, r3 - 8019660: f017 fd22 bl 80310a8 <_lv_area_intersect> - 8019664: 4603 mov r3, r0 - 8019666: 74bb strb r3, [r7, #18] + 80195c0: f107 0108 add.w r1, r7, #8 + 80195c4: f107 0308 add.w r3, r7, #8 + 80195c8: 697a ldr r2, [r7, #20] + 80195ca: 4618 mov r0, r3 + 80195cc: f017 fd22 bl 8031014 <_lv_area_intersect> + 80195d0: 4603 mov r3, r0 + 80195d2: 74bb strb r3, [r7, #18] if(ok) { - 8019668: 7cbb ldrb r3, [r7, #18] - 801966a: 2b00 cmp r3, #0 - 801966c: d011 beq.n 8019692 + 80195d4: 7cbb ldrb r3, [r7, #18] + 80195d6: 2b00 cmp r3, #0 + 80195d8: d011 beq.n 80195fe q->draw_ctx->clip_area = &quarter_area; - 801966e: 687b ldr r3, [r7, #4] - 8019670: 699b ldr r3, [r3, #24] - 8019672: f107 0208 add.w r2, r7, #8 - 8019676: 609a str r2, [r3, #8] + 80195da: 687b ldr r3, [r7, #4] + 80195dc: 699b ldr r3, [r3, #24] + 80195de: f107 0208 add.w r2, r7, #8 + 80195e2: 609a str r2, [r3, #8] lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area); - 8019678: 687b ldr r3, [r7, #4] - 801967a: 6998 ldr r0, [r3, #24] - 801967c: 687b ldr r3, [r7, #4] - 801967e: 691b ldr r3, [r3, #16] - 8019680: f107 0208 add.w r2, r7, #8 - 8019684: 4619 mov r1, r3 - 8019686: f7fc f8f7 bl 8015878 - 801968a: e002 b.n 8019692 + 80195e4: 687b ldr r3, [r7, #4] + 80195e6: 6998 ldr r0, [r3, #24] + 80195e8: 687b ldr r3, [r7, #4] + 80195ea: 691b ldr r3, [r3, #16] + 80195ec: f107 0208 add.w r2, r7, #8 + 80195f0: 4619 mov r1, r3 + 80195f2: f7fc f8f7 bl 80157e4 + 80195f6: e002 b.n 80195fe if(q->start_quarter == 3 && q->end_quarter == 3 && q->start_angle < q->end_angle) { - 801968c: bf00 nop - 801968e: e000 b.n 8019692 + 80195f8: bf00 nop + 80195fa: e000 b.n 80195fe if(q->end_quarter == 3) { - 8019690: bf00 nop + 80195fc: bf00 nop } } q->draw_ctx->clip_area = clip_area_ori; - 8019692: 687b ldr r3, [r7, #4] - 8019694: 699b ldr r3, [r3, #24] - 8019696: 697a ldr r2, [r7, #20] - 8019698: 609a str r2, [r3, #8] + 80195fe: 687b ldr r3, [r7, #4] + 8019600: 699b ldr r3, [r3, #24] + 8019602: 697a ldr r2, [r7, #20] + 8019604: 609a str r2, [r3, #8] } - 801969a: bf00 nop - 801969c: 371c adds r7, #28 - 801969e: 46bd mov sp, r7 - 80196a0: bd90 pop {r4, r7, pc} + 8019606: bf00 nop + 8019608: 371c adds r7, #28 + 801960a: 46bd mov sp, r7 + 801960c: bd90 pop {r4, r7, pc} -080196a2 : +0801960e : static void get_rounded_area(int16_t angle, lv_coord_t radius, uint8_t thickness, lv_area_t * res_area) { - 80196a2: b590 push {r4, r7, lr} - 80196a4: b08b sub sp, #44 ; 0x2c - 80196a6: af00 add r7, sp, #0 - 80196a8: 607b str r3, [r7, #4] - 80196aa: 4603 mov r3, r0 - 80196ac: 81fb strh r3, [r7, #14] - 80196ae: 460b mov r3, r1 - 80196b0: 81bb strh r3, [r7, #12] - 80196b2: 4613 mov r3, r2 - 80196b4: 72fb strb r3, [r7, #11] + 801960e: b590 push {r4, r7, lr} + 8019610: b08b sub sp, #44 ; 0x2c + 8019612: af00 add r7, sp, #0 + 8019614: 607b str r3, [r7, #4] + 8019616: 4603 mov r3, r0 + 8019618: 81fb strh r3, [r7, #14] + 801961a: 460b mov r3, r1 + 801961c: 81bb strh r3, [r7, #12] + 801961e: 4613 mov r3, r2 + 8019620: 72fb strb r3, [r7, #11] const uint8_t ps = 8; - 80196b6: 2308 movs r3, #8 - 80196b8: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8019622: 2308 movs r3, #8 + 8019624: f887 3027 strb.w r3, [r7, #39] ; 0x27 const uint8_t pa = 127; - 80196bc: 237f movs r3, #127 ; 0x7f - 80196be: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 8019628: 237f movs r3, #127 ; 0x7f + 801962a: f887 3026 strb.w r3, [r7, #38] ; 0x26 int32_t thick_half = thickness / 2; - 80196c2: 7afb ldrb r3, [r7, #11] - 80196c4: 085b lsrs r3, r3, #1 - 80196c6: b2db uxtb r3, r3 - 80196c8: 623b str r3, [r7, #32] + 801962e: 7afb ldrb r3, [r7, #11] + 8019630: 085b lsrs r3, r3, #1 + 8019632: b2db uxtb r3, r3 + 8019634: 623b str r3, [r7, #32] uint8_t thick_corr = (thickness & 0x01) ? 0 : 1; - 80196ca: 7afb ldrb r3, [r7, #11] - 80196cc: f003 0301 and.w r3, r3, #1 - 80196d0: 2b00 cmp r3, #0 - 80196d2: bf0c ite eq - 80196d4: 2301 moveq r3, #1 - 80196d6: 2300 movne r3, #0 - 80196d8: b2db uxtb r3, r3 - 80196da: 77fb strb r3, [r7, #31] + 8019636: 7afb ldrb r3, [r7, #11] + 8019638: f003 0301 and.w r3, r3, #1 + 801963c: 2b00 cmp r3, #0 + 801963e: bf0c ite eq + 8019640: 2301 moveq r3, #1 + 8019642: 2300 movne r3, #0 + 8019644: b2db uxtb r3, r3 + 8019646: 77fb strb r3, [r7, #31] int32_t cir_x; int32_t cir_y; cir_x = ((radius - thick_half) * lv_trigo_sin(90 - angle)) >> (LV_TRIGO_SHIFT - ps); - 80196dc: f9b7 200c ldrsh.w r2, [r7, #12] - 80196e0: 6a3b ldr r3, [r7, #32] - 80196e2: 1ad4 subs r4, r2, r3 - 80196e4: 89fb ldrh r3, [r7, #14] - 80196e6: f1c3 035a rsb r3, r3, #90 ; 0x5a - 80196ea: b29b uxth r3, r3 - 80196ec: b21b sxth r3, r3 - 80196ee: 4618 mov r0, r3 - 80196f0: f018 feec bl 80324cc - 80196f4: 4603 mov r3, r0 - 80196f6: fb03 f204 mul.w r2, r3, r4 - 80196fa: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80196fe: f1c3 030f rsb r3, r3, #15 - 8019702: fa42 f303 asr.w r3, r2, r3 - 8019706: 61bb str r3, [r7, #24] + 8019648: f9b7 200c ldrsh.w r2, [r7, #12] + 801964c: 6a3b ldr r3, [r7, #32] + 801964e: 1ad4 subs r4, r2, r3 + 8019650: 89fb ldrh r3, [r7, #14] + 8019652: f1c3 035a rsb r3, r3, #90 ; 0x5a + 8019656: b29b uxth r3, r3 + 8019658: b21b sxth r3, r3 + 801965a: 4618 mov r0, r3 + 801965c: f018 feec bl 8032438 + 8019660: 4603 mov r3, r0 + 8019662: fb03 f204 mul.w r2, r3, r4 + 8019666: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 801966a: f1c3 030f rsb r3, r3, #15 + 801966e: fa42 f303 asr.w r3, r2, r3 + 8019672: 61bb str r3, [r7, #24] cir_y = ((radius - thick_half) * lv_trigo_sin(angle)) >> (LV_TRIGO_SHIFT - ps); - 8019708: f9b7 200c ldrsh.w r2, [r7, #12] - 801970c: 6a3b ldr r3, [r7, #32] - 801970e: 1ad4 subs r4, r2, r3 - 8019710: f9b7 300e ldrsh.w r3, [r7, #14] - 8019714: 4618 mov r0, r3 - 8019716: f018 fed9 bl 80324cc - 801971a: 4603 mov r3, r0 - 801971c: fb03 f204 mul.w r2, r3, r4 - 8019720: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8019724: f1c3 030f rsb r3, r3, #15 - 8019728: fa42 f303 asr.w r3, r2, r3 - 801972c: 617b str r3, [r7, #20] + 8019674: f9b7 200c ldrsh.w r2, [r7, #12] + 8019678: 6a3b ldr r3, [r7, #32] + 801967a: 1ad4 subs r4, r2, r3 + 801967c: f9b7 300e ldrsh.w r3, [r7, #14] + 8019680: 4618 mov r0, r3 + 8019682: f018 fed9 bl 8032438 + 8019686: 4603 mov r3, r0 + 8019688: fb03 f204 mul.w r2, r3, r4 + 801968c: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8019690: f1c3 030f rsb r3, r3, #15 + 8019694: fa42 f303 asr.w r3, r2, r3 + 8019698: 617b str r3, [r7, #20] /*Actually the center of the pixel need to be calculated so apply 1/2 px offset*/ if(cir_x > 0) { - 801972e: 69bb ldr r3, [r7, #24] - 8019730: 2b00 cmp r3, #0 - 8019732: dd1f ble.n 8019774 + 801969a: 69bb ldr r3, [r7, #24] + 801969c: 2b00 cmp r3, #0 + 801969e: dd1f ble.n 80196e0 cir_x = (cir_x - pa) >> ps; - 8019734: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 8019738: 69ba ldr r2, [r7, #24] - 801973a: 1ad2 subs r2, r2, r3 - 801973c: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8019740: fa42 f303 asr.w r3, r2, r3 - 8019744: 61bb str r3, [r7, #24] + 80196a0: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 80196a4: 69ba ldr r2, [r7, #24] + 80196a6: 1ad2 subs r2, r2, r3 + 80196a8: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 80196ac: fa42 f303 asr.w r3, r2, r3 + 80196b0: 61bb str r3, [r7, #24] res_area->x1 = cir_x - thick_half + thick_corr; - 8019746: 69bb ldr r3, [r7, #24] - 8019748: b29a uxth r2, r3 - 801974a: 6a3b ldr r3, [r7, #32] - 801974c: b29b uxth r3, r3 - 801974e: 1ad3 subs r3, r2, r3 - 8019750: b29a uxth r2, r3 - 8019752: 7ffb ldrb r3, [r7, #31] - 8019754: b29b uxth r3, r3 - 8019756: 4413 add r3, r2 - 8019758: b29b uxth r3, r3 - 801975a: b21a sxth r2, r3 - 801975c: 687b ldr r3, [r7, #4] - 801975e: 801a strh r2, [r3, #0] + 80196b2: 69bb ldr r3, [r7, #24] + 80196b4: b29a uxth r2, r3 + 80196b6: 6a3b ldr r3, [r7, #32] + 80196b8: b29b uxth r3, r3 + 80196ba: 1ad3 subs r3, r2, r3 + 80196bc: b29a uxth r2, r3 + 80196be: 7ffb ldrb r3, [r7, #31] + 80196c0: b29b uxth r3, r3 + 80196c2: 4413 add r3, r2 + 80196c4: b29b uxth r3, r3 + 80196c6: b21a sxth r2, r3 + 80196c8: 687b ldr r3, [r7, #4] + 80196ca: 801a strh r2, [r3, #0] res_area->x2 = cir_x + thick_half; - 8019760: 69bb ldr r3, [r7, #24] - 8019762: b29a uxth r2, r3 - 8019764: 6a3b ldr r3, [r7, #32] - 8019766: b29b uxth r3, r3 - 8019768: 4413 add r3, r2 - 801976a: b29b uxth r3, r3 - 801976c: b21a sxth r2, r3 - 801976e: 687b ldr r3, [r7, #4] - 8019770: 809a strh r2, [r3, #4] - 8019772: e01e b.n 80197b2 + 80196cc: 69bb ldr r3, [r7, #24] + 80196ce: b29a uxth r2, r3 + 80196d0: 6a3b ldr r3, [r7, #32] + 80196d2: b29b uxth r3, r3 + 80196d4: 4413 add r3, r2 + 80196d6: b29b uxth r3, r3 + 80196d8: b21a sxth r2, r3 + 80196da: 687b ldr r3, [r7, #4] + 80196dc: 809a strh r2, [r3, #4] + 80196de: e01e b.n 801971e } else { cir_x = (cir_x + pa) >> ps; - 8019774: f897 2026 ldrb.w r2, [r7, #38] ; 0x26 - 8019778: 69bb ldr r3, [r7, #24] - 801977a: 441a add r2, r3 - 801977c: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8019780: fa42 f303 asr.w r3, r2, r3 - 8019784: 61bb str r3, [r7, #24] + 80196e0: f897 2026 ldrb.w r2, [r7, #38] ; 0x26 + 80196e4: 69bb ldr r3, [r7, #24] + 80196e6: 441a add r2, r3 + 80196e8: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 80196ec: fa42 f303 asr.w r3, r2, r3 + 80196f0: 61bb str r3, [r7, #24] res_area->x1 = cir_x - thick_half; - 8019786: 69bb ldr r3, [r7, #24] - 8019788: b29a uxth r2, r3 - 801978a: 6a3b ldr r3, [r7, #32] - 801978c: b29b uxth r3, r3 - 801978e: 1ad3 subs r3, r2, r3 - 8019790: b29b uxth r3, r3 - 8019792: b21a sxth r2, r3 - 8019794: 687b ldr r3, [r7, #4] - 8019796: 801a strh r2, [r3, #0] + 80196f2: 69bb ldr r3, [r7, #24] + 80196f4: b29a uxth r2, r3 + 80196f6: 6a3b ldr r3, [r7, #32] + 80196f8: b29b uxth r3, r3 + 80196fa: 1ad3 subs r3, r2, r3 + 80196fc: b29b uxth r3, r3 + 80196fe: b21a sxth r2, r3 + 8019700: 687b ldr r3, [r7, #4] + 8019702: 801a strh r2, [r3, #0] res_area->x2 = cir_x + thick_half - thick_corr; - 8019798: 69bb ldr r3, [r7, #24] - 801979a: b29a uxth r2, r3 - 801979c: 6a3b ldr r3, [r7, #32] - 801979e: b29b uxth r3, r3 - 80197a0: 4413 add r3, r2 - 80197a2: b29a uxth r2, r3 - 80197a4: 7ffb ldrb r3, [r7, #31] - 80197a6: b29b uxth r3, r3 - 80197a8: 1ad3 subs r3, r2, r3 - 80197aa: b29b uxth r3, r3 - 80197ac: b21a sxth r2, r3 - 80197ae: 687b ldr r3, [r7, #4] - 80197b0: 809a strh r2, [r3, #4] + 8019704: 69bb ldr r3, [r7, #24] + 8019706: b29a uxth r2, r3 + 8019708: 6a3b ldr r3, [r7, #32] + 801970a: b29b uxth r3, r3 + 801970c: 4413 add r3, r2 + 801970e: b29a uxth r2, r3 + 8019710: 7ffb ldrb r3, [r7, #31] + 8019712: b29b uxth r3, r3 + 8019714: 1ad3 subs r3, r2, r3 + 8019716: b29b uxth r3, r3 + 8019718: b21a sxth r2, r3 + 801971a: 687b ldr r3, [r7, #4] + 801971c: 809a strh r2, [r3, #4] } if(cir_y > 0) { - 80197b2: 697b ldr r3, [r7, #20] - 80197b4: 2b00 cmp r3, #0 - 80197b6: dd1f ble.n 80197f8 + 801971e: 697b ldr r3, [r7, #20] + 8019720: 2b00 cmp r3, #0 + 8019722: dd1f ble.n 8019764 cir_y = (cir_y - pa) >> ps; - 80197b8: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 80197bc: 697a ldr r2, [r7, #20] - 80197be: 1ad2 subs r2, r2, r3 - 80197c0: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80197c4: fa42 f303 asr.w r3, r2, r3 - 80197c8: 617b str r3, [r7, #20] + 8019724: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 8019728: 697a ldr r2, [r7, #20] + 801972a: 1ad2 subs r2, r2, r3 + 801972c: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8019730: fa42 f303 asr.w r3, r2, r3 + 8019734: 617b str r3, [r7, #20] res_area->y1 = cir_y - thick_half + thick_corr; - 80197ca: 697b ldr r3, [r7, #20] - 80197cc: b29a uxth r2, r3 - 80197ce: 6a3b ldr r3, [r7, #32] - 80197d0: b29b uxth r3, r3 - 80197d2: 1ad3 subs r3, r2, r3 - 80197d4: b29a uxth r2, r3 - 80197d6: 7ffb ldrb r3, [r7, #31] - 80197d8: b29b uxth r3, r3 - 80197da: 4413 add r3, r2 - 80197dc: b29b uxth r3, r3 - 80197de: b21a sxth r2, r3 - 80197e0: 687b ldr r3, [r7, #4] - 80197e2: 805a strh r2, [r3, #2] + 8019736: 697b ldr r3, [r7, #20] + 8019738: b29a uxth r2, r3 + 801973a: 6a3b ldr r3, [r7, #32] + 801973c: b29b uxth r3, r3 + 801973e: 1ad3 subs r3, r2, r3 + 8019740: b29a uxth r2, r3 + 8019742: 7ffb ldrb r3, [r7, #31] + 8019744: b29b uxth r3, r3 + 8019746: 4413 add r3, r2 + 8019748: b29b uxth r3, r3 + 801974a: b21a sxth r2, r3 + 801974c: 687b ldr r3, [r7, #4] + 801974e: 805a strh r2, [r3, #2] res_area->y2 = cir_y + thick_half; - 80197e4: 697b ldr r3, [r7, #20] - 80197e6: b29a uxth r2, r3 - 80197e8: 6a3b ldr r3, [r7, #32] - 80197ea: b29b uxth r3, r3 - 80197ec: 4413 add r3, r2 - 80197ee: b29b uxth r3, r3 - 80197f0: b21a sxth r2, r3 - 80197f2: 687b ldr r3, [r7, #4] - 80197f4: 80da strh r2, [r3, #6] + 8019750: 697b ldr r3, [r7, #20] + 8019752: b29a uxth r2, r3 + 8019754: 6a3b ldr r3, [r7, #32] + 8019756: b29b uxth r3, r3 + 8019758: 4413 add r3, r2 + 801975a: b29b uxth r3, r3 + 801975c: b21a sxth r2, r3 + 801975e: 687b ldr r3, [r7, #4] + 8019760: 80da strh r2, [r3, #6] else { cir_y = (cir_y + pa) >> ps; res_area->y1 = cir_y - thick_half; res_area->y2 = cir_y + thick_half - thick_corr; } } - 80197f6: e01e b.n 8019836 + 8019762: e01e b.n 80197a2 cir_y = (cir_y + pa) >> ps; - 80197f8: f897 2026 ldrb.w r2, [r7, #38] ; 0x26 - 80197fc: 697b ldr r3, [r7, #20] - 80197fe: 441a add r2, r3 - 8019800: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8019804: fa42 f303 asr.w r3, r2, r3 - 8019808: 617b str r3, [r7, #20] + 8019764: f897 2026 ldrb.w r2, [r7, #38] ; 0x26 + 8019768: 697b ldr r3, [r7, #20] + 801976a: 441a add r2, r3 + 801976c: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8019770: fa42 f303 asr.w r3, r2, r3 + 8019774: 617b str r3, [r7, #20] res_area->y1 = cir_y - thick_half; - 801980a: 697b ldr r3, [r7, #20] - 801980c: b29a uxth r2, r3 - 801980e: 6a3b ldr r3, [r7, #32] - 8019810: b29b uxth r3, r3 - 8019812: 1ad3 subs r3, r2, r3 - 8019814: b29b uxth r3, r3 - 8019816: b21a sxth r2, r3 - 8019818: 687b ldr r3, [r7, #4] - 801981a: 805a strh r2, [r3, #2] + 8019776: 697b ldr r3, [r7, #20] + 8019778: b29a uxth r2, r3 + 801977a: 6a3b ldr r3, [r7, #32] + 801977c: b29b uxth r3, r3 + 801977e: 1ad3 subs r3, r2, r3 + 8019780: b29b uxth r3, r3 + 8019782: b21a sxth r2, r3 + 8019784: 687b ldr r3, [r7, #4] + 8019786: 805a strh r2, [r3, #2] res_area->y2 = cir_y + thick_half - thick_corr; - 801981c: 697b ldr r3, [r7, #20] - 801981e: b29a uxth r2, r3 - 8019820: 6a3b ldr r3, [r7, #32] - 8019822: b29b uxth r3, r3 - 8019824: 4413 add r3, r2 - 8019826: b29a uxth r2, r3 - 8019828: 7ffb ldrb r3, [r7, #31] - 801982a: b29b uxth r3, r3 - 801982c: 1ad3 subs r3, r2, r3 - 801982e: b29b uxth r3, r3 - 8019830: b21a sxth r2, r3 - 8019832: 687b ldr r3, [r7, #4] - 8019834: 80da strh r2, [r3, #6] + 8019788: 697b ldr r3, [r7, #20] + 801978a: b29a uxth r2, r3 + 801978c: 6a3b ldr r3, [r7, #32] + 801978e: b29b uxth r3, r3 + 8019790: 4413 add r3, r2 + 8019792: b29a uxth r2, r3 + 8019794: 7ffb ldrb r3, [r7, #31] + 8019796: b29b uxth r3, r3 + 8019798: 1ad3 subs r3, r2, r3 + 801979a: b29b uxth r3, r3 + 801979c: b21a sxth r2, r3 + 801979e: 687b ldr r3, [r7, #4] + 80197a0: 80da strh r2, [r3, #6] } - 8019836: bf00 nop - 8019838: 372c adds r7, #44 ; 0x2c - 801983a: 46bd mov sp, r7 - 801983c: bd90 pop {r4, r7, pc} + 80197a2: bf00 nop + 80197a4: 372c adds r7, #44 ; 0x2c + 80197a6: 46bd mov sp, r7 + 80197a8: bd90 pop {r4, r7, pc} ... -08019840 : +080197ac : * @param c2 the second color to mix (usually the background) * @param mix The ratio of the colors. 0: full `c2`, 255: full `c1`, 127: half `c1` and half`c2` * @return the mixed color */ LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix) { - 8019840: b480 push {r7} - 8019842: b087 sub sp, #28 - 8019844: af00 add r7, sp, #0 - 8019846: 80b8 strh r0, [r7, #4] - 8019848: 8039 strh r1, [r7, #0] - 801984a: 4613 mov r3, r2 - 801984c: 70fb strb r3, [r7, #3] + 80197ac: b480 push {r7} + 80197ae: b087 sub sp, #28 + 80197b0: af00 add r7, sp, #0 + 80197b2: 80b8 strh r0, [r7, #4] + 80197b4: 8039 strh r1, [r7, #0] + 80197b6: 4613 mov r3, r2 + 80197b8: 70fb strb r3, [r7, #3] lv_color_t ret; #if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0 /*Source: https://stackoverflow.com/a/50012418/1999969*/ mix = (mix + 4) >> 3; - 801984e: 78fb ldrb r3, [r7, #3] - 8019850: 3304 adds r3, #4 - 8019852: 10db asrs r3, r3, #3 - 8019854: 70fb strb r3, [r7, #3] + 80197ba: 78fb ldrb r3, [r7, #3] + 80197bc: 3304 adds r3, #4 + 80197be: 10db asrs r3, r3, #3 + 80197c0: 70fb strb r3, [r7, #3] uint32_t bg = (uint32_t)((uint32_t)c2.full | ((uint32_t)c2.full << 16)) & - 8019856: 883b ldrh r3, [r7, #0] - 8019858: 461a mov r2, r3 - 801985a: 883b ldrh r3, [r7, #0] - 801985c: 041b lsls r3, r3, #16 - 801985e: 431a orrs r2, r3 - 8019860: 4b12 ldr r3, [pc, #72] ; (80198ac ) - 8019862: 4013 ands r3, r2 - 8019864: 617b str r3, [r7, #20] + 80197c2: 883b ldrh r3, [r7, #0] + 80197c4: 461a mov r2, r3 + 80197c6: 883b ldrh r3, [r7, #0] + 80197c8: 041b lsls r3, r3, #16 + 80197ca: 431a orrs r2, r3 + 80197cc: 4b12 ldr r3, [pc, #72] ; (8019818 ) + 80197ce: 4013 ands r3, r2 + 80197d0: 617b str r3, [r7, #20] 0x7E0F81F; /*0b00000111111000001111100000011111*/ uint32_t fg = (uint32_t)((uint32_t)c1.full | ((uint32_t)c1.full << 16)) & 0x7E0F81F; - 8019866: 88bb ldrh r3, [r7, #4] - 8019868: 461a mov r2, r3 - 801986a: 88bb ldrh r3, [r7, #4] - 801986c: 041b lsls r3, r3, #16 - 801986e: 431a orrs r2, r3 - 8019870: 4b0e ldr r3, [pc, #56] ; (80198ac ) - 8019872: 4013 ands r3, r2 - 8019874: 613b str r3, [r7, #16] + 80197d2: 88bb ldrh r3, [r7, #4] + 80197d4: 461a mov r2, r3 + 80197d6: 88bb ldrh r3, [r7, #4] + 80197d8: 041b lsls r3, r3, #16 + 80197da: 431a orrs r2, r3 + 80197dc: 4b0e ldr r3, [pc, #56] ; (8019818 ) + 80197de: 4013 ands r3, r2 + 80197e0: 613b str r3, [r7, #16] uint32_t result = ((((fg - bg) * mix) >> 5) + bg) & 0x7E0F81F; - 8019876: 693a ldr r2, [r7, #16] - 8019878: 697b ldr r3, [r7, #20] - 801987a: 1ad3 subs r3, r2, r3 - 801987c: 78fa ldrb r2, [r7, #3] - 801987e: fb02 f303 mul.w r3, r2, r3 - 8019882: 095a lsrs r2, r3, #5 - 8019884: 697b ldr r3, [r7, #20] - 8019886: 441a add r2, r3 - 8019888: 4b08 ldr r3, [pc, #32] ; (80198ac ) - 801988a: 4013 ands r3, r2 - 801988c: 60fb str r3, [r7, #12] + 80197e2: 693a ldr r2, [r7, #16] + 80197e4: 697b ldr r3, [r7, #20] + 80197e6: 1ad3 subs r3, r2, r3 + 80197e8: 78fa ldrb r2, [r7, #3] + 80197ea: fb02 f303 mul.w r3, r2, r3 + 80197ee: 095a lsrs r2, r3, #5 + 80197f0: 697b ldr r3, [r7, #20] + 80197f2: 441a add r2, r3 + 80197f4: 4b08 ldr r3, [pc, #32] ; (8019818 ) + 80197f6: 4013 ands r3, r2 + 80197f8: 60fb str r3, [r7, #12] ret.full = (uint16_t)((result >> 16) | result); - 801988e: 68fb ldr r3, [r7, #12] - 8019890: 0c1b lsrs r3, r3, #16 - 8019892: b29a uxth r2, r3 - 8019894: 68fb ldr r3, [r7, #12] - 8019896: b29b uxth r3, r3 - 8019898: 4313 orrs r3, r2 - 801989a: b29b uxth r3, r3 - 801989c: 813b strh r3, [r7, #8] + 80197fa: 68fb ldr r3, [r7, #12] + 80197fc: 0c1b lsrs r3, r3, #16 + 80197fe: b29a uxth r2, r3 + 8019800: 68fb ldr r3, [r7, #12] + 8019802: b29b uxth r3, r3 + 8019804: 4313 orrs r3, r2 + 8019806: b29b uxth r3, r3 + 8019808: 813b strh r3, [r7, #8] #else /*LV_COLOR_DEPTH == 1*/ ret.full = mix > LV_OPA_50 ? c1.full : c2.full; #endif return ret; - 801989e: 893b ldrh r3, [r7, #8] + 801980a: 893b ldrh r3, [r7, #8] } - 80198a0: 4618 mov r0, r3 - 80198a2: 371c adds r7, #28 - 80198a4: 46bd mov sp, r7 - 80198a6: bc80 pop {r7} - 80198a8: 4770 bx lr - 80198aa: bf00 nop - 80198ac: 07e0f81f .word 0x07e0f81f + 801980c: 4618 mov r0, r3 + 801980e: 371c adds r7, #28 + 8019810: 46bd mov sp, r7 + 8019812: bc80 pop {r7} + 8019814: 4770 bx lr + 8019816: bf00 nop + 8019818: 07e0f81f .word 0x07e0f81f -080198b0 : +0801981c : LV_ATTRIBUTE_FAST_MEM static inline void lv_color_premult(lv_color_t c, uint8_t mix, uint16_t * out) { - 80198b0: b480 push {r7} - 80198b2: b083 sub sp, #12 - 80198b4: af00 add r7, sp, #0 - 80198b6: 80b8 strh r0, [r7, #4] - 80198b8: 460b mov r3, r1 - 80198ba: 603a str r2, [r7, #0] - 80198bc: 71fb strb r3, [r7, #7] + 801981c: b480 push {r7} + 801981e: b083 sub sp, #12 + 8019820: af00 add r7, sp, #0 + 8019822: 80b8 strh r0, [r7, #4] + 8019824: 460b mov r3, r1 + 8019826: 603a str r2, [r7, #0] + 8019828: 71fb strb r3, [r7, #7] #if LV_COLOR_DEPTH != 1 out[0] = (uint16_t)LV_COLOR_GET_R(c) * mix; - 80198be: 797b ldrb r3, [r7, #5] - 80198c0: f3c3 03c4 ubfx r3, r3, #3, #5 - 80198c4: b2db uxtb r3, r3 - 80198c6: b29b uxth r3, r3 - 80198c8: 79fa ldrb r2, [r7, #7] - 80198ca: b292 uxth r2, r2 - 80198cc: fb02 f303 mul.w r3, r2, r3 - 80198d0: b29a uxth r2, r3 - 80198d2: 683b ldr r3, [r7, #0] - 80198d4: 801a strh r2, [r3, #0] + 801982a: 797b ldrb r3, [r7, #5] + 801982c: f3c3 03c4 ubfx r3, r3, #3, #5 + 8019830: b2db uxtb r3, r3 + 8019832: b29b uxth r3, r3 + 8019834: 79fa ldrb r2, [r7, #7] + 8019836: b292 uxth r2, r2 + 8019838: fb02 f303 mul.w r3, r2, r3 + 801983c: b29a uxth r2, r3 + 801983e: 683b ldr r3, [r7, #0] + 8019840: 801a strh r2, [r3, #0] out[1] = (uint16_t)LV_COLOR_GET_G(c) * mix; - 80198d6: 88bb ldrh r3, [r7, #4] - 80198d8: f3c3 1345 ubfx r3, r3, #5, #6 - 80198dc: b2db uxtb r3, r3 - 80198de: b29a uxth r2, r3 - 80198e0: 79fb ldrb r3, [r7, #7] - 80198e2: b299 uxth r1, r3 - 80198e4: 683b ldr r3, [r7, #0] - 80198e6: 3302 adds r3, #2 - 80198e8: fb01 f202 mul.w r2, r1, r2 - 80198ec: b292 uxth r2, r2 - 80198ee: 801a strh r2, [r3, #0] + 8019842: 88bb ldrh r3, [r7, #4] + 8019844: f3c3 1345 ubfx r3, r3, #5, #6 + 8019848: b2db uxtb r3, r3 + 801984a: b29a uxth r2, r3 + 801984c: 79fb ldrb r3, [r7, #7] + 801984e: b299 uxth r1, r3 + 8019850: 683b ldr r3, [r7, #0] + 8019852: 3302 adds r3, #2 + 8019854: fb01 f202 mul.w r2, r1, r2 + 8019858: b292 uxth r2, r2 + 801985a: 801a strh r2, [r3, #0] out[2] = (uint16_t)LV_COLOR_GET_B(c) * mix; - 80198f0: 793b ldrb r3, [r7, #4] - 80198f2: f3c3 0304 ubfx r3, r3, #0, #5 - 80198f6: b2db uxtb r3, r3 - 80198f8: b29a uxth r2, r3 - 80198fa: 79fb ldrb r3, [r7, #7] - 80198fc: b299 uxth r1, r3 - 80198fe: 683b ldr r3, [r7, #0] - 8019900: 3304 adds r3, #4 - 8019902: fb01 f202 mul.w r2, r1, r2 - 8019906: b292 uxth r2, r2 - 8019908: 801a strh r2, [r3, #0] + 801985c: 793b ldrb r3, [r7, #4] + 801985e: f3c3 0304 ubfx r3, r3, #0, #5 + 8019862: b2db uxtb r3, r3 + 8019864: b29a uxth r2, r3 + 8019866: 79fb ldrb r3, [r7, #7] + 8019868: b299 uxth r1, r3 + 801986a: 683b ldr r3, [r7, #0] + 801986c: 3304 adds r3, #4 + 801986e: fb01 f202 mul.w r2, r1, r2 + 8019872: b292 uxth r2, r2 + 8019874: 801a strh r2, [r3, #0] out[0] = LV_COLOR_GET_R(c); out[1] = LV_COLOR_GET_G(c); out[2] = LV_COLOR_GET_B(c); #endif } - 801990a: bf00 nop - 801990c: 370c adds r7, #12 - 801990e: 46bd mov sp, r7 - 8019910: bc80 pop {r7} - 8019912: 4770 bx lr + 8019876: bf00 nop + 8019878: 370c adds r7, #12 + 801987a: 46bd mov sp, r7 + 801987c: bc80 pop {r7} + 801987e: 4770 bx lr -08019914 : +08019880 : * Should be modified like mix = `255 - mix` * @return the mixed color * @note 255 won't give clearly `c1`. */ LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix_premult(uint16_t * premult_c1, lv_color_t c2, uint8_t mix) { - 8019914: b480 push {r7} - 8019916: b085 sub sp, #20 - 8019918: af00 add r7, sp, #0 - 801991a: 6078 str r0, [r7, #4] - 801991c: 8039 strh r1, [r7, #0] - 801991e: 4613 mov r3, r2 - 8019920: 70fb strb r3, [r7, #3] + 8019880: b480 push {r7} + 8019882: b085 sub sp, #20 + 8019884: af00 add r7, sp, #0 + 8019886: 6078 str r0, [r7, #4] + 8019888: 8039 strh r1, [r7, #0] + 801988a: 4613 mov r3, r2 + 801988c: 70fb strb r3, [r7, #3] lv_color_t ret; #if LV_COLOR_DEPTH != 1 /*LV_COLOR_DEPTH == 8 or 32*/ LV_COLOR_SET_R(ret, LV_UDIV255(premult_c1[0] + LV_COLOR_GET_R(c2) * mix + LV_COLOR_MIX_ROUND_OFS)); - 8019922: 687b ldr r3, [r7, #4] - 8019924: 881b ldrh r3, [r3, #0] - 8019926: 461a mov r2, r3 - 8019928: 787b ldrb r3, [r7, #1] - 801992a: f3c3 03c4 ubfx r3, r3, #3, #5 - 801992e: b2db uxtb r3, r3 - 8019930: 4619 mov r1, r3 - 8019932: 78fb ldrb r3, [r7, #3] - 8019934: fb01 f303 mul.w r3, r1, r3 - 8019938: 4413 add r3, r2 - 801993a: 3380 adds r3, #128 ; 0x80 - 801993c: 461a mov r2, r3 - 801993e: 4613 mov r3, r2 - 8019940: 021b lsls r3, r3, #8 - 8019942: 4413 add r3, r2 - 8019944: 01db lsls r3, r3, #7 - 8019946: 4413 add r3, r2 - 8019948: 0ddb lsrs r3, r3, #23 - 801994a: f003 031f and.w r3, r3, #31 - 801994e: b2da uxtb r2, r3 - 8019950: 7b7b ldrb r3, [r7, #13] - 8019952: f362 03c7 bfi r3, r2, #3, #5 - 8019956: 737b strb r3, [r7, #13] + 801988e: 687b ldr r3, [r7, #4] + 8019890: 881b ldrh r3, [r3, #0] + 8019892: 461a mov r2, r3 + 8019894: 787b ldrb r3, [r7, #1] + 8019896: f3c3 03c4 ubfx r3, r3, #3, #5 + 801989a: b2db uxtb r3, r3 + 801989c: 4619 mov r1, r3 + 801989e: 78fb ldrb r3, [r7, #3] + 80198a0: fb01 f303 mul.w r3, r1, r3 + 80198a4: 4413 add r3, r2 + 80198a6: 3380 adds r3, #128 ; 0x80 + 80198a8: 461a mov r2, r3 + 80198aa: 4613 mov r3, r2 + 80198ac: 021b lsls r3, r3, #8 + 80198ae: 4413 add r3, r2 + 80198b0: 01db lsls r3, r3, #7 + 80198b2: 4413 add r3, r2 + 80198b4: 0ddb lsrs r3, r3, #23 + 80198b6: f003 031f and.w r3, r3, #31 + 80198ba: b2da uxtb r2, r3 + 80198bc: 7b7b ldrb r3, [r7, #13] + 80198be: f362 03c7 bfi r3, r2, #3, #5 + 80198c2: 737b strb r3, [r7, #13] LV_COLOR_SET_G(ret, LV_UDIV255(premult_c1[1] + LV_COLOR_GET_G(c2) * mix + LV_COLOR_MIX_ROUND_OFS)); - 8019958: 687b ldr r3, [r7, #4] - 801995a: 3302 adds r3, #2 - 801995c: 881b ldrh r3, [r3, #0] - 801995e: 461a mov r2, r3 - 8019960: 883b ldrh r3, [r7, #0] - 8019962: f3c3 1345 ubfx r3, r3, #5, #6 - 8019966: b2db uxtb r3, r3 - 8019968: 4619 mov r1, r3 - 801996a: 78fb ldrb r3, [r7, #3] - 801996c: fb01 f303 mul.w r3, r1, r3 - 8019970: 4413 add r3, r2 - 8019972: 3380 adds r3, #128 ; 0x80 - 8019974: 461a mov r2, r3 - 8019976: 4613 mov r3, r2 - 8019978: 021b lsls r3, r3, #8 - 801997a: 4413 add r3, r2 - 801997c: 01db lsls r3, r3, #7 - 801997e: 4413 add r3, r2 - 8019980: 0ddb lsrs r3, r3, #23 - 8019982: f003 033f and.w r3, r3, #63 ; 0x3f - 8019986: b2da uxtb r2, r3 - 8019988: 89bb ldrh r3, [r7, #12] - 801998a: f362 134a bfi r3, r2, #5, #6 - 801998e: 81bb strh r3, [r7, #12] + 80198c4: 687b ldr r3, [r7, #4] + 80198c6: 3302 adds r3, #2 + 80198c8: 881b ldrh r3, [r3, #0] + 80198ca: 461a mov r2, r3 + 80198cc: 883b ldrh r3, [r7, #0] + 80198ce: f3c3 1345 ubfx r3, r3, #5, #6 + 80198d2: b2db uxtb r3, r3 + 80198d4: 4619 mov r1, r3 + 80198d6: 78fb ldrb r3, [r7, #3] + 80198d8: fb01 f303 mul.w r3, r1, r3 + 80198dc: 4413 add r3, r2 + 80198de: 3380 adds r3, #128 ; 0x80 + 80198e0: 461a mov r2, r3 + 80198e2: 4613 mov r3, r2 + 80198e4: 021b lsls r3, r3, #8 + 80198e6: 4413 add r3, r2 + 80198e8: 01db lsls r3, r3, #7 + 80198ea: 4413 add r3, r2 + 80198ec: 0ddb lsrs r3, r3, #23 + 80198ee: f003 033f and.w r3, r3, #63 ; 0x3f + 80198f2: b2da uxtb r2, r3 + 80198f4: 89bb ldrh r3, [r7, #12] + 80198f6: f362 134a bfi r3, r2, #5, #6 + 80198fa: 81bb strh r3, [r7, #12] LV_COLOR_SET_B(ret, LV_UDIV255(premult_c1[2] + LV_COLOR_GET_B(c2) * mix + LV_COLOR_MIX_ROUND_OFS)); - 8019990: 687b ldr r3, [r7, #4] - 8019992: 3304 adds r3, #4 - 8019994: 881b ldrh r3, [r3, #0] - 8019996: 461a mov r2, r3 - 8019998: 783b ldrb r3, [r7, #0] - 801999a: f3c3 0304 ubfx r3, r3, #0, #5 - 801999e: b2db uxtb r3, r3 - 80199a0: 4619 mov r1, r3 - 80199a2: 78fb ldrb r3, [r7, #3] - 80199a4: fb01 f303 mul.w r3, r1, r3 - 80199a8: 4413 add r3, r2 - 80199aa: 3380 adds r3, #128 ; 0x80 - 80199ac: 461a mov r2, r3 - 80199ae: 4613 mov r3, r2 - 80199b0: 021b lsls r3, r3, #8 - 80199b2: 4413 add r3, r2 - 80199b4: 01db lsls r3, r3, #7 - 80199b6: 4413 add r3, r2 - 80199b8: 0ddb lsrs r3, r3, #23 - 80199ba: f003 031f and.w r3, r3, #31 - 80199be: b2da uxtb r2, r3 - 80199c0: 7b3b ldrb r3, [r7, #12] - 80199c2: f362 0304 bfi r3, r2, #0, #5 - 80199c6: 733b strb r3, [r7, #12] + 80198fc: 687b ldr r3, [r7, #4] + 80198fe: 3304 adds r3, #4 + 8019900: 881b ldrh r3, [r3, #0] + 8019902: 461a mov r2, r3 + 8019904: 783b ldrb r3, [r7, #0] + 8019906: f3c3 0304 ubfx r3, r3, #0, #5 + 801990a: b2db uxtb r3, r3 + 801990c: 4619 mov r1, r3 + 801990e: 78fb ldrb r3, [r7, #3] + 8019910: fb01 f303 mul.w r3, r1, r3 + 8019914: 4413 add r3, r2 + 8019916: 3380 adds r3, #128 ; 0x80 + 8019918: 461a mov r2, r3 + 801991a: 4613 mov r3, r2 + 801991c: 021b lsls r3, r3, #8 + 801991e: 4413 add r3, r2 + 8019920: 01db lsls r3, r3, #7 + 8019922: 4413 add r3, r2 + 8019924: 0ddb lsrs r3, r3, #23 + 8019926: f003 031f and.w r3, r3, #31 + 801992a: b2da uxtb r2, r3 + 801992c: 7b3b ldrb r3, [r7, #12] + 801992e: f362 0304 bfi r3, r2, #0, #5 + 8019932: 733b strb r3, [r7, #12] LV_COLOR_SET_G(c1, premult_c1[1]); LV_COLOR_SET_B(c1, premult_c1[2]); ret.full = mix > LV_OPA_50 ? c2.full : c1.full; #endif return ret; - 80199c8: 89bb ldrh r3, [r7, #12] + 8019934: 89bb ldrh r3, [r7, #12] } - 80199ca: 4618 mov r0, r3 - 80199cc: 3714 adds r7, #20 - 80199ce: 46bd mov sp, r7 - 80199d0: bc80 pop {r7} - 80199d2: 4770 bx lr + 8019936: 4618 mov r0, r3 + 8019938: 3714 adds r7, #20 + 801993a: 46bd mov sp, r7 + 801993c: bc80 pop {r7} + 801993e: 4770 bx lr -080199d4 : +08019940 : uint16_t bright = (uint16_t)(3u * LV_COLOR_GET_R32(c32) + LV_COLOR_GET_B32(c32) + 4u * LV_COLOR_GET_G32(c32)); return (uint8_t)(bright >> 3); } static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b) { - 80199d4: b490 push {r4, r7} - 80199d6: b082 sub sp, #8 - 80199d8: af00 add r7, sp, #0 - 80199da: 4604 mov r4, r0 - 80199dc: 4608 mov r0, r1 - 80199de: 4611 mov r1, r2 - 80199e0: 4622 mov r2, r4 - 80199e2: 71fa strb r2, [r7, #7] - 80199e4: 4602 mov r2, r0 - 80199e6: 71ba strb r2, [r7, #6] - 80199e8: 460a mov r2, r1 - 80199ea: 717a strb r2, [r7, #5] + 8019940: b490 push {r4, r7} + 8019942: b082 sub sp, #8 + 8019944: af00 add r7, sp, #0 + 8019946: 4604 mov r4, r0 + 8019948: 4608 mov r0, r1 + 801994a: 4611 mov r1, r2 + 801994c: 4622 mov r2, r4 + 801994e: 71fa strb r2, [r7, #7] + 8019950: 4602 mov r2, r0 + 8019952: 71ba strb r2, [r7, #6] + 8019954: 460a mov r2, r1 + 8019956: 717a strb r2, [r7, #5] return _LV_COLOR_MAKE_TYPE_HELPER LV_COLOR_MAKE(r, g, b); - 80199ec: 797a ldrb r2, [r7, #5] - 80199ee: 08d2 lsrs r2, r2, #3 - 80199f0: b2d2 uxtb r2, r2 - 80199f2: f002 021f and.w r2, r2, #31 - 80199f6: b2d0 uxtb r0, r2 - 80199f8: 79ba ldrb r2, [r7, #6] - 80199fa: 0892 lsrs r2, r2, #2 - 80199fc: b2d2 uxtb r2, r2 - 80199fe: f002 023f and.w r2, r2, #63 ; 0x3f - 8019a02: b2d1 uxtb r1, r2 - 8019a04: 79fa ldrb r2, [r7, #7] - 8019a06: 08d2 lsrs r2, r2, #3 - 8019a08: b2d2 uxtb r2, r2 - 8019a0a: f002 021f and.w r2, r2, #31 - 8019a0e: b2d2 uxtb r2, r2 - 8019a10: f360 0304 bfi r3, r0, #0, #5 - 8019a14: f361 134a bfi r3, r1, #5, #6 - 8019a18: f362 23cf bfi r3, r2, #11, #5 + 8019958: 797a ldrb r2, [r7, #5] + 801995a: 08d2 lsrs r2, r2, #3 + 801995c: b2d2 uxtb r2, r2 + 801995e: f002 021f and.w r2, r2, #31 + 8019962: b2d0 uxtb r0, r2 + 8019964: 79ba ldrb r2, [r7, #6] + 8019966: 0892 lsrs r2, r2, #2 + 8019968: b2d2 uxtb r2, r2 + 801996a: f002 023f and.w r2, r2, #63 ; 0x3f + 801996e: b2d1 uxtb r1, r2 + 8019970: 79fa ldrb r2, [r7, #7] + 8019972: 08d2 lsrs r2, r2, #3 + 8019974: b2d2 uxtb r2, r2 + 8019976: f002 021f and.w r2, r2, #31 + 801997a: b2d2 uxtb r2, r2 + 801997c: f360 0304 bfi r3, r0, #0, #5 + 8019980: f361 134a bfi r3, r1, #5, #6 + 8019984: f362 23cf bfi r3, r2, #11, #5 } - 8019a1c: 4618 mov r0, r3 - 8019a1e: 3708 adds r7, #8 - 8019a20: 46bd mov sp, r7 - 8019a22: bc90 pop {r4, r7} - 8019a24: 4770 bx lr + 8019988: 4618 mov r0, r3 + 801998a: 3708 adds r7, #8 + 801998c: 46bd mov sp, r7 + 801998e: bc90 pop {r4, r7} + 8019990: 4770 bx lr -08019a26 : +08019992 : static inline lv_color_t lv_color_white(void) { return lv_color_make(0xff, 0xff, 0xff); } static inline lv_color_t lv_color_black(void) { - 8019a26: b580 push {r7, lr} - 8019a28: af00 add r7, sp, #0 + 8019992: b580 push {r7, lr} + 8019994: af00 add r7, sp, #0 return lv_color_make(0x00, 0x0, 0x00); - 8019a2a: 2200 movs r2, #0 - 8019a2c: 2100 movs r1, #0 - 8019a2e: 2000 movs r0, #0 - 8019a30: f7ff ffd0 bl 80199d4 - 8019a34: 4603 mov r3, r0 + 8019996: 2200 movs r2, #0 + 8019998: 2100 movs r1, #0 + 801999a: 2000 movs r0, #0 + 801999c: f7ff ffd0 bl 8019940 + 80199a0: 4603 mov r3, r0 } - 8019a36: 4618 mov r0, r3 - 8019a38: bd80 pop {r7, pc} + 80199a2: 4618 mov r0, r3 + 80199a4: bd80 pop {r7, pc} -08019a3a : +080199a6 : { - 8019a3a: b480 push {r7} - 8019a3c: b083 sub sp, #12 - 8019a3e: af00 add r7, sp, #0 - 8019a40: 6078 str r0, [r7, #4] + 80199a6: b480 push {r7} + 80199a8: b083 sub sp, #12 + 80199aa: af00 add r7, sp, #0 + 80199ac: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 8019a42: 687b ldr r3, [r7, #4] - 8019a44: f9b3 3004 ldrsh.w r3, [r3, #4] - 8019a48: b29a uxth r2, r3 - 8019a4a: 687b ldr r3, [r7, #4] - 8019a4c: f9b3 3000 ldrsh.w r3, [r3] - 8019a50: b29b uxth r3, r3 - 8019a52: 1ad3 subs r3, r2, r3 - 8019a54: b29b uxth r3, r3 - 8019a56: 3301 adds r3, #1 - 8019a58: b29b uxth r3, r3 - 8019a5a: b21b sxth r3, r3 + 80199ae: 687b ldr r3, [r7, #4] + 80199b0: f9b3 3004 ldrsh.w r3, [r3, #4] + 80199b4: b29a uxth r2, r3 + 80199b6: 687b ldr r3, [r7, #4] + 80199b8: f9b3 3000 ldrsh.w r3, [r3] + 80199bc: b29b uxth r3, r3 + 80199be: 1ad3 subs r3, r2, r3 + 80199c0: b29b uxth r3, r3 + 80199c2: 3301 adds r3, #1 + 80199c4: b29b uxth r3, r3 + 80199c6: b21b sxth r3, r3 } - 8019a5c: 4618 mov r0, r3 - 8019a5e: 370c adds r7, #12 - 8019a60: 46bd mov sp, r7 - 8019a62: bc80 pop {r7} - 8019a64: 4770 bx lr + 80199c8: 4618 mov r0, r3 + 80199ca: 370c adds r7, #12 + 80199cc: 46bd mov sp, r7 + 80199ce: bc80 pop {r7} + 80199d0: 4770 bx lr -08019a66 : +080199d2 : { - 8019a66: b480 push {r7} - 8019a68: b083 sub sp, #12 - 8019a6a: af00 add r7, sp, #0 - 8019a6c: 6078 str r0, [r7, #4] + 80199d2: b480 push {r7} + 80199d4: b083 sub sp, #12 + 80199d6: af00 add r7, sp, #0 + 80199d8: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 8019a6e: 687b ldr r3, [r7, #4] - 8019a70: f9b3 3006 ldrsh.w r3, [r3, #6] - 8019a74: b29a uxth r2, r3 - 8019a76: 687b ldr r3, [r7, #4] - 8019a78: f9b3 3002 ldrsh.w r3, [r3, #2] - 8019a7c: b29b uxth r3, r3 - 8019a7e: 1ad3 subs r3, r2, r3 - 8019a80: b29b uxth r3, r3 - 8019a82: 3301 adds r3, #1 - 8019a84: b29b uxth r3, r3 - 8019a86: b21b sxth r3, r3 + 80199da: 687b ldr r3, [r7, #4] + 80199dc: f9b3 3006 ldrsh.w r3, [r3, #6] + 80199e0: b29a uxth r2, r3 + 80199e2: 687b ldr r3, [r7, #4] + 80199e4: f9b3 3002 ldrsh.w r3, [r3, #2] + 80199e8: b29b uxth r3, r3 + 80199ea: 1ad3 subs r3, r2, r3 + 80199ec: b29b uxth r3, r3 + 80199ee: 3301 adds r3, #1 + 80199f0: b29b uxth r3, r3 + 80199f2: b21b sxth r3, r3 } - 8019a88: 4618 mov r0, r3 - 8019a8a: 370c adds r7, #12 - 8019a8c: 46bd mov sp, r7 - 8019a8e: bc80 pop {r7} - 8019a90: 4770 bx lr + 80199f4: 4618 mov r0, r3 + 80199f6: 370c adds r7, #12 + 80199f8: 46bd mov sp, r7 + 80199fa: bc80 pop {r7} + 80199fc: 4770 bx lr -08019a92 : +080199fe : /********************** * GLOBAL FUNCTIONS **********************/ void lv_draw_sw_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc) { - 8019a92: b580 push {r7, lr} - 8019a94: b084 sub sp, #16 - 8019a96: af00 add r7, sp, #0 - 8019a98: 6078 str r0, [r7, #4] - 8019a9a: 6039 str r1, [r7, #0] + 80199fe: b580 push {r7, lr} + 8019a00: b084 sub sp, #16 + 8019a02: af00 add r7, sp, #0 + 8019a04: 6078 str r0, [r7, #4] + 8019a06: 6039 str r1, [r7, #0] /*Do not draw transparent things*/ if(dsc->opa <= LV_OPA_MIN) return; - 8019a9c: 683b ldr r3, [r7, #0] - 8019a9e: 7e1b ldrb r3, [r3, #24] - 8019aa0: 2b02 cmp r3, #2 - 8019aa2: d91c bls.n 8019ade + 8019a08: 683b ldr r3, [r7, #0] + 8019a0a: 7e1b ldrb r3, [r3, #24] + 8019a0c: 2b02 cmp r3, #2 + 8019a0e: d91c bls.n 8019a4a lv_area_t blend_area; if(!_lv_area_intersect(&blend_area, dsc->blend_area, draw_ctx->clip_area)) return; - 8019aa4: 683b ldr r3, [r7, #0] - 8019aa6: 6819 ldr r1, [r3, #0] - 8019aa8: 687b ldr r3, [r7, #4] - 8019aaa: 689a ldr r2, [r3, #8] - 8019aac: f107 0308 add.w r3, r7, #8 - 8019ab0: 4618 mov r0, r3 - 8019ab2: f017 faf9 bl 80310a8 <_lv_area_intersect> - 8019ab6: 4603 mov r3, r0 - 8019ab8: f083 0301 eor.w r3, r3, #1 - 8019abc: b2db uxtb r3, r3 - 8019abe: 2b00 cmp r3, #0 - 8019ac0: d10f bne.n 8019ae2 + 8019a10: 683b ldr r3, [r7, #0] + 8019a12: 6819 ldr r1, [r3, #0] + 8019a14: 687b ldr r3, [r7, #4] + 8019a16: 689a ldr r2, [r3, #8] + 8019a18: f107 0308 add.w r3, r7, #8 + 8019a1c: 4618 mov r0, r3 + 8019a1e: f017 faf9 bl 8031014 <_lv_area_intersect> + 8019a22: 4603 mov r3, r0 + 8019a24: f083 0301 eor.w r3, r3, #1 + 8019a28: b2db uxtb r3, r3 + 8019a2a: 2b00 cmp r3, #0 + 8019a2c: d10f bne.n 8019a4e if(draw_ctx->wait_for_finish) draw_ctx->wait_for_finish(draw_ctx); - 8019ac2: 687b ldr r3, [r7, #4] - 8019ac4: 6adb ldr r3, [r3, #44] ; 0x2c - 8019ac6: 2b00 cmp r3, #0 - 8019ac8: d003 beq.n 8019ad2 - 8019aca: 687b ldr r3, [r7, #4] - 8019acc: 6adb ldr r3, [r3, #44] ; 0x2c - 8019ace: 6878 ldr r0, [r7, #4] - 8019ad0: 4798 blx r3 + 8019a2e: 687b ldr r3, [r7, #4] + 8019a30: 6adb ldr r3, [r3, #44] ; 0x2c + 8019a32: 2b00 cmp r3, #0 + 8019a34: d003 beq.n 8019a3e + 8019a36: 687b ldr r3, [r7, #4] + 8019a38: 6adb ldr r3, [r3, #44] ; 0x2c + 8019a3a: 6878 ldr r0, [r7, #4] + 8019a3c: 4798 blx r3 ((lv_draw_sw_ctx_t *)draw_ctx)->blend(draw_ctx, dsc); - 8019ad2: 687b ldr r3, [r7, #4] - 8019ad4: 6b5b ldr r3, [r3, #52] ; 0x34 - 8019ad6: 6839 ldr r1, [r7, #0] - 8019ad8: 6878 ldr r0, [r7, #4] - 8019ada: 4798 blx r3 - 8019adc: e002 b.n 8019ae4 + 8019a3e: 687b ldr r3, [r7, #4] + 8019a40: 6b5b ldr r3, [r3, #52] ; 0x34 + 8019a42: 6839 ldr r1, [r7, #0] + 8019a44: 6878 ldr r0, [r7, #4] + 8019a46: 4798 blx r3 + 8019a48: e002 b.n 8019a50 if(dsc->opa <= LV_OPA_MIN) return; - 8019ade: bf00 nop - 8019ae0: e000 b.n 8019ae4 + 8019a4a: bf00 nop + 8019a4c: e000 b.n 8019a50 if(!_lv_area_intersect(&blend_area, dsc->blend_area, draw_ctx->clip_area)) return; - 8019ae2: bf00 nop + 8019a4e: bf00 nop } - 8019ae4: 3710 adds r7, #16 - 8019ae6: 46bd mov sp, r7 - 8019ae8: bd80 pop {r7, pc} + 8019a50: 3710 adds r7, #16 + 8019a52: 46bd mov sp, r7 + 8019a54: bd80 pop {r7, pc} -08019aea : +08019a56 : LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_blend_basic(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc) { - 8019aea: b590 push {r4, r7, lr} - 8019aec: b091 sub sp, #68 ; 0x44 - 8019aee: af06 add r7, sp, #24 - 8019af0: 6078 str r0, [r7, #4] - 8019af2: 6039 str r1, [r7, #0] + 8019a56: b590 push {r4, r7, lr} + 8019a58: b091 sub sp, #68 ; 0x44 + 8019a5a: af06 add r7, sp, #24 + 8019a5c: 6078 str r0, [r7, #4] + 8019a5e: 6039 str r1, [r7, #0] const lv_opa_t * mask; if(dsc->mask_buf == NULL) mask = NULL; - 8019af4: 683b ldr r3, [r7, #0] - 8019af6: 68db ldr r3, [r3, #12] - 8019af8: 2b00 cmp r3, #0 - 8019afa: d101 bne.n 8019b00 - 8019afc: 2300 movs r3, #0 - 8019afe: 627b str r3, [r7, #36] ; 0x24 + 8019a60: 683b ldr r3, [r7, #0] + 8019a62: 68db ldr r3, [r3, #12] + 8019a64: 2b00 cmp r3, #0 + 8019a66: d101 bne.n 8019a6c + 8019a68: 2300 movs r3, #0 + 8019a6a: 627b str r3, [r7, #36] ; 0x24 if(dsc->mask_buf && dsc->mask_res == LV_DRAW_MASK_RES_TRANSP) return; - 8019b00: 683b ldr r3, [r7, #0] - 8019b02: 68db ldr r3, [r3, #12] - 8019b04: 2b00 cmp r3, #0 - 8019b06: d004 beq.n 8019b12 - 8019b08: 683b ldr r3, [r7, #0] - 8019b0a: 7c1b ldrb r3, [r3, #16] - 8019b0c: 2b00 cmp r3, #0 - 8019b0e: f000 813f beq.w 8019d90 + 8019a6c: 683b ldr r3, [r7, #0] + 8019a6e: 68db ldr r3, [r3, #12] + 8019a70: 2b00 cmp r3, #0 + 8019a72: d004 beq.n 8019a7e + 8019a74: 683b ldr r3, [r7, #0] + 8019a76: 7c1b ldrb r3, [r3, #16] + 8019a78: 2b00 cmp r3, #0 + 8019a7a: f000 813f beq.w 8019cfc else if(dsc->mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask = NULL; - 8019b12: 683b ldr r3, [r7, #0] - 8019b14: 7c1b ldrb r3, [r3, #16] - 8019b16: 2b01 cmp r3, #1 - 8019b18: d102 bne.n 8019b20 - 8019b1a: 2300 movs r3, #0 - 8019b1c: 627b str r3, [r7, #36] ; 0x24 - 8019b1e: e002 b.n 8019b26 + 8019a7e: 683b ldr r3, [r7, #0] + 8019a80: 7c1b ldrb r3, [r3, #16] + 8019a82: 2b01 cmp r3, #1 + 8019a84: d102 bne.n 8019a8c + 8019a86: 2300 movs r3, #0 + 8019a88: 627b str r3, [r7, #36] ; 0x24 + 8019a8a: e002 b.n 8019a92 else mask = dsc->mask_buf; - 8019b20: 683b ldr r3, [r7, #0] - 8019b22: 68db ldr r3, [r3, #12] - 8019b24: 627b str r3, [r7, #36] ; 0x24 + 8019a8c: 683b ldr r3, [r7, #0] + 8019a8e: 68db ldr r3, [r3, #12] + 8019a90: 627b str r3, [r7, #36] ; 0x24 lv_coord_t dest_stride = lv_area_get_width(draw_ctx->buf_area); - 8019b26: 687b ldr r3, [r7, #4] - 8019b28: 685b ldr r3, [r3, #4] - 8019b2a: 4618 mov r0, r3 - 8019b2c: f7ff ff85 bl 8019a3a - 8019b30: 4603 mov r3, r0 - 8019b32: 82fb strh r3, [r7, #22] + 8019a92: 687b ldr r3, [r7, #4] + 8019a94: 685b ldr r3, [r3, #4] + 8019a96: 4618 mov r0, r3 + 8019a98: f7ff ff85 bl 80199a6 + 8019a9c: 4603 mov r3, r0 + 8019a9e: 82fb strh r3, [r7, #22] lv_area_t blend_area; if(!_lv_area_intersect(&blend_area, dsc->blend_area, draw_ctx->clip_area)) return; - 8019b34: 683b ldr r3, [r7, #0] - 8019b36: 6819 ldr r1, [r3, #0] - 8019b38: 687b ldr r3, [r7, #4] - 8019b3a: 689a ldr r2, [r3, #8] - 8019b3c: f107 0308 add.w r3, r7, #8 - 8019b40: 4618 mov r0, r3 - 8019b42: f017 fab1 bl 80310a8 <_lv_area_intersect> - 8019b46: 4603 mov r3, r0 - 8019b48: f083 0301 eor.w r3, r3, #1 - 8019b4c: b2db uxtb r3, r3 - 8019b4e: 2b00 cmp r3, #0 - 8019b50: f040 8120 bne.w 8019d94 + 8019aa0: 683b ldr r3, [r7, #0] + 8019aa2: 6819 ldr r1, [r3, #0] + 8019aa4: 687b ldr r3, [r7, #4] + 8019aa6: 689a ldr r2, [r3, #8] + 8019aa8: f107 0308 add.w r3, r7, #8 + 8019aac: 4618 mov r0, r3 + 8019aae: f017 fab1 bl 8031014 <_lv_area_intersect> + 8019ab2: 4603 mov r3, r0 + 8019ab4: f083 0301 eor.w r3, r3, #1 + 8019ab8: b2db uxtb r3, r3 + 8019aba: 2b00 cmp r3, #0 + 8019abc: f040 8120 bne.w 8019d00 lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 8019b54: f7f6 f8fc bl 800fd50 <_lv_refr_get_disp_refreshing> - 8019b58: 6138 str r0, [r7, #16] + 8019ac0: f7f6 f8fc bl 800fcbc <_lv_refr_get_disp_refreshing> + 8019ac4: 6138 str r0, [r7, #16] lv_color_t * dest_buf = draw_ctx->buf; - 8019b5a: 687b ldr r3, [r7, #4] - 8019b5c: 681b ldr r3, [r3, #0] - 8019b5e: 623b str r3, [r7, #32] + 8019ac6: 687b ldr r3, [r7, #4] + 8019ac8: 681b ldr r3, [r3, #0] + 8019aca: 623b str r3, [r7, #32] if(disp->driver->set_px_cb == NULL) { - 8019b60: 693b ldr r3, [r7, #16] - 8019b62: 681b ldr r3, [r3, #0] - 8019b64: 69db ldr r3, [r3, #28] - 8019b66: 2b00 cmp r3, #0 - 8019b68: d118 bne.n 8019b9c + 8019acc: 693b ldr r3, [r7, #16] + 8019ace: 681b ldr r3, [r3, #0] + 8019ad0: 69db ldr r3, [r3, #28] + 8019ad2: 2b00 cmp r3, #0 + 8019ad4: d118 bne.n 8019b08 dest_buf += dest_stride * (blend_area.y1 - draw_ctx->buf_area->y1) + (blend_area.x1 - draw_ctx->buf_area->x1); - 8019b6a: f9b7 3016 ldrsh.w r3, [r7, #22] - 8019b6e: f9b7 200a ldrsh.w r2, [r7, #10] - 8019b72: 4611 mov r1, r2 - 8019b74: 687a ldr r2, [r7, #4] - 8019b76: 6852 ldr r2, [r2, #4] - 8019b78: f9b2 2002 ldrsh.w r2, [r2, #2] - 8019b7c: 1a8a subs r2, r1, r2 - 8019b7e: fb03 f202 mul.w r2, r3, r2 - 8019b82: f9b7 3008 ldrsh.w r3, [r7, #8] - 8019b86: 4619 mov r1, r3 - 8019b88: 687b ldr r3, [r7, #4] - 8019b8a: 685b ldr r3, [r3, #4] - 8019b8c: f9b3 3000 ldrsh.w r3, [r3] - 8019b90: 1acb subs r3, r1, r3 - 8019b92: 4413 add r3, r2 - 8019b94: 005b lsls r3, r3, #1 - 8019b96: 6a3a ldr r2, [r7, #32] - 8019b98: 4413 add r3, r2 - 8019b9a: 623b str r3, [r7, #32] + 8019ad6: f9b7 3016 ldrsh.w r3, [r7, #22] + 8019ada: f9b7 200a ldrsh.w r2, [r7, #10] + 8019ade: 4611 mov r1, r2 + 8019ae0: 687a ldr r2, [r7, #4] + 8019ae2: 6852 ldr r2, [r2, #4] + 8019ae4: f9b2 2002 ldrsh.w r2, [r2, #2] + 8019ae8: 1a8a subs r2, r1, r2 + 8019aea: fb03 f202 mul.w r2, r3, r2 + 8019aee: f9b7 3008 ldrsh.w r3, [r7, #8] + 8019af2: 4619 mov r1, r3 + 8019af4: 687b ldr r3, [r7, #4] + 8019af6: 685b ldr r3, [r3, #4] + 8019af8: f9b3 3000 ldrsh.w r3, [r3] + 8019afc: 1acb subs r3, r1, r3 + 8019afe: 4413 add r3, r2 + 8019b00: 005b lsls r3, r3, #1 + 8019b02: 6a3a ldr r2, [r7, #32] + 8019b04: 4413 add r3, r2 + 8019b06: 623b str r3, [r7, #32] } const lv_color_t * src_buf = dsc->src_buf; - 8019b9c: 683b ldr r3, [r7, #0] - 8019b9e: 685b ldr r3, [r3, #4] - 8019ba0: 61fb str r3, [r7, #28] + 8019b08: 683b ldr r3, [r7, #0] + 8019b0a: 685b ldr r3, [r3, #4] + 8019b0c: 61fb str r3, [r7, #28] lv_coord_t src_stride; if(src_buf) { - 8019ba2: 69fb ldr r3, [r7, #28] - 8019ba4: 2b00 cmp r3, #0 - 8019ba6: d020 beq.n 8019bea + 8019b0e: 69fb ldr r3, [r7, #28] + 8019b10: 2b00 cmp r3, #0 + 8019b12: d020 beq.n 8019b56 src_stride = lv_area_get_width(dsc->blend_area); - 8019ba8: 683b ldr r3, [r7, #0] - 8019baa: 681b ldr r3, [r3, #0] - 8019bac: 4618 mov r0, r3 - 8019bae: f7ff ff44 bl 8019a3a - 8019bb2: 4603 mov r3, r0 - 8019bb4: 837b strh r3, [r7, #26] + 8019b14: 683b ldr r3, [r7, #0] + 8019b16: 681b ldr r3, [r3, #0] + 8019b18: 4618 mov r0, r3 + 8019b1a: f7ff ff44 bl 80199a6 + 8019b1e: 4603 mov r3, r0 + 8019b20: 837b strh r3, [r7, #26] src_buf += src_stride * (blend_area.y1 - dsc->blend_area->y1) + (blend_area.x1 - dsc->blend_area->x1); - 8019bb6: f9b7 301a ldrsh.w r3, [r7, #26] - 8019bba: f9b7 200a ldrsh.w r2, [r7, #10] - 8019bbe: 4611 mov r1, r2 - 8019bc0: 683a ldr r2, [r7, #0] - 8019bc2: 6812 ldr r2, [r2, #0] - 8019bc4: f9b2 2002 ldrsh.w r2, [r2, #2] - 8019bc8: 1a8a subs r2, r1, r2 - 8019bca: fb03 f202 mul.w r2, r3, r2 - 8019bce: f9b7 3008 ldrsh.w r3, [r7, #8] - 8019bd2: 4619 mov r1, r3 - 8019bd4: 683b ldr r3, [r7, #0] - 8019bd6: 681b ldr r3, [r3, #0] - 8019bd8: f9b3 3000 ldrsh.w r3, [r3] - 8019bdc: 1acb subs r3, r1, r3 - 8019bde: 4413 add r3, r2 - 8019be0: 005b lsls r3, r3, #1 - 8019be2: 69fa ldr r2, [r7, #28] - 8019be4: 4413 add r3, r2 - 8019be6: 61fb str r3, [r7, #28] - 8019be8: e001 b.n 8019bee + 8019b22: f9b7 301a ldrsh.w r3, [r7, #26] + 8019b26: f9b7 200a ldrsh.w r2, [r7, #10] + 8019b2a: 4611 mov r1, r2 + 8019b2c: 683a ldr r2, [r7, #0] + 8019b2e: 6812 ldr r2, [r2, #0] + 8019b30: f9b2 2002 ldrsh.w r2, [r2, #2] + 8019b34: 1a8a subs r2, r1, r2 + 8019b36: fb03 f202 mul.w r2, r3, r2 + 8019b3a: f9b7 3008 ldrsh.w r3, [r7, #8] + 8019b3e: 4619 mov r1, r3 + 8019b40: 683b ldr r3, [r7, #0] + 8019b42: 681b ldr r3, [r3, #0] + 8019b44: f9b3 3000 ldrsh.w r3, [r3] + 8019b48: 1acb subs r3, r1, r3 + 8019b4a: 4413 add r3, r2 + 8019b4c: 005b lsls r3, r3, #1 + 8019b4e: 69fa ldr r2, [r7, #28] + 8019b50: 4413 add r3, r2 + 8019b52: 61fb str r3, [r7, #28] + 8019b54: e001 b.n 8019b5a } else { src_stride = 0; - 8019bea: 2300 movs r3, #0 - 8019bec: 837b strh r3, [r7, #26] + 8019b56: 2300 movs r3, #0 + 8019b58: 837b strh r3, [r7, #26] } lv_coord_t mask_stride; if(mask) { - 8019bee: 6a7b ldr r3, [r7, #36] ; 0x24 - 8019bf0: 2b00 cmp r3, #0 - 8019bf2: d020 beq.n 8019c36 + 8019b5a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8019b5c: 2b00 cmp r3, #0 + 8019b5e: d020 beq.n 8019ba2 mask_stride = lv_area_get_width(dsc->mask_area); - 8019bf4: 683b ldr r3, [r7, #0] - 8019bf6: 695b ldr r3, [r3, #20] - 8019bf8: 4618 mov r0, r3 - 8019bfa: f7ff ff1e bl 8019a3a - 8019bfe: 4603 mov r3, r0 - 8019c00: 833b strh r3, [r7, #24] + 8019b60: 683b ldr r3, [r7, #0] + 8019b62: 695b ldr r3, [r3, #20] + 8019b64: 4618 mov r0, r3 + 8019b66: f7ff ff1e bl 80199a6 + 8019b6a: 4603 mov r3, r0 + 8019b6c: 833b strh r3, [r7, #24] mask += mask_stride * (dsc->mask_area->y1 - blend_area.y1) + (dsc->mask_area->x1 - blend_area.x1); - 8019c02: f9b7 3018 ldrsh.w r3, [r7, #24] - 8019c06: 683a ldr r2, [r7, #0] - 8019c08: 6952 ldr r2, [r2, #20] - 8019c0a: f9b2 2002 ldrsh.w r2, [r2, #2] - 8019c0e: 4611 mov r1, r2 - 8019c10: f9b7 200a ldrsh.w r2, [r7, #10] - 8019c14: 1a8a subs r2, r1, r2 - 8019c16: fb03 f202 mul.w r2, r3, r2 - 8019c1a: 683b ldr r3, [r7, #0] - 8019c1c: 695b ldr r3, [r3, #20] - 8019c1e: f9b3 3000 ldrsh.w r3, [r3] - 8019c22: 4619 mov r1, r3 - 8019c24: f9b7 3008 ldrsh.w r3, [r7, #8] - 8019c28: 1acb subs r3, r1, r3 - 8019c2a: 4413 add r3, r2 - 8019c2c: 461a mov r2, r3 - 8019c2e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8019c30: 4413 add r3, r2 - 8019c32: 627b str r3, [r7, #36] ; 0x24 - 8019c34: e001 b.n 8019c3a + 8019b6e: f9b7 3018 ldrsh.w r3, [r7, #24] + 8019b72: 683a ldr r2, [r7, #0] + 8019b74: 6952 ldr r2, [r2, #20] + 8019b76: f9b2 2002 ldrsh.w r2, [r2, #2] + 8019b7a: 4611 mov r1, r2 + 8019b7c: f9b7 200a ldrsh.w r2, [r7, #10] + 8019b80: 1a8a subs r2, r1, r2 + 8019b82: fb03 f202 mul.w r2, r3, r2 + 8019b86: 683b ldr r3, [r7, #0] + 8019b88: 695b ldr r3, [r3, #20] + 8019b8a: f9b3 3000 ldrsh.w r3, [r3] + 8019b8e: 4619 mov r1, r3 + 8019b90: f9b7 3008 ldrsh.w r3, [r7, #8] + 8019b94: 1acb subs r3, r1, r3 + 8019b96: 4413 add r3, r2 + 8019b98: 461a mov r2, r3 + 8019b9a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8019b9c: 4413 add r3, r2 + 8019b9e: 627b str r3, [r7, #36] ; 0x24 + 8019ba0: e001 b.n 8019ba6 } else { mask_stride = 0; - 8019c36: 2300 movs r3, #0 - 8019c38: 833b strh r3, [r7, #24] + 8019ba2: 2300 movs r3, #0 + 8019ba4: 833b strh r3, [r7, #24] } lv_area_move(&blend_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1); - 8019c3a: 687b ldr r3, [r7, #4] - 8019c3c: 685b ldr r3, [r3, #4] - 8019c3e: f9b3 3000 ldrsh.w r3, [r3] - 8019c42: b29b uxth r3, r3 - 8019c44: 425b negs r3, r3 - 8019c46: b29b uxth r3, r3 - 8019c48: b219 sxth r1, r3 - 8019c4a: 687b ldr r3, [r7, #4] - 8019c4c: 685b ldr r3, [r3, #4] - 8019c4e: f9b3 3002 ldrsh.w r3, [r3, #2] - 8019c52: b29b uxth r3, r3 - 8019c54: 425b negs r3, r3 - 8019c56: b29b uxth r3, r3 - 8019c58: b21a sxth r2, r3 - 8019c5a: f107 0308 add.w r3, r7, #8 - 8019c5e: 4618 mov r0, r3 - 8019c60: f017 f9ed bl 803103e + 8019ba6: 687b ldr r3, [r7, #4] + 8019ba8: 685b ldr r3, [r3, #4] + 8019baa: f9b3 3000 ldrsh.w r3, [r3] + 8019bae: b29b uxth r3, r3 + 8019bb0: 425b negs r3, r3 + 8019bb2: b29b uxth r3, r3 + 8019bb4: b219 sxth r1, r3 + 8019bb6: 687b ldr r3, [r7, #4] + 8019bb8: 685b ldr r3, [r3, #4] + 8019bba: f9b3 3002 ldrsh.w r3, [r3, #2] + 8019bbe: b29b uxth r3, r3 + 8019bc0: 425b negs r3, r3 + 8019bc2: b29b uxth r3, r3 + 8019bc4: b21a sxth r2, r3 + 8019bc6: f107 0308 add.w r3, r7, #8 + 8019bca: 4618 mov r0, r3 + 8019bcc: f017 f9ed bl 8030faa if(disp->driver->set_px_cb) { - 8019c64: 693b ldr r3, [r7, #16] - 8019c66: 681b ldr r3, [r3, #0] - 8019c68: 69db ldr r3, [r3, #28] - 8019c6a: 2b00 cmp r3, #0 - 8019c6c: d02c beq.n 8019cc8 + 8019bd0: 693b ldr r3, [r7, #16] + 8019bd2: 681b ldr r3, [r3, #0] + 8019bd4: 69db ldr r3, [r3, #28] + 8019bd6: 2b00 cmp r3, #0 + 8019bd8: d02c beq.n 8019c34 if(dsc->src_buf == NULL) { - 8019c6e: 683b ldr r3, [r7, #0] - 8019c70: 685b ldr r3, [r3, #4] - 8019c72: 2b00 cmp r3, #0 - 8019c74: d113 bne.n 8019c9e + 8019bda: 683b ldr r3, [r7, #0] + 8019bdc: 685b ldr r3, [r3, #4] + 8019bde: 2b00 cmp r3, #0 + 8019be0: d113 bne.n 8019c0a fill_set_px(dest_buf, &blend_area, dest_stride, dsc->color, dsc->opa, mask, mask_stride); - 8019c76: 683b ldr r3, [r7, #0] - 8019c78: 7e1a ldrb r2, [r3, #24] - 8019c7a: 683b ldr r3, [r7, #0] - 8019c7c: f9b7 4016 ldrsh.w r4, [r7, #22] - 8019c80: f107 0008 add.w r0, r7, #8 - 8019c84: f9b7 1018 ldrsh.w r1, [r7, #24] - 8019c88: 9102 str r1, [sp, #8] - 8019c8a: 6a79 ldr r1, [r7, #36] ; 0x24 - 8019c8c: 9101 str r1, [sp, #4] - 8019c8e: 9200 str r2, [sp, #0] - 8019c90: 891b ldrh r3, [r3, #8] - 8019c92: 4622 mov r2, r4 - 8019c94: 4601 mov r1, r0 - 8019c96: 6a38 ldr r0, [r7, #32] - 8019c98: f000 f880 bl 8019d9c - 8019c9c: e07b b.n 8019d96 + 8019be2: 683b ldr r3, [r7, #0] + 8019be4: 7e1a ldrb r2, [r3, #24] + 8019be6: 683b ldr r3, [r7, #0] + 8019be8: f9b7 4016 ldrsh.w r4, [r7, #22] + 8019bec: f107 0008 add.w r0, r7, #8 + 8019bf0: f9b7 1018 ldrsh.w r1, [r7, #24] + 8019bf4: 9102 str r1, [sp, #8] + 8019bf6: 6a79 ldr r1, [r7, #36] ; 0x24 + 8019bf8: 9101 str r1, [sp, #4] + 8019bfa: 9200 str r2, [sp, #0] + 8019bfc: 891b ldrh r3, [r3, #8] + 8019bfe: 4622 mov r2, r4 + 8019c00: 4601 mov r1, r0 + 8019c02: 6a38 ldr r0, [r7, #32] + 8019c04: f000 f880 bl 8019d08 + 8019c08: e07b b.n 8019d02 } else { map_set_px(dest_buf, &blend_area, dest_stride, src_buf, src_stride, dsc->opa, mask, mask_stride); - 8019c9e: 683b ldr r3, [r7, #0] - 8019ca0: 7e1b ldrb r3, [r3, #24] - 8019ca2: f9b7 0016 ldrsh.w r0, [r7, #22] - 8019ca6: f107 0108 add.w r1, r7, #8 - 8019caa: f9b7 2018 ldrsh.w r2, [r7, #24] - 8019cae: 9203 str r2, [sp, #12] - 8019cb0: 6a7a ldr r2, [r7, #36] ; 0x24 - 8019cb2: 9202 str r2, [sp, #8] - 8019cb4: 9301 str r3, [sp, #4] - 8019cb6: f9b7 301a ldrsh.w r3, [r7, #26] - 8019cba: 9300 str r3, [sp, #0] - 8019cbc: 69fb ldr r3, [r7, #28] - 8019cbe: 4602 mov r2, r0 - 8019cc0: 6a38 ldr r0, [r7, #32] - 8019cc2: f000 fc27 bl 801a514 - 8019cc6: e066 b.n 8019d96 + 8019c0a: 683b ldr r3, [r7, #0] + 8019c0c: 7e1b ldrb r3, [r3, #24] + 8019c0e: f9b7 0016 ldrsh.w r0, [r7, #22] + 8019c12: f107 0108 add.w r1, r7, #8 + 8019c16: f9b7 2018 ldrsh.w r2, [r7, #24] + 8019c1a: 9203 str r2, [sp, #12] + 8019c1c: 6a7a ldr r2, [r7, #36] ; 0x24 + 8019c1e: 9202 str r2, [sp, #8] + 8019c20: 9301 str r3, [sp, #4] + 8019c22: f9b7 301a ldrsh.w r3, [r7, #26] + 8019c26: 9300 str r3, [sp, #0] + 8019c28: 69fb ldr r3, [r7, #28] + 8019c2a: 4602 mov r2, r0 + 8019c2c: 6a38 ldr r0, [r7, #32] + 8019c2e: f000 fc27 bl 801a480 + 8019c32: e066 b.n 8019d02 } } else if(dsc->src_buf == NULL) { - 8019cc8: 683b ldr r3, [r7, #0] - 8019cca: 685b ldr r3, [r3, #4] - 8019ccc: 2b00 cmp r3, #0 - 8019cce: d12e bne.n 8019d2e + 8019c34: 683b ldr r3, [r7, #0] + 8019c36: 685b ldr r3, [r3, #4] + 8019c38: 2b00 cmp r3, #0 + 8019c3a: d12e bne.n 8019c9a if(dsc->blend_mode == LV_BLEND_MODE_NORMAL) { - 8019cd0: 683b ldr r3, [r7, #0] - 8019cd2: 7e5b ldrb r3, [r3, #25] - 8019cd4: 2b00 cmp r3, #0 - 8019cd6: d113 bne.n 8019d00 + 8019c3c: 683b ldr r3, [r7, #0] + 8019c3e: 7e5b ldrb r3, [r3, #25] + 8019c40: 2b00 cmp r3, #0 + 8019c42: d113 bne.n 8019c6c fill_normal(dest_buf, &blend_area, dest_stride, dsc->color, dsc->opa, mask, mask_stride); - 8019cd8: 683b ldr r3, [r7, #0] - 8019cda: 7e1a ldrb r2, [r3, #24] - 8019cdc: 683b ldr r3, [r7, #0] - 8019cde: f9b7 4016 ldrsh.w r4, [r7, #22] - 8019ce2: f107 0008 add.w r0, r7, #8 - 8019ce6: f9b7 1018 ldrsh.w r1, [r7, #24] - 8019cea: 9102 str r1, [sp, #8] - 8019cec: 6a79 ldr r1, [r7, #36] ; 0x24 - 8019cee: 9101 str r1, [sp, #4] - 8019cf0: 9200 str r2, [sp, #0] - 8019cf2: 891b ldrh r3, [r3, #8] - 8019cf4: 4622 mov r2, r4 - 8019cf6: 4601 mov r1, r0 - 8019cf8: 6a38 ldr r0, [r7, #32] - 8019cfa: f000 f8ec bl 8019ed6 - 8019cfe: e04a b.n 8019d96 + 8019c44: 683b ldr r3, [r7, #0] + 8019c46: 7e1a ldrb r2, [r3, #24] + 8019c48: 683b ldr r3, [r7, #0] + 8019c4a: f9b7 4016 ldrsh.w r4, [r7, #22] + 8019c4e: f107 0008 add.w r0, r7, #8 + 8019c52: f9b7 1018 ldrsh.w r1, [r7, #24] + 8019c56: 9102 str r1, [sp, #8] + 8019c58: 6a79 ldr r1, [r7, #36] ; 0x24 + 8019c5a: 9101 str r1, [sp, #4] + 8019c5c: 9200 str r2, [sp, #0] + 8019c5e: 891b ldrh r3, [r3, #8] + 8019c60: 4622 mov r2, r4 + 8019c62: 4601 mov r1, r0 + 8019c64: 6a38 ldr r0, [r7, #32] + 8019c66: f000 f8ec bl 8019e42 + 8019c6a: e04a b.n 8019d02 } #if LV_DRAW_COMPLEX else { fill_blended(dest_buf, &blend_area, dest_stride, dsc->color, dsc->opa, mask, mask_stride, dsc->blend_mode); - 8019d00: 683b ldr r3, [r7, #0] - 8019d02: 7e1a ldrb r2, [r3, #24] - 8019d04: 683b ldr r3, [r7, #0] - 8019d06: 7e59 ldrb r1, [r3, #25] - 8019d08: 683b ldr r3, [r7, #0] - 8019d0a: f9b7 4016 ldrsh.w r4, [r7, #22] - 8019d0e: f107 0008 add.w r0, r7, #8 - 8019d12: 9103 str r1, [sp, #12] - 8019d14: f9b7 1018 ldrsh.w r1, [r7, #24] - 8019d18: 9102 str r1, [sp, #8] - 8019d1a: 6a79 ldr r1, [r7, #36] ; 0x24 - 8019d1c: 9101 str r1, [sp, #4] - 8019d1e: 9200 str r2, [sp, #0] - 8019d20: 891b ldrh r3, [r3, #8] - 8019d22: 4622 mov r2, r4 - 8019d24: 4601 mov r1, r0 - 8019d26: 6a38 ldr r0, [r7, #32] - 8019d28: f000 faf0 bl 801a30c - 8019d2c: e033 b.n 8019d96 + 8019c6c: 683b ldr r3, [r7, #0] + 8019c6e: 7e1a ldrb r2, [r3, #24] + 8019c70: 683b ldr r3, [r7, #0] + 8019c72: 7e59 ldrb r1, [r3, #25] + 8019c74: 683b ldr r3, [r7, #0] + 8019c76: f9b7 4016 ldrsh.w r4, [r7, #22] + 8019c7a: f107 0008 add.w r0, r7, #8 + 8019c7e: 9103 str r1, [sp, #12] + 8019c80: f9b7 1018 ldrsh.w r1, [r7, #24] + 8019c84: 9102 str r1, [sp, #8] + 8019c86: 6a79 ldr r1, [r7, #36] ; 0x24 + 8019c88: 9101 str r1, [sp, #4] + 8019c8a: 9200 str r2, [sp, #0] + 8019c8c: 891b ldrh r3, [r3, #8] + 8019c8e: 4622 mov r2, r4 + 8019c90: 4601 mov r1, r0 + 8019c92: 6a38 ldr r0, [r7, #32] + 8019c94: f000 faf0 bl 801a278 + 8019c98: e033 b.n 8019d02 } #endif } else { if(dsc->blend_mode == LV_BLEND_MODE_NORMAL) { - 8019d2e: 683b ldr r3, [r7, #0] - 8019d30: 7e5b ldrb r3, [r3, #25] - 8019d32: 2b00 cmp r3, #0 - 8019d34: d114 bne.n 8019d60 + 8019c9a: 683b ldr r3, [r7, #0] + 8019c9c: 7e5b ldrb r3, [r3, #25] + 8019c9e: 2b00 cmp r3, #0 + 8019ca0: d114 bne.n 8019ccc map_normal(dest_buf, &blend_area, dest_stride, src_buf, src_stride, dsc->opa, mask, mask_stride); - 8019d36: 683b ldr r3, [r7, #0] - 8019d38: 7e1b ldrb r3, [r3, #24] - 8019d3a: f9b7 0016 ldrsh.w r0, [r7, #22] - 8019d3e: f107 0108 add.w r1, r7, #8 - 8019d42: f9b7 2018 ldrsh.w r2, [r7, #24] - 8019d46: 9203 str r2, [sp, #12] - 8019d48: 6a7a ldr r2, [r7, #36] ; 0x24 - 8019d4a: 9202 str r2, [sp, #8] - 8019d4c: 9301 str r3, [sp, #4] - 8019d4e: f9b7 301a ldrsh.w r3, [r7, #26] - 8019d52: 9300 str r3, [sp, #0] - 8019d54: 69fb ldr r3, [r7, #28] - 8019d56: 4602 mov r2, r0 - 8019d58: 6a38 ldr r0, [r7, #32] - 8019d5a: f000 fc91 bl 801a680 - 8019d5e: e01a b.n 8019d96 + 8019ca2: 683b ldr r3, [r7, #0] + 8019ca4: 7e1b ldrb r3, [r3, #24] + 8019ca6: f9b7 0016 ldrsh.w r0, [r7, #22] + 8019caa: f107 0108 add.w r1, r7, #8 + 8019cae: f9b7 2018 ldrsh.w r2, [r7, #24] + 8019cb2: 9203 str r2, [sp, #12] + 8019cb4: 6a7a ldr r2, [r7, #36] ; 0x24 + 8019cb6: 9202 str r2, [sp, #8] + 8019cb8: 9301 str r3, [sp, #4] + 8019cba: f9b7 301a ldrsh.w r3, [r7, #26] + 8019cbe: 9300 str r3, [sp, #0] + 8019cc0: 69fb ldr r3, [r7, #28] + 8019cc2: 4602 mov r2, r0 + 8019cc4: 6a38 ldr r0, [r7, #32] + 8019cc6: f000 fc91 bl 801a5ec + 8019cca: e01a b.n 8019d02 } #if LV_DRAW_COMPLEX else { map_blended(dest_buf, &blend_area, dest_stride, src_buf, src_stride, dsc->opa, mask, mask_stride, dsc->blend_mode); - 8019d60: 683b ldr r3, [r7, #0] - 8019d62: 7e1b ldrb r3, [r3, #24] - 8019d64: 683a ldr r2, [r7, #0] - 8019d66: 7e52 ldrb r2, [r2, #25] - 8019d68: f9b7 0016 ldrsh.w r0, [r7, #22] - 8019d6c: f107 0108 add.w r1, r7, #8 - 8019d70: 9204 str r2, [sp, #16] - 8019d72: f9b7 2018 ldrsh.w r2, [r7, #24] - 8019d76: 9203 str r2, [sp, #12] - 8019d78: 6a7a ldr r2, [r7, #36] ; 0x24 - 8019d7a: 9202 str r2, [sp, #8] - 8019d7c: 9301 str r3, [sp, #4] - 8019d7e: f9b7 301a ldrsh.w r3, [r7, #26] - 8019d82: 9300 str r3, [sp, #0] - 8019d84: 69fb ldr r3, [r7, #28] - 8019d86: 4602 mov r2, r0 - 8019d88: 6a38 ldr r0, [r7, #32] - 8019d8a: f000 fed5 bl 801ab38 - 8019d8e: e002 b.n 8019d96 + 8019ccc: 683b ldr r3, [r7, #0] + 8019cce: 7e1b ldrb r3, [r3, #24] + 8019cd0: 683a ldr r2, [r7, #0] + 8019cd2: 7e52 ldrb r2, [r2, #25] + 8019cd4: f9b7 0016 ldrsh.w r0, [r7, #22] + 8019cd8: f107 0108 add.w r1, r7, #8 + 8019cdc: 9204 str r2, [sp, #16] + 8019cde: f9b7 2018 ldrsh.w r2, [r7, #24] + 8019ce2: 9203 str r2, [sp, #12] + 8019ce4: 6a7a ldr r2, [r7, #36] ; 0x24 + 8019ce6: 9202 str r2, [sp, #8] + 8019ce8: 9301 str r3, [sp, #4] + 8019cea: f9b7 301a ldrsh.w r3, [r7, #26] + 8019cee: 9300 str r3, [sp, #0] + 8019cf0: 69fb ldr r3, [r7, #28] + 8019cf2: 4602 mov r2, r0 + 8019cf4: 6a38 ldr r0, [r7, #32] + 8019cf6: f000 fed5 bl 801aaa4 + 8019cfa: e002 b.n 8019d02 if(dsc->mask_buf && dsc->mask_res == LV_DRAW_MASK_RES_TRANSP) return; - 8019d90: bf00 nop - 8019d92: e000 b.n 8019d96 + 8019cfc: bf00 nop + 8019cfe: e000 b.n 8019d02 if(!_lv_area_intersect(&blend_area, dsc->blend_area, draw_ctx->clip_area)) return; - 8019d94: bf00 nop + 8019d00: bf00 nop } #endif } } - 8019d96: 372c adds r7, #44 ; 0x2c - 8019d98: 46bd mov sp, r7 - 8019d9a: bd90 pop {r4, r7, pc} + 8019d02: 372c adds r7, #44 ; 0x2c + 8019d04: 46bd mov sp, r7 + 8019d06: bd90 pop {r4, r7, pc} -08019d9c : +08019d08 : * STATIC FUNCTIONS **********************/ static void fill_set_px(lv_color_t * dest_buf, const lv_area_t * blend_area, lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stide) { - 8019d9c: b5f0 push {r4, r5, r6, r7, lr} - 8019d9e: b08f sub sp, #60 ; 0x3c - 8019da0: af04 add r7, sp, #16 - 8019da2: 60f8 str r0, [r7, #12] - 8019da4: 60b9 str r1, [r7, #8] - 8019da6: 80bb strh r3, [r7, #4] - 8019da8: 4613 mov r3, r2 - 8019daa: 80fb strh r3, [r7, #6] + 8019d08: b5f0 push {r4, r5, r6, r7, lr} + 8019d0a: b08f sub sp, #60 ; 0x3c + 8019d0c: af04 add r7, sp, #16 + 8019d0e: 60f8 str r0, [r7, #12] + 8019d10: 60b9 str r1, [r7, #8] + 8019d12: 80bb strh r3, [r7, #4] + 8019d14: 4613 mov r3, r2 + 8019d16: 80fb strh r3, [r7, #6] lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 8019dac: f7f5 ffd0 bl 800fd50 <_lv_refr_get_disp_refreshing> - 8019db0: 61f8 str r0, [r7, #28] + 8019d18: f7f5 ffd0 bl 800fcbc <_lv_refr_get_disp_refreshing> + 8019d1c: 61f8 str r0, [r7, #28] int32_t x; int32_t y; if(mask == NULL) { - 8019db2: 6c7b ldr r3, [r7, #68] ; 0x44 - 8019db4: 2b00 cmp r3, #0 - 8019db6: d134 bne.n 8019e22 + 8019d1e: 6c7b ldr r3, [r7, #68] ; 0x44 + 8019d20: 2b00 cmp r3, #0 + 8019d22: d134 bne.n 8019d8e for(y = blend_area->y1; y <= blend_area->y2; y++) { - 8019db8: 68bb ldr r3, [r7, #8] - 8019dba: f9b3 3002 ldrsh.w r3, [r3, #2] - 8019dbe: 623b str r3, [r7, #32] - 8019dc0: e027 b.n 8019e12 + 8019d24: 68bb ldr r3, [r7, #8] + 8019d26: f9b3 3002 ldrsh.w r3, [r3, #2] + 8019d2a: 623b str r3, [r7, #32] + 8019d2c: e027 b.n 8019d7e for(x = blend_area->x1; x <= blend_area->x2; x++) { - 8019dc2: 68bb ldr r3, [r7, #8] - 8019dc4: f9b3 3000 ldrsh.w r3, [r3] - 8019dc8: 627b str r3, [r7, #36] ; 0x24 - 8019dca: e018 b.n 8019dfe + 8019d2e: 68bb ldr r3, [r7, #8] + 8019d30: f9b3 3000 ldrsh.w r3, [r3] + 8019d34: 627b str r3, [r7, #36] ; 0x24 + 8019d36: e018 b.n 8019d6a disp->driver->set_px_cb(disp->driver, (void *)dest_buf, dest_stride, x, y, color, opa); - 8019dcc: 69fb ldr r3, [r7, #28] - 8019dce: 681b ldr r3, [r3, #0] - 8019dd0: 69dc ldr r4, [r3, #28] - 8019dd2: 69fb ldr r3, [r7, #28] - 8019dd4: 6818 ldr r0, [r3, #0] - 8019dd6: 6a7b ldr r3, [r7, #36] ; 0x24 - 8019dd8: b21d sxth r5, r3 - 8019dda: 6a3b ldr r3, [r7, #32] - 8019ddc: b21b sxth r3, r3 - 8019dde: f9b7 1006 ldrsh.w r1, [r7, #6] - 8019de2: f897 2040 ldrb.w r2, [r7, #64] ; 0x40 - 8019de6: 9202 str r2, [sp, #8] - 8019de8: 88ba ldrh r2, [r7, #4] - 8019dea: f8ad 2004 strh.w r2, [sp, #4] - 8019dee: 9300 str r3, [sp, #0] - 8019df0: 462b mov r3, r5 - 8019df2: 460a mov r2, r1 - 8019df4: 68f9 ldr r1, [r7, #12] - 8019df6: 47a0 blx r4 + 8019d38: 69fb ldr r3, [r7, #28] + 8019d3a: 681b ldr r3, [r3, #0] + 8019d3c: 69dc ldr r4, [r3, #28] + 8019d3e: 69fb ldr r3, [r7, #28] + 8019d40: 6818 ldr r0, [r3, #0] + 8019d42: 6a7b ldr r3, [r7, #36] ; 0x24 + 8019d44: b21d sxth r5, r3 + 8019d46: 6a3b ldr r3, [r7, #32] + 8019d48: b21b sxth r3, r3 + 8019d4a: f9b7 1006 ldrsh.w r1, [r7, #6] + 8019d4e: f897 2040 ldrb.w r2, [r7, #64] ; 0x40 + 8019d52: 9202 str r2, [sp, #8] + 8019d54: 88ba ldrh r2, [r7, #4] + 8019d56: f8ad 2004 strh.w r2, [sp, #4] + 8019d5a: 9300 str r3, [sp, #0] + 8019d5c: 462b mov r3, r5 + 8019d5e: 460a mov r2, r1 + 8019d60: 68f9 ldr r1, [r7, #12] + 8019d62: 47a0 blx r4 for(x = blend_area->x1; x <= blend_area->x2; x++) { - 8019df8: 6a7b ldr r3, [r7, #36] ; 0x24 - 8019dfa: 3301 adds r3, #1 - 8019dfc: 627b str r3, [r7, #36] ; 0x24 - 8019dfe: 68bb ldr r3, [r7, #8] - 8019e00: f9b3 3004 ldrsh.w r3, [r3, #4] - 8019e04: 461a mov r2, r3 - 8019e06: 6a7b ldr r3, [r7, #36] ; 0x24 - 8019e08: 4293 cmp r3, r2 - 8019e0a: dddf ble.n 8019dcc + 8019d64: 6a7b ldr r3, [r7, #36] ; 0x24 + 8019d66: 3301 adds r3, #1 + 8019d68: 627b str r3, [r7, #36] ; 0x24 + 8019d6a: 68bb ldr r3, [r7, #8] + 8019d6c: f9b3 3004 ldrsh.w r3, [r3, #4] + 8019d70: 461a mov r2, r3 + 8019d72: 6a7b ldr r3, [r7, #36] ; 0x24 + 8019d74: 4293 cmp r3, r2 + 8019d76: dddf ble.n 8019d38 for(y = blend_area->y1; y <= blend_area->y2; y++) { - 8019e0c: 6a3b ldr r3, [r7, #32] - 8019e0e: 3301 adds r3, #1 - 8019e10: 623b str r3, [r7, #32] - 8019e12: 68bb ldr r3, [r7, #8] - 8019e14: f9b3 3006 ldrsh.w r3, [r3, #6] - 8019e18: 461a mov r2, r3 - 8019e1a: 6a3b ldr r3, [r7, #32] - 8019e1c: 4293 cmp r3, r2 - 8019e1e: ddd0 ble.n 8019dc2 + 8019d78: 6a3b ldr r3, [r7, #32] + 8019d7a: 3301 adds r3, #1 + 8019d7c: 623b str r3, [r7, #32] + 8019d7e: 68bb ldr r3, [r7, #8] + 8019d80: f9b3 3006 ldrsh.w r3, [r3, #6] + 8019d84: 461a mov r2, r3 + 8019d86: 6a3b ldr r3, [r7, #32] + 8019d88: 4293 cmp r3, r2 + 8019d8a: ddd0 ble.n 8019d2e } } mask += mask_stide; } } } - 8019e20: e055 b.n 8019ece + 8019d8c: e055 b.n 8019e3a int32_t w = lv_area_get_width(blend_area); - 8019e22: 68b8 ldr r0, [r7, #8] - 8019e24: f7ff fe09 bl 8019a3a - 8019e28: 4603 mov r3, r0 - 8019e2a: 61bb str r3, [r7, #24] + 8019d8e: 68b8 ldr r0, [r7, #8] + 8019d90: f7ff fe09 bl 80199a6 + 8019d94: 4603 mov r3, r0 + 8019d96: 61bb str r3, [r7, #24] int32_t h = lv_area_get_height(blend_area); - 8019e2c: 68b8 ldr r0, [r7, #8] - 8019e2e: f7ff fe1a bl 8019a66 - 8019e32: 4603 mov r3, r0 - 8019e34: 617b str r3, [r7, #20] + 8019d98: 68b8 ldr r0, [r7, #8] + 8019d9a: f7ff fe1a bl 80199d2 + 8019d9e: 4603 mov r3, r0 + 8019da0: 617b str r3, [r7, #20] for(y = 0; y < h; y++) { - 8019e36: 2300 movs r3, #0 - 8019e38: 623b str r3, [r7, #32] - 8019e3a: e044 b.n 8019ec6 + 8019da2: 2300 movs r3, #0 + 8019da4: 623b str r3, [r7, #32] + 8019da6: e044 b.n 8019e32 for(x = 0; x < w; x++) { - 8019e3c: 2300 movs r3, #0 - 8019e3e: 627b str r3, [r7, #36] ; 0x24 - 8019e40: e035 b.n 8019eae + 8019da8: 2300 movs r3, #0 + 8019daa: 627b str r3, [r7, #36] ; 0x24 + 8019dac: e035 b.n 8019e1a if(mask[x]) { - 8019e42: 6a7b ldr r3, [r7, #36] ; 0x24 - 8019e44: 6c7a ldr r2, [r7, #68] ; 0x44 - 8019e46: 4413 add r3, r2 - 8019e48: 781b ldrb r3, [r3, #0] - 8019e4a: 2b00 cmp r3, #0 - 8019e4c: d02c beq.n 8019ea8 + 8019dae: 6a7b ldr r3, [r7, #36] ; 0x24 + 8019db0: 6c7a ldr r2, [r7, #68] ; 0x44 + 8019db2: 4413 add r3, r2 + 8019db4: 781b ldrb r3, [r3, #0] + 8019db6: 2b00 cmp r3, #0 + 8019db8: d02c beq.n 8019e14 disp->driver->set_px_cb(disp->driver, (void *)dest_buf, dest_stride, blend_area->x1 + x, blend_area->y1 + y, color, - 8019e4e: 69fb ldr r3, [r7, #28] - 8019e50: 681b ldr r3, [r3, #0] - 8019e52: 69dc ldr r4, [r3, #28] - 8019e54: 69fb ldr r3, [r7, #28] - 8019e56: 681d ldr r5, [r3, #0] - 8019e58: 68bb ldr r3, [r7, #8] - 8019e5a: f9b3 3000 ldrsh.w r3, [r3] - 8019e5e: b29a uxth r2, r3 - 8019e60: 6a7b ldr r3, [r7, #36] ; 0x24 - 8019e62: b29b uxth r3, r3 - 8019e64: 4413 add r3, r2 - 8019e66: b29b uxth r3, r3 - 8019e68: b21e sxth r6, r3 - 8019e6a: 68bb ldr r3, [r7, #8] - 8019e6c: f9b3 3002 ldrsh.w r3, [r3, #2] - 8019e70: b29a uxth r2, r3 - 8019e72: 6a3b ldr r3, [r7, #32] - 8019e74: b29b uxth r3, r3 - 8019e76: 4413 add r3, r2 - 8019e78: b29b uxth r3, r3 - 8019e7a: b21b sxth r3, r3 + 8019dba: 69fb ldr r3, [r7, #28] + 8019dbc: 681b ldr r3, [r3, #0] + 8019dbe: 69dc ldr r4, [r3, #28] + 8019dc0: 69fb ldr r3, [r7, #28] + 8019dc2: 681d ldr r5, [r3, #0] + 8019dc4: 68bb ldr r3, [r7, #8] + 8019dc6: f9b3 3000 ldrsh.w r3, [r3] + 8019dca: b29a uxth r2, r3 + 8019dcc: 6a7b ldr r3, [r7, #36] ; 0x24 + 8019dce: b29b uxth r3, r3 + 8019dd0: 4413 add r3, r2 + 8019dd2: b29b uxth r3, r3 + 8019dd4: b21e sxth r6, r3 + 8019dd6: 68bb ldr r3, [r7, #8] + 8019dd8: f9b3 3002 ldrsh.w r3, [r3, #2] + 8019ddc: b29a uxth r2, r3 + 8019dde: 6a3b ldr r3, [r7, #32] + 8019de0: b29b uxth r3, r3 + 8019de2: 4413 add r3, r2 + 8019de4: b29b uxth r3, r3 + 8019de6: b21b sxth r3, r3 (uint32_t)((uint32_t)opa * mask[x]) >> 8); - 8019e7c: f897 2040 ldrb.w r2, [r7, #64] ; 0x40 - 8019e80: 6a79 ldr r1, [r7, #36] ; 0x24 - 8019e82: 6c78 ldr r0, [r7, #68] ; 0x44 - 8019e84: 4401 add r1, r0 - 8019e86: 7809 ldrb r1, [r1, #0] - 8019e88: fb01 f202 mul.w r2, r1, r2 - 8019e8c: 0a12 lsrs r2, r2, #8 + 8019de8: f897 2040 ldrb.w r2, [r7, #64] ; 0x40 + 8019dec: 6a79 ldr r1, [r7, #36] ; 0x24 + 8019dee: 6c78 ldr r0, [r7, #68] ; 0x44 + 8019df0: 4401 add r1, r0 + 8019df2: 7809 ldrb r1, [r1, #0] + 8019df4: fb01 f202 mul.w r2, r1, r2 + 8019df8: 0a12 lsrs r2, r2, #8 disp->driver->set_px_cb(disp->driver, (void *)dest_buf, dest_stride, blend_area->x1 + x, blend_area->y1 + y, color, - 8019e8e: b2d2 uxtb r2, r2 - 8019e90: f9b7 1006 ldrsh.w r1, [r7, #6] - 8019e94: 9202 str r2, [sp, #8] - 8019e96: 88ba ldrh r2, [r7, #4] - 8019e98: f8ad 2004 strh.w r2, [sp, #4] - 8019e9c: 9300 str r3, [sp, #0] - 8019e9e: 4633 mov r3, r6 - 8019ea0: 460a mov r2, r1 - 8019ea2: 68f9 ldr r1, [r7, #12] - 8019ea4: 4628 mov r0, r5 - 8019ea6: 47a0 blx r4 + 8019dfa: b2d2 uxtb r2, r2 + 8019dfc: f9b7 1006 ldrsh.w r1, [r7, #6] + 8019e00: 9202 str r2, [sp, #8] + 8019e02: 88ba ldrh r2, [r7, #4] + 8019e04: f8ad 2004 strh.w r2, [sp, #4] + 8019e08: 9300 str r3, [sp, #0] + 8019e0a: 4633 mov r3, r6 + 8019e0c: 460a mov r2, r1 + 8019e0e: 68f9 ldr r1, [r7, #12] + 8019e10: 4628 mov r0, r5 + 8019e12: 47a0 blx r4 for(x = 0; x < w; x++) { - 8019ea8: 6a7b ldr r3, [r7, #36] ; 0x24 - 8019eaa: 3301 adds r3, #1 - 8019eac: 627b str r3, [r7, #36] ; 0x24 - 8019eae: 6a7a ldr r2, [r7, #36] ; 0x24 - 8019eb0: 69bb ldr r3, [r7, #24] - 8019eb2: 429a cmp r2, r3 - 8019eb4: dbc5 blt.n 8019e42 + 8019e14: 6a7b ldr r3, [r7, #36] ; 0x24 + 8019e16: 3301 adds r3, #1 + 8019e18: 627b str r3, [r7, #36] ; 0x24 + 8019e1a: 6a7a ldr r2, [r7, #36] ; 0x24 + 8019e1c: 69bb ldr r3, [r7, #24] + 8019e1e: 429a cmp r2, r3 + 8019e20: dbc5 blt.n 8019dae mask += mask_stide; - 8019eb6: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 - 8019eba: 6c7a ldr r2, [r7, #68] ; 0x44 - 8019ebc: 4413 add r3, r2 - 8019ebe: 647b str r3, [r7, #68] ; 0x44 + 8019e22: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 + 8019e26: 6c7a ldr r2, [r7, #68] ; 0x44 + 8019e28: 4413 add r3, r2 + 8019e2a: 647b str r3, [r7, #68] ; 0x44 for(y = 0; y < h; y++) { - 8019ec0: 6a3b ldr r3, [r7, #32] - 8019ec2: 3301 adds r3, #1 - 8019ec4: 623b str r3, [r7, #32] - 8019ec6: 6a3a ldr r2, [r7, #32] - 8019ec8: 697b ldr r3, [r7, #20] - 8019eca: 429a cmp r2, r3 - 8019ecc: dbb6 blt.n 8019e3c + 8019e2c: 6a3b ldr r3, [r7, #32] + 8019e2e: 3301 adds r3, #1 + 8019e30: 623b str r3, [r7, #32] + 8019e32: 6a3a ldr r2, [r7, #32] + 8019e34: 697b ldr r3, [r7, #20] + 8019e36: 429a cmp r2, r3 + 8019e38: dbb6 blt.n 8019da8 } - 8019ece: bf00 nop - 8019ed0: 372c adds r7, #44 ; 0x2c - 8019ed2: 46bd mov sp, r7 - 8019ed4: bdf0 pop {r4, r5, r6, r7, pc} + 8019e3a: bf00 nop + 8019e3c: 372c adds r7, #44 ; 0x2c + 8019e3e: 46bd mov sp, r7 + 8019e40: bdf0 pop {r4, r5, r6, r7, pc} -08019ed6 : +08019e42 : LV_ATTRIBUTE_FAST_MEM static void fill_normal(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride) { - 8019ed6: b580 push {r7, lr} - 8019ed8: b096 sub sp, #88 ; 0x58 - 8019eda: af00 add r7, sp, #0 - 8019edc: 60f8 str r0, [r7, #12] - 8019ede: 60b9 str r1, [r7, #8] - 8019ee0: 80bb strh r3, [r7, #4] - 8019ee2: 4613 mov r3, r2 - 8019ee4: 80fb strh r3, [r7, #6] + 8019e42: b580 push {r7, lr} + 8019e44: b096 sub sp, #88 ; 0x58 + 8019e46: af00 add r7, sp, #0 + 8019e48: 60f8 str r0, [r7, #12] + 8019e4a: 60b9 str r1, [r7, #8] + 8019e4c: 80bb strh r3, [r7, #4] + 8019e4e: 4613 mov r3, r2 + 8019e50: 80fb strh r3, [r7, #6] lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 8019ee6: f7f5 ff33 bl 800fd50 <_lv_refr_get_disp_refreshing> - 8019eea: 64b8 str r0, [r7, #72] ; 0x48 + 8019e52: f7f5 ff33 bl 800fcbc <_lv_refr_get_disp_refreshing> + 8019e56: 64b8 str r0, [r7, #72] ; 0x48 int32_t w = lv_area_get_width(dest_area); - 8019eec: 68b8 ldr r0, [r7, #8] - 8019eee: f7ff fda4 bl 8019a3a - 8019ef2: 4603 mov r3, r0 - 8019ef4: 647b str r3, [r7, #68] ; 0x44 + 8019e58: 68b8 ldr r0, [r7, #8] + 8019e5a: f7ff fda4 bl 80199a6 + 8019e5e: 4603 mov r3, r0 + 8019e60: 647b str r3, [r7, #68] ; 0x44 int32_t h = lv_area_get_height(dest_area); - 8019ef6: 68b8 ldr r0, [r7, #8] - 8019ef8: f7ff fdb5 bl 8019a66 - 8019efc: 4603 mov r3, r0 - 8019efe: 643b str r3, [r7, #64] ; 0x40 + 8019e62: 68b8 ldr r0, [r7, #8] + 8019e64: f7ff fdb5 bl 80199d2 + 8019e68: 4603 mov r3, r0 + 8019e6a: 643b str r3, [r7, #64] ; 0x40 int32_t x; int32_t y; /*No mask*/ if(mask == NULL) { - 8019f00: 6e7b ldr r3, [r7, #100] ; 0x64 - 8019f02: 2b00 cmp r3, #0 - 8019f04: d170 bne.n 8019fe8 + 8019e6c: 6e7b ldr r3, [r7, #100] ; 0x64 + 8019e6e: 2b00 cmp r3, #0 + 8019e70: d170 bne.n 8019f54 if(opa >= LV_OPA_MAX) { - 8019f06: f897 3060 ldrb.w r3, [r7, #96] ; 0x60 - 8019f0a: 2bfc cmp r3, #252 ; 0xfc - 8019f0c: d916 bls.n 8019f3c + 8019e72: f897 3060 ldrb.w r3, [r7, #96] ; 0x60 + 8019e76: 2bfc cmp r3, #252 ; 0xfc + 8019e78: d916 bls.n 8019ea8 for(y = 0; y < h; y++) { - 8019f0e: 2300 movs r3, #0 - 8019f10: 653b str r3, [r7, #80] ; 0x50 - 8019f12: e00e b.n 8019f32 + 8019e7a: 2300 movs r3, #0 + 8019e7c: 653b str r3, [r7, #80] ; 0x50 + 8019e7e: e00e b.n 8019e9e lv_color_fill(dest_buf, color, w); - 8019f14: 6c7b ldr r3, [r7, #68] ; 0x44 - 8019f16: 461a mov r2, r3 - 8019f18: 88b9 ldrh r1, [r7, #4] - 8019f1a: 68f8 ldr r0, [r7, #12] - 8019f1c: f017 fc87 bl 803182e + 8019e80: 6c7b ldr r3, [r7, #68] ; 0x44 + 8019e82: 461a mov r2, r3 + 8019e84: 88b9 ldrh r1, [r7, #4] + 8019e86: 68f8 ldr r0, [r7, #12] + 8019e88: f017 fc87 bl 803179a dest_buf += dest_stride; - 8019f20: f9b7 3006 ldrsh.w r3, [r7, #6] - 8019f24: 005b lsls r3, r3, #1 - 8019f26: 68fa ldr r2, [r7, #12] - 8019f28: 4413 add r3, r2 - 8019f2a: 60fb str r3, [r7, #12] + 8019e8c: f9b7 3006 ldrsh.w r3, [r7, #6] + 8019e90: 005b lsls r3, r3, #1 + 8019e92: 68fa ldr r2, [r7, #12] + 8019e94: 4413 add r3, r2 + 8019e96: 60fb str r3, [r7, #12] for(y = 0; y < h; y++) { - 8019f2c: 6d3b ldr r3, [r7, #80] ; 0x50 - 8019f2e: 3301 adds r3, #1 - 8019f30: 653b str r3, [r7, #80] ; 0x50 - 8019f32: 6d3a ldr r2, [r7, #80] ; 0x50 - 8019f34: 6c3b ldr r3, [r7, #64] ; 0x40 - 8019f36: 429a cmp r2, r3 - 8019f38: dbec blt.n 8019f14 + 8019e98: 6d3b ldr r3, [r7, #80] ; 0x50 + 8019e9a: 3301 adds r3, #1 + 8019e9c: 653b str r3, [r7, #80] ; 0x50 + 8019e9e: 6d3a ldr r2, [r7, #80] ; 0x50 + 8019ea0: 6c3b ldr r3, [r7, #64] ; 0x40 + 8019ea2: 429a cmp r2, r3 + 8019ea4: dbec blt.n 8019e80 dest_buf += dest_stride; mask += (mask_stride - w); } } } } - 8019f3a: e1e2 b.n 801a302 + 8019ea6: e1e2 b.n 801a26e lv_color_t last_dest_color = lv_color_black(); - 8019f3c: f7ff fd73 bl 8019a26 - 8019f40: 4603 mov r3, r0 - 8019f42: 853b strh r3, [r7, #40] ; 0x28 + 8019ea8: f7ff fd73 bl 8019992 + 8019eac: 4603 mov r3, r0 + 8019eae: 853b strh r3, [r7, #40] ; 0x28 lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa); - 8019f44: f897 3060 ldrb.w r3, [r7, #96] ; 0x60 - 8019f48: 461a mov r2, r3 - 8019f4a: 8d39 ldrh r1, [r7, #40] ; 0x28 - 8019f4c: 88b8 ldrh r0, [r7, #4] - 8019f4e: f7ff fc77 bl 8019840 - 8019f52: 4603 mov r3, r0 - 8019f54: 84bb strh r3, [r7, #36] ; 0x24 + 8019eb0: f897 3060 ldrb.w r3, [r7, #96] ; 0x60 + 8019eb4: 461a mov r2, r3 + 8019eb6: 8d39 ldrh r1, [r7, #40] ; 0x28 + 8019eb8: 88b8 ldrh r0, [r7, #4] + 8019eba: f7ff fc77 bl 80197ac + 8019ebe: 4603 mov r3, r0 + 8019ec0: 84bb strh r3, [r7, #36] ; 0x24 lv_color_premult(color, opa, color_premult); - 8019f56: f107 021c add.w r2, r7, #28 - 8019f5a: f897 3060 ldrb.w r3, [r7, #96] ; 0x60 - 8019f5e: 4619 mov r1, r3 - 8019f60: 88b8 ldrh r0, [r7, #4] - 8019f62: f7ff fca5 bl 80198b0 + 8019ec2: f107 021c add.w r2, r7, #28 + 8019ec6: f897 3060 ldrb.w r3, [r7, #96] ; 0x60 + 8019eca: 4619 mov r1, r3 + 8019ecc: 88b8 ldrh r0, [r7, #4] + 8019ece: f7ff fca5 bl 801981c lv_opa_t opa_inv = 255 - opa; - 8019f66: f897 3060 ldrb.w r3, [r7, #96] ; 0x60 - 8019f6a: 43db mvns r3, r3 - 8019f6c: f887 302b strb.w r3, [r7, #43] ; 0x2b + 8019ed2: f897 3060 ldrb.w r3, [r7, #96] ; 0x60 + 8019ed6: 43db mvns r3, r3 + 8019ed8: f887 302b strb.w r3, [r7, #43] ; 0x2b + for(y = 0; y < h; y++) { + 8019edc: 2300 movs r3, #0 + 8019ede: 653b str r3, [r7, #80] ; 0x50 + 8019ee0: e033 b.n 8019f4a + for(x = 0; x < w; x++) { + 8019ee2: 2300 movs r3, #0 + 8019ee4: 657b str r3, [r7, #84] ; 0x54 + 8019ee6: e023 b.n 8019f30 + if(last_dest_color.full != dest_buf[x].full) { + 8019ee8: 8d3a ldrh r2, [r7, #40] ; 0x28 + 8019eea: 6d7b ldr r3, [r7, #84] ; 0x54 + 8019eec: 005b lsls r3, r3, #1 + 8019eee: 68f9 ldr r1, [r7, #12] + 8019ef0: 440b add r3, r1 + 8019ef2: 881b ldrh r3, [r3, #0] + 8019ef4: 429a cmp r2, r3 + 8019ef6: d012 beq.n 8019f1e + last_dest_color = dest_buf[x]; + 8019ef8: 6d7b ldr r3, [r7, #84] ; 0x54 + 8019efa: 005b lsls r3, r3, #1 + 8019efc: 68fa ldr r2, [r7, #12] + 8019efe: 4413 add r3, r2 + 8019f00: 881b ldrh r3, [r3, #0] + 8019f02: 853b strh r3, [r7, #40] ; 0x28 + last_res_color = lv_color_mix_premult(color_premult, dest_buf[x], opa_inv); + 8019f04: 6d7b ldr r3, [r7, #84] ; 0x54 + 8019f06: 005b lsls r3, r3, #1 + 8019f08: 68fa ldr r2, [r7, #12] + 8019f0a: 4413 add r3, r2 + 8019f0c: f897 202b ldrb.w r2, [r7, #43] ; 0x2b + 8019f10: f107 001c add.w r0, r7, #28 + 8019f14: 8819 ldrh r1, [r3, #0] + 8019f16: f7ff fcb3 bl 8019880 + 8019f1a: 4603 mov r3, r0 + 8019f1c: 84bb strh r3, [r7, #36] ; 0x24 + dest_buf[x] = last_res_color; + 8019f1e: 6d7b ldr r3, [r7, #84] ; 0x54 + 8019f20: 005b lsls r3, r3, #1 + 8019f22: 68fa ldr r2, [r7, #12] + 8019f24: 4413 add r3, r2 + 8019f26: 8cba ldrh r2, [r7, #36] ; 0x24 + 8019f28: 801a strh r2, [r3, #0] + for(x = 0; x < w; x++) { + 8019f2a: 6d7b ldr r3, [r7, #84] ; 0x54 + 8019f2c: 3301 adds r3, #1 + 8019f2e: 657b str r3, [r7, #84] ; 0x54 + 8019f30: 6d7a ldr r2, [r7, #84] ; 0x54 + 8019f32: 6c7b ldr r3, [r7, #68] ; 0x44 + 8019f34: 429a cmp r2, r3 + 8019f36: dbd7 blt.n 8019ee8 + dest_buf += dest_stride; + 8019f38: f9b7 3006 ldrsh.w r3, [r7, #6] + 8019f3c: 005b lsls r3, r3, #1 + 8019f3e: 68fa ldr r2, [r7, #12] + 8019f40: 4413 add r3, r2 + 8019f42: 60fb str r3, [r7, #12] + for(y = 0; y < h; y++) { + 8019f44: 6d3b ldr r3, [r7, #80] ; 0x50 + 8019f46: 3301 adds r3, #1 + 8019f48: 653b str r3, [r7, #80] ; 0x50 + 8019f4a: 6d3a ldr r2, [r7, #80] ; 0x50 + 8019f4c: 6c3b ldr r3, [r7, #64] ; 0x40 + 8019f4e: 429a cmp r2, r3 + 8019f50: dbc7 blt.n 8019ee2 +} + 8019f52: e18c b.n 801a26e + uint32_t c32 = color.full + ((uint32_t)color.full << 16); + 8019f54: 88bb ldrh r3, [r7, #4] + 8019f56: 461a mov r2, r3 + 8019f58: 88bb ldrh r3, [r7, #4] + 8019f5a: 041b lsls r3, r3, #16 + 8019f5c: 4413 add r3, r2 + 8019f5e: 63fb str r3, [r7, #60] ; 0x3c + if(opa >= LV_OPA_MAX) { + 8019f60: f897 3060 ldrb.w r3, [r7, #96] ; 0x60 + 8019f64: 2bfc cmp r3, #252 ; 0xfc + 8019f66: f240 8104 bls.w 801a172 + int32_t x_end4 = w - 4; + 8019f6a: 6c7b ldr r3, [r7, #68] ; 0x44 + 8019f6c: 3b04 subs r3, #4 + 8019f6e: 63bb str r3, [r7, #56] ; 0x38 for(y = 0; y < h; y++) { 8019f70: 2300 movs r3, #0 8019f72: 653b str r3, [r7, #80] ; 0x50 - 8019f74: e033 b.n 8019fde - for(x = 0; x < w; x++) { + 8019f74: e0f7 b.n 801a166 + for(x = 0; x < w && ((lv_uintptr_t)(mask) & 0x3); x++) { 8019f76: 2300 movs r3, #0 8019f78: 657b str r3, [r7, #84] ; 0x54 - 8019f7a: e023 b.n 8019fc4 - if(last_dest_color.full != dest_buf[x].full) { - 8019f7c: 8d3a ldrh r2, [r7, #40] ; 0x28 - 8019f7e: 6d7b ldr r3, [r7, #84] ; 0x54 - 8019f80: 005b lsls r3, r3, #1 - 8019f82: 68f9 ldr r1, [r7, #12] - 8019f84: 440b add r3, r1 - 8019f86: 881b ldrh r3, [r3, #0] - 8019f88: 429a cmp r2, r3 - 8019f8a: d012 beq.n 8019fb2 - last_dest_color = dest_buf[x]; - 8019f8c: 6d7b ldr r3, [r7, #84] ; 0x54 - 8019f8e: 005b lsls r3, r3, #1 - 8019f90: 68fa ldr r2, [r7, #12] - 8019f92: 4413 add r3, r2 - 8019f94: 881b ldrh r3, [r3, #0] - 8019f96: 853b strh r3, [r7, #40] ; 0x28 - last_res_color = lv_color_mix_premult(color_premult, dest_buf[x], opa_inv); - 8019f98: 6d7b ldr r3, [r7, #84] ; 0x54 - 8019f9a: 005b lsls r3, r3, #1 - 8019f9c: 68fa ldr r2, [r7, #12] - 8019f9e: 4413 add r3, r2 - 8019fa0: f897 202b ldrb.w r2, [r7, #43] ; 0x2b - 8019fa4: f107 001c add.w r0, r7, #28 - 8019fa8: 8819 ldrh r1, [r3, #0] - 8019faa: f7ff fcb3 bl 8019914 - 8019fae: 4603 mov r3, r0 - 8019fb0: 84bb strh r3, [r7, #36] ; 0x24 - dest_buf[x] = last_res_color; - 8019fb2: 6d7b ldr r3, [r7, #84] ; 0x54 - 8019fb4: 005b lsls r3, r3, #1 - 8019fb6: 68fa ldr r2, [r7, #12] - 8019fb8: 4413 add r3, r2 - 8019fba: 8cba ldrh r2, [r7, #36] ; 0x24 - 8019fbc: 801a strh r2, [r3, #0] - for(x = 0; x < w; x++) { - 8019fbe: 6d7b ldr r3, [r7, #84] ; 0x54 - 8019fc0: 3301 adds r3, #1 - 8019fc2: 657b str r3, [r7, #84] ; 0x54 - 8019fc4: 6d7a ldr r2, [r7, #84] ; 0x54 - 8019fc6: 6c7b ldr r3, [r7, #68] ; 0x44 - 8019fc8: 429a cmp r2, r3 - 8019fca: dbd7 blt.n 8019f7c - dest_buf += dest_stride; - 8019fcc: f9b7 3006 ldrsh.w r3, [r7, #6] - 8019fd0: 005b lsls r3, r3, #1 - 8019fd2: 68fa ldr r2, [r7, #12] - 8019fd4: 4413 add r3, r2 - 8019fd6: 60fb str r3, [r7, #12] - for(y = 0; y < h; y++) { - 8019fd8: 6d3b ldr r3, [r7, #80] ; 0x50 - 8019fda: 3301 adds r3, #1 - 8019fdc: 653b str r3, [r7, #80] ; 0x50 - 8019fde: 6d3a ldr r2, [r7, #80] ; 0x50 - 8019fe0: 6c3b ldr r3, [r7, #64] ; 0x40 - 8019fe2: 429a cmp r2, r3 - 8019fe4: dbc7 blt.n 8019f76 -} - 8019fe6: e18c b.n 801a302 - uint32_t c32 = color.full + ((uint32_t)color.full << 16); - 8019fe8: 88bb ldrh r3, [r7, #4] - 8019fea: 461a mov r2, r3 - 8019fec: 88bb ldrh r3, [r7, #4] - 8019fee: 041b lsls r3, r3, #16 - 8019ff0: 4413 add r3, r2 - 8019ff2: 63fb str r3, [r7, #60] ; 0x3c - if(opa >= LV_OPA_MAX) { - 8019ff4: f897 3060 ldrb.w r3, [r7, #96] ; 0x60 - 8019ff8: 2bfc cmp r3, #252 ; 0xfc - 8019ffa: f240 8104 bls.w 801a206 - int32_t x_end4 = w - 4; - 8019ffe: 6c7b ldr r3, [r7, #68] ; 0x44 - 801a000: 3b04 subs r3, #4 - 801a002: 63bb str r3, [r7, #56] ; 0x38 - for(y = 0; y < h; y++) { - 801a004: 2300 movs r3, #0 - 801a006: 653b str r3, [r7, #80] ; 0x50 - 801a008: e0f7 b.n 801a1fa - for(x = 0; x < w && ((lv_uintptr_t)(mask) & 0x3); x++) { - 801a00a: 2300 movs r3, #0 - 801a00c: 657b str r3, [r7, #84] ; 0x54 - 801a00e: e01a b.n 801a046 + 8019f7a: e01a b.n 8019fb2 FILL_NORMAL_MASK_PX(color) - 801a010: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a012: 781b ldrb r3, [r3, #0] - 801a014: 2bff cmp r3, #255 ; 0xff - 801a016: d103 bne.n 801a020 - 801a018: 68fb ldr r3, [r7, #12] - 801a01a: 88ba ldrh r2, [r7, #4] - 801a01c: 801a strh r2, [r3, #0] - 801a01e: e009 b.n 801a034 - 801a020: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a022: 781a ldrb r2, [r3, #0] - 801a024: 68fb ldr r3, [r7, #12] - 801a026: 8819 ldrh r1, [r3, #0] - 801a028: 88b8 ldrh r0, [r7, #4] - 801a02a: f7ff fc09 bl 8019840 - 801a02e: 4602 mov r2, r0 - 801a030: 68fb ldr r3, [r7, #12] - 801a032: 801a strh r2, [r3, #0] - 801a034: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a036: 3301 adds r3, #1 - 801a038: 667b str r3, [r7, #100] ; 0x64 - 801a03a: 68fb ldr r3, [r7, #12] - 801a03c: 3302 adds r3, #2 - 801a03e: 60fb str r3, [r7, #12] + 8019f7c: 6e7b ldr r3, [r7, #100] ; 0x64 + 8019f7e: 781b ldrb r3, [r3, #0] + 8019f80: 2bff cmp r3, #255 ; 0xff + 8019f82: d103 bne.n 8019f8c + 8019f84: 68fb ldr r3, [r7, #12] + 8019f86: 88ba ldrh r2, [r7, #4] + 8019f88: 801a strh r2, [r3, #0] + 8019f8a: e009 b.n 8019fa0 + 8019f8c: 6e7b ldr r3, [r7, #100] ; 0x64 + 8019f8e: 781a ldrb r2, [r3, #0] + 8019f90: 68fb ldr r3, [r7, #12] + 8019f92: 8819 ldrh r1, [r3, #0] + 8019f94: 88b8 ldrh r0, [r7, #4] + 8019f96: f7ff fc09 bl 80197ac + 8019f9a: 4602 mov r2, r0 + 8019f9c: 68fb ldr r3, [r7, #12] + 8019f9e: 801a strh r2, [r3, #0] + 8019fa0: 6e7b ldr r3, [r7, #100] ; 0x64 + 8019fa2: 3301 adds r3, #1 + 8019fa4: 667b str r3, [r7, #100] ; 0x64 + 8019fa6: 68fb ldr r3, [r7, #12] + 8019fa8: 3302 adds r3, #2 + 8019faa: 60fb str r3, [r7, #12] for(x = 0; x < w && ((lv_uintptr_t)(mask) & 0x3); x++) { - 801a040: 6d7b ldr r3, [r7, #84] ; 0x54 - 801a042: 3301 adds r3, #1 - 801a044: 657b str r3, [r7, #84] ; 0x54 - 801a046: 6d7a ldr r2, [r7, #84] ; 0x54 - 801a048: 6c7b ldr r3, [r7, #68] ; 0x44 - 801a04a: 429a cmp r2, r3 - 801a04c: f280 809d bge.w 801a18a - 801a050: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a052: f003 0303 and.w r3, r3, #3 - 801a056: 2b00 cmp r3, #0 - 801a058: d1da bne.n 801a010 + 8019fac: 6d7b ldr r3, [r7, #84] ; 0x54 + 8019fae: 3301 adds r3, #1 + 8019fb0: 657b str r3, [r7, #84] ; 0x54 + 8019fb2: 6d7a ldr r2, [r7, #84] ; 0x54 + 8019fb4: 6c7b ldr r3, [r7, #68] ; 0x44 + 8019fb6: 429a cmp r2, r3 + 8019fb8: f280 809d bge.w 801a0f6 + 8019fbc: 6e7b ldr r3, [r7, #100] ; 0x64 + 8019fbe: f003 0303 and.w r3, r3, #3 + 8019fc2: 2b00 cmp r3, #0 + 8019fc4: d1da bne.n 8019f7c for(; x <= x_end4; x += 4) { - 801a05a: e096 b.n 801a18a + 8019fc6: e096 b.n 801a0f6 uint32_t mask32 = *((uint32_t *)mask); - 801a05c: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a05e: 681b ldr r3, [r3, #0] - 801a060: 637b str r3, [r7, #52] ; 0x34 + 8019fc8: 6e7b ldr r3, [r7, #100] ; 0x64 + 8019fca: 681b ldr r3, [r3, #0] + 8019fcc: 637b str r3, [r7, #52] ; 0x34 if(mask32 == 0xFFFFFFFF) { - 801a062: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a064: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 801a068: d122 bne.n 801a0b0 + 8019fce: 6b7b ldr r3, [r7, #52] ; 0x34 + 8019fd0: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 8019fd4: d122 bne.n 801a01c if((lv_uintptr_t)dest_buf & 0x3) { - 801a06a: 68fb ldr r3, [r7, #12] - 801a06c: f003 0303 and.w r3, r3, #3 - 801a070: 2b00 cmp r3, #0 - 801a072: d00d beq.n 801a090 + 8019fd6: 68fb ldr r3, [r7, #12] + 8019fd8: f003 0303 and.w r3, r3, #3 + 8019fdc: 2b00 cmp r3, #0 + 8019fde: d00d beq.n 8019ffc *(dest_buf + 0) = color; - 801a074: 68fb ldr r3, [r7, #12] - 801a076: 88ba ldrh r2, [r7, #4] - 801a078: 801a strh r2, [r3, #0] + 8019fe0: 68fb ldr r3, [r7, #12] + 8019fe2: 88ba ldrh r2, [r7, #4] + 8019fe4: 801a strh r2, [r3, #0] uint32_t * d = (uint32_t *)(dest_buf + 1); - 801a07a: 68fb ldr r3, [r7, #12] - 801a07c: 3302 adds r3, #2 - 801a07e: 62fb str r3, [r7, #44] ; 0x2c + 8019fe6: 68fb ldr r3, [r7, #12] + 8019fe8: 3302 adds r3, #2 + 8019fea: 62fb str r3, [r7, #44] ; 0x2c *d = c32; - 801a080: 6afb ldr r3, [r7, #44] ; 0x2c - 801a082: 6bfa ldr r2, [r7, #60] ; 0x3c - 801a084: 601a str r2, [r3, #0] + 8019fec: 6afb ldr r3, [r7, #44] ; 0x2c + 8019fee: 6bfa ldr r2, [r7, #60] ; 0x3c + 8019ff0: 601a str r2, [r3, #0] *(dest_buf + 3) = color; - 801a086: 68fb ldr r3, [r7, #12] - 801a088: 3306 adds r3, #6 - 801a08a: 88ba ldrh r2, [r7, #4] - 801a08c: 801a strh r2, [r3, #0] - 801a08e: e008 b.n 801a0a2 + 8019ff2: 68fb ldr r3, [r7, #12] + 8019ff4: 3306 adds r3, #6 + 8019ff6: 88ba ldrh r2, [r7, #4] + 8019ff8: 801a strh r2, [r3, #0] + 8019ffa: e008 b.n 801a00e uint32_t * d = (uint32_t *)dest_buf; - 801a090: 68fb ldr r3, [r7, #12] - 801a092: 633b str r3, [r7, #48] ; 0x30 + 8019ffc: 68fb ldr r3, [r7, #12] + 8019ffe: 633b str r3, [r7, #48] ; 0x30 *d = c32; - 801a094: 6b3b ldr r3, [r7, #48] ; 0x30 - 801a096: 6bfa ldr r2, [r7, #60] ; 0x3c - 801a098: 601a str r2, [r3, #0] + 801a000: 6b3b ldr r3, [r7, #48] ; 0x30 + 801a002: 6bfa ldr r2, [r7, #60] ; 0x3c + 801a004: 601a str r2, [r3, #0] *(d + 1) = c32; - 801a09a: 6b3b ldr r3, [r7, #48] ; 0x30 - 801a09c: 3304 adds r3, #4 - 801a09e: 6bfa ldr r2, [r7, #60] ; 0x3c - 801a0a0: 601a str r2, [r3, #0] + 801a006: 6b3b ldr r3, [r7, #48] ; 0x30 + 801a008: 3304 adds r3, #4 + 801a00a: 6bfa ldr r2, [r7, #60] ; 0x3c + 801a00c: 601a str r2, [r3, #0] dest_buf += 4; - 801a0a2: 68fb ldr r3, [r7, #12] - 801a0a4: 3308 adds r3, #8 - 801a0a6: 60fb str r3, [r7, #12] + 801a00e: 68fb ldr r3, [r7, #12] + 801a010: 3308 adds r3, #8 + 801a012: 60fb str r3, [r7, #12] mask += 4; - 801a0a8: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a0aa: 3304 adds r3, #4 - 801a0ac: 667b str r3, [r7, #100] ; 0x64 - 801a0ae: e069 b.n 801a184 + 801a014: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a016: 3304 adds r3, #4 + 801a018: 667b str r3, [r7, #100] ; 0x64 + 801a01a: e069 b.n 801a0f0 else if(mask32) { - 801a0b0: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a0b2: 2b00 cmp r3, #0 - 801a0b4: d060 beq.n 801a178 + 801a01c: 6b7b ldr r3, [r7, #52] ; 0x34 + 801a01e: 2b00 cmp r3, #0 + 801a020: d060 beq.n 801a0e4 FILL_NORMAL_MASK_PX(color) - 801a0b6: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a0b8: 781b ldrb r3, [r3, #0] - 801a0ba: 2bff cmp r3, #255 ; 0xff - 801a0bc: d103 bne.n 801a0c6 - 801a0be: 68fb ldr r3, [r7, #12] - 801a0c0: 88ba ldrh r2, [r7, #4] - 801a0c2: 801a strh r2, [r3, #0] - 801a0c4: e009 b.n 801a0da - 801a0c6: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a0c8: 781a ldrb r2, [r3, #0] - 801a0ca: 68fb ldr r3, [r7, #12] - 801a0cc: 8819 ldrh r1, [r3, #0] - 801a0ce: 88b8 ldrh r0, [r7, #4] - 801a0d0: f7ff fbb6 bl 8019840 - 801a0d4: 4602 mov r2, r0 - 801a0d6: 68fb ldr r3, [r7, #12] - 801a0d8: 801a strh r2, [r3, #0] - 801a0da: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a0dc: 3301 adds r3, #1 - 801a0de: 667b str r3, [r7, #100] ; 0x64 - 801a0e0: 68fb ldr r3, [r7, #12] - 801a0e2: 3302 adds r3, #2 - 801a0e4: 60fb str r3, [r7, #12] + 801a022: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a024: 781b ldrb r3, [r3, #0] + 801a026: 2bff cmp r3, #255 ; 0xff + 801a028: d103 bne.n 801a032 + 801a02a: 68fb ldr r3, [r7, #12] + 801a02c: 88ba ldrh r2, [r7, #4] + 801a02e: 801a strh r2, [r3, #0] + 801a030: e009 b.n 801a046 + 801a032: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a034: 781a ldrb r2, [r3, #0] + 801a036: 68fb ldr r3, [r7, #12] + 801a038: 8819 ldrh r1, [r3, #0] + 801a03a: 88b8 ldrh r0, [r7, #4] + 801a03c: f7ff fbb6 bl 80197ac + 801a040: 4602 mov r2, r0 + 801a042: 68fb ldr r3, [r7, #12] + 801a044: 801a strh r2, [r3, #0] + 801a046: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a048: 3301 adds r3, #1 + 801a04a: 667b str r3, [r7, #100] ; 0x64 + 801a04c: 68fb ldr r3, [r7, #12] + 801a04e: 3302 adds r3, #2 + 801a050: 60fb str r3, [r7, #12] FILL_NORMAL_MASK_PX(color) - 801a0e6: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a0e8: 781b ldrb r3, [r3, #0] - 801a0ea: 2bff cmp r3, #255 ; 0xff - 801a0ec: d103 bne.n 801a0f6 - 801a0ee: 68fb ldr r3, [r7, #12] - 801a0f0: 88ba ldrh r2, [r7, #4] - 801a0f2: 801a strh r2, [r3, #0] - 801a0f4: e009 b.n 801a10a - 801a0f6: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a0f8: 781a ldrb r2, [r3, #0] - 801a0fa: 68fb ldr r3, [r7, #12] - 801a0fc: 8819 ldrh r1, [r3, #0] - 801a0fe: 88b8 ldrh r0, [r7, #4] - 801a100: f7ff fb9e bl 8019840 - 801a104: 4602 mov r2, r0 - 801a106: 68fb ldr r3, [r7, #12] - 801a108: 801a strh r2, [r3, #0] - 801a10a: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a10c: 3301 adds r3, #1 - 801a10e: 667b str r3, [r7, #100] ; 0x64 - 801a110: 68fb ldr r3, [r7, #12] - 801a112: 3302 adds r3, #2 - 801a114: 60fb str r3, [r7, #12] + 801a052: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a054: 781b ldrb r3, [r3, #0] + 801a056: 2bff cmp r3, #255 ; 0xff + 801a058: d103 bne.n 801a062 + 801a05a: 68fb ldr r3, [r7, #12] + 801a05c: 88ba ldrh r2, [r7, #4] + 801a05e: 801a strh r2, [r3, #0] + 801a060: e009 b.n 801a076 + 801a062: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a064: 781a ldrb r2, [r3, #0] + 801a066: 68fb ldr r3, [r7, #12] + 801a068: 8819 ldrh r1, [r3, #0] + 801a06a: 88b8 ldrh r0, [r7, #4] + 801a06c: f7ff fb9e bl 80197ac + 801a070: 4602 mov r2, r0 + 801a072: 68fb ldr r3, [r7, #12] + 801a074: 801a strh r2, [r3, #0] + 801a076: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a078: 3301 adds r3, #1 + 801a07a: 667b str r3, [r7, #100] ; 0x64 + 801a07c: 68fb ldr r3, [r7, #12] + 801a07e: 3302 adds r3, #2 + 801a080: 60fb str r3, [r7, #12] FILL_NORMAL_MASK_PX(color) - 801a116: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a118: 781b ldrb r3, [r3, #0] - 801a11a: 2bff cmp r3, #255 ; 0xff - 801a11c: d103 bne.n 801a126 - 801a11e: 68fb ldr r3, [r7, #12] - 801a120: 88ba ldrh r2, [r7, #4] - 801a122: 801a strh r2, [r3, #0] - 801a124: e009 b.n 801a13a - 801a126: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a128: 781a ldrb r2, [r3, #0] - 801a12a: 68fb ldr r3, [r7, #12] - 801a12c: 8819 ldrh r1, [r3, #0] - 801a12e: 88b8 ldrh r0, [r7, #4] - 801a130: f7ff fb86 bl 8019840 - 801a134: 4602 mov r2, r0 - 801a136: 68fb ldr r3, [r7, #12] - 801a138: 801a strh r2, [r3, #0] - 801a13a: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a13c: 3301 adds r3, #1 - 801a13e: 667b str r3, [r7, #100] ; 0x64 - 801a140: 68fb ldr r3, [r7, #12] - 801a142: 3302 adds r3, #2 - 801a144: 60fb str r3, [r7, #12] + 801a082: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a084: 781b ldrb r3, [r3, #0] + 801a086: 2bff cmp r3, #255 ; 0xff + 801a088: d103 bne.n 801a092 + 801a08a: 68fb ldr r3, [r7, #12] + 801a08c: 88ba ldrh r2, [r7, #4] + 801a08e: 801a strh r2, [r3, #0] + 801a090: e009 b.n 801a0a6 + 801a092: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a094: 781a ldrb r2, [r3, #0] + 801a096: 68fb ldr r3, [r7, #12] + 801a098: 8819 ldrh r1, [r3, #0] + 801a09a: 88b8 ldrh r0, [r7, #4] + 801a09c: f7ff fb86 bl 80197ac + 801a0a0: 4602 mov r2, r0 + 801a0a2: 68fb ldr r3, [r7, #12] + 801a0a4: 801a strh r2, [r3, #0] + 801a0a6: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a0a8: 3301 adds r3, #1 + 801a0aa: 667b str r3, [r7, #100] ; 0x64 + 801a0ac: 68fb ldr r3, [r7, #12] + 801a0ae: 3302 adds r3, #2 + 801a0b0: 60fb str r3, [r7, #12] FILL_NORMAL_MASK_PX(color) - 801a146: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a148: 781b ldrb r3, [r3, #0] - 801a14a: 2bff cmp r3, #255 ; 0xff - 801a14c: d103 bne.n 801a156 - 801a14e: 68fb ldr r3, [r7, #12] - 801a150: 88ba ldrh r2, [r7, #4] - 801a152: 801a strh r2, [r3, #0] - 801a154: e009 b.n 801a16a - 801a156: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a158: 781a ldrb r2, [r3, #0] - 801a15a: 68fb ldr r3, [r7, #12] - 801a15c: 8819 ldrh r1, [r3, #0] - 801a15e: 88b8 ldrh r0, [r7, #4] - 801a160: f7ff fb6e bl 8019840 - 801a164: 4602 mov r2, r0 - 801a166: 68fb ldr r3, [r7, #12] - 801a168: 801a strh r2, [r3, #0] - 801a16a: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a16c: 3301 adds r3, #1 - 801a16e: 667b str r3, [r7, #100] ; 0x64 - 801a170: 68fb ldr r3, [r7, #12] - 801a172: 3302 adds r3, #2 - 801a174: 60fb str r3, [r7, #12] - 801a176: e005 b.n 801a184 + 801a0b2: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a0b4: 781b ldrb r3, [r3, #0] + 801a0b6: 2bff cmp r3, #255 ; 0xff + 801a0b8: d103 bne.n 801a0c2 + 801a0ba: 68fb ldr r3, [r7, #12] + 801a0bc: 88ba ldrh r2, [r7, #4] + 801a0be: 801a strh r2, [r3, #0] + 801a0c0: e009 b.n 801a0d6 + 801a0c2: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a0c4: 781a ldrb r2, [r3, #0] + 801a0c6: 68fb ldr r3, [r7, #12] + 801a0c8: 8819 ldrh r1, [r3, #0] + 801a0ca: 88b8 ldrh r0, [r7, #4] + 801a0cc: f7ff fb6e bl 80197ac + 801a0d0: 4602 mov r2, r0 + 801a0d2: 68fb ldr r3, [r7, #12] + 801a0d4: 801a strh r2, [r3, #0] + 801a0d6: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a0d8: 3301 adds r3, #1 + 801a0da: 667b str r3, [r7, #100] ; 0x64 + 801a0dc: 68fb ldr r3, [r7, #12] + 801a0de: 3302 adds r3, #2 + 801a0e0: 60fb str r3, [r7, #12] + 801a0e2: e005 b.n 801a0f0 mask += 4; - 801a178: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a17a: 3304 adds r3, #4 - 801a17c: 667b str r3, [r7, #100] ; 0x64 + 801a0e4: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a0e6: 3304 adds r3, #4 + 801a0e8: 667b str r3, [r7, #100] ; 0x64 dest_buf += 4; - 801a17e: 68fb ldr r3, [r7, #12] - 801a180: 3308 adds r3, #8 - 801a182: 60fb str r3, [r7, #12] + 801a0ea: 68fb ldr r3, [r7, #12] + 801a0ec: 3308 adds r3, #8 + 801a0ee: 60fb str r3, [r7, #12] for(; x <= x_end4; x += 4) { - 801a184: 6d7b ldr r3, [r7, #84] ; 0x54 - 801a186: 3304 adds r3, #4 - 801a188: 657b str r3, [r7, #84] ; 0x54 - 801a18a: 6d7a ldr r2, [r7, #84] ; 0x54 - 801a18c: 6bbb ldr r3, [r7, #56] ; 0x38 - 801a18e: 429a cmp r2, r3 - 801a190: f77f af64 ble.w 801a05c + 801a0f0: 6d7b ldr r3, [r7, #84] ; 0x54 + 801a0f2: 3304 adds r3, #4 + 801a0f4: 657b str r3, [r7, #84] ; 0x54 + 801a0f6: 6d7a ldr r2, [r7, #84] ; 0x54 + 801a0f8: 6bbb ldr r3, [r7, #56] ; 0x38 + 801a0fa: 429a cmp r2, r3 + 801a0fc: f77f af64 ble.w 8019fc8 for(; x < w ; x++) { - 801a194: e01a b.n 801a1cc + 801a100: e01a b.n 801a138 FILL_NORMAL_MASK_PX(color) + 801a102: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a104: 781b ldrb r3, [r3, #0] + 801a106: 2bff cmp r3, #255 ; 0xff + 801a108: d103 bne.n 801a112 + 801a10a: 68fb ldr r3, [r7, #12] + 801a10c: 88ba ldrh r2, [r7, #4] + 801a10e: 801a strh r2, [r3, #0] + 801a110: e009 b.n 801a126 + 801a112: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a114: 781a ldrb r2, [r3, #0] + 801a116: 68fb ldr r3, [r7, #12] + 801a118: 8819 ldrh r1, [r3, #0] + 801a11a: 88b8 ldrh r0, [r7, #4] + 801a11c: f7ff fb46 bl 80197ac + 801a120: 4602 mov r2, r0 + 801a122: 68fb ldr r3, [r7, #12] + 801a124: 801a strh r2, [r3, #0] + 801a126: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a128: 3301 adds r3, #1 + 801a12a: 667b str r3, [r7, #100] ; 0x64 + 801a12c: 68fb ldr r3, [r7, #12] + 801a12e: 3302 adds r3, #2 + 801a130: 60fb str r3, [r7, #12] + for(; x < w ; x++) { + 801a132: 6d7b ldr r3, [r7, #84] ; 0x54 + 801a134: 3301 adds r3, #1 + 801a136: 657b str r3, [r7, #84] ; 0x54 + 801a138: 6d7a ldr r2, [r7, #84] ; 0x54 + 801a13a: 6c7b ldr r3, [r7, #68] ; 0x44 + 801a13c: 429a cmp r2, r3 + 801a13e: dbe0 blt.n 801a102 + dest_buf += (dest_stride - w); + 801a140: f9b7 2006 ldrsh.w r2, [r7, #6] + 801a144: 6c7b ldr r3, [r7, #68] ; 0x44 + 801a146: 1ad3 subs r3, r2, r3 + 801a148: 005b lsls r3, r3, #1 + 801a14a: 68fa ldr r2, [r7, #12] + 801a14c: 4413 add r3, r2 + 801a14e: 60fb str r3, [r7, #12] + mask += (mask_stride - w); + 801a150: f9b7 2068 ldrsh.w r2, [r7, #104] ; 0x68 + 801a154: 6c7b ldr r3, [r7, #68] ; 0x44 + 801a156: 1ad3 subs r3, r2, r3 + 801a158: 461a mov r2, r3 + 801a15a: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a15c: 4413 add r3, r2 + 801a15e: 667b str r3, [r7, #100] ; 0x64 + for(y = 0; y < h; y++) { + 801a160: 6d3b ldr r3, [r7, #80] ; 0x50 + 801a162: 3301 adds r3, #1 + 801a164: 653b str r3, [r7, #80] ; 0x50 + 801a166: 6d3a ldr r2, [r7, #80] ; 0x50 + 801a168: 6c3b ldr r3, [r7, #64] ; 0x40 + 801a16a: 429a cmp r2, r3 + 801a16c: f6ff af03 blt.w 8019f76 +} + 801a170: e07d b.n 801a26e + lv_opa_t last_mask = LV_OPA_TRANSP; + 801a172: 2300 movs r3, #0 + 801a174: f887 304f strb.w r3, [r7, #79] ; 0x4f + last_dest_color.full = dest_buf[0].full; + 801a178: 68fb ldr r3, [r7, #12] + 801a17a: 881b ldrh r3, [r3, #0] + 801a17c: 833b strh r3, [r7, #24] + last_res_color.full = dest_buf[0].full; + 801a17e: 68fb ldr r3, [r7, #12] + 801a180: 881b ldrh r3, [r3, #0] + 801a182: 82bb strh r3, [r7, #20] + lv_opa_t opa_tmp = LV_OPA_TRANSP; + 801a184: 2300 movs r3, #0 + 801a186: f887 304e strb.w r3, [r7, #78] ; 0x4e + for(y = 0; y < h; y++) { + 801a18a: 2300 movs r3, #0 + 801a18c: 653b str r3, [r7, #80] ; 0x50 + 801a18e: e06a b.n 801a266 + for(x = 0; x < w; x++) { + 801a190: 2300 movs r3, #0 + 801a192: 657b str r3, [r7, #84] ; 0x54 + 801a194: e052 b.n 801a23c + if(*mask) { 801a196: 6e7b ldr r3, [r7, #100] ; 0x64 801a198: 781b ldrb r3, [r3, #0] - 801a19a: 2bff cmp r3, #255 ; 0xff - 801a19c: d103 bne.n 801a1a6 - 801a19e: 68fb ldr r3, [r7, #12] - 801a1a0: 88ba ldrh r2, [r7, #4] - 801a1a2: 801a strh r2, [r3, #0] - 801a1a4: e009 b.n 801a1ba - 801a1a6: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a1a8: 781a ldrb r2, [r3, #0] - 801a1aa: 68fb ldr r3, [r7, #12] - 801a1ac: 8819 ldrh r1, [r3, #0] - 801a1ae: 88b8 ldrh r0, [r7, #4] - 801a1b0: f7ff fb46 bl 8019840 - 801a1b4: 4602 mov r2, r0 - 801a1b6: 68fb ldr r3, [r7, #12] - 801a1b8: 801a strh r2, [r3, #0] - 801a1ba: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a1bc: 3301 adds r3, #1 - 801a1be: 667b str r3, [r7, #100] ; 0x64 - 801a1c0: 68fb ldr r3, [r7, #12] - 801a1c2: 3302 adds r3, #2 - 801a1c4: 60fb str r3, [r7, #12] - for(; x < w ; x++) { - 801a1c6: 6d7b ldr r3, [r7, #84] ; 0x54 - 801a1c8: 3301 adds r3, #1 - 801a1ca: 657b str r3, [r7, #84] ; 0x54 - 801a1cc: 6d7a ldr r2, [r7, #84] ; 0x54 - 801a1ce: 6c7b ldr r3, [r7, #68] ; 0x44 - 801a1d0: 429a cmp r2, r3 - 801a1d2: dbe0 blt.n 801a196 - dest_buf += (dest_stride - w); - 801a1d4: f9b7 2006 ldrsh.w r2, [r7, #6] - 801a1d8: 6c7b ldr r3, [r7, #68] ; 0x44 - 801a1da: 1ad3 subs r3, r2, r3 - 801a1dc: 005b lsls r3, r3, #1 - 801a1de: 68fa ldr r2, [r7, #12] - 801a1e0: 4413 add r3, r2 - 801a1e2: 60fb str r3, [r7, #12] - mask += (mask_stride - w); - 801a1e4: f9b7 2068 ldrsh.w r2, [r7, #104] ; 0x68 - 801a1e8: 6c7b ldr r3, [r7, #68] ; 0x44 - 801a1ea: 1ad3 subs r3, r2, r3 - 801a1ec: 461a mov r2, r3 - 801a1ee: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a1f0: 4413 add r3, r2 - 801a1f2: 667b str r3, [r7, #100] ; 0x64 - for(y = 0; y < h; y++) { - 801a1f4: 6d3b ldr r3, [r7, #80] ; 0x50 - 801a1f6: 3301 adds r3, #1 - 801a1f8: 653b str r3, [r7, #80] ; 0x50 - 801a1fa: 6d3a ldr r2, [r7, #80] ; 0x50 - 801a1fc: 6c3b ldr r3, [r7, #64] ; 0x40 - 801a1fe: 429a cmp r2, r3 - 801a200: f6ff af03 blt.w 801a00a -} - 801a204: e07d b.n 801a302 - lv_opa_t last_mask = LV_OPA_TRANSP; - 801a206: 2300 movs r3, #0 - 801a208: f887 304f strb.w r3, [r7, #79] ; 0x4f - last_dest_color.full = dest_buf[0].full; - 801a20c: 68fb ldr r3, [r7, #12] - 801a20e: 881b ldrh r3, [r3, #0] - 801a210: 833b strh r3, [r7, #24] - last_res_color.full = dest_buf[0].full; - 801a212: 68fb ldr r3, [r7, #12] - 801a214: 881b ldrh r3, [r3, #0] - 801a216: 82bb strh r3, [r7, #20] - lv_opa_t opa_tmp = LV_OPA_TRANSP; - 801a218: 2300 movs r3, #0 - 801a21a: f887 304e strb.w r3, [r7, #78] ; 0x4e - for(y = 0; y < h; y++) { - 801a21e: 2300 movs r3, #0 - 801a220: 653b str r3, [r7, #80] ; 0x50 - 801a222: e06a b.n 801a2fa - for(x = 0; x < w; x++) { - 801a224: 2300 movs r3, #0 - 801a226: 657b str r3, [r7, #84] ; 0x54 - 801a228: e052 b.n 801a2d0 - if(*mask) { - 801a22a: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a22c: 781b ldrb r3, [r3, #0] - 801a22e: 2b00 cmp r3, #0 - 801a230: d048 beq.n 801a2c4 + 801a19a: 2b00 cmp r3, #0 + 801a19c: d048 beq.n 801a230 if(*mask != last_mask) opa_tmp = *mask == LV_OPA_COVER ? opa : - 801a232: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a234: 781b ldrb r3, [r3, #0] - 801a236: f897 204f ldrb.w r2, [r7, #79] ; 0x4f - 801a23a: 429a cmp r2, r3 - 801a23c: d011 beq.n 801a262 - 801a23e: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a240: 781b ldrb r3, [r3, #0] - 801a242: 2bff cmp r3, #255 ; 0xff - 801a244: d009 beq.n 801a25a + 801a19e: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a1a0: 781b ldrb r3, [r3, #0] + 801a1a2: f897 204f ldrb.w r2, [r7, #79] ; 0x4f + 801a1a6: 429a cmp r2, r3 + 801a1a8: d011 beq.n 801a1ce + 801a1aa: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a1ac: 781b ldrb r3, [r3, #0] + 801a1ae: 2bff cmp r3, #255 ; 0xff + 801a1b0: d009 beq.n 801a1c6 (uint32_t)((uint32_t)(*mask) * opa) >> 8; - 801a246: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a248: 781b ldrb r3, [r3, #0] - 801a24a: 461a mov r2, r3 - 801a24c: f897 3060 ldrb.w r3, [r7, #96] ; 0x60 - 801a250: fb02 f303 mul.w r3, r2, r3 - 801a254: 0a1b lsrs r3, r3, #8 + 801a1b2: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a1b4: 781b ldrb r3, [r3, #0] + 801a1b6: 461a mov r2, r3 + 801a1b8: f897 3060 ldrb.w r3, [r7, #96] ; 0x60 + 801a1bc: fb02 f303 mul.w r3, r2, r3 + 801a1c0: 0a1b lsrs r3, r3, #8 if(*mask != last_mask) opa_tmp = *mask == LV_OPA_COVER ? opa : - 801a256: b2db uxtb r3, r3 - 801a258: e001 b.n 801a25e - 801a25a: f897 3060 ldrb.w r3, [r7, #96] ; 0x60 - 801a25e: f887 304e strb.w r3, [r7, #78] ; 0x4e + 801a1c2: b2db uxtb r3, r3 + 801a1c4: e001 b.n 801a1ca + 801a1c6: f897 3060 ldrb.w r3, [r7, #96] ; 0x60 + 801a1ca: f887 304e strb.w r3, [r7, #78] ; 0x4e if(*mask != last_mask || last_dest_color.full != dest_buf[x].full) { - 801a262: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a264: 781b ldrb r3, [r3, #0] - 801a266: f897 204f ldrb.w r2, [r7, #79] ; 0x4f - 801a26a: 429a cmp r2, r3 - 801a26c: d107 bne.n 801a27e - 801a26e: 8b3a ldrh r2, [r7, #24] - 801a270: 6d7b ldr r3, [r7, #84] ; 0x54 - 801a272: 005b lsls r3, r3, #1 - 801a274: 68f9 ldr r1, [r7, #12] - 801a276: 440b add r3, r1 - 801a278: 881b ldrh r3, [r3, #0] - 801a27a: 429a cmp r2, r3 - 801a27c: d01c beq.n 801a2b8 + 801a1ce: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a1d0: 781b ldrb r3, [r3, #0] + 801a1d2: f897 204f ldrb.w r2, [r7, #79] ; 0x4f + 801a1d6: 429a cmp r2, r3 + 801a1d8: d107 bne.n 801a1ea + 801a1da: 8b3a ldrh r2, [r7, #24] + 801a1dc: 6d7b ldr r3, [r7, #84] ; 0x54 + 801a1de: 005b lsls r3, r3, #1 + 801a1e0: 68f9 ldr r1, [r7, #12] + 801a1e2: 440b add r3, r1 + 801a1e4: 881b ldrh r3, [r3, #0] + 801a1e6: 429a cmp r2, r3 + 801a1e8: d01c beq.n 801a224 if(opa_tmp == LV_OPA_COVER) last_res_color = color; - 801a27e: f897 304e ldrb.w r3, [r7, #78] ; 0x4e - 801a282: 2bff cmp r3, #255 ; 0xff - 801a284: d102 bne.n 801a28c - 801a286: 88bb ldrh r3, [r7, #4] - 801a288: 82bb strh r3, [r7, #20] - 801a28a: e00b b.n 801a2a4 + 801a1ea: f897 304e ldrb.w r3, [r7, #78] ; 0x4e + 801a1ee: 2bff cmp r3, #255 ; 0xff + 801a1f0: d102 bne.n 801a1f8 + 801a1f2: 88bb ldrh r3, [r7, #4] + 801a1f4: 82bb strh r3, [r7, #20] + 801a1f6: e00b b.n 801a210 else last_res_color = lv_color_mix(color, dest_buf[x], opa_tmp); - 801a28c: 6d7b ldr r3, [r7, #84] ; 0x54 - 801a28e: 005b lsls r3, r3, #1 - 801a290: 68fa ldr r2, [r7, #12] - 801a292: 4413 add r3, r2 - 801a294: f897 204e ldrb.w r2, [r7, #78] ; 0x4e - 801a298: 8819 ldrh r1, [r3, #0] - 801a29a: 88b8 ldrh r0, [r7, #4] - 801a29c: f7ff fad0 bl 8019840 - 801a2a0: 4603 mov r3, r0 - 801a2a2: 82bb strh r3, [r7, #20] + 801a1f8: 6d7b ldr r3, [r7, #84] ; 0x54 + 801a1fa: 005b lsls r3, r3, #1 + 801a1fc: 68fa ldr r2, [r7, #12] + 801a1fe: 4413 add r3, r2 + 801a200: f897 204e ldrb.w r2, [r7, #78] ; 0x4e + 801a204: 8819 ldrh r1, [r3, #0] + 801a206: 88b8 ldrh r0, [r7, #4] + 801a208: f7ff fad0 bl 80197ac + 801a20c: 4603 mov r3, r0 + 801a20e: 82bb strh r3, [r7, #20] last_mask = *mask; - 801a2a4: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a2a6: 781b ldrb r3, [r3, #0] - 801a2a8: f887 304f strb.w r3, [r7, #79] ; 0x4f + 801a210: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a212: 781b ldrb r3, [r3, #0] + 801a214: f887 304f strb.w r3, [r7, #79] ; 0x4f last_dest_color.full = dest_buf[x].full; - 801a2ac: 6d7b ldr r3, [r7, #84] ; 0x54 - 801a2ae: 005b lsls r3, r3, #1 - 801a2b0: 68fa ldr r2, [r7, #12] - 801a2b2: 4413 add r3, r2 - 801a2b4: 881b ldrh r3, [r3, #0] - 801a2b6: 833b strh r3, [r7, #24] + 801a218: 6d7b ldr r3, [r7, #84] ; 0x54 + 801a21a: 005b lsls r3, r3, #1 + 801a21c: 68fa ldr r2, [r7, #12] + 801a21e: 4413 add r3, r2 + 801a220: 881b ldrh r3, [r3, #0] + 801a222: 833b strh r3, [r7, #24] dest_buf[x] = last_res_color; - 801a2b8: 6d7b ldr r3, [r7, #84] ; 0x54 - 801a2ba: 005b lsls r3, r3, #1 - 801a2bc: 68fa ldr r2, [r7, #12] - 801a2be: 4413 add r3, r2 - 801a2c0: 8aba ldrh r2, [r7, #20] - 801a2c2: 801a strh r2, [r3, #0] + 801a224: 6d7b ldr r3, [r7, #84] ; 0x54 + 801a226: 005b lsls r3, r3, #1 + 801a228: 68fa ldr r2, [r7, #12] + 801a22a: 4413 add r3, r2 + 801a22c: 8aba ldrh r2, [r7, #20] + 801a22e: 801a strh r2, [r3, #0] mask++; - 801a2c4: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a2c6: 3301 adds r3, #1 - 801a2c8: 667b str r3, [r7, #100] ; 0x64 + 801a230: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a232: 3301 adds r3, #1 + 801a234: 667b str r3, [r7, #100] ; 0x64 for(x = 0; x < w; x++) { - 801a2ca: 6d7b ldr r3, [r7, #84] ; 0x54 - 801a2cc: 3301 adds r3, #1 - 801a2ce: 657b str r3, [r7, #84] ; 0x54 - 801a2d0: 6d7a ldr r2, [r7, #84] ; 0x54 - 801a2d2: 6c7b ldr r3, [r7, #68] ; 0x44 - 801a2d4: 429a cmp r2, r3 - 801a2d6: dba8 blt.n 801a22a + 801a236: 6d7b ldr r3, [r7, #84] ; 0x54 + 801a238: 3301 adds r3, #1 + 801a23a: 657b str r3, [r7, #84] ; 0x54 + 801a23c: 6d7a ldr r2, [r7, #84] ; 0x54 + 801a23e: 6c7b ldr r3, [r7, #68] ; 0x44 + 801a240: 429a cmp r2, r3 + 801a242: dba8 blt.n 801a196 dest_buf += dest_stride; - 801a2d8: f9b7 3006 ldrsh.w r3, [r7, #6] - 801a2dc: 005b lsls r3, r3, #1 - 801a2de: 68fa ldr r2, [r7, #12] - 801a2e0: 4413 add r3, r2 - 801a2e2: 60fb str r3, [r7, #12] + 801a244: f9b7 3006 ldrsh.w r3, [r7, #6] + 801a248: 005b lsls r3, r3, #1 + 801a24a: 68fa ldr r2, [r7, #12] + 801a24c: 4413 add r3, r2 + 801a24e: 60fb str r3, [r7, #12] mask += (mask_stride - w); - 801a2e4: f9b7 2068 ldrsh.w r2, [r7, #104] ; 0x68 - 801a2e8: 6c7b ldr r3, [r7, #68] ; 0x44 - 801a2ea: 1ad3 subs r3, r2, r3 - 801a2ec: 461a mov r2, r3 - 801a2ee: 6e7b ldr r3, [r7, #100] ; 0x64 - 801a2f0: 4413 add r3, r2 - 801a2f2: 667b str r3, [r7, #100] ; 0x64 + 801a250: f9b7 2068 ldrsh.w r2, [r7, #104] ; 0x68 + 801a254: 6c7b ldr r3, [r7, #68] ; 0x44 + 801a256: 1ad3 subs r3, r2, r3 + 801a258: 461a mov r2, r3 + 801a25a: 6e7b ldr r3, [r7, #100] ; 0x64 + 801a25c: 4413 add r3, r2 + 801a25e: 667b str r3, [r7, #100] ; 0x64 for(y = 0; y < h; y++) { - 801a2f4: 6d3b ldr r3, [r7, #80] ; 0x50 - 801a2f6: 3301 adds r3, #1 - 801a2f8: 653b str r3, [r7, #80] ; 0x50 - 801a2fa: 6d3a ldr r2, [r7, #80] ; 0x50 - 801a2fc: 6c3b ldr r3, [r7, #64] ; 0x40 - 801a2fe: 429a cmp r2, r3 - 801a300: db90 blt.n 801a224 + 801a260: 6d3b ldr r3, [r7, #80] ; 0x50 + 801a262: 3301 adds r3, #1 + 801a264: 653b str r3, [r7, #80] ; 0x50 + 801a266: 6d3a ldr r2, [r7, #80] ; 0x50 + 801a268: 6c3b ldr r3, [r7, #64] ; 0x40 + 801a26a: 429a cmp r2, r3 + 801a26c: db90 blt.n 801a190 } - 801a302: bf00 nop - 801a304: 3758 adds r7, #88 ; 0x58 - 801a306: 46bd mov sp, r7 - 801a308: bd80 pop {r7, pc} + 801a26e: bf00 nop + 801a270: 3758 adds r7, #88 ; 0x58 + 801a272: 46bd mov sp, r7 + 801a274: bd80 pop {r7, pc} ... -0801a30c : +0801a278 : #if LV_DRAW_COMPLEX static void fill_blended(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride, lv_blend_mode_t blend_mode) { - 801a30c: b580 push {r7, lr} - 801a30e: b08e sub sp, #56 ; 0x38 - 801a310: af00 add r7, sp, #0 - 801a312: 60f8 str r0, [r7, #12] - 801a314: 60b9 str r1, [r7, #8] - 801a316: 80bb strh r3, [r7, #4] - 801a318: 4613 mov r3, r2 - 801a31a: 80fb strh r3, [r7, #6] + 801a278: b580 push {r7, lr} + 801a27a: b08e sub sp, #56 ; 0x38 + 801a27c: af00 add r7, sp, #0 + 801a27e: 60f8 str r0, [r7, #12] + 801a280: 60b9 str r1, [r7, #8] + 801a282: 80bb strh r3, [r7, #4] + 801a284: 4613 mov r3, r2 + 801a286: 80fb strh r3, [r7, #6] int32_t w = lv_area_get_width(dest_area); - 801a31c: 68b8 ldr r0, [r7, #8] - 801a31e: f7ff fb8c bl 8019a3a - 801a322: 4603 mov r3, r0 - 801a324: 627b str r3, [r7, #36] ; 0x24 + 801a288: 68b8 ldr r0, [r7, #8] + 801a28a: f7ff fb8c bl 80199a6 + 801a28e: 4603 mov r3, r0 + 801a290: 627b str r3, [r7, #36] ; 0x24 int32_t h = lv_area_get_height(dest_area); - 801a326: 68b8 ldr r0, [r7, #8] - 801a328: f7ff fb9d bl 8019a66 - 801a32c: 4603 mov r3, r0 - 801a32e: 623b str r3, [r7, #32] + 801a292: 68b8 ldr r0, [r7, #8] + 801a294: f7ff fb9d bl 80199d2 + 801a298: 4603 mov r3, r0 + 801a29a: 623b str r3, [r7, #32] int32_t x; int32_t y; lv_color_t (*blend_fp)(lv_color_t, lv_color_t, lv_opa_t); switch(blend_mode) { - 801a330: f897 304c ldrb.w r3, [r7, #76] ; 0x4c - 801a334: 2b03 cmp r3, #3 - 801a336: d00d beq.n 801a354 - 801a338: 2b03 cmp r3, #3 - 801a33a: f300 80e0 bgt.w 801a4fe - 801a33e: 2b01 cmp r3, #1 - 801a340: d002 beq.n 801a348 - 801a342: 2b02 cmp r3, #2 - 801a344: d003 beq.n 801a34e + 801a29c: f897 304c ldrb.w r3, [r7, #76] ; 0x4c + 801a2a0: 2b03 cmp r3, #3 + 801a2a2: d00d beq.n 801a2c0 + 801a2a4: 2b03 cmp r3, #3 + 801a2a6: f300 80e0 bgt.w 801a46a + 801a2aa: 2b01 cmp r3, #1 + 801a2ac: d002 beq.n 801a2b4 + 801a2ae: 2b02 cmp r3, #2 + 801a2b0: d003 beq.n 801a2ba case LV_BLEND_MODE_MULTIPLY: blend_fp = color_blend_true_color_multiply; break; default: LV_LOG_WARN("fill_blended: unsupported blend mode"); return; - 801a346: e0da b.n 801a4fe + 801a2b2: e0da b.n 801a46a blend_fp = color_blend_true_color_additive; - 801a348: 4b6f ldr r3, [pc, #444] ; (801a508 ) - 801a34a: 62fb str r3, [r7, #44] ; 0x2c + 801a2b4: 4b6f ldr r3, [pc, #444] ; (801a474 ) + 801a2b6: 62fb str r3, [r7, #44] ; 0x2c break; - 801a34c: e005 b.n 801a35a + 801a2b8: e005 b.n 801a2c6 blend_fp = color_blend_true_color_subtractive; - 801a34e: 4b6f ldr r3, [pc, #444] ; (801a50c ) - 801a350: 62fb str r3, [r7, #44] ; 0x2c + 801a2ba: 4b6f ldr r3, [pc, #444] ; (801a478 ) + 801a2bc: 62fb str r3, [r7, #44] ; 0x2c break; - 801a352: e002 b.n 801a35a + 801a2be: e002 b.n 801a2c6 blend_fp = color_blend_true_color_multiply; - 801a354: 4b6e ldr r3, [pc, #440] ; (801a510 ) - 801a356: 62fb str r3, [r7, #44] ; 0x2c + 801a2c0: 4b6e ldr r3, [pc, #440] ; (801a47c ) + 801a2c2: 62fb str r3, [r7, #44] ; 0x2c break; - 801a358: bf00 nop + 801a2c4: bf00 nop } /*Simple fill (maybe with opacity), no masking*/ if(mask == NULL) { - 801a35a: 6c7b ldr r3, [r7, #68] ; 0x44 - 801a35c: 2b00 cmp r3, #0 - 801a35e: d146 bne.n 801a3ee + 801a2c6: 6c7b ldr r3, [r7, #68] ; 0x44 + 801a2c8: 2b00 cmp r3, #0 + 801a2ca: d146 bne.n 801a35a lv_color_t last_dest_color = dest_buf[0]; - 801a360: 68fb ldr r3, [r7, #12] - 801a362: 881b ldrh r3, [r3, #0] - 801a364: 83bb strh r3, [r7, #28] + 801a2cc: 68fb ldr r3, [r7, #12] + 801a2ce: 881b ldrh r3, [r3, #0] + 801a2d0: 83bb strh r3, [r7, #28] lv_color_t last_res_color = blend_fp(color, dest_buf[0], opa); - 801a366: f897 2040 ldrb.w r2, [r7, #64] ; 0x40 - 801a36a: 68f9 ldr r1, [r7, #12] - 801a36c: 6afb ldr r3, [r7, #44] ; 0x2c - 801a36e: 8809 ldrh r1, [r1, #0] - 801a370: 88b8 ldrh r0, [r7, #4] - 801a372: 4798 blx r3 - 801a374: 4603 mov r3, r0 - 801a376: 833b strh r3, [r7, #24] + 801a2d2: f897 2040 ldrb.w r2, [r7, #64] ; 0x40 + 801a2d6: 68f9 ldr r1, [r7, #12] + 801a2d8: 6afb ldr r3, [r7, #44] ; 0x2c + 801a2da: 8809 ldrh r1, [r1, #0] + 801a2dc: 88b8 ldrh r0, [r7, #4] + 801a2de: 4798 blx r3 + 801a2e0: 4603 mov r3, r0 + 801a2e2: 833b strh r3, [r7, #24] for(y = 0; y < h; y++) { - 801a378: 2300 movs r3, #0 - 801a37a: 633b str r3, [r7, #48] ; 0x30 - 801a37c: e032 b.n 801a3e4 + 801a2e4: 2300 movs r3, #0 + 801a2e6: 633b str r3, [r7, #48] ; 0x30 + 801a2e8: e032 b.n 801a350 for(x = 0; x < w; x++) { - 801a37e: 2300 movs r3, #0 - 801a380: 637b str r3, [r7, #52] ; 0x34 - 801a382: e022 b.n 801a3ca + 801a2ea: 2300 movs r3, #0 + 801a2ec: 637b str r3, [r7, #52] ; 0x34 + 801a2ee: e022 b.n 801a336 if(last_dest_color.full != dest_buf[x].full) { - 801a384: 8bba ldrh r2, [r7, #28] - 801a386: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a388: 005b lsls r3, r3, #1 - 801a38a: 68f9 ldr r1, [r7, #12] - 801a38c: 440b add r3, r1 - 801a38e: 881b ldrh r3, [r3, #0] - 801a390: 429a cmp r2, r3 - 801a392: d011 beq.n 801a3b8 + 801a2f0: 8bba ldrh r2, [r7, #28] + 801a2f2: 6b7b ldr r3, [r7, #52] ; 0x34 + 801a2f4: 005b lsls r3, r3, #1 + 801a2f6: 68f9 ldr r1, [r7, #12] + 801a2f8: 440b add r3, r1 + 801a2fa: 881b ldrh r3, [r3, #0] + 801a2fc: 429a cmp r2, r3 + 801a2fe: d011 beq.n 801a324 last_dest_color = dest_buf[x]; - 801a394: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a396: 005b lsls r3, r3, #1 - 801a398: 68fa ldr r2, [r7, #12] - 801a39a: 4413 add r3, r2 - 801a39c: 881b ldrh r3, [r3, #0] - 801a39e: 83bb strh r3, [r7, #28] + 801a300: 6b7b ldr r3, [r7, #52] ; 0x34 + 801a302: 005b lsls r3, r3, #1 + 801a304: 68fa ldr r2, [r7, #12] + 801a306: 4413 add r3, r2 + 801a308: 881b ldrh r3, [r3, #0] + 801a30a: 83bb strh r3, [r7, #28] last_res_color = blend_fp(color, dest_buf[x], opa); - 801a3a0: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a3a2: 005b lsls r3, r3, #1 - 801a3a4: 68fa ldr r2, [r7, #12] - 801a3a6: 18d1 adds r1, r2, r3 - 801a3a8: f897 2040 ldrb.w r2, [r7, #64] ; 0x40 - 801a3ac: 6afb ldr r3, [r7, #44] ; 0x2c - 801a3ae: 8809 ldrh r1, [r1, #0] - 801a3b0: 88b8 ldrh r0, [r7, #4] - 801a3b2: 4798 blx r3 - 801a3b4: 4603 mov r3, r0 - 801a3b6: 833b strh r3, [r7, #24] + 801a30c: 6b7b ldr r3, [r7, #52] ; 0x34 + 801a30e: 005b lsls r3, r3, #1 + 801a310: 68fa ldr r2, [r7, #12] + 801a312: 18d1 adds r1, r2, r3 + 801a314: f897 2040 ldrb.w r2, [r7, #64] ; 0x40 + 801a318: 6afb ldr r3, [r7, #44] ; 0x2c + 801a31a: 8809 ldrh r1, [r1, #0] + 801a31c: 88b8 ldrh r0, [r7, #4] + 801a31e: 4798 blx r3 + 801a320: 4603 mov r3, r0 + 801a322: 833b strh r3, [r7, #24] } dest_buf[x] = last_res_color; - 801a3b8: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a3ba: 005b lsls r3, r3, #1 - 801a3bc: 68fa ldr r2, [r7, #12] - 801a3be: 4413 add r3, r2 - 801a3c0: 8b3a ldrh r2, [r7, #24] - 801a3c2: 801a strh r2, [r3, #0] + 801a324: 6b7b ldr r3, [r7, #52] ; 0x34 + 801a326: 005b lsls r3, r3, #1 + 801a328: 68fa ldr r2, [r7, #12] + 801a32a: 4413 add r3, r2 + 801a32c: 8b3a ldrh r2, [r7, #24] + 801a32e: 801a strh r2, [r3, #0] for(x = 0; x < w; x++) { - 801a3c4: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a3c6: 3301 adds r3, #1 - 801a3c8: 637b str r3, [r7, #52] ; 0x34 - 801a3ca: 6b7a ldr r2, [r7, #52] ; 0x34 - 801a3cc: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a3ce: 429a cmp r2, r3 - 801a3d0: dbd8 blt.n 801a384 + 801a330: 6b7b ldr r3, [r7, #52] ; 0x34 + 801a332: 3301 adds r3, #1 + 801a334: 637b str r3, [r7, #52] ; 0x34 + 801a336: 6b7a ldr r2, [r7, #52] ; 0x34 + 801a338: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a33a: 429a cmp r2, r3 + 801a33c: dbd8 blt.n 801a2f0 } dest_buf += dest_stride; - 801a3d2: f9b7 3006 ldrsh.w r3, [r7, #6] - 801a3d6: 005b lsls r3, r3, #1 - 801a3d8: 68fa ldr r2, [r7, #12] - 801a3da: 4413 add r3, r2 - 801a3dc: 60fb str r3, [r7, #12] + 801a33e: f9b7 3006 ldrsh.w r3, [r7, #6] + 801a342: 005b lsls r3, r3, #1 + 801a344: 68fa ldr r2, [r7, #12] + 801a346: 4413 add r3, r2 + 801a348: 60fb str r3, [r7, #12] for(y = 0; y < h; y++) { - 801a3de: 6b3b ldr r3, [r7, #48] ; 0x30 - 801a3e0: 3301 adds r3, #1 - 801a3e2: 633b str r3, [r7, #48] ; 0x30 - 801a3e4: 6b3a ldr r2, [r7, #48] ; 0x30 - 801a3e6: 6a3b ldr r3, [r7, #32] - 801a3e8: 429a cmp r2, r3 - 801a3ea: dbc8 blt.n 801a37e - 801a3ec: e088 b.n 801a500 + 801a34a: 6b3b ldr r3, [r7, #48] ; 0x30 + 801a34c: 3301 adds r3, #1 + 801a34e: 633b str r3, [r7, #48] ; 0x30 + 801a350: 6b3a ldr r2, [r7, #48] ; 0x30 + 801a352: 6a3b ldr r3, [r7, #32] + 801a354: 429a cmp r2, r3 + 801a356: dbc8 blt.n 801a2ea + 801a358: e088 b.n 801a46c /*Masked*/ else { /*Buffer the result color to avoid recalculating the same color*/ lv_color_t last_dest_color; lv_color_t last_res_color; lv_opa_t last_mask = LV_OPA_TRANSP; - 801a3ee: 2300 movs r3, #0 - 801a3f0: f887 302b strb.w r3, [r7, #43] ; 0x2b + 801a35a: 2300 movs r3, #0 + 801a35c: f887 302b strb.w r3, [r7, #43] ; 0x2b last_dest_color = dest_buf[0]; - 801a3f4: 68fb ldr r3, [r7, #12] - 801a3f6: 881b ldrh r3, [r3, #0] - 801a3f8: 82bb strh r3, [r7, #20] + 801a360: 68fb ldr r3, [r7, #12] + 801a362: 881b ldrh r3, [r3, #0] + 801a364: 82bb strh r3, [r7, #20] lv_opa_t opa_tmp = mask[0] >= LV_OPA_MAX ? opa : (uint32_t)((uint32_t)mask[0] * opa) >> 8; - 801a3fa: 6c7b ldr r3, [r7, #68] ; 0x44 - 801a3fc: 781b ldrb r3, [r3, #0] - 801a3fe: 2bfc cmp r3, #252 ; 0xfc - 801a400: d809 bhi.n 801a416 - 801a402: 6c7b ldr r3, [r7, #68] ; 0x44 - 801a404: 781b ldrb r3, [r3, #0] - 801a406: 461a mov r2, r3 - 801a408: f897 3040 ldrb.w r3, [r7, #64] ; 0x40 - 801a40c: fb02 f303 mul.w r3, r2, r3 - 801a410: 0a1b lsrs r3, r3, #8 - 801a412: b2db uxtb r3, r3 - 801a414: e001 b.n 801a41a - 801a416: f897 3040 ldrb.w r3, [r7, #64] ; 0x40 - 801a41a: 77fb strb r3, [r7, #31] + 801a366: 6c7b ldr r3, [r7, #68] ; 0x44 + 801a368: 781b ldrb r3, [r3, #0] + 801a36a: 2bfc cmp r3, #252 ; 0xfc + 801a36c: d809 bhi.n 801a382 + 801a36e: 6c7b ldr r3, [r7, #68] ; 0x44 + 801a370: 781b ldrb r3, [r3, #0] + 801a372: 461a mov r2, r3 + 801a374: f897 3040 ldrb.w r3, [r7, #64] ; 0x40 + 801a378: fb02 f303 mul.w r3, r2, r3 + 801a37c: 0a1b lsrs r3, r3, #8 + 801a37e: b2db uxtb r3, r3 + 801a380: e001 b.n 801a386 + 801a382: f897 3040 ldrb.w r3, [r7, #64] ; 0x40 + 801a386: 77fb strb r3, [r7, #31] last_res_color = blend_fp(color, last_dest_color, opa_tmp); - 801a41c: 7ffa ldrb r2, [r7, #31] - 801a41e: 6afb ldr r3, [r7, #44] ; 0x2c - 801a420: 8ab9 ldrh r1, [r7, #20] - 801a422: 88b8 ldrh r0, [r7, #4] - 801a424: 4798 blx r3 - 801a426: 4603 mov r3, r0 - 801a428: 823b strh r3, [r7, #16] + 801a388: 7ffa ldrb r2, [r7, #31] + 801a38a: 6afb ldr r3, [r7, #44] ; 0x2c + 801a38c: 8ab9 ldrh r1, [r7, #20] + 801a38e: 88b8 ldrh r0, [r7, #4] + 801a390: 4798 blx r3 + 801a392: 4603 mov r3, r0 + 801a394: 823b strh r3, [r7, #16] for(y = 0; y < h; y++) { - 801a42a: 2300 movs r3, #0 - 801a42c: 633b str r3, [r7, #48] ; 0x30 - 801a42e: e061 b.n 801a4f4 + 801a396: 2300 movs r3, #0 + 801a398: 633b str r3, [r7, #48] ; 0x30 + 801a39a: e061 b.n 801a460 for(x = 0; x < w; x++) { - 801a430: 2300 movs r3, #0 - 801a432: 637b str r3, [r7, #52] ; 0x34 - 801a434: e04c b.n 801a4d0 + 801a39c: 2300 movs r3, #0 + 801a39e: 637b str r3, [r7, #52] ; 0x34 + 801a3a0: e04c b.n 801a43c if(mask[x] == 0) continue; - 801a436: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a438: 6c7a ldr r2, [r7, #68] ; 0x44 - 801a43a: 4413 add r3, r2 - 801a43c: 781b ldrb r3, [r3, #0] - 801a43e: 2b00 cmp r3, #0 - 801a440: d042 beq.n 801a4c8 + 801a3a2: 6b7b ldr r3, [r7, #52] ; 0x34 + 801a3a4: 6c7a ldr r2, [r7, #68] ; 0x44 + 801a3a6: 4413 add r3, r2 + 801a3a8: 781b ldrb r3, [r3, #0] + 801a3aa: 2b00 cmp r3, #0 + 801a3ac: d042 beq.n 801a434 if(mask[x] != last_mask || last_dest_color.full != dest_buf[x].full) { - 801a442: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a444: 6c7a ldr r2, [r7, #68] ; 0x44 - 801a446: 4413 add r3, r2 - 801a448: 781b ldrb r3, [r3, #0] - 801a44a: f897 202b ldrb.w r2, [r7, #43] ; 0x2b - 801a44e: 429a cmp r2, r3 - 801a450: d107 bne.n 801a462 - 801a452: 8aba ldrh r2, [r7, #20] - 801a454: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a456: 005b lsls r3, r3, #1 - 801a458: 68f9 ldr r1, [r7, #12] - 801a45a: 440b add r3, r1 - 801a45c: 881b ldrh r3, [r3, #0] - 801a45e: 429a cmp r2, r3 - 801a460: d02b beq.n 801a4ba + 801a3ae: 6b7b ldr r3, [r7, #52] ; 0x34 + 801a3b0: 6c7a ldr r2, [r7, #68] ; 0x44 + 801a3b2: 4413 add r3, r2 + 801a3b4: 781b ldrb r3, [r3, #0] + 801a3b6: f897 202b ldrb.w r2, [r7, #43] ; 0x2b + 801a3ba: 429a cmp r2, r3 + 801a3bc: d107 bne.n 801a3ce + 801a3be: 8aba ldrh r2, [r7, #20] + 801a3c0: 6b7b ldr r3, [r7, #52] ; 0x34 + 801a3c2: 005b lsls r3, r3, #1 + 801a3c4: 68f9 ldr r1, [r7, #12] + 801a3c6: 440b add r3, r1 + 801a3c8: 881b ldrh r3, [r3, #0] + 801a3ca: 429a cmp r2, r3 + 801a3cc: d02b beq.n 801a426 opa_tmp = mask[x] >= LV_OPA_MAX ? opa : (uint32_t)((uint32_t)mask[x] * opa) >> 8; - 801a462: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a464: 6c7a ldr r2, [r7, #68] ; 0x44 - 801a466: 4413 add r3, r2 - 801a468: 781b ldrb r3, [r3, #0] - 801a46a: 2bfc cmp r3, #252 ; 0xfc - 801a46c: d80b bhi.n 801a486 - 801a46e: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a470: 6c7a ldr r2, [r7, #68] ; 0x44 - 801a472: 4413 add r3, r2 - 801a474: 781b ldrb r3, [r3, #0] - 801a476: 461a mov r2, r3 - 801a478: f897 3040 ldrb.w r3, [r7, #64] ; 0x40 - 801a47c: fb02 f303 mul.w r3, r2, r3 - 801a480: 0a1b lsrs r3, r3, #8 - 801a482: b2db uxtb r3, r3 - 801a484: e001 b.n 801a48a - 801a486: f897 3040 ldrb.w r3, [r7, #64] ; 0x40 - 801a48a: 77fb strb r3, [r7, #31] + 801a3ce: 6b7b ldr r3, [r7, #52] ; 0x34 + 801a3d0: 6c7a ldr r2, [r7, #68] ; 0x44 + 801a3d2: 4413 add r3, r2 + 801a3d4: 781b ldrb r3, [r3, #0] + 801a3d6: 2bfc cmp r3, #252 ; 0xfc + 801a3d8: d80b bhi.n 801a3f2 + 801a3da: 6b7b ldr r3, [r7, #52] ; 0x34 + 801a3dc: 6c7a ldr r2, [r7, #68] ; 0x44 + 801a3de: 4413 add r3, r2 + 801a3e0: 781b ldrb r3, [r3, #0] + 801a3e2: 461a mov r2, r3 + 801a3e4: f897 3040 ldrb.w r3, [r7, #64] ; 0x40 + 801a3e8: fb02 f303 mul.w r3, r2, r3 + 801a3ec: 0a1b lsrs r3, r3, #8 + 801a3ee: b2db uxtb r3, r3 + 801a3f0: e001 b.n 801a3f6 + 801a3f2: f897 3040 ldrb.w r3, [r7, #64] ; 0x40 + 801a3f6: 77fb strb r3, [r7, #31] last_res_color = blend_fp(color, dest_buf[x], opa_tmp); - 801a48c: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a48e: 005b lsls r3, r3, #1 - 801a490: 68fa ldr r2, [r7, #12] - 801a492: 18d1 adds r1, r2, r3 - 801a494: 7ffa ldrb r2, [r7, #31] - 801a496: 6afb ldr r3, [r7, #44] ; 0x2c - 801a498: 8809 ldrh r1, [r1, #0] - 801a49a: 88b8 ldrh r0, [r7, #4] - 801a49c: 4798 blx r3 - 801a49e: 4603 mov r3, r0 - 801a4a0: 823b strh r3, [r7, #16] + 801a3f8: 6b7b ldr r3, [r7, #52] ; 0x34 + 801a3fa: 005b lsls r3, r3, #1 + 801a3fc: 68fa ldr r2, [r7, #12] + 801a3fe: 18d1 adds r1, r2, r3 + 801a400: 7ffa ldrb r2, [r7, #31] + 801a402: 6afb ldr r3, [r7, #44] ; 0x2c + 801a404: 8809 ldrh r1, [r1, #0] + 801a406: 88b8 ldrh r0, [r7, #4] + 801a408: 4798 blx r3 + 801a40a: 4603 mov r3, r0 + 801a40c: 823b strh r3, [r7, #16] last_mask = mask[x]; - 801a4a2: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a4a4: 6c7a ldr r2, [r7, #68] ; 0x44 - 801a4a6: 4413 add r3, r2 - 801a4a8: 781b ldrb r3, [r3, #0] - 801a4aa: f887 302b strb.w r3, [r7, #43] ; 0x2b + 801a40e: 6b7b ldr r3, [r7, #52] ; 0x34 + 801a410: 6c7a ldr r2, [r7, #68] ; 0x44 + 801a412: 4413 add r3, r2 + 801a414: 781b ldrb r3, [r3, #0] + 801a416: f887 302b strb.w r3, [r7, #43] ; 0x2b last_dest_color.full = dest_buf[x].full; - 801a4ae: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a4b0: 005b lsls r3, r3, #1 - 801a4b2: 68fa ldr r2, [r7, #12] - 801a4b4: 4413 add r3, r2 - 801a4b6: 881b ldrh r3, [r3, #0] - 801a4b8: 82bb strh r3, [r7, #20] + 801a41a: 6b7b ldr r3, [r7, #52] ; 0x34 + 801a41c: 005b lsls r3, r3, #1 + 801a41e: 68fa ldr r2, [r7, #12] + 801a420: 4413 add r3, r2 + 801a422: 881b ldrh r3, [r3, #0] + 801a424: 82bb strh r3, [r7, #20] } dest_buf[x] = last_res_color; - 801a4ba: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a4bc: 005b lsls r3, r3, #1 - 801a4be: 68fa ldr r2, [r7, #12] - 801a4c0: 4413 add r3, r2 - 801a4c2: 8a3a ldrh r2, [r7, #16] - 801a4c4: 801a strh r2, [r3, #0] - 801a4c6: e000 b.n 801a4ca + 801a426: 6b7b ldr r3, [r7, #52] ; 0x34 + 801a428: 005b lsls r3, r3, #1 + 801a42a: 68fa ldr r2, [r7, #12] + 801a42c: 4413 add r3, r2 + 801a42e: 8a3a ldrh r2, [r7, #16] + 801a430: 801a strh r2, [r3, #0] + 801a432: e000 b.n 801a436 if(mask[x] == 0) continue; - 801a4c8: bf00 nop + 801a434: bf00 nop for(x = 0; x < w; x++) { - 801a4ca: 6b7b ldr r3, [r7, #52] ; 0x34 - 801a4cc: 3301 adds r3, #1 - 801a4ce: 637b str r3, [r7, #52] ; 0x34 - 801a4d0: 6b7a ldr r2, [r7, #52] ; 0x34 - 801a4d2: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a4d4: 429a cmp r2, r3 - 801a4d6: dbae blt.n 801a436 + 801a436: 6b7b ldr r3, [r7, #52] ; 0x34 + 801a438: 3301 adds r3, #1 + 801a43a: 637b str r3, [r7, #52] ; 0x34 + 801a43c: 6b7a ldr r2, [r7, #52] ; 0x34 + 801a43e: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a440: 429a cmp r2, r3 + 801a442: dbae blt.n 801a3a2 } dest_buf += dest_stride; - 801a4d8: f9b7 3006 ldrsh.w r3, [r7, #6] - 801a4dc: 005b lsls r3, r3, #1 - 801a4de: 68fa ldr r2, [r7, #12] - 801a4e0: 4413 add r3, r2 - 801a4e2: 60fb str r3, [r7, #12] + 801a444: f9b7 3006 ldrsh.w r3, [r7, #6] + 801a448: 005b lsls r3, r3, #1 + 801a44a: 68fa ldr r2, [r7, #12] + 801a44c: 4413 add r3, r2 + 801a44e: 60fb str r3, [r7, #12] mask += mask_stride; - 801a4e4: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 - 801a4e8: 6c7a ldr r2, [r7, #68] ; 0x44 - 801a4ea: 4413 add r3, r2 - 801a4ec: 647b str r3, [r7, #68] ; 0x44 + 801a450: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 + 801a454: 6c7a ldr r2, [r7, #68] ; 0x44 + 801a456: 4413 add r3, r2 + 801a458: 647b str r3, [r7, #68] ; 0x44 for(y = 0; y < h; y++) { - 801a4ee: 6b3b ldr r3, [r7, #48] ; 0x30 - 801a4f0: 3301 adds r3, #1 - 801a4f2: 633b str r3, [r7, #48] ; 0x30 - 801a4f4: 6b3a ldr r2, [r7, #48] ; 0x30 - 801a4f6: 6a3b ldr r3, [r7, #32] - 801a4f8: 429a cmp r2, r3 - 801a4fa: db99 blt.n 801a430 - 801a4fc: e000 b.n 801a500 + 801a45a: 6b3b ldr r3, [r7, #48] ; 0x30 + 801a45c: 3301 adds r3, #1 + 801a45e: 633b str r3, [r7, #48] ; 0x30 + 801a460: 6b3a ldr r2, [r7, #48] ; 0x30 + 801a462: 6a3b ldr r3, [r7, #32] + 801a464: 429a cmp r2, r3 + 801a466: db99 blt.n 801a39c + 801a468: e000 b.n 801a46c return; - 801a4fe: bf00 nop + 801a46a: bf00 nop } } } - 801a500: 3738 adds r7, #56 ; 0x38 - 801a502: 46bd mov sp, r7 - 801a504: bd80 pop {r7, pc} - 801a506: bf00 nop - 801a508: 0801acb5 .word 0x0801acb5 - 801a50c: 0801ad71 .word 0x0801ad71 - 801a510: 0801ae27 .word 0x0801ae27 + 801a46c: 3738 adds r7, #56 ; 0x38 + 801a46e: 46bd mov sp, r7 + 801a470: bd80 pop {r7, pc} + 801a472: bf00 nop + 801a474: 0801ac21 .word 0x0801ac21 + 801a478: 0801acdd .word 0x0801acdd + 801a47c: 0801ad93 .word 0x0801ad93 -0801a514 : +0801a480 : #endif static void map_set_px(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride) { - 801a514: b5f0 push {r4, r5, r6, r7, lr} - 801a516: b08f sub sp, #60 ; 0x3c - 801a518: af04 add r7, sp, #16 - 801a51a: 60f8 str r0, [r7, #12] - 801a51c: 60b9 str r1, [r7, #8] - 801a51e: 603b str r3, [r7, #0] - 801a520: 4613 mov r3, r2 - 801a522: 80fb strh r3, [r7, #6] + 801a480: b5f0 push {r4, r5, r6, r7, lr} + 801a482: b08f sub sp, #60 ; 0x3c + 801a484: af04 add r7, sp, #16 + 801a486: 60f8 str r0, [r7, #12] + 801a488: 60b9 str r1, [r7, #8] + 801a48a: 603b str r3, [r7, #0] + 801a48c: 4613 mov r3, r2 + 801a48e: 80fb strh r3, [r7, #6] lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 801a524: f7f5 fc14 bl 800fd50 <_lv_refr_get_disp_refreshing> - 801a528: 61f8 str r0, [r7, #28] + 801a490: f7f5 fc14 bl 800fcbc <_lv_refr_get_disp_refreshing> + 801a494: 61f8 str r0, [r7, #28] int32_t w = lv_area_get_width(dest_area); - 801a52a: 68b8 ldr r0, [r7, #8] - 801a52c: f7ff fa85 bl 8019a3a - 801a530: 4603 mov r3, r0 - 801a532: 61bb str r3, [r7, #24] + 801a496: 68b8 ldr r0, [r7, #8] + 801a498: f7ff fa85 bl 80199a6 + 801a49c: 4603 mov r3, r0 + 801a49e: 61bb str r3, [r7, #24] int32_t h = lv_area_get_height(dest_area); - 801a534: 68b8 ldr r0, [r7, #8] - 801a536: f7ff fa96 bl 8019a66 - 801a53a: 4603 mov r3, r0 - 801a53c: 617b str r3, [r7, #20] + 801a4a0: 68b8 ldr r0, [r7, #8] + 801a4a2: f7ff fa96 bl 80199d2 + 801a4a6: 4603 mov r3, r0 + 801a4a8: 617b str r3, [r7, #20] int32_t x; int32_t y; if(mask == NULL) { - 801a53e: 6cbb ldr r3, [r7, #72] ; 0x48 - 801a540: 2b00 cmp r3, #0 - 801a542: d142 bne.n 801a5ca + 801a4aa: 6cbb ldr r3, [r7, #72] ; 0x48 + 801a4ac: 2b00 cmp r3, #0 + 801a4ae: d142 bne.n 801a536 for(y = 0; y < h; y++) { - 801a544: 2300 movs r3, #0 - 801a546: 623b str r3, [r7, #32] - 801a548: e03a b.n 801a5c0 + 801a4b0: 2300 movs r3, #0 + 801a4b2: 623b str r3, [r7, #32] + 801a4b4: e03a b.n 801a52c for(x = 0; x < w; x++) { - 801a54a: 2300 movs r3, #0 - 801a54c: 627b str r3, [r7, #36] ; 0x24 - 801a54e: e02a b.n 801a5a6 + 801a4b6: 2300 movs r3, #0 + 801a4b8: 627b str r3, [r7, #36] ; 0x24 + 801a4ba: e02a b.n 801a512 disp->driver->set_px_cb(disp->driver, (void *)dest_buf, dest_stride, dest_area->x1 + x, dest_area->y1 + y, src_buf[x], - 801a550: 69fb ldr r3, [r7, #28] - 801a552: 681b ldr r3, [r3, #0] - 801a554: 69dc ldr r4, [r3, #28] - 801a556: 69fb ldr r3, [r7, #28] - 801a558: 6818 ldr r0, [r3, #0] - 801a55a: 68bb ldr r3, [r7, #8] - 801a55c: f9b3 3000 ldrsh.w r3, [r3] - 801a560: b29a uxth r2, r3 - 801a562: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a564: b29b uxth r3, r3 - 801a566: 4413 add r3, r2 - 801a568: b29b uxth r3, r3 - 801a56a: b21e sxth r6, r3 + 801a4bc: 69fb ldr r3, [r7, #28] + 801a4be: 681b ldr r3, [r3, #0] + 801a4c0: 69dc ldr r4, [r3, #28] + 801a4c2: 69fb ldr r3, [r7, #28] + 801a4c4: 6818 ldr r0, [r3, #0] + 801a4c6: 68bb ldr r3, [r7, #8] + 801a4c8: f9b3 3000 ldrsh.w r3, [r3] + 801a4cc: b29a uxth r2, r3 + 801a4ce: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a4d0: b29b uxth r3, r3 + 801a4d2: 4413 add r3, r2 + 801a4d4: b29b uxth r3, r3 + 801a4d6: b21e sxth r6, r3 + 801a4d8: 68bb ldr r3, [r7, #8] + 801a4da: f9b3 3002 ldrsh.w r3, [r3, #2] + 801a4de: b29a uxth r2, r3 + 801a4e0: 6a3b ldr r3, [r7, #32] + 801a4e2: b29b uxth r3, r3 + 801a4e4: 4413 add r3, r2 + 801a4e6: b29b uxth r3, r3 + 801a4e8: b21b sxth r3, r3 + 801a4ea: 6a7a ldr r2, [r7, #36] ; 0x24 + 801a4ec: 0052 lsls r2, r2, #1 + 801a4ee: 6839 ldr r1, [r7, #0] + 801a4f0: 440a add r2, r1 + 801a4f2: f9b7 5006 ldrsh.w r5, [r7, #6] + 801a4f6: f897 1044 ldrb.w r1, [r7, #68] ; 0x44 + 801a4fa: 9102 str r1, [sp, #8] + 801a4fc: 8812 ldrh r2, [r2, #0] + 801a4fe: f8ad 2004 strh.w r2, [sp, #4] + 801a502: 9300 str r3, [sp, #0] + 801a504: 4633 mov r3, r6 + 801a506: 462a mov r2, r5 + 801a508: 68f9 ldr r1, [r7, #12] + 801a50a: 47a0 blx r4 + for(x = 0; x < w; x++) { + 801a50c: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a50e: 3301 adds r3, #1 + 801a510: 627b str r3, [r7, #36] ; 0x24 + 801a512: 6a7a ldr r2, [r7, #36] ; 0x24 + 801a514: 69bb ldr r3, [r7, #24] + 801a516: 429a cmp r2, r3 + 801a518: dbd0 blt.n 801a4bc + opa); + } + src_buf += src_stride; + 801a51a: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 + 801a51e: 005b lsls r3, r3, #1 + 801a520: 683a ldr r2, [r7, #0] + 801a522: 4413 add r3, r2 + 801a524: 603b str r3, [r7, #0] + for(y = 0; y < h; y++) { + 801a526: 6a3b ldr r3, [r7, #32] + 801a528: 3301 adds r3, #1 + 801a52a: 623b str r3, [r7, #32] + 801a52c: 6a3a ldr r2, [r7, #32] + 801a52e: 697b ldr r3, [r7, #20] + 801a530: 429a cmp r2, r3 + 801a532: dbc0 blt.n 801a4b6 + } + mask += mask_stride; + src_buf += src_stride; + } + } +} + 801a534: e056 b.n 801a5e4 + for(y = 0; y < h; y++) { + 801a536: 2300 movs r3, #0 + 801a538: 623b str r3, [r7, #32] + 801a53a: e04f b.n 801a5dc + for(x = 0; x < w; x++) { + 801a53c: 2300 movs r3, #0 + 801a53e: 627b str r3, [r7, #36] ; 0x24 + 801a540: e03a b.n 801a5b8 + if(mask[x]) { + 801a542: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a544: 6cba ldr r2, [r7, #72] ; 0x48 + 801a546: 4413 add r3, r2 + 801a548: 781b ldrb r3, [r3, #0] + 801a54a: 2b00 cmp r3, #0 + 801a54c: d031 beq.n 801a5b2 + disp->driver->set_px_cb(disp->driver, (void *)dest_buf, dest_stride, dest_area->x1 + x, dest_area->y1 + y, src_buf[x], + 801a54e: 69fb ldr r3, [r7, #28] + 801a550: 681b ldr r3, [r3, #0] + 801a552: 69dc ldr r4, [r3, #28] + 801a554: 69fb ldr r3, [r7, #28] + 801a556: 681e ldr r6, [r3, #0] + 801a558: 68bb ldr r3, [r7, #8] + 801a55a: f9b3 3000 ldrsh.w r3, [r3] + 801a55e: b29a uxth r2, r3 + 801a560: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a562: b29b uxth r3, r3 + 801a564: 4413 add r3, r2 + 801a566: b29b uxth r3, r3 + 801a568: fa0f fc83 sxth.w ip, r3 801a56c: 68bb ldr r3, [r7, #8] 801a56e: f9b3 3002 ldrsh.w r3, [r3, #2] 801a572: b29a uxth r2, r3 @@ -61162,15616 +61165,15603 @@ static void map_set_px(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_co 801a580: 0052 lsls r2, r2, #1 801a582: 6839 ldr r1, [r7, #0] 801a584: 440a add r2, r1 - 801a586: f9b7 5006 ldrsh.w r5, [r7, #6] - 801a58a: f897 1044 ldrb.w r1, [r7, #68] ; 0x44 - 801a58e: 9102 str r1, [sp, #8] - 801a590: 8812 ldrh r2, [r2, #0] - 801a592: f8ad 2004 strh.w r2, [sp, #4] - 801a596: 9300 str r3, [sp, #0] - 801a598: 4633 mov r3, r6 - 801a59a: 462a mov r2, r5 - 801a59c: 68f9 ldr r1, [r7, #12] - 801a59e: 47a0 blx r4 - for(x = 0; x < w; x++) { - 801a5a0: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a5a2: 3301 adds r3, #1 - 801a5a4: 627b str r3, [r7, #36] ; 0x24 - 801a5a6: 6a7a ldr r2, [r7, #36] ; 0x24 - 801a5a8: 69bb ldr r3, [r7, #24] - 801a5aa: 429a cmp r2, r3 - 801a5ac: dbd0 blt.n 801a550 - opa); - } - src_buf += src_stride; - 801a5ae: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 - 801a5b2: 005b lsls r3, r3, #1 - 801a5b4: 683a ldr r2, [r7, #0] - 801a5b6: 4413 add r3, r2 - 801a5b8: 603b str r3, [r7, #0] - for(y = 0; y < h; y++) { - 801a5ba: 6a3b ldr r3, [r7, #32] - 801a5bc: 3301 adds r3, #1 - 801a5be: 623b str r3, [r7, #32] - 801a5c0: 6a3a ldr r2, [r7, #32] - 801a5c2: 697b ldr r3, [r7, #20] - 801a5c4: 429a cmp r2, r3 - 801a5c6: dbc0 blt.n 801a54a - } - mask += mask_stride; - src_buf += src_stride; - } - } -} - 801a5c8: e056 b.n 801a678 - for(y = 0; y < h; y++) { - 801a5ca: 2300 movs r3, #0 - 801a5cc: 623b str r3, [r7, #32] - 801a5ce: e04f b.n 801a670 - for(x = 0; x < w; x++) { - 801a5d0: 2300 movs r3, #0 - 801a5d2: 627b str r3, [r7, #36] ; 0x24 - 801a5d4: e03a b.n 801a64c - if(mask[x]) { - 801a5d6: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a5d8: 6cba ldr r2, [r7, #72] ; 0x48 - 801a5da: 4413 add r3, r2 - 801a5dc: 781b ldrb r3, [r3, #0] - 801a5de: 2b00 cmp r3, #0 - 801a5e0: d031 beq.n 801a646 - disp->driver->set_px_cb(disp->driver, (void *)dest_buf, dest_stride, dest_area->x1 + x, dest_area->y1 + y, src_buf[x], - 801a5e2: 69fb ldr r3, [r7, #28] - 801a5e4: 681b ldr r3, [r3, #0] - 801a5e6: 69dc ldr r4, [r3, #28] - 801a5e8: 69fb ldr r3, [r7, #28] - 801a5ea: 681e ldr r6, [r3, #0] - 801a5ec: 68bb ldr r3, [r7, #8] - 801a5ee: f9b3 3000 ldrsh.w r3, [r3] - 801a5f2: b29a uxth r2, r3 - 801a5f4: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a5f6: b29b uxth r3, r3 - 801a5f8: 4413 add r3, r2 - 801a5fa: b29b uxth r3, r3 - 801a5fc: fa0f fc83 sxth.w ip, r3 - 801a600: 68bb ldr r3, [r7, #8] - 801a602: f9b3 3002 ldrsh.w r3, [r3, #2] - 801a606: b29a uxth r2, r3 - 801a608: 6a3b ldr r3, [r7, #32] - 801a60a: b29b uxth r3, r3 - 801a60c: 4413 add r3, r2 - 801a60e: b29b uxth r3, r3 - 801a610: b21b sxth r3, r3 - 801a612: 6a7a ldr r2, [r7, #36] ; 0x24 - 801a614: 0052 lsls r2, r2, #1 - 801a616: 6839 ldr r1, [r7, #0] - 801a618: 440a add r2, r1 (uint32_t)((uint32_t)opa * mask[x]) >> 8); - 801a61a: f897 1044 ldrb.w r1, [r7, #68] ; 0x44 - 801a61e: 6a78 ldr r0, [r7, #36] ; 0x24 - 801a620: 6cbd ldr r5, [r7, #72] ; 0x48 - 801a622: 4428 add r0, r5 - 801a624: 7800 ldrb r0, [r0, #0] - 801a626: fb00 f101 mul.w r1, r0, r1 - 801a62a: 0a09 lsrs r1, r1, #8 + 801a586: f897 1044 ldrb.w r1, [r7, #68] ; 0x44 + 801a58a: 6a78 ldr r0, [r7, #36] ; 0x24 + 801a58c: 6cbd ldr r5, [r7, #72] ; 0x48 + 801a58e: 4428 add r0, r5 + 801a590: 7800 ldrb r0, [r0, #0] + 801a592: fb00 f101 mul.w r1, r0, r1 + 801a596: 0a09 lsrs r1, r1, #8 disp->driver->set_px_cb(disp->driver, (void *)dest_buf, dest_stride, dest_area->x1 + x, dest_area->y1 + y, src_buf[x], - 801a62c: b2c9 uxtb r1, r1 - 801a62e: f9b7 0006 ldrsh.w r0, [r7, #6] - 801a632: 9102 str r1, [sp, #8] - 801a634: 8812 ldrh r2, [r2, #0] - 801a636: f8ad 2004 strh.w r2, [sp, #4] - 801a63a: 9300 str r3, [sp, #0] - 801a63c: 4663 mov r3, ip - 801a63e: 4602 mov r2, r0 - 801a640: 68f9 ldr r1, [r7, #12] - 801a642: 4630 mov r0, r6 - 801a644: 47a0 blx r4 + 801a598: b2c9 uxtb r1, r1 + 801a59a: f9b7 0006 ldrsh.w r0, [r7, #6] + 801a59e: 9102 str r1, [sp, #8] + 801a5a0: 8812 ldrh r2, [r2, #0] + 801a5a2: f8ad 2004 strh.w r2, [sp, #4] + 801a5a6: 9300 str r3, [sp, #0] + 801a5a8: 4663 mov r3, ip + 801a5aa: 4602 mov r2, r0 + 801a5ac: 68f9 ldr r1, [r7, #12] + 801a5ae: 4630 mov r0, r6 + 801a5b0: 47a0 blx r4 for(x = 0; x < w; x++) { - 801a646: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a648: 3301 adds r3, #1 - 801a64a: 627b str r3, [r7, #36] ; 0x24 - 801a64c: 6a7a ldr r2, [r7, #36] ; 0x24 - 801a64e: 69bb ldr r3, [r7, #24] - 801a650: 429a cmp r2, r3 - 801a652: dbc0 blt.n 801a5d6 + 801a5b2: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a5b4: 3301 adds r3, #1 + 801a5b6: 627b str r3, [r7, #36] ; 0x24 + 801a5b8: 6a7a ldr r2, [r7, #36] ; 0x24 + 801a5ba: 69bb ldr r3, [r7, #24] + 801a5bc: 429a cmp r2, r3 + 801a5be: dbc0 blt.n 801a542 mask += mask_stride; - 801a654: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 801a658: 6cba ldr r2, [r7, #72] ; 0x48 - 801a65a: 4413 add r3, r2 - 801a65c: 64bb str r3, [r7, #72] ; 0x48 + 801a5c0: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 801a5c4: 6cba ldr r2, [r7, #72] ; 0x48 + 801a5c6: 4413 add r3, r2 + 801a5c8: 64bb str r3, [r7, #72] ; 0x48 src_buf += src_stride; - 801a65e: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 - 801a662: 005b lsls r3, r3, #1 - 801a664: 683a ldr r2, [r7, #0] - 801a666: 4413 add r3, r2 - 801a668: 603b str r3, [r7, #0] + 801a5ca: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 + 801a5ce: 005b lsls r3, r3, #1 + 801a5d0: 683a ldr r2, [r7, #0] + 801a5d2: 4413 add r3, r2 + 801a5d4: 603b str r3, [r7, #0] for(y = 0; y < h; y++) { - 801a66a: 6a3b ldr r3, [r7, #32] - 801a66c: 3301 adds r3, #1 - 801a66e: 623b str r3, [r7, #32] - 801a670: 6a3a ldr r2, [r7, #32] - 801a672: 697b ldr r3, [r7, #20] - 801a674: 429a cmp r2, r3 - 801a676: dbab blt.n 801a5d0 + 801a5d6: 6a3b ldr r3, [r7, #32] + 801a5d8: 3301 adds r3, #1 + 801a5da: 623b str r3, [r7, #32] + 801a5dc: 6a3a ldr r2, [r7, #32] + 801a5de: 697b ldr r3, [r7, #20] + 801a5e0: 429a cmp r2, r3 + 801a5e2: dbab blt.n 801a53c } - 801a678: bf00 nop - 801a67a: 372c adds r7, #44 ; 0x2c - 801a67c: 46bd mov sp, r7 - 801a67e: bdf0 pop {r4, r5, r6, r7, pc} + 801a5e4: bf00 nop + 801a5e6: 372c adds r7, #44 ; 0x2c + 801a5e8: 46bd mov sp, r7 + 801a5ea: bdf0 pop {r4, r5, r6, r7, pc} -0801a680 : +0801a5ec : LV_ATTRIBUTE_FAST_MEM static void map_normal(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride) { - 801a680: b5b0 push {r4, r5, r7, lr} - 801a682: b08c sub sp, #48 ; 0x30 - 801a684: af00 add r7, sp, #0 - 801a686: 60f8 str r0, [r7, #12] - 801a688: 60b9 str r1, [r7, #8] - 801a68a: 603b str r3, [r7, #0] - 801a68c: 4613 mov r3, r2 - 801a68e: 80fb strh r3, [r7, #6] + 801a5ec: b5b0 push {r4, r5, r7, lr} + 801a5ee: b08c sub sp, #48 ; 0x30 + 801a5f0: af00 add r7, sp, #0 + 801a5f2: 60f8 str r0, [r7, #12] + 801a5f4: 60b9 str r1, [r7, #8] + 801a5f6: 603b str r3, [r7, #0] + 801a5f8: 4613 mov r3, r2 + 801a5fa: 80fb strh r3, [r7, #6] int32_t w = lv_area_get_width(dest_area); - 801a690: 68b8 ldr r0, [r7, #8] - 801a692: f7ff f9d2 bl 8019a3a - 801a696: 4603 mov r3, r0 - 801a698: 61fb str r3, [r7, #28] + 801a5fc: 68b8 ldr r0, [r7, #8] + 801a5fe: f7ff f9d2 bl 80199a6 + 801a602: 4603 mov r3, r0 + 801a604: 61fb str r3, [r7, #28] int32_t h = lv_area_get_height(dest_area); - 801a69a: 68b8 ldr r0, [r7, #8] - 801a69c: f7ff f9e3 bl 8019a66 - 801a6a0: 4603 mov r3, r0 - 801a6a2: 61bb str r3, [r7, #24] + 801a606: 68b8 ldr r0, [r7, #8] + 801a608: f7ff f9e3 bl 80199d2 + 801a60c: 4603 mov r3, r0 + 801a60e: 61bb str r3, [r7, #24] #if LV_COLOR_SCREEN_TRANSP lv_disp_t * disp = _lv_refr_get_disp_refreshing(); #endif /*Simple fill (maybe with opacity), no masking*/ if(mask == NULL) { - 801a6a4: 6cbb ldr r3, [r7, #72] ; 0x48 - 801a6a6: 2b00 cmp r3, #0 - 801a6a8: d156 bne.n 801a758 + 801a610: 6cbb ldr r3, [r7, #72] ; 0x48 + 801a612: 2b00 cmp r3, #0 + 801a614: d156 bne.n 801a6c4 if(opa >= LV_OPA_MAX) { - 801a6aa: f897 3044 ldrb.w r3, [r7, #68] ; 0x44 - 801a6ae: 2bfc cmp r3, #252 ; 0xfc - 801a6b0: d91d bls.n 801a6ee + 801a616: f897 3044 ldrb.w r3, [r7, #68] ; 0x44 + 801a61a: 2bfc cmp r3, #252 ; 0xfc + 801a61c: d91d bls.n 801a65a for(y = 0; y < h; y++) { - 801a6b2: 2300 movs r3, #0 - 801a6b4: 62bb str r3, [r7, #40] ; 0x28 - 801a6b6: e015 b.n 801a6e4 + 801a61e: 2300 movs r3, #0 + 801a620: 62bb str r3, [r7, #40] ; 0x28 + 801a622: e015 b.n 801a650 lv_memcpy(dest_buf, src_buf, w * sizeof(lv_color_t)); - 801a6b8: 69fb ldr r3, [r7, #28] - 801a6ba: 005b lsls r3, r3, #1 - 801a6bc: 461a mov r2, r3 - 801a6be: 6839 ldr r1, [r7, #0] - 801a6c0: 68f8 ldr r0, [r7, #12] - 801a6c2: f018 faa1 bl 8032c08 + 801a624: 69fb ldr r3, [r7, #28] + 801a626: 005b lsls r3, r3, #1 + 801a628: 461a mov r2, r3 + 801a62a: 6839 ldr r1, [r7, #0] + 801a62c: 68f8 ldr r0, [r7, #12] + 801a62e: f018 faa1 bl 8032b74 dest_buf += dest_stride; - 801a6c6: f9b7 3006 ldrsh.w r3, [r7, #6] - 801a6ca: 005b lsls r3, r3, #1 - 801a6cc: 68fa ldr r2, [r7, #12] - 801a6ce: 4413 add r3, r2 - 801a6d0: 60fb str r3, [r7, #12] + 801a632: f9b7 3006 ldrsh.w r3, [r7, #6] + 801a636: 005b lsls r3, r3, #1 + 801a638: 68fa ldr r2, [r7, #12] + 801a63a: 4413 add r3, r2 + 801a63c: 60fb str r3, [r7, #12] src_buf += src_stride; - 801a6d2: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 - 801a6d6: 005b lsls r3, r3, #1 - 801a6d8: 683a ldr r2, [r7, #0] - 801a6da: 4413 add r3, r2 - 801a6dc: 603b str r3, [r7, #0] + 801a63e: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 + 801a642: 005b lsls r3, r3, #1 + 801a644: 683a ldr r2, [r7, #0] + 801a646: 4413 add r3, r2 + 801a648: 603b str r3, [r7, #0] for(y = 0; y < h; y++) { - 801a6de: 6abb ldr r3, [r7, #40] ; 0x28 - 801a6e0: 3301 adds r3, #1 - 801a6e2: 62bb str r3, [r7, #40] ; 0x28 - 801a6e4: 6aba ldr r2, [r7, #40] ; 0x28 - 801a6e6: 69bb ldr r3, [r7, #24] - 801a6e8: 429a cmp r2, r3 - 801a6ea: dbe5 blt.n 801a6b8 + 801a64a: 6abb ldr r3, [r7, #40] ; 0x28 + 801a64c: 3301 adds r3, #1 + 801a64e: 62bb str r3, [r7, #40] ; 0x28 + 801a650: 6aba ldr r2, [r7, #40] ; 0x28 + 801a652: 69bb ldr r3, [r7, #24] + 801a654: 429a cmp r2, r3 + 801a656: dbe5 blt.n 801a624 src_buf += src_stride; mask += mask_stride; } } } } - 801a6ec: e220 b.n 801ab30 + 801a658: e220 b.n 801aa9c for(y = 0; y < h; y++) { - 801a6ee: 2300 movs r3, #0 - 801a6f0: 62bb str r3, [r7, #40] ; 0x28 - 801a6f2: e02c b.n 801a74e + 801a65a: 2300 movs r3, #0 + 801a65c: 62bb str r3, [r7, #40] ; 0x28 + 801a65e: e02c b.n 801a6ba for(x = 0; x < w; x++) { - 801a6f4: 2300 movs r3, #0 - 801a6f6: 62fb str r3, [r7, #44] ; 0x2c - 801a6f8: e016 b.n 801a728 + 801a660: 2300 movs r3, #0 + 801a662: 62fb str r3, [r7, #44] ; 0x2c + 801a664: e016 b.n 801a694 dest_buf[x] = lv_color_mix(src_buf[x], dest_buf[x], opa); - 801a6fa: 6afb ldr r3, [r7, #44] ; 0x2c - 801a6fc: 005b lsls r3, r3, #1 - 801a6fe: 683a ldr r2, [r7, #0] - 801a700: 4413 add r3, r2 - 801a702: 6afa ldr r2, [r7, #44] ; 0x2c - 801a704: 0052 lsls r2, r2, #1 - 801a706: 68f9 ldr r1, [r7, #12] - 801a708: 4411 add r1, r2 - 801a70a: 6afa ldr r2, [r7, #44] ; 0x2c - 801a70c: 0052 lsls r2, r2, #1 - 801a70e: 68f8 ldr r0, [r7, #12] - 801a710: 1884 adds r4, r0, r2 - 801a712: f897 2044 ldrb.w r2, [r7, #68] ; 0x44 - 801a716: 8809 ldrh r1, [r1, #0] - 801a718: 8818 ldrh r0, [r3, #0] - 801a71a: f7ff f891 bl 8019840 - 801a71e: 4603 mov r3, r0 - 801a720: 8023 strh r3, [r4, #0] + 801a666: 6afb ldr r3, [r7, #44] ; 0x2c + 801a668: 005b lsls r3, r3, #1 + 801a66a: 683a ldr r2, [r7, #0] + 801a66c: 4413 add r3, r2 + 801a66e: 6afa ldr r2, [r7, #44] ; 0x2c + 801a670: 0052 lsls r2, r2, #1 + 801a672: 68f9 ldr r1, [r7, #12] + 801a674: 4411 add r1, r2 + 801a676: 6afa ldr r2, [r7, #44] ; 0x2c + 801a678: 0052 lsls r2, r2, #1 + 801a67a: 68f8 ldr r0, [r7, #12] + 801a67c: 1884 adds r4, r0, r2 + 801a67e: f897 2044 ldrb.w r2, [r7, #68] ; 0x44 + 801a682: 8809 ldrh r1, [r1, #0] + 801a684: 8818 ldrh r0, [r3, #0] + 801a686: f7ff f891 bl 80197ac + 801a68a: 4603 mov r3, r0 + 801a68c: 8023 strh r3, [r4, #0] for(x = 0; x < w; x++) { - 801a722: 6afb ldr r3, [r7, #44] ; 0x2c - 801a724: 3301 adds r3, #1 - 801a726: 62fb str r3, [r7, #44] ; 0x2c - 801a728: 6afa ldr r2, [r7, #44] ; 0x2c - 801a72a: 69fb ldr r3, [r7, #28] - 801a72c: 429a cmp r2, r3 - 801a72e: dbe4 blt.n 801a6fa + 801a68e: 6afb ldr r3, [r7, #44] ; 0x2c + 801a690: 3301 adds r3, #1 + 801a692: 62fb str r3, [r7, #44] ; 0x2c + 801a694: 6afa ldr r2, [r7, #44] ; 0x2c + 801a696: 69fb ldr r3, [r7, #28] + 801a698: 429a cmp r2, r3 + 801a69a: dbe4 blt.n 801a666 dest_buf += dest_stride; - 801a730: f9b7 3006 ldrsh.w r3, [r7, #6] - 801a734: 005b lsls r3, r3, #1 - 801a736: 68fa ldr r2, [r7, #12] - 801a738: 4413 add r3, r2 - 801a73a: 60fb str r3, [r7, #12] + 801a69c: f9b7 3006 ldrsh.w r3, [r7, #6] + 801a6a0: 005b lsls r3, r3, #1 + 801a6a2: 68fa ldr r2, [r7, #12] + 801a6a4: 4413 add r3, r2 + 801a6a6: 60fb str r3, [r7, #12] src_buf += src_stride; - 801a73c: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 - 801a740: 005b lsls r3, r3, #1 - 801a742: 683a ldr r2, [r7, #0] - 801a744: 4413 add r3, r2 - 801a746: 603b str r3, [r7, #0] + 801a6a8: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 + 801a6ac: 005b lsls r3, r3, #1 + 801a6ae: 683a ldr r2, [r7, #0] + 801a6b0: 4413 add r3, r2 + 801a6b2: 603b str r3, [r7, #0] for(y = 0; y < h; y++) { - 801a748: 6abb ldr r3, [r7, #40] ; 0x28 - 801a74a: 3301 adds r3, #1 - 801a74c: 62bb str r3, [r7, #40] ; 0x28 - 801a74e: 6aba ldr r2, [r7, #40] ; 0x28 - 801a750: 69bb ldr r3, [r7, #24] - 801a752: 429a cmp r2, r3 - 801a754: dbce blt.n 801a6f4 + 801a6b4: 6abb ldr r3, [r7, #40] ; 0x28 + 801a6b6: 3301 adds r3, #1 + 801a6b8: 62bb str r3, [r7, #40] ; 0x28 + 801a6ba: 6aba ldr r2, [r7, #40] ; 0x28 + 801a6bc: 69bb ldr r3, [r7, #24] + 801a6be: 429a cmp r2, r3 + 801a6c0: dbce blt.n 801a660 } - 801a756: e1eb b.n 801ab30 + 801a6c2: e1eb b.n 801aa9c if(opa > LV_OPA_MAX) { - 801a758: f897 3044 ldrb.w r3, [r7, #68] ; 0x44 - 801a75c: 2bfd cmp r3, #253 ; 0xfd - 801a75e: f240 8195 bls.w 801aa8c + 801a6c4: f897 3044 ldrb.w r3, [r7, #68] ; 0x44 + 801a6c8: 2bfd cmp r3, #253 ; 0xfd + 801a6ca: f240 8195 bls.w 801a9f8 int32_t x_end4 = w - 4; - 801a762: 69fb ldr r3, [r7, #28] - 801a764: 3b04 subs r3, #4 - 801a766: 613b str r3, [r7, #16] + 801a6ce: 69fb ldr r3, [r7, #28] + 801a6d0: 3b04 subs r3, #4 + 801a6d2: 613b str r3, [r7, #16] for(y = 0; y < h; y++) { - 801a768: 2300 movs r3, #0 - 801a76a: 62bb str r3, [r7, #40] ; 0x28 - 801a76c: e188 b.n 801aa80 + 801a6d4: 2300 movs r3, #0 + 801a6d6: 62bb str r3, [r7, #40] ; 0x28 + 801a6d8: e188 b.n 801a9ec const lv_opa_t * mask_tmp_x = mask; - 801a76e: 6cbb ldr r3, [r7, #72] ; 0x48 - 801a770: 627b str r3, [r7, #36] ; 0x24 + 801a6da: 6cbb ldr r3, [r7, #72] ; 0x48 + 801a6dc: 627b str r3, [r7, #36] ; 0x24 for(x = 0; x < w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) { - 801a772: 2300 movs r3, #0 - 801a774: 62fb str r3, [r7, #44] ; 0x2c - 801a776: e02d b.n 801a7d4 + 801a6de: 2300 movs r3, #0 + 801a6e0: 62fb str r3, [r7, #44] ; 0x2c + 801a6e2: e02d b.n 801a740 MAP_NORMAL_MASK_PX(x) - 801a778: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a77a: 781b ldrb r3, [r3, #0] - 801a77c: 2b00 cmp r3, #0 - 801a77e: d023 beq.n 801a7c8 - 801a780: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a782: 781b ldrb r3, [r3, #0] - 801a784: 2bff cmp r3, #255 ; 0xff - 801a786: d10a bne.n 801a79e - 801a788: 6afb ldr r3, [r7, #44] ; 0x2c - 801a78a: 005b lsls r3, r3, #1 - 801a78c: 683a ldr r2, [r7, #0] - 801a78e: 441a add r2, r3 - 801a790: 6afb ldr r3, [r7, #44] ; 0x2c - 801a792: 005b lsls r3, r3, #1 - 801a794: 68f9 ldr r1, [r7, #12] - 801a796: 440b add r3, r1 - 801a798: 8812 ldrh r2, [r2, #0] - 801a79a: 801a strh r2, [r3, #0] - 801a79c: e014 b.n 801a7c8 - 801a79e: 6afb ldr r3, [r7, #44] ; 0x2c - 801a7a0: 005b lsls r3, r3, #1 - 801a7a2: 683a ldr r2, [r7, #0] - 801a7a4: 4413 add r3, r2 - 801a7a6: 6afa ldr r2, [r7, #44] ; 0x2c - 801a7a8: 0052 lsls r2, r2, #1 - 801a7aa: 68f9 ldr r1, [r7, #12] - 801a7ac: 4411 add r1, r2 - 801a7ae: 6a7a ldr r2, [r7, #36] ; 0x24 - 801a7b0: 7815 ldrb r5, [r2, #0] - 801a7b2: 6afa ldr r2, [r7, #44] ; 0x2c - 801a7b4: 0052 lsls r2, r2, #1 - 801a7b6: 68f8 ldr r0, [r7, #12] - 801a7b8: 1884 adds r4, r0, r2 - 801a7ba: 462a mov r2, r5 - 801a7bc: 8809 ldrh r1, [r1, #0] - 801a7be: 8818 ldrh r0, [r3, #0] - 801a7c0: f7ff f83e bl 8019840 - 801a7c4: 4603 mov r3, r0 - 801a7c6: 8023 strh r3, [r4, #0] - 801a7c8: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a7ca: 3301 adds r3, #1 - 801a7cc: 627b str r3, [r7, #36] ; 0x24 + 801a6e4: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a6e6: 781b ldrb r3, [r3, #0] + 801a6e8: 2b00 cmp r3, #0 + 801a6ea: d023 beq.n 801a734 + 801a6ec: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a6ee: 781b ldrb r3, [r3, #0] + 801a6f0: 2bff cmp r3, #255 ; 0xff + 801a6f2: d10a bne.n 801a70a + 801a6f4: 6afb ldr r3, [r7, #44] ; 0x2c + 801a6f6: 005b lsls r3, r3, #1 + 801a6f8: 683a ldr r2, [r7, #0] + 801a6fa: 441a add r2, r3 + 801a6fc: 6afb ldr r3, [r7, #44] ; 0x2c + 801a6fe: 005b lsls r3, r3, #1 + 801a700: 68f9 ldr r1, [r7, #12] + 801a702: 440b add r3, r1 + 801a704: 8812 ldrh r2, [r2, #0] + 801a706: 801a strh r2, [r3, #0] + 801a708: e014 b.n 801a734 + 801a70a: 6afb ldr r3, [r7, #44] ; 0x2c + 801a70c: 005b lsls r3, r3, #1 + 801a70e: 683a ldr r2, [r7, #0] + 801a710: 4413 add r3, r2 + 801a712: 6afa ldr r2, [r7, #44] ; 0x2c + 801a714: 0052 lsls r2, r2, #1 + 801a716: 68f9 ldr r1, [r7, #12] + 801a718: 4411 add r1, r2 + 801a71a: 6a7a ldr r2, [r7, #36] ; 0x24 + 801a71c: 7815 ldrb r5, [r2, #0] + 801a71e: 6afa ldr r2, [r7, #44] ; 0x2c + 801a720: 0052 lsls r2, r2, #1 + 801a722: 68f8 ldr r0, [r7, #12] + 801a724: 1884 adds r4, r0, r2 + 801a726: 462a mov r2, r5 + 801a728: 8809 ldrh r1, [r1, #0] + 801a72a: 8818 ldrh r0, [r3, #0] + 801a72c: f7ff f83e bl 80197ac + 801a730: 4603 mov r3, r0 + 801a732: 8023 strh r3, [r4, #0] + 801a734: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a736: 3301 adds r3, #1 + 801a738: 627b str r3, [r7, #36] ; 0x24 for(x = 0; x < w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) { - 801a7ce: 6afb ldr r3, [r7, #44] ; 0x2c - 801a7d0: 3301 adds r3, #1 - 801a7d2: 62fb str r3, [r7, #44] ; 0x2c - 801a7d4: 6afa ldr r2, [r7, #44] ; 0x2c - 801a7d6: 69fb ldr r3, [r7, #28] - 801a7d8: 429a cmp r2, r3 - 801a7da: da04 bge.n 801a7e6 - 801a7dc: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a7de: f003 0303 and.w r3, r3, #3 - 801a7e2: 2b00 cmp r3, #0 - 801a7e4: d1c8 bne.n 801a778 + 801a73a: 6afb ldr r3, [r7, #44] ; 0x2c + 801a73c: 3301 adds r3, #1 + 801a73e: 62fb str r3, [r7, #44] ; 0x2c + 801a740: 6afa ldr r2, [r7, #44] ; 0x2c + 801a742: 69fb ldr r3, [r7, #28] + 801a744: 429a cmp r2, r3 + 801a746: da04 bge.n 801a752 + 801a748: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a74a: f003 0303 and.w r3, r3, #3 + 801a74e: 2b00 cmp r3, #0 + 801a750: d1c8 bne.n 801a6e4 uint32_t * mask32 = (uint32_t *)mask_tmp_x; - 801a7e6: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a7e8: 623b str r3, [r7, #32] + 801a752: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a754: 623b str r3, [r7, #32] for(; x < x_end4; x += 4) { - 801a7ea: e0fb b.n 801a9e4 + 801a756: e0fb b.n 801a950 if(*mask32) { - 801a7ec: 6a3b ldr r3, [r7, #32] - 801a7ee: 681b ldr r3, [r3, #0] - 801a7f0: 2b00 cmp r3, #0 - 801a7f2: f000 80f1 beq.w 801a9d8 + 801a758: 6a3b ldr r3, [r7, #32] + 801a75a: 681b ldr r3, [r3, #0] + 801a75c: 2b00 cmp r3, #0 + 801a75e: f000 80f1 beq.w 801a944 if((*mask32) == 0xFFFFFFFF) { - 801a7f6: 6a3b ldr r3, [r7, #32] - 801a7f8: 681b ldr r3, [r3, #0] - 801a7fa: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 801a7fe: d12e bne.n 801a85e + 801a762: 6a3b ldr r3, [r7, #32] + 801a764: 681b ldr r3, [r3, #0] + 801a766: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 801a76a: d12e bne.n 801a7ca dest_buf[x] = src_buf[x]; - 801a800: 6afb ldr r3, [r7, #44] ; 0x2c - 801a802: 005b lsls r3, r3, #1 - 801a804: 683a ldr r2, [r7, #0] - 801a806: 441a add r2, r3 - 801a808: 6afb ldr r3, [r7, #44] ; 0x2c - 801a80a: 005b lsls r3, r3, #1 - 801a80c: 68f9 ldr r1, [r7, #12] - 801a80e: 440b add r3, r1 - 801a810: 8812 ldrh r2, [r2, #0] - 801a812: 801a strh r2, [r3, #0] + 801a76c: 6afb ldr r3, [r7, #44] ; 0x2c + 801a76e: 005b lsls r3, r3, #1 + 801a770: 683a ldr r2, [r7, #0] + 801a772: 441a add r2, r3 + 801a774: 6afb ldr r3, [r7, #44] ; 0x2c + 801a776: 005b lsls r3, r3, #1 + 801a778: 68f9 ldr r1, [r7, #12] + 801a77a: 440b add r3, r1 + 801a77c: 8812 ldrh r2, [r2, #0] + 801a77e: 801a strh r2, [r3, #0] dest_buf[x + 1] = src_buf[x + 1]; - 801a814: 6afb ldr r3, [r7, #44] ; 0x2c - 801a816: 3301 adds r3, #1 - 801a818: 005b lsls r3, r3, #1 - 801a81a: 683a ldr r2, [r7, #0] - 801a81c: 441a add r2, r3 - 801a81e: 6afb ldr r3, [r7, #44] ; 0x2c - 801a820: 3301 adds r3, #1 - 801a822: 005b lsls r3, r3, #1 - 801a824: 68f9 ldr r1, [r7, #12] - 801a826: 440b add r3, r1 - 801a828: 8812 ldrh r2, [r2, #0] - 801a82a: 801a strh r2, [r3, #0] + 801a780: 6afb ldr r3, [r7, #44] ; 0x2c + 801a782: 3301 adds r3, #1 + 801a784: 005b lsls r3, r3, #1 + 801a786: 683a ldr r2, [r7, #0] + 801a788: 441a add r2, r3 + 801a78a: 6afb ldr r3, [r7, #44] ; 0x2c + 801a78c: 3301 adds r3, #1 + 801a78e: 005b lsls r3, r3, #1 + 801a790: 68f9 ldr r1, [r7, #12] + 801a792: 440b add r3, r1 + 801a794: 8812 ldrh r2, [r2, #0] + 801a796: 801a strh r2, [r3, #0] dest_buf[x + 2] = src_buf[x + 2]; - 801a82c: 6afb ldr r3, [r7, #44] ; 0x2c - 801a82e: 3302 adds r3, #2 - 801a830: 005b lsls r3, r3, #1 - 801a832: 683a ldr r2, [r7, #0] - 801a834: 441a add r2, r3 - 801a836: 6afb ldr r3, [r7, #44] ; 0x2c - 801a838: 3302 adds r3, #2 - 801a83a: 005b lsls r3, r3, #1 - 801a83c: 68f9 ldr r1, [r7, #12] - 801a83e: 440b add r3, r1 - 801a840: 8812 ldrh r2, [r2, #0] - 801a842: 801a strh r2, [r3, #0] + 801a798: 6afb ldr r3, [r7, #44] ; 0x2c + 801a79a: 3302 adds r3, #2 + 801a79c: 005b lsls r3, r3, #1 + 801a79e: 683a ldr r2, [r7, #0] + 801a7a0: 441a add r2, r3 + 801a7a2: 6afb ldr r3, [r7, #44] ; 0x2c + 801a7a4: 3302 adds r3, #2 + 801a7a6: 005b lsls r3, r3, #1 + 801a7a8: 68f9 ldr r1, [r7, #12] + 801a7aa: 440b add r3, r1 + 801a7ac: 8812 ldrh r2, [r2, #0] + 801a7ae: 801a strh r2, [r3, #0] dest_buf[x + 3] = src_buf[x + 3]; - 801a844: 6afb ldr r3, [r7, #44] ; 0x2c - 801a846: 3303 adds r3, #3 - 801a848: 005b lsls r3, r3, #1 - 801a84a: 683a ldr r2, [r7, #0] - 801a84c: 441a add r2, r3 - 801a84e: 6afb ldr r3, [r7, #44] ; 0x2c - 801a850: 3303 adds r3, #3 - 801a852: 005b lsls r3, r3, #1 - 801a854: 68f9 ldr r1, [r7, #12] - 801a856: 440b add r3, r1 - 801a858: 8812 ldrh r2, [r2, #0] - 801a85a: 801a strh r2, [r3, #0] - 801a85c: e0bc b.n 801a9d8 + 801a7b0: 6afb ldr r3, [r7, #44] ; 0x2c + 801a7b2: 3303 adds r3, #3 + 801a7b4: 005b lsls r3, r3, #1 + 801a7b6: 683a ldr r2, [r7, #0] + 801a7b8: 441a add r2, r3 + 801a7ba: 6afb ldr r3, [r7, #44] ; 0x2c + 801a7bc: 3303 adds r3, #3 + 801a7be: 005b lsls r3, r3, #1 + 801a7c0: 68f9 ldr r1, [r7, #12] + 801a7c2: 440b add r3, r1 + 801a7c4: 8812 ldrh r2, [r2, #0] + 801a7c6: 801a strh r2, [r3, #0] + 801a7c8: e0bc b.n 801a944 mask_tmp_x = (const lv_opa_t *)mask32; - 801a85e: 6a3b ldr r3, [r7, #32] - 801a860: 627b str r3, [r7, #36] ; 0x24 + 801a7ca: 6a3b ldr r3, [r7, #32] + 801a7cc: 627b str r3, [r7, #36] ; 0x24 MAP_NORMAL_MASK_PX(x) - 801a862: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a864: 781b ldrb r3, [r3, #0] - 801a866: 2b00 cmp r3, #0 - 801a868: d023 beq.n 801a8b2 - 801a86a: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a86c: 781b ldrb r3, [r3, #0] - 801a86e: 2bff cmp r3, #255 ; 0xff - 801a870: d10a bne.n 801a888 - 801a872: 6afb ldr r3, [r7, #44] ; 0x2c - 801a874: 005b lsls r3, r3, #1 - 801a876: 683a ldr r2, [r7, #0] - 801a878: 441a add r2, r3 - 801a87a: 6afb ldr r3, [r7, #44] ; 0x2c - 801a87c: 005b lsls r3, r3, #1 - 801a87e: 68f9 ldr r1, [r7, #12] - 801a880: 440b add r3, r1 - 801a882: 8812 ldrh r2, [r2, #0] - 801a884: 801a strh r2, [r3, #0] - 801a886: e014 b.n 801a8b2 - 801a888: 6afb ldr r3, [r7, #44] ; 0x2c - 801a88a: 005b lsls r3, r3, #1 - 801a88c: 683a ldr r2, [r7, #0] - 801a88e: 4413 add r3, r2 - 801a890: 6afa ldr r2, [r7, #44] ; 0x2c - 801a892: 0052 lsls r2, r2, #1 - 801a894: 68f9 ldr r1, [r7, #12] - 801a896: 4411 add r1, r2 - 801a898: 6a7a ldr r2, [r7, #36] ; 0x24 - 801a89a: 7815 ldrb r5, [r2, #0] - 801a89c: 6afa ldr r2, [r7, #44] ; 0x2c - 801a89e: 0052 lsls r2, r2, #1 - 801a8a0: 68f8 ldr r0, [r7, #12] - 801a8a2: 1884 adds r4, r0, r2 - 801a8a4: 462a mov r2, r5 - 801a8a6: 8809 ldrh r1, [r1, #0] - 801a8a8: 8818 ldrh r0, [r3, #0] - 801a8aa: f7fe ffc9 bl 8019840 - 801a8ae: 4603 mov r3, r0 - 801a8b0: 8023 strh r3, [r4, #0] - 801a8b2: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a8b4: 3301 adds r3, #1 - 801a8b6: 627b str r3, [r7, #36] ; 0x24 + 801a7ce: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a7d0: 781b ldrb r3, [r3, #0] + 801a7d2: 2b00 cmp r3, #0 + 801a7d4: d023 beq.n 801a81e + 801a7d6: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a7d8: 781b ldrb r3, [r3, #0] + 801a7da: 2bff cmp r3, #255 ; 0xff + 801a7dc: d10a bne.n 801a7f4 + 801a7de: 6afb ldr r3, [r7, #44] ; 0x2c + 801a7e0: 005b lsls r3, r3, #1 + 801a7e2: 683a ldr r2, [r7, #0] + 801a7e4: 441a add r2, r3 + 801a7e6: 6afb ldr r3, [r7, #44] ; 0x2c + 801a7e8: 005b lsls r3, r3, #1 + 801a7ea: 68f9 ldr r1, [r7, #12] + 801a7ec: 440b add r3, r1 + 801a7ee: 8812 ldrh r2, [r2, #0] + 801a7f0: 801a strh r2, [r3, #0] + 801a7f2: e014 b.n 801a81e + 801a7f4: 6afb ldr r3, [r7, #44] ; 0x2c + 801a7f6: 005b lsls r3, r3, #1 + 801a7f8: 683a ldr r2, [r7, #0] + 801a7fa: 4413 add r3, r2 + 801a7fc: 6afa ldr r2, [r7, #44] ; 0x2c + 801a7fe: 0052 lsls r2, r2, #1 + 801a800: 68f9 ldr r1, [r7, #12] + 801a802: 4411 add r1, r2 + 801a804: 6a7a ldr r2, [r7, #36] ; 0x24 + 801a806: 7815 ldrb r5, [r2, #0] + 801a808: 6afa ldr r2, [r7, #44] ; 0x2c + 801a80a: 0052 lsls r2, r2, #1 + 801a80c: 68f8 ldr r0, [r7, #12] + 801a80e: 1884 adds r4, r0, r2 + 801a810: 462a mov r2, r5 + 801a812: 8809 ldrh r1, [r1, #0] + 801a814: 8818 ldrh r0, [r3, #0] + 801a816: f7fe ffc9 bl 80197ac + 801a81a: 4603 mov r3, r0 + 801a81c: 8023 strh r3, [r4, #0] + 801a81e: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a820: 3301 adds r3, #1 + 801a822: 627b str r3, [r7, #36] ; 0x24 MAP_NORMAL_MASK_PX(x + 1) - 801a8b8: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a8ba: 781b ldrb r3, [r3, #0] - 801a8bc: 2b00 cmp r3, #0 - 801a8be: d028 beq.n 801a912 - 801a8c0: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a8c2: 781b ldrb r3, [r3, #0] - 801a8c4: 2bff cmp r3, #255 ; 0xff - 801a8c6: d10c bne.n 801a8e2 - 801a8c8: 6afb ldr r3, [r7, #44] ; 0x2c - 801a8ca: 3301 adds r3, #1 - 801a8cc: 005b lsls r3, r3, #1 - 801a8ce: 683a ldr r2, [r7, #0] - 801a8d0: 441a add r2, r3 - 801a8d2: 6afb ldr r3, [r7, #44] ; 0x2c - 801a8d4: 3301 adds r3, #1 - 801a8d6: 005b lsls r3, r3, #1 - 801a8d8: 68f9 ldr r1, [r7, #12] - 801a8da: 440b add r3, r1 - 801a8dc: 8812 ldrh r2, [r2, #0] - 801a8de: 801a strh r2, [r3, #0] - 801a8e0: e017 b.n 801a912 - 801a8e2: 6afb ldr r3, [r7, #44] ; 0x2c - 801a8e4: 3301 adds r3, #1 - 801a8e6: 005b lsls r3, r3, #1 - 801a8e8: 683a ldr r2, [r7, #0] - 801a8ea: 4413 add r3, r2 - 801a8ec: 6afa ldr r2, [r7, #44] ; 0x2c - 801a8ee: 3201 adds r2, #1 - 801a8f0: 0052 lsls r2, r2, #1 - 801a8f2: 68f9 ldr r1, [r7, #12] - 801a8f4: 4411 add r1, r2 - 801a8f6: 6a7a ldr r2, [r7, #36] ; 0x24 - 801a8f8: 7815 ldrb r5, [r2, #0] - 801a8fa: 6afa ldr r2, [r7, #44] ; 0x2c - 801a8fc: 3201 adds r2, #1 - 801a8fe: 0052 lsls r2, r2, #1 - 801a900: 68f8 ldr r0, [r7, #12] - 801a902: 1884 adds r4, r0, r2 - 801a904: 462a mov r2, r5 - 801a906: 8809 ldrh r1, [r1, #0] - 801a908: 8818 ldrh r0, [r3, #0] - 801a90a: f7fe ff99 bl 8019840 - 801a90e: 4603 mov r3, r0 - 801a910: 8023 strh r3, [r4, #0] - 801a912: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a914: 3301 adds r3, #1 - 801a916: 627b str r3, [r7, #36] ; 0x24 + 801a824: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a826: 781b ldrb r3, [r3, #0] + 801a828: 2b00 cmp r3, #0 + 801a82a: d028 beq.n 801a87e + 801a82c: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a82e: 781b ldrb r3, [r3, #0] + 801a830: 2bff cmp r3, #255 ; 0xff + 801a832: d10c bne.n 801a84e + 801a834: 6afb ldr r3, [r7, #44] ; 0x2c + 801a836: 3301 adds r3, #1 + 801a838: 005b lsls r3, r3, #1 + 801a83a: 683a ldr r2, [r7, #0] + 801a83c: 441a add r2, r3 + 801a83e: 6afb ldr r3, [r7, #44] ; 0x2c + 801a840: 3301 adds r3, #1 + 801a842: 005b lsls r3, r3, #1 + 801a844: 68f9 ldr r1, [r7, #12] + 801a846: 440b add r3, r1 + 801a848: 8812 ldrh r2, [r2, #0] + 801a84a: 801a strh r2, [r3, #0] + 801a84c: e017 b.n 801a87e + 801a84e: 6afb ldr r3, [r7, #44] ; 0x2c + 801a850: 3301 adds r3, #1 + 801a852: 005b lsls r3, r3, #1 + 801a854: 683a ldr r2, [r7, #0] + 801a856: 4413 add r3, r2 + 801a858: 6afa ldr r2, [r7, #44] ; 0x2c + 801a85a: 3201 adds r2, #1 + 801a85c: 0052 lsls r2, r2, #1 + 801a85e: 68f9 ldr r1, [r7, #12] + 801a860: 4411 add r1, r2 + 801a862: 6a7a ldr r2, [r7, #36] ; 0x24 + 801a864: 7815 ldrb r5, [r2, #0] + 801a866: 6afa ldr r2, [r7, #44] ; 0x2c + 801a868: 3201 adds r2, #1 + 801a86a: 0052 lsls r2, r2, #1 + 801a86c: 68f8 ldr r0, [r7, #12] + 801a86e: 1884 adds r4, r0, r2 + 801a870: 462a mov r2, r5 + 801a872: 8809 ldrh r1, [r1, #0] + 801a874: 8818 ldrh r0, [r3, #0] + 801a876: f7fe ff99 bl 80197ac + 801a87a: 4603 mov r3, r0 + 801a87c: 8023 strh r3, [r4, #0] + 801a87e: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a880: 3301 adds r3, #1 + 801a882: 627b str r3, [r7, #36] ; 0x24 MAP_NORMAL_MASK_PX(x + 2) - 801a918: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a91a: 781b ldrb r3, [r3, #0] - 801a91c: 2b00 cmp r3, #0 - 801a91e: d028 beq.n 801a972 - 801a920: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a922: 781b ldrb r3, [r3, #0] - 801a924: 2bff cmp r3, #255 ; 0xff - 801a926: d10c bne.n 801a942 - 801a928: 6afb ldr r3, [r7, #44] ; 0x2c - 801a92a: 3302 adds r3, #2 - 801a92c: 005b lsls r3, r3, #1 - 801a92e: 683a ldr r2, [r7, #0] - 801a930: 441a add r2, r3 - 801a932: 6afb ldr r3, [r7, #44] ; 0x2c - 801a934: 3302 adds r3, #2 - 801a936: 005b lsls r3, r3, #1 - 801a938: 68f9 ldr r1, [r7, #12] - 801a93a: 440b add r3, r1 - 801a93c: 8812 ldrh r2, [r2, #0] - 801a93e: 801a strh r2, [r3, #0] - 801a940: e017 b.n 801a972 - 801a942: 6afb ldr r3, [r7, #44] ; 0x2c - 801a944: 3302 adds r3, #2 - 801a946: 005b lsls r3, r3, #1 - 801a948: 683a ldr r2, [r7, #0] - 801a94a: 4413 add r3, r2 - 801a94c: 6afa ldr r2, [r7, #44] ; 0x2c - 801a94e: 3202 adds r2, #2 - 801a950: 0052 lsls r2, r2, #1 - 801a952: 68f9 ldr r1, [r7, #12] - 801a954: 4411 add r1, r2 - 801a956: 6a7a ldr r2, [r7, #36] ; 0x24 - 801a958: 7815 ldrb r5, [r2, #0] - 801a95a: 6afa ldr r2, [r7, #44] ; 0x2c - 801a95c: 3202 adds r2, #2 - 801a95e: 0052 lsls r2, r2, #1 - 801a960: 68f8 ldr r0, [r7, #12] - 801a962: 1884 adds r4, r0, r2 - 801a964: 462a mov r2, r5 - 801a966: 8809 ldrh r1, [r1, #0] - 801a968: 8818 ldrh r0, [r3, #0] - 801a96a: f7fe ff69 bl 8019840 - 801a96e: 4603 mov r3, r0 - 801a970: 8023 strh r3, [r4, #0] - 801a972: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a974: 3301 adds r3, #1 - 801a976: 627b str r3, [r7, #36] ; 0x24 + 801a884: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a886: 781b ldrb r3, [r3, #0] + 801a888: 2b00 cmp r3, #0 + 801a88a: d028 beq.n 801a8de + 801a88c: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a88e: 781b ldrb r3, [r3, #0] + 801a890: 2bff cmp r3, #255 ; 0xff + 801a892: d10c bne.n 801a8ae + 801a894: 6afb ldr r3, [r7, #44] ; 0x2c + 801a896: 3302 adds r3, #2 + 801a898: 005b lsls r3, r3, #1 + 801a89a: 683a ldr r2, [r7, #0] + 801a89c: 441a add r2, r3 + 801a89e: 6afb ldr r3, [r7, #44] ; 0x2c + 801a8a0: 3302 adds r3, #2 + 801a8a2: 005b lsls r3, r3, #1 + 801a8a4: 68f9 ldr r1, [r7, #12] + 801a8a6: 440b add r3, r1 + 801a8a8: 8812 ldrh r2, [r2, #0] + 801a8aa: 801a strh r2, [r3, #0] + 801a8ac: e017 b.n 801a8de + 801a8ae: 6afb ldr r3, [r7, #44] ; 0x2c + 801a8b0: 3302 adds r3, #2 + 801a8b2: 005b lsls r3, r3, #1 + 801a8b4: 683a ldr r2, [r7, #0] + 801a8b6: 4413 add r3, r2 + 801a8b8: 6afa ldr r2, [r7, #44] ; 0x2c + 801a8ba: 3202 adds r2, #2 + 801a8bc: 0052 lsls r2, r2, #1 + 801a8be: 68f9 ldr r1, [r7, #12] + 801a8c0: 4411 add r1, r2 + 801a8c2: 6a7a ldr r2, [r7, #36] ; 0x24 + 801a8c4: 7815 ldrb r5, [r2, #0] + 801a8c6: 6afa ldr r2, [r7, #44] ; 0x2c + 801a8c8: 3202 adds r2, #2 + 801a8ca: 0052 lsls r2, r2, #1 + 801a8cc: 68f8 ldr r0, [r7, #12] + 801a8ce: 1884 adds r4, r0, r2 + 801a8d0: 462a mov r2, r5 + 801a8d2: 8809 ldrh r1, [r1, #0] + 801a8d4: 8818 ldrh r0, [r3, #0] + 801a8d6: f7fe ff69 bl 80197ac + 801a8da: 4603 mov r3, r0 + 801a8dc: 8023 strh r3, [r4, #0] + 801a8de: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a8e0: 3301 adds r3, #1 + 801a8e2: 627b str r3, [r7, #36] ; 0x24 MAP_NORMAL_MASK_PX(x + 3) - 801a978: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a97a: 781b ldrb r3, [r3, #0] - 801a97c: 2b00 cmp r3, #0 - 801a97e: d028 beq.n 801a9d2 - 801a980: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a982: 781b ldrb r3, [r3, #0] - 801a984: 2bff cmp r3, #255 ; 0xff - 801a986: d10c bne.n 801a9a2 - 801a988: 6afb ldr r3, [r7, #44] ; 0x2c - 801a98a: 3303 adds r3, #3 - 801a98c: 005b lsls r3, r3, #1 - 801a98e: 683a ldr r2, [r7, #0] - 801a990: 441a add r2, r3 - 801a992: 6afb ldr r3, [r7, #44] ; 0x2c - 801a994: 3303 adds r3, #3 - 801a996: 005b lsls r3, r3, #1 - 801a998: 68f9 ldr r1, [r7, #12] - 801a99a: 440b add r3, r1 - 801a99c: 8812 ldrh r2, [r2, #0] - 801a99e: 801a strh r2, [r3, #0] - 801a9a0: e017 b.n 801a9d2 - 801a9a2: 6afb ldr r3, [r7, #44] ; 0x2c - 801a9a4: 3303 adds r3, #3 - 801a9a6: 005b lsls r3, r3, #1 - 801a9a8: 683a ldr r2, [r7, #0] - 801a9aa: 4413 add r3, r2 - 801a9ac: 6afa ldr r2, [r7, #44] ; 0x2c - 801a9ae: 3203 adds r2, #3 - 801a9b0: 0052 lsls r2, r2, #1 - 801a9b2: 68f9 ldr r1, [r7, #12] - 801a9b4: 4411 add r1, r2 - 801a9b6: 6a7a ldr r2, [r7, #36] ; 0x24 - 801a9b8: 7815 ldrb r5, [r2, #0] - 801a9ba: 6afa ldr r2, [r7, #44] ; 0x2c - 801a9bc: 3203 adds r2, #3 - 801a9be: 0052 lsls r2, r2, #1 - 801a9c0: 68f8 ldr r0, [r7, #12] - 801a9c2: 1884 adds r4, r0, r2 - 801a9c4: 462a mov r2, r5 - 801a9c6: 8809 ldrh r1, [r1, #0] - 801a9c8: 8818 ldrh r0, [r3, #0] - 801a9ca: f7fe ff39 bl 8019840 - 801a9ce: 4603 mov r3, r0 - 801a9d0: 8023 strh r3, [r4, #0] - 801a9d2: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a9d4: 3301 adds r3, #1 - 801a9d6: 627b str r3, [r7, #36] ; 0x24 + 801a8e4: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a8e6: 781b ldrb r3, [r3, #0] + 801a8e8: 2b00 cmp r3, #0 + 801a8ea: d028 beq.n 801a93e + 801a8ec: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a8ee: 781b ldrb r3, [r3, #0] + 801a8f0: 2bff cmp r3, #255 ; 0xff + 801a8f2: d10c bne.n 801a90e + 801a8f4: 6afb ldr r3, [r7, #44] ; 0x2c + 801a8f6: 3303 adds r3, #3 + 801a8f8: 005b lsls r3, r3, #1 + 801a8fa: 683a ldr r2, [r7, #0] + 801a8fc: 441a add r2, r3 + 801a8fe: 6afb ldr r3, [r7, #44] ; 0x2c + 801a900: 3303 adds r3, #3 + 801a902: 005b lsls r3, r3, #1 + 801a904: 68f9 ldr r1, [r7, #12] + 801a906: 440b add r3, r1 + 801a908: 8812 ldrh r2, [r2, #0] + 801a90a: 801a strh r2, [r3, #0] + 801a90c: e017 b.n 801a93e + 801a90e: 6afb ldr r3, [r7, #44] ; 0x2c + 801a910: 3303 adds r3, #3 + 801a912: 005b lsls r3, r3, #1 + 801a914: 683a ldr r2, [r7, #0] + 801a916: 4413 add r3, r2 + 801a918: 6afa ldr r2, [r7, #44] ; 0x2c + 801a91a: 3203 adds r2, #3 + 801a91c: 0052 lsls r2, r2, #1 + 801a91e: 68f9 ldr r1, [r7, #12] + 801a920: 4411 add r1, r2 + 801a922: 6a7a ldr r2, [r7, #36] ; 0x24 + 801a924: 7815 ldrb r5, [r2, #0] + 801a926: 6afa ldr r2, [r7, #44] ; 0x2c + 801a928: 3203 adds r2, #3 + 801a92a: 0052 lsls r2, r2, #1 + 801a92c: 68f8 ldr r0, [r7, #12] + 801a92e: 1884 adds r4, r0, r2 + 801a930: 462a mov r2, r5 + 801a932: 8809 ldrh r1, [r1, #0] + 801a934: 8818 ldrh r0, [r3, #0] + 801a936: f7fe ff39 bl 80197ac + 801a93a: 4603 mov r3, r0 + 801a93c: 8023 strh r3, [r4, #0] + 801a93e: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a940: 3301 adds r3, #1 + 801a942: 627b str r3, [r7, #36] ; 0x24 mask32++; - 801a9d8: 6a3b ldr r3, [r7, #32] - 801a9da: 3304 adds r3, #4 - 801a9dc: 623b str r3, [r7, #32] + 801a944: 6a3b ldr r3, [r7, #32] + 801a946: 3304 adds r3, #4 + 801a948: 623b str r3, [r7, #32] for(; x < x_end4; x += 4) { - 801a9de: 6afb ldr r3, [r7, #44] ; 0x2c - 801a9e0: 3304 adds r3, #4 - 801a9e2: 62fb str r3, [r7, #44] ; 0x2c - 801a9e4: 6afa ldr r2, [r7, #44] ; 0x2c - 801a9e6: 693b ldr r3, [r7, #16] - 801a9e8: 429a cmp r2, r3 - 801a9ea: f6ff aeff blt.w 801a7ec + 801a94a: 6afb ldr r3, [r7, #44] ; 0x2c + 801a94c: 3304 adds r3, #4 + 801a94e: 62fb str r3, [r7, #44] ; 0x2c + 801a950: 6afa ldr r2, [r7, #44] ; 0x2c + 801a952: 693b ldr r3, [r7, #16] + 801a954: 429a cmp r2, r3 + 801a956: f6ff aeff blt.w 801a758 mask_tmp_x = (const lv_opa_t *)mask32; - 801a9ee: 6a3b ldr r3, [r7, #32] - 801a9f0: 627b str r3, [r7, #36] ; 0x24 + 801a95a: 6a3b ldr r3, [r7, #32] + 801a95c: 627b str r3, [r7, #36] ; 0x24 for(; x < w ; x++) { - 801a9f2: e02d b.n 801aa50 + 801a95e: e02d b.n 801a9bc MAP_NORMAL_MASK_PX(x) - 801a9f4: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a9f6: 781b ldrb r3, [r3, #0] - 801a9f8: 2b00 cmp r3, #0 - 801a9fa: d023 beq.n 801aa44 - 801a9fc: 6a7b ldr r3, [r7, #36] ; 0x24 - 801a9fe: 781b ldrb r3, [r3, #0] - 801aa00: 2bff cmp r3, #255 ; 0xff - 801aa02: d10a bne.n 801aa1a - 801aa04: 6afb ldr r3, [r7, #44] ; 0x2c - 801aa06: 005b lsls r3, r3, #1 - 801aa08: 683a ldr r2, [r7, #0] - 801aa0a: 441a add r2, r3 - 801aa0c: 6afb ldr r3, [r7, #44] ; 0x2c - 801aa0e: 005b lsls r3, r3, #1 - 801aa10: 68f9 ldr r1, [r7, #12] - 801aa12: 440b add r3, r1 - 801aa14: 8812 ldrh r2, [r2, #0] - 801aa16: 801a strh r2, [r3, #0] - 801aa18: e014 b.n 801aa44 - 801aa1a: 6afb ldr r3, [r7, #44] ; 0x2c - 801aa1c: 005b lsls r3, r3, #1 - 801aa1e: 683a ldr r2, [r7, #0] - 801aa20: 4413 add r3, r2 - 801aa22: 6afa ldr r2, [r7, #44] ; 0x2c - 801aa24: 0052 lsls r2, r2, #1 - 801aa26: 68f9 ldr r1, [r7, #12] - 801aa28: 4411 add r1, r2 - 801aa2a: 6a7a ldr r2, [r7, #36] ; 0x24 - 801aa2c: 7815 ldrb r5, [r2, #0] - 801aa2e: 6afa ldr r2, [r7, #44] ; 0x2c - 801aa30: 0052 lsls r2, r2, #1 - 801aa32: 68f8 ldr r0, [r7, #12] - 801aa34: 1884 adds r4, r0, r2 - 801aa36: 462a mov r2, r5 - 801aa38: 8809 ldrh r1, [r1, #0] - 801aa3a: 8818 ldrh r0, [r3, #0] - 801aa3c: f7fe ff00 bl 8019840 - 801aa40: 4603 mov r3, r0 - 801aa42: 8023 strh r3, [r4, #0] - 801aa44: 6a7b ldr r3, [r7, #36] ; 0x24 - 801aa46: 3301 adds r3, #1 - 801aa48: 627b str r3, [r7, #36] ; 0x24 + 801a960: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a962: 781b ldrb r3, [r3, #0] + 801a964: 2b00 cmp r3, #0 + 801a966: d023 beq.n 801a9b0 + 801a968: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a96a: 781b ldrb r3, [r3, #0] + 801a96c: 2bff cmp r3, #255 ; 0xff + 801a96e: d10a bne.n 801a986 + 801a970: 6afb ldr r3, [r7, #44] ; 0x2c + 801a972: 005b lsls r3, r3, #1 + 801a974: 683a ldr r2, [r7, #0] + 801a976: 441a add r2, r3 + 801a978: 6afb ldr r3, [r7, #44] ; 0x2c + 801a97a: 005b lsls r3, r3, #1 + 801a97c: 68f9 ldr r1, [r7, #12] + 801a97e: 440b add r3, r1 + 801a980: 8812 ldrh r2, [r2, #0] + 801a982: 801a strh r2, [r3, #0] + 801a984: e014 b.n 801a9b0 + 801a986: 6afb ldr r3, [r7, #44] ; 0x2c + 801a988: 005b lsls r3, r3, #1 + 801a98a: 683a ldr r2, [r7, #0] + 801a98c: 4413 add r3, r2 + 801a98e: 6afa ldr r2, [r7, #44] ; 0x2c + 801a990: 0052 lsls r2, r2, #1 + 801a992: 68f9 ldr r1, [r7, #12] + 801a994: 4411 add r1, r2 + 801a996: 6a7a ldr r2, [r7, #36] ; 0x24 + 801a998: 7815 ldrb r5, [r2, #0] + 801a99a: 6afa ldr r2, [r7, #44] ; 0x2c + 801a99c: 0052 lsls r2, r2, #1 + 801a99e: 68f8 ldr r0, [r7, #12] + 801a9a0: 1884 adds r4, r0, r2 + 801a9a2: 462a mov r2, r5 + 801a9a4: 8809 ldrh r1, [r1, #0] + 801a9a6: 8818 ldrh r0, [r3, #0] + 801a9a8: f7fe ff00 bl 80197ac + 801a9ac: 4603 mov r3, r0 + 801a9ae: 8023 strh r3, [r4, #0] + 801a9b0: 6a7b ldr r3, [r7, #36] ; 0x24 + 801a9b2: 3301 adds r3, #1 + 801a9b4: 627b str r3, [r7, #36] ; 0x24 for(; x < w ; x++) { - 801aa4a: 6afb ldr r3, [r7, #44] ; 0x2c - 801aa4c: 3301 adds r3, #1 - 801aa4e: 62fb str r3, [r7, #44] ; 0x2c - 801aa50: 6afa ldr r2, [r7, #44] ; 0x2c - 801aa52: 69fb ldr r3, [r7, #28] - 801aa54: 429a cmp r2, r3 - 801aa56: dbcd blt.n 801a9f4 + 801a9b6: 6afb ldr r3, [r7, #44] ; 0x2c + 801a9b8: 3301 adds r3, #1 + 801a9ba: 62fb str r3, [r7, #44] ; 0x2c + 801a9bc: 6afa ldr r2, [r7, #44] ; 0x2c + 801a9be: 69fb ldr r3, [r7, #28] + 801a9c0: 429a cmp r2, r3 + 801a9c2: dbcd blt.n 801a960 dest_buf += dest_stride; - 801aa58: f9b7 3006 ldrsh.w r3, [r7, #6] - 801aa5c: 005b lsls r3, r3, #1 - 801aa5e: 68fa ldr r2, [r7, #12] - 801aa60: 4413 add r3, r2 - 801aa62: 60fb str r3, [r7, #12] + 801a9c4: f9b7 3006 ldrsh.w r3, [r7, #6] + 801a9c8: 005b lsls r3, r3, #1 + 801a9ca: 68fa ldr r2, [r7, #12] + 801a9cc: 4413 add r3, r2 + 801a9ce: 60fb str r3, [r7, #12] src_buf += src_stride; - 801aa64: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 - 801aa68: 005b lsls r3, r3, #1 - 801aa6a: 683a ldr r2, [r7, #0] - 801aa6c: 4413 add r3, r2 - 801aa6e: 603b str r3, [r7, #0] + 801a9d0: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 + 801a9d4: 005b lsls r3, r3, #1 + 801a9d6: 683a ldr r2, [r7, #0] + 801a9d8: 4413 add r3, r2 + 801a9da: 603b str r3, [r7, #0] mask += mask_stride; - 801aa70: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 801aa74: 6cba ldr r2, [r7, #72] ; 0x48 - 801aa76: 4413 add r3, r2 - 801aa78: 64bb str r3, [r7, #72] ; 0x48 + 801a9dc: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 801a9e0: 6cba ldr r2, [r7, #72] ; 0x48 + 801a9e2: 4413 add r3, r2 + 801a9e4: 64bb str r3, [r7, #72] ; 0x48 for(y = 0; y < h; y++) { - 801aa7a: 6abb ldr r3, [r7, #40] ; 0x28 - 801aa7c: 3301 adds r3, #1 - 801aa7e: 62bb str r3, [r7, #40] ; 0x28 - 801aa80: 6aba ldr r2, [r7, #40] ; 0x28 - 801aa82: 69bb ldr r3, [r7, #24] - 801aa84: 429a cmp r2, r3 - 801aa86: f6ff ae72 blt.w 801a76e + 801a9e6: 6abb ldr r3, [r7, #40] ; 0x28 + 801a9e8: 3301 adds r3, #1 + 801a9ea: 62bb str r3, [r7, #40] ; 0x28 + 801a9ec: 6aba ldr r2, [r7, #40] ; 0x28 + 801a9ee: 69bb ldr r3, [r7, #24] + 801a9f0: 429a cmp r2, r3 + 801a9f2: f6ff ae72 blt.w 801a6da } - 801aa8a: e051 b.n 801ab30 + 801a9f6: e051 b.n 801aa9c for(y = 0; y < h; y++) { - 801aa8c: 2300 movs r3, #0 - 801aa8e: 62bb str r3, [r7, #40] ; 0x28 - 801aa90: e04a b.n 801ab28 + 801a9f8: 2300 movs r3, #0 + 801a9fa: 62bb str r3, [r7, #40] ; 0x28 + 801a9fc: e04a b.n 801aa94 for(x = 0; x < w; x++) { - 801aa92: 2300 movs r3, #0 - 801aa94: 62fb str r3, [r7, #44] ; 0x2c - 801aa96: e02f b.n 801aaf8 + 801a9fe: 2300 movs r3, #0 + 801aa00: 62fb str r3, [r7, #44] ; 0x2c + 801aa02: e02f b.n 801aa64 if(mask[x]) { - 801aa98: 6afb ldr r3, [r7, #44] ; 0x2c - 801aa9a: 6cba ldr r2, [r7, #72] ; 0x48 - 801aa9c: 4413 add r3, r2 - 801aa9e: 781b ldrb r3, [r3, #0] - 801aaa0: 2b00 cmp r3, #0 - 801aaa2: d026 beq.n 801aaf2 + 801aa04: 6afb ldr r3, [r7, #44] ; 0x2c + 801aa06: 6cba ldr r2, [r7, #72] ; 0x48 + 801aa08: 4413 add r3, r2 + 801aa0a: 781b ldrb r3, [r3, #0] + 801aa0c: 2b00 cmp r3, #0 + 801aa0e: d026 beq.n 801aa5e lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8); - 801aaa4: 6afb ldr r3, [r7, #44] ; 0x2c - 801aaa6: 6cba ldr r2, [r7, #72] ; 0x48 - 801aaa8: 4413 add r3, r2 - 801aaaa: 781b ldrb r3, [r3, #0] - 801aaac: 2bfc cmp r3, #252 ; 0xfc - 801aaae: d80a bhi.n 801aac6 - 801aab0: f897 3044 ldrb.w r3, [r7, #68] ; 0x44 - 801aab4: 6afa ldr r2, [r7, #44] ; 0x2c - 801aab6: 6cb9 ldr r1, [r7, #72] ; 0x48 - 801aab8: 440a add r2, r1 - 801aaba: 7812 ldrb r2, [r2, #0] - 801aabc: fb02 f303 mul.w r3, r2, r3 - 801aac0: 121b asrs r3, r3, #8 - 801aac2: b2db uxtb r3, r3 - 801aac4: e001 b.n 801aaca - 801aac6: f897 3044 ldrb.w r3, [r7, #68] ; 0x44 - 801aaca: 75fb strb r3, [r7, #23] + 801aa10: 6afb ldr r3, [r7, #44] ; 0x2c + 801aa12: 6cba ldr r2, [r7, #72] ; 0x48 + 801aa14: 4413 add r3, r2 + 801aa16: 781b ldrb r3, [r3, #0] + 801aa18: 2bfc cmp r3, #252 ; 0xfc + 801aa1a: d80a bhi.n 801aa32 + 801aa1c: f897 3044 ldrb.w r3, [r7, #68] ; 0x44 + 801aa20: 6afa ldr r2, [r7, #44] ; 0x2c + 801aa22: 6cb9 ldr r1, [r7, #72] ; 0x48 + 801aa24: 440a add r2, r1 + 801aa26: 7812 ldrb r2, [r2, #0] + 801aa28: fb02 f303 mul.w r3, r2, r3 + 801aa2c: 121b asrs r3, r3, #8 + 801aa2e: b2db uxtb r3, r3 + 801aa30: e001 b.n 801aa36 + 801aa32: f897 3044 ldrb.w r3, [r7, #68] ; 0x44 + 801aa36: 75fb strb r3, [r7, #23] dest_buf[x] = lv_color_mix(src_buf[x], dest_buf[x], opa_tmp); - 801aacc: 6afb ldr r3, [r7, #44] ; 0x2c - 801aace: 005b lsls r3, r3, #1 - 801aad0: 683a ldr r2, [r7, #0] - 801aad2: 4413 add r3, r2 - 801aad4: 6afa ldr r2, [r7, #44] ; 0x2c - 801aad6: 0052 lsls r2, r2, #1 - 801aad8: 68f9 ldr r1, [r7, #12] - 801aada: 4411 add r1, r2 - 801aadc: 6afa ldr r2, [r7, #44] ; 0x2c - 801aade: 0052 lsls r2, r2, #1 - 801aae0: 68f8 ldr r0, [r7, #12] - 801aae2: 1884 adds r4, r0, r2 - 801aae4: 7dfa ldrb r2, [r7, #23] - 801aae6: 8809 ldrh r1, [r1, #0] - 801aae8: 8818 ldrh r0, [r3, #0] - 801aaea: f7fe fea9 bl 8019840 - 801aaee: 4603 mov r3, r0 - 801aaf0: 8023 strh r3, [r4, #0] + 801aa38: 6afb ldr r3, [r7, #44] ; 0x2c + 801aa3a: 005b lsls r3, r3, #1 + 801aa3c: 683a ldr r2, [r7, #0] + 801aa3e: 4413 add r3, r2 + 801aa40: 6afa ldr r2, [r7, #44] ; 0x2c + 801aa42: 0052 lsls r2, r2, #1 + 801aa44: 68f9 ldr r1, [r7, #12] + 801aa46: 4411 add r1, r2 + 801aa48: 6afa ldr r2, [r7, #44] ; 0x2c + 801aa4a: 0052 lsls r2, r2, #1 + 801aa4c: 68f8 ldr r0, [r7, #12] + 801aa4e: 1884 adds r4, r0, r2 + 801aa50: 7dfa ldrb r2, [r7, #23] + 801aa52: 8809 ldrh r1, [r1, #0] + 801aa54: 8818 ldrh r0, [r3, #0] + 801aa56: f7fe fea9 bl 80197ac + 801aa5a: 4603 mov r3, r0 + 801aa5c: 8023 strh r3, [r4, #0] for(x = 0; x < w; x++) { - 801aaf2: 6afb ldr r3, [r7, #44] ; 0x2c - 801aaf4: 3301 adds r3, #1 - 801aaf6: 62fb str r3, [r7, #44] ; 0x2c - 801aaf8: 6afa ldr r2, [r7, #44] ; 0x2c - 801aafa: 69fb ldr r3, [r7, #28] - 801aafc: 429a cmp r2, r3 - 801aafe: dbcb blt.n 801aa98 + 801aa5e: 6afb ldr r3, [r7, #44] ; 0x2c + 801aa60: 3301 adds r3, #1 + 801aa62: 62fb str r3, [r7, #44] ; 0x2c + 801aa64: 6afa ldr r2, [r7, #44] ; 0x2c + 801aa66: 69fb ldr r3, [r7, #28] + 801aa68: 429a cmp r2, r3 + 801aa6a: dbcb blt.n 801aa04 dest_buf += dest_stride; - 801ab00: f9b7 3006 ldrsh.w r3, [r7, #6] - 801ab04: 005b lsls r3, r3, #1 - 801ab06: 68fa ldr r2, [r7, #12] - 801ab08: 4413 add r3, r2 - 801ab0a: 60fb str r3, [r7, #12] + 801aa6c: f9b7 3006 ldrsh.w r3, [r7, #6] + 801aa70: 005b lsls r3, r3, #1 + 801aa72: 68fa ldr r2, [r7, #12] + 801aa74: 4413 add r3, r2 + 801aa76: 60fb str r3, [r7, #12] src_buf += src_stride; - 801ab0c: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 - 801ab10: 005b lsls r3, r3, #1 - 801ab12: 683a ldr r2, [r7, #0] - 801ab14: 4413 add r3, r2 - 801ab16: 603b str r3, [r7, #0] + 801aa78: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 + 801aa7c: 005b lsls r3, r3, #1 + 801aa7e: 683a ldr r2, [r7, #0] + 801aa80: 4413 add r3, r2 + 801aa82: 603b str r3, [r7, #0] mask += mask_stride; - 801ab18: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 801ab1c: 6cba ldr r2, [r7, #72] ; 0x48 - 801ab1e: 4413 add r3, r2 - 801ab20: 64bb str r3, [r7, #72] ; 0x48 + 801aa84: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 801aa88: 6cba ldr r2, [r7, #72] ; 0x48 + 801aa8a: 4413 add r3, r2 + 801aa8c: 64bb str r3, [r7, #72] ; 0x48 for(y = 0; y < h; y++) { - 801ab22: 6abb ldr r3, [r7, #40] ; 0x28 - 801ab24: 3301 adds r3, #1 - 801ab26: 62bb str r3, [r7, #40] ; 0x28 - 801ab28: 6aba ldr r2, [r7, #40] ; 0x28 - 801ab2a: 69bb ldr r3, [r7, #24] - 801ab2c: 429a cmp r2, r3 - 801ab2e: dbb0 blt.n 801aa92 + 801aa8e: 6abb ldr r3, [r7, #40] ; 0x28 + 801aa90: 3301 adds r3, #1 + 801aa92: 62bb str r3, [r7, #40] ; 0x28 + 801aa94: 6aba ldr r2, [r7, #40] ; 0x28 + 801aa96: 69bb ldr r3, [r7, #24] + 801aa98: 429a cmp r2, r3 + 801aa9a: dbb0 blt.n 801a9fe } - 801ab30: bf00 nop - 801ab32: 3730 adds r7, #48 ; 0x30 - 801ab34: 46bd mov sp, r7 - 801ab36: bdb0 pop {r4, r5, r7, pc} + 801aa9c: bf00 nop + 801aa9e: 3730 adds r7, #48 ; 0x30 + 801aaa0: 46bd mov sp, r7 + 801aaa2: bdb0 pop {r4, r5, r7, pc} -0801ab38 : +0801aaa4 : #if LV_DRAW_COMPLEX static void map_blended(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride, lv_blend_mode_t blend_mode) { - 801ab38: b590 push {r4, r7, lr} - 801ab3a: b08b sub sp, #44 ; 0x2c - 801ab3c: af00 add r7, sp, #0 - 801ab3e: 60f8 str r0, [r7, #12] - 801ab40: 60b9 str r1, [r7, #8] - 801ab42: 603b str r3, [r7, #0] - 801ab44: 4613 mov r3, r2 - 801ab46: 80fb strh r3, [r7, #6] + 801aaa4: b590 push {r4, r7, lr} + 801aaa6: b08b sub sp, #44 ; 0x2c + 801aaa8: af00 add r7, sp, #0 + 801aaaa: 60f8 str r0, [r7, #12] + 801aaac: 60b9 str r1, [r7, #8] + 801aaae: 603b str r3, [r7, #0] + 801aab0: 4613 mov r3, r2 + 801aab2: 80fb strh r3, [r7, #6] int32_t w = lv_area_get_width(dest_area); - 801ab48: 68b8 ldr r0, [r7, #8] - 801ab4a: f7fe ff76 bl 8019a3a - 801ab4e: 4603 mov r3, r0 - 801ab50: 61bb str r3, [r7, #24] + 801aab4: 68b8 ldr r0, [r7, #8] + 801aab6: f7fe ff76 bl 80199a6 + 801aaba: 4603 mov r3, r0 + 801aabc: 61bb str r3, [r7, #24] int32_t h = lv_area_get_height(dest_area); - 801ab52: 68b8 ldr r0, [r7, #8] - 801ab54: f7fe ff87 bl 8019a66 - 801ab58: 4603 mov r3, r0 - 801ab5a: 617b str r3, [r7, #20] + 801aabe: 68b8 ldr r0, [r7, #8] + 801aac0: f7fe ff87 bl 80199d2 + 801aac4: 4603 mov r3, r0 + 801aac6: 617b str r3, [r7, #20] int32_t x; int32_t y; lv_color_t (*blend_fp)(lv_color_t, lv_color_t, lv_opa_t); switch(blend_mode) { - 801ab5c: f897 3048 ldrb.w r3, [r7, #72] ; 0x48 - 801ab60: 2b03 cmp r3, #3 - 801ab62: d00d beq.n 801ab80 - 801ab64: 2b03 cmp r3, #3 - 801ab66: f300 809b bgt.w 801aca0 - 801ab6a: 2b01 cmp r3, #1 - 801ab6c: d002 beq.n 801ab74 - 801ab6e: 2b02 cmp r3, #2 - 801ab70: d003 beq.n 801ab7a + 801aac8: f897 3048 ldrb.w r3, [r7, #72] ; 0x48 + 801aacc: 2b03 cmp r3, #3 + 801aace: d00d beq.n 801aaec + 801aad0: 2b03 cmp r3, #3 + 801aad2: f300 809b bgt.w 801ac0c + 801aad6: 2b01 cmp r3, #1 + 801aad8: d002 beq.n 801aae0 + 801aada: 2b02 cmp r3, #2 + 801aadc: d003 beq.n 801aae6 case LV_BLEND_MODE_MULTIPLY: blend_fp = color_blend_true_color_multiply; break; default: LV_LOG_WARN("fill_blended: unsupported blend mode"); return; - 801ab72: e095 b.n 801aca0 + 801aade: e095 b.n 801ac0c blend_fp = color_blend_true_color_additive; - 801ab74: 4b4c ldr r3, [pc, #304] ; (801aca8 ) - 801ab76: 61fb str r3, [r7, #28] + 801aae0: 4b4c ldr r3, [pc, #304] ; (801ac14 ) + 801aae2: 61fb str r3, [r7, #28] break; - 801ab78: e005 b.n 801ab86 + 801aae4: e005 b.n 801aaf2 blend_fp = color_blend_true_color_subtractive; - 801ab7a: 4b4c ldr r3, [pc, #304] ; (801acac ) - 801ab7c: 61fb str r3, [r7, #28] + 801aae6: 4b4c ldr r3, [pc, #304] ; (801ac18 ) + 801aae8: 61fb str r3, [r7, #28] break; - 801ab7e: e002 b.n 801ab86 + 801aaea: e002 b.n 801aaf2 blend_fp = color_blend_true_color_multiply; - 801ab80: 4b4b ldr r3, [pc, #300] ; (801acb0 ) - 801ab82: 61fb str r3, [r7, #28] + 801aaec: 4b4b ldr r3, [pc, #300] ; (801ac1c ) + 801aaee: 61fb str r3, [r7, #28] break; - 801ab84: bf00 nop + 801aaf0: bf00 nop } /*Simple fill (maybe with opacity), no masking*/ if(mask == NULL) { - 801ab86: 6c3b ldr r3, [r7, #64] ; 0x40 - 801ab88: 2b00 cmp r3, #0 - 801ab8a: d134 bne.n 801abf6 + 801aaf2: 6c3b ldr r3, [r7, #64] ; 0x40 + 801aaf4: 2b00 cmp r3, #0 + 801aaf6: d134 bne.n 801ab62 /*The map will be indexed from `draw_area->x1` so compensate it.*/ for(y = 0; y < h; y++) { - 801ab8c: 2300 movs r3, #0 - 801ab8e: 623b str r3, [r7, #32] - 801ab90: e02c b.n 801abec + 801aaf8: 2300 movs r3, #0 + 801aafa: 623b str r3, [r7, #32] + 801aafc: e02c b.n 801ab58 for(x = 0; x < w; x++) { - 801ab92: 2300 movs r3, #0 - 801ab94: 627b str r3, [r7, #36] ; 0x24 - 801ab96: e016 b.n 801abc6 + 801aafe: 2300 movs r3, #0 + 801ab00: 627b str r3, [r7, #36] ; 0x24 + 801ab02: e016 b.n 801ab32 dest_buf[x] = blend_fp(src_buf[x], dest_buf[x], opa); - 801ab98: 6a7b ldr r3, [r7, #36] ; 0x24 - 801ab9a: 005b lsls r3, r3, #1 - 801ab9c: 683a ldr r2, [r7, #0] - 801ab9e: 18d0 adds r0, r2, r3 - 801aba0: 6a7b ldr r3, [r7, #36] ; 0x24 - 801aba2: 005b lsls r3, r3, #1 - 801aba4: 68fa ldr r2, [r7, #12] - 801aba6: 18d1 adds r1, r2, r3 - 801aba8: 6a7b ldr r3, [r7, #36] ; 0x24 - 801abaa: 005b lsls r3, r3, #1 - 801abac: 68fa ldr r2, [r7, #12] - 801abae: 18d4 adds r4, r2, r3 - 801abb0: f897 203c ldrb.w r2, [r7, #60] ; 0x3c - 801abb4: 69fb ldr r3, [r7, #28] - 801abb6: 8809 ldrh r1, [r1, #0] - 801abb8: 8800 ldrh r0, [r0, #0] - 801abba: 4798 blx r3 - 801abbc: 4603 mov r3, r0 - 801abbe: 8023 strh r3, [r4, #0] + 801ab04: 6a7b ldr r3, [r7, #36] ; 0x24 + 801ab06: 005b lsls r3, r3, #1 + 801ab08: 683a ldr r2, [r7, #0] + 801ab0a: 18d0 adds r0, r2, r3 + 801ab0c: 6a7b ldr r3, [r7, #36] ; 0x24 + 801ab0e: 005b lsls r3, r3, #1 + 801ab10: 68fa ldr r2, [r7, #12] + 801ab12: 18d1 adds r1, r2, r3 + 801ab14: 6a7b ldr r3, [r7, #36] ; 0x24 + 801ab16: 005b lsls r3, r3, #1 + 801ab18: 68fa ldr r2, [r7, #12] + 801ab1a: 18d4 adds r4, r2, r3 + 801ab1c: f897 203c ldrb.w r2, [r7, #60] ; 0x3c + 801ab20: 69fb ldr r3, [r7, #28] + 801ab22: 8809 ldrh r1, [r1, #0] + 801ab24: 8800 ldrh r0, [r0, #0] + 801ab26: 4798 blx r3 + 801ab28: 4603 mov r3, r0 + 801ab2a: 8023 strh r3, [r4, #0] for(x = 0; x < w; x++) { - 801abc0: 6a7b ldr r3, [r7, #36] ; 0x24 - 801abc2: 3301 adds r3, #1 - 801abc4: 627b str r3, [r7, #36] ; 0x24 - 801abc6: 6a7a ldr r2, [r7, #36] ; 0x24 - 801abc8: 69bb ldr r3, [r7, #24] - 801abca: 429a cmp r2, r3 - 801abcc: dbe4 blt.n 801ab98 + 801ab2c: 6a7b ldr r3, [r7, #36] ; 0x24 + 801ab2e: 3301 adds r3, #1 + 801ab30: 627b str r3, [r7, #36] ; 0x24 + 801ab32: 6a7a ldr r2, [r7, #36] ; 0x24 + 801ab34: 69bb ldr r3, [r7, #24] + 801ab36: 429a cmp r2, r3 + 801ab38: dbe4 blt.n 801ab04 } dest_buf += dest_stride; - 801abce: f9b7 3006 ldrsh.w r3, [r7, #6] - 801abd2: 005b lsls r3, r3, #1 - 801abd4: 68fa ldr r2, [r7, #12] - 801abd6: 4413 add r3, r2 - 801abd8: 60fb str r3, [r7, #12] + 801ab3a: f9b7 3006 ldrsh.w r3, [r7, #6] + 801ab3e: 005b lsls r3, r3, #1 + 801ab40: 68fa ldr r2, [r7, #12] + 801ab42: 4413 add r3, r2 + 801ab44: 60fb str r3, [r7, #12] src_buf += src_stride; - 801abda: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 801abde: 005b lsls r3, r3, #1 - 801abe0: 683a ldr r2, [r7, #0] - 801abe2: 4413 add r3, r2 - 801abe4: 603b str r3, [r7, #0] + 801ab46: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 801ab4a: 005b lsls r3, r3, #1 + 801ab4c: 683a ldr r2, [r7, #0] + 801ab4e: 4413 add r3, r2 + 801ab50: 603b str r3, [r7, #0] for(y = 0; y < h; y++) { - 801abe6: 6a3b ldr r3, [r7, #32] - 801abe8: 3301 adds r3, #1 - 801abea: 623b str r3, [r7, #32] - 801abec: 6a3a ldr r2, [r7, #32] - 801abee: 697b ldr r3, [r7, #20] - 801abf0: 429a cmp r2, r3 - 801abf2: dbce blt.n 801ab92 - 801abf4: e055 b.n 801aca2 + 801ab52: 6a3b ldr r3, [r7, #32] + 801ab54: 3301 adds r3, #1 + 801ab56: 623b str r3, [r7, #32] + 801ab58: 6a3a ldr r2, [r7, #32] + 801ab5a: 697b ldr r3, [r7, #20] + 801ab5c: 429a cmp r2, r3 + 801ab5e: dbce blt.n 801aafe + 801ab60: e055 b.n 801ac0e } } /*Masked*/ else { for(y = 0; y < h; y++) { - 801abf6: 2300 movs r3, #0 - 801abf8: 623b str r3, [r7, #32] - 801abfa: e04c b.n 801ac96 + 801ab62: 2300 movs r3, #0 + 801ab64: 623b str r3, [r7, #32] + 801ab66: e04c b.n 801ac02 for(x = 0; x < w; x++) { - 801abfc: 2300 movs r3, #0 - 801abfe: 627b str r3, [r7, #36] ; 0x24 - 801ac00: e031 b.n 801ac66 + 801ab68: 2300 movs r3, #0 + 801ab6a: 627b str r3, [r7, #36] ; 0x24 + 801ab6c: e031 b.n 801abd2 if(mask[x] == 0) continue; - 801ac02: 6a7b ldr r3, [r7, #36] ; 0x24 - 801ac04: 6c3a ldr r2, [r7, #64] ; 0x40 - 801ac06: 4413 add r3, r2 - 801ac08: 781b ldrb r3, [r3, #0] - 801ac0a: 2b00 cmp r3, #0 - 801ac0c: d027 beq.n 801ac5e + 801ab6e: 6a7b ldr r3, [r7, #36] ; 0x24 + 801ab70: 6c3a ldr r2, [r7, #64] ; 0x40 + 801ab72: 4413 add r3, r2 + 801ab74: 781b ldrb r3, [r3, #0] + 801ab76: 2b00 cmp r3, #0 + 801ab78: d027 beq.n 801abca lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8); - 801ac0e: 6a7b ldr r3, [r7, #36] ; 0x24 - 801ac10: 6c3a ldr r2, [r7, #64] ; 0x40 - 801ac12: 4413 add r3, r2 - 801ac14: 781b ldrb r3, [r3, #0] - 801ac16: 2bfc cmp r3, #252 ; 0xfc - 801ac18: d80a bhi.n 801ac30 - 801ac1a: f897 303c ldrb.w r3, [r7, #60] ; 0x3c - 801ac1e: 6a7a ldr r2, [r7, #36] ; 0x24 - 801ac20: 6c39 ldr r1, [r7, #64] ; 0x40 - 801ac22: 440a add r2, r1 - 801ac24: 7812 ldrb r2, [r2, #0] - 801ac26: fb02 f303 mul.w r3, r2, r3 - 801ac2a: 121b asrs r3, r3, #8 - 801ac2c: b2db uxtb r3, r3 - 801ac2e: e001 b.n 801ac34 - 801ac30: f897 303c ldrb.w r3, [r7, #60] ; 0x3c - 801ac34: 74fb strb r3, [r7, #19] + 801ab7a: 6a7b ldr r3, [r7, #36] ; 0x24 + 801ab7c: 6c3a ldr r2, [r7, #64] ; 0x40 + 801ab7e: 4413 add r3, r2 + 801ab80: 781b ldrb r3, [r3, #0] + 801ab82: 2bfc cmp r3, #252 ; 0xfc + 801ab84: d80a bhi.n 801ab9c + 801ab86: f897 303c ldrb.w r3, [r7, #60] ; 0x3c + 801ab8a: 6a7a ldr r2, [r7, #36] ; 0x24 + 801ab8c: 6c39 ldr r1, [r7, #64] ; 0x40 + 801ab8e: 440a add r2, r1 + 801ab90: 7812 ldrb r2, [r2, #0] + 801ab92: fb02 f303 mul.w r3, r2, r3 + 801ab96: 121b asrs r3, r3, #8 + 801ab98: b2db uxtb r3, r3 + 801ab9a: e001 b.n 801aba0 + 801ab9c: f897 303c ldrb.w r3, [r7, #60] ; 0x3c + 801aba0: 74fb strb r3, [r7, #19] dest_buf[x] = blend_fp(src_buf[x], dest_buf[x], opa_tmp); - 801ac36: 6a7b ldr r3, [r7, #36] ; 0x24 - 801ac38: 005b lsls r3, r3, #1 - 801ac3a: 683a ldr r2, [r7, #0] - 801ac3c: 18d0 adds r0, r2, r3 - 801ac3e: 6a7b ldr r3, [r7, #36] ; 0x24 - 801ac40: 005b lsls r3, r3, #1 - 801ac42: 68fa ldr r2, [r7, #12] - 801ac44: 18d1 adds r1, r2, r3 - 801ac46: 6a7b ldr r3, [r7, #36] ; 0x24 - 801ac48: 005b lsls r3, r3, #1 - 801ac4a: 68fa ldr r2, [r7, #12] - 801ac4c: 18d4 adds r4, r2, r3 - 801ac4e: 7cfa ldrb r2, [r7, #19] - 801ac50: 69fb ldr r3, [r7, #28] - 801ac52: 8809 ldrh r1, [r1, #0] - 801ac54: 8800 ldrh r0, [r0, #0] - 801ac56: 4798 blx r3 - 801ac58: 4603 mov r3, r0 - 801ac5a: 8023 strh r3, [r4, #0] - 801ac5c: e000 b.n 801ac60 + 801aba2: 6a7b ldr r3, [r7, #36] ; 0x24 + 801aba4: 005b lsls r3, r3, #1 + 801aba6: 683a ldr r2, [r7, #0] + 801aba8: 18d0 adds r0, r2, r3 + 801abaa: 6a7b ldr r3, [r7, #36] ; 0x24 + 801abac: 005b lsls r3, r3, #1 + 801abae: 68fa ldr r2, [r7, #12] + 801abb0: 18d1 adds r1, r2, r3 + 801abb2: 6a7b ldr r3, [r7, #36] ; 0x24 + 801abb4: 005b lsls r3, r3, #1 + 801abb6: 68fa ldr r2, [r7, #12] + 801abb8: 18d4 adds r4, r2, r3 + 801abba: 7cfa ldrb r2, [r7, #19] + 801abbc: 69fb ldr r3, [r7, #28] + 801abbe: 8809 ldrh r1, [r1, #0] + 801abc0: 8800 ldrh r0, [r0, #0] + 801abc2: 4798 blx r3 + 801abc4: 4603 mov r3, r0 + 801abc6: 8023 strh r3, [r4, #0] + 801abc8: e000 b.n 801abcc if(mask[x] == 0) continue; - 801ac5e: bf00 nop + 801abca: bf00 nop for(x = 0; x < w; x++) { - 801ac60: 6a7b ldr r3, [r7, #36] ; 0x24 - 801ac62: 3301 adds r3, #1 - 801ac64: 627b str r3, [r7, #36] ; 0x24 - 801ac66: 6a7a ldr r2, [r7, #36] ; 0x24 - 801ac68: 69bb ldr r3, [r7, #24] - 801ac6a: 429a cmp r2, r3 - 801ac6c: dbc9 blt.n 801ac02 + 801abcc: 6a7b ldr r3, [r7, #36] ; 0x24 + 801abce: 3301 adds r3, #1 + 801abd0: 627b str r3, [r7, #36] ; 0x24 + 801abd2: 6a7a ldr r2, [r7, #36] ; 0x24 + 801abd4: 69bb ldr r3, [r7, #24] + 801abd6: 429a cmp r2, r3 + 801abd8: dbc9 blt.n 801ab6e } dest_buf += dest_stride; - 801ac6e: f9b7 3006 ldrsh.w r3, [r7, #6] - 801ac72: 005b lsls r3, r3, #1 - 801ac74: 68fa ldr r2, [r7, #12] - 801ac76: 4413 add r3, r2 - 801ac78: 60fb str r3, [r7, #12] + 801abda: f9b7 3006 ldrsh.w r3, [r7, #6] + 801abde: 005b lsls r3, r3, #1 + 801abe0: 68fa ldr r2, [r7, #12] + 801abe2: 4413 add r3, r2 + 801abe4: 60fb str r3, [r7, #12] src_buf += src_stride; - 801ac7a: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 801ac7e: 005b lsls r3, r3, #1 - 801ac80: 683a ldr r2, [r7, #0] - 801ac82: 4413 add r3, r2 - 801ac84: 603b str r3, [r7, #0] + 801abe6: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 801abea: 005b lsls r3, r3, #1 + 801abec: 683a ldr r2, [r7, #0] + 801abee: 4413 add r3, r2 + 801abf0: 603b str r3, [r7, #0] mask += mask_stride; - 801ac86: f9b7 3044 ldrsh.w r3, [r7, #68] ; 0x44 - 801ac8a: 6c3a ldr r2, [r7, #64] ; 0x40 - 801ac8c: 4413 add r3, r2 - 801ac8e: 643b str r3, [r7, #64] ; 0x40 + 801abf2: f9b7 3044 ldrsh.w r3, [r7, #68] ; 0x44 + 801abf6: 6c3a ldr r2, [r7, #64] ; 0x40 + 801abf8: 4413 add r3, r2 + 801abfa: 643b str r3, [r7, #64] ; 0x40 for(y = 0; y < h; y++) { - 801ac90: 6a3b ldr r3, [r7, #32] - 801ac92: 3301 adds r3, #1 - 801ac94: 623b str r3, [r7, #32] - 801ac96: 6a3a ldr r2, [r7, #32] - 801ac98: 697b ldr r3, [r7, #20] - 801ac9a: 429a cmp r2, r3 - 801ac9c: dbae blt.n 801abfc - 801ac9e: e000 b.n 801aca2 + 801abfc: 6a3b ldr r3, [r7, #32] + 801abfe: 3301 adds r3, #1 + 801ac00: 623b str r3, [r7, #32] + 801ac02: 6a3a ldr r2, [r7, #32] + 801ac04: 697b ldr r3, [r7, #20] + 801ac06: 429a cmp r2, r3 + 801ac08: dbae blt.n 801ab68 + 801ac0a: e000 b.n 801ac0e return; - 801aca0: bf00 nop + 801ac0c: bf00 nop } } } - 801aca2: 372c adds r7, #44 ; 0x2c - 801aca4: 46bd mov sp, r7 - 801aca6: bd90 pop {r4, r7, pc} - 801aca8: 0801acb5 .word 0x0801acb5 - 801acac: 0801ad71 .word 0x0801ad71 - 801acb0: 0801ae27 .word 0x0801ae27 + 801ac0e: 372c adds r7, #44 ; 0x2c + 801ac10: 46bd mov sp, r7 + 801ac12: bd90 pop {r4, r7, pc} + 801ac14: 0801ac21 .word 0x0801ac21 + 801ac18: 0801acdd .word 0x0801acdd + 801ac1c: 0801ad93 .word 0x0801ad93 -0801acb4 : +0801ac20 : static inline lv_color_t color_blend_true_color_additive(lv_color_t fg, lv_color_t bg, lv_opa_t opa) { - 801acb4: b580 push {r7, lr} - 801acb6: b084 sub sp, #16 - 801acb8: af00 add r7, sp, #0 - 801acba: 80b8 strh r0, [r7, #4] - 801acbc: 8039 strh r1, [r7, #0] - 801acbe: 4613 mov r3, r2 - 801acc0: 70fb strb r3, [r7, #3] + 801ac20: b580 push {r7, lr} + 801ac22: b084 sub sp, #16 + 801ac24: af00 add r7, sp, #0 + 801ac26: 80b8 strh r0, [r7, #4] + 801ac28: 8039 strh r1, [r7, #0] + 801ac2a: 4613 mov r3, r2 + 801ac2c: 70fb strb r3, [r7, #3] if(opa <= LV_OPA_MIN) return bg; - 801acc2: 78fb ldrb r3, [r7, #3] - 801acc4: 2b02 cmp r3, #2 - 801acc6: d801 bhi.n 801accc - 801acc8: 883b ldrh r3, [r7, #0] - 801acca: e04d b.n 801ad68 + 801ac2e: 78fb ldrb r3, [r7, #3] + 801ac30: 2b02 cmp r3, #2 + 801ac32: d801 bhi.n 801ac38 + 801ac34: 883b ldrh r3, [r7, #0] + 801ac36: e04d b.n 801acd4 uint32_t tmp; #if LV_COLOR_DEPTH == 1 tmp = bg.full + fg.full; fg.full = LV_MIN(tmp, 1); #else tmp = bg.ch.red + fg.ch.red; - 801accc: 787b ldrb r3, [r7, #1] - 801acce: f3c3 03c4 ubfx r3, r3, #3, #5 - 801acd2: b2db uxtb r3, r3 - 801acd4: 461a mov r2, r3 - 801acd6: 797b ldrb r3, [r7, #5] - 801acd8: f3c3 03c4 ubfx r3, r3, #3, #5 - 801acdc: b2db uxtb r3, r3 - 801acde: 4413 add r3, r2 - 801ace0: 60fb str r3, [r7, #12] + 801ac38: 787b ldrb r3, [r7, #1] + 801ac3a: f3c3 03c4 ubfx r3, r3, #3, #5 + 801ac3e: b2db uxtb r3, r3 + 801ac40: 461a mov r2, r3 + 801ac42: 797b ldrb r3, [r7, #5] + 801ac44: f3c3 03c4 ubfx r3, r3, #3, #5 + 801ac48: b2db uxtb r3, r3 + 801ac4a: 4413 add r3, r2 + 801ac4c: 60fb str r3, [r7, #12] #if LV_COLOR_DEPTH == 8 fg.ch.red = LV_MIN(tmp, 7); #elif LV_COLOR_DEPTH == 16 fg.ch.red = LV_MIN(tmp, 31); - 801ace2: 68fb ldr r3, [r7, #12] - 801ace4: 2b1f cmp r3, #31 - 801ace6: bf28 it cs - 801ace8: 231f movcs r3, #31 - 801acea: f003 031f and.w r3, r3, #31 - 801acee: b2da uxtb r2, r3 - 801acf0: 797b ldrb r3, [r7, #5] - 801acf2: f362 03c7 bfi r3, r2, #3, #5 - 801acf6: 717b strb r3, [r7, #5] + 801ac4e: 68fb ldr r3, [r7, #12] + 801ac50: 2b1f cmp r3, #31 + 801ac52: bf28 it cs + 801ac54: 231f movcs r3, #31 + 801ac56: f003 031f and.w r3, r3, #31 + 801ac5a: b2da uxtb r2, r3 + 801ac5c: 797b ldrb r3, [r7, #5] + 801ac5e: f362 03c7 bfi r3, r2, #3, #5 + 801ac62: 717b strb r3, [r7, #5] #if LV_COLOR_DEPTH == 8 tmp = bg.ch.green + fg.ch.green; fg.ch.green = LV_MIN(tmp, 7); #elif LV_COLOR_DEPTH == 16 #if LV_COLOR_16_SWAP == 0 tmp = bg.ch.green + fg.ch.green; - 801acf8: 883b ldrh r3, [r7, #0] - 801acfa: f3c3 1345 ubfx r3, r3, #5, #6 - 801acfe: b2db uxtb r3, r3 - 801ad00: 461a mov r2, r3 - 801ad02: 88bb ldrh r3, [r7, #4] - 801ad04: f3c3 1345 ubfx r3, r3, #5, #6 - 801ad08: b2db uxtb r3, r3 - 801ad0a: 4413 add r3, r2 - 801ad0c: 60fb str r3, [r7, #12] + 801ac64: 883b ldrh r3, [r7, #0] + 801ac66: f3c3 1345 ubfx r3, r3, #5, #6 + 801ac6a: b2db uxtb r3, r3 + 801ac6c: 461a mov r2, r3 + 801ac6e: 88bb ldrh r3, [r7, #4] + 801ac70: f3c3 1345 ubfx r3, r3, #5, #6 + 801ac74: b2db uxtb r3, r3 + 801ac76: 4413 add r3, r2 + 801ac78: 60fb str r3, [r7, #12] fg.ch.green = LV_MIN(tmp, 63); - 801ad0e: 68fb ldr r3, [r7, #12] - 801ad10: 2b3f cmp r3, #63 ; 0x3f - 801ad12: bf28 it cs - 801ad14: 233f movcs r3, #63 ; 0x3f - 801ad16: f003 033f and.w r3, r3, #63 ; 0x3f - 801ad1a: b2da uxtb r2, r3 - 801ad1c: 88bb ldrh r3, [r7, #4] - 801ad1e: f362 134a bfi r3, r2, #5, #6 - 801ad22: 80bb strh r3, [r7, #4] + 801ac7a: 68fb ldr r3, [r7, #12] + 801ac7c: 2b3f cmp r3, #63 ; 0x3f + 801ac7e: bf28 it cs + 801ac80: 233f movcs r3, #63 ; 0x3f + 801ac82: f003 033f and.w r3, r3, #63 ; 0x3f + 801ac86: b2da uxtb r2, r3 + 801ac88: 88bb ldrh r3, [r7, #4] + 801ac8a: f362 134a bfi r3, r2, #5, #6 + 801ac8e: 80bb strh r3, [r7, #4] #elif LV_COLOR_DEPTH == 32 tmp = bg.ch.green + fg.ch.green; fg.ch.green = LV_MIN(tmp, 255); #endif tmp = bg.ch.blue + fg.ch.blue; - 801ad24: 783b ldrb r3, [r7, #0] - 801ad26: f3c3 0304 ubfx r3, r3, #0, #5 - 801ad2a: b2db uxtb r3, r3 - 801ad2c: 461a mov r2, r3 - 801ad2e: 793b ldrb r3, [r7, #4] - 801ad30: f3c3 0304 ubfx r3, r3, #0, #5 - 801ad34: b2db uxtb r3, r3 - 801ad36: 4413 add r3, r2 - 801ad38: 60fb str r3, [r7, #12] + 801ac90: 783b ldrb r3, [r7, #0] + 801ac92: f3c3 0304 ubfx r3, r3, #0, #5 + 801ac96: b2db uxtb r3, r3 + 801ac98: 461a mov r2, r3 + 801ac9a: 793b ldrb r3, [r7, #4] + 801ac9c: f3c3 0304 ubfx r3, r3, #0, #5 + 801aca0: b2db uxtb r3, r3 + 801aca2: 4413 add r3, r2 + 801aca4: 60fb str r3, [r7, #12] #if LV_COLOR_DEPTH == 8 fg.ch.blue = LV_MIN(tmp, 4); #elif LV_COLOR_DEPTH == 16 fg.ch.blue = LV_MIN(tmp, 31); - 801ad3a: 68fb ldr r3, [r7, #12] - 801ad3c: 2b1f cmp r3, #31 - 801ad3e: bf28 it cs - 801ad40: 231f movcs r3, #31 - 801ad42: f003 031f and.w r3, r3, #31 - 801ad46: b2da uxtb r2, r3 - 801ad48: 793b ldrb r3, [r7, #4] - 801ad4a: f362 0304 bfi r3, r2, #0, #5 - 801ad4e: 713b strb r3, [r7, #4] + 801aca6: 68fb ldr r3, [r7, #12] + 801aca8: 2b1f cmp r3, #31 + 801acaa: bf28 it cs + 801acac: 231f movcs r3, #31 + 801acae: f003 031f and.w r3, r3, #31 + 801acb2: b2da uxtb r2, r3 + 801acb4: 793b ldrb r3, [r7, #4] + 801acb6: f362 0304 bfi r3, r2, #0, #5 + 801acba: 713b strb r3, [r7, #4] #elif LV_COLOR_DEPTH == 32 fg.ch.blue = LV_MIN(tmp, 255); #endif #endif if(opa == LV_OPA_COVER) return fg; - 801ad50: 78fb ldrb r3, [r7, #3] - 801ad52: 2bff cmp r3, #255 ; 0xff - 801ad54: d101 bne.n 801ad5a - 801ad56: 88bb ldrh r3, [r7, #4] - 801ad58: e006 b.n 801ad68 + 801acbc: 78fb ldrb r3, [r7, #3] + 801acbe: 2bff cmp r3, #255 ; 0xff + 801acc0: d101 bne.n 801acc6 + 801acc2: 88bb ldrh r3, [r7, #4] + 801acc4: e006 b.n 801acd4 return lv_color_mix(fg, bg, opa); - 801ad5a: 78fb ldrb r3, [r7, #3] - 801ad5c: 461a mov r2, r3 - 801ad5e: 8839 ldrh r1, [r7, #0] - 801ad60: 88b8 ldrh r0, [r7, #4] - 801ad62: f7fe fd6d bl 8019840 - 801ad66: 4603 mov r3, r0 + 801acc6: 78fb ldrb r3, [r7, #3] + 801acc8: 461a mov r2, r3 + 801acca: 8839 ldrh r1, [r7, #0] + 801accc: 88b8 ldrh r0, [r7, #4] + 801acce: f7fe fd6d bl 80197ac + 801acd2: 4603 mov r3, r0 } - 801ad68: 4618 mov r0, r3 - 801ad6a: 3710 adds r7, #16 - 801ad6c: 46bd mov sp, r7 - 801ad6e: bd80 pop {r7, pc} + 801acd4: 4618 mov r0, r3 + 801acd6: 3710 adds r7, #16 + 801acd8: 46bd mov sp, r7 + 801acda: bd80 pop {r7, pc} -0801ad70 : +0801acdc : static inline lv_color_t color_blend_true_color_subtractive(lv_color_t fg, lv_color_t bg, lv_opa_t opa) { - 801ad70: b580 push {r7, lr} - 801ad72: b084 sub sp, #16 - 801ad74: af00 add r7, sp, #0 - 801ad76: 80b8 strh r0, [r7, #4] - 801ad78: 8039 strh r1, [r7, #0] - 801ad7a: 4613 mov r3, r2 - 801ad7c: 70fb strb r3, [r7, #3] + 801acdc: b580 push {r7, lr} + 801acde: b084 sub sp, #16 + 801ace0: af00 add r7, sp, #0 + 801ace2: 80b8 strh r0, [r7, #4] + 801ace4: 8039 strh r1, [r7, #0] + 801ace6: 4613 mov r3, r2 + 801ace8: 70fb strb r3, [r7, #3] if(opa <= LV_OPA_MIN) return bg; - 801ad7e: 78fb ldrb r3, [r7, #3] - 801ad80: 2b02 cmp r3, #2 - 801ad82: d801 bhi.n 801ad88 - 801ad84: 883b ldrh r3, [r7, #0] - 801ad86: e04a b.n 801ae1e + 801acea: 78fb ldrb r3, [r7, #3] + 801acec: 2b02 cmp r3, #2 + 801acee: d801 bhi.n 801acf4 + 801acf0: 883b ldrh r3, [r7, #0] + 801acf2: e04a b.n 801ad8a int32_t tmp; tmp = bg.ch.red - fg.ch.red; - 801ad88: 787b ldrb r3, [r7, #1] - 801ad8a: f3c3 03c4 ubfx r3, r3, #3, #5 - 801ad8e: b2db uxtb r3, r3 - 801ad90: 461a mov r2, r3 - 801ad92: 797b ldrb r3, [r7, #5] - 801ad94: f3c3 03c4 ubfx r3, r3, #3, #5 - 801ad98: b2db uxtb r3, r3 - 801ad9a: 1ad3 subs r3, r2, r3 - 801ad9c: 60fb str r3, [r7, #12] + 801acf4: 787b ldrb r3, [r7, #1] + 801acf6: f3c3 03c4 ubfx r3, r3, #3, #5 + 801acfa: b2db uxtb r3, r3 + 801acfc: 461a mov r2, r3 + 801acfe: 797b ldrb r3, [r7, #5] + 801ad00: f3c3 03c4 ubfx r3, r3, #3, #5 + 801ad04: b2db uxtb r3, r3 + 801ad06: 1ad3 subs r3, r2, r3 + 801ad08: 60fb str r3, [r7, #12] fg.ch.red = LV_MAX(tmp, 0); - 801ad9e: 68fb ldr r3, [r7, #12] - 801ada0: ea23 73e3 bic.w r3, r3, r3, asr #31 - 801ada4: f003 031f and.w r3, r3, #31 - 801ada8: b2da uxtb r2, r3 - 801adaa: 797b ldrb r3, [r7, #5] - 801adac: f362 03c7 bfi r3, r2, #3, #5 - 801adb0: 717b strb r3, [r7, #5] + 801ad0a: 68fb ldr r3, [r7, #12] + 801ad0c: ea23 73e3 bic.w r3, r3, r3, asr #31 + 801ad10: f003 031f and.w r3, r3, #31 + 801ad14: b2da uxtb r2, r3 + 801ad16: 797b ldrb r3, [r7, #5] + 801ad18: f362 03c7 bfi r3, r2, #3, #5 + 801ad1c: 717b strb r3, [r7, #5] #if LV_COLOR_16_SWAP == 0 tmp = bg.ch.green - fg.ch.green; - 801adb2: 883b ldrh r3, [r7, #0] - 801adb4: f3c3 1345 ubfx r3, r3, #5, #6 - 801adb8: b2db uxtb r3, r3 - 801adba: 461a mov r2, r3 - 801adbc: 88bb ldrh r3, [r7, #4] - 801adbe: f3c3 1345 ubfx r3, r3, #5, #6 - 801adc2: b2db uxtb r3, r3 - 801adc4: 1ad3 subs r3, r2, r3 - 801adc6: 60fb str r3, [r7, #12] + 801ad1e: 883b ldrh r3, [r7, #0] + 801ad20: f3c3 1345 ubfx r3, r3, #5, #6 + 801ad24: b2db uxtb r3, r3 + 801ad26: 461a mov r2, r3 + 801ad28: 88bb ldrh r3, [r7, #4] + 801ad2a: f3c3 1345 ubfx r3, r3, #5, #6 + 801ad2e: b2db uxtb r3, r3 + 801ad30: 1ad3 subs r3, r2, r3 + 801ad32: 60fb str r3, [r7, #12] fg.ch.green = LV_MAX(tmp, 0); - 801adc8: 68fb ldr r3, [r7, #12] - 801adca: ea23 73e3 bic.w r3, r3, r3, asr #31 - 801adce: f003 033f and.w r3, r3, #63 ; 0x3f - 801add2: b2da uxtb r2, r3 - 801add4: 88bb ldrh r3, [r7, #4] - 801add6: f362 134a bfi r3, r2, #5, #6 - 801adda: 80bb strh r3, [r7, #4] + 801ad34: 68fb ldr r3, [r7, #12] + 801ad36: ea23 73e3 bic.w r3, r3, r3, asr #31 + 801ad3a: f003 033f and.w r3, r3, #63 ; 0x3f + 801ad3e: b2da uxtb r2, r3 + 801ad40: 88bb ldrh r3, [r7, #4] + 801ad42: f362 134a bfi r3, r2, #5, #6 + 801ad46: 80bb strh r3, [r7, #4] tmp = LV_MAX(tmp, 0); fg.ch.green_h = tmp >> 3; fg.ch.green_l = tmp & 0x7; #endif tmp = bg.ch.blue - fg.ch.blue; - 801addc: 783b ldrb r3, [r7, #0] - 801adde: f3c3 0304 ubfx r3, r3, #0, #5 - 801ade2: b2db uxtb r3, r3 - 801ade4: 461a mov r2, r3 - 801ade6: 793b ldrb r3, [r7, #4] - 801ade8: f3c3 0304 ubfx r3, r3, #0, #5 - 801adec: b2db uxtb r3, r3 - 801adee: 1ad3 subs r3, r2, r3 - 801adf0: 60fb str r3, [r7, #12] + 801ad48: 783b ldrb r3, [r7, #0] + 801ad4a: f3c3 0304 ubfx r3, r3, #0, #5 + 801ad4e: b2db uxtb r3, r3 + 801ad50: 461a mov r2, r3 + 801ad52: 793b ldrb r3, [r7, #4] + 801ad54: f3c3 0304 ubfx r3, r3, #0, #5 + 801ad58: b2db uxtb r3, r3 + 801ad5a: 1ad3 subs r3, r2, r3 + 801ad5c: 60fb str r3, [r7, #12] fg.ch.blue = LV_MAX(tmp, 0); - 801adf2: 68fb ldr r3, [r7, #12] - 801adf4: ea23 73e3 bic.w r3, r3, r3, asr #31 - 801adf8: f003 031f and.w r3, r3, #31 - 801adfc: b2da uxtb r2, r3 - 801adfe: 793b ldrb r3, [r7, #4] - 801ae00: f362 0304 bfi r3, r2, #0, #5 - 801ae04: 713b strb r3, [r7, #4] + 801ad5e: 68fb ldr r3, [r7, #12] + 801ad60: ea23 73e3 bic.w r3, r3, r3, asr #31 + 801ad64: f003 031f and.w r3, r3, #31 + 801ad68: b2da uxtb r2, r3 + 801ad6a: 793b ldrb r3, [r7, #4] + 801ad6c: f362 0304 bfi r3, r2, #0, #5 + 801ad70: 713b strb r3, [r7, #4] if(opa == LV_OPA_COVER) return fg; - 801ae06: 78fb ldrb r3, [r7, #3] - 801ae08: 2bff cmp r3, #255 ; 0xff - 801ae0a: d101 bne.n 801ae10 - 801ae0c: 88bb ldrh r3, [r7, #4] - 801ae0e: e006 b.n 801ae1e + 801ad72: 78fb ldrb r3, [r7, #3] + 801ad74: 2bff cmp r3, #255 ; 0xff + 801ad76: d101 bne.n 801ad7c + 801ad78: 88bb ldrh r3, [r7, #4] + 801ad7a: e006 b.n 801ad8a return lv_color_mix(fg, bg, opa); - 801ae10: 78fb ldrb r3, [r7, #3] - 801ae12: 461a mov r2, r3 - 801ae14: 8839 ldrh r1, [r7, #0] - 801ae16: 88b8 ldrh r0, [r7, #4] - 801ae18: f7fe fd12 bl 8019840 - 801ae1c: 4603 mov r3, r0 + 801ad7c: 78fb ldrb r3, [r7, #3] + 801ad7e: 461a mov r2, r3 + 801ad80: 8839 ldrh r1, [r7, #0] + 801ad82: 88b8 ldrh r0, [r7, #4] + 801ad84: f7fe fd12 bl 80197ac + 801ad88: 4603 mov r3, r0 } - 801ae1e: 4618 mov r0, r3 - 801ae20: 3710 adds r7, #16 - 801ae22: 46bd mov sp, r7 - 801ae24: bd80 pop {r7, pc} + 801ad8a: 4618 mov r0, r3 + 801ad8c: 3710 adds r7, #16 + 801ad8e: 46bd mov sp, r7 + 801ad90: bd80 pop {r7, pc} -0801ae26 : +0801ad92 : static inline lv_color_t color_blend_true_color_multiply(lv_color_t fg, lv_color_t bg, lv_opa_t opa) { - 801ae26: b580 push {r7, lr} - 801ae28: b082 sub sp, #8 - 801ae2a: af00 add r7, sp, #0 - 801ae2c: 80b8 strh r0, [r7, #4] - 801ae2e: 8039 strh r1, [r7, #0] - 801ae30: 4613 mov r3, r2 - 801ae32: 70fb strb r3, [r7, #3] + 801ad92: b580 push {r7, lr} + 801ad94: b082 sub sp, #8 + 801ad96: af00 add r7, sp, #0 + 801ad98: 80b8 strh r0, [r7, #4] + 801ad9a: 8039 strh r1, [r7, #0] + 801ad9c: 4613 mov r3, r2 + 801ad9e: 70fb strb r3, [r7, #3] if(opa <= LV_OPA_MIN) return bg; - 801ae34: 78fb ldrb r3, [r7, #3] - 801ae36: 2b02 cmp r3, #2 - 801ae38: d801 bhi.n 801ae3e - 801ae3a: 883b ldrh r3, [r7, #0] - 801ae3c: e044 b.n 801aec8 + 801ada0: 78fb ldrb r3, [r7, #3] + 801ada2: 2b02 cmp r3, #2 + 801ada4: d801 bhi.n 801adaa + 801ada6: 883b ldrh r3, [r7, #0] + 801ada8: e044 b.n 801ae34 #if LV_COLOR_DEPTH == 32 fg.ch.red = (fg.ch.red * bg.ch.red) >> 8; fg.ch.green = (fg.ch.green * bg.ch.green) >> 8; fg.ch.blue = (fg.ch.blue * bg.ch.blue) >> 8; #elif LV_COLOR_DEPTH == 16 fg.ch.red = (fg.ch.red * bg.ch.red) >> 5; - 801ae3e: 797b ldrb r3, [r7, #5] - 801ae40: f3c3 03c4 ubfx r3, r3, #3, #5 - 801ae44: b2db uxtb r3, r3 - 801ae46: 461a mov r2, r3 - 801ae48: 787b ldrb r3, [r7, #1] - 801ae4a: f3c3 03c4 ubfx r3, r3, #3, #5 - 801ae4e: b2db uxtb r3, r3 - 801ae50: fb02 f303 mul.w r3, r2, r3 - 801ae54: 115b asrs r3, r3, #5 - 801ae56: f003 031f and.w r3, r3, #31 - 801ae5a: b2da uxtb r2, r3 - 801ae5c: 797b ldrb r3, [r7, #5] - 801ae5e: f362 03c7 bfi r3, r2, #3, #5 - 801ae62: 717b strb r3, [r7, #5] + 801adaa: 797b ldrb r3, [r7, #5] + 801adac: f3c3 03c4 ubfx r3, r3, #3, #5 + 801adb0: b2db uxtb r3, r3 + 801adb2: 461a mov r2, r3 + 801adb4: 787b ldrb r3, [r7, #1] + 801adb6: f3c3 03c4 ubfx r3, r3, #3, #5 + 801adba: b2db uxtb r3, r3 + 801adbc: fb02 f303 mul.w r3, r2, r3 + 801adc0: 115b asrs r3, r3, #5 + 801adc2: f003 031f and.w r3, r3, #31 + 801adc6: b2da uxtb r2, r3 + 801adc8: 797b ldrb r3, [r7, #5] + 801adca: f362 03c7 bfi r3, r2, #3, #5 + 801adce: 717b strb r3, [r7, #5] fg.ch.blue = (fg.ch.blue * bg.ch.blue) >> 5; - 801ae64: 793b ldrb r3, [r7, #4] - 801ae66: f3c3 0304 ubfx r3, r3, #0, #5 - 801ae6a: b2db uxtb r3, r3 - 801ae6c: 461a mov r2, r3 - 801ae6e: 783b ldrb r3, [r7, #0] - 801ae70: f3c3 0304 ubfx r3, r3, #0, #5 - 801ae74: b2db uxtb r3, r3 - 801ae76: fb02 f303 mul.w r3, r2, r3 - 801ae7a: 115b asrs r3, r3, #5 - 801ae7c: f003 031f and.w r3, r3, #31 - 801ae80: b2da uxtb r2, r3 - 801ae82: 793b ldrb r3, [r7, #4] - 801ae84: f362 0304 bfi r3, r2, #0, #5 - 801ae88: 713b strb r3, [r7, #4] + 801add0: 793b ldrb r3, [r7, #4] + 801add2: f3c3 0304 ubfx r3, r3, #0, #5 + 801add6: b2db uxtb r3, r3 + 801add8: 461a mov r2, r3 + 801adda: 783b ldrb r3, [r7, #0] + 801addc: f3c3 0304 ubfx r3, r3, #0, #5 + 801ade0: b2db uxtb r3, r3 + 801ade2: fb02 f303 mul.w r3, r2, r3 + 801ade6: 115b asrs r3, r3, #5 + 801ade8: f003 031f and.w r3, r3, #31 + 801adec: b2da uxtb r2, r3 + 801adee: 793b ldrb r3, [r7, #4] + 801adf0: f362 0304 bfi r3, r2, #0, #5 + 801adf4: 713b strb r3, [r7, #4] LV_COLOR_SET_G(fg, (LV_COLOR_GET_G(fg) * LV_COLOR_GET_G(bg)) >> 6); - 801ae8a: 88bb ldrh r3, [r7, #4] - 801ae8c: f3c3 1345 ubfx r3, r3, #5, #6 - 801ae90: b2db uxtb r3, r3 - 801ae92: 461a mov r2, r3 - 801ae94: 883b ldrh r3, [r7, #0] - 801ae96: f3c3 1345 ubfx r3, r3, #5, #6 - 801ae9a: b2db uxtb r3, r3 - 801ae9c: fb02 f303 mul.w r3, r2, r3 - 801aea0: 119b asrs r3, r3, #6 - 801aea2: f003 033f and.w r3, r3, #63 ; 0x3f - 801aea6: b2da uxtb r2, r3 - 801aea8: 88bb ldrh r3, [r7, #4] - 801aeaa: f362 134a bfi r3, r2, #5, #6 - 801aeae: 80bb strh r3, [r7, #4] + 801adf6: 88bb ldrh r3, [r7, #4] + 801adf8: f3c3 1345 ubfx r3, r3, #5, #6 + 801adfc: b2db uxtb r3, r3 + 801adfe: 461a mov r2, r3 + 801ae00: 883b ldrh r3, [r7, #0] + 801ae02: f3c3 1345 ubfx r3, r3, #5, #6 + 801ae06: b2db uxtb r3, r3 + 801ae08: fb02 f303 mul.w r3, r2, r3 + 801ae0c: 119b asrs r3, r3, #6 + 801ae0e: f003 033f and.w r3, r3, #63 ; 0x3f + 801ae12: b2da uxtb r2, r3 + 801ae14: 88bb ldrh r3, [r7, #4] + 801ae16: f362 134a bfi r3, r2, #5, #6 + 801ae1a: 80bb strh r3, [r7, #4] fg.ch.red = (fg.ch.red * bg.ch.red) >> 3; fg.ch.green = (fg.ch.green * bg.ch.green) >> 3; fg.ch.blue = (fg.ch.blue * bg.ch.blue) >> 2; #endif if(opa == LV_OPA_COVER) return fg; - 801aeb0: 78fb ldrb r3, [r7, #3] - 801aeb2: 2bff cmp r3, #255 ; 0xff - 801aeb4: d101 bne.n 801aeba - 801aeb6: 88bb ldrh r3, [r7, #4] - 801aeb8: e006 b.n 801aec8 + 801ae1c: 78fb ldrb r3, [r7, #3] + 801ae1e: 2bff cmp r3, #255 ; 0xff + 801ae20: d101 bne.n 801ae26 + 801ae22: 88bb ldrh r3, [r7, #4] + 801ae24: e006 b.n 801ae34 return lv_color_mix(fg, bg, opa); - 801aeba: 78fb ldrb r3, [r7, #3] - 801aebc: 461a mov r2, r3 - 801aebe: 8839 ldrh r1, [r7, #0] - 801aec0: 88b8 ldrh r0, [r7, #4] - 801aec2: f7fe fcbd bl 8019840 - 801aec6: 4603 mov r3, r0 + 801ae26: 78fb ldrb r3, [r7, #3] + 801ae28: 461a mov r2, r3 + 801ae2a: 8839 ldrh r1, [r7, #0] + 801ae2c: 88b8 ldrh r0, [r7, #4] + 801ae2e: f7fe fcbd bl 80197ac + 801ae32: 4603 mov r3, r0 } - 801aec8: 4618 mov r0, r3 - 801aeca: 3708 adds r7, #8 - 801aecc: 46bd mov sp, r7 - 801aece: bd80 pop {r7, pc} + 801ae34: 4618 mov r0, r3 + 801ae36: 3708 adds r7, #8 + 801ae38: 46bd mov sp, r7 + 801ae3a: bd80 pop {r7, pc} -0801aed0 : +0801ae3c : { - 801aed0: b480 push {r7} - 801aed2: b085 sub sp, #20 - 801aed4: af00 add r7, sp, #0 - 801aed6: 80b8 strh r0, [r7, #4] + 801ae3c: b480 push {r7} + 801ae3e: b085 sub sp, #20 + 801ae40: af00 add r7, sp, #0 + 801ae42: 80b8 strh r0, [r7, #4] LV_COLOR_SET_R32(ret, (LV_COLOR_GET_R(color) * 263 + 7) >> 5); - 801aed8: 797b ldrb r3, [r7, #5] - 801aeda: f3c3 03c4 ubfx r3, r3, #3, #5 - 801aede: b2db uxtb r3, r3 - 801aee0: 461a mov r2, r3 - 801aee2: 4613 mov r3, r2 - 801aee4: 015b lsls r3, r3, #5 - 801aee6: 4413 add r3, r2 - 801aee8: 00db lsls r3, r3, #3 - 801aeea: 1a9b subs r3, r3, r2 - 801aeec: 3307 adds r3, #7 - 801aeee: 115b asrs r3, r3, #5 - 801aef0: b2db uxtb r3, r3 - 801aef2: 73bb strb r3, [r7, #14] + 801ae44: 797b ldrb r3, [r7, #5] + 801ae46: f3c3 03c4 ubfx r3, r3, #3, #5 + 801ae4a: b2db uxtb r3, r3 + 801ae4c: 461a mov r2, r3 + 801ae4e: 4613 mov r3, r2 + 801ae50: 015b lsls r3, r3, #5 + 801ae52: 4413 add r3, r2 + 801ae54: 00db lsls r3, r3, #3 + 801ae56: 1a9b subs r3, r3, r2 + 801ae58: 3307 adds r3, #7 + 801ae5a: 115b asrs r3, r3, #5 + 801ae5c: b2db uxtb r3, r3 + 801ae5e: 73bb strb r3, [r7, #14] LV_COLOR_SET_G32(ret, (LV_COLOR_GET_G(color) * 259 + 3) >> 6); - 801aef4: 88bb ldrh r3, [r7, #4] - 801aef6: f3c3 1345 ubfx r3, r3, #5, #6 - 801aefa: b2db uxtb r3, r3 - 801aefc: 461a mov r2, r3 - 801aefe: 4613 mov r3, r2 - 801af00: 01db lsls r3, r3, #7 - 801af02: 4413 add r3, r2 - 801af04: 005b lsls r3, r3, #1 - 801af06: 4413 add r3, r2 - 801af08: 3303 adds r3, #3 - 801af0a: 119b asrs r3, r3, #6 - 801af0c: b2db uxtb r3, r3 - 801af0e: 737b strb r3, [r7, #13] + 801ae60: 88bb ldrh r3, [r7, #4] + 801ae62: f3c3 1345 ubfx r3, r3, #5, #6 + 801ae66: b2db uxtb r3, r3 + 801ae68: 461a mov r2, r3 + 801ae6a: 4613 mov r3, r2 + 801ae6c: 01db lsls r3, r3, #7 + 801ae6e: 4413 add r3, r2 + 801ae70: 005b lsls r3, r3, #1 + 801ae72: 4413 add r3, r2 + 801ae74: 3303 adds r3, #3 + 801ae76: 119b asrs r3, r3, #6 + 801ae78: b2db uxtb r3, r3 + 801ae7a: 737b strb r3, [r7, #13] LV_COLOR_SET_B32(ret, (LV_COLOR_GET_B(color) * 263 + 7) >> 5); - 801af10: 793b ldrb r3, [r7, #4] - 801af12: f3c3 0304 ubfx r3, r3, #0, #5 - 801af16: b2db uxtb r3, r3 - 801af18: 461a mov r2, r3 - 801af1a: 4613 mov r3, r2 - 801af1c: 015b lsls r3, r3, #5 - 801af1e: 4413 add r3, r2 - 801af20: 00db lsls r3, r3, #3 - 801af22: 1a9b subs r3, r3, r2 - 801af24: 3307 adds r3, #7 - 801af26: 115b asrs r3, r3, #5 - 801af28: b2db uxtb r3, r3 - 801af2a: 733b strb r3, [r7, #12] + 801ae7c: 793b ldrb r3, [r7, #4] + 801ae7e: f3c3 0304 ubfx r3, r3, #0, #5 + 801ae82: b2db uxtb r3, r3 + 801ae84: 461a mov r2, r3 + 801ae86: 4613 mov r3, r2 + 801ae88: 015b lsls r3, r3, #5 + 801ae8a: 4413 add r3, r2 + 801ae8c: 00db lsls r3, r3, #3 + 801ae8e: 1a9b subs r3, r3, r2 + 801ae90: 3307 adds r3, #7 + 801ae92: 115b asrs r3, r3, #5 + 801ae94: b2db uxtb r3, r3 + 801ae96: 733b strb r3, [r7, #12] LV_COLOR_SET_A32(ret, 0xFF); - 801af2c: 23ff movs r3, #255 ; 0xff - 801af2e: 73fb strb r3, [r7, #15] + 801ae98: 23ff movs r3, #255 ; 0xff + 801ae9a: 73fb strb r3, [r7, #15] return ret.full; - 801af30: 68fb ldr r3, [r7, #12] + 801ae9c: 68fb ldr r3, [r7, #12] } - 801af32: 4618 mov r0, r3 - 801af34: 3714 adds r7, #20 - 801af36: 46bd mov sp, r7 - 801af38: bc80 pop {r7} - 801af3a: 4770 bx lr + 801ae9e: 4618 mov r0, r3 + 801aea0: 3714 adds r7, #20 + 801aea2: 46bd mov sp, r7 + 801aea4: bc80 pop {r7} + 801aea6: 4770 bx lr -0801af3c : +0801aea8 : const void * ptr; const uint32_t value; }; static uint32_t compute_key(const lv_grad_dsc_t * g, lv_coord_t size, lv_coord_t w) { - 801af3c: b480 push {r7} - 801af3e: b085 sub sp, #20 - 801af40: af00 add r7, sp, #0 - 801af42: 6078 str r0, [r7, #4] - 801af44: 460b mov r3, r1 - 801af46: 807b strh r3, [r7, #2] - 801af48: 4613 mov r3, r2 - 801af4a: 803b strh r3, [r7, #0] + 801aea8: b480 push {r7} + 801aeaa: b085 sub sp, #20 + 801aeac: af00 add r7, sp, #0 + 801aeae: 6078 str r0, [r7, #4] + 801aeb0: 460b mov r3, r1 + 801aeb2: 807b strh r3, [r7, #2] + 801aeb4: 4613 mov r3, r2 + 801aeb6: 803b strh r3, [r7, #0] union void_cast v; v.ptr = g; - 801af4c: 687b ldr r3, [r7, #4] - 801af4e: 60fb str r3, [r7, #12] + 801aeb8: 687b ldr r3, [r7, #4] + 801aeba: 60fb str r3, [r7, #12] return (v.value ^ size ^ (w >> 1)); /*Yes, this is correct, it's like a hash that changes if the width changes*/ - 801af50: 68fa ldr r2, [r7, #12] - 801af52: f9b7 3002 ldrsh.w r3, [r7, #2] - 801af56: 4053 eors r3, r2 - 801af58: f9b7 2000 ldrsh.w r2, [r7] - 801af5c: 1052 asrs r2, r2, #1 - 801af5e: b212 sxth r2, r2 - 801af60: 4053 eors r3, r2 + 801aebc: 68fa ldr r2, [r7, #12] + 801aebe: f9b7 3002 ldrsh.w r3, [r7, #2] + 801aec2: 4053 eors r3, r2 + 801aec4: f9b7 2000 ldrsh.w r2, [r7] + 801aec8: 1052 asrs r2, r2, #1 + 801aeca: b212 sxth r2, r2 + 801aecc: 4053 eors r3, r2 } - 801af62: 4618 mov r0, r3 - 801af64: 3714 adds r7, #20 - 801af66: 46bd mov sp, r7 - 801af68: bc80 pop {r7} - 801af6a: 4770 bx lr + 801aece: 4618 mov r0, r3 + 801aed0: 3714 adds r7, #20 + 801aed2: 46bd mov sp, r7 + 801aed4: bc80 pop {r7} + 801aed6: 4770 bx lr -0801af6c : +0801aed8 : static size_t get_cache_item_size(lv_grad_t * c) { - 801af6c: b480 push {r7} - 801af6e: b085 sub sp, #20 - 801af70: af00 add r7, sp, #0 - 801af72: 6078 str r0, [r7, #4] + 801aed8: b480 push {r7} + 801aeda: b085 sub sp, #20 + 801aedc: af00 add r7, sp, #0 + 801aede: 6078 str r0, [r7, #4] size_t s = ALIGN(sizeof(*c)) + ALIGN(c->alloc_size * sizeof(lv_color_t)); - 801af74: 687b ldr r3, [r7, #4] - 801af76: f9b3 300c ldrsh.w r3, [r3, #12] - 801af7a: 005b lsls r3, r3, #1 - 801af7c: 3303 adds r3, #3 - 801af7e: f023 0303 bic.w r3, r3, #3 - 801af82: 3310 adds r3, #16 - 801af84: 60fb str r3, [r7, #12] + 801aee0: 687b ldr r3, [r7, #4] + 801aee2: f9b3 300c ldrsh.w r3, [r3, #12] + 801aee6: 005b lsls r3, r3, #1 + 801aee8: 3303 adds r3, #3 + 801aeea: f023 0303 bic.w r3, r3, #3 + 801aeee: 3310 adds r3, #16 + 801aef0: 60fb str r3, [r7, #12] s += ALIGN(c->size * sizeof(lv_color32_t)); #if LV_DITHER_ERROR_DIFFUSION == 1 s += ALIGN(c->w * sizeof(lv_scolor24_t)); #endif #endif return s; - 801af86: 68fb ldr r3, [r7, #12] + 801aef2: 68fb ldr r3, [r7, #12] } - 801af88: 4618 mov r0, r3 - 801af8a: 3714 adds r7, #20 - 801af8c: 46bd mov sp, r7 - 801af8e: bc80 pop {r7} - 801af90: 4770 bx lr + 801aef4: 4618 mov r0, r3 + 801aef6: 3714 adds r7, #20 + 801aef8: 46bd mov sp, r7 + 801aefa: bc80 pop {r7} + 801aefc: 4770 bx lr ... -0801af94 : +0801af00 : static lv_grad_t * next_in_cache(lv_grad_t * item) { - 801af94: b580 push {r7, lr} - 801af96: b084 sub sp, #16 - 801af98: af00 add r7, sp, #0 - 801af9a: 6078 str r0, [r7, #4] + 801af00: b580 push {r7, lr} + 801af02: b084 sub sp, #16 + 801af04: af00 add r7, sp, #0 + 801af06: 6078 str r0, [r7, #4] if(grad_cache_size == 0) return NULL; - 801af9c: 4b12 ldr r3, [pc, #72] ; (801afe8 ) - 801af9e: 681b ldr r3, [r3, #0] - 801afa0: 2b00 cmp r3, #0 - 801afa2: d101 bne.n 801afa8 - 801afa4: 2300 movs r3, #0 - 801afa6: e01a b.n 801afde + 801af08: 4b12 ldr r3, [pc, #72] ; (801af54 ) + 801af0a: 681b ldr r3, [r3, #0] + 801af0c: 2b00 cmp r3, #0 + 801af0e: d101 bne.n 801af14 + 801af10: 2300 movs r3, #0 + 801af12: e01a b.n 801af4a if(item == NULL) - 801afa8: 687b ldr r3, [r7, #4] - 801afaa: 2b00 cmp r3, #0 - 801afac: d102 bne.n 801afb4 + 801af14: 687b ldr r3, [r7, #4] + 801af16: 2b00 cmp r3, #0 + 801af18: d102 bne.n 801af20 return (lv_grad_t *)LV_GC_ROOT(_lv_grad_cache_mem); - 801afae: 4b0f ldr r3, [pc, #60] ; (801afec ) - 801afb0: 681b ldr r3, [r3, #0] - 801afb2: e014 b.n 801afde + 801af1a: 4b0f ldr r3, [pc, #60] ; (801af58 ) + 801af1c: 681b ldr r3, [r3, #0] + 801af1e: e014 b.n 801af4a if(item == NULL) - 801afb4: 687b ldr r3, [r7, #4] - 801afb6: 2b00 cmp r3, #0 - 801afb8: d101 bne.n 801afbe + 801af20: 687b ldr r3, [r7, #4] + 801af22: 2b00 cmp r3, #0 + 801af24: d101 bne.n 801af2a return NULL; - 801afba: 2300 movs r3, #0 - 801afbc: e00f b.n 801afde + 801af26: 2300 movs r3, #0 + 801af28: e00f b.n 801af4a size_t s = get_cache_item_size(item); - 801afbe: 6878 ldr r0, [r7, #4] - 801afc0: f7ff ffd4 bl 801af6c - 801afc4: 60f8 str r0, [r7, #12] + 801af2a: 6878 ldr r0, [r7, #4] + 801af2c: f7ff ffd4 bl 801aed8 + 801af30: 60f8 str r0, [r7, #12] /*Compute the size for this cache item*/ if((uint8_t *)item + s >= grad_cache_end) return NULL; - 801afc6: 687a ldr r2, [r7, #4] - 801afc8: 68fb ldr r3, [r7, #12] - 801afca: 441a add r2, r3 - 801afcc: 4b08 ldr r3, [pc, #32] ; (801aff0 ) - 801afce: 681b ldr r3, [r3, #0] - 801afd0: 429a cmp r2, r3 - 801afd2: d301 bcc.n 801afd8 - 801afd4: 2300 movs r3, #0 - 801afd6: e002 b.n 801afde + 801af32: 687a ldr r2, [r7, #4] + 801af34: 68fb ldr r3, [r7, #12] + 801af36: 441a add r2, r3 + 801af38: 4b08 ldr r3, [pc, #32] ; (801af5c ) + 801af3a: 681b ldr r3, [r3, #0] + 801af3c: 429a cmp r2, r3 + 801af3e: d301 bcc.n 801af44 + 801af40: 2300 movs r3, #0 + 801af42: e002 b.n 801af4a else return (lv_grad_t *)((uint8_t *)item + s); - 801afd8: 687a ldr r2, [r7, #4] - 801afda: 68fb ldr r3, [r7, #12] - 801afdc: 4413 add r3, r2 + 801af44: 687a ldr r2, [r7, #4] + 801af46: 68fb ldr r3, [r7, #12] + 801af48: 4413 add r3, r2 } - 801afde: 4618 mov r0, r3 - 801afe0: 3710 adds r7, #16 - 801afe2: 46bd mov sp, r7 - 801afe4: bd80 pop {r7, pc} - 801afe6: bf00 nop - 801afe8: 20001b14 .word 0x20001b14 - 801afec: 20001f0c .word 0x20001f0c - 801aff0: 20001b18 .word 0x20001b18 + 801af4a: 4618 mov r0, r3 + 801af4c: 3710 adds r7, #16 + 801af4e: 46bd mov sp, r7 + 801af50: bd80 pop {r7, pc} + 801af52: bf00 nop + 801af54: 20001b14 .word 0x20001b14 + 801af58: 20001f0c .word 0x20001f0c + 801af5c: 20001b18 .word 0x20001b18 -0801aff4 : +0801af60 : static lv_res_t iterate_cache(op_cache_t func, void * ctx, lv_grad_t ** out) +{ + 801af60: b580 push {r7, lr} + 801af62: b086 sub sp, #24 + 801af64: af00 add r7, sp, #0 + 801af66: 60f8 str r0, [r7, #12] + 801af68: 60b9 str r1, [r7, #8] + 801af6a: 607a str r2, [r7, #4] + lv_grad_t * first = next_in_cache(NULL); + 801af6c: 2000 movs r0, #0 + 801af6e: f7ff ffc7 bl 801af00 + 801af72: 6178 str r0, [r7, #20] + while(first != NULL && first->life) { + 801af74: e012 b.n 801af9c + if((*func)(first, ctx) == LV_RES_OK) { + 801af76: 68fb ldr r3, [r7, #12] + 801af78: 68b9 ldr r1, [r7, #8] + 801af7a: 6978 ldr r0, [r7, #20] + 801af7c: 4798 blx r3 + 801af7e: 4603 mov r3, r0 + 801af80: 2b01 cmp r3, #1 + 801af82: d107 bne.n 801af94 + if(out != NULL) *out = first; + 801af84: 687b ldr r3, [r7, #4] + 801af86: 2b00 cmp r3, #0 + 801af88: d002 beq.n 801af90 + 801af8a: 687b ldr r3, [r7, #4] + 801af8c: 697a ldr r2, [r7, #20] + 801af8e: 601a str r2, [r3, #0] + return LV_RES_OK; + 801af90: 2301 movs r3, #1 + 801af92: e00d b.n 801afb0 + } + first = next_in_cache(first); + 801af94: 6978 ldr r0, [r7, #20] + 801af96: f7ff ffb3 bl 801af00 + 801af9a: 6178 str r0, [r7, #20] + while(first != NULL && first->life) { + 801af9c: 697b ldr r3, [r7, #20] + 801af9e: 2b00 cmp r3, #0 + 801afa0: d005 beq.n 801afae + 801afa2: 697b ldr r3, [r7, #20] + 801afa4: 685b ldr r3, [r3, #4] + 801afa6: f023 4340 bic.w r3, r3, #3221225472 ; 0xc0000000 + 801afaa: 2b00 cmp r3, #0 + 801afac: d1e3 bne.n 801af76 + } + return LV_RES_INV; + 801afae: 2300 movs r3, #0 +} + 801afb0: 4618 mov r0, r3 + 801afb2: 3718 adds r7, #24 + 801afb4: 46bd mov sp, r7 + 801afb6: bd80 pop {r7, pc} + +0801afb8 : + +static lv_res_t find_oldest_item_life(lv_grad_t * c, void * ctx) +{ + 801afb8: b480 push {r7} + 801afba: b085 sub sp, #20 + 801afbc: af00 add r7, sp, #0 + 801afbe: 6078 str r0, [r7, #4] + 801afc0: 6039 str r1, [r7, #0] + uint32_t * min_life = (uint32_t *)ctx; + 801afc2: 683b ldr r3, [r7, #0] + 801afc4: 60fb str r3, [r7, #12] + if(c->life < *min_life) *min_life = c->life; + 801afc6: 687b ldr r3, [r7, #4] + 801afc8: 685b ldr r3, [r3, #4] + 801afca: f3c3 031d ubfx r3, r3, #0, #30 + 801afce: 461a mov r2, r3 + 801afd0: 68fb ldr r3, [r7, #12] + 801afd2: 681b ldr r3, [r3, #0] + 801afd4: 429a cmp r2, r3 + 801afd6: d206 bcs.n 801afe6 + 801afd8: 687b ldr r3, [r7, #4] + 801afda: 685b ldr r3, [r3, #4] + 801afdc: f3c3 031d ubfx r3, r3, #0, #30 + 801afe0: 461a mov r2, r3 + 801afe2: 68fb ldr r3, [r7, #12] + 801afe4: 601a str r2, [r3, #0] + return LV_RES_INV; + 801afe6: 2300 movs r3, #0 +} + 801afe8: 4618 mov r0, r3 + 801afea: 3714 adds r7, #20 + 801afec: 46bd mov sp, r7 + 801afee: bc80 pop {r7} + 801aff0: 4770 bx lr + ... + +0801aff4 : + +static void free_item(lv_grad_t * c) { 801aff4: b580 push {r7, lr} 801aff6: b086 sub sp, #24 801aff8: af00 add r7, sp, #0 - 801affa: 60f8 str r0, [r7, #12] - 801affc: 60b9 str r1, [r7, #8] - 801affe: 607a str r2, [r7, #4] - lv_grad_t * first = next_in_cache(NULL); - 801b000: 2000 movs r0, #0 - 801b002: f7ff ffc7 bl 801af94 - 801b006: 6178 str r0, [r7, #20] - while(first != NULL && first->life) { - 801b008: e012 b.n 801b030 - if((*func)(first, ctx) == LV_RES_OK) { - 801b00a: 68fb ldr r3, [r7, #12] - 801b00c: 68b9 ldr r1, [r7, #8] - 801b00e: 6978 ldr r0, [r7, #20] - 801b010: 4798 blx r3 - 801b012: 4603 mov r3, r0 - 801b014: 2b01 cmp r3, #1 - 801b016: d107 bne.n 801b028 - if(out != NULL) *out = first; - 801b018: 687b ldr r3, [r7, #4] - 801b01a: 2b00 cmp r3, #0 - 801b01c: d002 beq.n 801b024 - 801b01e: 687b ldr r3, [r7, #4] - 801b020: 697a ldr r2, [r7, #20] - 801b022: 601a str r2, [r3, #0] - return LV_RES_OK; - 801b024: 2301 movs r3, #1 - 801b026: e00d b.n 801b044 - } - first = next_in_cache(first); - 801b028: 6978 ldr r0, [r7, #20] - 801b02a: f7ff ffb3 bl 801af94 - 801b02e: 6178 str r0, [r7, #20] - while(first != NULL && first->life) { - 801b030: 697b ldr r3, [r7, #20] - 801b032: 2b00 cmp r3, #0 - 801b034: d005 beq.n 801b042 - 801b036: 697b ldr r3, [r7, #20] - 801b038: 685b ldr r3, [r3, #4] - 801b03a: f023 4340 bic.w r3, r3, #3221225472 ; 0xc0000000 - 801b03e: 2b00 cmp r3, #0 - 801b040: d1e3 bne.n 801b00a - } - return LV_RES_INV; - 801b042: 2300 movs r3, #0 -} - 801b044: 4618 mov r0, r3 - 801b046: 3718 adds r7, #24 - 801b048: 46bd mov sp, r7 - 801b04a: bd80 pop {r7, pc} - -0801b04c : - -static lv_res_t find_oldest_item_life(lv_grad_t * c, void * ctx) -{ - 801b04c: b480 push {r7} - 801b04e: b085 sub sp, #20 - 801b050: af00 add r7, sp, #0 - 801b052: 6078 str r0, [r7, #4] - 801b054: 6039 str r1, [r7, #0] - uint32_t * min_life = (uint32_t *)ctx; - 801b056: 683b ldr r3, [r7, #0] - 801b058: 60fb str r3, [r7, #12] - if(c->life < *min_life) *min_life = c->life; - 801b05a: 687b ldr r3, [r7, #4] - 801b05c: 685b ldr r3, [r3, #4] - 801b05e: f3c3 031d ubfx r3, r3, #0, #30 - 801b062: 461a mov r2, r3 - 801b064: 68fb ldr r3, [r7, #12] - 801b066: 681b ldr r3, [r3, #0] - 801b068: 429a cmp r2, r3 - 801b06a: d206 bcs.n 801b07a - 801b06c: 687b ldr r3, [r7, #4] - 801b06e: 685b ldr r3, [r3, #4] - 801b070: f3c3 031d ubfx r3, r3, #0, #30 - 801b074: 461a mov r2, r3 - 801b076: 68fb ldr r3, [r7, #12] - 801b078: 601a str r2, [r3, #0] - return LV_RES_INV; - 801b07a: 2300 movs r3, #0 -} - 801b07c: 4618 mov r0, r3 - 801b07e: 3714 adds r7, #20 - 801b080: 46bd mov sp, r7 - 801b082: bc80 pop {r7} - 801b084: 4770 bx lr - ... - -0801b088 : - -static void free_item(lv_grad_t * c) -{ - 801b088: b580 push {r7, lr} - 801b08a: b086 sub sp, #24 - 801b08c: af00 add r7, sp, #0 - 801b08e: 6078 str r0, [r7, #4] + 801affa: 6078 str r0, [r7, #4] size_t size = get_cache_item_size(c); - 801b090: 6878 ldr r0, [r7, #4] - 801b092: f7ff ff6b bl 801af6c - 801b096: 6178 str r0, [r7, #20] + 801affc: 6878 ldr r0, [r7, #4] + 801affe: f7ff ff6b bl 801aed8 + 801b002: 6178 str r0, [r7, #20] size_t next_items_size = (size_t)(grad_cache_end - (uint8_t *)c) - size; - 801b098: 4b1d ldr r3, [pc, #116] ; (801b110 ) - 801b09a: 681a ldr r2, [r3, #0] - 801b09c: 687b ldr r3, [r7, #4] - 801b09e: 1ad3 subs r3, r2, r3 - 801b0a0: 461a mov r2, r3 - 801b0a2: 697b ldr r3, [r7, #20] - 801b0a4: 1ad3 subs r3, r2, r3 - 801b0a6: 613b str r3, [r7, #16] + 801b004: 4b1d ldr r3, [pc, #116] ; (801b07c ) + 801b006: 681a ldr r2, [r3, #0] + 801b008: 687b ldr r3, [r7, #4] + 801b00a: 1ad3 subs r3, r2, r3 + 801b00c: 461a mov r2, r3 + 801b00e: 697b ldr r3, [r7, #20] + 801b010: 1ad3 subs r3, r2, r3 + 801b012: 613b str r3, [r7, #16] grad_cache_end -= size; - 801b0a8: 4b19 ldr r3, [pc, #100] ; (801b110 ) - 801b0aa: 681a ldr r2, [r3, #0] - 801b0ac: 697b ldr r3, [r7, #20] - 801b0ae: 425b negs r3, r3 - 801b0b0: 4413 add r3, r2 - 801b0b2: 4a17 ldr r2, [pc, #92] ; (801b110 ) - 801b0b4: 6013 str r3, [r2, #0] + 801b014: 4b19 ldr r3, [pc, #100] ; (801b07c ) + 801b016: 681a ldr r2, [r3, #0] + 801b018: 697b ldr r3, [r7, #20] + 801b01a: 425b negs r3, r3 + 801b01c: 4413 add r3, r2 + 801b01e: 4a17 ldr r2, [pc, #92] ; (801b07c ) + 801b020: 6013 str r3, [r2, #0] if(next_items_size) { - 801b0b6: 693b ldr r3, [r7, #16] - 801b0b8: 2b00 cmp r3, #0 - 801b0ba: d024 beq.n 801b106 + 801b022: 693b ldr r3, [r7, #16] + 801b024: 2b00 cmp r3, #0 + 801b026: d024 beq.n 801b072 uint8_t * old = (uint8_t *)c; - 801b0bc: 687b ldr r3, [r7, #4] - 801b0be: 60fb str r3, [r7, #12] + 801b028: 687b ldr r3, [r7, #4] + 801b02a: 60fb str r3, [r7, #12] lv_memcpy(c, ((uint8_t *)c) + size, next_items_size); - 801b0c0: 687a ldr r2, [r7, #4] - 801b0c2: 697b ldr r3, [r7, #20] - 801b0c4: 4413 add r3, r2 - 801b0c6: 693a ldr r2, [r7, #16] - 801b0c8: 4619 mov r1, r3 - 801b0ca: 6878 ldr r0, [r7, #4] - 801b0cc: f017 fd9c bl 8032c08 + 801b02c: 687a ldr r2, [r7, #4] + 801b02e: 697b ldr r3, [r7, #20] + 801b030: 4413 add r3, r2 + 801b032: 693a ldr r2, [r7, #16] + 801b034: 4619 mov r1, r3 + 801b036: 6878 ldr r0, [r7, #4] + 801b038: f017 fd9c bl 8032b74 /* Then need to fix all internal pointers too */ while((uint8_t *)c != grad_cache_end) { - 801b0d0: e00d b.n 801b0ee + 801b03c: e00d b.n 801b05a c->map = (lv_color_t *)(((uint8_t *)c->map) - size); - 801b0d2: 687b ldr r3, [r7, #4] - 801b0d4: 689a ldr r2, [r3, #8] - 801b0d6: 697b ldr r3, [r7, #20] - 801b0d8: 425b negs r3, r3 - 801b0da: 441a add r2, r3 - 801b0dc: 687b ldr r3, [r7, #4] - 801b0de: 609a str r2, [r3, #8] + 801b03e: 687b ldr r3, [r7, #4] + 801b040: 689a ldr r2, [r3, #8] + 801b042: 697b ldr r3, [r7, #20] + 801b044: 425b negs r3, r3 + 801b046: 441a add r2, r3 + 801b048: 687b ldr r3, [r7, #4] + 801b04a: 609a str r2, [r3, #8] c->hmap = (lv_color32_t *)(((uint8_t *)c->hmap) - size); #if LV_DITHER_ERROR_DIFFUSION == 1 c->error_acc = (lv_scolor24_t *)(((uint8_t *)c->error_acc) - size); #endif #endif c = (lv_grad_t *)(((uint8_t *)c) + get_cache_item_size(c)); - 801b0e0: 6878 ldr r0, [r7, #4] - 801b0e2: f7ff ff43 bl 801af6c - 801b0e6: 4602 mov r2, r0 - 801b0e8: 687b ldr r3, [r7, #4] - 801b0ea: 4413 add r3, r2 - 801b0ec: 607b str r3, [r7, #4] + 801b04c: 6878 ldr r0, [r7, #4] + 801b04e: f7ff ff43 bl 801aed8 + 801b052: 4602 mov r2, r0 + 801b054: 687b ldr r3, [r7, #4] + 801b056: 4413 add r3, r2 + 801b058: 607b str r3, [r7, #4] while((uint8_t *)c != grad_cache_end) { - 801b0ee: 4b08 ldr r3, [pc, #32] ; (801b110 ) - 801b0f0: 681b ldr r3, [r3, #0] - 801b0f2: 687a ldr r2, [r7, #4] - 801b0f4: 429a cmp r2, r3 - 801b0f6: d1ec bne.n 801b0d2 + 801b05a: 4b08 ldr r3, [pc, #32] ; (801b07c ) + 801b05c: 681b ldr r3, [r3, #0] + 801b05e: 687a ldr r2, [r7, #4] + 801b060: 429a cmp r2, r3 + 801b062: d1ec bne.n 801b03e } lv_memset_00(old + next_items_size, size); - 801b0f8: 68fa ldr r2, [r7, #12] - 801b0fa: 693b ldr r3, [r7, #16] - 801b0fc: 4413 add r3, r2 - 801b0fe: 6979 ldr r1, [r7, #20] - 801b100: 4618 mov r0, r3 - 801b102: f018 f825 bl 8033150 + 801b064: 68fa ldr r2, [r7, #12] + 801b066: 693b ldr r3, [r7, #16] + 801b068: 4413 add r3, r2 + 801b06a: 6979 ldr r1, [r7, #20] + 801b06c: 4618 mov r0, r3 + 801b06e: f018 f825 bl 80330bc } } - 801b106: bf00 nop - 801b108: 3718 adds r7, #24 - 801b10a: 46bd mov sp, r7 - 801b10c: bd80 pop {r7, pc} - 801b10e: bf00 nop - 801b110: 20001b18 .word 0x20001b18 + 801b072: bf00 nop + 801b074: 3718 adds r7, #24 + 801b076: 46bd mov sp, r7 + 801b078: bd80 pop {r7, pc} + 801b07a: bf00 nop + 801b07c: 20001b18 .word 0x20001b18 -0801b114 : +0801b080 : static lv_res_t kill_oldest_item(lv_grad_t * c, void * ctx) { - 801b114: b580 push {r7, lr} - 801b116: b084 sub sp, #16 - 801b118: af00 add r7, sp, #0 - 801b11a: 6078 str r0, [r7, #4] - 801b11c: 6039 str r1, [r7, #0] + 801b080: b580 push {r7, lr} + 801b082: b084 sub sp, #16 + 801b084: af00 add r7, sp, #0 + 801b086: 6078 str r0, [r7, #4] + 801b088: 6039 str r1, [r7, #0] uint32_t * min_life = (uint32_t *)ctx; - 801b11e: 683b ldr r3, [r7, #0] - 801b120: 60fb str r3, [r7, #12] + 801b08a: 683b ldr r3, [r7, #0] + 801b08c: 60fb str r3, [r7, #12] if(c->life == *min_life) { - 801b122: 687b ldr r3, [r7, #4] - 801b124: 685b ldr r3, [r3, #4] - 801b126: f3c3 031d ubfx r3, r3, #0, #30 - 801b12a: 461a mov r2, r3 - 801b12c: 68fb ldr r3, [r7, #12] - 801b12e: 681b ldr r3, [r3, #0] - 801b130: 429a cmp r2, r3 - 801b132: d104 bne.n 801b13e + 801b08e: 687b ldr r3, [r7, #4] + 801b090: 685b ldr r3, [r3, #4] + 801b092: f3c3 031d ubfx r3, r3, #0, #30 + 801b096: 461a mov r2, r3 + 801b098: 68fb ldr r3, [r7, #12] + 801b09a: 681b ldr r3, [r3, #0] + 801b09c: 429a cmp r2, r3 + 801b09e: d104 bne.n 801b0aa /*Found, let's kill it*/ free_item(c); - 801b134: 6878 ldr r0, [r7, #4] - 801b136: f7ff ffa7 bl 801b088 + 801b0a0: 6878 ldr r0, [r7, #4] + 801b0a2: f7ff ffa7 bl 801aff4 return LV_RES_OK; - 801b13a: 2301 movs r3, #1 - 801b13c: e000 b.n 801b140 + 801b0a6: 2301 movs r3, #1 + 801b0a8: e000 b.n 801b0ac } return LV_RES_INV; - 801b13e: 2300 movs r3, #0 + 801b0aa: 2300 movs r3, #0 } - 801b140: 4618 mov r0, r3 - 801b142: 3710 adds r7, #16 - 801b144: 46bd mov sp, r7 - 801b146: bd80 pop {r7, pc} + 801b0ac: 4618 mov r0, r3 + 801b0ae: 3710 adds r7, #16 + 801b0b0: 46bd mov sp, r7 + 801b0b2: bd80 pop {r7, pc} -0801b148 : +0801b0b4 : static lv_res_t find_item(lv_grad_t * c, void * ctx) { - 801b148: b480 push {r7} - 801b14a: b085 sub sp, #20 - 801b14c: af00 add r7, sp, #0 - 801b14e: 6078 str r0, [r7, #4] - 801b150: 6039 str r1, [r7, #0] + 801b0b4: b480 push {r7} + 801b0b6: b085 sub sp, #20 + 801b0b8: af00 add r7, sp, #0 + 801b0ba: 6078 str r0, [r7, #4] + 801b0bc: 6039 str r1, [r7, #0] uint32_t * k = (uint32_t *)ctx; - 801b152: 683b ldr r3, [r7, #0] - 801b154: 60fb str r3, [r7, #12] + 801b0be: 683b ldr r3, [r7, #0] + 801b0c0: 60fb str r3, [r7, #12] if(c->key == *k) return LV_RES_OK; - 801b156: 687b ldr r3, [r7, #4] - 801b158: 681a ldr r2, [r3, #0] - 801b15a: 68fb ldr r3, [r7, #12] - 801b15c: 681b ldr r3, [r3, #0] - 801b15e: 429a cmp r2, r3 - 801b160: d101 bne.n 801b166 - 801b162: 2301 movs r3, #1 - 801b164: e000 b.n 801b168 + 801b0c2: 687b ldr r3, [r7, #4] + 801b0c4: 681a ldr r2, [r3, #0] + 801b0c6: 68fb ldr r3, [r7, #12] + 801b0c8: 681b ldr r3, [r3, #0] + 801b0ca: 429a cmp r2, r3 + 801b0cc: d101 bne.n 801b0d2 + 801b0ce: 2301 movs r3, #1 + 801b0d0: e000 b.n 801b0d4 return LV_RES_INV; - 801b166: 2300 movs r3, #0 + 801b0d2: 2300 movs r3, #0 } - 801b168: 4618 mov r0, r3 - 801b16a: 3714 adds r7, #20 - 801b16c: 46bd mov sp, r7 - 801b16e: bc80 pop {r7} - 801b170: 4770 bx lr + 801b0d4: 4618 mov r0, r3 + 801b0d6: 3714 adds r7, #20 + 801b0d8: 46bd mov sp, r7 + 801b0da: bc80 pop {r7} + 801b0dc: 4770 bx lr ... -0801b174 : +0801b0e0 : static lv_grad_t * allocate_item(const lv_grad_dsc_t * g, lv_coord_t w, lv_coord_t h) { - 801b174: b580 push {r7, lr} - 801b176: b088 sub sp, #32 - 801b178: af00 add r7, sp, #0 - 801b17a: 6078 str r0, [r7, #4] - 801b17c: 460b mov r3, r1 - 801b17e: 807b strh r3, [r7, #2] - 801b180: 4613 mov r3, r2 - 801b182: 803b strh r3, [r7, #0] + 801b0e0: b580 push {r7, lr} + 801b0e2: b088 sub sp, #32 + 801b0e4: af00 add r7, sp, #0 + 801b0e6: 6078 str r0, [r7, #4] + 801b0e8: 460b mov r3, r1 + 801b0ea: 807b strh r3, [r7, #2] + 801b0ec: 4613 mov r3, r2 + 801b0ee: 803b strh r3, [r7, #0] lv_coord_t size = g->dir == LV_GRAD_DIR_HOR ? w : h; - 801b184: 687b ldr r3, [r7, #4] - 801b186: 7a5b ldrb r3, [r3, #9] - 801b188: f003 0307 and.w r3, r3, #7 - 801b18c: b2db uxtb r3, r3 - 801b18e: 2b02 cmp r3, #2 - 801b190: d102 bne.n 801b198 - 801b192: f9b7 3002 ldrsh.w r3, [r7, #2] - 801b196: e001 b.n 801b19c - 801b198: f9b7 3000 ldrsh.w r3, [r7] - 801b19c: 82fb strh r3, [r7, #22] + 801b0f0: 687b ldr r3, [r7, #4] + 801b0f2: 7a5b ldrb r3, [r3, #9] + 801b0f4: f003 0307 and.w r3, r3, #7 + 801b0f8: b2db uxtb r3, r3 + 801b0fa: 2b02 cmp r3, #2 + 801b0fc: d102 bne.n 801b104 + 801b0fe: f9b7 3002 ldrsh.w r3, [r7, #2] + 801b102: e001 b.n 801b108 + 801b104: f9b7 3000 ldrsh.w r3, [r7] + 801b108: 82fb strh r3, [r7, #22] lv_coord_t map_size = LV_MAX(w, h); /* The map is being used horizontally (width) unless - 801b19e: f9b7 2000 ldrsh.w r2, [r7] - 801b1a2: f9b7 3002 ldrsh.w r3, [r7, #2] - 801b1a6: 4293 cmp r3, r2 - 801b1a8: bfb8 it lt - 801b1aa: 4613 movlt r3, r2 - 801b1ac: 82bb strh r3, [r7, #20] + 801b10a: f9b7 2000 ldrsh.w r2, [r7] + 801b10e: f9b7 3002 ldrsh.w r3, [r7, #2] + 801b112: 4293 cmp r3, r2 + 801b114: bfb8 it lt + 801b116: 4613 movlt r3, r2 + 801b118: 82bb strh r3, [r7, #20] no dithering is selected where it's used vertically */ size_t req_size = ALIGN(sizeof(lv_grad_t)) + ALIGN(map_size * sizeof(lv_color_t)); - 801b1ae: f9b7 3014 ldrsh.w r3, [r7, #20] - 801b1b2: 005b lsls r3, r3, #1 - 801b1b4: 3303 adds r3, #3 - 801b1b6: f023 0303 bic.w r3, r3, #3 - 801b1ba: 3310 adds r3, #16 - 801b1bc: 613b str r3, [r7, #16] + 801b11a: f9b7 3014 ldrsh.w r3, [r7, #20] + 801b11e: 005b lsls r3, r3, #1 + 801b120: 3303 adds r3, #3 + 801b122: f023 0303 bic.w r3, r3, #3 + 801b126: 3310 adds r3, #16 + 801b128: 613b str r3, [r7, #16] #if LV_DITHER_ERROR_DIFFUSION == 1 req_size += ALIGN(w * sizeof(lv_scolor24_t)); #endif #endif size_t act_size = (size_t)(grad_cache_end - LV_GC_ROOT(_lv_grad_cache_mem)); - 801b1be: 4b49 ldr r3, [pc, #292] ; (801b2e4 ) - 801b1c0: 681a ldr r2, [r3, #0] - 801b1c2: 4b49 ldr r3, [pc, #292] ; (801b2e8 ) - 801b1c4: 681b ldr r3, [r3, #0] - 801b1c6: 1ad3 subs r3, r2, r3 - 801b1c8: 61fb str r3, [r7, #28] + 801b12a: 4b49 ldr r3, [pc, #292] ; (801b250 ) + 801b12c: 681a ldr r2, [r3, #0] + 801b12e: 4b49 ldr r3, [pc, #292] ; (801b254 ) + 801b130: 681b ldr r3, [r3, #0] + 801b132: 1ad3 subs r3, r2, r3 + 801b134: 61fb str r3, [r7, #28] lv_grad_t * item = NULL; - 801b1ca: 2300 movs r3, #0 - 801b1cc: 61bb str r3, [r7, #24] + 801b136: 2300 movs r3, #0 + 801b138: 61bb str r3, [r7, #24] if(req_size + act_size < grad_cache_size) { - 801b1ce: 693a ldr r2, [r7, #16] - 801b1d0: 69fb ldr r3, [r7, #28] - 801b1d2: 441a add r2, r3 - 801b1d4: 4b45 ldr r3, [pc, #276] ; (801b2ec ) - 801b1d6: 681b ldr r3, [r3, #0] - 801b1d8: 429a cmp r2, r3 - 801b1da: d208 bcs.n 801b1ee + 801b13a: 693a ldr r2, [r7, #16] + 801b13c: 69fb ldr r3, [r7, #28] + 801b13e: 441a add r2, r3 + 801b140: 4b45 ldr r3, [pc, #276] ; (801b258 ) + 801b142: 681b ldr r3, [r3, #0] + 801b144: 429a cmp r2, r3 + 801b146: d208 bcs.n 801b15a item = (lv_grad_t *)grad_cache_end; - 801b1dc: 4b41 ldr r3, [pc, #260] ; (801b2e4 ) - 801b1de: 681b ldr r3, [r3, #0] - 801b1e0: 61bb str r3, [r7, #24] + 801b148: 4b41 ldr r3, [pc, #260] ; (801b250 ) + 801b14a: 681b ldr r3, [r3, #0] + 801b14c: 61bb str r3, [r7, #24] item->not_cached = 0; - 801b1e2: 69ba ldr r2, [r7, #24] - 801b1e4: 79d3 ldrb r3, [r2, #7] - 801b1e6: f36f 13c7 bfc r3, #7, #1 - 801b1ea: 71d3 strb r3, [r2, #7] - 801b1ec: e03e b.n 801b26c + 801b14e: 69ba ldr r2, [r7, #24] + 801b150: 79d3 ldrb r3, [r2, #7] + 801b152: f36f 13c7 bfc r3, #7, #1 + 801b156: 71d3 strb r3, [r2, #7] + 801b158: e03e b.n 801b1d8 } else { /*Need to evict items from cache until we find enough space to allocate this one */ if(req_size <= grad_cache_size) { - 801b1ee: 4b3f ldr r3, [pc, #252] ; (801b2ec ) - 801b1f0: 681b ldr r3, [r3, #0] - 801b1f2: 693a ldr r2, [r7, #16] - 801b1f4: 429a cmp r2, r3 - 801b1f6: d827 bhi.n 801b248 + 801b15a: 4b3f ldr r3, [pc, #252] ; (801b258 ) + 801b15c: 681b ldr r3, [r3, #0] + 801b15e: 693a ldr r2, [r7, #16] + 801b160: 429a cmp r2, r3 + 801b162: d827 bhi.n 801b1b4 while(act_size + req_size > grad_cache_size) { - 801b1f8: e016 b.n 801b228 + 801b164: e016 b.n 801b194 uint32_t oldest_life = UINT32_MAX; - 801b1fa: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 801b1fe: 60bb str r3, [r7, #8] + 801b166: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 801b16a: 60bb str r3, [r7, #8] iterate_cache(&find_oldest_item_life, &oldest_life, NULL); - 801b200: f107 0308 add.w r3, r7, #8 - 801b204: 2200 movs r2, #0 - 801b206: 4619 mov r1, r3 - 801b208: 4839 ldr r0, [pc, #228] ; (801b2f0 ) - 801b20a: f7ff fef3 bl 801aff4 + 801b16c: f107 0308 add.w r3, r7, #8 + 801b170: 2200 movs r2, #0 + 801b172: 4619 mov r1, r3 + 801b174: 4839 ldr r0, [pc, #228] ; (801b25c ) + 801b176: f7ff fef3 bl 801af60 iterate_cache(&kill_oldest_item, &oldest_life, NULL); - 801b20e: f107 0308 add.w r3, r7, #8 - 801b212: 2200 movs r2, #0 - 801b214: 4619 mov r1, r3 - 801b216: 4837 ldr r0, [pc, #220] ; (801b2f4 ) - 801b218: f7ff feec bl 801aff4 + 801b17a: f107 0308 add.w r3, r7, #8 + 801b17e: 2200 movs r2, #0 + 801b180: 4619 mov r1, r3 + 801b182: 4837 ldr r0, [pc, #220] ; (801b260 ) + 801b184: f7ff feec bl 801af60 act_size = (size_t)(grad_cache_end - LV_GC_ROOT(_lv_grad_cache_mem)); - 801b21c: 4b31 ldr r3, [pc, #196] ; (801b2e4 ) - 801b21e: 681a ldr r2, [r3, #0] - 801b220: 4b31 ldr r3, [pc, #196] ; (801b2e8 ) - 801b222: 681b ldr r3, [r3, #0] - 801b224: 1ad3 subs r3, r2, r3 - 801b226: 61fb str r3, [r7, #28] + 801b188: 4b31 ldr r3, [pc, #196] ; (801b250 ) + 801b18a: 681a ldr r2, [r3, #0] + 801b18c: 4b31 ldr r3, [pc, #196] ; (801b254 ) + 801b18e: 681b ldr r3, [r3, #0] + 801b190: 1ad3 subs r3, r2, r3 + 801b192: 61fb str r3, [r7, #28] while(act_size + req_size > grad_cache_size) { - 801b228: 69fa ldr r2, [r7, #28] - 801b22a: 693b ldr r3, [r7, #16] - 801b22c: 441a add r2, r3 - 801b22e: 4b2f ldr r3, [pc, #188] ; (801b2ec ) - 801b230: 681b ldr r3, [r3, #0] - 801b232: 429a cmp r2, r3 - 801b234: d8e1 bhi.n 801b1fa + 801b194: 69fa ldr r2, [r7, #28] + 801b196: 693b ldr r3, [r7, #16] + 801b198: 441a add r2, r3 + 801b19a: 4b2f ldr r3, [pc, #188] ; (801b258 ) + 801b19c: 681b ldr r3, [r3, #0] + 801b19e: 429a cmp r2, r3 + 801b1a0: d8e1 bhi.n 801b166 } item = (lv_grad_t *)grad_cache_end; - 801b236: 4b2b ldr r3, [pc, #172] ; (801b2e4 ) - 801b238: 681b ldr r3, [r3, #0] - 801b23a: 61bb str r3, [r7, #24] + 801b1a2: 4b2b ldr r3, [pc, #172] ; (801b250 ) + 801b1a4: 681b ldr r3, [r3, #0] + 801b1a6: 61bb str r3, [r7, #24] item->not_cached = 0; - 801b23c: 69ba ldr r2, [r7, #24] - 801b23e: 79d3 ldrb r3, [r2, #7] - 801b240: f36f 13c7 bfc r3, #7, #1 - 801b244: 71d3 strb r3, [r2, #7] - 801b246: e011 b.n 801b26c + 801b1a8: 69ba ldr r2, [r7, #24] + 801b1aa: 79d3 ldrb r3, [r2, #7] + 801b1ac: f36f 13c7 bfc r3, #7, #1 + 801b1b0: 71d3 strb r3, [r2, #7] + 801b1b2: e011 b.n 801b1d8 } else { /*The cache is too small. Allocate the item manually and free it later.*/ item = lv_mem_alloc(req_size); - 801b248: 6938 ldr r0, [r7, #16] - 801b24a: f017 fb25 bl 8032898 - 801b24e: 61b8 str r0, [r7, #24] + 801b1b4: 6938 ldr r0, [r7, #16] + 801b1b6: f017 fb25 bl 8032804 + 801b1ba: 61b8 str r0, [r7, #24] LV_ASSERT_MALLOC(item); - 801b250: 69bb ldr r3, [r7, #24] - 801b252: 2b00 cmp r3, #0 - 801b254: d100 bne.n 801b258 - 801b256: e7fe b.n 801b256 + 801b1bc: 69bb ldr r3, [r7, #24] + 801b1be: 2b00 cmp r3, #0 + 801b1c0: d100 bne.n 801b1c4 + 801b1c2: e7fe b.n 801b1c2 if(item == NULL) return NULL; - 801b258: 69bb ldr r3, [r7, #24] - 801b25a: 2b00 cmp r3, #0 - 801b25c: d101 bne.n 801b262 - 801b25e: 2300 movs r3, #0 - 801b260: e03c b.n 801b2dc + 801b1c4: 69bb ldr r3, [r7, #24] + 801b1c6: 2b00 cmp r3, #0 + 801b1c8: d101 bne.n 801b1ce + 801b1ca: 2300 movs r3, #0 + 801b1cc: e03c b.n 801b248 item->not_cached = 1; - 801b262: 69ba ldr r2, [r7, #24] - 801b264: 79d3 ldrb r3, [r2, #7] - 801b266: f043 0380 orr.w r3, r3, #128 ; 0x80 - 801b26a: 71d3 strb r3, [r2, #7] + 801b1ce: 69ba ldr r2, [r7, #24] + 801b1d0: 79d3 ldrb r3, [r2, #7] + 801b1d2: f043 0380 orr.w r3, r3, #128 ; 0x80 + 801b1d6: 71d3 strb r3, [r2, #7] } } item->key = compute_key(g, size, w); - 801b26c: f9b7 2002 ldrsh.w r2, [r7, #2] - 801b270: f9b7 3016 ldrsh.w r3, [r7, #22] - 801b274: 4619 mov r1, r3 - 801b276: 6878 ldr r0, [r7, #4] - 801b278: f7ff fe60 bl 801af3c - 801b27c: 4602 mov r2, r0 - 801b27e: 69bb ldr r3, [r7, #24] - 801b280: 601a str r2, [r3, #0] + 801b1d8: f9b7 2002 ldrsh.w r2, [r7, #2] + 801b1dc: f9b7 3016 ldrsh.w r3, [r7, #22] + 801b1e0: 4619 mov r1, r3 + 801b1e2: 6878 ldr r0, [r7, #4] + 801b1e4: f7ff fe60 bl 801aea8 + 801b1e8: 4602 mov r2, r0 + 801b1ea: 69bb ldr r3, [r7, #24] + 801b1ec: 601a str r2, [r3, #0] item->life = 1; - 801b282: 69ba ldr r2, [r7, #24] - 801b284: 6853 ldr r3, [r2, #4] - 801b286: 2101 movs r1, #1 - 801b288: f361 031d bfi r3, r1, #0, #30 - 801b28c: 6053 str r3, [r2, #4] + 801b1ee: 69ba ldr r2, [r7, #24] + 801b1f0: 6853 ldr r3, [r2, #4] + 801b1f2: 2101 movs r1, #1 + 801b1f4: f361 031d bfi r3, r1, #0, #30 + 801b1f8: 6053 str r3, [r2, #4] item->filled = 0; - 801b28e: 69ba ldr r2, [r7, #24] - 801b290: 79d3 ldrb r3, [r2, #7] - 801b292: f36f 1386 bfc r3, #6, #1 - 801b296: 71d3 strb r3, [r2, #7] + 801b1fa: 69ba ldr r2, [r7, #24] + 801b1fc: 79d3 ldrb r3, [r2, #7] + 801b1fe: f36f 1386 bfc r3, #6, #1 + 801b202: 71d3 strb r3, [r2, #7] item->alloc_size = map_size; - 801b298: 69bb ldr r3, [r7, #24] - 801b29a: 8aba ldrh r2, [r7, #20] - 801b29c: 819a strh r2, [r3, #12] + 801b204: 69bb ldr r3, [r7, #24] + 801b206: 8aba ldrh r2, [r7, #20] + 801b208: 819a strh r2, [r3, #12] item->size = size; - 801b29e: 69bb ldr r3, [r7, #24] - 801b2a0: 8afa ldrh r2, [r7, #22] - 801b2a2: 81da strh r2, [r3, #14] + 801b20a: 69bb ldr r3, [r7, #24] + 801b20c: 8afa ldrh r2, [r7, #22] + 801b20e: 81da strh r2, [r3, #14] if(item->not_cached) { - 801b2a4: 69bb ldr r3, [r7, #24] - 801b2a6: 79db ldrb r3, [r3, #7] - 801b2a8: f023 037f bic.w r3, r3, #127 ; 0x7f - 801b2ac: b2db uxtb r3, r3 - 801b2ae: 2b00 cmp r3, #0 - 801b2b0: d007 beq.n 801b2c2 + 801b210: 69bb ldr r3, [r7, #24] + 801b212: 79db ldrb r3, [r3, #7] + 801b214: f023 037f bic.w r3, r3, #127 ; 0x7f + 801b218: b2db uxtb r3, r3 + 801b21a: 2b00 cmp r3, #0 + 801b21c: d007 beq.n 801b22e uint8_t * p = (uint8_t *)item; - 801b2b2: 69bb ldr r3, [r7, #24] - 801b2b4: 60fb str r3, [r7, #12] + 801b21e: 69bb ldr r3, [r7, #24] + 801b220: 60fb str r3, [r7, #12] item->map = (lv_color_t *)(p + ALIGN(sizeof(*item))); - 801b2b6: 68fb ldr r3, [r7, #12] - 801b2b8: f103 0210 add.w r2, r3, #16 - 801b2bc: 69bb ldr r3, [r7, #24] - 801b2be: 609a str r2, [r3, #8] - 801b2c0: e00b b.n 801b2da + 801b222: 68fb ldr r3, [r7, #12] + 801b224: f103 0210 add.w r2, r3, #16 + 801b228: 69bb ldr r3, [r7, #24] + 801b22a: 609a str r2, [r3, #8] + 801b22c: e00b b.n 801b246 item->w = w; #endif #endif } else { item->map = (lv_color_t *)(grad_cache_end + ALIGN(sizeof(*item))); - 801b2c2: 4b08 ldr r3, [pc, #32] ; (801b2e4 ) - 801b2c4: 681b ldr r3, [r3, #0] - 801b2c6: f103 0210 add.w r2, r3, #16 - 801b2ca: 69bb ldr r3, [r7, #24] - 801b2cc: 609a str r2, [r3, #8] + 801b22e: 4b08 ldr r3, [pc, #32] ; (801b250 ) + 801b230: 681b ldr r3, [r3, #0] + 801b232: f103 0210 add.w r2, r3, #16 + 801b236: 69bb ldr r3, [r7, #24] + 801b238: 609a str r2, [r3, #8] item->error_acc = (lv_scolor24_t *)(grad_cache_end + ALIGN(sizeof(*item)) + ALIGN(size * sizeof(lv_grad_color_t)) + ALIGN(map_size * sizeof(lv_color_t))); item->w = w; #endif #endif grad_cache_end += req_size; - 801b2ce: 4b05 ldr r3, [pc, #20] ; (801b2e4 ) - 801b2d0: 681a ldr r2, [r3, #0] - 801b2d2: 693b ldr r3, [r7, #16] - 801b2d4: 4413 add r3, r2 - 801b2d6: 4a03 ldr r2, [pc, #12] ; (801b2e4 ) - 801b2d8: 6013 str r3, [r2, #0] + 801b23a: 4b05 ldr r3, [pc, #20] ; (801b250 ) + 801b23c: 681a ldr r2, [r3, #0] + 801b23e: 693b ldr r3, [r7, #16] + 801b240: 4413 add r3, r2 + 801b242: 4a03 ldr r2, [pc, #12] ; (801b250 ) + 801b244: 6013 str r3, [r2, #0] } return item; - 801b2da: 69bb ldr r3, [r7, #24] + 801b246: 69bb ldr r3, [r7, #24] } - 801b2dc: 4618 mov r0, r3 - 801b2de: 3720 adds r7, #32 - 801b2e0: 46bd mov sp, r7 - 801b2e2: bd80 pop {r7, pc} - 801b2e4: 20001b18 .word 0x20001b18 - 801b2e8: 20001f0c .word 0x20001f0c - 801b2ec: 20001b14 .word 0x20001b14 - 801b2f0: 0801b04d .word 0x0801b04d - 801b2f4: 0801b115 .word 0x0801b115 + 801b248: 4618 mov r0, r3 + 801b24a: 3720 adds r7, #32 + 801b24c: 46bd mov sp, r7 + 801b24e: bd80 pop {r7, pc} + 801b250: 20001b18 .word 0x20001b18 + 801b254: 20001f0c .word 0x20001f0c + 801b258: 20001b14 .word 0x20001b14 + 801b25c: 0801afb9 .word 0x0801afb9 + 801b260: 0801b081 .word 0x0801b081 -0801b2f8 : +0801b264 : LV_GC_ROOT(_lv_grad_cache_mem) = grad_cache_end = NULL; grad_cache_size = 0; } void lv_gradient_set_cache_size(size_t max_bytes) { - 801b2f8: b580 push {r7, lr} - 801b2fa: b082 sub sp, #8 - 801b2fc: af00 add r7, sp, #0 - 801b2fe: 6078 str r0, [r7, #4] + 801b264: b580 push {r7, lr} + 801b266: b082 sub sp, #8 + 801b268: af00 add r7, sp, #0 + 801b26a: 6078 str r0, [r7, #4] lv_mem_free(LV_GC_ROOT(_lv_grad_cache_mem)); - 801b300: 4b10 ldr r3, [pc, #64] ; (801b344 ) - 801b302: 681b ldr r3, [r3, #0] - 801b304: 4618 mov r0, r3 - 801b306: f017 fae9 bl 80328dc + 801b26c: 4b10 ldr r3, [pc, #64] ; (801b2b0 ) + 801b26e: 681b ldr r3, [r3, #0] + 801b270: 4618 mov r0, r3 + 801b272: f017 fae9 bl 8032848 grad_cache_end = LV_GC_ROOT(_lv_grad_cache_mem) = lv_mem_alloc(max_bytes); - 801b30a: 6878 ldr r0, [r7, #4] - 801b30c: f017 fac4 bl 8032898 - 801b310: 4603 mov r3, r0 - 801b312: 4a0c ldr r2, [pc, #48] ; (801b344 ) - 801b314: 6013 str r3, [r2, #0] - 801b316: 4b0b ldr r3, [pc, #44] ; (801b344 ) - 801b318: 681b ldr r3, [r3, #0] - 801b31a: 4a0b ldr r2, [pc, #44] ; (801b348 ) - 801b31c: 6013 str r3, [r2, #0] + 801b276: 6878 ldr r0, [r7, #4] + 801b278: f017 fac4 bl 8032804 + 801b27c: 4603 mov r3, r0 + 801b27e: 4a0c ldr r2, [pc, #48] ; (801b2b0 ) + 801b280: 6013 str r3, [r2, #0] + 801b282: 4b0b ldr r3, [pc, #44] ; (801b2b0 ) + 801b284: 681b ldr r3, [r3, #0] + 801b286: 4a0b ldr r2, [pc, #44] ; (801b2b4 ) + 801b288: 6013 str r3, [r2, #0] LV_ASSERT_MALLOC(LV_GC_ROOT(_lv_grad_cache_mem)); - 801b31e: 4b09 ldr r3, [pc, #36] ; (801b344 ) - 801b320: 681b ldr r3, [r3, #0] - 801b322: 2b00 cmp r3, #0 - 801b324: d100 bne.n 801b328 - 801b326: e7fe b.n 801b326 + 801b28a: 4b09 ldr r3, [pc, #36] ; (801b2b0 ) + 801b28c: 681b ldr r3, [r3, #0] + 801b28e: 2b00 cmp r3, #0 + 801b290: d100 bne.n 801b294 + 801b292: e7fe b.n 801b292 lv_memset_00(LV_GC_ROOT(_lv_grad_cache_mem), max_bytes); - 801b328: 4b06 ldr r3, [pc, #24] ; (801b344 ) - 801b32a: 681b ldr r3, [r3, #0] - 801b32c: 6879 ldr r1, [r7, #4] - 801b32e: 4618 mov r0, r3 - 801b330: f017 ff0e bl 8033150 + 801b294: 4b06 ldr r3, [pc, #24] ; (801b2b0 ) + 801b296: 681b ldr r3, [r3, #0] + 801b298: 6879 ldr r1, [r7, #4] + 801b29a: 4618 mov r0, r3 + 801b29c: f017 ff0e bl 80330bc grad_cache_size = max_bytes; - 801b334: 4a05 ldr r2, [pc, #20] ; (801b34c ) - 801b336: 687b ldr r3, [r7, #4] - 801b338: 6013 str r3, [r2, #0] + 801b2a0: 4a05 ldr r2, [pc, #20] ; (801b2b8 ) + 801b2a2: 687b ldr r3, [r7, #4] + 801b2a4: 6013 str r3, [r2, #0] } - 801b33a: bf00 nop - 801b33c: 3708 adds r7, #8 - 801b33e: 46bd mov sp, r7 - 801b340: bd80 pop {r7, pc} - 801b342: bf00 nop - 801b344: 20001f0c .word 0x20001f0c - 801b348: 20001b18 .word 0x20001b18 - 801b34c: 20001b14 .word 0x20001b14 + 801b2a6: bf00 nop + 801b2a8: 3708 adds r7, #8 + 801b2aa: 46bd mov sp, r7 + 801b2ac: bd80 pop {r7, pc} + 801b2ae: bf00 nop + 801b2b0: 20001f0c .word 0x20001f0c + 801b2b4: 20001b18 .word 0x20001b18 + 801b2b8: 20001b14 .word 0x20001b14 -0801b350 : +0801b2bc : lv_grad_t * lv_gradient_get(const lv_grad_dsc_t * g, lv_coord_t w, lv_coord_t h) { - 801b350: b590 push {r4, r7, lr} - 801b352: b087 sub sp, #28 - 801b354: af00 add r7, sp, #0 - 801b356: 6078 str r0, [r7, #4] - 801b358: 460b mov r3, r1 - 801b35a: 807b strh r3, [r7, #2] - 801b35c: 4613 mov r3, r2 - 801b35e: 803b strh r3, [r7, #0] + 801b2bc: b590 push {r4, r7, lr} + 801b2be: b087 sub sp, #28 + 801b2c0: af00 add r7, sp, #0 + 801b2c2: 6078 str r0, [r7, #4] + 801b2c4: 460b mov r3, r1 + 801b2c6: 807b strh r3, [r7, #2] + 801b2c8: 4613 mov r3, r2 + 801b2ca: 803b strh r3, [r7, #0] /* No gradient, no cache */ if(g->dir == LV_GRAD_DIR_NONE) return NULL; - 801b360: 687b ldr r3, [r7, #4] - 801b362: 7a5b ldrb r3, [r3, #9] - 801b364: f003 0307 and.w r3, r3, #7 - 801b368: b2db uxtb r3, r3 - 801b36a: 2b00 cmp r3, #0 - 801b36c: d101 bne.n 801b372 - 801b36e: 2300 movs r3, #0 - 801b370: e06e b.n 801b450 + 801b2cc: 687b ldr r3, [r7, #4] + 801b2ce: 7a5b ldrb r3, [r3, #9] + 801b2d0: f003 0307 and.w r3, r3, #7 + 801b2d4: b2db uxtb r3, r3 + 801b2d6: 2b00 cmp r3, #0 + 801b2d8: d101 bne.n 801b2de + 801b2da: 2300 movs r3, #0 + 801b2dc: e06e b.n 801b3bc /* Step 0: Check if the cache exist (else create it) */ static bool inited = false; if(!inited) { - 801b372: 4b39 ldr r3, [pc, #228] ; (801b458 ) - 801b374: 781b ldrb r3, [r3, #0] - 801b376: f083 0301 eor.w r3, r3, #1 - 801b37a: b2db uxtb r3, r3 - 801b37c: 2b00 cmp r3, #0 - 801b37e: d005 beq.n 801b38c + 801b2de: 4b39 ldr r3, [pc, #228] ; (801b3c4 ) + 801b2e0: 781b ldrb r3, [r3, #0] + 801b2e2: f083 0301 eor.w r3, r3, #1 + 801b2e6: b2db uxtb r3, r3 + 801b2e8: 2b00 cmp r3, #0 + 801b2ea: d005 beq.n 801b2f8 lv_gradient_set_cache_size(LV_GRAD_CACHE_DEF_SIZE); - 801b380: 2000 movs r0, #0 - 801b382: f7ff ffb9 bl 801b2f8 + 801b2ec: 2000 movs r0, #0 + 801b2ee: f7ff ffb9 bl 801b264 inited = true; - 801b386: 4b34 ldr r3, [pc, #208] ; (801b458 ) - 801b388: 2201 movs r2, #1 - 801b38a: 701a strb r2, [r3, #0] + 801b2f2: 4b34 ldr r3, [pc, #208] ; (801b3c4 ) + 801b2f4: 2201 movs r2, #1 + 801b2f6: 701a strb r2, [r3, #0] } /* Step 1: Search cache for the given key */ lv_coord_t size = g->dir == LV_GRAD_DIR_HOR ? w : h; - 801b38c: 687b ldr r3, [r7, #4] - 801b38e: 7a5b ldrb r3, [r3, #9] - 801b390: f003 0307 and.w r3, r3, #7 - 801b394: b2db uxtb r3, r3 - 801b396: 2b02 cmp r3, #2 - 801b398: d102 bne.n 801b3a0 - 801b39a: f9b7 3002 ldrsh.w r3, [r7, #2] - 801b39e: e001 b.n 801b3a4 - 801b3a0: f9b7 3000 ldrsh.w r3, [r7] - 801b3a4: 82bb strh r3, [r7, #20] + 801b2f8: 687b ldr r3, [r7, #4] + 801b2fa: 7a5b ldrb r3, [r3, #9] + 801b2fc: f003 0307 and.w r3, r3, #7 + 801b300: b2db uxtb r3, r3 + 801b302: 2b02 cmp r3, #2 + 801b304: d102 bne.n 801b30c + 801b306: f9b7 3002 ldrsh.w r3, [r7, #2] + 801b30a: e001 b.n 801b310 + 801b30c: f9b7 3000 ldrsh.w r3, [r7] + 801b310: 82bb strh r3, [r7, #20] uint32_t key = compute_key(g, size, w); - 801b3a6: f9b7 2002 ldrsh.w r2, [r7, #2] - 801b3aa: f9b7 3014 ldrsh.w r3, [r7, #20] - 801b3ae: 4619 mov r1, r3 - 801b3b0: 6878 ldr r0, [r7, #4] - 801b3b2: f7ff fdc3 bl 801af3c - 801b3b6: 4603 mov r3, r0 - 801b3b8: 613b str r3, [r7, #16] + 801b312: f9b7 2002 ldrsh.w r2, [r7, #2] + 801b316: f9b7 3014 ldrsh.w r3, [r7, #20] + 801b31a: 4619 mov r1, r3 + 801b31c: 6878 ldr r0, [r7, #4] + 801b31e: f7ff fdc3 bl 801aea8 + 801b322: 4603 mov r3, r0 + 801b324: 613b str r3, [r7, #16] lv_grad_t * item = NULL; - 801b3ba: 2300 movs r3, #0 - 801b3bc: 60fb str r3, [r7, #12] + 801b326: 2300 movs r3, #0 + 801b328: 60fb str r3, [r7, #12] if(iterate_cache(&find_item, &key, &item) == LV_RES_OK) { - 801b3be: f107 020c add.w r2, r7, #12 - 801b3c2: f107 0310 add.w r3, r7, #16 - 801b3c6: 4619 mov r1, r3 - 801b3c8: 4824 ldr r0, [pc, #144] ; (801b45c ) - 801b3ca: f7ff fe13 bl 801aff4 - 801b3ce: 4603 mov r3, r0 - 801b3d0: 2b01 cmp r3, #1 - 801b3d2: d10c bne.n 801b3ee + 801b32a: f107 020c add.w r2, r7, #12 + 801b32e: f107 0310 add.w r3, r7, #16 + 801b332: 4619 mov r1, r3 + 801b334: 4824 ldr r0, [pc, #144] ; (801b3c8 ) + 801b336: f7ff fe13 bl 801af60 + 801b33a: 4603 mov r3, r0 + 801b33c: 2b01 cmp r3, #1 + 801b33e: d10c bne.n 801b35a item->life++; /* Don't forget to bump the counter */ - 801b3d4: 68fb ldr r3, [r7, #12] - 801b3d6: 685a ldr r2, [r3, #4] - 801b3d8: f3c2 021d ubfx r2, r2, #0, #30 - 801b3dc: 1c51 adds r1, r2, #1 - 801b3de: f021 4140 bic.w r1, r1, #3221225472 ; 0xc0000000 - 801b3e2: 685a ldr r2, [r3, #4] - 801b3e4: f361 021d bfi r2, r1, #0, #30 - 801b3e8: 605a str r2, [r3, #4] + 801b340: 68fb ldr r3, [r7, #12] + 801b342: 685a ldr r2, [r3, #4] + 801b344: f3c2 021d ubfx r2, r2, #0, #30 + 801b348: 1c51 adds r1, r2, #1 + 801b34a: f021 4140 bic.w r1, r1, #3221225472 ; 0xc0000000 + 801b34e: 685a ldr r2, [r3, #4] + 801b350: f361 021d bfi r2, r1, #0, #30 + 801b354: 605a str r2, [r3, #4] return item; - 801b3ea: 68fb ldr r3, [r7, #12] - 801b3ec: e030 b.n 801b450 + 801b356: 68fb ldr r3, [r7, #12] + 801b358: e030 b.n 801b3bc } /* Step 2: Need to allocate an item for it */ item = allocate_item(g, w, h); - 801b3ee: f9b7 2000 ldrsh.w r2, [r7] - 801b3f2: f9b7 3002 ldrsh.w r3, [r7, #2] - 801b3f6: 4619 mov r1, r3 - 801b3f8: 6878 ldr r0, [r7, #4] - 801b3fa: f7ff febb bl 801b174 - 801b3fe: 4603 mov r3, r0 - 801b400: 60fb str r3, [r7, #12] + 801b35a: f9b7 2000 ldrsh.w r2, [r7] + 801b35e: f9b7 3002 ldrsh.w r3, [r7, #2] + 801b362: 4619 mov r1, r3 + 801b364: 6878 ldr r0, [r7, #4] + 801b366: f7ff febb bl 801b0e0 + 801b36a: 4603 mov r3, r0 + 801b36c: 60fb str r3, [r7, #12] if(item == NULL) { - 801b402: 68fb ldr r3, [r7, #12] - 801b404: 2b00 cmp r3, #0 - 801b406: d101 bne.n 801b40c + 801b36e: 68fb ldr r3, [r7, #12] + 801b370: 2b00 cmp r3, #0 + 801b372: d101 bne.n 801b378 LV_LOG_WARN("Faild to allcoate item for teh gradient"); return item; - 801b408: 68fb ldr r3, [r7, #12] - 801b40a: e021 b.n 801b450 + 801b374: 68fb ldr r3, [r7, #12] + 801b376: e021 b.n 801b3bc } #if LV_DITHER_ERROR_DIFFUSION == 1 lv_memset_00(item->error_acc, w * sizeof(lv_scolor24_t)); #endif #else for(lv_coord_t i = 0; i < item->size; i++) { - 801b40c: 2300 movs r3, #0 - 801b40e: 82fb strh r3, [r7, #22] - 801b410: e016 b.n 801b440 + 801b378: 2300 movs r3, #0 + 801b37a: 82fb strh r3, [r7, #22] + 801b37c: e016 b.n 801b3ac item->map[i] = lv_gradient_calculate(g, item->size, i); - 801b412: 68fb ldr r3, [r7, #12] - 801b414: f9b3 100e ldrsh.w r1, [r3, #14] - 801b418: 68fb ldr r3, [r7, #12] - 801b41a: 689a ldr r2, [r3, #8] - 801b41c: f9b7 3016 ldrsh.w r3, [r7, #22] - 801b420: 005b lsls r3, r3, #1 - 801b422: 18d4 adds r4, r2, r3 - 801b424: f9b7 3016 ldrsh.w r3, [r7, #22] - 801b428: 461a mov r2, r3 - 801b42a: 6878 ldr r0, [r7, #4] - 801b42c: f000 f818 bl 801b460 - 801b430: 4603 mov r3, r0 - 801b432: 8023 strh r3, [r4, #0] + 801b37e: 68fb ldr r3, [r7, #12] + 801b380: f9b3 100e ldrsh.w r1, [r3, #14] + 801b384: 68fb ldr r3, [r7, #12] + 801b386: 689a ldr r2, [r3, #8] + 801b388: f9b7 3016 ldrsh.w r3, [r7, #22] + 801b38c: 005b lsls r3, r3, #1 + 801b38e: 18d4 adds r4, r2, r3 + 801b390: f9b7 3016 ldrsh.w r3, [r7, #22] + 801b394: 461a mov r2, r3 + 801b396: 6878 ldr r0, [r7, #4] + 801b398: f000 f818 bl 801b3cc + 801b39c: 4603 mov r3, r0 + 801b39e: 8023 strh r3, [r4, #0] for(lv_coord_t i = 0; i < item->size; i++) { - 801b434: f9b7 3016 ldrsh.w r3, [r7, #22] - 801b438: b29b uxth r3, r3 - 801b43a: 3301 adds r3, #1 - 801b43c: b29b uxth r3, r3 - 801b43e: 82fb strh r3, [r7, #22] - 801b440: 68fb ldr r3, [r7, #12] - 801b442: f9b3 300e ldrsh.w r3, [r3, #14] - 801b446: f9b7 2016 ldrsh.w r2, [r7, #22] - 801b44a: 429a cmp r2, r3 - 801b44c: dbe1 blt.n 801b412 + 801b3a0: f9b7 3016 ldrsh.w r3, [r7, #22] + 801b3a4: b29b uxth r3, r3 + 801b3a6: 3301 adds r3, #1 + 801b3a8: b29b uxth r3, r3 + 801b3aa: 82fb strh r3, [r7, #22] + 801b3ac: 68fb ldr r3, [r7, #12] + 801b3ae: f9b3 300e ldrsh.w r3, [r3, #14] + 801b3b2: f9b7 2016 ldrsh.w r2, [r7, #22] + 801b3b6: 429a cmp r2, r3 + 801b3b8: dbe1 blt.n 801b37e } #endif return item; - 801b44e: 68fb ldr r3, [r7, #12] + 801b3ba: 68fb ldr r3, [r7, #12] } - 801b450: 4618 mov r0, r3 - 801b452: 371c adds r7, #28 - 801b454: 46bd mov sp, r7 - 801b456: bd90 pop {r4, r7, pc} - 801b458: 20001b1c .word 0x20001b1c - 801b45c: 0801b149 .word 0x0801b149 + 801b3bc: 4618 mov r0, r3 + 801b3be: 371c adds r7, #28 + 801b3c0: 46bd mov sp, r7 + 801b3c2: bd90 pop {r4, r7, pc} + 801b3c4: 20001b1c .word 0x20001b1c + 801b3c8: 0801b0b5 .word 0x0801b0b5 -0801b460 : +0801b3cc : LV_ATTRIBUTE_FAST_MEM lv_grad_color_t lv_gradient_calculate(const lv_grad_dsc_t * dsc, lv_coord_t range, lv_coord_t frac) { - 801b460: b580 push {r7, lr} - 801b462: b08c sub sp, #48 ; 0x30 - 801b464: af00 add r7, sp, #0 - 801b466: 6078 str r0, [r7, #4] - 801b468: 460b mov r3, r1 - 801b46a: 807b strh r3, [r7, #2] - 801b46c: 4613 mov r3, r2 - 801b46e: 803b strh r3, [r7, #0] + 801b3cc: b580 push {r7, lr} + 801b3ce: b08c sub sp, #48 ; 0x30 + 801b3d0: af00 add r7, sp, #0 + 801b3d2: 6078 str r0, [r7, #4] + 801b3d4: 460b mov r3, r1 + 801b3d6: 807b strh r3, [r7, #2] + 801b3d8: 4613 mov r3, r2 + 801b3da: 803b strh r3, [r7, #0] lv_grad_color_t tmp; lv_color32_t one, two; /*Clip out-of-bounds first*/ int32_t min = (dsc->stops[0].frac * range) >> 8; - 801b470: 687b ldr r3, [r7, #4] - 801b472: 789b ldrb r3, [r3, #2] - 801b474: 461a mov r2, r3 - 801b476: f9b7 3002 ldrsh.w r3, [r7, #2] - 801b47a: fb02 f303 mul.w r3, r2, r3 - 801b47e: 121b asrs r3, r3, #8 - 801b480: 62fb str r3, [r7, #44] ; 0x2c + 801b3dc: 687b ldr r3, [r7, #4] + 801b3de: 789b ldrb r3, [r3, #2] + 801b3e0: 461a mov r2, r3 + 801b3e2: f9b7 3002 ldrsh.w r3, [r7, #2] + 801b3e6: fb02 f303 mul.w r3, r2, r3 + 801b3ea: 121b asrs r3, r3, #8 + 801b3ec: 62fb str r3, [r7, #44] ; 0x2c if(frac <= min) { - 801b482: f9b7 3000 ldrsh.w r3, [r7] - 801b486: 6afa ldr r2, [r7, #44] ; 0x2c - 801b488: 429a cmp r2, r3 - 801b48a: db04 blt.n 801b496 + 801b3ee: f9b7 3000 ldrsh.w r3, [r7] + 801b3f2: 6afa ldr r2, [r7, #44] ; 0x2c + 801b3f4: 429a cmp r2, r3 + 801b3f6: db04 blt.n 801b402 GRAD_CONV(tmp, dsc->stops[0].color); - 801b48c: 687b ldr r3, [r7, #4] - 801b48e: 881b ldrh r3, [r3, #0] - 801b490: 833b strh r3, [r7, #24] + 801b3f8: 687b ldr r3, [r7, #4] + 801b3fa: 881b ldrh r3, [r3, #0] + 801b3fc: 833b strh r3, [r7, #24] return tmp; - 801b492: 8b3b ldrh r3, [r7, #24] - 801b494: e0cf b.n 801b636 + 801b3fe: 8b3b ldrh r3, [r7, #24] + 801b400: e0cf b.n 801b5a2 } int32_t max = (dsc->stops[dsc->stops_count - 1].frac * range) >> 8; - 801b496: 687b ldr r3, [r7, #4] - 801b498: 7a1b ldrb r3, [r3, #8] - 801b49a: 3b01 subs r3, #1 - 801b49c: 687a ldr r2, [r7, #4] - 801b49e: 009b lsls r3, r3, #2 - 801b4a0: 4413 add r3, r2 - 801b4a2: 789b ldrb r3, [r3, #2] - 801b4a4: 461a mov r2, r3 - 801b4a6: f9b7 3002 ldrsh.w r3, [r7, #2] - 801b4aa: fb02 f303 mul.w r3, r2, r3 - 801b4ae: 121b asrs r3, r3, #8 - 801b4b0: 623b str r3, [r7, #32] + 801b402: 687b ldr r3, [r7, #4] + 801b404: 7a1b ldrb r3, [r3, #8] + 801b406: 3b01 subs r3, #1 + 801b408: 687a ldr r2, [r7, #4] + 801b40a: 009b lsls r3, r3, #2 + 801b40c: 4413 add r3, r2 + 801b40e: 789b ldrb r3, [r3, #2] + 801b410: 461a mov r2, r3 + 801b412: f9b7 3002 ldrsh.w r3, [r7, #2] + 801b416: fb02 f303 mul.w r3, r2, r3 + 801b41a: 121b asrs r3, r3, #8 + 801b41c: 623b str r3, [r7, #32] if(frac >= max) { - 801b4b2: f9b7 3000 ldrsh.w r3, [r7] - 801b4b6: 6a3a ldr r2, [r7, #32] - 801b4b8: 429a cmp r2, r3 - 801b4ba: dc08 bgt.n 801b4ce + 801b41e: f9b7 3000 ldrsh.w r3, [r7] + 801b422: 6a3a ldr r2, [r7, #32] + 801b424: 429a cmp r2, r3 + 801b426: dc08 bgt.n 801b43a GRAD_CONV(tmp, dsc->stops[dsc->stops_count - 1].color); - 801b4bc: 687b ldr r3, [r7, #4] - 801b4be: 7a1b ldrb r3, [r3, #8] - 801b4c0: 1e5a subs r2, r3, #1 - 801b4c2: 687b ldr r3, [r7, #4] - 801b4c4: f833 3022 ldrh.w r3, [r3, r2, lsl #2] - 801b4c8: 833b strh r3, [r7, #24] + 801b428: 687b ldr r3, [r7, #4] + 801b42a: 7a1b ldrb r3, [r3, #8] + 801b42c: 1e5a subs r2, r3, #1 + 801b42e: 687b ldr r3, [r7, #4] + 801b430: f833 3022 ldrh.w r3, [r3, r2, lsl #2] + 801b434: 833b strh r3, [r7, #24] return tmp; - 801b4ca: 8b3b ldrh r3, [r7, #24] - 801b4cc: e0b3 b.n 801b636 + 801b436: 8b3b ldrh r3, [r7, #24] + 801b438: e0b3 b.n 801b5a2 } /*Find the 2 closest stop now*/ int32_t d = 0; - 801b4ce: 2300 movs r3, #0 - 801b4d0: 62bb str r3, [r7, #40] ; 0x28 + 801b43a: 2300 movs r3, #0 + 801b43c: 62bb str r3, [r7, #40] ; 0x28 for(uint8_t i = 1; i < dsc->stops_count; i++) { - 801b4d2: 2301 movs r3, #1 - 801b4d4: f887 3027 strb.w r3, [r7, #39] ; 0x27 - 801b4d8: e049 b.n 801b56e + 801b43e: 2301 movs r3, #1 + 801b440: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 801b444: e049 b.n 801b4da int32_t cur = (dsc->stops[i].frac * range) >> 8; - 801b4da: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 801b4de: 687a ldr r2, [r7, #4] - 801b4e0: 009b lsls r3, r3, #2 - 801b4e2: 4413 add r3, r2 - 801b4e4: 789b ldrb r3, [r3, #2] - 801b4e6: 461a mov r2, r3 - 801b4e8: f9b7 3002 ldrsh.w r3, [r7, #2] - 801b4ec: fb02 f303 mul.w r3, r2, r3 - 801b4f0: 121b asrs r3, r3, #8 - 801b4f2: 61fb str r3, [r7, #28] + 801b446: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 801b44a: 687a ldr r2, [r7, #4] + 801b44c: 009b lsls r3, r3, #2 + 801b44e: 4413 add r3, r2 + 801b450: 789b ldrb r3, [r3, #2] + 801b452: 461a mov r2, r3 + 801b454: f9b7 3002 ldrsh.w r3, [r7, #2] + 801b458: fb02 f303 mul.w r3, r2, r3 + 801b45c: 121b asrs r3, r3, #8 + 801b45e: 61fb str r3, [r7, #28] if(frac <= cur) { - 801b4f4: f9b7 3000 ldrsh.w r3, [r7] - 801b4f8: 69fa ldr r2, [r7, #28] - 801b4fa: 429a cmp r2, r3 - 801b4fc: db32 blt.n 801b564 + 801b460: f9b7 3000 ldrsh.w r3, [r7] + 801b464: 69fa ldr r2, [r7, #28] + 801b466: 429a cmp r2, r3 + 801b468: db32 blt.n 801b4d0 one.full = lv_color_to32(dsc->stops[i - 1].color); - 801b4fe: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 801b502: 1e5a subs r2, r3, #1 - 801b504: 687b ldr r3, [r7, #4] - 801b506: f833 0022 ldrh.w r0, [r3, r2, lsl #2] - 801b50a: f7ff fce1 bl 801aed0 - 801b50e: 4603 mov r3, r0 - 801b510: 617b str r3, [r7, #20] + 801b46a: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 801b46e: 1e5a subs r2, r3, #1 + 801b470: 687b ldr r3, [r7, #4] + 801b472: f833 0022 ldrh.w r0, [r3, r2, lsl #2] + 801b476: f7ff fce1 bl 801ae3c + 801b47a: 4603 mov r3, r0 + 801b47c: 617b str r3, [r7, #20] two.full = lv_color_to32(dsc->stops[i].color); - 801b512: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 - 801b516: 687b ldr r3, [r7, #4] - 801b518: f833 0022 ldrh.w r0, [r3, r2, lsl #2] - 801b51c: f7ff fcd8 bl 801aed0 - 801b520: 4603 mov r3, r0 - 801b522: 613b str r3, [r7, #16] + 801b47e: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 + 801b482: 687b ldr r3, [r7, #4] + 801b484: f833 0022 ldrh.w r0, [r3, r2, lsl #2] + 801b488: f7ff fcd8 bl 801ae3c + 801b48c: 4603 mov r3, r0 + 801b48e: 613b str r3, [r7, #16] min = (dsc->stops[i - 1].frac * range) >> 8; - 801b524: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 801b528: 3b01 subs r3, #1 - 801b52a: 687a ldr r2, [r7, #4] - 801b52c: 009b lsls r3, r3, #2 - 801b52e: 4413 add r3, r2 - 801b530: 789b ldrb r3, [r3, #2] - 801b532: 461a mov r2, r3 - 801b534: f9b7 3002 ldrsh.w r3, [r7, #2] - 801b538: fb02 f303 mul.w r3, r2, r3 - 801b53c: 121b asrs r3, r3, #8 - 801b53e: 62fb str r3, [r7, #44] ; 0x2c + 801b490: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 801b494: 3b01 subs r3, #1 + 801b496: 687a ldr r2, [r7, #4] + 801b498: 009b lsls r3, r3, #2 + 801b49a: 4413 add r3, r2 + 801b49c: 789b ldrb r3, [r3, #2] + 801b49e: 461a mov r2, r3 + 801b4a0: f9b7 3002 ldrsh.w r3, [r7, #2] + 801b4a4: fb02 f303 mul.w r3, r2, r3 + 801b4a8: 121b asrs r3, r3, #8 + 801b4aa: 62fb str r3, [r7, #44] ; 0x2c max = (dsc->stops[i].frac * range) >> 8; - 801b540: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 801b544: 687a ldr r2, [r7, #4] - 801b546: 009b lsls r3, r3, #2 - 801b548: 4413 add r3, r2 - 801b54a: 789b ldrb r3, [r3, #2] - 801b54c: 461a mov r2, r3 - 801b54e: f9b7 3002 ldrsh.w r3, [r7, #2] - 801b552: fb02 f303 mul.w r3, r2, r3 - 801b556: 121b asrs r3, r3, #8 - 801b558: 623b str r3, [r7, #32] + 801b4ac: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 801b4b0: 687a ldr r2, [r7, #4] + 801b4b2: 009b lsls r3, r3, #2 + 801b4b4: 4413 add r3, r2 + 801b4b6: 789b ldrb r3, [r3, #2] + 801b4b8: 461a mov r2, r3 + 801b4ba: f9b7 3002 ldrsh.w r3, [r7, #2] + 801b4be: fb02 f303 mul.w r3, r2, r3 + 801b4c2: 121b asrs r3, r3, #8 + 801b4c4: 623b str r3, [r7, #32] d = max - min; - 801b55a: 6a3a ldr r2, [r7, #32] - 801b55c: 6afb ldr r3, [r7, #44] ; 0x2c - 801b55e: 1ad3 subs r3, r2, r3 - 801b560: 62bb str r3, [r7, #40] ; 0x28 + 801b4c6: 6a3a ldr r2, [r7, #32] + 801b4c8: 6afb ldr r3, [r7, #44] ; 0x2c + 801b4ca: 1ad3 subs r3, r2, r3 + 801b4cc: 62bb str r3, [r7, #40] ; 0x28 break; - 801b562: e00a b.n 801b57a + 801b4ce: e00a b.n 801b4e6 for(uint8_t i = 1; i < dsc->stops_count; i++) { - 801b564: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 801b568: 3301 adds r3, #1 - 801b56a: f887 3027 strb.w r3, [r7, #39] ; 0x27 - 801b56e: 687b ldr r3, [r7, #4] - 801b570: 7a1b ldrb r3, [r3, #8] - 801b572: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 - 801b576: 429a cmp r2, r3 - 801b578: d3af bcc.n 801b4da + 801b4d0: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 801b4d4: 3301 adds r3, #1 + 801b4d6: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 801b4da: 687b ldr r3, [r7, #4] + 801b4dc: 7a1b ldrb r3, [r3, #8] + 801b4de: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 + 801b4e2: 429a cmp r2, r3 + 801b4e4: d3af bcc.n 801b446 } } /*Then interpolate*/ frac -= min; - 801b57a: 883a ldrh r2, [r7, #0] - 801b57c: 6afb ldr r3, [r7, #44] ; 0x2c - 801b57e: b29b uxth r3, r3 - 801b580: 1ad3 subs r3, r2, r3 - 801b582: b29b uxth r3, r3 - 801b584: 803b strh r3, [r7, #0] + 801b4e6: 883a ldrh r2, [r7, #0] + 801b4e8: 6afb ldr r3, [r7, #44] ; 0x2c + 801b4ea: b29b uxth r3, r3 + 801b4ec: 1ad3 subs r3, r2, r3 + 801b4ee: b29b uxth r3, r3 + 801b4f0: 803b strh r3, [r7, #0] lv_opa_t mix = (frac * 255) / d; - 801b586: f9b7 2000 ldrsh.w r2, [r7] - 801b58a: 4613 mov r3, r2 - 801b58c: 021b lsls r3, r3, #8 - 801b58e: 1a9a subs r2, r3, r2 - 801b590: 6abb ldr r3, [r7, #40] ; 0x28 - 801b592: fb92 f3f3 sdiv r3, r2, r3 - 801b596: 76fb strb r3, [r7, #27] + 801b4f2: f9b7 2000 ldrsh.w r2, [r7] + 801b4f6: 4613 mov r3, r2 + 801b4f8: 021b lsls r3, r3, #8 + 801b4fa: 1a9a subs r2, r3, r2 + 801b4fc: 6abb ldr r3, [r7, #40] ; 0x28 + 801b4fe: fb92 f3f3 sdiv r3, r2, r3 + 801b502: 76fb strb r3, [r7, #27] lv_opa_t imix = 255 - mix; - 801b598: 7efb ldrb r3, [r7, #27] - 801b59a: 43db mvns r3, r3 - 801b59c: 76bb strb r3, [r7, #26] + 801b504: 7efb ldrb r3, [r7, #27] + 801b506: 43db mvns r3, r3 + 801b508: 76bb strb r3, [r7, #26] lv_grad_color_t r = GRAD_CM(LV_UDIV255(two.ch.red * mix + one.ch.red * imix), - 801b59e: 7c3b ldrb r3, [r7, #16] - 801b5a0: 461a mov r2, r3 - 801b5a2: 7efb ldrb r3, [r7, #27] - 801b5a4: fb03 f202 mul.w r2, r3, r2 - 801b5a8: 7d3b ldrb r3, [r7, #20] - 801b5aa: 4619 mov r1, r3 - 801b5ac: 7ebb ldrb r3, [r7, #26] - 801b5ae: fb01 f303 mul.w r3, r1, r3 - 801b5b2: 4413 add r3, r2 - 801b5b4: 461a mov r2, r3 - 801b5b6: 4613 mov r3, r2 - 801b5b8: 021b lsls r3, r3, #8 - 801b5ba: 4413 add r3, r2 - 801b5bc: 01db lsls r3, r3, #7 - 801b5be: 4413 add r3, r2 - 801b5c0: 0e9b lsrs r3, r3, #26 - 801b5c2: f003 031f and.w r3, r3, #31 - 801b5c6: b2da uxtb r2, r3 - 801b5c8: 7b3b ldrb r3, [r7, #12] - 801b5ca: f362 0304 bfi r3, r2, #0, #5 - 801b5ce: 733b strb r3, [r7, #12] - 801b5d0: 7c7b ldrb r3, [r7, #17] - 801b5d2: 461a mov r2, r3 - 801b5d4: 7efb ldrb r3, [r7, #27] - 801b5d6: fb03 f202 mul.w r2, r3, r2 - 801b5da: 7d7b ldrb r3, [r7, #21] - 801b5dc: 4619 mov r1, r3 - 801b5de: 7ebb ldrb r3, [r7, #26] - 801b5e0: fb01 f303 mul.w r3, r1, r3 - 801b5e4: 4413 add r3, r2 - 801b5e6: 461a mov r2, r3 - 801b5e8: 4613 mov r3, r2 - 801b5ea: 021b lsls r3, r3, #8 - 801b5ec: 4413 add r3, r2 - 801b5ee: 01db lsls r3, r3, #7 - 801b5f0: 4413 add r3, r2 - 801b5f2: 0e5b lsrs r3, r3, #25 - 801b5f4: f003 033f and.w r3, r3, #63 ; 0x3f - 801b5f8: b2da uxtb r2, r3 - 801b5fa: 89bb ldrh r3, [r7, #12] - 801b5fc: f362 134a bfi r3, r2, #5, #6 - 801b600: 81bb strh r3, [r7, #12] - 801b602: 7cbb ldrb r3, [r7, #18] - 801b604: 461a mov r2, r3 - 801b606: 7efb ldrb r3, [r7, #27] - 801b608: fb03 f202 mul.w r2, r3, r2 - 801b60c: 7dbb ldrb r3, [r7, #22] - 801b60e: 4619 mov r1, r3 - 801b610: 7ebb ldrb r3, [r7, #26] - 801b612: fb01 f303 mul.w r3, r1, r3 - 801b616: 4413 add r3, r2 - 801b618: 461a mov r2, r3 - 801b61a: 4613 mov r3, r2 - 801b61c: 021b lsls r3, r3, #8 - 801b61e: 4413 add r3, r2 - 801b620: 01db lsls r3, r3, #7 - 801b622: 4413 add r3, r2 - 801b624: 0e9b lsrs r3, r3, #26 - 801b626: f003 031f and.w r3, r3, #31 - 801b62a: b2da uxtb r2, r3 - 801b62c: 7b7b ldrb r3, [r7, #13] - 801b62e: f362 03c7 bfi r3, r2, #3, #5 - 801b632: 737b strb r3, [r7, #13] + 801b50a: 7c3b ldrb r3, [r7, #16] + 801b50c: 461a mov r2, r3 + 801b50e: 7efb ldrb r3, [r7, #27] + 801b510: fb03 f202 mul.w r2, r3, r2 + 801b514: 7d3b ldrb r3, [r7, #20] + 801b516: 4619 mov r1, r3 + 801b518: 7ebb ldrb r3, [r7, #26] + 801b51a: fb01 f303 mul.w r3, r1, r3 + 801b51e: 4413 add r3, r2 + 801b520: 461a mov r2, r3 + 801b522: 4613 mov r3, r2 + 801b524: 021b lsls r3, r3, #8 + 801b526: 4413 add r3, r2 + 801b528: 01db lsls r3, r3, #7 + 801b52a: 4413 add r3, r2 + 801b52c: 0e9b lsrs r3, r3, #26 + 801b52e: f003 031f and.w r3, r3, #31 + 801b532: b2da uxtb r2, r3 + 801b534: 7b3b ldrb r3, [r7, #12] + 801b536: f362 0304 bfi r3, r2, #0, #5 + 801b53a: 733b strb r3, [r7, #12] + 801b53c: 7c7b ldrb r3, [r7, #17] + 801b53e: 461a mov r2, r3 + 801b540: 7efb ldrb r3, [r7, #27] + 801b542: fb03 f202 mul.w r2, r3, r2 + 801b546: 7d7b ldrb r3, [r7, #21] + 801b548: 4619 mov r1, r3 + 801b54a: 7ebb ldrb r3, [r7, #26] + 801b54c: fb01 f303 mul.w r3, r1, r3 + 801b550: 4413 add r3, r2 + 801b552: 461a mov r2, r3 + 801b554: 4613 mov r3, r2 + 801b556: 021b lsls r3, r3, #8 + 801b558: 4413 add r3, r2 + 801b55a: 01db lsls r3, r3, #7 + 801b55c: 4413 add r3, r2 + 801b55e: 0e5b lsrs r3, r3, #25 + 801b560: f003 033f and.w r3, r3, #63 ; 0x3f + 801b564: b2da uxtb r2, r3 + 801b566: 89bb ldrh r3, [r7, #12] + 801b568: f362 134a bfi r3, r2, #5, #6 + 801b56c: 81bb strh r3, [r7, #12] + 801b56e: 7cbb ldrb r3, [r7, #18] + 801b570: 461a mov r2, r3 + 801b572: 7efb ldrb r3, [r7, #27] + 801b574: fb03 f202 mul.w r2, r3, r2 + 801b578: 7dbb ldrb r3, [r7, #22] + 801b57a: 4619 mov r1, r3 + 801b57c: 7ebb ldrb r3, [r7, #26] + 801b57e: fb01 f303 mul.w r3, r1, r3 + 801b582: 4413 add r3, r2 + 801b584: 461a mov r2, r3 + 801b586: 4613 mov r3, r2 + 801b588: 021b lsls r3, r3, #8 + 801b58a: 4413 add r3, r2 + 801b58c: 01db lsls r3, r3, #7 + 801b58e: 4413 add r3, r2 + 801b590: 0e9b lsrs r3, r3, #26 + 801b592: f003 031f and.w r3, r3, #31 + 801b596: b2da uxtb r2, r3 + 801b598: 7b7b ldrb r3, [r7, #13] + 801b59a: f362 03c7 bfi r3, r2, #3, #5 + 801b59e: 737b strb r3, [r7, #13] LV_UDIV255(two.ch.green * mix + one.ch.green * imix), LV_UDIV255(two.ch.blue * mix + one.ch.blue * imix)); return r; - 801b634: 89bb ldrh r3, [r7, #12] + 801b5a0: 89bb ldrh r3, [r7, #12] } - 801b636: 4618 mov r0, r3 - 801b638: 3730 adds r7, #48 ; 0x30 - 801b63a: 46bd mov sp, r7 - 801b63c: bd80 pop {r7, pc} + 801b5a2: 4618 mov r0, r3 + 801b5a4: 3730 adds r7, #48 ; 0x30 + 801b5a6: 46bd mov sp, r7 + 801b5a8: bd80 pop {r7, pc} -0801b63e : +0801b5aa : void lv_gradient_cleanup(lv_grad_t * grad) { - 801b63e: b580 push {r7, lr} - 801b640: b082 sub sp, #8 - 801b642: af00 add r7, sp, #0 - 801b644: 6078 str r0, [r7, #4] + 801b5aa: b580 push {r7, lr} + 801b5ac: b082 sub sp, #8 + 801b5ae: af00 add r7, sp, #0 + 801b5b0: 6078 str r0, [r7, #4] if(grad->not_cached) { - 801b646: 687b ldr r3, [r7, #4] - 801b648: 79db ldrb r3, [r3, #7] - 801b64a: f023 037f bic.w r3, r3, #127 ; 0x7f - 801b64e: b2db uxtb r3, r3 - 801b650: 2b00 cmp r3, #0 - 801b652: d002 beq.n 801b65a + 801b5b2: 687b ldr r3, [r7, #4] + 801b5b4: 79db ldrb r3, [r3, #7] + 801b5b6: f023 037f bic.w r3, r3, #127 ; 0x7f + 801b5ba: b2db uxtb r3, r3 + 801b5bc: 2b00 cmp r3, #0 + 801b5be: d002 beq.n 801b5c6 lv_mem_free(grad); - 801b654: 6878 ldr r0, [r7, #4] - 801b656: f017 f941 bl 80328dc + 801b5c0: 6878 ldr r0, [r7, #4] + 801b5c2: f017 f941 bl 8032848 } } - 801b65a: bf00 nop - 801b65c: 3708 adds r7, #8 - 801b65e: 46bd mov sp, r7 - 801b660: bd80 pop {r7, pc} + 801b5c6: bf00 nop + 801b5c8: 3708 adds r7, #8 + 801b5ca: 46bd mov sp, r7 + 801b5cc: bd80 pop {r7, pc} -0801b662 : +0801b5ce : { - 801b662: b480 push {r7} - 801b664: b083 sub sp, #12 - 801b666: af00 add r7, sp, #0 - 801b668: 80b8 strh r0, [r7, #4] - 801b66a: 460b mov r3, r1 - 801b66c: 603a str r2, [r7, #0] - 801b66e: 71fb strb r3, [r7, #7] + 801b5ce: b480 push {r7} + 801b5d0: b083 sub sp, #12 + 801b5d2: af00 add r7, sp, #0 + 801b5d4: 80b8 strh r0, [r7, #4] + 801b5d6: 460b mov r3, r1 + 801b5d8: 603a str r2, [r7, #0] + 801b5da: 71fb strb r3, [r7, #7] out[0] = (uint16_t)LV_COLOR_GET_R(c) * mix; - 801b670: 797b ldrb r3, [r7, #5] - 801b672: f3c3 03c4 ubfx r3, r3, #3, #5 - 801b676: b2db uxtb r3, r3 - 801b678: b29b uxth r3, r3 - 801b67a: 79fa ldrb r2, [r7, #7] - 801b67c: b292 uxth r2, r2 - 801b67e: fb02 f303 mul.w r3, r2, r3 - 801b682: b29a uxth r2, r3 - 801b684: 683b ldr r3, [r7, #0] - 801b686: 801a strh r2, [r3, #0] + 801b5dc: 797b ldrb r3, [r7, #5] + 801b5de: f3c3 03c4 ubfx r3, r3, #3, #5 + 801b5e2: b2db uxtb r3, r3 + 801b5e4: b29b uxth r3, r3 + 801b5e6: 79fa ldrb r2, [r7, #7] + 801b5e8: b292 uxth r2, r2 + 801b5ea: fb02 f303 mul.w r3, r2, r3 + 801b5ee: b29a uxth r2, r3 + 801b5f0: 683b ldr r3, [r7, #0] + 801b5f2: 801a strh r2, [r3, #0] out[1] = (uint16_t)LV_COLOR_GET_G(c) * mix; - 801b688: 88bb ldrh r3, [r7, #4] - 801b68a: f3c3 1345 ubfx r3, r3, #5, #6 - 801b68e: b2db uxtb r3, r3 - 801b690: b29a uxth r2, r3 - 801b692: 79fb ldrb r3, [r7, #7] - 801b694: b299 uxth r1, r3 - 801b696: 683b ldr r3, [r7, #0] - 801b698: 3302 adds r3, #2 - 801b69a: fb01 f202 mul.w r2, r1, r2 - 801b69e: b292 uxth r2, r2 - 801b6a0: 801a strh r2, [r3, #0] + 801b5f4: 88bb ldrh r3, [r7, #4] + 801b5f6: f3c3 1345 ubfx r3, r3, #5, #6 + 801b5fa: b2db uxtb r3, r3 + 801b5fc: b29a uxth r2, r3 + 801b5fe: 79fb ldrb r3, [r7, #7] + 801b600: b299 uxth r1, r3 + 801b602: 683b ldr r3, [r7, #0] + 801b604: 3302 adds r3, #2 + 801b606: fb01 f202 mul.w r2, r1, r2 + 801b60a: b292 uxth r2, r2 + 801b60c: 801a strh r2, [r3, #0] out[2] = (uint16_t)LV_COLOR_GET_B(c) * mix; - 801b6a2: 793b ldrb r3, [r7, #4] - 801b6a4: f3c3 0304 ubfx r3, r3, #0, #5 - 801b6a8: b2db uxtb r3, r3 - 801b6aa: b29a uxth r2, r3 - 801b6ac: 79fb ldrb r3, [r7, #7] - 801b6ae: b299 uxth r1, r3 - 801b6b0: 683b ldr r3, [r7, #0] - 801b6b2: 3304 adds r3, #4 - 801b6b4: fb01 f202 mul.w r2, r1, r2 - 801b6b8: b292 uxth r2, r2 - 801b6ba: 801a strh r2, [r3, #0] + 801b60e: 793b ldrb r3, [r7, #4] + 801b610: f3c3 0304 ubfx r3, r3, #0, #5 + 801b614: b2db uxtb r3, r3 + 801b616: b29a uxth r2, r3 + 801b618: 79fb ldrb r3, [r7, #7] + 801b61a: b299 uxth r1, r3 + 801b61c: 683b ldr r3, [r7, #0] + 801b61e: 3304 adds r3, #4 + 801b620: fb01 f202 mul.w r2, r1, r2 + 801b624: b292 uxth r2, r2 + 801b626: 801a strh r2, [r3, #0] } - 801b6bc: bf00 nop - 801b6be: 370c adds r7, #12 - 801b6c0: 46bd mov sp, r7 - 801b6c2: bc80 pop {r7} - 801b6c4: 4770 bx lr + 801b628: bf00 nop + 801b62a: 370c adds r7, #12 + 801b62c: 46bd mov sp, r7 + 801b62e: bc80 pop {r7} + 801b630: 4770 bx lr -0801b6c6 : +0801b632 : { - 801b6c6: b480 push {r7} - 801b6c8: b085 sub sp, #20 - 801b6ca: af00 add r7, sp, #0 - 801b6cc: 6078 str r0, [r7, #4] - 801b6ce: 8039 strh r1, [r7, #0] - 801b6d0: 4613 mov r3, r2 - 801b6d2: 70fb strb r3, [r7, #3] + 801b632: b480 push {r7} + 801b634: b085 sub sp, #20 + 801b636: af00 add r7, sp, #0 + 801b638: 6078 str r0, [r7, #4] + 801b63a: 8039 strh r1, [r7, #0] + 801b63c: 4613 mov r3, r2 + 801b63e: 70fb strb r3, [r7, #3] LV_COLOR_SET_R(ret, LV_UDIV255(premult_c1[0] + LV_COLOR_GET_R(c2) * mix + LV_COLOR_MIX_ROUND_OFS)); - 801b6d4: 687b ldr r3, [r7, #4] - 801b6d6: 881b ldrh r3, [r3, #0] - 801b6d8: 461a mov r2, r3 - 801b6da: 787b ldrb r3, [r7, #1] - 801b6dc: f3c3 03c4 ubfx r3, r3, #3, #5 - 801b6e0: b2db uxtb r3, r3 - 801b6e2: 4619 mov r1, r3 - 801b6e4: 78fb ldrb r3, [r7, #3] - 801b6e6: fb01 f303 mul.w r3, r1, r3 - 801b6ea: 4413 add r3, r2 - 801b6ec: 3380 adds r3, #128 ; 0x80 - 801b6ee: 461a mov r2, r3 - 801b6f0: 4613 mov r3, r2 - 801b6f2: 021b lsls r3, r3, #8 - 801b6f4: 4413 add r3, r2 - 801b6f6: 01db lsls r3, r3, #7 - 801b6f8: 4413 add r3, r2 - 801b6fa: 0ddb lsrs r3, r3, #23 - 801b6fc: f003 031f and.w r3, r3, #31 - 801b700: b2da uxtb r2, r3 - 801b702: 7b7b ldrb r3, [r7, #13] - 801b704: f362 03c7 bfi r3, r2, #3, #5 - 801b708: 737b strb r3, [r7, #13] + 801b640: 687b ldr r3, [r7, #4] + 801b642: 881b ldrh r3, [r3, #0] + 801b644: 461a mov r2, r3 + 801b646: 787b ldrb r3, [r7, #1] + 801b648: f3c3 03c4 ubfx r3, r3, #3, #5 + 801b64c: b2db uxtb r3, r3 + 801b64e: 4619 mov r1, r3 + 801b650: 78fb ldrb r3, [r7, #3] + 801b652: fb01 f303 mul.w r3, r1, r3 + 801b656: 4413 add r3, r2 + 801b658: 3380 adds r3, #128 ; 0x80 + 801b65a: 461a mov r2, r3 + 801b65c: 4613 mov r3, r2 + 801b65e: 021b lsls r3, r3, #8 + 801b660: 4413 add r3, r2 + 801b662: 01db lsls r3, r3, #7 + 801b664: 4413 add r3, r2 + 801b666: 0ddb lsrs r3, r3, #23 + 801b668: f003 031f and.w r3, r3, #31 + 801b66c: b2da uxtb r2, r3 + 801b66e: 7b7b ldrb r3, [r7, #13] + 801b670: f362 03c7 bfi r3, r2, #3, #5 + 801b674: 737b strb r3, [r7, #13] LV_COLOR_SET_G(ret, LV_UDIV255(premult_c1[1] + LV_COLOR_GET_G(c2) * mix + LV_COLOR_MIX_ROUND_OFS)); - 801b70a: 687b ldr r3, [r7, #4] - 801b70c: 3302 adds r3, #2 - 801b70e: 881b ldrh r3, [r3, #0] - 801b710: 461a mov r2, r3 - 801b712: 883b ldrh r3, [r7, #0] - 801b714: f3c3 1345 ubfx r3, r3, #5, #6 - 801b718: b2db uxtb r3, r3 - 801b71a: 4619 mov r1, r3 - 801b71c: 78fb ldrb r3, [r7, #3] - 801b71e: fb01 f303 mul.w r3, r1, r3 - 801b722: 4413 add r3, r2 - 801b724: 3380 adds r3, #128 ; 0x80 - 801b726: 461a mov r2, r3 - 801b728: 4613 mov r3, r2 - 801b72a: 021b lsls r3, r3, #8 - 801b72c: 4413 add r3, r2 - 801b72e: 01db lsls r3, r3, #7 - 801b730: 4413 add r3, r2 - 801b732: 0ddb lsrs r3, r3, #23 - 801b734: f003 033f and.w r3, r3, #63 ; 0x3f - 801b738: b2da uxtb r2, r3 - 801b73a: 89bb ldrh r3, [r7, #12] - 801b73c: f362 134a bfi r3, r2, #5, #6 - 801b740: 81bb strh r3, [r7, #12] + 801b676: 687b ldr r3, [r7, #4] + 801b678: 3302 adds r3, #2 + 801b67a: 881b ldrh r3, [r3, #0] + 801b67c: 461a mov r2, r3 + 801b67e: 883b ldrh r3, [r7, #0] + 801b680: f3c3 1345 ubfx r3, r3, #5, #6 + 801b684: b2db uxtb r3, r3 + 801b686: 4619 mov r1, r3 + 801b688: 78fb ldrb r3, [r7, #3] + 801b68a: fb01 f303 mul.w r3, r1, r3 + 801b68e: 4413 add r3, r2 + 801b690: 3380 adds r3, #128 ; 0x80 + 801b692: 461a mov r2, r3 + 801b694: 4613 mov r3, r2 + 801b696: 021b lsls r3, r3, #8 + 801b698: 4413 add r3, r2 + 801b69a: 01db lsls r3, r3, #7 + 801b69c: 4413 add r3, r2 + 801b69e: 0ddb lsrs r3, r3, #23 + 801b6a0: f003 033f and.w r3, r3, #63 ; 0x3f + 801b6a4: b2da uxtb r2, r3 + 801b6a6: 89bb ldrh r3, [r7, #12] + 801b6a8: f362 134a bfi r3, r2, #5, #6 + 801b6ac: 81bb strh r3, [r7, #12] LV_COLOR_SET_B(ret, LV_UDIV255(premult_c1[2] + LV_COLOR_GET_B(c2) * mix + LV_COLOR_MIX_ROUND_OFS)); - 801b742: 687b ldr r3, [r7, #4] - 801b744: 3304 adds r3, #4 - 801b746: 881b ldrh r3, [r3, #0] - 801b748: 461a mov r2, r3 - 801b74a: 783b ldrb r3, [r7, #0] - 801b74c: f3c3 0304 ubfx r3, r3, #0, #5 - 801b750: b2db uxtb r3, r3 - 801b752: 4619 mov r1, r3 - 801b754: 78fb ldrb r3, [r7, #3] - 801b756: fb01 f303 mul.w r3, r1, r3 - 801b75a: 4413 add r3, r2 - 801b75c: 3380 adds r3, #128 ; 0x80 - 801b75e: 461a mov r2, r3 - 801b760: 4613 mov r3, r2 - 801b762: 021b lsls r3, r3, #8 - 801b764: 4413 add r3, r2 - 801b766: 01db lsls r3, r3, #7 - 801b768: 4413 add r3, r2 - 801b76a: 0ddb lsrs r3, r3, #23 - 801b76c: f003 031f and.w r3, r3, #31 - 801b770: b2da uxtb r2, r3 - 801b772: 7b3b ldrb r3, [r7, #12] - 801b774: f362 0304 bfi r3, r2, #0, #5 - 801b778: 733b strb r3, [r7, #12] + 801b6ae: 687b ldr r3, [r7, #4] + 801b6b0: 3304 adds r3, #4 + 801b6b2: 881b ldrh r3, [r3, #0] + 801b6b4: 461a mov r2, r3 + 801b6b6: 783b ldrb r3, [r7, #0] + 801b6b8: f3c3 0304 ubfx r3, r3, #0, #5 + 801b6bc: b2db uxtb r3, r3 + 801b6be: 4619 mov r1, r3 + 801b6c0: 78fb ldrb r3, [r7, #3] + 801b6c2: fb01 f303 mul.w r3, r1, r3 + 801b6c6: 4413 add r3, r2 + 801b6c8: 3380 adds r3, #128 ; 0x80 + 801b6ca: 461a mov r2, r3 + 801b6cc: 4613 mov r3, r2 + 801b6ce: 021b lsls r3, r3, #8 + 801b6d0: 4413 add r3, r2 + 801b6d2: 01db lsls r3, r3, #7 + 801b6d4: 4413 add r3, r2 + 801b6d6: 0ddb lsrs r3, r3, #23 + 801b6d8: f003 031f and.w r3, r3, #31 + 801b6dc: b2da uxtb r2, r3 + 801b6de: 7b3b ldrb r3, [r7, #12] + 801b6e0: f362 0304 bfi r3, r2, #0, #5 + 801b6e4: 733b strb r3, [r7, #12] return ret; - 801b77a: 89bb ldrh r3, [r7, #12] + 801b6e6: 89bb ldrh r3, [r7, #12] } - 801b77c: 4618 mov r0, r3 - 801b77e: 3714 adds r7, #20 - 801b780: 46bd mov sp, r7 - 801b782: bc80 pop {r7} - 801b784: 4770 bx lr + 801b6e8: 4618 mov r0, r3 + 801b6ea: 3714 adds r7, #20 + 801b6ec: 46bd mov sp, r7 + 801b6ee: bc80 pop {r7} + 801b6f0: 4770 bx lr -0801b786 : +0801b6f2 : { - 801b786: b480 push {r7} - 801b788: b085 sub sp, #20 - 801b78a: af00 add r7, sp, #0 - 801b78c: 6078 str r0, [r7, #4] + 801b6f2: b480 push {r7} + 801b6f4: b085 sub sp, #20 + 801b6f6: af00 add r7, sp, #0 + 801b6f8: 6078 str r0, [r7, #4] r.full = (uint16_t)(((c & 0xF80000) >> 8) | ((c & 0xFC00) >> 5) | ((c & 0xFF) >> 3)); - 801b78e: 687b ldr r3, [r7, #4] - 801b790: 0a1b lsrs r3, r3, #8 - 801b792: b29b uxth r3, r3 - 801b794: f423 63ff bic.w r3, r3, #2040 ; 0x7f8 - 801b798: f023 0307 bic.w r3, r3, #7 - 801b79c: b29a uxth r2, r3 - 801b79e: 687b ldr r3, [r7, #4] - 801b7a0: 095b lsrs r3, r3, #5 - 801b7a2: b29b uxth r3, r3 - 801b7a4: f403 63fc and.w r3, r3, #2016 ; 0x7e0 - 801b7a8: b29b uxth r3, r3 - 801b7aa: 4313 orrs r3, r2 - 801b7ac: b29a uxth r2, r3 - 801b7ae: 687b ldr r3, [r7, #4] - 801b7b0: 08db lsrs r3, r3, #3 - 801b7b2: b29b uxth r3, r3 - 801b7b4: f003 031f and.w r3, r3, #31 - 801b7b8: b29b uxth r3, r3 - 801b7ba: 4313 orrs r3, r2 - 801b7bc: b29b uxth r3, r3 - 801b7be: 81bb strh r3, [r7, #12] + 801b6fa: 687b ldr r3, [r7, #4] + 801b6fc: 0a1b lsrs r3, r3, #8 + 801b6fe: b29b uxth r3, r3 + 801b700: f423 63ff bic.w r3, r3, #2040 ; 0x7f8 + 801b704: f023 0307 bic.w r3, r3, #7 + 801b708: b29a uxth r2, r3 + 801b70a: 687b ldr r3, [r7, #4] + 801b70c: 095b lsrs r3, r3, #5 + 801b70e: b29b uxth r3, r3 + 801b710: f403 63fc and.w r3, r3, #2016 ; 0x7e0 + 801b714: b29b uxth r3, r3 + 801b716: 4313 orrs r3, r2 + 801b718: b29a uxth r2, r3 + 801b71a: 687b ldr r3, [r7, #4] + 801b71c: 08db lsrs r3, r3, #3 + 801b71e: b29b uxth r3, r3 + 801b720: f003 031f and.w r3, r3, #31 + 801b724: b29b uxth r3, r3 + 801b726: 4313 orrs r3, r2 + 801b728: b29b uxth r3, r3 + 801b72a: 81bb strh r3, [r7, #12] return r; - 801b7c0: 89bb ldrh r3, [r7, #12] + 801b72c: 89bb ldrh r3, [r7, #12] +} + 801b72e: 4618 mov r0, r3 + 801b730: 3714 adds r7, #20 + 801b732: 46bd mov sp, r7 + 801b734: bc80 pop {r7} + 801b736: 4770 bx lr + +0801b738 : +{ + 801b738: b480 push {r7} + 801b73a: b083 sub sp, #12 + 801b73c: af00 add r7, sp, #0 + 801b73e: 6078 str r0, [r7, #4] + 801b740: 6039 str r1, [r7, #0] + dest->x1 = src->x1; + 801b742: 683b ldr r3, [r7, #0] + 801b744: f9b3 2000 ldrsh.w r2, [r3] + 801b748: 687b ldr r3, [r7, #4] + 801b74a: 801a strh r2, [r3, #0] + dest->y1 = src->y1; + 801b74c: 683b ldr r3, [r7, #0] + 801b74e: f9b3 2002 ldrsh.w r2, [r3, #2] + 801b752: 687b ldr r3, [r7, #4] + 801b754: 805a strh r2, [r3, #2] + dest->x2 = src->x2; + 801b756: 683b ldr r3, [r7, #0] + 801b758: f9b3 2004 ldrsh.w r2, [r3, #4] + 801b75c: 687b ldr r3, [r7, #4] + 801b75e: 809a strh r2, [r3, #4] + dest->y2 = src->y2; + 801b760: 683b ldr r3, [r7, #0] + 801b762: f9b3 2006 ldrsh.w r2, [r3, #6] + 801b766: 687b ldr r3, [r7, #4] + 801b768: 80da strh r2, [r3, #6] +} + 801b76a: bf00 nop + 801b76c: 370c adds r7, #12 + 801b76e: 46bd mov sp, r7 + 801b770: bc80 pop {r7} + 801b772: 4770 bx lr + +0801b774 : +{ + 801b774: b480 push {r7} + 801b776: b083 sub sp, #12 + 801b778: af00 add r7, sp, #0 + 801b77a: 6078 str r0, [r7, #4] + return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); + 801b77c: 687b ldr r3, [r7, #4] + 801b77e: f9b3 3004 ldrsh.w r3, [r3, #4] + 801b782: b29a uxth r2, r3 + 801b784: 687b ldr r3, [r7, #4] + 801b786: f9b3 3000 ldrsh.w r3, [r3] + 801b78a: b29b uxth r3, r3 + 801b78c: 1ad3 subs r3, r2, r3 + 801b78e: b29b uxth r3, r3 + 801b790: 3301 adds r3, #1 + 801b792: b29b uxth r3, r3 + 801b794: b21b sxth r3, r3 +} + 801b796: 4618 mov r0, r3 + 801b798: 370c adds r7, #12 + 801b79a: 46bd mov sp, r7 + 801b79c: bc80 pop {r7} + 801b79e: 4770 bx lr + +0801b7a0 : +{ + 801b7a0: b480 push {r7} + 801b7a2: b083 sub sp, #12 + 801b7a4: af00 add r7, sp, #0 + 801b7a6: 6078 str r0, [r7, #4] + return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); + 801b7a8: 687b ldr r3, [r7, #4] + 801b7aa: f9b3 3006 ldrsh.w r3, [r3, #6] + 801b7ae: b29a uxth r2, r3 + 801b7b0: 687b ldr r3, [r7, #4] + 801b7b2: f9b3 3002 ldrsh.w r3, [r3, #2] + 801b7b6: b29b uxth r3, r3 + 801b7b8: 1ad3 subs r3, r2, r3 + 801b7ba: b29b uxth r3, r3 + 801b7bc: 3301 adds r3, #1 + 801b7be: b29b uxth r3, r3 + 801b7c0: b21b sxth r3, r3 } 801b7c2: 4618 mov r0, r3 - 801b7c4: 3714 adds r7, #20 + 801b7c4: 370c adds r7, #12 801b7c6: 46bd mov sp, r7 801b7c8: bc80 pop {r7} 801b7ca: 4770 bx lr -0801b7cc : -{ - 801b7cc: b480 push {r7} - 801b7ce: b083 sub sp, #12 - 801b7d0: af00 add r7, sp, #0 - 801b7d2: 6078 str r0, [r7, #4] - 801b7d4: 6039 str r1, [r7, #0] - dest->x1 = src->x1; - 801b7d6: 683b ldr r3, [r7, #0] - 801b7d8: f9b3 2000 ldrsh.w r2, [r3] - 801b7dc: 687b ldr r3, [r7, #4] - 801b7de: 801a strh r2, [r3, #0] - dest->y1 = src->y1; - 801b7e0: 683b ldr r3, [r7, #0] - 801b7e2: f9b3 2002 ldrsh.w r2, [r3, #2] - 801b7e6: 687b ldr r3, [r7, #4] - 801b7e8: 805a strh r2, [r3, #2] - dest->x2 = src->x2; - 801b7ea: 683b ldr r3, [r7, #0] - 801b7ec: f9b3 2004 ldrsh.w r2, [r3, #4] - 801b7f0: 687b ldr r3, [r7, #4] - 801b7f2: 809a strh r2, [r3, #4] - dest->y2 = src->y2; - 801b7f4: 683b ldr r3, [r7, #0] - 801b7f6: f9b3 2006 ldrsh.w r2, [r3, #6] - 801b7fa: 687b ldr r3, [r7, #4] - 801b7fc: 80da strh r2, [r3, #6] -} - 801b7fe: bf00 nop - 801b800: 370c adds r7, #12 - 801b802: 46bd mov sp, r7 - 801b804: bc80 pop {r7} - 801b806: 4770 bx lr - -0801b808 : -{ - 801b808: b480 push {r7} - 801b80a: b083 sub sp, #12 - 801b80c: af00 add r7, sp, #0 - 801b80e: 6078 str r0, [r7, #4] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 801b810: 687b ldr r3, [r7, #4] - 801b812: f9b3 3004 ldrsh.w r3, [r3, #4] - 801b816: b29a uxth r2, r3 - 801b818: 687b ldr r3, [r7, #4] - 801b81a: f9b3 3000 ldrsh.w r3, [r3] - 801b81e: b29b uxth r3, r3 - 801b820: 1ad3 subs r3, r2, r3 - 801b822: b29b uxth r3, r3 - 801b824: 3301 adds r3, #1 - 801b826: b29b uxth r3, r3 - 801b828: b21b sxth r3, r3 -} - 801b82a: 4618 mov r0, r3 - 801b82c: 370c adds r7, #12 - 801b82e: 46bd mov sp, r7 - 801b830: bc80 pop {r7} - 801b832: 4770 bx lr - -0801b834 : -{ - 801b834: b480 push {r7} - 801b836: b083 sub sp, #12 - 801b838: af00 add r7, sp, #0 - 801b83a: 6078 str r0, [r7, #4] - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 801b83c: 687b ldr r3, [r7, #4] - 801b83e: f9b3 3006 ldrsh.w r3, [r3, #6] - 801b842: b29a uxth r2, r3 - 801b844: 687b ldr r3, [r7, #4] - 801b846: f9b3 3002 ldrsh.w r3, [r3, #2] - 801b84a: b29b uxth r3, r3 - 801b84c: 1ad3 subs r3, r2, r3 - 801b84e: b29b uxth r3, r3 - 801b850: 3301 adds r3, #1 - 801b852: b29b uxth r3, r3 - 801b854: b21b sxth r3, r3 -} - 801b856: 4618 mov r0, r3 - 801b858: 370c adds r7, #12 - 801b85a: 46bd mov sp, r7 - 801b85c: bc80 pop {r7} - 801b85e: 4770 bx lr - -0801b860 : +0801b7cc : * GLOBAL FUNCTIONS **********************/ LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_img_decoded(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * draw_dsc, const lv_area_t * coords, const uint8_t * src_buf, lv_img_cf_t cf) { - 801b860: b580 push {r7, lr} - 801b862: b0c0 sub sp, #256 ; 0x100 - 801b864: af00 add r7, sp, #0 - 801b866: 60f8 str r0, [r7, #12] - 801b868: 60b9 str r1, [r7, #8] - 801b86a: 607a str r2, [r7, #4] - 801b86c: f507 7280 add.w r2, r7, #256 ; 0x100 - 801b870: f5a2 7280 sub.w r2, r2, #256 ; 0x100 - 801b874: 6013 str r3, [r2, #0] + 801b7cc: b580 push {r7, lr} + 801b7ce: b0c0 sub sp, #256 ; 0x100 + 801b7d0: af00 add r7, sp, #0 + 801b7d2: 60f8 str r0, [r7, #12] + 801b7d4: 60b9 str r1, [r7, #8] + 801b7d6: 607a str r2, [r7, #4] + 801b7d8: f507 7280 add.w r2, r7, #256 ; 0x100 + 801b7dc: f5a2 7280 sub.w r2, r2, #256 ; 0x100 + 801b7e0: 6013 str r3, [r2, #0] /*Use the clip area as draw area*/ lv_area_t draw_area; lv_area_copy(&draw_area, draw_ctx->clip_area); - 801b876: 68fb ldr r3, [r7, #12] - 801b878: 689a ldr r2, [r3, #8] - 801b87a: f107 0390 add.w r3, r7, #144 ; 0x90 - 801b87e: 4611 mov r1, r2 - 801b880: 4618 mov r0, r3 - 801b882: f7ff ffa3 bl 801b7cc + 801b7e2: 68fb ldr r3, [r7, #12] + 801b7e4: 689a ldr r2, [r3, #8] + 801b7e6: f107 0390 add.w r3, r7, #144 ; 0x90 + 801b7ea: 4611 mov r1, r2 + 801b7ec: 4618 mov r0, r3 + 801b7ee: f7ff ffa3 bl 801b738 bool mask_any = lv_draw_mask_is_any(&draw_area); - 801b886: f107 0390 add.w r3, r7, #144 ; 0x90 - 801b88a: 4618 mov r0, r3 - 801b88c: f7f7 fd08 bl 80132a0 - 801b890: 4603 mov r3, r0 - 801b892: f887 30df strb.w r3, [r7, #223] ; 0xdf + 801b7f2: f107 0390 add.w r3, r7, #144 ; 0x90 + 801b7f6: 4618 mov r0, r3 + 801b7f8: f7f7 fd08 bl 801320c + 801b7fc: 4603 mov r3, r0 + 801b7fe: f887 30df strb.w r3, [r7, #223] ; 0xdf lv_draw_sw_blend_dsc_t blend_dsc; lv_memset_00(&blend_dsc, sizeof(blend_dsc)); - 801b896: f107 0374 add.w r3, r7, #116 ; 0x74 - 801b89a: 211c movs r1, #28 - 801b89c: 4618 mov r0, r3 - 801b89e: f017 fc57 bl 8033150 + 801b802: f107 0374 add.w r3, r7, #116 ; 0x74 + 801b806: 211c movs r1, #28 + 801b808: 4618 mov r0, r3 + 801b80a: f017 fc57 bl 80330bc blend_dsc.opa = draw_dsc->opa; - 801b8a2: 68bb ldr r3, [r7, #8] - 801b8a4: 7adb ldrb r3, [r3, #11] - 801b8a6: f887 308c strb.w r3, [r7, #140] ; 0x8c + 801b80e: 68bb ldr r3, [r7, #8] + 801b810: 7adb ldrb r3, [r3, #11] + 801b812: f887 308c strb.w r3, [r7, #140] ; 0x8c blend_dsc.blend_mode = draw_dsc->blend_mode; - 801b8aa: 68bb ldr r3, [r7, #8] - 801b8ac: 7b1b ldrb r3, [r3, #12] - 801b8ae: f3c3 0303 ubfx r3, r3, #0, #4 - 801b8b2: b2db uxtb r3, r3 - 801b8b4: f887 308d strb.w r3, [r7, #141] ; 0x8d + 801b816: 68bb ldr r3, [r7, #8] + 801b818: 7b1b ldrb r3, [r3, #12] + 801b81a: f3c3 0303 ubfx r3, r3, #0, #4 + 801b81e: b2db uxtb r3, r3 + 801b820: f887 308d strb.w r3, [r7, #141] ; 0x8d /*The simplest case just copy the pixels into the draw_buf*/ if(!mask_any && draw_dsc->angle == 0 && draw_dsc->zoom == LV_IMG_ZOOM_NONE && - 801b8b8: f897 30df ldrb.w r3, [r7, #223] ; 0xdf - 801b8bc: f083 0301 eor.w r3, r3, #1 - 801b8c0: b2db uxtb r3, r3 - 801b8c2: 2b00 cmp r3, #0 - 801b8c4: d01f beq.n 801b906 - 801b8c6: 68bb ldr r3, [r7, #8] - 801b8c8: 881b ldrh r3, [r3, #0] - 801b8ca: 2b00 cmp r3, #0 - 801b8cc: d11b bne.n 801b906 - 801b8ce: 68bb ldr r3, [r7, #8] - 801b8d0: 885b ldrh r3, [r3, #2] - 801b8d2: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 801b8d6: d116 bne.n 801b906 - 801b8d8: f897 3108 ldrb.w r3, [r7, #264] ; 0x108 - 801b8dc: 2b04 cmp r3, #4 - 801b8de: d112 bne.n 801b906 + 801b824: f897 30df ldrb.w r3, [r7, #223] ; 0xdf + 801b828: f083 0301 eor.w r3, r3, #1 + 801b82c: b2db uxtb r3, r3 + 801b82e: 2b00 cmp r3, #0 + 801b830: d01f beq.n 801b872 + 801b832: 68bb ldr r3, [r7, #8] + 801b834: 881b ldrh r3, [r3, #0] + 801b836: 2b00 cmp r3, #0 + 801b838: d11b bne.n 801b872 + 801b83a: 68bb ldr r3, [r7, #8] + 801b83c: 885b ldrh r3, [r3, #2] + 801b83e: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 801b842: d116 bne.n 801b872 + 801b844: f897 3108 ldrb.w r3, [r7, #264] ; 0x108 + 801b848: 2b04 cmp r3, #4 + 801b84a: d112 bne.n 801b872 cf == LV_IMG_CF_TRUE_COLOR && draw_dsc->recolor_opa == LV_OPA_TRANSP) { - 801b8e0: 68bb ldr r3, [r7, #8] - 801b8e2: 7a9b ldrb r3, [r3, #10] - 801b8e4: 2b00 cmp r3, #0 - 801b8e6: d10e bne.n 801b906 + 801b84c: 68bb ldr r3, [r7, #8] + 801b84e: 7a9b ldrb r3, [r3, #10] + 801b850: 2b00 cmp r3, #0 + 801b852: d10e bne.n 801b872 blend_dsc.blend_area = coords; - 801b8e8: 687b ldr r3, [r7, #4] - 801b8ea: 677b str r3, [r7, #116] ; 0x74 + 801b854: 687b ldr r3, [r7, #4] + 801b856: 677b str r3, [r7, #116] ; 0x74 blend_dsc.src_buf = (const lv_color_t *)src_buf; - 801b8ec: f507 7380 add.w r3, r7, #256 ; 0x100 - 801b8f0: f5a3 7380 sub.w r3, r3, #256 ; 0x100 - 801b8f4: 681b ldr r3, [r3, #0] - 801b8f6: 67bb str r3, [r7, #120] ; 0x78 + 801b858: f507 7380 add.w r3, r7, #256 ; 0x100 + 801b85c: f5a3 7380 sub.w r3, r3, #256 ; 0x100 + 801b860: 681b ldr r3, [r3, #0] + 801b862: 67bb str r3, [r7, #120] ; 0x78 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801b8f8: f107 0374 add.w r3, r7, #116 ; 0x74 - 801b8fc: 4619 mov r1, r3 - 801b8fe: 68f8 ldr r0, [r7, #12] - 801b900: f7fe f8c7 bl 8019a92 - 801b904: e3ca b.n 801c09c + 801b864: f107 0374 add.w r3, r7, #116 ; 0x74 + 801b868: 4619 mov r1, r3 + 801b86a: 68f8 ldr r0, [r7, #12] + 801b86c: f7fe f8c7 bl 80199fe + 801b870: e3ca b.n 801c008 } /*In the other cases every pixel need to be checked one-by-one*/ else { //#if LV_DRAW_COMPLEX /*The pixel size in byte is different if an alpha byte is added too*/ uint8_t px_size_byte = cf == LV_IMG_CF_TRUE_COLOR_ALPHA ? LV_IMG_PX_SIZE_ALPHA_BYTE : sizeof(lv_color_t); - 801b906: f897 3108 ldrb.w r3, [r7, #264] ; 0x108 - 801b90a: 2b05 cmp r3, #5 - 801b90c: d101 bne.n 801b912 - 801b90e: 2303 movs r3, #3 - 801b910: e000 b.n 801b914 - 801b912: 2302 movs r3, #2 - 801b914: f887 30de strb.w r3, [r7, #222] ; 0xde + 801b872: f897 3108 ldrb.w r3, [r7, #264] ; 0x108 + 801b876: 2b05 cmp r3, #5 + 801b878: d101 bne.n 801b87e + 801b87a: 2303 movs r3, #3 + 801b87c: e000 b.n 801b880 + 801b87e: 2302 movs r3, #2 + 801b880: f887 30de strb.w r3, [r7, #222] ; 0xde /*Go to the first displayed pixel of the map*/ int32_t src_stride = lv_area_get_width(coords); - 801b918: 6878 ldr r0, [r7, #4] - 801b91a: f7ff ff75 bl 801b808 - 801b91e: 4603 mov r3, r0 - 801b920: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8 + 801b884: 6878 ldr r0, [r7, #4] + 801b886: f7ff ff75 bl 801b774 + 801b88a: 4603 mov r3, r0 + 801b88c: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8 lv_color_t c; lv_color_t chroma_keyed_color = LV_COLOR_CHROMA_KEY; - 801b924: f44f 407f mov.w r0, #65280 ; 0xff00 - 801b928: f7ff ff2d bl 801b786 - 801b92c: 4603 mov r3, r0 - 801b92e: f8a7 306c strh.w r3, [r7, #108] ; 0x6c + 801b890: f44f 407f mov.w r0, #65280 ; 0xff00 + 801b894: f7ff ff2d bl 801b6f2 + 801b898: 4603 mov r3, r0 + 801b89a: f8a7 306c strh.w r3, [r7, #108] ; 0x6c uint32_t px_i = 0; - 801b932: 2300 movs r3, #0 - 801b934: f8c7 30fc str.w r3, [r7, #252] ; 0xfc + 801b89e: 2300 movs r3, #0 + 801b8a0: f8c7 30fc str.w r3, [r7, #252] ; 0xfc const uint8_t * map_px; lv_coord_t draw_area_h = lv_area_get_height(&draw_area); - 801b938: f107 0390 add.w r3, r7, #144 ; 0x90 - 801b93c: 4618 mov r0, r3 - 801b93e: f7ff ff79 bl 801b834 - 801b942: 4603 mov r3, r0 - 801b944: f8a7 30d6 strh.w r3, [r7, #214] ; 0xd6 + 801b8a4: f107 0390 add.w r3, r7, #144 ; 0x90 + 801b8a8: 4618 mov r0, r3 + 801b8aa: f7ff ff79 bl 801b7a0 + 801b8ae: 4603 mov r3, r0 + 801b8b0: f8a7 30d6 strh.w r3, [r7, #214] ; 0xd6 lv_coord_t draw_area_w = lv_area_get_width(&draw_area); - 801b948: f107 0390 add.w r3, r7, #144 ; 0x90 - 801b94c: 4618 mov r0, r3 - 801b94e: f7ff ff5b bl 801b808 - 801b952: 4603 mov r3, r0 - 801b954: f8a7 30d4 strh.w r3, [r7, #212] ; 0xd4 + 801b8b4: f107 0390 add.w r3, r7, #144 ; 0x90 + 801b8b8: 4618 mov r0, r3 + 801b8ba: f7ff ff5b bl 801b774 + 801b8be: 4603 mov r3, r0 + 801b8c0: f8a7 30d4 strh.w r3, [r7, #212] ; 0xd4 lv_area_t blend_area; blend_area.x1 = draw_area.x1; - 801b958: f9b7 3090 ldrsh.w r3, [r7, #144] ; 0x90 - 801b95c: f8a7 3064 strh.w r3, [r7, #100] ; 0x64 + 801b8c4: f9b7 3090 ldrsh.w r3, [r7, #144] ; 0x90 + 801b8c8: f8a7 3064 strh.w r3, [r7, #100] ; 0x64 blend_area.x2 = draw_area.x2; - 801b960: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 - 801b964: f8a7 3068 strh.w r3, [r7, #104] ; 0x68 + 801b8cc: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 + 801b8d0: f8a7 3068 strh.w r3, [r7, #104] ; 0x68 blend_area.y1 = draw_area.y1; - 801b968: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 - 801b96c: f8a7 3066 strh.w r3, [r7, #102] ; 0x66 + 801b8d4: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 + 801b8d8: f8a7 3066 strh.w r3, [r7, #102] ; 0x66 blend_area.y2 = blend_area.y1; - 801b970: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 - 801b974: f8a7 306a strh.w r3, [r7, #106] ; 0x6a + 801b8dc: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 + 801b8e0: f8a7 306a strh.w r3, [r7, #106] ; 0x6a blend_dsc.blend_area = &blend_area; - 801b978: f107 0364 add.w r3, r7, #100 ; 0x64 - 801b97c: 677b str r3, [r7, #116] ; 0x74 + 801b8e4: f107 0364 add.w r3, r7, #100 ; 0x64 + 801b8e8: 677b str r3, [r7, #116] ; 0x74 bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false; - 801b97e: 68bb ldr r3, [r7, #8] - 801b980: 881b ldrh r3, [r3, #0] - 801b982: 2b00 cmp r3, #0 - 801b984: d104 bne.n 801b990 - 801b986: 68bb ldr r3, [r7, #8] - 801b988: 885b ldrh r3, [r3, #2] - 801b98a: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 801b98e: d001 beq.n 801b994 - 801b990: 2301 movs r3, #1 - 801b992: e000 b.n 801b996 - 801b994: 2300 movs r3, #0 - 801b996: f887 30d3 strb.w r3, [r7, #211] ; 0xd3 - 801b99a: f897 30d3 ldrb.w r3, [r7, #211] ; 0xd3 - 801b99e: f003 0301 and.w r3, r3, #1 - 801b9a2: f887 30d3 strb.w r3, [r7, #211] ; 0xd3 + 801b8ea: 68bb ldr r3, [r7, #8] + 801b8ec: 881b ldrh r3, [r3, #0] + 801b8ee: 2b00 cmp r3, #0 + 801b8f0: d104 bne.n 801b8fc + 801b8f2: 68bb ldr r3, [r7, #8] + 801b8f4: 885b ldrh r3, [r3, #2] + 801b8f6: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 801b8fa: d001 beq.n 801b900 + 801b8fc: 2301 movs r3, #1 + 801b8fe: e000 b.n 801b902 + 801b900: 2300 movs r3, #0 + 801b902: f887 30d3 strb.w r3, [r7, #211] ; 0xd3 + 801b906: f897 30d3 ldrb.w r3, [r7, #211] ; 0xd3 + 801b90a: f003 0301 and.w r3, r3, #1 + 801b90e: f887 30d3 strb.w r3, [r7, #211] ; 0xd3 /*Simple ARGB image. Handle it as special case because it's very common*/ if(!mask_any && !transform && cf == LV_IMG_CF_TRUE_COLOR_ALPHA && draw_dsc->recolor_opa == LV_OPA_TRANSP) { - 801b9a6: f897 30df ldrb.w r3, [r7, #223] ; 0xdf - 801b9aa: f083 0301 eor.w r3, r3, #1 - 801b9ae: b2db uxtb r3, r3 - 801b9b0: 2b00 cmp r3, #0 - 801b9b2: f000 811e beq.w 801bbf2 - 801b9b6: f897 30d3 ldrb.w r3, [r7, #211] ; 0xd3 - 801b9ba: f083 0301 eor.w r3, r3, #1 - 801b9be: b2db uxtb r3, r3 - 801b9c0: 2b00 cmp r3, #0 - 801b9c2: f000 8116 beq.w 801bbf2 - 801b9c6: f897 3108 ldrb.w r3, [r7, #264] ; 0x108 - 801b9ca: 2b05 cmp r3, #5 - 801b9cc: f040 8111 bne.w 801bbf2 - 801b9d0: 68bb ldr r3, [r7, #8] - 801b9d2: 7a9b ldrb r3, [r3, #10] - 801b9d4: 2b00 cmp r3, #0 - 801b9d6: f040 810c bne.w 801bbf2 + 801b912: f897 30df ldrb.w r3, [r7, #223] ; 0xdf + 801b916: f083 0301 eor.w r3, r3, #1 + 801b91a: b2db uxtb r3, r3 + 801b91c: 2b00 cmp r3, #0 + 801b91e: f000 811e beq.w 801bb5e + 801b922: f897 30d3 ldrb.w r3, [r7, #211] ; 0xd3 + 801b926: f083 0301 eor.w r3, r3, #1 + 801b92a: b2db uxtb r3, r3 + 801b92c: 2b00 cmp r3, #0 + 801b92e: f000 8116 beq.w 801bb5e + 801b932: f897 3108 ldrb.w r3, [r7, #264] ; 0x108 + 801b936: 2b05 cmp r3, #5 + 801b938: f040 8111 bne.w 801bb5e + 801b93c: 68bb ldr r3, [r7, #8] + 801b93e: 7a9b ldrb r3, [r3, #10] + 801b940: 2b00 cmp r3, #0 + 801b942: f040 810c bne.w 801bb5e uint32_t hor_res = (uint32_t) lv_disp_get_hor_res(_lv_refr_get_disp_refreshing()); - 801b9da: f7f4 f9b9 bl 800fd50 <_lv_refr_get_disp_refreshing> - 801b9de: 4603 mov r3, r0 - 801b9e0: 4618 mov r0, r3 - 801b9e2: f014 fd7d bl 80304e0 - 801b9e6: 4603 mov r3, r0 - 801b9e8: f8c7 30cc str.w r3, [r7, #204] ; 0xcc + 801b946: f7f4 f9b9 bl 800fcbc <_lv_refr_get_disp_refreshing> + 801b94a: 4603 mov r3, r0 + 801b94c: 4618 mov r0, r3 + 801b94e: f014 fd7d bl 803044c + 801b952: 4603 mov r3, r0 + 801b954: f8c7 30cc str.w r3, [r7, #204] ; 0xcc uint32_t mask_buf_size = lv_area_get_size(&draw_area) > (uint32_t) hor_res ? hor_res : lv_area_get_size(&draw_area); - 801b9ec: f107 0390 add.w r3, r7, #144 ; 0x90 - 801b9f0: 4618 mov r0, r3 - 801b9f2: f015 facf bl 8030f94 - 801b9f6: 4602 mov r2, r0 - 801b9f8: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc - 801b9fc: 4293 cmp r3, r2 - 801b9fe: d306 bcc.n 801ba0e - 801ba00: f107 0390 add.w r3, r7, #144 ; 0x90 - 801ba04: 4618 mov r0, r3 - 801ba06: f015 fac5 bl 8030f94 - 801ba0a: 4603 mov r3, r0 - 801ba0c: e001 b.n 801ba12 - 801ba0e: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc - 801ba12: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8 + 801b958: f107 0390 add.w r3, r7, #144 ; 0x90 + 801b95c: 4618 mov r0, r3 + 801b95e: f015 facf bl 8030f00 + 801b962: 4602 mov r2, r0 + 801b964: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc + 801b968: 4293 cmp r3, r2 + 801b96a: d306 bcc.n 801b97a + 801b96c: f107 0390 add.w r3, r7, #144 ; 0x90 + 801b970: 4618 mov r0, r3 + 801b972: f015 fac5 bl 8030f00 + 801b976: 4603 mov r3, r0 + 801b978: e001 b.n 801b97e + 801b97a: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc + 801b97e: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8 lv_color_t * src_buf_rgb = lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t)); - 801ba16: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 - 801ba1a: 005b lsls r3, r3, #1 - 801ba1c: 4618 mov r0, r3 - 801ba1e: f016 ffef bl 8032a00 - 801ba22: f8c7 00c4 str.w r0, [r7, #196] ; 0xc4 + 801b982: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 + 801b986: 005b lsls r3, r3, #1 + 801b988: 4618 mov r0, r3 + 801b98a: f016 ffef bl 803296c + 801b98e: f8c7 00c4 str.w r0, [r7, #196] ; 0xc4 lv_opa_t * mask_buf = lv_mem_buf_get(mask_buf_size); - 801ba26: f8d7 00c8 ldr.w r0, [r7, #200] ; 0xc8 - 801ba2a: f016 ffe9 bl 8032a00 - 801ba2e: f8c7 00c0 str.w r0, [r7, #192] ; 0xc0 + 801b992: f8d7 00c8 ldr.w r0, [r7, #200] ; 0xc8 + 801b996: f016 ffe9 bl 803296c + 801b99a: f8c7 00c0 str.w r0, [r7, #192] ; 0xc0 blend_dsc.mask_buf = mask_buf; - 801ba32: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801ba36: f8c7 3080 str.w r3, [r7, #128] ; 0x80 + 801b99e: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801b9a2: f8c7 3080 str.w r3, [r7, #128] ; 0x80 blend_dsc.mask_area = &blend_area; - 801ba3a: f107 0364 add.w r3, r7, #100 ; 0x64 - 801ba3e: f8c7 3088 str.w r3, [r7, #136] ; 0x88 + 801b9a6: f107 0364 add.w r3, r7, #100 ; 0x64 + 801b9aa: f8c7 3088 str.w r3, [r7, #136] ; 0x88 blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801ba42: 2302 movs r3, #2 - 801ba44: f887 3084 strb.w r3, [r7, #132] ; 0x84 + 801b9ae: 2302 movs r3, #2 + 801b9b0: f887 3084 strb.w r3, [r7, #132] ; 0x84 blend_dsc.src_buf = src_buf_rgb; - 801ba48: f8d7 30c4 ldr.w r3, [r7, #196] ; 0xc4 - 801ba4c: 67bb str r3, [r7, #120] ; 0x78 + 801b9b4: f8d7 30c4 ldr.w r3, [r7, #196] ; 0xc4 + 801b9b8: 67bb str r3, [r7, #120] ; 0x78 const uint8_t * src_buf_tmp = src_buf; - 801ba4e: f507 7380 add.w r3, r7, #256 ; 0x100 - 801ba52: f5a3 7380 sub.w r3, r3, #256 ; 0x100 - 801ba56: 681b ldr r3, [r3, #0] - 801ba58: f8c7 30f4 str.w r3, [r7, #244] ; 0xf4 + 801b9ba: f507 7380 add.w r3, r7, #256 ; 0x100 + 801b9be: f5a3 7380 sub.w r3, r3, #256 ; 0x100 + 801b9c2: 681b ldr r3, [r3, #0] + 801b9c4: f8c7 30f4 str.w r3, [r7, #244] ; 0xf4 src_buf_tmp += src_stride * (draw_area.y1 - coords->y1) * px_size_byte; - 801ba5c: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 - 801ba60: 461a mov r2, r3 - 801ba62: 687b ldr r3, [r7, #4] - 801ba64: f9b3 3002 ldrsh.w r3, [r3, #2] - 801ba68: 1ad3 subs r3, r2, r3 - 801ba6a: f8d7 20d8 ldr.w r2, [r7, #216] ; 0xd8 - 801ba6e: fb02 f303 mul.w r3, r2, r3 - 801ba72: f897 20de ldrb.w r2, [r7, #222] ; 0xde - 801ba76: fb02 f303 mul.w r3, r2, r3 - 801ba7a: 461a mov r2, r3 - 801ba7c: f8d7 30f4 ldr.w r3, [r7, #244] ; 0xf4 - 801ba80: 4413 add r3, r2 - 801ba82: f8c7 30f4 str.w r3, [r7, #244] ; 0xf4 + 801b9c8: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 + 801b9cc: 461a mov r2, r3 + 801b9ce: 687b ldr r3, [r7, #4] + 801b9d0: f9b3 3002 ldrsh.w r3, [r3, #2] + 801b9d4: 1ad3 subs r3, r2, r3 + 801b9d6: f8d7 20d8 ldr.w r2, [r7, #216] ; 0xd8 + 801b9da: fb02 f303 mul.w r3, r2, r3 + 801b9de: f897 20de ldrb.w r2, [r7, #222] ; 0xde + 801b9e2: fb02 f303 mul.w r3, r2, r3 + 801b9e6: 461a mov r2, r3 + 801b9e8: f8d7 30f4 ldr.w r3, [r7, #244] ; 0xf4 + 801b9ec: 4413 add r3, r2 + 801b9ee: f8c7 30f4 str.w r3, [r7, #244] ; 0xf4 src_buf_tmp += (draw_area.x1 - coords->x1) * px_size_byte; - 801ba86: f9b7 3090 ldrsh.w r3, [r7, #144] ; 0x90 - 801ba8a: 461a mov r2, r3 - 801ba8c: 687b ldr r3, [r7, #4] - 801ba8e: f9b3 3000 ldrsh.w r3, [r3] - 801ba92: 1ad3 subs r3, r2, r3 - 801ba94: f897 20de ldrb.w r2, [r7, #222] ; 0xde - 801ba98: fb02 f303 mul.w r3, r2, r3 - 801ba9c: 461a mov r2, r3 - 801ba9e: f8d7 30f4 ldr.w r3, [r7, #244] ; 0xf4 - 801baa2: 4413 add r3, r2 - 801baa4: f8c7 30f4 str.w r3, [r7, #244] ; 0xf4 + 801b9f2: f9b7 3090 ldrsh.w r3, [r7, #144] ; 0x90 + 801b9f6: 461a mov r2, r3 + 801b9f8: 687b ldr r3, [r7, #4] + 801b9fa: f9b3 3000 ldrsh.w r3, [r3] + 801b9fe: 1ad3 subs r3, r2, r3 + 801ba00: f897 20de ldrb.w r2, [r7, #222] ; 0xde + 801ba04: fb02 f303 mul.w r3, r2, r3 + 801ba08: 461a mov r2, r3 + 801ba0a: f8d7 30f4 ldr.w r3, [r7, #244] ; 0xf4 + 801ba0e: 4413 add r3, r2 + 801ba10: f8c7 30f4 str.w r3, [r7, #244] ; 0xf4 int32_t x; int32_t y; for(y = 0; y < draw_area_h; y++) { - 801baa8: 2300 movs r3, #0 - 801baaa: f8c7 30ec str.w r3, [r7, #236] ; 0xec - 801baae: e07c b.n 801bbaa + 801ba14: 2300 movs r3, #0 + 801ba16: f8c7 30ec str.w r3, [r7, #236] ; 0xec + 801ba1a: e07c b.n 801bb16 map_px = src_buf_tmp; - 801bab0: f8d7 30f4 ldr.w r3, [r7, #244] ; 0xf4 - 801bab4: f8c7 30f8 str.w r3, [r7, #248] ; 0xf8 + 801ba1c: f8d7 30f4 ldr.w r3, [r7, #244] ; 0xf4 + 801ba20: f8c7 30f8 str.w r3, [r7, #248] ; 0xf8 for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) { - 801bab8: 2300 movs r3, #0 - 801baba: f8c7 30f0 str.w r3, [r7, #240] ; 0xf0 - 801babe: e036 b.n 801bb2e + 801ba24: 2300 movs r3, #0 + 801ba26: f8c7 30f0 str.w r3, [r7, #240] ; 0xf0 + 801ba2a: e036 b.n 801ba9a lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1]; - 801bac0: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 - 801bac4: 3302 adds r3, #2 - 801bac6: 781b ldrb r3, [r3, #0] - 801bac8: f887 30bf strb.w r3, [r7, #191] ; 0xbf + 801ba2c: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 + 801ba30: 3302 adds r3, #2 + 801ba32: 781b ldrb r3, [r3, #0] + 801ba34: f887 30bf strb.w r3, [r7, #191] ; 0xbf mask_buf[px_i] = px_opa; - 801bacc: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0 - 801bad0: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 801bad4: 4413 add r3, r2 - 801bad6: f897 20bf ldrb.w r2, [r7, #191] ; 0xbf - 801bada: 701a strb r2, [r3, #0] + 801ba38: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0 + 801ba3c: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 801ba40: 4413 add r3, r2 + 801ba42: f897 20bf ldrb.w r2, [r7, #191] ; 0xbf + 801ba46: 701a strb r2, [r3, #0] if(px_opa) { - 801badc: f897 30bf ldrb.w r3, [r7, #191] ; 0xbf - 801bae0: 2b00 cmp r3, #0 - 801bae2: d013 beq.n 801bb0c + 801ba48: f897 30bf ldrb.w r3, [r7, #191] ; 0xbf + 801ba4c: 2b00 cmp r3, #0 + 801ba4e: d013 beq.n 801ba78 #if LV_COLOR_DEPTH == 8 || LV_COLOR_DEPTH == 1 src_buf_rgb[px_i].full = map_px[0]; #elif LV_COLOR_DEPTH == 16 src_buf_rgb[px_i].full = map_px[0] + (map_px[1] << 8); - 801bae4: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 - 801bae8: 781b ldrb r3, [r3, #0] - 801baea: b299 uxth r1, r3 - 801baec: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 - 801baf0: 3301 adds r3, #1 - 801baf2: 781b ldrb r3, [r3, #0] - 801baf4: b29b uxth r3, r3 - 801baf6: 021b lsls r3, r3, #8 - 801baf8: b29a uxth r2, r3 - 801bafa: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 801bafe: 005b lsls r3, r3, #1 - 801bb00: f8d7 00c4 ldr.w r0, [r7, #196] ; 0xc4 - 801bb04: 4403 add r3, r0 - 801bb06: 440a add r2, r1 - 801bb08: b292 uxth r2, r2 - 801bb0a: 801a strh r2, [r3, #0] + 801ba50: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 + 801ba54: 781b ldrb r3, [r3, #0] + 801ba56: b299 uxth r1, r3 + 801ba58: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 + 801ba5c: 3301 adds r3, #1 + 801ba5e: 781b ldrb r3, [r3, #0] + 801ba60: b29b uxth r3, r3 + 801ba62: 021b lsls r3, r3, #8 + 801ba64: b29a uxth r2, r3 + 801ba66: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 801ba6a: 005b lsls r3, r3, #1 + 801ba6c: f8d7 00c4 ldr.w r0, [r7, #196] ; 0xc4 + 801ba70: 4403 add r3, r0 + 801ba72: 440a add r2, r1 + 801ba74: b292 uxth r2, r2 + 801ba76: 801a strh r2, [r3, #0] for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) { - 801bb0c: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 801bb10: 3301 adds r3, #1 - 801bb12: f8c7 30f0 str.w r3, [r7, #240] ; 0xf0 - 801bb16: f897 30de ldrb.w r3, [r7, #222] ; 0xde - 801bb1a: f8d7 20f8 ldr.w r2, [r7, #248] ; 0xf8 - 801bb1e: 4413 add r3, r2 - 801bb20: f8c7 30f8 str.w r3, [r7, #248] ; 0xf8 - 801bb24: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 801bb28: 3301 adds r3, #1 - 801bb2a: f8c7 30fc str.w r3, [r7, #252] ; 0xfc - 801bb2e: f9b7 30d4 ldrsh.w r3, [r7, #212] ; 0xd4 - 801bb32: f8d7 20f0 ldr.w r2, [r7, #240] ; 0xf0 - 801bb36: 429a cmp r2, r3 - 801bb38: dbc2 blt.n 801bac0 + 801ba78: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 801ba7c: 3301 adds r3, #1 + 801ba7e: f8c7 30f0 str.w r3, [r7, #240] ; 0xf0 + 801ba82: f897 30de ldrb.w r3, [r7, #222] ; 0xde + 801ba86: f8d7 20f8 ldr.w r2, [r7, #248] ; 0xf8 + 801ba8a: 4413 add r3, r2 + 801ba8c: f8c7 30f8 str.w r3, [r7, #248] ; 0xf8 + 801ba90: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 801ba94: 3301 adds r3, #1 + 801ba96: f8c7 30fc str.w r3, [r7, #252] ; 0xfc + 801ba9a: f9b7 30d4 ldrsh.w r3, [r7, #212] ; 0xd4 + 801ba9e: f8d7 20f0 ldr.w r2, [r7, #240] ; 0xf0 + 801baa2: 429a cmp r2, r3 + 801baa4: dbc2 blt.n 801ba2c #if LV_COLOR_DEPTH == 32 src_buf_rgb[px_i].ch.alpha = 0xFF; #endif } src_buf_tmp += src_stride * px_size_byte; - 801bb3a: f897 30de ldrb.w r3, [r7, #222] ; 0xde - 801bb3e: f8d7 20d8 ldr.w r2, [r7, #216] ; 0xd8 - 801bb42: fb02 f303 mul.w r3, r2, r3 - 801bb46: 461a mov r2, r3 - 801bb48: f8d7 30f4 ldr.w r3, [r7, #244] ; 0xf4 - 801bb4c: 4413 add r3, r2 - 801bb4e: f8c7 30f4 str.w r3, [r7, #244] ; 0xf4 + 801baa6: f897 30de ldrb.w r3, [r7, #222] ; 0xde + 801baaa: f8d7 20d8 ldr.w r2, [r7, #216] ; 0xd8 + 801baae: fb02 f303 mul.w r3, r2, r3 + 801bab2: 461a mov r2, r3 + 801bab4: f8d7 30f4 ldr.w r3, [r7, #244] ; 0xf4 + 801bab8: 4413 add r3, r2 + 801baba: f8c7 30f4 str.w r3, [r7, #244] ; 0xf4 if(px_i + draw_area_w <= mask_buf_size) { - 801bb52: f9b7 20d4 ldrsh.w r2, [r7, #212] ; 0xd4 - 801bb56: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 801bb5a: 4413 add r3, r2 - 801bb5c: f8d7 20c8 ldr.w r2, [r7, #200] ; 0xc8 - 801bb60: 429a cmp r2, r3 - 801bb62: d308 bcc.n 801bb76 + 801babe: f9b7 20d4 ldrsh.w r2, [r7, #212] ; 0xd4 + 801bac2: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 801bac6: 4413 add r3, r2 + 801bac8: f8d7 20c8 ldr.w r2, [r7, #200] ; 0xc8 + 801bacc: 429a cmp r2, r3 + 801bace: d308 bcc.n 801bae2 blend_area.y2 ++; - 801bb64: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801bb68: b29b uxth r3, r3 - 801bb6a: 3301 adds r3, #1 - 801bb6c: b29b uxth r3, r3 - 801bb6e: b21b sxth r3, r3 - 801bb70: f8a7 306a strh.w r3, [r7, #106] ; 0x6a - 801bb74: e014 b.n 801bba0 + 801bad0: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801bad4: b29b uxth r3, r3 + 801bad6: 3301 adds r3, #1 + 801bad8: b29b uxth r3, r3 + 801bada: b21b sxth r3, r3 + 801badc: f8a7 306a strh.w r3, [r7, #106] ; 0x6a + 801bae0: e014 b.n 801bb0c } else { lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801bb76: f107 0374 add.w r3, r7, #116 ; 0x74 - 801bb7a: 4619 mov r1, r3 - 801bb7c: 68f8 ldr r0, [r7, #12] - 801bb7e: f7fd ff88 bl 8019a92 + 801bae2: f107 0374 add.w r3, r7, #116 ; 0x74 + 801bae6: 4619 mov r1, r3 + 801bae8: 68f8 ldr r0, [r7, #12] + 801baea: f7fd ff88 bl 80199fe blend_area.y1 = blend_area.y2 + 1; - 801bb82: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801bb86: b29b uxth r3, r3 - 801bb88: 3301 adds r3, #1 - 801bb8a: b29b uxth r3, r3 - 801bb8c: b21b sxth r3, r3 - 801bb8e: f8a7 3066 strh.w r3, [r7, #102] ; 0x66 + 801baee: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801baf2: b29b uxth r3, r3 + 801baf4: 3301 adds r3, #1 + 801baf6: b29b uxth r3, r3 + 801baf8: b21b sxth r3, r3 + 801bafa: f8a7 3066 strh.w r3, [r7, #102] ; 0x66 blend_area.y2 = blend_area.y1; - 801bb92: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 - 801bb96: f8a7 306a strh.w r3, [r7, #106] ; 0x6a + 801bafe: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 + 801bb02: f8a7 306a strh.w r3, [r7, #106] ; 0x6a px_i = 0; - 801bb9a: 2300 movs r3, #0 - 801bb9c: f8c7 30fc str.w r3, [r7, #252] ; 0xfc + 801bb06: 2300 movs r3, #0 + 801bb08: f8c7 30fc str.w r3, [r7, #252] ; 0xfc for(y = 0; y < draw_area_h; y++) { - 801bba0: f8d7 30ec ldr.w r3, [r7, #236] ; 0xec - 801bba4: 3301 adds r3, #1 - 801bba6: f8c7 30ec str.w r3, [r7, #236] ; 0xec - 801bbaa: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 - 801bbae: f8d7 20ec ldr.w r2, [r7, #236] ; 0xec - 801bbb2: 429a cmp r2, r3 - 801bbb4: f6ff af7c blt.w 801bab0 + 801bb0c: f8d7 30ec ldr.w r3, [r7, #236] ; 0xec + 801bb10: 3301 adds r3, #1 + 801bb12: f8c7 30ec str.w r3, [r7, #236] ; 0xec + 801bb16: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 + 801bb1a: f8d7 20ec ldr.w r2, [r7, #236] ; 0xec + 801bb1e: 429a cmp r2, r3 + 801bb20: f6ff af7c blt.w 801ba1c } } /*Flush the last part*/ if(blend_area.y1 != blend_area.y2) { - 801bbb8: f9b7 2066 ldrsh.w r2, [r7, #102] ; 0x66 - 801bbbc: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801bbc0: 429a cmp r2, r3 - 801bbc2: d00d beq.n 801bbe0 + 801bb24: f9b7 2066 ldrsh.w r2, [r7, #102] ; 0x66 + 801bb28: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801bb2c: 429a cmp r2, r3 + 801bb2e: d00d beq.n 801bb4c blend_area.y2--; - 801bbc4: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801bbc8: b29b uxth r3, r3 - 801bbca: 3b01 subs r3, #1 - 801bbcc: b29b uxth r3, r3 - 801bbce: b21b sxth r3, r3 - 801bbd0: f8a7 306a strh.w r3, [r7, #106] ; 0x6a + 801bb30: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801bb34: b29b uxth r3, r3 + 801bb36: 3b01 subs r3, #1 + 801bb38: b29b uxth r3, r3 + 801bb3a: b21b sxth r3, r3 + 801bb3c: f8a7 306a strh.w r3, [r7, #106] ; 0x6a lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801bbd4: f107 0374 add.w r3, r7, #116 ; 0x74 - 801bbd8: 4619 mov r1, r3 - 801bbda: 68f8 ldr r0, [r7, #12] - 801bbdc: f7fd ff59 bl 8019a92 + 801bb40: f107 0374 add.w r3, r7, #116 ; 0x74 + 801bb44: 4619 mov r1, r3 + 801bb46: 68f8 ldr r0, [r7, #12] + 801bb48: f7fd ff59 bl 80199fe } lv_mem_buf_release(mask_buf); - 801bbe0: f8d7 00c0 ldr.w r0, [r7, #192] ; 0xc0 - 801bbe4: f016 ffb8 bl 8032b58 + 801bb4c: f8d7 00c0 ldr.w r0, [r7, #192] ; 0xc0 + 801bb50: f016 ffb8 bl 8032ac4 lv_mem_buf_release(src_buf_rgb); - 801bbe8: f8d7 00c4 ldr.w r0, [r7, #196] ; 0xc4 - 801bbec: f016 ffb4 bl 8032b58 + 801bb54: f8d7 00c4 ldr.w r0, [r7, #196] ; 0xc4 + 801bb58: f016 ffb4 bl 8032ac4 if(!mask_any && !transform && cf == LV_IMG_CF_TRUE_COLOR_ALPHA && draw_dsc->recolor_opa == LV_OPA_TRANSP) { - 801bbf0: e254 b.n 801c09c + 801bb5c: e254 b.n 801c008 } /*Most complicated case: transform or other mask or chroma keyed*/ else { /*Build the image and a mask line-by-line*/ uint32_t hor_res = (uint32_t) lv_disp_get_hor_res(_lv_refr_get_disp_refreshing()); - 801bbf2: f7f4 f8ad bl 800fd50 <_lv_refr_get_disp_refreshing> - 801bbf6: 4603 mov r3, r0 - 801bbf8: 4618 mov r0, r3 - 801bbfa: f014 fc71 bl 80304e0 - 801bbfe: 4603 mov r3, r0 - 801bc00: f8c7 30b8 str.w r3, [r7, #184] ; 0xb8 + 801bb5e: f7f4 f8ad bl 800fcbc <_lv_refr_get_disp_refreshing> + 801bb62: 4603 mov r3, r0 + 801bb64: 4618 mov r0, r3 + 801bb66: f014 fc71 bl 803044c + 801bb6a: 4603 mov r3, r0 + 801bb6c: f8c7 30b8 str.w r3, [r7, #184] ; 0xb8 uint32_t mask_buf_size = lv_area_get_size(&draw_area) > hor_res ? hor_res : lv_area_get_size(&draw_area); - 801bc04: f107 0390 add.w r3, r7, #144 ; 0x90 - 801bc08: 4618 mov r0, r3 - 801bc0a: f015 f9c3 bl 8030f94 - 801bc0e: 4602 mov r2, r0 - 801bc10: f8d7 30b8 ldr.w r3, [r7, #184] ; 0xb8 - 801bc14: 4293 cmp r3, r2 - 801bc16: d306 bcc.n 801bc26 - 801bc18: f107 0390 add.w r3, r7, #144 ; 0x90 - 801bc1c: 4618 mov r0, r3 - 801bc1e: f015 f9b9 bl 8030f94 - 801bc22: 4603 mov r3, r0 - 801bc24: e001 b.n 801bc2a - 801bc26: f8d7 30b8 ldr.w r3, [r7, #184] ; 0xb8 - 801bc2a: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801bb70: f107 0390 add.w r3, r7, #144 ; 0x90 + 801bb74: 4618 mov r0, r3 + 801bb76: f015 f9c3 bl 8030f00 + 801bb7a: 4602 mov r2, r0 + 801bb7c: f8d7 30b8 ldr.w r3, [r7, #184] ; 0xb8 + 801bb80: 4293 cmp r3, r2 + 801bb82: d306 bcc.n 801bb92 + 801bb84: f107 0390 add.w r3, r7, #144 ; 0x90 + 801bb88: 4618 mov r0, r3 + 801bb8a: f015 f9b9 bl 8030f00 + 801bb8e: 4603 mov r3, r0 + 801bb90: e001 b.n 801bb96 + 801bb92: f8d7 30b8 ldr.w r3, [r7, #184] ; 0xb8 + 801bb96: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 lv_color_t * src_buf_rgb = lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t)); - 801bc2e: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801bc32: 005b lsls r3, r3, #1 - 801bc34: 4618 mov r0, r3 - 801bc36: f016 fee3 bl 8032a00 - 801bc3a: f8c7 00b0 str.w r0, [r7, #176] ; 0xb0 + 801bb9a: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801bb9e: 005b lsls r3, r3, #1 + 801bba0: 4618 mov r0, r3 + 801bba2: f016 fee3 bl 803296c + 801bba6: f8c7 00b0 str.w r0, [r7, #176] ; 0xb0 lv_opa_t * mask_buf = lv_mem_buf_get(mask_buf_size); - 801bc3e: f8d7 00b4 ldr.w r0, [r7, #180] ; 0xb4 - 801bc42: f016 fedd bl 8032a00 - 801bc46: f8c7 00ac str.w r0, [r7, #172] ; 0xac + 801bbaa: f8d7 00b4 ldr.w r0, [r7, #180] ; 0xb4 + 801bbae: f016 fedd bl 803296c + 801bbb2: f8c7 00ac str.w r0, [r7, #172] ; 0xac blend_dsc.mask_buf = mask_buf; - 801bc4a: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 801bc4e: f8c7 3080 str.w r3, [r7, #128] ; 0x80 + 801bbb6: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 801bbba: f8c7 3080 str.w r3, [r7, #128] ; 0x80 blend_dsc.mask_area = &blend_area; - 801bc52: f107 0364 add.w r3, r7, #100 ; 0x64 - 801bc56: f8c7 3088 str.w r3, [r7, #136] ; 0x88 + 801bbbe: f107 0364 add.w r3, r7, #100 ; 0x64 + 801bbc2: f8c7 3088 str.w r3, [r7, #136] ; 0x88 blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801bc5a: 2302 movs r3, #2 - 801bc5c: f887 3084 strb.w r3, [r7, #132] ; 0x84 + 801bbc6: 2302 movs r3, #2 + 801bbc8: f887 3084 strb.w r3, [r7, #132] ; 0x84 blend_dsc.src_buf = src_buf_rgb; - 801bc60: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 801bc64: 67bb str r3, [r7, #120] ; 0x78 + 801bbcc: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 801bbd0: 67bb str r3, [r7, #120] ; 0x78 const uint8_t * src_buf_tmp = NULL; - 801bc66: 2300 movs r3, #0 - 801bc68: f8c7 30e8 str.w r3, [r7, #232] ; 0xe8 + 801bbd2: 2300 movs r3, #0 + 801bbd4: f8c7 30e8 str.w r3, [r7, #232] ; 0xe8 #if LV_DRAW_COMPLEX lv_img_transform_dsc_t trans_dsc; lv_memset_00(&trans_dsc, sizeof(lv_img_transform_dsc_t)); - 801bc6c: f107 0310 add.w r3, r7, #16 - 801bc70: 214c movs r1, #76 ; 0x4c - 801bc72: 4618 mov r0, r3 - 801bc74: f017 fa6c bl 8033150 + 801bbd8: f107 0310 add.w r3, r7, #16 + 801bbdc: 214c movs r1, #76 ; 0x4c + 801bbde: 4618 mov r0, r3 + 801bbe0: f017 fa6c bl 80330bc if(transform) { - 801bc78: f897 30d3 ldrb.w r3, [r7, #211] ; 0xd3 - 801bc7c: 2b00 cmp r3, #0 - 801bc7e: d036 beq.n 801bcee + 801bbe4: f897 30d3 ldrb.w r3, [r7, #211] ; 0xd3 + 801bbe8: 2b00 cmp r3, #0 + 801bbea: d036 beq.n 801bc5a trans_dsc.cfg.angle = draw_dsc->angle; - 801bc80: 68bb ldr r3, [r7, #8] - 801bc82: 881b ldrh r3, [r3, #0] - 801bc84: b21b sxth r3, r3 - 801bc86: 83bb strh r3, [r7, #28] + 801bbec: 68bb ldr r3, [r7, #8] + 801bbee: 881b ldrh r3, [r3, #0] + 801bbf0: b21b sxth r3, r3 + 801bbf2: 83bb strh r3, [r7, #28] trans_dsc.cfg.zoom = draw_dsc->zoom; - 801bc88: 68bb ldr r3, [r7, #8] - 801bc8a: 885b ldrh r3, [r3, #2] - 801bc8c: 83fb strh r3, [r7, #30] + 801bbf4: 68bb ldr r3, [r7, #8] + 801bbf6: 885b ldrh r3, [r3, #2] + 801bbf8: 83fb strh r3, [r7, #30] trans_dsc.cfg.src = src_buf; - 801bc8e: f507 7380 add.w r3, r7, #256 ; 0x100 - 801bc92: f5a3 7380 sub.w r3, r3, #256 ; 0x100 - 801bc96: 681b ldr r3, [r3, #0] - 801bc98: 613b str r3, [r7, #16] + 801bbfa: f507 7380 add.w r3, r7, #256 ; 0x100 + 801bbfe: f5a3 7380 sub.w r3, r3, #256 ; 0x100 + 801bc02: 681b ldr r3, [r3, #0] + 801bc04: 613b str r3, [r7, #16] trans_dsc.cfg.src_w = src_stride; - 801bc9a: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 801bc9e: b21b sxth r3, r3 - 801bca0: 82bb strh r3, [r7, #20] + 801bc06: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 801bc0a: b21b sxth r3, r3 + 801bc0c: 82bb strh r3, [r7, #20] trans_dsc.cfg.src_h = lv_area_get_height(coords); - 801bca2: 6878 ldr r0, [r7, #4] - 801bca4: f7ff fdc6 bl 801b834 - 801bca8: 4603 mov r3, r0 - 801bcaa: 82fb strh r3, [r7, #22] + 801bc0e: 6878 ldr r0, [r7, #4] + 801bc10: f7ff fdc6 bl 801b7a0 + 801bc14: 4603 mov r3, r0 + 801bc16: 82fb strh r3, [r7, #22] trans_dsc.cfg.cf = cf; - 801bcac: f897 3108 ldrb.w r3, [r7, #264] ; 0x108 - 801bcb0: f887 3022 strb.w r3, [r7, #34] ; 0x22 + 801bc18: f897 3108 ldrb.w r3, [r7, #264] ; 0x108 + 801bc1c: f887 3022 strb.w r3, [r7, #34] ; 0x22 trans_dsc.cfg.pivot_x = draw_dsc->pivot.x; - 801bcb4: 68bb ldr r3, [r7, #8] - 801bcb6: f9b3 3004 ldrsh.w r3, [r3, #4] - 801bcba: 833b strh r3, [r7, #24] + 801bc20: 68bb ldr r3, [r7, #8] + 801bc22: f9b3 3004 ldrsh.w r3, [r3, #4] + 801bc26: 833b strh r3, [r7, #24] trans_dsc.cfg.pivot_y = draw_dsc->pivot.y; - 801bcbc: 68bb ldr r3, [r7, #8] - 801bcbe: f9b3 3006 ldrsh.w r3, [r3, #6] - 801bcc2: 837b strh r3, [r7, #26] + 801bc28: 68bb ldr r3, [r7, #8] + 801bc2a: f9b3 3006 ldrsh.w r3, [r3, #6] + 801bc2e: 837b strh r3, [r7, #26] trans_dsc.cfg.color = draw_dsc->recolor; - 801bcc4: 68bb ldr r3, [r7, #8] - 801bcc6: 891b ldrh r3, [r3, #8] - 801bcc8: 843b strh r3, [r7, #32] + 801bc30: 68bb ldr r3, [r7, #8] + 801bc32: 891b ldrh r3, [r3, #8] + 801bc34: 843b strh r3, [r7, #32] trans_dsc.cfg.antialias = draw_dsc->antialias; - 801bcca: 68bb ldr r3, [r7, #8] - 801bccc: 7d1b ldrb r3, [r3, #20] - 801bcce: f3c3 0300 ubfx r3, r3, #0, #1 - 801bcd2: b2db uxtb r3, r3 - 801bcd4: 2b00 cmp r3, #0 - 801bcd6: bf14 ite ne - 801bcd8: 2301 movne r3, #1 - 801bcda: 2300 moveq r3, #0 - 801bcdc: b2db uxtb r3, r3 - 801bcde: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 801bc36: 68bb ldr r3, [r7, #8] + 801bc38: 7d1b ldrb r3, [r3, #20] + 801bc3a: f3c3 0300 ubfx r3, r3, #0, #1 + 801bc3e: b2db uxtb r3, r3 + 801bc40: 2b00 cmp r3, #0 + 801bc42: bf14 ite ne + 801bc44: 2301 movne r3, #1 + 801bc46: 2300 moveq r3, #0 + 801bc48: b2db uxtb r3, r3 + 801bc4a: f887 3023 strb.w r3, [r7, #35] ; 0x23 _lv_img_buf_transform_init(&trans_dsc); - 801bce2: f107 0310 add.w r3, r7, #16 - 801bce6: 4618 mov r0, r3 - 801bce8: f7fa f8e8 bl 8015ebc <_lv_img_buf_transform_init> - 801bcec: e02c b.n 801bd48 + 801bc4e: f107 0310 add.w r3, r7, #16 + 801bc52: 4618 mov r0, r3 + 801bc54: f7fa f8e8 bl 8015e28 <_lv_img_buf_transform_init> + 801bc58: e02c b.n 801bcb4 } else { src_buf_tmp = src_buf; - 801bcee: f507 7380 add.w r3, r7, #256 ; 0x100 - 801bcf2: f5a3 7380 sub.w r3, r3, #256 ; 0x100 - 801bcf6: 681b ldr r3, [r3, #0] - 801bcf8: f8c7 30e8 str.w r3, [r7, #232] ; 0xe8 + 801bc5a: f507 7380 add.w r3, r7, #256 ; 0x100 + 801bc5e: f5a3 7380 sub.w r3, r3, #256 ; 0x100 + 801bc62: 681b ldr r3, [r3, #0] + 801bc64: f8c7 30e8 str.w r3, [r7, #232] ; 0xe8 src_buf_tmp += src_stride * (draw_area.y1 - coords->y1) * px_size_byte; - 801bcfc: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 - 801bd00: 461a mov r2, r3 - 801bd02: 687b ldr r3, [r7, #4] - 801bd04: f9b3 3002 ldrsh.w r3, [r3, #2] - 801bd08: 1ad3 subs r3, r2, r3 - 801bd0a: f8d7 20d8 ldr.w r2, [r7, #216] ; 0xd8 - 801bd0e: fb02 f303 mul.w r3, r2, r3 - 801bd12: f897 20de ldrb.w r2, [r7, #222] ; 0xde - 801bd16: fb02 f303 mul.w r3, r2, r3 - 801bd1a: 461a mov r2, r3 - 801bd1c: f8d7 30e8 ldr.w r3, [r7, #232] ; 0xe8 - 801bd20: 4413 add r3, r2 - 801bd22: f8c7 30e8 str.w r3, [r7, #232] ; 0xe8 + 801bc68: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 + 801bc6c: 461a mov r2, r3 + 801bc6e: 687b ldr r3, [r7, #4] + 801bc70: f9b3 3002 ldrsh.w r3, [r3, #2] + 801bc74: 1ad3 subs r3, r2, r3 + 801bc76: f8d7 20d8 ldr.w r2, [r7, #216] ; 0xd8 + 801bc7a: fb02 f303 mul.w r3, r2, r3 + 801bc7e: f897 20de ldrb.w r2, [r7, #222] ; 0xde + 801bc82: fb02 f303 mul.w r3, r2, r3 + 801bc86: 461a mov r2, r3 + 801bc88: f8d7 30e8 ldr.w r3, [r7, #232] ; 0xe8 + 801bc8c: 4413 add r3, r2 + 801bc8e: f8c7 30e8 str.w r3, [r7, #232] ; 0xe8 src_buf_tmp += (draw_area.x1 - coords->x1) * px_size_byte; - 801bd26: f9b7 3090 ldrsh.w r3, [r7, #144] ; 0x90 - 801bd2a: 461a mov r2, r3 - 801bd2c: 687b ldr r3, [r7, #4] - 801bd2e: f9b3 3000 ldrsh.w r3, [r3] - 801bd32: 1ad3 subs r3, r2, r3 - 801bd34: f897 20de ldrb.w r2, [r7, #222] ; 0xde - 801bd38: fb02 f303 mul.w r3, r2, r3 - 801bd3c: 461a mov r2, r3 - 801bd3e: f8d7 30e8 ldr.w r3, [r7, #232] ; 0xe8 - 801bd42: 4413 add r3, r2 - 801bd44: f8c7 30e8 str.w r3, [r7, #232] ; 0xe8 + 801bc92: f9b7 3090 ldrsh.w r3, [r7, #144] ; 0x90 + 801bc96: 461a mov r2, r3 + 801bc98: 687b ldr r3, [r7, #4] + 801bc9a: f9b3 3000 ldrsh.w r3, [r3] + 801bc9e: 1ad3 subs r3, r2, r3 + 801bca0: f897 20de ldrb.w r2, [r7, #222] ; 0xde + 801bca4: fb02 f303 mul.w r3, r2, r3 + 801bca8: 461a mov r2, r3 + 801bcaa: f8d7 30e8 ldr.w r3, [r7, #232] ; 0xe8 + 801bcae: 4413 add r3, r2 + 801bcb0: f8c7 30e8 str.w r3, [r7, #232] ; 0xe8 } #endif uint16_t recolor_premult[3] = {0}; - 801bd48: f107 035c add.w r3, r7, #92 ; 0x5c - 801bd4c: 2200 movs r2, #0 - 801bd4e: 601a str r2, [r3, #0] - 801bd50: 809a strh r2, [r3, #4] + 801bcb4: f107 035c add.w r3, r7, #92 ; 0x5c + 801bcb8: 2200 movs r2, #0 + 801bcba: 601a str r2, [r3, #0] + 801bcbc: 809a strh r2, [r3, #4] lv_opa_t recolor_opa_inv = 255 - draw_dsc->recolor_opa; - 801bd52: 68bb ldr r3, [r7, #8] - 801bd54: 7a9b ldrb r3, [r3, #10] - 801bd56: 43db mvns r3, r3 - 801bd58: f887 30ab strb.w r3, [r7, #171] ; 0xab + 801bcbe: 68bb ldr r3, [r7, #8] + 801bcc0: 7a9b ldrb r3, [r3, #10] + 801bcc2: 43db mvns r3, r3 + 801bcc4: f887 30ab strb.w r3, [r7, #171] ; 0xab if(draw_dsc->recolor_opa != 0) { - 801bd5c: 68bb ldr r3, [r7, #8] - 801bd5e: 7a9b ldrb r3, [r3, #10] - 801bd60: 2b00 cmp r3, #0 - 801bd62: d007 beq.n 801bd74 + 801bcc8: 68bb ldr r3, [r7, #8] + 801bcca: 7a9b ldrb r3, [r3, #10] + 801bccc: 2b00 cmp r3, #0 + 801bcce: d007 beq.n 801bce0 lv_color_premult(draw_dsc->recolor, draw_dsc->recolor_opa, recolor_premult); - 801bd64: 68bb ldr r3, [r7, #8] - 801bd66: 7a99 ldrb r1, [r3, #10] - 801bd68: f107 025c add.w r2, r7, #92 ; 0x5c - 801bd6c: 68bb ldr r3, [r7, #8] - 801bd6e: 8918 ldrh r0, [r3, #8] - 801bd70: f7ff fc77 bl 801b662 + 801bcd0: 68bb ldr r3, [r7, #8] + 801bcd2: 7a99 ldrb r1, [r3, #10] + 801bcd4: f107 025c add.w r2, r7, #92 ; 0x5c + 801bcd8: 68bb ldr r3, [r7, #8] + 801bcda: 8918 ldrh r0, [r3, #8] + 801bcdc: f7ff fc77 bl 801b5ce } blend_dsc.mask_res = (cf != LV_IMG_CF_TRUE_COLOR || draw_dsc->angle || - 801bd74: f897 3108 ldrb.w r3, [r7, #264] ; 0x108 - 801bd78: 2b04 cmp r3, #4 - 801bd7a: d108 bne.n 801bd8e - 801bd7c: 68bb ldr r3, [r7, #8] - 801bd7e: 881b ldrh r3, [r3, #0] - 801bd80: 2b00 cmp r3, #0 - 801bd82: d104 bne.n 801bd8e + 801bce0: f897 3108 ldrb.w r3, [r7, #264] ; 0x108 + 801bce4: 2b04 cmp r3, #4 + 801bce6: d108 bne.n 801bcfa + 801bce8: 68bb ldr r3, [r7, #8] + 801bcea: 881b ldrh r3, [r3, #0] + 801bcec: 2b00 cmp r3, #0 + 801bcee: d104 bne.n 801bcfa draw_dsc->zoom != LV_IMG_ZOOM_NONE) ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER; - 801bd84: 68bb ldr r3, [r7, #8] - 801bd86: 885b ldrh r3, [r3, #2] + 801bcf0: 68bb ldr r3, [r7, #8] + 801bcf2: 885b ldrh r3, [r3, #2] blend_dsc.mask_res = (cf != LV_IMG_CF_TRUE_COLOR || draw_dsc->angle || - 801bd88: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 801bd8c: d001 beq.n 801bd92 - 801bd8e: 2302 movs r3, #2 - 801bd90: e000 b.n 801bd94 - 801bd92: 2301 movs r3, #1 - 801bd94: f887 3084 strb.w r3, [r7, #132] ; 0x84 + 801bcf4: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 801bcf8: d001 beq.n 801bcfe + 801bcfa: 2302 movs r3, #2 + 801bcfc: e000 b.n 801bd00 + 801bcfe: 2301 movs r3, #1 + 801bd00: f887 3084 strb.w r3, [r7, #132] ; 0x84 /*Prepare the `mask_buf`if there are other masks*/ if(mask_any) { - 801bd98: f897 30df ldrb.w r3, [r7, #223] ; 0xdf - 801bd9c: 2b00 cmp r3, #0 - 801bd9e: d005 beq.n 801bdac + 801bd04: f897 30df ldrb.w r3, [r7, #223] ; 0xdf + 801bd08: 2b00 cmp r3, #0 + 801bd0a: d005 beq.n 801bd18 lv_memset_ff(mask_buf, mask_buf_size); - 801bda0: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 - 801bda4: f8d7 00ac ldr.w r0, [r7, #172] ; 0xac - 801bda8: f017 fa52 bl 8033250 + 801bd0c: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 + 801bd10: f8d7 00ac ldr.w r0, [r7, #172] ; 0xac + 801bd14: f017 fa52 bl 80331bc } int32_t x; int32_t y; #if LV_DRAW_COMPLEX int32_t rot_y = blend_area.y1 - coords->y1; - 801bdac: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 - 801bdb0: 461a mov r2, r3 - 801bdb2: 687b ldr r3, [r7, #4] - 801bdb4: f9b3 3002 ldrsh.w r3, [r3, #2] - 801bdb8: 1ad3 subs r3, r2, r3 - 801bdba: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + 801bd18: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 + 801bd1c: 461a mov r2, r3 + 801bd1e: 687b ldr r3, [r7, #4] + 801bd20: f9b3 3002 ldrsh.w r3, [r3, #2] + 801bd24: 1ad3 subs r3, r2, r3 + 801bd26: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 #endif for(y = 0; y < draw_area_h; y++) { - 801bdbe: 2300 movs r3, #0 - 801bdc0: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 - 801bdc4: e146 b.n 801c054 + 801bd2a: 2300 movs r3, #0 + 801bd2c: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 + 801bd30: e146 b.n 801bfc0 map_px = src_buf_tmp; - 801bdc6: f8d7 30e8 ldr.w r3, [r7, #232] ; 0xe8 - 801bdca: f8c7 30f8 str.w r3, [r7, #248] ; 0xf8 + 801bd32: f8d7 30e8 ldr.w r3, [r7, #232] ; 0xe8 + 801bd36: f8c7 30f8 str.w r3, [r7, #248] ; 0xf8 #if LV_DRAW_COMPLEX uint32_t px_i_start = px_i; - 801bdce: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 801bdd2: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 + 801bd3a: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 801bd3e: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 int32_t rot_x = blend_area.x1 - coords->x1; - 801bdd6: f9b7 3064 ldrsh.w r3, [r7, #100] ; 0x64 - 801bdda: 461a mov r2, r3 - 801bddc: 687b ldr r3, [r7, #4] - 801bdde: f9b3 3000 ldrsh.w r3, [r3] - 801bde2: 1ad3 subs r3, r2, r3 - 801bde4: f8c7 309c str.w r3, [r7, #156] ; 0x9c + 801bd42: f9b7 3064 ldrsh.w r3, [r7, #100] ; 0x64 + 801bd46: 461a mov r2, r3 + 801bd48: 687b ldr r3, [r7, #4] + 801bd4a: f9b3 3000 ldrsh.w r3, [r3] + 801bd4e: 1ad3 subs r3, r2, r3 + 801bd50: f8c7 309c str.w r3, [r7, #156] ; 0x9c #endif for(x = 0; x < draw_area_w; x++, px_i++, map_px += px_size_byte) { - 801bde8: 2300 movs r3, #0 - 801bdea: f8c7 30e4 str.w r3, [r7, #228] ; 0xe4 - 801bdee: e0a1 b.n 801bf34 + 801bd54: 2300 movs r3, #0 + 801bd56: f8c7 30e4 str.w r3, [r7, #228] ; 0xe4 + 801bd5a: e0a1 b.n 801bea0 #if LV_DRAW_COMPLEX if(transform) { - 801bdf0: f897 30d3 ldrb.w r3, [r7, #211] ; 0xd3 - 801bdf4: 2b00 cmp r3, #0 - 801bdf6: d034 beq.n 801be62 + 801bd5c: f897 30d3 ldrb.w r3, [r7, #211] ; 0xd3 + 801bd60: 2b00 cmp r3, #0 + 801bd62: d034 beq.n 801bdce /*Transform*/ bool ret; ret = _lv_img_buf_transform(&trans_dsc, rot_x + x, rot_y + y); - 801bdf8: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801bdfc: b29a uxth r2, r3 - 801bdfe: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 - 801be02: b29b uxth r3, r3 - 801be04: 4413 add r3, r2 - 801be06: b29b uxth r3, r3 - 801be08: b219 sxth r1, r3 - 801be0a: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 - 801be0e: b29a uxth r2, r3 - 801be10: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 801be14: b29b uxth r3, r3 - 801be16: 4413 add r3, r2 - 801be18: b29b uxth r3, r3 - 801be1a: b21a sxth r2, r3 - 801be1c: f107 0310 add.w r3, r7, #16 - 801be20: 4618 mov r0, r3 - 801be22: f7fa fb6d bl 8016500 <_lv_img_buf_transform> - 801be26: 4603 mov r3, r0 - 801be28: f887 3099 strb.w r3, [r7, #153] ; 0x99 + 801bd64: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801bd68: b29a uxth r2, r3 + 801bd6a: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 + 801bd6e: b29b uxth r3, r3 + 801bd70: 4413 add r3, r2 + 801bd72: b29b uxth r3, r3 + 801bd74: b219 sxth r1, r3 + 801bd76: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 + 801bd7a: b29a uxth r2, r3 + 801bd7c: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 801bd80: b29b uxth r3, r3 + 801bd82: 4413 add r3, r2 + 801bd84: b29b uxth r3, r3 + 801bd86: b21a sxth r2, r3 + 801bd88: f107 0310 add.w r3, r7, #16 + 801bd8c: 4618 mov r0, r3 + 801bd8e: f7fa fb6d bl 801646c <_lv_img_buf_transform> + 801bd92: 4603 mov r3, r0 + 801bd94: f887 3099 strb.w r3, [r7, #153] ; 0x99 if(ret == false) { - 801be2c: f897 3099 ldrb.w r3, [r7, #153] ; 0x99 - 801be30: f083 0301 eor.w r3, r3, #1 - 801be34: b2db uxtb r3, r3 - 801be36: 2b00 cmp r3, #0 - 801be38: d007 beq.n 801be4a + 801bd98: f897 3099 ldrb.w r3, [r7, #153] ; 0x99 + 801bd9c: f083 0301 eor.w r3, r3, #1 + 801bda0: b2db uxtb r3, r3 + 801bda2: 2b00 cmp r3, #0 + 801bda4: d007 beq.n 801bdb6 mask_buf[px_i] = LV_OPA_TRANSP; - 801be3a: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac - 801be3e: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 801be42: 4413 add r3, r2 - 801be44: 2200 movs r2, #0 - 801be46: 701a strb r2, [r3, #0] + 801bda6: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac + 801bdaa: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 801bdae: 4413 add r3, r2 + 801bdb0: 2200 movs r2, #0 + 801bdb2: 701a strb r2, [r3, #0] continue; - 801be48: e063 b.n 801bf12 + 801bdb4: e063 b.n 801be7e } else { mask_buf[px_i] = trans_dsc.res.opa; - 801be4a: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac - 801be4e: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 801be52: 4413 add r3, r2 - 801be54: f897 2026 ldrb.w r2, [r7, #38] ; 0x26 - 801be58: 701a strb r2, [r3, #0] + 801bdb6: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac + 801bdba: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 801bdbe: 4413 add r3, r2 + 801bdc0: f897 2026 ldrb.w r2, [r7, #38] ; 0x26 + 801bdc4: 701a strb r2, [r3, #0] c.full = trans_dsc.res.color.full; - 801be5a: 8cbb ldrh r3, [r7, #36] ; 0x24 - 801be5c: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 - 801be60: e03e b.n 801bee0 + 801bdc6: 8cbb ldrh r3, [r7, #36] ; 0x24 + 801bdc8: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 + 801bdcc: e03e b.n 801be4c } /*No transform*/ else #endif { if(cf == LV_IMG_CF_TRUE_COLOR_ALPHA) { - 801be62: f897 3108 ldrb.w r3, [r7, #264] ; 0x108 - 801be66: 2b05 cmp r3, #5 - 801be68: d112 bne.n 801be90 + 801bdce: f897 3108 ldrb.w r3, [r7, #264] ; 0x108 + 801bdd2: 2b05 cmp r3, #5 + 801bdd4: d112 bne.n 801bdfc lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1]; - 801be6a: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 - 801be6e: 3302 adds r3, #2 - 801be70: 781b ldrb r3, [r3, #0] - 801be72: f887 309a strb.w r3, [r7, #154] ; 0x9a + 801bdd6: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 + 801bdda: 3302 adds r3, #2 + 801bddc: 781b ldrb r3, [r3, #0] + 801bdde: f887 309a strb.w r3, [r7, #154] ; 0x9a mask_buf[px_i] = px_opa; - 801be76: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac - 801be7a: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 801be7e: 4413 add r3, r2 - 801be80: f897 209a ldrb.w r2, [r7, #154] ; 0x9a - 801be84: 701a strb r2, [r3, #0] + 801bde2: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac + 801bde6: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 801bdea: 4413 add r3, r2 + 801bdec: f897 209a ldrb.w r2, [r7, #154] ; 0x9a + 801bdf0: 701a strb r2, [r3, #0] if(px_opa == 0) { - 801be86: f897 309a ldrb.w r3, [r7, #154] ; 0x9a - 801be8a: 2b00 cmp r3, #0 - 801be8c: d107 bne.n 801be9e + 801bdf2: f897 309a ldrb.w r3, [r7, #154] ; 0x9a + 801bdf6: 2b00 cmp r3, #0 + 801bdf8: d107 bne.n 801be0a #if LV_COLOR_DEPTH == 32 src_buf_rgb[px_i].full = 0; #endif continue; - 801be8e: e040 b.n 801bf12 + 801bdfa: e040 b.n 801be7e } } else { mask_buf[px_i] = 0xFF; - 801be90: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac - 801be94: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 801be98: 4413 add r3, r2 - 801be9a: 22ff movs r2, #255 ; 0xff - 801be9c: 701a strb r2, [r3, #0] + 801bdfc: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac + 801be00: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 801be04: 4413 add r3, r2 + 801be06: 22ff movs r2, #255 ; 0xff + 801be08: 701a strb r2, [r3, #0] #if LV_COLOR_DEPTH == 1 c.full = map_px[0]; #elif LV_COLOR_DEPTH == 8 c.full = map_px[0]; #elif LV_COLOR_DEPTH == 16 c.full = map_px[0] + (map_px[1] << 8); - 801be9e: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 - 801bea2: 781b ldrb r3, [r3, #0] - 801bea4: b29a uxth r2, r3 - 801bea6: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 - 801beaa: 3301 adds r3, #1 - 801beac: 781b ldrb r3, [r3, #0] - 801beae: b29b uxth r3, r3 - 801beb0: 021b lsls r3, r3, #8 - 801beb2: b29b uxth r3, r3 - 801beb4: 4413 add r3, r2 - 801beb6: b29b uxth r3, r3 - 801beb8: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 + 801be0a: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 + 801be0e: 781b ldrb r3, [r3, #0] + 801be10: b29a uxth r2, r3 + 801be12: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 + 801be16: 3301 adds r3, #1 + 801be18: 781b ldrb r3, [r3, #0] + 801be1a: b29b uxth r3, r3 + 801be1c: 021b lsls r3, r3, #8 + 801be1e: b29b uxth r3, r3 + 801be20: 4413 add r3, r2 + 801be22: b29b uxth r3, r3 + 801be24: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 #elif LV_COLOR_DEPTH == 32 c.full = *((uint32_t *)map_px); c.ch.alpha = 0xFF; #endif if(cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) { - 801bebc: f897 3108 ldrb.w r3, [r7, #264] ; 0x108 - 801bec0: 2b06 cmp r3, #6 - 801bec2: d10d bne.n 801bee0 + 801be28: f897 3108 ldrb.w r3, [r7, #264] ; 0x108 + 801be2c: 2b06 cmp r3, #6 + 801be2e: d10d bne.n 801be4c if(c.full == chroma_keyed_color.full) { - 801bec4: f8b7 2070 ldrh.w r2, [r7, #112] ; 0x70 - 801bec8: f8b7 306c ldrh.w r3, [r7, #108] ; 0x6c - 801becc: 429a cmp r2, r3 - 801bece: d107 bne.n 801bee0 + 801be30: f8b7 2070 ldrh.w r2, [r7, #112] ; 0x70 + 801be34: f8b7 306c ldrh.w r3, [r7, #108] ; 0x6c + 801be38: 429a cmp r2, r3 + 801be3a: d107 bne.n 801be4c mask_buf[px_i] = LV_OPA_TRANSP; - 801bed0: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac - 801bed4: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 801bed8: 4413 add r3, r2 - 801beda: 2200 movs r2, #0 - 801bedc: 701a strb r2, [r3, #0] + 801be3c: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac + 801be40: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 801be44: 4413 add r3, r2 + 801be46: 2200 movs r2, #0 + 801be48: 701a strb r2, [r3, #0] #if LV_COLOR_DEPTH == 32 src_buf_rgb[px_i].full = 0; #endif continue; - 801bede: e018 b.n 801bf12 + 801be4a: e018 b.n 801be7e } } } if(draw_dsc->recolor_opa != 0) { - 801bee0: 68bb ldr r3, [r7, #8] - 801bee2: 7a9b ldrb r3, [r3, #10] - 801bee4: 2b00 cmp r3, #0 - 801bee6: d00b beq.n 801bf00 + 801be4c: 68bb ldr r3, [r7, #8] + 801be4e: 7a9b ldrb r3, [r3, #10] + 801be50: 2b00 cmp r3, #0 + 801be52: d00b beq.n 801be6c c = lv_color_mix_premult(recolor_premult, c, recolor_opa_inv); - 801bee8: f897 20ab ldrb.w r2, [r7, #171] ; 0xab - 801beec: f107 035c add.w r3, r7, #92 ; 0x5c - 801bef0: f8b7 1070 ldrh.w r1, [r7, #112] ; 0x70 - 801bef4: 4618 mov r0, r3 - 801bef6: f7ff fbe6 bl 801b6c6 - 801befa: 4603 mov r3, r0 - 801befc: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 + 801be54: f897 20ab ldrb.w r2, [r7, #171] ; 0xab + 801be58: f107 035c add.w r3, r7, #92 ; 0x5c + 801be5c: f8b7 1070 ldrh.w r1, [r7, #112] ; 0x70 + 801be60: 4618 mov r0, r3 + 801be62: f7ff fbe6 bl 801b632 + 801be66: 4603 mov r3, r0 + 801be68: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 } src_buf_rgb[px_i].full = c.full; - 801bf00: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 801bf04: 005b lsls r3, r3, #1 - 801bf06: f8d7 20b0 ldr.w r2, [r7, #176] ; 0xb0 - 801bf0a: 4413 add r3, r2 - 801bf0c: f8b7 2070 ldrh.w r2, [r7, #112] ; 0x70 - 801bf10: 801a strh r2, [r3, #0] + 801be6c: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 801be70: 005b lsls r3, r3, #1 + 801be72: f8d7 20b0 ldr.w r2, [r7, #176] ; 0xb0 + 801be76: 4413 add r3, r2 + 801be78: f8b7 2070 ldrh.w r2, [r7, #112] ; 0x70 + 801be7c: 801a strh r2, [r3, #0] for(x = 0; x < draw_area_w; x++, px_i++, map_px += px_size_byte) { - 801bf12: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 - 801bf16: 3301 adds r3, #1 - 801bf18: f8c7 30e4 str.w r3, [r7, #228] ; 0xe4 - 801bf1c: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 801bf20: 3301 adds r3, #1 - 801bf22: f8c7 30fc str.w r3, [r7, #252] ; 0xfc - 801bf26: f897 30de ldrb.w r3, [r7, #222] ; 0xde - 801bf2a: f8d7 20f8 ldr.w r2, [r7, #248] ; 0xf8 - 801bf2e: 4413 add r3, r2 - 801bf30: f8c7 30f8 str.w r3, [r7, #248] ; 0xf8 - 801bf34: f9b7 30d4 ldrsh.w r3, [r7, #212] ; 0xd4 - 801bf38: f8d7 20e4 ldr.w r2, [r7, #228] ; 0xe4 - 801bf3c: 429a cmp r2, r3 - 801bf3e: f6ff af57 blt.w 801bdf0 + 801be7e: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 + 801be82: 3301 adds r3, #1 + 801be84: f8c7 30e4 str.w r3, [r7, #228] ; 0xe4 + 801be88: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 801be8c: 3301 adds r3, #1 + 801be8e: f8c7 30fc str.w r3, [r7, #252] ; 0xfc + 801be92: f897 30de ldrb.w r3, [r7, #222] ; 0xde + 801be96: f8d7 20f8 ldr.w r2, [r7, #248] ; 0xf8 + 801be9a: 4413 add r3, r2 + 801be9c: f8c7 30f8 str.w r3, [r7, #248] ; 0xf8 + 801bea0: f9b7 30d4 ldrsh.w r3, [r7, #212] ; 0xd4 + 801bea4: f8d7 20e4 ldr.w r2, [r7, #228] ; 0xe4 + 801bea8: 429a cmp r2, r3 + 801beaa: f6ff af57 blt.w 801bd5c } #if LV_DRAW_COMPLEX /*Apply the masks if any*/ if(mask_any) { - 801bf42: f897 30df ldrb.w r3, [r7, #223] ; 0xdf - 801bf46: 2b00 cmp r3, #0 - 801bf48: d030 beq.n 801bfac + 801beae: f897 30df ldrb.w r3, [r7, #223] ; 0xdf + 801beb2: 2b00 cmp r3, #0 + 801beb4: d030 beq.n 801bf18 lv_draw_mask_res_t mask_res_sub; mask_res_sub = lv_draw_mask_apply(mask_buf + px_i_start, blend_area.x1, - 801bf4a: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac - 801bf4e: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0 - 801bf52: 18d0 adds r0, r2, r3 - 801bf54: f9b7 1064 ldrsh.w r1, [r7, #100] ; 0x64 + 801beb6: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac + 801beba: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0 + 801bebe: 18d0 adds r0, r2, r3 + 801bec0: f9b7 1064 ldrsh.w r1, [r7, #100] ; 0x64 y + draw_area.y1, draw_area_w); - 801bf58: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 - 801bf5c: b29a uxth r2, r3 - 801bf5e: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 801bf62: b29b uxth r3, r3 - 801bf64: 4413 add r3, r2 - 801bf66: b29b uxth r3, r3 + 801bec4: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 + 801bec8: b29a uxth r2, r3 + 801beca: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 801bece: b29b uxth r3, r3 + 801bed0: 4413 add r3, r2 + 801bed2: b29b uxth r3, r3 mask_res_sub = lv_draw_mask_apply(mask_buf + px_i_start, blend_area.x1, - 801bf68: b21a sxth r2, r3 - 801bf6a: f9b7 30d4 ldrsh.w r3, [r7, #212] ; 0xd4 - 801bf6e: f7f7 f899 bl 80130a4 - 801bf72: 4603 mov r3, r0 - 801bf74: f887 309b strb.w r3, [r7, #155] ; 0x9b + 801bed4: b21a sxth r2, r3 + 801bed6: f9b7 30d4 ldrsh.w r3, [r7, #212] ; 0xd4 + 801beda: f7f7 f899 bl 8013010 + 801bede: 4603 mov r3, r0 + 801bee0: f887 309b strb.w r3, [r7, #155] ; 0x9b if(mask_res_sub == LV_DRAW_MASK_RES_TRANSP) { - 801bf78: f897 309b ldrb.w r3, [r7, #155] ; 0x9b - 801bf7c: 2b00 cmp r3, #0 - 801bf7e: d10e bne.n 801bf9e + 801bee4: f897 309b ldrb.w r3, [r7, #155] ; 0x9b + 801bee8: 2b00 cmp r3, #0 + 801beea: d10e bne.n 801bf0a lv_memset_00(mask_buf + px_i_start, draw_area_w); - 801bf80: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac - 801bf84: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0 - 801bf88: 4413 add r3, r2 - 801bf8a: f9b7 20d4 ldrsh.w r2, [r7, #212] ; 0xd4 - 801bf8e: 4611 mov r1, r2 - 801bf90: 4618 mov r0, r3 - 801bf92: f017 f8dd bl 8033150 + 801beec: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac + 801bef0: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0 + 801bef4: 4413 add r3, r2 + 801bef6: f9b7 20d4 ldrsh.w r2, [r7, #212] ; 0xd4 + 801befa: 4611 mov r1, r2 + 801befc: 4618 mov r0, r3 + 801befe: f017 f8dd bl 80330bc blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801bf96: 2302 movs r3, #2 - 801bf98: f887 3084 strb.w r3, [r7, #132] ; 0x84 - 801bf9c: e006 b.n 801bfac + 801bf02: 2302 movs r3, #2 + 801bf04: f887 3084 strb.w r3, [r7, #132] ; 0x84 + 801bf08: e006 b.n 801bf18 } else if(mask_res_sub == LV_DRAW_MASK_RES_CHANGED) { - 801bf9e: f897 309b ldrb.w r3, [r7, #155] ; 0x9b - 801bfa2: 2b02 cmp r3, #2 - 801bfa4: d102 bne.n 801bfac + 801bf0a: f897 309b ldrb.w r3, [r7, #155] ; 0x9b + 801bf0e: 2b02 cmp r3, #2 + 801bf10: d102 bne.n 801bf18 blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801bfa6: 2302 movs r3, #2 - 801bfa8: f887 3084 strb.w r3, [r7, #132] ; 0x84 + 801bf12: 2302 movs r3, #2 + 801bf14: f887 3084 strb.w r3, [r7, #132] ; 0x84 } } #endif src_buf_tmp += src_stride * px_size_byte; - 801bfac: f897 30de ldrb.w r3, [r7, #222] ; 0xde - 801bfb0: f8d7 20d8 ldr.w r2, [r7, #216] ; 0xd8 - 801bfb4: fb02 f303 mul.w r3, r2, r3 - 801bfb8: 461a mov r2, r3 - 801bfba: f8d7 30e8 ldr.w r3, [r7, #232] ; 0xe8 - 801bfbe: 4413 add r3, r2 - 801bfc0: f8c7 30e8 str.w r3, [r7, #232] ; 0xe8 + 801bf18: f897 30de ldrb.w r3, [r7, #222] ; 0xde + 801bf1c: f8d7 20d8 ldr.w r2, [r7, #216] ; 0xd8 + 801bf20: fb02 f303 mul.w r3, r2, r3 + 801bf24: 461a mov r2, r3 + 801bf26: f8d7 30e8 ldr.w r3, [r7, #232] ; 0xe8 + 801bf2a: 4413 add r3, r2 + 801bf2c: f8c7 30e8 str.w r3, [r7, #232] ; 0xe8 if(px_i + draw_area_w < mask_buf_size) { - 801bfc4: f9b7 20d4 ldrsh.w r2, [r7, #212] ; 0xd4 - 801bfc8: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 801bfcc: 4413 add r3, r2 - 801bfce: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 - 801bfd2: 429a cmp r2, r3 - 801bfd4: d908 bls.n 801bfe8 + 801bf30: f9b7 20d4 ldrsh.w r2, [r7, #212] ; 0xd4 + 801bf34: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 801bf38: 4413 add r3, r2 + 801bf3a: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 + 801bf3e: 429a cmp r2, r3 + 801bf40: d908 bls.n 801bf54 blend_area.y2 ++; - 801bfd6: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801bfda: b29b uxth r3, r3 - 801bfdc: 3301 adds r3, #1 - 801bfde: b29b uxth r3, r3 - 801bfe0: b21b sxth r3, r3 - 801bfe2: f8a7 306a strh.w r3, [r7, #106] ; 0x6a - 801bfe6: e030 b.n 801c04a + 801bf42: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801bf46: b29b uxth r3, r3 + 801bf48: 3301 adds r3, #1 + 801bf4a: b29b uxth r3, r3 + 801bf4c: b21b sxth r3, r3 + 801bf4e: f8a7 306a strh.w r3, [r7, #106] ; 0x6a + 801bf52: e030 b.n 801bfb6 } else { lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801bfe8: f107 0374 add.w r3, r7, #116 ; 0x74 - 801bfec: 4619 mov r1, r3 - 801bfee: 68f8 ldr r0, [r7, #12] - 801bff0: f7fd fd4f bl 8019a92 + 801bf54: f107 0374 add.w r3, r7, #116 ; 0x74 + 801bf58: 4619 mov r1, r3 + 801bf5a: 68f8 ldr r0, [r7, #12] + 801bf5c: f7fd fd4f bl 80199fe blend_area.y1 = blend_area.y2 + 1; - 801bff4: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801bff8: b29b uxth r3, r3 - 801bffa: 3301 adds r3, #1 - 801bffc: b29b uxth r3, r3 - 801bffe: b21b sxth r3, r3 - 801c000: f8a7 3066 strh.w r3, [r7, #102] ; 0x66 + 801bf60: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801bf64: b29b uxth r3, r3 + 801bf66: 3301 adds r3, #1 + 801bf68: b29b uxth r3, r3 + 801bf6a: b21b sxth r3, r3 + 801bf6c: f8a7 3066 strh.w r3, [r7, #102] ; 0x66 blend_area.y2 = blend_area.y1; - 801c004: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 - 801c008: f8a7 306a strh.w r3, [r7, #106] ; 0x6a + 801bf70: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 + 801bf74: f8a7 306a strh.w r3, [r7, #106] ; 0x6a px_i = 0; - 801c00c: 2300 movs r3, #0 - 801c00e: f8c7 30fc str.w r3, [r7, #252] ; 0xfc + 801bf78: 2300 movs r3, #0 + 801bf7a: f8c7 30fc str.w r3, [r7, #252] ; 0xfc blend_dsc.mask_res = (cf != LV_IMG_CF_TRUE_COLOR || draw_dsc->angle || - 801c012: f897 3108 ldrb.w r3, [r7, #264] ; 0x108 - 801c016: 2b04 cmp r3, #4 - 801c018: d108 bne.n 801c02c - 801c01a: 68bb ldr r3, [r7, #8] - 801c01c: 881b ldrh r3, [r3, #0] - 801c01e: 2b00 cmp r3, #0 - 801c020: d104 bne.n 801c02c + 801bf7e: f897 3108 ldrb.w r3, [r7, #264] ; 0x108 + 801bf82: 2b04 cmp r3, #4 + 801bf84: d108 bne.n 801bf98 + 801bf86: 68bb ldr r3, [r7, #8] + 801bf88: 881b ldrh r3, [r3, #0] + 801bf8a: 2b00 cmp r3, #0 + 801bf8c: d104 bne.n 801bf98 draw_dsc->zoom != LV_IMG_ZOOM_NONE) ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER; - 801c022: 68bb ldr r3, [r7, #8] - 801c024: 885b ldrh r3, [r3, #2] + 801bf8e: 68bb ldr r3, [r7, #8] + 801bf90: 885b ldrh r3, [r3, #2] blend_dsc.mask_res = (cf != LV_IMG_CF_TRUE_COLOR || draw_dsc->angle || - 801c026: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 801c02a: d001 beq.n 801c030 - 801c02c: 2302 movs r3, #2 - 801c02e: e000 b.n 801c032 - 801c030: 2301 movs r3, #1 - 801c032: f887 3084 strb.w r3, [r7, #132] ; 0x84 + 801bf92: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 801bf96: d001 beq.n 801bf9c + 801bf98: 2302 movs r3, #2 + 801bf9a: e000 b.n 801bf9e + 801bf9c: 2301 movs r3, #1 + 801bf9e: f887 3084 strb.w r3, [r7, #132] ; 0x84 /*Prepare the `mask_buf`if there are other masks*/ if(mask_any) { - 801c036: f897 30df ldrb.w r3, [r7, #223] ; 0xdf - 801c03a: 2b00 cmp r3, #0 - 801c03c: d005 beq.n 801c04a + 801bfa2: f897 30df ldrb.w r3, [r7, #223] ; 0xdf + 801bfa6: 2b00 cmp r3, #0 + 801bfa8: d005 beq.n 801bfb6 lv_memset_ff(mask_buf, mask_buf_size); - 801c03e: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 - 801c042: f8d7 00ac ldr.w r0, [r7, #172] ; 0xac - 801c046: f017 f903 bl 8033250 + 801bfaa: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 + 801bfae: f8d7 00ac ldr.w r0, [r7, #172] ; 0xac + 801bfb2: f017 f903 bl 80331bc for(y = 0; y < draw_area_h; y++) { - 801c04a: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 801c04e: 3301 adds r3, #1 - 801c050: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 - 801c054: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 - 801c058: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 - 801c05c: 429a cmp r2, r3 - 801c05e: f6ff aeb2 blt.w 801bdc6 + 801bfb6: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 801bfba: 3301 adds r3, #1 + 801bfbc: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 + 801bfc0: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 + 801bfc4: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 + 801bfc8: 429a cmp r2, r3 + 801bfca: f6ff aeb2 blt.w 801bd32 } } } /*Flush the last part*/ if(blend_area.y1 != blend_area.y2) { - 801c062: f9b7 2066 ldrsh.w r2, [r7, #102] ; 0x66 - 801c066: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801c06a: 429a cmp r2, r3 - 801c06c: d00d beq.n 801c08a + 801bfce: f9b7 2066 ldrsh.w r2, [r7, #102] ; 0x66 + 801bfd2: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801bfd6: 429a cmp r2, r3 + 801bfd8: d00d beq.n 801bff6 blend_area.y2--; - 801c06e: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801c072: b29b uxth r3, r3 - 801c074: 3b01 subs r3, #1 - 801c076: b29b uxth r3, r3 - 801c078: b21b sxth r3, r3 - 801c07a: f8a7 306a strh.w r3, [r7, #106] ; 0x6a + 801bfda: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801bfde: b29b uxth r3, r3 + 801bfe0: 3b01 subs r3, #1 + 801bfe2: b29b uxth r3, r3 + 801bfe4: b21b sxth r3, r3 + 801bfe6: f8a7 306a strh.w r3, [r7, #106] ; 0x6a lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801c07e: f107 0374 add.w r3, r7, #116 ; 0x74 - 801c082: 4619 mov r1, r3 - 801c084: 68f8 ldr r0, [r7, #12] - 801c086: f7fd fd04 bl 8019a92 + 801bfea: f107 0374 add.w r3, r7, #116 ; 0x74 + 801bfee: 4619 mov r1, r3 + 801bff0: 68f8 ldr r0, [r7, #12] + 801bff2: f7fd fd04 bl 80199fe } lv_mem_buf_release(mask_buf); - 801c08a: f8d7 00ac ldr.w r0, [r7, #172] ; 0xac - 801c08e: f016 fd63 bl 8032b58 + 801bff6: f8d7 00ac ldr.w r0, [r7, #172] ; 0xac + 801bffa: f016 fd63 bl 8032ac4 lv_mem_buf_release(src_buf_rgb); - 801c092: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 801c096: f016 fd5f bl 8032b58 + 801bffe: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 801c002: f016 fd5f bl 8032ac4 } } } - 801c09a: bf00 nop - 801c09c: bf00 nop - 801c09e: f507 7780 add.w r7, r7, #256 ; 0x100 - 801c0a2: 46bd mov sp, r7 - 801c0a4: bd80 pop {r7, pc} + 801c006: bf00 nop + 801c008: bf00 nop + 801c00a: f507 7780 add.w r7, r7, #256 ; 0x100 + 801c00e: 46bd mov sp, r7 + 801c010: bd80 pop {r7, pc} -0801c0a6 : +0801c012 : { - 801c0a6: b480 push {r7} - 801c0a8: b083 sub sp, #12 - 801c0aa: af00 add r7, sp, #0 - 801c0ac: 6078 str r0, [r7, #4] - 801c0ae: 6039 str r1, [r7, #0] + 801c012: b480 push {r7} + 801c014: b083 sub sp, #12 + 801c016: af00 add r7, sp, #0 + 801c018: 6078 str r0, [r7, #4] + 801c01a: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 801c0b0: 683b ldr r3, [r7, #0] - 801c0b2: f9b3 2000 ldrsh.w r2, [r3] - 801c0b6: 687b ldr r3, [r7, #4] - 801c0b8: 801a strh r2, [r3, #0] + 801c01c: 683b ldr r3, [r7, #0] + 801c01e: f9b3 2000 ldrsh.w r2, [r3] + 801c022: 687b ldr r3, [r7, #4] + 801c024: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 801c0ba: 683b ldr r3, [r7, #0] - 801c0bc: f9b3 2002 ldrsh.w r2, [r3, #2] - 801c0c0: 687b ldr r3, [r7, #4] - 801c0c2: 805a strh r2, [r3, #2] + 801c026: 683b ldr r3, [r7, #0] + 801c028: f9b3 2002 ldrsh.w r2, [r3, #2] + 801c02c: 687b ldr r3, [r7, #4] + 801c02e: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 801c0c4: 683b ldr r3, [r7, #0] - 801c0c6: f9b3 2004 ldrsh.w r2, [r3, #4] - 801c0ca: 687b ldr r3, [r7, #4] - 801c0cc: 809a strh r2, [r3, #4] + 801c030: 683b ldr r3, [r7, #0] + 801c032: f9b3 2004 ldrsh.w r2, [r3, #4] + 801c036: 687b ldr r3, [r7, #4] + 801c038: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 801c0ce: 683b ldr r3, [r7, #0] - 801c0d0: f9b3 2006 ldrsh.w r2, [r3, #6] - 801c0d4: 687b ldr r3, [r7, #4] - 801c0d6: 80da strh r2, [r3, #6] + 801c03a: 683b ldr r3, [r7, #0] + 801c03c: f9b3 2006 ldrsh.w r2, [r3, #6] + 801c040: 687b ldr r3, [r7, #4] + 801c042: 80da strh r2, [r3, #6] } - 801c0d8: bf00 nop - 801c0da: 370c adds r7, #12 - 801c0dc: 46bd mov sp, r7 - 801c0de: bc80 pop {r7} - 801c0e0: 4770 bx lr + 801c044: bf00 nop + 801c046: 370c adds r7, #12 + 801c048: 46bd mov sp, r7 + 801c04a: bc80 pop {r7} + 801c04c: 4770 bx lr -0801c0e2 : +0801c04e : { - 801c0e2: b480 push {r7} - 801c0e4: b083 sub sp, #12 - 801c0e6: af00 add r7, sp, #0 - 801c0e8: 6078 str r0, [r7, #4] + 801c04e: b480 push {r7} + 801c050: b083 sub sp, #12 + 801c052: af00 add r7, sp, #0 + 801c054: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 801c0ea: 687b ldr r3, [r7, #4] - 801c0ec: f9b3 3004 ldrsh.w r3, [r3, #4] - 801c0f0: b29a uxth r2, r3 - 801c0f2: 687b ldr r3, [r7, #4] - 801c0f4: f9b3 3000 ldrsh.w r3, [r3] - 801c0f8: b29b uxth r3, r3 - 801c0fa: 1ad3 subs r3, r2, r3 - 801c0fc: b29b uxth r3, r3 - 801c0fe: 3301 adds r3, #1 - 801c100: b29b uxth r3, r3 - 801c102: b21b sxth r3, r3 + 801c056: 687b ldr r3, [r7, #4] + 801c058: f9b3 3004 ldrsh.w r3, [r3, #4] + 801c05c: b29a uxth r2, r3 + 801c05e: 687b ldr r3, [r7, #4] + 801c060: f9b3 3000 ldrsh.w r3, [r3] + 801c064: b29b uxth r3, r3 + 801c066: 1ad3 subs r3, r2, r3 + 801c068: b29b uxth r3, r3 + 801c06a: 3301 adds r3, #1 + 801c06c: b29b uxth r3, r3 + 801c06e: b21b sxth r3, r3 } - 801c104: 4618 mov r0, r3 - 801c106: 370c adds r7, #12 - 801c108: 46bd mov sp, r7 - 801c10a: bc80 pop {r7} - 801c10c: 4770 bx lr + 801c070: 4618 mov r0, r3 + 801c072: 370c adds r7, #12 + 801c074: 46bd mov sp, r7 + 801c076: bc80 pop {r7} + 801c078: 4770 bx lr -0801c10e : +0801c07a : * @param color color of letter * @param opa opacity of letter (0..255) */ void lv_draw_sw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_point_t * pos_p, uint32_t letter) { - 801c10e: b580 push {r7, lr} - 801c110: b08e sub sp, #56 ; 0x38 - 801c112: af02 add r7, sp, #8 - 801c114: 60f8 str r0, [r7, #12] - 801c116: 60b9 str r1, [r7, #8] - 801c118: 607a str r2, [r7, #4] - 801c11a: 603b str r3, [r7, #0] + 801c07a: b580 push {r7, lr} + 801c07c: b08e sub sp, #56 ; 0x38 + 801c07e: af02 add r7, sp, #8 + 801c080: 60f8 str r0, [r7, #12] + 801c082: 60b9 str r1, [r7, #8] + 801c084: 607a str r2, [r7, #4] + 801c086: 603b str r3, [r7, #0] lv_font_glyph_dsc_t g; bool g_ret = lv_font_get_glyph_dsc(dsc->font, &g, letter, '\0'); - 801c11c: 68bb ldr r3, [r7, #8] - 801c11e: 6818 ldr r0, [r3, #0] - 801c120: f107 0118 add.w r1, r7, #24 - 801c124: 2300 movs r3, #0 - 801c126: 683a ldr r2, [r7, #0] - 801c128: f013 fcbf bl 802faaa - 801c12c: 4603 mov r3, r0 - 801c12e: f887 302f strb.w r3, [r7, #47] ; 0x2f + 801c088: 68bb ldr r3, [r7, #8] + 801c08a: 6818 ldr r0, [r3, #0] + 801c08c: f107 0118 add.w r1, r7, #24 + 801c090: 2300 movs r3, #0 + 801c092: 683a ldr r2, [r7, #0] + 801c094: f013 fcbf bl 802fa16 + 801c098: 4603 mov r3, r0 + 801c09a: f887 302f strb.w r3, [r7, #47] ; 0x2f if(g_ret == false) { - 801c132: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 801c136: f083 0301 eor.w r3, r3, #1 - 801c13a: b2db uxtb r3, r3 - 801c13c: 2b00 cmp r3, #0 - 801c13e: d16e bne.n 801c21e + 801c09e: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 801c0a2: f083 0301 eor.w r3, r3, #1 + 801c0a6: b2db uxtb r3, r3 + 801c0a8: 2b00 cmp r3, #0 + 801c0aa: d16e bne.n 801c18a } return; } /*Don't draw anything if the character is empty. E.g. space*/ if((g.box_h == 0) || (g.box_w == 0)) return; - 801c140: 8c3b ldrh r3, [r7, #32] - 801c142: 2b00 cmp r3, #0 - 801c144: d06d beq.n 801c222 - 801c146: 8bfb ldrh r3, [r7, #30] - 801c148: 2b00 cmp r3, #0 - 801c14a: d06a beq.n 801c222 + 801c0ac: 8c3b ldrh r3, [r7, #32] + 801c0ae: 2b00 cmp r3, #0 + 801c0b0: d06d beq.n 801c18e + 801c0b2: 8bfb ldrh r3, [r7, #30] + 801c0b4: 2b00 cmp r3, #0 + 801c0b6: d06a beq.n 801c18e lv_point_t gpos; gpos.x = pos_p->x + g.ofs_x; - 801c14c: 687b ldr r3, [r7, #4] - 801c14e: f9b3 3000 ldrsh.w r3, [r3] - 801c152: b29a uxth r2, r3 - 801c154: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 801c158: b29b uxth r3, r3 - 801c15a: 4413 add r3, r2 - 801c15c: b29b uxth r3, r3 - 801c15e: b21b sxth r3, r3 - 801c160: 82bb strh r3, [r7, #20] + 801c0b8: 687b ldr r3, [r7, #4] + 801c0ba: f9b3 3000 ldrsh.w r3, [r3] + 801c0be: b29a uxth r2, r3 + 801c0c0: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 801c0c4: b29b uxth r3, r3 + 801c0c6: 4413 add r3, r2 + 801c0c8: b29b uxth r3, r3 + 801c0ca: b21b sxth r3, r3 + 801c0cc: 82bb strh r3, [r7, #20] gpos.y = pos_p->y + (dsc->font->line_height - dsc->font->base_line) - g.box_h - g.ofs_y; - 801c162: 687b ldr r3, [r7, #4] - 801c164: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c168: b29a uxth r2, r3 - 801c16a: 68bb ldr r3, [r7, #8] - 801c16c: 681b ldr r3, [r3, #0] - 801c16e: f9b3 3008 ldrsh.w r3, [r3, #8] - 801c172: b299 uxth r1, r3 - 801c174: 68bb ldr r3, [r7, #8] - 801c176: 681b ldr r3, [r3, #0] - 801c178: f9b3 300a ldrsh.w r3, [r3, #10] - 801c17c: b29b uxth r3, r3 - 801c17e: 1acb subs r3, r1, r3 - 801c180: b29b uxth r3, r3 - 801c182: 4413 add r3, r2 - 801c184: b29a uxth r2, r3 - 801c186: 8c3b ldrh r3, [r7, #32] - 801c188: 1ad3 subs r3, r2, r3 - 801c18a: b29a uxth r2, r3 - 801c18c: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 - 801c190: b29b uxth r3, r3 - 801c192: 1ad3 subs r3, r2, r3 - 801c194: b29b uxth r3, r3 - 801c196: b21b sxth r3, r3 - 801c198: 82fb strh r3, [r7, #22] + 801c0ce: 687b ldr r3, [r7, #4] + 801c0d0: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c0d4: b29a uxth r2, r3 + 801c0d6: 68bb ldr r3, [r7, #8] + 801c0d8: 681b ldr r3, [r3, #0] + 801c0da: f9b3 3008 ldrsh.w r3, [r3, #8] + 801c0de: b299 uxth r1, r3 + 801c0e0: 68bb ldr r3, [r7, #8] + 801c0e2: 681b ldr r3, [r3, #0] + 801c0e4: f9b3 300a ldrsh.w r3, [r3, #10] + 801c0e8: b29b uxth r3, r3 + 801c0ea: 1acb subs r3, r1, r3 + 801c0ec: b29b uxth r3, r3 + 801c0ee: 4413 add r3, r2 + 801c0f0: b29a uxth r2, r3 + 801c0f2: 8c3b ldrh r3, [r7, #32] + 801c0f4: 1ad3 subs r3, r2, r3 + 801c0f6: b29a uxth r2, r3 + 801c0f8: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 + 801c0fc: b29b uxth r3, r3 + 801c0fe: 1ad3 subs r3, r2, r3 + 801c100: b29b uxth r3, r3 + 801c102: b21b sxth r3, r3 + 801c104: 82fb strh r3, [r7, #22] /*If the letter is completely out of mask don't draw it*/ if(gpos.x + g.box_w < draw_ctx->clip_area->x1 || - 801c19a: f9b7 3014 ldrsh.w r3, [r7, #20] - 801c19e: 461a mov r2, r3 - 801c1a0: 8bfb ldrh r3, [r7, #30] - 801c1a2: 4413 add r3, r2 - 801c1a4: 68fa ldr r2, [r7, #12] - 801c1a6: 6892 ldr r2, [r2, #8] - 801c1a8: f9b2 2000 ldrsh.w r2, [r2] - 801c1ac: 4293 cmp r3, r2 - 801c1ae: db3a blt.n 801c226 + 801c106: f9b7 3014 ldrsh.w r3, [r7, #20] + 801c10a: 461a mov r2, r3 + 801c10c: 8bfb ldrh r3, [r7, #30] + 801c10e: 4413 add r3, r2 + 801c110: 68fa ldr r2, [r7, #12] + 801c112: 6892 ldr r2, [r2, #8] + 801c114: f9b2 2000 ldrsh.w r2, [r2] + 801c118: 4293 cmp r3, r2 + 801c11a: db3a blt.n 801c192 gpos.x > draw_ctx->clip_area->x2 || - 801c1b0: f9b7 2014 ldrsh.w r2, [r7, #20] - 801c1b4: 68fb ldr r3, [r7, #12] - 801c1b6: 689b ldr r3, [r3, #8] - 801c1b8: f9b3 3004 ldrsh.w r3, [r3, #4] + 801c11c: f9b7 2014 ldrsh.w r2, [r7, #20] + 801c120: 68fb ldr r3, [r7, #12] + 801c122: 689b ldr r3, [r3, #8] + 801c124: f9b3 3004 ldrsh.w r3, [r3, #4] if(gpos.x + g.box_w < draw_ctx->clip_area->x1 || - 801c1bc: 429a cmp r2, r3 - 801c1be: dc32 bgt.n 801c226 + 801c128: 429a cmp r2, r3 + 801c12a: dc32 bgt.n 801c192 gpos.y + g.box_h < draw_ctx->clip_area->y1 || - 801c1c0: f9b7 3016 ldrsh.w r3, [r7, #22] - 801c1c4: 461a mov r2, r3 - 801c1c6: 8c3b ldrh r3, [r7, #32] - 801c1c8: 4413 add r3, r2 - 801c1ca: 68fa ldr r2, [r7, #12] - 801c1cc: 6892 ldr r2, [r2, #8] - 801c1ce: f9b2 2002 ldrsh.w r2, [r2, #2] + 801c12c: f9b7 3016 ldrsh.w r3, [r7, #22] + 801c130: 461a mov r2, r3 + 801c132: 8c3b ldrh r3, [r7, #32] + 801c134: 4413 add r3, r2 + 801c136: 68fa ldr r2, [r7, #12] + 801c138: 6892 ldr r2, [r2, #8] + 801c13a: f9b2 2002 ldrsh.w r2, [r2, #2] gpos.x > draw_ctx->clip_area->x2 || - 801c1d2: 4293 cmp r3, r2 - 801c1d4: db27 blt.n 801c226 + 801c13e: 4293 cmp r3, r2 + 801c140: db27 blt.n 801c192 gpos.y > draw_ctx->clip_area->y2) { - 801c1d6: f9b7 2016 ldrsh.w r2, [r7, #22] - 801c1da: 68fb ldr r3, [r7, #12] - 801c1dc: 689b ldr r3, [r3, #8] - 801c1de: f9b3 3006 ldrsh.w r3, [r3, #6] + 801c142: f9b7 2016 ldrsh.w r2, [r7, #22] + 801c146: 68fb ldr r3, [r7, #12] + 801c148: 689b ldr r3, [r3, #8] + 801c14a: f9b3 3006 ldrsh.w r3, [r3, #6] gpos.y + g.box_h < draw_ctx->clip_area->y1 || - 801c1e2: 429a cmp r2, r3 - 801c1e4: dc1f bgt.n 801c226 + 801c14e: 429a cmp r2, r3 + 801c150: dc1f bgt.n 801c192 return; } const uint8_t * map_p = lv_font_get_glyph_bitmap(g.resolved_font, letter); - 801c1e6: 69bb ldr r3, [r7, #24] - 801c1e8: 6839 ldr r1, [r7, #0] - 801c1ea: 4618 mov r0, r3 - 801c1ec: f013 fc4a bl 802fa84 - 801c1f0: 62b8 str r0, [r7, #40] ; 0x28 + 801c152: 69bb ldr r3, [r7, #24] + 801c154: 6839 ldr r1, [r7, #0] + 801c156: 4618 mov r0, r3 + 801c158: f013 fc4a bl 802f9f0 + 801c15c: 62b8 str r0, [r7, #40] ; 0x28 if(map_p == NULL) { - 801c1f2: 6abb ldr r3, [r7, #40] ; 0x28 - 801c1f4: 2b00 cmp r3, #0 - 801c1f6: d018 beq.n 801c22a + 801c15e: 6abb ldr r3, [r7, #40] ; 0x28 + 801c160: 2b00 cmp r3, #0 + 801c162: d018 beq.n 801c196 LV_LOG_WARN("lv_draw_letter: character's bitmap not found"); return; } if(g.resolved_font->subpx) { - 801c1f8: 69bb ldr r3, [r7, #24] - 801c1fa: 7b1b ldrb r3, [r3, #12] - 801c1fc: f003 0303 and.w r3, r3, #3 - 801c200: b2db uxtb r3, r3 - 801c202: 2b00 cmp r3, #0 - 801c204: d112 bne.n 801c22c + 801c164: 69bb ldr r3, [r7, #24] + 801c166: 7b1b ldrb r3, [r3, #12] + 801c168: f003 0303 and.w r3, r3, #3 + 801c16c: b2db uxtb r3, r3 + 801c16e: 2b00 cmp r3, #0 + 801c170: d112 bne.n 801c198 #else LV_LOG_WARN("Can't draw sub-pixel rendered letter because LV_USE_FONT_SUBPX == 0 in lv_conf.h"); #endif } else { draw_letter_normal(draw_ctx, dsc, &gpos, &g, map_p); - 801c206: f107 0118 add.w r1, r7, #24 - 801c20a: f107 0214 add.w r2, r7, #20 - 801c20e: 6abb ldr r3, [r7, #40] ; 0x28 - 801c210: 9300 str r3, [sp, #0] - 801c212: 460b mov r3, r1 - 801c214: 68b9 ldr r1, [r7, #8] - 801c216: 68f8 ldr r0, [r7, #12] - 801c218: f000 f80c bl 801c234 - 801c21c: e006 b.n 801c22c + 801c172: f107 0118 add.w r1, r7, #24 + 801c176: f107 0214 add.w r2, r7, #20 + 801c17a: 6abb ldr r3, [r7, #40] ; 0x28 + 801c17c: 9300 str r3, [sp, #0] + 801c17e: 460b mov r3, r1 + 801c180: 68b9 ldr r1, [r7, #8] + 801c182: 68f8 ldr r0, [r7, #12] + 801c184: f000 f80c bl 801c1a0 + 801c188: e006 b.n 801c198 return; - 801c21e: bf00 nop - 801c220: e004 b.n 801c22c + 801c18a: bf00 nop + 801c18c: e004 b.n 801c198 if((g.box_h == 0) || (g.box_w == 0)) return; - 801c222: bf00 nop - 801c224: e002 b.n 801c22c + 801c18e: bf00 nop + 801c190: e002 b.n 801c198 return; - 801c226: bf00 nop - 801c228: e000 b.n 801c22c + 801c192: bf00 nop + 801c194: e000 b.n 801c198 return; - 801c22a: bf00 nop + 801c196: bf00 nop } } - 801c22c: 3730 adds r7, #48 ; 0x30 - 801c22e: 46bd mov sp, r7 - 801c230: bd80 pop {r7, pc} + 801c198: 3730 adds r7, #48 ; 0x30 + 801c19a: 46bd mov sp, r7 + 801c19c: bd80 pop {r7, pc} ... -0801c234 : +0801c1a0 : * STATIC FUNCTIONS **********************/ LV_ATTRIBUTE_FAST_MEM static void draw_letter_normal(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_point_t * pos, lv_font_glyph_dsc_t * g, const uint8_t * map_p) { - 801c234: b580 push {r7, lr} - 801c236: b0aa sub sp, #168 ; 0xa8 - 801c238: af00 add r7, sp, #0 - 801c23a: 60f8 str r0, [r7, #12] - 801c23c: 60b9 str r1, [r7, #8] - 801c23e: 607a str r2, [r7, #4] - 801c240: 603b str r3, [r7, #0] + 801c1a0: b580 push {r7, lr} + 801c1a2: b0aa sub sp, #168 ; 0xa8 + 801c1a4: af00 add r7, sp, #0 + 801c1a6: 60f8 str r0, [r7, #12] + 801c1a8: 60b9 str r1, [r7, #8] + 801c1aa: 607a str r2, [r7, #4] + 801c1ac: 603b str r3, [r7, #0] const uint8_t * bpp_opa_table_p; uint32_t bitmask_init; uint32_t bitmask; uint32_t bpp = g->bpp; - 801c242: 683b ldr r3, [r7, #0] - 801c244: 7b9b ldrb r3, [r3, #14] - 801c246: f3c3 0303 ubfx r3, r3, #0, #4 - 801c24a: b2db uxtb r3, r3 - 801c24c: f8c7 3098 str.w r3, [r7, #152] ; 0x98 + 801c1ae: 683b ldr r3, [r7, #0] + 801c1b0: 7b9b ldrb r3, [r3, #14] + 801c1b2: f3c3 0303 ubfx r3, r3, #0, #4 + 801c1b6: b2db uxtb r3, r3 + 801c1b8: f8c7 3098 str.w r3, [r7, #152] ; 0x98 lv_opa_t opa = dsc->opa; - 801c250: 68bb ldr r3, [r7, #8] - 801c252: 7e9b ldrb r3, [r3, #26] - 801c254: f887 307f strb.w r3, [r7, #127] ; 0x7f + 801c1bc: 68bb ldr r3, [r7, #8] + 801c1be: 7e9b ldrb r3, [r3, #26] + 801c1c0: f887 307f strb.w r3, [r7, #127] ; 0x7f uint32_t shades; if(bpp == 3) bpp = 4; - 801c258: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 801c25c: 2b03 cmp r3, #3 - 801c25e: d102 bne.n 801c266 - 801c260: 2304 movs r3, #4 - 801c262: f8c7 3098 str.w r3, [r7, #152] ; 0x98 + 801c1c4: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 801c1c8: 2b03 cmp r3, #3 + 801c1ca: d102 bne.n 801c1d2 + 801c1cc: 2304 movs r3, #4 + 801c1ce: f8c7 3098 str.w r3, [r7, #152] ; 0x98 switch(bpp) { - 801c266: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 801c26a: 3b01 subs r3, #1 - 801c26c: 2b07 cmp r3, #7 - 801c26e: f200 8286 bhi.w 801c77e - 801c272: a201 add r2, pc, #4 ; (adr r2, 801c278 ) - 801c274: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 801c278: 0801c299 .word 0x0801c299 - 801c27c: 0801c2ad .word 0x0801c2ad - 801c280: 0801c77f .word 0x0801c77f - 801c284: 0801c2c1 .word 0x0801c2c1 - 801c288: 0801c77f .word 0x0801c77f - 801c28c: 0801c77f .word 0x0801c77f - 801c290: 0801c77f .word 0x0801c77f - 801c294: 0801c2d5 .word 0x0801c2d5 + 801c1d2: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 801c1d6: 3b01 subs r3, #1 + 801c1d8: 2b07 cmp r3, #7 + 801c1da: f200 8286 bhi.w 801c6ea + 801c1de: a201 add r2, pc, #4 ; (adr r2, 801c1e4 ) + 801c1e0: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 801c1e4: 0801c205 .word 0x0801c205 + 801c1e8: 0801c219 .word 0x0801c219 + 801c1ec: 0801c6eb .word 0x0801c6eb + 801c1f0: 0801c22d .word 0x0801c22d + 801c1f4: 0801c6eb .word 0x0801c6eb + 801c1f8: 0801c6eb .word 0x0801c6eb + 801c1fc: 0801c6eb .word 0x0801c6eb + 801c200: 0801c241 .word 0x0801c241 case 1: bpp_opa_table_p = _lv_bpp1_opa_table; - 801c298: 4b6a ldr r3, [pc, #424] ; (801c444 ) - 801c29a: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + 801c204: 4b6a ldr r3, [pc, #424] ; (801c3b0 ) + 801c206: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 bitmask_init = 0x80; - 801c29e: 2380 movs r3, #128 ; 0x80 - 801c2a0: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 + 801c20a: 2380 movs r3, #128 ; 0x80 + 801c20c: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 shades = 2; - 801c2a4: 2302 movs r3, #2 - 801c2a6: f8c7 3094 str.w r3, [r7, #148] ; 0x94 + 801c210: 2302 movs r3, #2 + 801c212: f8c7 3094 str.w r3, [r7, #148] ; 0x94 break; - 801c2aa: e01e b.n 801c2ea + 801c216: e01e b.n 801c256 case 2: bpp_opa_table_p = _lv_bpp2_opa_table; - 801c2ac: 4b66 ldr r3, [pc, #408] ; (801c448 ) - 801c2ae: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + 801c218: 4b66 ldr r3, [pc, #408] ; (801c3b4 ) + 801c21a: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 bitmask_init = 0xC0; - 801c2b2: 23c0 movs r3, #192 ; 0xc0 - 801c2b4: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 + 801c21e: 23c0 movs r3, #192 ; 0xc0 + 801c220: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 shades = 4; - 801c2b8: 2304 movs r3, #4 - 801c2ba: f8c7 3094 str.w r3, [r7, #148] ; 0x94 + 801c224: 2304 movs r3, #4 + 801c226: f8c7 3094 str.w r3, [r7, #148] ; 0x94 break; - 801c2be: e014 b.n 801c2ea + 801c22a: e014 b.n 801c256 case 4: bpp_opa_table_p = _lv_bpp4_opa_table; - 801c2c0: 4b62 ldr r3, [pc, #392] ; (801c44c ) - 801c2c2: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + 801c22c: 4b62 ldr r3, [pc, #392] ; (801c3b8 ) + 801c22e: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 bitmask_init = 0xF0; - 801c2c6: 23f0 movs r3, #240 ; 0xf0 - 801c2c8: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 + 801c232: 23f0 movs r3, #240 ; 0xf0 + 801c234: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 shades = 16; - 801c2cc: 2310 movs r3, #16 - 801c2ce: f8c7 3094 str.w r3, [r7, #148] ; 0x94 + 801c238: 2310 movs r3, #16 + 801c23a: f8c7 3094 str.w r3, [r7, #148] ; 0x94 break; - 801c2d2: e00a b.n 801c2ea + 801c23e: e00a b.n 801c256 case 8: bpp_opa_table_p = _lv_bpp8_opa_table; - 801c2d4: 4b5e ldr r3, [pc, #376] ; (801c450 ) - 801c2d6: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + 801c240: 4b5e ldr r3, [pc, #376] ; (801c3bc ) + 801c242: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 bitmask_init = 0xFF; - 801c2da: 23ff movs r3, #255 ; 0xff - 801c2dc: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 + 801c246: 23ff movs r3, #255 ; 0xff + 801c248: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 shades = 256; - 801c2e0: f44f 7380 mov.w r3, #256 ; 0x100 - 801c2e4: f8c7 3094 str.w r3, [r7, #148] ; 0x94 + 801c24c: f44f 7380 mov.w r3, #256 ; 0x100 + 801c250: f8c7 3094 str.w r3, [r7, #148] ; 0x94 break; /*No opa table, pixel value will be used directly*/ - 801c2e8: bf00 nop + 801c254: bf00 nop } static lv_opa_t opa_table[256]; static lv_opa_t prev_opa = LV_OPA_TRANSP; static uint32_t prev_bpp = 0; if(opa < LV_OPA_MAX) { - 801c2ea: f897 307f ldrb.w r3, [r7, #127] ; 0x7f - 801c2ee: 2bfc cmp r3, #252 ; 0xfc - 801c2f0: d842 bhi.n 801c378 + 801c256: f897 307f ldrb.w r3, [r7, #127] ; 0x7f + 801c25a: 2bfc cmp r3, #252 ; 0xfc + 801c25c: d842 bhi.n 801c2e4 if(prev_opa != opa || prev_bpp != bpp) { - 801c2f2: 4b58 ldr r3, [pc, #352] ; (801c454 ) - 801c2f4: 781b ldrb r3, [r3, #0] - 801c2f6: f897 207f ldrb.w r2, [r7, #127] ; 0x7f - 801c2fa: 429a cmp r2, r3 - 801c2fc: d105 bne.n 801c30a - 801c2fe: 4b56 ldr r3, [pc, #344] ; (801c458 ) - 801c300: 681b ldr r3, [r3, #0] - 801c302: f8d7 2098 ldr.w r2, [r7, #152] ; 0x98 - 801c306: 429a cmp r2, r3 - 801c308: d02b beq.n 801c362 + 801c25e: 4b58 ldr r3, [pc, #352] ; (801c3c0 ) + 801c260: 781b ldrb r3, [r3, #0] + 801c262: f897 207f ldrb.w r2, [r7, #127] ; 0x7f + 801c266: 429a cmp r2, r3 + 801c268: d105 bne.n 801c276 + 801c26a: 4b56 ldr r3, [pc, #344] ; (801c3c4 ) + 801c26c: 681b ldr r3, [r3, #0] + 801c26e: f8d7 2098 ldr.w r2, [r7, #152] ; 0x98 + 801c272: 429a cmp r2, r3 + 801c274: d02b beq.n 801c2ce uint32_t i; for(i = 0; i < shades; i++) { - 801c30a: 2300 movs r3, #0 - 801c30c: f8c7 3090 str.w r3, [r7, #144] ; 0x90 - 801c310: e021 b.n 801c356 + 801c276: 2300 movs r3, #0 + 801c278: f8c7 3090 str.w r3, [r7, #144] ; 0x90 + 801c27c: e021 b.n 801c2c2 opa_table[i] = bpp_opa_table_p[i] == LV_OPA_COVER ? opa : ((bpp_opa_table_p[i] * opa) >> 8); - 801c312: f8d7 20a4 ldr.w r2, [r7, #164] ; 0xa4 - 801c316: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 801c31a: 4413 add r3, r2 - 801c31c: 781b ldrb r3, [r3, #0] - 801c31e: 2bff cmp r3, #255 ; 0xff - 801c320: d00d beq.n 801c33e - 801c322: f8d7 20a4 ldr.w r2, [r7, #164] ; 0xa4 - 801c326: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 801c32a: 4413 add r3, r2 - 801c32c: 781b ldrb r3, [r3, #0] - 801c32e: 461a mov r2, r3 - 801c330: f897 307f ldrb.w r3, [r7, #127] ; 0x7f - 801c334: fb02 f303 mul.w r3, r2, r3 - 801c338: 121b asrs r3, r3, #8 - 801c33a: b2db uxtb r3, r3 - 801c33c: e001 b.n 801c342 - 801c33e: f897 307f ldrb.w r3, [r7, #127] ; 0x7f - 801c342: 4946 ldr r1, [pc, #280] ; (801c45c ) - 801c344: f8d7 2090 ldr.w r2, [r7, #144] ; 0x90 - 801c348: 440a add r2, r1 - 801c34a: 7013 strb r3, [r2, #0] + 801c27e: f8d7 20a4 ldr.w r2, [r7, #164] ; 0xa4 + 801c282: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 801c286: 4413 add r3, r2 + 801c288: 781b ldrb r3, [r3, #0] + 801c28a: 2bff cmp r3, #255 ; 0xff + 801c28c: d00d beq.n 801c2aa + 801c28e: f8d7 20a4 ldr.w r2, [r7, #164] ; 0xa4 + 801c292: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 801c296: 4413 add r3, r2 + 801c298: 781b ldrb r3, [r3, #0] + 801c29a: 461a mov r2, r3 + 801c29c: f897 307f ldrb.w r3, [r7, #127] ; 0x7f + 801c2a0: fb02 f303 mul.w r3, r2, r3 + 801c2a4: 121b asrs r3, r3, #8 + 801c2a6: b2db uxtb r3, r3 + 801c2a8: e001 b.n 801c2ae + 801c2aa: f897 307f ldrb.w r3, [r7, #127] ; 0x7f + 801c2ae: 4946 ldr r1, [pc, #280] ; (801c3c8 ) + 801c2b0: f8d7 2090 ldr.w r2, [r7, #144] ; 0x90 + 801c2b4: 440a add r2, r1 + 801c2b6: 7013 strb r3, [r2, #0] for(i = 0; i < shades; i++) { - 801c34c: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 801c350: 3301 adds r3, #1 - 801c352: f8c7 3090 str.w r3, [r7, #144] ; 0x90 - 801c356: f8d7 2090 ldr.w r2, [r7, #144] ; 0x90 - 801c35a: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 801c35e: 429a cmp r2, r3 - 801c360: d3d7 bcc.n 801c312 + 801c2b8: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 801c2bc: 3301 adds r3, #1 + 801c2be: f8c7 3090 str.w r3, [r7, #144] ; 0x90 + 801c2c2: f8d7 2090 ldr.w r2, [r7, #144] ; 0x90 + 801c2c6: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 801c2ca: 429a cmp r2, r3 + 801c2cc: d3d7 bcc.n 801c27e } } bpp_opa_table_p = opa_table; - 801c362: 4b3e ldr r3, [pc, #248] ; (801c45c ) - 801c364: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + 801c2ce: 4b3e ldr r3, [pc, #248] ; (801c3c8 ) + 801c2d0: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 prev_opa = opa; - 801c368: 4a3a ldr r2, [pc, #232] ; (801c454 ) - 801c36a: f897 307f ldrb.w r3, [r7, #127] ; 0x7f - 801c36e: 7013 strb r3, [r2, #0] + 801c2d4: 4a3a ldr r2, [pc, #232] ; (801c3c0 ) + 801c2d6: f897 307f ldrb.w r3, [r7, #127] ; 0x7f + 801c2da: 7013 strb r3, [r2, #0] prev_bpp = bpp; - 801c370: 4a39 ldr r2, [pc, #228] ; (801c458 ) - 801c372: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 801c376: 6013 str r3, [r2, #0] + 801c2dc: 4a39 ldr r2, [pc, #228] ; (801c3c4 ) + 801c2de: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 801c2e2: 6013 str r3, [r2, #0] } int32_t col, row; int32_t box_w = g->box_w; - 801c378: 683b ldr r3, [r7, #0] - 801c37a: 88db ldrh r3, [r3, #6] - 801c37c: 67bb str r3, [r7, #120] ; 0x78 + 801c2e4: 683b ldr r3, [r7, #0] + 801c2e6: 88db ldrh r3, [r3, #6] + 801c2e8: 67bb str r3, [r7, #120] ; 0x78 int32_t box_h = g->box_h; - 801c37e: 683b ldr r3, [r7, #0] - 801c380: 891b ldrh r3, [r3, #8] - 801c382: 677b str r3, [r7, #116] ; 0x74 + 801c2ea: 683b ldr r3, [r7, #0] + 801c2ec: 891b ldrh r3, [r3, #8] + 801c2ee: 677b str r3, [r7, #116] ; 0x74 int32_t width_bit = box_w * bpp; /*Letter width in bits*/ - 801c384: 6fbb ldr r3, [r7, #120] ; 0x78 - 801c386: f8d7 2098 ldr.w r2, [r7, #152] ; 0x98 - 801c38a: fb02 f303 mul.w r3, r2, r3 - 801c38e: 673b str r3, [r7, #112] ; 0x70 + 801c2f0: 6fbb ldr r3, [r7, #120] ; 0x78 + 801c2f2: f8d7 2098 ldr.w r2, [r7, #152] ; 0x98 + 801c2f6: fb02 f303 mul.w r3, r2, r3 + 801c2fa: 673b str r3, [r7, #112] ; 0x70 /*Calculate the col/row start/end on the map*/ int32_t col_start = pos->x >= draw_ctx->clip_area->x1 ? 0 : draw_ctx->clip_area->x1 - pos->x; - 801c390: 687b ldr r3, [r7, #4] - 801c392: f9b3 2000 ldrsh.w r2, [r3] - 801c396: 68fb ldr r3, [r7, #12] - 801c398: 689b ldr r3, [r3, #8] - 801c39a: f9b3 3000 ldrsh.w r3, [r3] - 801c39e: 429a cmp r2, r3 - 801c3a0: da09 bge.n 801c3b6 - 801c3a2: 68fb ldr r3, [r7, #12] - 801c3a4: 689b ldr r3, [r3, #8] - 801c3a6: f9b3 3000 ldrsh.w r3, [r3] - 801c3aa: 461a mov r2, r3 - 801c3ac: 687b ldr r3, [r7, #4] - 801c3ae: f9b3 3000 ldrsh.w r3, [r3] - 801c3b2: 1ad3 subs r3, r2, r3 - 801c3b4: e000 b.n 801c3b8 - 801c3b6: 2300 movs r3, #0 - 801c3b8: 66fb str r3, [r7, #108] ; 0x6c + 801c2fc: 687b ldr r3, [r7, #4] + 801c2fe: f9b3 2000 ldrsh.w r2, [r3] + 801c302: 68fb ldr r3, [r7, #12] + 801c304: 689b ldr r3, [r3, #8] + 801c306: f9b3 3000 ldrsh.w r3, [r3] + 801c30a: 429a cmp r2, r3 + 801c30c: da09 bge.n 801c322 + 801c30e: 68fb ldr r3, [r7, #12] + 801c310: 689b ldr r3, [r3, #8] + 801c312: f9b3 3000 ldrsh.w r3, [r3] + 801c316: 461a mov r2, r3 + 801c318: 687b ldr r3, [r7, #4] + 801c31a: f9b3 3000 ldrsh.w r3, [r3] + 801c31e: 1ad3 subs r3, r2, r3 + 801c320: e000 b.n 801c324 + 801c322: 2300 movs r3, #0 + 801c324: 66fb str r3, [r7, #108] ; 0x6c int32_t col_end = pos->x + box_w <= draw_ctx->clip_area->x2 ? box_w : draw_ctx->clip_area->x2 - pos->x + 1; - 801c3ba: 687b ldr r3, [r7, #4] - 801c3bc: f9b3 3000 ldrsh.w r3, [r3] - 801c3c0: 461a mov r2, r3 - 801c3c2: 6fbb ldr r3, [r7, #120] ; 0x78 - 801c3c4: 4413 add r3, r2 - 801c3c6: 68fa ldr r2, [r7, #12] - 801c3c8: 6892 ldr r2, [r2, #8] - 801c3ca: f9b2 2004 ldrsh.w r2, [r2, #4] - 801c3ce: 4293 cmp r3, r2 - 801c3d0: dd0a ble.n 801c3e8 - 801c3d2: 68fb ldr r3, [r7, #12] - 801c3d4: 689b ldr r3, [r3, #8] - 801c3d6: f9b3 3004 ldrsh.w r3, [r3, #4] - 801c3da: 461a mov r2, r3 - 801c3dc: 687b ldr r3, [r7, #4] - 801c3de: f9b3 3000 ldrsh.w r3, [r3] - 801c3e2: 1ad3 subs r3, r2, r3 - 801c3e4: 3301 adds r3, #1 - 801c3e6: e000 b.n 801c3ea - 801c3e8: 6fbb ldr r3, [r7, #120] ; 0x78 - 801c3ea: 66bb str r3, [r7, #104] ; 0x68 + 801c326: 687b ldr r3, [r7, #4] + 801c328: f9b3 3000 ldrsh.w r3, [r3] + 801c32c: 461a mov r2, r3 + 801c32e: 6fbb ldr r3, [r7, #120] ; 0x78 + 801c330: 4413 add r3, r2 + 801c332: 68fa ldr r2, [r7, #12] + 801c334: 6892 ldr r2, [r2, #8] + 801c336: f9b2 2004 ldrsh.w r2, [r2, #4] + 801c33a: 4293 cmp r3, r2 + 801c33c: dd0a ble.n 801c354 + 801c33e: 68fb ldr r3, [r7, #12] + 801c340: 689b ldr r3, [r3, #8] + 801c342: f9b3 3004 ldrsh.w r3, [r3, #4] + 801c346: 461a mov r2, r3 + 801c348: 687b ldr r3, [r7, #4] + 801c34a: f9b3 3000 ldrsh.w r3, [r3] + 801c34e: 1ad3 subs r3, r2, r3 + 801c350: 3301 adds r3, #1 + 801c352: e000 b.n 801c356 + 801c354: 6fbb ldr r3, [r7, #120] ; 0x78 + 801c356: 66bb str r3, [r7, #104] ; 0x68 int32_t row_start = pos->y >= draw_ctx->clip_area->y1 ? 0 : draw_ctx->clip_area->y1 - pos->y; - 801c3ec: 687b ldr r3, [r7, #4] - 801c3ee: f9b3 2002 ldrsh.w r2, [r3, #2] - 801c3f2: 68fb ldr r3, [r7, #12] - 801c3f4: 689b ldr r3, [r3, #8] - 801c3f6: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c3fa: 429a cmp r2, r3 - 801c3fc: da09 bge.n 801c412 - 801c3fe: 68fb ldr r3, [r7, #12] - 801c400: 689b ldr r3, [r3, #8] - 801c402: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c406: 461a mov r2, r3 - 801c408: 687b ldr r3, [r7, #4] - 801c40a: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c40e: 1ad3 subs r3, r2, r3 - 801c410: e000 b.n 801c414 - 801c412: 2300 movs r3, #0 - 801c414: 667b str r3, [r7, #100] ; 0x64 + 801c358: 687b ldr r3, [r7, #4] + 801c35a: f9b3 2002 ldrsh.w r2, [r3, #2] + 801c35e: 68fb ldr r3, [r7, #12] + 801c360: 689b ldr r3, [r3, #8] + 801c362: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c366: 429a cmp r2, r3 + 801c368: da09 bge.n 801c37e + 801c36a: 68fb ldr r3, [r7, #12] + 801c36c: 689b ldr r3, [r3, #8] + 801c36e: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c372: 461a mov r2, r3 + 801c374: 687b ldr r3, [r7, #4] + 801c376: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c37a: 1ad3 subs r3, r2, r3 + 801c37c: e000 b.n 801c380 + 801c37e: 2300 movs r3, #0 + 801c380: 667b str r3, [r7, #100] ; 0x64 int32_t row_end = pos->y + box_h <= draw_ctx->clip_area->y2 ? box_h : draw_ctx->clip_area->y2 - pos->y + 1; - 801c416: 687b ldr r3, [r7, #4] - 801c418: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c41c: 461a mov r2, r3 - 801c41e: 6f7b ldr r3, [r7, #116] ; 0x74 - 801c420: 4413 add r3, r2 - 801c422: 68fa ldr r2, [r7, #12] - 801c424: 6892 ldr r2, [r2, #8] - 801c426: f9b2 2006 ldrsh.w r2, [r2, #6] - 801c42a: 4293 cmp r3, r2 - 801c42c: dd18 ble.n 801c460 - 801c42e: 68fb ldr r3, [r7, #12] - 801c430: 689b ldr r3, [r3, #8] - 801c432: f9b3 3006 ldrsh.w r3, [r3, #6] - 801c436: 461a mov r2, r3 - 801c438: 687b ldr r3, [r7, #4] - 801c43a: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c43e: 1ad3 subs r3, r2, r3 - 801c440: 3301 adds r3, #1 - 801c442: e00e b.n 801c462 - 801c444: 0806ca50 .word 0x0806ca50 - 801c448: 0806ca54 .word 0x0806ca54 - 801c44c: 0806ca58 .word 0x0806ca58 - 801c450: 0806ca68 .word 0x0806ca68 - 801c454: 20001b1d .word 0x20001b1d - 801c458: 20001b20 .word 0x20001b20 - 801c45c: 20001b24 .word 0x20001b24 - 801c460: 6f7b ldr r3, [r7, #116] ; 0x74 - 801c462: 663b str r3, [r7, #96] ; 0x60 + 801c382: 687b ldr r3, [r7, #4] + 801c384: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c388: 461a mov r2, r3 + 801c38a: 6f7b ldr r3, [r7, #116] ; 0x74 + 801c38c: 4413 add r3, r2 + 801c38e: 68fa ldr r2, [r7, #12] + 801c390: 6892 ldr r2, [r2, #8] + 801c392: f9b2 2006 ldrsh.w r2, [r2, #6] + 801c396: 4293 cmp r3, r2 + 801c398: dd18 ble.n 801c3cc + 801c39a: 68fb ldr r3, [r7, #12] + 801c39c: 689b ldr r3, [r3, #8] + 801c39e: f9b3 3006 ldrsh.w r3, [r3, #6] + 801c3a2: 461a mov r2, r3 + 801c3a4: 687b ldr r3, [r7, #4] + 801c3a6: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c3aa: 1ad3 subs r3, r2, r3 + 801c3ac: 3301 adds r3, #1 + 801c3ae: e00e b.n 801c3ce + 801c3b0: 0806c9a8 .word 0x0806c9a8 + 801c3b4: 0806c9ac .word 0x0806c9ac + 801c3b8: 0806c9b0 .word 0x0806c9b0 + 801c3bc: 0806c9c0 .word 0x0806c9c0 + 801c3c0: 20001b1d .word 0x20001b1d + 801c3c4: 20001b20 .word 0x20001b20 + 801c3c8: 20001b24 .word 0x20001b24 + 801c3cc: 6f7b ldr r3, [r7, #116] ; 0x74 + 801c3ce: 663b str r3, [r7, #96] ; 0x60 /*Move on the map too*/ uint32_t bit_ofs = (row_start * width_bit) + (col_start * bpp); - 801c464: 6e7b ldr r3, [r7, #100] ; 0x64 - 801c466: 6f3a ldr r2, [r7, #112] ; 0x70 - 801c468: fb02 f303 mul.w r3, r2, r3 - 801c46c: 4619 mov r1, r3 - 801c46e: 6efb ldr r3, [r7, #108] ; 0x6c - 801c470: f8d7 2098 ldr.w r2, [r7, #152] ; 0x98 - 801c474: fb02 f303 mul.w r3, r2, r3 - 801c478: 440b add r3, r1 - 801c47a: 65fb str r3, [r7, #92] ; 0x5c + 801c3d0: 6e7b ldr r3, [r7, #100] ; 0x64 + 801c3d2: 6f3a ldr r2, [r7, #112] ; 0x70 + 801c3d4: fb02 f303 mul.w r3, r2, r3 + 801c3d8: 4619 mov r1, r3 + 801c3da: 6efb ldr r3, [r7, #108] ; 0x6c + 801c3dc: f8d7 2098 ldr.w r2, [r7, #152] ; 0x98 + 801c3e0: fb02 f303 mul.w r3, r2, r3 + 801c3e4: 440b add r3, r1 + 801c3e6: 65fb str r3, [r7, #92] ; 0x5c map_p += bit_ofs >> 3; - 801c47c: 6dfb ldr r3, [r7, #92] ; 0x5c - 801c47e: 08db lsrs r3, r3, #3 - 801c480: f8d7 20b0 ldr.w r2, [r7, #176] ; 0xb0 - 801c484: 4413 add r3, r2 - 801c486: f8c7 30b0 str.w r3, [r7, #176] ; 0xb0 + 801c3e8: 6dfb ldr r3, [r7, #92] ; 0x5c + 801c3ea: 08db lsrs r3, r3, #3 + 801c3ec: f8d7 20b0 ldr.w r2, [r7, #176] ; 0xb0 + 801c3f0: 4413 add r3, r2 + 801c3f2: f8c7 30b0 str.w r3, [r7, #176] ; 0xb0 uint8_t letter_px; uint32_t col_bit; col_bit = bit_ofs & 0x7; /*"& 0x7" equals to "% 8" just faster*/ - 801c48a: 6dfb ldr r3, [r7, #92] ; 0x5c - 801c48c: f003 0307 and.w r3, r3, #7 - 801c490: f8c7 3084 str.w r3, [r7, #132] ; 0x84 + 801c3f6: 6dfb ldr r3, [r7, #92] ; 0x5c + 801c3f8: f003 0307 and.w r3, r3, #7 + 801c3fc: f8c7 3084 str.w r3, [r7, #132] ; 0x84 lv_draw_sw_blend_dsc_t blend_dsc; lv_memset_00(&blend_dsc, sizeof(blend_dsc)); - 801c494: f107 0320 add.w r3, r7, #32 - 801c498: 211c movs r1, #28 - 801c49a: 4618 mov r0, r3 - 801c49c: f016 fe58 bl 8033150 + 801c400: f107 0320 add.w r3, r7, #32 + 801c404: 211c movs r1, #28 + 801c406: 4618 mov r0, r3 + 801c408: f016 fe58 bl 80330bc blend_dsc.color = dsc->color; - 801c4a0: 68bb ldr r3, [r7, #8] - 801c4a2: 899b ldrh r3, [r3, #12] - 801c4a4: 853b strh r3, [r7, #40] ; 0x28 + 801c40c: 68bb ldr r3, [r7, #8] + 801c40e: 899b ldrh r3, [r3, #12] + 801c410: 853b strh r3, [r7, #40] ; 0x28 blend_dsc.opa = dsc->opa; - 801c4a6: 68bb ldr r3, [r7, #8] - 801c4a8: 7e9b ldrb r3, [r3, #26] - 801c4aa: f887 3038 strb.w r3, [r7, #56] ; 0x38 + 801c412: 68bb ldr r3, [r7, #8] + 801c414: 7e9b ldrb r3, [r3, #26] + 801c416: f887 3038 strb.w r3, [r7, #56] ; 0x38 blend_dsc.blend_mode = dsc->blend_mode; - 801c4ae: 68bb ldr r3, [r7, #8] - 801c4b0: 7f9b ldrb r3, [r3, #30] - 801c4b2: f3c3 03c2 ubfx r3, r3, #3, #3 - 801c4b6: b2db uxtb r3, r3 - 801c4b8: f887 3039 strb.w r3, [r7, #57] ; 0x39 + 801c41a: 68bb ldr r3, [r7, #8] + 801c41c: 7f9b ldrb r3, [r3, #30] + 801c41e: f3c3 03c2 ubfx r3, r3, #3, #3 + 801c422: b2db uxtb r3, r3 + 801c424: f887 3039 strb.w r3, [r7, #57] ; 0x39 lv_coord_t hor_res = lv_disp_get_hor_res(_lv_refr_get_disp_refreshing()); - 801c4bc: f7f3 fc48 bl 800fd50 <_lv_refr_get_disp_refreshing> - 801c4c0: 4603 mov r3, r0 - 801c4c2: 4618 mov r0, r3 - 801c4c4: f014 f80c bl 80304e0 - 801c4c8: 4603 mov r3, r0 - 801c4ca: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 801c428: f7f3 fc48 bl 800fcbc <_lv_refr_get_disp_refreshing> + 801c42c: 4603 mov r3, r0 + 801c42e: 4618 mov r0, r3 + 801c430: f014 f80c bl 803044c + 801c434: 4603 mov r3, r0 + 801c436: f8a7 305a strh.w r3, [r7, #90] ; 0x5a uint32_t mask_buf_size = box_w * box_h > hor_res ? hor_res : box_w * box_h; - 801c4ce: 6fbb ldr r3, [r7, #120] ; 0x78 - 801c4d0: 6f7a ldr r2, [r7, #116] ; 0x74 - 801c4d2: fb03 f202 mul.w r2, r3, r2 - 801c4d6: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a - 801c4da: 4293 cmp r3, r2 - 801c4dc: bfa8 it ge - 801c4de: 4613 movge r3, r2 - 801c4e0: 657b str r3, [r7, #84] ; 0x54 + 801c43a: 6fbb ldr r3, [r7, #120] ; 0x78 + 801c43c: 6f7a ldr r2, [r7, #116] ; 0x74 + 801c43e: fb03 f202 mul.w r2, r3, r2 + 801c442: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a + 801c446: 4293 cmp r3, r2 + 801c448: bfa8 it ge + 801c44a: 4613 movge r3, r2 + 801c44c: 657b str r3, [r7, #84] ; 0x54 lv_opa_t * mask_buf = lv_mem_buf_get(mask_buf_size); - 801c4e2: 6d78 ldr r0, [r7, #84] ; 0x54 - 801c4e4: f016 fa8c bl 8032a00 - 801c4e8: 6538 str r0, [r7, #80] ; 0x50 + 801c44e: 6d78 ldr r0, [r7, #84] ; 0x54 + 801c450: f016 fa8c bl 803296c + 801c454: 6538 str r0, [r7, #80] ; 0x50 blend_dsc.mask_buf = mask_buf; - 801c4ea: 6d3b ldr r3, [r7, #80] ; 0x50 - 801c4ec: 62fb str r3, [r7, #44] ; 0x2c + 801c456: 6d3b ldr r3, [r7, #80] ; 0x50 + 801c458: 62fb str r3, [r7, #44] ; 0x2c int32_t mask_p = 0; - 801c4ee: 2300 movs r3, #0 - 801c4f0: f8c7 3080 str.w r3, [r7, #128] ; 0x80 + 801c45a: 2300 movs r3, #0 + 801c45c: f8c7 3080 str.w r3, [r7, #128] ; 0x80 lv_area_t fill_area; fill_area.x1 = col_start + pos->x; - 801c4f4: 687b ldr r3, [r7, #4] - 801c4f6: f9b3 3000 ldrsh.w r3, [r3] - 801c4fa: b29a uxth r2, r3 - 801c4fc: 6efb ldr r3, [r7, #108] ; 0x6c - 801c4fe: b29b uxth r3, r3 - 801c500: 4413 add r3, r2 - 801c502: b29b uxth r3, r3 - 801c504: b21b sxth r3, r3 - 801c506: 833b strh r3, [r7, #24] + 801c460: 687b ldr r3, [r7, #4] + 801c462: f9b3 3000 ldrsh.w r3, [r3] + 801c466: b29a uxth r2, r3 + 801c468: 6efb ldr r3, [r7, #108] ; 0x6c + 801c46a: b29b uxth r3, r3 + 801c46c: 4413 add r3, r2 + 801c46e: b29b uxth r3, r3 + 801c470: b21b sxth r3, r3 + 801c472: 833b strh r3, [r7, #24] fill_area.x2 = col_end + pos->x - 1; - 801c508: 687b ldr r3, [r7, #4] - 801c50a: f9b3 3000 ldrsh.w r3, [r3] - 801c50e: b29a uxth r2, r3 - 801c510: 6ebb ldr r3, [r7, #104] ; 0x68 - 801c512: b29b uxth r3, r3 - 801c514: 4413 add r3, r2 - 801c516: b29b uxth r3, r3 - 801c518: 3b01 subs r3, #1 - 801c51a: b29b uxth r3, r3 - 801c51c: b21b sxth r3, r3 - 801c51e: 83bb strh r3, [r7, #28] + 801c474: 687b ldr r3, [r7, #4] + 801c476: f9b3 3000 ldrsh.w r3, [r3] + 801c47a: b29a uxth r2, r3 + 801c47c: 6ebb ldr r3, [r7, #104] ; 0x68 + 801c47e: b29b uxth r3, r3 + 801c480: 4413 add r3, r2 + 801c482: b29b uxth r3, r3 + 801c484: 3b01 subs r3, #1 + 801c486: b29b uxth r3, r3 + 801c488: b21b sxth r3, r3 + 801c48a: 83bb strh r3, [r7, #28] fill_area.y1 = row_start + pos->y; - 801c520: 687b ldr r3, [r7, #4] - 801c522: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c526: b29a uxth r2, r3 - 801c528: 6e7b ldr r3, [r7, #100] ; 0x64 - 801c52a: b29b uxth r3, r3 - 801c52c: 4413 add r3, r2 - 801c52e: b29b uxth r3, r3 - 801c530: b21b sxth r3, r3 - 801c532: 837b strh r3, [r7, #26] + 801c48c: 687b ldr r3, [r7, #4] + 801c48e: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c492: b29a uxth r2, r3 + 801c494: 6e7b ldr r3, [r7, #100] ; 0x64 + 801c496: b29b uxth r3, r3 + 801c498: 4413 add r3, r2 + 801c49a: b29b uxth r3, r3 + 801c49c: b21b sxth r3, r3 + 801c49e: 837b strh r3, [r7, #26] fill_area.y2 = fill_area.y1; - 801c534: f9b7 301a ldrsh.w r3, [r7, #26] - 801c538: 83fb strh r3, [r7, #30] + 801c4a0: f9b7 301a ldrsh.w r3, [r7, #26] + 801c4a4: 83fb strh r3, [r7, #30] #if LV_DRAW_COMPLEX lv_coord_t fill_w = lv_area_get_width(&fill_area); - 801c53a: f107 0318 add.w r3, r7, #24 - 801c53e: 4618 mov r0, r3 - 801c540: f7ff fdcf bl 801c0e2 - 801c544: 4603 mov r3, r0 - 801c546: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 801c4a6: f107 0318 add.w r3, r7, #24 + 801c4aa: 4618 mov r0, r3 + 801c4ac: f7ff fdcf bl 801c04e + 801c4b0: 4603 mov r3, r0 + 801c4b2: f8a7 304e strh.w r3, [r7, #78] ; 0x4e lv_area_t mask_area; lv_area_copy(&mask_area, &fill_area); - 801c54a: f107 0218 add.w r2, r7, #24 - 801c54e: f107 0310 add.w r3, r7, #16 - 801c552: 4611 mov r1, r2 - 801c554: 4618 mov r0, r3 - 801c556: f7ff fda6 bl 801c0a6 + 801c4b6: f107 0218 add.w r2, r7, #24 + 801c4ba: f107 0310 add.w r3, r7, #16 + 801c4be: 4611 mov r1, r2 + 801c4c0: 4618 mov r0, r3 + 801c4c2: f7ff fda6 bl 801c012 mask_area.y2 = mask_area.y1 + row_end; - 801c55a: f9b7 3012 ldrsh.w r3, [r7, #18] - 801c55e: b29a uxth r2, r3 - 801c560: 6e3b ldr r3, [r7, #96] ; 0x60 - 801c562: b29b uxth r3, r3 - 801c564: 4413 add r3, r2 - 801c566: b29b uxth r3, r3 - 801c568: b21b sxth r3, r3 - 801c56a: 82fb strh r3, [r7, #22] + 801c4c6: f9b7 3012 ldrsh.w r3, [r7, #18] + 801c4ca: b29a uxth r2, r3 + 801c4cc: 6e3b ldr r3, [r7, #96] ; 0x60 + 801c4ce: b29b uxth r3, r3 + 801c4d0: 4413 add r3, r2 + 801c4d2: b29b uxth r3, r3 + 801c4d4: b21b sxth r3, r3 + 801c4d6: 82fb strh r3, [r7, #22] bool mask_any = lv_draw_mask_is_any(&mask_area); - 801c56c: f107 0310 add.w r3, r7, #16 - 801c570: 4618 mov r0, r3 - 801c572: f7f6 fe95 bl 80132a0 - 801c576: 4603 mov r3, r0 - 801c578: f887 304d strb.w r3, [r7, #77] ; 0x4d + 801c4d8: f107 0310 add.w r3, r7, #16 + 801c4dc: 4618 mov r0, r3 + 801c4de: f7f6 fe95 bl 801320c + 801c4e2: 4603 mov r3, r0 + 801c4e4: f887 304d strb.w r3, [r7, #77] ; 0x4d #endif blend_dsc.blend_area = &fill_area; - 801c57c: f107 0318 add.w r3, r7, #24 - 801c580: 623b str r3, [r7, #32] + 801c4e8: f107 0318 add.w r3, r7, #24 + 801c4ec: 623b str r3, [r7, #32] blend_dsc.mask_area = &fill_area; - 801c582: f107 0318 add.w r3, r7, #24 - 801c586: 637b str r3, [r7, #52] ; 0x34 + 801c4ee: f107 0318 add.w r3, r7, #24 + 801c4f2: 637b str r3, [r7, #52] ; 0x34 uint32_t col_bit_max = 8 - bpp; - 801c588: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 801c58c: f1c3 0308 rsb r3, r3, #8 - 801c590: 64bb str r3, [r7, #72] ; 0x48 + 801c4f4: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 801c4f8: f1c3 0308 rsb r3, r3, #8 + 801c4fc: 64bb str r3, [r7, #72] ; 0x48 uint32_t col_bit_row_ofs = (box_w + col_start - col_end) * bpp; - 801c592: 6fba ldr r2, [r7, #120] ; 0x78 - 801c594: 6efb ldr r3, [r7, #108] ; 0x6c - 801c596: 441a add r2, r3 - 801c598: 6ebb ldr r3, [r7, #104] ; 0x68 - 801c59a: 1ad3 subs r3, r2, r3 - 801c59c: 461a mov r2, r3 - 801c59e: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 801c5a2: fb02 f303 mul.w r3, r2, r3 - 801c5a6: 647b str r3, [r7, #68] ; 0x44 + 801c4fe: 6fba ldr r2, [r7, #120] ; 0x78 + 801c500: 6efb ldr r3, [r7, #108] ; 0x6c + 801c502: 441a add r2, r3 + 801c504: 6ebb ldr r3, [r7, #104] ; 0x68 + 801c506: 1ad3 subs r3, r2, r3 + 801c508: 461a mov r2, r3 + 801c50a: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 801c50e: fb02 f303 mul.w r3, r2, r3 + 801c512: 647b str r3, [r7, #68] ; 0x44 for(row = row_start ; row < row_end; row++) { - 801c5a8: 6e7b ldr r3, [r7, #100] ; 0x64 - 801c5aa: f8c7 3088 str.w r3, [r7, #136] ; 0x88 - 801c5ae: e0c3 b.n 801c738 + 801c514: 6e7b ldr r3, [r7, #100] ; 0x64 + 801c516: f8c7 3088 str.w r3, [r7, #136] ; 0x88 + 801c51a: e0c3 b.n 801c6a4 #if LV_DRAW_COMPLEX int32_t mask_p_start = mask_p; - 801c5b0: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 - 801c5b4: 643b str r3, [r7, #64] ; 0x40 + 801c51c: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 + 801c520: 643b str r3, [r7, #64] ; 0x40 #endif bitmask = bitmask_init >> col_bit; - 801c5b6: f8d7 20a0 ldr.w r2, [r7, #160] ; 0xa0 - 801c5ba: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 801c5be: fa22 f303 lsr.w r3, r2, r3 - 801c5c2: f8c7 309c str.w r3, [r7, #156] ; 0x9c + 801c522: f8d7 20a0 ldr.w r2, [r7, #160] ; 0xa0 + 801c526: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 801c52a: fa22 f303 lsr.w r3, r2, r3 + 801c52e: f8c7 309c str.w r3, [r7, #156] ; 0x9c for(col = col_start; col < col_end; col++) { - 801c5c6: 6efb ldr r3, [r7, #108] ; 0x6c - 801c5c8: f8c7 308c str.w r3, [r7, #140] ; 0x8c - 801c5cc: e04f b.n 801c66e + 801c532: 6efb ldr r3, [r7, #108] ; 0x6c + 801c534: f8c7 308c str.w r3, [r7, #140] ; 0x8c + 801c538: e04f b.n 801c5da /*Load the pixel's opacity into the mask*/ letter_px = (*map_p & bitmask) >> (col_bit_max - col_bit); - 801c5ce: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 801c5d2: 781b ldrb r3, [r3, #0] - 801c5d4: 461a mov r2, r3 - 801c5d6: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801c5da: 401a ands r2, r3 - 801c5dc: 6cb9 ldr r1, [r7, #72] ; 0x48 - 801c5de: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 801c5e2: 1acb subs r3, r1, r3 - 801c5e4: fa22 f303 lsr.w r3, r2, r3 - 801c5e8: f887 303f strb.w r3, [r7, #63] ; 0x3f + 801c53a: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 801c53e: 781b ldrb r3, [r3, #0] + 801c540: 461a mov r2, r3 + 801c542: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801c546: 401a ands r2, r3 + 801c548: 6cb9 ldr r1, [r7, #72] ; 0x48 + 801c54a: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 801c54e: 1acb subs r3, r1, r3 + 801c550: fa22 f303 lsr.w r3, r2, r3 + 801c554: f887 303f strb.w r3, [r7, #63] ; 0x3f if(letter_px) { - 801c5ec: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 801c5f0: 2b00 cmp r3, #0 - 801c5f2: d00b beq.n 801c60c + 801c558: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 801c55c: 2b00 cmp r3, #0 + 801c55e: d00b beq.n 801c578 mask_buf[mask_p] = bpp_opa_table_p[letter_px]; - 801c5f4: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 801c5f8: f8d7 20a4 ldr.w r2, [r7, #164] ; 0xa4 - 801c5fc: 441a add r2, r3 - 801c5fe: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 - 801c602: 6d39 ldr r1, [r7, #80] ; 0x50 - 801c604: 440b add r3, r1 - 801c606: 7812 ldrb r2, [r2, #0] - 801c608: 701a strb r2, [r3, #0] - 801c60a: e005 b.n 801c618 + 801c560: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 801c564: f8d7 20a4 ldr.w r2, [r7, #164] ; 0xa4 + 801c568: 441a add r2, r3 + 801c56a: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 + 801c56e: 6d39 ldr r1, [r7, #80] ; 0x50 + 801c570: 440b add r3, r1 + 801c572: 7812 ldrb r2, [r2, #0] + 801c574: 701a strb r2, [r3, #0] + 801c576: e005 b.n 801c584 } else { mask_buf[mask_p] = 0; - 801c60c: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 - 801c610: 6d3a ldr r2, [r7, #80] ; 0x50 - 801c612: 4413 add r3, r2 - 801c614: 2200 movs r2, #0 - 801c616: 701a strb r2, [r3, #0] + 801c578: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 + 801c57c: 6d3a ldr r2, [r7, #80] ; 0x50 + 801c57e: 4413 add r3, r2 + 801c580: 2200 movs r2, #0 + 801c582: 701a strb r2, [r3, #0] } /*Go to the next column*/ if(col_bit < col_bit_max) { - 801c618: f8d7 2084 ldr.w r2, [r7, #132] ; 0x84 - 801c61c: 6cbb ldr r3, [r7, #72] ; 0x48 - 801c61e: 429a cmp r2, r3 - 801c620: d20f bcs.n 801c642 + 801c584: f8d7 2084 ldr.w r2, [r7, #132] ; 0x84 + 801c588: 6cbb ldr r3, [r7, #72] ; 0x48 + 801c58a: 429a cmp r2, r3 + 801c58c: d20f bcs.n 801c5ae col_bit += bpp; - 801c622: f8d7 2084 ldr.w r2, [r7, #132] ; 0x84 - 801c626: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 801c62a: 4413 add r3, r2 - 801c62c: f8c7 3084 str.w r3, [r7, #132] ; 0x84 + 801c58e: f8d7 2084 ldr.w r2, [r7, #132] ; 0x84 + 801c592: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 801c596: 4413 add r3, r2 + 801c598: f8c7 3084 str.w r3, [r7, #132] ; 0x84 bitmask = bitmask >> bpp; - 801c630: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c - 801c634: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 801c638: fa22 f303 lsr.w r3, r2, r3 - 801c63c: f8c7 309c str.w r3, [r7, #156] ; 0x9c - 801c640: e00b b.n 801c65a + 801c59c: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c + 801c5a0: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 801c5a4: fa22 f303 lsr.w r3, r2, r3 + 801c5a8: f8c7 309c str.w r3, [r7, #156] ; 0x9c + 801c5ac: e00b b.n 801c5c6 } else { col_bit = 0; - 801c642: 2300 movs r3, #0 - 801c644: f8c7 3084 str.w r3, [r7, #132] ; 0x84 + 801c5ae: 2300 movs r3, #0 + 801c5b0: f8c7 3084 str.w r3, [r7, #132] ; 0x84 bitmask = bitmask_init; - 801c648: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0 - 801c64c: f8c7 309c str.w r3, [r7, #156] ; 0x9c + 801c5b4: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0 + 801c5b8: f8c7 309c str.w r3, [r7, #156] ; 0x9c map_p++; - 801c650: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 801c654: 3301 adds r3, #1 - 801c656: f8c7 30b0 str.w r3, [r7, #176] ; 0xb0 + 801c5bc: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 801c5c0: 3301 adds r3, #1 + 801c5c2: f8c7 30b0 str.w r3, [r7, #176] ; 0xb0 } /*Next mask byte*/ mask_p++; - 801c65a: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 - 801c65e: 3301 adds r3, #1 - 801c660: f8c7 3080 str.w r3, [r7, #128] ; 0x80 + 801c5c6: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 + 801c5ca: 3301 adds r3, #1 + 801c5cc: f8c7 3080 str.w r3, [r7, #128] ; 0x80 for(col = col_start; col < col_end; col++) { - 801c664: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 801c668: 3301 adds r3, #1 - 801c66a: f8c7 308c str.w r3, [r7, #140] ; 0x8c - 801c66e: f8d7 208c ldr.w r2, [r7, #140] ; 0x8c - 801c672: 6ebb ldr r3, [r7, #104] ; 0x68 - 801c674: 429a cmp r2, r3 - 801c676: dbaa blt.n 801c5ce + 801c5d0: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 801c5d4: 3301 adds r3, #1 + 801c5d6: f8c7 308c str.w r3, [r7, #140] ; 0x8c + 801c5da: f8d7 208c ldr.w r2, [r7, #140] ; 0x8c + 801c5de: 6ebb ldr r3, [r7, #104] ; 0x68 + 801c5e0: 429a cmp r2, r3 + 801c5e2: dbaa blt.n 801c53a } #if LV_DRAW_COMPLEX /*Apply masks if any*/ if(mask_any) { - 801c678: f897 304d ldrb.w r3, [r7, #77] ; 0x4d - 801c67c: 2b00 cmp r3, #0 - 801c67e: d01a beq.n 801c6b6 + 801c5e4: f897 304d ldrb.w r3, [r7, #77] ; 0x4d + 801c5e8: 2b00 cmp r3, #0 + 801c5ea: d01a beq.n 801c622 blend_dsc.mask_res = lv_draw_mask_apply(mask_buf + mask_p_start, fill_area.x1, fill_area.y2, - 801c680: 6c3b ldr r3, [r7, #64] ; 0x40 - 801c682: 6d3a ldr r2, [r7, #80] ; 0x50 - 801c684: 18d0 adds r0, r2, r3 - 801c686: f9b7 1018 ldrsh.w r1, [r7, #24] - 801c68a: f9b7 201e ldrsh.w r2, [r7, #30] - 801c68e: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 801c692: f7f6 fd07 bl 80130a4 - 801c696: 4603 mov r3, r0 - 801c698: f887 3030 strb.w r3, [r7, #48] ; 0x30 + 801c5ec: 6c3b ldr r3, [r7, #64] ; 0x40 + 801c5ee: 6d3a ldr r2, [r7, #80] ; 0x50 + 801c5f0: 18d0 adds r0, r2, r3 + 801c5f2: f9b7 1018 ldrsh.w r1, [r7, #24] + 801c5f6: f9b7 201e ldrsh.w r2, [r7, #30] + 801c5fa: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 801c5fe: f7f6 fd07 bl 8013010 + 801c602: 4603 mov r3, r0 + 801c604: f887 3030 strb.w r3, [r7, #48] ; 0x30 fill_w); if(blend_dsc.mask_res == LV_DRAW_MASK_RES_TRANSP) { - 801c69c: f897 3030 ldrb.w r3, [r7, #48] ; 0x30 - 801c6a0: 2b00 cmp r3, #0 - 801c6a2: d108 bne.n 801c6b6 + 801c608: f897 3030 ldrb.w r3, [r7, #48] ; 0x30 + 801c60c: 2b00 cmp r3, #0 + 801c60e: d108 bne.n 801c622 lv_memset_00(mask_buf + mask_p_start, fill_w); - 801c6a4: 6c3b ldr r3, [r7, #64] ; 0x40 - 801c6a6: 6d3a ldr r2, [r7, #80] ; 0x50 - 801c6a8: 4413 add r3, r2 - 801c6aa: f9b7 204e ldrsh.w r2, [r7, #78] ; 0x4e - 801c6ae: 4611 mov r1, r2 - 801c6b0: 4618 mov r0, r3 - 801c6b2: f016 fd4d bl 8033150 + 801c610: 6c3b ldr r3, [r7, #64] ; 0x40 + 801c612: 6d3a ldr r2, [r7, #80] ; 0x50 + 801c614: 4413 add r3, r2 + 801c616: f9b7 204e ldrsh.w r2, [r7, #78] ; 0x4e + 801c61a: 4611 mov r1, r2 + 801c61c: 4618 mov r0, r3 + 801c61e: f016 fd4d bl 80330bc } } #endif if((uint32_t) mask_p + (col_end - col_start) < mask_buf_size) { - 801c6b6: 6eba ldr r2, [r7, #104] ; 0x68 - 801c6b8: 6efb ldr r3, [r7, #108] ; 0x6c - 801c6ba: 1ad3 subs r3, r2, r3 - 801c6bc: 461a mov r2, r3 - 801c6be: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 - 801c6c2: 4413 add r3, r2 - 801c6c4: 6d7a ldr r2, [r7, #84] ; 0x54 - 801c6c6: 429a cmp r2, r3 - 801c6c8: d907 bls.n 801c6da + 801c622: 6eba ldr r2, [r7, #104] ; 0x68 + 801c624: 6efb ldr r3, [r7, #108] ; 0x6c + 801c626: 1ad3 subs r3, r2, r3 + 801c628: 461a mov r2, r3 + 801c62a: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 + 801c62e: 4413 add r3, r2 + 801c630: 6d7a ldr r2, [r7, #84] ; 0x54 + 801c632: 429a cmp r2, r3 + 801c634: d907 bls.n 801c646 fill_area.y2 ++; - 801c6ca: f9b7 301e ldrsh.w r3, [r7, #30] - 801c6ce: b29b uxth r3, r3 - 801c6d0: 3301 adds r3, #1 - 801c6d2: b29b uxth r3, r3 - 801c6d4: b21b sxth r3, r3 - 801c6d6: 83fb strh r3, [r7, #30] - 801c6d8: e015 b.n 801c706 + 801c636: f9b7 301e ldrsh.w r3, [r7, #30] + 801c63a: b29b uxth r3, r3 + 801c63c: 3301 adds r3, #1 + 801c63e: b29b uxth r3, r3 + 801c640: b21b sxth r3, r3 + 801c642: 83fb strh r3, [r7, #30] + 801c644: e015 b.n 801c672 } else { blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801c6da: 2302 movs r3, #2 - 801c6dc: f887 3030 strb.w r3, [r7, #48] ; 0x30 + 801c646: 2302 movs r3, #2 + 801c648: f887 3030 strb.w r3, [r7, #48] ; 0x30 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801c6e0: f107 0320 add.w r3, r7, #32 - 801c6e4: 4619 mov r1, r3 - 801c6e6: 68f8 ldr r0, [r7, #12] - 801c6e8: f7fd f9d3 bl 8019a92 + 801c64c: f107 0320 add.w r3, r7, #32 + 801c650: 4619 mov r1, r3 + 801c652: 68f8 ldr r0, [r7, #12] + 801c654: f7fd f9d3 bl 80199fe fill_area.y1 = fill_area.y2 + 1; - 801c6ec: f9b7 301e ldrsh.w r3, [r7, #30] - 801c6f0: b29b uxth r3, r3 - 801c6f2: 3301 adds r3, #1 - 801c6f4: b29b uxth r3, r3 - 801c6f6: b21b sxth r3, r3 - 801c6f8: 837b strh r3, [r7, #26] + 801c658: f9b7 301e ldrsh.w r3, [r7, #30] + 801c65c: b29b uxth r3, r3 + 801c65e: 3301 adds r3, #1 + 801c660: b29b uxth r3, r3 + 801c662: b21b sxth r3, r3 + 801c664: 837b strh r3, [r7, #26] fill_area.y2 = fill_area.y1; - 801c6fa: f9b7 301a ldrsh.w r3, [r7, #26] - 801c6fe: 83fb strh r3, [r7, #30] + 801c666: f9b7 301a ldrsh.w r3, [r7, #26] + 801c66a: 83fb strh r3, [r7, #30] mask_p = 0; - 801c700: 2300 movs r3, #0 - 801c702: f8c7 3080 str.w r3, [r7, #128] ; 0x80 + 801c66c: 2300 movs r3, #0 + 801c66e: f8c7 3080 str.w r3, [r7, #128] ; 0x80 } col_bit += col_bit_row_ofs; - 801c706: f8d7 2084 ldr.w r2, [r7, #132] ; 0x84 - 801c70a: 6c7b ldr r3, [r7, #68] ; 0x44 - 801c70c: 4413 add r3, r2 - 801c70e: f8c7 3084 str.w r3, [r7, #132] ; 0x84 + 801c672: f8d7 2084 ldr.w r2, [r7, #132] ; 0x84 + 801c676: 6c7b ldr r3, [r7, #68] ; 0x44 + 801c678: 4413 add r3, r2 + 801c67a: f8c7 3084 str.w r3, [r7, #132] ; 0x84 map_p += (col_bit >> 3); - 801c712: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 801c716: 08db lsrs r3, r3, #3 - 801c718: f8d7 20b0 ldr.w r2, [r7, #176] ; 0xb0 - 801c71c: 4413 add r3, r2 - 801c71e: f8c7 30b0 str.w r3, [r7, #176] ; 0xb0 + 801c67e: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 801c682: 08db lsrs r3, r3, #3 + 801c684: f8d7 20b0 ldr.w r2, [r7, #176] ; 0xb0 + 801c688: 4413 add r3, r2 + 801c68a: f8c7 30b0 str.w r3, [r7, #176] ; 0xb0 col_bit = col_bit & 0x7; - 801c722: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 801c726: f003 0307 and.w r3, r3, #7 - 801c72a: f8c7 3084 str.w r3, [r7, #132] ; 0x84 + 801c68e: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 801c692: f003 0307 and.w r3, r3, #7 + 801c696: f8c7 3084 str.w r3, [r7, #132] ; 0x84 for(row = row_start ; row < row_end; row++) { - 801c72e: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 801c732: 3301 adds r3, #1 - 801c734: f8c7 3088 str.w r3, [r7, #136] ; 0x88 - 801c738: f8d7 2088 ldr.w r2, [r7, #136] ; 0x88 - 801c73c: 6e3b ldr r3, [r7, #96] ; 0x60 - 801c73e: 429a cmp r2, r3 - 801c740: f6ff af36 blt.w 801c5b0 + 801c69a: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 801c69e: 3301 adds r3, #1 + 801c6a0: f8c7 3088 str.w r3, [r7, #136] ; 0x88 + 801c6a4: f8d7 2088 ldr.w r2, [r7, #136] ; 0x88 + 801c6a8: 6e3b ldr r3, [r7, #96] ; 0x60 + 801c6aa: 429a cmp r2, r3 + 801c6ac: f6ff af36 blt.w 801c51c } /*Flush the last part*/ if(fill_area.y1 != fill_area.y2) { - 801c744: f9b7 201a ldrsh.w r2, [r7, #26] - 801c748: f9b7 301e ldrsh.w r3, [r7, #30] - 801c74c: 429a cmp r2, r3 - 801c74e: d012 beq.n 801c776 + 801c6b0: f9b7 201a ldrsh.w r2, [r7, #26] + 801c6b4: f9b7 301e ldrsh.w r3, [r7, #30] + 801c6b8: 429a cmp r2, r3 + 801c6ba: d012 beq.n 801c6e2 fill_area.y2--; - 801c750: f9b7 301e ldrsh.w r3, [r7, #30] - 801c754: b29b uxth r3, r3 - 801c756: 3b01 subs r3, #1 - 801c758: b29b uxth r3, r3 - 801c75a: b21b sxth r3, r3 - 801c75c: 83fb strh r3, [r7, #30] + 801c6bc: f9b7 301e ldrsh.w r3, [r7, #30] + 801c6c0: b29b uxth r3, r3 + 801c6c2: 3b01 subs r3, #1 + 801c6c4: b29b uxth r3, r3 + 801c6c6: b21b sxth r3, r3 + 801c6c8: 83fb strh r3, [r7, #30] blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801c75e: 2302 movs r3, #2 - 801c760: f887 3030 strb.w r3, [r7, #48] ; 0x30 + 801c6ca: 2302 movs r3, #2 + 801c6cc: f887 3030 strb.w r3, [r7, #48] ; 0x30 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801c764: f107 0320 add.w r3, r7, #32 - 801c768: 4619 mov r1, r3 - 801c76a: 68f8 ldr r0, [r7, #12] - 801c76c: f7fd f991 bl 8019a92 + 801c6d0: f107 0320 add.w r3, r7, #32 + 801c6d4: 4619 mov r1, r3 + 801c6d6: 68f8 ldr r0, [r7, #12] + 801c6d8: f7fd f991 bl 80199fe mask_p = 0; - 801c770: 2300 movs r3, #0 - 801c772: f8c7 3080 str.w r3, [r7, #128] ; 0x80 + 801c6dc: 2300 movs r3, #0 + 801c6de: f8c7 3080 str.w r3, [r7, #128] ; 0x80 } lv_mem_buf_release(mask_buf); - 801c776: 6d38 ldr r0, [r7, #80] ; 0x50 - 801c778: f016 f9ee bl 8032b58 - 801c77c: e000 b.n 801c780 + 801c6e2: 6d38 ldr r0, [r7, #80] ; 0x50 + 801c6e4: f016 f9ee bl 8032ac4 + 801c6e8: e000 b.n 801c6ec return; /*Invalid bpp. Can't render the letter*/ - 801c77e: bf00 nop + 801c6ea: bf00 nop } - 801c780: 37a8 adds r7, #168 ; 0xa8 - 801c782: 46bd mov sp, r7 - 801c784: bd80 pop {r7, pc} - 801c786: bf00 nop + 801c6ec: 37a8 adds r7, #168 ; 0xa8 + 801c6ee: 46bd mov sp, r7 + 801c6f0: bd80 pop {r7, pc} + 801c6f2: bf00 nop -0801c788 : +0801c6f4 : { - 801c788: b480 push {r7} - 801c78a: b083 sub sp, #12 - 801c78c: af00 add r7, sp, #0 - 801c78e: 6078 str r0, [r7, #4] + 801c6f4: b480 push {r7} + 801c6f6: b083 sub sp, #12 + 801c6f8: af00 add r7, sp, #0 + 801c6fa: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 801c790: 687b ldr r3, [r7, #4] - 801c792: f9b3 3004 ldrsh.w r3, [r3, #4] - 801c796: b29a uxth r2, r3 - 801c798: 687b ldr r3, [r7, #4] - 801c79a: f9b3 3000 ldrsh.w r3, [r3] - 801c79e: b29b uxth r3, r3 - 801c7a0: 1ad3 subs r3, r2, r3 - 801c7a2: b29b uxth r3, r3 - 801c7a4: 3301 adds r3, #1 - 801c7a6: b29b uxth r3, r3 - 801c7a8: b21b sxth r3, r3 + 801c6fc: 687b ldr r3, [r7, #4] + 801c6fe: f9b3 3004 ldrsh.w r3, [r3, #4] + 801c702: b29a uxth r2, r3 + 801c704: 687b ldr r3, [r7, #4] + 801c706: f9b3 3000 ldrsh.w r3, [r3] + 801c70a: b29b uxth r3, r3 + 801c70c: 1ad3 subs r3, r2, r3 + 801c70e: b29b uxth r3, r3 + 801c710: 3301 adds r3, #1 + 801c712: b29b uxth r3, r3 + 801c714: b21b sxth r3, r3 } - 801c7aa: 4618 mov r0, r3 - 801c7ac: 370c adds r7, #12 - 801c7ae: 46bd mov sp, r7 - 801c7b0: bc80 pop {r7} - 801c7b2: 4770 bx lr + 801c716: 4618 mov r0, r3 + 801c718: 370c adds r7, #12 + 801c71a: 46bd mov sp, r7 + 801c71c: bc80 pop {r7} + 801c71e: 4770 bx lr -0801c7b4 : +0801c720 : * @param clip the line will be drawn only in this area * @param dsc pointer to an initialized `lv_draw_line_dsc_t` variable */ LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_line(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, const lv_point_t * point2) { - 801c7b4: b580 push {r7, lr} - 801c7b6: b09a sub sp, #104 ; 0x68 - 801c7b8: af00 add r7, sp, #0 - 801c7ba: 60f8 str r0, [r7, #12] - 801c7bc: 60b9 str r1, [r7, #8] - 801c7be: 607a str r2, [r7, #4] - 801c7c0: 603b str r3, [r7, #0] + 801c720: b580 push {r7, lr} + 801c722: b09a sub sp, #104 ; 0x68 + 801c724: af00 add r7, sp, #0 + 801c726: 60f8 str r0, [r7, #12] + 801c728: 60b9 str r1, [r7, #8] + 801c72a: 607a str r2, [r7, #4] + 801c72c: 603b str r3, [r7, #0] if(dsc->width == 0) return; - 801c7c2: 68bb ldr r3, [r7, #8] - 801c7c4: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c7c8: 2b00 cmp r3, #0 - 801c7ca: f000 816e beq.w 801caaa + 801c72e: 68bb ldr r3, [r7, #8] + 801c730: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c734: 2b00 cmp r3, #0 + 801c736: f000 816e beq.w 801ca16 if(dsc->opa <= LV_OPA_MIN) return; - 801c7ce: 68bb ldr r3, [r7, #8] - 801c7d0: 7a1b ldrb r3, [r3, #8] - 801c7d2: 2b02 cmp r3, #2 - 801c7d4: f240 816b bls.w 801caae + 801c73a: 68bb ldr r3, [r7, #8] + 801c73c: 7a1b ldrb r3, [r3, #8] + 801c73e: 2b02 cmp r3, #2 + 801c740: f240 816b bls.w 801ca1a if(point1->x == point2->x && point1->y == point2->y) return; - 801c7d8: 687b ldr r3, [r7, #4] - 801c7da: f9b3 2000 ldrsh.w r2, [r3] - 801c7de: 683b ldr r3, [r7, #0] - 801c7e0: f9b3 3000 ldrsh.w r3, [r3] - 801c7e4: 429a cmp r2, r3 - 801c7e6: d108 bne.n 801c7fa - 801c7e8: 687b ldr r3, [r7, #4] - 801c7ea: f9b3 2002 ldrsh.w r2, [r3, #2] - 801c7ee: 683b ldr r3, [r7, #0] - 801c7f0: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c7f4: 429a cmp r2, r3 - 801c7f6: f000 815c beq.w 801cab2 + 801c744: 687b ldr r3, [r7, #4] + 801c746: f9b3 2000 ldrsh.w r2, [r3] + 801c74a: 683b ldr r3, [r7, #0] + 801c74c: f9b3 3000 ldrsh.w r3, [r3] + 801c750: 429a cmp r2, r3 + 801c752: d108 bne.n 801c766 + 801c754: 687b ldr r3, [r7, #4] + 801c756: f9b3 2002 ldrsh.w r2, [r3, #2] + 801c75a: 683b ldr r3, [r7, #0] + 801c75c: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c760: 429a cmp r2, r3 + 801c762: f000 815c beq.w 801ca1e lv_area_t clip_line; clip_line.x1 = LV_MIN(point1->x, point2->x) - dsc->width / 2; - 801c7fa: 683b ldr r3, [r7, #0] - 801c7fc: f9b3 2000 ldrsh.w r2, [r3] - 801c800: 687b ldr r3, [r7, #4] - 801c802: f9b3 3000 ldrsh.w r3, [r3] - 801c806: 4293 cmp r3, r2 - 801c808: bfa8 it ge - 801c80a: 4613 movge r3, r2 - 801c80c: b21b sxth r3, r3 - 801c80e: b29a uxth r2, r3 - 801c810: 68bb ldr r3, [r7, #8] - 801c812: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c816: 0fd9 lsrs r1, r3, #31 - 801c818: 440b add r3, r1 - 801c81a: 105b asrs r3, r3, #1 - 801c81c: b21b sxth r3, r3 - 801c81e: b29b uxth r3, r3 - 801c820: 1ad3 subs r3, r2, r3 - 801c822: b29b uxth r3, r3 - 801c824: b21b sxth r3, r3 - 801c826: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 + 801c766: 683b ldr r3, [r7, #0] + 801c768: f9b3 2000 ldrsh.w r2, [r3] + 801c76c: 687b ldr r3, [r7, #4] + 801c76e: f9b3 3000 ldrsh.w r3, [r3] + 801c772: 4293 cmp r3, r2 + 801c774: bfa8 it ge + 801c776: 4613 movge r3, r2 + 801c778: b21b sxth r3, r3 + 801c77a: b29a uxth r2, r3 + 801c77c: 68bb ldr r3, [r7, #8] + 801c77e: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c782: 0fd9 lsrs r1, r3, #31 + 801c784: 440b add r3, r1 + 801c786: 105b asrs r3, r3, #1 + 801c788: b21b sxth r3, r3 + 801c78a: b29b uxth r3, r3 + 801c78c: 1ad3 subs r3, r2, r3 + 801c78e: b29b uxth r3, r3 + 801c790: b21b sxth r3, r3 + 801c792: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 clip_line.x2 = LV_MAX(point1->x, point2->x) + dsc->width / 2; - 801c82a: 683b ldr r3, [r7, #0] - 801c82c: f9b3 2000 ldrsh.w r2, [r3] - 801c830: 687b ldr r3, [r7, #4] - 801c832: f9b3 3000 ldrsh.w r3, [r3] - 801c836: 4293 cmp r3, r2 - 801c838: bfb8 it lt - 801c83a: 4613 movlt r3, r2 - 801c83c: b21b sxth r3, r3 - 801c83e: b29a uxth r2, r3 - 801c840: 68bb ldr r3, [r7, #8] - 801c842: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c846: 0fd9 lsrs r1, r3, #31 - 801c848: 440b add r3, r1 - 801c84a: 105b asrs r3, r3, #1 - 801c84c: b21b sxth r3, r3 - 801c84e: b29b uxth r3, r3 - 801c850: 4413 add r3, r2 - 801c852: b29b uxth r3, r3 - 801c854: b21b sxth r3, r3 - 801c856: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 + 801c796: 683b ldr r3, [r7, #0] + 801c798: f9b3 2000 ldrsh.w r2, [r3] + 801c79c: 687b ldr r3, [r7, #4] + 801c79e: f9b3 3000 ldrsh.w r3, [r3] + 801c7a2: 4293 cmp r3, r2 + 801c7a4: bfb8 it lt + 801c7a6: 4613 movlt r3, r2 + 801c7a8: b21b sxth r3, r3 + 801c7aa: b29a uxth r2, r3 + 801c7ac: 68bb ldr r3, [r7, #8] + 801c7ae: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c7b2: 0fd9 lsrs r1, r3, #31 + 801c7b4: 440b add r3, r1 + 801c7b6: 105b asrs r3, r3, #1 + 801c7b8: b21b sxth r3, r3 + 801c7ba: b29b uxth r3, r3 + 801c7bc: 4413 add r3, r2 + 801c7be: b29b uxth r3, r3 + 801c7c0: b21b sxth r3, r3 + 801c7c2: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 clip_line.y1 = LV_MIN(point1->y, point2->y) - dsc->width / 2; - 801c85a: 683b ldr r3, [r7, #0] - 801c85c: f9b3 2002 ldrsh.w r2, [r3, #2] - 801c860: 687b ldr r3, [r7, #4] - 801c862: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c866: 4293 cmp r3, r2 - 801c868: bfa8 it ge - 801c86a: 4613 movge r3, r2 - 801c86c: b21b sxth r3, r3 - 801c86e: b29a uxth r2, r3 - 801c870: 68bb ldr r3, [r7, #8] - 801c872: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c876: 0fd9 lsrs r1, r3, #31 - 801c878: 440b add r3, r1 - 801c87a: 105b asrs r3, r3, #1 - 801c87c: b21b sxth r3, r3 - 801c87e: b29b uxth r3, r3 - 801c880: 1ad3 subs r3, r2, r3 - 801c882: b29b uxth r3, r3 - 801c884: b21b sxth r3, r3 - 801c886: f8a7 3052 strh.w r3, [r7, #82] ; 0x52 + 801c7c6: 683b ldr r3, [r7, #0] + 801c7c8: f9b3 2002 ldrsh.w r2, [r3, #2] + 801c7cc: 687b ldr r3, [r7, #4] + 801c7ce: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c7d2: 4293 cmp r3, r2 + 801c7d4: bfa8 it ge + 801c7d6: 4613 movge r3, r2 + 801c7d8: b21b sxth r3, r3 + 801c7da: b29a uxth r2, r3 + 801c7dc: 68bb ldr r3, [r7, #8] + 801c7de: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c7e2: 0fd9 lsrs r1, r3, #31 + 801c7e4: 440b add r3, r1 + 801c7e6: 105b asrs r3, r3, #1 + 801c7e8: b21b sxth r3, r3 + 801c7ea: b29b uxth r3, r3 + 801c7ec: 1ad3 subs r3, r2, r3 + 801c7ee: b29b uxth r3, r3 + 801c7f0: b21b sxth r3, r3 + 801c7f2: f8a7 3052 strh.w r3, [r7, #82] ; 0x52 clip_line.y2 = LV_MAX(point1->y, point2->y) + dsc->width / 2; - 801c88a: 683b ldr r3, [r7, #0] - 801c88c: f9b3 2002 ldrsh.w r2, [r3, #2] - 801c890: 687b ldr r3, [r7, #4] - 801c892: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c896: 4293 cmp r3, r2 - 801c898: bfb8 it lt - 801c89a: 4613 movlt r3, r2 - 801c89c: b21b sxth r3, r3 - 801c89e: b29a uxth r2, r3 - 801c8a0: 68bb ldr r3, [r7, #8] - 801c8a2: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c8a6: 0fd9 lsrs r1, r3, #31 - 801c8a8: 440b add r3, r1 - 801c8aa: 105b asrs r3, r3, #1 - 801c8ac: b21b sxth r3, r3 - 801c8ae: b29b uxth r3, r3 - 801c8b0: 4413 add r3, r2 - 801c8b2: b29b uxth r3, r3 - 801c8b4: b21b sxth r3, r3 - 801c8b6: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 801c7f6: 683b ldr r3, [r7, #0] + 801c7f8: f9b3 2002 ldrsh.w r2, [r3, #2] + 801c7fc: 687b ldr r3, [r7, #4] + 801c7fe: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c802: 4293 cmp r3, r2 + 801c804: bfb8 it lt + 801c806: 4613 movlt r3, r2 + 801c808: b21b sxth r3, r3 + 801c80a: b29a uxth r2, r3 + 801c80c: 68bb ldr r3, [r7, #8] + 801c80e: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c812: 0fd9 lsrs r1, r3, #31 + 801c814: 440b add r3, r1 + 801c816: 105b asrs r3, r3, #1 + 801c818: b21b sxth r3, r3 + 801c81a: b29b uxth r3, r3 + 801c81c: 4413 add r3, r2 + 801c81e: b29b uxth r3, r3 + 801c820: b21b sxth r3, r3 + 801c822: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 bool is_common; is_common = _lv_area_intersect(&clip_line, &clip_line, draw_ctx->clip_area); - 801c8ba: 68fb ldr r3, [r7, #12] - 801c8bc: 689a ldr r2, [r3, #8] - 801c8be: f107 0150 add.w r1, r7, #80 ; 0x50 - 801c8c2: f107 0350 add.w r3, r7, #80 ; 0x50 - 801c8c6: 4618 mov r0, r3 - 801c8c8: f014 fbee bl 80310a8 <_lv_area_intersect> - 801c8cc: 4603 mov r3, r0 - 801c8ce: f887 3067 strb.w r3, [r7, #103] ; 0x67 + 801c826: 68fb ldr r3, [r7, #12] + 801c828: 689a ldr r2, [r3, #8] + 801c82a: f107 0150 add.w r1, r7, #80 ; 0x50 + 801c82e: f107 0350 add.w r3, r7, #80 ; 0x50 + 801c832: 4618 mov r0, r3 + 801c834: f014 fbee bl 8031014 <_lv_area_intersect> + 801c838: 4603 mov r3, r0 + 801c83a: f887 3067 strb.w r3, [r7, #103] ; 0x67 if(!is_common) return; - 801c8d2: f897 3067 ldrb.w r3, [r7, #103] ; 0x67 - 801c8d6: f083 0301 eor.w r3, r3, #1 - 801c8da: b2db uxtb r3, r3 - 801c8dc: 2b00 cmp r3, #0 - 801c8de: f040 80ea bne.w 801cab6 + 801c83e: f897 3067 ldrb.w r3, [r7, #103] ; 0x67 + 801c842: f083 0301 eor.w r3, r3, #1 + 801c846: b2db uxtb r3, r3 + 801c848: 2b00 cmp r3, #0 + 801c84a: f040 80ea bne.w 801ca22 const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 801c8e2: 68fb ldr r3, [r7, #12] - 801c8e4: 689b ldr r3, [r3, #8] - 801c8e6: 663b str r3, [r7, #96] ; 0x60 + 801c84e: 68fb ldr r3, [r7, #12] + 801c850: 689b ldr r3, [r3, #8] + 801c852: 663b str r3, [r7, #96] ; 0x60 draw_ctx->clip_area = &clip_line; - 801c8e8: 68fb ldr r3, [r7, #12] - 801c8ea: f107 0250 add.w r2, r7, #80 ; 0x50 - 801c8ee: 609a str r2, [r3, #8] + 801c854: 68fb ldr r3, [r7, #12] + 801c856: f107 0250 add.w r2, r7, #80 ; 0x50 + 801c85a: 609a str r2, [r3, #8] if(point1->y == point2->y) draw_line_hor(draw_ctx, dsc, point1, point2); - 801c8f0: 687b ldr r3, [r7, #4] - 801c8f2: f9b3 2002 ldrsh.w r2, [r3, #2] - 801c8f6: 683b ldr r3, [r7, #0] - 801c8f8: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c8fc: 429a cmp r2, r3 - 801c8fe: d106 bne.n 801c90e - 801c900: 683b ldr r3, [r7, #0] - 801c902: 687a ldr r2, [r7, #4] - 801c904: 68b9 ldr r1, [r7, #8] - 801c906: 68f8 ldr r0, [r7, #12] - 801c908: f000 f8d9 bl 801cabe - 801c90c: e014 b.n 801c938 + 801c85c: 687b ldr r3, [r7, #4] + 801c85e: f9b3 2002 ldrsh.w r2, [r3, #2] + 801c862: 683b ldr r3, [r7, #0] + 801c864: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c868: 429a cmp r2, r3 + 801c86a: d106 bne.n 801c87a + 801c86c: 683b ldr r3, [r7, #0] + 801c86e: 687a ldr r2, [r7, #4] + 801c870: 68b9 ldr r1, [r7, #8] + 801c872: 68f8 ldr r0, [r7, #12] + 801c874: f000 f8d9 bl 801ca2a + 801c878: e014 b.n 801c8a4 else if(point1->x == point2->x) draw_line_ver(draw_ctx, dsc, point1, point2); - 801c90e: 687b ldr r3, [r7, #4] - 801c910: f9b3 2000 ldrsh.w r2, [r3] - 801c914: 683b ldr r3, [r7, #0] - 801c916: f9b3 3000 ldrsh.w r3, [r3] - 801c91a: 429a cmp r2, r3 - 801c91c: d106 bne.n 801c92c - 801c91e: 683b ldr r3, [r7, #0] - 801c920: 687a ldr r2, [r7, #4] - 801c922: 68b9 ldr r1, [r7, #8] - 801c924: 68f8 ldr r0, [r7, #12] - 801c926: f000 fa2b bl 801cd80 - 801c92a: e005 b.n 801c938 + 801c87a: 687b ldr r3, [r7, #4] + 801c87c: f9b3 2000 ldrsh.w r2, [r3] + 801c880: 683b ldr r3, [r7, #0] + 801c882: f9b3 3000 ldrsh.w r3, [r3] + 801c886: 429a cmp r2, r3 + 801c888: d106 bne.n 801c898 + 801c88a: 683b ldr r3, [r7, #0] + 801c88c: 687a ldr r2, [r7, #4] + 801c88e: 68b9 ldr r1, [r7, #8] + 801c890: 68f8 ldr r0, [r7, #12] + 801c892: f000 fa2b bl 801ccec + 801c896: e005 b.n 801c8a4 else draw_line_skew(draw_ctx, dsc, point1, point2); - 801c92c: 683b ldr r3, [r7, #0] - 801c92e: 687a ldr r2, [r7, #4] - 801c930: 68b9 ldr r1, [r7, #8] - 801c932: 68f8 ldr r0, [r7, #12] - 801c934: f000 fb56 bl 801cfe4 + 801c898: 683b ldr r3, [r7, #0] + 801c89a: 687a ldr r2, [r7, #4] + 801c89c: 68b9 ldr r1, [r7, #8] + 801c89e: 68f8 ldr r0, [r7, #12] + 801c8a0: f000 fb56 bl 801cf50 if(dsc->round_end || dsc->round_start) { - 801c938: 68bb ldr r3, [r7, #8] - 801c93a: 7a5b ldrb r3, [r3, #9] - 801c93c: f003 0308 and.w r3, r3, #8 - 801c940: b2db uxtb r3, r3 - 801c942: 2b00 cmp r3, #0 - 801c944: d107 bne.n 801c956 - 801c946: 68bb ldr r3, [r7, #8] - 801c948: 7a5b ldrb r3, [r3, #9] - 801c94a: f003 0304 and.w r3, r3, #4 - 801c94e: b2db uxtb r3, r3 - 801c950: 2b00 cmp r3, #0 - 801c952: f000 80a6 beq.w 801caa2 + 801c8a4: 68bb ldr r3, [r7, #8] + 801c8a6: 7a5b ldrb r3, [r3, #9] + 801c8a8: f003 0308 and.w r3, r3, #8 + 801c8ac: b2db uxtb r3, r3 + 801c8ae: 2b00 cmp r3, #0 + 801c8b0: d107 bne.n 801c8c2 + 801c8b2: 68bb ldr r3, [r7, #8] + 801c8b4: 7a5b ldrb r3, [r3, #9] + 801c8b6: f003 0304 and.w r3, r3, #4 + 801c8ba: b2db uxtb r3, r3 + 801c8bc: 2b00 cmp r3, #0 + 801c8be: f000 80a6 beq.w 801ca0e lv_draw_rect_dsc_t cir_dsc; lv_draw_rect_dsc_init(&cir_dsc); - 801c956: f107 0310 add.w r3, r7, #16 - 801c95a: 4618 mov r0, r3 - 801c95c: f7f8 ff4a bl 80157f4 + 801c8c2: f107 0310 add.w r3, r7, #16 + 801c8c6: 4618 mov r0, r3 + 801c8c8: f7f8 ff4a bl 8015760 cir_dsc.bg_color = dsc->color; - 801c960: 68bb ldr r3, [r7, #8] - 801c962: 881b ldrh r3, [r3, #0] - 801c964: 82bb strh r3, [r7, #20] + 801c8cc: 68bb ldr r3, [r7, #8] + 801c8ce: 881b ldrh r3, [r3, #0] + 801c8d0: 82bb strh r3, [r7, #20] cir_dsc.radius = LV_RADIUS_CIRCLE; - 801c966: f647 73ff movw r3, #32767 ; 0x7fff - 801c96a: 823b strh r3, [r7, #16] + 801c8d2: f647 73ff movw r3, #32767 ; 0x7fff + 801c8d6: 823b strh r3, [r7, #16] cir_dsc.bg_opa = dsc->opa; - 801c96c: 68bb ldr r3, [r7, #8] - 801c96e: 7a1b ldrb r3, [r3, #8] - 801c970: 74fb strb r3, [r7, #19] + 801c8d8: 68bb ldr r3, [r7, #8] + 801c8da: 7a1b ldrb r3, [r3, #8] + 801c8dc: 74fb strb r3, [r7, #19] int32_t r = (dsc->width >> 1); - 801c972: 68bb ldr r3, [r7, #8] - 801c974: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c978: 105b asrs r3, r3, #1 - 801c97a: b21b sxth r3, r3 - 801c97c: 65fb str r3, [r7, #92] ; 0x5c + 801c8de: 68bb ldr r3, [r7, #8] + 801c8e0: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c8e4: 105b asrs r3, r3, #1 + 801c8e6: b21b sxth r3, r3 + 801c8e8: 65fb str r3, [r7, #92] ; 0x5c int32_t r_corr = (dsc->width & 1) ? 0 : 1; - 801c97e: 68bb ldr r3, [r7, #8] - 801c980: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c984: b29b uxth r3, r3 - 801c986: f003 0301 and.w r3, r3, #1 - 801c98a: 2b00 cmp r3, #0 - 801c98c: bf0c ite eq - 801c98e: 2301 moveq r3, #1 - 801c990: 2300 movne r3, #0 - 801c992: b2db uxtb r3, r3 - 801c994: 65bb str r3, [r7, #88] ; 0x58 + 801c8ea: 68bb ldr r3, [r7, #8] + 801c8ec: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c8f0: b29b uxth r3, r3 + 801c8f2: f003 0301 and.w r3, r3, #1 + 801c8f6: 2b00 cmp r3, #0 + 801c8f8: bf0c ite eq + 801c8fa: 2301 moveq r3, #1 + 801c8fc: 2300 movne r3, #0 + 801c8fe: b2db uxtb r3, r3 + 801c900: 65bb str r3, [r7, #88] ; 0x58 lv_area_t cir_area; if(dsc->round_start) { - 801c996: 68bb ldr r3, [r7, #8] - 801c998: 7a5b ldrb r3, [r3, #9] - 801c99a: f003 0304 and.w r3, r3, #4 - 801c99e: b2db uxtb r3, r3 - 801c9a0: 2b00 cmp r3, #0 - 801c9a2: d03b beq.n 801ca1c + 801c902: 68bb ldr r3, [r7, #8] + 801c904: 7a5b ldrb r3, [r3, #9] + 801c906: f003 0304 and.w r3, r3, #4 + 801c90a: b2db uxtb r3, r3 + 801c90c: 2b00 cmp r3, #0 + 801c90e: d03b beq.n 801c988 cir_area.x1 = point1->x - r; - 801c9a4: 687b ldr r3, [r7, #4] - 801c9a6: f9b3 3000 ldrsh.w r3, [r3] - 801c9aa: b29a uxth r2, r3 - 801c9ac: 6dfb ldr r3, [r7, #92] ; 0x5c - 801c9ae: b29b uxth r3, r3 - 801c9b0: 1ad3 subs r3, r2, r3 - 801c9b2: b29b uxth r3, r3 - 801c9b4: b21b sxth r3, r3 - 801c9b6: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 + 801c910: 687b ldr r3, [r7, #4] + 801c912: f9b3 3000 ldrsh.w r3, [r3] + 801c916: b29a uxth r2, r3 + 801c918: 6dfb ldr r3, [r7, #92] ; 0x5c + 801c91a: b29b uxth r3, r3 + 801c91c: 1ad3 subs r3, r2, r3 + 801c91e: b29b uxth r3, r3 + 801c920: b21b sxth r3, r3 + 801c922: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 cir_area.y1 = point1->y - r; - 801c9ba: 687b ldr r3, [r7, #4] - 801c9bc: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c9c0: b29a uxth r2, r3 - 801c9c2: 6dfb ldr r3, [r7, #92] ; 0x5c - 801c9c4: b29b uxth r3, r3 - 801c9c6: 1ad3 subs r3, r2, r3 - 801c9c8: b29b uxth r3, r3 - 801c9ca: b21b sxth r3, r3 - 801c9cc: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 801c926: 687b ldr r3, [r7, #4] + 801c928: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c92c: b29a uxth r2, r3 + 801c92e: 6dfb ldr r3, [r7, #92] ; 0x5c + 801c930: b29b uxth r3, r3 + 801c932: 1ad3 subs r3, r2, r3 + 801c934: b29b uxth r3, r3 + 801c936: b21b sxth r3, r3 + 801c938: f8a7 304a strh.w r3, [r7, #74] ; 0x4a cir_area.x2 = point1->x + r - r_corr; - 801c9d0: 687b ldr r3, [r7, #4] - 801c9d2: f9b3 3000 ldrsh.w r3, [r3] - 801c9d6: b29a uxth r2, r3 - 801c9d8: 6dfb ldr r3, [r7, #92] ; 0x5c - 801c9da: b29b uxth r3, r3 - 801c9dc: 4413 add r3, r2 - 801c9de: b29a uxth r2, r3 - 801c9e0: 6dbb ldr r3, [r7, #88] ; 0x58 - 801c9e2: b29b uxth r3, r3 - 801c9e4: 1ad3 subs r3, r2, r3 - 801c9e6: b29b uxth r3, r3 - 801c9e8: b21b sxth r3, r3 - 801c9ea: f8a7 304c strh.w r3, [r7, #76] ; 0x4c + 801c93c: 687b ldr r3, [r7, #4] + 801c93e: f9b3 3000 ldrsh.w r3, [r3] + 801c942: b29a uxth r2, r3 + 801c944: 6dfb ldr r3, [r7, #92] ; 0x5c + 801c946: b29b uxth r3, r3 + 801c948: 4413 add r3, r2 + 801c94a: b29a uxth r2, r3 + 801c94c: 6dbb ldr r3, [r7, #88] ; 0x58 + 801c94e: b29b uxth r3, r3 + 801c950: 1ad3 subs r3, r2, r3 + 801c952: b29b uxth r3, r3 + 801c954: b21b sxth r3, r3 + 801c956: f8a7 304c strh.w r3, [r7, #76] ; 0x4c cir_area.y2 = point1->y + r - r_corr ; - 801c9ee: 687b ldr r3, [r7, #4] - 801c9f0: f9b3 3002 ldrsh.w r3, [r3, #2] - 801c9f4: b29a uxth r2, r3 - 801c9f6: 6dfb ldr r3, [r7, #92] ; 0x5c - 801c9f8: b29b uxth r3, r3 - 801c9fa: 4413 add r3, r2 - 801c9fc: b29a uxth r2, r3 - 801c9fe: 6dbb ldr r3, [r7, #88] ; 0x58 - 801ca00: b29b uxth r3, r3 - 801ca02: 1ad3 subs r3, r2, r3 - 801ca04: b29b uxth r3, r3 - 801ca06: b21b sxth r3, r3 - 801ca08: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 801c95a: 687b ldr r3, [r7, #4] + 801c95c: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c960: b29a uxth r2, r3 + 801c962: 6dfb ldr r3, [r7, #92] ; 0x5c + 801c964: b29b uxth r3, r3 + 801c966: 4413 add r3, r2 + 801c968: b29a uxth r2, r3 + 801c96a: 6dbb ldr r3, [r7, #88] ; 0x58 + 801c96c: b29b uxth r3, r3 + 801c96e: 1ad3 subs r3, r2, r3 + 801c970: b29b uxth r3, r3 + 801c972: b21b sxth r3, r3 + 801c974: f8a7 304e strh.w r3, [r7, #78] ; 0x4e lv_draw_rect(draw_ctx, &cir_dsc, &cir_area); - 801ca0c: f107 0248 add.w r2, r7, #72 ; 0x48 - 801ca10: f107 0310 add.w r3, r7, #16 - 801ca14: 4619 mov r1, r3 - 801ca16: 68f8 ldr r0, [r7, #12] - 801ca18: f7f8 ff2e bl 8015878 + 801c978: f107 0248 add.w r2, r7, #72 ; 0x48 + 801c97c: f107 0310 add.w r3, r7, #16 + 801c980: 4619 mov r1, r3 + 801c982: 68f8 ldr r0, [r7, #12] + 801c984: f7f8 ff2e bl 80157e4 } if(dsc->round_end) { - 801ca1c: 68bb ldr r3, [r7, #8] - 801ca1e: 7a5b ldrb r3, [r3, #9] - 801ca20: f003 0308 and.w r3, r3, #8 - 801ca24: b2db uxtb r3, r3 - 801ca26: 2b00 cmp r3, #0 - 801ca28: d03b beq.n 801caa2 + 801c988: 68bb ldr r3, [r7, #8] + 801c98a: 7a5b ldrb r3, [r3, #9] + 801c98c: f003 0308 and.w r3, r3, #8 + 801c990: b2db uxtb r3, r3 + 801c992: 2b00 cmp r3, #0 + 801c994: d03b beq.n 801ca0e cir_area.x1 = point2->x - r; - 801ca2a: 683b ldr r3, [r7, #0] - 801ca2c: f9b3 3000 ldrsh.w r3, [r3] - 801ca30: b29a uxth r2, r3 - 801ca32: 6dfb ldr r3, [r7, #92] ; 0x5c - 801ca34: b29b uxth r3, r3 - 801ca36: 1ad3 subs r3, r2, r3 - 801ca38: b29b uxth r3, r3 - 801ca3a: b21b sxth r3, r3 - 801ca3c: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 + 801c996: 683b ldr r3, [r7, #0] + 801c998: f9b3 3000 ldrsh.w r3, [r3] + 801c99c: b29a uxth r2, r3 + 801c99e: 6dfb ldr r3, [r7, #92] ; 0x5c + 801c9a0: b29b uxth r3, r3 + 801c9a2: 1ad3 subs r3, r2, r3 + 801c9a4: b29b uxth r3, r3 + 801c9a6: b21b sxth r3, r3 + 801c9a8: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 cir_area.y1 = point2->y - r; - 801ca40: 683b ldr r3, [r7, #0] - 801ca42: f9b3 3002 ldrsh.w r3, [r3, #2] - 801ca46: b29a uxth r2, r3 - 801ca48: 6dfb ldr r3, [r7, #92] ; 0x5c - 801ca4a: b29b uxth r3, r3 - 801ca4c: 1ad3 subs r3, r2, r3 - 801ca4e: b29b uxth r3, r3 - 801ca50: b21b sxth r3, r3 - 801ca52: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 801c9ac: 683b ldr r3, [r7, #0] + 801c9ae: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c9b2: b29a uxth r2, r3 + 801c9b4: 6dfb ldr r3, [r7, #92] ; 0x5c + 801c9b6: b29b uxth r3, r3 + 801c9b8: 1ad3 subs r3, r2, r3 + 801c9ba: b29b uxth r3, r3 + 801c9bc: b21b sxth r3, r3 + 801c9be: f8a7 304a strh.w r3, [r7, #74] ; 0x4a cir_area.x2 = point2->x + r - r_corr; - 801ca56: 683b ldr r3, [r7, #0] - 801ca58: f9b3 3000 ldrsh.w r3, [r3] - 801ca5c: b29a uxth r2, r3 - 801ca5e: 6dfb ldr r3, [r7, #92] ; 0x5c - 801ca60: b29b uxth r3, r3 - 801ca62: 4413 add r3, r2 - 801ca64: b29a uxth r2, r3 - 801ca66: 6dbb ldr r3, [r7, #88] ; 0x58 - 801ca68: b29b uxth r3, r3 - 801ca6a: 1ad3 subs r3, r2, r3 - 801ca6c: b29b uxth r3, r3 - 801ca6e: b21b sxth r3, r3 - 801ca70: f8a7 304c strh.w r3, [r7, #76] ; 0x4c + 801c9c2: 683b ldr r3, [r7, #0] + 801c9c4: f9b3 3000 ldrsh.w r3, [r3] + 801c9c8: b29a uxth r2, r3 + 801c9ca: 6dfb ldr r3, [r7, #92] ; 0x5c + 801c9cc: b29b uxth r3, r3 + 801c9ce: 4413 add r3, r2 + 801c9d0: b29a uxth r2, r3 + 801c9d2: 6dbb ldr r3, [r7, #88] ; 0x58 + 801c9d4: b29b uxth r3, r3 + 801c9d6: 1ad3 subs r3, r2, r3 + 801c9d8: b29b uxth r3, r3 + 801c9da: b21b sxth r3, r3 + 801c9dc: f8a7 304c strh.w r3, [r7, #76] ; 0x4c cir_area.y2 = point2->y + r - r_corr ; - 801ca74: 683b ldr r3, [r7, #0] - 801ca76: f9b3 3002 ldrsh.w r3, [r3, #2] - 801ca7a: b29a uxth r2, r3 - 801ca7c: 6dfb ldr r3, [r7, #92] ; 0x5c - 801ca7e: b29b uxth r3, r3 - 801ca80: 4413 add r3, r2 - 801ca82: b29a uxth r2, r3 - 801ca84: 6dbb ldr r3, [r7, #88] ; 0x58 - 801ca86: b29b uxth r3, r3 - 801ca88: 1ad3 subs r3, r2, r3 - 801ca8a: b29b uxth r3, r3 - 801ca8c: b21b sxth r3, r3 - 801ca8e: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 801c9e0: 683b ldr r3, [r7, #0] + 801c9e2: f9b3 3002 ldrsh.w r3, [r3, #2] + 801c9e6: b29a uxth r2, r3 + 801c9e8: 6dfb ldr r3, [r7, #92] ; 0x5c + 801c9ea: b29b uxth r3, r3 + 801c9ec: 4413 add r3, r2 + 801c9ee: b29a uxth r2, r3 + 801c9f0: 6dbb ldr r3, [r7, #88] ; 0x58 + 801c9f2: b29b uxth r3, r3 + 801c9f4: 1ad3 subs r3, r2, r3 + 801c9f6: b29b uxth r3, r3 + 801c9f8: b21b sxth r3, r3 + 801c9fa: f8a7 304e strh.w r3, [r7, #78] ; 0x4e lv_draw_rect(draw_ctx, &cir_dsc, &cir_area); - 801ca92: f107 0248 add.w r2, r7, #72 ; 0x48 - 801ca96: f107 0310 add.w r3, r7, #16 - 801ca9a: 4619 mov r1, r3 - 801ca9c: 68f8 ldr r0, [r7, #12] - 801ca9e: f7f8 feeb bl 8015878 + 801c9fe: f107 0248 add.w r2, r7, #72 ; 0x48 + 801ca02: f107 0310 add.w r3, r7, #16 + 801ca06: 4619 mov r1, r3 + 801ca08: 68f8 ldr r0, [r7, #12] + 801ca0a: f7f8 feeb bl 80157e4 } } draw_ctx->clip_area = clip_area_ori; - 801caa2: 68fb ldr r3, [r7, #12] - 801caa4: 6e3a ldr r2, [r7, #96] ; 0x60 - 801caa6: 609a str r2, [r3, #8] - 801caa8: e006 b.n 801cab8 + 801ca0e: 68fb ldr r3, [r7, #12] + 801ca10: 6e3a ldr r2, [r7, #96] ; 0x60 + 801ca12: 609a str r2, [r3, #8] + 801ca14: e006 b.n 801ca24 if(dsc->width == 0) return; - 801caaa: bf00 nop - 801caac: e004 b.n 801cab8 + 801ca16: bf00 nop + 801ca18: e004 b.n 801ca24 if(dsc->opa <= LV_OPA_MIN) return; - 801caae: bf00 nop - 801cab0: e002 b.n 801cab8 + 801ca1a: bf00 nop + 801ca1c: e002 b.n 801ca24 if(point1->x == point2->x && point1->y == point2->y) return; - 801cab2: bf00 nop - 801cab4: e000 b.n 801cab8 + 801ca1e: bf00 nop + 801ca20: e000 b.n 801ca24 if(!is_common) return; - 801cab6: bf00 nop + 801ca22: bf00 nop } - 801cab8: 3768 adds r7, #104 ; 0x68 - 801caba: 46bd mov sp, r7 - 801cabc: bd80 pop {r7, pc} + 801ca24: 3768 adds r7, #104 ; 0x68 + 801ca26: 46bd mov sp, r7 + 801ca28: bd80 pop {r7, pc} -0801cabe : +0801ca2a : **********************/ LV_ATTRIBUTE_FAST_MEM static void draw_line_hor(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, const lv_point_t * point2) { - 801cabe: b580 push {r7, lr} - 801cac0: b098 sub sp, #96 ; 0x60 - 801cac2: af00 add r7, sp, #0 - 801cac4: 60f8 str r0, [r7, #12] - 801cac6: 60b9 str r1, [r7, #8] - 801cac8: 607a str r2, [r7, #4] - 801caca: 603b str r3, [r7, #0] + 801ca2a: b580 push {r7, lr} + 801ca2c: b098 sub sp, #96 ; 0x60 + 801ca2e: af00 add r7, sp, #0 + 801ca30: 60f8 str r0, [r7, #12] + 801ca32: 60b9 str r1, [r7, #8] + 801ca34: 607a str r2, [r7, #4] + 801ca36: 603b str r3, [r7, #0] int32_t w = dsc->width - 1; - 801cacc: 68bb ldr r3, [r7, #8] - 801cace: f9b3 3002 ldrsh.w r3, [r3, #2] - 801cad2: 3b01 subs r3, #1 - 801cad4: 653b str r3, [r7, #80] ; 0x50 + 801ca38: 68bb ldr r3, [r7, #8] + 801ca3a: f9b3 3002 ldrsh.w r3, [r3, #2] + 801ca3e: 3b01 subs r3, #1 + 801ca40: 653b str r3, [r7, #80] ; 0x50 int32_t w_half0 = w >> 1; - 801cad6: 6d3b ldr r3, [r7, #80] ; 0x50 - 801cad8: 105b asrs r3, r3, #1 - 801cada: 64fb str r3, [r7, #76] ; 0x4c + 801ca42: 6d3b ldr r3, [r7, #80] ; 0x50 + 801ca44: 105b asrs r3, r3, #1 + 801ca46: 64fb str r3, [r7, #76] ; 0x4c int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/ - 801cadc: 6d3b ldr r3, [r7, #80] ; 0x50 - 801cade: f003 0301 and.w r3, r3, #1 - 801cae2: 6cfa ldr r2, [r7, #76] ; 0x4c - 801cae4: 4413 add r3, r2 - 801cae6: 64bb str r3, [r7, #72] ; 0x48 + 801ca48: 6d3b ldr r3, [r7, #80] ; 0x50 + 801ca4a: f003 0301 and.w r3, r3, #1 + 801ca4e: 6cfa ldr r2, [r7, #76] ; 0x4c + 801ca50: 4413 add r3, r2 + 801ca52: 64bb str r3, [r7, #72] ; 0x48 lv_area_t blend_area; blend_area.x1 = LV_MIN(point1->x, point2->x); - 801cae8: 683b ldr r3, [r7, #0] - 801caea: f9b3 2000 ldrsh.w r2, [r3] - 801caee: 687b ldr r3, [r7, #4] - 801caf0: f9b3 3000 ldrsh.w r3, [r3] - 801caf4: 4293 cmp r3, r2 - 801caf6: bfa8 it ge - 801caf8: 4613 movge r3, r2 - 801cafa: b21b sxth r3, r3 - 801cafc: 85bb strh r3, [r7, #44] ; 0x2c + 801ca54: 683b ldr r3, [r7, #0] + 801ca56: f9b3 2000 ldrsh.w r2, [r3] + 801ca5a: 687b ldr r3, [r7, #4] + 801ca5c: f9b3 3000 ldrsh.w r3, [r3] + 801ca60: 4293 cmp r3, r2 + 801ca62: bfa8 it ge + 801ca64: 4613 movge r3, r2 + 801ca66: b21b sxth r3, r3 + 801ca68: 85bb strh r3, [r7, #44] ; 0x2c blend_area.x2 = LV_MAX(point1->x, point2->x) - 1; - 801cafe: 683b ldr r3, [r7, #0] - 801cb00: f9b3 2000 ldrsh.w r2, [r3] - 801cb04: 687b ldr r3, [r7, #4] - 801cb06: f9b3 3000 ldrsh.w r3, [r3] - 801cb0a: 4293 cmp r3, r2 - 801cb0c: bfb8 it lt - 801cb0e: 4613 movlt r3, r2 - 801cb10: b21b sxth r3, r3 - 801cb12: b29b uxth r3, r3 - 801cb14: 3b01 subs r3, #1 - 801cb16: b29b uxth r3, r3 - 801cb18: b21b sxth r3, r3 - 801cb1a: 863b strh r3, [r7, #48] ; 0x30 + 801ca6a: 683b ldr r3, [r7, #0] + 801ca6c: f9b3 2000 ldrsh.w r2, [r3] + 801ca70: 687b ldr r3, [r7, #4] + 801ca72: f9b3 3000 ldrsh.w r3, [r3] + 801ca76: 4293 cmp r3, r2 + 801ca78: bfb8 it lt + 801ca7a: 4613 movlt r3, r2 + 801ca7c: b21b sxth r3, r3 + 801ca7e: b29b uxth r3, r3 + 801ca80: 3b01 subs r3, #1 + 801ca82: b29b uxth r3, r3 + 801ca84: b21b sxth r3, r3 + 801ca86: 863b strh r3, [r7, #48] ; 0x30 blend_area.y1 = point1->y - w_half1; - 801cb1c: 687b ldr r3, [r7, #4] - 801cb1e: f9b3 3002 ldrsh.w r3, [r3, #2] - 801cb22: b29a uxth r2, r3 - 801cb24: 6cbb ldr r3, [r7, #72] ; 0x48 - 801cb26: b29b uxth r3, r3 - 801cb28: 1ad3 subs r3, r2, r3 - 801cb2a: b29b uxth r3, r3 - 801cb2c: b21b sxth r3, r3 - 801cb2e: 85fb strh r3, [r7, #46] ; 0x2e + 801ca88: 687b ldr r3, [r7, #4] + 801ca8a: f9b3 3002 ldrsh.w r3, [r3, #2] + 801ca8e: b29a uxth r2, r3 + 801ca90: 6cbb ldr r3, [r7, #72] ; 0x48 + 801ca92: b29b uxth r3, r3 + 801ca94: 1ad3 subs r3, r2, r3 + 801ca96: b29b uxth r3, r3 + 801ca98: b21b sxth r3, r3 + 801ca9a: 85fb strh r3, [r7, #46] ; 0x2e blend_area.y2 = point1->y + w_half0; - 801cb30: 687b ldr r3, [r7, #4] - 801cb32: f9b3 3002 ldrsh.w r3, [r3, #2] - 801cb36: b29a uxth r2, r3 - 801cb38: 6cfb ldr r3, [r7, #76] ; 0x4c - 801cb3a: b29b uxth r3, r3 - 801cb3c: 4413 add r3, r2 - 801cb3e: b29b uxth r3, r3 - 801cb40: b21b sxth r3, r3 - 801cb42: 867b strh r3, [r7, #50] ; 0x32 + 801ca9c: 687b ldr r3, [r7, #4] + 801ca9e: f9b3 3002 ldrsh.w r3, [r3, #2] + 801caa2: b29a uxth r2, r3 + 801caa4: 6cfb ldr r3, [r7, #76] ; 0x4c + 801caa6: b29b uxth r3, r3 + 801caa8: 4413 add r3, r2 + 801caaa: b29b uxth r3, r3 + 801caac: b21b sxth r3, r3 + 801caae: 867b strh r3, [r7, #50] ; 0x32 bool is_common; is_common = _lv_area_intersect(&blend_area, &blend_area, draw_ctx->clip_area); - 801cb44: 68fb ldr r3, [r7, #12] - 801cb46: 689a ldr r2, [r3, #8] - 801cb48: f107 012c add.w r1, r7, #44 ; 0x2c - 801cb4c: f107 032c add.w r3, r7, #44 ; 0x2c - 801cb50: 4618 mov r0, r3 - 801cb52: f014 faa9 bl 80310a8 <_lv_area_intersect> - 801cb56: 4603 mov r3, r0 - 801cb58: f887 3047 strb.w r3, [r7, #71] ; 0x47 + 801cab0: 68fb ldr r3, [r7, #12] + 801cab2: 689a ldr r2, [r3, #8] + 801cab4: f107 012c add.w r1, r7, #44 ; 0x2c + 801cab8: f107 032c add.w r3, r7, #44 ; 0x2c + 801cabc: 4618 mov r0, r3 + 801cabe: f014 faa9 bl 8031014 <_lv_area_intersect> + 801cac2: 4603 mov r3, r0 + 801cac4: f887 3047 strb.w r3, [r7, #71] ; 0x47 if(!is_common) return; - 801cb5c: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 801cb60: f083 0301 eor.w r3, r3, #1 - 801cb64: b2db uxtb r3, r3 - 801cb66: 2b00 cmp r3, #0 - 801cb68: f040 8106 bne.w 801cd78 + 801cac8: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 801cacc: f083 0301 eor.w r3, r3, #1 + 801cad0: b2db uxtb r3, r3 + 801cad2: 2b00 cmp r3, #0 + 801cad4: f040 8106 bne.w 801cce4 bool dashed = dsc->dash_gap && dsc->dash_width ? true : false; - 801cb6c: 68bb ldr r3, [r7, #8] - 801cb6e: f9b3 3006 ldrsh.w r3, [r3, #6] - 801cb72: 2b00 cmp r3, #0 - 801cb74: d006 beq.n 801cb84 - 801cb76: 68bb ldr r3, [r7, #8] - 801cb78: f9b3 3004 ldrsh.w r3, [r3, #4] - 801cb7c: 2b00 cmp r3, #0 - 801cb7e: d001 beq.n 801cb84 - 801cb80: 2301 movs r3, #1 - 801cb82: e000 b.n 801cb86 - 801cb84: 2300 movs r3, #0 - 801cb86: f887 3046 strb.w r3, [r7, #70] ; 0x46 - 801cb8a: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 - 801cb8e: f003 0301 and.w r3, r3, #1 - 801cb92: f887 3046 strb.w r3, [r7, #70] ; 0x46 + 801cad8: 68bb ldr r3, [r7, #8] + 801cada: f9b3 3006 ldrsh.w r3, [r3, #6] + 801cade: 2b00 cmp r3, #0 + 801cae0: d006 beq.n 801caf0 + 801cae2: 68bb ldr r3, [r7, #8] + 801cae4: f9b3 3004 ldrsh.w r3, [r3, #4] + 801cae8: 2b00 cmp r3, #0 + 801caea: d001 beq.n 801caf0 + 801caec: 2301 movs r3, #1 + 801caee: e000 b.n 801caf2 + 801caf0: 2300 movs r3, #0 + 801caf2: f887 3046 strb.w r3, [r7, #70] ; 0x46 + 801caf6: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 + 801cafa: f003 0301 and.w r3, r3, #1 + 801cafe: f887 3046 strb.w r3, [r7, #70] ; 0x46 bool simple_mode = true; - 801cb96: 2301 movs r3, #1 - 801cb98: f887 305f strb.w r3, [r7, #95] ; 0x5f + 801cb02: 2301 movs r3, #1 + 801cb04: f887 305f strb.w r3, [r7, #95] ; 0x5f if(lv_draw_mask_is_any(&blend_area)) simple_mode = false; - 801cb9c: f107 032c add.w r3, r7, #44 ; 0x2c - 801cba0: 4618 mov r0, r3 - 801cba2: f7f6 fb7d bl 80132a0 - 801cba6: 4603 mov r3, r0 - 801cba8: 2b00 cmp r3, #0 - 801cbaa: d003 beq.n 801cbb4 - 801cbac: 2300 movs r3, #0 - 801cbae: f887 305f strb.w r3, [r7, #95] ; 0x5f - 801cbb2: e006 b.n 801cbc2 + 801cb08: f107 032c add.w r3, r7, #44 ; 0x2c + 801cb0c: 4618 mov r0, r3 + 801cb0e: f7f6 fb7d bl 801320c + 801cb12: 4603 mov r3, r0 + 801cb14: 2b00 cmp r3, #0 + 801cb16: d003 beq.n 801cb20 + 801cb18: 2300 movs r3, #0 + 801cb1a: f887 305f strb.w r3, [r7, #95] ; 0x5f + 801cb1e: e006 b.n 801cb2e else if(dashed) simple_mode = false; - 801cbb4: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 - 801cbb8: 2b00 cmp r3, #0 - 801cbba: d002 beq.n 801cbc2 - 801cbbc: 2300 movs r3, #0 - 801cbbe: f887 305f strb.w r3, [r7, #95] ; 0x5f + 801cb20: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 + 801cb24: 2b00 cmp r3, #0 + 801cb26: d002 beq.n 801cb2e + 801cb28: 2300 movs r3, #0 + 801cb2a: f887 305f strb.w r3, [r7, #95] ; 0x5f lv_draw_sw_blend_dsc_t blend_dsc; lv_memset_00(&blend_dsc, sizeof(blend_dsc)); - 801cbc2: f107 0310 add.w r3, r7, #16 - 801cbc6: 211c movs r1, #28 - 801cbc8: 4618 mov r0, r3 - 801cbca: f016 fac1 bl 8033150 + 801cb2e: f107 0310 add.w r3, r7, #16 + 801cb32: 211c movs r1, #28 + 801cb34: 4618 mov r0, r3 + 801cb36: f016 fac1 bl 80330bc blend_dsc.blend_area = &blend_area; - 801cbce: f107 032c add.w r3, r7, #44 ; 0x2c - 801cbd2: 613b str r3, [r7, #16] + 801cb3a: f107 032c add.w r3, r7, #44 ; 0x2c + 801cb3e: 613b str r3, [r7, #16] blend_dsc.color = dsc->color; - 801cbd4: 68bb ldr r3, [r7, #8] - 801cbd6: 881b ldrh r3, [r3, #0] - 801cbd8: 833b strh r3, [r7, #24] + 801cb40: 68bb ldr r3, [r7, #8] + 801cb42: 881b ldrh r3, [r3, #0] + 801cb44: 833b strh r3, [r7, #24] blend_dsc.opa = dsc->opa; - 801cbda: 68bb ldr r3, [r7, #8] - 801cbdc: 7a1b ldrb r3, [r3, #8] - 801cbde: f887 3028 strb.w r3, [r7, #40] ; 0x28 + 801cb46: 68bb ldr r3, [r7, #8] + 801cb48: 7a1b ldrb r3, [r3, #8] + 801cb4a: f887 3028 strb.w r3, [r7, #40] ; 0x28 /*If there is no mask then simply draw a rectangle*/ if(simple_mode) { - 801cbe2: f897 305f ldrb.w r3, [r7, #95] ; 0x5f - 801cbe6: 2b00 cmp r3, #0 - 801cbe8: d006 beq.n 801cbf8 + 801cb4e: f897 305f ldrb.w r3, [r7, #95] ; 0x5f + 801cb52: 2b00 cmp r3, #0 + 801cb54: d006 beq.n 801cb64 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801cbea: f107 0310 add.w r3, r7, #16 - 801cbee: 4619 mov r1, r3 - 801cbf0: 68f8 ldr r0, [r7, #12] - 801cbf2: f7fc ff4e bl 8019a92 - 801cbf6: e0c0 b.n 801cd7a + 801cb56: f107 0310 add.w r3, r7, #16 + 801cb5a: 4619 mov r1, r3 + 801cb5c: 68f8 ldr r0, [r7, #12] + 801cb5e: f7fc ff4e bl 80199fe + 801cb62: e0c0 b.n 801cce6 } #if LV_DRAW_COMPLEX /*If there other mask apply it*/ else { int32_t blend_area_w = lv_area_get_width(&blend_area); - 801cbf8: f107 032c add.w r3, r7, #44 ; 0x2c - 801cbfc: 4618 mov r0, r3 - 801cbfe: f7ff fdc3 bl 801c788 - 801cc02: 4603 mov r3, r0 - 801cc04: 643b str r3, [r7, #64] ; 0x40 + 801cb64: f107 032c add.w r3, r7, #44 ; 0x2c + 801cb68: 4618 mov r0, r3 + 801cb6a: f7ff fdc3 bl 801c6f4 + 801cb6e: 4603 mov r3, r0 + 801cb70: 643b str r3, [r7, #64] ; 0x40 lv_coord_t y2 = blend_area.y2; - 801cc06: 8e7b ldrh r3, [r7, #50] ; 0x32 - 801cc08: 87fb strh r3, [r7, #62] ; 0x3e + 801cb72: 8e7b ldrh r3, [r7, #50] ; 0x32 + 801cb74: 87fb strh r3, [r7, #62] ; 0x3e blend_area.y2 = blend_area.y1; - 801cc0a: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 801cc0e: 867b strh r3, [r7, #50] ; 0x32 + 801cb76: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 801cb7a: 867b strh r3, [r7, #50] ; 0x32 lv_coord_t dash_start = 0; - 801cc10: 2300 movs r3, #0 - 801cc12: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 801cb7c: 2300 movs r3, #0 + 801cb7e: f8a7 305c strh.w r3, [r7, #92] ; 0x5c if(dashed) { - 801cc16: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 - 801cc1a: 2b00 cmp r3, #0 - 801cc1c: d011 beq.n 801cc42 + 801cb82: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 + 801cb86: 2b00 cmp r3, #0 + 801cb88: d011 beq.n 801cbae dash_start = (blend_area.x1) % (dsc->dash_gap + dsc->dash_width); - 801cc1e: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 801cc22: 461a mov r2, r3 - 801cc24: 68bb ldr r3, [r7, #8] - 801cc26: f9b3 3006 ldrsh.w r3, [r3, #6] - 801cc2a: 4619 mov r1, r3 - 801cc2c: 68bb ldr r3, [r7, #8] - 801cc2e: f9b3 3004 ldrsh.w r3, [r3, #4] - 801cc32: 440b add r3, r1 - 801cc34: fb92 f1f3 sdiv r1, r2, r3 - 801cc38: fb01 f303 mul.w r3, r1, r3 - 801cc3c: 1ad3 subs r3, r2, r3 - 801cc3e: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 801cb8a: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 801cb8e: 461a mov r2, r3 + 801cb90: 68bb ldr r3, [r7, #8] + 801cb92: f9b3 3006 ldrsh.w r3, [r3, #6] + 801cb96: 4619 mov r1, r3 + 801cb98: 68bb ldr r3, [r7, #8] + 801cb9a: f9b3 3004 ldrsh.w r3, [r3, #4] + 801cb9e: 440b add r3, r1 + 801cba0: fb92 f1f3 sdiv r1, r2, r3 + 801cba4: fb01 f303 mul.w r3, r1, r3 + 801cba8: 1ad3 subs r3, r2, r3 + 801cbaa: f8a7 305c strh.w r3, [r7, #92] ; 0x5c } lv_opa_t * mask_buf = lv_mem_buf_get(blend_area_w); - 801cc42: 6c3b ldr r3, [r7, #64] ; 0x40 - 801cc44: 4618 mov r0, r3 - 801cc46: f015 fedb bl 8032a00 - 801cc4a: 63b8 str r0, [r7, #56] ; 0x38 + 801cbae: 6c3b ldr r3, [r7, #64] ; 0x40 + 801cbb0: 4618 mov r0, r3 + 801cbb2: f015 fedb bl 803296c + 801cbb6: 63b8 str r0, [r7, #56] ; 0x38 blend_dsc.mask_buf = mask_buf; - 801cc4c: 6bbb ldr r3, [r7, #56] ; 0x38 - 801cc4e: 61fb str r3, [r7, #28] + 801cbb8: 6bbb ldr r3, [r7, #56] ; 0x38 + 801cbba: 61fb str r3, [r7, #28] blend_dsc.mask_area = &blend_area; - 801cc50: f107 032c add.w r3, r7, #44 ; 0x2c - 801cc54: 627b str r3, [r7, #36] ; 0x24 + 801cbbc: f107 032c add.w r3, r7, #44 ; 0x2c + 801cbc0: 627b str r3, [r7, #36] ; 0x24 int32_t h; for(h = blend_area.y1; h <= y2; h++) { - 801cc56: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 801cc5a: 65bb str r3, [r7, #88] ; 0x58 - 801cc5c: e082 b.n 801cd64 + 801cbc2: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 801cbc6: 65bb str r3, [r7, #88] ; 0x58 + 801cbc8: e082 b.n 801ccd0 lv_memset_ff(mask_buf, blend_area_w); - 801cc5e: 6c3b ldr r3, [r7, #64] ; 0x40 - 801cc60: 4619 mov r1, r3 - 801cc62: 6bb8 ldr r0, [r7, #56] ; 0x38 - 801cc64: f016 faf4 bl 8033250 + 801cbca: 6c3b ldr r3, [r7, #64] ; 0x40 + 801cbcc: 4619 mov r1, r3 + 801cbce: 6bb8 ldr r0, [r7, #56] ; 0x38 + 801cbd0: f016 faf4 bl 80331bc blend_dsc.mask_res = lv_draw_mask_apply(mask_buf, blend_area.x1, h, blend_area_w); - 801cc68: f9b7 102c ldrsh.w r1, [r7, #44] ; 0x2c - 801cc6c: 6dbb ldr r3, [r7, #88] ; 0x58 - 801cc6e: b21a sxth r2, r3 - 801cc70: 6c3b ldr r3, [r7, #64] ; 0x40 - 801cc72: b21b sxth r3, r3 - 801cc74: 6bb8 ldr r0, [r7, #56] ; 0x38 - 801cc76: f7f6 fa15 bl 80130a4 - 801cc7a: 4603 mov r3, r0 - 801cc7c: f887 3020 strb.w r3, [r7, #32] + 801cbd4: f9b7 102c ldrsh.w r1, [r7, #44] ; 0x2c + 801cbd8: 6dbb ldr r3, [r7, #88] ; 0x58 + 801cbda: b21a sxth r2, r3 + 801cbdc: 6c3b ldr r3, [r7, #64] ; 0x40 + 801cbde: b21b sxth r3, r3 + 801cbe0: 6bb8 ldr r0, [r7, #56] ; 0x38 + 801cbe2: f7f6 fa15 bl 8013010 + 801cbe6: 4603 mov r3, r0 + 801cbe8: f887 3020 strb.w r3, [r7, #32] if(dashed) { - 801cc80: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 - 801cc84: 2b00 cmp r3, #0 - 801cc86: d056 beq.n 801cd36 + 801cbec: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 + 801cbf0: 2b00 cmp r3, #0 + 801cbf2: d056 beq.n 801cca2 if(blend_dsc.mask_res != LV_DRAW_MASK_RES_TRANSP) { - 801cc88: f897 3020 ldrb.w r3, [r7, #32] - 801cc8c: 2b00 cmp r3, #0 - 801cc8e: d052 beq.n 801cd36 + 801cbf4: f897 3020 ldrb.w r3, [r7, #32] + 801cbf8: 2b00 cmp r3, #0 + 801cbfa: d052 beq.n 801cca2 lv_coord_t dash_cnt = dash_start; - 801cc90: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c - 801cc94: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 801cbfc: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c + 801cc00: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 lv_coord_t i; for(i = 0; i < blend_area_w; i++, dash_cnt++) { - 801cc98: 2300 movs r3, #0 - 801cc9a: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 - 801cc9e: e042 b.n 801cd26 + 801cc04: 2300 movs r3, #0 + 801cc06: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 + 801cc0a: e042 b.n 801cc92 if(dash_cnt <= dsc->dash_width) { - 801cca0: 68bb ldr r3, [r7, #8] - 801cca2: f9b3 3004 ldrsh.w r3, [r3, #4] - 801cca6: f9b7 2056 ldrsh.w r2, [r7, #86] ; 0x56 - 801ccaa: 429a cmp r2, r3 - 801ccac: dc17 bgt.n 801ccde + 801cc0c: 68bb ldr r3, [r7, #8] + 801cc0e: f9b3 3004 ldrsh.w r3, [r3, #4] + 801cc12: f9b7 2056 ldrsh.w r2, [r7, #86] ; 0x56 + 801cc16: 429a cmp r2, r3 + 801cc18: dc17 bgt.n 801cc4a int16_t diff = dsc->dash_width - dash_cnt; - 801ccae: 68bb ldr r3, [r7, #8] - 801ccb0: f9b3 3004 ldrsh.w r3, [r3, #4] - 801ccb4: b29a uxth r2, r3 - 801ccb6: f8b7 3056 ldrh.w r3, [r7, #86] ; 0x56 - 801ccba: 1ad3 subs r3, r2, r3 - 801ccbc: b29b uxth r3, r3 - 801ccbe: 86fb strh r3, [r7, #54] ; 0x36 + 801cc1a: 68bb ldr r3, [r7, #8] + 801cc1c: f9b3 3004 ldrsh.w r3, [r3, #4] + 801cc20: b29a uxth r2, r3 + 801cc22: f8b7 3056 ldrh.w r3, [r7, #86] ; 0x56 + 801cc26: 1ad3 subs r3, r2, r3 + 801cc28: b29b uxth r3, r3 + 801cc2a: 86fb strh r3, [r7, #54] ; 0x36 i += diff; - 801ccc0: f8b7 2054 ldrh.w r2, [r7, #84] ; 0x54 - 801ccc4: 8efb ldrh r3, [r7, #54] ; 0x36 - 801ccc6: 4413 add r3, r2 - 801ccc8: b29b uxth r3, r3 - 801ccca: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 + 801cc2c: f8b7 2054 ldrh.w r2, [r7, #84] ; 0x54 + 801cc30: 8efb ldrh r3, [r7, #54] ; 0x36 + 801cc32: 4413 add r3, r2 + 801cc34: b29b uxth r3, r3 + 801cc36: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 dash_cnt += diff; - 801ccce: f8b7 2056 ldrh.w r2, [r7, #86] ; 0x56 - 801ccd2: 8efb ldrh r3, [r7, #54] ; 0x36 - 801ccd4: 4413 add r3, r2 - 801ccd6: b29b uxth r3, r3 - 801ccd8: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 - 801ccdc: e015 b.n 801cd0a + 801cc3a: f8b7 2056 ldrh.w r2, [r7, #86] ; 0x56 + 801cc3e: 8efb ldrh r3, [r7, #54] ; 0x36 + 801cc40: 4413 add r3, r2 + 801cc42: b29b uxth r3, r3 + 801cc44: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 801cc48: e015 b.n 801cc76 } else if(dash_cnt >= dsc->dash_gap + dsc->dash_width) { - 801ccde: f9b7 2056 ldrsh.w r2, [r7, #86] ; 0x56 - 801cce2: 68bb ldr r3, [r7, #8] - 801cce4: f9b3 3006 ldrsh.w r3, [r3, #6] - 801cce8: 4619 mov r1, r3 - 801ccea: 68bb ldr r3, [r7, #8] - 801ccec: f9b3 3004 ldrsh.w r3, [r3, #4] - 801ccf0: 440b add r3, r1 - 801ccf2: 429a cmp r2, r3 - 801ccf4: db03 blt.n 801ccfe + 801cc4a: f9b7 2056 ldrsh.w r2, [r7, #86] ; 0x56 + 801cc4e: 68bb ldr r3, [r7, #8] + 801cc50: f9b3 3006 ldrsh.w r3, [r3, #6] + 801cc54: 4619 mov r1, r3 + 801cc56: 68bb ldr r3, [r7, #8] + 801cc58: f9b3 3004 ldrsh.w r3, [r3, #4] + 801cc5c: 440b add r3, r1 + 801cc5e: 429a cmp r2, r3 + 801cc60: db03 blt.n 801cc6a dash_cnt = 0; - 801ccf6: 2300 movs r3, #0 - 801ccf8: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 - 801ccfc: e005 b.n 801cd0a + 801cc62: 2300 movs r3, #0 + 801cc64: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 801cc68: e005 b.n 801cc76 } else { mask_buf[i] = 0x00; - 801ccfe: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 - 801cd02: 6bba ldr r2, [r7, #56] ; 0x38 - 801cd04: 4413 add r3, r2 - 801cd06: 2200 movs r2, #0 - 801cd08: 701a strb r2, [r3, #0] + 801cc6a: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 + 801cc6e: 6bba ldr r2, [r7, #56] ; 0x38 + 801cc70: 4413 add r3, r2 + 801cc72: 2200 movs r2, #0 + 801cc74: 701a strb r2, [r3, #0] for(i = 0; i < blend_area_w; i++, dash_cnt++) { - 801cd0a: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 - 801cd0e: b29b uxth r3, r3 - 801cd10: 3301 adds r3, #1 - 801cd12: b29b uxth r3, r3 - 801cd14: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 - 801cd18: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 801cd1c: b29b uxth r3, r3 - 801cd1e: 3301 adds r3, #1 - 801cd20: b29b uxth r3, r3 - 801cd22: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 - 801cd26: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 - 801cd2a: 6c3a ldr r2, [r7, #64] ; 0x40 - 801cd2c: 429a cmp r2, r3 - 801cd2e: dcb7 bgt.n 801cca0 + 801cc76: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 + 801cc7a: b29b uxth r3, r3 + 801cc7c: 3301 adds r3, #1 + 801cc7e: b29b uxth r3, r3 + 801cc80: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 + 801cc84: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 801cc88: b29b uxth r3, r3 + 801cc8a: 3301 adds r3, #1 + 801cc8c: b29b uxth r3, r3 + 801cc8e: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 801cc92: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 + 801cc96: 6c3a ldr r2, [r7, #64] ; 0x40 + 801cc98: 429a cmp r2, r3 + 801cc9a: dcb7 bgt.n 801cc0c } } blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801cd30: 2302 movs r3, #2 - 801cd32: f887 3020 strb.w r3, [r7, #32] + 801cc9c: 2302 movs r3, #2 + 801cc9e: f887 3020 strb.w r3, [r7, #32] } } lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801cd36: f107 0310 add.w r3, r7, #16 - 801cd3a: 4619 mov r1, r3 - 801cd3c: 68f8 ldr r0, [r7, #12] - 801cd3e: f7fc fea8 bl 8019a92 + 801cca2: f107 0310 add.w r3, r7, #16 + 801cca6: 4619 mov r1, r3 + 801cca8: 68f8 ldr r0, [r7, #12] + 801ccaa: f7fc fea8 bl 80199fe blend_area.y1++; - 801cd42: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 801cd46: b29b uxth r3, r3 - 801cd48: 3301 adds r3, #1 - 801cd4a: b29b uxth r3, r3 - 801cd4c: b21b sxth r3, r3 - 801cd4e: 85fb strh r3, [r7, #46] ; 0x2e + 801ccae: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 801ccb2: b29b uxth r3, r3 + 801ccb4: 3301 adds r3, #1 + 801ccb6: b29b uxth r3, r3 + 801ccb8: b21b sxth r3, r3 + 801ccba: 85fb strh r3, [r7, #46] ; 0x2e blend_area.y2++; - 801cd50: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 801cd54: b29b uxth r3, r3 - 801cd56: 3301 adds r3, #1 - 801cd58: b29b uxth r3, r3 - 801cd5a: b21b sxth r3, r3 - 801cd5c: 867b strh r3, [r7, #50] ; 0x32 + 801ccbc: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 801ccc0: b29b uxth r3, r3 + 801ccc2: 3301 adds r3, #1 + 801ccc4: b29b uxth r3, r3 + 801ccc6: b21b sxth r3, r3 + 801ccc8: 867b strh r3, [r7, #50] ; 0x32 for(h = blend_area.y1; h <= y2; h++) { - 801cd5e: 6dbb ldr r3, [r7, #88] ; 0x58 - 801cd60: 3301 adds r3, #1 - 801cd62: 65bb str r3, [r7, #88] ; 0x58 - 801cd64: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 801cd68: 6dba ldr r2, [r7, #88] ; 0x58 - 801cd6a: 429a cmp r2, r3 - 801cd6c: f77f af77 ble.w 801cc5e + 801ccca: 6dbb ldr r3, [r7, #88] ; 0x58 + 801cccc: 3301 adds r3, #1 + 801ccce: 65bb str r3, [r7, #88] ; 0x58 + 801ccd0: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 801ccd4: 6dba ldr r2, [r7, #88] ; 0x58 + 801ccd6: 429a cmp r2, r3 + 801ccd8: f77f af77 ble.w 801cbca } lv_mem_buf_release(mask_buf); - 801cd70: 6bb8 ldr r0, [r7, #56] ; 0x38 - 801cd72: f015 fef1 bl 8032b58 - 801cd76: e000 b.n 801cd7a + 801ccdc: 6bb8 ldr r0, [r7, #56] ; 0x38 + 801ccde: f015 fef1 bl 8032ac4 + 801cce2: e000 b.n 801cce6 if(!is_common) return; - 801cd78: bf00 nop + 801cce4: bf00 nop } #endif /*LV_DRAW_COMPLEX*/ } - 801cd7a: 3760 adds r7, #96 ; 0x60 - 801cd7c: 46bd mov sp, r7 - 801cd7e: bd80 pop {r7, pc} + 801cce6: 3760 adds r7, #96 ; 0x60 + 801cce8: 46bd mov sp, r7 + 801ccea: bd80 pop {r7, pc} -0801cd80 : +0801ccec : LV_ATTRIBUTE_FAST_MEM static void draw_line_ver(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, const lv_point_t * point2) { - 801cd80: b580 push {r7, lr} - 801cd82: b098 sub sp, #96 ; 0x60 - 801cd84: af00 add r7, sp, #0 - 801cd86: 60f8 str r0, [r7, #12] - 801cd88: 60b9 str r1, [r7, #8] - 801cd8a: 607a str r2, [r7, #4] - 801cd8c: 603b str r3, [r7, #0] + 801ccec: b580 push {r7, lr} + 801ccee: b098 sub sp, #96 ; 0x60 + 801ccf0: af00 add r7, sp, #0 + 801ccf2: 60f8 str r0, [r7, #12] + 801ccf4: 60b9 str r1, [r7, #8] + 801ccf6: 607a str r2, [r7, #4] + 801ccf8: 603b str r3, [r7, #0] int32_t w = dsc->width - 1; - 801cd8e: 68bb ldr r3, [r7, #8] - 801cd90: f9b3 3002 ldrsh.w r3, [r3, #2] - 801cd94: 3b01 subs r3, #1 - 801cd96: 653b str r3, [r7, #80] ; 0x50 + 801ccfa: 68bb ldr r3, [r7, #8] + 801ccfc: f9b3 3002 ldrsh.w r3, [r3, #2] + 801cd00: 3b01 subs r3, #1 + 801cd02: 653b str r3, [r7, #80] ; 0x50 int32_t w_half0 = w >> 1; - 801cd98: 6d3b ldr r3, [r7, #80] ; 0x50 - 801cd9a: 105b asrs r3, r3, #1 - 801cd9c: 64fb str r3, [r7, #76] ; 0x4c + 801cd04: 6d3b ldr r3, [r7, #80] ; 0x50 + 801cd06: 105b asrs r3, r3, #1 + 801cd08: 64fb str r3, [r7, #76] ; 0x4c int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/ - 801cd9e: 6d3b ldr r3, [r7, #80] ; 0x50 - 801cda0: f003 0301 and.w r3, r3, #1 - 801cda4: 6cfa ldr r2, [r7, #76] ; 0x4c - 801cda6: 4413 add r3, r2 - 801cda8: 64bb str r3, [r7, #72] ; 0x48 + 801cd0a: 6d3b ldr r3, [r7, #80] ; 0x50 + 801cd0c: f003 0301 and.w r3, r3, #1 + 801cd10: 6cfa ldr r2, [r7, #76] ; 0x4c + 801cd12: 4413 add r3, r2 + 801cd14: 64bb str r3, [r7, #72] ; 0x48 lv_area_t blend_area; blend_area.x1 = point1->x - w_half1; - 801cdaa: 687b ldr r3, [r7, #4] - 801cdac: f9b3 3000 ldrsh.w r3, [r3] - 801cdb0: b29a uxth r2, r3 - 801cdb2: 6cbb ldr r3, [r7, #72] ; 0x48 - 801cdb4: b29b uxth r3, r3 - 801cdb6: 1ad3 subs r3, r2, r3 - 801cdb8: b29b uxth r3, r3 - 801cdba: b21b sxth r3, r3 - 801cdbc: 863b strh r3, [r7, #48] ; 0x30 + 801cd16: 687b ldr r3, [r7, #4] + 801cd18: f9b3 3000 ldrsh.w r3, [r3] + 801cd1c: b29a uxth r2, r3 + 801cd1e: 6cbb ldr r3, [r7, #72] ; 0x48 + 801cd20: b29b uxth r3, r3 + 801cd22: 1ad3 subs r3, r2, r3 + 801cd24: b29b uxth r3, r3 + 801cd26: b21b sxth r3, r3 + 801cd28: 863b strh r3, [r7, #48] ; 0x30 blend_area.x2 = point1->x + w_half0; - 801cdbe: 687b ldr r3, [r7, #4] - 801cdc0: f9b3 3000 ldrsh.w r3, [r3] - 801cdc4: b29a uxth r2, r3 - 801cdc6: 6cfb ldr r3, [r7, #76] ; 0x4c - 801cdc8: b29b uxth r3, r3 - 801cdca: 4413 add r3, r2 - 801cdcc: b29b uxth r3, r3 - 801cdce: b21b sxth r3, r3 - 801cdd0: 86bb strh r3, [r7, #52] ; 0x34 + 801cd2a: 687b ldr r3, [r7, #4] + 801cd2c: f9b3 3000 ldrsh.w r3, [r3] + 801cd30: b29a uxth r2, r3 + 801cd32: 6cfb ldr r3, [r7, #76] ; 0x4c + 801cd34: b29b uxth r3, r3 + 801cd36: 4413 add r3, r2 + 801cd38: b29b uxth r3, r3 + 801cd3a: b21b sxth r3, r3 + 801cd3c: 86bb strh r3, [r7, #52] ; 0x34 blend_area.y1 = LV_MIN(point1->y, point2->y); - 801cdd2: 683b ldr r3, [r7, #0] - 801cdd4: f9b3 2002 ldrsh.w r2, [r3, #2] - 801cdd8: 687b ldr r3, [r7, #4] - 801cdda: f9b3 3002 ldrsh.w r3, [r3, #2] - 801cdde: 4293 cmp r3, r2 - 801cde0: bfa8 it ge - 801cde2: 4613 movge r3, r2 - 801cde4: b21b sxth r3, r3 - 801cde6: 867b strh r3, [r7, #50] ; 0x32 + 801cd3e: 683b ldr r3, [r7, #0] + 801cd40: f9b3 2002 ldrsh.w r2, [r3, #2] + 801cd44: 687b ldr r3, [r7, #4] + 801cd46: f9b3 3002 ldrsh.w r3, [r3, #2] + 801cd4a: 4293 cmp r3, r2 + 801cd4c: bfa8 it ge + 801cd4e: 4613 movge r3, r2 + 801cd50: b21b sxth r3, r3 + 801cd52: 867b strh r3, [r7, #50] ; 0x32 blend_area.y2 = LV_MAX(point1->y, point2->y) - 1; - 801cde8: 683b ldr r3, [r7, #0] - 801cdea: f9b3 2002 ldrsh.w r2, [r3, #2] - 801cdee: 687b ldr r3, [r7, #4] - 801cdf0: f9b3 3002 ldrsh.w r3, [r3, #2] - 801cdf4: 4293 cmp r3, r2 - 801cdf6: bfb8 it lt - 801cdf8: 4613 movlt r3, r2 - 801cdfa: b21b sxth r3, r3 - 801cdfc: b29b uxth r3, r3 - 801cdfe: 3b01 subs r3, #1 - 801ce00: b29b uxth r3, r3 - 801ce02: b21b sxth r3, r3 - 801ce04: 86fb strh r3, [r7, #54] ; 0x36 + 801cd54: 683b ldr r3, [r7, #0] + 801cd56: f9b3 2002 ldrsh.w r2, [r3, #2] + 801cd5a: 687b ldr r3, [r7, #4] + 801cd5c: f9b3 3002 ldrsh.w r3, [r3, #2] + 801cd60: 4293 cmp r3, r2 + 801cd62: bfb8 it lt + 801cd64: 4613 movlt r3, r2 + 801cd66: b21b sxth r3, r3 + 801cd68: b29b uxth r3, r3 + 801cd6a: 3b01 subs r3, #1 + 801cd6c: b29b uxth r3, r3 + 801cd6e: b21b sxth r3, r3 + 801cd70: 86fb strh r3, [r7, #54] ; 0x36 bool is_common; is_common = _lv_area_intersect(&blend_area, &blend_area, draw_ctx->clip_area); - 801ce06: 68fb ldr r3, [r7, #12] - 801ce08: 689a ldr r2, [r3, #8] - 801ce0a: f107 0130 add.w r1, r7, #48 ; 0x30 - 801ce0e: f107 0330 add.w r3, r7, #48 ; 0x30 - 801ce12: 4618 mov r0, r3 - 801ce14: f014 f948 bl 80310a8 <_lv_area_intersect> - 801ce18: 4603 mov r3, r0 - 801ce1a: f887 3047 strb.w r3, [r7, #71] ; 0x47 + 801cd72: 68fb ldr r3, [r7, #12] + 801cd74: 689a ldr r2, [r3, #8] + 801cd76: f107 0130 add.w r1, r7, #48 ; 0x30 + 801cd7a: f107 0330 add.w r3, r7, #48 ; 0x30 + 801cd7e: 4618 mov r0, r3 + 801cd80: f014 f948 bl 8031014 <_lv_area_intersect> + 801cd84: 4603 mov r3, r0 + 801cd86: f887 3047 strb.w r3, [r7, #71] ; 0x47 if(!is_common) return; - 801ce1e: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 801ce22: f083 0301 eor.w r3, r3, #1 - 801ce26: b2db uxtb r3, r3 - 801ce28: 2b00 cmp r3, #0 - 801ce2a: f040 80d6 bne.w 801cfda + 801cd8a: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 801cd8e: f083 0301 eor.w r3, r3, #1 + 801cd92: b2db uxtb r3, r3 + 801cd94: 2b00 cmp r3, #0 + 801cd96: f040 80d6 bne.w 801cf46 bool dashed = dsc->dash_gap && dsc->dash_width ? true : false; - 801ce2e: 68bb ldr r3, [r7, #8] - 801ce30: f9b3 3006 ldrsh.w r3, [r3, #6] - 801ce34: 2b00 cmp r3, #0 - 801ce36: d006 beq.n 801ce46 - 801ce38: 68bb ldr r3, [r7, #8] - 801ce3a: f9b3 3004 ldrsh.w r3, [r3, #4] - 801ce3e: 2b00 cmp r3, #0 - 801ce40: d001 beq.n 801ce46 - 801ce42: 2301 movs r3, #1 - 801ce44: e000 b.n 801ce48 - 801ce46: 2300 movs r3, #0 - 801ce48: f887 3046 strb.w r3, [r7, #70] ; 0x46 - 801ce4c: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 - 801ce50: f003 0301 and.w r3, r3, #1 - 801ce54: f887 3046 strb.w r3, [r7, #70] ; 0x46 + 801cd9a: 68bb ldr r3, [r7, #8] + 801cd9c: f9b3 3006 ldrsh.w r3, [r3, #6] + 801cda0: 2b00 cmp r3, #0 + 801cda2: d006 beq.n 801cdb2 + 801cda4: 68bb ldr r3, [r7, #8] + 801cda6: f9b3 3004 ldrsh.w r3, [r3, #4] + 801cdaa: 2b00 cmp r3, #0 + 801cdac: d001 beq.n 801cdb2 + 801cdae: 2301 movs r3, #1 + 801cdb0: e000 b.n 801cdb4 + 801cdb2: 2300 movs r3, #0 + 801cdb4: f887 3046 strb.w r3, [r7, #70] ; 0x46 + 801cdb8: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 + 801cdbc: f003 0301 and.w r3, r3, #1 + 801cdc0: f887 3046 strb.w r3, [r7, #70] ; 0x46 bool simple_mode = true; - 801ce58: 2301 movs r3, #1 - 801ce5a: f887 305f strb.w r3, [r7, #95] ; 0x5f + 801cdc4: 2301 movs r3, #1 + 801cdc6: f887 305f strb.w r3, [r7, #95] ; 0x5f if(lv_draw_mask_is_any(&blend_area)) simple_mode = false; - 801ce5e: f107 0330 add.w r3, r7, #48 ; 0x30 - 801ce62: 4618 mov r0, r3 - 801ce64: f7f6 fa1c bl 80132a0 - 801ce68: 4603 mov r3, r0 - 801ce6a: 2b00 cmp r3, #0 - 801ce6c: d003 beq.n 801ce76 - 801ce6e: 2300 movs r3, #0 - 801ce70: f887 305f strb.w r3, [r7, #95] ; 0x5f - 801ce74: e006 b.n 801ce84 + 801cdca: f107 0330 add.w r3, r7, #48 ; 0x30 + 801cdce: 4618 mov r0, r3 + 801cdd0: f7f6 fa1c bl 801320c + 801cdd4: 4603 mov r3, r0 + 801cdd6: 2b00 cmp r3, #0 + 801cdd8: d003 beq.n 801cde2 + 801cdda: 2300 movs r3, #0 + 801cddc: f887 305f strb.w r3, [r7, #95] ; 0x5f + 801cde0: e006 b.n 801cdf0 else if(dashed) simple_mode = false; - 801ce76: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 - 801ce7a: 2b00 cmp r3, #0 - 801ce7c: d002 beq.n 801ce84 - 801ce7e: 2300 movs r3, #0 - 801ce80: f887 305f strb.w r3, [r7, #95] ; 0x5f + 801cde2: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 + 801cde6: 2b00 cmp r3, #0 + 801cde8: d002 beq.n 801cdf0 + 801cdea: 2300 movs r3, #0 + 801cdec: f887 305f strb.w r3, [r7, #95] ; 0x5f lv_draw_sw_blend_dsc_t blend_dsc; lv_memset_00(&blend_dsc, sizeof(blend_dsc)); - 801ce84: f107 0314 add.w r3, r7, #20 - 801ce88: 211c movs r1, #28 - 801ce8a: 4618 mov r0, r3 - 801ce8c: f016 f960 bl 8033150 + 801cdf0: f107 0314 add.w r3, r7, #20 + 801cdf4: 211c movs r1, #28 + 801cdf6: 4618 mov r0, r3 + 801cdf8: f016 f960 bl 80330bc blend_dsc.blend_area = &blend_area; - 801ce90: f107 0330 add.w r3, r7, #48 ; 0x30 - 801ce94: 617b str r3, [r7, #20] + 801cdfc: f107 0330 add.w r3, r7, #48 ; 0x30 + 801ce00: 617b str r3, [r7, #20] blend_dsc.color = dsc->color; - 801ce96: 68bb ldr r3, [r7, #8] - 801ce98: 881b ldrh r3, [r3, #0] - 801ce9a: 83bb strh r3, [r7, #28] + 801ce02: 68bb ldr r3, [r7, #8] + 801ce04: 881b ldrh r3, [r3, #0] + 801ce06: 83bb strh r3, [r7, #28] blend_dsc.opa = dsc->opa; - 801ce9c: 68bb ldr r3, [r7, #8] - 801ce9e: 7a1b ldrb r3, [r3, #8] - 801cea0: f887 302c strb.w r3, [r7, #44] ; 0x2c + 801ce08: 68bb ldr r3, [r7, #8] + 801ce0a: 7a1b ldrb r3, [r3, #8] + 801ce0c: f887 302c strb.w r3, [r7, #44] ; 0x2c /*If there is no mask then simply draw a rectangle*/ if(simple_mode) { - 801cea4: f897 305f ldrb.w r3, [r7, #95] ; 0x5f - 801cea8: 2b00 cmp r3, #0 - 801ceaa: d006 beq.n 801ceba + 801ce10: f897 305f ldrb.w r3, [r7, #95] ; 0x5f + 801ce14: 2b00 cmp r3, #0 + 801ce16: d006 beq.n 801ce26 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801ceac: f107 0314 add.w r3, r7, #20 - 801ceb0: 4619 mov r1, r3 - 801ceb2: 68f8 ldr r0, [r7, #12] - 801ceb4: f7fc fded bl 8019a92 - 801ceb8: e090 b.n 801cfdc + 801ce18: f107 0314 add.w r3, r7, #20 + 801ce1c: 4619 mov r1, r3 + 801ce1e: 68f8 ldr r0, [r7, #12] + 801ce20: f7fc fded bl 80199fe + 801ce24: e090 b.n 801cf48 } #if LV_DRAW_COMPLEX /*If there other mask apply it*/ else { int32_t draw_area_w = lv_area_get_width(&blend_area); - 801ceba: f107 0330 add.w r3, r7, #48 ; 0x30 - 801cebe: 4618 mov r0, r3 - 801cec0: f7ff fc62 bl 801c788 - 801cec4: 4603 mov r3, r0 - 801cec6: 643b str r3, [r7, #64] ; 0x40 + 801ce26: f107 0330 add.w r3, r7, #48 ; 0x30 + 801ce2a: 4618 mov r0, r3 + 801ce2c: f7ff fc62 bl 801c6f4 + 801ce30: 4603 mov r3, r0 + 801ce32: 643b str r3, [r7, #64] ; 0x40 lv_coord_t y2 = blend_area.y2; - 801cec8: 8efb ldrh r3, [r7, #54] ; 0x36 - 801ceca: 87fb strh r3, [r7, #62] ; 0x3e + 801ce34: 8efb ldrh r3, [r7, #54] ; 0x36 + 801ce36: 87fb strh r3, [r7, #62] ; 0x3e blend_area.y2 = blend_area.y1; - 801cecc: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 801ced0: 86fb strh r3, [r7, #54] ; 0x36 + 801ce38: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 801ce3c: 86fb strh r3, [r7, #54] ; 0x36 lv_opa_t * mask_buf = lv_mem_buf_get(draw_area_w); - 801ced2: 6c3b ldr r3, [r7, #64] ; 0x40 - 801ced4: 4618 mov r0, r3 - 801ced6: f015 fd93 bl 8032a00 - 801ceda: 63b8 str r0, [r7, #56] ; 0x38 + 801ce3e: 6c3b ldr r3, [r7, #64] ; 0x40 + 801ce40: 4618 mov r0, r3 + 801ce42: f015 fd93 bl 803296c + 801ce46: 63b8 str r0, [r7, #56] ; 0x38 blend_dsc.mask_buf = mask_buf; - 801cedc: 6bbb ldr r3, [r7, #56] ; 0x38 - 801cede: 623b str r3, [r7, #32] + 801ce48: 6bbb ldr r3, [r7, #56] ; 0x38 + 801ce4a: 623b str r3, [r7, #32] blend_dsc.mask_area = &blend_area; - 801cee0: f107 0330 add.w r3, r7, #48 ; 0x30 - 801cee4: 62bb str r3, [r7, #40] ; 0x28 + 801ce4c: f107 0330 add.w r3, r7, #48 ; 0x30 + 801ce50: 62bb str r3, [r7, #40] ; 0x28 lv_coord_t dash_start = 0; - 801cee6: 2300 movs r3, #0 - 801cee8: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 801ce52: 2300 movs r3, #0 + 801ce54: f8a7 305c strh.w r3, [r7, #92] ; 0x5c if(dashed) { - 801ceec: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 - 801cef0: 2b00 cmp r3, #0 - 801cef2: d011 beq.n 801cf18 + 801ce58: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 + 801ce5c: 2b00 cmp r3, #0 + 801ce5e: d011 beq.n 801ce84 dash_start = (blend_area.y1) % (dsc->dash_gap + dsc->dash_width); - 801cef4: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 801cef8: 461a mov r2, r3 - 801cefa: 68bb ldr r3, [r7, #8] - 801cefc: f9b3 3006 ldrsh.w r3, [r3, #6] - 801cf00: 4619 mov r1, r3 - 801cf02: 68bb ldr r3, [r7, #8] - 801cf04: f9b3 3004 ldrsh.w r3, [r3, #4] - 801cf08: 440b add r3, r1 - 801cf0a: fb92 f1f3 sdiv r1, r2, r3 - 801cf0e: fb01 f303 mul.w r3, r1, r3 - 801cf12: 1ad3 subs r3, r2, r3 - 801cf14: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 801ce60: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 801ce64: 461a mov r2, r3 + 801ce66: 68bb ldr r3, [r7, #8] + 801ce68: f9b3 3006 ldrsh.w r3, [r3, #6] + 801ce6c: 4619 mov r1, r3 + 801ce6e: 68bb ldr r3, [r7, #8] + 801ce70: f9b3 3004 ldrsh.w r3, [r3, #4] + 801ce74: 440b add r3, r1 + 801ce76: fb92 f1f3 sdiv r1, r2, r3 + 801ce7a: fb01 f303 mul.w r3, r1, r3 + 801ce7e: 1ad3 subs r3, r2, r3 + 801ce80: f8a7 305c strh.w r3, [r7, #92] ; 0x5c } lv_coord_t dash_cnt = dash_start; - 801cf18: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c - 801cf1c: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 801ce84: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c + 801ce88: f8a7 305a strh.w r3, [r7, #90] ; 0x5a int32_t h; for(h = blend_area.y1; h <= y2; h++) { - 801cf20: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 801cf24: 657b str r3, [r7, #84] ; 0x54 - 801cf26: e04f b.n 801cfc8 + 801ce8c: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 801ce90: 657b str r3, [r7, #84] ; 0x54 + 801ce92: e04f b.n 801cf34 lv_memset_ff(mask_buf, draw_area_w); - 801cf28: 6c3b ldr r3, [r7, #64] ; 0x40 - 801cf2a: 4619 mov r1, r3 - 801cf2c: 6bb8 ldr r0, [r7, #56] ; 0x38 - 801cf2e: f016 f98f bl 8033250 + 801ce94: 6c3b ldr r3, [r7, #64] ; 0x40 + 801ce96: 4619 mov r1, r3 + 801ce98: 6bb8 ldr r0, [r7, #56] ; 0x38 + 801ce9a: f016 f98f bl 80331bc blend_dsc.mask_res = lv_draw_mask_apply(mask_buf, blend_area.x1, h, draw_area_w); - 801cf32: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 - 801cf36: 6d7b ldr r3, [r7, #84] ; 0x54 - 801cf38: b21a sxth r2, r3 - 801cf3a: 6c3b ldr r3, [r7, #64] ; 0x40 - 801cf3c: b21b sxth r3, r3 - 801cf3e: 6bb8 ldr r0, [r7, #56] ; 0x38 - 801cf40: f7f6 f8b0 bl 80130a4 - 801cf44: 4603 mov r3, r0 - 801cf46: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801ce9e: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 + 801cea2: 6d7b ldr r3, [r7, #84] ; 0x54 + 801cea4: b21a sxth r2, r3 + 801cea6: 6c3b ldr r3, [r7, #64] ; 0x40 + 801cea8: b21b sxth r3, r3 + 801ceaa: 6bb8 ldr r0, [r7, #56] ; 0x38 + 801ceac: f7f6 f8b0 bl 8013010 + 801ceb0: 4603 mov r3, r0 + 801ceb2: f887 3024 strb.w r3, [r7, #36] ; 0x24 if(dashed) { - 801cf4a: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 - 801cf4e: 2b00 cmp r3, #0 - 801cf50: d023 beq.n 801cf9a + 801ceb6: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 + 801ceba: 2b00 cmp r3, #0 + 801cebc: d023 beq.n 801cf06 if(blend_dsc.mask_res != LV_DRAW_MASK_RES_TRANSP) { - 801cf52: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 801cf56: 2b00 cmp r3, #0 - 801cf58: d018 beq.n 801cf8c + 801cebe: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 + 801cec2: 2b00 cmp r3, #0 + 801cec4: d018 beq.n 801cef8 if(dash_cnt > dsc->dash_width) { - 801cf5a: 68bb ldr r3, [r7, #8] - 801cf5c: f9b3 3004 ldrsh.w r3, [r3, #4] - 801cf60: f9b7 205a ldrsh.w r2, [r7, #90] ; 0x5a - 801cf64: 429a cmp r2, r3 - 801cf66: dd02 ble.n 801cf6e + 801cec6: 68bb ldr r3, [r7, #8] + 801cec8: f9b3 3004 ldrsh.w r3, [r3, #4] + 801cecc: f9b7 205a ldrsh.w r2, [r7, #90] ; 0x5a + 801ced0: 429a cmp r2, r3 + 801ced2: dd02 ble.n 801ceda blend_dsc.mask_res = LV_DRAW_MASK_RES_TRANSP; - 801cf68: 2300 movs r3, #0 - 801cf6a: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801ced4: 2300 movs r3, #0 + 801ced6: f887 3024 strb.w r3, [r7, #36] ; 0x24 } if(dash_cnt >= dsc->dash_gap + dsc->dash_width) { - 801cf6e: f9b7 205a ldrsh.w r2, [r7, #90] ; 0x5a - 801cf72: 68bb ldr r3, [r7, #8] - 801cf74: f9b3 3006 ldrsh.w r3, [r3, #6] - 801cf78: 4619 mov r1, r3 - 801cf7a: 68bb ldr r3, [r7, #8] - 801cf7c: f9b3 3004 ldrsh.w r3, [r3, #4] - 801cf80: 440b add r3, r1 - 801cf82: 429a cmp r2, r3 - 801cf84: db02 blt.n 801cf8c + 801ceda: f9b7 205a ldrsh.w r2, [r7, #90] ; 0x5a + 801cede: 68bb ldr r3, [r7, #8] + 801cee0: f9b3 3006 ldrsh.w r3, [r3, #6] + 801cee4: 4619 mov r1, r3 + 801cee6: 68bb ldr r3, [r7, #8] + 801cee8: f9b3 3004 ldrsh.w r3, [r3, #4] + 801ceec: 440b add r3, r1 + 801ceee: 429a cmp r2, r3 + 801cef0: db02 blt.n 801cef8 dash_cnt = 0; - 801cf86: 2300 movs r3, #0 - 801cf88: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 801cef2: 2300 movs r3, #0 + 801cef4: f8a7 305a strh.w r3, [r7, #90] ; 0x5a } } dash_cnt ++; - 801cf8c: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a - 801cf90: b29b uxth r3, r3 - 801cf92: 3301 adds r3, #1 - 801cf94: b29b uxth r3, r3 - 801cf96: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 801cef8: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a + 801cefc: b29b uxth r3, r3 + 801cefe: 3301 adds r3, #1 + 801cf00: b29b uxth r3, r3 + 801cf02: f8a7 305a strh.w r3, [r7, #90] ; 0x5a } lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801cf9a: f107 0314 add.w r3, r7, #20 - 801cf9e: 4619 mov r1, r3 - 801cfa0: 68f8 ldr r0, [r7, #12] - 801cfa2: f7fc fd76 bl 8019a92 + 801cf06: f107 0314 add.w r3, r7, #20 + 801cf0a: 4619 mov r1, r3 + 801cf0c: 68f8 ldr r0, [r7, #12] + 801cf0e: f7fc fd76 bl 80199fe blend_area.y1++; - 801cfa6: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 801cfaa: b29b uxth r3, r3 - 801cfac: 3301 adds r3, #1 - 801cfae: b29b uxth r3, r3 - 801cfb0: b21b sxth r3, r3 - 801cfb2: 867b strh r3, [r7, #50] ; 0x32 + 801cf12: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 801cf16: b29b uxth r3, r3 + 801cf18: 3301 adds r3, #1 + 801cf1a: b29b uxth r3, r3 + 801cf1c: b21b sxth r3, r3 + 801cf1e: 867b strh r3, [r7, #50] ; 0x32 blend_area.y2++; - 801cfb4: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 801cfb8: b29b uxth r3, r3 - 801cfba: 3301 adds r3, #1 - 801cfbc: b29b uxth r3, r3 - 801cfbe: b21b sxth r3, r3 - 801cfc0: 86fb strh r3, [r7, #54] ; 0x36 + 801cf20: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 801cf24: b29b uxth r3, r3 + 801cf26: 3301 adds r3, #1 + 801cf28: b29b uxth r3, r3 + 801cf2a: b21b sxth r3, r3 + 801cf2c: 86fb strh r3, [r7, #54] ; 0x36 for(h = blend_area.y1; h <= y2; h++) { - 801cfc2: 6d7b ldr r3, [r7, #84] ; 0x54 - 801cfc4: 3301 adds r3, #1 - 801cfc6: 657b str r3, [r7, #84] ; 0x54 - 801cfc8: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 801cfcc: 6d7a ldr r2, [r7, #84] ; 0x54 - 801cfce: 429a cmp r2, r3 - 801cfd0: ddaa ble.n 801cf28 + 801cf2e: 6d7b ldr r3, [r7, #84] ; 0x54 + 801cf30: 3301 adds r3, #1 + 801cf32: 657b str r3, [r7, #84] ; 0x54 + 801cf34: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 801cf38: 6d7a ldr r2, [r7, #84] ; 0x54 + 801cf3a: 429a cmp r2, r3 + 801cf3c: ddaa ble.n 801ce94 } lv_mem_buf_release(mask_buf); - 801cfd2: 6bb8 ldr r0, [r7, #56] ; 0x38 - 801cfd4: f015 fdc0 bl 8032b58 - 801cfd8: e000 b.n 801cfdc + 801cf3e: 6bb8 ldr r0, [r7, #56] ; 0x38 + 801cf40: f015 fdc0 bl 8032ac4 + 801cf44: e000 b.n 801cf48 if(!is_common) return; - 801cfda: bf00 nop + 801cf46: bf00 nop } #endif /*LV_DRAW_COMPLEX*/ } - 801cfdc: 3760 adds r7, #96 ; 0x60 - 801cfde: 46bd mov sp, r7 - 801cfe0: bd80 pop {r7, pc} + 801cf48: 3760 adds r7, #96 ; 0x60 + 801cf4a: 46bd mov sp, r7 + 801cf4c: bd80 pop {r7, pc} ... -0801cfe4 : +0801cf50 : LV_ATTRIBUTE_FAST_MEM static void draw_line_skew(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, const lv_point_t * point2) { - 801cfe4: b5b0 push {r4, r5, r7, lr} - 801cfe6: b0ce sub sp, #312 ; 0x138 - 801cfe8: af02 add r7, sp, #8 - 801cfea: f507 7498 add.w r4, r7, #304 ; 0x130 - 801cfee: f5a4 7492 sub.w r4, r4, #292 ; 0x124 - 801cff2: 6020 str r0, [r4, #0] - 801cff4: f507 7098 add.w r0, r7, #304 ; 0x130 - 801cff8: f5a0 7094 sub.w r0, r0, #296 ; 0x128 - 801cffc: 6001 str r1, [r0, #0] - 801cffe: f507 7198 add.w r1, r7, #304 ; 0x130 - 801d002: f5a1 7196 sub.w r1, r1, #300 ; 0x12c - 801d006: 600a str r2, [r1, #0] - 801d008: f507 7298 add.w r2, r7, #304 ; 0x130 - 801d00c: f5a2 7298 sub.w r2, r2, #304 ; 0x130 - 801d010: 6013 str r3, [r2, #0] + 801cf50: b5b0 push {r4, r5, r7, lr} + 801cf52: b0ce sub sp, #312 ; 0x138 + 801cf54: af02 add r7, sp, #8 + 801cf56: f507 7498 add.w r4, r7, #304 ; 0x130 + 801cf5a: f5a4 7492 sub.w r4, r4, #292 ; 0x124 + 801cf5e: 6020 str r0, [r4, #0] + 801cf60: f507 7098 add.w r0, r7, #304 ; 0x130 + 801cf64: f5a0 7094 sub.w r0, r0, #296 ; 0x128 + 801cf68: 6001 str r1, [r0, #0] + 801cf6a: f507 7198 add.w r1, r7, #304 ; 0x130 + 801cf6e: f5a1 7196 sub.w r1, r1, #300 ; 0x12c + 801cf72: 600a str r2, [r1, #0] + 801cf74: f507 7298 add.w r2, r7, #304 ; 0x130 + 801cf78: f5a2 7298 sub.w r2, r2, #304 ; 0x130 + 801cf7c: 6013 str r3, [r2, #0] #if LV_DRAW_COMPLEX /*Keep the great y in p1*/ lv_point_t p1; lv_point_t p2; if(point1->y < point2->y) { - 801d012: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d016: f5a3 7396 sub.w r3, r3, #300 ; 0x12c - 801d01a: 681b ldr r3, [r3, #0] - 801d01c: f9b3 2002 ldrsh.w r2, [r3, #2] - 801d020: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d024: f5a3 7398 sub.w r3, r3, #304 ; 0x130 - 801d028: 681b ldr r3, [r3, #0] - 801d02a: f9b3 3002 ldrsh.w r3, [r3, #2] - 801d02e: 429a cmp r2, r3 - 801d030: da24 bge.n 801d07c + 801cf7e: f507 7398 add.w r3, r7, #304 ; 0x130 + 801cf82: f5a3 7396 sub.w r3, r3, #300 ; 0x12c + 801cf86: 681b ldr r3, [r3, #0] + 801cf88: f9b3 2002 ldrsh.w r2, [r3, #2] + 801cf8c: f507 7398 add.w r3, r7, #304 ; 0x130 + 801cf90: f5a3 7398 sub.w r3, r3, #304 ; 0x130 + 801cf94: 681b ldr r3, [r3, #0] + 801cf96: f9b3 3002 ldrsh.w r3, [r3, #2] + 801cf9a: 429a cmp r2, r3 + 801cf9c: da24 bge.n 801cfe8 p1.y = point1->y; - 801d032: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d036: f5a3 7396 sub.w r3, r3, #300 ; 0x12c - 801d03a: 681b ldr r3, [r3, #0] - 801d03c: f9b3 3002 ldrsh.w r3, [r3, #2] - 801d040: f8a7 30ea strh.w r3, [r7, #234] ; 0xea + 801cf9e: f507 7398 add.w r3, r7, #304 ; 0x130 + 801cfa2: f5a3 7396 sub.w r3, r3, #300 ; 0x12c + 801cfa6: 681b ldr r3, [r3, #0] + 801cfa8: f9b3 3002 ldrsh.w r3, [r3, #2] + 801cfac: f8a7 30ea strh.w r3, [r7, #234] ; 0xea p2.y = point2->y; - 801d044: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d048: f5a3 7398 sub.w r3, r3, #304 ; 0x130 - 801d04c: 681b ldr r3, [r3, #0] - 801d04e: f9b3 3002 ldrsh.w r3, [r3, #2] - 801d052: f8a7 30e6 strh.w r3, [r7, #230] ; 0xe6 + 801cfb0: f507 7398 add.w r3, r7, #304 ; 0x130 + 801cfb4: f5a3 7398 sub.w r3, r3, #304 ; 0x130 + 801cfb8: 681b ldr r3, [r3, #0] + 801cfba: f9b3 3002 ldrsh.w r3, [r3, #2] + 801cfbe: f8a7 30e6 strh.w r3, [r7, #230] ; 0xe6 p1.x = point1->x; - 801d056: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d05a: f5a3 7396 sub.w r3, r3, #300 ; 0x12c - 801d05e: 681b ldr r3, [r3, #0] - 801d060: f9b3 3000 ldrsh.w r3, [r3] - 801d064: f8a7 30e8 strh.w r3, [r7, #232] ; 0xe8 + 801cfc2: f507 7398 add.w r3, r7, #304 ; 0x130 + 801cfc6: f5a3 7396 sub.w r3, r3, #300 ; 0x12c + 801cfca: 681b ldr r3, [r3, #0] + 801cfcc: f9b3 3000 ldrsh.w r3, [r3] + 801cfd0: f8a7 30e8 strh.w r3, [r7, #232] ; 0xe8 p2.x = point2->x; - 801d068: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d06c: f5a3 7398 sub.w r3, r3, #304 ; 0x130 - 801d070: 681b ldr r3, [r3, #0] - 801d072: f9b3 3000 ldrsh.w r3, [r3] - 801d076: f8a7 30e4 strh.w r3, [r7, #228] ; 0xe4 - 801d07a: e023 b.n 801d0c4 + 801cfd4: f507 7398 add.w r3, r7, #304 ; 0x130 + 801cfd8: f5a3 7398 sub.w r3, r3, #304 ; 0x130 + 801cfdc: 681b ldr r3, [r3, #0] + 801cfde: f9b3 3000 ldrsh.w r3, [r3] + 801cfe2: f8a7 30e4 strh.w r3, [r7, #228] ; 0xe4 + 801cfe6: e023 b.n 801d030 } else { p1.y = point2->y; - 801d07c: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d080: f5a3 7398 sub.w r3, r3, #304 ; 0x130 - 801d084: 681b ldr r3, [r3, #0] - 801d086: f9b3 3002 ldrsh.w r3, [r3, #2] - 801d08a: f8a7 30ea strh.w r3, [r7, #234] ; 0xea + 801cfe8: f507 7398 add.w r3, r7, #304 ; 0x130 + 801cfec: f5a3 7398 sub.w r3, r3, #304 ; 0x130 + 801cff0: 681b ldr r3, [r3, #0] + 801cff2: f9b3 3002 ldrsh.w r3, [r3, #2] + 801cff6: f8a7 30ea strh.w r3, [r7, #234] ; 0xea p2.y = point1->y; - 801d08e: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d092: f5a3 7396 sub.w r3, r3, #300 ; 0x12c - 801d096: 681b ldr r3, [r3, #0] - 801d098: f9b3 3002 ldrsh.w r3, [r3, #2] - 801d09c: f8a7 30e6 strh.w r3, [r7, #230] ; 0xe6 + 801cffa: f507 7398 add.w r3, r7, #304 ; 0x130 + 801cffe: f5a3 7396 sub.w r3, r3, #300 ; 0x12c + 801d002: 681b ldr r3, [r3, #0] + 801d004: f9b3 3002 ldrsh.w r3, [r3, #2] + 801d008: f8a7 30e6 strh.w r3, [r7, #230] ; 0xe6 p1.x = point2->x; - 801d0a0: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d0a4: f5a3 7398 sub.w r3, r3, #304 ; 0x130 - 801d0a8: 681b ldr r3, [r3, #0] - 801d0aa: f9b3 3000 ldrsh.w r3, [r3] - 801d0ae: f8a7 30e8 strh.w r3, [r7, #232] ; 0xe8 + 801d00c: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d010: f5a3 7398 sub.w r3, r3, #304 ; 0x130 + 801d014: 681b ldr r3, [r3, #0] + 801d016: f9b3 3000 ldrsh.w r3, [r3] + 801d01a: f8a7 30e8 strh.w r3, [r7, #232] ; 0xe8 p2.x = point1->x; - 801d0b2: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d0b6: f5a3 7396 sub.w r3, r3, #300 ; 0x12c - 801d0ba: 681b ldr r3, [r3, #0] - 801d0bc: f9b3 3000 ldrsh.w r3, [r3] - 801d0c0: f8a7 30e4 strh.w r3, [r7, #228] ; 0xe4 + 801d01e: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d022: f5a3 7396 sub.w r3, r3, #300 ; 0x12c + 801d026: 681b ldr r3, [r3, #0] + 801d028: f9b3 3000 ldrsh.w r3, [r3] + 801d02c: f8a7 30e4 strh.w r3, [r7, #228] ; 0xe4 } int32_t xdiff = p2.x - p1.x; - 801d0c4: f9b7 30e4 ldrsh.w r3, [r7, #228] ; 0xe4 - 801d0c8: 461a mov r2, r3 - 801d0ca: f9b7 30e8 ldrsh.w r3, [r7, #232] ; 0xe8 - 801d0ce: 1ad3 subs r3, r2, r3 - 801d0d0: f8c7 311c str.w r3, [r7, #284] ; 0x11c + 801d030: f9b7 30e4 ldrsh.w r3, [r7, #228] ; 0xe4 + 801d034: 461a mov r2, r3 + 801d036: f9b7 30e8 ldrsh.w r3, [r7, #232] ; 0xe8 + 801d03a: 1ad3 subs r3, r2, r3 + 801d03c: f8c7 311c str.w r3, [r7, #284] ; 0x11c int32_t ydiff = p2.y - p1.y; - 801d0d4: f9b7 30e6 ldrsh.w r3, [r7, #230] ; 0xe6 - 801d0d8: 461a mov r2, r3 - 801d0da: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea - 801d0de: 1ad3 subs r3, r2, r3 - 801d0e0: f8c7 3118 str.w r3, [r7, #280] ; 0x118 + 801d040: f9b7 30e6 ldrsh.w r3, [r7, #230] ; 0xe6 + 801d044: 461a mov r2, r3 + 801d046: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea + 801d04a: 1ad3 subs r3, r2, r3 + 801d04c: f8c7 3118 str.w r3, [r7, #280] ; 0x118 bool flat = LV_ABS(xdiff) > LV_ABS(ydiff) ? true : false; - 801d0e4: f8d7 311c ldr.w r3, [r7, #284] ; 0x11c - 801d0e8: ea83 72e3 eor.w r2, r3, r3, asr #31 - 801d0ec: eba2 72e3 sub.w r2, r2, r3, asr #31 - 801d0f0: f8d7 3118 ldr.w r3, [r7, #280] ; 0x118 - 801d0f4: 2b00 cmp r3, #0 - 801d0f6: bfb8 it lt - 801d0f8: 425b neglt r3, r3 - 801d0fa: 429a cmp r2, r3 - 801d0fc: bfcc ite gt - 801d0fe: 2301 movgt r3, #1 - 801d100: 2300 movle r3, #0 - 801d102: f887 3117 strb.w r3, [r7, #279] ; 0x117 + 801d050: f8d7 311c ldr.w r3, [r7, #284] ; 0x11c + 801d054: ea83 72e3 eor.w r2, r3, r3, asr #31 + 801d058: eba2 72e3 sub.w r2, r2, r3, asr #31 + 801d05c: f8d7 3118 ldr.w r3, [r7, #280] ; 0x118 + 801d060: 2b00 cmp r3, #0 + 801d062: bfb8 it lt + 801d064: 425b neglt r3, r3 + 801d066: 429a cmp r2, r3 + 801d068: bfcc ite gt + 801d06a: 2301 movgt r3, #1 + 801d06c: 2300 movle r3, #0 + 801d06e: f887 3117 strb.w r3, [r7, #279] ; 0x117 143, 145, 147, 149, 151, 153, 155, 158, 160, 162, 165, 167, 170, 173, 175, 178, 181, }; int32_t w = dsc->width; - 801d106: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d10a: f5a3 7394 sub.w r3, r3, #296 ; 0x128 - 801d10e: 681b ldr r3, [r3, #0] - 801d110: f9b3 3002 ldrsh.w r3, [r3, #2] - 801d114: f8c7 3110 str.w r3, [r7, #272] ; 0x110 + 801d072: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d076: f5a3 7394 sub.w r3, r3, #296 ; 0x128 + 801d07a: 681b ldr r3, [r3, #0] + 801d07c: f9b3 3002 ldrsh.w r3, [r3, #2] + 801d080: f8c7 3110 str.w r3, [r7, #272] ; 0x110 int32_t wcorr_i = 0; - 801d118: 2300 movs r3, #0 - 801d11a: f8c7 312c str.w r3, [r7, #300] ; 0x12c + 801d084: 2300 movs r3, #0 + 801d086: f8c7 312c str.w r3, [r7, #300] ; 0x12c if(flat) wcorr_i = (LV_ABS(ydiff) << 5) / LV_ABS(xdiff); - 801d11e: f897 3117 ldrb.w r3, [r7, #279] ; 0x117 - 801d122: 2b00 cmp r3, #0 - 801d124: d00f beq.n 801d146 - 801d126: f8d7 3118 ldr.w r3, [r7, #280] ; 0x118 - 801d12a: 2b00 cmp r3, #0 - 801d12c: bfb8 it lt - 801d12e: 425b neglt r3, r3 - 801d130: 015a lsls r2, r3, #5 - 801d132: f8d7 311c ldr.w r3, [r7, #284] ; 0x11c - 801d136: 2b00 cmp r3, #0 - 801d138: bfb8 it lt - 801d13a: 425b neglt r3, r3 - 801d13c: fb92 f3f3 sdiv r3, r2, r3 - 801d140: f8c7 312c str.w r3, [r7, #300] ; 0x12c - 801d144: e00e b.n 801d164 + 801d08a: f897 3117 ldrb.w r3, [r7, #279] ; 0x117 + 801d08e: 2b00 cmp r3, #0 + 801d090: d00f beq.n 801d0b2 + 801d092: f8d7 3118 ldr.w r3, [r7, #280] ; 0x118 + 801d096: 2b00 cmp r3, #0 + 801d098: bfb8 it lt + 801d09a: 425b neglt r3, r3 + 801d09c: 015a lsls r2, r3, #5 + 801d09e: f8d7 311c ldr.w r3, [r7, #284] ; 0x11c + 801d0a2: 2b00 cmp r3, #0 + 801d0a4: bfb8 it lt + 801d0a6: 425b neglt r3, r3 + 801d0a8: fb92 f3f3 sdiv r3, r2, r3 + 801d0ac: f8c7 312c str.w r3, [r7, #300] ; 0x12c + 801d0b0: e00e b.n 801d0d0 else wcorr_i = (LV_ABS(xdiff) << 5) / LV_ABS(ydiff); - 801d146: f8d7 311c ldr.w r3, [r7, #284] ; 0x11c - 801d14a: 2b00 cmp r3, #0 - 801d14c: bfb8 it lt - 801d14e: 425b neglt r3, r3 - 801d150: 015a lsls r2, r3, #5 - 801d152: f8d7 3118 ldr.w r3, [r7, #280] ; 0x118 - 801d156: 2b00 cmp r3, #0 - 801d158: bfb8 it lt - 801d15a: 425b neglt r3, r3 - 801d15c: fb92 f3f3 sdiv r3, r2, r3 - 801d160: f8c7 312c str.w r3, [r7, #300] ; 0x12c + 801d0b2: f8d7 311c ldr.w r3, [r7, #284] ; 0x11c + 801d0b6: 2b00 cmp r3, #0 + 801d0b8: bfb8 it lt + 801d0ba: 425b neglt r3, r3 + 801d0bc: 015a lsls r2, r3, #5 + 801d0be: f8d7 3118 ldr.w r3, [r7, #280] ; 0x118 + 801d0c2: 2b00 cmp r3, #0 + 801d0c4: bfb8 it lt + 801d0c6: 425b neglt r3, r3 + 801d0c8: fb92 f3f3 sdiv r3, r2, r3 + 801d0cc: f8c7 312c str.w r3, [r7, #300] ; 0x12c w = (w * wcorr[wcorr_i] + 63) >> 7; /*+ 63 for rounding*/ - 801d164: 4a7f ldr r2, [pc, #508] ; (801d364 ) - 801d166: f8d7 312c ldr.w r3, [r7, #300] ; 0x12c - 801d16a: 4413 add r3, r2 - 801d16c: 781b ldrb r3, [r3, #0] - 801d16e: 461a mov r2, r3 - 801d170: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 801d174: fb02 f303 mul.w r3, r2, r3 - 801d178: 333f adds r3, #63 ; 0x3f - 801d17a: 11db asrs r3, r3, #7 - 801d17c: f8c7 3110 str.w r3, [r7, #272] ; 0x110 + 801d0d0: 4a7f ldr r2, [pc, #508] ; (801d2d0 ) + 801d0d2: f8d7 312c ldr.w r3, [r7, #300] ; 0x12c + 801d0d6: 4413 add r3, r2 + 801d0d8: 781b ldrb r3, [r3, #0] + 801d0da: 461a mov r2, r3 + 801d0dc: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 801d0e0: fb02 f303 mul.w r3, r2, r3 + 801d0e4: 333f adds r3, #63 ; 0x3f + 801d0e6: 11db asrs r3, r3, #7 + 801d0e8: f8c7 3110 str.w r3, [r7, #272] ; 0x110 int32_t w_half0 = w >> 1; - 801d180: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 801d184: 105b asrs r3, r3, #1 - 801d186: f8c7 310c str.w r3, [r7, #268] ; 0x10c + 801d0ec: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 801d0f0: 105b asrs r3, r3, #1 + 801d0f2: f8c7 310c str.w r3, [r7, #268] ; 0x10c int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/ - 801d18a: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 801d18e: f003 0301 and.w r3, r3, #1 - 801d192: f8d7 210c ldr.w r2, [r7, #268] ; 0x10c - 801d196: 4413 add r3, r2 - 801d198: f8c7 3108 str.w r3, [r7, #264] ; 0x108 + 801d0f6: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 801d0fa: f003 0301 and.w r3, r3, #1 + 801d0fe: f8d7 210c ldr.w r2, [r7, #268] ; 0x10c + 801d102: 4413 add r3, r2 + 801d104: f8c7 3108 str.w r3, [r7, #264] ; 0x108 lv_area_t blend_area; blend_area.x1 = LV_MIN(p1.x, p2.x) - w; - 801d19c: f9b7 20e4 ldrsh.w r2, [r7, #228] ; 0xe4 - 801d1a0: f9b7 30e8 ldrsh.w r3, [r7, #232] ; 0xe8 - 801d1a4: 4293 cmp r3, r2 - 801d1a6: bfa8 it ge - 801d1a8: 4613 movge r3, r2 - 801d1aa: b21b sxth r3, r3 - 801d1ac: b29a uxth r2, r3 - 801d1ae: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 801d1b2: b29b uxth r3, r3 - 801d1b4: 1ad3 subs r3, r2, r3 - 801d1b6: b29b uxth r3, r3 - 801d1b8: b21b sxth r3, r3 - 801d1ba: f8a7 30dc strh.w r3, [r7, #220] ; 0xdc + 801d108: f9b7 20e4 ldrsh.w r2, [r7, #228] ; 0xe4 + 801d10c: f9b7 30e8 ldrsh.w r3, [r7, #232] ; 0xe8 + 801d110: 4293 cmp r3, r2 + 801d112: bfa8 it ge + 801d114: 4613 movge r3, r2 + 801d116: b21b sxth r3, r3 + 801d118: b29a uxth r2, r3 + 801d11a: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 801d11e: b29b uxth r3, r3 + 801d120: 1ad3 subs r3, r2, r3 + 801d122: b29b uxth r3, r3 + 801d124: b21b sxth r3, r3 + 801d126: f8a7 30dc strh.w r3, [r7, #220] ; 0xdc blend_area.x2 = LV_MAX(p1.x, p2.x) + w; - 801d1be: f9b7 20e4 ldrsh.w r2, [r7, #228] ; 0xe4 - 801d1c2: f9b7 30e8 ldrsh.w r3, [r7, #232] ; 0xe8 - 801d1c6: 4293 cmp r3, r2 - 801d1c8: bfb8 it lt - 801d1ca: 4613 movlt r3, r2 - 801d1cc: b21b sxth r3, r3 - 801d1ce: b29a uxth r2, r3 - 801d1d0: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 801d1d4: b29b uxth r3, r3 - 801d1d6: 4413 add r3, r2 - 801d1d8: b29b uxth r3, r3 - 801d1da: b21b sxth r3, r3 - 801d1dc: f8a7 30e0 strh.w r3, [r7, #224] ; 0xe0 + 801d12a: f9b7 20e4 ldrsh.w r2, [r7, #228] ; 0xe4 + 801d12e: f9b7 30e8 ldrsh.w r3, [r7, #232] ; 0xe8 + 801d132: 4293 cmp r3, r2 + 801d134: bfb8 it lt + 801d136: 4613 movlt r3, r2 + 801d138: b21b sxth r3, r3 + 801d13a: b29a uxth r2, r3 + 801d13c: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 801d140: b29b uxth r3, r3 + 801d142: 4413 add r3, r2 + 801d144: b29b uxth r3, r3 + 801d146: b21b sxth r3, r3 + 801d148: f8a7 30e0 strh.w r3, [r7, #224] ; 0xe0 blend_area.y1 = LV_MIN(p1.y, p2.y) - w; - 801d1e0: f9b7 20e6 ldrsh.w r2, [r7, #230] ; 0xe6 - 801d1e4: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea - 801d1e8: 4293 cmp r3, r2 - 801d1ea: bfa8 it ge - 801d1ec: 4613 movge r3, r2 - 801d1ee: b21b sxth r3, r3 - 801d1f0: b29a uxth r2, r3 - 801d1f2: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 801d1f6: b29b uxth r3, r3 - 801d1f8: 1ad3 subs r3, r2, r3 - 801d1fa: b29b uxth r3, r3 - 801d1fc: b21b sxth r3, r3 - 801d1fe: f8a7 30de strh.w r3, [r7, #222] ; 0xde + 801d14c: f9b7 20e6 ldrsh.w r2, [r7, #230] ; 0xe6 + 801d150: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea + 801d154: 4293 cmp r3, r2 + 801d156: bfa8 it ge + 801d158: 4613 movge r3, r2 + 801d15a: b21b sxth r3, r3 + 801d15c: b29a uxth r2, r3 + 801d15e: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 801d162: b29b uxth r3, r3 + 801d164: 1ad3 subs r3, r2, r3 + 801d166: b29b uxth r3, r3 + 801d168: b21b sxth r3, r3 + 801d16a: f8a7 30de strh.w r3, [r7, #222] ; 0xde blend_area.y2 = LV_MAX(p1.y, p2.y) + w; - 801d202: f9b7 20e6 ldrsh.w r2, [r7, #230] ; 0xe6 - 801d206: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea - 801d20a: 4293 cmp r3, r2 - 801d20c: bfb8 it lt - 801d20e: 4613 movlt r3, r2 - 801d210: b21b sxth r3, r3 - 801d212: b29a uxth r2, r3 - 801d214: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 - 801d218: b29b uxth r3, r3 - 801d21a: 4413 add r3, r2 - 801d21c: b29b uxth r3, r3 - 801d21e: b21b sxth r3, r3 - 801d220: f8a7 30e2 strh.w r3, [r7, #226] ; 0xe2 + 801d16e: f9b7 20e6 ldrsh.w r2, [r7, #230] ; 0xe6 + 801d172: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea + 801d176: 4293 cmp r3, r2 + 801d178: bfb8 it lt + 801d17a: 4613 movlt r3, r2 + 801d17c: b21b sxth r3, r3 + 801d17e: b29a uxth r2, r3 + 801d180: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 801d184: b29b uxth r3, r3 + 801d186: 4413 add r3, r2 + 801d188: b29b uxth r3, r3 + 801d18a: b21b sxth r3, r3 + 801d18c: f8a7 30e2 strh.w r3, [r7, #226] ; 0xe2 /*Get the union of `coords` and `clip`*/ /*`clip` is already truncated to the `draw_buf` size *in 'lv_refr_area' function*/ bool is_common = _lv_area_intersect(&blend_area, &blend_area, draw_ctx->clip_area); - 801d224: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d228: f5a3 7392 sub.w r3, r3, #292 ; 0x124 - 801d22c: 681b ldr r3, [r3, #0] - 801d22e: 689a ldr r2, [r3, #8] - 801d230: f107 01dc add.w r1, r7, #220 ; 0xdc - 801d234: f107 03dc add.w r3, r7, #220 ; 0xdc - 801d238: 4618 mov r0, r3 - 801d23a: f013 ff35 bl 80310a8 <_lv_area_intersect> - 801d23e: 4603 mov r3, r0 - 801d240: f887 3107 strb.w r3, [r7, #263] ; 0x107 + 801d190: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d194: f5a3 7392 sub.w r3, r3, #292 ; 0x124 + 801d198: 681b ldr r3, [r3, #0] + 801d19a: 689a ldr r2, [r3, #8] + 801d19c: f107 01dc add.w r1, r7, #220 ; 0xdc + 801d1a0: f107 03dc add.w r3, r7, #220 ; 0xdc + 801d1a4: 4618 mov r0, r3 + 801d1a6: f013 ff35 bl 8031014 <_lv_area_intersect> + 801d1aa: 4603 mov r3, r0 + 801d1ac: f887 3107 strb.w r3, [r7, #263] ; 0x107 if(is_common == false) return; - 801d244: f897 3107 ldrb.w r3, [r7, #263] ; 0x107 - 801d248: f083 0301 eor.w r3, r3, #1 - 801d24c: b2db uxtb r3, r3 - 801d24e: 2b00 cmp r3, #0 - 801d250: f040 8276 bne.w 801d740 + 801d1b0: f897 3107 ldrb.w r3, [r7, #263] ; 0x107 + 801d1b4: f083 0301 eor.w r3, r3, #1 + 801d1b8: b2db uxtb r3, r3 + 801d1ba: 2b00 cmp r3, #0 + 801d1bc: f040 8276 bne.w 801d6ac lv_draw_mask_line_param_t mask_left_param; lv_draw_mask_line_param_t mask_right_param; lv_draw_mask_line_param_t mask_top_param; lv_draw_mask_line_param_t mask_bottom_param; if(flat) { - 801d254: f897 3117 ldrb.w r3, [r7, #279] ; 0x117 - 801d258: 2b00 cmp r3, #0 - 801d25a: f000 8085 beq.w 801d368 + 801d1c0: f897 3117 ldrb.w r3, [r7, #279] ; 0x117 + 801d1c4: 2b00 cmp r3, #0 + 801d1c6: f000 8085 beq.w 801d2d4 if(xdiff > 0) { - 801d25e: f8d7 311c ldr.w r3, [r7, #284] ; 0x11c - 801d262: 2b00 cmp r3, #0 - 801d264: dd3e ble.n 801d2e4 + 801d1ca: f8d7 311c ldr.w r3, [r7, #284] ; 0x11c + 801d1ce: 2b00 cmp r3, #0 + 801d1d0: dd3e ble.n 801d250 lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0, - 801d266: f9b7 10e8 ldrsh.w r1, [r7, #232] ; 0xe8 - 801d26a: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea - 801d26e: b29a uxth r2, r3 - 801d270: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c - 801d274: b29b uxth r3, r3 - 801d276: 1ad3 subs r3, r2, r3 - 801d278: b29b uxth r3, r3 - 801d27a: b21c sxth r4, r3 - 801d27c: f9b7 50e4 ldrsh.w r5, [r7, #228] ; 0xe4 - 801d280: f9b7 30e6 ldrsh.w r3, [r7, #230] ; 0xe6 - 801d284: b29a uxth r2, r3 - 801d286: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c - 801d28a: b29b uxth r3, r3 - 801d28c: 1ad3 subs r3, r2, r3 - 801d28e: b29b uxth r3, r3 - 801d290: b21b sxth r3, r3 - 801d292: f107 00b0 add.w r0, r7, #176 ; 0xb0 - 801d296: 2200 movs r2, #0 - 801d298: 9201 str r2, [sp, #4] - 801d29a: 9300 str r3, [sp, #0] - 801d29c: 462b mov r3, r5 - 801d29e: 4622 mov r2, r4 - 801d2a0: f7f6 f85c bl 801335c + 801d1d2: f9b7 10e8 ldrsh.w r1, [r7, #232] ; 0xe8 + 801d1d6: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea + 801d1da: b29a uxth r2, r3 + 801d1dc: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c + 801d1e0: b29b uxth r3, r3 + 801d1e2: 1ad3 subs r3, r2, r3 + 801d1e4: b29b uxth r3, r3 + 801d1e6: b21c sxth r4, r3 + 801d1e8: f9b7 50e4 ldrsh.w r5, [r7, #228] ; 0xe4 + 801d1ec: f9b7 30e6 ldrsh.w r3, [r7, #230] ; 0xe6 + 801d1f0: b29a uxth r2, r3 + 801d1f2: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c + 801d1f6: b29b uxth r3, r3 + 801d1f8: 1ad3 subs r3, r2, r3 + 801d1fa: b29b uxth r3, r3 + 801d1fc: b21b sxth r3, r3 + 801d1fe: f107 00b0 add.w r0, r7, #176 ; 0xb0 + 801d202: 2200 movs r2, #0 + 801d204: 9201 str r2, [sp, #4] + 801d206: 9300 str r3, [sp, #0] + 801d208: 462b mov r3, r5 + 801d20a: 4622 mov r2, r4 + 801d20c: f7f6 f85c bl 80132c8 LV_DRAW_MASK_LINE_SIDE_LEFT); lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1, - 801d2a4: f9b7 10e8 ldrsh.w r1, [r7, #232] ; 0xe8 - 801d2a8: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea - 801d2ac: b29a uxth r2, r3 - 801d2ae: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 - 801d2b2: b29b uxth r3, r3 - 801d2b4: 4413 add r3, r2 - 801d2b6: b29b uxth r3, r3 - 801d2b8: b21c sxth r4, r3 - 801d2ba: f9b7 50e4 ldrsh.w r5, [r7, #228] ; 0xe4 - 801d2be: f9b7 30e6 ldrsh.w r3, [r7, #230] ; 0xe6 - 801d2c2: b29a uxth r2, r3 - 801d2c4: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 - 801d2c8: b29b uxth r3, r3 - 801d2ca: 4413 add r3, r2 - 801d2cc: b29b uxth r3, r3 - 801d2ce: b21b sxth r3, r3 - 801d2d0: f107 0084 add.w r0, r7, #132 ; 0x84 - 801d2d4: 2201 movs r2, #1 - 801d2d6: 9201 str r2, [sp, #4] - 801d2d8: 9300 str r3, [sp, #0] - 801d2da: 462b mov r3, r5 - 801d2dc: 4622 mov r2, r4 - 801d2de: f7f6 f83d bl 801335c - 801d2e2: e07f b.n 801d3e4 + 801d210: f9b7 10e8 ldrsh.w r1, [r7, #232] ; 0xe8 + 801d214: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea + 801d218: b29a uxth r2, r3 + 801d21a: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 + 801d21e: b29b uxth r3, r3 + 801d220: 4413 add r3, r2 + 801d222: b29b uxth r3, r3 + 801d224: b21c sxth r4, r3 + 801d226: f9b7 50e4 ldrsh.w r5, [r7, #228] ; 0xe4 + 801d22a: f9b7 30e6 ldrsh.w r3, [r7, #230] ; 0xe6 + 801d22e: b29a uxth r2, r3 + 801d230: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 + 801d234: b29b uxth r3, r3 + 801d236: 4413 add r3, r2 + 801d238: b29b uxth r3, r3 + 801d23a: b21b sxth r3, r3 + 801d23c: f107 0084 add.w r0, r7, #132 ; 0x84 + 801d240: 2201 movs r2, #1 + 801d242: 9201 str r2, [sp, #4] + 801d244: 9300 str r3, [sp, #0] + 801d246: 462b mov r3, r5 + 801d248: 4622 mov r2, r4 + 801d24a: f7f6 f83d bl 80132c8 + 801d24e: e07f b.n 801d350 LV_DRAW_MASK_LINE_SIDE_RIGHT); } else { lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1, - 801d2e4: f9b7 10e8 ldrsh.w r1, [r7, #232] ; 0xe8 - 801d2e8: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea - 801d2ec: b29a uxth r2, r3 - 801d2ee: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 - 801d2f2: b29b uxth r3, r3 - 801d2f4: 4413 add r3, r2 - 801d2f6: b29b uxth r3, r3 - 801d2f8: b21c sxth r4, r3 - 801d2fa: f9b7 50e4 ldrsh.w r5, [r7, #228] ; 0xe4 - 801d2fe: f9b7 30e6 ldrsh.w r3, [r7, #230] ; 0xe6 - 801d302: b29a uxth r2, r3 - 801d304: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 - 801d308: b29b uxth r3, r3 - 801d30a: 4413 add r3, r2 - 801d30c: b29b uxth r3, r3 - 801d30e: b21b sxth r3, r3 - 801d310: f107 00b0 add.w r0, r7, #176 ; 0xb0 - 801d314: 2200 movs r2, #0 - 801d316: 9201 str r2, [sp, #4] - 801d318: 9300 str r3, [sp, #0] - 801d31a: 462b mov r3, r5 - 801d31c: 4622 mov r2, r4 - 801d31e: f7f6 f81d bl 801335c + 801d250: f9b7 10e8 ldrsh.w r1, [r7, #232] ; 0xe8 + 801d254: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea + 801d258: b29a uxth r2, r3 + 801d25a: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 + 801d25e: b29b uxth r3, r3 + 801d260: 4413 add r3, r2 + 801d262: b29b uxth r3, r3 + 801d264: b21c sxth r4, r3 + 801d266: f9b7 50e4 ldrsh.w r5, [r7, #228] ; 0xe4 + 801d26a: f9b7 30e6 ldrsh.w r3, [r7, #230] ; 0xe6 + 801d26e: b29a uxth r2, r3 + 801d270: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 + 801d274: b29b uxth r3, r3 + 801d276: 4413 add r3, r2 + 801d278: b29b uxth r3, r3 + 801d27a: b21b sxth r3, r3 + 801d27c: f107 00b0 add.w r0, r7, #176 ; 0xb0 + 801d280: 2200 movs r2, #0 + 801d282: 9201 str r2, [sp, #4] + 801d284: 9300 str r3, [sp, #0] + 801d286: 462b mov r3, r5 + 801d288: 4622 mov r2, r4 + 801d28a: f7f6 f81d bl 80132c8 LV_DRAW_MASK_LINE_SIDE_LEFT); lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0, - 801d322: f9b7 10e8 ldrsh.w r1, [r7, #232] ; 0xe8 - 801d326: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea - 801d32a: b29a uxth r2, r3 - 801d32c: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c - 801d330: b29b uxth r3, r3 - 801d332: 1ad3 subs r3, r2, r3 - 801d334: b29b uxth r3, r3 - 801d336: b21c sxth r4, r3 - 801d338: f9b7 50e4 ldrsh.w r5, [r7, #228] ; 0xe4 - 801d33c: f9b7 30e6 ldrsh.w r3, [r7, #230] ; 0xe6 - 801d340: b29a uxth r2, r3 - 801d342: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c - 801d346: b29b uxth r3, r3 - 801d348: 1ad3 subs r3, r2, r3 - 801d34a: b29b uxth r3, r3 - 801d34c: b21b sxth r3, r3 - 801d34e: f107 0084 add.w r0, r7, #132 ; 0x84 - 801d352: 2201 movs r2, #1 - 801d354: 9201 str r2, [sp, #4] - 801d356: 9300 str r3, [sp, #0] - 801d358: 462b mov r3, r5 - 801d35a: 4622 mov r2, r4 - 801d35c: f7f5 fffe bl 801335c - 801d360: e040 b.n 801d3e4 - 801d362: bf00 nop - 801d364: 0806cb68 .word 0x0806cb68 + 801d28e: f9b7 10e8 ldrsh.w r1, [r7, #232] ; 0xe8 + 801d292: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea + 801d296: b29a uxth r2, r3 + 801d298: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c + 801d29c: b29b uxth r3, r3 + 801d29e: 1ad3 subs r3, r2, r3 + 801d2a0: b29b uxth r3, r3 + 801d2a2: b21c sxth r4, r3 + 801d2a4: f9b7 50e4 ldrsh.w r5, [r7, #228] ; 0xe4 + 801d2a8: f9b7 30e6 ldrsh.w r3, [r7, #230] ; 0xe6 + 801d2ac: b29a uxth r2, r3 + 801d2ae: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c + 801d2b2: b29b uxth r3, r3 + 801d2b4: 1ad3 subs r3, r2, r3 + 801d2b6: b29b uxth r3, r3 + 801d2b8: b21b sxth r3, r3 + 801d2ba: f107 0084 add.w r0, r7, #132 ; 0x84 + 801d2be: 2201 movs r2, #1 + 801d2c0: 9201 str r2, [sp, #4] + 801d2c2: 9300 str r3, [sp, #0] + 801d2c4: 462b mov r3, r5 + 801d2c6: 4622 mov r2, r4 + 801d2c8: f7f5 fffe bl 80132c8 + 801d2cc: e040 b.n 801d350 + 801d2ce: bf00 nop + 801d2d0: 0806cac0 .word 0x0806cac0 LV_DRAW_MASK_LINE_SIDE_RIGHT); } } else { lv_draw_mask_line_points_init(&mask_left_param, p1.x + w_half1, p1.y, p2.x + w_half1, p2.y, - 801d368: f9b7 30e8 ldrsh.w r3, [r7, #232] ; 0xe8 - 801d36c: b29a uxth r2, r3 - 801d36e: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 - 801d372: b29b uxth r3, r3 - 801d374: 4413 add r3, r2 - 801d376: b29b uxth r3, r3 - 801d378: b219 sxth r1, r3 - 801d37a: f9b7 40ea ldrsh.w r4, [r7, #234] ; 0xea - 801d37e: f9b7 30e4 ldrsh.w r3, [r7, #228] ; 0xe4 - 801d382: b29a uxth r2, r3 - 801d384: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 - 801d388: b29b uxth r3, r3 - 801d38a: 4413 add r3, r2 - 801d38c: b29b uxth r3, r3 - 801d38e: b21a sxth r2, r3 - 801d390: f9b7 30e6 ldrsh.w r3, [r7, #230] ; 0xe6 - 801d394: f107 00b0 add.w r0, r7, #176 ; 0xb0 - 801d398: 2500 movs r5, #0 - 801d39a: 9501 str r5, [sp, #4] - 801d39c: 9300 str r3, [sp, #0] - 801d39e: 4613 mov r3, r2 - 801d3a0: 4622 mov r2, r4 - 801d3a2: f7f5 ffdb bl 801335c + 801d2d4: f9b7 30e8 ldrsh.w r3, [r7, #232] ; 0xe8 + 801d2d8: b29a uxth r2, r3 + 801d2da: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 + 801d2de: b29b uxth r3, r3 + 801d2e0: 4413 add r3, r2 + 801d2e2: b29b uxth r3, r3 + 801d2e4: b219 sxth r1, r3 + 801d2e6: f9b7 40ea ldrsh.w r4, [r7, #234] ; 0xea + 801d2ea: f9b7 30e4 ldrsh.w r3, [r7, #228] ; 0xe4 + 801d2ee: b29a uxth r2, r3 + 801d2f0: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 + 801d2f4: b29b uxth r3, r3 + 801d2f6: 4413 add r3, r2 + 801d2f8: b29b uxth r3, r3 + 801d2fa: b21a sxth r2, r3 + 801d2fc: f9b7 30e6 ldrsh.w r3, [r7, #230] ; 0xe6 + 801d300: f107 00b0 add.w r0, r7, #176 ; 0xb0 + 801d304: 2500 movs r5, #0 + 801d306: 9501 str r5, [sp, #4] + 801d308: 9300 str r3, [sp, #0] + 801d30a: 4613 mov r3, r2 + 801d30c: 4622 mov r2, r4 + 801d30e: f7f5 ffdb bl 80132c8 LV_DRAW_MASK_LINE_SIDE_LEFT); lv_draw_mask_line_points_init(&mask_right_param, p1.x - w_half0, p1.y, p2.x - w_half0, p2.y, - 801d3a6: f9b7 30e8 ldrsh.w r3, [r7, #232] ; 0xe8 - 801d3aa: b29a uxth r2, r3 - 801d3ac: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c - 801d3b0: b29b uxth r3, r3 - 801d3b2: 1ad3 subs r3, r2, r3 - 801d3b4: b29b uxth r3, r3 - 801d3b6: b219 sxth r1, r3 - 801d3b8: f9b7 40ea ldrsh.w r4, [r7, #234] ; 0xea - 801d3bc: f9b7 30e4 ldrsh.w r3, [r7, #228] ; 0xe4 - 801d3c0: b29a uxth r2, r3 - 801d3c2: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c - 801d3c6: b29b uxth r3, r3 - 801d3c8: 1ad3 subs r3, r2, r3 - 801d3ca: b29b uxth r3, r3 - 801d3cc: b21a sxth r2, r3 - 801d3ce: f9b7 30e6 ldrsh.w r3, [r7, #230] ; 0xe6 - 801d3d2: f107 0084 add.w r0, r7, #132 ; 0x84 - 801d3d6: 2501 movs r5, #1 - 801d3d8: 9501 str r5, [sp, #4] - 801d3da: 9300 str r3, [sp, #0] - 801d3dc: 4613 mov r3, r2 - 801d3de: 4622 mov r2, r4 - 801d3e0: f7f5 ffbc bl 801335c + 801d312: f9b7 30e8 ldrsh.w r3, [r7, #232] ; 0xe8 + 801d316: b29a uxth r2, r3 + 801d318: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c + 801d31c: b29b uxth r3, r3 + 801d31e: 1ad3 subs r3, r2, r3 + 801d320: b29b uxth r3, r3 + 801d322: b219 sxth r1, r3 + 801d324: f9b7 40ea ldrsh.w r4, [r7, #234] ; 0xea + 801d328: f9b7 30e4 ldrsh.w r3, [r7, #228] ; 0xe4 + 801d32c: b29a uxth r2, r3 + 801d32e: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c + 801d332: b29b uxth r3, r3 + 801d334: 1ad3 subs r3, r2, r3 + 801d336: b29b uxth r3, r3 + 801d338: b21a sxth r2, r3 + 801d33a: f9b7 30e6 ldrsh.w r3, [r7, #230] ; 0xe6 + 801d33e: f107 0084 add.w r0, r7, #132 ; 0x84 + 801d342: 2501 movs r5, #1 + 801d344: 9501 str r5, [sp, #4] + 801d346: 9300 str r3, [sp, #0] + 801d348: 4613 mov r3, r2 + 801d34a: 4622 mov r2, r4 + 801d34c: f7f5 ffbc bl 80132c8 LV_DRAW_MASK_LINE_SIDE_RIGHT); } /*Use the normal vector for the endings*/ int16_t mask_left_id = lv_draw_mask_add(&mask_left_param, NULL); - 801d3e4: f107 03b0 add.w r3, r7, #176 ; 0xb0 - 801d3e8: 2100 movs r1, #0 - 801d3ea: 4618 mov r0, r3 - 801d3ec: f7f5 fe2a bl 8013044 - 801d3f0: 4603 mov r3, r0 - 801d3f2: f8a7 3104 strh.w r3, [r7, #260] ; 0x104 + 801d350: f107 03b0 add.w r3, r7, #176 ; 0xb0 + 801d354: 2100 movs r1, #0 + 801d356: 4618 mov r0, r3 + 801d358: f7f5 fe2a bl 8012fb0 + 801d35c: 4603 mov r3, r0 + 801d35e: f8a7 3104 strh.w r3, [r7, #260] ; 0x104 int16_t mask_right_id = lv_draw_mask_add(&mask_right_param, NULL); - 801d3f6: f107 0384 add.w r3, r7, #132 ; 0x84 - 801d3fa: 2100 movs r1, #0 - 801d3fc: 4618 mov r0, r3 - 801d3fe: f7f5 fe21 bl 8013044 - 801d402: 4603 mov r3, r0 - 801d404: f8a7 3102 strh.w r3, [r7, #258] ; 0x102 + 801d362: f107 0384 add.w r3, r7, #132 ; 0x84 + 801d366: 2100 movs r1, #0 + 801d368: 4618 mov r0, r3 + 801d36a: f7f5 fe21 bl 8012fb0 + 801d36e: 4603 mov r3, r0 + 801d370: f8a7 3102 strh.w r3, [r7, #258] ; 0x102 int16_t mask_top_id = LV_MASK_ID_INV; - 801d408: f64f 73ff movw r3, #65535 ; 0xffff - 801d40c: f8a7 312a strh.w r3, [r7, #298] ; 0x12a + 801d374: f64f 73ff movw r3, #65535 ; 0xffff + 801d378: f8a7 312a strh.w r3, [r7, #298] ; 0x12a int16_t mask_bottom_id = LV_MASK_ID_INV; - 801d410: f64f 73ff movw r3, #65535 ; 0xffff - 801d414: f8a7 3128 strh.w r3, [r7, #296] ; 0x128 + 801d37c: f64f 73ff movw r3, #65535 ; 0xffff + 801d380: f8a7 3128 strh.w r3, [r7, #296] ; 0x128 if(!dsc->raw_end) { - 801d418: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d41c: f5a3 7394 sub.w r3, r3, #296 ; 0x128 - 801d420: 681b ldr r3, [r3, #0] - 801d422: 7a5b ldrb r3, [r3, #9] - 801d424: f003 0310 and.w r3, r3, #16 - 801d428: b2db uxtb r3, r3 - 801d42a: 2b00 cmp r3, #0 - 801d42c: d14f bne.n 801d4ce + 801d384: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d388: f5a3 7394 sub.w r3, r3, #296 ; 0x128 + 801d38c: 681b ldr r3, [r3, #0] + 801d38e: 7a5b ldrb r3, [r3, #9] + 801d390: f003 0310 and.w r3, r3, #16 + 801d394: b2db uxtb r3, r3 + 801d396: 2b00 cmp r3, #0 + 801d398: d14f bne.n 801d43a lv_draw_mask_line_points_init(&mask_top_param, p1.x, p1.y, p1.x - ydiff, p1.y + xdiff, LV_DRAW_MASK_LINE_SIDE_BOTTOM); - 801d42e: f9b7 10e8 ldrsh.w r1, [r7, #232] ; 0xe8 - 801d432: f9b7 40ea ldrsh.w r4, [r7, #234] ; 0xea - 801d436: f9b7 30e8 ldrsh.w r3, [r7, #232] ; 0xe8 - 801d43a: b29a uxth r2, r3 - 801d43c: f8d7 3118 ldr.w r3, [r7, #280] ; 0x118 - 801d440: b29b uxth r3, r3 - 801d442: 1ad3 subs r3, r2, r3 - 801d444: b29b uxth r3, r3 - 801d446: b21d sxth r5, r3 - 801d448: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea - 801d44c: b29a uxth r2, r3 - 801d44e: f8d7 311c ldr.w r3, [r7, #284] ; 0x11c - 801d452: b29b uxth r3, r3 - 801d454: 4413 add r3, r2 - 801d456: b29b uxth r3, r3 - 801d458: b21b sxth r3, r3 - 801d45a: f107 0058 add.w r0, r7, #88 ; 0x58 - 801d45e: 2203 movs r2, #3 - 801d460: 9201 str r2, [sp, #4] - 801d462: 9300 str r3, [sp, #0] - 801d464: 462b mov r3, r5 - 801d466: 4622 mov r2, r4 - 801d468: f7f5 ff78 bl 801335c + 801d39a: f9b7 10e8 ldrsh.w r1, [r7, #232] ; 0xe8 + 801d39e: f9b7 40ea ldrsh.w r4, [r7, #234] ; 0xea + 801d3a2: f9b7 30e8 ldrsh.w r3, [r7, #232] ; 0xe8 + 801d3a6: b29a uxth r2, r3 + 801d3a8: f8d7 3118 ldr.w r3, [r7, #280] ; 0x118 + 801d3ac: b29b uxth r3, r3 + 801d3ae: 1ad3 subs r3, r2, r3 + 801d3b0: b29b uxth r3, r3 + 801d3b2: b21d sxth r5, r3 + 801d3b4: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea + 801d3b8: b29a uxth r2, r3 + 801d3ba: f8d7 311c ldr.w r3, [r7, #284] ; 0x11c + 801d3be: b29b uxth r3, r3 + 801d3c0: 4413 add r3, r2 + 801d3c2: b29b uxth r3, r3 + 801d3c4: b21b sxth r3, r3 + 801d3c6: f107 0058 add.w r0, r7, #88 ; 0x58 + 801d3ca: 2203 movs r2, #3 + 801d3cc: 9201 str r2, [sp, #4] + 801d3ce: 9300 str r3, [sp, #0] + 801d3d0: 462b mov r3, r5 + 801d3d2: 4622 mov r2, r4 + 801d3d4: f7f5 ff78 bl 80132c8 lv_draw_mask_line_points_init(&mask_bottom_param, p2.x, p2.y, p2.x - ydiff, p2.y + xdiff, LV_DRAW_MASK_LINE_SIDE_TOP); - 801d46c: f9b7 10e4 ldrsh.w r1, [r7, #228] ; 0xe4 - 801d470: f9b7 40e6 ldrsh.w r4, [r7, #230] ; 0xe6 - 801d474: f9b7 30e4 ldrsh.w r3, [r7, #228] ; 0xe4 - 801d478: b29a uxth r2, r3 - 801d47a: f8d7 3118 ldr.w r3, [r7, #280] ; 0x118 - 801d47e: b29b uxth r3, r3 - 801d480: 1ad3 subs r3, r2, r3 - 801d482: b29b uxth r3, r3 - 801d484: b21d sxth r5, r3 - 801d486: f9b7 30e6 ldrsh.w r3, [r7, #230] ; 0xe6 - 801d48a: b29a uxth r2, r3 - 801d48c: f8d7 311c ldr.w r3, [r7, #284] ; 0x11c - 801d490: b29b uxth r3, r3 - 801d492: 4413 add r3, r2 - 801d494: b29b uxth r3, r3 - 801d496: b21b sxth r3, r3 - 801d498: f107 002c add.w r0, r7, #44 ; 0x2c - 801d49c: 2202 movs r2, #2 - 801d49e: 9201 str r2, [sp, #4] - 801d4a0: 9300 str r3, [sp, #0] - 801d4a2: 462b mov r3, r5 - 801d4a4: 4622 mov r2, r4 - 801d4a6: f7f5 ff59 bl 801335c + 801d3d8: f9b7 10e4 ldrsh.w r1, [r7, #228] ; 0xe4 + 801d3dc: f9b7 40e6 ldrsh.w r4, [r7, #230] ; 0xe6 + 801d3e0: f9b7 30e4 ldrsh.w r3, [r7, #228] ; 0xe4 + 801d3e4: b29a uxth r2, r3 + 801d3e6: f8d7 3118 ldr.w r3, [r7, #280] ; 0x118 + 801d3ea: b29b uxth r3, r3 + 801d3ec: 1ad3 subs r3, r2, r3 + 801d3ee: b29b uxth r3, r3 + 801d3f0: b21d sxth r5, r3 + 801d3f2: f9b7 30e6 ldrsh.w r3, [r7, #230] ; 0xe6 + 801d3f6: b29a uxth r2, r3 + 801d3f8: f8d7 311c ldr.w r3, [r7, #284] ; 0x11c + 801d3fc: b29b uxth r3, r3 + 801d3fe: 4413 add r3, r2 + 801d400: b29b uxth r3, r3 + 801d402: b21b sxth r3, r3 + 801d404: f107 002c add.w r0, r7, #44 ; 0x2c + 801d408: 2202 movs r2, #2 + 801d40a: 9201 str r2, [sp, #4] + 801d40c: 9300 str r3, [sp, #0] + 801d40e: 462b mov r3, r5 + 801d410: 4622 mov r2, r4 + 801d412: f7f5 ff59 bl 80132c8 mask_top_id = lv_draw_mask_add(&mask_top_param, NULL); - 801d4aa: f107 0358 add.w r3, r7, #88 ; 0x58 - 801d4ae: 2100 movs r1, #0 - 801d4b0: 4618 mov r0, r3 - 801d4b2: f7f5 fdc7 bl 8013044 - 801d4b6: 4603 mov r3, r0 - 801d4b8: f8a7 312a strh.w r3, [r7, #298] ; 0x12a + 801d416: f107 0358 add.w r3, r7, #88 ; 0x58 + 801d41a: 2100 movs r1, #0 + 801d41c: 4618 mov r0, r3 + 801d41e: f7f5 fdc7 bl 8012fb0 + 801d422: 4603 mov r3, r0 + 801d424: f8a7 312a strh.w r3, [r7, #298] ; 0x12a mask_bottom_id = lv_draw_mask_add(&mask_bottom_param, NULL); - 801d4bc: f107 032c add.w r3, r7, #44 ; 0x2c - 801d4c0: 2100 movs r1, #0 - 801d4c2: 4618 mov r0, r3 - 801d4c4: f7f5 fdbe bl 8013044 - 801d4c8: 4603 mov r3, r0 - 801d4ca: f8a7 3128 strh.w r3, [r7, #296] ; 0x128 + 801d428: f107 032c add.w r3, r7, #44 ; 0x2c + 801d42c: 2100 movs r1, #0 + 801d42e: 4618 mov r0, r3 + 801d430: f7f5 fdbe bl 8012fb0 + 801d434: 4603 mov r3, r0 + 801d436: f8a7 3128 strh.w r3, [r7, #296] ; 0x128 } /*The real draw area is around the line. *It's easy to calculate with steep lines, but the area can be very wide with very flat lines. *So deal with it only with steep lines.*/ int32_t draw_area_w = lv_area_get_width(&blend_area); - 801d4ce: f107 03dc add.w r3, r7, #220 ; 0xdc - 801d4d2: 4618 mov r0, r3 - 801d4d4: f7ff f958 bl 801c788 - 801d4d8: 4603 mov r3, r0 - 801d4da: f8c7 30fc str.w r3, [r7, #252] ; 0xfc + 801d43a: f107 03dc add.w r3, r7, #220 ; 0xdc + 801d43e: 4618 mov r0, r3 + 801d440: f7ff f958 bl 801c6f4 + 801d444: 4603 mov r3, r0 + 801d446: f8c7 30fc str.w r3, [r7, #252] ; 0xfc /*Draw the background line by line*/ int32_t h; uint32_t hor_res = (uint32_t)lv_disp_get_hor_res(_lv_refr_get_disp_refreshing()); - 801d4de: f7f2 fc37 bl 800fd50 <_lv_refr_get_disp_refreshing> - 801d4e2: 4603 mov r3, r0 - 801d4e4: 4618 mov r0, r3 - 801d4e6: f012 fffb bl 80304e0 - 801d4ea: 4603 mov r3, r0 - 801d4ec: f8c7 30f8 str.w r3, [r7, #248] ; 0xf8 + 801d44a: f7f2 fc37 bl 800fcbc <_lv_refr_get_disp_refreshing> + 801d44e: 4603 mov r3, r0 + 801d450: 4618 mov r0, r3 + 801d452: f012 fffb bl 803044c + 801d456: 4603 mov r3, r0 + 801d458: f8c7 30f8 str.w r3, [r7, #248] ; 0xf8 size_t mask_buf_size = LV_MIN(lv_area_get_size(&blend_area), hor_res); - 801d4f0: f107 03dc add.w r3, r7, #220 ; 0xdc - 801d4f4: 4618 mov r0, r3 - 801d4f6: f013 fd4d bl 8030f94 - 801d4fa: 4602 mov r2, r0 - 801d4fc: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 - 801d500: 4293 cmp r3, r2 - 801d502: d906 bls.n 801d512 - 801d504: f107 03dc add.w r3, r7, #220 ; 0xdc - 801d508: 4618 mov r0, r3 - 801d50a: f013 fd43 bl 8030f94 - 801d50e: 4603 mov r3, r0 - 801d510: e001 b.n 801d516 - 801d512: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 - 801d516: f8c7 30f4 str.w r3, [r7, #244] ; 0xf4 + 801d45c: f107 03dc add.w r3, r7, #220 ; 0xdc + 801d460: 4618 mov r0, r3 + 801d462: f013 fd4d bl 8030f00 + 801d466: 4602 mov r2, r0 + 801d468: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 + 801d46c: 4293 cmp r3, r2 + 801d46e: d906 bls.n 801d47e + 801d470: f107 03dc add.w r3, r7, #220 ; 0xdc + 801d474: 4618 mov r0, r3 + 801d476: f013 fd43 bl 8030f00 + 801d47a: 4603 mov r3, r0 + 801d47c: e001 b.n 801d482 + 801d47e: f8d7 30f8 ldr.w r3, [r7, #248] ; 0xf8 + 801d482: f8c7 30f4 str.w r3, [r7, #244] ; 0xf4 lv_opa_t * mask_buf = lv_mem_buf_get(mask_buf_size); - 801d51a: f8d7 00f4 ldr.w r0, [r7, #244] ; 0xf4 - 801d51e: f015 fa6f bl 8032a00 - 801d522: f8c7 00f0 str.w r0, [r7, #240] ; 0xf0 + 801d486: f8d7 00f4 ldr.w r0, [r7, #244] ; 0xf4 + 801d48a: f015 fa6f bl 803296c + 801d48e: f8c7 00f0 str.w r0, [r7, #240] ; 0xf0 lv_coord_t y2 = blend_area.y2; - 801d526: f8b7 30e2 ldrh.w r3, [r7, #226] ; 0xe2 - 801d52a: f8a7 30ee strh.w r3, [r7, #238] ; 0xee + 801d492: f8b7 30e2 ldrh.w r3, [r7, #226] ; 0xe2 + 801d496: f8a7 30ee strh.w r3, [r7, #238] ; 0xee blend_area.y2 = blend_area.y1; - 801d52e: f9b7 30de ldrsh.w r3, [r7, #222] ; 0xde - 801d532: f8a7 30e2 strh.w r3, [r7, #226] ; 0xe2 + 801d49a: f9b7 30de ldrsh.w r3, [r7, #222] ; 0xde + 801d49e: f8a7 30e2 strh.w r3, [r7, #226] ; 0xe2 uint32_t mask_p = 0; - 801d536: 2300 movs r3, #0 - 801d538: f8c7 3120 str.w r3, [r7, #288] ; 0x120 + 801d4a2: 2300 movs r3, #0 + 801d4a4: f8c7 3120 str.w r3, [r7, #288] ; 0x120 lv_memset_ff(mask_buf, mask_buf_size); - 801d53c: f8d7 10f4 ldr.w r1, [r7, #244] ; 0xf4 - 801d540: f8d7 00f0 ldr.w r0, [r7, #240] ; 0xf0 - 801d544: f015 fe84 bl 8033250 + 801d4a8: f8d7 10f4 ldr.w r1, [r7, #244] ; 0xf4 + 801d4ac: f8d7 00f0 ldr.w r0, [r7, #240] ; 0xf0 + 801d4b0: f015 fe84 bl 80331bc lv_draw_sw_blend_dsc_t blend_dsc; lv_memset_00(&blend_dsc, sizeof(blend_dsc)); - 801d548: f107 0310 add.w r3, r7, #16 - 801d54c: 211c movs r1, #28 - 801d54e: 4618 mov r0, r3 - 801d550: f015 fdfe bl 8033150 + 801d4b4: f107 0310 add.w r3, r7, #16 + 801d4b8: 211c movs r1, #28 + 801d4ba: 4618 mov r0, r3 + 801d4bc: f015 fdfe bl 80330bc blend_dsc.blend_area = &blend_area; - 801d554: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d558: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 801d55c: f107 02dc add.w r2, r7, #220 ; 0xdc - 801d560: 601a str r2, [r3, #0] + 801d4c0: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d4c4: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 801d4c8: f107 02dc add.w r2, r7, #220 ; 0xdc + 801d4cc: 601a str r2, [r3, #0] blend_dsc.color = dsc->color; - 801d562: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d566: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 801d56a: f507 7298 add.w r2, r7, #304 ; 0x130 - 801d56e: f5a2 7294 sub.w r2, r2, #296 ; 0x128 - 801d572: 6812 ldr r2, [r2, #0] - 801d574: 8812 ldrh r2, [r2, #0] - 801d576: 811a strh r2, [r3, #8] + 801d4ce: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d4d2: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 801d4d6: f507 7298 add.w r2, r7, #304 ; 0x130 + 801d4da: f5a2 7294 sub.w r2, r2, #296 ; 0x128 + 801d4de: 6812 ldr r2, [r2, #0] + 801d4e0: 8812 ldrh r2, [r2, #0] + 801d4e2: 811a strh r2, [r3, #8] blend_dsc.opa = dsc->opa; - 801d578: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d57c: f5a3 7394 sub.w r3, r3, #296 ; 0x128 - 801d580: 681b ldr r3, [r3, #0] - 801d582: 7a1a ldrb r2, [r3, #8] - 801d584: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d588: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 801d58c: 761a strb r2, [r3, #24] + 801d4e4: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d4e8: f5a3 7394 sub.w r3, r3, #296 ; 0x128 + 801d4ec: 681b ldr r3, [r3, #0] + 801d4ee: 7a1a ldrb r2, [r3, #8] + 801d4f0: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d4f4: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 801d4f8: 761a strb r2, [r3, #24] blend_dsc.mask_buf = mask_buf; - 801d58e: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d592: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 801d596: f8d7 20f0 ldr.w r2, [r7, #240] ; 0xf0 - 801d59a: 60da str r2, [r3, #12] + 801d4fa: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d4fe: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 801d502: f8d7 20f0 ldr.w r2, [r7, #240] ; 0xf0 + 801d506: 60da str r2, [r3, #12] blend_dsc.mask_area = &blend_area; - 801d59c: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d5a0: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 801d5a4: f107 02dc add.w r2, r7, #220 ; 0xdc - 801d5a8: 615a str r2, [r3, #20] + 801d508: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d50c: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 801d510: f107 02dc add.w r2, r7, #220 ; 0xdc + 801d514: 615a str r2, [r3, #20] /*Fill the first row with 'color'*/ for(h = blend_area.y1; h <= y2; h++) { - 801d5aa: f9b7 30de ldrsh.w r3, [r7, #222] ; 0xde - 801d5ae: f8c7 3124 str.w r3, [r7, #292] ; 0x124 - 801d5b2: e06a b.n 801d68a + 801d516: f9b7 30de ldrsh.w r3, [r7, #222] ; 0xde + 801d51a: f8c7 3124 str.w r3, [r7, #292] ; 0x124 + 801d51e: e06a b.n 801d5f6 blend_dsc.mask_res = lv_draw_mask_apply(&mask_buf[mask_p], blend_area.x1, h, draw_area_w); - 801d5b4: f8d7 20f0 ldr.w r2, [r7, #240] ; 0xf0 - 801d5b8: f8d7 3120 ldr.w r3, [r7, #288] ; 0x120 - 801d5bc: 18d0 adds r0, r2, r3 - 801d5be: f9b7 10dc ldrsh.w r1, [r7, #220] ; 0xdc - 801d5c2: f8d7 3124 ldr.w r3, [r7, #292] ; 0x124 - 801d5c6: b21a sxth r2, r3 - 801d5c8: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 801d5cc: b21b sxth r3, r3 - 801d5ce: f7f5 fd69 bl 80130a4 - 801d5d2: 4603 mov r3, r0 - 801d5d4: 461a mov r2, r3 - 801d5d6: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d5da: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 801d5de: 741a strb r2, [r3, #16] + 801d520: f8d7 20f0 ldr.w r2, [r7, #240] ; 0xf0 + 801d524: f8d7 3120 ldr.w r3, [r7, #288] ; 0x120 + 801d528: 18d0 adds r0, r2, r3 + 801d52a: f9b7 10dc ldrsh.w r1, [r7, #220] ; 0xdc + 801d52e: f8d7 3124 ldr.w r3, [r7, #292] ; 0x124 + 801d532: b21a sxth r2, r3 + 801d534: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 801d538: b21b sxth r3, r3 + 801d53a: f7f5 fd69 bl 8013010 + 801d53e: 4603 mov r3, r0 + 801d540: 461a mov r2, r3 + 801d542: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d546: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 801d54a: 741a strb r2, [r3, #16] if(blend_dsc.mask_res == LV_DRAW_MASK_RES_TRANSP) { - 801d5e0: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d5e4: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 801d5e8: 7c1b ldrb r3, [r3, #16] - 801d5ea: 2b00 cmp r3, #0 - 801d5ec: d10a bne.n 801d604 + 801d54c: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d550: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 801d554: 7c1b ldrb r3, [r3, #16] + 801d556: 2b00 cmp r3, #0 + 801d558: d10a bne.n 801d570 lv_memset_00(&mask_buf[mask_p], draw_area_w); - 801d5ee: f8d7 20f0 ldr.w r2, [r7, #240] ; 0xf0 - 801d5f2: f8d7 3120 ldr.w r3, [r7, #288] ; 0x120 - 801d5f6: 4413 add r3, r2 - 801d5f8: f8d7 20fc ldr.w r2, [r7, #252] ; 0xfc - 801d5fc: 4611 mov r1, r2 - 801d5fe: 4618 mov r0, r3 - 801d600: f015 fda6 bl 8033150 + 801d55a: f8d7 20f0 ldr.w r2, [r7, #240] ; 0xf0 + 801d55e: f8d7 3120 ldr.w r3, [r7, #288] ; 0x120 + 801d562: 4413 add r3, r2 + 801d564: f8d7 20fc ldr.w r2, [r7, #252] ; 0xfc + 801d568: 4611 mov r1, r2 + 801d56a: 4618 mov r0, r3 + 801d56c: f015 fda6 bl 80330bc } mask_p += draw_area_w; - 801d604: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 801d608: f8d7 2120 ldr.w r2, [r7, #288] ; 0x120 - 801d60c: 4413 add r3, r2 - 801d60e: f8c7 3120 str.w r3, [r7, #288] ; 0x120 + 801d570: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 801d574: f8d7 2120 ldr.w r2, [r7, #288] ; 0x120 + 801d578: 4413 add r3, r2 + 801d57a: f8c7 3120 str.w r3, [r7, #288] ; 0x120 if((uint32_t) mask_p + draw_area_w < mask_buf_size) { - 801d612: f8d7 20fc ldr.w r2, [r7, #252] ; 0xfc - 801d616: f8d7 3120 ldr.w r3, [r7, #288] ; 0x120 - 801d61a: 4413 add r3, r2 - 801d61c: f8d7 20f4 ldr.w r2, [r7, #244] ; 0xf4 - 801d620: 429a cmp r2, r3 - 801d622: d908 bls.n 801d636 + 801d57e: f8d7 20fc ldr.w r2, [r7, #252] ; 0xfc + 801d582: f8d7 3120 ldr.w r3, [r7, #288] ; 0x120 + 801d586: 4413 add r3, r2 + 801d588: f8d7 20f4 ldr.w r2, [r7, #244] ; 0xf4 + 801d58c: 429a cmp r2, r3 + 801d58e: d908 bls.n 801d5a2 blend_area.y2 ++; - 801d624: f9b7 30e2 ldrsh.w r3, [r7, #226] ; 0xe2 - 801d628: b29b uxth r3, r3 - 801d62a: 3301 adds r3, #1 - 801d62c: b29b uxth r3, r3 - 801d62e: b21b sxth r3, r3 - 801d630: f8a7 30e2 strh.w r3, [r7, #226] ; 0xe2 - 801d634: e024 b.n 801d680 + 801d590: f9b7 30e2 ldrsh.w r3, [r7, #226] ; 0xe2 + 801d594: b29b uxth r3, r3 + 801d596: 3301 adds r3, #1 + 801d598: b29b uxth r3, r3 + 801d59a: b21b sxth r3, r3 + 801d59c: f8a7 30e2 strh.w r3, [r7, #226] ; 0xe2 + 801d5a0: e024 b.n 801d5ec } else { blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801d636: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d63a: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 801d63e: 2202 movs r2, #2 - 801d640: 741a strb r2, [r3, #16] + 801d5a2: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d5a6: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 801d5aa: 2202 movs r2, #2 + 801d5ac: 741a strb r2, [r3, #16] lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801d642: f107 0210 add.w r2, r7, #16 - 801d646: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d64a: f5a3 7392 sub.w r3, r3, #292 ; 0x124 - 801d64e: 4611 mov r1, r2 - 801d650: 6818 ldr r0, [r3, #0] - 801d652: f7fc fa1e bl 8019a92 + 801d5ae: f107 0210 add.w r2, r7, #16 + 801d5b2: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d5b6: f5a3 7392 sub.w r3, r3, #292 ; 0x124 + 801d5ba: 4611 mov r1, r2 + 801d5bc: 6818 ldr r0, [r3, #0] + 801d5be: f7fc fa1e bl 80199fe blend_area.y1 = blend_area.y2 + 1; - 801d656: f9b7 30e2 ldrsh.w r3, [r7, #226] ; 0xe2 - 801d65a: b29b uxth r3, r3 - 801d65c: 3301 adds r3, #1 - 801d65e: b29b uxth r3, r3 - 801d660: b21b sxth r3, r3 - 801d662: f8a7 30de strh.w r3, [r7, #222] ; 0xde + 801d5c2: f9b7 30e2 ldrsh.w r3, [r7, #226] ; 0xe2 + 801d5c6: b29b uxth r3, r3 + 801d5c8: 3301 adds r3, #1 + 801d5ca: b29b uxth r3, r3 + 801d5cc: b21b sxth r3, r3 + 801d5ce: f8a7 30de strh.w r3, [r7, #222] ; 0xde blend_area.y2 = blend_area.y1; - 801d666: f9b7 30de ldrsh.w r3, [r7, #222] ; 0xde - 801d66a: f8a7 30e2 strh.w r3, [r7, #226] ; 0xe2 + 801d5d2: f9b7 30de ldrsh.w r3, [r7, #222] ; 0xde + 801d5d6: f8a7 30e2 strh.w r3, [r7, #226] ; 0xe2 mask_p = 0; - 801d66e: 2300 movs r3, #0 - 801d670: f8c7 3120 str.w r3, [r7, #288] ; 0x120 + 801d5da: 2300 movs r3, #0 + 801d5dc: f8c7 3120 str.w r3, [r7, #288] ; 0x120 lv_memset_ff(mask_buf, mask_buf_size); - 801d674: f8d7 10f4 ldr.w r1, [r7, #244] ; 0xf4 - 801d678: f8d7 00f0 ldr.w r0, [r7, #240] ; 0xf0 - 801d67c: f015 fde8 bl 8033250 + 801d5e0: f8d7 10f4 ldr.w r1, [r7, #244] ; 0xf4 + 801d5e4: f8d7 00f0 ldr.w r0, [r7, #240] ; 0xf0 + 801d5e8: f015 fde8 bl 80331bc for(h = blend_area.y1; h <= y2; h++) { - 801d680: f8d7 3124 ldr.w r3, [r7, #292] ; 0x124 - 801d684: 3301 adds r3, #1 - 801d686: f8c7 3124 str.w r3, [r7, #292] ; 0x124 - 801d68a: f9b7 30ee ldrsh.w r3, [r7, #238] ; 0xee - 801d68e: f8d7 2124 ldr.w r2, [r7, #292] ; 0x124 - 801d692: 429a cmp r2, r3 - 801d694: dd8e ble.n 801d5b4 + 801d5ec: f8d7 3124 ldr.w r3, [r7, #292] ; 0x124 + 801d5f0: 3301 adds r3, #1 + 801d5f2: f8c7 3124 str.w r3, [r7, #292] ; 0x124 + 801d5f6: f9b7 30ee ldrsh.w r3, [r7, #238] ; 0xee + 801d5fa: f8d7 2124 ldr.w r2, [r7, #292] ; 0x124 + 801d5fe: 429a cmp r2, r3 + 801d600: dd8e ble.n 801d520 } } /*Flush the last part*/ if(blend_area.y1 != blend_area.y2) { - 801d696: f9b7 20de ldrsh.w r2, [r7, #222] ; 0xde - 801d69a: f9b7 30e2 ldrsh.w r3, [r7, #226] ; 0xe2 - 801d69e: 429a cmp r2, r3 - 801d6a0: d017 beq.n 801d6d2 + 801d602: f9b7 20de ldrsh.w r2, [r7, #222] ; 0xde + 801d606: f9b7 30e2 ldrsh.w r3, [r7, #226] ; 0xe2 + 801d60a: 429a cmp r2, r3 + 801d60c: d017 beq.n 801d63e blend_area.y2--; - 801d6a2: f9b7 30e2 ldrsh.w r3, [r7, #226] ; 0xe2 - 801d6a6: b29b uxth r3, r3 - 801d6a8: 3b01 subs r3, #1 - 801d6aa: b29b uxth r3, r3 - 801d6ac: b21b sxth r3, r3 - 801d6ae: f8a7 30e2 strh.w r3, [r7, #226] ; 0xe2 + 801d60e: f9b7 30e2 ldrsh.w r3, [r7, #226] ; 0xe2 + 801d612: b29b uxth r3, r3 + 801d614: 3b01 subs r3, #1 + 801d616: b29b uxth r3, r3 + 801d618: b21b sxth r3, r3 + 801d61a: f8a7 30e2 strh.w r3, [r7, #226] ; 0xe2 blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801d6b2: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d6b6: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 801d6ba: 2202 movs r2, #2 - 801d6bc: 741a strb r2, [r3, #16] + 801d61e: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d622: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 801d626: 2202 movs r2, #2 + 801d628: 741a strb r2, [r3, #16] lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801d6be: f107 0210 add.w r2, r7, #16 - 801d6c2: f507 7398 add.w r3, r7, #304 ; 0x130 - 801d6c6: f5a3 7392 sub.w r3, r3, #292 ; 0x124 - 801d6ca: 4611 mov r1, r2 - 801d6cc: 6818 ldr r0, [r3, #0] - 801d6ce: f7fc f9e0 bl 8019a92 + 801d62a: f107 0210 add.w r2, r7, #16 + 801d62e: f507 7398 add.w r3, r7, #304 ; 0x130 + 801d632: f5a3 7392 sub.w r3, r3, #292 ; 0x124 + 801d636: 4611 mov r1, r2 + 801d638: 6818 ldr r0, [r3, #0] + 801d63a: f7fc f9e0 bl 80199fe } lv_mem_buf_release(mask_buf); - 801d6d2: f8d7 00f0 ldr.w r0, [r7, #240] ; 0xf0 - 801d6d6: f015 fa3f bl 8032b58 + 801d63e: f8d7 00f0 ldr.w r0, [r7, #240] ; 0xf0 + 801d642: f015 fa3f bl 8032ac4 lv_draw_mask_free_param(&mask_left_param); - 801d6da: f107 03b0 add.w r3, r7, #176 ; 0xb0 - 801d6de: 4618 mov r0, r3 - 801d6e0: f7f5 fd74 bl 80131cc + 801d646: f107 03b0 add.w r3, r7, #176 ; 0xb0 + 801d64a: 4618 mov r0, r3 + 801d64c: f7f5 fd74 bl 8013138 lv_draw_mask_free_param(&mask_right_param); - 801d6e4: f107 0384 add.w r3, r7, #132 ; 0x84 - 801d6e8: 4618 mov r0, r3 - 801d6ea: f7f5 fd6f bl 80131cc + 801d650: f107 0384 add.w r3, r7, #132 ; 0x84 + 801d654: 4618 mov r0, r3 + 801d656: f7f5 fd6f bl 8013138 if(mask_top_id != LV_MASK_ID_INV) lv_draw_mask_free_param(&mask_top_param); - 801d6ee: f9b7 312a ldrsh.w r3, [r7, #298] ; 0x12a - 801d6f2: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 801d6f6: d004 beq.n 801d702 - 801d6f8: f107 0358 add.w r3, r7, #88 ; 0x58 - 801d6fc: 4618 mov r0, r3 - 801d6fe: f7f5 fd65 bl 80131cc + 801d65a: f9b7 312a ldrsh.w r3, [r7, #298] ; 0x12a + 801d65e: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 801d662: d004 beq.n 801d66e + 801d664: f107 0358 add.w r3, r7, #88 ; 0x58 + 801d668: 4618 mov r0, r3 + 801d66a: f7f5 fd65 bl 8013138 if(mask_bottom_id != LV_MASK_ID_INV) lv_draw_mask_free_param(&mask_bottom_param); - 801d702: f9b7 3128 ldrsh.w r3, [r7, #296] ; 0x128 - 801d706: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 801d70a: d004 beq.n 801d716 - 801d70c: f107 032c add.w r3, r7, #44 ; 0x2c - 801d710: 4618 mov r0, r3 - 801d712: f7f5 fd5b bl 80131cc + 801d66e: f9b7 3128 ldrsh.w r3, [r7, #296] ; 0x128 + 801d672: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 801d676: d004 beq.n 801d682 + 801d678: f107 032c add.w r3, r7, #44 ; 0x2c + 801d67c: 4618 mov r0, r3 + 801d67e: f7f5 fd5b bl 8013138 lv_draw_mask_remove_id(mask_left_id); - 801d716: f9b7 3104 ldrsh.w r3, [r7, #260] ; 0x104 - 801d71a: 4618 mov r0, r3 - 801d71c: f7f5 fd06 bl 801312c + 801d682: f9b7 3104 ldrsh.w r3, [r7, #260] ; 0x104 + 801d686: 4618 mov r0, r3 + 801d688: f7f5 fd06 bl 8013098 lv_draw_mask_remove_id(mask_right_id); - 801d720: f9b7 3102 ldrsh.w r3, [r7, #258] ; 0x102 - 801d724: 4618 mov r0, r3 - 801d726: f7f5 fd01 bl 801312c + 801d68c: f9b7 3102 ldrsh.w r3, [r7, #258] ; 0x102 + 801d690: 4618 mov r0, r3 + 801d692: f7f5 fd01 bl 8013098 lv_draw_mask_remove_id(mask_top_id); - 801d72a: f9b7 312a ldrsh.w r3, [r7, #298] ; 0x12a - 801d72e: 4618 mov r0, r3 - 801d730: f7f5 fcfc bl 801312c + 801d696: f9b7 312a ldrsh.w r3, [r7, #298] ; 0x12a + 801d69a: 4618 mov r0, r3 + 801d69c: f7f5 fcfc bl 8013098 lv_draw_mask_remove_id(mask_bottom_id); - 801d734: f9b7 3128 ldrsh.w r3, [r7, #296] ; 0x128 - 801d738: 4618 mov r0, r3 - 801d73a: f7f5 fcf7 bl 801312c - 801d73e: e000 b.n 801d742 + 801d6a0: f9b7 3128 ldrsh.w r3, [r7, #296] ; 0x128 + 801d6a4: 4618 mov r0, r3 + 801d6a6: f7f5 fcf7 bl 8013098 + 801d6aa: e000 b.n 801d6ae if(is_common == false) return; - 801d740: bf00 nop + 801d6ac: bf00 nop LV_UNUSED(point2); LV_UNUSED(draw_ctx); LV_UNUSED(dsc); LV_LOG_WARN("Can't draw skewed line with LV_DRAW_COMPLEX == 0"); #endif /*LV_DRAW_COMPLEX*/ } - 801d742: f507 7798 add.w r7, r7, #304 ; 0x130 - 801d746: 46bd mov sp, r7 - 801d748: bdb0 pop {r4, r5, r7, pc} - 801d74a: bf00 nop + 801d6ae: f507 7798 add.w r7, r7, #304 ; 0x130 + 801d6b2: 46bd mov sp, r7 + 801d6b4: bdb0 pop {r4, r5, r7, pc} + 801d6b6: bf00 nop -0801d74c : +0801d6b8 : * @param clip_area polygon will be drawn only in this area * @param draw_dsc pointer to an initialized `lv_draw_rect_dsc_t` variable */ void lv_draw_sw_polygon(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * draw_dsc, const lv_point_t * points, uint16_t point_cnt) { - 801d74c: b590 push {r4, r7, lr} - 801d74e: b09b sub sp, #108 ; 0x6c - 801d750: af02 add r7, sp, #8 - 801d752: 60f8 str r0, [r7, #12] - 801d754: 60b9 str r1, [r7, #8] - 801d756: 607a str r2, [r7, #4] - 801d758: 807b strh r3, [r7, #2] + 801d6b8: b590 push {r4, r7, lr} + 801d6ba: b09b sub sp, #108 ; 0x6c + 801d6bc: af02 add r7, sp, #8 + 801d6be: 60f8 str r0, [r7, #12] + 801d6c0: 60b9 str r1, [r7, #8] + 801d6c2: 607a str r2, [r7, #4] + 801d6c4: 807b strh r3, [r7, #2] #if LV_DRAW_COMPLEX if(point_cnt < 3) return; - 801d75a: 887b ldrh r3, [r7, #2] - 801d75c: 2b02 cmp r3, #2 - 801d75e: f240 82a9 bls.w 801dcb4 + 801d6c6: 887b ldrh r3, [r7, #2] + 801d6c8: 2b02 cmp r3, #2 + 801d6ca: f240 82a9 bls.w 801dc20 if(points == NULL) return; - 801d762: 687b ldr r3, [r7, #4] - 801d764: 2b00 cmp r3, #0 - 801d766: f000 82a7 beq.w 801dcb8 + 801d6ce: 687b ldr r3, [r7, #4] + 801d6d0: 2b00 cmp r3, #0 + 801d6d2: f000 82a7 beq.w 801dc24 /*Join adjacent points if they are on the same coordinate*/ lv_point_t * p = lv_mem_buf_get(point_cnt * sizeof(lv_point_t)); - 801d76a: 887b ldrh r3, [r7, #2] - 801d76c: 009b lsls r3, r3, #2 - 801d76e: 4618 mov r0, r3 - 801d770: f015 f946 bl 8032a00 - 801d774: 63b8 str r0, [r7, #56] ; 0x38 + 801d6d6: 887b ldrh r3, [r7, #2] + 801d6d8: 009b lsls r3, r3, #2 + 801d6da: 4618 mov r0, r3 + 801d6dc: f015 f946 bl 803296c + 801d6e0: 63b8 str r0, [r7, #56] ; 0x38 if(p == NULL) return; - 801d776: 6bbb ldr r3, [r7, #56] ; 0x38 - 801d778: 2b00 cmp r3, #0 - 801d77a: f000 829f beq.w 801dcbc + 801d6e2: 6bbb ldr r3, [r7, #56] ; 0x38 + 801d6e4: 2b00 cmp r3, #0 + 801d6e6: f000 829f beq.w 801dc28 uint16_t i; uint16_t pcnt = 0; - 801d77e: 2300 movs r3, #0 - 801d780: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 801d6ea: 2300 movs r3, #0 + 801d6ec: f8a7 305c strh.w r3, [r7, #92] ; 0x5c p[0] = points[0]; - 801d784: 6bba ldr r2, [r7, #56] ; 0x38 - 801d786: 687b ldr r3, [r7, #4] - 801d788: 681b ldr r3, [r3, #0] - 801d78a: 6013 str r3, [r2, #0] + 801d6f0: 6bba ldr r2, [r7, #56] ; 0x38 + 801d6f2: 687b ldr r3, [r7, #4] + 801d6f4: 681b ldr r3, [r3, #0] + 801d6f6: 6013 str r3, [r2, #0] for(i = 0; i < point_cnt - 1; i++) { - 801d78c: 2300 movs r3, #0 - 801d78e: f8a7 305e strh.w r3, [r7, #94] ; 0x5e - 801d792: e039 b.n 801d808 + 801d6f8: 2300 movs r3, #0 + 801d6fa: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 801d6fe: e039 b.n 801d774 if(points[i].x != points[i + 1].x || points[i].y != points[i + 1].y) { - 801d794: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 801d798: 009b lsls r3, r3, #2 - 801d79a: 687a ldr r2, [r7, #4] - 801d79c: 4413 add r3, r2 - 801d79e: f9b3 2000 ldrsh.w r2, [r3] - 801d7a2: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 801d7a6: 3301 adds r3, #1 - 801d7a8: 009b lsls r3, r3, #2 - 801d7aa: 6879 ldr r1, [r7, #4] - 801d7ac: 440b add r3, r1 - 801d7ae: f9b3 3000 ldrsh.w r3, [r3] - 801d7b2: 429a cmp r2, r3 - 801d7b4: d110 bne.n 801d7d8 - 801d7b6: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 801d7ba: 009b lsls r3, r3, #2 - 801d7bc: 687a ldr r2, [r7, #4] - 801d7be: 4413 add r3, r2 - 801d7c0: f9b3 2002 ldrsh.w r2, [r3, #2] - 801d7c4: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 801d7c8: 3301 adds r3, #1 - 801d7ca: 009b lsls r3, r3, #2 - 801d7cc: 6879 ldr r1, [r7, #4] - 801d7ce: 440b add r3, r1 - 801d7d0: f9b3 3002 ldrsh.w r3, [r3, #2] - 801d7d4: 429a cmp r2, r3 - 801d7d6: d012 beq.n 801d7fe + 801d700: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 801d704: 009b lsls r3, r3, #2 + 801d706: 687a ldr r2, [r7, #4] + 801d708: 4413 add r3, r2 + 801d70a: f9b3 2000 ldrsh.w r2, [r3] + 801d70e: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 801d712: 3301 adds r3, #1 + 801d714: 009b lsls r3, r3, #2 + 801d716: 6879 ldr r1, [r7, #4] + 801d718: 440b add r3, r1 + 801d71a: f9b3 3000 ldrsh.w r3, [r3] + 801d71e: 429a cmp r2, r3 + 801d720: d110 bne.n 801d744 + 801d722: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 801d726: 009b lsls r3, r3, #2 + 801d728: 687a ldr r2, [r7, #4] + 801d72a: 4413 add r3, r2 + 801d72c: f9b3 2002 ldrsh.w r2, [r3, #2] + 801d730: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 801d734: 3301 adds r3, #1 + 801d736: 009b lsls r3, r3, #2 + 801d738: 6879 ldr r1, [r7, #4] + 801d73a: 440b add r3, r1 + 801d73c: f9b3 3002 ldrsh.w r3, [r3, #2] + 801d740: 429a cmp r2, r3 + 801d742: d012 beq.n 801d76a p[pcnt] = points[i]; - 801d7d8: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 801d7dc: 009b lsls r3, r3, #2 - 801d7de: 687a ldr r2, [r7, #4] - 801d7e0: 18d1 adds r1, r2, r3 - 801d7e2: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c - 801d7e6: 009b lsls r3, r3, #2 - 801d7e8: 6bba ldr r2, [r7, #56] ; 0x38 - 801d7ea: 4413 add r3, r2 - 801d7ec: 461a mov r2, r3 - 801d7ee: 460b mov r3, r1 - 801d7f0: 681b ldr r3, [r3, #0] - 801d7f2: 6013 str r3, [r2, #0] + 801d744: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 801d748: 009b lsls r3, r3, #2 + 801d74a: 687a ldr r2, [r7, #4] + 801d74c: 18d1 adds r1, r2, r3 + 801d74e: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c + 801d752: 009b lsls r3, r3, #2 + 801d754: 6bba ldr r2, [r7, #56] ; 0x38 + 801d756: 4413 add r3, r2 + 801d758: 461a mov r2, r3 + 801d75a: 460b mov r3, r1 + 801d75c: 681b ldr r3, [r3, #0] + 801d75e: 6013 str r3, [r2, #0] pcnt++; - 801d7f4: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c - 801d7f8: 3301 adds r3, #1 - 801d7fa: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 801d760: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c + 801d764: 3301 adds r3, #1 + 801d766: f8a7 305c strh.w r3, [r7, #92] ; 0x5c for(i = 0; i < point_cnt - 1; i++) { - 801d7fe: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 801d802: 3301 adds r3, #1 - 801d804: f8a7 305e strh.w r3, [r7, #94] ; 0x5e - 801d808: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e - 801d80c: 887b ldrh r3, [r7, #2] - 801d80e: 3b01 subs r3, #1 - 801d810: 429a cmp r2, r3 - 801d812: dbbf blt.n 801d794 + 801d76a: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 801d76e: 3301 adds r3, #1 + 801d770: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 801d774: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e + 801d778: 887b ldrh r3, [r7, #2] + 801d77a: 3b01 subs r3, #1 + 801d77c: 429a cmp r2, r3 + 801d77e: dbbf blt.n 801d700 } } /*The first and the last points are also adjacent*/ if(points[0].x != points[point_cnt - 1].x || points[0].y != points[point_cnt - 1].y) { - 801d814: 687b ldr r3, [r7, #4] - 801d816: f9b3 2000 ldrsh.w r2, [r3] - 801d81a: 887b ldrh r3, [r7, #2] - 801d81c: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 - 801d820: 3b01 subs r3, #1 - 801d822: 009b lsls r3, r3, #2 - 801d824: 6879 ldr r1, [r7, #4] - 801d826: 440b add r3, r1 - 801d828: f9b3 3000 ldrsh.w r3, [r3] - 801d82c: 429a cmp r2, r3 - 801d82e: d10d bne.n 801d84c - 801d830: 687b ldr r3, [r7, #4] - 801d832: f9b3 2002 ldrsh.w r2, [r3, #2] - 801d836: 887b ldrh r3, [r7, #2] - 801d838: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 - 801d83c: 3b01 subs r3, #1 - 801d83e: 009b lsls r3, r3, #2 - 801d840: 6879 ldr r1, [r7, #4] - 801d842: 440b add r3, r1 - 801d844: f9b3 3002 ldrsh.w r3, [r3, #2] - 801d848: 429a cmp r2, r3 - 801d84a: d014 beq.n 801d876 + 801d780: 687b ldr r3, [r7, #4] + 801d782: f9b3 2000 ldrsh.w r2, [r3] + 801d786: 887b ldrh r3, [r7, #2] + 801d788: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 + 801d78c: 3b01 subs r3, #1 + 801d78e: 009b lsls r3, r3, #2 + 801d790: 6879 ldr r1, [r7, #4] + 801d792: 440b add r3, r1 + 801d794: f9b3 3000 ldrsh.w r3, [r3] + 801d798: 429a cmp r2, r3 + 801d79a: d10d bne.n 801d7b8 + 801d79c: 687b ldr r3, [r7, #4] + 801d79e: f9b3 2002 ldrsh.w r2, [r3, #2] + 801d7a2: 887b ldrh r3, [r7, #2] + 801d7a4: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 + 801d7a8: 3b01 subs r3, #1 + 801d7aa: 009b lsls r3, r3, #2 + 801d7ac: 6879 ldr r1, [r7, #4] + 801d7ae: 440b add r3, r1 + 801d7b0: f9b3 3002 ldrsh.w r3, [r3, #2] + 801d7b4: 429a cmp r2, r3 + 801d7b6: d014 beq.n 801d7e2 p[pcnt] = points[point_cnt - 1]; - 801d84c: 887b ldrh r3, [r7, #2] - 801d84e: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 - 801d852: 3b01 subs r3, #1 - 801d854: 009b lsls r3, r3, #2 - 801d856: 687a ldr r2, [r7, #4] - 801d858: 18d1 adds r1, r2, r3 - 801d85a: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c - 801d85e: 009b lsls r3, r3, #2 - 801d860: 6bba ldr r2, [r7, #56] ; 0x38 - 801d862: 4413 add r3, r2 - 801d864: 461a mov r2, r3 - 801d866: 460b mov r3, r1 - 801d868: 681b ldr r3, [r3, #0] - 801d86a: 6013 str r3, [r2, #0] + 801d7b8: 887b ldrh r3, [r7, #2] + 801d7ba: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 + 801d7be: 3b01 subs r3, #1 + 801d7c0: 009b lsls r3, r3, #2 + 801d7c2: 687a ldr r2, [r7, #4] + 801d7c4: 18d1 adds r1, r2, r3 + 801d7c6: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c + 801d7ca: 009b lsls r3, r3, #2 + 801d7cc: 6bba ldr r2, [r7, #56] ; 0x38 + 801d7ce: 4413 add r3, r2 + 801d7d0: 461a mov r2, r3 + 801d7d2: 460b mov r3, r1 + 801d7d4: 681b ldr r3, [r3, #0] + 801d7d6: 6013 str r3, [r2, #0] pcnt++; - 801d86c: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c - 801d870: 3301 adds r3, #1 - 801d872: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 801d7d8: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c + 801d7dc: 3301 adds r3, #1 + 801d7de: f8a7 305c strh.w r3, [r7, #92] ; 0x5c } point_cnt = pcnt; - 801d876: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c - 801d87a: 807b strh r3, [r7, #2] + 801d7e2: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c + 801d7e6: 807b strh r3, [r7, #2] if(point_cnt < 3) { - 801d87c: 887b ldrh r3, [r7, #2] - 801d87e: 2b02 cmp r3, #2 - 801d880: d803 bhi.n 801d88a + 801d7e8: 887b ldrh r3, [r7, #2] + 801d7ea: 2b02 cmp r3, #2 + 801d7ec: d803 bhi.n 801d7f6 lv_mem_buf_release(p); - 801d882: 6bb8 ldr r0, [r7, #56] ; 0x38 - 801d884: f015 f968 bl 8032b58 + 801d7ee: 6bb8 ldr r0, [r7, #56] ; 0x38 + 801d7f0: f015 f968 bl 8032ac4 return; - 801d888: e219 b.n 801dcbe + 801d7f4: e219 b.n 801dc2a } lv_area_t poly_coords = {.x1 = LV_COORD_MAX, .y1 = LV_COORD_MAX, .x2 = LV_COORD_MIN, .y2 = LV_COORD_MIN}; - 801d88a: 4a9a ldr r2, [pc, #616] ; (801daf4 ) - 801d88c: f107 031c add.w r3, r7, #28 - 801d890: e892 0003 ldmia.w r2, {r0, r1} - 801d894: e883 0003 stmia.w r3, {r0, r1} + 801d7f6: 4a9a ldr r2, [pc, #616] ; (801da60 ) + 801d7f8: f107 031c add.w r3, r7, #28 + 801d7fc: e892 0003 ldmia.w r2, {r0, r1} + 801d800: e883 0003 stmia.w r3, {r0, r1} for(i = 0; i < point_cnt; i++) { - 801d898: 2300 movs r3, #0 - 801d89a: f8a7 305e strh.w r3, [r7, #94] ; 0x5e - 801d89e: e03c b.n 801d91a + 801d804: 2300 movs r3, #0 + 801d806: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 801d80a: e03c b.n 801d886 poly_coords.x1 = LV_MIN(poly_coords.x1, p[i].x); - 801d8a0: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 801d8a4: 009b lsls r3, r3, #2 - 801d8a6: 6bba ldr r2, [r7, #56] ; 0x38 - 801d8a8: 4413 add r3, r2 - 801d8aa: f9b3 2000 ldrsh.w r2, [r3] - 801d8ae: f9b7 301c ldrsh.w r3, [r7, #28] - 801d8b2: 4293 cmp r3, r2 - 801d8b4: bfa8 it ge - 801d8b6: 4613 movge r3, r2 - 801d8b8: b21b sxth r3, r3 - 801d8ba: 83bb strh r3, [r7, #28] + 801d80c: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 801d810: 009b lsls r3, r3, #2 + 801d812: 6bba ldr r2, [r7, #56] ; 0x38 + 801d814: 4413 add r3, r2 + 801d816: f9b3 2000 ldrsh.w r2, [r3] + 801d81a: f9b7 301c ldrsh.w r3, [r7, #28] + 801d81e: 4293 cmp r3, r2 + 801d820: bfa8 it ge + 801d822: 4613 movge r3, r2 + 801d824: b21b sxth r3, r3 + 801d826: 83bb strh r3, [r7, #28] poly_coords.y1 = LV_MIN(poly_coords.y1, p[i].y); - 801d8bc: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 801d8c0: 009b lsls r3, r3, #2 - 801d8c2: 6bba ldr r2, [r7, #56] ; 0x38 - 801d8c4: 4413 add r3, r2 - 801d8c6: f9b3 2002 ldrsh.w r2, [r3, #2] - 801d8ca: f9b7 301e ldrsh.w r3, [r7, #30] - 801d8ce: 4293 cmp r3, r2 - 801d8d0: bfa8 it ge - 801d8d2: 4613 movge r3, r2 - 801d8d4: b21b sxth r3, r3 - 801d8d6: 83fb strh r3, [r7, #30] + 801d828: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 801d82c: 009b lsls r3, r3, #2 + 801d82e: 6bba ldr r2, [r7, #56] ; 0x38 + 801d830: 4413 add r3, r2 + 801d832: f9b3 2002 ldrsh.w r2, [r3, #2] + 801d836: f9b7 301e ldrsh.w r3, [r7, #30] + 801d83a: 4293 cmp r3, r2 + 801d83c: bfa8 it ge + 801d83e: 4613 movge r3, r2 + 801d840: b21b sxth r3, r3 + 801d842: 83fb strh r3, [r7, #30] poly_coords.x2 = LV_MAX(poly_coords.x2, p[i].x); - 801d8d8: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 801d8dc: 009b lsls r3, r3, #2 - 801d8de: 6bba ldr r2, [r7, #56] ; 0x38 - 801d8e0: 4413 add r3, r2 - 801d8e2: f9b3 2000 ldrsh.w r2, [r3] - 801d8e6: f9b7 3020 ldrsh.w r3, [r7, #32] - 801d8ea: 4293 cmp r3, r2 - 801d8ec: bfb8 it lt - 801d8ee: 4613 movlt r3, r2 - 801d8f0: b21b sxth r3, r3 - 801d8f2: 843b strh r3, [r7, #32] + 801d844: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 801d848: 009b lsls r3, r3, #2 + 801d84a: 6bba ldr r2, [r7, #56] ; 0x38 + 801d84c: 4413 add r3, r2 + 801d84e: f9b3 2000 ldrsh.w r2, [r3] + 801d852: f9b7 3020 ldrsh.w r3, [r7, #32] + 801d856: 4293 cmp r3, r2 + 801d858: bfb8 it lt + 801d85a: 4613 movlt r3, r2 + 801d85c: b21b sxth r3, r3 + 801d85e: 843b strh r3, [r7, #32] poly_coords.y2 = LV_MAX(poly_coords.y2, p[i].y); - 801d8f4: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 801d8f8: 009b lsls r3, r3, #2 - 801d8fa: 6bba ldr r2, [r7, #56] ; 0x38 - 801d8fc: 4413 add r3, r2 - 801d8fe: f9b3 2002 ldrsh.w r2, [r3, #2] - 801d902: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 801d906: 4293 cmp r3, r2 - 801d908: bfb8 it lt - 801d90a: 4613 movlt r3, r2 - 801d90c: b21b sxth r3, r3 - 801d90e: 847b strh r3, [r7, #34] ; 0x22 + 801d860: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 801d864: 009b lsls r3, r3, #2 + 801d866: 6bba ldr r2, [r7, #56] ; 0x38 + 801d868: 4413 add r3, r2 + 801d86a: f9b3 2002 ldrsh.w r2, [r3, #2] + 801d86e: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 801d872: 4293 cmp r3, r2 + 801d874: bfb8 it lt + 801d876: 4613 movlt r3, r2 + 801d878: b21b sxth r3, r3 + 801d87a: 847b strh r3, [r7, #34] ; 0x22 for(i = 0; i < point_cnt; i++) { + 801d87c: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 801d880: 3301 adds r3, #1 + 801d882: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 801d886: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e + 801d88a: 887b ldrh r3, [r7, #2] + 801d88c: 429a cmp r2, r3 + 801d88e: d3bd bcc.n 801d80c + } + + bool is_common; + lv_area_t clip_area; + is_common = _lv_area_intersect(&clip_area, &poly_coords, draw_ctx->clip_area); + 801d890: 68fb ldr r3, [r7, #12] + 801d892: 689a ldr r2, [r3, #8] + 801d894: f107 011c add.w r1, r7, #28 + 801d898: f107 0314 add.w r3, r7, #20 + 801d89c: 4618 mov r0, r3 + 801d89e: f013 fbb9 bl 8031014 <_lv_area_intersect> + 801d8a2: 4603 mov r3, r0 + 801d8a4: f887 3037 strb.w r3, [r7, #55] ; 0x37 + if(!is_common) { + 801d8a8: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 801d8ac: f083 0301 eor.w r3, r3, #1 + 801d8b0: b2db uxtb r3, r3 + 801d8b2: 2b00 cmp r3, #0 + 801d8b4: d003 beq.n 801d8be + lv_mem_buf_release(p); + 801d8b6: 6bb8 ldr r0, [r7, #56] ; 0x38 + 801d8b8: f015 f904 bl 8032ac4 + return; + 801d8bc: e1b5 b.n 801dc2a + } + + const lv_area_t * clip_area_ori = draw_ctx->clip_area; + 801d8be: 68fb ldr r3, [r7, #12] + 801d8c0: 689b ldr r3, [r3, #8] + 801d8c2: 633b str r3, [r7, #48] ; 0x30 + draw_ctx->clip_area = &clip_area; + 801d8c4: 68fb ldr r3, [r7, #12] + 801d8c6: f107 0214 add.w r2, r7, #20 + 801d8ca: 609a str r2, [r3, #8] + + /*Find the lowest point*/ + lv_coord_t y_min = p[0].y; + 801d8cc: 6bbb ldr r3, [r7, #56] ; 0x38 + 801d8ce: 885b ldrh r3, [r3, #2] + 801d8d0: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + int16_t y_min_i = 0; + 801d8d4: 2300 movs r3, #0 + 801d8d6: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 + + for(i = 1; i < point_cnt; i++) { + 801d8da: 2301 movs r3, #1 + 801d8dc: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 801d8e0: e01b b.n 801d91a + if(p[i].y < y_min) { + 801d8e2: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 801d8e6: 009b lsls r3, r3, #2 + 801d8e8: 6bba ldr r2, [r7, #56] ; 0x38 + 801d8ea: 4413 add r3, r2 + 801d8ec: f9b3 3002 ldrsh.w r3, [r3, #2] + 801d8f0: f9b7 205a ldrsh.w r2, [r7, #90] ; 0x5a + 801d8f4: 429a cmp r2, r3 + 801d8f6: dd0b ble.n 801d910 + y_min = p[i].y; + 801d8f8: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 801d8fc: 009b lsls r3, r3, #2 + 801d8fe: 6bba ldr r2, [r7, #56] ; 0x38 + 801d900: 4413 add r3, r2 + 801d902: 885b ldrh r3, [r3, #2] + 801d904: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + y_min_i = i; + 801d908: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 801d90c: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 + for(i = 1; i < point_cnt; i++) { 801d910: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e 801d914: 3301 adds r3, #1 801d916: f8a7 305e strh.w r3, [r7, #94] ; 0x5e 801d91a: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e 801d91e: 887b ldrh r3, [r7, #2] 801d920: 429a cmp r2, r3 - 801d922: d3bd bcc.n 801d8a0 - } - - bool is_common; - lv_area_t clip_area; - is_common = _lv_area_intersect(&clip_area, &poly_coords, draw_ctx->clip_area); - 801d924: 68fb ldr r3, [r7, #12] - 801d926: 689a ldr r2, [r3, #8] - 801d928: f107 011c add.w r1, r7, #28 - 801d92c: f107 0314 add.w r3, r7, #20 - 801d930: 4618 mov r0, r3 - 801d932: f013 fbb9 bl 80310a8 <_lv_area_intersect> - 801d936: 4603 mov r3, r0 - 801d938: f887 3037 strb.w r3, [r7, #55] ; 0x37 - if(!is_common) { - 801d93c: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 801d940: f083 0301 eor.w r3, r3, #1 - 801d944: b2db uxtb r3, r3 - 801d946: 2b00 cmp r3, #0 - 801d948: d003 beq.n 801d952 - lv_mem_buf_release(p); - 801d94a: 6bb8 ldr r0, [r7, #56] ; 0x38 - 801d94c: f015 f904 bl 8032b58 - return; - 801d950: e1b5 b.n 801dcbe - } - - const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 801d952: 68fb ldr r3, [r7, #12] - 801d954: 689b ldr r3, [r3, #8] - 801d956: 633b str r3, [r7, #48] ; 0x30 - draw_ctx->clip_area = &clip_area; - 801d958: 68fb ldr r3, [r7, #12] - 801d95a: f107 0214 add.w r2, r7, #20 - 801d95e: 609a str r2, [r3, #8] - - /*Find the lowest point*/ - lv_coord_t y_min = p[0].y; - 801d960: 6bbb ldr r3, [r7, #56] ; 0x38 - 801d962: 885b ldrh r3, [r3, #2] - 801d964: f8a7 305a strh.w r3, [r7, #90] ; 0x5a - int16_t y_min_i = 0; - 801d968: 2300 movs r3, #0 - 801d96a: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 - - for(i = 1; i < point_cnt; i++) { - 801d96e: 2301 movs r3, #1 - 801d970: f8a7 305e strh.w r3, [r7, #94] ; 0x5e - 801d974: e01b b.n 801d9ae - if(p[i].y < y_min) { - 801d976: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 801d97a: 009b lsls r3, r3, #2 - 801d97c: 6bba ldr r2, [r7, #56] ; 0x38 - 801d97e: 4413 add r3, r2 - 801d980: f9b3 3002 ldrsh.w r3, [r3, #2] - 801d984: f9b7 205a ldrsh.w r2, [r7, #90] ; 0x5a - 801d988: 429a cmp r2, r3 - 801d98a: dd0b ble.n 801d9a4 - y_min = p[i].y; - 801d98c: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 801d990: 009b lsls r3, r3, #2 - 801d992: 6bba ldr r2, [r7, #56] ; 0x38 - 801d994: 4413 add r3, r2 - 801d996: 885b ldrh r3, [r3, #2] - 801d998: f8a7 305a strh.w r3, [r7, #90] ; 0x5a - y_min_i = i; - 801d99c: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 801d9a0: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 - for(i = 1; i < point_cnt; i++) { - 801d9a4: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 801d9a8: 3301 adds r3, #1 - 801d9aa: f8a7 305e strh.w r3, [r7, #94] ; 0x5e - 801d9ae: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e - 801d9b2: 887b ldrh r3, [r7, #2] - 801d9b4: 429a cmp r2, r3 - 801d9b6: d3de bcc.n 801d976 + 801d922: d3de bcc.n 801d8e2 } } lv_draw_mask_line_param_t * mp = lv_mem_buf_get(sizeof(lv_draw_mask_line_param_t) * point_cnt); - 801d9b8: 887b ldrh r3, [r7, #2] - 801d9ba: 222c movs r2, #44 ; 0x2c - 801d9bc: fb02 f303 mul.w r3, r2, r3 - 801d9c0: 4618 mov r0, r3 - 801d9c2: f015 f81d bl 8032a00 - 801d9c6: 62f8 str r0, [r7, #44] ; 0x2c + 801d924: 887b ldrh r3, [r7, #2] + 801d926: 222c movs r2, #44 ; 0x2c + 801d928: fb02 f303 mul.w r3, r2, r3 + 801d92c: 4618 mov r0, r3 + 801d92e: f015 f81d bl 803296c + 801d932: 62f8 str r0, [r7, #44] ; 0x2c lv_draw_mask_line_param_t * mp_next = mp; - 801d9c8: 6afb ldr r3, [r7, #44] ; 0x2c - 801d9ca: 657b str r3, [r7, #84] ; 0x54 + 801d934: 6afb ldr r3, [r7, #44] ; 0x2c + 801d936: 657b str r3, [r7, #84] ; 0x54 int32_t i_prev_left = y_min_i; - 801d9cc: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 801d9d0: 653b str r3, [r7, #80] ; 0x50 + 801d938: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 801d93c: 653b str r3, [r7, #80] ; 0x50 int32_t i_prev_right = y_min_i; - 801d9d2: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 801d9d6: 64fb str r3, [r7, #76] ; 0x4c + 801d93e: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 801d942: 64fb str r3, [r7, #76] ; 0x4c int32_t i_next_left; int32_t i_next_right; uint32_t mask_cnt = 0; - 801d9d8: 2300 movs r3, #0 - 801d9da: 643b str r3, [r7, #64] ; 0x40 + 801d944: 2300 movs r3, #0 + 801d946: 643b str r3, [r7, #64] ; 0x40 /*Get the index of the left and right points*/ i_next_left = y_min_i - 1; - 801d9dc: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 801d9e0: 3b01 subs r3, #1 - 801d9e2: 64bb str r3, [r7, #72] ; 0x48 + 801d948: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 801d94c: 3b01 subs r3, #1 + 801d94e: 64bb str r3, [r7, #72] ; 0x48 if(i_next_left < 0) i_next_left = point_cnt + i_next_left; - 801d9e4: 6cbb ldr r3, [r7, #72] ; 0x48 - 801d9e6: 2b00 cmp r3, #0 - 801d9e8: da03 bge.n 801d9f2 - 801d9ea: 887b ldrh r3, [r7, #2] - 801d9ec: 6cba ldr r2, [r7, #72] ; 0x48 - 801d9ee: 4413 add r3, r2 - 801d9f0: 64bb str r3, [r7, #72] ; 0x48 + 801d950: 6cbb ldr r3, [r7, #72] ; 0x48 + 801d952: 2b00 cmp r3, #0 + 801d954: da03 bge.n 801d95e + 801d956: 887b ldrh r3, [r7, #2] + 801d958: 6cba ldr r2, [r7, #72] ; 0x48 + 801d95a: 4413 add r3, r2 + 801d95c: 64bb str r3, [r7, #72] ; 0x48 i_next_right = y_min_i + 1; - 801d9f2: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 801d9f6: 3301 adds r3, #1 - 801d9f8: 647b str r3, [r7, #68] ; 0x44 + 801d95e: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 801d962: 3301 adds r3, #1 + 801d964: 647b str r3, [r7, #68] ; 0x44 if(i_next_right > point_cnt - 1) i_next_right = 0; - 801d9fa: 887b ldrh r3, [r7, #2] - 801d9fc: 6c7a ldr r2, [r7, #68] ; 0x44 - 801d9fe: 429a cmp r2, r3 - 801da00: db01 blt.n 801da06 - 801da02: 2300 movs r3, #0 - 801da04: 647b str r3, [r7, #68] ; 0x44 + 801d966: 887b ldrh r3, [r7, #2] + 801d968: 6c7a ldr r2, [r7, #68] ; 0x44 + 801d96a: 429a cmp r2, r3 + 801d96c: db01 blt.n 801d972 + 801d96e: 2300 movs r3, #0 + 801d970: 647b str r3, [r7, #68] ; 0x44 * Explanation: * if angle(p_left) < angle(p_right) -> inverted * dy_left/dx_left < dy_right/dx_right * dy_left * dx_right < dy_right * dx_left */ lv_coord_t dxl = p[i_next_left].x - p[y_min_i].x; - 801da06: 6cbb ldr r3, [r7, #72] ; 0x48 - 801da08: 009b lsls r3, r3, #2 - 801da0a: 6bba ldr r2, [r7, #56] ; 0x38 - 801da0c: 4413 add r3, r2 - 801da0e: f9b3 3000 ldrsh.w r3, [r3] - 801da12: b29a uxth r2, r3 - 801da14: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 801da18: 009b lsls r3, r3, #2 - 801da1a: 6bb9 ldr r1, [r7, #56] ; 0x38 - 801da1c: 440b add r3, r1 - 801da1e: f9b3 3000 ldrsh.w r3, [r3] - 801da22: b29b uxth r3, r3 - 801da24: 1ad3 subs r3, r2, r3 - 801da26: b29b uxth r3, r3 - 801da28: 857b strh r3, [r7, #42] ; 0x2a + 801d972: 6cbb ldr r3, [r7, #72] ; 0x48 + 801d974: 009b lsls r3, r3, #2 + 801d976: 6bba ldr r2, [r7, #56] ; 0x38 + 801d978: 4413 add r3, r2 + 801d97a: f9b3 3000 ldrsh.w r3, [r3] + 801d97e: b29a uxth r2, r3 + 801d980: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 801d984: 009b lsls r3, r3, #2 + 801d986: 6bb9 ldr r1, [r7, #56] ; 0x38 + 801d988: 440b add r3, r1 + 801d98a: f9b3 3000 ldrsh.w r3, [r3] + 801d98e: b29b uxth r3, r3 + 801d990: 1ad3 subs r3, r2, r3 + 801d992: b29b uxth r3, r3 + 801d994: 857b strh r3, [r7, #42] ; 0x2a lv_coord_t dxr = p[i_next_right].x - p[y_min_i].x; - 801da2a: 6c7b ldr r3, [r7, #68] ; 0x44 - 801da2c: 009b lsls r3, r3, #2 - 801da2e: 6bba ldr r2, [r7, #56] ; 0x38 - 801da30: 4413 add r3, r2 - 801da32: f9b3 3000 ldrsh.w r3, [r3] - 801da36: b29a uxth r2, r3 - 801da38: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 801da3c: 009b lsls r3, r3, #2 - 801da3e: 6bb9 ldr r1, [r7, #56] ; 0x38 - 801da40: 440b add r3, r1 - 801da42: f9b3 3000 ldrsh.w r3, [r3] - 801da46: b29b uxth r3, r3 - 801da48: 1ad3 subs r3, r2, r3 - 801da4a: b29b uxth r3, r3 - 801da4c: 853b strh r3, [r7, #40] ; 0x28 + 801d996: 6c7b ldr r3, [r7, #68] ; 0x44 + 801d998: 009b lsls r3, r3, #2 + 801d99a: 6bba ldr r2, [r7, #56] ; 0x38 + 801d99c: 4413 add r3, r2 + 801d99e: f9b3 3000 ldrsh.w r3, [r3] + 801d9a2: b29a uxth r2, r3 + 801d9a4: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 801d9a8: 009b lsls r3, r3, #2 + 801d9aa: 6bb9 ldr r1, [r7, #56] ; 0x38 + 801d9ac: 440b add r3, r1 + 801d9ae: f9b3 3000 ldrsh.w r3, [r3] + 801d9b2: b29b uxth r3, r3 + 801d9b4: 1ad3 subs r3, r2, r3 + 801d9b6: b29b uxth r3, r3 + 801d9b8: 853b strh r3, [r7, #40] ; 0x28 lv_coord_t dyl = p[i_next_left].y - p[y_min_i].y; - 801da4e: 6cbb ldr r3, [r7, #72] ; 0x48 - 801da50: 009b lsls r3, r3, #2 - 801da52: 6bba ldr r2, [r7, #56] ; 0x38 - 801da54: 4413 add r3, r2 - 801da56: f9b3 3002 ldrsh.w r3, [r3, #2] - 801da5a: b29a uxth r2, r3 - 801da5c: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 801da60: 009b lsls r3, r3, #2 - 801da62: 6bb9 ldr r1, [r7, #56] ; 0x38 - 801da64: 440b add r3, r1 - 801da66: f9b3 3002 ldrsh.w r3, [r3, #2] - 801da6a: b29b uxth r3, r3 - 801da6c: 1ad3 subs r3, r2, r3 - 801da6e: b29b uxth r3, r3 - 801da70: 84fb strh r3, [r7, #38] ; 0x26 + 801d9ba: 6cbb ldr r3, [r7, #72] ; 0x48 + 801d9bc: 009b lsls r3, r3, #2 + 801d9be: 6bba ldr r2, [r7, #56] ; 0x38 + 801d9c0: 4413 add r3, r2 + 801d9c2: f9b3 3002 ldrsh.w r3, [r3, #2] + 801d9c6: b29a uxth r2, r3 + 801d9c8: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 801d9cc: 009b lsls r3, r3, #2 + 801d9ce: 6bb9 ldr r1, [r7, #56] ; 0x38 + 801d9d0: 440b add r3, r1 + 801d9d2: f9b3 3002 ldrsh.w r3, [r3, #2] + 801d9d6: b29b uxth r3, r3 + 801d9d8: 1ad3 subs r3, r2, r3 + 801d9da: b29b uxth r3, r3 + 801d9dc: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t dyr = p[i_next_right].y - p[y_min_i].y; - 801da72: 6c7b ldr r3, [r7, #68] ; 0x44 - 801da74: 009b lsls r3, r3, #2 - 801da76: 6bba ldr r2, [r7, #56] ; 0x38 - 801da78: 4413 add r3, r2 - 801da7a: f9b3 3002 ldrsh.w r3, [r3, #2] - 801da7e: b29a uxth r2, r3 - 801da80: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 801da84: 009b lsls r3, r3, #2 - 801da86: 6bb9 ldr r1, [r7, #56] ; 0x38 - 801da88: 440b add r3, r1 - 801da8a: f9b3 3002 ldrsh.w r3, [r3, #2] - 801da8e: b29b uxth r3, r3 - 801da90: 1ad3 subs r3, r2, r3 - 801da92: b29b uxth r3, r3 - 801da94: 84bb strh r3, [r7, #36] ; 0x24 + 801d9de: 6c7b ldr r3, [r7, #68] ; 0x44 + 801d9e0: 009b lsls r3, r3, #2 + 801d9e2: 6bba ldr r2, [r7, #56] ; 0x38 + 801d9e4: 4413 add r3, r2 + 801d9e6: f9b3 3002 ldrsh.w r3, [r3, #2] + 801d9ea: b29a uxth r2, r3 + 801d9ec: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 801d9f0: 009b lsls r3, r3, #2 + 801d9f2: 6bb9 ldr r1, [r7, #56] ; 0x38 + 801d9f4: 440b add r3, r1 + 801d9f6: f9b3 3002 ldrsh.w r3, [r3, #2] + 801d9fa: b29b uxth r3, r3 + 801d9fc: 1ad3 subs r3, r2, r3 + 801d9fe: b29b uxth r3, r3 + 801da00: 84bb strh r3, [r7, #36] ; 0x24 bool inv = false; - 801da96: 2300 movs r3, #0 - 801da98: f887 303f strb.w r3, [r7, #63] ; 0x3f + 801da02: 2300 movs r3, #0 + 801da04: f887 303f strb.w r3, [r7, #63] ; 0x3f if(dyl * dxr < dyr * dxl) inv = true; - 801da9c: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 801daa0: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 - 801daa4: fb03 f202 mul.w r2, r3, r2 - 801daa8: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 - 801daac: f9b7 102a ldrsh.w r1, [r7, #42] ; 0x2a - 801dab0: fb01 f303 mul.w r3, r1, r3 - 801dab4: 429a cmp r2, r3 - 801dab6: da02 bge.n 801dabe - 801dab8: 2301 movs r3, #1 - 801daba: f887 303f strb.w r3, [r7, #63] ; 0x3f + 801da08: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 801da0c: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 + 801da10: fb03 f202 mul.w r2, r3, r2 + 801da14: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 + 801da18: f9b7 102a ldrsh.w r1, [r7, #42] ; 0x2a + 801da1c: fb01 f303 mul.w r3, r1, r3 + 801da20: 429a cmp r2, r3 + 801da22: da02 bge.n 801da2a + 801da24: 2301 movs r3, #1 + 801da26: f887 303f strb.w r3, [r7, #63] ; 0x3f do { if(!inv) { - 801dabe: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 801dac2: f083 0301 eor.w r3, r3, #1 - 801dac6: b2db uxtb r3, r3 - 801dac8: 2b00 cmp r3, #0 - 801daca: d015 beq.n 801daf8 + 801da2a: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 801da2e: f083 0301 eor.w r3, r3, #1 + 801da32: b2db uxtb r3, r3 + 801da34: 2b00 cmp r3, #0 + 801da36: d015 beq.n 801da64 i_next_left = i_prev_left - 1; - 801dacc: 6d3b ldr r3, [r7, #80] ; 0x50 - 801dace: 3b01 subs r3, #1 - 801dad0: 64bb str r3, [r7, #72] ; 0x48 + 801da38: 6d3b ldr r3, [r7, #80] ; 0x50 + 801da3a: 3b01 subs r3, #1 + 801da3c: 64bb str r3, [r7, #72] ; 0x48 if(i_next_left < 0) i_next_left = point_cnt + i_next_left; - 801dad2: 6cbb ldr r3, [r7, #72] ; 0x48 - 801dad4: 2b00 cmp r3, #0 - 801dad6: da03 bge.n 801dae0 - 801dad8: 887b ldrh r3, [r7, #2] - 801dada: 6cba ldr r2, [r7, #72] ; 0x48 - 801dadc: 4413 add r3, r2 - 801dade: 64bb str r3, [r7, #72] ; 0x48 + 801da3e: 6cbb ldr r3, [r7, #72] ; 0x48 + 801da40: 2b00 cmp r3, #0 + 801da42: da03 bge.n 801da4c + 801da44: 887b ldrh r3, [r7, #2] + 801da46: 6cba ldr r2, [r7, #72] ; 0x48 + 801da48: 4413 add r3, r2 + 801da4a: 64bb str r3, [r7, #72] ; 0x48 i_next_right = i_prev_right + 1; - 801dae0: 6cfb ldr r3, [r7, #76] ; 0x4c - 801dae2: 3301 adds r3, #1 - 801dae4: 647b str r3, [r7, #68] ; 0x44 + 801da4c: 6cfb ldr r3, [r7, #76] ; 0x4c + 801da4e: 3301 adds r3, #1 + 801da50: 647b str r3, [r7, #68] ; 0x44 if(i_next_right > point_cnt - 1) i_next_right = 0; - 801dae6: 887b ldrh r3, [r7, #2] - 801dae8: 6c7a ldr r2, [r7, #68] ; 0x44 - 801daea: 429a cmp r2, r3 - 801daec: db17 blt.n 801db1e - 801daee: 2300 movs r3, #0 - 801daf0: 647b str r3, [r7, #68] ; 0x44 - 801daf2: e014 b.n 801db1e - 801daf4: 08046c50 .word 0x08046c50 + 801da52: 887b ldrh r3, [r7, #2] + 801da54: 6c7a ldr r2, [r7, #68] ; 0x44 + 801da56: 429a cmp r2, r3 + 801da58: db17 blt.n 801da8a + 801da5a: 2300 movs r3, #0 + 801da5c: 647b str r3, [r7, #68] ; 0x44 + 801da5e: e014 b.n 801da8a + 801da60: 08046ba8 .word 0x08046ba8 } else { i_next_left = i_prev_left + 1; - 801daf8: 6d3b ldr r3, [r7, #80] ; 0x50 - 801dafa: 3301 adds r3, #1 - 801dafc: 64bb str r3, [r7, #72] ; 0x48 + 801da64: 6d3b ldr r3, [r7, #80] ; 0x50 + 801da66: 3301 adds r3, #1 + 801da68: 64bb str r3, [r7, #72] ; 0x48 if(i_next_left > point_cnt - 1) i_next_left = 0; - 801dafe: 887b ldrh r3, [r7, #2] - 801db00: 6cba ldr r2, [r7, #72] ; 0x48 - 801db02: 429a cmp r2, r3 - 801db04: db01 blt.n 801db0a - 801db06: 2300 movs r3, #0 - 801db08: 64bb str r3, [r7, #72] ; 0x48 + 801da6a: 887b ldrh r3, [r7, #2] + 801da6c: 6cba ldr r2, [r7, #72] ; 0x48 + 801da6e: 429a cmp r2, r3 + 801da70: db01 blt.n 801da76 + 801da72: 2300 movs r3, #0 + 801da74: 64bb str r3, [r7, #72] ; 0x48 i_next_right = i_prev_right - 1; - 801db0a: 6cfb ldr r3, [r7, #76] ; 0x4c - 801db0c: 3b01 subs r3, #1 - 801db0e: 647b str r3, [r7, #68] ; 0x44 + 801da76: 6cfb ldr r3, [r7, #76] ; 0x4c + 801da78: 3b01 subs r3, #1 + 801da7a: 647b str r3, [r7, #68] ; 0x44 if(i_next_right < 0) i_next_right = point_cnt + i_next_right; - 801db10: 6c7b ldr r3, [r7, #68] ; 0x44 - 801db12: 2b00 cmp r3, #0 - 801db14: da03 bge.n 801db1e - 801db16: 887b ldrh r3, [r7, #2] - 801db18: 6c7a ldr r2, [r7, #68] ; 0x44 - 801db1a: 4413 add r3, r2 - 801db1c: 647b str r3, [r7, #68] ; 0x44 + 801da7c: 6c7b ldr r3, [r7, #68] ; 0x44 + 801da7e: 2b00 cmp r3, #0 + 801da80: da03 bge.n 801da8a + 801da82: 887b ldrh r3, [r7, #2] + 801da84: 6c7a ldr r2, [r7, #68] ; 0x44 + 801da86: 4413 add r3, r2 + 801da88: 647b str r3, [r7, #68] ; 0x44 } if(p[i_next_left].y >= p[i_prev_left].y) { - 801db1e: 6cbb ldr r3, [r7, #72] ; 0x48 - 801db20: 009b lsls r3, r3, #2 - 801db22: 6bba ldr r2, [r7, #56] ; 0x38 - 801db24: 4413 add r3, r2 - 801db26: f9b3 2002 ldrsh.w r2, [r3, #2] - 801db2a: 6d3b ldr r3, [r7, #80] ; 0x50 - 801db2c: 009b lsls r3, r3, #2 - 801db2e: 6bb9 ldr r1, [r7, #56] ; 0x38 - 801db30: 440b add r3, r1 - 801db32: f9b3 3002 ldrsh.w r3, [r3, #2] - 801db36: 429a cmp r2, r3 - 801db38: db47 blt.n 801dbca + 801da8a: 6cbb ldr r3, [r7, #72] ; 0x48 + 801da8c: 009b lsls r3, r3, #2 + 801da8e: 6bba ldr r2, [r7, #56] ; 0x38 + 801da90: 4413 add r3, r2 + 801da92: f9b3 2002 ldrsh.w r2, [r3, #2] + 801da96: 6d3b ldr r3, [r7, #80] ; 0x50 + 801da98: 009b lsls r3, r3, #2 + 801da9a: 6bb9 ldr r1, [r7, #56] ; 0x38 + 801da9c: 440b add r3, r1 + 801da9e: f9b3 3002 ldrsh.w r3, [r3, #2] + 801daa2: 429a cmp r2, r3 + 801daa4: db47 blt.n 801db36 if(p[i_next_left].y != p[i_prev_left].y && - 801db3a: 6cbb ldr r3, [r7, #72] ; 0x48 - 801db3c: 009b lsls r3, r3, #2 - 801db3e: 6bba ldr r2, [r7, #56] ; 0x38 - 801db40: 4413 add r3, r2 - 801db42: f9b3 2002 ldrsh.w r2, [r3, #2] - 801db46: 6d3b ldr r3, [r7, #80] ; 0x50 - 801db48: 009b lsls r3, r3, #2 - 801db4a: 6bb9 ldr r1, [r7, #56] ; 0x38 - 801db4c: 440b add r3, r1 - 801db4e: f9b3 3002 ldrsh.w r3, [r3, #2] - 801db52: 429a cmp r2, r3 - 801db54: d034 beq.n 801dbc0 + 801daa6: 6cbb ldr r3, [r7, #72] ; 0x48 + 801daa8: 009b lsls r3, r3, #2 + 801daaa: 6bba ldr r2, [r7, #56] ; 0x38 + 801daac: 4413 add r3, r2 + 801daae: f9b3 2002 ldrsh.w r2, [r3, #2] + 801dab2: 6d3b ldr r3, [r7, #80] ; 0x50 + 801dab4: 009b lsls r3, r3, #2 + 801dab6: 6bb9 ldr r1, [r7, #56] ; 0x38 + 801dab8: 440b add r3, r1 + 801daba: f9b3 3002 ldrsh.w r3, [r3, #2] + 801dabe: 429a cmp r2, r3 + 801dac0: d034 beq.n 801db2c p[i_next_left].x != p[i_prev_left].x) { - 801db56: 6cbb ldr r3, [r7, #72] ; 0x48 - 801db58: 009b lsls r3, r3, #2 - 801db5a: 6bba ldr r2, [r7, #56] ; 0x38 - 801db5c: 4413 add r3, r2 - 801db5e: f9b3 2000 ldrsh.w r2, [r3] - 801db62: 6d3b ldr r3, [r7, #80] ; 0x50 - 801db64: 009b lsls r3, r3, #2 - 801db66: 6bb9 ldr r1, [r7, #56] ; 0x38 - 801db68: 440b add r3, r1 - 801db6a: f9b3 3000 ldrsh.w r3, [r3] + 801dac2: 6cbb ldr r3, [r7, #72] ; 0x48 + 801dac4: 009b lsls r3, r3, #2 + 801dac6: 6bba ldr r2, [r7, #56] ; 0x38 + 801dac8: 4413 add r3, r2 + 801daca: f9b3 2000 ldrsh.w r2, [r3] + 801dace: 6d3b ldr r3, [r7, #80] ; 0x50 + 801dad0: 009b lsls r3, r3, #2 + 801dad2: 6bb9 ldr r1, [r7, #56] ; 0x38 + 801dad4: 440b add r3, r1 + 801dad6: f9b3 3000 ldrsh.w r3, [r3] if(p[i_next_left].y != p[i_prev_left].y && - 801db6e: 429a cmp r2, r3 - 801db70: d026 beq.n 801dbc0 + 801dada: 429a cmp r2, r3 + 801dadc: d026 beq.n 801db2c lv_draw_mask_line_points_init(mp_next, p[i_prev_left].x, p[i_prev_left].y, - 801db72: 6d3b ldr r3, [r7, #80] ; 0x50 - 801db74: 009b lsls r3, r3, #2 - 801db76: 6bba ldr r2, [r7, #56] ; 0x38 - 801db78: 4413 add r3, r2 - 801db7a: f9b3 1000 ldrsh.w r1, [r3] - 801db7e: 6d3b ldr r3, [r7, #80] ; 0x50 - 801db80: 009b lsls r3, r3, #2 - 801db82: 6bba ldr r2, [r7, #56] ; 0x38 - 801db84: 4413 add r3, r2 - 801db86: f9b3 0002 ldrsh.w r0, [r3, #2] + 801dade: 6d3b ldr r3, [r7, #80] ; 0x50 + 801dae0: 009b lsls r3, r3, #2 + 801dae2: 6bba ldr r2, [r7, #56] ; 0x38 + 801dae4: 4413 add r3, r2 + 801dae6: f9b3 1000 ldrsh.w r1, [r3] + 801daea: 6d3b ldr r3, [r7, #80] ; 0x50 + 801daec: 009b lsls r3, r3, #2 + 801daee: 6bba ldr r2, [r7, #56] ; 0x38 + 801daf0: 4413 add r3, r2 + 801daf2: f9b3 0002 ldrsh.w r0, [r3, #2] p[i_next_left].x, p[i_next_left].y, - 801db8a: 6cbb ldr r3, [r7, #72] ; 0x48 - 801db8c: 009b lsls r3, r3, #2 - 801db8e: 6bba ldr r2, [r7, #56] ; 0x38 - 801db90: 4413 add r3, r2 + 801daf6: 6cbb ldr r3, [r7, #72] ; 0x48 + 801daf8: 009b lsls r3, r3, #2 + 801dafa: 6bba ldr r2, [r7, #56] ; 0x38 + 801dafc: 4413 add r3, r2 lv_draw_mask_line_points_init(mp_next, p[i_prev_left].x, p[i_prev_left].y, - 801db92: f9b3 4000 ldrsh.w r4, [r3] + 801dafe: f9b3 4000 ldrsh.w r4, [r3] p[i_next_left].x, p[i_next_left].y, - 801db96: 6cbb ldr r3, [r7, #72] ; 0x48 - 801db98: 009b lsls r3, r3, #2 - 801db9a: 6bba ldr r2, [r7, #56] ; 0x38 - 801db9c: 4413 add r3, r2 + 801db02: 6cbb ldr r3, [r7, #72] ; 0x48 + 801db04: 009b lsls r3, r3, #2 + 801db06: 6bba ldr r2, [r7, #56] ; 0x38 + 801db08: 4413 add r3, r2 lv_draw_mask_line_points_init(mp_next, p[i_prev_left].x, p[i_prev_left].y, - 801db9e: f9b3 3002 ldrsh.w r3, [r3, #2] - 801dba2: 2201 movs r2, #1 - 801dba4: 9201 str r2, [sp, #4] - 801dba6: 9300 str r3, [sp, #0] - 801dba8: 4623 mov r3, r4 - 801dbaa: 4602 mov r2, r0 - 801dbac: 6d78 ldr r0, [r7, #84] ; 0x54 - 801dbae: f7f5 fbd5 bl 801335c + 801db0a: f9b3 3002 ldrsh.w r3, [r3, #2] + 801db0e: 2201 movs r2, #1 + 801db10: 9201 str r2, [sp, #4] + 801db12: 9300 str r3, [sp, #0] + 801db14: 4623 mov r3, r4 + 801db16: 4602 mov r2, r0 + 801db18: 6d78 ldr r0, [r7, #84] ; 0x54 + 801db1a: f7f5 fbd5 bl 80132c8 LV_DRAW_MASK_LINE_SIDE_RIGHT); lv_draw_mask_add(mp_next, mp); - 801dbb2: 6af9 ldr r1, [r7, #44] ; 0x2c - 801dbb4: 6d78 ldr r0, [r7, #84] ; 0x54 - 801dbb6: f7f5 fa45 bl 8013044 + 801db1e: 6af9 ldr r1, [r7, #44] ; 0x2c + 801db20: 6d78 ldr r0, [r7, #84] ; 0x54 + 801db22: f7f5 fa45 bl 8012fb0 mp_next++; - 801dbba: 6d7b ldr r3, [r7, #84] ; 0x54 - 801dbbc: 332c adds r3, #44 ; 0x2c - 801dbbe: 657b str r3, [r7, #84] ; 0x54 + 801db26: 6d7b ldr r3, [r7, #84] ; 0x54 + 801db28: 332c adds r3, #44 ; 0x2c + 801db2a: 657b str r3, [r7, #84] ; 0x54 } mask_cnt++; - 801dbc0: 6c3b ldr r3, [r7, #64] ; 0x40 - 801dbc2: 3301 adds r3, #1 - 801dbc4: 643b str r3, [r7, #64] ; 0x40 + 801db2c: 6c3b ldr r3, [r7, #64] ; 0x40 + 801db2e: 3301 adds r3, #1 + 801db30: 643b str r3, [r7, #64] ; 0x40 i_prev_left = i_next_left; - 801dbc6: 6cbb ldr r3, [r7, #72] ; 0x48 - 801dbc8: 653b str r3, [r7, #80] ; 0x50 + 801db32: 6cbb ldr r3, [r7, #72] ; 0x48 + 801db34: 653b str r3, [r7, #80] ; 0x50 } if(mask_cnt == point_cnt) break; - 801dbca: 887b ldrh r3, [r7, #2] - 801dbcc: 6c3a ldr r2, [r7, #64] ; 0x40 - 801dbce: 429a cmp r2, r3 - 801dbd0: d05b beq.n 801dc8a + 801db36: 887b ldrh r3, [r7, #2] + 801db38: 6c3a ldr r2, [r7, #64] ; 0x40 + 801db3a: 429a cmp r2, r3 + 801db3c: d05b beq.n 801dbf6 if(p[i_next_right].y >= p[i_prev_right].y) { - 801dbd2: 6c7b ldr r3, [r7, #68] ; 0x44 - 801dbd4: 009b lsls r3, r3, #2 - 801dbd6: 6bba ldr r2, [r7, #56] ; 0x38 - 801dbd8: 4413 add r3, r2 - 801dbda: f9b3 2002 ldrsh.w r2, [r3, #2] - 801dbde: 6cfb ldr r3, [r7, #76] ; 0x4c - 801dbe0: 009b lsls r3, r3, #2 - 801dbe2: 6bb9 ldr r1, [r7, #56] ; 0x38 - 801dbe4: 440b add r3, r1 - 801dbe6: f9b3 3002 ldrsh.w r3, [r3, #2] - 801dbea: 429a cmp r2, r3 - 801dbec: db47 blt.n 801dc7e + 801db3e: 6c7b ldr r3, [r7, #68] ; 0x44 + 801db40: 009b lsls r3, r3, #2 + 801db42: 6bba ldr r2, [r7, #56] ; 0x38 + 801db44: 4413 add r3, r2 + 801db46: f9b3 2002 ldrsh.w r2, [r3, #2] + 801db4a: 6cfb ldr r3, [r7, #76] ; 0x4c + 801db4c: 009b lsls r3, r3, #2 + 801db4e: 6bb9 ldr r1, [r7, #56] ; 0x38 + 801db50: 440b add r3, r1 + 801db52: f9b3 3002 ldrsh.w r3, [r3, #2] + 801db56: 429a cmp r2, r3 + 801db58: db47 blt.n 801dbea if(p[i_next_right].y != p[i_prev_right].y && - 801dbee: 6c7b ldr r3, [r7, #68] ; 0x44 - 801dbf0: 009b lsls r3, r3, #2 - 801dbf2: 6bba ldr r2, [r7, #56] ; 0x38 - 801dbf4: 4413 add r3, r2 - 801dbf6: f9b3 2002 ldrsh.w r2, [r3, #2] - 801dbfa: 6cfb ldr r3, [r7, #76] ; 0x4c - 801dbfc: 009b lsls r3, r3, #2 - 801dbfe: 6bb9 ldr r1, [r7, #56] ; 0x38 - 801dc00: 440b add r3, r1 - 801dc02: f9b3 3002 ldrsh.w r3, [r3, #2] - 801dc06: 429a cmp r2, r3 - 801dc08: d034 beq.n 801dc74 + 801db5a: 6c7b ldr r3, [r7, #68] ; 0x44 + 801db5c: 009b lsls r3, r3, #2 + 801db5e: 6bba ldr r2, [r7, #56] ; 0x38 + 801db60: 4413 add r3, r2 + 801db62: f9b3 2002 ldrsh.w r2, [r3, #2] + 801db66: 6cfb ldr r3, [r7, #76] ; 0x4c + 801db68: 009b lsls r3, r3, #2 + 801db6a: 6bb9 ldr r1, [r7, #56] ; 0x38 + 801db6c: 440b add r3, r1 + 801db6e: f9b3 3002 ldrsh.w r3, [r3, #2] + 801db72: 429a cmp r2, r3 + 801db74: d034 beq.n 801dbe0 p[i_next_right].x != p[i_prev_right].x) { - 801dc0a: 6c7b ldr r3, [r7, #68] ; 0x44 - 801dc0c: 009b lsls r3, r3, #2 - 801dc0e: 6bba ldr r2, [r7, #56] ; 0x38 - 801dc10: 4413 add r3, r2 - 801dc12: f9b3 2000 ldrsh.w r2, [r3] - 801dc16: 6cfb ldr r3, [r7, #76] ; 0x4c - 801dc18: 009b lsls r3, r3, #2 - 801dc1a: 6bb9 ldr r1, [r7, #56] ; 0x38 - 801dc1c: 440b add r3, r1 - 801dc1e: f9b3 3000 ldrsh.w r3, [r3] + 801db76: 6c7b ldr r3, [r7, #68] ; 0x44 + 801db78: 009b lsls r3, r3, #2 + 801db7a: 6bba ldr r2, [r7, #56] ; 0x38 + 801db7c: 4413 add r3, r2 + 801db7e: f9b3 2000 ldrsh.w r2, [r3] + 801db82: 6cfb ldr r3, [r7, #76] ; 0x4c + 801db84: 009b lsls r3, r3, #2 + 801db86: 6bb9 ldr r1, [r7, #56] ; 0x38 + 801db88: 440b add r3, r1 + 801db8a: f9b3 3000 ldrsh.w r3, [r3] if(p[i_next_right].y != p[i_prev_right].y && - 801dc22: 429a cmp r2, r3 - 801dc24: d026 beq.n 801dc74 + 801db8e: 429a cmp r2, r3 + 801db90: d026 beq.n 801dbe0 lv_draw_mask_line_points_init(mp_next, p[i_prev_right].x, p[i_prev_right].y, - 801dc26: 6cfb ldr r3, [r7, #76] ; 0x4c - 801dc28: 009b lsls r3, r3, #2 - 801dc2a: 6bba ldr r2, [r7, #56] ; 0x38 - 801dc2c: 4413 add r3, r2 - 801dc2e: f9b3 1000 ldrsh.w r1, [r3] - 801dc32: 6cfb ldr r3, [r7, #76] ; 0x4c - 801dc34: 009b lsls r3, r3, #2 - 801dc36: 6bba ldr r2, [r7, #56] ; 0x38 - 801dc38: 4413 add r3, r2 - 801dc3a: f9b3 0002 ldrsh.w r0, [r3, #2] + 801db92: 6cfb ldr r3, [r7, #76] ; 0x4c + 801db94: 009b lsls r3, r3, #2 + 801db96: 6bba ldr r2, [r7, #56] ; 0x38 + 801db98: 4413 add r3, r2 + 801db9a: f9b3 1000 ldrsh.w r1, [r3] + 801db9e: 6cfb ldr r3, [r7, #76] ; 0x4c + 801dba0: 009b lsls r3, r3, #2 + 801dba2: 6bba ldr r2, [r7, #56] ; 0x38 + 801dba4: 4413 add r3, r2 + 801dba6: f9b3 0002 ldrsh.w r0, [r3, #2] p[i_next_right].x, p[i_next_right].y, - 801dc3e: 6c7b ldr r3, [r7, #68] ; 0x44 - 801dc40: 009b lsls r3, r3, #2 - 801dc42: 6bba ldr r2, [r7, #56] ; 0x38 - 801dc44: 4413 add r3, r2 + 801dbaa: 6c7b ldr r3, [r7, #68] ; 0x44 + 801dbac: 009b lsls r3, r3, #2 + 801dbae: 6bba ldr r2, [r7, #56] ; 0x38 + 801dbb0: 4413 add r3, r2 lv_draw_mask_line_points_init(mp_next, p[i_prev_right].x, p[i_prev_right].y, - 801dc46: f9b3 4000 ldrsh.w r4, [r3] + 801dbb2: f9b3 4000 ldrsh.w r4, [r3] p[i_next_right].x, p[i_next_right].y, - 801dc4a: 6c7b ldr r3, [r7, #68] ; 0x44 - 801dc4c: 009b lsls r3, r3, #2 - 801dc4e: 6bba ldr r2, [r7, #56] ; 0x38 - 801dc50: 4413 add r3, r2 + 801dbb6: 6c7b ldr r3, [r7, #68] ; 0x44 + 801dbb8: 009b lsls r3, r3, #2 + 801dbba: 6bba ldr r2, [r7, #56] ; 0x38 + 801dbbc: 4413 add r3, r2 lv_draw_mask_line_points_init(mp_next, p[i_prev_right].x, p[i_prev_right].y, - 801dc52: f9b3 3002 ldrsh.w r3, [r3, #2] - 801dc56: 2200 movs r2, #0 - 801dc58: 9201 str r2, [sp, #4] - 801dc5a: 9300 str r3, [sp, #0] - 801dc5c: 4623 mov r3, r4 - 801dc5e: 4602 mov r2, r0 - 801dc60: 6d78 ldr r0, [r7, #84] ; 0x54 - 801dc62: f7f5 fb7b bl 801335c + 801dbbe: f9b3 3002 ldrsh.w r3, [r3, #2] + 801dbc2: 2200 movs r2, #0 + 801dbc4: 9201 str r2, [sp, #4] + 801dbc6: 9300 str r3, [sp, #0] + 801dbc8: 4623 mov r3, r4 + 801dbca: 4602 mov r2, r0 + 801dbcc: 6d78 ldr r0, [r7, #84] ; 0x54 + 801dbce: f7f5 fb7b bl 80132c8 LV_DRAW_MASK_LINE_SIDE_LEFT); lv_draw_mask_add(mp_next, mp); - 801dc66: 6af9 ldr r1, [r7, #44] ; 0x2c - 801dc68: 6d78 ldr r0, [r7, #84] ; 0x54 - 801dc6a: f7f5 f9eb bl 8013044 + 801dbd2: 6af9 ldr r1, [r7, #44] ; 0x2c + 801dbd4: 6d78 ldr r0, [r7, #84] ; 0x54 + 801dbd6: f7f5 f9eb bl 8012fb0 mp_next++; - 801dc6e: 6d7b ldr r3, [r7, #84] ; 0x54 - 801dc70: 332c adds r3, #44 ; 0x2c - 801dc72: 657b str r3, [r7, #84] ; 0x54 + 801dbda: 6d7b ldr r3, [r7, #84] ; 0x54 + 801dbdc: 332c adds r3, #44 ; 0x2c + 801dbde: 657b str r3, [r7, #84] ; 0x54 } mask_cnt++; - 801dc74: 6c3b ldr r3, [r7, #64] ; 0x40 - 801dc76: 3301 adds r3, #1 - 801dc78: 643b str r3, [r7, #64] ; 0x40 + 801dbe0: 6c3b ldr r3, [r7, #64] ; 0x40 + 801dbe2: 3301 adds r3, #1 + 801dbe4: 643b str r3, [r7, #64] ; 0x40 i_prev_right = i_next_right; - 801dc7a: 6c7b ldr r3, [r7, #68] ; 0x44 - 801dc7c: 64fb str r3, [r7, #76] ; 0x4c + 801dbe6: 6c7b ldr r3, [r7, #68] ; 0x44 + 801dbe8: 64fb str r3, [r7, #76] ; 0x4c } } while(mask_cnt < point_cnt); - 801dc7e: 887b ldrh r3, [r7, #2] - 801dc80: 6c3a ldr r2, [r7, #64] ; 0x40 - 801dc82: 429a cmp r2, r3 - 801dc84: f4ff af1b bcc.w 801dabe - 801dc88: e000 b.n 801dc8c + 801dbea: 887b ldrh r3, [r7, #2] + 801dbec: 6c3a ldr r2, [r7, #64] ; 0x40 + 801dbee: 429a cmp r2, r3 + 801dbf0: f4ff af1b bcc.w 801da2a + 801dbf4: e000 b.n 801dbf8 if(mask_cnt == point_cnt) break; - 801dc8a: bf00 nop + 801dbf6: bf00 nop lv_draw_rect(draw_ctx, draw_dsc, &poly_coords); - 801dc8c: f107 031c add.w r3, r7, #28 - 801dc90: 461a mov r2, r3 - 801dc92: 68b9 ldr r1, [r7, #8] - 801dc94: 68f8 ldr r0, [r7, #12] - 801dc96: f7f7 fdef bl 8015878 + 801dbf8: f107 031c add.w r3, r7, #28 + 801dbfc: 461a mov r2, r3 + 801dbfe: 68b9 ldr r1, [r7, #8] + 801dc00: 68f8 ldr r0, [r7, #12] + 801dc02: f7f7 fdef bl 80157e4 lv_draw_mask_remove_custom(mp); - 801dc9a: 6af8 ldr r0, [r7, #44] ; 0x2c - 801dc9c: f7f5 fa6e bl 801317c + 801dc06: 6af8 ldr r0, [r7, #44] ; 0x2c + 801dc08: f7f5 fa6e bl 80130e8 lv_mem_buf_release(mp); - 801dca0: 6af8 ldr r0, [r7, #44] ; 0x2c - 801dca2: f014 ff59 bl 8032b58 + 801dc0c: 6af8 ldr r0, [r7, #44] ; 0x2c + 801dc0e: f014 ff59 bl 8032ac4 lv_mem_buf_release(p); - 801dca6: 6bb8 ldr r0, [r7, #56] ; 0x38 - 801dca8: f014 ff56 bl 8032b58 + 801dc12: 6bb8 ldr r0, [r7, #56] ; 0x38 + 801dc14: f014 ff56 bl 8032ac4 draw_ctx->clip_area = clip_area_ori; - 801dcac: 68fb ldr r3, [r7, #12] - 801dcae: 6b3a ldr r2, [r7, #48] ; 0x30 - 801dcb0: 609a str r2, [r3, #8] - 801dcb2: e004 b.n 801dcbe + 801dc18: 68fb ldr r3, [r7, #12] + 801dc1a: 6b3a ldr r2, [r7, #48] ; 0x30 + 801dc1c: 609a str r2, [r3, #8] + 801dc1e: e004 b.n 801dc2a if(point_cnt < 3) return; - 801dcb4: bf00 nop - 801dcb6: e002 b.n 801dcbe + 801dc20: bf00 nop + 801dc22: e002 b.n 801dc2a if(points == NULL) return; - 801dcb8: bf00 nop - 801dcba: e000 b.n 801dcbe + 801dc24: bf00 nop + 801dc26: e000 b.n 801dc2a if(p == NULL) return; - 801dcbc: bf00 nop + 801dc28: bf00 nop LV_UNUSED(point_cnt); LV_UNUSED(draw_ctx); LV_UNUSED(draw_dsc); LV_LOG_WARN("Can't draw polygon with LV_DRAW_COMPLEX == 0"); #endif /*LV_DRAW_COMPLEX*/ } - 801dcbe: 3764 adds r7, #100 ; 0x64 - 801dcc0: 46bd mov sp, r7 - 801dcc2: bd90 pop {r4, r7, pc} + 801dc2a: 3764 adds r7, #100 ; 0x64 + 801dc2c: 46bd mov sp, r7 + 801dc2e: bd90 pop {r4, r7, pc} -0801dcc4 : +0801dc30 : { - 801dcc4: b480 push {r7} - 801dcc6: b083 sub sp, #12 - 801dcc8: af00 add r7, sp, #0 - 801dcca: 6078 str r0, [r7, #4] - 801dccc: 6039 str r1, [r7, #0] + 801dc30: b480 push {r7} + 801dc32: b083 sub sp, #12 + 801dc34: af00 add r7, sp, #0 + 801dc36: 6078 str r0, [r7, #4] + 801dc38: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 801dcce: 683b ldr r3, [r7, #0] - 801dcd0: f9b3 2000 ldrsh.w r2, [r3] - 801dcd4: 687b ldr r3, [r7, #4] - 801dcd6: 801a strh r2, [r3, #0] + 801dc3a: 683b ldr r3, [r7, #0] + 801dc3c: f9b3 2000 ldrsh.w r2, [r3] + 801dc40: 687b ldr r3, [r7, #4] + 801dc42: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 801dcd8: 683b ldr r3, [r7, #0] - 801dcda: f9b3 2002 ldrsh.w r2, [r3, #2] - 801dcde: 687b ldr r3, [r7, #4] - 801dce0: 805a strh r2, [r3, #2] + 801dc44: 683b ldr r3, [r7, #0] + 801dc46: f9b3 2002 ldrsh.w r2, [r3, #2] + 801dc4a: 687b ldr r3, [r7, #4] + 801dc4c: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 801dce2: 683b ldr r3, [r7, #0] - 801dce4: f9b3 2004 ldrsh.w r2, [r3, #4] - 801dce8: 687b ldr r3, [r7, #4] - 801dcea: 809a strh r2, [r3, #4] + 801dc4e: 683b ldr r3, [r7, #0] + 801dc50: f9b3 2004 ldrsh.w r2, [r3, #4] + 801dc54: 687b ldr r3, [r7, #4] + 801dc56: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 801dcec: 683b ldr r3, [r7, #0] - 801dcee: f9b3 2006 ldrsh.w r2, [r3, #6] - 801dcf2: 687b ldr r3, [r7, #4] - 801dcf4: 80da strh r2, [r3, #6] + 801dc58: 683b ldr r3, [r7, #0] + 801dc5a: f9b3 2006 ldrsh.w r2, [r3, #6] + 801dc5e: 687b ldr r3, [r7, #4] + 801dc60: 80da strh r2, [r3, #6] } - 801dcf6: bf00 nop - 801dcf8: 370c adds r7, #12 - 801dcfa: 46bd mov sp, r7 - 801dcfc: bc80 pop {r7} - 801dcfe: 4770 bx lr + 801dc62: bf00 nop + 801dc64: 370c adds r7, #12 + 801dc66: 46bd mov sp, r7 + 801dc68: bc80 pop {r7} + 801dc6a: 4770 bx lr -0801dd00 : +0801dc6c : { - 801dd00: b480 push {r7} - 801dd02: b083 sub sp, #12 - 801dd04: af00 add r7, sp, #0 - 801dd06: 6078 str r0, [r7, #4] + 801dc6c: b480 push {r7} + 801dc6e: b083 sub sp, #12 + 801dc70: af00 add r7, sp, #0 + 801dc72: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 801dd08: 687b ldr r3, [r7, #4] - 801dd0a: f9b3 3004 ldrsh.w r3, [r3, #4] - 801dd0e: b29a uxth r2, r3 - 801dd10: 687b ldr r3, [r7, #4] - 801dd12: f9b3 3000 ldrsh.w r3, [r3] - 801dd16: b29b uxth r3, r3 - 801dd18: 1ad3 subs r3, r2, r3 - 801dd1a: b29b uxth r3, r3 - 801dd1c: 3301 adds r3, #1 - 801dd1e: b29b uxth r3, r3 - 801dd20: b21b sxth r3, r3 + 801dc74: 687b ldr r3, [r7, #4] + 801dc76: f9b3 3004 ldrsh.w r3, [r3, #4] + 801dc7a: b29a uxth r2, r3 + 801dc7c: 687b ldr r3, [r7, #4] + 801dc7e: f9b3 3000 ldrsh.w r3, [r3] + 801dc82: b29b uxth r3, r3 + 801dc84: 1ad3 subs r3, r2, r3 + 801dc86: b29b uxth r3, r3 + 801dc88: 3301 adds r3, #1 + 801dc8a: b29b uxth r3, r3 + 801dc8c: b21b sxth r3, r3 } - 801dd22: 4618 mov r0, r3 - 801dd24: 370c adds r7, #12 - 801dd26: 46bd mov sp, r7 - 801dd28: bc80 pop {r7} - 801dd2a: 4770 bx lr + 801dc8e: 4618 mov r0, r3 + 801dc90: 370c adds r7, #12 + 801dc92: 46bd mov sp, r7 + 801dc94: bc80 pop {r7} + 801dc96: 4770 bx lr -0801dd2c : +0801dc98 : { - 801dd2c: b480 push {r7} - 801dd2e: b083 sub sp, #12 - 801dd30: af00 add r7, sp, #0 - 801dd32: 6078 str r0, [r7, #4] + 801dc98: b480 push {r7} + 801dc9a: b083 sub sp, #12 + 801dc9c: af00 add r7, sp, #0 + 801dc9e: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 801dd34: 687b ldr r3, [r7, #4] - 801dd36: f9b3 3006 ldrsh.w r3, [r3, #6] - 801dd3a: b29a uxth r2, r3 - 801dd3c: 687b ldr r3, [r7, #4] - 801dd3e: f9b3 3002 ldrsh.w r3, [r3, #2] - 801dd42: b29b uxth r3, r3 - 801dd44: 1ad3 subs r3, r2, r3 - 801dd46: b29b uxth r3, r3 - 801dd48: 3301 adds r3, #1 - 801dd4a: b29b uxth r3, r3 - 801dd4c: b21b sxth r3, r3 + 801dca0: 687b ldr r3, [r7, #4] + 801dca2: f9b3 3006 ldrsh.w r3, [r3, #6] + 801dca6: b29a uxth r2, r3 + 801dca8: 687b ldr r3, [r7, #4] + 801dcaa: f9b3 3002 ldrsh.w r3, [r3, #2] + 801dcae: b29b uxth r3, r3 + 801dcb0: 1ad3 subs r3, r2, r3 + 801dcb2: b29b uxth r3, r3 + 801dcb4: 3301 adds r3, #1 + 801dcb6: b29b uxth r3, r3 + 801dcb8: b21b sxth r3, r3 } - 801dd4e: 4618 mov r0, r3 - 801dd50: 370c adds r7, #12 - 801dd52: 46bd mov sp, r7 - 801dd54: bc80 pop {r7} - 801dd56: 4770 bx lr + 801dcba: 4618 mov r0, r3 + 801dcbc: 370c adds r7, #12 + 801dcbe: 46bd mov sp, r7 + 801dcc0: bc80 pop {r7} + 801dcc2: 4770 bx lr -0801dd58 : +0801dcc4 : /********************** * GLOBAL FUNCTIONS **********************/ void lv_draw_sw_rect(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords) { - 801dd58: b580 push {r7, lr} - 801dd5a: b084 sub sp, #16 - 801dd5c: af00 add r7, sp, #0 - 801dd5e: 60f8 str r0, [r7, #12] - 801dd60: 60b9 str r1, [r7, #8] - 801dd62: 607a str r2, [r7, #4] + 801dcc4: b580 push {r7, lr} + 801dcc6: b084 sub sp, #16 + 801dcc8: af00 add r7, sp, #0 + 801dcca: 60f8 str r0, [r7, #12] + 801dccc: 60b9 str r1, [r7, #8] + 801dcce: 607a str r2, [r7, #4] #if LV_DRAW_COMPLEX draw_shadow(draw_ctx, dsc, coords); - 801dd64: 687a ldr r2, [r7, #4] - 801dd66: 68b9 ldr r1, [r7, #8] - 801dd68: 68f8 ldr r0, [r7, #12] - 801dd6a: f000 fdc1 bl 801e8f0 + 801dcd0: 687a ldr r2, [r7, #4] + 801dcd2: 68b9 ldr r1, [r7, #8] + 801dcd4: 68f8 ldr r0, [r7, #12] + 801dcd6: f000 fdc1 bl 801e85c #endif draw_bg(draw_ctx, dsc, coords); - 801dd6e: 687a ldr r2, [r7, #4] - 801dd70: 68b9 ldr r1, [r7, #8] - 801dd72: 68f8 ldr r0, [r7, #12] - 801dd74: f000 f827 bl 801ddc6 + 801dcda: 687a ldr r2, [r7, #4] + 801dcdc: 68b9 ldr r1, [r7, #8] + 801dcde: 68f8 ldr r0, [r7, #12] + 801dce0: f000 f827 bl 801dd32 draw_bg_img(draw_ctx, dsc, coords); - 801dd78: 687a ldr r2, [r7, #4] - 801dd7a: 68b9 ldr r1, [r7, #8] - 801dd7c: 68f8 ldr r0, [r7, #12] - 801dd7e: f000 fb25 bl 801e3cc + 801dce4: 687a ldr r2, [r7, #4] + 801dce6: 68b9 ldr r1, [r7, #8] + 801dce8: 68f8 ldr r0, [r7, #12] + 801dcea: f000 fb25 bl 801e338 draw_border(draw_ctx, dsc, coords); - 801dd82: 687a ldr r2, [r7, #4] - 801dd84: 68b9 ldr r1, [r7, #8] - 801dd86: 68f8 ldr r0, [r7, #12] - 801dd88: f000 fcba bl 801e700 + 801dcee: 687a ldr r2, [r7, #4] + 801dcf0: 68b9 ldr r1, [r7, #8] + 801dcf2: 68f8 ldr r0, [r7, #12] + 801dcf4: f000 fcba bl 801e66c draw_outline(draw_ctx, dsc, coords); - 801dd8c: 687a ldr r2, [r7, #4] - 801dd8e: 68b9 ldr r1, [r7, #8] - 801dd90: 68f8 ldr r0, [r7, #12] - 801dd92: f002 fb46 bl 8020422 + 801dcf8: 687a ldr r2, [r7, #4] + 801dcfa: 68b9 ldr r1, [r7, #8] + 801dcfc: 68f8 ldr r0, [r7, #12] + 801dcfe: f002 fb46 bl 802038e LV_ASSERT_MEM_INTEGRITY(); } - 801dd96: bf00 nop - 801dd98: 3710 adds r7, #16 - 801dd9a: 46bd mov sp, r7 - 801dd9c: bd80 pop {r7, pc} + 801dd02: bf00 nop + 801dd04: 3710 adds r7, #16 + 801dd06: 46bd mov sp, r7 + 801dd08: bd80 pop {r7, pc} -0801dd9e : +0801dd0a : void lv_draw_sw_bg(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords) { - 801dd9e: b580 push {r7, lr} - 801dda0: b084 sub sp, #16 - 801dda2: af00 add r7, sp, #0 - 801dda4: 60f8 str r0, [r7, #12] - 801dda6: 60b9 str r1, [r7, #8] - 801dda8: 607a str r2, [r7, #4] + 801dd0a: b580 push {r7, lr} + 801dd0c: b084 sub sp, #16 + 801dd0e: af00 add r7, sp, #0 + 801dd10: 60f8 str r0, [r7, #12] + 801dd12: 60b9 str r1, [r7, #8] + 801dd14: 607a str r2, [r7, #4] #if LV_COLOR_SCREEN_TRANSP && LV_COLOR_DEPTH == 32 lv_memset_00(draw_ctx->buf, lv_area_get_size(draw_ctx->buf_area) * sizeof(lv_color_t)); #endif draw_bg(draw_ctx, dsc, coords); - 801ddaa: 687a ldr r2, [r7, #4] - 801ddac: 68b9 ldr r1, [r7, #8] - 801ddae: 68f8 ldr r0, [r7, #12] - 801ddb0: f000 f809 bl 801ddc6 + 801dd16: 687a ldr r2, [r7, #4] + 801dd18: 68b9 ldr r1, [r7, #8] + 801dd1a: 68f8 ldr r0, [r7, #12] + 801dd1c: f000 f809 bl 801dd32 draw_bg_img(draw_ctx, dsc, coords); - 801ddb4: 687a ldr r2, [r7, #4] - 801ddb6: 68b9 ldr r1, [r7, #8] - 801ddb8: 68f8 ldr r0, [r7, #12] - 801ddba: f000 fb07 bl 801e3cc + 801dd20: 687a ldr r2, [r7, #4] + 801dd22: 68b9 ldr r1, [r7, #8] + 801dd24: 68f8 ldr r0, [r7, #12] + 801dd26: f000 fb07 bl 801e338 } - 801ddbe: bf00 nop - 801ddc0: 3710 adds r7, #16 - 801ddc2: 46bd mov sp, r7 - 801ddc4: bd80 pop {r7, pc} + 801dd2a: bf00 nop + 801dd2c: 3710 adds r7, #16 + 801dd2e: 46bd mov sp, r7 + 801dd30: bd80 pop {r7, pc} -0801ddc6 : +0801dd32 : /********************** * STATIC FUNCTIONS **********************/ static void draw_bg(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords) { - 801ddc6: b580 push {r7, lr} - 801ddc8: b0a6 sub sp, #152 ; 0x98 - 801ddca: af00 add r7, sp, #0 - 801ddcc: 60f8 str r0, [r7, #12] - 801ddce: 60b9 str r1, [r7, #8] - 801ddd0: 607a str r2, [r7, #4] + 801dd32: b580 push {r7, lr} + 801dd34: b0a6 sub sp, #152 ; 0x98 + 801dd36: af00 add r7, sp, #0 + 801dd38: 60f8 str r0, [r7, #12] + 801dd3a: 60b9 str r1, [r7, #8] + 801dd3c: 607a str r2, [r7, #4] if(dsc->bg_opa <= LV_OPA_MIN) return; - 801ddd2: 68bb ldr r3, [r7, #8] - 801ddd4: 78db ldrb r3, [r3, #3] - 801ddd6: 2b02 cmp r3, #2 - 801ddd8: f240 82f2 bls.w 801e3c0 + 801dd3e: 68bb ldr r3, [r7, #8] + 801dd40: 78db ldrb r3, [r3, #3] + 801dd42: 2b02 cmp r3, #2 + 801dd44: f240 82f2 bls.w 801e32c lv_area_t bg_coords; lv_area_copy(&bg_coords, coords); - 801dddc: f107 0360 add.w r3, r7, #96 ; 0x60 - 801dde0: 6879 ldr r1, [r7, #4] - 801dde2: 4618 mov r0, r3 - 801dde4: f7ff ff6e bl 801dcc4 + 801dd48: f107 0360 add.w r3, r7, #96 ; 0x60 + 801dd4c: 6879 ldr r1, [r7, #4] + 801dd4e: 4618 mov r0, r3 + 801dd50: f7ff ff6e bl 801dc30 /*If the border fully covers make the bg area 1px smaller to avoid artifacts on the corners*/ if(dsc->border_width > 1 && dsc->border_opa >= LV_OPA_MAX && dsc->radius != 0) { - 801dde8: 68bb ldr r3, [r7, #8] - 801ddea: f9b3 3020 ldrsh.w r3, [r3, #32] - 801ddee: 2b01 cmp r3, #1 - 801ddf0: dd54 ble.n 801de9c - 801ddf2: 68bb ldr r3, [r7, #8] - 801ddf4: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 - 801ddf8: 2bfc cmp r3, #252 ; 0xfc - 801ddfa: d94f bls.n 801de9c - 801ddfc: 68bb ldr r3, [r7, #8] - 801ddfe: f9b3 3000 ldrsh.w r3, [r3] - 801de02: 2b00 cmp r3, #0 - 801de04: d04a beq.n 801de9c + 801dd54: 68bb ldr r3, [r7, #8] + 801dd56: f9b3 3020 ldrsh.w r3, [r3, #32] + 801dd5a: 2b01 cmp r3, #1 + 801dd5c: dd54 ble.n 801de08 + 801dd5e: 68bb ldr r3, [r7, #8] + 801dd60: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 + 801dd64: 2bfc cmp r3, #252 ; 0xfc + 801dd66: d94f bls.n 801de08 + 801dd68: 68bb ldr r3, [r7, #8] + 801dd6a: f9b3 3000 ldrsh.w r3, [r3] + 801dd6e: 2b00 cmp r3, #0 + 801dd70: d04a beq.n 801de08 bg_coords.x1 += (dsc->border_side & LV_BORDER_SIDE_LEFT) ? 1 : 0; - 801de06: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 - 801de0a: b29a uxth r2, r3 - 801de0c: 68bb ldr r3, [r7, #8] - 801de0e: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 801de12: f3c3 0344 ubfx r3, r3, #1, #5 - 801de16: b2db uxtb r3, r3 - 801de18: 109b asrs r3, r3, #2 - 801de1a: b29b uxth r3, r3 - 801de1c: f003 0301 and.w r3, r3, #1 - 801de20: b29b uxth r3, r3 - 801de22: 4413 add r3, r2 - 801de24: b29b uxth r3, r3 - 801de26: b21b sxth r3, r3 - 801de28: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 + 801dd72: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 + 801dd76: b29a uxth r2, r3 + 801dd78: 68bb ldr r3, [r7, #8] + 801dd7a: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 801dd7e: f3c3 0344 ubfx r3, r3, #1, #5 + 801dd82: b2db uxtb r3, r3 + 801dd84: 109b asrs r3, r3, #2 + 801dd86: b29b uxth r3, r3 + 801dd88: f003 0301 and.w r3, r3, #1 + 801dd8c: b29b uxth r3, r3 + 801dd8e: 4413 add r3, r2 + 801dd90: b29b uxth r3, r3 + 801dd92: b21b sxth r3, r3 + 801dd94: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 bg_coords.y1 += (dsc->border_side & LV_BORDER_SIDE_TOP) ? 1 : 0; - 801de2c: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 - 801de30: b29a uxth r2, r3 - 801de32: 68bb ldr r3, [r7, #8] - 801de34: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 801de38: f3c3 0344 ubfx r3, r3, #1, #5 - 801de3c: b2db uxtb r3, r3 - 801de3e: 105b asrs r3, r3, #1 - 801de40: b29b uxth r3, r3 - 801de42: f003 0301 and.w r3, r3, #1 - 801de46: b29b uxth r3, r3 - 801de48: 4413 add r3, r2 - 801de4a: b29b uxth r3, r3 - 801de4c: b21b sxth r3, r3 - 801de4e: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 + 801dd98: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 + 801dd9c: b29a uxth r2, r3 + 801dd9e: 68bb ldr r3, [r7, #8] + 801dda0: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 801dda4: f3c3 0344 ubfx r3, r3, #1, #5 + 801dda8: b2db uxtb r3, r3 + 801ddaa: 105b asrs r3, r3, #1 + 801ddac: b29b uxth r3, r3 + 801ddae: f003 0301 and.w r3, r3, #1 + 801ddb2: b29b uxth r3, r3 + 801ddb4: 4413 add r3, r2 + 801ddb6: b29b uxth r3, r3 + 801ddb8: b21b sxth r3, r3 + 801ddba: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 bg_coords.x2 -= (dsc->border_side & LV_BORDER_SIDE_RIGHT) ? 1 : 0; - 801de52: f9b7 3064 ldrsh.w r3, [r7, #100] ; 0x64 - 801de56: b29a uxth r2, r3 - 801de58: 68bb ldr r3, [r7, #8] - 801de5a: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 801de5e: f3c3 0344 ubfx r3, r3, #1, #5 - 801de62: b2db uxtb r3, r3 - 801de64: 10db asrs r3, r3, #3 - 801de66: b29b uxth r3, r3 - 801de68: f003 0301 and.w r3, r3, #1 - 801de6c: b29b uxth r3, r3 - 801de6e: 1ad3 subs r3, r2, r3 - 801de70: b29b uxth r3, r3 - 801de72: b21b sxth r3, r3 - 801de74: f8a7 3064 strh.w r3, [r7, #100] ; 0x64 + 801ddbe: f9b7 3064 ldrsh.w r3, [r7, #100] ; 0x64 + 801ddc2: b29a uxth r2, r3 + 801ddc4: 68bb ldr r3, [r7, #8] + 801ddc6: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 801ddca: f3c3 0344 ubfx r3, r3, #1, #5 + 801ddce: b2db uxtb r3, r3 + 801ddd0: 10db asrs r3, r3, #3 + 801ddd2: b29b uxth r3, r3 + 801ddd4: f003 0301 and.w r3, r3, #1 + 801ddd8: b29b uxth r3, r3 + 801ddda: 1ad3 subs r3, r2, r3 + 801dddc: b29b uxth r3, r3 + 801ddde: b21b sxth r3, r3 + 801dde0: f8a7 3064 strh.w r3, [r7, #100] ; 0x64 bg_coords.y2 -= (dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? 1 : 0; - 801de78: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 - 801de7c: b29a uxth r2, r3 - 801de7e: 68bb ldr r3, [r7, #8] - 801de80: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 801de84: f3c3 0344 ubfx r3, r3, #1, #5 - 801de88: b2db uxtb r3, r3 - 801de8a: b29b uxth r3, r3 - 801de8c: f003 0301 and.w r3, r3, #1 - 801de90: b29b uxth r3, r3 - 801de92: 1ad3 subs r3, r2, r3 - 801de94: b29b uxth r3, r3 - 801de96: b21b sxth r3, r3 - 801de98: f8a7 3066 strh.w r3, [r7, #102] ; 0x66 + 801dde4: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 + 801dde8: b29a uxth r2, r3 + 801ddea: 68bb ldr r3, [r7, #8] + 801ddec: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 801ddf0: f3c3 0344 ubfx r3, r3, #1, #5 + 801ddf4: b2db uxtb r3, r3 + 801ddf6: b29b uxth r3, r3 + 801ddf8: f003 0301 and.w r3, r3, #1 + 801ddfc: b29b uxth r3, r3 + 801ddfe: 1ad3 subs r3, r2, r3 + 801de00: b29b uxth r3, r3 + 801de02: b21b sxth r3, r3 + 801de04: f8a7 3066 strh.w r3, [r7, #102] ; 0x66 } lv_area_t clipped_coords; if(!_lv_area_intersect(&clipped_coords, &bg_coords, draw_ctx->clip_area)) return; - 801de9c: 68fb ldr r3, [r7, #12] - 801de9e: 689a ldr r2, [r3, #8] - 801dea0: f107 0160 add.w r1, r7, #96 ; 0x60 - 801dea4: f107 0358 add.w r3, r7, #88 ; 0x58 - 801dea8: 4618 mov r0, r3 - 801deaa: f013 f8fd bl 80310a8 <_lv_area_intersect> - 801deae: 4603 mov r3, r0 - 801deb0: f083 0301 eor.w r3, r3, #1 - 801deb4: b2db uxtb r3, r3 - 801deb6: 2b00 cmp r3, #0 - 801deb8: f040 8284 bne.w 801e3c4 + 801de08: 68fb ldr r3, [r7, #12] + 801de0a: 689a ldr r2, [r3, #8] + 801de0c: f107 0160 add.w r1, r7, #96 ; 0x60 + 801de10: f107 0358 add.w r3, r7, #88 ; 0x58 + 801de14: 4618 mov r0, r3 + 801de16: f013 f8fd bl 8031014 <_lv_area_intersect> + 801de1a: 4603 mov r3, r0 + 801de1c: f083 0301 eor.w r3, r3, #1 + 801de20: b2db uxtb r3, r3 + 801de22: 2b00 cmp r3, #0 + 801de24: f040 8284 bne.w 801e330 lv_grad_dir_t grad_dir = dsc->bg_grad.dir; - 801debc: 68bb ldr r3, [r7, #8] - 801debe: 7b5b ldrb r3, [r3, #13] - 801dec0: f3c3 0302 ubfx r3, r3, #0, #3 - 801dec4: b2db uxtb r3, r3 - 801dec6: f887 3097 strb.w r3, [r7, #151] ; 0x97 + 801de28: 68bb ldr r3, [r7, #8] + 801de2a: 7b5b ldrb r3, [r3, #13] + 801de2c: f3c3 0302 ubfx r3, r3, #0, #3 + 801de30: b2db uxtb r3, r3 + 801de32: f887 3097 strb.w r3, [r7, #151] ; 0x97 lv_color_t bg_color = grad_dir == LV_GRAD_DIR_NONE ? dsc->bg_color : dsc->bg_grad.stops[0].color; - 801deca: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 - 801dece: 2b00 cmp r3, #0 - 801ded0: d104 bne.n 801dedc - 801ded2: 68bb ldr r3, [r7, #8] - 801ded4: 889b ldrh r3, [r3, #4] - 801ded6: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 - 801deda: e003 b.n 801dee4 - 801dedc: 68bb ldr r3, [r7, #8] - 801dede: 889b ldrh r3, [r3, #4] - 801dee0: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 + 801de36: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 + 801de3a: 2b00 cmp r3, #0 + 801de3c: d104 bne.n 801de48 + 801de3e: 68bb ldr r3, [r7, #8] + 801de40: 889b ldrh r3, [r3, #4] + 801de42: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 + 801de46: e003 b.n 801de50 + 801de48: 68bb ldr r3, [r7, #8] + 801de4a: 889b ldrh r3, [r3, #4] + 801de4c: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 if(bg_color.full == dsc->bg_grad.stops[1].color.full) grad_dir = LV_GRAD_DIR_NONE; - 801dee4: f8b7 2054 ldrh.w r2, [r7, #84] ; 0x54 - 801dee8: 68bb ldr r3, [r7, #8] - 801deea: 891b ldrh r3, [r3, #8] - 801deec: 429a cmp r2, r3 - 801deee: d102 bne.n 801def6 - 801def0: 2300 movs r3, #0 - 801def2: f887 3097 strb.w r3, [r7, #151] ; 0x97 + 801de50: f8b7 2054 ldrh.w r2, [r7, #84] ; 0x54 + 801de54: 68bb ldr r3, [r7, #8] + 801de56: 891b ldrh r3, [r3, #8] + 801de58: 429a cmp r2, r3 + 801de5a: d102 bne.n 801de62 + 801de5c: 2300 movs r3, #0 + 801de5e: f887 3097 strb.w r3, [r7, #151] ; 0x97 bool mask_any = lv_draw_mask_is_any(&bg_coords); - 801def6: f107 0360 add.w r3, r7, #96 ; 0x60 - 801defa: 4618 mov r0, r3 - 801defc: f7f5 f9d0 bl 80132a0 - 801df00: 4603 mov r3, r0 - 801df02: f887 308b strb.w r3, [r7, #139] ; 0x8b + 801de62: f107 0360 add.w r3, r7, #96 ; 0x60 + 801de66: 4618 mov r0, r3 + 801de68: f7f5 f9d0 bl 801320c + 801de6c: 4603 mov r3, r0 + 801de6e: f887 308b strb.w r3, [r7, #139] ; 0x8b lv_draw_sw_blend_dsc_t blend_dsc = {0}; - 801df06: f107 0338 add.w r3, r7, #56 ; 0x38 - 801df0a: 2200 movs r2, #0 - 801df0c: 601a str r2, [r3, #0] - 801df0e: 605a str r2, [r3, #4] - 801df10: 609a str r2, [r3, #8] - 801df12: 60da str r2, [r3, #12] - 801df14: 611a str r2, [r3, #16] - 801df16: 615a str r2, [r3, #20] - 801df18: 619a str r2, [r3, #24] + 801de72: f107 0338 add.w r3, r7, #56 ; 0x38 + 801de76: 2200 movs r2, #0 + 801de78: 601a str r2, [r3, #0] + 801de7a: 605a str r2, [r3, #4] + 801de7c: 609a str r2, [r3, #8] + 801de7e: 60da str r2, [r3, #12] + 801de80: 611a str r2, [r3, #16] + 801de82: 615a str r2, [r3, #20] + 801de84: 619a str r2, [r3, #24] blend_dsc.blend_mode = dsc->blend_mode; - 801df1a: 68bb ldr r3, [r7, #8] - 801df1c: 789b ldrb r3, [r3, #2] - 801df1e: f887 3051 strb.w r3, [r7, #81] ; 0x51 + 801de86: 68bb ldr r3, [r7, #8] + 801de88: 789b ldrb r3, [r3, #2] + 801de8a: f887 3051 strb.w r3, [r7, #81] ; 0x51 blend_dsc.color = bg_color; - 801df22: f8b7 3054 ldrh.w r3, [r7, #84] ; 0x54 - 801df26: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 801de8e: f8b7 3054 ldrh.w r3, [r7, #84] ; 0x54 + 801de92: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 /*Most simple case: just a plain rectangle*/ if(!mask_any && dsc->radius == 0 && (grad_dir == LV_GRAD_DIR_NONE)) { - 801df2a: f897 308b ldrb.w r3, [r7, #139] ; 0x8b - 801df2e: f083 0301 eor.w r3, r3, #1 - 801df32: b2db uxtb r3, r3 - 801df34: 2b00 cmp r3, #0 - 801df36: d016 beq.n 801df66 - 801df38: 68bb ldr r3, [r7, #8] - 801df3a: f9b3 3000 ldrsh.w r3, [r3] - 801df3e: 2b00 cmp r3, #0 - 801df40: d111 bne.n 801df66 - 801df42: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 - 801df46: 2b00 cmp r3, #0 - 801df48: d10d bne.n 801df66 + 801de96: f897 308b ldrb.w r3, [r7, #139] ; 0x8b + 801de9a: f083 0301 eor.w r3, r3, #1 + 801de9e: b2db uxtb r3, r3 + 801dea0: 2b00 cmp r3, #0 + 801dea2: d016 beq.n 801ded2 + 801dea4: 68bb ldr r3, [r7, #8] + 801dea6: f9b3 3000 ldrsh.w r3, [r3] + 801deaa: 2b00 cmp r3, #0 + 801deac: d111 bne.n 801ded2 + 801deae: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 + 801deb2: 2b00 cmp r3, #0 + 801deb4: d10d bne.n 801ded2 blend_dsc.blend_area = &bg_coords; - 801df4a: f107 0360 add.w r3, r7, #96 ; 0x60 - 801df4e: 63bb str r3, [r7, #56] ; 0x38 + 801deb6: f107 0360 add.w r3, r7, #96 ; 0x60 + 801deba: 63bb str r3, [r7, #56] ; 0x38 blend_dsc.opa = dsc->bg_opa; - 801df50: 68bb ldr r3, [r7, #8] - 801df52: 78db ldrb r3, [r3, #3] - 801df54: f887 3050 strb.w r3, [r7, #80] ; 0x50 + 801debc: 68bb ldr r3, [r7, #8] + 801debe: 78db ldrb r3, [r3, #3] + 801dec0: f887 3050 strb.w r3, [r7, #80] ; 0x50 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801df58: f107 0338 add.w r3, r7, #56 ; 0x38 - 801df5c: 4619 mov r1, r3 - 801df5e: 68f8 ldr r0, [r7, #12] - 801df60: f7fb fd97 bl 8019a92 + 801dec4: f107 0338 add.w r3, r7, #56 ; 0x38 + 801dec8: 4619 mov r1, r3 + 801deca: 68f8 ldr r0, [r7, #12] + 801decc: f7fb fd97 bl 80199fe return; - 801df64: e22f b.n 801e3c6 + 801ded0: e22f b.n 801e332 /*Complex case: there is gradient, mask, or radius*/ #if LV_DRAW_COMPLEX == 0 LV_LOG_WARN("Can't draw complex rectangle because LV_DRAW_COMPLEX = 0"); #else lv_opa_t opa = dsc->bg_opa >= LV_OPA_MAX ? LV_OPA_COVER : dsc->bg_opa; - 801df66: 68bb ldr r3, [r7, #8] - 801df68: 78db ldrb r3, [r3, #3] - 801df6a: 2bfc cmp r3, #252 ; 0xfc - 801df6c: d802 bhi.n 801df74 - 801df6e: 68bb ldr r3, [r7, #8] - 801df70: 78db ldrb r3, [r3, #3] - 801df72: e000 b.n 801df76 - 801df74: 23ff movs r3, #255 ; 0xff - 801df76: f887 308a strb.w r3, [r7, #138] ; 0x8a + 801ded2: 68bb ldr r3, [r7, #8] + 801ded4: 78db ldrb r3, [r3, #3] + 801ded6: 2bfc cmp r3, #252 ; 0xfc + 801ded8: d802 bhi.n 801dee0 + 801deda: 68bb ldr r3, [r7, #8] + 801dedc: 78db ldrb r3, [r3, #3] + 801dede: e000 b.n 801dee2 + 801dee0: 23ff movs r3, #255 ; 0xff + 801dee2: f887 308a strb.w r3, [r7, #138] ; 0x8a /*Get the real radius. Can't be larger than the half of the shortest side */ lv_coord_t coords_bg_w = lv_area_get_width(&bg_coords); - 801df7a: f107 0360 add.w r3, r7, #96 ; 0x60 - 801df7e: 4618 mov r0, r3 - 801df80: f7ff febe bl 801dd00 - 801df84: 4603 mov r3, r0 - 801df86: f8a7 3088 strh.w r3, [r7, #136] ; 0x88 + 801dee6: f107 0360 add.w r3, r7, #96 ; 0x60 + 801deea: 4618 mov r0, r3 + 801deec: f7ff febe bl 801dc6c + 801def0: 4603 mov r3, r0 + 801def2: f8a7 3088 strh.w r3, [r7, #136] ; 0x88 lv_coord_t coords_bg_h = lv_area_get_height(&bg_coords); - 801df8a: f107 0360 add.w r3, r7, #96 ; 0x60 - 801df8e: 4618 mov r0, r3 - 801df90: f7ff fecc bl 801dd2c - 801df94: 4603 mov r3, r0 - 801df96: f8a7 3086 strh.w r3, [r7, #134] ; 0x86 + 801def6: f107 0360 add.w r3, r7, #96 ; 0x60 + 801defa: 4618 mov r0, r3 + 801defc: f7ff fecc bl 801dc98 + 801df00: 4603 mov r3, r0 + 801df02: f8a7 3086 strh.w r3, [r7, #134] ; 0x86 int32_t short_side = LV_MIN(coords_bg_w, coords_bg_h); - 801df9a: f9b7 2086 ldrsh.w r2, [r7, #134] ; 0x86 - 801df9e: f9b7 3088 ldrsh.w r3, [r7, #136] ; 0x88 - 801dfa2: 4293 cmp r3, r2 - 801dfa4: bfa8 it ge - 801dfa6: 4613 movge r3, r2 - 801dfa8: b21b sxth r3, r3 - 801dfaa: f8c7 3080 str.w r3, [r7, #128] ; 0x80 + 801df06: f9b7 2086 ldrsh.w r2, [r7, #134] ; 0x86 + 801df0a: f9b7 3088 ldrsh.w r3, [r7, #136] ; 0x88 + 801df0e: 4293 cmp r3, r2 + 801df10: bfa8 it ge + 801df12: 4613 movge r3, r2 + 801df14: b21b sxth r3, r3 + 801df16: f8c7 3080 str.w r3, [r7, #128] ; 0x80 int32_t rout = LV_MIN(dsc->radius, short_side >> 1); - 801dfae: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 - 801dfb2: 105b asrs r3, r3, #1 - 801dfb4: 68ba ldr r2, [r7, #8] - 801dfb6: f9b2 2000 ldrsh.w r2, [r2] - 801dfba: 4293 cmp r3, r2 - 801dfbc: bfa8 it ge - 801dfbe: 4613 movge r3, r2 - 801dfc0: 67fb str r3, [r7, #124] ; 0x7c + 801df1a: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 + 801df1e: 105b asrs r3, r3, #1 + 801df20: 68ba ldr r2, [r7, #8] + 801df22: f9b2 2000 ldrsh.w r2, [r2] + 801df26: 4293 cmp r3, r2 + 801df28: bfa8 it ge + 801df2a: 4613 movge r3, r2 + 801df2c: 67fb str r3, [r7, #124] ; 0x7c /*Add a radius mask if there is radius*/ int32_t clipped_w = lv_area_get_width(&clipped_coords); - 801dfc2: f107 0358 add.w r3, r7, #88 ; 0x58 - 801dfc6: 4618 mov r0, r3 - 801dfc8: f7ff fe9a bl 801dd00 - 801dfcc: 4603 mov r3, r0 - 801dfce: 67bb str r3, [r7, #120] ; 0x78 + 801df2e: f107 0358 add.w r3, r7, #88 ; 0x58 + 801df32: 4618 mov r0, r3 + 801df34: f7ff fe9a bl 801dc6c + 801df38: 4603 mov r3, r0 + 801df3a: 67bb str r3, [r7, #120] ; 0x78 int16_t mask_rout_id = LV_MASK_ID_INV; - 801dfd0: f64f 73ff movw r3, #65535 ; 0xffff - 801dfd4: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 + 801df3c: f64f 73ff movw r3, #65535 ; 0xffff + 801df40: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 lv_opa_t * mask_buf = NULL; - 801dfd8: 2300 movs r3, #0 - 801dfda: f8c7 3090 str.w r3, [r7, #144] ; 0x90 + 801df44: 2300 movs r3, #0 + 801df46: f8c7 3090 str.w r3, [r7, #144] ; 0x90 lv_draw_mask_radius_param_t mask_rout_param; if(rout > 0 || mask_any) { - 801dfde: 6ffb ldr r3, [r7, #124] ; 0x7c - 801dfe0: 2b00 cmp r3, #0 - 801dfe2: dc03 bgt.n 801dfec - 801dfe4: f897 308b ldrb.w r3, [r7, #139] ; 0x8b - 801dfe8: 2b00 cmp r3, #0 - 801dfea: d017 beq.n 801e01c + 801df4a: 6ffb ldr r3, [r7, #124] ; 0x7c + 801df4c: 2b00 cmp r3, #0 + 801df4e: dc03 bgt.n 801df58 + 801df50: f897 308b ldrb.w r3, [r7, #139] ; 0x8b + 801df54: 2b00 cmp r3, #0 + 801df56: d017 beq.n 801df88 mask_buf = lv_mem_buf_get(clipped_w); - 801dfec: 6fbb ldr r3, [r7, #120] ; 0x78 - 801dfee: 4618 mov r0, r3 - 801dff0: f014 fd06 bl 8032a00 - 801dff4: f8c7 0090 str.w r0, [r7, #144] ; 0x90 + 801df58: 6fbb ldr r3, [r7, #120] ; 0x78 + 801df5a: 4618 mov r0, r3 + 801df5c: f014 fd06 bl 803296c + 801df60: f8c7 0090 str.w r0, [r7, #144] ; 0x90 lv_draw_mask_radius_init(&mask_rout_param, &bg_coords, rout, false); - 801dff8: 6ffb ldr r3, [r7, #124] ; 0x7c - 801dffa: b21a sxth r2, r3 - 801dffc: f107 0160 add.w r1, r7, #96 ; 0x60 - 801e000: f107 0020 add.w r0, r7, #32 - 801e004: 2300 movs r3, #0 - 801e006: f7f5 fbf3 bl 80137f0 + 801df64: 6ffb ldr r3, [r7, #124] ; 0x7c + 801df66: b21a sxth r2, r3 + 801df68: f107 0160 add.w r1, r7, #96 ; 0x60 + 801df6c: f107 0020 add.w r0, r7, #32 + 801df70: 2300 movs r3, #0 + 801df72: f7f5 fbf3 bl 801375c mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL); - 801e00a: f107 0320 add.w r3, r7, #32 - 801e00e: 2100 movs r1, #0 - 801e010: 4618 mov r0, r3 - 801e012: f7f5 f817 bl 8013044 - 801e016: 4603 mov r3, r0 - 801e018: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 + 801df76: f107 0320 add.w r3, r7, #32 + 801df7a: 2100 movs r1, #0 + 801df7c: 4618 mov r0, r3 + 801df7e: f7f5 f817 bl 8012fb0 + 801df82: 4603 mov r3, r0 + 801df84: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 } int32_t h; lv_area_t blend_area; blend_area.x1 = clipped_coords.x1; - 801e01c: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 801e020: 833b strh r3, [r7, #24] + 801df88: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 801df8c: 833b strh r3, [r7, #24] blend_area.x2 = clipped_coords.x2; - 801e022: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c - 801e026: 83bb strh r3, [r7, #28] + 801df8e: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c + 801df92: 83bb strh r3, [r7, #28] blend_dsc.mask_buf = mask_buf; - 801e028: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 801e02c: 647b str r3, [r7, #68] ; 0x44 + 801df94: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 801df98: 647b str r3, [r7, #68] ; 0x44 blend_dsc.blend_area = &blend_area; - 801e02e: f107 0318 add.w r3, r7, #24 - 801e032: 63bb str r3, [r7, #56] ; 0x38 + 801df9a: f107 0318 add.w r3, r7, #24 + 801df9e: 63bb str r3, [r7, #56] ; 0x38 blend_dsc.mask_area = &blend_area; - 801e034: f107 0318 add.w r3, r7, #24 - 801e038: 64fb str r3, [r7, #76] ; 0x4c + 801dfa0: f107 0318 add.w r3, r7, #24 + 801dfa4: 64fb str r3, [r7, #76] ; 0x4c blend_dsc.opa = LV_OPA_COVER; - 801e03a: 23ff movs r3, #255 ; 0xff - 801e03c: f887 3050 strb.w r3, [r7, #80] ; 0x50 + 801dfa6: 23ff movs r3, #255 ; 0xff + 801dfa8: f887 3050 strb.w r3, [r7, #80] ; 0x50 /*Get gradient if appropriate*/ lv_grad_t * grad = lv_gradient_get(&dsc->bg_grad, coords_bg_w, coords_bg_h); - 801e040: 68bb ldr r3, [r7, #8] - 801e042: 3304 adds r3, #4 - 801e044: f9b7 2086 ldrsh.w r2, [r7, #134] ; 0x86 - 801e048: f9b7 1088 ldrsh.w r1, [r7, #136] ; 0x88 - 801e04c: 4618 mov r0, r3 - 801e04e: f7fd f97f bl 801b350 - 801e052: 6778 str r0, [r7, #116] ; 0x74 + 801dfac: 68bb ldr r3, [r7, #8] + 801dfae: 3304 adds r3, #4 + 801dfb0: f9b7 2086 ldrsh.w r2, [r7, #134] ; 0x86 + 801dfb4: f9b7 1088 ldrsh.w r1, [r7, #136] ; 0x88 + 801dfb8: 4618 mov r0, r3 + 801dfba: f7fd f97f bl 801b2bc + 801dfbe: 6778 str r0, [r7, #116] ; 0x74 if(grad && grad_dir == LV_GRAD_DIR_HOR) { - 801e054: 6f7b ldr r3, [r7, #116] ; 0x74 - 801e056: 2b00 cmp r3, #0 - 801e058: d00e beq.n 801e078 - 801e05a: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 - 801e05e: 2b02 cmp r3, #2 - 801e060: d10a bne.n 801e078 + 801dfc0: 6f7b ldr r3, [r7, #116] ; 0x74 + 801dfc2: 2b00 cmp r3, #0 + 801dfc4: d00e beq.n 801dfe4 + 801dfc6: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 + 801dfca: 2b02 cmp r3, #2 + 801dfcc: d10a bne.n 801dfe4 blend_dsc.src_buf = grad->map + clipped_coords.x1 - bg_coords.x1; - 801e062: 6f7b ldr r3, [r7, #116] ; 0x74 - 801e064: 689a ldr r2, [r3, #8] - 801e066: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 801e06a: 4619 mov r1, r3 - 801e06c: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 - 801e070: 1acb subs r3, r1, r3 - 801e072: 005b lsls r3, r3, #1 - 801e074: 4413 add r3, r2 - 801e076: 63fb str r3, [r7, #60] ; 0x3c + 801dfce: 6f7b ldr r3, [r7, #116] ; 0x74 + 801dfd0: 689a ldr r2, [r3, #8] + 801dfd2: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 801dfd6: 4619 mov r1, r3 + 801dfd8: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 + 801dfdc: 1acb subs r3, r1, r3 + 801dfde: 005b lsls r3, r3, #1 + 801dfe0: 4413 add r3, r2 + 801dfe2: 63fb str r3, [r7, #60] ; 0x3c } #endif #endif /*There is another mask too. Draw line by line. */ if(mask_any) { - 801e078: f897 308b ldrb.w r3, [r7, #139] ; 0x8b - 801e07c: 2b00 cmp r3, #0 - 801e07e: d04d beq.n 801e11c + 801dfe4: f897 308b ldrb.w r3, [r7, #139] ; 0x8b + 801dfe8: 2b00 cmp r3, #0 + 801dfea: d04d beq.n 801e088 for(h = clipped_coords.y1; h <= clipped_coords.y2; h++) { - 801e080: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a - 801e084: f8c7 308c str.w r3, [r7, #140] ; 0x8c - 801e088: e040 b.n 801e10c + 801dfec: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a + 801dff0: f8c7 308c str.w r3, [r7, #140] ; 0x8c + 801dff4: e040 b.n 801e078 blend_area.y1 = h; - 801e08a: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 801e08e: b21b sxth r3, r3 - 801e090: 837b strh r3, [r7, #26] + 801dff6: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 801dffa: b21b sxth r3, r3 + 801dffc: 837b strh r3, [r7, #26] blend_area.y2 = h; - 801e092: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 801e096: b21b sxth r3, r3 - 801e098: 83fb strh r3, [r7, #30] + 801dffe: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 801e002: b21b sxth r3, r3 + 801e004: 83fb strh r3, [r7, #30] /* Initialize the mask to opa instead of 0xFF and blend with LV_OPA_COVER. * It saves calculating the final opa in lv_draw_sw_blend*/ lv_memset(mask_buf, opa, clipped_w); - 801e09a: 6fba ldr r2, [r7, #120] ; 0x78 - 801e09c: f897 308a ldrb.w r3, [r7, #138] ; 0x8a - 801e0a0: 4619 mov r1, r3 - 801e0a2: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801e0a6: f014 ffc6 bl 8033036 + 801e006: 6fba ldr r2, [r7, #120] ; 0x78 + 801e008: f897 308a ldrb.w r3, [r7, #138] ; 0x8a + 801e00c: 4619 mov r1, r3 + 801e00e: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801e012: f014 ffc6 bl 8032fa2 blend_dsc.mask_res = lv_draw_mask_apply(mask_buf, clipped_coords.x1, h, clipped_w); - 801e0aa: f9b7 1058 ldrsh.w r1, [r7, #88] ; 0x58 - 801e0ae: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 801e0b2: b21a sxth r2, r3 - 801e0b4: 6fbb ldr r3, [r7, #120] ; 0x78 - 801e0b6: b21b sxth r3, r3 - 801e0b8: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801e0bc: f7f4 fff2 bl 80130a4 - 801e0c0: 4603 mov r3, r0 - 801e0c2: f887 3048 strb.w r3, [r7, #72] ; 0x48 + 801e016: f9b7 1058 ldrsh.w r1, [r7, #88] ; 0x58 + 801e01a: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 801e01e: b21a sxth r2, r3 + 801e020: 6fbb ldr r3, [r7, #120] ; 0x78 + 801e022: b21b sxth r3, r3 + 801e024: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801e028: f7f4 fff2 bl 8013010 + 801e02c: 4603 mov r3, r0 + 801e02e: f887 3048 strb.w r3, [r7, #72] ; 0x48 if(blend_dsc.mask_res == LV_DRAW_MASK_RES_FULL_COVER) blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801e0c6: f897 3048 ldrb.w r3, [r7, #72] ; 0x48 - 801e0ca: 2b01 cmp r3, #1 - 801e0cc: d102 bne.n 801e0d4 - 801e0ce: 2302 movs r3, #2 - 801e0d0: f887 3048 strb.w r3, [r7, #72] ; 0x48 + 801e032: f897 3048 ldrb.w r3, [r7, #72] ; 0x48 + 801e036: 2b01 cmp r3, #1 + 801e038: d102 bne.n 801e040 + 801e03a: 2302 movs r3, #2 + 801e03c: f887 3048 strb.w r3, [r7, #72] ; 0x48 #if _DITHER_GRADIENT if(dither_func) dither_func(grad, blend_area.x1, h - bg_coords.y1, grad_size); #endif if(grad_dir == LV_GRAD_DIR_VER) blend_dsc.color = grad->map[h - bg_coords.y1]; - 801e0d4: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 - 801e0d8: 2b01 cmp r3, #1 - 801e0da: d10c bne.n 801e0f6 - 801e0dc: 6f7b ldr r3, [r7, #116] ; 0x74 - 801e0de: 689a ldr r2, [r3, #8] - 801e0e0: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 - 801e0e4: 4619 mov r1, r3 - 801e0e6: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 801e0ea: 1a5b subs r3, r3, r1 - 801e0ec: 005b lsls r3, r3, #1 - 801e0ee: 4413 add r3, r2 - 801e0f0: 881b ldrh r3, [r3, #0] - 801e0f2: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 801e040: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 + 801e044: 2b01 cmp r3, #1 + 801e046: d10c bne.n 801e062 + 801e048: 6f7b ldr r3, [r7, #116] ; 0x74 + 801e04a: 689a ldr r2, [r3, #8] + 801e04c: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 + 801e050: 4619 mov r1, r3 + 801e052: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 801e056: 1a5b subs r3, r3, r1 + 801e058: 005b lsls r3, r3, #1 + 801e05a: 4413 add r3, r2 + 801e05c: 881b ldrh r3, [r3, #0] + 801e05e: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801e0f6: f107 0338 add.w r3, r7, #56 ; 0x38 - 801e0fa: 4619 mov r1, r3 - 801e0fc: 68f8 ldr r0, [r7, #12] - 801e0fe: f7fb fcc8 bl 8019a92 + 801e062: f107 0338 add.w r3, r7, #56 ; 0x38 + 801e066: 4619 mov r1, r3 + 801e068: 68f8 ldr r0, [r7, #12] + 801e06a: f7fb fcc8 bl 80199fe for(h = clipped_coords.y1; h <= clipped_coords.y2; h++) { - 801e102: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 801e106: 3301 adds r3, #1 - 801e108: f8c7 308c str.w r3, [r7, #140] ; 0x8c - 801e10c: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e - 801e110: 461a mov r2, r3 - 801e112: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 801e116: 4293 cmp r3, r2 - 801e118: ddb7 ble.n 801e08a + 801e06e: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 801e072: 3301 adds r3, #1 + 801e074: f8c7 308c str.w r3, [r7, #140] ; 0x8c + 801e078: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e + 801e07c: 461a mov r2, r3 + 801e07e: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 801e082: 4293 cmp r3, r2 + 801e084: ddb7 ble.n 801dff6 } goto bg_clean_up; - 801e11a: e133 b.n 801e384 + 801e086: e133 b.n 801e2f0 } /* Draw the top of the rectangle line by line and mirror it to the bottom. */ for(h = 0; h < rout; h++) { - 801e11c: 2300 movs r3, #0 - 801e11e: f8c7 308c str.w r3, [r7, #140] ; 0x8c - 801e122: e086 b.n 801e232 + 801e088: 2300 movs r3, #0 + 801e08a: f8c7 308c str.w r3, [r7, #140] ; 0x8c + 801e08e: e086 b.n 801e19e lv_coord_t top_y = bg_coords.y1 + h; - 801e124: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 - 801e128: b29a uxth r2, r3 - 801e12a: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 801e12e: b29b uxth r3, r3 - 801e130: 4413 add r3, r2 - 801e132: b29b uxth r3, r3 - 801e134: f8a7 306a strh.w r3, [r7, #106] ; 0x6a + 801e090: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 + 801e094: b29a uxth r2, r3 + 801e096: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 801e09a: b29b uxth r3, r3 + 801e09c: 4413 add r3, r2 + 801e09e: b29b uxth r3, r3 + 801e0a0: f8a7 306a strh.w r3, [r7, #106] ; 0x6a lv_coord_t bottom_y = bg_coords.y2 - h; - 801e138: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 - 801e13c: b29a uxth r2, r3 - 801e13e: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 801e142: b29b uxth r3, r3 - 801e144: 1ad3 subs r3, r2, r3 - 801e146: b29b uxth r3, r3 - 801e148: f8a7 3068 strh.w r3, [r7, #104] ; 0x68 + 801e0a4: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 + 801e0a8: b29a uxth r2, r3 + 801e0aa: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 801e0ae: b29b uxth r3, r3 + 801e0b0: 1ad3 subs r3, r2, r3 + 801e0b2: b29b uxth r3, r3 + 801e0b4: f8a7 3068 strh.w r3, [r7, #104] ; 0x68 if(top_y < clipped_coords.y1 && bottom_y > clipped_coords.y2) continue; /*This line is clipped now*/ - 801e14c: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a - 801e150: f9b7 206a ldrsh.w r2, [r7, #106] ; 0x6a - 801e154: 429a cmp r2, r3 - 801e156: da05 bge.n 801e164 - 801e158: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e - 801e15c: f9b7 2068 ldrsh.w r2, [r7, #104] ; 0x68 - 801e160: 429a cmp r2, r3 - 801e162: dc60 bgt.n 801e226 + 801e0b8: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a + 801e0bc: f9b7 206a ldrsh.w r2, [r7, #106] ; 0x6a + 801e0c0: 429a cmp r2, r3 + 801e0c2: da05 bge.n 801e0d0 + 801e0c4: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e + 801e0c8: f9b7 2068 ldrsh.w r2, [r7, #104] ; 0x68 + 801e0cc: 429a cmp r2, r3 + 801e0ce: dc60 bgt.n 801e192 /* Initialize the mask to opa instead of 0xFF and blend with LV_OPA_COVER. * It saves calculating the final opa in lv_draw_sw_blend*/ lv_memset(mask_buf, opa, clipped_w); - 801e164: 6fba ldr r2, [r7, #120] ; 0x78 - 801e166: f897 308a ldrb.w r3, [r7, #138] ; 0x8a - 801e16a: 4619 mov r1, r3 - 801e16c: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801e170: f014 ff61 bl 8033036 + 801e0d0: 6fba ldr r2, [r7, #120] ; 0x78 + 801e0d2: f897 308a ldrb.w r3, [r7, #138] ; 0x8a + 801e0d6: 4619 mov r1, r3 + 801e0d8: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801e0dc: f014 ff61 bl 8032fa2 blend_dsc.mask_res = lv_draw_mask_apply(mask_buf, blend_area.x1, top_y, clipped_w); - 801e174: f9b7 1018 ldrsh.w r1, [r7, #24] - 801e178: 6fbb ldr r3, [r7, #120] ; 0x78 - 801e17a: b21b sxth r3, r3 - 801e17c: f9b7 206a ldrsh.w r2, [r7, #106] ; 0x6a - 801e180: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801e184: f7f4 ff8e bl 80130a4 - 801e188: 4603 mov r3, r0 - 801e18a: f887 3048 strb.w r3, [r7, #72] ; 0x48 + 801e0e0: f9b7 1018 ldrsh.w r1, [r7, #24] + 801e0e4: 6fbb ldr r3, [r7, #120] ; 0x78 + 801e0e6: b21b sxth r3, r3 + 801e0e8: f9b7 206a ldrsh.w r2, [r7, #106] ; 0x6a + 801e0ec: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801e0f0: f7f4 ff8e bl 8013010 + 801e0f4: 4603 mov r3, r0 + 801e0f6: f887 3048 strb.w r3, [r7, #72] ; 0x48 if(blend_dsc.mask_res == LV_DRAW_MASK_RES_FULL_COVER) blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801e18e: f897 3048 ldrb.w r3, [r7, #72] ; 0x48 - 801e192: 2b01 cmp r3, #1 - 801e194: d102 bne.n 801e19c - 801e196: 2302 movs r3, #2 - 801e198: f887 3048 strb.w r3, [r7, #72] ; 0x48 + 801e0fa: f897 3048 ldrb.w r3, [r7, #72] ; 0x48 + 801e0fe: 2b01 cmp r3, #1 + 801e100: d102 bne.n 801e108 + 801e102: 2302 movs r3, #2 + 801e104: f887 3048 strb.w r3, [r7, #72] ; 0x48 if(top_y >= clipped_coords.y1) { - 801e19c: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a - 801e1a0: f9b7 206a ldrsh.w r2, [r7, #106] ; 0x6a - 801e1a4: 429a cmp r2, r3 - 801e1a6: db1b blt.n 801e1e0 + 801e108: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a + 801e10c: f9b7 206a ldrsh.w r2, [r7, #106] ; 0x6a + 801e110: 429a cmp r2, r3 + 801e112: db1b blt.n 801e14c blend_area.y1 = top_y; - 801e1a8: f8b7 306a ldrh.w r3, [r7, #106] ; 0x6a - 801e1ac: 837b strh r3, [r7, #26] + 801e114: f8b7 306a ldrh.w r3, [r7, #106] ; 0x6a + 801e118: 837b strh r3, [r7, #26] blend_area.y2 = top_y; - 801e1ae: f8b7 306a ldrh.w r3, [r7, #106] ; 0x6a - 801e1b2: 83fb strh r3, [r7, #30] + 801e11a: f8b7 306a ldrh.w r3, [r7, #106] ; 0x6a + 801e11e: 83fb strh r3, [r7, #30] #if _DITHER_GRADIENT if(dither_func) dither_func(grad, blend_area.x1, top_y - bg_coords.y1, grad_size); #endif if(grad_dir == LV_GRAD_DIR_VER) blend_dsc.color = grad->map[top_y - bg_coords.y1]; - 801e1b4: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 - 801e1b8: 2b01 cmp r3, #1 - 801e1ba: d10b bne.n 801e1d4 - 801e1bc: 6f7b ldr r3, [r7, #116] ; 0x74 - 801e1be: 689a ldr r2, [r3, #8] - 801e1c0: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801e1c4: f9b7 1062 ldrsh.w r1, [r7, #98] ; 0x62 - 801e1c8: 1a5b subs r3, r3, r1 - 801e1ca: 005b lsls r3, r3, #1 - 801e1cc: 4413 add r3, r2 - 801e1ce: 881b ldrh r3, [r3, #0] - 801e1d0: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 801e120: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 + 801e124: 2b01 cmp r3, #1 + 801e126: d10b bne.n 801e140 + 801e128: 6f7b ldr r3, [r7, #116] ; 0x74 + 801e12a: 689a ldr r2, [r3, #8] + 801e12c: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801e130: f9b7 1062 ldrsh.w r1, [r7, #98] ; 0x62 + 801e134: 1a5b subs r3, r3, r1 + 801e136: 005b lsls r3, r3, #1 + 801e138: 4413 add r3, r2 + 801e13a: 881b ldrh r3, [r3, #0] + 801e13c: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801e1d4: f107 0338 add.w r3, r7, #56 ; 0x38 - 801e1d8: 4619 mov r1, r3 - 801e1da: 68f8 ldr r0, [r7, #12] - 801e1dc: f7fb fc59 bl 8019a92 + 801e140: f107 0338 add.w r3, r7, #56 ; 0x38 + 801e144: 4619 mov r1, r3 + 801e146: 68f8 ldr r0, [r7, #12] + 801e148: f7fb fc59 bl 80199fe } if(bottom_y <= clipped_coords.y2) { - 801e1e0: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e - 801e1e4: f9b7 2068 ldrsh.w r2, [r7, #104] ; 0x68 - 801e1e8: 429a cmp r2, r3 - 801e1ea: dc1d bgt.n 801e228 + 801e14c: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e + 801e150: f9b7 2068 ldrsh.w r2, [r7, #104] ; 0x68 + 801e154: 429a cmp r2, r3 + 801e156: dc1d bgt.n 801e194 blend_area.y1 = bottom_y; - 801e1ec: f8b7 3068 ldrh.w r3, [r7, #104] ; 0x68 - 801e1f0: 837b strh r3, [r7, #26] + 801e158: f8b7 3068 ldrh.w r3, [r7, #104] ; 0x68 + 801e15c: 837b strh r3, [r7, #26] blend_area.y2 = bottom_y; - 801e1f2: f8b7 3068 ldrh.w r3, [r7, #104] ; 0x68 - 801e1f6: 83fb strh r3, [r7, #30] + 801e15e: f8b7 3068 ldrh.w r3, [r7, #104] ; 0x68 + 801e162: 83fb strh r3, [r7, #30] #if _DITHER_GRADIENT if(dither_func) dither_func(grad, blend_area.x1, bottom_y - bg_coords.y1, grad_size); #endif if(grad_dir == LV_GRAD_DIR_VER) blend_dsc.color = grad->map[bottom_y - bg_coords.y1]; - 801e1f8: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 - 801e1fc: 2b01 cmp r3, #1 - 801e1fe: d10b bne.n 801e218 - 801e200: 6f7b ldr r3, [r7, #116] ; 0x74 - 801e202: 689a ldr r2, [r3, #8] - 801e204: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 - 801e208: f9b7 1062 ldrsh.w r1, [r7, #98] ; 0x62 - 801e20c: 1a5b subs r3, r3, r1 - 801e20e: 005b lsls r3, r3, #1 - 801e210: 4413 add r3, r2 - 801e212: 881b ldrh r3, [r3, #0] - 801e214: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 801e164: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 + 801e168: 2b01 cmp r3, #1 + 801e16a: d10b bne.n 801e184 + 801e16c: 6f7b ldr r3, [r7, #116] ; 0x74 + 801e16e: 689a ldr r2, [r3, #8] + 801e170: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 + 801e174: f9b7 1062 ldrsh.w r1, [r7, #98] ; 0x62 + 801e178: 1a5b subs r3, r3, r1 + 801e17a: 005b lsls r3, r3, #1 + 801e17c: 4413 add r3, r2 + 801e17e: 881b ldrh r3, [r3, #0] + 801e180: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801e218: f107 0338 add.w r3, r7, #56 ; 0x38 - 801e21c: 4619 mov r1, r3 - 801e21e: 68f8 ldr r0, [r7, #12] - 801e220: f7fb fc37 bl 8019a92 - 801e224: e000 b.n 801e228 + 801e184: f107 0338 add.w r3, r7, #56 ; 0x38 + 801e188: 4619 mov r1, r3 + 801e18a: 68f8 ldr r0, [r7, #12] + 801e18c: f7fb fc37 bl 80199fe + 801e190: e000 b.n 801e194 if(top_y < clipped_coords.y1 && bottom_y > clipped_coords.y2) continue; /*This line is clipped now*/ - 801e226: bf00 nop + 801e192: bf00 nop for(h = 0; h < rout; h++) { - 801e228: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 801e22c: 3301 adds r3, #1 - 801e22e: f8c7 308c str.w r3, [r7, #140] ; 0x8c - 801e232: f8d7 208c ldr.w r2, [r7, #140] ; 0x8c - 801e236: 6ffb ldr r3, [r7, #124] ; 0x7c - 801e238: 429a cmp r2, r3 - 801e23a: f6ff af73 blt.w 801e124 + 801e194: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 801e198: 3301 adds r3, #1 + 801e19a: f8c7 308c str.w r3, [r7, #140] ; 0x8c + 801e19e: f8d7 208c ldr.w r2, [r7, #140] ; 0x8c + 801e1a2: 6ffb ldr r3, [r7, #124] ; 0x7c + 801e1a4: 429a cmp r2, r3 + 801e1a6: f6ff af73 blt.w 801e090 /* Draw the center of the rectangle.*/ /*If no other masks and no gradient, the center is a simple rectangle*/ lv_area_t center_coords; center_coords.x1 = bg_coords.x1; - 801e23e: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 - 801e242: 823b strh r3, [r7, #16] + 801e1aa: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 + 801e1ae: 823b strh r3, [r7, #16] center_coords.x2 = bg_coords.x2; - 801e244: f9b7 3064 ldrsh.w r3, [r7, #100] ; 0x64 - 801e248: 82bb strh r3, [r7, #20] + 801e1b0: f9b7 3064 ldrsh.w r3, [r7, #100] ; 0x64 + 801e1b4: 82bb strh r3, [r7, #20] center_coords.y1 = bg_coords.y1 + rout; - 801e24a: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 - 801e24e: b29a uxth r2, r3 - 801e250: 6ffb ldr r3, [r7, #124] ; 0x7c - 801e252: b29b uxth r3, r3 - 801e254: 4413 add r3, r2 - 801e256: b29b uxth r3, r3 - 801e258: b21b sxth r3, r3 - 801e25a: 827b strh r3, [r7, #18] + 801e1b6: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 + 801e1ba: b29a uxth r2, r3 + 801e1bc: 6ffb ldr r3, [r7, #124] ; 0x7c + 801e1be: b29b uxth r3, r3 + 801e1c0: 4413 add r3, r2 + 801e1c2: b29b uxth r3, r3 + 801e1c4: b21b sxth r3, r3 + 801e1c6: 827b strh r3, [r7, #18] center_coords.y2 = bg_coords.y2 - rout; - 801e25c: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 - 801e260: b29a uxth r2, r3 - 801e262: 6ffb ldr r3, [r7, #124] ; 0x7c - 801e264: b29b uxth r3, r3 - 801e266: 1ad3 subs r3, r2, r3 - 801e268: b29b uxth r3, r3 - 801e26a: b21b sxth r3, r3 - 801e26c: 82fb strh r3, [r7, #22] + 801e1c8: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 + 801e1cc: b29a uxth r2, r3 + 801e1ce: 6ffb ldr r3, [r7, #124] ; 0x7c + 801e1d0: b29b uxth r3, r3 + 801e1d2: 1ad3 subs r3, r2, r3 + 801e1d4: b29b uxth r3, r3 + 801e1d6: b21b sxth r3, r3 + 801e1d8: 82fb strh r3, [r7, #22] bool mask_any_center = lv_draw_mask_is_any(¢er_coords); - 801e26e: f107 0310 add.w r3, r7, #16 - 801e272: 4618 mov r0, r3 - 801e274: f7f5 f814 bl 80132a0 - 801e278: 4603 mov r3, r0 - 801e27a: f887 3073 strb.w r3, [r7, #115] ; 0x73 + 801e1da: f107 0310 add.w r3, r7, #16 + 801e1de: 4618 mov r0, r3 + 801e1e0: f7f5 f814 bl 801320c + 801e1e4: 4603 mov r3, r0 + 801e1e6: f887 3073 strb.w r3, [r7, #115] ; 0x73 if(!mask_any_center && grad_dir == LV_GRAD_DIR_NONE) { - 801e27e: f897 3073 ldrb.w r3, [r7, #115] ; 0x73 - 801e282: f083 0301 eor.w r3, r3, #1 - 801e286: b2db uxtb r3, r3 - 801e288: 2b00 cmp r3, #0 - 801e28a: d022 beq.n 801e2d2 - 801e28c: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 - 801e290: 2b00 cmp r3, #0 - 801e292: d11e bne.n 801e2d2 + 801e1ea: f897 3073 ldrb.w r3, [r7, #115] ; 0x73 + 801e1ee: f083 0301 eor.w r3, r3, #1 + 801e1f2: b2db uxtb r3, r3 + 801e1f4: 2b00 cmp r3, #0 + 801e1f6: d022 beq.n 801e23e + 801e1f8: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 + 801e1fc: 2b00 cmp r3, #0 + 801e1fe: d11e bne.n 801e23e blend_area.y1 = bg_coords.y1 + rout; - 801e294: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 - 801e298: b29a uxth r2, r3 - 801e29a: 6ffb ldr r3, [r7, #124] ; 0x7c - 801e29c: b29b uxth r3, r3 - 801e29e: 4413 add r3, r2 - 801e2a0: b29b uxth r3, r3 - 801e2a2: b21b sxth r3, r3 - 801e2a4: 837b strh r3, [r7, #26] + 801e200: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 + 801e204: b29a uxth r2, r3 + 801e206: 6ffb ldr r3, [r7, #124] ; 0x7c + 801e208: b29b uxth r3, r3 + 801e20a: 4413 add r3, r2 + 801e20c: b29b uxth r3, r3 + 801e20e: b21b sxth r3, r3 + 801e210: 837b strh r3, [r7, #26] blend_area.y2 = bg_coords.y2 - rout; - 801e2a6: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 - 801e2aa: b29a uxth r2, r3 - 801e2ac: 6ffb ldr r3, [r7, #124] ; 0x7c - 801e2ae: b29b uxth r3, r3 - 801e2b0: 1ad3 subs r3, r2, r3 - 801e2b2: b29b uxth r3, r3 - 801e2b4: b21b sxth r3, r3 - 801e2b6: 83fb strh r3, [r7, #30] + 801e212: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 + 801e216: b29a uxth r2, r3 + 801e218: 6ffb ldr r3, [r7, #124] ; 0x7c + 801e21a: b29b uxth r3, r3 + 801e21c: 1ad3 subs r3, r2, r3 + 801e21e: b29b uxth r3, r3 + 801e220: b21b sxth r3, r3 + 801e222: 83fb strh r3, [r7, #30] blend_dsc.opa = opa; - 801e2b8: f897 308a ldrb.w r3, [r7, #138] ; 0x8a - 801e2bc: f887 3050 strb.w r3, [r7, #80] ; 0x50 + 801e224: f897 308a ldrb.w r3, [r7, #138] ; 0x8a + 801e228: f887 3050 strb.w r3, [r7, #80] ; 0x50 blend_dsc.mask_buf = NULL; - 801e2c0: 2300 movs r3, #0 - 801e2c2: 647b str r3, [r7, #68] ; 0x44 + 801e22c: 2300 movs r3, #0 + 801e22e: 647b str r3, [r7, #68] ; 0x44 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801e2c4: f107 0338 add.w r3, r7, #56 ; 0x38 - 801e2c8: 4619 mov r1, r3 - 801e2ca: 68f8 ldr r0, [r7, #12] - 801e2cc: f7fb fbe1 bl 8019a92 - 801e2d0: e058 b.n 801e384 + 801e230: f107 0338 add.w r3, r7, #56 ; 0x38 + 801e234: 4619 mov r1, r3 + 801e236: 68f8 ldr r0, [r7, #12] + 801e238: f7fb fbe1 bl 80199fe + 801e23c: e058 b.n 801e2f0 } /*With gradient and/or mask draw line by line*/ else { blend_dsc.opa = opa; - 801e2d2: f897 308a ldrb.w r3, [r7, #138] ; 0x8a - 801e2d6: f887 3050 strb.w r3, [r7, #80] ; 0x50 + 801e23e: f897 308a ldrb.w r3, [r7, #138] ; 0x8a + 801e242: f887 3050 strb.w r3, [r7, #80] ; 0x50 blend_dsc.mask_res = LV_DRAW_MASK_RES_FULL_COVER; - 801e2da: 2301 movs r3, #1 - 801e2dc: f887 3048 strb.w r3, [r7, #72] ; 0x48 + 801e246: 2301 movs r3, #1 + 801e248: f887 3048 strb.w r3, [r7, #72] ; 0x48 int32_t h_end = bg_coords.y2 - rout; - 801e2e0: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 - 801e2e4: 461a mov r2, r3 - 801e2e6: 6ffb ldr r3, [r7, #124] ; 0x7c - 801e2e8: 1ad3 subs r3, r2, r3 - 801e2ea: 66fb str r3, [r7, #108] ; 0x6c + 801e24c: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 + 801e250: 461a mov r2, r3 + 801e252: 6ffb ldr r3, [r7, #124] ; 0x7c + 801e254: 1ad3 subs r3, r2, r3 + 801e256: 66fb str r3, [r7, #108] ; 0x6c for(h = bg_coords.y1 + rout; h <= h_end; h++) { - 801e2ec: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 - 801e2f0: 461a mov r2, r3 - 801e2f2: 6ffb ldr r3, [r7, #124] ; 0x7c - 801e2f4: 4413 add r3, r2 - 801e2f6: f8c7 308c str.w r3, [r7, #140] ; 0x8c - 801e2fa: e03d b.n 801e378 + 801e258: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 + 801e25c: 461a mov r2, r3 + 801e25e: 6ffb ldr r3, [r7, #124] ; 0x7c + 801e260: 4413 add r3, r2 + 801e262: f8c7 308c str.w r3, [r7, #140] ; 0x8c + 801e266: e03d b.n 801e2e4 /*If there is no other mask do not apply mask as in the center there is no radius to mask*/ if(mask_any_center) { - 801e2fc: f897 3073 ldrb.w r3, [r7, #115] ; 0x73 - 801e300: 2b00 cmp r3, #0 - 801e302: d015 beq.n 801e330 + 801e268: f897 3073 ldrb.w r3, [r7, #115] ; 0x73 + 801e26c: 2b00 cmp r3, #0 + 801e26e: d015 beq.n 801e29c lv_memset(mask_buf, opa, clipped_w); - 801e304: 6fba ldr r2, [r7, #120] ; 0x78 - 801e306: f897 308a ldrb.w r3, [r7, #138] ; 0x8a - 801e30a: 4619 mov r1, r3 - 801e30c: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801e310: f014 fe91 bl 8033036 + 801e270: 6fba ldr r2, [r7, #120] ; 0x78 + 801e272: f897 308a ldrb.w r3, [r7, #138] ; 0x8a + 801e276: 4619 mov r1, r3 + 801e278: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801e27c: f014 fe91 bl 8032fa2 blend_dsc.mask_res = lv_draw_mask_apply(mask_buf, clipped_coords.x1, h, clipped_w); - 801e314: f9b7 1058 ldrsh.w r1, [r7, #88] ; 0x58 - 801e318: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 801e31c: b21a sxth r2, r3 - 801e31e: 6fbb ldr r3, [r7, #120] ; 0x78 - 801e320: b21b sxth r3, r3 - 801e322: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801e326: f7f4 febd bl 80130a4 - 801e32a: 4603 mov r3, r0 - 801e32c: f887 3048 strb.w r3, [r7, #72] ; 0x48 + 801e280: f9b7 1058 ldrsh.w r1, [r7, #88] ; 0x58 + 801e284: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 801e288: b21a sxth r2, r3 + 801e28a: 6fbb ldr r3, [r7, #120] ; 0x78 + 801e28c: b21b sxth r3, r3 + 801e28e: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801e292: f7f4 febd bl 8013010 + 801e296: 4603 mov r3, r0 + 801e298: f887 3048 strb.w r3, [r7, #72] ; 0x48 } blend_area.y1 = h; - 801e330: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 801e334: b21b sxth r3, r3 - 801e336: 837b strh r3, [r7, #26] + 801e29c: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 801e2a0: b21b sxth r3, r3 + 801e2a2: 837b strh r3, [r7, #26] blend_area.y2 = h; - 801e338: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 801e33c: b21b sxth r3, r3 - 801e33e: 83fb strh r3, [r7, #30] + 801e2a4: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 801e2a8: b21b sxth r3, r3 + 801e2aa: 83fb strh r3, [r7, #30] #if _DITHER_GRADIENT if(dither_func) dither_func(grad, blend_area.x1, h - bg_coords.y1, grad_size); #endif if(grad_dir == LV_GRAD_DIR_VER) blend_dsc.color = grad->map[h - bg_coords.y1]; - 801e340: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 - 801e344: 2b01 cmp r3, #1 - 801e346: d10c bne.n 801e362 - 801e348: 6f7b ldr r3, [r7, #116] ; 0x74 - 801e34a: 689a ldr r2, [r3, #8] - 801e34c: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 - 801e350: 4619 mov r1, r3 - 801e352: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 801e356: 1a5b subs r3, r3, r1 - 801e358: 005b lsls r3, r3, #1 - 801e35a: 4413 add r3, r2 - 801e35c: 881b ldrh r3, [r3, #0] - 801e35e: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 801e2ac: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 + 801e2b0: 2b01 cmp r3, #1 + 801e2b2: d10c bne.n 801e2ce + 801e2b4: 6f7b ldr r3, [r7, #116] ; 0x74 + 801e2b6: 689a ldr r2, [r3, #8] + 801e2b8: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 + 801e2bc: 4619 mov r1, r3 + 801e2be: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 801e2c2: 1a5b subs r3, r3, r1 + 801e2c4: 005b lsls r3, r3, #1 + 801e2c6: 4413 add r3, r2 + 801e2c8: 881b ldrh r3, [r3, #0] + 801e2ca: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801e362: f107 0338 add.w r3, r7, #56 ; 0x38 - 801e366: 4619 mov r1, r3 - 801e368: 68f8 ldr r0, [r7, #12] - 801e36a: f7fb fb92 bl 8019a92 + 801e2ce: f107 0338 add.w r3, r7, #56 ; 0x38 + 801e2d2: 4619 mov r1, r3 + 801e2d4: 68f8 ldr r0, [r7, #12] + 801e2d6: f7fb fb92 bl 80199fe for(h = bg_coords.y1 + rout; h <= h_end; h++) { - 801e36e: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 801e372: 3301 adds r3, #1 - 801e374: f8c7 308c str.w r3, [r7, #140] ; 0x8c - 801e378: f8d7 208c ldr.w r2, [r7, #140] ; 0x8c - 801e37c: 6efb ldr r3, [r7, #108] ; 0x6c - 801e37e: 429a cmp r2, r3 - 801e380: ddbc ble.n 801e2fc + 801e2da: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 801e2de: 3301 adds r3, #1 + 801e2e0: f8c7 308c str.w r3, [r7, #140] ; 0x8c + 801e2e4: f8d7 208c ldr.w r2, [r7, #140] ; 0x8c + 801e2e8: 6efb ldr r3, [r7, #108] ; 0x6c + 801e2ea: 429a cmp r2, r3 + 801e2ec: ddbc ble.n 801e268 } } bg_clean_up: - 801e382: bf00 nop + 801e2ee: bf00 nop if(mask_buf) lv_mem_buf_release(mask_buf); - 801e384: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 801e388: 2b00 cmp r3, #0 - 801e38a: d003 beq.n 801e394 - 801e38c: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801e390: f014 fbe2 bl 8032b58 + 801e2f0: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 801e2f4: 2b00 cmp r3, #0 + 801e2f6: d003 beq.n 801e300 + 801e2f8: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801e2fc: f014 fbe2 bl 8032ac4 if(mask_rout_id != LV_MASK_ID_INV) { - 801e394: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 - 801e398: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 801e39c: d009 beq.n 801e3b2 + 801e300: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 + 801e304: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 801e308: d009 beq.n 801e31e lv_draw_mask_remove_id(mask_rout_id); - 801e39e: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 - 801e3a2: 4618 mov r0, r3 - 801e3a4: f7f4 fec2 bl 801312c + 801e30a: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 + 801e30e: 4618 mov r0, r3 + 801e310: f7f4 fec2 bl 8013098 lv_draw_mask_free_param(&mask_rout_param); - 801e3a8: f107 0320 add.w r3, r7, #32 - 801e3ac: 4618 mov r0, r3 - 801e3ae: f7f4 ff0d bl 80131cc + 801e314: f107 0320 add.w r3, r7, #32 + 801e318: 4618 mov r0, r3 + 801e31a: f7f4 ff0d bl 8013138 } if(grad) { - 801e3b2: 6f7b ldr r3, [r7, #116] ; 0x74 - 801e3b4: 2b00 cmp r3, #0 - 801e3b6: d006 beq.n 801e3c6 + 801e31e: 6f7b ldr r3, [r7, #116] ; 0x74 + 801e320: 2b00 cmp r3, #0 + 801e322: d006 beq.n 801e332 lv_gradient_cleanup(grad); - 801e3b8: 6f78 ldr r0, [r7, #116] ; 0x74 - 801e3ba: f7fd f940 bl 801b63e - 801e3be: e002 b.n 801e3c6 + 801e324: 6f78 ldr r0, [r7, #116] ; 0x74 + 801e326: f7fd f940 bl 801b5aa + 801e32a: e002 b.n 801e332 if(dsc->bg_opa <= LV_OPA_MIN) return; - 801e3c0: bf00 nop - 801e3c2: e000 b.n 801e3c6 + 801e32c: bf00 nop + 801e32e: e000 b.n 801e332 if(!_lv_area_intersect(&clipped_coords, &bg_coords, draw_ctx->clip_area)) return; - 801e3c4: bf00 nop + 801e330: bf00 nop } #endif } - 801e3c6: 3798 adds r7, #152 ; 0x98 - 801e3c8: 46bd mov sp, r7 - 801e3ca: bd80 pop {r7, pc} + 801e332: 3798 adds r7, #152 ; 0x98 + 801e334: 46bd mov sp, r7 + 801e336: bd80 pop {r7, pc} -0801e3cc : +0801e338 : static void draw_bg_img(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords) { - 801e3cc: b590 push {r4, r7, lr} - 801e3ce: b0a1 sub sp, #132 ; 0x84 - 801e3d0: af04 add r7, sp, #16 - 801e3d2: 60f8 str r0, [r7, #12] - 801e3d4: 60b9 str r1, [r7, #8] - 801e3d6: 607a str r2, [r7, #4] + 801e338: b590 push {r4, r7, lr} + 801e33a: b0a1 sub sp, #132 ; 0x84 + 801e33c: af04 add r7, sp, #16 + 801e33e: 60f8 str r0, [r7, #12] + 801e340: 60b9 str r1, [r7, #8] + 801e342: 607a str r2, [r7, #4] if(dsc->bg_img_src == NULL) return; - 801e3d8: 68bb ldr r3, [r7, #8] - 801e3da: 691b ldr r3, [r3, #16] - 801e3dc: 2b00 cmp r3, #0 - 801e3de: f000 8187 beq.w 801e6f0 + 801e344: 68bb ldr r3, [r7, #8] + 801e346: 691b ldr r3, [r3, #16] + 801e348: 2b00 cmp r3, #0 + 801e34a: f000 8187 beq.w 801e65c if(dsc->bg_img_opa <= LV_OPA_MIN) return; - 801e3e2: 68bb ldr r3, [r7, #8] - 801e3e4: 7e9b ldrb r3, [r3, #26] - 801e3e6: 2b02 cmp r3, #2 - 801e3e8: f240 8184 bls.w 801e6f4 + 801e34e: 68bb ldr r3, [r7, #8] + 801e350: 7e9b ldrb r3, [r3, #26] + 801e352: 2b02 cmp r3, #2 + 801e354: f240 8184 bls.w 801e660 lv_img_src_t src_type = lv_img_src_get_type(dsc->bg_img_src); - 801e3ec: 68bb ldr r3, [r7, #8] - 801e3ee: 691b ldr r3, [r3, #16] - 801e3f0: 4618 mov r0, r3 - 801e3f2: f7f3 fc3d bl 8011c70 - 801e3f6: 4603 mov r3, r0 - 801e3f8: f887 306f strb.w r3, [r7, #111] ; 0x6f + 801e358: 68bb ldr r3, [r7, #8] + 801e35a: 691b ldr r3, [r3, #16] + 801e35c: 4618 mov r0, r3 + 801e35e: f7f3 fc3d bl 8011bdc + 801e362: 4603 mov r3, r0 + 801e364: f887 306f strb.w r3, [r7, #111] ; 0x6f if(src_type == LV_IMG_SRC_SYMBOL) { - 801e3fc: f897 306f ldrb.w r3, [r7, #111] ; 0x6f - 801e400: 2b02 cmp r3, #2 - 801e402: d17a bne.n 801e4fa + 801e368: f897 306f ldrb.w r3, [r7, #111] ; 0x6f + 801e36c: 2b02 cmp r3, #2 + 801e36e: d17a bne.n 801e466 lv_point_t size; lv_txt_get_size(&size, dsc->bg_img_src, dsc->bg_img_symbol_font, 0, 0, LV_COORD_MAX, LV_TEXT_FLAG_NONE); - 801e404: 68bb ldr r3, [r7, #8] - 801e406: 6919 ldr r1, [r3, #16] - 801e408: 68bb ldr r3, [r7, #8] - 801e40a: 695a ldr r2, [r3, #20] - 801e40c: f107 0068 add.w r0, r7, #104 ; 0x68 - 801e410: 2300 movs r3, #0 - 801e412: 9302 str r3, [sp, #8] - 801e414: f641 73ff movw r3, #8191 ; 0x1fff - 801e418: 9301 str r3, [sp, #4] - 801e41a: 2300 movs r3, #0 - 801e41c: 9300 str r3, [sp, #0] - 801e41e: 2300 movs r3, #0 - 801e420: f017 fe33 bl 803608a + 801e370: 68bb ldr r3, [r7, #8] + 801e372: 6919 ldr r1, [r3, #16] + 801e374: 68bb ldr r3, [r7, #8] + 801e376: 695a ldr r2, [r3, #20] + 801e378: f107 0068 add.w r0, r7, #104 ; 0x68 + 801e37c: 2300 movs r3, #0 + 801e37e: 9302 str r3, [sp, #8] + 801e380: f641 73ff movw r3, #8191 ; 0x1fff + 801e384: 9301 str r3, [sp, #4] + 801e386: 2300 movs r3, #0 + 801e388: 9300 str r3, [sp, #0] + 801e38a: 2300 movs r3, #0 + 801e38c: f017 fe33 bl 8035ff6 lv_area_t a; a.x1 = coords->x1 + lv_area_get_width(coords) / 2 - size.x / 2; - 801e424: 687b ldr r3, [r7, #4] - 801e426: f9b3 3000 ldrsh.w r3, [r3] - 801e42a: b29c uxth r4, r3 - 801e42c: 6878 ldr r0, [r7, #4] - 801e42e: f7ff fc67 bl 801dd00 - 801e432: 4603 mov r3, r0 - 801e434: 0fda lsrs r2, r3, #31 - 801e436: 4413 add r3, r2 - 801e438: 105b asrs r3, r3, #1 - 801e43a: b21b sxth r3, r3 - 801e43c: b29b uxth r3, r3 - 801e43e: 4423 add r3, r4 - 801e440: b29a uxth r2, r3 - 801e442: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 - 801e446: 0fd9 lsrs r1, r3, #31 - 801e448: 440b add r3, r1 - 801e44a: 105b asrs r3, r3, #1 - 801e44c: b21b sxth r3, r3 - 801e44e: b29b uxth r3, r3 - 801e450: 1ad3 subs r3, r2, r3 - 801e452: b29b uxth r3, r3 - 801e454: b21b sxth r3, r3 - 801e456: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 + 801e390: 687b ldr r3, [r7, #4] + 801e392: f9b3 3000 ldrsh.w r3, [r3] + 801e396: b29c uxth r4, r3 + 801e398: 6878 ldr r0, [r7, #4] + 801e39a: f7ff fc67 bl 801dc6c + 801e39e: 4603 mov r3, r0 + 801e3a0: 0fda lsrs r2, r3, #31 + 801e3a2: 4413 add r3, r2 + 801e3a4: 105b asrs r3, r3, #1 + 801e3a6: b21b sxth r3, r3 + 801e3a8: b29b uxth r3, r3 + 801e3aa: 4423 add r3, r4 + 801e3ac: b29a uxth r2, r3 + 801e3ae: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 + 801e3b2: 0fd9 lsrs r1, r3, #31 + 801e3b4: 440b add r3, r1 + 801e3b6: 105b asrs r3, r3, #1 + 801e3b8: b21b sxth r3, r3 + 801e3ba: b29b uxth r3, r3 + 801e3bc: 1ad3 subs r3, r2, r3 + 801e3be: b29b uxth r3, r3 + 801e3c0: b21b sxth r3, r3 + 801e3c2: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 a.x2 = a.x1 + size.x - 1; - 801e45a: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 - 801e45e: b29a uxth r2, r3 - 801e460: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 - 801e464: b29b uxth r3, r3 - 801e466: 4413 add r3, r2 - 801e468: b29b uxth r3, r3 - 801e46a: 3b01 subs r3, #1 - 801e46c: b29b uxth r3, r3 - 801e46e: b21b sxth r3, r3 - 801e470: f8a7 3064 strh.w r3, [r7, #100] ; 0x64 + 801e3c6: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 + 801e3ca: b29a uxth r2, r3 + 801e3cc: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 + 801e3d0: b29b uxth r3, r3 + 801e3d2: 4413 add r3, r2 + 801e3d4: b29b uxth r3, r3 + 801e3d6: 3b01 subs r3, #1 + 801e3d8: b29b uxth r3, r3 + 801e3da: b21b sxth r3, r3 + 801e3dc: f8a7 3064 strh.w r3, [r7, #100] ; 0x64 a.y1 = coords->y1 + lv_area_get_height(coords) / 2 - size.y / 2; - 801e474: 687b ldr r3, [r7, #4] - 801e476: f9b3 3002 ldrsh.w r3, [r3, #2] - 801e47a: b29c uxth r4, r3 - 801e47c: 6878 ldr r0, [r7, #4] - 801e47e: f7ff fc55 bl 801dd2c - 801e482: 4603 mov r3, r0 - 801e484: 0fda lsrs r2, r3, #31 - 801e486: 4413 add r3, r2 - 801e488: 105b asrs r3, r3, #1 - 801e48a: b21b sxth r3, r3 - 801e48c: b29b uxth r3, r3 - 801e48e: 4423 add r3, r4 - 801e490: b29a uxth r2, r3 - 801e492: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801e496: 0fd9 lsrs r1, r3, #31 - 801e498: 440b add r3, r1 - 801e49a: 105b asrs r3, r3, #1 - 801e49c: b21b sxth r3, r3 - 801e49e: b29b uxth r3, r3 - 801e4a0: 1ad3 subs r3, r2, r3 - 801e4a2: b29b uxth r3, r3 - 801e4a4: b21b sxth r3, r3 - 801e4a6: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 + 801e3e0: 687b ldr r3, [r7, #4] + 801e3e2: f9b3 3002 ldrsh.w r3, [r3, #2] + 801e3e6: b29c uxth r4, r3 + 801e3e8: 6878 ldr r0, [r7, #4] + 801e3ea: f7ff fc55 bl 801dc98 + 801e3ee: 4603 mov r3, r0 + 801e3f0: 0fda lsrs r2, r3, #31 + 801e3f2: 4413 add r3, r2 + 801e3f4: 105b asrs r3, r3, #1 + 801e3f6: b21b sxth r3, r3 + 801e3f8: b29b uxth r3, r3 + 801e3fa: 4423 add r3, r4 + 801e3fc: b29a uxth r2, r3 + 801e3fe: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801e402: 0fd9 lsrs r1, r3, #31 + 801e404: 440b add r3, r1 + 801e406: 105b asrs r3, r3, #1 + 801e408: b21b sxth r3, r3 + 801e40a: b29b uxth r3, r3 + 801e40c: 1ad3 subs r3, r2, r3 + 801e40e: b29b uxth r3, r3 + 801e410: b21b sxth r3, r3 + 801e412: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 a.y2 = a.y1 + size.y - 1; - 801e4aa: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 - 801e4ae: b29a uxth r2, r3 - 801e4b0: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801e4b4: b29b uxth r3, r3 - 801e4b6: 4413 add r3, r2 - 801e4b8: b29b uxth r3, r3 - 801e4ba: 3b01 subs r3, #1 - 801e4bc: b29b uxth r3, r3 - 801e4be: b21b sxth r3, r3 - 801e4c0: f8a7 3066 strh.w r3, [r7, #102] ; 0x66 + 801e416: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 + 801e41a: b29a uxth r2, r3 + 801e41c: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801e420: b29b uxth r3, r3 + 801e422: 4413 add r3, r2 + 801e424: b29b uxth r3, r3 + 801e426: 3b01 subs r3, #1 + 801e428: b29b uxth r3, r3 + 801e42a: b21b sxth r3, r3 + 801e42c: f8a7 3066 strh.w r3, [r7, #102] ; 0x66 lv_draw_label_dsc_t label_draw_dsc; lv_draw_label_dsc_init(&label_draw_dsc); - 801e4c4: f107 0314 add.w r3, r7, #20 - 801e4c8: 4618 mov r0, r3 - 801e4ca: f7f3 fe5f bl 801218c + 801e430: f107 0314 add.w r3, r7, #20 + 801e434: 4618 mov r0, r3 + 801e436: f7f3 fe5f bl 80120f8 label_draw_dsc.font = dsc->bg_img_symbol_font; - 801e4ce: 68bb ldr r3, [r7, #8] - 801e4d0: 695b ldr r3, [r3, #20] - 801e4d2: 617b str r3, [r7, #20] + 801e43a: 68bb ldr r3, [r7, #8] + 801e43c: 695b ldr r3, [r3, #20] + 801e43e: 617b str r3, [r7, #20] label_draw_dsc.color = dsc->bg_img_recolor; - 801e4d4: 68bb ldr r3, [r7, #8] - 801e4d6: 8b1b ldrh r3, [r3, #24] - 801e4d8: 843b strh r3, [r7, #32] + 801e440: 68bb ldr r3, [r7, #8] + 801e442: 8b1b ldrh r3, [r3, #24] + 801e444: 843b strh r3, [r7, #32] label_draw_dsc.opa = dsc->bg_img_opa; - 801e4da: 68bb ldr r3, [r7, #8] - 801e4dc: 7e9b ldrb r3, [r3, #26] - 801e4de: f887 302e strb.w r3, [r7, #46] ; 0x2e + 801e446: 68bb ldr r3, [r7, #8] + 801e448: 7e9b ldrb r3, [r3, #26] + 801e44a: f887 302e strb.w r3, [r7, #46] ; 0x2e lv_draw_label(draw_ctx, &label_draw_dsc, &a, dsc->bg_img_src, NULL); - 801e4e2: 68bb ldr r3, [r7, #8] - 801e4e4: 691b ldr r3, [r3, #16] - 801e4e6: f107 0260 add.w r2, r7, #96 ; 0x60 - 801e4ea: f107 0114 add.w r1, r7, #20 - 801e4ee: 2000 movs r0, #0 - 801e4f0: 9000 str r0, [sp, #0] - 801e4f2: 68f8 ldr r0, [r7, #12] - 801e4f4: f7f3 fe76 bl 80121e4 - 801e4f8: e0ff b.n 801e6fa + 801e44e: 68bb ldr r3, [r7, #8] + 801e450: 691b ldr r3, [r3, #16] + 801e452: f107 0260 add.w r2, r7, #96 ; 0x60 + 801e456: f107 0114 add.w r1, r7, #20 + 801e45a: 2000 movs r0, #0 + 801e45c: 9000 str r0, [sp, #0] + 801e45e: 68f8 ldr r0, [r7, #12] + 801e460: f7f3 fe76 bl 8012150 + 801e464: e0ff b.n 801e666 } else { lv_img_header_t header; lv_res_t res = lv_img_decoder_get_info(dsc->bg_img_src, &header); - 801e4fa: 68bb ldr r3, [r7, #8] - 801e4fc: 691b ldr r3, [r3, #16] - 801e4fe: f107 025c add.w r2, r7, #92 ; 0x5c - 801e502: 4611 mov r1, r2 - 801e504: 4618 mov r0, r3 - 801e506: f7f8 fcb9 bl 8016e7c - 801e50a: 4603 mov r3, r0 - 801e50c: f887 306e strb.w r3, [r7, #110] ; 0x6e + 801e466: 68bb ldr r3, [r7, #8] + 801e468: 691b ldr r3, [r3, #16] + 801e46a: f107 025c add.w r2, r7, #92 ; 0x5c + 801e46e: 4611 mov r1, r2 + 801e470: 4618 mov r0, r3 + 801e472: f7f8 fcb9 bl 8016de8 + 801e476: 4603 mov r3, r0 + 801e478: f887 306e strb.w r3, [r7, #110] ; 0x6e if(res != LV_RES_OK) { - 801e510: f897 306e ldrb.w r3, [r7, #110] ; 0x6e - 801e514: 2b01 cmp r3, #1 - 801e516: f040 80ef bne.w 801e6f8 + 801e47c: f897 306e ldrb.w r3, [r7, #110] ; 0x6e + 801e480: 2b01 cmp r3, #1 + 801e482: f040 80ef bne.w 801e664 LV_LOG_WARN("Couldn't read the background image"); return; } lv_draw_img_dsc_t img_dsc; lv_draw_img_dsc_init(&img_dsc); - 801e51a: f107 0344 add.w r3, r7, #68 ; 0x44 - 801e51e: 4618 mov r0, r3 - 801e520: f7f3 fac5 bl 8011aae + 801e486: f107 0344 add.w r3, r7, #68 ; 0x44 + 801e48a: 4618 mov r0, r3 + 801e48c: f7f3 fac5 bl 8011a1a img_dsc.blend_mode = dsc->blend_mode; - 801e524: 68bb ldr r3, [r7, #8] - 801e526: 789b ldrb r3, [r3, #2] - 801e528: f003 030f and.w r3, r3, #15 - 801e52c: b2da uxtb r2, r3 - 801e52e: f897 3050 ldrb.w r3, [r7, #80] ; 0x50 - 801e532: f362 0303 bfi r3, r2, #0, #4 - 801e536: f887 3050 strb.w r3, [r7, #80] ; 0x50 + 801e490: 68bb ldr r3, [r7, #8] + 801e492: 789b ldrb r3, [r3, #2] + 801e494: f003 030f and.w r3, r3, #15 + 801e498: b2da uxtb r2, r3 + 801e49a: f897 3050 ldrb.w r3, [r7, #80] ; 0x50 + 801e49e: f362 0303 bfi r3, r2, #0, #4 + 801e4a2: f887 3050 strb.w r3, [r7, #80] ; 0x50 img_dsc.recolor = dsc->bg_img_recolor; - 801e53a: 68bb ldr r3, [r7, #8] - 801e53c: 8b1b ldrh r3, [r3, #24] - 801e53e: f8a7 304c strh.w r3, [r7, #76] ; 0x4c + 801e4a6: 68bb ldr r3, [r7, #8] + 801e4a8: 8b1b ldrh r3, [r3, #24] + 801e4aa: f8a7 304c strh.w r3, [r7, #76] ; 0x4c img_dsc.recolor_opa = dsc->bg_img_recolor_opa; - 801e542: 68bb ldr r3, [r7, #8] - 801e544: 7edb ldrb r3, [r3, #27] - 801e546: f887 304e strb.w r3, [r7, #78] ; 0x4e + 801e4ae: 68bb ldr r3, [r7, #8] + 801e4b0: 7edb ldrb r3, [r3, #27] + 801e4b2: f887 304e strb.w r3, [r7, #78] ; 0x4e img_dsc.opa = dsc->bg_img_opa; - 801e54a: 68bb ldr r3, [r7, #8] - 801e54c: 7e9b ldrb r3, [r3, #26] - 801e54e: f887 304f strb.w r3, [r7, #79] ; 0x4f + 801e4b6: 68bb ldr r3, [r7, #8] + 801e4b8: 7e9b ldrb r3, [r3, #26] + 801e4ba: f887 304f strb.w r3, [r7, #79] ; 0x4f /*Center align*/ if(dsc->bg_img_tiled == false) { - 801e552: 68bb ldr r3, [r7, #8] - 801e554: 7f1b ldrb r3, [r3, #28] - 801e556: 2b00 cmp r3, #0 - 801e558: d15f bne.n 801e61a + 801e4be: 68bb ldr r3, [r7, #8] + 801e4c0: 7f1b ldrb r3, [r3, #28] + 801e4c2: 2b00 cmp r3, #0 + 801e4c4: d15f bne.n 801e586 lv_area_t area; area.x1 = coords->x1 + lv_area_get_width(coords) / 2 - header.w / 2; - 801e55a: 687b ldr r3, [r7, #4] - 801e55c: f9b3 3000 ldrsh.w r3, [r3] - 801e560: b29c uxth r4, r3 - 801e562: 6878 ldr r0, [r7, #4] - 801e564: f7ff fbcc bl 801dd00 - 801e568: 4603 mov r3, r0 - 801e56a: 0fda lsrs r2, r3, #31 - 801e56c: 4413 add r3, r2 - 801e56e: 105b asrs r3, r3, #1 - 801e570: b21b sxth r3, r3 - 801e572: b29b uxth r3, r3 - 801e574: 4423 add r3, r4 - 801e576: b29a uxth r2, r3 - 801e578: 6dfb ldr r3, [r7, #92] ; 0x5c - 801e57a: f3c3 238a ubfx r3, r3, #10, #11 - 801e57e: b29b uxth r3, r3 - 801e580: 0fd9 lsrs r1, r3, #31 - 801e582: 440b add r3, r1 - 801e584: 105b asrs r3, r3, #1 - 801e586: 425b negs r3, r3 - 801e588: b29b uxth r3, r3 - 801e58a: 4413 add r3, r2 - 801e58c: b29b uxth r3, r3 - 801e58e: b21b sxth r3, r3 - 801e590: 87bb strh r3, [r7, #60] ; 0x3c + 801e4c6: 687b ldr r3, [r7, #4] + 801e4c8: f9b3 3000 ldrsh.w r3, [r3] + 801e4cc: b29c uxth r4, r3 + 801e4ce: 6878 ldr r0, [r7, #4] + 801e4d0: f7ff fbcc bl 801dc6c + 801e4d4: 4603 mov r3, r0 + 801e4d6: 0fda lsrs r2, r3, #31 + 801e4d8: 4413 add r3, r2 + 801e4da: 105b asrs r3, r3, #1 + 801e4dc: b21b sxth r3, r3 + 801e4de: b29b uxth r3, r3 + 801e4e0: 4423 add r3, r4 + 801e4e2: b29a uxth r2, r3 + 801e4e4: 6dfb ldr r3, [r7, #92] ; 0x5c + 801e4e6: f3c3 238a ubfx r3, r3, #10, #11 + 801e4ea: b29b uxth r3, r3 + 801e4ec: 0fd9 lsrs r1, r3, #31 + 801e4ee: 440b add r3, r1 + 801e4f0: 105b asrs r3, r3, #1 + 801e4f2: 425b negs r3, r3 + 801e4f4: b29b uxth r3, r3 + 801e4f6: 4413 add r3, r2 + 801e4f8: b29b uxth r3, r3 + 801e4fa: b21b sxth r3, r3 + 801e4fc: 87bb strh r3, [r7, #60] ; 0x3c area.y1 = coords->y1 + lv_area_get_height(coords) / 2 - header.h / 2; - 801e592: 687b ldr r3, [r7, #4] - 801e594: f9b3 3002 ldrsh.w r3, [r3, #2] - 801e598: b29c uxth r4, r3 - 801e59a: 6878 ldr r0, [r7, #4] - 801e59c: f7ff fbc6 bl 801dd2c - 801e5a0: 4603 mov r3, r0 - 801e5a2: 0fda lsrs r2, r3, #31 - 801e5a4: 4413 add r3, r2 - 801e5a6: 105b asrs r3, r3, #1 - 801e5a8: b21b sxth r3, r3 - 801e5aa: b29b uxth r3, r3 - 801e5ac: 4423 add r3, r4 - 801e5ae: b29a uxth r2, r3 - 801e5b0: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 801e5b4: f3c3 134a ubfx r3, r3, #5, #11 - 801e5b8: b29b uxth r3, r3 - 801e5ba: 0fd9 lsrs r1, r3, #31 - 801e5bc: 440b add r3, r1 - 801e5be: 105b asrs r3, r3, #1 - 801e5c0: 425b negs r3, r3 - 801e5c2: b29b uxth r3, r3 - 801e5c4: 4413 add r3, r2 - 801e5c6: b29b uxth r3, r3 - 801e5c8: b21b sxth r3, r3 - 801e5ca: 87fb strh r3, [r7, #62] ; 0x3e + 801e4fe: 687b ldr r3, [r7, #4] + 801e500: f9b3 3002 ldrsh.w r3, [r3, #2] + 801e504: b29c uxth r4, r3 + 801e506: 6878 ldr r0, [r7, #4] + 801e508: f7ff fbc6 bl 801dc98 + 801e50c: 4603 mov r3, r0 + 801e50e: 0fda lsrs r2, r3, #31 + 801e510: 4413 add r3, r2 + 801e512: 105b asrs r3, r3, #1 + 801e514: b21b sxth r3, r3 + 801e516: b29b uxth r3, r3 + 801e518: 4423 add r3, r4 + 801e51a: b29a uxth r2, r3 + 801e51c: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 801e520: f3c3 134a ubfx r3, r3, #5, #11 + 801e524: b29b uxth r3, r3 + 801e526: 0fd9 lsrs r1, r3, #31 + 801e528: 440b add r3, r1 + 801e52a: 105b asrs r3, r3, #1 + 801e52c: 425b negs r3, r3 + 801e52e: b29b uxth r3, r3 + 801e530: 4413 add r3, r2 + 801e532: b29b uxth r3, r3 + 801e534: b21b sxth r3, r3 + 801e536: 87fb strh r3, [r7, #62] ; 0x3e area.x2 = area.x1 + header.w - 1; - 801e5cc: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c - 801e5d0: b29b uxth r3, r3 - 801e5d2: 6dfa ldr r2, [r7, #92] ; 0x5c - 801e5d4: f3c2 228a ubfx r2, r2, #10, #11 - 801e5d8: b292 uxth r2, r2 - 801e5da: 4413 add r3, r2 - 801e5dc: b29b uxth r3, r3 - 801e5de: 3b01 subs r3, #1 - 801e5e0: b29b uxth r3, r3 - 801e5e2: b21b sxth r3, r3 - 801e5e4: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 801e538: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c + 801e53c: b29b uxth r3, r3 + 801e53e: 6dfa ldr r2, [r7, #92] ; 0x5c + 801e540: f3c2 228a ubfx r2, r2, #10, #11 + 801e544: b292 uxth r2, r2 + 801e546: 4413 add r3, r2 + 801e548: b29b uxth r3, r3 + 801e54a: 3b01 subs r3, #1 + 801e54c: b29b uxth r3, r3 + 801e54e: b21b sxth r3, r3 + 801e550: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 area.y2 = area.y1 + header.h - 1; - 801e5e8: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 801e5ec: b29b uxth r3, r3 - 801e5ee: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e - 801e5f2: f3c2 124a ubfx r2, r2, #5, #11 - 801e5f6: b292 uxth r2, r2 - 801e5f8: 4413 add r3, r2 - 801e5fa: b29b uxth r3, r3 - 801e5fc: 3b01 subs r3, #1 - 801e5fe: b29b uxth r3, r3 - 801e600: b21b sxth r3, r3 - 801e602: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 801e554: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 801e558: b29b uxth r3, r3 + 801e55a: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e + 801e55e: f3c2 124a ubfx r2, r2, #5, #11 + 801e562: b292 uxth r2, r2 + 801e564: 4413 add r3, r2 + 801e566: b29b uxth r3, r3 + 801e568: 3b01 subs r3, #1 + 801e56a: b29b uxth r3, r3 + 801e56c: b21b sxth r3, r3 + 801e56e: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 lv_draw_img(draw_ctx, &img_dsc, &area, dsc->bg_img_src); - 801e606: 68bb ldr r3, [r7, #8] - 801e608: 691b ldr r3, [r3, #16] - 801e60a: f107 023c add.w r2, r7, #60 ; 0x3c - 801e60e: f107 0144 add.w r1, r7, #68 ; 0x44 - 801e612: 68f8 ldr r0, [r7, #12] - 801e614: f7f3 fa68 bl 8011ae8 - 801e618: e06f b.n 801e6fa + 801e572: 68bb ldr r3, [r7, #8] + 801e574: 691b ldr r3, [r3, #16] + 801e576: f107 023c add.w r2, r7, #60 ; 0x3c + 801e57a: f107 0144 add.w r1, r7, #68 ; 0x44 + 801e57e: 68f8 ldr r0, [r7, #12] + 801e580: f7f3 fa68 bl 8011a54 + 801e584: e06f b.n 801e666 } else { lv_area_t area; area.y1 = coords->y1; - 801e61a: 687b ldr r3, [r7, #4] - 801e61c: f9b3 3002 ldrsh.w r3, [r3, #2] - 801e620: 86fb strh r3, [r7, #54] ; 0x36 + 801e586: 687b ldr r3, [r7, #4] + 801e588: f9b3 3002 ldrsh.w r3, [r3, #2] + 801e58c: 86fb strh r3, [r7, #54] ; 0x36 area.y2 = area.y1 + header.h - 1; - 801e622: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 801e626: b29b uxth r3, r3 - 801e628: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e - 801e62c: f3c2 124a ubfx r2, r2, #5, #11 - 801e630: b292 uxth r2, r2 - 801e632: 4413 add r3, r2 - 801e634: b29b uxth r3, r3 - 801e636: 3b01 subs r3, #1 - 801e638: b29b uxth r3, r3 - 801e63a: b21b sxth r3, r3 - 801e63c: 877b strh r3, [r7, #58] ; 0x3a + 801e58e: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 801e592: b29b uxth r3, r3 + 801e594: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e + 801e598: f3c2 124a ubfx r2, r2, #5, #11 + 801e59c: b292 uxth r2, r2 + 801e59e: 4413 add r3, r2 + 801e5a0: b29b uxth r3, r3 + 801e5a2: 3b01 subs r3, #1 + 801e5a4: b29b uxth r3, r3 + 801e5a6: b21b sxth r3, r3 + 801e5a8: 877b strh r3, [r7, #58] ; 0x3a for(; area.y1 <= coords->y2; area.y1 += header.h, area.y2 += header.h) { - 801e63e: e04f b.n 801e6e0 + 801e5aa: e04f b.n 801e64c area.x1 = coords->x1; - 801e640: 687b ldr r3, [r7, #4] - 801e642: f9b3 3000 ldrsh.w r3, [r3] - 801e646: 86bb strh r3, [r7, #52] ; 0x34 + 801e5ac: 687b ldr r3, [r7, #4] + 801e5ae: f9b3 3000 ldrsh.w r3, [r3] + 801e5b2: 86bb strh r3, [r7, #52] ; 0x34 area.x2 = area.x1 + header.w - 1; - 801e648: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 801e64c: b29b uxth r3, r3 - 801e64e: 6dfa ldr r2, [r7, #92] ; 0x5c - 801e650: f3c2 228a ubfx r2, r2, #10, #11 - 801e654: b292 uxth r2, r2 - 801e656: 4413 add r3, r2 - 801e658: b29b uxth r3, r3 - 801e65a: 3b01 subs r3, #1 - 801e65c: b29b uxth r3, r3 - 801e65e: b21b sxth r3, r3 - 801e660: 873b strh r3, [r7, #56] ; 0x38 + 801e5b4: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 801e5b8: b29b uxth r3, r3 + 801e5ba: 6dfa ldr r2, [r7, #92] ; 0x5c + 801e5bc: f3c2 228a ubfx r2, r2, #10, #11 + 801e5c0: b292 uxth r2, r2 + 801e5c2: 4413 add r3, r2 + 801e5c4: b29b uxth r3, r3 + 801e5c6: 3b01 subs r3, #1 + 801e5c8: b29b uxth r3, r3 + 801e5ca: b21b sxth r3, r3 + 801e5cc: 873b strh r3, [r7, #56] ; 0x38 for(; area.x1 <= coords->x2; area.x1 += header.w, area.x2 += header.w) { - 801e662: e01e b.n 801e6a2 + 801e5ce: e01e b.n 801e60e lv_draw_img(draw_ctx, &img_dsc, &area, dsc->bg_img_src); - 801e664: 68bb ldr r3, [r7, #8] - 801e666: 691b ldr r3, [r3, #16] - 801e668: f107 0234 add.w r2, r7, #52 ; 0x34 - 801e66c: f107 0144 add.w r1, r7, #68 ; 0x44 - 801e670: 68f8 ldr r0, [r7, #12] - 801e672: f7f3 fa39 bl 8011ae8 + 801e5d0: 68bb ldr r3, [r7, #8] + 801e5d2: 691b ldr r3, [r3, #16] + 801e5d4: f107 0234 add.w r2, r7, #52 ; 0x34 + 801e5d8: f107 0144 add.w r1, r7, #68 ; 0x44 + 801e5dc: 68f8 ldr r0, [r7, #12] + 801e5de: f7f3 fa39 bl 8011a54 for(; area.x1 <= coords->x2; area.x1 += header.w, area.x2 += header.w) { - 801e676: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 801e67a: b29b uxth r3, r3 - 801e67c: 6dfa ldr r2, [r7, #92] ; 0x5c - 801e67e: f3c2 228a ubfx r2, r2, #10, #11 - 801e682: b292 uxth r2, r2 - 801e684: 4413 add r3, r2 - 801e686: b29b uxth r3, r3 - 801e688: b21b sxth r3, r3 - 801e68a: 86bb strh r3, [r7, #52] ; 0x34 - 801e68c: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 801e690: b29b uxth r3, r3 - 801e692: 6dfa ldr r2, [r7, #92] ; 0x5c - 801e694: f3c2 228a ubfx r2, r2, #10, #11 - 801e698: b292 uxth r2, r2 - 801e69a: 4413 add r3, r2 - 801e69c: b29b uxth r3, r3 - 801e69e: b21b sxth r3, r3 - 801e6a0: 873b strh r3, [r7, #56] ; 0x38 - 801e6a2: f9b7 2034 ldrsh.w r2, [r7, #52] ; 0x34 - 801e6a6: 687b ldr r3, [r7, #4] - 801e6a8: f9b3 3004 ldrsh.w r3, [r3, #4] - 801e6ac: 429a cmp r2, r3 - 801e6ae: ddd9 ble.n 801e664 + 801e5e2: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 801e5e6: b29b uxth r3, r3 + 801e5e8: 6dfa ldr r2, [r7, #92] ; 0x5c + 801e5ea: f3c2 228a ubfx r2, r2, #10, #11 + 801e5ee: b292 uxth r2, r2 + 801e5f0: 4413 add r3, r2 + 801e5f2: b29b uxth r3, r3 + 801e5f4: b21b sxth r3, r3 + 801e5f6: 86bb strh r3, [r7, #52] ; 0x34 + 801e5f8: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 801e5fc: b29b uxth r3, r3 + 801e5fe: 6dfa ldr r2, [r7, #92] ; 0x5c + 801e600: f3c2 228a ubfx r2, r2, #10, #11 + 801e604: b292 uxth r2, r2 + 801e606: 4413 add r3, r2 + 801e608: b29b uxth r3, r3 + 801e60a: b21b sxth r3, r3 + 801e60c: 873b strh r3, [r7, #56] ; 0x38 + 801e60e: f9b7 2034 ldrsh.w r2, [r7, #52] ; 0x34 + 801e612: 687b ldr r3, [r7, #4] + 801e614: f9b3 3004 ldrsh.w r3, [r3, #4] + 801e618: 429a cmp r2, r3 + 801e61a: ddd9 ble.n 801e5d0 for(; area.y1 <= coords->y2; area.y1 += header.h, area.y2 += header.h) { - 801e6b0: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 801e6b4: b29b uxth r3, r3 - 801e6b6: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e - 801e6ba: f3c2 124a ubfx r2, r2, #5, #11 - 801e6be: b292 uxth r2, r2 - 801e6c0: 4413 add r3, r2 - 801e6c2: b29b uxth r3, r3 - 801e6c4: b21b sxth r3, r3 - 801e6c6: 86fb strh r3, [r7, #54] ; 0x36 - 801e6c8: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 801e6cc: b29b uxth r3, r3 - 801e6ce: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e - 801e6d2: f3c2 124a ubfx r2, r2, #5, #11 - 801e6d6: b292 uxth r2, r2 - 801e6d8: 4413 add r3, r2 - 801e6da: b29b uxth r3, r3 - 801e6dc: b21b sxth r3, r3 - 801e6de: 877b strh r3, [r7, #58] ; 0x3a - 801e6e0: f9b7 2036 ldrsh.w r2, [r7, #54] ; 0x36 - 801e6e4: 687b ldr r3, [r7, #4] - 801e6e6: f9b3 3006 ldrsh.w r3, [r3, #6] - 801e6ea: 429a cmp r2, r3 - 801e6ec: dda8 ble.n 801e640 - 801e6ee: e004 b.n 801e6fa + 801e61c: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 801e620: b29b uxth r3, r3 + 801e622: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e + 801e626: f3c2 124a ubfx r2, r2, #5, #11 + 801e62a: b292 uxth r2, r2 + 801e62c: 4413 add r3, r2 + 801e62e: b29b uxth r3, r3 + 801e630: b21b sxth r3, r3 + 801e632: 86fb strh r3, [r7, #54] ; 0x36 + 801e634: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 801e638: b29b uxth r3, r3 + 801e63a: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e + 801e63e: f3c2 124a ubfx r2, r2, #5, #11 + 801e642: b292 uxth r2, r2 + 801e644: 4413 add r3, r2 + 801e646: b29b uxth r3, r3 + 801e648: b21b sxth r3, r3 + 801e64a: 877b strh r3, [r7, #58] ; 0x3a + 801e64c: f9b7 2036 ldrsh.w r2, [r7, #54] ; 0x36 + 801e650: 687b ldr r3, [r7, #4] + 801e652: f9b3 3006 ldrsh.w r3, [r3, #6] + 801e656: 429a cmp r2, r3 + 801e658: dda8 ble.n 801e5ac + 801e65a: e004 b.n 801e666 if(dsc->bg_img_src == NULL) return; - 801e6f0: bf00 nop - 801e6f2: e002 b.n 801e6fa + 801e65c: bf00 nop + 801e65e: e002 b.n 801e666 if(dsc->bg_img_opa <= LV_OPA_MIN) return; - 801e6f4: bf00 nop - 801e6f6: e000 b.n 801e6fa + 801e660: bf00 nop + 801e662: e000 b.n 801e666 return; - 801e6f8: bf00 nop + 801e664: bf00 nop } } } } } - 801e6fa: 3774 adds r7, #116 ; 0x74 - 801e6fc: 46bd mov sp, r7 - 801e6fe: bd90 pop {r4, r7, pc} + 801e666: 3774 adds r7, #116 ; 0x74 + 801e668: 46bd mov sp, r7 + 801e66a: bd90 pop {r4, r7, pc} -0801e700 : +0801e66c : static void draw_border(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords) { - 801e700: b580 push {r7, lr} - 801e702: b090 sub sp, #64 ; 0x40 - 801e704: af04 add r7, sp, #16 - 801e706: 60f8 str r0, [r7, #12] - 801e708: 60b9 str r1, [r7, #8] - 801e70a: 607a str r2, [r7, #4] + 801e66c: b580 push {r7, lr} + 801e66e: b090 sub sp, #64 ; 0x40 + 801e670: af04 add r7, sp, #16 + 801e672: 60f8 str r0, [r7, #12] + 801e674: 60b9 str r1, [r7, #8] + 801e676: 607a str r2, [r7, #4] if(dsc->border_opa <= LV_OPA_MIN) return; - 801e70c: 68bb ldr r3, [r7, #8] - 801e70e: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 - 801e712: 2b02 cmp r3, #2 - 801e714: f240 80e2 bls.w 801e8dc + 801e678: 68bb ldr r3, [r7, #8] + 801e67a: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 + 801e67e: 2b02 cmp r3, #2 + 801e680: f240 80e2 bls.w 801e848 if(dsc->border_width == 0) return; - 801e718: 68bb ldr r3, [r7, #8] - 801e71a: f9b3 3020 ldrsh.w r3, [r3, #32] - 801e71e: 2b00 cmp r3, #0 - 801e720: f000 80de beq.w 801e8e0 + 801e684: 68bb ldr r3, [r7, #8] + 801e686: f9b3 3020 ldrsh.w r3, [r3, #32] + 801e68a: 2b00 cmp r3, #0 + 801e68c: f000 80de beq.w 801e84c if(dsc->border_side == LV_BORDER_SIDE_NONE) return; - 801e724: 68bb ldr r3, [r7, #8] - 801e726: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 801e72a: f003 033e and.w r3, r3, #62 ; 0x3e - 801e72e: b2db uxtb r3, r3 - 801e730: 2b00 cmp r3, #0 - 801e732: f000 80d7 beq.w 801e8e4 + 801e690: 68bb ldr r3, [r7, #8] + 801e692: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 801e696: f003 033e and.w r3, r3, #62 ; 0x3e + 801e69a: b2db uxtb r3, r3 + 801e69c: 2b00 cmp r3, #0 + 801e69e: f000 80d7 beq.w 801e850 if(dsc->border_post) return; - 801e736: 68bb ldr r3, [r7, #8] - 801e738: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 801e73c: f003 0301 and.w r3, r3, #1 - 801e740: b2db uxtb r3, r3 - 801e742: 2b00 cmp r3, #0 - 801e744: f040 80d0 bne.w 801e8e8 + 801e6a2: 68bb ldr r3, [r7, #8] + 801e6a4: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 801e6a8: f003 0301 and.w r3, r3, #1 + 801e6ac: b2db uxtb r3, r3 + 801e6ae: 2b00 cmp r3, #0 + 801e6b0: f040 80d0 bne.w 801e854 int32_t coords_w = lv_area_get_width(coords); - 801e748: 6878 ldr r0, [r7, #4] - 801e74a: f7ff fad9 bl 801dd00 - 801e74e: 4603 mov r3, r0 - 801e750: 627b str r3, [r7, #36] ; 0x24 + 801e6b4: 6878 ldr r0, [r7, #4] + 801e6b6: f7ff fad9 bl 801dc6c + 801e6ba: 4603 mov r3, r0 + 801e6bc: 627b str r3, [r7, #36] ; 0x24 int32_t coords_h = lv_area_get_height(coords); - 801e752: 6878 ldr r0, [r7, #4] - 801e754: f7ff faea bl 801dd2c - 801e758: 4603 mov r3, r0 - 801e75a: 623b str r3, [r7, #32] + 801e6be: 6878 ldr r0, [r7, #4] + 801e6c0: f7ff faea bl 801dc98 + 801e6c4: 4603 mov r3, r0 + 801e6c6: 623b str r3, [r7, #32] int32_t rout = dsc->radius; - 801e75c: 68bb ldr r3, [r7, #8] - 801e75e: f9b3 3000 ldrsh.w r3, [r3] - 801e762: 62fb str r3, [r7, #44] ; 0x2c + 801e6c8: 68bb ldr r3, [r7, #8] + 801e6ca: f9b3 3000 ldrsh.w r3, [r3] + 801e6ce: 62fb str r3, [r7, #44] ; 0x2c int32_t short_side = LV_MIN(coords_w, coords_h); - 801e764: 6a3a ldr r2, [r7, #32] - 801e766: 6a7b ldr r3, [r7, #36] ; 0x24 - 801e768: 4293 cmp r3, r2 - 801e76a: bfa8 it ge - 801e76c: 4613 movge r3, r2 - 801e76e: 61fb str r3, [r7, #28] + 801e6d0: 6a3a ldr r2, [r7, #32] + 801e6d2: 6a7b ldr r3, [r7, #36] ; 0x24 + 801e6d4: 4293 cmp r3, r2 + 801e6d6: bfa8 it ge + 801e6d8: 4613 movge r3, r2 + 801e6da: 61fb str r3, [r7, #28] if(rout > short_side >> 1) rout = short_side >> 1; - 801e770: 69fb ldr r3, [r7, #28] - 801e772: 105b asrs r3, r3, #1 - 801e774: 6afa ldr r2, [r7, #44] ; 0x2c - 801e776: 429a cmp r2, r3 - 801e778: dd02 ble.n 801e780 - 801e77a: 69fb ldr r3, [r7, #28] - 801e77c: 105b asrs r3, r3, #1 - 801e77e: 62fb str r3, [r7, #44] ; 0x2c + 801e6dc: 69fb ldr r3, [r7, #28] + 801e6de: 105b asrs r3, r3, #1 + 801e6e0: 6afa ldr r2, [r7, #44] ; 0x2c + 801e6e2: 429a cmp r2, r3 + 801e6e4: dd02 ble.n 801e6ec + 801e6e6: 69fb ldr r3, [r7, #28] + 801e6e8: 105b asrs r3, r3, #1 + 801e6ea: 62fb str r3, [r7, #44] ; 0x2c /*Get the inner area*/ lv_area_t area_inner; lv_area_copy(&area_inner, coords); - 801e780: f107 0314 add.w r3, r7, #20 - 801e784: 6879 ldr r1, [r7, #4] - 801e786: 4618 mov r0, r3 - 801e788: f7ff fa9c bl 801dcc4 + 801e6ec: f107 0314 add.w r3, r7, #20 + 801e6f0: 6879 ldr r1, [r7, #4] + 801e6f2: 4618 mov r0, r3 + 801e6f4: f7ff fa9c bl 801dc30 area_inner.x1 += ((dsc->border_side & LV_BORDER_SIDE_LEFT) ? dsc->border_width : - (dsc->border_width + rout)); - 801e78c: f9b7 3014 ldrsh.w r3, [r7, #20] - 801e790: b29a uxth r2, r3 - 801e792: 68bb ldr r3, [r7, #8] - 801e794: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 801e798: f3c3 0344 ubfx r3, r3, #1, #5 - 801e79c: b2db uxtb r3, r3 - 801e79e: f003 0304 and.w r3, r3, #4 - 801e7a2: 2b00 cmp r3, #0 - 801e7a4: d004 beq.n 801e7b0 - 801e7a6: 68bb ldr r3, [r7, #8] - 801e7a8: f9b3 3020 ldrsh.w r3, [r3, #32] - 801e7ac: b29b uxth r3, r3 - 801e7ae: e009 b.n 801e7c4 - 801e7b0: 68bb ldr r3, [r7, #8] - 801e7b2: f9b3 3020 ldrsh.w r3, [r3, #32] - 801e7b6: b299 uxth r1, r3 - 801e7b8: 6afb ldr r3, [r7, #44] ; 0x2c - 801e7ba: b29b uxth r3, r3 - 801e7bc: 440b add r3, r1 - 801e7be: b29b uxth r3, r3 - 801e7c0: 425b negs r3, r3 - 801e7c2: b29b uxth r3, r3 - 801e7c4: 4413 add r3, r2 - 801e7c6: b29b uxth r3, r3 - 801e7c8: b21b sxth r3, r3 - 801e7ca: 82bb strh r3, [r7, #20] + 801e6f8: f9b7 3014 ldrsh.w r3, [r7, #20] + 801e6fc: b29a uxth r2, r3 + 801e6fe: 68bb ldr r3, [r7, #8] + 801e700: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 801e704: f3c3 0344 ubfx r3, r3, #1, #5 + 801e708: b2db uxtb r3, r3 + 801e70a: f003 0304 and.w r3, r3, #4 + 801e70e: 2b00 cmp r3, #0 + 801e710: d004 beq.n 801e71c + 801e712: 68bb ldr r3, [r7, #8] + 801e714: f9b3 3020 ldrsh.w r3, [r3, #32] + 801e718: b29b uxth r3, r3 + 801e71a: e009 b.n 801e730 + 801e71c: 68bb ldr r3, [r7, #8] + 801e71e: f9b3 3020 ldrsh.w r3, [r3, #32] + 801e722: b299 uxth r1, r3 + 801e724: 6afb ldr r3, [r7, #44] ; 0x2c + 801e726: b29b uxth r3, r3 + 801e728: 440b add r3, r1 + 801e72a: b29b uxth r3, r3 + 801e72c: 425b negs r3, r3 + 801e72e: b29b uxth r3, r3 + 801e730: 4413 add r3, r2 + 801e732: b29b uxth r3, r3 + 801e734: b21b sxth r3, r3 + 801e736: 82bb strh r3, [r7, #20] area_inner.x2 -= ((dsc->border_side & LV_BORDER_SIDE_RIGHT) ? dsc->border_width : - (dsc->border_width + rout)); - 801e7cc: f9b7 3018 ldrsh.w r3, [r7, #24] - 801e7d0: b29a uxth r2, r3 + 801e738: f9b7 3018 ldrsh.w r3, [r7, #24] + 801e73c: b29a uxth r2, r3 + 801e73e: 68bb ldr r3, [r7, #8] + 801e740: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 801e744: f3c3 0344 ubfx r3, r3, #1, #5 + 801e748: b2db uxtb r3, r3 + 801e74a: f003 0308 and.w r3, r3, #8 + 801e74e: 2b00 cmp r3, #0 + 801e750: d004 beq.n 801e75c + 801e752: 68bb ldr r3, [r7, #8] + 801e754: f9b3 3020 ldrsh.w r3, [r3, #32] + 801e758: b29b uxth r3, r3 + 801e75a: e009 b.n 801e770 + 801e75c: 68bb ldr r3, [r7, #8] + 801e75e: f9b3 3020 ldrsh.w r3, [r3, #32] + 801e762: b299 uxth r1, r3 + 801e764: 6afb ldr r3, [r7, #44] ; 0x2c + 801e766: b29b uxth r3, r3 + 801e768: 440b add r3, r1 + 801e76a: b29b uxth r3, r3 + 801e76c: 425b negs r3, r3 + 801e76e: b29b uxth r3, r3 + 801e770: 1ad3 subs r3, r2, r3 + 801e772: b29b uxth r3, r3 + 801e774: b21b sxth r3, r3 + 801e776: 833b strh r3, [r7, #24] + area_inner.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout)); + 801e778: f9b7 3016 ldrsh.w r3, [r7, #22] + 801e77c: b29a uxth r2, r3 + 801e77e: 68bb ldr r3, [r7, #8] + 801e780: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 801e784: f3c3 0344 ubfx r3, r3, #1, #5 + 801e788: b2db uxtb r3, r3 + 801e78a: f003 0302 and.w r3, r3, #2 + 801e78e: 2b00 cmp r3, #0 + 801e790: d004 beq.n 801e79c + 801e792: 68bb ldr r3, [r7, #8] + 801e794: f9b3 3020 ldrsh.w r3, [r3, #32] + 801e798: b29b uxth r3, r3 + 801e79a: e009 b.n 801e7b0 + 801e79c: 68bb ldr r3, [r7, #8] + 801e79e: f9b3 3020 ldrsh.w r3, [r3, #32] + 801e7a2: b299 uxth r1, r3 + 801e7a4: 6afb ldr r3, [r7, #44] ; 0x2c + 801e7a6: b29b uxth r3, r3 + 801e7a8: 440b add r3, r1 + 801e7aa: b29b uxth r3, r3 + 801e7ac: 425b negs r3, r3 + 801e7ae: b29b uxth r3, r3 + 801e7b0: 4413 add r3, r2 + 801e7b2: b29b uxth r3, r3 + 801e7b4: b21b sxth r3, r3 + 801e7b6: 82fb strh r3, [r7, #22] + area_inner.y2 -= ((dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? dsc->border_width : - (dsc->border_width + rout)); + 801e7b8: f9b7 301a ldrsh.w r3, [r7, #26] + 801e7bc: b29a uxth r2, r3 + 801e7be: 68bb ldr r3, [r7, #8] + 801e7c0: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 801e7c4: f3c3 0344 ubfx r3, r3, #1, #5 + 801e7c8: b2db uxtb r3, r3 + 801e7ca: f003 0301 and.w r3, r3, #1 + 801e7ce: 2b00 cmp r3, #0 + 801e7d0: d004 beq.n 801e7dc 801e7d2: 68bb ldr r3, [r7, #8] - 801e7d4: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 801e7d8: f3c3 0344 ubfx r3, r3, #1, #5 - 801e7dc: b2db uxtb r3, r3 - 801e7de: f003 0308 and.w r3, r3, #8 - 801e7e2: 2b00 cmp r3, #0 - 801e7e4: d004 beq.n 801e7f0 - 801e7e6: 68bb ldr r3, [r7, #8] - 801e7e8: f9b3 3020 ldrsh.w r3, [r3, #32] - 801e7ec: b29b uxth r3, r3 - 801e7ee: e009 b.n 801e804 - 801e7f0: 68bb ldr r3, [r7, #8] - 801e7f2: f9b3 3020 ldrsh.w r3, [r3, #32] - 801e7f6: b299 uxth r1, r3 + 801e7d4: f9b3 3020 ldrsh.w r3, [r3, #32] + 801e7d8: b29b uxth r3, r3 + 801e7da: e009 b.n 801e7f0 + 801e7dc: 68bb ldr r3, [r7, #8] + 801e7de: f9b3 3020 ldrsh.w r3, [r3, #32] + 801e7e2: b299 uxth r1, r3 + 801e7e4: 6afb ldr r3, [r7, #44] ; 0x2c + 801e7e6: b29b uxth r3, r3 + 801e7e8: 440b add r3, r1 + 801e7ea: b29b uxth r3, r3 + 801e7ec: 425b negs r3, r3 + 801e7ee: b29b uxth r3, r3 + 801e7f0: 1ad3 subs r3, r2, r3 + 801e7f2: b29b uxth r3, r3 + 801e7f4: b21b sxth r3, r3 + 801e7f6: 837b strh r3, [r7, #26] + + lv_coord_t rin = rout - dsc->border_width; 801e7f8: 6afb ldr r3, [r7, #44] ; 0x2c - 801e7fa: b29b uxth r3, r3 - 801e7fc: 440b add r3, r1 - 801e7fe: b29b uxth r3, r3 - 801e800: 425b negs r3, r3 + 801e7fa: b29a uxth r2, r3 + 801e7fc: 68bb ldr r3, [r7, #8] + 801e7fe: f9b3 3020 ldrsh.w r3, [r3, #32] 801e802: b29b uxth r3, r3 801e804: 1ad3 subs r3, r2, r3 801e806: b29b uxth r3, r3 - 801e808: b21b sxth r3, r3 - 801e80a: 833b strh r3, [r7, #24] - area_inner.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout)); - 801e80c: f9b7 3016 ldrsh.w r3, [r7, #22] - 801e810: b29a uxth r2, r3 - 801e812: 68bb ldr r3, [r7, #8] - 801e814: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 801e818: f3c3 0344 ubfx r3, r3, #1, #5 - 801e81c: b2db uxtb r3, r3 - 801e81e: f003 0302 and.w r3, r3, #2 - 801e822: 2b00 cmp r3, #0 - 801e824: d004 beq.n 801e830 - 801e826: 68bb ldr r3, [r7, #8] - 801e828: f9b3 3020 ldrsh.w r3, [r3, #32] - 801e82c: b29b uxth r3, r3 - 801e82e: e009 b.n 801e844 - 801e830: 68bb ldr r3, [r7, #8] - 801e832: f9b3 3020 ldrsh.w r3, [r3, #32] - 801e836: b299 uxth r1, r3 - 801e838: 6afb ldr r3, [r7, #44] ; 0x2c - 801e83a: b29b uxth r3, r3 - 801e83c: 440b add r3, r1 - 801e83e: b29b uxth r3, r3 - 801e840: 425b negs r3, r3 - 801e842: b29b uxth r3, r3 - 801e844: 4413 add r3, r2 - 801e846: b29b uxth r3, r3 - 801e848: b21b sxth r3, r3 - 801e84a: 82fb strh r3, [r7, #22] - area_inner.y2 -= ((dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? dsc->border_width : - (dsc->border_width + rout)); - 801e84c: f9b7 301a ldrsh.w r3, [r7, #26] - 801e850: b29a uxth r2, r3 - 801e852: 68bb ldr r3, [r7, #8] - 801e854: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 801e858: f3c3 0344 ubfx r3, r3, #1, #5 - 801e85c: b2db uxtb r3, r3 - 801e85e: f003 0301 and.w r3, r3, #1 - 801e862: 2b00 cmp r3, #0 - 801e864: d004 beq.n 801e870 - 801e866: 68bb ldr r3, [r7, #8] - 801e868: f9b3 3020 ldrsh.w r3, [r3, #32] - 801e86c: b29b uxth r3, r3 - 801e86e: e009 b.n 801e884 - 801e870: 68bb ldr r3, [r7, #8] - 801e872: f9b3 3020 ldrsh.w r3, [r3, #32] - 801e876: b299 uxth r1, r3 - 801e878: 6afb ldr r3, [r7, #44] ; 0x2c - 801e87a: b29b uxth r3, r3 - 801e87c: 440b add r3, r1 - 801e87e: b29b uxth r3, r3 - 801e880: 425b negs r3, r3 - 801e882: b29b uxth r3, r3 - 801e884: 1ad3 subs r3, r2, r3 - 801e886: b29b uxth r3, r3 - 801e888: b21b sxth r3, r3 - 801e88a: 837b strh r3, [r7, #26] - - lv_coord_t rin = rout - dsc->border_width; - 801e88c: 6afb ldr r3, [r7, #44] ; 0x2c - 801e88e: b29a uxth r2, r3 - 801e890: 68bb ldr r3, [r7, #8] - 801e892: f9b3 3020 ldrsh.w r3, [r3, #32] - 801e896: b29b uxth r3, r3 - 801e898: 1ad3 subs r3, r2, r3 - 801e89a: b29b uxth r3, r3 - 801e89c: 857b strh r3, [r7, #42] ; 0x2a + 801e808: 857b strh r3, [r7, #42] ; 0x2a if(rin < 0) rin = 0; - 801e89e: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a - 801e8a2: 2b00 cmp r3, #0 - 801e8a4: da01 bge.n 801e8aa - 801e8a6: 2300 movs r3, #0 - 801e8a8: 857b strh r3, [r7, #42] ; 0x2a + 801e80a: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a + 801e80e: 2b00 cmp r3, #0 + 801e810: da01 bge.n 801e816 + 801e812: 2300 movs r3, #0 + 801e814: 857b strh r3, [r7, #42] ; 0x2a draw_border_generic(draw_ctx, coords, &area_inner, rout, rin, dsc->border_color, dsc->border_opa, dsc->blend_mode); - 801e8aa: 6afb ldr r3, [r7, #44] ; 0x2c - 801e8ac: b218 sxth r0, r3 - 801e8ae: 68bb ldr r3, [r7, #8] - 801e8b0: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 - 801e8b4: 68ba ldr r2, [r7, #8] - 801e8b6: 7892 ldrb r2, [r2, #2] - 801e8b8: f107 0114 add.w r1, r7, #20 - 801e8bc: 9203 str r2, [sp, #12] - 801e8be: 9302 str r3, [sp, #8] - 801e8c0: 68bb ldr r3, [r7, #8] - 801e8c2: 8bdb ldrh r3, [r3, #30] - 801e8c4: f8ad 3004 strh.w r3, [sp, #4] - 801e8c8: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a - 801e8cc: 9300 str r3, [sp, #0] - 801e8ce: 4603 mov r3, r0 - 801e8d0: 460a mov r2, r1 - 801e8d2: 6879 ldr r1, [r7, #4] - 801e8d4: 68f8 ldr r0, [r7, #12] - 801e8d6: f001 fe6d bl 80205b4 - 801e8da: e006 b.n 801e8ea + 801e816: 6afb ldr r3, [r7, #44] ; 0x2c + 801e818: b218 sxth r0, r3 + 801e81a: 68bb ldr r3, [r7, #8] + 801e81c: f893 3022 ldrb.w r3, [r3, #34] ; 0x22 + 801e820: 68ba ldr r2, [r7, #8] + 801e822: 7892 ldrb r2, [r2, #2] + 801e824: f107 0114 add.w r1, r7, #20 + 801e828: 9203 str r2, [sp, #12] + 801e82a: 9302 str r3, [sp, #8] + 801e82c: 68bb ldr r3, [r7, #8] + 801e82e: 8bdb ldrh r3, [r3, #30] + 801e830: f8ad 3004 strh.w r3, [sp, #4] + 801e834: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a + 801e838: 9300 str r3, [sp, #0] + 801e83a: 4603 mov r3, r0 + 801e83c: 460a mov r2, r1 + 801e83e: 6879 ldr r1, [r7, #4] + 801e840: 68f8 ldr r0, [r7, #12] + 801e842: f001 fe6d bl 8020520 + 801e846: e006 b.n 801e856 if(dsc->border_opa <= LV_OPA_MIN) return; - 801e8dc: bf00 nop - 801e8de: e004 b.n 801e8ea + 801e848: bf00 nop + 801e84a: e004 b.n 801e856 if(dsc->border_width == 0) return; - 801e8e0: bf00 nop - 801e8e2: e002 b.n 801e8ea + 801e84c: bf00 nop + 801e84e: e002 b.n 801e856 if(dsc->border_side == LV_BORDER_SIDE_NONE) return; - 801e8e4: bf00 nop - 801e8e6: e000 b.n 801e8ea + 801e850: bf00 nop + 801e852: e000 b.n 801e856 if(dsc->border_post) return; - 801e8e8: bf00 nop + 801e854: bf00 nop } - 801e8ea: 3730 adds r7, #48 ; 0x30 - 801e8ec: 46bd mov sp, r7 - 801e8ee: bd80 pop {r7, pc} + 801e856: 3730 adds r7, #48 ; 0x30 + 801e858: 46bd mov sp, r7 + 801e85a: bd80 pop {r7, pc} -0801e8f0 : +0801e85c : #if LV_DRAW_COMPLEX LV_ATTRIBUTE_FAST_MEM static void draw_shadow(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords) { - 801e8f0: b590 push {r4, r7, lr} - 801e8f2: b0b3 sub sp, #204 ; 0xcc - 801e8f4: af00 add r7, sp, #0 - 801e8f6: 60f8 str r0, [r7, #12] - 801e8f8: 60b9 str r1, [r7, #8] - 801e8fa: 607a str r2, [r7, #4] + 801e85c: b590 push {r4, r7, lr} + 801e85e: b0b3 sub sp, #204 ; 0xcc + 801e860: af00 add r7, sp, #0 + 801e862: 60f8 str r0, [r7, #12] + 801e864: 60b9 str r1, [r7, #8] + 801e866: 607a str r2, [r7, #4] /*Check whether the shadow is visible*/ if(dsc->shadow_width == 0) return; - 801e8fc: 68bb ldr r3, [r7, #8] - 801e8fe: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 801e902: 2b00 cmp r3, #0 - 801e904: f001 82a3 beq.w 801fe4e + 801e868: 68bb ldr r3, [r7, #8] + 801e86a: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 801e86e: 2b00 cmp r3, #0 + 801e870: f001 82a3 beq.w 801fdba if(dsc->shadow_opa <= LV_OPA_MIN) return; - 801e908: 68bb ldr r3, [r7, #8] - 801e90a: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 801e90e: 2b02 cmp r3, #2 - 801e910: f241 829f bls.w 801fe52 + 801e874: 68bb ldr r3, [r7, #8] + 801e876: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 801e87a: 2b02 cmp r3, #2 + 801e87c: f241 829f bls.w 801fdbe if(dsc->shadow_width == 1 && dsc->shadow_spread <= 0 && - 801e914: 68bb ldr r3, [r7, #8] - 801e916: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 801e91a: 2b01 cmp r3, #1 - 801e91c: d10f bne.n 801e93e - 801e91e: 68bb ldr r3, [r7, #8] - 801e920: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 - 801e924: 2b00 cmp r3, #0 - 801e926: dc0a bgt.n 801e93e + 801e880: 68bb ldr r3, [r7, #8] + 801e882: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 801e886: 2b01 cmp r3, #1 + 801e888: d10f bne.n 801e8aa + 801e88a: 68bb ldr r3, [r7, #8] + 801e88c: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 + 801e890: 2b00 cmp r3, #0 + 801e892: dc0a bgt.n 801e8aa dsc->shadow_ofs_x == 0 && dsc->shadow_ofs_y == 0) { - 801e928: 68bb ldr r3, [r7, #8] - 801e92a: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 + 801e894: 68bb ldr r3, [r7, #8] + 801e896: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 if(dsc->shadow_width == 1 && dsc->shadow_spread <= 0 && - 801e92e: 2b00 cmp r3, #0 - 801e930: d105 bne.n 801e93e + 801e89a: 2b00 cmp r3, #0 + 801e89c: d105 bne.n 801e8aa dsc->shadow_ofs_x == 0 && dsc->shadow_ofs_y == 0) { - 801e932: 68bb ldr r3, [r7, #8] - 801e934: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 - 801e938: 2b00 cmp r3, #0 - 801e93a: f001 828c beq.w 801fe56 + 801e89e: 68bb ldr r3, [r7, #8] + 801e8a0: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 + 801e8a4: 2b00 cmp r3, #0 + 801e8a6: f001 828c beq.w 801fdc2 return; } /*Calculate the rectangle which is blurred to get the shadow in `shadow_area`*/ lv_area_t core_area; core_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread; - 801e93e: 687b ldr r3, [r7, #4] - 801e940: f9b3 3000 ldrsh.w r3, [r3] - 801e944: b29a uxth r2, r3 - 801e946: 68bb ldr r3, [r7, #8] - 801e948: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 - 801e94c: b29b uxth r3, r3 - 801e94e: 4413 add r3, r2 - 801e950: b29a uxth r2, r3 - 801e952: 68bb ldr r3, [r7, #8] - 801e954: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 - 801e958: b29b uxth r3, r3 - 801e95a: 1ad3 subs r3, r2, r3 - 801e95c: b29b uxth r3, r3 - 801e95e: b21b sxth r3, r3 - 801e960: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 + 801e8aa: 687b ldr r3, [r7, #4] + 801e8ac: f9b3 3000 ldrsh.w r3, [r3] + 801e8b0: b29a uxth r2, r3 + 801e8b2: 68bb ldr r3, [r7, #8] + 801e8b4: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 + 801e8b8: b29b uxth r3, r3 + 801e8ba: 4413 add r3, r2 + 801e8bc: b29a uxth r2, r3 + 801e8be: 68bb ldr r3, [r7, #8] + 801e8c0: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 + 801e8c4: b29b uxth r3, r3 + 801e8c6: 1ad3 subs r3, r2, r3 + 801e8c8: b29b uxth r3, r3 + 801e8ca: b21b sxth r3, r3 + 801e8cc: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 core_area.x2 = coords->x2 + dsc->shadow_ofs_x + dsc->shadow_spread; - 801e964: 687b ldr r3, [r7, #4] - 801e966: f9b3 3004 ldrsh.w r3, [r3, #4] - 801e96a: b29a uxth r2, r3 - 801e96c: 68bb ldr r3, [r7, #8] - 801e96e: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 - 801e972: b29b uxth r3, r3 - 801e974: 4413 add r3, r2 - 801e976: b29a uxth r2, r3 - 801e978: 68bb ldr r3, [r7, #8] - 801e97a: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 - 801e97e: b29b uxth r3, r3 - 801e980: 4413 add r3, r2 - 801e982: b29b uxth r3, r3 - 801e984: b21b sxth r3, r3 - 801e986: f8a7 3074 strh.w r3, [r7, #116] ; 0x74 + 801e8d0: 687b ldr r3, [r7, #4] + 801e8d2: f9b3 3004 ldrsh.w r3, [r3, #4] + 801e8d6: b29a uxth r2, r3 + 801e8d8: 68bb ldr r3, [r7, #8] + 801e8da: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 + 801e8de: b29b uxth r3, r3 + 801e8e0: 4413 add r3, r2 + 801e8e2: b29a uxth r2, r3 + 801e8e4: 68bb ldr r3, [r7, #8] + 801e8e6: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 + 801e8ea: b29b uxth r3, r3 + 801e8ec: 4413 add r3, r2 + 801e8ee: b29b uxth r3, r3 + 801e8f0: b21b sxth r3, r3 + 801e8f2: f8a7 3074 strh.w r3, [r7, #116] ; 0x74 core_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread; - 801e98a: 687b ldr r3, [r7, #4] - 801e98c: f9b3 3002 ldrsh.w r3, [r3, #2] - 801e990: b29a uxth r2, r3 - 801e992: 68bb ldr r3, [r7, #8] - 801e994: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 - 801e998: b29b uxth r3, r3 - 801e99a: 4413 add r3, r2 - 801e99c: b29a uxth r2, r3 - 801e99e: 68bb ldr r3, [r7, #8] - 801e9a0: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 - 801e9a4: b29b uxth r3, r3 - 801e9a6: 1ad3 subs r3, r2, r3 - 801e9a8: b29b uxth r3, r3 - 801e9aa: b21b sxth r3, r3 - 801e9ac: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 + 801e8f6: 687b ldr r3, [r7, #4] + 801e8f8: f9b3 3002 ldrsh.w r3, [r3, #2] + 801e8fc: b29a uxth r2, r3 + 801e8fe: 68bb ldr r3, [r7, #8] + 801e900: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 + 801e904: b29b uxth r3, r3 + 801e906: 4413 add r3, r2 + 801e908: b29a uxth r2, r3 + 801e90a: 68bb ldr r3, [r7, #8] + 801e90c: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 + 801e910: b29b uxth r3, r3 + 801e912: 1ad3 subs r3, r2, r3 + 801e914: b29b uxth r3, r3 + 801e916: b21b sxth r3, r3 + 801e918: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 core_area.y2 = coords->y2 + dsc->shadow_ofs_y + dsc->shadow_spread; - 801e9b0: 687b ldr r3, [r7, #4] - 801e9b2: f9b3 3006 ldrsh.w r3, [r3, #6] - 801e9b6: b29a uxth r2, r3 - 801e9b8: 68bb ldr r3, [r7, #8] - 801e9ba: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 - 801e9be: b29b uxth r3, r3 - 801e9c0: 4413 add r3, r2 - 801e9c2: b29a uxth r2, r3 - 801e9c4: 68bb ldr r3, [r7, #8] - 801e9c6: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 - 801e9ca: b29b uxth r3, r3 - 801e9cc: 4413 add r3, r2 - 801e9ce: b29b uxth r3, r3 - 801e9d0: b21b sxth r3, r3 - 801e9d2: f8a7 3076 strh.w r3, [r7, #118] ; 0x76 + 801e91c: 687b ldr r3, [r7, #4] + 801e91e: f9b3 3006 ldrsh.w r3, [r3, #6] + 801e922: b29a uxth r2, r3 + 801e924: 68bb ldr r3, [r7, #8] + 801e926: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 + 801e92a: b29b uxth r3, r3 + 801e92c: 4413 add r3, r2 + 801e92e: b29a uxth r2, r3 + 801e930: 68bb ldr r3, [r7, #8] + 801e932: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 + 801e936: b29b uxth r3, r3 + 801e938: 4413 add r3, r2 + 801e93a: b29b uxth r3, r3 + 801e93c: b21b sxth r3, r3 + 801e93e: f8a7 3076 strh.w r3, [r7, #118] ; 0x76 /*Calculate the bounding box of the shadow*/ lv_area_t shadow_area; shadow_area.x1 = core_area.x1 - dsc->shadow_width / 2 - 1; - 801e9d6: f9b7 3070 ldrsh.w r3, [r7, #112] ; 0x70 - 801e9da: b29a uxth r2, r3 - 801e9dc: 68bb ldr r3, [r7, #8] - 801e9de: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 801e9e2: 0fd9 lsrs r1, r3, #31 - 801e9e4: 440b add r3, r1 - 801e9e6: 105b asrs r3, r3, #1 - 801e9e8: b21b sxth r3, r3 - 801e9ea: b29b uxth r3, r3 - 801e9ec: 1ad3 subs r3, r2, r3 - 801e9ee: b29b uxth r3, r3 - 801e9f0: 3b01 subs r3, #1 - 801e9f2: b29b uxth r3, r3 - 801e9f4: b21b sxth r3, r3 - 801e9f6: f8a7 3068 strh.w r3, [r7, #104] ; 0x68 + 801e942: f9b7 3070 ldrsh.w r3, [r7, #112] ; 0x70 + 801e946: b29a uxth r2, r3 + 801e948: 68bb ldr r3, [r7, #8] + 801e94a: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 801e94e: 0fd9 lsrs r1, r3, #31 + 801e950: 440b add r3, r1 + 801e952: 105b asrs r3, r3, #1 + 801e954: b21b sxth r3, r3 + 801e956: b29b uxth r3, r3 + 801e958: 1ad3 subs r3, r2, r3 + 801e95a: b29b uxth r3, r3 + 801e95c: 3b01 subs r3, #1 + 801e95e: b29b uxth r3, r3 + 801e960: b21b sxth r3, r3 + 801e962: f8a7 3068 strh.w r3, [r7, #104] ; 0x68 shadow_area.x2 = core_area.x2 + dsc->shadow_width / 2 + 1; - 801e9fa: f9b7 3074 ldrsh.w r3, [r7, #116] ; 0x74 - 801e9fe: b29a uxth r2, r3 - 801ea00: 68bb ldr r3, [r7, #8] - 801ea02: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 801ea06: 0fd9 lsrs r1, r3, #31 - 801ea08: 440b add r3, r1 - 801ea0a: 105b asrs r3, r3, #1 - 801ea0c: b21b sxth r3, r3 - 801ea0e: b29b uxth r3, r3 - 801ea10: 4413 add r3, r2 - 801ea12: b29b uxth r3, r3 - 801ea14: 3301 adds r3, #1 - 801ea16: b29b uxth r3, r3 - 801ea18: b21b sxth r3, r3 - 801ea1a: f8a7 306c strh.w r3, [r7, #108] ; 0x6c + 801e966: f9b7 3074 ldrsh.w r3, [r7, #116] ; 0x74 + 801e96a: b29a uxth r2, r3 + 801e96c: 68bb ldr r3, [r7, #8] + 801e96e: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 801e972: 0fd9 lsrs r1, r3, #31 + 801e974: 440b add r3, r1 + 801e976: 105b asrs r3, r3, #1 + 801e978: b21b sxth r3, r3 + 801e97a: b29b uxth r3, r3 + 801e97c: 4413 add r3, r2 + 801e97e: b29b uxth r3, r3 + 801e980: 3301 adds r3, #1 + 801e982: b29b uxth r3, r3 + 801e984: b21b sxth r3, r3 + 801e986: f8a7 306c strh.w r3, [r7, #108] ; 0x6c shadow_area.y1 = core_area.y1 - dsc->shadow_width / 2 - 1; - 801ea1e: f9b7 3072 ldrsh.w r3, [r7, #114] ; 0x72 - 801ea22: b29a uxth r2, r3 - 801ea24: 68bb ldr r3, [r7, #8] - 801ea26: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 801ea2a: 0fd9 lsrs r1, r3, #31 - 801ea2c: 440b add r3, r1 - 801ea2e: 105b asrs r3, r3, #1 - 801ea30: b21b sxth r3, r3 - 801ea32: b29b uxth r3, r3 - 801ea34: 1ad3 subs r3, r2, r3 - 801ea36: b29b uxth r3, r3 - 801ea38: 3b01 subs r3, #1 - 801ea3a: b29b uxth r3, r3 - 801ea3c: b21b sxth r3, r3 - 801ea3e: f8a7 306a strh.w r3, [r7, #106] ; 0x6a + 801e98a: f9b7 3072 ldrsh.w r3, [r7, #114] ; 0x72 + 801e98e: b29a uxth r2, r3 + 801e990: 68bb ldr r3, [r7, #8] + 801e992: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 801e996: 0fd9 lsrs r1, r3, #31 + 801e998: 440b add r3, r1 + 801e99a: 105b asrs r3, r3, #1 + 801e99c: b21b sxth r3, r3 + 801e99e: b29b uxth r3, r3 + 801e9a0: 1ad3 subs r3, r2, r3 + 801e9a2: b29b uxth r3, r3 + 801e9a4: 3b01 subs r3, #1 + 801e9a6: b29b uxth r3, r3 + 801e9a8: b21b sxth r3, r3 + 801e9aa: f8a7 306a strh.w r3, [r7, #106] ; 0x6a shadow_area.y2 = core_area.y2 + dsc->shadow_width / 2 + 1; - 801ea42: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 - 801ea46: b29a uxth r2, r3 - 801ea48: 68bb ldr r3, [r7, #8] - 801ea4a: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 801ea4e: 0fd9 lsrs r1, r3, #31 - 801ea50: 440b add r3, r1 - 801ea52: 105b asrs r3, r3, #1 - 801ea54: b21b sxth r3, r3 - 801ea56: b29b uxth r3, r3 - 801ea58: 4413 add r3, r2 - 801ea5a: b29b uxth r3, r3 - 801ea5c: 3301 adds r3, #1 - 801ea5e: b29b uxth r3, r3 - 801ea60: b21b sxth r3, r3 - 801ea62: f8a7 306e strh.w r3, [r7, #110] ; 0x6e + 801e9ae: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 + 801e9b2: b29a uxth r2, r3 + 801e9b4: 68bb ldr r3, [r7, #8] + 801e9b6: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 801e9ba: 0fd9 lsrs r1, r3, #31 + 801e9bc: 440b add r3, r1 + 801e9be: 105b asrs r3, r3, #1 + 801e9c0: b21b sxth r3, r3 + 801e9c2: b29b uxth r3, r3 + 801e9c4: 4413 add r3, r2 + 801e9c6: b29b uxth r3, r3 + 801e9c8: 3301 adds r3, #1 + 801e9ca: b29b uxth r3, r3 + 801e9cc: b21b sxth r3, r3 + 801e9ce: f8a7 306e strh.w r3, [r7, #110] ; 0x6e lv_opa_t opa = dsc->shadow_opa; - 801ea66: 68bb ldr r3, [r7, #8] - 801ea68: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 801ea6c: f887 30c7 strb.w r3, [r7, #199] ; 0xc7 + 801e9d2: 68bb ldr r3, [r7, #8] + 801e9d4: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 801e9d8: f887 30c7 strb.w r3, [r7, #199] ; 0xc7 if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; - 801ea70: f897 30c7 ldrb.w r3, [r7, #199] ; 0xc7 - 801ea74: 2bfd cmp r3, #253 ; 0xfd - 801ea76: d902 bls.n 801ea7e - 801ea78: 23ff movs r3, #255 ; 0xff - 801ea7a: f887 30c7 strb.w r3, [r7, #199] ; 0xc7 + 801e9dc: f897 30c7 ldrb.w r3, [r7, #199] ; 0xc7 + 801e9e0: 2bfd cmp r3, #253 ; 0xfd + 801e9e2: d902 bls.n 801e9ea + 801e9e4: 23ff movs r3, #255 ; 0xff + 801e9e6: f887 30c7 strb.w r3, [r7, #199] ; 0xc7 /*Get clipped draw area which is the real draw area. *It is always the same or inside `shadow_area`*/ lv_area_t draw_area; if(!_lv_area_intersect(&draw_area, &shadow_area, draw_ctx->clip_area)) return; - 801ea7e: 68fb ldr r3, [r7, #12] - 801ea80: 689a ldr r2, [r3, #8] - 801ea82: f107 0168 add.w r1, r7, #104 ; 0x68 - 801ea86: f107 0360 add.w r3, r7, #96 ; 0x60 - 801ea8a: 4618 mov r0, r3 - 801ea8c: f012 fb0c bl 80310a8 <_lv_area_intersect> - 801ea90: 4603 mov r3, r0 - 801ea92: f083 0301 eor.w r3, r3, #1 - 801ea96: b2db uxtb r3, r3 - 801ea98: 2b00 cmp r3, #0 - 801ea9a: f041 81de bne.w 801fe5a + 801e9ea: 68fb ldr r3, [r7, #12] + 801e9ec: 689a ldr r2, [r3, #8] + 801e9ee: f107 0168 add.w r1, r7, #104 ; 0x68 + 801e9f2: f107 0360 add.w r3, r7, #96 ; 0x60 + 801e9f6: 4618 mov r0, r3 + 801e9f8: f012 fb0c bl 8031014 <_lv_area_intersect> + 801e9fc: 4603 mov r3, r0 + 801e9fe: f083 0301 eor.w r3, r3, #1 + 801ea02: b2db uxtb r3, r3 + 801ea04: 2b00 cmp r3, #0 + 801ea06: f041 81de bne.w 801fdc6 /*Consider 1 px smaller bg to be sure the edge will be covered by the shadow*/ lv_area_t bg_area; lv_area_copy(&bg_area, coords); - 801ea9e: f107 0358 add.w r3, r7, #88 ; 0x58 - 801eaa2: 6879 ldr r1, [r7, #4] - 801eaa4: 4618 mov r0, r3 - 801eaa6: f7ff f90d bl 801dcc4 + 801ea0a: f107 0358 add.w r3, r7, #88 ; 0x58 + 801ea0e: 6879 ldr r1, [r7, #4] + 801ea10: 4618 mov r0, r3 + 801ea12: f7ff f90d bl 801dc30 lv_area_increase(&bg_area, -1, -1); - 801eaaa: f107 0358 add.w r3, r7, #88 ; 0x58 - 801eaae: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 801eab2: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff - 801eab6: 4618 mov r0, r3 - 801eab8: f012 fa8c bl 8030fd4 + 801ea16: f107 0358 add.w r3, r7, #88 ; 0x58 + 801ea1a: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 801ea1e: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff + 801ea22: 4618 mov r0, r3 + 801ea24: f012 fa8c bl 8030f40 /*Get the clamped radius*/ int32_t r_bg = dsc->radius; - 801eabc: 68bb ldr r3, [r7, #8] - 801eabe: f9b3 3000 ldrsh.w r3, [r3] - 801eac2: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0 + 801ea28: 68bb ldr r3, [r7, #8] + 801ea2a: f9b3 3000 ldrsh.w r3, [r3] + 801ea2e: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0 lv_coord_t short_side = LV_MIN(lv_area_get_width(&bg_area), lv_area_get_height(&bg_area)); - 801eac6: f107 0358 add.w r3, r7, #88 ; 0x58 - 801eaca: 4618 mov r0, r3 - 801eacc: f7ff f918 bl 801dd00 - 801ead0: 4603 mov r3, r0 - 801ead2: 461c mov r4, r3 - 801ead4: f107 0358 add.w r3, r7, #88 ; 0x58 - 801ead8: 4618 mov r0, r3 - 801eada: f7ff f927 bl 801dd2c - 801eade: 4603 mov r3, r0 - 801eae0: 429c cmp r4, r3 - 801eae2: da06 bge.n 801eaf2 - 801eae4: f107 0358 add.w r3, r7, #88 ; 0x58 - 801eae8: 4618 mov r0, r3 - 801eaea: f7ff f909 bl 801dd00 - 801eaee: 4603 mov r3, r0 - 801eaf0: e005 b.n 801eafe - 801eaf2: f107 0358 add.w r3, r7, #88 ; 0x58 - 801eaf6: 4618 mov r0, r3 - 801eaf8: f7ff f918 bl 801dd2c - 801eafc: 4603 mov r3, r0 - 801eafe: f8a7 30a2 strh.w r3, [r7, #162] ; 0xa2 + 801ea32: f107 0358 add.w r3, r7, #88 ; 0x58 + 801ea36: 4618 mov r0, r3 + 801ea38: f7ff f918 bl 801dc6c + 801ea3c: 4603 mov r3, r0 + 801ea3e: 461c mov r4, r3 + 801ea40: f107 0358 add.w r3, r7, #88 ; 0x58 + 801ea44: 4618 mov r0, r3 + 801ea46: f7ff f927 bl 801dc98 + 801ea4a: 4603 mov r3, r0 + 801ea4c: 429c cmp r4, r3 + 801ea4e: da06 bge.n 801ea5e + 801ea50: f107 0358 add.w r3, r7, #88 ; 0x58 + 801ea54: 4618 mov r0, r3 + 801ea56: f7ff f909 bl 801dc6c + 801ea5a: 4603 mov r3, r0 + 801ea5c: e005 b.n 801ea6a + 801ea5e: f107 0358 add.w r3, r7, #88 ; 0x58 + 801ea62: 4618 mov r0, r3 + 801ea64: f7ff f918 bl 801dc98 + 801ea68: 4603 mov r3, r0 + 801ea6a: f8a7 30a2 strh.w r3, [r7, #162] ; 0xa2 if(r_bg > short_side >> 1) r_bg = short_side >> 1; - 801eb02: f9b7 30a2 ldrsh.w r3, [r7, #162] ; 0xa2 - 801eb06: 105b asrs r3, r3, #1 - 801eb08: b21b sxth r3, r3 - 801eb0a: 461a mov r2, r3 - 801eb0c: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801eb10: 4293 cmp r3, r2 - 801eb12: dd05 ble.n 801eb20 - 801eb14: f9b7 30a2 ldrsh.w r3, [r7, #162] ; 0xa2 - 801eb18: 105b asrs r3, r3, #1 - 801eb1a: b21b sxth r3, r3 - 801eb1c: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0 + 801ea6e: f9b7 30a2 ldrsh.w r3, [r7, #162] ; 0xa2 + 801ea72: 105b asrs r3, r3, #1 + 801ea74: b21b sxth r3, r3 + 801ea76: 461a mov r2, r3 + 801ea78: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801ea7c: 4293 cmp r3, r2 + 801ea7e: dd05 ble.n 801ea8c + 801ea80: f9b7 30a2 ldrsh.w r3, [r7, #162] ; 0xa2 + 801ea84: 105b asrs r3, r3, #1 + 801ea86: b21b sxth r3, r3 + 801ea88: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0 /*Get the clamped radius*/ int32_t r_sh = dsc->radius; - 801eb20: 68bb ldr r3, [r7, #8] - 801eb22: f9b3 3000 ldrsh.w r3, [r3] - 801eb26: f8c7 30bc str.w r3, [r7, #188] ; 0xbc + 801ea8c: 68bb ldr r3, [r7, #8] + 801ea8e: f9b3 3000 ldrsh.w r3, [r3] + 801ea92: f8c7 30bc str.w r3, [r7, #188] ; 0xbc short_side = LV_MIN(lv_area_get_width(&core_area), lv_area_get_height(&core_area)); - 801eb2a: f107 0370 add.w r3, r7, #112 ; 0x70 - 801eb2e: 4618 mov r0, r3 - 801eb30: f7ff f8e6 bl 801dd00 - 801eb34: 4603 mov r3, r0 - 801eb36: 461c mov r4, r3 - 801eb38: f107 0370 add.w r3, r7, #112 ; 0x70 - 801eb3c: 4618 mov r0, r3 - 801eb3e: f7ff f8f5 bl 801dd2c - 801eb42: 4603 mov r3, r0 - 801eb44: 429c cmp r4, r3 - 801eb46: da06 bge.n 801eb56 - 801eb48: f107 0370 add.w r3, r7, #112 ; 0x70 - 801eb4c: 4618 mov r0, r3 - 801eb4e: f7ff f8d7 bl 801dd00 - 801eb52: 4603 mov r3, r0 - 801eb54: e005 b.n 801eb62 - 801eb56: f107 0370 add.w r3, r7, #112 ; 0x70 - 801eb5a: 4618 mov r0, r3 - 801eb5c: f7ff f8e6 bl 801dd2c - 801eb60: 4603 mov r3, r0 - 801eb62: f8a7 30a2 strh.w r3, [r7, #162] ; 0xa2 + 801ea96: f107 0370 add.w r3, r7, #112 ; 0x70 + 801ea9a: 4618 mov r0, r3 + 801ea9c: f7ff f8e6 bl 801dc6c + 801eaa0: 4603 mov r3, r0 + 801eaa2: 461c mov r4, r3 + 801eaa4: f107 0370 add.w r3, r7, #112 ; 0x70 + 801eaa8: 4618 mov r0, r3 + 801eaaa: f7ff f8f5 bl 801dc98 + 801eaae: 4603 mov r3, r0 + 801eab0: 429c cmp r4, r3 + 801eab2: da06 bge.n 801eac2 + 801eab4: f107 0370 add.w r3, r7, #112 ; 0x70 + 801eab8: 4618 mov r0, r3 + 801eaba: f7ff f8d7 bl 801dc6c + 801eabe: 4603 mov r3, r0 + 801eac0: e005 b.n 801eace + 801eac2: f107 0370 add.w r3, r7, #112 ; 0x70 + 801eac6: 4618 mov r0, r3 + 801eac8: f7ff f8e6 bl 801dc98 + 801eacc: 4603 mov r3, r0 + 801eace: f8a7 30a2 strh.w r3, [r7, #162] ; 0xa2 if(r_sh > short_side >> 1) r_sh = short_side >> 1; - 801eb66: f9b7 30a2 ldrsh.w r3, [r7, #162] ; 0xa2 - 801eb6a: 105b asrs r3, r3, #1 - 801eb6c: b21b sxth r3, r3 - 801eb6e: 461a mov r2, r3 - 801eb70: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 801eb74: 4293 cmp r3, r2 - 801eb76: dd05 ble.n 801eb84 - 801eb78: f9b7 30a2 ldrsh.w r3, [r7, #162] ; 0xa2 - 801eb7c: 105b asrs r3, r3, #1 - 801eb7e: b21b sxth r3, r3 - 801eb80: f8c7 30bc str.w r3, [r7, #188] ; 0xbc + 801ead2: f9b7 30a2 ldrsh.w r3, [r7, #162] ; 0xa2 + 801ead6: 105b asrs r3, r3, #1 + 801ead8: b21b sxth r3, r3 + 801eada: 461a mov r2, r3 + 801eadc: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 801eae0: 4293 cmp r3, r2 + 801eae2: dd05 ble.n 801eaf0 + 801eae4: f9b7 30a2 ldrsh.w r3, [r7, #162] ; 0xa2 + 801eae8: 105b asrs r3, r3, #1 + 801eaea: b21b sxth r3, r3 + 801eaec: f8c7 30bc str.w r3, [r7, #188] ; 0xbc /*Get how many pixels are affected by the blur on the corners*/ int32_t corner_size = dsc->shadow_width + r_sh; - 801eb84: 68bb ldr r3, [r7, #8] - 801eb86: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 801eb8a: 461a mov r2, r3 - 801eb8c: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 801eb90: 4413 add r3, r2 - 801eb92: f8c7 309c str.w r3, [r7, #156] ; 0x9c + 801eaf0: 68bb ldr r3, [r7, #8] + 801eaf2: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 801eaf6: 461a mov r2, r3 + 801eaf8: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 801eafc: 4413 add r3, r2 + 801eafe: f8c7 309c str.w r3, [r7, #156] ; 0x9c sh_cache_size = corner_size; sh_cache_r = r_sh; } } #else sh_buf = lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t)); - 801eb96: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801eb9a: fb03 f303 mul.w r3, r3, r3 - 801eb9e: 005b lsls r3, r3, #1 - 801eba0: 4618 mov r0, r3 - 801eba2: f013 ff2d bl 8032a00 - 801eba6: f8c7 0098 str.w r0, [r7, #152] ; 0x98 + 801eb02: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801eb06: fb03 f303 mul.w r3, r3, r3 + 801eb0a: 005b lsls r3, r3, #1 + 801eb0c: 4618 mov r0, r3 + 801eb0e: f013 ff2d bl 803296c + 801eb12: f8c7 0098 str.w r0, [r7, #152] ; 0x98 shadow_draw_corner_buf(&core_area, (uint16_t *)sh_buf, dsc->shadow_width, r_sh); - 801ebaa: 68bb ldr r3, [r7, #8] - 801ebac: f9b3 202e ldrsh.w r2, [r3, #46] ; 0x2e - 801ebb0: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 801ebb4: b21b sxth r3, r3 - 801ebb6: f107 0070 add.w r0, r7, #112 ; 0x70 - 801ebba: f8d7 1098 ldr.w r1, [r7, #152] ; 0x98 - 801ebbe: f001 f950 bl 801fe62 + 801eb16: 68bb ldr r3, [r7, #8] + 801eb18: f9b3 202e ldrsh.w r2, [r3, #46] ; 0x2e + 801eb1c: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 801eb20: b21b sxth r3, r3 + 801eb22: f107 0070 add.w r0, r7, #112 ; 0x70 + 801eb26: f8d7 1098 ldr.w r1, [r7, #152] ; 0x98 + 801eb2a: f001 f950 bl 801fdce #endif /*Skip a lot of masking if the background will cover the shadow that would be masked out*/ bool mask_any = lv_draw_mask_is_any(&shadow_area); - 801ebc2: f107 0368 add.w r3, r7, #104 ; 0x68 - 801ebc6: 4618 mov r0, r3 - 801ebc8: f7f4 fb6a bl 80132a0 - 801ebcc: 4603 mov r3, r0 - 801ebce: f887 3097 strb.w r3, [r7, #151] ; 0x97 + 801eb2e: f107 0368 add.w r3, r7, #104 ; 0x68 + 801eb32: 4618 mov r0, r3 + 801eb34: f7f4 fb6a bl 801320c + 801eb38: 4603 mov r3, r0 + 801eb3a: f887 3097 strb.w r3, [r7, #151] ; 0x97 bool simple = true; - 801ebd2: 2301 movs r3, #1 - 801ebd4: f887 30bb strb.w r3, [r7, #187] ; 0xbb + 801eb3e: 2301 movs r3, #1 + 801eb40: f887 30bb strb.w r3, [r7, #187] ; 0xbb if(mask_any || dsc->bg_opa < LV_OPA_COVER || dsc->blend_mode != LV_BLEND_MODE_NORMAL) simple = false; - 801ebd8: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 - 801ebdc: 2b00 cmp r3, #0 - 801ebde: d107 bne.n 801ebf0 - 801ebe0: 68bb ldr r3, [r7, #8] - 801ebe2: 78db ldrb r3, [r3, #3] - 801ebe4: 2bff cmp r3, #255 ; 0xff - 801ebe6: d103 bne.n 801ebf0 - 801ebe8: 68bb ldr r3, [r7, #8] - 801ebea: 789b ldrb r3, [r3, #2] - 801ebec: 2b00 cmp r3, #0 - 801ebee: d002 beq.n 801ebf6 - 801ebf0: 2300 movs r3, #0 - 801ebf2: f887 30bb strb.w r3, [r7, #187] ; 0xbb + 801eb44: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 + 801eb48: 2b00 cmp r3, #0 + 801eb4a: d107 bne.n 801eb5c + 801eb4c: 68bb ldr r3, [r7, #8] + 801eb4e: 78db ldrb r3, [r3, #3] + 801eb50: 2bff cmp r3, #255 ; 0xff + 801eb52: d103 bne.n 801eb5c + 801eb54: 68bb ldr r3, [r7, #8] + 801eb56: 789b ldrb r3, [r3, #2] + 801eb58: 2b00 cmp r3, #0 + 801eb5a: d002 beq.n 801eb62 + 801eb5c: 2300 movs r3, #0 + 801eb5e: f887 30bb strb.w r3, [r7, #187] ; 0xbb /*Create a radius mask to clip remove shadow on the bg area*/ lv_draw_mask_radius_param_t mask_rout_param; int16_t mask_rout_id = LV_MASK_ID_INV; - 801ebf6: f64f 73ff movw r3, #65535 ; 0xffff - 801ebfa: f8a7 30b8 strh.w r3, [r7, #184] ; 0xb8 + 801eb62: f64f 73ff movw r3, #65535 ; 0xffff + 801eb66: f8a7 30b8 strh.w r3, [r7, #184] ; 0xb8 if(!simple) { - 801ebfe: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801ec02: f083 0301 eor.w r3, r3, #1 - 801ec06: b2db uxtb r3, r3 - 801ec08: 2b00 cmp r3, #0 - 801ec0a: d012 beq.n 801ec32 + 801eb6a: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801eb6e: f083 0301 eor.w r3, r3, #1 + 801eb72: b2db uxtb r3, r3 + 801eb74: 2b00 cmp r3, #0 + 801eb76: d012 beq.n 801eb9e lv_draw_mask_radius_init(&mask_rout_param, &bg_area, r_bg, true); - 801ec0c: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801ec10: b21a sxth r2, r3 - 801ec12: f107 0158 add.w r1, r7, #88 ; 0x58 - 801ec16: f107 0040 add.w r0, r7, #64 ; 0x40 - 801ec1a: 2301 movs r3, #1 - 801ec1c: f7f4 fde8 bl 80137f0 + 801eb78: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801eb7c: b21a sxth r2, r3 + 801eb7e: f107 0158 add.w r1, r7, #88 ; 0x58 + 801eb82: f107 0040 add.w r0, r7, #64 ; 0x40 + 801eb86: 2301 movs r3, #1 + 801eb88: f7f4 fde8 bl 801375c mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL); - 801ec20: f107 0340 add.w r3, r7, #64 ; 0x40 - 801ec24: 2100 movs r1, #0 - 801ec26: 4618 mov r0, r3 - 801ec28: f7f4 fa0c bl 8013044 - 801ec2c: 4603 mov r3, r0 - 801ec2e: f8a7 30b8 strh.w r3, [r7, #184] ; 0xb8 + 801eb8c: f107 0340 add.w r3, r7, #64 ; 0x40 + 801eb90: 2100 movs r1, #0 + 801eb92: 4618 mov r0, r3 + 801eb94: f7f4 fa0c bl 8012fb0 + 801eb98: 4603 mov r3, r0 + 801eb9a: f8a7 30b8 strh.w r3, [r7, #184] ; 0xb8 } lv_opa_t * mask_buf = lv_mem_buf_get(lv_area_get_width(&shadow_area)); - 801ec32: f107 0368 add.w r3, r7, #104 ; 0x68 - 801ec36: 4618 mov r0, r3 - 801ec38: f7ff f862 bl 801dd00 - 801ec3c: 4603 mov r3, r0 - 801ec3e: 4618 mov r0, r3 - 801ec40: f013 fede bl 8032a00 - 801ec44: f8c7 0090 str.w r0, [r7, #144] ; 0x90 + 801eb9e: f107 0368 add.w r3, r7, #104 ; 0x68 + 801eba2: 4618 mov r0, r3 + 801eba4: f7ff f862 bl 801dc6c + 801eba8: 4603 mov r3, r0 + 801ebaa: 4618 mov r0, r3 + 801ebac: f013 fede bl 803296c + 801ebb0: f8c7 0090 str.w r0, [r7, #144] ; 0x90 lv_opa_t * sh_buf_tmp; lv_coord_t y; bool simple_sub; lv_draw_sw_blend_dsc_t blend_dsc; lv_memset_00(&blend_dsc, sizeof(blend_dsc)); - 801ec48: f107 0314 add.w r3, r7, #20 - 801ec4c: 211c movs r1, #28 - 801ec4e: 4618 mov r0, r3 - 801ec50: f014 fa7e bl 8033150 + 801ebb4: f107 0314 add.w r3, r7, #20 + 801ebb8: 211c movs r1, #28 + 801ebba: 4618 mov r0, r3 + 801ebbc: f014 fa7e bl 80330bc blend_dsc.blend_area = &blend_area; - 801ec54: f107 0338 add.w r3, r7, #56 ; 0x38 - 801ec58: 617b str r3, [r7, #20] + 801ebc0: f107 0338 add.w r3, r7, #56 ; 0x38 + 801ebc4: 617b str r3, [r7, #20] blend_dsc.mask_area = &blend_area; - 801ec5a: f107 0338 add.w r3, r7, #56 ; 0x38 - 801ec5e: 62bb str r3, [r7, #40] ; 0x28 + 801ebc6: f107 0338 add.w r3, r7, #56 ; 0x38 + 801ebca: 62bb str r3, [r7, #40] ; 0x28 blend_dsc.mask_buf = mask_buf; - 801ec60: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 801ec64: 623b str r3, [r7, #32] + 801ebcc: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 801ebd0: 623b str r3, [r7, #32] blend_dsc.color = dsc->shadow_color; - 801ec66: 68bb ldr r3, [r7, #8] - 801ec68: 8d9b ldrh r3, [r3, #44] ; 0x2c - 801ec6a: 83bb strh r3, [r7, #28] + 801ebd2: 68bb ldr r3, [r7, #8] + 801ebd4: 8d9b ldrh r3, [r3, #44] ; 0x2c + 801ebd6: 83bb strh r3, [r7, #28] blend_dsc.opa = dsc->shadow_opa; - 801ec6c: 68bb ldr r3, [r7, #8] - 801ec6e: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 801ec72: f887 302c strb.w r3, [r7, #44] ; 0x2c + 801ebd8: 68bb ldr r3, [r7, #8] + 801ebda: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 801ebde: f887 302c strb.w r3, [r7, #44] ; 0x2c blend_dsc.blend_mode = dsc->blend_mode; - 801ec76: 68bb ldr r3, [r7, #8] - 801ec78: 789b ldrb r3, [r3, #2] - 801ec7a: f887 302d strb.w r3, [r7, #45] ; 0x2d + 801ebe2: 68bb ldr r3, [r7, #8] + 801ebe4: 789b ldrb r3, [r3, #2] + 801ebe6: f887 302d strb.w r3, [r7, #45] ; 0x2d lv_coord_t w_half = shadow_area.x1 + lv_area_get_width(&shadow_area) / 2; - 801ec7e: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 - 801ec82: b29c uxth r4, r3 - 801ec84: f107 0368 add.w r3, r7, #104 ; 0x68 - 801ec88: 4618 mov r0, r3 - 801ec8a: f7ff f839 bl 801dd00 - 801ec8e: 4603 mov r3, r0 - 801ec90: 0fda lsrs r2, r3, #31 - 801ec92: 4413 add r3, r2 - 801ec94: 105b asrs r3, r3, #1 - 801ec96: b21b sxth r3, r3 - 801ec98: b29b uxth r3, r3 - 801ec9a: 4423 add r3, r4 - 801ec9c: b29b uxth r3, r3 - 801ec9e: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 801ebea: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 + 801ebee: b29c uxth r4, r3 + 801ebf0: f107 0368 add.w r3, r7, #104 ; 0x68 + 801ebf4: 4618 mov r0, r3 + 801ebf6: f7ff f839 bl 801dc6c + 801ebfa: 4603 mov r3, r0 + 801ebfc: 0fda lsrs r2, r3, #31 + 801ebfe: 4413 add r3, r2 + 801ec00: 105b asrs r3, r3, #1 + 801ec02: b21b sxth r3, r3 + 801ec04: b29b uxth r3, r3 + 801ec06: 4423 add r3, r4 + 801ec08: b29b uxth r3, r3 + 801ec0a: f8a7 308e strh.w r3, [r7, #142] ; 0x8e lv_coord_t h_half = shadow_area.y1 + lv_area_get_height(&shadow_area) / 2; - 801eca2: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801eca6: b29c uxth r4, r3 - 801eca8: f107 0368 add.w r3, r7, #104 ; 0x68 - 801ecac: 4618 mov r0, r3 - 801ecae: f7ff f83d bl 801dd2c - 801ecb2: 4603 mov r3, r0 - 801ecb4: 0fda lsrs r2, r3, #31 - 801ecb6: 4413 add r3, r2 - 801ecb8: 105b asrs r3, r3, #1 - 801ecba: b21b sxth r3, r3 - 801ecbc: b29b uxth r3, r3 - 801ecbe: 4423 add r3, r4 - 801ecc0: b29b uxth r3, r3 - 801ecc2: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 801ec0e: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801ec12: b29c uxth r4, r3 + 801ec14: f107 0368 add.w r3, r7, #104 ; 0x68 + 801ec18: 4618 mov r0, r3 + 801ec1a: f7ff f83d bl 801dc98 + 801ec1e: 4603 mov r3, r0 + 801ec20: 0fda lsrs r2, r3, #31 + 801ec22: 4413 add r3, r2 + 801ec24: 105b asrs r3, r3, #1 + 801ec26: b21b sxth r3, r3 + 801ec28: b29b uxth r3, r3 + 801ec2a: 4423 add r3, r4 + 801ec2c: b29b uxth r3, r3 + 801ec2e: f8a7 308c strh.w r3, [r7, #140] ; 0x8c /*Draw the corners if they are on the current clip area and not fully covered by the bg*/ /*Top right corner*/ blend_area.x2 = shadow_area.x2; - 801ecc6: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c - 801ecca: 87bb strh r3, [r7, #60] ; 0x3c + 801ec32: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c + 801ec36: 87bb strh r3, [r7, #60] ; 0x3c blend_area.x1 = shadow_area.x2 - corner_size + 1; - 801eccc: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c - 801ecd0: b29a uxth r2, r3 - 801ecd2: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801ecd6: b29b uxth r3, r3 - 801ecd8: 1ad3 subs r3, r2, r3 - 801ecda: b29b uxth r3, r3 - 801ecdc: 3301 adds r3, #1 - 801ecde: b29b uxth r3, r3 - 801ece0: b21b sxth r3, r3 - 801ece2: 873b strh r3, [r7, #56] ; 0x38 + 801ec38: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c + 801ec3c: b29a uxth r2, r3 + 801ec3e: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801ec42: b29b uxth r3, r3 + 801ec44: 1ad3 subs r3, r2, r3 + 801ec46: b29b uxth r3, r3 + 801ec48: 3301 adds r3, #1 + 801ec4a: b29b uxth r3, r3 + 801ec4c: b21b sxth r3, r3 + 801ec4e: 873b strh r3, [r7, #56] ; 0x38 blend_area.y1 = shadow_area.y1; - 801ece4: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801ece8: 877b strh r3, [r7, #58] ; 0x3a + 801ec50: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801ec54: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = shadow_area.y1 + corner_size - 1; - 801ecea: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801ecee: b29a uxth r2, r3 - 801ecf0: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801ecf4: b29b uxth r3, r3 - 801ecf6: 4413 add r3, r2 - 801ecf8: b29b uxth r3, r3 - 801ecfa: 3b01 subs r3, #1 - 801ecfc: b29b uxth r3, r3 - 801ecfe: b21b sxth r3, r3 - 801ed00: 87fb strh r3, [r7, #62] ; 0x3e + 801ec56: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801ec5a: b29a uxth r2, r3 + 801ec5c: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801ec60: b29b uxth r3, r3 + 801ec62: 4413 add r3, r2 + 801ec64: b29b uxth r3, r3 + 801ec66: 3b01 subs r3, #1 + 801ec68: b29b uxth r3, r3 + 801ec6a: b21b sxth r3, r3 + 801ec6c: 87fb strh r3, [r7, #62] ; 0x3e /*Do not overdraw the other top corners*/ blend_area.x1 = LV_MAX(blend_area.x1, w_half); - 801ed02: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 801ed06: f9b7 208e ldrsh.w r2, [r7, #142] ; 0x8e - 801ed0a: 4293 cmp r3, r2 - 801ed0c: bfb8 it lt - 801ed0e: 4613 movlt r3, r2 - 801ed10: b21b sxth r3, r3 - 801ed12: 873b strh r3, [r7, #56] ; 0x38 + 801ec6e: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 801ec72: f9b7 208e ldrsh.w r2, [r7, #142] ; 0x8e + 801ec76: 4293 cmp r3, r2 + 801ec78: bfb8 it lt + 801ec7a: 4613 movlt r3, r2 + 801ec7c: b21b sxth r3, r3 + 801ec7e: 873b strh r3, [r7, #56] ; 0x38 blend_area.y2 = LV_MIN(blend_area.y2, h_half); - 801ed14: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 801ed18: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c - 801ed1c: 4293 cmp r3, r2 - 801ed1e: bfa8 it ge - 801ed20: 4613 movge r3, r2 - 801ed22: b21b sxth r3, r3 - 801ed24: 87fb strh r3, [r7, #62] ; 0x3e + 801ec80: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 801ec84: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c + 801ec88: 4293 cmp r3, r2 + 801ec8a: bfa8 it ge + 801ec8c: 4613 movge r3, r2 + 801ec8e: b21b sxth r3, r3 + 801ec90: 87fb strh r3, [r7, #62] ; 0x3e if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801ed26: 68fb ldr r3, [r7, #12] - 801ed28: 689a ldr r2, [r3, #8] - 801ed2a: f107 0138 add.w r1, r7, #56 ; 0x38 - 801ed2e: f107 0330 add.w r3, r7, #48 ; 0x30 - 801ed32: 4618 mov r0, r3 - 801ed34: f012 f9b8 bl 80310a8 <_lv_area_intersect> - 801ed38: 4603 mov r3, r0 - 801ed3a: 2b00 cmp r3, #0 - 801ed3c: f000 80b3 beq.w 801eea6 + 801ec92: 68fb ldr r3, [r7, #12] + 801ec94: 689a ldr r2, [r3, #8] + 801ec96: f107 0138 add.w r1, r7, #56 ; 0x38 + 801ec9a: f107 0330 add.w r3, r7, #48 ; 0x30 + 801ec9e: 4618 mov r0, r3 + 801eca0: f012 f9b8 bl 8031014 <_lv_area_intersect> + 801eca4: 4603 mov r3, r0 + 801eca6: 2b00 cmp r3, #0 + 801eca8: f000 80b3 beq.w 801ee12 !_lv_area_is_in(&clip_area_sub, &bg_area, r_bg)) { - 801ed40: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801ed44: b21a sxth r2, r3 - 801ed46: f107 0158 add.w r1, r7, #88 ; 0x58 - 801ed4a: f107 0330 add.w r3, r7, #48 ; 0x30 - 801ed4e: 4618 mov r0, r3 - 801ed50: f012 fb89 bl 8031466 <_lv_area_is_in> - 801ed54: 4603 mov r3, r0 - 801ed56: f083 0301 eor.w r3, r3, #1 - 801ed5a: b2db uxtb r3, r3 + 801ecac: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801ecb0: b21a sxth r2, r3 + 801ecb2: f107 0158 add.w r1, r7, #88 ; 0x58 + 801ecb6: f107 0330 add.w r3, r7, #48 ; 0x30 + 801ecba: 4618 mov r0, r3 + 801ecbc: f012 fb89 bl 80313d2 <_lv_area_is_in> + 801ecc0: 4603 mov r3, r0 + 801ecc2: f083 0301 eor.w r3, r3, #1 + 801ecc6: b2db uxtb r3, r3 if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801ed5c: 2b00 cmp r3, #0 - 801ed5e: f000 80a2 beq.w 801eea6 + 801ecc8: 2b00 cmp r3, #0 + 801ecca: f000 80a2 beq.w 801ee12 lv_coord_t w = lv_area_get_width(&clip_area_sub); - 801ed62: f107 0330 add.w r3, r7, #48 ; 0x30 - 801ed66: 4618 mov r0, r3 - 801ed68: f7fe ffca bl 801dd00 - 801ed6c: 4603 mov r3, r0 - 801ed6e: f8a7 308a strh.w r3, [r7, #138] ; 0x8a + 801ecce: f107 0330 add.w r3, r7, #48 ; 0x30 + 801ecd2: 4618 mov r0, r3 + 801ecd4: f7fe ffca bl 801dc6c + 801ecd8: 4603 mov r3, r0 + 801ecda: f8a7 308a strh.w r3, [r7, #138] ; 0x8a sh_buf_tmp = sh_buf; - 801ed72: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 801ed76: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801ecde: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 801ece2: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 sh_buf_tmp += (clip_area_sub.y1 - shadow_area.y1) * corner_size; - 801ed7a: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 801ed7e: 461a mov r2, r3 - 801ed80: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801ed84: 1ad3 subs r3, r2, r3 - 801ed86: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c - 801ed8a: fb02 f303 mul.w r3, r2, r3 - 801ed8e: 461a mov r2, r3 - 801ed90: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801ed94: 4413 add r3, r2 - 801ed96: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801ece6: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 801ecea: 461a mov r2, r3 + 801ecec: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801ecf0: 1ad3 subs r3, r2, r3 + 801ecf2: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c + 801ecf6: fb02 f303 mul.w r3, r2, r3 + 801ecfa: 461a mov r2, r3 + 801ecfc: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801ed00: 4413 add r3, r2 + 801ed02: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 sh_buf_tmp += clip_area_sub.x1 - (shadow_area.x2 - corner_size + 1); - 801ed9a: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801ed9e: 461a mov r2, r3 - 801eda0: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c - 801eda4: 4619 mov r1, r3 - 801eda6: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801edaa: 1acb subs r3, r1, r3 - 801edac: 3301 adds r3, #1 - 801edae: 1ad3 subs r3, r2, r3 - 801edb0: 461a mov r2, r3 - 801edb2: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801edb6: 4413 add r3, r2 - 801edb8: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801ed06: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801ed0a: 461a mov r2, r3 + 801ed0c: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c + 801ed10: 4619 mov r1, r3 + 801ed12: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801ed16: 1acb subs r3, r1, r3 + 801ed18: 3301 adds r3, #1 + 801ed1a: 1ad3 subs r3, r2, r3 + 801ed1c: 461a mov r2, r3 + 801ed1e: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801ed22: 4413 add r3, r2 + 801ed24: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 /*Do not mask if out of the bg*/ if(simple && _lv_area_is_out(&clip_area_sub, &bg_area, r_bg)) simple_sub = true; - 801edbc: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801edc0: 2b00 cmp r3, #0 - 801edc2: d010 beq.n 801ede6 - 801edc4: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801edc8: b21a sxth r2, r3 - 801edca: f107 0158 add.w r1, r7, #88 ; 0x58 - 801edce: f107 0330 add.w r3, r7, #48 ; 0x30 - 801edd2: 4618 mov r0, r3 - 801edd4: f012 fbe5 bl 80315a2 <_lv_area_is_out> - 801edd8: 4603 mov r3, r0 - 801edda: 2b00 cmp r3, #0 - 801eddc: d003 beq.n 801ede6 - 801edde: 2301 movs r3, #1 - 801ede0: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 - 801ede4: e003 b.n 801edee + 801ed28: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801ed2c: 2b00 cmp r3, #0 + 801ed2e: d010 beq.n 801ed52 + 801ed30: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801ed34: b21a sxth r2, r3 + 801ed36: f107 0158 add.w r1, r7, #88 ; 0x58 + 801ed3a: f107 0330 add.w r3, r7, #48 ; 0x30 + 801ed3e: 4618 mov r0, r3 + 801ed40: f012 fbe5 bl 803150e <_lv_area_is_out> + 801ed44: 4603 mov r3, r0 + 801ed46: 2b00 cmp r3, #0 + 801ed48: d003 beq.n 801ed52 + 801ed4a: 2301 movs r3, #1 + 801ed4c: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801ed50: e003 b.n 801ed5a else simple_sub = simple; - 801ede6: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801edea: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801ed52: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801ed56: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 if(w > 0) { - 801edee: f9b7 308a ldrsh.w r3, [r7, #138] ; 0x8a - 801edf2: 2b00 cmp r3, #0 - 801edf4: dd57 ble.n 801eea6 + 801ed5a: f9b7 308a ldrsh.w r3, [r7, #138] ; 0x8a + 801ed5e: 2b00 cmp r3, #0 + 801ed60: dd57 ble.n 801ee12 blend_dsc.mask_buf = mask_buf; - 801edf6: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 801edfa: 623b str r3, [r7, #32] + 801ed62: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 801ed66: 623b str r3, [r7, #32] blend_area.x1 = clip_area_sub.x1; - 801edfc: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801ee00: 873b strh r3, [r7, #56] ; 0x38 + 801ed68: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801ed6c: 873b strh r3, [r7, #56] ; 0x38 blend_area.x2 = clip_area_sub.x2; - 801ee02: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 801ee06: 87bb strh r3, [r7, #60] ; 0x3c + 801ed6e: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 801ed72: 87bb strh r3, [r7, #60] ; 0x3c blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; /*In simple mode it won't be overwritten*/ - 801ee08: 2302 movs r3, #2 - 801ee0a: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801ed74: 2302 movs r3, #2 + 801ed76: f887 3024 strb.w r3, [r7, #36] ; 0x24 for(y = clip_area_sub.y1; y <= clip_area_sub.y2; y++) { - 801ee0e: 8e7b ldrh r3, [r7, #50] ; 0x32 - 801ee10: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801ee14: e041 b.n 801ee9a + 801ed7a: 8e7b ldrh r3, [r7, #50] ; 0x32 + 801ed7c: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801ed80: e041 b.n 801ee06 blend_area.y1 = y; - 801ee16: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801ee1a: 877b strh r3, [r7, #58] ; 0x3a + 801ed82: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801ed86: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = y; - 801ee1c: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801ee20: 87fb strh r3, [r7, #62] ; 0x3e + 801ed88: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801ed8c: 87fb strh r3, [r7, #62] ; 0x3e if(!simple_sub) { - 801ee22: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 - 801ee26: f083 0301 eor.w r3, r3, #1 - 801ee2a: b2db uxtb r3, r3 - 801ee2c: 2b00 cmp r3, #0 - 801ee2e: d01d beq.n 801ee6c + 801ed8e: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 + 801ed92: f083 0301 eor.w r3, r3, #1 + 801ed96: b2db uxtb r3, r3 + 801ed98: 2b00 cmp r3, #0 + 801ed9a: d01d beq.n 801edd8 lv_memcpy(mask_buf, sh_buf_tmp, corner_size); - 801ee30: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801ee34: 461a mov r2, r3 - 801ee36: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 - 801ee3a: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801ee3e: f013 fee3 bl 8032c08 + 801ed9c: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801eda0: 461a mov r2, r3 + 801eda2: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 + 801eda6: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801edaa: f013 fee3 bl 8032b74 blend_dsc.mask_res = lv_draw_mask_apply(mask_buf, clip_area_sub.x1, y, w); - 801ee42: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 - 801ee46: f9b7 308a ldrsh.w r3, [r7, #138] ; 0x8a - 801ee4a: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801ee4e: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801ee52: f7f4 f927 bl 80130a4 - 801ee56: 4603 mov r3, r0 - 801ee58: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801edae: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 + 801edb2: f9b7 308a ldrsh.w r3, [r7, #138] ; 0x8a + 801edb6: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801edba: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801edbe: f7f4 f927 bl 8013010 + 801edc2: 4603 mov r3, r0 + 801edc4: f887 3024 strb.w r3, [r7, #36] ; 0x24 if(blend_dsc.mask_res == LV_DRAW_MASK_RES_FULL_COVER) blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801ee5c: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 801ee60: 2b01 cmp r3, #1 - 801ee62: d106 bne.n 801ee72 - 801ee64: 2302 movs r3, #2 - 801ee66: f887 3024 strb.w r3, [r7, #36] ; 0x24 - 801ee6a: e002 b.n 801ee72 + 801edc8: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 + 801edcc: 2b01 cmp r3, #1 + 801edce: d106 bne.n 801edde + 801edd0: 2302 movs r3, #2 + 801edd2: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801edd6: e002 b.n 801edde } else { blend_dsc.mask_buf = sh_buf_tmp; - 801ee6c: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801ee70: 623b str r3, [r7, #32] + 801edd8: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801eddc: 623b str r3, [r7, #32] } lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801ee72: f107 0314 add.w r3, r7, #20 - 801ee76: 4619 mov r1, r3 - 801ee78: 68f8 ldr r0, [r7, #12] - 801ee7a: f7fa fe0a bl 8019a92 + 801edde: f107 0314 add.w r3, r7, #20 + 801ede2: 4619 mov r1, r3 + 801ede4: 68f8 ldr r0, [r7, #12] + 801ede6: f7fa fe0a bl 80199fe sh_buf_tmp += corner_size; - 801ee7e: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801ee82: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 - 801ee86: 4413 add r3, r2 - 801ee88: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801edea: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801edee: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 + 801edf2: 4413 add r3, r2 + 801edf4: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 for(y = clip_area_sub.y1; y <= clip_area_sub.y2; y++) { - 801ee8c: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 801ee90: b29b uxth r3, r3 - 801ee92: 3301 adds r3, #1 - 801ee94: b29b uxth r3, r3 - 801ee96: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801ee9a: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 801ee9e: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801eea2: 429a cmp r2, r3 - 801eea4: ddb7 ble.n 801ee16 + 801edf8: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 801edfc: b29b uxth r3, r3 + 801edfe: 3301 adds r3, #1 + 801ee00: b29b uxth r3, r3 + 801ee02: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801ee06: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 801ee0a: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801ee0e: 429a cmp r2, r3 + 801ee10: ddb7 ble.n 801ed82 } } /*Bottom right corner. *Almost the same as top right just read the lines of `sh_buf` from then end*/ blend_area.x2 = shadow_area.x2; - 801eea6: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c - 801eeaa: 87bb strh r3, [r7, #60] ; 0x3c + 801ee12: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c + 801ee16: 87bb strh r3, [r7, #60] ; 0x3c blend_area.x1 = shadow_area.x2 - corner_size + 1; - 801eeac: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c - 801eeb0: b29a uxth r2, r3 - 801eeb2: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801eeb6: b29b uxth r3, r3 - 801eeb8: 1ad3 subs r3, r2, r3 - 801eeba: b29b uxth r3, r3 - 801eebc: 3301 adds r3, #1 - 801eebe: b29b uxth r3, r3 - 801eec0: b21b sxth r3, r3 - 801eec2: 873b strh r3, [r7, #56] ; 0x38 + 801ee18: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c + 801ee1c: b29a uxth r2, r3 + 801ee1e: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801ee22: b29b uxth r3, r3 + 801ee24: 1ad3 subs r3, r2, r3 + 801ee26: b29b uxth r3, r3 + 801ee28: 3301 adds r3, #1 + 801ee2a: b29b uxth r3, r3 + 801ee2c: b21b sxth r3, r3 + 801ee2e: 873b strh r3, [r7, #56] ; 0x38 blend_area.y1 = shadow_area.y2 - corner_size + 1; - 801eec4: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e - 801eec8: b29a uxth r2, r3 - 801eeca: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801eece: b29b uxth r3, r3 - 801eed0: 1ad3 subs r3, r2, r3 - 801eed2: b29b uxth r3, r3 - 801eed4: 3301 adds r3, #1 - 801eed6: b29b uxth r3, r3 - 801eed8: b21b sxth r3, r3 - 801eeda: 877b strh r3, [r7, #58] ; 0x3a + 801ee30: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e + 801ee34: b29a uxth r2, r3 + 801ee36: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801ee3a: b29b uxth r3, r3 + 801ee3c: 1ad3 subs r3, r2, r3 + 801ee3e: b29b uxth r3, r3 + 801ee40: 3301 adds r3, #1 + 801ee42: b29b uxth r3, r3 + 801ee44: b21b sxth r3, r3 + 801ee46: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = shadow_area.y2; - 801eedc: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e - 801eee0: 87fb strh r3, [r7, #62] ; 0x3e + 801ee48: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e + 801ee4c: 87fb strh r3, [r7, #62] ; 0x3e /*Do not overdraw the other corners*/ blend_area.x1 = LV_MAX(blend_area.x1, w_half); - 801eee2: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 801eee6: f9b7 208e ldrsh.w r2, [r7, #142] ; 0x8e - 801eeea: 4293 cmp r3, r2 - 801eeec: bfb8 it lt - 801eeee: 4613 movlt r3, r2 - 801eef0: b21b sxth r3, r3 - 801eef2: 873b strh r3, [r7, #56] ; 0x38 + 801ee4e: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 801ee52: f9b7 208e ldrsh.w r2, [r7, #142] ; 0x8e + 801ee56: 4293 cmp r3, r2 + 801ee58: bfb8 it lt + 801ee5a: 4613 movlt r3, r2 + 801ee5c: b21b sxth r3, r3 + 801ee5e: 873b strh r3, [r7, #56] ; 0x38 blend_area.y1 = LV_MAX(blend_area.y1, h_half + 1); - 801eef4: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c - 801eef8: 3301 adds r3, #1 - 801eefa: f9b7 203a ldrsh.w r2, [r7, #58] ; 0x3a - 801eefe: 4293 cmp r3, r2 - 801ef00: bfb8 it lt - 801ef02: 4613 movlt r3, r2 - 801ef04: b21b sxth r3, r3 - 801ef06: 877b strh r3, [r7, #58] ; 0x3a + 801ee60: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c + 801ee64: 3301 adds r3, #1 + 801ee66: f9b7 203a ldrsh.w r2, [r7, #58] ; 0x3a + 801ee6a: 4293 cmp r3, r2 + 801ee6c: bfb8 it lt + 801ee6e: 4613 movlt r3, r2 + 801ee70: b21b sxth r3, r3 + 801ee72: 877b strh r3, [r7, #58] ; 0x3a if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801ef08: 68fb ldr r3, [r7, #12] - 801ef0a: 689a ldr r2, [r3, #8] - 801ef0c: f107 0138 add.w r1, r7, #56 ; 0x38 - 801ef10: f107 0330 add.w r3, r7, #48 ; 0x30 - 801ef14: 4618 mov r0, r3 - 801ef16: f012 f8c7 bl 80310a8 <_lv_area_intersect> - 801ef1a: 4603 mov r3, r0 - 801ef1c: 2b00 cmp r3, #0 - 801ef1e: f000 80b3 beq.w 801f088 + 801ee74: 68fb ldr r3, [r7, #12] + 801ee76: 689a ldr r2, [r3, #8] + 801ee78: f107 0138 add.w r1, r7, #56 ; 0x38 + 801ee7c: f107 0330 add.w r3, r7, #48 ; 0x30 + 801ee80: 4618 mov r0, r3 + 801ee82: f012 f8c7 bl 8031014 <_lv_area_intersect> + 801ee86: 4603 mov r3, r0 + 801ee88: 2b00 cmp r3, #0 + 801ee8a: f000 80b3 beq.w 801eff4 !_lv_area_is_in(&clip_area_sub, &bg_area, r_bg)) { - 801ef22: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801ef26: b21a sxth r2, r3 - 801ef28: f107 0158 add.w r1, r7, #88 ; 0x58 - 801ef2c: f107 0330 add.w r3, r7, #48 ; 0x30 - 801ef30: 4618 mov r0, r3 - 801ef32: f012 fa98 bl 8031466 <_lv_area_is_in> - 801ef36: 4603 mov r3, r0 - 801ef38: f083 0301 eor.w r3, r3, #1 - 801ef3c: b2db uxtb r3, r3 + 801ee8e: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801ee92: b21a sxth r2, r3 + 801ee94: f107 0158 add.w r1, r7, #88 ; 0x58 + 801ee98: f107 0330 add.w r3, r7, #48 ; 0x30 + 801ee9c: 4618 mov r0, r3 + 801ee9e: f012 fa98 bl 80313d2 <_lv_area_is_in> + 801eea2: 4603 mov r3, r0 + 801eea4: f083 0301 eor.w r3, r3, #1 + 801eea8: b2db uxtb r3, r3 if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801ef3e: 2b00 cmp r3, #0 - 801ef40: f000 80a2 beq.w 801f088 + 801eeaa: 2b00 cmp r3, #0 + 801eeac: f000 80a2 beq.w 801eff4 lv_coord_t w = lv_area_get_width(&clip_area_sub); - 801ef44: f107 0330 add.w r3, r7, #48 ; 0x30 - 801ef48: 4618 mov r0, r3 - 801ef4a: f7fe fed9 bl 801dd00 - 801ef4e: 4603 mov r3, r0 - 801ef50: f8a7 3088 strh.w r3, [r7, #136] ; 0x88 + 801eeb0: f107 0330 add.w r3, r7, #48 ; 0x30 + 801eeb4: 4618 mov r0, r3 + 801eeb6: f7fe fed9 bl 801dc6c + 801eeba: 4603 mov r3, r0 + 801eebc: f8a7 3088 strh.w r3, [r7, #136] ; 0x88 sh_buf_tmp = sh_buf; - 801ef54: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 801ef58: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801eec0: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 801eec4: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 sh_buf_tmp += (blend_area.y2 - clip_area_sub.y2) * corner_size; - 801ef5c: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 801ef60: 461a mov r2, r3 - 801ef62: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 801ef66: 1ad3 subs r3, r2, r3 - 801ef68: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c - 801ef6c: fb02 f303 mul.w r3, r2, r3 - 801ef70: 461a mov r2, r3 - 801ef72: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801ef76: 4413 add r3, r2 - 801ef78: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801eec8: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 801eecc: 461a mov r2, r3 + 801eece: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 801eed2: 1ad3 subs r3, r2, r3 + 801eed4: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c + 801eed8: fb02 f303 mul.w r3, r2, r3 + 801eedc: 461a mov r2, r3 + 801eede: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801eee2: 4413 add r3, r2 + 801eee4: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 sh_buf_tmp += clip_area_sub.x1 - (shadow_area.x2 - corner_size + 1); - 801ef7c: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801ef80: 461a mov r2, r3 - 801ef82: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c - 801ef86: 4619 mov r1, r3 - 801ef88: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801ef8c: 1acb subs r3, r1, r3 - 801ef8e: 3301 adds r3, #1 - 801ef90: 1ad3 subs r3, r2, r3 - 801ef92: 461a mov r2, r3 - 801ef94: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801ef98: 4413 add r3, r2 - 801ef9a: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801eee8: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801eeec: 461a mov r2, r3 + 801eeee: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c + 801eef2: 4619 mov r1, r3 + 801eef4: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801eef8: 1acb subs r3, r1, r3 + 801eefa: 3301 adds r3, #1 + 801eefc: 1ad3 subs r3, r2, r3 + 801eefe: 461a mov r2, r3 + 801ef00: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801ef04: 4413 add r3, r2 + 801ef06: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 /*Do not mask if out of the bg*/ if(simple && _lv_area_is_out(&clip_area_sub, &bg_area, r_bg)) simple_sub = true; - 801ef9e: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801efa2: 2b00 cmp r3, #0 - 801efa4: d010 beq.n 801efc8 - 801efa6: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801efaa: b21a sxth r2, r3 - 801efac: f107 0158 add.w r1, r7, #88 ; 0x58 - 801efb0: f107 0330 add.w r3, r7, #48 ; 0x30 - 801efb4: 4618 mov r0, r3 - 801efb6: f012 faf4 bl 80315a2 <_lv_area_is_out> - 801efba: 4603 mov r3, r0 - 801efbc: 2b00 cmp r3, #0 - 801efbe: d003 beq.n 801efc8 - 801efc0: 2301 movs r3, #1 - 801efc2: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 - 801efc6: e003 b.n 801efd0 + 801ef0a: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801ef0e: 2b00 cmp r3, #0 + 801ef10: d010 beq.n 801ef34 + 801ef12: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801ef16: b21a sxth r2, r3 + 801ef18: f107 0158 add.w r1, r7, #88 ; 0x58 + 801ef1c: f107 0330 add.w r3, r7, #48 ; 0x30 + 801ef20: 4618 mov r0, r3 + 801ef22: f012 faf4 bl 803150e <_lv_area_is_out> + 801ef26: 4603 mov r3, r0 + 801ef28: 2b00 cmp r3, #0 + 801ef2a: d003 beq.n 801ef34 + 801ef2c: 2301 movs r3, #1 + 801ef2e: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801ef32: e003 b.n 801ef3c else simple_sub = simple; - 801efc8: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801efcc: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801ef34: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801ef38: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 if(w > 0) { - 801efd0: f9b7 3088 ldrsh.w r3, [r7, #136] ; 0x88 - 801efd4: 2b00 cmp r3, #0 - 801efd6: dd57 ble.n 801f088 + 801ef3c: f9b7 3088 ldrsh.w r3, [r7, #136] ; 0x88 + 801ef40: 2b00 cmp r3, #0 + 801ef42: dd57 ble.n 801eff4 blend_dsc.mask_buf = mask_buf; - 801efd8: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 801efdc: 623b str r3, [r7, #32] + 801ef44: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 801ef48: 623b str r3, [r7, #32] blend_area.x1 = clip_area_sub.x1; - 801efde: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801efe2: 873b strh r3, [r7, #56] ; 0x38 + 801ef4a: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801ef4e: 873b strh r3, [r7, #56] ; 0x38 blend_area.x2 = clip_area_sub.x2; - 801efe4: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 801efe8: 87bb strh r3, [r7, #60] ; 0x3c + 801ef50: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 801ef54: 87bb strh r3, [r7, #60] ; 0x3c blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; /*In simple mode it won't be overwritten*/ - 801efea: 2302 movs r3, #2 - 801efec: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801ef56: 2302 movs r3, #2 + 801ef58: f887 3024 strb.w r3, [r7, #36] ; 0x24 for(y = clip_area_sub.y2; y >= clip_area_sub.y1; y--) { - 801eff0: 8efb ldrh r3, [r7, #54] ; 0x36 - 801eff2: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801eff6: e041 b.n 801f07c + 801ef5c: 8efb ldrh r3, [r7, #54] ; 0x36 + 801ef5e: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801ef62: e041 b.n 801efe8 blend_area.y1 = y; - 801eff8: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801effc: 877b strh r3, [r7, #58] ; 0x3a + 801ef64: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801ef68: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = y; - 801effe: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801f002: 87fb strh r3, [r7, #62] ; 0x3e + 801ef6a: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801ef6e: 87fb strh r3, [r7, #62] ; 0x3e if(!simple_sub) { - 801f004: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 - 801f008: f083 0301 eor.w r3, r3, #1 - 801f00c: b2db uxtb r3, r3 - 801f00e: 2b00 cmp r3, #0 - 801f010: d01d beq.n 801f04e + 801ef70: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 + 801ef74: f083 0301 eor.w r3, r3, #1 + 801ef78: b2db uxtb r3, r3 + 801ef7a: 2b00 cmp r3, #0 + 801ef7c: d01d beq.n 801efba lv_memcpy(mask_buf, sh_buf_tmp, corner_size); - 801f012: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f016: 461a mov r2, r3 - 801f018: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 - 801f01c: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801f020: f013 fdf2 bl 8032c08 + 801ef7e: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801ef82: 461a mov r2, r3 + 801ef84: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 + 801ef88: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801ef8c: f013 fdf2 bl 8032b74 blend_dsc.mask_res = lv_draw_mask_apply(mask_buf, clip_area_sub.x1, y, w); - 801f024: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 - 801f028: f9b7 3088 ldrsh.w r3, [r7, #136] ; 0x88 - 801f02c: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801f030: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801f034: f7f4 f836 bl 80130a4 - 801f038: 4603 mov r3, r0 - 801f03a: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801ef90: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 + 801ef94: f9b7 3088 ldrsh.w r3, [r7, #136] ; 0x88 + 801ef98: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801ef9c: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801efa0: f7f4 f836 bl 8013010 + 801efa4: 4603 mov r3, r0 + 801efa6: f887 3024 strb.w r3, [r7, #36] ; 0x24 if(blend_dsc.mask_res == LV_DRAW_MASK_RES_FULL_COVER) blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801f03e: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 801f042: 2b01 cmp r3, #1 - 801f044: d106 bne.n 801f054 - 801f046: 2302 movs r3, #2 - 801f048: f887 3024 strb.w r3, [r7, #36] ; 0x24 - 801f04c: e002 b.n 801f054 + 801efaa: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 + 801efae: 2b01 cmp r3, #1 + 801efb0: d106 bne.n 801efc0 + 801efb2: 2302 movs r3, #2 + 801efb4: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801efb8: e002 b.n 801efc0 } else { blend_dsc.mask_buf = sh_buf_tmp; - 801f04e: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801f052: 623b str r3, [r7, #32] + 801efba: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801efbe: 623b str r3, [r7, #32] } lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801f054: f107 0314 add.w r3, r7, #20 - 801f058: 4619 mov r1, r3 - 801f05a: 68f8 ldr r0, [r7, #12] - 801f05c: f7fa fd19 bl 8019a92 + 801efc0: f107 0314 add.w r3, r7, #20 + 801efc4: 4619 mov r1, r3 + 801efc6: 68f8 ldr r0, [r7, #12] + 801efc8: f7fa fd19 bl 80199fe sh_buf_tmp += corner_size; - 801f060: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f064: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 - 801f068: 4413 add r3, r2 - 801f06a: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801efcc: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801efd0: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 + 801efd4: 4413 add r3, r2 + 801efd6: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 for(y = clip_area_sub.y2; y >= clip_area_sub.y1; y--) { - 801f06e: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 801f072: b29b uxth r3, r3 - 801f074: 3b01 subs r3, #1 - 801f076: b29b uxth r3, r3 - 801f078: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801f07c: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 801f080: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801f084: 429a cmp r2, r3 - 801f086: dab7 bge.n 801eff8 + 801efda: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 801efde: b29b uxth r3, r3 + 801efe0: 3b01 subs r3, #1 + 801efe2: b29b uxth r3, r3 + 801efe4: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801efe8: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 801efec: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801eff0: 429a cmp r2, r3 + 801eff2: dab7 bge.n 801ef64 } } } /*Top side*/ blend_area.x1 = shadow_area.x1 + corner_size; - 801f088: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 - 801f08c: b29a uxth r2, r3 - 801f08e: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f092: b29b uxth r3, r3 - 801f094: 4413 add r3, r2 - 801f096: b29b uxth r3, r3 - 801f098: b21b sxth r3, r3 - 801f09a: 873b strh r3, [r7, #56] ; 0x38 + 801eff4: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 + 801eff8: b29a uxth r2, r3 + 801effa: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801effe: b29b uxth r3, r3 + 801f000: 4413 add r3, r2 + 801f002: b29b uxth r3, r3 + 801f004: b21b sxth r3, r3 + 801f006: 873b strh r3, [r7, #56] ; 0x38 blend_area.x2 = shadow_area.x2 - corner_size; - 801f09c: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c - 801f0a0: b29a uxth r2, r3 - 801f0a2: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f0a6: b29b uxth r3, r3 - 801f0a8: 1ad3 subs r3, r2, r3 - 801f0aa: b29b uxth r3, r3 - 801f0ac: b21b sxth r3, r3 - 801f0ae: 87bb strh r3, [r7, #60] ; 0x3c + 801f008: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c + 801f00c: b29a uxth r2, r3 + 801f00e: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f012: b29b uxth r3, r3 + 801f014: 1ad3 subs r3, r2, r3 + 801f016: b29b uxth r3, r3 + 801f018: b21b sxth r3, r3 + 801f01a: 87bb strh r3, [r7, #60] ; 0x3c blend_area.y1 = shadow_area.y1; - 801f0b0: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801f0b4: 877b strh r3, [r7, #58] ; 0x3a + 801f01c: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801f020: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = shadow_area.y1 + corner_size - 1; - 801f0b6: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801f0ba: b29a uxth r2, r3 - 801f0bc: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f0c0: b29b uxth r3, r3 - 801f0c2: 4413 add r3, r2 - 801f0c4: b29b uxth r3, r3 - 801f0c6: 3b01 subs r3, #1 - 801f0c8: b29b uxth r3, r3 - 801f0ca: b21b sxth r3, r3 - 801f0cc: 87fb strh r3, [r7, #62] ; 0x3e + 801f022: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801f026: b29a uxth r2, r3 + 801f028: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f02c: b29b uxth r3, r3 + 801f02e: 4413 add r3, r2 + 801f030: b29b uxth r3, r3 + 801f032: 3b01 subs r3, #1 + 801f034: b29b uxth r3, r3 + 801f036: b21b sxth r3, r3 + 801f038: 87fb strh r3, [r7, #62] ; 0x3e blend_area.y2 = LV_MIN(blend_area.y2, h_half); - 801f0ce: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 801f0d2: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c - 801f0d6: 4293 cmp r3, r2 - 801f0d8: bfa8 it ge - 801f0da: 4613 movge r3, r2 - 801f0dc: b21b sxth r3, r3 - 801f0de: 87fb strh r3, [r7, #62] ; 0x3e + 801f03a: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 801f03e: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c + 801f042: 4293 cmp r3, r2 + 801f044: bfa8 it ge + 801f046: 4613 movge r3, r2 + 801f048: b21b sxth r3, r3 + 801f04a: 87fb strh r3, [r7, #62] ; 0x3e if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801f0e0: 68fb ldr r3, [r7, #12] - 801f0e2: 689a ldr r2, [r3, #8] - 801f0e4: f107 0138 add.w r1, r7, #56 ; 0x38 - 801f0e8: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f0ec: 4618 mov r0, r3 - 801f0ee: f011 ffdb bl 80310a8 <_lv_area_intersect> - 801f0f2: 4603 mov r3, r0 - 801f0f4: 2b00 cmp r3, #0 - 801f0f6: f000 80c2 beq.w 801f27e + 801f04c: 68fb ldr r3, [r7, #12] + 801f04e: 689a ldr r2, [r3, #8] + 801f050: f107 0138 add.w r1, r7, #56 ; 0x38 + 801f054: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f058: 4618 mov r0, r3 + 801f05a: f011 ffdb bl 8031014 <_lv_area_intersect> + 801f05e: 4603 mov r3, r0 + 801f060: 2b00 cmp r3, #0 + 801f062: f000 80c2 beq.w 801f1ea !_lv_area_is_in(&clip_area_sub, &bg_area, r_bg)) { - 801f0fa: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801f0fe: b21a sxth r2, r3 - 801f100: f107 0158 add.w r1, r7, #88 ; 0x58 - 801f104: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f108: 4618 mov r0, r3 - 801f10a: f012 f9ac bl 8031466 <_lv_area_is_in> - 801f10e: 4603 mov r3, r0 - 801f110: f083 0301 eor.w r3, r3, #1 - 801f114: b2db uxtb r3, r3 + 801f066: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801f06a: b21a sxth r2, r3 + 801f06c: f107 0158 add.w r1, r7, #88 ; 0x58 + 801f070: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f074: 4618 mov r0, r3 + 801f076: f012 f9ac bl 80313d2 <_lv_area_is_in> + 801f07a: 4603 mov r3, r0 + 801f07c: f083 0301 eor.w r3, r3, #1 + 801f080: b2db uxtb r3, r3 if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801f116: 2b00 cmp r3, #0 - 801f118: f000 80b1 beq.w 801f27e + 801f082: 2b00 cmp r3, #0 + 801f084: f000 80b1 beq.w 801f1ea lv_coord_t w = lv_area_get_width(&clip_area_sub); - 801f11c: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f120: 4618 mov r0, r3 - 801f122: f7fe fded bl 801dd00 - 801f126: 4603 mov r3, r0 - 801f128: f8a7 3086 strh.w r3, [r7, #134] ; 0x86 + 801f088: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f08c: 4618 mov r0, r3 + 801f08e: f7fe fded bl 801dc6c + 801f092: 4603 mov r3, r0 + 801f094: f8a7 3086 strh.w r3, [r7, #134] ; 0x86 sh_buf_tmp = sh_buf; - 801f12c: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 801f130: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f098: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 801f09c: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 sh_buf_tmp += (clip_area_sub.y1 - blend_area.y1) * corner_size; - 801f134: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 801f138: 461a mov r2, r3 - 801f13a: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 801f13e: 1ad3 subs r3, r2, r3 - 801f140: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c - 801f144: fb02 f303 mul.w r3, r2, r3 - 801f148: 461a mov r2, r3 - 801f14a: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801f14e: 4413 add r3, r2 - 801f150: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f0a0: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 801f0a4: 461a mov r2, r3 + 801f0a6: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 801f0aa: 1ad3 subs r3, r2, r3 + 801f0ac: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c + 801f0b0: fb02 f303 mul.w r3, r2, r3 + 801f0b4: 461a mov r2, r3 + 801f0b6: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f0ba: 4413 add r3, r2 + 801f0bc: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 /*Do not mask if out of the bg*/ if(simple && _lv_area_is_out(&clip_area_sub, &bg_area, r_bg)) simple_sub = true; - 801f154: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801f158: 2b00 cmp r3, #0 - 801f15a: d010 beq.n 801f17e - 801f15c: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801f160: b21a sxth r2, r3 - 801f162: f107 0158 add.w r1, r7, #88 ; 0x58 - 801f166: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f16a: 4618 mov r0, r3 - 801f16c: f012 fa19 bl 80315a2 <_lv_area_is_out> - 801f170: 4603 mov r3, r0 - 801f172: 2b00 cmp r3, #0 - 801f174: d003 beq.n 801f17e - 801f176: 2301 movs r3, #1 - 801f178: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 - 801f17c: e003 b.n 801f186 + 801f0c0: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801f0c4: 2b00 cmp r3, #0 + 801f0c6: d010 beq.n 801f0ea + 801f0c8: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801f0cc: b21a sxth r2, r3 + 801f0ce: f107 0158 add.w r1, r7, #88 ; 0x58 + 801f0d2: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f0d6: 4618 mov r0, r3 + 801f0d8: f012 fa19 bl 803150e <_lv_area_is_out> + 801f0dc: 4603 mov r3, r0 + 801f0de: 2b00 cmp r3, #0 + 801f0e0: d003 beq.n 801f0ea + 801f0e2: 2301 movs r3, #1 + 801f0e4: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801f0e8: e003 b.n 801f0f2 else simple_sub = simple; - 801f17e: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801f182: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801f0ea: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801f0ee: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 if(w > 0) { - 801f186: f9b7 3086 ldrsh.w r3, [r7, #134] ; 0x86 - 801f18a: 2b00 cmp r3, #0 - 801f18c: dd77 ble.n 801f27e + 801f0f2: f9b7 3086 ldrsh.w r3, [r7, #134] ; 0x86 + 801f0f6: 2b00 cmp r3, #0 + 801f0f8: dd77 ble.n 801f1ea if(!simple_sub) { - 801f18e: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 - 801f192: f083 0301 eor.w r3, r3, #1 - 801f196: b2db uxtb r3, r3 - 801f198: 2b00 cmp r3, #0 - 801f19a: d003 beq.n 801f1a4 + 801f0fa: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 + 801f0fe: f083 0301 eor.w r3, r3, #1 + 801f102: b2db uxtb r3, r3 + 801f104: 2b00 cmp r3, #0 + 801f106: d003 beq.n 801f110 blend_dsc.mask_buf = mask_buf; - 801f19c: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 801f1a0: 623b str r3, [r7, #32] - 801f1a2: e001 b.n 801f1a8 + 801f108: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 801f10c: 623b str r3, [r7, #32] + 801f10e: e001 b.n 801f114 } else { blend_dsc.mask_buf = NULL; - 801f1a4: 2300 movs r3, #0 - 801f1a6: 623b str r3, [r7, #32] + 801f110: 2300 movs r3, #0 + 801f112: 623b str r3, [r7, #32] } blend_area.x1 = clip_area_sub.x1; - 801f1a8: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801f1ac: 873b strh r3, [r7, #56] ; 0x38 + 801f114: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801f118: 873b strh r3, [r7, #56] ; 0x38 blend_area.x2 = clip_area_sub.x2; - 801f1ae: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 801f1b2: 87bb strh r3, [r7, #60] ; 0x3c + 801f11a: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 801f11e: 87bb strh r3, [r7, #60] ; 0x3c for(y = clip_area_sub.y1; y <= clip_area_sub.y2; y++) { - 801f1b4: 8e7b ldrh r3, [r7, #50] ; 0x32 - 801f1b6: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801f1ba: e05a b.n 801f272 + 801f120: 8e7b ldrh r3, [r7, #50] ; 0x32 + 801f122: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801f126: e05a b.n 801f1de blend_area.y1 = y; - 801f1bc: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801f1c0: 877b strh r3, [r7, #58] ; 0x3a + 801f128: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801f12c: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = y; - 801f1c2: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801f1c6: 87fb strh r3, [r7, #62] ; 0x3e + 801f12e: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801f132: 87fb strh r3, [r7, #62] ; 0x3e if(!simple_sub) { - 801f1c8: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 - 801f1cc: f083 0301 eor.w r3, r3, #1 - 801f1d0: b2db uxtb r3, r3 - 801f1d2: 2b00 cmp r3, #0 - 801f1d4: d024 beq.n 801f220 + 801f134: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 + 801f138: f083 0301 eor.w r3, r3, #1 + 801f13c: b2db uxtb r3, r3 + 801f13e: 2b00 cmp r3, #0 + 801f140: d024 beq.n 801f18c lv_memset(mask_buf, sh_buf_tmp[0], w); - 801f1d6: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801f1da: 781b ldrb r3, [r3, #0] - 801f1dc: f9b7 2086 ldrsh.w r2, [r7, #134] ; 0x86 - 801f1e0: 4619 mov r1, r3 - 801f1e2: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801f1e6: f013 ff26 bl 8033036 + 801f142: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f146: 781b ldrb r3, [r3, #0] + 801f148: f9b7 2086 ldrsh.w r2, [r7, #134] ; 0x86 + 801f14c: 4619 mov r1, r3 + 801f14e: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801f152: f013 ff26 bl 8032fa2 blend_dsc.mask_res = lv_draw_mask_apply(mask_buf, clip_area_sub.x1, y, w); - 801f1ea: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 - 801f1ee: f9b7 3086 ldrsh.w r3, [r7, #134] ; 0x86 - 801f1f2: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801f1f6: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801f1fa: f7f3 ff53 bl 80130a4 - 801f1fe: 4603 mov r3, r0 - 801f200: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801f156: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 + 801f15a: f9b7 3086 ldrsh.w r3, [r7, #134] ; 0x86 + 801f15e: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801f162: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801f166: f7f3 ff53 bl 8013010 + 801f16a: 4603 mov r3, r0 + 801f16c: f887 3024 strb.w r3, [r7, #36] ; 0x24 if(blend_dsc.mask_res == LV_DRAW_MASK_RES_FULL_COVER) blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801f204: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 801f208: 2b01 cmp r3, #1 - 801f20a: d102 bne.n 801f212 - 801f20c: 2302 movs r3, #2 - 801f20e: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801f170: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 + 801f174: 2b01 cmp r3, #1 + 801f176: d102 bne.n 801f17e + 801f178: 2302 movs r3, #2 + 801f17a: f887 3024 strb.w r3, [r7, #36] ; 0x24 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801f212: f107 0314 add.w r3, r7, #20 - 801f216: 4619 mov r1, r3 - 801f218: 68f8 ldr r0, [r7, #12] - 801f21a: f7fa fc3a bl 8019a92 - 801f21e: e01a b.n 801f256 + 801f17e: f107 0314 add.w r3, r7, #20 + 801f182: 4619 mov r1, r3 + 801f184: 68f8 ldr r0, [r7, #12] + 801f186: f7fa fc3a bl 80199fe + 801f18a: e01a b.n 801f1c2 } else { blend_dsc.opa = opa == LV_OPA_COVER ? sh_buf_tmp[0] : (sh_buf_tmp[0] * dsc->shadow_opa) >> 8; - 801f220: f897 30c7 ldrb.w r3, [r7, #199] ; 0xc7 - 801f224: 2bff cmp r3, #255 ; 0xff - 801f226: d103 bne.n 801f230 - 801f228: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801f22c: 781b ldrb r3, [r3, #0] - 801f22e: e00a b.n 801f246 - 801f230: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801f234: 781b ldrb r3, [r3, #0] - 801f236: 461a mov r2, r3 - 801f238: 68bb ldr r3, [r7, #8] - 801f23a: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 801f23e: fb02 f303 mul.w r3, r2, r3 - 801f242: 121b asrs r3, r3, #8 - 801f244: b2db uxtb r3, r3 - 801f246: f887 302c strb.w r3, [r7, #44] ; 0x2c + 801f18c: f897 30c7 ldrb.w r3, [r7, #199] ; 0xc7 + 801f190: 2bff cmp r3, #255 ; 0xff + 801f192: d103 bne.n 801f19c + 801f194: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f198: 781b ldrb r3, [r3, #0] + 801f19a: e00a b.n 801f1b2 + 801f19c: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f1a0: 781b ldrb r3, [r3, #0] + 801f1a2: 461a mov r2, r3 + 801f1a4: 68bb ldr r3, [r7, #8] + 801f1a6: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 801f1aa: fb02 f303 mul.w r3, r2, r3 + 801f1ae: 121b asrs r3, r3, #8 + 801f1b0: b2db uxtb r3, r3 + 801f1b2: f887 302c strb.w r3, [r7, #44] ; 0x2c lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801f24a: f107 0314 add.w r3, r7, #20 - 801f24e: 4619 mov r1, r3 - 801f250: 68f8 ldr r0, [r7, #12] - 801f252: f7fa fc1e bl 8019a92 + 801f1b6: f107 0314 add.w r3, r7, #20 + 801f1ba: 4619 mov r1, r3 + 801f1bc: 68f8 ldr r0, [r7, #12] + 801f1be: f7fa fc1e bl 80199fe } sh_buf_tmp += corner_size; - 801f256: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f25a: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 - 801f25e: 4413 add r3, r2 - 801f260: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f1c2: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f1c6: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 + 801f1ca: 4413 add r3, r2 + 801f1cc: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 for(y = clip_area_sub.y1; y <= clip_area_sub.y2; y++) { - 801f264: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 801f268: b29b uxth r3, r3 - 801f26a: 3301 adds r3, #1 - 801f26c: b29b uxth r3, r3 - 801f26e: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801f272: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 801f276: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801f27a: 429a cmp r2, r3 - 801f27c: dd9e ble.n 801f1bc + 801f1d0: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 801f1d4: b29b uxth r3, r3 + 801f1d6: 3301 adds r3, #1 + 801f1d8: b29b uxth r3, r3 + 801f1da: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801f1de: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 801f1e2: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801f1e6: 429a cmp r2, r3 + 801f1e8: dd9e ble.n 801f128 } } } blend_dsc.opa = dsc->shadow_opa; /*Restore*/ - 801f27e: 68bb ldr r3, [r7, #8] - 801f280: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 801f284: f887 302c strb.w r3, [r7, #44] ; 0x2c + 801f1ea: 68bb ldr r3, [r7, #8] + 801f1ec: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 801f1f0: f887 302c strb.w r3, [r7, #44] ; 0x2c /*Bottom side*/ blend_area.x1 = shadow_area.x1 + corner_size; - 801f288: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 - 801f28c: b29a uxth r2, r3 - 801f28e: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f292: b29b uxth r3, r3 - 801f294: 4413 add r3, r2 - 801f296: b29b uxth r3, r3 - 801f298: b21b sxth r3, r3 - 801f29a: 873b strh r3, [r7, #56] ; 0x38 + 801f1f4: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 + 801f1f8: b29a uxth r2, r3 + 801f1fa: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f1fe: b29b uxth r3, r3 + 801f200: 4413 add r3, r2 + 801f202: b29b uxth r3, r3 + 801f204: b21b sxth r3, r3 + 801f206: 873b strh r3, [r7, #56] ; 0x38 blend_area.x2 = shadow_area.x2 - corner_size; - 801f29c: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c - 801f2a0: b29a uxth r2, r3 - 801f2a2: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f2a6: b29b uxth r3, r3 - 801f2a8: 1ad3 subs r3, r2, r3 - 801f2aa: b29b uxth r3, r3 - 801f2ac: b21b sxth r3, r3 - 801f2ae: 87bb strh r3, [r7, #60] ; 0x3c + 801f208: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c + 801f20c: b29a uxth r2, r3 + 801f20e: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f212: b29b uxth r3, r3 + 801f214: 1ad3 subs r3, r2, r3 + 801f216: b29b uxth r3, r3 + 801f218: b21b sxth r3, r3 + 801f21a: 87bb strh r3, [r7, #60] ; 0x3c blend_area.y1 = shadow_area.y2 - corner_size + 1; - 801f2b0: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e - 801f2b4: b29a uxth r2, r3 - 801f2b6: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f2ba: b29b uxth r3, r3 - 801f2bc: 1ad3 subs r3, r2, r3 - 801f2be: b29b uxth r3, r3 - 801f2c0: 3301 adds r3, #1 - 801f2c2: b29b uxth r3, r3 - 801f2c4: b21b sxth r3, r3 - 801f2c6: 877b strh r3, [r7, #58] ; 0x3a + 801f21c: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e + 801f220: b29a uxth r2, r3 + 801f222: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f226: b29b uxth r3, r3 + 801f228: 1ad3 subs r3, r2, r3 + 801f22a: b29b uxth r3, r3 + 801f22c: 3301 adds r3, #1 + 801f22e: b29b uxth r3, r3 + 801f230: b21b sxth r3, r3 + 801f232: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = shadow_area.y2; - 801f2c8: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e - 801f2cc: 87fb strh r3, [r7, #62] ; 0x3e + 801f234: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e + 801f238: 87fb strh r3, [r7, #62] ; 0x3e blend_area.y1 = LV_MAX(blend_area.y1, h_half + 1); - 801f2ce: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c - 801f2d2: 3301 adds r3, #1 - 801f2d4: f9b7 203a ldrsh.w r2, [r7, #58] ; 0x3a - 801f2d8: 4293 cmp r3, r2 - 801f2da: bfb8 it lt - 801f2dc: 4613 movlt r3, r2 - 801f2de: b21b sxth r3, r3 - 801f2e0: 877b strh r3, [r7, #58] ; 0x3a + 801f23a: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c + 801f23e: 3301 adds r3, #1 + 801f240: f9b7 203a ldrsh.w r2, [r7, #58] ; 0x3a + 801f244: 4293 cmp r3, r2 + 801f246: bfb8 it lt + 801f248: 4613 movlt r3, r2 + 801f24a: b21b sxth r3, r3 + 801f24c: 877b strh r3, [r7, #58] ; 0x3a if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801f2e2: 68fb ldr r3, [r7, #12] - 801f2e4: 689a ldr r2, [r3, #8] - 801f2e6: f107 0138 add.w r1, r7, #56 ; 0x38 - 801f2ea: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f2ee: 4618 mov r0, r3 - 801f2f0: f011 feda bl 80310a8 <_lv_area_intersect> - 801f2f4: 4603 mov r3, r0 - 801f2f6: 2b00 cmp r3, #0 - 801f2f8: f000 80dc beq.w 801f4b4 + 801f24e: 68fb ldr r3, [r7, #12] + 801f250: 689a ldr r2, [r3, #8] + 801f252: f107 0138 add.w r1, r7, #56 ; 0x38 + 801f256: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f25a: 4618 mov r0, r3 + 801f25c: f011 feda bl 8031014 <_lv_area_intersect> + 801f260: 4603 mov r3, r0 + 801f262: 2b00 cmp r3, #0 + 801f264: f000 80dc beq.w 801f420 !_lv_area_is_in(&clip_area_sub, &bg_area, r_bg)) { - 801f2fc: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801f300: b21a sxth r2, r3 - 801f302: f107 0158 add.w r1, r7, #88 ; 0x58 - 801f306: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f30a: 4618 mov r0, r3 - 801f30c: f012 f8ab bl 8031466 <_lv_area_is_in> - 801f310: 4603 mov r3, r0 - 801f312: f083 0301 eor.w r3, r3, #1 - 801f316: b2db uxtb r3, r3 + 801f268: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801f26c: b21a sxth r2, r3 + 801f26e: f107 0158 add.w r1, r7, #88 ; 0x58 + 801f272: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f276: 4618 mov r0, r3 + 801f278: f012 f8ab bl 80313d2 <_lv_area_is_in> + 801f27c: 4603 mov r3, r0 + 801f27e: f083 0301 eor.w r3, r3, #1 + 801f282: b2db uxtb r3, r3 if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801f318: 2b00 cmp r3, #0 - 801f31a: f000 80cb beq.w 801f4b4 + 801f284: 2b00 cmp r3, #0 + 801f286: f000 80cb beq.w 801f420 lv_coord_t w = lv_area_get_width(&clip_area_sub); - 801f31e: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f322: 4618 mov r0, r3 - 801f324: f7fe fcec bl 801dd00 - 801f328: 4603 mov r3, r0 - 801f32a: f8a7 3084 strh.w r3, [r7, #132] ; 0x84 + 801f28a: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f28e: 4618 mov r0, r3 + 801f290: f7fe fcec bl 801dc6c + 801f294: 4603 mov r3, r0 + 801f296: f8a7 3084 strh.w r3, [r7, #132] ; 0x84 sh_buf_tmp = sh_buf; - 801f32e: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 801f332: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f29a: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 801f29e: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 sh_buf_tmp += (blend_area.y2 - clip_area_sub.y2) * corner_size; - 801f336: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 801f33a: 461a mov r2, r3 - 801f33c: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 801f340: 1ad3 subs r3, r2, r3 - 801f342: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c - 801f346: fb02 f303 mul.w r3, r2, r3 - 801f34a: 461a mov r2, r3 - 801f34c: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801f350: 4413 add r3, r2 - 801f352: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f2a2: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 801f2a6: 461a mov r2, r3 + 801f2a8: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 801f2ac: 1ad3 subs r3, r2, r3 + 801f2ae: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c + 801f2b2: fb02 f303 mul.w r3, r2, r3 + 801f2b6: 461a mov r2, r3 + 801f2b8: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f2bc: 4413 add r3, r2 + 801f2be: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 if(w > 0) { - 801f356: f9b7 3084 ldrsh.w r3, [r7, #132] ; 0x84 - 801f35a: 2b00 cmp r3, #0 - 801f35c: f340 80aa ble.w 801f4b4 + 801f2c2: f9b7 3084 ldrsh.w r3, [r7, #132] ; 0x84 + 801f2c6: 2b00 cmp r3, #0 + 801f2c8: f340 80aa ble.w 801f420 /*Do not mask if out of the bg*/ if(simple && _lv_area_is_out(&clip_area_sub, &bg_area, r_bg)) simple_sub = true; - 801f360: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801f364: 2b00 cmp r3, #0 - 801f366: d010 beq.n 801f38a - 801f368: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801f36c: b21a sxth r2, r3 - 801f36e: f107 0158 add.w r1, r7, #88 ; 0x58 - 801f372: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f376: 4618 mov r0, r3 - 801f378: f012 f913 bl 80315a2 <_lv_area_is_out> - 801f37c: 4603 mov r3, r0 - 801f37e: 2b00 cmp r3, #0 - 801f380: d003 beq.n 801f38a - 801f382: 2301 movs r3, #1 - 801f384: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 - 801f388: e003 b.n 801f392 + 801f2cc: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801f2d0: 2b00 cmp r3, #0 + 801f2d2: d010 beq.n 801f2f6 + 801f2d4: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801f2d8: b21a sxth r2, r3 + 801f2da: f107 0158 add.w r1, r7, #88 ; 0x58 + 801f2de: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f2e2: 4618 mov r0, r3 + 801f2e4: f012 f913 bl 803150e <_lv_area_is_out> + 801f2e8: 4603 mov r3, r0 + 801f2ea: 2b00 cmp r3, #0 + 801f2ec: d003 beq.n 801f2f6 + 801f2ee: 2301 movs r3, #1 + 801f2f0: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801f2f4: e003 b.n 801f2fe else simple_sub = simple; - 801f38a: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801f38e: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801f2f6: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801f2fa: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 if(!simple_sub) { - 801f392: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 - 801f396: f083 0301 eor.w r3, r3, #1 - 801f39a: b2db uxtb r3, r3 - 801f39c: 2b00 cmp r3, #0 - 801f39e: d003 beq.n 801f3a8 + 801f2fe: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 + 801f302: f083 0301 eor.w r3, r3, #1 + 801f306: b2db uxtb r3, r3 + 801f308: 2b00 cmp r3, #0 + 801f30a: d003 beq.n 801f314 blend_dsc.mask_buf = mask_buf; - 801f3a0: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 801f3a4: 623b str r3, [r7, #32] - 801f3a6: e001 b.n 801f3ac + 801f30c: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 801f310: 623b str r3, [r7, #32] + 801f312: e001 b.n 801f318 } else { blend_dsc.mask_buf = NULL; - 801f3a8: 2300 movs r3, #0 - 801f3aa: 623b str r3, [r7, #32] + 801f314: 2300 movs r3, #0 + 801f316: 623b str r3, [r7, #32] } blend_area.x1 = clip_area_sub.x1; - 801f3ac: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801f3b0: 873b strh r3, [r7, #56] ; 0x38 + 801f318: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801f31c: 873b strh r3, [r7, #56] ; 0x38 blend_area.x2 = clip_area_sub.x2; - 801f3b2: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 801f3b6: 87bb strh r3, [r7, #60] ; 0x3c + 801f31e: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 801f322: 87bb strh r3, [r7, #60] ; 0x3c for(y = clip_area_sub.y2; y >= clip_area_sub.y1; y--) { - 801f3b8: 8efb ldrh r3, [r7, #54] ; 0x36 - 801f3ba: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801f3be: e073 b.n 801f4a8 + 801f324: 8efb ldrh r3, [r7, #54] ; 0x36 + 801f326: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801f32a: e073 b.n 801f414 blend_area.y1 = y; - 801f3c0: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801f3c4: 877b strh r3, [r7, #58] ; 0x3a + 801f32c: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801f330: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = y; - 801f3c6: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801f3ca: 87fb strh r3, [r7, #62] ; 0x3e + 801f332: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801f336: 87fb strh r3, [r7, #62] ; 0x3e /*Do not mask if out of the bg*/ if(simple && _lv_area_is_out(&clip_area_sub, &bg_area, r_bg)) simple_sub = true; - 801f3cc: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801f3d0: 2b00 cmp r3, #0 - 801f3d2: d010 beq.n 801f3f6 - 801f3d4: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801f3d8: b21a sxth r2, r3 - 801f3da: f107 0158 add.w r1, r7, #88 ; 0x58 - 801f3de: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f3e2: 4618 mov r0, r3 - 801f3e4: f012 f8dd bl 80315a2 <_lv_area_is_out> - 801f3e8: 4603 mov r3, r0 - 801f3ea: 2b00 cmp r3, #0 - 801f3ec: d003 beq.n 801f3f6 - 801f3ee: 2301 movs r3, #1 - 801f3f0: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 - 801f3f4: e003 b.n 801f3fe + 801f338: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801f33c: 2b00 cmp r3, #0 + 801f33e: d010 beq.n 801f362 + 801f340: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801f344: b21a sxth r2, r3 + 801f346: f107 0158 add.w r1, r7, #88 ; 0x58 + 801f34a: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f34e: 4618 mov r0, r3 + 801f350: f012 f8dd bl 803150e <_lv_area_is_out> + 801f354: 4603 mov r3, r0 + 801f356: 2b00 cmp r3, #0 + 801f358: d003 beq.n 801f362 + 801f35a: 2301 movs r3, #1 + 801f35c: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801f360: e003 b.n 801f36a else simple_sub = simple; - 801f3f6: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801f3fa: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801f362: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801f366: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 if(!simple_sub) { - 801f3fe: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 - 801f402: f083 0301 eor.w r3, r3, #1 - 801f406: b2db uxtb r3, r3 - 801f408: 2b00 cmp r3, #0 - 801f40a: d024 beq.n 801f456 + 801f36a: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 + 801f36e: f083 0301 eor.w r3, r3, #1 + 801f372: b2db uxtb r3, r3 + 801f374: 2b00 cmp r3, #0 + 801f376: d024 beq.n 801f3c2 lv_memset(mask_buf, sh_buf_tmp[0], w); - 801f40c: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801f410: 781b ldrb r3, [r3, #0] - 801f412: f9b7 2084 ldrsh.w r2, [r7, #132] ; 0x84 - 801f416: 4619 mov r1, r3 - 801f418: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801f41c: f013 fe0b bl 8033036 + 801f378: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f37c: 781b ldrb r3, [r3, #0] + 801f37e: f9b7 2084 ldrsh.w r2, [r7, #132] ; 0x84 + 801f382: 4619 mov r1, r3 + 801f384: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801f388: f013 fe0b bl 8032fa2 blend_dsc.mask_res = lv_draw_mask_apply(mask_buf, clip_area_sub.x1, y, w); - 801f420: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 - 801f424: f9b7 3084 ldrsh.w r3, [r7, #132] ; 0x84 - 801f428: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801f42c: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801f430: f7f3 fe38 bl 80130a4 - 801f434: 4603 mov r3, r0 - 801f436: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801f38c: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 + 801f390: f9b7 3084 ldrsh.w r3, [r7, #132] ; 0x84 + 801f394: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801f398: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801f39c: f7f3 fe38 bl 8013010 + 801f3a0: 4603 mov r3, r0 + 801f3a2: f887 3024 strb.w r3, [r7, #36] ; 0x24 if(blend_dsc.mask_res == LV_DRAW_MASK_RES_FULL_COVER) blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801f43a: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 801f43e: 2b01 cmp r3, #1 - 801f440: d102 bne.n 801f448 - 801f442: 2302 movs r3, #2 - 801f444: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801f3a6: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 + 801f3aa: 2b01 cmp r3, #1 + 801f3ac: d102 bne.n 801f3b4 + 801f3ae: 2302 movs r3, #2 + 801f3b0: f887 3024 strb.w r3, [r7, #36] ; 0x24 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801f448: f107 0314 add.w r3, r7, #20 - 801f44c: 4619 mov r1, r3 - 801f44e: 68f8 ldr r0, [r7, #12] - 801f450: f7fa fb1f bl 8019a92 - 801f454: e01a b.n 801f48c + 801f3b4: f107 0314 add.w r3, r7, #20 + 801f3b8: 4619 mov r1, r3 + 801f3ba: 68f8 ldr r0, [r7, #12] + 801f3bc: f7fa fb1f bl 80199fe + 801f3c0: e01a b.n 801f3f8 } else { blend_dsc.opa = opa == LV_OPA_COVER ? sh_buf_tmp[0] : (sh_buf_tmp[0] * dsc->shadow_opa) >> 8; - 801f456: f897 30c7 ldrb.w r3, [r7, #199] ; 0xc7 - 801f45a: 2bff cmp r3, #255 ; 0xff - 801f45c: d103 bne.n 801f466 - 801f45e: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801f462: 781b ldrb r3, [r3, #0] - 801f464: e00a b.n 801f47c - 801f466: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801f46a: 781b ldrb r3, [r3, #0] - 801f46c: 461a mov r2, r3 - 801f46e: 68bb ldr r3, [r7, #8] - 801f470: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 801f474: fb02 f303 mul.w r3, r2, r3 - 801f478: 121b asrs r3, r3, #8 - 801f47a: b2db uxtb r3, r3 - 801f47c: f887 302c strb.w r3, [r7, #44] ; 0x2c + 801f3c2: f897 30c7 ldrb.w r3, [r7, #199] ; 0xc7 + 801f3c6: 2bff cmp r3, #255 ; 0xff + 801f3c8: d103 bne.n 801f3d2 + 801f3ca: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f3ce: 781b ldrb r3, [r3, #0] + 801f3d0: e00a b.n 801f3e8 + 801f3d2: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f3d6: 781b ldrb r3, [r3, #0] + 801f3d8: 461a mov r2, r3 + 801f3da: 68bb ldr r3, [r7, #8] + 801f3dc: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 801f3e0: fb02 f303 mul.w r3, r2, r3 + 801f3e4: 121b asrs r3, r3, #8 + 801f3e6: b2db uxtb r3, r3 + 801f3e8: f887 302c strb.w r3, [r7, #44] ; 0x2c lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801f480: f107 0314 add.w r3, r7, #20 - 801f484: 4619 mov r1, r3 - 801f486: 68f8 ldr r0, [r7, #12] - 801f488: f7fa fb03 bl 8019a92 + 801f3ec: f107 0314 add.w r3, r7, #20 + 801f3f0: 4619 mov r1, r3 + 801f3f2: 68f8 ldr r0, [r7, #12] + 801f3f4: f7fa fb03 bl 80199fe } sh_buf_tmp += corner_size; - 801f48c: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f490: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 - 801f494: 4413 add r3, r2 - 801f496: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f3f8: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f3fc: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 + 801f400: 4413 add r3, r2 + 801f402: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 for(y = clip_area_sub.y2; y >= clip_area_sub.y1; y--) { - 801f49a: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 801f49e: b29b uxth r3, r3 - 801f4a0: 3b01 subs r3, #1 - 801f4a2: b29b uxth r3, r3 - 801f4a4: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801f4a8: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 801f4ac: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801f4b0: 429a cmp r2, r3 - 801f4b2: da85 bge.n 801f3c0 + 801f406: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 801f40a: b29b uxth r3, r3 + 801f40c: 3b01 subs r3, #1 + 801f40e: b29b uxth r3, r3 + 801f410: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801f414: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 801f418: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801f41c: 429a cmp r2, r3 + 801f41e: da85 bge.n 801f32c } } } blend_dsc.opa = dsc->shadow_opa; /*Restore*/ - 801f4b4: 68bb ldr r3, [r7, #8] - 801f4b6: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 801f4ba: f887 302c strb.w r3, [r7, #44] ; 0x2c + 801f420: 68bb ldr r3, [r7, #8] + 801f422: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 801f426: f887 302c strb.w r3, [r7, #44] ; 0x2c /*Right side*/ blend_area.x1 = shadow_area.x2 - corner_size + 1; - 801f4be: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c - 801f4c2: b29a uxth r2, r3 - 801f4c4: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f4c8: b29b uxth r3, r3 - 801f4ca: 1ad3 subs r3, r2, r3 - 801f4cc: b29b uxth r3, r3 - 801f4ce: 3301 adds r3, #1 - 801f4d0: b29b uxth r3, r3 - 801f4d2: b21b sxth r3, r3 - 801f4d4: 873b strh r3, [r7, #56] ; 0x38 + 801f42a: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c + 801f42e: b29a uxth r2, r3 + 801f430: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f434: b29b uxth r3, r3 + 801f436: 1ad3 subs r3, r2, r3 + 801f438: b29b uxth r3, r3 + 801f43a: 3301 adds r3, #1 + 801f43c: b29b uxth r3, r3 + 801f43e: b21b sxth r3, r3 + 801f440: 873b strh r3, [r7, #56] ; 0x38 blend_area.x2 = shadow_area.x2; - 801f4d6: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c - 801f4da: 87bb strh r3, [r7, #60] ; 0x3c + 801f442: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c + 801f446: 87bb strh r3, [r7, #60] ; 0x3c blend_area.y1 = shadow_area.y1 + corner_size; - 801f4dc: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801f4e0: b29a uxth r2, r3 - 801f4e2: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f4e6: b29b uxth r3, r3 - 801f4e8: 4413 add r3, r2 - 801f4ea: b29b uxth r3, r3 - 801f4ec: b21b sxth r3, r3 - 801f4ee: 877b strh r3, [r7, #58] ; 0x3a + 801f448: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801f44c: b29a uxth r2, r3 + 801f44e: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f452: b29b uxth r3, r3 + 801f454: 4413 add r3, r2 + 801f456: b29b uxth r3, r3 + 801f458: b21b sxth r3, r3 + 801f45a: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = shadow_area.y2 - corner_size; - 801f4f0: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e - 801f4f4: b29a uxth r2, r3 - 801f4f6: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f4fa: b29b uxth r3, r3 - 801f4fc: 1ad3 subs r3, r2, r3 - 801f4fe: b29b uxth r3, r3 - 801f500: b21b sxth r3, r3 - 801f502: 87fb strh r3, [r7, #62] ; 0x3e + 801f45c: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e + 801f460: b29a uxth r2, r3 + 801f462: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f466: b29b uxth r3, r3 + 801f468: 1ad3 subs r3, r2, r3 + 801f46a: b29b uxth r3, r3 + 801f46c: b21b sxth r3, r3 + 801f46e: 87fb strh r3, [r7, #62] ; 0x3e /*Do not overdraw the other corners*/ blend_area.y1 = LV_MIN(blend_area.y1, h_half + 1); - 801f504: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 801f508: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c - 801f50c: 429a cmp r2, r3 - 801f50e: db02 blt.n 801f516 - 801f510: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 801f514: e004 b.n 801f520 - 801f516: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c - 801f51a: 3301 adds r3, #1 - 801f51c: b29b uxth r3, r3 - 801f51e: b21b sxth r3, r3 - 801f520: 877b strh r3, [r7, #58] ; 0x3a + 801f470: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 801f474: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c + 801f478: 429a cmp r2, r3 + 801f47a: db02 blt.n 801f482 + 801f47c: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 801f480: e004 b.n 801f48c + 801f482: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c + 801f486: 3301 adds r3, #1 + 801f488: b29b uxth r3, r3 + 801f48a: b21b sxth r3, r3 + 801f48c: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = LV_MAX(blend_area.y2, h_half); - 801f522: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 801f526: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c - 801f52a: 4293 cmp r3, r2 - 801f52c: bfb8 it lt - 801f52e: 4613 movlt r3, r2 - 801f530: b21b sxth r3, r3 - 801f532: 87fb strh r3, [r7, #62] ; 0x3e + 801f48e: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 801f492: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c + 801f496: 4293 cmp r3, r2 + 801f498: bfb8 it lt + 801f49a: 4613 movlt r3, r2 + 801f49c: b21b sxth r3, r3 + 801f49e: 87fb strh r3, [r7, #62] ; 0x3e blend_area.x1 = LV_MAX(blend_area.x1, w_half); - 801f534: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 801f538: f9b7 208e ldrsh.w r2, [r7, #142] ; 0x8e - 801f53c: 4293 cmp r3, r2 - 801f53e: bfb8 it lt - 801f540: 4613 movlt r3, r2 - 801f542: b21b sxth r3, r3 - 801f544: 873b strh r3, [r7, #56] ; 0x38 + 801f4a0: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 801f4a4: f9b7 208e ldrsh.w r2, [r7, #142] ; 0x8e + 801f4a8: 4293 cmp r3, r2 + 801f4aa: bfb8 it lt + 801f4ac: 4613 movlt r3, r2 + 801f4ae: b21b sxth r3, r3 + 801f4b0: 873b strh r3, [r7, #56] ; 0x38 if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801f546: 68fb ldr r3, [r7, #12] - 801f548: 689a ldr r2, [r3, #8] - 801f54a: f107 0138 add.w r1, r7, #56 ; 0x38 - 801f54e: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f552: 4618 mov r0, r3 - 801f554: f011 fda8 bl 80310a8 <_lv_area_intersect> - 801f558: 4603 mov r3, r0 - 801f55a: 2b00 cmp r3, #0 - 801f55c: f000 80ac beq.w 801f6b8 + 801f4b2: 68fb ldr r3, [r7, #12] + 801f4b4: 689a ldr r2, [r3, #8] + 801f4b6: f107 0138 add.w r1, r7, #56 ; 0x38 + 801f4ba: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f4be: 4618 mov r0, r3 + 801f4c0: f011 fda8 bl 8031014 <_lv_area_intersect> + 801f4c4: 4603 mov r3, r0 + 801f4c6: 2b00 cmp r3, #0 + 801f4c8: f000 80ac beq.w 801f624 !_lv_area_is_in(&clip_area_sub, &bg_area, r_bg)) { - 801f560: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801f564: b21a sxth r2, r3 - 801f566: f107 0158 add.w r1, r7, #88 ; 0x58 - 801f56a: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f56e: 4618 mov r0, r3 - 801f570: f011 ff79 bl 8031466 <_lv_area_is_in> - 801f574: 4603 mov r3, r0 - 801f576: f083 0301 eor.w r3, r3, #1 - 801f57a: b2db uxtb r3, r3 + 801f4cc: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801f4d0: b21a sxth r2, r3 + 801f4d2: f107 0158 add.w r1, r7, #88 ; 0x58 + 801f4d6: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f4da: 4618 mov r0, r3 + 801f4dc: f011 ff79 bl 80313d2 <_lv_area_is_in> + 801f4e0: 4603 mov r3, r0 + 801f4e2: f083 0301 eor.w r3, r3, #1 + 801f4e6: b2db uxtb r3, r3 if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801f57c: 2b00 cmp r3, #0 - 801f57e: f000 809b beq.w 801f6b8 + 801f4e8: 2b00 cmp r3, #0 + 801f4ea: f000 809b beq.w 801f624 lv_coord_t w = lv_area_get_width(&clip_area_sub); - 801f582: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f586: 4618 mov r0, r3 - 801f588: f7fe fbba bl 801dd00 - 801f58c: 4603 mov r3, r0 - 801f58e: f8a7 3082 strh.w r3, [r7, #130] ; 0x82 + 801f4ee: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f4f2: 4618 mov r0, r3 + 801f4f4: f7fe fbba bl 801dc6c + 801f4f8: 4603 mov r3, r0 + 801f4fa: f8a7 3082 strh.w r3, [r7, #130] ; 0x82 sh_buf_tmp = sh_buf; - 801f592: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 801f596: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f4fe: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 801f502: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 sh_buf_tmp += (corner_size - 1) * corner_size; - 801f59a: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f59e: 3b01 subs r3, #1 - 801f5a0: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c - 801f5a4: fb02 f303 mul.w r3, r2, r3 - 801f5a8: 461a mov r2, r3 - 801f5aa: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801f5ae: 4413 add r3, r2 - 801f5b0: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f506: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f50a: 3b01 subs r3, #1 + 801f50c: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c + 801f510: fb02 f303 mul.w r3, r2, r3 + 801f514: 461a mov r2, r3 + 801f516: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f51a: 4413 add r3, r2 + 801f51c: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 sh_buf_tmp += clip_area_sub.x1 - (shadow_area.x2 - corner_size + 1); - 801f5b4: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801f5b8: 461a mov r2, r3 - 801f5ba: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c - 801f5be: 4619 mov r1, r3 - 801f5c0: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f5c4: 1acb subs r3, r1, r3 - 801f5c6: 3301 adds r3, #1 - 801f5c8: 1ad3 subs r3, r2, r3 - 801f5ca: 461a mov r2, r3 - 801f5cc: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801f5d0: 4413 add r3, r2 - 801f5d2: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f520: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801f524: 461a mov r2, r3 + 801f526: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c + 801f52a: 4619 mov r1, r3 + 801f52c: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f530: 1acb subs r3, r1, r3 + 801f532: 3301 adds r3, #1 + 801f534: 1ad3 subs r3, r2, r3 + 801f536: 461a mov r2, r3 + 801f538: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f53c: 4413 add r3, r2 + 801f53e: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 /*Do not mask if out of the bg*/ if(simple && _lv_area_is_out(&clip_area_sub, &bg_area, r_bg)) simple_sub = true; - 801f5d6: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801f5da: 2b00 cmp r3, #0 - 801f5dc: d010 beq.n 801f600 - 801f5de: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801f5e2: b21a sxth r2, r3 - 801f5e4: f107 0158 add.w r1, r7, #88 ; 0x58 - 801f5e8: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f5ec: 4618 mov r0, r3 - 801f5ee: f011 ffd8 bl 80315a2 <_lv_area_is_out> - 801f5f2: 4603 mov r3, r0 - 801f5f4: 2b00 cmp r3, #0 - 801f5f6: d003 beq.n 801f600 - 801f5f8: 2301 movs r3, #1 - 801f5fa: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 - 801f5fe: e003 b.n 801f608 + 801f542: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801f546: 2b00 cmp r3, #0 + 801f548: d010 beq.n 801f56c + 801f54a: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801f54e: b21a sxth r2, r3 + 801f550: f107 0158 add.w r1, r7, #88 ; 0x58 + 801f554: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f558: 4618 mov r0, r3 + 801f55a: f011 ffd8 bl 803150e <_lv_area_is_out> + 801f55e: 4603 mov r3, r0 + 801f560: 2b00 cmp r3, #0 + 801f562: d003 beq.n 801f56c + 801f564: 2301 movs r3, #1 + 801f566: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801f56a: e003 b.n 801f574 else simple_sub = simple; - 801f600: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801f604: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801f56c: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801f570: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 blend_dsc.mask_buf = simple_sub ? sh_buf_tmp : mask_buf; - 801f608: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 - 801f60c: 2b00 cmp r3, #0 - 801f60e: d002 beq.n 801f616 - 801f610: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801f614: e001 b.n 801f61a - 801f616: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 801f61a: 623b str r3, [r7, #32] + 801f574: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 + 801f578: 2b00 cmp r3, #0 + 801f57a: d002 beq.n 801f582 + 801f57c: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f580: e001 b.n 801f586 + 801f582: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 801f586: 623b str r3, [r7, #32] if(w > 0) { - 801f61c: f9b7 3082 ldrsh.w r3, [r7, #130] ; 0x82 - 801f620: 2b00 cmp r3, #0 - 801f622: dd49 ble.n 801f6b8 + 801f588: f9b7 3082 ldrsh.w r3, [r7, #130] ; 0x82 + 801f58c: 2b00 cmp r3, #0 + 801f58e: dd49 ble.n 801f624 blend_area.x1 = clip_area_sub.x1; - 801f624: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801f628: 873b strh r3, [r7, #56] ; 0x38 + 801f590: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801f594: 873b strh r3, [r7, #56] ; 0x38 blend_area.x2 = clip_area_sub.x2; - 801f62a: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 801f62e: 87bb strh r3, [r7, #60] ; 0x3c + 801f596: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 801f59a: 87bb strh r3, [r7, #60] ; 0x3c blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; /*In simple mode it won't be overwritten*/ - 801f630: 2302 movs r3, #2 - 801f632: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801f59c: 2302 movs r3, #2 + 801f59e: f887 3024 strb.w r3, [r7, #36] ; 0x24 for(y = clip_area_sub.y1; y <= clip_area_sub.y2; y++) { - 801f636: 8e7b ldrh r3, [r7, #50] ; 0x32 - 801f638: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801f63c: e036 b.n 801f6ac + 801f5a2: 8e7b ldrh r3, [r7, #50] ; 0x32 + 801f5a4: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801f5a8: e036 b.n 801f618 blend_area.y1 = y; - 801f63e: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801f642: 877b strh r3, [r7, #58] ; 0x3a + 801f5aa: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801f5ae: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = y; - 801f644: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801f648: 87fb strh r3, [r7, #62] ; 0x3e + 801f5b0: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801f5b4: 87fb strh r3, [r7, #62] ; 0x3e if(!simple_sub) { - 801f64a: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 - 801f64e: f083 0301 eor.w r3, r3, #1 - 801f652: b2db uxtb r3, r3 - 801f654: 2b00 cmp r3, #0 - 801f656: d01c beq.n 801f692 + 801f5b6: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 + 801f5ba: f083 0301 eor.w r3, r3, #1 + 801f5be: b2db uxtb r3, r3 + 801f5c0: 2b00 cmp r3, #0 + 801f5c2: d01c beq.n 801f5fe lv_memcpy(mask_buf, sh_buf_tmp, w); - 801f658: f9b7 3082 ldrsh.w r3, [r7, #130] ; 0x82 - 801f65c: 461a mov r2, r3 - 801f65e: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 - 801f662: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801f666: f013 facf bl 8032c08 + 801f5c4: f9b7 3082 ldrsh.w r3, [r7, #130] ; 0x82 + 801f5c8: 461a mov r2, r3 + 801f5ca: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 + 801f5ce: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801f5d2: f013 facf bl 8032b74 blend_dsc.mask_res = lv_draw_mask_apply(mask_buf, clip_area_sub.x1, y, w); - 801f66a: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 - 801f66e: f9b7 3082 ldrsh.w r3, [r7, #130] ; 0x82 - 801f672: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801f676: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801f67a: f7f3 fd13 bl 80130a4 - 801f67e: 4603 mov r3, r0 - 801f680: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801f5d6: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 + 801f5da: f9b7 3082 ldrsh.w r3, [r7, #130] ; 0x82 + 801f5de: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801f5e2: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801f5e6: f7f3 fd13 bl 8013010 + 801f5ea: 4603 mov r3, r0 + 801f5ec: f887 3024 strb.w r3, [r7, #36] ; 0x24 if(blend_dsc.mask_res == LV_DRAW_MASK_RES_FULL_COVER) blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801f684: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 801f688: 2b01 cmp r3, #1 - 801f68a: d102 bne.n 801f692 - 801f68c: 2302 movs r3, #2 - 801f68e: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801f5f0: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 + 801f5f4: 2b01 cmp r3, #1 + 801f5f6: d102 bne.n 801f5fe + 801f5f8: 2302 movs r3, #2 + 801f5fa: f887 3024 strb.w r3, [r7, #36] ; 0x24 } lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801f692: f107 0314 add.w r3, r7, #20 - 801f696: 4619 mov r1, r3 - 801f698: 68f8 ldr r0, [r7, #12] - 801f69a: f7fa f9fa bl 8019a92 + 801f5fe: f107 0314 add.w r3, r7, #20 + 801f602: 4619 mov r1, r3 + 801f604: 68f8 ldr r0, [r7, #12] + 801f606: f7fa f9fa bl 80199fe for(y = clip_area_sub.y1; y <= clip_area_sub.y2; y++) { - 801f69e: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 801f6a2: b29b uxth r3, r3 - 801f6a4: 3301 adds r3, #1 - 801f6a6: b29b uxth r3, r3 - 801f6a8: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801f6ac: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 801f6b0: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801f6b4: 429a cmp r2, r3 - 801f6b6: ddc2 ble.n 801f63e + 801f60a: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 801f60e: b29b uxth r3, r3 + 801f610: 3301 adds r3, #1 + 801f612: b29b uxth r3, r3 + 801f614: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801f618: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 801f61c: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801f620: 429a cmp r2, r3 + 801f622: ddc2 ble.n 801f5aa } } } /*Mirror the shadow corner buffer horizontally*/ sh_buf_tmp = sh_buf ; - 801f6b8: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 801f6bc: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f624: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 801f628: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 for(y = 0; y < corner_size; y++) { - 801f6c0: 2300 movs r3, #0 - 801f6c2: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801f6c6: e046 b.n 801f756 + 801f62c: 2300 movs r3, #0 + 801f62e: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801f632: e046 b.n 801f6c2 int32_t x; lv_opa_t * start = sh_buf_tmp; - 801f6c8: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801f6cc: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 + 801f634: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f638: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 lv_opa_t * end = sh_buf_tmp + corner_size - 1; - 801f6d0: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f6d4: 3b01 subs r3, #1 - 801f6d6: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 - 801f6da: 4413 add r3, r2 - 801f6dc: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + 801f63c: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f640: 3b01 subs r3, #1 + 801f642: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 + 801f646: 4413 add r3, r2 + 801f648: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 for(x = 0; x < corner_size / 2; x++) { - 801f6e0: 2300 movs r3, #0 - 801f6e2: f8c7 30ac str.w r3, [r7, #172] ; 0xac - 801f6e6: e01e b.n 801f726 + 801f64c: 2300 movs r3, #0 + 801f64e: f8c7 30ac str.w r3, [r7, #172] ; 0xac + 801f652: e01e b.n 801f692 lv_opa_t tmp = *start; - 801f6e8: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 - 801f6ec: 781b ldrb r3, [r3, #0] - 801f6ee: f887 3079 strb.w r3, [r7, #121] ; 0x79 + 801f654: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 + 801f658: 781b ldrb r3, [r3, #0] + 801f65a: f887 3079 strb.w r3, [r7, #121] ; 0x79 *start = *end; - 801f6f2: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 - 801f6f6: 781a ldrb r2, [r3, #0] - 801f6f8: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 - 801f6fc: 701a strb r2, [r3, #0] + 801f65e: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 + 801f662: 781a ldrb r2, [r3, #0] + 801f664: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 + 801f668: 701a strb r2, [r3, #0] *end = tmp; - 801f6fe: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 - 801f702: f897 2079 ldrb.w r2, [r7, #121] ; 0x79 - 801f706: 701a strb r2, [r3, #0] + 801f66a: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 + 801f66e: f897 2079 ldrb.w r2, [r7, #121] ; 0x79 + 801f672: 701a strb r2, [r3, #0] start++; - 801f708: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 - 801f70c: 3301 adds r3, #1 - 801f70e: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 + 801f674: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 + 801f678: 3301 adds r3, #1 + 801f67a: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 end--; - 801f712: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 - 801f716: 3b01 subs r3, #1 - 801f718: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + 801f67e: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 + 801f682: 3b01 subs r3, #1 + 801f684: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 for(x = 0; x < corner_size / 2; x++) { - 801f71c: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 801f720: 3301 adds r3, #1 - 801f722: f8c7 30ac str.w r3, [r7, #172] ; 0xac - 801f726: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f72a: 0fda lsrs r2, r3, #31 - 801f72c: 4413 add r3, r2 - 801f72e: 105b asrs r3, r3, #1 - 801f730: 461a mov r2, r3 - 801f732: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 801f736: 4293 cmp r3, r2 - 801f738: dbd6 blt.n 801f6e8 + 801f688: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 801f68c: 3301 adds r3, #1 + 801f68e: f8c7 30ac str.w r3, [r7, #172] ; 0xac + 801f692: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f696: 0fda lsrs r2, r3, #31 + 801f698: 4413 add r3, r2 + 801f69a: 105b asrs r3, r3, #1 + 801f69c: 461a mov r2, r3 + 801f69e: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 801f6a2: 4293 cmp r3, r2 + 801f6a4: dbd6 blt.n 801f654 } sh_buf_tmp += corner_size; - 801f73a: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f73e: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 - 801f742: 4413 add r3, r2 - 801f744: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f6a6: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f6aa: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 + 801f6ae: 4413 add r3, r2 + 801f6b0: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 for(y = 0; y < corner_size; y++) { - 801f748: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 801f74c: b29b uxth r3, r3 - 801f74e: 3301 adds r3, #1 - 801f750: b29b uxth r3, r3 - 801f752: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801f756: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 801f75a: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c - 801f75e: 429a cmp r2, r3 - 801f760: dcb2 bgt.n 801f6c8 + 801f6b4: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 801f6b8: b29b uxth r3, r3 + 801f6ba: 3301 adds r3, #1 + 801f6bc: b29b uxth r3, r3 + 801f6be: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801f6c2: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 801f6c6: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c + 801f6ca: 429a cmp r2, r3 + 801f6cc: dcb2 bgt.n 801f634 } /*Left side*/ blend_area.x1 = shadow_area.x1; - 801f762: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 - 801f766: 873b strh r3, [r7, #56] ; 0x38 + 801f6ce: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 + 801f6d2: 873b strh r3, [r7, #56] ; 0x38 blend_area.x2 = shadow_area.x1 + corner_size - 1; - 801f768: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 - 801f76c: b29a uxth r2, r3 - 801f76e: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f772: b29b uxth r3, r3 - 801f774: 4413 add r3, r2 - 801f776: b29b uxth r3, r3 - 801f778: 3b01 subs r3, #1 - 801f77a: b29b uxth r3, r3 - 801f77c: b21b sxth r3, r3 - 801f77e: 87bb strh r3, [r7, #60] ; 0x3c + 801f6d4: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 + 801f6d8: b29a uxth r2, r3 + 801f6da: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f6de: b29b uxth r3, r3 + 801f6e0: 4413 add r3, r2 + 801f6e2: b29b uxth r3, r3 + 801f6e4: 3b01 subs r3, #1 + 801f6e6: b29b uxth r3, r3 + 801f6e8: b21b sxth r3, r3 + 801f6ea: 87bb strh r3, [r7, #60] ; 0x3c blend_area.y1 = shadow_area.y1 + corner_size; - 801f780: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801f784: b29a uxth r2, r3 - 801f786: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f78a: b29b uxth r3, r3 - 801f78c: 4413 add r3, r2 - 801f78e: b29b uxth r3, r3 - 801f790: b21b sxth r3, r3 - 801f792: 877b strh r3, [r7, #58] ; 0x3a + 801f6ec: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801f6f0: b29a uxth r2, r3 + 801f6f2: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f6f6: b29b uxth r3, r3 + 801f6f8: 4413 add r3, r2 + 801f6fa: b29b uxth r3, r3 + 801f6fc: b21b sxth r3, r3 + 801f6fe: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = shadow_area.y2 - corner_size; - 801f794: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e - 801f798: b29a uxth r2, r3 - 801f79a: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f79e: b29b uxth r3, r3 - 801f7a0: 1ad3 subs r3, r2, r3 - 801f7a2: b29b uxth r3, r3 - 801f7a4: b21b sxth r3, r3 - 801f7a6: 87fb strh r3, [r7, #62] ; 0x3e + 801f700: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e + 801f704: b29a uxth r2, r3 + 801f706: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f70a: b29b uxth r3, r3 + 801f70c: 1ad3 subs r3, r2, r3 + 801f70e: b29b uxth r3, r3 + 801f710: b21b sxth r3, r3 + 801f712: 87fb strh r3, [r7, #62] ; 0x3e /*Do not overdraw the other corners*/ blend_area.y1 = LV_MIN(blend_area.y1, h_half + 1); - 801f7a8: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 801f7ac: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c - 801f7b0: 429a cmp r2, r3 - 801f7b2: db02 blt.n 801f7ba - 801f7b4: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 801f7b8: e004 b.n 801f7c4 - 801f7ba: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c - 801f7be: 3301 adds r3, #1 - 801f7c0: b29b uxth r3, r3 - 801f7c2: b21b sxth r3, r3 - 801f7c4: 877b strh r3, [r7, #58] ; 0x3a + 801f714: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 801f718: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c + 801f71c: 429a cmp r2, r3 + 801f71e: db02 blt.n 801f726 + 801f720: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 801f724: e004 b.n 801f730 + 801f726: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c + 801f72a: 3301 adds r3, #1 + 801f72c: b29b uxth r3, r3 + 801f72e: b21b sxth r3, r3 + 801f730: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = LV_MAX(blend_area.y2, h_half); - 801f7c6: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 801f7ca: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c - 801f7ce: 4293 cmp r3, r2 - 801f7d0: bfb8 it lt - 801f7d2: 4613 movlt r3, r2 - 801f7d4: b21b sxth r3, r3 - 801f7d6: 87fb strh r3, [r7, #62] ; 0x3e + 801f732: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 801f736: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c + 801f73a: 4293 cmp r3, r2 + 801f73c: bfb8 it lt + 801f73e: 4613 movlt r3, r2 + 801f740: b21b sxth r3, r3 + 801f742: 87fb strh r3, [r7, #62] ; 0x3e blend_area.x2 = LV_MIN(blend_area.x2, w_half - 1); - 801f7d8: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e - 801f7dc: 3b01 subs r3, #1 - 801f7de: f9b7 203c ldrsh.w r2, [r7, #60] ; 0x3c - 801f7e2: 4293 cmp r3, r2 - 801f7e4: bfa8 it ge - 801f7e6: 4613 movge r3, r2 - 801f7e8: b21b sxth r3, r3 - 801f7ea: 87bb strh r3, [r7, #60] ; 0x3c + 801f744: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e + 801f748: 3b01 subs r3, #1 + 801f74a: f9b7 203c ldrsh.w r2, [r7, #60] ; 0x3c + 801f74e: 4293 cmp r3, r2 + 801f750: bfa8 it ge + 801f752: 4613 movge r3, r2 + 801f754: b21b sxth r3, r3 + 801f756: 87bb strh r3, [r7, #60] ; 0x3c if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801f7ec: 68fb ldr r3, [r7, #12] - 801f7ee: 689a ldr r2, [r3, #8] - 801f7f0: f107 0138 add.w r1, r7, #56 ; 0x38 - 801f7f4: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f7f8: 4618 mov r0, r3 - 801f7fa: f011 fc55 bl 80310a8 <_lv_area_intersect> - 801f7fe: 4603 mov r3, r0 - 801f800: 2b00 cmp r3, #0 - 801f802: f000 80a7 beq.w 801f954 + 801f758: 68fb ldr r3, [r7, #12] + 801f75a: 689a ldr r2, [r3, #8] + 801f75c: f107 0138 add.w r1, r7, #56 ; 0x38 + 801f760: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f764: 4618 mov r0, r3 + 801f766: f011 fc55 bl 8031014 <_lv_area_intersect> + 801f76a: 4603 mov r3, r0 + 801f76c: 2b00 cmp r3, #0 + 801f76e: f000 80a7 beq.w 801f8c0 !_lv_area_is_in(&clip_area_sub, &bg_area, r_bg)) { - 801f806: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801f80a: b21a sxth r2, r3 - 801f80c: f107 0158 add.w r1, r7, #88 ; 0x58 - 801f810: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f814: 4618 mov r0, r3 - 801f816: f011 fe26 bl 8031466 <_lv_area_is_in> - 801f81a: 4603 mov r3, r0 - 801f81c: f083 0301 eor.w r3, r3, #1 - 801f820: b2db uxtb r3, r3 + 801f772: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801f776: b21a sxth r2, r3 + 801f778: f107 0158 add.w r1, r7, #88 ; 0x58 + 801f77c: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f780: 4618 mov r0, r3 + 801f782: f011 fe26 bl 80313d2 <_lv_area_is_in> + 801f786: 4603 mov r3, r0 + 801f788: f083 0301 eor.w r3, r3, #1 + 801f78c: b2db uxtb r3, r3 if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801f822: 2b00 cmp r3, #0 - 801f824: f000 8096 beq.w 801f954 + 801f78e: 2b00 cmp r3, #0 + 801f790: f000 8096 beq.w 801f8c0 lv_coord_t w = lv_area_get_width(&clip_area_sub); - 801f828: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f82c: 4618 mov r0, r3 - 801f82e: f7fe fa67 bl 801dd00 - 801f832: 4603 mov r3, r0 - 801f834: f8a7 3080 strh.w r3, [r7, #128] ; 0x80 + 801f794: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f798: 4618 mov r0, r3 + 801f79a: f7fe fa67 bl 801dc6c + 801f79e: 4603 mov r3, r0 + 801f7a0: f8a7 3080 strh.w r3, [r7, #128] ; 0x80 sh_buf_tmp = sh_buf; - 801f838: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 801f83c: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f7a4: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 801f7a8: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 sh_buf_tmp += (corner_size - 1) * corner_size; - 801f840: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f844: 3b01 subs r3, #1 - 801f846: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c - 801f84a: fb02 f303 mul.w r3, r2, r3 - 801f84e: 461a mov r2, r3 - 801f850: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801f854: 4413 add r3, r2 - 801f856: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f7ac: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f7b0: 3b01 subs r3, #1 + 801f7b2: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c + 801f7b6: fb02 f303 mul.w r3, r2, r3 + 801f7ba: 461a mov r2, r3 + 801f7bc: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f7c0: 4413 add r3, r2 + 801f7c2: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 sh_buf_tmp += clip_area_sub.x1 - blend_area.x1; - 801f85a: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801f85e: 461a mov r2, r3 - 801f860: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 801f864: 1ad3 subs r3, r2, r3 - 801f866: 461a mov r2, r3 - 801f868: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801f86c: 4413 add r3, r2 - 801f86e: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f7c6: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801f7ca: 461a mov r2, r3 + 801f7cc: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 801f7d0: 1ad3 subs r3, r2, r3 + 801f7d2: 461a mov r2, r3 + 801f7d4: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f7d8: 4413 add r3, r2 + 801f7da: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 /*Do not mask if out of the bg*/ if(simple && _lv_area_is_out(&clip_area_sub, &bg_area, r_bg)) simple_sub = true; - 801f872: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801f876: 2b00 cmp r3, #0 - 801f878: d010 beq.n 801f89c - 801f87a: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801f87e: b21a sxth r2, r3 - 801f880: f107 0158 add.w r1, r7, #88 ; 0x58 - 801f884: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f888: 4618 mov r0, r3 - 801f88a: f011 fe8a bl 80315a2 <_lv_area_is_out> - 801f88e: 4603 mov r3, r0 - 801f890: 2b00 cmp r3, #0 - 801f892: d003 beq.n 801f89c - 801f894: 2301 movs r3, #1 - 801f896: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 - 801f89a: e003 b.n 801f8a4 + 801f7de: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801f7e2: 2b00 cmp r3, #0 + 801f7e4: d010 beq.n 801f808 + 801f7e6: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801f7ea: b21a sxth r2, r3 + 801f7ec: f107 0158 add.w r1, r7, #88 ; 0x58 + 801f7f0: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f7f4: 4618 mov r0, r3 + 801f7f6: f011 fe8a bl 803150e <_lv_area_is_out> + 801f7fa: 4603 mov r3, r0 + 801f7fc: 2b00 cmp r3, #0 + 801f7fe: d003 beq.n 801f808 + 801f800: 2301 movs r3, #1 + 801f802: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801f806: e003 b.n 801f810 else simple_sub = simple; - 801f89c: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801f8a0: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801f808: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801f80c: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 blend_dsc.mask_buf = simple_sub ? sh_buf_tmp : mask_buf; - 801f8a4: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 - 801f8a8: 2b00 cmp r3, #0 - 801f8aa: d002 beq.n 801f8b2 - 801f8ac: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801f8b0: e001 b.n 801f8b6 - 801f8b2: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 801f8b6: 623b str r3, [r7, #32] + 801f810: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 + 801f814: 2b00 cmp r3, #0 + 801f816: d002 beq.n 801f81e + 801f818: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f81c: e001 b.n 801f822 + 801f81e: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 801f822: 623b str r3, [r7, #32] if(w > 0) { - 801f8b8: f9b7 3080 ldrsh.w r3, [r7, #128] ; 0x80 - 801f8bc: 2b00 cmp r3, #0 - 801f8be: dd49 ble.n 801f954 + 801f824: f9b7 3080 ldrsh.w r3, [r7, #128] ; 0x80 + 801f828: 2b00 cmp r3, #0 + 801f82a: dd49 ble.n 801f8c0 blend_area.x1 = clip_area_sub.x1; - 801f8c0: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801f8c4: 873b strh r3, [r7, #56] ; 0x38 + 801f82c: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801f830: 873b strh r3, [r7, #56] ; 0x38 blend_area.x2 = clip_area_sub.x2; - 801f8c6: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 801f8ca: 87bb strh r3, [r7, #60] ; 0x3c + 801f832: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 801f836: 87bb strh r3, [r7, #60] ; 0x3c blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; /*In simple mode it won't be overwritten*/ - 801f8cc: 2302 movs r3, #2 - 801f8ce: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801f838: 2302 movs r3, #2 + 801f83a: f887 3024 strb.w r3, [r7, #36] ; 0x24 for(y = clip_area_sub.y1; y <= clip_area_sub.y2; y++) { - 801f8d2: 8e7b ldrh r3, [r7, #50] ; 0x32 - 801f8d4: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801f8d8: e036 b.n 801f948 + 801f83e: 8e7b ldrh r3, [r7, #50] ; 0x32 + 801f840: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801f844: e036 b.n 801f8b4 blend_area.y1 = y; - 801f8da: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801f8de: 877b strh r3, [r7, #58] ; 0x3a + 801f846: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801f84a: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = y; - 801f8e0: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801f8e4: 87fb strh r3, [r7, #62] ; 0x3e + 801f84c: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801f850: 87fb strh r3, [r7, #62] ; 0x3e if(!simple_sub) { - 801f8e6: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 - 801f8ea: f083 0301 eor.w r3, r3, #1 - 801f8ee: b2db uxtb r3, r3 - 801f8f0: 2b00 cmp r3, #0 - 801f8f2: d01c beq.n 801f92e + 801f852: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 + 801f856: f083 0301 eor.w r3, r3, #1 + 801f85a: b2db uxtb r3, r3 + 801f85c: 2b00 cmp r3, #0 + 801f85e: d01c beq.n 801f89a lv_memcpy(mask_buf, sh_buf_tmp, w); - 801f8f4: f9b7 3080 ldrsh.w r3, [r7, #128] ; 0x80 - 801f8f8: 461a mov r2, r3 - 801f8fa: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 - 801f8fe: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801f902: f013 f981 bl 8032c08 + 801f860: f9b7 3080 ldrsh.w r3, [r7, #128] ; 0x80 + 801f864: 461a mov r2, r3 + 801f866: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 + 801f86a: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801f86e: f013 f981 bl 8032b74 blend_dsc.mask_res = lv_draw_mask_apply(mask_buf, clip_area_sub.x1, y, w); - 801f906: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 - 801f90a: f9b7 3080 ldrsh.w r3, [r7, #128] ; 0x80 - 801f90e: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801f912: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801f916: f7f3 fbc5 bl 80130a4 - 801f91a: 4603 mov r3, r0 - 801f91c: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801f872: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 + 801f876: f9b7 3080 ldrsh.w r3, [r7, #128] ; 0x80 + 801f87a: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801f87e: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801f882: f7f3 fbc5 bl 8013010 + 801f886: 4603 mov r3, r0 + 801f888: f887 3024 strb.w r3, [r7, #36] ; 0x24 if(blend_dsc.mask_res == LV_DRAW_MASK_RES_FULL_COVER) blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801f920: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 801f924: 2b01 cmp r3, #1 - 801f926: d102 bne.n 801f92e - 801f928: 2302 movs r3, #2 - 801f92a: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801f88c: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 + 801f890: 2b01 cmp r3, #1 + 801f892: d102 bne.n 801f89a + 801f894: 2302 movs r3, #2 + 801f896: f887 3024 strb.w r3, [r7, #36] ; 0x24 } lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801f92e: f107 0314 add.w r3, r7, #20 - 801f932: 4619 mov r1, r3 - 801f934: 68f8 ldr r0, [r7, #12] - 801f936: f7fa f8ac bl 8019a92 + 801f89a: f107 0314 add.w r3, r7, #20 + 801f89e: 4619 mov r1, r3 + 801f8a0: 68f8 ldr r0, [r7, #12] + 801f8a2: f7fa f8ac bl 80199fe for(y = clip_area_sub.y1; y <= clip_area_sub.y2; y++) { - 801f93a: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 801f93e: b29b uxth r3, r3 - 801f940: 3301 adds r3, #1 - 801f942: b29b uxth r3, r3 - 801f944: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801f948: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 801f94c: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801f950: 429a cmp r2, r3 - 801f952: ddc2 ble.n 801f8da + 801f8a6: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 801f8aa: b29b uxth r3, r3 + 801f8ac: 3301 adds r3, #1 + 801f8ae: b29b uxth r3, r3 + 801f8b0: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801f8b4: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 801f8b8: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801f8bc: 429a cmp r2, r3 + 801f8be: ddc2 ble.n 801f846 } } } /*Top left corner*/ blend_area.x1 = shadow_area.x1; - 801f954: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 - 801f958: 873b strh r3, [r7, #56] ; 0x38 + 801f8c0: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 + 801f8c4: 873b strh r3, [r7, #56] ; 0x38 blend_area.x2 = shadow_area.x1 + corner_size - 1; - 801f95a: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 - 801f95e: b29a uxth r2, r3 - 801f960: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f964: b29b uxth r3, r3 - 801f966: 4413 add r3, r2 - 801f968: b29b uxth r3, r3 - 801f96a: 3b01 subs r3, #1 - 801f96c: b29b uxth r3, r3 - 801f96e: b21b sxth r3, r3 - 801f970: 87bb strh r3, [r7, #60] ; 0x3c + 801f8c6: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 + 801f8ca: b29a uxth r2, r3 + 801f8cc: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f8d0: b29b uxth r3, r3 + 801f8d2: 4413 add r3, r2 + 801f8d4: b29b uxth r3, r3 + 801f8d6: 3b01 subs r3, #1 + 801f8d8: b29b uxth r3, r3 + 801f8da: b21b sxth r3, r3 + 801f8dc: 87bb strh r3, [r7, #60] ; 0x3c blend_area.y1 = shadow_area.y1; - 801f972: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801f976: 877b strh r3, [r7, #58] ; 0x3a + 801f8de: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801f8e2: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = shadow_area.y1 + corner_size - 1; - 801f978: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801f97c: b29a uxth r2, r3 - 801f97e: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801f982: b29b uxth r3, r3 - 801f984: 4413 add r3, r2 - 801f986: b29b uxth r3, r3 - 801f988: 3b01 subs r3, #1 - 801f98a: b29b uxth r3, r3 - 801f98c: b21b sxth r3, r3 - 801f98e: 87fb strh r3, [r7, #62] ; 0x3e + 801f8e4: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801f8e8: b29a uxth r2, r3 + 801f8ea: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801f8ee: b29b uxth r3, r3 + 801f8f0: 4413 add r3, r2 + 801f8f2: b29b uxth r3, r3 + 801f8f4: 3b01 subs r3, #1 + 801f8f6: b29b uxth r3, r3 + 801f8f8: b21b sxth r3, r3 + 801f8fa: 87fb strh r3, [r7, #62] ; 0x3e /*Do not overdraw the other corners*/ blend_area.x2 = LV_MIN(blend_area.x2, w_half - 1); - 801f990: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e - 801f994: 3b01 subs r3, #1 - 801f996: f9b7 203c ldrsh.w r2, [r7, #60] ; 0x3c - 801f99a: 4293 cmp r3, r2 - 801f99c: bfa8 it ge - 801f99e: 4613 movge r3, r2 - 801f9a0: b21b sxth r3, r3 - 801f9a2: 87bb strh r3, [r7, #60] ; 0x3c + 801f8fc: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e + 801f900: 3b01 subs r3, #1 + 801f902: f9b7 203c ldrsh.w r2, [r7, #60] ; 0x3c + 801f906: 4293 cmp r3, r2 + 801f908: bfa8 it ge + 801f90a: 4613 movge r3, r2 + 801f90c: b21b sxth r3, r3 + 801f90e: 87bb strh r3, [r7, #60] ; 0x3c blend_area.y2 = LV_MIN(blend_area.y2, h_half); - 801f9a4: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 801f9a8: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c - 801f9ac: 4293 cmp r3, r2 - 801f9ae: bfa8 it ge - 801f9b0: 4613 movge r3, r2 - 801f9b2: b21b sxth r3, r3 - 801f9b4: 87fb strh r3, [r7, #62] ; 0x3e + 801f910: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 801f914: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c + 801f918: 4293 cmp r3, r2 + 801f91a: bfa8 it ge + 801f91c: 4613 movge r3, r2 + 801f91e: b21b sxth r3, r3 + 801f920: 87fb strh r3, [r7, #62] ; 0x3e if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801f9b6: 68fb ldr r3, [r7, #12] - 801f9b8: 689a ldr r2, [r3, #8] - 801f9ba: f107 0138 add.w r1, r7, #56 ; 0x38 - 801f9be: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f9c2: 4618 mov r0, r3 - 801f9c4: f011 fb70 bl 80310a8 <_lv_area_intersect> - 801f9c8: 4603 mov r3, r0 - 801f9ca: 2b00 cmp r3, #0 - 801f9cc: f000 80ae beq.w 801fb2c + 801f922: 68fb ldr r3, [r7, #12] + 801f924: 689a ldr r2, [r3, #8] + 801f926: f107 0138 add.w r1, r7, #56 ; 0x38 + 801f92a: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f92e: 4618 mov r0, r3 + 801f930: f011 fb70 bl 8031014 <_lv_area_intersect> + 801f934: 4603 mov r3, r0 + 801f936: 2b00 cmp r3, #0 + 801f938: f000 80ae beq.w 801fa98 !_lv_area_is_in(&clip_area_sub, &bg_area, r_bg)) { - 801f9d0: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801f9d4: b21a sxth r2, r3 - 801f9d6: f107 0158 add.w r1, r7, #88 ; 0x58 - 801f9da: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f9de: 4618 mov r0, r3 - 801f9e0: f011 fd41 bl 8031466 <_lv_area_is_in> - 801f9e4: 4603 mov r3, r0 - 801f9e6: f083 0301 eor.w r3, r3, #1 - 801f9ea: b2db uxtb r3, r3 + 801f93c: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801f940: b21a sxth r2, r3 + 801f942: f107 0158 add.w r1, r7, #88 ; 0x58 + 801f946: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f94a: 4618 mov r0, r3 + 801f94c: f011 fd41 bl 80313d2 <_lv_area_is_in> + 801f950: 4603 mov r3, r0 + 801f952: f083 0301 eor.w r3, r3, #1 + 801f956: b2db uxtb r3, r3 if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801f9ec: 2b00 cmp r3, #0 - 801f9ee: f000 809d beq.w 801fb2c + 801f958: 2b00 cmp r3, #0 + 801f95a: f000 809d beq.w 801fa98 lv_coord_t w = lv_area_get_width(&clip_area_sub); - 801f9f2: f107 0330 add.w r3, r7, #48 ; 0x30 - 801f9f6: 4618 mov r0, r3 - 801f9f8: f7fe f982 bl 801dd00 - 801f9fc: 4603 mov r3, r0 - 801f9fe: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 801f95e: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f962: 4618 mov r0, r3 + 801f964: f7fe f982 bl 801dc6c + 801f968: 4603 mov r3, r0 + 801f96a: f8a7 307e strh.w r3, [r7, #126] ; 0x7e sh_buf_tmp = sh_buf; - 801fa02: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 801fa06: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f96e: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 801f972: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 sh_buf_tmp += (clip_area_sub.y1 - blend_area.y1) * corner_size; - 801fa0a: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 801fa0e: 461a mov r2, r3 - 801fa10: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 801fa14: 1ad3 subs r3, r2, r3 - 801fa16: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c - 801fa1a: fb02 f303 mul.w r3, r2, r3 - 801fa1e: 461a mov r2, r3 - 801fa20: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801fa24: 4413 add r3, r2 - 801fa26: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f976: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 801f97a: 461a mov r2, r3 + 801f97c: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 801f980: 1ad3 subs r3, r2, r3 + 801f982: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c + 801f986: fb02 f303 mul.w r3, r2, r3 + 801f98a: 461a mov r2, r3 + 801f98c: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f990: 4413 add r3, r2 + 801f992: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 sh_buf_tmp += clip_area_sub.x1 - blend_area.x1; - 801fa2a: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801fa2e: 461a mov r2, r3 - 801fa30: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 801fa34: 1ad3 subs r3, r2, r3 - 801fa36: 461a mov r2, r3 - 801fa38: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801fa3c: 4413 add r3, r2 - 801fa3e: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801f996: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801f99a: 461a mov r2, r3 + 801f99c: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 801f9a0: 1ad3 subs r3, r2, r3 + 801f9a2: 461a mov r2, r3 + 801f9a4: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801f9a8: 4413 add r3, r2 + 801f9aa: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 /*Do not mask if out of the bg*/ if(simple && _lv_area_is_out(&clip_area_sub, &bg_area, r_bg)) simple_sub = true; - 801fa42: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801fa46: 2b00 cmp r3, #0 - 801fa48: d010 beq.n 801fa6c - 801fa4a: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801fa4e: b21a sxth r2, r3 - 801fa50: f107 0158 add.w r1, r7, #88 ; 0x58 - 801fa54: f107 0330 add.w r3, r7, #48 ; 0x30 - 801fa58: 4618 mov r0, r3 - 801fa5a: f011 fda2 bl 80315a2 <_lv_area_is_out> - 801fa5e: 4603 mov r3, r0 - 801fa60: 2b00 cmp r3, #0 - 801fa62: d003 beq.n 801fa6c - 801fa64: 2301 movs r3, #1 - 801fa66: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 - 801fa6a: e003 b.n 801fa74 + 801f9ae: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801f9b2: 2b00 cmp r3, #0 + 801f9b4: d010 beq.n 801f9d8 + 801f9b6: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801f9ba: b21a sxth r2, r3 + 801f9bc: f107 0158 add.w r1, r7, #88 ; 0x58 + 801f9c0: f107 0330 add.w r3, r7, #48 ; 0x30 + 801f9c4: 4618 mov r0, r3 + 801f9c6: f011 fda2 bl 803150e <_lv_area_is_out> + 801f9ca: 4603 mov r3, r0 + 801f9cc: 2b00 cmp r3, #0 + 801f9ce: d003 beq.n 801f9d8 + 801f9d0: 2301 movs r3, #1 + 801f9d2: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801f9d6: e003 b.n 801f9e0 else simple_sub = simple; - 801fa6c: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801fa70: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801f9d8: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801f9dc: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 blend_dsc.mask_buf = mask_buf; - 801fa74: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 801fa78: 623b str r3, [r7, #32] + 801f9e0: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 801f9e4: 623b str r3, [r7, #32] if(w > 0) { - 801fa7a: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e - 801fa7e: 2b00 cmp r3, #0 - 801fa80: dd54 ble.n 801fb2c + 801f9e6: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e + 801f9ea: 2b00 cmp r3, #0 + 801f9ec: dd54 ble.n 801fa98 blend_area.x1 = clip_area_sub.x1; - 801fa82: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801fa86: 873b strh r3, [r7, #56] ; 0x38 + 801f9ee: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801f9f2: 873b strh r3, [r7, #56] ; 0x38 blend_area.x2 = clip_area_sub.x2; - 801fa88: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 801fa8c: 87bb strh r3, [r7, #60] ; 0x3c + 801f9f4: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 801f9f8: 87bb strh r3, [r7, #60] ; 0x3c blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; /*In simple mode it won't be overwritten*/ - 801fa8e: 2302 movs r3, #2 - 801fa90: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801f9fa: 2302 movs r3, #2 + 801f9fc: f887 3024 strb.w r3, [r7, #36] ; 0x24 for(y = clip_area_sub.y1; y <= clip_area_sub.y2; y++) { - 801fa94: 8e7b ldrh r3, [r7, #50] ; 0x32 - 801fa96: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801fa9a: e041 b.n 801fb20 + 801fa00: 8e7b ldrh r3, [r7, #50] ; 0x32 + 801fa02: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801fa06: e041 b.n 801fa8c blend_area.y1 = y; - 801fa9c: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801faa0: 877b strh r3, [r7, #58] ; 0x3a + 801fa08: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801fa0c: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = y; - 801faa2: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801faa6: 87fb strh r3, [r7, #62] ; 0x3e + 801fa0e: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801fa12: 87fb strh r3, [r7, #62] ; 0x3e if(!simple_sub) { - 801faa8: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 - 801faac: f083 0301 eor.w r3, r3, #1 - 801fab0: b2db uxtb r3, r3 - 801fab2: 2b00 cmp r3, #0 - 801fab4: d01d beq.n 801faf2 + 801fa14: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 + 801fa18: f083 0301 eor.w r3, r3, #1 + 801fa1c: b2db uxtb r3, r3 + 801fa1e: 2b00 cmp r3, #0 + 801fa20: d01d beq.n 801fa5e lv_memcpy(mask_buf, sh_buf_tmp, corner_size); - 801fab6: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801faba: 461a mov r2, r3 - 801fabc: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 - 801fac0: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801fac4: f013 f8a0 bl 8032c08 + 801fa22: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801fa26: 461a mov r2, r3 + 801fa28: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 + 801fa2c: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801fa30: f013 f8a0 bl 8032b74 blend_dsc.mask_res = lv_draw_mask_apply(mask_buf, clip_area_sub.x1, y, w); - 801fac8: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 - 801facc: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e - 801fad0: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801fad4: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801fad8: f7f3 fae4 bl 80130a4 - 801fadc: 4603 mov r3, r0 - 801fade: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801fa34: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 + 801fa38: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e + 801fa3c: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801fa40: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801fa44: f7f3 fae4 bl 8013010 + 801fa48: 4603 mov r3, r0 + 801fa4a: f887 3024 strb.w r3, [r7, #36] ; 0x24 if(blend_dsc.mask_res == LV_DRAW_MASK_RES_FULL_COVER) blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801fae2: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 801fae6: 2b01 cmp r3, #1 - 801fae8: d106 bne.n 801faf8 - 801faea: 2302 movs r3, #2 - 801faec: f887 3024 strb.w r3, [r7, #36] ; 0x24 - 801faf0: e002 b.n 801faf8 + 801fa4e: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 + 801fa52: 2b01 cmp r3, #1 + 801fa54: d106 bne.n 801fa64 + 801fa56: 2302 movs r3, #2 + 801fa58: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801fa5c: e002 b.n 801fa64 } else { blend_dsc.mask_buf = sh_buf_tmp; - 801faf2: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801faf6: 623b str r3, [r7, #32] + 801fa5e: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801fa62: 623b str r3, [r7, #32] } lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801faf8: f107 0314 add.w r3, r7, #20 - 801fafc: 4619 mov r1, r3 - 801fafe: 68f8 ldr r0, [r7, #12] - 801fb00: f7f9 ffc7 bl 8019a92 + 801fa64: f107 0314 add.w r3, r7, #20 + 801fa68: 4619 mov r1, r3 + 801fa6a: 68f8 ldr r0, [r7, #12] + 801fa6c: f7f9 ffc7 bl 80199fe sh_buf_tmp += corner_size; - 801fb04: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801fb08: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 - 801fb0c: 4413 add r3, r2 - 801fb0e: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801fa70: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801fa74: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 + 801fa78: 4413 add r3, r2 + 801fa7a: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 for(y = clip_area_sub.y1; y <= clip_area_sub.y2; y++) { - 801fb12: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 801fb16: b29b uxth r3, r3 - 801fb18: 3301 adds r3, #1 - 801fb1a: b29b uxth r3, r3 - 801fb1c: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801fb20: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 801fb24: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801fb28: 429a cmp r2, r3 - 801fb2a: ddb7 ble.n 801fa9c + 801fa7e: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 801fa82: b29b uxth r3, r3 + 801fa84: 3301 adds r3, #1 + 801fa86: b29b uxth r3, r3 + 801fa88: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801fa8c: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 801fa90: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801fa94: 429a cmp r2, r3 + 801fa96: ddb7 ble.n 801fa08 } } /*Bottom left corner. *Almost the same as bottom right just read the lines of `sh_buf` from then end*/ blend_area.x1 = shadow_area.x1 ; - 801fb2c: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 - 801fb30: 873b strh r3, [r7, #56] ; 0x38 + 801fa98: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 + 801fa9c: 873b strh r3, [r7, #56] ; 0x38 blend_area.x2 = shadow_area.x1 + corner_size - 1; - 801fb32: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 - 801fb36: b29a uxth r2, r3 - 801fb38: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801fb3c: b29b uxth r3, r3 - 801fb3e: 4413 add r3, r2 - 801fb40: b29b uxth r3, r3 - 801fb42: 3b01 subs r3, #1 - 801fb44: b29b uxth r3, r3 - 801fb46: b21b sxth r3, r3 - 801fb48: 87bb strh r3, [r7, #60] ; 0x3c + 801fa9e: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 + 801faa2: b29a uxth r2, r3 + 801faa4: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801faa8: b29b uxth r3, r3 + 801faaa: 4413 add r3, r2 + 801faac: b29b uxth r3, r3 + 801faae: 3b01 subs r3, #1 + 801fab0: b29b uxth r3, r3 + 801fab2: b21b sxth r3, r3 + 801fab4: 87bb strh r3, [r7, #60] ; 0x3c blend_area.y1 = shadow_area.y2 - corner_size + 1; - 801fb4a: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e - 801fb4e: b29a uxth r2, r3 - 801fb50: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801fb54: b29b uxth r3, r3 - 801fb56: 1ad3 subs r3, r2, r3 - 801fb58: b29b uxth r3, r3 - 801fb5a: 3301 adds r3, #1 - 801fb5c: b29b uxth r3, r3 - 801fb5e: b21b sxth r3, r3 - 801fb60: 877b strh r3, [r7, #58] ; 0x3a + 801fab6: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e + 801faba: b29a uxth r2, r3 + 801fabc: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801fac0: b29b uxth r3, r3 + 801fac2: 1ad3 subs r3, r2, r3 + 801fac4: b29b uxth r3, r3 + 801fac6: 3301 adds r3, #1 + 801fac8: b29b uxth r3, r3 + 801faca: b21b sxth r3, r3 + 801facc: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = shadow_area.y2; - 801fb62: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e - 801fb66: 87fb strh r3, [r7, #62] ; 0x3e + 801face: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e + 801fad2: 87fb strh r3, [r7, #62] ; 0x3e /*Do not overdraw the other corners*/ blend_area.y1 = LV_MAX(blend_area.y1, h_half + 1); - 801fb68: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c - 801fb6c: 3301 adds r3, #1 - 801fb6e: f9b7 203a ldrsh.w r2, [r7, #58] ; 0x3a - 801fb72: 4293 cmp r3, r2 - 801fb74: bfb8 it lt - 801fb76: 4613 movlt r3, r2 - 801fb78: b21b sxth r3, r3 - 801fb7a: 877b strh r3, [r7, #58] ; 0x3a + 801fad4: f9b7 308c ldrsh.w r3, [r7, #140] ; 0x8c + 801fad8: 3301 adds r3, #1 + 801fada: f9b7 203a ldrsh.w r2, [r7, #58] ; 0x3a + 801fade: 4293 cmp r3, r2 + 801fae0: bfb8 it lt + 801fae2: 4613 movlt r3, r2 + 801fae4: b21b sxth r3, r3 + 801fae6: 877b strh r3, [r7, #58] ; 0x3a blend_area.x2 = LV_MIN(blend_area.x2, w_half - 1); - 801fb7c: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e - 801fb80: 3b01 subs r3, #1 - 801fb82: f9b7 203c ldrsh.w r2, [r7, #60] ; 0x3c - 801fb86: 4293 cmp r3, r2 - 801fb88: bfa8 it ge - 801fb8a: 4613 movge r3, r2 - 801fb8c: b21b sxth r3, r3 - 801fb8e: 87bb strh r3, [r7, #60] ; 0x3c + 801fae8: f9b7 308e ldrsh.w r3, [r7, #142] ; 0x8e + 801faec: 3b01 subs r3, #1 + 801faee: f9b7 203c ldrsh.w r2, [r7, #60] ; 0x3c + 801faf2: 4293 cmp r3, r2 + 801faf4: bfa8 it ge + 801faf6: 4613 movge r3, r2 + 801faf8: b21b sxth r3, r3 + 801fafa: 87bb strh r3, [r7, #60] ; 0x3c if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801fb90: 68fb ldr r3, [r7, #12] - 801fb92: 689a ldr r2, [r3, #8] - 801fb94: f107 0138 add.w r1, r7, #56 ; 0x38 - 801fb98: f107 0330 add.w r3, r7, #48 ; 0x30 - 801fb9c: 4618 mov r0, r3 - 801fb9e: f011 fa83 bl 80310a8 <_lv_area_intersect> - 801fba2: 4603 mov r3, r0 - 801fba4: 2b00 cmp r3, #0 - 801fba6: f000 80ae beq.w 801fd06 + 801fafc: 68fb ldr r3, [r7, #12] + 801fafe: 689a ldr r2, [r3, #8] + 801fb00: f107 0138 add.w r1, r7, #56 ; 0x38 + 801fb04: f107 0330 add.w r3, r7, #48 ; 0x30 + 801fb08: 4618 mov r0, r3 + 801fb0a: f011 fa83 bl 8031014 <_lv_area_intersect> + 801fb0e: 4603 mov r3, r0 + 801fb10: 2b00 cmp r3, #0 + 801fb12: f000 80ae beq.w 801fc72 !_lv_area_is_in(&clip_area_sub, &bg_area, r_bg)) { - 801fbaa: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801fbae: b21a sxth r2, r3 - 801fbb0: f107 0158 add.w r1, r7, #88 ; 0x58 - 801fbb4: f107 0330 add.w r3, r7, #48 ; 0x30 - 801fbb8: 4618 mov r0, r3 - 801fbba: f011 fc54 bl 8031466 <_lv_area_is_in> - 801fbbe: 4603 mov r3, r0 - 801fbc0: f083 0301 eor.w r3, r3, #1 - 801fbc4: b2db uxtb r3, r3 + 801fb16: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801fb1a: b21a sxth r2, r3 + 801fb1c: f107 0158 add.w r1, r7, #88 ; 0x58 + 801fb20: f107 0330 add.w r3, r7, #48 ; 0x30 + 801fb24: 4618 mov r0, r3 + 801fb26: f011 fc54 bl 80313d2 <_lv_area_is_in> + 801fb2a: 4603 mov r3, r0 + 801fb2c: f083 0301 eor.w r3, r3, #1 + 801fb30: b2db uxtb r3, r3 if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801fbc6: 2b00 cmp r3, #0 - 801fbc8: f000 809d beq.w 801fd06 + 801fb32: 2b00 cmp r3, #0 + 801fb34: f000 809d beq.w 801fc72 lv_coord_t w = lv_area_get_width(&clip_area_sub); - 801fbcc: f107 0330 add.w r3, r7, #48 ; 0x30 - 801fbd0: 4618 mov r0, r3 - 801fbd2: f7fe f895 bl 801dd00 - 801fbd6: 4603 mov r3, r0 - 801fbd8: f8a7 307c strh.w r3, [r7, #124] ; 0x7c + 801fb38: f107 0330 add.w r3, r7, #48 ; 0x30 + 801fb3c: 4618 mov r0, r3 + 801fb3e: f7fe f895 bl 801dc6c + 801fb42: 4603 mov r3, r0 + 801fb44: f8a7 307c strh.w r3, [r7, #124] ; 0x7c sh_buf_tmp = sh_buf; - 801fbdc: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 801fbe0: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801fb48: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 801fb4c: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 sh_buf_tmp += (blend_area.y2 - clip_area_sub.y2) * corner_size; - 801fbe4: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 801fbe8: 461a mov r2, r3 - 801fbea: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 801fbee: 1ad3 subs r3, r2, r3 - 801fbf0: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c - 801fbf4: fb02 f303 mul.w r3, r2, r3 - 801fbf8: 461a mov r2, r3 - 801fbfa: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801fbfe: 4413 add r3, r2 - 801fc00: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801fb50: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 801fb54: 461a mov r2, r3 + 801fb56: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 801fb5a: 1ad3 subs r3, r2, r3 + 801fb5c: f8d7 209c ldr.w r2, [r7, #156] ; 0x9c + 801fb60: fb02 f303 mul.w r3, r2, r3 + 801fb64: 461a mov r2, r3 + 801fb66: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801fb6a: 4413 add r3, r2 + 801fb6c: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 sh_buf_tmp += clip_area_sub.x1 - blend_area.x1; - 801fc04: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801fc08: 461a mov r2, r3 - 801fc0a: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 801fc0e: 1ad3 subs r3, r2, r3 - 801fc10: 461a mov r2, r3 - 801fc12: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801fc16: 4413 add r3, r2 - 801fc18: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801fb70: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801fb74: 461a mov r2, r3 + 801fb76: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 801fb7a: 1ad3 subs r3, r2, r3 + 801fb7c: 461a mov r2, r3 + 801fb7e: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801fb82: 4413 add r3, r2 + 801fb84: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 /*Do not mask if out of the bg*/ if(simple && _lv_area_is_out(&clip_area_sub, &bg_area, r_bg)) simple_sub = true; - 801fc1c: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801fc20: 2b00 cmp r3, #0 - 801fc22: d010 beq.n 801fc46 - 801fc24: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801fc28: b21a sxth r2, r3 - 801fc2a: f107 0158 add.w r1, r7, #88 ; 0x58 - 801fc2e: f107 0330 add.w r3, r7, #48 ; 0x30 - 801fc32: 4618 mov r0, r3 - 801fc34: f011 fcb5 bl 80315a2 <_lv_area_is_out> - 801fc38: 4603 mov r3, r0 - 801fc3a: 2b00 cmp r3, #0 - 801fc3c: d003 beq.n 801fc46 - 801fc3e: 2301 movs r3, #1 - 801fc40: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 - 801fc44: e003 b.n 801fc4e + 801fb88: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801fb8c: 2b00 cmp r3, #0 + 801fb8e: d010 beq.n 801fbb2 + 801fb90: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801fb94: b21a sxth r2, r3 + 801fb96: f107 0158 add.w r1, r7, #88 ; 0x58 + 801fb9a: f107 0330 add.w r3, r7, #48 ; 0x30 + 801fb9e: 4618 mov r0, r3 + 801fba0: f011 fcb5 bl 803150e <_lv_area_is_out> + 801fba4: 4603 mov r3, r0 + 801fba6: 2b00 cmp r3, #0 + 801fba8: d003 beq.n 801fbb2 + 801fbaa: 2301 movs r3, #1 + 801fbac: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801fbb0: e003 b.n 801fbba else simple_sub = simple; - 801fc46: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801fc4a: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 + 801fbb2: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801fbb6: f887 30b1 strb.w r3, [r7, #177] ; 0xb1 blend_dsc.mask_buf = mask_buf; - 801fc4e: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 801fc52: 623b str r3, [r7, #32] + 801fbba: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 801fbbe: 623b str r3, [r7, #32] if(w > 0) { - 801fc54: f9b7 307c ldrsh.w r3, [r7, #124] ; 0x7c - 801fc58: 2b00 cmp r3, #0 - 801fc5a: dd54 ble.n 801fd06 + 801fbc0: f9b7 307c ldrsh.w r3, [r7, #124] ; 0x7c + 801fbc4: 2b00 cmp r3, #0 + 801fbc6: dd54 ble.n 801fc72 blend_area.x1 = clip_area_sub.x1; - 801fc5c: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801fc60: 873b strh r3, [r7, #56] ; 0x38 + 801fbc8: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801fbcc: 873b strh r3, [r7, #56] ; 0x38 blend_area.x2 = clip_area_sub.x2; - 801fc62: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 801fc66: 87bb strh r3, [r7, #60] ; 0x3c + 801fbce: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 801fbd2: 87bb strh r3, [r7, #60] ; 0x3c blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; /*In simple mode it won't be overwritten*/ - 801fc68: 2302 movs r3, #2 - 801fc6a: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801fbd4: 2302 movs r3, #2 + 801fbd6: f887 3024 strb.w r3, [r7, #36] ; 0x24 for(y = clip_area_sub.y2; y >= clip_area_sub.y1; y--) { - 801fc6e: 8efb ldrh r3, [r7, #54] ; 0x36 - 801fc70: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801fc74: e041 b.n 801fcfa + 801fbda: 8efb ldrh r3, [r7, #54] ; 0x36 + 801fbdc: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801fbe0: e041 b.n 801fc66 blend_area.y1 = y; - 801fc76: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801fc7a: 877b strh r3, [r7, #58] ; 0x3a + 801fbe2: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801fbe6: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = y; - 801fc7c: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801fc80: 87fb strh r3, [r7, #62] ; 0x3e + 801fbe8: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801fbec: 87fb strh r3, [r7, #62] ; 0x3e if(!simple_sub) { - 801fc82: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 - 801fc86: f083 0301 eor.w r3, r3, #1 - 801fc8a: b2db uxtb r3, r3 - 801fc8c: 2b00 cmp r3, #0 - 801fc8e: d01d beq.n 801fccc + 801fbee: f897 30b1 ldrb.w r3, [r7, #177] ; 0xb1 + 801fbf2: f083 0301 eor.w r3, r3, #1 + 801fbf6: b2db uxtb r3, r3 + 801fbf8: 2b00 cmp r3, #0 + 801fbfa: d01d beq.n 801fc38 lv_memcpy(mask_buf, sh_buf_tmp, corner_size); - 801fc90: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801fc94: 461a mov r2, r3 - 801fc96: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 - 801fc9a: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801fc9e: f012 ffb3 bl 8032c08 + 801fbfc: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801fc00: 461a mov r2, r3 + 801fc02: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 + 801fc06: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801fc0a: f012 ffb3 bl 8032b74 blend_dsc.mask_res = lv_draw_mask_apply(mask_buf, clip_area_sub.x1, y, w); - 801fca2: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 - 801fca6: f9b7 307c ldrsh.w r3, [r7, #124] ; 0x7c - 801fcaa: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801fcae: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801fcb2: f7f3 f9f7 bl 80130a4 - 801fcb6: 4603 mov r3, r0 - 801fcb8: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801fc0e: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 + 801fc12: f9b7 307c ldrsh.w r3, [r7, #124] ; 0x7c + 801fc16: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801fc1a: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801fc1e: f7f3 f9f7 bl 8013010 + 801fc22: 4603 mov r3, r0 + 801fc24: f887 3024 strb.w r3, [r7, #36] ; 0x24 if(blend_dsc.mask_res == LV_DRAW_MASK_RES_FULL_COVER) blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; - 801fcbc: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 801fcc0: 2b01 cmp r3, #1 - 801fcc2: d106 bne.n 801fcd2 - 801fcc4: 2302 movs r3, #2 - 801fcc6: f887 3024 strb.w r3, [r7, #36] ; 0x24 - 801fcca: e002 b.n 801fcd2 + 801fc28: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 + 801fc2c: 2b01 cmp r3, #1 + 801fc2e: d106 bne.n 801fc3e + 801fc30: 2302 movs r3, #2 + 801fc32: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801fc36: e002 b.n 801fc3e } else { blend_dsc.mask_buf = sh_buf_tmp; - 801fccc: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 801fcd0: 623b str r3, [r7, #32] + 801fc38: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 801fc3c: 623b str r3, [r7, #32] } lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801fcd2: f107 0314 add.w r3, r7, #20 - 801fcd6: 4619 mov r1, r3 - 801fcd8: 68f8 ldr r0, [r7, #12] - 801fcda: f7f9 feda bl 8019a92 + 801fc3e: f107 0314 add.w r3, r7, #20 + 801fc42: 4619 mov r1, r3 + 801fc44: 68f8 ldr r0, [r7, #12] + 801fc46: f7f9 feda bl 80199fe sh_buf_tmp += corner_size; - 801fcde: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801fce2: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 - 801fce6: 4413 add r3, r2 - 801fce8: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 801fc4a: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801fc4e: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 + 801fc52: 4413 add r3, r2 + 801fc54: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 for(y = clip_area_sub.y2; y >= clip_area_sub.y1; y--) { - 801fcec: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 801fcf0: b29b uxth r3, r3 - 801fcf2: 3b01 subs r3, #1 - 801fcf4: b29b uxth r3, r3 - 801fcf6: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801fcfa: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 801fcfe: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801fd02: 429a cmp r2, r3 - 801fd04: dab7 bge.n 801fc76 + 801fc58: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 801fc5c: b29b uxth r3, r3 + 801fc5e: 3b01 subs r3, #1 + 801fc60: b29b uxth r3, r3 + 801fc62: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801fc66: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 801fc6a: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801fc6e: 429a cmp r2, r3 + 801fc70: dab7 bge.n 801fbe2 } } } /*Draw the center rectangle.*/ blend_area.x1 = shadow_area.x1 + corner_size ; - 801fd06: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 - 801fd0a: b29a uxth r2, r3 - 801fd0c: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801fd10: b29b uxth r3, r3 - 801fd12: 4413 add r3, r2 - 801fd14: b29b uxth r3, r3 - 801fd16: b21b sxth r3, r3 - 801fd18: 873b strh r3, [r7, #56] ; 0x38 + 801fc72: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 + 801fc76: b29a uxth r2, r3 + 801fc78: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801fc7c: b29b uxth r3, r3 + 801fc7e: 4413 add r3, r2 + 801fc80: b29b uxth r3, r3 + 801fc82: b21b sxth r3, r3 + 801fc84: 873b strh r3, [r7, #56] ; 0x38 blend_area.x2 = shadow_area.x2 - corner_size; - 801fd1a: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c - 801fd1e: b29a uxth r2, r3 - 801fd20: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801fd24: b29b uxth r3, r3 - 801fd26: 1ad3 subs r3, r2, r3 - 801fd28: b29b uxth r3, r3 - 801fd2a: b21b sxth r3, r3 - 801fd2c: 87bb strh r3, [r7, #60] ; 0x3c + 801fc86: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c + 801fc8a: b29a uxth r2, r3 + 801fc8c: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801fc90: b29b uxth r3, r3 + 801fc92: 1ad3 subs r3, r2, r3 + 801fc94: b29b uxth r3, r3 + 801fc96: b21b sxth r3, r3 + 801fc98: 87bb strh r3, [r7, #60] ; 0x3c blend_area.y1 = shadow_area.y1 + corner_size; - 801fd2e: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 801fd32: b29a uxth r2, r3 - 801fd34: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801fd38: b29b uxth r3, r3 - 801fd3a: 4413 add r3, r2 - 801fd3c: b29b uxth r3, r3 - 801fd3e: b21b sxth r3, r3 - 801fd40: 877b strh r3, [r7, #58] ; 0x3a + 801fc9a: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 801fc9e: b29a uxth r2, r3 + 801fca0: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801fca4: b29b uxth r3, r3 + 801fca6: 4413 add r3, r2 + 801fca8: b29b uxth r3, r3 + 801fcaa: b21b sxth r3, r3 + 801fcac: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = shadow_area.y2 - corner_size; - 801fd42: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e - 801fd46: b29a uxth r2, r3 - 801fd48: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 801fd4c: b29b uxth r3, r3 - 801fd4e: 1ad3 subs r3, r2, r3 - 801fd50: b29b uxth r3, r3 - 801fd52: b21b sxth r3, r3 - 801fd54: 87fb strh r3, [r7, #62] ; 0x3e + 801fcae: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e + 801fcb2: b29a uxth r2, r3 + 801fcb4: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 801fcb8: b29b uxth r3, r3 + 801fcba: 1ad3 subs r3, r2, r3 + 801fcbc: b29b uxth r3, r3 + 801fcbe: b21b sxth r3, r3 + 801fcc0: 87fb strh r3, [r7, #62] ; 0x3e blend_dsc.mask_buf = mask_buf; - 801fd56: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 801fd5a: 623b str r3, [r7, #32] + 801fcc2: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 801fcc6: 623b str r3, [r7, #32] if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801fd5c: 68fb ldr r3, [r7, #12] - 801fd5e: 689a ldr r2, [r3, #8] - 801fd60: f107 0138 add.w r1, r7, #56 ; 0x38 - 801fd64: f107 0330 add.w r3, r7, #48 ; 0x30 - 801fd68: 4618 mov r0, r3 - 801fd6a: f011 f99d bl 80310a8 <_lv_area_intersect> - 801fd6e: 4603 mov r3, r0 - 801fd70: 2b00 cmp r3, #0 - 801fd72: d052 beq.n 801fe1a + 801fcc8: 68fb ldr r3, [r7, #12] + 801fcca: 689a ldr r2, [r3, #8] + 801fccc: f107 0138 add.w r1, r7, #56 ; 0x38 + 801fcd0: f107 0330 add.w r3, r7, #48 ; 0x30 + 801fcd4: 4618 mov r0, r3 + 801fcd6: f011 f99d bl 8031014 <_lv_area_intersect> + 801fcda: 4603 mov r3, r0 + 801fcdc: 2b00 cmp r3, #0 + 801fcde: d052 beq.n 801fd86 !_lv_area_is_in(&clip_area_sub, &bg_area, r_bg)) { - 801fd74: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 801fd78: b21a sxth r2, r3 - 801fd7a: f107 0158 add.w r1, r7, #88 ; 0x58 - 801fd7e: f107 0330 add.w r3, r7, #48 ; 0x30 - 801fd82: 4618 mov r0, r3 - 801fd84: f011 fb6f bl 8031466 <_lv_area_is_in> - 801fd88: 4603 mov r3, r0 - 801fd8a: f083 0301 eor.w r3, r3, #1 - 801fd8e: b2db uxtb r3, r3 + 801fce0: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 801fce4: b21a sxth r2, r3 + 801fce6: f107 0158 add.w r1, r7, #88 ; 0x58 + 801fcea: f107 0330 add.w r3, r7, #48 ; 0x30 + 801fcee: 4618 mov r0, r3 + 801fcf0: f011 fb6f bl 80313d2 <_lv_area_is_in> + 801fcf4: 4603 mov r3, r0 + 801fcf6: f083 0301 eor.w r3, r3, #1 + 801fcfa: b2db uxtb r3, r3 if(_lv_area_intersect(&clip_area_sub, &blend_area, draw_ctx->clip_area) && - 801fd90: 2b00 cmp r3, #0 - 801fd92: d042 beq.n 801fe1a + 801fcfc: 2b00 cmp r3, #0 + 801fcfe: d042 beq.n 801fd86 lv_coord_t w = lv_area_get_width(&clip_area_sub); - 801fd94: f107 0330 add.w r3, r7, #48 ; 0x30 - 801fd98: 4618 mov r0, r3 - 801fd9a: f7fd ffb1 bl 801dd00 - 801fd9e: 4603 mov r3, r0 - 801fda0: f8a7 307a strh.w r3, [r7, #122] ; 0x7a + 801fd00: f107 0330 add.w r3, r7, #48 ; 0x30 + 801fd04: 4618 mov r0, r3 + 801fd06: f7fd ffb1 bl 801dc6c + 801fd0a: 4603 mov r3, r0 + 801fd0c: f8a7 307a strh.w r3, [r7, #122] ; 0x7a if(w > 0) { - 801fda4: f9b7 307a ldrsh.w r3, [r7, #122] ; 0x7a - 801fda8: 2b00 cmp r3, #0 - 801fdaa: dd36 ble.n 801fe1a + 801fd10: f9b7 307a ldrsh.w r3, [r7, #122] ; 0x7a + 801fd14: 2b00 cmp r3, #0 + 801fd16: dd36 ble.n 801fd86 blend_area.x1 = clip_area_sub.x1; - 801fdac: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801fdb0: 873b strh r3, [r7, #56] ; 0x38 + 801fd18: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801fd1c: 873b strh r3, [r7, #56] ; 0x38 blend_area.x2 = clip_area_sub.x2; - 801fdb2: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 801fdb6: 87bb strh r3, [r7, #60] ; 0x3c + 801fd1e: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 801fd22: 87bb strh r3, [r7, #60] ; 0x3c for(y = clip_area_sub.y1; y <= clip_area_sub.y2; y++) { - 801fdb8: 8e7b ldrh r3, [r7, #50] ; 0x32 - 801fdba: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801fdbe: e026 b.n 801fe0e + 801fd24: 8e7b ldrh r3, [r7, #50] ; 0x32 + 801fd26: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801fd2a: e026 b.n 801fd7a blend_area.y1 = y; - 801fdc0: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801fdc4: 877b strh r3, [r7, #58] ; 0x3a + 801fd2c: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801fd30: 877b strh r3, [r7, #58] ; 0x3a blend_area.y2 = y; - 801fdc6: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 801fdca: 87fb strh r3, [r7, #62] ; 0x3e + 801fd32: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 801fd36: 87fb strh r3, [r7, #62] ; 0x3e lv_memset_ff(mask_buf, w); - 801fdcc: f9b7 307a ldrsh.w r3, [r7, #122] ; 0x7a - 801fdd0: 4619 mov r1, r3 - 801fdd2: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801fdd6: f013 fa3b bl 8033250 + 801fd38: f9b7 307a ldrsh.w r3, [r7, #122] ; 0x7a + 801fd3c: 4619 mov r1, r3 + 801fd3e: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801fd42: f013 fa3b bl 80331bc blend_dsc.mask_res = lv_draw_mask_apply(mask_buf, clip_area_sub.x1, y, w); - 801fdda: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 - 801fdde: f9b7 307a ldrsh.w r3, [r7, #122] ; 0x7a - 801fde2: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801fde6: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801fdea: f7f3 f95b bl 80130a4 - 801fdee: 4603 mov r3, r0 - 801fdf0: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 801fd46: f9b7 1030 ldrsh.w r1, [r7, #48] ; 0x30 + 801fd4a: f9b7 307a ldrsh.w r3, [r7, #122] ; 0x7a + 801fd4e: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801fd52: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801fd56: f7f3 f95b bl 8013010 + 801fd5a: 4603 mov r3, r0 + 801fd5c: f887 3024 strb.w r3, [r7, #36] ; 0x24 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 801fdf4: f107 0314 add.w r3, r7, #20 - 801fdf8: 4619 mov r1, r3 - 801fdfa: 68f8 ldr r0, [r7, #12] - 801fdfc: f7f9 fe49 bl 8019a92 + 801fd60: f107 0314 add.w r3, r7, #20 + 801fd64: 4619 mov r1, r3 + 801fd66: 68f8 ldr r0, [r7, #12] + 801fd68: f7f9 fe49 bl 80199fe for(y = clip_area_sub.y1; y <= clip_area_sub.y2; y++) { - 801fe00: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 801fe04: b29b uxth r3, r3 - 801fe06: 3301 adds r3, #1 - 801fe08: b29b uxth r3, r3 - 801fe0a: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 - 801fe0e: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 801fe12: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 801fe16: 429a cmp r2, r3 - 801fe18: ddd2 ble.n 801fdc0 + 801fd6c: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 801fd70: b29b uxth r3, r3 + 801fd72: 3301 adds r3, #1 + 801fd74: b29b uxth r3, r3 + 801fd76: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 801fd7a: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 801fd7e: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 801fd82: 429a cmp r2, r3 + 801fd84: ddd2 ble.n 801fd2c } } } if(!simple) { - 801fe1a: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 801fe1e: f083 0301 eor.w r3, r3, #1 - 801fe22: b2db uxtb r3, r3 - 801fe24: 2b00 cmp r3, #0 - 801fe26: d009 beq.n 801fe3c + 801fd86: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 801fd8a: f083 0301 eor.w r3, r3, #1 + 801fd8e: b2db uxtb r3, r3 + 801fd90: 2b00 cmp r3, #0 + 801fd92: d009 beq.n 801fda8 lv_draw_mask_free_param(&mask_rout_param); - 801fe28: f107 0340 add.w r3, r7, #64 ; 0x40 - 801fe2c: 4618 mov r0, r3 - 801fe2e: f7f3 f9cd bl 80131cc + 801fd94: f107 0340 add.w r3, r7, #64 ; 0x40 + 801fd98: 4618 mov r0, r3 + 801fd9a: f7f3 f9cd bl 8013138 lv_draw_mask_remove_id(mask_rout_id); - 801fe32: f9b7 30b8 ldrsh.w r3, [r7, #184] ; 0xb8 - 801fe36: 4618 mov r0, r3 - 801fe38: f7f3 f978 bl 801312c + 801fd9e: f9b7 30b8 ldrsh.w r3, [r7, #184] ; 0xb8 + 801fda2: 4618 mov r0, r3 + 801fda4: f7f3 f978 bl 8013098 } lv_mem_buf_release(sh_buf); - 801fe3c: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 801fe40: f012 fe8a bl 8032b58 + 801fda8: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 801fdac: f012 fe8a bl 8032ac4 lv_mem_buf_release(mask_buf); - 801fe44: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 801fe48: f012 fe86 bl 8032b58 - 801fe4c: e006 b.n 801fe5c + 801fdb0: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 801fdb4: f012 fe86 bl 8032ac4 + 801fdb8: e006 b.n 801fdc8 if(dsc->shadow_width == 0) return; - 801fe4e: bf00 nop - 801fe50: e004 b.n 801fe5c + 801fdba: bf00 nop + 801fdbc: e004 b.n 801fdc8 if(dsc->shadow_opa <= LV_OPA_MIN) return; - 801fe52: bf00 nop - 801fe54: e002 b.n 801fe5c + 801fdbe: bf00 nop + 801fdc0: e002 b.n 801fdc8 return; - 801fe56: bf00 nop - 801fe58: e000 b.n 801fe5c + 801fdc2: bf00 nop + 801fdc4: e000 b.n 801fdc8 if(!_lv_area_intersect(&draw_area, &shadow_area, draw_ctx->clip_area)) return; - 801fe5a: bf00 nop + 801fdc6: bf00 nop } - 801fe5c: 37cc adds r7, #204 ; 0xcc - 801fe5e: 46bd mov sp, r7 - 801fe60: bd90 pop {r4, r7, pc} + 801fdc8: 37cc adds r7, #204 ; 0xcc + 801fdca: 46bd mov sp, r7 + 801fdcc: bd90 pop {r4, r7, pc} -0801fe62 : +0801fdce : * @param sw shadow width * @param r radius */ LV_ATTRIBUTE_FAST_MEM static void shadow_draw_corner_buf(const lv_area_t * coords, uint16_t * sh_buf, lv_coord_t sw, lv_coord_t r) { - 801fe62: b590 push {r4, r7, lr} - 801fe64: b09d sub sp, #116 ; 0x74 - 801fe66: af02 add r7, sp, #8 - 801fe68: 60f8 str r0, [r7, #12] - 801fe6a: 60b9 str r1, [r7, #8] - 801fe6c: 4611 mov r1, r2 - 801fe6e: 461a mov r2, r3 - 801fe70: 460b mov r3, r1 - 801fe72: 80fb strh r3, [r7, #6] - 801fe74: 4613 mov r3, r2 - 801fe76: 80bb strh r3, [r7, #4] + 801fdce: b590 push {r4, r7, lr} + 801fdd0: b09d sub sp, #116 ; 0x74 + 801fdd2: af02 add r7, sp, #8 + 801fdd4: 60f8 str r0, [r7, #12] + 801fdd6: 60b9 str r1, [r7, #8] + 801fdd8: 4611 mov r1, r2 + 801fdda: 461a mov r2, r3 + 801fddc: 460b mov r3, r1 + 801fdde: 80fb strh r3, [r7, #6] + 801fde0: 4613 mov r3, r2 + 801fde2: 80bb strh r3, [r7, #4] int32_t sw_ori = sw; - 801fe78: f9b7 3006 ldrsh.w r3, [r7, #6] - 801fe7c: 64fb str r3, [r7, #76] ; 0x4c + 801fde4: f9b7 3006 ldrsh.w r3, [r7, #6] + 801fde8: 64fb str r3, [r7, #76] ; 0x4c int32_t size = sw_ori + r; - 801fe7e: f9b7 3004 ldrsh.w r3, [r7, #4] - 801fe82: 6cfa ldr r2, [r7, #76] ; 0x4c - 801fe84: 4413 add r3, r2 - 801fe86: 64bb str r3, [r7, #72] ; 0x48 + 801fdea: f9b7 3004 ldrsh.w r3, [r7, #4] + 801fdee: 6cfa ldr r2, [r7, #76] ; 0x4c + 801fdf0: 4413 add r3, r2 + 801fdf2: 64bb str r3, [r7, #72] ; 0x48 lv_area_t sh_area; lv_area_copy(&sh_area, coords); - 801fe88: f107 032c add.w r3, r7, #44 ; 0x2c - 801fe8c: 68f9 ldr r1, [r7, #12] - 801fe8e: 4618 mov r0, r3 - 801fe90: f7fd ff18 bl 801dcc4 + 801fdf4: f107 032c add.w r3, r7, #44 ; 0x2c + 801fdf8: 68f9 ldr r1, [r7, #12] + 801fdfa: 4618 mov r0, r3 + 801fdfc: f7fd ff18 bl 801dc30 sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1); - 801fe94: f9b7 3006 ldrsh.w r3, [r7, #6] - 801fe98: 0fda lsrs r2, r3, #31 - 801fe9a: 4413 add r3, r2 - 801fe9c: 105b asrs r3, r3, #1 - 801fe9e: b21b sxth r3, r3 - 801fea0: b29a uxth r2, r3 - 801fea2: 88bb ldrh r3, [r7, #4] - 801fea4: 4413 add r3, r2 - 801fea6: b29a uxth r2, r3 - 801fea8: 88fb ldrh r3, [r7, #6] - 801feaa: f003 0301 and.w r3, r3, #1 - 801feae: 2b00 cmp r3, #0 - 801feb0: bf0c ite eq - 801feb2: 2301 moveq r3, #1 - 801feb4: 2300 movne r3, #0 - 801feb6: b2db uxtb r3, r3 - 801feb8: b29b uxth r3, r3 - 801feba: 1ad3 subs r3, r2, r3 - 801febc: b29b uxth r3, r3 - 801febe: 3b01 subs r3, #1 - 801fec0: b29b uxth r3, r3 - 801fec2: b21b sxth r3, r3 - 801fec4: 863b strh r3, [r7, #48] ; 0x30 + 801fe00: f9b7 3006 ldrsh.w r3, [r7, #6] + 801fe04: 0fda lsrs r2, r3, #31 + 801fe06: 4413 add r3, r2 + 801fe08: 105b asrs r3, r3, #1 + 801fe0a: b21b sxth r3, r3 + 801fe0c: b29a uxth r2, r3 + 801fe0e: 88bb ldrh r3, [r7, #4] + 801fe10: 4413 add r3, r2 + 801fe12: b29a uxth r2, r3 + 801fe14: 88fb ldrh r3, [r7, #6] + 801fe16: f003 0301 and.w r3, r3, #1 + 801fe1a: 2b00 cmp r3, #0 + 801fe1c: bf0c ite eq + 801fe1e: 2301 moveq r3, #1 + 801fe20: 2300 movne r3, #0 + 801fe22: b2db uxtb r3, r3 + 801fe24: b29b uxth r3, r3 + 801fe26: 1ad3 subs r3, r2, r3 + 801fe28: b29b uxth r3, r3 + 801fe2a: 3b01 subs r3, #1 + 801fe2c: b29b uxth r3, r3 + 801fe2e: b21b sxth r3, r3 + 801fe30: 863b strh r3, [r7, #48] ; 0x30 sh_area.y1 = sw / 2 + 1; - 801fec6: f9b7 3006 ldrsh.w r3, [r7, #6] - 801feca: 0fda lsrs r2, r3, #31 - 801fecc: 4413 add r3, r2 - 801fece: 105b asrs r3, r3, #1 - 801fed0: b21b sxth r3, r3 - 801fed2: b29b uxth r3, r3 - 801fed4: 3301 adds r3, #1 - 801fed6: b29b uxth r3, r3 - 801fed8: b21b sxth r3, r3 - 801feda: 85fb strh r3, [r7, #46] ; 0x2e + 801fe32: f9b7 3006 ldrsh.w r3, [r7, #6] + 801fe36: 0fda lsrs r2, r3, #31 + 801fe38: 4413 add r3, r2 + 801fe3a: 105b asrs r3, r3, #1 + 801fe3c: b21b sxth r3, r3 + 801fe3e: b29b uxth r3, r3 + 801fe40: 3301 adds r3, #1 + 801fe42: b29b uxth r3, r3 + 801fe44: b21b sxth r3, r3 + 801fe46: 85fb strh r3, [r7, #46] ; 0x2e sh_area.x1 = sh_area.x2 - lv_area_get_width(coords); - 801fedc: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 801fee0: b29c uxth r4, r3 - 801fee2: 68f8 ldr r0, [r7, #12] - 801fee4: f7fd ff0c bl 801dd00 - 801fee8: 4603 mov r3, r0 - 801feea: b29b uxth r3, r3 - 801feec: 1ae3 subs r3, r4, r3 - 801feee: b29b uxth r3, r3 - 801fef0: b21b sxth r3, r3 - 801fef2: 85bb strh r3, [r7, #44] ; 0x2c + 801fe48: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 801fe4c: b29c uxth r4, r3 + 801fe4e: 68f8 ldr r0, [r7, #12] + 801fe50: f7fd ff0c bl 801dc6c + 801fe54: 4603 mov r3, r0 + 801fe56: b29b uxth r3, r3 + 801fe58: 1ae3 subs r3, r4, r3 + 801fe5a: b29b uxth r3, r3 + 801fe5c: b21b sxth r3, r3 + 801fe5e: 85bb strh r3, [r7, #44] ; 0x2c sh_area.y2 = sh_area.y1 + lv_area_get_height(coords); - 801fef4: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 801fef8: b29c uxth r4, r3 - 801fefa: 68f8 ldr r0, [r7, #12] - 801fefc: f7fd ff16 bl 801dd2c - 801ff00: 4603 mov r3, r0 - 801ff02: b29b uxth r3, r3 - 801ff04: 4423 add r3, r4 - 801ff06: b29b uxth r3, r3 - 801ff08: b21b sxth r3, r3 - 801ff0a: 867b strh r3, [r7, #50] ; 0x32 + 801fe60: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 801fe64: b29c uxth r4, r3 + 801fe66: 68f8 ldr r0, [r7, #12] + 801fe68: f7fd ff16 bl 801dc98 + 801fe6c: 4603 mov r3, r0 + 801fe6e: b29b uxth r3, r3 + 801fe70: 4423 add r3, r4 + 801fe72: b29b uxth r3, r3 + 801fe74: b21b sxth r3, r3 + 801fe76: 867b strh r3, [r7, #50] ; 0x32 lv_draw_mask_radius_param_t mask_param; lv_draw_mask_radius_init(&mask_param, &sh_area, r, false); - 801ff0c: f9b7 2004 ldrsh.w r2, [r7, #4] - 801ff10: f107 012c add.w r1, r7, #44 ; 0x2c - 801ff14: f107 0014 add.w r0, r7, #20 - 801ff18: 2300 movs r3, #0 - 801ff1a: f7f3 fc69 bl 80137f0 + 801fe78: f9b7 2004 ldrsh.w r2, [r7, #4] + 801fe7c: f107 012c add.w r1, r7, #44 ; 0x2c + 801fe80: f107 0014 add.w r0, r7, #20 + 801fe84: 2300 movs r3, #0 + 801fe86: f7f3 fc69 bl 801375c #if SHADOW_ENHANCE /*Set half shadow width width because blur will be repeated*/ if(sw_ori == 1) sw = 1; - 801ff1e: 6cfb ldr r3, [r7, #76] ; 0x4c - 801ff20: 2b01 cmp r3, #1 - 801ff22: d102 bne.n 801ff2a - 801ff24: 2301 movs r3, #1 - 801ff26: 80fb strh r3, [r7, #6] - 801ff28: e002 b.n 801ff30 + 801fe8a: 6cfb ldr r3, [r7, #76] ; 0x4c + 801fe8c: 2b01 cmp r3, #1 + 801fe8e: d102 bne.n 801fe96 + 801fe90: 2301 movs r3, #1 + 801fe92: 80fb strh r3, [r7, #6] + 801fe94: e002 b.n 801fe9c else sw = sw_ori >> 1; - 801ff2a: 6cfb ldr r3, [r7, #76] ; 0x4c - 801ff2c: 105b asrs r3, r3, #1 - 801ff2e: 80fb strh r3, [r7, #6] + 801fe96: 6cfb ldr r3, [r7, #76] ; 0x4c + 801fe98: 105b asrs r3, r3, #1 + 801fe9a: 80fb strh r3, [r7, #6] #endif int32_t y; lv_opa_t * mask_line = lv_mem_buf_get(size); - 801ff30: 6cbb ldr r3, [r7, #72] ; 0x48 - 801ff32: 4618 mov r0, r3 - 801ff34: f012 fd64 bl 8032a00 - 801ff38: 6478 str r0, [r7, #68] ; 0x44 + 801fe9c: 6cbb ldr r3, [r7, #72] ; 0x48 + 801fe9e: 4618 mov r0, r3 + 801fea0: f012 fd64 bl 803296c + 801fea4: 6478 str r0, [r7, #68] ; 0x44 uint16_t * sh_ups_tmp_buf = (uint16_t *)sh_buf; - 801ff3a: 68bb ldr r3, [r7, #8] - 801ff3c: 663b str r3, [r7, #96] ; 0x60 + 801fea6: 68bb ldr r3, [r7, #8] + 801fea8: 663b str r3, [r7, #96] ; 0x60 for(y = 0; y < size; y++) { - 801ff3e: 2300 movs r3, #0 - 801ff40: 667b str r3, [r7, #100] ; 0x64 - 801ff42: e062 b.n 802000a + 801feaa: 2300 movs r3, #0 + 801feac: 667b str r3, [r7, #100] ; 0x64 + 801feae: e062 b.n 801ff76 lv_memset_ff(mask_line, size); - 801ff44: 6cbb ldr r3, [r7, #72] ; 0x48 - 801ff46: 4619 mov r1, r3 - 801ff48: 6c78 ldr r0, [r7, #68] ; 0x44 - 801ff4a: f013 f981 bl 8033250 + 801feb0: 6cbb ldr r3, [r7, #72] ; 0x48 + 801feb2: 4619 mov r1, r3 + 801feb4: 6c78 ldr r0, [r7, #68] ; 0x44 + 801feb6: f013 f981 bl 80331bc lv_draw_mask_res_t mask_res = mask_param.dsc.cb(mask_line, 0, y, size, &mask_param); - 801ff4e: 697c ldr r4, [r7, #20] - 801ff50: 6e7b ldr r3, [r7, #100] ; 0x64 - 801ff52: b21a sxth r2, r3 - 801ff54: 6cbb ldr r3, [r7, #72] ; 0x48 - 801ff56: b219 sxth r1, r3 - 801ff58: f107 0314 add.w r3, r7, #20 - 801ff5c: 9300 str r3, [sp, #0] - 801ff5e: 460b mov r3, r1 - 801ff60: 2100 movs r1, #0 - 801ff62: 6c78 ldr r0, [r7, #68] ; 0x44 - 801ff64: 47a0 blx r4 - 801ff66: 4603 mov r3, r0 - 801ff68: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 801feba: 697c ldr r4, [r7, #20] + 801febc: 6e7b ldr r3, [r7, #100] ; 0x64 + 801febe: b21a sxth r2, r3 + 801fec0: 6cbb ldr r3, [r7, #72] ; 0x48 + 801fec2: b219 sxth r1, r3 + 801fec4: f107 0314 add.w r3, r7, #20 + 801fec8: 9300 str r3, [sp, #0] + 801feca: 460b mov r3, r1 + 801fecc: 2100 movs r1, #0 + 801fece: 6c78 ldr r0, [r7, #68] ; 0x44 + 801fed0: 47a0 blx r4 + 801fed2: 4603 mov r3, r0 + 801fed4: f887 3037 strb.w r3, [r7, #55] ; 0x37 if(mask_res == LV_DRAW_MASK_RES_TRANSP) { - 801ff6c: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 801ff70: 2b00 cmp r3, #0 - 801ff72: d106 bne.n 801ff82 + 801fed8: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 801fedc: 2b00 cmp r3, #0 + 801fede: d106 bne.n 801feee lv_memset_00(sh_ups_tmp_buf, size * sizeof(sh_ups_tmp_buf[0])); - 801ff74: 6cbb ldr r3, [r7, #72] ; 0x48 - 801ff76: 005b lsls r3, r3, #1 - 801ff78: 4619 mov r1, r3 - 801ff7a: 6e38 ldr r0, [r7, #96] ; 0x60 - 801ff7c: f013 f8e8 bl 8033150 - 801ff80: e03b b.n 801fffa + 801fee0: 6cbb ldr r3, [r7, #72] ; 0x48 + 801fee2: 005b lsls r3, r3, #1 + 801fee4: 4619 mov r1, r3 + 801fee6: 6e38 ldr r0, [r7, #96] ; 0x60 + 801fee8: f013 f8e8 bl 80330bc + 801feec: e03b b.n 801ff66 } else { int32_t i; sh_ups_tmp_buf[0] = (mask_line[0] << SHADOW_UPSCALE_SHIFT) / sw; - 801ff82: 6c7b ldr r3, [r7, #68] ; 0x44 - 801ff84: 781b ldrb r3, [r3, #0] - 801ff86: 019a lsls r2, r3, #6 - 801ff88: f9b7 3006 ldrsh.w r3, [r7, #6] - 801ff8c: fb92 f3f3 sdiv r3, r2, r3 - 801ff90: b29a uxth r2, r3 - 801ff92: 6e3b ldr r3, [r7, #96] ; 0x60 - 801ff94: 801a strh r2, [r3, #0] + 801feee: 6c7b ldr r3, [r7, #68] ; 0x44 + 801fef0: 781b ldrb r3, [r3, #0] + 801fef2: 019a lsls r2, r3, #6 + 801fef4: f9b7 3006 ldrsh.w r3, [r7, #6] + 801fef8: fb92 f3f3 sdiv r3, r2, r3 + 801fefc: b29a uxth r2, r3 + 801fefe: 6e3b ldr r3, [r7, #96] ; 0x60 + 801ff00: 801a strh r2, [r3, #0] for(i = 1; i < size; i++) { - 801ff96: 2301 movs r3, #1 - 801ff98: 65fb str r3, [r7, #92] ; 0x5c - 801ff9a: e02a b.n 801fff2 + 801ff02: 2301 movs r3, #1 + 801ff04: 65fb str r3, [r7, #92] ; 0x5c + 801ff06: e02a b.n 801ff5e if(mask_line[i] == mask_line[i - 1]) sh_ups_tmp_buf[i] = sh_ups_tmp_buf[i - 1]; - 801ff9c: 6dfb ldr r3, [r7, #92] ; 0x5c - 801ff9e: 6c7a ldr r2, [r7, #68] ; 0x44 - 801ffa0: 4413 add r3, r2 - 801ffa2: 781a ldrb r2, [r3, #0] - 801ffa4: 6dfb ldr r3, [r7, #92] ; 0x5c - 801ffa6: 3b01 subs r3, #1 - 801ffa8: 6c79 ldr r1, [r7, #68] ; 0x44 - 801ffaa: 440b add r3, r1 - 801ffac: 781b ldrb r3, [r3, #0] - 801ffae: 429a cmp r2, r3 - 801ffb0: d10d bne.n 801ffce - 801ffb2: 6dfb ldr r3, [r7, #92] ; 0x5c - 801ffb4: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 - 801ffb8: 3b01 subs r3, #1 - 801ffba: 005b lsls r3, r3, #1 - 801ffbc: 6e3a ldr r2, [r7, #96] ; 0x60 - 801ffbe: 441a add r2, r3 - 801ffc0: 6dfb ldr r3, [r7, #92] ; 0x5c - 801ffc2: 005b lsls r3, r3, #1 - 801ffc4: 6e39 ldr r1, [r7, #96] ; 0x60 - 801ffc6: 440b add r3, r1 - 801ffc8: 8812 ldrh r2, [r2, #0] - 801ffca: 801a strh r2, [r3, #0] - 801ffcc: e00e b.n 801ffec + 801ff08: 6dfb ldr r3, [r7, #92] ; 0x5c + 801ff0a: 6c7a ldr r2, [r7, #68] ; 0x44 + 801ff0c: 4413 add r3, r2 + 801ff0e: 781a ldrb r2, [r3, #0] + 801ff10: 6dfb ldr r3, [r7, #92] ; 0x5c + 801ff12: 3b01 subs r3, #1 + 801ff14: 6c79 ldr r1, [r7, #68] ; 0x44 + 801ff16: 440b add r3, r1 + 801ff18: 781b ldrb r3, [r3, #0] + 801ff1a: 429a cmp r2, r3 + 801ff1c: d10d bne.n 801ff3a + 801ff1e: 6dfb ldr r3, [r7, #92] ; 0x5c + 801ff20: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 + 801ff24: 3b01 subs r3, #1 + 801ff26: 005b lsls r3, r3, #1 + 801ff28: 6e3a ldr r2, [r7, #96] ; 0x60 + 801ff2a: 441a add r2, r3 + 801ff2c: 6dfb ldr r3, [r7, #92] ; 0x5c + 801ff2e: 005b lsls r3, r3, #1 + 801ff30: 6e39 ldr r1, [r7, #96] ; 0x60 + 801ff32: 440b add r3, r1 + 801ff34: 8812 ldrh r2, [r2, #0] + 801ff36: 801a strh r2, [r3, #0] + 801ff38: e00e b.n 801ff58 else sh_ups_tmp_buf[i] = (mask_line[i] << SHADOW_UPSCALE_SHIFT) / sw; - 801ffce: 6dfb ldr r3, [r7, #92] ; 0x5c - 801ffd0: 6c7a ldr r2, [r7, #68] ; 0x44 - 801ffd2: 4413 add r3, r2 - 801ffd4: 781b ldrb r3, [r3, #0] - 801ffd6: 019a lsls r2, r3, #6 - 801ffd8: f9b7 3006 ldrsh.w r3, [r7, #6] - 801ffdc: fb92 f1f3 sdiv r1, r2, r3 - 801ffe0: 6dfb ldr r3, [r7, #92] ; 0x5c - 801ffe2: 005b lsls r3, r3, #1 - 801ffe4: 6e3a ldr r2, [r7, #96] ; 0x60 - 801ffe6: 4413 add r3, r2 - 801ffe8: b28a uxth r2, r1 - 801ffea: 801a strh r2, [r3, #0] + 801ff3a: 6dfb ldr r3, [r7, #92] ; 0x5c + 801ff3c: 6c7a ldr r2, [r7, #68] ; 0x44 + 801ff3e: 4413 add r3, r2 + 801ff40: 781b ldrb r3, [r3, #0] + 801ff42: 019a lsls r2, r3, #6 + 801ff44: f9b7 3006 ldrsh.w r3, [r7, #6] + 801ff48: fb92 f1f3 sdiv r1, r2, r3 + 801ff4c: 6dfb ldr r3, [r7, #92] ; 0x5c + 801ff4e: 005b lsls r3, r3, #1 + 801ff50: 6e3a ldr r2, [r7, #96] ; 0x60 + 801ff52: 4413 add r3, r2 + 801ff54: b28a uxth r2, r1 + 801ff56: 801a strh r2, [r3, #0] for(i = 1; i < size; i++) { - 801ffec: 6dfb ldr r3, [r7, #92] ; 0x5c - 801ffee: 3301 adds r3, #1 - 801fff0: 65fb str r3, [r7, #92] ; 0x5c - 801fff2: 6dfa ldr r2, [r7, #92] ; 0x5c - 801fff4: 6cbb ldr r3, [r7, #72] ; 0x48 - 801fff6: 429a cmp r2, r3 - 801fff8: dbd0 blt.n 801ff9c + 801ff58: 6dfb ldr r3, [r7, #92] ; 0x5c + 801ff5a: 3301 adds r3, #1 + 801ff5c: 65fb str r3, [r7, #92] ; 0x5c + 801ff5e: 6dfa ldr r2, [r7, #92] ; 0x5c + 801ff60: 6cbb ldr r3, [r7, #72] ; 0x48 + 801ff62: 429a cmp r2, r3 + 801ff64: dbd0 blt.n 801ff08 } } sh_ups_tmp_buf += size; - 801fffa: 6cbb ldr r3, [r7, #72] ; 0x48 - 801fffc: 005b lsls r3, r3, #1 - 801fffe: 6e3a ldr r2, [r7, #96] ; 0x60 - 8020000: 4413 add r3, r2 - 8020002: 663b str r3, [r7, #96] ; 0x60 + 801ff66: 6cbb ldr r3, [r7, #72] ; 0x48 + 801ff68: 005b lsls r3, r3, #1 + 801ff6a: 6e3a ldr r2, [r7, #96] ; 0x60 + 801ff6c: 4413 add r3, r2 + 801ff6e: 663b str r3, [r7, #96] ; 0x60 for(y = 0; y < size; y++) { - 8020004: 6e7b ldr r3, [r7, #100] ; 0x64 - 8020006: 3301 adds r3, #1 - 8020008: 667b str r3, [r7, #100] ; 0x64 - 802000a: 6e7a ldr r2, [r7, #100] ; 0x64 - 802000c: 6cbb ldr r3, [r7, #72] ; 0x48 - 802000e: 429a cmp r2, r3 - 8020010: db98 blt.n 801ff44 + 801ff70: 6e7b ldr r3, [r7, #100] ; 0x64 + 801ff72: 3301 adds r3, #1 + 801ff74: 667b str r3, [r7, #100] ; 0x64 + 801ff76: 6e7a ldr r2, [r7, #100] ; 0x64 + 801ff78: 6cbb ldr r3, [r7, #72] ; 0x48 + 801ff7a: 429a cmp r2, r3 + 801ff7c: db98 blt.n 801feb0 } lv_mem_buf_release(mask_line); - 8020012: 6c78 ldr r0, [r7, #68] ; 0x44 - 8020014: f012 fda0 bl 8032b58 + 801ff7e: 6c78 ldr r0, [r7, #68] ; 0x44 + 801ff80: f012 fda0 bl 8032ac4 lv_draw_mask_free_param(&mask_param); - 8020018: f107 0314 add.w r3, r7, #20 - 802001c: 4618 mov r0, r3 - 802001e: f7f3 f8d5 bl 80131cc + 801ff84: f107 0314 add.w r3, r7, #20 + 801ff88: 4618 mov r0, r3 + 801ff8a: f7f3 f8d5 bl 8013138 if(sw == 1) { - 8020022: f9b7 3006 ldrsh.w r3, [r7, #6] - 8020026: 2b01 cmp r3, #1 - 8020028: d11a bne.n 8020060 + 801ff8e: f9b7 3006 ldrsh.w r3, [r7, #6] + 801ff92: 2b01 cmp r3, #1 + 801ff94: d11a bne.n 801ffcc int32_t i; lv_opa_t * res_buf = (lv_opa_t *)sh_buf; - 802002a: 68bb ldr r3, [r7, #8] - 802002c: 63bb str r3, [r7, #56] ; 0x38 + 801ff96: 68bb ldr r3, [r7, #8] + 801ff98: 63bb str r3, [r7, #56] ; 0x38 for(i = 0; i < size * size; i++) { - 802002e: 2300 movs r3, #0 - 8020030: 65bb str r3, [r7, #88] ; 0x58 - 8020032: e00e b.n 8020052 + 801ff9a: 2300 movs r3, #0 + 801ff9c: 65bb str r3, [r7, #88] ; 0x58 + 801ff9e: e00e b.n 801ffbe res_buf[i] = (sh_buf[i] >> SHADOW_UPSCALE_SHIFT); - 8020034: 6dbb ldr r3, [r7, #88] ; 0x58 - 8020036: 005b lsls r3, r3, #1 - 8020038: 68ba ldr r2, [r7, #8] - 802003a: 4413 add r3, r2 - 802003c: 881b ldrh r3, [r3, #0] - 802003e: 099b lsrs r3, r3, #6 - 8020040: b299 uxth r1, r3 - 8020042: 6dbb ldr r3, [r7, #88] ; 0x58 - 8020044: 6bba ldr r2, [r7, #56] ; 0x38 - 8020046: 4413 add r3, r2 - 8020048: b2ca uxtb r2, r1 - 802004a: 701a strb r2, [r3, #0] + 801ffa0: 6dbb ldr r3, [r7, #88] ; 0x58 + 801ffa2: 005b lsls r3, r3, #1 + 801ffa4: 68ba ldr r2, [r7, #8] + 801ffa6: 4413 add r3, r2 + 801ffa8: 881b ldrh r3, [r3, #0] + 801ffaa: 099b lsrs r3, r3, #6 + 801ffac: b299 uxth r1, r3 + 801ffae: 6dbb ldr r3, [r7, #88] ; 0x58 + 801ffb0: 6bba ldr r2, [r7, #56] ; 0x38 + 801ffb2: 4413 add r3, r2 + 801ffb4: b2ca uxtb r2, r1 + 801ffb6: 701a strb r2, [r3, #0] for(i = 0; i < size * size; i++) { - 802004c: 6dbb ldr r3, [r7, #88] ; 0x58 - 802004e: 3301 adds r3, #1 - 8020050: 65bb str r3, [r7, #88] ; 0x58 - 8020052: 6cbb ldr r3, [r7, #72] ; 0x48 - 8020054: fb03 f303 mul.w r3, r3, r3 - 8020058: 6dba ldr r2, [r7, #88] ; 0x58 - 802005a: 429a cmp r2, r3 - 802005c: dbea blt.n 8020034 + 801ffb8: 6dbb ldr r3, [r7, #88] ; 0x58 + 801ffba: 3301 adds r3, #1 + 801ffbc: 65bb str r3, [r7, #88] ; 0x58 + 801ffbe: 6cbb ldr r3, [r7, #72] ; 0x48 + 801ffc0: fb03 f303 mul.w r3, r3, r3 + 801ffc4: 6dba ldr r2, [r7, #88] ; 0x58 + 801ffc6: 429a cmp r2, r3 + 801ffc8: dbea blt.n 801ffa0 } return; - 802005e: e070 b.n 8020142 + 801ffca: e070 b.n 80200ae } shadow_blur_corner(size, sw, sh_buf); - 8020060: 6cbb ldr r3, [r7, #72] ; 0x48 - 8020062: b21b sxth r3, r3 - 8020064: f9b7 1006 ldrsh.w r1, [r7, #6] - 8020068: 68ba ldr r2, [r7, #8] - 802006a: 4618 mov r0, r3 - 802006c: f000 f86c bl 8020148 + 801ffcc: 6cbb ldr r3, [r7, #72] ; 0x48 + 801ffce: b21b sxth r3, r3 + 801ffd0: f9b7 1006 ldrsh.w r1, [r7, #6] + 801ffd4: 68ba ldr r2, [r7, #8] + 801ffd6: 4618 mov r0, r3 + 801ffd8: f000 f86c bl 80200b4 lv_opa_t * res_buf = (lv_opa_t *)sh_buf; for(x = 0; x < size * size; x++) { res_buf[x] = sh_buf[x]; } #else sw += sw_ori & 1; - 8020070: 6cfb ldr r3, [r7, #76] ; 0x4c - 8020072: b29b uxth r3, r3 - 8020074: f003 0301 and.w r3, r3, #1 - 8020078: b29a uxth r2, r3 - 802007a: 88fb ldrh r3, [r7, #6] - 802007c: 4413 add r3, r2 - 802007e: b29b uxth r3, r3 - 8020080: 80fb strh r3, [r7, #6] + 801ffdc: 6cfb ldr r3, [r7, #76] ; 0x4c + 801ffde: b29b uxth r3, r3 + 801ffe0: f003 0301 and.w r3, r3, #1 + 801ffe4: b29a uxth r2, r3 + 801ffe6: 88fb ldrh r3, [r7, #6] + 801ffe8: 4413 add r3, r2 + 801ffea: b29b uxth r3, r3 + 801ffec: 80fb strh r3, [r7, #6] if(sw > 1) { - 8020082: f9b7 3006 ldrsh.w r3, [r7, #6] - 8020086: 2b01 cmp r3, #1 - 8020088: dd43 ble.n 8020112 + 801ffee: f9b7 3006 ldrsh.w r3, [r7, #6] + 801fff2: 2b01 cmp r3, #1 + 801fff4: dd43 ble.n 802007e uint32_t i; uint32_t max_v_div = (LV_OPA_COVER << SHADOW_UPSCALE_SHIFT) / sw; - 802008a: f9b7 3006 ldrsh.w r3, [r7, #6] - 802008e: f44f 527f mov.w r2, #16320 ; 0x3fc0 - 8020092: fb92 f3f3 sdiv r3, r2, r3 - 8020096: 643b str r3, [r7, #64] ; 0x40 + 801fff6: f9b7 3006 ldrsh.w r3, [r7, #6] + 801fffa: f44f 527f mov.w r2, #16320 ; 0x3fc0 + 801fffe: fb92 f3f3 sdiv r3, r2, r3 + 8020002: 643b str r3, [r7, #64] ; 0x40 for(i = 0; i < (uint32_t)size * size; i++) { - 8020098: 2300 movs r3, #0 - 802009a: 657b str r3, [r7, #84] ; 0x54 - 802009c: e02a b.n 80200f4 + 8020004: 2300 movs r3, #0 + 8020006: 657b str r3, [r7, #84] ; 0x54 + 8020008: e02a b.n 8020060 if(sh_buf[i] == 0) continue; - 802009e: 6d7b ldr r3, [r7, #84] ; 0x54 - 80200a0: 005b lsls r3, r3, #1 - 80200a2: 68ba ldr r2, [r7, #8] - 80200a4: 4413 add r3, r2 - 80200a6: 881b ldrh r3, [r3, #0] - 80200a8: 2b00 cmp r3, #0 - 80200aa: d01f beq.n 80200ec + 802000a: 6d7b ldr r3, [r7, #84] ; 0x54 + 802000c: 005b lsls r3, r3, #1 + 802000e: 68ba ldr r2, [r7, #8] + 8020010: 4413 add r3, r2 + 8020012: 881b ldrh r3, [r3, #0] + 8020014: 2b00 cmp r3, #0 + 8020016: d01f beq.n 8020058 else if(sh_buf[i] == LV_OPA_COVER) sh_buf[i] = max_v_div; - 80200ac: 6d7b ldr r3, [r7, #84] ; 0x54 - 80200ae: 005b lsls r3, r3, #1 - 80200b0: 68ba ldr r2, [r7, #8] - 80200b2: 4413 add r3, r2 - 80200b4: 881b ldrh r3, [r3, #0] - 80200b6: 2bff cmp r3, #255 ; 0xff - 80200b8: d107 bne.n 80200ca - 80200ba: 6d7b ldr r3, [r7, #84] ; 0x54 - 80200bc: 005b lsls r3, r3, #1 - 80200be: 68ba ldr r2, [r7, #8] - 80200c0: 4413 add r3, r2 - 80200c2: 6c3a ldr r2, [r7, #64] ; 0x40 - 80200c4: b292 uxth r2, r2 - 80200c6: 801a strh r2, [r3, #0] - 80200c8: e011 b.n 80200ee + 8020018: 6d7b ldr r3, [r7, #84] ; 0x54 + 802001a: 005b lsls r3, r3, #1 + 802001c: 68ba ldr r2, [r7, #8] + 802001e: 4413 add r3, r2 + 8020020: 881b ldrh r3, [r3, #0] + 8020022: 2bff cmp r3, #255 ; 0xff + 8020024: d107 bne.n 8020036 + 8020026: 6d7b ldr r3, [r7, #84] ; 0x54 + 8020028: 005b lsls r3, r3, #1 + 802002a: 68ba ldr r2, [r7, #8] + 802002c: 4413 add r3, r2 + 802002e: 6c3a ldr r2, [r7, #64] ; 0x40 + 8020030: b292 uxth r2, r2 + 8020032: 801a strh r2, [r3, #0] + 8020034: e011 b.n 802005a else sh_buf[i] = (sh_buf[i] << SHADOW_UPSCALE_SHIFT) / sw; - 80200ca: 6d7b ldr r3, [r7, #84] ; 0x54 - 80200cc: 005b lsls r3, r3, #1 - 80200ce: 68ba ldr r2, [r7, #8] - 80200d0: 4413 add r3, r2 - 80200d2: 881b ldrh r3, [r3, #0] - 80200d4: 019a lsls r2, r3, #6 - 80200d6: f9b7 3006 ldrsh.w r3, [r7, #6] - 80200da: fb92 f1f3 sdiv r1, r2, r3 - 80200de: 6d7b ldr r3, [r7, #84] ; 0x54 - 80200e0: 005b lsls r3, r3, #1 - 80200e2: 68ba ldr r2, [r7, #8] - 80200e4: 4413 add r3, r2 - 80200e6: b28a uxth r2, r1 - 80200e8: 801a strh r2, [r3, #0] - 80200ea: e000 b.n 80200ee + 8020036: 6d7b ldr r3, [r7, #84] ; 0x54 + 8020038: 005b lsls r3, r3, #1 + 802003a: 68ba ldr r2, [r7, #8] + 802003c: 4413 add r3, r2 + 802003e: 881b ldrh r3, [r3, #0] + 8020040: 019a lsls r2, r3, #6 + 8020042: f9b7 3006 ldrsh.w r3, [r7, #6] + 8020046: fb92 f1f3 sdiv r1, r2, r3 + 802004a: 6d7b ldr r3, [r7, #84] ; 0x54 + 802004c: 005b lsls r3, r3, #1 + 802004e: 68ba ldr r2, [r7, #8] + 8020050: 4413 add r3, r2 + 8020052: b28a uxth r2, r1 + 8020054: 801a strh r2, [r3, #0] + 8020056: e000 b.n 802005a if(sh_buf[i] == 0) continue; - 80200ec: bf00 nop + 8020058: bf00 nop for(i = 0; i < (uint32_t)size * size; i++) { - 80200ee: 6d7b ldr r3, [r7, #84] ; 0x54 - 80200f0: 3301 adds r3, #1 - 80200f2: 657b str r3, [r7, #84] ; 0x54 - 80200f4: 6cbb ldr r3, [r7, #72] ; 0x48 - 80200f6: 6cba ldr r2, [r7, #72] ; 0x48 - 80200f8: fb02 f303 mul.w r3, r2, r3 - 80200fc: 6d7a ldr r2, [r7, #84] ; 0x54 - 80200fe: 429a cmp r2, r3 - 8020100: d3cd bcc.n 802009e + 802005a: 6d7b ldr r3, [r7, #84] ; 0x54 + 802005c: 3301 adds r3, #1 + 802005e: 657b str r3, [r7, #84] ; 0x54 + 8020060: 6cbb ldr r3, [r7, #72] ; 0x48 + 8020062: 6cba ldr r2, [r7, #72] ; 0x48 + 8020064: fb02 f303 mul.w r3, r2, r3 + 8020068: 6d7a ldr r2, [r7, #84] ; 0x54 + 802006a: 429a cmp r2, r3 + 802006c: d3cd bcc.n 802000a } shadow_blur_corner(size, sw, sh_buf); - 8020102: 6cbb ldr r3, [r7, #72] ; 0x48 - 8020104: b21b sxth r3, r3 - 8020106: f9b7 1006 ldrsh.w r1, [r7, #6] - 802010a: 68ba ldr r2, [r7, #8] - 802010c: 4618 mov r0, r3 - 802010e: f000 f81b bl 8020148 + 802006e: 6cbb ldr r3, [r7, #72] ; 0x48 + 8020070: b21b sxth r3, r3 + 8020072: f9b7 1006 ldrsh.w r1, [r7, #6] + 8020076: 68ba ldr r2, [r7, #8] + 8020078: 4618 mov r0, r3 + 802007a: f000 f81b bl 80200b4 } int32_t x; lv_opa_t * res_buf = (lv_opa_t *)sh_buf; - 8020112: 68bb ldr r3, [r7, #8] - 8020114: 63fb str r3, [r7, #60] ; 0x3c + 802007e: 68bb ldr r3, [r7, #8] + 8020080: 63fb str r3, [r7, #60] ; 0x3c for(x = 0; x < size * size; x++) { - 8020116: 2300 movs r3, #0 - 8020118: 653b str r3, [r7, #80] ; 0x50 - 802011a: e00c b.n 8020136 + 8020082: 2300 movs r3, #0 + 8020084: 653b str r3, [r7, #80] ; 0x50 + 8020086: e00c b.n 80200a2 res_buf[x] = sh_buf[x]; - 802011c: 6d3b ldr r3, [r7, #80] ; 0x50 - 802011e: 005b lsls r3, r3, #1 - 8020120: 68ba ldr r2, [r7, #8] - 8020122: 4413 add r3, r2 - 8020124: 8819 ldrh r1, [r3, #0] - 8020126: 6d3b ldr r3, [r7, #80] ; 0x50 - 8020128: 6bfa ldr r2, [r7, #60] ; 0x3c - 802012a: 4413 add r3, r2 - 802012c: b2ca uxtb r2, r1 - 802012e: 701a strb r2, [r3, #0] + 8020088: 6d3b ldr r3, [r7, #80] ; 0x50 + 802008a: 005b lsls r3, r3, #1 + 802008c: 68ba ldr r2, [r7, #8] + 802008e: 4413 add r3, r2 + 8020090: 8819 ldrh r1, [r3, #0] + 8020092: 6d3b ldr r3, [r7, #80] ; 0x50 + 8020094: 6bfa ldr r2, [r7, #60] ; 0x3c + 8020096: 4413 add r3, r2 + 8020098: b2ca uxtb r2, r1 + 802009a: 701a strb r2, [r3, #0] for(x = 0; x < size * size; x++) { - 8020130: 6d3b ldr r3, [r7, #80] ; 0x50 - 8020132: 3301 adds r3, #1 - 8020134: 653b str r3, [r7, #80] ; 0x50 - 8020136: 6cbb ldr r3, [r7, #72] ; 0x48 - 8020138: fb03 f303 mul.w r3, r3, r3 - 802013c: 6d3a ldr r2, [r7, #80] ; 0x50 - 802013e: 429a cmp r2, r3 - 8020140: dbec blt.n 802011c + 802009c: 6d3b ldr r3, [r7, #80] ; 0x50 + 802009e: 3301 adds r3, #1 + 80200a0: 653b str r3, [r7, #80] ; 0x50 + 80200a2: 6cbb ldr r3, [r7, #72] ; 0x48 + 80200a4: fb03 f303 mul.w r3, r3, r3 + 80200a8: 6d3a ldr r2, [r7, #80] ; 0x50 + 80200aa: 429a cmp r2, r3 + 80200ac: dbec blt.n 8020088 } #endif } - 8020142: 376c adds r7, #108 ; 0x6c - 8020144: 46bd mov sp, r7 - 8020146: bd90 pop {r4, r7, pc} + 80200ae: 376c adds r7, #108 ; 0x6c + 80200b0: 46bd mov sp, r7 + 80200b2: bd90 pop {r4, r7, pc} -08020148 : +080200b4 : LV_ATTRIBUTE_FAST_MEM static void shadow_blur_corner(lv_coord_t size, lv_coord_t sw, uint16_t * sh_ups_buf) { - 8020148: b580 push {r7, lr} - 802014a: b092 sub sp, #72 ; 0x48 - 802014c: af00 add r7, sp, #0 - 802014e: 4603 mov r3, r0 - 8020150: 603a str r2, [r7, #0] - 8020152: 80fb strh r3, [r7, #6] - 8020154: 460b mov r3, r1 - 8020156: 80bb strh r3, [r7, #4] + 80200b4: b580 push {r7, lr} + 80200b6: b092 sub sp, #72 ; 0x48 + 80200b8: af00 add r7, sp, #0 + 80200ba: 4603 mov r3, r0 + 80200bc: 603a str r2, [r7, #0] + 80200be: 80fb strh r3, [r7, #6] + 80200c0: 460b mov r3, r1 + 80200c2: 80bb strh r3, [r7, #4] int32_t s_left = sw >> 1; - 8020158: f9b7 3004 ldrsh.w r3, [r7, #4] - 802015c: 105b asrs r3, r3, #1 - 802015e: b21b sxth r3, r3 - 8020160: 647b str r3, [r7, #68] ; 0x44 + 80200c4: f9b7 3004 ldrsh.w r3, [r7, #4] + 80200c8: 105b asrs r3, r3, #1 + 80200ca: b21b sxth r3, r3 + 80200cc: 647b str r3, [r7, #68] ; 0x44 int32_t s_right = (sw >> 1); - 8020162: f9b7 3004 ldrsh.w r3, [r7, #4] - 8020166: 105b asrs r3, r3, #1 - 8020168: b21b sxth r3, r3 - 802016a: 61bb str r3, [r7, #24] + 80200ce: f9b7 3004 ldrsh.w r3, [r7, #4] + 80200d2: 105b asrs r3, r3, #1 + 80200d4: b21b sxth r3, r3 + 80200d6: 61bb str r3, [r7, #24] if((sw & 1) == 0) s_left--; - 802016c: 88bb ldrh r3, [r7, #4] - 802016e: f003 0301 and.w r3, r3, #1 - 8020172: 2b00 cmp r3, #0 - 8020174: d102 bne.n 802017c - 8020176: 6c7b ldr r3, [r7, #68] ; 0x44 - 8020178: 3b01 subs r3, #1 - 802017a: 647b str r3, [r7, #68] ; 0x44 + 80200d8: 88bb ldrh r3, [r7, #4] + 80200da: f003 0301 and.w r3, r3, #1 + 80200de: 2b00 cmp r3, #0 + 80200e0: d102 bne.n 80200e8 + 80200e2: 6c7b ldr r3, [r7, #68] ; 0x44 + 80200e4: 3b01 subs r3, #1 + 80200e6: 647b str r3, [r7, #68] ; 0x44 /*Horizontal blur*/ uint16_t * sh_ups_blur_buf = lv_mem_buf_get(size * sizeof(uint16_t)); - 802017c: f9b7 3006 ldrsh.w r3, [r7, #6] - 8020180: 005b lsls r3, r3, #1 - 8020182: 4618 mov r0, r3 - 8020184: f012 fc3c bl 8032a00 - 8020188: 6178 str r0, [r7, #20] + 80200e8: f9b7 3006 ldrsh.w r3, [r7, #6] + 80200ec: 005b lsls r3, r3, #1 + 80200ee: 4618 mov r0, r3 + 80200f0: f012 fc3c bl 803296c + 80200f4: 6178 str r0, [r7, #20] int32_t x; int32_t y; uint16_t * sh_ups_tmp_buf = sh_ups_buf; - 802018a: 683b ldr r3, [r7, #0] - 802018c: 63bb str r3, [r7, #56] ; 0x38 + 80200f6: 683b ldr r3, [r7, #0] + 80200f8: 63bb str r3, [r7, #56] ; 0x38 for(y = 0; y < size; y++) { - 802018e: 2300 movs r3, #0 - 8020190: 63fb str r3, [r7, #60] ; 0x3c - 8020192: e05e b.n 8020252 + 80200fa: 2300 movs r3, #0 + 80200fc: 63fb str r3, [r7, #60] ; 0x3c + 80200fe: e05e b.n 80201be int32_t v = sh_ups_tmp_buf[size - 1] * sw; - 8020194: f9b7 3006 ldrsh.w r3, [r7, #6] - 8020198: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 - 802019c: 3b01 subs r3, #1 - 802019e: 005b lsls r3, r3, #1 - 80201a0: 6bba ldr r2, [r7, #56] ; 0x38 - 80201a2: 4413 add r3, r2 - 80201a4: 881b ldrh r3, [r3, #0] - 80201a6: 461a mov r2, r3 - 80201a8: f9b7 3004 ldrsh.w r3, [r7, #4] - 80201ac: fb02 f303 mul.w r3, r2, r3 - 80201b0: 637b str r3, [r7, #52] ; 0x34 + 8020100: f9b7 3006 ldrsh.w r3, [r7, #6] + 8020104: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 + 8020108: 3b01 subs r3, #1 + 802010a: 005b lsls r3, r3, #1 + 802010c: 6bba ldr r2, [r7, #56] ; 0x38 + 802010e: 4413 add r3, r2 + 8020110: 881b ldrh r3, [r3, #0] + 8020112: 461a mov r2, r3 + 8020114: f9b7 3004 ldrsh.w r3, [r7, #4] + 8020118: fb02 f303 mul.w r3, r2, r3 + 802011c: 637b str r3, [r7, #52] ; 0x34 for(x = size - 1; x >= 0; x--) { - 80201b2: f9b7 3006 ldrsh.w r3, [r7, #6] - 80201b6: 3b01 subs r3, #1 - 80201b8: 643b str r3, [r7, #64] ; 0x40 - 80201ba: e036 b.n 802022a + 802011e: f9b7 3006 ldrsh.w r3, [r7, #6] + 8020122: 3b01 subs r3, #1 + 8020124: 643b str r3, [r7, #64] ; 0x40 + 8020126: e036 b.n 8020196 sh_ups_blur_buf[x] = v; - 80201bc: 6c3b ldr r3, [r7, #64] ; 0x40 - 80201be: 005b lsls r3, r3, #1 - 80201c0: 697a ldr r2, [r7, #20] - 80201c2: 4413 add r3, r2 - 80201c4: 6b7a ldr r2, [r7, #52] ; 0x34 - 80201c6: b292 uxth r2, r2 - 80201c8: 801a strh r2, [r3, #0] + 8020128: 6c3b ldr r3, [r7, #64] ; 0x40 + 802012a: 005b lsls r3, r3, #1 + 802012c: 697a ldr r2, [r7, #20] + 802012e: 4413 add r3, r2 + 8020130: 6b7a ldr r2, [r7, #52] ; 0x34 + 8020132: b292 uxth r2, r2 + 8020134: 801a strh r2, [r3, #0] /*Forget the right pixel*/ uint32_t right_val = 0; - 80201ca: 2300 movs r3, #0 - 80201cc: 633b str r3, [r7, #48] ; 0x30 + 8020136: 2300 movs r3, #0 + 8020138: 633b str r3, [r7, #48] ; 0x30 if(x + s_right < size) right_val = sh_ups_tmp_buf[x + s_right]; - 80201ce: 6c3a ldr r2, [r7, #64] ; 0x40 - 80201d0: 69bb ldr r3, [r7, #24] - 80201d2: 441a add r2, r3 - 80201d4: f9b7 3006 ldrsh.w r3, [r7, #6] - 80201d8: 429a cmp r2, r3 - 80201da: da07 bge.n 80201ec - 80201dc: 6c3a ldr r2, [r7, #64] ; 0x40 - 80201de: 69bb ldr r3, [r7, #24] - 80201e0: 4413 add r3, r2 - 80201e2: 005b lsls r3, r3, #1 - 80201e4: 6bba ldr r2, [r7, #56] ; 0x38 - 80201e6: 4413 add r3, r2 - 80201e8: 881b ldrh r3, [r3, #0] - 80201ea: 633b str r3, [r7, #48] ; 0x30 + 802013a: 6c3a ldr r2, [r7, #64] ; 0x40 + 802013c: 69bb ldr r3, [r7, #24] + 802013e: 441a add r2, r3 + 8020140: f9b7 3006 ldrsh.w r3, [r7, #6] + 8020144: 429a cmp r2, r3 + 8020146: da07 bge.n 8020158 + 8020148: 6c3a ldr r2, [r7, #64] ; 0x40 + 802014a: 69bb ldr r3, [r7, #24] + 802014c: 4413 add r3, r2 + 802014e: 005b lsls r3, r3, #1 + 8020150: 6bba ldr r2, [r7, #56] ; 0x38 + 8020152: 4413 add r3, r2 + 8020154: 881b ldrh r3, [r3, #0] + 8020156: 633b str r3, [r7, #48] ; 0x30 v -= right_val; - 80201ec: 6b7a ldr r2, [r7, #52] ; 0x34 - 80201ee: 6b3b ldr r3, [r7, #48] ; 0x30 - 80201f0: 1ad3 subs r3, r2, r3 - 80201f2: 637b str r3, [r7, #52] ; 0x34 + 8020158: 6b7a ldr r2, [r7, #52] ; 0x34 + 802015a: 6b3b ldr r3, [r7, #48] ; 0x30 + 802015c: 1ad3 subs r3, r2, r3 + 802015e: 637b str r3, [r7, #52] ; 0x34 /*Add the left pixel*/ uint32_t left_val; if(x - s_left - 1 < 0) left_val = sh_ups_tmp_buf[0]; - 80201f4: 6c3a ldr r2, [r7, #64] ; 0x40 - 80201f6: 6c7b ldr r3, [r7, #68] ; 0x44 - 80201f8: 1ad3 subs r3, r2, r3 - 80201fa: 2b00 cmp r3, #0 - 80201fc: dc03 bgt.n 8020206 - 80201fe: 6bbb ldr r3, [r7, #56] ; 0x38 - 8020200: 881b ldrh r3, [r3, #0] - 8020202: 62fb str r3, [r7, #44] ; 0x2c - 8020204: e00a b.n 802021c + 8020160: 6c3a ldr r2, [r7, #64] ; 0x40 + 8020162: 6c7b ldr r3, [r7, #68] ; 0x44 + 8020164: 1ad3 subs r3, r2, r3 + 8020166: 2b00 cmp r3, #0 + 8020168: dc03 bgt.n 8020172 + 802016a: 6bbb ldr r3, [r7, #56] ; 0x38 + 802016c: 881b ldrh r3, [r3, #0] + 802016e: 62fb str r3, [r7, #44] ; 0x2c + 8020170: e00a b.n 8020188 else left_val = sh_ups_tmp_buf[x - s_left - 1]; - 8020206: 6c3a ldr r2, [r7, #64] ; 0x40 - 8020208: 6c7b ldr r3, [r7, #68] ; 0x44 - 802020a: 1ad3 subs r3, r2, r3 - 802020c: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 - 8020210: 3b01 subs r3, #1 - 8020212: 005b lsls r3, r3, #1 - 8020214: 6bba ldr r2, [r7, #56] ; 0x38 - 8020216: 4413 add r3, r2 - 8020218: 881b ldrh r3, [r3, #0] - 802021a: 62fb str r3, [r7, #44] ; 0x2c + 8020172: 6c3a ldr r2, [r7, #64] ; 0x40 + 8020174: 6c7b ldr r3, [r7, #68] ; 0x44 + 8020176: 1ad3 subs r3, r2, r3 + 8020178: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 + 802017c: 3b01 subs r3, #1 + 802017e: 005b lsls r3, r3, #1 + 8020180: 6bba ldr r2, [r7, #56] ; 0x38 + 8020182: 4413 add r3, r2 + 8020184: 881b ldrh r3, [r3, #0] + 8020186: 62fb str r3, [r7, #44] ; 0x2c v += left_val; - 802021c: 6b7a ldr r2, [r7, #52] ; 0x34 - 802021e: 6afb ldr r3, [r7, #44] ; 0x2c - 8020220: 4413 add r3, r2 - 8020222: 637b str r3, [r7, #52] ; 0x34 + 8020188: 6b7a ldr r2, [r7, #52] ; 0x34 + 802018a: 6afb ldr r3, [r7, #44] ; 0x2c + 802018c: 4413 add r3, r2 + 802018e: 637b str r3, [r7, #52] ; 0x34 for(x = size - 1; x >= 0; x--) { - 8020224: 6c3b ldr r3, [r7, #64] ; 0x40 - 8020226: 3b01 subs r3, #1 - 8020228: 643b str r3, [r7, #64] ; 0x40 - 802022a: 6c3b ldr r3, [r7, #64] ; 0x40 - 802022c: 2b00 cmp r3, #0 - 802022e: dac5 bge.n 80201bc + 8020190: 6c3b ldr r3, [r7, #64] ; 0x40 + 8020192: 3b01 subs r3, #1 + 8020194: 643b str r3, [r7, #64] ; 0x40 + 8020196: 6c3b ldr r3, [r7, #64] ; 0x40 + 8020198: 2b00 cmp r3, #0 + 802019a: dac5 bge.n 8020128 } lv_memcpy(sh_ups_tmp_buf, sh_ups_blur_buf, size * sizeof(uint16_t)); - 8020230: f9b7 3006 ldrsh.w r3, [r7, #6] - 8020234: 005b lsls r3, r3, #1 - 8020236: 461a mov r2, r3 - 8020238: 6979 ldr r1, [r7, #20] - 802023a: 6bb8 ldr r0, [r7, #56] ; 0x38 - 802023c: f012 fce4 bl 8032c08 + 802019c: f9b7 3006 ldrsh.w r3, [r7, #6] + 80201a0: 005b lsls r3, r3, #1 + 80201a2: 461a mov r2, r3 + 80201a4: 6979 ldr r1, [r7, #20] + 80201a6: 6bb8 ldr r0, [r7, #56] ; 0x38 + 80201a8: f012 fce4 bl 8032b74 sh_ups_tmp_buf += size; - 8020240: f9b7 3006 ldrsh.w r3, [r7, #6] - 8020244: 005b lsls r3, r3, #1 - 8020246: 6bba ldr r2, [r7, #56] ; 0x38 - 8020248: 4413 add r3, r2 - 802024a: 63bb str r3, [r7, #56] ; 0x38 + 80201ac: f9b7 3006 ldrsh.w r3, [r7, #6] + 80201b0: 005b lsls r3, r3, #1 + 80201b2: 6bba ldr r2, [r7, #56] ; 0x38 + 80201b4: 4413 add r3, r2 + 80201b6: 63bb str r3, [r7, #56] ; 0x38 for(y = 0; y < size; y++) { - 802024c: 6bfb ldr r3, [r7, #60] ; 0x3c - 802024e: 3301 adds r3, #1 - 8020250: 63fb str r3, [r7, #60] ; 0x3c - 8020252: f9b7 3006 ldrsh.w r3, [r7, #6] - 8020256: 6bfa ldr r2, [r7, #60] ; 0x3c - 8020258: 429a cmp r2, r3 - 802025a: db9b blt.n 8020194 + 80201b8: 6bfb ldr r3, [r7, #60] ; 0x3c + 80201ba: 3301 adds r3, #1 + 80201bc: 63fb str r3, [r7, #60] ; 0x3c + 80201be: f9b7 3006 ldrsh.w r3, [r7, #6] + 80201c2: 6bfa ldr r2, [r7, #60] ; 0x3c + 80201c4: 429a cmp r2, r3 + 80201c6: db9b blt.n 8020100 } /*Vertical blur*/ uint32_t i; uint32_t max_v = LV_OPA_COVER << SHADOW_UPSCALE_SHIFT; - 802025c: f44f 537f mov.w r3, #16320 ; 0x3fc0 - 8020260: 613b str r3, [r7, #16] + 80201c8: f44f 537f mov.w r3, #16320 ; 0x3fc0 + 80201cc: 613b str r3, [r7, #16] uint32_t max_v_div = max_v / sw; - 8020262: f9b7 3004 ldrsh.w r3, [r7, #4] - 8020266: 693a ldr r2, [r7, #16] - 8020268: fbb2 f3f3 udiv r3, r2, r3 - 802026c: 60fb str r3, [r7, #12] + 80201ce: f9b7 3004 ldrsh.w r3, [r7, #4] + 80201d2: 693a ldr r2, [r7, #16] + 80201d4: fbb2 f3f3 udiv r3, r2, r3 + 80201d8: 60fb str r3, [r7, #12] for(i = 0; i < (uint32_t)size * size; i++) { - 802026e: 2300 movs r3, #0 - 8020270: 62bb str r3, [r7, #40] ; 0x28 - 8020272: e02c b.n 80202ce + 80201da: 2300 movs r3, #0 + 80201dc: 62bb str r3, [r7, #40] ; 0x28 + 80201de: e02c b.n 802023a if(sh_ups_buf[i] == 0) continue; - 8020274: 6abb ldr r3, [r7, #40] ; 0x28 - 8020276: 005b lsls r3, r3, #1 - 8020278: 683a ldr r2, [r7, #0] - 802027a: 4413 add r3, r2 - 802027c: 881b ldrh r3, [r3, #0] - 802027e: 2b00 cmp r3, #0 - 8020280: d021 beq.n 80202c6 + 80201e0: 6abb ldr r3, [r7, #40] ; 0x28 + 80201e2: 005b lsls r3, r3, #1 + 80201e4: 683a ldr r2, [r7, #0] + 80201e6: 4413 add r3, r2 + 80201e8: 881b ldrh r3, [r3, #0] + 80201ea: 2b00 cmp r3, #0 + 80201ec: d021 beq.n 8020232 else if(sh_ups_buf[i] == max_v) sh_ups_buf[i] = max_v_div; - 8020282: 6abb ldr r3, [r7, #40] ; 0x28 - 8020284: 005b lsls r3, r3, #1 - 8020286: 683a ldr r2, [r7, #0] - 8020288: 4413 add r3, r2 - 802028a: 881b ldrh r3, [r3, #0] - 802028c: 461a mov r2, r3 - 802028e: 693b ldr r3, [r7, #16] - 8020290: 4293 cmp r3, r2 - 8020292: d107 bne.n 80202a4 - 8020294: 6abb ldr r3, [r7, #40] ; 0x28 - 8020296: 005b lsls r3, r3, #1 - 8020298: 683a ldr r2, [r7, #0] - 802029a: 4413 add r3, r2 - 802029c: 68fa ldr r2, [r7, #12] - 802029e: b292 uxth r2, r2 - 80202a0: 801a strh r2, [r3, #0] - 80202a2: e011 b.n 80202c8 + 80201ee: 6abb ldr r3, [r7, #40] ; 0x28 + 80201f0: 005b lsls r3, r3, #1 + 80201f2: 683a ldr r2, [r7, #0] + 80201f4: 4413 add r3, r2 + 80201f6: 881b ldrh r3, [r3, #0] + 80201f8: 461a mov r2, r3 + 80201fa: 693b ldr r3, [r7, #16] + 80201fc: 4293 cmp r3, r2 + 80201fe: d107 bne.n 8020210 + 8020200: 6abb ldr r3, [r7, #40] ; 0x28 + 8020202: 005b lsls r3, r3, #1 + 8020204: 683a ldr r2, [r7, #0] + 8020206: 4413 add r3, r2 + 8020208: 68fa ldr r2, [r7, #12] + 802020a: b292 uxth r2, r2 + 802020c: 801a strh r2, [r3, #0] + 802020e: e011 b.n 8020234 else sh_ups_buf[i] = sh_ups_buf[i] / sw; - 80202a4: 6abb ldr r3, [r7, #40] ; 0x28 - 80202a6: 005b lsls r3, r3, #1 - 80202a8: 683a ldr r2, [r7, #0] - 80202aa: 4413 add r3, r2 - 80202ac: 881b ldrh r3, [r3, #0] - 80202ae: 461a mov r2, r3 - 80202b0: f9b7 3004 ldrsh.w r3, [r7, #4] - 80202b4: fb92 f1f3 sdiv r1, r2, r3 - 80202b8: 6abb ldr r3, [r7, #40] ; 0x28 - 80202ba: 005b lsls r3, r3, #1 - 80202bc: 683a ldr r2, [r7, #0] - 80202be: 4413 add r3, r2 - 80202c0: b28a uxth r2, r1 - 80202c2: 801a strh r2, [r3, #0] - 80202c4: e000 b.n 80202c8 + 8020210: 6abb ldr r3, [r7, #40] ; 0x28 + 8020212: 005b lsls r3, r3, #1 + 8020214: 683a ldr r2, [r7, #0] + 8020216: 4413 add r3, r2 + 8020218: 881b ldrh r3, [r3, #0] + 802021a: 461a mov r2, r3 + 802021c: f9b7 3004 ldrsh.w r3, [r7, #4] + 8020220: fb92 f1f3 sdiv r1, r2, r3 + 8020224: 6abb ldr r3, [r7, #40] ; 0x28 + 8020226: 005b lsls r3, r3, #1 + 8020228: 683a ldr r2, [r7, #0] + 802022a: 4413 add r3, r2 + 802022c: b28a uxth r2, r1 + 802022e: 801a strh r2, [r3, #0] + 8020230: e000 b.n 8020234 if(sh_ups_buf[i] == 0) continue; - 80202c6: bf00 nop + 8020232: bf00 nop for(i = 0; i < (uint32_t)size * size; i++) { - 80202c8: 6abb ldr r3, [r7, #40] ; 0x28 - 80202ca: 3301 adds r3, #1 - 80202cc: 62bb str r3, [r7, #40] ; 0x28 - 80202ce: f9b7 3006 ldrsh.w r3, [r7, #6] - 80202d2: f9b7 2006 ldrsh.w r2, [r7, #6] - 80202d6: fb02 f303 mul.w r3, r2, r3 - 80202da: 6aba ldr r2, [r7, #40] ; 0x28 - 80202dc: 429a cmp r2, r3 - 80202de: d3c9 bcc.n 8020274 + 8020234: 6abb ldr r3, [r7, #40] ; 0x28 + 8020236: 3301 adds r3, #1 + 8020238: 62bb str r3, [r7, #40] ; 0x28 + 802023a: f9b7 3006 ldrsh.w r3, [r7, #6] + 802023e: f9b7 2006 ldrsh.w r2, [r7, #6] + 8020242: fb02 f303 mul.w r3, r2, r3 + 8020246: 6aba ldr r2, [r7, #40] ; 0x28 + 8020248: 429a cmp r2, r3 + 802024a: d3c9 bcc.n 80201e0 } for(x = 0; x < size; x++) { - 80202e0: 2300 movs r3, #0 - 80202e2: 643b str r3, [r7, #64] ; 0x40 - 80202e4: e090 b.n 8020408 + 802024c: 2300 movs r3, #0 + 802024e: 643b str r3, [r7, #64] ; 0x40 + 8020250: e090 b.n 8020374 sh_ups_tmp_buf = &sh_ups_buf[x]; - 80202e6: 6c3b ldr r3, [r7, #64] ; 0x40 - 80202e8: 005b lsls r3, r3, #1 - 80202ea: 683a ldr r2, [r7, #0] - 80202ec: 4413 add r3, r2 - 80202ee: 63bb str r3, [r7, #56] ; 0x38 + 8020252: 6c3b ldr r3, [r7, #64] ; 0x40 + 8020254: 005b lsls r3, r3, #1 + 8020256: 683a ldr r2, [r7, #0] + 8020258: 4413 add r3, r2 + 802025a: 63bb str r3, [r7, #56] ; 0x38 int32_t v = sh_ups_tmp_buf[0] * sw; - 80202f0: 6bbb ldr r3, [r7, #56] ; 0x38 - 80202f2: 881b ldrh r3, [r3, #0] - 80202f4: 461a mov r2, r3 - 80202f6: f9b7 3004 ldrsh.w r3, [r7, #4] - 80202fa: fb02 f303 mul.w r3, r2, r3 - 80202fe: 627b str r3, [r7, #36] ; 0x24 + 802025c: 6bbb ldr r3, [r7, #56] ; 0x38 + 802025e: 881b ldrh r3, [r3, #0] + 8020260: 461a mov r2, r3 + 8020262: f9b7 3004 ldrsh.w r3, [r7, #4] + 8020266: fb02 f303 mul.w r3, r2, r3 + 802026a: 627b str r3, [r7, #36] ; 0x24 for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) { - 8020300: 2300 movs r3, #0 - 8020302: 63fb str r3, [r7, #60] ; 0x3c - 8020304: e05b b.n 80203be + 802026c: 2300 movs r3, #0 + 802026e: 63fb str r3, [r7, #60] ; 0x3c + 8020270: e05b b.n 802032a sh_ups_blur_buf[y] = v < 0 ? 0 : (v >> SHADOW_UPSCALE_SHIFT); - 8020306: 6a7b ldr r3, [r7, #36] ; 0x24 - 8020308: 2b00 cmp r3, #0 - 802030a: db03 blt.n 8020314 - 802030c: 6a7b ldr r3, [r7, #36] ; 0x24 - 802030e: 119b asrs r3, r3, #6 - 8020310: b299 uxth r1, r3 - 8020312: e000 b.n 8020316 - 8020314: 2100 movs r1, #0 - 8020316: 6bfb ldr r3, [r7, #60] ; 0x3c - 8020318: 005b lsls r3, r3, #1 - 802031a: 697a ldr r2, [r7, #20] - 802031c: 4413 add r3, r2 - 802031e: 460a mov r2, r1 - 8020320: 801a strh r2, [r3, #0] + 8020272: 6a7b ldr r3, [r7, #36] ; 0x24 + 8020274: 2b00 cmp r3, #0 + 8020276: db03 blt.n 8020280 + 8020278: 6a7b ldr r3, [r7, #36] ; 0x24 + 802027a: 119b asrs r3, r3, #6 + 802027c: b299 uxth r1, r3 + 802027e: e000 b.n 8020282 + 8020280: 2100 movs r1, #0 + 8020282: 6bfb ldr r3, [r7, #60] ; 0x3c + 8020284: 005b lsls r3, r3, #1 + 8020286: 697a ldr r2, [r7, #20] + 8020288: 4413 add r3, r2 + 802028a: 460a mov r2, r1 + 802028c: 801a strh r2, [r3, #0] /*Forget the top pixel*/ uint32_t top_val; if(y - s_right <= 0) top_val = sh_ups_tmp_buf[0]; - 8020322: 6bfa ldr r2, [r7, #60] ; 0x3c - 8020324: 69bb ldr r3, [r7, #24] - 8020326: 1ad3 subs r3, r2, r3 - 8020328: 2b00 cmp r3, #0 - 802032a: dc03 bgt.n 8020334 - 802032c: 6bbb ldr r3, [r7, #56] ; 0x38 - 802032e: 881b ldrh r3, [r3, #0] - 8020330: 623b str r3, [r7, #32] - 8020332: e00d b.n 8020350 + 802028e: 6bfa ldr r2, [r7, #60] ; 0x3c + 8020290: 69bb ldr r3, [r7, #24] + 8020292: 1ad3 subs r3, r2, r3 + 8020294: 2b00 cmp r3, #0 + 8020296: dc03 bgt.n 80202a0 + 8020298: 6bbb ldr r3, [r7, #56] ; 0x38 + 802029a: 881b ldrh r3, [r3, #0] + 802029c: 623b str r3, [r7, #32] + 802029e: e00d b.n 80202bc else top_val = sh_ups_buf[(y - s_right) * size + x]; - 8020334: 6bfa ldr r2, [r7, #60] ; 0x3c - 8020336: 69bb ldr r3, [r7, #24] - 8020338: 1ad3 subs r3, r2, r3 - 802033a: f9b7 2006 ldrsh.w r2, [r7, #6] - 802033e: fb03 f202 mul.w r2, r3, r2 - 8020342: 6c3b ldr r3, [r7, #64] ; 0x40 - 8020344: 4413 add r3, r2 - 8020346: 005b lsls r3, r3, #1 - 8020348: 683a ldr r2, [r7, #0] - 802034a: 4413 add r3, r2 - 802034c: 881b ldrh r3, [r3, #0] - 802034e: 623b str r3, [r7, #32] + 80202a0: 6bfa ldr r2, [r7, #60] ; 0x3c + 80202a2: 69bb ldr r3, [r7, #24] + 80202a4: 1ad3 subs r3, r2, r3 + 80202a6: f9b7 2006 ldrsh.w r2, [r7, #6] + 80202aa: fb03 f202 mul.w r2, r3, r2 + 80202ae: 6c3b ldr r3, [r7, #64] ; 0x40 + 80202b0: 4413 add r3, r2 + 80202b2: 005b lsls r3, r3, #1 + 80202b4: 683a ldr r2, [r7, #0] + 80202b6: 4413 add r3, r2 + 80202b8: 881b ldrh r3, [r3, #0] + 80202ba: 623b str r3, [r7, #32] v -= top_val; - 8020350: 6a7a ldr r2, [r7, #36] ; 0x24 - 8020352: 6a3b ldr r3, [r7, #32] - 8020354: 1ad3 subs r3, r2, r3 - 8020356: 627b str r3, [r7, #36] ; 0x24 + 80202bc: 6a7a ldr r2, [r7, #36] ; 0x24 + 80202be: 6a3b ldr r3, [r7, #32] + 80202c0: 1ad3 subs r3, r2, r3 + 80202c2: 627b str r3, [r7, #36] ; 0x24 /*Add the bottom pixel*/ uint32_t bottom_val; if(y + s_left + 1 < size) bottom_val = sh_ups_buf[(y + s_left + 1) * size + x]; - 8020358: 6bfa ldr r2, [r7, #60] ; 0x3c - 802035a: 6c7b ldr r3, [r7, #68] ; 0x44 - 802035c: 4413 add r3, r2 - 802035e: 1c5a adds r2, r3, #1 - 8020360: f9b7 3006 ldrsh.w r3, [r7, #6] - 8020364: 429a cmp r2, r3 - 8020366: da0f bge.n 8020388 - 8020368: 6bfa ldr r2, [r7, #60] ; 0x3c - 802036a: 6c7b ldr r3, [r7, #68] ; 0x44 - 802036c: 4413 add r3, r2 - 802036e: 3301 adds r3, #1 - 8020370: f9b7 2006 ldrsh.w r2, [r7, #6] - 8020374: fb03 f202 mul.w r2, r3, r2 - 8020378: 6c3b ldr r3, [r7, #64] ; 0x40 - 802037a: 4413 add r3, r2 - 802037c: 005b lsls r3, r3, #1 - 802037e: 683a ldr r2, [r7, #0] - 8020380: 4413 add r3, r2 - 8020382: 881b ldrh r3, [r3, #0] - 8020384: 61fb str r3, [r7, #28] - 8020386: e00d b.n 80203a4 + 80202c4: 6bfa ldr r2, [r7, #60] ; 0x3c + 80202c6: 6c7b ldr r3, [r7, #68] ; 0x44 + 80202c8: 4413 add r3, r2 + 80202ca: 1c5a adds r2, r3, #1 + 80202cc: f9b7 3006 ldrsh.w r3, [r7, #6] + 80202d0: 429a cmp r2, r3 + 80202d2: da0f bge.n 80202f4 + 80202d4: 6bfa ldr r2, [r7, #60] ; 0x3c + 80202d6: 6c7b ldr r3, [r7, #68] ; 0x44 + 80202d8: 4413 add r3, r2 + 80202da: 3301 adds r3, #1 + 80202dc: f9b7 2006 ldrsh.w r2, [r7, #6] + 80202e0: fb03 f202 mul.w r2, r3, r2 + 80202e4: 6c3b ldr r3, [r7, #64] ; 0x40 + 80202e6: 4413 add r3, r2 + 80202e8: 005b lsls r3, r3, #1 + 80202ea: 683a ldr r2, [r7, #0] + 80202ec: 4413 add r3, r2 + 80202ee: 881b ldrh r3, [r3, #0] + 80202f0: 61fb str r3, [r7, #28] + 80202f2: e00d b.n 8020310 else bottom_val = sh_ups_buf[(size - 1) * size + x]; - 8020388: f9b7 3006 ldrsh.w r3, [r7, #6] - 802038c: 3b01 subs r3, #1 - 802038e: f9b7 2006 ldrsh.w r2, [r7, #6] - 8020392: fb03 f202 mul.w r2, r3, r2 - 8020396: 6c3b ldr r3, [r7, #64] ; 0x40 - 8020398: 4413 add r3, r2 - 802039a: 005b lsls r3, r3, #1 - 802039c: 683a ldr r2, [r7, #0] - 802039e: 4413 add r3, r2 - 80203a0: 881b ldrh r3, [r3, #0] - 80203a2: 61fb str r3, [r7, #28] + 80202f4: f9b7 3006 ldrsh.w r3, [r7, #6] + 80202f8: 3b01 subs r3, #1 + 80202fa: f9b7 2006 ldrsh.w r2, [r7, #6] + 80202fe: fb03 f202 mul.w r2, r3, r2 + 8020302: 6c3b ldr r3, [r7, #64] ; 0x40 + 8020304: 4413 add r3, r2 + 8020306: 005b lsls r3, r3, #1 + 8020308: 683a ldr r2, [r7, #0] + 802030a: 4413 add r3, r2 + 802030c: 881b ldrh r3, [r3, #0] + 802030e: 61fb str r3, [r7, #28] v += bottom_val; - 80203a4: 6a7a ldr r2, [r7, #36] ; 0x24 - 80203a6: 69fb ldr r3, [r7, #28] - 80203a8: 4413 add r3, r2 - 80203aa: 627b str r3, [r7, #36] ; 0x24 + 8020310: 6a7a ldr r2, [r7, #36] ; 0x24 + 8020312: 69fb ldr r3, [r7, #28] + 8020314: 4413 add r3, r2 + 8020316: 627b str r3, [r7, #36] ; 0x24 for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) { - 80203ac: 6bfb ldr r3, [r7, #60] ; 0x3c - 80203ae: 3301 adds r3, #1 - 80203b0: 63fb str r3, [r7, #60] ; 0x3c - 80203b2: f9b7 3006 ldrsh.w r3, [r7, #6] - 80203b6: 005b lsls r3, r3, #1 - 80203b8: 6bba ldr r2, [r7, #56] ; 0x38 - 80203ba: 4413 add r3, r2 - 80203bc: 63bb str r3, [r7, #56] ; 0x38 - 80203be: f9b7 3006 ldrsh.w r3, [r7, #6] - 80203c2: 6bfa ldr r2, [r7, #60] ; 0x3c - 80203c4: 429a cmp r2, r3 - 80203c6: db9e blt.n 8020306 + 8020318: 6bfb ldr r3, [r7, #60] ; 0x3c + 802031a: 3301 adds r3, #1 + 802031c: 63fb str r3, [r7, #60] ; 0x3c + 802031e: f9b7 3006 ldrsh.w r3, [r7, #6] + 8020322: 005b lsls r3, r3, #1 + 8020324: 6bba ldr r2, [r7, #56] ; 0x38 + 8020326: 4413 add r3, r2 + 8020328: 63bb str r3, [r7, #56] ; 0x38 + 802032a: f9b7 3006 ldrsh.w r3, [r7, #6] + 802032e: 6bfa ldr r2, [r7, #60] ; 0x3c + 8020330: 429a cmp r2, r3 + 8020332: db9e blt.n 8020272 } /*Write back the result into `sh_ups_buf`*/ sh_ups_tmp_buf = &sh_ups_buf[x]; - 80203c8: 6c3b ldr r3, [r7, #64] ; 0x40 - 80203ca: 005b lsls r3, r3, #1 - 80203cc: 683a ldr r2, [r7, #0] - 80203ce: 4413 add r3, r2 - 80203d0: 63bb str r3, [r7, #56] ; 0x38 + 8020334: 6c3b ldr r3, [r7, #64] ; 0x40 + 8020336: 005b lsls r3, r3, #1 + 8020338: 683a ldr r2, [r7, #0] + 802033a: 4413 add r3, r2 + 802033c: 63bb str r3, [r7, #56] ; 0x38 for(y = 0; y < size; y++, sh_ups_tmp_buf += size) { - 80203d2: 2300 movs r3, #0 - 80203d4: 63fb str r3, [r7, #60] ; 0x3c - 80203d6: e00f b.n 80203f8 + 802033e: 2300 movs r3, #0 + 8020340: 63fb str r3, [r7, #60] ; 0x3c + 8020342: e00f b.n 8020364 (*sh_ups_tmp_buf) = sh_ups_blur_buf[y]; - 80203d8: 6bfb ldr r3, [r7, #60] ; 0x3c - 80203da: 005b lsls r3, r3, #1 - 80203dc: 697a ldr r2, [r7, #20] - 80203de: 4413 add r3, r2 - 80203e0: 881a ldrh r2, [r3, #0] - 80203e2: 6bbb ldr r3, [r7, #56] ; 0x38 - 80203e4: 801a strh r2, [r3, #0] + 8020344: 6bfb ldr r3, [r7, #60] ; 0x3c + 8020346: 005b lsls r3, r3, #1 + 8020348: 697a ldr r2, [r7, #20] + 802034a: 4413 add r3, r2 + 802034c: 881a ldrh r2, [r3, #0] + 802034e: 6bbb ldr r3, [r7, #56] ; 0x38 + 8020350: 801a strh r2, [r3, #0] for(y = 0; y < size; y++, sh_ups_tmp_buf += size) { - 80203e6: 6bfb ldr r3, [r7, #60] ; 0x3c - 80203e8: 3301 adds r3, #1 - 80203ea: 63fb str r3, [r7, #60] ; 0x3c - 80203ec: f9b7 3006 ldrsh.w r3, [r7, #6] - 80203f0: 005b lsls r3, r3, #1 - 80203f2: 6bba ldr r2, [r7, #56] ; 0x38 - 80203f4: 4413 add r3, r2 - 80203f6: 63bb str r3, [r7, #56] ; 0x38 - 80203f8: f9b7 3006 ldrsh.w r3, [r7, #6] - 80203fc: 6bfa ldr r2, [r7, #60] ; 0x3c - 80203fe: 429a cmp r2, r3 - 8020400: dbea blt.n 80203d8 + 8020352: 6bfb ldr r3, [r7, #60] ; 0x3c + 8020354: 3301 adds r3, #1 + 8020356: 63fb str r3, [r7, #60] ; 0x3c + 8020358: f9b7 3006 ldrsh.w r3, [r7, #6] + 802035c: 005b lsls r3, r3, #1 + 802035e: 6bba ldr r2, [r7, #56] ; 0x38 + 8020360: 4413 add r3, r2 + 8020362: 63bb str r3, [r7, #56] ; 0x38 + 8020364: f9b7 3006 ldrsh.w r3, [r7, #6] + 8020368: 6bfa ldr r2, [r7, #60] ; 0x3c + 802036a: 429a cmp r2, r3 + 802036c: dbea blt.n 8020344 for(x = 0; x < size; x++) { - 8020402: 6c3b ldr r3, [r7, #64] ; 0x40 - 8020404: 3301 adds r3, #1 - 8020406: 643b str r3, [r7, #64] ; 0x40 - 8020408: f9b7 3006 ldrsh.w r3, [r7, #6] - 802040c: 6c3a ldr r2, [r7, #64] ; 0x40 - 802040e: 429a cmp r2, r3 - 8020410: f6ff af69 blt.w 80202e6 + 802036e: 6c3b ldr r3, [r7, #64] ; 0x40 + 8020370: 3301 adds r3, #1 + 8020372: 643b str r3, [r7, #64] ; 0x40 + 8020374: f9b7 3006 ldrsh.w r3, [r7, #6] + 8020378: 6c3a ldr r2, [r7, #64] ; 0x40 + 802037a: 429a cmp r2, r3 + 802037c: f6ff af69 blt.w 8020252 } } lv_mem_buf_release(sh_ups_blur_buf); - 8020414: 6978 ldr r0, [r7, #20] - 8020416: f012 fb9f bl 8032b58 + 8020380: 6978 ldr r0, [r7, #20] + 8020382: f012 fb9f bl 8032ac4 } - 802041a: bf00 nop - 802041c: 3748 adds r7, #72 ; 0x48 - 802041e: 46bd mov sp, r7 - 8020420: bd80 pop {r7, pc} + 8020386: bf00 nop + 8020388: 3748 adds r7, #72 ; 0x48 + 802038a: 46bd mov sp, r7 + 802038c: bd80 pop {r7, pc} -08020422 : +0802038e : #endif static void draw_outline(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords) { - 8020422: b5b0 push {r4, r5, r7, lr} - 8020424: b092 sub sp, #72 ; 0x48 - 8020426: af04 add r7, sp, #16 - 8020428: 60f8 str r0, [r7, #12] - 802042a: 60b9 str r1, [r7, #8] - 802042c: 607a str r2, [r7, #4] + 802038e: b5b0 push {r4, r5, r7, lr} + 8020390: b092 sub sp, #72 ; 0x48 + 8020392: af04 add r7, sp, #16 + 8020394: 60f8 str r0, [r7, #12] + 8020396: 60b9 str r1, [r7, #8] + 8020398: 607a str r2, [r7, #4] if(dsc->outline_opa <= LV_OPA_MIN) return; - 802042e: 68bb ldr r3, [r7, #8] - 8020430: f893 302a ldrb.w r3, [r3, #42] ; 0x2a - 8020434: 2b02 cmp r3, #2 - 8020436: f240 80b7 bls.w 80205a8 + 802039a: 68bb ldr r3, [r7, #8] + 802039c: f893 302a ldrb.w r3, [r3, #42] ; 0x2a + 80203a0: 2b02 cmp r3, #2 + 80203a2: f240 80b7 bls.w 8020514 if(dsc->outline_width == 0) return; - 802043a: 68bb ldr r3, [r7, #8] - 802043c: f9b3 3026 ldrsh.w r3, [r3, #38] ; 0x26 - 8020440: 2b00 cmp r3, #0 - 8020442: f000 80b3 beq.w 80205ac + 80203a6: 68bb ldr r3, [r7, #8] + 80203a8: f9b3 3026 ldrsh.w r3, [r3, #38] ; 0x26 + 80203ac: 2b00 cmp r3, #0 + 80203ae: f000 80b3 beq.w 8020518 lv_opa_t opa = dsc->outline_opa; - 8020446: 68bb ldr r3, [r7, #8] - 8020448: f893 302a ldrb.w r3, [r3, #42] ; 0x2a - 802044c: f887 3033 strb.w r3, [r7, #51] ; 0x33 + 80203b2: 68bb ldr r3, [r7, #8] + 80203b4: f893 302a ldrb.w r3, [r3, #42] ; 0x2a + 80203b8: f887 3033 strb.w r3, [r7, #51] ; 0x33 if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; - 8020450: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 - 8020454: 2bfd cmp r3, #253 ; 0xfd - 8020456: d902 bls.n 802045e - 8020458: 23ff movs r3, #255 ; 0xff - 802045a: f887 3033 strb.w r3, [r7, #51] ; 0x33 + 80203bc: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 + 80203c0: 2bfd cmp r3, #253 ; 0xfd + 80203c2: d902 bls.n 80203ca + 80203c4: 23ff movs r3, #255 ; 0xff + 80203c6: f887 3033 strb.w r3, [r7, #51] ; 0x33 /*Get the inner radius*/ lv_area_t area_inner; lv_area_copy(&area_inner, coords); - 802045e: f107 0318 add.w r3, r7, #24 - 8020462: 6879 ldr r1, [r7, #4] - 8020464: 4618 mov r0, r3 - 8020466: f7fd fc2d bl 801dcc4 + 80203ca: f107 0318 add.w r3, r7, #24 + 80203ce: 6879 ldr r1, [r7, #4] + 80203d0: 4618 mov r0, r3 + 80203d2: f7fd fc2d bl 801dc30 /*Bring the outline closer to make sure there is no color bleeding with pad=0*/ lv_coord_t pad = dsc->outline_pad - 1; - 802046a: 68bb ldr r3, [r7, #8] - 802046c: f9b3 3028 ldrsh.w r3, [r3, #40] ; 0x28 - 8020470: b29b uxth r3, r3 - 8020472: 3b01 subs r3, #1 - 8020474: b29b uxth r3, r3 - 8020476: 863b strh r3, [r7, #48] ; 0x30 + 80203d6: 68bb ldr r3, [r7, #8] + 80203d8: f9b3 3028 ldrsh.w r3, [r3, #40] ; 0x28 + 80203dc: b29b uxth r3, r3 + 80203de: 3b01 subs r3, #1 + 80203e0: b29b uxth r3, r3 + 80203e2: 863b strh r3, [r7, #48] ; 0x30 area_inner.x1 -= pad; - 8020478: f9b7 3018 ldrsh.w r3, [r7, #24] - 802047c: b29a uxth r2, r3 - 802047e: 8e3b ldrh r3, [r7, #48] ; 0x30 - 8020480: 1ad3 subs r3, r2, r3 - 8020482: b29b uxth r3, r3 - 8020484: b21b sxth r3, r3 - 8020486: 833b strh r3, [r7, #24] + 80203e4: f9b7 3018 ldrsh.w r3, [r7, #24] + 80203e8: b29a uxth r2, r3 + 80203ea: 8e3b ldrh r3, [r7, #48] ; 0x30 + 80203ec: 1ad3 subs r3, r2, r3 + 80203ee: b29b uxth r3, r3 + 80203f0: b21b sxth r3, r3 + 80203f2: 833b strh r3, [r7, #24] area_inner.y1 -= pad; - 8020488: f9b7 301a ldrsh.w r3, [r7, #26] - 802048c: b29a uxth r2, r3 - 802048e: 8e3b ldrh r3, [r7, #48] ; 0x30 - 8020490: 1ad3 subs r3, r2, r3 - 8020492: b29b uxth r3, r3 - 8020494: b21b sxth r3, r3 - 8020496: 837b strh r3, [r7, #26] + 80203f4: f9b7 301a ldrsh.w r3, [r7, #26] + 80203f8: b29a uxth r2, r3 + 80203fa: 8e3b ldrh r3, [r7, #48] ; 0x30 + 80203fc: 1ad3 subs r3, r2, r3 + 80203fe: b29b uxth r3, r3 + 8020400: b21b sxth r3, r3 + 8020402: 837b strh r3, [r7, #26] area_inner.x2 += pad; - 8020498: f9b7 301c ldrsh.w r3, [r7, #28] - 802049c: b29a uxth r2, r3 - 802049e: 8e3b ldrh r3, [r7, #48] ; 0x30 - 80204a0: 4413 add r3, r2 - 80204a2: b29b uxth r3, r3 - 80204a4: b21b sxth r3, r3 - 80204a6: 83bb strh r3, [r7, #28] + 8020404: f9b7 301c ldrsh.w r3, [r7, #28] + 8020408: b29a uxth r2, r3 + 802040a: 8e3b ldrh r3, [r7, #48] ; 0x30 + 802040c: 4413 add r3, r2 + 802040e: b29b uxth r3, r3 + 8020410: b21b sxth r3, r3 + 8020412: 83bb strh r3, [r7, #28] area_inner.y2 += pad; - 80204a8: f9b7 301e ldrsh.w r3, [r7, #30] - 80204ac: b29a uxth r2, r3 - 80204ae: 8e3b ldrh r3, [r7, #48] ; 0x30 - 80204b0: 4413 add r3, r2 - 80204b2: b29b uxth r3, r3 - 80204b4: b21b sxth r3, r3 - 80204b6: 83fb strh r3, [r7, #30] + 8020414: f9b7 301e ldrsh.w r3, [r7, #30] + 8020418: b29a uxth r2, r3 + 802041a: 8e3b ldrh r3, [r7, #48] ; 0x30 + 802041c: 4413 add r3, r2 + 802041e: b29b uxth r3, r3 + 8020420: b21b sxth r3, r3 + 8020422: 83fb strh r3, [r7, #30] lv_area_t area_outer; lv_area_copy(&area_outer, &area_inner); - 80204b8: f107 0218 add.w r2, r7, #24 - 80204bc: f107 0310 add.w r3, r7, #16 - 80204c0: 4611 mov r1, r2 - 80204c2: 4618 mov r0, r3 - 80204c4: f7fd fbfe bl 801dcc4 + 8020424: f107 0218 add.w r2, r7, #24 + 8020428: f107 0310 add.w r3, r7, #16 + 802042c: 4611 mov r1, r2 + 802042e: 4618 mov r0, r3 + 8020430: f7fd fbfe bl 801dc30 area_outer.x1 -= dsc->outline_width; - 80204c8: f9b7 3010 ldrsh.w r3, [r7, #16] - 80204cc: b29a uxth r2, r3 - 80204ce: 68bb ldr r3, [r7, #8] - 80204d0: f9b3 3026 ldrsh.w r3, [r3, #38] ; 0x26 - 80204d4: b29b uxth r3, r3 - 80204d6: 1ad3 subs r3, r2, r3 - 80204d8: b29b uxth r3, r3 - 80204da: b21b sxth r3, r3 - 80204dc: 823b strh r3, [r7, #16] + 8020434: f9b7 3010 ldrsh.w r3, [r7, #16] + 8020438: b29a uxth r2, r3 + 802043a: 68bb ldr r3, [r7, #8] + 802043c: f9b3 3026 ldrsh.w r3, [r3, #38] ; 0x26 + 8020440: b29b uxth r3, r3 + 8020442: 1ad3 subs r3, r2, r3 + 8020444: b29b uxth r3, r3 + 8020446: b21b sxth r3, r3 + 8020448: 823b strh r3, [r7, #16] area_outer.x2 += dsc->outline_width; - 80204de: f9b7 3014 ldrsh.w r3, [r7, #20] - 80204e2: b29a uxth r2, r3 - 80204e4: 68bb ldr r3, [r7, #8] - 80204e6: f9b3 3026 ldrsh.w r3, [r3, #38] ; 0x26 - 80204ea: b29b uxth r3, r3 - 80204ec: 4413 add r3, r2 - 80204ee: b29b uxth r3, r3 - 80204f0: b21b sxth r3, r3 - 80204f2: 82bb strh r3, [r7, #20] + 802044a: f9b7 3014 ldrsh.w r3, [r7, #20] + 802044e: b29a uxth r2, r3 + 8020450: 68bb ldr r3, [r7, #8] + 8020452: f9b3 3026 ldrsh.w r3, [r3, #38] ; 0x26 + 8020456: b29b uxth r3, r3 + 8020458: 4413 add r3, r2 + 802045a: b29b uxth r3, r3 + 802045c: b21b sxth r3, r3 + 802045e: 82bb strh r3, [r7, #20] area_outer.y1 -= dsc->outline_width; - 80204f4: f9b7 3012 ldrsh.w r3, [r7, #18] - 80204f8: b29a uxth r2, r3 - 80204fa: 68bb ldr r3, [r7, #8] - 80204fc: f9b3 3026 ldrsh.w r3, [r3, #38] ; 0x26 - 8020500: b29b uxth r3, r3 - 8020502: 1ad3 subs r3, r2, r3 - 8020504: b29b uxth r3, r3 - 8020506: b21b sxth r3, r3 - 8020508: 827b strh r3, [r7, #18] + 8020460: f9b7 3012 ldrsh.w r3, [r7, #18] + 8020464: b29a uxth r2, r3 + 8020466: 68bb ldr r3, [r7, #8] + 8020468: f9b3 3026 ldrsh.w r3, [r3, #38] ; 0x26 + 802046c: b29b uxth r3, r3 + 802046e: 1ad3 subs r3, r2, r3 + 8020470: b29b uxth r3, r3 + 8020472: b21b sxth r3, r3 + 8020474: 827b strh r3, [r7, #18] area_outer.y2 += dsc->outline_width; - 802050a: f9b7 3016 ldrsh.w r3, [r7, #22] - 802050e: b29a uxth r2, r3 - 8020510: 68bb ldr r3, [r7, #8] - 8020512: f9b3 3026 ldrsh.w r3, [r3, #38] ; 0x26 - 8020516: b29b uxth r3, r3 - 8020518: 4413 add r3, r2 - 802051a: b29b uxth r3, r3 - 802051c: b21b sxth r3, r3 - 802051e: 82fb strh r3, [r7, #22] + 8020476: f9b7 3016 ldrsh.w r3, [r7, #22] + 802047a: b29a uxth r2, r3 + 802047c: 68bb ldr r3, [r7, #8] + 802047e: f9b3 3026 ldrsh.w r3, [r3, #38] ; 0x26 + 8020482: b29b uxth r3, r3 + 8020484: 4413 add r3, r2 + 8020486: b29b uxth r3, r3 + 8020488: b21b sxth r3, r3 + 802048a: 82fb strh r3, [r7, #22] int32_t inner_w = lv_area_get_width(&area_inner); - 8020520: f107 0318 add.w r3, r7, #24 - 8020524: 4618 mov r0, r3 - 8020526: f7fd fbeb bl 801dd00 - 802052a: 4603 mov r3, r0 - 802052c: 62fb str r3, [r7, #44] ; 0x2c + 802048c: f107 0318 add.w r3, r7, #24 + 8020490: 4618 mov r0, r3 + 8020492: f7fd fbeb bl 801dc6c + 8020496: 4603 mov r3, r0 + 8020498: 62fb str r3, [r7, #44] ; 0x2c int32_t inner_h = lv_area_get_height(&area_inner); - 802052e: f107 0318 add.w r3, r7, #24 - 8020532: 4618 mov r0, r3 - 8020534: f7fd fbfa bl 801dd2c - 8020538: 4603 mov r3, r0 - 802053a: 62bb str r3, [r7, #40] ; 0x28 + 802049a: f107 0318 add.w r3, r7, #24 + 802049e: 4618 mov r0, r3 + 80204a0: f7fd fbfa bl 801dc98 + 80204a4: 4603 mov r3, r0 + 80204a6: 62bb str r3, [r7, #40] ; 0x28 int32_t rin = dsc->radius; - 802053c: 68bb ldr r3, [r7, #8] - 802053e: f9b3 3000 ldrsh.w r3, [r3] - 8020542: 637b str r3, [r7, #52] ; 0x34 + 80204a8: 68bb ldr r3, [r7, #8] + 80204aa: f9b3 3000 ldrsh.w r3, [r3] + 80204ae: 637b str r3, [r7, #52] ; 0x34 int32_t short_side = LV_MIN(inner_w, inner_h); - 8020544: 6aba ldr r2, [r7, #40] ; 0x28 - 8020546: 6afb ldr r3, [r7, #44] ; 0x2c - 8020548: 4293 cmp r3, r2 - 802054a: bfa8 it ge - 802054c: 4613 movge r3, r2 - 802054e: 627b str r3, [r7, #36] ; 0x24 + 80204b0: 6aba ldr r2, [r7, #40] ; 0x28 + 80204b2: 6afb ldr r3, [r7, #44] ; 0x2c + 80204b4: 4293 cmp r3, r2 + 80204b6: bfa8 it ge + 80204b8: 4613 movge r3, r2 + 80204ba: 627b str r3, [r7, #36] ; 0x24 if(rin > short_side >> 1) rin = short_side >> 1; - 8020550: 6a7b ldr r3, [r7, #36] ; 0x24 - 8020552: 105b asrs r3, r3, #1 - 8020554: 6b7a ldr r2, [r7, #52] ; 0x34 - 8020556: 429a cmp r2, r3 - 8020558: dd02 ble.n 8020560 - 802055a: 6a7b ldr r3, [r7, #36] ; 0x24 - 802055c: 105b asrs r3, r3, #1 - 802055e: 637b str r3, [r7, #52] ; 0x34 + 80204bc: 6a7b ldr r3, [r7, #36] ; 0x24 + 80204be: 105b asrs r3, r3, #1 + 80204c0: 6b7a ldr r2, [r7, #52] ; 0x34 + 80204c2: 429a cmp r2, r3 + 80204c4: dd02 ble.n 80204cc + 80204c6: 6a7b ldr r3, [r7, #36] ; 0x24 + 80204c8: 105b asrs r3, r3, #1 + 80204ca: 637b str r3, [r7, #52] ; 0x34 lv_coord_t rout = rin + dsc->outline_width; - 8020560: 68bb ldr r3, [r7, #8] - 8020562: f9b3 3026 ldrsh.w r3, [r3, #38] ; 0x26 - 8020566: b29a uxth r2, r3 - 8020568: 6b7b ldr r3, [r7, #52] ; 0x34 - 802056a: b29b uxth r3, r3 - 802056c: 4413 add r3, r2 - 802056e: b29b uxth r3, r3 - 8020570: 847b strh r3, [r7, #34] ; 0x22 + 80204cc: 68bb ldr r3, [r7, #8] + 80204ce: f9b3 3026 ldrsh.w r3, [r3, #38] ; 0x26 + 80204d2: b29a uxth r2, r3 + 80204d4: 6b7b ldr r3, [r7, #52] ; 0x34 + 80204d6: b29b uxth r3, r3 + 80204d8: 4413 add r3, r2 + 80204da: b29b uxth r3, r3 + 80204dc: 847b strh r3, [r7, #34] ; 0x22 draw_border_generic(draw_ctx, &area_outer, &area_inner, rout, rin, dsc->outline_color, dsc->outline_opa, - 8020572: 6b7b ldr r3, [r7, #52] ; 0x34 - 8020574: b21b sxth r3, r3 - 8020576: 68ba ldr r2, [r7, #8] - 8020578: f892 202a ldrb.w r2, [r2, #42] ; 0x2a + 80204de: 6b7b ldr r3, [r7, #52] ; 0x34 + 80204e0: b21b sxth r3, r3 + 80204e2: 68ba ldr r2, [r7, #8] + 80204e4: f892 202a ldrb.w r2, [r2, #42] ; 0x2a dsc->blend_mode); - 802057c: 68b9 ldr r1, [r7, #8] - 802057e: 7889 ldrb r1, [r1, #2] + 80204e8: 68b9 ldr r1, [r7, #8] + 80204ea: 7889 ldrb r1, [r1, #2] draw_border_generic(draw_ctx, &area_outer, &area_inner, rout, rin, dsc->outline_color, dsc->outline_opa, - 8020580: f9b7 5022 ldrsh.w r5, [r7, #34] ; 0x22 - 8020584: f107 0418 add.w r4, r7, #24 - 8020588: f107 0010 add.w r0, r7, #16 - 802058c: 9103 str r1, [sp, #12] - 802058e: 9202 str r2, [sp, #8] - 8020590: 68ba ldr r2, [r7, #8] - 8020592: 8c92 ldrh r2, [r2, #36] ; 0x24 - 8020594: f8ad 2004 strh.w r2, [sp, #4] - 8020598: 9300 str r3, [sp, #0] - 802059a: 462b mov r3, r5 - 802059c: 4622 mov r2, r4 - 802059e: 4601 mov r1, r0 - 80205a0: 68f8 ldr r0, [r7, #12] - 80205a2: f000 f807 bl 80205b4 - 80205a6: e002 b.n 80205ae + 80204ec: f9b7 5022 ldrsh.w r5, [r7, #34] ; 0x22 + 80204f0: f107 0418 add.w r4, r7, #24 + 80204f4: f107 0010 add.w r0, r7, #16 + 80204f8: 9103 str r1, [sp, #12] + 80204fa: 9202 str r2, [sp, #8] + 80204fc: 68ba ldr r2, [r7, #8] + 80204fe: 8c92 ldrh r2, [r2, #36] ; 0x24 + 8020500: f8ad 2004 strh.w r2, [sp, #4] + 8020504: 9300 str r3, [sp, #0] + 8020506: 462b mov r3, r5 + 8020508: 4622 mov r2, r4 + 802050a: 4601 mov r1, r0 + 802050c: 68f8 ldr r0, [r7, #12] + 802050e: f000 f807 bl 8020520 + 8020512: e002 b.n 802051a if(dsc->outline_opa <= LV_OPA_MIN) return; - 80205a8: bf00 nop - 80205aa: e000 b.n 80205ae + 8020514: bf00 nop + 8020516: e000 b.n 802051a if(dsc->outline_width == 0) return; - 80205ac: bf00 nop + 8020518: bf00 nop } - 80205ae: 3738 adds r7, #56 ; 0x38 - 80205b0: 46bd mov sp, r7 - 80205b2: bdb0 pop {r4, r5, r7, pc} + 802051a: 3738 adds r7, #56 ; 0x38 + 802051c: 46bd mov sp, r7 + 802051e: bdb0 pop {r4, r5, r7, pc} -080205b4 : +08020520 : void draw_border_generic(lv_draw_ctx_t * draw_ctx, const lv_area_t * outer_area, const lv_area_t * inner_area, lv_coord_t rout, lv_coord_t rin, lv_color_t color, lv_opa_t opa, lv_blend_mode_t blend_mode) { - 80205b4: b580 push {r7, lr} - 80205b6: b0a8 sub sp, #160 ; 0xa0 - 80205b8: af02 add r7, sp, #8 - 80205ba: 60f8 str r0, [r7, #12] - 80205bc: 60b9 str r1, [r7, #8] - 80205be: 607a str r2, [r7, #4] - 80205c0: 807b strh r3, [r7, #2] + 8020520: b580 push {r7, lr} + 8020522: b0a8 sub sp, #160 ; 0xa0 + 8020524: af02 add r7, sp, #8 + 8020526: 60f8 str r0, [r7, #12] + 8020528: 60b9 str r1, [r7, #8] + 802052a: 607a str r2, [r7, #4] + 802052c: 807b strh r3, [r7, #2] opa = opa >= LV_OPA_COVER ? LV_OPA_COVER : opa; bool mask_any = lv_draw_mask_is_any(outer_area); - 80205c2: 68b8 ldr r0, [r7, #8] - 80205c4: f7f2 fe6c bl 80132a0 - 80205c8: 4603 mov r3, r0 - 80205ca: f887 308e strb.w r3, [r7, #142] ; 0x8e + 802052e: 68b8 ldr r0, [r7, #8] + 8020530: f7f2 fe6c bl 801320c + 8020534: 4603 mov r3, r0 + 8020536: f887 308e strb.w r3, [r7, #142] ; 0x8e if(!mask_any && rout == 0 && rin == 0) { - 80205ce: f897 308e ldrb.w r3, [r7, #142] ; 0x8e - 80205d2: f083 0301 eor.w r3, r3, #1 - 80205d6: b2db uxtb r3, r3 - 80205d8: 2b00 cmp r3, #0 - 80205da: d012 beq.n 8020602 - 80205dc: f9b7 3002 ldrsh.w r3, [r7, #2] - 80205e0: 2b00 cmp r3, #0 - 80205e2: d10e bne.n 8020602 - 80205e4: f9b7 30a0 ldrsh.w r3, [r7, #160] ; 0xa0 - 80205e8: 2b00 cmp r3, #0 - 80205ea: d10a bne.n 8020602 + 802053a: f897 308e ldrb.w r3, [r7, #142] ; 0x8e + 802053e: f083 0301 eor.w r3, r3, #1 + 8020542: b2db uxtb r3, r3 + 8020544: 2b00 cmp r3, #0 + 8020546: d012 beq.n 802056e + 8020548: f9b7 3002 ldrsh.w r3, [r7, #2] + 802054c: 2b00 cmp r3, #0 + 802054e: d10e bne.n 802056e + 8020550: f9b7 30a0 ldrsh.w r3, [r7, #160] ; 0xa0 + 8020554: 2b00 cmp r3, #0 + 8020556: d10a bne.n 802056e draw_border_simple(draw_ctx, outer_area, inner_area, color, opa); - 80205ec: f897 30a8 ldrb.w r3, [r7, #168] ; 0xa8 - 80205f0: 9300 str r3, [sp, #0] - 80205f2: f8b7 30a4 ldrh.w r3, [r7, #164] ; 0xa4 - 80205f6: 687a ldr r2, [r7, #4] - 80205f8: 68b9 ldr r1, [r7, #8] - 80205fa: 68f8 ldr r0, [r7, #12] - 80205fc: f000 fbb0 bl 8020d60 + 8020558: f897 30a8 ldrb.w r3, [r7, #168] ; 0xa8 + 802055c: 9300 str r3, [sp, #0] + 802055e: f8b7 30a4 ldrh.w r3, [r7, #164] ; 0xa4 + 8020562: 687a ldr r2, [r7, #4] + 8020564: 68b9 ldr r1, [r7, #8] + 8020566: 68f8 ldr r0, [r7, #12] + 8020568: f000 fbb0 bl 8020ccc return; - 8020600: e3ab b.n 8020d5a + 802056c: e3ab b.n 8020cc6 #if LV_DRAW_COMPLEX /*Get clipped draw area which is the real draw area. *It is always the same or inside `coords`*/ lv_area_t draw_area; if(!_lv_area_intersect(&draw_area, outer_area, draw_ctx->clip_area)) return; - 8020602: 68fb ldr r3, [r7, #12] - 8020604: 689a ldr r2, [r3, #8] - 8020606: f107 0370 add.w r3, r7, #112 ; 0x70 - 802060a: 68b9 ldr r1, [r7, #8] - 802060c: 4618 mov r0, r3 - 802060e: f010 fd4b bl 80310a8 <_lv_area_intersect> - 8020612: 4603 mov r3, r0 - 8020614: f083 0301 eor.w r3, r3, #1 - 8020618: b2db uxtb r3, r3 - 802061a: 2b00 cmp r3, #0 - 802061c: f040 839c bne.w 8020d58 + 802056e: 68fb ldr r3, [r7, #12] + 8020570: 689a ldr r2, [r3, #8] + 8020572: f107 0370 add.w r3, r7, #112 ; 0x70 + 8020576: 68b9 ldr r1, [r7, #8] + 8020578: 4618 mov r0, r3 + 802057a: f010 fd4b bl 8031014 <_lv_area_intersect> + 802057e: 4603 mov r3, r0 + 8020580: f083 0301 eor.w r3, r3, #1 + 8020584: b2db uxtb r3, r3 + 8020586: 2b00 cmp r3, #0 + 8020588: f040 839c bne.w 8020cc4 int32_t draw_area_w = lv_area_get_width(&draw_area); - 8020620: f107 0370 add.w r3, r7, #112 ; 0x70 - 8020624: 4618 mov r0, r3 - 8020626: f7fd fb6b bl 801dd00 - 802062a: 4603 mov r3, r0 - 802062c: f8c7 3088 str.w r3, [r7, #136] ; 0x88 + 802058c: f107 0370 add.w r3, r7, #112 ; 0x70 + 8020590: 4618 mov r0, r3 + 8020592: f7fd fb6b bl 801dc6c + 8020596: 4603 mov r3, r0 + 8020598: f8c7 3088 str.w r3, [r7, #136] ; 0x88 lv_draw_sw_blend_dsc_t blend_dsc; lv_memset_00(&blend_dsc, sizeof(blend_dsc)); - 8020630: f107 0354 add.w r3, r7, #84 ; 0x54 - 8020634: 211c movs r1, #28 - 8020636: 4618 mov r0, r3 - 8020638: f012 fd8a bl 8033150 + 802059c: f107 0354 add.w r3, r7, #84 ; 0x54 + 80205a0: 211c movs r1, #28 + 80205a2: 4618 mov r0, r3 + 80205a4: f012 fd8a bl 80330bc blend_dsc.mask_buf = lv_mem_buf_get(draw_area_w);; - 802063c: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8020640: 4618 mov r0, r3 - 8020642: f012 f9dd bl 8032a00 - 8020646: 4603 mov r3, r0 - 8020648: 663b str r3, [r7, #96] ; 0x60 + 80205a8: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 80205ac: 4618 mov r0, r3 + 80205ae: f012 f9dd bl 803296c + 80205b2: 4603 mov r3, r0 + 80205b4: 663b str r3, [r7, #96] ; 0x60 /*Create mask for the outer area*/ int16_t mask_rout_id = LV_MASK_ID_INV; - 802064a: f64f 73ff movw r3, #65535 ; 0xffff - 802064e: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 + 80205b6: f64f 73ff movw r3, #65535 ; 0xffff + 80205ba: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 lv_draw_mask_radius_param_t mask_rout_param; if(rout > 0) { - 8020652: f9b7 3002 ldrsh.w r3, [r7, #2] - 8020656: 2b00 cmp r3, #0 - 8020658: dd10 ble.n 802067c + 80205be: f9b7 3002 ldrsh.w r3, [r7, #2] + 80205c2: 2b00 cmp r3, #0 + 80205c4: dd10 ble.n 80205e8 lv_draw_mask_radius_init(&mask_rout_param, outer_area, rout, false); - 802065a: f9b7 2002 ldrsh.w r2, [r7, #2] - 802065e: f107 003c add.w r0, r7, #60 ; 0x3c - 8020662: 2300 movs r3, #0 - 8020664: 68b9 ldr r1, [r7, #8] - 8020666: f7f3 f8c3 bl 80137f0 + 80205c6: f9b7 2002 ldrsh.w r2, [r7, #2] + 80205ca: f107 003c add.w r0, r7, #60 ; 0x3c + 80205ce: 2300 movs r3, #0 + 80205d0: 68b9 ldr r1, [r7, #8] + 80205d2: f7f3 f8c3 bl 801375c mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL); - 802066a: f107 033c add.w r3, r7, #60 ; 0x3c - 802066e: 2100 movs r1, #0 - 8020670: 4618 mov r0, r3 - 8020672: f7f2 fce7 bl 8013044 - 8020676: 4603 mov r3, r0 - 8020678: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 + 80205d6: f107 033c add.w r3, r7, #60 ; 0x3c + 80205da: 2100 movs r1, #0 + 80205dc: 4618 mov r0, r3 + 80205de: f7f2 fce7 bl 8012fb0 + 80205e2: 4603 mov r3, r0 + 80205e4: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 } /*Create mask for the inner mask*/ lv_draw_mask_radius_param_t mask_rin_param; lv_draw_mask_radius_init(&mask_rin_param, inner_area, rin, true); - 802067c: f9b7 20a0 ldrsh.w r2, [r7, #160] ; 0xa0 - 8020680: f107 0024 add.w r0, r7, #36 ; 0x24 - 8020684: 2301 movs r3, #1 - 8020686: 6879 ldr r1, [r7, #4] - 8020688: f7f3 f8b2 bl 80137f0 + 80205e8: f9b7 20a0 ldrsh.w r2, [r7, #160] ; 0xa0 + 80205ec: f107 0024 add.w r0, r7, #36 ; 0x24 + 80205f0: 2301 movs r3, #1 + 80205f2: 6879 ldr r1, [r7, #4] + 80205f4: f7f3 f8b2 bl 801375c int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL); - 802068c: f107 0324 add.w r3, r7, #36 ; 0x24 - 8020690: 2100 movs r1, #0 - 8020692: 4618 mov r0, r3 - 8020694: f7f2 fcd6 bl 8013044 - 8020698: 4603 mov r3, r0 - 802069a: f8a7 3086 strh.w r3, [r7, #134] ; 0x86 + 80205f8: f107 0324 add.w r3, r7, #36 ; 0x24 + 80205fc: 2100 movs r1, #0 + 80205fe: 4618 mov r0, r3 + 8020600: f7f2 fcd6 bl 8012fb0 + 8020604: 4603 mov r3, r0 + 8020606: f8a7 3086 strh.w r3, [r7, #134] ; 0x86 int32_t h; lv_area_t blend_area; blend_dsc.blend_area = &blend_area; - 802069e: f107 031c add.w r3, r7, #28 - 80206a2: 657b str r3, [r7, #84] ; 0x54 + 802060a: f107 031c add.w r3, r7, #28 + 802060e: 657b str r3, [r7, #84] ; 0x54 blend_dsc.mask_area = &blend_area; - 80206a4: f107 031c add.w r3, r7, #28 - 80206a8: 66bb str r3, [r7, #104] ; 0x68 + 8020610: f107 031c add.w r3, r7, #28 + 8020614: 66bb str r3, [r7, #104] ; 0x68 blend_dsc.color = color; - 80206aa: f8b7 30a4 ldrh.w r3, [r7, #164] ; 0xa4 - 80206ae: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 8020616: f8b7 30a4 ldrh.w r3, [r7, #164] ; 0xa4 + 802061a: f8a7 305c strh.w r3, [r7, #92] ; 0x5c blend_dsc.opa = opa; - 80206b2: f897 30a8 ldrb.w r3, [r7, #168] ; 0xa8 - 80206b6: f887 306c strb.w r3, [r7, #108] ; 0x6c + 802061e: f897 30a8 ldrb.w r3, [r7, #168] ; 0xa8 + 8020622: f887 306c strb.w r3, [r7, #108] ; 0x6c blend_dsc.blend_mode = blend_mode; - 80206ba: f897 30ac ldrb.w r3, [r7, #172] ; 0xac - 80206be: f887 306d strb.w r3, [r7, #109] ; 0x6d + 8020626: f897 30ac ldrb.w r3, [r7, #172] ; 0xac + 802062a: f887 306d strb.w r3, [r7, #109] ; 0x6d /*Calculate the x and y coordinates where the straight parts area*/ lv_area_t core_area; core_area.x1 = LV_MAX(outer_area->x1 + rout, inner_area->x1); - 80206c2: 687b ldr r3, [r7, #4] - 80206c4: f9b3 3000 ldrsh.w r3, [r3] - 80206c8: 461a mov r2, r3 - 80206ca: 68bb ldr r3, [r7, #8] - 80206cc: f9b3 3000 ldrsh.w r3, [r3] - 80206d0: 4619 mov r1, r3 - 80206d2: f9b7 3002 ldrsh.w r3, [r7, #2] - 80206d6: 440b add r3, r1 - 80206d8: 4293 cmp r3, r2 - 80206da: bfb8 it lt - 80206dc: 4613 movlt r3, r2 - 80206de: b21b sxth r3, r3 - 80206e0: 82bb strh r3, [r7, #20] + 802062e: 687b ldr r3, [r7, #4] + 8020630: f9b3 3000 ldrsh.w r3, [r3] + 8020634: 461a mov r2, r3 + 8020636: 68bb ldr r3, [r7, #8] + 8020638: f9b3 3000 ldrsh.w r3, [r3] + 802063c: 4619 mov r1, r3 + 802063e: f9b7 3002 ldrsh.w r3, [r7, #2] + 8020642: 440b add r3, r1 + 8020644: 4293 cmp r3, r2 + 8020646: bfb8 it lt + 8020648: 4613 movlt r3, r2 + 802064a: b21b sxth r3, r3 + 802064c: 82bb strh r3, [r7, #20] core_area.x2 = LV_MIN(outer_area->x2 - rout, inner_area->x2); - 80206e2: 687b ldr r3, [r7, #4] - 80206e4: f9b3 3004 ldrsh.w r3, [r3, #4] - 80206e8: 461a mov r2, r3 - 80206ea: 68bb ldr r3, [r7, #8] - 80206ec: f9b3 3004 ldrsh.w r3, [r3, #4] - 80206f0: 4619 mov r1, r3 - 80206f2: f9b7 3002 ldrsh.w r3, [r7, #2] - 80206f6: 1acb subs r3, r1, r3 - 80206f8: 4293 cmp r3, r2 - 80206fa: bfa8 it ge - 80206fc: 4613 movge r3, r2 - 80206fe: b21b sxth r3, r3 - 8020700: 833b strh r3, [r7, #24] + 802064e: 687b ldr r3, [r7, #4] + 8020650: f9b3 3004 ldrsh.w r3, [r3, #4] + 8020654: 461a mov r2, r3 + 8020656: 68bb ldr r3, [r7, #8] + 8020658: f9b3 3004 ldrsh.w r3, [r3, #4] + 802065c: 4619 mov r1, r3 + 802065e: f9b7 3002 ldrsh.w r3, [r7, #2] + 8020662: 1acb subs r3, r1, r3 + 8020664: 4293 cmp r3, r2 + 8020666: bfa8 it ge + 8020668: 4613 movge r3, r2 + 802066a: b21b sxth r3, r3 + 802066c: 833b strh r3, [r7, #24] core_area.y1 = LV_MAX(outer_area->y1 + rout, inner_area->y1); - 8020702: 687b ldr r3, [r7, #4] - 8020704: f9b3 3002 ldrsh.w r3, [r3, #2] - 8020708: 461a mov r2, r3 - 802070a: 68bb ldr r3, [r7, #8] - 802070c: f9b3 3002 ldrsh.w r3, [r3, #2] - 8020710: 4619 mov r1, r3 - 8020712: f9b7 3002 ldrsh.w r3, [r7, #2] - 8020716: 440b add r3, r1 - 8020718: 4293 cmp r3, r2 - 802071a: bfb8 it lt - 802071c: 4613 movlt r3, r2 - 802071e: b21b sxth r3, r3 - 8020720: 82fb strh r3, [r7, #22] + 802066e: 687b ldr r3, [r7, #4] + 8020670: f9b3 3002 ldrsh.w r3, [r3, #2] + 8020674: 461a mov r2, r3 + 8020676: 68bb ldr r3, [r7, #8] + 8020678: f9b3 3002 ldrsh.w r3, [r3, #2] + 802067c: 4619 mov r1, r3 + 802067e: f9b7 3002 ldrsh.w r3, [r7, #2] + 8020682: 440b add r3, r1 + 8020684: 4293 cmp r3, r2 + 8020686: bfb8 it lt + 8020688: 4613 movlt r3, r2 + 802068a: b21b sxth r3, r3 + 802068c: 82fb strh r3, [r7, #22] core_area.y2 = LV_MIN(outer_area->y2 - rout, inner_area->y2); - 8020722: 687b ldr r3, [r7, #4] - 8020724: f9b3 3006 ldrsh.w r3, [r3, #6] - 8020728: 461a mov r2, r3 - 802072a: 68bb ldr r3, [r7, #8] - 802072c: f9b3 3006 ldrsh.w r3, [r3, #6] - 8020730: 4619 mov r1, r3 - 8020732: f9b7 3002 ldrsh.w r3, [r7, #2] - 8020736: 1acb subs r3, r1, r3 - 8020738: 4293 cmp r3, r2 - 802073a: bfa8 it ge - 802073c: 4613 movge r3, r2 - 802073e: b21b sxth r3, r3 - 8020740: 837b strh r3, [r7, #26] + 802068e: 687b ldr r3, [r7, #4] + 8020690: f9b3 3006 ldrsh.w r3, [r3, #6] + 8020694: 461a mov r2, r3 + 8020696: 68bb ldr r3, [r7, #8] + 8020698: f9b3 3006 ldrsh.w r3, [r3, #6] + 802069c: 4619 mov r1, r3 + 802069e: f9b7 3002 ldrsh.w r3, [r7, #2] + 80206a2: 1acb subs r3, r1, r3 + 80206a4: 4293 cmp r3, r2 + 80206a6: bfa8 it ge + 80206a8: 4613 movge r3, r2 + 80206aa: b21b sxth r3, r3 + 80206ac: 837b strh r3, [r7, #26] lv_coord_t core_w = lv_area_get_width(&core_area); - 8020742: f107 0314 add.w r3, r7, #20 - 8020746: 4618 mov r0, r3 - 8020748: f7fd fada bl 801dd00 - 802074c: 4603 mov r3, r0 - 802074e: f8a7 3084 strh.w r3, [r7, #132] ; 0x84 + 80206ae: f107 0314 add.w r3, r7, #20 + 80206b2: 4618 mov r0, r3 + 80206b4: f7fd fada bl 801dc6c + 80206b8: 4603 mov r3, r0 + 80206ba: f8a7 3084 strh.w r3, [r7, #132] ; 0x84 bool top_side = outer_area->y1 <= inner_area->y1 ? true : false; - 8020752: 68bb ldr r3, [r7, #8] - 8020754: f9b3 2002 ldrsh.w r2, [r3, #2] - 8020758: 687b ldr r3, [r7, #4] - 802075a: f9b3 3002 ldrsh.w r3, [r3, #2] - 802075e: 429a cmp r2, r3 - 8020760: bfd4 ite le - 8020762: 2301 movle r3, #1 - 8020764: 2300 movgt r3, #0 - 8020766: f887 3083 strb.w r3, [r7, #131] ; 0x83 + 80206be: 68bb ldr r3, [r7, #8] + 80206c0: f9b3 2002 ldrsh.w r2, [r3, #2] + 80206c4: 687b ldr r3, [r7, #4] + 80206c6: f9b3 3002 ldrsh.w r3, [r3, #2] + 80206ca: 429a cmp r2, r3 + 80206cc: bfd4 ite le + 80206ce: 2301 movle r3, #1 + 80206d0: 2300 movgt r3, #0 + 80206d2: f887 3083 strb.w r3, [r7, #131] ; 0x83 bool bottom_side = outer_area->y2 >= inner_area->y2 ? true : false; - 802076a: 68bb ldr r3, [r7, #8] - 802076c: f9b3 2006 ldrsh.w r2, [r3, #6] - 8020770: 687b ldr r3, [r7, #4] - 8020772: f9b3 3006 ldrsh.w r3, [r3, #6] - 8020776: 429a cmp r2, r3 - 8020778: bfac ite ge - 802077a: 2301 movge r3, #1 - 802077c: 2300 movlt r3, #0 - 802077e: f887 3082 strb.w r3, [r7, #130] ; 0x82 + 80206d6: 68bb ldr r3, [r7, #8] + 80206d8: f9b3 2006 ldrsh.w r2, [r3, #6] + 80206dc: 687b ldr r3, [r7, #4] + 80206de: f9b3 3006 ldrsh.w r3, [r3, #6] + 80206e2: 429a cmp r2, r3 + 80206e4: bfac ite ge + 80206e6: 2301 movge r3, #1 + 80206e8: 2300 movlt r3, #0 + 80206ea: f887 3082 strb.w r3, [r7, #130] ; 0x82 /*If there is other masks, need to draw line by line*/ if(mask_any) { - 8020782: f897 308e ldrb.w r3, [r7, #142] ; 0x8e - 8020786: 2b00 cmp r3, #0 - 8020788: d077 beq.n 802087a + 80206ee: f897 308e ldrb.w r3, [r7, #142] ; 0x8e + 80206f2: 2b00 cmp r3, #0 + 80206f4: d077 beq.n 80207e6 blend_area.x1 = draw_area.x1; - 802078a: f9b7 3070 ldrsh.w r3, [r7, #112] ; 0x70 - 802078e: 83bb strh r3, [r7, #28] + 80206f6: f9b7 3070 ldrsh.w r3, [r7, #112] ; 0x70 + 80206fa: 83bb strh r3, [r7, #28] blend_area.x2 = draw_area.x2; - 8020790: f9b7 3074 ldrsh.w r3, [r7, #116] ; 0x74 - 8020794: 843b strh r3, [r7, #32] + 80206fc: f9b7 3074 ldrsh.w r3, [r7, #116] ; 0x74 + 8020700: 843b strh r3, [r7, #32] for(h = draw_area.y1; h <= draw_area.y2; h++) { - 8020796: f9b7 3072 ldrsh.w r3, [r7, #114] ; 0x72 - 802079a: f8c7 3090 str.w r3, [r7, #144] ; 0x90 - 802079e: e045 b.n 802082c + 8020702: f9b7 3072 ldrsh.w r3, [r7, #114] ; 0x72 + 8020706: f8c7 3090 str.w r3, [r7, #144] ; 0x90 + 802070a: e045 b.n 8020798 if(!top_side && h < core_area.y1) continue; - 80207a0: f897 3083 ldrb.w r3, [r7, #131] ; 0x83 - 80207a4: f083 0301 eor.w r3, r3, #1 - 80207a8: b2db uxtb r3, r3 - 80207aa: 2b00 cmp r3, #0 - 80207ac: d006 beq.n 80207bc - 80207ae: f9b7 3016 ldrsh.w r3, [r7, #22] - 80207b2: 461a mov r2, r3 - 80207b4: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 80207b8: 4293 cmp r3, r2 - 80207ba: db31 blt.n 8020820 + 802070c: f897 3083 ldrb.w r3, [r7, #131] ; 0x83 + 8020710: f083 0301 eor.w r3, r3, #1 + 8020714: b2db uxtb r3, r3 + 8020716: 2b00 cmp r3, #0 + 8020718: d006 beq.n 8020728 + 802071a: f9b7 3016 ldrsh.w r3, [r7, #22] + 802071e: 461a mov r2, r3 + 8020720: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020724: 4293 cmp r3, r2 + 8020726: db31 blt.n 802078c if(!bottom_side && h > core_area.y2) break; - 80207bc: f897 3082 ldrb.w r3, [r7, #130] ; 0x82 - 80207c0: f083 0301 eor.w r3, r3, #1 - 80207c4: b2db uxtb r3, r3 - 80207c6: 2b00 cmp r3, #0 - 80207c8: d006 beq.n 80207d8 - 80207ca: f9b7 301a ldrsh.w r3, [r7, #26] - 80207ce: 461a mov r2, r3 - 80207d0: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 80207d4: 4293 cmp r3, r2 - 80207d6: dc31 bgt.n 802083c + 8020728: f897 3082 ldrb.w r3, [r7, #130] ; 0x82 + 802072c: f083 0301 eor.w r3, r3, #1 + 8020730: b2db uxtb r3, r3 + 8020732: 2b00 cmp r3, #0 + 8020734: d006 beq.n 8020744 + 8020736: f9b7 301a ldrsh.w r3, [r7, #26] + 802073a: 461a mov r2, r3 + 802073c: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020740: 4293 cmp r3, r2 + 8020742: dc31 bgt.n 80207a8 blend_area.y1 = h; - 80207d8: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 80207dc: b21b sxth r3, r3 - 80207de: 83fb strh r3, [r7, #30] + 8020744: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020748: b21b sxth r3, r3 + 802074a: 83fb strh r3, [r7, #30] blend_area.y2 = h; - 80207e0: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 80207e4: b21b sxth r3, r3 - 80207e6: 847b strh r3, [r7, #34] ; 0x22 + 802074c: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020750: b21b sxth r3, r3 + 8020752: 847b strh r3, [r7, #34] ; 0x22 lv_memset_ff(blend_dsc.mask_buf, draw_area_w); - 80207e8: 6e3b ldr r3, [r7, #96] ; 0x60 - 80207ea: f8d7 2088 ldr.w r2, [r7, #136] ; 0x88 - 80207ee: 4611 mov r1, r2 - 80207f0: 4618 mov r0, r3 - 80207f2: f012 fd2d bl 8033250 + 8020754: 6e3b ldr r3, [r7, #96] ; 0x60 + 8020756: f8d7 2088 ldr.w r2, [r7, #136] ; 0x88 + 802075a: 4611 mov r1, r2 + 802075c: 4618 mov r0, r3 + 802075e: f012 fd2d bl 80331bc blend_dsc.mask_res = lv_draw_mask_apply(blend_dsc.mask_buf, draw_area.x1, h, draw_area_w); - 80207f6: 6e38 ldr r0, [r7, #96] ; 0x60 - 80207f8: f9b7 1070 ldrsh.w r1, [r7, #112] ; 0x70 - 80207fc: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020800: b21a sxth r2, r3 - 8020802: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8020806: b21b sxth r3, r3 - 8020808: f7f2 fc4c bl 80130a4 - 802080c: 4603 mov r3, r0 - 802080e: f887 3064 strb.w r3, [r7, #100] ; 0x64 + 8020762: 6e38 ldr r0, [r7, #96] ; 0x60 + 8020764: f9b7 1070 ldrsh.w r1, [r7, #112] ; 0x70 + 8020768: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 802076c: b21a sxth r2, r3 + 802076e: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8020772: b21b sxth r3, r3 + 8020774: f7f2 fc4c bl 8013010 + 8020778: 4603 mov r3, r0 + 802077a: f887 3064 strb.w r3, [r7, #100] ; 0x64 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 8020812: f107 0354 add.w r3, r7, #84 ; 0x54 - 8020816: 4619 mov r1, r3 - 8020818: 68f8 ldr r0, [r7, #12] - 802081a: f7f9 f93a bl 8019a92 - 802081e: e000 b.n 8020822 + 802077e: f107 0354 add.w r3, r7, #84 ; 0x54 + 8020782: 4619 mov r1, r3 + 8020784: 68f8 ldr r0, [r7, #12] + 8020786: f7f9 f93a bl 80199fe + 802078a: e000 b.n 802078e if(!top_side && h < core_area.y1) continue; - 8020820: bf00 nop + 802078c: bf00 nop for(h = draw_area.y1; h <= draw_area.y2; h++) { - 8020822: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020826: 3301 adds r3, #1 - 8020828: f8c7 3090 str.w r3, [r7, #144] ; 0x90 - 802082c: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 - 8020830: 461a mov r2, r3 - 8020832: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020836: 4293 cmp r3, r2 - 8020838: ddb2 ble.n 80207a0 - 802083a: e000 b.n 802083e + 802078e: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020792: 3301 adds r3, #1 + 8020794: f8c7 3090 str.w r3, [r7, #144] ; 0x90 + 8020798: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 + 802079c: 461a mov r2, r3 + 802079e: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 80207a2: 4293 cmp r3, r2 + 80207a4: ddb2 ble.n 802070c + 80207a6: e000 b.n 80207aa if(!bottom_side && h > core_area.y2) break; - 802083c: bf00 nop + 80207a8: bf00 nop } lv_draw_mask_free_param(&mask_rin_param); - 802083e: f107 0324 add.w r3, r7, #36 ; 0x24 - 8020842: 4618 mov r0, r3 - 8020844: f7f2 fcc2 bl 80131cc + 80207aa: f107 0324 add.w r3, r7, #36 ; 0x24 + 80207ae: 4618 mov r0, r3 + 80207b0: f7f2 fcc2 bl 8013138 lv_draw_mask_remove_id(mask_rin_id); - 8020848: f9b7 3086 ldrsh.w r3, [r7, #134] ; 0x86 - 802084c: 4618 mov r0, r3 - 802084e: f7f2 fc6d bl 801312c + 80207b4: f9b7 3086 ldrsh.w r3, [r7, #134] ; 0x86 + 80207b8: 4618 mov r0, r3 + 80207ba: f7f2 fc6d bl 8013098 if(mask_rout_id != LV_MASK_ID_INV) { - 8020852: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 - 8020856: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 802085a: d009 beq.n 8020870 + 80207be: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 + 80207c2: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 80207c6: d009 beq.n 80207dc lv_draw_mask_free_param(&mask_rout_param); - 802085c: f107 033c add.w r3, r7, #60 ; 0x3c - 8020860: 4618 mov r0, r3 - 8020862: f7f2 fcb3 bl 80131cc + 80207c8: f107 033c add.w r3, r7, #60 ; 0x3c + 80207cc: 4618 mov r0, r3 + 80207ce: f7f2 fcb3 bl 8013138 lv_draw_mask_remove_id(mask_rout_id); - 8020866: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 - 802086a: 4618 mov r0, r3 - 802086c: f7f2 fc5e bl 801312c + 80207d2: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 + 80207d6: 4618 mov r0, r3 + 80207d8: f7f2 fc5e bl 8013098 } lv_mem_buf_release(blend_dsc.mask_buf); - 8020870: 6e3b ldr r3, [r7, #96] ; 0x60 - 8020872: 4618 mov r0, r3 - 8020874: f012 f970 bl 8032b58 + 80207dc: 6e3b ldr r3, [r7, #96] ; 0x60 + 80207de: 4618 mov r0, r3 + 80207e0: f012 f970 bl 8032ac4 return; - 8020878: e26f b.n 8020d5a + 80207e4: e26f b.n 8020cc6 } /*No masks*/ bool left_side = outer_area->x1 <= inner_area->x1 ? true : false; - 802087a: 68bb ldr r3, [r7, #8] - 802087c: f9b3 2000 ldrsh.w r2, [r3] - 8020880: 687b ldr r3, [r7, #4] - 8020882: f9b3 3000 ldrsh.w r3, [r3] - 8020886: 429a cmp r2, r3 - 8020888: bfd4 ite le - 802088a: 2301 movle r3, #1 - 802088c: 2300 movgt r3, #0 - 802088e: f887 3081 strb.w r3, [r7, #129] ; 0x81 + 80207e6: 68bb ldr r3, [r7, #8] + 80207e8: f9b3 2000 ldrsh.w r2, [r3] + 80207ec: 687b ldr r3, [r7, #4] + 80207ee: f9b3 3000 ldrsh.w r3, [r3] + 80207f2: 429a cmp r2, r3 + 80207f4: bfd4 ite le + 80207f6: 2301 movle r3, #1 + 80207f8: 2300 movgt r3, #0 + 80207fa: f887 3081 strb.w r3, [r7, #129] ; 0x81 bool right_side = outer_area->x2 >= inner_area->x2 ? true : false; - 8020892: 68bb ldr r3, [r7, #8] - 8020894: f9b3 2004 ldrsh.w r2, [r3, #4] - 8020898: 687b ldr r3, [r7, #4] - 802089a: f9b3 3004 ldrsh.w r3, [r3, #4] - 802089e: 429a cmp r2, r3 - 80208a0: bfac ite ge - 80208a2: 2301 movge r3, #1 - 80208a4: 2300 movlt r3, #0 - 80208a6: f887 3080 strb.w r3, [r7, #128] ; 0x80 + 80207fe: 68bb ldr r3, [r7, #8] + 8020800: f9b3 2004 ldrsh.w r2, [r3, #4] + 8020804: 687b ldr r3, [r7, #4] + 8020806: f9b3 3004 ldrsh.w r3, [r3, #4] + 802080a: 429a cmp r2, r3 + 802080c: bfac ite ge + 802080e: 2301 movge r3, #1 + 8020810: 2300 movlt r3, #0 + 8020812: f887 3080 strb.w r3, [r7, #128] ; 0x80 bool split_hor = true; - 80208aa: 2301 movs r3, #1 - 80208ac: f887 308f strb.w r3, [r7, #143] ; 0x8f + 8020816: 2301 movs r3, #1 + 8020818: f887 308f strb.w r3, [r7, #143] ; 0x8f if(left_side && right_side && top_side && bottom_side && - 80208b0: f897 3081 ldrb.w r3, [r7, #129] ; 0x81 - 80208b4: 2b00 cmp r3, #0 - 80208b6: d012 beq.n 80208de - 80208b8: f897 3080 ldrb.w r3, [r7, #128] ; 0x80 - 80208bc: 2b00 cmp r3, #0 - 80208be: d00e beq.n 80208de - 80208c0: f897 3083 ldrb.w r3, [r7, #131] ; 0x83 - 80208c4: 2b00 cmp r3, #0 - 80208c6: d00a beq.n 80208de - 80208c8: f897 3082 ldrb.w r3, [r7, #130] ; 0x82 - 80208cc: 2b00 cmp r3, #0 - 80208ce: d006 beq.n 80208de - 80208d0: f9b7 3084 ldrsh.w r3, [r7, #132] ; 0x84 - 80208d4: 2b31 cmp r3, #49 ; 0x31 - 80208d6: dc02 bgt.n 80208de + 802081c: f897 3081 ldrb.w r3, [r7, #129] ; 0x81 + 8020820: 2b00 cmp r3, #0 + 8020822: d012 beq.n 802084a + 8020824: f897 3080 ldrb.w r3, [r7, #128] ; 0x80 + 8020828: 2b00 cmp r3, #0 + 802082a: d00e beq.n 802084a + 802082c: f897 3083 ldrb.w r3, [r7, #131] ; 0x83 + 8020830: 2b00 cmp r3, #0 + 8020832: d00a beq.n 802084a + 8020834: f897 3082 ldrb.w r3, [r7, #130] ; 0x82 + 8020838: 2b00 cmp r3, #0 + 802083a: d006 beq.n 802084a + 802083c: f9b7 3084 ldrsh.w r3, [r7, #132] ; 0x84 + 8020840: 2b31 cmp r3, #49 ; 0x31 + 8020842: dc02 bgt.n 802084a core_w < SPLIT_LIMIT) { split_hor = false; - 80208d8: 2300 movs r3, #0 - 80208da: f887 308f strb.w r3, [r7, #143] ; 0x8f + 8020844: 2300 movs r3, #0 + 8020846: f887 308f strb.w r3, [r7, #143] ; 0x8f } blend_dsc.mask_res = LV_DRAW_MASK_RES_FULL_COVER; - 80208de: 2301 movs r3, #1 - 80208e0: f887 3064 strb.w r3, [r7, #100] ; 0x64 + 802084a: 2301 movs r3, #1 + 802084c: f887 3064 strb.w r3, [r7, #100] ; 0x64 /*Draw the straight lines first if they are long enough*/ if(top_side && split_hor) { - 80208e4: f897 3083 ldrb.w r3, [r7, #131] ; 0x83 - 80208e8: 2b00 cmp r3, #0 - 80208ea: d01b beq.n 8020924 - 80208ec: f897 308f ldrb.w r3, [r7, #143] ; 0x8f - 80208f0: 2b00 cmp r3, #0 - 80208f2: d017 beq.n 8020924 + 8020850: f897 3083 ldrb.w r3, [r7, #131] ; 0x83 + 8020854: 2b00 cmp r3, #0 + 8020856: d01b beq.n 8020890 + 8020858: f897 308f ldrb.w r3, [r7, #143] ; 0x8f + 802085c: 2b00 cmp r3, #0 + 802085e: d017 beq.n 8020890 blend_area.x1 = core_area.x1; - 80208f4: f9b7 3014 ldrsh.w r3, [r7, #20] - 80208f8: 83bb strh r3, [r7, #28] + 8020860: f9b7 3014 ldrsh.w r3, [r7, #20] + 8020864: 83bb strh r3, [r7, #28] blend_area.x2 = core_area.x2; - 80208fa: f9b7 3018 ldrsh.w r3, [r7, #24] - 80208fe: 843b strh r3, [r7, #32] + 8020866: f9b7 3018 ldrsh.w r3, [r7, #24] + 802086a: 843b strh r3, [r7, #32] blend_area.y1 = outer_area->y1; - 8020900: 68bb ldr r3, [r7, #8] - 8020902: f9b3 3002 ldrsh.w r3, [r3, #2] - 8020906: 83fb strh r3, [r7, #30] + 802086c: 68bb ldr r3, [r7, #8] + 802086e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8020872: 83fb strh r3, [r7, #30] blend_area.y2 = inner_area->y1 - 1; - 8020908: 687b ldr r3, [r7, #4] - 802090a: f9b3 3002 ldrsh.w r3, [r3, #2] - 802090e: b29b uxth r3, r3 - 8020910: 3b01 subs r3, #1 - 8020912: b29b uxth r3, r3 - 8020914: b21b sxth r3, r3 - 8020916: 847b strh r3, [r7, #34] ; 0x22 + 8020874: 687b ldr r3, [r7, #4] + 8020876: f9b3 3002 ldrsh.w r3, [r3, #2] + 802087a: b29b uxth r3, r3 + 802087c: 3b01 subs r3, #1 + 802087e: b29b uxth r3, r3 + 8020880: b21b sxth r3, r3 + 8020882: 847b strh r3, [r7, #34] ; 0x22 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 8020918: f107 0354 add.w r3, r7, #84 ; 0x54 - 802091c: 4619 mov r1, r3 - 802091e: 68f8 ldr r0, [r7, #12] - 8020920: f7f9 f8b7 bl 8019a92 + 8020884: f107 0354 add.w r3, r7, #84 ; 0x54 + 8020888: 4619 mov r1, r3 + 802088a: 68f8 ldr r0, [r7, #12] + 802088c: f7f9 f8b7 bl 80199fe } if(bottom_side && split_hor) { - 8020924: f897 3082 ldrb.w r3, [r7, #130] ; 0x82 - 8020928: 2b00 cmp r3, #0 - 802092a: d01b beq.n 8020964 - 802092c: f897 308f ldrb.w r3, [r7, #143] ; 0x8f - 8020930: 2b00 cmp r3, #0 - 8020932: d017 beq.n 8020964 + 8020890: f897 3082 ldrb.w r3, [r7, #130] ; 0x82 + 8020894: 2b00 cmp r3, #0 + 8020896: d01b beq.n 80208d0 + 8020898: f897 308f ldrb.w r3, [r7, #143] ; 0x8f + 802089c: 2b00 cmp r3, #0 + 802089e: d017 beq.n 80208d0 blend_area.x1 = core_area.x1; - 8020934: f9b7 3014 ldrsh.w r3, [r7, #20] - 8020938: 83bb strh r3, [r7, #28] + 80208a0: f9b7 3014 ldrsh.w r3, [r7, #20] + 80208a4: 83bb strh r3, [r7, #28] blend_area.x2 = core_area.x2; - 802093a: f9b7 3018 ldrsh.w r3, [r7, #24] - 802093e: 843b strh r3, [r7, #32] + 80208a6: f9b7 3018 ldrsh.w r3, [r7, #24] + 80208aa: 843b strh r3, [r7, #32] blend_area.y1 = inner_area->y2 + 1; - 8020940: 687b ldr r3, [r7, #4] - 8020942: f9b3 3006 ldrsh.w r3, [r3, #6] - 8020946: b29b uxth r3, r3 - 8020948: 3301 adds r3, #1 - 802094a: b29b uxth r3, r3 - 802094c: b21b sxth r3, r3 - 802094e: 83fb strh r3, [r7, #30] + 80208ac: 687b ldr r3, [r7, #4] + 80208ae: f9b3 3006 ldrsh.w r3, [r3, #6] + 80208b2: b29b uxth r3, r3 + 80208b4: 3301 adds r3, #1 + 80208b6: b29b uxth r3, r3 + 80208b8: b21b sxth r3, r3 + 80208ba: 83fb strh r3, [r7, #30] blend_area.y2 = outer_area->y2; - 8020950: 68bb ldr r3, [r7, #8] - 8020952: f9b3 3006 ldrsh.w r3, [r3, #6] - 8020956: 847b strh r3, [r7, #34] ; 0x22 + 80208bc: 68bb ldr r3, [r7, #8] + 80208be: f9b3 3006 ldrsh.w r3, [r3, #6] + 80208c2: 847b strh r3, [r7, #34] ; 0x22 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 8020958: f107 0354 add.w r3, r7, #84 ; 0x54 - 802095c: 4619 mov r1, r3 - 802095e: 68f8 ldr r0, [r7, #12] - 8020960: f7f9 f897 bl 8019a92 + 80208c4: f107 0354 add.w r3, r7, #84 ; 0x54 + 80208c8: 4619 mov r1, r3 + 80208ca: 68f8 ldr r0, [r7, #12] + 80208cc: f7f9 f897 bl 80199fe } if(left_side) { - 8020964: f897 3081 ldrb.w r3, [r7, #129] ; 0x81 - 8020968: 2b00 cmp r3, #0 - 802096a: d017 beq.n 802099c + 80208d0: f897 3081 ldrb.w r3, [r7, #129] ; 0x81 + 80208d4: 2b00 cmp r3, #0 + 80208d6: d017 beq.n 8020908 blend_area.x1 = outer_area->x1; - 802096c: 68bb ldr r3, [r7, #8] - 802096e: f9b3 3000 ldrsh.w r3, [r3] - 8020972: 83bb strh r3, [r7, #28] + 80208d8: 68bb ldr r3, [r7, #8] + 80208da: f9b3 3000 ldrsh.w r3, [r3] + 80208de: 83bb strh r3, [r7, #28] blend_area.x2 = inner_area->x1 - 1; - 8020974: 687b ldr r3, [r7, #4] - 8020976: f9b3 3000 ldrsh.w r3, [r3] - 802097a: b29b uxth r3, r3 - 802097c: 3b01 subs r3, #1 - 802097e: b29b uxth r3, r3 - 8020980: b21b sxth r3, r3 - 8020982: 843b strh r3, [r7, #32] + 80208e0: 687b ldr r3, [r7, #4] + 80208e2: f9b3 3000 ldrsh.w r3, [r3] + 80208e6: b29b uxth r3, r3 + 80208e8: 3b01 subs r3, #1 + 80208ea: b29b uxth r3, r3 + 80208ec: b21b sxth r3, r3 + 80208ee: 843b strh r3, [r7, #32] blend_area.y1 = core_area.y1; - 8020984: f9b7 3016 ldrsh.w r3, [r7, #22] - 8020988: 83fb strh r3, [r7, #30] + 80208f0: f9b7 3016 ldrsh.w r3, [r7, #22] + 80208f4: 83fb strh r3, [r7, #30] blend_area.y2 = core_area.y2; - 802098a: f9b7 301a ldrsh.w r3, [r7, #26] - 802098e: 847b strh r3, [r7, #34] ; 0x22 + 80208f6: f9b7 301a ldrsh.w r3, [r7, #26] + 80208fa: 847b strh r3, [r7, #34] ; 0x22 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 8020990: f107 0354 add.w r3, r7, #84 ; 0x54 - 8020994: 4619 mov r1, r3 - 8020996: 68f8 ldr r0, [r7, #12] - 8020998: f7f9 f87b bl 8019a92 + 80208fc: f107 0354 add.w r3, r7, #84 ; 0x54 + 8020900: 4619 mov r1, r3 + 8020902: 68f8 ldr r0, [r7, #12] + 8020904: f7f9 f87b bl 80199fe } if(right_side) { - 802099c: f897 3080 ldrb.w r3, [r7, #128] ; 0x80 - 80209a0: 2b00 cmp r3, #0 - 80209a2: d017 beq.n 80209d4 + 8020908: f897 3080 ldrb.w r3, [r7, #128] ; 0x80 + 802090c: 2b00 cmp r3, #0 + 802090e: d017 beq.n 8020940 blend_area.x1 = inner_area->x2 + 1; - 80209a4: 687b ldr r3, [r7, #4] - 80209a6: f9b3 3004 ldrsh.w r3, [r3, #4] - 80209aa: b29b uxth r3, r3 - 80209ac: 3301 adds r3, #1 - 80209ae: b29b uxth r3, r3 - 80209b0: b21b sxth r3, r3 - 80209b2: 83bb strh r3, [r7, #28] + 8020910: 687b ldr r3, [r7, #4] + 8020912: f9b3 3004 ldrsh.w r3, [r3, #4] + 8020916: b29b uxth r3, r3 + 8020918: 3301 adds r3, #1 + 802091a: b29b uxth r3, r3 + 802091c: b21b sxth r3, r3 + 802091e: 83bb strh r3, [r7, #28] blend_area.x2 = outer_area->x2; - 80209b4: 68bb ldr r3, [r7, #8] - 80209b6: f9b3 3004 ldrsh.w r3, [r3, #4] - 80209ba: 843b strh r3, [r7, #32] + 8020920: 68bb ldr r3, [r7, #8] + 8020922: f9b3 3004 ldrsh.w r3, [r3, #4] + 8020926: 843b strh r3, [r7, #32] blend_area.y1 = core_area.y1; - 80209bc: f9b7 3016 ldrsh.w r3, [r7, #22] - 80209c0: 83fb strh r3, [r7, #30] + 8020928: f9b7 3016 ldrsh.w r3, [r7, #22] + 802092c: 83fb strh r3, [r7, #30] blend_area.y2 = core_area.y2; - 80209c2: f9b7 301a ldrsh.w r3, [r7, #26] - 80209c6: 847b strh r3, [r7, #34] ; 0x22 + 802092e: f9b7 301a ldrsh.w r3, [r7, #26] + 8020932: 847b strh r3, [r7, #34] ; 0x22 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 80209c8: f107 0354 add.w r3, r7, #84 ; 0x54 - 80209cc: 4619 mov r1, r3 - 80209ce: 68f8 ldr r0, [r7, #12] - 80209d0: f7f9 f85f bl 8019a92 + 8020934: f107 0354 add.w r3, r7, #84 ; 0x54 + 8020938: 4619 mov r1, r3 + 802093a: 68f8 ldr r0, [r7, #12] + 802093c: f7f9 f85f bl 80199fe /*Draw the corners*/ lv_coord_t blend_w; /*Left and right corner together is they close to eachother*/ if(!split_hor) { - 80209d4: f897 308f ldrb.w r3, [r7, #143] ; 0x8f - 80209d8: f083 0301 eor.w r3, r3, #1 - 80209dc: b2db uxtb r3, r3 - 80209de: 2b00 cmp r3, #0 - 80209e0: f000 8081 beq.w 8020ae6 + 8020940: f897 308f ldrb.w r3, [r7, #143] ; 0x8f + 8020944: f083 0301 eor.w r3, r3, #1 + 8020948: b2db uxtb r3, r3 + 802094a: 2b00 cmp r3, #0 + 802094c: f000 8081 beq.w 8020a52 /*Calculate the top corner and mirror it to the bottom*/ blend_area.x1 = draw_area.x1; - 80209e4: f9b7 3070 ldrsh.w r3, [r7, #112] ; 0x70 - 80209e8: 83bb strh r3, [r7, #28] + 8020950: f9b7 3070 ldrsh.w r3, [r7, #112] ; 0x70 + 8020954: 83bb strh r3, [r7, #28] blend_area.x2 = draw_area.x2; - 80209ea: f9b7 3074 ldrsh.w r3, [r7, #116] ; 0x74 - 80209ee: 843b strh r3, [r7, #32] + 8020956: f9b7 3074 ldrsh.w r3, [r7, #116] ; 0x74 + 802095a: 843b strh r3, [r7, #32] lv_coord_t max_h = LV_MAX(rout, outer_area->y1 - inner_area->y1); - 80209f0: 68bb ldr r3, [r7, #8] - 80209f2: f9b3 3002 ldrsh.w r3, [r3, #2] - 80209f6: 461a mov r2, r3 - 80209f8: 687b ldr r3, [r7, #4] - 80209fa: f9b3 3002 ldrsh.w r3, [r3, #2] - 80209fe: 1ad2 subs r2, r2, r3 - 8020a00: f9b7 3002 ldrsh.w r3, [r7, #2] - 8020a04: 4293 cmp r3, r2 - 8020a06: bfb8 it lt - 8020a08: 4613 movlt r3, r2 - 8020a0a: f8a7 307c strh.w r3, [r7, #124] ; 0x7c + 802095c: 68bb ldr r3, [r7, #8] + 802095e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8020962: 461a mov r2, r3 + 8020964: 687b ldr r3, [r7, #4] + 8020966: f9b3 3002 ldrsh.w r3, [r3, #2] + 802096a: 1ad2 subs r2, r2, r3 + 802096c: f9b7 3002 ldrsh.w r3, [r7, #2] + 8020970: 4293 cmp r3, r2 + 8020972: bfb8 it lt + 8020974: 4613 movlt r3, r2 + 8020976: f8a7 307c strh.w r3, [r7, #124] ; 0x7c for(h = 0; h < max_h; h++) { - 8020a0e: 2300 movs r3, #0 - 8020a10: f8c7 3090 str.w r3, [r7, #144] ; 0x90 - 8020a14: e060 b.n 8020ad8 + 802097a: 2300 movs r3, #0 + 802097c: f8c7 3090 str.w r3, [r7, #144] ; 0x90 + 8020980: e060 b.n 8020a44 lv_coord_t top_y = outer_area->y1 + h; - 8020a16: 68bb ldr r3, [r7, #8] - 8020a18: f9b3 3002 ldrsh.w r3, [r3, #2] - 8020a1c: b29a uxth r2, r3 - 8020a1e: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020a22: b29b uxth r3, r3 - 8020a24: 4413 add r3, r2 - 8020a26: b29b uxth r3, r3 - 8020a28: f8a7 307a strh.w r3, [r7, #122] ; 0x7a + 8020982: 68bb ldr r3, [r7, #8] + 8020984: f9b3 3002 ldrsh.w r3, [r3, #2] + 8020988: b29a uxth r2, r3 + 802098a: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 802098e: b29b uxth r3, r3 + 8020990: 4413 add r3, r2 + 8020992: b29b uxth r3, r3 + 8020994: f8a7 307a strh.w r3, [r7, #122] ; 0x7a lv_coord_t bottom_y = outer_area->y2 - h; - 8020a2c: 68bb ldr r3, [r7, #8] - 8020a2e: f9b3 3006 ldrsh.w r3, [r3, #6] - 8020a32: b29a uxth r2, r3 - 8020a34: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020a38: b29b uxth r3, r3 - 8020a3a: 1ad3 subs r3, r2, r3 - 8020a3c: b29b uxth r3, r3 - 8020a3e: f8a7 3078 strh.w r3, [r7, #120] ; 0x78 + 8020998: 68bb ldr r3, [r7, #8] + 802099a: f9b3 3006 ldrsh.w r3, [r3, #6] + 802099e: b29a uxth r2, r3 + 80209a0: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 80209a4: b29b uxth r3, r3 + 80209a6: 1ad3 subs r3, r2, r3 + 80209a8: b29b uxth r3, r3 + 80209aa: f8a7 3078 strh.w r3, [r7, #120] ; 0x78 if(top_y < draw_area.y1 && bottom_y > draw_area.y2) continue; /*This line is clipped now*/ - 8020a42: f9b7 3072 ldrsh.w r3, [r7, #114] ; 0x72 - 8020a46: f9b7 207a ldrsh.w r2, [r7, #122] ; 0x7a - 8020a4a: 429a cmp r2, r3 - 8020a4c: da05 bge.n 8020a5a - 8020a4e: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 - 8020a52: f9b7 2078 ldrsh.w r2, [r7, #120] ; 0x78 - 8020a56: 429a cmp r2, r3 - 8020a58: dc38 bgt.n 8020acc + 80209ae: f9b7 3072 ldrsh.w r3, [r7, #114] ; 0x72 + 80209b2: f9b7 207a ldrsh.w r2, [r7, #122] ; 0x7a + 80209b6: 429a cmp r2, r3 + 80209b8: da05 bge.n 80209c6 + 80209ba: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 + 80209be: f9b7 2078 ldrsh.w r2, [r7, #120] ; 0x78 + 80209c2: 429a cmp r2, r3 + 80209c4: dc38 bgt.n 8020a38 lv_memset_ff(blend_dsc.mask_buf, draw_area_w); - 8020a5a: 6e3b ldr r3, [r7, #96] ; 0x60 - 8020a5c: f8d7 2088 ldr.w r2, [r7, #136] ; 0x88 - 8020a60: 4611 mov r1, r2 - 8020a62: 4618 mov r0, r3 - 8020a64: f012 fbf4 bl 8033250 + 80209c6: 6e3b ldr r3, [r7, #96] ; 0x60 + 80209c8: f8d7 2088 ldr.w r2, [r7, #136] ; 0x88 + 80209cc: 4611 mov r1, r2 + 80209ce: 4618 mov r0, r3 + 80209d0: f012 fbf4 bl 80331bc blend_dsc.mask_res = lv_draw_mask_apply(blend_dsc.mask_buf, blend_area.x1, top_y, draw_area_w); - 8020a68: 6e38 ldr r0, [r7, #96] ; 0x60 - 8020a6a: f9b7 101c ldrsh.w r1, [r7, #28] - 8020a6e: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8020a72: b21b sxth r3, r3 - 8020a74: f9b7 207a ldrsh.w r2, [r7, #122] ; 0x7a - 8020a78: f7f2 fb14 bl 80130a4 - 8020a7c: 4603 mov r3, r0 - 8020a7e: f887 3064 strb.w r3, [r7, #100] ; 0x64 + 80209d4: 6e38 ldr r0, [r7, #96] ; 0x60 + 80209d6: f9b7 101c ldrsh.w r1, [r7, #28] + 80209da: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 80209de: b21b sxth r3, r3 + 80209e0: f9b7 207a ldrsh.w r2, [r7, #122] ; 0x7a + 80209e4: f7f2 fb14 bl 8013010 + 80209e8: 4603 mov r3, r0 + 80209ea: f887 3064 strb.w r3, [r7, #100] ; 0x64 if(top_y >= draw_area.y1) { - 8020a82: f9b7 3072 ldrsh.w r3, [r7, #114] ; 0x72 - 8020a86: f9b7 207a ldrsh.w r2, [r7, #122] ; 0x7a - 8020a8a: 429a cmp r2, r3 - 8020a8c: db0b blt.n 8020aa6 + 80209ee: f9b7 3072 ldrsh.w r3, [r7, #114] ; 0x72 + 80209f2: f9b7 207a ldrsh.w r2, [r7, #122] ; 0x7a + 80209f6: 429a cmp r2, r3 + 80209f8: db0b blt.n 8020a12 blend_area.y1 = top_y; - 8020a8e: f8b7 307a ldrh.w r3, [r7, #122] ; 0x7a - 8020a92: 83fb strh r3, [r7, #30] + 80209fa: f8b7 307a ldrh.w r3, [r7, #122] ; 0x7a + 80209fe: 83fb strh r3, [r7, #30] blend_area.y2 = top_y; - 8020a94: f8b7 307a ldrh.w r3, [r7, #122] ; 0x7a - 8020a98: 847b strh r3, [r7, #34] ; 0x22 + 8020a00: f8b7 307a ldrh.w r3, [r7, #122] ; 0x7a + 8020a04: 847b strh r3, [r7, #34] ; 0x22 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 8020a9a: f107 0354 add.w r3, r7, #84 ; 0x54 - 8020a9e: 4619 mov r1, r3 - 8020aa0: 68f8 ldr r0, [r7, #12] - 8020aa2: f7f8 fff6 bl 8019a92 + 8020a06: f107 0354 add.w r3, r7, #84 ; 0x54 + 8020a0a: 4619 mov r1, r3 + 8020a0c: 68f8 ldr r0, [r7, #12] + 8020a0e: f7f8 fff6 bl 80199fe } if(bottom_y <= draw_area.y2) { - 8020aa6: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 - 8020aaa: f9b7 2078 ldrsh.w r2, [r7, #120] ; 0x78 - 8020aae: 429a cmp r2, r3 - 8020ab0: dc0d bgt.n 8020ace + 8020a12: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 + 8020a16: f9b7 2078 ldrsh.w r2, [r7, #120] ; 0x78 + 8020a1a: 429a cmp r2, r3 + 8020a1c: dc0d bgt.n 8020a3a blend_area.y1 = bottom_y; - 8020ab2: f8b7 3078 ldrh.w r3, [r7, #120] ; 0x78 - 8020ab6: 83fb strh r3, [r7, #30] + 8020a1e: f8b7 3078 ldrh.w r3, [r7, #120] ; 0x78 + 8020a22: 83fb strh r3, [r7, #30] blend_area.y2 = bottom_y; - 8020ab8: f8b7 3078 ldrh.w r3, [r7, #120] ; 0x78 - 8020abc: 847b strh r3, [r7, #34] ; 0x22 + 8020a24: f8b7 3078 ldrh.w r3, [r7, #120] ; 0x78 + 8020a28: 847b strh r3, [r7, #34] ; 0x22 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 8020abe: f107 0354 add.w r3, r7, #84 ; 0x54 - 8020ac2: 4619 mov r1, r3 - 8020ac4: 68f8 ldr r0, [r7, #12] - 8020ac6: f7f8 ffe4 bl 8019a92 - 8020aca: e000 b.n 8020ace + 8020a2a: f107 0354 add.w r3, r7, #84 ; 0x54 + 8020a2e: 4619 mov r1, r3 + 8020a30: 68f8 ldr r0, [r7, #12] + 8020a32: f7f8 ffe4 bl 80199fe + 8020a36: e000 b.n 8020a3a if(top_y < draw_area.y1 && bottom_y > draw_area.y2) continue; /*This line is clipped now*/ - 8020acc: bf00 nop + 8020a38: bf00 nop for(h = 0; h < max_h; h++) { - 8020ace: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020ad2: 3301 adds r3, #1 - 8020ad4: f8c7 3090 str.w r3, [r7, #144] ; 0x90 - 8020ad8: f9b7 307c ldrsh.w r3, [r7, #124] ; 0x7c - 8020adc: f8d7 2090 ldr.w r2, [r7, #144] ; 0x90 - 8020ae0: 429a cmp r2, r3 - 8020ae2: db98 blt.n 8020a16 - 8020ae4: e11f b.n 8020d26 + 8020a3a: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020a3e: 3301 adds r3, #1 + 8020a40: f8c7 3090 str.w r3, [r7, #144] ; 0x90 + 8020a44: f9b7 307c ldrsh.w r3, [r7, #124] ; 0x7c + 8020a48: f8d7 2090 ldr.w r2, [r7, #144] ; 0x90 + 8020a4c: 429a cmp r2, r3 + 8020a4e: db98 blt.n 8020982 + 8020a50: e11f b.n 8020c92 } } } else { /*Left corners*/ blend_area.x1 = draw_area.x1; - 8020ae6: f9b7 3070 ldrsh.w r3, [r7, #112] ; 0x70 - 8020aea: 83bb strh r3, [r7, #28] + 8020a52: f9b7 3070 ldrsh.w r3, [r7, #112] ; 0x70 + 8020a56: 83bb strh r3, [r7, #28] blend_area.x2 = LV_MIN(draw_area.x2, core_area.x1 - 1); - 8020aec: f9b7 3014 ldrsh.w r3, [r7, #20] - 8020af0: 3b01 subs r3, #1 - 8020af2: f9b7 2074 ldrsh.w r2, [r7, #116] ; 0x74 - 8020af6: 4293 cmp r3, r2 - 8020af8: bfa8 it ge - 8020afa: 4613 movge r3, r2 - 8020afc: b21b sxth r3, r3 - 8020afe: 843b strh r3, [r7, #32] + 8020a58: f9b7 3014 ldrsh.w r3, [r7, #20] + 8020a5c: 3b01 subs r3, #1 + 8020a5e: f9b7 2074 ldrsh.w r2, [r7, #116] ; 0x74 + 8020a62: 4293 cmp r3, r2 + 8020a64: bfa8 it ge + 8020a66: 4613 movge r3, r2 + 8020a68: b21b sxth r3, r3 + 8020a6a: 843b strh r3, [r7, #32] blend_w = lv_area_get_width(&blend_area); - 8020b00: f107 031c add.w r3, r7, #28 - 8020b04: 4618 mov r0, r3 - 8020b06: f7fd f8fb bl 801dd00 - 8020b0a: 4603 mov r3, r0 - 8020b0c: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 8020a6c: f107 031c add.w r3, r7, #28 + 8020a70: 4618 mov r0, r3 + 8020a72: f7fd f8fb bl 801dc6c + 8020a76: 4603 mov r3, r0 + 8020a78: f8a7 307e strh.w r3, [r7, #126] ; 0x7e if(blend_w > 0) { - 8020b10: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e - 8020b14: 2b00 cmp r3, #0 - 8020b16: dd76 ble.n 8020c06 + 8020a7c: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e + 8020a80: 2b00 cmp r3, #0 + 8020a82: dd76 ble.n 8020b72 if(left_side || top_side) { - 8020b18: f897 3081 ldrb.w r3, [r7, #129] ; 0x81 - 8020b1c: 2b00 cmp r3, #0 - 8020b1e: d103 bne.n 8020b28 - 8020b20: f897 3083 ldrb.w r3, [r7, #131] ; 0x83 - 8020b24: 2b00 cmp r3, #0 - 8020b26: d032 beq.n 8020b8e + 8020a84: f897 3081 ldrb.w r3, [r7, #129] ; 0x81 + 8020a88: 2b00 cmp r3, #0 + 8020a8a: d103 bne.n 8020a94 + 8020a8c: f897 3083 ldrb.w r3, [r7, #131] ; 0x83 + 8020a90: 2b00 cmp r3, #0 + 8020a92: d032 beq.n 8020afa for(h = draw_area.y1; h < core_area.y1; h++) { - 8020b28: f9b7 3072 ldrsh.w r3, [r7, #114] ; 0x72 - 8020b2c: f8c7 3090 str.w r3, [r7, #144] ; 0x90 - 8020b30: e026 b.n 8020b80 + 8020a94: f9b7 3072 ldrsh.w r3, [r7, #114] ; 0x72 + 8020a98: f8c7 3090 str.w r3, [r7, #144] ; 0x90 + 8020a9c: e026 b.n 8020aec blend_area.y1 = h; - 8020b32: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020b36: b21b sxth r3, r3 - 8020b38: 83fb strh r3, [r7, #30] + 8020a9e: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020aa2: b21b sxth r3, r3 + 8020aa4: 83fb strh r3, [r7, #30] blend_area.y2 = h; - 8020b3a: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020b3e: b21b sxth r3, r3 - 8020b40: 847b strh r3, [r7, #34] ; 0x22 + 8020aa6: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020aaa: b21b sxth r3, r3 + 8020aac: 847b strh r3, [r7, #34] ; 0x22 lv_memset_ff(blend_dsc.mask_buf, blend_w); - 8020b42: 6e3b ldr r3, [r7, #96] ; 0x60 - 8020b44: f9b7 207e ldrsh.w r2, [r7, #126] ; 0x7e - 8020b48: 4611 mov r1, r2 - 8020b4a: 4618 mov r0, r3 - 8020b4c: f012 fb80 bl 8033250 + 8020aae: 6e3b ldr r3, [r7, #96] ; 0x60 + 8020ab0: f9b7 207e ldrsh.w r2, [r7, #126] ; 0x7e + 8020ab4: 4611 mov r1, r2 + 8020ab6: 4618 mov r0, r3 + 8020ab8: f012 fb80 bl 80331bc blend_dsc.mask_res = lv_draw_mask_apply(blend_dsc.mask_buf, blend_area.x1, h, blend_w); - 8020b50: 6e38 ldr r0, [r7, #96] ; 0x60 - 8020b52: f9b7 101c ldrsh.w r1, [r7, #28] - 8020b56: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020b5a: b21a sxth r2, r3 - 8020b5c: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e - 8020b60: f7f2 faa0 bl 80130a4 - 8020b64: 4603 mov r3, r0 - 8020b66: f887 3064 strb.w r3, [r7, #100] ; 0x64 + 8020abc: 6e38 ldr r0, [r7, #96] ; 0x60 + 8020abe: f9b7 101c ldrsh.w r1, [r7, #28] + 8020ac2: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020ac6: b21a sxth r2, r3 + 8020ac8: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e + 8020acc: f7f2 faa0 bl 8013010 + 8020ad0: 4603 mov r3, r0 + 8020ad2: f887 3064 strb.w r3, [r7, #100] ; 0x64 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 8020b6a: f107 0354 add.w r3, r7, #84 ; 0x54 - 8020b6e: 4619 mov r1, r3 - 8020b70: 68f8 ldr r0, [r7, #12] - 8020b72: f7f8 ff8e bl 8019a92 + 8020ad6: f107 0354 add.w r3, r7, #84 ; 0x54 + 8020ada: 4619 mov r1, r3 + 8020adc: 68f8 ldr r0, [r7, #12] + 8020ade: f7f8 ff8e bl 80199fe for(h = draw_area.y1; h < core_area.y1; h++) { - 8020b76: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020b7a: 3301 adds r3, #1 - 8020b7c: f8c7 3090 str.w r3, [r7, #144] ; 0x90 - 8020b80: f9b7 3016 ldrsh.w r3, [r7, #22] - 8020b84: 461a mov r2, r3 - 8020b86: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020b8a: 4293 cmp r3, r2 - 8020b8c: dbd1 blt.n 8020b32 + 8020ae2: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020ae6: 3301 adds r3, #1 + 8020ae8: f8c7 3090 str.w r3, [r7, #144] ; 0x90 + 8020aec: f9b7 3016 ldrsh.w r3, [r7, #22] + 8020af0: 461a mov r2, r3 + 8020af2: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020af6: 4293 cmp r3, r2 + 8020af8: dbd1 blt.n 8020a9e } } if(left_side || bottom_side) { - 8020b8e: f897 3081 ldrb.w r3, [r7, #129] ; 0x81 - 8020b92: 2b00 cmp r3, #0 - 8020b94: d103 bne.n 8020b9e - 8020b96: f897 3082 ldrb.w r3, [r7, #130] ; 0x82 - 8020b9a: 2b00 cmp r3, #0 - 8020b9c: d033 beq.n 8020c06 + 8020afa: f897 3081 ldrb.w r3, [r7, #129] ; 0x81 + 8020afe: 2b00 cmp r3, #0 + 8020b00: d103 bne.n 8020b0a + 8020b02: f897 3082 ldrb.w r3, [r7, #130] ; 0x82 + 8020b06: 2b00 cmp r3, #0 + 8020b08: d033 beq.n 8020b72 for(h = core_area.y2 + 1; h <= draw_area.y2; h++) { - 8020b9e: f9b7 301a ldrsh.w r3, [r7, #26] - 8020ba2: 3301 adds r3, #1 - 8020ba4: f8c7 3090 str.w r3, [r7, #144] ; 0x90 - 8020ba8: e026 b.n 8020bf8 + 8020b0a: f9b7 301a ldrsh.w r3, [r7, #26] + 8020b0e: 3301 adds r3, #1 + 8020b10: f8c7 3090 str.w r3, [r7, #144] ; 0x90 + 8020b14: e026 b.n 8020b64 blend_area.y1 = h; - 8020baa: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020bae: b21b sxth r3, r3 - 8020bb0: 83fb strh r3, [r7, #30] + 8020b16: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020b1a: b21b sxth r3, r3 + 8020b1c: 83fb strh r3, [r7, #30] blend_area.y2 = h; - 8020bb2: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020bb6: b21b sxth r3, r3 - 8020bb8: 847b strh r3, [r7, #34] ; 0x22 + 8020b1e: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020b22: b21b sxth r3, r3 + 8020b24: 847b strh r3, [r7, #34] ; 0x22 lv_memset_ff(blend_dsc.mask_buf, blend_w); - 8020bba: 6e3b ldr r3, [r7, #96] ; 0x60 - 8020bbc: f9b7 207e ldrsh.w r2, [r7, #126] ; 0x7e - 8020bc0: 4611 mov r1, r2 - 8020bc2: 4618 mov r0, r3 - 8020bc4: f012 fb44 bl 8033250 + 8020b26: 6e3b ldr r3, [r7, #96] ; 0x60 + 8020b28: f9b7 207e ldrsh.w r2, [r7, #126] ; 0x7e + 8020b2c: 4611 mov r1, r2 + 8020b2e: 4618 mov r0, r3 + 8020b30: f012 fb44 bl 80331bc blend_dsc.mask_res = lv_draw_mask_apply(blend_dsc.mask_buf, blend_area.x1, h, blend_w); - 8020bc8: 6e38 ldr r0, [r7, #96] ; 0x60 - 8020bca: f9b7 101c ldrsh.w r1, [r7, #28] - 8020bce: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020bd2: b21a sxth r2, r3 - 8020bd4: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e - 8020bd8: f7f2 fa64 bl 80130a4 - 8020bdc: 4603 mov r3, r0 - 8020bde: f887 3064 strb.w r3, [r7, #100] ; 0x64 + 8020b34: 6e38 ldr r0, [r7, #96] ; 0x60 + 8020b36: f9b7 101c ldrsh.w r1, [r7, #28] + 8020b3a: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020b3e: b21a sxth r2, r3 + 8020b40: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e + 8020b44: f7f2 fa64 bl 8013010 + 8020b48: 4603 mov r3, r0 + 8020b4a: f887 3064 strb.w r3, [r7, #100] ; 0x64 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 8020be2: f107 0354 add.w r3, r7, #84 ; 0x54 - 8020be6: 4619 mov r1, r3 - 8020be8: 68f8 ldr r0, [r7, #12] - 8020bea: f7f8 ff52 bl 8019a92 + 8020b4e: f107 0354 add.w r3, r7, #84 ; 0x54 + 8020b52: 4619 mov r1, r3 + 8020b54: 68f8 ldr r0, [r7, #12] + 8020b56: f7f8 ff52 bl 80199fe for(h = core_area.y2 + 1; h <= draw_area.y2; h++) { - 8020bee: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020bf2: 3301 adds r3, #1 - 8020bf4: f8c7 3090 str.w r3, [r7, #144] ; 0x90 - 8020bf8: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 - 8020bfc: 461a mov r2, r3 - 8020bfe: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020c02: 4293 cmp r3, r2 - 8020c04: ddd1 ble.n 8020baa + 8020b5a: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020b5e: 3301 adds r3, #1 + 8020b60: f8c7 3090 str.w r3, [r7, #144] ; 0x90 + 8020b64: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 + 8020b68: 461a mov r2, r3 + 8020b6a: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020b6e: 4293 cmp r3, r2 + 8020b70: ddd1 ble.n 8020b16 } } } /*Right corners*/ blend_area.x1 = LV_MAX(draw_area.x1, core_area.x2 + 1); - 8020c06: f9b7 3018 ldrsh.w r3, [r7, #24] - 8020c0a: 3301 adds r3, #1 - 8020c0c: f9b7 2070 ldrsh.w r2, [r7, #112] ; 0x70 - 8020c10: 4293 cmp r3, r2 - 8020c12: bfb8 it lt - 8020c14: 4613 movlt r3, r2 - 8020c16: b21b sxth r3, r3 - 8020c18: 83bb strh r3, [r7, #28] + 8020b72: f9b7 3018 ldrsh.w r3, [r7, #24] + 8020b76: 3301 adds r3, #1 + 8020b78: f9b7 2070 ldrsh.w r2, [r7, #112] ; 0x70 + 8020b7c: 4293 cmp r3, r2 + 8020b7e: bfb8 it lt + 8020b80: 4613 movlt r3, r2 + 8020b82: b21b sxth r3, r3 + 8020b84: 83bb strh r3, [r7, #28] blend_area.x2 = draw_area.x2; - 8020c1a: f9b7 3074 ldrsh.w r3, [r7, #116] ; 0x74 - 8020c1e: 843b strh r3, [r7, #32] + 8020b86: f9b7 3074 ldrsh.w r3, [r7, #116] ; 0x74 + 8020b8a: 843b strh r3, [r7, #32] blend_w = lv_area_get_width(&blend_area); - 8020c20: f107 031c add.w r3, r7, #28 - 8020c24: 4618 mov r0, r3 - 8020c26: f7fd f86b bl 801dd00 - 8020c2a: 4603 mov r3, r0 - 8020c2c: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 8020b8c: f107 031c add.w r3, r7, #28 + 8020b90: 4618 mov r0, r3 + 8020b92: f7fd f86b bl 801dc6c + 8020b96: 4603 mov r3, r0 + 8020b98: f8a7 307e strh.w r3, [r7, #126] ; 0x7e if(blend_w > 0) { - 8020c30: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e - 8020c34: 2b00 cmp r3, #0 - 8020c36: dd76 ble.n 8020d26 + 8020b9c: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e + 8020ba0: 2b00 cmp r3, #0 + 8020ba2: dd76 ble.n 8020c92 if(right_side || top_side) { - 8020c38: f897 3080 ldrb.w r3, [r7, #128] ; 0x80 - 8020c3c: 2b00 cmp r3, #0 - 8020c3e: d103 bne.n 8020c48 - 8020c40: f897 3083 ldrb.w r3, [r7, #131] ; 0x83 - 8020c44: 2b00 cmp r3, #0 - 8020c46: d032 beq.n 8020cae + 8020ba4: f897 3080 ldrb.w r3, [r7, #128] ; 0x80 + 8020ba8: 2b00 cmp r3, #0 + 8020baa: d103 bne.n 8020bb4 + 8020bac: f897 3083 ldrb.w r3, [r7, #131] ; 0x83 + 8020bb0: 2b00 cmp r3, #0 + 8020bb2: d032 beq.n 8020c1a for(h = draw_area.y1; h < core_area.y1; h++) { - 8020c48: f9b7 3072 ldrsh.w r3, [r7, #114] ; 0x72 - 8020c4c: f8c7 3090 str.w r3, [r7, #144] ; 0x90 - 8020c50: e026 b.n 8020ca0 + 8020bb4: f9b7 3072 ldrsh.w r3, [r7, #114] ; 0x72 + 8020bb8: f8c7 3090 str.w r3, [r7, #144] ; 0x90 + 8020bbc: e026 b.n 8020c0c blend_area.y1 = h; - 8020c52: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020c56: b21b sxth r3, r3 - 8020c58: 83fb strh r3, [r7, #30] + 8020bbe: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020bc2: b21b sxth r3, r3 + 8020bc4: 83fb strh r3, [r7, #30] blend_area.y2 = h; - 8020c5a: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020c5e: b21b sxth r3, r3 - 8020c60: 847b strh r3, [r7, #34] ; 0x22 + 8020bc6: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020bca: b21b sxth r3, r3 + 8020bcc: 847b strh r3, [r7, #34] ; 0x22 lv_memset_ff(blend_dsc.mask_buf, blend_w); - 8020c62: 6e3b ldr r3, [r7, #96] ; 0x60 - 8020c64: f9b7 207e ldrsh.w r2, [r7, #126] ; 0x7e - 8020c68: 4611 mov r1, r2 - 8020c6a: 4618 mov r0, r3 - 8020c6c: f012 faf0 bl 8033250 + 8020bce: 6e3b ldr r3, [r7, #96] ; 0x60 + 8020bd0: f9b7 207e ldrsh.w r2, [r7, #126] ; 0x7e + 8020bd4: 4611 mov r1, r2 + 8020bd6: 4618 mov r0, r3 + 8020bd8: f012 faf0 bl 80331bc blend_dsc.mask_res = lv_draw_mask_apply(blend_dsc.mask_buf, blend_area.x1, h, blend_w); - 8020c70: 6e38 ldr r0, [r7, #96] ; 0x60 - 8020c72: f9b7 101c ldrsh.w r1, [r7, #28] - 8020c76: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020c7a: b21a sxth r2, r3 - 8020c7c: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e - 8020c80: f7f2 fa10 bl 80130a4 - 8020c84: 4603 mov r3, r0 - 8020c86: f887 3064 strb.w r3, [r7, #100] ; 0x64 + 8020bdc: 6e38 ldr r0, [r7, #96] ; 0x60 + 8020bde: f9b7 101c ldrsh.w r1, [r7, #28] + 8020be2: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020be6: b21a sxth r2, r3 + 8020be8: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e + 8020bec: f7f2 fa10 bl 8013010 + 8020bf0: 4603 mov r3, r0 + 8020bf2: f887 3064 strb.w r3, [r7, #100] ; 0x64 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 8020c8a: f107 0354 add.w r3, r7, #84 ; 0x54 - 8020c8e: 4619 mov r1, r3 - 8020c90: 68f8 ldr r0, [r7, #12] - 8020c92: f7f8 fefe bl 8019a92 + 8020bf6: f107 0354 add.w r3, r7, #84 ; 0x54 + 8020bfa: 4619 mov r1, r3 + 8020bfc: 68f8 ldr r0, [r7, #12] + 8020bfe: f7f8 fefe bl 80199fe for(h = draw_area.y1; h < core_area.y1; h++) { - 8020c96: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020c9a: 3301 adds r3, #1 - 8020c9c: f8c7 3090 str.w r3, [r7, #144] ; 0x90 - 8020ca0: f9b7 3016 ldrsh.w r3, [r7, #22] - 8020ca4: 461a mov r2, r3 - 8020ca6: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020caa: 4293 cmp r3, r2 - 8020cac: dbd1 blt.n 8020c52 + 8020c02: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020c06: 3301 adds r3, #1 + 8020c08: f8c7 3090 str.w r3, [r7, #144] ; 0x90 + 8020c0c: f9b7 3016 ldrsh.w r3, [r7, #22] + 8020c10: 461a mov r2, r3 + 8020c12: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020c16: 4293 cmp r3, r2 + 8020c18: dbd1 blt.n 8020bbe } } if(right_side || bottom_side) { - 8020cae: f897 3080 ldrb.w r3, [r7, #128] ; 0x80 - 8020cb2: 2b00 cmp r3, #0 - 8020cb4: d103 bne.n 8020cbe - 8020cb6: f897 3082 ldrb.w r3, [r7, #130] ; 0x82 - 8020cba: 2b00 cmp r3, #0 - 8020cbc: d033 beq.n 8020d26 + 8020c1a: f897 3080 ldrb.w r3, [r7, #128] ; 0x80 + 8020c1e: 2b00 cmp r3, #0 + 8020c20: d103 bne.n 8020c2a + 8020c22: f897 3082 ldrb.w r3, [r7, #130] ; 0x82 + 8020c26: 2b00 cmp r3, #0 + 8020c28: d033 beq.n 8020c92 for(h = core_area.y2 + 1; h <= draw_area.y2; h++) { - 8020cbe: f9b7 301a ldrsh.w r3, [r7, #26] - 8020cc2: 3301 adds r3, #1 - 8020cc4: f8c7 3090 str.w r3, [r7, #144] ; 0x90 - 8020cc8: e026 b.n 8020d18 + 8020c2a: f9b7 301a ldrsh.w r3, [r7, #26] + 8020c2e: 3301 adds r3, #1 + 8020c30: f8c7 3090 str.w r3, [r7, #144] ; 0x90 + 8020c34: e026 b.n 8020c84 blend_area.y1 = h; - 8020cca: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020cce: b21b sxth r3, r3 - 8020cd0: 83fb strh r3, [r7, #30] + 8020c36: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020c3a: b21b sxth r3, r3 + 8020c3c: 83fb strh r3, [r7, #30] blend_area.y2 = h; - 8020cd2: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020cd6: b21b sxth r3, r3 - 8020cd8: 847b strh r3, [r7, #34] ; 0x22 + 8020c3e: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020c42: b21b sxth r3, r3 + 8020c44: 847b strh r3, [r7, #34] ; 0x22 lv_memset_ff(blend_dsc.mask_buf, blend_w); - 8020cda: 6e3b ldr r3, [r7, #96] ; 0x60 - 8020cdc: f9b7 207e ldrsh.w r2, [r7, #126] ; 0x7e - 8020ce0: 4611 mov r1, r2 - 8020ce2: 4618 mov r0, r3 - 8020ce4: f012 fab4 bl 8033250 + 8020c46: 6e3b ldr r3, [r7, #96] ; 0x60 + 8020c48: f9b7 207e ldrsh.w r2, [r7, #126] ; 0x7e + 8020c4c: 4611 mov r1, r2 + 8020c4e: 4618 mov r0, r3 + 8020c50: f012 fab4 bl 80331bc blend_dsc.mask_res = lv_draw_mask_apply(blend_dsc.mask_buf, blend_area.x1, h, blend_w); - 8020ce8: 6e38 ldr r0, [r7, #96] ; 0x60 - 8020cea: f9b7 101c ldrsh.w r1, [r7, #28] - 8020cee: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020cf2: b21a sxth r2, r3 - 8020cf4: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e - 8020cf8: f7f2 f9d4 bl 80130a4 - 8020cfc: 4603 mov r3, r0 - 8020cfe: f887 3064 strb.w r3, [r7, #100] ; 0x64 + 8020c54: 6e38 ldr r0, [r7, #96] ; 0x60 + 8020c56: f9b7 101c ldrsh.w r1, [r7, #28] + 8020c5a: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020c5e: b21a sxth r2, r3 + 8020c60: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e + 8020c64: f7f2 f9d4 bl 8013010 + 8020c68: 4603 mov r3, r0 + 8020c6a: f887 3064 strb.w r3, [r7, #100] ; 0x64 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 8020d02: f107 0354 add.w r3, r7, #84 ; 0x54 - 8020d06: 4619 mov r1, r3 - 8020d08: 68f8 ldr r0, [r7, #12] - 8020d0a: f7f8 fec2 bl 8019a92 + 8020c6e: f107 0354 add.w r3, r7, #84 ; 0x54 + 8020c72: 4619 mov r1, r3 + 8020c74: 68f8 ldr r0, [r7, #12] + 8020c76: f7f8 fec2 bl 80199fe for(h = core_area.y2 + 1; h <= draw_area.y2; h++) { - 8020d0e: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020d12: 3301 adds r3, #1 - 8020d14: f8c7 3090 str.w r3, [r7, #144] ; 0x90 - 8020d18: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 - 8020d1c: 461a mov r2, r3 - 8020d1e: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 8020d22: 4293 cmp r3, r2 - 8020d24: ddd1 ble.n 8020cca + 8020c7a: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020c7e: 3301 adds r3, #1 + 8020c80: f8c7 3090 str.w r3, [r7, #144] ; 0x90 + 8020c84: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 + 8020c88: 461a mov r2, r3 + 8020c8a: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 8020c8e: 4293 cmp r3, r2 + 8020c90: ddd1 ble.n 8020c36 } } } } lv_draw_mask_free_param(&mask_rin_param); - 8020d26: f107 0324 add.w r3, r7, #36 ; 0x24 - 8020d2a: 4618 mov r0, r3 - 8020d2c: f7f2 fa4e bl 80131cc + 8020c92: f107 0324 add.w r3, r7, #36 ; 0x24 + 8020c96: 4618 mov r0, r3 + 8020c98: f7f2 fa4e bl 8013138 lv_draw_mask_remove_id(mask_rin_id); - 8020d30: f9b7 3086 ldrsh.w r3, [r7, #134] ; 0x86 - 8020d34: 4618 mov r0, r3 - 8020d36: f7f2 f9f9 bl 801312c + 8020c9c: f9b7 3086 ldrsh.w r3, [r7, #134] ; 0x86 + 8020ca0: 4618 mov r0, r3 + 8020ca2: f7f2 f9f9 bl 8013098 lv_draw_mask_free_param(&mask_rout_param); - 8020d3a: f107 033c add.w r3, r7, #60 ; 0x3c - 8020d3e: 4618 mov r0, r3 - 8020d40: f7f2 fa44 bl 80131cc + 8020ca6: f107 033c add.w r3, r7, #60 ; 0x3c + 8020caa: 4618 mov r0, r3 + 8020cac: f7f2 fa44 bl 8013138 lv_draw_mask_remove_id(mask_rout_id); - 8020d44: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 - 8020d48: 4618 mov r0, r3 - 8020d4a: f7f2 f9ef bl 801312c + 8020cb0: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 + 8020cb4: 4618 mov r0, r3 + 8020cb6: f7f2 f9ef bl 8013098 lv_mem_buf_release(blend_dsc.mask_buf); - 8020d4e: 6e3b ldr r3, [r7, #96] ; 0x60 - 8020d50: 4618 mov r0, r3 - 8020d52: f011 ff01 bl 8032b58 - 8020d56: e000 b.n 8020d5a + 8020cba: 6e3b ldr r3, [r7, #96] ; 0x60 + 8020cbc: 4618 mov r0, r3 + 8020cbe: f011 ff01 bl 8032ac4 + 8020cc2: e000 b.n 8020cc6 if(!_lv_area_intersect(&draw_area, outer_area, draw_ctx->clip_area)) return; - 8020d58: bf00 nop + 8020cc4: bf00 nop #else /*LV_DRAW_COMPLEX*/ LV_UNUSED(blend_mode); #endif /*LV_DRAW_COMPLEX*/ } - 8020d5a: 3798 adds r7, #152 ; 0x98 - 8020d5c: 46bd mov sp, r7 - 8020d5e: bd80 pop {r7, pc} + 8020cc6: 3798 adds r7, #152 ; 0x98 + 8020cc8: 46bd mov sp, r7 + 8020cca: bd80 pop {r7, pc} -08020d60 : +08020ccc : static void draw_border_simple(lv_draw_ctx_t * draw_ctx, const lv_area_t * outer_area, const lv_area_t * inner_area, lv_color_t color, lv_opa_t opa) { - 8020d60: b580 push {r7, lr} - 8020d62: b08e sub sp, #56 ; 0x38 - 8020d64: af00 add r7, sp, #0 - 8020d66: 60f8 str r0, [r7, #12] - 8020d68: 60b9 str r1, [r7, #8] - 8020d6a: 607a str r2, [r7, #4] - 8020d6c: 803b strh r3, [r7, #0] + 8020ccc: b580 push {r7, lr} + 8020cce: b08e sub sp, #56 ; 0x38 + 8020cd0: af00 add r7, sp, #0 + 8020cd2: 60f8 str r0, [r7, #12] + 8020cd4: 60b9 str r1, [r7, #8] + 8020cd6: 607a str r2, [r7, #4] + 8020cd8: 803b strh r3, [r7, #0] lv_area_t a; lv_draw_sw_blend_dsc_t blend_dsc; lv_memset_00(&blend_dsc, sizeof(lv_draw_sw_blend_dsc_t)); - 8020d6e: f107 0310 add.w r3, r7, #16 - 8020d72: 211c movs r1, #28 - 8020d74: 4618 mov r0, r3 - 8020d76: f012 f9eb bl 8033150 + 8020cda: f107 0310 add.w r3, r7, #16 + 8020cde: 211c movs r1, #28 + 8020ce0: 4618 mov r0, r3 + 8020ce2: f012 f9eb bl 80330bc blend_dsc.blend_area = &a; - 8020d7a: f107 032c add.w r3, r7, #44 ; 0x2c - 8020d7e: 613b str r3, [r7, #16] + 8020ce6: f107 032c add.w r3, r7, #44 ; 0x2c + 8020cea: 613b str r3, [r7, #16] blend_dsc.color = color; - 8020d80: 883b ldrh r3, [r7, #0] - 8020d82: 833b strh r3, [r7, #24] + 8020cec: 883b ldrh r3, [r7, #0] + 8020cee: 833b strh r3, [r7, #24] blend_dsc.opa = opa; - 8020d84: f897 3040 ldrb.w r3, [r7, #64] ; 0x40 - 8020d88: f887 3028 strb.w r3, [r7, #40] ; 0x28 + 8020cf0: f897 3040 ldrb.w r3, [r7, #64] ; 0x40 + 8020cf4: f887 3028 strb.w r3, [r7, #40] ; 0x28 bool top_side = outer_area->y1 <= inner_area->y1 ? true : false; - 8020d8c: 68bb ldr r3, [r7, #8] - 8020d8e: f9b3 2002 ldrsh.w r2, [r3, #2] - 8020d92: 687b ldr r3, [r7, #4] - 8020d94: f9b3 3002 ldrsh.w r3, [r3, #2] - 8020d98: 429a cmp r2, r3 - 8020d9a: bfd4 ite le - 8020d9c: 2301 movle r3, #1 - 8020d9e: 2300 movgt r3, #0 - 8020da0: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 8020cf8: 68bb ldr r3, [r7, #8] + 8020cfa: f9b3 2002 ldrsh.w r2, [r3, #2] + 8020cfe: 687b ldr r3, [r7, #4] + 8020d00: f9b3 3002 ldrsh.w r3, [r3, #2] + 8020d04: 429a cmp r2, r3 + 8020d06: bfd4 ite le + 8020d08: 2301 movle r3, #1 + 8020d0a: 2300 movgt r3, #0 + 8020d0c: f887 3037 strb.w r3, [r7, #55] ; 0x37 bool bottom_side = outer_area->y2 >= inner_area->y2 ? true : false; - 8020da4: 68bb ldr r3, [r7, #8] - 8020da6: f9b3 2006 ldrsh.w r2, [r3, #6] - 8020daa: 687b ldr r3, [r7, #4] - 8020dac: f9b3 3006 ldrsh.w r3, [r3, #6] - 8020db0: 429a cmp r2, r3 - 8020db2: bfac ite ge - 8020db4: 2301 movge r3, #1 - 8020db6: 2300 movlt r3, #0 - 8020db8: f887 3036 strb.w r3, [r7, #54] ; 0x36 + 8020d10: 68bb ldr r3, [r7, #8] + 8020d12: f9b3 2006 ldrsh.w r2, [r3, #6] + 8020d16: 687b ldr r3, [r7, #4] + 8020d18: f9b3 3006 ldrsh.w r3, [r3, #6] + 8020d1c: 429a cmp r2, r3 + 8020d1e: bfac ite ge + 8020d20: 2301 movge r3, #1 + 8020d22: 2300 movlt r3, #0 + 8020d24: f887 3036 strb.w r3, [r7, #54] ; 0x36 bool left_side = outer_area->x1 <= inner_area->x1 ? true : false; - 8020dbc: 68bb ldr r3, [r7, #8] - 8020dbe: f9b3 2000 ldrsh.w r2, [r3] - 8020dc2: 687b ldr r3, [r7, #4] - 8020dc4: f9b3 3000 ldrsh.w r3, [r3] - 8020dc8: 429a cmp r2, r3 - 8020dca: bfd4 ite le - 8020dcc: 2301 movle r3, #1 - 8020dce: 2300 movgt r3, #0 - 8020dd0: f887 3035 strb.w r3, [r7, #53] ; 0x35 + 8020d28: 68bb ldr r3, [r7, #8] + 8020d2a: f9b3 2000 ldrsh.w r2, [r3] + 8020d2e: 687b ldr r3, [r7, #4] + 8020d30: f9b3 3000 ldrsh.w r3, [r3] + 8020d34: 429a cmp r2, r3 + 8020d36: bfd4 ite le + 8020d38: 2301 movle r3, #1 + 8020d3a: 2300 movgt r3, #0 + 8020d3c: f887 3035 strb.w r3, [r7, #53] ; 0x35 bool right_side = outer_area->x2 >= inner_area->x2 ? true : false; - 8020dd4: 68bb ldr r3, [r7, #8] - 8020dd6: f9b3 2004 ldrsh.w r2, [r3, #4] - 8020dda: 687b ldr r3, [r7, #4] - 8020ddc: f9b3 3004 ldrsh.w r3, [r3, #4] - 8020de0: 429a cmp r2, r3 - 8020de2: bfac ite ge - 8020de4: 2301 movge r3, #1 - 8020de6: 2300 movlt r3, #0 - 8020de8: f887 3034 strb.w r3, [r7, #52] ; 0x34 + 8020d40: 68bb ldr r3, [r7, #8] + 8020d42: f9b3 2004 ldrsh.w r2, [r3, #4] + 8020d46: 687b ldr r3, [r7, #4] + 8020d48: f9b3 3004 ldrsh.w r3, [r3, #4] + 8020d4c: 429a cmp r2, r3 + 8020d4e: bfac ite ge + 8020d50: 2301 movge r3, #1 + 8020d52: 2300 movlt r3, #0 + 8020d54: f887 3034 strb.w r3, [r7, #52] ; 0x34 /*Top*/ a.x1 = outer_area->x1; - 8020dec: 68bb ldr r3, [r7, #8] - 8020dee: f9b3 3000 ldrsh.w r3, [r3] - 8020df2: 85bb strh r3, [r7, #44] ; 0x2c + 8020d58: 68bb ldr r3, [r7, #8] + 8020d5a: f9b3 3000 ldrsh.w r3, [r3] + 8020d5e: 85bb strh r3, [r7, #44] ; 0x2c a.x2 = outer_area->x2; - 8020df4: 68bb ldr r3, [r7, #8] - 8020df6: f9b3 3004 ldrsh.w r3, [r3, #4] - 8020dfa: 863b strh r3, [r7, #48] ; 0x30 + 8020d60: 68bb ldr r3, [r7, #8] + 8020d62: f9b3 3004 ldrsh.w r3, [r3, #4] + 8020d66: 863b strh r3, [r7, #48] ; 0x30 a.y1 = outer_area->y1; - 8020dfc: 68bb ldr r3, [r7, #8] - 8020dfe: f9b3 3002 ldrsh.w r3, [r3, #2] - 8020e02: 85fb strh r3, [r7, #46] ; 0x2e + 8020d68: 68bb ldr r3, [r7, #8] + 8020d6a: f9b3 3002 ldrsh.w r3, [r3, #2] + 8020d6e: 85fb strh r3, [r7, #46] ; 0x2e a.y2 = inner_area->y1 - 1; - 8020e04: 687b ldr r3, [r7, #4] - 8020e06: f9b3 3002 ldrsh.w r3, [r3, #2] - 8020e0a: b29b uxth r3, r3 - 8020e0c: 3b01 subs r3, #1 - 8020e0e: b29b uxth r3, r3 - 8020e10: b21b sxth r3, r3 - 8020e12: 867b strh r3, [r7, #50] ; 0x32 + 8020d70: 687b ldr r3, [r7, #4] + 8020d72: f9b3 3002 ldrsh.w r3, [r3, #2] + 8020d76: b29b uxth r3, r3 + 8020d78: 3b01 subs r3, #1 + 8020d7a: b29b uxth r3, r3 + 8020d7c: b21b sxth r3, r3 + 8020d7e: 867b strh r3, [r7, #50] ; 0x32 if(top_side) { - 8020e14: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 8020e18: 2b00 cmp r3, #0 - 8020e1a: d005 beq.n 8020e28 + 8020d80: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 8020d84: 2b00 cmp r3, #0 + 8020d86: d005 beq.n 8020d94 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 8020e1c: f107 0310 add.w r3, r7, #16 - 8020e20: 4619 mov r1, r3 - 8020e22: 68f8 ldr r0, [r7, #12] - 8020e24: f7f8 fe35 bl 8019a92 + 8020d88: f107 0310 add.w r3, r7, #16 + 8020d8c: 4619 mov r1, r3 + 8020d8e: 68f8 ldr r0, [r7, #12] + 8020d90: f7f8 fe35 bl 80199fe } /*Bottom*/ a.y1 = inner_area->y2 + 1; - 8020e28: 687b ldr r3, [r7, #4] - 8020e2a: f9b3 3006 ldrsh.w r3, [r3, #6] - 8020e2e: b29b uxth r3, r3 - 8020e30: 3301 adds r3, #1 - 8020e32: b29b uxth r3, r3 - 8020e34: b21b sxth r3, r3 - 8020e36: 85fb strh r3, [r7, #46] ; 0x2e + 8020d94: 687b ldr r3, [r7, #4] + 8020d96: f9b3 3006 ldrsh.w r3, [r3, #6] + 8020d9a: b29b uxth r3, r3 + 8020d9c: 3301 adds r3, #1 + 8020d9e: b29b uxth r3, r3 + 8020da0: b21b sxth r3, r3 + 8020da2: 85fb strh r3, [r7, #46] ; 0x2e a.y2 = outer_area->y2; - 8020e38: 68bb ldr r3, [r7, #8] - 8020e3a: f9b3 3006 ldrsh.w r3, [r3, #6] - 8020e3e: 867b strh r3, [r7, #50] ; 0x32 + 8020da4: 68bb ldr r3, [r7, #8] + 8020da6: f9b3 3006 ldrsh.w r3, [r3, #6] + 8020daa: 867b strh r3, [r7, #50] ; 0x32 if(bottom_side) { - 8020e40: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 - 8020e44: 2b00 cmp r3, #0 - 8020e46: d005 beq.n 8020e54 + 8020dac: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 + 8020db0: 2b00 cmp r3, #0 + 8020db2: d005 beq.n 8020dc0 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 8020e48: f107 0310 add.w r3, r7, #16 - 8020e4c: 4619 mov r1, r3 - 8020e4e: 68f8 ldr r0, [r7, #12] - 8020e50: f7f8 fe1f bl 8019a92 + 8020db4: f107 0310 add.w r3, r7, #16 + 8020db8: 4619 mov r1, r3 + 8020dba: 68f8 ldr r0, [r7, #12] + 8020dbc: f7f8 fe1f bl 80199fe } /*Left*/ a.x1 = outer_area->x1; - 8020e54: 68bb ldr r3, [r7, #8] - 8020e56: f9b3 3000 ldrsh.w r3, [r3] - 8020e5a: 85bb strh r3, [r7, #44] ; 0x2c + 8020dc0: 68bb ldr r3, [r7, #8] + 8020dc2: f9b3 3000 ldrsh.w r3, [r3] + 8020dc6: 85bb strh r3, [r7, #44] ; 0x2c a.x2 = inner_area->x1 - 1; - 8020e5c: 687b ldr r3, [r7, #4] - 8020e5e: f9b3 3000 ldrsh.w r3, [r3] - 8020e62: b29b uxth r3, r3 - 8020e64: 3b01 subs r3, #1 - 8020e66: b29b uxth r3, r3 - 8020e68: b21b sxth r3, r3 - 8020e6a: 863b strh r3, [r7, #48] ; 0x30 + 8020dc8: 687b ldr r3, [r7, #4] + 8020dca: f9b3 3000 ldrsh.w r3, [r3] + 8020dce: b29b uxth r3, r3 + 8020dd0: 3b01 subs r3, #1 + 8020dd2: b29b uxth r3, r3 + 8020dd4: b21b sxth r3, r3 + 8020dd6: 863b strh r3, [r7, #48] ; 0x30 a.y1 = (top_side) ? inner_area->y1 : outer_area->y1; - 8020e6c: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 8020e70: 2b00 cmp r3, #0 - 8020e72: d003 beq.n 8020e7c - 8020e74: 687b ldr r3, [r7, #4] - 8020e76: f9b3 3002 ldrsh.w r3, [r3, #2] - 8020e7a: e002 b.n 8020e82 - 8020e7c: 68bb ldr r3, [r7, #8] - 8020e7e: f9b3 3002 ldrsh.w r3, [r3, #2] - 8020e82: 85fb strh r3, [r7, #46] ; 0x2e + 8020dd8: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 8020ddc: 2b00 cmp r3, #0 + 8020dde: d003 beq.n 8020de8 + 8020de0: 687b ldr r3, [r7, #4] + 8020de2: f9b3 3002 ldrsh.w r3, [r3, #2] + 8020de6: e002 b.n 8020dee + 8020de8: 68bb ldr r3, [r7, #8] + 8020dea: f9b3 3002 ldrsh.w r3, [r3, #2] + 8020dee: 85fb strh r3, [r7, #46] ; 0x2e a.y2 = (bottom_side) ? inner_area->y2 : outer_area->y2; - 8020e84: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 - 8020e88: 2b00 cmp r3, #0 - 8020e8a: d003 beq.n 8020e94 - 8020e8c: 687b ldr r3, [r7, #4] - 8020e8e: f9b3 3006 ldrsh.w r3, [r3, #6] - 8020e92: e002 b.n 8020e9a - 8020e94: 68bb ldr r3, [r7, #8] - 8020e96: f9b3 3006 ldrsh.w r3, [r3, #6] - 8020e9a: 867b strh r3, [r7, #50] ; 0x32 + 8020df0: f897 3036 ldrb.w r3, [r7, #54] ; 0x36 + 8020df4: 2b00 cmp r3, #0 + 8020df6: d003 beq.n 8020e00 + 8020df8: 687b ldr r3, [r7, #4] + 8020dfa: f9b3 3006 ldrsh.w r3, [r3, #6] + 8020dfe: e002 b.n 8020e06 + 8020e00: 68bb ldr r3, [r7, #8] + 8020e02: f9b3 3006 ldrsh.w r3, [r3, #6] + 8020e06: 867b strh r3, [r7, #50] ; 0x32 if(left_side) { - 8020e9c: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 - 8020ea0: 2b00 cmp r3, #0 - 8020ea2: d005 beq.n 8020eb0 + 8020e08: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 + 8020e0c: 2b00 cmp r3, #0 + 8020e0e: d005 beq.n 8020e1c lv_draw_sw_blend(draw_ctx, &blend_dsc); - 8020ea4: f107 0310 add.w r3, r7, #16 - 8020ea8: 4619 mov r1, r3 - 8020eaa: 68f8 ldr r0, [r7, #12] - 8020eac: f7f8 fdf1 bl 8019a92 + 8020e10: f107 0310 add.w r3, r7, #16 + 8020e14: 4619 mov r1, r3 + 8020e16: 68f8 ldr r0, [r7, #12] + 8020e18: f7f8 fdf1 bl 80199fe } /*Right*/ a.x1 = inner_area->x2 + 1; - 8020eb0: 687b ldr r3, [r7, #4] - 8020eb2: f9b3 3004 ldrsh.w r3, [r3, #4] - 8020eb6: b29b uxth r3, r3 - 8020eb8: 3301 adds r3, #1 - 8020eba: b29b uxth r3, r3 - 8020ebc: b21b sxth r3, r3 - 8020ebe: 85bb strh r3, [r7, #44] ; 0x2c + 8020e1c: 687b ldr r3, [r7, #4] + 8020e1e: f9b3 3004 ldrsh.w r3, [r3, #4] + 8020e22: b29b uxth r3, r3 + 8020e24: 3301 adds r3, #1 + 8020e26: b29b uxth r3, r3 + 8020e28: b21b sxth r3, r3 + 8020e2a: 85bb strh r3, [r7, #44] ; 0x2c a.x2 = outer_area->x2; - 8020ec0: 68bb ldr r3, [r7, #8] - 8020ec2: f9b3 3004 ldrsh.w r3, [r3, #4] - 8020ec6: 863b strh r3, [r7, #48] ; 0x30 + 8020e2c: 68bb ldr r3, [r7, #8] + 8020e2e: f9b3 3004 ldrsh.w r3, [r3, #4] + 8020e32: 863b strh r3, [r7, #48] ; 0x30 if(right_side) { - 8020ec8: f897 3034 ldrb.w r3, [r7, #52] ; 0x34 - 8020ecc: 2b00 cmp r3, #0 - 8020ece: d005 beq.n 8020edc + 8020e34: f897 3034 ldrb.w r3, [r7, #52] ; 0x34 + 8020e38: 2b00 cmp r3, #0 + 8020e3a: d005 beq.n 8020e48 lv_draw_sw_blend(draw_ctx, &blend_dsc); - 8020ed0: f107 0310 add.w r3, r7, #16 - 8020ed4: 4619 mov r1, r3 - 8020ed6: 68f8 ldr r0, [r7, #12] - 8020ed8: f7f8 fddb bl 8019a92 + 8020e3c: f107 0310 add.w r3, r7, #16 + 8020e40: 4619 mov r1, r3 + 8020e42: 68f8 ldr r0, [r7, #12] + 8020e44: f7f8 fddb bl 80199fe } } - 8020edc: bf00 nop - 8020ede: 3738 adds r7, #56 ; 0x38 - 8020ee0: 46bd mov sp, r7 - 8020ee2: bd80 pop {r7, pc} + 8020e48: bf00 nop + 8020e4a: 3738 adds r7, #56 ; 0x38 + 8020e4c: 46bd mov sp, r7 + 8020e4e: bd80 pop {r7, pc} -08020ee4 : +08020e50 : * Copy an area * @param dest pointer to the destination area * @param src pointer to the source area */ inline static void lv_area_copy(lv_area_t * dest, const lv_area_t * src) { - 8020ee4: b480 push {r7} - 8020ee6: b083 sub sp, #12 - 8020ee8: af00 add r7, sp, #0 - 8020eea: 6078 str r0, [r7, #4] - 8020eec: 6039 str r1, [r7, #0] + 8020e50: b480 push {r7} + 8020e52: b083 sub sp, #12 + 8020e54: af00 add r7, sp, #0 + 8020e56: 6078 str r0, [r7, #4] + 8020e58: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 8020eee: 683b ldr r3, [r7, #0] - 8020ef0: f9b3 2000 ldrsh.w r2, [r3] - 8020ef4: 687b ldr r3, [r7, #4] - 8020ef6: 801a strh r2, [r3, #0] + 8020e5a: 683b ldr r3, [r7, #0] + 8020e5c: f9b3 2000 ldrsh.w r2, [r3] + 8020e60: 687b ldr r3, [r7, #4] + 8020e62: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 8020ef8: 683b ldr r3, [r7, #0] - 8020efa: f9b3 2002 ldrsh.w r2, [r3, #2] - 8020efe: 687b ldr r3, [r7, #4] - 8020f00: 805a strh r2, [r3, #2] + 8020e64: 683b ldr r3, [r7, #0] + 8020e66: f9b3 2002 ldrsh.w r2, [r3, #2] + 8020e6a: 687b ldr r3, [r7, #4] + 8020e6c: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 8020f02: 683b ldr r3, [r7, #0] - 8020f04: f9b3 2004 ldrsh.w r2, [r3, #4] - 8020f08: 687b ldr r3, [r7, #4] - 8020f0a: 809a strh r2, [r3, #4] + 8020e6e: 683b ldr r3, [r7, #0] + 8020e70: f9b3 2004 ldrsh.w r2, [r3, #4] + 8020e74: 687b ldr r3, [r7, #4] + 8020e76: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 8020f0c: 683b ldr r3, [r7, #0] - 8020f0e: f9b3 2006 ldrsh.w r2, [r3, #6] - 8020f12: 687b ldr r3, [r7, #4] - 8020f14: 80da strh r2, [r3, #6] + 8020e78: 683b ldr r3, [r7, #0] + 8020e7a: f9b3 2006 ldrsh.w r2, [r3, #6] + 8020e7e: 687b ldr r3, [r7, #4] + 8020e80: 80da strh r2, [r3, #6] } - 8020f16: bf00 nop - 8020f18: 370c adds r7, #12 - 8020f1a: 46bd mov sp, r7 - 8020f1c: bc80 pop {r7} - 8020f1e: 4770 bx lr + 8020e82: bf00 nop + 8020e84: 370c adds r7, #12 + 8020e86: 46bd mov sp, r7 + 8020e88: bc80 pop {r7} + 8020e8a: 4770 bx lr -08020f20 : +08020e8c : * Get the width of an area * @param area_p pointer to an area * @return the width of the area (if x1 == x2 -> width = 1) */ static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p) { - 8020f20: b480 push {r7} - 8020f22: b083 sub sp, #12 - 8020f24: af00 add r7, sp, #0 - 8020f26: 6078 str r0, [r7, #4] + 8020e8c: b480 push {r7} + 8020e8e: b083 sub sp, #12 + 8020e90: af00 add r7, sp, #0 + 8020e92: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 8020f28: 687b ldr r3, [r7, #4] - 8020f2a: f9b3 3004 ldrsh.w r3, [r3, #4] - 8020f2e: b29a uxth r2, r3 - 8020f30: 687b ldr r3, [r7, #4] - 8020f32: f9b3 3000 ldrsh.w r3, [r3] - 8020f36: b29b uxth r3, r3 - 8020f38: 1ad3 subs r3, r2, r3 - 8020f3a: b29b uxth r3, r3 - 8020f3c: 3301 adds r3, #1 - 8020f3e: b29b uxth r3, r3 - 8020f40: b21b sxth r3, r3 + 8020e94: 687b ldr r3, [r7, #4] + 8020e96: f9b3 3004 ldrsh.w r3, [r3, #4] + 8020e9a: b29a uxth r2, r3 + 8020e9c: 687b ldr r3, [r7, #4] + 8020e9e: f9b3 3000 ldrsh.w r3, [r3] + 8020ea2: b29b uxth r3, r3 + 8020ea4: 1ad3 subs r3, r2, r3 + 8020ea6: b29b uxth r3, r3 + 8020ea8: 3301 adds r3, #1 + 8020eaa: b29b uxth r3, r3 + 8020eac: b21b sxth r3, r3 } - 8020f42: 4618 mov r0, r3 - 8020f44: 370c adds r7, #12 - 8020f46: 46bd mov sp, r7 - 8020f48: bc80 pop {r7} - 8020f4a: 4770 bx lr + 8020eae: 4618 mov r0, r3 + 8020eb0: 370c adds r7, #12 + 8020eb2: 46bd mov sp, r7 + 8020eb4: bc80 pop {r7} + 8020eb6: 4770 bx lr -08020f4c : +08020eb8 : * Get the height of an area * @param area_p pointer to an area * @return the height of the area (if y1 == y2 -> height = 1) */ static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) { - 8020f4c: b480 push {r7} - 8020f4e: b083 sub sp, #12 - 8020f50: af00 add r7, sp, #0 - 8020f52: 6078 str r0, [r7, #4] + 8020eb8: b480 push {r7} + 8020eba: b083 sub sp, #12 + 8020ebc: af00 add r7, sp, #0 + 8020ebe: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 8020f54: 687b ldr r3, [r7, #4] - 8020f56: f9b3 3006 ldrsh.w r3, [r3, #6] - 8020f5a: b29a uxth r2, r3 - 8020f5c: 687b ldr r3, [r7, #4] - 8020f5e: f9b3 3002 ldrsh.w r3, [r3, #2] - 8020f62: b29b uxth r3, r3 - 8020f64: 1ad3 subs r3, r2, r3 - 8020f66: b29b uxth r3, r3 - 8020f68: 3301 adds r3, #1 - 8020f6a: b29b uxth r3, r3 - 8020f6c: b21b sxth r3, r3 + 8020ec0: 687b ldr r3, [r7, #4] + 8020ec2: f9b3 3006 ldrsh.w r3, [r3, #6] + 8020ec6: b29a uxth r2, r3 + 8020ec8: 687b ldr r3, [r7, #4] + 8020eca: f9b3 3002 ldrsh.w r3, [r3, #2] + 8020ece: b29b uxth r3, r3 + 8020ed0: 1ad3 subs r3, r2, r3 + 8020ed2: b29b uxth r3, r3 + 8020ed4: 3301 adds r3, #1 + 8020ed6: b29b uxth r3, r3 + 8020ed8: b21b sxth r3, r3 } - 8020f6e: 4618 mov r0, r3 - 8020f70: 370c adds r7, #12 - 8020f72: 46bd mov sp, r7 - 8020f74: bc80 pop {r7} - 8020f76: 4770 bx lr + 8020eda: 4618 mov r0, r3 + 8020edc: 370c adds r7, #12 + 8020ede: 46bd mov sp, r7 + 8020ee0: bc80 pop {r7} + 8020ee2: 4770 bx lr -08020f78 : +08020ee4 : static inline lv_coord_t lv_obj_get_style_width(const struct _lv_obj_t * obj, uint32_t part) { - 8020f78: b580 push {r7, lr} - 8020f7a: b084 sub sp, #16 - 8020f7c: af00 add r7, sp, #0 - 8020f7e: 6078 str r0, [r7, #4] - 8020f80: 6039 str r1, [r7, #0] + 8020ee4: b580 push {r7, lr} + 8020ee6: b084 sub sp, #16 + 8020ee8: af00 add r7, sp, #0 + 8020eea: 6078 str r0, [r7, #4] + 8020eec: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_WIDTH); - 8020f82: f241 0201 movw r2, #4097 ; 0x1001 - 8020f86: 6839 ldr r1, [r7, #0] - 8020f88: 6878 ldr r0, [r7, #4] - 8020f8a: f7ec ff11 bl 800ddb0 - 8020f8e: 4603 mov r3, r0 - 8020f90: 60fb str r3, [r7, #12] + 8020eee: f241 0201 movw r2, #4097 ; 0x1001 + 8020ef2: 6839 ldr r1, [r7, #0] + 8020ef4: 6878 ldr r0, [r7, #4] + 8020ef6: f7ec ff25 bl 800dd44 + 8020efa: 4603 mov r3, r0 + 8020efc: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8020f92: 68fb ldr r3, [r7, #12] - 8020f94: b21b sxth r3, r3 + 8020efe: 68fb ldr r3, [r7, #12] + 8020f00: b21b sxth r3, r3 } - 8020f96: 4618 mov r0, r3 - 8020f98: 3710 adds r7, #16 - 8020f9a: 46bd mov sp, r7 - 8020f9c: bd80 pop {r7, pc} + 8020f02: 4618 mov r0, r3 + 8020f04: 3710 adds r7, #16 + 8020f06: 46bd mov sp, r7 + 8020f08: bd80 pop {r7, pc} -08020f9e : +08020f0a : static inline lv_coord_t lv_obj_get_style_min_width(const struct _lv_obj_t * obj, uint32_t part) { - 8020f9e: b580 push {r7, lr} - 8020fa0: b084 sub sp, #16 - 8020fa2: af00 add r7, sp, #0 - 8020fa4: 6078 str r0, [r7, #4] - 8020fa6: 6039 str r1, [r7, #0] + 8020f0a: b580 push {r7, lr} + 8020f0c: b084 sub sp, #16 + 8020f0e: af00 add r7, sp, #0 + 8020f10: 6078 str r0, [r7, #4] + 8020f12: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MIN_WIDTH); - 8020fa8: f241 0202 movw r2, #4098 ; 0x1002 - 8020fac: 6839 ldr r1, [r7, #0] - 8020fae: 6878 ldr r0, [r7, #4] - 8020fb0: f7ec fefe bl 800ddb0 - 8020fb4: 4603 mov r3, r0 - 8020fb6: 60fb str r3, [r7, #12] + 8020f14: f241 0202 movw r2, #4098 ; 0x1002 + 8020f18: 6839 ldr r1, [r7, #0] + 8020f1a: 6878 ldr r0, [r7, #4] + 8020f1c: f7ec ff12 bl 800dd44 + 8020f20: 4603 mov r3, r0 + 8020f22: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8020fb8: 68fb ldr r3, [r7, #12] - 8020fba: b21b sxth r3, r3 + 8020f24: 68fb ldr r3, [r7, #12] + 8020f26: b21b sxth r3, r3 } - 8020fbc: 4618 mov r0, r3 - 8020fbe: 3710 adds r7, #16 - 8020fc0: 46bd mov sp, r7 - 8020fc2: bd80 pop {r7, pc} + 8020f28: 4618 mov r0, r3 + 8020f2a: 3710 adds r7, #16 + 8020f2c: 46bd mov sp, r7 + 8020f2e: bd80 pop {r7, pc} -08020fc4 : +08020f30 : static inline lv_coord_t lv_obj_get_style_max_width(const struct _lv_obj_t * obj, uint32_t part) { - 8020fc4: b580 push {r7, lr} - 8020fc6: b084 sub sp, #16 - 8020fc8: af00 add r7, sp, #0 - 8020fca: 6078 str r0, [r7, #4] - 8020fcc: 6039 str r1, [r7, #0] + 8020f30: b580 push {r7, lr} + 8020f32: b084 sub sp, #16 + 8020f34: af00 add r7, sp, #0 + 8020f36: 6078 str r0, [r7, #4] + 8020f38: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MAX_WIDTH); - 8020fce: f241 0203 movw r2, #4099 ; 0x1003 - 8020fd2: 6839 ldr r1, [r7, #0] - 8020fd4: 6878 ldr r0, [r7, #4] - 8020fd6: f7ec feeb bl 800ddb0 - 8020fda: 4603 mov r3, r0 - 8020fdc: 60fb str r3, [r7, #12] + 8020f3a: f241 0203 movw r2, #4099 ; 0x1003 + 8020f3e: 6839 ldr r1, [r7, #0] + 8020f40: 6878 ldr r0, [r7, #4] + 8020f42: f7ec feff bl 800dd44 + 8020f46: 4603 mov r3, r0 + 8020f48: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8020fde: 68fb ldr r3, [r7, #12] - 8020fe0: b21b sxth r3, r3 + 8020f4a: 68fb ldr r3, [r7, #12] + 8020f4c: b21b sxth r3, r3 } - 8020fe2: 4618 mov r0, r3 - 8020fe4: 3710 adds r7, #16 - 8020fe6: 46bd mov sp, r7 - 8020fe8: bd80 pop {r7, pc} + 8020f4e: 4618 mov r0, r3 + 8020f50: 3710 adds r7, #16 + 8020f52: 46bd mov sp, r7 + 8020f54: bd80 pop {r7, pc} -08020fea : +08020f56 : static inline lv_coord_t lv_obj_get_style_height(const struct _lv_obj_t * obj, uint32_t part) { - 8020fea: b580 push {r7, lr} - 8020fec: b084 sub sp, #16 - 8020fee: af00 add r7, sp, #0 - 8020ff0: 6078 str r0, [r7, #4] - 8020ff2: 6039 str r1, [r7, #0] + 8020f56: b580 push {r7, lr} + 8020f58: b084 sub sp, #16 + 8020f5a: af00 add r7, sp, #0 + 8020f5c: 6078 str r0, [r7, #4] + 8020f5e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_HEIGHT); - 8020ff4: f241 0204 movw r2, #4100 ; 0x1004 - 8020ff8: 6839 ldr r1, [r7, #0] - 8020ffa: 6878 ldr r0, [r7, #4] - 8020ffc: f7ec fed8 bl 800ddb0 - 8021000: 4603 mov r3, r0 - 8021002: 60fb str r3, [r7, #12] + 8020f60: f241 0204 movw r2, #4100 ; 0x1004 + 8020f64: 6839 ldr r1, [r7, #0] + 8020f66: 6878 ldr r0, [r7, #4] + 8020f68: f7ec feec bl 800dd44 + 8020f6c: 4603 mov r3, r0 + 8020f6e: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8021004: 68fb ldr r3, [r7, #12] - 8021006: b21b sxth r3, r3 + 8020f70: 68fb ldr r3, [r7, #12] + 8020f72: b21b sxth r3, r3 } - 8021008: 4618 mov r0, r3 - 802100a: 3710 adds r7, #16 - 802100c: 46bd mov sp, r7 - 802100e: bd80 pop {r7, pc} + 8020f74: 4618 mov r0, r3 + 8020f76: 3710 adds r7, #16 + 8020f78: 46bd mov sp, r7 + 8020f7a: bd80 pop {r7, pc} -08021010 : +08020f7c : static inline lv_coord_t lv_obj_get_style_min_height(const struct _lv_obj_t * obj, uint32_t part) { - 8021010: b580 push {r7, lr} - 8021012: b084 sub sp, #16 - 8021014: af00 add r7, sp, #0 - 8021016: 6078 str r0, [r7, #4] - 8021018: 6039 str r1, [r7, #0] + 8020f7c: b580 push {r7, lr} + 8020f7e: b084 sub sp, #16 + 8020f80: af00 add r7, sp, #0 + 8020f82: 6078 str r0, [r7, #4] + 8020f84: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MIN_HEIGHT); - 802101a: f241 0205 movw r2, #4101 ; 0x1005 - 802101e: 6839 ldr r1, [r7, #0] - 8021020: 6878 ldr r0, [r7, #4] - 8021022: f7ec fec5 bl 800ddb0 - 8021026: 4603 mov r3, r0 - 8021028: 60fb str r3, [r7, #12] + 8020f86: f241 0205 movw r2, #4101 ; 0x1005 + 8020f8a: 6839 ldr r1, [r7, #0] + 8020f8c: 6878 ldr r0, [r7, #4] + 8020f8e: f7ec fed9 bl 800dd44 + 8020f92: 4603 mov r3, r0 + 8020f94: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 802102a: 68fb ldr r3, [r7, #12] - 802102c: b21b sxth r3, r3 + 8020f96: 68fb ldr r3, [r7, #12] + 8020f98: b21b sxth r3, r3 } - 802102e: 4618 mov r0, r3 - 8021030: 3710 adds r7, #16 - 8021032: 46bd mov sp, r7 - 8021034: bd80 pop {r7, pc} + 8020f9a: 4618 mov r0, r3 + 8020f9c: 3710 adds r7, #16 + 8020f9e: 46bd mov sp, r7 + 8020fa0: bd80 pop {r7, pc} -08021036 : +08020fa2 : static inline lv_coord_t lv_obj_get_style_max_height(const struct _lv_obj_t * obj, uint32_t part) { - 8021036: b580 push {r7, lr} - 8021038: b084 sub sp, #16 - 802103a: af00 add r7, sp, #0 - 802103c: 6078 str r0, [r7, #4] - 802103e: 6039 str r1, [r7, #0] + 8020fa2: b580 push {r7, lr} + 8020fa4: b084 sub sp, #16 + 8020fa6: af00 add r7, sp, #0 + 8020fa8: 6078 str r0, [r7, #4] + 8020faa: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MAX_HEIGHT); - 8021040: f241 0206 movw r2, #4102 ; 0x1006 - 8021044: 6839 ldr r1, [r7, #0] - 8021046: 6878 ldr r0, [r7, #4] - 8021048: f7ec feb2 bl 800ddb0 - 802104c: 4603 mov r3, r0 - 802104e: 60fb str r3, [r7, #12] + 8020fac: f241 0206 movw r2, #4102 ; 0x1006 + 8020fb0: 6839 ldr r1, [r7, #0] + 8020fb2: 6878 ldr r0, [r7, #4] + 8020fb4: f7ec fec6 bl 800dd44 + 8020fb8: 4603 mov r3, r0 + 8020fba: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8021050: 68fb ldr r3, [r7, #12] - 8021052: b21b sxth r3, r3 + 8020fbc: 68fb ldr r3, [r7, #12] + 8020fbe: b21b sxth r3, r3 } - 8021054: 4618 mov r0, r3 - 8021056: 3710 adds r7, #16 - 8021058: 46bd mov sp, r7 - 802105a: bd80 pop {r7, pc} + 8020fc0: 4618 mov r0, r3 + 8020fc2: 3710 adds r7, #16 + 8020fc4: 46bd mov sp, r7 + 8020fc6: bd80 pop {r7, pc} -0802105c : +08020fc8 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_HEIGHT); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_translate_x(const struct _lv_obj_t * obj, uint32_t part) { - 802105c: b580 push {r7, lr} - 802105e: b084 sub sp, #16 - 8021060: af00 add r7, sp, #0 - 8021062: 6078 str r0, [r7, #4] - 8021064: 6039 str r1, [r7, #0] + 8020fc8: b580 push {r7, lr} + 8020fca: b084 sub sp, #16 + 8020fcc: af00 add r7, sp, #0 + 8020fce: 6078 str r0, [r7, #4] + 8020fd0: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSLATE_X); - 8021066: f243 020c movw r2, #12300 ; 0x300c - 802106a: 6839 ldr r1, [r7, #0] - 802106c: 6878 ldr r0, [r7, #4] - 802106e: f7ec fe9f bl 800ddb0 - 8021072: 4603 mov r3, r0 - 8021074: 60fb str r3, [r7, #12] + 8020fd2: f243 020c movw r2, #12300 ; 0x300c + 8020fd6: 6839 ldr r1, [r7, #0] + 8020fd8: 6878 ldr r0, [r7, #4] + 8020fda: f7ec feb3 bl 800dd44 + 8020fde: 4603 mov r3, r0 + 8020fe0: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8021076: 68fb ldr r3, [r7, #12] - 8021078: b21b sxth r3, r3 + 8020fe2: 68fb ldr r3, [r7, #12] + 8020fe4: b21b sxth r3, r3 } - 802107a: 4618 mov r0, r3 - 802107c: 3710 adds r7, #16 - 802107e: 46bd mov sp, r7 - 8021080: bd80 pop {r7, pc} + 8020fe6: 4618 mov r0, r3 + 8020fe8: 3710 adds r7, #16 + 8020fea: 46bd mov sp, r7 + 8020fec: bd80 pop {r7, pc} -08021082 : +08020fee : static inline lv_coord_t lv_obj_get_style_translate_y(const struct _lv_obj_t * obj, uint32_t part) { - 8021082: b580 push {r7, lr} - 8021084: b084 sub sp, #16 - 8021086: af00 add r7, sp, #0 - 8021088: 6078 str r0, [r7, #4] - 802108a: 6039 str r1, [r7, #0] + 8020fee: b580 push {r7, lr} + 8020ff0: b084 sub sp, #16 + 8020ff2: af00 add r7, sp, #0 + 8020ff4: 6078 str r0, [r7, #4] + 8020ff6: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSLATE_Y); - 802108c: f243 020d movw r2, #12301 ; 0x300d - 8021090: 6839 ldr r1, [r7, #0] - 8021092: 6878 ldr r0, [r7, #4] - 8021094: f7ec fe8c bl 800ddb0 - 8021098: 4603 mov r3, r0 - 802109a: 60fb str r3, [r7, #12] + 8020ff8: f243 020d movw r2, #12301 ; 0x300d + 8020ffc: 6839 ldr r1, [r7, #0] + 8020ffe: 6878 ldr r0, [r7, #4] + 8021000: f7ec fea0 bl 800dd44 + 8021004: 4603 mov r3, r0 + 8021006: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 802109c: 68fb ldr r3, [r7, #12] - 802109e: b21b sxth r3, r3 + 8021008: 68fb ldr r3, [r7, #12] + 802100a: b21b sxth r3, r3 } - 80210a0: 4618 mov r0, r3 - 80210a2: 3710 adds r7, #16 - 80210a4: 46bd mov sp, r7 - 80210a6: bd80 pop {r7, pc} + 802100c: 4618 mov r0, r3 + 802100e: 3710 adds r7, #16 + 8021010: 46bd mov sp, r7 + 8021012: bd80 pop {r7, pc} -080210a8 : +08021014 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_ANGLE); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_pad_top(const struct _lv_obj_t * obj, uint32_t part) { - 80210a8: b580 push {r7, lr} - 80210aa: b084 sub sp, #16 - 80210ac: af00 add r7, sp, #0 - 80210ae: 6078 str r0, [r7, #4] - 80210b0: 6039 str r1, [r7, #0] + 8021014: b580 push {r7, lr} + 8021016: b084 sub sp, #16 + 8021018: af00 add r7, sp, #0 + 802101a: 6078 str r0, [r7, #4] + 802101c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 80210b2: f641 0210 movw r2, #6160 ; 0x1810 - 80210b6: 6839 ldr r1, [r7, #0] - 80210b8: 6878 ldr r0, [r7, #4] - 80210ba: f7ec fe79 bl 800ddb0 - 80210be: 4603 mov r3, r0 - 80210c0: 60fb str r3, [r7, #12] + 802101e: f641 0210 movw r2, #6160 ; 0x1810 + 8021022: 6839 ldr r1, [r7, #0] + 8021024: 6878 ldr r0, [r7, #4] + 8021026: f7ec fe8d bl 800dd44 + 802102a: 4603 mov r3, r0 + 802102c: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80210c2: 68fb ldr r3, [r7, #12] - 80210c4: b21b sxth r3, r3 + 802102e: 68fb ldr r3, [r7, #12] + 8021030: b21b sxth r3, r3 } - 80210c6: 4618 mov r0, r3 - 80210c8: 3710 adds r7, #16 - 80210ca: 46bd mov sp, r7 - 80210cc: bd80 pop {r7, pc} + 8021032: 4618 mov r0, r3 + 8021034: 3710 adds r7, #16 + 8021036: 46bd mov sp, r7 + 8021038: bd80 pop {r7, pc} -080210ce : +0802103a : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_pad_left(const struct _lv_obj_t * obj, uint32_t part) { - 80210ce: b580 push {r7, lr} - 80210d0: b084 sub sp, #16 - 80210d2: af00 add r7, sp, #0 - 80210d4: 6078 str r0, [r7, #4] - 80210d6: 6039 str r1, [r7, #0] + 802103a: b580 push {r7, lr} + 802103c: b084 sub sp, #16 + 802103e: af00 add r7, sp, #0 + 8021040: 6078 str r0, [r7, #4] + 8021042: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 80210d8: f641 0212 movw r2, #6162 ; 0x1812 - 80210dc: 6839 ldr r1, [r7, #0] - 80210de: 6878 ldr r0, [r7, #4] - 80210e0: f7ec fe66 bl 800ddb0 - 80210e4: 4603 mov r3, r0 - 80210e6: 60fb str r3, [r7, #12] + 8021044: f641 0212 movw r2, #6162 ; 0x1812 + 8021048: 6839 ldr r1, [r7, #0] + 802104a: 6878 ldr r0, [r7, #4] + 802104c: f7ec fe7a bl 800dd44 + 8021050: 4603 mov r3, r0 + 8021052: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80210e8: 68fb ldr r3, [r7, #12] - 80210ea: b21b sxth r3, r3 + 8021054: 68fb ldr r3, [r7, #12] + 8021056: b21b sxth r3, r3 } - 80210ec: 4618 mov r0, r3 - 80210ee: 3710 adds r7, #16 - 80210f0: 46bd mov sp, r7 - 80210f2: bd80 pop {r7, pc} + 8021058: 4618 mov r0, r3 + 802105a: 3710 adds r7, #16 + 802105c: 46bd mov sp, r7 + 802105e: bd80 pop {r7, pc} -080210f4 : +08021060 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_pad_row(const struct _lv_obj_t * obj, uint32_t part) { - 80210f4: b580 push {r7, lr} - 80210f6: b084 sub sp, #16 - 80210f8: af00 add r7, sp, #0 - 80210fa: 6078 str r0, [r7, #4] - 80210fc: 6039 str r1, [r7, #0] + 8021060: b580 push {r7, lr} + 8021062: b084 sub sp, #16 + 8021064: af00 add r7, sp, #0 + 8021066: 6078 str r0, [r7, #4] + 8021068: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_ROW); - 80210fe: f641 0214 movw r2, #6164 ; 0x1814 - 8021102: 6839 ldr r1, [r7, #0] - 8021104: 6878 ldr r0, [r7, #4] - 8021106: f7ec fe53 bl 800ddb0 - 802110a: 4603 mov r3, r0 - 802110c: 60fb str r3, [r7, #12] + 802106a: f641 0214 movw r2, #6164 ; 0x1814 + 802106e: 6839 ldr r1, [r7, #0] + 8021070: 6878 ldr r0, [r7, #4] + 8021072: f7ec fe67 bl 800dd44 + 8021076: 4603 mov r3, r0 + 8021078: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 802110e: 68fb ldr r3, [r7, #12] - 8021110: b21b sxth r3, r3 + 802107a: 68fb ldr r3, [r7, #12] + 802107c: b21b sxth r3, r3 } - 8021112: 4618 mov r0, r3 - 8021114: 3710 adds r7, #16 - 8021116: 46bd mov sp, r7 - 8021118: bd80 pop {r7, pc} + 802107e: 4618 mov r0, r3 + 8021080: 3710 adds r7, #16 + 8021082: 46bd mov sp, r7 + 8021084: bd80 pop {r7, pc} -0802111a : +08021086 : static inline lv_coord_t lv_obj_get_style_pad_column(const struct _lv_obj_t * obj, uint32_t part) { - 802111a: b580 push {r7, lr} - 802111c: b084 sub sp, #16 - 802111e: af00 add r7, sp, #0 - 8021120: 6078 str r0, [r7, #4] - 8021122: 6039 str r1, [r7, #0] + 8021086: b580 push {r7, lr} + 8021088: b084 sub sp, #16 + 802108a: af00 add r7, sp, #0 + 802108c: 6078 str r0, [r7, #4] + 802108e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_COLUMN); - 8021124: f641 0215 movw r2, #6165 ; 0x1815 - 8021128: 6839 ldr r1, [r7, #0] - 802112a: 6878 ldr r0, [r7, #4] - 802112c: f7ec fe40 bl 800ddb0 - 8021130: 4603 mov r3, r0 - 8021132: 60fb str r3, [r7, #12] + 8021090: f641 0215 movw r2, #6165 ; 0x1815 + 8021094: 6839 ldr r1, [r7, #0] + 8021096: 6878 ldr r0, [r7, #4] + 8021098: f7ec fe54 bl 800dd44 + 802109c: 4603 mov r3, r0 + 802109e: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8021134: 68fb ldr r3, [r7, #12] - 8021136: b21b sxth r3, r3 + 80210a0: 68fb ldr r3, [r7, #12] + 80210a2: b21b sxth r3, r3 } - 8021138: 4618 mov r0, r3 - 802113a: 3710 adds r7, #16 - 802113c: 46bd mov sp, r7 - 802113e: bd80 pop {r7, pc} + 80210a4: 4618 mov r0, r3 + 80210a6: 3710 adds r7, #16 + 80210a8: 46bd mov sp, r7 + 80210aa: bd80 pop {r7, pc} -08021140 : +080210ac : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_OPA); return (lv_opa_t)v.num; } static inline lv_coord_t lv_obj_get_style_border_width(const struct _lv_obj_t * obj, uint32_t part) { - 8021140: b580 push {r7, lr} - 8021142: b084 sub sp, #16 - 8021144: af00 add r7, sp, #0 - 8021146: 6078 str r0, [r7, #4] - 8021148: 6039 str r1, [r7, #0] + 80210ac: b580 push {r7, lr} + 80210ae: b084 sub sp, #16 + 80210b0: af00 add r7, sp, #0 + 80210b2: 6078 str r0, [r7, #4] + 80210b4: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); - 802114a: f241 0232 movw r2, #4146 ; 0x1032 - 802114e: 6839 ldr r1, [r7, #0] - 8021150: 6878 ldr r0, [r7, #4] - 8021152: f7ec fe2d bl 800ddb0 - 8021156: 4603 mov r3, r0 - 8021158: 60fb str r3, [r7, #12] + 80210b6: f241 0232 movw r2, #4146 ; 0x1032 + 80210ba: 6839 ldr r1, [r7, #0] + 80210bc: 6878 ldr r0, [r7, #4] + 80210be: f7ec fe41 bl 800dd44 + 80210c2: 4603 mov r3, r0 + 80210c4: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 802115a: 68fb ldr r3, [r7, #12] - 802115c: b21b sxth r3, r3 + 80210c6: 68fb ldr r3, [r7, #12] + 80210c8: b21b sxth r3, r3 } - 802115e: 4618 mov r0, r3 - 8021160: 3710 adds r7, #16 - 8021162: 46bd mov sp, r7 - 8021164: bd80 pop {r7, pc} + 80210ca: 4618 mov r0, r3 + 80210cc: 3710 adds r7, #16 + 80210ce: 46bd mov sp, r7 + 80210d0: bd80 pop {r7, pc} -08021166 : +080210d2 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LAYOUT); return (uint16_t)v.num; } static inline lv_base_dir_t lv_obj_get_style_base_dir(const struct _lv_obj_t * obj, uint32_t part) { - 8021166: b580 push {r7, lr} - 8021168: b084 sub sp, #16 - 802116a: af00 add r7, sp, #0 - 802116c: 6078 str r0, [r7, #4] - 802116e: 6039 str r1, [r7, #0] + 80210d2: b580 push {r7, lr} + 80210d4: b084 sub sp, #16 + 80210d6: af00 add r7, sp, #0 + 80210d8: 6078 str r0, [r7, #4] + 80210da: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BASE_DIR); - 8021170: f241 426a movw r2, #5226 ; 0x146a - 8021174: 6839 ldr r1, [r7, #0] - 8021176: 6878 ldr r0, [r7, #4] - 8021178: f7ec fe1a bl 800ddb0 - 802117c: 4603 mov r3, r0 - 802117e: 60fb str r3, [r7, #12] + 80210dc: f241 426a movw r2, #5226 ; 0x146a + 80210e0: 6839 ldr r1, [r7, #0] + 80210e2: 6878 ldr r0, [r7, #4] + 80210e4: f7ec fe2e bl 800dd44 + 80210e8: 4603 mov r3, r0 + 80210ea: 60fb str r3, [r7, #12] return (lv_base_dir_t)v.num; - 8021180: 68fb ldr r3, [r7, #12] - 8021182: b2db uxtb r3, r3 + 80210ec: 68fb ldr r3, [r7, #12] + 80210ee: b2db uxtb r3, r3 } - 8021184: 4618 mov r0, r3 - 8021186: 3710 adds r7, #16 - 8021188: 46bd mov sp, r7 - 802118a: bd80 pop {r7, pc} + 80210f0: 4618 mov r0, r3 + 80210f2: 3710 adds r7, #16 + 80210f4: 46bd mov sp, r7 + 80210f6: bd80 pop {r7, pc} -0802118c : +080210f8 : void lv_obj_set_style_flex_cross_place(lv_obj_t * obj, lv_flex_align_t value, lv_style_selector_t selector); void lv_obj_set_style_flex_track_place(lv_obj_t * obj, lv_flex_align_t value, lv_style_selector_t selector); void lv_obj_set_style_flex_grow(lv_obj_t * obj, uint8_t value, lv_style_selector_t selector); static inline lv_flex_flow_t lv_obj_get_style_flex_flow(const lv_obj_t * obj, uint32_t part) { - 802118c: b580 push {r7, lr} - 802118e: b084 sub sp, #16 - 8021190: af00 add r7, sp, #0 - 8021192: 6078 str r0, [r7, #4] - 8021194: 6039 str r1, [r7, #0] + 80210f8: b580 push {r7, lr} + 80210fa: b084 sub sp, #16 + 80210fc: af00 add r7, sp, #0 + 80210fe: 6078 str r0, [r7, #4] + 8021100: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_FLEX_FLOW); - 8021196: 4b07 ldr r3, [pc, #28] ; (80211b4 ) - 8021198: 881b ldrh r3, [r3, #0] - 802119a: 461a mov r2, r3 - 802119c: 6839 ldr r1, [r7, #0] - 802119e: 6878 ldr r0, [r7, #4] - 80211a0: f7ec fe06 bl 800ddb0 - 80211a4: 4603 mov r3, r0 - 80211a6: 60fb str r3, [r7, #12] + 8021102: 4b07 ldr r3, [pc, #28] ; (8021120 ) + 8021104: 881b ldrh r3, [r3, #0] + 8021106: 461a mov r2, r3 + 8021108: 6839 ldr r1, [r7, #0] + 802110a: 6878 ldr r0, [r7, #4] + 802110c: f7ec fe1a bl 800dd44 + 8021110: 4603 mov r3, r0 + 8021112: 60fb str r3, [r7, #12] return (lv_flex_flow_t)v.num; - 80211a8: 68fb ldr r3, [r7, #12] - 80211aa: b2db uxtb r3, r3 + 8021114: 68fb ldr r3, [r7, #12] + 8021116: b2db uxtb r3, r3 } - 80211ac: 4618 mov r0, r3 - 80211ae: 3710 adds r7, #16 - 80211b0: 46bd mov sp, r7 - 80211b2: bd80 pop {r7, pc} - 80211b4: 20001c28 .word 0x20001c28 + 8021118: 4618 mov r0, r3 + 802111a: 3710 adds r7, #16 + 802111c: 46bd mov sp, r7 + 802111e: bd80 pop {r7, pc} + 8021120: 20001c28 .word 0x20001c28 -080211b8 : +08021124 : static inline lv_flex_align_t lv_obj_get_style_flex_main_place(const lv_obj_t * obj, uint32_t part) { - 80211b8: b580 push {r7, lr} - 80211ba: b084 sub sp, #16 - 80211bc: af00 add r7, sp, #0 - 80211be: 6078 str r0, [r7, #4] - 80211c0: 6039 str r1, [r7, #0] + 8021124: b580 push {r7, lr} + 8021126: b084 sub sp, #16 + 8021128: af00 add r7, sp, #0 + 802112a: 6078 str r0, [r7, #4] + 802112c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_FLEX_MAIN_PLACE); - 80211c2: 4b07 ldr r3, [pc, #28] ; (80211e0 ) - 80211c4: 881b ldrh r3, [r3, #0] - 80211c6: 461a mov r2, r3 - 80211c8: 6839 ldr r1, [r7, #0] - 80211ca: 6878 ldr r0, [r7, #4] - 80211cc: f7ec fdf0 bl 800ddb0 - 80211d0: 4603 mov r3, r0 - 80211d2: 60fb str r3, [r7, #12] + 802112e: 4b07 ldr r3, [pc, #28] ; (802114c ) + 8021130: 881b ldrh r3, [r3, #0] + 8021132: 461a mov r2, r3 + 8021134: 6839 ldr r1, [r7, #0] + 8021136: 6878 ldr r0, [r7, #4] + 8021138: f7ec fe04 bl 800dd44 + 802113c: 4603 mov r3, r0 + 802113e: 60fb str r3, [r7, #12] return (lv_flex_align_t)v.num; - 80211d4: 68fb ldr r3, [r7, #12] - 80211d6: b2db uxtb r3, r3 + 8021140: 68fb ldr r3, [r7, #12] + 8021142: b2db uxtb r3, r3 } - 80211d8: 4618 mov r0, r3 - 80211da: 3710 adds r7, #16 - 80211dc: 46bd mov sp, r7 - 80211de: bd80 pop {r7, pc} - 80211e0: 20001c2a .word 0x20001c2a + 8021144: 4618 mov r0, r3 + 8021146: 3710 adds r7, #16 + 8021148: 46bd mov sp, r7 + 802114a: bd80 pop {r7, pc} + 802114c: 20001c2a .word 0x20001c2a -080211e4 : +08021150 : static inline lv_flex_align_t lv_obj_get_style_flex_cross_place(const lv_obj_t * obj, uint32_t part) { - 80211e4: b580 push {r7, lr} - 80211e6: b084 sub sp, #16 - 80211e8: af00 add r7, sp, #0 - 80211ea: 6078 str r0, [r7, #4] - 80211ec: 6039 str r1, [r7, #0] + 8021150: b580 push {r7, lr} + 8021152: b084 sub sp, #16 + 8021154: af00 add r7, sp, #0 + 8021156: 6078 str r0, [r7, #4] + 8021158: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_FLEX_CROSS_PLACE); - 80211ee: 4b07 ldr r3, [pc, #28] ; (802120c ) - 80211f0: 881b ldrh r3, [r3, #0] - 80211f2: 461a mov r2, r3 - 80211f4: 6839 ldr r1, [r7, #0] - 80211f6: 6878 ldr r0, [r7, #4] - 80211f8: f7ec fdda bl 800ddb0 - 80211fc: 4603 mov r3, r0 - 80211fe: 60fb str r3, [r7, #12] + 802115a: 4b07 ldr r3, [pc, #28] ; (8021178 ) + 802115c: 881b ldrh r3, [r3, #0] + 802115e: 461a mov r2, r3 + 8021160: 6839 ldr r1, [r7, #0] + 8021162: 6878 ldr r0, [r7, #4] + 8021164: f7ec fdee bl 800dd44 + 8021168: 4603 mov r3, r0 + 802116a: 60fb str r3, [r7, #12] return (lv_flex_align_t)v.num; - 8021200: 68fb ldr r3, [r7, #12] - 8021202: b2db uxtb r3, r3 + 802116c: 68fb ldr r3, [r7, #12] + 802116e: b2db uxtb r3, r3 } - 8021204: 4618 mov r0, r3 - 8021206: 3710 adds r7, #16 - 8021208: 46bd mov sp, r7 - 802120a: bd80 pop {r7, pc} - 802120c: 20001c2c .word 0x20001c2c + 8021170: 4618 mov r0, r3 + 8021172: 3710 adds r7, #16 + 8021174: 46bd mov sp, r7 + 8021176: bd80 pop {r7, pc} + 8021178: 20001c2c .word 0x20001c2c -08021210 : +0802117c : static inline lv_flex_align_t lv_obj_get_style_flex_track_place(const lv_obj_t * obj, uint32_t part) { - 8021210: b580 push {r7, lr} - 8021212: b084 sub sp, #16 - 8021214: af00 add r7, sp, #0 - 8021216: 6078 str r0, [r7, #4] - 8021218: 6039 str r1, [r7, #0] + 802117c: b580 push {r7, lr} + 802117e: b084 sub sp, #16 + 8021180: af00 add r7, sp, #0 + 8021182: 6078 str r0, [r7, #4] + 8021184: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_FLEX_TRACK_PLACE); - 802121a: 4b07 ldr r3, [pc, #28] ; (8021238 ) - 802121c: 881b ldrh r3, [r3, #0] - 802121e: 461a mov r2, r3 - 8021220: 6839 ldr r1, [r7, #0] - 8021222: 6878 ldr r0, [r7, #4] - 8021224: f7ec fdc4 bl 800ddb0 - 8021228: 4603 mov r3, r0 - 802122a: 60fb str r3, [r7, #12] + 8021186: 4b07 ldr r3, [pc, #28] ; (80211a4 ) + 8021188: 881b ldrh r3, [r3, #0] + 802118a: 461a mov r2, r3 + 802118c: 6839 ldr r1, [r7, #0] + 802118e: 6878 ldr r0, [r7, #4] + 8021190: f7ec fdd8 bl 800dd44 + 8021194: 4603 mov r3, r0 + 8021196: 60fb str r3, [r7, #12] return (lv_flex_align_t)v.num; - 802122c: 68fb ldr r3, [r7, #12] - 802122e: b2db uxtb r3, r3 + 8021198: 68fb ldr r3, [r7, #12] + 802119a: b2db uxtb r3, r3 } - 8021230: 4618 mov r0, r3 - 8021232: 3710 adds r7, #16 - 8021234: 46bd mov sp, r7 - 8021236: bd80 pop {r7, pc} - 8021238: 20001c2e .word 0x20001c2e + 802119c: 4618 mov r0, r3 + 802119e: 3710 adds r7, #16 + 80211a0: 46bd mov sp, r7 + 80211a2: bd80 pop {r7, pc} + 80211a4: 20001c2e .word 0x20001c2e -0802123c : +080211a8 : static inline uint8_t lv_obj_get_style_flex_grow(const lv_obj_t * obj, uint32_t part) { - 802123c: b580 push {r7, lr} - 802123e: b084 sub sp, #16 - 8021240: af00 add r7, sp, #0 - 8021242: 6078 str r0, [r7, #4] - 8021244: 6039 str r1, [r7, #0] + 80211a8: b580 push {r7, lr} + 80211aa: b084 sub sp, #16 + 80211ac: af00 add r7, sp, #0 + 80211ae: 6078 str r0, [r7, #4] + 80211b0: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_FLEX_GROW); - 8021246: 4b07 ldr r3, [pc, #28] ; (8021264 ) - 8021248: 881b ldrh r3, [r3, #0] - 802124a: 461a mov r2, r3 - 802124c: 6839 ldr r1, [r7, #0] - 802124e: 6878 ldr r0, [r7, #4] - 8021250: f7ec fdae bl 800ddb0 - 8021254: 4603 mov r3, r0 - 8021256: 60fb str r3, [r7, #12] + 80211b2: 4b07 ldr r3, [pc, #28] ; (80211d0 ) + 80211b4: 881b ldrh r3, [r3, #0] + 80211b6: 461a mov r2, r3 + 80211b8: 6839 ldr r1, [r7, #0] + 80211ba: 6878 ldr r0, [r7, #4] + 80211bc: f7ec fdc2 bl 800dd44 + 80211c0: 4603 mov r3, r0 + 80211c2: 60fb str r3, [r7, #12] return (uint8_t)v.num; - 8021258: 68fb ldr r3, [r7, #12] - 802125a: b2db uxtb r3, r3 + 80211c4: 68fb ldr r3, [r7, #12] + 80211c6: b2db uxtb r3, r3 } - 802125c: 4618 mov r0, r3 - 802125e: 3710 adds r7, #16 - 8021260: 46bd mov sp, r7 - 8021262: bd80 pop {r7, pc} - 8021264: 20001c30 .word 0x20001c30 + 80211c8: 4618 mov r0, r3 + 80211ca: 3710 adds r7, #16 + 80211cc: 46bd mov sp, r7 + 80211ce: bd80 pop {r7, pc} + 80211d0: 20001c30 .word 0x20001c30 -08021268 : +080211d4 : /*===================== * Setter functions *====================*/ void lv_flex_init(void) { - 8021268: b580 push {r7, lr} - 802126a: af00 add r7, sp, #0 + 80211d4: b580 push {r7, lr} + 80211d6: af00 add r7, sp, #0 LV_LAYOUT_FLEX = lv_layout_register(flex_update, NULL); - 802126c: 2100 movs r1, #0 - 802126e: 4813 ldr r0, [pc, #76] ; (80212bc ) - 8021270: f7e8 fb90 bl 8009994 - 8021274: 4603 mov r3, r0 - 8021276: 4a12 ldr r2, [pc, #72] ; (80212c0 ) - 8021278: 6013 str r3, [r2, #0] + 80211d8: 2100 movs r1, #0 + 80211da: 4813 ldr r0, [pc, #76] ; (8021228 ) + 80211dc: f7e8 fba4 bl 8009928 + 80211e0: 4603 mov r3, r0 + 80211e2: 4a12 ldr r2, [pc, #72] ; (802122c ) + 80211e4: 6013 str r3, [r2, #0] LV_STYLE_FLEX_FLOW = lv_style_register_prop(); - 802127a: f013 f815 bl 80342a8 - 802127e: 4603 mov r3, r0 - 8021280: 461a mov r2, r3 - 8021282: 4b10 ldr r3, [pc, #64] ; (80212c4 ) - 8021284: 801a strh r2, [r3, #0] + 80211e6: f013 f815 bl 8034214 + 80211ea: 4603 mov r3, r0 + 80211ec: 461a mov r2, r3 + 80211ee: 4b10 ldr r3, [pc, #64] ; (8021230 ) + 80211f0: 801a strh r2, [r3, #0] LV_STYLE_FLEX_MAIN_PLACE = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR; - 8021286: f013 f80f bl 80342a8 - 802128a: 4603 mov r3, r0 - 802128c: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 8021290: b29a uxth r2, r3 - 8021292: 4b0d ldr r3, [pc, #52] ; (80212c8 ) - 8021294: 801a strh r2, [r3, #0] + 80211f2: f013 f80f bl 8034214 + 80211f6: 4603 mov r3, r0 + 80211f8: f443 5380 orr.w r3, r3, #4096 ; 0x1000 + 80211fc: b29a uxth r2, r3 + 80211fe: 4b0d ldr r3, [pc, #52] ; (8021234 ) + 8021200: 801a strh r2, [r3, #0] LV_STYLE_FLEX_CROSS_PLACE = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR; - 8021296: f013 f807 bl 80342a8 - 802129a: 4603 mov r3, r0 - 802129c: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 80212a0: b29a uxth r2, r3 - 80212a2: 4b0a ldr r3, [pc, #40] ; (80212cc ) - 80212a4: 801a strh r2, [r3, #0] + 8021202: f013 f807 bl 8034214 + 8021206: 4603 mov r3, r0 + 8021208: f443 5380 orr.w r3, r3, #4096 ; 0x1000 + 802120c: b29a uxth r2, r3 + 802120e: 4b0a ldr r3, [pc, #40] ; (8021238 ) + 8021210: 801a strh r2, [r3, #0] LV_STYLE_FLEX_TRACK_PLACE = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR; - 80212a6: f012 ffff bl 80342a8 - 80212aa: 4603 mov r3, r0 - 80212ac: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 80212b0: b29a uxth r2, r3 - 80212b2: 4b07 ldr r3, [pc, #28] ; (80212d0 ) - 80212b4: 801a strh r2, [r3, #0] + 8021212: f012 ffff bl 8034214 + 8021216: 4603 mov r3, r0 + 8021218: f443 5380 orr.w r3, r3, #4096 ; 0x1000 + 802121c: b29a uxth r2, r3 + 802121e: 4b07 ldr r3, [pc, #28] ; (802123c ) + 8021220: 801a strh r2, [r3, #0] } - 80212b6: bf00 nop - 80212b8: bd80 pop {r7, pc} - 80212ba: bf00 nop - 80212bc: 08021471 .word 0x08021471 - 80212c0: 20001c24 .word 0x20001c24 - 80212c4: 20001c28 .word 0x20001c28 - 80212c8: 20001c2a .word 0x20001c2a - 80212cc: 20001c2c .word 0x20001c2c - 80212d0: 20001c2e .word 0x20001c2e + 8021222: bf00 nop + 8021224: bd80 pop {r7, pc} + 8021226: bf00 nop + 8021228: 080213dd .word 0x080213dd + 802122c: 20001c24 .word 0x20001c24 + 8021230: 20001c28 .word 0x20001c28 + 8021234: 20001c2a .word 0x20001c2a + 8021238: 20001c2c .word 0x20001c2c + 802123c: 20001c2e .word 0x20001c2e -080212d4 : +08021240 : void lv_obj_set_flex_flow(lv_obj_t * obj, lv_flex_flow_t flow) { - 80212d4: b580 push {r7, lr} - 80212d6: b082 sub sp, #8 - 80212d8: af00 add r7, sp, #0 - 80212da: 6078 str r0, [r7, #4] - 80212dc: 460b mov r3, r1 - 80212de: 70fb strb r3, [r7, #3] + 8021240: b580 push {r7, lr} + 8021242: b082 sub sp, #8 + 8021244: af00 add r7, sp, #0 + 8021246: 6078 str r0, [r7, #4] + 8021248: 460b mov r3, r1 + 802124a: 70fb strb r3, [r7, #3] lv_obj_set_style_flex_flow(obj, flow, 0); - 80212e0: 78fb ldrb r3, [r7, #3] - 80212e2: 2200 movs r2, #0 - 80212e4: 4619 mov r1, r3 - 80212e6: 6878 ldr r0, [r7, #4] - 80212e8: f000 f854 bl 8021394 + 802124c: 78fb ldrb r3, [r7, #3] + 802124e: 2200 movs r2, #0 + 8021250: 4619 mov r1, r3 + 8021252: 6878 ldr r0, [r7, #4] + 8021254: f000 f854 bl 8021300 lv_obj_set_style_layout(obj, LV_LAYOUT_FLEX, 0); - 80212ec: 4b05 ldr r3, [pc, #20] ; (8021304 ) - 80212ee: 681b ldr r3, [r3, #0] - 80212f0: b29b uxth r3, r3 - 80212f2: 2200 movs r2, #0 - 80212f4: 4619 mov r1, r3 - 80212f6: 6878 ldr r0, [r7, #4] - 80212f8: f7ee f82a bl 800f350 + 8021258: 4b05 ldr r3, [pc, #20] ; (8021270 ) + 802125a: 681b ldr r3, [r3, #0] + 802125c: b29b uxth r3, r3 + 802125e: 2200 movs r2, #0 + 8021260: 4619 mov r1, r3 + 8021262: 6878 ldr r0, [r7, #4] + 8021264: f7ee f82a bl 800f2bc } - 80212fc: bf00 nop - 80212fe: 3708 adds r7, #8 - 8021300: 46bd mov sp, r7 - 8021302: bd80 pop {r7, pc} - 8021304: 20001c24 .word 0x20001c24 + 8021268: bf00 nop + 802126a: 3708 adds r7, #8 + 802126c: 46bd mov sp, r7 + 802126e: bd80 pop {r7, pc} + 8021270: 20001c24 .word 0x20001c24 -08021308 : +08021274 : void lv_obj_set_flex_align(lv_obj_t * obj, lv_flex_align_t main_place, lv_flex_align_t cross_place, lv_flex_align_t track_place) { - 8021308: b580 push {r7, lr} - 802130a: b082 sub sp, #8 - 802130c: af00 add r7, sp, #0 - 802130e: 6078 str r0, [r7, #4] - 8021310: 4608 mov r0, r1 - 8021312: 4611 mov r1, r2 - 8021314: 461a mov r2, r3 - 8021316: 4603 mov r3, r0 - 8021318: 70fb strb r3, [r7, #3] - 802131a: 460b mov r3, r1 - 802131c: 70bb strb r3, [r7, #2] - 802131e: 4613 mov r3, r2 - 8021320: 707b strb r3, [r7, #1] + 8021274: b580 push {r7, lr} + 8021276: b082 sub sp, #8 + 8021278: af00 add r7, sp, #0 + 802127a: 6078 str r0, [r7, #4] + 802127c: 4608 mov r0, r1 + 802127e: 4611 mov r1, r2 + 8021280: 461a mov r2, r3 + 8021282: 4603 mov r3, r0 + 8021284: 70fb strb r3, [r7, #3] + 8021286: 460b mov r3, r1 + 8021288: 70bb strb r3, [r7, #2] + 802128a: 4613 mov r3, r2 + 802128c: 707b strb r3, [r7, #1] lv_obj_set_style_flex_main_place(obj, main_place, 0); - 8021322: 78fb ldrb r3, [r7, #3] - 8021324: 2200 movs r2, #0 - 8021326: 4619 mov r1, r3 - 8021328: 6878 ldr r0, [r7, #4] - 802132a: f000 f849 bl 80213c0 + 802128e: 78fb ldrb r3, [r7, #3] + 8021290: 2200 movs r2, #0 + 8021292: 4619 mov r1, r3 + 8021294: 6878 ldr r0, [r7, #4] + 8021296: f000 f849 bl 802132c lv_obj_set_style_flex_cross_place(obj, cross_place, 0); - 802132e: 78bb ldrb r3, [r7, #2] - 8021330: 2200 movs r2, #0 - 8021332: 4619 mov r1, r3 - 8021334: 6878 ldr r0, [r7, #4] - 8021336: f000 f859 bl 80213ec + 802129a: 78bb ldrb r3, [r7, #2] + 802129c: 2200 movs r2, #0 + 802129e: 4619 mov r1, r3 + 80212a0: 6878 ldr r0, [r7, #4] + 80212a2: f000 f859 bl 8021358 lv_obj_set_style_flex_track_place(obj, track_place, 0); - 802133a: 787b ldrb r3, [r7, #1] - 802133c: 2200 movs r2, #0 - 802133e: 4619 mov r1, r3 - 8021340: 6878 ldr r0, [r7, #4] - 8021342: f000 f869 bl 8021418 + 80212a6: 787b ldrb r3, [r7, #1] + 80212a8: 2200 movs r2, #0 + 80212aa: 4619 mov r1, r3 + 80212ac: 6878 ldr r0, [r7, #4] + 80212ae: f000 f869 bl 8021384 lv_obj_set_style_layout(obj, LV_LAYOUT_FLEX, 0); - 8021346: 4b06 ldr r3, [pc, #24] ; (8021360 ) - 8021348: 681b ldr r3, [r3, #0] - 802134a: b29b uxth r3, r3 - 802134c: 2200 movs r2, #0 - 802134e: 4619 mov r1, r3 - 8021350: 6878 ldr r0, [r7, #4] - 8021352: f7ed fffd bl 800f350 + 80212b2: 4b06 ldr r3, [pc, #24] ; (80212cc ) + 80212b4: 681b ldr r3, [r3, #0] + 80212b6: b29b uxth r3, r3 + 80212b8: 2200 movs r2, #0 + 80212ba: 4619 mov r1, r3 + 80212bc: 6878 ldr r0, [r7, #4] + 80212be: f7ed fffd bl 800f2bc } - 8021356: bf00 nop - 8021358: 3708 adds r7, #8 - 802135a: 46bd mov sp, r7 - 802135c: bd80 pop {r7, pc} - 802135e: bf00 nop - 8021360: 20001c24 .word 0x20001c24 + 80212c2: bf00 nop + 80212c4: 3708 adds r7, #8 + 80212c6: 46bd mov sp, r7 + 80212c8: bd80 pop {r7, pc} + 80212ca: bf00 nop + 80212cc: 20001c24 .word 0x20001c24 -08021364 : +080212d0 : void lv_obj_set_flex_grow(lv_obj_t * obj, uint8_t grow) { - 8021364: b580 push {r7, lr} - 8021366: b082 sub sp, #8 - 8021368: af00 add r7, sp, #0 - 802136a: 6078 str r0, [r7, #4] - 802136c: 460b mov r3, r1 - 802136e: 70fb strb r3, [r7, #3] + 80212d0: b580 push {r7, lr} + 80212d2: b082 sub sp, #8 + 80212d4: af00 add r7, sp, #0 + 80212d6: 6078 str r0, [r7, #4] + 80212d8: 460b mov r3, r1 + 80212da: 70fb strb r3, [r7, #3] lv_obj_set_style_flex_grow(obj, grow, 0); - 8021370: 78fb ldrb r3, [r7, #3] - 8021372: 2200 movs r2, #0 - 8021374: 4619 mov r1, r3 - 8021376: 6878 ldr r0, [r7, #4] - 8021378: f000 f864 bl 8021444 + 80212dc: 78fb ldrb r3, [r7, #3] + 80212de: 2200 movs r2, #0 + 80212e0: 4619 mov r1, r3 + 80212e2: 6878 ldr r0, [r7, #4] + 80212e4: f000 f864 bl 80213b0 lv_obj_mark_layout_as_dirty(lv_obj_get_parent(obj)); - 802137c: 6878 ldr r0, [r7, #4] - 802137e: f7ee f9c5 bl 800f70c - 8021382: 4603 mov r3, r0 - 8021384: 4618 mov r0, r3 - 8021386: f7e8 fab1 bl 80098ec + 80212e8: 6878 ldr r0, [r7, #4] + 80212ea: f7ee f9c5 bl 800f678 + 80212ee: 4603 mov r3, r0 + 80212f0: 4618 mov r0, r3 + 80212f2: f7e8 fac5 bl 8009880 } - 802138a: bf00 nop - 802138c: 3708 adds r7, #8 - 802138e: 46bd mov sp, r7 - 8021390: bd80 pop {r7, pc} + 80212f6: bf00 nop + 80212f8: 3708 adds r7, #8 + 80212fa: 46bd mov sp, r7 + 80212fc: bd80 pop {r7, pc} ... -08021394 : +08021300 : lv_style_set_prop(style, LV_STYLE_FLEX_GROW, v); } void lv_obj_set_style_flex_flow(lv_obj_t * obj, lv_flex_flow_t value, lv_style_selector_t selector) { - 8021394: b580 push {r7, lr} - 8021396: b086 sub sp, #24 - 8021398: af00 add r7, sp, #0 - 802139a: 60f8 str r0, [r7, #12] - 802139c: 460b mov r3, r1 - 802139e: 607a str r2, [r7, #4] - 80213a0: 72fb strb r3, [r7, #11] + 8021300: b580 push {r7, lr} + 8021302: b086 sub sp, #24 + 8021304: af00 add r7, sp, #0 + 8021306: 60f8 str r0, [r7, #12] + 8021308: 460b mov r3, r1 + 802130a: 607a str r2, [r7, #4] + 802130c: 72fb strb r3, [r7, #11] lv_style_value_t v = { .num = (int32_t) value - 80213a2: 7afb ldrb r3, [r7, #11] + 802130e: 7afb ldrb r3, [r7, #11] lv_style_value_t v = { - 80213a4: 617b str r3, [r7, #20] + 8021310: 617b str r3, [r7, #20] }; lv_obj_set_local_style_prop(obj, LV_STYLE_FLEX_FLOW, v, selector); - 80213a6: 4b05 ldr r3, [pc, #20] ; (80213bc ) - 80213a8: 8819 ldrh r1, [r3, #0] - 80213aa: 687b ldr r3, [r7, #4] - 80213ac: 697a ldr r2, [r7, #20] - 80213ae: 68f8 ldr r0, [r7, #12] - 80213b0: f7ec fd96 bl 800dee0 + 8021312: 4b05 ldr r3, [pc, #20] ; (8021328 ) + 8021314: 8819 ldrh r1, [r3, #0] + 8021316: 687b ldr r3, [r7, #4] + 8021318: 697a ldr r2, [r7, #20] + 802131a: 68f8 ldr r0, [r7, #12] + 802131c: f7ec fdaa bl 800de74 } - 80213b4: bf00 nop - 80213b6: 3718 adds r7, #24 - 80213b8: 46bd mov sp, r7 - 80213ba: bd80 pop {r7, pc} - 80213bc: 20001c28 .word 0x20001c28 + 8021320: bf00 nop + 8021322: 3718 adds r7, #24 + 8021324: 46bd mov sp, r7 + 8021326: bd80 pop {r7, pc} + 8021328: 20001c28 .word 0x20001c28 -080213c0 : +0802132c : void lv_obj_set_style_flex_main_place(lv_obj_t * obj, lv_flex_align_t value, lv_style_selector_t selector) { - 80213c0: b580 push {r7, lr} - 80213c2: b086 sub sp, #24 - 80213c4: af00 add r7, sp, #0 - 80213c6: 60f8 str r0, [r7, #12] - 80213c8: 460b mov r3, r1 - 80213ca: 607a str r2, [r7, #4] - 80213cc: 72fb strb r3, [r7, #11] + 802132c: b580 push {r7, lr} + 802132e: b086 sub sp, #24 + 8021330: af00 add r7, sp, #0 + 8021332: 60f8 str r0, [r7, #12] + 8021334: 460b mov r3, r1 + 8021336: 607a str r2, [r7, #4] + 8021338: 72fb strb r3, [r7, #11] lv_style_value_t v = { .num = (int32_t) value - 80213ce: 7afb ldrb r3, [r7, #11] + 802133a: 7afb ldrb r3, [r7, #11] lv_style_value_t v = { - 80213d0: 617b str r3, [r7, #20] + 802133c: 617b str r3, [r7, #20] }; lv_obj_set_local_style_prop(obj, LV_STYLE_FLEX_MAIN_PLACE, v, selector); - 80213d2: 4b05 ldr r3, [pc, #20] ; (80213e8 ) - 80213d4: 8819 ldrh r1, [r3, #0] - 80213d6: 687b ldr r3, [r7, #4] - 80213d8: 697a ldr r2, [r7, #20] - 80213da: 68f8 ldr r0, [r7, #12] - 80213dc: f7ec fd80 bl 800dee0 + 802133e: 4b05 ldr r3, [pc, #20] ; (8021354 ) + 8021340: 8819 ldrh r1, [r3, #0] + 8021342: 687b ldr r3, [r7, #4] + 8021344: 697a ldr r2, [r7, #20] + 8021346: 68f8 ldr r0, [r7, #12] + 8021348: f7ec fd94 bl 800de74 } - 80213e0: bf00 nop - 80213e2: 3718 adds r7, #24 - 80213e4: 46bd mov sp, r7 - 80213e6: bd80 pop {r7, pc} - 80213e8: 20001c2a .word 0x20001c2a + 802134c: bf00 nop + 802134e: 3718 adds r7, #24 + 8021350: 46bd mov sp, r7 + 8021352: bd80 pop {r7, pc} + 8021354: 20001c2a .word 0x20001c2a -080213ec : +08021358 : void lv_obj_set_style_flex_cross_place(lv_obj_t * obj, lv_flex_align_t value, lv_style_selector_t selector) { - 80213ec: b580 push {r7, lr} - 80213ee: b086 sub sp, #24 - 80213f0: af00 add r7, sp, #0 - 80213f2: 60f8 str r0, [r7, #12] - 80213f4: 460b mov r3, r1 - 80213f6: 607a str r2, [r7, #4] - 80213f8: 72fb strb r3, [r7, #11] + 8021358: b580 push {r7, lr} + 802135a: b086 sub sp, #24 + 802135c: af00 add r7, sp, #0 + 802135e: 60f8 str r0, [r7, #12] + 8021360: 460b mov r3, r1 + 8021362: 607a str r2, [r7, #4] + 8021364: 72fb strb r3, [r7, #11] lv_style_value_t v = { .num = (int32_t) value - 80213fa: 7afb ldrb r3, [r7, #11] + 8021366: 7afb ldrb r3, [r7, #11] lv_style_value_t v = { - 80213fc: 617b str r3, [r7, #20] + 8021368: 617b str r3, [r7, #20] }; lv_obj_set_local_style_prop(obj, LV_STYLE_FLEX_CROSS_PLACE, v, selector); - 80213fe: 4b05 ldr r3, [pc, #20] ; (8021414 ) - 8021400: 8819 ldrh r1, [r3, #0] - 8021402: 687b ldr r3, [r7, #4] - 8021404: 697a ldr r2, [r7, #20] - 8021406: 68f8 ldr r0, [r7, #12] - 8021408: f7ec fd6a bl 800dee0 + 802136a: 4b05 ldr r3, [pc, #20] ; (8021380 ) + 802136c: 8819 ldrh r1, [r3, #0] + 802136e: 687b ldr r3, [r7, #4] + 8021370: 697a ldr r2, [r7, #20] + 8021372: 68f8 ldr r0, [r7, #12] + 8021374: f7ec fd7e bl 800de74 } - 802140c: bf00 nop - 802140e: 3718 adds r7, #24 - 8021410: 46bd mov sp, r7 - 8021412: bd80 pop {r7, pc} - 8021414: 20001c2c .word 0x20001c2c + 8021378: bf00 nop + 802137a: 3718 adds r7, #24 + 802137c: 46bd mov sp, r7 + 802137e: bd80 pop {r7, pc} + 8021380: 20001c2c .word 0x20001c2c -08021418 : +08021384 : void lv_obj_set_style_flex_track_place(lv_obj_t * obj, lv_flex_align_t value, lv_style_selector_t selector) { - 8021418: b580 push {r7, lr} - 802141a: b086 sub sp, #24 - 802141c: af00 add r7, sp, #0 - 802141e: 60f8 str r0, [r7, #12] - 8021420: 460b mov r3, r1 - 8021422: 607a str r2, [r7, #4] - 8021424: 72fb strb r3, [r7, #11] + 8021384: b580 push {r7, lr} + 8021386: b086 sub sp, #24 + 8021388: af00 add r7, sp, #0 + 802138a: 60f8 str r0, [r7, #12] + 802138c: 460b mov r3, r1 + 802138e: 607a str r2, [r7, #4] + 8021390: 72fb strb r3, [r7, #11] lv_style_value_t v = { .num = (int32_t) value - 8021426: 7afb ldrb r3, [r7, #11] + 8021392: 7afb ldrb r3, [r7, #11] lv_style_value_t v = { - 8021428: 617b str r3, [r7, #20] + 8021394: 617b str r3, [r7, #20] }; lv_obj_set_local_style_prop(obj, LV_STYLE_FLEX_TRACK_PLACE, v, selector); - 802142a: 4b05 ldr r3, [pc, #20] ; (8021440 ) - 802142c: 8819 ldrh r1, [r3, #0] - 802142e: 687b ldr r3, [r7, #4] - 8021430: 697a ldr r2, [r7, #20] - 8021432: 68f8 ldr r0, [r7, #12] - 8021434: f7ec fd54 bl 800dee0 + 8021396: 4b05 ldr r3, [pc, #20] ; (80213ac ) + 8021398: 8819 ldrh r1, [r3, #0] + 802139a: 687b ldr r3, [r7, #4] + 802139c: 697a ldr r2, [r7, #20] + 802139e: 68f8 ldr r0, [r7, #12] + 80213a0: f7ec fd68 bl 800de74 } - 8021438: bf00 nop - 802143a: 3718 adds r7, #24 - 802143c: 46bd mov sp, r7 - 802143e: bd80 pop {r7, pc} - 8021440: 20001c2e .word 0x20001c2e + 80213a4: bf00 nop + 80213a6: 3718 adds r7, #24 + 80213a8: 46bd mov sp, r7 + 80213aa: bd80 pop {r7, pc} + 80213ac: 20001c2e .word 0x20001c2e -08021444 : +080213b0 : void lv_obj_set_style_flex_grow(lv_obj_t * obj, uint8_t value, lv_style_selector_t selector) { - 8021444: b580 push {r7, lr} - 8021446: b086 sub sp, #24 - 8021448: af00 add r7, sp, #0 - 802144a: 60f8 str r0, [r7, #12] - 802144c: 460b mov r3, r1 - 802144e: 607a str r2, [r7, #4] - 8021450: 72fb strb r3, [r7, #11] + 80213b0: b580 push {r7, lr} + 80213b2: b086 sub sp, #24 + 80213b4: af00 add r7, sp, #0 + 80213b6: 60f8 str r0, [r7, #12] + 80213b8: 460b mov r3, r1 + 80213ba: 607a str r2, [r7, #4] + 80213bc: 72fb strb r3, [r7, #11] lv_style_value_t v = { .num = (int32_t) value - 8021452: 7afb ldrb r3, [r7, #11] + 80213be: 7afb ldrb r3, [r7, #11] lv_style_value_t v = { - 8021454: 617b str r3, [r7, #20] + 80213c0: 617b str r3, [r7, #20] }; lv_obj_set_local_style_prop(obj, LV_STYLE_FLEX_GROW, v, selector); - 8021456: 4b05 ldr r3, [pc, #20] ; (802146c ) - 8021458: 8819 ldrh r1, [r3, #0] - 802145a: 687b ldr r3, [r7, #4] - 802145c: 697a ldr r2, [r7, #20] - 802145e: 68f8 ldr r0, [r7, #12] - 8021460: f7ec fd3e bl 800dee0 + 80213c2: 4b05 ldr r3, [pc, #20] ; (80213d8 ) + 80213c4: 8819 ldrh r1, [r3, #0] + 80213c6: 687b ldr r3, [r7, #4] + 80213c8: 697a ldr r2, [r7, #20] + 80213ca: 68f8 ldr r0, [r7, #12] + 80213cc: f7ec fd52 bl 800de74 } - 8021464: bf00 nop - 8021466: 3718 adds r7, #24 - 8021468: 46bd mov sp, r7 - 802146a: bd80 pop {r7, pc} - 802146c: 20001c30 .word 0x20001c30 + 80213d0: bf00 nop + 80213d2: 3718 adds r7, #24 + 80213d4: 46bd mov sp, r7 + 80213d6: bd80 pop {r7, pc} + 80213d8: 20001c30 .word 0x20001c30 -08021470 : +080213dc : /********************** * STATIC FUNCTIONS **********************/ static void flex_update(lv_obj_t * cont, void * user_data) { - 8021470: b590 push {r4, r7, lr} - 8021472: b0a3 sub sp, #140 ; 0x8c - 8021474: af06 add r7, sp, #24 - 8021476: 6078 str r0, [r7, #4] - 8021478: 6039 str r1, [r7, #0] + 80213dc: b590 push {r4, r7, lr} + 80213de: b0a3 sub sp, #140 ; 0x8c + 80213e0: af06 add r7, sp, #24 + 80213e2: 6078 str r0, [r7, #4] + 80213e4: 6039 str r1, [r7, #0] LV_LOG_INFO("update %p container", (void *)cont); LV_UNUSED(user_data); flex_t f; lv_flex_flow_t flow = lv_obj_get_style_flex_flow(cont, LV_PART_MAIN); - 802147a: 2100 movs r1, #0 - 802147c: 6878 ldr r0, [r7, #4] - 802147e: f7ff fe85 bl 802118c - 8021482: 4603 mov r3, r0 - 8021484: f887 3063 strb.w r3, [r7, #99] ; 0x63 + 80213e6: 2100 movs r1, #0 + 80213e8: 6878 ldr r0, [r7, #4] + 80213ea: f7ff fe85 bl 80210f8 + 80213ee: 4603 mov r3, r0 + 80213f0: f887 3063 strb.w r3, [r7, #99] ; 0x63 f.row = flow & _LV_FLEX_COLUMN ? 0 : 1; - 8021488: f897 3063 ldrb.w r3, [r7, #99] ; 0x63 - 802148c: f003 0301 and.w r3, r3, #1 - 8021490: 2b00 cmp r3, #0 - 8021492: bf0c ite eq - 8021494: 2301 moveq r3, #1 - 8021496: 2300 movne r3, #0 - 8021498: b2da uxtb r2, r3 - 802149a: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 802149e: f362 0300 bfi r3, r2, #0, #1 - 80214a2: f887 3047 strb.w r3, [r7, #71] ; 0x47 + 80213f4: f897 3063 ldrb.w r3, [r7, #99] ; 0x63 + 80213f8: f003 0301 and.w r3, r3, #1 + 80213fc: 2b00 cmp r3, #0 + 80213fe: bf0c ite eq + 8021400: 2301 moveq r3, #1 + 8021402: 2300 movne r3, #0 + 8021404: b2da uxtb r2, r3 + 8021406: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 802140a: f362 0300 bfi r3, r2, #0, #1 + 802140e: f887 3047 strb.w r3, [r7, #71] ; 0x47 f.wrap = flow & _LV_FLEX_WRAP ? 1 : 0; - 80214a6: f897 3063 ldrb.w r3, [r7, #99] ; 0x63 - 80214aa: 109b asrs r3, r3, #2 - 80214ac: f003 0301 and.w r3, r3, #1 - 80214b0: b2da uxtb r2, r3 - 80214b2: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 80214b6: f362 0341 bfi r3, r2, #1, #1 - 80214ba: f887 3047 strb.w r3, [r7, #71] ; 0x47 + 8021412: f897 3063 ldrb.w r3, [r7, #99] ; 0x63 + 8021416: 109b asrs r3, r3, #2 + 8021418: f003 0301 and.w r3, r3, #1 + 802141c: b2da uxtb r2, r3 + 802141e: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 8021422: f362 0341 bfi r3, r2, #1, #1 + 8021426: f887 3047 strb.w r3, [r7, #71] ; 0x47 f.rev = flow & _LV_FLEX_REVERSE ? 1 : 0; - 80214be: f897 3063 ldrb.w r3, [r7, #99] ; 0x63 - 80214c2: 10db asrs r3, r3, #3 - 80214c4: f003 0301 and.w r3, r3, #1 - 80214c8: b2da uxtb r2, r3 - 80214ca: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 80214ce: f362 0382 bfi r3, r2, #2, #1 - 80214d2: f887 3047 strb.w r3, [r7, #71] ; 0x47 + 802142a: f897 3063 ldrb.w r3, [r7, #99] ; 0x63 + 802142e: 10db asrs r3, r3, #3 + 8021430: f003 0301 and.w r3, r3, #1 + 8021434: b2da uxtb r2, r3 + 8021436: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 802143a: f362 0382 bfi r3, r2, #2, #1 + 802143e: f887 3047 strb.w r3, [r7, #71] ; 0x47 f.main_place = lv_obj_get_style_flex_main_place(cont, LV_PART_MAIN); - 80214d6: 2100 movs r1, #0 - 80214d8: 6878 ldr r0, [r7, #4] - 80214da: f7ff fe6d bl 80211b8 - 80214de: 4603 mov r3, r0 - 80214e0: f887 3044 strb.w r3, [r7, #68] ; 0x44 + 8021442: 2100 movs r1, #0 + 8021444: 6878 ldr r0, [r7, #4] + 8021446: f7ff fe6d bl 8021124 + 802144a: 4603 mov r3, r0 + 802144c: f887 3044 strb.w r3, [r7, #68] ; 0x44 f.cross_place = lv_obj_get_style_flex_cross_place(cont, LV_PART_MAIN); - 80214e4: 2100 movs r1, #0 - 80214e6: 6878 ldr r0, [r7, #4] - 80214e8: f7ff fe7c bl 80211e4 - 80214ec: 4603 mov r3, r0 - 80214ee: f887 3045 strb.w r3, [r7, #69] ; 0x45 + 8021450: 2100 movs r1, #0 + 8021452: 6878 ldr r0, [r7, #4] + 8021454: f7ff fe7c bl 8021150 + 8021458: 4603 mov r3, r0 + 802145a: f887 3045 strb.w r3, [r7, #69] ; 0x45 f.track_place = lv_obj_get_style_flex_track_place(cont, LV_PART_MAIN); - 80214f2: 2100 movs r1, #0 - 80214f4: 6878 ldr r0, [r7, #4] - 80214f6: f7ff fe8b bl 8021210 - 80214fa: 4603 mov r3, r0 - 80214fc: f887 3046 strb.w r3, [r7, #70] ; 0x46 + 802145e: 2100 movs r1, #0 + 8021460: 6878 ldr r0, [r7, #4] + 8021462: f7ff fe8b bl 802117c + 8021466: 4603 mov r3, r0 + 8021468: f887 3046 strb.w r3, [r7, #70] ; 0x46 bool rtl = lv_obj_get_style_base_dir(cont, LV_PART_MAIN) == LV_BASE_DIR_RTL ? true : false; - 8021500: 2100 movs r1, #0 - 8021502: 6878 ldr r0, [r7, #4] - 8021504: f7ff fe2f bl 8021166 - 8021508: 4603 mov r3, r0 - 802150a: 2b01 cmp r3, #1 - 802150c: bf0c ite eq - 802150e: 2301 moveq r3, #1 - 8021510: 2300 movne r3, #0 - 8021512: f887 3062 strb.w r3, [r7, #98] ; 0x62 + 802146c: 2100 movs r1, #0 + 802146e: 6878 ldr r0, [r7, #4] + 8021470: f7ff fe2f bl 80210d2 + 8021474: 4603 mov r3, r0 + 8021476: 2b01 cmp r3, #1 + 8021478: bf0c ite eq + 802147a: 2301 moveq r3, #1 + 802147c: 2300 movne r3, #0 + 802147e: f887 3062 strb.w r3, [r7, #98] ; 0x62 lv_coord_t track_gap = !f.row ? lv_obj_get_style_pad_column(cont, LV_PART_MAIN) : lv_obj_get_style_pad_row(cont, - 8021516: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 802151a: f003 0301 and.w r3, r3, #1 - 802151e: b2db uxtb r3, r3 - 8021520: 2b00 cmp r3, #0 - 8021522: d105 bne.n 8021530 - 8021524: 2100 movs r1, #0 - 8021526: 6878 ldr r0, [r7, #4] - 8021528: f7ff fdf7 bl 802111a - 802152c: 4603 mov r3, r0 - 802152e: e004 b.n 802153a - 8021530: 2100 movs r1, #0 - 8021532: 6878 ldr r0, [r7, #4] - 8021534: f7ff fdde bl 80210f4 - 8021538: 4603 mov r3, r0 - 802153a: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 + 8021482: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 8021486: f003 0301 and.w r3, r3, #1 + 802148a: b2db uxtb r3, r3 + 802148c: 2b00 cmp r3, #0 + 802148e: d105 bne.n 802149c + 8021490: 2100 movs r1, #0 + 8021492: 6878 ldr r0, [r7, #4] + 8021494: f7ff fdf7 bl 8021086 + 8021498: 4603 mov r3, r0 + 802149a: e004 b.n 80214a6 + 802149c: 2100 movs r1, #0 + 802149e: 6878 ldr r0, [r7, #4] + 80214a0: f7ff fdde bl 8021060 + 80214a4: 4603 mov r3, r0 + 80214a6: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 LV_PART_MAIN); lv_coord_t item_gap = f.row ? lv_obj_get_style_pad_column(cont, LV_PART_MAIN) : lv_obj_get_style_pad_row(cont, - 802153e: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 8021542: f003 0301 and.w r3, r3, #1 - 8021546: b2db uxtb r3, r3 - 8021548: 2b00 cmp r3, #0 - 802154a: d005 beq.n 8021558 - 802154c: 2100 movs r1, #0 - 802154e: 6878 ldr r0, [r7, #4] - 8021550: f7ff fde3 bl 802111a - 8021554: 4603 mov r3, r0 - 8021556: e004 b.n 8021562 - 8021558: 2100 movs r1, #0 - 802155a: 6878 ldr r0, [r7, #4] - 802155c: f7ff fdca bl 80210f4 - 8021560: 4603 mov r3, r0 - 8021562: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 80214aa: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 80214ae: f003 0301 and.w r3, r3, #1 + 80214b2: b2db uxtb r3, r3 + 80214b4: 2b00 cmp r3, #0 + 80214b6: d005 beq.n 80214c4 + 80214b8: 2100 movs r1, #0 + 80214ba: 6878 ldr r0, [r7, #4] + 80214bc: f7ff fde3 bl 8021086 + 80214c0: 4603 mov r3, r0 + 80214c2: e004 b.n 80214ce + 80214c4: 2100 movs r1, #0 + 80214c6: 6878 ldr r0, [r7, #4] + 80214c8: f7ff fdca bl 8021060 + 80214cc: 4603 mov r3, r0 + 80214ce: f8a7 305e strh.w r3, [r7, #94] ; 0x5e LV_PART_MAIN); lv_coord_t max_main_size = (f.row ? lv_obj_get_content_width(cont) : lv_obj_get_content_height(cont)); - 8021566: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 802156a: f003 0301 and.w r3, r3, #1 - 802156e: b2db uxtb r3, r3 - 8021570: 2b00 cmp r3, #0 - 8021572: d004 beq.n 802157e - 8021574: 6878 ldr r0, [r7, #4] - 8021576: f7e8 fe03 bl 800a180 - 802157a: 4603 mov r3, r0 - 802157c: e003 b.n 8021586 - 802157e: 6878 ldr r0, [r7, #4] - 8021580: f7e8 fe29 bl 800a1d6 - 8021584: 4603 mov r3, r0 - 8021586: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 80214d2: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 80214d6: f003 0301 and.w r3, r3, #1 + 80214da: b2db uxtb r3, r3 + 80214dc: 2b00 cmp r3, #0 + 80214de: d004 beq.n 80214ea + 80214e0: 6878 ldr r0, [r7, #4] + 80214e2: f7e8 fe17 bl 800a114 + 80214e6: 4603 mov r3, r0 + 80214e8: e003 b.n 80214f2 + 80214ea: 6878 ldr r0, [r7, #4] + 80214ec: f7e8 fe3d bl 800a16a + 80214f0: 4603 mov r3, r0 + 80214f2: f8a7 305c strh.w r3, [r7, #92] ; 0x5c lv_coord_t border_width = lv_obj_get_style_border_width(cont, LV_PART_MAIN); - 802158a: 2100 movs r1, #0 - 802158c: 6878 ldr r0, [r7, #4] - 802158e: f7ff fdd7 bl 8021140 - 8021592: 4603 mov r3, r0 - 8021594: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 80214f6: 2100 movs r1, #0 + 80214f8: 6878 ldr r0, [r7, #4] + 80214fa: f7ff fdd7 bl 80210ac + 80214fe: 4603 mov r3, r0 + 8021500: f8a7 305a strh.w r3, [r7, #90] ; 0x5a lv_coord_t abs_y = cont->coords.y1 + lv_obj_get_style_pad_top(cont, - 8021598: 687b ldr r3, [r7, #4] - 802159a: f9b3 3016 ldrsh.w r3, [r3, #22] - 802159e: b29c uxth r4, r3 - 80215a0: 2100 movs r1, #0 - 80215a2: 6878 ldr r0, [r7, #4] - 80215a4: f7ff fd80 bl 80210a8 - 80215a8: 4603 mov r3, r0 - 80215aa: b29b uxth r3, r3 - 80215ac: 4423 add r3, r4 - 80215ae: b29a uxth r2, r3 + 8021504: 687b ldr r3, [r7, #4] + 8021506: f9b3 3016 ldrsh.w r3, [r3, #22] + 802150a: b29c uxth r4, r3 + 802150c: 2100 movs r1, #0 + 802150e: 6878 ldr r0, [r7, #4] + 8021510: f7ff fd80 bl 8021014 + 8021514: 4603 mov r3, r0 + 8021516: b29b uxth r3, r3 + 8021518: 4423 add r3, r4 + 802151a: b29a uxth r2, r3 LV_PART_MAIN) + border_width - lv_obj_get_scroll_y(cont); - 80215b0: f8b7 305a ldrh.w r3, [r7, #90] ; 0x5a - 80215b4: 4413 add r3, r2 - 80215b6: b29c uxth r4, r3 - 80215b8: 6878 ldr r0, [r7, #4] - 80215ba: f7ea f9f0 bl 800b99e - 80215be: 4603 mov r3, r0 - 80215c0: b29b uxth r3, r3 - 80215c2: 1ae3 subs r3, r4, r3 - 80215c4: b29b uxth r3, r3 - 80215c6: b21b sxth r3, r3 + 802151c: f8b7 305a ldrh.w r3, [r7, #90] ; 0x5a + 8021520: 4413 add r3, r2 + 8021522: b29c uxth r4, r3 + 8021524: 6878 ldr r0, [r7, #4] + 8021526: f7ea fa04 bl 800b932 + 802152a: 4603 mov r3, r0 + 802152c: b29b uxth r3, r3 + 802152e: 1ae3 subs r3, r4, r3 + 8021530: b29b uxth r3, r3 + 8021532: b21b sxth r3, r3 lv_coord_t abs_y = cont->coords.y1 + lv_obj_get_style_pad_top(cont, - 80215c8: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 8021534: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 lv_coord_t abs_x = cont->coords.x1 + lv_obj_get_style_pad_left(cont, - 80215cc: 687b ldr r3, [r7, #4] - 80215ce: f9b3 3014 ldrsh.w r3, [r3, #20] - 80215d2: b29c uxth r4, r3 - 80215d4: 2100 movs r1, #0 - 80215d6: 6878 ldr r0, [r7, #4] - 80215d8: f7ff fd79 bl 80210ce - 80215dc: 4603 mov r3, r0 - 80215de: b29b uxth r3, r3 - 80215e0: 4423 add r3, r4 - 80215e2: b29a uxth r2, r3 + 8021538: 687b ldr r3, [r7, #4] + 802153a: f9b3 3014 ldrsh.w r3, [r3, #20] + 802153e: b29c uxth r4, r3 + 8021540: 2100 movs r1, #0 + 8021542: 6878 ldr r0, [r7, #4] + 8021544: f7ff fd79 bl 802103a + 8021548: 4603 mov r3, r0 + 802154a: b29b uxth r3, r3 + 802154c: 4423 add r3, r4 + 802154e: b29a uxth r2, r3 LV_PART_MAIN) + border_width - lv_obj_get_scroll_x(cont); - 80215e4: f8b7 305a ldrh.w r3, [r7, #90] ; 0x5a - 80215e8: 4413 add r3, r2 - 80215ea: b29c uxth r4, r3 - 80215ec: 6878 ldr r0, [r7, #4] - 80215ee: f7ea f9bf bl 800b970 - 80215f2: 4603 mov r3, r0 - 80215f4: b29b uxth r3, r3 - 80215f6: 1ae3 subs r3, r4, r3 - 80215f8: b29b uxth r3, r3 - 80215fa: b21b sxth r3, r3 + 8021550: f8b7 305a ldrh.w r3, [r7, #90] ; 0x5a + 8021554: 4413 add r3, r2 + 8021556: b29c uxth r4, r3 + 8021558: 6878 ldr r0, [r7, #4] + 802155a: f7ea f9d3 bl 800b904 + 802155e: 4603 mov r3, r0 + 8021560: b29b uxth r3, r3 + 8021562: 1ae3 subs r3, r4, r3 + 8021564: b29b uxth r3, r3 + 8021566: b21b sxth r3, r3 lv_coord_t abs_x = cont->coords.x1 + lv_obj_get_style_pad_left(cont, - 80215fc: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 8021568: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 lv_flex_align_t track_cross_place = f.track_place; - 8021600: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 - 8021604: f887 306f strb.w r3, [r7, #111] ; 0x6f + 802156c: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 + 8021570: f887 306f strb.w r3, [r7, #111] ; 0x6f lv_coord_t * cross_pos = (f.row ? &abs_y : &abs_x); - 8021608: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 802160c: f003 0301 and.w r3, r3, #1 - 8021610: b2db uxtb r3, r3 - 8021612: 2b00 cmp r3, #0 - 8021614: d002 beq.n 802161c - 8021616: f107 0342 add.w r3, r7, #66 ; 0x42 - 802161a: e001 b.n 8021620 - 802161c: f107 0340 add.w r3, r7, #64 ; 0x40 - 8021620: 657b str r3, [r7, #84] ; 0x54 + 8021574: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 8021578: f003 0301 and.w r3, r3, #1 + 802157c: b2db uxtb r3, r3 + 802157e: 2b00 cmp r3, #0 + 8021580: d002 beq.n 8021588 + 8021582: f107 0342 add.w r3, r7, #66 ; 0x42 + 8021586: e001 b.n 802158c + 8021588: f107 0340 add.w r3, r7, #64 ; 0x40 + 802158c: 657b str r3, [r7, #84] ; 0x54 lv_coord_t w_set = lv_obj_get_style_width(cont, LV_PART_MAIN); - 8021622: 2100 movs r1, #0 - 8021624: 6878 ldr r0, [r7, #4] - 8021626: f7ff fca7 bl 8020f78 - 802162a: 4603 mov r3, r0 - 802162c: f8a7 3052 strh.w r3, [r7, #82] ; 0x52 + 802158e: 2100 movs r1, #0 + 8021590: 6878 ldr r0, [r7, #4] + 8021592: f7ff fca7 bl 8020ee4 + 8021596: 4603 mov r3, r0 + 8021598: f8a7 3052 strh.w r3, [r7, #82] ; 0x52 lv_coord_t h_set = lv_obj_get_style_height(cont, LV_PART_MAIN); - 8021630: 2100 movs r1, #0 - 8021632: 6878 ldr r0, [r7, #4] - 8021634: f7ff fcd9 bl 8020fea - 8021638: 4603 mov r3, r0 - 802163a: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 + 802159c: 2100 movs r1, #0 + 802159e: 6878 ldr r0, [r7, #4] + 80215a0: f7ff fcd9 bl 8020f56 + 80215a4: 4603 mov r3, r0 + 80215a6: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 /*Content sized objects should squeezed the gap between the children, therefore any alignment will look like `START`*/ if((f.row && h_set == LV_SIZE_CONTENT && cont->h_layout == 0) || - 802163e: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 8021642: f003 0301 and.w r3, r3, #1 - 8021646: b2db uxtb r3, r3 - 8021648: 2b00 cmp r3, #0 - 802164a: d00d beq.n 8021668 - 802164c: f9b7 3050 ldrsh.w r3, [r7, #80] ; 0x50 - 8021650: f242 72d1 movw r2, #10193 ; 0x27d1 - 8021654: 4293 cmp r3, r2 - 8021656: d107 bne.n 8021668 - 8021658: 687b ldr r3, [r7, #4] - 802165a: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 802165e: f003 0302 and.w r3, r3, #2 - 8021662: b2db uxtb r3, r3 - 8021664: 2b00 cmp r3, #0 - 8021666: d014 beq.n 8021692 + 80215aa: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 80215ae: f003 0301 and.w r3, r3, #1 + 80215b2: b2db uxtb r3, r3 + 80215b4: 2b00 cmp r3, #0 + 80215b6: d00d beq.n 80215d4 + 80215b8: f9b7 3050 ldrsh.w r3, [r7, #80] ; 0x50 + 80215bc: f242 72d1 movw r2, #10193 ; 0x27d1 + 80215c0: 4293 cmp r3, r2 + 80215c2: d107 bne.n 80215d4 + 80215c4: 687b ldr r3, [r7, #4] + 80215c6: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 80215ca: f003 0302 and.w r3, r3, #2 + 80215ce: b2db uxtb r3, r3 + 80215d0: 2b00 cmp r3, #0 + 80215d2: d014 beq.n 80215fe (!f.row && w_set == LV_SIZE_CONTENT && cont->w_layout == 0)) { - 8021668: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 802166c: f003 0301 and.w r3, r3, #1 - 8021670: b2db uxtb r3, r3 + 80215d4: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 80215d8: f003 0301 and.w r3, r3, #1 + 80215dc: b2db uxtb r3, r3 if((f.row && h_set == LV_SIZE_CONTENT && cont->h_layout == 0) || - 8021672: 2b00 cmp r3, #0 - 8021674: d110 bne.n 8021698 + 80215de: 2b00 cmp r3, #0 + 80215e0: d110 bne.n 8021604 (!f.row && w_set == LV_SIZE_CONTENT && cont->w_layout == 0)) { - 8021676: f9b7 3052 ldrsh.w r3, [r7, #82] ; 0x52 - 802167a: f242 72d1 movw r2, #10193 ; 0x27d1 - 802167e: 4293 cmp r3, r2 - 8021680: d10a bne.n 8021698 - 8021682: 687b ldr r3, [r7, #4] - 8021684: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 8021688: f003 0304 and.w r3, r3, #4 - 802168c: b2db uxtb r3, r3 - 802168e: 2b00 cmp r3, #0 - 8021690: d102 bne.n 8021698 + 80215e2: f9b7 3052 ldrsh.w r3, [r7, #82] ; 0x52 + 80215e6: f242 72d1 movw r2, #10193 ; 0x27d1 + 80215ea: 4293 cmp r3, r2 + 80215ec: d10a bne.n 8021604 + 80215ee: 687b ldr r3, [r7, #4] + 80215f0: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 80215f4: f003 0304 and.w r3, r3, #4 + 80215f8: b2db uxtb r3, r3 + 80215fa: 2b00 cmp r3, #0 + 80215fc: d102 bne.n 8021604 track_cross_place = LV_FLEX_ALIGN_START; - 8021692: 2300 movs r3, #0 - 8021694: f887 306f strb.w r3, [r7, #111] ; 0x6f + 80215fe: 2300 movs r3, #0 + 8021600: f887 306f strb.w r3, [r7, #111] ; 0x6f } if(rtl && !f.row) { - 8021698: f897 3062 ldrb.w r3, [r7, #98] ; 0x62 - 802169c: 2b00 cmp r3, #0 - 802169e: d015 beq.n 80216cc - 80216a0: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 80216a4: f003 0301 and.w r3, r3, #1 - 80216a8: b2db uxtb r3, r3 - 80216aa: 2b00 cmp r3, #0 - 80216ac: d10e bne.n 80216cc + 8021604: f897 3062 ldrb.w r3, [r7, #98] ; 0x62 + 8021608: 2b00 cmp r3, #0 + 802160a: d015 beq.n 8021638 + 802160c: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 8021610: f003 0301 and.w r3, r3, #1 + 8021614: b2db uxtb r3, r3 + 8021616: 2b00 cmp r3, #0 + 8021618: d10e bne.n 8021638 if(track_cross_place == LV_FLEX_ALIGN_START) track_cross_place = LV_FLEX_ALIGN_END; - 80216ae: f897 306f ldrb.w r3, [r7, #111] ; 0x6f - 80216b2: 2b00 cmp r3, #0 - 80216b4: d103 bne.n 80216be - 80216b6: 2301 movs r3, #1 - 80216b8: f887 306f strb.w r3, [r7, #111] ; 0x6f - 80216bc: e006 b.n 80216cc + 802161a: f897 306f ldrb.w r3, [r7, #111] ; 0x6f + 802161e: 2b00 cmp r3, #0 + 8021620: d103 bne.n 802162a + 8021622: 2301 movs r3, #1 + 8021624: f887 306f strb.w r3, [r7, #111] ; 0x6f + 8021628: e006 b.n 8021638 else if(track_cross_place == LV_FLEX_ALIGN_END) track_cross_place = LV_FLEX_ALIGN_START; - 80216be: f897 306f ldrb.w r3, [r7, #111] ; 0x6f - 80216c2: 2b01 cmp r3, #1 - 80216c4: d102 bne.n 80216cc - 80216c6: 2300 movs r3, #0 - 80216c8: f887 306f strb.w r3, [r7, #111] ; 0x6f + 802162a: f897 306f ldrb.w r3, [r7, #111] ; 0x6f + 802162e: 2b01 cmp r3, #1 + 8021630: d102 bne.n 8021638 + 8021632: 2300 movs r3, #0 + 8021634: f887 306f strb.w r3, [r7, #111] ; 0x6f } lv_coord_t total_track_cross_size = 0; - 80216cc: 2300 movs r3, #0 - 80216ce: f8a7 306c strh.w r3, [r7, #108] ; 0x6c + 8021638: 2300 movs r3, #0 + 802163a: f8a7 306c strh.w r3, [r7, #108] ; 0x6c lv_coord_t gap = 0; - 80216d2: 2300 movs r3, #0 - 80216d4: 87fb strh r3, [r7, #62] ; 0x3e + 802163e: 2300 movs r3, #0 + 8021640: 87fb strh r3, [r7, #62] ; 0x3e uint32_t track_cnt = 0; - 80216d6: 2300 movs r3, #0 - 80216d8: 66bb str r3, [r7, #104] ; 0x68 + 8021642: 2300 movs r3, #0 + 8021644: 66bb str r3, [r7, #104] ; 0x68 int32_t track_first_item; int32_t next_track_first_item; if(track_cross_place != LV_FLEX_ALIGN_START) { - 80216da: f897 306f ldrb.w r3, [r7, #111] ; 0x6f - 80216de: 2b00 cmp r3, #0 - 80216e0: d06d beq.n 80217be + 8021646: f897 306f ldrb.w r3, [r7, #111] ; 0x6f + 802164a: 2b00 cmp r3, #0 + 802164c: d06d beq.n 802172a track_first_item = f.rev ? cont->spec_attr->child_cnt - 1 : 0; - 80216e2: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 80216e6: f003 0304 and.w r3, r3, #4 - 80216ea: b2db uxtb r3, r3 - 80216ec: 2b00 cmp r3, #0 - 80216ee: d004 beq.n 80216fa - 80216f0: 687b ldr r3, [r7, #4] - 80216f2: 689b ldr r3, [r3, #8] - 80216f4: 685b ldr r3, [r3, #4] - 80216f6: 3b01 subs r3, #1 - 80216f8: e000 b.n 80216fc - 80216fa: 2300 movs r3, #0 - 80216fc: 667b str r3, [r7, #100] ; 0x64 + 802164e: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 8021652: f003 0304 and.w r3, r3, #4 + 8021656: b2db uxtb r3, r3 + 8021658: 2b00 cmp r3, #0 + 802165a: d004 beq.n 8021666 + 802165c: 687b ldr r3, [r7, #4] + 802165e: 689b ldr r3, [r3, #8] + 8021660: 685b ldr r3, [r3, #4] + 8021662: 3b01 subs r3, #1 + 8021664: e000 b.n 8021668 + 8021666: 2300 movs r3, #0 + 8021668: 667b str r3, [r7, #100] ; 0x64 track_t t; while(track_first_item < (int32_t)cont->spec_attr->child_cnt && track_first_item >= 0) { - 80216fe: e027 b.n 8021750 + 802166a: e027 b.n 80216bc /*Search the first item of the next row*/ t.grow_dsc_calc = 0; - 8021700: f897 3038 ldrb.w r3, [r7, #56] ; 0x38 - 8021704: f36f 0300 bfc r3, #0, #1 - 8021708: f887 3038 strb.w r3, [r7, #56] ; 0x38 + 802166c: f897 3038 ldrb.w r3, [r7, #56] ; 0x38 + 8021670: f36f 0300 bfc r3, #0, #1 + 8021674: f887 3038 strb.w r3, [r7, #56] ; 0x38 next_track_first_item = find_track_end(cont, &f, track_first_item, max_main_size, item_gap, &t); - 802170c: f9b7 205c ldrsh.w r2, [r7, #92] ; 0x5c - 8021710: f107 0144 add.w r1, r7, #68 ; 0x44 - 8021714: f107 0324 add.w r3, r7, #36 ; 0x24 - 8021718: 9301 str r3, [sp, #4] - 802171a: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e - 802171e: 9300 str r3, [sp, #0] - 8021720: 4613 mov r3, r2 - 8021722: 6e7a ldr r2, [r7, #100] ; 0x64 - 8021724: 6878 ldr r0, [r7, #4] - 8021726: f000 f911 bl 802194c - 802172a: 64f8 str r0, [r7, #76] ; 0x4c + 8021678: f9b7 205c ldrsh.w r2, [r7, #92] ; 0x5c + 802167c: f107 0144 add.w r1, r7, #68 ; 0x44 + 8021680: f107 0324 add.w r3, r7, #36 ; 0x24 + 8021684: 9301 str r3, [sp, #4] + 8021686: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e + 802168a: 9300 str r3, [sp, #0] + 802168c: 4613 mov r3, r2 + 802168e: 6e7a ldr r2, [r7, #100] ; 0x64 + 8021690: 6878 ldr r0, [r7, #4] + 8021692: f000 f911 bl 80218b8 + 8021696: 64f8 str r0, [r7, #76] ; 0x4c total_track_cross_size += t.track_cross_size + track_gap; - 802172c: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 - 8021730: b29a uxth r2, r3 - 8021732: f8b7 3060 ldrh.w r3, [r7, #96] ; 0x60 - 8021736: 4413 add r3, r2 - 8021738: b29a uxth r2, r3 - 802173a: f8b7 306c ldrh.w r3, [r7, #108] ; 0x6c - 802173e: 4413 add r3, r2 - 8021740: b29b uxth r3, r3 - 8021742: f8a7 306c strh.w r3, [r7, #108] ; 0x6c + 8021698: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 + 802169c: b29a uxth r2, r3 + 802169e: f8b7 3060 ldrh.w r3, [r7, #96] ; 0x60 + 80216a2: 4413 add r3, r2 + 80216a4: b29a uxth r2, r3 + 80216a6: f8b7 306c ldrh.w r3, [r7, #108] ; 0x6c + 80216aa: 4413 add r3, r2 + 80216ac: b29b uxth r3, r3 + 80216ae: f8a7 306c strh.w r3, [r7, #108] ; 0x6c track_cnt++; - 8021746: 6ebb ldr r3, [r7, #104] ; 0x68 - 8021748: 3301 adds r3, #1 - 802174a: 66bb str r3, [r7, #104] ; 0x68 + 80216b2: 6ebb ldr r3, [r7, #104] ; 0x68 + 80216b4: 3301 adds r3, #1 + 80216b6: 66bb str r3, [r7, #104] ; 0x68 track_first_item = next_track_first_item; - 802174c: 6cfb ldr r3, [r7, #76] ; 0x4c - 802174e: 667b str r3, [r7, #100] ; 0x64 + 80216b8: 6cfb ldr r3, [r7, #76] ; 0x4c + 80216ba: 667b str r3, [r7, #100] ; 0x64 while(track_first_item < (int32_t)cont->spec_attr->child_cnt && track_first_item >= 0) { - 8021750: 687b ldr r3, [r7, #4] - 8021752: 689b ldr r3, [r3, #8] - 8021754: 685b ldr r3, [r3, #4] - 8021756: 461a mov r2, r3 - 8021758: 6e7b ldr r3, [r7, #100] ; 0x64 - 802175a: 4293 cmp r3, r2 - 802175c: da02 bge.n 8021764 - 802175e: 6e7b ldr r3, [r7, #100] ; 0x64 - 8021760: 2b00 cmp r3, #0 - 8021762: dacd bge.n 8021700 + 80216bc: 687b ldr r3, [r7, #4] + 80216be: 689b ldr r3, [r3, #8] + 80216c0: 685b ldr r3, [r3, #4] + 80216c2: 461a mov r2, r3 + 80216c4: 6e7b ldr r3, [r7, #100] ; 0x64 + 80216c6: 4293 cmp r3, r2 + 80216c8: da02 bge.n 80216d0 + 80216ca: 6e7b ldr r3, [r7, #100] ; 0x64 + 80216cc: 2b00 cmp r3, #0 + 80216ce: dacd bge.n 802166c } if(track_cnt) total_track_cross_size -= track_gap; /*No gap after the last track*/ - 8021764: 6ebb ldr r3, [r7, #104] ; 0x68 - 8021766: 2b00 cmp r3, #0 - 8021768: d007 beq.n 802177a - 802176a: f8b7 206c ldrh.w r2, [r7, #108] ; 0x6c - 802176e: f8b7 3060 ldrh.w r3, [r7, #96] ; 0x60 - 8021772: 1ad3 subs r3, r2, r3 - 8021774: b29b uxth r3, r3 - 8021776: f8a7 306c strh.w r3, [r7, #108] ; 0x6c + 80216d0: 6ebb ldr r3, [r7, #104] ; 0x68 + 80216d2: 2b00 cmp r3, #0 + 80216d4: d007 beq.n 80216e6 + 80216d6: f8b7 206c ldrh.w r2, [r7, #108] ; 0x6c + 80216da: f8b7 3060 ldrh.w r3, [r7, #96] ; 0x60 + 80216de: 1ad3 subs r3, r2, r3 + 80216e0: b29b uxth r3, r3 + 80216e2: f8a7 306c strh.w r3, [r7, #108] ; 0x6c /*Place the tracks to get the start position*/ lv_coord_t max_cross_size = (f.row ? lv_obj_get_content_height(cont) : lv_obj_get_content_width(cont)); - 802177a: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 802177e: f003 0301 and.w r3, r3, #1 - 8021782: b2db uxtb r3, r3 - 8021784: 2b00 cmp r3, #0 - 8021786: d004 beq.n 8021792 - 8021788: 6878 ldr r0, [r7, #4] - 802178a: f7e8 fd24 bl 800a1d6 - 802178e: 4603 mov r3, r0 - 8021790: e003 b.n 802179a - 8021792: 6878 ldr r0, [r7, #4] - 8021794: f7e8 fcf4 bl 800a180 - 8021798: 4603 mov r3, r0 - 802179a: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 80216e6: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 80216ea: f003 0301 and.w r3, r3, #1 + 80216ee: b2db uxtb r3, r3 + 80216f0: 2b00 cmp r3, #0 + 80216f2: d004 beq.n 80216fe + 80216f4: 6878 ldr r0, [r7, #4] + 80216f6: f7e8 fd38 bl 800a16a + 80216fa: 4603 mov r3, r0 + 80216fc: e003 b.n 8021706 + 80216fe: 6878 ldr r0, [r7, #4] + 8021700: f7e8 fd08 bl 800a114 + 8021704: 4603 mov r3, r0 + 8021706: f8a7 304a strh.w r3, [r7, #74] ; 0x4a place_content(track_cross_place, max_cross_size, total_track_cross_size, track_cnt, cross_pos, &gap); - 802179e: 6ebb ldr r3, [r7, #104] ; 0x68 - 80217a0: b21c sxth r4, r3 - 80217a2: f9b7 206c ldrsh.w r2, [r7, #108] ; 0x6c - 80217a6: f9b7 104a ldrsh.w r1, [r7, #74] ; 0x4a - 80217aa: f897 006f ldrb.w r0, [r7, #111] ; 0x6f - 80217ae: f107 033e add.w r3, r7, #62 ; 0x3e - 80217b2: 9301 str r3, [sp, #4] - 80217b4: 6d7b ldr r3, [r7, #84] ; 0x54 - 80217b6: 9300 str r3, [sp, #0] - 80217b8: 4623 mov r3, r4 - 80217ba: f000 fe37 bl 802242c + 802170a: 6ebb ldr r3, [r7, #104] ; 0x68 + 802170c: b21c sxth r4, r3 + 802170e: f9b7 206c ldrsh.w r2, [r7, #108] ; 0x6c + 8021712: f9b7 104a ldrsh.w r1, [r7, #74] ; 0x4a + 8021716: f897 006f ldrb.w r0, [r7, #111] ; 0x6f + 802171a: f107 033e add.w r3, r7, #62 ; 0x3e + 802171e: 9301 str r3, [sp, #4] + 8021720: 6d7b ldr r3, [r7, #84] ; 0x54 + 8021722: 9300 str r3, [sp, #0] + 8021724: 4623 mov r3, r4 + 8021726: f000 fe37 bl 8022398 } track_first_item = f.rev ? cont->spec_attr->child_cnt - 1 : 0; - 80217be: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 80217c2: f003 0304 and.w r3, r3, #4 - 80217c6: b2db uxtb r3, r3 - 80217c8: 2b00 cmp r3, #0 - 80217ca: d004 beq.n 80217d6 - 80217cc: 687b ldr r3, [r7, #4] - 80217ce: 689b ldr r3, [r3, #8] - 80217d0: 685b ldr r3, [r3, #4] - 80217d2: 3b01 subs r3, #1 - 80217d4: e000 b.n 80217d8 - 80217d6: 2300 movs r3, #0 - 80217d8: 667b str r3, [r7, #100] ; 0x64 + 802172a: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 802172e: f003 0304 and.w r3, r3, #4 + 8021732: b2db uxtb r3, r3 + 8021734: 2b00 cmp r3, #0 + 8021736: d004 beq.n 8021742 + 8021738: 687b ldr r3, [r7, #4] + 802173a: 689b ldr r3, [r3, #8] + 802173c: 685b ldr r3, [r3, #4] + 802173e: 3b01 subs r3, #1 + 8021740: e000 b.n 8021744 + 8021742: 2300 movs r3, #0 + 8021744: 667b str r3, [r7, #100] ; 0x64 if(rtl && !f.row) { - 80217da: f897 3062 ldrb.w r3, [r7, #98] ; 0x62 - 80217de: 2b00 cmp r3, #0 - 80217e0: f000 8091 beq.w 8021906 - 80217e4: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 80217e8: f003 0301 and.w r3, r3, #1 - 80217ec: b2db uxtb r3, r3 - 80217ee: 2b00 cmp r3, #0 - 80217f0: f040 8089 bne.w 8021906 + 8021746: f897 3062 ldrb.w r3, [r7, #98] ; 0x62 + 802174a: 2b00 cmp r3, #0 + 802174c: f000 8091 beq.w 8021872 + 8021750: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 8021754: f003 0301 and.w r3, r3, #1 + 8021758: b2db uxtb r3, r3 + 802175a: 2b00 cmp r3, #0 + 802175c: f040 8089 bne.w 8021872 *cross_pos += total_track_cross_size; - 80217f4: 6d7b ldr r3, [r7, #84] ; 0x54 - 80217f6: f9b3 3000 ldrsh.w r3, [r3] - 80217fa: b29a uxth r2, r3 - 80217fc: f8b7 306c ldrh.w r3, [r7, #108] ; 0x6c - 8021800: 4413 add r3, r2 - 8021802: b29b uxth r3, r3 - 8021804: b21a sxth r2, r3 - 8021806: 6d7b ldr r3, [r7, #84] ; 0x54 - 8021808: 801a strh r2, [r3, #0] + 8021760: 6d7b ldr r3, [r7, #84] ; 0x54 + 8021762: f9b3 3000 ldrsh.w r3, [r3] + 8021766: b29a uxth r2, r3 + 8021768: f8b7 306c ldrh.w r3, [r7, #108] ; 0x6c + 802176c: 4413 add r3, r2 + 802176e: b29b uxth r3, r3 + 8021770: b21a sxth r2, r3 + 8021772: 6d7b ldr r3, [r7, #84] ; 0x54 + 8021774: 801a strh r2, [r3, #0] } while(track_first_item < (int32_t)cont->spec_attr->child_cnt && track_first_item >= 0) { - 802180a: e07c b.n 8021906 + 8021776: e07c b.n 8021872 track_t t; t.grow_dsc_calc = 1; - 802180c: f897 3020 ldrb.w r3, [r7, #32] - 8021810: f043 0301 orr.w r3, r3, #1 - 8021814: f887 3020 strb.w r3, [r7, #32] + 8021778: f897 3020 ldrb.w r3, [r7, #32] + 802177c: f043 0301 orr.w r3, r3, #1 + 8021780: f887 3020 strb.w r3, [r7, #32] /*Search the first item of the next row*/ next_track_first_item = find_track_end(cont, &f, track_first_item, max_main_size, item_gap, &t); - 8021818: f9b7 205c ldrsh.w r2, [r7, #92] ; 0x5c - 802181c: f107 0144 add.w r1, r7, #68 ; 0x44 - 8021820: f107 030c add.w r3, r7, #12 - 8021824: 9301 str r3, [sp, #4] - 8021826: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e - 802182a: 9300 str r3, [sp, #0] - 802182c: 4613 mov r3, r2 - 802182e: 6e7a ldr r2, [r7, #100] ; 0x64 - 8021830: 6878 ldr r0, [r7, #4] - 8021832: f000 f88b bl 802194c - 8021836: 64f8 str r0, [r7, #76] ; 0x4c + 8021784: f9b7 205c ldrsh.w r2, [r7, #92] ; 0x5c + 8021788: f107 0144 add.w r1, r7, #68 ; 0x44 + 802178c: f107 030c add.w r3, r7, #12 + 8021790: 9301 str r3, [sp, #4] + 8021792: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e + 8021796: 9300 str r3, [sp, #0] + 8021798: 4613 mov r3, r2 + 802179a: 6e7a ldr r2, [r7, #100] ; 0x64 + 802179c: 6878 ldr r0, [r7, #4] + 802179e: f000 f88b bl 80218b8 + 80217a2: 64f8 str r0, [r7, #76] ; 0x4c if(rtl && !f.row) { - 8021838: f897 3062 ldrb.w r3, [r7, #98] ; 0x62 - 802183c: 2b00 cmp r3, #0 - 802183e: d012 beq.n 8021866 - 8021840: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 8021844: f003 0301 and.w r3, r3, #1 - 8021848: b2db uxtb r3, r3 - 802184a: 2b00 cmp r3, #0 - 802184c: d10b bne.n 8021866 + 80217a4: f897 3062 ldrb.w r3, [r7, #98] ; 0x62 + 80217a8: 2b00 cmp r3, #0 + 80217aa: d012 beq.n 80217d2 + 80217ac: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 80217b0: f003 0301 and.w r3, r3, #1 + 80217b4: b2db uxtb r3, r3 + 80217b6: 2b00 cmp r3, #0 + 80217b8: d10b bne.n 80217d2 *cross_pos -= t.track_cross_size; - 802184e: 6d7b ldr r3, [r7, #84] ; 0x54 - 8021850: f9b3 3000 ldrsh.w r3, [r3] - 8021854: b29a uxth r2, r3 - 8021856: f9b7 300c ldrsh.w r3, [r7, #12] - 802185a: b29b uxth r3, r3 - 802185c: 1ad3 subs r3, r2, r3 - 802185e: b29b uxth r3, r3 - 8021860: b21a sxth r2, r3 - 8021862: 6d7b ldr r3, [r7, #84] ; 0x54 - 8021864: 801a strh r2, [r3, #0] + 80217ba: 6d7b ldr r3, [r7, #84] ; 0x54 + 80217bc: f9b3 3000 ldrsh.w r3, [r3] + 80217c0: b29a uxth r2, r3 + 80217c2: f9b7 300c ldrsh.w r3, [r7, #12] + 80217c6: b29b uxth r3, r3 + 80217c8: 1ad3 subs r3, r2, r3 + 80217ca: b29b uxth r3, r3 + 80217cc: b21a sxth r2, r3 + 80217ce: 6d7b ldr r3, [r7, #84] ; 0x54 + 80217d0: 801a strh r2, [r3, #0] } children_repos(cont, &f, track_first_item, next_track_first_item, abs_x, abs_y, max_main_size, item_gap, &t); - 8021866: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 - 802186a: f9b7 2042 ldrsh.w r2, [r7, #66] ; 0x42 - 802186e: f107 0044 add.w r0, r7, #68 ; 0x44 - 8021872: f107 010c add.w r1, r7, #12 - 8021876: 9104 str r1, [sp, #16] - 8021878: f9b7 105e ldrsh.w r1, [r7, #94] ; 0x5e - 802187c: 9103 str r1, [sp, #12] - 802187e: f9b7 105c ldrsh.w r1, [r7, #92] ; 0x5c - 8021882: 9102 str r1, [sp, #8] - 8021884: 9201 str r2, [sp, #4] - 8021886: 9300 str r3, [sp, #0] - 8021888: 6cfb ldr r3, [r7, #76] ; 0x4c - 802188a: 6e7a ldr r2, [r7, #100] ; 0x64 - 802188c: 4601 mov r1, r0 - 802188e: 6878 ldr r0, [r7, #4] - 8021890: f000 fa46 bl 8021d20 + 80217d2: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 + 80217d6: f9b7 2042 ldrsh.w r2, [r7, #66] ; 0x42 + 80217da: f107 0044 add.w r0, r7, #68 ; 0x44 + 80217de: f107 010c add.w r1, r7, #12 + 80217e2: 9104 str r1, [sp, #16] + 80217e4: f9b7 105e ldrsh.w r1, [r7, #94] ; 0x5e + 80217e8: 9103 str r1, [sp, #12] + 80217ea: f9b7 105c ldrsh.w r1, [r7, #92] ; 0x5c + 80217ee: 9102 str r1, [sp, #8] + 80217f0: 9201 str r2, [sp, #4] + 80217f2: 9300 str r3, [sp, #0] + 80217f4: 6cfb ldr r3, [r7, #76] ; 0x4c + 80217f6: 6e7a ldr r2, [r7, #100] ; 0x64 + 80217f8: 4601 mov r1, r0 + 80217fa: 6878 ldr r0, [r7, #4] + 80217fc: f000 fa46 bl 8021c8c track_first_item = next_track_first_item; - 8021894: 6cfb ldr r3, [r7, #76] ; 0x4c - 8021896: 667b str r3, [r7, #100] ; 0x64 + 8021800: 6cfb ldr r3, [r7, #76] ; 0x4c + 8021802: 667b str r3, [r7, #100] ; 0x64 lv_mem_buf_release(t.grow_dsc); - 8021898: 69bb ldr r3, [r7, #24] - 802189a: 4618 mov r0, r3 - 802189c: f011 f95c bl 8032b58 + 8021804: 69bb ldr r3, [r7, #24] + 8021806: 4618 mov r0, r3 + 8021808: f011 f95c bl 8032ac4 t.grow_dsc = NULL; - 80218a0: 2300 movs r3, #0 - 80218a2: 61bb str r3, [r7, #24] + 802180c: 2300 movs r3, #0 + 802180e: 61bb str r3, [r7, #24] if(rtl && !f.row) { - 80218a4: f897 3062 ldrb.w r3, [r7, #98] ; 0x62 - 80218a8: 2b00 cmp r3, #0 - 80218aa: d017 beq.n 80218dc - 80218ac: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 80218b0: f003 0301 and.w r3, r3, #1 - 80218b4: b2db uxtb r3, r3 - 80218b6: 2b00 cmp r3, #0 - 80218b8: d110 bne.n 80218dc + 8021810: f897 3062 ldrb.w r3, [r7, #98] ; 0x62 + 8021814: 2b00 cmp r3, #0 + 8021816: d017 beq.n 8021848 + 8021818: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 802181c: f003 0301 and.w r3, r3, #1 + 8021820: b2db uxtb r3, r3 + 8021822: 2b00 cmp r3, #0 + 8021824: d110 bne.n 8021848 *cross_pos -= gap + track_gap; - 80218ba: 6d7b ldr r3, [r7, #84] ; 0x54 - 80218bc: f9b3 3000 ldrsh.w r3, [r3] - 80218c0: b29a uxth r2, r3 - 80218c2: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 80218c6: b299 uxth r1, r3 - 80218c8: f8b7 3060 ldrh.w r3, [r7, #96] ; 0x60 - 80218cc: 440b add r3, r1 - 80218ce: b29b uxth r3, r3 - 80218d0: 1ad3 subs r3, r2, r3 - 80218d2: b29b uxth r3, r3 - 80218d4: b21a sxth r2, r3 - 80218d6: 6d7b ldr r3, [r7, #84] ; 0x54 - 80218d8: 801a strh r2, [r3, #0] - 80218da: e014 b.n 8021906 + 8021826: 6d7b ldr r3, [r7, #84] ; 0x54 + 8021828: f9b3 3000 ldrsh.w r3, [r3] + 802182c: b29a uxth r2, r3 + 802182e: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 8021832: b299 uxth r1, r3 + 8021834: f8b7 3060 ldrh.w r3, [r7, #96] ; 0x60 + 8021838: 440b add r3, r1 + 802183a: b29b uxth r3, r3 + 802183c: 1ad3 subs r3, r2, r3 + 802183e: b29b uxth r3, r3 + 8021840: b21a sxth r2, r3 + 8021842: 6d7b ldr r3, [r7, #84] ; 0x54 + 8021844: 801a strh r2, [r3, #0] + 8021846: e014 b.n 8021872 } else { *cross_pos += t.track_cross_size + gap + track_gap; - 80218dc: 6d7b ldr r3, [r7, #84] ; 0x54 - 80218de: f9b3 3000 ldrsh.w r3, [r3] - 80218e2: b29a uxth r2, r3 - 80218e4: f9b7 300c ldrsh.w r3, [r7, #12] - 80218e8: b299 uxth r1, r3 - 80218ea: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 80218ee: b29b uxth r3, r3 - 80218f0: 440b add r3, r1 - 80218f2: b299 uxth r1, r3 - 80218f4: f8b7 3060 ldrh.w r3, [r7, #96] ; 0x60 - 80218f8: 440b add r3, r1 - 80218fa: b29b uxth r3, r3 - 80218fc: 4413 add r3, r2 - 80218fe: b29b uxth r3, r3 - 8021900: b21a sxth r2, r3 - 8021902: 6d7b ldr r3, [r7, #84] ; 0x54 - 8021904: 801a strh r2, [r3, #0] + 8021848: 6d7b ldr r3, [r7, #84] ; 0x54 + 802184a: f9b3 3000 ldrsh.w r3, [r3] + 802184e: b29a uxth r2, r3 + 8021850: f9b7 300c ldrsh.w r3, [r7, #12] + 8021854: b299 uxth r1, r3 + 8021856: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 802185a: b29b uxth r3, r3 + 802185c: 440b add r3, r1 + 802185e: b299 uxth r1, r3 + 8021860: f8b7 3060 ldrh.w r3, [r7, #96] ; 0x60 + 8021864: 440b add r3, r1 + 8021866: b29b uxth r3, r3 + 8021868: 4413 add r3, r2 + 802186a: b29b uxth r3, r3 + 802186c: b21a sxth r2, r3 + 802186e: 6d7b ldr r3, [r7, #84] ; 0x54 + 8021870: 801a strh r2, [r3, #0] while(track_first_item < (int32_t)cont->spec_attr->child_cnt && track_first_item >= 0) { - 8021906: 687b ldr r3, [r7, #4] - 8021908: 689b ldr r3, [r3, #8] - 802190a: 685b ldr r3, [r3, #4] - 802190c: 461a mov r2, r3 - 802190e: 6e7b ldr r3, [r7, #100] ; 0x64 - 8021910: 4293 cmp r3, r2 - 8021912: da03 bge.n 802191c - 8021914: 6e7b ldr r3, [r7, #100] ; 0x64 - 8021916: 2b00 cmp r3, #0 - 8021918: f6bf af78 bge.w 802180c + 8021872: 687b ldr r3, [r7, #4] + 8021874: 689b ldr r3, [r3, #8] + 8021876: 685b ldr r3, [r3, #4] + 8021878: 461a mov r2, r3 + 802187a: 6e7b ldr r3, [r7, #100] ; 0x64 + 802187c: 4293 cmp r3, r2 + 802187e: da03 bge.n 8021888 + 8021880: 6e7b ldr r3, [r7, #100] ; 0x64 + 8021882: 2b00 cmp r3, #0 + 8021884: f6bf af78 bge.w 8021778 } } LV_ASSERT_MEM_INTEGRITY(); if(w_set == LV_SIZE_CONTENT || h_set == LV_SIZE_CONTENT) { - 802191c: f9b7 3052 ldrsh.w r3, [r7, #82] ; 0x52 - 8021920: f242 72d1 movw r2, #10193 ; 0x27d1 - 8021924: 4293 cmp r3, r2 - 8021926: d005 beq.n 8021934 - 8021928: f9b7 3050 ldrsh.w r3, [r7, #80] ; 0x50 - 802192c: f242 72d1 movw r2, #10193 ; 0x27d1 - 8021930: 4293 cmp r3, r2 - 8021932: d102 bne.n 802193a + 8021888: f9b7 3052 ldrsh.w r3, [r7, #82] ; 0x52 + 802188c: f242 72d1 movw r2, #10193 ; 0x27d1 + 8021890: 4293 cmp r3, r2 + 8021892: d005 beq.n 80218a0 + 8021894: f9b7 3050 ldrsh.w r3, [r7, #80] ; 0x50 + 8021898: f242 72d1 movw r2, #10193 ; 0x27d1 + 802189c: 4293 cmp r3, r2 + 802189e: d102 bne.n 80218a6 lv_obj_refr_size(cont); - 8021934: 6878 ldr r0, [r7, #4] - 8021936: f7e7 fcff bl 8009338 + 80218a0: 6878 ldr r0, [r7, #4] + 80218a2: f7e7 fd13 bl 80092cc } lv_event_send(cont, LV_EVENT_LAYOUT_CHANGED, NULL); - 802193a: 2200 movs r2, #0 - 802193c: 212b movs r1, #43 ; 0x2b - 802193e: 6878 ldr r0, [r7, #4] - 8021940: f7e0 fd9e bl 8002480 + 80218a6: 2200 movs r2, #0 + 80218a8: 212b movs r1, #43 ; 0x2b + 80218aa: 6878 ldr r0, [r7, #4] + 80218ac: f7e0 fdb2 bl 8002414 LV_TRACE_LAYOUT("finished"); } - 8021944: bf00 nop - 8021946: 3774 adds r7, #116 ; 0x74 - 8021948: 46bd mov sp, r7 - 802194a: bd90 pop {r4, r7, pc} + 80218b0: bf00 nop + 80218b2: 3774 adds r7, #116 ; 0x74 + 80218b4: 46bd mov sp, r7 + 80218b6: bd90 pop {r4, r7, pc} -0802194c : +080218b8 : /** * Find the last item of a track */ static int32_t find_track_end(lv_obj_t * cont, flex_t * f, int32_t item_start_id, lv_coord_t max_main_size, lv_coord_t item_gap, track_t * t) { - 802194c: b580 push {r7, lr} - 802194e: b08c sub sp, #48 ; 0x30 - 8021950: af00 add r7, sp, #0 - 8021952: 60f8 str r0, [r7, #12] - 8021954: 60b9 str r1, [r7, #8] - 8021956: 607a str r2, [r7, #4] - 8021958: 807b strh r3, [r7, #2] + 80218b8: b580 push {r7, lr} + 80218ba: b08c sub sp, #48 ; 0x30 + 80218bc: af00 add r7, sp, #0 + 80218be: 60f8 str r0, [r7, #12] + 80218c0: 60b9 str r1, [r7, #8] + 80218c2: 607a str r2, [r7, #4] + 80218c4: 807b strh r3, [r7, #2] lv_coord_t w_set = lv_obj_get_style_width(cont, LV_PART_MAIN); - 802195a: 2100 movs r1, #0 - 802195c: 68f8 ldr r0, [r7, #12] - 802195e: f7ff fb0b bl 8020f78 - 8021962: 4603 mov r3, r0 - 8021964: 857b strh r3, [r7, #42] ; 0x2a + 80218c6: 2100 movs r1, #0 + 80218c8: 68f8 ldr r0, [r7, #12] + 80218ca: f7ff fb0b bl 8020ee4 + 80218ce: 4603 mov r3, r0 + 80218d0: 857b strh r3, [r7, #42] ; 0x2a lv_coord_t h_set = lv_obj_get_style_height(cont, LV_PART_MAIN); - 8021966: 2100 movs r1, #0 - 8021968: 68f8 ldr r0, [r7, #12] - 802196a: f7ff fb3e bl 8020fea - 802196e: 4603 mov r3, r0 - 8021970: 853b strh r3, [r7, #40] ; 0x28 + 80218d2: 2100 movs r1, #0 + 80218d4: 68f8 ldr r0, [r7, #12] + 80218d6: f7ff fb3e bl 8020f56 + 80218da: 4603 mov r3, r0 + 80218dc: 853b strh r3, [r7, #40] ; 0x28 /*Can't wrap if the size if auto (i.e. the size depends on the children)*/ if(f->wrap && ((f->row && w_set == LV_SIZE_CONTENT) || (!f->row && h_set == LV_SIZE_CONTENT))) { - 8021972: 68bb ldr r3, [r7, #8] - 8021974: 78db ldrb r3, [r3, #3] - 8021976: f003 0302 and.w r3, r3, #2 - 802197a: b2db uxtb r3, r3 - 802197c: 2b00 cmp r3, #0 - 802197e: d01e beq.n 80219be - 8021980: 68bb ldr r3, [r7, #8] - 8021982: 78db ldrb r3, [r3, #3] - 8021984: f003 0301 and.w r3, r3, #1 - 8021988: b2db uxtb r3, r3 - 802198a: 2b00 cmp r3, #0 - 802198c: d005 beq.n 802199a - 802198e: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a - 8021992: f242 72d1 movw r2, #10193 ; 0x27d1 - 8021996: 4293 cmp r3, r2 - 8021998: d00c beq.n 80219b4 - 802199a: 68bb ldr r3, [r7, #8] - 802199c: 78db ldrb r3, [r3, #3] - 802199e: f003 0301 and.w r3, r3, #1 - 80219a2: b2db uxtb r3, r3 - 80219a4: 2b00 cmp r3, #0 - 80219a6: d10a bne.n 80219be - 80219a8: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 - 80219ac: f242 72d1 movw r2, #10193 ; 0x27d1 - 80219b0: 4293 cmp r3, r2 - 80219b2: d104 bne.n 80219be + 80218de: 68bb ldr r3, [r7, #8] + 80218e0: 78db ldrb r3, [r3, #3] + 80218e2: f003 0302 and.w r3, r3, #2 + 80218e6: b2db uxtb r3, r3 + 80218e8: 2b00 cmp r3, #0 + 80218ea: d01e beq.n 802192a + 80218ec: 68bb ldr r3, [r7, #8] + 80218ee: 78db ldrb r3, [r3, #3] + 80218f0: f003 0301 and.w r3, r3, #1 + 80218f4: b2db uxtb r3, r3 + 80218f6: 2b00 cmp r3, #0 + 80218f8: d005 beq.n 8021906 + 80218fa: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a + 80218fe: f242 72d1 movw r2, #10193 ; 0x27d1 + 8021902: 4293 cmp r3, r2 + 8021904: d00c beq.n 8021920 + 8021906: 68bb ldr r3, [r7, #8] + 8021908: 78db ldrb r3, [r3, #3] + 802190a: f003 0301 and.w r3, r3, #1 + 802190e: b2db uxtb r3, r3 + 8021910: 2b00 cmp r3, #0 + 8021912: d10a bne.n 802192a + 8021914: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 8021918: f242 72d1 movw r2, #10193 ; 0x27d1 + 802191c: 4293 cmp r3, r2 + 802191e: d104 bne.n 802192a f->wrap = false; - 80219b4: 68ba ldr r2, [r7, #8] - 80219b6: 78d3 ldrb r3, [r2, #3] - 80219b8: f36f 0341 bfc r3, #1, #1 - 80219bc: 70d3 strb r3, [r2, #3] + 8021920: 68ba ldr r2, [r7, #8] + 8021922: 78d3 ldrb r3, [r2, #3] + 8021924: f36f 0341 bfc r3, #1, #1 + 8021928: 70d3 strb r3, [r2, #3] } lv_coord_t(*get_main_size)(const lv_obj_t *) = (f->row ? lv_obj_get_width : lv_obj_get_height); - 80219be: 68bb ldr r3, [r7, #8] - 80219c0: 78db ldrb r3, [r3, #3] - 80219c2: f003 0301 and.w r3, r3, #1 - 80219c6: b2db uxtb r3, r3 - 80219c8: 2b00 cmp r3, #0 - 80219ca: d001 beq.n 80219d0 - 80219cc: 4b9c ldr r3, [pc, #624] ; (8021c40 ) - 80219ce: e000 b.n 80219d2 - 80219d0: 4b9c ldr r3, [pc, #624] ; (8021c44 ) - 80219d2: 627b str r3, [r7, #36] ; 0x24 + 802192a: 68bb ldr r3, [r7, #8] + 802192c: 78db ldrb r3, [r3, #3] + 802192e: f003 0301 and.w r3, r3, #1 + 8021932: b2db uxtb r3, r3 + 8021934: 2b00 cmp r3, #0 + 8021936: d001 beq.n 802193c + 8021938: 4b9c ldr r3, [pc, #624] ; (8021bac ) + 802193a: e000 b.n 802193e + 802193c: 4b9c ldr r3, [pc, #624] ; (8021bb0 ) + 802193e: 627b str r3, [r7, #36] ; 0x24 lv_coord_t(*get_cross_size)(const lv_obj_t *) = (!f->row ? lv_obj_get_width : lv_obj_get_height); - 80219d4: 68bb ldr r3, [r7, #8] - 80219d6: 78db ldrb r3, [r3, #3] - 80219d8: f003 0301 and.w r3, r3, #1 - 80219dc: b2db uxtb r3, r3 - 80219de: 2b00 cmp r3, #0 - 80219e0: d101 bne.n 80219e6 - 80219e2: 4b97 ldr r3, [pc, #604] ; (8021c40 ) - 80219e4: e000 b.n 80219e8 - 80219e6: 4b97 ldr r3, [pc, #604] ; (8021c44 ) - 80219e8: 623b str r3, [r7, #32] + 8021940: 68bb ldr r3, [r7, #8] + 8021942: 78db ldrb r3, [r3, #3] + 8021944: f003 0301 and.w r3, r3, #1 + 8021948: b2db uxtb r3, r3 + 802194a: 2b00 cmp r3, #0 + 802194c: d101 bne.n 8021952 + 802194e: 4b97 ldr r3, [pc, #604] ; (8021bac ) + 8021950: e000 b.n 8021954 + 8021952: 4b97 ldr r3, [pc, #604] ; (8021bb0 ) + 8021954: 623b str r3, [r7, #32] t->track_main_size = 0; - 80219ea: 6bfb ldr r3, [r7, #60] ; 0x3c - 80219ec: 2200 movs r2, #0 - 80219ee: 805a strh r2, [r3, #2] + 8021956: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021958: 2200 movs r2, #0 + 802195a: 805a strh r2, [r3, #2] t->track_fix_main_size = 0; - 80219f0: 6bfb ldr r3, [r7, #60] ; 0x3c - 80219f2: 2200 movs r2, #0 - 80219f4: 809a strh r2, [r3, #4] + 802195c: 6bfb ldr r3, [r7, #60] ; 0x3c + 802195e: 2200 movs r2, #0 + 8021960: 809a strh r2, [r3, #4] t->grow_item_cnt = 0; - 80219f6: 6bfb ldr r3, [r7, #60] ; 0x3c - 80219f8: 2200 movs r2, #0 - 80219fa: 611a str r2, [r3, #16] + 8021962: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021964: 2200 movs r2, #0 + 8021966: 611a str r2, [r3, #16] t->track_cross_size = 0; - 80219fc: 6bfb ldr r3, [r7, #60] ; 0x3c - 80219fe: 2200 movs r2, #0 - 8021a00: 801a strh r2, [r3, #0] + 8021968: 6bfb ldr r3, [r7, #60] ; 0x3c + 802196a: 2200 movs r2, #0 + 802196c: 801a strh r2, [r3, #0] t->item_cnt = 0; - 8021a02: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021a04: 2200 movs r2, #0 - 8021a06: 609a str r2, [r3, #8] + 802196e: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021970: 2200 movs r2, #0 + 8021972: 609a str r2, [r3, #8] t->grow_dsc = NULL; - 8021a08: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021a0a: 2200 movs r2, #0 - 8021a0c: 60da str r2, [r3, #12] + 8021974: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021976: 2200 movs r2, #0 + 8021978: 60da str r2, [r3, #12] int32_t item_id = item_start_id; - 8021a0e: 687b ldr r3, [r7, #4] - 8021a10: 617b str r3, [r7, #20] + 802197a: 687b ldr r3, [r7, #4] + 802197c: 617b str r3, [r7, #20] lv_obj_t * item = lv_obj_get_child(cont, item_id); - 8021a12: 697b ldr r3, [r7, #20] - 8021a14: 4619 mov r1, r3 - 8021a16: 68f8 ldr r0, [r7, #12] - 8021a18: f7ed fe88 bl 800f72c - 8021a1c: 62f8 str r0, [r7, #44] ; 0x2c + 802197e: 697b ldr r3, [r7, #20] + 8021980: 4619 mov r1, r3 + 8021982: 68f8 ldr r0, [r7, #12] + 8021984: f7ed fe88 bl 800f698 + 8021988: 62f8 str r0, [r7, #44] ; 0x2c while(item) { - 8021a1e: e122 b.n 8021c66 + 802198a: e122 b.n 8021bd2 if(item_id != item_start_id && lv_obj_has_flag(item, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK)) break; - 8021a20: 697b ldr r3, [r7, #20] - 8021a22: 687a ldr r2, [r7, #4] - 8021a24: 429a cmp r2, r3 - 8021a26: d008 beq.n 8021a3a - 8021a28: f44f 0100 mov.w r1, #8388608 ; 0x800000 - 8021a2c: 6af8 ldr r0, [r7, #44] ; 0x2c - 8021a2e: f7e4 fea8 bl 8006782 - 8021a32: 4603 mov r3, r0 - 8021a34: 2b00 cmp r3, #0 - 8021a36: f040 811b bne.w 8021c70 + 802198c: 697b ldr r3, [r7, #20] + 802198e: 687a ldr r2, [r7, #4] + 8021990: 429a cmp r2, r3 + 8021992: d008 beq.n 80219a6 + 8021994: f44f 0100 mov.w r1, #8388608 ; 0x800000 + 8021998: 6af8 ldr r0, [r7, #44] ; 0x2c + 802199a: f7e4 febc bl 8006716 + 802199e: 4603 mov r3, r0 + 80219a0: 2b00 cmp r3, #0 + 80219a2: f040 811b bne.w 8021bdc if(!lv_obj_has_flag_any(item, LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) { - 8021a3a: 4983 ldr r1, [pc, #524] ; (8021c48 ) - 8021a3c: 6af8 ldr r0, [r7, #44] ; 0x2c - 8021a3e: f7e4 feb4 bl 80067aa - 8021a42: 4603 mov r3, r0 - 8021a44: f083 0301 eor.w r3, r3, #1 - 8021a48: b2db uxtb r3, r3 - 8021a4a: 2b00 cmp r3, #0 - 8021a4c: f000 80ed beq.w 8021c2a + 80219a6: 4983 ldr r1, [pc, #524] ; (8021bb4 ) + 80219a8: 6af8 ldr r0, [r7, #44] ; 0x2c + 80219aa: f7e4 fec8 bl 800673e + 80219ae: 4603 mov r3, r0 + 80219b0: f083 0301 eor.w r3, r3, #1 + 80219b4: b2db uxtb r3, r3 + 80219b6: 2b00 cmp r3, #0 + 80219b8: f000 80ed beq.w 8021b96 uint8_t grow_value = lv_obj_get_style_flex_grow(item, LV_PART_MAIN); - 8021a50: 2100 movs r1, #0 - 8021a52: 6af8 ldr r0, [r7, #44] ; 0x2c - 8021a54: f7ff fbf2 bl 802123c - 8021a58: 4603 mov r3, r0 - 8021a5a: 77fb strb r3, [r7, #31] + 80219bc: 2100 movs r1, #0 + 80219be: 6af8 ldr r0, [r7, #44] ; 0x2c + 80219c0: f7ff fbf2 bl 80211a8 + 80219c4: 4603 mov r3, r0 + 80219c6: 77fb strb r3, [r7, #31] if(grow_value) { - 8021a5c: 7ffb ldrb r3, [r7, #31] - 8021a5e: 2b00 cmp r3, #0 - 8021a60: f000 80a5 beq.w 8021bae + 80219c8: 7ffb ldrb r3, [r7, #31] + 80219ca: 2b00 cmp r3, #0 + 80219cc: f000 80a5 beq.w 8021b1a t->grow_item_cnt++; - 8021a64: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021a66: 691b ldr r3, [r3, #16] - 8021a68: 1c5a adds r2, r3, #1 - 8021a6a: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021a6c: 611a str r2, [r3, #16] + 80219d0: 6bfb ldr r3, [r7, #60] ; 0x3c + 80219d2: 691b ldr r3, [r3, #16] + 80219d4: 1c5a adds r2, r3, #1 + 80219d6: 6bfb ldr r3, [r7, #60] ; 0x3c + 80219d8: 611a str r2, [r3, #16] t->track_fix_main_size += item_gap; - 8021a6e: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021a70: f9b3 3004 ldrsh.w r3, [r3, #4] - 8021a74: b29a uxth r2, r3 - 8021a76: 8f3b ldrh r3, [r7, #56] ; 0x38 - 8021a78: 4413 add r3, r2 - 8021a7a: b29b uxth r3, r3 - 8021a7c: b21a sxth r2, r3 - 8021a7e: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021a80: 809a strh r2, [r3, #4] + 80219da: 6bfb ldr r3, [r7, #60] ; 0x3c + 80219dc: f9b3 3004 ldrsh.w r3, [r3, #4] + 80219e0: b29a uxth r2, r3 + 80219e2: 8f3b ldrh r3, [r7, #56] ; 0x38 + 80219e4: 4413 add r3, r2 + 80219e6: b29b uxth r3, r3 + 80219e8: b21a sxth r2, r3 + 80219ea: 6bfb ldr r3, [r7, #60] ; 0x3c + 80219ec: 809a strh r2, [r3, #4] if(t->grow_dsc_calc) { - 8021a82: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021a84: 7d1b ldrb r3, [r3, #20] - 8021a86: f003 0301 and.w r3, r3, #1 - 8021a8a: b2db uxtb r3, r3 - 8021a8c: 2b00 cmp r3, #0 - 8021a8e: f000 80b2 beq.w 8021bf6 + 80219ee: 6bfb ldr r3, [r7, #60] ; 0x3c + 80219f0: 7d1b ldrb r3, [r3, #20] + 80219f2: f003 0301 and.w r3, r3, #1 + 80219f6: b2db uxtb r3, r3 + 80219f8: 2b00 cmp r3, #0 + 80219fa: f000 80b2 beq.w 8021b62 grow_dsc_t * new_dsc = lv_mem_buf_get(sizeof(grow_dsc_t) * (t->grow_item_cnt)); - 8021a92: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021a94: 691a ldr r2, [r3, #16] - 8021a96: 4613 mov r3, r2 - 8021a98: 009b lsls r3, r3, #2 - 8021a9a: 4413 add r3, r2 - 8021a9c: 009b lsls r3, r3, #2 - 8021a9e: 4618 mov r0, r3 - 8021aa0: f010 ffae bl 8032a00 - 8021aa4: 61b8 str r0, [r7, #24] + 80219fe: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021a00: 691a ldr r2, [r3, #16] + 8021a02: 4613 mov r3, r2 + 8021a04: 009b lsls r3, r3, #2 + 8021a06: 4413 add r3, r2 + 8021a08: 009b lsls r3, r3, #2 + 8021a0a: 4618 mov r0, r3 + 8021a0c: f010 ffae bl 803296c + 8021a10: 61b8 str r0, [r7, #24] LV_ASSERT_MALLOC(new_dsc); - 8021aa6: 69bb ldr r3, [r7, #24] - 8021aa8: 2b00 cmp r3, #0 - 8021aaa: d100 bne.n 8021aae - 8021aac: e7fe b.n 8021aac + 8021a12: 69bb ldr r3, [r7, #24] + 8021a14: 2b00 cmp r3, #0 + 8021a16: d100 bne.n 8021a1a + 8021a18: e7fe b.n 8021a18 if(new_dsc == NULL) return item_id; - 8021aae: 69bb ldr r3, [r7, #24] - 8021ab0: 2b00 cmp r3, #0 - 8021ab2: d101 bne.n 8021ab8 - 8021ab4: 697b ldr r3, [r7, #20] - 8021ab6: e12f b.n 8021d18 + 8021a1a: 69bb ldr r3, [r7, #24] + 8021a1c: 2b00 cmp r3, #0 + 8021a1e: d101 bne.n 8021a24 + 8021a20: 697b ldr r3, [r7, #20] + 8021a22: e12f b.n 8021c84 if(t->grow_dsc) { - 8021ab8: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021aba: 68db ldr r3, [r3, #12] - 8021abc: 2b00 cmp r3, #0 - 8021abe: d011 beq.n 8021ae4 + 8021a24: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021a26: 68db ldr r3, [r3, #12] + 8021a28: 2b00 cmp r3, #0 + 8021a2a: d011 beq.n 8021a50 lv_memcpy(new_dsc, t->grow_dsc, sizeof(grow_dsc_t) * (t->grow_item_cnt - 1)); - 8021ac0: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021ac2: 68d9 ldr r1, [r3, #12] - 8021ac4: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021ac6: 691a ldr r2, [r3, #16] - 8021ac8: 4613 mov r3, r2 - 8021aca: 009b lsls r3, r3, #2 - 8021acc: 4413 add r3, r2 - 8021ace: 009b lsls r3, r3, #2 - 8021ad0: 3b14 subs r3, #20 - 8021ad2: 461a mov r2, r3 - 8021ad4: 69b8 ldr r0, [r7, #24] - 8021ad6: f011 f897 bl 8032c08 + 8021a2c: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021a2e: 68d9 ldr r1, [r3, #12] + 8021a30: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021a32: 691a ldr r2, [r3, #16] + 8021a34: 4613 mov r3, r2 + 8021a36: 009b lsls r3, r3, #2 + 8021a38: 4413 add r3, r2 + 8021a3a: 009b lsls r3, r3, #2 + 8021a3c: 3b14 subs r3, #20 + 8021a3e: 461a mov r2, r3 + 8021a40: 69b8 ldr r0, [r7, #24] + 8021a42: f011 f897 bl 8032b74 lv_mem_buf_release(t->grow_dsc); - 8021ada: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021adc: 68db ldr r3, [r3, #12] - 8021ade: 4618 mov r0, r3 - 8021ae0: f011 f83a bl 8032b58 + 8021a46: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021a48: 68db ldr r3, [r3, #12] + 8021a4a: 4618 mov r0, r3 + 8021a4c: f011 f83a bl 8032ac4 } new_dsc[t->grow_item_cnt - 1].item = item; - 8021ae4: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021ae6: 691a ldr r2, [r3, #16] - 8021ae8: 4613 mov r3, r2 - 8021aea: 009b lsls r3, r3, #2 - 8021aec: 4413 add r3, r2 - 8021aee: 009b lsls r3, r3, #2 - 8021af0: 3b14 subs r3, #20 - 8021af2: 69ba ldr r2, [r7, #24] - 8021af4: 4413 add r3, r2 - 8021af6: 6afa ldr r2, [r7, #44] ; 0x2c - 8021af8: 601a str r2, [r3, #0] + 8021a50: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021a52: 691a ldr r2, [r3, #16] + 8021a54: 4613 mov r3, r2 + 8021a56: 009b lsls r3, r3, #2 + 8021a58: 4413 add r3, r2 + 8021a5a: 009b lsls r3, r3, #2 + 8021a5c: 3b14 subs r3, #20 + 8021a5e: 69ba ldr r2, [r7, #24] + 8021a60: 4413 add r3, r2 + 8021a62: 6afa ldr r2, [r7, #44] ; 0x2c + 8021a64: 601a str r2, [r3, #0] new_dsc[t->grow_item_cnt - 1].min_size = f->row ? lv_obj_get_style_min_width(item, - 8021afa: 68bb ldr r3, [r7, #8] - 8021afc: 78db ldrb r3, [r3, #3] - 8021afe: f003 0301 and.w r3, r3, #1 - 8021b02: b2db uxtb r3, r3 - 8021b04: 2b00 cmp r3, #0 - 8021b06: d006 beq.n 8021b16 - 8021b08: 2100 movs r1, #0 - 8021b0a: 6af8 ldr r0, [r7, #44] ; 0x2c - 8021b0c: f7ff fa47 bl 8020f9e - 8021b10: 4603 mov r3, r0 - 8021b12: 4619 mov r1, r3 - 8021b14: e005 b.n 8021b22 + 8021a66: 68bb ldr r3, [r7, #8] + 8021a68: 78db ldrb r3, [r3, #3] + 8021a6a: f003 0301 and.w r3, r3, #1 + 8021a6e: b2db uxtb r3, r3 + 8021a70: 2b00 cmp r3, #0 + 8021a72: d006 beq.n 8021a82 + 8021a74: 2100 movs r1, #0 + 8021a76: 6af8 ldr r0, [r7, #44] ; 0x2c + 8021a78: f7ff fa47 bl 8020f0a + 8021a7c: 4603 mov r3, r0 + 8021a7e: 4619 mov r1, r3 + 8021a80: e005 b.n 8021a8e LV_PART_MAIN) : lv_obj_get_style_min_height(item, LV_PART_MAIN); - 8021b16: 2100 movs r1, #0 - 8021b18: 6af8 ldr r0, [r7, #44] ; 0x2c - 8021b1a: f7ff fa79 bl 8021010 - 8021b1e: 4603 mov r3, r0 - 8021b20: 4619 mov r1, r3 + 8021a82: 2100 movs r1, #0 + 8021a84: 6af8 ldr r0, [r7, #44] ; 0x2c + 8021a86: f7ff fa79 bl 8020f7c + 8021a8a: 4603 mov r3, r0 + 8021a8c: 4619 mov r1, r3 new_dsc[t->grow_item_cnt - 1].min_size = f->row ? lv_obj_get_style_min_width(item, - 8021b22: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021b24: 691a ldr r2, [r3, #16] - 8021b26: 4613 mov r3, r2 - 8021b28: 009b lsls r3, r3, #2 - 8021b2a: 4413 add r3, r2 - 8021b2c: 009b lsls r3, r3, #2 - 8021b2e: 3b14 subs r3, #20 - 8021b30: 69ba ldr r2, [r7, #24] - 8021b32: 4413 add r3, r2 - 8021b34: 460a mov r2, r1 - 8021b36: 809a strh r2, [r3, #4] + 8021a8e: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021a90: 691a ldr r2, [r3, #16] + 8021a92: 4613 mov r3, r2 + 8021a94: 009b lsls r3, r3, #2 + 8021a96: 4413 add r3, r2 + 8021a98: 009b lsls r3, r3, #2 + 8021a9a: 3b14 subs r3, #20 + 8021a9c: 69ba ldr r2, [r7, #24] + 8021a9e: 4413 add r3, r2 + 8021aa0: 460a mov r2, r1 + 8021aa2: 809a strh r2, [r3, #4] new_dsc[t->grow_item_cnt - 1].max_size = f->row ? lv_obj_get_style_max_width(item, - 8021b38: 68bb ldr r3, [r7, #8] - 8021b3a: 78db ldrb r3, [r3, #3] - 8021b3c: f003 0301 and.w r3, r3, #1 - 8021b40: b2db uxtb r3, r3 - 8021b42: 2b00 cmp r3, #0 - 8021b44: d006 beq.n 8021b54 - 8021b46: 2100 movs r1, #0 - 8021b48: 6af8 ldr r0, [r7, #44] ; 0x2c - 8021b4a: f7ff fa3b bl 8020fc4 - 8021b4e: 4603 mov r3, r0 - 8021b50: 4619 mov r1, r3 - 8021b52: e005 b.n 8021b60 + 8021aa4: 68bb ldr r3, [r7, #8] + 8021aa6: 78db ldrb r3, [r3, #3] + 8021aa8: f003 0301 and.w r3, r3, #1 + 8021aac: b2db uxtb r3, r3 + 8021aae: 2b00 cmp r3, #0 + 8021ab0: d006 beq.n 8021ac0 + 8021ab2: 2100 movs r1, #0 + 8021ab4: 6af8 ldr r0, [r7, #44] ; 0x2c + 8021ab6: f7ff fa3b bl 8020f30 + 8021aba: 4603 mov r3, r0 + 8021abc: 4619 mov r1, r3 + 8021abe: e005 b.n 8021acc LV_PART_MAIN) : lv_obj_get_style_max_height(item, LV_PART_MAIN); - 8021b54: 2100 movs r1, #0 - 8021b56: 6af8 ldr r0, [r7, #44] ; 0x2c - 8021b58: f7ff fa6d bl 8021036 - 8021b5c: 4603 mov r3, r0 - 8021b5e: 4619 mov r1, r3 + 8021ac0: 2100 movs r1, #0 + 8021ac2: 6af8 ldr r0, [r7, #44] ; 0x2c + 8021ac4: f7ff fa6d bl 8020fa2 + 8021ac8: 4603 mov r3, r0 + 8021aca: 4619 mov r1, r3 new_dsc[t->grow_item_cnt - 1].max_size = f->row ? lv_obj_get_style_max_width(item, - 8021b60: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021b62: 691a ldr r2, [r3, #16] - 8021b64: 4613 mov r3, r2 - 8021b66: 009b lsls r3, r3, #2 - 8021b68: 4413 add r3, r2 - 8021b6a: 009b lsls r3, r3, #2 - 8021b6c: 3b14 subs r3, #20 - 8021b6e: 69ba ldr r2, [r7, #24] - 8021b70: 4413 add r3, r2 - 8021b72: 460a mov r2, r1 - 8021b74: 80da strh r2, [r3, #6] + 8021acc: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021ace: 691a ldr r2, [r3, #16] + 8021ad0: 4613 mov r3, r2 + 8021ad2: 009b lsls r3, r3, #2 + 8021ad4: 4413 add r3, r2 + 8021ad6: 009b lsls r3, r3, #2 + 8021ad8: 3b14 subs r3, #20 + 8021ada: 69ba ldr r2, [r7, #24] + 8021adc: 4413 add r3, r2 + 8021ade: 460a mov r2, r1 + 8021ae0: 80da strh r2, [r3, #6] new_dsc[t->grow_item_cnt - 1].grow_value = grow_value; - 8021b76: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021b78: 691a ldr r2, [r3, #16] - 8021b7a: 4613 mov r3, r2 - 8021b7c: 009b lsls r3, r3, #2 - 8021b7e: 4413 add r3, r2 - 8021b80: 009b lsls r3, r3, #2 - 8021b82: 3b14 subs r3, #20 - 8021b84: 69ba ldr r2, [r7, #24] - 8021b86: 4413 add r3, r2 - 8021b88: 7ffa ldrb r2, [r7, #31] - 8021b8a: 60da str r2, [r3, #12] + 8021ae2: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021ae4: 691a ldr r2, [r3, #16] + 8021ae6: 4613 mov r3, r2 + 8021ae8: 009b lsls r3, r3, #2 + 8021aea: 4413 add r3, r2 + 8021aec: 009b lsls r3, r3, #2 + 8021aee: 3b14 subs r3, #20 + 8021af0: 69ba ldr r2, [r7, #24] + 8021af2: 4413 add r3, r2 + 8021af4: 7ffa ldrb r2, [r7, #31] + 8021af6: 60da str r2, [r3, #12] new_dsc[t->grow_item_cnt - 1].clamped = 0; - 8021b8c: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021b8e: 691a ldr r2, [r3, #16] - 8021b90: 4613 mov r3, r2 - 8021b92: 009b lsls r3, r3, #2 - 8021b94: 4413 add r3, r2 - 8021b96: 009b lsls r3, r3, #2 - 8021b98: 3b14 subs r3, #20 - 8021b9a: 69ba ldr r2, [r7, #24] - 8021b9c: 441a add r2, r3 - 8021b9e: 7c13 ldrb r3, [r2, #16] - 8021ba0: f36f 0300 bfc r3, #0, #1 - 8021ba4: 7413 strb r3, [r2, #16] + 8021af8: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021afa: 691a ldr r2, [r3, #16] + 8021afc: 4613 mov r3, r2 + 8021afe: 009b lsls r3, r3, #2 + 8021b00: 4413 add r3, r2 + 8021b02: 009b lsls r3, r3, #2 + 8021b04: 3b14 subs r3, #20 + 8021b06: 69ba ldr r2, [r7, #24] + 8021b08: 441a add r2, r3 + 8021b0a: 7c13 ldrb r3, [r2, #16] + 8021b0c: f36f 0300 bfc r3, #0, #1 + 8021b10: 7413 strb r3, [r2, #16] t->grow_dsc = new_dsc; - 8021ba6: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021ba8: 69ba ldr r2, [r7, #24] - 8021baa: 60da str r2, [r3, #12] - 8021bac: e023 b.n 8021bf6 + 8021b12: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021b14: 69ba ldr r2, [r7, #24] + 8021b16: 60da str r2, [r3, #12] + 8021b18: e023 b.n 8021b62 } } else { lv_coord_t item_size = get_main_size(item); - 8021bae: 6a7b ldr r3, [r7, #36] ; 0x24 - 8021bb0: 6af8 ldr r0, [r7, #44] ; 0x2c - 8021bb2: 4798 blx r3 - 8021bb4: 4603 mov r3, r0 - 8021bb6: 83bb strh r3, [r7, #28] + 8021b1a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8021b1c: 6af8 ldr r0, [r7, #44] ; 0x2c + 8021b1e: 4798 blx r3 + 8021b20: 4603 mov r3, r0 + 8021b22: 83bb strh r3, [r7, #28] if(f->wrap && t->track_fix_main_size + item_size > max_main_size) break; - 8021bb8: 68bb ldr r3, [r7, #8] - 8021bba: 78db ldrb r3, [r3, #3] - 8021bbc: f003 0302 and.w r3, r3, #2 - 8021bc0: b2db uxtb r3, r3 - 8021bc2: 2b00 cmp r3, #0 - 8021bc4: d00a beq.n 8021bdc - 8021bc6: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021bc8: f9b3 3004 ldrsh.w r3, [r3, #4] - 8021bcc: 461a mov r2, r3 - 8021bce: f9b7 301c ldrsh.w r3, [r7, #28] - 8021bd2: 441a add r2, r3 - 8021bd4: f9b7 3002 ldrsh.w r3, [r7, #2] - 8021bd8: 429a cmp r2, r3 - 8021bda: dc4b bgt.n 8021c74 + 8021b24: 68bb ldr r3, [r7, #8] + 8021b26: 78db ldrb r3, [r3, #3] + 8021b28: f003 0302 and.w r3, r3, #2 + 8021b2c: b2db uxtb r3, r3 + 8021b2e: 2b00 cmp r3, #0 + 8021b30: d00a beq.n 8021b48 + 8021b32: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021b34: f9b3 3004 ldrsh.w r3, [r3, #4] + 8021b38: 461a mov r2, r3 + 8021b3a: f9b7 301c ldrsh.w r3, [r7, #28] + 8021b3e: 441a add r2, r3 + 8021b40: f9b7 3002 ldrsh.w r3, [r7, #2] + 8021b44: 429a cmp r2, r3 + 8021b46: dc4b bgt.n 8021be0 t->track_fix_main_size += item_size + item_gap; - 8021bdc: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021bde: f9b3 3004 ldrsh.w r3, [r3, #4] - 8021be2: b29a uxth r2, r3 - 8021be4: 8bb9 ldrh r1, [r7, #28] - 8021be6: 8f3b ldrh r3, [r7, #56] ; 0x38 - 8021be8: 440b add r3, r1 - 8021bea: b29b uxth r3, r3 - 8021bec: 4413 add r3, r2 - 8021bee: b29b uxth r3, r3 - 8021bf0: b21a sxth r2, r3 - 8021bf2: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021bf4: 809a strh r2, [r3, #4] + 8021b48: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021b4a: f9b3 3004 ldrsh.w r3, [r3, #4] + 8021b4e: b29a uxth r2, r3 + 8021b50: 8bb9 ldrh r1, [r7, #28] + 8021b52: 8f3b ldrh r3, [r7, #56] ; 0x38 + 8021b54: 440b add r3, r1 + 8021b56: b29b uxth r3, r3 + 8021b58: 4413 add r3, r2 + 8021b5a: b29b uxth r3, r3 + 8021b5c: b21a sxth r2, r3 + 8021b5e: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021b60: 809a strh r2, [r3, #4] } t->track_cross_size = LV_MAX(get_cross_size(item), t->track_cross_size); - 8021bf6: 6a3b ldr r3, [r7, #32] - 8021bf8: 6af8 ldr r0, [r7, #44] ; 0x2c - 8021bfa: 4798 blx r3 - 8021bfc: 4603 mov r3, r0 - 8021bfe: 461a mov r2, r3 - 8021c00: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021c02: f9b3 3000 ldrsh.w r3, [r3] - 8021c06: 429a cmp r2, r3 - 8021c08: dd05 ble.n 8021c16 - 8021c0a: 6a3b ldr r3, [r7, #32] - 8021c0c: 6af8 ldr r0, [r7, #44] ; 0x2c - 8021c0e: 4798 blx r3 - 8021c10: 4603 mov r3, r0 - 8021c12: 461a mov r2, r3 - 8021c14: e002 b.n 8021c1c - 8021c16: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021c18: f9b3 2000 ldrsh.w r2, [r3] - 8021c1c: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021c1e: 801a strh r2, [r3, #0] + 8021b62: 6a3b ldr r3, [r7, #32] + 8021b64: 6af8 ldr r0, [r7, #44] ; 0x2c + 8021b66: 4798 blx r3 + 8021b68: 4603 mov r3, r0 + 8021b6a: 461a mov r2, r3 + 8021b6c: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021b6e: f9b3 3000 ldrsh.w r3, [r3] + 8021b72: 429a cmp r2, r3 + 8021b74: dd05 ble.n 8021b82 + 8021b76: 6a3b ldr r3, [r7, #32] + 8021b78: 6af8 ldr r0, [r7, #44] ; 0x2c + 8021b7a: 4798 blx r3 + 8021b7c: 4603 mov r3, r0 + 8021b7e: 461a mov r2, r3 + 8021b80: e002 b.n 8021b88 + 8021b82: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021b84: f9b3 2000 ldrsh.w r2, [r3] + 8021b88: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021b8a: 801a strh r2, [r3, #0] t->item_cnt++; - 8021c20: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021c22: 689b ldr r3, [r3, #8] - 8021c24: 1c5a adds r2, r3, #1 - 8021c26: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021c28: 609a str r2, [r3, #8] + 8021b8c: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021b8e: 689b ldr r3, [r3, #8] + 8021b90: 1c5a adds r2, r3, #1 + 8021b92: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021b94: 609a str r2, [r3, #8] } item_id += f->rev ? -1 : +1; - 8021c2a: 68bb ldr r3, [r7, #8] - 8021c2c: 78db ldrb r3, [r3, #3] - 8021c2e: f003 0304 and.w r3, r3, #4 - 8021c32: b2db uxtb r3, r3 - 8021c34: 2b00 cmp r3, #0 - 8021c36: d009 beq.n 8021c4c - 8021c38: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 8021c3c: e007 b.n 8021c4e - 8021c3e: bf00 nop - 8021c40: 0800a149 .word 0x0800a149 - 8021c44: 0800a165 .word 0x0800a165 - 8021c48: 00060001 .word 0x00060001 - 8021c4c: 2201 movs r2, #1 - 8021c4e: 697b ldr r3, [r7, #20] - 8021c50: 4413 add r3, r2 - 8021c52: 617b str r3, [r7, #20] + 8021b96: 68bb ldr r3, [r7, #8] + 8021b98: 78db ldrb r3, [r3, #3] + 8021b9a: f003 0304 and.w r3, r3, #4 + 8021b9e: b2db uxtb r3, r3 + 8021ba0: 2b00 cmp r3, #0 + 8021ba2: d009 beq.n 8021bb8 + 8021ba4: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 8021ba8: e007 b.n 8021bba + 8021baa: bf00 nop + 8021bac: 0800a0dd .word 0x0800a0dd + 8021bb0: 0800a0f9 .word 0x0800a0f9 + 8021bb4: 00060001 .word 0x00060001 + 8021bb8: 2201 movs r2, #1 + 8021bba: 697b ldr r3, [r7, #20] + 8021bbc: 4413 add r3, r2 + 8021bbe: 617b str r3, [r7, #20] if(item_id < 0) break; - 8021c54: 697b ldr r3, [r7, #20] - 8021c56: 2b00 cmp r3, #0 - 8021c58: db0e blt.n 8021c78 + 8021bc0: 697b ldr r3, [r7, #20] + 8021bc2: 2b00 cmp r3, #0 + 8021bc4: db0e blt.n 8021be4 item = lv_obj_get_child(cont, item_id); - 8021c5a: 697b ldr r3, [r7, #20] - 8021c5c: 4619 mov r1, r3 - 8021c5e: 68f8 ldr r0, [r7, #12] - 8021c60: f7ed fd64 bl 800f72c - 8021c64: 62f8 str r0, [r7, #44] ; 0x2c + 8021bc6: 697b ldr r3, [r7, #20] + 8021bc8: 4619 mov r1, r3 + 8021bca: 68f8 ldr r0, [r7, #12] + 8021bcc: f7ed fd64 bl 800f698 + 8021bd0: 62f8 str r0, [r7, #44] ; 0x2c while(item) { - 8021c66: 6afb ldr r3, [r7, #44] ; 0x2c - 8021c68: 2b00 cmp r3, #0 - 8021c6a: f47f aed9 bne.w 8021a20 - 8021c6e: e004 b.n 8021c7a + 8021bd2: 6afb ldr r3, [r7, #44] ; 0x2c + 8021bd4: 2b00 cmp r3, #0 + 8021bd6: f47f aed9 bne.w 802198c + 8021bda: e004 b.n 8021be6 if(item_id != item_start_id && lv_obj_has_flag(item, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK)) break; - 8021c70: bf00 nop - 8021c72: e002 b.n 8021c7a + 8021bdc: bf00 nop + 8021bde: e002 b.n 8021be6 if(f->wrap && t->track_fix_main_size + item_size > max_main_size) break; - 8021c74: bf00 nop - 8021c76: e000 b.n 8021c7a + 8021be0: bf00 nop + 8021be2: e000 b.n 8021be6 if(item_id < 0) break; - 8021c78: bf00 nop + 8021be4: bf00 nop } if(t->track_fix_main_size > 0) t->track_fix_main_size -= item_gap; /*There is no gap after the last item*/ - 8021c7a: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021c7c: f9b3 3004 ldrsh.w r3, [r3, #4] - 8021c80: 2b00 cmp r3, #0 - 8021c82: dd09 ble.n 8021c98 - 8021c84: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021c86: f9b3 3004 ldrsh.w r3, [r3, #4] - 8021c8a: b29a uxth r2, r3 - 8021c8c: 8f3b ldrh r3, [r7, #56] ; 0x38 - 8021c8e: 1ad3 subs r3, r2, r3 - 8021c90: b29b uxth r3, r3 - 8021c92: b21a sxth r2, r3 - 8021c94: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021c96: 809a strh r2, [r3, #4] + 8021be6: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021be8: f9b3 3004 ldrsh.w r3, [r3, #4] + 8021bec: 2b00 cmp r3, #0 + 8021bee: dd09 ble.n 8021c04 + 8021bf0: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021bf2: f9b3 3004 ldrsh.w r3, [r3, #4] + 8021bf6: b29a uxth r2, r3 + 8021bf8: 8f3b ldrh r3, [r7, #56] ; 0x38 + 8021bfa: 1ad3 subs r3, r2, r3 + 8021bfc: b29b uxth r3, r3 + 8021bfe: b21a sxth r2, r3 + 8021c00: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021c02: 809a strh r2, [r3, #4] /*If there is at least one "grow item" the track takes the full space*/ t->track_main_size = t->grow_item_cnt ? max_main_size : t->track_fix_main_size; - 8021c98: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021c9a: 691b ldr r3, [r3, #16] - 8021c9c: 2b00 cmp r3, #0 - 8021c9e: d103 bne.n 8021ca8 - 8021ca0: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021ca2: f9b3 3004 ldrsh.w r3, [r3, #4] - 8021ca6: e001 b.n 8021cac - 8021ca8: f9b7 3002 ldrsh.w r3, [r7, #2] - 8021cac: 6bfa ldr r2, [r7, #60] ; 0x3c - 8021cae: 8053 strh r3, [r2, #2] + 8021c04: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021c06: 691b ldr r3, [r3, #16] + 8021c08: 2b00 cmp r3, #0 + 8021c0a: d103 bne.n 8021c14 + 8021c0c: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021c0e: f9b3 3004 ldrsh.w r3, [r3, #4] + 8021c12: e001 b.n 8021c18 + 8021c14: f9b7 3002 ldrsh.w r3, [r7, #2] + 8021c18: 6bfa ldr r2, [r7, #60] ; 0x3c + 8021c1a: 8053 strh r3, [r2, #2] /*Have at least one item in a row*/ if(item && item_id == item_start_id) { - 8021cb0: 6afb ldr r3, [r7, #44] ; 0x2c - 8021cb2: 2b00 cmp r3, #0 - 8021cb4: d02f beq.n 8021d16 - 8021cb6: 697b ldr r3, [r7, #20] - 8021cb8: 687a ldr r2, [r7, #4] - 8021cba: 429a cmp r2, r3 - 8021cbc: d12b bne.n 8021d16 + 8021c1c: 6afb ldr r3, [r7, #44] ; 0x2c + 8021c1e: 2b00 cmp r3, #0 + 8021c20: d02f beq.n 8021c82 + 8021c22: 697b ldr r3, [r7, #20] + 8021c24: 687a ldr r2, [r7, #4] + 8021c26: 429a cmp r2, r3 + 8021c28: d12b bne.n 8021c82 item = cont->spec_attr->children[item_id]; - 8021cbe: 68fb ldr r3, [r7, #12] - 8021cc0: 689b ldr r3, [r3, #8] - 8021cc2: 681a ldr r2, [r3, #0] - 8021cc4: 697b ldr r3, [r7, #20] - 8021cc6: 009b lsls r3, r3, #2 - 8021cc8: 4413 add r3, r2 - 8021cca: 681b ldr r3, [r3, #0] - 8021ccc: 62fb str r3, [r7, #44] ; 0x2c + 8021c2a: 68fb ldr r3, [r7, #12] + 8021c2c: 689b ldr r3, [r3, #8] + 8021c2e: 681a ldr r2, [r3, #0] + 8021c30: 697b ldr r3, [r7, #20] + 8021c32: 009b lsls r3, r3, #2 + 8021c34: 4413 add r3, r2 + 8021c36: 681b ldr r3, [r3, #0] + 8021c38: 62fb str r3, [r7, #44] ; 0x2c get_next_item(cont, f->rev, &item_id); - 8021cce: 68bb ldr r3, [r7, #8] - 8021cd0: 78db ldrb r3, [r3, #3] - 8021cd2: f3c3 0380 ubfx r3, r3, #2, #1 - 8021cd6: b2db uxtb r3, r3 - 8021cd8: 2b00 cmp r3, #0 - 8021cda: bf14 ite ne - 8021cdc: 2301 movne r3, #1 - 8021cde: 2300 moveq r3, #0 - 8021ce0: b2db uxtb r3, r3 - 8021ce2: f107 0214 add.w r2, r7, #20 - 8021ce6: 4619 mov r1, r3 - 8021ce8: 68f8 ldr r0, [r7, #12] - 8021cea: f000 fc51 bl 8022590 + 8021c3a: 68bb ldr r3, [r7, #8] + 8021c3c: 78db ldrb r3, [r3, #3] + 8021c3e: f3c3 0380 ubfx r3, r3, #2, #1 + 8021c42: b2db uxtb r3, r3 + 8021c44: 2b00 cmp r3, #0 + 8021c46: bf14 ite ne + 8021c48: 2301 movne r3, #1 + 8021c4a: 2300 moveq r3, #0 + 8021c4c: b2db uxtb r3, r3 + 8021c4e: f107 0214 add.w r2, r7, #20 + 8021c52: 4619 mov r1, r3 + 8021c54: 68f8 ldr r0, [r7, #12] + 8021c56: f000 fc51 bl 80224fc if(item) { - 8021cee: 6afb ldr r3, [r7, #44] ; 0x2c - 8021cf0: 2b00 cmp r3, #0 - 8021cf2: d010 beq.n 8021d16 + 8021c5a: 6afb ldr r3, [r7, #44] ; 0x2c + 8021c5c: 2b00 cmp r3, #0 + 8021c5e: d010 beq.n 8021c82 t->track_cross_size = get_cross_size(item); - 8021cf4: 6a3b ldr r3, [r7, #32] - 8021cf6: 6af8 ldr r0, [r7, #44] ; 0x2c - 8021cf8: 4798 blx r3 - 8021cfa: 4603 mov r3, r0 - 8021cfc: 461a mov r2, r3 - 8021cfe: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021d00: 801a strh r2, [r3, #0] + 8021c60: 6a3b ldr r3, [r7, #32] + 8021c62: 6af8 ldr r0, [r7, #44] ; 0x2c + 8021c64: 4798 blx r3 + 8021c66: 4603 mov r3, r0 + 8021c68: 461a mov r2, r3 + 8021c6a: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021c6c: 801a strh r2, [r3, #0] t->track_main_size = get_main_size(item); - 8021d02: 6a7b ldr r3, [r7, #36] ; 0x24 - 8021d04: 6af8 ldr r0, [r7, #44] ; 0x2c - 8021d06: 4798 blx r3 - 8021d08: 4603 mov r3, r0 - 8021d0a: 461a mov r2, r3 - 8021d0c: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021d0e: 805a strh r2, [r3, #2] + 8021c6e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8021c70: 6af8 ldr r0, [r7, #44] ; 0x2c + 8021c72: 4798 blx r3 + 8021c74: 4603 mov r3, r0 + 8021c76: 461a mov r2, r3 + 8021c78: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021c7a: 805a strh r2, [r3, #2] t->item_cnt = 1; - 8021d10: 6bfb ldr r3, [r7, #60] ; 0x3c - 8021d12: 2201 movs r2, #1 - 8021d14: 609a str r2, [r3, #8] + 8021c7c: 6bfb ldr r3, [r7, #60] ; 0x3c + 8021c7e: 2201 movs r2, #1 + 8021c80: 609a str r2, [r3, #8] } } return item_id; - 8021d16: 697b ldr r3, [r7, #20] + 8021c82: 697b ldr r3, [r7, #20] } - 8021d18: 4618 mov r0, r3 - 8021d1a: 3730 adds r7, #48 ; 0x30 - 8021d1c: 46bd mov sp, r7 - 8021d1e: bd80 pop {r7, pc} + 8021c84: 4618 mov r0, r3 + 8021c86: 3730 adds r7, #48 ; 0x30 + 8021c88: 46bd mov sp, r7 + 8021c8a: bd80 pop {r7, pc} -08021d20 : +08021c8c : /** * Position the children in the same track */ static void children_repos(lv_obj_t * cont, flex_t * f, int32_t item_first_id, int32_t item_last_id, lv_coord_t abs_x, lv_coord_t abs_y, lv_coord_t max_main_size, lv_coord_t item_gap, track_t * t) { - 8021d20: b590 push {r4, r7, lr} - 8021d22: b099 sub sp, #100 ; 0x64 - 8021d24: af02 add r7, sp, #8 - 8021d26: 60f8 str r0, [r7, #12] - 8021d28: 60b9 str r1, [r7, #8] - 8021d2a: 607a str r2, [r7, #4] - 8021d2c: 603b str r3, [r7, #0] + 8021c8c: b590 push {r4, r7, lr} + 8021c8e: b099 sub sp, #100 ; 0x64 + 8021c90: af02 add r7, sp, #8 + 8021c92: 60f8 str r0, [r7, #12] + 8021c94: 60b9 str r1, [r7, #8] + 8021c96: 607a str r2, [r7, #4] + 8021c98: 603b str r3, [r7, #0] void (*area_set_main_size)(lv_area_t *, lv_coord_t) = (f->row ? lv_area_set_width : lv_area_set_height); - 8021d2e: 68bb ldr r3, [r7, #8] - 8021d30: 78db ldrb r3, [r3, #3] - 8021d32: f003 0301 and.w r3, r3, #1 - 8021d36: b2db uxtb r3, r3 - 8021d38: 2b00 cmp r3, #0 - 8021d3a: d001 beq.n 8021d40 - 8021d3c: 4bab ldr r3, [pc, #684] ; (8021fec ) - 8021d3e: e000 b.n 8021d42 - 8021d40: 4bab ldr r3, [pc, #684] ; (8021ff0 ) - 8021d42: 63fb str r3, [r7, #60] ; 0x3c + 8021c9a: 68bb ldr r3, [r7, #8] + 8021c9c: 78db ldrb r3, [r3, #3] + 8021c9e: f003 0301 and.w r3, r3, #1 + 8021ca2: b2db uxtb r3, r3 + 8021ca4: 2b00 cmp r3, #0 + 8021ca6: d001 beq.n 8021cac + 8021ca8: 4bab ldr r3, [pc, #684] ; (8021f58 ) + 8021caa: e000 b.n 8021cae + 8021cac: 4bab ldr r3, [pc, #684] ; (8021f5c ) + 8021cae: 63fb str r3, [r7, #60] ; 0x3c lv_coord_t (*area_get_main_size)(const lv_area_t *) = (f->row ? lv_area_get_width : lv_area_get_height); - 8021d44: 68bb ldr r3, [r7, #8] - 8021d46: 78db ldrb r3, [r3, #3] - 8021d48: f003 0301 and.w r3, r3, #1 - 8021d4c: b2db uxtb r3, r3 - 8021d4e: 2b00 cmp r3, #0 - 8021d50: d001 beq.n 8021d56 - 8021d52: 4ba8 ldr r3, [pc, #672] ; (8021ff4 ) - 8021d54: e000 b.n 8021d58 - 8021d56: 4ba8 ldr r3, [pc, #672] ; (8021ff8 ) - 8021d58: 63bb str r3, [r7, #56] ; 0x38 + 8021cb0: 68bb ldr r3, [r7, #8] + 8021cb2: 78db ldrb r3, [r3, #3] + 8021cb4: f003 0301 and.w r3, r3, #1 + 8021cb8: b2db uxtb r3, r3 + 8021cba: 2b00 cmp r3, #0 + 8021cbc: d001 beq.n 8021cc2 + 8021cbe: 4ba8 ldr r3, [pc, #672] ; (8021f60 ) + 8021cc0: e000 b.n 8021cc4 + 8021cc2: 4ba8 ldr r3, [pc, #672] ; (8021f64 ) + 8021cc4: 63bb str r3, [r7, #56] ; 0x38 lv_coord_t (*area_get_cross_size)(const lv_area_t *) = (!f->row ? lv_area_get_width : lv_area_get_height); - 8021d5a: 68bb ldr r3, [r7, #8] - 8021d5c: 78db ldrb r3, [r3, #3] - 8021d5e: f003 0301 and.w r3, r3, #1 - 8021d62: b2db uxtb r3, r3 - 8021d64: 2b00 cmp r3, #0 - 8021d66: d101 bne.n 8021d6c - 8021d68: 4ba2 ldr r3, [pc, #648] ; (8021ff4 ) - 8021d6a: e000 b.n 8021d6e - 8021d6c: 4ba2 ldr r3, [pc, #648] ; (8021ff8 ) - 8021d6e: 637b str r3, [r7, #52] ; 0x34 + 8021cc6: 68bb ldr r3, [r7, #8] + 8021cc8: 78db ldrb r3, [r3, #3] + 8021cca: f003 0301 and.w r3, r3, #1 + 8021cce: b2db uxtb r3, r3 + 8021cd0: 2b00 cmp r3, #0 + 8021cd2: d101 bne.n 8021cd8 + 8021cd4: 4ba2 ldr r3, [pc, #648] ; (8021f60 ) + 8021cd6: e000 b.n 8021cda + 8021cd8: 4ba2 ldr r3, [pc, #648] ; (8021f64 ) + 8021cda: 637b str r3, [r7, #52] ; 0x34 /*Calculate the size of grow items first*/ uint32_t i; bool grow_reiterate = true; - 8021d70: 2301 movs r3, #1 - 8021d72: f887 3053 strb.w r3, [r7, #83] ; 0x53 + 8021cdc: 2301 movs r3, #1 + 8021cde: f887 3053 strb.w r3, [r7, #83] ; 0x53 while(grow_reiterate) { - 8021d76: e0dc b.n 8021f32 + 8021ce2: e0dc b.n 8021e9e grow_reiterate = false; - 8021d78: 2300 movs r3, #0 - 8021d7a: f887 3053 strb.w r3, [r7, #83] ; 0x53 + 8021ce4: 2300 movs r3, #0 + 8021ce6: f887 3053 strb.w r3, [r7, #83] ; 0x53 lv_coord_t grow_value_sum = 0; - 8021d7e: 2300 movs r3, #0 - 8021d80: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 + 8021cea: 2300 movs r3, #0 + 8021cec: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 lv_coord_t grow_max_size = t->track_main_size - t->track_fix_main_size; - 8021d84: 6fbb ldr r3, [r7, #120] ; 0x78 - 8021d86: f9b3 3002 ldrsh.w r3, [r3, #2] - 8021d8a: b29a uxth r2, r3 - 8021d8c: 6fbb ldr r3, [r7, #120] ; 0x78 - 8021d8e: f9b3 3004 ldrsh.w r3, [r3, #4] - 8021d92: b29b uxth r3, r3 - 8021d94: 1ad3 subs r3, r2, r3 - 8021d96: b29b uxth r3, r3 - 8021d98: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 8021cf0: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021cf2: f9b3 3002 ldrsh.w r3, [r3, #2] + 8021cf6: b29a uxth r2, r3 + 8021cf8: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021cfa: f9b3 3004 ldrsh.w r3, [r3, #4] + 8021cfe: b29b uxth r3, r3 + 8021d00: 1ad3 subs r3, r2, r3 + 8021d02: b29b uxth r3, r3 + 8021d04: f8a7 304e strh.w r3, [r7, #78] ; 0x4e for(i = 0; i < t->grow_item_cnt; i++) { - 8021d9c: 2300 movs r3, #0 - 8021d9e: 657b str r3, [r7, #84] ; 0x54 - 8021da0: e032 b.n 8021e08 + 8021d08: 2300 movs r3, #0 + 8021d0a: 657b str r3, [r7, #84] ; 0x54 + 8021d0c: e032 b.n 8021d74 if(t->grow_dsc[i].clamped == 0) { - 8021da2: 6fbb ldr r3, [r7, #120] ; 0x78 - 8021da4: 68d9 ldr r1, [r3, #12] - 8021da6: 6d7a ldr r2, [r7, #84] ; 0x54 - 8021da8: 4613 mov r3, r2 - 8021daa: 009b lsls r3, r3, #2 - 8021dac: 4413 add r3, r2 - 8021dae: 009b lsls r3, r3, #2 - 8021db0: 440b add r3, r1 - 8021db2: 7c1b ldrb r3, [r3, #16] - 8021db4: f003 0301 and.w r3, r3, #1 - 8021db8: b2db uxtb r3, r3 - 8021dba: 2b00 cmp r3, #0 - 8021dbc: d110 bne.n 8021de0 + 8021d0e: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021d10: 68d9 ldr r1, [r3, #12] + 8021d12: 6d7a ldr r2, [r7, #84] ; 0x54 + 8021d14: 4613 mov r3, r2 + 8021d16: 009b lsls r3, r3, #2 + 8021d18: 4413 add r3, r2 + 8021d1a: 009b lsls r3, r3, #2 + 8021d1c: 440b add r3, r1 + 8021d1e: 7c1b ldrb r3, [r3, #16] + 8021d20: f003 0301 and.w r3, r3, #1 + 8021d24: b2db uxtb r3, r3 + 8021d26: 2b00 cmp r3, #0 + 8021d28: d110 bne.n 8021d4c grow_value_sum += t->grow_dsc[i].grow_value; - 8021dbe: 6fbb ldr r3, [r7, #120] ; 0x78 - 8021dc0: 68d9 ldr r1, [r3, #12] - 8021dc2: 6d7a ldr r2, [r7, #84] ; 0x54 - 8021dc4: 4613 mov r3, r2 - 8021dc6: 009b lsls r3, r3, #2 - 8021dc8: 4413 add r3, r2 - 8021dca: 009b lsls r3, r3, #2 - 8021dcc: 440b add r3, r1 - 8021dce: 68db ldr r3, [r3, #12] - 8021dd0: b29a uxth r2, r3 - 8021dd2: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 - 8021dd6: 4413 add r3, r2 - 8021dd8: b29b uxth r3, r3 - 8021dda: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 - 8021dde: e010 b.n 8021e02 + 8021d2a: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021d2c: 68d9 ldr r1, [r3, #12] + 8021d2e: 6d7a ldr r2, [r7, #84] ; 0x54 + 8021d30: 4613 mov r3, r2 + 8021d32: 009b lsls r3, r3, #2 + 8021d34: 4413 add r3, r2 + 8021d36: 009b lsls r3, r3, #2 + 8021d38: 440b add r3, r1 + 8021d3a: 68db ldr r3, [r3, #12] + 8021d3c: b29a uxth r2, r3 + 8021d3e: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 + 8021d42: 4413 add r3, r2 + 8021d44: b29b uxth r3, r3 + 8021d46: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 + 8021d4a: e010 b.n 8021d6e } else { grow_max_size -= t->grow_dsc[i].final_size; - 8021de0: f8b7 104e ldrh.w r1, [r7, #78] ; 0x4e - 8021de4: 6fbb ldr r3, [r7, #120] ; 0x78 - 8021de6: 68d8 ldr r0, [r3, #12] - 8021de8: 6d7a ldr r2, [r7, #84] ; 0x54 - 8021dea: 4613 mov r3, r2 - 8021dec: 009b lsls r3, r3, #2 - 8021dee: 4413 add r3, r2 - 8021df0: 009b lsls r3, r3, #2 - 8021df2: 4403 add r3, r0 - 8021df4: f9b3 3008 ldrsh.w r3, [r3, #8] - 8021df8: b29b uxth r3, r3 - 8021dfa: 1acb subs r3, r1, r3 - 8021dfc: b29b uxth r3, r3 - 8021dfe: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 8021d4c: f8b7 104e ldrh.w r1, [r7, #78] ; 0x4e + 8021d50: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021d52: 68d8 ldr r0, [r3, #12] + 8021d54: 6d7a ldr r2, [r7, #84] ; 0x54 + 8021d56: 4613 mov r3, r2 + 8021d58: 009b lsls r3, r3, #2 + 8021d5a: 4413 add r3, r2 + 8021d5c: 009b lsls r3, r3, #2 + 8021d5e: 4403 add r3, r0 + 8021d60: f9b3 3008 ldrsh.w r3, [r3, #8] + 8021d64: b29b uxth r3, r3 + 8021d66: 1acb subs r3, r1, r3 + 8021d68: b29b uxth r3, r3 + 8021d6a: f8a7 304e strh.w r3, [r7, #78] ; 0x4e for(i = 0; i < t->grow_item_cnt; i++) { - 8021e02: 6d7b ldr r3, [r7, #84] ; 0x54 - 8021e04: 3301 adds r3, #1 - 8021e06: 657b str r3, [r7, #84] ; 0x54 - 8021e08: 6fbb ldr r3, [r7, #120] ; 0x78 - 8021e0a: 691b ldr r3, [r3, #16] - 8021e0c: 6d7a ldr r2, [r7, #84] ; 0x54 - 8021e0e: 429a cmp r2, r3 - 8021e10: d3c7 bcc.n 8021da2 + 8021d6e: 6d7b ldr r3, [r7, #84] ; 0x54 + 8021d70: 3301 adds r3, #1 + 8021d72: 657b str r3, [r7, #84] ; 0x54 + 8021d74: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021d76: 691b ldr r3, [r3, #16] + 8021d78: 6d7a ldr r2, [r7, #84] ; 0x54 + 8021d7a: 429a cmp r2, r3 + 8021d7c: d3c7 bcc.n 8021d0e } } lv_coord_t grow_unit; for(i = 0; i < t->grow_item_cnt; i++) { - 8021e12: 2300 movs r3, #0 - 8021e14: 657b str r3, [r7, #84] ; 0x54 - 8021e16: e086 b.n 8021f26 + 8021d7e: 2300 movs r3, #0 + 8021d80: 657b str r3, [r7, #84] ; 0x54 + 8021d82: e086 b.n 8021e92 if(t->grow_dsc[i].clamped == 0) { + 8021d84: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021d86: 68d9 ldr r1, [r3, #12] + 8021d88: 6d7a ldr r2, [r7, #84] ; 0x54 + 8021d8a: 4613 mov r3, r2 + 8021d8c: 009b lsls r3, r3, #2 + 8021d8e: 4413 add r3, r2 + 8021d90: 009b lsls r3, r3, #2 + 8021d92: 440b add r3, r1 + 8021d94: 7c1b ldrb r3, [r3, #16] + 8021d96: f003 0301 and.w r3, r3, #1 + 8021d9a: b2db uxtb r3, r3 + 8021d9c: 2b00 cmp r3, #0 + 8021d9e: d175 bne.n 8021e8c + grow_unit = grow_max_size / grow_value_sum; + 8021da0: f9b7 204e ldrsh.w r2, [r7, #78] ; 0x4e + 8021da4: f9b7 3050 ldrsh.w r3, [r7, #80] ; 0x50 + 8021da8: fb92 f3f3 sdiv r3, r2, r3 + 8021dac: 84fb strh r3, [r7, #38] ; 0x26 + lv_coord_t size = grow_unit * t->grow_dsc[i].grow_value; + 8021dae: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 8021db2: b299 uxth r1, r3 + 8021db4: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021db6: 68d8 ldr r0, [r3, #12] + 8021db8: 6d7a ldr r2, [r7, #84] ; 0x54 + 8021dba: 4613 mov r3, r2 + 8021dbc: 009b lsls r3, r3, #2 + 8021dbe: 4413 add r3, r2 + 8021dc0: 009b lsls r3, r3, #2 + 8021dc2: 4403 add r3, r0 + 8021dc4: 68db ldr r3, [r3, #12] + 8021dc6: b29b uxth r3, r3 + 8021dc8: fb01 f303 mul.w r3, r1, r3 + 8021dcc: b29b uxth r3, r3 + 8021dce: 84bb strh r3, [r7, #36] ; 0x24 + lv_coord_t size_clamp = LV_CLAMP(t->grow_dsc[i].min_size, size, t->grow_dsc[i].max_size); + 8021dd0: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021dd2: 68d9 ldr r1, [r3, #12] + 8021dd4: 6d7a ldr r2, [r7, #84] ; 0x54 + 8021dd6: 4613 mov r3, r2 + 8021dd8: 009b lsls r3, r3, #2 + 8021dda: 4413 add r3, r2 + 8021ddc: 009b lsls r3, r3, #2 + 8021dde: 440b add r3, r1 + 8021de0: f9b3 3006 ldrsh.w r3, [r3, #6] + 8021de4: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 + 8021de8: 4293 cmp r3, r2 + 8021dea: bfa8 it ge + 8021dec: 4613 movge r3, r2 + 8021dee: b219 sxth r1, r3 + 8021df0: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021df2: 68d8 ldr r0, [r3, #12] + 8021df4: 6d7a ldr r2, [r7, #84] ; 0x54 + 8021df6: 4613 mov r3, r2 + 8021df8: 009b lsls r3, r3, #2 + 8021dfa: 4413 add r3, r2 + 8021dfc: 009b lsls r3, r3, #2 + 8021dfe: 4403 add r3, r0 + 8021e00: f9b3 3004 ldrsh.w r3, [r3, #4] + 8021e04: 428b cmp r3, r1 + 8021e06: bfb8 it lt + 8021e08: 460b movlt r3, r1 + 8021e0a: 847b strh r3, [r7, #34] ; 0x22 + + if(size_clamp != size) { + 8021e0c: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 + 8021e10: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 + 8021e14: 429a cmp r2, r3 + 8021e16: d00e beq.n 8021e36 + t->grow_dsc[i].clamped = 1; 8021e18: 6fbb ldr r3, [r7, #120] ; 0x78 8021e1a: 68d9 ldr r1, [r3, #12] 8021e1c: 6d7a ldr r2, [r7, #84] ; 0x54 @@ -76779,13232 +76769,13269 @@ static void children_repos(lv_obj_t * cont, flex_t * f, int32_t item_first_id, i 8021e20: 009b lsls r3, r3, #2 8021e22: 4413 add r3, r2 8021e24: 009b lsls r3, r3, #2 - 8021e26: 440b add r3, r1 - 8021e28: 7c1b ldrb r3, [r3, #16] - 8021e2a: f003 0301 and.w r3, r3, #1 - 8021e2e: b2db uxtb r3, r3 - 8021e30: 2b00 cmp r3, #0 - 8021e32: d175 bne.n 8021f20 - grow_unit = grow_max_size / grow_value_sum; - 8021e34: f9b7 204e ldrsh.w r2, [r7, #78] ; 0x4e - 8021e38: f9b7 3050 ldrsh.w r3, [r7, #80] ; 0x50 - 8021e3c: fb92 f3f3 sdiv r3, r2, r3 - 8021e40: 84fb strh r3, [r7, #38] ; 0x26 - lv_coord_t size = grow_unit * t->grow_dsc[i].grow_value; - 8021e42: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 8021e46: b299 uxth r1, r3 - 8021e48: 6fbb ldr r3, [r7, #120] ; 0x78 - 8021e4a: 68d8 ldr r0, [r3, #12] - 8021e4c: 6d7a ldr r2, [r7, #84] ; 0x54 - 8021e4e: 4613 mov r3, r2 - 8021e50: 009b lsls r3, r3, #2 - 8021e52: 4413 add r3, r2 - 8021e54: 009b lsls r3, r3, #2 - 8021e56: 4403 add r3, r0 - 8021e58: 68db ldr r3, [r3, #12] - 8021e5a: b29b uxth r3, r3 - 8021e5c: fb01 f303 mul.w r3, r1, r3 - 8021e60: b29b uxth r3, r3 - 8021e62: 84bb strh r3, [r7, #36] ; 0x24 - lv_coord_t size_clamp = LV_CLAMP(t->grow_dsc[i].min_size, size, t->grow_dsc[i].max_size); - 8021e64: 6fbb ldr r3, [r7, #120] ; 0x78 - 8021e66: 68d9 ldr r1, [r3, #12] - 8021e68: 6d7a ldr r2, [r7, #84] ; 0x54 - 8021e6a: 4613 mov r3, r2 - 8021e6c: 009b lsls r3, r3, #2 - 8021e6e: 4413 add r3, r2 - 8021e70: 009b lsls r3, r3, #2 - 8021e72: 440b add r3, r1 - 8021e74: f9b3 3006 ldrsh.w r3, [r3, #6] - 8021e78: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 - 8021e7c: 4293 cmp r3, r2 - 8021e7e: bfa8 it ge - 8021e80: 4613 movge r3, r2 - 8021e82: b219 sxth r1, r3 - 8021e84: 6fbb ldr r3, [r7, #120] ; 0x78 - 8021e86: 68d8 ldr r0, [r3, #12] - 8021e88: 6d7a ldr r2, [r7, #84] ; 0x54 - 8021e8a: 4613 mov r3, r2 - 8021e8c: 009b lsls r3, r3, #2 - 8021e8e: 4413 add r3, r2 - 8021e90: 009b lsls r3, r3, #2 - 8021e92: 4403 add r3, r0 - 8021e94: f9b3 3004 ldrsh.w r3, [r3, #4] - 8021e98: 428b cmp r3, r1 - 8021e9a: bfb8 it lt - 8021e9c: 460b movlt r3, r1 - 8021e9e: 847b strh r3, [r7, #34] ; 0x22 - - if(size_clamp != size) { - 8021ea0: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 - 8021ea4: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 - 8021ea8: 429a cmp r2, r3 - 8021eaa: d00e beq.n 8021eca - t->grow_dsc[i].clamped = 1; - 8021eac: 6fbb ldr r3, [r7, #120] ; 0x78 - 8021eae: 68d9 ldr r1, [r3, #12] - 8021eb0: 6d7a ldr r2, [r7, #84] ; 0x54 - 8021eb2: 4613 mov r3, r2 - 8021eb4: 009b lsls r3, r3, #2 - 8021eb6: 4413 add r3, r2 - 8021eb8: 009b lsls r3, r3, #2 - 8021eba: 18ca adds r2, r1, r3 - 8021ebc: 7c13 ldrb r3, [r2, #16] - 8021ebe: f043 0301 orr.w r3, r3, #1 - 8021ec2: 7413 strb r3, [r2, #16] + 8021e26: 18ca adds r2, r1, r3 + 8021e28: 7c13 ldrb r3, [r2, #16] + 8021e2a: f043 0301 orr.w r3, r3, #1 + 8021e2e: 7413 strb r3, [r2, #16] grow_reiterate = true; - 8021ec4: 2301 movs r3, #1 - 8021ec6: f887 3053 strb.w r3, [r7, #83] ; 0x53 + 8021e30: 2301 movs r3, #1 + 8021e32: f887 3053 strb.w r3, [r7, #83] ; 0x53 } t->grow_dsc[i].final_size = size_clamp; - 8021eca: 6fbb ldr r3, [r7, #120] ; 0x78 - 8021ecc: 68d9 ldr r1, [r3, #12] - 8021ece: 6d7a ldr r2, [r7, #84] ; 0x54 - 8021ed0: 4613 mov r3, r2 - 8021ed2: 009b lsls r3, r3, #2 - 8021ed4: 4413 add r3, r2 - 8021ed6: 009b lsls r3, r3, #2 - 8021ed8: 440b add r3, r1 - 8021eda: 8c7a ldrh r2, [r7, #34] ; 0x22 - 8021edc: 811a strh r2, [r3, #8] + 8021e36: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021e38: 68d9 ldr r1, [r3, #12] + 8021e3a: 6d7a ldr r2, [r7, #84] ; 0x54 + 8021e3c: 4613 mov r3, r2 + 8021e3e: 009b lsls r3, r3, #2 + 8021e40: 4413 add r3, r2 + 8021e42: 009b lsls r3, r3, #2 + 8021e44: 440b add r3, r1 + 8021e46: 8c7a ldrh r2, [r7, #34] ; 0x22 + 8021e48: 811a strh r2, [r3, #8] grow_value_sum -= t->grow_dsc[i].grow_value; - 8021ede: f8b7 1050 ldrh.w r1, [r7, #80] ; 0x50 - 8021ee2: 6fbb ldr r3, [r7, #120] ; 0x78 - 8021ee4: 68d8 ldr r0, [r3, #12] - 8021ee6: 6d7a ldr r2, [r7, #84] ; 0x54 - 8021ee8: 4613 mov r3, r2 - 8021eea: 009b lsls r3, r3, #2 - 8021eec: 4413 add r3, r2 - 8021eee: 009b lsls r3, r3, #2 - 8021ef0: 4403 add r3, r0 - 8021ef2: 68db ldr r3, [r3, #12] - 8021ef4: b29b uxth r3, r3 - 8021ef6: 1acb subs r3, r1, r3 - 8021ef8: b29b uxth r3, r3 - 8021efa: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 + 8021e4a: f8b7 1050 ldrh.w r1, [r7, #80] ; 0x50 + 8021e4e: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021e50: 68d8 ldr r0, [r3, #12] + 8021e52: 6d7a ldr r2, [r7, #84] ; 0x54 + 8021e54: 4613 mov r3, r2 + 8021e56: 009b lsls r3, r3, #2 + 8021e58: 4413 add r3, r2 + 8021e5a: 009b lsls r3, r3, #2 + 8021e5c: 4403 add r3, r0 + 8021e5e: 68db ldr r3, [r3, #12] + 8021e60: b29b uxth r3, r3 + 8021e62: 1acb subs r3, r1, r3 + 8021e64: b29b uxth r3, r3 + 8021e66: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 grow_max_size -= t->grow_dsc[i].final_size; - 8021efe: f8b7 104e ldrh.w r1, [r7, #78] ; 0x4e - 8021f02: 6fbb ldr r3, [r7, #120] ; 0x78 - 8021f04: 68d8 ldr r0, [r3, #12] - 8021f06: 6d7a ldr r2, [r7, #84] ; 0x54 - 8021f08: 4613 mov r3, r2 - 8021f0a: 009b lsls r3, r3, #2 - 8021f0c: 4413 add r3, r2 - 8021f0e: 009b lsls r3, r3, #2 - 8021f10: 4403 add r3, r0 - 8021f12: f9b3 3008 ldrsh.w r3, [r3, #8] - 8021f16: b29b uxth r3, r3 - 8021f18: 1acb subs r3, r1, r3 - 8021f1a: b29b uxth r3, r3 - 8021f1c: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 8021e6a: f8b7 104e ldrh.w r1, [r7, #78] ; 0x4e + 8021e6e: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021e70: 68d8 ldr r0, [r3, #12] + 8021e72: 6d7a ldr r2, [r7, #84] ; 0x54 + 8021e74: 4613 mov r3, r2 + 8021e76: 009b lsls r3, r3, #2 + 8021e78: 4413 add r3, r2 + 8021e7a: 009b lsls r3, r3, #2 + 8021e7c: 4403 add r3, r0 + 8021e7e: f9b3 3008 ldrsh.w r3, [r3, #8] + 8021e82: b29b uxth r3, r3 + 8021e84: 1acb subs r3, r1, r3 + 8021e86: b29b uxth r3, r3 + 8021e88: f8a7 304e strh.w r3, [r7, #78] ; 0x4e for(i = 0; i < t->grow_item_cnt; i++) { - 8021f20: 6d7b ldr r3, [r7, #84] ; 0x54 - 8021f22: 3301 adds r3, #1 - 8021f24: 657b str r3, [r7, #84] ; 0x54 - 8021f26: 6fbb ldr r3, [r7, #120] ; 0x78 - 8021f28: 691b ldr r3, [r3, #16] - 8021f2a: 6d7a ldr r2, [r7, #84] ; 0x54 - 8021f2c: 429a cmp r2, r3 - 8021f2e: f4ff af73 bcc.w 8021e18 + 8021e8c: 6d7b ldr r3, [r7, #84] ; 0x54 + 8021e8e: 3301 adds r3, #1 + 8021e90: 657b str r3, [r7, #84] ; 0x54 + 8021e92: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021e94: 691b ldr r3, [r3, #16] + 8021e96: 6d7a ldr r2, [r7, #84] ; 0x54 + 8021e98: 429a cmp r2, r3 + 8021e9a: f4ff af73 bcc.w 8021d84 while(grow_reiterate) { - 8021f32: f897 3053 ldrb.w r3, [r7, #83] ; 0x53 - 8021f36: 2b00 cmp r3, #0 - 8021f38: f47f af1e bne.w 8021d78 + 8021e9e: f897 3053 ldrb.w r3, [r7, #83] ; 0x53 + 8021ea2: 2b00 cmp r3, #0 + 8021ea4: f47f af1e bne.w 8021ce4 } } } bool rtl = lv_obj_get_style_base_dir(cont, LV_PART_MAIN) == LV_BASE_DIR_RTL ? true : false; - 8021f3c: 2100 movs r1, #0 - 8021f3e: 68f8 ldr r0, [r7, #12] - 8021f40: f7ff f911 bl 8021166 - 8021f44: 4603 mov r3, r0 - 8021f46: 2b01 cmp r3, #1 - 8021f48: bf0c ite eq - 8021f4a: 2301 moveq r3, #1 - 8021f4c: 2300 movne r3, #0 - 8021f4e: f887 3033 strb.w r3, [r7, #51] ; 0x33 + 8021ea8: 2100 movs r1, #0 + 8021eaa: 68f8 ldr r0, [r7, #12] + 8021eac: f7ff f911 bl 80210d2 + 8021eb0: 4603 mov r3, r0 + 8021eb2: 2b01 cmp r3, #1 + 8021eb4: bf0c ite eq + 8021eb6: 2301 moveq r3, #1 + 8021eb8: 2300 movne r3, #0 + 8021eba: f887 3033 strb.w r3, [r7, #51] ; 0x33 lv_coord_t main_pos = 0; - 8021f52: 2300 movs r3, #0 - 8021f54: 843b strh r3, [r7, #32] + 8021ebe: 2300 movs r3, #0 + 8021ec0: 843b strh r3, [r7, #32] lv_coord_t place_gap = 0; - 8021f56: 2300 movs r3, #0 - 8021f58: 83fb strh r3, [r7, #30] + 8021ec2: 2300 movs r3, #0 + 8021ec4: 83fb strh r3, [r7, #30] place_content(f->main_place, max_main_size, t->track_main_size, t->item_cnt, &main_pos, &place_gap); - 8021f5a: 68bb ldr r3, [r7, #8] - 8021f5c: 7818 ldrb r0, [r3, #0] - 8021f5e: 6fbb ldr r3, [r7, #120] ; 0x78 - 8021f60: f9b3 2002 ldrsh.w r2, [r3, #2] - 8021f64: 6fbb ldr r3, [r7, #120] ; 0x78 - 8021f66: 689b ldr r3, [r3, #8] - 8021f68: b21c sxth r4, r3 - 8021f6a: f9b7 1070 ldrsh.w r1, [r7, #112] ; 0x70 - 8021f6e: f107 031e add.w r3, r7, #30 - 8021f72: 9301 str r3, [sp, #4] - 8021f74: f107 0320 add.w r3, r7, #32 - 8021f78: 9300 str r3, [sp, #0] - 8021f7a: 4623 mov r3, r4 - 8021f7c: f000 fa56 bl 802242c + 8021ec6: 68bb ldr r3, [r7, #8] + 8021ec8: 7818 ldrb r0, [r3, #0] + 8021eca: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021ecc: f9b3 2002 ldrsh.w r2, [r3, #2] + 8021ed0: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021ed2: 689b ldr r3, [r3, #8] + 8021ed4: b21c sxth r4, r3 + 8021ed6: f9b7 1070 ldrsh.w r1, [r7, #112] ; 0x70 + 8021eda: f107 031e add.w r3, r7, #30 + 8021ede: 9301 str r3, [sp, #4] + 8021ee0: f107 0320 add.w r3, r7, #32 + 8021ee4: 9300 str r3, [sp, #0] + 8021ee6: 4623 mov r3, r4 + 8021ee8: f000 fa56 bl 8022398 if(f->row && rtl) main_pos += lv_obj_get_content_width(cont); - 8021f80: 68bb ldr r3, [r7, #8] - 8021f82: 78db ldrb r3, [r3, #3] - 8021f84: f003 0301 and.w r3, r3, #1 - 8021f88: b2db uxtb r3, r3 - 8021f8a: 2b00 cmp r3, #0 - 8021f8c: d00f beq.n 8021fae - 8021f8e: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 - 8021f92: 2b00 cmp r3, #0 - 8021f94: d00b beq.n 8021fae - 8021f96: 68f8 ldr r0, [r7, #12] - 8021f98: f7e8 f8f2 bl 800a180 - 8021f9c: 4603 mov r3, r0 - 8021f9e: b29a uxth r2, r3 - 8021fa0: f9b7 3020 ldrsh.w r3, [r7, #32] - 8021fa4: b29b uxth r3, r3 - 8021fa6: 4413 add r3, r2 - 8021fa8: b29b uxth r3, r3 - 8021faa: b21b sxth r3, r3 - 8021fac: 843b strh r3, [r7, #32] + 8021eec: 68bb ldr r3, [r7, #8] + 8021eee: 78db ldrb r3, [r3, #3] + 8021ef0: f003 0301 and.w r3, r3, #1 + 8021ef4: b2db uxtb r3, r3 + 8021ef6: 2b00 cmp r3, #0 + 8021ef8: d00f beq.n 8021f1a + 8021efa: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 + 8021efe: 2b00 cmp r3, #0 + 8021f00: d00b beq.n 8021f1a + 8021f02: 68f8 ldr r0, [r7, #12] + 8021f04: f7e8 f906 bl 800a114 + 8021f08: 4603 mov r3, r0 + 8021f0a: b29a uxth r2, r3 + 8021f0c: f9b7 3020 ldrsh.w r3, [r7, #32] + 8021f10: b29b uxth r3, r3 + 8021f12: 4413 add r3, r2 + 8021f14: b29b uxth r3, r3 + 8021f16: b21b sxth r3, r3 + 8021f18: 843b strh r3, [r7, #32] lv_obj_t * item = lv_obj_get_child(cont, item_first_id); - 8021fae: 687b ldr r3, [r7, #4] - 8021fb0: 4619 mov r1, r3 - 8021fb2: 68f8 ldr r0, [r7, #12] - 8021fb4: f7ed fbba bl 800f72c - 8021fb8: 64b8 str r0, [r7, #72] ; 0x48 + 8021f1a: 687b ldr r3, [r7, #4] + 8021f1c: 4619 mov r1, r3 + 8021f1e: 68f8 ldr r0, [r7, #12] + 8021f20: f7ed fbba bl 800f698 + 8021f24: 64b8 str r0, [r7, #72] ; 0x48 /*Reposition the children*/ while(item && item_first_id != item_last_id) { - 8021fba: e228 b.n 802240e + 8021f26: e228 b.n 802237a if(lv_obj_has_flag_any(item, LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) { - 8021fbc: 490f ldr r1, [pc, #60] ; (8021ffc ) - 8021fbe: 6cb8 ldr r0, [r7, #72] ; 0x48 - 8021fc0: f7e4 fbf3 bl 80067aa - 8021fc4: 4603 mov r3, r0 - 8021fc6: 2b00 cmp r3, #0 - 8021fc8: d01a beq.n 8022000 + 8021f28: 490f ldr r1, [pc, #60] ; (8021f68 ) + 8021f2a: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8021f2c: f7e4 fc07 bl 800673e + 8021f30: 4603 mov r3, r0 + 8021f32: 2b00 cmp r3, #0 + 8021f34: d01a beq.n 8021f6c item = get_next_item(cont, f->rev, &item_first_id); - 8021fca: 68bb ldr r3, [r7, #8] - 8021fcc: 78db ldrb r3, [r3, #3] - 8021fce: f3c3 0380 ubfx r3, r3, #2, #1 - 8021fd2: b2db uxtb r3, r3 - 8021fd4: 2b00 cmp r3, #0 - 8021fd6: bf14 ite ne - 8021fd8: 2301 movne r3, #1 - 8021fda: 2300 moveq r3, #0 - 8021fdc: b2db uxtb r3, r3 - 8021fde: 1d3a adds r2, r7, #4 - 8021fe0: 4619 mov r1, r3 - 8021fe2: 68f8 ldr r0, [r7, #12] - 8021fe4: f000 fad4 bl 8022590 - 8021fe8: 64b8 str r0, [r7, #72] ; 0x48 + 8021f36: 68bb ldr r3, [r7, #8] + 8021f38: 78db ldrb r3, [r3, #3] + 8021f3a: f3c3 0380 ubfx r3, r3, #2, #1 + 8021f3e: b2db uxtb r3, r3 + 8021f40: 2b00 cmp r3, #0 + 8021f42: bf14 ite ne + 8021f44: 2301 movne r3, #1 + 8021f46: 2300 moveq r3, #0 + 8021f48: b2db uxtb r3, r3 + 8021f4a: 1d3a adds r2, r7, #4 + 8021f4c: 4619 mov r1, r3 + 8021f4e: 68f8 ldr r0, [r7, #12] + 8021f50: f000 fad4 bl 80224fc + 8021f54: 64b8 str r0, [r7, #72] ; 0x48 continue; - 8021fea: e210 b.n 802240e - 8021fec: 08030f39 .word 0x08030f39 - 8021ff0: 08030f67 .word 0x08030f67 - 8021ff4: 08020f21 .word 0x08020f21 - 8021ff8: 08020f4d .word 0x08020f4d - 8021ffc: 00060001 .word 0x00060001 + 8021f56: e210 b.n 802237a + 8021f58: 08030ea5 .word 0x08030ea5 + 8021f5c: 08030ed3 .word 0x08030ed3 + 8021f60: 08020e8d .word 0x08020e8d + 8021f64: 08020eb9 .word 0x08020eb9 + 8021f68: 00060001 .word 0x00060001 } lv_coord_t grow_size = lv_obj_get_style_flex_grow(item, LV_PART_MAIN); - 8022000: 2100 movs r1, #0 - 8022002: 6cb8 ldr r0, [r7, #72] ; 0x48 - 8022004: f7ff f91a bl 802123c - 8022008: 4603 mov r3, r0 - 802200a: 863b strh r3, [r7, #48] ; 0x30 + 8021f6c: 2100 movs r1, #0 + 8021f6e: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8021f70: f7ff f91a bl 80211a8 + 8021f74: 4603 mov r3, r0 + 8021f76: 863b strh r3, [r7, #48] ; 0x30 if(grow_size) { - 802200c: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 8022010: 2b00 cmp r3, #0 - 8022012: d06f beq.n 80220f4 + 8021f78: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 8021f7c: 2b00 cmp r3, #0 + 8021f7e: d06f beq.n 8022060 lv_coord_t s = 0; - 8022014: 2300 movs r3, #0 - 8022016: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 8021f80: 2300 movs r3, #0 + 8021f82: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 for(i = 0; i < t->grow_item_cnt; i++) { - 802201a: 2300 movs r3, #0 - 802201c: 657b str r3, [r7, #84] ; 0x54 - 802201e: e01a b.n 8022056 + 8021f86: 2300 movs r3, #0 + 8021f88: 657b str r3, [r7, #84] ; 0x54 + 8021f8a: e01a b.n 8021fc2 if(t->grow_dsc[i].item == item) { - 8022020: 6fbb ldr r3, [r7, #120] ; 0x78 - 8022022: 68d9 ldr r1, [r3, #12] - 8022024: 6d7a ldr r2, [r7, #84] ; 0x54 - 8022026: 4613 mov r3, r2 - 8022028: 009b lsls r3, r3, #2 - 802202a: 4413 add r3, r2 - 802202c: 009b lsls r3, r3, #2 - 802202e: 440b add r3, r1 - 8022030: 681b ldr r3, [r3, #0] - 8022032: 6cba ldr r2, [r7, #72] ; 0x48 - 8022034: 429a cmp r2, r3 - 8022036: d10b bne.n 8022050 + 8021f8c: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021f8e: 68d9 ldr r1, [r3, #12] + 8021f90: 6d7a ldr r2, [r7, #84] ; 0x54 + 8021f92: 4613 mov r3, r2 + 8021f94: 009b lsls r3, r3, #2 + 8021f96: 4413 add r3, r2 + 8021f98: 009b lsls r3, r3, #2 + 8021f9a: 440b add r3, r1 + 8021f9c: 681b ldr r3, [r3, #0] + 8021f9e: 6cba ldr r2, [r7, #72] ; 0x48 + 8021fa0: 429a cmp r2, r3 + 8021fa2: d10b bne.n 8021fbc s = t->grow_dsc[i].final_size; - 8022038: 6fbb ldr r3, [r7, #120] ; 0x78 - 802203a: 68d9 ldr r1, [r3, #12] - 802203c: 6d7a ldr r2, [r7, #84] ; 0x54 - 802203e: 4613 mov r3, r2 - 8022040: 009b lsls r3, r3, #2 - 8022042: 4413 add r3, r2 - 8022044: 009b lsls r3, r3, #2 - 8022046: 440b add r3, r1 - 8022048: 891b ldrh r3, [r3, #8] - 802204a: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 8021fa4: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021fa6: 68d9 ldr r1, [r3, #12] + 8021fa8: 6d7a ldr r2, [r7, #84] ; 0x54 + 8021faa: 4613 mov r3, r2 + 8021fac: 009b lsls r3, r3, #2 + 8021fae: 4413 add r3, r2 + 8021fb0: 009b lsls r3, r3, #2 + 8021fb2: 440b add r3, r1 + 8021fb4: 891b ldrh r3, [r3, #8] + 8021fb6: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 break; - 802204e: e007 b.n 8022060 + 8021fba: e007 b.n 8021fcc for(i = 0; i < t->grow_item_cnt; i++) { - 8022050: 6d7b ldr r3, [r7, #84] ; 0x54 - 8022052: 3301 adds r3, #1 - 8022054: 657b str r3, [r7, #84] ; 0x54 - 8022056: 6fbb ldr r3, [r7, #120] ; 0x78 - 8022058: 691b ldr r3, [r3, #16] - 802205a: 6d7a ldr r2, [r7, #84] ; 0x54 - 802205c: 429a cmp r2, r3 - 802205e: d3df bcc.n 8022020 + 8021fbc: 6d7b ldr r3, [r7, #84] ; 0x54 + 8021fbe: 3301 adds r3, #1 + 8021fc0: 657b str r3, [r7, #84] ; 0x54 + 8021fc2: 6fbb ldr r3, [r7, #120] ; 0x78 + 8021fc4: 691b ldr r3, [r3, #16] + 8021fc6: 6d7a ldr r2, [r7, #84] ; 0x54 + 8021fc8: 429a cmp r2, r3 + 8021fca: d3df bcc.n 8021f8c } } if(f->row) item->w_layout = 1; - 8022060: 68bb ldr r3, [r7, #8] - 8022062: 78db ldrb r3, [r3, #3] - 8022064: f003 0301 and.w r3, r3, #1 - 8022068: b2db uxtb r3, r3 - 802206a: 2b00 cmp r3, #0 - 802206c: d007 beq.n 802207e - 802206e: 6cba ldr r2, [r7, #72] ; 0x48 - 8022070: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 - 8022074: f043 0304 orr.w r3, r3, #4 - 8022078: f882 3023 strb.w r3, [r2, #35] ; 0x23 - 802207c: e006 b.n 802208c + 8021fcc: 68bb ldr r3, [r7, #8] + 8021fce: 78db ldrb r3, [r3, #3] + 8021fd0: f003 0301 and.w r3, r3, #1 + 8021fd4: b2db uxtb r3, r3 + 8021fd6: 2b00 cmp r3, #0 + 8021fd8: d007 beq.n 8021fea + 8021fda: 6cba ldr r2, [r7, #72] ; 0x48 + 8021fdc: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 + 8021fe0: f043 0304 orr.w r3, r3, #4 + 8021fe4: f882 3023 strb.w r3, [r2, #35] ; 0x23 + 8021fe8: e006 b.n 8021ff8 else item->h_layout = 1; - 802207e: 6cba ldr r2, [r7, #72] ; 0x48 - 8022080: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 - 8022084: f043 0302 orr.w r3, r3, #2 - 8022088: f882 3023 strb.w r3, [r2, #35] ; 0x23 + 8021fea: 6cba ldr r2, [r7, #72] ; 0x48 + 8021fec: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 + 8021ff0: f043 0302 orr.w r3, r3, #2 + 8021ff4: f882 3023 strb.w r3, [r2, #35] ; 0x23 if(s != area_get_main_size(&item->coords)) { - 802208c: 6cbb ldr r3, [r7, #72] ; 0x48 - 802208e: f103 0214 add.w r2, r3, #20 - 8022092: 6bbb ldr r3, [r7, #56] ; 0x38 - 8022094: 4610 mov r0, r2 - 8022096: 4798 blx r3 - 8022098: 4603 mov r3, r0 - 802209a: 461a mov r2, r3 - 802209c: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 - 80220a0: 4293 cmp r3, r2 - 80220a2: d035 beq.n 8022110 + 8021ff8: 6cbb ldr r3, [r7, #72] ; 0x48 + 8021ffa: f103 0214 add.w r2, r3, #20 + 8021ffe: 6bbb ldr r3, [r7, #56] ; 0x38 + 8022000: 4610 mov r0, r2 + 8022002: 4798 blx r3 + 8022004: 4603 mov r3, r0 + 8022006: 461a mov r2, r3 + 8022008: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 + 802200c: 4293 cmp r3, r2 + 802200e: d035 beq.n 802207c lv_obj_invalidate(item); - 80220a4: 6cb8 ldr r0, [r7, #72] ; 0x48 - 80220a6: f7e8 fd04 bl 800aab2 + 8022010: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8022012: f7e8 fd18 bl 800aa46 lv_area_t old_coords; lv_area_copy(&old_coords, &item->coords); - 80220aa: 6cbb ldr r3, [r7, #72] ; 0x48 - 80220ac: f103 0214 add.w r2, r3, #20 - 80220b0: f107 0314 add.w r3, r7, #20 - 80220b4: 4611 mov r1, r2 - 80220b6: 4618 mov r0, r3 - 80220b8: f7fe ff14 bl 8020ee4 + 8022016: 6cbb ldr r3, [r7, #72] ; 0x48 + 8022018: f103 0214 add.w r2, r3, #20 + 802201c: f107 0314 add.w r3, r7, #20 + 8022020: 4611 mov r1, r2 + 8022022: 4618 mov r0, r3 + 8022024: f7fe ff14 bl 8020e50 area_set_main_size(&item->coords, s); - 80220bc: 6cbb ldr r3, [r7, #72] ; 0x48 - 80220be: f103 0214 add.w r2, r3, #20 - 80220c2: f9b7 1046 ldrsh.w r1, [r7, #70] ; 0x46 - 80220c6: 6bfb ldr r3, [r7, #60] ; 0x3c - 80220c8: 4610 mov r0, r2 - 80220ca: 4798 blx r3 + 8022028: 6cbb ldr r3, [r7, #72] ; 0x48 + 802202a: f103 0214 add.w r2, r3, #20 + 802202e: f9b7 1046 ldrsh.w r1, [r7, #70] ; 0x46 + 8022032: 6bfb ldr r3, [r7, #60] ; 0x3c + 8022034: 4610 mov r0, r2 + 8022036: 4798 blx r3 lv_event_send(item, LV_EVENT_SIZE_CHANGED, &old_coords); - 80220cc: f107 0314 add.w r3, r7, #20 - 80220d0: 461a mov r2, r3 - 80220d2: 2129 movs r1, #41 ; 0x29 - 80220d4: 6cb8 ldr r0, [r7, #72] ; 0x48 - 80220d6: f7e0 f9d3 bl 8002480 + 8022038: f107 0314 add.w r3, r7, #20 + 802203c: 461a mov r2, r3 + 802203e: 2129 movs r1, #41 ; 0x29 + 8022040: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8022042: f7e0 f9e7 bl 8002414 lv_event_send(lv_obj_get_parent(item), LV_EVENT_CHILD_CHANGED, item); - 80220da: 6cb8 ldr r0, [r7, #72] ; 0x48 - 80220dc: f7ed fb16 bl 800f70c - 80220e0: 4603 mov r3, r0 - 80220e2: 6cba ldr r2, [r7, #72] ; 0x48 - 80220e4: 2122 movs r1, #34 ; 0x22 - 80220e6: 4618 mov r0, r3 - 80220e8: f7e0 f9ca bl 8002480 + 8022046: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8022048: f7ed fb16 bl 800f678 + 802204c: 4603 mov r3, r0 + 802204e: 6cba ldr r2, [r7, #72] ; 0x48 + 8022050: 2122 movs r1, #34 ; 0x22 + 8022052: 4618 mov r0, r3 + 8022054: f7e0 f9de bl 8002414 lv_obj_invalidate(item); - 80220ec: 6cb8 ldr r0, [r7, #72] ; 0x48 - 80220ee: f7e8 fce0 bl 800aab2 - 80220f2: e00d b.n 8022110 + 8022058: 6cb8 ldr r0, [r7, #72] ; 0x48 + 802205a: f7e8 fcf4 bl 800aa46 + 802205e: e00d b.n 802207c } } else { item->w_layout = 0; - 80220f4: 6cba ldr r2, [r7, #72] ; 0x48 - 80220f6: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 - 80220fa: f36f 0382 bfc r3, #2, #1 - 80220fe: f882 3023 strb.w r3, [r2, #35] ; 0x23 + 8022060: 6cba ldr r2, [r7, #72] ; 0x48 + 8022062: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 + 8022066: f36f 0382 bfc r3, #2, #1 + 802206a: f882 3023 strb.w r3, [r2, #35] ; 0x23 item->h_layout = 0; - 8022102: 6cba ldr r2, [r7, #72] ; 0x48 - 8022104: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 - 8022108: f36f 0341 bfc r3, #1, #1 - 802210c: f882 3023 strb.w r3, [r2, #35] ; 0x23 + 802206e: 6cba ldr r2, [r7, #72] ; 0x48 + 8022070: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 + 8022074: f36f 0341 bfc r3, #1, #1 + 8022078: f882 3023 strb.w r3, [r2, #35] ; 0x23 } lv_coord_t cross_pos = 0; - 8022110: 2300 movs r3, #0 - 8022112: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 + 802207c: 2300 movs r3, #0 + 802207e: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 switch(f->cross_place) { - 8022116: 68bb ldr r3, [r7, #8] - 8022118: 785b ldrb r3, [r3, #1] - 802211a: 2b01 cmp r3, #1 - 802211c: d015 beq.n 802214a - 802211e: 2b02 cmp r3, #2 - 8022120: d124 bne.n 802216c + 8022082: 68bb ldr r3, [r7, #8] + 8022084: 785b ldrb r3, [r3, #1] + 8022086: 2b01 cmp r3, #1 + 8022088: d015 beq.n 80220b6 + 802208a: 2b02 cmp r3, #2 + 802208c: d124 bne.n 80220d8 case LV_FLEX_ALIGN_CENTER: /*Round up the cross size to avoid rounding error when dividing by 2 *The issue comes up e,g, with column direction with center cross direction if an element's width changes*/ cross_pos = (((t->track_cross_size + 1) & (~1)) - area_get_cross_size(&item->coords)) / 2; - 8022122: 6fbb ldr r3, [r7, #120] ; 0x78 - 8022124: f9b3 3000 ldrsh.w r3, [r3] - 8022128: 3301 adds r3, #1 - 802212a: f023 0401 bic.w r4, r3, #1 - 802212e: 6cbb ldr r3, [r7, #72] ; 0x48 - 8022130: f103 0214 add.w r2, r3, #20 - 8022134: 6b7b ldr r3, [r7, #52] ; 0x34 - 8022136: 4610 mov r0, r2 - 8022138: 4798 blx r3 - 802213a: 4603 mov r3, r0 - 802213c: 1ae3 subs r3, r4, r3 - 802213e: 0fda lsrs r2, r3, #31 - 8022140: 4413 add r3, r2 - 8022142: 105b asrs r3, r3, #1 - 8022144: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 + 802208e: 6fbb ldr r3, [r7, #120] ; 0x78 + 8022090: f9b3 3000 ldrsh.w r3, [r3] + 8022094: 3301 adds r3, #1 + 8022096: f023 0401 bic.w r4, r3, #1 + 802209a: 6cbb ldr r3, [r7, #72] ; 0x48 + 802209c: f103 0214 add.w r2, r3, #20 + 80220a0: 6b7b ldr r3, [r7, #52] ; 0x34 + 80220a2: 4610 mov r0, r2 + 80220a4: 4798 blx r3 + 80220a6: 4603 mov r3, r0 + 80220a8: 1ae3 subs r3, r4, r3 + 80220aa: 0fda lsrs r2, r3, #31 + 80220ac: 4413 add r3, r2 + 80220ae: 105b asrs r3, r3, #1 + 80220b0: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 break; - 8022148: e011 b.n 802216e + 80220b4: e011 b.n 80220da case LV_FLEX_ALIGN_END: cross_pos = t->track_cross_size - area_get_cross_size(&item->coords); - 802214a: 6fbb ldr r3, [r7, #120] ; 0x78 - 802214c: f9b3 3000 ldrsh.w r3, [r3] - 8022150: b29c uxth r4, r3 - 8022152: 6cbb ldr r3, [r7, #72] ; 0x48 - 8022154: f103 0214 add.w r2, r3, #20 - 8022158: 6b7b ldr r3, [r7, #52] ; 0x34 - 802215a: 4610 mov r0, r2 - 802215c: 4798 blx r3 - 802215e: 4603 mov r3, r0 - 8022160: b29b uxth r3, r3 - 8022162: 1ae3 subs r3, r4, r3 - 8022164: b29b uxth r3, r3 - 8022166: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 + 80220b6: 6fbb ldr r3, [r7, #120] ; 0x78 + 80220b8: f9b3 3000 ldrsh.w r3, [r3] + 80220bc: b29c uxth r4, r3 + 80220be: 6cbb ldr r3, [r7, #72] ; 0x48 + 80220c0: f103 0214 add.w r2, r3, #20 + 80220c4: 6b7b ldr r3, [r7, #52] ; 0x34 + 80220c6: 4610 mov r0, r2 + 80220c8: 4798 blx r3 + 80220ca: 4603 mov r3, r0 + 80220cc: b29b uxth r3, r3 + 80220ce: 1ae3 subs r3, r4, r3 + 80220d0: b29b uxth r3, r3 + 80220d2: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 break; - 802216a: e000 b.n 802216e + 80220d6: e000 b.n 80220da default: break; - 802216c: bf00 nop + 80220d8: bf00 nop } if(f->row && rtl) main_pos -= area_get_main_size(&item->coords); - 802216e: 68bb ldr r3, [r7, #8] - 8022170: 78db ldrb r3, [r3, #3] - 8022172: f003 0301 and.w r3, r3, #1 - 8022176: b2db uxtb r3, r3 - 8022178: 2b00 cmp r3, #0 - 802217a: d013 beq.n 80221a4 - 802217c: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 - 8022180: 2b00 cmp r3, #0 - 8022182: d00f beq.n 80221a4 - 8022184: 6cbb ldr r3, [r7, #72] ; 0x48 - 8022186: f103 0214 add.w r2, r3, #20 - 802218a: 6bbb ldr r3, [r7, #56] ; 0x38 - 802218c: 4610 mov r0, r2 - 802218e: 4798 blx r3 - 8022190: 4603 mov r3, r0 - 8022192: 4619 mov r1, r3 - 8022194: f9b7 3020 ldrsh.w r3, [r7, #32] - 8022198: b29a uxth r2, r3 - 802219a: b28b uxth r3, r1 - 802219c: 1ad3 subs r3, r2, r3 - 802219e: b29b uxth r3, r3 - 80221a0: b21b sxth r3, r3 - 80221a2: 843b strh r3, [r7, #32] + 80220da: 68bb ldr r3, [r7, #8] + 80220dc: 78db ldrb r3, [r3, #3] + 80220de: f003 0301 and.w r3, r3, #1 + 80220e2: b2db uxtb r3, r3 + 80220e4: 2b00 cmp r3, #0 + 80220e6: d013 beq.n 8022110 + 80220e8: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 + 80220ec: 2b00 cmp r3, #0 + 80220ee: d00f beq.n 8022110 + 80220f0: 6cbb ldr r3, [r7, #72] ; 0x48 + 80220f2: f103 0214 add.w r2, r3, #20 + 80220f6: 6bbb ldr r3, [r7, #56] ; 0x38 + 80220f8: 4610 mov r0, r2 + 80220fa: 4798 blx r3 + 80220fc: 4603 mov r3, r0 + 80220fe: 4619 mov r1, r3 + 8022100: f9b7 3020 ldrsh.w r3, [r7, #32] + 8022104: b29a uxth r2, r3 + 8022106: b28b uxth r3, r1 + 8022108: 1ad3 subs r3, r2, r3 + 802210a: b29b uxth r3, r3 + 802210c: b21b sxth r3, r3 + 802210e: 843b strh r3, [r7, #32] /*Handle percentage value of translate*/ lv_coord_t tr_x = lv_obj_get_style_translate_x(item, LV_PART_MAIN); - 80221a4: 2100 movs r1, #0 - 80221a6: 6cb8 ldr r0, [r7, #72] ; 0x48 - 80221a8: f7fe ff58 bl 802105c - 80221ac: 4603 mov r3, r0 - 80221ae: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 8022110: 2100 movs r1, #0 + 8022112: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8022114: f7fe ff58 bl 8020fc8 + 8022118: 4603 mov r3, r0 + 802211a: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 lv_coord_t tr_y = lv_obj_get_style_translate_y(item, LV_PART_MAIN); - 80221b2: 2100 movs r1, #0 - 80221b4: 6cb8 ldr r0, [r7, #72] ; 0x48 - 80221b6: f7fe ff64 bl 8021082 - 80221ba: 4603 mov r3, r0 - 80221bc: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 802211e: 2100 movs r1, #0 + 8022120: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8022122: f7fe ff64 bl 8020fee + 8022126: 4603 mov r3, r0 + 8022128: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 lv_coord_t w = lv_obj_get_width(item); - 80221c0: 6cb8 ldr r0, [r7, #72] ; 0x48 - 80221c2: f7e7 ffc1 bl 800a148 - 80221c6: 4603 mov r3, r0 - 80221c8: 85fb strh r3, [r7, #46] ; 0x2e + 802212c: 6cb8 ldr r0, [r7, #72] ; 0x48 + 802212e: f7e7 ffd5 bl 800a0dc + 8022132: 4603 mov r3, r0 + 8022134: 85fb strh r3, [r7, #46] ; 0x2e lv_coord_t h = lv_obj_get_height(item); - 80221ca: 6cb8 ldr r0, [r7, #72] ; 0x48 - 80221cc: f7e7 ffca bl 800a164 - 80221d0: 4603 mov r3, r0 - 80221d2: 85bb strh r3, [r7, #44] ; 0x2c + 8022136: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8022138: f7e7 ffde bl 800a0f8 + 802213c: 4603 mov r3, r0 + 802213e: 85bb strh r3, [r7, #44] ; 0x2c if(LV_COORD_IS_PCT(tr_x)) tr_x = (w * LV_COORD_GET_PCT(tr_x)) / 100; - 80221d4: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 80221d8: f403 43c0 and.w r3, r3, #24576 ; 0x6000 - 80221dc: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 80221e0: d128 bne.n 8022234 - 80221e2: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 8022140: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 8022144: f403 43c0 and.w r3, r3, #24576 ; 0x6000 + 8022148: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 802214c: d128 bne.n 80221a0 + 802214e: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 8022152: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 8022156: b21b sxth r3, r3 + 8022158: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 + 802215c: dc20 bgt.n 80221a0 + 802215e: f9b7 202e ldrsh.w r2, [r7, #46] ; 0x2e + 8022162: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 8022166: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 802216a: b21b sxth r3, r3 + 802216c: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 + 8022170: dd07 ble.n 8022182 + 8022172: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 8022176: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 802217a: b21b sxth r3, r3 + 802217c: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 8022180: e004 b.n 802218c + 8022182: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 8022186: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 802218a: b21b sxth r3, r3 + 802218c: fb02 f303 mul.w r3, r2, r3 + 8022190: 4a80 ldr r2, [pc, #512] ; (8022394 ) + 8022192: fb82 1203 smull r1, r2, r2, r3 + 8022196: 1152 asrs r2, r2, #5 + 8022198: 17db asrs r3, r3, #31 + 802219a: 1ad3 subs r3, r2, r3 + 802219c: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + if(LV_COORD_IS_PCT(tr_y)) tr_y = (h * LV_COORD_GET_PCT(tr_y)) / 100; + 80221a0: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 + 80221a4: f403 43c0 and.w r3, r3, #24576 ; 0x6000 + 80221a8: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 80221ac: d128 bne.n 8022200 + 80221ae: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 + 80221b2: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 80221b6: b21b sxth r3, r3 + 80221b8: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 + 80221bc: dc20 bgt.n 8022200 + 80221be: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c + 80221c2: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 + 80221c6: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 80221ca: b21b sxth r3, r3 + 80221cc: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 + 80221d0: dd07 ble.n 80221e2 + 80221d2: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 + 80221d6: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 80221da: b21b sxth r3, r3 + 80221dc: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 80221e0: e004 b.n 80221ec + 80221e2: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 80221e6: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 80221ea: b21b sxth r3, r3 - 80221ec: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 - 80221f0: dc20 bgt.n 8022234 - 80221f2: f9b7 202e ldrsh.w r2, [r7, #46] ; 0x2e - 80221f6: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 80221fa: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 80221fe: b21b sxth r3, r3 - 8022200: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - 8022204: dd07 ble.n 8022216 - 8022206: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 802220a: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 802220e: b21b sxth r3, r3 - 8022210: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 8022214: e004 b.n 8022220 - 8022216: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 802221a: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 802221e: b21b sxth r3, r3 - 8022220: fb02 f303 mul.w r3, r2, r3 - 8022224: 4a80 ldr r2, [pc, #512] ; (8022428 ) - 8022226: fb82 1203 smull r1, r2, r2, r3 - 802222a: 1152 asrs r2, r2, #5 - 802222c: 17db asrs r3, r3, #31 - 802222e: 1ad3 subs r3, r2, r3 - 8022230: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 - if(LV_COORD_IS_PCT(tr_y)) tr_y = (h * LV_COORD_GET_PCT(tr_y)) / 100; - 8022234: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 - 8022238: f403 43c0 and.w r3, r3, #24576 ; 0x6000 - 802223c: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 8022240: d128 bne.n 8022294 - 8022242: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 - 8022246: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 802224a: b21b sxth r3, r3 - 802224c: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 - 8022250: dc20 bgt.n 8022294 - 8022252: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c - 8022256: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 - 802225a: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 802225e: b21b sxth r3, r3 - 8022260: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - 8022264: dd07 ble.n 8022276 - 8022266: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 - 802226a: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 802226e: b21b sxth r3, r3 - 8022270: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 8022274: e004 b.n 8022280 - 8022276: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 - 802227a: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 802227e: b21b sxth r3, r3 - 8022280: fb02 f303 mul.w r3, r2, r3 - 8022284: 4a68 ldr r2, [pc, #416] ; (8022428 ) - 8022286: fb82 1203 smull r1, r2, r2, r3 - 802228a: 1152 asrs r2, r2, #5 - 802228c: 17db asrs r3, r3, #31 - 802228e: 1ad3 subs r3, r2, r3 - 8022290: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 80221ec: fb02 f303 mul.w r3, r2, r3 + 80221f0: 4a68 ldr r2, [pc, #416] ; (8022394 ) + 80221f2: fb82 1203 smull r1, r2, r2, r3 + 80221f6: 1152 asrs r2, r2, #5 + 80221f8: 17db asrs r3, r3, #31 + 80221fa: 1ad3 subs r3, r2, r3 + 80221fc: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 lv_coord_t diff_x = abs_x - item->coords.x1 + tr_x; - 8022294: f8b7 2068 ldrh.w r2, [r7, #104] ; 0x68 - 8022298: 6cbb ldr r3, [r7, #72] ; 0x48 - 802229a: f9b3 3014 ldrsh.w r3, [r3, #20] - 802229e: b29b uxth r3, r3 - 80222a0: 1ad3 subs r3, r2, r3 - 80222a2: b29a uxth r2, r3 - 80222a4: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 80222a8: 4413 add r3, r2 - 80222aa: b29b uxth r3, r3 - 80222ac: 857b strh r3, [r7, #42] ; 0x2a + 8022200: f8b7 2068 ldrh.w r2, [r7, #104] ; 0x68 + 8022204: 6cbb ldr r3, [r7, #72] ; 0x48 + 8022206: f9b3 3014 ldrsh.w r3, [r3, #20] + 802220a: b29b uxth r3, r3 + 802220c: 1ad3 subs r3, r2, r3 + 802220e: b29a uxth r2, r3 + 8022210: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 8022214: 4413 add r3, r2 + 8022216: b29b uxth r3, r3 + 8022218: 857b strh r3, [r7, #42] ; 0x2a lv_coord_t diff_y = abs_y - item->coords.y1 + tr_y; - 80222ae: f8b7 206c ldrh.w r2, [r7, #108] ; 0x6c - 80222b2: 6cbb ldr r3, [r7, #72] ; 0x48 - 80222b4: f9b3 3016 ldrsh.w r3, [r3, #22] - 80222b8: b29b uxth r3, r3 - 80222ba: 1ad3 subs r3, r2, r3 - 80222bc: b29a uxth r2, r3 - 80222be: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 - 80222c2: 4413 add r3, r2 - 80222c4: b29b uxth r3, r3 - 80222c6: 853b strh r3, [r7, #40] ; 0x28 + 802221a: f8b7 206c ldrh.w r2, [r7, #108] ; 0x6c + 802221e: 6cbb ldr r3, [r7, #72] ; 0x48 + 8022220: f9b3 3016 ldrsh.w r3, [r3, #22] + 8022224: b29b uxth r3, r3 + 8022226: 1ad3 subs r3, r2, r3 + 8022228: b29a uxth r2, r3 + 802222a: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 + 802222e: 4413 add r3, r2 + 8022230: b29b uxth r3, r3 + 8022232: 853b strh r3, [r7, #40] ; 0x28 diff_x += f->row ? main_pos : cross_pos; - 80222c8: 68bb ldr r3, [r7, #8] - 80222ca: 78db ldrb r3, [r3, #3] - 80222cc: f003 0301 and.w r3, r3, #1 - 80222d0: b2db uxtb r3, r3 - 80222d2: 2b00 cmp r3, #0 - 80222d4: d003 beq.n 80222de - 80222d6: f9b7 3020 ldrsh.w r3, [r7, #32] - 80222da: b29b uxth r3, r3 - 80222dc: e001 b.n 80222e2 - 80222de: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 - 80222e2: 8d7a ldrh r2, [r7, #42] ; 0x2a - 80222e4: 4413 add r3, r2 - 80222e6: b29b uxth r3, r3 - 80222e8: 857b strh r3, [r7, #42] ; 0x2a + 8022234: 68bb ldr r3, [r7, #8] + 8022236: 78db ldrb r3, [r3, #3] + 8022238: f003 0301 and.w r3, r3, #1 + 802223c: b2db uxtb r3, r3 + 802223e: 2b00 cmp r3, #0 + 8022240: d003 beq.n 802224a + 8022242: f9b7 3020 ldrsh.w r3, [r7, #32] + 8022246: b29b uxth r3, r3 + 8022248: e001 b.n 802224e + 802224a: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 + 802224e: 8d7a ldrh r2, [r7, #42] ; 0x2a + 8022250: 4413 add r3, r2 + 8022252: b29b uxth r3, r3 + 8022254: 857b strh r3, [r7, #42] ; 0x2a diff_y += f->row ? cross_pos : main_pos; - 80222ea: 68bb ldr r3, [r7, #8] - 80222ec: 78db ldrb r3, [r3, #3] - 80222ee: f003 0301 and.w r3, r3, #1 - 80222f2: b2db uxtb r3, r3 - 80222f4: 2b00 cmp r3, #0 - 80222f6: d002 beq.n 80222fe - 80222f8: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 - 80222fc: e002 b.n 8022304 - 80222fe: f9b7 3020 ldrsh.w r3, [r7, #32] - 8022302: b29b uxth r3, r3 - 8022304: 8d3a ldrh r2, [r7, #40] ; 0x28 - 8022306: 4413 add r3, r2 - 8022308: b29b uxth r3, r3 - 802230a: 853b strh r3, [r7, #40] ; 0x28 + 8022256: 68bb ldr r3, [r7, #8] + 8022258: 78db ldrb r3, [r3, #3] + 802225a: f003 0301 and.w r3, r3, #1 + 802225e: b2db uxtb r3, r3 + 8022260: 2b00 cmp r3, #0 + 8022262: d002 beq.n 802226a + 8022264: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 + 8022268: e002 b.n 8022270 + 802226a: f9b7 3020 ldrsh.w r3, [r7, #32] + 802226e: b29b uxth r3, r3 + 8022270: 8d3a ldrh r2, [r7, #40] ; 0x28 + 8022272: 4413 add r3, r2 + 8022274: b29b uxth r3, r3 + 8022276: 853b strh r3, [r7, #40] ; 0x28 if(diff_x || diff_y) { - 802230c: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a - 8022310: 2b00 cmp r3, #0 - 8022312: d103 bne.n 802231c - 8022314: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 - 8022318: 2b00 cmp r3, #0 - 802231a: d035 beq.n 8022388 + 8022278: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a + 802227c: 2b00 cmp r3, #0 + 802227e: d103 bne.n 8022288 + 8022280: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 8022284: 2b00 cmp r3, #0 + 8022286: d035 beq.n 80222f4 lv_obj_invalidate(item); - 802231c: 6cb8 ldr r0, [r7, #72] ; 0x48 - 802231e: f7e8 fbc8 bl 800aab2 + 8022288: 6cb8 ldr r0, [r7, #72] ; 0x48 + 802228a: f7e8 fbdc bl 800aa46 item->coords.x1 += diff_x; - 8022322: 6cbb ldr r3, [r7, #72] ; 0x48 - 8022324: f9b3 3014 ldrsh.w r3, [r3, #20] - 8022328: b29a uxth r2, r3 - 802232a: 8d7b ldrh r3, [r7, #42] ; 0x2a - 802232c: 4413 add r3, r2 - 802232e: b29b uxth r3, r3 - 8022330: b21a sxth r2, r3 - 8022332: 6cbb ldr r3, [r7, #72] ; 0x48 - 8022334: 829a strh r2, [r3, #20] + 802228e: 6cbb ldr r3, [r7, #72] ; 0x48 + 8022290: f9b3 3014 ldrsh.w r3, [r3, #20] + 8022294: b29a uxth r2, r3 + 8022296: 8d7b ldrh r3, [r7, #42] ; 0x2a + 8022298: 4413 add r3, r2 + 802229a: b29b uxth r3, r3 + 802229c: b21a sxth r2, r3 + 802229e: 6cbb ldr r3, [r7, #72] ; 0x48 + 80222a0: 829a strh r2, [r3, #20] item->coords.x2 += diff_x; - 8022336: 6cbb ldr r3, [r7, #72] ; 0x48 - 8022338: f9b3 3018 ldrsh.w r3, [r3, #24] - 802233c: b29a uxth r2, r3 - 802233e: 8d7b ldrh r3, [r7, #42] ; 0x2a - 8022340: 4413 add r3, r2 - 8022342: b29b uxth r3, r3 - 8022344: b21a sxth r2, r3 - 8022346: 6cbb ldr r3, [r7, #72] ; 0x48 - 8022348: 831a strh r2, [r3, #24] + 80222a2: 6cbb ldr r3, [r7, #72] ; 0x48 + 80222a4: f9b3 3018 ldrsh.w r3, [r3, #24] + 80222a8: b29a uxth r2, r3 + 80222aa: 8d7b ldrh r3, [r7, #42] ; 0x2a + 80222ac: 4413 add r3, r2 + 80222ae: b29b uxth r3, r3 + 80222b0: b21a sxth r2, r3 + 80222b2: 6cbb ldr r3, [r7, #72] ; 0x48 + 80222b4: 831a strh r2, [r3, #24] item->coords.y1 += diff_y; - 802234a: 6cbb ldr r3, [r7, #72] ; 0x48 - 802234c: f9b3 3016 ldrsh.w r3, [r3, #22] - 8022350: b29a uxth r2, r3 - 8022352: 8d3b ldrh r3, [r7, #40] ; 0x28 - 8022354: 4413 add r3, r2 - 8022356: b29b uxth r3, r3 - 8022358: b21a sxth r2, r3 - 802235a: 6cbb ldr r3, [r7, #72] ; 0x48 - 802235c: 82da strh r2, [r3, #22] + 80222b6: 6cbb ldr r3, [r7, #72] ; 0x48 + 80222b8: f9b3 3016 ldrsh.w r3, [r3, #22] + 80222bc: b29a uxth r2, r3 + 80222be: 8d3b ldrh r3, [r7, #40] ; 0x28 + 80222c0: 4413 add r3, r2 + 80222c2: b29b uxth r3, r3 + 80222c4: b21a sxth r2, r3 + 80222c6: 6cbb ldr r3, [r7, #72] ; 0x48 + 80222c8: 82da strh r2, [r3, #22] item->coords.y2 += diff_y; - 802235e: 6cbb ldr r3, [r7, #72] ; 0x48 - 8022360: f9b3 301a ldrsh.w r3, [r3, #26] - 8022364: b29a uxth r2, r3 - 8022366: 8d3b ldrh r3, [r7, #40] ; 0x28 - 8022368: 4413 add r3, r2 - 802236a: b29b uxth r3, r3 - 802236c: b21a sxth r2, r3 - 802236e: 6cbb ldr r3, [r7, #72] ; 0x48 - 8022370: 835a strh r2, [r3, #26] + 80222ca: 6cbb ldr r3, [r7, #72] ; 0x48 + 80222cc: f9b3 301a ldrsh.w r3, [r3, #26] + 80222d0: b29a uxth r2, r3 + 80222d2: 8d3b ldrh r3, [r7, #40] ; 0x28 + 80222d4: 4413 add r3, r2 + 80222d6: b29b uxth r3, r3 + 80222d8: b21a sxth r2, r3 + 80222da: 6cbb ldr r3, [r7, #72] ; 0x48 + 80222dc: 835a strh r2, [r3, #26] lv_obj_invalidate(item); - 8022372: 6cb8 ldr r0, [r7, #72] ; 0x48 - 8022374: f7e8 fb9d bl 800aab2 + 80222de: 6cb8 ldr r0, [r7, #72] ; 0x48 + 80222e0: f7e8 fbb1 bl 800aa46 lv_obj_move_children_by(item, diff_x, diff_y, true); - 8022378: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 - 802237c: f9b7 102a ldrsh.w r1, [r7, #42] ; 0x2a - 8022380: 2301 movs r3, #1 - 8022382: 6cb8 ldr r0, [r7, #72] ; 0x48 - 8022384: f7e8 fb0c bl 800a9a0 + 80222e4: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 + 80222e8: f9b7 102a ldrsh.w r1, [r7, #42] ; 0x2a + 80222ec: 2301 movs r3, #1 + 80222ee: 6cb8 ldr r0, [r7, #72] ; 0x48 + 80222f0: f7e8 fb20 bl 800a934 } if(!(f->row && rtl)) main_pos += area_get_main_size(&item->coords) + item_gap + place_gap; - 8022388: 68bb ldr r3, [r7, #8] - 802238a: 78db ldrb r3, [r3, #3] - 802238c: f003 0301 and.w r3, r3, #1 - 8022390: b2db uxtb r3, r3 - 8022392: 2b00 cmp r3, #0 - 8022394: d006 beq.n 80223a4 - 8022396: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 - 802239a: f083 0301 eor.w r3, r3, #1 - 802239e: b2db uxtb r3, r3 - 80223a0: 2b00 cmp r3, #0 - 80223a2: d016 beq.n 80223d2 - 80223a4: 6cbb ldr r3, [r7, #72] ; 0x48 - 80223a6: f103 0214 add.w r2, r3, #20 - 80223aa: 6bbb ldr r3, [r7, #56] ; 0x38 - 80223ac: 4610 mov r0, r2 - 80223ae: 4798 blx r3 - 80223b0: 4603 mov r3, r0 - 80223b2: 461a mov r2, r3 - 80223b4: f9b7 3074 ldrsh.w r3, [r7, #116] ; 0x74 - 80223b8: 4413 add r3, r2 - 80223ba: f9b7 201e ldrsh.w r2, [r7, #30] - 80223be: 4413 add r3, r2 - 80223c0: b29a uxth r2, r3 - 80223c2: f9b7 3020 ldrsh.w r3, [r7, #32] - 80223c6: b29b uxth r3, r3 - 80223c8: 4413 add r3, r2 - 80223ca: b29b uxth r3, r3 - 80223cc: b21b sxth r3, r3 - 80223ce: 843b strh r3, [r7, #32] - 80223d0: e00d b.n 80223ee + 80222f4: 68bb ldr r3, [r7, #8] + 80222f6: 78db ldrb r3, [r3, #3] + 80222f8: f003 0301 and.w r3, r3, #1 + 80222fc: b2db uxtb r3, r3 + 80222fe: 2b00 cmp r3, #0 + 8022300: d006 beq.n 8022310 + 8022302: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 + 8022306: f083 0301 eor.w r3, r3, #1 + 802230a: b2db uxtb r3, r3 + 802230c: 2b00 cmp r3, #0 + 802230e: d016 beq.n 802233e + 8022310: 6cbb ldr r3, [r7, #72] ; 0x48 + 8022312: f103 0214 add.w r2, r3, #20 + 8022316: 6bbb ldr r3, [r7, #56] ; 0x38 + 8022318: 4610 mov r0, r2 + 802231a: 4798 blx r3 + 802231c: 4603 mov r3, r0 + 802231e: 461a mov r2, r3 + 8022320: f9b7 3074 ldrsh.w r3, [r7, #116] ; 0x74 + 8022324: 4413 add r3, r2 + 8022326: f9b7 201e ldrsh.w r2, [r7, #30] + 802232a: 4413 add r3, r2 + 802232c: b29a uxth r2, r3 + 802232e: f9b7 3020 ldrsh.w r3, [r7, #32] + 8022332: b29b uxth r3, r3 + 8022334: 4413 add r3, r2 + 8022336: b29b uxth r3, r3 + 8022338: b21b sxth r3, r3 + 802233a: 843b strh r3, [r7, #32] + 802233c: e00d b.n 802235a else main_pos -= item_gap + place_gap; - 80223d2: f9b7 3020 ldrsh.w r3, [r7, #32] - 80223d6: b29a uxth r2, r3 - 80223d8: f8b7 1074 ldrh.w r1, [r7, #116] ; 0x74 - 80223dc: f9b7 301e ldrsh.w r3, [r7, #30] - 80223e0: b29b uxth r3, r3 - 80223e2: 440b add r3, r1 - 80223e4: b29b uxth r3, r3 - 80223e6: 1ad3 subs r3, r2, r3 - 80223e8: b29b uxth r3, r3 - 80223ea: b21b sxth r3, r3 - 80223ec: 843b strh r3, [r7, #32] + 802233e: f9b7 3020 ldrsh.w r3, [r7, #32] + 8022342: b29a uxth r2, r3 + 8022344: f8b7 1074 ldrh.w r1, [r7, #116] ; 0x74 + 8022348: f9b7 301e ldrsh.w r3, [r7, #30] + 802234c: b29b uxth r3, r3 + 802234e: 440b add r3, r1 + 8022350: b29b uxth r3, r3 + 8022352: 1ad3 subs r3, r2, r3 + 8022354: b29b uxth r3, r3 + 8022356: b21b sxth r3, r3 + 8022358: 843b strh r3, [r7, #32] item = get_next_item(cont, f->rev, &item_first_id); - 80223ee: 68bb ldr r3, [r7, #8] - 80223f0: 78db ldrb r3, [r3, #3] - 80223f2: f3c3 0380 ubfx r3, r3, #2, #1 - 80223f6: b2db uxtb r3, r3 - 80223f8: 2b00 cmp r3, #0 - 80223fa: bf14 ite ne - 80223fc: 2301 movne r3, #1 - 80223fe: 2300 moveq r3, #0 - 8022400: b2db uxtb r3, r3 - 8022402: 1d3a adds r2, r7, #4 - 8022404: 4619 mov r1, r3 - 8022406: 68f8 ldr r0, [r7, #12] - 8022408: f000 f8c2 bl 8022590 - 802240c: 64b8 str r0, [r7, #72] ; 0x48 + 802235a: 68bb ldr r3, [r7, #8] + 802235c: 78db ldrb r3, [r3, #3] + 802235e: f3c3 0380 ubfx r3, r3, #2, #1 + 8022362: b2db uxtb r3, r3 + 8022364: 2b00 cmp r3, #0 + 8022366: bf14 ite ne + 8022368: 2301 movne r3, #1 + 802236a: 2300 moveq r3, #0 + 802236c: b2db uxtb r3, r3 + 802236e: 1d3a adds r2, r7, #4 + 8022370: 4619 mov r1, r3 + 8022372: 68f8 ldr r0, [r7, #12] + 8022374: f000 f8c2 bl 80224fc + 8022378: 64b8 str r0, [r7, #72] ; 0x48 while(item && item_first_id != item_last_id) { - 802240e: 6cbb ldr r3, [r7, #72] ; 0x48 - 8022410: 2b00 cmp r3, #0 - 8022412: d004 beq.n 802241e - 8022414: 687b ldr r3, [r7, #4] - 8022416: 683a ldr r2, [r7, #0] - 8022418: 429a cmp r2, r3 - 802241a: f47f adcf bne.w 8021fbc + 802237a: 6cbb ldr r3, [r7, #72] ; 0x48 + 802237c: 2b00 cmp r3, #0 + 802237e: d004 beq.n 802238a + 8022380: 687b ldr r3, [r7, #4] + 8022382: 683a ldr r2, [r7, #0] + 8022384: 429a cmp r2, r3 + 8022386: f47f adcf bne.w 8021f28 } } - 802241e: bf00 nop - 8022420: 375c adds r7, #92 ; 0x5c - 8022422: 46bd mov sp, r7 - 8022424: bd90 pop {r4, r7, pc} - 8022426: bf00 nop - 8022428: 51eb851f .word 0x51eb851f + 802238a: bf00 nop + 802238c: 375c adds r7, #92 ; 0x5c + 802238e: 46bd mov sp, r7 + 8022390: bd90 pop {r4, r7, pc} + 8022392: bf00 nop + 8022394: 51eb851f .word 0x51eb851f -0802242c : +08022398 : /** * Tell a start coordinate and gap for a placement type. */ static void place_content(lv_flex_align_t place, lv_coord_t max_size, lv_coord_t content_size, lv_coord_t item_cnt, lv_coord_t * start_pos, lv_coord_t * gap) { - 802242c: b490 push {r4, r7} - 802242e: b082 sub sp, #8 - 8022430: af00 add r7, sp, #0 - 8022432: 4604 mov r4, r0 - 8022434: 4608 mov r0, r1 - 8022436: 4611 mov r1, r2 - 8022438: 461a mov r2, r3 - 802243a: 4623 mov r3, r4 - 802243c: 71fb strb r3, [r7, #7] - 802243e: 4603 mov r3, r0 - 8022440: 80bb strh r3, [r7, #4] - 8022442: 460b mov r3, r1 - 8022444: 807b strh r3, [r7, #2] - 8022446: 4613 mov r3, r2 - 8022448: 803b strh r3, [r7, #0] + 8022398: b490 push {r4, r7} + 802239a: b082 sub sp, #8 + 802239c: af00 add r7, sp, #0 + 802239e: 4604 mov r4, r0 + 80223a0: 4608 mov r0, r1 + 80223a2: 4611 mov r1, r2 + 80223a4: 461a mov r2, r3 + 80223a6: 4623 mov r3, r4 + 80223a8: 71fb strb r3, [r7, #7] + 80223aa: 4603 mov r3, r0 + 80223ac: 80bb strh r3, [r7, #4] + 80223ae: 460b mov r3, r1 + 80223b0: 807b strh r3, [r7, #2] + 80223b2: 4613 mov r3, r2 + 80223b4: 803b strh r3, [r7, #0] if(item_cnt <= 1) { - 802244a: f9b7 3000 ldrsh.w r3, [r7] - 802244e: 2b01 cmp r3, #1 - 8022450: dc07 bgt.n 8022462 + 80223b6: f9b7 3000 ldrsh.w r3, [r7] + 80223ba: 2b01 cmp r3, #1 + 80223bc: dc07 bgt.n 80223ce switch(place) { - 8022452: 79fb ldrb r3, [r7, #7] - 8022454: 3b03 subs r3, #3 - 8022456: 2b02 cmp r3, #2 - 8022458: d802 bhi.n 8022460 + 80223be: 79fb ldrb r3, [r7, #7] + 80223c0: 3b03 subs r3, #3 + 80223c2: 2b02 cmp r3, #2 + 80223c4: d802 bhi.n 80223cc case LV_FLEX_ALIGN_SPACE_BETWEEN: case LV_FLEX_ALIGN_SPACE_AROUND: case LV_FLEX_ALIGN_SPACE_EVENLY: place = LV_FLEX_ALIGN_CENTER; - 802245a: 2302 movs r3, #2 - 802245c: 71fb strb r3, [r7, #7] + 80223c6: 2302 movs r3, #2 + 80223c8: 71fb strb r3, [r7, #7] break; - 802245e: e000 b.n 8022462 + 80223ca: e000 b.n 80223ce default: break; - 8022460: bf00 nop + 80223cc: bf00 nop } } switch(place) { - 8022462: 79fb ldrb r3, [r7, #7] - 8022464: 3b01 subs r3, #1 - 8022466: 2b04 cmp r3, #4 - 8022468: f200 8088 bhi.w 802257c - 802246c: a201 add r2, pc, #4 ; (adr r2, 8022474 ) - 802246e: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8022472: bf00 nop - 8022474: 080224b5 .word 0x080224b5 - 8022478: 08022489 .word 0x08022489 - 802247c: 08022543 .word 0x08022543 - 8022480: 080224f7 .word 0x080224f7 - 8022484: 080224d7 .word 0x080224d7 + 80223ce: 79fb ldrb r3, [r7, #7] + 80223d0: 3b01 subs r3, #1 + 80223d2: 2b04 cmp r3, #4 + 80223d4: f200 8088 bhi.w 80224e8 + 80223d8: a201 add r2, pc, #4 ; (adr r2, 80223e0 ) + 80223da: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 80223de: bf00 nop + 80223e0: 08022421 .word 0x08022421 + 80223e4: 080223f5 .word 0x080223f5 + 80223e8: 080224af .word 0x080224af + 80223ec: 08022463 .word 0x08022463 + 80223f0: 08022443 .word 0x08022443 case LV_FLEX_ALIGN_CENTER: *gap = 0; - 8022488: 697b ldr r3, [r7, #20] - 802248a: 2200 movs r2, #0 - 802248c: 801a strh r2, [r3, #0] + 80223f4: 697b ldr r3, [r7, #20] + 80223f6: 2200 movs r2, #0 + 80223f8: 801a strh r2, [r3, #0] *start_pos += (max_size - content_size) / 2; - 802248e: 693b ldr r3, [r7, #16] - 8022490: f9b3 3000 ldrsh.w r3, [r3] - 8022494: b29a uxth r2, r3 - 8022496: f9b7 1004 ldrsh.w r1, [r7, #4] - 802249a: f9b7 3002 ldrsh.w r3, [r7, #2] - 802249e: 1acb subs r3, r1, r3 - 80224a0: 0fd9 lsrs r1, r3, #31 - 80224a2: 440b add r3, r1 - 80224a4: 105b asrs r3, r3, #1 - 80224a6: b29b uxth r3, r3 - 80224a8: 4413 add r3, r2 - 80224aa: b29b uxth r3, r3 - 80224ac: b21a sxth r2, r3 - 80224ae: 693b ldr r3, [r7, #16] - 80224b0: 801a strh r2, [r3, #0] + 80223fa: 693b ldr r3, [r7, #16] + 80223fc: f9b3 3000 ldrsh.w r3, [r3] + 8022400: b29a uxth r2, r3 + 8022402: f9b7 1004 ldrsh.w r1, [r7, #4] + 8022406: f9b7 3002 ldrsh.w r3, [r7, #2] + 802240a: 1acb subs r3, r1, r3 + 802240c: 0fd9 lsrs r1, r3, #31 + 802240e: 440b add r3, r1 + 8022410: 105b asrs r3, r3, #1 + 8022412: b29b uxth r3, r3 + 8022414: 4413 add r3, r2 + 8022416: b29b uxth r3, r3 + 8022418: b21a sxth r2, r3 + 802241a: 693b ldr r3, [r7, #16] + 802241c: 801a strh r2, [r3, #0] break; - 80224b2: e067 b.n 8022584 + 802241e: e067 b.n 80224f0 case LV_FLEX_ALIGN_END: *gap = 0; - 80224b4: 697b ldr r3, [r7, #20] - 80224b6: 2200 movs r2, #0 - 80224b8: 801a strh r2, [r3, #0] + 8022420: 697b ldr r3, [r7, #20] + 8022422: 2200 movs r2, #0 + 8022424: 801a strh r2, [r3, #0] *start_pos += max_size - content_size; - 80224ba: 693b ldr r3, [r7, #16] - 80224bc: f9b3 3000 ldrsh.w r3, [r3] - 80224c0: b29a uxth r2, r3 - 80224c2: 88b9 ldrh r1, [r7, #4] - 80224c4: 887b ldrh r3, [r7, #2] - 80224c6: 1acb subs r3, r1, r3 - 80224c8: b29b uxth r3, r3 - 80224ca: 4413 add r3, r2 - 80224cc: b29b uxth r3, r3 - 80224ce: b21a sxth r2, r3 - 80224d0: 693b ldr r3, [r7, #16] - 80224d2: 801a strh r2, [r3, #0] + 8022426: 693b ldr r3, [r7, #16] + 8022428: f9b3 3000 ldrsh.w r3, [r3] + 802242c: b29a uxth r2, r3 + 802242e: 88b9 ldrh r1, [r7, #4] + 8022430: 887b ldrh r3, [r7, #2] + 8022432: 1acb subs r3, r1, r3 + 8022434: b29b uxth r3, r3 + 8022436: 4413 add r3, r2 + 8022438: b29b uxth r3, r3 + 802243a: b21a sxth r2, r3 + 802243c: 693b ldr r3, [r7, #16] + 802243e: 801a strh r2, [r3, #0] break; - 80224d4: e056 b.n 8022584 + 8022440: e056 b.n 80224f0 case LV_FLEX_ALIGN_SPACE_BETWEEN: *gap = (lv_coord_t)(max_size - content_size) / (lv_coord_t)(item_cnt - 1); - 80224d6: 88ba ldrh r2, [r7, #4] - 80224d8: 887b ldrh r3, [r7, #2] - 80224da: 1ad3 subs r3, r2, r3 - 80224dc: b29b uxth r3, r3 - 80224de: b21b sxth r3, r3 - 80224e0: 461a mov r2, r3 - 80224e2: 883b ldrh r3, [r7, #0] - 80224e4: 3b01 subs r3, #1 - 80224e6: b29b uxth r3, r3 - 80224e8: b21b sxth r3, r3 - 80224ea: fb92 f3f3 sdiv r3, r2, r3 - 80224ee: b21a sxth r2, r3 - 80224f0: 697b ldr r3, [r7, #20] - 80224f2: 801a strh r2, [r3, #0] + 8022442: 88ba ldrh r2, [r7, #4] + 8022444: 887b ldrh r3, [r7, #2] + 8022446: 1ad3 subs r3, r2, r3 + 8022448: b29b uxth r3, r3 + 802244a: b21b sxth r3, r3 + 802244c: 461a mov r2, r3 + 802244e: 883b ldrh r3, [r7, #0] + 8022450: 3b01 subs r3, #1 + 8022452: b29b uxth r3, r3 + 8022454: b21b sxth r3, r3 + 8022456: fb92 f3f3 sdiv r3, r2, r3 + 802245a: b21a sxth r2, r3 + 802245c: 697b ldr r3, [r7, #20] + 802245e: 801a strh r2, [r3, #0] break; - 80224f4: e046 b.n 8022584 + 8022460: e046 b.n 80224f0 case LV_FLEX_ALIGN_SPACE_AROUND: *gap += (lv_coord_t)(max_size - content_size) / (lv_coord_t)(item_cnt); - 80224f6: 697b ldr r3, [r7, #20] - 80224f8: f9b3 3000 ldrsh.w r3, [r3] - 80224fc: b29a uxth r2, r3 - 80224fe: 88b9 ldrh r1, [r7, #4] - 8022500: 887b ldrh r3, [r7, #2] - 8022502: 1acb subs r3, r1, r3 - 8022504: b29b uxth r3, r3 - 8022506: b21b sxth r3, r3 - 8022508: 4619 mov r1, r3 - 802250a: f9b7 3000 ldrsh.w r3, [r7] - 802250e: fb91 f3f3 sdiv r3, r1, r3 - 8022512: b29b uxth r3, r3 - 8022514: 4413 add r3, r2 - 8022516: b29b uxth r3, r3 - 8022518: b21a sxth r2, r3 - 802251a: 697b ldr r3, [r7, #20] - 802251c: 801a strh r2, [r3, #0] + 8022462: 697b ldr r3, [r7, #20] + 8022464: f9b3 3000 ldrsh.w r3, [r3] + 8022468: b29a uxth r2, r3 + 802246a: 88b9 ldrh r1, [r7, #4] + 802246c: 887b ldrh r3, [r7, #2] + 802246e: 1acb subs r3, r1, r3 + 8022470: b29b uxth r3, r3 + 8022472: b21b sxth r3, r3 + 8022474: 4619 mov r1, r3 + 8022476: f9b7 3000 ldrsh.w r3, [r7] + 802247a: fb91 f3f3 sdiv r3, r1, r3 + 802247e: b29b uxth r3, r3 + 8022480: 4413 add r3, r2 + 8022482: b29b uxth r3, r3 + 8022484: b21a sxth r2, r3 + 8022486: 697b ldr r3, [r7, #20] + 8022488: 801a strh r2, [r3, #0] *start_pos += *gap / 2; - 802251e: 693b ldr r3, [r7, #16] - 8022520: f9b3 3000 ldrsh.w r3, [r3] - 8022524: b29a uxth r2, r3 - 8022526: 697b ldr r3, [r7, #20] - 8022528: f9b3 3000 ldrsh.w r3, [r3] - 802252c: 0fd9 lsrs r1, r3, #31 - 802252e: 440b add r3, r1 - 8022530: 105b asrs r3, r3, #1 - 8022532: b21b sxth r3, r3 - 8022534: b29b uxth r3, r3 - 8022536: 4413 add r3, r2 - 8022538: b29b uxth r3, r3 - 802253a: b21a sxth r2, r3 - 802253c: 693b ldr r3, [r7, #16] - 802253e: 801a strh r2, [r3, #0] + 802248a: 693b ldr r3, [r7, #16] + 802248c: f9b3 3000 ldrsh.w r3, [r3] + 8022490: b29a uxth r2, r3 + 8022492: 697b ldr r3, [r7, #20] + 8022494: f9b3 3000 ldrsh.w r3, [r3] + 8022498: 0fd9 lsrs r1, r3, #31 + 802249a: 440b add r3, r1 + 802249c: 105b asrs r3, r3, #1 + 802249e: b21b sxth r3, r3 + 80224a0: b29b uxth r3, r3 + 80224a2: 4413 add r3, r2 + 80224a4: b29b uxth r3, r3 + 80224a6: b21a sxth r2, r3 + 80224a8: 693b ldr r3, [r7, #16] + 80224aa: 801a strh r2, [r3, #0] break; - 8022540: e020 b.n 8022584 + 80224ac: e020 b.n 80224f0 case LV_FLEX_ALIGN_SPACE_EVENLY: *gap = (lv_coord_t)(max_size - content_size) / (lv_coord_t)(item_cnt + 1); - 8022542: 88ba ldrh r2, [r7, #4] - 8022544: 887b ldrh r3, [r7, #2] - 8022546: 1ad3 subs r3, r2, r3 - 8022548: b29b uxth r3, r3 - 802254a: b21b sxth r3, r3 - 802254c: 461a mov r2, r3 - 802254e: 883b ldrh r3, [r7, #0] - 8022550: 3301 adds r3, #1 - 8022552: b29b uxth r3, r3 - 8022554: b21b sxth r3, r3 - 8022556: fb92 f3f3 sdiv r3, r2, r3 - 802255a: b21a sxth r2, r3 - 802255c: 697b ldr r3, [r7, #20] - 802255e: 801a strh r2, [r3, #0] + 80224ae: 88ba ldrh r2, [r7, #4] + 80224b0: 887b ldrh r3, [r7, #2] + 80224b2: 1ad3 subs r3, r2, r3 + 80224b4: b29b uxth r3, r3 + 80224b6: b21b sxth r3, r3 + 80224b8: 461a mov r2, r3 + 80224ba: 883b ldrh r3, [r7, #0] + 80224bc: 3301 adds r3, #1 + 80224be: b29b uxth r3, r3 + 80224c0: b21b sxth r3, r3 + 80224c2: fb92 f3f3 sdiv r3, r2, r3 + 80224c6: b21a sxth r2, r3 + 80224c8: 697b ldr r3, [r7, #20] + 80224ca: 801a strh r2, [r3, #0] *start_pos += *gap; - 8022560: 693b ldr r3, [r7, #16] - 8022562: f9b3 3000 ldrsh.w r3, [r3] - 8022566: b29a uxth r2, r3 - 8022568: 697b ldr r3, [r7, #20] - 802256a: f9b3 3000 ldrsh.w r3, [r3] - 802256e: b29b uxth r3, r3 - 8022570: 4413 add r3, r2 - 8022572: b29b uxth r3, r3 - 8022574: b21a sxth r2, r3 - 8022576: 693b ldr r3, [r7, #16] - 8022578: 801a strh r2, [r3, #0] + 80224cc: 693b ldr r3, [r7, #16] + 80224ce: f9b3 3000 ldrsh.w r3, [r3] + 80224d2: b29a uxth r2, r3 + 80224d4: 697b ldr r3, [r7, #20] + 80224d6: f9b3 3000 ldrsh.w r3, [r3] + 80224da: b29b uxth r3, r3 + 80224dc: 4413 add r3, r2 + 80224de: b29b uxth r3, r3 + 80224e0: b21a sxth r2, r3 + 80224e2: 693b ldr r3, [r7, #16] + 80224e4: 801a strh r2, [r3, #0] break; - 802257a: e003 b.n 8022584 + 80224e6: e003 b.n 80224f0 default: *gap = 0; - 802257c: 697b ldr r3, [r7, #20] - 802257e: 2200 movs r2, #0 - 8022580: 801a strh r2, [r3, #0] + 80224e8: 697b ldr r3, [r7, #20] + 80224ea: 2200 movs r2, #0 + 80224ec: 801a strh r2, [r3, #0] } } - 8022582: bf00 nop - 8022584: bf00 nop - 8022586: 3708 adds r7, #8 - 8022588: 46bd mov sp, r7 - 802258a: bc90 pop {r4, r7} - 802258c: 4770 bx lr - 802258e: bf00 nop + 80224ee: bf00 nop + 80224f0: bf00 nop + 80224f2: 3708 adds r7, #8 + 80224f4: 46bd mov sp, r7 + 80224f6: bc90 pop {r4, r7} + 80224f8: 4770 bx lr + 80224fa: bf00 nop -08022590 : +080224fc : static lv_obj_t * get_next_item(lv_obj_t * cont, bool rev, int32_t * item_id) { - 8022590: b480 push {r7} - 8022592: b085 sub sp, #20 - 8022594: af00 add r7, sp, #0 - 8022596: 60f8 str r0, [r7, #12] - 8022598: 460b mov r3, r1 - 802259a: 607a str r2, [r7, #4] - 802259c: 72fb strb r3, [r7, #11] + 80224fc: b480 push {r7} + 80224fe: b085 sub sp, #20 + 8022500: af00 add r7, sp, #0 + 8022502: 60f8 str r0, [r7, #12] + 8022504: 460b mov r3, r1 + 8022506: 607a str r2, [r7, #4] + 8022508: 72fb strb r3, [r7, #11] if(rev) { - 802259e: 7afb ldrb r3, [r7, #11] - 80225a0: 2b00 cmp r3, #0 - 80225a2: d013 beq.n 80225cc + 802250a: 7afb ldrb r3, [r7, #11] + 802250c: 2b00 cmp r3, #0 + 802250e: d013 beq.n 8022538 (*item_id)--; - 80225a4: 687b ldr r3, [r7, #4] - 80225a6: 681b ldr r3, [r3, #0] - 80225a8: 1e5a subs r2, r3, #1 - 80225aa: 687b ldr r3, [r7, #4] - 80225ac: 601a str r2, [r3, #0] + 8022510: 687b ldr r3, [r7, #4] + 8022512: 681b ldr r3, [r3, #0] + 8022514: 1e5a subs r2, r3, #1 + 8022516: 687b ldr r3, [r7, #4] + 8022518: 601a str r2, [r3, #0] if(*item_id >= 0) return cont->spec_attr->children[*item_id]; - 80225ae: 687b ldr r3, [r7, #4] - 80225b0: 681b ldr r3, [r3, #0] - 80225b2: 2b00 cmp r3, #0 - 80225b4: db08 blt.n 80225c8 - 80225b6: 68fb ldr r3, [r7, #12] - 80225b8: 689b ldr r3, [r3, #8] - 80225ba: 681a ldr r2, [r3, #0] - 80225bc: 687b ldr r3, [r7, #4] - 80225be: 681b ldr r3, [r3, #0] - 80225c0: 009b lsls r3, r3, #2 - 80225c2: 4413 add r3, r2 - 80225c4: 681b ldr r3, [r3, #0] - 80225c6: e017 b.n 80225f8 + 802251a: 687b ldr r3, [r7, #4] + 802251c: 681b ldr r3, [r3, #0] + 802251e: 2b00 cmp r3, #0 + 8022520: db08 blt.n 8022534 + 8022522: 68fb ldr r3, [r7, #12] + 8022524: 689b ldr r3, [r3, #8] + 8022526: 681a ldr r2, [r3, #0] + 8022528: 687b ldr r3, [r7, #4] + 802252a: 681b ldr r3, [r3, #0] + 802252c: 009b lsls r3, r3, #2 + 802252e: 4413 add r3, r2 + 8022530: 681b ldr r3, [r3, #0] + 8022532: e017 b.n 8022564 else return NULL; - 80225c8: 2300 movs r3, #0 - 80225ca: e015 b.n 80225f8 + 8022534: 2300 movs r3, #0 + 8022536: e015 b.n 8022564 } else { (*item_id)++; - 80225cc: 687b ldr r3, [r7, #4] - 80225ce: 681b ldr r3, [r3, #0] - 80225d0: 1c5a adds r2, r3, #1 - 80225d2: 687b ldr r3, [r7, #4] - 80225d4: 601a str r2, [r3, #0] + 8022538: 687b ldr r3, [r7, #4] + 802253a: 681b ldr r3, [r3, #0] + 802253c: 1c5a adds r2, r3, #1 + 802253e: 687b ldr r3, [r7, #4] + 8022540: 601a str r2, [r3, #0] if((*item_id) < (int32_t)cont->spec_attr->child_cnt) return cont->spec_attr->children[*item_id]; - 80225d6: 687b ldr r3, [r7, #4] - 80225d8: 681b ldr r3, [r3, #0] - 80225da: 68fa ldr r2, [r7, #12] - 80225dc: 6892 ldr r2, [r2, #8] - 80225de: 6852 ldr r2, [r2, #4] - 80225e0: 4293 cmp r3, r2 - 80225e2: da08 bge.n 80225f6 - 80225e4: 68fb ldr r3, [r7, #12] - 80225e6: 689b ldr r3, [r3, #8] - 80225e8: 681a ldr r2, [r3, #0] - 80225ea: 687b ldr r3, [r7, #4] - 80225ec: 681b ldr r3, [r3, #0] - 80225ee: 009b lsls r3, r3, #2 - 80225f0: 4413 add r3, r2 - 80225f2: 681b ldr r3, [r3, #0] - 80225f4: e000 b.n 80225f8 + 8022542: 687b ldr r3, [r7, #4] + 8022544: 681b ldr r3, [r3, #0] + 8022546: 68fa ldr r2, [r7, #12] + 8022548: 6892 ldr r2, [r2, #8] + 802254a: 6852 ldr r2, [r2, #4] + 802254c: 4293 cmp r3, r2 + 802254e: da08 bge.n 8022562 + 8022550: 68fb ldr r3, [r7, #12] + 8022552: 689b ldr r3, [r3, #8] + 8022554: 681a ldr r2, [r3, #0] + 8022556: 687b ldr r3, [r7, #4] + 8022558: 681b ldr r3, [r3, #0] + 802255a: 009b lsls r3, r3, #2 + 802255c: 4413 add r3, r2 + 802255e: 681b ldr r3, [r3, #0] + 8022560: e000 b.n 8022564 else return NULL; - 80225f6: 2300 movs r3, #0 + 8022562: 2300 movs r3, #0 } } - 80225f8: 4618 mov r0, r3 - 80225fa: 3714 adds r7, #20 - 80225fc: 46bd mov sp, r7 - 80225fe: bc80 pop {r7} - 8022600: 4770 bx lr + 8022564: 4618 mov r0, r3 + 8022566: 3714 adds r7, #20 + 8022568: 46bd mov sp, r7 + 802256a: bc80 pop {r7} + 802256c: 4770 bx lr -08022602 : +0802256e : * Copy an area * @param dest pointer to the destination area * @param src pointer to the source area */ inline static void lv_area_copy(lv_area_t * dest, const lv_area_t * src) { - 8022602: b480 push {r7} - 8022604: b083 sub sp, #12 - 8022606: af00 add r7, sp, #0 - 8022608: 6078 str r0, [r7, #4] - 802260a: 6039 str r1, [r7, #0] + 802256e: b480 push {r7} + 8022570: b083 sub sp, #12 + 8022572: af00 add r7, sp, #0 + 8022574: 6078 str r0, [r7, #4] + 8022576: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 802260c: 683b ldr r3, [r7, #0] - 802260e: f9b3 2000 ldrsh.w r2, [r3] - 8022612: 687b ldr r3, [r7, #4] - 8022614: 801a strh r2, [r3, #0] + 8022578: 683b ldr r3, [r7, #0] + 802257a: f9b3 2000 ldrsh.w r2, [r3] + 802257e: 687b ldr r3, [r7, #4] + 8022580: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 8022616: 683b ldr r3, [r7, #0] - 8022618: f9b3 2002 ldrsh.w r2, [r3, #2] - 802261c: 687b ldr r3, [r7, #4] - 802261e: 805a strh r2, [r3, #2] + 8022582: 683b ldr r3, [r7, #0] + 8022584: f9b3 2002 ldrsh.w r2, [r3, #2] + 8022588: 687b ldr r3, [r7, #4] + 802258a: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 8022620: 683b ldr r3, [r7, #0] - 8022622: f9b3 2004 ldrsh.w r2, [r3, #4] - 8022626: 687b ldr r3, [r7, #4] - 8022628: 809a strh r2, [r3, #4] + 802258c: 683b ldr r3, [r7, #0] + 802258e: f9b3 2004 ldrsh.w r2, [r3, #4] + 8022592: 687b ldr r3, [r7, #4] + 8022594: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 802262a: 683b ldr r3, [r7, #0] - 802262c: f9b3 2006 ldrsh.w r2, [r3, #6] - 8022630: 687b ldr r3, [r7, #4] - 8022632: 80da strh r2, [r3, #6] + 8022596: 683b ldr r3, [r7, #0] + 8022598: f9b3 2006 ldrsh.w r2, [r3, #6] + 802259c: 687b ldr r3, [r7, #4] + 802259e: 80da strh r2, [r3, #6] } - 8022634: bf00 nop - 8022636: 370c adds r7, #12 - 8022638: 46bd mov sp, r7 - 802263a: bc80 pop {r7} - 802263c: 4770 bx lr + 80225a0: bf00 nop + 80225a2: 370c adds r7, #12 + 80225a4: 46bd mov sp, r7 + 80225a6: bc80 pop {r7} + 80225a8: 4770 bx lr -0802263e : +080225aa : * Get the width of an area * @param area_p pointer to an area * @return the width of the area (if x1 == x2 -> width = 1) */ static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p) { - 802263e: b480 push {r7} - 8022640: b083 sub sp, #12 - 8022642: af00 add r7, sp, #0 - 8022644: 6078 str r0, [r7, #4] + 80225aa: b480 push {r7} + 80225ac: b083 sub sp, #12 + 80225ae: af00 add r7, sp, #0 + 80225b0: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 8022646: 687b ldr r3, [r7, #4] - 8022648: f9b3 3004 ldrsh.w r3, [r3, #4] - 802264c: b29a uxth r2, r3 - 802264e: 687b ldr r3, [r7, #4] - 8022650: f9b3 3000 ldrsh.w r3, [r3] - 8022654: b29b uxth r3, r3 - 8022656: 1ad3 subs r3, r2, r3 - 8022658: b29b uxth r3, r3 - 802265a: 3301 adds r3, #1 - 802265c: b29b uxth r3, r3 - 802265e: b21b sxth r3, r3 + 80225b2: 687b ldr r3, [r7, #4] + 80225b4: f9b3 3004 ldrsh.w r3, [r3, #4] + 80225b8: b29a uxth r2, r3 + 80225ba: 687b ldr r3, [r7, #4] + 80225bc: f9b3 3000 ldrsh.w r3, [r3] + 80225c0: b29b uxth r3, r3 + 80225c2: 1ad3 subs r3, r2, r3 + 80225c4: b29b uxth r3, r3 + 80225c6: 3301 adds r3, #1 + 80225c8: b29b uxth r3, r3 + 80225ca: b21b sxth r3, r3 } - 8022660: 4618 mov r0, r3 - 8022662: 370c adds r7, #12 - 8022664: 46bd mov sp, r7 - 8022666: bc80 pop {r7} - 8022668: 4770 bx lr + 80225cc: 4618 mov r0, r3 + 80225ce: 370c adds r7, #12 + 80225d0: 46bd mov sp, r7 + 80225d2: bc80 pop {r7} + 80225d4: 4770 bx lr -0802266a : +080225d6 : * Get the height of an area * @param area_p pointer to an area * @return the height of the area (if y1 == y2 -> height = 1) */ static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) { - 802266a: b480 push {r7} - 802266c: b083 sub sp, #12 - 802266e: af00 add r7, sp, #0 - 8022670: 6078 str r0, [r7, #4] + 80225d6: b480 push {r7} + 80225d8: b083 sub sp, #12 + 80225da: af00 add r7, sp, #0 + 80225dc: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 8022672: 687b ldr r3, [r7, #4] - 8022674: f9b3 3006 ldrsh.w r3, [r3, #6] - 8022678: b29a uxth r2, r3 - 802267a: 687b ldr r3, [r7, #4] - 802267c: f9b3 3002 ldrsh.w r3, [r3, #2] - 8022680: b29b uxth r3, r3 - 8022682: 1ad3 subs r3, r2, r3 - 8022684: b29b uxth r3, r3 - 8022686: 3301 adds r3, #1 - 8022688: b29b uxth r3, r3 - 802268a: b21b sxth r3, r3 + 80225de: 687b ldr r3, [r7, #4] + 80225e0: f9b3 3006 ldrsh.w r3, [r3, #6] + 80225e4: b29a uxth r2, r3 + 80225e6: 687b ldr r3, [r7, #4] + 80225e8: f9b3 3002 ldrsh.w r3, [r3, #2] + 80225ec: b29b uxth r3, r3 + 80225ee: 1ad3 subs r3, r2, r3 + 80225f0: b29b uxth r3, r3 + 80225f2: 3301 adds r3, #1 + 80225f4: b29b uxth r3, r3 + 80225f6: b21b sxth r3, r3 } - 802268c: 4618 mov r0, r3 - 802268e: 370c adds r7, #12 - 8022690: 46bd mov sp, r7 - 8022692: bc80 pop {r7} - 8022694: 4770 bx lr + 80225f8: 4618 mov r0, r3 + 80225fa: 370c adds r7, #12 + 80225fc: 46bd mov sp, r7 + 80225fe: bc80 pop {r7} + 8022600: 4770 bx lr -08022696 : +08022602 : static inline lv_coord_t lv_obj_get_style_width(const struct _lv_obj_t * obj, uint32_t part) { - 8022696: b580 push {r7, lr} - 8022698: b084 sub sp, #16 - 802269a: af00 add r7, sp, #0 - 802269c: 6078 str r0, [r7, #4] - 802269e: 6039 str r1, [r7, #0] + 8022602: b580 push {r7, lr} + 8022604: b084 sub sp, #16 + 8022606: af00 add r7, sp, #0 + 8022608: 6078 str r0, [r7, #4] + 802260a: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_WIDTH); - 80226a0: f241 0201 movw r2, #4097 ; 0x1001 - 80226a4: 6839 ldr r1, [r7, #0] - 80226a6: 6878 ldr r0, [r7, #4] - 80226a8: f7eb fb82 bl 800ddb0 - 80226ac: 4603 mov r3, r0 - 80226ae: 60fb str r3, [r7, #12] + 802260c: f241 0201 movw r2, #4097 ; 0x1001 + 8022610: 6839 ldr r1, [r7, #0] + 8022612: 6878 ldr r0, [r7, #4] + 8022614: f7eb fb96 bl 800dd44 + 8022618: 4603 mov r3, r0 + 802261a: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80226b0: 68fb ldr r3, [r7, #12] - 80226b2: b21b sxth r3, r3 + 802261c: 68fb ldr r3, [r7, #12] + 802261e: b21b sxth r3, r3 } - 80226b4: 4618 mov r0, r3 - 80226b6: 3710 adds r7, #16 - 80226b8: 46bd mov sp, r7 - 80226ba: bd80 pop {r7, pc} + 8022620: 4618 mov r0, r3 + 8022622: 3710 adds r7, #16 + 8022624: 46bd mov sp, r7 + 8022626: bd80 pop {r7, pc} -080226bc : +08022628 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MAX_WIDTH); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_height(const struct _lv_obj_t * obj, uint32_t part) { - 80226bc: b580 push {r7, lr} - 80226be: b084 sub sp, #16 - 80226c0: af00 add r7, sp, #0 - 80226c2: 6078 str r0, [r7, #4] - 80226c4: 6039 str r1, [r7, #0] + 8022628: b580 push {r7, lr} + 802262a: b084 sub sp, #16 + 802262c: af00 add r7, sp, #0 + 802262e: 6078 str r0, [r7, #4] + 8022630: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_HEIGHT); - 80226c6: f241 0204 movw r2, #4100 ; 0x1004 - 80226ca: 6839 ldr r1, [r7, #0] - 80226cc: 6878 ldr r0, [r7, #4] - 80226ce: f7eb fb6f bl 800ddb0 - 80226d2: 4603 mov r3, r0 - 80226d4: 60fb str r3, [r7, #12] + 8022632: f241 0204 movw r2, #4100 ; 0x1004 + 8022636: 6839 ldr r1, [r7, #0] + 8022638: 6878 ldr r0, [r7, #4] + 802263a: f7eb fb83 bl 800dd44 + 802263e: 4603 mov r3, r0 + 8022640: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80226d6: 68fb ldr r3, [r7, #12] - 80226d8: b21b sxth r3, r3 + 8022642: 68fb ldr r3, [r7, #12] + 8022644: b21b sxth r3, r3 } - 80226da: 4618 mov r0, r3 - 80226dc: 3710 adds r7, #16 - 80226de: 46bd mov sp, r7 - 80226e0: bd80 pop {r7, pc} + 8022646: 4618 mov r0, r3 + 8022648: 3710 adds r7, #16 + 802264a: 46bd mov sp, r7 + 802264c: bd80 pop {r7, pc} -080226e2 : +0802264e : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_HEIGHT); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_translate_x(const struct _lv_obj_t * obj, uint32_t part) { - 80226e2: b580 push {r7, lr} - 80226e4: b084 sub sp, #16 - 80226e6: af00 add r7, sp, #0 - 80226e8: 6078 str r0, [r7, #4] - 80226ea: 6039 str r1, [r7, #0] + 802264e: b580 push {r7, lr} + 8022650: b084 sub sp, #16 + 8022652: af00 add r7, sp, #0 + 8022654: 6078 str r0, [r7, #4] + 8022656: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSLATE_X); - 80226ec: f243 020c movw r2, #12300 ; 0x300c - 80226f0: 6839 ldr r1, [r7, #0] - 80226f2: 6878 ldr r0, [r7, #4] - 80226f4: f7eb fb5c bl 800ddb0 - 80226f8: 4603 mov r3, r0 - 80226fa: 60fb str r3, [r7, #12] + 8022658: f243 020c movw r2, #12300 ; 0x300c + 802265c: 6839 ldr r1, [r7, #0] + 802265e: 6878 ldr r0, [r7, #4] + 8022660: f7eb fb70 bl 800dd44 + 8022664: 4603 mov r3, r0 + 8022666: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80226fc: 68fb ldr r3, [r7, #12] - 80226fe: b21b sxth r3, r3 + 8022668: 68fb ldr r3, [r7, #12] + 802266a: b21b sxth r3, r3 } - 8022700: 4618 mov r0, r3 - 8022702: 3710 adds r7, #16 - 8022704: 46bd mov sp, r7 - 8022706: bd80 pop {r7, pc} + 802266c: 4618 mov r0, r3 + 802266e: 3710 adds r7, #16 + 8022670: 46bd mov sp, r7 + 8022672: bd80 pop {r7, pc} -08022708 : +08022674 : static inline lv_coord_t lv_obj_get_style_translate_y(const struct _lv_obj_t * obj, uint32_t part) { - 8022708: b580 push {r7, lr} - 802270a: b084 sub sp, #16 - 802270c: af00 add r7, sp, #0 - 802270e: 6078 str r0, [r7, #4] - 8022710: 6039 str r1, [r7, #0] + 8022674: b580 push {r7, lr} + 8022676: b084 sub sp, #16 + 8022678: af00 add r7, sp, #0 + 802267a: 6078 str r0, [r7, #4] + 802267c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSLATE_Y); - 8022712: f243 020d movw r2, #12301 ; 0x300d - 8022716: 6839 ldr r1, [r7, #0] - 8022718: 6878 ldr r0, [r7, #4] - 802271a: f7eb fb49 bl 800ddb0 - 802271e: 4603 mov r3, r0 - 8022720: 60fb str r3, [r7, #12] + 802267e: f243 020d movw r2, #12301 ; 0x300d + 8022682: 6839 ldr r1, [r7, #0] + 8022684: 6878 ldr r0, [r7, #4] + 8022686: f7eb fb5d bl 800dd44 + 802268a: 4603 mov r3, r0 + 802268c: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8022722: 68fb ldr r3, [r7, #12] - 8022724: b21b sxth r3, r3 + 802268e: 68fb ldr r3, [r7, #12] + 8022690: b21b sxth r3, r3 } - 8022726: 4618 mov r0, r3 - 8022728: 3710 adds r7, #16 - 802272a: 46bd mov sp, r7 - 802272c: bd80 pop {r7, pc} + 8022692: 4618 mov r0, r3 + 8022694: 3710 adds r7, #16 + 8022696: 46bd mov sp, r7 + 8022698: bd80 pop {r7, pc} -0802272e : +0802269a : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_ANGLE); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_pad_top(const struct _lv_obj_t * obj, uint32_t part) { - 802272e: b580 push {r7, lr} - 8022730: b084 sub sp, #16 - 8022732: af00 add r7, sp, #0 - 8022734: 6078 str r0, [r7, #4] - 8022736: 6039 str r1, [r7, #0] + 802269a: b580 push {r7, lr} + 802269c: b084 sub sp, #16 + 802269e: af00 add r7, sp, #0 + 80226a0: 6078 str r0, [r7, #4] + 80226a2: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 8022738: f641 0210 movw r2, #6160 ; 0x1810 - 802273c: 6839 ldr r1, [r7, #0] - 802273e: 6878 ldr r0, [r7, #4] - 8022740: f7eb fb36 bl 800ddb0 - 8022744: 4603 mov r3, r0 - 8022746: 60fb str r3, [r7, #12] + 80226a4: f641 0210 movw r2, #6160 ; 0x1810 + 80226a8: 6839 ldr r1, [r7, #0] + 80226aa: 6878 ldr r0, [r7, #4] + 80226ac: f7eb fb4a bl 800dd44 + 80226b0: 4603 mov r3, r0 + 80226b2: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8022748: 68fb ldr r3, [r7, #12] - 802274a: b21b sxth r3, r3 + 80226b4: 68fb ldr r3, [r7, #12] + 80226b6: b21b sxth r3, r3 } - 802274c: 4618 mov r0, r3 - 802274e: 3710 adds r7, #16 - 8022750: 46bd mov sp, r7 - 8022752: bd80 pop {r7, pc} + 80226b8: 4618 mov r0, r3 + 80226ba: 3710 adds r7, #16 + 80226bc: 46bd mov sp, r7 + 80226be: bd80 pop {r7, pc} -08022754 : +080226c0 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_pad_left(const struct _lv_obj_t * obj, uint32_t part) { - 8022754: b580 push {r7, lr} - 8022756: b084 sub sp, #16 - 8022758: af00 add r7, sp, #0 - 802275a: 6078 str r0, [r7, #4] - 802275c: 6039 str r1, [r7, #0] + 80226c0: b580 push {r7, lr} + 80226c2: b084 sub sp, #16 + 80226c4: af00 add r7, sp, #0 + 80226c6: 6078 str r0, [r7, #4] + 80226c8: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 802275e: f641 0212 movw r2, #6162 ; 0x1812 - 8022762: 6839 ldr r1, [r7, #0] - 8022764: 6878 ldr r0, [r7, #4] - 8022766: f7eb fb23 bl 800ddb0 - 802276a: 4603 mov r3, r0 - 802276c: 60fb str r3, [r7, #12] + 80226ca: f641 0212 movw r2, #6162 ; 0x1812 + 80226ce: 6839 ldr r1, [r7, #0] + 80226d0: 6878 ldr r0, [r7, #4] + 80226d2: f7eb fb37 bl 800dd44 + 80226d6: 4603 mov r3, r0 + 80226d8: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 802276e: 68fb ldr r3, [r7, #12] - 8022770: b21b sxth r3, r3 + 80226da: 68fb ldr r3, [r7, #12] + 80226dc: b21b sxth r3, r3 } - 8022772: 4618 mov r0, r3 - 8022774: 3710 adds r7, #16 - 8022776: 46bd mov sp, r7 - 8022778: bd80 pop {r7, pc} + 80226de: 4618 mov r0, r3 + 80226e0: 3710 adds r7, #16 + 80226e2: 46bd mov sp, r7 + 80226e4: bd80 pop {r7, pc} -0802277a : +080226e6 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_pad_row(const struct _lv_obj_t * obj, uint32_t part) { - 802277a: b580 push {r7, lr} - 802277c: b084 sub sp, #16 - 802277e: af00 add r7, sp, #0 - 8022780: 6078 str r0, [r7, #4] - 8022782: 6039 str r1, [r7, #0] + 80226e6: b580 push {r7, lr} + 80226e8: b084 sub sp, #16 + 80226ea: af00 add r7, sp, #0 + 80226ec: 6078 str r0, [r7, #4] + 80226ee: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_ROW); - 8022784: f641 0214 movw r2, #6164 ; 0x1814 - 8022788: 6839 ldr r1, [r7, #0] - 802278a: 6878 ldr r0, [r7, #4] - 802278c: f7eb fb10 bl 800ddb0 - 8022790: 4603 mov r3, r0 - 8022792: 60fb str r3, [r7, #12] + 80226f0: f641 0214 movw r2, #6164 ; 0x1814 + 80226f4: 6839 ldr r1, [r7, #0] + 80226f6: 6878 ldr r0, [r7, #4] + 80226f8: f7eb fb24 bl 800dd44 + 80226fc: 4603 mov r3, r0 + 80226fe: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8022794: 68fb ldr r3, [r7, #12] - 8022796: b21b sxth r3, r3 + 8022700: 68fb ldr r3, [r7, #12] + 8022702: b21b sxth r3, r3 } - 8022798: 4618 mov r0, r3 - 802279a: 3710 adds r7, #16 - 802279c: 46bd mov sp, r7 - 802279e: bd80 pop {r7, pc} + 8022704: 4618 mov r0, r3 + 8022706: 3710 adds r7, #16 + 8022708: 46bd mov sp, r7 + 802270a: bd80 pop {r7, pc} -080227a0 : +0802270c : static inline lv_coord_t lv_obj_get_style_pad_column(const struct _lv_obj_t * obj, uint32_t part) { - 80227a0: b580 push {r7, lr} - 80227a2: b084 sub sp, #16 - 80227a4: af00 add r7, sp, #0 - 80227a6: 6078 str r0, [r7, #4] - 80227a8: 6039 str r1, [r7, #0] + 802270c: b580 push {r7, lr} + 802270e: b084 sub sp, #16 + 8022710: af00 add r7, sp, #0 + 8022712: 6078 str r0, [r7, #4] + 8022714: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_COLUMN); - 80227aa: f641 0215 movw r2, #6165 ; 0x1815 - 80227ae: 6839 ldr r1, [r7, #0] - 80227b0: 6878 ldr r0, [r7, #4] - 80227b2: f7eb fafd bl 800ddb0 - 80227b6: 4603 mov r3, r0 - 80227b8: 60fb str r3, [r7, #12] + 8022716: f641 0215 movw r2, #6165 ; 0x1815 + 802271a: 6839 ldr r1, [r7, #0] + 802271c: 6878 ldr r0, [r7, #4] + 802271e: f7eb fb11 bl 800dd44 + 8022722: 4603 mov r3, r0 + 8022724: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80227ba: 68fb ldr r3, [r7, #12] - 80227bc: b21b sxth r3, r3 + 8022726: 68fb ldr r3, [r7, #12] + 8022728: b21b sxth r3, r3 } - 80227be: 4618 mov r0, r3 - 80227c0: 3710 adds r7, #16 - 80227c2: 46bd mov sp, r7 - 80227c4: bd80 pop {r7, pc} + 802272a: 4618 mov r0, r3 + 802272c: 3710 adds r7, #16 + 802272e: 46bd mov sp, r7 + 8022730: bd80 pop {r7, pc} -080227c6 : +08022732 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_OPA); return (lv_opa_t)v.num; } static inline lv_coord_t lv_obj_get_style_border_width(const struct _lv_obj_t * obj, uint32_t part) { - 80227c6: b580 push {r7, lr} - 80227c8: b084 sub sp, #16 - 80227ca: af00 add r7, sp, #0 - 80227cc: 6078 str r0, [r7, #4] - 80227ce: 6039 str r1, [r7, #0] + 8022732: b580 push {r7, lr} + 8022734: b084 sub sp, #16 + 8022736: af00 add r7, sp, #0 + 8022738: 6078 str r0, [r7, #4] + 802273a: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); - 80227d0: f241 0232 movw r2, #4146 ; 0x1032 - 80227d4: 6839 ldr r1, [r7, #0] - 80227d6: 6878 ldr r0, [r7, #4] - 80227d8: f7eb faea bl 800ddb0 - 80227dc: 4603 mov r3, r0 - 80227de: 60fb str r3, [r7, #12] + 802273c: f241 0232 movw r2, #4146 ; 0x1032 + 8022740: 6839 ldr r1, [r7, #0] + 8022742: 6878 ldr r0, [r7, #4] + 8022744: f7eb fafe bl 800dd44 + 8022748: 4603 mov r3, r0 + 802274a: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80227e0: 68fb ldr r3, [r7, #12] - 80227e2: b21b sxth r3, r3 + 802274c: 68fb ldr r3, [r7, #12] + 802274e: b21b sxth r3, r3 } - 80227e4: 4618 mov r0, r3 - 80227e6: 3710 adds r7, #16 - 80227e8: 46bd mov sp, r7 - 80227ea: bd80 pop {r7, pc} + 8022750: 4618 mov r0, r3 + 8022752: 3710 adds r7, #16 + 8022754: 46bd mov sp, r7 + 8022756: bd80 pop {r7, pc} -080227ec : +08022758 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LAYOUT); return (uint16_t)v.num; } static inline lv_base_dir_t lv_obj_get_style_base_dir(const struct _lv_obj_t * obj, uint32_t part) { - 80227ec: b580 push {r7, lr} - 80227ee: b084 sub sp, #16 - 80227f0: af00 add r7, sp, #0 - 80227f2: 6078 str r0, [r7, #4] - 80227f4: 6039 str r1, [r7, #0] + 8022758: b580 push {r7, lr} + 802275a: b084 sub sp, #16 + 802275c: af00 add r7, sp, #0 + 802275e: 6078 str r0, [r7, #4] + 8022760: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BASE_DIR); - 80227f6: f241 426a movw r2, #5226 ; 0x146a - 80227fa: 6839 ldr r1, [r7, #0] - 80227fc: 6878 ldr r0, [r7, #4] - 80227fe: f7eb fad7 bl 800ddb0 - 8022802: 4603 mov r3, r0 - 8022804: 60fb str r3, [r7, #12] + 8022762: f241 426a movw r2, #5226 ; 0x146a + 8022766: 6839 ldr r1, [r7, #0] + 8022768: 6878 ldr r0, [r7, #4] + 802276a: f7eb faeb bl 800dd44 + 802276e: 4603 mov r3, r0 + 8022770: 60fb str r3, [r7, #12] return (lv_base_dir_t)v.num; - 8022806: 68fb ldr r3, [r7, #12] - 8022808: b2db uxtb r3, r3 + 8022772: 68fb ldr r3, [r7, #12] + 8022774: b2db uxtb r3, r3 } - 802280a: 4618 mov r0, r3 - 802280c: 3710 adds r7, #16 - 802280e: 46bd mov sp, r7 - 8022810: bd80 pop {r7, pc} + 8022776: 4618 mov r0, r3 + 8022778: 3710 adds r7, #16 + 802277a: 46bd mov sp, r7 + 802277c: bd80 pop {r7, pc} ... -08022814 : +08022780 : void lv_obj_set_style_grid_cell_row_span(lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); void lv_obj_set_style_grid_cell_x_align(lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); void lv_obj_set_style_grid_cell_y_align(lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector); static inline const lv_coord_t * lv_obj_get_style_grid_row_dsc_array(const lv_obj_t * obj, uint32_t part) { - 8022814: b580 push {r7, lr} - 8022816: b084 sub sp, #16 - 8022818: af00 add r7, sp, #0 - 802281a: 6078 str r0, [r7, #4] - 802281c: 6039 str r1, [r7, #0] + 8022780: b580 push {r7, lr} + 8022782: b084 sub sp, #16 + 8022784: af00 add r7, sp, #0 + 8022786: 6078 str r0, [r7, #4] + 8022788: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_ROW_DSC_ARRAY); - 802281e: 4b07 ldr r3, [pc, #28] ; (802283c ) - 8022820: 881b ldrh r3, [r3, #0] - 8022822: 461a mov r2, r3 - 8022824: 6839 ldr r1, [r7, #0] - 8022826: 6878 ldr r0, [r7, #4] - 8022828: f7eb fac2 bl 800ddb0 - 802282c: 4603 mov r3, r0 - 802282e: 60fb str r3, [r7, #12] + 802278a: 4b07 ldr r3, [pc, #28] ; (80227a8 ) + 802278c: 881b ldrh r3, [r3, #0] + 802278e: 461a mov r2, r3 + 8022790: 6839 ldr r1, [r7, #0] + 8022792: 6878 ldr r0, [r7, #4] + 8022794: f7eb fad6 bl 800dd44 + 8022798: 4603 mov r3, r0 + 802279a: 60fb str r3, [r7, #12] return (const lv_coord_t *)v.ptr; - 8022830: 68fb ldr r3, [r7, #12] + 802279c: 68fb ldr r3, [r7, #12] } - 8022832: 4618 mov r0, r3 - 8022834: 3710 adds r7, #16 - 8022836: 46bd mov sp, r7 - 8022838: bd80 pop {r7, pc} - 802283a: bf00 nop - 802283c: 20001c3c .word 0x20001c3c + 802279e: 4618 mov r0, r3 + 80227a0: 3710 adds r7, #16 + 80227a2: 46bd mov sp, r7 + 80227a4: bd80 pop {r7, pc} + 80227a6: bf00 nop + 80227a8: 20001c3c .word 0x20001c3c -08022840 : +080227ac : static inline const lv_coord_t * lv_obj_get_style_grid_column_dsc_array(const lv_obj_t * obj, uint32_t part) { - 8022840: b580 push {r7, lr} - 8022842: b084 sub sp, #16 - 8022844: af00 add r7, sp, #0 - 8022846: 6078 str r0, [r7, #4] - 8022848: 6039 str r1, [r7, #0] + 80227ac: b580 push {r7, lr} + 80227ae: b084 sub sp, #16 + 80227b0: af00 add r7, sp, #0 + 80227b2: 6078 str r0, [r7, #4] + 80227b4: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_COLUMN_DSC_ARRAY); - 802284a: 4b07 ldr r3, [pc, #28] ; (8022868 ) - 802284c: 881b ldrh r3, [r3, #0] - 802284e: 461a mov r2, r3 - 8022850: 6839 ldr r1, [r7, #0] - 8022852: 6878 ldr r0, [r7, #4] - 8022854: f7eb faac bl 800ddb0 - 8022858: 4603 mov r3, r0 - 802285a: 60fb str r3, [r7, #12] + 80227b6: 4b07 ldr r3, [pc, #28] ; (80227d4 ) + 80227b8: 881b ldrh r3, [r3, #0] + 80227ba: 461a mov r2, r3 + 80227bc: 6839 ldr r1, [r7, #0] + 80227be: 6878 ldr r0, [r7, #4] + 80227c0: f7eb fac0 bl 800dd44 + 80227c4: 4603 mov r3, r0 + 80227c6: 60fb str r3, [r7, #12] return (const lv_coord_t *)v.ptr; - 802285c: 68fb ldr r3, [r7, #12] + 80227c8: 68fb ldr r3, [r7, #12] } - 802285e: 4618 mov r0, r3 - 8022860: 3710 adds r7, #16 - 8022862: 46bd mov sp, r7 - 8022864: bd80 pop {r7, pc} - 8022866: bf00 nop - 8022868: 20001c38 .word 0x20001c38 + 80227ca: 4618 mov r0, r3 + 80227cc: 3710 adds r7, #16 + 80227ce: 46bd mov sp, r7 + 80227d0: bd80 pop {r7, pc} + 80227d2: bf00 nop + 80227d4: 20001c38 .word 0x20001c38 -0802286c : +080227d8 : static inline lv_grid_align_t lv_obj_get_style_grid_row_align(const lv_obj_t * obj, uint32_t part) { - 802286c: b580 push {r7, lr} - 802286e: b084 sub sp, #16 - 8022870: af00 add r7, sp, #0 - 8022872: 6078 str r0, [r7, #4] - 8022874: 6039 str r1, [r7, #0] + 80227d8: b580 push {r7, lr} + 80227da: b084 sub sp, #16 + 80227dc: af00 add r7, sp, #0 + 80227de: 6078 str r0, [r7, #4] + 80227e0: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_ROW_ALIGN); - 8022876: 4b07 ldr r3, [pc, #28] ; (8022894 ) - 8022878: 881b ldrh r3, [r3, #0] - 802287a: 461a mov r2, r3 - 802287c: 6839 ldr r1, [r7, #0] - 802287e: 6878 ldr r0, [r7, #4] - 8022880: f7eb fa96 bl 800ddb0 - 8022884: 4603 mov r3, r0 - 8022886: 60fb str r3, [r7, #12] + 80227e2: 4b07 ldr r3, [pc, #28] ; (8022800 ) + 80227e4: 881b ldrh r3, [r3, #0] + 80227e6: 461a mov r2, r3 + 80227e8: 6839 ldr r1, [r7, #0] + 80227ea: 6878 ldr r0, [r7, #4] + 80227ec: f7eb faaa bl 800dd44 + 80227f0: 4603 mov r3, r0 + 80227f2: 60fb str r3, [r7, #12] return (lv_grid_align_t)v.num; - 8022888: 68fb ldr r3, [r7, #12] - 802288a: b2db uxtb r3, r3 + 80227f4: 68fb ldr r3, [r7, #12] + 80227f6: b2db uxtb r3, r3 } - 802288c: 4618 mov r0, r3 - 802288e: 3710 adds r7, #16 - 8022890: 46bd mov sp, r7 - 8022892: bd80 pop {r7, pc} - 8022894: 20001c3e .word 0x20001c3e + 80227f8: 4618 mov r0, r3 + 80227fa: 3710 adds r7, #16 + 80227fc: 46bd mov sp, r7 + 80227fe: bd80 pop {r7, pc} + 8022800: 20001c3e .word 0x20001c3e -08022898 : +08022804 : static inline lv_grid_align_t lv_obj_get_style_grid_column_align(const lv_obj_t * obj, uint32_t part) { - 8022898: b580 push {r7, lr} - 802289a: b084 sub sp, #16 - 802289c: af00 add r7, sp, #0 - 802289e: 6078 str r0, [r7, #4] - 80228a0: 6039 str r1, [r7, #0] + 8022804: b580 push {r7, lr} + 8022806: b084 sub sp, #16 + 8022808: af00 add r7, sp, #0 + 802280a: 6078 str r0, [r7, #4] + 802280c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_COLUMN_ALIGN); - 80228a2: 4b07 ldr r3, [pc, #28] ; (80228c0 ) - 80228a4: 881b ldrh r3, [r3, #0] - 80228a6: 461a mov r2, r3 - 80228a8: 6839 ldr r1, [r7, #0] - 80228aa: 6878 ldr r0, [r7, #4] - 80228ac: f7eb fa80 bl 800ddb0 - 80228b0: 4603 mov r3, r0 - 80228b2: 60fb str r3, [r7, #12] + 802280e: 4b07 ldr r3, [pc, #28] ; (802282c ) + 8022810: 881b ldrh r3, [r3, #0] + 8022812: 461a mov r2, r3 + 8022814: 6839 ldr r1, [r7, #0] + 8022816: 6878 ldr r0, [r7, #4] + 8022818: f7eb fa94 bl 800dd44 + 802281c: 4603 mov r3, r0 + 802281e: 60fb str r3, [r7, #12] return (lv_grid_align_t)v.num; - 80228b4: 68fb ldr r3, [r7, #12] - 80228b6: b2db uxtb r3, r3 + 8022820: 68fb ldr r3, [r7, #12] + 8022822: b2db uxtb r3, r3 } - 80228b8: 4618 mov r0, r3 - 80228ba: 3710 adds r7, #16 - 80228bc: 46bd mov sp, r7 - 80228be: bd80 pop {r7, pc} - 80228c0: 20001c3a .word 0x20001c3a + 8022824: 4618 mov r0, r3 + 8022826: 3710 adds r7, #16 + 8022828: 46bd mov sp, r7 + 802282a: bd80 pop {r7, pc} + 802282c: 20001c3a .word 0x20001c3a -080228c4 : +08022830 : static inline lv_coord_t lv_obj_get_style_grid_cell_column_pos(const lv_obj_t * obj, uint32_t part) { - 80228c4: b580 push {r7, lr} - 80228c6: b084 sub sp, #16 - 80228c8: af00 add r7, sp, #0 - 80228ca: 6078 str r0, [r7, #4] - 80228cc: 6039 str r1, [r7, #0] + 8022830: b580 push {r7, lr} + 8022832: b084 sub sp, #16 + 8022834: af00 add r7, sp, #0 + 8022836: 6078 str r0, [r7, #4] + 8022838: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_CELL_COLUMN_POS); - 80228ce: 4b07 ldr r3, [pc, #28] ; (80228ec ) - 80228d0: 881b ldrh r3, [r3, #0] - 80228d2: 461a mov r2, r3 - 80228d4: 6839 ldr r1, [r7, #0] - 80228d6: 6878 ldr r0, [r7, #4] - 80228d8: f7eb fa6a bl 800ddb0 - 80228dc: 4603 mov r3, r0 - 80228de: 60fb str r3, [r7, #12] + 802283a: 4b07 ldr r3, [pc, #28] ; (8022858 ) + 802283c: 881b ldrh r3, [r3, #0] + 802283e: 461a mov r2, r3 + 8022840: 6839 ldr r1, [r7, #0] + 8022842: 6878 ldr r0, [r7, #4] + 8022844: f7eb fa7e bl 800dd44 + 8022848: 4603 mov r3, r0 + 802284a: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80228e0: 68fb ldr r3, [r7, #12] - 80228e2: b21b sxth r3, r3 + 802284c: 68fb ldr r3, [r7, #12] + 802284e: b21b sxth r3, r3 } - 80228e4: 4618 mov r0, r3 - 80228e6: 3710 adds r7, #16 - 80228e8: 46bd mov sp, r7 - 80228ea: bd80 pop {r7, pc} - 80228ec: 20001c40 .word 0x20001c40 + 8022850: 4618 mov r0, r3 + 8022852: 3710 adds r7, #16 + 8022854: 46bd mov sp, r7 + 8022856: bd80 pop {r7, pc} + 8022858: 20001c40 .word 0x20001c40 -080228f0 : +0802285c : static inline lv_coord_t lv_obj_get_style_grid_cell_column_span(const lv_obj_t * obj, uint32_t part) { - 80228f0: b580 push {r7, lr} - 80228f2: b084 sub sp, #16 - 80228f4: af00 add r7, sp, #0 - 80228f6: 6078 str r0, [r7, #4] - 80228f8: 6039 str r1, [r7, #0] + 802285c: b580 push {r7, lr} + 802285e: b084 sub sp, #16 + 8022860: af00 add r7, sp, #0 + 8022862: 6078 str r0, [r7, #4] + 8022864: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_CELL_COLUMN_SPAN); - 80228fa: 4b07 ldr r3, [pc, #28] ; (8022918 ) - 80228fc: 881b ldrh r3, [r3, #0] - 80228fe: 461a mov r2, r3 - 8022900: 6839 ldr r1, [r7, #0] - 8022902: 6878 ldr r0, [r7, #4] - 8022904: f7eb fa54 bl 800ddb0 - 8022908: 4603 mov r3, r0 - 802290a: 60fb str r3, [r7, #12] + 8022866: 4b07 ldr r3, [pc, #28] ; (8022884 ) + 8022868: 881b ldrh r3, [r3, #0] + 802286a: 461a mov r2, r3 + 802286c: 6839 ldr r1, [r7, #0] + 802286e: 6878 ldr r0, [r7, #4] + 8022870: f7eb fa68 bl 800dd44 + 8022874: 4603 mov r3, r0 + 8022876: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 802290c: 68fb ldr r3, [r7, #12] - 802290e: b21b sxth r3, r3 + 8022878: 68fb ldr r3, [r7, #12] + 802287a: b21b sxth r3, r3 } - 8022910: 4618 mov r0, r3 - 8022912: 3710 adds r7, #16 - 8022914: 46bd mov sp, r7 - 8022916: bd80 pop {r7, pc} - 8022918: 20001c42 .word 0x20001c42 + 802287c: 4618 mov r0, r3 + 802287e: 3710 adds r7, #16 + 8022880: 46bd mov sp, r7 + 8022882: bd80 pop {r7, pc} + 8022884: 20001c42 .word 0x20001c42 -0802291c : +08022888 : static inline lv_coord_t lv_obj_get_style_grid_cell_row_pos(const lv_obj_t * obj, uint32_t part) { - 802291c: b580 push {r7, lr} - 802291e: b084 sub sp, #16 - 8022920: af00 add r7, sp, #0 - 8022922: 6078 str r0, [r7, #4] - 8022924: 6039 str r1, [r7, #0] + 8022888: b580 push {r7, lr} + 802288a: b084 sub sp, #16 + 802288c: af00 add r7, sp, #0 + 802288e: 6078 str r0, [r7, #4] + 8022890: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_CELL_ROW_POS); - 8022926: 4b07 ldr r3, [pc, #28] ; (8022944 ) - 8022928: 881b ldrh r3, [r3, #0] - 802292a: 461a mov r2, r3 - 802292c: 6839 ldr r1, [r7, #0] - 802292e: 6878 ldr r0, [r7, #4] - 8022930: f7eb fa3e bl 800ddb0 - 8022934: 4603 mov r3, r0 - 8022936: 60fb str r3, [r7, #12] + 8022892: 4b07 ldr r3, [pc, #28] ; (80228b0 ) + 8022894: 881b ldrh r3, [r3, #0] + 8022896: 461a mov r2, r3 + 8022898: 6839 ldr r1, [r7, #0] + 802289a: 6878 ldr r0, [r7, #4] + 802289c: f7eb fa52 bl 800dd44 + 80228a0: 4603 mov r3, r0 + 80228a2: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8022938: 68fb ldr r3, [r7, #12] - 802293a: b21b sxth r3, r3 + 80228a4: 68fb ldr r3, [r7, #12] + 80228a6: b21b sxth r3, r3 } - 802293c: 4618 mov r0, r3 - 802293e: 3710 adds r7, #16 - 8022940: 46bd mov sp, r7 - 8022942: bd80 pop {r7, pc} - 8022944: 20001c46 .word 0x20001c46 + 80228a8: 4618 mov r0, r3 + 80228aa: 3710 adds r7, #16 + 80228ac: 46bd mov sp, r7 + 80228ae: bd80 pop {r7, pc} + 80228b0: 20001c46 .word 0x20001c46 -08022948 : +080228b4 : static inline lv_coord_t lv_obj_get_style_grid_cell_row_span(const lv_obj_t * obj, uint32_t part) { - 8022948: b580 push {r7, lr} - 802294a: b084 sub sp, #16 - 802294c: af00 add r7, sp, #0 - 802294e: 6078 str r0, [r7, #4] - 8022950: 6039 str r1, [r7, #0] + 80228b4: b580 push {r7, lr} + 80228b6: b084 sub sp, #16 + 80228b8: af00 add r7, sp, #0 + 80228ba: 6078 str r0, [r7, #4] + 80228bc: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_CELL_ROW_SPAN); - 8022952: 4b07 ldr r3, [pc, #28] ; (8022970 ) - 8022954: 881b ldrh r3, [r3, #0] - 8022956: 461a mov r2, r3 - 8022958: 6839 ldr r1, [r7, #0] - 802295a: 6878 ldr r0, [r7, #4] - 802295c: f7eb fa28 bl 800ddb0 - 8022960: 4603 mov r3, r0 - 8022962: 60fb str r3, [r7, #12] + 80228be: 4b07 ldr r3, [pc, #28] ; (80228dc ) + 80228c0: 881b ldrh r3, [r3, #0] + 80228c2: 461a mov r2, r3 + 80228c4: 6839 ldr r1, [r7, #0] + 80228c6: 6878 ldr r0, [r7, #4] + 80228c8: f7eb fa3c bl 800dd44 + 80228cc: 4603 mov r3, r0 + 80228ce: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8022964: 68fb ldr r3, [r7, #12] - 8022966: b21b sxth r3, r3 + 80228d0: 68fb ldr r3, [r7, #12] + 80228d2: b21b sxth r3, r3 } - 8022968: 4618 mov r0, r3 - 802296a: 3710 adds r7, #16 - 802296c: 46bd mov sp, r7 - 802296e: bd80 pop {r7, pc} - 8022970: 20001c48 .word 0x20001c48 + 80228d4: 4618 mov r0, r3 + 80228d6: 3710 adds r7, #16 + 80228d8: 46bd mov sp, r7 + 80228da: bd80 pop {r7, pc} + 80228dc: 20001c48 .word 0x20001c48 -08022974 : +080228e0 : static inline lv_coord_t lv_obj_get_style_grid_cell_x_align(const lv_obj_t * obj, uint32_t part) { - 8022974: b580 push {r7, lr} - 8022976: b084 sub sp, #16 - 8022978: af00 add r7, sp, #0 - 802297a: 6078 str r0, [r7, #4] - 802297c: 6039 str r1, [r7, #0] + 80228e0: b580 push {r7, lr} + 80228e2: b084 sub sp, #16 + 80228e4: af00 add r7, sp, #0 + 80228e6: 6078 str r0, [r7, #4] + 80228e8: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_CELL_X_ALIGN); - 802297e: 4b07 ldr r3, [pc, #28] ; (802299c ) - 8022980: 881b ldrh r3, [r3, #0] - 8022982: 461a mov r2, r3 - 8022984: 6839 ldr r1, [r7, #0] - 8022986: 6878 ldr r0, [r7, #4] - 8022988: f7eb fa12 bl 800ddb0 - 802298c: 4603 mov r3, r0 - 802298e: 60fb str r3, [r7, #12] + 80228ea: 4b07 ldr r3, [pc, #28] ; (8022908 ) + 80228ec: 881b ldrh r3, [r3, #0] + 80228ee: 461a mov r2, r3 + 80228f0: 6839 ldr r1, [r7, #0] + 80228f2: 6878 ldr r0, [r7, #4] + 80228f4: f7eb fa26 bl 800dd44 + 80228f8: 4603 mov r3, r0 + 80228fa: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8022990: 68fb ldr r3, [r7, #12] - 8022992: b21b sxth r3, r3 + 80228fc: 68fb ldr r3, [r7, #12] + 80228fe: b21b sxth r3, r3 } - 8022994: 4618 mov r0, r3 - 8022996: 3710 adds r7, #16 - 8022998: 46bd mov sp, r7 - 802299a: bd80 pop {r7, pc} - 802299c: 20001c44 .word 0x20001c44 + 8022900: 4618 mov r0, r3 + 8022902: 3710 adds r7, #16 + 8022904: 46bd mov sp, r7 + 8022906: bd80 pop {r7, pc} + 8022908: 20001c44 .word 0x20001c44 -080229a0 : +0802290c : static inline lv_coord_t lv_obj_get_style_grid_cell_y_align(const lv_obj_t * obj, uint32_t part) { - 80229a0: b580 push {r7, lr} - 80229a2: b084 sub sp, #16 - 80229a4: af00 add r7, sp, #0 - 80229a6: 6078 str r0, [r7, #4] - 80229a8: 6039 str r1, [r7, #0] + 802290c: b580 push {r7, lr} + 802290e: b084 sub sp, #16 + 8022910: af00 add r7, sp, #0 + 8022912: 6078 str r0, [r7, #4] + 8022914: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_GRID_CELL_Y_ALIGN); - 80229aa: 4b07 ldr r3, [pc, #28] ; (80229c8 ) - 80229ac: 881b ldrh r3, [r3, #0] - 80229ae: 461a mov r2, r3 - 80229b0: 6839 ldr r1, [r7, #0] - 80229b2: 6878 ldr r0, [r7, #4] - 80229b4: f7eb f9fc bl 800ddb0 - 80229b8: 4603 mov r3, r0 - 80229ba: 60fb str r3, [r7, #12] + 8022916: 4b07 ldr r3, [pc, #28] ; (8022934 ) + 8022918: 881b ldrh r3, [r3, #0] + 802291a: 461a mov r2, r3 + 802291c: 6839 ldr r1, [r7, #0] + 802291e: 6878 ldr r0, [r7, #4] + 8022920: f7eb fa10 bl 800dd44 + 8022924: 4603 mov r3, r0 + 8022926: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80229bc: 68fb ldr r3, [r7, #12] - 80229be: b21b sxth r3, r3 + 8022928: 68fb ldr r3, [r7, #12] + 802292a: b21b sxth r3, r3 } - 80229c0: 4618 mov r0, r3 - 80229c2: 3710 adds r7, #16 - 80229c4: 46bd mov sp, r7 - 80229c6: bd80 pop {r7, pc} - 80229c8: 20001c4a .word 0x20001c4a + 802292c: 4618 mov r0, r3 + 802292e: 3710 adds r7, #16 + 8022930: 46bd mov sp, r7 + 8022932: bd80 pop {r7, pc} + 8022934: 20001c4a .word 0x20001c4a -080229cc : +08022938 : static lv_coord_t grid_align(lv_coord_t cont_size, bool auto_size, uint8_t align, lv_coord_t gap, uint32_t track_num, lv_coord_t * size_array, lv_coord_t * pos_array, bool reverse); static uint32_t count_tracks(const lv_coord_t * templ); static inline const lv_coord_t * get_col_dsc(lv_obj_t * obj) { - 80229cc: b580 push {r7, lr} - 80229ce: b082 sub sp, #8 - 80229d0: af00 add r7, sp, #0 - 80229d2: 6078 str r0, [r7, #4] + 8022938: b580 push {r7, lr} + 802293a: b082 sub sp, #8 + 802293c: af00 add r7, sp, #0 + 802293e: 6078 str r0, [r7, #4] return lv_obj_get_style_grid_column_dsc_array(obj, 0); - 80229d4: 2100 movs r1, #0 - 80229d6: 6878 ldr r0, [r7, #4] - 80229d8: f7ff ff32 bl 8022840 - 80229dc: 4603 mov r3, r0 + 8022940: 2100 movs r1, #0 + 8022942: 6878 ldr r0, [r7, #4] + 8022944: f7ff ff32 bl 80227ac + 8022948: 4603 mov r3, r0 } - 80229de: 4618 mov r0, r3 - 80229e0: 3708 adds r7, #8 - 80229e2: 46bd mov sp, r7 - 80229e4: bd80 pop {r7, pc} + 802294a: 4618 mov r0, r3 + 802294c: 3708 adds r7, #8 + 802294e: 46bd mov sp, r7 + 8022950: bd80 pop {r7, pc} -080229e6 : +08022952 : static inline const lv_coord_t * get_row_dsc(lv_obj_t * obj) { - 80229e6: b580 push {r7, lr} - 80229e8: b082 sub sp, #8 - 80229ea: af00 add r7, sp, #0 - 80229ec: 6078 str r0, [r7, #4] + 8022952: b580 push {r7, lr} + 8022954: b082 sub sp, #8 + 8022956: af00 add r7, sp, #0 + 8022958: 6078 str r0, [r7, #4] return lv_obj_get_style_grid_row_dsc_array(obj, 0); - 80229ee: 2100 movs r1, #0 - 80229f0: 6878 ldr r0, [r7, #4] - 80229f2: f7ff ff0f bl 8022814 - 80229f6: 4603 mov r3, r0 + 802295a: 2100 movs r1, #0 + 802295c: 6878 ldr r0, [r7, #4] + 802295e: f7ff ff0f bl 8022780 + 8022962: 4603 mov r3, r0 } - 80229f8: 4618 mov r0, r3 - 80229fa: 3708 adds r7, #8 - 80229fc: 46bd mov sp, r7 - 80229fe: bd80 pop {r7, pc} + 8022964: 4618 mov r0, r3 + 8022966: 3708 adds r7, #8 + 8022968: 46bd mov sp, r7 + 802296a: bd80 pop {r7, pc} -08022a00 : +0802296c : static inline uint8_t get_col_pos(lv_obj_t * obj) { - 8022a00: b580 push {r7, lr} - 8022a02: b082 sub sp, #8 - 8022a04: af00 add r7, sp, #0 - 8022a06: 6078 str r0, [r7, #4] + 802296c: b580 push {r7, lr} + 802296e: b082 sub sp, #8 + 8022970: af00 add r7, sp, #0 + 8022972: 6078 str r0, [r7, #4] return lv_obj_get_style_grid_cell_column_pos(obj, 0); - 8022a08: 2100 movs r1, #0 - 8022a0a: 6878 ldr r0, [r7, #4] - 8022a0c: f7ff ff5a bl 80228c4 - 8022a10: 4603 mov r3, r0 - 8022a12: b2db uxtb r3, r3 + 8022974: 2100 movs r1, #0 + 8022976: 6878 ldr r0, [r7, #4] + 8022978: f7ff ff5a bl 8022830 + 802297c: 4603 mov r3, r0 + 802297e: b2db uxtb r3, r3 } - 8022a14: 4618 mov r0, r3 - 8022a16: 3708 adds r7, #8 - 8022a18: 46bd mov sp, r7 - 8022a1a: bd80 pop {r7, pc} + 8022980: 4618 mov r0, r3 + 8022982: 3708 adds r7, #8 + 8022984: 46bd mov sp, r7 + 8022986: bd80 pop {r7, pc} -08022a1c : +08022988 : static inline uint8_t get_row_pos(lv_obj_t * obj) { - 8022a1c: b580 push {r7, lr} - 8022a1e: b082 sub sp, #8 - 8022a20: af00 add r7, sp, #0 - 8022a22: 6078 str r0, [r7, #4] + 8022988: b580 push {r7, lr} + 802298a: b082 sub sp, #8 + 802298c: af00 add r7, sp, #0 + 802298e: 6078 str r0, [r7, #4] return lv_obj_get_style_grid_cell_row_pos(obj, 0); - 8022a24: 2100 movs r1, #0 - 8022a26: 6878 ldr r0, [r7, #4] - 8022a28: f7ff ff78 bl 802291c - 8022a2c: 4603 mov r3, r0 - 8022a2e: b2db uxtb r3, r3 + 8022990: 2100 movs r1, #0 + 8022992: 6878 ldr r0, [r7, #4] + 8022994: f7ff ff78 bl 8022888 + 8022998: 4603 mov r3, r0 + 802299a: b2db uxtb r3, r3 } - 8022a30: 4618 mov r0, r3 - 8022a32: 3708 adds r7, #8 - 8022a34: 46bd mov sp, r7 - 8022a36: bd80 pop {r7, pc} + 802299c: 4618 mov r0, r3 + 802299e: 3708 adds r7, #8 + 80229a0: 46bd mov sp, r7 + 80229a2: bd80 pop {r7, pc} -08022a38 : +080229a4 : static inline uint8_t get_col_span(lv_obj_t * obj) { - 8022a38: b580 push {r7, lr} - 8022a3a: b082 sub sp, #8 - 8022a3c: af00 add r7, sp, #0 - 8022a3e: 6078 str r0, [r7, #4] + 80229a4: b580 push {r7, lr} + 80229a6: b082 sub sp, #8 + 80229a8: af00 add r7, sp, #0 + 80229aa: 6078 str r0, [r7, #4] return lv_obj_get_style_grid_cell_column_span(obj, 0); - 8022a40: 2100 movs r1, #0 - 8022a42: 6878 ldr r0, [r7, #4] - 8022a44: f7ff ff54 bl 80228f0 - 8022a48: 4603 mov r3, r0 - 8022a4a: b2db uxtb r3, r3 + 80229ac: 2100 movs r1, #0 + 80229ae: 6878 ldr r0, [r7, #4] + 80229b0: f7ff ff54 bl 802285c + 80229b4: 4603 mov r3, r0 + 80229b6: b2db uxtb r3, r3 } - 8022a4c: 4618 mov r0, r3 - 8022a4e: 3708 adds r7, #8 - 8022a50: 46bd mov sp, r7 - 8022a52: bd80 pop {r7, pc} + 80229b8: 4618 mov r0, r3 + 80229ba: 3708 adds r7, #8 + 80229bc: 46bd mov sp, r7 + 80229be: bd80 pop {r7, pc} -08022a54 : +080229c0 : static inline uint8_t get_row_span(lv_obj_t * obj) { - 8022a54: b580 push {r7, lr} - 8022a56: b082 sub sp, #8 - 8022a58: af00 add r7, sp, #0 - 8022a5a: 6078 str r0, [r7, #4] + 80229c0: b580 push {r7, lr} + 80229c2: b082 sub sp, #8 + 80229c4: af00 add r7, sp, #0 + 80229c6: 6078 str r0, [r7, #4] return lv_obj_get_style_grid_cell_row_span(obj, 0); - 8022a5c: 2100 movs r1, #0 - 8022a5e: 6878 ldr r0, [r7, #4] - 8022a60: f7ff ff72 bl 8022948 - 8022a64: 4603 mov r3, r0 - 8022a66: b2db uxtb r3, r3 + 80229c8: 2100 movs r1, #0 + 80229ca: 6878 ldr r0, [r7, #4] + 80229cc: f7ff ff72 bl 80228b4 + 80229d0: 4603 mov r3, r0 + 80229d2: b2db uxtb r3, r3 } - 8022a68: 4618 mov r0, r3 - 8022a6a: 3708 adds r7, #8 - 8022a6c: 46bd mov sp, r7 - 8022a6e: bd80 pop {r7, pc} + 80229d4: 4618 mov r0, r3 + 80229d6: 3708 adds r7, #8 + 80229d8: 46bd mov sp, r7 + 80229da: bd80 pop {r7, pc} -08022a70 : +080229dc : static inline uint8_t get_cell_col_align(lv_obj_t * obj) { - 8022a70: b580 push {r7, lr} - 8022a72: b082 sub sp, #8 - 8022a74: af00 add r7, sp, #0 - 8022a76: 6078 str r0, [r7, #4] + 80229dc: b580 push {r7, lr} + 80229de: b082 sub sp, #8 + 80229e0: af00 add r7, sp, #0 + 80229e2: 6078 str r0, [r7, #4] return lv_obj_get_style_grid_cell_x_align(obj, 0); - 8022a78: 2100 movs r1, #0 - 8022a7a: 6878 ldr r0, [r7, #4] - 8022a7c: f7ff ff7a bl 8022974 - 8022a80: 4603 mov r3, r0 - 8022a82: b2db uxtb r3, r3 + 80229e4: 2100 movs r1, #0 + 80229e6: 6878 ldr r0, [r7, #4] + 80229e8: f7ff ff7a bl 80228e0 + 80229ec: 4603 mov r3, r0 + 80229ee: b2db uxtb r3, r3 } - 8022a84: 4618 mov r0, r3 - 8022a86: 3708 adds r7, #8 - 8022a88: 46bd mov sp, r7 - 8022a8a: bd80 pop {r7, pc} + 80229f0: 4618 mov r0, r3 + 80229f2: 3708 adds r7, #8 + 80229f4: 46bd mov sp, r7 + 80229f6: bd80 pop {r7, pc} -08022a8c : +080229f8 : static inline uint8_t get_cell_row_align(lv_obj_t * obj) { - 8022a8c: b580 push {r7, lr} - 8022a8e: b082 sub sp, #8 - 8022a90: af00 add r7, sp, #0 - 8022a92: 6078 str r0, [r7, #4] + 80229f8: b580 push {r7, lr} + 80229fa: b082 sub sp, #8 + 80229fc: af00 add r7, sp, #0 + 80229fe: 6078 str r0, [r7, #4] return lv_obj_get_style_grid_cell_y_align(obj, 0); - 8022a94: 2100 movs r1, #0 - 8022a96: 6878 ldr r0, [r7, #4] - 8022a98: f7ff ff82 bl 80229a0 - 8022a9c: 4603 mov r3, r0 - 8022a9e: b2db uxtb r3, r3 + 8022a00: 2100 movs r1, #0 + 8022a02: 6878 ldr r0, [r7, #4] + 8022a04: f7ff ff82 bl 802290c + 8022a08: 4603 mov r3, r0 + 8022a0a: b2db uxtb r3, r3 } - 8022aa0: 4618 mov r0, r3 - 8022aa2: 3708 adds r7, #8 - 8022aa4: 46bd mov sp, r7 - 8022aa6: bd80 pop {r7, pc} + 8022a0c: 4618 mov r0, r3 + 8022a0e: 3708 adds r7, #8 + 8022a10: 46bd mov sp, r7 + 8022a12: bd80 pop {r7, pc} -08022aa8 : +08022a14 : static inline uint8_t get_grid_col_align(lv_obj_t * obj) { - 8022aa8: b580 push {r7, lr} - 8022aaa: b082 sub sp, #8 - 8022aac: af00 add r7, sp, #0 - 8022aae: 6078 str r0, [r7, #4] + 8022a14: b580 push {r7, lr} + 8022a16: b082 sub sp, #8 + 8022a18: af00 add r7, sp, #0 + 8022a1a: 6078 str r0, [r7, #4] return lv_obj_get_style_grid_column_align(obj, 0); - 8022ab0: 2100 movs r1, #0 - 8022ab2: 6878 ldr r0, [r7, #4] - 8022ab4: f7ff fef0 bl 8022898 - 8022ab8: 4603 mov r3, r0 + 8022a1c: 2100 movs r1, #0 + 8022a1e: 6878 ldr r0, [r7, #4] + 8022a20: f7ff fef0 bl 8022804 + 8022a24: 4603 mov r3, r0 } - 8022aba: 4618 mov r0, r3 - 8022abc: 3708 adds r7, #8 - 8022abe: 46bd mov sp, r7 - 8022ac0: bd80 pop {r7, pc} + 8022a26: 4618 mov r0, r3 + 8022a28: 3708 adds r7, #8 + 8022a2a: 46bd mov sp, r7 + 8022a2c: bd80 pop {r7, pc} -08022ac2 : +08022a2e : static inline uint8_t get_grid_row_align(lv_obj_t * obj) { - 8022ac2: b580 push {r7, lr} - 8022ac4: b082 sub sp, #8 - 8022ac6: af00 add r7, sp, #0 - 8022ac8: 6078 str r0, [r7, #4] + 8022a2e: b580 push {r7, lr} + 8022a30: b082 sub sp, #8 + 8022a32: af00 add r7, sp, #0 + 8022a34: 6078 str r0, [r7, #4] return lv_obj_get_style_grid_row_align(obj, 0); - 8022aca: 2100 movs r1, #0 - 8022acc: 6878 ldr r0, [r7, #4] - 8022ace: f7ff fecd bl 802286c - 8022ad2: 4603 mov r3, r0 + 8022a36: 2100 movs r1, #0 + 8022a38: 6878 ldr r0, [r7, #4] + 8022a3a: f7ff fecd bl 80227d8 + 8022a3e: 4603 mov r3, r0 } - 8022ad4: 4618 mov r0, r3 - 8022ad6: 3708 adds r7, #8 - 8022ad8: 46bd mov sp, r7 - 8022ada: bd80 pop {r7, pc} + 8022a40: 4618 mov r0, r3 + 8022a42: 3708 adds r7, #8 + 8022a44: 46bd mov sp, r7 + 8022a46: bd80 pop {r7, pc} -08022adc : +08022a48 : * GLOBAL FUNCTIONS **********************/ void lv_grid_init(void) { - 8022adc: b580 push {r7, lr} - 8022ade: af00 add r7, sp, #0 + 8022a48: b580 push {r7, lr} + 8022a4a: af00 add r7, sp, #0 LV_LAYOUT_GRID = lv_layout_register(grid_update, NULL); - 8022ae0: 2100 movs r1, #0 - 8022ae2: 482c ldr r0, [pc, #176] ; (8022b94 ) - 8022ae4: f7e6 ff56 bl 8009994 - 8022ae8: 4603 mov r3, r0 - 8022aea: 4a2b ldr r2, [pc, #172] ; (8022b98 ) - 8022aec: 6013 str r3, [r2, #0] + 8022a4c: 2100 movs r1, #0 + 8022a4e: 482c ldr r0, [pc, #176] ; (8022b00 ) + 8022a50: f7e6 ff6a bl 8009928 + 8022a54: 4603 mov r3, r0 + 8022a56: 4a2b ldr r2, [pc, #172] ; (8022b04 ) + 8022a58: 6013 str r3, [r2, #0] LV_STYLE_GRID_COLUMN_DSC_ARRAY = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR; - 8022aee: f011 fbdb bl 80342a8 - 8022af2: 4603 mov r3, r0 - 8022af4: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 8022af8: b29a uxth r2, r3 - 8022afa: 4b28 ldr r3, [pc, #160] ; (8022b9c ) - 8022afc: 801a strh r2, [r3, #0] + 8022a5a: f011 fbdb bl 8034214 + 8022a5e: 4603 mov r3, r0 + 8022a60: f443 5380 orr.w r3, r3, #4096 ; 0x1000 + 8022a64: b29a uxth r2, r3 + 8022a66: 4b28 ldr r3, [pc, #160] ; (8022b08 ) + 8022a68: 801a strh r2, [r3, #0] LV_STYLE_GRID_ROW_DSC_ARRAY = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR; - 8022afe: f011 fbd3 bl 80342a8 - 8022b02: 4603 mov r3, r0 - 8022b04: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 8022b08: b29a uxth r2, r3 - 8022b0a: 4b25 ldr r3, [pc, #148] ; (8022ba0 ) - 8022b0c: 801a strh r2, [r3, #0] + 8022a6a: f011 fbd3 bl 8034214 + 8022a6e: 4603 mov r3, r0 + 8022a70: f443 5380 orr.w r3, r3, #4096 ; 0x1000 + 8022a74: b29a uxth r2, r3 + 8022a76: 4b25 ldr r3, [pc, #148] ; (8022b0c ) + 8022a78: 801a strh r2, [r3, #0] LV_STYLE_GRID_COLUMN_ALIGN = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR; - 8022b0e: f011 fbcb bl 80342a8 - 8022b12: 4603 mov r3, r0 - 8022b14: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 8022b18: b29a uxth r2, r3 - 8022b1a: 4b22 ldr r3, [pc, #136] ; (8022ba4 ) - 8022b1c: 801a strh r2, [r3, #0] + 8022a7a: f011 fbcb bl 8034214 + 8022a7e: 4603 mov r3, r0 + 8022a80: f443 5380 orr.w r3, r3, #4096 ; 0x1000 + 8022a84: b29a uxth r2, r3 + 8022a86: 4b22 ldr r3, [pc, #136] ; (8022b10 ) + 8022a88: 801a strh r2, [r3, #0] LV_STYLE_GRID_ROW_ALIGN = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR; - 8022b1e: f011 fbc3 bl 80342a8 - 8022b22: 4603 mov r3, r0 - 8022b24: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 8022b28: b29a uxth r2, r3 - 8022b2a: 4b1f ldr r3, [pc, #124] ; (8022ba8 ) - 8022b2c: 801a strh r2, [r3, #0] + 8022a8a: f011 fbc3 bl 8034214 + 8022a8e: 4603 mov r3, r0 + 8022a90: f443 5380 orr.w r3, r3, #4096 ; 0x1000 + 8022a94: b29a uxth r2, r3 + 8022a96: 4b1f ldr r3, [pc, #124] ; (8022b14 ) + 8022a98: 801a strh r2, [r3, #0] LV_STYLE_GRID_CELL_ROW_SPAN = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR; - 8022b2e: f011 fbbb bl 80342a8 - 8022b32: 4603 mov r3, r0 - 8022b34: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 8022b38: b29a uxth r2, r3 - 8022b3a: 4b1c ldr r3, [pc, #112] ; (8022bac ) - 8022b3c: 801a strh r2, [r3, #0] + 8022a9a: f011 fbbb bl 8034214 + 8022a9e: 4603 mov r3, r0 + 8022aa0: f443 5380 orr.w r3, r3, #4096 ; 0x1000 + 8022aa4: b29a uxth r2, r3 + 8022aa6: 4b1c ldr r3, [pc, #112] ; (8022b18 ) + 8022aa8: 801a strh r2, [r3, #0] LV_STYLE_GRID_CELL_ROW_POS = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR; - 8022b3e: f011 fbb3 bl 80342a8 - 8022b42: 4603 mov r3, r0 - 8022b44: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 8022b48: b29a uxth r2, r3 - 8022b4a: 4b19 ldr r3, [pc, #100] ; (8022bb0 ) - 8022b4c: 801a strh r2, [r3, #0] + 8022aaa: f011 fbb3 bl 8034214 + 8022aae: 4603 mov r3, r0 + 8022ab0: f443 5380 orr.w r3, r3, #4096 ; 0x1000 + 8022ab4: b29a uxth r2, r3 + 8022ab6: 4b19 ldr r3, [pc, #100] ; (8022b1c ) + 8022ab8: 801a strh r2, [r3, #0] LV_STYLE_GRID_CELL_COLUMN_SPAN = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR; - 8022b4e: f011 fbab bl 80342a8 - 8022b52: 4603 mov r3, r0 - 8022b54: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 8022b58: b29a uxth r2, r3 - 8022b5a: 4b16 ldr r3, [pc, #88] ; (8022bb4 ) - 8022b5c: 801a strh r2, [r3, #0] + 8022aba: f011 fbab bl 8034214 + 8022abe: 4603 mov r3, r0 + 8022ac0: f443 5380 orr.w r3, r3, #4096 ; 0x1000 + 8022ac4: b29a uxth r2, r3 + 8022ac6: 4b16 ldr r3, [pc, #88] ; (8022b20 ) + 8022ac8: 801a strh r2, [r3, #0] LV_STYLE_GRID_CELL_COLUMN_POS = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR; - 8022b5e: f011 fba3 bl 80342a8 - 8022b62: 4603 mov r3, r0 - 8022b64: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 8022b68: b29a uxth r2, r3 - 8022b6a: 4b13 ldr r3, [pc, #76] ; (8022bb8 ) - 8022b6c: 801a strh r2, [r3, #0] + 8022aca: f011 fba3 bl 8034214 + 8022ace: 4603 mov r3, r0 + 8022ad0: f443 5380 orr.w r3, r3, #4096 ; 0x1000 + 8022ad4: b29a uxth r2, r3 + 8022ad6: 4b13 ldr r3, [pc, #76] ; (8022b24 ) + 8022ad8: 801a strh r2, [r3, #0] LV_STYLE_GRID_CELL_X_ALIGN = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR; - 8022b6e: f011 fb9b bl 80342a8 - 8022b72: 4603 mov r3, r0 - 8022b74: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 8022b78: b29a uxth r2, r3 - 8022b7a: 4b10 ldr r3, [pc, #64] ; (8022bbc ) - 8022b7c: 801a strh r2, [r3, #0] + 8022ada: f011 fb9b bl 8034214 + 8022ade: 4603 mov r3, r0 + 8022ae0: f443 5380 orr.w r3, r3, #4096 ; 0x1000 + 8022ae4: b29a uxth r2, r3 + 8022ae6: 4b10 ldr r3, [pc, #64] ; (8022b28 ) + 8022ae8: 801a strh r2, [r3, #0] LV_STYLE_GRID_CELL_Y_ALIGN = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR; - 8022b7e: f011 fb93 bl 80342a8 - 8022b82: 4603 mov r3, r0 - 8022b84: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 8022b88: b29a uxth r2, r3 - 8022b8a: 4b0d ldr r3, [pc, #52] ; (8022bc0 ) - 8022b8c: 801a strh r2, [r3, #0] + 8022aea: f011 fb93 bl 8034214 + 8022aee: 4603 mov r3, r0 + 8022af0: f443 5380 orr.w r3, r3, #4096 ; 0x1000 + 8022af4: b29a uxth r2, r3 + 8022af6: 4b0d ldr r3, [pc, #52] ; (8022b2c ) + 8022af8: 801a strh r2, [r3, #0] } - 8022b8e: bf00 nop - 8022b90: bd80 pop {r7, pc} - 8022b92: bf00 nop - 8022b94: 08022bc5 .word 0x08022bc5 - 8022b98: 20001c34 .word 0x20001c34 - 8022b9c: 20001c38 .word 0x20001c38 - 8022ba0: 20001c3c .word 0x20001c3c - 8022ba4: 20001c3a .word 0x20001c3a - 8022ba8: 20001c3e .word 0x20001c3e - 8022bac: 20001c48 .word 0x20001c48 - 8022bb0: 20001c46 .word 0x20001c46 - 8022bb4: 20001c42 .word 0x20001c42 - 8022bb8: 20001c40 .word 0x20001c40 - 8022bbc: 20001c44 .word 0x20001c44 - 8022bc0: 20001c4a .word 0x20001c4a + 8022afa: bf00 nop + 8022afc: bd80 pop {r7, pc} + 8022afe: bf00 nop + 8022b00: 08022b31 .word 0x08022b31 + 8022b04: 20001c34 .word 0x20001c34 + 8022b08: 20001c38 .word 0x20001c38 + 8022b0c: 20001c3c .word 0x20001c3c + 8022b10: 20001c3a .word 0x20001c3a + 8022b14: 20001c3e .word 0x20001c3e + 8022b18: 20001c48 .word 0x20001c48 + 8022b1c: 20001c46 .word 0x20001c46 + 8022b20: 20001c42 .word 0x20001c42 + 8022b24: 20001c40 .word 0x20001c40 + 8022b28: 20001c44 .word 0x20001c44 + 8022b2c: 20001c4a .word 0x20001c4a -08022bc4 : +08022b30 : /********************** * STATIC FUNCTIONS **********************/ static void grid_update(lv_obj_t * cont, void * user_data) { - 8022bc4: b590 push {r4, r7, lr} - 8022bc6: b095 sub sp, #84 ; 0x54 - 8022bc8: af00 add r7, sp, #0 - 8022bca: 6078 str r0, [r7, #4] - 8022bcc: 6039 str r1, [r7, #0] + 8022b30: b590 push {r4, r7, lr} + 8022b32: b095 sub sp, #84 ; 0x54 + 8022b34: af00 add r7, sp, #0 + 8022b36: 6078 str r0, [r7, #4] + 8022b38: 6039 str r1, [r7, #0] LV_LOG_INFO("update %p container", (void *)cont); LV_UNUSED(user_data); const lv_coord_t * col_templ = get_col_dsc(cont); - 8022bce: 6878 ldr r0, [r7, #4] - 8022bd0: f7ff fefc bl 80229cc - 8022bd4: 64b8 str r0, [r7, #72] ; 0x48 + 8022b3a: 6878 ldr r0, [r7, #4] + 8022b3c: f7ff fefc bl 8022938 + 8022b40: 64b8 str r0, [r7, #72] ; 0x48 const lv_coord_t * row_templ = get_row_dsc(cont); - 8022bd6: 6878 ldr r0, [r7, #4] - 8022bd8: f7ff ff05 bl 80229e6 - 8022bdc: 6478 str r0, [r7, #68] ; 0x44 + 8022b42: 6878 ldr r0, [r7, #4] + 8022b44: f7ff ff05 bl 8022952 + 8022b48: 6478 str r0, [r7, #68] ; 0x44 if(col_templ == NULL || row_templ == NULL) return; - 8022bde: 6cbb ldr r3, [r7, #72] ; 0x48 - 8022be0: 2b00 cmp r3, #0 - 8022be2: f000 8091 beq.w 8022d08 - 8022be6: 6c7b ldr r3, [r7, #68] ; 0x44 - 8022be8: 2b00 cmp r3, #0 - 8022bea: f000 808d beq.w 8022d08 + 8022b4a: 6cbb ldr r3, [r7, #72] ; 0x48 + 8022b4c: 2b00 cmp r3, #0 + 8022b4e: f000 8091 beq.w 8022c74 + 8022b52: 6c7b ldr r3, [r7, #68] ; 0x44 + 8022b54: 2b00 cmp r3, #0 + 8022b56: f000 808d beq.w 8022c74 _lv_grid_calc_t c; calc(cont, &c); - 8022bee: f107 0318 add.w r3, r7, #24 - 8022bf2: 4619 mov r1, r3 - 8022bf4: 6878 ldr r0, [r7, #4] - 8022bf6: f000 f88b bl 8022d10 + 8022b5a: f107 0318 add.w r3, r7, #24 + 8022b5e: 4619 mov r1, r3 + 8022b60: 6878 ldr r0, [r7, #4] + 8022b62: f000 f88b bl 8022c7c item_repos_hint_t hint; lv_memset_00(&hint, sizeof(hint)); - 8022bfa: f107 030c add.w r3, r7, #12 - 8022bfe: 210c movs r1, #12 - 8022c00: 4618 mov r0, r3 - 8022c02: f010 faa5 bl 8033150 + 8022b66: f107 030c add.w r3, r7, #12 + 8022b6a: 210c movs r1, #12 + 8022b6c: 4618 mov r0, r3 + 8022b6e: f010 faa5 bl 80330bc /*Calculate the grids absolute x and y coordinates. *It will be used as helper during item repositioning to avoid calculating this value for every children*/ lv_coord_t border_widt = lv_obj_get_style_border_width(cont, LV_PART_MAIN); - 8022c06: 2100 movs r1, #0 - 8022c08: 6878 ldr r0, [r7, #4] - 8022c0a: f7ff fddc bl 80227c6 - 8022c0e: 4603 mov r3, r0 - 8022c10: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 8022b72: 2100 movs r1, #0 + 8022b74: 6878 ldr r0, [r7, #4] + 8022b76: f7ff fddc bl 8022732 + 8022b7a: 4603 mov r3, r0 + 8022b7c: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 lv_coord_t pad_left = lv_obj_get_style_pad_left(cont, LV_PART_MAIN) + border_widt; - 8022c14: 2100 movs r1, #0 - 8022c16: 6878 ldr r0, [r7, #4] - 8022c18: f7ff fd9c bl 8022754 - 8022c1c: 4603 mov r3, r0 - 8022c1e: b29a uxth r2, r3 - 8022c20: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 8022c24: 4413 add r3, r2 - 8022c26: b29b uxth r3, r3 - 8022c28: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 8022b80: 2100 movs r1, #0 + 8022b82: 6878 ldr r0, [r7, #4] + 8022b84: f7ff fd9c bl 80226c0 + 8022b88: 4603 mov r3, r0 + 8022b8a: b29a uxth r2, r3 + 8022b8c: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 8022b90: 4413 add r3, r2 + 8022b92: b29b uxth r3, r3 + 8022b94: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 lv_coord_t pad_top = lv_obj_get_style_pad_top(cont, LV_PART_MAIN) + border_widt; - 8022c2c: 2100 movs r1, #0 - 8022c2e: 6878 ldr r0, [r7, #4] - 8022c30: f7ff fd7d bl 802272e - 8022c34: 4603 mov r3, r0 - 8022c36: b29a uxth r2, r3 - 8022c38: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 8022c3c: 4413 add r3, r2 - 8022c3e: b29b uxth r3, r3 - 8022c40: 87fb strh r3, [r7, #62] ; 0x3e + 8022b98: 2100 movs r1, #0 + 8022b9a: 6878 ldr r0, [r7, #4] + 8022b9c: f7ff fd7d bl 802269a + 8022ba0: 4603 mov r3, r0 + 8022ba2: b29a uxth r2, r3 + 8022ba4: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 8022ba8: 4413 add r3, r2 + 8022baa: b29b uxth r3, r3 + 8022bac: 87fb strh r3, [r7, #62] ; 0x3e hint.grid_abs.x = pad_left + cont->coords.x1 - lv_obj_get_scroll_x(cont); - 8022c42: 687b ldr r3, [r7, #4] - 8022c44: f9b3 3014 ldrsh.w r3, [r3, #20] - 8022c48: b29a uxth r2, r3 - 8022c4a: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 - 8022c4e: 4413 add r3, r2 - 8022c50: b29c uxth r4, r3 - 8022c52: 6878 ldr r0, [r7, #4] - 8022c54: f7e8 fe8c bl 800b970 - 8022c58: 4603 mov r3, r0 - 8022c5a: b29b uxth r3, r3 - 8022c5c: 1ae3 subs r3, r4, r3 - 8022c5e: b29b uxth r3, r3 - 8022c60: b21b sxth r3, r3 - 8022c62: 82bb strh r3, [r7, #20] + 8022bae: 687b ldr r3, [r7, #4] + 8022bb0: f9b3 3014 ldrsh.w r3, [r3, #20] + 8022bb4: b29a uxth r2, r3 + 8022bb6: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 + 8022bba: 4413 add r3, r2 + 8022bbc: b29c uxth r4, r3 + 8022bbe: 6878 ldr r0, [r7, #4] + 8022bc0: f7e8 fea0 bl 800b904 + 8022bc4: 4603 mov r3, r0 + 8022bc6: b29b uxth r3, r3 + 8022bc8: 1ae3 subs r3, r4, r3 + 8022bca: b29b uxth r3, r3 + 8022bcc: b21b sxth r3, r3 + 8022bce: 82bb strh r3, [r7, #20] hint.grid_abs.y = pad_top + cont->coords.y1 - lv_obj_get_scroll_y(cont); - 8022c64: 687b ldr r3, [r7, #4] - 8022c66: f9b3 3016 ldrsh.w r3, [r3, #22] - 8022c6a: b29a uxth r2, r3 - 8022c6c: 8ffb ldrh r3, [r7, #62] ; 0x3e - 8022c6e: 4413 add r3, r2 - 8022c70: b29c uxth r4, r3 - 8022c72: 6878 ldr r0, [r7, #4] - 8022c74: f7e8 fe93 bl 800b99e - 8022c78: 4603 mov r3, r0 - 8022c7a: b29b uxth r3, r3 - 8022c7c: 1ae3 subs r3, r4, r3 - 8022c7e: b29b uxth r3, r3 - 8022c80: b21b sxth r3, r3 - 8022c82: 82fb strh r3, [r7, #22] + 8022bd0: 687b ldr r3, [r7, #4] + 8022bd2: f9b3 3016 ldrsh.w r3, [r3, #22] + 8022bd6: b29a uxth r2, r3 + 8022bd8: 8ffb ldrh r3, [r7, #62] ; 0x3e + 8022bda: 4413 add r3, r2 + 8022bdc: b29c uxth r4, r3 + 8022bde: 6878 ldr r0, [r7, #4] + 8022be0: f7e8 fea7 bl 800b932 + 8022be4: 4603 mov r3, r0 + 8022be6: b29b uxth r3, r3 + 8022be8: 1ae3 subs r3, r4, r3 + 8022bea: b29b uxth r3, r3 + 8022bec: b21b sxth r3, r3 + 8022bee: 82fb strh r3, [r7, #22] uint32_t i; for(i = 0; i < cont->spec_attr->child_cnt; i++) { - 8022c84: 2300 movs r3, #0 - 8022c86: 64fb str r3, [r7, #76] ; 0x4c - 8022c88: e012 b.n 8022cb0 + 8022bf0: 2300 movs r3, #0 + 8022bf2: 64fb str r3, [r7, #76] ; 0x4c + 8022bf4: e012 b.n 8022c1c lv_obj_t * item = cont->spec_attr->children[i]; - 8022c8a: 687b ldr r3, [r7, #4] - 8022c8c: 689b ldr r3, [r3, #8] - 8022c8e: 681a ldr r2, [r3, #0] - 8022c90: 6cfb ldr r3, [r7, #76] ; 0x4c - 8022c92: 009b lsls r3, r3, #2 - 8022c94: 4413 add r3, r2 - 8022c96: 681b ldr r3, [r3, #0] - 8022c98: 637b str r3, [r7, #52] ; 0x34 + 8022bf6: 687b ldr r3, [r7, #4] + 8022bf8: 689b ldr r3, [r3, #8] + 8022bfa: 681a ldr r2, [r3, #0] + 8022bfc: 6cfb ldr r3, [r7, #76] ; 0x4c + 8022bfe: 009b lsls r3, r3, #2 + 8022c00: 4413 add r3, r2 + 8022c02: 681b ldr r3, [r3, #0] + 8022c04: 637b str r3, [r7, #52] ; 0x34 item_repos(item, &c, &hint); - 8022c9a: f107 020c add.w r2, r7, #12 - 8022c9e: f107 0318 add.w r3, r7, #24 - 8022ca2: 4619 mov r1, r3 - 8022ca4: 6b78 ldr r0, [r7, #52] ; 0x34 - 8022ca6: f000 fb93 bl 80233d0 + 8022c06: f107 020c add.w r2, r7, #12 + 8022c0a: f107 0318 add.w r3, r7, #24 + 8022c0e: 4619 mov r1, r3 + 8022c10: 6b78 ldr r0, [r7, #52] ; 0x34 + 8022c12: f000 fb93 bl 802333c for(i = 0; i < cont->spec_attr->child_cnt; i++) { - 8022caa: 6cfb ldr r3, [r7, #76] ; 0x4c - 8022cac: 3301 adds r3, #1 - 8022cae: 64fb str r3, [r7, #76] ; 0x4c - 8022cb0: 687b ldr r3, [r7, #4] - 8022cb2: 689b ldr r3, [r3, #8] - 8022cb4: 685b ldr r3, [r3, #4] - 8022cb6: 6cfa ldr r2, [r7, #76] ; 0x4c - 8022cb8: 429a cmp r2, r3 - 8022cba: d3e6 bcc.n 8022c8a + 8022c16: 6cfb ldr r3, [r7, #76] ; 0x4c + 8022c18: 3301 adds r3, #1 + 8022c1a: 64fb str r3, [r7, #76] ; 0x4c + 8022c1c: 687b ldr r3, [r7, #4] + 8022c1e: 689b ldr r3, [r3, #8] + 8022c20: 685b ldr r3, [r3, #4] + 8022c22: 6cfa ldr r2, [r7, #76] ; 0x4c + 8022c24: 429a cmp r2, r3 + 8022c26: d3e6 bcc.n 8022bf6 } calc_free(&c); - 8022cbc: f107 0318 add.w r3, r7, #24 - 8022cc0: 4618 mov r0, r3 - 8022cc2: f000 f8d6 bl 8022e72 + 8022c28: f107 0318 add.w r3, r7, #24 + 8022c2c: 4618 mov r0, r3 + 8022c2e: f000 f8d6 bl 8022dde lv_coord_t w_set = lv_obj_get_style_width(cont, LV_PART_MAIN); - 8022cc6: 2100 movs r1, #0 - 8022cc8: 6878 ldr r0, [r7, #4] - 8022cca: f7ff fce4 bl 8022696 - 8022cce: 4603 mov r3, r0 - 8022cd0: 87bb strh r3, [r7, #60] ; 0x3c + 8022c32: 2100 movs r1, #0 + 8022c34: 6878 ldr r0, [r7, #4] + 8022c36: f7ff fce4 bl 8022602 + 8022c3a: 4603 mov r3, r0 + 8022c3c: 87bb strh r3, [r7, #60] ; 0x3c lv_coord_t h_set = lv_obj_get_style_height(cont, LV_PART_MAIN); - 8022cd2: 2100 movs r1, #0 - 8022cd4: 6878 ldr r0, [r7, #4] - 8022cd6: f7ff fcf1 bl 80226bc - 8022cda: 4603 mov r3, r0 - 8022cdc: 877b strh r3, [r7, #58] ; 0x3a + 8022c3e: 2100 movs r1, #0 + 8022c40: 6878 ldr r0, [r7, #4] + 8022c42: f7ff fcf1 bl 8022628 + 8022c46: 4603 mov r3, r0 + 8022c48: 877b strh r3, [r7, #58] ; 0x3a if(w_set == LV_SIZE_CONTENT || h_set == LV_SIZE_CONTENT) { - 8022cde: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c - 8022ce2: f242 72d1 movw r2, #10193 ; 0x27d1 - 8022ce6: 4293 cmp r3, r2 - 8022ce8: d005 beq.n 8022cf6 - 8022cea: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 8022cee: f242 72d1 movw r2, #10193 ; 0x27d1 - 8022cf2: 4293 cmp r3, r2 - 8022cf4: d102 bne.n 8022cfc + 8022c4a: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c + 8022c4e: f242 72d1 movw r2, #10193 ; 0x27d1 + 8022c52: 4293 cmp r3, r2 + 8022c54: d005 beq.n 8022c62 + 8022c56: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 8022c5a: f242 72d1 movw r2, #10193 ; 0x27d1 + 8022c5e: 4293 cmp r3, r2 + 8022c60: d102 bne.n 8022c68 lv_obj_refr_size(cont); - 8022cf6: 6878 ldr r0, [r7, #4] - 8022cf8: f7e6 fb1e bl 8009338 + 8022c62: 6878 ldr r0, [r7, #4] + 8022c64: f7e6 fb32 bl 80092cc } lv_event_send(cont, LV_EVENT_LAYOUT_CHANGED, NULL); - 8022cfc: 2200 movs r2, #0 - 8022cfe: 212b movs r1, #43 ; 0x2b - 8022d00: 6878 ldr r0, [r7, #4] - 8022d02: f7df fbbd bl 8002480 - 8022d06: e000 b.n 8022d0a + 8022c68: 2200 movs r2, #0 + 8022c6a: 212b movs r1, #43 ; 0x2b + 8022c6c: 6878 ldr r0, [r7, #4] + 8022c6e: f7df fbd1 bl 8002414 + 8022c72: e000 b.n 8022c76 if(col_templ == NULL || row_templ == NULL) return; - 8022d08: bf00 nop + 8022c74: bf00 nop LV_TRACE_LAYOUT("finished"); } - 8022d0a: 3754 adds r7, #84 ; 0x54 - 8022d0c: 46bd mov sp, r7 - 8022d0e: bd90 pop {r4, r7, pc} + 8022c76: 3754 adds r7, #84 ; 0x54 + 8022c78: 46bd mov sp, r7 + 8022c7a: bd90 pop {r4, r7, pc} -08022d10 : +08022c7c : * @param cont an object that has a grid * @param calc store the calculated cells sizes here * @note `_lv_grid_calc_free(calc_out)` needs to be called when `calc_out` is not needed anymore */ static void calc(lv_obj_t * cont, _lv_grid_calc_t * calc_out) { - 8022d10: b5f0 push {r4, r5, r6, r7, lr} - 8022d12: b08d sub sp, #52 ; 0x34 - 8022d14: af04 add r7, sp, #16 - 8022d16: 6078 str r0, [r7, #4] - 8022d18: 6039 str r1, [r7, #0] + 8022c7c: b5f0 push {r4, r5, r6, r7, lr} + 8022c7e: b08d sub sp, #52 ; 0x34 + 8022c80: af04 add r7, sp, #16 + 8022c82: 6078 str r0, [r7, #4] + 8022c84: 6039 str r1, [r7, #0] if(lv_obj_get_child(cont, 0) == NULL) { - 8022d1a: 2100 movs r1, #0 - 8022d1c: 6878 ldr r0, [r7, #4] - 8022d1e: f7ec fd05 bl 800f72c - 8022d22: 4603 mov r3, r0 - 8022d24: 2b00 cmp r3, #0 - 8022d26: d104 bne.n 8022d32 + 8022c86: 2100 movs r1, #0 + 8022c88: 6878 ldr r0, [r7, #4] + 8022c8a: f7ec fd05 bl 800f698 + 8022c8e: 4603 mov r3, r0 + 8022c90: 2b00 cmp r3, #0 + 8022c92: d104 bne.n 8022c9e lv_memset_00(calc_out, sizeof(_lv_grid_calc_t)); - 8022d28: 211c movs r1, #28 - 8022d2a: 6838 ldr r0, [r7, #0] - 8022d2c: f010 fa10 bl 8033150 + 8022c94: 211c movs r1, #28 + 8022c96: 6838 ldr r0, [r7, #0] + 8022c98: f010 fa10 bl 80330bc return; - 8022d30: e09c b.n 8022e6c + 8022c9c: e09c b.n 8022dd8 } calc_rows(cont, calc_out); - 8022d32: 6839 ldr r1, [r7, #0] - 8022d34: 6878 ldr r0, [r7, #4] - 8022d36: f000 fa05 bl 8023144 + 8022c9e: 6839 ldr r1, [r7, #0] + 8022ca0: 6878 ldr r0, [r7, #4] + 8022ca2: f000 fa05 bl 80230b0 calc_cols(cont, calc_out); - 8022d3a: 6839 ldr r1, [r7, #0] - 8022d3c: 6878 ldr r0, [r7, #4] - 8022d3e: f000 f8b5 bl 8022eac + 8022ca6: 6839 ldr r1, [r7, #0] + 8022ca8: 6878 ldr r0, [r7, #4] + 8022caa: f000 f8b5 bl 8022e18 lv_coord_t col_gap = lv_obj_get_style_pad_column(cont, LV_PART_MAIN); - 8022d42: 2100 movs r1, #0 - 8022d44: 6878 ldr r0, [r7, #4] - 8022d46: f7ff fd2b bl 80227a0 - 8022d4a: 4603 mov r3, r0 - 8022d4c: 83fb strh r3, [r7, #30] + 8022cae: 2100 movs r1, #0 + 8022cb0: 6878 ldr r0, [r7, #4] + 8022cb2: f7ff fd2b bl 802270c + 8022cb6: 4603 mov r3, r0 + 8022cb8: 83fb strh r3, [r7, #30] lv_coord_t row_gap = lv_obj_get_style_pad_row(cont, LV_PART_MAIN); - 8022d4e: 2100 movs r1, #0 - 8022d50: 6878 ldr r0, [r7, #4] - 8022d52: f7ff fd12 bl 802277a - 8022d56: 4603 mov r3, r0 - 8022d58: 83bb strh r3, [r7, #28] + 8022cba: 2100 movs r1, #0 + 8022cbc: 6878 ldr r0, [r7, #4] + 8022cbe: f7ff fd12 bl 80226e6 + 8022cc2: 4603 mov r3, r0 + 8022cc4: 83bb strh r3, [r7, #28] bool rev = lv_obj_get_style_base_dir(cont, LV_PART_MAIN) == LV_BASE_DIR_RTL ? true : false; - 8022d5a: 2100 movs r1, #0 - 8022d5c: 6878 ldr r0, [r7, #4] - 8022d5e: f7ff fd45 bl 80227ec - 8022d62: 4603 mov r3, r0 - 8022d64: 2b01 cmp r3, #1 - 8022d66: bf0c ite eq - 8022d68: 2301 moveq r3, #1 - 8022d6a: 2300 movne r3, #0 - 8022d6c: 76fb strb r3, [r7, #27] + 8022cc6: 2100 movs r1, #0 + 8022cc8: 6878 ldr r0, [r7, #4] + 8022cca: f7ff fd45 bl 8022758 + 8022cce: 4603 mov r3, r0 + 8022cd0: 2b01 cmp r3, #1 + 8022cd2: bf0c ite eq + 8022cd4: 2301 moveq r3, #1 + 8022cd6: 2300 movne r3, #0 + 8022cd8: 76fb strb r3, [r7, #27] lv_coord_t w_set = lv_obj_get_style_width(cont, LV_PART_MAIN); - 8022d6e: 2100 movs r1, #0 - 8022d70: 6878 ldr r0, [r7, #4] - 8022d72: f7ff fc90 bl 8022696 - 8022d76: 4603 mov r3, r0 - 8022d78: 833b strh r3, [r7, #24] + 8022cda: 2100 movs r1, #0 + 8022cdc: 6878 ldr r0, [r7, #4] + 8022cde: f7ff fc90 bl 8022602 + 8022ce2: 4603 mov r3, r0 + 8022ce4: 833b strh r3, [r7, #24] lv_coord_t h_set = lv_obj_get_style_height(cont, LV_PART_MAIN); - 8022d7a: 2100 movs r1, #0 - 8022d7c: 6878 ldr r0, [r7, #4] - 8022d7e: f7ff fc9d bl 80226bc - 8022d82: 4603 mov r3, r0 - 8022d84: 82fb strh r3, [r7, #22] + 8022ce6: 2100 movs r1, #0 + 8022ce8: 6878 ldr r0, [r7, #4] + 8022cea: f7ff fc9d bl 8022628 + 8022cee: 4603 mov r3, r0 + 8022cf0: 82fb strh r3, [r7, #22] bool auto_w = (w_set == LV_SIZE_CONTENT && !cont->w_layout) ? true : false; - 8022d86: f9b7 3018 ldrsh.w r3, [r7, #24] - 8022d8a: f242 72d1 movw r2, #10193 ; 0x27d1 - 8022d8e: 4293 cmp r3, r2 - 8022d90: d109 bne.n 8022da6 - 8022d92: 687b ldr r3, [r7, #4] - 8022d94: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 8022d98: f003 0304 and.w r3, r3, #4 - 8022d9c: b2db uxtb r3, r3 - 8022d9e: 2b00 cmp r3, #0 - 8022da0: d101 bne.n 8022da6 - 8022da2: 2301 movs r3, #1 - 8022da4: e000 b.n 8022da8 - 8022da6: 2300 movs r3, #0 - 8022da8: 757b strb r3, [r7, #21] - 8022daa: 7d7b ldrb r3, [r7, #21] - 8022dac: f003 0301 and.w r3, r3, #1 - 8022db0: 757b strb r3, [r7, #21] + 8022cf2: f9b7 3018 ldrsh.w r3, [r7, #24] + 8022cf6: f242 72d1 movw r2, #10193 ; 0x27d1 + 8022cfa: 4293 cmp r3, r2 + 8022cfc: d109 bne.n 8022d12 + 8022cfe: 687b ldr r3, [r7, #4] + 8022d00: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 8022d04: f003 0304 and.w r3, r3, #4 + 8022d08: b2db uxtb r3, r3 + 8022d0a: 2b00 cmp r3, #0 + 8022d0c: d101 bne.n 8022d12 + 8022d0e: 2301 movs r3, #1 + 8022d10: e000 b.n 8022d14 + 8022d12: 2300 movs r3, #0 + 8022d14: 757b strb r3, [r7, #21] + 8022d16: 7d7b ldrb r3, [r7, #21] + 8022d18: f003 0301 and.w r3, r3, #1 + 8022d1c: 757b strb r3, [r7, #21] lv_coord_t cont_w = lv_obj_get_content_width(cont); - 8022db2: 6878 ldr r0, [r7, #4] - 8022db4: f7e7 f9e4 bl 800a180 - 8022db8: 4603 mov r3, r0 - 8022dba: 827b strh r3, [r7, #18] + 8022d1e: 6878 ldr r0, [r7, #4] + 8022d20: f7e7 f9f8 bl 800a114 + 8022d24: 4603 mov r3, r0 + 8022d26: 827b strh r3, [r7, #18] calc_out->grid_w = grid_align(cont_w, auto_w, get_grid_col_align(cont), col_gap, calc_out->col_num, calc_out->w, - 8022dbc: 6878 ldr r0, [r7, #4] - 8022dbe: f7ff fe73 bl 8022aa8 - 8022dc2: 4603 mov r3, r0 - 8022dc4: 469c mov ip, r3 - 8022dc6: 683b ldr r3, [r7, #0] - 8022dc8: 691b ldr r3, [r3, #16] - 8022dca: 683a ldr r2, [r7, #0] - 8022dcc: 6892 ldr r2, [r2, #8] - 8022dce: 6839 ldr r1, [r7, #0] - 8022dd0: 6809 ldr r1, [r1, #0] - 8022dd2: f9b7 601e ldrsh.w r6, [r7, #30] - 8022dd6: 7d7d ldrb r5, [r7, #21] - 8022dd8: f9b7 4012 ldrsh.w r4, [r7, #18] - 8022ddc: 7ef8 ldrb r0, [r7, #27] - 8022dde: 9003 str r0, [sp, #12] - 8022de0: 9102 str r1, [sp, #8] - 8022de2: 9201 str r2, [sp, #4] - 8022de4: 9300 str r3, [sp, #0] - 8022de6: 4633 mov r3, r6 - 8022de8: 4662 mov r2, ip - 8022dea: 4629 mov r1, r5 - 8022dec: 4620 mov r0, r4 - 8022dee: f000 fd99 bl 8023924 - 8022df2: 4603 mov r3, r0 - 8022df4: 461a mov r2, r3 - 8022df6: 683b ldr r3, [r7, #0] - 8022df8: 831a strh r2, [r3, #24] + 8022d28: 6878 ldr r0, [r7, #4] + 8022d2a: f7ff fe73 bl 8022a14 + 8022d2e: 4603 mov r3, r0 + 8022d30: 469c mov ip, r3 + 8022d32: 683b ldr r3, [r7, #0] + 8022d34: 691b ldr r3, [r3, #16] + 8022d36: 683a ldr r2, [r7, #0] + 8022d38: 6892 ldr r2, [r2, #8] + 8022d3a: 6839 ldr r1, [r7, #0] + 8022d3c: 6809 ldr r1, [r1, #0] + 8022d3e: f9b7 601e ldrsh.w r6, [r7, #30] + 8022d42: 7d7d ldrb r5, [r7, #21] + 8022d44: f9b7 4012 ldrsh.w r4, [r7, #18] + 8022d48: 7ef8 ldrb r0, [r7, #27] + 8022d4a: 9003 str r0, [sp, #12] + 8022d4c: 9102 str r1, [sp, #8] + 8022d4e: 9201 str r2, [sp, #4] + 8022d50: 9300 str r3, [sp, #0] + 8022d52: 4633 mov r3, r6 + 8022d54: 4662 mov r2, ip + 8022d56: 4629 mov r1, r5 + 8022d58: 4620 mov r0, r4 + 8022d5a: f000 fd99 bl 8023890 + 8022d5e: 4603 mov r3, r0 + 8022d60: 461a mov r2, r3 + 8022d62: 683b ldr r3, [r7, #0] + 8022d64: 831a strh r2, [r3, #24] calc_out->x, rev); bool auto_h = (h_set == LV_SIZE_CONTENT && !cont->h_layout) ? true : false; - 8022dfa: f9b7 3016 ldrsh.w r3, [r7, #22] - 8022dfe: f242 72d1 movw r2, #10193 ; 0x27d1 - 8022e02: 4293 cmp r3, r2 - 8022e04: d109 bne.n 8022e1a - 8022e06: 687b ldr r3, [r7, #4] - 8022e08: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 8022e0c: f003 0302 and.w r3, r3, #2 - 8022e10: b2db uxtb r3, r3 - 8022e12: 2b00 cmp r3, #0 - 8022e14: d101 bne.n 8022e1a - 8022e16: 2301 movs r3, #1 - 8022e18: e000 b.n 8022e1c - 8022e1a: 2300 movs r3, #0 - 8022e1c: 747b strb r3, [r7, #17] - 8022e1e: 7c7b ldrb r3, [r7, #17] - 8022e20: f003 0301 and.w r3, r3, #1 - 8022e24: 747b strb r3, [r7, #17] + 8022d66: f9b7 3016 ldrsh.w r3, [r7, #22] + 8022d6a: f242 72d1 movw r2, #10193 ; 0x27d1 + 8022d6e: 4293 cmp r3, r2 + 8022d70: d109 bne.n 8022d86 + 8022d72: 687b ldr r3, [r7, #4] + 8022d74: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 8022d78: f003 0302 and.w r3, r3, #2 + 8022d7c: b2db uxtb r3, r3 + 8022d7e: 2b00 cmp r3, #0 + 8022d80: d101 bne.n 8022d86 + 8022d82: 2301 movs r3, #1 + 8022d84: e000 b.n 8022d88 + 8022d86: 2300 movs r3, #0 + 8022d88: 747b strb r3, [r7, #17] + 8022d8a: 7c7b ldrb r3, [r7, #17] + 8022d8c: f003 0301 and.w r3, r3, #1 + 8022d90: 747b strb r3, [r7, #17] lv_coord_t cont_h = lv_obj_get_content_height(cont); - 8022e26: 6878 ldr r0, [r7, #4] - 8022e28: f7e7 f9d5 bl 800a1d6 - 8022e2c: 4603 mov r3, r0 - 8022e2e: 81fb strh r3, [r7, #14] + 8022d92: 6878 ldr r0, [r7, #4] + 8022d94: f7e7 f9e9 bl 800a16a + 8022d98: 4603 mov r3, r0 + 8022d9a: 81fb strh r3, [r7, #14] calc_out->grid_h = grid_align(cont_h, auto_h, get_grid_row_align(cont), row_gap, calc_out->row_num, calc_out->h, - 8022e30: 6878 ldr r0, [r7, #4] - 8022e32: f7ff fe46 bl 8022ac2 - 8022e36: 4603 mov r3, r0 - 8022e38: 469c mov ip, r3 - 8022e3a: 683b ldr r3, [r7, #0] - 8022e3c: 695b ldr r3, [r3, #20] - 8022e3e: 683a ldr r2, [r7, #0] - 8022e40: 68d2 ldr r2, [r2, #12] - 8022e42: 6839 ldr r1, [r7, #0] - 8022e44: 6849 ldr r1, [r1, #4] - 8022e46: f9b7 501c ldrsh.w r5, [r7, #28] - 8022e4a: 7c7c ldrb r4, [r7, #17] - 8022e4c: f9b7 000e ldrsh.w r0, [r7, #14] - 8022e50: 2600 movs r6, #0 - 8022e52: 9603 str r6, [sp, #12] - 8022e54: 9102 str r1, [sp, #8] - 8022e56: 9201 str r2, [sp, #4] - 8022e58: 9300 str r3, [sp, #0] - 8022e5a: 462b mov r3, r5 - 8022e5c: 4662 mov r2, ip - 8022e5e: 4621 mov r1, r4 - 8022e60: f000 fd60 bl 8023924 - 8022e64: 4603 mov r3, r0 - 8022e66: 461a mov r2, r3 - 8022e68: 683b ldr r3, [r7, #0] - 8022e6a: 835a strh r2, [r3, #26] + 8022d9c: 6878 ldr r0, [r7, #4] + 8022d9e: f7ff fe46 bl 8022a2e + 8022da2: 4603 mov r3, r0 + 8022da4: 469c mov ip, r3 + 8022da6: 683b ldr r3, [r7, #0] + 8022da8: 695b ldr r3, [r3, #20] + 8022daa: 683a ldr r2, [r7, #0] + 8022dac: 68d2 ldr r2, [r2, #12] + 8022dae: 6839 ldr r1, [r7, #0] + 8022db0: 6849 ldr r1, [r1, #4] + 8022db2: f9b7 501c ldrsh.w r5, [r7, #28] + 8022db6: 7c7c ldrb r4, [r7, #17] + 8022db8: f9b7 000e ldrsh.w r0, [r7, #14] + 8022dbc: 2600 movs r6, #0 + 8022dbe: 9603 str r6, [sp, #12] + 8022dc0: 9102 str r1, [sp, #8] + 8022dc2: 9201 str r2, [sp, #4] + 8022dc4: 9300 str r3, [sp, #0] + 8022dc6: 462b mov r3, r5 + 8022dc8: 4662 mov r2, ip + 8022dca: 4621 mov r1, r4 + 8022dcc: f000 fd60 bl 8023890 + 8022dd0: 4603 mov r3, r0 + 8022dd2: 461a mov r2, r3 + 8022dd4: 683b ldr r3, [r7, #0] + 8022dd6: 835a strh r2, [r3, #26] calc_out->y, false); LV_ASSERT_MEM_INTEGRITY(); } - 8022e6c: 3724 adds r7, #36 ; 0x24 - 8022e6e: 46bd mov sp, r7 - 8022e70: bdf0 pop {r4, r5, r6, r7, pc} + 8022dd8: 3724 adds r7, #36 ; 0x24 + 8022dda: 46bd mov sp, r7 + 8022ddc: bdf0 pop {r4, r5, r6, r7, pc} -08022e72 : +08022dde : /** * Free the a grid calculation's data * @param calc pointer to the calculated grid cell coordinates */ static void calc_free(_lv_grid_calc_t * calc) { - 8022e72: b580 push {r7, lr} - 8022e74: b082 sub sp, #8 - 8022e76: af00 add r7, sp, #0 - 8022e78: 6078 str r0, [r7, #4] + 8022dde: b580 push {r7, lr} + 8022de0: b082 sub sp, #8 + 8022de2: af00 add r7, sp, #0 + 8022de4: 6078 str r0, [r7, #4] lv_mem_buf_release(calc->x); - 8022e7a: 687b ldr r3, [r7, #4] - 8022e7c: 681b ldr r3, [r3, #0] - 8022e7e: 4618 mov r0, r3 - 8022e80: f00f fe6a bl 8032b58 + 8022de6: 687b ldr r3, [r7, #4] + 8022de8: 681b ldr r3, [r3, #0] + 8022dea: 4618 mov r0, r3 + 8022dec: f00f fe6a bl 8032ac4 lv_mem_buf_release(calc->y); - 8022e84: 687b ldr r3, [r7, #4] - 8022e86: 685b ldr r3, [r3, #4] - 8022e88: 4618 mov r0, r3 - 8022e8a: f00f fe65 bl 8032b58 + 8022df0: 687b ldr r3, [r7, #4] + 8022df2: 685b ldr r3, [r3, #4] + 8022df4: 4618 mov r0, r3 + 8022df6: f00f fe65 bl 8032ac4 lv_mem_buf_release(calc->w); - 8022e8e: 687b ldr r3, [r7, #4] - 8022e90: 689b ldr r3, [r3, #8] - 8022e92: 4618 mov r0, r3 - 8022e94: f00f fe60 bl 8032b58 + 8022dfa: 687b ldr r3, [r7, #4] + 8022dfc: 689b ldr r3, [r3, #8] + 8022dfe: 4618 mov r0, r3 + 8022e00: f00f fe60 bl 8032ac4 lv_mem_buf_release(calc->h); - 8022e98: 687b ldr r3, [r7, #4] - 8022e9a: 68db ldr r3, [r3, #12] - 8022e9c: 4618 mov r0, r3 - 8022e9e: f00f fe5b bl 8032b58 + 8022e04: 687b ldr r3, [r7, #4] + 8022e06: 68db ldr r3, [r3, #12] + 8022e08: 4618 mov r0, r3 + 8022e0a: f00f fe5b bl 8032ac4 } - 8022ea2: bf00 nop - 8022ea4: 3708 adds r7, #8 - 8022ea6: 46bd mov sp, r7 - 8022ea8: bd80 pop {r7, pc} + 8022e0e: bf00 nop + 8022e10: 3708 adds r7, #8 + 8022e12: 46bd mov sp, r7 + 8022e14: bd80 pop {r7, pc} ... -08022eac : +08022e18 : static void calc_cols(lv_obj_t * cont, _lv_grid_calc_t * c) { - 8022eac: b580 push {r7, lr} - 8022eae: b090 sub sp, #64 ; 0x40 - 8022eb0: af00 add r7, sp, #0 - 8022eb2: 6078 str r0, [r7, #4] - 8022eb4: 6039 str r1, [r7, #0] + 8022e18: b580 push {r7, lr} + 8022e1a: b090 sub sp, #64 ; 0x40 + 8022e1c: af00 add r7, sp, #0 + 8022e1e: 6078 str r0, [r7, #4] + 8022e20: 6039 str r1, [r7, #0] const lv_coord_t * col_templ = get_col_dsc(cont); - 8022eb6: 6878 ldr r0, [r7, #4] - 8022eb8: f7ff fd88 bl 80229cc - 8022ebc: 6238 str r0, [r7, #32] + 8022e22: 6878 ldr r0, [r7, #4] + 8022e24: f7ff fd88 bl 8022938 + 8022e28: 6238 str r0, [r7, #32] lv_coord_t cont_w = lv_obj_get_content_width(cont); - 8022ebe: 6878 ldr r0, [r7, #4] - 8022ec0: f7e7 f95e bl 800a180 - 8022ec4: 4603 mov r3, r0 - 8022ec6: 83fb strh r3, [r7, #30] + 8022e2a: 6878 ldr r0, [r7, #4] + 8022e2c: f7e7 f972 bl 800a114 + 8022e30: 4603 mov r3, r0 + 8022e32: 83fb strh r3, [r7, #30] c->col_num = count_tracks(col_templ); - 8022ec8: 6a38 ldr r0, [r7, #32] - 8022eca: f000 fe45 bl 8023b58 - 8022ece: 4602 mov r2, r0 - 8022ed0: 683b ldr r3, [r7, #0] - 8022ed2: 611a str r2, [r3, #16] + 8022e34: 6a38 ldr r0, [r7, #32] + 8022e36: f000 fe45 bl 8023ac4 + 8022e3a: 4602 mov r2, r0 + 8022e3c: 683b ldr r3, [r7, #0] + 8022e3e: 611a str r2, [r3, #16] c->x = lv_mem_buf_get(sizeof(lv_coord_t) * c->col_num); - 8022ed4: 683b ldr r3, [r7, #0] - 8022ed6: 691b ldr r3, [r3, #16] - 8022ed8: 005b lsls r3, r3, #1 - 8022eda: 4618 mov r0, r3 - 8022edc: f00f fd90 bl 8032a00 - 8022ee0: 4602 mov r2, r0 - 8022ee2: 683b ldr r3, [r7, #0] - 8022ee4: 601a str r2, [r3, #0] + 8022e40: 683b ldr r3, [r7, #0] + 8022e42: 691b ldr r3, [r3, #16] + 8022e44: 005b lsls r3, r3, #1 + 8022e46: 4618 mov r0, r3 + 8022e48: f00f fd90 bl 803296c + 8022e4c: 4602 mov r2, r0 + 8022e4e: 683b ldr r3, [r7, #0] + 8022e50: 601a str r2, [r3, #0] c->w = lv_mem_buf_get(sizeof(lv_coord_t) * c->col_num); - 8022ee6: 683b ldr r3, [r7, #0] - 8022ee8: 691b ldr r3, [r3, #16] - 8022eea: 005b lsls r3, r3, #1 - 8022eec: 4618 mov r0, r3 - 8022eee: f00f fd87 bl 8032a00 - 8022ef2: 4602 mov r2, r0 - 8022ef4: 683b ldr r3, [r7, #0] - 8022ef6: 609a str r2, [r3, #8] + 8022e52: 683b ldr r3, [r7, #0] + 8022e54: 691b ldr r3, [r3, #16] + 8022e56: 005b lsls r3, r3, #1 + 8022e58: 4618 mov r0, r3 + 8022e5a: f00f fd87 bl 803296c + 8022e5e: 4602 mov r2, r0 + 8022e60: 683b ldr r3, [r7, #0] + 8022e62: 609a str r2, [r3, #8] /*Set sizes for CONTENT cells*/ uint32_t i; for(i = 0; i < c->col_num; i++) { - 8022ef8: 2300 movs r3, #0 - 8022efa: 63fb str r3, [r7, #60] ; 0x3c - 8022efc: e064 b.n 8022fc8 + 8022e64: 2300 movs r3, #0 + 8022e66: 63fb str r3, [r7, #60] ; 0x3c + 8022e68: e064 b.n 8022f34 lv_coord_t size = LV_COORD_MIN; - 8022efe: f24e 0301 movw r3, #57345 ; 0xe001 - 8022f02: 877b strh r3, [r7, #58] ; 0x3a + 8022e6a: f24e 0301 movw r3, #57345 ; 0xe001 + 8022e6e: 877b strh r3, [r7, #58] ; 0x3a if(IS_CONTENT(col_templ[i])) { - 8022f04: 6bfb ldr r3, [r7, #60] ; 0x3c - 8022f06: 005b lsls r3, r3, #1 - 8022f08: 6a3a ldr r2, [r7, #32] - 8022f0a: 4413 add r3, r2 - 8022f0c: f9b3 3000 ldrsh.w r3, [r3] - 8022f10: f641 729a movw r2, #8090 ; 0x1f9a - 8022f14: 4293 cmp r3, r2 - 8022f16: d154 bne.n 8022fc2 + 8022e70: 6bfb ldr r3, [r7, #60] ; 0x3c + 8022e72: 005b lsls r3, r3, #1 + 8022e74: 6a3a ldr r2, [r7, #32] + 8022e76: 4413 add r3, r2 + 8022e78: f9b3 3000 ldrsh.w r3, [r3] + 8022e7c: f641 729a movw r2, #8090 ; 0x1f9a + 8022e80: 4293 cmp r3, r2 + 8022e82: d154 bne.n 8022f2e /*Check the size of children of this cell*/ uint32_t ci; for(ci = 0; ci < lv_obj_get_child_cnt(cont); ci++) { - 8022f18: 2300 movs r3, #0 - 8022f1a: 637b str r3, [r7, #52] ; 0x34 - 8022f1c: e037 b.n 8022f8e + 8022e84: 2300 movs r3, #0 + 8022e86: 637b str r3, [r7, #52] ; 0x34 + 8022e88: e037 b.n 8022efa lv_obj_t * item = lv_obj_get_child(cont, ci); - 8022f1e: 6b7b ldr r3, [r7, #52] ; 0x34 - 8022f20: 4619 mov r1, r3 - 8022f22: 6878 ldr r0, [r7, #4] - 8022f24: f7ec fc02 bl 800f72c - 8022f28: 6138 str r0, [r7, #16] + 8022e8a: 6b7b ldr r3, [r7, #52] ; 0x34 + 8022e8c: 4619 mov r1, r3 + 8022e8e: 6878 ldr r0, [r7, #4] + 8022e90: f7ec fc02 bl 800f698 + 8022e94: 6138 str r0, [r7, #16] if(lv_obj_has_flag_any(item, LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 8022f2a: 4985 ldr r1, [pc, #532] ; (8023140 ) - 8022f2c: 6938 ldr r0, [r7, #16] - 8022f2e: f7e3 fc3c bl 80067aa - 8022f32: 4603 mov r3, r0 - 8022f34: 2b00 cmp r3, #0 - 8022f36: d122 bne.n 8022f7e + 8022e96: 4985 ldr r1, [pc, #532] ; (80230ac ) + 8022e98: 6938 ldr r0, [r7, #16] + 8022e9a: f7e3 fc50 bl 800673e + 8022e9e: 4603 mov r3, r0 + 8022ea0: 2b00 cmp r3, #0 + 8022ea2: d122 bne.n 8022eea uint32_t col_span = get_col_span(item); - 8022f38: 6938 ldr r0, [r7, #16] - 8022f3a: f7ff fd7d bl 8022a38 - 8022f3e: 4603 mov r3, r0 - 8022f40: 60fb str r3, [r7, #12] + 8022ea4: 6938 ldr r0, [r7, #16] + 8022ea6: f7ff fd7d bl 80229a4 + 8022eaa: 4603 mov r3, r0 + 8022eac: 60fb str r3, [r7, #12] if(col_span != 1) continue; - 8022f42: 68fb ldr r3, [r7, #12] - 8022f44: 2b01 cmp r3, #1 - 8022f46: d11c bne.n 8022f82 + 8022eae: 68fb ldr r3, [r7, #12] + 8022eb0: 2b01 cmp r3, #1 + 8022eb2: d11c bne.n 8022eee uint32_t col_pos = get_col_pos(item); - 8022f48: 6938 ldr r0, [r7, #16] - 8022f4a: f7ff fd59 bl 8022a00 - 8022f4e: 4603 mov r3, r0 - 8022f50: 60bb str r3, [r7, #8] + 8022eb4: 6938 ldr r0, [r7, #16] + 8022eb6: f7ff fd59 bl 802296c + 8022eba: 4603 mov r3, r0 + 8022ebc: 60bb str r3, [r7, #8] if(col_pos != i) continue; - 8022f52: 68ba ldr r2, [r7, #8] - 8022f54: 6bfb ldr r3, [r7, #60] ; 0x3c - 8022f56: 429a cmp r2, r3 - 8022f58: d115 bne.n 8022f86 + 8022ebe: 68ba ldr r2, [r7, #8] + 8022ec0: 6bfb ldr r3, [r7, #60] ; 0x3c + 8022ec2: 429a cmp r2, r3 + 8022ec4: d115 bne.n 8022ef2 size = LV_MAX(size, lv_obj_get_width(item)); - 8022f5a: 6938 ldr r0, [r7, #16] - 8022f5c: f7e7 f8f4 bl 800a148 - 8022f60: 4603 mov r3, r0 - 8022f62: 461a mov r2, r3 - 8022f64: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 8022f68: 4293 cmp r3, r2 - 8022f6a: dc04 bgt.n 8022f76 - 8022f6c: 6938 ldr r0, [r7, #16] - 8022f6e: f7e7 f8eb bl 800a148 - 8022f72: 4603 mov r3, r0 - 8022f74: e001 b.n 8022f7a - 8022f76: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 8022f7a: 877b strh r3, [r7, #58] ; 0x3a - 8022f7c: e004 b.n 8022f88 + 8022ec6: 6938 ldr r0, [r7, #16] + 8022ec8: f7e7 f908 bl 800a0dc + 8022ecc: 4603 mov r3, r0 + 8022ece: 461a mov r2, r3 + 8022ed0: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 8022ed4: 4293 cmp r3, r2 + 8022ed6: dc04 bgt.n 8022ee2 + 8022ed8: 6938 ldr r0, [r7, #16] + 8022eda: f7e7 f8ff bl 800a0dc + 8022ede: 4603 mov r3, r0 + 8022ee0: e001 b.n 8022ee6 + 8022ee2: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 8022ee6: 877b strh r3, [r7, #58] ; 0x3a + 8022ee8: e004 b.n 8022ef4 if(lv_obj_has_flag_any(item, LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 8022f7e: bf00 nop - 8022f80: e002 b.n 8022f88 + 8022eea: bf00 nop + 8022eec: e002 b.n 8022ef4 if(col_span != 1) continue; - 8022f82: bf00 nop - 8022f84: e000 b.n 8022f88 + 8022eee: bf00 nop + 8022ef0: e000 b.n 8022ef4 if(col_pos != i) continue; - 8022f86: bf00 nop + 8022ef2: bf00 nop for(ci = 0; ci < lv_obj_get_child_cnt(cont); ci++) { - 8022f88: 6b7b ldr r3, [r7, #52] ; 0x34 - 8022f8a: 3301 adds r3, #1 - 8022f8c: 637b str r3, [r7, #52] ; 0x34 - 8022f8e: 6878 ldr r0, [r7, #4] - 8022f90: f7ec fbfe bl 800f790 - 8022f94: 4602 mov r2, r0 - 8022f96: 6b7b ldr r3, [r7, #52] ; 0x34 - 8022f98: 4293 cmp r3, r2 - 8022f9a: d3c0 bcc.n 8022f1e + 8022ef4: 6b7b ldr r3, [r7, #52] ; 0x34 + 8022ef6: 3301 adds r3, #1 + 8022ef8: 637b str r3, [r7, #52] ; 0x34 + 8022efa: 6878 ldr r0, [r7, #4] + 8022efc: f7ec fbfe bl 800f6fc + 8022f00: 4602 mov r2, r0 + 8022f02: 6b7b ldr r3, [r7, #52] ; 0x34 + 8022f04: 4293 cmp r3, r2 + 8022f06: d3c0 bcc.n 8022e8a } if(size >= 0) c->w[i] = size; - 8022f9c: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 8022fa0: 2b00 cmp r3, #0 - 8022fa2: db07 blt.n 8022fb4 - 8022fa4: 683b ldr r3, [r7, #0] - 8022fa6: 689a ldr r2, [r3, #8] - 8022fa8: 6bfb ldr r3, [r7, #60] ; 0x3c - 8022faa: 005b lsls r3, r3, #1 - 8022fac: 4413 add r3, r2 - 8022fae: 8f7a ldrh r2, [r7, #58] ; 0x3a - 8022fb0: 801a strh r2, [r3, #0] - 8022fb2: e006 b.n 8022fc2 + 8022f08: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 8022f0c: 2b00 cmp r3, #0 + 8022f0e: db07 blt.n 8022f20 + 8022f10: 683b ldr r3, [r7, #0] + 8022f12: 689a ldr r2, [r3, #8] + 8022f14: 6bfb ldr r3, [r7, #60] ; 0x3c + 8022f16: 005b lsls r3, r3, #1 + 8022f18: 4413 add r3, r2 + 8022f1a: 8f7a ldrh r2, [r7, #58] ; 0x3a + 8022f1c: 801a strh r2, [r3, #0] + 8022f1e: e006 b.n 8022f2e else c->w[i] = 0; - 8022fb4: 683b ldr r3, [r7, #0] - 8022fb6: 689a ldr r2, [r3, #8] - 8022fb8: 6bfb ldr r3, [r7, #60] ; 0x3c - 8022fba: 005b lsls r3, r3, #1 - 8022fbc: 4413 add r3, r2 - 8022fbe: 2200 movs r2, #0 - 8022fc0: 801a strh r2, [r3, #0] + 8022f20: 683b ldr r3, [r7, #0] + 8022f22: 689a ldr r2, [r3, #8] + 8022f24: 6bfb ldr r3, [r7, #60] ; 0x3c + 8022f26: 005b lsls r3, r3, #1 + 8022f28: 4413 add r3, r2 + 8022f2a: 2200 movs r2, #0 + 8022f2c: 801a strh r2, [r3, #0] for(i = 0; i < c->col_num; i++) { - 8022fc2: 6bfb ldr r3, [r7, #60] ; 0x3c - 8022fc4: 3301 adds r3, #1 - 8022fc6: 63fb str r3, [r7, #60] ; 0x3c - 8022fc8: 683b ldr r3, [r7, #0] - 8022fca: 691b ldr r3, [r3, #16] - 8022fcc: 6bfa ldr r2, [r7, #60] ; 0x3c - 8022fce: 429a cmp r2, r3 - 8022fd0: d395 bcc.n 8022efe + 8022f2e: 6bfb ldr r3, [r7, #60] ; 0x3c + 8022f30: 3301 adds r3, #1 + 8022f32: 63fb str r3, [r7, #60] ; 0x3c + 8022f34: 683b ldr r3, [r7, #0] + 8022f36: 691b ldr r3, [r3, #16] + 8022f38: 6bfa ldr r2, [r7, #60] ; 0x3c + 8022f3a: 429a cmp r2, r3 + 8022f3c: d395 bcc.n 8022e6a } } uint32_t col_fr_cnt = 0; - 8022fd2: 2300 movs r3, #0 - 8022fd4: 633b str r3, [r7, #48] ; 0x30 + 8022f3e: 2300 movs r3, #0 + 8022f40: 633b str r3, [r7, #48] ; 0x30 lv_coord_t grid_w = 0; - 8022fd6: 2300 movs r3, #0 - 8022fd8: 85fb strh r3, [r7, #46] ; 0x2e + 8022f42: 2300 movs r3, #0 + 8022f44: 85fb strh r3, [r7, #46] ; 0x2e for(i = 0; i < c->col_num; i++) { - 8022fda: 2300 movs r3, #0 - 8022fdc: 63fb str r3, [r7, #60] ; 0x3c - 8022fde: e036 b.n 802304e + 8022f46: 2300 movs r3, #0 + 8022f48: 63fb str r3, [r7, #60] ; 0x3c + 8022f4a: e036 b.n 8022fba lv_coord_t x = col_templ[i]; - 8022fe0: 6bfb ldr r3, [r7, #60] ; 0x3c - 8022fe2: 005b lsls r3, r3, #1 - 8022fe4: 6a3a ldr r2, [r7, #32] - 8022fe6: 4413 add r3, r2 - 8022fe8: 881b ldrh r3, [r3, #0] - 8022fea: 82fb strh r3, [r7, #22] + 8022f4c: 6bfb ldr r3, [r7, #60] ; 0x3c + 8022f4e: 005b lsls r3, r3, #1 + 8022f50: 6a3a ldr r2, [r7, #32] + 8022f52: 4413 add r3, r2 + 8022f54: 881b ldrh r3, [r3, #0] + 8022f56: 82fb strh r3, [r7, #22] if(IS_FR(x)) { - 8022fec: f9b7 3016 ldrsh.w r3, [r7, #22] - 8022ff0: f641 729a movw r2, #8090 ; 0x1f9a - 8022ff4: 4293 cmp r3, r2 - 8022ff6: dd08 ble.n 802300a + 8022f58: f9b7 3016 ldrsh.w r3, [r7, #22] + 8022f5c: f641 729a movw r2, #8090 ; 0x1f9a + 8022f60: 4293 cmp r3, r2 + 8022f62: dd08 ble.n 8022f76 col_fr_cnt += GET_FR(x); - 8022ff8: f9b7 2016 ldrsh.w r2, [r7, #22] - 8022ffc: 6b3b ldr r3, [r7, #48] ; 0x30 - 8022ffe: 4413 add r3, r2 - 8023000: f5a3 53fc sub.w r3, r3, #8064 ; 0x1f80 - 8023004: 3b1b subs r3, #27 - 8023006: 633b str r3, [r7, #48] ; 0x30 - 8023008: e01e b.n 8023048 + 8022f64: f9b7 2016 ldrsh.w r2, [r7, #22] + 8022f68: 6b3b ldr r3, [r7, #48] ; 0x30 + 8022f6a: 4413 add r3, r2 + 8022f6c: f5a3 53fc sub.w r3, r3, #8064 ; 0x1f80 + 8022f70: 3b1b subs r3, #27 + 8022f72: 633b str r3, [r7, #48] ; 0x30 + 8022f74: e01e b.n 8022fb4 } else if(IS_CONTENT(x)) { - 802300a: f9b7 3016 ldrsh.w r3, [r7, #22] - 802300e: f641 729a movw r2, #8090 ; 0x1f9a - 8023012: 4293 cmp r3, r2 - 8023014: d10c bne.n 8023030 + 8022f76: f9b7 3016 ldrsh.w r3, [r7, #22] + 8022f7a: f641 729a movw r2, #8090 ; 0x1f9a + 8022f7e: 4293 cmp r3, r2 + 8022f80: d10c bne.n 8022f9c grid_w += c->w[i]; - 8023016: 683b ldr r3, [r7, #0] - 8023018: 689a ldr r2, [r3, #8] - 802301a: 6bfb ldr r3, [r7, #60] ; 0x3c - 802301c: 005b lsls r3, r3, #1 - 802301e: 4413 add r3, r2 - 8023020: f9b3 3000 ldrsh.w r3, [r3] - 8023024: b29a uxth r2, r3 - 8023026: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8023028: 4413 add r3, r2 - 802302a: b29b uxth r3, r3 - 802302c: 85fb strh r3, [r7, #46] ; 0x2e - 802302e: e00b b.n 8023048 + 8022f82: 683b ldr r3, [r7, #0] + 8022f84: 689a ldr r2, [r3, #8] + 8022f86: 6bfb ldr r3, [r7, #60] ; 0x3c + 8022f88: 005b lsls r3, r3, #1 + 8022f8a: 4413 add r3, r2 + 8022f8c: f9b3 3000 ldrsh.w r3, [r3] + 8022f90: b29a uxth r2, r3 + 8022f92: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8022f94: 4413 add r3, r2 + 8022f96: b29b uxth r3, r3 + 8022f98: 85fb strh r3, [r7, #46] ; 0x2e + 8022f9a: e00b b.n 8022fb4 } else { c->w[i] = x; - 8023030: 683b ldr r3, [r7, #0] - 8023032: 689a ldr r2, [r3, #8] - 8023034: 6bfb ldr r3, [r7, #60] ; 0x3c - 8023036: 005b lsls r3, r3, #1 - 8023038: 4413 add r3, r2 - 802303a: 8afa ldrh r2, [r7, #22] - 802303c: 801a strh r2, [r3, #0] + 8022f9c: 683b ldr r3, [r7, #0] + 8022f9e: 689a ldr r2, [r3, #8] + 8022fa0: 6bfb ldr r3, [r7, #60] ; 0x3c + 8022fa2: 005b lsls r3, r3, #1 + 8022fa4: 4413 add r3, r2 + 8022fa6: 8afa ldrh r2, [r7, #22] + 8022fa8: 801a strh r2, [r3, #0] grid_w += x; - 802303e: 8dfa ldrh r2, [r7, #46] ; 0x2e - 8023040: 8afb ldrh r3, [r7, #22] - 8023042: 4413 add r3, r2 - 8023044: b29b uxth r3, r3 - 8023046: 85fb strh r3, [r7, #46] ; 0x2e + 8022faa: 8dfa ldrh r2, [r7, #46] ; 0x2e + 8022fac: 8afb ldrh r3, [r7, #22] + 8022fae: 4413 add r3, r2 + 8022fb0: b29b uxth r3, r3 + 8022fb2: 85fb strh r3, [r7, #46] ; 0x2e for(i = 0; i < c->col_num; i++) { - 8023048: 6bfb ldr r3, [r7, #60] ; 0x3c - 802304a: 3301 adds r3, #1 - 802304c: 63fb str r3, [r7, #60] ; 0x3c - 802304e: 683b ldr r3, [r7, #0] - 8023050: 691b ldr r3, [r3, #16] - 8023052: 6bfa ldr r2, [r7, #60] ; 0x3c - 8023054: 429a cmp r2, r3 - 8023056: d3c3 bcc.n 8022fe0 + 8022fb4: 6bfb ldr r3, [r7, #60] ; 0x3c + 8022fb6: 3301 adds r3, #1 + 8022fb8: 63fb str r3, [r7, #60] ; 0x3c + 8022fba: 683b ldr r3, [r7, #0] + 8022fbc: 691b ldr r3, [r3, #16] + 8022fbe: 6bfa ldr r2, [r7, #60] ; 0x3c + 8022fc0: 429a cmp r2, r3 + 8022fc2: d3c3 bcc.n 8022f4c } } lv_coord_t col_gap = lv_obj_get_style_pad_column(cont, LV_PART_MAIN); - 8023058: 2100 movs r1, #0 - 802305a: 6878 ldr r0, [r7, #4] - 802305c: f7ff fba0 bl 80227a0 - 8023060: 4603 mov r3, r0 - 8023062: 83bb strh r3, [r7, #28] + 8022fc4: 2100 movs r1, #0 + 8022fc6: 6878 ldr r0, [r7, #4] + 8022fc8: f7ff fba0 bl 802270c + 8022fcc: 4603 mov r3, r0 + 8022fce: 83bb strh r3, [r7, #28] cont_w -= col_gap * (c->col_num - 1); - 8023064: 8bfa ldrh r2, [r7, #30] - 8023066: f9b7 301c ldrsh.w r3, [r7, #28] - 802306a: b29b uxth r3, r3 - 802306c: 6839 ldr r1, [r7, #0] - 802306e: 6909 ldr r1, [r1, #16] - 8023070: 3901 subs r1, #1 - 8023072: b289 uxth r1, r1 - 8023074: fb01 f303 mul.w r3, r1, r3 - 8023078: b29b uxth r3, r3 - 802307a: 1ad3 subs r3, r2, r3 - 802307c: b29b uxth r3, r3 - 802307e: 83fb strh r3, [r7, #30] + 8022fd0: 8bfa ldrh r2, [r7, #30] + 8022fd2: f9b7 301c ldrsh.w r3, [r7, #28] + 8022fd6: b29b uxth r3, r3 + 8022fd8: 6839 ldr r1, [r7, #0] + 8022fda: 6909 ldr r1, [r1, #16] + 8022fdc: 3901 subs r1, #1 + 8022fde: b289 uxth r1, r1 + 8022fe0: fb01 f303 mul.w r3, r1, r3 + 8022fe4: b29b uxth r3, r3 + 8022fe6: 1ad3 subs r3, r2, r3 + 8022fe8: b29b uxth r3, r3 + 8022fea: 83fb strh r3, [r7, #30] lv_coord_t free_w = cont_w - grid_w; - 8023080: 8bfa ldrh r2, [r7, #30] - 8023082: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8023084: 1ad3 subs r3, r2, r3 - 8023086: b29b uxth r3, r3 - 8023088: 85bb strh r3, [r7, #44] ; 0x2c + 8022fec: 8bfa ldrh r2, [r7, #30] + 8022fee: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8022ff0: 1ad3 subs r3, r2, r3 + 8022ff2: b29b uxth r3, r3 + 8022ff4: 85bb strh r3, [r7, #44] ; 0x2c if(free_w < 0) free_w = 0; - 802308a: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 802308e: 2b00 cmp r3, #0 - 8023090: da01 bge.n 8023096 - 8023092: 2300 movs r3, #0 - 8023094: 85bb strh r3, [r7, #44] ; 0x2c + 8022ff6: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 8022ffa: 2b00 cmp r3, #0 + 8022ffc: da01 bge.n 8023002 + 8022ffe: 2300 movs r3, #0 + 8023000: 85bb strh r3, [r7, #44] ; 0x2c int32_t last_fr_i = -1; - 8023096: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 802309a: 62bb str r3, [r7, #40] ; 0x28 + 8023002: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 8023006: 62bb str r3, [r7, #40] ; 0x28 int32_t last_fr_x = 0; - 802309c: 2300 movs r3, #0 - 802309e: 627b str r3, [r7, #36] ; 0x24 + 8023008: 2300 movs r3, #0 + 802300a: 627b str r3, [r7, #36] ; 0x24 for(i = 0; i < c->col_num; i++) { - 80230a0: 2300 movs r3, #0 - 80230a2: 63fb str r3, [r7, #60] ; 0x3c - 80230a4: e02a b.n 80230fc + 802300c: 2300 movs r3, #0 + 802300e: 63fb str r3, [r7, #60] ; 0x3c + 8023010: e02a b.n 8023068 lv_coord_t x = col_templ[i]; - 80230a6: 6bfb ldr r3, [r7, #60] ; 0x3c - 80230a8: 005b lsls r3, r3, #1 - 80230aa: 6a3a ldr r2, [r7, #32] - 80230ac: 4413 add r3, r2 - 80230ae: 881b ldrh r3, [r3, #0] - 80230b0: 837b strh r3, [r7, #26] + 8023012: 6bfb ldr r3, [r7, #60] ; 0x3c + 8023014: 005b lsls r3, r3, #1 + 8023016: 6a3a ldr r2, [r7, #32] + 8023018: 4413 add r3, r2 + 802301a: 881b ldrh r3, [r3, #0] + 802301c: 837b strh r3, [r7, #26] if(IS_FR(x)) { - 80230b2: f9b7 301a ldrsh.w r3, [r7, #26] - 80230b6: f641 729a movw r2, #8090 ; 0x1f9a - 80230ba: 4293 cmp r3, r2 - 80230bc: dd1b ble.n 80230f6 + 802301e: f9b7 301a ldrsh.w r3, [r7, #26] + 8023022: f641 729a movw r2, #8090 ; 0x1f9a + 8023026: 4293 cmp r3, r2 + 8023028: dd1b ble.n 8023062 lv_coord_t f = GET_FR(x); - 80230be: 8b7b ldrh r3, [r7, #26] - 80230c0: f5a3 53fc sub.w r3, r3, #8064 ; 0x1f80 - 80230c4: 3b1b subs r3, #27 - 80230c6: b29b uxth r3, r3 - 80230c8: 833b strh r3, [r7, #24] + 802302a: 8b7b ldrh r3, [r7, #26] + 802302c: f5a3 53fc sub.w r3, r3, #8064 ; 0x1f80 + 8023030: 3b1b subs r3, #27 + 8023032: b29b uxth r3, r3 + 8023034: 833b strh r3, [r7, #24] c->w[i] = (free_w * f) / col_fr_cnt; - 80230ca: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 80230ce: f9b7 2018 ldrsh.w r2, [r7, #24] - 80230d2: fb02 f303 mul.w r3, r2, r3 - 80230d6: 461a mov r2, r3 - 80230d8: 6b3b ldr r3, [r7, #48] ; 0x30 - 80230da: fbb2 f1f3 udiv r1, r2, r3 - 80230de: 683b ldr r3, [r7, #0] - 80230e0: 689a ldr r2, [r3, #8] - 80230e2: 6bfb ldr r3, [r7, #60] ; 0x3c - 80230e4: 005b lsls r3, r3, #1 - 80230e6: 4413 add r3, r2 - 80230e8: b20a sxth r2, r1 - 80230ea: 801a strh r2, [r3, #0] + 8023036: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 802303a: f9b7 2018 ldrsh.w r2, [r7, #24] + 802303e: fb02 f303 mul.w r3, r2, r3 + 8023042: 461a mov r2, r3 + 8023044: 6b3b ldr r3, [r7, #48] ; 0x30 + 8023046: fbb2 f1f3 udiv r1, r2, r3 + 802304a: 683b ldr r3, [r7, #0] + 802304c: 689a ldr r2, [r3, #8] + 802304e: 6bfb ldr r3, [r7, #60] ; 0x3c + 8023050: 005b lsls r3, r3, #1 + 8023052: 4413 add r3, r2 + 8023054: b20a sxth r2, r1 + 8023056: 801a strh r2, [r3, #0] last_fr_i = i; - 80230ec: 6bfb ldr r3, [r7, #60] ; 0x3c - 80230ee: 62bb str r3, [r7, #40] ; 0x28 + 8023058: 6bfb ldr r3, [r7, #60] ; 0x3c + 802305a: 62bb str r3, [r7, #40] ; 0x28 last_fr_x = f; - 80230f0: f9b7 3018 ldrsh.w r3, [r7, #24] - 80230f4: 627b str r3, [r7, #36] ; 0x24 + 802305c: f9b7 3018 ldrsh.w r3, [r7, #24] + 8023060: 627b str r3, [r7, #36] ; 0x24 for(i = 0; i < c->col_num; i++) { - 80230f6: 6bfb ldr r3, [r7, #60] ; 0x3c - 80230f8: 3301 adds r3, #1 - 80230fa: 63fb str r3, [r7, #60] ; 0x3c - 80230fc: 683b ldr r3, [r7, #0] - 80230fe: 691b ldr r3, [r3, #16] - 8023100: 6bfa ldr r2, [r7, #60] ; 0x3c - 8023102: 429a cmp r2, r3 - 8023104: d3cf bcc.n 80230a6 + 8023062: 6bfb ldr r3, [r7, #60] ; 0x3c + 8023064: 3301 adds r3, #1 + 8023066: 63fb str r3, [r7, #60] ; 0x3c + 8023068: 683b ldr r3, [r7, #0] + 802306a: 691b ldr r3, [r3, #16] + 802306c: 6bfa ldr r2, [r7, #60] ; 0x3c + 802306e: 429a cmp r2, r3 + 8023070: d3cf bcc.n 8023012 } } /*To avoid rounding errors set the last FR track to the remaining size */ if(last_fr_i >= 0) { - 8023106: 6abb ldr r3, [r7, #40] ; 0x28 - 8023108: 2b00 cmp r3, #0 - 802310a: db14 blt.n 8023136 + 8023072: 6abb ldr r3, [r7, #40] ; 0x28 + 8023074: 2b00 cmp r3, #0 + 8023076: db14 blt.n 80230a2 c->w[last_fr_i] = free_w - ((free_w * (col_fr_cnt - last_fr_x)) / col_fr_cnt); - 802310c: 8dba ldrh r2, [r7, #44] ; 0x2c - 802310e: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 8023112: 6a79 ldr r1, [r7, #36] ; 0x24 - 8023114: 6b38 ldr r0, [r7, #48] ; 0x30 - 8023116: 1a41 subs r1, r0, r1 - 8023118: fb03 f101 mul.w r1, r3, r1 - 802311c: 6b3b ldr r3, [r7, #48] ; 0x30 - 802311e: fbb1 f3f3 udiv r3, r1, r3 - 8023122: b29b uxth r3, r3 - 8023124: 1ad3 subs r3, r2, r3 - 8023126: b299 uxth r1, r3 - 8023128: 683b ldr r3, [r7, #0] - 802312a: 689a ldr r2, [r3, #8] - 802312c: 6abb ldr r3, [r7, #40] ; 0x28 - 802312e: 005b lsls r3, r3, #1 - 8023130: 4413 add r3, r2 - 8023132: b20a sxth r2, r1 - 8023134: 801a strh r2, [r3, #0] + 8023078: 8dba ldrh r2, [r7, #44] ; 0x2c + 802307a: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 802307e: 6a79 ldr r1, [r7, #36] ; 0x24 + 8023080: 6b38 ldr r0, [r7, #48] ; 0x30 + 8023082: 1a41 subs r1, r0, r1 + 8023084: fb03 f101 mul.w r1, r3, r1 + 8023088: 6b3b ldr r3, [r7, #48] ; 0x30 + 802308a: fbb1 f3f3 udiv r3, r1, r3 + 802308e: b29b uxth r3, r3 + 8023090: 1ad3 subs r3, r2, r3 + 8023092: b299 uxth r1, r3 + 8023094: 683b ldr r3, [r7, #0] + 8023096: 689a ldr r2, [r3, #8] + 8023098: 6abb ldr r3, [r7, #40] ; 0x28 + 802309a: 005b lsls r3, r3, #1 + 802309c: 4413 add r3, r2 + 802309e: b20a sxth r2, r1 + 80230a0: 801a strh r2, [r3, #0] } } - 8023136: bf00 nop - 8023138: 3740 adds r7, #64 ; 0x40 - 802313a: 46bd mov sp, r7 - 802313c: bd80 pop {r7, pc} - 802313e: bf00 nop - 8023140: 00060001 .word 0x00060001 + 80230a2: bf00 nop + 80230a4: 3740 adds r7, #64 ; 0x40 + 80230a6: 46bd mov sp, r7 + 80230a8: bd80 pop {r7, pc} + 80230aa: bf00 nop + 80230ac: 00060001 .word 0x00060001 -08023144 : +080230b0 : static void calc_rows(lv_obj_t * cont, _lv_grid_calc_t * c) { - 8023144: b580 push {r7, lr} - 8023146: b090 sub sp, #64 ; 0x40 - 8023148: af00 add r7, sp, #0 - 802314a: 6078 str r0, [r7, #4] - 802314c: 6039 str r1, [r7, #0] + 80230b0: b580 push {r7, lr} + 80230b2: b090 sub sp, #64 ; 0x40 + 80230b4: af00 add r7, sp, #0 + 80230b6: 6078 str r0, [r7, #4] + 80230b8: 6039 str r1, [r7, #0] uint32_t i; const lv_coord_t * row_templ = get_row_dsc(cont); - 802314e: 6878 ldr r0, [r7, #4] - 8023150: f7ff fc49 bl 80229e6 - 8023154: 62b8 str r0, [r7, #40] ; 0x28 + 80230ba: 6878 ldr r0, [r7, #4] + 80230bc: f7ff fc49 bl 8022952 + 80230c0: 62b8 str r0, [r7, #40] ; 0x28 c->row_num = count_tracks(row_templ); - 8023156: 6ab8 ldr r0, [r7, #40] ; 0x28 - 8023158: f000 fcfe bl 8023b58 - 802315c: 4602 mov r2, r0 - 802315e: 683b ldr r3, [r7, #0] - 8023160: 615a str r2, [r3, #20] + 80230c2: 6ab8 ldr r0, [r7, #40] ; 0x28 + 80230c4: f000 fcfe bl 8023ac4 + 80230c8: 4602 mov r2, r0 + 80230ca: 683b ldr r3, [r7, #0] + 80230cc: 615a str r2, [r3, #20] c->y = lv_mem_buf_get(sizeof(lv_coord_t) * c->row_num); - 8023162: 683b ldr r3, [r7, #0] - 8023164: 695b ldr r3, [r3, #20] - 8023166: 005b lsls r3, r3, #1 - 8023168: 4618 mov r0, r3 - 802316a: f00f fc49 bl 8032a00 - 802316e: 4602 mov r2, r0 - 8023170: 683b ldr r3, [r7, #0] - 8023172: 605a str r2, [r3, #4] + 80230ce: 683b ldr r3, [r7, #0] + 80230d0: 695b ldr r3, [r3, #20] + 80230d2: 005b lsls r3, r3, #1 + 80230d4: 4618 mov r0, r3 + 80230d6: f00f fc49 bl 803296c + 80230da: 4602 mov r2, r0 + 80230dc: 683b ldr r3, [r7, #0] + 80230de: 605a str r2, [r3, #4] c->h = lv_mem_buf_get(sizeof(lv_coord_t) * c->row_num); - 8023174: 683b ldr r3, [r7, #0] - 8023176: 695b ldr r3, [r3, #20] - 8023178: 005b lsls r3, r3, #1 - 802317a: 4618 mov r0, r3 - 802317c: f00f fc40 bl 8032a00 - 8023180: 4602 mov r2, r0 - 8023182: 683b ldr r3, [r7, #0] - 8023184: 60da str r2, [r3, #12] + 80230e0: 683b ldr r3, [r7, #0] + 80230e2: 695b ldr r3, [r3, #20] + 80230e4: 005b lsls r3, r3, #1 + 80230e6: 4618 mov r0, r3 + 80230e8: f00f fc40 bl 803296c + 80230ec: 4602 mov r2, r0 + 80230ee: 683b ldr r3, [r7, #0] + 80230f0: 60da str r2, [r3, #12] /*Set sizes for CONTENT cells*/ for(i = 0; i < c->row_num; i++) { - 8023186: 2300 movs r3, #0 - 8023188: 63fb str r3, [r7, #60] ; 0x3c - 802318a: e064 b.n 8023256 + 80230f2: 2300 movs r3, #0 + 80230f4: 63fb str r3, [r7, #60] ; 0x3c + 80230f6: e064 b.n 80231c2 lv_coord_t size = LV_COORD_MIN; - 802318c: f24e 0301 movw r3, #57345 ; 0xe001 - 8023190: 877b strh r3, [r7, #58] ; 0x3a + 80230f8: f24e 0301 movw r3, #57345 ; 0xe001 + 80230fc: 877b strh r3, [r7, #58] ; 0x3a if(IS_CONTENT(row_templ[i])) { - 8023192: 6bfb ldr r3, [r7, #60] ; 0x3c - 8023194: 005b lsls r3, r3, #1 - 8023196: 6aba ldr r2, [r7, #40] ; 0x28 - 8023198: 4413 add r3, r2 - 802319a: f9b3 3000 ldrsh.w r3, [r3] - 802319e: f641 729a movw r2, #8090 ; 0x1f9a - 80231a2: 4293 cmp r3, r2 - 80231a4: d154 bne.n 8023250 + 80230fe: 6bfb ldr r3, [r7, #60] ; 0x3c + 8023100: 005b lsls r3, r3, #1 + 8023102: 6aba ldr r2, [r7, #40] ; 0x28 + 8023104: 4413 add r3, r2 + 8023106: f9b3 3000 ldrsh.w r3, [r3] + 802310a: f641 729a movw r2, #8090 ; 0x1f9a + 802310e: 4293 cmp r3, r2 + 8023110: d154 bne.n 80231bc /*Check the size of children of this cell*/ uint32_t ci; for(ci = 0; ci < lv_obj_get_child_cnt(cont); ci++) { - 80231a6: 2300 movs r3, #0 - 80231a8: 637b str r3, [r7, #52] ; 0x34 - 80231aa: e037 b.n 802321c + 8023112: 2300 movs r3, #0 + 8023114: 637b str r3, [r7, #52] ; 0x34 + 8023116: e037 b.n 8023188 lv_obj_t * item = lv_obj_get_child(cont, ci); - 80231ac: 6b7b ldr r3, [r7, #52] ; 0x34 - 80231ae: 4619 mov r1, r3 - 80231b0: 6878 ldr r0, [r7, #4] - 80231b2: f7ec fabb bl 800f72c - 80231b6: 6138 str r0, [r7, #16] + 8023118: 6b7b ldr r3, [r7, #52] ; 0x34 + 802311a: 4619 mov r1, r3 + 802311c: 6878 ldr r0, [r7, #4] + 802311e: f7ec fabb bl 800f698 + 8023122: 6138 str r0, [r7, #16] if(lv_obj_has_flag_any(item, LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 80231b8: 4984 ldr r1, [pc, #528] ; (80233cc ) - 80231ba: 6938 ldr r0, [r7, #16] - 80231bc: f7e3 faf5 bl 80067aa - 80231c0: 4603 mov r3, r0 - 80231c2: 2b00 cmp r3, #0 - 80231c4: d122 bne.n 802320c + 8023124: 4984 ldr r1, [pc, #528] ; (8023338 ) + 8023126: 6938 ldr r0, [r7, #16] + 8023128: f7e3 fb09 bl 800673e + 802312c: 4603 mov r3, r0 + 802312e: 2b00 cmp r3, #0 + 8023130: d122 bne.n 8023178 uint32_t row_span = get_row_span(item); - 80231c6: 6938 ldr r0, [r7, #16] - 80231c8: f7ff fc44 bl 8022a54 - 80231cc: 4603 mov r3, r0 - 80231ce: 60fb str r3, [r7, #12] + 8023132: 6938 ldr r0, [r7, #16] + 8023134: f7ff fc44 bl 80229c0 + 8023138: 4603 mov r3, r0 + 802313a: 60fb str r3, [r7, #12] if(row_span != 1) continue; - 80231d0: 68fb ldr r3, [r7, #12] - 80231d2: 2b01 cmp r3, #1 - 80231d4: d11c bne.n 8023210 + 802313c: 68fb ldr r3, [r7, #12] + 802313e: 2b01 cmp r3, #1 + 8023140: d11c bne.n 802317c uint32_t row_pos = get_row_pos(item); - 80231d6: 6938 ldr r0, [r7, #16] - 80231d8: f7ff fc20 bl 8022a1c - 80231dc: 4603 mov r3, r0 - 80231de: 60bb str r3, [r7, #8] + 8023142: 6938 ldr r0, [r7, #16] + 8023144: f7ff fc20 bl 8022988 + 8023148: 4603 mov r3, r0 + 802314a: 60bb str r3, [r7, #8] if(row_pos != i) continue; - 80231e0: 68ba ldr r2, [r7, #8] - 80231e2: 6bfb ldr r3, [r7, #60] ; 0x3c - 80231e4: 429a cmp r2, r3 - 80231e6: d115 bne.n 8023214 + 802314c: 68ba ldr r2, [r7, #8] + 802314e: 6bfb ldr r3, [r7, #60] ; 0x3c + 8023150: 429a cmp r2, r3 + 8023152: d115 bne.n 8023180 size = LV_MAX(size, lv_obj_get_height(item)); - 80231e8: 6938 ldr r0, [r7, #16] - 80231ea: f7e6 ffbb bl 800a164 - 80231ee: 4603 mov r3, r0 - 80231f0: 461a mov r2, r3 - 80231f2: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 80231f6: 4293 cmp r3, r2 - 80231f8: dc04 bgt.n 8023204 - 80231fa: 6938 ldr r0, [r7, #16] - 80231fc: f7e6 ffb2 bl 800a164 - 8023200: 4603 mov r3, r0 - 8023202: e001 b.n 8023208 - 8023204: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 8023208: 877b strh r3, [r7, #58] ; 0x3a - 802320a: e004 b.n 8023216 + 8023154: 6938 ldr r0, [r7, #16] + 8023156: f7e6 ffcf bl 800a0f8 + 802315a: 4603 mov r3, r0 + 802315c: 461a mov r2, r3 + 802315e: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 8023162: 4293 cmp r3, r2 + 8023164: dc04 bgt.n 8023170 + 8023166: 6938 ldr r0, [r7, #16] + 8023168: f7e6 ffc6 bl 800a0f8 + 802316c: 4603 mov r3, r0 + 802316e: e001 b.n 8023174 + 8023170: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 8023174: 877b strh r3, [r7, #58] ; 0x3a + 8023176: e004 b.n 8023182 if(lv_obj_has_flag_any(item, LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue; - 802320c: bf00 nop - 802320e: e002 b.n 8023216 + 8023178: bf00 nop + 802317a: e002 b.n 8023182 if(row_span != 1) continue; - 8023210: bf00 nop - 8023212: e000 b.n 8023216 + 802317c: bf00 nop + 802317e: e000 b.n 8023182 if(row_pos != i) continue; - 8023214: bf00 nop + 8023180: bf00 nop for(ci = 0; ci < lv_obj_get_child_cnt(cont); ci++) { - 8023216: 6b7b ldr r3, [r7, #52] ; 0x34 - 8023218: 3301 adds r3, #1 - 802321a: 637b str r3, [r7, #52] ; 0x34 - 802321c: 6878 ldr r0, [r7, #4] - 802321e: f7ec fab7 bl 800f790 - 8023222: 4602 mov r2, r0 - 8023224: 6b7b ldr r3, [r7, #52] ; 0x34 - 8023226: 4293 cmp r3, r2 - 8023228: d3c0 bcc.n 80231ac + 8023182: 6b7b ldr r3, [r7, #52] ; 0x34 + 8023184: 3301 adds r3, #1 + 8023186: 637b str r3, [r7, #52] ; 0x34 + 8023188: 6878 ldr r0, [r7, #4] + 802318a: f7ec fab7 bl 800f6fc + 802318e: 4602 mov r2, r0 + 8023190: 6b7b ldr r3, [r7, #52] ; 0x34 + 8023192: 4293 cmp r3, r2 + 8023194: d3c0 bcc.n 8023118 } if(size >= 0) c->h[i] = size; - 802322a: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 802322e: 2b00 cmp r3, #0 - 8023230: db07 blt.n 8023242 - 8023232: 683b ldr r3, [r7, #0] - 8023234: 68da ldr r2, [r3, #12] - 8023236: 6bfb ldr r3, [r7, #60] ; 0x3c - 8023238: 005b lsls r3, r3, #1 - 802323a: 4413 add r3, r2 - 802323c: 8f7a ldrh r2, [r7, #58] ; 0x3a - 802323e: 801a strh r2, [r3, #0] - 8023240: e006 b.n 8023250 + 8023196: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 802319a: 2b00 cmp r3, #0 + 802319c: db07 blt.n 80231ae + 802319e: 683b ldr r3, [r7, #0] + 80231a0: 68da ldr r2, [r3, #12] + 80231a2: 6bfb ldr r3, [r7, #60] ; 0x3c + 80231a4: 005b lsls r3, r3, #1 + 80231a6: 4413 add r3, r2 + 80231a8: 8f7a ldrh r2, [r7, #58] ; 0x3a + 80231aa: 801a strh r2, [r3, #0] + 80231ac: e006 b.n 80231bc else c->h[i] = 0; - 8023242: 683b ldr r3, [r7, #0] - 8023244: 68da ldr r2, [r3, #12] - 8023246: 6bfb ldr r3, [r7, #60] ; 0x3c - 8023248: 005b lsls r3, r3, #1 - 802324a: 4413 add r3, r2 - 802324c: 2200 movs r2, #0 - 802324e: 801a strh r2, [r3, #0] + 80231ae: 683b ldr r3, [r7, #0] + 80231b0: 68da ldr r2, [r3, #12] + 80231b2: 6bfb ldr r3, [r7, #60] ; 0x3c + 80231b4: 005b lsls r3, r3, #1 + 80231b6: 4413 add r3, r2 + 80231b8: 2200 movs r2, #0 + 80231ba: 801a strh r2, [r3, #0] for(i = 0; i < c->row_num; i++) { - 8023250: 6bfb ldr r3, [r7, #60] ; 0x3c - 8023252: 3301 adds r3, #1 - 8023254: 63fb str r3, [r7, #60] ; 0x3c - 8023256: 683b ldr r3, [r7, #0] - 8023258: 695b ldr r3, [r3, #20] - 802325a: 6bfa ldr r2, [r7, #60] ; 0x3c - 802325c: 429a cmp r2, r3 - 802325e: d395 bcc.n 802318c + 80231bc: 6bfb ldr r3, [r7, #60] ; 0x3c + 80231be: 3301 adds r3, #1 + 80231c0: 63fb str r3, [r7, #60] ; 0x3c + 80231c2: 683b ldr r3, [r7, #0] + 80231c4: 695b ldr r3, [r3, #20] + 80231c6: 6bfa ldr r2, [r7, #60] ; 0x3c + 80231c8: 429a cmp r2, r3 + 80231ca: d395 bcc.n 80230f8 } } uint32_t row_fr_cnt = 0; - 8023260: 2300 movs r3, #0 - 8023262: 633b str r3, [r7, #48] ; 0x30 + 80231cc: 2300 movs r3, #0 + 80231ce: 633b str r3, [r7, #48] ; 0x30 lv_coord_t grid_h = 0; - 8023264: 2300 movs r3, #0 - 8023266: 85fb strh r3, [r7, #46] ; 0x2e + 80231d0: 2300 movs r3, #0 + 80231d2: 85fb strh r3, [r7, #46] ; 0x2e for(i = 0; i < c->row_num; i++) { - 8023268: 2300 movs r3, #0 - 802326a: 63fb str r3, [r7, #60] ; 0x3c - 802326c: e036 b.n 80232dc + 80231d4: 2300 movs r3, #0 + 80231d6: 63fb str r3, [r7, #60] ; 0x3c + 80231d8: e036 b.n 8023248 lv_coord_t x = row_templ[i]; - 802326e: 6bfb ldr r3, [r7, #60] ; 0x3c - 8023270: 005b lsls r3, r3, #1 - 8023272: 6aba ldr r2, [r7, #40] ; 0x28 - 8023274: 4413 add r3, r2 - 8023276: 881b ldrh r3, [r3, #0] - 8023278: 82fb strh r3, [r7, #22] + 80231da: 6bfb ldr r3, [r7, #60] ; 0x3c + 80231dc: 005b lsls r3, r3, #1 + 80231de: 6aba ldr r2, [r7, #40] ; 0x28 + 80231e0: 4413 add r3, r2 + 80231e2: 881b ldrh r3, [r3, #0] + 80231e4: 82fb strh r3, [r7, #22] if(IS_FR(x)) { - 802327a: f9b7 3016 ldrsh.w r3, [r7, #22] - 802327e: f641 729a movw r2, #8090 ; 0x1f9a - 8023282: 4293 cmp r3, r2 - 8023284: dd08 ble.n 8023298 + 80231e6: f9b7 3016 ldrsh.w r3, [r7, #22] + 80231ea: f641 729a movw r2, #8090 ; 0x1f9a + 80231ee: 4293 cmp r3, r2 + 80231f0: dd08 ble.n 8023204 row_fr_cnt += GET_FR(x); - 8023286: f9b7 2016 ldrsh.w r2, [r7, #22] - 802328a: 6b3b ldr r3, [r7, #48] ; 0x30 - 802328c: 4413 add r3, r2 - 802328e: f5a3 53fc sub.w r3, r3, #8064 ; 0x1f80 - 8023292: 3b1b subs r3, #27 - 8023294: 633b str r3, [r7, #48] ; 0x30 - 8023296: e01e b.n 80232d6 + 80231f2: f9b7 2016 ldrsh.w r2, [r7, #22] + 80231f6: 6b3b ldr r3, [r7, #48] ; 0x30 + 80231f8: 4413 add r3, r2 + 80231fa: f5a3 53fc sub.w r3, r3, #8064 ; 0x1f80 + 80231fe: 3b1b subs r3, #27 + 8023200: 633b str r3, [r7, #48] ; 0x30 + 8023202: e01e b.n 8023242 } else if(IS_CONTENT(x)) { - 8023298: f9b7 3016 ldrsh.w r3, [r7, #22] - 802329c: f641 729a movw r2, #8090 ; 0x1f9a - 80232a0: 4293 cmp r3, r2 - 80232a2: d10c bne.n 80232be + 8023204: f9b7 3016 ldrsh.w r3, [r7, #22] + 8023208: f641 729a movw r2, #8090 ; 0x1f9a + 802320c: 4293 cmp r3, r2 + 802320e: d10c bne.n 802322a grid_h += c->h[i]; - 80232a4: 683b ldr r3, [r7, #0] - 80232a6: 68da ldr r2, [r3, #12] - 80232a8: 6bfb ldr r3, [r7, #60] ; 0x3c - 80232aa: 005b lsls r3, r3, #1 - 80232ac: 4413 add r3, r2 - 80232ae: f9b3 3000 ldrsh.w r3, [r3] - 80232b2: b29a uxth r2, r3 - 80232b4: 8dfb ldrh r3, [r7, #46] ; 0x2e - 80232b6: 4413 add r3, r2 - 80232b8: b29b uxth r3, r3 - 80232ba: 85fb strh r3, [r7, #46] ; 0x2e - 80232bc: e00b b.n 80232d6 + 8023210: 683b ldr r3, [r7, #0] + 8023212: 68da ldr r2, [r3, #12] + 8023214: 6bfb ldr r3, [r7, #60] ; 0x3c + 8023216: 005b lsls r3, r3, #1 + 8023218: 4413 add r3, r2 + 802321a: f9b3 3000 ldrsh.w r3, [r3] + 802321e: b29a uxth r2, r3 + 8023220: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8023222: 4413 add r3, r2 + 8023224: b29b uxth r3, r3 + 8023226: 85fb strh r3, [r7, #46] ; 0x2e + 8023228: e00b b.n 8023242 } else { c->h[i] = x; - 80232be: 683b ldr r3, [r7, #0] - 80232c0: 68da ldr r2, [r3, #12] - 80232c2: 6bfb ldr r3, [r7, #60] ; 0x3c - 80232c4: 005b lsls r3, r3, #1 - 80232c6: 4413 add r3, r2 - 80232c8: 8afa ldrh r2, [r7, #22] - 80232ca: 801a strh r2, [r3, #0] + 802322a: 683b ldr r3, [r7, #0] + 802322c: 68da ldr r2, [r3, #12] + 802322e: 6bfb ldr r3, [r7, #60] ; 0x3c + 8023230: 005b lsls r3, r3, #1 + 8023232: 4413 add r3, r2 + 8023234: 8afa ldrh r2, [r7, #22] + 8023236: 801a strh r2, [r3, #0] grid_h += x; - 80232cc: 8dfa ldrh r2, [r7, #46] ; 0x2e - 80232ce: 8afb ldrh r3, [r7, #22] - 80232d0: 4413 add r3, r2 - 80232d2: b29b uxth r3, r3 - 80232d4: 85fb strh r3, [r7, #46] ; 0x2e + 8023238: 8dfa ldrh r2, [r7, #46] ; 0x2e + 802323a: 8afb ldrh r3, [r7, #22] + 802323c: 4413 add r3, r2 + 802323e: b29b uxth r3, r3 + 8023240: 85fb strh r3, [r7, #46] ; 0x2e for(i = 0; i < c->row_num; i++) { - 80232d6: 6bfb ldr r3, [r7, #60] ; 0x3c - 80232d8: 3301 adds r3, #1 - 80232da: 63fb str r3, [r7, #60] ; 0x3c - 80232dc: 683b ldr r3, [r7, #0] - 80232de: 695b ldr r3, [r3, #20] - 80232e0: 6bfa ldr r2, [r7, #60] ; 0x3c - 80232e2: 429a cmp r2, r3 - 80232e4: d3c3 bcc.n 802326e + 8023242: 6bfb ldr r3, [r7, #60] ; 0x3c + 8023244: 3301 adds r3, #1 + 8023246: 63fb str r3, [r7, #60] ; 0x3c + 8023248: 683b ldr r3, [r7, #0] + 802324a: 695b ldr r3, [r3, #20] + 802324c: 6bfa ldr r2, [r7, #60] ; 0x3c + 802324e: 429a cmp r2, r3 + 8023250: d3c3 bcc.n 80231da } } lv_coord_t row_gap = lv_obj_get_style_pad_row(cont, LV_PART_MAIN); - 80232e6: 2100 movs r1, #0 - 80232e8: 6878 ldr r0, [r7, #4] - 80232ea: f7ff fa46 bl 802277a - 80232ee: 4603 mov r3, r0 - 80232f0: 84fb strh r3, [r7, #38] ; 0x26 + 8023252: 2100 movs r1, #0 + 8023254: 6878 ldr r0, [r7, #4] + 8023256: f7ff fa46 bl 80226e6 + 802325a: 4603 mov r3, r0 + 802325c: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t cont_h = lv_obj_get_content_height(cont) - row_gap * (c->row_num - 1); - 80232f2: 6878 ldr r0, [r7, #4] - 80232f4: f7e6 ff6f bl 800a1d6 - 80232f8: 4603 mov r3, r0 - 80232fa: b29a uxth r2, r3 - 80232fc: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 8023300: b29b uxth r3, r3 - 8023302: 6839 ldr r1, [r7, #0] - 8023304: 6949 ldr r1, [r1, #20] - 8023306: 3901 subs r1, #1 - 8023308: b289 uxth r1, r1 - 802330a: fb01 f303 mul.w r3, r1, r3 - 802330e: b29b uxth r3, r3 - 8023310: 1ad3 subs r3, r2, r3 - 8023312: b29b uxth r3, r3 - 8023314: 84bb strh r3, [r7, #36] ; 0x24 + 802325e: 6878 ldr r0, [r7, #4] + 8023260: f7e6 ff83 bl 800a16a + 8023264: 4603 mov r3, r0 + 8023266: b29a uxth r2, r3 + 8023268: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 802326c: b29b uxth r3, r3 + 802326e: 6839 ldr r1, [r7, #0] + 8023270: 6949 ldr r1, [r1, #20] + 8023272: 3901 subs r1, #1 + 8023274: b289 uxth r1, r1 + 8023276: fb01 f303 mul.w r3, r1, r3 + 802327a: b29b uxth r3, r3 + 802327c: 1ad3 subs r3, r2, r3 + 802327e: b29b uxth r3, r3 + 8023280: 84bb strh r3, [r7, #36] ; 0x24 lv_coord_t free_h = cont_h - grid_h; - 8023316: 8cba ldrh r2, [r7, #36] ; 0x24 - 8023318: 8dfb ldrh r3, [r7, #46] ; 0x2e - 802331a: 1ad3 subs r3, r2, r3 - 802331c: b29b uxth r3, r3 - 802331e: 85bb strh r3, [r7, #44] ; 0x2c + 8023282: 8cba ldrh r2, [r7, #36] ; 0x24 + 8023284: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8023286: 1ad3 subs r3, r2, r3 + 8023288: b29b uxth r3, r3 + 802328a: 85bb strh r3, [r7, #44] ; 0x2c if(free_h < 0) free_h = 0; - 8023320: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 8023324: 2b00 cmp r3, #0 - 8023326: da01 bge.n 802332c - 8023328: 2300 movs r3, #0 - 802332a: 85bb strh r3, [r7, #44] ; 0x2c + 802328c: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 8023290: 2b00 cmp r3, #0 + 8023292: da01 bge.n 8023298 + 8023294: 2300 movs r3, #0 + 8023296: 85bb strh r3, [r7, #44] ; 0x2c int32_t last_fr_i = -1; - 802332c: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 8023330: 623b str r3, [r7, #32] + 8023298: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 802329c: 623b str r3, [r7, #32] int32_t last_fr_x = 0; - 8023332: 2300 movs r3, #0 - 8023334: 61fb str r3, [r7, #28] + 802329e: 2300 movs r3, #0 + 80232a0: 61fb str r3, [r7, #28] for(i = 0; i < c->row_num; i++) { - 8023336: 2300 movs r3, #0 - 8023338: 63fb str r3, [r7, #60] ; 0x3c - 802333a: e025 b.n 8023388 + 80232a2: 2300 movs r3, #0 + 80232a4: 63fb str r3, [r7, #60] ; 0x3c + 80232a6: e025 b.n 80232f4 lv_coord_t x = row_templ[i]; - 802333c: 6bfb ldr r3, [r7, #60] ; 0x3c - 802333e: 005b lsls r3, r3, #1 - 8023340: 6aba ldr r2, [r7, #40] ; 0x28 - 8023342: 4413 add r3, r2 - 8023344: 881b ldrh r3, [r3, #0] - 8023346: 837b strh r3, [r7, #26] + 80232a8: 6bfb ldr r3, [r7, #60] ; 0x3c + 80232aa: 005b lsls r3, r3, #1 + 80232ac: 6aba ldr r2, [r7, #40] ; 0x28 + 80232ae: 4413 add r3, r2 + 80232b0: 881b ldrh r3, [r3, #0] + 80232b2: 837b strh r3, [r7, #26] if(IS_FR(x)) { - 8023348: f9b7 301a ldrsh.w r3, [r7, #26] - 802334c: f641 729a movw r2, #8090 ; 0x1f9a - 8023350: 4293 cmp r3, r2 - 8023352: dd16 ble.n 8023382 + 80232b4: f9b7 301a ldrsh.w r3, [r7, #26] + 80232b8: f641 729a movw r2, #8090 ; 0x1f9a + 80232bc: 4293 cmp r3, r2 + 80232be: dd16 ble.n 80232ee lv_coord_t f = GET_FR(x); - 8023354: 8b7b ldrh r3, [r7, #26] - 8023356: f5a3 53fc sub.w r3, r3, #8064 ; 0x1f80 - 802335a: 3b1b subs r3, #27 - 802335c: b29b uxth r3, r3 - 802335e: 833b strh r3, [r7, #24] + 80232c0: 8b7b ldrh r3, [r7, #26] + 80232c2: f5a3 53fc sub.w r3, r3, #8064 ; 0x1f80 + 80232c6: 3b1b subs r3, #27 + 80232c8: b29b uxth r3, r3 + 80232ca: 833b strh r3, [r7, #24] c->h[i] = (free_h * f) / row_fr_cnt; - 8023360: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 8023364: f9b7 2018 ldrsh.w r2, [r7, #24] - 8023368: fb02 f303 mul.w r3, r2, r3 - 802336c: 461a mov r2, r3 - 802336e: 6b3b ldr r3, [r7, #48] ; 0x30 - 8023370: fbb2 f1f3 udiv r1, r2, r3 - 8023374: 683b ldr r3, [r7, #0] - 8023376: 68da ldr r2, [r3, #12] - 8023378: 6bfb ldr r3, [r7, #60] ; 0x3c - 802337a: 005b lsls r3, r3, #1 - 802337c: 4413 add r3, r2 - 802337e: b20a sxth r2, r1 - 8023380: 801a strh r2, [r3, #0] + 80232cc: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 80232d0: f9b7 2018 ldrsh.w r2, [r7, #24] + 80232d4: fb02 f303 mul.w r3, r2, r3 + 80232d8: 461a mov r2, r3 + 80232da: 6b3b ldr r3, [r7, #48] ; 0x30 + 80232dc: fbb2 f1f3 udiv r1, r2, r3 + 80232e0: 683b ldr r3, [r7, #0] + 80232e2: 68da ldr r2, [r3, #12] + 80232e4: 6bfb ldr r3, [r7, #60] ; 0x3c + 80232e6: 005b lsls r3, r3, #1 + 80232e8: 4413 add r3, r2 + 80232ea: b20a sxth r2, r1 + 80232ec: 801a strh r2, [r3, #0] for(i = 0; i < c->row_num; i++) { - 8023382: 6bfb ldr r3, [r7, #60] ; 0x3c - 8023384: 3301 adds r3, #1 - 8023386: 63fb str r3, [r7, #60] ; 0x3c - 8023388: 683b ldr r3, [r7, #0] - 802338a: 695b ldr r3, [r3, #20] - 802338c: 6bfa ldr r2, [r7, #60] ; 0x3c - 802338e: 429a cmp r2, r3 - 8023390: d3d4 bcc.n 802333c + 80232ee: 6bfb ldr r3, [r7, #60] ; 0x3c + 80232f0: 3301 adds r3, #1 + 80232f2: 63fb str r3, [r7, #60] ; 0x3c + 80232f4: 683b ldr r3, [r7, #0] + 80232f6: 695b ldr r3, [r3, #20] + 80232f8: 6bfa ldr r2, [r7, #60] ; 0x3c + 80232fa: 429a cmp r2, r3 + 80232fc: d3d4 bcc.n 80232a8 } } /*To avoid rounding errors set the last FR track to the remaining size */ if(last_fr_i >= 0) { - 8023392: 6a3b ldr r3, [r7, #32] - 8023394: 2b00 cmp r3, #0 - 8023396: db14 blt.n 80233c2 + 80232fe: 6a3b ldr r3, [r7, #32] + 8023300: 2b00 cmp r3, #0 + 8023302: db14 blt.n 802332e c->h[last_fr_i] = free_h - ((free_h * (row_fr_cnt - last_fr_x)) / row_fr_cnt); - 8023398: 8dba ldrh r2, [r7, #44] ; 0x2c - 802339a: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 802339e: 69f9 ldr r1, [r7, #28] - 80233a0: 6b38 ldr r0, [r7, #48] ; 0x30 - 80233a2: 1a41 subs r1, r0, r1 - 80233a4: fb03 f101 mul.w r1, r3, r1 - 80233a8: 6b3b ldr r3, [r7, #48] ; 0x30 - 80233aa: fbb1 f3f3 udiv r3, r1, r3 - 80233ae: b29b uxth r3, r3 - 80233b0: 1ad3 subs r3, r2, r3 - 80233b2: b299 uxth r1, r3 - 80233b4: 683b ldr r3, [r7, #0] - 80233b6: 68da ldr r2, [r3, #12] - 80233b8: 6a3b ldr r3, [r7, #32] - 80233ba: 005b lsls r3, r3, #1 - 80233bc: 4413 add r3, r2 - 80233be: b20a sxth r2, r1 - 80233c0: 801a strh r2, [r3, #0] + 8023304: 8dba ldrh r2, [r7, #44] ; 0x2c + 8023306: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 802330a: 69f9 ldr r1, [r7, #28] + 802330c: 6b38 ldr r0, [r7, #48] ; 0x30 + 802330e: 1a41 subs r1, r0, r1 + 8023310: fb03 f101 mul.w r1, r3, r1 + 8023314: 6b3b ldr r3, [r7, #48] ; 0x30 + 8023316: fbb1 f3f3 udiv r3, r1, r3 + 802331a: b29b uxth r3, r3 + 802331c: 1ad3 subs r3, r2, r3 + 802331e: b299 uxth r1, r3 + 8023320: 683b ldr r3, [r7, #0] + 8023322: 68da ldr r2, [r3, #12] + 8023324: 6a3b ldr r3, [r7, #32] + 8023326: 005b lsls r3, r3, #1 + 8023328: 4413 add r3, r2 + 802332a: b20a sxth r2, r1 + 802332c: 801a strh r2, [r3, #0] } } - 80233c2: bf00 nop - 80233c4: 3740 adds r7, #64 ; 0x40 - 80233c6: 46bd mov sp, r7 - 80233c8: bd80 pop {r7, pc} - 80233ca: bf00 nop - 80233cc: 00060001 .word 0x00060001 + 802332e: bf00 nop + 8023330: 3740 adds r7, #64 ; 0x40 + 8023332: 46bd mov sp, r7 + 8023334: bd80 pop {r7, pc} + 8023336: bf00 nop + 8023338: 00060001 .word 0x00060001 -080233d0 : +0802333c : * @param calc the calculated grid of `cont` * @param child_id_ext helper value if the ID of the child is know (order from the oldest) else -1 * @param grid_abs helper value, the absolute position of the grid, NULL if unknown */ static void item_repos(lv_obj_t * item, _lv_grid_calc_t * c, item_repos_hint_t * hint) { - 80233d0: b590 push {r4, r7, lr} - 80233d2: b095 sub sp, #84 ; 0x54 - 80233d4: af00 add r7, sp, #0 - 80233d6: 60f8 str r0, [r7, #12] - 80233d8: 60b9 str r1, [r7, #8] - 80233da: 607a str r2, [r7, #4] + 802333c: b590 push {r4, r7, lr} + 802333e: b095 sub sp, #84 ; 0x54 + 8023340: af00 add r7, sp, #0 + 8023342: 60f8 str r0, [r7, #12] + 8023344: 60b9 str r1, [r7, #8] + 8023346: 607a str r2, [r7, #4] if(lv_obj_has_flag_any(item, LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) return; - 80233dc: 49ab ldr r1, [pc, #684] ; (802368c ) - 80233de: 68f8 ldr r0, [r7, #12] - 80233e0: f7e3 f9e3 bl 80067aa - 80233e4: 4603 mov r3, r0 - 80233e6: 2b00 cmp r3, #0 - 80233e8: f040 8294 bne.w 8023914 + 8023348: 49ab ldr r1, [pc, #684] ; (80235f8 ) + 802334a: 68f8 ldr r0, [r7, #12] + 802334c: f7e3 f9f7 bl 800673e + 8023350: 4603 mov r3, r0 + 8023352: 2b00 cmp r3, #0 + 8023354: f040 8294 bne.w 8023880 uint32_t col_span = get_col_span(item); - 80233ec: 68f8 ldr r0, [r7, #12] - 80233ee: f7ff fb23 bl 8022a38 - 80233f2: 4603 mov r3, r0 - 80233f4: 63fb str r3, [r7, #60] ; 0x3c + 8023358: 68f8 ldr r0, [r7, #12] + 802335a: f7ff fb23 bl 80229a4 + 802335e: 4603 mov r3, r0 + 8023360: 63fb str r3, [r7, #60] ; 0x3c uint32_t row_span = get_row_span(item); - 80233f6: 68f8 ldr r0, [r7, #12] - 80233f8: f7ff fb2c bl 8022a54 - 80233fc: 4603 mov r3, r0 - 80233fe: 63bb str r3, [r7, #56] ; 0x38 + 8023362: 68f8 ldr r0, [r7, #12] + 8023364: f7ff fb2c bl 80229c0 + 8023368: 4603 mov r3, r0 + 802336a: 63bb str r3, [r7, #56] ; 0x38 if(row_span == 0 || col_span == 0) return; - 8023400: 6bbb ldr r3, [r7, #56] ; 0x38 - 8023402: 2b00 cmp r3, #0 - 8023404: f000 8288 beq.w 8023918 - 8023408: 6bfb ldr r3, [r7, #60] ; 0x3c - 802340a: 2b00 cmp r3, #0 - 802340c: f000 8284 beq.w 8023918 + 802336c: 6bbb ldr r3, [r7, #56] ; 0x38 + 802336e: 2b00 cmp r3, #0 + 8023370: f000 8288 beq.w 8023884 + 8023374: 6bfb ldr r3, [r7, #60] ; 0x3c + 8023376: 2b00 cmp r3, #0 + 8023378: f000 8284 beq.w 8023884 uint32_t col_pos = get_col_pos(item); - 8023410: 68f8 ldr r0, [r7, #12] - 8023412: f7ff faf5 bl 8022a00 - 8023416: 4603 mov r3, r0 - 8023418: 637b str r3, [r7, #52] ; 0x34 + 802337c: 68f8 ldr r0, [r7, #12] + 802337e: f7ff faf5 bl 802296c + 8023382: 4603 mov r3, r0 + 8023384: 637b str r3, [r7, #52] ; 0x34 uint32_t row_pos = get_row_pos(item); - 802341a: 68f8 ldr r0, [r7, #12] - 802341c: f7ff fafe bl 8022a1c - 8023420: 4603 mov r3, r0 - 8023422: 633b str r3, [r7, #48] ; 0x30 + 8023386: 68f8 ldr r0, [r7, #12] + 8023388: f7ff fafe bl 8022988 + 802338c: 4603 mov r3, r0 + 802338e: 633b str r3, [r7, #48] ; 0x30 lv_grid_align_t col_align = get_cell_col_align(item); - 8023424: 68f8 ldr r0, [r7, #12] - 8023426: f7ff fb23 bl 8022a70 - 802342a: 4603 mov r3, r0 - 802342c: f887 304f strb.w r3, [r7, #79] ; 0x4f + 8023390: 68f8 ldr r0, [r7, #12] + 8023392: f7ff fb23 bl 80229dc + 8023396: 4603 mov r3, r0 + 8023398: f887 304f strb.w r3, [r7, #79] ; 0x4f lv_grid_align_t row_align = get_cell_row_align(item); - 8023430: 68f8 ldr r0, [r7, #12] - 8023432: f7ff fb2b bl 8022a8c - 8023436: 4603 mov r3, r0 - 8023438: f887 302f strb.w r3, [r7, #47] ; 0x2f + 802339c: 68f8 ldr r0, [r7, #12] + 802339e: f7ff fb2b bl 80229f8 + 80233a2: 4603 mov r3, r0 + 80233a4: f887 302f strb.w r3, [r7, #47] ; 0x2f lv_coord_t col_x1 = c->x[col_pos]; - 802343c: 68bb ldr r3, [r7, #8] - 802343e: 681a ldr r2, [r3, #0] - 8023440: 6b7b ldr r3, [r7, #52] ; 0x34 - 8023442: 005b lsls r3, r3, #1 - 8023444: 4413 add r3, r2 - 8023446: 881b ldrh r3, [r3, #0] - 8023448: 85bb strh r3, [r7, #44] ; 0x2c + 80233a8: 68bb ldr r3, [r7, #8] + 80233aa: 681a ldr r2, [r3, #0] + 80233ac: 6b7b ldr r3, [r7, #52] ; 0x34 + 80233ae: 005b lsls r3, r3, #1 + 80233b0: 4413 add r3, r2 + 80233b2: 881b ldrh r3, [r3, #0] + 80233b4: 85bb strh r3, [r7, #44] ; 0x2c lv_coord_t col_x2 = c->x[col_pos + col_span - 1] + c->w[col_pos + col_span - 1]; - 802344a: 68bb ldr r3, [r7, #8] - 802344c: 681a ldr r2, [r3, #0] - 802344e: 6b79 ldr r1, [r7, #52] ; 0x34 - 8023450: 6bfb ldr r3, [r7, #60] ; 0x3c - 8023452: 440b add r3, r1 - 8023454: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 - 8023458: 3b01 subs r3, #1 - 802345a: 005b lsls r3, r3, #1 - 802345c: 4413 add r3, r2 - 802345e: f9b3 3000 ldrsh.w r3, [r3] - 8023462: b29a uxth r2, r3 - 8023464: 68bb ldr r3, [r7, #8] - 8023466: 6899 ldr r1, [r3, #8] - 8023468: 6b78 ldr r0, [r7, #52] ; 0x34 - 802346a: 6bfb ldr r3, [r7, #60] ; 0x3c - 802346c: 4403 add r3, r0 - 802346e: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 - 8023472: 3b01 subs r3, #1 - 8023474: 005b lsls r3, r3, #1 - 8023476: 440b add r3, r1 - 8023478: f9b3 3000 ldrsh.w r3, [r3] - 802347c: b29b uxth r3, r3 - 802347e: 4413 add r3, r2 - 8023480: b29b uxth r3, r3 - 8023482: 857b strh r3, [r7, #42] ; 0x2a + 80233b6: 68bb ldr r3, [r7, #8] + 80233b8: 681a ldr r2, [r3, #0] + 80233ba: 6b79 ldr r1, [r7, #52] ; 0x34 + 80233bc: 6bfb ldr r3, [r7, #60] ; 0x3c + 80233be: 440b add r3, r1 + 80233c0: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 + 80233c4: 3b01 subs r3, #1 + 80233c6: 005b lsls r3, r3, #1 + 80233c8: 4413 add r3, r2 + 80233ca: f9b3 3000 ldrsh.w r3, [r3] + 80233ce: b29a uxth r2, r3 + 80233d0: 68bb ldr r3, [r7, #8] + 80233d2: 6899 ldr r1, [r3, #8] + 80233d4: 6b78 ldr r0, [r7, #52] ; 0x34 + 80233d6: 6bfb ldr r3, [r7, #60] ; 0x3c + 80233d8: 4403 add r3, r0 + 80233da: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 + 80233de: 3b01 subs r3, #1 + 80233e0: 005b lsls r3, r3, #1 + 80233e2: 440b add r3, r1 + 80233e4: f9b3 3000 ldrsh.w r3, [r3] + 80233e8: b29b uxth r3, r3 + 80233ea: 4413 add r3, r2 + 80233ec: b29b uxth r3, r3 + 80233ee: 857b strh r3, [r7, #42] ; 0x2a lv_coord_t col_w = col_x2 - col_x1; - 8023484: 8d7a ldrh r2, [r7, #42] ; 0x2a - 8023486: 8dbb ldrh r3, [r7, #44] ; 0x2c - 8023488: 1ad3 subs r3, r2, r3 - 802348a: b29b uxth r3, r3 - 802348c: 853b strh r3, [r7, #40] ; 0x28 + 80233f0: 8d7a ldrh r2, [r7, #42] ; 0x2a + 80233f2: 8dbb ldrh r3, [r7, #44] ; 0x2c + 80233f4: 1ad3 subs r3, r2, r3 + 80233f6: b29b uxth r3, r3 + 80233f8: 853b strh r3, [r7, #40] ; 0x28 lv_coord_t row_y1 = c->y[row_pos]; - 802348e: 68bb ldr r3, [r7, #8] - 8023490: 685a ldr r2, [r3, #4] - 8023492: 6b3b ldr r3, [r7, #48] ; 0x30 - 8023494: 005b lsls r3, r3, #1 - 8023496: 4413 add r3, r2 - 8023498: 881b ldrh r3, [r3, #0] - 802349a: 84fb strh r3, [r7, #38] ; 0x26 + 80233fa: 68bb ldr r3, [r7, #8] + 80233fc: 685a ldr r2, [r3, #4] + 80233fe: 6b3b ldr r3, [r7, #48] ; 0x30 + 8023400: 005b lsls r3, r3, #1 + 8023402: 4413 add r3, r2 + 8023404: 881b ldrh r3, [r3, #0] + 8023406: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t row_y2 = c->y[row_pos + row_span - 1] + c->h[row_pos + row_span - 1]; - 802349c: 68bb ldr r3, [r7, #8] - 802349e: 685a ldr r2, [r3, #4] - 80234a0: 6b39 ldr r1, [r7, #48] ; 0x30 - 80234a2: 6bbb ldr r3, [r7, #56] ; 0x38 - 80234a4: 440b add r3, r1 - 80234a6: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 - 80234aa: 3b01 subs r3, #1 - 80234ac: 005b lsls r3, r3, #1 - 80234ae: 4413 add r3, r2 - 80234b0: f9b3 3000 ldrsh.w r3, [r3] - 80234b4: b29a uxth r2, r3 - 80234b6: 68bb ldr r3, [r7, #8] - 80234b8: 68d9 ldr r1, [r3, #12] - 80234ba: 6b38 ldr r0, [r7, #48] ; 0x30 - 80234bc: 6bbb ldr r3, [r7, #56] ; 0x38 - 80234be: 4403 add r3, r0 - 80234c0: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 - 80234c4: 3b01 subs r3, #1 - 80234c6: 005b lsls r3, r3, #1 - 80234c8: 440b add r3, r1 - 80234ca: f9b3 3000 ldrsh.w r3, [r3] - 80234ce: b29b uxth r3, r3 - 80234d0: 4413 add r3, r2 - 80234d2: b29b uxth r3, r3 - 80234d4: 84bb strh r3, [r7, #36] ; 0x24 + 8023408: 68bb ldr r3, [r7, #8] + 802340a: 685a ldr r2, [r3, #4] + 802340c: 6b39 ldr r1, [r7, #48] ; 0x30 + 802340e: 6bbb ldr r3, [r7, #56] ; 0x38 + 8023410: 440b add r3, r1 + 8023412: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 + 8023416: 3b01 subs r3, #1 + 8023418: 005b lsls r3, r3, #1 + 802341a: 4413 add r3, r2 + 802341c: f9b3 3000 ldrsh.w r3, [r3] + 8023420: b29a uxth r2, r3 + 8023422: 68bb ldr r3, [r7, #8] + 8023424: 68d9 ldr r1, [r3, #12] + 8023426: 6b38 ldr r0, [r7, #48] ; 0x30 + 8023428: 6bbb ldr r3, [r7, #56] ; 0x38 + 802342a: 4403 add r3, r0 + 802342c: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 + 8023430: 3b01 subs r3, #1 + 8023432: 005b lsls r3, r3, #1 + 8023434: 440b add r3, r1 + 8023436: f9b3 3000 ldrsh.w r3, [r3] + 802343a: b29b uxth r3, r3 + 802343c: 4413 add r3, r2 + 802343e: b29b uxth r3, r3 + 8023440: 84bb strh r3, [r7, #36] ; 0x24 lv_coord_t row_h = row_y2 - row_y1; - 80234d6: 8cba ldrh r2, [r7, #36] ; 0x24 - 80234d8: 8cfb ldrh r3, [r7, #38] ; 0x26 - 80234da: 1ad3 subs r3, r2, r3 - 80234dc: b29b uxth r3, r3 - 80234de: 847b strh r3, [r7, #34] ; 0x22 + 8023442: 8cba ldrh r2, [r7, #36] ; 0x24 + 8023444: 8cfb ldrh r3, [r7, #38] ; 0x26 + 8023446: 1ad3 subs r3, r2, r3 + 8023448: b29b uxth r3, r3 + 802344a: 847b strh r3, [r7, #34] ; 0x22 /*If the item has RTL base dir switch start and end*/ if(lv_obj_get_style_base_dir(item, LV_PART_MAIN) == LV_BASE_DIR_RTL) { - 80234e0: 2100 movs r1, #0 - 80234e2: 68f8 ldr r0, [r7, #12] - 80234e4: f7ff f982 bl 80227ec - 80234e8: 4603 mov r3, r0 - 80234ea: 2b01 cmp r3, #1 - 80234ec: d10e bne.n 802350c + 802344c: 2100 movs r1, #0 + 802344e: 68f8 ldr r0, [r7, #12] + 8023450: f7ff f982 bl 8022758 + 8023454: 4603 mov r3, r0 + 8023456: 2b01 cmp r3, #1 + 8023458: d10e bne.n 8023478 if(col_align == LV_GRID_ALIGN_START) col_align = LV_GRID_ALIGN_END; - 80234ee: f897 304f ldrb.w r3, [r7, #79] ; 0x4f - 80234f2: 2b00 cmp r3, #0 - 80234f4: d103 bne.n 80234fe - 80234f6: 2302 movs r3, #2 - 80234f8: f887 304f strb.w r3, [r7, #79] ; 0x4f - 80234fc: e006 b.n 802350c + 802345a: f897 304f ldrb.w r3, [r7, #79] ; 0x4f + 802345e: 2b00 cmp r3, #0 + 8023460: d103 bne.n 802346a + 8023462: 2302 movs r3, #2 + 8023464: f887 304f strb.w r3, [r7, #79] ; 0x4f + 8023468: e006 b.n 8023478 else if(col_align == LV_GRID_ALIGN_END) col_align = LV_GRID_ALIGN_START; - 80234fe: f897 304f ldrb.w r3, [r7, #79] ; 0x4f - 8023502: 2b02 cmp r3, #2 - 8023504: d102 bne.n 802350c - 8023506: 2300 movs r3, #0 - 8023508: f887 304f strb.w r3, [r7, #79] ; 0x4f + 802346a: f897 304f ldrb.w r3, [r7, #79] ; 0x4f + 802346e: 2b02 cmp r3, #2 + 8023470: d102 bne.n 8023478 + 8023472: 2300 movs r3, #0 + 8023474: f887 304f strb.w r3, [r7, #79] ; 0x4f } lv_coord_t x; lv_coord_t y; lv_coord_t item_w = lv_area_get_width(&item->coords); - 802350c: 68fb ldr r3, [r7, #12] - 802350e: 3314 adds r3, #20 - 8023510: 4618 mov r0, r3 - 8023512: f7ff f894 bl 802263e - 8023516: 4603 mov r3, r0 - 8023518: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 + 8023478: 68fb ldr r3, [r7, #12] + 802347a: 3314 adds r3, #20 + 802347c: 4618 mov r0, r3 + 802347e: f7ff f894 bl 80225aa + 8023482: 4603 mov r3, r0 + 8023484: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 lv_coord_t item_h = lv_area_get_height(&item->coords); - 802351c: 68fb ldr r3, [r7, #12] - 802351e: 3314 adds r3, #20 - 8023520: 4618 mov r0, r3 - 8023522: f7ff f8a2 bl 802266a - 8023526: 4603 mov r3, r0 - 8023528: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 8023488: 68fb ldr r3, [r7, #12] + 802348a: 3314 adds r3, #20 + 802348c: 4618 mov r0, r3 + 802348e: f7ff f8a2 bl 80225d6 + 8023492: 4603 mov r3, r0 + 8023494: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 switch(col_align) { - 802352c: f897 304f ldrb.w r3, [r7, #79] ; 0x4f - 8023530: 2b03 cmp r3, #3 - 8023532: d015 beq.n 8023560 - 8023534: 2b03 cmp r3, #3 - 8023536: dc03 bgt.n 8023540 - 8023538: 2b01 cmp r3, #1 - 802353a: d024 beq.n 8023586 - 802353c: 2b02 cmp r3, #2 - 802353e: d03f beq.n 80235c0 + 8023498: f897 304f ldrb.w r3, [r7, #79] ; 0x4f + 802349c: 2b03 cmp r3, #3 + 802349e: d015 beq.n 80234cc + 80234a0: 2b03 cmp r3, #3 + 80234a2: dc03 bgt.n 80234ac + 80234a4: 2b01 cmp r3, #1 + 80234a6: d024 beq.n 80234f2 + 80234a8: 2b02 cmp r3, #2 + 80234aa: d03f beq.n 802352c default: case LV_GRID_ALIGN_START: x = c->x[col_pos]; - 8023540: 68bb ldr r3, [r7, #8] - 8023542: 681a ldr r2, [r3, #0] - 8023544: 6b7b ldr r3, [r7, #52] ; 0x34 - 8023546: 005b lsls r3, r3, #1 - 8023548: 4413 add r3, r2 - 802354a: 881b ldrh r3, [r3, #0] - 802354c: f8a7 304c strh.w r3, [r7, #76] ; 0x4c + 80234ac: 68bb ldr r3, [r7, #8] + 80234ae: 681a ldr r2, [r3, #0] + 80234b0: 6b7b ldr r3, [r7, #52] ; 0x34 + 80234b2: 005b lsls r3, r3, #1 + 80234b4: 4413 add r3, r2 + 80234b6: 881b ldrh r3, [r3, #0] + 80234b8: f8a7 304c strh.w r3, [r7, #76] ; 0x4c item->w_layout = 0; - 8023550: 68fa ldr r2, [r7, #12] - 8023552: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 - 8023556: f36f 0382 bfc r3, #2, #1 - 802355a: f882 3023 strb.w r3, [r2, #35] ; 0x23 + 80234bc: 68fa ldr r2, [r7, #12] + 80234be: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 + 80234c2: f36f 0382 bfc r3, #2, #1 + 80234c6: f882 3023 strb.w r3, [r2, #35] ; 0x23 break; - 802355e: e04b b.n 80235f8 + 80234ca: e04b b.n 8023564 case LV_GRID_ALIGN_STRETCH: x = c->x[col_pos]; - 8023560: 68bb ldr r3, [r7, #8] - 8023562: 681a ldr r2, [r3, #0] - 8023564: 6b7b ldr r3, [r7, #52] ; 0x34 - 8023566: 005b lsls r3, r3, #1 - 8023568: 4413 add r3, r2 - 802356a: 881b ldrh r3, [r3, #0] - 802356c: f8a7 304c strh.w r3, [r7, #76] ; 0x4c + 80234cc: 68bb ldr r3, [r7, #8] + 80234ce: 681a ldr r2, [r3, #0] + 80234d0: 6b7b ldr r3, [r7, #52] ; 0x34 + 80234d2: 005b lsls r3, r3, #1 + 80234d4: 4413 add r3, r2 + 80234d6: 881b ldrh r3, [r3, #0] + 80234d8: f8a7 304c strh.w r3, [r7, #76] ; 0x4c item_w = col_w; - 8023570: 8d3b ldrh r3, [r7, #40] ; 0x28 - 8023572: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 + 80234dc: 8d3b ldrh r3, [r7, #40] ; 0x28 + 80234de: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 item->w_layout = 1; - 8023576: 68fa ldr r2, [r7, #12] - 8023578: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 - 802357c: f043 0304 orr.w r3, r3, #4 - 8023580: f882 3023 strb.w r3, [r2, #35] ; 0x23 + 80234e2: 68fa ldr r2, [r7, #12] + 80234e4: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 + 80234e8: f043 0304 orr.w r3, r3, #4 + 80234ec: f882 3023 strb.w r3, [r2, #35] ; 0x23 break; - 8023584: e038 b.n 80235f8 + 80234f0: e038 b.n 8023564 case LV_GRID_ALIGN_CENTER: x = c->x[col_pos] + (col_w - item_w) / 2; - 8023586: 68bb ldr r3, [r7, #8] - 8023588: 681a ldr r2, [r3, #0] - 802358a: 6b7b ldr r3, [r7, #52] ; 0x34 - 802358c: 005b lsls r3, r3, #1 - 802358e: 4413 add r3, r2 - 8023590: f9b3 3000 ldrsh.w r3, [r3] - 8023594: b29a uxth r2, r3 - 8023596: f9b7 1028 ldrsh.w r1, [r7, #40] ; 0x28 - 802359a: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 - 802359e: 1acb subs r3, r1, r3 - 80235a0: 0fd9 lsrs r1, r3, #31 - 80235a2: 440b add r3, r1 - 80235a4: 105b asrs r3, r3, #1 - 80235a6: b29b uxth r3, r3 - 80235a8: 4413 add r3, r2 - 80235aa: b29b uxth r3, r3 - 80235ac: f8a7 304c strh.w r3, [r7, #76] ; 0x4c + 80234f2: 68bb ldr r3, [r7, #8] + 80234f4: 681a ldr r2, [r3, #0] + 80234f6: 6b7b ldr r3, [r7, #52] ; 0x34 + 80234f8: 005b lsls r3, r3, #1 + 80234fa: 4413 add r3, r2 + 80234fc: f9b3 3000 ldrsh.w r3, [r3] + 8023500: b29a uxth r2, r3 + 8023502: f9b7 1028 ldrsh.w r1, [r7, #40] ; 0x28 + 8023506: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 + 802350a: 1acb subs r3, r1, r3 + 802350c: 0fd9 lsrs r1, r3, #31 + 802350e: 440b add r3, r1 + 8023510: 105b asrs r3, r3, #1 + 8023512: b29b uxth r3, r3 + 8023514: 4413 add r3, r2 + 8023516: b29b uxth r3, r3 + 8023518: f8a7 304c strh.w r3, [r7, #76] ; 0x4c item->w_layout = 0; - 80235b0: 68fa ldr r2, [r7, #12] - 80235b2: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 - 80235b6: f36f 0382 bfc r3, #2, #1 - 80235ba: f882 3023 strb.w r3, [r2, #35] ; 0x23 + 802351c: 68fa ldr r2, [r7, #12] + 802351e: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 + 8023522: f36f 0382 bfc r3, #2, #1 + 8023526: f882 3023 strb.w r3, [r2, #35] ; 0x23 break; - 80235be: e01b b.n 80235f8 + 802352a: e01b b.n 8023564 case LV_GRID_ALIGN_END: x = c->x[col_pos] + col_w - lv_obj_get_width(item); - 80235c0: 68bb ldr r3, [r7, #8] - 80235c2: 681a ldr r2, [r3, #0] - 80235c4: 6b7b ldr r3, [r7, #52] ; 0x34 - 80235c6: 005b lsls r3, r3, #1 - 80235c8: 4413 add r3, r2 - 80235ca: f9b3 3000 ldrsh.w r3, [r3] - 80235ce: b29a uxth r2, r3 - 80235d0: 8d3b ldrh r3, [r7, #40] ; 0x28 - 80235d2: 4413 add r3, r2 - 80235d4: b29c uxth r4, r3 - 80235d6: 68f8 ldr r0, [r7, #12] - 80235d8: f7e6 fdb6 bl 800a148 - 80235dc: 4603 mov r3, r0 - 80235de: b29b uxth r3, r3 - 80235e0: 1ae3 subs r3, r4, r3 - 80235e2: b29b uxth r3, r3 - 80235e4: f8a7 304c strh.w r3, [r7, #76] ; 0x4c + 802352c: 68bb ldr r3, [r7, #8] + 802352e: 681a ldr r2, [r3, #0] + 8023530: 6b7b ldr r3, [r7, #52] ; 0x34 + 8023532: 005b lsls r3, r3, #1 + 8023534: 4413 add r3, r2 + 8023536: f9b3 3000 ldrsh.w r3, [r3] + 802353a: b29a uxth r2, r3 + 802353c: 8d3b ldrh r3, [r7, #40] ; 0x28 + 802353e: 4413 add r3, r2 + 8023540: b29c uxth r4, r3 + 8023542: 68f8 ldr r0, [r7, #12] + 8023544: f7e6 fdca bl 800a0dc + 8023548: 4603 mov r3, r0 + 802354a: b29b uxth r3, r3 + 802354c: 1ae3 subs r3, r4, r3 + 802354e: b29b uxth r3, r3 + 8023550: f8a7 304c strh.w r3, [r7, #76] ; 0x4c item->w_layout = 0; - 80235e8: 68fa ldr r2, [r7, #12] - 80235ea: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 - 80235ee: f36f 0382 bfc r3, #2, #1 - 80235f2: f882 3023 strb.w r3, [r2, #35] ; 0x23 + 8023554: 68fa ldr r2, [r7, #12] + 8023556: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 + 802355a: f36f 0382 bfc r3, #2, #1 + 802355e: f882 3023 strb.w r3, [r2, #35] ; 0x23 break; - 80235f6: bf00 nop + 8023562: bf00 nop } switch(row_align) { - 80235f8: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 80235fc: 2b03 cmp r3, #3 - 80235fe: d015 beq.n 802362c - 8023600: 2b03 cmp r3, #3 - 8023602: dc03 bgt.n 802360c - 8023604: 2b01 cmp r3, #1 - 8023606: d024 beq.n 8023652 - 8023608: 2b02 cmp r3, #2 - 802360a: d041 beq.n 8023690 + 8023564: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8023568: 2b03 cmp r3, #3 + 802356a: d015 beq.n 8023598 + 802356c: 2b03 cmp r3, #3 + 802356e: dc03 bgt.n 8023578 + 8023570: 2b01 cmp r3, #1 + 8023572: d024 beq.n 80235be + 8023574: 2b02 cmp r3, #2 + 8023576: d041 beq.n 80235fc default: case LV_GRID_ALIGN_START: y = c->y[row_pos]; - 802360c: 68bb ldr r3, [r7, #8] - 802360e: 685a ldr r2, [r3, #4] - 8023610: 6b3b ldr r3, [r7, #48] ; 0x30 - 8023612: 005b lsls r3, r3, #1 - 8023614: 4413 add r3, r2 - 8023616: 881b ldrh r3, [r3, #0] - 8023618: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 8023578: 68bb ldr r3, [r7, #8] + 802357a: 685a ldr r2, [r3, #4] + 802357c: 6b3b ldr r3, [r7, #48] ; 0x30 + 802357e: 005b lsls r3, r3, #1 + 8023580: 4413 add r3, r2 + 8023582: 881b ldrh r3, [r3, #0] + 8023584: f8a7 304a strh.w r3, [r7, #74] ; 0x4a item->h_layout = 0; - 802361c: 68fa ldr r2, [r7, #12] - 802361e: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 - 8023622: f36f 0341 bfc r3, #1, #1 - 8023626: f882 3023 strb.w r3, [r2, #35] ; 0x23 + 8023588: 68fa ldr r2, [r7, #12] + 802358a: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 + 802358e: f36f 0341 bfc r3, #1, #1 + 8023592: f882 3023 strb.w r3, [r2, #35] ; 0x23 break; - 802362a: e04d b.n 80236c8 + 8023596: e04d b.n 8023634 case LV_GRID_ALIGN_STRETCH: y = c->y[row_pos]; - 802362c: 68bb ldr r3, [r7, #8] - 802362e: 685a ldr r2, [r3, #4] - 8023630: 6b3b ldr r3, [r7, #48] ; 0x30 - 8023632: 005b lsls r3, r3, #1 - 8023634: 4413 add r3, r2 - 8023636: 881b ldrh r3, [r3, #0] - 8023638: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 8023598: 68bb ldr r3, [r7, #8] + 802359a: 685a ldr r2, [r3, #4] + 802359c: 6b3b ldr r3, [r7, #48] ; 0x30 + 802359e: 005b lsls r3, r3, #1 + 80235a0: 4413 add r3, r2 + 80235a2: 881b ldrh r3, [r3, #0] + 80235a4: f8a7 304a strh.w r3, [r7, #74] ; 0x4a item_h = row_h; - 802363c: 8c7b ldrh r3, [r7, #34] ; 0x22 - 802363e: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 80235a8: 8c7b ldrh r3, [r7, #34] ; 0x22 + 80235aa: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 item->h_layout = 1; - 8023642: 68fa ldr r2, [r7, #12] - 8023644: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 - 8023648: f043 0302 orr.w r3, r3, #2 - 802364c: f882 3023 strb.w r3, [r2, #35] ; 0x23 + 80235ae: 68fa ldr r2, [r7, #12] + 80235b0: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 + 80235b4: f043 0302 orr.w r3, r3, #2 + 80235b8: f882 3023 strb.w r3, [r2, #35] ; 0x23 break; - 8023650: e03a b.n 80236c8 + 80235bc: e03a b.n 8023634 case LV_GRID_ALIGN_CENTER: y = c->y[row_pos] + (row_h - item_h) / 2; - 8023652: 68bb ldr r3, [r7, #8] - 8023654: 685a ldr r2, [r3, #4] - 8023656: 6b3b ldr r3, [r7, #48] ; 0x30 - 8023658: 005b lsls r3, r3, #1 - 802365a: 4413 add r3, r2 - 802365c: f9b3 3000 ldrsh.w r3, [r3] - 8023660: b29a uxth r2, r3 - 8023662: f9b7 1022 ldrsh.w r1, [r7, #34] ; 0x22 - 8023666: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 - 802366a: 1acb subs r3, r1, r3 - 802366c: 0fd9 lsrs r1, r3, #31 - 802366e: 440b add r3, r1 - 8023670: 105b asrs r3, r3, #1 - 8023672: b29b uxth r3, r3 - 8023674: 4413 add r3, r2 - 8023676: b29b uxth r3, r3 - 8023678: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 80235be: 68bb ldr r3, [r7, #8] + 80235c0: 685a ldr r2, [r3, #4] + 80235c2: 6b3b ldr r3, [r7, #48] ; 0x30 + 80235c4: 005b lsls r3, r3, #1 + 80235c6: 4413 add r3, r2 + 80235c8: f9b3 3000 ldrsh.w r3, [r3] + 80235cc: b29a uxth r2, r3 + 80235ce: f9b7 1022 ldrsh.w r1, [r7, #34] ; 0x22 + 80235d2: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 + 80235d6: 1acb subs r3, r1, r3 + 80235d8: 0fd9 lsrs r1, r3, #31 + 80235da: 440b add r3, r1 + 80235dc: 105b asrs r3, r3, #1 + 80235de: b29b uxth r3, r3 + 80235e0: 4413 add r3, r2 + 80235e2: b29b uxth r3, r3 + 80235e4: f8a7 304a strh.w r3, [r7, #74] ; 0x4a item->h_layout = 0; - 802367c: 68fa ldr r2, [r7, #12] - 802367e: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 - 8023682: f36f 0341 bfc r3, #1, #1 - 8023686: f882 3023 strb.w r3, [r2, #35] ; 0x23 + 80235e8: 68fa ldr r2, [r7, #12] + 80235ea: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 + 80235ee: f36f 0341 bfc r3, #1, #1 + 80235f2: f882 3023 strb.w r3, [r2, #35] ; 0x23 break; - 802368a: e01d b.n 80236c8 - 802368c: 00060001 .word 0x00060001 + 80235f6: e01d b.n 8023634 + 80235f8: 00060001 .word 0x00060001 case LV_GRID_ALIGN_END: y = c->y[row_pos] + row_h - lv_obj_get_height(item); - 8023690: 68bb ldr r3, [r7, #8] - 8023692: 685a ldr r2, [r3, #4] - 8023694: 6b3b ldr r3, [r7, #48] ; 0x30 - 8023696: 005b lsls r3, r3, #1 - 8023698: 4413 add r3, r2 - 802369a: f9b3 3000 ldrsh.w r3, [r3] - 802369e: b29a uxth r2, r3 - 80236a0: 8c7b ldrh r3, [r7, #34] ; 0x22 - 80236a2: 4413 add r3, r2 - 80236a4: b29c uxth r4, r3 - 80236a6: 68f8 ldr r0, [r7, #12] - 80236a8: f7e6 fd5c bl 800a164 - 80236ac: 4603 mov r3, r0 - 80236ae: b29b uxth r3, r3 - 80236b0: 1ae3 subs r3, r4, r3 - 80236b2: b29b uxth r3, r3 - 80236b4: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 80235fc: 68bb ldr r3, [r7, #8] + 80235fe: 685a ldr r2, [r3, #4] + 8023600: 6b3b ldr r3, [r7, #48] ; 0x30 + 8023602: 005b lsls r3, r3, #1 + 8023604: 4413 add r3, r2 + 8023606: f9b3 3000 ldrsh.w r3, [r3] + 802360a: b29a uxth r2, r3 + 802360c: 8c7b ldrh r3, [r7, #34] ; 0x22 + 802360e: 4413 add r3, r2 + 8023610: b29c uxth r4, r3 + 8023612: 68f8 ldr r0, [r7, #12] + 8023614: f7e6 fd70 bl 800a0f8 + 8023618: 4603 mov r3, r0 + 802361a: b29b uxth r3, r3 + 802361c: 1ae3 subs r3, r4, r3 + 802361e: b29b uxth r3, r3 + 8023620: f8a7 304a strh.w r3, [r7, #74] ; 0x4a item->h_layout = 0; - 80236b8: 68fa ldr r2, [r7, #12] - 80236ba: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 - 80236be: f36f 0341 bfc r3, #1, #1 - 80236c2: f882 3023 strb.w r3, [r2, #35] ; 0x23 + 8023624: 68fa ldr r2, [r7, #12] + 8023626: f892 3023 ldrb.w r3, [r2, #35] ; 0x23 + 802362a: f36f 0341 bfc r3, #1, #1 + 802362e: f882 3023 strb.w r3, [r2, #35] ; 0x23 break; - 80236c6: bf00 nop + 8023632: bf00 nop } /*Set a new size if required*/ if(lv_obj_get_width(item) != item_w || lv_obj_get_height(item) != item_h) { - 80236c8: 68f8 ldr r0, [r7, #12] - 80236ca: f7e6 fd3d bl 800a148 - 80236ce: 4603 mov r3, r0 - 80236d0: 461a mov r2, r3 - 80236d2: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 - 80236d6: 4293 cmp r3, r2 - 80236d8: d108 bne.n 80236ec - 80236da: 68f8 ldr r0, [r7, #12] - 80236dc: f7e6 fd42 bl 800a164 - 80236e0: 4603 mov r3, r0 - 80236e2: 461a mov r2, r3 - 80236e4: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 - 80236e8: 4293 cmp r3, r2 - 80236ea: d02e beq.n 802374a + 8023634: 68f8 ldr r0, [r7, #12] + 8023636: f7e6 fd51 bl 800a0dc + 802363a: 4603 mov r3, r0 + 802363c: 461a mov r2, r3 + 802363e: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 + 8023642: 4293 cmp r3, r2 + 8023644: d108 bne.n 8023658 + 8023646: 68f8 ldr r0, [r7, #12] + 8023648: f7e6 fd56 bl 800a0f8 + 802364c: 4603 mov r3, r0 + 802364e: 461a mov r2, r3 + 8023650: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 + 8023654: 4293 cmp r3, r2 + 8023656: d02e beq.n 80236b6 lv_area_t old_coords; lv_area_copy(&old_coords, &item->coords); - 80236ec: 68fb ldr r3, [r7, #12] - 80236ee: f103 0214 add.w r2, r3, #20 - 80236f2: f107 0310 add.w r3, r7, #16 - 80236f6: 4611 mov r1, r2 - 80236f8: 4618 mov r0, r3 - 80236fa: f7fe ff82 bl 8022602 + 8023658: 68fb ldr r3, [r7, #12] + 802365a: f103 0214 add.w r2, r3, #20 + 802365e: f107 0310 add.w r3, r7, #16 + 8023662: 4611 mov r1, r2 + 8023664: 4618 mov r0, r3 + 8023666: f7fe ff82 bl 802256e lv_obj_invalidate(item); - 80236fe: 68f8 ldr r0, [r7, #12] - 8023700: f7e7 f9d7 bl 800aab2 + 802366a: 68f8 ldr r0, [r7, #12] + 802366c: f7e7 f9eb bl 800aa46 lv_area_set_width(&item->coords, item_w); - 8023704: 68fb ldr r3, [r7, #12] - 8023706: 3314 adds r3, #20 - 8023708: f9b7 2048 ldrsh.w r2, [r7, #72] ; 0x48 - 802370c: 4611 mov r1, r2 - 802370e: 4618 mov r0, r3 - 8023710: f00d fc12 bl 8030f38 + 8023670: 68fb ldr r3, [r7, #12] + 8023672: 3314 adds r3, #20 + 8023674: f9b7 2048 ldrsh.w r2, [r7, #72] ; 0x48 + 8023678: 4611 mov r1, r2 + 802367a: 4618 mov r0, r3 + 802367c: f00d fc12 bl 8030ea4 lv_area_set_height(&item->coords, item_h); - 8023714: 68fb ldr r3, [r7, #12] - 8023716: 3314 adds r3, #20 - 8023718: f9b7 2046 ldrsh.w r2, [r7, #70] ; 0x46 - 802371c: 4611 mov r1, r2 - 802371e: 4618 mov r0, r3 - 8023720: f00d fc21 bl 8030f66 + 8023680: 68fb ldr r3, [r7, #12] + 8023682: 3314 adds r3, #20 + 8023684: f9b7 2046 ldrsh.w r2, [r7, #70] ; 0x46 + 8023688: 4611 mov r1, r2 + 802368a: 4618 mov r0, r3 + 802368c: f00d fc21 bl 8030ed2 lv_obj_invalidate(item); - 8023724: 68f8 ldr r0, [r7, #12] - 8023726: f7e7 f9c4 bl 800aab2 + 8023690: 68f8 ldr r0, [r7, #12] + 8023692: f7e7 f9d8 bl 800aa46 lv_event_send(item, LV_EVENT_SIZE_CHANGED, &old_coords); - 802372a: f107 0310 add.w r3, r7, #16 - 802372e: 461a mov r2, r3 - 8023730: 2129 movs r1, #41 ; 0x29 - 8023732: 68f8 ldr r0, [r7, #12] - 8023734: f7de fea4 bl 8002480 + 8023696: f107 0310 add.w r3, r7, #16 + 802369a: 461a mov r2, r3 + 802369c: 2129 movs r1, #41 ; 0x29 + 802369e: 68f8 ldr r0, [r7, #12] + 80236a0: f7de feb8 bl 8002414 lv_event_send(lv_obj_get_parent(item), LV_EVENT_CHILD_CHANGED, item); - 8023738: 68f8 ldr r0, [r7, #12] - 802373a: f7eb ffe7 bl 800f70c - 802373e: 4603 mov r3, r0 - 8023740: 68fa ldr r2, [r7, #12] - 8023742: 2122 movs r1, #34 ; 0x22 - 8023744: 4618 mov r0, r3 - 8023746: f7de fe9b bl 8002480 + 80236a4: 68f8 ldr r0, [r7, #12] + 80236a6: f7eb ffe7 bl 800f678 + 80236aa: 4603 mov r3, r0 + 80236ac: 68fa ldr r2, [r7, #12] + 80236ae: 2122 movs r1, #34 ; 0x22 + 80236b0: 4618 mov r0, r3 + 80236b2: f7de feaf bl 8002414 } /*Handle percentage value of translate*/ lv_coord_t tr_x = lv_obj_get_style_translate_x(item, LV_PART_MAIN); - 802374a: 2100 movs r1, #0 - 802374c: 68f8 ldr r0, [r7, #12] - 802374e: f7fe ffc8 bl 80226e2 - 8023752: 4603 mov r3, r0 - 8023754: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 + 80236b6: 2100 movs r1, #0 + 80236b8: 68f8 ldr r0, [r7, #12] + 80236ba: f7fe ffc8 bl 802264e + 80236be: 4603 mov r3, r0 + 80236c0: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 lv_coord_t tr_y = lv_obj_get_style_translate_y(item, LV_PART_MAIN); - 8023758: 2100 movs r1, #0 - 802375a: 68f8 ldr r0, [r7, #12] - 802375c: f7fe ffd4 bl 8022708 - 8023760: 4603 mov r3, r0 - 8023762: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 80236c4: 2100 movs r1, #0 + 80236c6: 68f8 ldr r0, [r7, #12] + 80236c8: f7fe ffd4 bl 8022674 + 80236cc: 4603 mov r3, r0 + 80236ce: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 lv_coord_t w = lv_obj_get_width(item); - 8023766: 68f8 ldr r0, [r7, #12] - 8023768: f7e6 fcee bl 800a148 - 802376c: 4603 mov r3, r0 - 802376e: 843b strh r3, [r7, #32] + 80236d2: 68f8 ldr r0, [r7, #12] + 80236d4: f7e6 fd02 bl 800a0dc + 80236d8: 4603 mov r3, r0 + 80236da: 843b strh r3, [r7, #32] lv_coord_t h = lv_obj_get_height(item); - 8023770: 68f8 ldr r0, [r7, #12] - 8023772: f7e6 fcf7 bl 800a164 - 8023776: 4603 mov r3, r0 - 8023778: 83fb strh r3, [r7, #30] + 80236dc: 68f8 ldr r0, [r7, #12] + 80236de: f7e6 fd0b bl 800a0f8 + 80236e2: 4603 mov r3, r0 + 80236e4: 83fb strh r3, [r7, #30] if(LV_COORD_IS_PCT(tr_x)) tr_x = (w * LV_COORD_GET_PCT(tr_x)) / 100; - 802377a: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 - 802377e: f403 43c0 and.w r3, r3, #24576 ; 0x6000 - 8023782: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 8023786: d128 bne.n 80237da - 8023788: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 + 80236e6: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 + 80236ea: f403 43c0 and.w r3, r3, #24576 ; 0x6000 + 80236ee: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 80236f2: d128 bne.n 8023746 + 80236f4: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 + 80236f8: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 80236fc: b21b sxth r3, r3 + 80236fe: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 + 8023702: dc20 bgt.n 8023746 + 8023704: f9b7 2020 ldrsh.w r2, [r7, #32] + 8023708: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 + 802370c: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 8023710: b21b sxth r3, r3 + 8023712: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 + 8023716: dd07 ble.n 8023728 + 8023718: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 + 802371c: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 8023720: b21b sxth r3, r3 + 8023722: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 8023726: e004 b.n 8023732 + 8023728: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 + 802372c: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 8023730: b21b sxth r3, r3 + 8023732: fb02 f303 mul.w r3, r2, r3 + 8023736: 4a55 ldr r2, [pc, #340] ; (802388c ) + 8023738: fb82 1203 smull r1, r2, r2, r3 + 802373c: 1152 asrs r2, r2, #5 + 802373e: 17db asrs r3, r3, #31 + 8023740: 1ad3 subs r3, r2, r3 + 8023742: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 + if(LV_COORD_IS_PCT(tr_y)) tr_y = (h * LV_COORD_GET_PCT(tr_y)) / 100; + 8023746: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 802374a: f403 43c0 and.w r3, r3, #24576 ; 0x6000 + 802374e: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 8023752: d128 bne.n 80237a6 + 8023754: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 8023758: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 802375c: b21b sxth r3, r3 + 802375e: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 + 8023762: dc20 bgt.n 80237a6 + 8023764: f9b7 201e ldrsh.w r2, [r7, #30] + 8023768: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 802376c: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 8023770: b21b sxth r3, r3 + 8023772: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 + 8023776: dd07 ble.n 8023788 + 8023778: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 802377c: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 + 8023780: b21b sxth r3, r3 + 8023782: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 8023786: e004 b.n 8023792 + 8023788: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 802378c: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 8023790: b21b sxth r3, r3 - 8023792: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 - 8023796: dc20 bgt.n 80237da - 8023798: f9b7 2020 ldrsh.w r2, [r7, #32] - 802379c: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 - 80237a0: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 80237a4: b21b sxth r3, r3 - 80237a6: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - 80237aa: dd07 ble.n 80237bc - 80237ac: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 - 80237b0: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 80237b4: b21b sxth r3, r3 - 80237b6: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 80237ba: e004 b.n 80237c6 - 80237bc: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 - 80237c0: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 80237c4: b21b sxth r3, r3 - 80237c6: fb02 f303 mul.w r3, r2, r3 - 80237ca: 4a55 ldr r2, [pc, #340] ; (8023920 ) - 80237cc: fb82 1203 smull r1, r2, r2, r3 - 80237d0: 1152 asrs r2, r2, #5 - 80237d2: 17db asrs r3, r3, #31 - 80237d4: 1ad3 subs r3, r2, r3 - 80237d6: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 - if(LV_COORD_IS_PCT(tr_y)) tr_y = (h * LV_COORD_GET_PCT(tr_y)) / 100; - 80237da: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 80237de: f403 43c0 and.w r3, r3, #24576 ; 0x6000 - 80237e2: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 80237e6: d128 bne.n 802383a - 80237e8: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 80237ec: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 80237f0: b21b sxth r3, r3 - 80237f2: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0 - 80237f6: dc20 bgt.n 802383a - 80237f8: f9b7 201e ldrsh.w r2, [r7, #30] - 80237fc: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 8023800: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 8023804: b21b sxth r3, r3 - 8023806: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - 802380a: dd07 ble.n 802381c - 802380c: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 8023810: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 8023814: b21b sxth r3, r3 - 8023816: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 802381a: e004 b.n 8023826 - 802381c: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 8023820: f423 43c0 bic.w r3, r3, #24576 ; 0x6000 - 8023824: b21b sxth r3, r3 - 8023826: fb02 f303 mul.w r3, r2, r3 - 802382a: 4a3d ldr r2, [pc, #244] ; (8023920 ) - 802382c: fb82 1203 smull r1, r2, r2, r3 - 8023830: 1152 asrs r2, r2, #5 - 8023832: 17db asrs r3, r3, #31 - 8023834: 1ad3 subs r3, r2, r3 - 8023836: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 8023792: fb02 f303 mul.w r3, r2, r3 + 8023796: 4a3d ldr r2, [pc, #244] ; (802388c ) + 8023798: fb82 1203 smull r1, r2, r2, r3 + 802379c: 1152 asrs r2, r2, #5 + 802379e: 17db asrs r3, r3, #31 + 80237a0: 1ad3 subs r3, r2, r3 + 80237a2: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 x += tr_x; - 802383a: f8b7 204c ldrh.w r2, [r7, #76] ; 0x4c - 802383e: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 - 8023842: 4413 add r3, r2 - 8023844: b29b uxth r3, r3 - 8023846: f8a7 304c strh.w r3, [r7, #76] ; 0x4c + 80237a6: f8b7 204c ldrh.w r2, [r7, #76] ; 0x4c + 80237aa: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 + 80237ae: 4413 add r3, r2 + 80237b0: b29b uxth r3, r3 + 80237b2: f8a7 304c strh.w r3, [r7, #76] ; 0x4c y += tr_y; - 802384a: f8b7 204a ldrh.w r2, [r7, #74] ; 0x4a - 802384e: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 8023852: 4413 add r3, r2 - 8023854: b29b uxth r3, r3 - 8023856: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 80237b6: f8b7 204a ldrh.w r2, [r7, #74] ; 0x4a + 80237ba: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 80237be: 4413 add r3, r2 + 80237c0: b29b uxth r3, r3 + 80237c2: f8a7 304a strh.w r3, [r7, #74] ; 0x4a lv_coord_t diff_x = hint->grid_abs.x + x - item->coords.x1; - 802385a: 687b ldr r3, [r7, #4] - 802385c: f9b3 3008 ldrsh.w r3, [r3, #8] - 8023860: b29a uxth r2, r3 - 8023862: f8b7 304c ldrh.w r3, [r7, #76] ; 0x4c - 8023866: 4413 add r3, r2 - 8023868: b29a uxth r2, r3 - 802386a: 68fb ldr r3, [r7, #12] - 802386c: f9b3 3014 ldrsh.w r3, [r3, #20] - 8023870: b29b uxth r3, r3 - 8023872: 1ad3 subs r3, r2, r3 - 8023874: b29b uxth r3, r3 - 8023876: 83bb strh r3, [r7, #28] + 80237c6: 687b ldr r3, [r7, #4] + 80237c8: f9b3 3008 ldrsh.w r3, [r3, #8] + 80237cc: b29a uxth r2, r3 + 80237ce: f8b7 304c ldrh.w r3, [r7, #76] ; 0x4c + 80237d2: 4413 add r3, r2 + 80237d4: b29a uxth r2, r3 + 80237d6: 68fb ldr r3, [r7, #12] + 80237d8: f9b3 3014 ldrsh.w r3, [r3, #20] + 80237dc: b29b uxth r3, r3 + 80237de: 1ad3 subs r3, r2, r3 + 80237e0: b29b uxth r3, r3 + 80237e2: 83bb strh r3, [r7, #28] lv_coord_t diff_y = hint->grid_abs.y + y - item->coords.y1; - 8023878: 687b ldr r3, [r7, #4] - 802387a: f9b3 300a ldrsh.w r3, [r3, #10] - 802387e: b29a uxth r2, r3 - 8023880: f8b7 304a ldrh.w r3, [r7, #74] ; 0x4a - 8023884: 4413 add r3, r2 - 8023886: b29a uxth r2, r3 - 8023888: 68fb ldr r3, [r7, #12] - 802388a: f9b3 3016 ldrsh.w r3, [r3, #22] - 802388e: b29b uxth r3, r3 - 8023890: 1ad3 subs r3, r2, r3 - 8023892: b29b uxth r3, r3 - 8023894: 837b strh r3, [r7, #26] + 80237e4: 687b ldr r3, [r7, #4] + 80237e6: f9b3 300a ldrsh.w r3, [r3, #10] + 80237ea: b29a uxth r2, r3 + 80237ec: f8b7 304a ldrh.w r3, [r7, #74] ; 0x4a + 80237f0: 4413 add r3, r2 + 80237f2: b29a uxth r2, r3 + 80237f4: 68fb ldr r3, [r7, #12] + 80237f6: f9b3 3016 ldrsh.w r3, [r3, #22] + 80237fa: b29b uxth r3, r3 + 80237fc: 1ad3 subs r3, r2, r3 + 80237fe: b29b uxth r3, r3 + 8023800: 837b strh r3, [r7, #26] if(diff_x || diff_y) { - 8023896: f9b7 301c ldrsh.w r3, [r7, #28] - 802389a: 2b00 cmp r3, #0 - 802389c: d103 bne.n 80238a6 - 802389e: f9b7 301a ldrsh.w r3, [r7, #26] - 80238a2: 2b00 cmp r3, #0 - 80238a4: d039 beq.n 802391a + 8023802: f9b7 301c ldrsh.w r3, [r7, #28] + 8023806: 2b00 cmp r3, #0 + 8023808: d103 bne.n 8023812 + 802380a: f9b7 301a ldrsh.w r3, [r7, #26] + 802380e: 2b00 cmp r3, #0 + 8023810: d039 beq.n 8023886 lv_obj_invalidate(item); - 80238a6: 68f8 ldr r0, [r7, #12] - 80238a8: f7e7 f903 bl 800aab2 + 8023812: 68f8 ldr r0, [r7, #12] + 8023814: f7e7 f917 bl 800aa46 item->coords.x1 += diff_x; - 80238ac: 68fb ldr r3, [r7, #12] - 80238ae: f9b3 3014 ldrsh.w r3, [r3, #20] - 80238b2: b29a uxth r2, r3 - 80238b4: 8bbb ldrh r3, [r7, #28] - 80238b6: 4413 add r3, r2 - 80238b8: b29b uxth r3, r3 - 80238ba: b21a sxth r2, r3 - 80238bc: 68fb ldr r3, [r7, #12] - 80238be: 829a strh r2, [r3, #20] + 8023818: 68fb ldr r3, [r7, #12] + 802381a: f9b3 3014 ldrsh.w r3, [r3, #20] + 802381e: b29a uxth r2, r3 + 8023820: 8bbb ldrh r3, [r7, #28] + 8023822: 4413 add r3, r2 + 8023824: b29b uxth r3, r3 + 8023826: b21a sxth r2, r3 + 8023828: 68fb ldr r3, [r7, #12] + 802382a: 829a strh r2, [r3, #20] item->coords.x2 += diff_x; - 80238c0: 68fb ldr r3, [r7, #12] - 80238c2: f9b3 3018 ldrsh.w r3, [r3, #24] - 80238c6: b29a uxth r2, r3 - 80238c8: 8bbb ldrh r3, [r7, #28] - 80238ca: 4413 add r3, r2 - 80238cc: b29b uxth r3, r3 - 80238ce: b21a sxth r2, r3 - 80238d0: 68fb ldr r3, [r7, #12] - 80238d2: 831a strh r2, [r3, #24] + 802382c: 68fb ldr r3, [r7, #12] + 802382e: f9b3 3018 ldrsh.w r3, [r3, #24] + 8023832: b29a uxth r2, r3 + 8023834: 8bbb ldrh r3, [r7, #28] + 8023836: 4413 add r3, r2 + 8023838: b29b uxth r3, r3 + 802383a: b21a sxth r2, r3 + 802383c: 68fb ldr r3, [r7, #12] + 802383e: 831a strh r2, [r3, #24] item->coords.y1 += diff_y; - 80238d4: 68fb ldr r3, [r7, #12] - 80238d6: f9b3 3016 ldrsh.w r3, [r3, #22] - 80238da: b29a uxth r2, r3 - 80238dc: 8b7b ldrh r3, [r7, #26] - 80238de: 4413 add r3, r2 - 80238e0: b29b uxth r3, r3 - 80238e2: b21a sxth r2, r3 - 80238e4: 68fb ldr r3, [r7, #12] - 80238e6: 82da strh r2, [r3, #22] + 8023840: 68fb ldr r3, [r7, #12] + 8023842: f9b3 3016 ldrsh.w r3, [r3, #22] + 8023846: b29a uxth r2, r3 + 8023848: 8b7b ldrh r3, [r7, #26] + 802384a: 4413 add r3, r2 + 802384c: b29b uxth r3, r3 + 802384e: b21a sxth r2, r3 + 8023850: 68fb ldr r3, [r7, #12] + 8023852: 82da strh r2, [r3, #22] item->coords.y2 += diff_y; - 80238e8: 68fb ldr r3, [r7, #12] - 80238ea: f9b3 301a ldrsh.w r3, [r3, #26] - 80238ee: b29a uxth r2, r3 - 80238f0: 8b7b ldrh r3, [r7, #26] - 80238f2: 4413 add r3, r2 - 80238f4: b29b uxth r3, r3 - 80238f6: b21a sxth r2, r3 - 80238f8: 68fb ldr r3, [r7, #12] - 80238fa: 835a strh r2, [r3, #26] + 8023854: 68fb ldr r3, [r7, #12] + 8023856: f9b3 301a ldrsh.w r3, [r3, #26] + 802385a: b29a uxth r2, r3 + 802385c: 8b7b ldrh r3, [r7, #26] + 802385e: 4413 add r3, r2 + 8023860: b29b uxth r3, r3 + 8023862: b21a sxth r2, r3 + 8023864: 68fb ldr r3, [r7, #12] + 8023866: 835a strh r2, [r3, #26] lv_obj_invalidate(item); - 80238fc: 68f8 ldr r0, [r7, #12] - 80238fe: f7e7 f8d8 bl 800aab2 + 8023868: 68f8 ldr r0, [r7, #12] + 802386a: f7e7 f8ec bl 800aa46 lv_obj_move_children_by(item, diff_x, diff_y, true); - 8023902: f9b7 201a ldrsh.w r2, [r7, #26] - 8023906: f9b7 101c ldrsh.w r1, [r7, #28] - 802390a: 2301 movs r3, #1 - 802390c: 68f8 ldr r0, [r7, #12] - 802390e: f7e7 f847 bl 800a9a0 - 8023912: e002 b.n 802391a + 802386e: f9b7 201a ldrsh.w r2, [r7, #26] + 8023872: f9b7 101c ldrsh.w r1, [r7, #28] + 8023876: 2301 movs r3, #1 + 8023878: 68f8 ldr r0, [r7, #12] + 802387a: f7e7 f85b bl 800a934 + 802387e: e002 b.n 8023886 if(lv_obj_has_flag_any(item, LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) return; - 8023914: bf00 nop - 8023916: e000 b.n 802391a + 8023880: bf00 nop + 8023882: e000 b.n 8023886 if(row_span == 0 || col_span == 0) return; - 8023918: bf00 nop + 8023884: bf00 nop } } - 802391a: 3754 adds r7, #84 ; 0x54 - 802391c: 46bd mov sp, r7 - 802391e: bd90 pop {r4, r7, pc} - 8023920: 51eb851f .word 0x51eb851f + 8023886: 3754 adds r7, #84 ; 0x54 + 8023888: 46bd mov sp, r7 + 802388a: bd90 pop {r4, r7, pc} + 802388c: 51eb851f .word 0x51eb851f -08023924 : +08023890 : * @param pos_array write the positions of the tracks here * @return the total size of the grid */ static lv_coord_t grid_align(lv_coord_t cont_size, bool auto_size, uint8_t align, lv_coord_t gap, uint32_t track_num, lv_coord_t * size_array, lv_coord_t * pos_array, bool reverse) { - 8023924: b490 push {r4, r7} - 8023926: b086 sub sp, #24 - 8023928: af00 add r7, sp, #0 - 802392a: 4604 mov r4, r0 - 802392c: 4608 mov r0, r1 - 802392e: 4611 mov r1, r2 - 8023930: 461a mov r2, r3 - 8023932: 4623 mov r3, r4 - 8023934: 80fb strh r3, [r7, #6] - 8023936: 4603 mov r3, r0 - 8023938: 717b strb r3, [r7, #5] - 802393a: 460b mov r3, r1 - 802393c: 713b strb r3, [r7, #4] - 802393e: 4613 mov r3, r2 - 8023940: 807b strh r3, [r7, #2] + 8023890: b490 push {r4, r7} + 8023892: b086 sub sp, #24 + 8023894: af00 add r7, sp, #0 + 8023896: 4604 mov r4, r0 + 8023898: 4608 mov r0, r1 + 802389a: 4611 mov r1, r2 + 802389c: 461a mov r2, r3 + 802389e: 4623 mov r3, r4 + 80238a0: 80fb strh r3, [r7, #6] + 80238a2: 4603 mov r3, r0 + 80238a4: 717b strb r3, [r7, #5] + 80238a6: 460b mov r3, r1 + 80238a8: 713b strb r3, [r7, #4] + 80238aa: 4613 mov r3, r2 + 80238ac: 807b strh r3, [r7, #2] lv_coord_t grid_size = 0; - 8023942: 2300 movs r3, #0 - 8023944: 82fb strh r3, [r7, #22] + 80238ae: 2300 movs r3, #0 + 80238b0: 82fb strh r3, [r7, #22] uint32_t i; if(auto_size) { - 8023946: 797b ldrb r3, [r7, #5] - 8023948: 2b00 cmp r3, #0 - 802394a: d003 beq.n 8023954 + 80238b2: 797b ldrb r3, [r7, #5] + 80238b4: 2b00 cmp r3, #0 + 80238b6: d003 beq.n 80238c0 pos_array[0] = 0; - 802394c: 6abb ldr r3, [r7, #40] ; 0x28 - 802394e: 2200 movs r2, #0 - 8023950: 801a strh r2, [r3, #0] - 8023952: e091 b.n 8023a78 + 80238b8: 6abb ldr r3, [r7, #40] ; 0x28 + 80238ba: 2200 movs r2, #0 + 80238bc: 801a strh r2, [r3, #0] + 80238be: e091 b.n 80239e4 } else { /*With spaced alignment gap will be calculated from the remaining space*/ if(align == LV_GRID_ALIGN_SPACE_AROUND || align == LV_GRID_ALIGN_SPACE_BETWEEN || align == LV_GRID_ALIGN_SPACE_EVENLY) { - 8023954: 793b ldrb r3, [r7, #4] - 8023956: 2b05 cmp r3, #5 - 8023958: d005 beq.n 8023966 - 802395a: 793b ldrb r3, [r7, #4] - 802395c: 2b06 cmp r3, #6 - 802395e: d002 beq.n 8023966 - 8023960: 793b ldrb r3, [r7, #4] - 8023962: 2b04 cmp r3, #4 - 8023964: d106 bne.n 8023974 + 80238c0: 793b ldrb r3, [r7, #4] + 80238c2: 2b05 cmp r3, #5 + 80238c4: d005 beq.n 80238d2 + 80238c6: 793b ldrb r3, [r7, #4] + 80238c8: 2b06 cmp r3, #6 + 80238ca: d002 beq.n 80238d2 + 80238cc: 793b ldrb r3, [r7, #4] + 80238ce: 2b04 cmp r3, #4 + 80238d0: d106 bne.n 80238e0 gap = 0; - 8023966: 2300 movs r3, #0 - 8023968: 807b strh r3, [r7, #2] + 80238d2: 2300 movs r3, #0 + 80238d4: 807b strh r3, [r7, #2] if(track_num == 1) align = LV_GRID_ALIGN_CENTER; - 802396a: 6a3b ldr r3, [r7, #32] - 802396c: 2b01 cmp r3, #1 - 802396e: d101 bne.n 8023974 - 8023970: 2301 movs r3, #1 - 8023972: 713b strb r3, [r7, #4] + 80238d6: 6a3b ldr r3, [r7, #32] + 80238d8: 2b01 cmp r3, #1 + 80238da: d101 bne.n 80238e0 + 80238dc: 2301 movs r3, #1 + 80238de: 713b strb r3, [r7, #4] } /*Get the full grid size with gap*/ for(i = 0; i < track_num; i++) { - 8023974: 2300 movs r3, #0 - 8023976: 613b str r3, [r7, #16] - 8023978: e010 b.n 802399c + 80238e0: 2300 movs r3, #0 + 80238e2: 613b str r3, [r7, #16] + 80238e4: e010 b.n 8023908 grid_size += size_array[i] + gap; - 802397a: 693b ldr r3, [r7, #16] - 802397c: 005b lsls r3, r3, #1 - 802397e: 6a7a ldr r2, [r7, #36] ; 0x24 - 8023980: 4413 add r3, r2 - 8023982: f9b3 3000 ldrsh.w r3, [r3] - 8023986: b29a uxth r2, r3 - 8023988: 887b ldrh r3, [r7, #2] - 802398a: 4413 add r3, r2 - 802398c: b29a uxth r2, r3 - 802398e: 8afb ldrh r3, [r7, #22] - 8023990: 4413 add r3, r2 - 8023992: b29b uxth r3, r3 - 8023994: 82fb strh r3, [r7, #22] + 80238e6: 693b ldr r3, [r7, #16] + 80238e8: 005b lsls r3, r3, #1 + 80238ea: 6a7a ldr r2, [r7, #36] ; 0x24 + 80238ec: 4413 add r3, r2 + 80238ee: f9b3 3000 ldrsh.w r3, [r3] + 80238f2: b29a uxth r2, r3 + 80238f4: 887b ldrh r3, [r7, #2] + 80238f6: 4413 add r3, r2 + 80238f8: b29a uxth r2, r3 + 80238fa: 8afb ldrh r3, [r7, #22] + 80238fc: 4413 add r3, r2 + 80238fe: b29b uxth r3, r3 + 8023900: 82fb strh r3, [r7, #22] for(i = 0; i < track_num; i++) { - 8023996: 693b ldr r3, [r7, #16] - 8023998: 3301 adds r3, #1 - 802399a: 613b str r3, [r7, #16] - 802399c: 693a ldr r2, [r7, #16] - 802399e: 6a3b ldr r3, [r7, #32] - 80239a0: 429a cmp r2, r3 - 80239a2: d3ea bcc.n 802397a + 8023902: 693b ldr r3, [r7, #16] + 8023904: 3301 adds r3, #1 + 8023906: 613b str r3, [r7, #16] + 8023908: 693a ldr r2, [r7, #16] + 802390a: 6a3b ldr r3, [r7, #32] + 802390c: 429a cmp r2, r3 + 802390e: d3ea bcc.n 80238e6 } grid_size -= gap; - 80239a4: 8afa ldrh r2, [r7, #22] - 80239a6: 887b ldrh r3, [r7, #2] - 80239a8: 1ad3 subs r3, r2, r3 - 80239aa: b29b uxth r3, r3 - 80239ac: 82fb strh r3, [r7, #22] + 8023910: 8afa ldrh r2, [r7, #22] + 8023912: 887b ldrh r3, [r7, #2] + 8023914: 1ad3 subs r3, r2, r3 + 8023916: b29b uxth r3, r3 + 8023918: 82fb strh r3, [r7, #22] /*Calculate the position of the first item and set gap is necessary*/ switch(align) { - 80239ae: 793b ldrb r3, [r7, #4] - 80239b0: 2b06 cmp r3, #6 - 80239b2: d861 bhi.n 8023a78 - 80239b4: a201 add r2, pc, #4 ; (adr r2, 80239bc ) - 80239b6: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 80239ba: bf00 nop - 80239bc: 080239d9 .word 0x080239d9 - 80239c0: 080239e1 .word 0x080239e1 - 80239c4: 080239f9 .word 0x080239f9 - 80239c8: 08023a79 .word 0x08023a79 - 80239cc: 08023a55 .word 0x08023a55 - 80239d0: 08023a2d .word 0x08023a2d - 80239d4: 08023a09 .word 0x08023a09 + 802391a: 793b ldrb r3, [r7, #4] + 802391c: 2b06 cmp r3, #6 + 802391e: d861 bhi.n 80239e4 + 8023920: a201 add r2, pc, #4 ; (adr r2, 8023928 ) + 8023922: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8023926: bf00 nop + 8023928: 08023945 .word 0x08023945 + 802392c: 0802394d .word 0x0802394d + 8023930: 08023965 .word 0x08023965 + 8023934: 080239e5 .word 0x080239e5 + 8023938: 080239c1 .word 0x080239c1 + 802393c: 08023999 .word 0x08023999 + 8023940: 08023975 .word 0x08023975 case LV_GRID_ALIGN_START: pos_array[0] = 0; - 80239d8: 6abb ldr r3, [r7, #40] ; 0x28 - 80239da: 2200 movs r2, #0 - 80239dc: 801a strh r2, [r3, #0] + 8023944: 6abb ldr r3, [r7, #40] ; 0x28 + 8023946: 2200 movs r2, #0 + 8023948: 801a strh r2, [r3, #0] break; - 80239de: e04b b.n 8023a78 + 802394a: e04b b.n 80239e4 case LV_GRID_ALIGN_CENTER: pos_array[0] = (cont_size - grid_size) / 2; - 80239e0: f9b7 2006 ldrsh.w r2, [r7, #6] - 80239e4: f9b7 3016 ldrsh.w r3, [r7, #22] - 80239e8: 1ad3 subs r3, r2, r3 - 80239ea: 0fda lsrs r2, r3, #31 - 80239ec: 4413 add r3, r2 - 80239ee: 105b asrs r3, r3, #1 - 80239f0: b21a sxth r2, r3 - 80239f2: 6abb ldr r3, [r7, #40] ; 0x28 - 80239f4: 801a strh r2, [r3, #0] + 802394c: f9b7 2006 ldrsh.w r2, [r7, #6] + 8023950: f9b7 3016 ldrsh.w r3, [r7, #22] + 8023954: 1ad3 subs r3, r2, r3 + 8023956: 0fda lsrs r2, r3, #31 + 8023958: 4413 add r3, r2 + 802395a: 105b asrs r3, r3, #1 + 802395c: b21a sxth r2, r3 + 802395e: 6abb ldr r3, [r7, #40] ; 0x28 + 8023960: 801a strh r2, [r3, #0] break; - 80239f6: e03f b.n 8023a78 + 8023962: e03f b.n 80239e4 case LV_GRID_ALIGN_END: pos_array[0] = cont_size - grid_size; - 80239f8: 88fa ldrh r2, [r7, #6] - 80239fa: 8afb ldrh r3, [r7, #22] - 80239fc: 1ad3 subs r3, r2, r3 - 80239fe: b29b uxth r3, r3 - 8023a00: b21a sxth r2, r3 - 8023a02: 6abb ldr r3, [r7, #40] ; 0x28 - 8023a04: 801a strh r2, [r3, #0] + 8023964: 88fa ldrh r2, [r7, #6] + 8023966: 8afb ldrh r3, [r7, #22] + 8023968: 1ad3 subs r3, r2, r3 + 802396a: b29b uxth r3, r3 + 802396c: b21a sxth r2, r3 + 802396e: 6abb ldr r3, [r7, #40] ; 0x28 + 8023970: 801a strh r2, [r3, #0] break; - 8023a06: e037 b.n 8023a78 + 8023972: e037 b.n 80239e4 case LV_GRID_ALIGN_SPACE_BETWEEN: pos_array[0] = 0; - 8023a08: 6abb ldr r3, [r7, #40] ; 0x28 - 8023a0a: 2200 movs r2, #0 - 8023a0c: 801a strh r2, [r3, #0] + 8023974: 6abb ldr r3, [r7, #40] ; 0x28 + 8023976: 2200 movs r2, #0 + 8023978: 801a strh r2, [r3, #0] gap = (lv_coord_t)(cont_size - grid_size) / (lv_coord_t)(track_num - 1); - 8023a0e: 88fa ldrh r2, [r7, #6] - 8023a10: 8afb ldrh r3, [r7, #22] - 8023a12: 1ad3 subs r3, r2, r3 - 8023a14: b29b uxth r3, r3 - 8023a16: b21b sxth r3, r3 - 8023a18: 461a mov r2, r3 - 8023a1a: 6a3b ldr r3, [r7, #32] - 8023a1c: b29b uxth r3, r3 - 8023a1e: 3b01 subs r3, #1 - 8023a20: b29b uxth r3, r3 - 8023a22: b21b sxth r3, r3 - 8023a24: fb92 f3f3 sdiv r3, r2, r3 - 8023a28: 807b strh r3, [r7, #2] + 802397a: 88fa ldrh r2, [r7, #6] + 802397c: 8afb ldrh r3, [r7, #22] + 802397e: 1ad3 subs r3, r2, r3 + 8023980: b29b uxth r3, r3 + 8023982: b21b sxth r3, r3 + 8023984: 461a mov r2, r3 + 8023986: 6a3b ldr r3, [r7, #32] + 8023988: b29b uxth r3, r3 + 802398a: 3b01 subs r3, #1 + 802398c: b29b uxth r3, r3 + 802398e: b21b sxth r3, r3 + 8023990: fb92 f3f3 sdiv r3, r2, r3 + 8023994: 807b strh r3, [r7, #2] break; - 8023a2a: e025 b.n 8023a78 + 8023996: e025 b.n 80239e4 case LV_GRID_ALIGN_SPACE_AROUND: gap = (lv_coord_t)(cont_size - grid_size) / (lv_coord_t)(track_num); - 8023a2c: 88fa ldrh r2, [r7, #6] - 8023a2e: 8afb ldrh r3, [r7, #22] - 8023a30: 1ad3 subs r3, r2, r3 - 8023a32: b29b uxth r3, r3 - 8023a34: b21b sxth r3, r3 - 8023a36: 461a mov r2, r3 - 8023a38: 6a3b ldr r3, [r7, #32] - 8023a3a: b21b sxth r3, r3 - 8023a3c: fb92 f3f3 sdiv r3, r2, r3 - 8023a40: 807b strh r3, [r7, #2] + 8023998: 88fa ldrh r2, [r7, #6] + 802399a: 8afb ldrh r3, [r7, #22] + 802399c: 1ad3 subs r3, r2, r3 + 802399e: b29b uxth r3, r3 + 80239a0: b21b sxth r3, r3 + 80239a2: 461a mov r2, r3 + 80239a4: 6a3b ldr r3, [r7, #32] + 80239a6: b21b sxth r3, r3 + 80239a8: fb92 f3f3 sdiv r3, r2, r3 + 80239ac: 807b strh r3, [r7, #2] pos_array[0] = gap / 2; - 8023a42: f9b7 3002 ldrsh.w r3, [r7, #2] - 8023a46: 0fda lsrs r2, r3, #31 - 8023a48: 4413 add r3, r2 - 8023a4a: 105b asrs r3, r3, #1 - 8023a4c: b21a sxth r2, r3 - 8023a4e: 6abb ldr r3, [r7, #40] ; 0x28 - 8023a50: 801a strh r2, [r3, #0] + 80239ae: f9b7 3002 ldrsh.w r3, [r7, #2] + 80239b2: 0fda lsrs r2, r3, #31 + 80239b4: 4413 add r3, r2 + 80239b6: 105b asrs r3, r3, #1 + 80239b8: b21a sxth r2, r3 + 80239ba: 6abb ldr r3, [r7, #40] ; 0x28 + 80239bc: 801a strh r2, [r3, #0] break; - 8023a52: e011 b.n 8023a78 + 80239be: e011 b.n 80239e4 case LV_GRID_ALIGN_SPACE_EVENLY: gap = (lv_coord_t)(cont_size - grid_size) / (lv_coord_t)(track_num + 1); - 8023a54: 88fa ldrh r2, [r7, #6] - 8023a56: 8afb ldrh r3, [r7, #22] - 8023a58: 1ad3 subs r3, r2, r3 - 8023a5a: b29b uxth r3, r3 - 8023a5c: b21b sxth r3, r3 - 8023a5e: 461a mov r2, r3 - 8023a60: 6a3b ldr r3, [r7, #32] - 8023a62: b29b uxth r3, r3 - 8023a64: 3301 adds r3, #1 - 8023a66: b29b uxth r3, r3 - 8023a68: b21b sxth r3, r3 - 8023a6a: fb92 f3f3 sdiv r3, r2, r3 - 8023a6e: 807b strh r3, [r7, #2] + 80239c0: 88fa ldrh r2, [r7, #6] + 80239c2: 8afb ldrh r3, [r7, #22] + 80239c4: 1ad3 subs r3, r2, r3 + 80239c6: b29b uxth r3, r3 + 80239c8: b21b sxth r3, r3 + 80239ca: 461a mov r2, r3 + 80239cc: 6a3b ldr r3, [r7, #32] + 80239ce: b29b uxth r3, r3 + 80239d0: 3301 adds r3, #1 + 80239d2: b29b uxth r3, r3 + 80239d4: b21b sxth r3, r3 + 80239d6: fb92 f3f3 sdiv r3, r2, r3 + 80239da: 807b strh r3, [r7, #2] pos_array[0] = gap; - 8023a70: 6abb ldr r3, [r7, #40] ; 0x28 - 8023a72: 887a ldrh r2, [r7, #2] - 8023a74: 801a strh r2, [r3, #0] + 80239dc: 6abb ldr r3, [r7, #40] ; 0x28 + 80239de: 887a ldrh r2, [r7, #2] + 80239e0: 801a strh r2, [r3, #0] break; - 8023a76: bf00 nop + 80239e2: bf00 nop } } /*Set the position of all tracks from the start position, gaps and track sizes*/ for(i = 0; i < track_num - 1; i++) { - 8023a78: 2300 movs r3, #0 - 8023a7a: 613b str r3, [r7, #16] - 8023a7c: e01c b.n 8023ab8 + 80239e4: 2300 movs r3, #0 + 80239e6: 613b str r3, [r7, #16] + 80239e8: e01c b.n 8023a24 pos_array[i + 1] = pos_array[i] + size_array[i] + gap; - 8023a7e: 693b ldr r3, [r7, #16] - 8023a80: 005b lsls r3, r3, #1 - 8023a82: 6aba ldr r2, [r7, #40] ; 0x28 - 8023a84: 4413 add r3, r2 - 8023a86: f9b3 3000 ldrsh.w r3, [r3] - 8023a8a: b29a uxth r2, r3 - 8023a8c: 693b ldr r3, [r7, #16] - 8023a8e: 005b lsls r3, r3, #1 - 8023a90: 6a79 ldr r1, [r7, #36] ; 0x24 - 8023a92: 440b add r3, r1 - 8023a94: f9b3 3000 ldrsh.w r3, [r3] - 8023a98: b29b uxth r3, r3 - 8023a9a: 4413 add r3, r2 - 8023a9c: b29a uxth r2, r3 - 8023a9e: 887b ldrh r3, [r7, #2] - 8023aa0: 4413 add r3, r2 - 8023aa2: b299 uxth r1, r3 - 8023aa4: 693b ldr r3, [r7, #16] - 8023aa6: 3301 adds r3, #1 - 8023aa8: 005b lsls r3, r3, #1 - 8023aaa: 6aba ldr r2, [r7, #40] ; 0x28 - 8023aac: 4413 add r3, r2 - 8023aae: b20a sxth r2, r1 - 8023ab0: 801a strh r2, [r3, #0] + 80239ea: 693b ldr r3, [r7, #16] + 80239ec: 005b lsls r3, r3, #1 + 80239ee: 6aba ldr r2, [r7, #40] ; 0x28 + 80239f0: 4413 add r3, r2 + 80239f2: f9b3 3000 ldrsh.w r3, [r3] + 80239f6: b29a uxth r2, r3 + 80239f8: 693b ldr r3, [r7, #16] + 80239fa: 005b lsls r3, r3, #1 + 80239fc: 6a79 ldr r1, [r7, #36] ; 0x24 + 80239fe: 440b add r3, r1 + 8023a00: f9b3 3000 ldrsh.w r3, [r3] + 8023a04: b29b uxth r3, r3 + 8023a06: 4413 add r3, r2 + 8023a08: b29a uxth r2, r3 + 8023a0a: 887b ldrh r3, [r7, #2] + 8023a0c: 4413 add r3, r2 + 8023a0e: b299 uxth r1, r3 + 8023a10: 693b ldr r3, [r7, #16] + 8023a12: 3301 adds r3, #1 + 8023a14: 005b lsls r3, r3, #1 + 8023a16: 6aba ldr r2, [r7, #40] ; 0x28 + 8023a18: 4413 add r3, r2 + 8023a1a: b20a sxth r2, r1 + 8023a1c: 801a strh r2, [r3, #0] for(i = 0; i < track_num - 1; i++) { - 8023ab2: 693b ldr r3, [r7, #16] - 8023ab4: 3301 adds r3, #1 - 8023ab6: 613b str r3, [r7, #16] - 8023ab8: 6a3b ldr r3, [r7, #32] - 8023aba: 3b01 subs r3, #1 - 8023abc: 693a ldr r2, [r7, #16] - 8023abe: 429a cmp r2, r3 - 8023ac0: d3dd bcc.n 8023a7e + 8023a1e: 693b ldr r3, [r7, #16] + 8023a20: 3301 adds r3, #1 + 8023a22: 613b str r3, [r7, #16] + 8023a24: 6a3b ldr r3, [r7, #32] + 8023a26: 3b01 subs r3, #1 + 8023a28: 693a ldr r2, [r7, #16] + 8023a2a: 429a cmp r2, r3 + 8023a2c: d3dd bcc.n 80239ea } lv_coord_t total_gird_size = pos_array[track_num - 1] + size_array[track_num - 1] - pos_array[0]; - 8023ac2: 6a3b ldr r3, [r7, #32] - 8023ac4: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 - 8023ac8: 3b01 subs r3, #1 - 8023aca: 005b lsls r3, r3, #1 - 8023acc: 6aba ldr r2, [r7, #40] ; 0x28 - 8023ace: 4413 add r3, r2 - 8023ad0: f9b3 3000 ldrsh.w r3, [r3] - 8023ad4: b29a uxth r2, r3 - 8023ad6: 6a3b ldr r3, [r7, #32] - 8023ad8: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 - 8023adc: 3b01 subs r3, #1 - 8023ade: 005b lsls r3, r3, #1 - 8023ae0: 6a79 ldr r1, [r7, #36] ; 0x24 - 8023ae2: 440b add r3, r1 - 8023ae4: f9b3 3000 ldrsh.w r3, [r3] - 8023ae8: b29b uxth r3, r3 - 8023aea: 4413 add r3, r2 - 8023aec: b29a uxth r2, r3 - 8023aee: 6abb ldr r3, [r7, #40] ; 0x28 - 8023af0: f9b3 3000 ldrsh.w r3, [r3] - 8023af4: b29b uxth r3, r3 - 8023af6: 1ad3 subs r3, r2, r3 - 8023af8: b29b uxth r3, r3 - 8023afa: 81fb strh r3, [r7, #14] + 8023a2e: 6a3b ldr r3, [r7, #32] + 8023a30: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 + 8023a34: 3b01 subs r3, #1 + 8023a36: 005b lsls r3, r3, #1 + 8023a38: 6aba ldr r2, [r7, #40] ; 0x28 + 8023a3a: 4413 add r3, r2 + 8023a3c: f9b3 3000 ldrsh.w r3, [r3] + 8023a40: b29a uxth r2, r3 + 8023a42: 6a3b ldr r3, [r7, #32] + 8023a44: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 + 8023a48: 3b01 subs r3, #1 + 8023a4a: 005b lsls r3, r3, #1 + 8023a4c: 6a79 ldr r1, [r7, #36] ; 0x24 + 8023a4e: 440b add r3, r1 + 8023a50: f9b3 3000 ldrsh.w r3, [r3] + 8023a54: b29b uxth r3, r3 + 8023a56: 4413 add r3, r2 + 8023a58: b29a uxth r2, r3 + 8023a5a: 6abb ldr r3, [r7, #40] ; 0x28 + 8023a5c: f9b3 3000 ldrsh.w r3, [r3] + 8023a60: b29b uxth r3, r3 + 8023a62: 1ad3 subs r3, r2, r3 + 8023a64: b29b uxth r3, r3 + 8023a66: 81fb strh r3, [r7, #14] if(reverse) { - 8023afc: f897 302c ldrb.w r3, [r7, #44] ; 0x2c - 8023b00: 2b00 cmp r3, #0 - 8023b02: d022 beq.n 8023b4a + 8023a68: f897 302c ldrb.w r3, [r7, #44] ; 0x2c + 8023a6c: 2b00 cmp r3, #0 + 8023a6e: d022 beq.n 8023ab6 for(i = 0; i < track_num; i++) { - 8023b04: 2300 movs r3, #0 - 8023b06: 613b str r3, [r7, #16] - 8023b08: e01b b.n 8023b42 + 8023a70: 2300 movs r3, #0 + 8023a72: 613b str r3, [r7, #16] + 8023a74: e01b b.n 8023aae pos_array[i] = cont_size - pos_array[i] - size_array[i]; - 8023b0a: 88fa ldrh r2, [r7, #6] - 8023b0c: 693b ldr r3, [r7, #16] - 8023b0e: 005b lsls r3, r3, #1 - 8023b10: 6ab9 ldr r1, [r7, #40] ; 0x28 - 8023b12: 440b add r3, r1 - 8023b14: f9b3 3000 ldrsh.w r3, [r3] - 8023b18: b29b uxth r3, r3 - 8023b1a: 1ad3 subs r3, r2, r3 - 8023b1c: b29a uxth r2, r3 - 8023b1e: 693b ldr r3, [r7, #16] - 8023b20: 005b lsls r3, r3, #1 - 8023b22: 6a79 ldr r1, [r7, #36] ; 0x24 - 8023b24: 440b add r3, r1 - 8023b26: f9b3 3000 ldrsh.w r3, [r3] - 8023b2a: b29b uxth r3, r3 - 8023b2c: 1ad3 subs r3, r2, r3 - 8023b2e: b299 uxth r1, r3 - 8023b30: 693b ldr r3, [r7, #16] - 8023b32: 005b lsls r3, r3, #1 - 8023b34: 6aba ldr r2, [r7, #40] ; 0x28 - 8023b36: 4413 add r3, r2 - 8023b38: b20a sxth r2, r1 - 8023b3a: 801a strh r2, [r3, #0] + 8023a76: 88fa ldrh r2, [r7, #6] + 8023a78: 693b ldr r3, [r7, #16] + 8023a7a: 005b lsls r3, r3, #1 + 8023a7c: 6ab9 ldr r1, [r7, #40] ; 0x28 + 8023a7e: 440b add r3, r1 + 8023a80: f9b3 3000 ldrsh.w r3, [r3] + 8023a84: b29b uxth r3, r3 + 8023a86: 1ad3 subs r3, r2, r3 + 8023a88: b29a uxth r2, r3 + 8023a8a: 693b ldr r3, [r7, #16] + 8023a8c: 005b lsls r3, r3, #1 + 8023a8e: 6a79 ldr r1, [r7, #36] ; 0x24 + 8023a90: 440b add r3, r1 + 8023a92: f9b3 3000 ldrsh.w r3, [r3] + 8023a96: b29b uxth r3, r3 + 8023a98: 1ad3 subs r3, r2, r3 + 8023a9a: b299 uxth r1, r3 + 8023a9c: 693b ldr r3, [r7, #16] + 8023a9e: 005b lsls r3, r3, #1 + 8023aa0: 6aba ldr r2, [r7, #40] ; 0x28 + 8023aa2: 4413 add r3, r2 + 8023aa4: b20a sxth r2, r1 + 8023aa6: 801a strh r2, [r3, #0] for(i = 0; i < track_num; i++) { - 8023b3c: 693b ldr r3, [r7, #16] - 8023b3e: 3301 adds r3, #1 - 8023b40: 613b str r3, [r7, #16] - 8023b42: 693a ldr r2, [r7, #16] - 8023b44: 6a3b ldr r3, [r7, #32] - 8023b46: 429a cmp r2, r3 - 8023b48: d3df bcc.n 8023b0a + 8023aa8: 693b ldr r3, [r7, #16] + 8023aaa: 3301 adds r3, #1 + 8023aac: 613b str r3, [r7, #16] + 8023aae: 693a ldr r2, [r7, #16] + 8023ab0: 6a3b ldr r3, [r7, #32] + 8023ab2: 429a cmp r2, r3 + 8023ab4: d3df bcc.n 8023a76 } } /*Return the full size of the grid*/ return total_gird_size; - 8023b4a: f9b7 300e ldrsh.w r3, [r7, #14] + 8023ab6: f9b7 300e ldrsh.w r3, [r7, #14] } - 8023b4e: 4618 mov r0, r3 - 8023b50: 3718 adds r7, #24 - 8023b52: 46bd mov sp, r7 - 8023b54: bc90 pop {r4, r7} - 8023b56: 4770 bx lr + 8023aba: 4618 mov r0, r3 + 8023abc: 3718 adds r7, #24 + 8023abe: 46bd mov sp, r7 + 8023ac0: bc90 pop {r4, r7} + 8023ac2: 4770 bx lr -08023b58 : +08023ac4 : static uint32_t count_tracks(const lv_coord_t * templ) { - 8023b58: b480 push {r7} - 8023b5a: b085 sub sp, #20 - 8023b5c: af00 add r7, sp, #0 - 8023b5e: 6078 str r0, [r7, #4] + 8023ac4: b480 push {r7} + 8023ac6: b085 sub sp, #20 + 8023ac8: af00 add r7, sp, #0 + 8023aca: 6078 str r0, [r7, #4] uint32_t i; for(i = 0; templ[i] != LV_GRID_TEMPLATE_LAST; i++); - 8023b60: 2300 movs r3, #0 - 8023b62: 60fb str r3, [r7, #12] - 8023b64: e002 b.n 8023b6c - 8023b66: 68fb ldr r3, [r7, #12] - 8023b68: 3301 adds r3, #1 - 8023b6a: 60fb str r3, [r7, #12] - 8023b6c: 68fb ldr r3, [r7, #12] - 8023b6e: 005b lsls r3, r3, #1 - 8023b70: 687a ldr r2, [r7, #4] - 8023b72: 4413 add r3, r2 - 8023b74: f9b3 3000 ldrsh.w r3, [r3] - 8023b78: f641 72ff movw r2, #8191 ; 0x1fff - 8023b7c: 4293 cmp r3, r2 - 8023b7e: d1f2 bne.n 8023b66 + 8023acc: 2300 movs r3, #0 + 8023ace: 60fb str r3, [r7, #12] + 8023ad0: e002 b.n 8023ad8 + 8023ad2: 68fb ldr r3, [r7, #12] + 8023ad4: 3301 adds r3, #1 + 8023ad6: 60fb str r3, [r7, #12] + 8023ad8: 68fb ldr r3, [r7, #12] + 8023ada: 005b lsls r3, r3, #1 + 8023adc: 687a ldr r2, [r7, #4] + 8023ade: 4413 add r3, r2 + 8023ae0: f9b3 3000 ldrsh.w r3, [r3] + 8023ae4: f641 72ff movw r2, #8191 ; 0x1fff + 8023ae8: 4293 cmp r3, r2 + 8023aea: d1f2 bne.n 8023ad2 return i; - 8023b80: 68fb ldr r3, [r7, #12] + 8023aec: 68fb ldr r3, [r7, #12] } - 8023b82: 4618 mov r0, r3 - 8023b84: 3714 adds r7, #20 - 8023b86: 46bd mov sp, r7 - 8023b88: bc80 pop {r7} - 8023b8a: 4770 bx lr + 8023aee: 4618 mov r0, r3 + 8023af0: 3714 adds r7, #20 + 8023af2: 46bd mov sp, r7 + 8023af4: bc80 pop {r7} + 8023af6: 4770 bx lr -08023b8c : +08023af8 : /********************** * GLOBAL FUNCTIONS **********************/ void lv_extra_init(void) { - 8023b8c: b580 push {r7, lr} - 8023b8e: af00 add r7, sp, #0 + 8023af8: b580 push {r7, lr} + 8023afa: af00 add r7, sp, #0 #if LV_USE_FLEX lv_flex_init(); - 8023b90: f7fd fb6a bl 8021268 + 8023afc: f7fd fb6a bl 80211d4 #endif #if LV_USE_GRID lv_grid_init(); - 8023b94: f7fe ffa2 bl 8022adc + 8023b00: f7fe ffa2 bl 8022a48 #endif #if LV_USE_FFMPEG lv_ffmpeg_init(); #endif } - 8023b98: bf00 nop - 8023b9a: bd80 pop {r7, pc} + 8023b04: bf00 nop + 8023b06: bd80 pop {r7, pc} -08023b9c : +08023b08 : * Percentage values are stored in special range * @param x the percentage (0..1000) * @return a coordinate that stores the percentage */ static inline lv_coord_t lv_pct(lv_coord_t x) { - 8023b9c: b480 push {r7} - 8023b9e: b083 sub sp, #12 - 8023ba0: af00 add r7, sp, #0 - 8023ba2: 4603 mov r3, r0 - 8023ba4: 80fb strh r3, [r7, #6] + 8023b08: b480 push {r7} + 8023b0a: b083 sub sp, #12 + 8023b0c: af00 add r7, sp, #0 + 8023b0e: 4603 mov r3, r0 + 8023b10: 80fb strh r3, [r7, #6] return LV_PCT(x); - 8023ba6: f9b7 3006 ldrsh.w r3, [r7, #6] - 8023baa: 2b00 cmp r3, #0 - 8023bac: da08 bge.n 8023bc0 - 8023bae: 88fb ldrh r3, [r7, #6] - 8023bb0: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 8023bb4: b29b uxth r3, r3 - 8023bb6: b21b sxth r3, r3 - 8023bb8: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 8023bbc: b21b sxth r3, r3 - 8023bbe: e003 b.n 8023bc8 - 8023bc0: 88fb ldrh r3, [r7, #6] - 8023bc2: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 8023bc6: b21b sxth r3, r3 + 8023b12: f9b7 3006 ldrsh.w r3, [r7, #6] + 8023b16: 2b00 cmp r3, #0 + 8023b18: da08 bge.n 8023b2c + 8023b1a: 88fb ldrh r3, [r7, #6] + 8023b1c: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 8023b20: b29b uxth r3, r3 + 8023b22: b21b sxth r3, r3 + 8023b24: f443 5300 orr.w r3, r3, #8192 ; 0x2000 + 8023b28: b21b sxth r3, r3 + 8023b2a: e003 b.n 8023b34 + 8023b2c: 88fb ldrh r3, [r7, #6] + 8023b2e: f443 5300 orr.w r3, r3, #8192 ; 0x2000 + 8023b32: b21b sxth r3, r3 } - 8023bc8: 4618 mov r0, r3 - 8023bca: 370c adds r7, #12 - 8023bcc: 46bd mov sp, r7 - 8023bce: bc80 pop {r7} - 8023bd0: 4770 bx lr + 8023b34: 4618 mov r0, r3 + 8023b36: 370c adds r7, #12 + 8023b38: 46bd mov sp, r7 + 8023b3a: bc80 pop {r7} + 8023b3c: 4770 bx lr ... -08023bd4 : +08023b40 : * @param c2 the second color to mix (usually the background) * @param mix The ratio of the colors. 0: full `c2`, 255: full `c1`, 127: half `c1` and half`c2` * @return the mixed color */ LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix) { - 8023bd4: b480 push {r7} - 8023bd6: b087 sub sp, #28 - 8023bd8: af00 add r7, sp, #0 - 8023bda: 80b8 strh r0, [r7, #4] - 8023bdc: 8039 strh r1, [r7, #0] - 8023bde: 4613 mov r3, r2 - 8023be0: 70fb strb r3, [r7, #3] + 8023b40: b480 push {r7} + 8023b42: b087 sub sp, #28 + 8023b44: af00 add r7, sp, #0 + 8023b46: 80b8 strh r0, [r7, #4] + 8023b48: 8039 strh r1, [r7, #0] + 8023b4a: 4613 mov r3, r2 + 8023b4c: 70fb strb r3, [r7, #3] lv_color_t ret; #if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0 /*Source: https://stackoverflow.com/a/50012418/1999969*/ mix = (mix + 4) >> 3; - 8023be2: 78fb ldrb r3, [r7, #3] - 8023be4: 3304 adds r3, #4 - 8023be6: 10db asrs r3, r3, #3 - 8023be8: 70fb strb r3, [r7, #3] + 8023b4e: 78fb ldrb r3, [r7, #3] + 8023b50: 3304 adds r3, #4 + 8023b52: 10db asrs r3, r3, #3 + 8023b54: 70fb strb r3, [r7, #3] uint32_t bg = (uint32_t)((uint32_t)c2.full | ((uint32_t)c2.full << 16)) & - 8023bea: 883b ldrh r3, [r7, #0] - 8023bec: 461a mov r2, r3 - 8023bee: 883b ldrh r3, [r7, #0] - 8023bf0: 041b lsls r3, r3, #16 - 8023bf2: 431a orrs r2, r3 - 8023bf4: 4b12 ldr r3, [pc, #72] ; (8023c40 ) - 8023bf6: 4013 ands r3, r2 - 8023bf8: 617b str r3, [r7, #20] + 8023b56: 883b ldrh r3, [r7, #0] + 8023b58: 461a mov r2, r3 + 8023b5a: 883b ldrh r3, [r7, #0] + 8023b5c: 041b lsls r3, r3, #16 + 8023b5e: 431a orrs r2, r3 + 8023b60: 4b12 ldr r3, [pc, #72] ; (8023bac ) + 8023b62: 4013 ands r3, r2 + 8023b64: 617b str r3, [r7, #20] 0x7E0F81F; /*0b00000111111000001111100000011111*/ uint32_t fg = (uint32_t)((uint32_t)c1.full | ((uint32_t)c1.full << 16)) & 0x7E0F81F; - 8023bfa: 88bb ldrh r3, [r7, #4] - 8023bfc: 461a mov r2, r3 - 8023bfe: 88bb ldrh r3, [r7, #4] - 8023c00: 041b lsls r3, r3, #16 - 8023c02: 431a orrs r2, r3 - 8023c04: 4b0e ldr r3, [pc, #56] ; (8023c40 ) - 8023c06: 4013 ands r3, r2 - 8023c08: 613b str r3, [r7, #16] + 8023b66: 88bb ldrh r3, [r7, #4] + 8023b68: 461a mov r2, r3 + 8023b6a: 88bb ldrh r3, [r7, #4] + 8023b6c: 041b lsls r3, r3, #16 + 8023b6e: 431a orrs r2, r3 + 8023b70: 4b0e ldr r3, [pc, #56] ; (8023bac ) + 8023b72: 4013 ands r3, r2 + 8023b74: 613b str r3, [r7, #16] uint32_t result = ((((fg - bg) * mix) >> 5) + bg) & 0x7E0F81F; - 8023c0a: 693a ldr r2, [r7, #16] - 8023c0c: 697b ldr r3, [r7, #20] - 8023c0e: 1ad3 subs r3, r2, r3 - 8023c10: 78fa ldrb r2, [r7, #3] - 8023c12: fb02 f303 mul.w r3, r2, r3 - 8023c16: 095a lsrs r2, r3, #5 - 8023c18: 697b ldr r3, [r7, #20] - 8023c1a: 441a add r2, r3 - 8023c1c: 4b08 ldr r3, [pc, #32] ; (8023c40 ) - 8023c1e: 4013 ands r3, r2 - 8023c20: 60fb str r3, [r7, #12] + 8023b76: 693a ldr r2, [r7, #16] + 8023b78: 697b ldr r3, [r7, #20] + 8023b7a: 1ad3 subs r3, r2, r3 + 8023b7c: 78fa ldrb r2, [r7, #3] + 8023b7e: fb02 f303 mul.w r3, r2, r3 + 8023b82: 095a lsrs r2, r3, #5 + 8023b84: 697b ldr r3, [r7, #20] + 8023b86: 441a add r2, r3 + 8023b88: 4b08 ldr r3, [pc, #32] ; (8023bac ) + 8023b8a: 4013 ands r3, r2 + 8023b8c: 60fb str r3, [r7, #12] ret.full = (uint16_t)((result >> 16) | result); - 8023c22: 68fb ldr r3, [r7, #12] - 8023c24: 0c1b lsrs r3, r3, #16 - 8023c26: b29a uxth r2, r3 - 8023c28: 68fb ldr r3, [r7, #12] - 8023c2a: b29b uxth r3, r3 - 8023c2c: 4313 orrs r3, r2 - 8023c2e: b29b uxth r3, r3 - 8023c30: 813b strh r3, [r7, #8] + 8023b8e: 68fb ldr r3, [r7, #12] + 8023b90: 0c1b lsrs r3, r3, #16 + 8023b92: b29a uxth r2, r3 + 8023b94: 68fb ldr r3, [r7, #12] + 8023b96: b29b uxth r3, r3 + 8023b98: 4313 orrs r3, r2 + 8023b9a: b29b uxth r3, r3 + 8023b9c: 813b strh r3, [r7, #8] #else /*LV_COLOR_DEPTH == 1*/ ret.full = mix > LV_OPA_50 ? c1.full : c2.full; #endif return ret; - 8023c32: 893b ldrh r3, [r7, #8] + 8023b9e: 893b ldrh r3, [r7, #8] } - 8023c34: 4618 mov r0, r3 - 8023c36: 371c adds r7, #28 - 8023c38: 46bd mov sp, r7 - 8023c3a: bc80 pop {r7} - 8023c3c: 4770 bx lr - 8023c3e: bf00 nop - 8023c40: 07e0f81f .word 0x07e0f81f + 8023ba0: 4618 mov r0, r3 + 8023ba2: 371c adds r7, #28 + 8023ba4: 46bd mov sp, r7 + 8023ba6: bc80 pop {r7} + 8023ba8: 4770 bx lr + 8023baa: bf00 nop + 8023bac: 07e0f81f .word 0x07e0f81f -08023c44 : +08023bb0 : uint16_t bright = (uint16_t)(3u * LV_COLOR_GET_R32(c32) + LV_COLOR_GET_B32(c32) + 4u * LV_COLOR_GET_G32(c32)); return (uint8_t)(bright >> 3); } static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b) { - 8023c44: b490 push {r4, r7} - 8023c46: b082 sub sp, #8 - 8023c48: af00 add r7, sp, #0 - 8023c4a: 4604 mov r4, r0 - 8023c4c: 4608 mov r0, r1 - 8023c4e: 4611 mov r1, r2 - 8023c50: 4622 mov r2, r4 - 8023c52: 71fa strb r2, [r7, #7] - 8023c54: 4602 mov r2, r0 - 8023c56: 71ba strb r2, [r7, #6] - 8023c58: 460a mov r2, r1 - 8023c5a: 717a strb r2, [r7, #5] + 8023bb0: b490 push {r4, r7} + 8023bb2: b082 sub sp, #8 + 8023bb4: af00 add r7, sp, #0 + 8023bb6: 4604 mov r4, r0 + 8023bb8: 4608 mov r0, r1 + 8023bba: 4611 mov r1, r2 + 8023bbc: 4622 mov r2, r4 + 8023bbe: 71fa strb r2, [r7, #7] + 8023bc0: 4602 mov r2, r0 + 8023bc2: 71ba strb r2, [r7, #6] + 8023bc4: 460a mov r2, r1 + 8023bc6: 717a strb r2, [r7, #5] return _LV_COLOR_MAKE_TYPE_HELPER LV_COLOR_MAKE(r, g, b); - 8023c5c: 797a ldrb r2, [r7, #5] - 8023c5e: 08d2 lsrs r2, r2, #3 - 8023c60: b2d2 uxtb r2, r2 - 8023c62: f002 021f and.w r2, r2, #31 - 8023c66: b2d0 uxtb r0, r2 - 8023c68: 79ba ldrb r2, [r7, #6] - 8023c6a: 0892 lsrs r2, r2, #2 - 8023c6c: b2d2 uxtb r2, r2 - 8023c6e: f002 023f and.w r2, r2, #63 ; 0x3f - 8023c72: b2d1 uxtb r1, r2 - 8023c74: 79fa ldrb r2, [r7, #7] - 8023c76: 08d2 lsrs r2, r2, #3 - 8023c78: b2d2 uxtb r2, r2 - 8023c7a: f002 021f and.w r2, r2, #31 - 8023c7e: b2d2 uxtb r2, r2 - 8023c80: f360 0304 bfi r3, r0, #0, #5 - 8023c84: f361 134a bfi r3, r1, #5, #6 - 8023c88: f362 23cf bfi r3, r2, #11, #5 + 8023bc8: 797a ldrb r2, [r7, #5] + 8023bca: 08d2 lsrs r2, r2, #3 + 8023bcc: b2d2 uxtb r2, r2 + 8023bce: f002 021f and.w r2, r2, #31 + 8023bd2: b2d0 uxtb r0, r2 + 8023bd4: 79ba ldrb r2, [r7, #6] + 8023bd6: 0892 lsrs r2, r2, #2 + 8023bd8: b2d2 uxtb r2, r2 + 8023bda: f002 023f and.w r2, r2, #63 ; 0x3f + 8023bde: b2d1 uxtb r1, r2 + 8023be0: 79fa ldrb r2, [r7, #7] + 8023be2: 08d2 lsrs r2, r2, #3 + 8023be4: b2d2 uxtb r2, r2 + 8023be6: f002 021f and.w r2, r2, #31 + 8023bea: b2d2 uxtb r2, r2 + 8023bec: f360 0304 bfi r3, r0, #0, #5 + 8023bf0: f361 134a bfi r3, r1, #5, #6 + 8023bf4: f362 23cf bfi r3, r2, #11, #5 } - 8023c8c: 4618 mov r0, r3 - 8023c8e: 3708 adds r7, #8 - 8023c90: 46bd mov sp, r7 - 8023c92: bc90 pop {r4, r7} - 8023c94: 4770 bx lr + 8023bf8: 4618 mov r0, r3 + 8023bfa: 3708 adds r7, #8 + 8023bfc: 46bd mov sp, r7 + 8023bfe: bc90 pop {r4, r7} + 8023c00: 4770 bx lr -08023c96 : +08023c02 : static inline lv_color_t lv_color_hex(uint32_t c) { - 8023c96: b480 push {r7} - 8023c98: b085 sub sp, #20 - 8023c9a: af00 add r7, sp, #0 - 8023c9c: 6078 str r0, [r7, #4] + 8023c02: b480 push {r7} + 8023c04: b085 sub sp, #20 + 8023c06: af00 add r7, sp, #0 + 8023c08: 6078 str r0, [r7, #4] r = ((c & 0xF80000) >> 8) g = ((c & 0xFC00) >> 5) b = ((c & 0xFF) >> 3) rgb565 = r | g | b That's 3 mask, 3 bitshifts and 2 or operations */ r.full = (uint16_t)(((c & 0xF80000) >> 8) | ((c & 0xFC00) >> 5) | ((c & 0xFF) >> 3)); - 8023c9e: 687b ldr r3, [r7, #4] - 8023ca0: 0a1b lsrs r3, r3, #8 - 8023ca2: b29b uxth r3, r3 - 8023ca4: f423 63ff bic.w r3, r3, #2040 ; 0x7f8 - 8023ca8: f023 0307 bic.w r3, r3, #7 - 8023cac: b29a uxth r2, r3 - 8023cae: 687b ldr r3, [r7, #4] - 8023cb0: 095b lsrs r3, r3, #5 - 8023cb2: b29b uxth r3, r3 - 8023cb4: f403 63fc and.w r3, r3, #2016 ; 0x7e0 - 8023cb8: b29b uxth r3, r3 - 8023cba: 4313 orrs r3, r2 - 8023cbc: b29a uxth r2, r3 - 8023cbe: 687b ldr r3, [r7, #4] - 8023cc0: 08db lsrs r3, r3, #3 - 8023cc2: b29b uxth r3, r3 - 8023cc4: f003 031f and.w r3, r3, #31 - 8023cc8: b29b uxth r3, r3 - 8023cca: 4313 orrs r3, r2 - 8023ccc: b29b uxth r3, r3 - 8023cce: 81bb strh r3, [r7, #12] + 8023c0a: 687b ldr r3, [r7, #4] + 8023c0c: 0a1b lsrs r3, r3, #8 + 8023c0e: b29b uxth r3, r3 + 8023c10: f423 63ff bic.w r3, r3, #2040 ; 0x7f8 + 8023c14: f023 0307 bic.w r3, r3, #7 + 8023c18: b29a uxth r2, r3 + 8023c1a: 687b ldr r3, [r7, #4] + 8023c1c: 095b lsrs r3, r3, #5 + 8023c1e: b29b uxth r3, r3 + 8023c20: f403 63fc and.w r3, r3, #2016 ; 0x7e0 + 8023c24: b29b uxth r3, r3 + 8023c26: 4313 orrs r3, r2 + 8023c28: b29a uxth r2, r3 + 8023c2a: 687b ldr r3, [r7, #4] + 8023c2c: 08db lsrs r3, r3, #3 + 8023c2e: b29b uxth r3, r3 + 8023c30: f003 031f and.w r3, r3, #31 + 8023c34: b29b uxth r3, r3 + 8023c36: 4313 orrs r3, r2 + 8023c38: b29b uxth r3, r3 + 8023c3a: 81bb strh r3, [r7, #12] #else /* We want: rrrr rrrr GGGg gggg bbbb bbbb => gggb bbbb rrrr rGGG */ r.full = (uint16_t)(((c & 0xF80000) >> 16) | ((c & 0xFC00) >> 13) | ((c & 0x1C00) << 3) | ((c & 0xF8) << 5)); #endif return r; - 8023cd0: 89bb ldrh r3, [r7, #12] + 8023c3c: 89bb ldrh r3, [r7, #12] r.full = c | 0xFF000000; return r; #else /*LV_COLOR_DEPTH == 8*/ return lv_color_make((uint8_t)((c >> 16) & 0xFF), (uint8_t)((c >> 8) & 0xFF), (uint8_t)(c & 0xFF)); #endif } - 8023cd2: 4618 mov r0, r3 - 8023cd4: 3714 adds r7, #20 - 8023cd6: 46bd mov sp, r7 - 8023cd8: bc80 pop {r7} - 8023cda: 4770 bx lr + 8023c3e: 4618 mov r0, r3 + 8023c40: 3714 adds r7, #20 + 8023c42: 46bd mov sp, r7 + 8023c44: bc80 pop {r7} + 8023c46: 4770 bx lr -08023cdc : +08023c48 : return lv_color_make((uint8_t)(((c >> 4) & 0xF0) | ((c >> 8) & 0xF)), (uint8_t)((c & 0xF0) | ((c & 0xF0) >> 4)), (uint8_t)((c & 0xF) | ((c & 0xF) << 4))); } static inline void lv_color_filter_dsc_init(lv_color_filter_dsc_t * dsc, lv_color_filter_cb_t cb) { - 8023cdc: b480 push {r7} - 8023cde: b083 sub sp, #12 - 8023ce0: af00 add r7, sp, #0 - 8023ce2: 6078 str r0, [r7, #4] - 8023ce4: 6039 str r1, [r7, #0] + 8023c48: b480 push {r7} + 8023c4a: b083 sub sp, #12 + 8023c4c: af00 add r7, sp, #0 + 8023c4e: 6078 str r0, [r7, #4] + 8023c50: 6039 str r1, [r7, #0] dsc->filter_cb = cb; - 8023ce6: 687b ldr r3, [r7, #4] - 8023ce8: 683a ldr r2, [r7, #0] - 8023cea: 601a str r2, [r3, #0] + 8023c52: 687b ldr r3, [r7, #4] + 8023c54: 683a ldr r2, [r7, #0] + 8023c56: 601a str r2, [r3, #0] } - 8023cec: bf00 nop - 8023cee: 370c adds r7, #12 - 8023cf0: 46bd mov sp, r7 - 8023cf2: bc80 pop {r7} - 8023cf4: 4770 bx lr + 8023c58: bf00 nop + 8023c5a: 370c adds r7, #12 + 8023c5c: 46bd mov sp, r7 + 8023c5e: bc80 pop {r7} + 8023c60: 4770 bx lr -08023cf6 : +08023c62 : **********************/ /*Source: https://vuetifyjs.com/en/styles/colors/#material-colors*/ lv_color_t lv_palette_main(lv_palette_t p); static inline lv_color_t lv_color_white(void) { - 8023cf6: b580 push {r7, lr} - 8023cf8: af00 add r7, sp, #0 + 8023c62: b580 push {r7, lr} + 8023c64: af00 add r7, sp, #0 return lv_color_make(0xff, 0xff, 0xff); - 8023cfa: 22ff movs r2, #255 ; 0xff - 8023cfc: 21ff movs r1, #255 ; 0xff - 8023cfe: 20ff movs r0, #255 ; 0xff - 8023d00: f7ff ffa0 bl 8023c44 - 8023d04: 4603 mov r3, r0 + 8023c66: 22ff movs r2, #255 ; 0xff + 8023c68: 21ff movs r1, #255 ; 0xff + 8023c6a: 20ff movs r0, #255 ; 0xff + 8023c6c: f7ff ffa0 bl 8023bb0 + 8023c70: 4603 mov r3, r0 } - 8023d06: 4618 mov r0, r3 - 8023d08: bd80 pop {r7, pc} + 8023c72: 4618 mov r0, r3 + 8023c74: bd80 pop {r7, pc} -08023d0a : +08023c76 : uint8_t _lv_style_get_prop_group(lv_style_prop_t prop); #include "lv_style_gen.h" static inline void lv_style_set_size(lv_style_t * style, lv_coord_t value) { - 8023d0a: b580 push {r7, lr} - 8023d0c: b082 sub sp, #8 - 8023d0e: af00 add r7, sp, #0 - 8023d10: 6078 str r0, [r7, #4] - 8023d12: 460b mov r3, r1 - 8023d14: 807b strh r3, [r7, #2] + 8023c76: b580 push {r7, lr} + 8023c78: b082 sub sp, #8 + 8023c7a: af00 add r7, sp, #0 + 8023c7c: 6078 str r0, [r7, #4] + 8023c7e: 460b mov r3, r1 + 8023c80: 807b strh r3, [r7, #2] lv_style_set_width(style, value); - 8023d16: f9b7 3002 ldrsh.w r3, [r7, #2] - 8023d1a: 4619 mov r1, r3 - 8023d1c: 6878 ldr r0, [r7, #4] - 8023d1e: f010 fdde bl 80348de + 8023c82: f9b7 3002 ldrsh.w r3, [r7, #2] + 8023c86: 4619 mov r1, r3 + 8023c88: 6878 ldr r0, [r7, #4] + 8023c8a: f010 fdde bl 803484a lv_style_set_height(style, value); - 8023d22: f9b7 3002 ldrsh.w r3, [r7, #2] - 8023d26: 4619 mov r1, r3 - 8023d28: 6878 ldr r0, [r7, #4] - 8023d2a: f010 fdfe bl 803492a + 8023c8e: f9b7 3002 ldrsh.w r3, [r7, #2] + 8023c92: 4619 mov r1, r3 + 8023c94: 6878 ldr r0, [r7, #4] + 8023c96: f010 fdfe bl 8034896 } - 8023d2e: bf00 nop - 8023d30: 3708 adds r7, #8 - 8023d32: 46bd mov sp, r7 - 8023d34: bd80 pop {r7, pc} + 8023c9a: bf00 nop + 8023c9c: 3708 adds r7, #8 + 8023c9e: 46bd mov sp, r7 + 8023ca0: bd80 pop {r7, pc} -08023d36 : +08023ca2 : static inline void lv_style_set_pad_all(lv_style_t * style, lv_coord_t value) { - 8023d36: b580 push {r7, lr} - 8023d38: b082 sub sp, #8 - 8023d3a: af00 add r7, sp, #0 - 8023d3c: 6078 str r0, [r7, #4] - 8023d3e: 460b mov r3, r1 - 8023d40: 807b strh r3, [r7, #2] + 8023ca2: b580 push {r7, lr} + 8023ca4: b082 sub sp, #8 + 8023ca6: af00 add r7, sp, #0 + 8023ca8: 6078 str r0, [r7, #4] + 8023caa: 460b mov r3, r1 + 8023cac: 807b strh r3, [r7, #2] lv_style_set_pad_left(style, value); - 8023d42: f9b7 3002 ldrsh.w r3, [r7, #2] - 8023d46: 4619 mov r1, r3 - 8023d48: 6878 ldr r0, [r7, #4] - 8023d4a: f010 fe60 bl 8034a0e + 8023cae: f9b7 3002 ldrsh.w r3, [r7, #2] + 8023cb2: 4619 mov r1, r3 + 8023cb4: 6878 ldr r0, [r7, #4] + 8023cb6: f010 fe60 bl 803497a lv_style_set_pad_right(style, value); - 8023d4e: f9b7 3002 ldrsh.w r3, [r7, #2] - 8023d52: 4619 mov r1, r3 - 8023d54: 6878 ldr r0, [r7, #4] - 8023d56: f010 fe6d bl 8034a34 + 8023cba: f9b7 3002 ldrsh.w r3, [r7, #2] + 8023cbe: 4619 mov r1, r3 + 8023cc0: 6878 ldr r0, [r7, #4] + 8023cc2: f010 fe6d bl 80349a0 lv_style_set_pad_top(style, value); - 8023d5a: f9b7 3002 ldrsh.w r3, [r7, #2] - 8023d5e: 4619 mov r1, r3 - 8023d60: 6878 ldr r0, [r7, #4] - 8023d62: f010 fe2e bl 80349c2 + 8023cc6: f9b7 3002 ldrsh.w r3, [r7, #2] + 8023cca: 4619 mov r1, r3 + 8023ccc: 6878 ldr r0, [r7, #4] + 8023cce: f010 fe2e bl 803492e lv_style_set_pad_bottom(style, value); - 8023d66: f9b7 3002 ldrsh.w r3, [r7, #2] - 8023d6a: 4619 mov r1, r3 - 8023d6c: 6878 ldr r0, [r7, #4] - 8023d6e: f010 fe3b bl 80349e8 + 8023cd2: f9b7 3002 ldrsh.w r3, [r7, #2] + 8023cd6: 4619 mov r1, r3 + 8023cd8: 6878 ldr r0, [r7, #4] + 8023cda: f010 fe3b bl 8034954 } - 8023d72: bf00 nop - 8023d74: 3708 adds r7, #8 - 8023d76: 46bd mov sp, r7 - 8023d78: bd80 pop {r7, pc} + 8023cde: bf00 nop + 8023ce0: 3708 adds r7, #8 + 8023ce2: 46bd mov sp, r7 + 8023ce4: bd80 pop {r7, pc} -08023d7a : +08023ce6 : static inline void lv_style_set_pad_hor(lv_style_t * style, lv_coord_t value) { - 8023d7a: b580 push {r7, lr} - 8023d7c: b082 sub sp, #8 - 8023d7e: af00 add r7, sp, #0 - 8023d80: 6078 str r0, [r7, #4] - 8023d82: 460b mov r3, r1 - 8023d84: 807b strh r3, [r7, #2] + 8023ce6: b580 push {r7, lr} + 8023ce8: b082 sub sp, #8 + 8023cea: af00 add r7, sp, #0 + 8023cec: 6078 str r0, [r7, #4] + 8023cee: 460b mov r3, r1 + 8023cf0: 807b strh r3, [r7, #2] lv_style_set_pad_left(style, value); - 8023d86: f9b7 3002 ldrsh.w r3, [r7, #2] - 8023d8a: 4619 mov r1, r3 - 8023d8c: 6878 ldr r0, [r7, #4] - 8023d8e: f010 fe3e bl 8034a0e + 8023cf2: f9b7 3002 ldrsh.w r3, [r7, #2] + 8023cf6: 4619 mov r1, r3 + 8023cf8: 6878 ldr r0, [r7, #4] + 8023cfa: f010 fe3e bl 803497a lv_style_set_pad_right(style, value); - 8023d92: f9b7 3002 ldrsh.w r3, [r7, #2] - 8023d96: 4619 mov r1, r3 - 8023d98: 6878 ldr r0, [r7, #4] - 8023d9a: f010 fe4b bl 8034a34 + 8023cfe: f9b7 3002 ldrsh.w r3, [r7, #2] + 8023d02: 4619 mov r1, r3 + 8023d04: 6878 ldr r0, [r7, #4] + 8023d06: f010 fe4b bl 80349a0 } - 8023d9e: bf00 nop - 8023da0: 3708 adds r7, #8 - 8023da2: 46bd mov sp, r7 - 8023da4: bd80 pop {r7, pc} + 8023d0a: bf00 nop + 8023d0c: 3708 adds r7, #8 + 8023d0e: 46bd mov sp, r7 + 8023d10: bd80 pop {r7, pc} -08023da6 : +08023d12 : static inline void lv_style_set_pad_ver(lv_style_t * style, lv_coord_t value) { - 8023da6: b580 push {r7, lr} - 8023da8: b082 sub sp, #8 - 8023daa: af00 add r7, sp, #0 - 8023dac: 6078 str r0, [r7, #4] - 8023dae: 460b mov r3, r1 - 8023db0: 807b strh r3, [r7, #2] + 8023d12: b580 push {r7, lr} + 8023d14: b082 sub sp, #8 + 8023d16: af00 add r7, sp, #0 + 8023d18: 6078 str r0, [r7, #4] + 8023d1a: 460b mov r3, r1 + 8023d1c: 807b strh r3, [r7, #2] lv_style_set_pad_top(style, value); - 8023db2: f9b7 3002 ldrsh.w r3, [r7, #2] - 8023db6: 4619 mov r1, r3 - 8023db8: 6878 ldr r0, [r7, #4] - 8023dba: f010 fe02 bl 80349c2 + 8023d1e: f9b7 3002 ldrsh.w r3, [r7, #2] + 8023d22: 4619 mov r1, r3 + 8023d24: 6878 ldr r0, [r7, #4] + 8023d26: f010 fe02 bl 803492e lv_style_set_pad_bottom(style, value); - 8023dbe: f9b7 3002 ldrsh.w r3, [r7, #2] - 8023dc2: 4619 mov r1, r3 - 8023dc4: 6878 ldr r0, [r7, #4] - 8023dc6: f010 fe0f bl 80349e8 + 8023d2a: f9b7 3002 ldrsh.w r3, [r7, #2] + 8023d2e: 4619 mov r1, r3 + 8023d30: 6878 ldr r0, [r7, #4] + 8023d32: f010 fe0f bl 8034954 } - 8023dca: bf00 nop - 8023dcc: 3708 adds r7, #8 - 8023dce: 46bd mov sp, r7 - 8023dd0: bd80 pop {r7, pc} + 8023d36: bf00 nop + 8023d38: 3708 adds r7, #8 + 8023d3a: 46bd mov sp, r7 + 8023d3c: bd80 pop {r7, pc} -08023dd2 : +08023d3e : static inline void lv_style_set_pad_gap(lv_style_t * style, lv_coord_t value) { - 8023dd2: b580 push {r7, lr} - 8023dd4: b082 sub sp, #8 - 8023dd6: af00 add r7, sp, #0 - 8023dd8: 6078 str r0, [r7, #4] - 8023dda: 460b mov r3, r1 - 8023ddc: 807b strh r3, [r7, #2] + 8023d3e: b580 push {r7, lr} + 8023d40: b082 sub sp, #8 + 8023d42: af00 add r7, sp, #0 + 8023d44: 6078 str r0, [r7, #4] + 8023d46: 460b mov r3, r1 + 8023d48: 807b strh r3, [r7, #2] lv_style_set_pad_row(style, value); - 8023dde: f9b7 3002 ldrsh.w r3, [r7, #2] - 8023de2: 4619 mov r1, r3 - 8023de4: 6878 ldr r0, [r7, #4] - 8023de6: f010 fe38 bl 8034a5a + 8023d4a: f9b7 3002 ldrsh.w r3, [r7, #2] + 8023d4e: 4619 mov r1, r3 + 8023d50: 6878 ldr r0, [r7, #4] + 8023d52: f010 fe38 bl 80349c6 lv_style_set_pad_column(style, value); - 8023dea: f9b7 3002 ldrsh.w r3, [r7, #2] - 8023dee: 4619 mov r1, r3 - 8023df0: 6878 ldr r0, [r7, #4] - 8023df2: f010 fe45 bl 8034a80 + 8023d56: f9b7 3002 ldrsh.w r3, [r7, #2] + 8023d5a: 4619 mov r1, r3 + 8023d5c: 6878 ldr r0, [r7, #4] + 8023d5e: f010 fe45 bl 80349ec } - 8023df6: bf00 nop - 8023df8: 3708 adds r7, #8 - 8023dfa: 46bd mov sp, r7 - 8023dfc: bd80 pop {r7, pc} + 8023d62: bf00 nop + 8023d64: 3708 adds r7, #8 + 8023d66: 46bd mov sp, r7 + 8023d68: bd80 pop {r7, pc} ... -08023e00 : +08023d6c : * @param obj a display whose dpi should be considered * @param n the number of pixels to scale * @return `n x current_dpi/160` */ static inline lv_coord_t lv_disp_dpx(const lv_disp_t * disp, lv_coord_t n) { - 8023e00: b580 push {r7, lr} - 8023e02: b082 sub sp, #8 - 8023e04: af00 add r7, sp, #0 - 8023e06: 6078 str r0, [r7, #4] - 8023e08: 460b mov r3, r1 - 8023e0a: 807b strh r3, [r7, #2] + 8023d6c: b580 push {r7, lr} + 8023d6e: b082 sub sp, #8 + 8023d70: af00 add r7, sp, #0 + 8023d72: 6078 str r0, [r7, #4] + 8023d74: 460b mov r3, r1 + 8023d76: 807b strh r3, [r7, #2] return _LV_DPX_CALC(lv_disp_get_dpi(disp), n); - 8023e0c: f9b7 3002 ldrsh.w r3, [r7, #2] - 8023e10: 2b00 cmp r3, #0 - 8023e12: d01e beq.n 8023e52 - 8023e14: 6878 ldr r0, [r7, #4] - 8023e16: f00c fbaf bl 8030578 - 8023e1a: 4603 mov r3, r0 - 8023e1c: 461a mov r2, r3 - 8023e1e: f9b7 3002 ldrsh.w r3, [r7, #2] - 8023e22: fb02 f303 mul.w r3, r2, r3 - 8023e26: 2bef cmp r3, #239 ; 0xef - 8023e28: dd11 ble.n 8023e4e - 8023e2a: 6878 ldr r0, [r7, #4] - 8023e2c: f00c fba4 bl 8030578 - 8023e30: 4603 mov r3, r0 - 8023e32: 461a mov r2, r3 - 8023e34: f9b7 3002 ldrsh.w r3, [r7, #2] - 8023e38: fb02 f303 mul.w r3, r2, r3 - 8023e3c: 3350 adds r3, #80 ; 0x50 - 8023e3e: 4a07 ldr r2, [pc, #28] ; (8023e5c ) - 8023e40: fb82 1203 smull r1, r2, r2, r3 - 8023e44: 1192 asrs r2, r2, #6 - 8023e46: 17db asrs r3, r3, #31 - 8023e48: 1ad3 subs r3, r2, r3 - 8023e4a: b21b sxth r3, r3 - 8023e4c: e002 b.n 8023e54 - 8023e4e: 2301 movs r3, #1 - 8023e50: e000 b.n 8023e54 - 8023e52: 2300 movs r3, #0 + 8023d78: f9b7 3002 ldrsh.w r3, [r7, #2] + 8023d7c: 2b00 cmp r3, #0 + 8023d7e: d01e beq.n 8023dbe + 8023d80: 6878 ldr r0, [r7, #4] + 8023d82: f00c fbaf bl 80304e4 + 8023d86: 4603 mov r3, r0 + 8023d88: 461a mov r2, r3 + 8023d8a: f9b7 3002 ldrsh.w r3, [r7, #2] + 8023d8e: fb02 f303 mul.w r3, r2, r3 + 8023d92: 2bef cmp r3, #239 ; 0xef + 8023d94: dd11 ble.n 8023dba + 8023d96: 6878 ldr r0, [r7, #4] + 8023d98: f00c fba4 bl 80304e4 + 8023d9c: 4603 mov r3, r0 + 8023d9e: 461a mov r2, r3 + 8023da0: f9b7 3002 ldrsh.w r3, [r7, #2] + 8023da4: fb02 f303 mul.w r3, r2, r3 + 8023da8: 3350 adds r3, #80 ; 0x50 + 8023daa: 4a07 ldr r2, [pc, #28] ; (8023dc8 ) + 8023dac: fb82 1203 smull r1, r2, r2, r3 + 8023db0: 1192 asrs r2, r2, #6 + 8023db2: 17db asrs r3, r3, #31 + 8023db4: 1ad3 subs r3, r2, r3 + 8023db6: b21b sxth r3, r3 + 8023db8: e002 b.n 8023dc0 + 8023dba: 2301 movs r3, #1 + 8023dbc: e000 b.n 8023dc0 + 8023dbe: 2300 movs r3, #0 } - 8023e54: 4618 mov r0, r3 - 8023e56: 3708 adds r7, #8 - 8023e58: 46bd mov sp, r7 - 8023e5a: bd80 pop {r7, pc} - 8023e5c: 66666667 .word 0x66666667 + 8023dc0: 4618 mov r0, r3 + 8023dc2: 3708 adds r7, #8 + 8023dc4: 46bd mov sp, r7 + 8023dc6: bd80 pop {r7, pc} + 8023dc8: 66666667 .word 0x66666667 -08023e60 : +08023dcc : * STATIC FUNCTIONS **********************/ static lv_color_t dark_color_filter_cb(const lv_color_filter_dsc_t * f, lv_color_t c, lv_opa_t opa) { - 8023e60: b580 push {r7, lr} - 8023e62: b082 sub sp, #8 - 8023e64: af00 add r7, sp, #0 - 8023e66: 6078 str r0, [r7, #4] - 8023e68: 8039 strh r1, [r7, #0] - 8023e6a: 4613 mov r3, r2 - 8023e6c: 70fb strb r3, [r7, #3] + 8023dcc: b580 push {r7, lr} + 8023dce: b082 sub sp, #8 + 8023dd0: af00 add r7, sp, #0 + 8023dd2: 6078 str r0, [r7, #4] + 8023dd4: 8039 strh r1, [r7, #0] + 8023dd6: 4613 mov r3, r2 + 8023dd8: 70fb strb r3, [r7, #3] LV_UNUSED(f); return lv_color_darken(c, opa); - 8023e6e: 78fb ldrb r3, [r7, #3] - 8023e70: 4619 mov r1, r3 - 8023e72: 8838 ldrh r0, [r7, #0] - 8023e74: f00d fd45 bl 8031902 - 8023e78: 4603 mov r3, r0 + 8023dda: 78fb ldrb r3, [r7, #3] + 8023ddc: 4619 mov r1, r3 + 8023dde: 8838 ldrh r0, [r7, #0] + 8023de0: f00d fd45 bl 803186e + 8023de4: 4603 mov r3, r0 } - 8023e7a: 4618 mov r0, r3 - 8023e7c: 3708 adds r7, #8 - 8023e7e: 46bd mov sp, r7 - 8023e80: bd80 pop {r7, pc} + 8023de6: 4618 mov r0, r3 + 8023de8: 3708 adds r7, #8 + 8023dea: 46bd mov sp, r7 + 8023dec: bd80 pop {r7, pc} ... -08023e84 : +08023df0 : static lv_color_t grey_filter_cb(const lv_color_filter_dsc_t * f, lv_color_t color, lv_opa_t opa) { - 8023e84: b580 push {r7, lr} - 8023e86: b082 sub sp, #8 - 8023e88: af00 add r7, sp, #0 - 8023e8a: 6078 str r0, [r7, #4] - 8023e8c: 8039 strh r1, [r7, #0] - 8023e8e: 4613 mov r3, r2 - 8023e90: 70fb strb r3, [r7, #3] + 8023df0: b580 push {r7, lr} + 8023df2: b082 sub sp, #8 + 8023df4: af00 add r7, sp, #0 + 8023df6: 6078 str r0, [r7, #4] + 8023df8: 8039 strh r1, [r7, #0] + 8023dfa: 4613 mov r3, r2 + 8023dfc: 70fb strb r3, [r7, #3] LV_UNUSED(f); if(theme.flags & MODE_DARK) return lv_color_mix(lv_palette_darken(LV_PALETTE_GREY, 2), color, opa); - 8023e92: 4b0f ldr r3, [pc, #60] ; (8023ed0 ) - 8023e94: 6a1b ldr r3, [r3, #32] - 8023e96: f003 0301 and.w r3, r3, #1 - 8023e9a: 2b00 cmp r3, #0 - 8023e9c: d00a beq.n 8023eb4 - 8023e9e: 2102 movs r1, #2 - 8023ea0: 2012 movs r0, #18 - 8023ea2: f00d fe3d bl 8031b20 - 8023ea6: 78fb ldrb r3, [r7, #3] - 8023ea8: 461a mov r2, r3 - 8023eaa: 8839 ldrh r1, [r7, #0] - 8023eac: f7ff fe92 bl 8023bd4 - 8023eb0: 4603 mov r3, r0 - 8023eb2: e009 b.n 8023ec8 + 8023dfe: 4b0f ldr r3, [pc, #60] ; (8023e3c ) + 8023e00: 6a1b ldr r3, [r3, #32] + 8023e02: f003 0301 and.w r3, r3, #1 + 8023e06: 2b00 cmp r3, #0 + 8023e08: d00a beq.n 8023e20 + 8023e0a: 2102 movs r1, #2 + 8023e0c: 2012 movs r0, #18 + 8023e0e: f00d fe3d bl 8031a8c + 8023e12: 78fb ldrb r3, [r7, #3] + 8023e14: 461a mov r2, r3 + 8023e16: 8839 ldrh r1, [r7, #0] + 8023e18: f7ff fe92 bl 8023b40 + 8023e1c: 4603 mov r3, r0 + 8023e1e: e009 b.n 8023e34 else return lv_color_mix(lv_palette_lighten(LV_PALETTE_GREY, 2), color, opa); - 8023eb4: 2102 movs r1, #2 - 8023eb6: 2012 movs r0, #18 - 8023eb8: f00d fe06 bl 8031ac8 - 8023ebc: 78fb ldrb r3, [r7, #3] - 8023ebe: 461a mov r2, r3 - 8023ec0: 8839 ldrh r1, [r7, #0] - 8023ec2: f7ff fe87 bl 8023bd4 - 8023ec6: 4603 mov r3, r0 + 8023e20: 2102 movs r1, #2 + 8023e22: 2012 movs r0, #18 + 8023e24: f00d fe06 bl 8031a34 + 8023e28: 78fb ldrb r3, [r7, #3] + 8023e2a: 461a mov r2, r3 + 8023e2c: 8839 ldrh r1, [r7, #0] + 8023e2e: f7ff fe87 bl 8023b40 + 8023e32: 4603 mov r3, r0 } - 8023ec8: 4618 mov r0, r3 - 8023eca: 3708 adds r7, #8 - 8023ecc: 46bd mov sp, r7 - 8023ece: bd80 pop {r7, pc} - 8023ed0: 20001c50 .word 0x20001c50 + 8023e34: 4618 mov r0, r3 + 8023e36: 3708 adds r7, #8 + 8023e38: 46bd mov sp, r7 + 8023e3a: bd80 pop {r7, pc} + 8023e3c: 20001c50 .word 0x20001c50 -08023ed4 : +08023e40 : static void style_init(void) { - 8023ed4: b5b0 push {r4, r5, r7, lr} - 8023ed6: b082 sub sp, #8 - 8023ed8: af02 add r7, sp, #8 + 8023e40: b5b0 push {r4, r5, r7, lr} + 8023e42: b082 sub sp, #8 + 8023e44: af02 add r7, sp, #8 LV_STYLE_TRANSFORM_ZOOM, LV_STYLE_TRANSFORM_ANGLE, LV_STYLE_COLOR_FILTER_OPA, LV_STYLE_COLOR_FILTER_DSC, 0 }; color_scr = theme.flags & MODE_DARK ? DARK_COLOR_SCR : LIGHT_COLOR_SCR; - 8023eda: 4bac ldr r3, [pc, #688] ; (802418c ) - 8023edc: 6a1b ldr r3, [r3, #32] - 8023ede: f003 0301 and.w r3, r3, #1 - 8023ee2: 2b00 cmp r3, #0 - 8023ee4: d006 beq.n 8023ef4 - 8023ee6: 48aa ldr r0, [pc, #680] ; (8024190 ) - 8023ee8: f7ff fed5 bl 8023c96 - 8023eec: 4603 mov r3, r0 - 8023eee: 4aa9 ldr r2, [pc, #676] ; (8024194 ) - 8023ef0: 8013 strh r3, [r2, #0] - 8023ef2: e006 b.n 8023f02 - 8023ef4: 2104 movs r1, #4 - 8023ef6: 2012 movs r0, #18 - 8023ef8: f00d fde6 bl 8031ac8 - 8023efc: 4603 mov r3, r0 - 8023efe: 4aa5 ldr r2, [pc, #660] ; (8024194 ) - 8023f00: 8013 strh r3, [r2, #0] + 8023e46: 4bac ldr r3, [pc, #688] ; (80240f8 ) + 8023e48: 6a1b ldr r3, [r3, #32] + 8023e4a: f003 0301 and.w r3, r3, #1 + 8023e4e: 2b00 cmp r3, #0 + 8023e50: d006 beq.n 8023e60 + 8023e52: 48aa ldr r0, [pc, #680] ; (80240fc ) + 8023e54: f7ff fed5 bl 8023c02 + 8023e58: 4603 mov r3, r0 + 8023e5a: 4aa9 ldr r2, [pc, #676] ; (8024100 ) + 8023e5c: 8013 strh r3, [r2, #0] + 8023e5e: e006 b.n 8023e6e + 8023e60: 2104 movs r1, #4 + 8023e62: 2012 movs r0, #18 + 8023e64: f00d fde6 bl 8031a34 + 8023e68: 4603 mov r3, r0 + 8023e6a: 4aa5 ldr r2, [pc, #660] ; (8024100 ) + 8023e6c: 8013 strh r3, [r2, #0] color_text = theme.flags & MODE_DARK ? DARK_COLOR_TEXT : LIGHT_COLOR_TEXT; - 8023f02: 4ba2 ldr r3, [pc, #648] ; (802418c ) - 8023f04: 6a1b ldr r3, [r3, #32] - 8023f06: f003 0301 and.w r3, r3, #1 - 8023f0a: 2b00 cmp r3, #0 - 8023f0c: d007 beq.n 8023f1e - 8023f0e: 2105 movs r1, #5 - 8023f10: 2012 movs r0, #18 - 8023f12: f00d fdd9 bl 8031ac8 - 8023f16: 4603 mov r3, r0 - 8023f18: 4a9f ldr r2, [pc, #636] ; (8024198 ) - 8023f1a: 8013 strh r3, [r2, #0] - 8023f1c: e006 b.n 8023f2c - 8023f1e: 2104 movs r1, #4 - 8023f20: 2012 movs r0, #18 - 8023f22: f00d fdfd bl 8031b20 - 8023f26: 4603 mov r3, r0 - 8023f28: 4a9b ldr r2, [pc, #620] ; (8024198 ) - 8023f2a: 8013 strh r3, [r2, #0] + 8023e6e: 4ba2 ldr r3, [pc, #648] ; (80240f8 ) + 8023e70: 6a1b ldr r3, [r3, #32] + 8023e72: f003 0301 and.w r3, r3, #1 + 8023e76: 2b00 cmp r3, #0 + 8023e78: d007 beq.n 8023e8a + 8023e7a: 2105 movs r1, #5 + 8023e7c: 2012 movs r0, #18 + 8023e7e: f00d fdd9 bl 8031a34 + 8023e82: 4603 mov r3, r0 + 8023e84: 4a9f ldr r2, [pc, #636] ; (8024104 ) + 8023e86: 8013 strh r3, [r2, #0] + 8023e88: e006 b.n 8023e98 + 8023e8a: 2104 movs r1, #4 + 8023e8c: 2012 movs r0, #18 + 8023e8e: f00d fdfd bl 8031a8c + 8023e92: 4603 mov r3, r0 + 8023e94: 4a9b ldr r2, [pc, #620] ; (8024104 ) + 8023e96: 8013 strh r3, [r2, #0] color_card = theme.flags & MODE_DARK ? DARK_COLOR_CARD : LIGHT_COLOR_CARD; - 8023f2c: 4b97 ldr r3, [pc, #604] ; (802418c ) - 8023f2e: 6a1b ldr r3, [r3, #32] - 8023f30: f003 0301 and.w r3, r3, #1 - 8023f34: 2b00 cmp r3, #0 - 8023f36: d006 beq.n 8023f46 - 8023f38: 4898 ldr r0, [pc, #608] ; (802419c ) - 8023f3a: f7ff feac bl 8023c96 - 8023f3e: 4603 mov r3, r0 - 8023f40: 4a97 ldr r2, [pc, #604] ; (80241a0 ) - 8023f42: 8013 strh r3, [r2, #0] - 8023f44: e004 b.n 8023f50 - 8023f46: f7ff fed6 bl 8023cf6 - 8023f4a: 4603 mov r3, r0 - 8023f4c: 4a94 ldr r2, [pc, #592] ; (80241a0 ) - 8023f4e: 8013 strh r3, [r2, #0] + 8023e98: 4b97 ldr r3, [pc, #604] ; (80240f8 ) + 8023e9a: 6a1b ldr r3, [r3, #32] + 8023e9c: f003 0301 and.w r3, r3, #1 + 8023ea0: 2b00 cmp r3, #0 + 8023ea2: d006 beq.n 8023eb2 + 8023ea4: 4898 ldr r0, [pc, #608] ; (8024108 ) + 8023ea6: f7ff feac bl 8023c02 + 8023eaa: 4603 mov r3, r0 + 8023eac: 4a97 ldr r2, [pc, #604] ; (802410c ) + 8023eae: 8013 strh r3, [r2, #0] + 8023eb0: e004 b.n 8023ebc + 8023eb2: f7ff fed6 bl 8023c62 + 8023eb6: 4603 mov r3, r0 + 8023eb8: 4a94 ldr r2, [pc, #592] ; (802410c ) + 8023eba: 8013 strh r3, [r2, #0] color_grey = theme.flags & MODE_DARK ? DARK_COLOR_GREY : LIGHT_COLOR_GREY; - 8023f50: 4b8e ldr r3, [pc, #568] ; (802418c ) - 8023f52: 6a1b ldr r3, [r3, #32] - 8023f54: f003 0301 and.w r3, r3, #1 - 8023f58: 2b00 cmp r3, #0 - 8023f5a: d006 beq.n 8023f6a - 8023f5c: 4891 ldr r0, [pc, #580] ; (80241a4 ) - 8023f5e: f7ff fe9a bl 8023c96 - 8023f62: 4603 mov r3, r0 - 8023f64: 4a90 ldr r2, [pc, #576] ; (80241a8 ) - 8023f66: 8013 strh r3, [r2, #0] - 8023f68: e006 b.n 8023f78 - 8023f6a: 2102 movs r1, #2 - 8023f6c: 2012 movs r0, #18 - 8023f6e: f00d fdab bl 8031ac8 - 8023f72: 4603 mov r3, r0 - 8023f74: 4a8c ldr r2, [pc, #560] ; (80241a8 ) - 8023f76: 8013 strh r3, [r2, #0] + 8023ebc: 4b8e ldr r3, [pc, #568] ; (80240f8 ) + 8023ebe: 6a1b ldr r3, [r3, #32] + 8023ec0: f003 0301 and.w r3, r3, #1 + 8023ec4: 2b00 cmp r3, #0 + 8023ec6: d006 beq.n 8023ed6 + 8023ec8: 4891 ldr r0, [pc, #580] ; (8024110 ) + 8023eca: f7ff fe9a bl 8023c02 + 8023ece: 4603 mov r3, r0 + 8023ed0: 4a90 ldr r2, [pc, #576] ; (8024114 ) + 8023ed2: 8013 strh r3, [r2, #0] + 8023ed4: e006 b.n 8023ee4 + 8023ed6: 2102 movs r1, #2 + 8023ed8: 2012 movs r0, #18 + 8023eda: f00d fdab bl 8031a34 + 8023ede: 4603 mov r3, r0 + 8023ee0: 4a8c ldr r2, [pc, #560] ; (8024114 ) + 8023ee2: 8013 strh r3, [r2, #0] static lv_style_transition_dsc_t trans_delayed; lv_style_transition_dsc_init(&trans_delayed, trans_props, lv_anim_path_linear, TRANSITION_TIME, 70, NULL); - 8023f78: 2300 movs r3, #0 - 8023f7a: 9301 str r3, [sp, #4] - 8023f7c: 2346 movs r3, #70 ; 0x46 - 8023f7e: 9300 str r3, [sp, #0] - 8023f80: 2350 movs r3, #80 ; 0x50 - 8023f82: 4a8a ldr r2, [pc, #552] ; (80241ac ) - 8023f84: 498a ldr r1, [pc, #552] ; (80241b0 ) - 8023f86: 488b ldr r0, [pc, #556] ; (80241b4 ) - 8023f88: f010 fb8c bl 80346a4 + 8023ee4: 2300 movs r3, #0 + 8023ee6: 9301 str r3, [sp, #4] + 8023ee8: 2346 movs r3, #70 ; 0x46 + 8023eea: 9300 str r3, [sp, #0] + 8023eec: 2350 movs r3, #80 ; 0x50 + 8023eee: 4a8a ldr r2, [pc, #552] ; (8024118 ) + 8023ef0: 498a ldr r1, [pc, #552] ; (802411c ) + 8023ef2: 488b ldr r0, [pc, #556] ; (8024120 ) + 8023ef4: f010 fb8c bl 8034610 static lv_style_transition_dsc_t trans_normal; lv_style_transition_dsc_init(&trans_normal, trans_props, lv_anim_path_linear, TRANSITION_TIME, 0, NULL); - 8023f8c: 2300 movs r3, #0 - 8023f8e: 9301 str r3, [sp, #4] - 8023f90: 2300 movs r3, #0 - 8023f92: 9300 str r3, [sp, #0] - 8023f94: 2350 movs r3, #80 ; 0x50 - 8023f96: 4a85 ldr r2, [pc, #532] ; (80241ac ) - 8023f98: 4985 ldr r1, [pc, #532] ; (80241b0 ) - 8023f9a: 4887 ldr r0, [pc, #540] ; (80241b8 ) - 8023f9c: f010 fb82 bl 80346a4 + 8023ef8: 2300 movs r3, #0 + 8023efa: 9301 str r3, [sp, #4] + 8023efc: 2300 movs r3, #0 + 8023efe: 9300 str r3, [sp, #0] + 8023f00: 2350 movs r3, #80 ; 0x50 + 8023f02: 4a85 ldr r2, [pc, #532] ; (8024118 ) + 8023f04: 4985 ldr r1, [pc, #532] ; (802411c ) + 8023f06: 4887 ldr r0, [pc, #540] ; (8024124 ) + 8023f08: f010 fb82 bl 8034610 style_init_reset(&styles->transition_delayed); - 8023fa0: 4b86 ldr r3, [pc, #536] ; (80241bc ) - 8023fa2: 681b ldr r3, [r3, #0] - 8023fa4: 33d0 adds r3, #208 ; 0xd0 - 8023fa6: 4618 mov r0, r3 - 8023fa8: f003 fad4 bl 8027554 + 8023f0c: 4b86 ldr r3, [pc, #536] ; (8024128 ) + 8023f0e: 681b ldr r3, [r3, #0] + 8023f10: 33d0 adds r3, #208 ; 0xd0 + 8023f12: 4618 mov r0, r3 + 8023f14: f003 fad4 bl 80274c0 lv_style_set_transition(&styles->transition_delayed, &trans_delayed); /*Go back to default state with delay*/ - 8023fac: 4b83 ldr r3, [pc, #524] ; (80241bc ) - 8023fae: 681b ldr r3, [r3, #0] - 8023fb0: 33d0 adds r3, #208 ; 0xd0 - 8023fb2: 4980 ldr r1, [pc, #512] ; (80241b4 ) - 8023fb4: 4618 mov r0, r3 - 8023fb6: f010 ffb3 bl 8034f20 + 8023f18: 4b83 ldr r3, [pc, #524] ; (8024128 ) + 8023f1a: 681b ldr r3, [r3, #0] + 8023f1c: 33d0 adds r3, #208 ; 0xd0 + 8023f1e: 4980 ldr r1, [pc, #512] ; (8024120 ) + 8023f20: 4618 mov r0, r3 + 8023f22: f010 ffb3 bl 8034e8c style_init_reset(&styles->transition_normal); - 8023fba: 4b80 ldr r3, [pc, #512] ; (80241bc ) - 8023fbc: 681b ldr r3, [r3, #0] - 8023fbe: 33d8 adds r3, #216 ; 0xd8 - 8023fc0: 4618 mov r0, r3 - 8023fc2: f003 fac7 bl 8027554 + 8023f26: 4b80 ldr r3, [pc, #512] ; (8024128 ) + 8023f28: 681b ldr r3, [r3, #0] + 8023f2a: 33d8 adds r3, #216 ; 0xd8 + 8023f2c: 4618 mov r0, r3 + 8023f2e: f003 fac7 bl 80274c0 lv_style_set_transition(&styles->transition_normal, &trans_normal); /*Go back to default state with delay*/ - 8023fc6: 4b7d ldr r3, [pc, #500] ; (80241bc ) - 8023fc8: 681b ldr r3, [r3, #0] - 8023fca: 33d8 adds r3, #216 ; 0xd8 - 8023fcc: 497a ldr r1, [pc, #488] ; (80241b8 ) - 8023fce: 4618 mov r0, r3 - 8023fd0: f010 ffa6 bl 8034f20 + 8023f32: 4b7d ldr r3, [pc, #500] ; (8024128 ) + 8023f34: 681b ldr r3, [r3, #0] + 8023f36: 33d8 adds r3, #216 ; 0xd8 + 8023f38: 497a ldr r1, [pc, #488] ; (8024124 ) + 8023f3a: 4618 mov r0, r3 + 8023f3c: f010 ffa6 bl 8034e8c style_init_reset(&styles->scrollbar); - 8023fd4: 4b79 ldr r3, [pc, #484] ; (80241bc ) - 8023fd6: 681b ldr r3, [r3, #0] - 8023fd8: 3308 adds r3, #8 - 8023fda: 4618 mov r0, r3 - 8023fdc: f003 faba bl 8027554 + 8023f40: 4b79 ldr r3, [pc, #484] ; (8024128 ) + 8023f42: 681b ldr r3, [r3, #0] + 8023f44: 3308 adds r3, #8 + 8023f46: 4618 mov r0, r3 + 8023f48: f003 faba bl 80274c0 lv_style_set_bg_color(&styles->scrollbar, (theme.flags & MODE_DARK) ? lv_palette_darken(LV_PALETTE_GREY, - 8023fe0: 4b76 ldr r3, [pc, #472] ; (80241bc ) - 8023fe2: 681b ldr r3, [r3, #0] - 8023fe4: f103 0408 add.w r4, r3, #8 - 8023fe8: 4b68 ldr r3, [pc, #416] ; (802418c ) - 8023fea: 6a1b ldr r3, [r3, #32] - 8023fec: f003 0301 and.w r3, r3, #1 - 8023ff0: 2b00 cmp r3, #0 - 8023ff2: d005 beq.n 8024000 - 8023ff4: 2102 movs r1, #2 - 8023ff6: 2012 movs r0, #18 - 8023ff8: f00d fd92 bl 8031b20 - 8023ffc: 4603 mov r3, r0 - 8023ffe: e003 b.n 8024008 + 8023f4c: 4b76 ldr r3, [pc, #472] ; (8024128 ) + 8023f4e: 681b ldr r3, [r3, #0] + 8023f50: f103 0408 add.w r4, r3, #8 + 8023f54: 4b68 ldr r3, [pc, #416] ; (80240f8 ) + 8023f56: 6a1b ldr r3, [r3, #32] + 8023f58: f003 0301 and.w r3, r3, #1 + 8023f5c: 2b00 cmp r3, #0 + 8023f5e: d005 beq.n 8023f6c + 8023f60: 2102 movs r1, #2 + 8023f62: 2012 movs r0, #18 + 8023f64: f00d fd92 bl 8031a8c + 8023f68: 4603 mov r3, r0 + 8023f6a: e003 b.n 8023f74 2) : lv_palette_main(LV_PALETTE_GREY)); - 8024000: 2012 movs r0, #18 - 8024002: f00d fd4b bl 8031a9c - 8024006: 4603 mov r3, r0 + 8023f6c: 2012 movs r0, #18 + 8023f6e: f00d fd4b bl 8031a08 + 8023f72: 4603 mov r3, r0 lv_style_set_bg_color(&styles->scrollbar, (theme.flags & MODE_DARK) ? lv_palette_darken(LV_PALETTE_GREY, - 8024008: 4619 mov r1, r3 - 802400a: 4620 mov r0, r4 - 802400c: f010 fd4b bl 8034aa6 + 8023f74: 4619 mov r1, r3 + 8023f76: 4620 mov r0, r4 + 8023f78: f010 fd4b bl 8034a12 lv_style_set_radius(&styles->scrollbar, LV_RADIUS_CIRCLE); - 8024010: 4b6a ldr r3, [pc, #424] ; (80241bc ) - 8024012: 681b ldr r3, [r3, #0] - 8024014: 3308 adds r3, #8 - 8024016: f647 71ff movw r1, #32767 ; 0x7fff - 802401a: 4618 mov r0, r3 - 802401c: f010 ff2c bl 8034e78 + 8023f7c: 4b6a ldr r3, [pc, #424] ; (8024128 ) + 8023f7e: 681b ldr r3, [r3, #0] + 8023f80: 3308 adds r3, #8 + 8023f82: f647 71ff movw r1, #32767 ; 0x7fff + 8023f86: 4618 mov r0, r3 + 8023f88: f010 ff2c bl 8034de4 lv_style_set_pad_all(&styles->scrollbar, lv_disp_dpx(theme.disp, 7)); - 8024020: 4b66 ldr r3, [pc, #408] ; (80241bc ) - 8024022: 681b ldr r3, [r3, #0] - 8024024: f103 0408 add.w r4, r3, #8 - 8024028: 4b58 ldr r3, [pc, #352] ; (802418c ) - 802402a: 68db ldr r3, [r3, #12] - 802402c: 2107 movs r1, #7 - 802402e: 4618 mov r0, r3 - 8024030: f7ff fee6 bl 8023e00 - 8024034: 4603 mov r3, r0 - 8024036: 4619 mov r1, r3 - 8024038: 4620 mov r0, r4 - 802403a: f7ff fe7c bl 8023d36 + 8023f8c: 4b66 ldr r3, [pc, #408] ; (8024128 ) + 8023f8e: 681b ldr r3, [r3, #0] + 8023f90: f103 0408 add.w r4, r3, #8 + 8023f94: 4b58 ldr r3, [pc, #352] ; (80240f8 ) + 8023f96: 68db ldr r3, [r3, #12] + 8023f98: 2107 movs r1, #7 + 8023f9a: 4618 mov r0, r3 + 8023f9c: f7ff fee6 bl 8023d6c + 8023fa0: 4603 mov r3, r0 + 8023fa2: 4619 mov r1, r3 + 8023fa4: 4620 mov r0, r4 + 8023fa6: f7ff fe7c bl 8023ca2 lv_style_set_width(&styles->scrollbar, lv_disp_dpx(theme.disp, 5)); - 802403e: 4b5f ldr r3, [pc, #380] ; (80241bc ) - 8024040: 681b ldr r3, [r3, #0] - 8024042: f103 0408 add.w r4, r3, #8 - 8024046: 4b51 ldr r3, [pc, #324] ; (802418c ) - 8024048: 68db ldr r3, [r3, #12] - 802404a: 2105 movs r1, #5 - 802404c: 4618 mov r0, r3 - 802404e: f7ff fed7 bl 8023e00 - 8024052: 4603 mov r3, r0 - 8024054: 4619 mov r1, r3 - 8024056: 4620 mov r0, r4 - 8024058: f010 fc41 bl 80348de + 8023faa: 4b5f ldr r3, [pc, #380] ; (8024128 ) + 8023fac: 681b ldr r3, [r3, #0] + 8023fae: f103 0408 add.w r4, r3, #8 + 8023fb2: 4b51 ldr r3, [pc, #324] ; (80240f8 ) + 8023fb4: 68db ldr r3, [r3, #12] + 8023fb6: 2105 movs r1, #5 + 8023fb8: 4618 mov r0, r3 + 8023fba: f7ff fed7 bl 8023d6c + 8023fbe: 4603 mov r3, r0 + 8023fc0: 4619 mov r1, r3 + 8023fc2: 4620 mov r0, r4 + 8023fc4: f010 fc41 bl 803484a lv_style_set_bg_opa(&styles->scrollbar, LV_OPA_40); - 802405c: 4b57 ldr r3, [pc, #348] ; (80241bc ) - 802405e: 681b ldr r3, [r3, #0] - 8024060: 3308 adds r3, #8 - 8024062: 2166 movs r1, #102 ; 0x66 - 8024064: 4618 mov r0, r3 - 8024066: f010 fd30 bl 8034aca + 8023fc8: 4b57 ldr r3, [pc, #348] ; (8024128 ) + 8023fca: 681b ldr r3, [r3, #0] + 8023fcc: 3308 adds r3, #8 + 8023fce: 2166 movs r1, #102 ; 0x66 + 8023fd0: 4618 mov r0, r3 + 8023fd2: f010 fd30 bl 8034a36 lv_style_set_transition(&styles->scrollbar, &trans_normal); - 802406a: 4b54 ldr r3, [pc, #336] ; (80241bc ) - 802406c: 681b ldr r3, [r3, #0] - 802406e: 3308 adds r3, #8 - 8024070: 4951 ldr r1, [pc, #324] ; (80241b8 ) - 8024072: 4618 mov r0, r3 - 8024074: f010 ff54 bl 8034f20 + 8023fd6: 4b54 ldr r3, [pc, #336] ; (8024128 ) + 8023fd8: 681b ldr r3, [r3, #0] + 8023fda: 3308 adds r3, #8 + 8023fdc: 4951 ldr r1, [pc, #324] ; (8024124 ) + 8023fde: 4618 mov r0, r3 + 8023fe0: f010 ff54 bl 8034e8c style_init_reset(&styles->scrollbar_scrolled); - 8024078: 4b50 ldr r3, [pc, #320] ; (80241bc ) - 802407a: 681b ldr r3, [r3, #0] - 802407c: 3310 adds r3, #16 - 802407e: 4618 mov r0, r3 - 8024080: f003 fa68 bl 8027554 + 8023fe4: 4b50 ldr r3, [pc, #320] ; (8024128 ) + 8023fe6: 681b ldr r3, [r3, #0] + 8023fe8: 3310 adds r3, #16 + 8023fea: 4618 mov r0, r3 + 8023fec: f003 fa68 bl 80274c0 lv_style_set_bg_opa(&styles->scrollbar_scrolled, LV_OPA_COVER); - 8024084: 4b4d ldr r3, [pc, #308] ; (80241bc ) - 8024086: 681b ldr r3, [r3, #0] - 8024088: 3310 adds r3, #16 - 802408a: 21ff movs r1, #255 ; 0xff - 802408c: 4618 mov r0, r3 - 802408e: f010 fd1c bl 8034aca + 8023ff0: 4b4d ldr r3, [pc, #308] ; (8024128 ) + 8023ff2: 681b ldr r3, [r3, #0] + 8023ff4: 3310 adds r3, #16 + 8023ff6: 21ff movs r1, #255 ; 0xff + 8023ff8: 4618 mov r0, r3 + 8023ffa: f010 fd1c bl 8034a36 style_init_reset(&styles->scr); - 8024092: 4b4a ldr r3, [pc, #296] ; (80241bc ) - 8024094: 681b ldr r3, [r3, #0] - 8024096: 4618 mov r0, r3 - 8024098: f003 fa5c bl 8027554 + 8023ffe: 4b4a ldr r3, [pc, #296] ; (8024128 ) + 8024000: 681b ldr r3, [r3, #0] + 8024002: 4618 mov r0, r3 + 8024004: f003 fa5c bl 80274c0 lv_style_set_bg_opa(&styles->scr, LV_OPA_COVER); - 802409c: 4b47 ldr r3, [pc, #284] ; (80241bc ) - 802409e: 681b ldr r3, [r3, #0] - 80240a0: 21ff movs r1, #255 ; 0xff - 80240a2: 4618 mov r0, r3 - 80240a4: f010 fd11 bl 8034aca + 8024008: 4b47 ldr r3, [pc, #284] ; (8024128 ) + 802400a: 681b ldr r3, [r3, #0] + 802400c: 21ff movs r1, #255 ; 0xff + 802400e: 4618 mov r0, r3 + 8024010: f010 fd11 bl 8034a36 lv_style_set_bg_color(&styles->scr, color_scr); - 80240a8: 4b44 ldr r3, [pc, #272] ; (80241bc ) - 80240aa: 681b ldr r3, [r3, #0] - 80240ac: 461a mov r2, r3 - 80240ae: 4b39 ldr r3, [pc, #228] ; (8024194 ) - 80240b0: 8819 ldrh r1, [r3, #0] - 80240b2: 4610 mov r0, r2 - 80240b4: f010 fcf7 bl 8034aa6 + 8024014: 4b44 ldr r3, [pc, #272] ; (8024128 ) + 8024016: 681b ldr r3, [r3, #0] + 8024018: 461a mov r2, r3 + 802401a: 4b39 ldr r3, [pc, #228] ; (8024100 ) + 802401c: 8819 ldrh r1, [r3, #0] + 802401e: 4610 mov r0, r2 + 8024020: f010 fcf7 bl 8034a12 lv_style_set_text_color(&styles->scr, color_text); - 80240b8: 4b40 ldr r3, [pc, #256] ; (80241bc ) - 80240ba: 681b ldr r3, [r3, #0] - 80240bc: 461a mov r2, r3 - 80240be: 4b36 ldr r3, [pc, #216] ; (8024198 ) - 80240c0: 8819 ldrh r1, [r3, #0] - 80240c2: 4610 mov r0, r2 - 80240c4: f010 fe8f bl 8034de6 + 8024024: 4b40 ldr r3, [pc, #256] ; (8024128 ) + 8024026: 681b ldr r3, [r3, #0] + 8024028: 461a mov r2, r3 + 802402a: 4b36 ldr r3, [pc, #216] ; (8024104 ) + 802402c: 8819 ldrh r1, [r3, #0] + 802402e: 4610 mov r0, r2 + 8024030: f010 fe8f bl 8034d52 lv_style_set_pad_row(&styles->scr, PAD_SMALL); - 80240c8: 4b3c ldr r3, [pc, #240] ; (80241bc ) - 80240ca: 681b ldr r3, [r3, #0] - 80240cc: 461c mov r4, r3 - 80240ce: 4b3c ldr r3, [pc, #240] ; (80241c0 ) - 80240d0: 781b ldrb r3, [r3, #0] - 80240d2: 2b01 cmp r3, #1 - 80240d4: d107 bne.n 80240e6 - 80240d6: 4b2d ldr r3, [pc, #180] ; (802418c ) - 80240d8: 68db ldr r3, [r3, #12] - 80240da: 210e movs r1, #14 - 80240dc: 4618 mov r0, r3 - 80240de: f7ff fe8f bl 8023e00 - 80240e2: 4603 mov r3, r0 - 80240e4: e012 b.n 802410c - 80240e6: 4b36 ldr r3, [pc, #216] ; (80241c0 ) - 80240e8: 781b ldrb r3, [r3, #0] - 80240ea: 2b02 cmp r3, #2 - 80240ec: d107 bne.n 80240fe - 80240ee: 4b27 ldr r3, [pc, #156] ; (802418c ) - 80240f0: 68db ldr r3, [r3, #12] - 80240f2: 210c movs r1, #12 - 80240f4: 4618 mov r0, r3 - 80240f6: f7ff fe83 bl 8023e00 - 80240fa: 4603 mov r3, r0 - 80240fc: e006 b.n 802410c - 80240fe: 4b23 ldr r3, [pc, #140] ; (802418c ) - 8024100: 68db ldr r3, [r3, #12] - 8024102: 210a movs r1, #10 - 8024104: 4618 mov r0, r3 - 8024106: f7ff fe7b bl 8023e00 - 802410a: 4603 mov r3, r0 - 802410c: 4619 mov r1, r3 - 802410e: 4620 mov r0, r4 - 8024110: f010 fca3 bl 8034a5a + 8024034: 4b3c ldr r3, [pc, #240] ; (8024128 ) + 8024036: 681b ldr r3, [r3, #0] + 8024038: 461c mov r4, r3 + 802403a: 4b3c ldr r3, [pc, #240] ; (802412c ) + 802403c: 781b ldrb r3, [r3, #0] + 802403e: 2b01 cmp r3, #1 + 8024040: d107 bne.n 8024052 + 8024042: 4b2d ldr r3, [pc, #180] ; (80240f8 ) + 8024044: 68db ldr r3, [r3, #12] + 8024046: 210e movs r1, #14 + 8024048: 4618 mov r0, r3 + 802404a: f7ff fe8f bl 8023d6c + 802404e: 4603 mov r3, r0 + 8024050: e012 b.n 8024078 + 8024052: 4b36 ldr r3, [pc, #216] ; (802412c ) + 8024054: 781b ldrb r3, [r3, #0] + 8024056: 2b02 cmp r3, #2 + 8024058: d107 bne.n 802406a + 802405a: 4b27 ldr r3, [pc, #156] ; (80240f8 ) + 802405c: 68db ldr r3, [r3, #12] + 802405e: 210c movs r1, #12 + 8024060: 4618 mov r0, r3 + 8024062: f7ff fe83 bl 8023d6c + 8024066: 4603 mov r3, r0 + 8024068: e006 b.n 8024078 + 802406a: 4b23 ldr r3, [pc, #140] ; (80240f8 ) + 802406c: 68db ldr r3, [r3, #12] + 802406e: 210a movs r1, #10 + 8024070: 4618 mov r0, r3 + 8024072: f7ff fe7b bl 8023d6c + 8024076: 4603 mov r3, r0 + 8024078: 4619 mov r1, r3 + 802407a: 4620 mov r0, r4 + 802407c: f010 fca3 bl 80349c6 lv_style_set_pad_column(&styles->scr, PAD_SMALL); - 8024114: 4b29 ldr r3, [pc, #164] ; (80241bc ) - 8024116: 681b ldr r3, [r3, #0] - 8024118: 461c mov r4, r3 - 802411a: 4b29 ldr r3, [pc, #164] ; (80241c0 ) - 802411c: 781b ldrb r3, [r3, #0] - 802411e: 2b01 cmp r3, #1 - 8024120: d107 bne.n 8024132 - 8024122: 4b1a ldr r3, [pc, #104] ; (802418c ) - 8024124: 68db ldr r3, [r3, #12] - 8024126: 210e movs r1, #14 - 8024128: 4618 mov r0, r3 - 802412a: f7ff fe69 bl 8023e00 - 802412e: 4603 mov r3, r0 - 8024130: e012 b.n 8024158 - 8024132: 4b23 ldr r3, [pc, #140] ; (80241c0 ) - 8024134: 781b ldrb r3, [r3, #0] - 8024136: 2b02 cmp r3, #2 - 8024138: d107 bne.n 802414a - 802413a: 4b14 ldr r3, [pc, #80] ; (802418c ) - 802413c: 68db ldr r3, [r3, #12] - 802413e: 210c movs r1, #12 - 8024140: 4618 mov r0, r3 - 8024142: f7ff fe5d bl 8023e00 - 8024146: 4603 mov r3, r0 - 8024148: e006 b.n 8024158 - 802414a: 4b10 ldr r3, [pc, #64] ; (802418c ) - 802414c: 68db ldr r3, [r3, #12] - 802414e: 210a movs r1, #10 - 8024150: 4618 mov r0, r3 - 8024152: f7ff fe55 bl 8023e00 - 8024156: 4603 mov r3, r0 - 8024158: 4619 mov r1, r3 - 802415a: 4620 mov r0, r4 - 802415c: f010 fc90 bl 8034a80 + 8024080: 4b29 ldr r3, [pc, #164] ; (8024128 ) + 8024082: 681b ldr r3, [r3, #0] + 8024084: 461c mov r4, r3 + 8024086: 4b29 ldr r3, [pc, #164] ; (802412c ) + 8024088: 781b ldrb r3, [r3, #0] + 802408a: 2b01 cmp r3, #1 + 802408c: d107 bne.n 802409e + 802408e: 4b1a ldr r3, [pc, #104] ; (80240f8 ) + 8024090: 68db ldr r3, [r3, #12] + 8024092: 210e movs r1, #14 + 8024094: 4618 mov r0, r3 + 8024096: f7ff fe69 bl 8023d6c + 802409a: 4603 mov r3, r0 + 802409c: e012 b.n 80240c4 + 802409e: 4b23 ldr r3, [pc, #140] ; (802412c ) + 80240a0: 781b ldrb r3, [r3, #0] + 80240a2: 2b02 cmp r3, #2 + 80240a4: d107 bne.n 80240b6 + 80240a6: 4b14 ldr r3, [pc, #80] ; (80240f8 ) + 80240a8: 68db ldr r3, [r3, #12] + 80240aa: 210c movs r1, #12 + 80240ac: 4618 mov r0, r3 + 80240ae: f7ff fe5d bl 8023d6c + 80240b2: 4603 mov r3, r0 + 80240b4: e006 b.n 80240c4 + 80240b6: 4b10 ldr r3, [pc, #64] ; (80240f8 ) + 80240b8: 68db ldr r3, [r3, #12] + 80240ba: 210a movs r1, #10 + 80240bc: 4618 mov r0, r3 + 80240be: f7ff fe55 bl 8023d6c + 80240c2: 4603 mov r3, r0 + 80240c4: 4619 mov r1, r3 + 80240c6: 4620 mov r0, r4 + 80240c8: f010 fc90 bl 80349ec style_init_reset(&styles->card); - 8024160: 4b16 ldr r3, [pc, #88] ; (80241bc ) - 8024162: 681b ldr r3, [r3, #0] - 8024164: 3318 adds r3, #24 - 8024166: 4618 mov r0, r3 - 8024168: f003 f9f4 bl 8027554 + 80240cc: 4b16 ldr r3, [pc, #88] ; (8024128 ) + 80240ce: 681b ldr r3, [r3, #0] + 80240d0: 3318 adds r3, #24 + 80240d2: 4618 mov r0, r3 + 80240d4: f003 f9f4 bl 80274c0 lv_style_set_radius(&styles->card, RADIUS_DEFAULT); - 802416c: 4b13 ldr r3, [pc, #76] ; (80241bc ) - 802416e: 681b ldr r3, [r3, #0] - 8024170: f103 0418 add.w r4, r3, #24 - 8024174: 4b12 ldr r3, [pc, #72] ; (80241c0 ) - 8024176: 781b ldrb r3, [r3, #0] - 8024178: 2b01 cmp r3, #1 - 802417a: d123 bne.n 80241c4 - 802417c: 4b03 ldr r3, [pc, #12] ; (802418c ) - 802417e: 68db ldr r3, [r3, #12] - 8024180: 210c movs r1, #12 - 8024182: 4618 mov r0, r3 - 8024184: f7ff fe3c bl 8023e00 - 8024188: 4603 mov r3, r0 - 802418a: e022 b.n 80241d2 - 802418c: 20001c50 .word 0x20001c50 - 8024190: 0015171a .word 0x0015171a - 8024194: 20001c78 .word 0x20001c78 - 8024198: 20001c7c .word 0x20001c7c - 802419c: 00282b30 .word 0x00282b30 - 80241a0: 20001c80 .word 0x20001c80 - 80241a4: 002f3237 .word 0x002f3237 - 80241a8: 20001c84 .word 0x20001c84 - 80241ac: 08030a91 .word 0x08030a91 - 80241b0: 0806cb8c .word 0x0806cb8c - 80241b4: 20001c88 .word 0x20001c88 - 80241b8: 20001c9c .word 0x20001c9c - 80241bc: 20001c4c .word 0x20001c4c - 80241c0: 20001c74 .word 0x20001c74 - 80241c4: 4ba4 ldr r3, [pc, #656] ; (8024458 ) - 80241c6: 68db ldr r3, [r3, #12] - 80241c8: 2108 movs r1, #8 - 80241ca: 4618 mov r0, r3 - 80241cc: f7ff fe18 bl 8023e00 - 80241d0: 4603 mov r3, r0 - 80241d2: 4619 mov r1, r3 - 80241d4: 4620 mov r0, r4 - 80241d6: f010 fe4f bl 8034e78 + 80240d8: 4b13 ldr r3, [pc, #76] ; (8024128 ) + 80240da: 681b ldr r3, [r3, #0] + 80240dc: f103 0418 add.w r4, r3, #24 + 80240e0: 4b12 ldr r3, [pc, #72] ; (802412c ) + 80240e2: 781b ldrb r3, [r3, #0] + 80240e4: 2b01 cmp r3, #1 + 80240e6: d123 bne.n 8024130 + 80240e8: 4b03 ldr r3, [pc, #12] ; (80240f8 ) + 80240ea: 68db ldr r3, [r3, #12] + 80240ec: 210c movs r1, #12 + 80240ee: 4618 mov r0, r3 + 80240f0: f7ff fe3c bl 8023d6c + 80240f4: 4603 mov r3, r0 + 80240f6: e022 b.n 802413e + 80240f8: 20001c50 .word 0x20001c50 + 80240fc: 0015171a .word 0x0015171a + 8024100: 20001c78 .word 0x20001c78 + 8024104: 20001c7c .word 0x20001c7c + 8024108: 00282b30 .word 0x00282b30 + 802410c: 20001c80 .word 0x20001c80 + 8024110: 002f3237 .word 0x002f3237 + 8024114: 20001c84 .word 0x20001c84 + 8024118: 080309fd .word 0x080309fd + 802411c: 0806cae4 .word 0x0806cae4 + 8024120: 20001c88 .word 0x20001c88 + 8024124: 20001c9c .word 0x20001c9c + 8024128: 20001c4c .word 0x20001c4c + 802412c: 20001c74 .word 0x20001c74 + 8024130: 4ba4 ldr r3, [pc, #656] ; (80243c4 ) + 8024132: 68db ldr r3, [r3, #12] + 8024134: 2108 movs r1, #8 + 8024136: 4618 mov r0, r3 + 8024138: f7ff fe18 bl 8023d6c + 802413c: 4603 mov r3, r0 + 802413e: 4619 mov r1, r3 + 8024140: 4620 mov r0, r4 + 8024142: f010 fe4f bl 8034de4 lv_style_set_bg_opa(&styles->card, LV_OPA_COVER); - 80241da: 4ba0 ldr r3, [pc, #640] ; (802445c ) - 80241dc: 681b ldr r3, [r3, #0] - 80241de: 3318 adds r3, #24 - 80241e0: 21ff movs r1, #255 ; 0xff - 80241e2: 4618 mov r0, r3 - 80241e4: f010 fc71 bl 8034aca + 8024146: 4ba0 ldr r3, [pc, #640] ; (80243c8 ) + 8024148: 681b ldr r3, [r3, #0] + 802414a: 3318 adds r3, #24 + 802414c: 21ff movs r1, #255 ; 0xff + 802414e: 4618 mov r0, r3 + 8024150: f010 fc71 bl 8034a36 lv_style_set_bg_color(&styles->card, color_card); - 80241e8: 4b9c ldr r3, [pc, #624] ; (802445c ) - 80241ea: 681b ldr r3, [r3, #0] - 80241ec: 3318 adds r3, #24 - 80241ee: 4a9c ldr r2, [pc, #624] ; (8024460 ) - 80241f0: 8811 ldrh r1, [r2, #0] - 80241f2: 4618 mov r0, r3 - 80241f4: f010 fc57 bl 8034aa6 + 8024154: 4b9c ldr r3, [pc, #624] ; (80243c8 ) + 8024156: 681b ldr r3, [r3, #0] + 8024158: 3318 adds r3, #24 + 802415a: 4a9c ldr r2, [pc, #624] ; (80243cc ) + 802415c: 8811 ldrh r1, [r2, #0] + 802415e: 4618 mov r0, r3 + 8024160: f010 fc57 bl 8034a12 lv_style_set_border_color(&styles->card, color_grey); - 80241f8: 4b98 ldr r3, [pc, #608] ; (802445c ) - 80241fa: 681b ldr r3, [r3, #0] - 80241fc: 3318 adds r3, #24 - 80241fe: 4a99 ldr r2, [pc, #612] ; (8024464 ) - 8024200: 8811 ldrh r1, [r2, #0] - 8024202: 4618 mov r0, r3 - 8024204: f010 fc95 bl 8034b32 + 8024164: 4b98 ldr r3, [pc, #608] ; (80243c8 ) + 8024166: 681b ldr r3, [r3, #0] + 8024168: 3318 adds r3, #24 + 802416a: 4a99 ldr r2, [pc, #612] ; (80243d0 ) + 802416c: 8811 ldrh r1, [r2, #0] + 802416e: 4618 mov r0, r3 + 8024170: f010 fc95 bl 8034a9e lv_style_set_border_width(&styles->card, BORDER_WIDTH); - 8024208: 4b94 ldr r3, [pc, #592] ; (802445c ) - 802420a: 681b ldr r3, [r3, #0] - 802420c: f103 0418 add.w r4, r3, #24 - 8024210: 4b91 ldr r3, [pc, #580] ; (8024458 ) - 8024212: 68db ldr r3, [r3, #12] - 8024214: 2102 movs r1, #2 - 8024216: 4618 mov r0, r3 - 8024218: f7ff fdf2 bl 8023e00 - 802421c: 4603 mov r3, r0 - 802421e: 4619 mov r1, r3 - 8024220: 4620 mov r0, r4 - 8024222: f010 fca9 bl 8034b78 + 8024174: 4b94 ldr r3, [pc, #592] ; (80243c8 ) + 8024176: 681b ldr r3, [r3, #0] + 8024178: f103 0418 add.w r4, r3, #24 + 802417c: 4b91 ldr r3, [pc, #580] ; (80243c4 ) + 802417e: 68db ldr r3, [r3, #12] + 8024180: 2102 movs r1, #2 + 8024182: 4618 mov r0, r3 + 8024184: f7ff fdf2 bl 8023d6c + 8024188: 4603 mov r3, r0 + 802418a: 4619 mov r1, r3 + 802418c: 4620 mov r0, r4 + 802418e: f010 fca9 bl 8034ae4 lv_style_set_border_post(&styles->card, true); - 8024226: 4b8d ldr r3, [pc, #564] ; (802445c ) - 8024228: 681b ldr r3, [r3, #0] - 802422a: 3318 adds r3, #24 - 802422c: 2101 movs r1, #1 - 802422e: 4618 mov r0, r3 - 8024230: f010 fcc6 bl 8034bc0 + 8024192: 4b8d ldr r3, [pc, #564] ; (80243c8 ) + 8024194: 681b ldr r3, [r3, #0] + 8024196: 3318 adds r3, #24 + 8024198: 2101 movs r1, #1 + 802419a: 4618 mov r0, r3 + 802419c: f010 fcc6 bl 8034b2c lv_style_set_text_color(&styles->card, color_text); - 8024234: 4b89 ldr r3, [pc, #548] ; (802445c ) - 8024236: 681b ldr r3, [r3, #0] - 8024238: 3318 adds r3, #24 - 802423a: 4a8b ldr r2, [pc, #556] ; (8024468 ) - 802423c: 8811 ldrh r1, [r2, #0] - 802423e: 4618 mov r0, r3 - 8024240: f010 fdd1 bl 8034de6 + 80241a0: 4b89 ldr r3, [pc, #548] ; (80243c8 ) + 80241a2: 681b ldr r3, [r3, #0] + 80241a4: 3318 adds r3, #24 + 80241a6: 4a8b ldr r2, [pc, #556] ; (80243d4 ) + 80241a8: 8811 ldrh r1, [r2, #0] + 80241aa: 4618 mov r0, r3 + 80241ac: f010 fdd1 bl 8034d52 lv_style_set_pad_all(&styles->card, PAD_DEF); - 8024244: 4b85 ldr r3, [pc, #532] ; (802445c ) - 8024246: 681b ldr r3, [r3, #0] - 8024248: f103 0418 add.w r4, r3, #24 - 802424c: 4b87 ldr r3, [pc, #540] ; (802446c ) - 802424e: 781b ldrb r3, [r3, #0] - 8024250: 2b01 cmp r3, #1 - 8024252: d107 bne.n 8024264 - 8024254: 4b80 ldr r3, [pc, #512] ; (8024458 ) - 8024256: 68db ldr r3, [r3, #12] - 8024258: 2118 movs r1, #24 - 802425a: 4618 mov r0, r3 - 802425c: f7ff fdd0 bl 8023e00 - 8024260: 4603 mov r3, r0 - 8024262: e012 b.n 802428a - 8024264: 4b81 ldr r3, [pc, #516] ; (802446c ) - 8024266: 781b ldrb r3, [r3, #0] - 8024268: 2b02 cmp r3, #2 - 802426a: d107 bne.n 802427c - 802426c: 4b7a ldr r3, [pc, #488] ; (8024458 ) - 802426e: 68db ldr r3, [r3, #12] - 8024270: 2114 movs r1, #20 - 8024272: 4618 mov r0, r3 - 8024274: f7ff fdc4 bl 8023e00 - 8024278: 4603 mov r3, r0 - 802427a: e006 b.n 802428a - 802427c: 4b76 ldr r3, [pc, #472] ; (8024458 ) - 802427e: 68db ldr r3, [r3, #12] - 8024280: 2110 movs r1, #16 - 8024282: 4618 mov r0, r3 - 8024284: f7ff fdbc bl 8023e00 - 8024288: 4603 mov r3, r0 - 802428a: 4619 mov r1, r3 - 802428c: 4620 mov r0, r4 - 802428e: f7ff fd52 bl 8023d36 + 80241b0: 4b85 ldr r3, [pc, #532] ; (80243c8 ) + 80241b2: 681b ldr r3, [r3, #0] + 80241b4: f103 0418 add.w r4, r3, #24 + 80241b8: 4b87 ldr r3, [pc, #540] ; (80243d8 ) + 80241ba: 781b ldrb r3, [r3, #0] + 80241bc: 2b01 cmp r3, #1 + 80241be: d107 bne.n 80241d0 + 80241c0: 4b80 ldr r3, [pc, #512] ; (80243c4 ) + 80241c2: 68db ldr r3, [r3, #12] + 80241c4: 2118 movs r1, #24 + 80241c6: 4618 mov r0, r3 + 80241c8: f7ff fdd0 bl 8023d6c + 80241cc: 4603 mov r3, r0 + 80241ce: e012 b.n 80241f6 + 80241d0: 4b81 ldr r3, [pc, #516] ; (80243d8 ) + 80241d2: 781b ldrb r3, [r3, #0] + 80241d4: 2b02 cmp r3, #2 + 80241d6: d107 bne.n 80241e8 + 80241d8: 4b7a ldr r3, [pc, #488] ; (80243c4 ) + 80241da: 68db ldr r3, [r3, #12] + 80241dc: 2114 movs r1, #20 + 80241de: 4618 mov r0, r3 + 80241e0: f7ff fdc4 bl 8023d6c + 80241e4: 4603 mov r3, r0 + 80241e6: e006 b.n 80241f6 + 80241e8: 4b76 ldr r3, [pc, #472] ; (80243c4 ) + 80241ea: 68db ldr r3, [r3, #12] + 80241ec: 2110 movs r1, #16 + 80241ee: 4618 mov r0, r3 + 80241f0: f7ff fdbc bl 8023d6c + 80241f4: 4603 mov r3, r0 + 80241f6: 4619 mov r1, r3 + 80241f8: 4620 mov r0, r4 + 80241fa: f7ff fd52 bl 8023ca2 lv_style_set_pad_row(&styles->card, PAD_SMALL); - 8024292: 4b72 ldr r3, [pc, #456] ; (802445c ) - 8024294: 681b ldr r3, [r3, #0] - 8024296: f103 0418 add.w r4, r3, #24 - 802429a: 4b74 ldr r3, [pc, #464] ; (802446c ) - 802429c: 781b ldrb r3, [r3, #0] - 802429e: 2b01 cmp r3, #1 - 80242a0: d107 bne.n 80242b2 - 80242a2: 4b6d ldr r3, [pc, #436] ; (8024458 ) - 80242a4: 68db ldr r3, [r3, #12] - 80242a6: 210e movs r1, #14 - 80242a8: 4618 mov r0, r3 - 80242aa: f7ff fda9 bl 8023e00 - 80242ae: 4603 mov r3, r0 - 80242b0: e012 b.n 80242d8 - 80242b2: 4b6e ldr r3, [pc, #440] ; (802446c ) - 80242b4: 781b ldrb r3, [r3, #0] - 80242b6: 2b02 cmp r3, #2 - 80242b8: d107 bne.n 80242ca - 80242ba: 4b67 ldr r3, [pc, #412] ; (8024458 ) - 80242bc: 68db ldr r3, [r3, #12] - 80242be: 210c movs r1, #12 - 80242c0: 4618 mov r0, r3 - 80242c2: f7ff fd9d bl 8023e00 - 80242c6: 4603 mov r3, r0 - 80242c8: e006 b.n 80242d8 - 80242ca: 4b63 ldr r3, [pc, #396] ; (8024458 ) - 80242cc: 68db ldr r3, [r3, #12] - 80242ce: 210a movs r1, #10 - 80242d0: 4618 mov r0, r3 - 80242d2: f7ff fd95 bl 8023e00 - 80242d6: 4603 mov r3, r0 - 80242d8: 4619 mov r1, r3 - 80242da: 4620 mov r0, r4 - 80242dc: f010 fbbd bl 8034a5a + 80241fe: 4b72 ldr r3, [pc, #456] ; (80243c8 ) + 8024200: 681b ldr r3, [r3, #0] + 8024202: f103 0418 add.w r4, r3, #24 + 8024206: 4b74 ldr r3, [pc, #464] ; (80243d8 ) + 8024208: 781b ldrb r3, [r3, #0] + 802420a: 2b01 cmp r3, #1 + 802420c: d107 bne.n 802421e + 802420e: 4b6d ldr r3, [pc, #436] ; (80243c4 ) + 8024210: 68db ldr r3, [r3, #12] + 8024212: 210e movs r1, #14 + 8024214: 4618 mov r0, r3 + 8024216: f7ff fda9 bl 8023d6c + 802421a: 4603 mov r3, r0 + 802421c: e012 b.n 8024244 + 802421e: 4b6e ldr r3, [pc, #440] ; (80243d8 ) + 8024220: 781b ldrb r3, [r3, #0] + 8024222: 2b02 cmp r3, #2 + 8024224: d107 bne.n 8024236 + 8024226: 4b67 ldr r3, [pc, #412] ; (80243c4 ) + 8024228: 68db ldr r3, [r3, #12] + 802422a: 210c movs r1, #12 + 802422c: 4618 mov r0, r3 + 802422e: f7ff fd9d bl 8023d6c + 8024232: 4603 mov r3, r0 + 8024234: e006 b.n 8024244 + 8024236: 4b63 ldr r3, [pc, #396] ; (80243c4 ) + 8024238: 68db ldr r3, [r3, #12] + 802423a: 210a movs r1, #10 + 802423c: 4618 mov r0, r3 + 802423e: f7ff fd95 bl 8023d6c + 8024242: 4603 mov r3, r0 + 8024244: 4619 mov r1, r3 + 8024246: 4620 mov r0, r4 + 8024248: f010 fbbd bl 80349c6 lv_style_set_pad_column(&styles->card, PAD_SMALL); - 80242e0: 4b5e ldr r3, [pc, #376] ; (802445c ) - 80242e2: 681b ldr r3, [r3, #0] - 80242e4: f103 0418 add.w r4, r3, #24 - 80242e8: 4b60 ldr r3, [pc, #384] ; (802446c ) - 80242ea: 781b ldrb r3, [r3, #0] - 80242ec: 2b01 cmp r3, #1 - 80242ee: d107 bne.n 8024300 - 80242f0: 4b59 ldr r3, [pc, #356] ; (8024458 ) - 80242f2: 68db ldr r3, [r3, #12] - 80242f4: 210e movs r1, #14 - 80242f6: 4618 mov r0, r3 - 80242f8: f7ff fd82 bl 8023e00 - 80242fc: 4603 mov r3, r0 - 80242fe: e012 b.n 8024326 - 8024300: 4b5a ldr r3, [pc, #360] ; (802446c ) - 8024302: 781b ldrb r3, [r3, #0] - 8024304: 2b02 cmp r3, #2 - 8024306: d107 bne.n 8024318 - 8024308: 4b53 ldr r3, [pc, #332] ; (8024458 ) - 802430a: 68db ldr r3, [r3, #12] - 802430c: 210c movs r1, #12 - 802430e: 4618 mov r0, r3 - 8024310: f7ff fd76 bl 8023e00 - 8024314: 4603 mov r3, r0 - 8024316: e006 b.n 8024326 - 8024318: 4b4f ldr r3, [pc, #316] ; (8024458 ) - 802431a: 68db ldr r3, [r3, #12] - 802431c: 210a movs r1, #10 - 802431e: 4618 mov r0, r3 - 8024320: f7ff fd6e bl 8023e00 - 8024324: 4603 mov r3, r0 - 8024326: 4619 mov r1, r3 - 8024328: 4620 mov r0, r4 - 802432a: f010 fba9 bl 8034a80 + 802424c: 4b5e ldr r3, [pc, #376] ; (80243c8 ) + 802424e: 681b ldr r3, [r3, #0] + 8024250: f103 0418 add.w r4, r3, #24 + 8024254: 4b60 ldr r3, [pc, #384] ; (80243d8 ) + 8024256: 781b ldrb r3, [r3, #0] + 8024258: 2b01 cmp r3, #1 + 802425a: d107 bne.n 802426c + 802425c: 4b59 ldr r3, [pc, #356] ; (80243c4 ) + 802425e: 68db ldr r3, [r3, #12] + 8024260: 210e movs r1, #14 + 8024262: 4618 mov r0, r3 + 8024264: f7ff fd82 bl 8023d6c + 8024268: 4603 mov r3, r0 + 802426a: e012 b.n 8024292 + 802426c: 4b5a ldr r3, [pc, #360] ; (80243d8 ) + 802426e: 781b ldrb r3, [r3, #0] + 8024270: 2b02 cmp r3, #2 + 8024272: d107 bne.n 8024284 + 8024274: 4b53 ldr r3, [pc, #332] ; (80243c4 ) + 8024276: 68db ldr r3, [r3, #12] + 8024278: 210c movs r1, #12 + 802427a: 4618 mov r0, r3 + 802427c: f7ff fd76 bl 8023d6c + 8024280: 4603 mov r3, r0 + 8024282: e006 b.n 8024292 + 8024284: 4b4f ldr r3, [pc, #316] ; (80243c4 ) + 8024286: 68db ldr r3, [r3, #12] + 8024288: 210a movs r1, #10 + 802428a: 4618 mov r0, r3 + 802428c: f7ff fd6e bl 8023d6c + 8024290: 4603 mov r3, r0 + 8024292: 4619 mov r1, r3 + 8024294: 4620 mov r0, r4 + 8024296: f010 fba9 bl 80349ec lv_style_set_line_color(&styles->card, lv_palette_main(LV_PALETTE_GREY)); - 802432e: 4b4b ldr r3, [pc, #300] ; (802445c ) - 8024330: 681b ldr r3, [r3, #0] - 8024332: f103 0418 add.w r4, r3, #24 - 8024336: 2012 movs r0, #18 - 8024338: f00d fbb0 bl 8031a9c - 802433c: 4603 mov r3, r0 - 802433e: 4619 mov r1, r3 - 8024340: 4620 mov r0, r4 - 8024342: f010 fd08 bl 8034d56 + 802429a: 4b4b ldr r3, [pc, #300] ; (80243c8 ) + 802429c: 681b ldr r3, [r3, #0] + 802429e: f103 0418 add.w r4, r3, #24 + 80242a2: 2012 movs r0, #18 + 80242a4: f00d fbb0 bl 8031a08 + 80242a8: 4603 mov r3, r0 + 80242aa: 4619 mov r1, r3 + 80242ac: 4620 mov r0, r4 + 80242ae: f010 fd08 bl 8034cc2 lv_style_set_line_width(&styles->card, lv_disp_dpx(theme.disp, 1)); - 8024346: 4b45 ldr r3, [pc, #276] ; (802445c ) - 8024348: 681b ldr r3, [r3, #0] - 802434a: f103 0418 add.w r4, r3, #24 - 802434e: 4b42 ldr r3, [pc, #264] ; (8024458 ) - 8024350: 68db ldr r3, [r3, #12] - 8024352: 2101 movs r1, #1 - 8024354: 4618 mov r0, r3 - 8024356: f7ff fd53 bl 8023e00 - 802435a: 4603 mov r3, r0 - 802435c: 4619 mov r1, r3 - 802435e: 4620 mov r0, r4 - 8024360: f010 fce6 bl 8034d30 + 80242b2: 4b45 ldr r3, [pc, #276] ; (80243c8 ) + 80242b4: 681b ldr r3, [r3, #0] + 80242b6: f103 0418 add.w r4, r3, #24 + 80242ba: 4b42 ldr r3, [pc, #264] ; (80243c4 ) + 80242bc: 68db ldr r3, [r3, #12] + 80242be: 2101 movs r1, #1 + 80242c0: 4618 mov r0, r3 + 80242c2: f7ff fd53 bl 8023d6c + 80242c6: 4603 mov r3, r0 + 80242c8: 4619 mov r1, r3 + 80242ca: 4620 mov r0, r4 + 80242cc: f010 fce6 bl 8034c9c style_init_reset(&styles->outline_primary); - 8024364: 4b3d ldr r3, [pc, #244] ; (802445c ) - 8024366: 681b ldr r3, [r3, #0] - 8024368: 33a0 adds r3, #160 ; 0xa0 - 802436a: 4618 mov r0, r3 - 802436c: f003 f8f2 bl 8027554 + 80242d0: 4b3d ldr r3, [pc, #244] ; (80243c8 ) + 80242d2: 681b ldr r3, [r3, #0] + 80242d4: 33a0 adds r3, #160 ; 0xa0 + 80242d6: 4618 mov r0, r3 + 80242d8: f003 f8f2 bl 80274c0 lv_style_set_outline_color(&styles->outline_primary, theme.color_primary); - 8024370: 4b3a ldr r3, [pc, #232] ; (802445c ) - 8024372: 681b ldr r3, [r3, #0] - 8024374: 33a0 adds r3, #160 ; 0xa0 - 8024376: 4a38 ldr r2, [pc, #224] ; (8024458 ) - 8024378: 8a11 ldrh r1, [r2, #16] - 802437a: 4618 mov r0, r3 - 802437c: f010 fc44 bl 8034c08 + 80242dc: 4b3a ldr r3, [pc, #232] ; (80243c8 ) + 80242de: 681b ldr r3, [r3, #0] + 80242e0: 33a0 adds r3, #160 ; 0xa0 + 80242e2: 4a38 ldr r2, [pc, #224] ; (80243c4 ) + 80242e4: 8a11 ldrh r1, [r2, #16] + 80242e6: 4618 mov r0, r3 + 80242e8: f010 fc44 bl 8034b74 lv_style_set_outline_width(&styles->outline_primary, OUTLINE_WIDTH); - 8024380: 4b36 ldr r3, [pc, #216] ; (802445c ) - 8024382: 681b ldr r3, [r3, #0] - 8024384: f103 04a0 add.w r4, r3, #160 ; 0xa0 - 8024388: 4b33 ldr r3, [pc, #204] ; (8024458 ) - 802438a: 68db ldr r3, [r3, #12] - 802438c: 2103 movs r1, #3 - 802438e: 4618 mov r0, r3 - 8024390: f7ff fd36 bl 8023e00 - 8024394: 4603 mov r3, r0 - 8024396: 4619 mov r1, r3 - 8024398: 4620 mov r0, r4 - 802439a: f010 fc22 bl 8034be2 + 80242ec: 4b36 ldr r3, [pc, #216] ; (80243c8 ) + 80242ee: 681b ldr r3, [r3, #0] + 80242f0: f103 04a0 add.w r4, r3, #160 ; 0xa0 + 80242f4: 4b33 ldr r3, [pc, #204] ; (80243c4 ) + 80242f6: 68db ldr r3, [r3, #12] + 80242f8: 2103 movs r1, #3 + 80242fa: 4618 mov r0, r3 + 80242fc: f7ff fd36 bl 8023d6c + 8024300: 4603 mov r3, r0 + 8024302: 4619 mov r1, r3 + 8024304: 4620 mov r0, r4 + 8024306: f010 fc22 bl 8034b4e lv_style_set_outline_pad(&styles->outline_primary, OUTLINE_WIDTH); - 802439e: 4b2f ldr r3, [pc, #188] ; (802445c ) - 80243a0: 681b ldr r3, [r3, #0] - 80243a2: f103 04a0 add.w r4, r3, #160 ; 0xa0 - 80243a6: 4b2c ldr r3, [pc, #176] ; (8024458 ) - 80243a8: 68db ldr r3, [r3, #12] - 80243aa: 2103 movs r1, #3 - 80243ac: 4618 mov r0, r3 - 80243ae: f7ff fd27 bl 8023e00 - 80243b2: 4603 mov r3, r0 - 80243b4: 4619 mov r1, r3 - 80243b6: 4620 mov r0, r4 - 80243b8: f010 fc4a bl 8034c50 + 802430a: 4b2f ldr r3, [pc, #188] ; (80243c8 ) + 802430c: 681b ldr r3, [r3, #0] + 802430e: f103 04a0 add.w r4, r3, #160 ; 0xa0 + 8024312: 4b2c ldr r3, [pc, #176] ; (80243c4 ) + 8024314: 68db ldr r3, [r3, #12] + 8024316: 2103 movs r1, #3 + 8024318: 4618 mov r0, r3 + 802431a: f7ff fd27 bl 8023d6c + 802431e: 4603 mov r3, r0 + 8024320: 4619 mov r1, r3 + 8024322: 4620 mov r0, r4 + 8024324: f010 fc4a bl 8034bbc lv_style_set_outline_opa(&styles->outline_primary, LV_OPA_50); - 80243bc: 4b27 ldr r3, [pc, #156] ; (802445c ) - 80243be: 681b ldr r3, [r3, #0] - 80243c0: 33a0 adds r3, #160 ; 0xa0 - 80243c2: 217f movs r1, #127 ; 0x7f - 80243c4: 4618 mov r0, r3 - 80243c6: f010 fc31 bl 8034c2c + 8024328: 4b27 ldr r3, [pc, #156] ; (80243c8 ) + 802432a: 681b ldr r3, [r3, #0] + 802432c: 33a0 adds r3, #160 ; 0xa0 + 802432e: 217f movs r1, #127 ; 0x7f + 8024330: 4618 mov r0, r3 + 8024332: f010 fc31 bl 8034b98 style_init_reset(&styles->outline_secondary); - 80243ca: 4b24 ldr r3, [pc, #144] ; (802445c ) - 80243cc: 681b ldr r3, [r3, #0] - 80243ce: 33a8 adds r3, #168 ; 0xa8 - 80243d0: 4618 mov r0, r3 - 80243d2: f003 f8bf bl 8027554 + 8024336: 4b24 ldr r3, [pc, #144] ; (80243c8 ) + 8024338: 681b ldr r3, [r3, #0] + 802433a: 33a8 adds r3, #168 ; 0xa8 + 802433c: 4618 mov r0, r3 + 802433e: f003 f8bf bl 80274c0 lv_style_set_outline_color(&styles->outline_secondary, theme.color_secondary); - 80243d6: 4b21 ldr r3, [pc, #132] ; (802445c ) - 80243d8: 681b ldr r3, [r3, #0] - 80243da: 33a8 adds r3, #168 ; 0xa8 - 80243dc: 4a1e ldr r2, [pc, #120] ; (8024458 ) - 80243de: 8a51 ldrh r1, [r2, #18] - 80243e0: 4618 mov r0, r3 - 80243e2: f010 fc11 bl 8034c08 + 8024342: 4b21 ldr r3, [pc, #132] ; (80243c8 ) + 8024344: 681b ldr r3, [r3, #0] + 8024346: 33a8 adds r3, #168 ; 0xa8 + 8024348: 4a1e ldr r2, [pc, #120] ; (80243c4 ) + 802434a: 8a51 ldrh r1, [r2, #18] + 802434c: 4618 mov r0, r3 + 802434e: f010 fc11 bl 8034b74 lv_style_set_outline_width(&styles->outline_secondary, OUTLINE_WIDTH); - 80243e6: 4b1d ldr r3, [pc, #116] ; (802445c ) - 80243e8: 681b ldr r3, [r3, #0] - 80243ea: f103 04a8 add.w r4, r3, #168 ; 0xa8 - 80243ee: 4b1a ldr r3, [pc, #104] ; (8024458 ) - 80243f0: 68db ldr r3, [r3, #12] - 80243f2: 2103 movs r1, #3 - 80243f4: 4618 mov r0, r3 - 80243f6: f7ff fd03 bl 8023e00 - 80243fa: 4603 mov r3, r0 - 80243fc: 4619 mov r1, r3 - 80243fe: 4620 mov r0, r4 - 8024400: f010 fbef bl 8034be2 + 8024352: 4b1d ldr r3, [pc, #116] ; (80243c8 ) + 8024354: 681b ldr r3, [r3, #0] + 8024356: f103 04a8 add.w r4, r3, #168 ; 0xa8 + 802435a: 4b1a ldr r3, [pc, #104] ; (80243c4 ) + 802435c: 68db ldr r3, [r3, #12] + 802435e: 2103 movs r1, #3 + 8024360: 4618 mov r0, r3 + 8024362: f7ff fd03 bl 8023d6c + 8024366: 4603 mov r3, r0 + 8024368: 4619 mov r1, r3 + 802436a: 4620 mov r0, r4 + 802436c: f010 fbef bl 8034b4e lv_style_set_outline_opa(&styles->outline_secondary, LV_OPA_50); - 8024404: 4b15 ldr r3, [pc, #84] ; (802445c ) - 8024406: 681b ldr r3, [r3, #0] - 8024408: 33a8 adds r3, #168 ; 0xa8 - 802440a: 217f movs r1, #127 ; 0x7f - 802440c: 4618 mov r0, r3 - 802440e: f010 fc0d bl 8034c2c + 8024370: 4b15 ldr r3, [pc, #84] ; (80243c8 ) + 8024372: 681b ldr r3, [r3, #0] + 8024374: 33a8 adds r3, #168 ; 0xa8 + 8024376: 217f movs r1, #127 ; 0x7f + 8024378: 4618 mov r0, r3 + 802437a: f010 fc0d bl 8034b98 style_init_reset(&styles->btn); - 8024412: 4b12 ldr r3, [pc, #72] ; (802445c ) - 8024414: 681b ldr r3, [r3, #0] - 8024416: 3320 adds r3, #32 - 8024418: 4618 mov r0, r3 - 802441a: f003 f89b bl 8027554 + 802437e: 4b12 ldr r3, [pc, #72] ; (80243c8 ) + 8024380: 681b ldr r3, [r3, #0] + 8024382: 3320 adds r3, #32 + 8024384: 4618 mov r0, r3 + 8024386: f003 f89b bl 80274c0 lv_style_set_radius(&styles->btn, (disp_size == DISP_LARGE ? lv_disp_dpx(theme.disp, - 802441e: 4b0f ldr r3, [pc, #60] ; (802445c ) - 8024420: 681b ldr r3, [r3, #0] - 8024422: f103 0420 add.w r4, r3, #32 - 8024426: 4b11 ldr r3, [pc, #68] ; (802446c ) - 8024428: 781b ldrb r3, [r3, #0] - 802442a: 2b01 cmp r3, #1 - 802442c: d107 bne.n 802443e - 802442e: 4b0a ldr r3, [pc, #40] ; (8024458 ) - 8024430: 68db ldr r3, [r3, #12] - 8024432: 2110 movs r1, #16 - 8024434: 4618 mov r0, r3 - 8024436: f7ff fce3 bl 8023e00 - 802443a: 4603 mov r3, r0 - 802443c: e01f b.n 802447e + 802438a: 4b0f ldr r3, [pc, #60] ; (80243c8 ) + 802438c: 681b ldr r3, [r3, #0] + 802438e: f103 0420 add.w r4, r3, #32 + 8024392: 4b11 ldr r3, [pc, #68] ; (80243d8 ) + 8024394: 781b ldrb r3, [r3, #0] + 8024396: 2b01 cmp r3, #1 + 8024398: d107 bne.n 80243aa + 802439a: 4b0a ldr r3, [pc, #40] ; (80243c4 ) + 802439c: 68db ldr r3, [r3, #12] + 802439e: 2110 movs r1, #16 + 80243a0: 4618 mov r0, r3 + 80243a2: f7ff fce3 bl 8023d6c + 80243a6: 4603 mov r3, r0 + 80243a8: e01f b.n 80243ea 16) : disp_size == DISP_MEDIUM ? lv_disp_dpx(theme.disp, 12) : lv_disp_dpx(theme.disp, 8))); - 802443e: 4b0b ldr r3, [pc, #44] ; (802446c ) - 8024440: 781b ldrb r3, [r3, #0] + 80243aa: 4b0b ldr r3, [pc, #44] ; (80243d8 ) + 80243ac: 781b ldrb r3, [r3, #0] lv_style_set_radius(&styles->btn, (disp_size == DISP_LARGE ? lv_disp_dpx(theme.disp, - 8024442: 2b02 cmp r3, #2 - 8024444: d114 bne.n 8024470 + 80243ae: 2b02 cmp r3, #2 + 80243b0: d114 bne.n 80243dc 16) : disp_size == DISP_MEDIUM ? lv_disp_dpx(theme.disp, 12) : lv_disp_dpx(theme.disp, 8))); - 8024446: 4b04 ldr r3, [pc, #16] ; (8024458 ) - 8024448: 68db ldr r3, [r3, #12] - 802444a: 210c movs r1, #12 - 802444c: 4618 mov r0, r3 - 802444e: f7ff fcd7 bl 8023e00 - 8024452: 4603 mov r3, r0 - 8024454: e013 b.n 802447e - 8024456: bf00 nop - 8024458: 20001c50 .word 0x20001c50 - 802445c: 20001c4c .word 0x20001c4c - 8024460: 20001c80 .word 0x20001c80 - 8024464: 20001c84 .word 0x20001c84 - 8024468: 20001c7c .word 0x20001c7c - 802446c: 20001c74 .word 0x20001c74 - 8024470: 4bb7 ldr r3, [pc, #732] ; (8024750 ) - 8024472: 68db ldr r3, [r3, #12] - 8024474: 2108 movs r1, #8 - 8024476: 4618 mov r0, r3 - 8024478: f7ff fcc2 bl 8023e00 - 802447c: 4603 mov r3, r0 + 80243b2: 4b04 ldr r3, [pc, #16] ; (80243c4 ) + 80243b4: 68db ldr r3, [r3, #12] + 80243b6: 210c movs r1, #12 + 80243b8: 4618 mov r0, r3 + 80243ba: f7ff fcd7 bl 8023d6c + 80243be: 4603 mov r3, r0 + 80243c0: e013 b.n 80243ea + 80243c2: bf00 nop + 80243c4: 20001c50 .word 0x20001c50 + 80243c8: 20001c4c .word 0x20001c4c + 80243cc: 20001c80 .word 0x20001c80 + 80243d0: 20001c84 .word 0x20001c84 + 80243d4: 20001c7c .word 0x20001c7c + 80243d8: 20001c74 .word 0x20001c74 + 80243dc: 4bb7 ldr r3, [pc, #732] ; (80246bc ) + 80243de: 68db ldr r3, [r3, #12] + 80243e0: 2108 movs r1, #8 + 80243e2: 4618 mov r0, r3 + 80243e4: f7ff fcc2 bl 8023d6c + 80243e8: 4603 mov r3, r0 lv_style_set_radius(&styles->btn, (disp_size == DISP_LARGE ? lv_disp_dpx(theme.disp, - 802447e: 4619 mov r1, r3 - 8024480: 4620 mov r0, r4 - 8024482: f010 fcf9 bl 8034e78 + 80243ea: 4619 mov r1, r3 + 80243ec: 4620 mov r0, r4 + 80243ee: f010 fcf9 bl 8034de4 lv_style_set_bg_opa(&styles->btn, LV_OPA_COVER); - 8024486: 4bb3 ldr r3, [pc, #716] ; (8024754 ) - 8024488: 681b ldr r3, [r3, #0] - 802448a: 3320 adds r3, #32 - 802448c: 21ff movs r1, #255 ; 0xff - 802448e: 4618 mov r0, r3 - 8024490: f010 fb1b bl 8034aca + 80243f2: 4bb3 ldr r3, [pc, #716] ; (80246c0 ) + 80243f4: 681b ldr r3, [r3, #0] + 80243f6: 3320 adds r3, #32 + 80243f8: 21ff movs r1, #255 ; 0xff + 80243fa: 4618 mov r0, r3 + 80243fc: f010 fb1b bl 8034a36 lv_style_set_bg_color(&styles->btn, color_grey); - 8024494: 4baf ldr r3, [pc, #700] ; (8024754 ) - 8024496: 681b ldr r3, [r3, #0] - 8024498: 3320 adds r3, #32 - 802449a: 4aaf ldr r2, [pc, #700] ; (8024758 ) - 802449c: 8811 ldrh r1, [r2, #0] - 802449e: 4618 mov r0, r3 - 80244a0: f010 fb01 bl 8034aa6 + 8024400: 4baf ldr r3, [pc, #700] ; (80246c0 ) + 8024402: 681b ldr r3, [r3, #0] + 8024404: 3320 adds r3, #32 + 8024406: 4aaf ldr r2, [pc, #700] ; (80246c4 ) + 8024408: 8811 ldrh r1, [r2, #0] + 802440a: 4618 mov r0, r3 + 802440c: f010 fb01 bl 8034a12 if(!(theme.flags & MODE_DARK)) { - 80244a4: 4baa ldr r3, [pc, #680] ; (8024750 ) - 80244a6: 6a1b ldr r3, [r3, #32] - 80244a8: f003 0301 and.w r3, r3, #1 - 80244ac: 2b00 cmp r3, #0 - 80244ae: d159 bne.n 8024564 + 8024410: 4baa ldr r3, [pc, #680] ; (80246bc ) + 8024412: 6a1b ldr r3, [r3, #32] + 8024414: f003 0301 and.w r3, r3, #1 + 8024418: 2b00 cmp r3, #0 + 802441a: d159 bne.n 80244d0 lv_style_set_shadow_color(&styles->btn, lv_palette_main(LV_PALETTE_GREY)); - 80244b0: 4ba8 ldr r3, [pc, #672] ; (8024754 ) - 80244b2: 681b ldr r3, [r3, #0] - 80244b4: f103 0420 add.w r4, r3, #32 - 80244b8: 2012 movs r0, #18 - 80244ba: f00d faef bl 8031a9c - 80244be: 4603 mov r3, r0 - 80244c0: 4619 mov r1, r3 - 80244c2: 4620 mov r0, r4 - 80244c4: f010 fc10 bl 8034ce8 + 802441c: 4ba8 ldr r3, [pc, #672] ; (80246c0 ) + 802441e: 681b ldr r3, [r3, #0] + 8024420: f103 0420 add.w r4, r3, #32 + 8024424: 2012 movs r0, #18 + 8024426: f00d faef bl 8031a08 + 802442a: 4603 mov r3, r0 + 802442c: 4619 mov r1, r3 + 802442e: 4620 mov r0, r4 + 8024430: f010 fc10 bl 8034c54 lv_style_set_shadow_width(&styles->btn, LV_DPX(3)); - 80244c8: 4ba2 ldr r3, [pc, #648] ; (8024754 ) - 80244ca: 681b ldr r3, [r3, #0] - 80244cc: f103 0420 add.w r4, r3, #32 - 80244d0: 2000 movs r0, #0 - 80244d2: f00c f851 bl 8030578 - 80244d6: 4603 mov r3, r0 - 80244d8: 461a mov r2, r3 - 80244da: 4613 mov r3, r2 - 80244dc: 005b lsls r3, r3, #1 - 80244de: 4413 add r3, r2 - 80244e0: 2bef cmp r3, #239 ; 0xef - 80244e2: dd10 ble.n 8024506 - 80244e4: 2000 movs r0, #0 - 80244e6: f00c f847 bl 8030578 - 80244ea: 4603 mov r3, r0 - 80244ec: 461a mov r2, r3 - 80244ee: 4613 mov r3, r2 - 80244f0: 005b lsls r3, r3, #1 - 80244f2: 4413 add r3, r2 - 80244f4: 3350 adds r3, #80 ; 0x50 - 80244f6: 4a99 ldr r2, [pc, #612] ; (802475c ) - 80244f8: fb82 1203 smull r1, r2, r2, r3 - 80244fc: 1192 asrs r2, r2, #6 - 80244fe: 17db asrs r3, r3, #31 - 8024500: 1ad3 subs r3, r2, r3 - 8024502: b21b sxth r3, r3 - 8024504: e000 b.n 8024508 - 8024506: 2301 movs r3, #1 - 8024508: 4619 mov r1, r3 - 802450a: 4620 mov r0, r4 - 802450c: f010 fbb3 bl 8034c76 + 8024434: 4ba2 ldr r3, [pc, #648] ; (80246c0 ) + 8024436: 681b ldr r3, [r3, #0] + 8024438: f103 0420 add.w r4, r3, #32 + 802443c: 2000 movs r0, #0 + 802443e: f00c f851 bl 80304e4 + 8024442: 4603 mov r3, r0 + 8024444: 461a mov r2, r3 + 8024446: 4613 mov r3, r2 + 8024448: 005b lsls r3, r3, #1 + 802444a: 4413 add r3, r2 + 802444c: 2bef cmp r3, #239 ; 0xef + 802444e: dd10 ble.n 8024472 + 8024450: 2000 movs r0, #0 + 8024452: f00c f847 bl 80304e4 + 8024456: 4603 mov r3, r0 + 8024458: 461a mov r2, r3 + 802445a: 4613 mov r3, r2 + 802445c: 005b lsls r3, r3, #1 + 802445e: 4413 add r3, r2 + 8024460: 3350 adds r3, #80 ; 0x50 + 8024462: 4a99 ldr r2, [pc, #612] ; (80246c8 ) + 8024464: fb82 1203 smull r1, r2, r2, r3 + 8024468: 1192 asrs r2, r2, #6 + 802446a: 17db asrs r3, r3, #31 + 802446c: 1ad3 subs r3, r2, r3 + 802446e: b21b sxth r3, r3 + 8024470: e000 b.n 8024474 + 8024472: 2301 movs r3, #1 + 8024474: 4619 mov r1, r3 + 8024476: 4620 mov r0, r4 + 8024478: f010 fbb3 bl 8034be2 lv_style_set_shadow_opa(&styles->btn, LV_OPA_50); - 8024510: 4b90 ldr r3, [pc, #576] ; (8024754 ) - 8024512: 681b ldr r3, [r3, #0] - 8024514: 3320 adds r3, #32 - 8024516: 217f movs r1, #127 ; 0x7f - 8024518: 4618 mov r0, r3 - 802451a: f010 fbf7 bl 8034d0c + 802447c: 4b90 ldr r3, [pc, #576] ; (80246c0 ) + 802447e: 681b ldr r3, [r3, #0] + 8024480: 3320 adds r3, #32 + 8024482: 217f movs r1, #127 ; 0x7f + 8024484: 4618 mov r0, r3 + 8024486: f010 fbf7 bl 8034c78 lv_style_set_shadow_ofs_y(&styles->btn, lv_disp_dpx(theme.disp, LV_DPX(4))); - 802451e: 4b8d ldr r3, [pc, #564] ; (8024754 ) - 8024520: 681b ldr r3, [r3, #0] - 8024522: f103 0420 add.w r4, r3, #32 - 8024526: 4b8a ldr r3, [pc, #552] ; (8024750 ) - 8024528: 68dd ldr r5, [r3, #12] - 802452a: 2000 movs r0, #0 - 802452c: f00c f824 bl 8030578 - 8024530: 4603 mov r3, r0 - 8024532: 2b3b cmp r3, #59 ; 0x3b - 8024534: dd0c ble.n 8024550 - 8024536: 2000 movs r0, #0 - 8024538: f00c f81e bl 8030578 - 802453c: 4603 mov r3, r0 - 802453e: 3314 adds r3, #20 - 8024540: 4a86 ldr r2, [pc, #536] ; (802475c ) - 8024542: fb82 1203 smull r1, r2, r2, r3 - 8024546: 1112 asrs r2, r2, #4 - 8024548: 17db asrs r3, r3, #31 - 802454a: 1ad3 subs r3, r2, r3 - 802454c: b21b sxth r3, r3 - 802454e: e000 b.n 8024552 - 8024550: 2301 movs r3, #1 - 8024552: 4619 mov r1, r3 - 8024554: 4628 mov r0, r5 - 8024556: f7ff fc53 bl 8023e00 - 802455a: 4603 mov r3, r0 - 802455c: 4619 mov r1, r3 - 802455e: 4620 mov r0, r4 - 8024560: f010 fb9c bl 8034c9c + 802448a: 4b8d ldr r3, [pc, #564] ; (80246c0 ) + 802448c: 681b ldr r3, [r3, #0] + 802448e: f103 0420 add.w r4, r3, #32 + 8024492: 4b8a ldr r3, [pc, #552] ; (80246bc ) + 8024494: 68dd ldr r5, [r3, #12] + 8024496: 2000 movs r0, #0 + 8024498: f00c f824 bl 80304e4 + 802449c: 4603 mov r3, r0 + 802449e: 2b3b cmp r3, #59 ; 0x3b + 80244a0: dd0c ble.n 80244bc + 80244a2: 2000 movs r0, #0 + 80244a4: f00c f81e bl 80304e4 + 80244a8: 4603 mov r3, r0 + 80244aa: 3314 adds r3, #20 + 80244ac: 4a86 ldr r2, [pc, #536] ; (80246c8 ) + 80244ae: fb82 1203 smull r1, r2, r2, r3 + 80244b2: 1112 asrs r2, r2, #4 + 80244b4: 17db asrs r3, r3, #31 + 80244b6: 1ad3 subs r3, r2, r3 + 80244b8: b21b sxth r3, r3 + 80244ba: e000 b.n 80244be + 80244bc: 2301 movs r3, #1 + 80244be: 4619 mov r1, r3 + 80244c0: 4628 mov r0, r5 + 80244c2: f7ff fc53 bl 8023d6c + 80244c6: 4603 mov r3, r0 + 80244c8: 4619 mov r1, r3 + 80244ca: 4620 mov r0, r4 + 80244cc: f010 fb9c bl 8034c08 } lv_style_set_text_color(&styles->btn, color_text); - 8024564: 4b7b ldr r3, [pc, #492] ; (8024754 ) - 8024566: 681b ldr r3, [r3, #0] - 8024568: 3320 adds r3, #32 - 802456a: 4a7d ldr r2, [pc, #500] ; (8024760 ) - 802456c: 8811 ldrh r1, [r2, #0] - 802456e: 4618 mov r0, r3 - 8024570: f010 fc39 bl 8034de6 + 80244d0: 4b7b ldr r3, [pc, #492] ; (80246c0 ) + 80244d2: 681b ldr r3, [r3, #0] + 80244d4: 3320 adds r3, #32 + 80244d6: 4a7d ldr r2, [pc, #500] ; (80246cc ) + 80244d8: 8811 ldrh r1, [r2, #0] + 80244da: 4618 mov r0, r3 + 80244dc: f010 fc39 bl 8034d52 lv_style_set_pad_hor(&styles->btn, PAD_DEF); - 8024574: 4b77 ldr r3, [pc, #476] ; (8024754 ) - 8024576: 681b ldr r3, [r3, #0] - 8024578: f103 0420 add.w r4, r3, #32 - 802457c: 4b79 ldr r3, [pc, #484] ; (8024764 ) - 802457e: 781b ldrb r3, [r3, #0] - 8024580: 2b01 cmp r3, #1 - 8024582: d107 bne.n 8024594 - 8024584: 4b72 ldr r3, [pc, #456] ; (8024750 ) - 8024586: 68db ldr r3, [r3, #12] - 8024588: 2118 movs r1, #24 - 802458a: 4618 mov r0, r3 - 802458c: f7ff fc38 bl 8023e00 - 8024590: 4603 mov r3, r0 - 8024592: e012 b.n 80245ba - 8024594: 4b73 ldr r3, [pc, #460] ; (8024764 ) - 8024596: 781b ldrb r3, [r3, #0] - 8024598: 2b02 cmp r3, #2 - 802459a: d107 bne.n 80245ac - 802459c: 4b6c ldr r3, [pc, #432] ; (8024750 ) - 802459e: 68db ldr r3, [r3, #12] - 80245a0: 2114 movs r1, #20 - 80245a2: 4618 mov r0, r3 - 80245a4: f7ff fc2c bl 8023e00 - 80245a8: 4603 mov r3, r0 - 80245aa: e006 b.n 80245ba - 80245ac: 4b68 ldr r3, [pc, #416] ; (8024750 ) - 80245ae: 68db ldr r3, [r3, #12] - 80245b0: 2110 movs r1, #16 - 80245b2: 4618 mov r0, r3 - 80245b4: f7ff fc24 bl 8023e00 - 80245b8: 4603 mov r3, r0 - 80245ba: 4619 mov r1, r3 - 80245bc: 4620 mov r0, r4 - 80245be: f7ff fbdc bl 8023d7a + 80244e0: 4b77 ldr r3, [pc, #476] ; (80246c0 ) + 80244e2: 681b ldr r3, [r3, #0] + 80244e4: f103 0420 add.w r4, r3, #32 + 80244e8: 4b79 ldr r3, [pc, #484] ; (80246d0 ) + 80244ea: 781b ldrb r3, [r3, #0] + 80244ec: 2b01 cmp r3, #1 + 80244ee: d107 bne.n 8024500 + 80244f0: 4b72 ldr r3, [pc, #456] ; (80246bc ) + 80244f2: 68db ldr r3, [r3, #12] + 80244f4: 2118 movs r1, #24 + 80244f6: 4618 mov r0, r3 + 80244f8: f7ff fc38 bl 8023d6c + 80244fc: 4603 mov r3, r0 + 80244fe: e012 b.n 8024526 + 8024500: 4b73 ldr r3, [pc, #460] ; (80246d0 ) + 8024502: 781b ldrb r3, [r3, #0] + 8024504: 2b02 cmp r3, #2 + 8024506: d107 bne.n 8024518 + 8024508: 4b6c ldr r3, [pc, #432] ; (80246bc ) + 802450a: 68db ldr r3, [r3, #12] + 802450c: 2114 movs r1, #20 + 802450e: 4618 mov r0, r3 + 8024510: f7ff fc2c bl 8023d6c + 8024514: 4603 mov r3, r0 + 8024516: e006 b.n 8024526 + 8024518: 4b68 ldr r3, [pc, #416] ; (80246bc ) + 802451a: 68db ldr r3, [r3, #12] + 802451c: 2110 movs r1, #16 + 802451e: 4618 mov r0, r3 + 8024520: f7ff fc24 bl 8023d6c + 8024524: 4603 mov r3, r0 + 8024526: 4619 mov r1, r3 + 8024528: 4620 mov r0, r4 + 802452a: f7ff fbdc bl 8023ce6 lv_style_set_pad_ver(&styles->btn, PAD_SMALL); - 80245c2: 4b64 ldr r3, [pc, #400] ; (8024754 ) - 80245c4: 681b ldr r3, [r3, #0] - 80245c6: f103 0420 add.w r4, r3, #32 - 80245ca: 4b66 ldr r3, [pc, #408] ; (8024764 ) - 80245cc: 781b ldrb r3, [r3, #0] - 80245ce: 2b01 cmp r3, #1 - 80245d0: d107 bne.n 80245e2 - 80245d2: 4b5f ldr r3, [pc, #380] ; (8024750 ) - 80245d4: 68db ldr r3, [r3, #12] - 80245d6: 210e movs r1, #14 - 80245d8: 4618 mov r0, r3 - 80245da: f7ff fc11 bl 8023e00 - 80245de: 4603 mov r3, r0 - 80245e0: e012 b.n 8024608 - 80245e2: 4b60 ldr r3, [pc, #384] ; (8024764 ) - 80245e4: 781b ldrb r3, [r3, #0] - 80245e6: 2b02 cmp r3, #2 - 80245e8: d107 bne.n 80245fa - 80245ea: 4b59 ldr r3, [pc, #356] ; (8024750 ) - 80245ec: 68db ldr r3, [r3, #12] - 80245ee: 210c movs r1, #12 - 80245f0: 4618 mov r0, r3 - 80245f2: f7ff fc05 bl 8023e00 - 80245f6: 4603 mov r3, r0 - 80245f8: e006 b.n 8024608 - 80245fa: 4b55 ldr r3, [pc, #340] ; (8024750 ) - 80245fc: 68db ldr r3, [r3, #12] - 80245fe: 210a movs r1, #10 - 8024600: 4618 mov r0, r3 - 8024602: f7ff fbfd bl 8023e00 - 8024606: 4603 mov r3, r0 - 8024608: 4619 mov r1, r3 - 802460a: 4620 mov r0, r4 - 802460c: f7ff fbcb bl 8023da6 + 802452e: 4b64 ldr r3, [pc, #400] ; (80246c0 ) + 8024530: 681b ldr r3, [r3, #0] + 8024532: f103 0420 add.w r4, r3, #32 + 8024536: 4b66 ldr r3, [pc, #408] ; (80246d0 ) + 8024538: 781b ldrb r3, [r3, #0] + 802453a: 2b01 cmp r3, #1 + 802453c: d107 bne.n 802454e + 802453e: 4b5f ldr r3, [pc, #380] ; (80246bc ) + 8024540: 68db ldr r3, [r3, #12] + 8024542: 210e movs r1, #14 + 8024544: 4618 mov r0, r3 + 8024546: f7ff fc11 bl 8023d6c + 802454a: 4603 mov r3, r0 + 802454c: e012 b.n 8024574 + 802454e: 4b60 ldr r3, [pc, #384] ; (80246d0 ) + 8024550: 781b ldrb r3, [r3, #0] + 8024552: 2b02 cmp r3, #2 + 8024554: d107 bne.n 8024566 + 8024556: 4b59 ldr r3, [pc, #356] ; (80246bc ) + 8024558: 68db ldr r3, [r3, #12] + 802455a: 210c movs r1, #12 + 802455c: 4618 mov r0, r3 + 802455e: f7ff fc05 bl 8023d6c + 8024562: 4603 mov r3, r0 + 8024564: e006 b.n 8024574 + 8024566: 4b55 ldr r3, [pc, #340] ; (80246bc ) + 8024568: 68db ldr r3, [r3, #12] + 802456a: 210a movs r1, #10 + 802456c: 4618 mov r0, r3 + 802456e: f7ff fbfd bl 8023d6c + 8024572: 4603 mov r3, r0 + 8024574: 4619 mov r1, r3 + 8024576: 4620 mov r0, r4 + 8024578: f7ff fbcb bl 8023d12 lv_style_set_pad_column(&styles->btn, lv_disp_dpx(theme.disp, 5)); - 8024610: 4b50 ldr r3, [pc, #320] ; (8024754 ) - 8024612: 681b ldr r3, [r3, #0] - 8024614: f103 0420 add.w r4, r3, #32 - 8024618: 4b4d ldr r3, [pc, #308] ; (8024750 ) - 802461a: 68db ldr r3, [r3, #12] - 802461c: 2105 movs r1, #5 - 802461e: 4618 mov r0, r3 - 8024620: f7ff fbee bl 8023e00 - 8024624: 4603 mov r3, r0 - 8024626: 4619 mov r1, r3 - 8024628: 4620 mov r0, r4 - 802462a: f010 fa29 bl 8034a80 + 802457c: 4b50 ldr r3, [pc, #320] ; (80246c0 ) + 802457e: 681b ldr r3, [r3, #0] + 8024580: f103 0420 add.w r4, r3, #32 + 8024584: 4b4d ldr r3, [pc, #308] ; (80246bc ) + 8024586: 68db ldr r3, [r3, #12] + 8024588: 2105 movs r1, #5 + 802458a: 4618 mov r0, r3 + 802458c: f7ff fbee bl 8023d6c + 8024590: 4603 mov r3, r0 + 8024592: 4619 mov r1, r3 + 8024594: 4620 mov r0, r4 + 8024596: f010 fa29 bl 80349ec lv_style_set_pad_row(&styles->btn, lv_disp_dpx(theme.disp, 5)); - 802462e: 4b49 ldr r3, [pc, #292] ; (8024754 ) - 8024630: 681b ldr r3, [r3, #0] - 8024632: f103 0420 add.w r4, r3, #32 - 8024636: 4b46 ldr r3, [pc, #280] ; (8024750 ) - 8024638: 68db ldr r3, [r3, #12] - 802463a: 2105 movs r1, #5 - 802463c: 4618 mov r0, r3 - 802463e: f7ff fbdf bl 8023e00 - 8024642: 4603 mov r3, r0 - 8024644: 4619 mov r1, r3 - 8024646: 4620 mov r0, r4 - 8024648: f010 fa07 bl 8034a5a + 802459a: 4b49 ldr r3, [pc, #292] ; (80246c0 ) + 802459c: 681b ldr r3, [r3, #0] + 802459e: f103 0420 add.w r4, r3, #32 + 80245a2: 4b46 ldr r3, [pc, #280] ; (80246bc ) + 80245a4: 68db ldr r3, [r3, #12] + 80245a6: 2105 movs r1, #5 + 80245a8: 4618 mov r0, r3 + 80245aa: f7ff fbdf bl 8023d6c + 80245ae: 4603 mov r3, r0 + 80245b0: 4619 mov r1, r3 + 80245b2: 4620 mov r0, r4 + 80245b4: f010 fa07 bl 80349c6 static lv_color_filter_dsc_t dark_filter; lv_color_filter_dsc_init(&dark_filter, dark_color_filter_cb); - 802464c: 4946 ldr r1, [pc, #280] ; (8024768 ) - 802464e: 4847 ldr r0, [pc, #284] ; (802476c ) - 8024650: f7ff fb44 bl 8023cdc + 80245b8: 4946 ldr r1, [pc, #280] ; (80246d4 ) + 80245ba: 4847 ldr r0, [pc, #284] ; (80246d8 ) + 80245bc: f7ff fb44 bl 8023c48 static lv_color_filter_dsc_t grey_filter; lv_color_filter_dsc_init(&grey_filter, grey_filter_cb); - 8024654: 4946 ldr r1, [pc, #280] ; (8024770 ) - 8024656: 4847 ldr r0, [pc, #284] ; (8024774 ) - 8024658: f7ff fb40 bl 8023cdc + 80245c0: 4946 ldr r1, [pc, #280] ; (80246dc ) + 80245c2: 4847 ldr r0, [pc, #284] ; (80246e0 ) + 80245c4: f7ff fb40 bl 8023c48 style_init_reset(&styles->pressed); - 802465c: 4b3d ldr r3, [pc, #244] ; (8024754 ) - 802465e: 681b ldr r3, [r3, #0] - 8024660: 3358 adds r3, #88 ; 0x58 - 8024662: 4618 mov r0, r3 - 8024664: f002 ff76 bl 8027554 + 80245c8: 4b3d ldr r3, [pc, #244] ; (80246c0 ) + 80245ca: 681b ldr r3, [r3, #0] + 80245cc: 3358 adds r3, #88 ; 0x58 + 80245ce: 4618 mov r0, r3 + 80245d0: f002 ff76 bl 80274c0 lv_style_set_color_filter_dsc(&styles->pressed, &dark_filter); - 8024668: 4b3a ldr r3, [pc, #232] ; (8024754 ) - 802466a: 681b ldr r3, [r3, #0] - 802466c: 3358 adds r3, #88 ; 0x58 - 802466e: 493f ldr r1, [pc, #252] ; (802476c ) - 8024670: 4618 mov r0, r3 - 8024672: f010 fc24 bl 8034ebe + 80245d4: 4b3a ldr r3, [pc, #232] ; (80246c0 ) + 80245d6: 681b ldr r3, [r3, #0] + 80245d8: 3358 adds r3, #88 ; 0x58 + 80245da: 493f ldr r1, [pc, #252] ; (80246d8 ) + 80245dc: 4618 mov r0, r3 + 80245de: f010 fc24 bl 8034e2a lv_style_set_color_filter_opa(&styles->pressed, 35); - 8024676: 4b37 ldr r3, [pc, #220] ; (8024754 ) - 8024678: 681b ldr r3, [r3, #0] - 802467a: 3358 adds r3, #88 ; 0x58 - 802467c: 2123 movs r1, #35 ; 0x23 - 802467e: 4618 mov r0, r3 - 8024680: f010 fc2d bl 8034ede + 80245e2: 4b37 ldr r3, [pc, #220] ; (80246c0 ) + 80245e4: 681b ldr r3, [r3, #0] + 80245e6: 3358 adds r3, #88 ; 0x58 + 80245e8: 2123 movs r1, #35 ; 0x23 + 80245ea: 4618 mov r0, r3 + 80245ec: f010 fc2d bl 8034e4a style_init_reset(&styles->disabled); - 8024684: 4b33 ldr r3, [pc, #204] ; (8024754 ) - 8024686: 681b ldr r3, [r3, #0] - 8024688: 3360 adds r3, #96 ; 0x60 - 802468a: 4618 mov r0, r3 - 802468c: f002 ff62 bl 8027554 + 80245f0: 4b33 ldr r3, [pc, #204] ; (80246c0 ) + 80245f2: 681b ldr r3, [r3, #0] + 80245f4: 3360 adds r3, #96 ; 0x60 + 80245f6: 4618 mov r0, r3 + 80245f8: f002 ff62 bl 80274c0 lv_style_set_color_filter_dsc(&styles->disabled, &grey_filter); - 8024690: 4b30 ldr r3, [pc, #192] ; (8024754 ) - 8024692: 681b ldr r3, [r3, #0] - 8024694: 3360 adds r3, #96 ; 0x60 - 8024696: 4937 ldr r1, [pc, #220] ; (8024774 ) - 8024698: 4618 mov r0, r3 - 802469a: f010 fc10 bl 8034ebe + 80245fc: 4b30 ldr r3, [pc, #192] ; (80246c0 ) + 80245fe: 681b ldr r3, [r3, #0] + 8024600: 3360 adds r3, #96 ; 0x60 + 8024602: 4937 ldr r1, [pc, #220] ; (80246e0 ) + 8024604: 4618 mov r0, r3 + 8024606: f010 fc10 bl 8034e2a lv_style_set_color_filter_opa(&styles->disabled, LV_OPA_50); - 802469e: 4b2d ldr r3, [pc, #180] ; (8024754 ) - 80246a0: 681b ldr r3, [r3, #0] - 80246a2: 3360 adds r3, #96 ; 0x60 - 80246a4: 217f movs r1, #127 ; 0x7f - 80246a6: 4618 mov r0, r3 - 80246a8: f010 fc19 bl 8034ede + 802460a: 4b2d ldr r3, [pc, #180] ; (80246c0 ) + 802460c: 681b ldr r3, [r3, #0] + 802460e: 3360 adds r3, #96 ; 0x60 + 8024610: 217f movs r1, #127 ; 0x7f + 8024612: 4618 mov r0, r3 + 8024614: f010 fc19 bl 8034e4a style_init_reset(&styles->clip_corner); - 80246ac: 4b29 ldr r3, [pc, #164] ; (8024754 ) - 80246ae: 681b ldr r3, [r3, #0] - 80246b0: 33c0 adds r3, #192 ; 0xc0 - 80246b2: 4618 mov r0, r3 - 80246b4: f002 ff4e bl 8027554 + 8024618: 4b29 ldr r3, [pc, #164] ; (80246c0 ) + 802461a: 681b ldr r3, [r3, #0] + 802461c: 33c0 adds r3, #192 ; 0xc0 + 802461e: 4618 mov r0, r3 + 8024620: f002 ff4e bl 80274c0 lv_style_set_clip_corner(&styles->clip_corner, true); - 80246b8: 4b26 ldr r3, [pc, #152] ; (8024754 ) - 80246ba: 681b ldr r3, [r3, #0] - 80246bc: 33c0 adds r3, #192 ; 0xc0 - 80246be: 2101 movs r1, #1 - 80246c0: 4618 mov r0, r3 - 80246c2: f010 fbeb bl 8034e9c + 8024624: 4b26 ldr r3, [pc, #152] ; (80246c0 ) + 8024626: 681b ldr r3, [r3, #0] + 8024628: 33c0 adds r3, #192 ; 0xc0 + 802462a: 2101 movs r1, #1 + 802462c: 4618 mov r0, r3 + 802462e: f010 fbeb bl 8034e08 lv_style_set_border_post(&styles->clip_corner, true); - 80246c6: 4b23 ldr r3, [pc, #140] ; (8024754 ) - 80246c8: 681b ldr r3, [r3, #0] - 80246ca: 33c0 adds r3, #192 ; 0xc0 - 80246cc: 2101 movs r1, #1 - 80246ce: 4618 mov r0, r3 - 80246d0: f010 fa76 bl 8034bc0 + 8024632: 4b23 ldr r3, [pc, #140] ; (80246c0 ) + 8024634: 681b ldr r3, [r3, #0] + 8024636: 33c0 adds r3, #192 ; 0xc0 + 8024638: 2101 movs r1, #1 + 802463a: 4618 mov r0, r3 + 802463c: f010 fa76 bl 8034b2c style_init_reset(&styles->pad_normal); - 80246d4: 4b1f ldr r3, [pc, #124] ; (8024754 ) - 80246d6: 681b ldr r3, [r3, #0] - 80246d8: 3380 adds r3, #128 ; 0x80 - 80246da: 4618 mov r0, r3 - 80246dc: f002 ff3a bl 8027554 + 8024640: 4b1f ldr r3, [pc, #124] ; (80246c0 ) + 8024642: 681b ldr r3, [r3, #0] + 8024644: 3380 adds r3, #128 ; 0x80 + 8024646: 4618 mov r0, r3 + 8024648: f002 ff3a bl 80274c0 lv_style_set_pad_all(&styles->pad_normal, PAD_DEF); - 80246e0: 4b1c ldr r3, [pc, #112] ; (8024754 ) - 80246e2: 681b ldr r3, [r3, #0] - 80246e4: f103 0480 add.w r4, r3, #128 ; 0x80 - 80246e8: 4b1e ldr r3, [pc, #120] ; (8024764 ) - 80246ea: 781b ldrb r3, [r3, #0] - 80246ec: 2b01 cmp r3, #1 - 80246ee: d107 bne.n 8024700 - 80246f0: 4b17 ldr r3, [pc, #92] ; (8024750 ) - 80246f2: 68db ldr r3, [r3, #12] - 80246f4: 2118 movs r1, #24 - 80246f6: 4618 mov r0, r3 - 80246f8: f7ff fb82 bl 8023e00 - 80246fc: 4603 mov r3, r0 - 80246fe: e012 b.n 8024726 - 8024700: 4b18 ldr r3, [pc, #96] ; (8024764 ) - 8024702: 781b ldrb r3, [r3, #0] - 8024704: 2b02 cmp r3, #2 - 8024706: d107 bne.n 8024718 - 8024708: 4b11 ldr r3, [pc, #68] ; (8024750 ) - 802470a: 68db ldr r3, [r3, #12] - 802470c: 2114 movs r1, #20 - 802470e: 4618 mov r0, r3 - 8024710: f7ff fb76 bl 8023e00 - 8024714: 4603 mov r3, r0 - 8024716: e006 b.n 8024726 - 8024718: 4b0d ldr r3, [pc, #52] ; (8024750 ) - 802471a: 68db ldr r3, [r3, #12] - 802471c: 2110 movs r1, #16 - 802471e: 4618 mov r0, r3 - 8024720: f7ff fb6e bl 8023e00 - 8024724: 4603 mov r3, r0 - 8024726: 4619 mov r1, r3 - 8024728: 4620 mov r0, r4 - 802472a: f7ff fb04 bl 8023d36 + 802464c: 4b1c ldr r3, [pc, #112] ; (80246c0 ) + 802464e: 681b ldr r3, [r3, #0] + 8024650: f103 0480 add.w r4, r3, #128 ; 0x80 + 8024654: 4b1e ldr r3, [pc, #120] ; (80246d0 ) + 8024656: 781b ldrb r3, [r3, #0] + 8024658: 2b01 cmp r3, #1 + 802465a: d107 bne.n 802466c + 802465c: 4b17 ldr r3, [pc, #92] ; (80246bc ) + 802465e: 68db ldr r3, [r3, #12] + 8024660: 2118 movs r1, #24 + 8024662: 4618 mov r0, r3 + 8024664: f7ff fb82 bl 8023d6c + 8024668: 4603 mov r3, r0 + 802466a: e012 b.n 8024692 + 802466c: 4b18 ldr r3, [pc, #96] ; (80246d0 ) + 802466e: 781b ldrb r3, [r3, #0] + 8024670: 2b02 cmp r3, #2 + 8024672: d107 bne.n 8024684 + 8024674: 4b11 ldr r3, [pc, #68] ; (80246bc ) + 8024676: 68db ldr r3, [r3, #12] + 8024678: 2114 movs r1, #20 + 802467a: 4618 mov r0, r3 + 802467c: f7ff fb76 bl 8023d6c + 8024680: 4603 mov r3, r0 + 8024682: e006 b.n 8024692 + 8024684: 4b0d ldr r3, [pc, #52] ; (80246bc ) + 8024686: 68db ldr r3, [r3, #12] + 8024688: 2110 movs r1, #16 + 802468a: 4618 mov r0, r3 + 802468c: f7ff fb6e bl 8023d6c + 8024690: 4603 mov r3, r0 + 8024692: 4619 mov r1, r3 + 8024694: 4620 mov r0, r4 + 8024696: f7ff fb04 bl 8023ca2 lv_style_set_pad_row(&styles->pad_normal, PAD_DEF); - 802472e: 4b09 ldr r3, [pc, #36] ; (8024754 ) - 8024730: 681b ldr r3, [r3, #0] - 8024732: f103 0480 add.w r4, r3, #128 ; 0x80 - 8024736: 4b0b ldr r3, [pc, #44] ; (8024764 ) - 8024738: 781b ldrb r3, [r3, #0] - 802473a: 2b01 cmp r3, #1 - 802473c: d11c bne.n 8024778 - 802473e: 4b04 ldr r3, [pc, #16] ; (8024750 ) - 8024740: 68db ldr r3, [r3, #12] - 8024742: 2118 movs r1, #24 - 8024744: 4618 mov r0, r3 - 8024746: f7ff fb5b bl 8023e00 - 802474a: 4603 mov r3, r0 - 802474c: e027 b.n 802479e - 802474e: bf00 nop - 8024750: 20001c50 .word 0x20001c50 - 8024754: 20001c4c .word 0x20001c4c - 8024758: 20001c84 .word 0x20001c84 - 802475c: 66666667 .word 0x66666667 - 8024760: 20001c7c .word 0x20001c7c - 8024764: 20001c74 .word 0x20001c74 - 8024768: 08023e61 .word 0x08023e61 - 802476c: 20001cb0 .word 0x20001cb0 - 8024770: 08023e85 .word 0x08023e85 - 8024774: 20001cb8 .word 0x20001cb8 - 8024778: 4bb1 ldr r3, [pc, #708] ; (8024a40 ) - 802477a: 781b ldrb r3, [r3, #0] - 802477c: 2b02 cmp r3, #2 - 802477e: d107 bne.n 8024790 - 8024780: 4bb0 ldr r3, [pc, #704] ; (8024a44 ) - 8024782: 68db ldr r3, [r3, #12] - 8024784: 2114 movs r1, #20 - 8024786: 4618 mov r0, r3 - 8024788: f7ff fb3a bl 8023e00 - 802478c: 4603 mov r3, r0 - 802478e: e006 b.n 802479e - 8024790: 4bac ldr r3, [pc, #688] ; (8024a44 ) - 8024792: 68db ldr r3, [r3, #12] - 8024794: 2110 movs r1, #16 - 8024796: 4618 mov r0, r3 - 8024798: f7ff fb32 bl 8023e00 - 802479c: 4603 mov r3, r0 - 802479e: 4619 mov r1, r3 - 80247a0: 4620 mov r0, r4 - 80247a2: f010 f95a bl 8034a5a + 802469a: 4b09 ldr r3, [pc, #36] ; (80246c0 ) + 802469c: 681b ldr r3, [r3, #0] + 802469e: f103 0480 add.w r4, r3, #128 ; 0x80 + 80246a2: 4b0b ldr r3, [pc, #44] ; (80246d0 ) + 80246a4: 781b ldrb r3, [r3, #0] + 80246a6: 2b01 cmp r3, #1 + 80246a8: d11c bne.n 80246e4 + 80246aa: 4b04 ldr r3, [pc, #16] ; (80246bc ) + 80246ac: 68db ldr r3, [r3, #12] + 80246ae: 2118 movs r1, #24 + 80246b0: 4618 mov r0, r3 + 80246b2: f7ff fb5b bl 8023d6c + 80246b6: 4603 mov r3, r0 + 80246b8: e027 b.n 802470a + 80246ba: bf00 nop + 80246bc: 20001c50 .word 0x20001c50 + 80246c0: 20001c4c .word 0x20001c4c + 80246c4: 20001c84 .word 0x20001c84 + 80246c8: 66666667 .word 0x66666667 + 80246cc: 20001c7c .word 0x20001c7c + 80246d0: 20001c74 .word 0x20001c74 + 80246d4: 08023dcd .word 0x08023dcd + 80246d8: 20001cb0 .word 0x20001cb0 + 80246dc: 08023df1 .word 0x08023df1 + 80246e0: 20001cb8 .word 0x20001cb8 + 80246e4: 4bb1 ldr r3, [pc, #708] ; (80249ac ) + 80246e6: 781b ldrb r3, [r3, #0] + 80246e8: 2b02 cmp r3, #2 + 80246ea: d107 bne.n 80246fc + 80246ec: 4bb0 ldr r3, [pc, #704] ; (80249b0 ) + 80246ee: 68db ldr r3, [r3, #12] + 80246f0: 2114 movs r1, #20 + 80246f2: 4618 mov r0, r3 + 80246f4: f7ff fb3a bl 8023d6c + 80246f8: 4603 mov r3, r0 + 80246fa: e006 b.n 802470a + 80246fc: 4bac ldr r3, [pc, #688] ; (80249b0 ) + 80246fe: 68db ldr r3, [r3, #12] + 8024700: 2110 movs r1, #16 + 8024702: 4618 mov r0, r3 + 8024704: f7ff fb32 bl 8023d6c + 8024708: 4603 mov r3, r0 + 802470a: 4619 mov r1, r3 + 802470c: 4620 mov r0, r4 + 802470e: f010 f95a bl 80349c6 lv_style_set_pad_column(&styles->pad_normal, PAD_DEF); - 80247a6: 4ba8 ldr r3, [pc, #672] ; (8024a48 ) - 80247a8: 681b ldr r3, [r3, #0] - 80247aa: f103 0480 add.w r4, r3, #128 ; 0x80 - 80247ae: 4ba4 ldr r3, [pc, #656] ; (8024a40 ) - 80247b0: 781b ldrb r3, [r3, #0] - 80247b2: 2b01 cmp r3, #1 - 80247b4: d107 bne.n 80247c6 - 80247b6: 4ba3 ldr r3, [pc, #652] ; (8024a44 ) - 80247b8: 68db ldr r3, [r3, #12] - 80247ba: 2118 movs r1, #24 - 80247bc: 4618 mov r0, r3 - 80247be: f7ff fb1f bl 8023e00 - 80247c2: 4603 mov r3, r0 - 80247c4: e012 b.n 80247ec - 80247c6: 4b9e ldr r3, [pc, #632] ; (8024a40 ) - 80247c8: 781b ldrb r3, [r3, #0] - 80247ca: 2b02 cmp r3, #2 - 80247cc: d107 bne.n 80247de - 80247ce: 4b9d ldr r3, [pc, #628] ; (8024a44 ) - 80247d0: 68db ldr r3, [r3, #12] - 80247d2: 2114 movs r1, #20 - 80247d4: 4618 mov r0, r3 - 80247d6: f7ff fb13 bl 8023e00 - 80247da: 4603 mov r3, r0 - 80247dc: e006 b.n 80247ec - 80247de: 4b99 ldr r3, [pc, #612] ; (8024a44 ) - 80247e0: 68db ldr r3, [r3, #12] - 80247e2: 2110 movs r1, #16 - 80247e4: 4618 mov r0, r3 - 80247e6: f7ff fb0b bl 8023e00 - 80247ea: 4603 mov r3, r0 - 80247ec: 4619 mov r1, r3 - 80247ee: 4620 mov r0, r4 - 80247f0: f010 f946 bl 8034a80 + 8024712: 4ba8 ldr r3, [pc, #672] ; (80249b4 ) + 8024714: 681b ldr r3, [r3, #0] + 8024716: f103 0480 add.w r4, r3, #128 ; 0x80 + 802471a: 4ba4 ldr r3, [pc, #656] ; (80249ac ) + 802471c: 781b ldrb r3, [r3, #0] + 802471e: 2b01 cmp r3, #1 + 8024720: d107 bne.n 8024732 + 8024722: 4ba3 ldr r3, [pc, #652] ; (80249b0 ) + 8024724: 68db ldr r3, [r3, #12] + 8024726: 2118 movs r1, #24 + 8024728: 4618 mov r0, r3 + 802472a: f7ff fb1f bl 8023d6c + 802472e: 4603 mov r3, r0 + 8024730: e012 b.n 8024758 + 8024732: 4b9e ldr r3, [pc, #632] ; (80249ac ) + 8024734: 781b ldrb r3, [r3, #0] + 8024736: 2b02 cmp r3, #2 + 8024738: d107 bne.n 802474a + 802473a: 4b9d ldr r3, [pc, #628] ; (80249b0 ) + 802473c: 68db ldr r3, [r3, #12] + 802473e: 2114 movs r1, #20 + 8024740: 4618 mov r0, r3 + 8024742: f7ff fb13 bl 8023d6c + 8024746: 4603 mov r3, r0 + 8024748: e006 b.n 8024758 + 802474a: 4b99 ldr r3, [pc, #612] ; (80249b0 ) + 802474c: 68db ldr r3, [r3, #12] + 802474e: 2110 movs r1, #16 + 8024750: 4618 mov r0, r3 + 8024752: f7ff fb0b bl 8023d6c + 8024756: 4603 mov r3, r0 + 8024758: 4619 mov r1, r3 + 802475a: 4620 mov r0, r4 + 802475c: f010 f946 bl 80349ec style_init_reset(&styles->pad_small); - 80247f4: 4b94 ldr r3, [pc, #592] ; (8024a48 ) - 80247f6: 681b ldr r3, [r3, #0] - 80247f8: 3378 adds r3, #120 ; 0x78 - 80247fa: 4618 mov r0, r3 - 80247fc: f002 feaa bl 8027554 + 8024760: 4b94 ldr r3, [pc, #592] ; (80249b4 ) + 8024762: 681b ldr r3, [r3, #0] + 8024764: 3378 adds r3, #120 ; 0x78 + 8024766: 4618 mov r0, r3 + 8024768: f002 feaa bl 80274c0 lv_style_set_pad_all(&styles->pad_small, PAD_SMALL); - 8024800: 4b91 ldr r3, [pc, #580] ; (8024a48 ) - 8024802: 681b ldr r3, [r3, #0] - 8024804: f103 0478 add.w r4, r3, #120 ; 0x78 - 8024808: 4b8d ldr r3, [pc, #564] ; (8024a40 ) - 802480a: 781b ldrb r3, [r3, #0] - 802480c: 2b01 cmp r3, #1 - 802480e: d107 bne.n 8024820 - 8024810: 4b8c ldr r3, [pc, #560] ; (8024a44 ) - 8024812: 68db ldr r3, [r3, #12] - 8024814: 210e movs r1, #14 - 8024816: 4618 mov r0, r3 - 8024818: f7ff faf2 bl 8023e00 - 802481c: 4603 mov r3, r0 - 802481e: e012 b.n 8024846 - 8024820: 4b87 ldr r3, [pc, #540] ; (8024a40 ) - 8024822: 781b ldrb r3, [r3, #0] - 8024824: 2b02 cmp r3, #2 - 8024826: d107 bne.n 8024838 - 8024828: 4b86 ldr r3, [pc, #536] ; (8024a44 ) - 802482a: 68db ldr r3, [r3, #12] - 802482c: 210c movs r1, #12 - 802482e: 4618 mov r0, r3 - 8024830: f7ff fae6 bl 8023e00 - 8024834: 4603 mov r3, r0 - 8024836: e006 b.n 8024846 - 8024838: 4b82 ldr r3, [pc, #520] ; (8024a44 ) - 802483a: 68db ldr r3, [r3, #12] - 802483c: 210a movs r1, #10 - 802483e: 4618 mov r0, r3 - 8024840: f7ff fade bl 8023e00 - 8024844: 4603 mov r3, r0 - 8024846: 4619 mov r1, r3 - 8024848: 4620 mov r0, r4 - 802484a: f7ff fa74 bl 8023d36 + 802476c: 4b91 ldr r3, [pc, #580] ; (80249b4 ) + 802476e: 681b ldr r3, [r3, #0] + 8024770: f103 0478 add.w r4, r3, #120 ; 0x78 + 8024774: 4b8d ldr r3, [pc, #564] ; (80249ac ) + 8024776: 781b ldrb r3, [r3, #0] + 8024778: 2b01 cmp r3, #1 + 802477a: d107 bne.n 802478c + 802477c: 4b8c ldr r3, [pc, #560] ; (80249b0 ) + 802477e: 68db ldr r3, [r3, #12] + 8024780: 210e movs r1, #14 + 8024782: 4618 mov r0, r3 + 8024784: f7ff faf2 bl 8023d6c + 8024788: 4603 mov r3, r0 + 802478a: e012 b.n 80247b2 + 802478c: 4b87 ldr r3, [pc, #540] ; (80249ac ) + 802478e: 781b ldrb r3, [r3, #0] + 8024790: 2b02 cmp r3, #2 + 8024792: d107 bne.n 80247a4 + 8024794: 4b86 ldr r3, [pc, #536] ; (80249b0 ) + 8024796: 68db ldr r3, [r3, #12] + 8024798: 210c movs r1, #12 + 802479a: 4618 mov r0, r3 + 802479c: f7ff fae6 bl 8023d6c + 80247a0: 4603 mov r3, r0 + 80247a2: e006 b.n 80247b2 + 80247a4: 4b82 ldr r3, [pc, #520] ; (80249b0 ) + 80247a6: 68db ldr r3, [r3, #12] + 80247a8: 210a movs r1, #10 + 80247aa: 4618 mov r0, r3 + 80247ac: f7ff fade bl 8023d6c + 80247b0: 4603 mov r3, r0 + 80247b2: 4619 mov r1, r3 + 80247b4: 4620 mov r0, r4 + 80247b6: f7ff fa74 bl 8023ca2 lv_style_set_pad_gap(&styles->pad_small, PAD_SMALL); - 802484e: 4b7e ldr r3, [pc, #504] ; (8024a48 ) - 8024850: 681b ldr r3, [r3, #0] - 8024852: f103 0478 add.w r4, r3, #120 ; 0x78 - 8024856: 4b7a ldr r3, [pc, #488] ; (8024a40 ) - 8024858: 781b ldrb r3, [r3, #0] - 802485a: 2b01 cmp r3, #1 - 802485c: d107 bne.n 802486e - 802485e: 4b79 ldr r3, [pc, #484] ; (8024a44 ) - 8024860: 68db ldr r3, [r3, #12] - 8024862: 210e movs r1, #14 - 8024864: 4618 mov r0, r3 - 8024866: f7ff facb bl 8023e00 - 802486a: 4603 mov r3, r0 - 802486c: e012 b.n 8024894 - 802486e: 4b74 ldr r3, [pc, #464] ; (8024a40 ) - 8024870: 781b ldrb r3, [r3, #0] - 8024872: 2b02 cmp r3, #2 - 8024874: d107 bne.n 8024886 - 8024876: 4b73 ldr r3, [pc, #460] ; (8024a44 ) - 8024878: 68db ldr r3, [r3, #12] - 802487a: 210c movs r1, #12 - 802487c: 4618 mov r0, r3 - 802487e: f7ff fabf bl 8023e00 - 8024882: 4603 mov r3, r0 - 8024884: e006 b.n 8024894 - 8024886: 4b6f ldr r3, [pc, #444] ; (8024a44 ) - 8024888: 68db ldr r3, [r3, #12] - 802488a: 210a movs r1, #10 - 802488c: 4618 mov r0, r3 - 802488e: f7ff fab7 bl 8023e00 - 8024892: 4603 mov r3, r0 - 8024894: 4619 mov r1, r3 - 8024896: 4620 mov r0, r4 - 8024898: f7ff fa9b bl 8023dd2 + 80247ba: 4b7e ldr r3, [pc, #504] ; (80249b4 ) + 80247bc: 681b ldr r3, [r3, #0] + 80247be: f103 0478 add.w r4, r3, #120 ; 0x78 + 80247c2: 4b7a ldr r3, [pc, #488] ; (80249ac ) + 80247c4: 781b ldrb r3, [r3, #0] + 80247c6: 2b01 cmp r3, #1 + 80247c8: d107 bne.n 80247da + 80247ca: 4b79 ldr r3, [pc, #484] ; (80249b0 ) + 80247cc: 68db ldr r3, [r3, #12] + 80247ce: 210e movs r1, #14 + 80247d0: 4618 mov r0, r3 + 80247d2: f7ff facb bl 8023d6c + 80247d6: 4603 mov r3, r0 + 80247d8: e012 b.n 8024800 + 80247da: 4b74 ldr r3, [pc, #464] ; (80249ac ) + 80247dc: 781b ldrb r3, [r3, #0] + 80247de: 2b02 cmp r3, #2 + 80247e0: d107 bne.n 80247f2 + 80247e2: 4b73 ldr r3, [pc, #460] ; (80249b0 ) + 80247e4: 68db ldr r3, [r3, #12] + 80247e6: 210c movs r1, #12 + 80247e8: 4618 mov r0, r3 + 80247ea: f7ff fabf bl 8023d6c + 80247ee: 4603 mov r3, r0 + 80247f0: e006 b.n 8024800 + 80247f2: 4b6f ldr r3, [pc, #444] ; (80249b0 ) + 80247f4: 68db ldr r3, [r3, #12] + 80247f6: 210a movs r1, #10 + 80247f8: 4618 mov r0, r3 + 80247fa: f7ff fab7 bl 8023d6c + 80247fe: 4603 mov r3, r0 + 8024800: 4619 mov r1, r3 + 8024802: 4620 mov r0, r4 + 8024804: f7ff fa9b bl 8023d3e style_init_reset(&styles->pad_gap); - 802489c: 4b6a ldr r3, [pc, #424] ; (8024a48 ) - 802489e: 681b ldr r3, [r3, #0] - 80248a0: 3388 adds r3, #136 ; 0x88 - 80248a2: 4618 mov r0, r3 - 80248a4: f002 fe56 bl 8027554 + 8024808: 4b6a ldr r3, [pc, #424] ; (80249b4 ) + 802480a: 681b ldr r3, [r3, #0] + 802480c: 3388 adds r3, #136 ; 0x88 + 802480e: 4618 mov r0, r3 + 8024810: f002 fe56 bl 80274c0 lv_style_set_pad_row(&styles->pad_gap, lv_disp_dpx(theme.disp, 10)); - 80248a8: 4b67 ldr r3, [pc, #412] ; (8024a48 ) - 80248aa: 681b ldr r3, [r3, #0] - 80248ac: f103 0488 add.w r4, r3, #136 ; 0x88 - 80248b0: 4b64 ldr r3, [pc, #400] ; (8024a44 ) - 80248b2: 68db ldr r3, [r3, #12] - 80248b4: 210a movs r1, #10 - 80248b6: 4618 mov r0, r3 - 80248b8: f7ff faa2 bl 8023e00 - 80248bc: 4603 mov r3, r0 - 80248be: 4619 mov r1, r3 - 80248c0: 4620 mov r0, r4 - 80248c2: f010 f8ca bl 8034a5a + 8024814: 4b67 ldr r3, [pc, #412] ; (80249b4 ) + 8024816: 681b ldr r3, [r3, #0] + 8024818: f103 0488 add.w r4, r3, #136 ; 0x88 + 802481c: 4b64 ldr r3, [pc, #400] ; (80249b0 ) + 802481e: 68db ldr r3, [r3, #12] + 8024820: 210a movs r1, #10 + 8024822: 4618 mov r0, r3 + 8024824: f7ff faa2 bl 8023d6c + 8024828: 4603 mov r3, r0 + 802482a: 4619 mov r1, r3 + 802482c: 4620 mov r0, r4 + 802482e: f010 f8ca bl 80349c6 lv_style_set_pad_column(&styles->pad_gap, lv_disp_dpx(theme.disp, 10)); - 80248c6: 4b60 ldr r3, [pc, #384] ; (8024a48 ) - 80248c8: 681b ldr r3, [r3, #0] - 80248ca: f103 0488 add.w r4, r3, #136 ; 0x88 - 80248ce: 4b5d ldr r3, [pc, #372] ; (8024a44 ) - 80248d0: 68db ldr r3, [r3, #12] - 80248d2: 210a movs r1, #10 - 80248d4: 4618 mov r0, r3 - 80248d6: f7ff fa93 bl 8023e00 - 80248da: 4603 mov r3, r0 - 80248dc: 4619 mov r1, r3 - 80248de: 4620 mov r0, r4 - 80248e0: f010 f8ce bl 8034a80 + 8024832: 4b60 ldr r3, [pc, #384] ; (80249b4 ) + 8024834: 681b ldr r3, [r3, #0] + 8024836: f103 0488 add.w r4, r3, #136 ; 0x88 + 802483a: 4b5d ldr r3, [pc, #372] ; (80249b0 ) + 802483c: 68db ldr r3, [r3, #12] + 802483e: 210a movs r1, #10 + 8024840: 4618 mov r0, r3 + 8024842: f7ff fa93 bl 8023d6c + 8024846: 4603 mov r3, r0 + 8024848: 4619 mov r1, r3 + 802484a: 4620 mov r0, r4 + 802484c: f010 f8ce bl 80349ec style_init_reset(&styles->line_space_large); - 80248e4: 4b58 ldr r3, [pc, #352] ; (8024a48 ) - 80248e6: 681b ldr r3, [r3, #0] - 80248e8: 3390 adds r3, #144 ; 0x90 - 80248ea: 4618 mov r0, r3 - 80248ec: f002 fe32 bl 8027554 + 8024850: 4b58 ldr r3, [pc, #352] ; (80249b4 ) + 8024852: 681b ldr r3, [r3, #0] + 8024854: 3390 adds r3, #144 ; 0x90 + 8024856: 4618 mov r0, r3 + 8024858: f002 fe32 bl 80274c0 lv_style_set_text_line_space(&styles->line_space_large, lv_disp_dpx(theme.disp, 20)); - 80248f0: 4b55 ldr r3, [pc, #340] ; (8024a48 ) - 80248f2: 681b ldr r3, [r3, #0] - 80248f4: f103 0490 add.w r4, r3, #144 ; 0x90 - 80248f8: 4b52 ldr r3, [pc, #328] ; (8024a44 ) - 80248fa: 68db ldr r3, [r3, #12] - 80248fc: 2114 movs r1, #20 - 80248fe: 4618 mov r0, r3 - 8024900: f7ff fa7e bl 8023e00 - 8024904: 4603 mov r3, r0 - 8024906: 4619 mov r1, r3 - 8024908: 4620 mov r0, r4 - 802490a: f010 fa90 bl 8034e2e + 802485c: 4b55 ldr r3, [pc, #340] ; (80249b4 ) + 802485e: 681b ldr r3, [r3, #0] + 8024860: f103 0490 add.w r4, r3, #144 ; 0x90 + 8024864: 4b52 ldr r3, [pc, #328] ; (80249b0 ) + 8024866: 68db ldr r3, [r3, #12] + 8024868: 2114 movs r1, #20 + 802486a: 4618 mov r0, r3 + 802486c: f7ff fa7e bl 8023d6c + 8024870: 4603 mov r3, r0 + 8024872: 4619 mov r1, r3 + 8024874: 4620 mov r0, r4 + 8024876: f010 fa90 bl 8034d9a style_init_reset(&styles->text_align_center); - 802490e: 4b4e ldr r3, [pc, #312] ; (8024a48 ) - 8024910: 681b ldr r3, [r3, #0] - 8024912: 3398 adds r3, #152 ; 0x98 - 8024914: 4618 mov r0, r3 - 8024916: f002 fe1d bl 8027554 + 802487a: 4b4e ldr r3, [pc, #312] ; (80249b4 ) + 802487c: 681b ldr r3, [r3, #0] + 802487e: 3398 adds r3, #152 ; 0x98 + 8024880: 4618 mov r0, r3 + 8024882: f002 fe1d bl 80274c0 lv_style_set_text_align(&styles->text_align_center, LV_TEXT_ALIGN_CENTER); - 802491a: 4b4b ldr r3, [pc, #300] ; (8024a48 ) - 802491c: 681b ldr r3, [r3, #0] - 802491e: 3398 adds r3, #152 ; 0x98 - 8024920: 2102 movs r1, #2 - 8024922: 4618 mov r0, r3 - 8024924: f010 fa96 bl 8034e54 + 8024886: 4b4b ldr r3, [pc, #300] ; (80249b4 ) + 8024888: 681b ldr r3, [r3, #0] + 802488a: 3398 adds r3, #152 ; 0x98 + 802488c: 2102 movs r1, #2 + 802488e: 4618 mov r0, r3 + 8024890: f010 fa96 bl 8034dc0 style_init_reset(&styles->pad_zero); - 8024928: 4b47 ldr r3, [pc, #284] ; (8024a48 ) - 802492a: 681b ldr r3, [r3, #0] - 802492c: 3368 adds r3, #104 ; 0x68 - 802492e: 4618 mov r0, r3 - 8024930: f002 fe10 bl 8027554 + 8024894: 4b47 ldr r3, [pc, #284] ; (80249b4 ) + 8024896: 681b ldr r3, [r3, #0] + 8024898: 3368 adds r3, #104 ; 0x68 + 802489a: 4618 mov r0, r3 + 802489c: f002 fe10 bl 80274c0 lv_style_set_pad_all(&styles->pad_zero, 0); - 8024934: 4b44 ldr r3, [pc, #272] ; (8024a48 ) - 8024936: 681b ldr r3, [r3, #0] - 8024938: 3368 adds r3, #104 ; 0x68 - 802493a: 2100 movs r1, #0 - 802493c: 4618 mov r0, r3 - 802493e: f7ff f9fa bl 8023d36 + 80248a0: 4b44 ldr r3, [pc, #272] ; (80249b4 ) + 80248a2: 681b ldr r3, [r3, #0] + 80248a4: 3368 adds r3, #104 ; 0x68 + 80248a6: 2100 movs r1, #0 + 80248a8: 4618 mov r0, r3 + 80248aa: f7ff f9fa bl 8023ca2 lv_style_set_pad_row(&styles->pad_zero, 0); - 8024942: 4b41 ldr r3, [pc, #260] ; (8024a48 ) - 8024944: 681b ldr r3, [r3, #0] - 8024946: 3368 adds r3, #104 ; 0x68 - 8024948: 2100 movs r1, #0 - 802494a: 4618 mov r0, r3 - 802494c: f010 f885 bl 8034a5a + 80248ae: 4b41 ldr r3, [pc, #260] ; (80249b4 ) + 80248b0: 681b ldr r3, [r3, #0] + 80248b2: 3368 adds r3, #104 ; 0x68 + 80248b4: 2100 movs r1, #0 + 80248b6: 4618 mov r0, r3 + 80248b8: f010 f885 bl 80349c6 lv_style_set_pad_column(&styles->pad_zero, 0); - 8024950: 4b3d ldr r3, [pc, #244] ; (8024a48 ) - 8024952: 681b ldr r3, [r3, #0] - 8024954: 3368 adds r3, #104 ; 0x68 - 8024956: 2100 movs r1, #0 - 8024958: 4618 mov r0, r3 - 802495a: f010 f891 bl 8034a80 + 80248bc: 4b3d ldr r3, [pc, #244] ; (80249b4 ) + 80248be: 681b ldr r3, [r3, #0] + 80248c0: 3368 adds r3, #104 ; 0x68 + 80248c2: 2100 movs r1, #0 + 80248c4: 4618 mov r0, r3 + 80248c6: f010 f891 bl 80349ec style_init_reset(&styles->pad_tiny); - 802495e: 4b3a ldr r3, [pc, #232] ; (8024a48 ) - 8024960: 681b ldr r3, [r3, #0] - 8024962: 3370 adds r3, #112 ; 0x70 - 8024964: 4618 mov r0, r3 - 8024966: f002 fdf5 bl 8027554 + 80248ca: 4b3a ldr r3, [pc, #232] ; (80249b4 ) + 80248cc: 681b ldr r3, [r3, #0] + 80248ce: 3370 adds r3, #112 ; 0x70 + 80248d0: 4618 mov r0, r3 + 80248d2: f002 fdf5 bl 80274c0 lv_style_set_pad_all(&styles->pad_tiny, PAD_TINY); - 802496a: 4b37 ldr r3, [pc, #220] ; (8024a48 ) - 802496c: 681b ldr r3, [r3, #0] - 802496e: f103 0470 add.w r4, r3, #112 ; 0x70 - 8024972: 4b33 ldr r3, [pc, #204] ; (8024a40 ) - 8024974: 781b ldrb r3, [r3, #0] - 8024976: 2b01 cmp r3, #1 - 8024978: d107 bne.n 802498a - 802497a: 4b32 ldr r3, [pc, #200] ; (8024a44 ) - 802497c: 68db ldr r3, [r3, #12] - 802497e: 2108 movs r1, #8 - 8024980: 4618 mov r0, r3 - 8024982: f7ff fa3d bl 8023e00 - 8024986: 4603 mov r3, r0 - 8024988: e012 b.n 80249b0 - 802498a: 4b2d ldr r3, [pc, #180] ; (8024a40 ) - 802498c: 781b ldrb r3, [r3, #0] - 802498e: 2b02 cmp r3, #2 - 8024990: d107 bne.n 80249a2 - 8024992: 4b2c ldr r3, [pc, #176] ; (8024a44 ) - 8024994: 68db ldr r3, [r3, #12] - 8024996: 2106 movs r1, #6 - 8024998: 4618 mov r0, r3 - 802499a: f7ff fa31 bl 8023e00 - 802499e: 4603 mov r3, r0 - 80249a0: e006 b.n 80249b0 - 80249a2: 4b28 ldr r3, [pc, #160] ; (8024a44 ) - 80249a4: 68db ldr r3, [r3, #12] - 80249a6: 2102 movs r1, #2 - 80249a8: 4618 mov r0, r3 - 80249aa: f7ff fa29 bl 8023e00 - 80249ae: 4603 mov r3, r0 - 80249b0: 4619 mov r1, r3 - 80249b2: 4620 mov r0, r4 - 80249b4: f7ff f9bf bl 8023d36 + 80248d6: 4b37 ldr r3, [pc, #220] ; (80249b4 ) + 80248d8: 681b ldr r3, [r3, #0] + 80248da: f103 0470 add.w r4, r3, #112 ; 0x70 + 80248de: 4b33 ldr r3, [pc, #204] ; (80249ac ) + 80248e0: 781b ldrb r3, [r3, #0] + 80248e2: 2b01 cmp r3, #1 + 80248e4: d107 bne.n 80248f6 + 80248e6: 4b32 ldr r3, [pc, #200] ; (80249b0 ) + 80248e8: 68db ldr r3, [r3, #12] + 80248ea: 2108 movs r1, #8 + 80248ec: 4618 mov r0, r3 + 80248ee: f7ff fa3d bl 8023d6c + 80248f2: 4603 mov r3, r0 + 80248f4: e012 b.n 802491c + 80248f6: 4b2d ldr r3, [pc, #180] ; (80249ac ) + 80248f8: 781b ldrb r3, [r3, #0] + 80248fa: 2b02 cmp r3, #2 + 80248fc: d107 bne.n 802490e + 80248fe: 4b2c ldr r3, [pc, #176] ; (80249b0 ) + 8024900: 68db ldr r3, [r3, #12] + 8024902: 2106 movs r1, #6 + 8024904: 4618 mov r0, r3 + 8024906: f7ff fa31 bl 8023d6c + 802490a: 4603 mov r3, r0 + 802490c: e006 b.n 802491c + 802490e: 4b28 ldr r3, [pc, #160] ; (80249b0 ) + 8024910: 68db ldr r3, [r3, #12] + 8024912: 2102 movs r1, #2 + 8024914: 4618 mov r0, r3 + 8024916: f7ff fa29 bl 8023d6c + 802491a: 4603 mov r3, r0 + 802491c: 4619 mov r1, r3 + 802491e: 4620 mov r0, r4 + 8024920: f7ff f9bf bl 8023ca2 lv_style_set_pad_row(&styles->pad_tiny, PAD_TINY); - 80249b8: 4b23 ldr r3, [pc, #140] ; (8024a48 ) - 80249ba: 681b ldr r3, [r3, #0] - 80249bc: f103 0470 add.w r4, r3, #112 ; 0x70 - 80249c0: 4b1f ldr r3, [pc, #124] ; (8024a40 ) - 80249c2: 781b ldrb r3, [r3, #0] - 80249c4: 2b01 cmp r3, #1 - 80249c6: d107 bne.n 80249d8 - 80249c8: 4b1e ldr r3, [pc, #120] ; (8024a44 ) - 80249ca: 68db ldr r3, [r3, #12] - 80249cc: 2108 movs r1, #8 - 80249ce: 4618 mov r0, r3 - 80249d0: f7ff fa16 bl 8023e00 - 80249d4: 4603 mov r3, r0 - 80249d6: e012 b.n 80249fe - 80249d8: 4b19 ldr r3, [pc, #100] ; (8024a40 ) - 80249da: 781b ldrb r3, [r3, #0] - 80249dc: 2b02 cmp r3, #2 - 80249de: d107 bne.n 80249f0 - 80249e0: 4b18 ldr r3, [pc, #96] ; (8024a44 ) - 80249e2: 68db ldr r3, [r3, #12] - 80249e4: 2106 movs r1, #6 - 80249e6: 4618 mov r0, r3 - 80249e8: f7ff fa0a bl 8023e00 - 80249ec: 4603 mov r3, r0 - 80249ee: e006 b.n 80249fe - 80249f0: 4b14 ldr r3, [pc, #80] ; (8024a44 ) - 80249f2: 68db ldr r3, [r3, #12] - 80249f4: 2102 movs r1, #2 - 80249f6: 4618 mov r0, r3 - 80249f8: f7ff fa02 bl 8023e00 - 80249fc: 4603 mov r3, r0 - 80249fe: 4619 mov r1, r3 - 8024a00: 4620 mov r0, r4 - 8024a02: f010 f82a bl 8034a5a + 8024924: 4b23 ldr r3, [pc, #140] ; (80249b4 ) + 8024926: 681b ldr r3, [r3, #0] + 8024928: f103 0470 add.w r4, r3, #112 ; 0x70 + 802492c: 4b1f ldr r3, [pc, #124] ; (80249ac ) + 802492e: 781b ldrb r3, [r3, #0] + 8024930: 2b01 cmp r3, #1 + 8024932: d107 bne.n 8024944 + 8024934: 4b1e ldr r3, [pc, #120] ; (80249b0 ) + 8024936: 68db ldr r3, [r3, #12] + 8024938: 2108 movs r1, #8 + 802493a: 4618 mov r0, r3 + 802493c: f7ff fa16 bl 8023d6c + 8024940: 4603 mov r3, r0 + 8024942: e012 b.n 802496a + 8024944: 4b19 ldr r3, [pc, #100] ; (80249ac ) + 8024946: 781b ldrb r3, [r3, #0] + 8024948: 2b02 cmp r3, #2 + 802494a: d107 bne.n 802495c + 802494c: 4b18 ldr r3, [pc, #96] ; (80249b0 ) + 802494e: 68db ldr r3, [r3, #12] + 8024950: 2106 movs r1, #6 + 8024952: 4618 mov r0, r3 + 8024954: f7ff fa0a bl 8023d6c + 8024958: 4603 mov r3, r0 + 802495a: e006 b.n 802496a + 802495c: 4b14 ldr r3, [pc, #80] ; (80249b0 ) + 802495e: 68db ldr r3, [r3, #12] + 8024960: 2102 movs r1, #2 + 8024962: 4618 mov r0, r3 + 8024964: f7ff fa02 bl 8023d6c + 8024968: 4603 mov r3, r0 + 802496a: 4619 mov r1, r3 + 802496c: 4620 mov r0, r4 + 802496e: f010 f82a bl 80349c6 lv_style_set_pad_column(&styles->pad_tiny, PAD_TINY); - 8024a06: 4b10 ldr r3, [pc, #64] ; (8024a48 ) - 8024a08: 681b ldr r3, [r3, #0] - 8024a0a: f103 0470 add.w r4, r3, #112 ; 0x70 - 8024a0e: 4b0c ldr r3, [pc, #48] ; (8024a40 ) - 8024a10: 781b ldrb r3, [r3, #0] - 8024a12: 2b01 cmp r3, #1 - 8024a14: d107 bne.n 8024a26 - 8024a16: 4b0b ldr r3, [pc, #44] ; (8024a44 ) - 8024a18: 68db ldr r3, [r3, #12] - 8024a1a: 2108 movs r1, #8 - 8024a1c: 4618 mov r0, r3 - 8024a1e: f7ff f9ef bl 8023e00 - 8024a22: 4603 mov r3, r0 - 8024a24: e019 b.n 8024a5a - 8024a26: 4b06 ldr r3, [pc, #24] ; (8024a40 ) - 8024a28: 781b ldrb r3, [r3, #0] - 8024a2a: 2b02 cmp r3, #2 - 8024a2c: d10e bne.n 8024a4c - 8024a2e: 4b05 ldr r3, [pc, #20] ; (8024a44 ) - 8024a30: 68db ldr r3, [r3, #12] - 8024a32: 2106 movs r1, #6 - 8024a34: 4618 mov r0, r3 - 8024a36: f7ff f9e3 bl 8023e00 - 8024a3a: 4603 mov r3, r0 - 8024a3c: e00d b.n 8024a5a - 8024a3e: bf00 nop - 8024a40: 20001c74 .word 0x20001c74 - 8024a44: 20001c50 .word 0x20001c50 - 8024a48: 20001c4c .word 0x20001c4c - 8024a4c: 4bbd ldr r3, [pc, #756] ; (8024d44 ) - 8024a4e: 68db ldr r3, [r3, #12] - 8024a50: 2102 movs r1, #2 - 8024a52: 4618 mov r0, r3 - 8024a54: f7ff f9d4 bl 8023e00 - 8024a58: 4603 mov r3, r0 - 8024a5a: 4619 mov r1, r3 - 8024a5c: 4620 mov r0, r4 - 8024a5e: f010 f80f bl 8034a80 + 8024972: 4b10 ldr r3, [pc, #64] ; (80249b4 ) + 8024974: 681b ldr r3, [r3, #0] + 8024976: f103 0470 add.w r4, r3, #112 ; 0x70 + 802497a: 4b0c ldr r3, [pc, #48] ; (80249ac ) + 802497c: 781b ldrb r3, [r3, #0] + 802497e: 2b01 cmp r3, #1 + 8024980: d107 bne.n 8024992 + 8024982: 4b0b ldr r3, [pc, #44] ; (80249b0 ) + 8024984: 68db ldr r3, [r3, #12] + 8024986: 2108 movs r1, #8 + 8024988: 4618 mov r0, r3 + 802498a: f7ff f9ef bl 8023d6c + 802498e: 4603 mov r3, r0 + 8024990: e019 b.n 80249c6 + 8024992: 4b06 ldr r3, [pc, #24] ; (80249ac ) + 8024994: 781b ldrb r3, [r3, #0] + 8024996: 2b02 cmp r3, #2 + 8024998: d10e bne.n 80249b8 + 802499a: 4b05 ldr r3, [pc, #20] ; (80249b0 ) + 802499c: 68db ldr r3, [r3, #12] + 802499e: 2106 movs r1, #6 + 80249a0: 4618 mov r0, r3 + 80249a2: f7ff f9e3 bl 8023d6c + 80249a6: 4603 mov r3, r0 + 80249a8: e00d b.n 80249c6 + 80249aa: bf00 nop + 80249ac: 20001c74 .word 0x20001c74 + 80249b0: 20001c50 .word 0x20001c50 + 80249b4: 20001c4c .word 0x20001c4c + 80249b8: 4bbd ldr r3, [pc, #756] ; (8024cb0 ) + 80249ba: 68db ldr r3, [r3, #12] + 80249bc: 2102 movs r1, #2 + 80249be: 4618 mov r0, r3 + 80249c0: f7ff f9d4 bl 8023d6c + 80249c4: 4603 mov r3, r0 + 80249c6: 4619 mov r1, r3 + 80249c8: 4620 mov r0, r4 + 80249ca: f010 f80f bl 80349ec style_init_reset(&styles->bg_color_primary); - 8024a62: 4bb9 ldr r3, [pc, #740] ; (8024d48 ) - 8024a64: 681b ldr r3, [r3, #0] - 8024a66: 3328 adds r3, #40 ; 0x28 - 8024a68: 4618 mov r0, r3 - 8024a6a: f002 fd73 bl 8027554 + 80249ce: 4bb9 ldr r3, [pc, #740] ; (8024cb4 ) + 80249d0: 681b ldr r3, [r3, #0] + 80249d2: 3328 adds r3, #40 ; 0x28 + 80249d4: 4618 mov r0, r3 + 80249d6: f002 fd73 bl 80274c0 lv_style_set_bg_color(&styles->bg_color_primary, theme.color_primary); - 8024a6e: 4bb6 ldr r3, [pc, #728] ; (8024d48 ) - 8024a70: 681b ldr r3, [r3, #0] - 8024a72: 3328 adds r3, #40 ; 0x28 - 8024a74: 4ab3 ldr r2, [pc, #716] ; (8024d44 ) - 8024a76: 8a11 ldrh r1, [r2, #16] - 8024a78: 4618 mov r0, r3 - 8024a7a: f010 f814 bl 8034aa6 + 80249da: 4bb6 ldr r3, [pc, #728] ; (8024cb4 ) + 80249dc: 681b ldr r3, [r3, #0] + 80249de: 3328 adds r3, #40 ; 0x28 + 80249e0: 4ab3 ldr r2, [pc, #716] ; (8024cb0 ) + 80249e2: 8a11 ldrh r1, [r2, #16] + 80249e4: 4618 mov r0, r3 + 80249e6: f010 f814 bl 8034a12 lv_style_set_text_color(&styles->bg_color_primary, lv_color_white()); - 8024a7e: 4bb2 ldr r3, [pc, #712] ; (8024d48 ) - 8024a80: 681b ldr r3, [r3, #0] - 8024a82: f103 0428 add.w r4, r3, #40 ; 0x28 - 8024a86: f7ff f936 bl 8023cf6 - 8024a8a: 4603 mov r3, r0 - 8024a8c: 4619 mov r1, r3 - 8024a8e: 4620 mov r0, r4 - 8024a90: f010 f9a9 bl 8034de6 + 80249ea: 4bb2 ldr r3, [pc, #712] ; (8024cb4 ) + 80249ec: 681b ldr r3, [r3, #0] + 80249ee: f103 0428 add.w r4, r3, #40 ; 0x28 + 80249f2: f7ff f936 bl 8023c62 + 80249f6: 4603 mov r3, r0 + 80249f8: 4619 mov r1, r3 + 80249fa: 4620 mov r0, r4 + 80249fc: f010 f9a9 bl 8034d52 lv_style_set_bg_opa(&styles->bg_color_primary, LV_OPA_COVER); - 8024a94: 4bac ldr r3, [pc, #688] ; (8024d48 ) - 8024a96: 681b ldr r3, [r3, #0] - 8024a98: 3328 adds r3, #40 ; 0x28 - 8024a9a: 21ff movs r1, #255 ; 0xff - 8024a9c: 4618 mov r0, r3 - 8024a9e: f010 f814 bl 8034aca + 8024a00: 4bac ldr r3, [pc, #688] ; (8024cb4 ) + 8024a02: 681b ldr r3, [r3, #0] + 8024a04: 3328 adds r3, #40 ; 0x28 + 8024a06: 21ff movs r1, #255 ; 0xff + 8024a08: 4618 mov r0, r3 + 8024a0a: f010 f814 bl 8034a36 style_init_reset(&styles->bg_color_primary_muted); - 8024aa2: 4ba9 ldr r3, [pc, #676] ; (8024d48 ) - 8024aa4: 681b ldr r3, [r3, #0] - 8024aa6: 3330 adds r3, #48 ; 0x30 - 8024aa8: 4618 mov r0, r3 - 8024aaa: f002 fd53 bl 8027554 + 8024a0e: 4ba9 ldr r3, [pc, #676] ; (8024cb4 ) + 8024a10: 681b ldr r3, [r3, #0] + 8024a12: 3330 adds r3, #48 ; 0x30 + 8024a14: 4618 mov r0, r3 + 8024a16: f002 fd53 bl 80274c0 lv_style_set_bg_color(&styles->bg_color_primary_muted, theme.color_primary); - 8024aae: 4ba6 ldr r3, [pc, #664] ; (8024d48 ) - 8024ab0: 681b ldr r3, [r3, #0] - 8024ab2: 3330 adds r3, #48 ; 0x30 - 8024ab4: 4aa3 ldr r2, [pc, #652] ; (8024d44 ) - 8024ab6: 8a11 ldrh r1, [r2, #16] - 8024ab8: 4618 mov r0, r3 - 8024aba: f00f fff4 bl 8034aa6 + 8024a1a: 4ba6 ldr r3, [pc, #664] ; (8024cb4 ) + 8024a1c: 681b ldr r3, [r3, #0] + 8024a1e: 3330 adds r3, #48 ; 0x30 + 8024a20: 4aa3 ldr r2, [pc, #652] ; (8024cb0 ) + 8024a22: 8a11 ldrh r1, [r2, #16] + 8024a24: 4618 mov r0, r3 + 8024a26: f00f fff4 bl 8034a12 lv_style_set_text_color(&styles->bg_color_primary_muted, theme.color_primary); - 8024abe: 4ba2 ldr r3, [pc, #648] ; (8024d48 ) - 8024ac0: 681b ldr r3, [r3, #0] - 8024ac2: 3330 adds r3, #48 ; 0x30 - 8024ac4: 4a9f ldr r2, [pc, #636] ; (8024d44 ) - 8024ac6: 8a11 ldrh r1, [r2, #16] - 8024ac8: 4618 mov r0, r3 - 8024aca: f010 f98c bl 8034de6 + 8024a2a: 4ba2 ldr r3, [pc, #648] ; (8024cb4 ) + 8024a2c: 681b ldr r3, [r3, #0] + 8024a2e: 3330 adds r3, #48 ; 0x30 + 8024a30: 4a9f ldr r2, [pc, #636] ; (8024cb0 ) + 8024a32: 8a11 ldrh r1, [r2, #16] + 8024a34: 4618 mov r0, r3 + 8024a36: f010 f98c bl 8034d52 lv_style_set_bg_opa(&styles->bg_color_primary_muted, LV_OPA_20); - 8024ace: 4b9e ldr r3, [pc, #632] ; (8024d48 ) - 8024ad0: 681b ldr r3, [r3, #0] - 8024ad2: 3330 adds r3, #48 ; 0x30 - 8024ad4: 2133 movs r1, #51 ; 0x33 - 8024ad6: 4618 mov r0, r3 - 8024ad8: f00f fff7 bl 8034aca + 8024a3a: 4b9e ldr r3, [pc, #632] ; (8024cb4 ) + 8024a3c: 681b ldr r3, [r3, #0] + 8024a3e: 3330 adds r3, #48 ; 0x30 + 8024a40: 2133 movs r1, #51 ; 0x33 + 8024a42: 4618 mov r0, r3 + 8024a44: f00f fff7 bl 8034a36 style_init_reset(&styles->bg_color_secondary); - 8024adc: 4b9a ldr r3, [pc, #616] ; (8024d48 ) - 8024ade: 681b ldr r3, [r3, #0] - 8024ae0: 3338 adds r3, #56 ; 0x38 - 8024ae2: 4618 mov r0, r3 - 8024ae4: f002 fd36 bl 8027554 + 8024a48: 4b9a ldr r3, [pc, #616] ; (8024cb4 ) + 8024a4a: 681b ldr r3, [r3, #0] + 8024a4c: 3338 adds r3, #56 ; 0x38 + 8024a4e: 4618 mov r0, r3 + 8024a50: f002 fd36 bl 80274c0 lv_style_set_bg_color(&styles->bg_color_secondary, theme.color_secondary); - 8024ae8: 4b97 ldr r3, [pc, #604] ; (8024d48 ) - 8024aea: 681b ldr r3, [r3, #0] - 8024aec: 3338 adds r3, #56 ; 0x38 - 8024aee: 4a95 ldr r2, [pc, #596] ; (8024d44 ) - 8024af0: 8a51 ldrh r1, [r2, #18] - 8024af2: 4618 mov r0, r3 - 8024af4: f00f ffd7 bl 8034aa6 + 8024a54: 4b97 ldr r3, [pc, #604] ; (8024cb4 ) + 8024a56: 681b ldr r3, [r3, #0] + 8024a58: 3338 adds r3, #56 ; 0x38 + 8024a5a: 4a95 ldr r2, [pc, #596] ; (8024cb0 ) + 8024a5c: 8a51 ldrh r1, [r2, #18] + 8024a5e: 4618 mov r0, r3 + 8024a60: f00f ffd7 bl 8034a12 lv_style_set_text_color(&styles->bg_color_secondary, lv_color_white()); - 8024af8: 4b93 ldr r3, [pc, #588] ; (8024d48 ) - 8024afa: 681b ldr r3, [r3, #0] - 8024afc: f103 0438 add.w r4, r3, #56 ; 0x38 - 8024b00: f7ff f8f9 bl 8023cf6 - 8024b04: 4603 mov r3, r0 - 8024b06: 4619 mov r1, r3 - 8024b08: 4620 mov r0, r4 - 8024b0a: f010 f96c bl 8034de6 + 8024a64: 4b93 ldr r3, [pc, #588] ; (8024cb4 ) + 8024a66: 681b ldr r3, [r3, #0] + 8024a68: f103 0438 add.w r4, r3, #56 ; 0x38 + 8024a6c: f7ff f8f9 bl 8023c62 + 8024a70: 4603 mov r3, r0 + 8024a72: 4619 mov r1, r3 + 8024a74: 4620 mov r0, r4 + 8024a76: f010 f96c bl 8034d52 lv_style_set_bg_opa(&styles->bg_color_secondary, LV_OPA_COVER); - 8024b0e: 4b8e ldr r3, [pc, #568] ; (8024d48 ) - 8024b10: 681b ldr r3, [r3, #0] - 8024b12: 3338 adds r3, #56 ; 0x38 - 8024b14: 21ff movs r1, #255 ; 0xff - 8024b16: 4618 mov r0, r3 - 8024b18: f00f ffd7 bl 8034aca + 8024a7a: 4b8e ldr r3, [pc, #568] ; (8024cb4 ) + 8024a7c: 681b ldr r3, [r3, #0] + 8024a7e: 3338 adds r3, #56 ; 0x38 + 8024a80: 21ff movs r1, #255 ; 0xff + 8024a82: 4618 mov r0, r3 + 8024a84: f00f ffd7 bl 8034a36 style_init_reset(&styles->bg_color_secondary_muted); - 8024b1c: 4b8a ldr r3, [pc, #552] ; (8024d48 ) - 8024b1e: 681b ldr r3, [r3, #0] - 8024b20: 3340 adds r3, #64 ; 0x40 - 8024b22: 4618 mov r0, r3 - 8024b24: f002 fd16 bl 8027554 + 8024a88: 4b8a ldr r3, [pc, #552] ; (8024cb4 ) + 8024a8a: 681b ldr r3, [r3, #0] + 8024a8c: 3340 adds r3, #64 ; 0x40 + 8024a8e: 4618 mov r0, r3 + 8024a90: f002 fd16 bl 80274c0 lv_style_set_bg_color(&styles->bg_color_secondary_muted, theme.color_secondary); - 8024b28: 4b87 ldr r3, [pc, #540] ; (8024d48 ) - 8024b2a: 681b ldr r3, [r3, #0] - 8024b2c: 3340 adds r3, #64 ; 0x40 - 8024b2e: 4a85 ldr r2, [pc, #532] ; (8024d44 ) - 8024b30: 8a51 ldrh r1, [r2, #18] - 8024b32: 4618 mov r0, r3 - 8024b34: f00f ffb7 bl 8034aa6 + 8024a94: 4b87 ldr r3, [pc, #540] ; (8024cb4 ) + 8024a96: 681b ldr r3, [r3, #0] + 8024a98: 3340 adds r3, #64 ; 0x40 + 8024a9a: 4a85 ldr r2, [pc, #532] ; (8024cb0 ) + 8024a9c: 8a51 ldrh r1, [r2, #18] + 8024a9e: 4618 mov r0, r3 + 8024aa0: f00f ffb7 bl 8034a12 lv_style_set_text_color(&styles->bg_color_secondary_muted, theme.color_secondary); - 8024b38: 4b83 ldr r3, [pc, #524] ; (8024d48 ) - 8024b3a: 681b ldr r3, [r3, #0] - 8024b3c: 3340 adds r3, #64 ; 0x40 - 8024b3e: 4a81 ldr r2, [pc, #516] ; (8024d44 ) - 8024b40: 8a51 ldrh r1, [r2, #18] - 8024b42: 4618 mov r0, r3 - 8024b44: f010 f94f bl 8034de6 + 8024aa4: 4b83 ldr r3, [pc, #524] ; (8024cb4 ) + 8024aa6: 681b ldr r3, [r3, #0] + 8024aa8: 3340 adds r3, #64 ; 0x40 + 8024aaa: 4a81 ldr r2, [pc, #516] ; (8024cb0 ) + 8024aac: 8a51 ldrh r1, [r2, #18] + 8024aae: 4618 mov r0, r3 + 8024ab0: f010 f94f bl 8034d52 lv_style_set_bg_opa(&styles->bg_color_secondary_muted, LV_OPA_20); - 8024b48: 4b7f ldr r3, [pc, #508] ; (8024d48 ) - 8024b4a: 681b ldr r3, [r3, #0] - 8024b4c: 3340 adds r3, #64 ; 0x40 - 8024b4e: 2133 movs r1, #51 ; 0x33 - 8024b50: 4618 mov r0, r3 - 8024b52: f00f ffba bl 8034aca + 8024ab4: 4b7f ldr r3, [pc, #508] ; (8024cb4 ) + 8024ab6: 681b ldr r3, [r3, #0] + 8024ab8: 3340 adds r3, #64 ; 0x40 + 8024aba: 2133 movs r1, #51 ; 0x33 + 8024abc: 4618 mov r0, r3 + 8024abe: f00f ffba bl 8034a36 style_init_reset(&styles->bg_color_grey); - 8024b56: 4b7c ldr r3, [pc, #496] ; (8024d48 ) - 8024b58: 681b ldr r3, [r3, #0] - 8024b5a: 3348 adds r3, #72 ; 0x48 - 8024b5c: 4618 mov r0, r3 - 8024b5e: f002 fcf9 bl 8027554 + 8024ac2: 4b7c ldr r3, [pc, #496] ; (8024cb4 ) + 8024ac4: 681b ldr r3, [r3, #0] + 8024ac6: 3348 adds r3, #72 ; 0x48 + 8024ac8: 4618 mov r0, r3 + 8024aca: f002 fcf9 bl 80274c0 lv_style_set_bg_color(&styles->bg_color_grey, color_grey); - 8024b62: 4b79 ldr r3, [pc, #484] ; (8024d48 ) - 8024b64: 681b ldr r3, [r3, #0] - 8024b66: 3348 adds r3, #72 ; 0x48 - 8024b68: 4a78 ldr r2, [pc, #480] ; (8024d4c ) - 8024b6a: 8811 ldrh r1, [r2, #0] - 8024b6c: 4618 mov r0, r3 - 8024b6e: f00f ff9a bl 8034aa6 + 8024ace: 4b79 ldr r3, [pc, #484] ; (8024cb4 ) + 8024ad0: 681b ldr r3, [r3, #0] + 8024ad2: 3348 adds r3, #72 ; 0x48 + 8024ad4: 4a78 ldr r2, [pc, #480] ; (8024cb8 ) + 8024ad6: 8811 ldrh r1, [r2, #0] + 8024ad8: 4618 mov r0, r3 + 8024ada: f00f ff9a bl 8034a12 lv_style_set_bg_opa(&styles->bg_color_grey, LV_OPA_COVER); - 8024b72: 4b75 ldr r3, [pc, #468] ; (8024d48 ) - 8024b74: 681b ldr r3, [r3, #0] - 8024b76: 3348 adds r3, #72 ; 0x48 - 8024b78: 21ff movs r1, #255 ; 0xff - 8024b7a: 4618 mov r0, r3 - 8024b7c: f00f ffa5 bl 8034aca + 8024ade: 4b75 ldr r3, [pc, #468] ; (8024cb4 ) + 8024ae0: 681b ldr r3, [r3, #0] + 8024ae2: 3348 adds r3, #72 ; 0x48 + 8024ae4: 21ff movs r1, #255 ; 0xff + 8024ae6: 4618 mov r0, r3 + 8024ae8: f00f ffa5 bl 8034a36 lv_style_set_text_color(&styles->bg_color_grey, color_text); - 8024b80: 4b71 ldr r3, [pc, #452] ; (8024d48 ) - 8024b82: 681b ldr r3, [r3, #0] - 8024b84: 3348 adds r3, #72 ; 0x48 - 8024b86: 4a72 ldr r2, [pc, #456] ; (8024d50 ) - 8024b88: 8811 ldrh r1, [r2, #0] - 8024b8a: 4618 mov r0, r3 - 8024b8c: f010 f92b bl 8034de6 + 8024aec: 4b71 ldr r3, [pc, #452] ; (8024cb4 ) + 8024aee: 681b ldr r3, [r3, #0] + 8024af0: 3348 adds r3, #72 ; 0x48 + 8024af2: 4a72 ldr r2, [pc, #456] ; (8024cbc ) + 8024af4: 8811 ldrh r1, [r2, #0] + 8024af6: 4618 mov r0, r3 + 8024af8: f010 f92b bl 8034d52 style_init_reset(&styles->bg_color_white); - 8024b90: 4b6d ldr r3, [pc, #436] ; (8024d48 ) - 8024b92: 681b ldr r3, [r3, #0] - 8024b94: 3350 adds r3, #80 ; 0x50 - 8024b96: 4618 mov r0, r3 - 8024b98: f002 fcdc bl 8027554 + 8024afc: 4b6d ldr r3, [pc, #436] ; (8024cb4 ) + 8024afe: 681b ldr r3, [r3, #0] + 8024b00: 3350 adds r3, #80 ; 0x50 + 8024b02: 4618 mov r0, r3 + 8024b04: f002 fcdc bl 80274c0 lv_style_set_bg_color(&styles->bg_color_white, color_card); - 8024b9c: 4b6a ldr r3, [pc, #424] ; (8024d48 ) - 8024b9e: 681b ldr r3, [r3, #0] - 8024ba0: 3350 adds r3, #80 ; 0x50 - 8024ba2: 4a6c ldr r2, [pc, #432] ; (8024d54 ) - 8024ba4: 8811 ldrh r1, [r2, #0] - 8024ba6: 4618 mov r0, r3 - 8024ba8: f00f ff7d bl 8034aa6 + 8024b08: 4b6a ldr r3, [pc, #424] ; (8024cb4 ) + 8024b0a: 681b ldr r3, [r3, #0] + 8024b0c: 3350 adds r3, #80 ; 0x50 + 8024b0e: 4a6c ldr r2, [pc, #432] ; (8024cc0 ) + 8024b10: 8811 ldrh r1, [r2, #0] + 8024b12: 4618 mov r0, r3 + 8024b14: f00f ff7d bl 8034a12 lv_style_set_bg_opa(&styles->bg_color_white, LV_OPA_COVER); - 8024bac: 4b66 ldr r3, [pc, #408] ; (8024d48 ) - 8024bae: 681b ldr r3, [r3, #0] - 8024bb0: 3350 adds r3, #80 ; 0x50 - 8024bb2: 21ff movs r1, #255 ; 0xff - 8024bb4: 4618 mov r0, r3 - 8024bb6: f00f ff88 bl 8034aca + 8024b18: 4b66 ldr r3, [pc, #408] ; (8024cb4 ) + 8024b1a: 681b ldr r3, [r3, #0] + 8024b1c: 3350 adds r3, #80 ; 0x50 + 8024b1e: 21ff movs r1, #255 ; 0xff + 8024b20: 4618 mov r0, r3 + 8024b22: f00f ff88 bl 8034a36 lv_style_set_text_color(&styles->bg_color_white, color_text); - 8024bba: 4b63 ldr r3, [pc, #396] ; (8024d48 ) - 8024bbc: 681b ldr r3, [r3, #0] - 8024bbe: 3350 adds r3, #80 ; 0x50 - 8024bc0: 4a63 ldr r2, [pc, #396] ; (8024d50 ) - 8024bc2: 8811 ldrh r1, [r2, #0] - 8024bc4: 4618 mov r0, r3 - 8024bc6: f010 f90e bl 8034de6 + 8024b26: 4b63 ldr r3, [pc, #396] ; (8024cb4 ) + 8024b28: 681b ldr r3, [r3, #0] + 8024b2a: 3350 adds r3, #80 ; 0x50 + 8024b2c: 4a63 ldr r2, [pc, #396] ; (8024cbc ) + 8024b2e: 8811 ldrh r1, [r2, #0] + 8024b30: 4618 mov r0, r3 + 8024b32: f010 f90e bl 8034d52 style_init_reset(&styles->circle); - 8024bca: 4b5f ldr r3, [pc, #380] ; (8024d48 ) - 8024bcc: 681b ldr r3, [r3, #0] - 8024bce: 33b0 adds r3, #176 ; 0xb0 - 8024bd0: 4618 mov r0, r3 - 8024bd2: f002 fcbf bl 8027554 + 8024b36: 4b5f ldr r3, [pc, #380] ; (8024cb4 ) + 8024b38: 681b ldr r3, [r3, #0] + 8024b3a: 33b0 adds r3, #176 ; 0xb0 + 8024b3c: 4618 mov r0, r3 + 8024b3e: f002 fcbf bl 80274c0 lv_style_set_radius(&styles->circle, LV_RADIUS_CIRCLE); - 8024bd6: 4b5c ldr r3, [pc, #368] ; (8024d48 ) - 8024bd8: 681b ldr r3, [r3, #0] - 8024bda: 33b0 adds r3, #176 ; 0xb0 - 8024bdc: f647 71ff movw r1, #32767 ; 0x7fff - 8024be0: 4618 mov r0, r3 - 8024be2: f010 f949 bl 8034e78 + 8024b42: 4b5c ldr r3, [pc, #368] ; (8024cb4 ) + 8024b44: 681b ldr r3, [r3, #0] + 8024b46: 33b0 adds r3, #176 ; 0xb0 + 8024b48: f647 71ff movw r1, #32767 ; 0x7fff + 8024b4c: 4618 mov r0, r3 + 8024b4e: f010 f949 bl 8034de4 style_init_reset(&styles->no_radius); - 8024be6: 4b58 ldr r3, [pc, #352] ; (8024d48 ) - 8024be8: 681b ldr r3, [r3, #0] - 8024bea: 33b8 adds r3, #184 ; 0xb8 - 8024bec: 4618 mov r0, r3 - 8024bee: f002 fcb1 bl 8027554 + 8024b52: 4b58 ldr r3, [pc, #352] ; (8024cb4 ) + 8024b54: 681b ldr r3, [r3, #0] + 8024b56: 33b8 adds r3, #184 ; 0xb8 + 8024b58: 4618 mov r0, r3 + 8024b5a: f002 fcb1 bl 80274c0 lv_style_set_radius(&styles->no_radius, 0); - 8024bf2: 4b55 ldr r3, [pc, #340] ; (8024d48 ) - 8024bf4: 681b ldr r3, [r3, #0] - 8024bf6: 33b8 adds r3, #184 ; 0xb8 - 8024bf8: 2100 movs r1, #0 - 8024bfa: 4618 mov r0, r3 - 8024bfc: f010 f93c bl 8034e78 + 8024b5e: 4b55 ldr r3, [pc, #340] ; (8024cb4 ) + 8024b60: 681b ldr r3, [r3, #0] + 8024b62: 33b8 adds r3, #184 ; 0xb8 + 8024b64: 2100 movs r1, #0 + 8024b66: 4618 mov r0, r3 + 8024b68: f010 f93c bl 8034de4 #if LV_THEME_DEFAULT_GROW style_init_reset(&styles->grow); - 8024c00: 4b51 ldr r3, [pc, #324] ; (8024d48 ) - 8024c02: 681b ldr r3, [r3, #0] - 8024c04: 33c8 adds r3, #200 ; 0xc8 - 8024c06: 4618 mov r0, r3 - 8024c08: f002 fca4 bl 8027554 + 8024b6c: 4b51 ldr r3, [pc, #324] ; (8024cb4 ) + 8024b6e: 681b ldr r3, [r3, #0] + 8024b70: 33c8 adds r3, #200 ; 0xc8 + 8024b72: 4618 mov r0, r3 + 8024b74: f002 fca4 bl 80274c0 lv_style_set_transform_width(&styles->grow, lv_disp_dpx(theme.disp, 3)); - 8024c0c: 4b4e ldr r3, [pc, #312] ; (8024d48 ) - 8024c0e: 681b ldr r3, [r3, #0] - 8024c10: f103 04c8 add.w r4, r3, #200 ; 0xc8 - 8024c14: 4b4b ldr r3, [pc, #300] ; (8024d44 ) - 8024c16: 68db ldr r3, [r3, #12] - 8024c18: 2103 movs r1, #3 - 8024c1a: 4618 mov r0, r3 - 8024c1c: f7ff f8f0 bl 8023e00 - 8024c20: 4603 mov r3, r0 - 8024c22: 4619 mov r1, r3 - 8024c24: 4620 mov r0, r4 - 8024c26: f00f fea6 bl 8034976 + 8024b78: 4b4e ldr r3, [pc, #312] ; (8024cb4 ) + 8024b7a: 681b ldr r3, [r3, #0] + 8024b7c: f103 04c8 add.w r4, r3, #200 ; 0xc8 + 8024b80: 4b4b ldr r3, [pc, #300] ; (8024cb0 ) + 8024b82: 68db ldr r3, [r3, #12] + 8024b84: 2103 movs r1, #3 + 8024b86: 4618 mov r0, r3 + 8024b88: f7ff f8f0 bl 8023d6c + 8024b8c: 4603 mov r3, r0 + 8024b8e: 4619 mov r1, r3 + 8024b90: 4620 mov r0, r4 + 8024b92: f00f fea6 bl 80348e2 lv_style_set_transform_height(&styles->grow, lv_disp_dpx(theme.disp, 3)); - 8024c2a: 4b47 ldr r3, [pc, #284] ; (8024d48 ) - 8024c2c: 681b ldr r3, [r3, #0] - 8024c2e: f103 04c8 add.w r4, r3, #200 ; 0xc8 - 8024c32: 4b44 ldr r3, [pc, #272] ; (8024d44 ) - 8024c34: 68db ldr r3, [r3, #12] - 8024c36: 2103 movs r1, #3 - 8024c38: 4618 mov r0, r3 - 8024c3a: f7ff f8e1 bl 8023e00 - 8024c3e: 4603 mov r3, r0 - 8024c40: 4619 mov r1, r3 - 8024c42: 4620 mov r0, r4 - 8024c44: f00f feaa bl 803499c + 8024b96: 4b47 ldr r3, [pc, #284] ; (8024cb4 ) + 8024b98: 681b ldr r3, [r3, #0] + 8024b9a: f103 04c8 add.w r4, r3, #200 ; 0xc8 + 8024b9e: 4b44 ldr r3, [pc, #272] ; (8024cb0 ) + 8024ba0: 68db ldr r3, [r3, #12] + 8024ba2: 2103 movs r1, #3 + 8024ba4: 4618 mov r0, r3 + 8024ba6: f7ff f8e1 bl 8023d6c + 8024baa: 4603 mov r3, r0 + 8024bac: 4619 mov r1, r3 + 8024bae: 4620 mov r0, r4 + 8024bb0: f00f feaa bl 8034908 #endif style_init_reset(&styles->knob); - 8024c48: 4b3f ldr r3, [pc, #252] ; (8024d48 ) - 8024c4a: 681b ldr r3, [r3, #0] - 8024c4c: 33f0 adds r3, #240 ; 0xf0 - 8024c4e: 4618 mov r0, r3 - 8024c50: f002 fc80 bl 8027554 + 8024bb4: 4b3f ldr r3, [pc, #252] ; (8024cb4 ) + 8024bb6: 681b ldr r3, [r3, #0] + 8024bb8: 33f0 adds r3, #240 ; 0xf0 + 8024bba: 4618 mov r0, r3 + 8024bbc: f002 fc80 bl 80274c0 lv_style_set_bg_color(&styles->knob, theme.color_primary); - 8024c54: 4b3c ldr r3, [pc, #240] ; (8024d48 ) - 8024c56: 681b ldr r3, [r3, #0] - 8024c58: 33f0 adds r3, #240 ; 0xf0 - 8024c5a: 4a3a ldr r2, [pc, #232] ; (8024d44 ) - 8024c5c: 8a11 ldrh r1, [r2, #16] - 8024c5e: 4618 mov r0, r3 - 8024c60: f00f ff21 bl 8034aa6 + 8024bc0: 4b3c ldr r3, [pc, #240] ; (8024cb4 ) + 8024bc2: 681b ldr r3, [r3, #0] + 8024bc4: 33f0 adds r3, #240 ; 0xf0 + 8024bc6: 4a3a ldr r2, [pc, #232] ; (8024cb0 ) + 8024bc8: 8a11 ldrh r1, [r2, #16] + 8024bca: 4618 mov r0, r3 + 8024bcc: f00f ff21 bl 8034a12 lv_style_set_bg_opa(&styles->knob, LV_OPA_COVER); - 8024c64: 4b38 ldr r3, [pc, #224] ; (8024d48 ) - 8024c66: 681b ldr r3, [r3, #0] - 8024c68: 33f0 adds r3, #240 ; 0xf0 - 8024c6a: 21ff movs r1, #255 ; 0xff - 8024c6c: 4618 mov r0, r3 - 8024c6e: f00f ff2c bl 8034aca + 8024bd0: 4b38 ldr r3, [pc, #224] ; (8024cb4 ) + 8024bd2: 681b ldr r3, [r3, #0] + 8024bd4: 33f0 adds r3, #240 ; 0xf0 + 8024bd6: 21ff movs r1, #255 ; 0xff + 8024bd8: 4618 mov r0, r3 + 8024bda: f00f ff2c bl 8034a36 lv_style_set_pad_all(&styles->knob, lv_disp_dpx(theme.disp, 6)); - 8024c72: 4b35 ldr r3, [pc, #212] ; (8024d48 ) - 8024c74: 681b ldr r3, [r3, #0] - 8024c76: f103 04f0 add.w r4, r3, #240 ; 0xf0 - 8024c7a: 4b32 ldr r3, [pc, #200] ; (8024d44 ) - 8024c7c: 68db ldr r3, [r3, #12] - 8024c7e: 2106 movs r1, #6 - 8024c80: 4618 mov r0, r3 - 8024c82: f7ff f8bd bl 8023e00 - 8024c86: 4603 mov r3, r0 - 8024c88: 4619 mov r1, r3 - 8024c8a: 4620 mov r0, r4 - 8024c8c: f7ff f853 bl 8023d36 + 8024bde: 4b35 ldr r3, [pc, #212] ; (8024cb4 ) + 8024be0: 681b ldr r3, [r3, #0] + 8024be2: f103 04f0 add.w r4, r3, #240 ; 0xf0 + 8024be6: 4b32 ldr r3, [pc, #200] ; (8024cb0 ) + 8024be8: 68db ldr r3, [r3, #12] + 8024bea: 2106 movs r1, #6 + 8024bec: 4618 mov r0, r3 + 8024bee: f7ff f8bd bl 8023d6c + 8024bf2: 4603 mov r3, r0 + 8024bf4: 4619 mov r1, r3 + 8024bf6: 4620 mov r0, r4 + 8024bf8: f7ff f853 bl 8023ca2 lv_style_set_radius(&styles->knob, LV_RADIUS_CIRCLE); - 8024c90: 4b2d ldr r3, [pc, #180] ; (8024d48 ) - 8024c92: 681b ldr r3, [r3, #0] - 8024c94: 33f0 adds r3, #240 ; 0xf0 - 8024c96: f647 71ff movw r1, #32767 ; 0x7fff - 8024c9a: 4618 mov r0, r3 - 8024c9c: f010 f8ec bl 8034e78 + 8024bfc: 4b2d ldr r3, [pc, #180] ; (8024cb4 ) + 8024bfe: 681b ldr r3, [r3, #0] + 8024c00: 33f0 adds r3, #240 ; 0xf0 + 8024c02: f647 71ff movw r1, #32767 ; 0x7fff + 8024c06: 4618 mov r0, r3 + 8024c08: f010 f8ec bl 8034de4 style_init_reset(&styles->anim); - 8024ca0: 4b29 ldr r3, [pc, #164] ; (8024d48 ) - 8024ca2: 681b ldr r3, [r3, #0] - 8024ca4: 33e0 adds r3, #224 ; 0xe0 - 8024ca6: 4618 mov r0, r3 - 8024ca8: f002 fc54 bl 8027554 + 8024c0c: 4b29 ldr r3, [pc, #164] ; (8024cb4 ) + 8024c0e: 681b ldr r3, [r3, #0] + 8024c10: 33e0 adds r3, #224 ; 0xe0 + 8024c12: 4618 mov r0, r3 + 8024c14: f002 fc54 bl 80274c0 lv_style_set_anim_time(&styles->anim, 200); - 8024cac: 4b26 ldr r3, [pc, #152] ; (8024d48 ) - 8024cae: 681b ldr r3, [r3, #0] - 8024cb0: 33e0 adds r3, #224 ; 0xe0 - 8024cb2: 21c8 movs r1, #200 ; 0xc8 - 8024cb4: 4618 mov r0, r3 - 8024cb6: f010 f923 bl 8034f00 + 8024c18: 4b26 ldr r3, [pc, #152] ; (8024cb4 ) + 8024c1a: 681b ldr r3, [r3, #0] + 8024c1c: 33e0 adds r3, #224 ; 0xe0 + 8024c1e: 21c8 movs r1, #200 ; 0xc8 + 8024c20: 4618 mov r0, r3 + 8024c22: f010 f923 bl 8034e6c style_init_reset(&styles->anim_fast); - 8024cba: 4b23 ldr r3, [pc, #140] ; (8024d48 ) - 8024cbc: 681b ldr r3, [r3, #0] - 8024cbe: 33e8 adds r3, #232 ; 0xe8 - 8024cc0: 4618 mov r0, r3 - 8024cc2: f002 fc47 bl 8027554 + 8024c26: 4b23 ldr r3, [pc, #140] ; (8024cb4 ) + 8024c28: 681b ldr r3, [r3, #0] + 8024c2a: 33e8 adds r3, #232 ; 0xe8 + 8024c2c: 4618 mov r0, r3 + 8024c2e: f002 fc47 bl 80274c0 lv_style_set_anim_time(&styles->anim_fast, 120); - 8024cc6: 4b20 ldr r3, [pc, #128] ; (8024d48 ) - 8024cc8: 681b ldr r3, [r3, #0] - 8024cca: 33e8 adds r3, #232 ; 0xe8 - 8024ccc: 2178 movs r1, #120 ; 0x78 - 8024cce: 4618 mov r0, r3 - 8024cd0: f010 f916 bl 8034f00 + 8024c32: 4b20 ldr r3, [pc, #128] ; (8024cb4 ) + 8024c34: 681b ldr r3, [r3, #0] + 8024c36: 33e8 adds r3, #232 ; 0xe8 + 8024c38: 2178 movs r1, #120 ; 0x78 + 8024c3a: 4618 mov r0, r3 + 8024c3c: f010 f916 bl 8034e6c #if LV_USE_ARC style_init_reset(&styles->arc_indic); - 8024cd4: 4b1c ldr r3, [pc, #112] ; (8024d48 ) - 8024cd6: 681b ldr r3, [r3, #0] - 8024cd8: f503 7380 add.w r3, r3, #256 ; 0x100 - 8024cdc: 4618 mov r0, r3 - 8024cde: f002 fc39 bl 8027554 + 8024c40: 4b1c ldr r3, [pc, #112] ; (8024cb4 ) + 8024c42: 681b ldr r3, [r3, #0] + 8024c44: f503 7380 add.w r3, r3, #256 ; 0x100 + 8024c48: 4618 mov r0, r3 + 8024c4a: f002 fc39 bl 80274c0 lv_style_set_arc_color(&styles->arc_indic, color_grey); - 8024ce2: 4b19 ldr r3, [pc, #100] ; (8024d48 ) - 8024ce4: 681b ldr r3, [r3, #0] - 8024ce6: f503 7380 add.w r3, r3, #256 ; 0x100 - 8024cea: 4a18 ldr r2, [pc, #96] ; (8024d4c ) - 8024cec: 8811 ldrh r1, [r2, #0] - 8024cee: 4618 mov r0, r3 - 8024cf0: f010 f867 bl 8034dc2 + 8024c4e: 4b19 ldr r3, [pc, #100] ; (8024cb4 ) + 8024c50: 681b ldr r3, [r3, #0] + 8024c52: f503 7380 add.w r3, r3, #256 ; 0x100 + 8024c56: 4a18 ldr r2, [pc, #96] ; (8024cb8 ) + 8024c58: 8811 ldrh r1, [r2, #0] + 8024c5a: 4618 mov r0, r3 + 8024c5c: f010 f867 bl 8034d2e lv_style_set_arc_width(&styles->arc_indic, lv_disp_dpx(theme.disp, 15)); - 8024cf4: 4b14 ldr r3, [pc, #80] ; (8024d48 ) - 8024cf6: 681b ldr r3, [r3, #0] - 8024cf8: f503 7480 add.w r4, r3, #256 ; 0x100 - 8024cfc: 4b11 ldr r3, [pc, #68] ; (8024d44 ) - 8024cfe: 68db ldr r3, [r3, #12] - 8024d00: 210f movs r1, #15 - 8024d02: 4618 mov r0, r3 - 8024d04: f7ff f87c bl 8023e00 - 8024d08: 4603 mov r3, r0 - 8024d0a: 4619 mov r1, r3 - 8024d0c: 4620 mov r0, r4 - 8024d0e: f010 f834 bl 8034d7a + 8024c60: 4b14 ldr r3, [pc, #80] ; (8024cb4 ) + 8024c62: 681b ldr r3, [r3, #0] + 8024c64: f503 7480 add.w r4, r3, #256 ; 0x100 + 8024c68: 4b11 ldr r3, [pc, #68] ; (8024cb0 ) + 8024c6a: 68db ldr r3, [r3, #12] + 8024c6c: 210f movs r1, #15 + 8024c6e: 4618 mov r0, r3 + 8024c70: f7ff f87c bl 8023d6c + 8024c74: 4603 mov r3, r0 + 8024c76: 4619 mov r1, r3 + 8024c78: 4620 mov r0, r4 + 8024c7a: f010 f834 bl 8034ce6 lv_style_set_arc_rounded(&styles->arc_indic, true); - 8024d12: 4b0d ldr r3, [pc, #52] ; (8024d48 ) - 8024d14: 681b ldr r3, [r3, #0] - 8024d16: f503 7380 add.w r3, r3, #256 ; 0x100 - 8024d1a: 2101 movs r1, #1 - 8024d1c: 4618 mov r0, r3 - 8024d1e: f010 f83f bl 8034da0 + 8024c7e: 4b0d ldr r3, [pc, #52] ; (8024cb4 ) + 8024c80: 681b ldr r3, [r3, #0] + 8024c82: f503 7380 add.w r3, r3, #256 ; 0x100 + 8024c86: 2101 movs r1, #1 + 8024c88: 4618 mov r0, r3 + 8024c8a: f010 f83f bl 8034d0c style_init_reset(&styles->arc_indic_primary); - 8024d22: 4b09 ldr r3, [pc, #36] ; (8024d48 ) - 8024d24: 681b ldr r3, [r3, #0] - 8024d26: f503 7384 add.w r3, r3, #264 ; 0x108 - 8024d2a: 4618 mov r0, r3 - 8024d2c: f002 fc12 bl 8027554 + 8024c8e: 4b09 ldr r3, [pc, #36] ; (8024cb4 ) + 8024c90: 681b ldr r3, [r3, #0] + 8024c92: f503 7384 add.w r3, r3, #264 ; 0x108 + 8024c96: 4618 mov r0, r3 + 8024c98: f002 fc12 bl 80274c0 lv_style_set_arc_color(&styles->arc_indic_primary, theme.color_primary); - 8024d30: 4b05 ldr r3, [pc, #20] ; (8024d48 ) - 8024d32: 681b ldr r3, [r3, #0] - 8024d34: f503 7384 add.w r3, r3, #264 ; 0x108 - 8024d38: 4a02 ldr r2, [pc, #8] ; (8024d44 ) - 8024d3a: 8a11 ldrh r1, [r2, #16] - 8024d3c: 4618 mov r0, r3 - 8024d3e: f010 f840 bl 8034dc2 - 8024d42: e009 b.n 8024d58 - 8024d44: 20001c50 .word 0x20001c50 - 8024d48: 20001c4c .word 0x20001c4c - 8024d4c: 20001c84 .word 0x20001c84 - 8024d50: 20001c7c .word 0x20001c7c - 8024d54: 20001c80 .word 0x20001c80 + 8024c9c: 4b05 ldr r3, [pc, #20] ; (8024cb4 ) + 8024c9e: 681b ldr r3, [r3, #0] + 8024ca0: f503 7384 add.w r3, r3, #264 ; 0x108 + 8024ca4: 4a02 ldr r2, [pc, #8] ; (8024cb0 ) + 8024ca6: 8a11 ldrh r1, [r2, #16] + 8024ca8: 4618 mov r0, r3 + 8024caa: f010 f840 bl 8034d2e + 8024cae: e009 b.n 8024cc4 + 8024cb0: 20001c50 .word 0x20001c50 + 8024cb4: 20001c4c .word 0x20001c4c + 8024cb8: 20001c84 .word 0x20001c84 + 8024cbc: 20001c7c .word 0x20001c7c + 8024cc0: 20001c80 .word 0x20001c80 #endif #if LV_USE_DROPDOWN style_init_reset(&styles->dropdown_list); - 8024d58: 4b31 ldr r3, [pc, #196] ; (8024e20 ) - 8024d5a: 681b ldr r3, [r3, #0] - 8024d5c: f503 7398 add.w r3, r3, #304 ; 0x130 - 8024d60: 4618 mov r0, r3 - 8024d62: f002 fbf7 bl 8027554 + 8024cc4: 4b31 ldr r3, [pc, #196] ; (8024d8c ) + 8024cc6: 681b ldr r3, [r3, #0] + 8024cc8: f503 7398 add.w r3, r3, #304 ; 0x130 + 8024ccc: 4618 mov r0, r3 + 8024cce: f002 fbf7 bl 80274c0 lv_style_set_max_height(&styles->dropdown_list, LV_DPI_DEF * 2); - 8024d66: 4b2e ldr r3, [pc, #184] ; (8024e20 ) - 8024d68: 681b ldr r3, [r3, #0] - 8024d6a: f503 7398 add.w r3, r3, #304 ; 0x130 - 8024d6e: f44f 7182 mov.w r1, #260 ; 0x104 - 8024d72: 4618 mov r0, r3 - 8024d74: f00f fdec bl 8034950 + 8024cd2: 4b2e ldr r3, [pc, #184] ; (8024d8c ) + 8024cd4: 681b ldr r3, [r3, #0] + 8024cd6: f503 7398 add.w r3, r3, #304 ; 0x130 + 8024cda: f44f 7182 mov.w r1, #260 ; 0x104 + 8024cde: 4618 mov r0, r3 + 8024ce0: f00f fdec bl 80348bc #endif #if LV_USE_CHECKBOX style_init_reset(&styles->cb_marker); - 8024d78: 4b29 ldr r3, [pc, #164] ; (8024e20 ) - 8024d7a: 681b ldr r3, [r3, #0] - 8024d7c: f503 739c add.w r3, r3, #312 ; 0x138 - 8024d80: 4618 mov r0, r3 - 8024d82: f002 fbe7 bl 8027554 + 8024ce4: 4b29 ldr r3, [pc, #164] ; (8024d8c ) + 8024ce6: 681b ldr r3, [r3, #0] + 8024ce8: f503 739c add.w r3, r3, #312 ; 0x138 + 8024cec: 4618 mov r0, r3 + 8024cee: f002 fbe7 bl 80274c0 lv_style_set_pad_all(&styles->cb_marker, lv_disp_dpx(theme.disp, 3)); - 8024d86: 4b26 ldr r3, [pc, #152] ; (8024e20 ) - 8024d88: 681b ldr r3, [r3, #0] - 8024d8a: f503 749c add.w r4, r3, #312 ; 0x138 - 8024d8e: 4b25 ldr r3, [pc, #148] ; (8024e24 ) - 8024d90: 68db ldr r3, [r3, #12] - 8024d92: 2103 movs r1, #3 - 8024d94: 4618 mov r0, r3 - 8024d96: f7ff f833 bl 8023e00 - 8024d9a: 4603 mov r3, r0 - 8024d9c: 4619 mov r1, r3 - 8024d9e: 4620 mov r0, r4 - 8024da0: f7fe ffc9 bl 8023d36 + 8024cf2: 4b26 ldr r3, [pc, #152] ; (8024d8c ) + 8024cf4: 681b ldr r3, [r3, #0] + 8024cf6: f503 749c add.w r4, r3, #312 ; 0x138 + 8024cfa: 4b25 ldr r3, [pc, #148] ; (8024d90 ) + 8024cfc: 68db ldr r3, [r3, #12] + 8024cfe: 2103 movs r1, #3 + 8024d00: 4618 mov r0, r3 + 8024d02: f7ff f833 bl 8023d6c + 8024d06: 4603 mov r3, r0 + 8024d08: 4619 mov r1, r3 + 8024d0a: 4620 mov r0, r4 + 8024d0c: f7fe ffc9 bl 8023ca2 lv_style_set_border_width(&styles->cb_marker, BORDER_WIDTH); - 8024da4: 4b1e ldr r3, [pc, #120] ; (8024e20 ) - 8024da6: 681b ldr r3, [r3, #0] - 8024da8: f503 749c add.w r4, r3, #312 ; 0x138 - 8024dac: 4b1d ldr r3, [pc, #116] ; (8024e24 ) - 8024dae: 68db ldr r3, [r3, #12] - 8024db0: 2102 movs r1, #2 - 8024db2: 4618 mov r0, r3 - 8024db4: f7ff f824 bl 8023e00 - 8024db8: 4603 mov r3, r0 - 8024dba: 4619 mov r1, r3 - 8024dbc: 4620 mov r0, r4 - 8024dbe: f00f fedb bl 8034b78 + 8024d10: 4b1e ldr r3, [pc, #120] ; (8024d8c ) + 8024d12: 681b ldr r3, [r3, #0] + 8024d14: f503 749c add.w r4, r3, #312 ; 0x138 + 8024d18: 4b1d ldr r3, [pc, #116] ; (8024d90 ) + 8024d1a: 68db ldr r3, [r3, #12] + 8024d1c: 2102 movs r1, #2 + 8024d1e: 4618 mov r0, r3 + 8024d20: f7ff f824 bl 8023d6c + 8024d24: 4603 mov r3, r0 + 8024d26: 4619 mov r1, r3 + 8024d28: 4620 mov r0, r4 + 8024d2a: f00f fedb bl 8034ae4 lv_style_set_border_color(&styles->cb_marker, theme.color_primary); - 8024dc2: 4b17 ldr r3, [pc, #92] ; (8024e20 ) - 8024dc4: 681b ldr r3, [r3, #0] - 8024dc6: f503 739c add.w r3, r3, #312 ; 0x138 - 8024dca: 4a16 ldr r2, [pc, #88] ; (8024e24 ) - 8024dcc: 8a11 ldrh r1, [r2, #16] - 8024dce: 4618 mov r0, r3 - 8024dd0: f00f feaf bl 8034b32 + 8024d2e: 4b17 ldr r3, [pc, #92] ; (8024d8c ) + 8024d30: 681b ldr r3, [r3, #0] + 8024d32: f503 739c add.w r3, r3, #312 ; 0x138 + 8024d36: 4a16 ldr r2, [pc, #88] ; (8024d90 ) + 8024d38: 8a11 ldrh r1, [r2, #16] + 8024d3a: 4618 mov r0, r3 + 8024d3c: f00f feaf bl 8034a9e lv_style_set_bg_color(&styles->cb_marker, color_card); - 8024dd4: 4b12 ldr r3, [pc, #72] ; (8024e20 ) - 8024dd6: 681b ldr r3, [r3, #0] - 8024dd8: f503 739c add.w r3, r3, #312 ; 0x138 - 8024ddc: 4a12 ldr r2, [pc, #72] ; (8024e28 ) - 8024dde: 8811 ldrh r1, [r2, #0] - 8024de0: 4618 mov r0, r3 - 8024de2: f00f fe60 bl 8034aa6 + 8024d40: 4b12 ldr r3, [pc, #72] ; (8024d8c ) + 8024d42: 681b ldr r3, [r3, #0] + 8024d44: f503 739c add.w r3, r3, #312 ; 0x138 + 8024d48: 4a12 ldr r2, [pc, #72] ; (8024d94 ) + 8024d4a: 8811 ldrh r1, [r2, #0] + 8024d4c: 4618 mov r0, r3 + 8024d4e: f00f fe60 bl 8034a12 lv_style_set_bg_opa(&styles->cb_marker, LV_OPA_COVER); - 8024de6: 4b0e ldr r3, [pc, #56] ; (8024e20 ) - 8024de8: 681b ldr r3, [r3, #0] - 8024dea: f503 739c add.w r3, r3, #312 ; 0x138 - 8024dee: 21ff movs r1, #255 ; 0xff - 8024df0: 4618 mov r0, r3 - 8024df2: f00f fe6a bl 8034aca + 8024d52: 4b0e ldr r3, [pc, #56] ; (8024d8c ) + 8024d54: 681b ldr r3, [r3, #0] + 8024d56: f503 739c add.w r3, r3, #312 ; 0x138 + 8024d5a: 21ff movs r1, #255 ; 0xff + 8024d5c: 4618 mov r0, r3 + 8024d5e: f00f fe6a bl 8034a36 lv_style_set_radius(&styles->cb_marker, RADIUS_DEFAULT / 2); - 8024df6: 4b0a ldr r3, [pc, #40] ; (8024e20 ) - 8024df8: 681b ldr r3, [r3, #0] - 8024dfa: f503 749c add.w r4, r3, #312 ; 0x138 - 8024dfe: 4b0b ldr r3, [pc, #44] ; (8024e2c ) - 8024e00: 781b ldrb r3, [r3, #0] - 8024e02: 2b01 cmp r3, #1 - 8024e04: d114 bne.n 8024e30 - 8024e06: 4b07 ldr r3, [pc, #28] ; (8024e24 ) - 8024e08: 68db ldr r3, [r3, #12] - 8024e0a: 210c movs r1, #12 - 8024e0c: 4618 mov r0, r3 - 8024e0e: f7fe fff7 bl 8023e00 - 8024e12: 4603 mov r3, r0 - 8024e14: 0fda lsrs r2, r3, #31 - 8024e16: 4413 add r3, r2 - 8024e18: 105b asrs r3, r3, #1 - 8024e1a: b21b sxth r3, r3 - 8024e1c: e013 b.n 8024e46 - 8024e1e: bf00 nop - 8024e20: 20001c4c .word 0x20001c4c - 8024e24: 20001c50 .word 0x20001c50 - 8024e28: 20001c80 .word 0x20001c80 - 8024e2c: 20001c74 .word 0x20001c74 - 8024e30: 4bc4 ldr r3, [pc, #784] ; (8025144 ) - 8024e32: 68db ldr r3, [r3, #12] - 8024e34: 2108 movs r1, #8 - 8024e36: 4618 mov r0, r3 - 8024e38: f7fe ffe2 bl 8023e00 - 8024e3c: 4603 mov r3, r0 - 8024e3e: 0fda lsrs r2, r3, #31 - 8024e40: 4413 add r3, r2 - 8024e42: 105b asrs r3, r3, #1 - 8024e44: b21b sxth r3, r3 - 8024e46: 4619 mov r1, r3 - 8024e48: 4620 mov r0, r4 - 8024e4a: f010 f815 bl 8034e78 + 8024d62: 4b0a ldr r3, [pc, #40] ; (8024d8c ) + 8024d64: 681b ldr r3, [r3, #0] + 8024d66: f503 749c add.w r4, r3, #312 ; 0x138 + 8024d6a: 4b0b ldr r3, [pc, #44] ; (8024d98 ) + 8024d6c: 781b ldrb r3, [r3, #0] + 8024d6e: 2b01 cmp r3, #1 + 8024d70: d114 bne.n 8024d9c + 8024d72: 4b07 ldr r3, [pc, #28] ; (8024d90 ) + 8024d74: 68db ldr r3, [r3, #12] + 8024d76: 210c movs r1, #12 + 8024d78: 4618 mov r0, r3 + 8024d7a: f7fe fff7 bl 8023d6c + 8024d7e: 4603 mov r3, r0 + 8024d80: 0fda lsrs r2, r3, #31 + 8024d82: 4413 add r3, r2 + 8024d84: 105b asrs r3, r3, #1 + 8024d86: b21b sxth r3, r3 + 8024d88: e013 b.n 8024db2 + 8024d8a: bf00 nop + 8024d8c: 20001c4c .word 0x20001c4c + 8024d90: 20001c50 .word 0x20001c50 + 8024d94: 20001c80 .word 0x20001c80 + 8024d98: 20001c74 .word 0x20001c74 + 8024d9c: 4bc4 ldr r3, [pc, #784] ; (80250b0 ) + 8024d9e: 68db ldr r3, [r3, #12] + 8024da0: 2108 movs r1, #8 + 8024da2: 4618 mov r0, r3 + 8024da4: f7fe ffe2 bl 8023d6c + 8024da8: 4603 mov r3, r0 + 8024daa: 0fda lsrs r2, r3, #31 + 8024dac: 4413 add r3, r2 + 8024dae: 105b asrs r3, r3, #1 + 8024db0: b21b sxth r3, r3 + 8024db2: 4619 mov r1, r3 + 8024db4: 4620 mov r0, r4 + 8024db6: f010 f815 bl 8034de4 style_init_reset(&styles->cb_marker_checked); - 8024e4e: 4bbe ldr r3, [pc, #760] ; (8025148 ) - 8024e50: 681b ldr r3, [r3, #0] - 8024e52: f503 73a0 add.w r3, r3, #320 ; 0x140 - 8024e56: 4618 mov r0, r3 - 8024e58: f002 fb7c bl 8027554 + 8024dba: 4bbe ldr r3, [pc, #760] ; (80250b4 ) + 8024dbc: 681b ldr r3, [r3, #0] + 8024dbe: f503 73a0 add.w r3, r3, #320 ; 0x140 + 8024dc2: 4618 mov r0, r3 + 8024dc4: f002 fb7c bl 80274c0 lv_style_set_bg_img_src(&styles->cb_marker_checked, LV_SYMBOL_OK); - 8024e5c: 4bba ldr r3, [pc, #744] ; (8025148 ) - 8024e5e: 681b ldr r3, [r3, #0] - 8024e60: f503 73a0 add.w r3, r3, #320 ; 0x140 - 8024e64: 49b9 ldr r1, [pc, #740] ; (802514c ) - 8024e66: 4618 mov r0, r3 - 8024e68: f00f fe52 bl 8034b10 + 8024dc8: 4bba ldr r3, [pc, #744] ; (80250b4 ) + 8024dca: 681b ldr r3, [r3, #0] + 8024dcc: f503 73a0 add.w r3, r3, #320 ; 0x140 + 8024dd0: 49b9 ldr r1, [pc, #740] ; (80250b8 ) + 8024dd2: 4618 mov r0, r3 + 8024dd4: f00f fe52 bl 8034a7c lv_style_set_text_color(&styles->cb_marker_checked, lv_color_white()); - 8024e6c: 4bb6 ldr r3, [pc, #728] ; (8025148 ) - 8024e6e: 681b ldr r3, [r3, #0] - 8024e70: f503 74a0 add.w r4, r3, #320 ; 0x140 - 8024e74: f7fe ff3f bl 8023cf6 - 8024e78: 4603 mov r3, r0 - 8024e7a: 4619 mov r1, r3 - 8024e7c: 4620 mov r0, r4 - 8024e7e: f00f ffb2 bl 8034de6 + 8024dd8: 4bb6 ldr r3, [pc, #728] ; (80250b4 ) + 8024dda: 681b ldr r3, [r3, #0] + 8024ddc: f503 74a0 add.w r4, r3, #320 ; 0x140 + 8024de0: f7fe ff3f bl 8023c62 + 8024de4: 4603 mov r3, r0 + 8024de6: 4619 mov r1, r3 + 8024de8: 4620 mov r0, r4 + 8024dea: f00f ffb2 bl 8034d52 lv_style_set_text_font(&styles->cb_marker_checked, theme.font_small); - 8024e82: 4bb1 ldr r3, [pc, #708] ; (8025148 ) - 8024e84: 681b ldr r3, [r3, #0] - 8024e86: f503 73a0 add.w r3, r3, #320 ; 0x140 - 8024e8a: 4aae ldr r2, [pc, #696] ; (8025144 ) - 8024e8c: 6952 ldr r2, [r2, #20] - 8024e8e: 4611 mov r1, r2 - 8024e90: 4618 mov r0, r3 - 8024e92: f00f ffbb bl 8034e0c + 8024dee: 4bb1 ldr r3, [pc, #708] ; (80250b4 ) + 8024df0: 681b ldr r3, [r3, #0] + 8024df2: f503 73a0 add.w r3, r3, #320 ; 0x140 + 8024df6: 4aae ldr r2, [pc, #696] ; (80250b0 ) + 8024df8: 6952 ldr r2, [r2, #20] + 8024dfa: 4611 mov r1, r2 + 8024dfc: 4618 mov r0, r3 + 8024dfe: f00f ffbb bl 8034d78 #endif #if LV_USE_SWITCH style_init_reset(&styles->switch_knob); - 8024e96: 4bac ldr r3, [pc, #688] ; (8025148 ) - 8024e98: 681b ldr r3, [r3, #0] - 8024e9a: f503 73a4 add.w r3, r3, #328 ; 0x148 - 8024e9e: 4618 mov r0, r3 - 8024ea0: f002 fb58 bl 8027554 + 8024e02: 4bac ldr r3, [pc, #688] ; (80250b4 ) + 8024e04: 681b ldr r3, [r3, #0] + 8024e06: f503 73a4 add.w r3, r3, #328 ; 0x148 + 8024e0a: 4618 mov r0, r3 + 8024e0c: f002 fb58 bl 80274c0 lv_style_set_pad_all(&styles->switch_knob, - lv_disp_dpx(theme.disp, 4)); - 8024ea4: 4ba8 ldr r3, [pc, #672] ; (8025148 ) - 8024ea6: 681b ldr r3, [r3, #0] - 8024ea8: f503 74a4 add.w r4, r3, #328 ; 0x148 - 8024eac: 4ba5 ldr r3, [pc, #660] ; (8025144 ) - 8024eae: 68db ldr r3, [r3, #12] - 8024eb0: 2104 movs r1, #4 - 8024eb2: 4618 mov r0, r3 - 8024eb4: f7fe ffa4 bl 8023e00 - 8024eb8: 4603 mov r3, r0 - 8024eba: b29b uxth r3, r3 - 8024ebc: 425b negs r3, r3 - 8024ebe: b29b uxth r3, r3 - 8024ec0: b21b sxth r3, r3 - 8024ec2: 4619 mov r1, r3 - 8024ec4: 4620 mov r0, r4 - 8024ec6: f7fe ff36 bl 8023d36 + 8024e10: 4ba8 ldr r3, [pc, #672] ; (80250b4 ) + 8024e12: 681b ldr r3, [r3, #0] + 8024e14: f503 74a4 add.w r4, r3, #328 ; 0x148 + 8024e18: 4ba5 ldr r3, [pc, #660] ; (80250b0 ) + 8024e1a: 68db ldr r3, [r3, #12] + 8024e1c: 2104 movs r1, #4 + 8024e1e: 4618 mov r0, r3 + 8024e20: f7fe ffa4 bl 8023d6c + 8024e24: 4603 mov r3, r0 + 8024e26: b29b uxth r3, r3 + 8024e28: 425b negs r3, r3 + 8024e2a: b29b uxth r3, r3 + 8024e2c: b21b sxth r3, r3 + 8024e2e: 4619 mov r1, r3 + 8024e30: 4620 mov r0, r4 + 8024e32: f7fe ff36 bl 8023ca2 lv_style_set_bg_color(&styles->switch_knob, lv_color_white()); - 8024eca: 4b9f ldr r3, [pc, #636] ; (8025148 ) - 8024ecc: 681b ldr r3, [r3, #0] - 8024ece: f503 74a4 add.w r4, r3, #328 ; 0x148 - 8024ed2: f7fe ff10 bl 8023cf6 - 8024ed6: 4603 mov r3, r0 - 8024ed8: 4619 mov r1, r3 - 8024eda: 4620 mov r0, r4 - 8024edc: f00f fde3 bl 8034aa6 + 8024e36: 4b9f ldr r3, [pc, #636] ; (80250b4 ) + 8024e38: 681b ldr r3, [r3, #0] + 8024e3a: f503 74a4 add.w r4, r3, #328 ; 0x148 + 8024e3e: f7fe ff10 bl 8023c62 + 8024e42: 4603 mov r3, r0 + 8024e44: 4619 mov r1, r3 + 8024e46: 4620 mov r0, r4 + 8024e48: f00f fde3 bl 8034a12 #endif #if LV_USE_LINE style_init_reset(&styles->line); - 8024ee0: 4b99 ldr r3, [pc, #612] ; (8025148 ) - 8024ee2: 681b ldr r3, [r3, #0] - 8024ee4: f503 73a8 add.w r3, r3, #336 ; 0x150 - 8024ee8: 4618 mov r0, r3 - 8024eea: f002 fb33 bl 8027554 + 8024e4c: 4b99 ldr r3, [pc, #612] ; (80250b4 ) + 8024e4e: 681b ldr r3, [r3, #0] + 8024e50: f503 73a8 add.w r3, r3, #336 ; 0x150 + 8024e54: 4618 mov r0, r3 + 8024e56: f002 fb33 bl 80274c0 lv_style_set_line_width(&styles->line, 1); - 8024eee: 4b96 ldr r3, [pc, #600] ; (8025148 ) - 8024ef0: 681b ldr r3, [r3, #0] - 8024ef2: f503 73a8 add.w r3, r3, #336 ; 0x150 - 8024ef6: 2101 movs r1, #1 - 8024ef8: 4618 mov r0, r3 - 8024efa: f00f ff19 bl 8034d30 + 8024e5a: 4b96 ldr r3, [pc, #600] ; (80250b4 ) + 8024e5c: 681b ldr r3, [r3, #0] + 8024e5e: f503 73a8 add.w r3, r3, #336 ; 0x150 + 8024e62: 2101 movs r1, #1 + 8024e64: 4618 mov r0, r3 + 8024e66: f00f ff19 bl 8034c9c lv_style_set_line_color(&styles->line, color_text); - 8024efe: 4b92 ldr r3, [pc, #584] ; (8025148 ) - 8024f00: 681b ldr r3, [r3, #0] - 8024f02: f503 73a8 add.w r3, r3, #336 ; 0x150 - 8024f06: 4a92 ldr r2, [pc, #584] ; (8025150 ) - 8024f08: 8811 ldrh r1, [r2, #0] - 8024f0a: 4618 mov r0, r3 - 8024f0c: f00f ff23 bl 8034d56 + 8024e6a: 4b92 ldr r3, [pc, #584] ; (80250b4 ) + 8024e6c: 681b ldr r3, [r3, #0] + 8024e6e: f503 73a8 add.w r3, r3, #336 ; 0x150 + 8024e72: 4a92 ldr r2, [pc, #584] ; (80250bc ) + 8024e74: 8811 ldrh r1, [r2, #0] + 8024e76: 4618 mov r0, r3 + 8024e78: f00f ff23 bl 8034cc2 #endif #if LV_USE_CHART style_init_reset(&styles->chart_bg); - 8024f10: 4b8d ldr r3, [pc, #564] ; (8025148 ) - 8024f12: 681b ldr r3, [r3, #0] - 8024f14: f503 7394 add.w r3, r3, #296 ; 0x128 - 8024f18: 4618 mov r0, r3 - 8024f1a: f002 fb1b bl 8027554 + 8024e7c: 4b8d ldr r3, [pc, #564] ; (80250b4 ) + 8024e7e: 681b ldr r3, [r3, #0] + 8024e80: f503 7394 add.w r3, r3, #296 ; 0x128 + 8024e84: 4618 mov r0, r3 + 8024e86: f002 fb1b bl 80274c0 lv_style_set_border_post(&styles->chart_bg, false); - 8024f1e: 4b8a ldr r3, [pc, #552] ; (8025148 ) - 8024f20: 681b ldr r3, [r3, #0] - 8024f22: f503 7394 add.w r3, r3, #296 ; 0x128 - 8024f26: 2100 movs r1, #0 - 8024f28: 4618 mov r0, r3 - 8024f2a: f00f fe49 bl 8034bc0 + 8024e8a: 4b8a ldr r3, [pc, #552] ; (80250b4 ) + 8024e8c: 681b ldr r3, [r3, #0] + 8024e8e: f503 7394 add.w r3, r3, #296 ; 0x128 + 8024e92: 2100 movs r1, #0 + 8024e94: 4618 mov r0, r3 + 8024e96: f00f fe49 bl 8034b2c lv_style_set_pad_column(&styles->chart_bg, lv_disp_dpx(theme.disp, 10)); - 8024f2e: 4b86 ldr r3, [pc, #536] ; (8025148 ) - 8024f30: 681b ldr r3, [r3, #0] - 8024f32: f503 7494 add.w r4, r3, #296 ; 0x128 - 8024f36: 4b83 ldr r3, [pc, #524] ; (8025144 ) - 8024f38: 68db ldr r3, [r3, #12] - 8024f3a: 210a movs r1, #10 - 8024f3c: 4618 mov r0, r3 - 8024f3e: f7fe ff5f bl 8023e00 - 8024f42: 4603 mov r3, r0 - 8024f44: 4619 mov r1, r3 - 8024f46: 4620 mov r0, r4 - 8024f48: f00f fd9a bl 8034a80 + 8024e9a: 4b86 ldr r3, [pc, #536] ; (80250b4 ) + 8024e9c: 681b ldr r3, [r3, #0] + 8024e9e: f503 7494 add.w r4, r3, #296 ; 0x128 + 8024ea2: 4b83 ldr r3, [pc, #524] ; (80250b0 ) + 8024ea4: 68db ldr r3, [r3, #12] + 8024ea6: 210a movs r1, #10 + 8024ea8: 4618 mov r0, r3 + 8024eaa: f7fe ff5f bl 8023d6c + 8024eae: 4603 mov r3, r0 + 8024eb0: 4619 mov r1, r3 + 8024eb2: 4620 mov r0, r4 + 8024eb4: f00f fd9a bl 80349ec lv_style_set_line_color(&styles->chart_bg, color_grey); - 8024f4c: 4b7e ldr r3, [pc, #504] ; (8025148 ) - 8024f4e: 681b ldr r3, [r3, #0] - 8024f50: f503 7394 add.w r3, r3, #296 ; 0x128 - 8024f54: 4a7f ldr r2, [pc, #508] ; (8025154 ) - 8024f56: 8811 ldrh r1, [r2, #0] - 8024f58: 4618 mov r0, r3 - 8024f5a: f00f fefc bl 8034d56 + 8024eb8: 4b7e ldr r3, [pc, #504] ; (80250b4 ) + 8024eba: 681b ldr r3, [r3, #0] + 8024ebc: f503 7394 add.w r3, r3, #296 ; 0x128 + 8024ec0: 4a7f ldr r2, [pc, #508] ; (80250c0 ) + 8024ec2: 8811 ldrh r1, [r2, #0] + 8024ec4: 4618 mov r0, r3 + 8024ec6: f00f fefc bl 8034cc2 style_init_reset(&styles->chart_series); - 8024f5e: 4b7a ldr r3, [pc, #488] ; (8025148 ) - 8024f60: 681b ldr r3, [r3, #0] - 8024f62: f503 7388 add.w r3, r3, #272 ; 0x110 - 8024f66: 4618 mov r0, r3 - 8024f68: f002 faf4 bl 8027554 + 8024eca: 4b7a ldr r3, [pc, #488] ; (80250b4 ) + 8024ecc: 681b ldr r3, [r3, #0] + 8024ece: f503 7388 add.w r3, r3, #272 ; 0x110 + 8024ed2: 4618 mov r0, r3 + 8024ed4: f002 faf4 bl 80274c0 lv_style_set_line_width(&styles->chart_series, lv_disp_dpx(theme.disp, 3)); - 8024f6c: 4b76 ldr r3, [pc, #472] ; (8025148 ) - 8024f6e: 681b ldr r3, [r3, #0] - 8024f70: f503 7488 add.w r4, r3, #272 ; 0x110 - 8024f74: 4b73 ldr r3, [pc, #460] ; (8025144 ) - 8024f76: 68db ldr r3, [r3, #12] - 8024f78: 2103 movs r1, #3 - 8024f7a: 4618 mov r0, r3 - 8024f7c: f7fe ff40 bl 8023e00 - 8024f80: 4603 mov r3, r0 - 8024f82: 4619 mov r1, r3 - 8024f84: 4620 mov r0, r4 - 8024f86: f00f fed3 bl 8034d30 + 8024ed8: 4b76 ldr r3, [pc, #472] ; (80250b4 ) + 8024eda: 681b ldr r3, [r3, #0] + 8024edc: f503 7488 add.w r4, r3, #272 ; 0x110 + 8024ee0: 4b73 ldr r3, [pc, #460] ; (80250b0 ) + 8024ee2: 68db ldr r3, [r3, #12] + 8024ee4: 2103 movs r1, #3 + 8024ee6: 4618 mov r0, r3 + 8024ee8: f7fe ff40 bl 8023d6c + 8024eec: 4603 mov r3, r0 + 8024eee: 4619 mov r1, r3 + 8024ef0: 4620 mov r0, r4 + 8024ef2: f00f fed3 bl 8034c9c lv_style_set_radius(&styles->chart_series, lv_disp_dpx(theme.disp, 3)); - 8024f8a: 4b6f ldr r3, [pc, #444] ; (8025148 ) - 8024f8c: 681b ldr r3, [r3, #0] - 8024f8e: f503 7488 add.w r4, r3, #272 ; 0x110 - 8024f92: 4b6c ldr r3, [pc, #432] ; (8025144 ) - 8024f94: 68db ldr r3, [r3, #12] - 8024f96: 2103 movs r1, #3 - 8024f98: 4618 mov r0, r3 - 8024f9a: f7fe ff31 bl 8023e00 - 8024f9e: 4603 mov r3, r0 - 8024fa0: 4619 mov r1, r3 - 8024fa2: 4620 mov r0, r4 - 8024fa4: f00f ff68 bl 8034e78 + 8024ef6: 4b6f ldr r3, [pc, #444] ; (80250b4 ) + 8024ef8: 681b ldr r3, [r3, #0] + 8024efa: f503 7488 add.w r4, r3, #272 ; 0x110 + 8024efe: 4b6c ldr r3, [pc, #432] ; (80250b0 ) + 8024f00: 68db ldr r3, [r3, #12] + 8024f02: 2103 movs r1, #3 + 8024f04: 4618 mov r0, r3 + 8024f06: f7fe ff31 bl 8023d6c + 8024f0a: 4603 mov r3, r0 + 8024f0c: 4619 mov r1, r3 + 8024f0e: 4620 mov r0, r4 + 8024f10: f00f ff68 bl 8034de4 lv_style_set_size(&styles->chart_series, lv_disp_dpx(theme.disp, 8)); - 8024fa8: 4b67 ldr r3, [pc, #412] ; (8025148 ) - 8024faa: 681b ldr r3, [r3, #0] - 8024fac: f503 7488 add.w r4, r3, #272 ; 0x110 - 8024fb0: 4b64 ldr r3, [pc, #400] ; (8025144 ) - 8024fb2: 68db ldr r3, [r3, #12] - 8024fb4: 2108 movs r1, #8 - 8024fb6: 4618 mov r0, r3 - 8024fb8: f7fe ff22 bl 8023e00 - 8024fbc: 4603 mov r3, r0 - 8024fbe: 4619 mov r1, r3 - 8024fc0: 4620 mov r0, r4 - 8024fc2: f7fe fea2 bl 8023d0a + 8024f14: 4b67 ldr r3, [pc, #412] ; (80250b4 ) + 8024f16: 681b ldr r3, [r3, #0] + 8024f18: f503 7488 add.w r4, r3, #272 ; 0x110 + 8024f1c: 4b64 ldr r3, [pc, #400] ; (80250b0 ) + 8024f1e: 68db ldr r3, [r3, #12] + 8024f20: 2108 movs r1, #8 + 8024f22: 4618 mov r0, r3 + 8024f24: f7fe ff22 bl 8023d6c + 8024f28: 4603 mov r3, r0 + 8024f2a: 4619 mov r1, r3 + 8024f2c: 4620 mov r0, r4 + 8024f2e: f7fe fea2 bl 8023c76 lv_style_set_pad_column(&styles->chart_series, lv_disp_dpx(theme.disp, 2)); - 8024fc6: 4b60 ldr r3, [pc, #384] ; (8025148 ) - 8024fc8: 681b ldr r3, [r3, #0] - 8024fca: f503 7488 add.w r4, r3, #272 ; 0x110 - 8024fce: 4b5d ldr r3, [pc, #372] ; (8025144 ) - 8024fd0: 68db ldr r3, [r3, #12] - 8024fd2: 2102 movs r1, #2 - 8024fd4: 4618 mov r0, r3 - 8024fd6: f7fe ff13 bl 8023e00 - 8024fda: 4603 mov r3, r0 - 8024fdc: 4619 mov r1, r3 - 8024fde: 4620 mov r0, r4 - 8024fe0: f00f fd4e bl 8034a80 + 8024f32: 4b60 ldr r3, [pc, #384] ; (80250b4 ) + 8024f34: 681b ldr r3, [r3, #0] + 8024f36: f503 7488 add.w r4, r3, #272 ; 0x110 + 8024f3a: 4b5d ldr r3, [pc, #372] ; (80250b0 ) + 8024f3c: 68db ldr r3, [r3, #12] + 8024f3e: 2102 movs r1, #2 + 8024f40: 4618 mov r0, r3 + 8024f42: f7fe ff13 bl 8023d6c + 8024f46: 4603 mov r3, r0 + 8024f48: 4619 mov r1, r3 + 8024f4a: 4620 mov r0, r4 + 8024f4c: f00f fd4e bl 80349ec style_init_reset(&styles->chart_indic); - 8024fe4: 4b58 ldr r3, [pc, #352] ; (8025148 ) - 8024fe6: 681b ldr r3, [r3, #0] - 8024fe8: f503 738c add.w r3, r3, #280 ; 0x118 - 8024fec: 4618 mov r0, r3 - 8024fee: f002 fab1 bl 8027554 + 8024f50: 4b58 ldr r3, [pc, #352] ; (80250b4 ) + 8024f52: 681b ldr r3, [r3, #0] + 8024f54: f503 738c add.w r3, r3, #280 ; 0x118 + 8024f58: 4618 mov r0, r3 + 8024f5a: f002 fab1 bl 80274c0 lv_style_set_radius(&styles->chart_indic, LV_RADIUS_CIRCLE); - 8024ff2: 4b55 ldr r3, [pc, #340] ; (8025148 ) - 8024ff4: 681b ldr r3, [r3, #0] - 8024ff6: f503 738c add.w r3, r3, #280 ; 0x118 - 8024ffa: f647 71ff movw r1, #32767 ; 0x7fff - 8024ffe: 4618 mov r0, r3 - 8025000: f00f ff3a bl 8034e78 + 8024f5e: 4b55 ldr r3, [pc, #340] ; (80250b4 ) + 8024f60: 681b ldr r3, [r3, #0] + 8024f62: f503 738c add.w r3, r3, #280 ; 0x118 + 8024f66: f647 71ff movw r1, #32767 ; 0x7fff + 8024f6a: 4618 mov r0, r3 + 8024f6c: f00f ff3a bl 8034de4 lv_style_set_size(&styles->chart_indic, lv_disp_dpx(theme.disp, 8)); - 8025004: 4b50 ldr r3, [pc, #320] ; (8025148 ) - 8025006: 681b ldr r3, [r3, #0] - 8025008: f503 748c add.w r4, r3, #280 ; 0x118 - 802500c: 4b4d ldr r3, [pc, #308] ; (8025144 ) - 802500e: 68db ldr r3, [r3, #12] - 8025010: 2108 movs r1, #8 - 8025012: 4618 mov r0, r3 - 8025014: f7fe fef4 bl 8023e00 - 8025018: 4603 mov r3, r0 - 802501a: 4619 mov r1, r3 - 802501c: 4620 mov r0, r4 - 802501e: f7fe fe74 bl 8023d0a + 8024f70: 4b50 ldr r3, [pc, #320] ; (80250b4 ) + 8024f72: 681b ldr r3, [r3, #0] + 8024f74: f503 748c add.w r4, r3, #280 ; 0x118 + 8024f78: 4b4d ldr r3, [pc, #308] ; (80250b0 ) + 8024f7a: 68db ldr r3, [r3, #12] + 8024f7c: 2108 movs r1, #8 + 8024f7e: 4618 mov r0, r3 + 8024f80: f7fe fef4 bl 8023d6c + 8024f84: 4603 mov r3, r0 + 8024f86: 4619 mov r1, r3 + 8024f88: 4620 mov r0, r4 + 8024f8a: f7fe fe74 bl 8023c76 lv_style_set_bg_color(&styles->chart_indic, theme.color_primary); - 8025022: 4b49 ldr r3, [pc, #292] ; (8025148 ) - 8025024: 681b ldr r3, [r3, #0] - 8025026: f503 738c add.w r3, r3, #280 ; 0x118 - 802502a: 4a46 ldr r2, [pc, #280] ; (8025144 ) - 802502c: 8a11 ldrh r1, [r2, #16] - 802502e: 4618 mov r0, r3 - 8025030: f00f fd39 bl 8034aa6 + 8024f8e: 4b49 ldr r3, [pc, #292] ; (80250b4 ) + 8024f90: 681b ldr r3, [r3, #0] + 8024f92: f503 738c add.w r3, r3, #280 ; 0x118 + 8024f96: 4a46 ldr r2, [pc, #280] ; (80250b0 ) + 8024f98: 8a11 ldrh r1, [r2, #16] + 8024f9a: 4618 mov r0, r3 + 8024f9c: f00f fd39 bl 8034a12 lv_style_set_bg_opa(&styles->chart_indic, LV_OPA_COVER); - 8025034: 4b44 ldr r3, [pc, #272] ; (8025148 ) - 8025036: 681b ldr r3, [r3, #0] - 8025038: f503 738c add.w r3, r3, #280 ; 0x118 - 802503c: 21ff movs r1, #255 ; 0xff - 802503e: 4618 mov r0, r3 - 8025040: f00f fd43 bl 8034aca + 8024fa0: 4b44 ldr r3, [pc, #272] ; (80250b4 ) + 8024fa2: 681b ldr r3, [r3, #0] + 8024fa4: f503 738c add.w r3, r3, #280 ; 0x118 + 8024fa8: 21ff movs r1, #255 ; 0xff + 8024faa: 4618 mov r0, r3 + 8024fac: f00f fd43 bl 8034a36 style_init_reset(&styles->chart_ticks); - 8025044: 4b40 ldr r3, [pc, #256] ; (8025148 ) - 8025046: 681b ldr r3, [r3, #0] - 8025048: f503 7390 add.w r3, r3, #288 ; 0x120 - 802504c: 4618 mov r0, r3 - 802504e: f002 fa81 bl 8027554 + 8024fb0: 4b40 ldr r3, [pc, #256] ; (80250b4 ) + 8024fb2: 681b ldr r3, [r3, #0] + 8024fb4: f503 7390 add.w r3, r3, #288 ; 0x120 + 8024fb8: 4618 mov r0, r3 + 8024fba: f002 fa81 bl 80274c0 lv_style_set_line_width(&styles->chart_ticks, lv_disp_dpx(theme.disp, 1)); - 8025052: 4b3d ldr r3, [pc, #244] ; (8025148 ) - 8025054: 681b ldr r3, [r3, #0] - 8025056: f503 7490 add.w r4, r3, #288 ; 0x120 - 802505a: 4b3a ldr r3, [pc, #232] ; (8025144 ) - 802505c: 68db ldr r3, [r3, #12] - 802505e: 2101 movs r1, #1 - 8025060: 4618 mov r0, r3 - 8025062: f7fe fecd bl 8023e00 - 8025066: 4603 mov r3, r0 - 8025068: 4619 mov r1, r3 - 802506a: 4620 mov r0, r4 - 802506c: f00f fe60 bl 8034d30 + 8024fbe: 4b3d ldr r3, [pc, #244] ; (80250b4 ) + 8024fc0: 681b ldr r3, [r3, #0] + 8024fc2: f503 7490 add.w r4, r3, #288 ; 0x120 + 8024fc6: 4b3a ldr r3, [pc, #232] ; (80250b0 ) + 8024fc8: 68db ldr r3, [r3, #12] + 8024fca: 2101 movs r1, #1 + 8024fcc: 4618 mov r0, r3 + 8024fce: f7fe fecd bl 8023d6c + 8024fd2: 4603 mov r3, r0 + 8024fd4: 4619 mov r1, r3 + 8024fd6: 4620 mov r0, r4 + 8024fd8: f00f fe60 bl 8034c9c lv_style_set_line_color(&styles->chart_ticks, color_text); - 8025070: 4b35 ldr r3, [pc, #212] ; (8025148 ) - 8025072: 681b ldr r3, [r3, #0] - 8025074: f503 7390 add.w r3, r3, #288 ; 0x120 - 8025078: 4a35 ldr r2, [pc, #212] ; (8025150 ) - 802507a: 8811 ldrh r1, [r2, #0] - 802507c: 4618 mov r0, r3 - 802507e: f00f fe6a bl 8034d56 + 8024fdc: 4b35 ldr r3, [pc, #212] ; (80250b4 ) + 8024fde: 681b ldr r3, [r3, #0] + 8024fe0: f503 7390 add.w r3, r3, #288 ; 0x120 + 8024fe4: 4a35 ldr r2, [pc, #212] ; (80250bc ) + 8024fe6: 8811 ldrh r1, [r2, #0] + 8024fe8: 4618 mov r0, r3 + 8024fea: f00f fe6a bl 8034cc2 lv_style_set_pad_all(&styles->chart_ticks, lv_disp_dpx(theme.disp, 2)); - 8025082: 4b31 ldr r3, [pc, #196] ; (8025148 ) - 8025084: 681b ldr r3, [r3, #0] - 8025086: f503 7490 add.w r4, r3, #288 ; 0x120 - 802508a: 4b2e ldr r3, [pc, #184] ; (8025144 ) - 802508c: 68db ldr r3, [r3, #12] - 802508e: 2102 movs r1, #2 - 8025090: 4618 mov r0, r3 - 8025092: f7fe feb5 bl 8023e00 - 8025096: 4603 mov r3, r0 - 8025098: 4619 mov r1, r3 - 802509a: 4620 mov r0, r4 - 802509c: f7fe fe4b bl 8023d36 + 8024fee: 4b31 ldr r3, [pc, #196] ; (80250b4 ) + 8024ff0: 681b ldr r3, [r3, #0] + 8024ff2: f503 7490 add.w r4, r3, #288 ; 0x120 + 8024ff6: 4b2e ldr r3, [pc, #184] ; (80250b0 ) + 8024ff8: 68db ldr r3, [r3, #12] + 8024ffa: 2102 movs r1, #2 + 8024ffc: 4618 mov r0, r3 + 8024ffe: f7fe feb5 bl 8023d6c + 8025002: 4603 mov r3, r0 + 8025004: 4619 mov r1, r3 + 8025006: 4620 mov r0, r4 + 8025008: f7fe fe4b bl 8023ca2 lv_style_set_text_color(&styles->chart_ticks, lv_palette_main(LV_PALETTE_GREY)); - 80250a0: 4b29 ldr r3, [pc, #164] ; (8025148 ) - 80250a2: 681b ldr r3, [r3, #0] - 80250a4: f503 7490 add.w r4, r3, #288 ; 0x120 - 80250a8: 2012 movs r0, #18 - 80250aa: f00c fcf7 bl 8031a9c - 80250ae: 4603 mov r3, r0 - 80250b0: 4619 mov r1, r3 - 80250b2: 4620 mov r0, r4 - 80250b4: f00f fe97 bl 8034de6 + 802500c: 4b29 ldr r3, [pc, #164] ; (80250b4 ) + 802500e: 681b ldr r3, [r3, #0] + 8025010: f503 7490 add.w r4, r3, #288 ; 0x120 + 8025014: 2012 movs r0, #18 + 8025016: f00c fcf7 bl 8031a08 + 802501a: 4603 mov r3, r0 + 802501c: 4619 mov r1, r3 + 802501e: 4620 mov r0, r4 + 8025020: f00f fe97 bl 8034d52 #endif #if LV_USE_MENU style_init_reset(&styles->menu_bg); - 80250b8: 4b23 ldr r3, [pc, #140] ; (8025148 ) - 80250ba: 681b ldr r3, [r3, #0] - 80250bc: f503 73d0 add.w r3, r3, #416 ; 0x1a0 - 80250c0: 4618 mov r0, r3 - 80250c2: f002 fa47 bl 8027554 + 8025024: 4b23 ldr r3, [pc, #140] ; (80250b4 ) + 8025026: 681b ldr r3, [r3, #0] + 8025028: f503 73d0 add.w r3, r3, #416 ; 0x1a0 + 802502c: 4618 mov r0, r3 + 802502e: f002 fa47 bl 80274c0 lv_style_set_pad_all(&styles->menu_bg, 0); - 80250c6: 4b20 ldr r3, [pc, #128] ; (8025148 ) - 80250c8: 681b ldr r3, [r3, #0] - 80250ca: f503 73d0 add.w r3, r3, #416 ; 0x1a0 - 80250ce: 2100 movs r1, #0 - 80250d0: 4618 mov r0, r3 - 80250d2: f7fe fe30 bl 8023d36 + 8025032: 4b20 ldr r3, [pc, #128] ; (80250b4 ) + 8025034: 681b ldr r3, [r3, #0] + 8025036: f503 73d0 add.w r3, r3, #416 ; 0x1a0 + 802503a: 2100 movs r1, #0 + 802503c: 4618 mov r0, r3 + 802503e: f7fe fe30 bl 8023ca2 lv_style_set_pad_gap(&styles->menu_bg, 0); - 80250d6: 4b1c ldr r3, [pc, #112] ; (8025148 ) - 80250d8: 681b ldr r3, [r3, #0] - 80250da: f503 73d0 add.w r3, r3, #416 ; 0x1a0 - 80250de: 2100 movs r1, #0 - 80250e0: 4618 mov r0, r3 - 80250e2: f7fe fe76 bl 8023dd2 + 8025042: 4b1c ldr r3, [pc, #112] ; (80250b4 ) + 8025044: 681b ldr r3, [r3, #0] + 8025046: f503 73d0 add.w r3, r3, #416 ; 0x1a0 + 802504a: 2100 movs r1, #0 + 802504c: 4618 mov r0, r3 + 802504e: f7fe fe76 bl 8023d3e lv_style_set_radius(&styles->menu_bg, 0); - 80250e6: 4b18 ldr r3, [pc, #96] ; (8025148 ) - 80250e8: 681b ldr r3, [r3, #0] - 80250ea: f503 73d0 add.w r3, r3, #416 ; 0x1a0 - 80250ee: 2100 movs r1, #0 - 80250f0: 4618 mov r0, r3 - 80250f2: f00f fec1 bl 8034e78 + 8025052: 4b18 ldr r3, [pc, #96] ; (80250b4 ) + 8025054: 681b ldr r3, [r3, #0] + 8025056: f503 73d0 add.w r3, r3, #416 ; 0x1a0 + 802505a: 2100 movs r1, #0 + 802505c: 4618 mov r0, r3 + 802505e: f00f fec1 bl 8034de4 lv_style_set_clip_corner(&styles->menu_bg, true); - 80250f6: 4b14 ldr r3, [pc, #80] ; (8025148 ) - 80250f8: 681b ldr r3, [r3, #0] - 80250fa: f503 73d0 add.w r3, r3, #416 ; 0x1a0 - 80250fe: 2101 movs r1, #1 - 8025100: 4618 mov r0, r3 - 8025102: f00f fecb bl 8034e9c + 8025062: 4b14 ldr r3, [pc, #80] ; (80250b4 ) + 8025064: 681b ldr r3, [r3, #0] + 8025066: f503 73d0 add.w r3, r3, #416 ; 0x1a0 + 802506a: 2101 movs r1, #1 + 802506c: 4618 mov r0, r3 + 802506e: f00f fecb bl 8034e08 lv_style_set_border_side(&styles->menu_bg, LV_BORDER_SIDE_NONE); - 8025106: 4b10 ldr r3, [pc, #64] ; (8025148 ) - 8025108: 681b ldr r3, [r3, #0] - 802510a: f503 73d0 add.w r3, r3, #416 ; 0x1a0 - 802510e: 2100 movs r1, #0 - 8025110: 4618 mov r0, r3 - 8025112: f00f fd44 bl 8034b9e + 8025072: 4b10 ldr r3, [pc, #64] ; (80250b4 ) + 8025074: 681b ldr r3, [r3, #0] + 8025076: f503 73d0 add.w r3, r3, #416 ; 0x1a0 + 802507a: 2100 movs r1, #0 + 802507c: 4618 mov r0, r3 + 802507e: f00f fd44 bl 8034b0a style_init_reset(&styles->menu_section); - 8025116: 4b0c ldr r3, [pc, #48] ; (8025148 ) - 8025118: 681b ldr r3, [r3, #0] - 802511a: f503 73ec add.w r3, r3, #472 ; 0x1d8 - 802511e: 4618 mov r0, r3 - 8025120: f002 fa18 bl 8027554 + 8025082: 4b0c ldr r3, [pc, #48] ; (80250b4 ) + 8025084: 681b ldr r3, [r3, #0] + 8025086: f503 73ec add.w r3, r3, #472 ; 0x1d8 + 802508a: 4618 mov r0, r3 + 802508c: f002 fa18 bl 80274c0 lv_style_set_radius(&styles->menu_section, RADIUS_DEFAULT); - 8025124: 4b08 ldr r3, [pc, #32] ; (8025148 ) - 8025126: 681b ldr r3, [r3, #0] - 8025128: f503 74ec add.w r4, r3, #472 ; 0x1d8 - 802512c: 4b0a ldr r3, [pc, #40] ; (8025158 ) - 802512e: 781b ldrb r3, [r3, #0] - 8025130: 2b01 cmp r3, #1 - 8025132: d114 bne.n 802515e - 8025134: 4b03 ldr r3, [pc, #12] ; (8025144 ) - 8025136: 68db ldr r3, [r3, #12] - 8025138: 210c movs r1, #12 - 802513a: 4618 mov r0, r3 - 802513c: f7fe fe60 bl 8023e00 - 8025140: 4603 mov r3, r0 - 8025142: e00b b.n 802515c - 8025144: 20001c50 .word 0x20001c50 - 8025148: 20001c4c .word 0x20001c4c - 802514c: 08046c58 .word 0x08046c58 - 8025150: 20001c7c .word 0x20001c7c - 8025154: 20001c84 .word 0x20001c84 - 8025158: 20001c74 .word 0x20001c74 - 802515c: e006 b.n 802516c - 802515e: 4bb2 ldr r3, [pc, #712] ; (8025428 ) - 8025160: 68db ldr r3, [r3, #12] - 8025162: 2108 movs r1, #8 - 8025164: 4618 mov r0, r3 - 8025166: f7fe fe4b bl 8023e00 - 802516a: 4603 mov r3, r0 - 802516c: 4619 mov r1, r3 - 802516e: 4620 mov r0, r4 - 8025170: f00f fe82 bl 8034e78 + 8025090: 4b08 ldr r3, [pc, #32] ; (80250b4 ) + 8025092: 681b ldr r3, [r3, #0] + 8025094: f503 74ec add.w r4, r3, #472 ; 0x1d8 + 8025098: 4b0a ldr r3, [pc, #40] ; (80250c4 ) + 802509a: 781b ldrb r3, [r3, #0] + 802509c: 2b01 cmp r3, #1 + 802509e: d114 bne.n 80250ca + 80250a0: 4b03 ldr r3, [pc, #12] ; (80250b0 ) + 80250a2: 68db ldr r3, [r3, #12] + 80250a4: 210c movs r1, #12 + 80250a6: 4618 mov r0, r3 + 80250a8: f7fe fe60 bl 8023d6c + 80250ac: 4603 mov r3, r0 + 80250ae: e00b b.n 80250c8 + 80250b0: 20001c50 .word 0x20001c50 + 80250b4: 20001c4c .word 0x20001c4c + 80250b8: 08046bb0 .word 0x08046bb0 + 80250bc: 20001c7c .word 0x20001c7c + 80250c0: 20001c84 .word 0x20001c84 + 80250c4: 20001c74 .word 0x20001c74 + 80250c8: e006 b.n 80250d8 + 80250ca: 4bb2 ldr r3, [pc, #712] ; (8025394 ) + 80250cc: 68db ldr r3, [r3, #12] + 80250ce: 2108 movs r1, #8 + 80250d0: 4618 mov r0, r3 + 80250d2: f7fe fe4b bl 8023d6c + 80250d6: 4603 mov r3, r0 + 80250d8: 4619 mov r1, r3 + 80250da: 4620 mov r0, r4 + 80250dc: f00f fe82 bl 8034de4 lv_style_set_clip_corner(&styles->menu_section, true); - 8025174: 4bad ldr r3, [pc, #692] ; (802542c ) - 8025176: 681b ldr r3, [r3, #0] - 8025178: f503 73ec add.w r3, r3, #472 ; 0x1d8 - 802517c: 2101 movs r1, #1 - 802517e: 4618 mov r0, r3 - 8025180: f00f fe8c bl 8034e9c + 80250e0: 4bad ldr r3, [pc, #692] ; (8025398 ) + 80250e2: 681b ldr r3, [r3, #0] + 80250e4: f503 73ec add.w r3, r3, #472 ; 0x1d8 + 80250e8: 2101 movs r1, #1 + 80250ea: 4618 mov r0, r3 + 80250ec: f00f fe8c bl 8034e08 lv_style_set_bg_opa(&styles->menu_section, LV_OPA_COVER); - 8025184: 4ba9 ldr r3, [pc, #676] ; (802542c ) - 8025186: 681b ldr r3, [r3, #0] - 8025188: f503 73ec add.w r3, r3, #472 ; 0x1d8 - 802518c: 21ff movs r1, #255 ; 0xff - 802518e: 4618 mov r0, r3 - 8025190: f00f fc9b bl 8034aca + 80250f0: 4ba9 ldr r3, [pc, #676] ; (8025398 ) + 80250f2: 681b ldr r3, [r3, #0] + 80250f4: f503 73ec add.w r3, r3, #472 ; 0x1d8 + 80250f8: 21ff movs r1, #255 ; 0xff + 80250fa: 4618 mov r0, r3 + 80250fc: f00f fc9b bl 8034a36 lv_style_set_bg_color(&styles->menu_section, color_card); - 8025194: 4ba5 ldr r3, [pc, #660] ; (802542c ) - 8025196: 681b ldr r3, [r3, #0] - 8025198: f503 73ec add.w r3, r3, #472 ; 0x1d8 - 802519c: 4aa4 ldr r2, [pc, #656] ; (8025430 ) - 802519e: 8811 ldrh r1, [r2, #0] - 80251a0: 4618 mov r0, r3 - 80251a2: f00f fc80 bl 8034aa6 + 8025100: 4ba5 ldr r3, [pc, #660] ; (8025398 ) + 8025102: 681b ldr r3, [r3, #0] + 8025104: f503 73ec add.w r3, r3, #472 ; 0x1d8 + 8025108: 4aa4 ldr r2, [pc, #656] ; (802539c ) + 802510a: 8811 ldrh r1, [r2, #0] + 802510c: 4618 mov r0, r3 + 802510e: f00f fc80 bl 8034a12 lv_style_set_text_color(&styles->menu_section, color_text); - 80251a6: 4ba1 ldr r3, [pc, #644] ; (802542c ) - 80251a8: 681b ldr r3, [r3, #0] - 80251aa: f503 73ec add.w r3, r3, #472 ; 0x1d8 - 80251ae: 4aa1 ldr r2, [pc, #644] ; (8025434 ) - 80251b0: 8811 ldrh r1, [r2, #0] - 80251b2: 4618 mov r0, r3 - 80251b4: f00f fe17 bl 8034de6 + 8025112: 4ba1 ldr r3, [pc, #644] ; (8025398 ) + 8025114: 681b ldr r3, [r3, #0] + 8025116: f503 73ec add.w r3, r3, #472 ; 0x1d8 + 802511a: 4aa1 ldr r2, [pc, #644] ; (80253a0 ) + 802511c: 8811 ldrh r1, [r2, #0] + 802511e: 4618 mov r0, r3 + 8025120: f00f fe17 bl 8034d52 style_init_reset(&styles->menu_cont); - 80251b8: 4b9c ldr r3, [pc, #624] ; (802542c ) - 80251ba: 681b ldr r3, [r3, #0] - 80251bc: f503 73d4 add.w r3, r3, #424 ; 0x1a8 - 80251c0: 4618 mov r0, r3 - 80251c2: f002 f9c7 bl 8027554 + 8025124: 4b9c ldr r3, [pc, #624] ; (8025398 ) + 8025126: 681b ldr r3, [r3, #0] + 8025128: f503 73d4 add.w r3, r3, #424 ; 0x1a8 + 802512c: 4618 mov r0, r3 + 802512e: f002 f9c7 bl 80274c0 lv_style_set_pad_hor(&styles->menu_cont, PAD_SMALL); - 80251c6: 4b99 ldr r3, [pc, #612] ; (802542c ) - 80251c8: 681b ldr r3, [r3, #0] - 80251ca: f503 74d4 add.w r4, r3, #424 ; 0x1a8 - 80251ce: 4b9a ldr r3, [pc, #616] ; (8025438 ) - 80251d0: 781b ldrb r3, [r3, #0] - 80251d2: 2b01 cmp r3, #1 - 80251d4: d107 bne.n 80251e6 - 80251d6: 4b94 ldr r3, [pc, #592] ; (8025428 ) - 80251d8: 68db ldr r3, [r3, #12] - 80251da: 210e movs r1, #14 - 80251dc: 4618 mov r0, r3 - 80251de: f7fe fe0f bl 8023e00 - 80251e2: 4603 mov r3, r0 - 80251e4: e012 b.n 802520c - 80251e6: 4b94 ldr r3, [pc, #592] ; (8025438 ) - 80251e8: 781b ldrb r3, [r3, #0] - 80251ea: 2b02 cmp r3, #2 - 80251ec: d107 bne.n 80251fe - 80251ee: 4b8e ldr r3, [pc, #568] ; (8025428 ) - 80251f0: 68db ldr r3, [r3, #12] - 80251f2: 210c movs r1, #12 - 80251f4: 4618 mov r0, r3 - 80251f6: f7fe fe03 bl 8023e00 - 80251fa: 4603 mov r3, r0 - 80251fc: e006 b.n 802520c - 80251fe: 4b8a ldr r3, [pc, #552] ; (8025428 ) - 8025200: 68db ldr r3, [r3, #12] - 8025202: 210a movs r1, #10 - 8025204: 4618 mov r0, r3 - 8025206: f7fe fdfb bl 8023e00 - 802520a: 4603 mov r3, r0 - 802520c: 4619 mov r1, r3 - 802520e: 4620 mov r0, r4 - 8025210: f7fe fdb3 bl 8023d7a + 8025132: 4b99 ldr r3, [pc, #612] ; (8025398 ) + 8025134: 681b ldr r3, [r3, #0] + 8025136: f503 74d4 add.w r4, r3, #424 ; 0x1a8 + 802513a: 4b9a ldr r3, [pc, #616] ; (80253a4 ) + 802513c: 781b ldrb r3, [r3, #0] + 802513e: 2b01 cmp r3, #1 + 8025140: d107 bne.n 8025152 + 8025142: 4b94 ldr r3, [pc, #592] ; (8025394 ) + 8025144: 68db ldr r3, [r3, #12] + 8025146: 210e movs r1, #14 + 8025148: 4618 mov r0, r3 + 802514a: f7fe fe0f bl 8023d6c + 802514e: 4603 mov r3, r0 + 8025150: e012 b.n 8025178 + 8025152: 4b94 ldr r3, [pc, #592] ; (80253a4 ) + 8025154: 781b ldrb r3, [r3, #0] + 8025156: 2b02 cmp r3, #2 + 8025158: d107 bne.n 802516a + 802515a: 4b8e ldr r3, [pc, #568] ; (8025394 ) + 802515c: 68db ldr r3, [r3, #12] + 802515e: 210c movs r1, #12 + 8025160: 4618 mov r0, r3 + 8025162: f7fe fe03 bl 8023d6c + 8025166: 4603 mov r3, r0 + 8025168: e006 b.n 8025178 + 802516a: 4b8a ldr r3, [pc, #552] ; (8025394 ) + 802516c: 68db ldr r3, [r3, #12] + 802516e: 210a movs r1, #10 + 8025170: 4618 mov r0, r3 + 8025172: f7fe fdfb bl 8023d6c + 8025176: 4603 mov r3, r0 + 8025178: 4619 mov r1, r3 + 802517a: 4620 mov r0, r4 + 802517c: f7fe fdb3 bl 8023ce6 lv_style_set_pad_ver(&styles->menu_cont, PAD_SMALL); - 8025214: 4b85 ldr r3, [pc, #532] ; (802542c ) - 8025216: 681b ldr r3, [r3, #0] - 8025218: f503 74d4 add.w r4, r3, #424 ; 0x1a8 - 802521c: 4b86 ldr r3, [pc, #536] ; (8025438 ) - 802521e: 781b ldrb r3, [r3, #0] - 8025220: 2b01 cmp r3, #1 - 8025222: d107 bne.n 8025234 - 8025224: 4b80 ldr r3, [pc, #512] ; (8025428 ) - 8025226: 68db ldr r3, [r3, #12] - 8025228: 210e movs r1, #14 - 802522a: 4618 mov r0, r3 - 802522c: f7fe fde8 bl 8023e00 - 8025230: 4603 mov r3, r0 - 8025232: e012 b.n 802525a - 8025234: 4b80 ldr r3, [pc, #512] ; (8025438 ) - 8025236: 781b ldrb r3, [r3, #0] - 8025238: 2b02 cmp r3, #2 - 802523a: d107 bne.n 802524c - 802523c: 4b7a ldr r3, [pc, #488] ; (8025428 ) - 802523e: 68db ldr r3, [r3, #12] - 8025240: 210c movs r1, #12 - 8025242: 4618 mov r0, r3 - 8025244: f7fe fddc bl 8023e00 - 8025248: 4603 mov r3, r0 - 802524a: e006 b.n 802525a - 802524c: 4b76 ldr r3, [pc, #472] ; (8025428 ) - 802524e: 68db ldr r3, [r3, #12] - 8025250: 210a movs r1, #10 - 8025252: 4618 mov r0, r3 - 8025254: f7fe fdd4 bl 8023e00 - 8025258: 4603 mov r3, r0 - 802525a: 4619 mov r1, r3 - 802525c: 4620 mov r0, r4 - 802525e: f7fe fda2 bl 8023da6 + 8025180: 4b85 ldr r3, [pc, #532] ; (8025398 ) + 8025182: 681b ldr r3, [r3, #0] + 8025184: f503 74d4 add.w r4, r3, #424 ; 0x1a8 + 8025188: 4b86 ldr r3, [pc, #536] ; (80253a4 ) + 802518a: 781b ldrb r3, [r3, #0] + 802518c: 2b01 cmp r3, #1 + 802518e: d107 bne.n 80251a0 + 8025190: 4b80 ldr r3, [pc, #512] ; (8025394 ) + 8025192: 68db ldr r3, [r3, #12] + 8025194: 210e movs r1, #14 + 8025196: 4618 mov r0, r3 + 8025198: f7fe fde8 bl 8023d6c + 802519c: 4603 mov r3, r0 + 802519e: e012 b.n 80251c6 + 80251a0: 4b80 ldr r3, [pc, #512] ; (80253a4 ) + 80251a2: 781b ldrb r3, [r3, #0] + 80251a4: 2b02 cmp r3, #2 + 80251a6: d107 bne.n 80251b8 + 80251a8: 4b7a ldr r3, [pc, #488] ; (8025394 ) + 80251aa: 68db ldr r3, [r3, #12] + 80251ac: 210c movs r1, #12 + 80251ae: 4618 mov r0, r3 + 80251b0: f7fe fddc bl 8023d6c + 80251b4: 4603 mov r3, r0 + 80251b6: e006 b.n 80251c6 + 80251b8: 4b76 ldr r3, [pc, #472] ; (8025394 ) + 80251ba: 68db ldr r3, [r3, #12] + 80251bc: 210a movs r1, #10 + 80251be: 4618 mov r0, r3 + 80251c0: f7fe fdd4 bl 8023d6c + 80251c4: 4603 mov r3, r0 + 80251c6: 4619 mov r1, r3 + 80251c8: 4620 mov r0, r4 + 80251ca: f7fe fda2 bl 8023d12 lv_style_set_pad_gap(&styles->menu_cont, PAD_SMALL); - 8025262: 4b72 ldr r3, [pc, #456] ; (802542c ) - 8025264: 681b ldr r3, [r3, #0] - 8025266: f503 74d4 add.w r4, r3, #424 ; 0x1a8 - 802526a: 4b73 ldr r3, [pc, #460] ; (8025438 ) - 802526c: 781b ldrb r3, [r3, #0] - 802526e: 2b01 cmp r3, #1 - 8025270: d107 bne.n 8025282 - 8025272: 4b6d ldr r3, [pc, #436] ; (8025428 ) - 8025274: 68db ldr r3, [r3, #12] - 8025276: 210e movs r1, #14 - 8025278: 4618 mov r0, r3 - 802527a: f7fe fdc1 bl 8023e00 - 802527e: 4603 mov r3, r0 - 8025280: e012 b.n 80252a8 - 8025282: 4b6d ldr r3, [pc, #436] ; (8025438 ) - 8025284: 781b ldrb r3, [r3, #0] - 8025286: 2b02 cmp r3, #2 - 8025288: d107 bne.n 802529a - 802528a: 4b67 ldr r3, [pc, #412] ; (8025428 ) - 802528c: 68db ldr r3, [r3, #12] - 802528e: 210c movs r1, #12 - 8025290: 4618 mov r0, r3 - 8025292: f7fe fdb5 bl 8023e00 - 8025296: 4603 mov r3, r0 - 8025298: e006 b.n 80252a8 - 802529a: 4b63 ldr r3, [pc, #396] ; (8025428 ) - 802529c: 68db ldr r3, [r3, #12] - 802529e: 210a movs r1, #10 - 80252a0: 4618 mov r0, r3 - 80252a2: f7fe fdad bl 8023e00 - 80252a6: 4603 mov r3, r0 - 80252a8: 4619 mov r1, r3 - 80252aa: 4620 mov r0, r4 - 80252ac: f7fe fd91 bl 8023dd2 + 80251ce: 4b72 ldr r3, [pc, #456] ; (8025398 ) + 80251d0: 681b ldr r3, [r3, #0] + 80251d2: f503 74d4 add.w r4, r3, #424 ; 0x1a8 + 80251d6: 4b73 ldr r3, [pc, #460] ; (80253a4 ) + 80251d8: 781b ldrb r3, [r3, #0] + 80251da: 2b01 cmp r3, #1 + 80251dc: d107 bne.n 80251ee + 80251de: 4b6d ldr r3, [pc, #436] ; (8025394 ) + 80251e0: 68db ldr r3, [r3, #12] + 80251e2: 210e movs r1, #14 + 80251e4: 4618 mov r0, r3 + 80251e6: f7fe fdc1 bl 8023d6c + 80251ea: 4603 mov r3, r0 + 80251ec: e012 b.n 8025214 + 80251ee: 4b6d ldr r3, [pc, #436] ; (80253a4 ) + 80251f0: 781b ldrb r3, [r3, #0] + 80251f2: 2b02 cmp r3, #2 + 80251f4: d107 bne.n 8025206 + 80251f6: 4b67 ldr r3, [pc, #412] ; (8025394 ) + 80251f8: 68db ldr r3, [r3, #12] + 80251fa: 210c movs r1, #12 + 80251fc: 4618 mov r0, r3 + 80251fe: f7fe fdb5 bl 8023d6c + 8025202: 4603 mov r3, r0 + 8025204: e006 b.n 8025214 + 8025206: 4b63 ldr r3, [pc, #396] ; (8025394 ) + 8025208: 68db ldr r3, [r3, #12] + 802520a: 210a movs r1, #10 + 802520c: 4618 mov r0, r3 + 802520e: f7fe fdad bl 8023d6c + 8025212: 4603 mov r3, r0 + 8025214: 4619 mov r1, r3 + 8025216: 4620 mov r0, r4 + 8025218: f7fe fd91 bl 8023d3e lv_style_set_border_width(&styles->menu_cont, lv_disp_dpx(theme.disp, 1)); - 80252b0: 4b5e ldr r3, [pc, #376] ; (802542c ) - 80252b2: 681b ldr r3, [r3, #0] - 80252b4: f503 74d4 add.w r4, r3, #424 ; 0x1a8 - 80252b8: 4b5b ldr r3, [pc, #364] ; (8025428 ) - 80252ba: 68db ldr r3, [r3, #12] - 80252bc: 2101 movs r1, #1 - 80252be: 4618 mov r0, r3 - 80252c0: f7fe fd9e bl 8023e00 - 80252c4: 4603 mov r3, r0 - 80252c6: 4619 mov r1, r3 - 80252c8: 4620 mov r0, r4 - 80252ca: f00f fc55 bl 8034b78 + 802521c: 4b5e ldr r3, [pc, #376] ; (8025398 ) + 802521e: 681b ldr r3, [r3, #0] + 8025220: f503 74d4 add.w r4, r3, #424 ; 0x1a8 + 8025224: 4b5b ldr r3, [pc, #364] ; (8025394 ) + 8025226: 68db ldr r3, [r3, #12] + 8025228: 2101 movs r1, #1 + 802522a: 4618 mov r0, r3 + 802522c: f7fe fd9e bl 8023d6c + 8025230: 4603 mov r3, r0 + 8025232: 4619 mov r1, r3 + 8025234: 4620 mov r0, r4 + 8025236: f00f fc55 bl 8034ae4 lv_style_set_border_opa(&styles->menu_cont, LV_OPA_10); - 80252ce: 4b57 ldr r3, [pc, #348] ; (802542c ) - 80252d0: 681b ldr r3, [r3, #0] - 80252d2: f503 73d4 add.w r3, r3, #424 ; 0x1a8 - 80252d6: 2119 movs r1, #25 - 80252d8: 4618 mov r0, r3 - 80252da: f00f fc3c bl 8034b56 + 802523a: 4b57 ldr r3, [pc, #348] ; (8025398 ) + 802523c: 681b ldr r3, [r3, #0] + 802523e: f503 73d4 add.w r3, r3, #424 ; 0x1a8 + 8025242: 2119 movs r1, #25 + 8025244: 4618 mov r0, r3 + 8025246: f00f fc3c bl 8034ac2 lv_style_set_border_color(&styles->menu_cont, color_text); - 80252de: 4b53 ldr r3, [pc, #332] ; (802542c ) - 80252e0: 681b ldr r3, [r3, #0] - 80252e2: f503 73d4 add.w r3, r3, #424 ; 0x1a8 - 80252e6: 4a53 ldr r2, [pc, #332] ; (8025434 ) - 80252e8: 8811 ldrh r1, [r2, #0] - 80252ea: 4618 mov r0, r3 - 80252ec: f00f fc21 bl 8034b32 + 802524a: 4b53 ldr r3, [pc, #332] ; (8025398 ) + 802524c: 681b ldr r3, [r3, #0] + 802524e: f503 73d4 add.w r3, r3, #424 ; 0x1a8 + 8025252: 4a53 ldr r2, [pc, #332] ; (80253a0 ) + 8025254: 8811 ldrh r1, [r2, #0] + 8025256: 4618 mov r0, r3 + 8025258: f00f fc21 bl 8034a9e lv_style_set_border_side(&styles->menu_cont, LV_BORDER_SIDE_NONE); - 80252f0: 4b4e ldr r3, [pc, #312] ; (802542c ) - 80252f2: 681b ldr r3, [r3, #0] - 80252f4: f503 73d4 add.w r3, r3, #424 ; 0x1a8 - 80252f8: 2100 movs r1, #0 - 80252fa: 4618 mov r0, r3 - 80252fc: f00f fc4f bl 8034b9e + 802525c: 4b4e ldr r3, [pc, #312] ; (8025398 ) + 802525e: 681b ldr r3, [r3, #0] + 8025260: f503 73d4 add.w r3, r3, #424 ; 0x1a8 + 8025264: 2100 movs r1, #0 + 8025266: 4618 mov r0, r3 + 8025268: f00f fc4f bl 8034b0a style_init_reset(&styles->menu_sidebar_cont); - 8025300: 4b4a ldr r3, [pc, #296] ; (802542c ) - 8025302: 681b ldr r3, [r3, #0] - 8025304: f503 73d8 add.w r3, r3, #432 ; 0x1b0 - 8025308: 4618 mov r0, r3 - 802530a: f002 f923 bl 8027554 + 802526c: 4b4a ldr r3, [pc, #296] ; (8025398 ) + 802526e: 681b ldr r3, [r3, #0] + 8025270: f503 73d8 add.w r3, r3, #432 ; 0x1b0 + 8025274: 4618 mov r0, r3 + 8025276: f002 f923 bl 80274c0 lv_style_set_pad_all(&styles->menu_sidebar_cont, 0); - 802530e: 4b47 ldr r3, [pc, #284] ; (802542c ) - 8025310: 681b ldr r3, [r3, #0] - 8025312: f503 73d8 add.w r3, r3, #432 ; 0x1b0 - 8025316: 2100 movs r1, #0 - 8025318: 4618 mov r0, r3 - 802531a: f7fe fd0c bl 8023d36 + 802527a: 4b47 ldr r3, [pc, #284] ; (8025398 ) + 802527c: 681b ldr r3, [r3, #0] + 802527e: f503 73d8 add.w r3, r3, #432 ; 0x1b0 + 8025282: 2100 movs r1, #0 + 8025284: 4618 mov r0, r3 + 8025286: f7fe fd0c bl 8023ca2 lv_style_set_pad_gap(&styles->menu_sidebar_cont, 0); - 802531e: 4b43 ldr r3, [pc, #268] ; (802542c ) - 8025320: 681b ldr r3, [r3, #0] - 8025322: f503 73d8 add.w r3, r3, #432 ; 0x1b0 - 8025326: 2100 movs r1, #0 - 8025328: 4618 mov r0, r3 - 802532a: f7fe fd52 bl 8023dd2 + 802528a: 4b43 ldr r3, [pc, #268] ; (8025398 ) + 802528c: 681b ldr r3, [r3, #0] + 802528e: f503 73d8 add.w r3, r3, #432 ; 0x1b0 + 8025292: 2100 movs r1, #0 + 8025294: 4618 mov r0, r3 + 8025296: f7fe fd52 bl 8023d3e lv_style_set_border_width(&styles->menu_sidebar_cont, lv_disp_dpx(theme.disp, 1)); - 802532e: 4b3f ldr r3, [pc, #252] ; (802542c ) - 8025330: 681b ldr r3, [r3, #0] - 8025332: f503 74d8 add.w r4, r3, #432 ; 0x1b0 - 8025336: 4b3c ldr r3, [pc, #240] ; (8025428 ) - 8025338: 68db ldr r3, [r3, #12] - 802533a: 2101 movs r1, #1 - 802533c: 4618 mov r0, r3 - 802533e: f7fe fd5f bl 8023e00 - 8025342: 4603 mov r3, r0 - 8025344: 4619 mov r1, r3 - 8025346: 4620 mov r0, r4 - 8025348: f00f fc16 bl 8034b78 + 802529a: 4b3f ldr r3, [pc, #252] ; (8025398 ) + 802529c: 681b ldr r3, [r3, #0] + 802529e: f503 74d8 add.w r4, r3, #432 ; 0x1b0 + 80252a2: 4b3c ldr r3, [pc, #240] ; (8025394 ) + 80252a4: 68db ldr r3, [r3, #12] + 80252a6: 2101 movs r1, #1 + 80252a8: 4618 mov r0, r3 + 80252aa: f7fe fd5f bl 8023d6c + 80252ae: 4603 mov r3, r0 + 80252b0: 4619 mov r1, r3 + 80252b2: 4620 mov r0, r4 + 80252b4: f00f fc16 bl 8034ae4 lv_style_set_border_opa(&styles->menu_sidebar_cont, LV_OPA_10); - 802534c: 4b37 ldr r3, [pc, #220] ; (802542c ) - 802534e: 681b ldr r3, [r3, #0] - 8025350: f503 73d8 add.w r3, r3, #432 ; 0x1b0 - 8025354: 2119 movs r1, #25 - 8025356: 4618 mov r0, r3 - 8025358: f00f fbfd bl 8034b56 + 80252b8: 4b37 ldr r3, [pc, #220] ; (8025398 ) + 80252ba: 681b ldr r3, [r3, #0] + 80252bc: f503 73d8 add.w r3, r3, #432 ; 0x1b0 + 80252c0: 2119 movs r1, #25 + 80252c2: 4618 mov r0, r3 + 80252c4: f00f fbfd bl 8034ac2 lv_style_set_border_color(&styles->menu_sidebar_cont, color_text); - 802535c: 4b33 ldr r3, [pc, #204] ; (802542c ) - 802535e: 681b ldr r3, [r3, #0] - 8025360: f503 73d8 add.w r3, r3, #432 ; 0x1b0 - 8025364: 4a33 ldr r2, [pc, #204] ; (8025434 ) - 8025366: 8811 ldrh r1, [r2, #0] - 8025368: 4618 mov r0, r3 - 802536a: f00f fbe2 bl 8034b32 + 80252c8: 4b33 ldr r3, [pc, #204] ; (8025398 ) + 80252ca: 681b ldr r3, [r3, #0] + 80252cc: f503 73d8 add.w r3, r3, #432 ; 0x1b0 + 80252d0: 4a33 ldr r2, [pc, #204] ; (80253a0 ) + 80252d2: 8811 ldrh r1, [r2, #0] + 80252d4: 4618 mov r0, r3 + 80252d6: f00f fbe2 bl 8034a9e lv_style_set_border_side(&styles->menu_sidebar_cont, LV_BORDER_SIDE_RIGHT); - 802536e: 4b2f ldr r3, [pc, #188] ; (802542c ) - 8025370: 681b ldr r3, [r3, #0] - 8025372: f503 73d8 add.w r3, r3, #432 ; 0x1b0 - 8025376: 2108 movs r1, #8 - 8025378: 4618 mov r0, r3 - 802537a: f00f fc10 bl 8034b9e + 80252da: 4b2f ldr r3, [pc, #188] ; (8025398 ) + 80252dc: 681b ldr r3, [r3, #0] + 80252de: f503 73d8 add.w r3, r3, #432 ; 0x1b0 + 80252e2: 2108 movs r1, #8 + 80252e4: 4618 mov r0, r3 + 80252e6: f00f fc10 bl 8034b0a style_init_reset(&styles->menu_main_cont); - 802537e: 4b2b ldr r3, [pc, #172] ; (802542c ) - 8025380: 681b ldr r3, [r3, #0] - 8025382: f503 73dc add.w r3, r3, #440 ; 0x1b8 - 8025386: 4618 mov r0, r3 - 8025388: f002 f8e4 bl 8027554 + 80252ea: 4b2b ldr r3, [pc, #172] ; (8025398 ) + 80252ec: 681b ldr r3, [r3, #0] + 80252ee: f503 73dc add.w r3, r3, #440 ; 0x1b8 + 80252f2: 4618 mov r0, r3 + 80252f4: f002 f8e4 bl 80274c0 lv_style_set_pad_all(&styles->menu_main_cont, 0); - 802538c: 4b27 ldr r3, [pc, #156] ; (802542c ) - 802538e: 681b ldr r3, [r3, #0] - 8025390: f503 73dc add.w r3, r3, #440 ; 0x1b8 - 8025394: 2100 movs r1, #0 - 8025396: 4618 mov r0, r3 - 8025398: f7fe fccd bl 8023d36 + 80252f8: 4b27 ldr r3, [pc, #156] ; (8025398 ) + 80252fa: 681b ldr r3, [r3, #0] + 80252fc: f503 73dc add.w r3, r3, #440 ; 0x1b8 + 8025300: 2100 movs r1, #0 + 8025302: 4618 mov r0, r3 + 8025304: f7fe fccd bl 8023ca2 lv_style_set_pad_gap(&styles->menu_main_cont, 0); - 802539c: 4b23 ldr r3, [pc, #140] ; (802542c ) - 802539e: 681b ldr r3, [r3, #0] - 80253a0: f503 73dc add.w r3, r3, #440 ; 0x1b8 - 80253a4: 2100 movs r1, #0 - 80253a6: 4618 mov r0, r3 - 80253a8: f7fe fd13 bl 8023dd2 + 8025308: 4b23 ldr r3, [pc, #140] ; (8025398 ) + 802530a: 681b ldr r3, [r3, #0] + 802530c: f503 73dc add.w r3, r3, #440 ; 0x1b8 + 8025310: 2100 movs r1, #0 + 8025312: 4618 mov r0, r3 + 8025314: f7fe fd13 bl 8023d3e style_init_reset(&styles->menu_header_cont); - 80253ac: 4b1f ldr r3, [pc, #124] ; (802542c ) - 80253ae: 681b ldr r3, [r3, #0] - 80253b0: f503 73e4 add.w r3, r3, #456 ; 0x1c8 - 80253b4: 4618 mov r0, r3 - 80253b6: f002 f8cd bl 8027554 + 8025318: 4b1f ldr r3, [pc, #124] ; (8025398 ) + 802531a: 681b ldr r3, [r3, #0] + 802531c: f503 73e4 add.w r3, r3, #456 ; 0x1c8 + 8025320: 4618 mov r0, r3 + 8025322: f002 f8cd bl 80274c0 lv_style_set_pad_hor(&styles->menu_header_cont, PAD_SMALL); - 80253ba: 4b1c ldr r3, [pc, #112] ; (802542c ) - 80253bc: 681b ldr r3, [r3, #0] - 80253be: f503 74e4 add.w r4, r3, #456 ; 0x1c8 - 80253c2: 4b1d ldr r3, [pc, #116] ; (8025438 ) - 80253c4: 781b ldrb r3, [r3, #0] - 80253c6: 2b01 cmp r3, #1 - 80253c8: d107 bne.n 80253da - 80253ca: 4b17 ldr r3, [pc, #92] ; (8025428 ) - 80253cc: 68db ldr r3, [r3, #12] - 80253ce: 210e movs r1, #14 - 80253d0: 4618 mov r0, r3 - 80253d2: f7fe fd15 bl 8023e00 - 80253d6: 4603 mov r3, r0 - 80253d8: e012 b.n 8025400 - 80253da: 4b17 ldr r3, [pc, #92] ; (8025438 ) - 80253dc: 781b ldrb r3, [r3, #0] - 80253de: 2b02 cmp r3, #2 - 80253e0: d107 bne.n 80253f2 - 80253e2: 4b11 ldr r3, [pc, #68] ; (8025428 ) - 80253e4: 68db ldr r3, [r3, #12] - 80253e6: 210c movs r1, #12 - 80253e8: 4618 mov r0, r3 - 80253ea: f7fe fd09 bl 8023e00 - 80253ee: 4603 mov r3, r0 - 80253f0: e006 b.n 8025400 - 80253f2: 4b0d ldr r3, [pc, #52] ; (8025428 ) - 80253f4: 68db ldr r3, [r3, #12] - 80253f6: 210a movs r1, #10 - 80253f8: 4618 mov r0, r3 - 80253fa: f7fe fd01 bl 8023e00 - 80253fe: 4603 mov r3, r0 - 8025400: 4619 mov r1, r3 - 8025402: 4620 mov r0, r4 - 8025404: f7fe fcb9 bl 8023d7a + 8025326: 4b1c ldr r3, [pc, #112] ; (8025398 ) + 8025328: 681b ldr r3, [r3, #0] + 802532a: f503 74e4 add.w r4, r3, #456 ; 0x1c8 + 802532e: 4b1d ldr r3, [pc, #116] ; (80253a4 ) + 8025330: 781b ldrb r3, [r3, #0] + 8025332: 2b01 cmp r3, #1 + 8025334: d107 bne.n 8025346 + 8025336: 4b17 ldr r3, [pc, #92] ; (8025394 ) + 8025338: 68db ldr r3, [r3, #12] + 802533a: 210e movs r1, #14 + 802533c: 4618 mov r0, r3 + 802533e: f7fe fd15 bl 8023d6c + 8025342: 4603 mov r3, r0 + 8025344: e012 b.n 802536c + 8025346: 4b17 ldr r3, [pc, #92] ; (80253a4 ) + 8025348: 781b ldrb r3, [r3, #0] + 802534a: 2b02 cmp r3, #2 + 802534c: d107 bne.n 802535e + 802534e: 4b11 ldr r3, [pc, #68] ; (8025394 ) + 8025350: 68db ldr r3, [r3, #12] + 8025352: 210c movs r1, #12 + 8025354: 4618 mov r0, r3 + 8025356: f7fe fd09 bl 8023d6c + 802535a: 4603 mov r3, r0 + 802535c: e006 b.n 802536c + 802535e: 4b0d ldr r3, [pc, #52] ; (8025394 ) + 8025360: 68db ldr r3, [r3, #12] + 8025362: 210a movs r1, #10 + 8025364: 4618 mov r0, r3 + 8025366: f7fe fd01 bl 8023d6c + 802536a: 4603 mov r3, r0 + 802536c: 4619 mov r1, r3 + 802536e: 4620 mov r0, r4 + 8025370: f7fe fcb9 bl 8023ce6 lv_style_set_pad_ver(&styles->menu_header_cont, PAD_TINY); - 8025408: 4b08 ldr r3, [pc, #32] ; (802542c ) - 802540a: 681b ldr r3, [r3, #0] - 802540c: f503 74e4 add.w r4, r3, #456 ; 0x1c8 - 8025410: 4b09 ldr r3, [pc, #36] ; (8025438 ) - 8025412: 781b ldrb r3, [r3, #0] - 8025414: 2b01 cmp r3, #1 - 8025416: d111 bne.n 802543c - 8025418: 4b03 ldr r3, [pc, #12] ; (8025428 ) - 802541a: 68db ldr r3, [r3, #12] - 802541c: 2108 movs r1, #8 - 802541e: 4618 mov r0, r3 - 8025420: f7fe fcee bl 8023e00 - 8025424: 4603 mov r3, r0 - 8025426: e01c b.n 8025462 - 8025428: 20001c50 .word 0x20001c50 - 802542c: 20001c4c .word 0x20001c4c - 8025430: 20001c80 .word 0x20001c80 - 8025434: 20001c7c .word 0x20001c7c - 8025438: 20001c74 .word 0x20001c74 - 802543c: 4b84 ldr r3, [pc, #528] ; (8025650 ) - 802543e: 781b ldrb r3, [r3, #0] - 8025440: 2b02 cmp r3, #2 - 8025442: d107 bne.n 8025454 - 8025444: 4b83 ldr r3, [pc, #524] ; (8025654 ) - 8025446: 68db ldr r3, [r3, #12] - 8025448: 2106 movs r1, #6 - 802544a: 4618 mov r0, r3 - 802544c: f7fe fcd8 bl 8023e00 - 8025450: 4603 mov r3, r0 - 8025452: e006 b.n 8025462 - 8025454: 4b7f ldr r3, [pc, #508] ; (8025654 ) - 8025456: 68db ldr r3, [r3, #12] - 8025458: 2102 movs r1, #2 - 802545a: 4618 mov r0, r3 - 802545c: f7fe fcd0 bl 8023e00 - 8025460: 4603 mov r3, r0 - 8025462: 4619 mov r1, r3 - 8025464: 4620 mov r0, r4 - 8025466: f7fe fc9e bl 8023da6 + 8025374: 4b08 ldr r3, [pc, #32] ; (8025398 ) + 8025376: 681b ldr r3, [r3, #0] + 8025378: f503 74e4 add.w r4, r3, #456 ; 0x1c8 + 802537c: 4b09 ldr r3, [pc, #36] ; (80253a4 ) + 802537e: 781b ldrb r3, [r3, #0] + 8025380: 2b01 cmp r3, #1 + 8025382: d111 bne.n 80253a8 + 8025384: 4b03 ldr r3, [pc, #12] ; (8025394 ) + 8025386: 68db ldr r3, [r3, #12] + 8025388: 2108 movs r1, #8 + 802538a: 4618 mov r0, r3 + 802538c: f7fe fcee bl 8023d6c + 8025390: 4603 mov r3, r0 + 8025392: e01c b.n 80253ce + 8025394: 20001c50 .word 0x20001c50 + 8025398: 20001c4c .word 0x20001c4c + 802539c: 20001c80 .word 0x20001c80 + 80253a0: 20001c7c .word 0x20001c7c + 80253a4: 20001c74 .word 0x20001c74 + 80253a8: 4b84 ldr r3, [pc, #528] ; (80255bc ) + 80253aa: 781b ldrb r3, [r3, #0] + 80253ac: 2b02 cmp r3, #2 + 80253ae: d107 bne.n 80253c0 + 80253b0: 4b83 ldr r3, [pc, #524] ; (80255c0 ) + 80253b2: 68db ldr r3, [r3, #12] + 80253b4: 2106 movs r1, #6 + 80253b6: 4618 mov r0, r3 + 80253b8: f7fe fcd8 bl 8023d6c + 80253bc: 4603 mov r3, r0 + 80253be: e006 b.n 80253ce + 80253c0: 4b7f ldr r3, [pc, #508] ; (80255c0 ) + 80253c2: 68db ldr r3, [r3, #12] + 80253c4: 2102 movs r1, #2 + 80253c6: 4618 mov r0, r3 + 80253c8: f7fe fcd0 bl 8023d6c + 80253cc: 4603 mov r3, r0 + 80253ce: 4619 mov r1, r3 + 80253d0: 4620 mov r0, r4 + 80253d2: f7fe fc9e bl 8023d12 lv_style_set_pad_gap(&styles->menu_header_cont, PAD_SMALL); - 802546a: 4b7b ldr r3, [pc, #492] ; (8025658 ) - 802546c: 681b ldr r3, [r3, #0] - 802546e: f503 74e4 add.w r4, r3, #456 ; 0x1c8 - 8025472: 4b77 ldr r3, [pc, #476] ; (8025650 ) - 8025474: 781b ldrb r3, [r3, #0] - 8025476: 2b01 cmp r3, #1 - 8025478: d107 bne.n 802548a - 802547a: 4b76 ldr r3, [pc, #472] ; (8025654 ) - 802547c: 68db ldr r3, [r3, #12] - 802547e: 210e movs r1, #14 - 8025480: 4618 mov r0, r3 - 8025482: f7fe fcbd bl 8023e00 - 8025486: 4603 mov r3, r0 - 8025488: e012 b.n 80254b0 - 802548a: 4b71 ldr r3, [pc, #452] ; (8025650 ) - 802548c: 781b ldrb r3, [r3, #0] - 802548e: 2b02 cmp r3, #2 - 8025490: d107 bne.n 80254a2 - 8025492: 4b70 ldr r3, [pc, #448] ; (8025654 ) - 8025494: 68db ldr r3, [r3, #12] - 8025496: 210c movs r1, #12 - 8025498: 4618 mov r0, r3 - 802549a: f7fe fcb1 bl 8023e00 - 802549e: 4603 mov r3, r0 - 80254a0: e006 b.n 80254b0 - 80254a2: 4b6c ldr r3, [pc, #432] ; (8025654 ) - 80254a4: 68db ldr r3, [r3, #12] - 80254a6: 210a movs r1, #10 - 80254a8: 4618 mov r0, r3 - 80254aa: f7fe fca9 bl 8023e00 - 80254ae: 4603 mov r3, r0 - 80254b0: 4619 mov r1, r3 - 80254b2: 4620 mov r0, r4 - 80254b4: f7fe fc8d bl 8023dd2 + 80253d6: 4b7b ldr r3, [pc, #492] ; (80255c4 ) + 80253d8: 681b ldr r3, [r3, #0] + 80253da: f503 74e4 add.w r4, r3, #456 ; 0x1c8 + 80253de: 4b77 ldr r3, [pc, #476] ; (80255bc ) + 80253e0: 781b ldrb r3, [r3, #0] + 80253e2: 2b01 cmp r3, #1 + 80253e4: d107 bne.n 80253f6 + 80253e6: 4b76 ldr r3, [pc, #472] ; (80255c0 ) + 80253e8: 68db ldr r3, [r3, #12] + 80253ea: 210e movs r1, #14 + 80253ec: 4618 mov r0, r3 + 80253ee: f7fe fcbd bl 8023d6c + 80253f2: 4603 mov r3, r0 + 80253f4: e012 b.n 802541c + 80253f6: 4b71 ldr r3, [pc, #452] ; (80255bc ) + 80253f8: 781b ldrb r3, [r3, #0] + 80253fa: 2b02 cmp r3, #2 + 80253fc: d107 bne.n 802540e + 80253fe: 4b70 ldr r3, [pc, #448] ; (80255c0 ) + 8025400: 68db ldr r3, [r3, #12] + 8025402: 210c movs r1, #12 + 8025404: 4618 mov r0, r3 + 8025406: f7fe fcb1 bl 8023d6c + 802540a: 4603 mov r3, r0 + 802540c: e006 b.n 802541c + 802540e: 4b6c ldr r3, [pc, #432] ; (80255c0 ) + 8025410: 68db ldr r3, [r3, #12] + 8025412: 210a movs r1, #10 + 8025414: 4618 mov r0, r3 + 8025416: f7fe fca9 bl 8023d6c + 802541a: 4603 mov r3, r0 + 802541c: 4619 mov r1, r3 + 802541e: 4620 mov r0, r4 + 8025420: f7fe fc8d bl 8023d3e style_init_reset(&styles->menu_header_btn); - 80254b8: 4b67 ldr r3, [pc, #412] ; (8025658 ) - 80254ba: 681b ldr r3, [r3, #0] - 80254bc: f503 73e8 add.w r3, r3, #464 ; 0x1d0 - 80254c0: 4618 mov r0, r3 - 80254c2: f002 f847 bl 8027554 + 8025424: 4b67 ldr r3, [pc, #412] ; (80255c4 ) + 8025426: 681b ldr r3, [r3, #0] + 8025428: f503 73e8 add.w r3, r3, #464 ; 0x1d0 + 802542c: 4618 mov r0, r3 + 802542e: f002 f847 bl 80274c0 lv_style_set_pad_hor(&styles->menu_header_btn, PAD_TINY); - 80254c6: 4b64 ldr r3, [pc, #400] ; (8025658 ) - 80254c8: 681b ldr r3, [r3, #0] - 80254ca: f503 74e8 add.w r4, r3, #464 ; 0x1d0 - 80254ce: 4b60 ldr r3, [pc, #384] ; (8025650 ) - 80254d0: 781b ldrb r3, [r3, #0] - 80254d2: 2b01 cmp r3, #1 - 80254d4: d107 bne.n 80254e6 - 80254d6: 4b5f ldr r3, [pc, #380] ; (8025654 ) - 80254d8: 68db ldr r3, [r3, #12] - 80254da: 2108 movs r1, #8 - 80254dc: 4618 mov r0, r3 - 80254de: f7fe fc8f bl 8023e00 - 80254e2: 4603 mov r3, r0 - 80254e4: e012 b.n 802550c - 80254e6: 4b5a ldr r3, [pc, #360] ; (8025650 ) - 80254e8: 781b ldrb r3, [r3, #0] - 80254ea: 2b02 cmp r3, #2 - 80254ec: d107 bne.n 80254fe - 80254ee: 4b59 ldr r3, [pc, #356] ; (8025654 ) - 80254f0: 68db ldr r3, [r3, #12] - 80254f2: 2106 movs r1, #6 - 80254f4: 4618 mov r0, r3 - 80254f6: f7fe fc83 bl 8023e00 - 80254fa: 4603 mov r3, r0 - 80254fc: e006 b.n 802550c - 80254fe: 4b55 ldr r3, [pc, #340] ; (8025654 ) - 8025500: 68db ldr r3, [r3, #12] - 8025502: 2102 movs r1, #2 - 8025504: 4618 mov r0, r3 - 8025506: f7fe fc7b bl 8023e00 - 802550a: 4603 mov r3, r0 - 802550c: 4619 mov r1, r3 - 802550e: 4620 mov r0, r4 - 8025510: f7fe fc33 bl 8023d7a + 8025432: 4b64 ldr r3, [pc, #400] ; (80255c4 ) + 8025434: 681b ldr r3, [r3, #0] + 8025436: f503 74e8 add.w r4, r3, #464 ; 0x1d0 + 802543a: 4b60 ldr r3, [pc, #384] ; (80255bc ) + 802543c: 781b ldrb r3, [r3, #0] + 802543e: 2b01 cmp r3, #1 + 8025440: d107 bne.n 8025452 + 8025442: 4b5f ldr r3, [pc, #380] ; (80255c0 ) + 8025444: 68db ldr r3, [r3, #12] + 8025446: 2108 movs r1, #8 + 8025448: 4618 mov r0, r3 + 802544a: f7fe fc8f bl 8023d6c + 802544e: 4603 mov r3, r0 + 8025450: e012 b.n 8025478 + 8025452: 4b5a ldr r3, [pc, #360] ; (80255bc ) + 8025454: 781b ldrb r3, [r3, #0] + 8025456: 2b02 cmp r3, #2 + 8025458: d107 bne.n 802546a + 802545a: 4b59 ldr r3, [pc, #356] ; (80255c0 ) + 802545c: 68db ldr r3, [r3, #12] + 802545e: 2106 movs r1, #6 + 8025460: 4618 mov r0, r3 + 8025462: f7fe fc83 bl 8023d6c + 8025466: 4603 mov r3, r0 + 8025468: e006 b.n 8025478 + 802546a: 4b55 ldr r3, [pc, #340] ; (80255c0 ) + 802546c: 68db ldr r3, [r3, #12] + 802546e: 2102 movs r1, #2 + 8025470: 4618 mov r0, r3 + 8025472: f7fe fc7b bl 8023d6c + 8025476: 4603 mov r3, r0 + 8025478: 4619 mov r1, r3 + 802547a: 4620 mov r0, r4 + 802547c: f7fe fc33 bl 8023ce6 lv_style_set_pad_ver(&styles->menu_header_btn, PAD_TINY); - 8025514: 4b50 ldr r3, [pc, #320] ; (8025658 ) - 8025516: 681b ldr r3, [r3, #0] - 8025518: f503 74e8 add.w r4, r3, #464 ; 0x1d0 - 802551c: 4b4c ldr r3, [pc, #304] ; (8025650 ) - 802551e: 781b ldrb r3, [r3, #0] - 8025520: 2b01 cmp r3, #1 - 8025522: d107 bne.n 8025534 - 8025524: 4b4b ldr r3, [pc, #300] ; (8025654 ) - 8025526: 68db ldr r3, [r3, #12] - 8025528: 2108 movs r1, #8 - 802552a: 4618 mov r0, r3 - 802552c: f7fe fc68 bl 8023e00 - 8025530: 4603 mov r3, r0 - 8025532: e012 b.n 802555a - 8025534: 4b46 ldr r3, [pc, #280] ; (8025650 ) - 8025536: 781b ldrb r3, [r3, #0] - 8025538: 2b02 cmp r3, #2 - 802553a: d107 bne.n 802554c - 802553c: 4b45 ldr r3, [pc, #276] ; (8025654 ) - 802553e: 68db ldr r3, [r3, #12] - 8025540: 2106 movs r1, #6 - 8025542: 4618 mov r0, r3 - 8025544: f7fe fc5c bl 8023e00 - 8025548: 4603 mov r3, r0 - 802554a: e006 b.n 802555a - 802554c: 4b41 ldr r3, [pc, #260] ; (8025654 ) - 802554e: 68db ldr r3, [r3, #12] - 8025550: 2102 movs r1, #2 - 8025552: 4618 mov r0, r3 - 8025554: f7fe fc54 bl 8023e00 - 8025558: 4603 mov r3, r0 - 802555a: 4619 mov r1, r3 - 802555c: 4620 mov r0, r4 - 802555e: f7fe fc22 bl 8023da6 + 8025480: 4b50 ldr r3, [pc, #320] ; (80255c4 ) + 8025482: 681b ldr r3, [r3, #0] + 8025484: f503 74e8 add.w r4, r3, #464 ; 0x1d0 + 8025488: 4b4c ldr r3, [pc, #304] ; (80255bc ) + 802548a: 781b ldrb r3, [r3, #0] + 802548c: 2b01 cmp r3, #1 + 802548e: d107 bne.n 80254a0 + 8025490: 4b4b ldr r3, [pc, #300] ; (80255c0 ) + 8025492: 68db ldr r3, [r3, #12] + 8025494: 2108 movs r1, #8 + 8025496: 4618 mov r0, r3 + 8025498: f7fe fc68 bl 8023d6c + 802549c: 4603 mov r3, r0 + 802549e: e012 b.n 80254c6 + 80254a0: 4b46 ldr r3, [pc, #280] ; (80255bc ) + 80254a2: 781b ldrb r3, [r3, #0] + 80254a4: 2b02 cmp r3, #2 + 80254a6: d107 bne.n 80254b8 + 80254a8: 4b45 ldr r3, [pc, #276] ; (80255c0 ) + 80254aa: 68db ldr r3, [r3, #12] + 80254ac: 2106 movs r1, #6 + 80254ae: 4618 mov r0, r3 + 80254b0: f7fe fc5c bl 8023d6c + 80254b4: 4603 mov r3, r0 + 80254b6: e006 b.n 80254c6 + 80254b8: 4b41 ldr r3, [pc, #260] ; (80255c0 ) + 80254ba: 68db ldr r3, [r3, #12] + 80254bc: 2102 movs r1, #2 + 80254be: 4618 mov r0, r3 + 80254c0: f7fe fc54 bl 8023d6c + 80254c4: 4603 mov r3, r0 + 80254c6: 4619 mov r1, r3 + 80254c8: 4620 mov r0, r4 + 80254ca: f7fe fc22 bl 8023d12 lv_style_set_shadow_opa(&styles->menu_header_btn, LV_OPA_TRANSP); - 8025562: 4b3d ldr r3, [pc, #244] ; (8025658 ) - 8025564: 681b ldr r3, [r3, #0] - 8025566: f503 73e8 add.w r3, r3, #464 ; 0x1d0 - 802556a: 2100 movs r1, #0 - 802556c: 4618 mov r0, r3 - 802556e: f00f fbcd bl 8034d0c + 80254ce: 4b3d ldr r3, [pc, #244] ; (80255c4 ) + 80254d0: 681b ldr r3, [r3, #0] + 80254d2: f503 73e8 add.w r3, r3, #464 ; 0x1d0 + 80254d6: 2100 movs r1, #0 + 80254d8: 4618 mov r0, r3 + 80254da: f00f fbcd bl 8034c78 lv_style_set_bg_opa(&styles->menu_header_btn, LV_OPA_TRANSP); - 8025572: 4b39 ldr r3, [pc, #228] ; (8025658 ) - 8025574: 681b ldr r3, [r3, #0] - 8025576: f503 73e8 add.w r3, r3, #464 ; 0x1d0 - 802557a: 2100 movs r1, #0 - 802557c: 4618 mov r0, r3 - 802557e: f00f faa4 bl 8034aca + 80254de: 4b39 ldr r3, [pc, #228] ; (80255c4 ) + 80254e0: 681b ldr r3, [r3, #0] + 80254e2: f503 73e8 add.w r3, r3, #464 ; 0x1d0 + 80254e6: 2100 movs r1, #0 + 80254e8: 4618 mov r0, r3 + 80254ea: f00f faa4 bl 8034a36 lv_style_set_text_color(&styles->menu_header_btn, color_text); - 8025582: 4b35 ldr r3, [pc, #212] ; (8025658 ) - 8025584: 681b ldr r3, [r3, #0] - 8025586: f503 73e8 add.w r3, r3, #464 ; 0x1d0 - 802558a: 4a34 ldr r2, [pc, #208] ; (802565c ) - 802558c: 8811 ldrh r1, [r2, #0] - 802558e: 4618 mov r0, r3 - 8025590: f00f fc29 bl 8034de6 + 80254ee: 4b35 ldr r3, [pc, #212] ; (80255c4 ) + 80254f0: 681b ldr r3, [r3, #0] + 80254f2: f503 73e8 add.w r3, r3, #464 ; 0x1d0 + 80254f6: 4a34 ldr r2, [pc, #208] ; (80255c8 ) + 80254f8: 8811 ldrh r1, [r2, #0] + 80254fa: 4618 mov r0, r3 + 80254fc: f00f fc29 bl 8034d52 style_init_reset(&styles->menu_page); - 8025594: 4b30 ldr r3, [pc, #192] ; (8025658 ) - 8025596: 681b ldr r3, [r3, #0] - 8025598: f503 73e0 add.w r3, r3, #448 ; 0x1c0 - 802559c: 4618 mov r0, r3 - 802559e: f001 ffd9 bl 8027554 + 8025500: 4b30 ldr r3, [pc, #192] ; (80255c4 ) + 8025502: 681b ldr r3, [r3, #0] + 8025504: f503 73e0 add.w r3, r3, #448 ; 0x1c0 + 8025508: 4618 mov r0, r3 + 802550a: f001 ffd9 bl 80274c0 lv_style_set_pad_hor(&styles->menu_page, 0); - 80255a2: 4b2d ldr r3, [pc, #180] ; (8025658 ) - 80255a4: 681b ldr r3, [r3, #0] - 80255a6: f503 73e0 add.w r3, r3, #448 ; 0x1c0 - 80255aa: 2100 movs r1, #0 - 80255ac: 4618 mov r0, r3 - 80255ae: f7fe fbe4 bl 8023d7a + 802550e: 4b2d ldr r3, [pc, #180] ; (80255c4 ) + 8025510: 681b ldr r3, [r3, #0] + 8025512: f503 73e0 add.w r3, r3, #448 ; 0x1c0 + 8025516: 2100 movs r1, #0 + 8025518: 4618 mov r0, r3 + 802551a: f7fe fbe4 bl 8023ce6 lv_style_set_pad_gap(&styles->menu_page, 0); - 80255b2: 4b29 ldr r3, [pc, #164] ; (8025658 ) - 80255b4: 681b ldr r3, [r3, #0] - 80255b6: f503 73e0 add.w r3, r3, #448 ; 0x1c0 - 80255ba: 2100 movs r1, #0 - 80255bc: 4618 mov r0, r3 - 80255be: f7fe fc08 bl 8023dd2 + 802551e: 4b29 ldr r3, [pc, #164] ; (80255c4 ) + 8025520: 681b ldr r3, [r3, #0] + 8025522: f503 73e0 add.w r3, r3, #448 ; 0x1c0 + 8025526: 2100 movs r1, #0 + 8025528: 4618 mov r0, r3 + 802552a: f7fe fc08 bl 8023d3e style_init_reset(&styles->menu_pressed); - 80255c2: 4b25 ldr r3, [pc, #148] ; (8025658 ) - 80255c4: 681b ldr r3, [r3, #0] - 80255c6: f503 73f0 add.w r3, r3, #480 ; 0x1e0 - 80255ca: 4618 mov r0, r3 - 80255cc: f001 ffc2 bl 8027554 + 802552e: 4b25 ldr r3, [pc, #148] ; (80255c4 ) + 8025530: 681b ldr r3, [r3, #0] + 8025532: f503 73f0 add.w r3, r3, #480 ; 0x1e0 + 8025536: 4618 mov r0, r3 + 8025538: f001 ffc2 bl 80274c0 lv_style_set_bg_opa(&styles->menu_pressed, LV_OPA_20); - 80255d0: 4b21 ldr r3, [pc, #132] ; (8025658 ) - 80255d2: 681b ldr r3, [r3, #0] - 80255d4: f503 73f0 add.w r3, r3, #480 ; 0x1e0 - 80255d8: 2133 movs r1, #51 ; 0x33 - 80255da: 4618 mov r0, r3 - 80255dc: f00f fa75 bl 8034aca + 802553c: 4b21 ldr r3, [pc, #132] ; (80255c4 ) + 802553e: 681b ldr r3, [r3, #0] + 8025540: f503 73f0 add.w r3, r3, #480 ; 0x1e0 + 8025544: 2133 movs r1, #51 ; 0x33 + 8025546: 4618 mov r0, r3 + 8025548: f00f fa75 bl 8034a36 lv_style_set_bg_color(&styles->menu_pressed, lv_palette_main(LV_PALETTE_GREY)); - 80255e0: 4b1d ldr r3, [pc, #116] ; (8025658 ) - 80255e2: 681b ldr r3, [r3, #0] - 80255e4: f503 74f0 add.w r4, r3, #480 ; 0x1e0 - 80255e8: 2012 movs r0, #18 - 80255ea: f00c fa57 bl 8031a9c - 80255ee: 4603 mov r3, r0 - 80255f0: 4619 mov r1, r3 - 80255f2: 4620 mov r0, r4 - 80255f4: f00f fa57 bl 8034aa6 + 802554c: 4b1d ldr r3, [pc, #116] ; (80255c4 ) + 802554e: 681b ldr r3, [r3, #0] + 8025550: f503 74f0 add.w r4, r3, #480 ; 0x1e0 + 8025554: 2012 movs r0, #18 + 8025556: f00c fa57 bl 8031a08 + 802555a: 4603 mov r3, r0 + 802555c: 4619 mov r1, r3 + 802555e: 4620 mov r0, r4 + 8025560: f00f fa57 bl 8034a12 style_init_reset(&styles->menu_separator); - 80255f8: 4b17 ldr r3, [pc, #92] ; (8025658 ) - 80255fa: 681b ldr r3, [r3, #0] - 80255fc: f503 73f4 add.w r3, r3, #488 ; 0x1e8 - 8025600: 4618 mov r0, r3 - 8025602: f001 ffa7 bl 8027554 + 8025564: 4b17 ldr r3, [pc, #92] ; (80255c4 ) + 8025566: 681b ldr r3, [r3, #0] + 8025568: f503 73f4 add.w r3, r3, #488 ; 0x1e8 + 802556c: 4618 mov r0, r3 + 802556e: f001 ffa7 bl 80274c0 lv_style_set_bg_opa(&styles->menu_separator, LV_OPA_TRANSP); - 8025606: 4b14 ldr r3, [pc, #80] ; (8025658 ) - 8025608: 681b ldr r3, [r3, #0] - 802560a: f503 73f4 add.w r3, r3, #488 ; 0x1e8 - 802560e: 2100 movs r1, #0 - 8025610: 4618 mov r0, r3 - 8025612: f00f fa5a bl 8034aca + 8025572: 4b14 ldr r3, [pc, #80] ; (80255c4 ) + 8025574: 681b ldr r3, [r3, #0] + 8025576: f503 73f4 add.w r3, r3, #488 ; 0x1e8 + 802557a: 2100 movs r1, #0 + 802557c: 4618 mov r0, r3 + 802557e: f00f fa5a bl 8034a36 lv_style_set_pad_ver(&styles->menu_separator, PAD_TINY); - 8025616: 4b10 ldr r3, [pc, #64] ; (8025658 ) - 8025618: 681b ldr r3, [r3, #0] - 802561a: f503 74f4 add.w r4, r3, #488 ; 0x1e8 - 802561e: 4b0c ldr r3, [pc, #48] ; (8025650 ) - 8025620: 781b ldrb r3, [r3, #0] - 8025622: 2b01 cmp r3, #1 - 8025624: d107 bne.n 8025636 - 8025626: 4b0b ldr r3, [pc, #44] ; (8025654 ) - 8025628: 68db ldr r3, [r3, #12] - 802562a: 2108 movs r1, #8 - 802562c: 4618 mov r0, r3 - 802562e: f7fe fbe7 bl 8023e00 - 8025632: 4603 mov r3, r0 - 8025634: e01b b.n 802566e - 8025636: 4b06 ldr r3, [pc, #24] ; (8025650 ) - 8025638: 781b ldrb r3, [r3, #0] - 802563a: 2b02 cmp r3, #2 - 802563c: d110 bne.n 8025660 - 802563e: 4b05 ldr r3, [pc, #20] ; (8025654 ) - 8025640: 68db ldr r3, [r3, #12] - 8025642: 2106 movs r1, #6 - 8025644: 4618 mov r0, r3 - 8025646: f7fe fbdb bl 8023e00 - 802564a: 4603 mov r3, r0 - 802564c: e00f b.n 802566e - 802564e: bf00 nop - 8025650: 20001c74 .word 0x20001c74 - 8025654: 20001c50 .word 0x20001c50 - 8025658: 20001c4c .word 0x20001c4c - 802565c: 20001c7c .word 0x20001c7c - 8025660: 4ba9 ldr r3, [pc, #676] ; (8025908 ) - 8025662: 68db ldr r3, [r3, #12] - 8025664: 2102 movs r1, #2 - 8025666: 4618 mov r0, r3 - 8025668: f7fe fbca bl 8023e00 - 802566c: 4603 mov r3, r0 - 802566e: 4619 mov r1, r3 - 8025670: 4620 mov r0, r4 - 8025672: f7fe fb98 bl 8023da6 + 8025582: 4b10 ldr r3, [pc, #64] ; (80255c4 ) + 8025584: 681b ldr r3, [r3, #0] + 8025586: f503 74f4 add.w r4, r3, #488 ; 0x1e8 + 802558a: 4b0c ldr r3, [pc, #48] ; (80255bc ) + 802558c: 781b ldrb r3, [r3, #0] + 802558e: 2b01 cmp r3, #1 + 8025590: d107 bne.n 80255a2 + 8025592: 4b0b ldr r3, [pc, #44] ; (80255c0 ) + 8025594: 68db ldr r3, [r3, #12] + 8025596: 2108 movs r1, #8 + 8025598: 4618 mov r0, r3 + 802559a: f7fe fbe7 bl 8023d6c + 802559e: 4603 mov r3, r0 + 80255a0: e01b b.n 80255da + 80255a2: 4b06 ldr r3, [pc, #24] ; (80255bc ) + 80255a4: 781b ldrb r3, [r3, #0] + 80255a6: 2b02 cmp r3, #2 + 80255a8: d110 bne.n 80255cc + 80255aa: 4b05 ldr r3, [pc, #20] ; (80255c0 ) + 80255ac: 68db ldr r3, [r3, #12] + 80255ae: 2106 movs r1, #6 + 80255b0: 4618 mov r0, r3 + 80255b2: f7fe fbdb bl 8023d6c + 80255b6: 4603 mov r3, r0 + 80255b8: e00f b.n 80255da + 80255ba: bf00 nop + 80255bc: 20001c74 .word 0x20001c74 + 80255c0: 20001c50 .word 0x20001c50 + 80255c4: 20001c4c .word 0x20001c4c + 80255c8: 20001c7c .word 0x20001c7c + 80255cc: 4ba9 ldr r3, [pc, #676] ; (8025874 ) + 80255ce: 68db ldr r3, [r3, #12] + 80255d0: 2102 movs r1, #2 + 80255d2: 4618 mov r0, r3 + 80255d4: f7fe fbca bl 8023d6c + 80255d8: 4603 mov r3, r0 + 80255da: 4619 mov r1, r3 + 80255dc: 4620 mov r0, r4 + 80255de: f7fe fb98 bl 8023d12 #endif #if LV_USE_METER style_init_reset(&styles->meter_marker); - 8025676: 4ba5 ldr r3, [pc, #660] ; (802590c ) - 8025678: 681b ldr r3, [r3, #0] - 802567a: f503 73b0 add.w r3, r3, #352 ; 0x160 - 802567e: 4618 mov r0, r3 - 8025680: f001 ff68 bl 8027554 + 80255e2: 4ba5 ldr r3, [pc, #660] ; (8025878 ) + 80255e4: 681b ldr r3, [r3, #0] + 80255e6: f503 73b0 add.w r3, r3, #352 ; 0x160 + 80255ea: 4618 mov r0, r3 + 80255ec: f001 ff68 bl 80274c0 lv_style_set_line_width(&styles->meter_marker, lv_disp_dpx(theme.disp, 5)); - 8025684: 4ba1 ldr r3, [pc, #644] ; (802590c ) - 8025686: 681b ldr r3, [r3, #0] - 8025688: f503 74b0 add.w r4, r3, #352 ; 0x160 - 802568c: 4b9e ldr r3, [pc, #632] ; (8025908 ) - 802568e: 68db ldr r3, [r3, #12] - 8025690: 2105 movs r1, #5 - 8025692: 4618 mov r0, r3 - 8025694: f7fe fbb4 bl 8023e00 - 8025698: 4603 mov r3, r0 - 802569a: 4619 mov r1, r3 - 802569c: 4620 mov r0, r4 - 802569e: f00f fb47 bl 8034d30 + 80255f0: 4ba1 ldr r3, [pc, #644] ; (8025878 ) + 80255f2: 681b ldr r3, [r3, #0] + 80255f4: f503 74b0 add.w r4, r3, #352 ; 0x160 + 80255f8: 4b9e ldr r3, [pc, #632] ; (8025874 ) + 80255fa: 68db ldr r3, [r3, #12] + 80255fc: 2105 movs r1, #5 + 80255fe: 4618 mov r0, r3 + 8025600: f7fe fbb4 bl 8023d6c + 8025604: 4603 mov r3, r0 + 8025606: 4619 mov r1, r3 + 8025608: 4620 mov r0, r4 + 802560a: f00f fb47 bl 8034c9c lv_style_set_line_color(&styles->meter_marker, color_text); - 80256a2: 4b9a ldr r3, [pc, #616] ; (802590c ) - 80256a4: 681b ldr r3, [r3, #0] - 80256a6: f503 73b0 add.w r3, r3, #352 ; 0x160 - 80256aa: 4a99 ldr r2, [pc, #612] ; (8025910 ) - 80256ac: 8811 ldrh r1, [r2, #0] - 80256ae: 4618 mov r0, r3 - 80256b0: f00f fb51 bl 8034d56 + 802560e: 4b9a ldr r3, [pc, #616] ; (8025878 ) + 8025610: 681b ldr r3, [r3, #0] + 8025612: f503 73b0 add.w r3, r3, #352 ; 0x160 + 8025616: 4a99 ldr r2, [pc, #612] ; (802587c ) + 8025618: 8811 ldrh r1, [r2, #0] + 802561a: 4618 mov r0, r3 + 802561c: f00f fb51 bl 8034cc2 lv_style_set_size(&styles->meter_marker, lv_disp_dpx(theme.disp, 20)); - 80256b4: 4b95 ldr r3, [pc, #596] ; (802590c ) - 80256b6: 681b ldr r3, [r3, #0] - 80256b8: f503 74b0 add.w r4, r3, #352 ; 0x160 - 80256bc: 4b92 ldr r3, [pc, #584] ; (8025908 ) - 80256be: 68db ldr r3, [r3, #12] - 80256c0: 2114 movs r1, #20 - 80256c2: 4618 mov r0, r3 - 80256c4: f7fe fb9c bl 8023e00 - 80256c8: 4603 mov r3, r0 - 80256ca: 4619 mov r1, r3 - 80256cc: 4620 mov r0, r4 - 80256ce: f7fe fb1c bl 8023d0a + 8025620: 4b95 ldr r3, [pc, #596] ; (8025878 ) + 8025622: 681b ldr r3, [r3, #0] + 8025624: f503 74b0 add.w r4, r3, #352 ; 0x160 + 8025628: 4b92 ldr r3, [pc, #584] ; (8025874 ) + 802562a: 68db ldr r3, [r3, #12] + 802562c: 2114 movs r1, #20 + 802562e: 4618 mov r0, r3 + 8025630: f7fe fb9c bl 8023d6c + 8025634: 4603 mov r3, r0 + 8025636: 4619 mov r1, r3 + 8025638: 4620 mov r0, r4 + 802563a: f7fe fb1c bl 8023c76 lv_style_set_pad_left(&styles->meter_marker, lv_disp_dpx(theme.disp, 15)); - 80256d2: 4b8e ldr r3, [pc, #568] ; (802590c ) - 80256d4: 681b ldr r3, [r3, #0] - 80256d6: f503 74b0 add.w r4, r3, #352 ; 0x160 - 80256da: 4b8b ldr r3, [pc, #556] ; (8025908 ) - 80256dc: 68db ldr r3, [r3, #12] - 80256de: 210f movs r1, #15 - 80256e0: 4618 mov r0, r3 - 80256e2: f7fe fb8d bl 8023e00 - 80256e6: 4603 mov r3, r0 - 80256e8: 4619 mov r1, r3 - 80256ea: 4620 mov r0, r4 - 80256ec: f00f f98f bl 8034a0e + 802563e: 4b8e ldr r3, [pc, #568] ; (8025878 ) + 8025640: 681b ldr r3, [r3, #0] + 8025642: f503 74b0 add.w r4, r3, #352 ; 0x160 + 8025646: 4b8b ldr r3, [pc, #556] ; (8025874 ) + 8025648: 68db ldr r3, [r3, #12] + 802564a: 210f movs r1, #15 + 802564c: 4618 mov r0, r3 + 802564e: f7fe fb8d bl 8023d6c + 8025652: 4603 mov r3, r0 + 8025654: 4619 mov r1, r3 + 8025656: 4620 mov r0, r4 + 8025658: f00f f98f bl 803497a style_init_reset(&styles->meter_indic); - 80256f0: 4b86 ldr r3, [pc, #536] ; (802590c ) - 80256f2: 681b ldr r3, [r3, #0] - 80256f4: f503 73b4 add.w r3, r3, #360 ; 0x168 - 80256f8: 4618 mov r0, r3 - 80256fa: f001 ff2b bl 8027554 + 802565c: 4b86 ldr r3, [pc, #536] ; (8025878 ) + 802565e: 681b ldr r3, [r3, #0] + 8025660: f503 73b4 add.w r3, r3, #360 ; 0x168 + 8025664: 4618 mov r0, r3 + 8025666: f001 ff2b bl 80274c0 lv_style_set_radius(&styles->meter_indic, LV_RADIUS_CIRCLE); - 80256fe: 4b83 ldr r3, [pc, #524] ; (802590c ) - 8025700: 681b ldr r3, [r3, #0] - 8025702: f503 73b4 add.w r3, r3, #360 ; 0x168 - 8025706: f647 71ff movw r1, #32767 ; 0x7fff - 802570a: 4618 mov r0, r3 - 802570c: f00f fbb4 bl 8034e78 + 802566a: 4b83 ldr r3, [pc, #524] ; (8025878 ) + 802566c: 681b ldr r3, [r3, #0] + 802566e: f503 73b4 add.w r3, r3, #360 ; 0x168 + 8025672: f647 71ff movw r1, #32767 ; 0x7fff + 8025676: 4618 mov r0, r3 + 8025678: f00f fbb4 bl 8034de4 lv_style_set_bg_color(&styles->meter_indic, color_text); - 8025710: 4b7e ldr r3, [pc, #504] ; (802590c ) - 8025712: 681b ldr r3, [r3, #0] - 8025714: f503 73b4 add.w r3, r3, #360 ; 0x168 - 8025718: 4a7d ldr r2, [pc, #500] ; (8025910 ) - 802571a: 8811 ldrh r1, [r2, #0] - 802571c: 4618 mov r0, r3 - 802571e: f00f f9c2 bl 8034aa6 + 802567c: 4b7e ldr r3, [pc, #504] ; (8025878 ) + 802567e: 681b ldr r3, [r3, #0] + 8025680: f503 73b4 add.w r3, r3, #360 ; 0x168 + 8025684: 4a7d ldr r2, [pc, #500] ; (802587c ) + 8025686: 8811 ldrh r1, [r2, #0] + 8025688: 4618 mov r0, r3 + 802568a: f00f f9c2 bl 8034a12 lv_style_set_bg_opa(&styles->meter_indic, LV_OPA_COVER); - 8025722: 4b7a ldr r3, [pc, #488] ; (802590c ) - 8025724: 681b ldr r3, [r3, #0] - 8025726: f503 73b4 add.w r3, r3, #360 ; 0x168 - 802572a: 21ff movs r1, #255 ; 0xff - 802572c: 4618 mov r0, r3 - 802572e: f00f f9cc bl 8034aca + 802568e: 4b7a ldr r3, [pc, #488] ; (8025878 ) + 8025690: 681b ldr r3, [r3, #0] + 8025692: f503 73b4 add.w r3, r3, #360 ; 0x168 + 8025696: 21ff movs r1, #255 ; 0xff + 8025698: 4618 mov r0, r3 + 802569a: f00f f9cc bl 8034a36 lv_style_set_size(&styles->meter_indic, lv_disp_dpx(theme.disp, 15)); - 8025732: 4b76 ldr r3, [pc, #472] ; (802590c ) - 8025734: 681b ldr r3, [r3, #0] - 8025736: f503 74b4 add.w r4, r3, #360 ; 0x168 - 802573a: 4b73 ldr r3, [pc, #460] ; (8025908 ) - 802573c: 68db ldr r3, [r3, #12] - 802573e: 210f movs r1, #15 - 8025740: 4618 mov r0, r3 - 8025742: f7fe fb5d bl 8023e00 - 8025746: 4603 mov r3, r0 - 8025748: 4619 mov r1, r3 - 802574a: 4620 mov r0, r4 - 802574c: f7fe fadd bl 8023d0a + 802569e: 4b76 ldr r3, [pc, #472] ; (8025878 ) + 80256a0: 681b ldr r3, [r3, #0] + 80256a2: f503 74b4 add.w r4, r3, #360 ; 0x168 + 80256a6: 4b73 ldr r3, [pc, #460] ; (8025874 ) + 80256a8: 68db ldr r3, [r3, #12] + 80256aa: 210f movs r1, #15 + 80256ac: 4618 mov r0, r3 + 80256ae: f7fe fb5d bl 8023d6c + 80256b2: 4603 mov r3, r0 + 80256b4: 4619 mov r1, r3 + 80256b6: 4620 mov r0, r4 + 80256b8: f7fe fadd bl 8023c76 #endif #if LV_USE_TABLE style_init_reset(&styles->table_cell); - 8025750: 4b6e ldr r3, [pc, #440] ; (802590c ) - 8025752: 681b ldr r3, [r3, #0] - 8025754: f503 73ac add.w r3, r3, #344 ; 0x158 - 8025758: 4618 mov r0, r3 - 802575a: f001 fefb bl 8027554 + 80256bc: 4b6e ldr r3, [pc, #440] ; (8025878 ) + 80256be: 681b ldr r3, [r3, #0] + 80256c0: f503 73ac add.w r3, r3, #344 ; 0x158 + 80256c4: 4618 mov r0, r3 + 80256c6: f001 fefb bl 80274c0 lv_style_set_border_width(&styles->table_cell, lv_disp_dpx(theme.disp, 1)); - 802575e: 4b6b ldr r3, [pc, #428] ; (802590c ) - 8025760: 681b ldr r3, [r3, #0] - 8025762: f503 74ac add.w r4, r3, #344 ; 0x158 - 8025766: 4b68 ldr r3, [pc, #416] ; (8025908 ) - 8025768: 68db ldr r3, [r3, #12] - 802576a: 2101 movs r1, #1 - 802576c: 4618 mov r0, r3 - 802576e: f7fe fb47 bl 8023e00 - 8025772: 4603 mov r3, r0 - 8025774: 4619 mov r1, r3 - 8025776: 4620 mov r0, r4 - 8025778: f00f f9fe bl 8034b78 + 80256ca: 4b6b ldr r3, [pc, #428] ; (8025878 ) + 80256cc: 681b ldr r3, [r3, #0] + 80256ce: f503 74ac add.w r4, r3, #344 ; 0x158 + 80256d2: 4b68 ldr r3, [pc, #416] ; (8025874 ) + 80256d4: 68db ldr r3, [r3, #12] + 80256d6: 2101 movs r1, #1 + 80256d8: 4618 mov r0, r3 + 80256da: f7fe fb47 bl 8023d6c + 80256de: 4603 mov r3, r0 + 80256e0: 4619 mov r1, r3 + 80256e2: 4620 mov r0, r4 + 80256e4: f00f f9fe bl 8034ae4 lv_style_set_border_color(&styles->table_cell, color_grey); - 802577c: 4b63 ldr r3, [pc, #396] ; (802590c ) - 802577e: 681b ldr r3, [r3, #0] - 8025780: f503 73ac add.w r3, r3, #344 ; 0x158 - 8025784: 4a63 ldr r2, [pc, #396] ; (8025914 ) - 8025786: 8811 ldrh r1, [r2, #0] - 8025788: 4618 mov r0, r3 - 802578a: f00f f9d2 bl 8034b32 + 80256e8: 4b63 ldr r3, [pc, #396] ; (8025878 ) + 80256ea: 681b ldr r3, [r3, #0] + 80256ec: f503 73ac add.w r3, r3, #344 ; 0x158 + 80256f0: 4a63 ldr r2, [pc, #396] ; (8025880 ) + 80256f2: 8811 ldrh r1, [r2, #0] + 80256f4: 4618 mov r0, r3 + 80256f6: f00f f9d2 bl 8034a9e lv_style_set_border_side(&styles->table_cell, LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_BOTTOM); - 802578e: 4b5f ldr r3, [pc, #380] ; (802590c ) - 8025790: 681b ldr r3, [r3, #0] - 8025792: f503 73ac add.w r3, r3, #344 ; 0x158 - 8025796: 2103 movs r1, #3 - 8025798: 4618 mov r0, r3 - 802579a: f00f fa00 bl 8034b9e + 80256fa: 4b5f ldr r3, [pc, #380] ; (8025878 ) + 80256fc: 681b ldr r3, [r3, #0] + 80256fe: f503 73ac add.w r3, r3, #344 ; 0x158 + 8025702: 2103 movs r1, #3 + 8025704: 4618 mov r0, r3 + 8025706: f00f fa00 bl 8034b0a #endif #if LV_USE_TEXTAREA style_init_reset(&styles->ta_cursor); - 802579e: 4b5b ldr r3, [pc, #364] ; (802590c ) - 80257a0: 681b ldr r3, [r3, #0] - 80257a2: f503 73b8 add.w r3, r3, #368 ; 0x170 - 80257a6: 4618 mov r0, r3 - 80257a8: f001 fed4 bl 8027554 + 802570a: 4b5b ldr r3, [pc, #364] ; (8025878 ) + 802570c: 681b ldr r3, [r3, #0] + 802570e: f503 73b8 add.w r3, r3, #368 ; 0x170 + 8025712: 4618 mov r0, r3 + 8025714: f001 fed4 bl 80274c0 lv_style_set_border_color(&styles->ta_cursor, color_text); - 80257ac: 4b57 ldr r3, [pc, #348] ; (802590c ) - 80257ae: 681b ldr r3, [r3, #0] - 80257b0: f503 73b8 add.w r3, r3, #368 ; 0x170 - 80257b4: 4a56 ldr r2, [pc, #344] ; (8025910 ) - 80257b6: 8811 ldrh r1, [r2, #0] - 80257b8: 4618 mov r0, r3 - 80257ba: f00f f9ba bl 8034b32 + 8025718: 4b57 ldr r3, [pc, #348] ; (8025878 ) + 802571a: 681b ldr r3, [r3, #0] + 802571c: f503 73b8 add.w r3, r3, #368 ; 0x170 + 8025720: 4a56 ldr r2, [pc, #344] ; (802587c ) + 8025722: 8811 ldrh r1, [r2, #0] + 8025724: 4618 mov r0, r3 + 8025726: f00f f9ba bl 8034a9e lv_style_set_border_width(&styles->ta_cursor, lv_disp_dpx(theme.disp, 2)); - 80257be: 4b53 ldr r3, [pc, #332] ; (802590c ) - 80257c0: 681b ldr r3, [r3, #0] - 80257c2: f503 74b8 add.w r4, r3, #368 ; 0x170 - 80257c6: 4b50 ldr r3, [pc, #320] ; (8025908 ) - 80257c8: 68db ldr r3, [r3, #12] - 80257ca: 2102 movs r1, #2 - 80257cc: 4618 mov r0, r3 - 80257ce: f7fe fb17 bl 8023e00 - 80257d2: 4603 mov r3, r0 - 80257d4: 4619 mov r1, r3 - 80257d6: 4620 mov r0, r4 - 80257d8: f00f f9ce bl 8034b78 + 802572a: 4b53 ldr r3, [pc, #332] ; (8025878 ) + 802572c: 681b ldr r3, [r3, #0] + 802572e: f503 74b8 add.w r4, r3, #368 ; 0x170 + 8025732: 4b50 ldr r3, [pc, #320] ; (8025874 ) + 8025734: 68db ldr r3, [r3, #12] + 8025736: 2102 movs r1, #2 + 8025738: 4618 mov r0, r3 + 802573a: f7fe fb17 bl 8023d6c + 802573e: 4603 mov r3, r0 + 8025740: 4619 mov r1, r3 + 8025742: 4620 mov r0, r4 + 8025744: f00f f9ce bl 8034ae4 lv_style_set_pad_left(&styles->ta_cursor, - lv_disp_dpx(theme.disp, 1)); - 80257dc: 4b4b ldr r3, [pc, #300] ; (802590c ) - 80257de: 681b ldr r3, [r3, #0] - 80257e0: f503 74b8 add.w r4, r3, #368 ; 0x170 - 80257e4: 4b48 ldr r3, [pc, #288] ; (8025908 ) - 80257e6: 68db ldr r3, [r3, #12] - 80257e8: 2101 movs r1, #1 - 80257ea: 4618 mov r0, r3 - 80257ec: f7fe fb08 bl 8023e00 - 80257f0: 4603 mov r3, r0 - 80257f2: b29b uxth r3, r3 - 80257f4: 425b negs r3, r3 - 80257f6: b29b uxth r3, r3 - 80257f8: b21b sxth r3, r3 - 80257fa: 4619 mov r1, r3 - 80257fc: 4620 mov r0, r4 - 80257fe: f00f f906 bl 8034a0e + 8025748: 4b4b ldr r3, [pc, #300] ; (8025878 ) + 802574a: 681b ldr r3, [r3, #0] + 802574c: f503 74b8 add.w r4, r3, #368 ; 0x170 + 8025750: 4b48 ldr r3, [pc, #288] ; (8025874 ) + 8025752: 68db ldr r3, [r3, #12] + 8025754: 2101 movs r1, #1 + 8025756: 4618 mov r0, r3 + 8025758: f7fe fb08 bl 8023d6c + 802575c: 4603 mov r3, r0 + 802575e: b29b uxth r3, r3 + 8025760: 425b negs r3, r3 + 8025762: b29b uxth r3, r3 + 8025764: b21b sxth r3, r3 + 8025766: 4619 mov r1, r3 + 8025768: 4620 mov r0, r4 + 802576a: f00f f906 bl 803497a lv_style_set_border_side(&styles->ta_cursor, LV_BORDER_SIDE_LEFT); - 8025802: 4b42 ldr r3, [pc, #264] ; (802590c ) - 8025804: 681b ldr r3, [r3, #0] - 8025806: f503 73b8 add.w r3, r3, #368 ; 0x170 - 802580a: 2104 movs r1, #4 - 802580c: 4618 mov r0, r3 - 802580e: f00f f9c6 bl 8034b9e + 802576e: 4b42 ldr r3, [pc, #264] ; (8025878 ) + 8025770: 681b ldr r3, [r3, #0] + 8025772: f503 73b8 add.w r3, r3, #368 ; 0x170 + 8025776: 2104 movs r1, #4 + 8025778: 4618 mov r0, r3 + 802577a: f00f f9c6 bl 8034b0a lv_style_set_anim_time(&styles->ta_cursor, 400); - 8025812: 4b3e ldr r3, [pc, #248] ; (802590c ) - 8025814: 681b ldr r3, [r3, #0] - 8025816: f503 73b8 add.w r3, r3, #368 ; 0x170 - 802581a: f44f 71c8 mov.w r1, #400 ; 0x190 - 802581e: 4618 mov r0, r3 - 8025820: f00f fb6e bl 8034f00 + 802577e: 4b3e ldr r3, [pc, #248] ; (8025878 ) + 8025780: 681b ldr r3, [r3, #0] + 8025782: f503 73b8 add.w r3, r3, #368 ; 0x170 + 8025786: f44f 71c8 mov.w r1, #400 ; 0x190 + 802578a: 4618 mov r0, r3 + 802578c: f00f fb6e bl 8034e6c style_init_reset(&styles->ta_placeholder); - 8025824: 4b39 ldr r3, [pc, #228] ; (802590c ) - 8025826: 681b ldr r3, [r3, #0] - 8025828: f503 73bc add.w r3, r3, #376 ; 0x178 - 802582c: 4618 mov r0, r3 - 802582e: f001 fe91 bl 8027554 + 8025790: 4b39 ldr r3, [pc, #228] ; (8025878 ) + 8025792: 681b ldr r3, [r3, #0] + 8025794: f503 73bc add.w r3, r3, #376 ; 0x178 + 8025798: 4618 mov r0, r3 + 802579a: f001 fe91 bl 80274c0 lv_style_set_text_color(&styles->ta_placeholder, (theme.flags & MODE_DARK) ? lv_palette_darken(LV_PALETTE_GREY, - 8025832: 4b36 ldr r3, [pc, #216] ; (802590c ) - 8025834: 681b ldr r3, [r3, #0] - 8025836: f503 74bc add.w r4, r3, #376 ; 0x178 - 802583a: 4b33 ldr r3, [pc, #204] ; (8025908 ) - 802583c: 6a1b ldr r3, [r3, #32] - 802583e: f003 0301 and.w r3, r3, #1 - 8025842: 2b00 cmp r3, #0 - 8025844: d005 beq.n 8025852 - 8025846: 2102 movs r1, #2 - 8025848: 2012 movs r0, #18 - 802584a: f00c f969 bl 8031b20 - 802584e: 4603 mov r3, r0 - 8025850: e004 b.n 802585c + 802579e: 4b36 ldr r3, [pc, #216] ; (8025878 ) + 80257a0: 681b ldr r3, [r3, #0] + 80257a2: f503 74bc add.w r4, r3, #376 ; 0x178 + 80257a6: 4b33 ldr r3, [pc, #204] ; (8025874 ) + 80257a8: 6a1b ldr r3, [r3, #32] + 80257aa: f003 0301 and.w r3, r3, #1 + 80257ae: 2b00 cmp r3, #0 + 80257b0: d005 beq.n 80257be + 80257b2: 2102 movs r1, #2 + 80257b4: 2012 movs r0, #18 + 80257b6: f00c f969 bl 8031a8c + 80257ba: 4603 mov r3, r0 + 80257bc: e004 b.n 80257c8 2) : lv_palette_lighten(LV_PALETTE_GREY, 1)); - 8025852: 2101 movs r1, #1 - 8025854: 2012 movs r0, #18 - 8025856: f00c f937 bl 8031ac8 - 802585a: 4603 mov r3, r0 + 80257be: 2101 movs r1, #1 + 80257c0: 2012 movs r0, #18 + 80257c2: f00c f937 bl 8031a34 + 80257c6: 4603 mov r3, r0 lv_style_set_text_color(&styles->ta_placeholder, (theme.flags & MODE_DARK) ? lv_palette_darken(LV_PALETTE_GREY, - 802585c: 4619 mov r1, r3 - 802585e: 4620 mov r0, r4 - 8025860: f00f fac1 bl 8034de6 + 80257c8: 4619 mov r1, r3 + 80257ca: 4620 mov r0, r4 + 80257cc: f00f fac1 bl 8034d52 #endif #if LV_USE_CALENDAR style_init_reset(&styles->calendar_btnm_bg); - 8025864: 4b29 ldr r3, [pc, #164] ; (802590c ) - 8025866: 681b ldr r3, [r3, #0] - 8025868: f503 73c0 add.w r3, r3, #384 ; 0x180 - 802586c: 4618 mov r0, r3 - 802586e: f001 fe71 bl 8027554 + 80257d0: 4b29 ldr r3, [pc, #164] ; (8025878 ) + 80257d2: 681b ldr r3, [r3, #0] + 80257d4: f503 73c0 add.w r3, r3, #384 ; 0x180 + 80257d8: 4618 mov r0, r3 + 80257da: f001 fe71 bl 80274c0 lv_style_set_pad_all(&styles->calendar_btnm_bg, PAD_SMALL); - 8025872: 4b26 ldr r3, [pc, #152] ; (802590c ) - 8025874: 681b ldr r3, [r3, #0] - 8025876: f503 74c0 add.w r4, r3, #384 ; 0x180 - 802587a: 4b27 ldr r3, [pc, #156] ; (8025918 ) - 802587c: 781b ldrb r3, [r3, #0] - 802587e: 2b01 cmp r3, #1 - 8025880: d107 bne.n 8025892 - 8025882: 4b21 ldr r3, [pc, #132] ; (8025908 ) - 8025884: 68db ldr r3, [r3, #12] - 8025886: 210e movs r1, #14 - 8025888: 4618 mov r0, r3 - 802588a: f7fe fab9 bl 8023e00 - 802588e: 4603 mov r3, r0 - 8025890: e012 b.n 80258b8 - 8025892: 4b21 ldr r3, [pc, #132] ; (8025918 ) - 8025894: 781b ldrb r3, [r3, #0] - 8025896: 2b02 cmp r3, #2 - 8025898: d107 bne.n 80258aa - 802589a: 4b1b ldr r3, [pc, #108] ; (8025908 ) - 802589c: 68db ldr r3, [r3, #12] - 802589e: 210c movs r1, #12 - 80258a0: 4618 mov r0, r3 - 80258a2: f7fe faad bl 8023e00 - 80258a6: 4603 mov r3, r0 - 80258a8: e006 b.n 80258b8 - 80258aa: 4b17 ldr r3, [pc, #92] ; (8025908 ) - 80258ac: 68db ldr r3, [r3, #12] - 80258ae: 210a movs r1, #10 - 80258b0: 4618 mov r0, r3 - 80258b2: f7fe faa5 bl 8023e00 - 80258b6: 4603 mov r3, r0 - 80258b8: 4619 mov r1, r3 - 80258ba: 4620 mov r0, r4 - 80258bc: f7fe fa3b bl 8023d36 + 80257de: 4b26 ldr r3, [pc, #152] ; (8025878 ) + 80257e0: 681b ldr r3, [r3, #0] + 80257e2: f503 74c0 add.w r4, r3, #384 ; 0x180 + 80257e6: 4b27 ldr r3, [pc, #156] ; (8025884 ) + 80257e8: 781b ldrb r3, [r3, #0] + 80257ea: 2b01 cmp r3, #1 + 80257ec: d107 bne.n 80257fe + 80257ee: 4b21 ldr r3, [pc, #132] ; (8025874 ) + 80257f0: 68db ldr r3, [r3, #12] + 80257f2: 210e movs r1, #14 + 80257f4: 4618 mov r0, r3 + 80257f6: f7fe fab9 bl 8023d6c + 80257fa: 4603 mov r3, r0 + 80257fc: e012 b.n 8025824 + 80257fe: 4b21 ldr r3, [pc, #132] ; (8025884 ) + 8025800: 781b ldrb r3, [r3, #0] + 8025802: 2b02 cmp r3, #2 + 8025804: d107 bne.n 8025816 + 8025806: 4b1b ldr r3, [pc, #108] ; (8025874 ) + 8025808: 68db ldr r3, [r3, #12] + 802580a: 210c movs r1, #12 + 802580c: 4618 mov r0, r3 + 802580e: f7fe faad bl 8023d6c + 8025812: 4603 mov r3, r0 + 8025814: e006 b.n 8025824 + 8025816: 4b17 ldr r3, [pc, #92] ; (8025874 ) + 8025818: 68db ldr r3, [r3, #12] + 802581a: 210a movs r1, #10 + 802581c: 4618 mov r0, r3 + 802581e: f7fe faa5 bl 8023d6c + 8025822: 4603 mov r3, r0 + 8025824: 4619 mov r1, r3 + 8025826: 4620 mov r0, r4 + 8025828: f7fe fa3b bl 8023ca2 lv_style_set_pad_gap(&styles->calendar_btnm_bg, PAD_SMALL / 2); - 80258c0: 4b12 ldr r3, [pc, #72] ; (802590c ) - 80258c2: 681b ldr r3, [r3, #0] - 80258c4: f503 74c0 add.w r4, r3, #384 ; 0x180 - 80258c8: 4b13 ldr r3, [pc, #76] ; (8025918 ) - 80258ca: 781b ldrb r3, [r3, #0] - 80258cc: 2b01 cmp r3, #1 - 80258ce: d10b bne.n 80258e8 - 80258d0: 4b0d ldr r3, [pc, #52] ; (8025908 ) - 80258d2: 68db ldr r3, [r3, #12] - 80258d4: 210e movs r1, #14 - 80258d6: 4618 mov r0, r3 - 80258d8: f7fe fa92 bl 8023e00 - 80258dc: 4603 mov r3, r0 - 80258de: 0fda lsrs r2, r3, #31 - 80258e0: 4413 add r3, r2 - 80258e2: 105b asrs r3, r3, #1 - 80258e4: b21b sxth r3, r3 - 80258e6: e024 b.n 8025932 - 80258e8: 4b0b ldr r3, [pc, #44] ; (8025918 ) - 80258ea: 781b ldrb r3, [r3, #0] - 80258ec: 2b02 cmp r3, #2 - 80258ee: d115 bne.n 802591c - 80258f0: 4b05 ldr r3, [pc, #20] ; (8025908 ) - 80258f2: 68db ldr r3, [r3, #12] - 80258f4: 210c movs r1, #12 - 80258f6: 4618 mov r0, r3 - 80258f8: f7fe fa82 bl 8023e00 - 80258fc: 4603 mov r3, r0 - 80258fe: 0fda lsrs r2, r3, #31 - 8025900: 4413 add r3, r2 - 8025902: 105b asrs r3, r3, #1 - 8025904: b21b sxth r3, r3 - 8025906: e014 b.n 8025932 - 8025908: 20001c50 .word 0x20001c50 - 802590c: 20001c4c .word 0x20001c4c - 8025910: 20001c7c .word 0x20001c7c - 8025914: 20001c84 .word 0x20001c84 - 8025918: 20001c74 .word 0x20001c74 - 802591c: 4bb7 ldr r3, [pc, #732] ; (8025bfc ) - 802591e: 68db ldr r3, [r3, #12] - 8025920: 210a movs r1, #10 - 8025922: 4618 mov r0, r3 - 8025924: f7fe fa6c bl 8023e00 - 8025928: 4603 mov r3, r0 - 802592a: 0fda lsrs r2, r3, #31 - 802592c: 4413 add r3, r2 - 802592e: 105b asrs r3, r3, #1 - 8025930: b21b sxth r3, r3 - 8025932: 4619 mov r1, r3 - 8025934: 4620 mov r0, r4 - 8025936: f7fe fa4c bl 8023dd2 + 802582c: 4b12 ldr r3, [pc, #72] ; (8025878 ) + 802582e: 681b ldr r3, [r3, #0] + 8025830: f503 74c0 add.w r4, r3, #384 ; 0x180 + 8025834: 4b13 ldr r3, [pc, #76] ; (8025884 ) + 8025836: 781b ldrb r3, [r3, #0] + 8025838: 2b01 cmp r3, #1 + 802583a: d10b bne.n 8025854 + 802583c: 4b0d ldr r3, [pc, #52] ; (8025874 ) + 802583e: 68db ldr r3, [r3, #12] + 8025840: 210e movs r1, #14 + 8025842: 4618 mov r0, r3 + 8025844: f7fe fa92 bl 8023d6c + 8025848: 4603 mov r3, r0 + 802584a: 0fda lsrs r2, r3, #31 + 802584c: 4413 add r3, r2 + 802584e: 105b asrs r3, r3, #1 + 8025850: b21b sxth r3, r3 + 8025852: e024 b.n 802589e + 8025854: 4b0b ldr r3, [pc, #44] ; (8025884 ) + 8025856: 781b ldrb r3, [r3, #0] + 8025858: 2b02 cmp r3, #2 + 802585a: d115 bne.n 8025888 + 802585c: 4b05 ldr r3, [pc, #20] ; (8025874 ) + 802585e: 68db ldr r3, [r3, #12] + 8025860: 210c movs r1, #12 + 8025862: 4618 mov r0, r3 + 8025864: f7fe fa82 bl 8023d6c + 8025868: 4603 mov r3, r0 + 802586a: 0fda lsrs r2, r3, #31 + 802586c: 4413 add r3, r2 + 802586e: 105b asrs r3, r3, #1 + 8025870: b21b sxth r3, r3 + 8025872: e014 b.n 802589e + 8025874: 20001c50 .word 0x20001c50 + 8025878: 20001c4c .word 0x20001c4c + 802587c: 20001c7c .word 0x20001c7c + 8025880: 20001c84 .word 0x20001c84 + 8025884: 20001c74 .word 0x20001c74 + 8025888: 4bb7 ldr r3, [pc, #732] ; (8025b68 ) + 802588a: 68db ldr r3, [r3, #12] + 802588c: 210a movs r1, #10 + 802588e: 4618 mov r0, r3 + 8025890: f7fe fa6c bl 8023d6c + 8025894: 4603 mov r3, r0 + 8025896: 0fda lsrs r2, r3, #31 + 8025898: 4413 add r3, r2 + 802589a: 105b asrs r3, r3, #1 + 802589c: b21b sxth r3, r3 + 802589e: 4619 mov r1, r3 + 80258a0: 4620 mov r0, r4 + 80258a2: f7fe fa4c bl 8023d3e style_init_reset(&styles->calendar_btnm_day); - 802593a: 4bb1 ldr r3, [pc, #708] ; (8025c00 ) - 802593c: 681b ldr r3, [r3, #0] - 802593e: f503 73c4 add.w r3, r3, #392 ; 0x188 - 8025942: 4618 mov r0, r3 - 8025944: f001 fe06 bl 8027554 + 80258a6: 4bb1 ldr r3, [pc, #708] ; (8025b6c ) + 80258a8: 681b ldr r3, [r3, #0] + 80258aa: f503 73c4 add.w r3, r3, #392 ; 0x188 + 80258ae: 4618 mov r0, r3 + 80258b0: f001 fe06 bl 80274c0 lv_style_set_border_width(&styles->calendar_btnm_day, lv_disp_dpx(theme.disp, 1)); - 8025948: 4bad ldr r3, [pc, #692] ; (8025c00 ) - 802594a: 681b ldr r3, [r3, #0] - 802594c: f503 74c4 add.w r4, r3, #392 ; 0x188 - 8025950: 4baa ldr r3, [pc, #680] ; (8025bfc ) - 8025952: 68db ldr r3, [r3, #12] - 8025954: 2101 movs r1, #1 - 8025956: 4618 mov r0, r3 - 8025958: f7fe fa52 bl 8023e00 - 802595c: 4603 mov r3, r0 - 802595e: 4619 mov r1, r3 - 8025960: 4620 mov r0, r4 - 8025962: f00f f909 bl 8034b78 + 80258b4: 4bad ldr r3, [pc, #692] ; (8025b6c ) + 80258b6: 681b ldr r3, [r3, #0] + 80258b8: f503 74c4 add.w r4, r3, #392 ; 0x188 + 80258bc: 4baa ldr r3, [pc, #680] ; (8025b68 ) + 80258be: 68db ldr r3, [r3, #12] + 80258c0: 2101 movs r1, #1 + 80258c2: 4618 mov r0, r3 + 80258c4: f7fe fa52 bl 8023d6c + 80258c8: 4603 mov r3, r0 + 80258ca: 4619 mov r1, r3 + 80258cc: 4620 mov r0, r4 + 80258ce: f00f f909 bl 8034ae4 lv_style_set_border_color(&styles->calendar_btnm_day, color_grey); - 8025966: 4ba6 ldr r3, [pc, #664] ; (8025c00 ) - 8025968: 681b ldr r3, [r3, #0] - 802596a: f503 73c4 add.w r3, r3, #392 ; 0x188 - 802596e: 4aa5 ldr r2, [pc, #660] ; (8025c04 ) - 8025970: 8811 ldrh r1, [r2, #0] - 8025972: 4618 mov r0, r3 - 8025974: f00f f8dd bl 8034b32 + 80258d2: 4ba6 ldr r3, [pc, #664] ; (8025b6c ) + 80258d4: 681b ldr r3, [r3, #0] + 80258d6: f503 73c4 add.w r3, r3, #392 ; 0x188 + 80258da: 4aa5 ldr r2, [pc, #660] ; (8025b70 ) + 80258dc: 8811 ldrh r1, [r2, #0] + 80258de: 4618 mov r0, r3 + 80258e0: f00f f8dd bl 8034a9e lv_style_set_bg_color(&styles->calendar_btnm_day, color_card); - 8025978: 4ba1 ldr r3, [pc, #644] ; (8025c00 ) - 802597a: 681b ldr r3, [r3, #0] - 802597c: f503 73c4 add.w r3, r3, #392 ; 0x188 - 8025980: 4aa1 ldr r2, [pc, #644] ; (8025c08 ) - 8025982: 8811 ldrh r1, [r2, #0] - 8025984: 4618 mov r0, r3 - 8025986: f00f f88e bl 8034aa6 + 80258e4: 4ba1 ldr r3, [pc, #644] ; (8025b6c ) + 80258e6: 681b ldr r3, [r3, #0] + 80258e8: f503 73c4 add.w r3, r3, #392 ; 0x188 + 80258ec: 4aa1 ldr r2, [pc, #644] ; (8025b74 ) + 80258ee: 8811 ldrh r1, [r2, #0] + 80258f0: 4618 mov r0, r3 + 80258f2: f00f f88e bl 8034a12 lv_style_set_bg_opa(&styles->calendar_btnm_day, LV_OPA_20); - 802598a: 4b9d ldr r3, [pc, #628] ; (8025c00 ) - 802598c: 681b ldr r3, [r3, #0] - 802598e: f503 73c4 add.w r3, r3, #392 ; 0x188 - 8025992: 2133 movs r1, #51 ; 0x33 - 8025994: 4618 mov r0, r3 - 8025996: f00f f898 bl 8034aca + 80258f6: 4b9d ldr r3, [pc, #628] ; (8025b6c ) + 80258f8: 681b ldr r3, [r3, #0] + 80258fa: f503 73c4 add.w r3, r3, #392 ; 0x188 + 80258fe: 2133 movs r1, #51 ; 0x33 + 8025900: 4618 mov r0, r3 + 8025902: f00f f898 bl 8034a36 style_init_reset(&styles->calendar_header); - 802599a: 4b99 ldr r3, [pc, #612] ; (8025c00 ) - 802599c: 681b ldr r3, [r3, #0] - 802599e: f503 73c8 add.w r3, r3, #400 ; 0x190 - 80259a2: 4618 mov r0, r3 - 80259a4: f001 fdd6 bl 8027554 + 8025906: 4b99 ldr r3, [pc, #612] ; (8025b6c ) + 8025908: 681b ldr r3, [r3, #0] + 802590a: f503 73c8 add.w r3, r3, #400 ; 0x190 + 802590e: 4618 mov r0, r3 + 8025910: f001 fdd6 bl 80274c0 lv_style_set_pad_hor(&styles->calendar_header, PAD_SMALL); - 80259a8: 4b95 ldr r3, [pc, #596] ; (8025c00 ) - 80259aa: 681b ldr r3, [r3, #0] - 80259ac: f503 74c8 add.w r4, r3, #400 ; 0x190 - 80259b0: 4b96 ldr r3, [pc, #600] ; (8025c0c ) - 80259b2: 781b ldrb r3, [r3, #0] - 80259b4: 2b01 cmp r3, #1 - 80259b6: d107 bne.n 80259c8 - 80259b8: 4b90 ldr r3, [pc, #576] ; (8025bfc ) - 80259ba: 68db ldr r3, [r3, #12] - 80259bc: 210e movs r1, #14 - 80259be: 4618 mov r0, r3 - 80259c0: f7fe fa1e bl 8023e00 - 80259c4: 4603 mov r3, r0 - 80259c6: e012 b.n 80259ee - 80259c8: 4b90 ldr r3, [pc, #576] ; (8025c0c ) - 80259ca: 781b ldrb r3, [r3, #0] - 80259cc: 2b02 cmp r3, #2 - 80259ce: d107 bne.n 80259e0 - 80259d0: 4b8a ldr r3, [pc, #552] ; (8025bfc ) - 80259d2: 68db ldr r3, [r3, #12] - 80259d4: 210c movs r1, #12 - 80259d6: 4618 mov r0, r3 - 80259d8: f7fe fa12 bl 8023e00 - 80259dc: 4603 mov r3, r0 - 80259de: e006 b.n 80259ee - 80259e0: 4b86 ldr r3, [pc, #536] ; (8025bfc ) - 80259e2: 68db ldr r3, [r3, #12] - 80259e4: 210a movs r1, #10 - 80259e6: 4618 mov r0, r3 - 80259e8: f7fe fa0a bl 8023e00 - 80259ec: 4603 mov r3, r0 - 80259ee: 4619 mov r1, r3 - 80259f0: 4620 mov r0, r4 - 80259f2: f7fe f9c2 bl 8023d7a + 8025914: 4b95 ldr r3, [pc, #596] ; (8025b6c ) + 8025916: 681b ldr r3, [r3, #0] + 8025918: f503 74c8 add.w r4, r3, #400 ; 0x190 + 802591c: 4b96 ldr r3, [pc, #600] ; (8025b78 ) + 802591e: 781b ldrb r3, [r3, #0] + 8025920: 2b01 cmp r3, #1 + 8025922: d107 bne.n 8025934 + 8025924: 4b90 ldr r3, [pc, #576] ; (8025b68 ) + 8025926: 68db ldr r3, [r3, #12] + 8025928: 210e movs r1, #14 + 802592a: 4618 mov r0, r3 + 802592c: f7fe fa1e bl 8023d6c + 8025930: 4603 mov r3, r0 + 8025932: e012 b.n 802595a + 8025934: 4b90 ldr r3, [pc, #576] ; (8025b78 ) + 8025936: 781b ldrb r3, [r3, #0] + 8025938: 2b02 cmp r3, #2 + 802593a: d107 bne.n 802594c + 802593c: 4b8a ldr r3, [pc, #552] ; (8025b68 ) + 802593e: 68db ldr r3, [r3, #12] + 8025940: 210c movs r1, #12 + 8025942: 4618 mov r0, r3 + 8025944: f7fe fa12 bl 8023d6c + 8025948: 4603 mov r3, r0 + 802594a: e006 b.n 802595a + 802594c: 4b86 ldr r3, [pc, #536] ; (8025b68 ) + 802594e: 68db ldr r3, [r3, #12] + 8025950: 210a movs r1, #10 + 8025952: 4618 mov r0, r3 + 8025954: f7fe fa0a bl 8023d6c + 8025958: 4603 mov r3, r0 + 802595a: 4619 mov r1, r3 + 802595c: 4620 mov r0, r4 + 802595e: f7fe f9c2 bl 8023ce6 lv_style_set_pad_top(&styles->calendar_header, PAD_SMALL); - 80259f6: 4b82 ldr r3, [pc, #520] ; (8025c00 ) - 80259f8: 681b ldr r3, [r3, #0] - 80259fa: f503 74c8 add.w r4, r3, #400 ; 0x190 - 80259fe: 4b83 ldr r3, [pc, #524] ; (8025c0c ) - 8025a00: 781b ldrb r3, [r3, #0] - 8025a02: 2b01 cmp r3, #1 - 8025a04: d107 bne.n 8025a16 - 8025a06: 4b7d ldr r3, [pc, #500] ; (8025bfc ) - 8025a08: 68db ldr r3, [r3, #12] - 8025a0a: 210e movs r1, #14 - 8025a0c: 4618 mov r0, r3 - 8025a0e: f7fe f9f7 bl 8023e00 - 8025a12: 4603 mov r3, r0 - 8025a14: e012 b.n 8025a3c - 8025a16: 4b7d ldr r3, [pc, #500] ; (8025c0c ) - 8025a18: 781b ldrb r3, [r3, #0] - 8025a1a: 2b02 cmp r3, #2 - 8025a1c: d107 bne.n 8025a2e - 8025a1e: 4b77 ldr r3, [pc, #476] ; (8025bfc ) - 8025a20: 68db ldr r3, [r3, #12] - 8025a22: 210c movs r1, #12 - 8025a24: 4618 mov r0, r3 - 8025a26: f7fe f9eb bl 8023e00 - 8025a2a: 4603 mov r3, r0 - 8025a2c: e006 b.n 8025a3c - 8025a2e: 4b73 ldr r3, [pc, #460] ; (8025bfc ) - 8025a30: 68db ldr r3, [r3, #12] - 8025a32: 210a movs r1, #10 - 8025a34: 4618 mov r0, r3 - 8025a36: f7fe f9e3 bl 8023e00 - 8025a3a: 4603 mov r3, r0 - 8025a3c: 4619 mov r1, r3 - 8025a3e: 4620 mov r0, r4 - 8025a40: f00e ffbf bl 80349c2 + 8025962: 4b82 ldr r3, [pc, #520] ; (8025b6c ) + 8025964: 681b ldr r3, [r3, #0] + 8025966: f503 74c8 add.w r4, r3, #400 ; 0x190 + 802596a: 4b83 ldr r3, [pc, #524] ; (8025b78 ) + 802596c: 781b ldrb r3, [r3, #0] + 802596e: 2b01 cmp r3, #1 + 8025970: d107 bne.n 8025982 + 8025972: 4b7d ldr r3, [pc, #500] ; (8025b68 ) + 8025974: 68db ldr r3, [r3, #12] + 8025976: 210e movs r1, #14 + 8025978: 4618 mov r0, r3 + 802597a: f7fe f9f7 bl 8023d6c + 802597e: 4603 mov r3, r0 + 8025980: e012 b.n 80259a8 + 8025982: 4b7d ldr r3, [pc, #500] ; (8025b78 ) + 8025984: 781b ldrb r3, [r3, #0] + 8025986: 2b02 cmp r3, #2 + 8025988: d107 bne.n 802599a + 802598a: 4b77 ldr r3, [pc, #476] ; (8025b68 ) + 802598c: 68db ldr r3, [r3, #12] + 802598e: 210c movs r1, #12 + 8025990: 4618 mov r0, r3 + 8025992: f7fe f9eb bl 8023d6c + 8025996: 4603 mov r3, r0 + 8025998: e006 b.n 80259a8 + 802599a: 4b73 ldr r3, [pc, #460] ; (8025b68 ) + 802599c: 68db ldr r3, [r3, #12] + 802599e: 210a movs r1, #10 + 80259a0: 4618 mov r0, r3 + 80259a2: f7fe f9e3 bl 8023d6c + 80259a6: 4603 mov r3, r0 + 80259a8: 4619 mov r1, r3 + 80259aa: 4620 mov r0, r4 + 80259ac: f00e ffbf bl 803492e lv_style_set_pad_bottom(&styles->calendar_header, PAD_TINY); - 8025a44: 4b6e ldr r3, [pc, #440] ; (8025c00 ) - 8025a46: 681b ldr r3, [r3, #0] - 8025a48: f503 74c8 add.w r4, r3, #400 ; 0x190 - 8025a4c: 4b6f ldr r3, [pc, #444] ; (8025c0c ) - 8025a4e: 781b ldrb r3, [r3, #0] - 8025a50: 2b01 cmp r3, #1 - 8025a52: d107 bne.n 8025a64 - 8025a54: 4b69 ldr r3, [pc, #420] ; (8025bfc ) - 8025a56: 68db ldr r3, [r3, #12] - 8025a58: 2108 movs r1, #8 - 8025a5a: 4618 mov r0, r3 - 8025a5c: f7fe f9d0 bl 8023e00 - 8025a60: 4603 mov r3, r0 - 8025a62: e012 b.n 8025a8a - 8025a64: 4b69 ldr r3, [pc, #420] ; (8025c0c ) - 8025a66: 781b ldrb r3, [r3, #0] - 8025a68: 2b02 cmp r3, #2 - 8025a6a: d107 bne.n 8025a7c - 8025a6c: 4b63 ldr r3, [pc, #396] ; (8025bfc ) - 8025a6e: 68db ldr r3, [r3, #12] - 8025a70: 2106 movs r1, #6 - 8025a72: 4618 mov r0, r3 - 8025a74: f7fe f9c4 bl 8023e00 - 8025a78: 4603 mov r3, r0 - 8025a7a: e006 b.n 8025a8a - 8025a7c: 4b5f ldr r3, [pc, #380] ; (8025bfc ) - 8025a7e: 68db ldr r3, [r3, #12] - 8025a80: 2102 movs r1, #2 - 8025a82: 4618 mov r0, r3 - 8025a84: f7fe f9bc bl 8023e00 - 8025a88: 4603 mov r3, r0 - 8025a8a: 4619 mov r1, r3 - 8025a8c: 4620 mov r0, r4 - 8025a8e: f00e ffab bl 80349e8 + 80259b0: 4b6e ldr r3, [pc, #440] ; (8025b6c ) + 80259b2: 681b ldr r3, [r3, #0] + 80259b4: f503 74c8 add.w r4, r3, #400 ; 0x190 + 80259b8: 4b6f ldr r3, [pc, #444] ; (8025b78 ) + 80259ba: 781b ldrb r3, [r3, #0] + 80259bc: 2b01 cmp r3, #1 + 80259be: d107 bne.n 80259d0 + 80259c0: 4b69 ldr r3, [pc, #420] ; (8025b68 ) + 80259c2: 68db ldr r3, [r3, #12] + 80259c4: 2108 movs r1, #8 + 80259c6: 4618 mov r0, r3 + 80259c8: f7fe f9d0 bl 8023d6c + 80259cc: 4603 mov r3, r0 + 80259ce: e012 b.n 80259f6 + 80259d0: 4b69 ldr r3, [pc, #420] ; (8025b78 ) + 80259d2: 781b ldrb r3, [r3, #0] + 80259d4: 2b02 cmp r3, #2 + 80259d6: d107 bne.n 80259e8 + 80259d8: 4b63 ldr r3, [pc, #396] ; (8025b68 ) + 80259da: 68db ldr r3, [r3, #12] + 80259dc: 2106 movs r1, #6 + 80259de: 4618 mov r0, r3 + 80259e0: f7fe f9c4 bl 8023d6c + 80259e4: 4603 mov r3, r0 + 80259e6: e006 b.n 80259f6 + 80259e8: 4b5f ldr r3, [pc, #380] ; (8025b68 ) + 80259ea: 68db ldr r3, [r3, #12] + 80259ec: 2102 movs r1, #2 + 80259ee: 4618 mov r0, r3 + 80259f0: f7fe f9bc bl 8023d6c + 80259f4: 4603 mov r3, r0 + 80259f6: 4619 mov r1, r3 + 80259f8: 4620 mov r0, r4 + 80259fa: f00e ffab bl 8034954 lv_style_set_pad_gap(&styles->calendar_header, PAD_SMALL); - 8025a92: 4b5b ldr r3, [pc, #364] ; (8025c00 ) - 8025a94: 681b ldr r3, [r3, #0] - 8025a96: f503 74c8 add.w r4, r3, #400 ; 0x190 - 8025a9a: 4b5c ldr r3, [pc, #368] ; (8025c0c ) - 8025a9c: 781b ldrb r3, [r3, #0] - 8025a9e: 2b01 cmp r3, #1 - 8025aa0: d107 bne.n 8025ab2 - 8025aa2: 4b56 ldr r3, [pc, #344] ; (8025bfc ) - 8025aa4: 68db ldr r3, [r3, #12] - 8025aa6: 210e movs r1, #14 - 8025aa8: 4618 mov r0, r3 - 8025aaa: f7fe f9a9 bl 8023e00 - 8025aae: 4603 mov r3, r0 - 8025ab0: e012 b.n 8025ad8 - 8025ab2: 4b56 ldr r3, [pc, #344] ; (8025c0c ) - 8025ab4: 781b ldrb r3, [r3, #0] - 8025ab6: 2b02 cmp r3, #2 - 8025ab8: d107 bne.n 8025aca - 8025aba: 4b50 ldr r3, [pc, #320] ; (8025bfc ) - 8025abc: 68db ldr r3, [r3, #12] - 8025abe: 210c movs r1, #12 - 8025ac0: 4618 mov r0, r3 - 8025ac2: f7fe f99d bl 8023e00 - 8025ac6: 4603 mov r3, r0 - 8025ac8: e006 b.n 8025ad8 - 8025aca: 4b4c ldr r3, [pc, #304] ; (8025bfc ) - 8025acc: 68db ldr r3, [r3, #12] - 8025ace: 210a movs r1, #10 - 8025ad0: 4618 mov r0, r3 - 8025ad2: f7fe f995 bl 8023e00 - 8025ad6: 4603 mov r3, r0 - 8025ad8: 4619 mov r1, r3 - 8025ada: 4620 mov r0, r4 - 8025adc: f7fe f979 bl 8023dd2 + 80259fe: 4b5b ldr r3, [pc, #364] ; (8025b6c ) + 8025a00: 681b ldr r3, [r3, #0] + 8025a02: f503 74c8 add.w r4, r3, #400 ; 0x190 + 8025a06: 4b5c ldr r3, [pc, #368] ; (8025b78 ) + 8025a08: 781b ldrb r3, [r3, #0] + 8025a0a: 2b01 cmp r3, #1 + 8025a0c: d107 bne.n 8025a1e + 8025a0e: 4b56 ldr r3, [pc, #344] ; (8025b68 ) + 8025a10: 68db ldr r3, [r3, #12] + 8025a12: 210e movs r1, #14 + 8025a14: 4618 mov r0, r3 + 8025a16: f7fe f9a9 bl 8023d6c + 8025a1a: 4603 mov r3, r0 + 8025a1c: e012 b.n 8025a44 + 8025a1e: 4b56 ldr r3, [pc, #344] ; (8025b78 ) + 8025a20: 781b ldrb r3, [r3, #0] + 8025a22: 2b02 cmp r3, #2 + 8025a24: d107 bne.n 8025a36 + 8025a26: 4b50 ldr r3, [pc, #320] ; (8025b68 ) + 8025a28: 68db ldr r3, [r3, #12] + 8025a2a: 210c movs r1, #12 + 8025a2c: 4618 mov r0, r3 + 8025a2e: f7fe f99d bl 8023d6c + 8025a32: 4603 mov r3, r0 + 8025a34: e006 b.n 8025a44 + 8025a36: 4b4c ldr r3, [pc, #304] ; (8025b68 ) + 8025a38: 68db ldr r3, [r3, #12] + 8025a3a: 210a movs r1, #10 + 8025a3c: 4618 mov r0, r3 + 8025a3e: f7fe f995 bl 8023d6c + 8025a42: 4603 mov r3, r0 + 8025a44: 4619 mov r1, r3 + 8025a46: 4620 mov r0, r4 + 8025a48: f7fe f979 bl 8023d3e #endif #if LV_USE_COLORWHEEL style_init_reset(&styles->colorwheel_main); - 8025ae0: 4b47 ldr r3, [pc, #284] ; (8025c00 ) - 8025ae2: 681b ldr r3, [r3, #0] - 8025ae4: f503 73cc add.w r3, r3, #408 ; 0x198 - 8025ae8: 4618 mov r0, r3 - 8025aea: f001 fd33 bl 8027554 + 8025a4c: 4b47 ldr r3, [pc, #284] ; (8025b6c ) + 8025a4e: 681b ldr r3, [r3, #0] + 8025a50: f503 73cc add.w r3, r3, #408 ; 0x198 + 8025a54: 4618 mov r0, r3 + 8025a56: f001 fd33 bl 80274c0 lv_style_set_arc_width(&styles->colorwheel_main, lv_disp_dpx(theme.disp, 10)); - 8025aee: 4b44 ldr r3, [pc, #272] ; (8025c00 ) - 8025af0: 681b ldr r3, [r3, #0] - 8025af2: f503 74cc add.w r4, r3, #408 ; 0x198 - 8025af6: 4b41 ldr r3, [pc, #260] ; (8025bfc ) - 8025af8: 68db ldr r3, [r3, #12] - 8025afa: 210a movs r1, #10 - 8025afc: 4618 mov r0, r3 - 8025afe: f7fe f97f bl 8023e00 - 8025b02: 4603 mov r3, r0 - 8025b04: 4619 mov r1, r3 - 8025b06: 4620 mov r0, r4 - 8025b08: f00f f937 bl 8034d7a + 8025a5a: 4b44 ldr r3, [pc, #272] ; (8025b6c ) + 8025a5c: 681b ldr r3, [r3, #0] + 8025a5e: f503 74cc add.w r4, r3, #408 ; 0x198 + 8025a62: 4b41 ldr r3, [pc, #260] ; (8025b68 ) + 8025a64: 68db ldr r3, [r3, #12] + 8025a66: 210a movs r1, #10 + 8025a68: 4618 mov r0, r3 + 8025a6a: f7fe f97f bl 8023d6c + 8025a6e: 4603 mov r3, r0 + 8025a70: 4619 mov r1, r3 + 8025a72: 4620 mov r0, r4 + 8025a74: f00f f937 bl 8034ce6 #endif #if LV_USE_MSGBOX /*To add space for for the button shadow*/ style_init_reset(&styles->msgbox_btn_bg); - 8025b0c: 4b3c ldr r3, [pc, #240] ; (8025c00 ) - 8025b0e: 681b ldr r3, [r3, #0] - 8025b10: f503 73fc add.w r3, r3, #504 ; 0x1f8 - 8025b14: 4618 mov r0, r3 - 8025b16: f001 fd1d bl 8027554 + 8025a78: 4b3c ldr r3, [pc, #240] ; (8025b6c ) + 8025a7a: 681b ldr r3, [r3, #0] + 8025a7c: f503 73fc add.w r3, r3, #504 ; 0x1f8 + 8025a80: 4618 mov r0, r3 + 8025a82: f001 fd1d bl 80274c0 lv_style_set_pad_all(&styles->msgbox_btn_bg, lv_disp_dpx(theme.disp, 4)); - 8025b1a: 4b39 ldr r3, [pc, #228] ; (8025c00 ) - 8025b1c: 681b ldr r3, [r3, #0] - 8025b1e: f503 74fc add.w r4, r3, #504 ; 0x1f8 - 8025b22: 4b36 ldr r3, [pc, #216] ; (8025bfc ) - 8025b24: 68db ldr r3, [r3, #12] - 8025b26: 2104 movs r1, #4 - 8025b28: 4618 mov r0, r3 - 8025b2a: f7fe f969 bl 8023e00 - 8025b2e: 4603 mov r3, r0 - 8025b30: 4619 mov r1, r3 - 8025b32: 4620 mov r0, r4 - 8025b34: f7fe f8ff bl 8023d36 + 8025a86: 4b39 ldr r3, [pc, #228] ; (8025b6c ) + 8025a88: 681b ldr r3, [r3, #0] + 8025a8a: f503 74fc add.w r4, r3, #504 ; 0x1f8 + 8025a8e: 4b36 ldr r3, [pc, #216] ; (8025b68 ) + 8025a90: 68db ldr r3, [r3, #12] + 8025a92: 2104 movs r1, #4 + 8025a94: 4618 mov r0, r3 + 8025a96: f7fe f969 bl 8023d6c + 8025a9a: 4603 mov r3, r0 + 8025a9c: 4619 mov r1, r3 + 8025a9e: 4620 mov r0, r4 + 8025aa0: f7fe f8ff bl 8023ca2 style_init_reset(&styles->msgbox_bg); - 8025b38: 4b31 ldr r3, [pc, #196] ; (8025c00 ) - 8025b3a: 681b ldr r3, [r3, #0] - 8025b3c: f503 73f8 add.w r3, r3, #496 ; 0x1f0 - 8025b40: 4618 mov r0, r3 - 8025b42: f001 fd07 bl 8027554 + 8025aa4: 4b31 ldr r3, [pc, #196] ; (8025b6c ) + 8025aa6: 681b ldr r3, [r3, #0] + 8025aa8: f503 73f8 add.w r3, r3, #496 ; 0x1f0 + 8025aac: 4618 mov r0, r3 + 8025aae: f001 fd07 bl 80274c0 lv_style_set_max_width(&styles->msgbox_bg, lv_pct(100)); - 8025b46: 4b2e ldr r3, [pc, #184] ; (8025c00 ) - 8025b48: 681b ldr r3, [r3, #0] - 8025b4a: f503 74f8 add.w r4, r3, #496 ; 0x1f0 - 8025b4e: 2064 movs r0, #100 ; 0x64 - 8025b50: f7fe f824 bl 8023b9c - 8025b54: 4603 mov r3, r0 - 8025b56: 4619 mov r1, r3 - 8025b58: 4620 mov r0, r4 - 8025b5a: f00e fed3 bl 8034904 + 8025ab2: 4b2e ldr r3, [pc, #184] ; (8025b6c ) + 8025ab4: 681b ldr r3, [r3, #0] + 8025ab6: f503 74f8 add.w r4, r3, #496 ; 0x1f0 + 8025aba: 2064 movs r0, #100 ; 0x64 + 8025abc: f7fe f824 bl 8023b08 + 8025ac0: 4603 mov r3, r0 + 8025ac2: 4619 mov r1, r3 + 8025ac4: 4620 mov r0, r4 + 8025ac6: f00e fed3 bl 8034870 style_init_reset(&styles->msgbox_backdrop_bg); - 8025b5e: 4b28 ldr r3, [pc, #160] ; (8025c00 ) - 8025b60: 681b ldr r3, [r3, #0] - 8025b62: f503 7300 add.w r3, r3, #512 ; 0x200 - 8025b66: 4618 mov r0, r3 - 8025b68: f001 fcf4 bl 8027554 + 8025aca: 4b28 ldr r3, [pc, #160] ; (8025b6c ) + 8025acc: 681b ldr r3, [r3, #0] + 8025ace: f503 7300 add.w r3, r3, #512 ; 0x200 + 8025ad2: 4618 mov r0, r3 + 8025ad4: f001 fcf4 bl 80274c0 lv_style_set_bg_color(&styles->msgbox_backdrop_bg, lv_palette_main(LV_PALETTE_GREY)); - 8025b6c: 4b24 ldr r3, [pc, #144] ; (8025c00 ) - 8025b6e: 681b ldr r3, [r3, #0] - 8025b70: f503 7400 add.w r4, r3, #512 ; 0x200 - 8025b74: 2012 movs r0, #18 - 8025b76: f00b ff91 bl 8031a9c - 8025b7a: 4603 mov r3, r0 - 8025b7c: 4619 mov r1, r3 - 8025b7e: 4620 mov r0, r4 - 8025b80: f00e ff91 bl 8034aa6 + 8025ad8: 4b24 ldr r3, [pc, #144] ; (8025b6c ) + 8025ada: 681b ldr r3, [r3, #0] + 8025adc: f503 7400 add.w r4, r3, #512 ; 0x200 + 8025ae0: 2012 movs r0, #18 + 8025ae2: f00b ff91 bl 8031a08 + 8025ae6: 4603 mov r3, r0 + 8025ae8: 4619 mov r1, r3 + 8025aea: 4620 mov r0, r4 + 8025aec: f00e ff91 bl 8034a12 lv_style_set_bg_opa(&styles->msgbox_backdrop_bg, LV_OPA_50); - 8025b84: 4b1e ldr r3, [pc, #120] ; (8025c00 ) - 8025b86: 681b ldr r3, [r3, #0] - 8025b88: f503 7300 add.w r3, r3, #512 ; 0x200 - 8025b8c: 217f movs r1, #127 ; 0x7f - 8025b8e: 4618 mov r0, r3 - 8025b90: f00e ff9b bl 8034aca + 8025af0: 4b1e ldr r3, [pc, #120] ; (8025b6c ) + 8025af2: 681b ldr r3, [r3, #0] + 8025af4: f503 7300 add.w r3, r3, #512 ; 0x200 + 8025af8: 217f movs r1, #127 ; 0x7f + 8025afa: 4618 mov r0, r3 + 8025afc: f00e ff9b bl 8034a36 #endif #if LV_USE_KEYBOARD style_init_reset(&styles->keyboard_btn_bg); - 8025b94: 4b1a ldr r3, [pc, #104] ; (8025c00 ) - 8025b96: 681b ldr r3, [r3, #0] - 8025b98: f503 7302 add.w r3, r3, #520 ; 0x208 - 8025b9c: 4618 mov r0, r3 - 8025b9e: f001 fcd9 bl 8027554 + 8025b00: 4b1a ldr r3, [pc, #104] ; (8025b6c ) + 8025b02: 681b ldr r3, [r3, #0] + 8025b04: f503 7302 add.w r3, r3, #520 ; 0x208 + 8025b08: 4618 mov r0, r3 + 8025b0a: f001 fcd9 bl 80274c0 lv_style_set_shadow_width(&styles->keyboard_btn_bg, 0); - 8025ba2: 4b17 ldr r3, [pc, #92] ; (8025c00 ) - 8025ba4: 681b ldr r3, [r3, #0] - 8025ba6: f503 7302 add.w r3, r3, #520 ; 0x208 - 8025baa: 2100 movs r1, #0 - 8025bac: 4618 mov r0, r3 - 8025bae: f00f f862 bl 8034c76 + 8025b0e: 4b17 ldr r3, [pc, #92] ; (8025b6c ) + 8025b10: 681b ldr r3, [r3, #0] + 8025b12: f503 7302 add.w r3, r3, #520 ; 0x208 + 8025b16: 2100 movs r1, #0 + 8025b18: 4618 mov r0, r3 + 8025b1a: f00f f862 bl 8034be2 lv_style_set_radius(&styles->keyboard_btn_bg, disp_size == DISP_SMALL ? RADIUS_DEFAULT / 2 : RADIUS_DEFAULT); - 8025bb2: 4b13 ldr r3, [pc, #76] ; (8025c00 ) - 8025bb4: 681b ldr r3, [r3, #0] - 8025bb6: f503 7402 add.w r4, r3, #520 ; 0x208 - 8025bba: 4b14 ldr r3, [pc, #80] ; (8025c0c ) - 8025bbc: 781b ldrb r3, [r3, #0] - 8025bbe: 2b03 cmp r3, #3 - 8025bc0: d126 bne.n 8025c10 - 8025bc2: 4b12 ldr r3, [pc, #72] ; (8025c0c ) - 8025bc4: 781b ldrb r3, [r3, #0] - 8025bc6: 2b01 cmp r3, #1 - 8025bc8: d10b bne.n 8025be2 - 8025bca: 4b0c ldr r3, [pc, #48] ; (8025bfc ) - 8025bcc: 68db ldr r3, [r3, #12] - 8025bce: 210c movs r1, #12 - 8025bd0: 4618 mov r0, r3 - 8025bd2: f7fe f915 bl 8023e00 - 8025bd6: 4603 mov r3, r0 - 8025bd8: 0fda lsrs r2, r3, #31 - 8025bda: 4413 add r3, r2 - 8025bdc: 105b asrs r3, r3, #1 - 8025bde: b21b sxth r3, r3 - 8025be0: e029 b.n 8025c36 - 8025be2: 4b06 ldr r3, [pc, #24] ; (8025bfc ) - 8025be4: 68db ldr r3, [r3, #12] - 8025be6: 2108 movs r1, #8 - 8025be8: 4618 mov r0, r3 - 8025bea: f7fe f909 bl 8023e00 - 8025bee: 4603 mov r3, r0 - 8025bf0: 0fda lsrs r2, r3, #31 - 8025bf2: 4413 add r3, r2 - 8025bf4: 105b asrs r3, r3, #1 - 8025bf6: b21b sxth r3, r3 - 8025bf8: e01d b.n 8025c36 - 8025bfa: bf00 nop - 8025bfc: 20001c50 .word 0x20001c50 - 8025c00: 20001c4c .word 0x20001c4c - 8025c04: 20001c84 .word 0x20001c84 - 8025c08: 20001c80 .word 0x20001c80 - 8025c0c: 20001c74 .word 0x20001c74 - 8025c10: 4b9c ldr r3, [pc, #624] ; (8025e84 ) - 8025c12: 781b ldrb r3, [r3, #0] - 8025c14: 2b01 cmp r3, #1 - 8025c16: d107 bne.n 8025c28 - 8025c18: 4b9b ldr r3, [pc, #620] ; (8025e88 ) - 8025c1a: 68db ldr r3, [r3, #12] - 8025c1c: 210c movs r1, #12 - 8025c1e: 4618 mov r0, r3 - 8025c20: f7fe f8ee bl 8023e00 - 8025c24: 4603 mov r3, r0 - 8025c26: e006 b.n 8025c36 - 8025c28: 4b97 ldr r3, [pc, #604] ; (8025e88 ) - 8025c2a: 68db ldr r3, [r3, #12] - 8025c2c: 2108 movs r1, #8 - 8025c2e: 4618 mov r0, r3 - 8025c30: f7fe f8e6 bl 8023e00 - 8025c34: 4603 mov r3, r0 - 8025c36: 4619 mov r1, r3 - 8025c38: 4620 mov r0, r4 - 8025c3a: f00f f91d bl 8034e78 + 8025b1e: 4b13 ldr r3, [pc, #76] ; (8025b6c ) + 8025b20: 681b ldr r3, [r3, #0] + 8025b22: f503 7402 add.w r4, r3, #520 ; 0x208 + 8025b26: 4b14 ldr r3, [pc, #80] ; (8025b78 ) + 8025b28: 781b ldrb r3, [r3, #0] + 8025b2a: 2b03 cmp r3, #3 + 8025b2c: d126 bne.n 8025b7c + 8025b2e: 4b12 ldr r3, [pc, #72] ; (8025b78 ) + 8025b30: 781b ldrb r3, [r3, #0] + 8025b32: 2b01 cmp r3, #1 + 8025b34: d10b bne.n 8025b4e + 8025b36: 4b0c ldr r3, [pc, #48] ; (8025b68 ) + 8025b38: 68db ldr r3, [r3, #12] + 8025b3a: 210c movs r1, #12 + 8025b3c: 4618 mov r0, r3 + 8025b3e: f7fe f915 bl 8023d6c + 8025b42: 4603 mov r3, r0 + 8025b44: 0fda lsrs r2, r3, #31 + 8025b46: 4413 add r3, r2 + 8025b48: 105b asrs r3, r3, #1 + 8025b4a: b21b sxth r3, r3 + 8025b4c: e029 b.n 8025ba2 + 8025b4e: 4b06 ldr r3, [pc, #24] ; (8025b68 ) + 8025b50: 68db ldr r3, [r3, #12] + 8025b52: 2108 movs r1, #8 + 8025b54: 4618 mov r0, r3 + 8025b56: f7fe f909 bl 8023d6c + 8025b5a: 4603 mov r3, r0 + 8025b5c: 0fda lsrs r2, r3, #31 + 8025b5e: 4413 add r3, r2 + 8025b60: 105b asrs r3, r3, #1 + 8025b62: b21b sxth r3, r3 + 8025b64: e01d b.n 8025ba2 + 8025b66: bf00 nop + 8025b68: 20001c50 .word 0x20001c50 + 8025b6c: 20001c4c .word 0x20001c4c + 8025b70: 20001c84 .word 0x20001c84 + 8025b74: 20001c80 .word 0x20001c80 + 8025b78: 20001c74 .word 0x20001c74 + 8025b7c: 4b9c ldr r3, [pc, #624] ; (8025df0 ) + 8025b7e: 781b ldrb r3, [r3, #0] + 8025b80: 2b01 cmp r3, #1 + 8025b82: d107 bne.n 8025b94 + 8025b84: 4b9b ldr r3, [pc, #620] ; (8025df4 ) + 8025b86: 68db ldr r3, [r3, #12] + 8025b88: 210c movs r1, #12 + 8025b8a: 4618 mov r0, r3 + 8025b8c: f7fe f8ee bl 8023d6c + 8025b90: 4603 mov r3, r0 + 8025b92: e006 b.n 8025ba2 + 8025b94: 4b97 ldr r3, [pc, #604] ; (8025df4 ) + 8025b96: 68db ldr r3, [r3, #12] + 8025b98: 2108 movs r1, #8 + 8025b9a: 4618 mov r0, r3 + 8025b9c: f7fe f8e6 bl 8023d6c + 8025ba0: 4603 mov r3, r0 + 8025ba2: 4619 mov r1, r3 + 8025ba4: 4620 mov r0, r4 + 8025ba6: f00f f91d bl 8034de4 #endif #if LV_USE_TABVIEW style_init_reset(&styles->tab_btn); - 8025c3e: 4b93 ldr r3, [pc, #588] ; (8025e8c ) - 8025c40: 681b ldr r3, [r3, #0] - 8025c42: f503 730e add.w r3, r3, #568 ; 0x238 - 8025c46: 4618 mov r0, r3 - 8025c48: f001 fc84 bl 8027554 + 8025baa: 4b93 ldr r3, [pc, #588] ; (8025df8 ) + 8025bac: 681b ldr r3, [r3, #0] + 8025bae: f503 730e add.w r3, r3, #568 ; 0x238 + 8025bb2: 4618 mov r0, r3 + 8025bb4: f001 fc84 bl 80274c0 lv_style_set_border_color(&styles->tab_btn, theme.color_primary); - 8025c4c: 4b8f ldr r3, [pc, #572] ; (8025e8c ) - 8025c4e: 681b ldr r3, [r3, #0] - 8025c50: f503 730e add.w r3, r3, #568 ; 0x238 - 8025c54: 4a8c ldr r2, [pc, #560] ; (8025e88 ) - 8025c56: 8a11 ldrh r1, [r2, #16] - 8025c58: 4618 mov r0, r3 - 8025c5a: f00e ff6a bl 8034b32 + 8025bb8: 4b8f ldr r3, [pc, #572] ; (8025df8 ) + 8025bba: 681b ldr r3, [r3, #0] + 8025bbc: f503 730e add.w r3, r3, #568 ; 0x238 + 8025bc0: 4a8c ldr r2, [pc, #560] ; (8025df4 ) + 8025bc2: 8a11 ldrh r1, [r2, #16] + 8025bc4: 4618 mov r0, r3 + 8025bc6: f00e ff6a bl 8034a9e lv_style_set_border_width(&styles->tab_btn, BORDER_WIDTH * 2); - 8025c5e: 4b8b ldr r3, [pc, #556] ; (8025e8c ) - 8025c60: 681b ldr r3, [r3, #0] - 8025c62: f503 740e add.w r4, r3, #568 ; 0x238 - 8025c66: 4b88 ldr r3, [pc, #544] ; (8025e88 ) - 8025c68: 68db ldr r3, [r3, #12] - 8025c6a: 2102 movs r1, #2 - 8025c6c: 4618 mov r0, r3 - 8025c6e: f7fe f8c7 bl 8023e00 - 8025c72: 4603 mov r3, r0 - 8025c74: b29b uxth r3, r3 - 8025c76: 005b lsls r3, r3, #1 - 8025c78: b29b uxth r3, r3 - 8025c7a: b21b sxth r3, r3 - 8025c7c: 4619 mov r1, r3 - 8025c7e: 4620 mov r0, r4 - 8025c80: f00e ff7a bl 8034b78 + 8025bca: 4b8b ldr r3, [pc, #556] ; (8025df8 ) + 8025bcc: 681b ldr r3, [r3, #0] + 8025bce: f503 740e add.w r4, r3, #568 ; 0x238 + 8025bd2: 4b88 ldr r3, [pc, #544] ; (8025df4 ) + 8025bd4: 68db ldr r3, [r3, #12] + 8025bd6: 2102 movs r1, #2 + 8025bd8: 4618 mov r0, r3 + 8025bda: f7fe f8c7 bl 8023d6c + 8025bde: 4603 mov r3, r0 + 8025be0: b29b uxth r3, r3 + 8025be2: 005b lsls r3, r3, #1 + 8025be4: b29b uxth r3, r3 + 8025be6: b21b sxth r3, r3 + 8025be8: 4619 mov r1, r3 + 8025bea: 4620 mov r0, r4 + 8025bec: f00e ff7a bl 8034ae4 lv_style_set_border_side(&styles->tab_btn, LV_BORDER_SIDE_BOTTOM); - 8025c84: 4b81 ldr r3, [pc, #516] ; (8025e8c ) - 8025c86: 681b ldr r3, [r3, #0] - 8025c88: f503 730e add.w r3, r3, #568 ; 0x238 - 8025c8c: 2101 movs r1, #1 - 8025c8e: 4618 mov r0, r3 - 8025c90: f00e ff85 bl 8034b9e + 8025bf0: 4b81 ldr r3, [pc, #516] ; (8025df8 ) + 8025bf2: 681b ldr r3, [r3, #0] + 8025bf4: f503 730e add.w r3, r3, #568 ; 0x238 + 8025bf8: 2101 movs r1, #1 + 8025bfa: 4618 mov r0, r3 + 8025bfc: f00e ff85 bl 8034b0a style_init_reset(&styles->tab_bg_focus); - 8025c94: 4b7d ldr r3, [pc, #500] ; (8025e8c ) - 8025c96: 681b ldr r3, [r3, #0] - 8025c98: f503 730c add.w r3, r3, #560 ; 0x230 - 8025c9c: 4618 mov r0, r3 - 8025c9e: f001 fc59 bl 8027554 + 8025c00: 4b7d ldr r3, [pc, #500] ; (8025df8 ) + 8025c02: 681b ldr r3, [r3, #0] + 8025c04: f503 730c add.w r3, r3, #560 ; 0x230 + 8025c08: 4618 mov r0, r3 + 8025c0a: f001 fc59 bl 80274c0 lv_style_set_outline_pad(&styles->tab_bg_focus, -BORDER_WIDTH); - 8025ca2: 4b7a ldr r3, [pc, #488] ; (8025e8c ) - 8025ca4: 681b ldr r3, [r3, #0] - 8025ca6: f503 740c add.w r4, r3, #560 ; 0x230 - 8025caa: 4b77 ldr r3, [pc, #476] ; (8025e88 ) - 8025cac: 68db ldr r3, [r3, #12] - 8025cae: 2102 movs r1, #2 - 8025cb0: 4618 mov r0, r3 - 8025cb2: f7fe f8a5 bl 8023e00 - 8025cb6: 4603 mov r3, r0 - 8025cb8: b29b uxth r3, r3 - 8025cba: 425b negs r3, r3 - 8025cbc: b29b uxth r3, r3 - 8025cbe: b21b sxth r3, r3 - 8025cc0: 4619 mov r1, r3 - 8025cc2: 4620 mov r0, r4 - 8025cc4: f00e ffc4 bl 8034c50 + 8025c0e: 4b7a ldr r3, [pc, #488] ; (8025df8 ) + 8025c10: 681b ldr r3, [r3, #0] + 8025c12: f503 740c add.w r4, r3, #560 ; 0x230 + 8025c16: 4b77 ldr r3, [pc, #476] ; (8025df4 ) + 8025c18: 68db ldr r3, [r3, #12] + 8025c1a: 2102 movs r1, #2 + 8025c1c: 4618 mov r0, r3 + 8025c1e: f7fe f8a5 bl 8023d6c + 8025c22: 4603 mov r3, r0 + 8025c24: b29b uxth r3, r3 + 8025c26: 425b negs r3, r3 + 8025c28: b29b uxth r3, r3 + 8025c2a: b21b sxth r3, r3 + 8025c2c: 4619 mov r1, r3 + 8025c2e: 4620 mov r0, r4 + 8025c30: f00e ffc4 bl 8034bbc #endif #if LV_USE_LIST style_init_reset(&styles->list_bg); - 8025cc8: 4b70 ldr r3, [pc, #448] ; (8025e8c ) - 8025cca: 681b ldr r3, [r3, #0] - 8025ccc: f503 7304 add.w r3, r3, #528 ; 0x210 - 8025cd0: 4618 mov r0, r3 - 8025cd2: f001 fc3f bl 8027554 + 8025c34: 4b70 ldr r3, [pc, #448] ; (8025df8 ) + 8025c36: 681b ldr r3, [r3, #0] + 8025c38: f503 7304 add.w r3, r3, #528 ; 0x210 + 8025c3c: 4618 mov r0, r3 + 8025c3e: f001 fc3f bl 80274c0 lv_style_set_pad_hor(&styles->list_bg, PAD_DEF); - 8025cd6: 4b6d ldr r3, [pc, #436] ; (8025e8c ) - 8025cd8: 681b ldr r3, [r3, #0] - 8025cda: f503 7404 add.w r4, r3, #528 ; 0x210 - 8025cde: 4b69 ldr r3, [pc, #420] ; (8025e84 ) - 8025ce0: 781b ldrb r3, [r3, #0] - 8025ce2: 2b01 cmp r3, #1 - 8025ce4: d107 bne.n 8025cf6 - 8025ce6: 4b68 ldr r3, [pc, #416] ; (8025e88 ) - 8025ce8: 68db ldr r3, [r3, #12] - 8025cea: 2118 movs r1, #24 - 8025cec: 4618 mov r0, r3 - 8025cee: f7fe f887 bl 8023e00 - 8025cf2: 4603 mov r3, r0 - 8025cf4: e012 b.n 8025d1c - 8025cf6: 4b63 ldr r3, [pc, #396] ; (8025e84 ) - 8025cf8: 781b ldrb r3, [r3, #0] - 8025cfa: 2b02 cmp r3, #2 - 8025cfc: d107 bne.n 8025d0e - 8025cfe: 4b62 ldr r3, [pc, #392] ; (8025e88 ) - 8025d00: 68db ldr r3, [r3, #12] - 8025d02: 2114 movs r1, #20 - 8025d04: 4618 mov r0, r3 - 8025d06: f7fe f87b bl 8023e00 - 8025d0a: 4603 mov r3, r0 - 8025d0c: e006 b.n 8025d1c - 8025d0e: 4b5e ldr r3, [pc, #376] ; (8025e88 ) - 8025d10: 68db ldr r3, [r3, #12] - 8025d12: 2110 movs r1, #16 - 8025d14: 4618 mov r0, r3 - 8025d16: f7fe f873 bl 8023e00 - 8025d1a: 4603 mov r3, r0 - 8025d1c: 4619 mov r1, r3 - 8025d1e: 4620 mov r0, r4 - 8025d20: f7fe f82b bl 8023d7a + 8025c42: 4b6d ldr r3, [pc, #436] ; (8025df8 ) + 8025c44: 681b ldr r3, [r3, #0] + 8025c46: f503 7404 add.w r4, r3, #528 ; 0x210 + 8025c4a: 4b69 ldr r3, [pc, #420] ; (8025df0 ) + 8025c4c: 781b ldrb r3, [r3, #0] + 8025c4e: 2b01 cmp r3, #1 + 8025c50: d107 bne.n 8025c62 + 8025c52: 4b68 ldr r3, [pc, #416] ; (8025df4 ) + 8025c54: 68db ldr r3, [r3, #12] + 8025c56: 2118 movs r1, #24 + 8025c58: 4618 mov r0, r3 + 8025c5a: f7fe f887 bl 8023d6c + 8025c5e: 4603 mov r3, r0 + 8025c60: e012 b.n 8025c88 + 8025c62: 4b63 ldr r3, [pc, #396] ; (8025df0 ) + 8025c64: 781b ldrb r3, [r3, #0] + 8025c66: 2b02 cmp r3, #2 + 8025c68: d107 bne.n 8025c7a + 8025c6a: 4b62 ldr r3, [pc, #392] ; (8025df4 ) + 8025c6c: 68db ldr r3, [r3, #12] + 8025c6e: 2114 movs r1, #20 + 8025c70: 4618 mov r0, r3 + 8025c72: f7fe f87b bl 8023d6c + 8025c76: 4603 mov r3, r0 + 8025c78: e006 b.n 8025c88 + 8025c7a: 4b5e ldr r3, [pc, #376] ; (8025df4 ) + 8025c7c: 68db ldr r3, [r3, #12] + 8025c7e: 2110 movs r1, #16 + 8025c80: 4618 mov r0, r3 + 8025c82: f7fe f873 bl 8023d6c + 8025c86: 4603 mov r3, r0 + 8025c88: 4619 mov r1, r3 + 8025c8a: 4620 mov r0, r4 + 8025c8c: f7fe f82b bl 8023ce6 lv_style_set_pad_ver(&styles->list_bg, 0); - 8025d24: 4b59 ldr r3, [pc, #356] ; (8025e8c ) - 8025d26: 681b ldr r3, [r3, #0] - 8025d28: f503 7304 add.w r3, r3, #528 ; 0x210 - 8025d2c: 2100 movs r1, #0 - 8025d2e: 4618 mov r0, r3 - 8025d30: f7fe f839 bl 8023da6 + 8025c90: 4b59 ldr r3, [pc, #356] ; (8025df8 ) + 8025c92: 681b ldr r3, [r3, #0] + 8025c94: f503 7304 add.w r3, r3, #528 ; 0x210 + 8025c98: 2100 movs r1, #0 + 8025c9a: 4618 mov r0, r3 + 8025c9c: f7fe f839 bl 8023d12 lv_style_set_pad_gap(&styles->list_bg, 0); - 8025d34: 4b55 ldr r3, [pc, #340] ; (8025e8c ) - 8025d36: 681b ldr r3, [r3, #0] - 8025d38: f503 7304 add.w r3, r3, #528 ; 0x210 - 8025d3c: 2100 movs r1, #0 - 8025d3e: 4618 mov r0, r3 - 8025d40: f7fe f847 bl 8023dd2 + 8025ca0: 4b55 ldr r3, [pc, #340] ; (8025df8 ) + 8025ca2: 681b ldr r3, [r3, #0] + 8025ca4: f503 7304 add.w r3, r3, #528 ; 0x210 + 8025ca8: 2100 movs r1, #0 + 8025caa: 4618 mov r0, r3 + 8025cac: f7fe f847 bl 8023d3e lv_style_set_clip_corner(&styles->list_bg, true); - 8025d44: 4b51 ldr r3, [pc, #324] ; (8025e8c ) - 8025d46: 681b ldr r3, [r3, #0] - 8025d48: f503 7304 add.w r3, r3, #528 ; 0x210 - 8025d4c: 2101 movs r1, #1 - 8025d4e: 4618 mov r0, r3 - 8025d50: f00f f8a4 bl 8034e9c + 8025cb0: 4b51 ldr r3, [pc, #324] ; (8025df8 ) + 8025cb2: 681b ldr r3, [r3, #0] + 8025cb4: f503 7304 add.w r3, r3, #528 ; 0x210 + 8025cb8: 2101 movs r1, #1 + 8025cba: 4618 mov r0, r3 + 8025cbc: f00f f8a4 bl 8034e08 style_init_reset(&styles->list_btn); - 8025d54: 4b4d ldr r3, [pc, #308] ; (8025e8c ) - 8025d56: 681b ldr r3, [r3, #0] - 8025d58: f503 7306 add.w r3, r3, #536 ; 0x218 - 8025d5c: 4618 mov r0, r3 - 8025d5e: f001 fbf9 bl 8027554 + 8025cc0: 4b4d ldr r3, [pc, #308] ; (8025df8 ) + 8025cc2: 681b ldr r3, [r3, #0] + 8025cc4: f503 7306 add.w r3, r3, #536 ; 0x218 + 8025cc8: 4618 mov r0, r3 + 8025cca: f001 fbf9 bl 80274c0 lv_style_set_border_width(&styles->list_btn, lv_disp_dpx(theme.disp, 1)); - 8025d62: 4b4a ldr r3, [pc, #296] ; (8025e8c ) - 8025d64: 681b ldr r3, [r3, #0] - 8025d66: f503 7406 add.w r4, r3, #536 ; 0x218 - 8025d6a: 4b47 ldr r3, [pc, #284] ; (8025e88 ) - 8025d6c: 68db ldr r3, [r3, #12] - 8025d6e: 2101 movs r1, #1 - 8025d70: 4618 mov r0, r3 - 8025d72: f7fe f845 bl 8023e00 - 8025d76: 4603 mov r3, r0 - 8025d78: 4619 mov r1, r3 - 8025d7a: 4620 mov r0, r4 - 8025d7c: f00e fefc bl 8034b78 + 8025cce: 4b4a ldr r3, [pc, #296] ; (8025df8 ) + 8025cd0: 681b ldr r3, [r3, #0] + 8025cd2: f503 7406 add.w r4, r3, #536 ; 0x218 + 8025cd6: 4b47 ldr r3, [pc, #284] ; (8025df4 ) + 8025cd8: 68db ldr r3, [r3, #12] + 8025cda: 2101 movs r1, #1 + 8025cdc: 4618 mov r0, r3 + 8025cde: f7fe f845 bl 8023d6c + 8025ce2: 4603 mov r3, r0 + 8025ce4: 4619 mov r1, r3 + 8025ce6: 4620 mov r0, r4 + 8025ce8: f00e fefc bl 8034ae4 lv_style_set_border_color(&styles->list_btn, color_grey); - 8025d80: 4b42 ldr r3, [pc, #264] ; (8025e8c ) - 8025d82: 681b ldr r3, [r3, #0] - 8025d84: f503 7306 add.w r3, r3, #536 ; 0x218 - 8025d88: 4a41 ldr r2, [pc, #260] ; (8025e90 ) - 8025d8a: 8811 ldrh r1, [r2, #0] - 8025d8c: 4618 mov r0, r3 - 8025d8e: f00e fed0 bl 8034b32 + 8025cec: 4b42 ldr r3, [pc, #264] ; (8025df8 ) + 8025cee: 681b ldr r3, [r3, #0] + 8025cf0: f503 7306 add.w r3, r3, #536 ; 0x218 + 8025cf4: 4a41 ldr r2, [pc, #260] ; (8025dfc ) + 8025cf6: 8811 ldrh r1, [r2, #0] + 8025cf8: 4618 mov r0, r3 + 8025cfa: f00e fed0 bl 8034a9e lv_style_set_border_side(&styles->list_btn, LV_BORDER_SIDE_BOTTOM); - 8025d92: 4b3e ldr r3, [pc, #248] ; (8025e8c ) - 8025d94: 681b ldr r3, [r3, #0] - 8025d96: f503 7306 add.w r3, r3, #536 ; 0x218 - 8025d9a: 2101 movs r1, #1 - 8025d9c: 4618 mov r0, r3 - 8025d9e: f00e fefe bl 8034b9e + 8025cfe: 4b3e ldr r3, [pc, #248] ; (8025df8 ) + 8025d00: 681b ldr r3, [r3, #0] + 8025d02: f503 7306 add.w r3, r3, #536 ; 0x218 + 8025d06: 2101 movs r1, #1 + 8025d08: 4618 mov r0, r3 + 8025d0a: f00e fefe bl 8034b0a lv_style_set_pad_all(&styles->list_btn, PAD_SMALL); - 8025da2: 4b3a ldr r3, [pc, #232] ; (8025e8c ) - 8025da4: 681b ldr r3, [r3, #0] - 8025da6: f503 7406 add.w r4, r3, #536 ; 0x218 - 8025daa: 4b36 ldr r3, [pc, #216] ; (8025e84 ) - 8025dac: 781b ldrb r3, [r3, #0] - 8025dae: 2b01 cmp r3, #1 - 8025db0: d107 bne.n 8025dc2 - 8025db2: 4b35 ldr r3, [pc, #212] ; (8025e88 ) - 8025db4: 68db ldr r3, [r3, #12] - 8025db6: 210e movs r1, #14 - 8025db8: 4618 mov r0, r3 - 8025dba: f7fe f821 bl 8023e00 - 8025dbe: 4603 mov r3, r0 - 8025dc0: e012 b.n 8025de8 - 8025dc2: 4b30 ldr r3, [pc, #192] ; (8025e84 ) - 8025dc4: 781b ldrb r3, [r3, #0] - 8025dc6: 2b02 cmp r3, #2 - 8025dc8: d107 bne.n 8025dda - 8025dca: 4b2f ldr r3, [pc, #188] ; (8025e88 ) - 8025dcc: 68db ldr r3, [r3, #12] - 8025dce: 210c movs r1, #12 - 8025dd0: 4618 mov r0, r3 - 8025dd2: f7fe f815 bl 8023e00 - 8025dd6: 4603 mov r3, r0 - 8025dd8: e006 b.n 8025de8 - 8025dda: 4b2b ldr r3, [pc, #172] ; (8025e88 ) - 8025ddc: 68db ldr r3, [r3, #12] - 8025dde: 210a movs r1, #10 - 8025de0: 4618 mov r0, r3 - 8025de2: f7fe f80d bl 8023e00 - 8025de6: 4603 mov r3, r0 - 8025de8: 4619 mov r1, r3 - 8025dea: 4620 mov r0, r4 - 8025dec: f7fd ffa3 bl 8023d36 + 8025d0e: 4b3a ldr r3, [pc, #232] ; (8025df8 ) + 8025d10: 681b ldr r3, [r3, #0] + 8025d12: f503 7406 add.w r4, r3, #536 ; 0x218 + 8025d16: 4b36 ldr r3, [pc, #216] ; (8025df0 ) + 8025d18: 781b ldrb r3, [r3, #0] + 8025d1a: 2b01 cmp r3, #1 + 8025d1c: d107 bne.n 8025d2e + 8025d1e: 4b35 ldr r3, [pc, #212] ; (8025df4 ) + 8025d20: 68db ldr r3, [r3, #12] + 8025d22: 210e movs r1, #14 + 8025d24: 4618 mov r0, r3 + 8025d26: f7fe f821 bl 8023d6c + 8025d2a: 4603 mov r3, r0 + 8025d2c: e012 b.n 8025d54 + 8025d2e: 4b30 ldr r3, [pc, #192] ; (8025df0 ) + 8025d30: 781b ldrb r3, [r3, #0] + 8025d32: 2b02 cmp r3, #2 + 8025d34: d107 bne.n 8025d46 + 8025d36: 4b2f ldr r3, [pc, #188] ; (8025df4 ) + 8025d38: 68db ldr r3, [r3, #12] + 8025d3a: 210c movs r1, #12 + 8025d3c: 4618 mov r0, r3 + 8025d3e: f7fe f815 bl 8023d6c + 8025d42: 4603 mov r3, r0 + 8025d44: e006 b.n 8025d54 + 8025d46: 4b2b ldr r3, [pc, #172] ; (8025df4 ) + 8025d48: 68db ldr r3, [r3, #12] + 8025d4a: 210a movs r1, #10 + 8025d4c: 4618 mov r0, r3 + 8025d4e: f7fe f80d bl 8023d6c + 8025d52: 4603 mov r3, r0 + 8025d54: 4619 mov r1, r3 + 8025d56: 4620 mov r0, r4 + 8025d58: f7fd ffa3 bl 8023ca2 lv_style_set_pad_column(&styles->list_btn, PAD_SMALL); - 8025df0: 4b26 ldr r3, [pc, #152] ; (8025e8c ) - 8025df2: 681b ldr r3, [r3, #0] - 8025df4: f503 7406 add.w r4, r3, #536 ; 0x218 - 8025df8: 4b22 ldr r3, [pc, #136] ; (8025e84 ) - 8025dfa: 781b ldrb r3, [r3, #0] - 8025dfc: 2b01 cmp r3, #1 - 8025dfe: d107 bne.n 8025e10 - 8025e00: 4b21 ldr r3, [pc, #132] ; (8025e88 ) - 8025e02: 68db ldr r3, [r3, #12] - 8025e04: 210e movs r1, #14 - 8025e06: 4618 mov r0, r3 - 8025e08: f7fd fffa bl 8023e00 - 8025e0c: 4603 mov r3, r0 - 8025e0e: e012 b.n 8025e36 - 8025e10: 4b1c ldr r3, [pc, #112] ; (8025e84 ) - 8025e12: 781b ldrb r3, [r3, #0] - 8025e14: 2b02 cmp r3, #2 - 8025e16: d107 bne.n 8025e28 - 8025e18: 4b1b ldr r3, [pc, #108] ; (8025e88 ) - 8025e1a: 68db ldr r3, [r3, #12] - 8025e1c: 210c movs r1, #12 - 8025e1e: 4618 mov r0, r3 - 8025e20: f7fd ffee bl 8023e00 - 8025e24: 4603 mov r3, r0 - 8025e26: e006 b.n 8025e36 - 8025e28: 4b17 ldr r3, [pc, #92] ; (8025e88 ) - 8025e2a: 68db ldr r3, [r3, #12] - 8025e2c: 210a movs r1, #10 - 8025e2e: 4618 mov r0, r3 - 8025e30: f7fd ffe6 bl 8023e00 - 8025e34: 4603 mov r3, r0 - 8025e36: 4619 mov r1, r3 - 8025e38: 4620 mov r0, r4 - 8025e3a: f00e fe21 bl 8034a80 + 8025d5c: 4b26 ldr r3, [pc, #152] ; (8025df8 ) + 8025d5e: 681b ldr r3, [r3, #0] + 8025d60: f503 7406 add.w r4, r3, #536 ; 0x218 + 8025d64: 4b22 ldr r3, [pc, #136] ; (8025df0 ) + 8025d66: 781b ldrb r3, [r3, #0] + 8025d68: 2b01 cmp r3, #1 + 8025d6a: d107 bne.n 8025d7c + 8025d6c: 4b21 ldr r3, [pc, #132] ; (8025df4 ) + 8025d6e: 68db ldr r3, [r3, #12] + 8025d70: 210e movs r1, #14 + 8025d72: 4618 mov r0, r3 + 8025d74: f7fd fffa bl 8023d6c + 8025d78: 4603 mov r3, r0 + 8025d7a: e012 b.n 8025da2 + 8025d7c: 4b1c ldr r3, [pc, #112] ; (8025df0 ) + 8025d7e: 781b ldrb r3, [r3, #0] + 8025d80: 2b02 cmp r3, #2 + 8025d82: d107 bne.n 8025d94 + 8025d84: 4b1b ldr r3, [pc, #108] ; (8025df4 ) + 8025d86: 68db ldr r3, [r3, #12] + 8025d88: 210c movs r1, #12 + 8025d8a: 4618 mov r0, r3 + 8025d8c: f7fd ffee bl 8023d6c + 8025d90: 4603 mov r3, r0 + 8025d92: e006 b.n 8025da2 + 8025d94: 4b17 ldr r3, [pc, #92] ; (8025df4 ) + 8025d96: 68db ldr r3, [r3, #12] + 8025d98: 210a movs r1, #10 + 8025d9a: 4618 mov r0, r3 + 8025d9c: f7fd ffe6 bl 8023d6c + 8025da0: 4603 mov r3, r0 + 8025da2: 4619 mov r1, r3 + 8025da4: 4620 mov r0, r4 + 8025da6: f00e fe21 bl 80349ec style_init_reset(&styles->list_item_grow); - 8025e3e: 4b13 ldr r3, [pc, #76] ; (8025e8c ) - 8025e40: 681b ldr r3, [r3, #0] - 8025e42: f503 7308 add.w r3, r3, #544 ; 0x220 - 8025e46: 4618 mov r0, r3 - 8025e48: f001 fb84 bl 8027554 + 8025daa: 4b13 ldr r3, [pc, #76] ; (8025df8 ) + 8025dac: 681b ldr r3, [r3, #0] + 8025dae: f503 7308 add.w r3, r3, #544 ; 0x220 + 8025db2: 4618 mov r0, r3 + 8025db4: f001 fb84 bl 80274c0 lv_style_set_transform_width(&styles->list_item_grow, PAD_DEF); - 8025e4c: 4b0f ldr r3, [pc, #60] ; (8025e8c ) - 8025e4e: 681b ldr r3, [r3, #0] - 8025e50: f503 7408 add.w r4, r3, #544 ; 0x220 - 8025e54: 4b0b ldr r3, [pc, #44] ; (8025e84 ) - 8025e56: 781b ldrb r3, [r3, #0] - 8025e58: 2b01 cmp r3, #1 - 8025e5a: d107 bne.n 8025e6c - 8025e5c: 4b0a ldr r3, [pc, #40] ; (8025e88 ) - 8025e5e: 68db ldr r3, [r3, #12] - 8025e60: 2118 movs r1, #24 - 8025e62: 4618 mov r0, r3 - 8025e64: f7fd ffcc bl 8023e00 - 8025e68: 4603 mov r3, r0 - 8025e6a: e01a b.n 8025ea2 - 8025e6c: 4b05 ldr r3, [pc, #20] ; (8025e84 ) - 8025e6e: 781b ldrb r3, [r3, #0] - 8025e70: 2b02 cmp r3, #2 - 8025e72: d10f bne.n 8025e94 - 8025e74: 4b04 ldr r3, [pc, #16] ; (8025e88 ) - 8025e76: 68db ldr r3, [r3, #12] - 8025e78: 2114 movs r1, #20 - 8025e7a: 4618 mov r0, r3 - 8025e7c: f7fd ffc0 bl 8023e00 - 8025e80: 4603 mov r3, r0 - 8025e82: e00e b.n 8025ea2 - 8025e84: 20001c74 .word 0x20001c74 - 8025e88: 20001c50 .word 0x20001c50 - 8025e8c: 20001c4c .word 0x20001c4c - 8025e90: 20001c84 .word 0x20001c84 - 8025e94: 4b32 ldr r3, [pc, #200] ; (8025f60 ) - 8025e96: 68db ldr r3, [r3, #12] - 8025e98: 2110 movs r1, #16 - 8025e9a: 4618 mov r0, r3 - 8025e9c: f7fd ffb0 bl 8023e00 - 8025ea0: 4603 mov r3, r0 - 8025ea2: 4619 mov r1, r3 - 8025ea4: 4620 mov r0, r4 - 8025ea6: f00e fd66 bl 8034976 + 8025db8: 4b0f ldr r3, [pc, #60] ; (8025df8 ) + 8025dba: 681b ldr r3, [r3, #0] + 8025dbc: f503 7408 add.w r4, r3, #544 ; 0x220 + 8025dc0: 4b0b ldr r3, [pc, #44] ; (8025df0 ) + 8025dc2: 781b ldrb r3, [r3, #0] + 8025dc4: 2b01 cmp r3, #1 + 8025dc6: d107 bne.n 8025dd8 + 8025dc8: 4b0a ldr r3, [pc, #40] ; (8025df4 ) + 8025dca: 68db ldr r3, [r3, #12] + 8025dcc: 2118 movs r1, #24 + 8025dce: 4618 mov r0, r3 + 8025dd0: f7fd ffcc bl 8023d6c + 8025dd4: 4603 mov r3, r0 + 8025dd6: e01a b.n 8025e0e + 8025dd8: 4b05 ldr r3, [pc, #20] ; (8025df0 ) + 8025dda: 781b ldrb r3, [r3, #0] + 8025ddc: 2b02 cmp r3, #2 + 8025dde: d10f bne.n 8025e00 + 8025de0: 4b04 ldr r3, [pc, #16] ; (8025df4 ) + 8025de2: 68db ldr r3, [r3, #12] + 8025de4: 2114 movs r1, #20 + 8025de6: 4618 mov r0, r3 + 8025de8: f7fd ffc0 bl 8023d6c + 8025dec: 4603 mov r3, r0 + 8025dee: e00e b.n 8025e0e + 8025df0: 20001c74 .word 0x20001c74 + 8025df4: 20001c50 .word 0x20001c50 + 8025df8: 20001c4c .word 0x20001c4c + 8025dfc: 20001c84 .word 0x20001c84 + 8025e00: 4b32 ldr r3, [pc, #200] ; (8025ecc ) + 8025e02: 68db ldr r3, [r3, #12] + 8025e04: 2110 movs r1, #16 + 8025e06: 4618 mov r0, r3 + 8025e08: f7fd ffb0 bl 8023d6c + 8025e0c: 4603 mov r3, r0 + 8025e0e: 4619 mov r1, r3 + 8025e10: 4620 mov r0, r4 + 8025e12: f00e fd66 bl 80348e2 #endif #if LV_USE_LED style_init_reset(&styles->led); - 8025eaa: 4b2e ldr r3, [pc, #184] ; (8025f64 ) - 8025eac: 681b ldr r3, [r3, #0] - 8025eae: f503 7310 add.w r3, r3, #576 ; 0x240 - 8025eb2: 4618 mov r0, r3 - 8025eb4: f001 fb4e bl 8027554 + 8025e16: 4b2e ldr r3, [pc, #184] ; (8025ed0 ) + 8025e18: 681b ldr r3, [r3, #0] + 8025e1a: f503 7310 add.w r3, r3, #576 ; 0x240 + 8025e1e: 4618 mov r0, r3 + 8025e20: f001 fb4e bl 80274c0 lv_style_set_bg_opa(&styles->led, LV_OPA_COVER); - 8025eb8: 4b2a ldr r3, [pc, #168] ; (8025f64 ) - 8025eba: 681b ldr r3, [r3, #0] - 8025ebc: f503 7310 add.w r3, r3, #576 ; 0x240 - 8025ec0: 21ff movs r1, #255 ; 0xff - 8025ec2: 4618 mov r0, r3 - 8025ec4: f00e fe01 bl 8034aca + 8025e24: 4b2a ldr r3, [pc, #168] ; (8025ed0 ) + 8025e26: 681b ldr r3, [r3, #0] + 8025e28: f503 7310 add.w r3, r3, #576 ; 0x240 + 8025e2c: 21ff movs r1, #255 ; 0xff + 8025e2e: 4618 mov r0, r3 + 8025e30: f00e fe01 bl 8034a36 lv_style_set_bg_color(&styles->led, lv_color_white()); - 8025ec8: 4b26 ldr r3, [pc, #152] ; (8025f64 ) - 8025eca: 681b ldr r3, [r3, #0] - 8025ecc: f503 7410 add.w r4, r3, #576 ; 0x240 - 8025ed0: f7fd ff11 bl 8023cf6 - 8025ed4: 4603 mov r3, r0 - 8025ed6: 4619 mov r1, r3 - 8025ed8: 4620 mov r0, r4 - 8025eda: f00e fde4 bl 8034aa6 + 8025e34: 4b26 ldr r3, [pc, #152] ; (8025ed0 ) + 8025e36: 681b ldr r3, [r3, #0] + 8025e38: f503 7410 add.w r4, r3, #576 ; 0x240 + 8025e3c: f7fd ff11 bl 8023c62 + 8025e40: 4603 mov r3, r0 + 8025e42: 4619 mov r1, r3 + 8025e44: 4620 mov r0, r4 + 8025e46: f00e fde4 bl 8034a12 lv_style_set_bg_grad_color(&styles->led, lv_palette_main(LV_PALETTE_GREY)); - 8025ede: 4b21 ldr r3, [pc, #132] ; (8025f64 ) - 8025ee0: 681b ldr r3, [r3, #0] - 8025ee2: f503 7410 add.w r4, r3, #576 ; 0x240 - 8025ee6: 2012 movs r0, #18 - 8025ee8: f00b fdd8 bl 8031a9c - 8025eec: 4603 mov r3, r0 - 8025eee: 4619 mov r1, r3 - 8025ef0: 4620 mov r0, r4 - 8025ef2: f00e fdfb bl 8034aec + 8025e4a: 4b21 ldr r3, [pc, #132] ; (8025ed0 ) + 8025e4c: 681b ldr r3, [r3, #0] + 8025e4e: f503 7410 add.w r4, r3, #576 ; 0x240 + 8025e52: 2012 movs r0, #18 + 8025e54: f00b fdd8 bl 8031a08 + 8025e58: 4603 mov r3, r0 + 8025e5a: 4619 mov r1, r3 + 8025e5c: 4620 mov r0, r4 + 8025e5e: f00e fdfb bl 8034a58 lv_style_set_radius(&styles->led, LV_RADIUS_CIRCLE); - 8025ef6: 4b1b ldr r3, [pc, #108] ; (8025f64 ) - 8025ef8: 681b ldr r3, [r3, #0] - 8025efa: f503 7310 add.w r3, r3, #576 ; 0x240 - 8025efe: f647 71ff movw r1, #32767 ; 0x7fff - 8025f02: 4618 mov r0, r3 - 8025f04: f00e ffb8 bl 8034e78 + 8025e62: 4b1b ldr r3, [pc, #108] ; (8025ed0 ) + 8025e64: 681b ldr r3, [r3, #0] + 8025e66: f503 7310 add.w r3, r3, #576 ; 0x240 + 8025e6a: f647 71ff movw r1, #32767 ; 0x7fff + 8025e6e: 4618 mov r0, r3 + 8025e70: f00e ffb8 bl 8034de4 lv_style_set_shadow_width(&styles->led, lv_disp_dpx(theme.disp, 15)); - 8025f08: 4b16 ldr r3, [pc, #88] ; (8025f64 ) - 8025f0a: 681b ldr r3, [r3, #0] - 8025f0c: f503 7410 add.w r4, r3, #576 ; 0x240 - 8025f10: 4b13 ldr r3, [pc, #76] ; (8025f60 ) - 8025f12: 68db ldr r3, [r3, #12] - 8025f14: 210f movs r1, #15 - 8025f16: 4618 mov r0, r3 - 8025f18: f7fd ff72 bl 8023e00 - 8025f1c: 4603 mov r3, r0 - 8025f1e: 4619 mov r1, r3 - 8025f20: 4620 mov r0, r4 - 8025f22: f00e fea8 bl 8034c76 + 8025e74: 4b16 ldr r3, [pc, #88] ; (8025ed0 ) + 8025e76: 681b ldr r3, [r3, #0] + 8025e78: f503 7410 add.w r4, r3, #576 ; 0x240 + 8025e7c: 4b13 ldr r3, [pc, #76] ; (8025ecc ) + 8025e7e: 68db ldr r3, [r3, #12] + 8025e80: 210f movs r1, #15 + 8025e82: 4618 mov r0, r3 + 8025e84: f7fd ff72 bl 8023d6c + 8025e88: 4603 mov r3, r0 + 8025e8a: 4619 mov r1, r3 + 8025e8c: 4620 mov r0, r4 + 8025e8e: f00e fea8 bl 8034be2 lv_style_set_shadow_color(&styles->led, lv_color_white()); - 8025f26: 4b0f ldr r3, [pc, #60] ; (8025f64 ) - 8025f28: 681b ldr r3, [r3, #0] - 8025f2a: f503 7410 add.w r4, r3, #576 ; 0x240 - 8025f2e: f7fd fee2 bl 8023cf6 - 8025f32: 4603 mov r3, r0 - 8025f34: 4619 mov r1, r3 - 8025f36: 4620 mov r0, r4 - 8025f38: f00e fed6 bl 8034ce8 + 8025e92: 4b0f ldr r3, [pc, #60] ; (8025ed0 ) + 8025e94: 681b ldr r3, [r3, #0] + 8025e96: f503 7410 add.w r4, r3, #576 ; 0x240 + 8025e9a: f7fd fee2 bl 8023c62 + 8025e9e: 4603 mov r3, r0 + 8025ea0: 4619 mov r1, r3 + 8025ea2: 4620 mov r0, r4 + 8025ea4: f00e fed6 bl 8034c54 lv_style_set_shadow_spread(&styles->led, lv_disp_dpx(theme.disp, 5)); - 8025f3c: 4b09 ldr r3, [pc, #36] ; (8025f64 ) - 8025f3e: 681b ldr r3, [r3, #0] - 8025f40: f503 7410 add.w r4, r3, #576 ; 0x240 - 8025f44: 4b06 ldr r3, [pc, #24] ; (8025f60 ) - 8025f46: 68db ldr r3, [r3, #12] - 8025f48: 2105 movs r1, #5 - 8025f4a: 4618 mov r0, r3 - 8025f4c: f7fd ff58 bl 8023e00 - 8025f50: 4603 mov r3, r0 - 8025f52: 4619 mov r1, r3 - 8025f54: 4620 mov r0, r4 - 8025f56: f00e feb4 bl 8034cc2 + 8025ea8: 4b09 ldr r3, [pc, #36] ; (8025ed0 ) + 8025eaa: 681b ldr r3, [r3, #0] + 8025eac: f503 7410 add.w r4, r3, #576 ; 0x240 + 8025eb0: 4b06 ldr r3, [pc, #24] ; (8025ecc ) + 8025eb2: 68db ldr r3, [r3, #12] + 8025eb4: 2105 movs r1, #5 + 8025eb6: 4618 mov r0, r3 + 8025eb8: f7fd ff58 bl 8023d6c + 8025ebc: 4603 mov r3, r0 + 8025ebe: 4619 mov r1, r3 + 8025ec0: 4620 mov r0, r4 + 8025ec2: f00e feb4 bl 8034c2e #endif } - 8025f5a: bf00 nop - 8025f5c: 46bd mov sp, r7 - 8025f5e: bdb0 pop {r4, r5, r7, pc} - 8025f60: 20001c50 .word 0x20001c50 - 8025f64: 20001c4c .word 0x20001c4c + 8025ec6: bf00 nop + 8025ec8: 46bd mov sp, r7 + 8025eca: bdb0 pop {r4, r5, r7, pc} + 8025ecc: 20001c50 .word 0x20001c50 + 8025ed0: 20001c4c .word 0x20001c4c -08025f68 : +08025ed4 : * GLOBAL FUNCTIONS **********************/ lv_theme_t * lv_theme_default_init(lv_disp_t * disp, lv_color_t color_primary, lv_color_t color_secondary, bool dark, const lv_font_t * font) { - 8025f68: b580 push {r7, lr} - 8025f6a: b084 sub sp, #16 - 8025f6c: af00 add r7, sp, #0 - 8025f6e: 60f8 str r0, [r7, #12] - 8025f70: 8139 strh r1, [r7, #8] - 8025f72: 80ba strh r2, [r7, #4] - 8025f74: 71fb strb r3, [r7, #7] + 8025ed4: b580 push {r7, lr} + 8025ed6: b084 sub sp, #16 + 8025ed8: af00 add r7, sp, #0 + 8025eda: 60f8 str r0, [r7, #12] + 8025edc: 8139 strh r1, [r7, #8] + 8025ede: 80ba strh r2, [r7, #4] + 8025ee0: 71fb strb r3, [r7, #7] /*This trick is required only to avoid the garbage collection of *styles' data if LVGL is used in a binding (e.g. Micropython) *In a general case styles could be in simple `static lv_style_t my_style...` variables*/ if(!lv_theme_default_is_inited()) { - 8025f76: f000 f881 bl 802607c - 8025f7a: 4603 mov r3, r0 - 8025f7c: f083 0301 eor.w r3, r3, #1 - 8025f80: b2db uxtb r3, r3 - 8025f82: 2b00 cmp r3, #0 - 8025f84: d00d beq.n 8025fa2 + 8025ee2: f000 f881 bl 8025fe8 + 8025ee6: 4603 mov r3, r0 + 8025ee8: f083 0301 eor.w r3, r3, #1 + 8025eec: b2db uxtb r3, r3 + 8025eee: 2b00 cmp r3, #0 + 8025ef0: d00d beq.n 8025f0e inited = false; - 8025f86: 4b2e ldr r3, [pc, #184] ; (8026040 ) - 8025f88: 2200 movs r2, #0 - 8025f8a: 701a strb r2, [r3, #0] + 8025ef2: 4b2e ldr r3, [pc, #184] ; (8025fac ) + 8025ef4: 2200 movs r2, #0 + 8025ef6: 701a strb r2, [r3, #0] LV_GC_ROOT(_lv_theme_default_styles) = lv_mem_alloc(sizeof(my_theme_styles_t)); - 8025f8c: f44f 7012 mov.w r0, #584 ; 0x248 - 8025f90: f00c fc82 bl 8032898 - 8025f94: 4603 mov r3, r0 - 8025f96: 4a2b ldr r2, [pc, #172] ; (8026044 ) - 8025f98: 6013 str r3, [r2, #0] + 8025ef8: f44f 7012 mov.w r0, #584 ; 0x248 + 8025efc: f00c fc82 bl 8032804 + 8025f00: 4603 mov r3, r0 + 8025f02: 4a2b ldr r2, [pc, #172] ; (8025fb0 ) + 8025f04: 6013 str r3, [r2, #0] styles = (my_theme_styles_t *)LV_GC_ROOT(_lv_theme_default_styles); - 8025f9a: 4b2a ldr r3, [pc, #168] ; (8026044 ) - 8025f9c: 681b ldr r3, [r3, #0] - 8025f9e: 4a2a ldr r2, [pc, #168] ; (8026048 ) - 8025fa0: 6013 str r3, [r2, #0] + 8025f06: 4b2a ldr r3, [pc, #168] ; (8025fb0 ) + 8025f08: 681b ldr r3, [r3, #0] + 8025f0a: 4a2a ldr r2, [pc, #168] ; (8025fb4 ) + 8025f0c: 6013 str r3, [r2, #0] } if(LV_HOR_RES <= 320) disp_size = DISP_SMALL; - 8025fa2: f00a fa93 bl 80304cc - 8025fa6: 4603 mov r3, r0 - 8025fa8: 4618 mov r0, r3 - 8025faa: f00a fa99 bl 80304e0 - 8025fae: 4603 mov r3, r0 - 8025fb0: f5b3 7fa0 cmp.w r3, #320 ; 0x140 - 8025fb4: dc03 bgt.n 8025fbe - 8025fb6: 4b25 ldr r3, [pc, #148] ; (802604c ) - 8025fb8: 2203 movs r2, #3 - 8025fba: 701a strb r2, [r3, #0] - 8025fbc: e010 b.n 8025fe0 + 8025f0e: f00a fa93 bl 8030438 + 8025f12: 4603 mov r3, r0 + 8025f14: 4618 mov r0, r3 + 8025f16: f00a fa99 bl 803044c + 8025f1a: 4603 mov r3, r0 + 8025f1c: f5b3 7fa0 cmp.w r3, #320 ; 0x140 + 8025f20: dc03 bgt.n 8025f2a + 8025f22: 4b25 ldr r3, [pc, #148] ; (8025fb8 ) + 8025f24: 2203 movs r2, #3 + 8025f26: 701a strb r2, [r3, #0] + 8025f28: e010 b.n 8025f4c else if(LV_HOR_RES < 720) disp_size = DISP_MEDIUM; - 8025fbe: f00a fa85 bl 80304cc - 8025fc2: 4603 mov r3, r0 - 8025fc4: 4618 mov r0, r3 - 8025fc6: f00a fa8b bl 80304e0 - 8025fca: 4603 mov r3, r0 - 8025fcc: f5b3 7f34 cmp.w r3, #720 ; 0x2d0 - 8025fd0: da03 bge.n 8025fda - 8025fd2: 4b1e ldr r3, [pc, #120] ; (802604c ) - 8025fd4: 2202 movs r2, #2 - 8025fd6: 701a strb r2, [r3, #0] - 8025fd8: e002 b.n 8025fe0 + 8025f2a: f00a fa85 bl 8030438 + 8025f2e: 4603 mov r3, r0 + 8025f30: 4618 mov r0, r3 + 8025f32: f00a fa8b bl 803044c + 8025f36: 4603 mov r3, r0 + 8025f38: f5b3 7f34 cmp.w r3, #720 ; 0x2d0 + 8025f3c: da03 bge.n 8025f46 + 8025f3e: 4b1e ldr r3, [pc, #120] ; (8025fb8 ) + 8025f40: 2202 movs r2, #2 + 8025f42: 701a strb r2, [r3, #0] + 8025f44: e002 b.n 8025f4c else disp_size = DISP_LARGE; - 8025fda: 4b1c ldr r3, [pc, #112] ; (802604c ) - 8025fdc: 2201 movs r2, #1 - 8025fde: 701a strb r2, [r3, #0] + 8025f46: 4b1c ldr r3, [pc, #112] ; (8025fb8 ) + 8025f48: 2201 movs r2, #1 + 8025f4a: 701a strb r2, [r3, #0] theme.disp = disp; - 8025fe0: 4a1b ldr r2, [pc, #108] ; (8026050 ) - 8025fe2: 68fb ldr r3, [r7, #12] - 8025fe4: 60d3 str r3, [r2, #12] + 8025f4c: 4a1b ldr r2, [pc, #108] ; (8025fbc ) + 8025f4e: 68fb ldr r3, [r7, #12] + 8025f50: 60d3 str r3, [r2, #12] theme.color_primary = color_primary; - 8025fe6: 4a1a ldr r2, [pc, #104] ; (8026050 ) - 8025fe8: 893b ldrh r3, [r7, #8] - 8025fea: 8213 strh r3, [r2, #16] + 8025f52: 4a1a ldr r2, [pc, #104] ; (8025fbc ) + 8025f54: 893b ldrh r3, [r7, #8] + 8025f56: 8213 strh r3, [r2, #16] theme.color_secondary = color_secondary; - 8025fec: 4a18 ldr r2, [pc, #96] ; (8026050 ) - 8025fee: 88bb ldrh r3, [r7, #4] - 8025ff0: 8253 strh r3, [r2, #18] + 8025f58: 4a18 ldr r2, [pc, #96] ; (8025fbc ) + 8025f5a: 88bb ldrh r3, [r7, #4] + 8025f5c: 8253 strh r3, [r2, #18] theme.font_small = font; - 8025ff2: 4a17 ldr r2, [pc, #92] ; (8026050 ) - 8025ff4: 69bb ldr r3, [r7, #24] - 8025ff6: 6153 str r3, [r2, #20] + 8025f5e: 4a17 ldr r2, [pc, #92] ; (8025fbc ) + 8025f60: 69bb ldr r3, [r7, #24] + 8025f62: 6153 str r3, [r2, #20] theme.font_normal = font; - 8025ff8: 4a15 ldr r2, [pc, #84] ; (8026050 ) - 8025ffa: 69bb ldr r3, [r7, #24] - 8025ffc: 6193 str r3, [r2, #24] + 8025f64: 4a15 ldr r2, [pc, #84] ; (8025fbc ) + 8025f66: 69bb ldr r3, [r7, #24] + 8025f68: 6193 str r3, [r2, #24] theme.font_large = font; - 8025ffe: 4a14 ldr r2, [pc, #80] ; (8026050 ) - 8026000: 69bb ldr r3, [r7, #24] - 8026002: 61d3 str r3, [r2, #28] + 8025f6a: 4a14 ldr r2, [pc, #80] ; (8025fbc ) + 8025f6c: 69bb ldr r3, [r7, #24] + 8025f6e: 61d3 str r3, [r2, #28] theme.apply_cb = theme_apply; - 8026004: 4b12 ldr r3, [pc, #72] ; (8026050 ) - 8026006: 4a13 ldr r2, [pc, #76] ; (8026054 ) - 8026008: 601a str r2, [r3, #0] + 8025f70: 4b12 ldr r3, [pc, #72] ; (8025fbc ) + 8025f72: 4a13 ldr r2, [pc, #76] ; (8025fc0 ) + 8025f74: 601a str r2, [r3, #0] theme.flags = dark ? MODE_DARK : 0; - 802600a: 79fb ldrb r3, [r7, #7] - 802600c: 461a mov r2, r3 - 802600e: 4b10 ldr r3, [pc, #64] ; (8026050 ) - 8026010: 621a str r2, [r3, #32] + 8025f76: 79fb ldrb r3, [r7, #7] + 8025f78: 461a mov r2, r3 + 8025f7a: 4b10 ldr r3, [pc, #64] ; (8025fbc ) + 8025f7c: 621a str r2, [r3, #32] style_init(); - 8026012: f7fd ff5f bl 8023ed4 + 8025f7e: f7fd ff5f bl 8023e40 if(disp == NULL || lv_disp_get_theme(disp) == &theme) lv_obj_report_style_change(NULL); - 8026016: 68fb ldr r3, [r7, #12] - 8026018: 2b00 cmp r3, #0 - 802601a: d006 beq.n 802602a - 802601c: 68f8 ldr r0, [r7, #12] - 802601e: f7dc fa1f bl 8002460 - 8026022: 4603 mov r3, r0 - 8026024: 4a0a ldr r2, [pc, #40] ; (8026050 ) - 8026026: 4293 cmp r3, r2 - 8026028: d102 bne.n 8026030 - 802602a: 2000 movs r0, #0 - 802602c: f7e7 fdf2 bl 800dc14 + 8025f82: 68fb ldr r3, [r7, #12] + 8025f84: 2b00 cmp r3, #0 + 8025f86: d006 beq.n 8025f96 + 8025f88: 68f8 ldr r0, [r7, #12] + 8025f8a: f7dc fa32 bl 80023f2 + 8025f8e: 4603 mov r3, r0 + 8025f90: 4a0a ldr r2, [pc, #40] ; (8025fbc ) + 8025f92: 4293 cmp r3, r2 + 8025f94: d102 bne.n 8025f9c + 8025f96: 2000 movs r0, #0 + 8025f98: f7e7 fe06 bl 800dba8 inited = true; - 8026030: 4b03 ldr r3, [pc, #12] ; (8026040 ) - 8026032: 2201 movs r2, #1 - 8026034: 701a strb r2, [r3, #0] + 8025f9c: 4b03 ldr r3, [pc, #12] ; (8025fac ) + 8025f9e: 2201 movs r2, #1 + 8025fa0: 701a strb r2, [r3, #0] return (lv_theme_t *)&theme; - 8026036: 4b06 ldr r3, [pc, #24] ; (8026050 ) + 8025fa2: 4b06 ldr r3, [pc, #24] ; (8025fbc ) } - 8026038: 4618 mov r0, r3 - 802603a: 3710 adds r7, #16 - 802603c: 46bd mov sp, r7 - 802603e: bd80 pop {r7, pc} - 8026040: 20001c86 .word 0x20001c86 - 8026044: 20001f08 .word 0x20001f08 - 8026048: 20001c4c .word 0x20001c4c - 802604c: 20001c74 .word 0x20001c74 - 8026050: 20001c50 .word 0x20001c50 - 8026054: 0802609d .word 0x0802609d + 8025fa4: 4618 mov r0, r3 + 8025fa6: 3710 adds r7, #16 + 8025fa8: 46bd mov sp, r7 + 8025faa: bd80 pop {r7, pc} + 8025fac: 20001c86 .word 0x20001c86 + 8025fb0: 20001f08 .word 0x20001f08 + 8025fb4: 20001c4c .word 0x20001c4c + 8025fb8: 20001c74 .word 0x20001c74 + 8025fbc: 20001c50 .word 0x20001c50 + 8025fc0: 08026009 .word 0x08026009 -08026058 : +08025fc4 : lv_theme_t * lv_theme_default_get(void) { - 8026058: b580 push {r7, lr} - 802605a: af00 add r7, sp, #0 + 8025fc4: b580 push {r7, lr} + 8025fc6: af00 add r7, sp, #0 if(!lv_theme_default_is_inited()) { - 802605c: f000 f80e bl 802607c - 8026060: 4603 mov r3, r0 - 8026062: f083 0301 eor.w r3, r3, #1 - 8026066: b2db uxtb r3, r3 - 8026068: 2b00 cmp r3, #0 - 802606a: d001 beq.n 8026070 + 8025fc8: f000 f80e bl 8025fe8 + 8025fcc: 4603 mov r3, r0 + 8025fce: f083 0301 eor.w r3, r3, #1 + 8025fd2: b2db uxtb r3, r3 + 8025fd4: 2b00 cmp r3, #0 + 8025fd6: d001 beq.n 8025fdc return NULL; - 802606c: 2300 movs r3, #0 - 802606e: e000 b.n 8026072 + 8025fd8: 2300 movs r3, #0 + 8025fda: e000 b.n 8025fde } return (lv_theme_t *)&theme; - 8026070: 4b01 ldr r3, [pc, #4] ; (8026078 ) + 8025fdc: 4b01 ldr r3, [pc, #4] ; (8025fe4 ) } - 8026072: 4618 mov r0, r3 - 8026074: bd80 pop {r7, pc} - 8026076: bf00 nop - 8026078: 20001c50 .word 0x20001c50 + 8025fde: 4618 mov r0, r3 + 8025fe0: bd80 pop {r7, pc} + 8025fe2: bf00 nop + 8025fe4: 20001c50 .word 0x20001c50 -0802607c : +08025fe8 : bool lv_theme_default_is_inited(void) { - 802607c: b480 push {r7} - 802607e: af00 add r7, sp, #0 + 8025fe8: b480 push {r7} + 8025fea: af00 add r7, sp, #0 return LV_GC_ROOT(_lv_theme_default_styles) == NULL ? false : true; - 8026080: 4b05 ldr r3, [pc, #20] ; (8026098 ) - 8026082: 681b ldr r3, [r3, #0] - 8026084: 2b00 cmp r3, #0 - 8026086: bf14 ite ne - 8026088: 2301 movne r3, #1 - 802608a: 2300 moveq r3, #0 - 802608c: b2db uxtb r3, r3 + 8025fec: 4b05 ldr r3, [pc, #20] ; (8026004 ) + 8025fee: 681b ldr r3, [r3, #0] + 8025ff0: 2b00 cmp r3, #0 + 8025ff2: bf14 ite ne + 8025ff4: 2301 movne r3, #1 + 8025ff6: 2300 moveq r3, #0 + 8025ff8: b2db uxtb r3, r3 } - 802608e: 4618 mov r0, r3 - 8026090: 46bd mov sp, r7 - 8026092: bc80 pop {r7} - 8026094: 4770 bx lr - 8026096: bf00 nop - 8026098: 20001f08 .word 0x20001f08 + 8025ffa: 4618 mov r0, r3 + 8025ffc: 46bd mov sp, r7 + 8025ffe: bc80 pop {r7} + 8026000: 4770 bx lr + 8026002: bf00 nop + 8026004: 20001f08 .word 0x20001f08 -0802609c : +08026008 : static void theme_apply(lv_theme_t * th, lv_obj_t * obj) { - 802609c: b580 push {r7, lr} - 802609e: b084 sub sp, #16 - 80260a0: af00 add r7, sp, #0 - 80260a2: 6078 str r0, [r7, #4] - 80260a4: 6039 str r1, [r7, #0] + 8026008: b580 push {r7, lr} + 802600a: b084 sub sp, #16 + 802600c: af00 add r7, sp, #0 + 802600e: 6078 str r0, [r7, #4] + 8026010: 6039 str r1, [r7, #0] LV_UNUSED(th); if(lv_obj_get_parent(obj) == NULL) { - 80260a6: 6838 ldr r0, [r7, #0] - 80260a8: f7e9 fb30 bl 800f70c - 80260ac: 4603 mov r3, r0 - 80260ae: 2b00 cmp r3, #0 - 80260b0: d119 bne.n 80260e6 + 8026012: 6838 ldr r0, [r7, #0] + 8026014: f7e9 fb30 bl 800f678 + 8026018: 4603 mov r3, r0 + 802601a: 2b00 cmp r3, #0 + 802601c: d119 bne.n 8026052 lv_obj_add_style(obj, &styles->scr, 0); - 80260b2: 4bae ldr r3, [pc, #696] ; (802636c ) - 80260b4: 681b ldr r3, [r3, #0] - 80260b6: 2200 movs r2, #0 - 80260b8: 4619 mov r1, r3 - 80260ba: 6838 ldr r0, [r7, #0] - 80260bc: f7e7 fc1a bl 800d8f4 + 802601e: 4bae ldr r3, [pc, #696] ; (80262d8 ) + 8026020: 681b ldr r3, [r3, #0] + 8026022: 2200 movs r2, #0 + 8026024: 4619 mov r1, r3 + 8026026: 6838 ldr r0, [r7, #0] + 8026028: f7e7 fc2e bl 800d888 lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); - 80260c0: 4baa ldr r3, [pc, #680] ; (802636c ) - 80260c2: 681b ldr r3, [r3, #0] - 80260c4: 3308 adds r3, #8 - 80260c6: f44f 3280 mov.w r2, #65536 ; 0x10000 - 80260ca: 4619 mov r1, r3 - 80260cc: 6838 ldr r0, [r7, #0] - 80260ce: f7e7 fc11 bl 800d8f4 + 802602c: 4baa ldr r3, [pc, #680] ; (80262d8 ) + 802602e: 681b ldr r3, [r3, #0] + 8026030: 3308 adds r3, #8 + 8026032: f44f 3280 mov.w r2, #65536 ; 0x10000 + 8026036: 4619 mov r1, r3 + 8026038: 6838 ldr r0, [r7, #0] + 802603a: f7e7 fc25 bl 800d888 lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); - 80260d2: 4ba6 ldr r3, [pc, #664] ; (802636c ) - 80260d4: 681b ldr r3, [r3, #0] - 80260d6: 3310 adds r3, #16 - 80260d8: 4aa5 ldr r2, [pc, #660] ; (8026370 ) - 80260da: 4619 mov r1, r3 - 80260dc: 6838 ldr r0, [r7, #0] - 80260de: f7e7 fc09 bl 800d8f4 + 802603e: 4ba6 ldr r3, [pc, #664] ; (80262d8 ) + 8026040: 681b ldr r3, [r3, #0] + 8026042: 3310 adds r3, #16 + 8026044: 4aa5 ldr r2, [pc, #660] ; (80262dc ) + 8026046: 4619 mov r1, r3 + 8026048: 6838 ldr r0, [r7, #0] + 802604a: f7e7 fc1d bl 800d888 return; - 80260e2: f001 ba34 b.w 802754e + 802604e: f001 ba34 b.w 80274ba } if(lv_obj_check_type(obj, &lv_obj_class)) { - 80260e6: 49a3 ldr r1, [pc, #652] ; (8026374 ) - 80260e8: 6838 ldr r0, [r7, #0] - 80260ea: f7e0 fbd9 bl 80068a0 - 80260ee: 4603 mov r3, r0 - 80260f0: 2b00 cmp r3, #0 - 80260f2: f000 80af beq.w 8026254 + 8026052: 49a3 ldr r1, [pc, #652] ; (80262e0 ) + 8026054: 6838 ldr r0, [r7, #0] + 8026056: f7e0 fbed bl 8006834 + 802605a: 4603 mov r3, r0 + 802605c: 2b00 cmp r3, #0 + 802605e: f000 80af beq.w 80261c0 #if LV_USE_TABVIEW lv_obj_t * parent = lv_obj_get_parent(obj); - 80260f6: 6838 ldr r0, [r7, #0] - 80260f8: f7e9 fb08 bl 800f70c - 80260fc: 60f8 str r0, [r7, #12] + 8026062: 6838 ldr r0, [r7, #0] + 8026064: f7e9 fb08 bl 800f678 + 8026068: 60f8 str r0, [r7, #12] /*Tabview content area*/ if(lv_obj_check_type(parent, &lv_tabview_class)) { - 80260fe: 499e ldr r1, [pc, #632] ; (8026378 ) - 8026100: 68f8 ldr r0, [r7, #12] - 8026102: f7e0 fbcd bl 80068a0 - 8026106: 4603 mov r3, r0 - 8026108: 2b00 cmp r3, #0 - 802610a: f041 81fd bne.w 8027508 + 802606a: 499e ldr r1, [pc, #632] ; (80262e4 ) + 802606c: 68f8 ldr r0, [r7, #12] + 802606e: f7e0 fbe1 bl 8006834 + 8026072: 4603 mov r3, r0 + 8026074: 2b00 cmp r3, #0 + 8026076: f041 81fd bne.w 8027474 return; } /*Tabview pages*/ else if(lv_obj_check_type(lv_obj_get_parent(parent), &lv_tabview_class)) { - 802610e: 68f8 ldr r0, [r7, #12] - 8026110: f7e9 fafc bl 800f70c - 8026114: 4603 mov r3, r0 - 8026116: 4998 ldr r1, [pc, #608] ; (8026378 ) - 8026118: 4618 mov r0, r3 - 802611a: f7e0 fbc1 bl 80068a0 - 802611e: 4603 mov r3, r0 - 8026120: 2b00 cmp r3, #0 - 8026122: d01a beq.n 802615a + 802607a: 68f8 ldr r0, [r7, #12] + 802607c: f7e9 fafc bl 800f678 + 8026080: 4603 mov r3, r0 + 8026082: 4998 ldr r1, [pc, #608] ; (80262e4 ) + 8026084: 4618 mov r0, r3 + 8026086: f7e0 fbd5 bl 8006834 + 802608a: 4603 mov r3, r0 + 802608c: 2b00 cmp r3, #0 + 802608e: d01a beq.n 80260c6 lv_obj_add_style(obj, &styles->pad_normal, 0); - 8026124: 4b91 ldr r3, [pc, #580] ; (802636c ) - 8026126: 681b ldr r3, [r3, #0] - 8026128: 3380 adds r3, #128 ; 0x80 - 802612a: 2200 movs r2, #0 - 802612c: 4619 mov r1, r3 - 802612e: 6838 ldr r0, [r7, #0] - 8026130: f7e7 fbe0 bl 800d8f4 + 8026090: 4b91 ldr r3, [pc, #580] ; (80262d8 ) + 8026092: 681b ldr r3, [r3, #0] + 8026094: 3380 adds r3, #128 ; 0x80 + 8026096: 2200 movs r2, #0 + 8026098: 4619 mov r1, r3 + 802609a: 6838 ldr r0, [r7, #0] + 802609c: f7e7 fbf4 bl 800d888 lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); - 8026134: 4b8d ldr r3, [pc, #564] ; (802636c ) - 8026136: 681b ldr r3, [r3, #0] - 8026138: 3308 adds r3, #8 - 802613a: f44f 3280 mov.w r2, #65536 ; 0x10000 - 802613e: 4619 mov r1, r3 - 8026140: 6838 ldr r0, [r7, #0] - 8026142: f7e7 fbd7 bl 800d8f4 + 80260a0: 4b8d ldr r3, [pc, #564] ; (80262d8 ) + 80260a2: 681b ldr r3, [r3, #0] + 80260a4: 3308 adds r3, #8 + 80260a6: f44f 3280 mov.w r2, #65536 ; 0x10000 + 80260aa: 4619 mov r1, r3 + 80260ac: 6838 ldr r0, [r7, #0] + 80260ae: f7e7 fbeb bl 800d888 lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); - 8026146: 4b89 ldr r3, [pc, #548] ; (802636c ) - 8026148: 681b ldr r3, [r3, #0] - 802614a: 3310 adds r3, #16 - 802614c: 4a88 ldr r2, [pc, #544] ; (8026370 ) - 802614e: 4619 mov r1, r3 - 8026150: 6838 ldr r0, [r7, #0] - 8026152: f7e7 fbcf bl 800d8f4 + 80260b2: 4b89 ldr r3, [pc, #548] ; (80262d8 ) + 80260b4: 681b ldr r3, [r3, #0] + 80260b6: 3310 adds r3, #16 + 80260b8: 4a88 ldr r2, [pc, #544] ; (80262dc ) + 80260ba: 4619 mov r1, r3 + 80260bc: 6838 ldr r0, [r7, #0] + 80260be: f7e7 fbe3 bl 800d888 return; - 8026156: f001 b9fa b.w 802754e + 80260c2: f001 b9fa b.w 80274ba } #endif #if LV_USE_WIN /*Header*/ if(lv_obj_get_index(obj) == 0 && lv_obj_check_type(lv_obj_get_parent(obj), &lv_win_class)) { - 802615a: 6838 ldr r0, [r7, #0] - 802615c: f7e9 fb2a bl 800f7b4 - 8026160: 4603 mov r3, r0 - 8026162: 2b00 cmp r3, #0 - 8026164: d11c bne.n 80261a0 - 8026166: 6838 ldr r0, [r7, #0] - 8026168: f7e9 fad0 bl 800f70c - 802616c: 4603 mov r3, r0 - 802616e: 4983 ldr r1, [pc, #524] ; (802637c ) - 8026170: 4618 mov r0, r3 - 8026172: f7e0 fb95 bl 80068a0 - 8026176: 4603 mov r3, r0 - 8026178: 2b00 cmp r3, #0 - 802617a: d011 beq.n 80261a0 + 80260c6: 6838 ldr r0, [r7, #0] + 80260c8: f7e9 fb2a bl 800f720 + 80260cc: 4603 mov r3, r0 + 80260ce: 2b00 cmp r3, #0 + 80260d0: d11c bne.n 802610c + 80260d2: 6838 ldr r0, [r7, #0] + 80260d4: f7e9 fad0 bl 800f678 + 80260d8: 4603 mov r3, r0 + 80260da: 4983 ldr r1, [pc, #524] ; (80262e8 ) + 80260dc: 4618 mov r0, r3 + 80260de: f7e0 fba9 bl 8006834 + 80260e2: 4603 mov r3, r0 + 80260e4: 2b00 cmp r3, #0 + 80260e6: d011 beq.n 802610c lv_obj_add_style(obj, &styles->bg_color_grey, 0); - 802617c: 4b7b ldr r3, [pc, #492] ; (802636c ) - 802617e: 681b ldr r3, [r3, #0] - 8026180: 3348 adds r3, #72 ; 0x48 - 8026182: 2200 movs r2, #0 - 8026184: 4619 mov r1, r3 - 8026186: 6838 ldr r0, [r7, #0] - 8026188: f7e7 fbb4 bl 800d8f4 + 80260e8: 4b7b ldr r3, [pc, #492] ; (80262d8 ) + 80260ea: 681b ldr r3, [r3, #0] + 80260ec: 3348 adds r3, #72 ; 0x48 + 80260ee: 2200 movs r2, #0 + 80260f0: 4619 mov r1, r3 + 80260f2: 6838 ldr r0, [r7, #0] + 80260f4: f7e7 fbc8 bl 800d888 lv_obj_add_style(obj, &styles->pad_tiny, 0); - 802618c: 4b77 ldr r3, [pc, #476] ; (802636c ) - 802618e: 681b ldr r3, [r3, #0] - 8026190: 3370 adds r3, #112 ; 0x70 - 8026192: 2200 movs r2, #0 - 8026194: 4619 mov r1, r3 - 8026196: 6838 ldr r0, [r7, #0] - 8026198: f7e7 fbac bl 800d8f4 + 80260f8: 4b77 ldr r3, [pc, #476] ; (80262d8 ) + 80260fa: 681b ldr r3, [r3, #0] + 80260fc: 3370 adds r3, #112 ; 0x70 + 80260fe: 2200 movs r2, #0 + 8026100: 4619 mov r1, r3 + 8026102: 6838 ldr r0, [r7, #0] + 8026104: f7e7 fbc0 bl 800d888 return; - 802619c: f001 b9d7 b.w 802754e + 8026108: f001 b9d7 b.w 80274ba } /*Content*/ else if(lv_obj_get_index(obj) == 1 && lv_obj_check_type(lv_obj_get_parent(obj), &lv_win_class)) { - 80261a0: 6838 ldr r0, [r7, #0] - 80261a2: f7e9 fb07 bl 800f7b4 - 80261a6: 4603 mov r3, r0 - 80261a8: 2b01 cmp r3, #1 - 80261aa: d12c bne.n 8026206 - 80261ac: 6838 ldr r0, [r7, #0] - 80261ae: f7e9 faad bl 800f70c - 80261b2: 4603 mov r3, r0 - 80261b4: 4971 ldr r1, [pc, #452] ; (802637c ) - 80261b6: 4618 mov r0, r3 - 80261b8: f7e0 fb72 bl 80068a0 - 80261bc: 4603 mov r3, r0 - 80261be: 2b00 cmp r3, #0 - 80261c0: d021 beq.n 8026206 + 802610c: 6838 ldr r0, [r7, #0] + 802610e: f7e9 fb07 bl 800f720 + 8026112: 4603 mov r3, r0 + 8026114: 2b01 cmp r3, #1 + 8026116: d12c bne.n 8026172 + 8026118: 6838 ldr r0, [r7, #0] + 802611a: f7e9 faad bl 800f678 + 802611e: 4603 mov r3, r0 + 8026120: 4971 ldr r1, [pc, #452] ; (80262e8 ) + 8026122: 4618 mov r0, r3 + 8026124: f7e0 fb86 bl 8006834 + 8026128: 4603 mov r3, r0 + 802612a: 2b00 cmp r3, #0 + 802612c: d021 beq.n 8026172 lv_obj_add_style(obj, &styles->scr, 0); - 80261c2: 4b6a ldr r3, [pc, #424] ; (802636c ) - 80261c4: 681b ldr r3, [r3, #0] - 80261c6: 2200 movs r2, #0 - 80261c8: 4619 mov r1, r3 - 80261ca: 6838 ldr r0, [r7, #0] - 80261cc: f7e7 fb92 bl 800d8f4 + 802612e: 4b6a ldr r3, [pc, #424] ; (80262d8 ) + 8026130: 681b ldr r3, [r3, #0] + 8026132: 2200 movs r2, #0 + 8026134: 4619 mov r1, r3 + 8026136: 6838 ldr r0, [r7, #0] + 8026138: f7e7 fba6 bl 800d888 lv_obj_add_style(obj, &styles->pad_normal, 0); - 80261d0: 4b66 ldr r3, [pc, #408] ; (802636c ) - 80261d2: 681b ldr r3, [r3, #0] - 80261d4: 3380 adds r3, #128 ; 0x80 - 80261d6: 2200 movs r2, #0 - 80261d8: 4619 mov r1, r3 - 80261da: 6838 ldr r0, [r7, #0] - 80261dc: f7e7 fb8a bl 800d8f4 + 802613c: 4b66 ldr r3, [pc, #408] ; (80262d8 ) + 802613e: 681b ldr r3, [r3, #0] + 8026140: 3380 adds r3, #128 ; 0x80 + 8026142: 2200 movs r2, #0 + 8026144: 4619 mov r1, r3 + 8026146: 6838 ldr r0, [r7, #0] + 8026148: f7e7 fb9e bl 800d888 lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); - 80261e0: 4b62 ldr r3, [pc, #392] ; (802636c ) - 80261e2: 681b ldr r3, [r3, #0] - 80261e4: 3308 adds r3, #8 - 80261e6: f44f 3280 mov.w r2, #65536 ; 0x10000 - 80261ea: 4619 mov r1, r3 - 80261ec: 6838 ldr r0, [r7, #0] - 80261ee: f7e7 fb81 bl 800d8f4 + 802614c: 4b62 ldr r3, [pc, #392] ; (80262d8 ) + 802614e: 681b ldr r3, [r3, #0] + 8026150: 3308 adds r3, #8 + 8026152: f44f 3280 mov.w r2, #65536 ; 0x10000 + 8026156: 4619 mov r1, r3 + 8026158: 6838 ldr r0, [r7, #0] + 802615a: f7e7 fb95 bl 800d888 lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); - 80261f2: 4b5e ldr r3, [pc, #376] ; (802636c ) - 80261f4: 681b ldr r3, [r3, #0] - 80261f6: 3310 adds r3, #16 - 80261f8: 4a5d ldr r2, [pc, #372] ; (8026370 ) - 80261fa: 4619 mov r1, r3 - 80261fc: 6838 ldr r0, [r7, #0] - 80261fe: f7e7 fb79 bl 800d8f4 + 802615e: 4b5e ldr r3, [pc, #376] ; (80262d8 ) + 8026160: 681b ldr r3, [r3, #0] + 8026162: 3310 adds r3, #16 + 8026164: 4a5d ldr r2, [pc, #372] ; (80262dc ) + 8026166: 4619 mov r1, r3 + 8026168: 6838 ldr r0, [r7, #0] + 802616a: f7e7 fb8d bl 800d888 return; - 8026202: f001 b9a4 b.w 802754e + 802616e: f001 b9a4 b.w 80274ba } #endif #if LV_USE_CALENDAR if(lv_obj_check_type(lv_obj_get_parent(obj), &lv_calendar_class)) { - 8026206: 6838 ldr r0, [r7, #0] - 8026208: f7e9 fa80 bl 800f70c - 802620c: 4603 mov r3, r0 - 802620e: 495c ldr r1, [pc, #368] ; (8026380 ) - 8026210: 4618 mov r0, r3 - 8026212: f7e0 fb45 bl 80068a0 - 8026216: 4603 mov r3, r0 - 8026218: 2b00 cmp r3, #0 - 802621a: f041 8197 bne.w 802754c + 8026172: 6838 ldr r0, [r7, #0] + 8026174: f7e9 fa80 bl 800f678 + 8026178: 4603 mov r3, r0 + 802617a: 495c ldr r1, [pc, #368] ; (80262ec ) + 802617c: 4618 mov r0, r3 + 802617e: f7e0 fb59 bl 8006834 + 8026182: 4603 mov r3, r0 + 8026184: 2b00 cmp r3, #0 + 8026186: f041 8197 bne.w 80274b8 /*No style*/ return; } #endif lv_obj_add_style(obj, &styles->card, 0); - 802621e: 4b53 ldr r3, [pc, #332] ; (802636c ) - 8026220: 681b ldr r3, [r3, #0] - 8026222: 3318 adds r3, #24 - 8026224: 2200 movs r2, #0 - 8026226: 4619 mov r1, r3 - 8026228: 6838 ldr r0, [r7, #0] - 802622a: f7e7 fb63 bl 800d8f4 + 802618a: 4b53 ldr r3, [pc, #332] ; (80262d8 ) + 802618c: 681b ldr r3, [r3, #0] + 802618e: 3318 adds r3, #24 + 8026190: 2200 movs r2, #0 + 8026192: 4619 mov r1, r3 + 8026194: 6838 ldr r0, [r7, #0] + 8026196: f7e7 fb77 bl 800d888 lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); - 802622e: 4b4f ldr r3, [pc, #316] ; (802636c ) - 8026230: 681b ldr r3, [r3, #0] - 8026232: 3308 adds r3, #8 - 8026234: f44f 3280 mov.w r2, #65536 ; 0x10000 - 8026238: 4619 mov r1, r3 - 802623a: 6838 ldr r0, [r7, #0] - 802623c: f7e7 fb5a bl 800d8f4 + 802619a: 4b4f ldr r3, [pc, #316] ; (80262d8 ) + 802619c: 681b ldr r3, [r3, #0] + 802619e: 3308 adds r3, #8 + 80261a0: f44f 3280 mov.w r2, #65536 ; 0x10000 + 80261a4: 4619 mov r1, r3 + 80261a6: 6838 ldr r0, [r7, #0] + 80261a8: f7e7 fb6e bl 800d888 lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); - 8026240: 4b4a ldr r3, [pc, #296] ; (802636c ) - 8026242: 681b ldr r3, [r3, #0] - 8026244: 3310 adds r3, #16 - 8026246: 4a4a ldr r2, [pc, #296] ; (8026370 ) - 8026248: 4619 mov r1, r3 - 802624a: 6838 ldr r0, [r7, #0] - 802624c: f7e7 fb52 bl 800d8f4 - 8026250: f001 b97d b.w 802754e + 80261ac: 4b4a ldr r3, [pc, #296] ; (80262d8 ) + 80261ae: 681b ldr r3, [r3, #0] + 80261b0: 3310 adds r3, #16 + 80261b2: 4a4a ldr r2, [pc, #296] ; (80262dc ) + 80261b4: 4619 mov r1, r3 + 80261b6: 6838 ldr r0, [r7, #0] + 80261b8: f7e7 fb66 bl 800d888 + 80261bc: f001 b97d b.w 80274ba } #if LV_USE_BTN else if(lv_obj_check_type(obj, &lv_btn_class)) { - 8026254: 494b ldr r1, [pc, #300] ; (8026384 ) - 8026256: 6838 ldr r0, [r7, #0] - 8026258: f7e0 fb22 bl 80068a0 - 802625c: 4603 mov r3, r0 - 802625e: 2b00 cmp r3, #0 - 8026260: d072 beq.n 8026348 + 80261c0: 494b ldr r1, [pc, #300] ; (80262f0 ) + 80261c2: 6838 ldr r0, [r7, #0] + 80261c4: f7e0 fb36 bl 8006834 + 80261c8: 4603 mov r3, r0 + 80261ca: 2b00 cmp r3, #0 + 80261cc: d072 beq.n 80262b4 lv_obj_add_style(obj, &styles->btn, 0); - 8026262: 4b42 ldr r3, [pc, #264] ; (802636c ) - 8026264: 681b ldr r3, [r3, #0] - 8026266: 3320 adds r3, #32 - 8026268: 2200 movs r2, #0 - 802626a: 4619 mov r1, r3 - 802626c: 6838 ldr r0, [r7, #0] - 802626e: f7e7 fb41 bl 800d8f4 + 80261ce: 4b42 ldr r3, [pc, #264] ; (80262d8 ) + 80261d0: 681b ldr r3, [r3, #0] + 80261d2: 3320 adds r3, #32 + 80261d4: 2200 movs r2, #0 + 80261d6: 4619 mov r1, r3 + 80261d8: 6838 ldr r0, [r7, #0] + 80261da: f7e7 fb55 bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary, 0); - 8026272: 4b3e ldr r3, [pc, #248] ; (802636c ) - 8026274: 681b ldr r3, [r3, #0] - 8026276: 3328 adds r3, #40 ; 0x28 - 8026278: 2200 movs r2, #0 - 802627a: 4619 mov r1, r3 - 802627c: 6838 ldr r0, [r7, #0] - 802627e: f7e7 fb39 bl 800d8f4 + 80261de: 4b3e ldr r3, [pc, #248] ; (80262d8 ) + 80261e0: 681b ldr r3, [r3, #0] + 80261e2: 3328 adds r3, #40 ; 0x28 + 80261e4: 2200 movs r2, #0 + 80261e6: 4619 mov r1, r3 + 80261e8: 6838 ldr r0, [r7, #0] + 80261ea: f7e7 fb4d bl 800d888 lv_obj_add_style(obj, &styles->transition_delayed, 0); - 8026282: 4b3a ldr r3, [pc, #232] ; (802636c ) - 8026284: 681b ldr r3, [r3, #0] - 8026286: 33d0 adds r3, #208 ; 0xd0 - 8026288: 2200 movs r2, #0 - 802628a: 4619 mov r1, r3 - 802628c: 6838 ldr r0, [r7, #0] - 802628e: f7e7 fb31 bl 800d8f4 + 80261ee: 4b3a ldr r3, [pc, #232] ; (80262d8 ) + 80261f0: 681b ldr r3, [r3, #0] + 80261f2: 33d0 adds r3, #208 ; 0xd0 + 80261f4: 2200 movs r2, #0 + 80261f6: 4619 mov r1, r3 + 80261f8: 6838 ldr r0, [r7, #0] + 80261fa: f7e7 fb45 bl 800d888 lv_obj_add_style(obj, &styles->pressed, LV_STATE_PRESSED); - 8026292: 4b36 ldr r3, [pc, #216] ; (802636c ) - 8026294: 681b ldr r3, [r3, #0] - 8026296: 3358 adds r3, #88 ; 0x58 - 8026298: 2220 movs r2, #32 - 802629a: 4619 mov r1, r3 - 802629c: 6838 ldr r0, [r7, #0] - 802629e: f7e7 fb29 bl 800d8f4 + 80261fe: 4b36 ldr r3, [pc, #216] ; (80262d8 ) + 8026200: 681b ldr r3, [r3, #0] + 8026202: 3358 adds r3, #88 ; 0x58 + 8026204: 2220 movs r2, #32 + 8026206: 4619 mov r1, r3 + 8026208: 6838 ldr r0, [r7, #0] + 802620a: f7e7 fb3d bl 800d888 lv_obj_add_style(obj, &styles->transition_normal, LV_STATE_PRESSED); - 80262a2: 4b32 ldr r3, [pc, #200] ; (802636c ) - 80262a4: 681b ldr r3, [r3, #0] - 80262a6: 33d8 adds r3, #216 ; 0xd8 - 80262a8: 2220 movs r2, #32 - 80262aa: 4619 mov r1, r3 - 80262ac: 6838 ldr r0, [r7, #0] - 80262ae: f7e7 fb21 bl 800d8f4 + 802620e: 4b32 ldr r3, [pc, #200] ; (80262d8 ) + 8026210: 681b ldr r3, [r3, #0] + 8026212: 33d8 adds r3, #216 ; 0xd8 + 8026214: 2220 movs r2, #32 + 8026216: 4619 mov r1, r3 + 8026218: 6838 ldr r0, [r7, #0] + 802621a: f7e7 fb35 bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_STATE_FOCUS_KEY); - 80262b2: 4b2e ldr r3, [pc, #184] ; (802636c ) - 80262b4: 681b ldr r3, [r3, #0] - 80262b6: 33a0 adds r3, #160 ; 0xa0 - 80262b8: 2204 movs r2, #4 - 80262ba: 4619 mov r1, r3 - 80262bc: 6838 ldr r0, [r7, #0] - 80262be: f7e7 fb19 bl 800d8f4 + 802621e: 4b2e ldr r3, [pc, #184] ; (80262d8 ) + 8026220: 681b ldr r3, [r3, #0] + 8026222: 33a0 adds r3, #160 ; 0xa0 + 8026224: 2204 movs r2, #4 + 8026226: 4619 mov r1, r3 + 8026228: 6838 ldr r0, [r7, #0] + 802622a: f7e7 fb2d bl 800d888 #if LV_THEME_DEFAULT_GROW lv_obj_add_style(obj, &styles->grow, LV_STATE_PRESSED); - 80262c2: 4b2a ldr r3, [pc, #168] ; (802636c ) - 80262c4: 681b ldr r3, [r3, #0] - 80262c6: 33c8 adds r3, #200 ; 0xc8 - 80262c8: 2220 movs r2, #32 - 80262ca: 4619 mov r1, r3 - 80262cc: 6838 ldr r0, [r7, #0] - 80262ce: f7e7 fb11 bl 800d8f4 + 802622e: 4b2a ldr r3, [pc, #168] ; (80262d8 ) + 8026230: 681b ldr r3, [r3, #0] + 8026232: 33c8 adds r3, #200 ; 0xc8 + 8026234: 2220 movs r2, #32 + 8026236: 4619 mov r1, r3 + 8026238: 6838 ldr r0, [r7, #0] + 802623a: f7e7 fb25 bl 800d888 #endif lv_obj_add_style(obj, &styles->bg_color_secondary, LV_STATE_CHECKED); - 80262d2: 4b26 ldr r3, [pc, #152] ; (802636c ) - 80262d4: 681b ldr r3, [r3, #0] - 80262d6: 3338 adds r3, #56 ; 0x38 - 80262d8: 2201 movs r2, #1 - 80262da: 4619 mov r1, r3 - 80262dc: 6838 ldr r0, [r7, #0] - 80262de: f7e7 fb09 bl 800d8f4 + 802623e: 4b26 ldr r3, [pc, #152] ; (80262d8 ) + 8026240: 681b ldr r3, [r3, #0] + 8026242: 3338 adds r3, #56 ; 0x38 + 8026244: 2201 movs r2, #1 + 8026246: 4619 mov r1, r3 + 8026248: 6838 ldr r0, [r7, #0] + 802624a: f7e7 fb1d bl 800d888 lv_obj_add_style(obj, &styles->disabled, LV_STATE_DISABLED); - 80262e2: 4b22 ldr r3, [pc, #136] ; (802636c ) - 80262e4: 681b ldr r3, [r3, #0] - 80262e6: 3360 adds r3, #96 ; 0x60 - 80262e8: 2280 movs r2, #128 ; 0x80 - 80262ea: 4619 mov r1, r3 - 80262ec: 6838 ldr r0, [r7, #0] - 80262ee: f7e7 fb01 bl 800d8f4 + 802624e: 4b22 ldr r3, [pc, #136] ; (80262d8 ) + 8026250: 681b ldr r3, [r3, #0] + 8026252: 3360 adds r3, #96 ; 0x60 + 8026254: 2280 movs r2, #128 ; 0x80 + 8026256: 4619 mov r1, r3 + 8026258: 6838 ldr r0, [r7, #0] + 802625a: f7e7 fb15 bl 800d888 #if LV_USE_MENU if(lv_obj_check_type(lv_obj_get_parent(obj), &lv_menu_sidebar_header_cont_class) || - 80262f2: 6838 ldr r0, [r7, #0] - 80262f4: f7e9 fa0a bl 800f70c - 80262f8: 4603 mov r3, r0 - 80262fa: 4923 ldr r1, [pc, #140] ; (8026388 ) - 80262fc: 4618 mov r0, r3 - 80262fe: f7e0 facf bl 80068a0 - 8026302: 4603 mov r3, r0 - 8026304: 2b00 cmp r3, #0 - 8026306: d10b bne.n 8026320 + 802625e: 6838 ldr r0, [r7, #0] + 8026260: f7e9 fa0a bl 800f678 + 8026264: 4603 mov r3, r0 + 8026266: 4923 ldr r1, [pc, #140] ; (80262f4 ) + 8026268: 4618 mov r0, r3 + 802626a: f7e0 fae3 bl 8006834 + 802626e: 4603 mov r3, r0 + 8026270: 2b00 cmp r3, #0 + 8026272: d10b bne.n 802628c lv_obj_check_type(lv_obj_get_parent(obj), &lv_menu_main_header_cont_class)) { - 8026308: 6838 ldr r0, [r7, #0] - 802630a: f7e9 f9ff bl 800f70c - 802630e: 4603 mov r3, r0 - 8026310: 491e ldr r1, [pc, #120] ; (802638c ) - 8026312: 4618 mov r0, r3 - 8026314: f7e0 fac4 bl 80068a0 - 8026318: 4603 mov r3, r0 + 8026274: 6838 ldr r0, [r7, #0] + 8026276: f7e9 f9ff bl 800f678 + 802627a: 4603 mov r3, r0 + 802627c: 491e ldr r1, [pc, #120] ; (80262f8 ) + 802627e: 4618 mov r0, r3 + 8026280: f7e0 fad8 bl 8006834 + 8026284: 4603 mov r3, r0 if(lv_obj_check_type(lv_obj_get_parent(obj), &lv_menu_sidebar_header_cont_class) || - 802631a: 2b00 cmp r3, #0 - 802631c: f001 8117 beq.w 802754e + 8026286: 2b00 cmp r3, #0 + 8026288: f001 8117 beq.w 80274ba lv_obj_add_style(obj, &styles->menu_header_btn, 0); - 8026320: 4b12 ldr r3, [pc, #72] ; (802636c ) - 8026322: 681b ldr r3, [r3, #0] - 8026324: f503 73e8 add.w r3, r3, #464 ; 0x1d0 - 8026328: 2200 movs r2, #0 - 802632a: 4619 mov r1, r3 - 802632c: 6838 ldr r0, [r7, #0] - 802632e: f7e7 fae1 bl 800d8f4 + 802628c: 4b12 ldr r3, [pc, #72] ; (80262d8 ) + 802628e: 681b ldr r3, [r3, #0] + 8026290: f503 73e8 add.w r3, r3, #464 ; 0x1d0 + 8026294: 2200 movs r2, #0 + 8026296: 4619 mov r1, r3 + 8026298: 6838 ldr r0, [r7, #0] + 802629a: f7e7 faf5 bl 800d888 lv_obj_add_style(obj, &styles->menu_pressed, LV_STATE_PRESSED); - 8026332: 4b0e ldr r3, [pc, #56] ; (802636c ) - 8026334: 681b ldr r3, [r3, #0] - 8026336: f503 73f0 add.w r3, r3, #480 ; 0x1e0 - 802633a: 2220 movs r2, #32 - 802633c: 4619 mov r1, r3 - 802633e: 6838 ldr r0, [r7, #0] - 8026340: f7e7 fad8 bl 800d8f4 - 8026344: f001 b903 b.w 802754e + 802629e: 4b0e ldr r3, [pc, #56] ; (80262d8 ) + 80262a0: 681b ldr r3, [r3, #0] + 80262a2: f503 73f0 add.w r3, r3, #480 ; 0x1e0 + 80262a6: 2220 movs r2, #32 + 80262a8: 4619 mov r1, r3 + 80262aa: 6838 ldr r0, [r7, #0] + 80262ac: f7e7 faec bl 800d888 + 80262b0: f001 b903 b.w 80274ba #endif } #endif #if LV_USE_LINE else if(lv_obj_check_type(obj, &lv_line_class)) { - 8026348: 4911 ldr r1, [pc, #68] ; (8026390 ) - 802634a: 6838 ldr r0, [r7, #0] - 802634c: f7e0 faa8 bl 80068a0 - 8026350: 4603 mov r3, r0 - 8026352: 2b00 cmp r3, #0 - 8026354: d01e beq.n 8026394 + 80262b4: 4911 ldr r1, [pc, #68] ; (80262fc ) + 80262b6: 6838 ldr r0, [r7, #0] + 80262b8: f7e0 fabc bl 8006834 + 80262bc: 4603 mov r3, r0 + 80262be: 2b00 cmp r3, #0 + 80262c0: d01e beq.n 8026300 lv_obj_add_style(obj, &styles->line, 0); - 8026356: 4b05 ldr r3, [pc, #20] ; (802636c ) - 8026358: 681b ldr r3, [r3, #0] - 802635a: f503 73a8 add.w r3, r3, #336 ; 0x150 - 802635e: 2200 movs r2, #0 - 8026360: 4619 mov r1, r3 - 8026362: 6838 ldr r0, [r7, #0] - 8026364: f7e7 fac6 bl 800d8f4 - 8026368: f001 b8f1 b.w 802754e - 802636c: 20001c4c .word 0x20001c4c - 8026370: 00010040 .word 0x00010040 - 8026374: 0806ca34 .word 0x0806ca34 - 8026378: 0806d1bc .word 0x0806d1bc - 802637c: 0806d210 .word 0x0806d210 - 8026380: 0806cba4 .word 0x0806cba4 - 8026384: 080709e4 .word 0x080709e4 - 8026388: 0806d114 .word 0x0806d114 - 802638c: 0806d0f8 .word 0x0806d0f8 - 8026390: 08070aa8 .word 0x08070aa8 + 80262c2: 4b05 ldr r3, [pc, #20] ; (80262d8 ) + 80262c4: 681b ldr r3, [r3, #0] + 80262c6: f503 73a8 add.w r3, r3, #336 ; 0x150 + 80262ca: 2200 movs r2, #0 + 80262cc: 4619 mov r1, r3 + 80262ce: 6838 ldr r0, [r7, #0] + 80262d0: f7e7 fada bl 800d888 + 80262d4: f001 b8f1 b.w 80274ba + 80262d8: 20001c4c .word 0x20001c4c + 80262dc: 00010040 .word 0x00010040 + 80262e0: 0806c98c .word 0x0806c98c + 80262e4: 0806d114 .word 0x0806d114 + 80262e8: 0806d168 .word 0x0806d168 + 80262ec: 0806cafc .word 0x0806cafc + 80262f0: 0807093c .word 0x0807093c + 80262f4: 0806d06c .word 0x0806d06c + 80262f8: 0806d050 .word 0x0806d050 + 80262fc: 08070a00 .word 0x08070a00 } #endif #if LV_USE_BTNMATRIX else if(lv_obj_check_type(obj, &lv_btnmatrix_class)) { - 8026394: 49a4 ldr r1, [pc, #656] ; (8026628 ) - 8026396: 6838 ldr r0, [r7, #0] - 8026398: f7e0 fa82 bl 80068a0 - 802639c: 4603 mov r3, r0 - 802639e: 2b00 cmp r3, #0 - 80263a0: f000 8156 beq.w 8026650 + 8026300: 49a4 ldr r1, [pc, #656] ; (8026594 ) + 8026302: 6838 ldr r0, [r7, #0] + 8026304: f7e0 fa96 bl 8006834 + 8026308: 4603 mov r3, r0 + 802630a: 2b00 cmp r3, #0 + 802630c: f000 8156 beq.w 80265bc #if LV_USE_MSGBOX if(lv_obj_check_type(lv_obj_get_parent(obj), &lv_msgbox_class)) { - 80263a4: 6838 ldr r0, [r7, #0] - 80263a6: f7e9 f9b1 bl 800f70c - 80263aa: 4603 mov r3, r0 - 80263ac: 499f ldr r1, [pc, #636] ; (802662c ) - 80263ae: 4618 mov r0, r3 - 80263b0: f7e0 fa76 bl 80068a0 - 80263b4: 4603 mov r3, r0 - 80263b6: 2b00 cmp r3, #0 - 80263b8: d043 beq.n 8026442 + 8026310: 6838 ldr r0, [r7, #0] + 8026312: f7e9 f9b1 bl 800f678 + 8026316: 4603 mov r3, r0 + 8026318: 499f ldr r1, [pc, #636] ; (8026598 ) + 802631a: 4618 mov r0, r3 + 802631c: f7e0 fa8a bl 8006834 + 8026320: 4603 mov r3, r0 + 8026322: 2b00 cmp r3, #0 + 8026324: d043 beq.n 80263ae lv_obj_add_style(obj, &styles->msgbox_btn_bg, 0); - 80263ba: 4b9d ldr r3, [pc, #628] ; (8026630 ) - 80263bc: 681b ldr r3, [r3, #0] - 80263be: f503 73fc add.w r3, r3, #504 ; 0x1f8 - 80263c2: 2200 movs r2, #0 - 80263c4: 4619 mov r1, r3 - 80263c6: 6838 ldr r0, [r7, #0] - 80263c8: f7e7 fa94 bl 800d8f4 + 8026326: 4b9d ldr r3, [pc, #628] ; (802659c ) + 8026328: 681b ldr r3, [r3, #0] + 802632a: f503 73fc add.w r3, r3, #504 ; 0x1f8 + 802632e: 2200 movs r2, #0 + 8026330: 4619 mov r1, r3 + 8026332: 6838 ldr r0, [r7, #0] + 8026334: f7e7 faa8 bl 800d888 lv_obj_add_style(obj, &styles->pad_gap, 0); - 80263cc: 4b98 ldr r3, [pc, #608] ; (8026630 ) - 80263ce: 681b ldr r3, [r3, #0] - 80263d0: 3388 adds r3, #136 ; 0x88 - 80263d2: 2200 movs r2, #0 - 80263d4: 4619 mov r1, r3 - 80263d6: 6838 ldr r0, [r7, #0] - 80263d8: f7e7 fa8c bl 800d8f4 + 8026338: 4b98 ldr r3, [pc, #608] ; (802659c ) + 802633a: 681b ldr r3, [r3, #0] + 802633c: 3388 adds r3, #136 ; 0x88 + 802633e: 2200 movs r2, #0 + 8026340: 4619 mov r1, r3 + 8026342: 6838 ldr r0, [r7, #0] + 8026344: f7e7 faa0 bl 800d888 lv_obj_add_style(obj, &styles->btn, LV_PART_ITEMS); - 80263dc: 4b94 ldr r3, [pc, #592] ; (8026630 ) - 80263de: 681b ldr r3, [r3, #0] - 80263e0: 3320 adds r3, #32 - 80263e2: f44f 22a0 mov.w r2, #327680 ; 0x50000 - 80263e6: 4619 mov r1, r3 - 80263e8: 6838 ldr r0, [r7, #0] - 80263ea: f7e7 fa83 bl 800d8f4 + 8026348: 4b94 ldr r3, [pc, #592] ; (802659c ) + 802634a: 681b ldr r3, [r3, #0] + 802634c: 3320 adds r3, #32 + 802634e: f44f 22a0 mov.w r2, #327680 ; 0x50000 + 8026352: 4619 mov r1, r3 + 8026354: 6838 ldr r0, [r7, #0] + 8026356: f7e7 fa97 bl 800d888 lv_obj_add_style(obj, &styles->pressed, LV_PART_ITEMS | LV_STATE_PRESSED); - 80263ee: 4b90 ldr r3, [pc, #576] ; (8026630 ) - 80263f0: 681b ldr r3, [r3, #0] - 80263f2: 3358 adds r3, #88 ; 0x58 - 80263f4: 4a8f ldr r2, [pc, #572] ; (8026634 ) - 80263f6: 4619 mov r1, r3 - 80263f8: 6838 ldr r0, [r7, #0] - 80263fa: f7e7 fa7b bl 800d8f4 + 802635a: 4b90 ldr r3, [pc, #576] ; (802659c ) + 802635c: 681b ldr r3, [r3, #0] + 802635e: 3358 adds r3, #88 ; 0x58 + 8026360: 4a8f ldr r2, [pc, #572] ; (80265a0 ) + 8026362: 4619 mov r1, r3 + 8026364: 6838 ldr r0, [r7, #0] + 8026366: f7e7 fa8f bl 800d888 lv_obj_add_style(obj, &styles->disabled, LV_PART_ITEMS | LV_STATE_DISABLED); - 80263fe: 4b8c ldr r3, [pc, #560] ; (8026630 ) - 8026400: 681b ldr r3, [r3, #0] - 8026402: 3360 adds r3, #96 ; 0x60 - 8026404: 4a8c ldr r2, [pc, #560] ; (8026638 ) - 8026406: 4619 mov r1, r3 - 8026408: 6838 ldr r0, [r7, #0] - 802640a: f7e7 fa73 bl 800d8f4 + 802636a: 4b8c ldr r3, [pc, #560] ; (802659c ) + 802636c: 681b ldr r3, [r3, #0] + 802636e: 3360 adds r3, #96 ; 0x60 + 8026370: 4a8c ldr r2, [pc, #560] ; (80265a4 ) + 8026372: 4619 mov r1, r3 + 8026374: 6838 ldr r0, [r7, #0] + 8026376: f7e7 fa87 bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary, LV_PART_ITEMS | LV_STATE_CHECKED); - 802640e: 4b88 ldr r3, [pc, #544] ; (8026630 ) - 8026410: 681b ldr r3, [r3, #0] - 8026412: 3328 adds r3, #40 ; 0x28 - 8026414: 4a89 ldr r2, [pc, #548] ; (802663c ) - 8026416: 4619 mov r1, r3 - 8026418: 6838 ldr r0, [r7, #0] - 802641a: f7e7 fa6b bl 800d8f4 + 802637a: 4b88 ldr r3, [pc, #544] ; (802659c ) + 802637c: 681b ldr r3, [r3, #0] + 802637e: 3328 adds r3, #40 ; 0x28 + 8026380: 4a89 ldr r2, [pc, #548] ; (80265a8 ) + 8026382: 4619 mov r1, r3 + 8026384: 6838 ldr r0, [r7, #0] + 8026386: f7e7 fa7f bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary_muted, LV_PART_ITEMS | LV_STATE_FOCUS_KEY); - 802641e: 4b84 ldr r3, [pc, #528] ; (8026630 ) - 8026420: 681b ldr r3, [r3, #0] - 8026422: 3330 adds r3, #48 ; 0x30 - 8026424: 4a86 ldr r2, [pc, #536] ; (8026640 ) - 8026426: 4619 mov r1, r3 - 8026428: 6838 ldr r0, [r7, #0] - 802642a: f7e7 fa63 bl 800d8f4 + 802638a: 4b84 ldr r3, [pc, #528] ; (802659c ) + 802638c: 681b ldr r3, [r3, #0] + 802638e: 3330 adds r3, #48 ; 0x30 + 8026390: 4a86 ldr r2, [pc, #536] ; (80265ac ) + 8026392: 4619 mov r1, r3 + 8026394: 6838 ldr r0, [r7, #0] + 8026396: f7e7 fa77 bl 800d888 lv_obj_add_style(obj, &styles->bg_color_secondary_muted, LV_PART_ITEMS | LV_STATE_EDITED); - 802642e: 4b80 ldr r3, [pc, #512] ; (8026630 ) - 8026430: 681b ldr r3, [r3, #0] - 8026432: 3340 adds r3, #64 ; 0x40 - 8026434: 4a83 ldr r2, [pc, #524] ; (8026644 ) - 8026436: 4619 mov r1, r3 - 8026438: 6838 ldr r0, [r7, #0] - 802643a: f7e7 fa5b bl 800d8f4 + 802639a: 4b80 ldr r3, [pc, #512] ; (802659c ) + 802639c: 681b ldr r3, [r3, #0] + 802639e: 3340 adds r3, #64 ; 0x40 + 80263a0: 4a83 ldr r2, [pc, #524] ; (80265b0 ) + 80263a2: 4619 mov r1, r3 + 80263a4: 6838 ldr r0, [r7, #0] + 80263a6: f7e7 fa6f bl 800d888 return; - 802643e: f001 b886 b.w 802754e + 80263aa: f001 b886 b.w 80274ba } #endif #if LV_USE_TABVIEW if(lv_obj_check_type(lv_obj_get_parent(obj), &lv_tabview_class)) { - 8026442: 6838 ldr r0, [r7, #0] - 8026444: f7e9 f962 bl 800f70c - 8026448: 4603 mov r3, r0 - 802644a: 497f ldr r1, [pc, #508] ; (8026648 ) - 802644c: 4618 mov r0, r3 - 802644e: f7e0 fa27 bl 80068a0 - 8026452: 4603 mov r3, r0 - 8026454: 2b00 cmp r3, #0 - 8026456: d04c beq.n 80264f2 + 80263ae: 6838 ldr r0, [r7, #0] + 80263b0: f7e9 f962 bl 800f678 + 80263b4: 4603 mov r3, r0 + 80263b6: 497f ldr r1, [pc, #508] ; (80265b4 ) + 80263b8: 4618 mov r0, r3 + 80263ba: f7e0 fa3b bl 8006834 + 80263be: 4603 mov r3, r0 + 80263c0: 2b00 cmp r3, #0 + 80263c2: d04c beq.n 802645e lv_obj_add_style(obj, &styles->bg_color_white, 0); - 8026458: 4b75 ldr r3, [pc, #468] ; (8026630 ) - 802645a: 681b ldr r3, [r3, #0] - 802645c: 3350 adds r3, #80 ; 0x50 - 802645e: 2200 movs r2, #0 - 8026460: 4619 mov r1, r3 - 8026462: 6838 ldr r0, [r7, #0] - 8026464: f7e7 fa46 bl 800d8f4 + 80263c4: 4b75 ldr r3, [pc, #468] ; (802659c ) + 80263c6: 681b ldr r3, [r3, #0] + 80263c8: 3350 adds r3, #80 ; 0x50 + 80263ca: 2200 movs r2, #0 + 80263cc: 4619 mov r1, r3 + 80263ce: 6838 ldr r0, [r7, #0] + 80263d0: f7e7 fa5a bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_STATE_FOCUS_KEY); - 8026468: 4b71 ldr r3, [pc, #452] ; (8026630 ) - 802646a: 681b ldr r3, [r3, #0] - 802646c: 33a0 adds r3, #160 ; 0xa0 - 802646e: 2204 movs r2, #4 - 8026470: 4619 mov r1, r3 - 8026472: 6838 ldr r0, [r7, #0] - 8026474: f7e7 fa3e bl 800d8f4 + 80263d4: 4b71 ldr r3, [pc, #452] ; (802659c ) + 80263d6: 681b ldr r3, [r3, #0] + 80263d8: 33a0 adds r3, #160 ; 0xa0 + 80263da: 2204 movs r2, #4 + 80263dc: 4619 mov r1, r3 + 80263de: 6838 ldr r0, [r7, #0] + 80263e0: f7e7 fa52 bl 800d888 lv_obj_add_style(obj, &styles->tab_bg_focus, LV_STATE_FOCUS_KEY); - 8026478: 4b6d ldr r3, [pc, #436] ; (8026630 ) - 802647a: 681b ldr r3, [r3, #0] - 802647c: f503 730c add.w r3, r3, #560 ; 0x230 - 8026480: 2204 movs r2, #4 - 8026482: 4619 mov r1, r3 - 8026484: 6838 ldr r0, [r7, #0] - 8026486: f7e7 fa35 bl 800d8f4 + 80263e4: 4b6d ldr r3, [pc, #436] ; (802659c ) + 80263e6: 681b ldr r3, [r3, #0] + 80263e8: f503 730c add.w r3, r3, #560 ; 0x230 + 80263ec: 2204 movs r2, #4 + 80263ee: 4619 mov r1, r3 + 80263f0: 6838 ldr r0, [r7, #0] + 80263f2: f7e7 fa49 bl 800d888 lv_obj_add_style(obj, &styles->pressed, LV_PART_ITEMS | LV_STATE_PRESSED); - 802648a: 4b69 ldr r3, [pc, #420] ; (8026630 ) - 802648c: 681b ldr r3, [r3, #0] - 802648e: 3358 adds r3, #88 ; 0x58 - 8026490: 4a68 ldr r2, [pc, #416] ; (8026634 ) - 8026492: 4619 mov r1, r3 - 8026494: 6838 ldr r0, [r7, #0] - 8026496: f7e7 fa2d bl 800d8f4 + 80263f6: 4b69 ldr r3, [pc, #420] ; (802659c ) + 80263f8: 681b ldr r3, [r3, #0] + 80263fa: 3358 adds r3, #88 ; 0x58 + 80263fc: 4a68 ldr r2, [pc, #416] ; (80265a0 ) + 80263fe: 4619 mov r1, r3 + 8026400: 6838 ldr r0, [r7, #0] + 8026402: f7e7 fa41 bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary_muted, LV_PART_ITEMS | LV_STATE_CHECKED); - 802649a: 4b65 ldr r3, [pc, #404] ; (8026630 ) - 802649c: 681b ldr r3, [r3, #0] - 802649e: 3330 adds r3, #48 ; 0x30 - 80264a0: 4a66 ldr r2, [pc, #408] ; (802663c ) - 80264a2: 4619 mov r1, r3 - 80264a4: 6838 ldr r0, [r7, #0] - 80264a6: f7e7 fa25 bl 800d8f4 + 8026406: 4b65 ldr r3, [pc, #404] ; (802659c ) + 8026408: 681b ldr r3, [r3, #0] + 802640a: 3330 adds r3, #48 ; 0x30 + 802640c: 4a66 ldr r2, [pc, #408] ; (80265a8 ) + 802640e: 4619 mov r1, r3 + 8026410: 6838 ldr r0, [r7, #0] + 8026412: f7e7 fa39 bl 800d888 lv_obj_add_style(obj, &styles->tab_btn, LV_PART_ITEMS | LV_STATE_CHECKED); - 80264aa: 4b61 ldr r3, [pc, #388] ; (8026630 ) - 80264ac: 681b ldr r3, [r3, #0] - 80264ae: f503 730e add.w r3, r3, #568 ; 0x238 - 80264b2: 4a62 ldr r2, [pc, #392] ; (802663c ) - 80264b4: 4619 mov r1, r3 - 80264b6: 6838 ldr r0, [r7, #0] - 80264b8: f7e7 fa1c bl 800d8f4 + 8026416: 4b61 ldr r3, [pc, #388] ; (802659c ) + 8026418: 681b ldr r3, [r3, #0] + 802641a: f503 730e add.w r3, r3, #568 ; 0x238 + 802641e: 4a62 ldr r2, [pc, #392] ; (80265a8 ) + 8026420: 4619 mov r1, r3 + 8026422: 6838 ldr r0, [r7, #0] + 8026424: f7e7 fa30 bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_PART_ITEMS | LV_STATE_FOCUS_KEY); - 80264bc: 4b5c ldr r3, [pc, #368] ; (8026630 ) - 80264be: 681b ldr r3, [r3, #0] - 80264c0: 33a0 adds r3, #160 ; 0xa0 - 80264c2: 4a5f ldr r2, [pc, #380] ; (8026640 ) - 80264c4: 4619 mov r1, r3 - 80264c6: 6838 ldr r0, [r7, #0] - 80264c8: f7e7 fa14 bl 800d8f4 + 8026428: 4b5c ldr r3, [pc, #368] ; (802659c ) + 802642a: 681b ldr r3, [r3, #0] + 802642c: 33a0 adds r3, #160 ; 0xa0 + 802642e: 4a5f ldr r2, [pc, #380] ; (80265ac ) + 8026430: 4619 mov r1, r3 + 8026432: 6838 ldr r0, [r7, #0] + 8026434: f7e7 fa28 bl 800d888 lv_obj_add_style(obj, &styles->outline_secondary, LV_PART_ITEMS | LV_STATE_EDITED); - 80264cc: 4b58 ldr r3, [pc, #352] ; (8026630 ) - 80264ce: 681b ldr r3, [r3, #0] - 80264d0: 33a8 adds r3, #168 ; 0xa8 - 80264d2: 4a5c ldr r2, [pc, #368] ; (8026644 ) - 80264d4: 4619 mov r1, r3 - 80264d6: 6838 ldr r0, [r7, #0] - 80264d8: f7e7 fa0c bl 800d8f4 + 8026438: 4b58 ldr r3, [pc, #352] ; (802659c ) + 802643a: 681b ldr r3, [r3, #0] + 802643c: 33a8 adds r3, #168 ; 0xa8 + 802643e: 4a5c ldr r2, [pc, #368] ; (80265b0 ) + 8026440: 4619 mov r1, r3 + 8026442: 6838 ldr r0, [r7, #0] + 8026444: f7e7 fa20 bl 800d888 lv_obj_add_style(obj, &styles->tab_bg_focus, LV_PART_ITEMS | LV_STATE_FOCUS_KEY); - 80264dc: 4b54 ldr r3, [pc, #336] ; (8026630 ) - 80264de: 681b ldr r3, [r3, #0] - 80264e0: f503 730c add.w r3, r3, #560 ; 0x230 - 80264e4: 4a56 ldr r2, [pc, #344] ; (8026640 ) - 80264e6: 4619 mov r1, r3 - 80264e8: 6838 ldr r0, [r7, #0] - 80264ea: f7e7 fa03 bl 800d8f4 + 8026448: 4b54 ldr r3, [pc, #336] ; (802659c ) + 802644a: 681b ldr r3, [r3, #0] + 802644c: f503 730c add.w r3, r3, #560 ; 0x230 + 8026450: 4a56 ldr r2, [pc, #344] ; (80265ac ) + 8026452: 4619 mov r1, r3 + 8026454: 6838 ldr r0, [r7, #0] + 8026456: f7e7 fa17 bl 800d888 return; - 80264ee: f001 b82e b.w 802754e + 802645a: f001 b82e b.w 80274ba } #endif #if LV_USE_CALENDAR if(lv_obj_check_type(lv_obj_get_parent(obj), &lv_calendar_class)) { - 80264f2: 6838 ldr r0, [r7, #0] - 80264f4: f7e9 f90a bl 800f70c - 80264f8: 4603 mov r3, r0 - 80264fa: 4954 ldr r1, [pc, #336] ; (802664c ) - 80264fc: 4618 mov r0, r3 - 80264fe: f7e0 f9cf bl 80068a0 - 8026502: 4603 mov r3, r0 - 8026504: 2b00 cmp r3, #0 - 8026506: d044 beq.n 8026592 + 802645e: 6838 ldr r0, [r7, #0] + 8026460: f7e9 f90a bl 800f678 + 8026464: 4603 mov r3, r0 + 8026466: 4954 ldr r1, [pc, #336] ; (80265b8 ) + 8026468: 4618 mov r0, r3 + 802646a: f7e0 f9e3 bl 8006834 + 802646e: 4603 mov r3, r0 + 8026470: 2b00 cmp r3, #0 + 8026472: d044 beq.n 80264fe lv_obj_add_style(obj, &styles->calendar_btnm_bg, 0); - 8026508: 4b49 ldr r3, [pc, #292] ; (8026630 ) - 802650a: 681b ldr r3, [r3, #0] - 802650c: f503 73c0 add.w r3, r3, #384 ; 0x180 - 8026510: 2200 movs r2, #0 - 8026512: 4619 mov r1, r3 - 8026514: 6838 ldr r0, [r7, #0] - 8026516: f7e7 f9ed bl 800d8f4 + 8026474: 4b49 ldr r3, [pc, #292] ; (802659c ) + 8026476: 681b ldr r3, [r3, #0] + 8026478: f503 73c0 add.w r3, r3, #384 ; 0x180 + 802647c: 2200 movs r2, #0 + 802647e: 4619 mov r1, r3 + 8026480: 6838 ldr r0, [r7, #0] + 8026482: f7e7 fa01 bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_STATE_FOCUS_KEY); - 802651a: 4b45 ldr r3, [pc, #276] ; (8026630 ) - 802651c: 681b ldr r3, [r3, #0] - 802651e: 33a0 adds r3, #160 ; 0xa0 - 8026520: 2204 movs r2, #4 - 8026522: 4619 mov r1, r3 - 8026524: 6838 ldr r0, [r7, #0] - 8026526: f7e7 f9e5 bl 800d8f4 + 8026486: 4b45 ldr r3, [pc, #276] ; (802659c ) + 8026488: 681b ldr r3, [r3, #0] + 802648a: 33a0 adds r3, #160 ; 0xa0 + 802648c: 2204 movs r2, #4 + 802648e: 4619 mov r1, r3 + 8026490: 6838 ldr r0, [r7, #0] + 8026492: f7e7 f9f9 bl 800d888 lv_obj_add_style(obj, &styles->outline_secondary, LV_STATE_EDITED); - 802652a: 4b41 ldr r3, [pc, #260] ; (8026630 ) - 802652c: 681b ldr r3, [r3, #0] - 802652e: 33a8 adds r3, #168 ; 0xa8 - 8026530: 2208 movs r2, #8 - 8026532: 4619 mov r1, r3 - 8026534: 6838 ldr r0, [r7, #0] - 8026536: f7e7 f9dd bl 800d8f4 + 8026496: 4b41 ldr r3, [pc, #260] ; (802659c ) + 8026498: 681b ldr r3, [r3, #0] + 802649a: 33a8 adds r3, #168 ; 0xa8 + 802649c: 2208 movs r2, #8 + 802649e: 4619 mov r1, r3 + 80264a0: 6838 ldr r0, [r7, #0] + 80264a2: f7e7 f9f1 bl 800d888 lv_obj_add_style(obj, &styles->calendar_btnm_day, LV_PART_ITEMS); - 802653a: 4b3d ldr r3, [pc, #244] ; (8026630 ) - 802653c: 681b ldr r3, [r3, #0] - 802653e: f503 73c4 add.w r3, r3, #392 ; 0x188 - 8026542: f44f 22a0 mov.w r2, #327680 ; 0x50000 - 8026546: 4619 mov r1, r3 - 8026548: 6838 ldr r0, [r7, #0] - 802654a: f7e7 f9d3 bl 800d8f4 + 80264a6: 4b3d ldr r3, [pc, #244] ; (802659c ) + 80264a8: 681b ldr r3, [r3, #0] + 80264aa: f503 73c4 add.w r3, r3, #392 ; 0x188 + 80264ae: f44f 22a0 mov.w r2, #327680 ; 0x50000 + 80264b2: 4619 mov r1, r3 + 80264b4: 6838 ldr r0, [r7, #0] + 80264b6: f7e7 f9e7 bl 800d888 lv_obj_add_style(obj, &styles->pressed, LV_PART_ITEMS | LV_STATE_PRESSED); - 802654e: 4b38 ldr r3, [pc, #224] ; (8026630 ) - 8026550: 681b ldr r3, [r3, #0] - 8026552: 3358 adds r3, #88 ; 0x58 - 8026554: 4a37 ldr r2, [pc, #220] ; (8026634 ) - 8026556: 4619 mov r1, r3 - 8026558: 6838 ldr r0, [r7, #0] - 802655a: f7e7 f9cb bl 800d8f4 + 80264ba: 4b38 ldr r3, [pc, #224] ; (802659c ) + 80264bc: 681b ldr r3, [r3, #0] + 80264be: 3358 adds r3, #88 ; 0x58 + 80264c0: 4a37 ldr r2, [pc, #220] ; (80265a0 ) + 80264c2: 4619 mov r1, r3 + 80264c4: 6838 ldr r0, [r7, #0] + 80264c6: f7e7 f9df bl 800d888 lv_obj_add_style(obj, &styles->disabled, LV_PART_ITEMS | LV_STATE_DISABLED); - 802655e: 4b34 ldr r3, [pc, #208] ; (8026630 ) - 8026560: 681b ldr r3, [r3, #0] - 8026562: 3360 adds r3, #96 ; 0x60 - 8026564: 4a34 ldr r2, [pc, #208] ; (8026638 ) - 8026566: 4619 mov r1, r3 - 8026568: 6838 ldr r0, [r7, #0] - 802656a: f7e7 f9c3 bl 800d8f4 + 80264ca: 4b34 ldr r3, [pc, #208] ; (802659c ) + 80264cc: 681b ldr r3, [r3, #0] + 80264ce: 3360 adds r3, #96 ; 0x60 + 80264d0: 4a34 ldr r2, [pc, #208] ; (80265a4 ) + 80264d2: 4619 mov r1, r3 + 80264d4: 6838 ldr r0, [r7, #0] + 80264d6: f7e7 f9d7 bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_PART_ITEMS | LV_STATE_FOCUS_KEY); - 802656e: 4b30 ldr r3, [pc, #192] ; (8026630 ) - 8026570: 681b ldr r3, [r3, #0] - 8026572: 33a0 adds r3, #160 ; 0xa0 - 8026574: 4a32 ldr r2, [pc, #200] ; (8026640 ) - 8026576: 4619 mov r1, r3 - 8026578: 6838 ldr r0, [r7, #0] - 802657a: f7e7 f9bb bl 800d8f4 + 80264da: 4b30 ldr r3, [pc, #192] ; (802659c ) + 80264dc: 681b ldr r3, [r3, #0] + 80264de: 33a0 adds r3, #160 ; 0xa0 + 80264e0: 4a32 ldr r2, [pc, #200] ; (80265ac ) + 80264e2: 4619 mov r1, r3 + 80264e4: 6838 ldr r0, [r7, #0] + 80264e6: f7e7 f9cf bl 800d888 lv_obj_add_style(obj, &styles->outline_secondary, LV_PART_ITEMS | LV_STATE_EDITED); - 802657e: 4b2c ldr r3, [pc, #176] ; (8026630 ) - 8026580: 681b ldr r3, [r3, #0] - 8026582: 33a8 adds r3, #168 ; 0xa8 - 8026584: 4a2f ldr r2, [pc, #188] ; (8026644 ) - 8026586: 4619 mov r1, r3 - 8026588: 6838 ldr r0, [r7, #0] - 802658a: f7e7 f9b3 bl 800d8f4 + 80264ea: 4b2c ldr r3, [pc, #176] ; (802659c ) + 80264ec: 681b ldr r3, [r3, #0] + 80264ee: 33a8 adds r3, #168 ; 0xa8 + 80264f0: 4a2f ldr r2, [pc, #188] ; (80265b0 ) + 80264f2: 4619 mov r1, r3 + 80264f4: 6838 ldr r0, [r7, #0] + 80264f6: f7e7 f9c7 bl 800d888 return; - 802658e: f000 bfde b.w 802754e + 80264fa: f000 bfde b.w 80274ba } #endif lv_obj_add_style(obj, &styles->card, 0); - 8026592: 4b27 ldr r3, [pc, #156] ; (8026630 ) - 8026594: 681b ldr r3, [r3, #0] - 8026596: 3318 adds r3, #24 - 8026598: 2200 movs r2, #0 - 802659a: 4619 mov r1, r3 - 802659c: 6838 ldr r0, [r7, #0] - 802659e: f7e7 f9a9 bl 800d8f4 + 80264fe: 4b27 ldr r3, [pc, #156] ; (802659c ) + 8026500: 681b ldr r3, [r3, #0] + 8026502: 3318 adds r3, #24 + 8026504: 2200 movs r2, #0 + 8026506: 4619 mov r1, r3 + 8026508: 6838 ldr r0, [r7, #0] + 802650a: f7e7 f9bd bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_STATE_FOCUS_KEY); - 80265a2: 4b23 ldr r3, [pc, #140] ; (8026630 ) - 80265a4: 681b ldr r3, [r3, #0] - 80265a6: 33a0 adds r3, #160 ; 0xa0 - 80265a8: 2204 movs r2, #4 - 80265aa: 4619 mov r1, r3 - 80265ac: 6838 ldr r0, [r7, #0] - 80265ae: f7e7 f9a1 bl 800d8f4 + 802650e: 4b23 ldr r3, [pc, #140] ; (802659c ) + 8026510: 681b ldr r3, [r3, #0] + 8026512: 33a0 adds r3, #160 ; 0xa0 + 8026514: 2204 movs r2, #4 + 8026516: 4619 mov r1, r3 + 8026518: 6838 ldr r0, [r7, #0] + 802651a: f7e7 f9b5 bl 800d888 lv_obj_add_style(obj, &styles->outline_secondary, LV_STATE_EDITED); - 80265b2: 4b1f ldr r3, [pc, #124] ; (8026630 ) - 80265b4: 681b ldr r3, [r3, #0] - 80265b6: 33a8 adds r3, #168 ; 0xa8 - 80265b8: 2208 movs r2, #8 - 80265ba: 4619 mov r1, r3 - 80265bc: 6838 ldr r0, [r7, #0] - 80265be: f7e7 f999 bl 800d8f4 + 802651e: 4b1f ldr r3, [pc, #124] ; (802659c ) + 8026520: 681b ldr r3, [r3, #0] + 8026522: 33a8 adds r3, #168 ; 0xa8 + 8026524: 2208 movs r2, #8 + 8026526: 4619 mov r1, r3 + 8026528: 6838 ldr r0, [r7, #0] + 802652a: f7e7 f9ad bl 800d888 lv_obj_add_style(obj, &styles->btn, LV_PART_ITEMS); - 80265c2: 4b1b ldr r3, [pc, #108] ; (8026630 ) - 80265c4: 681b ldr r3, [r3, #0] - 80265c6: 3320 adds r3, #32 - 80265c8: f44f 22a0 mov.w r2, #327680 ; 0x50000 - 80265cc: 4619 mov r1, r3 - 80265ce: 6838 ldr r0, [r7, #0] - 80265d0: f7e7 f990 bl 800d8f4 + 802652e: 4b1b ldr r3, [pc, #108] ; (802659c ) + 8026530: 681b ldr r3, [r3, #0] + 8026532: 3320 adds r3, #32 + 8026534: f44f 22a0 mov.w r2, #327680 ; 0x50000 + 8026538: 4619 mov r1, r3 + 802653a: 6838 ldr r0, [r7, #0] + 802653c: f7e7 f9a4 bl 800d888 lv_obj_add_style(obj, &styles->disabled, LV_PART_ITEMS | LV_STATE_DISABLED); - 80265d4: 4b16 ldr r3, [pc, #88] ; (8026630 ) - 80265d6: 681b ldr r3, [r3, #0] - 80265d8: 3360 adds r3, #96 ; 0x60 - 80265da: 4a17 ldr r2, [pc, #92] ; (8026638 ) - 80265dc: 4619 mov r1, r3 - 80265de: 6838 ldr r0, [r7, #0] - 80265e0: f7e7 f988 bl 800d8f4 + 8026540: 4b16 ldr r3, [pc, #88] ; (802659c ) + 8026542: 681b ldr r3, [r3, #0] + 8026544: 3360 adds r3, #96 ; 0x60 + 8026546: 4a17 ldr r2, [pc, #92] ; (80265a4 ) + 8026548: 4619 mov r1, r3 + 802654a: 6838 ldr r0, [r7, #0] + 802654c: f7e7 f99c bl 800d888 lv_obj_add_style(obj, &styles->pressed, LV_PART_ITEMS | LV_STATE_PRESSED); - 80265e4: 4b12 ldr r3, [pc, #72] ; (8026630 ) - 80265e6: 681b ldr r3, [r3, #0] - 80265e8: 3358 adds r3, #88 ; 0x58 - 80265ea: 4a12 ldr r2, [pc, #72] ; (8026634 ) - 80265ec: 4619 mov r1, r3 - 80265ee: 6838 ldr r0, [r7, #0] - 80265f0: f7e7 f980 bl 800d8f4 + 8026550: 4b12 ldr r3, [pc, #72] ; (802659c ) + 8026552: 681b ldr r3, [r3, #0] + 8026554: 3358 adds r3, #88 ; 0x58 + 8026556: 4a12 ldr r2, [pc, #72] ; (80265a0 ) + 8026558: 4619 mov r1, r3 + 802655a: 6838 ldr r0, [r7, #0] + 802655c: f7e7 f994 bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary, LV_PART_ITEMS | LV_STATE_CHECKED); - 80265f4: 4b0e ldr r3, [pc, #56] ; (8026630 ) - 80265f6: 681b ldr r3, [r3, #0] - 80265f8: 3328 adds r3, #40 ; 0x28 - 80265fa: 4a10 ldr r2, [pc, #64] ; (802663c ) - 80265fc: 4619 mov r1, r3 - 80265fe: 6838 ldr r0, [r7, #0] - 8026600: f7e7 f978 bl 800d8f4 + 8026560: 4b0e ldr r3, [pc, #56] ; (802659c ) + 8026562: 681b ldr r3, [r3, #0] + 8026564: 3328 adds r3, #40 ; 0x28 + 8026566: 4a10 ldr r2, [pc, #64] ; (80265a8 ) + 8026568: 4619 mov r1, r3 + 802656a: 6838 ldr r0, [r7, #0] + 802656c: f7e7 f98c bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_PART_ITEMS | LV_STATE_FOCUS_KEY); - 8026604: 4b0a ldr r3, [pc, #40] ; (8026630 ) - 8026606: 681b ldr r3, [r3, #0] - 8026608: 33a0 adds r3, #160 ; 0xa0 - 802660a: 4a0d ldr r2, [pc, #52] ; (8026640 ) - 802660c: 4619 mov r1, r3 - 802660e: 6838 ldr r0, [r7, #0] - 8026610: f7e7 f970 bl 800d8f4 + 8026570: 4b0a ldr r3, [pc, #40] ; (802659c ) + 8026572: 681b ldr r3, [r3, #0] + 8026574: 33a0 adds r3, #160 ; 0xa0 + 8026576: 4a0d ldr r2, [pc, #52] ; (80265ac ) + 8026578: 4619 mov r1, r3 + 802657a: 6838 ldr r0, [r7, #0] + 802657c: f7e7 f984 bl 800d888 lv_obj_add_style(obj, &styles->outline_secondary, LV_PART_ITEMS | LV_STATE_EDITED); - 8026614: 4b06 ldr r3, [pc, #24] ; (8026630 ) - 8026616: 681b ldr r3, [r3, #0] - 8026618: 33a8 adds r3, #168 ; 0xa8 - 802661a: 4a0a ldr r2, [pc, #40] ; (8026644 ) - 802661c: 4619 mov r1, r3 - 802661e: 6838 ldr r0, [r7, #0] - 8026620: f7e7 f968 bl 800d8f4 - 8026624: f000 bf93 b.w 802754e - 8026628: 08070a00 .word 0x08070a00 - 802662c: 0806d14c .word 0x0806d14c - 8026630: 20001c4c .word 0x20001c4c - 8026634: 00050020 .word 0x00050020 - 8026638: 00050080 .word 0x00050080 - 802663c: 00050001 .word 0x00050001 - 8026640: 00050004 .word 0x00050004 - 8026644: 00050008 .word 0x00050008 - 8026648: 0806d1bc .word 0x0806d1bc - 802664c: 0806cba4 .word 0x0806cba4 + 8026580: 4b06 ldr r3, [pc, #24] ; (802659c ) + 8026582: 681b ldr r3, [r3, #0] + 8026584: 33a8 adds r3, #168 ; 0xa8 + 8026586: 4a0a ldr r2, [pc, #40] ; (80265b0 ) + 8026588: 4619 mov r1, r3 + 802658a: 6838 ldr r0, [r7, #0] + 802658c: f7e7 f97c bl 800d888 + 8026590: f000 bf93 b.w 80274ba + 8026594: 08070958 .word 0x08070958 + 8026598: 0806d0a4 .word 0x0806d0a4 + 802659c: 20001c4c .word 0x20001c4c + 80265a0: 00050020 .word 0x00050020 + 80265a4: 00050080 .word 0x00050080 + 80265a8: 00050001 .word 0x00050001 + 80265ac: 00050004 .word 0x00050004 + 80265b0: 00050008 .word 0x00050008 + 80265b4: 0806d114 .word 0x0806d114 + 80265b8: 0806cafc .word 0x0806cafc } #endif #if LV_USE_BAR else if(lv_obj_check_type(obj, &lv_bar_class)) { - 8026650: 49b5 ldr r1, [pc, #724] ; (8026928 ) - 8026652: 6838 ldr r0, [r7, #0] - 8026654: f7e0 f924 bl 80068a0 - 8026658: 4603 mov r3, r0 - 802665a: 2b00 cmp r3, #0 - 802665c: d033 beq.n 80266c6 + 80265bc: 49b5 ldr r1, [pc, #724] ; (8026894 ) + 80265be: 6838 ldr r0, [r7, #0] + 80265c0: f7e0 f938 bl 8006834 + 80265c4: 4603 mov r3, r0 + 80265c6: 2b00 cmp r3, #0 + 80265c8: d033 beq.n 8026632 lv_obj_add_style(obj, &styles->bg_color_primary_muted, 0); - 802665e: 4bb3 ldr r3, [pc, #716] ; (802692c ) - 8026660: 681b ldr r3, [r3, #0] - 8026662: 3330 adds r3, #48 ; 0x30 - 8026664: 2200 movs r2, #0 - 8026666: 4619 mov r1, r3 - 8026668: 6838 ldr r0, [r7, #0] - 802666a: f7e7 f943 bl 800d8f4 + 80265ca: 4bb3 ldr r3, [pc, #716] ; (8026898 ) + 80265cc: 681b ldr r3, [r3, #0] + 80265ce: 3330 adds r3, #48 ; 0x30 + 80265d0: 2200 movs r2, #0 + 80265d2: 4619 mov r1, r3 + 80265d4: 6838 ldr r0, [r7, #0] + 80265d6: f7e7 f957 bl 800d888 lv_obj_add_style(obj, &styles->circle, 0); - 802666e: 4baf ldr r3, [pc, #700] ; (802692c ) - 8026670: 681b ldr r3, [r3, #0] - 8026672: 33b0 adds r3, #176 ; 0xb0 - 8026674: 2200 movs r2, #0 - 8026676: 4619 mov r1, r3 - 8026678: 6838 ldr r0, [r7, #0] - 802667a: f7e7 f93b bl 800d8f4 + 80265da: 4baf ldr r3, [pc, #700] ; (8026898 ) + 80265dc: 681b ldr r3, [r3, #0] + 80265de: 33b0 adds r3, #176 ; 0xb0 + 80265e0: 2200 movs r2, #0 + 80265e2: 4619 mov r1, r3 + 80265e4: 6838 ldr r0, [r7, #0] + 80265e6: f7e7 f94f bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_STATE_FOCUS_KEY); - 802667e: 4bab ldr r3, [pc, #684] ; (802692c ) - 8026680: 681b ldr r3, [r3, #0] - 8026682: 33a0 adds r3, #160 ; 0xa0 - 8026684: 2204 movs r2, #4 - 8026686: 4619 mov r1, r3 - 8026688: 6838 ldr r0, [r7, #0] - 802668a: f7e7 f933 bl 800d8f4 + 80265ea: 4bab ldr r3, [pc, #684] ; (8026898 ) + 80265ec: 681b ldr r3, [r3, #0] + 80265ee: 33a0 adds r3, #160 ; 0xa0 + 80265f0: 2204 movs r2, #4 + 80265f2: 4619 mov r1, r3 + 80265f4: 6838 ldr r0, [r7, #0] + 80265f6: f7e7 f947 bl 800d888 lv_obj_add_style(obj, &styles->outline_secondary, LV_STATE_EDITED); - 802668e: 4ba7 ldr r3, [pc, #668] ; (802692c ) - 8026690: 681b ldr r3, [r3, #0] - 8026692: 33a8 adds r3, #168 ; 0xa8 - 8026694: 2208 movs r2, #8 - 8026696: 4619 mov r1, r3 - 8026698: 6838 ldr r0, [r7, #0] - 802669a: f7e7 f92b bl 800d8f4 + 80265fa: 4ba7 ldr r3, [pc, #668] ; (8026898 ) + 80265fc: 681b ldr r3, [r3, #0] + 80265fe: 33a8 adds r3, #168 ; 0xa8 + 8026600: 2208 movs r2, #8 + 8026602: 4619 mov r1, r3 + 8026604: 6838 ldr r0, [r7, #0] + 8026606: f7e7 f93f bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary, LV_PART_INDICATOR); - 802669e: 4ba3 ldr r3, [pc, #652] ; (802692c ) - 80266a0: 681b ldr r3, [r3, #0] - 80266a2: 3328 adds r3, #40 ; 0x28 - 80266a4: f44f 3200 mov.w r2, #131072 ; 0x20000 - 80266a8: 4619 mov r1, r3 - 80266aa: 6838 ldr r0, [r7, #0] - 80266ac: f7e7 f922 bl 800d8f4 + 802660a: 4ba3 ldr r3, [pc, #652] ; (8026898 ) + 802660c: 681b ldr r3, [r3, #0] + 802660e: 3328 adds r3, #40 ; 0x28 + 8026610: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8026614: 4619 mov r1, r3 + 8026616: 6838 ldr r0, [r7, #0] + 8026618: f7e7 f936 bl 800d888 lv_obj_add_style(obj, &styles->circle, LV_PART_INDICATOR); - 80266b0: 4b9e ldr r3, [pc, #632] ; (802692c ) - 80266b2: 681b ldr r3, [r3, #0] - 80266b4: 33b0 adds r3, #176 ; 0xb0 - 80266b6: f44f 3200 mov.w r2, #131072 ; 0x20000 - 80266ba: 4619 mov r1, r3 - 80266bc: 6838 ldr r0, [r7, #0] - 80266be: f7e7 f919 bl 800d8f4 - 80266c2: f000 bf44 b.w 802754e + 802661c: 4b9e ldr r3, [pc, #632] ; (8026898 ) + 802661e: 681b ldr r3, [r3, #0] + 8026620: 33b0 adds r3, #176 ; 0xb0 + 8026622: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8026626: 4619 mov r1, r3 + 8026628: 6838 ldr r0, [r7, #0] + 802662a: f7e7 f92d bl 800d888 + 802662e: f000 bf44 b.w 80274ba } #endif #if LV_USE_SLIDER else if(lv_obj_check_type(obj, &lv_slider_class)) { - 80266c6: 499a ldr r1, [pc, #616] ; (8026930 ) - 80266c8: 6838 ldr r0, [r7, #0] - 80266ca: f7e0 f8e9 bl 80068a0 - 80266ce: 4603 mov r3, r0 - 80266d0: 2b00 cmp r3, #0 - 80266d2: d055 beq.n 8026780 + 8026632: 499a ldr r1, [pc, #616] ; (802689c ) + 8026634: 6838 ldr r0, [r7, #0] + 8026636: f7e0 f8fd bl 8006834 + 802663a: 4603 mov r3, r0 + 802663c: 2b00 cmp r3, #0 + 802663e: d055 beq.n 80266ec lv_obj_add_style(obj, &styles->bg_color_primary_muted, 0); - 80266d4: 4b95 ldr r3, [pc, #596] ; (802692c ) - 80266d6: 681b ldr r3, [r3, #0] - 80266d8: 3330 adds r3, #48 ; 0x30 - 80266da: 2200 movs r2, #0 - 80266dc: 4619 mov r1, r3 - 80266de: 6838 ldr r0, [r7, #0] - 80266e0: f7e7 f908 bl 800d8f4 + 8026640: 4b95 ldr r3, [pc, #596] ; (8026898 ) + 8026642: 681b ldr r3, [r3, #0] + 8026644: 3330 adds r3, #48 ; 0x30 + 8026646: 2200 movs r2, #0 + 8026648: 4619 mov r1, r3 + 802664a: 6838 ldr r0, [r7, #0] + 802664c: f7e7 f91c bl 800d888 lv_obj_add_style(obj, &styles->circle, 0); - 80266e4: 4b91 ldr r3, [pc, #580] ; (802692c ) - 80266e6: 681b ldr r3, [r3, #0] - 80266e8: 33b0 adds r3, #176 ; 0xb0 - 80266ea: 2200 movs r2, #0 - 80266ec: 4619 mov r1, r3 - 80266ee: 6838 ldr r0, [r7, #0] - 80266f0: f7e7 f900 bl 800d8f4 + 8026650: 4b91 ldr r3, [pc, #580] ; (8026898 ) + 8026652: 681b ldr r3, [r3, #0] + 8026654: 33b0 adds r3, #176 ; 0xb0 + 8026656: 2200 movs r2, #0 + 8026658: 4619 mov r1, r3 + 802665a: 6838 ldr r0, [r7, #0] + 802665c: f7e7 f914 bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_STATE_FOCUS_KEY); - 80266f4: 4b8d ldr r3, [pc, #564] ; (802692c ) - 80266f6: 681b ldr r3, [r3, #0] - 80266f8: 33a0 adds r3, #160 ; 0xa0 - 80266fa: 2204 movs r2, #4 - 80266fc: 4619 mov r1, r3 - 80266fe: 6838 ldr r0, [r7, #0] - 8026700: f7e7 f8f8 bl 800d8f4 + 8026660: 4b8d ldr r3, [pc, #564] ; (8026898 ) + 8026662: 681b ldr r3, [r3, #0] + 8026664: 33a0 adds r3, #160 ; 0xa0 + 8026666: 2204 movs r2, #4 + 8026668: 4619 mov r1, r3 + 802666a: 6838 ldr r0, [r7, #0] + 802666c: f7e7 f90c bl 800d888 lv_obj_add_style(obj, &styles->outline_secondary, LV_STATE_EDITED); - 8026704: 4b89 ldr r3, [pc, #548] ; (802692c ) - 8026706: 681b ldr r3, [r3, #0] - 8026708: 33a8 adds r3, #168 ; 0xa8 - 802670a: 2208 movs r2, #8 - 802670c: 4619 mov r1, r3 - 802670e: 6838 ldr r0, [r7, #0] - 8026710: f7e7 f8f0 bl 800d8f4 + 8026670: 4b89 ldr r3, [pc, #548] ; (8026898 ) + 8026672: 681b ldr r3, [r3, #0] + 8026674: 33a8 adds r3, #168 ; 0xa8 + 8026676: 2208 movs r2, #8 + 8026678: 4619 mov r1, r3 + 802667a: 6838 ldr r0, [r7, #0] + 802667c: f7e7 f904 bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary, LV_PART_INDICATOR); - 8026714: 4b85 ldr r3, [pc, #532] ; (802692c ) - 8026716: 681b ldr r3, [r3, #0] - 8026718: 3328 adds r3, #40 ; 0x28 - 802671a: f44f 3200 mov.w r2, #131072 ; 0x20000 - 802671e: 4619 mov r1, r3 - 8026720: 6838 ldr r0, [r7, #0] - 8026722: f7e7 f8e7 bl 800d8f4 + 8026680: 4b85 ldr r3, [pc, #532] ; (8026898 ) + 8026682: 681b ldr r3, [r3, #0] + 8026684: 3328 adds r3, #40 ; 0x28 + 8026686: f44f 3200 mov.w r2, #131072 ; 0x20000 + 802668a: 4619 mov r1, r3 + 802668c: 6838 ldr r0, [r7, #0] + 802668e: f7e7 f8fb bl 800d888 lv_obj_add_style(obj, &styles->circle, LV_PART_INDICATOR); - 8026726: 4b81 ldr r3, [pc, #516] ; (802692c ) - 8026728: 681b ldr r3, [r3, #0] - 802672a: 33b0 adds r3, #176 ; 0xb0 - 802672c: f44f 3200 mov.w r2, #131072 ; 0x20000 - 8026730: 4619 mov r1, r3 - 8026732: 6838 ldr r0, [r7, #0] - 8026734: f7e7 f8de bl 800d8f4 + 8026692: 4b81 ldr r3, [pc, #516] ; (8026898 ) + 8026694: 681b ldr r3, [r3, #0] + 8026696: 33b0 adds r3, #176 ; 0xb0 + 8026698: f44f 3200 mov.w r2, #131072 ; 0x20000 + 802669c: 4619 mov r1, r3 + 802669e: 6838 ldr r0, [r7, #0] + 80266a0: f7e7 f8f2 bl 800d888 lv_obj_add_style(obj, &styles->knob, LV_PART_KNOB); - 8026738: 4b7c ldr r3, [pc, #496] ; (802692c ) - 802673a: 681b ldr r3, [r3, #0] - 802673c: 33f0 adds r3, #240 ; 0xf0 - 802673e: f44f 3240 mov.w r2, #196608 ; 0x30000 - 8026742: 4619 mov r1, r3 - 8026744: 6838 ldr r0, [r7, #0] - 8026746: f7e7 f8d5 bl 800d8f4 + 80266a4: 4b7c ldr r3, [pc, #496] ; (8026898 ) + 80266a6: 681b ldr r3, [r3, #0] + 80266a8: 33f0 adds r3, #240 ; 0xf0 + 80266aa: f44f 3240 mov.w r2, #196608 ; 0x30000 + 80266ae: 4619 mov r1, r3 + 80266b0: 6838 ldr r0, [r7, #0] + 80266b2: f7e7 f8e9 bl 800d888 #if LV_THEME_DEFAULT_GROW lv_obj_add_style(obj, &styles->grow, LV_PART_KNOB | LV_STATE_PRESSED); - 802674a: 4b78 ldr r3, [pc, #480] ; (802692c ) - 802674c: 681b ldr r3, [r3, #0] - 802674e: 33c8 adds r3, #200 ; 0xc8 - 8026750: 4a78 ldr r2, [pc, #480] ; (8026934 ) - 8026752: 4619 mov r1, r3 - 8026754: 6838 ldr r0, [r7, #0] - 8026756: f7e7 f8cd bl 800d8f4 + 80266b6: 4b78 ldr r3, [pc, #480] ; (8026898 ) + 80266b8: 681b ldr r3, [r3, #0] + 80266ba: 33c8 adds r3, #200 ; 0xc8 + 80266bc: 4a78 ldr r2, [pc, #480] ; (80268a0 ) + 80266be: 4619 mov r1, r3 + 80266c0: 6838 ldr r0, [r7, #0] + 80266c2: f7e7 f8e1 bl 800d888 #endif lv_obj_add_style(obj, &styles->transition_delayed, LV_PART_KNOB); - 802675a: 4b74 ldr r3, [pc, #464] ; (802692c ) - 802675c: 681b ldr r3, [r3, #0] - 802675e: 33d0 adds r3, #208 ; 0xd0 - 8026760: f44f 3240 mov.w r2, #196608 ; 0x30000 - 8026764: 4619 mov r1, r3 - 8026766: 6838 ldr r0, [r7, #0] - 8026768: f7e7 f8c4 bl 800d8f4 + 80266c6: 4b74 ldr r3, [pc, #464] ; (8026898 ) + 80266c8: 681b ldr r3, [r3, #0] + 80266ca: 33d0 adds r3, #208 ; 0xd0 + 80266cc: f44f 3240 mov.w r2, #196608 ; 0x30000 + 80266d0: 4619 mov r1, r3 + 80266d2: 6838 ldr r0, [r7, #0] + 80266d4: f7e7 f8d8 bl 800d888 lv_obj_add_style(obj, &styles->transition_normal, LV_PART_KNOB | LV_STATE_PRESSED); - 802676c: 4b6f ldr r3, [pc, #444] ; (802692c ) - 802676e: 681b ldr r3, [r3, #0] - 8026770: 33d8 adds r3, #216 ; 0xd8 - 8026772: 4a70 ldr r2, [pc, #448] ; (8026934 ) - 8026774: 4619 mov r1, r3 - 8026776: 6838 ldr r0, [r7, #0] - 8026778: f7e7 f8bc bl 800d8f4 - 802677c: f000 bee7 b.w 802754e + 80266d8: 4b6f ldr r3, [pc, #444] ; (8026898 ) + 80266da: 681b ldr r3, [r3, #0] + 80266dc: 33d8 adds r3, #216 ; 0xd8 + 80266de: 4a70 ldr r2, [pc, #448] ; (80268a0 ) + 80266e0: 4619 mov r1, r3 + 80266e2: 6838 ldr r0, [r7, #0] + 80266e4: f7e7 f8d0 bl 800d888 + 80266e8: f000 bee7 b.w 80274ba } #endif #if LV_USE_TABLE else if(lv_obj_check_type(obj, &lv_table_class)) { - 8026780: 496d ldr r1, [pc, #436] ; (8026938 ) - 8026782: 6838 ldr r0, [r7, #0] - 8026784: f7e0 f88c bl 80068a0 - 8026788: 4603 mov r3, r0 - 802678a: 2b00 cmp r3, #0 - 802678c: d06e beq.n 802686c + 80266ec: 496d ldr r1, [pc, #436] ; (80268a4 ) + 80266ee: 6838 ldr r0, [r7, #0] + 80266f0: f7e0 f8a0 bl 8006834 + 80266f4: 4603 mov r3, r0 + 80266f6: 2b00 cmp r3, #0 + 80266f8: d06e beq.n 80267d8 lv_obj_add_style(obj, &styles->card, 0); - 802678e: 4b67 ldr r3, [pc, #412] ; (802692c ) - 8026790: 681b ldr r3, [r3, #0] - 8026792: 3318 adds r3, #24 - 8026794: 2200 movs r2, #0 - 8026796: 4619 mov r1, r3 - 8026798: 6838 ldr r0, [r7, #0] - 802679a: f7e7 f8ab bl 800d8f4 + 80266fa: 4b67 ldr r3, [pc, #412] ; (8026898 ) + 80266fc: 681b ldr r3, [r3, #0] + 80266fe: 3318 adds r3, #24 + 8026700: 2200 movs r2, #0 + 8026702: 4619 mov r1, r3 + 8026704: 6838 ldr r0, [r7, #0] + 8026706: f7e7 f8bf bl 800d888 lv_obj_add_style(obj, &styles->pad_zero, 0); - 802679e: 4b63 ldr r3, [pc, #396] ; (802692c ) - 80267a0: 681b ldr r3, [r3, #0] - 80267a2: 3368 adds r3, #104 ; 0x68 - 80267a4: 2200 movs r2, #0 - 80267a6: 4619 mov r1, r3 - 80267a8: 6838 ldr r0, [r7, #0] - 80267aa: f7e7 f8a3 bl 800d8f4 + 802670a: 4b63 ldr r3, [pc, #396] ; (8026898 ) + 802670c: 681b ldr r3, [r3, #0] + 802670e: 3368 adds r3, #104 ; 0x68 + 8026710: 2200 movs r2, #0 + 8026712: 4619 mov r1, r3 + 8026714: 6838 ldr r0, [r7, #0] + 8026716: f7e7 f8b7 bl 800d888 lv_obj_add_style(obj, &styles->no_radius, 0); - 80267ae: 4b5f ldr r3, [pc, #380] ; (802692c ) - 80267b0: 681b ldr r3, [r3, #0] - 80267b2: 33b8 adds r3, #184 ; 0xb8 - 80267b4: 2200 movs r2, #0 - 80267b6: 4619 mov r1, r3 - 80267b8: 6838 ldr r0, [r7, #0] - 80267ba: f7e7 f89b bl 800d8f4 + 802671a: 4b5f ldr r3, [pc, #380] ; (8026898 ) + 802671c: 681b ldr r3, [r3, #0] + 802671e: 33b8 adds r3, #184 ; 0xb8 + 8026720: 2200 movs r2, #0 + 8026722: 4619 mov r1, r3 + 8026724: 6838 ldr r0, [r7, #0] + 8026726: f7e7 f8af bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_STATE_FOCUS_KEY); - 80267be: 4b5b ldr r3, [pc, #364] ; (802692c ) - 80267c0: 681b ldr r3, [r3, #0] - 80267c2: 33a0 adds r3, #160 ; 0xa0 - 80267c4: 2204 movs r2, #4 - 80267c6: 4619 mov r1, r3 - 80267c8: 6838 ldr r0, [r7, #0] - 80267ca: f7e7 f893 bl 800d8f4 + 802672a: 4b5b ldr r3, [pc, #364] ; (8026898 ) + 802672c: 681b ldr r3, [r3, #0] + 802672e: 33a0 adds r3, #160 ; 0xa0 + 8026730: 2204 movs r2, #4 + 8026732: 4619 mov r1, r3 + 8026734: 6838 ldr r0, [r7, #0] + 8026736: f7e7 f8a7 bl 800d888 lv_obj_add_style(obj, &styles->outline_secondary, LV_STATE_EDITED); - 80267ce: 4b57 ldr r3, [pc, #348] ; (802692c ) - 80267d0: 681b ldr r3, [r3, #0] - 80267d2: 33a8 adds r3, #168 ; 0xa8 - 80267d4: 2208 movs r2, #8 - 80267d6: 4619 mov r1, r3 - 80267d8: 6838 ldr r0, [r7, #0] - 80267da: f7e7 f88b bl 800d8f4 + 802673a: 4b57 ldr r3, [pc, #348] ; (8026898 ) + 802673c: 681b ldr r3, [r3, #0] + 802673e: 33a8 adds r3, #168 ; 0xa8 + 8026740: 2208 movs r2, #8 + 8026742: 4619 mov r1, r3 + 8026744: 6838 ldr r0, [r7, #0] + 8026746: f7e7 f89f bl 800d888 lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); - 80267de: 4b53 ldr r3, [pc, #332] ; (802692c ) - 80267e0: 681b ldr r3, [r3, #0] - 80267e2: 3308 adds r3, #8 - 80267e4: f44f 3280 mov.w r2, #65536 ; 0x10000 - 80267e8: 4619 mov r1, r3 - 80267ea: 6838 ldr r0, [r7, #0] - 80267ec: f7e7 f882 bl 800d8f4 + 802674a: 4b53 ldr r3, [pc, #332] ; (8026898 ) + 802674c: 681b ldr r3, [r3, #0] + 802674e: 3308 adds r3, #8 + 8026750: f44f 3280 mov.w r2, #65536 ; 0x10000 + 8026754: 4619 mov r1, r3 + 8026756: 6838 ldr r0, [r7, #0] + 8026758: f7e7 f896 bl 800d888 lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); - 80267f0: 4b4e ldr r3, [pc, #312] ; (802692c ) - 80267f2: 681b ldr r3, [r3, #0] - 80267f4: 3310 adds r3, #16 - 80267f6: 4a51 ldr r2, [pc, #324] ; (802693c ) - 80267f8: 4619 mov r1, r3 - 80267fa: 6838 ldr r0, [r7, #0] - 80267fc: f7e7 f87a bl 800d8f4 + 802675c: 4b4e ldr r3, [pc, #312] ; (8026898 ) + 802675e: 681b ldr r3, [r3, #0] + 8026760: 3310 adds r3, #16 + 8026762: 4a51 ldr r2, [pc, #324] ; (80268a8 ) + 8026764: 4619 mov r1, r3 + 8026766: 6838 ldr r0, [r7, #0] + 8026768: f7e7 f88e bl 800d888 lv_obj_add_style(obj, &styles->bg_color_white, LV_PART_ITEMS); - 8026800: 4b4a ldr r3, [pc, #296] ; (802692c ) - 8026802: 681b ldr r3, [r3, #0] - 8026804: 3350 adds r3, #80 ; 0x50 - 8026806: f44f 22a0 mov.w r2, #327680 ; 0x50000 - 802680a: 4619 mov r1, r3 - 802680c: 6838 ldr r0, [r7, #0] - 802680e: f7e7 f871 bl 800d8f4 + 802676c: 4b4a ldr r3, [pc, #296] ; (8026898 ) + 802676e: 681b ldr r3, [r3, #0] + 8026770: 3350 adds r3, #80 ; 0x50 + 8026772: f44f 22a0 mov.w r2, #327680 ; 0x50000 + 8026776: 4619 mov r1, r3 + 8026778: 6838 ldr r0, [r7, #0] + 802677a: f7e7 f885 bl 800d888 lv_obj_add_style(obj, &styles->table_cell, LV_PART_ITEMS); - 8026812: 4b46 ldr r3, [pc, #280] ; (802692c ) - 8026814: 681b ldr r3, [r3, #0] - 8026816: f503 73ac add.w r3, r3, #344 ; 0x158 - 802681a: f44f 22a0 mov.w r2, #327680 ; 0x50000 - 802681e: 4619 mov r1, r3 - 8026820: 6838 ldr r0, [r7, #0] - 8026822: f7e7 f867 bl 800d8f4 + 802677e: 4b46 ldr r3, [pc, #280] ; (8026898 ) + 8026780: 681b ldr r3, [r3, #0] + 8026782: f503 73ac add.w r3, r3, #344 ; 0x158 + 8026786: f44f 22a0 mov.w r2, #327680 ; 0x50000 + 802678a: 4619 mov r1, r3 + 802678c: 6838 ldr r0, [r7, #0] + 802678e: f7e7 f87b bl 800d888 lv_obj_add_style(obj, &styles->pad_normal, LV_PART_ITEMS); - 8026826: 4b41 ldr r3, [pc, #260] ; (802692c ) - 8026828: 681b ldr r3, [r3, #0] - 802682a: 3380 adds r3, #128 ; 0x80 - 802682c: f44f 22a0 mov.w r2, #327680 ; 0x50000 - 8026830: 4619 mov r1, r3 - 8026832: 6838 ldr r0, [r7, #0] - 8026834: f7e7 f85e bl 800d8f4 + 8026792: 4b41 ldr r3, [pc, #260] ; (8026898 ) + 8026794: 681b ldr r3, [r3, #0] + 8026796: 3380 adds r3, #128 ; 0x80 + 8026798: f44f 22a0 mov.w r2, #327680 ; 0x50000 + 802679c: 4619 mov r1, r3 + 802679e: 6838 ldr r0, [r7, #0] + 80267a0: f7e7 f872 bl 800d888 lv_obj_add_style(obj, &styles->pressed, LV_PART_ITEMS | LV_STATE_PRESSED); - 8026838: 4b3c ldr r3, [pc, #240] ; (802692c ) - 802683a: 681b ldr r3, [r3, #0] - 802683c: 3358 adds r3, #88 ; 0x58 - 802683e: 4a40 ldr r2, [pc, #256] ; (8026940 ) - 8026840: 4619 mov r1, r3 - 8026842: 6838 ldr r0, [r7, #0] - 8026844: f7e7 f856 bl 800d8f4 + 80267a4: 4b3c ldr r3, [pc, #240] ; (8026898 ) + 80267a6: 681b ldr r3, [r3, #0] + 80267a8: 3358 adds r3, #88 ; 0x58 + 80267aa: 4a40 ldr r2, [pc, #256] ; (80268ac ) + 80267ac: 4619 mov r1, r3 + 80267ae: 6838 ldr r0, [r7, #0] + 80267b0: f7e7 f86a bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary, LV_PART_ITEMS | LV_STATE_FOCUS_KEY); - 8026848: 4b38 ldr r3, [pc, #224] ; (802692c ) - 802684a: 681b ldr r3, [r3, #0] - 802684c: 3328 adds r3, #40 ; 0x28 - 802684e: 4a3d ldr r2, [pc, #244] ; (8026944 ) - 8026850: 4619 mov r1, r3 - 8026852: 6838 ldr r0, [r7, #0] - 8026854: f7e7 f84e bl 800d8f4 + 80267b4: 4b38 ldr r3, [pc, #224] ; (8026898 ) + 80267b6: 681b ldr r3, [r3, #0] + 80267b8: 3328 adds r3, #40 ; 0x28 + 80267ba: 4a3d ldr r2, [pc, #244] ; (80268b0 ) + 80267bc: 4619 mov r1, r3 + 80267be: 6838 ldr r0, [r7, #0] + 80267c0: f7e7 f862 bl 800d888 lv_obj_add_style(obj, &styles->bg_color_secondary, LV_PART_ITEMS | LV_STATE_EDITED); - 8026858: 4b34 ldr r3, [pc, #208] ; (802692c ) - 802685a: 681b ldr r3, [r3, #0] - 802685c: 3338 adds r3, #56 ; 0x38 - 802685e: 4a3a ldr r2, [pc, #232] ; (8026948 ) - 8026860: 4619 mov r1, r3 - 8026862: 6838 ldr r0, [r7, #0] - 8026864: f7e7 f846 bl 800d8f4 - 8026868: f000 be71 b.w 802754e + 80267c4: 4b34 ldr r3, [pc, #208] ; (8026898 ) + 80267c6: 681b ldr r3, [r3, #0] + 80267c8: 3338 adds r3, #56 ; 0x38 + 80267ca: 4a3a ldr r2, [pc, #232] ; (80268b4 ) + 80267cc: 4619 mov r1, r3 + 80267ce: 6838 ldr r0, [r7, #0] + 80267d0: f7e7 f85a bl 800d888 + 80267d4: f000 be71 b.w 80274ba } #endif #if LV_USE_CHECKBOX else if(lv_obj_check_type(obj, &lv_checkbox_class)) { - 802686c: 4937 ldr r1, [pc, #220] ; (802694c ) - 802686e: 6838 ldr r0, [r7, #0] - 8026870: f7e0 f816 bl 80068a0 - 8026874: 4603 mov r3, r0 - 8026876: 2b00 cmp r3, #0 - 8026878: d070 beq.n 802695c + 80267d8: 4937 ldr r1, [pc, #220] ; (80268b8 ) + 80267da: 6838 ldr r0, [r7, #0] + 80267dc: f7e0 f82a bl 8006834 + 80267e0: 4603 mov r3, r0 + 80267e2: 2b00 cmp r3, #0 + 80267e4: d070 beq.n 80268c8 lv_obj_add_style(obj, &styles->pad_gap, 0); - 802687a: 4b2c ldr r3, [pc, #176] ; (802692c ) - 802687c: 681b ldr r3, [r3, #0] - 802687e: 3388 adds r3, #136 ; 0x88 - 8026880: 2200 movs r2, #0 - 8026882: 4619 mov r1, r3 - 8026884: 6838 ldr r0, [r7, #0] - 8026886: f7e7 f835 bl 800d8f4 + 80267e6: 4b2c ldr r3, [pc, #176] ; (8026898 ) + 80267e8: 681b ldr r3, [r3, #0] + 80267ea: 3388 adds r3, #136 ; 0x88 + 80267ec: 2200 movs r2, #0 + 80267ee: 4619 mov r1, r3 + 80267f0: 6838 ldr r0, [r7, #0] + 80267f2: f7e7 f849 bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_STATE_FOCUS_KEY); - 802688a: 4b28 ldr r3, [pc, #160] ; (802692c ) - 802688c: 681b ldr r3, [r3, #0] - 802688e: 33a0 adds r3, #160 ; 0xa0 - 8026890: 2204 movs r2, #4 - 8026892: 4619 mov r1, r3 - 8026894: 6838 ldr r0, [r7, #0] - 8026896: f7e7 f82d bl 800d8f4 + 80267f6: 4b28 ldr r3, [pc, #160] ; (8026898 ) + 80267f8: 681b ldr r3, [r3, #0] + 80267fa: 33a0 adds r3, #160 ; 0xa0 + 80267fc: 2204 movs r2, #4 + 80267fe: 4619 mov r1, r3 + 8026800: 6838 ldr r0, [r7, #0] + 8026802: f7e7 f841 bl 800d888 lv_obj_add_style(obj, &styles->disabled, LV_PART_INDICATOR | LV_STATE_DISABLED); - 802689a: 4b24 ldr r3, [pc, #144] ; (802692c ) - 802689c: 681b ldr r3, [r3, #0] - 802689e: 3360 adds r3, #96 ; 0x60 - 80268a0: 4a2b ldr r2, [pc, #172] ; (8026950 ) - 80268a2: 4619 mov r1, r3 - 80268a4: 6838 ldr r0, [r7, #0] - 80268a6: f7e7 f825 bl 800d8f4 + 8026806: 4b24 ldr r3, [pc, #144] ; (8026898 ) + 8026808: 681b ldr r3, [r3, #0] + 802680a: 3360 adds r3, #96 ; 0x60 + 802680c: 4a2b ldr r2, [pc, #172] ; (80268bc ) + 802680e: 4619 mov r1, r3 + 8026810: 6838 ldr r0, [r7, #0] + 8026812: f7e7 f839 bl 800d888 lv_obj_add_style(obj, &styles->cb_marker, LV_PART_INDICATOR); - 80268aa: 4b20 ldr r3, [pc, #128] ; (802692c ) - 80268ac: 681b ldr r3, [r3, #0] - 80268ae: f503 739c add.w r3, r3, #312 ; 0x138 - 80268b2: f44f 3200 mov.w r2, #131072 ; 0x20000 - 80268b6: 4619 mov r1, r3 - 80268b8: 6838 ldr r0, [r7, #0] - 80268ba: f7e7 f81b bl 800d8f4 + 8026816: 4b20 ldr r3, [pc, #128] ; (8026898 ) + 8026818: 681b ldr r3, [r3, #0] + 802681a: f503 739c add.w r3, r3, #312 ; 0x138 + 802681e: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8026822: 4619 mov r1, r3 + 8026824: 6838 ldr r0, [r7, #0] + 8026826: f7e7 f82f bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary, LV_PART_INDICATOR | LV_STATE_CHECKED); - 80268be: 4b1b ldr r3, [pc, #108] ; (802692c ) - 80268c0: 681b ldr r3, [r3, #0] - 80268c2: 3328 adds r3, #40 ; 0x28 - 80268c4: 4a23 ldr r2, [pc, #140] ; (8026954 ) - 80268c6: 4619 mov r1, r3 - 80268c8: 6838 ldr r0, [r7, #0] - 80268ca: f7e7 f813 bl 800d8f4 + 802682a: 4b1b ldr r3, [pc, #108] ; (8026898 ) + 802682c: 681b ldr r3, [r3, #0] + 802682e: 3328 adds r3, #40 ; 0x28 + 8026830: 4a23 ldr r2, [pc, #140] ; (80268c0 ) + 8026832: 4619 mov r1, r3 + 8026834: 6838 ldr r0, [r7, #0] + 8026836: f7e7 f827 bl 800d888 lv_obj_add_style(obj, &styles->cb_marker_checked, LV_PART_INDICATOR | LV_STATE_CHECKED); - 80268ce: 4b17 ldr r3, [pc, #92] ; (802692c ) - 80268d0: 681b ldr r3, [r3, #0] - 80268d2: f503 73a0 add.w r3, r3, #320 ; 0x140 - 80268d6: 4a1f ldr r2, [pc, #124] ; (8026954 ) - 80268d8: 4619 mov r1, r3 - 80268da: 6838 ldr r0, [r7, #0] - 80268dc: f7e7 f80a bl 800d8f4 + 802683a: 4b17 ldr r3, [pc, #92] ; (8026898 ) + 802683c: 681b ldr r3, [r3, #0] + 802683e: f503 73a0 add.w r3, r3, #320 ; 0x140 + 8026842: 4a1f ldr r2, [pc, #124] ; (80268c0 ) + 8026844: 4619 mov r1, r3 + 8026846: 6838 ldr r0, [r7, #0] + 8026848: f7e7 f81e bl 800d888 lv_obj_add_style(obj, &styles->pressed, LV_PART_INDICATOR | LV_STATE_PRESSED); - 80268e0: 4b12 ldr r3, [pc, #72] ; (802692c ) - 80268e2: 681b ldr r3, [r3, #0] - 80268e4: 3358 adds r3, #88 ; 0x58 - 80268e6: 4a1c ldr r2, [pc, #112] ; (8026958 ) - 80268e8: 4619 mov r1, r3 - 80268ea: 6838 ldr r0, [r7, #0] - 80268ec: f7e7 f802 bl 800d8f4 + 802684c: 4b12 ldr r3, [pc, #72] ; (8026898 ) + 802684e: 681b ldr r3, [r3, #0] + 8026850: 3358 adds r3, #88 ; 0x58 + 8026852: 4a1c ldr r2, [pc, #112] ; (80268c4 ) + 8026854: 4619 mov r1, r3 + 8026856: 6838 ldr r0, [r7, #0] + 8026858: f7e7 f816 bl 800d888 #if LV_THEME_DEFAULT_GROW lv_obj_add_style(obj, &styles->grow, LV_PART_INDICATOR | LV_STATE_PRESSED); - 80268f0: 4b0e ldr r3, [pc, #56] ; (802692c ) - 80268f2: 681b ldr r3, [r3, #0] - 80268f4: 33c8 adds r3, #200 ; 0xc8 - 80268f6: 4a18 ldr r2, [pc, #96] ; (8026958 ) - 80268f8: 4619 mov r1, r3 - 80268fa: 6838 ldr r0, [r7, #0] - 80268fc: f7e6 fffa bl 800d8f4 + 802685c: 4b0e ldr r3, [pc, #56] ; (8026898 ) + 802685e: 681b ldr r3, [r3, #0] + 8026860: 33c8 adds r3, #200 ; 0xc8 + 8026862: 4a18 ldr r2, [pc, #96] ; (80268c4 ) + 8026864: 4619 mov r1, r3 + 8026866: 6838 ldr r0, [r7, #0] + 8026868: f7e7 f80e bl 800d888 #endif lv_obj_add_style(obj, &styles->transition_normal, LV_PART_INDICATOR | LV_STATE_PRESSED); - 8026900: 4b0a ldr r3, [pc, #40] ; (802692c ) - 8026902: 681b ldr r3, [r3, #0] - 8026904: 33d8 adds r3, #216 ; 0xd8 - 8026906: 4a14 ldr r2, [pc, #80] ; (8026958 ) - 8026908: 4619 mov r1, r3 - 802690a: 6838 ldr r0, [r7, #0] - 802690c: f7e6 fff2 bl 800d8f4 + 802686c: 4b0a ldr r3, [pc, #40] ; (8026898 ) + 802686e: 681b ldr r3, [r3, #0] + 8026870: 33d8 adds r3, #216 ; 0xd8 + 8026872: 4a14 ldr r2, [pc, #80] ; (80268c4 ) + 8026874: 4619 mov r1, r3 + 8026876: 6838 ldr r0, [r7, #0] + 8026878: f7e7 f806 bl 800d888 lv_obj_add_style(obj, &styles->transition_delayed, LV_PART_INDICATOR); - 8026910: 4b06 ldr r3, [pc, #24] ; (802692c ) - 8026912: 681b ldr r3, [r3, #0] - 8026914: 33d0 adds r3, #208 ; 0xd0 - 8026916: f44f 3200 mov.w r2, #131072 ; 0x20000 - 802691a: 4619 mov r1, r3 - 802691c: 6838 ldr r0, [r7, #0] - 802691e: f7e6 ffe9 bl 800d8f4 - 8026922: f000 be14 b.w 802754e - 8026926: bf00 nop - 8026928: 080709c8 .word 0x080709c8 - 802692c: 20001c4c .word 0x20001c4c - 8026930: 08070afc .word 0x08070afc - 8026934: 00030020 .word 0x00030020 - 8026938: 08070b34 .word 0x08070b34 - 802693c: 00010040 .word 0x00010040 - 8026940: 00050020 .word 0x00050020 - 8026944: 00050004 .word 0x00050004 - 8026948: 00050008 .word 0x00050008 - 802694c: 08070a1c .word 0x08070a1c - 8026950: 00020080 .word 0x00020080 - 8026954: 00020001 .word 0x00020001 - 8026958: 00020020 .word 0x00020020 + 802687c: 4b06 ldr r3, [pc, #24] ; (8026898 ) + 802687e: 681b ldr r3, [r3, #0] + 8026880: 33d0 adds r3, #208 ; 0xd0 + 8026882: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8026886: 4619 mov r1, r3 + 8026888: 6838 ldr r0, [r7, #0] + 802688a: f7e6 fffd bl 800d888 + 802688e: f000 be14 b.w 80274ba + 8026892: bf00 nop + 8026894: 08070920 .word 0x08070920 + 8026898: 20001c4c .word 0x20001c4c + 802689c: 08070a54 .word 0x08070a54 + 80268a0: 00030020 .word 0x00030020 + 80268a4: 08070a8c .word 0x08070a8c + 80268a8: 00010040 .word 0x00010040 + 80268ac: 00050020 .word 0x00050020 + 80268b0: 00050004 .word 0x00050004 + 80268b4: 00050008 .word 0x00050008 + 80268b8: 08070974 .word 0x08070974 + 80268bc: 00020080 .word 0x00020080 + 80268c0: 00020001 .word 0x00020001 + 80268c4: 00020020 .word 0x00020020 } #endif #if LV_USE_SWITCH else if(lv_obj_check_type(obj, &lv_switch_class)) { - 802695c: 49b2 ldr r1, [pc, #712] ; (8026c28 ) - 802695e: 6838 ldr r0, [r7, #0] - 8026960: f7df ff9e bl 80068a0 - 8026964: 4603 mov r3, r0 - 8026966: 2b00 cmp r3, #0 - 8026968: d077 beq.n 8026a5a + 80268c8: 49b2 ldr r1, [pc, #712] ; (8026b94 ) + 80268ca: 6838 ldr r0, [r7, #0] + 80268cc: f7df ffb2 bl 8006834 + 80268d0: 4603 mov r3, r0 + 80268d2: 2b00 cmp r3, #0 + 80268d4: d077 beq.n 80269c6 lv_obj_add_style(obj, &styles->bg_color_grey, 0); - 802696a: 4bb0 ldr r3, [pc, #704] ; (8026c2c ) - 802696c: 681b ldr r3, [r3, #0] - 802696e: 3348 adds r3, #72 ; 0x48 - 8026970: 2200 movs r2, #0 - 8026972: 4619 mov r1, r3 - 8026974: 6838 ldr r0, [r7, #0] - 8026976: f7e6 ffbd bl 800d8f4 + 80268d6: 4bb0 ldr r3, [pc, #704] ; (8026b98 ) + 80268d8: 681b ldr r3, [r3, #0] + 80268da: 3348 adds r3, #72 ; 0x48 + 80268dc: 2200 movs r2, #0 + 80268de: 4619 mov r1, r3 + 80268e0: 6838 ldr r0, [r7, #0] + 80268e2: f7e6 ffd1 bl 800d888 lv_obj_add_style(obj, &styles->circle, 0); - 802697a: 4bac ldr r3, [pc, #688] ; (8026c2c ) - 802697c: 681b ldr r3, [r3, #0] - 802697e: 33b0 adds r3, #176 ; 0xb0 - 8026980: 2200 movs r2, #0 - 8026982: 4619 mov r1, r3 - 8026984: 6838 ldr r0, [r7, #0] - 8026986: f7e6 ffb5 bl 800d8f4 + 80268e6: 4bac ldr r3, [pc, #688] ; (8026b98 ) + 80268e8: 681b ldr r3, [r3, #0] + 80268ea: 33b0 adds r3, #176 ; 0xb0 + 80268ec: 2200 movs r2, #0 + 80268ee: 4619 mov r1, r3 + 80268f0: 6838 ldr r0, [r7, #0] + 80268f2: f7e6 ffc9 bl 800d888 lv_obj_add_style(obj, &styles->anim_fast, 0); - 802698a: 4ba8 ldr r3, [pc, #672] ; (8026c2c ) - 802698c: 681b ldr r3, [r3, #0] - 802698e: 33e8 adds r3, #232 ; 0xe8 - 8026990: 2200 movs r2, #0 - 8026992: 4619 mov r1, r3 - 8026994: 6838 ldr r0, [r7, #0] - 8026996: f7e6 ffad bl 800d8f4 + 80268f6: 4ba8 ldr r3, [pc, #672] ; (8026b98 ) + 80268f8: 681b ldr r3, [r3, #0] + 80268fa: 33e8 adds r3, #232 ; 0xe8 + 80268fc: 2200 movs r2, #0 + 80268fe: 4619 mov r1, r3 + 8026900: 6838 ldr r0, [r7, #0] + 8026902: f7e6 ffc1 bl 800d888 lv_obj_add_style(obj, &styles->disabled, LV_STATE_DISABLED); - 802699a: 4ba4 ldr r3, [pc, #656] ; (8026c2c ) - 802699c: 681b ldr r3, [r3, #0] - 802699e: 3360 adds r3, #96 ; 0x60 - 80269a0: 2280 movs r2, #128 ; 0x80 - 80269a2: 4619 mov r1, r3 - 80269a4: 6838 ldr r0, [r7, #0] - 80269a6: f7e6 ffa5 bl 800d8f4 + 8026906: 4ba4 ldr r3, [pc, #656] ; (8026b98 ) + 8026908: 681b ldr r3, [r3, #0] + 802690a: 3360 adds r3, #96 ; 0x60 + 802690c: 2280 movs r2, #128 ; 0x80 + 802690e: 4619 mov r1, r3 + 8026910: 6838 ldr r0, [r7, #0] + 8026912: f7e6 ffb9 bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_STATE_FOCUS_KEY); - 80269aa: 4ba0 ldr r3, [pc, #640] ; (8026c2c ) - 80269ac: 681b ldr r3, [r3, #0] - 80269ae: 33a0 adds r3, #160 ; 0xa0 - 80269b0: 2204 movs r2, #4 - 80269b2: 4619 mov r1, r3 - 80269b4: 6838 ldr r0, [r7, #0] - 80269b6: f7e6 ff9d bl 800d8f4 + 8026916: 4ba0 ldr r3, [pc, #640] ; (8026b98 ) + 8026918: 681b ldr r3, [r3, #0] + 802691a: 33a0 adds r3, #160 ; 0xa0 + 802691c: 2204 movs r2, #4 + 802691e: 4619 mov r1, r3 + 8026920: 6838 ldr r0, [r7, #0] + 8026922: f7e6 ffb1 bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary, LV_PART_INDICATOR | LV_STATE_CHECKED); - 80269ba: 4b9c ldr r3, [pc, #624] ; (8026c2c ) - 80269bc: 681b ldr r3, [r3, #0] - 80269be: 3328 adds r3, #40 ; 0x28 - 80269c0: 4a9b ldr r2, [pc, #620] ; (8026c30 ) - 80269c2: 4619 mov r1, r3 - 80269c4: 6838 ldr r0, [r7, #0] - 80269c6: f7e6 ff95 bl 800d8f4 + 8026926: 4b9c ldr r3, [pc, #624] ; (8026b98 ) + 8026928: 681b ldr r3, [r3, #0] + 802692a: 3328 adds r3, #40 ; 0x28 + 802692c: 4a9b ldr r2, [pc, #620] ; (8026b9c ) + 802692e: 4619 mov r1, r3 + 8026930: 6838 ldr r0, [r7, #0] + 8026932: f7e6 ffa9 bl 800d888 lv_obj_add_style(obj, &styles->circle, LV_PART_INDICATOR); - 80269ca: 4b98 ldr r3, [pc, #608] ; (8026c2c ) - 80269cc: 681b ldr r3, [r3, #0] - 80269ce: 33b0 adds r3, #176 ; 0xb0 - 80269d0: f44f 3200 mov.w r2, #131072 ; 0x20000 - 80269d4: 4619 mov r1, r3 - 80269d6: 6838 ldr r0, [r7, #0] - 80269d8: f7e6 ff8c bl 800d8f4 + 8026936: 4b98 ldr r3, [pc, #608] ; (8026b98 ) + 8026938: 681b ldr r3, [r3, #0] + 802693a: 33b0 adds r3, #176 ; 0xb0 + 802693c: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8026940: 4619 mov r1, r3 + 8026942: 6838 ldr r0, [r7, #0] + 8026944: f7e6 ffa0 bl 800d888 lv_obj_add_style(obj, &styles->disabled, LV_PART_INDICATOR | LV_STATE_DISABLED); - 80269dc: 4b93 ldr r3, [pc, #588] ; (8026c2c ) - 80269de: 681b ldr r3, [r3, #0] - 80269e0: 3360 adds r3, #96 ; 0x60 - 80269e2: 4a94 ldr r2, [pc, #592] ; (8026c34 ) - 80269e4: 4619 mov r1, r3 - 80269e6: 6838 ldr r0, [r7, #0] - 80269e8: f7e6 ff84 bl 800d8f4 + 8026948: 4b93 ldr r3, [pc, #588] ; (8026b98 ) + 802694a: 681b ldr r3, [r3, #0] + 802694c: 3360 adds r3, #96 ; 0x60 + 802694e: 4a94 ldr r2, [pc, #592] ; (8026ba0 ) + 8026950: 4619 mov r1, r3 + 8026952: 6838 ldr r0, [r7, #0] + 8026954: f7e6 ff98 bl 800d888 lv_obj_add_style(obj, &styles->knob, LV_PART_KNOB); - 80269ec: 4b8f ldr r3, [pc, #572] ; (8026c2c ) - 80269ee: 681b ldr r3, [r3, #0] - 80269f0: 33f0 adds r3, #240 ; 0xf0 - 80269f2: f44f 3240 mov.w r2, #196608 ; 0x30000 - 80269f6: 4619 mov r1, r3 - 80269f8: 6838 ldr r0, [r7, #0] - 80269fa: f7e6 ff7b bl 800d8f4 + 8026958: 4b8f ldr r3, [pc, #572] ; (8026b98 ) + 802695a: 681b ldr r3, [r3, #0] + 802695c: 33f0 adds r3, #240 ; 0xf0 + 802695e: f44f 3240 mov.w r2, #196608 ; 0x30000 + 8026962: 4619 mov r1, r3 + 8026964: 6838 ldr r0, [r7, #0] + 8026966: f7e6 ff8f bl 800d888 lv_obj_add_style(obj, &styles->bg_color_white, LV_PART_KNOB); - 80269fe: 4b8b ldr r3, [pc, #556] ; (8026c2c ) - 8026a00: 681b ldr r3, [r3, #0] - 8026a02: 3350 adds r3, #80 ; 0x50 - 8026a04: f44f 3240 mov.w r2, #196608 ; 0x30000 - 8026a08: 4619 mov r1, r3 - 8026a0a: 6838 ldr r0, [r7, #0] - 8026a0c: f7e6 ff72 bl 800d8f4 + 802696a: 4b8b ldr r3, [pc, #556] ; (8026b98 ) + 802696c: 681b ldr r3, [r3, #0] + 802696e: 3350 adds r3, #80 ; 0x50 + 8026970: f44f 3240 mov.w r2, #196608 ; 0x30000 + 8026974: 4619 mov r1, r3 + 8026976: 6838 ldr r0, [r7, #0] + 8026978: f7e6 ff86 bl 800d888 lv_obj_add_style(obj, &styles->switch_knob, LV_PART_KNOB); - 8026a10: 4b86 ldr r3, [pc, #536] ; (8026c2c ) - 8026a12: 681b ldr r3, [r3, #0] - 8026a14: f503 73a4 add.w r3, r3, #328 ; 0x148 - 8026a18: f44f 3240 mov.w r2, #196608 ; 0x30000 - 8026a1c: 4619 mov r1, r3 - 8026a1e: 6838 ldr r0, [r7, #0] - 8026a20: f7e6 ff68 bl 800d8f4 + 802697c: 4b86 ldr r3, [pc, #536] ; (8026b98 ) + 802697e: 681b ldr r3, [r3, #0] + 8026980: f503 73a4 add.w r3, r3, #328 ; 0x148 + 8026984: f44f 3240 mov.w r2, #196608 ; 0x30000 + 8026988: 4619 mov r1, r3 + 802698a: 6838 ldr r0, [r7, #0] + 802698c: f7e6 ff7c bl 800d888 lv_obj_add_style(obj, &styles->disabled, LV_PART_KNOB | LV_STATE_DISABLED); - 8026a24: 4b81 ldr r3, [pc, #516] ; (8026c2c ) - 8026a26: 681b ldr r3, [r3, #0] - 8026a28: 3360 adds r3, #96 ; 0x60 - 8026a2a: 4a83 ldr r2, [pc, #524] ; (8026c38 ) - 8026a2c: 4619 mov r1, r3 - 8026a2e: 6838 ldr r0, [r7, #0] - 8026a30: f7e6 ff60 bl 800d8f4 + 8026990: 4b81 ldr r3, [pc, #516] ; (8026b98 ) + 8026992: 681b ldr r3, [r3, #0] + 8026994: 3360 adds r3, #96 ; 0x60 + 8026996: 4a83 ldr r2, [pc, #524] ; (8026ba4 ) + 8026998: 4619 mov r1, r3 + 802699a: 6838 ldr r0, [r7, #0] + 802699c: f7e6 ff74 bl 800d888 lv_obj_add_style(obj, &styles->transition_normal, LV_PART_INDICATOR | LV_STATE_CHECKED); - 8026a34: 4b7d ldr r3, [pc, #500] ; (8026c2c ) - 8026a36: 681b ldr r3, [r3, #0] - 8026a38: 33d8 adds r3, #216 ; 0xd8 - 8026a3a: 4a7d ldr r2, [pc, #500] ; (8026c30 ) - 8026a3c: 4619 mov r1, r3 - 8026a3e: 6838 ldr r0, [r7, #0] - 8026a40: f7e6 ff58 bl 800d8f4 + 80269a0: 4b7d ldr r3, [pc, #500] ; (8026b98 ) + 80269a2: 681b ldr r3, [r3, #0] + 80269a4: 33d8 adds r3, #216 ; 0xd8 + 80269a6: 4a7d ldr r2, [pc, #500] ; (8026b9c ) + 80269a8: 4619 mov r1, r3 + 80269aa: 6838 ldr r0, [r7, #0] + 80269ac: f7e6 ff6c bl 800d888 lv_obj_add_style(obj, &styles->transition_normal, LV_PART_INDICATOR); - 8026a44: 4b79 ldr r3, [pc, #484] ; (8026c2c ) - 8026a46: 681b ldr r3, [r3, #0] - 8026a48: 33d8 adds r3, #216 ; 0xd8 - 8026a4a: f44f 3200 mov.w r2, #131072 ; 0x20000 - 8026a4e: 4619 mov r1, r3 - 8026a50: 6838 ldr r0, [r7, #0] - 8026a52: f7e6 ff4f bl 800d8f4 - 8026a56: f000 bd7a b.w 802754e + 80269b0: 4b79 ldr r3, [pc, #484] ; (8026b98 ) + 80269b2: 681b ldr r3, [r3, #0] + 80269b4: 33d8 adds r3, #216 ; 0xd8 + 80269b6: f44f 3200 mov.w r2, #131072 ; 0x20000 + 80269ba: 4619 mov r1, r3 + 80269bc: 6838 ldr r0, [r7, #0] + 80269be: f7e6 ff63 bl 800d888 + 80269c2: f000 bd7a b.w 80274ba } #endif #if LV_USE_CHART else if(lv_obj_check_type(obj, &lv_chart_class)) { - 8026a5a: 4978 ldr r1, [pc, #480] ; (8026c3c ) - 8026a5c: 6838 ldr r0, [r7, #0] - 8026a5e: f7df ff1f bl 80068a0 - 8026a62: 4603 mov r3, r0 - 8026a64: 2b00 cmp r3, #0 - 8026a66: d053 beq.n 8026b10 + 80269c6: 4978 ldr r1, [pc, #480] ; (8026ba8 ) + 80269c8: 6838 ldr r0, [r7, #0] + 80269ca: f7df ff33 bl 8006834 + 80269ce: 4603 mov r3, r0 + 80269d0: 2b00 cmp r3, #0 + 80269d2: d053 beq.n 8026a7c lv_obj_add_style(obj, &styles->card, 0); - 8026a68: 4b70 ldr r3, [pc, #448] ; (8026c2c ) - 8026a6a: 681b ldr r3, [r3, #0] - 8026a6c: 3318 adds r3, #24 - 8026a6e: 2200 movs r2, #0 + 80269d4: 4b70 ldr r3, [pc, #448] ; (8026b98 ) + 80269d6: 681b ldr r3, [r3, #0] + 80269d8: 3318 adds r3, #24 + 80269da: 2200 movs r2, #0 + 80269dc: 4619 mov r1, r3 + 80269de: 6838 ldr r0, [r7, #0] + 80269e0: f7e6 ff52 bl 800d888 + lv_obj_add_style(obj, &styles->pad_small, 0); + 80269e4: 4b6c ldr r3, [pc, #432] ; (8026b98 ) + 80269e6: 681b ldr r3, [r3, #0] + 80269e8: 3378 adds r3, #120 ; 0x78 + 80269ea: 2200 movs r2, #0 + 80269ec: 4619 mov r1, r3 + 80269ee: 6838 ldr r0, [r7, #0] + 80269f0: f7e6 ff4a bl 800d888 + lv_obj_add_style(obj, &styles->chart_bg, 0); + 80269f4: 4b68 ldr r3, [pc, #416] ; (8026b98 ) + 80269f6: 681b ldr r3, [r3, #0] + 80269f8: f503 7394 add.w r3, r3, #296 ; 0x128 + 80269fc: 2200 movs r2, #0 + 80269fe: 4619 mov r1, r3 + 8026a00: 6838 ldr r0, [r7, #0] + 8026a02: f7e6 ff41 bl 800d888 + lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); + 8026a06: 4b64 ldr r3, [pc, #400] ; (8026b98 ) + 8026a08: 681b ldr r3, [r3, #0] + 8026a0a: 3308 adds r3, #8 + 8026a0c: f44f 3280 mov.w r2, #65536 ; 0x10000 + 8026a10: 4619 mov r1, r3 + 8026a12: 6838 ldr r0, [r7, #0] + 8026a14: f7e6 ff38 bl 800d888 + lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); + 8026a18: 4b5f ldr r3, [pc, #380] ; (8026b98 ) + 8026a1a: 681b ldr r3, [r3, #0] + 8026a1c: 3310 adds r3, #16 + 8026a1e: 4a63 ldr r2, [pc, #396] ; (8026bac ) + 8026a20: 4619 mov r1, r3 + 8026a22: 6838 ldr r0, [r7, #0] + 8026a24: f7e6 ff30 bl 800d888 + lv_obj_add_style(obj, &styles->chart_series, LV_PART_ITEMS); + 8026a28: 4b5b ldr r3, [pc, #364] ; (8026b98 ) + 8026a2a: 681b ldr r3, [r3, #0] + 8026a2c: f503 7388 add.w r3, r3, #272 ; 0x110 + 8026a30: f44f 22a0 mov.w r2, #327680 ; 0x50000 + 8026a34: 4619 mov r1, r3 + 8026a36: 6838 ldr r0, [r7, #0] + 8026a38: f7e6 ff26 bl 800d888 + lv_obj_add_style(obj, &styles->chart_indic, LV_PART_INDICATOR); + 8026a3c: 4b56 ldr r3, [pc, #344] ; (8026b98 ) + 8026a3e: 681b ldr r3, [r3, #0] + 8026a40: f503 738c add.w r3, r3, #280 ; 0x118 + 8026a44: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8026a48: 4619 mov r1, r3 + 8026a4a: 6838 ldr r0, [r7, #0] + 8026a4c: f7e6 ff1c bl 800d888 + lv_obj_add_style(obj, &styles->chart_ticks, LV_PART_TICKS); + 8026a50: 4b51 ldr r3, [pc, #324] ; (8026b98 ) + 8026a52: 681b ldr r3, [r3, #0] + 8026a54: f503 7390 add.w r3, r3, #288 ; 0x120 + 8026a58: f44f 22c0 mov.w r2, #393216 ; 0x60000 + 8026a5c: 4619 mov r1, r3 + 8026a5e: 6838 ldr r0, [r7, #0] + 8026a60: f7e6 ff12 bl 800d888 + lv_obj_add_style(obj, &styles->chart_series, LV_PART_CURSOR); + 8026a64: 4b4c ldr r3, [pc, #304] ; (8026b98 ) + 8026a66: 681b ldr r3, [r3, #0] + 8026a68: f503 7388 add.w r3, r3, #272 ; 0x110 + 8026a6c: f44f 22e0 mov.w r2, #458752 ; 0x70000 8026a70: 4619 mov r1, r3 8026a72: 6838 ldr r0, [r7, #0] - 8026a74: f7e6 ff3e bl 800d8f4 - lv_obj_add_style(obj, &styles->pad_small, 0); - 8026a78: 4b6c ldr r3, [pc, #432] ; (8026c2c ) - 8026a7a: 681b ldr r3, [r3, #0] - 8026a7c: 3378 adds r3, #120 ; 0x78 - 8026a7e: 2200 movs r2, #0 - 8026a80: 4619 mov r1, r3 - 8026a82: 6838 ldr r0, [r7, #0] - 8026a84: f7e6 ff36 bl 800d8f4 - lv_obj_add_style(obj, &styles->chart_bg, 0); - 8026a88: 4b68 ldr r3, [pc, #416] ; (8026c2c ) - 8026a8a: 681b ldr r3, [r3, #0] - 8026a8c: f503 7394 add.w r3, r3, #296 ; 0x128 - 8026a90: 2200 movs r2, #0 - 8026a92: 4619 mov r1, r3 - 8026a94: 6838 ldr r0, [r7, #0] - 8026a96: f7e6 ff2d bl 800d8f4 - lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); - 8026a9a: 4b64 ldr r3, [pc, #400] ; (8026c2c ) - 8026a9c: 681b ldr r3, [r3, #0] - 8026a9e: 3308 adds r3, #8 - 8026aa0: f44f 3280 mov.w r2, #65536 ; 0x10000 - 8026aa4: 4619 mov r1, r3 - 8026aa6: 6838 ldr r0, [r7, #0] - 8026aa8: f7e6 ff24 bl 800d8f4 - lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); - 8026aac: 4b5f ldr r3, [pc, #380] ; (8026c2c ) - 8026aae: 681b ldr r3, [r3, #0] - 8026ab0: 3310 adds r3, #16 - 8026ab2: 4a63 ldr r2, [pc, #396] ; (8026c40 ) - 8026ab4: 4619 mov r1, r3 - 8026ab6: 6838 ldr r0, [r7, #0] - 8026ab8: f7e6 ff1c bl 800d8f4 - lv_obj_add_style(obj, &styles->chart_series, LV_PART_ITEMS); - 8026abc: 4b5b ldr r3, [pc, #364] ; (8026c2c ) - 8026abe: 681b ldr r3, [r3, #0] - 8026ac0: f503 7388 add.w r3, r3, #272 ; 0x110 - 8026ac4: f44f 22a0 mov.w r2, #327680 ; 0x50000 - 8026ac8: 4619 mov r1, r3 - 8026aca: 6838 ldr r0, [r7, #0] - 8026acc: f7e6 ff12 bl 800d8f4 - lv_obj_add_style(obj, &styles->chart_indic, LV_PART_INDICATOR); - 8026ad0: 4b56 ldr r3, [pc, #344] ; (8026c2c ) - 8026ad2: 681b ldr r3, [r3, #0] - 8026ad4: f503 738c add.w r3, r3, #280 ; 0x118 - 8026ad8: f44f 3200 mov.w r2, #131072 ; 0x20000 - 8026adc: 4619 mov r1, r3 - 8026ade: 6838 ldr r0, [r7, #0] - 8026ae0: f7e6 ff08 bl 800d8f4 - lv_obj_add_style(obj, &styles->chart_ticks, LV_PART_TICKS); - 8026ae4: 4b51 ldr r3, [pc, #324] ; (8026c2c ) - 8026ae6: 681b ldr r3, [r3, #0] - 8026ae8: f503 7390 add.w r3, r3, #288 ; 0x120 - 8026aec: f44f 22c0 mov.w r2, #393216 ; 0x60000 - 8026af0: 4619 mov r1, r3 - 8026af2: 6838 ldr r0, [r7, #0] - 8026af4: f7e6 fefe bl 800d8f4 - lv_obj_add_style(obj, &styles->chart_series, LV_PART_CURSOR); - 8026af8: 4b4c ldr r3, [pc, #304] ; (8026c2c ) - 8026afa: 681b ldr r3, [r3, #0] - 8026afc: f503 7388 add.w r3, r3, #272 ; 0x110 - 8026b00: f44f 22e0 mov.w r2, #458752 ; 0x70000 - 8026b04: 4619 mov r1, r3 - 8026b06: 6838 ldr r0, [r7, #0] - 8026b08: f7e6 fef4 bl 800d8f4 - 8026b0c: f000 bd1f b.w 802754e + 8026a74: f7e6 ff08 bl 800d888 + 8026a78: f000 bd1f b.w 80274ba } #endif #if LV_USE_ROLLER else if(lv_obj_check_type(obj, &lv_roller_class)) { - 8026b10: 494c ldr r1, [pc, #304] ; (8026c44 ) - 8026b12: 6838 ldr r0, [r7, #0] - 8026b14: f7df fec4 bl 80068a0 - 8026b18: 4603 mov r3, r0 - 8026b1a: 2b00 cmp r3, #0 - 8026b1c: d03a beq.n 8026b94 + 8026a7c: 494c ldr r1, [pc, #304] ; (8026bb0 ) + 8026a7e: 6838 ldr r0, [r7, #0] + 8026a80: f7df fed8 bl 8006834 + 8026a84: 4603 mov r3, r0 + 8026a86: 2b00 cmp r3, #0 + 8026a88: d03a beq.n 8026b00 lv_obj_add_style(obj, &styles->card, 0); - 8026b1e: 4b43 ldr r3, [pc, #268] ; (8026c2c ) - 8026b20: 681b ldr r3, [r3, #0] - 8026b22: 3318 adds r3, #24 - 8026b24: 2200 movs r2, #0 - 8026b26: 4619 mov r1, r3 - 8026b28: 6838 ldr r0, [r7, #0] - 8026b2a: f7e6 fee3 bl 800d8f4 + 8026a8a: 4b43 ldr r3, [pc, #268] ; (8026b98 ) + 8026a8c: 681b ldr r3, [r3, #0] + 8026a8e: 3318 adds r3, #24 + 8026a90: 2200 movs r2, #0 + 8026a92: 4619 mov r1, r3 + 8026a94: 6838 ldr r0, [r7, #0] + 8026a96: f7e6 fef7 bl 800d888 lv_obj_add_style(obj, &styles->anim, 0); - 8026b2e: 4b3f ldr r3, [pc, #252] ; (8026c2c ) - 8026b30: 681b ldr r3, [r3, #0] - 8026b32: 33e0 adds r3, #224 ; 0xe0 - 8026b34: 2200 movs r2, #0 - 8026b36: 4619 mov r1, r3 - 8026b38: 6838 ldr r0, [r7, #0] - 8026b3a: f7e6 fedb bl 800d8f4 + 8026a9a: 4b3f ldr r3, [pc, #252] ; (8026b98 ) + 8026a9c: 681b ldr r3, [r3, #0] + 8026a9e: 33e0 adds r3, #224 ; 0xe0 + 8026aa0: 2200 movs r2, #0 + 8026aa2: 4619 mov r1, r3 + 8026aa4: 6838 ldr r0, [r7, #0] + 8026aa6: f7e6 feef bl 800d888 lv_obj_add_style(obj, &styles->line_space_large, 0); - 8026b3e: 4b3b ldr r3, [pc, #236] ; (8026c2c ) - 8026b40: 681b ldr r3, [r3, #0] - 8026b42: 3390 adds r3, #144 ; 0x90 - 8026b44: 2200 movs r2, #0 - 8026b46: 4619 mov r1, r3 - 8026b48: 6838 ldr r0, [r7, #0] - 8026b4a: f7e6 fed3 bl 800d8f4 + 8026aaa: 4b3b ldr r3, [pc, #236] ; (8026b98 ) + 8026aac: 681b ldr r3, [r3, #0] + 8026aae: 3390 adds r3, #144 ; 0x90 + 8026ab0: 2200 movs r2, #0 + 8026ab2: 4619 mov r1, r3 + 8026ab4: 6838 ldr r0, [r7, #0] + 8026ab6: f7e6 fee7 bl 800d888 lv_obj_add_style(obj, &styles->text_align_center, 0); - 8026b4e: 4b37 ldr r3, [pc, #220] ; (8026c2c ) - 8026b50: 681b ldr r3, [r3, #0] - 8026b52: 3398 adds r3, #152 ; 0x98 - 8026b54: 2200 movs r2, #0 - 8026b56: 4619 mov r1, r3 - 8026b58: 6838 ldr r0, [r7, #0] - 8026b5a: f7e6 fecb bl 800d8f4 + 8026aba: 4b37 ldr r3, [pc, #220] ; (8026b98 ) + 8026abc: 681b ldr r3, [r3, #0] + 8026abe: 3398 adds r3, #152 ; 0x98 + 8026ac0: 2200 movs r2, #0 + 8026ac2: 4619 mov r1, r3 + 8026ac4: 6838 ldr r0, [r7, #0] + 8026ac6: f7e6 fedf bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_STATE_FOCUS_KEY); - 8026b5e: 4b33 ldr r3, [pc, #204] ; (8026c2c ) - 8026b60: 681b ldr r3, [r3, #0] - 8026b62: 33a0 adds r3, #160 ; 0xa0 - 8026b64: 2204 movs r2, #4 - 8026b66: 4619 mov r1, r3 - 8026b68: 6838 ldr r0, [r7, #0] - 8026b6a: f7e6 fec3 bl 800d8f4 + 8026aca: 4b33 ldr r3, [pc, #204] ; (8026b98 ) + 8026acc: 681b ldr r3, [r3, #0] + 8026ace: 33a0 adds r3, #160 ; 0xa0 + 8026ad0: 2204 movs r2, #4 + 8026ad2: 4619 mov r1, r3 + 8026ad4: 6838 ldr r0, [r7, #0] + 8026ad6: f7e6 fed7 bl 800d888 lv_obj_add_style(obj, &styles->outline_secondary, LV_STATE_EDITED); - 8026b6e: 4b2f ldr r3, [pc, #188] ; (8026c2c ) - 8026b70: 681b ldr r3, [r3, #0] - 8026b72: 33a8 adds r3, #168 ; 0xa8 - 8026b74: 2208 movs r2, #8 - 8026b76: 4619 mov r1, r3 - 8026b78: 6838 ldr r0, [r7, #0] - 8026b7a: f7e6 febb bl 800d8f4 + 8026ada: 4b2f ldr r3, [pc, #188] ; (8026b98 ) + 8026adc: 681b ldr r3, [r3, #0] + 8026ade: 33a8 adds r3, #168 ; 0xa8 + 8026ae0: 2208 movs r2, #8 + 8026ae2: 4619 mov r1, r3 + 8026ae4: 6838 ldr r0, [r7, #0] + 8026ae6: f7e6 fecf bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary, LV_PART_SELECTED); - 8026b7e: 4b2b ldr r3, [pc, #172] ; (8026c2c ) - 8026b80: 681b ldr r3, [r3, #0] - 8026b82: 3328 adds r3, #40 ; 0x28 - 8026b84: f44f 2280 mov.w r2, #262144 ; 0x40000 - 8026b88: 4619 mov r1, r3 - 8026b8a: 6838 ldr r0, [r7, #0] - 8026b8c: f7e6 feb2 bl 800d8f4 - 8026b90: f000 bcdd b.w 802754e + 8026aea: 4b2b ldr r3, [pc, #172] ; (8026b98 ) + 8026aec: 681b ldr r3, [r3, #0] + 8026aee: 3328 adds r3, #40 ; 0x28 + 8026af0: f44f 2280 mov.w r2, #262144 ; 0x40000 + 8026af4: 4619 mov r1, r3 + 8026af6: 6838 ldr r0, [r7, #0] + 8026af8: f7e6 fec6 bl 800d888 + 8026afc: f000 bcdd b.w 80274ba } #endif #if LV_USE_DROPDOWN else if(lv_obj_check_type(obj, &lv_dropdown_class)) { - 8026b94: 492c ldr r1, [pc, #176] ; (8026c48 ) - 8026b96: 6838 ldr r0, [r7, #0] - 8026b98: f7df fe82 bl 80068a0 - 8026b9c: 4603 mov r3, r0 - 8026b9e: 2b00 cmp r3, #0 - 8026ba0: d054 beq.n 8026c4c + 8026b00: 492c ldr r1, [pc, #176] ; (8026bb4 ) + 8026b02: 6838 ldr r0, [r7, #0] + 8026b04: f7df fe96 bl 8006834 + 8026b08: 4603 mov r3, r0 + 8026b0a: 2b00 cmp r3, #0 + 8026b0c: d054 beq.n 8026bb8 lv_obj_add_style(obj, &styles->card, 0); - 8026ba2: 4b22 ldr r3, [pc, #136] ; (8026c2c ) - 8026ba4: 681b ldr r3, [r3, #0] - 8026ba6: 3318 adds r3, #24 - 8026ba8: 2200 movs r2, #0 - 8026baa: 4619 mov r1, r3 - 8026bac: 6838 ldr r0, [r7, #0] - 8026bae: f7e6 fea1 bl 800d8f4 + 8026b0e: 4b22 ldr r3, [pc, #136] ; (8026b98 ) + 8026b10: 681b ldr r3, [r3, #0] + 8026b12: 3318 adds r3, #24 + 8026b14: 2200 movs r2, #0 + 8026b16: 4619 mov r1, r3 + 8026b18: 6838 ldr r0, [r7, #0] + 8026b1a: f7e6 feb5 bl 800d888 lv_obj_add_style(obj, &styles->pad_small, 0); - 8026bb2: 4b1e ldr r3, [pc, #120] ; (8026c2c ) - 8026bb4: 681b ldr r3, [r3, #0] - 8026bb6: 3378 adds r3, #120 ; 0x78 - 8026bb8: 2200 movs r2, #0 - 8026bba: 4619 mov r1, r3 - 8026bbc: 6838 ldr r0, [r7, #0] - 8026bbe: f7e6 fe99 bl 800d8f4 + 8026b1e: 4b1e ldr r3, [pc, #120] ; (8026b98 ) + 8026b20: 681b ldr r3, [r3, #0] + 8026b22: 3378 adds r3, #120 ; 0x78 + 8026b24: 2200 movs r2, #0 + 8026b26: 4619 mov r1, r3 + 8026b28: 6838 ldr r0, [r7, #0] + 8026b2a: f7e6 fead bl 800d888 lv_obj_add_style(obj, &styles->transition_delayed, 0); - 8026bc2: 4b1a ldr r3, [pc, #104] ; (8026c2c ) - 8026bc4: 681b ldr r3, [r3, #0] - 8026bc6: 33d0 adds r3, #208 ; 0xd0 - 8026bc8: 2200 movs r2, #0 - 8026bca: 4619 mov r1, r3 - 8026bcc: 6838 ldr r0, [r7, #0] - 8026bce: f7e6 fe91 bl 800d8f4 + 8026b2e: 4b1a ldr r3, [pc, #104] ; (8026b98 ) + 8026b30: 681b ldr r3, [r3, #0] + 8026b32: 33d0 adds r3, #208 ; 0xd0 + 8026b34: 2200 movs r2, #0 + 8026b36: 4619 mov r1, r3 + 8026b38: 6838 ldr r0, [r7, #0] + 8026b3a: f7e6 fea5 bl 800d888 lv_obj_add_style(obj, &styles->transition_normal, LV_STATE_PRESSED); - 8026bd2: 4b16 ldr r3, [pc, #88] ; (8026c2c ) - 8026bd4: 681b ldr r3, [r3, #0] - 8026bd6: 33d8 adds r3, #216 ; 0xd8 - 8026bd8: 2220 movs r2, #32 - 8026bda: 4619 mov r1, r3 - 8026bdc: 6838 ldr r0, [r7, #0] - 8026bde: f7e6 fe89 bl 800d8f4 + 8026b3e: 4b16 ldr r3, [pc, #88] ; (8026b98 ) + 8026b40: 681b ldr r3, [r3, #0] + 8026b42: 33d8 adds r3, #216 ; 0xd8 + 8026b44: 2220 movs r2, #32 + 8026b46: 4619 mov r1, r3 + 8026b48: 6838 ldr r0, [r7, #0] + 8026b4a: f7e6 fe9d bl 800d888 lv_obj_add_style(obj, &styles->pressed, LV_STATE_PRESSED); - 8026be2: 4b12 ldr r3, [pc, #72] ; (8026c2c ) - 8026be4: 681b ldr r3, [r3, #0] - 8026be6: 3358 adds r3, #88 ; 0x58 - 8026be8: 2220 movs r2, #32 - 8026bea: 4619 mov r1, r3 - 8026bec: 6838 ldr r0, [r7, #0] - 8026bee: f7e6 fe81 bl 800d8f4 + 8026b4e: 4b12 ldr r3, [pc, #72] ; (8026b98 ) + 8026b50: 681b ldr r3, [r3, #0] + 8026b52: 3358 adds r3, #88 ; 0x58 + 8026b54: 2220 movs r2, #32 + 8026b56: 4619 mov r1, r3 + 8026b58: 6838 ldr r0, [r7, #0] + 8026b5a: f7e6 fe95 bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_STATE_FOCUS_KEY); - 8026bf2: 4b0e ldr r3, [pc, #56] ; (8026c2c ) - 8026bf4: 681b ldr r3, [r3, #0] - 8026bf6: 33a0 adds r3, #160 ; 0xa0 - 8026bf8: 2204 movs r2, #4 - 8026bfa: 4619 mov r1, r3 - 8026bfc: 6838 ldr r0, [r7, #0] - 8026bfe: f7e6 fe79 bl 800d8f4 + 8026b5e: 4b0e ldr r3, [pc, #56] ; (8026b98 ) + 8026b60: 681b ldr r3, [r3, #0] + 8026b62: 33a0 adds r3, #160 ; 0xa0 + 8026b64: 2204 movs r2, #4 + 8026b66: 4619 mov r1, r3 + 8026b68: 6838 ldr r0, [r7, #0] + 8026b6a: f7e6 fe8d bl 800d888 lv_obj_add_style(obj, &styles->outline_secondary, LV_STATE_EDITED); - 8026c02: 4b0a ldr r3, [pc, #40] ; (8026c2c ) - 8026c04: 681b ldr r3, [r3, #0] - 8026c06: 33a8 adds r3, #168 ; 0xa8 - 8026c08: 2208 movs r2, #8 - 8026c0a: 4619 mov r1, r3 - 8026c0c: 6838 ldr r0, [r7, #0] - 8026c0e: f7e6 fe71 bl 800d8f4 + 8026b6e: 4b0a ldr r3, [pc, #40] ; (8026b98 ) + 8026b70: 681b ldr r3, [r3, #0] + 8026b72: 33a8 adds r3, #168 ; 0xa8 + 8026b74: 2208 movs r2, #8 + 8026b76: 4619 mov r1, r3 + 8026b78: 6838 ldr r0, [r7, #0] + 8026b7a: f7e6 fe85 bl 800d888 lv_obj_add_style(obj, &styles->transition_normal, LV_PART_INDICATOR); - 8026c12: 4b06 ldr r3, [pc, #24] ; (8026c2c ) - 8026c14: 681b ldr r3, [r3, #0] - 8026c16: 33d8 adds r3, #216 ; 0xd8 - 8026c18: f44f 3200 mov.w r2, #131072 ; 0x20000 - 8026c1c: 4619 mov r1, r3 - 8026c1e: 6838 ldr r0, [r7, #0] - 8026c20: f7e6 fe68 bl 800d8f4 - 8026c24: f000 bc93 b.w 802754e - 8026c28: 08070b18 .word 0x08070b18 - 8026c2c: 20001c4c .word 0x20001c4c - 8026c30: 00020001 .word 0x00020001 - 8026c34: 00020080 .word 0x00020080 - 8026c38: 00030080 .word 0x00030080 - 8026c3c: 0806cbf8 .word 0x0806cbf8 - 8026c40: 00010040 .word 0x00010040 - 8026c44: 08070ac4 .word 0x08070ac4 - 8026c48: 08070a38 .word 0x08070a38 + 8026b7e: 4b06 ldr r3, [pc, #24] ; (8026b98 ) + 8026b80: 681b ldr r3, [r3, #0] + 8026b82: 33d8 adds r3, #216 ; 0xd8 + 8026b84: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8026b88: 4619 mov r1, r3 + 8026b8a: 6838 ldr r0, [r7, #0] + 8026b8c: f7e6 fe7c bl 800d888 + 8026b90: f000 bc93 b.w 80274ba + 8026b94: 08070a70 .word 0x08070a70 + 8026b98: 20001c4c .word 0x20001c4c + 8026b9c: 00020001 .word 0x00020001 + 8026ba0: 00020080 .word 0x00020080 + 8026ba4: 00030080 .word 0x00030080 + 8026ba8: 0806cb50 .word 0x0806cb50 + 8026bac: 00010040 .word 0x00010040 + 8026bb0: 08070a1c .word 0x08070a1c + 8026bb4: 08070990 .word 0x08070990 } else if(lv_obj_check_type(obj, &lv_dropdownlist_class)) { - 8026c4c: 49b2 ldr r1, [pc, #712] ; (8026f18 ) - 8026c4e: 6838 ldr r0, [r7, #0] - 8026c50: f7df fe26 bl 80068a0 - 8026c54: 4603 mov r3, r0 - 8026c56: 2b00 cmp r3, #0 - 8026c58: d04c beq.n 8026cf4 + 8026bb8: 49b2 ldr r1, [pc, #712] ; (8026e84 ) + 8026bba: 6838 ldr r0, [r7, #0] + 8026bbc: f7df fe3a bl 8006834 + 8026bc0: 4603 mov r3, r0 + 8026bc2: 2b00 cmp r3, #0 + 8026bc4: d04c beq.n 8026c60 lv_obj_add_style(obj, &styles->card, 0); - 8026c5a: 4bb0 ldr r3, [pc, #704] ; (8026f1c ) - 8026c5c: 681b ldr r3, [r3, #0] - 8026c5e: 3318 adds r3, #24 - 8026c60: 2200 movs r2, #0 - 8026c62: 4619 mov r1, r3 - 8026c64: 6838 ldr r0, [r7, #0] - 8026c66: f7e6 fe45 bl 800d8f4 + 8026bc6: 4bb0 ldr r3, [pc, #704] ; (8026e88 ) + 8026bc8: 681b ldr r3, [r3, #0] + 8026bca: 3318 adds r3, #24 + 8026bcc: 2200 movs r2, #0 + 8026bce: 4619 mov r1, r3 + 8026bd0: 6838 ldr r0, [r7, #0] + 8026bd2: f7e6 fe59 bl 800d888 lv_obj_add_style(obj, &styles->clip_corner, 0); - 8026c6a: 4bac ldr r3, [pc, #688] ; (8026f1c ) - 8026c6c: 681b ldr r3, [r3, #0] - 8026c6e: 33c0 adds r3, #192 ; 0xc0 - 8026c70: 2200 movs r2, #0 - 8026c72: 4619 mov r1, r3 - 8026c74: 6838 ldr r0, [r7, #0] - 8026c76: f7e6 fe3d bl 800d8f4 + 8026bd6: 4bac ldr r3, [pc, #688] ; (8026e88 ) + 8026bd8: 681b ldr r3, [r3, #0] + 8026bda: 33c0 adds r3, #192 ; 0xc0 + 8026bdc: 2200 movs r2, #0 + 8026bde: 4619 mov r1, r3 + 8026be0: 6838 ldr r0, [r7, #0] + 8026be2: f7e6 fe51 bl 800d888 lv_obj_add_style(obj, &styles->line_space_large, 0); - 8026c7a: 4ba8 ldr r3, [pc, #672] ; (8026f1c ) - 8026c7c: 681b ldr r3, [r3, #0] - 8026c7e: 3390 adds r3, #144 ; 0x90 - 8026c80: 2200 movs r2, #0 - 8026c82: 4619 mov r1, r3 - 8026c84: 6838 ldr r0, [r7, #0] - 8026c86: f7e6 fe35 bl 800d8f4 + 8026be6: 4ba8 ldr r3, [pc, #672] ; (8026e88 ) + 8026be8: 681b ldr r3, [r3, #0] + 8026bea: 3390 adds r3, #144 ; 0x90 + 8026bec: 2200 movs r2, #0 + 8026bee: 4619 mov r1, r3 + 8026bf0: 6838 ldr r0, [r7, #0] + 8026bf2: f7e6 fe49 bl 800d888 lv_obj_add_style(obj, &styles->dropdown_list, 0); - 8026c8a: 4ba4 ldr r3, [pc, #656] ; (8026f1c ) - 8026c8c: 681b ldr r3, [r3, #0] - 8026c8e: f503 7398 add.w r3, r3, #304 ; 0x130 - 8026c92: 2200 movs r2, #0 - 8026c94: 4619 mov r1, r3 - 8026c96: 6838 ldr r0, [r7, #0] - 8026c98: f7e6 fe2c bl 800d8f4 + 8026bf6: 4ba4 ldr r3, [pc, #656] ; (8026e88 ) + 8026bf8: 681b ldr r3, [r3, #0] + 8026bfa: f503 7398 add.w r3, r3, #304 ; 0x130 + 8026bfe: 2200 movs r2, #0 + 8026c00: 4619 mov r1, r3 + 8026c02: 6838 ldr r0, [r7, #0] + 8026c04: f7e6 fe40 bl 800d888 lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); - 8026c9c: 4b9f ldr r3, [pc, #636] ; (8026f1c ) - 8026c9e: 681b ldr r3, [r3, #0] - 8026ca0: 3308 adds r3, #8 - 8026ca2: f44f 3280 mov.w r2, #65536 ; 0x10000 - 8026ca6: 4619 mov r1, r3 - 8026ca8: 6838 ldr r0, [r7, #0] - 8026caa: f7e6 fe23 bl 800d8f4 + 8026c08: 4b9f ldr r3, [pc, #636] ; (8026e88 ) + 8026c0a: 681b ldr r3, [r3, #0] + 8026c0c: 3308 adds r3, #8 + 8026c0e: f44f 3280 mov.w r2, #65536 ; 0x10000 + 8026c12: 4619 mov r1, r3 + 8026c14: 6838 ldr r0, [r7, #0] + 8026c16: f7e6 fe37 bl 800d888 lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); - 8026cae: 4b9b ldr r3, [pc, #620] ; (8026f1c ) - 8026cb0: 681b ldr r3, [r3, #0] - 8026cb2: 3310 adds r3, #16 - 8026cb4: 4a9a ldr r2, [pc, #616] ; (8026f20 ) - 8026cb6: 4619 mov r1, r3 - 8026cb8: 6838 ldr r0, [r7, #0] - 8026cba: f7e6 fe1b bl 800d8f4 + 8026c1a: 4b9b ldr r3, [pc, #620] ; (8026e88 ) + 8026c1c: 681b ldr r3, [r3, #0] + 8026c1e: 3310 adds r3, #16 + 8026c20: 4a9a ldr r2, [pc, #616] ; (8026e8c ) + 8026c22: 4619 mov r1, r3 + 8026c24: 6838 ldr r0, [r7, #0] + 8026c26: f7e6 fe2f bl 800d888 lv_obj_add_style(obj, &styles->bg_color_white, LV_PART_SELECTED); - 8026cbe: 4b97 ldr r3, [pc, #604] ; (8026f1c ) - 8026cc0: 681b ldr r3, [r3, #0] - 8026cc2: 3350 adds r3, #80 ; 0x50 - 8026cc4: f44f 2280 mov.w r2, #262144 ; 0x40000 - 8026cc8: 4619 mov r1, r3 - 8026cca: 6838 ldr r0, [r7, #0] - 8026ccc: f7e6 fe12 bl 800d8f4 + 8026c2a: 4b97 ldr r3, [pc, #604] ; (8026e88 ) + 8026c2c: 681b ldr r3, [r3, #0] + 8026c2e: 3350 adds r3, #80 ; 0x50 + 8026c30: f44f 2280 mov.w r2, #262144 ; 0x40000 + 8026c34: 4619 mov r1, r3 + 8026c36: 6838 ldr r0, [r7, #0] + 8026c38: f7e6 fe26 bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary, LV_PART_SELECTED | LV_STATE_CHECKED); - 8026cd0: 4b92 ldr r3, [pc, #584] ; (8026f1c ) - 8026cd2: 681b ldr r3, [r3, #0] - 8026cd4: 3328 adds r3, #40 ; 0x28 - 8026cd6: 4a93 ldr r2, [pc, #588] ; (8026f24 ) - 8026cd8: 4619 mov r1, r3 - 8026cda: 6838 ldr r0, [r7, #0] - 8026cdc: f7e6 fe0a bl 800d8f4 + 8026c3c: 4b92 ldr r3, [pc, #584] ; (8026e88 ) + 8026c3e: 681b ldr r3, [r3, #0] + 8026c40: 3328 adds r3, #40 ; 0x28 + 8026c42: 4a93 ldr r2, [pc, #588] ; (8026e90 ) + 8026c44: 4619 mov r1, r3 + 8026c46: 6838 ldr r0, [r7, #0] + 8026c48: f7e6 fe1e bl 800d888 lv_obj_add_style(obj, &styles->pressed, LV_PART_SELECTED | LV_STATE_PRESSED); - 8026ce0: 4b8e ldr r3, [pc, #568] ; (8026f1c ) - 8026ce2: 681b ldr r3, [r3, #0] - 8026ce4: 3358 adds r3, #88 ; 0x58 - 8026ce6: 4a90 ldr r2, [pc, #576] ; (8026f28 ) - 8026ce8: 4619 mov r1, r3 - 8026cea: 6838 ldr r0, [r7, #0] - 8026cec: f7e6 fe02 bl 800d8f4 - 8026cf0: f000 bc2d b.w 802754e + 8026c4c: 4b8e ldr r3, [pc, #568] ; (8026e88 ) + 8026c4e: 681b ldr r3, [r3, #0] + 8026c50: 3358 adds r3, #88 ; 0x58 + 8026c52: 4a90 ldr r2, [pc, #576] ; (8026e94 ) + 8026c54: 4619 mov r1, r3 + 8026c56: 6838 ldr r0, [r7, #0] + 8026c58: f7e6 fe16 bl 800d888 + 8026c5c: f000 bc2d b.w 80274ba } #endif #if LV_USE_ARC else if(lv_obj_check_type(obj, &lv_arc_class)) { - 8026cf4: 498d ldr r1, [pc, #564] ; (8026f2c ) - 8026cf6: 6838 ldr r0, [r7, #0] - 8026cf8: f7df fdd2 bl 80068a0 - 8026cfc: 4603 mov r3, r0 - 8026cfe: 2b00 cmp r3, #0 - 8026d00: d026 beq.n 8026d50 + 8026c60: 498d ldr r1, [pc, #564] ; (8026e98 ) + 8026c62: 6838 ldr r0, [r7, #0] + 8026c64: f7df fde6 bl 8006834 + 8026c68: 4603 mov r3, r0 + 8026c6a: 2b00 cmp r3, #0 + 8026c6c: d026 beq.n 8026cbc lv_obj_add_style(obj, &styles->arc_indic, 0); - 8026d02: 4b86 ldr r3, [pc, #536] ; (8026f1c ) - 8026d04: 681b ldr r3, [r3, #0] - 8026d06: f503 7380 add.w r3, r3, #256 ; 0x100 - 8026d0a: 2200 movs r2, #0 - 8026d0c: 4619 mov r1, r3 - 8026d0e: 6838 ldr r0, [r7, #0] - 8026d10: f7e6 fdf0 bl 800d8f4 + 8026c6e: 4b86 ldr r3, [pc, #536] ; (8026e88 ) + 8026c70: 681b ldr r3, [r3, #0] + 8026c72: f503 7380 add.w r3, r3, #256 ; 0x100 + 8026c76: 2200 movs r2, #0 + 8026c78: 4619 mov r1, r3 + 8026c7a: 6838 ldr r0, [r7, #0] + 8026c7c: f7e6 fe04 bl 800d888 lv_obj_add_style(obj, &styles->arc_indic, LV_PART_INDICATOR); - 8026d14: 4b81 ldr r3, [pc, #516] ; (8026f1c ) - 8026d16: 681b ldr r3, [r3, #0] - 8026d18: f503 7380 add.w r3, r3, #256 ; 0x100 - 8026d1c: f44f 3200 mov.w r2, #131072 ; 0x20000 - 8026d20: 4619 mov r1, r3 - 8026d22: 6838 ldr r0, [r7, #0] - 8026d24: f7e6 fde6 bl 800d8f4 + 8026c80: 4b81 ldr r3, [pc, #516] ; (8026e88 ) + 8026c82: 681b ldr r3, [r3, #0] + 8026c84: f503 7380 add.w r3, r3, #256 ; 0x100 + 8026c88: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8026c8c: 4619 mov r1, r3 + 8026c8e: 6838 ldr r0, [r7, #0] + 8026c90: f7e6 fdfa bl 800d888 lv_obj_add_style(obj, &styles->arc_indic_primary, LV_PART_INDICATOR); - 8026d28: 4b7c ldr r3, [pc, #496] ; (8026f1c ) - 8026d2a: 681b ldr r3, [r3, #0] - 8026d2c: f503 7384 add.w r3, r3, #264 ; 0x108 - 8026d30: f44f 3200 mov.w r2, #131072 ; 0x20000 - 8026d34: 4619 mov r1, r3 - 8026d36: 6838 ldr r0, [r7, #0] - 8026d38: f7e6 fddc bl 800d8f4 + 8026c94: 4b7c ldr r3, [pc, #496] ; (8026e88 ) + 8026c96: 681b ldr r3, [r3, #0] + 8026c98: f503 7384 add.w r3, r3, #264 ; 0x108 + 8026c9c: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8026ca0: 4619 mov r1, r3 + 8026ca2: 6838 ldr r0, [r7, #0] + 8026ca4: f7e6 fdf0 bl 800d888 lv_obj_add_style(obj, &styles->knob, LV_PART_KNOB); - 8026d3c: 4b77 ldr r3, [pc, #476] ; (8026f1c ) - 8026d3e: 681b ldr r3, [r3, #0] - 8026d40: 33f0 adds r3, #240 ; 0xf0 - 8026d42: f44f 3240 mov.w r2, #196608 ; 0x30000 - 8026d46: 4619 mov r1, r3 - 8026d48: 6838 ldr r0, [r7, #0] - 8026d4a: f7e6 fdd3 bl 800d8f4 - 8026d4e: e3fe b.n 802754e + 8026ca8: 4b77 ldr r3, [pc, #476] ; (8026e88 ) + 8026caa: 681b ldr r3, [r3, #0] + 8026cac: 33f0 adds r3, #240 ; 0xf0 + 8026cae: f44f 3240 mov.w r2, #196608 ; 0x30000 + 8026cb2: 4619 mov r1, r3 + 8026cb4: 6838 ldr r0, [r7, #0] + 8026cb6: f7e6 fde7 bl 800d888 + 8026cba: e3fe b.n 80274ba } #endif #if LV_USE_SPINNER else if(lv_obj_check_type(obj, &lv_spinner_class)) { - 8026d50: 4977 ldr r1, [pc, #476] ; (8026f30 ) - 8026d52: 6838 ldr r0, [r7, #0] - 8026d54: f7df fda4 bl 80068a0 - 8026d58: 4603 mov r3, r0 - 8026d5a: 2b00 cmp r3, #0 - 8026d5c: d01d beq.n 8026d9a + 8026cbc: 4977 ldr r1, [pc, #476] ; (8026e9c ) + 8026cbe: 6838 ldr r0, [r7, #0] + 8026cc0: f7df fdb8 bl 8006834 + 8026cc4: 4603 mov r3, r0 + 8026cc6: 2b00 cmp r3, #0 + 8026cc8: d01d beq.n 8026d06 lv_obj_add_style(obj, &styles->arc_indic, 0); - 8026d5e: 4b6f ldr r3, [pc, #444] ; (8026f1c ) - 8026d60: 681b ldr r3, [r3, #0] - 8026d62: f503 7380 add.w r3, r3, #256 ; 0x100 - 8026d66: 2200 movs r2, #0 - 8026d68: 4619 mov r1, r3 - 8026d6a: 6838 ldr r0, [r7, #0] - 8026d6c: f7e6 fdc2 bl 800d8f4 + 8026cca: 4b6f ldr r3, [pc, #444] ; (8026e88 ) + 8026ccc: 681b ldr r3, [r3, #0] + 8026cce: f503 7380 add.w r3, r3, #256 ; 0x100 + 8026cd2: 2200 movs r2, #0 + 8026cd4: 4619 mov r1, r3 + 8026cd6: 6838 ldr r0, [r7, #0] + 8026cd8: f7e6 fdd6 bl 800d888 lv_obj_add_style(obj, &styles->arc_indic, LV_PART_INDICATOR); - 8026d70: 4b6a ldr r3, [pc, #424] ; (8026f1c ) - 8026d72: 681b ldr r3, [r3, #0] - 8026d74: f503 7380 add.w r3, r3, #256 ; 0x100 - 8026d78: f44f 3200 mov.w r2, #131072 ; 0x20000 - 8026d7c: 4619 mov r1, r3 - 8026d7e: 6838 ldr r0, [r7, #0] - 8026d80: f7e6 fdb8 bl 800d8f4 + 8026cdc: 4b6a ldr r3, [pc, #424] ; (8026e88 ) + 8026cde: 681b ldr r3, [r3, #0] + 8026ce0: f503 7380 add.w r3, r3, #256 ; 0x100 + 8026ce4: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8026ce8: 4619 mov r1, r3 + 8026cea: 6838 ldr r0, [r7, #0] + 8026cec: f7e6 fdcc bl 800d888 lv_obj_add_style(obj, &styles->arc_indic_primary, LV_PART_INDICATOR); - 8026d84: 4b65 ldr r3, [pc, #404] ; (8026f1c ) - 8026d86: 681b ldr r3, [r3, #0] - 8026d88: f503 7384 add.w r3, r3, #264 ; 0x108 - 8026d8c: f44f 3200 mov.w r2, #131072 ; 0x20000 - 8026d90: 4619 mov r1, r3 - 8026d92: 6838 ldr r0, [r7, #0] - 8026d94: f7e6 fdae bl 800d8f4 - 8026d98: e3d9 b.n 802754e + 8026cf0: 4b65 ldr r3, [pc, #404] ; (8026e88 ) + 8026cf2: 681b ldr r3, [r3, #0] + 8026cf4: f503 7384 add.w r3, r3, #264 ; 0x108 + 8026cf8: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8026cfc: 4619 mov r1, r3 + 8026cfe: 6838 ldr r0, [r7, #0] + 8026d00: f7e6 fdc2 bl 800d888 + 8026d04: e3d9 b.n 80274ba } #endif #if LV_USE_METER else if(lv_obj_check_type(obj, &lv_meter_class)) { - 8026d9a: 4966 ldr r1, [pc, #408] ; (8026f34 ) - 8026d9c: 6838 ldr r0, [r7, #0] - 8026d9e: f7df fd7f bl 80068a0 - 8026da2: 4603 mov r3, r0 - 8026da4: 2b00 cmp r3, #0 - 8026da6: d01a beq.n 8026dde + 8026d06: 4966 ldr r1, [pc, #408] ; (8026ea0 ) + 8026d08: 6838 ldr r0, [r7, #0] + 8026d0a: f7df fd93 bl 8006834 + 8026d0e: 4603 mov r3, r0 + 8026d10: 2b00 cmp r3, #0 + 8026d12: d01a beq.n 8026d4a lv_obj_add_style(obj, &styles->card, 0); - 8026da8: 4b5c ldr r3, [pc, #368] ; (8026f1c ) - 8026daa: 681b ldr r3, [r3, #0] - 8026dac: 3318 adds r3, #24 - 8026dae: 2200 movs r2, #0 - 8026db0: 4619 mov r1, r3 - 8026db2: 6838 ldr r0, [r7, #0] - 8026db4: f7e6 fd9e bl 800d8f4 + 8026d14: 4b5c ldr r3, [pc, #368] ; (8026e88 ) + 8026d16: 681b ldr r3, [r3, #0] + 8026d18: 3318 adds r3, #24 + 8026d1a: 2200 movs r2, #0 + 8026d1c: 4619 mov r1, r3 + 8026d1e: 6838 ldr r0, [r7, #0] + 8026d20: f7e6 fdb2 bl 800d888 lv_obj_add_style(obj, &styles->circle, 0); - 8026db8: 4b58 ldr r3, [pc, #352] ; (8026f1c ) - 8026dba: 681b ldr r3, [r3, #0] - 8026dbc: 33b0 adds r3, #176 ; 0xb0 - 8026dbe: 2200 movs r2, #0 - 8026dc0: 4619 mov r1, r3 - 8026dc2: 6838 ldr r0, [r7, #0] - 8026dc4: f7e6 fd96 bl 800d8f4 + 8026d24: 4b58 ldr r3, [pc, #352] ; (8026e88 ) + 8026d26: 681b ldr r3, [r3, #0] + 8026d28: 33b0 adds r3, #176 ; 0xb0 + 8026d2a: 2200 movs r2, #0 + 8026d2c: 4619 mov r1, r3 + 8026d2e: 6838 ldr r0, [r7, #0] + 8026d30: f7e6 fdaa bl 800d888 lv_obj_add_style(obj, &styles->meter_indic, LV_PART_INDICATOR); - 8026dc8: 4b54 ldr r3, [pc, #336] ; (8026f1c ) - 8026dca: 681b ldr r3, [r3, #0] - 8026dcc: f503 73b4 add.w r3, r3, #360 ; 0x168 - 8026dd0: f44f 3200 mov.w r2, #131072 ; 0x20000 - 8026dd4: 4619 mov r1, r3 - 8026dd6: 6838 ldr r0, [r7, #0] - 8026dd8: f7e6 fd8c bl 800d8f4 - 8026ddc: e3b7 b.n 802754e + 8026d34: 4b54 ldr r3, [pc, #336] ; (8026e88 ) + 8026d36: 681b ldr r3, [r3, #0] + 8026d38: f503 73b4 add.w r3, r3, #360 ; 0x168 + 8026d3c: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8026d40: 4619 mov r1, r3 + 8026d42: 6838 ldr r0, [r7, #0] + 8026d44: f7e6 fda0 bl 800d888 + 8026d48: e3b7 b.n 80274ba } #endif #if LV_USE_TEXTAREA else if(lv_obj_check_type(obj, &lv_textarea_class)) { - 8026dde: 4956 ldr r1, [pc, #344] ; (8026f38 ) - 8026de0: 6838 ldr r0, [r7, #0] - 8026de2: f7df fd5d bl 80068a0 - 8026de6: 4603 mov r3, r0 - 8026de8: 2b00 cmp r3, #0 - 8026dea: d044 beq.n 8026e76 + 8026d4a: 4956 ldr r1, [pc, #344] ; (8026ea4 ) + 8026d4c: 6838 ldr r0, [r7, #0] + 8026d4e: f7df fd71 bl 8006834 + 8026d52: 4603 mov r3, r0 + 8026d54: 2b00 cmp r3, #0 + 8026d56: d044 beq.n 8026de2 lv_obj_add_style(obj, &styles->card, 0); - 8026dec: 4b4b ldr r3, [pc, #300] ; (8026f1c ) - 8026dee: 681b ldr r3, [r3, #0] - 8026df0: 3318 adds r3, #24 - 8026df2: 2200 movs r2, #0 - 8026df4: 4619 mov r1, r3 - 8026df6: 6838 ldr r0, [r7, #0] - 8026df8: f7e6 fd7c bl 800d8f4 + 8026d58: 4b4b ldr r3, [pc, #300] ; (8026e88 ) + 8026d5a: 681b ldr r3, [r3, #0] + 8026d5c: 3318 adds r3, #24 + 8026d5e: 2200 movs r2, #0 + 8026d60: 4619 mov r1, r3 + 8026d62: 6838 ldr r0, [r7, #0] + 8026d64: f7e6 fd90 bl 800d888 lv_obj_add_style(obj, &styles->pad_small, 0); - 8026dfc: 4b47 ldr r3, [pc, #284] ; (8026f1c ) - 8026dfe: 681b ldr r3, [r3, #0] - 8026e00: 3378 adds r3, #120 ; 0x78 - 8026e02: 2200 movs r2, #0 - 8026e04: 4619 mov r1, r3 - 8026e06: 6838 ldr r0, [r7, #0] - 8026e08: f7e6 fd74 bl 800d8f4 + 8026d68: 4b47 ldr r3, [pc, #284] ; (8026e88 ) + 8026d6a: 681b ldr r3, [r3, #0] + 8026d6c: 3378 adds r3, #120 ; 0x78 + 8026d6e: 2200 movs r2, #0 + 8026d70: 4619 mov r1, r3 + 8026d72: 6838 ldr r0, [r7, #0] + 8026d74: f7e6 fd88 bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_STATE_FOCUS_KEY); - 8026e0c: 4b43 ldr r3, [pc, #268] ; (8026f1c ) - 8026e0e: 681b ldr r3, [r3, #0] - 8026e10: 33a0 adds r3, #160 ; 0xa0 - 8026e12: 2204 movs r2, #4 - 8026e14: 4619 mov r1, r3 - 8026e16: 6838 ldr r0, [r7, #0] - 8026e18: f7e6 fd6c bl 800d8f4 + 8026d78: 4b43 ldr r3, [pc, #268] ; (8026e88 ) + 8026d7a: 681b ldr r3, [r3, #0] + 8026d7c: 33a0 adds r3, #160 ; 0xa0 + 8026d7e: 2204 movs r2, #4 + 8026d80: 4619 mov r1, r3 + 8026d82: 6838 ldr r0, [r7, #0] + 8026d84: f7e6 fd80 bl 800d888 lv_obj_add_style(obj, &styles->outline_secondary, LV_STATE_EDITED); - 8026e1c: 4b3f ldr r3, [pc, #252] ; (8026f1c ) - 8026e1e: 681b ldr r3, [r3, #0] - 8026e20: 33a8 adds r3, #168 ; 0xa8 - 8026e22: 2208 movs r2, #8 - 8026e24: 4619 mov r1, r3 - 8026e26: 6838 ldr r0, [r7, #0] - 8026e28: f7e6 fd64 bl 800d8f4 + 8026d88: 4b3f ldr r3, [pc, #252] ; (8026e88 ) + 8026d8a: 681b ldr r3, [r3, #0] + 8026d8c: 33a8 adds r3, #168 ; 0xa8 + 8026d8e: 2208 movs r2, #8 + 8026d90: 4619 mov r1, r3 + 8026d92: 6838 ldr r0, [r7, #0] + 8026d94: f7e6 fd78 bl 800d888 lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); - 8026e2c: 4b3b ldr r3, [pc, #236] ; (8026f1c ) - 8026e2e: 681b ldr r3, [r3, #0] - 8026e30: 3308 adds r3, #8 - 8026e32: f44f 3280 mov.w r2, #65536 ; 0x10000 - 8026e36: 4619 mov r1, r3 - 8026e38: 6838 ldr r0, [r7, #0] - 8026e3a: f7e6 fd5b bl 800d8f4 + 8026d98: 4b3b ldr r3, [pc, #236] ; (8026e88 ) + 8026d9a: 681b ldr r3, [r3, #0] + 8026d9c: 3308 adds r3, #8 + 8026d9e: f44f 3280 mov.w r2, #65536 ; 0x10000 + 8026da2: 4619 mov r1, r3 + 8026da4: 6838 ldr r0, [r7, #0] + 8026da6: f7e6 fd6f bl 800d888 lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); - 8026e3e: 4b37 ldr r3, [pc, #220] ; (8026f1c ) - 8026e40: 681b ldr r3, [r3, #0] - 8026e42: 3310 adds r3, #16 - 8026e44: 4a36 ldr r2, [pc, #216] ; (8026f20 ) - 8026e46: 4619 mov r1, r3 - 8026e48: 6838 ldr r0, [r7, #0] - 8026e4a: f7e6 fd53 bl 800d8f4 + 8026daa: 4b37 ldr r3, [pc, #220] ; (8026e88 ) + 8026dac: 681b ldr r3, [r3, #0] + 8026dae: 3310 adds r3, #16 + 8026db0: 4a36 ldr r2, [pc, #216] ; (8026e8c ) + 8026db2: 4619 mov r1, r3 + 8026db4: 6838 ldr r0, [r7, #0] + 8026db6: f7e6 fd67 bl 800d888 lv_obj_add_style(obj, &styles->ta_cursor, LV_PART_CURSOR | LV_STATE_FOCUSED); - 8026e4e: 4b33 ldr r3, [pc, #204] ; (8026f1c ) - 8026e50: 681b ldr r3, [r3, #0] - 8026e52: f503 73b8 add.w r3, r3, #368 ; 0x170 - 8026e56: 4a39 ldr r2, [pc, #228] ; (8026f3c ) - 8026e58: 4619 mov r1, r3 - 8026e5a: 6838 ldr r0, [r7, #0] - 8026e5c: f7e6 fd4a bl 800d8f4 + 8026dba: 4b33 ldr r3, [pc, #204] ; (8026e88 ) + 8026dbc: 681b ldr r3, [r3, #0] + 8026dbe: f503 73b8 add.w r3, r3, #368 ; 0x170 + 8026dc2: 4a39 ldr r2, [pc, #228] ; (8026ea8 ) + 8026dc4: 4619 mov r1, r3 + 8026dc6: 6838 ldr r0, [r7, #0] + 8026dc8: f7e6 fd5e bl 800d888 lv_obj_add_style(obj, &styles->ta_placeholder, LV_PART_TEXTAREA_PLACEHOLDER); - 8026e60: 4b2e ldr r3, [pc, #184] ; (8026f1c ) - 8026e62: 681b ldr r3, [r3, #0] - 8026e64: f503 73bc add.w r3, r3, #376 ; 0x178 - 8026e68: f44f 2200 mov.w r2, #524288 ; 0x80000 - 8026e6c: 4619 mov r1, r3 - 8026e6e: 6838 ldr r0, [r7, #0] - 8026e70: f7e6 fd40 bl 800d8f4 - 8026e74: e36b b.n 802754e + 8026dcc: 4b2e ldr r3, [pc, #184] ; (8026e88 ) + 8026dce: 681b ldr r3, [r3, #0] + 8026dd0: f503 73bc add.w r3, r3, #376 ; 0x178 + 8026dd4: f44f 2200 mov.w r2, #524288 ; 0x80000 + 8026dd8: 4619 mov r1, r3 + 8026dda: 6838 ldr r0, [r7, #0] + 8026ddc: f7e6 fd54 bl 800d888 + 8026de0: e36b b.n 80274ba } #endif #if LV_USE_CALENDAR else if(lv_obj_check_type(obj, &lv_calendar_class)) { - 8026e76: 4932 ldr r1, [pc, #200] ; (8026f40 ) - 8026e78: 6838 ldr r0, [r7, #0] - 8026e7a: f7df fd11 bl 80068a0 - 8026e7e: 4603 mov r3, r0 - 8026e80: 2b00 cmp r3, #0 - 8026e82: d010 beq.n 8026ea6 + 8026de2: 4932 ldr r1, [pc, #200] ; (8026eac ) + 8026de4: 6838 ldr r0, [r7, #0] + 8026de6: f7df fd25 bl 8006834 + 8026dea: 4603 mov r3, r0 + 8026dec: 2b00 cmp r3, #0 + 8026dee: d010 beq.n 8026e12 lv_obj_add_style(obj, &styles->card, 0); - 8026e84: 4b25 ldr r3, [pc, #148] ; (8026f1c ) - 8026e86: 681b ldr r3, [r3, #0] - 8026e88: 3318 adds r3, #24 - 8026e8a: 2200 movs r2, #0 - 8026e8c: 4619 mov r1, r3 - 8026e8e: 6838 ldr r0, [r7, #0] - 8026e90: f7e6 fd30 bl 800d8f4 + 8026df0: 4b25 ldr r3, [pc, #148] ; (8026e88 ) + 8026df2: 681b ldr r3, [r3, #0] + 8026df4: 3318 adds r3, #24 + 8026df6: 2200 movs r2, #0 + 8026df8: 4619 mov r1, r3 + 8026dfa: 6838 ldr r0, [r7, #0] + 8026dfc: f7e6 fd44 bl 800d888 lv_obj_add_style(obj, &styles->pad_zero, 0); - 8026e94: 4b21 ldr r3, [pc, #132] ; (8026f1c ) - 8026e96: 681b ldr r3, [r3, #0] - 8026e98: 3368 adds r3, #104 ; 0x68 - 8026e9a: 2200 movs r2, #0 - 8026e9c: 4619 mov r1, r3 - 8026e9e: 6838 ldr r0, [r7, #0] - 8026ea0: f7e6 fd28 bl 800d8f4 - 8026ea4: e353 b.n 802754e + 8026e00: 4b21 ldr r3, [pc, #132] ; (8026e88 ) + 8026e02: 681b ldr r3, [r3, #0] + 8026e04: 3368 adds r3, #104 ; 0x68 + 8026e06: 2200 movs r2, #0 + 8026e08: 4619 mov r1, r3 + 8026e0a: 6838 ldr r0, [r7, #0] + 8026e0c: f7e6 fd3c bl 800d888 + 8026e10: e353 b.n 80274ba } #endif #if LV_USE_CALENDAR_HEADER_ARROW else if(lv_obj_check_type(obj, &lv_calendar_header_arrow_class)) { - 8026ea6: 4927 ldr r1, [pc, #156] ; (8026f44 ) - 8026ea8: 6838 ldr r0, [r7, #0] - 8026eaa: f7df fcf9 bl 80068a0 - 8026eae: 4603 mov r3, r0 - 8026eb0: 2b00 cmp r3, #0 - 8026eb2: d009 beq.n 8026ec8 + 8026e12: 4927 ldr r1, [pc, #156] ; (8026eb0 ) + 8026e14: 6838 ldr r0, [r7, #0] + 8026e16: f7df fd0d bl 8006834 + 8026e1a: 4603 mov r3, r0 + 8026e1c: 2b00 cmp r3, #0 + 8026e1e: d009 beq.n 8026e34 lv_obj_add_style(obj, &styles->calendar_header, 0); - 8026eb4: 4b19 ldr r3, [pc, #100] ; (8026f1c ) - 8026eb6: 681b ldr r3, [r3, #0] - 8026eb8: f503 73c8 add.w r3, r3, #400 ; 0x190 - 8026ebc: 2200 movs r2, #0 - 8026ebe: 4619 mov r1, r3 - 8026ec0: 6838 ldr r0, [r7, #0] - 8026ec2: f7e6 fd17 bl 800d8f4 - 8026ec6: e342 b.n 802754e + 8026e20: 4b19 ldr r3, [pc, #100] ; (8026e88 ) + 8026e22: 681b ldr r3, [r3, #0] + 8026e24: f503 73c8 add.w r3, r3, #400 ; 0x190 + 8026e28: 2200 movs r2, #0 + 8026e2a: 4619 mov r1, r3 + 8026e2c: 6838 ldr r0, [r7, #0] + 8026e2e: f7e6 fd2b bl 800d888 + 8026e32: e342 b.n 80274ba } #endif #if LV_USE_CALENDAR_HEADER_DROPDOWN else if(lv_obj_check_type(obj, &lv_calendar_header_dropdown_class)) { - 8026ec8: 491f ldr r1, [pc, #124] ; (8026f48 ) - 8026eca: 6838 ldr r0, [r7, #0] - 8026ecc: f7df fce8 bl 80068a0 - 8026ed0: 4603 mov r3, r0 - 8026ed2: 2b00 cmp r3, #0 - 8026ed4: d009 beq.n 8026eea + 8026e34: 491f ldr r1, [pc, #124] ; (8026eb4 ) + 8026e36: 6838 ldr r0, [r7, #0] + 8026e38: f7df fcfc bl 8006834 + 8026e3c: 4603 mov r3, r0 + 8026e3e: 2b00 cmp r3, #0 + 8026e40: d009 beq.n 8026e56 lv_obj_add_style(obj, &styles->calendar_header, 0); - 8026ed6: 4b11 ldr r3, [pc, #68] ; (8026f1c ) - 8026ed8: 681b ldr r3, [r3, #0] - 8026eda: f503 73c8 add.w r3, r3, #400 ; 0x190 - 8026ede: 2200 movs r2, #0 - 8026ee0: 4619 mov r1, r3 - 8026ee2: 6838 ldr r0, [r7, #0] - 8026ee4: f7e6 fd06 bl 800d8f4 - 8026ee8: e331 b.n 802754e + 8026e42: 4b11 ldr r3, [pc, #68] ; (8026e88 ) + 8026e44: 681b ldr r3, [r3, #0] + 8026e46: f503 73c8 add.w r3, r3, #400 ; 0x190 + 8026e4a: 2200 movs r2, #0 + 8026e4c: 4619 mov r1, r3 + 8026e4e: 6838 ldr r0, [r7, #0] + 8026e50: f7e6 fd1a bl 800d888 + 8026e54: e331 b.n 80274ba } #endif #if LV_USE_KEYBOARD else if(lv_obj_check_type(obj, &lv_keyboard_class)) { - 8026eea: 4918 ldr r1, [pc, #96] ; (8026f4c ) - 8026eec: 6838 ldr r0, [r7, #0] - 8026eee: f7df fcd7 bl 80068a0 - 8026ef2: 4603 mov r3, r0 - 8026ef4: 2b00 cmp r3, #0 - 8026ef6: f000 808a beq.w 802700e + 8026e56: 4918 ldr r1, [pc, #96] ; (8026eb8 ) + 8026e58: 6838 ldr r0, [r7, #0] + 8026e5a: f7df fceb bl 8006834 + 8026e5e: 4603 mov r3, r0 + 8026e60: 2b00 cmp r3, #0 + 8026e62: f000 808a beq.w 8026f7a lv_obj_add_style(obj, &styles->scr, 0); - 8026efa: 4b08 ldr r3, [pc, #32] ; (8026f1c ) - 8026efc: 681b ldr r3, [r3, #0] - 8026efe: 2200 movs r2, #0 - 8026f00: 4619 mov r1, r3 - 8026f02: 6838 ldr r0, [r7, #0] - 8026f04: f7e6 fcf6 bl 800d8f4 + 8026e66: 4b08 ldr r3, [pc, #32] ; (8026e88 ) + 8026e68: 681b ldr r3, [r3, #0] + 8026e6a: 2200 movs r2, #0 + 8026e6c: 4619 mov r1, r3 + 8026e6e: 6838 ldr r0, [r7, #0] + 8026e70: f7e6 fd0a bl 800d888 lv_obj_add_style(obj, disp_size == DISP_LARGE ? &styles->pad_small : &styles->pad_tiny, 0); - 8026f08: 4b11 ldr r3, [pc, #68] ; (8026f50 ) - 8026f0a: 781b ldrb r3, [r3, #0] - 8026f0c: 2b01 cmp r3, #1 - 8026f0e: d121 bne.n 8026f54 - 8026f10: 4b02 ldr r3, [pc, #8] ; (8026f1c ) - 8026f12: 681b ldr r3, [r3, #0] - 8026f14: 3378 adds r3, #120 ; 0x78 - 8026f16: e020 b.n 8026f5a - 8026f18: 08070a54 .word 0x08070a54 - 8026f1c: 20001c4c .word 0x20001c4c - 8026f20: 00010040 .word 0x00010040 - 8026f24: 00040001 .word 0x00040001 - 8026f28: 00040020 .word 0x00040020 - 8026f2c: 080709ac .word 0x080709ac - 8026f30: 0806d1a0 .word 0x0806d1a0 - 8026f34: 0806d130 .word 0x0806d130 - 8026f38: 08070b50 .word 0x08070b50 - 8026f3c: 00070002 .word 0x00070002 - 8026f40: 0806cba4 .word 0x0806cba4 - 8026f44: 0806cbc0 .word 0x0806cbc0 - 8026f48: 0806cbdc .word 0x0806cbdc - 8026f4c: 0806cc30 .word 0x0806cc30 - 8026f50: 20001c74 .word 0x20001c74 - 8026f54: 4bb0 ldr r3, [pc, #704] ; (8027218 ) - 8026f56: 681b ldr r3, [r3, #0] - 8026f58: 3370 adds r3, #112 ; 0x70 - 8026f5a: 2200 movs r2, #0 - 8026f5c: 4619 mov r1, r3 - 8026f5e: 6838 ldr r0, [r7, #0] - 8026f60: f7e6 fcc8 bl 800d8f4 + 8026e74: 4b11 ldr r3, [pc, #68] ; (8026ebc ) + 8026e76: 781b ldrb r3, [r3, #0] + 8026e78: 2b01 cmp r3, #1 + 8026e7a: d121 bne.n 8026ec0 + 8026e7c: 4b02 ldr r3, [pc, #8] ; (8026e88 ) + 8026e7e: 681b ldr r3, [r3, #0] + 8026e80: 3378 adds r3, #120 ; 0x78 + 8026e82: e020 b.n 8026ec6 + 8026e84: 080709ac .word 0x080709ac + 8026e88: 20001c4c .word 0x20001c4c + 8026e8c: 00010040 .word 0x00010040 + 8026e90: 00040001 .word 0x00040001 + 8026e94: 00040020 .word 0x00040020 + 8026e98: 08070904 .word 0x08070904 + 8026e9c: 0806d0f8 .word 0x0806d0f8 + 8026ea0: 0806d088 .word 0x0806d088 + 8026ea4: 08070aa8 .word 0x08070aa8 + 8026ea8: 00070002 .word 0x00070002 + 8026eac: 0806cafc .word 0x0806cafc + 8026eb0: 0806cb18 .word 0x0806cb18 + 8026eb4: 0806cb34 .word 0x0806cb34 + 8026eb8: 0806cb88 .word 0x0806cb88 + 8026ebc: 20001c74 .word 0x20001c74 + 8026ec0: 4bb0 ldr r3, [pc, #704] ; (8027184 ) + 8026ec2: 681b ldr r3, [r3, #0] + 8026ec4: 3370 adds r3, #112 ; 0x70 + 8026ec6: 2200 movs r2, #0 + 8026ec8: 4619 mov r1, r3 + 8026eca: 6838 ldr r0, [r7, #0] + 8026ecc: f7e6 fcdc bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_STATE_FOCUS_KEY); - 8026f64: 4bac ldr r3, [pc, #688] ; (8027218 ) - 8026f66: 681b ldr r3, [r3, #0] - 8026f68: 33a0 adds r3, #160 ; 0xa0 - 8026f6a: 2204 movs r2, #4 - 8026f6c: 4619 mov r1, r3 - 8026f6e: 6838 ldr r0, [r7, #0] - 8026f70: f7e6 fcc0 bl 800d8f4 + 8026ed0: 4bac ldr r3, [pc, #688] ; (8027184 ) + 8026ed2: 681b ldr r3, [r3, #0] + 8026ed4: 33a0 adds r3, #160 ; 0xa0 + 8026ed6: 2204 movs r2, #4 + 8026ed8: 4619 mov r1, r3 + 8026eda: 6838 ldr r0, [r7, #0] + 8026edc: f7e6 fcd4 bl 800d888 lv_obj_add_style(obj, &styles->outline_secondary, LV_STATE_EDITED); - 8026f74: 4ba8 ldr r3, [pc, #672] ; (8027218 ) - 8026f76: 681b ldr r3, [r3, #0] - 8026f78: 33a8 adds r3, #168 ; 0xa8 - 8026f7a: 2208 movs r2, #8 - 8026f7c: 4619 mov r1, r3 - 8026f7e: 6838 ldr r0, [r7, #0] - 8026f80: f7e6 fcb8 bl 800d8f4 + 8026ee0: 4ba8 ldr r3, [pc, #672] ; (8027184 ) + 8026ee2: 681b ldr r3, [r3, #0] + 8026ee4: 33a8 adds r3, #168 ; 0xa8 + 8026ee6: 2208 movs r2, #8 + 8026ee8: 4619 mov r1, r3 + 8026eea: 6838 ldr r0, [r7, #0] + 8026eec: f7e6 fccc bl 800d888 lv_obj_add_style(obj, &styles->btn, LV_PART_ITEMS); - 8026f84: 4ba4 ldr r3, [pc, #656] ; (8027218 ) - 8026f86: 681b ldr r3, [r3, #0] - 8026f88: 3320 adds r3, #32 - 8026f8a: f44f 22a0 mov.w r2, #327680 ; 0x50000 - 8026f8e: 4619 mov r1, r3 - 8026f90: 6838 ldr r0, [r7, #0] - 8026f92: f7e6 fcaf bl 800d8f4 + 8026ef0: 4ba4 ldr r3, [pc, #656] ; (8027184 ) + 8026ef2: 681b ldr r3, [r3, #0] + 8026ef4: 3320 adds r3, #32 + 8026ef6: f44f 22a0 mov.w r2, #327680 ; 0x50000 + 8026efa: 4619 mov r1, r3 + 8026efc: 6838 ldr r0, [r7, #0] + 8026efe: f7e6 fcc3 bl 800d888 lv_obj_add_style(obj, &styles->disabled, LV_PART_ITEMS | LV_STATE_DISABLED); - 8026f96: 4ba0 ldr r3, [pc, #640] ; (8027218 ) - 8026f98: 681b ldr r3, [r3, #0] - 8026f9a: 3360 adds r3, #96 ; 0x60 - 8026f9c: 4a9f ldr r2, [pc, #636] ; (802721c ) - 8026f9e: 4619 mov r1, r3 - 8026fa0: 6838 ldr r0, [r7, #0] - 8026fa2: f7e6 fca7 bl 800d8f4 + 8026f02: 4ba0 ldr r3, [pc, #640] ; (8027184 ) + 8026f04: 681b ldr r3, [r3, #0] + 8026f06: 3360 adds r3, #96 ; 0x60 + 8026f08: 4a9f ldr r2, [pc, #636] ; (8027188 ) + 8026f0a: 4619 mov r1, r3 + 8026f0c: 6838 ldr r0, [r7, #0] + 8026f0e: f7e6 fcbb bl 800d888 lv_obj_add_style(obj, &styles->bg_color_white, LV_PART_ITEMS); - 8026fa6: 4b9c ldr r3, [pc, #624] ; (8027218 ) - 8026fa8: 681b ldr r3, [r3, #0] - 8026faa: 3350 adds r3, #80 ; 0x50 - 8026fac: f44f 22a0 mov.w r2, #327680 ; 0x50000 - 8026fb0: 4619 mov r1, r3 - 8026fb2: 6838 ldr r0, [r7, #0] - 8026fb4: f7e6 fc9e bl 800d8f4 + 8026f12: 4b9c ldr r3, [pc, #624] ; (8027184 ) + 8026f14: 681b ldr r3, [r3, #0] + 8026f16: 3350 adds r3, #80 ; 0x50 + 8026f18: f44f 22a0 mov.w r2, #327680 ; 0x50000 + 8026f1c: 4619 mov r1, r3 + 8026f1e: 6838 ldr r0, [r7, #0] + 8026f20: f7e6 fcb2 bl 800d888 lv_obj_add_style(obj, &styles->keyboard_btn_bg, LV_PART_ITEMS); - 8026fb8: 4b97 ldr r3, [pc, #604] ; (8027218 ) - 8026fba: 681b ldr r3, [r3, #0] - 8026fbc: f503 7302 add.w r3, r3, #520 ; 0x208 - 8026fc0: f44f 22a0 mov.w r2, #327680 ; 0x50000 - 8026fc4: 4619 mov r1, r3 - 8026fc6: 6838 ldr r0, [r7, #0] - 8026fc8: f7e6 fc94 bl 800d8f4 + 8026f24: 4b97 ldr r3, [pc, #604] ; (8027184 ) + 8026f26: 681b ldr r3, [r3, #0] + 8026f28: f503 7302 add.w r3, r3, #520 ; 0x208 + 8026f2c: f44f 22a0 mov.w r2, #327680 ; 0x50000 + 8026f30: 4619 mov r1, r3 + 8026f32: 6838 ldr r0, [r7, #0] + 8026f34: f7e6 fca8 bl 800d888 lv_obj_add_style(obj, &styles->pressed, LV_PART_ITEMS | LV_STATE_PRESSED); - 8026fcc: 4b92 ldr r3, [pc, #584] ; (8027218 ) - 8026fce: 681b ldr r3, [r3, #0] - 8026fd0: 3358 adds r3, #88 ; 0x58 - 8026fd2: 4a93 ldr r2, [pc, #588] ; (8027220 ) - 8026fd4: 4619 mov r1, r3 - 8026fd6: 6838 ldr r0, [r7, #0] - 8026fd8: f7e6 fc8c bl 800d8f4 + 8026f38: 4b92 ldr r3, [pc, #584] ; (8027184 ) + 8026f3a: 681b ldr r3, [r3, #0] + 8026f3c: 3358 adds r3, #88 ; 0x58 + 8026f3e: 4a93 ldr r2, [pc, #588] ; (802718c ) + 8026f40: 4619 mov r1, r3 + 8026f42: 6838 ldr r0, [r7, #0] + 8026f44: f7e6 fca0 bl 800d888 lv_obj_add_style(obj, &styles->bg_color_grey, LV_PART_ITEMS | LV_STATE_CHECKED); - 8026fdc: 4b8e ldr r3, [pc, #568] ; (8027218 ) - 8026fde: 681b ldr r3, [r3, #0] - 8026fe0: 3348 adds r3, #72 ; 0x48 - 8026fe2: 4a90 ldr r2, [pc, #576] ; (8027224 ) - 8026fe4: 4619 mov r1, r3 - 8026fe6: 6838 ldr r0, [r7, #0] - 8026fe8: f7e6 fc84 bl 800d8f4 + 8026f48: 4b8e ldr r3, [pc, #568] ; (8027184 ) + 8026f4a: 681b ldr r3, [r3, #0] + 8026f4c: 3348 adds r3, #72 ; 0x48 + 8026f4e: 4a90 ldr r2, [pc, #576] ; (8027190 ) + 8026f50: 4619 mov r1, r3 + 8026f52: 6838 ldr r0, [r7, #0] + 8026f54: f7e6 fc98 bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary_muted, LV_PART_ITEMS | LV_STATE_FOCUS_KEY); - 8026fec: 4b8a ldr r3, [pc, #552] ; (8027218 ) - 8026fee: 681b ldr r3, [r3, #0] - 8026ff0: 3330 adds r3, #48 ; 0x30 - 8026ff2: 4a8d ldr r2, [pc, #564] ; (8027228 ) - 8026ff4: 4619 mov r1, r3 - 8026ff6: 6838 ldr r0, [r7, #0] - 8026ff8: f7e6 fc7c bl 800d8f4 + 8026f58: 4b8a ldr r3, [pc, #552] ; (8027184 ) + 8026f5a: 681b ldr r3, [r3, #0] + 8026f5c: 3330 adds r3, #48 ; 0x30 + 8026f5e: 4a8d ldr r2, [pc, #564] ; (8027194 ) + 8026f60: 4619 mov r1, r3 + 8026f62: 6838 ldr r0, [r7, #0] + 8026f64: f7e6 fc90 bl 800d888 lv_obj_add_style(obj, &styles->bg_color_secondary_muted, LV_PART_ITEMS | LV_STATE_EDITED); - 8026ffc: 4b86 ldr r3, [pc, #536] ; (8027218 ) - 8026ffe: 681b ldr r3, [r3, #0] - 8027000: 3340 adds r3, #64 ; 0x40 - 8027002: 4a8a ldr r2, [pc, #552] ; (802722c ) - 8027004: 4619 mov r1, r3 - 8027006: 6838 ldr r0, [r7, #0] - 8027008: f7e6 fc74 bl 800d8f4 - 802700c: e29f b.n 802754e + 8026f68: 4b86 ldr r3, [pc, #536] ; (8027184 ) + 8026f6a: 681b ldr r3, [r3, #0] + 8026f6c: 3340 adds r3, #64 ; 0x40 + 8026f6e: 4a8a ldr r2, [pc, #552] ; (8027198 ) + 8026f70: 4619 mov r1, r3 + 8026f72: 6838 ldr r0, [r7, #0] + 8026f74: f7e6 fc88 bl 800d888 + 8026f78: e29f b.n 80274ba } #endif #if LV_USE_LIST else if(lv_obj_check_type(obj, &lv_list_class)) { - 802700e: 4988 ldr r1, [pc, #544] ; (8027230 ) - 8027010: 6838 ldr r0, [r7, #0] - 8027012: f7df fc45 bl 80068a0 - 8027016: 4603 mov r3, r0 - 8027018: 2b00 cmp r3, #0 - 802701a: d022 beq.n 8027062 + 8026f7a: 4988 ldr r1, [pc, #544] ; (802719c ) + 8026f7c: 6838 ldr r0, [r7, #0] + 8026f7e: f7df fc59 bl 8006834 + 8026f82: 4603 mov r3, r0 + 8026f84: 2b00 cmp r3, #0 + 8026f86: d022 beq.n 8026fce lv_obj_add_style(obj, &styles->card, 0); - 802701c: 4b7e ldr r3, [pc, #504] ; (8027218 ) - 802701e: 681b ldr r3, [r3, #0] - 8027020: 3318 adds r3, #24 - 8027022: 2200 movs r2, #0 - 8027024: 4619 mov r1, r3 - 8027026: 6838 ldr r0, [r7, #0] - 8027028: f7e6 fc64 bl 800d8f4 + 8026f88: 4b7e ldr r3, [pc, #504] ; (8027184 ) + 8026f8a: 681b ldr r3, [r3, #0] + 8026f8c: 3318 adds r3, #24 + 8026f8e: 2200 movs r2, #0 + 8026f90: 4619 mov r1, r3 + 8026f92: 6838 ldr r0, [r7, #0] + 8026f94: f7e6 fc78 bl 800d888 lv_obj_add_style(obj, &styles->list_bg, 0); - 802702c: 4b7a ldr r3, [pc, #488] ; (8027218 ) - 802702e: 681b ldr r3, [r3, #0] - 8027030: f503 7304 add.w r3, r3, #528 ; 0x210 - 8027034: 2200 movs r2, #0 - 8027036: 4619 mov r1, r3 - 8027038: 6838 ldr r0, [r7, #0] - 802703a: f7e6 fc5b bl 800d8f4 + 8026f98: 4b7a ldr r3, [pc, #488] ; (8027184 ) + 8026f9a: 681b ldr r3, [r3, #0] + 8026f9c: f503 7304 add.w r3, r3, #528 ; 0x210 + 8026fa0: 2200 movs r2, #0 + 8026fa2: 4619 mov r1, r3 + 8026fa4: 6838 ldr r0, [r7, #0] + 8026fa6: f7e6 fc6f bl 800d888 lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); - 802703e: 4b76 ldr r3, [pc, #472] ; (8027218 ) - 8027040: 681b ldr r3, [r3, #0] - 8027042: 3308 adds r3, #8 - 8027044: f44f 3280 mov.w r2, #65536 ; 0x10000 - 8027048: 4619 mov r1, r3 - 802704a: 6838 ldr r0, [r7, #0] - 802704c: f7e6 fc52 bl 800d8f4 + 8026faa: 4b76 ldr r3, [pc, #472] ; (8027184 ) + 8026fac: 681b ldr r3, [r3, #0] + 8026fae: 3308 adds r3, #8 + 8026fb0: f44f 3280 mov.w r2, #65536 ; 0x10000 + 8026fb4: 4619 mov r1, r3 + 8026fb6: 6838 ldr r0, [r7, #0] + 8026fb8: f7e6 fc66 bl 800d888 lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); - 8027050: 4b71 ldr r3, [pc, #452] ; (8027218 ) - 8027052: 681b ldr r3, [r3, #0] - 8027054: 3310 adds r3, #16 - 8027056: 4a77 ldr r2, [pc, #476] ; (8027234 ) - 8027058: 4619 mov r1, r3 - 802705a: 6838 ldr r0, [r7, #0] - 802705c: f7e6 fc4a bl 800d8f4 + 8026fbc: 4b71 ldr r3, [pc, #452] ; (8027184 ) + 8026fbe: 681b ldr r3, [r3, #0] + 8026fc0: 3310 adds r3, #16 + 8026fc2: 4a77 ldr r2, [pc, #476] ; (80271a0 ) + 8026fc4: 4619 mov r1, r3 + 8026fc6: 6838 ldr r0, [r7, #0] + 8026fc8: f7e6 fc5e bl 800d888 return; - 8027060: e275 b.n 802754e + 8026fcc: e275 b.n 80274ba } else if(lv_obj_check_type(obj, &lv_list_text_class)) { - 8027062: 4975 ldr r1, [pc, #468] ; (8027238 ) - 8027064: 6838 ldr r0, [r7, #0] - 8027066: f7df fc1b bl 80068a0 - 802706a: 4603 mov r3, r0 - 802706c: 2b00 cmp r3, #0 - 802706e: d011 beq.n 8027094 + 8026fce: 4975 ldr r1, [pc, #468] ; (80271a4 ) + 8026fd0: 6838 ldr r0, [r7, #0] + 8026fd2: f7df fc2f bl 8006834 + 8026fd6: 4603 mov r3, r0 + 8026fd8: 2b00 cmp r3, #0 + 8026fda: d011 beq.n 8027000 lv_obj_add_style(obj, &styles->bg_color_grey, 0); - 8027070: 4b69 ldr r3, [pc, #420] ; (8027218 ) - 8027072: 681b ldr r3, [r3, #0] - 8027074: 3348 adds r3, #72 ; 0x48 - 8027076: 2200 movs r2, #0 - 8027078: 4619 mov r1, r3 - 802707a: 6838 ldr r0, [r7, #0] - 802707c: f7e6 fc3a bl 800d8f4 + 8026fdc: 4b69 ldr r3, [pc, #420] ; (8027184 ) + 8026fde: 681b ldr r3, [r3, #0] + 8026fe0: 3348 adds r3, #72 ; 0x48 + 8026fe2: 2200 movs r2, #0 + 8026fe4: 4619 mov r1, r3 + 8026fe6: 6838 ldr r0, [r7, #0] + 8026fe8: f7e6 fc4e bl 800d888 lv_obj_add_style(obj, &styles->list_item_grow, 0); - 8027080: 4b65 ldr r3, [pc, #404] ; (8027218 ) - 8027082: 681b ldr r3, [r3, #0] - 8027084: f503 7308 add.w r3, r3, #544 ; 0x220 - 8027088: 2200 movs r2, #0 - 802708a: 4619 mov r1, r3 - 802708c: 6838 ldr r0, [r7, #0] - 802708e: f7e6 fc31 bl 800d8f4 - 8027092: e25c b.n 802754e + 8026fec: 4b65 ldr r3, [pc, #404] ; (8027184 ) + 8026fee: 681b ldr r3, [r3, #0] + 8026ff0: f503 7308 add.w r3, r3, #544 ; 0x220 + 8026ff4: 2200 movs r2, #0 + 8026ff6: 4619 mov r1, r3 + 8026ff8: 6838 ldr r0, [r7, #0] + 8026ffa: f7e6 fc45 bl 800d888 + 8026ffe: e25c b.n 80274ba } else if(lv_obj_check_type(obj, &lv_list_btn_class)) { - 8027094: 4969 ldr r1, [pc, #420] ; (802723c ) - 8027096: 6838 ldr r0, [r7, #0] - 8027098: f7df fc02 bl 80068a0 - 802709c: 4603 mov r3, r0 - 802709e: 2b00 cmp r3, #0 - 80270a0: d033 beq.n 802710a + 8027000: 4969 ldr r1, [pc, #420] ; (80271a8 ) + 8027002: 6838 ldr r0, [r7, #0] + 8027004: f7df fc16 bl 8006834 + 8027008: 4603 mov r3, r0 + 802700a: 2b00 cmp r3, #0 + 802700c: d033 beq.n 8027076 lv_obj_add_style(obj, &styles->bg_color_white, 0); - 80270a2: 4b5d ldr r3, [pc, #372] ; (8027218 ) - 80270a4: 681b ldr r3, [r3, #0] - 80270a6: 3350 adds r3, #80 ; 0x50 - 80270a8: 2200 movs r2, #0 - 80270aa: 4619 mov r1, r3 - 80270ac: 6838 ldr r0, [r7, #0] - 80270ae: f7e6 fc21 bl 800d8f4 + 802700e: 4b5d ldr r3, [pc, #372] ; (8027184 ) + 8027010: 681b ldr r3, [r3, #0] + 8027012: 3350 adds r3, #80 ; 0x50 + 8027014: 2200 movs r2, #0 + 8027016: 4619 mov r1, r3 + 8027018: 6838 ldr r0, [r7, #0] + 802701a: f7e6 fc35 bl 800d888 lv_obj_add_style(obj, &styles->list_btn, 0); - 80270b2: 4b59 ldr r3, [pc, #356] ; (8027218 ) - 80270b4: 681b ldr r3, [r3, #0] - 80270b6: f503 7306 add.w r3, r3, #536 ; 0x218 - 80270ba: 2200 movs r2, #0 - 80270bc: 4619 mov r1, r3 - 80270be: 6838 ldr r0, [r7, #0] - 80270c0: f7e6 fc18 bl 800d8f4 + 802701e: 4b59 ldr r3, [pc, #356] ; (8027184 ) + 8027020: 681b ldr r3, [r3, #0] + 8027022: f503 7306 add.w r3, r3, #536 ; 0x218 + 8027026: 2200 movs r2, #0 + 8027028: 4619 mov r1, r3 + 802702a: 6838 ldr r0, [r7, #0] + 802702c: f7e6 fc2c bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary, LV_STATE_FOCUS_KEY); - 80270c4: 4b54 ldr r3, [pc, #336] ; (8027218 ) - 80270c6: 681b ldr r3, [r3, #0] - 80270c8: 3328 adds r3, #40 ; 0x28 - 80270ca: 2204 movs r2, #4 - 80270cc: 4619 mov r1, r3 - 80270ce: 6838 ldr r0, [r7, #0] - 80270d0: f7e6 fc10 bl 800d8f4 + 8027030: 4b54 ldr r3, [pc, #336] ; (8027184 ) + 8027032: 681b ldr r3, [r3, #0] + 8027034: 3328 adds r3, #40 ; 0x28 + 8027036: 2204 movs r2, #4 + 8027038: 4619 mov r1, r3 + 802703a: 6838 ldr r0, [r7, #0] + 802703c: f7e6 fc24 bl 800d888 lv_obj_add_style(obj, &styles->list_item_grow, LV_STATE_FOCUS_KEY); - 80270d4: 4b50 ldr r3, [pc, #320] ; (8027218 ) - 80270d6: 681b ldr r3, [r3, #0] - 80270d8: f503 7308 add.w r3, r3, #544 ; 0x220 - 80270dc: 2204 movs r2, #4 - 80270de: 4619 mov r1, r3 - 80270e0: 6838 ldr r0, [r7, #0] - 80270e2: f7e6 fc07 bl 800d8f4 + 8027040: 4b50 ldr r3, [pc, #320] ; (8027184 ) + 8027042: 681b ldr r3, [r3, #0] + 8027044: f503 7308 add.w r3, r3, #544 ; 0x220 + 8027048: 2204 movs r2, #4 + 802704a: 4619 mov r1, r3 + 802704c: 6838 ldr r0, [r7, #0] + 802704e: f7e6 fc1b bl 800d888 lv_obj_add_style(obj, &styles->list_item_grow, LV_STATE_PRESSED); - 80270e6: 4b4c ldr r3, [pc, #304] ; (8027218 ) - 80270e8: 681b ldr r3, [r3, #0] - 80270ea: f503 7308 add.w r3, r3, #544 ; 0x220 - 80270ee: 2220 movs r2, #32 - 80270f0: 4619 mov r1, r3 - 80270f2: 6838 ldr r0, [r7, #0] - 80270f4: f7e6 fbfe bl 800d8f4 + 8027052: 4b4c ldr r3, [pc, #304] ; (8027184 ) + 8027054: 681b ldr r3, [r3, #0] + 8027056: f503 7308 add.w r3, r3, #544 ; 0x220 + 802705a: 2220 movs r2, #32 + 802705c: 4619 mov r1, r3 + 802705e: 6838 ldr r0, [r7, #0] + 8027060: f7e6 fc12 bl 800d888 lv_obj_add_style(obj, &styles->pressed, LV_STATE_PRESSED); - 80270f8: 4b47 ldr r3, [pc, #284] ; (8027218 ) - 80270fa: 681b ldr r3, [r3, #0] - 80270fc: 3358 adds r3, #88 ; 0x58 - 80270fe: 2220 movs r2, #32 - 8027100: 4619 mov r1, r3 - 8027102: 6838 ldr r0, [r7, #0] - 8027104: f7e6 fbf6 bl 800d8f4 - 8027108: e221 b.n 802754e + 8027064: 4b47 ldr r3, [pc, #284] ; (8027184 ) + 8027066: 681b ldr r3, [r3, #0] + 8027068: 3358 adds r3, #88 ; 0x58 + 802706a: 2220 movs r2, #32 + 802706c: 4619 mov r1, r3 + 802706e: 6838 ldr r0, [r7, #0] + 8027070: f7e6 fc0a bl 800d888 + 8027074: e221 b.n 80274ba } #endif #if LV_USE_MENU else if(lv_obj_check_type(obj, &lv_menu_class)) { - 802710a: 494d ldr r1, [pc, #308] ; (8027240 ) - 802710c: 6838 ldr r0, [r7, #0] - 802710e: f7df fbc7 bl 80068a0 - 8027112: 4603 mov r3, r0 - 8027114: 2b00 cmp r3, #0 - 8027116: d011 beq.n 802713c + 8027076: 494d ldr r1, [pc, #308] ; (80271ac ) + 8027078: 6838 ldr r0, [r7, #0] + 802707a: f7df fbdb bl 8006834 + 802707e: 4603 mov r3, r0 + 8027080: 2b00 cmp r3, #0 + 8027082: d011 beq.n 80270a8 lv_obj_add_style(obj, &styles->card, 0); - 8027118: 4b3f ldr r3, [pc, #252] ; (8027218 ) - 802711a: 681b ldr r3, [r3, #0] - 802711c: 3318 adds r3, #24 - 802711e: 2200 movs r2, #0 - 8027120: 4619 mov r1, r3 - 8027122: 6838 ldr r0, [r7, #0] - 8027124: f7e6 fbe6 bl 800d8f4 + 8027084: 4b3f ldr r3, [pc, #252] ; (8027184 ) + 8027086: 681b ldr r3, [r3, #0] + 8027088: 3318 adds r3, #24 + 802708a: 2200 movs r2, #0 + 802708c: 4619 mov r1, r3 + 802708e: 6838 ldr r0, [r7, #0] + 8027090: f7e6 fbfa bl 800d888 lv_obj_add_style(obj, &styles->menu_bg, 0); - 8027128: 4b3b ldr r3, [pc, #236] ; (8027218 ) - 802712a: 681b ldr r3, [r3, #0] - 802712c: f503 73d0 add.w r3, r3, #416 ; 0x1a0 - 8027130: 2200 movs r2, #0 - 8027132: 4619 mov r1, r3 - 8027134: 6838 ldr r0, [r7, #0] - 8027136: f7e6 fbdd bl 800d8f4 - 802713a: e208 b.n 802754e + 8027094: 4b3b ldr r3, [pc, #236] ; (8027184 ) + 8027096: 681b ldr r3, [r3, #0] + 8027098: f503 73d0 add.w r3, r3, #416 ; 0x1a0 + 802709c: 2200 movs r2, #0 + 802709e: 4619 mov r1, r3 + 80270a0: 6838 ldr r0, [r7, #0] + 80270a2: f7e6 fbf1 bl 800d888 + 80270a6: e208 b.n 80274ba } else if(lv_obj_check_type(obj, &lv_menu_sidebar_cont_class)) { - 802713c: 4941 ldr r1, [pc, #260] ; (8027244 ) - 802713e: 6838 ldr r0, [r7, #0] - 8027140: f7df fbae bl 80068a0 - 8027144: 4603 mov r3, r0 - 8027146: 2b00 cmp r3, #0 - 8027148: d01a beq.n 8027180 + 80270a8: 4941 ldr r1, [pc, #260] ; (80271b0 ) + 80270aa: 6838 ldr r0, [r7, #0] + 80270ac: f7df fbc2 bl 8006834 + 80270b0: 4603 mov r3, r0 + 80270b2: 2b00 cmp r3, #0 + 80270b4: d01a beq.n 80270ec lv_obj_add_style(obj, &styles->menu_sidebar_cont, 0); - 802714a: 4b33 ldr r3, [pc, #204] ; (8027218 ) - 802714c: 681b ldr r3, [r3, #0] - 802714e: f503 73d8 add.w r3, r3, #432 ; 0x1b0 - 8027152: 2200 movs r2, #0 - 8027154: 4619 mov r1, r3 - 8027156: 6838 ldr r0, [r7, #0] - 8027158: f7e6 fbcc bl 800d8f4 + 80270b6: 4b33 ldr r3, [pc, #204] ; (8027184 ) + 80270b8: 681b ldr r3, [r3, #0] + 80270ba: f503 73d8 add.w r3, r3, #432 ; 0x1b0 + 80270be: 2200 movs r2, #0 + 80270c0: 4619 mov r1, r3 + 80270c2: 6838 ldr r0, [r7, #0] + 80270c4: f7e6 fbe0 bl 800d888 lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); - 802715c: 4b2e ldr r3, [pc, #184] ; (8027218 ) - 802715e: 681b ldr r3, [r3, #0] - 8027160: 3308 adds r3, #8 - 8027162: f44f 3280 mov.w r2, #65536 ; 0x10000 - 8027166: 4619 mov r1, r3 - 8027168: 6838 ldr r0, [r7, #0] - 802716a: f7e6 fbc3 bl 800d8f4 + 80270c8: 4b2e ldr r3, [pc, #184] ; (8027184 ) + 80270ca: 681b ldr r3, [r3, #0] + 80270cc: 3308 adds r3, #8 + 80270ce: f44f 3280 mov.w r2, #65536 ; 0x10000 + 80270d2: 4619 mov r1, r3 + 80270d4: 6838 ldr r0, [r7, #0] + 80270d6: f7e6 fbd7 bl 800d888 lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); - 802716e: 4b2a ldr r3, [pc, #168] ; (8027218 ) - 8027170: 681b ldr r3, [r3, #0] - 8027172: 3310 adds r3, #16 - 8027174: 4a2f ldr r2, [pc, #188] ; (8027234 ) - 8027176: 4619 mov r1, r3 - 8027178: 6838 ldr r0, [r7, #0] - 802717a: f7e6 fbbb bl 800d8f4 - 802717e: e1e6 b.n 802754e + 80270da: 4b2a ldr r3, [pc, #168] ; (8027184 ) + 80270dc: 681b ldr r3, [r3, #0] + 80270de: 3310 adds r3, #16 + 80270e0: 4a2f ldr r2, [pc, #188] ; (80271a0 ) + 80270e2: 4619 mov r1, r3 + 80270e4: 6838 ldr r0, [r7, #0] + 80270e6: f7e6 fbcf bl 800d888 + 80270ea: e1e6 b.n 80274ba } else if(lv_obj_check_type(obj, &lv_menu_main_cont_class)) { - 8027180: 4931 ldr r1, [pc, #196] ; (8027248 ) - 8027182: 6838 ldr r0, [r7, #0] - 8027184: f7df fb8c bl 80068a0 - 8027188: 4603 mov r3, r0 - 802718a: 2b00 cmp r3, #0 - 802718c: d01a beq.n 80271c4 + 80270ec: 4931 ldr r1, [pc, #196] ; (80271b4 ) + 80270ee: 6838 ldr r0, [r7, #0] + 80270f0: f7df fba0 bl 8006834 + 80270f4: 4603 mov r3, r0 + 80270f6: 2b00 cmp r3, #0 + 80270f8: d01a beq.n 8027130 lv_obj_add_style(obj, &styles->menu_main_cont, 0); - 802718e: 4b22 ldr r3, [pc, #136] ; (8027218 ) - 8027190: 681b ldr r3, [r3, #0] - 8027192: f503 73dc add.w r3, r3, #440 ; 0x1b8 - 8027196: 2200 movs r2, #0 - 8027198: 4619 mov r1, r3 - 802719a: 6838 ldr r0, [r7, #0] - 802719c: f7e6 fbaa bl 800d8f4 + 80270fa: 4b22 ldr r3, [pc, #136] ; (8027184 ) + 80270fc: 681b ldr r3, [r3, #0] + 80270fe: f503 73dc add.w r3, r3, #440 ; 0x1b8 + 8027102: 2200 movs r2, #0 + 8027104: 4619 mov r1, r3 + 8027106: 6838 ldr r0, [r7, #0] + 8027108: f7e6 fbbe bl 800d888 lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); - 80271a0: 4b1d ldr r3, [pc, #116] ; (8027218 ) - 80271a2: 681b ldr r3, [r3, #0] - 80271a4: 3308 adds r3, #8 - 80271a6: f44f 3280 mov.w r2, #65536 ; 0x10000 - 80271aa: 4619 mov r1, r3 - 80271ac: 6838 ldr r0, [r7, #0] - 80271ae: f7e6 fba1 bl 800d8f4 + 802710c: 4b1d ldr r3, [pc, #116] ; (8027184 ) + 802710e: 681b ldr r3, [r3, #0] + 8027110: 3308 adds r3, #8 + 8027112: f44f 3280 mov.w r2, #65536 ; 0x10000 + 8027116: 4619 mov r1, r3 + 8027118: 6838 ldr r0, [r7, #0] + 802711a: f7e6 fbb5 bl 800d888 lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); - 80271b2: 4b19 ldr r3, [pc, #100] ; (8027218 ) - 80271b4: 681b ldr r3, [r3, #0] - 80271b6: 3310 adds r3, #16 - 80271b8: 4a1e ldr r2, [pc, #120] ; (8027234 ) - 80271ba: 4619 mov r1, r3 - 80271bc: 6838 ldr r0, [r7, #0] - 80271be: f7e6 fb99 bl 800d8f4 - 80271c2: e1c4 b.n 802754e + 802711e: 4b19 ldr r3, [pc, #100] ; (8027184 ) + 8027120: 681b ldr r3, [r3, #0] + 8027122: 3310 adds r3, #16 + 8027124: 4a1e ldr r2, [pc, #120] ; (80271a0 ) + 8027126: 4619 mov r1, r3 + 8027128: 6838 ldr r0, [r7, #0] + 802712a: f7e6 fbad bl 800d888 + 802712e: e1c4 b.n 80274ba } else if(lv_obj_check_type(obj, &lv_menu_cont_class)) { - 80271c4: 4921 ldr r1, [pc, #132] ; (802724c ) - 80271c6: 6838 ldr r0, [r7, #0] - 80271c8: f7df fb6a bl 80068a0 - 80271cc: 4603 mov r3, r0 - 80271ce: 2b00 cmp r3, #0 - 80271d0: d03e beq.n 8027250 + 8027130: 4921 ldr r1, [pc, #132] ; (80271b8 ) + 8027132: 6838 ldr r0, [r7, #0] + 8027134: f7df fb7e bl 8006834 + 8027138: 4603 mov r3, r0 + 802713a: 2b00 cmp r3, #0 + 802713c: d03e beq.n 80271bc lv_obj_add_style(obj, &styles->menu_cont, 0); - 80271d2: 4b11 ldr r3, [pc, #68] ; (8027218 ) - 80271d4: 681b ldr r3, [r3, #0] - 80271d6: f503 73d4 add.w r3, r3, #424 ; 0x1a8 - 80271da: 2200 movs r2, #0 - 80271dc: 4619 mov r1, r3 - 80271de: 6838 ldr r0, [r7, #0] - 80271e0: f7e6 fb88 bl 800d8f4 + 802713e: 4b11 ldr r3, [pc, #68] ; (8027184 ) + 8027140: 681b ldr r3, [r3, #0] + 8027142: f503 73d4 add.w r3, r3, #424 ; 0x1a8 + 8027146: 2200 movs r2, #0 + 8027148: 4619 mov r1, r3 + 802714a: 6838 ldr r0, [r7, #0] + 802714c: f7e6 fb9c bl 800d888 lv_obj_add_style(obj, &styles->menu_pressed, LV_STATE_PRESSED); - 80271e4: 4b0c ldr r3, [pc, #48] ; (8027218 ) - 80271e6: 681b ldr r3, [r3, #0] - 80271e8: f503 73f0 add.w r3, r3, #480 ; 0x1e0 - 80271ec: 2220 movs r2, #32 - 80271ee: 4619 mov r1, r3 - 80271f0: 6838 ldr r0, [r7, #0] - 80271f2: f7e6 fb7f bl 800d8f4 + 8027150: 4b0c ldr r3, [pc, #48] ; (8027184 ) + 8027152: 681b ldr r3, [r3, #0] + 8027154: f503 73f0 add.w r3, r3, #480 ; 0x1e0 + 8027158: 2220 movs r2, #32 + 802715a: 4619 mov r1, r3 + 802715c: 6838 ldr r0, [r7, #0] + 802715e: f7e6 fb93 bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary_muted, LV_STATE_PRESSED | LV_STATE_CHECKED); - 80271f6: 4b08 ldr r3, [pc, #32] ; (8027218 ) - 80271f8: 681b ldr r3, [r3, #0] - 80271fa: 3330 adds r3, #48 ; 0x30 - 80271fc: 2221 movs r2, #33 ; 0x21 - 80271fe: 4619 mov r1, r3 - 8027200: 6838 ldr r0, [r7, #0] - 8027202: f7e6 fb77 bl 800d8f4 + 8027162: 4b08 ldr r3, [pc, #32] ; (8027184 ) + 8027164: 681b ldr r3, [r3, #0] + 8027166: 3330 adds r3, #48 ; 0x30 + 8027168: 2221 movs r2, #33 ; 0x21 + 802716a: 4619 mov r1, r3 + 802716c: 6838 ldr r0, [r7, #0] + 802716e: f7e6 fb8b bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary_muted, LV_STATE_CHECKED); - 8027206: 4b04 ldr r3, [pc, #16] ; (8027218 ) - 8027208: 681b ldr r3, [r3, #0] - 802720a: 3330 adds r3, #48 ; 0x30 - 802720c: 2201 movs r2, #1 - 802720e: 4619 mov r1, r3 - 8027210: 6838 ldr r0, [r7, #0] - 8027212: f7e6 fb6f bl 800d8f4 - 8027216: e19a b.n 802754e - 8027218: 20001c4c .word 0x20001c4c - 802721c: 00050080 .word 0x00050080 - 8027220: 00050020 .word 0x00050020 - 8027224: 00050001 .word 0x00050001 - 8027228: 00050004 .word 0x00050004 - 802722c: 00050008 .word 0x00050008 - 8027230: 0806cfe0 .word 0x0806cfe0 - 8027234: 00010040 .word 0x00010040 - 8027238: 0806d018 .word 0x0806d018 - 802723c: 0806cffc .word 0x0806cffc - 8027240: 0806d034 .word 0x0806d034 - 8027244: 0806d0c0 .word 0x0806d0c0 - 8027248: 0806d0dc .word 0x0806d0dc - 802724c: 0806d06c .word 0x0806d06c + 8027172: 4b04 ldr r3, [pc, #16] ; (8027184 ) + 8027174: 681b ldr r3, [r3, #0] + 8027176: 3330 adds r3, #48 ; 0x30 + 8027178: 2201 movs r2, #1 + 802717a: 4619 mov r1, r3 + 802717c: 6838 ldr r0, [r7, #0] + 802717e: f7e6 fb83 bl 800d888 + 8027182: e19a b.n 80274ba + 8027184: 20001c4c .word 0x20001c4c + 8027188: 00050080 .word 0x00050080 + 802718c: 00050020 .word 0x00050020 + 8027190: 00050001 .word 0x00050001 + 8027194: 00050004 .word 0x00050004 + 8027198: 00050008 .word 0x00050008 + 802719c: 0806cf38 .word 0x0806cf38 + 80271a0: 00010040 .word 0x00010040 + 80271a4: 0806cf70 .word 0x0806cf70 + 80271a8: 0806cf54 .word 0x0806cf54 + 80271ac: 0806cf8c .word 0x0806cf8c + 80271b0: 0806d018 .word 0x0806d018 + 80271b4: 0806d034 .word 0x0806d034 + 80271b8: 0806cfc4 .word 0x0806cfc4 } else if(lv_obj_check_type(obj, &lv_menu_sidebar_header_cont_class) || - 8027250: 49ae ldr r1, [pc, #696] ; (802750c ) - 8027252: 6838 ldr r0, [r7, #0] - 8027254: f7df fb24 bl 80068a0 - 8027258: 4603 mov r3, r0 - 802725a: 2b00 cmp r3, #0 - 802725c: d106 bne.n 802726c + 80271bc: 49ae ldr r1, [pc, #696] ; (8027478 ) + 80271be: 6838 ldr r0, [r7, #0] + 80271c0: f7df fb38 bl 8006834 + 80271c4: 4603 mov r3, r0 + 80271c6: 2b00 cmp r3, #0 + 80271c8: d106 bne.n 80271d8 lv_obj_check_type(obj, &lv_menu_main_header_cont_class)) { - 802725e: 49ac ldr r1, [pc, #688] ; (8027510 ) - 8027260: 6838 ldr r0, [r7, #0] - 8027262: f7df fb1d bl 80068a0 - 8027266: 4603 mov r3, r0 + 80271ca: 49ac ldr r1, [pc, #688] ; (802747c ) + 80271cc: 6838 ldr r0, [r7, #0] + 80271ce: f7df fb31 bl 8006834 + 80271d2: 4603 mov r3, r0 else if(lv_obj_check_type(obj, &lv_menu_sidebar_header_cont_class) || - 8027268: 2b00 cmp r3, #0 - 802726a: d012 beq.n 8027292 + 80271d4: 2b00 cmp r3, #0 + 80271d6: d012 beq.n 80271fe lv_obj_add_style(obj, &styles->menu_header_cont, 0); - 802726c: 4ba9 ldr r3, [pc, #676] ; (8027514 ) - 802726e: 681b ldr r3, [r3, #0] - 8027270: f503 73e4 add.w r3, r3, #456 ; 0x1c8 - 8027274: 2200 movs r2, #0 - 8027276: 4619 mov r1, r3 - 8027278: 6838 ldr r0, [r7, #0] - 802727a: f7e6 fb3b bl 800d8f4 + 80271d8: 4ba9 ldr r3, [pc, #676] ; (8027480 ) + 80271da: 681b ldr r3, [r3, #0] + 80271dc: f503 73e4 add.w r3, r3, #456 ; 0x1c8 + 80271e0: 2200 movs r2, #0 + 80271e2: 4619 mov r1, r3 + 80271e4: 6838 ldr r0, [r7, #0] + 80271e6: f7e6 fb4f bl 800d888 lv_obj_add_style(obj, &styles->menu_pressed, LV_STATE_PRESSED); - 802727e: 4ba5 ldr r3, [pc, #660] ; (8027514 ) - 8027280: 681b ldr r3, [r3, #0] - 8027282: f503 73f0 add.w r3, r3, #480 ; 0x1e0 - 8027286: 2220 movs r2, #32 - 8027288: 4619 mov r1, r3 - 802728a: 6838 ldr r0, [r7, #0] - 802728c: f7e6 fb32 bl 800d8f4 - 8027290: e15d b.n 802754e + 80271ea: 4ba5 ldr r3, [pc, #660] ; (8027480 ) + 80271ec: 681b ldr r3, [r3, #0] + 80271ee: f503 73f0 add.w r3, r3, #480 ; 0x1e0 + 80271f2: 2220 movs r2, #32 + 80271f4: 4619 mov r1, r3 + 80271f6: 6838 ldr r0, [r7, #0] + 80271f8: f7e6 fb46 bl 800d888 + 80271fc: e15d b.n 80274ba } else if(lv_obj_check_type(obj, &lv_menu_page_class)) { - 8027292: 49a1 ldr r1, [pc, #644] ; (8027518 ) - 8027294: 6838 ldr r0, [r7, #0] - 8027296: f7df fb03 bl 80068a0 - 802729a: 4603 mov r3, r0 - 802729c: 2b00 cmp r3, #0 - 802729e: d01a beq.n 80272d6 + 80271fe: 49a1 ldr r1, [pc, #644] ; (8027484 ) + 8027200: 6838 ldr r0, [r7, #0] + 8027202: f7df fb17 bl 8006834 + 8027206: 4603 mov r3, r0 + 8027208: 2b00 cmp r3, #0 + 802720a: d01a beq.n 8027242 lv_obj_add_style(obj, &styles->menu_page, 0); - 80272a0: 4b9c ldr r3, [pc, #624] ; (8027514 ) - 80272a2: 681b ldr r3, [r3, #0] - 80272a4: f503 73e0 add.w r3, r3, #448 ; 0x1c0 - 80272a8: 2200 movs r2, #0 - 80272aa: 4619 mov r1, r3 - 80272ac: 6838 ldr r0, [r7, #0] - 80272ae: f7e6 fb21 bl 800d8f4 + 802720c: 4b9c ldr r3, [pc, #624] ; (8027480 ) + 802720e: 681b ldr r3, [r3, #0] + 8027210: f503 73e0 add.w r3, r3, #448 ; 0x1c0 + 8027214: 2200 movs r2, #0 + 8027216: 4619 mov r1, r3 + 8027218: 6838 ldr r0, [r7, #0] + 802721a: f7e6 fb35 bl 800d888 lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); - 80272b2: 4b98 ldr r3, [pc, #608] ; (8027514 ) - 80272b4: 681b ldr r3, [r3, #0] - 80272b6: 3308 adds r3, #8 - 80272b8: f44f 3280 mov.w r2, #65536 ; 0x10000 - 80272bc: 4619 mov r1, r3 - 80272be: 6838 ldr r0, [r7, #0] - 80272c0: f7e6 fb18 bl 800d8f4 + 802721e: 4b98 ldr r3, [pc, #608] ; (8027480 ) + 8027220: 681b ldr r3, [r3, #0] + 8027222: 3308 adds r3, #8 + 8027224: f44f 3280 mov.w r2, #65536 ; 0x10000 + 8027228: 4619 mov r1, r3 + 802722a: 6838 ldr r0, [r7, #0] + 802722c: f7e6 fb2c bl 800d888 lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); - 80272c4: 4b93 ldr r3, [pc, #588] ; (8027514 ) - 80272c6: 681b ldr r3, [r3, #0] - 80272c8: 3310 adds r3, #16 - 80272ca: 4a94 ldr r2, [pc, #592] ; (802751c ) - 80272cc: 4619 mov r1, r3 - 80272ce: 6838 ldr r0, [r7, #0] - 80272d0: f7e6 fb10 bl 800d8f4 - 80272d4: e13b b.n 802754e + 8027230: 4b93 ldr r3, [pc, #588] ; (8027480 ) + 8027232: 681b ldr r3, [r3, #0] + 8027234: 3310 adds r3, #16 + 8027236: 4a94 ldr r2, [pc, #592] ; (8027488 ) + 8027238: 4619 mov r1, r3 + 802723a: 6838 ldr r0, [r7, #0] + 802723c: f7e6 fb24 bl 800d888 + 8027240: e13b b.n 80274ba } else if(lv_obj_check_type(obj, &lv_menu_section_class)) { - 80272d6: 4992 ldr r1, [pc, #584] ; (8027520 ) - 80272d8: 6838 ldr r0, [r7, #0] - 80272da: f7df fae1 bl 80068a0 - 80272de: 4603 mov r3, r0 - 80272e0: 2b00 cmp r3, #0 - 80272e2: d009 beq.n 80272f8 + 8027242: 4992 ldr r1, [pc, #584] ; (802748c ) + 8027244: 6838 ldr r0, [r7, #0] + 8027246: f7df faf5 bl 8006834 + 802724a: 4603 mov r3, r0 + 802724c: 2b00 cmp r3, #0 + 802724e: d009 beq.n 8027264 lv_obj_add_style(obj, &styles->menu_section, 0); - 80272e4: 4b8b ldr r3, [pc, #556] ; (8027514 ) - 80272e6: 681b ldr r3, [r3, #0] - 80272e8: f503 73ec add.w r3, r3, #472 ; 0x1d8 - 80272ec: 2200 movs r2, #0 - 80272ee: 4619 mov r1, r3 - 80272f0: 6838 ldr r0, [r7, #0] - 80272f2: f7e6 faff bl 800d8f4 - 80272f6: e12a b.n 802754e + 8027250: 4b8b ldr r3, [pc, #556] ; (8027480 ) + 8027252: 681b ldr r3, [r3, #0] + 8027254: f503 73ec add.w r3, r3, #472 ; 0x1d8 + 8027258: 2200 movs r2, #0 + 802725a: 4619 mov r1, r3 + 802725c: 6838 ldr r0, [r7, #0] + 802725e: f7e6 fb13 bl 800d888 + 8027262: e12a b.n 80274ba } else if(lv_obj_check_type(obj, &lv_menu_separator_class)) { - 80272f8: 498a ldr r1, [pc, #552] ; (8027524 ) - 80272fa: 6838 ldr r0, [r7, #0] - 80272fc: f7df fad0 bl 80068a0 - 8027300: 4603 mov r3, r0 - 8027302: 2b00 cmp r3, #0 - 8027304: d009 beq.n 802731a + 8027264: 498a ldr r1, [pc, #552] ; (8027490 ) + 8027266: 6838 ldr r0, [r7, #0] + 8027268: f7df fae4 bl 8006834 + 802726c: 4603 mov r3, r0 + 802726e: 2b00 cmp r3, #0 + 8027270: d009 beq.n 8027286 lv_obj_add_style(obj, &styles->menu_separator, 0); - 8027306: 4b83 ldr r3, [pc, #524] ; (8027514 ) - 8027308: 681b ldr r3, [r3, #0] - 802730a: f503 73f4 add.w r3, r3, #488 ; 0x1e8 - 802730e: 2200 movs r2, #0 - 8027310: 4619 mov r1, r3 - 8027312: 6838 ldr r0, [r7, #0] - 8027314: f7e6 faee bl 800d8f4 - 8027318: e119 b.n 802754e + 8027272: 4b83 ldr r3, [pc, #524] ; (8027480 ) + 8027274: 681b ldr r3, [r3, #0] + 8027276: f503 73f4 add.w r3, r3, #488 ; 0x1e8 + 802727a: 2200 movs r2, #0 + 802727c: 4619 mov r1, r3 + 802727e: 6838 ldr r0, [r7, #0] + 8027280: f7e6 fb02 bl 800d888 + 8027284: e119 b.n 80274ba } #endif #if LV_USE_MSGBOX else if(lv_obj_check_type(obj, &lv_msgbox_class)) { - 802731a: 4983 ldr r1, [pc, #524] ; (8027528 ) - 802731c: 6838 ldr r0, [r7, #0] - 802731e: f7df fabf bl 80068a0 - 8027322: 4603 mov r3, r0 - 8027324: 2b00 cmp r3, #0 - 8027326: d011 beq.n 802734c + 8027286: 4983 ldr r1, [pc, #524] ; (8027494 ) + 8027288: 6838 ldr r0, [r7, #0] + 802728a: f7df fad3 bl 8006834 + 802728e: 4603 mov r3, r0 + 8027290: 2b00 cmp r3, #0 + 8027292: d011 beq.n 80272b8 lv_obj_add_style(obj, &styles->card, 0); - 8027328: 4b7a ldr r3, [pc, #488] ; (8027514 ) - 802732a: 681b ldr r3, [r3, #0] - 802732c: 3318 adds r3, #24 - 802732e: 2200 movs r2, #0 - 8027330: 4619 mov r1, r3 - 8027332: 6838 ldr r0, [r7, #0] - 8027334: f7e6 fade bl 800d8f4 + 8027294: 4b7a ldr r3, [pc, #488] ; (8027480 ) + 8027296: 681b ldr r3, [r3, #0] + 8027298: 3318 adds r3, #24 + 802729a: 2200 movs r2, #0 + 802729c: 4619 mov r1, r3 + 802729e: 6838 ldr r0, [r7, #0] + 80272a0: f7e6 faf2 bl 800d888 lv_obj_add_style(obj, &styles->msgbox_bg, 0); - 8027338: 4b76 ldr r3, [pc, #472] ; (8027514 ) - 802733a: 681b ldr r3, [r3, #0] - 802733c: f503 73f8 add.w r3, r3, #496 ; 0x1f0 - 8027340: 2200 movs r2, #0 - 8027342: 4619 mov r1, r3 - 8027344: 6838 ldr r0, [r7, #0] - 8027346: f7e6 fad5 bl 800d8f4 + 80272a4: 4b76 ldr r3, [pc, #472] ; (8027480 ) + 80272a6: 681b ldr r3, [r3, #0] + 80272a8: f503 73f8 add.w r3, r3, #496 ; 0x1f0 + 80272ac: 2200 movs r2, #0 + 80272ae: 4619 mov r1, r3 + 80272b0: 6838 ldr r0, [r7, #0] + 80272b2: f7e6 fae9 bl 800d888 return; - 802734a: e100 b.n 802754e + 80272b6: e100 b.n 80274ba } else if(lv_obj_check_type(obj, &lv_msgbox_backdrop_class)) { - 802734c: 4977 ldr r1, [pc, #476] ; (802752c ) - 802734e: 6838 ldr r0, [r7, #0] - 8027350: f7df faa6 bl 80068a0 - 8027354: 4603 mov r3, r0 - 8027356: 2b00 cmp r3, #0 - 8027358: d009 beq.n 802736e + 80272b8: 4977 ldr r1, [pc, #476] ; (8027498 ) + 80272ba: 6838 ldr r0, [r7, #0] + 80272bc: f7df faba bl 8006834 + 80272c0: 4603 mov r3, r0 + 80272c2: 2b00 cmp r3, #0 + 80272c4: d009 beq.n 80272da lv_obj_add_style(obj, &styles->msgbox_backdrop_bg, 0); - 802735a: 4b6e ldr r3, [pc, #440] ; (8027514 ) - 802735c: 681b ldr r3, [r3, #0] - 802735e: f503 7300 add.w r3, r3, #512 ; 0x200 - 8027362: 2200 movs r2, #0 - 8027364: 4619 mov r1, r3 - 8027366: 6838 ldr r0, [r7, #0] - 8027368: f7e6 fac4 bl 800d8f4 - 802736c: e0ef b.n 802754e + 80272c6: 4b6e ldr r3, [pc, #440] ; (8027480 ) + 80272c8: 681b ldr r3, [r3, #0] + 80272ca: f503 7300 add.w r3, r3, #512 ; 0x200 + 80272ce: 2200 movs r2, #0 + 80272d0: 4619 mov r1, r3 + 80272d2: 6838 ldr r0, [r7, #0] + 80272d4: f7e6 fad8 bl 800d888 + 80272d8: e0ef b.n 80274ba } #endif #if LV_USE_SPINBOX else if(lv_obj_check_type(obj, &lv_spinbox_class)) { - 802736e: 4970 ldr r1, [pc, #448] ; (8027530 ) - 8027370: 6838 ldr r0, [r7, #0] - 8027372: f7df fa95 bl 80068a0 - 8027376: 4603 mov r3, r0 - 8027378: 2b00 cmp r3, #0 - 802737a: d029 beq.n 80273d0 + 80272da: 4970 ldr r1, [pc, #448] ; (802749c ) + 80272dc: 6838 ldr r0, [r7, #0] + 80272de: f7df faa9 bl 8006834 + 80272e2: 4603 mov r3, r0 + 80272e4: 2b00 cmp r3, #0 + 80272e6: d029 beq.n 802733c lv_obj_add_style(obj, &styles->card, 0); - 802737c: 4b65 ldr r3, [pc, #404] ; (8027514 ) - 802737e: 681b ldr r3, [r3, #0] - 8027380: 3318 adds r3, #24 - 8027382: 2200 movs r2, #0 - 8027384: 4619 mov r1, r3 - 8027386: 6838 ldr r0, [r7, #0] - 8027388: f7e6 fab4 bl 800d8f4 + 80272e8: 4b65 ldr r3, [pc, #404] ; (8027480 ) + 80272ea: 681b ldr r3, [r3, #0] + 80272ec: 3318 adds r3, #24 + 80272ee: 2200 movs r2, #0 + 80272f0: 4619 mov r1, r3 + 80272f2: 6838 ldr r0, [r7, #0] + 80272f4: f7e6 fac8 bl 800d888 lv_obj_add_style(obj, &styles->pad_small, 0); - 802738c: 4b61 ldr r3, [pc, #388] ; (8027514 ) - 802738e: 681b ldr r3, [r3, #0] - 8027390: 3378 adds r3, #120 ; 0x78 - 8027392: 2200 movs r2, #0 - 8027394: 4619 mov r1, r3 - 8027396: 6838 ldr r0, [r7, #0] - 8027398: f7e6 faac bl 800d8f4 + 80272f8: 4b61 ldr r3, [pc, #388] ; (8027480 ) + 80272fa: 681b ldr r3, [r3, #0] + 80272fc: 3378 adds r3, #120 ; 0x78 + 80272fe: 2200 movs r2, #0 + 8027300: 4619 mov r1, r3 + 8027302: 6838 ldr r0, [r7, #0] + 8027304: f7e6 fac0 bl 800d888 lv_obj_add_style(obj, &styles->outline_primary, LV_STATE_FOCUS_KEY); - 802739c: 4b5d ldr r3, [pc, #372] ; (8027514 ) - 802739e: 681b ldr r3, [r3, #0] - 80273a0: 33a0 adds r3, #160 ; 0xa0 - 80273a2: 2204 movs r2, #4 - 80273a4: 4619 mov r1, r3 - 80273a6: 6838 ldr r0, [r7, #0] - 80273a8: f7e6 faa4 bl 800d8f4 + 8027308: 4b5d ldr r3, [pc, #372] ; (8027480 ) + 802730a: 681b ldr r3, [r3, #0] + 802730c: 33a0 adds r3, #160 ; 0xa0 + 802730e: 2204 movs r2, #4 + 8027310: 4619 mov r1, r3 + 8027312: 6838 ldr r0, [r7, #0] + 8027314: f7e6 fab8 bl 800d888 lv_obj_add_style(obj, &styles->outline_secondary, LV_STATE_EDITED); - 80273ac: 4b59 ldr r3, [pc, #356] ; (8027514 ) - 80273ae: 681b ldr r3, [r3, #0] - 80273b0: 33a8 adds r3, #168 ; 0xa8 - 80273b2: 2208 movs r2, #8 - 80273b4: 4619 mov r1, r3 - 80273b6: 6838 ldr r0, [r7, #0] - 80273b8: f7e6 fa9c bl 800d8f4 + 8027318: 4b59 ldr r3, [pc, #356] ; (8027480 ) + 802731a: 681b ldr r3, [r3, #0] + 802731c: 33a8 adds r3, #168 ; 0xa8 + 802731e: 2208 movs r2, #8 + 8027320: 4619 mov r1, r3 + 8027322: 6838 ldr r0, [r7, #0] + 8027324: f7e6 fab0 bl 800d888 lv_obj_add_style(obj, &styles->bg_color_primary, LV_PART_CURSOR); - 80273bc: 4b55 ldr r3, [pc, #340] ; (8027514 ) - 80273be: 681b ldr r3, [r3, #0] - 80273c0: 3328 adds r3, #40 ; 0x28 - 80273c2: f44f 22e0 mov.w r2, #458752 ; 0x70000 - 80273c6: 4619 mov r1, r3 - 80273c8: 6838 ldr r0, [r7, #0] - 80273ca: f7e6 fa93 bl 800d8f4 - 80273ce: e0be b.n 802754e + 8027328: 4b55 ldr r3, [pc, #340] ; (8027480 ) + 802732a: 681b ldr r3, [r3, #0] + 802732c: 3328 adds r3, #40 ; 0x28 + 802732e: f44f 22e0 mov.w r2, #458752 ; 0x70000 + 8027332: 4619 mov r1, r3 + 8027334: 6838 ldr r0, [r7, #0] + 8027336: f7e6 faa7 bl 800d888 + 802733a: e0be b.n 80274ba } #endif #if LV_USE_TILEVIEW else if(lv_obj_check_type(obj, &lv_tileview_class)) { - 80273d0: 4958 ldr r1, [pc, #352] ; (8027534 ) - 80273d2: 6838 ldr r0, [r7, #0] - 80273d4: f7df fa64 bl 80068a0 - 80273d8: 4603 mov r3, r0 - 80273da: 2b00 cmp r3, #0 - 80273dc: d018 beq.n 8027410 + 802733c: 4958 ldr r1, [pc, #352] ; (80274a0 ) + 802733e: 6838 ldr r0, [r7, #0] + 8027340: f7df fa78 bl 8006834 + 8027344: 4603 mov r3, r0 + 8027346: 2b00 cmp r3, #0 + 8027348: d018 beq.n 802737c lv_obj_add_style(obj, &styles->scr, 0); - 80273de: 4b4d ldr r3, [pc, #308] ; (8027514 ) - 80273e0: 681b ldr r3, [r3, #0] - 80273e2: 2200 movs r2, #0 - 80273e4: 4619 mov r1, r3 - 80273e6: 6838 ldr r0, [r7, #0] - 80273e8: f7e6 fa84 bl 800d8f4 + 802734a: 4b4d ldr r3, [pc, #308] ; (8027480 ) + 802734c: 681b ldr r3, [r3, #0] + 802734e: 2200 movs r2, #0 + 8027350: 4619 mov r1, r3 + 8027352: 6838 ldr r0, [r7, #0] + 8027354: f7e6 fa98 bl 800d888 lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); - 80273ec: 4b49 ldr r3, [pc, #292] ; (8027514 ) - 80273ee: 681b ldr r3, [r3, #0] - 80273f0: 3308 adds r3, #8 - 80273f2: f44f 3280 mov.w r2, #65536 ; 0x10000 - 80273f6: 4619 mov r1, r3 - 80273f8: 6838 ldr r0, [r7, #0] - 80273fa: f7e6 fa7b bl 800d8f4 + 8027358: 4b49 ldr r3, [pc, #292] ; (8027480 ) + 802735a: 681b ldr r3, [r3, #0] + 802735c: 3308 adds r3, #8 + 802735e: f44f 3280 mov.w r2, #65536 ; 0x10000 + 8027362: 4619 mov r1, r3 + 8027364: 6838 ldr r0, [r7, #0] + 8027366: f7e6 fa8f bl 800d888 lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); - 80273fe: 4b45 ldr r3, [pc, #276] ; (8027514 ) - 8027400: 681b ldr r3, [r3, #0] - 8027402: 3310 adds r3, #16 - 8027404: 4a45 ldr r2, [pc, #276] ; (802751c ) - 8027406: 4619 mov r1, r3 - 8027408: 6838 ldr r0, [r7, #0] - 802740a: f7e6 fa73 bl 800d8f4 - 802740e: e09e b.n 802754e + 802736a: 4b45 ldr r3, [pc, #276] ; (8027480 ) + 802736c: 681b ldr r3, [r3, #0] + 802736e: 3310 adds r3, #16 + 8027370: 4a45 ldr r2, [pc, #276] ; (8027488 ) + 8027372: 4619 mov r1, r3 + 8027374: 6838 ldr r0, [r7, #0] + 8027376: f7e6 fa87 bl 800d888 + 802737a: e09e b.n 80274ba } else if(lv_obj_check_type(obj, &lv_tileview_tile_class)) { - 8027410: 4949 ldr r1, [pc, #292] ; (8027538 ) - 8027412: 6838 ldr r0, [r7, #0] - 8027414: f7df fa44 bl 80068a0 - 8027418: 4603 mov r3, r0 - 802741a: 2b00 cmp r3, #0 - 802741c: d011 beq.n 8027442 + 802737c: 4949 ldr r1, [pc, #292] ; (80274a4 ) + 802737e: 6838 ldr r0, [r7, #0] + 8027380: f7df fa58 bl 8006834 + 8027384: 4603 mov r3, r0 + 8027386: 2b00 cmp r3, #0 + 8027388: d011 beq.n 80273ae lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR); - 802741e: 4b3d ldr r3, [pc, #244] ; (8027514 ) - 8027420: 681b ldr r3, [r3, #0] - 8027422: 3308 adds r3, #8 - 8027424: f44f 3280 mov.w r2, #65536 ; 0x10000 - 8027428: 4619 mov r1, r3 - 802742a: 6838 ldr r0, [r7, #0] - 802742c: f7e6 fa62 bl 800d8f4 + 802738a: 4b3d ldr r3, [pc, #244] ; (8027480 ) + 802738c: 681b ldr r3, [r3, #0] + 802738e: 3308 adds r3, #8 + 8027390: f44f 3280 mov.w r2, #65536 ; 0x10000 + 8027394: 4619 mov r1, r3 + 8027396: 6838 ldr r0, [r7, #0] + 8027398: f7e6 fa76 bl 800d888 lv_obj_add_style(obj, &styles->scrollbar_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); - 8027430: 4b38 ldr r3, [pc, #224] ; (8027514 ) - 8027432: 681b ldr r3, [r3, #0] - 8027434: 3310 adds r3, #16 - 8027436: 4a39 ldr r2, [pc, #228] ; (802751c ) - 8027438: 4619 mov r1, r3 - 802743a: 6838 ldr r0, [r7, #0] - 802743c: f7e6 fa5a bl 800d8f4 - 8027440: e085 b.n 802754e + 802739c: 4b38 ldr r3, [pc, #224] ; (8027480 ) + 802739e: 681b ldr r3, [r3, #0] + 80273a0: 3310 adds r3, #16 + 80273a2: 4a39 ldr r2, [pc, #228] ; (8027488 ) + 80273a4: 4619 mov r1, r3 + 80273a6: 6838 ldr r0, [r7, #0] + 80273a8: f7e6 fa6e bl 800d888 + 80273ac: e085 b.n 80274ba } #endif #if LV_USE_TABVIEW else if(lv_obj_check_type(obj, &lv_tabview_class)) { - 8027442: 493e ldr r1, [pc, #248] ; (802753c ) - 8027444: 6838 ldr r0, [r7, #0] - 8027446: f7df fa2b bl 80068a0 - 802744a: 4603 mov r3, r0 - 802744c: 2b00 cmp r3, #0 - 802744e: d00f beq.n 8027470 + 80273ae: 493e ldr r1, [pc, #248] ; (80274a8 ) + 80273b0: 6838 ldr r0, [r7, #0] + 80273b2: f7df fa3f bl 8006834 + 80273b6: 4603 mov r3, r0 + 80273b8: 2b00 cmp r3, #0 + 80273ba: d00f beq.n 80273dc lv_obj_add_style(obj, &styles->scr, 0); - 8027450: 4b30 ldr r3, [pc, #192] ; (8027514 ) - 8027452: 681b ldr r3, [r3, #0] - 8027454: 2200 movs r2, #0 - 8027456: 4619 mov r1, r3 - 8027458: 6838 ldr r0, [r7, #0] - 802745a: f7e6 fa4b bl 800d8f4 + 80273bc: 4b30 ldr r3, [pc, #192] ; (8027480 ) + 80273be: 681b ldr r3, [r3, #0] + 80273c0: 2200 movs r2, #0 + 80273c2: 4619 mov r1, r3 + 80273c4: 6838 ldr r0, [r7, #0] + 80273c6: f7e6 fa5f bl 800d888 lv_obj_add_style(obj, &styles->pad_zero, 0); - 802745e: 4b2d ldr r3, [pc, #180] ; (8027514 ) - 8027460: 681b ldr r3, [r3, #0] - 8027462: 3368 adds r3, #104 ; 0x68 - 8027464: 2200 movs r2, #0 - 8027466: 4619 mov r1, r3 - 8027468: 6838 ldr r0, [r7, #0] - 802746a: f7e6 fa43 bl 800d8f4 - 802746e: e06e b.n 802754e + 80273ca: 4b2d ldr r3, [pc, #180] ; (8027480 ) + 80273cc: 681b ldr r3, [r3, #0] + 80273ce: 3368 adds r3, #104 ; 0x68 + 80273d0: 2200 movs r2, #0 + 80273d2: 4619 mov r1, r3 + 80273d4: 6838 ldr r0, [r7, #0] + 80273d6: f7e6 fa57 bl 800d888 + 80273da: e06e b.n 80274ba } #endif #if LV_USE_WIN else if(lv_obj_check_type(obj, &lv_win_class)) { - 8027470: 4933 ldr r1, [pc, #204] ; (8027540 ) - 8027472: 6838 ldr r0, [r7, #0] - 8027474: f7df fa14 bl 80068a0 - 8027478: 4603 mov r3, r0 - 802747a: 2b00 cmp r3, #0 - 802747c: d008 beq.n 8027490 + 80273dc: 4933 ldr r1, [pc, #204] ; (80274ac ) + 80273de: 6838 ldr r0, [r7, #0] + 80273e0: f7df fa28 bl 8006834 + 80273e4: 4603 mov r3, r0 + 80273e6: 2b00 cmp r3, #0 + 80273e8: d008 beq.n 80273fc lv_obj_add_style(obj, &styles->clip_corner, 0); - 802747e: 4b25 ldr r3, [pc, #148] ; (8027514 ) - 8027480: 681b ldr r3, [r3, #0] - 8027482: 33c0 adds r3, #192 ; 0xc0 - 8027484: 2200 movs r2, #0 - 8027486: 4619 mov r1, r3 - 8027488: 6838 ldr r0, [r7, #0] - 802748a: f7e6 fa33 bl 800d8f4 - 802748e: e05e b.n 802754e + 80273ea: 4b25 ldr r3, [pc, #148] ; (8027480 ) + 80273ec: 681b ldr r3, [r3, #0] + 80273ee: 33c0 adds r3, #192 ; 0xc0 + 80273f0: 2200 movs r2, #0 + 80273f2: 4619 mov r1, r3 + 80273f4: 6838 ldr r0, [r7, #0] + 80273f6: f7e6 fa47 bl 800d888 + 80273fa: e05e b.n 80274ba } #endif #if LV_USE_COLORWHEEL else if(lv_obj_check_type(obj, &lv_colorwheel_class)) { - 8027490: 492c ldr r1, [pc, #176] ; (8027544 ) - 8027492: 6838 ldr r0, [r7, #0] - 8027494: f7df fa04 bl 80068a0 - 8027498: 4603 mov r3, r0 - 802749a: 2b00 cmp r3, #0 - 802749c: d023 beq.n 80274e6 + 80273fc: 492c ldr r1, [pc, #176] ; (80274b0 ) + 80273fe: 6838 ldr r0, [r7, #0] + 8027400: f7df fa18 bl 8006834 + 8027404: 4603 mov r3, r0 + 8027406: 2b00 cmp r3, #0 + 8027408: d023 beq.n 8027452 lv_obj_add_style(obj, &styles->colorwheel_main, 0); - 802749e: 4b1d ldr r3, [pc, #116] ; (8027514 ) - 80274a0: 681b ldr r3, [r3, #0] - 80274a2: f503 73cc add.w r3, r3, #408 ; 0x198 - 80274a6: 2200 movs r2, #0 - 80274a8: 4619 mov r1, r3 - 80274aa: 6838 ldr r0, [r7, #0] - 80274ac: f7e6 fa22 bl 800d8f4 + 802740a: 4b1d ldr r3, [pc, #116] ; (8027480 ) + 802740c: 681b ldr r3, [r3, #0] + 802740e: f503 73cc add.w r3, r3, #408 ; 0x198 + 8027412: 2200 movs r2, #0 + 8027414: 4619 mov r1, r3 + 8027416: 6838 ldr r0, [r7, #0] + 8027418: f7e6 fa36 bl 800d888 lv_obj_add_style(obj, &styles->pad_normal, 0); - 80274b0: 4b18 ldr r3, [pc, #96] ; (8027514 ) - 80274b2: 681b ldr r3, [r3, #0] - 80274b4: 3380 adds r3, #128 ; 0x80 - 80274b6: 2200 movs r2, #0 - 80274b8: 4619 mov r1, r3 - 80274ba: 6838 ldr r0, [r7, #0] - 80274bc: f7e6 fa1a bl 800d8f4 + 802741c: 4b18 ldr r3, [pc, #96] ; (8027480 ) + 802741e: 681b ldr r3, [r3, #0] + 8027420: 3380 adds r3, #128 ; 0x80 + 8027422: 2200 movs r2, #0 + 8027424: 4619 mov r1, r3 + 8027426: 6838 ldr r0, [r7, #0] + 8027428: f7e6 fa2e bl 800d888 lv_obj_add_style(obj, &styles->bg_color_white, LV_PART_KNOB); - 80274c0: 4b14 ldr r3, [pc, #80] ; (8027514 ) - 80274c2: 681b ldr r3, [r3, #0] - 80274c4: 3350 adds r3, #80 ; 0x50 - 80274c6: f44f 3240 mov.w r2, #196608 ; 0x30000 - 80274ca: 4619 mov r1, r3 - 80274cc: 6838 ldr r0, [r7, #0] - 80274ce: f7e6 fa11 bl 800d8f4 + 802742c: 4b14 ldr r3, [pc, #80] ; (8027480 ) + 802742e: 681b ldr r3, [r3, #0] + 8027430: 3350 adds r3, #80 ; 0x50 + 8027432: f44f 3240 mov.w r2, #196608 ; 0x30000 + 8027436: 4619 mov r1, r3 + 8027438: 6838 ldr r0, [r7, #0] + 802743a: f7e6 fa25 bl 800d888 lv_obj_add_style(obj, &styles->pad_normal, LV_PART_KNOB); - 80274d2: 4b10 ldr r3, [pc, #64] ; (8027514 ) - 80274d4: 681b ldr r3, [r3, #0] - 80274d6: 3380 adds r3, #128 ; 0x80 - 80274d8: f44f 3240 mov.w r2, #196608 ; 0x30000 - 80274dc: 4619 mov r1, r3 - 80274de: 6838 ldr r0, [r7, #0] - 80274e0: f7e6 fa08 bl 800d8f4 - 80274e4: e033 b.n 802754e + 802743e: 4b10 ldr r3, [pc, #64] ; (8027480 ) + 8027440: 681b ldr r3, [r3, #0] + 8027442: 3380 adds r3, #128 ; 0x80 + 8027444: f44f 3240 mov.w r2, #196608 ; 0x30000 + 8027448: 4619 mov r1, r3 + 802744a: 6838 ldr r0, [r7, #0] + 802744c: f7e6 fa1c bl 800d888 + 8027450: e033 b.n 80274ba } #endif #if LV_USE_LED else if(lv_obj_check_type(obj, &lv_led_class)) { - 80274e6: 4918 ldr r1, [pc, #96] ; (8027548 ) - 80274e8: 6838 ldr r0, [r7, #0] - 80274ea: f7df f9d9 bl 80068a0 - 80274ee: 4603 mov r3, r0 - 80274f0: 2b00 cmp r3, #0 - 80274f2: d02c beq.n 802754e + 8027452: 4918 ldr r1, [pc, #96] ; (80274b4 ) + 8027454: 6838 ldr r0, [r7, #0] + 8027456: f7df f9ed bl 8006834 + 802745a: 4603 mov r3, r0 + 802745c: 2b00 cmp r3, #0 + 802745e: d02c beq.n 80274ba lv_obj_add_style(obj, &styles->led, 0); - 80274f4: 4b07 ldr r3, [pc, #28] ; (8027514 ) - 80274f6: 681b ldr r3, [r3, #0] - 80274f8: f503 7310 add.w r3, r3, #576 ; 0x240 - 80274fc: 2200 movs r2, #0 - 80274fe: 4619 mov r1, r3 - 8027500: 6838 ldr r0, [r7, #0] - 8027502: f7e6 f9f7 bl 800d8f4 - 8027506: e022 b.n 802754e + 8027460: 4b07 ldr r3, [pc, #28] ; (8027480 ) + 8027462: 681b ldr r3, [r3, #0] + 8027464: f503 7310 add.w r3, r3, #576 ; 0x240 + 8027468: 2200 movs r2, #0 + 802746a: 4619 mov r1, r3 + 802746c: 6838 ldr r0, [r7, #0] + 802746e: f7e6 fa0b bl 800d888 + 8027472: e022 b.n 80274ba return; - 8027508: bf00 nop - 802750a: e020 b.n 802754e - 802750c: 0806d114 .word 0x0806d114 - 8027510: 0806d0f8 .word 0x0806d0f8 - 8027514: 20001c4c .word 0x20001c4c - 8027518: 0806d050 .word 0x0806d050 - 802751c: 00010040 .word 0x00010040 - 8027520: 0806d088 .word 0x0806d088 - 8027524: 0806d0a4 .word 0x0806d0a4 - 8027528: 0806d14c .word 0x0806d14c - 802752c: 0806d168 .word 0x0806d168 - 8027530: 0806d184 .word 0x0806d184 - 8027534: 0806d1d8 .word 0x0806d1d8 - 8027538: 0806d1f4 .word 0x0806d1f4 - 802753c: 0806d1bc .word 0x0806d1bc - 8027540: 0806d210 .word 0x0806d210 - 8027544: 0806cc14 .word 0x0806cc14 - 8027548: 0806cfc4 .word 0x0806cfc4 + 8027474: bf00 nop + 8027476: e020 b.n 80274ba + 8027478: 0806d06c .word 0x0806d06c + 802747c: 0806d050 .word 0x0806d050 + 8027480: 20001c4c .word 0x20001c4c + 8027484: 0806cfa8 .word 0x0806cfa8 + 8027488: 00010040 .word 0x00010040 + 802748c: 0806cfe0 .word 0x0806cfe0 + 8027490: 0806cffc .word 0x0806cffc + 8027494: 0806d0a4 .word 0x0806d0a4 + 8027498: 0806d0c0 .word 0x0806d0c0 + 802749c: 0806d0dc .word 0x0806d0dc + 80274a0: 0806d130 .word 0x0806d130 + 80274a4: 0806d14c .word 0x0806d14c + 80274a8: 0806d114 .word 0x0806d114 + 80274ac: 0806d168 .word 0x0806d168 + 80274b0: 0806cb6c .word 0x0806cb6c + 80274b4: 0806cf1c .word 0x0806cf1c return; - 802754c: bf00 nop + 80274b8: bf00 nop } #endif } - 802754e: 3710 adds r7, #16 - 8027550: 46bd mov sp, r7 - 8027552: bd80 pop {r7, pc} + 80274ba: 3710 adds r7, #16 + 80274bc: 46bd mov sp, r7 + 80274be: bd80 pop {r7, pc} -08027554 : +080274c0 : /********************** * STATIC FUNCTIONS **********************/ static void style_init_reset(lv_style_t * style) { - 8027554: b580 push {r7, lr} - 8027556: b082 sub sp, #8 - 8027558: af00 add r7, sp, #0 - 802755a: 6078 str r0, [r7, #4] + 80274c0: b580 push {r7, lr} + 80274c2: b082 sub sp, #8 + 80274c4: af00 add r7, sp, #0 + 80274c6: 6078 str r0, [r7, #4] if(inited) { - 802755c: 4b07 ldr r3, [pc, #28] ; (802757c ) - 802755e: 781b ldrb r3, [r3, #0] - 8027560: 2b00 cmp r3, #0 - 8027562: d003 beq.n 802756c + 80274c8: 4b07 ldr r3, [pc, #28] ; (80274e8 ) + 80274ca: 781b ldrb r3, [r3, #0] + 80274cc: 2b00 cmp r3, #0 + 80274ce: d003 beq.n 80274d8 lv_style_reset(style); - 8027564: 6878 ldr r0, [r7, #4] - 8027566: f00c fe81 bl 803426c + 80274d0: 6878 ldr r0, [r7, #4] + 80274d2: f00c fe81 bl 80341d8 } else { lv_style_init(style); } } - 802756a: e002 b.n 8027572 + 80274d6: e002 b.n 80274de lv_style_init(style); - 802756c: 6878 ldr r0, [r7, #4] - 802756e: f00c fe71 bl 8034254 + 80274d8: 6878 ldr r0, [r7, #4] + 80274da: f00c fe71 bl 80341c0 } - 8027572: bf00 nop - 8027574: 3708 adds r7, #8 - 8027576: 46bd mov sp, r7 - 8027578: bd80 pop {r7, pc} - 802757a: bf00 nop - 802757c: 20001c86 .word 0x20001c86 + 80274de: bf00 nop + 80274e0: 3708 adds r7, #8 + 80274e2: 46bd mov sp, r7 + 80274e4: bd80 pop {r7, pc} + 80274e6: bf00 nop + 80274e8: 20001c86 .word 0x20001c86 -08027580 : +080274ec : * Percentage values are stored in special range * @param x the percentage (0..1000) * @return a coordinate that stores the percentage */ static inline lv_coord_t lv_pct(lv_coord_t x) { - 8027580: b480 push {r7} - 8027582: b083 sub sp, #12 - 8027584: af00 add r7, sp, #0 - 8027586: 4603 mov r3, r0 - 8027588: 80fb strh r3, [r7, #6] + 80274ec: b480 push {r7} + 80274ee: b083 sub sp, #12 + 80274f0: af00 add r7, sp, #0 + 80274f2: 4603 mov r3, r0 + 80274f4: 80fb strh r3, [r7, #6] return LV_PCT(x); - 802758a: f9b7 3006 ldrsh.w r3, [r7, #6] - 802758e: 2b00 cmp r3, #0 - 8027590: da08 bge.n 80275a4 - 8027592: 88fb ldrh r3, [r7, #6] - 8027594: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 8027598: b29b uxth r3, r3 - 802759a: b21b sxth r3, r3 - 802759c: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 80275a0: b21b sxth r3, r3 - 80275a2: e003 b.n 80275ac - 80275a4: 88fb ldrh r3, [r7, #6] - 80275a6: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 80275aa: b21b sxth r3, r3 + 80274f6: f9b7 3006 ldrsh.w r3, [r7, #6] + 80274fa: 2b00 cmp r3, #0 + 80274fc: da08 bge.n 8027510 + 80274fe: 88fb ldrh r3, [r7, #6] + 8027500: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 8027504: b29b uxth r3, r3 + 8027506: b21b sxth r3, r3 + 8027508: f443 5300 orr.w r3, r3, #8192 ; 0x2000 + 802750c: b21b sxth r3, r3 + 802750e: e003 b.n 8027518 + 8027510: 88fb ldrh r3, [r7, #6] + 8027512: f443 5300 orr.w r3, r3, #8192 ; 0x2000 + 8027516: b21b sxth r3, r3 } - 80275ac: 4618 mov r0, r3 - 80275ae: 370c adds r7, #12 - 80275b0: 46bd mov sp, r7 - 80275b2: bc80 pop {r7} - 80275b4: 4770 bx lr + 8027518: 4618 mov r0, r3 + 802751a: 370c adds r7, #12 + 802751c: 46bd mov sp, r7 + 802751e: bc80 pop {r7} + 8027520: 4770 bx lr -080275b6 : +08027522 : } lv_obj_invalidate(obj); } void lv_calendar_set_today_date(lv_obj_t * obj, uint32_t year, uint32_t month, uint32_t day) { - 80275b6: b580 push {r7, lr} - 80275b8: b086 sub sp, #24 - 80275ba: af00 add r7, sp, #0 - 80275bc: 60f8 str r0, [r7, #12] - 80275be: 60b9 str r1, [r7, #8] - 80275c0: 607a str r2, [r7, #4] - 80275c2: 603b str r3, [r7, #0] + 8027522: b580 push {r7, lr} + 8027524: b086 sub sp, #24 + 8027526: af00 add r7, sp, #0 + 8027528: 60f8 str r0, [r7, #12] + 802752a: 60b9 str r1, [r7, #8] + 802752c: 607a str r2, [r7, #4] + 802752e: 603b str r3, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_calendar_t * calendar = (lv_calendar_t *)obj; - 80275c4: 68fb ldr r3, [r7, #12] - 80275c6: 617b str r3, [r7, #20] + 8027530: 68fb ldr r3, [r7, #12] + 8027532: 617b str r3, [r7, #20] calendar->today.year = year; - 80275c8: 68bb ldr r3, [r7, #8] - 80275ca: b29a uxth r2, r3 - 80275cc: 697b ldr r3, [r7, #20] - 80275ce: 851a strh r2, [r3, #40] ; 0x28 + 8027534: 68bb ldr r3, [r7, #8] + 8027536: b29a uxth r2, r3 + 8027538: 697b ldr r3, [r7, #20] + 802753a: 851a strh r2, [r3, #40] ; 0x28 calendar->today.month = month; - 80275d0: 687b ldr r3, [r7, #4] - 80275d2: b25a sxtb r2, r3 - 80275d4: 697b ldr r3, [r7, #20] - 80275d6: f883 202a strb.w r2, [r3, #42] ; 0x2a + 802753c: 687b ldr r3, [r7, #4] + 802753e: b25a sxtb r2, r3 + 8027540: 697b ldr r3, [r7, #20] + 8027542: f883 202a strb.w r2, [r3, #42] ; 0x2a calendar->today.day = day; - 80275da: 683b ldr r3, [r7, #0] - 80275dc: b25a sxtb r2, r3 - 80275de: 697b ldr r3, [r7, #20] - 80275e0: f883 202b strb.w r2, [r3, #43] ; 0x2b + 8027546: 683b ldr r3, [r7, #0] + 8027548: b25a sxtb r2, r3 + 802754a: 697b ldr r3, [r7, #20] + 802754c: f883 202b strb.w r2, [r3, #43] ; 0x2b highlight_update(obj); - 80275e4: 68f8 ldr r0, [r7, #12] - 80275e6: f000 fb3b bl 8027c60 + 8027550: 68f8 ldr r0, [r7, #12] + 8027552: f000 fb3b bl 8027bcc } - 80275ea: bf00 nop - 80275ec: 3718 adds r7, #24 - 80275ee: 46bd mov sp, r7 - 80275f0: bd80 pop {r7, pc} + 8027556: bf00 nop + 8027558: 3718 adds r7, #24 + 802755a: 46bd mov sp, r7 + 802755c: bd80 pop {r7, pc} ... -080275f4 : +08027560 : highlight_update(obj); } void lv_calendar_set_showed_date(lv_obj_t * obj, uint32_t year, uint32_t month) { - 80275f4: b580 push {r7, lr} - 80275f6: b08a sub sp, #40 ; 0x28 - 80275f8: af00 add r7, sp, #0 - 80275fa: 60f8 str r0, [r7, #12] - 80275fc: 60b9 str r1, [r7, #8] - 80275fe: 607a str r2, [r7, #4] + 8027560: b580 push {r7, lr} + 8027562: b08a sub sp, #40 ; 0x28 + 8027564: af00 add r7, sp, #0 + 8027566: 60f8 str r0, [r7, #12] + 8027568: 60b9 str r1, [r7, #8] + 802756a: 607a str r2, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_calendar_t * calendar = (lv_calendar_t *)obj; - 8027600: 68fb ldr r3, [r7, #12] - 8027602: 623b str r3, [r7, #32] + 802756c: 68fb ldr r3, [r7, #12] + 802756e: 623b str r3, [r7, #32] calendar->showed_date.year = year; - 8027604: 68bb ldr r3, [r7, #8] - 8027606: b29a uxth r2, r3 - 8027608: 6a3b ldr r3, [r7, #32] - 802760a: 859a strh r2, [r3, #44] ; 0x2c + 8027570: 68bb ldr r3, [r7, #8] + 8027572: b29a uxth r2, r3 + 8027574: 6a3b ldr r3, [r7, #32] + 8027576: 859a strh r2, [r3, #44] ; 0x2c calendar->showed_date.month = month; - 802760c: 687b ldr r3, [r7, #4] - 802760e: b25a sxtb r2, r3 - 8027610: 6a3b ldr r3, [r7, #32] - 8027612: f883 202e strb.w r2, [r3, #46] ; 0x2e + 8027578: 687b ldr r3, [r7, #4] + 802757a: b25a sxtb r2, r3 + 802757c: 6a3b ldr r3, [r7, #32] + 802757e: f883 202e strb.w r2, [r3, #46] ; 0x2e calendar->showed_date.day = 1; - 8027616: 6a3b ldr r3, [r7, #32] - 8027618: 2201 movs r2, #1 - 802761a: f883 202f strb.w r2, [r3, #47] ; 0x2f + 8027582: 6a3b ldr r3, [r7, #32] + 8027584: 2201 movs r2, #1 + 8027586: f883 202f strb.w r2, [r3, #47] ; 0x2f lv_calendar_date_t d; d.year = calendar->showed_date.year; - 802761e: 6a3b ldr r3, [r7, #32] - 8027620: 8d9b ldrh r3, [r3, #44] ; 0x2c - 8027622: 823b strh r3, [r7, #16] + 802758a: 6a3b ldr r3, [r7, #32] + 802758c: 8d9b ldrh r3, [r3, #44] ; 0x2c + 802758e: 823b strh r3, [r7, #16] d.month = calendar->showed_date.month; - 8027624: 6a3b ldr r3, [r7, #32] - 8027626: f993 302e ldrsb.w r3, [r3, #46] ; 0x2e - 802762a: 74bb strb r3, [r7, #18] + 8027590: 6a3b ldr r3, [r7, #32] + 8027592: f993 302e ldrsb.w r3, [r3, #46] ; 0x2e + 8027596: 74bb strb r3, [r7, #18] d.day = calendar->showed_date.day; - 802762c: 6a3b ldr r3, [r7, #32] - 802762e: f993 302f ldrsb.w r3, [r3, #47] ; 0x2f - 8027632: 74fb strb r3, [r7, #19] + 8027598: 6a3b ldr r3, [r7, #32] + 802759a: f993 302f ldrsb.w r3, [r3, #47] ; 0x2f + 802759e: 74fb strb r3, [r7, #19] uint8_t i; /*Remove the disabled state but revert it for day names*/ lv_btnmatrix_clear_btn_ctrl_all(calendar->btnm, LV_BTNMATRIX_CTRL_DISABLED); - 8027634: 6a3b ldr r3, [r7, #32] - 8027636: 6a5b ldr r3, [r3, #36] ; 0x24 - 8027638: 2120 movs r1, #32 - 802763a: 4618 mov r0, r3 - 802763c: f012 fadf bl 8039bfe + 80275a0: 6a3b ldr r3, [r7, #32] + 80275a2: 6a5b ldr r3, [r3, #36] ; 0x24 + 80275a4: 2120 movs r1, #32 + 80275a6: 4618 mov r0, r3 + 80275a8: f012 fadf bl 8039b6a for(i = 0; i < 7; i++) { - 8027640: 2300 movs r3, #0 - 8027642: f887 3027 strb.w r3, [r7, #39] ; 0x27 - 8027646: e00d b.n 8027664 + 80275ac: 2300 movs r3, #0 + 80275ae: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 80275b2: e00d b.n 80275d0 lv_btnmatrix_set_btn_ctrl(calendar->btnm, i, LV_BTNMATRIX_CTRL_DISABLED); - 8027648: 6a3b ldr r3, [r7, #32] - 802764a: 6a5b ldr r3, [r3, #36] ; 0x24 - 802764c: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 - 8027650: b291 uxth r1, r2 - 8027652: 2220 movs r2, #32 - 8027654: 4618 mov r0, r3 - 8027656: f012 fa3e bl 8039ad6 + 80275b4: 6a3b ldr r3, [r7, #32] + 80275b6: 6a5b ldr r3, [r3, #36] ; 0x24 + 80275b8: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 + 80275bc: b291 uxth r1, r2 + 80275be: 2220 movs r2, #32 + 80275c0: 4618 mov r0, r3 + 80275c2: f012 fa3e bl 8039a42 for(i = 0; i < 7; i++) { - 802765a: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 802765e: 3301 adds r3, #1 - 8027660: f887 3027 strb.w r3, [r7, #39] ; 0x27 - 8027664: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8027668: 2b06 cmp r3, #6 - 802766a: d9ed bls.n 8027648 + 80275c6: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 80275ca: 3301 adds r3, #1 + 80275cc: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 80275d0: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 80275d4: 2b06 cmp r3, #6 + 80275d6: d9ed bls.n 80275b4 } uint8_t act_mo_len = get_month_length(d.year, d.month); - 802766c: 8a3b ldrh r3, [r7, #16] - 802766e: 461a mov r2, r3 - 8027670: f997 3012 ldrsb.w r3, [r7, #18] - 8027674: 4619 mov r1, r3 - 8027676: 4610 mov r0, r2 - 8027678: f000 fa38 bl 8027aec - 802767c: 4603 mov r3, r0 - 802767e: 77fb strb r3, [r7, #31] + 80275d8: 8a3b ldrh r3, [r7, #16] + 80275da: 461a mov r2, r3 + 80275dc: f997 3012 ldrsb.w r3, [r7, #18] + 80275e0: 4619 mov r1, r3 + 80275e2: 4610 mov r0, r2 + 80275e4: f000 fa38 bl 8027a58 + 80275e8: 4603 mov r3, r0 + 80275ea: 77fb strb r3, [r7, #31] uint8_t day_first = get_day_of_week(d.year, d.month, 1); - 8027680: 8a3b ldrh r3, [r7, #16] - 8027682: 4618 mov r0, r3 - 8027684: f997 3012 ldrsb.w r3, [r7, #18] - 8027688: 2201 movs r2, #1 - 802768a: 4619 mov r1, r3 - 802768c: f000 fa9a bl 8027bc4 - 8027690: 4603 mov r3, r0 - 8027692: 77bb strb r3, [r7, #30] + 80275ec: 8a3b ldrh r3, [r7, #16] + 80275ee: 4618 mov r0, r3 + 80275f0: f997 3012 ldrsb.w r3, [r7, #18] + 80275f4: 2201 movs r2, #1 + 80275f6: 4619 mov r1, r3 + 80275f8: f000 fa9a bl 8027b30 + 80275fc: 4603 mov r3, r0 + 80275fe: 77bb strb r3, [r7, #30] uint8_t c; for(i = day_first, c = 1; i < act_mo_len + day_first; i++, c++) { - 8027694: 7fbb ldrb r3, [r7, #30] - 8027696: f887 3027 strb.w r3, [r7, #39] ; 0x27 - 802769a: 2301 movs r3, #1 - 802769c: f887 3026 strb.w r3, [r7, #38] ; 0x26 - 80276a0: e015 b.n 80276ce + 8027600: 7fbb ldrb r3, [r7, #30] + 8027602: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8027606: 2301 movs r3, #1 + 8027608: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 802760c: e015 b.n 802763a lv_snprintf(calendar->nums[i], sizeof(calendar->nums[0]), "%d", c); - 80276a2: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80276a6: 3346 adds r3, #70 ; 0x46 - 80276a8: 009b lsls r3, r3, #2 - 80276aa: 6a3a ldr r2, [r7, #32] - 80276ac: 18d0 adds r0, r2, r3 - 80276ae: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 80276b2: 4a62 ldr r2, [pc, #392] ; (802783c ) - 80276b4: 2104 movs r1, #4 - 80276b6: f00c fcef bl 8034098 + 802760e: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8027612: 3346 adds r3, #70 ; 0x46 + 8027614: 009b lsls r3, r3, #2 + 8027616: 6a3a ldr r2, [r7, #32] + 8027618: 18d0 adds r0, r2, r3 + 802761a: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 802761e: 4a62 ldr r2, [pc, #392] ; (80277a8 ) + 8027620: 2104 movs r1, #4 + 8027622: f00c fcef bl 8034004 for(i = day_first, c = 1; i < act_mo_len + day_first; i++, c++) { - 80276ba: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80276be: 3301 adds r3, #1 - 80276c0: f887 3027 strb.w r3, [r7, #39] ; 0x27 - 80276c4: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 80276c8: 3301 adds r3, #1 - 80276ca: f887 3026 strb.w r3, [r7, #38] ; 0x26 - 80276ce: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 - 80276d2: 7ff9 ldrb r1, [r7, #31] - 80276d4: 7fbb ldrb r3, [r7, #30] - 80276d6: 440b add r3, r1 - 80276d8: 429a cmp r2, r3 - 80276da: dbe2 blt.n 80276a2 + 8027626: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 802762a: 3301 adds r3, #1 + 802762c: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8027630: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 8027634: 3301 adds r3, #1 + 8027636: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 802763a: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 + 802763e: 7ff9 ldrb r1, [r7, #31] + 8027640: 7fbb ldrb r3, [r7, #30] + 8027642: 440b add r3, r1 + 8027644: 429a cmp r2, r3 + 8027646: dbe2 blt.n 802760e } uint8_t prev_mo_len = get_month_length(d.year, d.month - 1); - 80276dc: 8a3b ldrh r3, [r7, #16] - 80276de: 461a mov r2, r3 - 80276e0: f997 3012 ldrsb.w r3, [r7, #18] - 80276e4: 3b01 subs r3, #1 - 80276e6: 4619 mov r1, r3 - 80276e8: 4610 mov r0, r2 - 80276ea: f000 f9ff bl 8027aec - 80276ee: 4603 mov r3, r0 - 80276f0: 777b strb r3, [r7, #29] + 8027648: 8a3b ldrh r3, [r7, #16] + 802764a: 461a mov r2, r3 + 802764c: f997 3012 ldrsb.w r3, [r7, #18] + 8027650: 3b01 subs r3, #1 + 8027652: 4619 mov r1, r3 + 8027654: 4610 mov r0, r2 + 8027656: f000 f9ff bl 8027a58 + 802765a: 4603 mov r3, r0 + 802765c: 777b strb r3, [r7, #29] for(i = 0, c = prev_mo_len - day_first + 1; i < day_first; i++, c++) { - 80276f2: 2300 movs r3, #0 - 80276f4: f887 3027 strb.w r3, [r7, #39] ; 0x27 - 80276f8: 7f7a ldrb r2, [r7, #29] - 80276fa: 7fbb ldrb r3, [r7, #30] - 80276fc: 1ad3 subs r3, r2, r3 - 80276fe: b2db uxtb r3, r3 - 8027700: 3301 adds r3, #1 - 8027702: f887 3026 strb.w r3, [r7, #38] ; 0x26 - 8027706: e020 b.n 802774a + 802765e: 2300 movs r3, #0 + 8027660: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8027664: 7f7a ldrb r2, [r7, #29] + 8027666: 7fbb ldrb r3, [r7, #30] + 8027668: 1ad3 subs r3, r2, r3 + 802766a: b2db uxtb r3, r3 + 802766c: 3301 adds r3, #1 + 802766e: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 8027672: e020 b.n 80276b6 lv_snprintf(calendar->nums[i], sizeof(calendar->nums[0]), "%d", c); - 8027708: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 802770c: 3346 adds r3, #70 ; 0x46 - 802770e: 009b lsls r3, r3, #2 - 8027710: 6a3a ldr r2, [r7, #32] - 8027712: 18d0 adds r0, r2, r3 - 8027714: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 8027718: 4a48 ldr r2, [pc, #288] ; (802783c ) - 802771a: 2104 movs r1, #4 - 802771c: f00c fcbc bl 8034098 + 8027674: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8027678: 3346 adds r3, #70 ; 0x46 + 802767a: 009b lsls r3, r3, #2 + 802767c: 6a3a ldr r2, [r7, #32] + 802767e: 18d0 adds r0, r2, r3 + 8027680: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 8027684: 4a48 ldr r2, [pc, #288] ; (80277a8 ) + 8027686: 2104 movs r1, #4 + 8027688: f00c fcbc bl 8034004 lv_btnmatrix_set_btn_ctrl(calendar->btnm, i + 7, LV_BTNMATRIX_CTRL_DISABLED); - 8027720: 6a3b ldr r3, [r7, #32] - 8027722: 6a58 ldr r0, [r3, #36] ; 0x24 - 8027724: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8027728: b29b uxth r3, r3 - 802772a: 3307 adds r3, #7 - 802772c: b29b uxth r3, r3 - 802772e: 2220 movs r2, #32 - 8027730: 4619 mov r1, r3 - 8027732: f012 f9d0 bl 8039ad6 + 802768c: 6a3b ldr r3, [r7, #32] + 802768e: 6a58 ldr r0, [r3, #36] ; 0x24 + 8027690: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8027694: b29b uxth r3, r3 + 8027696: 3307 adds r3, #7 + 8027698: b29b uxth r3, r3 + 802769a: 2220 movs r2, #32 + 802769c: 4619 mov r1, r3 + 802769e: f012 f9d0 bl 8039a42 for(i = 0, c = prev_mo_len - day_first + 1; i < day_first; i++, c++) { - 8027736: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 802773a: 3301 adds r3, #1 - 802773c: f887 3027 strb.w r3, [r7, #39] ; 0x27 - 8027740: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 8027744: 3301 adds r3, #1 - 8027746: f887 3026 strb.w r3, [r7, #38] ; 0x26 - 802774a: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 - 802774e: 7fbb ldrb r3, [r7, #30] - 8027750: 429a cmp r2, r3 - 8027752: d3d9 bcc.n 8027708 + 80276a2: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 80276a6: 3301 adds r3, #1 + 80276a8: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 80276ac: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 80276b0: 3301 adds r3, #1 + 80276b2: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 80276b6: f897 2027 ldrb.w r2, [r7, #39] ; 0x27 + 80276ba: 7fbb ldrb r3, [r7, #30] + 80276bc: 429a cmp r2, r3 + 80276be: d3d9 bcc.n 8027674 } for(i = day_first + act_mo_len, c = 1; i < 6 * 7; i++, c++) { - 8027754: 7fba ldrb r2, [r7, #30] - 8027756: 7ffb ldrb r3, [r7, #31] - 8027758: 4413 add r3, r2 - 802775a: f887 3027 strb.w r3, [r7, #39] ; 0x27 - 802775e: 2301 movs r3, #1 - 8027760: f887 3026 strb.w r3, [r7, #38] ; 0x26 - 8027764: e020 b.n 80277a8 + 80276c0: 7fba ldrb r2, [r7, #30] + 80276c2: 7ffb ldrb r3, [r7, #31] + 80276c4: 4413 add r3, r2 + 80276c6: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 80276ca: 2301 movs r3, #1 + 80276cc: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 80276d0: e020 b.n 8027714 lv_snprintf(calendar->nums[i], sizeof(calendar->nums[0]), "%d", c); - 8027766: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 802776a: 3346 adds r3, #70 ; 0x46 - 802776c: 009b lsls r3, r3, #2 - 802776e: 6a3a ldr r2, [r7, #32] - 8027770: 18d0 adds r0, r2, r3 - 8027772: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 8027776: 4a31 ldr r2, [pc, #196] ; (802783c ) - 8027778: 2104 movs r1, #4 - 802777a: f00c fc8d bl 8034098 + 80276d2: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 80276d6: 3346 adds r3, #70 ; 0x46 + 80276d8: 009b lsls r3, r3, #2 + 80276da: 6a3a ldr r2, [r7, #32] + 80276dc: 18d0 adds r0, r2, r3 + 80276de: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 80276e2: 4a31 ldr r2, [pc, #196] ; (80277a8 ) + 80276e4: 2104 movs r1, #4 + 80276e6: f00c fc8d bl 8034004 lv_btnmatrix_set_btn_ctrl(calendar->btnm, i + 7, LV_BTNMATRIX_CTRL_DISABLED); - 802777e: 6a3b ldr r3, [r7, #32] - 8027780: 6a58 ldr r0, [r3, #36] ; 0x24 - 8027782: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8027786: b29b uxth r3, r3 - 8027788: 3307 adds r3, #7 - 802778a: b29b uxth r3, r3 - 802778c: 2220 movs r2, #32 - 802778e: 4619 mov r1, r3 - 8027790: f012 f9a1 bl 8039ad6 + 80276ea: 6a3b ldr r3, [r7, #32] + 80276ec: 6a58 ldr r0, [r3, #36] ; 0x24 + 80276ee: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 80276f2: b29b uxth r3, r3 + 80276f4: 3307 adds r3, #7 + 80276f6: b29b uxth r3, r3 + 80276f8: 2220 movs r2, #32 + 80276fa: 4619 mov r1, r3 + 80276fc: f012 f9a1 bl 8039a42 for(i = day_first + act_mo_len, c = 1; i < 6 * 7; i++, c++) { - 8027794: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8027798: 3301 adds r3, #1 - 802779a: f887 3027 strb.w r3, [r7, #39] ; 0x27 - 802779e: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 80277a2: 3301 adds r3, #1 - 80277a4: f887 3026 strb.w r3, [r7, #38] ; 0x26 - 80277a8: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80277ac: 2b29 cmp r3, #41 ; 0x29 - 80277ae: d9da bls.n 8027766 + 8027700: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8027704: 3301 adds r3, #1 + 8027706: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 802770a: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 802770e: 3301 adds r3, #1 + 8027710: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 8027714: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8027718: 2b29 cmp r3, #41 ; 0x29 + 802771a: d9da bls.n 80276d2 } highlight_update(obj); - 80277b0: 68f8 ldr r0, [r7, #12] - 80277b2: f000 fa55 bl 8027c60 + 802771c: 68f8 ldr r0, [r7, #12] + 802771e: f000 fa55 bl 8027bcc /*Reset the focused button if the days changes*/ if(lv_btnmatrix_get_selected_btn(calendar->btnm) != LV_BTNMATRIX_BTN_NONE) { - 80277b6: 6a3b ldr r3, [r7, #32] - 80277b8: 6a5b ldr r3, [r3, #36] ; 0x24 - 80277ba: 4618 mov r0, r3 - 80277bc: f012 fa55 bl 8039c6a - 80277c0: 4603 mov r3, r0 - 80277c2: 461a mov r2, r3 - 80277c4: f64f 73ff movw r3, #65535 ; 0xffff - 80277c8: 429a cmp r2, r3 - 80277ca: d009 beq.n 80277e0 + 8027722: 6a3b ldr r3, [r7, #32] + 8027724: 6a5b ldr r3, [r3, #36] ; 0x24 + 8027726: 4618 mov r0, r3 + 8027728: f012 fa55 bl 8039bd6 + 802772c: 4603 mov r3, r0 + 802772e: 461a mov r2, r3 + 8027730: f64f 73ff movw r3, #65535 ; 0xffff + 8027734: 429a cmp r2, r3 + 8027736: d009 beq.n 802774c lv_btnmatrix_set_selected_btn(calendar->btnm, day_first + 7); - 80277cc: 6a3b ldr r3, [r7, #32] - 80277ce: 6a5a ldr r2, [r3, #36] ; 0x24 - 80277d0: 7fbb ldrb r3, [r7, #30] - 80277d2: b29b uxth r3, r3 - 80277d4: 3307 adds r3, #7 - 80277d6: b29b uxth r3, r3 - 80277d8: 4619 mov r1, r3 - 80277da: 4610 mov r0, r2 - 80277dc: f012 f956 bl 8039a8c + 8027738: 6a3b ldr r3, [r7, #32] + 802773a: 6a5a ldr r2, [r3, #36] ; 0x24 + 802773c: 7fbb ldrb r3, [r7, #30] + 802773e: b29b uxth r3, r3 + 8027740: 3307 adds r3, #7 + 8027742: b29b uxth r3, r3 + 8027744: 4619 mov r1, r3 + 8027746: 4610 mov r0, r2 + 8027748: f012 f956 bl 80399f8 } lv_obj_invalidate(obj); - 80277e0: 68f8 ldr r0, [r7, #12] - 80277e2: f7e3 f966 bl 800aab2 + 802774c: 68f8 ldr r0, [r7, #12] + 802774e: f7e3 f97a bl 800aa46 /* The children of the calendar are probably headers. * Notify them to let the headers updated to the new date*/ uint32_t child_cnt = lv_obj_get_child_cnt(obj); - 80277e6: 68f8 ldr r0, [r7, #12] - 80277e8: f7e7 ffd2 bl 800f790 - 80277ec: 61b8 str r0, [r7, #24] + 8027752: 68f8 ldr r0, [r7, #12] + 8027754: f7e7 ffd2 bl 800f6fc + 8027758: 61b8 str r0, [r7, #24] for(i = 0; i < child_cnt; i++) { - 80277ee: 2300 movs r3, #0 - 80277f0: f887 3027 strb.w r3, [r7, #39] ; 0x27 - 80277f4: e017 b.n 8027826 + 802775a: 2300 movs r3, #0 + 802775c: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8027760: e017 b.n 8027792 lv_obj_t * child = lv_obj_get_child(obj, i); - 80277f6: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80277fa: 4619 mov r1, r3 - 80277fc: 68f8 ldr r0, [r7, #12] - 80277fe: f7e7 ff95 bl 800f72c - 8027802: 6178 str r0, [r7, #20] + 8027762: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8027766: 4619 mov r1, r3 + 8027768: 68f8 ldr r0, [r7, #12] + 802776a: f7e7 ff95 bl 800f698 + 802776e: 6178 str r0, [r7, #20] if(child == calendar->btnm) continue; - 8027804: 6a3b ldr r3, [r7, #32] - 8027806: 6a5b ldr r3, [r3, #36] ; 0x24 - 8027808: 697a ldr r2, [r7, #20] - 802780a: 429a cmp r2, r3 - 802780c: d005 beq.n 802781a + 8027770: 6a3b ldr r3, [r7, #32] + 8027772: 6a5b ldr r3, [r3, #36] ; 0x24 + 8027774: 697a ldr r2, [r7, #20] + 8027776: 429a cmp r2, r3 + 8027778: d005 beq.n 8027786 lv_event_send(child, LV_EVENT_VALUE_CHANGED, obj); - 802780e: 68fa ldr r2, [r7, #12] - 8027810: 211c movs r1, #28 - 8027812: 6978 ldr r0, [r7, #20] - 8027814: f7da fe34 bl 8002480 - 8027818: e000 b.n 802781c + 802777a: 68fa ldr r2, [r7, #12] + 802777c: 211c movs r1, #28 + 802777e: 6978 ldr r0, [r7, #20] + 8027780: f7da fe48 bl 8002414 + 8027784: e000 b.n 8027788 if(child == calendar->btnm) continue; - 802781a: bf00 nop + 8027786: bf00 nop for(i = 0; i < child_cnt; i++) { - 802781c: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8027820: 3301 adds r3, #1 - 8027822: f887 3027 strb.w r3, [r7, #39] ; 0x27 - 8027826: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 802782a: 69ba ldr r2, [r7, #24] - 802782c: 429a cmp r2, r3 - 802782e: d8e2 bhi.n 80277f6 + 8027788: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 802778c: 3301 adds r3, #1 + 802778e: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8027792: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8027796: 69ba ldr r2, [r7, #24] + 8027798: 429a cmp r2, r3 + 802779a: d8e2 bhi.n 8027762 } } - 8027830: bf00 nop - 8027832: bf00 nop - 8027834: 3728 adds r7, #40 ; 0x28 - 8027836: 46bd mov sp, r7 - 8027838: bd80 pop {r7, pc} - 802783a: bf00 nop - 802783c: 08046c78 .word 0x08046c78 + 802779c: bf00 nop + 802779e: bf00 nop + 80277a0: 3728 adds r7, #40 ; 0x28 + 80277a2: 46bd mov sp, r7 + 80277a4: bd80 pop {r7, pc} + 80277a6: bf00 nop + 80277a8: 08046bd0 .word 0x08046bd0 -08027840 : +080277ac : return &calendar->today; } const lv_calendar_date_t * lv_calendar_get_showed_date(const lv_obj_t * obj) { - 8027840: b480 push {r7} - 8027842: b085 sub sp, #20 - 8027844: af00 add r7, sp, #0 - 8027846: 6078 str r0, [r7, #4] + 80277ac: b480 push {r7} + 80277ae: b085 sub sp, #20 + 80277b0: af00 add r7, sp, #0 + 80277b2: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); const lv_calendar_t * calendar = (lv_calendar_t *)obj; - 8027848: 687b ldr r3, [r7, #4] - 802784a: 60fb str r3, [r7, #12] + 80277b4: 687b ldr r3, [r7, #4] + 80277b6: 60fb str r3, [r7, #12] return &calendar->showed_date; - 802784c: 68fb ldr r3, [r7, #12] - 802784e: 332c adds r3, #44 ; 0x2c + 80277b8: 68fb ldr r3, [r7, #12] + 80277ba: 332c adds r3, #44 ; 0x2c } - 8027850: 4618 mov r0, r3 - 8027852: 3714 adds r7, #20 - 8027854: 46bd mov sp, r7 - 8027856: bc80 pop {r7} - 8027858: 4770 bx lr + 80277bc: 4618 mov r0, r3 + 80277be: 3714 adds r7, #20 + 80277c0: 46bd mov sp, r7 + 80277c2: bc80 pop {r7} + 80277c4: 4770 bx lr ... -0802785c : +080277c8 : /********************** * STATIC FUNCTIONS **********************/ static void lv_calendar_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802785c: b590 push {r4, r7, lr} - 802785e: b085 sub sp, #20 - 8027860: af00 add r7, sp, #0 - 8027862: 6078 str r0, [r7, #4] - 8027864: 6039 str r1, [r7, #0] + 80277c8: b590 push {r4, r7, lr} + 80277ca: b085 sub sp, #20 + 80277cc: af00 add r7, sp, #0 + 80277ce: 6078 str r0, [r7, #4] + 80277d0: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_calendar_t * calendar = (lv_calendar_t *)obj; - 8027866: 683b ldr r3, [r7, #0] - 8027868: 60bb str r3, [r7, #8] + 80277d2: 683b ldr r3, [r7, #0] + 80277d4: 60bb str r3, [r7, #8] /*Initialize the allocated 'ext'*/ calendar->today.year = 2020; - 802786a: 68bb ldr r3, [r7, #8] - 802786c: f240 72e4 movw r2, #2020 ; 0x7e4 - 8027870: 851a strh r2, [r3, #40] ; 0x28 + 80277d6: 68bb ldr r3, [r7, #8] + 80277d8: f240 72e4 movw r2, #2020 ; 0x7e4 + 80277dc: 851a strh r2, [r3, #40] ; 0x28 calendar->today.month = 1; - 8027872: 68bb ldr r3, [r7, #8] - 8027874: 2201 movs r2, #1 - 8027876: f883 202a strb.w r2, [r3, #42] ; 0x2a + 80277de: 68bb ldr r3, [r7, #8] + 80277e0: 2201 movs r2, #1 + 80277e2: f883 202a strb.w r2, [r3, #42] ; 0x2a calendar->today.day = 1; - 802787a: 68bb ldr r3, [r7, #8] - 802787c: 2201 movs r2, #1 - 802787e: f883 202b strb.w r2, [r3, #43] ; 0x2b + 80277e6: 68bb ldr r3, [r7, #8] + 80277e8: 2201 movs r2, #1 + 80277ea: f883 202b strb.w r2, [r3, #43] ; 0x2b calendar->showed_date.year = 2020; - 8027882: 68bb ldr r3, [r7, #8] - 8027884: f240 72e4 movw r2, #2020 ; 0x7e4 - 8027888: 859a strh r2, [r3, #44] ; 0x2c + 80277ee: 68bb ldr r3, [r7, #8] + 80277f0: f240 72e4 movw r2, #2020 ; 0x7e4 + 80277f4: 859a strh r2, [r3, #44] ; 0x2c calendar->showed_date.month = 1; - 802788a: 68bb ldr r3, [r7, #8] - 802788c: 2201 movs r2, #1 - 802788e: f883 202e strb.w r2, [r3, #46] ; 0x2e + 80277f6: 68bb ldr r3, [r7, #8] + 80277f8: 2201 movs r2, #1 + 80277fa: f883 202e strb.w r2, [r3, #46] ; 0x2e calendar->showed_date.day = 1; - 8027892: 68bb ldr r3, [r7, #8] - 8027894: 2201 movs r2, #1 - 8027896: f883 202f strb.w r2, [r3, #47] ; 0x2f + 80277fe: 68bb ldr r3, [r7, #8] + 8027800: 2201 movs r2, #1 + 8027802: f883 202f strb.w r2, [r3, #47] ; 0x2f calendar->highlighted_dates = NULL; - 802789a: 68bb ldr r3, [r7, #8] - 802789c: 2200 movs r2, #0 - 802789e: 631a str r2, [r3, #48] ; 0x30 + 8027806: 68bb ldr r3, [r7, #8] + 8027808: 2200 movs r2, #0 + 802780a: 631a str r2, [r3, #48] ; 0x30 calendar->highlighted_dates_num = 0; - 80278a0: 68bb ldr r3, [r7, #8] - 80278a2: 2200 movs r2, #0 - 80278a4: 869a strh r2, [r3, #52] ; 0x34 + 802780c: 68bb ldr r3, [r7, #8] + 802780e: 2200 movs r2, #0 + 8027810: 869a strh r2, [r3, #52] ; 0x34 lv_memset_00(calendar->nums, sizeof(calendar->nums)); - 80278a6: 68bb ldr r3, [r7, #8] - 80278a8: f503 738c add.w r3, r3, #280 ; 0x118 - 80278ac: 21a8 movs r1, #168 ; 0xa8 - 80278ae: 4618 mov r0, r3 - 80278b0: f00b fc4e bl 8033150 + 8027812: 68bb ldr r3, [r7, #8] + 8027814: f503 738c add.w r3, r3, #280 ; 0x118 + 8027818: 21a8 movs r1, #168 ; 0xa8 + 802781a: 4618 mov r0, r3 + 802781c: f00b fc4e bl 80330bc uint8_t i; uint8_t j = 0; - 80278b4: 2300 movs r3, #0 - 80278b6: 73bb strb r3, [r7, #14] + 8027820: 2300 movs r3, #0 + 8027822: 73bb strb r3, [r7, #14] for(i = 0; i < 8 * 7; i++) { - 80278b8: 2300 movs r3, #0 - 80278ba: 73fb strb r3, [r7, #15] - 80278bc: e032 b.n 8027924 + 8027824: 2300 movs r3, #0 + 8027826: 73fb strb r3, [r7, #15] + 8027828: e032 b.n 8027890 /*Every 8th string is "\n"*/ if(i != 0 && (i + 1) % 8 == 0) { - 80278be: 7bfb ldrb r3, [r7, #15] - 80278c0: 2b00 cmp r3, #0 - 80278c2: d00c beq.n 80278de - 80278c4: 7bfb ldrb r3, [r7, #15] - 80278c6: 3301 adds r3, #1 - 80278c8: f003 0307 and.w r3, r3, #7 - 80278cc: 2b00 cmp r3, #0 - 80278ce: d106 bne.n 80278de + 802782a: 7bfb ldrb r3, [r7, #15] + 802782c: 2b00 cmp r3, #0 + 802782e: d00c beq.n 802784a + 8027830: 7bfb ldrb r3, [r7, #15] + 8027832: 3301 adds r3, #1 + 8027834: f003 0307 and.w r3, r3, #7 + 8027838: 2b00 cmp r3, #0 + 802783a: d106 bne.n 802784a calendar->map[i] = "\n"; - 80278d0: 7bfa ldrb r2, [r7, #15] - 80278d2: 68bb ldr r3, [r7, #8] - 80278d4: 320e adds r2, #14 - 80278d6: 4940 ldr r1, [pc, #256] ; (80279d8 ) - 80278d8: f843 1022 str.w r1, [r3, r2, lsl #2] - 80278dc: e01f b.n 802791e + 802783c: 7bfa ldrb r2, [r7, #15] + 802783e: 68bb ldr r3, [r7, #8] + 8027840: 320e adds r2, #14 + 8027842: 4940 ldr r1, [pc, #256] ; (8027944 ) + 8027844: f843 1022 str.w r1, [r3, r2, lsl #2] + 8027848: e01f b.n 802788a } else if(i < 8) { - 80278de: 7bfb ldrb r3, [r7, #15] - 80278e0: 2b07 cmp r3, #7 - 80278e2: d809 bhi.n 80278f8 + 802784a: 7bfb ldrb r3, [r7, #15] + 802784c: 2b07 cmp r3, #7 + 802784e: d809 bhi.n 8027864 calendar->map[i] = day_names_def[i]; - 80278e4: 7bfb ldrb r3, [r7, #15] - 80278e6: 7bfa ldrb r2, [r7, #15] - 80278e8: 493c ldr r1, [pc, #240] ; (80279dc ) - 80278ea: f851 1023 ldr.w r1, [r1, r3, lsl #2] - 80278ee: 68bb ldr r3, [r7, #8] - 80278f0: 320e adds r2, #14 - 80278f2: f843 1022 str.w r1, [r3, r2, lsl #2] - 80278f6: e012 b.n 802791e + 8027850: 7bfb ldrb r3, [r7, #15] + 8027852: 7bfa ldrb r2, [r7, #15] + 8027854: 493c ldr r1, [pc, #240] ; (8027948 ) + 8027856: f851 1023 ldr.w r1, [r1, r3, lsl #2] + 802785a: 68bb ldr r3, [r7, #8] + 802785c: 320e adds r2, #14 + 802785e: f843 1022 str.w r1, [r3, r2, lsl #2] + 8027862: e012 b.n 802788a } else { calendar->nums[j][0] = 'x'; - 80278f8: 7bba ldrb r2, [r7, #14] - 80278fa: 68bb ldr r3, [r7, #8] - 80278fc: 3246 adds r2, #70 ; 0x46 - 80278fe: 2178 movs r1, #120 ; 0x78 - 8027900: f803 1022 strb.w r1, [r3, r2, lsl #2] + 8027864: 7bba ldrb r2, [r7, #14] + 8027866: 68bb ldr r3, [r7, #8] + 8027868: 3246 adds r2, #70 ; 0x46 + 802786a: 2178 movs r1, #120 ; 0x78 + 802786c: f803 1022 strb.w r1, [r3, r2, lsl #2] calendar->map[i] = calendar->nums[j]; - 8027904: 7bbb ldrb r3, [r7, #14] - 8027906: 7bfa ldrb r2, [r7, #15] - 8027908: 3346 adds r3, #70 ; 0x46 - 802790a: 009b lsls r3, r3, #2 - 802790c: 68b9 ldr r1, [r7, #8] - 802790e: 4419 add r1, r3 - 8027910: 68bb ldr r3, [r7, #8] - 8027912: 320e adds r2, #14 - 8027914: f843 1022 str.w r1, [r3, r2, lsl #2] + 8027870: 7bbb ldrb r3, [r7, #14] + 8027872: 7bfa ldrb r2, [r7, #15] + 8027874: 3346 adds r3, #70 ; 0x46 + 8027876: 009b lsls r3, r3, #2 + 8027878: 68b9 ldr r1, [r7, #8] + 802787a: 4419 add r1, r3 + 802787c: 68bb ldr r3, [r7, #8] + 802787e: 320e adds r2, #14 + 8027880: f843 1022 str.w r1, [r3, r2, lsl #2] j++; - 8027918: 7bbb ldrb r3, [r7, #14] - 802791a: 3301 adds r3, #1 - 802791c: 73bb strb r3, [r7, #14] + 8027884: 7bbb ldrb r3, [r7, #14] + 8027886: 3301 adds r3, #1 + 8027888: 73bb strb r3, [r7, #14] for(i = 0; i < 8 * 7; i++) { - 802791e: 7bfb ldrb r3, [r7, #15] - 8027920: 3301 adds r3, #1 - 8027922: 73fb strb r3, [r7, #15] - 8027924: 7bfb ldrb r3, [r7, #15] - 8027926: 2b37 cmp r3, #55 ; 0x37 - 8027928: d9c9 bls.n 80278be + 802788a: 7bfb ldrb r3, [r7, #15] + 802788c: 3301 adds r3, #1 + 802788e: 73fb strb r3, [r7, #15] + 8027890: 7bfb ldrb r3, [r7, #15] + 8027892: 2b37 cmp r3, #55 ; 0x37 + 8027894: d9c9 bls.n 802782a } } calendar->map[8 * 7 - 1] = ""; - 802792a: 68bb ldr r3, [r7, #8] - 802792c: 4a2c ldr r2, [pc, #176] ; (80279e0 ) - 802792e: f8c3 2114 str.w r2, [r3, #276] ; 0x114 + 8027896: 68bb ldr r3, [r7, #8] + 8027898: 4a2c ldr r2, [pc, #176] ; (802794c ) + 802789a: f8c3 2114 str.w r2, [r3, #276] ; 0x114 calendar->btnm = lv_btnmatrix_create(obj); - 8027932: 6838 ldr r0, [r7, #0] - 8027934: f011 ff12 bl 803975c - 8027938: 4602 mov r2, r0 - 802793a: 68bb ldr r3, [r7, #8] - 802793c: 625a str r2, [r3, #36] ; 0x24 + 802789e: 6838 ldr r0, [r7, #0] + 80278a0: f011 ff12 bl 80396c8 + 80278a4: 4602 mov r2, r0 + 80278a6: 68bb ldr r3, [r7, #8] + 80278a8: 625a str r2, [r3, #36] ; 0x24 lv_btnmatrix_set_map(calendar->btnm, calendar->map); - 802793e: 68bb ldr r3, [r7, #8] - 8027940: 6a5a ldr r2, [r3, #36] ; 0x24 - 8027942: 68bb ldr r3, [r7, #8] - 8027944: 3338 adds r3, #56 ; 0x38 - 8027946: 4619 mov r1, r3 - 8027948: 4610 mov r0, r2 - 802794a: f011 ff1b bl 8039784 + 80278aa: 68bb ldr r3, [r7, #8] + 80278ac: 6a5a ldr r2, [r3, #36] ; 0x24 + 80278ae: 68bb ldr r3, [r7, #8] + 80278b0: 3338 adds r3, #56 ; 0x38 + 80278b2: 4619 mov r1, r3 + 80278b4: 4610 mov r0, r2 + 80278b6: f011 ff1b bl 80396f0 lv_btnmatrix_set_btn_ctrl_all(calendar->btnm, LV_BTNMATRIX_CTRL_CLICK_TRIG | LV_BTNMATRIX_CTRL_NO_REPEAT); - 802794e: 68bb ldr r3, [r7, #8] - 8027950: 6a5b ldr r3, [r3, #36] ; 0x24 - 8027952: f44f 7188 mov.w r1, #272 ; 0x110 - 8027956: 4618 mov r0, r3 - 8027958: f012 f933 bl 8039bc2 + 80278ba: 68bb ldr r3, [r7, #8] + 80278bc: 6a5b ldr r3, [r3, #36] ; 0x24 + 80278be: f44f 7188 mov.w r1, #272 ; 0x110 + 80278c2: 4618 mov r0, r3 + 80278c4: f012 f933 bl 8039b2e lv_obj_add_event_cb(calendar->btnm, draw_part_begin_event_cb, LV_EVENT_DRAW_PART_BEGIN, NULL); - 802795c: 68bb ldr r3, [r7, #8] - 802795e: 6a58 ldr r0, [r3, #36] ; 0x24 - 8027960: 2300 movs r3, #0 - 8027962: 221a movs r2, #26 - 8027964: 491f ldr r1, [pc, #124] ; (80279e4 ) - 8027966: f7da fe6b bl 8002640 + 80278c8: 68bb ldr r3, [r7, #8] + 80278ca: 6a58 ldr r0, [r3, #36] ; 0x24 + 80278cc: 2300 movs r3, #0 + 80278ce: 221a movs r2, #26 + 80278d0: 491f ldr r1, [pc, #124] ; (8027950 ) + 80278d2: f7da fe7f bl 80025d4 lv_obj_set_width(calendar->btnm, lv_pct(100)); - 802796a: 68bb ldr r3, [r7, #8] - 802796c: 6a5c ldr r4, [r3, #36] ; 0x24 - 802796e: 2064 movs r0, #100 ; 0x64 - 8027970: f7ff fe06 bl 8027580 - 8027974: 4603 mov r3, r0 - 8027976: 4619 mov r1, r3 - 8027978: 4620 mov r0, r4 - 802797a: f7e1 ff2f bl 80097dc + 80278d6: 68bb ldr r3, [r7, #8] + 80278d8: 6a5c ldr r4, [r3, #36] ; 0x24 + 80278da: 2064 movs r0, #100 ; 0x64 + 80278dc: f7ff fe06 bl 80274ec + 80278e0: 4603 mov r3, r0 + 80278e2: 4619 mov r1, r3 + 80278e4: 4620 mov r0, r4 + 80278e6: f7e1 ff43 bl 8009770 lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN); - 802797e: 2101 movs r1, #1 - 8027980: 6838 ldr r0, [r7, #0] - 8027982: f7f9 fca7 bl 80212d4 + 80278ea: 2101 movs r1, #1 + 80278ec: 6838 ldr r0, [r7, #0] + 80278ee: f7f9 fca7 bl 8021240 lv_obj_set_flex_grow(calendar->btnm, 1); - 8027986: 68bb ldr r3, [r7, #8] - 8027988: 6a5b ldr r3, [r3, #36] ; 0x24 - 802798a: 2101 movs r1, #1 - 802798c: 4618 mov r0, r3 - 802798e: f7f9 fce9 bl 8021364 + 80278f2: 68bb ldr r3, [r7, #8] + 80278f4: 6a5b ldr r3, [r3, #36] ; 0x24 + 80278f6: 2101 movs r1, #1 + 80278f8: 4618 mov r0, r3 + 80278fa: f7f9 fce9 bl 80212d0 lv_calendar_set_showed_date(obj, calendar->showed_date.year, calendar->showed_date.month); - 8027992: 68bb ldr r3, [r7, #8] - 8027994: 8d9b ldrh r3, [r3, #44] ; 0x2c - 8027996: 4619 mov r1, r3 - 8027998: 68bb ldr r3, [r7, #8] - 802799a: f993 302e ldrsb.w r3, [r3, #46] ; 0x2e - 802799e: 461a mov r2, r3 - 80279a0: 6838 ldr r0, [r7, #0] - 80279a2: f7ff fe27 bl 80275f4 + 80278fe: 68bb ldr r3, [r7, #8] + 8027900: 8d9b ldrh r3, [r3, #44] ; 0x2c + 8027902: 4619 mov r1, r3 + 8027904: 68bb ldr r3, [r7, #8] + 8027906: f993 302e ldrsb.w r3, [r3, #46] ; 0x2e + 802790a: 461a mov r2, r3 + 802790c: 6838 ldr r0, [r7, #0] + 802790e: f7ff fe27 bl 8027560 lv_calendar_set_today_date(obj, calendar->today.year, calendar->today.month, calendar->today.day); - 80279a6: 68bb ldr r3, [r7, #8] - 80279a8: 8d1b ldrh r3, [r3, #40] ; 0x28 - 80279aa: 4619 mov r1, r3 - 80279ac: 68bb ldr r3, [r7, #8] - 80279ae: f993 302a ldrsb.w r3, [r3, #42] ; 0x2a - 80279b2: 461a mov r2, r3 - 80279b4: 68bb ldr r3, [r7, #8] - 80279b6: f993 302b ldrsb.w r3, [r3, #43] ; 0x2b - 80279ba: 6838 ldr r0, [r7, #0] - 80279bc: f7ff fdfb bl 80275b6 + 8027912: 68bb ldr r3, [r7, #8] + 8027914: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8027916: 4619 mov r1, r3 + 8027918: 68bb ldr r3, [r7, #8] + 802791a: f993 302a ldrsb.w r3, [r3, #42] ; 0x2a + 802791e: 461a mov r2, r3 + 8027920: 68bb ldr r3, [r7, #8] + 8027922: f993 302b ldrsb.w r3, [r3, #43] ; 0x2b + 8027926: 6838 ldr r0, [r7, #0] + 8027928: f7ff fdfb bl 8027522 lv_obj_add_flag(calendar->btnm, LV_OBJ_FLAG_EVENT_BUBBLE); - 80279c0: 68bb ldr r3, [r7, #8] - 80279c2: 6a5b ldr r3, [r3, #36] ; 0x24 - 80279c4: f44f 4180 mov.w r1, #16384 ; 0x4000 - 80279c8: 4618 mov r0, r3 - 80279ca: f7de fdf5 bl 80065b8 + 802792c: 68bb ldr r3, [r7, #8] + 802792e: 6a5b ldr r3, [r3, #36] ; 0x24 + 8027930: f44f 4180 mov.w r1, #16384 ; 0x4000 + 8027934: 4618 mov r0, r3 + 8027936: f7de fe09 bl 800654c } - 80279ce: bf00 nop - 80279d0: 3714 adds r7, #20 - 80279d2: 46bd mov sp, r7 - 80279d4: bd90 pop {r4, r7, pc} - 80279d6: bf00 nop - 80279d8: 08046c7c .word 0x08046c7c - 80279dc: 2000003c .word 0x2000003c - 80279e0: 08046c80 .word 0x08046c80 - 80279e4: 080279e9 .word 0x080279e9 + 802793a: bf00 nop + 802793c: 3714 adds r7, #20 + 802793e: 46bd mov sp, r7 + 8027940: bd90 pop {r4, r7, pc} + 8027942: bf00 nop + 8027944: 08046bd4 .word 0x08046bd4 + 8027948: 2000003c .word 0x2000003c + 802794c: 08046bd8 .word 0x08046bd8 + 8027950: 08027955 .word 0x08027955 -080279e8 : +08027954 : static void draw_part_begin_event_cb(lv_event_t * e) { - 80279e8: b590 push {r4, r7, lr} - 80279ea: b085 sub sp, #20 - 80279ec: af00 add r7, sp, #0 - 80279ee: 6078 str r0, [r7, #4] + 8027954: b590 push {r4, r7, lr} + 8027956: b085 sub sp, #20 + 8027958: af00 add r7, sp, #0 + 802795a: 6078 str r0, [r7, #4] lv_obj_t * obj = lv_event_get_target(e); - 80279f0: 6878 ldr r0, [r7, #4] - 80279f2: f7da fdc5 bl 8002580 - 80279f6: 60f8 str r0, [r7, #12] + 802795c: 6878 ldr r0, [r7, #4] + 802795e: f7da fdd9 bl 8002514 + 8027962: 60f8 str r0, [r7, #12] lv_obj_draw_part_dsc_t * dsc = lv_event_get_param(e); - 80279f8: 6878 ldr r0, [r7, #4] - 80279fa: f7da fde5 bl 80025c8 - 80279fe: 60b8 str r0, [r7, #8] + 8027964: 6878 ldr r0, [r7, #4] + 8027966: f7da fdf9 bl 800255c + 802796a: 60b8 str r0, [r7, #8] if(dsc->part == LV_PART_ITEMS) { - 8027a00: 68bb ldr r3, [r7, #8] - 8027a02: 6b5b ldr r3, [r3, #52] ; 0x34 - 8027a04: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 - 8027a08: d16c bne.n 8027ae4 + 802796c: 68bb ldr r3, [r7, #8] + 802796e: 6b5b ldr r3, [r3, #52] ; 0x34 + 8027970: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 + 8027974: d16c bne.n 8027a50 /*Day name styles*/ if(dsc->id < 7) { - 8027a0a: 68bb ldr r3, [r7, #8] - 8027a0c: 6b9b ldr r3, [r3, #56] ; 0x38 - 8027a0e: 2b06 cmp r3, #6 - 8027a10: d809 bhi.n 8027a26 + 8027976: 68bb ldr r3, [r7, #8] + 8027978: 6b9b ldr r3, [r3, #56] ; 0x38 + 802797a: 2b06 cmp r3, #6 + 802797c: d809 bhi.n 8027992 dsc->rect_dsc->bg_opa = LV_OPA_TRANSP; - 8027a12: 68bb ldr r3, [r7, #8] - 8027a14: 691b ldr r3, [r3, #16] - 8027a16: 2200 movs r2, #0 - 8027a18: 70da strb r2, [r3, #3] + 802797e: 68bb ldr r3, [r7, #8] + 8027980: 691b ldr r3, [r3, #16] + 8027982: 2200 movs r2, #0 + 8027984: 70da strb r2, [r3, #3] dsc->rect_dsc->border_opa = LV_OPA_TRANSP; - 8027a1a: 68bb ldr r3, [r7, #8] - 8027a1c: 691b ldr r3, [r3, #16] - 8027a1e: 2200 movs r2, #0 - 8027a20: f883 2022 strb.w r2, [r3, #34] ; 0x22 - 8027a24: e019 b.n 8027a5a + 8027986: 68bb ldr r3, [r7, #8] + 8027988: 691b ldr r3, [r3, #16] + 802798a: 2200 movs r2, #0 + 802798c: f883 2022 strb.w r2, [r3, #34] ; 0x22 + 8027990: e019 b.n 80279c6 } else if(lv_btnmatrix_has_btn_ctrl(obj, dsc->id, LV_BTNMATRIX_CTRL_DISABLED)) { - 8027a26: 68bb ldr r3, [r7, #8] - 8027a28: 6b9b ldr r3, [r3, #56] ; 0x38 - 8027a2a: b29b uxth r3, r3 - 8027a2c: 2220 movs r2, #32 - 8027a2e: 4619 mov r1, r3 - 8027a30: 68f8 ldr r0, [r7, #12] - 8027a32: f012 f96f bl 8039d14 - 8027a36: 4603 mov r3, r0 - 8027a38: 2b00 cmp r3, #0 - 8027a3a: d00e beq.n 8027a5a + 8027992: 68bb ldr r3, [r7, #8] + 8027994: 6b9b ldr r3, [r3, #56] ; 0x38 + 8027996: b29b uxth r3, r3 + 8027998: 2220 movs r2, #32 + 802799a: 4619 mov r1, r3 + 802799c: 68f8 ldr r0, [r7, #12] + 802799e: f012 f96f bl 8039c80 + 80279a2: 4603 mov r3, r0 + 80279a4: 2b00 cmp r3, #0 + 80279a6: d00e beq.n 80279c6 dsc->rect_dsc->bg_opa = LV_OPA_TRANSP; - 8027a3c: 68bb ldr r3, [r7, #8] - 8027a3e: 691b ldr r3, [r3, #16] - 8027a40: 2200 movs r2, #0 - 8027a42: 70da strb r2, [r3, #3] + 80279a8: 68bb ldr r3, [r7, #8] + 80279aa: 691b ldr r3, [r3, #16] + 80279ac: 2200 movs r2, #0 + 80279ae: 70da strb r2, [r3, #3] dsc->rect_dsc->border_opa = LV_OPA_TRANSP; - 8027a44: 68bb ldr r3, [r7, #8] - 8027a46: 691b ldr r3, [r3, #16] - 8027a48: 2200 movs r2, #0 - 8027a4a: f883 2022 strb.w r2, [r3, #34] ; 0x22 + 80279b0: 68bb ldr r3, [r7, #8] + 80279b2: 691b ldr r3, [r3, #16] + 80279b4: 2200 movs r2, #0 + 80279b6: f883 2022 strb.w r2, [r3, #34] ; 0x22 dsc->label_dsc->color = lv_palette_main(LV_PALETTE_GREY); - 8027a4e: 68bb ldr r3, [r7, #8] - 8027a50: 695c ldr r4, [r3, #20] - 8027a52: 2012 movs r0, #18 - 8027a54: f00a f822 bl 8031a9c - 8027a58: 81a0 strh r0, [r4, #12] + 80279ba: 68bb ldr r3, [r7, #8] + 80279bc: 695c ldr r4, [r3, #20] + 80279be: 2012 movs r0, #18 + 80279c0: f00a f822 bl 8031a08 + 80279c4: 81a0 strh r0, [r4, #12] } if(lv_btnmatrix_has_btn_ctrl(obj, dsc->id, LV_CALENDAR_CTRL_HIGHLIGHT)) { - 8027a5a: 68bb ldr r3, [r7, #8] - 8027a5c: 6b9b ldr r3, [r3, #56] ; 0x38 - 8027a5e: b29b uxth r3, r3 - 8027a60: f44f 4200 mov.w r2, #32768 ; 0x8000 - 8027a64: 4619 mov r1, r3 - 8027a66: 68f8 ldr r0, [r7, #12] - 8027a68: f012 f954 bl 8039d14 - 8027a6c: 4603 mov r3, r0 - 8027a6e: 2b00 cmp r3, #0 - 8027a70: d016 beq.n 8027aa0 + 80279c6: 68bb ldr r3, [r7, #8] + 80279c8: 6b9b ldr r3, [r3, #56] ; 0x38 + 80279ca: b29b uxth r3, r3 + 80279cc: f44f 4200 mov.w r2, #32768 ; 0x8000 + 80279d0: 4619 mov r1, r3 + 80279d2: 68f8 ldr r0, [r7, #12] + 80279d4: f012 f954 bl 8039c80 + 80279d8: 4603 mov r3, r0 + 80279da: 2b00 cmp r3, #0 + 80279dc: d016 beq.n 8027a0c dsc->rect_dsc->bg_opa = LV_OPA_40; - 8027a72: 68bb ldr r3, [r7, #8] - 8027a74: 691b ldr r3, [r3, #16] - 8027a76: 2266 movs r2, #102 ; 0x66 - 8027a78: 70da strb r2, [r3, #3] + 80279de: 68bb ldr r3, [r7, #8] + 80279e0: 691b ldr r3, [r3, #16] + 80279e2: 2266 movs r2, #102 ; 0x66 + 80279e4: 70da strb r2, [r3, #3] dsc->rect_dsc->bg_color = lv_theme_get_color_primary(obj); - 8027a7a: 68bb ldr r3, [r7, #8] - 8027a7c: 691c ldr r4, [r3, #16] - 8027a7e: 68f8 ldr r0, [r7, #12] - 8027a80: f7e9 faf1 bl 8011066 - 8027a84: 80a0 strh r0, [r4, #4] + 80279e6: 68bb ldr r3, [r7, #8] + 80279e8: 691c ldr r4, [r3, #16] + 80279ea: 68f8 ldr r0, [r7, #12] + 80279ec: f7e9 faf1 bl 8010fd2 + 80279f0: 80a0 strh r0, [r4, #4] if(lv_btnmatrix_get_selected_btn(obj) == dsc->id) { - 8027a86: 68f8 ldr r0, [r7, #12] - 8027a88: f012 f8ef bl 8039c6a - 8027a8c: 4603 mov r3, r0 - 8027a8e: 461a mov r2, r3 - 8027a90: 68bb ldr r3, [r7, #8] - 8027a92: 6b9b ldr r3, [r3, #56] ; 0x38 - 8027a94: 429a cmp r2, r3 - 8027a96: d103 bne.n 8027aa0 + 80279f2: 68f8 ldr r0, [r7, #12] + 80279f4: f012 f8ef bl 8039bd6 + 80279f8: 4603 mov r3, r0 + 80279fa: 461a mov r2, r3 + 80279fc: 68bb ldr r3, [r7, #8] + 80279fe: 6b9b ldr r3, [r3, #56] ; 0x38 + 8027a00: 429a cmp r2, r3 + 8027a02: d103 bne.n 8027a0c dsc->rect_dsc->bg_opa = LV_OPA_70; - 8027a98: 68bb ldr r3, [r7, #8] - 8027a9a: 691b ldr r3, [r3, #16] - 8027a9c: 22b2 movs r2, #178 ; 0xb2 - 8027a9e: 70da strb r2, [r3, #3] + 8027a04: 68bb ldr r3, [r7, #8] + 8027a06: 691b ldr r3, [r3, #16] + 8027a08: 22b2 movs r2, #178 ; 0xb2 + 8027a0a: 70da strb r2, [r3, #3] } } if(lv_btnmatrix_has_btn_ctrl(obj, dsc->id, LV_CALENDAR_CTRL_TODAY)) { - 8027aa0: 68bb ldr r3, [r7, #8] - 8027aa2: 6b9b ldr r3, [r3, #56] ; 0x38 - 8027aa4: b29b uxth r3, r3 - 8027aa6: f44f 4280 mov.w r2, #16384 ; 0x4000 - 8027aaa: 4619 mov r1, r3 - 8027aac: 68f8 ldr r0, [r7, #12] - 8027aae: f012 f931 bl 8039d14 - 8027ab2: 4603 mov r3, r0 - 8027ab4: 2b00 cmp r3, #0 - 8027ab6: d015 beq.n 8027ae4 + 8027a0c: 68bb ldr r3, [r7, #8] + 8027a0e: 6b9b ldr r3, [r3, #56] ; 0x38 + 8027a10: b29b uxth r3, r3 + 8027a12: f44f 4280 mov.w r2, #16384 ; 0x4000 + 8027a16: 4619 mov r1, r3 + 8027a18: 68f8 ldr r0, [r7, #12] + 8027a1a: f012 f931 bl 8039c80 + 8027a1e: 4603 mov r3, r0 + 8027a20: 2b00 cmp r3, #0 + 8027a22: d015 beq.n 8027a50 dsc->rect_dsc->border_opa = LV_OPA_COVER; - 8027ab8: 68bb ldr r3, [r7, #8] - 8027aba: 691b ldr r3, [r3, #16] - 8027abc: 22ff movs r2, #255 ; 0xff - 8027abe: f883 2022 strb.w r2, [r3, #34] ; 0x22 + 8027a24: 68bb ldr r3, [r7, #8] + 8027a26: 691b ldr r3, [r3, #16] + 8027a28: 22ff movs r2, #255 ; 0xff + 8027a2a: f883 2022 strb.w r2, [r3, #34] ; 0x22 dsc->rect_dsc->border_color = lv_theme_get_color_primary(obj); - 8027ac2: 68bb ldr r3, [r7, #8] - 8027ac4: 691c ldr r4, [r3, #16] - 8027ac6: 68f8 ldr r0, [r7, #12] - 8027ac8: f7e9 facd bl 8011066 - 8027acc: 83e0 strh r0, [r4, #30] + 8027a2e: 68bb ldr r3, [r7, #8] + 8027a30: 691c ldr r4, [r3, #16] + 8027a32: 68f8 ldr r0, [r7, #12] + 8027a34: f7e9 facd bl 8010fd2 + 8027a38: 83e0 strh r0, [r4, #30] dsc->rect_dsc->border_width += 1; - 8027ace: 68bb ldr r3, [r7, #8] - 8027ad0: 691b ldr r3, [r3, #16] - 8027ad2: f9b3 3020 ldrsh.w r3, [r3, #32] - 8027ad6: b29b uxth r3, r3 - 8027ad8: 3301 adds r3, #1 - 8027ada: b29a uxth r2, r3 - 8027adc: 68bb ldr r3, [r7, #8] - 8027ade: 691b ldr r3, [r3, #16] - 8027ae0: b212 sxth r2, r2 - 8027ae2: 841a strh r2, [r3, #32] + 8027a3a: 68bb ldr r3, [r7, #8] + 8027a3c: 691b ldr r3, [r3, #16] + 8027a3e: f9b3 3020 ldrsh.w r3, [r3, #32] + 8027a42: b29b uxth r3, r3 + 8027a44: 3301 adds r3, #1 + 8027a46: b29a uxth r2, r3 + 8027a48: 68bb ldr r3, [r7, #8] + 8027a4a: 691b ldr r3, [r3, #16] + 8027a4c: b212 sxth r2, r2 + 8027a4e: 841a strh r2, [r3, #32] } } } - 8027ae4: bf00 nop - 8027ae6: 3714 adds r7, #20 - 8027ae8: 46bd mov sp, r7 - 8027aea: bd90 pop {r4, r7, pc} + 8027a50: bf00 nop + 8027a52: 3714 adds r7, #20 + 8027a54: 46bd mov sp, r7 + 8027a56: bd90 pop {r4, r7, pc} -08027aec : +08027a58 : * @param month a month. The range is basically [1..12] but [-11..0] or [13..24] is also * supported to handle next/prev. year * @return [28..31] */ static uint8_t get_month_length(int32_t year, int32_t month) { - 8027aec: b580 push {r7, lr} - 8027aee: b082 sub sp, #8 - 8027af0: af00 add r7, sp, #0 - 8027af2: 6078 str r0, [r7, #4] - 8027af4: 6039 str r1, [r7, #0] + 8027a58: b580 push {r7, lr} + 8027a5a: b082 sub sp, #8 + 8027a5c: af00 add r7, sp, #0 + 8027a5e: 6078 str r0, [r7, #4] + 8027a60: 6039 str r1, [r7, #0] month--; - 8027af6: 683b ldr r3, [r7, #0] - 8027af8: 3b01 subs r3, #1 - 8027afa: 603b str r3, [r7, #0] + 8027a62: 683b ldr r3, [r7, #0] + 8027a64: 3b01 subs r3, #1 + 8027a66: 603b str r3, [r7, #0] if(month < 0) { - 8027afc: 683b ldr r3, [r7, #0] - 8027afe: 2b00 cmp r3, #0 - 8027b00: da05 bge.n 8027b0e + 8027a68: 683b ldr r3, [r7, #0] + 8027a6a: 2b00 cmp r3, #0 + 8027a6c: da05 bge.n 8027a7a year--; /*Already in the previous year (won't be less then -12 to skip a whole year)*/ - 8027b02: 687b ldr r3, [r7, #4] - 8027b04: 3b01 subs r3, #1 - 8027b06: 607b str r3, [r7, #4] + 8027a6e: 687b ldr r3, [r7, #4] + 8027a70: 3b01 subs r3, #1 + 8027a72: 607b str r3, [r7, #4] month = 12 + month; /*`month` is negative, the result will be < 12*/ - 8027b08: 683b ldr r3, [r7, #0] - 8027b0a: 330c adds r3, #12 - 8027b0c: 603b str r3, [r7, #0] + 8027a74: 683b ldr r3, [r7, #0] + 8027a76: 330c adds r3, #12 + 8027a78: 603b str r3, [r7, #0] } if(month >= 12) { - 8027b0e: 683b ldr r3, [r7, #0] - 8027b10: 2b0b cmp r3, #11 - 8027b12: dd05 ble.n 8027b20 + 8027a7a: 683b ldr r3, [r7, #0] + 8027a7c: 2b0b cmp r3, #11 + 8027a7e: dd05 ble.n 8027a8c year++; - 8027b14: 687b ldr r3, [r7, #4] - 8027b16: 3301 adds r3, #1 - 8027b18: 607b str r3, [r7, #4] + 8027a80: 687b ldr r3, [r7, #4] + 8027a82: 3301 adds r3, #1 + 8027a84: 607b str r3, [r7, #4] month -= 12; - 8027b1a: 683b ldr r3, [r7, #0] - 8027b1c: 3b0c subs r3, #12 - 8027b1e: 603b str r3, [r7, #0] + 8027a86: 683b ldr r3, [r7, #0] + 8027a88: 3b0c subs r3, #12 + 8027a8a: 603b str r3, [r7, #0] } /*month == 1 is february*/ return (month == 1) ? (28 + is_leap_year(year)) : 31 - month % 7 % 2; - 8027b20: 683b ldr r3, [r7, #0] - 8027b22: 2b01 cmp r3, #1 - 8027b24: d107 bne.n 8027b36 - 8027b26: 687b ldr r3, [r7, #4] - 8027b28: 4618 mov r0, r3 - 8027b2a: f000 f81f bl 8027b6c - 8027b2e: 4603 mov r3, r0 - 8027b30: 331c adds r3, #28 - 8027b32: b2db uxtb r3, r3 - 8027b34: e014 b.n 8027b60 - 8027b36: 6839 ldr r1, [r7, #0] - 8027b38: 4b0b ldr r3, [pc, #44] ; (8027b68 ) - 8027b3a: fb83 2301 smull r2, r3, r3, r1 - 8027b3e: 440b add r3, r1 - 8027b40: 109a asrs r2, r3, #2 - 8027b42: 17cb asrs r3, r1, #31 - 8027b44: 1ad3 subs r3, r2, r3 - 8027b46: 461a mov r2, r3 - 8027b48: 00d2 lsls r2, r2, #3 - 8027b4a: 1ad2 subs r2, r2, r3 - 8027b4c: 1a8b subs r3, r1, r2 - 8027b4e: 2b00 cmp r3, #0 - 8027b50: f003 0301 and.w r3, r3, #1 - 8027b54: bfb8 it lt - 8027b56: 425b neglt r3, r3 - 8027b58: b2db uxtb r3, r3 - 8027b5a: f1c3 031f rsb r3, r3, #31 - 8027b5e: b2db uxtb r3, r3 + 8027a8c: 683b ldr r3, [r7, #0] + 8027a8e: 2b01 cmp r3, #1 + 8027a90: d107 bne.n 8027aa2 + 8027a92: 687b ldr r3, [r7, #4] + 8027a94: 4618 mov r0, r3 + 8027a96: f000 f81f bl 8027ad8 + 8027a9a: 4603 mov r3, r0 + 8027a9c: 331c adds r3, #28 + 8027a9e: b2db uxtb r3, r3 + 8027aa0: e014 b.n 8027acc + 8027aa2: 6839 ldr r1, [r7, #0] + 8027aa4: 4b0b ldr r3, [pc, #44] ; (8027ad4 ) + 8027aa6: fb83 2301 smull r2, r3, r3, r1 + 8027aaa: 440b add r3, r1 + 8027aac: 109a asrs r2, r3, #2 + 8027aae: 17cb asrs r3, r1, #31 + 8027ab0: 1ad3 subs r3, r2, r3 + 8027ab2: 461a mov r2, r3 + 8027ab4: 00d2 lsls r2, r2, #3 + 8027ab6: 1ad2 subs r2, r2, r3 + 8027ab8: 1a8b subs r3, r1, r2 + 8027aba: 2b00 cmp r3, #0 + 8027abc: f003 0301 and.w r3, r3, #1 + 8027ac0: bfb8 it lt + 8027ac2: 425b neglt r3, r3 + 8027ac4: b2db uxtb r3, r3 + 8027ac6: f1c3 031f rsb r3, r3, #31 + 8027aca: b2db uxtb r3, r3 } - 8027b60: 4618 mov r0, r3 - 8027b62: 3708 adds r7, #8 - 8027b64: 46bd mov sp, r7 - 8027b66: bd80 pop {r7, pc} - 8027b68: 92492493 .word 0x92492493 + 8027acc: 4618 mov r0, r3 + 8027ace: 3708 adds r7, #8 + 8027ad0: 46bd mov sp, r7 + 8027ad2: bd80 pop {r7, pc} + 8027ad4: 92492493 .word 0x92492493 -08027b6c : +08027ad8 : * Tells whether a year is leap year or not * @param year a year * @return 0: not leap year; 1: leap year */ static uint8_t is_leap_year(uint32_t year) { - 8027b6c: b480 push {r7} - 8027b6e: b083 sub sp, #12 - 8027b70: af00 add r7, sp, #0 - 8027b72: 6078 str r0, [r7, #4] + 8027ad8: b480 push {r7} + 8027ada: b083 sub sp, #12 + 8027adc: af00 add r7, sp, #0 + 8027ade: 6078 str r0, [r7, #4] return (year % 4) || ((year % 100 == 0) && (year % 400)) ? 0 : 1; - 8027b74: 687b ldr r3, [r7, #4] - 8027b76: f003 0303 and.w r3, r3, #3 - 8027b7a: 2b00 cmp r3, #0 - 8027b7c: d118 bne.n 8027bb0 - 8027b7e: 687a ldr r2, [r7, #4] - 8027b80: 4b0f ldr r3, [pc, #60] ; (8027bc0 ) - 8027b82: fba3 1302 umull r1, r3, r3, r2 - 8027b86: 095b lsrs r3, r3, #5 - 8027b88: 2164 movs r1, #100 ; 0x64 - 8027b8a: fb01 f303 mul.w r3, r1, r3 - 8027b8e: 1ad3 subs r3, r2, r3 - 8027b90: 2b00 cmp r3, #0 - 8027b92: d10b bne.n 8027bac - 8027b94: 687a ldr r2, [r7, #4] - 8027b96: 4b0a ldr r3, [pc, #40] ; (8027bc0 ) - 8027b98: fba3 1302 umull r1, r3, r3, r2 - 8027b9c: 09db lsrs r3, r3, #7 - 8027b9e: f44f 71c8 mov.w r1, #400 ; 0x190 - 8027ba2: fb01 f303 mul.w r3, r1, r3 - 8027ba6: 1ad3 subs r3, r2, r3 - 8027ba8: 2b00 cmp r3, #0 - 8027baa: d101 bne.n 8027bb0 - 8027bac: 2301 movs r3, #1 - 8027bae: e000 b.n 8027bb2 - 8027bb0: 2300 movs r3, #0 - 8027bb2: b2db uxtb r3, r3 + 8027ae0: 687b ldr r3, [r7, #4] + 8027ae2: f003 0303 and.w r3, r3, #3 + 8027ae6: 2b00 cmp r3, #0 + 8027ae8: d118 bne.n 8027b1c + 8027aea: 687a ldr r2, [r7, #4] + 8027aec: 4b0f ldr r3, [pc, #60] ; (8027b2c ) + 8027aee: fba3 1302 umull r1, r3, r3, r2 + 8027af2: 095b lsrs r3, r3, #5 + 8027af4: 2164 movs r1, #100 ; 0x64 + 8027af6: fb01 f303 mul.w r3, r1, r3 + 8027afa: 1ad3 subs r3, r2, r3 + 8027afc: 2b00 cmp r3, #0 + 8027afe: d10b bne.n 8027b18 + 8027b00: 687a ldr r2, [r7, #4] + 8027b02: 4b0a ldr r3, [pc, #40] ; (8027b2c ) + 8027b04: fba3 1302 umull r1, r3, r3, r2 + 8027b08: 09db lsrs r3, r3, #7 + 8027b0a: f44f 71c8 mov.w r1, #400 ; 0x190 + 8027b0e: fb01 f303 mul.w r3, r1, r3 + 8027b12: 1ad3 subs r3, r2, r3 + 8027b14: 2b00 cmp r3, #0 + 8027b16: d101 bne.n 8027b1c + 8027b18: 2301 movs r3, #1 + 8027b1a: e000 b.n 8027b1e + 8027b1c: 2300 movs r3, #0 + 8027b1e: b2db uxtb r3, r3 } - 8027bb4: 4618 mov r0, r3 - 8027bb6: 370c adds r7, #12 - 8027bb8: 46bd mov sp, r7 - 8027bba: bc80 pop {r7} - 8027bbc: 4770 bx lr - 8027bbe: bf00 nop - 8027bc0: 51eb851f .word 0x51eb851f + 8027b20: 4618 mov r0, r3 + 8027b22: 370c adds r7, #12 + 8027b24: 46bd mov sp, r7 + 8027b26: bc80 pop {r7} + 8027b28: 4770 bx lr + 8027b2a: bf00 nop + 8027b2c: 51eb851f .word 0x51eb851f -08027bc4 : +08027b30 : * @param month a month [1..12] * @param day a day [1..32] * @return [0..6] which means [Sun..Sat] or [Mon..Sun] depending on LV_CALENDAR_WEEK_STARTS_MONDAY */ static uint8_t get_day_of_week(uint32_t year, uint32_t month, uint32_t day) { - 8027bc4: b480 push {r7} - 8027bc6: b089 sub sp, #36 ; 0x24 - 8027bc8: af00 add r7, sp, #0 - 8027bca: 60f8 str r0, [r7, #12] - 8027bcc: 60b9 str r1, [r7, #8] - 8027bce: 607a str r2, [r7, #4] + 8027b30: b480 push {r7} + 8027b32: b089 sub sp, #36 ; 0x24 + 8027b34: af00 add r7, sp, #0 + 8027b36: 60f8 str r0, [r7, #12] + 8027b38: 60b9 str r1, [r7, #8] + 8027b3a: 607a str r2, [r7, #4] uint32_t a = month < 3 ? 1 : 0; - 8027bd0: 68bb ldr r3, [r7, #8] - 8027bd2: 2b02 cmp r3, #2 - 8027bd4: bf94 ite ls - 8027bd6: 2301 movls r3, #1 - 8027bd8: 2300 movhi r3, #0 - 8027bda: b2db uxtb r3, r3 - 8027bdc: 61fb str r3, [r7, #28] + 8027b3c: 68bb ldr r3, [r7, #8] + 8027b3e: 2b02 cmp r3, #2 + 8027b40: bf94 ite ls + 8027b42: 2301 movls r3, #1 + 8027b44: 2300 movhi r3, #0 + 8027b46: b2db uxtb r3, r3 + 8027b48: 61fb str r3, [r7, #28] uint32_t b = year - a; - 8027bde: 68fa ldr r2, [r7, #12] - 8027be0: 69fb ldr r3, [r7, #28] - 8027be2: 1ad3 subs r3, r2, r3 - 8027be4: 61bb str r3, [r7, #24] + 8027b4a: 68fa ldr r2, [r7, #12] + 8027b4c: 69fb ldr r3, [r7, #28] + 8027b4e: 1ad3 subs r3, r2, r3 + 8027b50: 61bb str r3, [r7, #24] #if LV_CALENDAR_WEEK_STARTS_MONDAY uint32_t day_of_week = (day + (31 * (month - 2 + 12 * a) / 12) + b + (b / 4) - (b / 100) + (b / 400) - 1) % 7; #else uint32_t day_of_week = (day + (31 * (month - 2 + 12 * a) / 12) + b + (b / 4) - (b / 100) + (b / 400)) % 7; - 8027be6: 69fa ldr r2, [r7, #28] - 8027be8: 4613 mov r3, r2 - 8027bea: 005b lsls r3, r3, #1 - 8027bec: 4413 add r3, r2 - 8027bee: 009b lsls r3, r3, #2 - 8027bf0: 461a mov r2, r3 - 8027bf2: 68bb ldr r3, [r7, #8] - 8027bf4: 441a add r2, r3 - 8027bf6: 4613 mov r3, r2 - 8027bf8: 015b lsls r3, r3, #5 - 8027bfa: 1a9b subs r3, r3, r2 - 8027bfc: 3b3e subs r3, #62 ; 0x3e - 8027bfe: 4a15 ldr r2, [pc, #84] ; (8027c54 ) - 8027c00: fba2 2303 umull r2, r3, r2, r3 - 8027c04: 08da lsrs r2, r3, #3 - 8027c06: 687b ldr r3, [r7, #4] - 8027c08: 441a add r2, r3 - 8027c0a: 69bb ldr r3, [r7, #24] - 8027c0c: 441a add r2, r3 - 8027c0e: 69bb ldr r3, [r7, #24] - 8027c10: 089b lsrs r3, r3, #2 - 8027c12: 441a add r2, r3 - 8027c14: 69bb ldr r3, [r7, #24] - 8027c16: 4910 ldr r1, [pc, #64] ; (8027c58 ) - 8027c18: fba1 1303 umull r1, r3, r1, r3 - 8027c1c: 095b lsrs r3, r3, #5 - 8027c1e: 1ad2 subs r2, r2, r3 - 8027c20: 69bb ldr r3, [r7, #24] - 8027c22: 490d ldr r1, [pc, #52] ; (8027c58 ) - 8027c24: fba1 1303 umull r1, r3, r1, r3 - 8027c28: 09db lsrs r3, r3, #7 - 8027c2a: 441a add r2, r3 - 8027c2c: 4b0b ldr r3, [pc, #44] ; (8027c5c ) - 8027c2e: fba3 1302 umull r1, r3, r3, r2 - 8027c32: 1ad1 subs r1, r2, r3 - 8027c34: 0849 lsrs r1, r1, #1 - 8027c36: 440b add r3, r1 - 8027c38: 0899 lsrs r1, r3, #2 - 8027c3a: 460b mov r3, r1 - 8027c3c: 00db lsls r3, r3, #3 - 8027c3e: 1a5b subs r3, r3, r1 - 8027c40: 1ad3 subs r3, r2, r3 - 8027c42: 617b str r3, [r7, #20] + 8027b52: 69fa ldr r2, [r7, #28] + 8027b54: 4613 mov r3, r2 + 8027b56: 005b lsls r3, r3, #1 + 8027b58: 4413 add r3, r2 + 8027b5a: 009b lsls r3, r3, #2 + 8027b5c: 461a mov r2, r3 + 8027b5e: 68bb ldr r3, [r7, #8] + 8027b60: 441a add r2, r3 + 8027b62: 4613 mov r3, r2 + 8027b64: 015b lsls r3, r3, #5 + 8027b66: 1a9b subs r3, r3, r2 + 8027b68: 3b3e subs r3, #62 ; 0x3e + 8027b6a: 4a15 ldr r2, [pc, #84] ; (8027bc0 ) + 8027b6c: fba2 2303 umull r2, r3, r2, r3 + 8027b70: 08da lsrs r2, r3, #3 + 8027b72: 687b ldr r3, [r7, #4] + 8027b74: 441a add r2, r3 + 8027b76: 69bb ldr r3, [r7, #24] + 8027b78: 441a add r2, r3 + 8027b7a: 69bb ldr r3, [r7, #24] + 8027b7c: 089b lsrs r3, r3, #2 + 8027b7e: 441a add r2, r3 + 8027b80: 69bb ldr r3, [r7, #24] + 8027b82: 4910 ldr r1, [pc, #64] ; (8027bc4 ) + 8027b84: fba1 1303 umull r1, r3, r1, r3 + 8027b88: 095b lsrs r3, r3, #5 + 8027b8a: 1ad2 subs r2, r2, r3 + 8027b8c: 69bb ldr r3, [r7, #24] + 8027b8e: 490d ldr r1, [pc, #52] ; (8027bc4 ) + 8027b90: fba1 1303 umull r1, r3, r1, r3 + 8027b94: 09db lsrs r3, r3, #7 + 8027b96: 441a add r2, r3 + 8027b98: 4b0b ldr r3, [pc, #44] ; (8027bc8 ) + 8027b9a: fba3 1302 umull r1, r3, r3, r2 + 8027b9e: 1ad1 subs r1, r2, r3 + 8027ba0: 0849 lsrs r1, r1, #1 + 8027ba2: 440b add r3, r1 + 8027ba4: 0899 lsrs r1, r3, #2 + 8027ba6: 460b mov r3, r1 + 8027ba8: 00db lsls r3, r3, #3 + 8027baa: 1a5b subs r3, r3, r1 + 8027bac: 1ad3 subs r3, r2, r3 + 8027bae: 617b str r3, [r7, #20] #endif return day_of_week ; - 8027c44: 697b ldr r3, [r7, #20] - 8027c46: b2db uxtb r3, r3 + 8027bb0: 697b ldr r3, [r7, #20] + 8027bb2: b2db uxtb r3, r3 } - 8027c48: 4618 mov r0, r3 - 8027c4a: 3724 adds r7, #36 ; 0x24 - 8027c4c: 46bd mov sp, r7 - 8027c4e: bc80 pop {r7} - 8027c50: 4770 bx lr - 8027c52: bf00 nop - 8027c54: aaaaaaab .word 0xaaaaaaab - 8027c58: 51eb851f .word 0x51eb851f - 8027c5c: 24924925 .word 0x24924925 + 8027bb4: 4618 mov r0, r3 + 8027bb6: 3724 adds r7, #36 ; 0x24 + 8027bb8: 46bd mov sp, r7 + 8027bba: bc80 pop {r7} + 8027bbc: 4770 bx lr + 8027bbe: bf00 nop + 8027bc0: aaaaaaab .word 0xaaaaaaab + 8027bc4: 51eb851f .word 0x51eb851f + 8027bc8: 24924925 .word 0x24924925 -08027c60 : +08027bcc : static void highlight_update(lv_obj_t * obj) { - 8027c60: b580 push {r7, lr} - 8027c62: b086 sub sp, #24 - 8027c64: af00 add r7, sp, #0 - 8027c66: 6078 str r0, [r7, #4] + 8027bcc: b580 push {r7, lr} + 8027bce: b086 sub sp, #24 + 8027bd0: af00 add r7, sp, #0 + 8027bd2: 6078 str r0, [r7, #4] lv_calendar_t * calendar = (lv_calendar_t *)obj; - 8027c68: 687b ldr r3, [r7, #4] - 8027c6a: 613b str r3, [r7, #16] + 8027bd4: 687b ldr r3, [r7, #4] + 8027bd6: 613b str r3, [r7, #16] uint16_t i; /*Clear all kind of selection*/ lv_btnmatrix_clear_btn_ctrl_all(calendar->btnm, LV_CALENDAR_CTRL_TODAY | LV_CALENDAR_CTRL_HIGHLIGHT); - 8027c6c: 693b ldr r3, [r7, #16] - 8027c6e: 6a5b ldr r3, [r3, #36] ; 0x24 - 8027c70: f44f 4140 mov.w r1, #49152 ; 0xc000 - 8027c74: 4618 mov r0, r3 - 8027c76: f011 ffc2 bl 8039bfe + 8027bd8: 693b ldr r3, [r7, #16] + 8027bda: 6a5b ldr r3, [r3, #36] ; 0x24 + 8027bdc: f44f 4140 mov.w r1, #49152 ; 0xc000 + 8027be0: 4618 mov r0, r3 + 8027be2: f011 ffc2 bl 8039b6a uint8_t day_first = get_day_of_week(calendar->showed_date.year, calendar->showed_date.month, 1); - 8027c7a: 693b ldr r3, [r7, #16] - 8027c7c: 8d9b ldrh r3, [r3, #44] ; 0x2c - 8027c7e: 4618 mov r0, r3 - 8027c80: 693b ldr r3, [r7, #16] - 8027c82: f993 302e ldrsb.w r3, [r3, #46] ; 0x2e - 8027c86: 2201 movs r2, #1 - 8027c88: 4619 mov r1, r3 - 8027c8a: f7ff ff9b bl 8027bc4 - 8027c8e: 4603 mov r3, r0 - 8027c90: 73fb strb r3, [r7, #15] + 8027be6: 693b ldr r3, [r7, #16] + 8027be8: 8d9b ldrh r3, [r3, #44] ; 0x2c + 8027bea: 4618 mov r0, r3 + 8027bec: 693b ldr r3, [r7, #16] + 8027bee: f993 302e ldrsb.w r3, [r3, #46] ; 0x2e + 8027bf2: 2201 movs r2, #1 + 8027bf4: 4619 mov r1, r3 + 8027bf6: f7ff ff9b bl 8027b30 + 8027bfa: 4603 mov r3, r0 + 8027bfc: 73fb strb r3, [r7, #15] if(calendar->highlighted_dates) { - 8027c92: 693b ldr r3, [r7, #16] - 8027c94: 6b1b ldr r3, [r3, #48] ; 0x30 - 8027c96: 2b00 cmp r3, #0 - 8027c98: d035 beq.n 8027d06 + 8027bfe: 693b ldr r3, [r7, #16] + 8027c00: 6b1b ldr r3, [r3, #48] ; 0x30 + 8027c02: 2b00 cmp r3, #0 + 8027c04: d035 beq.n 8027c72 for(i = 0; i < calendar->highlighted_dates_num; i++) { - 8027c9a: 2300 movs r3, #0 - 8027c9c: 82fb strh r3, [r7, #22] - 8027c9e: e02d b.n 8027cfc + 8027c06: 2300 movs r3, #0 + 8027c08: 82fb strh r3, [r7, #22] + 8027c0a: e02d b.n 8027c68 if(calendar->highlighted_dates[i].year == calendar->showed_date.year && - 8027ca0: 693b ldr r3, [r7, #16] - 8027ca2: 6b1a ldr r2, [r3, #48] ; 0x30 - 8027ca4: 8afb ldrh r3, [r7, #22] - 8027ca6: 009b lsls r3, r3, #2 - 8027ca8: 4413 add r3, r2 - 8027caa: 881a ldrh r2, [r3, #0] - 8027cac: 693b ldr r3, [r7, #16] - 8027cae: 8d9b ldrh r3, [r3, #44] ; 0x2c - 8027cb0: 429a cmp r2, r3 - 8027cb2: d120 bne.n 8027cf6 + 8027c0c: 693b ldr r3, [r7, #16] + 8027c0e: 6b1a ldr r2, [r3, #48] ; 0x30 + 8027c10: 8afb ldrh r3, [r7, #22] + 8027c12: 009b lsls r3, r3, #2 + 8027c14: 4413 add r3, r2 + 8027c16: 881a ldrh r2, [r3, #0] + 8027c18: 693b ldr r3, [r7, #16] + 8027c1a: 8d9b ldrh r3, [r3, #44] ; 0x2c + 8027c1c: 429a cmp r2, r3 + 8027c1e: d120 bne.n 8027c62 calendar->highlighted_dates[i].month == calendar->showed_date.month) { - 8027cb4: 693b ldr r3, [r7, #16] - 8027cb6: 6b1a ldr r2, [r3, #48] ; 0x30 - 8027cb8: 8afb ldrh r3, [r7, #22] - 8027cba: 009b lsls r3, r3, #2 - 8027cbc: 4413 add r3, r2 - 8027cbe: f993 2002 ldrsb.w r2, [r3, #2] - 8027cc2: 693b ldr r3, [r7, #16] - 8027cc4: f993 302e ldrsb.w r3, [r3, #46] ; 0x2e + 8027c20: 693b ldr r3, [r7, #16] + 8027c22: 6b1a ldr r2, [r3, #48] ; 0x30 + 8027c24: 8afb ldrh r3, [r7, #22] + 8027c26: 009b lsls r3, r3, #2 + 8027c28: 4413 add r3, r2 + 8027c2a: f993 2002 ldrsb.w r2, [r3, #2] + 8027c2e: 693b ldr r3, [r7, #16] + 8027c30: f993 302e ldrsb.w r3, [r3, #46] ; 0x2e if(calendar->highlighted_dates[i].year == calendar->showed_date.year && - 8027cc8: 429a cmp r2, r3 - 8027cca: d114 bne.n 8027cf6 + 8027c34: 429a cmp r2, r3 + 8027c36: d114 bne.n 8027c62 lv_btnmatrix_set_btn_ctrl(calendar->btnm, calendar->highlighted_dates[i].day - 1 + day_first + 7, - 8027ccc: 693b ldr r3, [r7, #16] - 8027cce: 6a58 ldr r0, [r3, #36] ; 0x24 - 8027cd0: 693b ldr r3, [r7, #16] - 8027cd2: 6b1a ldr r2, [r3, #48] ; 0x30 - 8027cd4: 8afb ldrh r3, [r7, #22] - 8027cd6: 009b lsls r3, r3, #2 - 8027cd8: 4413 add r3, r2 - 8027cda: f993 3003 ldrsb.w r3, [r3, #3] - 8027cde: b29a uxth r2, r3 - 8027ce0: 7bfb ldrb r3, [r7, #15] - 8027ce2: b29b uxth r3, r3 - 8027ce4: 4413 add r3, r2 - 8027ce6: b29b uxth r3, r3 - 8027ce8: 3306 adds r3, #6 - 8027cea: b29b uxth r3, r3 - 8027cec: f44f 4200 mov.w r2, #32768 ; 0x8000 - 8027cf0: 4619 mov r1, r3 - 8027cf2: f011 fef0 bl 8039ad6 + 8027c38: 693b ldr r3, [r7, #16] + 8027c3a: 6a58 ldr r0, [r3, #36] ; 0x24 + 8027c3c: 693b ldr r3, [r7, #16] + 8027c3e: 6b1a ldr r2, [r3, #48] ; 0x30 + 8027c40: 8afb ldrh r3, [r7, #22] + 8027c42: 009b lsls r3, r3, #2 + 8027c44: 4413 add r3, r2 + 8027c46: f993 3003 ldrsb.w r3, [r3, #3] + 8027c4a: b29a uxth r2, r3 + 8027c4c: 7bfb ldrb r3, [r7, #15] + 8027c4e: b29b uxth r3, r3 + 8027c50: 4413 add r3, r2 + 8027c52: b29b uxth r3, r3 + 8027c54: 3306 adds r3, #6 + 8027c56: b29b uxth r3, r3 + 8027c58: f44f 4200 mov.w r2, #32768 ; 0x8000 + 8027c5c: 4619 mov r1, r3 + 8027c5e: f011 fef0 bl 8039a42 for(i = 0; i < calendar->highlighted_dates_num; i++) { - 8027cf6: 8afb ldrh r3, [r7, #22] - 8027cf8: 3301 adds r3, #1 - 8027cfa: 82fb strh r3, [r7, #22] - 8027cfc: 693b ldr r3, [r7, #16] - 8027cfe: 8e9b ldrh r3, [r3, #52] ; 0x34 - 8027d00: 8afa ldrh r2, [r7, #22] - 8027d02: 429a cmp r2, r3 - 8027d04: d3cc bcc.n 8027ca0 + 8027c62: 8afb ldrh r3, [r7, #22] + 8027c64: 3301 adds r3, #1 + 8027c66: 82fb strh r3, [r7, #22] + 8027c68: 693b ldr r3, [r7, #16] + 8027c6a: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8027c6c: 8afa ldrh r2, [r7, #22] + 8027c6e: 429a cmp r2, r3 + 8027c70: d3cc bcc.n 8027c0c LV_CALENDAR_CTRL_HIGHLIGHT); } } } if(calendar->showed_date.year == calendar->today.year && calendar->showed_date.month == calendar->today.month) { - 8027d06: 693b ldr r3, [r7, #16] - 8027d08: 8d9a ldrh r2, [r3, #44] ; 0x2c - 8027d0a: 693b ldr r3, [r7, #16] - 8027d0c: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8027d0e: 429a cmp r2, r3 - 8027d10: d118 bne.n 8027d44 - 8027d12: 693b ldr r3, [r7, #16] - 8027d14: f993 202e ldrsb.w r2, [r3, #46] ; 0x2e - 8027d18: 693b ldr r3, [r7, #16] - 8027d1a: f993 302a ldrsb.w r3, [r3, #42] ; 0x2a - 8027d1e: 429a cmp r2, r3 - 8027d20: d110 bne.n 8027d44 + 8027c72: 693b ldr r3, [r7, #16] + 8027c74: 8d9a ldrh r2, [r3, #44] ; 0x2c + 8027c76: 693b ldr r3, [r7, #16] + 8027c78: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8027c7a: 429a cmp r2, r3 + 8027c7c: d118 bne.n 8027cb0 + 8027c7e: 693b ldr r3, [r7, #16] + 8027c80: f993 202e ldrsb.w r2, [r3, #46] ; 0x2e + 8027c84: 693b ldr r3, [r7, #16] + 8027c86: f993 302a ldrsb.w r3, [r3, #42] ; 0x2a + 8027c8a: 429a cmp r2, r3 + 8027c8c: d110 bne.n 8027cb0 lv_btnmatrix_set_btn_ctrl(calendar->btnm, calendar->today.day - 1 + day_first + 7, LV_CALENDAR_CTRL_TODAY); - 8027d22: 693b ldr r3, [r7, #16] - 8027d24: 6a58 ldr r0, [r3, #36] ; 0x24 - 8027d26: 693b ldr r3, [r7, #16] - 8027d28: f993 302b ldrsb.w r3, [r3, #43] ; 0x2b - 8027d2c: b29a uxth r2, r3 - 8027d2e: 7bfb ldrb r3, [r7, #15] - 8027d30: b29b uxth r3, r3 - 8027d32: 4413 add r3, r2 - 8027d34: b29b uxth r3, r3 - 8027d36: 3306 adds r3, #6 - 8027d38: b29b uxth r3, r3 - 8027d3a: f44f 4280 mov.w r2, #16384 ; 0x4000 - 8027d3e: 4619 mov r1, r3 - 8027d40: f011 fec9 bl 8039ad6 + 8027c8e: 693b ldr r3, [r7, #16] + 8027c90: 6a58 ldr r0, [r3, #36] ; 0x24 + 8027c92: 693b ldr r3, [r7, #16] + 8027c94: f993 302b ldrsb.w r3, [r3, #43] ; 0x2b + 8027c98: b29a uxth r2, r3 + 8027c9a: 7bfb ldrb r3, [r7, #15] + 8027c9c: b29b uxth r3, r3 + 8027c9e: 4413 add r3, r2 + 8027ca0: b29b uxth r3, r3 + 8027ca2: 3306 adds r3, #6 + 8027ca4: b29b uxth r3, r3 + 8027ca6: f44f 4280 mov.w r2, #16384 ; 0x4000 + 8027caa: 4619 mov r1, r3 + 8027cac: f011 fec9 bl 8039a42 } } - 8027d44: bf00 nop - 8027d46: 3718 adds r7, #24 - 8027d48: 46bd mov sp, r7 - 8027d4a: bd80 pop {r7, pc} + 8027cb0: bf00 nop + 8027cb2: 3718 adds r7, #24 + 8027cb4: 46bd mov sp, r7 + 8027cb6: bd80 pop {r7, pc} -08027d4c : +08027cb8 : * Percentage values are stored in special range * @param x the percentage (0..1000) * @return a coordinate that stores the percentage */ static inline lv_coord_t lv_pct(lv_coord_t x) { - 8027d4c: b480 push {r7} - 8027d4e: b083 sub sp, #12 - 8027d50: af00 add r7, sp, #0 - 8027d52: 4603 mov r3, r0 - 8027d54: 80fb strh r3, [r7, #6] + 8027cb8: b480 push {r7} + 8027cba: b083 sub sp, #12 + 8027cbc: af00 add r7, sp, #0 + 8027cbe: 4603 mov r3, r0 + 8027cc0: 80fb strh r3, [r7, #6] return LV_PCT(x); - 8027d56: f9b7 3006 ldrsh.w r3, [r7, #6] - 8027d5a: 2b00 cmp r3, #0 - 8027d5c: da08 bge.n 8027d70 - 8027d5e: 88fb ldrh r3, [r7, #6] - 8027d60: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 8027d64: b29b uxth r3, r3 - 8027d66: b21b sxth r3, r3 - 8027d68: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 8027d6c: b21b sxth r3, r3 - 8027d6e: e003 b.n 8027d78 - 8027d70: 88fb ldrh r3, [r7, #6] - 8027d72: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 8027d76: b21b sxth r3, r3 + 8027cc2: f9b7 3006 ldrsh.w r3, [r7, #6] + 8027cc6: 2b00 cmp r3, #0 + 8027cc8: da08 bge.n 8027cdc + 8027cca: 88fb ldrh r3, [r7, #6] + 8027ccc: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 8027cd0: b29b uxth r3, r3 + 8027cd2: b21b sxth r3, r3 + 8027cd4: f443 5300 orr.w r3, r3, #8192 ; 0x2000 + 8027cd8: b21b sxth r3, r3 + 8027cda: e003 b.n 8027ce4 + 8027cdc: 88fb ldrh r3, [r7, #6] + 8027cde: f443 5300 orr.w r3, r3, #8192 ; 0x2000 + 8027ce2: b21b sxth r3, r3 } - 8027d78: 4618 mov r0, r3 - 8027d7a: 370c adds r7, #12 - 8027d7c: 46bd mov sp, r7 - 8027d7e: bc80 pop {r7} - 8027d80: 4770 bx lr + 8027ce4: 4618 mov r0, r3 + 8027ce6: 370c adds r7, #12 + 8027ce8: 46bd mov sp, r7 + 8027cea: bc80 pop {r7} + 8027cec: 4770 bx lr ... -08027d84 : +08027cf0 : /********************** * STATIC FUNCTIONS **********************/ static void my_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 8027d84: b580 push {r7, lr} - 8027d86: b086 sub sp, #24 - 8027d88: af00 add r7, sp, #0 - 8027d8a: 6078 str r0, [r7, #4] - 8027d8c: 6039 str r1, [r7, #0] + 8027cf0: b580 push {r7, lr} + 8027cf2: b086 sub sp, #24 + 8027cf4: af00 add r7, sp, #0 + 8027cf6: 6078 str r0, [r7, #4] + 8027cf8: 6039 str r1, [r7, #0] LV_TRACE_OBJ_CREATE("begin"); LV_UNUSED(class_p); lv_obj_move_to_index(obj, 0); - 8027d8e: 2100 movs r1, #0 - 8027d90: 6838 ldr r0, [r7, #0] - 8027d92: f7e7 fbf3 bl 800f57c + 8027cfa: 2100 movs r1, #0 + 8027cfc: 6838 ldr r0, [r7, #0] + 8027cfe: f7e7 fbf3 bl 800f4e8 lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_ROW); - 8027d96: 2100 movs r1, #0 - 8027d98: 6838 ldr r0, [r7, #0] - 8027d9a: f7f9 fa9b bl 80212d4 + 8027d02: 2100 movs r1, #0 + 8027d04: 6838 ldr r0, [r7, #0] + 8027d06: f7f9 fa9b bl 8021240 lv_obj_set_flex_align(obj, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_START); - 8027d9e: 2300 movs r3, #0 - 8027da0: 2202 movs r2, #2 - 8027da2: 2100 movs r1, #0 - 8027da4: 6838 ldr r0, [r7, #0] - 8027da6: f7f9 faaf bl 8021308 + 8027d0a: 2300 movs r3, #0 + 8027d0c: 2202 movs r2, #2 + 8027d0e: 2100 movs r1, #0 + 8027d10: 6838 ldr r0, [r7, #0] + 8027d12: f7f9 faaf bl 8021274 lv_obj_t * mo_prev = lv_btn_create(obj); - 8027daa: 6838 ldr r0, [r7, #0] - 8027dac: f011 fbe0 bl 8039570 - 8027db0: 6178 str r0, [r7, #20] + 8027d16: 6838 ldr r0, [r7, #0] + 8027d18: f011 fbe0 bl 80394dc + 8027d1c: 6178 str r0, [r7, #20] lv_obj_set_style_bg_img_src(mo_prev, LV_SYMBOL_LEFT, 0); - 8027db2: 2200 movs r2, #0 - 8027db4: 492f ldr r1, [pc, #188] ; (8027e74 ) - 8027db6: 6978 ldr r0, [r7, #20] - 8027db8: f7e7 faa3 bl 800f302 + 8027d1e: 2200 movs r2, #0 + 8027d20: 492f ldr r1, [pc, #188] ; (8027de0 ) + 8027d22: 6978 ldr r0, [r7, #20] + 8027d24: f7e7 faa3 bl 800f26e lv_obj_set_height(mo_prev, lv_pct(100)); - 8027dbc: 2064 movs r0, #100 ; 0x64 - 8027dbe: f7ff ffc5 bl 8027d4c - 8027dc2: 4603 mov r3, r0 - 8027dc4: 4619 mov r1, r3 - 8027dc6: 6978 ldr r0, [r7, #20] - 8027dc8: f7e1 fd2e bl 8009828 + 8027d28: 2064 movs r0, #100 ; 0x64 + 8027d2a: f7ff ffc5 bl 8027cb8 + 8027d2e: 4603 mov r3, r0 + 8027d30: 4619 mov r1, r3 + 8027d32: 6978 ldr r0, [r7, #20] + 8027d34: f7e1 fd42 bl 80097bc lv_obj_update_layout(mo_prev); - 8027dcc: 6978 ldr r0, [r7, #20] - 8027dce: f7e1 fdb5 bl 800993c + 8027d38: 6978 ldr r0, [r7, #20] + 8027d3a: f7e1 fdc9 bl 80098d0 lv_coord_t btn_size = lv_obj_get_height(mo_prev); - 8027dd2: 6978 ldr r0, [r7, #20] - 8027dd4: f7e2 f9c6 bl 800a164 - 8027dd8: 4603 mov r3, r0 - 8027dda: 827b strh r3, [r7, #18] + 8027d3e: 6978 ldr r0, [r7, #20] + 8027d40: f7e2 f9da bl 800a0f8 + 8027d44: 4603 mov r3, r0 + 8027d46: 827b strh r3, [r7, #18] lv_obj_set_width(mo_prev, btn_size); - 8027ddc: f9b7 3012 ldrsh.w r3, [r7, #18] - 8027de0: 4619 mov r1, r3 - 8027de2: 6978 ldr r0, [r7, #20] - 8027de4: f7e1 fcfa bl 80097dc + 8027d48: f9b7 3012 ldrsh.w r3, [r7, #18] + 8027d4c: 4619 mov r1, r3 + 8027d4e: 6978 ldr r0, [r7, #20] + 8027d50: f7e1 fd0e bl 8009770 lv_obj_add_event_cb(mo_prev, month_event_cb, LV_EVENT_CLICKED, NULL); - 8027de8: 2300 movs r3, #0 - 8027dea: 2207 movs r2, #7 - 8027dec: 4922 ldr r1, [pc, #136] ; (8027e78 ) - 8027dee: 6978 ldr r0, [r7, #20] - 8027df0: f7da fc26 bl 8002640 + 8027d54: 2300 movs r3, #0 + 8027d56: 2207 movs r2, #7 + 8027d58: 4922 ldr r1, [pc, #136] ; (8027de4 ) + 8027d5a: 6978 ldr r0, [r7, #20] + 8027d5c: f7da fc3a bl 80025d4 lv_obj_clear_flag(mo_prev, LV_OBJ_FLAG_CLICK_FOCUSABLE); - 8027df4: 2104 movs r1, #4 - 8027df6: 6978 ldr r0, [r7, #20] - 8027df8: f7de fc32 bl 8006660 + 8027d60: 2104 movs r1, #4 + 8027d62: 6978 ldr r0, [r7, #20] + 8027d64: f7de fc46 bl 80065f4 lv_obj_t * label = lv_label_create(obj); - 8027dfc: 6838 ldr r0, [r7, #0] - 8027dfe: f016 ff6d bl 803ecdc - 8027e02: 60f8 str r0, [r7, #12] + 8027d68: 6838 ldr r0, [r7, #0] + 8027d6a: f016 ff6d bl 803ec48 + 8027d6e: 60f8 str r0, [r7, #12] lv_label_set_long_mode(label, LV_LABEL_LONG_SCROLL_CIRCULAR); - 8027e04: 2103 movs r1, #3 - 8027e06: 68f8 ldr r0, [r7, #12] - 8027e08: f017 f864 bl 803eed4 + 8027d70: 2103 movs r1, #3 + 8027d72: 68f8 ldr r0, [r7, #12] + 8027d74: f017 f864 bl 803ee40 lv_obj_set_style_text_align(label, LV_TEXT_ALIGN_CENTER, 0); - 8027e0c: 2200 movs r2, #0 - 8027e0e: 2102 movs r1, #2 - 8027e10: 68f8 ldr r0, [r7, #12] - 8027e12: f7e7 fa89 bl 800f328 + 8027d78: 2200 movs r2, #0 + 8027d7a: 2102 movs r1, #2 + 8027d7c: 68f8 ldr r0, [r7, #12] + 8027d7e: f7e7 fa89 bl 800f294 lv_obj_set_flex_grow(label, 1); - 8027e16: 2101 movs r1, #1 - 8027e18: 68f8 ldr r0, [r7, #12] - 8027e1a: f7f9 faa3 bl 8021364 + 8027d82: 2101 movs r1, #1 + 8027d84: 68f8 ldr r0, [r7, #12] + 8027d86: f7f9 faa3 bl 80212d0 lv_obj_t * mo_next = lv_btn_create(obj); - 8027e1e: 6838 ldr r0, [r7, #0] - 8027e20: f011 fba6 bl 8039570 - 8027e24: 60b8 str r0, [r7, #8] + 8027d8a: 6838 ldr r0, [r7, #0] + 8027d8c: f011 fba6 bl 80394dc + 8027d90: 60b8 str r0, [r7, #8] lv_obj_set_style_bg_img_src(mo_next, LV_SYMBOL_RIGHT, 0); - 8027e26: 2200 movs r2, #0 - 8027e28: 4914 ldr r1, [pc, #80] ; (8027e7c ) - 8027e2a: 68b8 ldr r0, [r7, #8] - 8027e2c: f7e7 fa69 bl 800f302 + 8027d92: 2200 movs r2, #0 + 8027d94: 4914 ldr r1, [pc, #80] ; (8027de8 ) + 8027d96: 68b8 ldr r0, [r7, #8] + 8027d98: f7e7 fa69 bl 800f26e lv_obj_set_size(mo_next, btn_size, btn_size); - 8027e30: f9b7 2012 ldrsh.w r2, [r7, #18] - 8027e34: f9b7 3012 ldrsh.w r3, [r7, #18] - 8027e38: 4619 mov r1, r3 - 8027e3a: 68b8 ldr r0, [r7, #8] - 8027e3c: f7e1 fcb6 bl 80097ac + 8027d9c: f9b7 2012 ldrsh.w r2, [r7, #18] + 8027da0: f9b7 3012 ldrsh.w r3, [r7, #18] + 8027da4: 4619 mov r1, r3 + 8027da6: 68b8 ldr r0, [r7, #8] + 8027da8: f7e1 fcca bl 8009740 lv_obj_add_event_cb(mo_next, month_event_cb, LV_EVENT_CLICKED, NULL); - 8027e40: 2300 movs r3, #0 - 8027e42: 2207 movs r2, #7 - 8027e44: 490c ldr r1, [pc, #48] ; (8027e78 ) - 8027e46: 68b8 ldr r0, [r7, #8] - 8027e48: f7da fbfa bl 8002640 + 8027dac: 2300 movs r3, #0 + 8027dae: 2207 movs r2, #7 + 8027db0: 490c ldr r1, [pc, #48] ; (8027de4 ) + 8027db2: 68b8 ldr r0, [r7, #8] + 8027db4: f7da fc0e bl 80025d4 lv_obj_clear_flag(mo_next, LV_OBJ_FLAG_CLICK_FOCUSABLE); - 8027e4c: 2104 movs r1, #4 - 8027e4e: 68b8 ldr r0, [r7, #8] - 8027e50: f7de fc06 bl 8006660 + 8027db8: 2104 movs r1, #4 + 8027dba: 68b8 ldr r0, [r7, #8] + 8027dbc: f7de fc1a bl 80065f4 lv_obj_add_event_cb(obj, value_changed_event_cb, LV_EVENT_VALUE_CHANGED, NULL); - 8027e54: 2300 movs r3, #0 - 8027e56: 221c movs r2, #28 - 8027e58: 4909 ldr r1, [pc, #36] ; (8027e80 ) - 8027e5a: 6838 ldr r0, [r7, #0] - 8027e5c: f7da fbf0 bl 8002640 + 8027dc0: 2300 movs r3, #0 + 8027dc2: 221c movs r2, #28 + 8027dc4: 4909 ldr r1, [pc, #36] ; (8027dec ) + 8027dc6: 6838 ldr r0, [r7, #0] + 8027dc8: f7da fc04 bl 80025d4 /*Refresh the drop downs*/ lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 8027e60: 2200 movs r2, #0 - 8027e62: 211c movs r1, #28 - 8027e64: 6838 ldr r0, [r7, #0] - 8027e66: f7da fb0b bl 8002480 + 8027dcc: 2200 movs r2, #0 + 8027dce: 211c movs r1, #28 + 8027dd0: 6838 ldr r0, [r7, #0] + 8027dd2: f7da fb1f bl 8002414 } - 8027e6a: bf00 nop - 8027e6c: 3718 adds r7, #24 - 8027e6e: 46bd mov sp, r7 - 8027e70: bd80 pop {r7, pc} - 8027e72: bf00 nop - 8027e74: 08046cf0 .word 0x08046cf0 - 8027e78: 08027e85 .word 0x08027e85 - 8027e7c: 08046cf4 .word 0x08046cf4 - 8027e80: 08027f55 .word 0x08027f55 + 8027dd6: bf00 nop + 8027dd8: 3718 adds r7, #24 + 8027dda: 46bd mov sp, r7 + 8027ddc: bd80 pop {r7, pc} + 8027dde: bf00 nop + 8027de0: 08046c48 .word 0x08046c48 + 8027de4: 08027df1 .word 0x08027df1 + 8027de8: 08046c4c .word 0x08046c4c + 8027dec: 08027ec1 .word 0x08027ec1 -08027e84 : +08027df0 : static void month_event_cb(lv_event_t * e) { - 8027e84: b580 push {r7, lr} - 8027e86: b088 sub sp, #32 - 8027e88: af00 add r7, sp, #0 - 8027e8a: 6078 str r0, [r7, #4] + 8027df0: b580 push {r7, lr} + 8027df2: b088 sub sp, #32 + 8027df4: af00 add r7, sp, #0 + 8027df6: 6078 str r0, [r7, #4] lv_obj_t * btn = lv_event_get_target(e); - 8027e8c: 6878 ldr r0, [r7, #4] - 8027e8e: f7da fb77 bl 8002580 - 8027e92: 61f8 str r0, [r7, #28] + 8027df8: 6878 ldr r0, [r7, #4] + 8027dfa: f7da fb8b bl 8002514 + 8027dfe: 61f8 str r0, [r7, #28] lv_obj_t * header = lv_obj_get_parent(btn); - 8027e94: 69f8 ldr r0, [r7, #28] - 8027e96: f7e7 fc39 bl 800f70c - 8027e9a: 61b8 str r0, [r7, #24] + 8027e00: 69f8 ldr r0, [r7, #28] + 8027e02: f7e7 fc39 bl 800f678 + 8027e06: 61b8 str r0, [r7, #24] lv_obj_t * calendar = lv_obj_get_parent(header); - 8027e9c: 69b8 ldr r0, [r7, #24] - 8027e9e: f7e7 fc35 bl 800f70c - 8027ea2: 6178 str r0, [r7, #20] + 8027e08: 69b8 ldr r0, [r7, #24] + 8027e0a: f7e7 fc35 bl 800f678 + 8027e0e: 6178 str r0, [r7, #20] const lv_calendar_date_t * d; d = lv_calendar_get_showed_date(calendar); - 8027ea4: 6978 ldr r0, [r7, #20] - 8027ea6: f7ff fccb bl 8027840 - 8027eaa: 6138 str r0, [r7, #16] + 8027e10: 6978 ldr r0, [r7, #20] + 8027e12: f7ff fccb bl 80277ac + 8027e16: 6138 str r0, [r7, #16] lv_calendar_date_t newd = *d; - 8027eac: 693a ldr r2, [r7, #16] - 8027eae: f107 0308 add.w r3, r7, #8 - 8027eb2: 6810 ldr r0, [r2, #0] - 8027eb4: 6018 str r0, [r3, #0] + 8027e18: 693a ldr r2, [r7, #16] + 8027e1a: f107 0308 add.w r3, r7, #8 + 8027e1e: 6810 ldr r0, [r2, #0] + 8027e20: 6018 str r0, [r3, #0] /*The last child is the right button*/ if(lv_obj_get_child(header, 0) == btn) { - 8027eb6: 2100 movs r1, #0 - 8027eb8: 69b8 ldr r0, [r7, #24] - 8027eba: f7e7 fc37 bl 800f72c - 8027ebe: 4602 mov r2, r0 - 8027ec0: 69fb ldr r3, [r7, #28] - 8027ec2: 4293 cmp r3, r2 - 8027ec4: d112 bne.n 8027eec + 8027e22: 2100 movs r1, #0 + 8027e24: 69b8 ldr r0, [r7, #24] + 8027e26: f7e7 fc37 bl 800f698 + 8027e2a: 4602 mov r2, r0 + 8027e2c: 69fb ldr r3, [r7, #28] + 8027e2e: 4293 cmp r3, r2 + 8027e30: d112 bne.n 8027e58 if(newd.month == 1) { - 8027ec6: f997 300a ldrsb.w r3, [r7, #10] - 8027eca: 2b01 cmp r3, #1 - 8027ecc: d106 bne.n 8027edc + 8027e32: f997 300a ldrsb.w r3, [r7, #10] + 8027e36: 2b01 cmp r3, #1 + 8027e38: d106 bne.n 8027e48 newd.month = 12; - 8027ece: 230c movs r3, #12 - 8027ed0: 72bb strb r3, [r7, #10] + 8027e3a: 230c movs r3, #12 + 8027e3c: 72bb strb r3, [r7, #10] newd.year --; - 8027ed2: 893b ldrh r3, [r7, #8] - 8027ed4: 3b01 subs r3, #1 - 8027ed6: b29b uxth r3, r3 - 8027ed8: 813b strh r3, [r7, #8] - 8027eda: e019 b.n 8027f10 + 8027e3e: 893b ldrh r3, [r7, #8] + 8027e40: 3b01 subs r3, #1 + 8027e42: b29b uxth r3, r3 + 8027e44: 813b strh r3, [r7, #8] + 8027e46: e019 b.n 8027e7c } else { newd.month --; - 8027edc: f997 300a ldrsb.w r3, [r7, #10] - 8027ee0: b2db uxtb r3, r3 - 8027ee2: 3b01 subs r3, #1 - 8027ee4: b2db uxtb r3, r3 - 8027ee6: b25b sxtb r3, r3 - 8027ee8: 72bb strb r3, [r7, #10] - 8027eea: e011 b.n 8027f10 + 8027e48: f997 300a ldrsb.w r3, [r7, #10] + 8027e4c: b2db uxtb r3, r3 + 8027e4e: 3b01 subs r3, #1 + 8027e50: b2db uxtb r3, r3 + 8027e52: b25b sxtb r3, r3 + 8027e54: 72bb strb r3, [r7, #10] + 8027e56: e011 b.n 8027e7c } } else { if(newd.month == 12) { - 8027eec: f997 300a ldrsb.w r3, [r7, #10] - 8027ef0: 2b0c cmp r3, #12 - 8027ef2: d106 bne.n 8027f02 + 8027e58: f997 300a ldrsb.w r3, [r7, #10] + 8027e5c: 2b0c cmp r3, #12 + 8027e5e: d106 bne.n 8027e6e newd.month = 1; - 8027ef4: 2301 movs r3, #1 - 8027ef6: 72bb strb r3, [r7, #10] + 8027e60: 2301 movs r3, #1 + 8027e62: 72bb strb r3, [r7, #10] newd.year ++; - 8027ef8: 893b ldrh r3, [r7, #8] - 8027efa: 3301 adds r3, #1 - 8027efc: b29b uxth r3, r3 - 8027efe: 813b strh r3, [r7, #8] - 8027f00: e006 b.n 8027f10 + 8027e64: 893b ldrh r3, [r7, #8] + 8027e66: 3301 adds r3, #1 + 8027e68: b29b uxth r3, r3 + 8027e6a: 813b strh r3, [r7, #8] + 8027e6c: e006 b.n 8027e7c } else { newd.month ++; - 8027f02: f997 300a ldrsb.w r3, [r7, #10] - 8027f06: b2db uxtb r3, r3 - 8027f08: 3301 adds r3, #1 - 8027f0a: b2db uxtb r3, r3 - 8027f0c: b25b sxtb r3, r3 - 8027f0e: 72bb strb r3, [r7, #10] + 8027e6e: f997 300a ldrsb.w r3, [r7, #10] + 8027e72: b2db uxtb r3, r3 + 8027e74: 3301 adds r3, #1 + 8027e76: b2db uxtb r3, r3 + 8027e78: b25b sxtb r3, r3 + 8027e7a: 72bb strb r3, [r7, #10] } } lv_calendar_set_showed_date(calendar, newd.year, newd.month); - 8027f10: 893b ldrh r3, [r7, #8] - 8027f12: 4619 mov r1, r3 - 8027f14: f997 300a ldrsb.w r3, [r7, #10] - 8027f18: 461a mov r2, r3 - 8027f1a: 6978 ldr r0, [r7, #20] - 8027f1c: f7ff fb6a bl 80275f4 + 8027e7c: 893b ldrh r3, [r7, #8] + 8027e7e: 4619 mov r1, r3 + 8027e80: f997 300a ldrsb.w r3, [r7, #10] + 8027e84: 461a mov r2, r3 + 8027e86: 6978 ldr r0, [r7, #20] + 8027e88: f7ff fb6a bl 8027560 lv_obj_t * label = lv_obj_get_child(header, 1); - 8027f20: 2101 movs r1, #1 - 8027f22: 69b8 ldr r0, [r7, #24] - 8027f24: f7e7 fc02 bl 800f72c - 8027f28: 60f8 str r0, [r7, #12] + 8027e8c: 2101 movs r1, #1 + 8027e8e: 69b8 ldr r0, [r7, #24] + 8027e90: f7e7 fc02 bl 800f698 + 8027e94: 60f8 str r0, [r7, #12] lv_label_set_text_fmt(label, "%d %s", newd.year, month_names_def[newd.month - 1]); - 8027f2a: 893b ldrh r3, [r7, #8] - 8027f2c: 4619 mov r1, r3 - 8027f2e: f997 300a ldrsb.w r3, [r7, #10] - 8027f32: 3b01 subs r3, #1 - 8027f34: 4a05 ldr r2, [pc, #20] ; (8027f4c ) - 8027f36: f852 3023 ldr.w r3, [r2, r3, lsl #2] - 8027f3a: 460a mov r2, r1 - 8027f3c: 4904 ldr r1, [pc, #16] ; (8027f50 ) - 8027f3e: 68f8 ldr r0, [r7, #12] - 8027f40: f016 ff55 bl 803edee + 8027e96: 893b ldrh r3, [r7, #8] + 8027e98: 4619 mov r1, r3 + 8027e9a: f997 300a ldrsb.w r3, [r7, #10] + 8027e9e: 3b01 subs r3, #1 + 8027ea0: 4a05 ldr r2, [pc, #20] ; (8027eb8 ) + 8027ea2: f852 3023 ldr.w r3, [r2, r3, lsl #2] + 8027ea6: 460a mov r2, r1 + 8027ea8: 4904 ldr r1, [pc, #16] ; (8027ebc ) + 8027eaa: 68f8 ldr r0, [r7, #12] + 8027eac: f016 ff55 bl 803ed5a } - 8027f44: bf00 nop - 8027f46: 3720 adds r7, #32 - 8027f48: 46bd mov sp, r7 - 8027f4a: bd80 pop {r7, pc} - 8027f4c: 20000058 .word 0x20000058 - 8027f50: 08046cf8 .word 0x08046cf8 + 8027eb0: bf00 nop + 8027eb2: 3720 adds r7, #32 + 8027eb4: 46bd mov sp, r7 + 8027eb6: bd80 pop {r7, pc} + 8027eb8: 20000058 .word 0x20000058 + 8027ebc: 08046c50 .word 0x08046c50 -08027f54 : +08027ec0 : static void value_changed_event_cb(lv_event_t * e) { - 8027f54: b580 push {r7, lr} - 8027f56: b086 sub sp, #24 - 8027f58: af00 add r7, sp, #0 - 8027f5a: 6078 str r0, [r7, #4] + 8027ec0: b580 push {r7, lr} + 8027ec2: b086 sub sp, #24 + 8027ec4: af00 add r7, sp, #0 + 8027ec6: 6078 str r0, [r7, #4] lv_obj_t * header = lv_event_get_target(e); - 8027f5c: 6878 ldr r0, [r7, #4] - 8027f5e: f7da fb0f bl 8002580 - 8027f62: 6178 str r0, [r7, #20] + 8027ec8: 6878 ldr r0, [r7, #4] + 8027eca: f7da fb23 bl 8002514 + 8027ece: 6178 str r0, [r7, #20] lv_obj_t * calendar = lv_obj_get_parent(header); - 8027f64: 6978 ldr r0, [r7, #20] - 8027f66: f7e7 fbd1 bl 800f70c - 8027f6a: 6138 str r0, [r7, #16] + 8027ed0: 6978 ldr r0, [r7, #20] + 8027ed2: f7e7 fbd1 bl 800f678 + 8027ed6: 6138 str r0, [r7, #16] const lv_calendar_date_t * cur_date = lv_calendar_get_showed_date(calendar); - 8027f6c: 6938 ldr r0, [r7, #16] - 8027f6e: f7ff fc67 bl 8027840 - 8027f72: 60f8 str r0, [r7, #12] + 8027ed8: 6938 ldr r0, [r7, #16] + 8027eda: f7ff fc67 bl 80277ac + 8027ede: 60f8 str r0, [r7, #12] lv_obj_t * label = lv_obj_get_child(header, 1); - 8027f74: 2101 movs r1, #1 - 8027f76: 6978 ldr r0, [r7, #20] - 8027f78: f7e7 fbd8 bl 800f72c - 8027f7c: 60b8 str r0, [r7, #8] + 8027ee0: 2101 movs r1, #1 + 8027ee2: 6978 ldr r0, [r7, #20] + 8027ee4: f7e7 fbd8 bl 800f698 + 8027ee8: 60b8 str r0, [r7, #8] lv_label_set_text_fmt(label, "%d %s", cur_date->year, month_names_def[cur_date->month - 1]); - 8027f7e: 68fb ldr r3, [r7, #12] - 8027f80: 881b ldrh r3, [r3, #0] - 8027f82: 4619 mov r1, r3 - 8027f84: 68fb ldr r3, [r7, #12] - 8027f86: f993 3002 ldrsb.w r3, [r3, #2] - 8027f8a: 3b01 subs r3, #1 - 8027f8c: 4a05 ldr r2, [pc, #20] ; (8027fa4 ) - 8027f8e: f852 3023 ldr.w r3, [r2, r3, lsl #2] - 8027f92: 460a mov r2, r1 - 8027f94: 4904 ldr r1, [pc, #16] ; (8027fa8 ) - 8027f96: 68b8 ldr r0, [r7, #8] - 8027f98: f016 ff29 bl 803edee + 8027eea: 68fb ldr r3, [r7, #12] + 8027eec: 881b ldrh r3, [r3, #0] + 8027eee: 4619 mov r1, r3 + 8027ef0: 68fb ldr r3, [r7, #12] + 8027ef2: f993 3002 ldrsb.w r3, [r3, #2] + 8027ef6: 3b01 subs r3, #1 + 8027ef8: 4a05 ldr r2, [pc, #20] ; (8027f10 ) + 8027efa: f852 3023 ldr.w r3, [r2, r3, lsl #2] + 8027efe: 460a mov r2, r1 + 8027f00: 4904 ldr r1, [pc, #16] ; (8027f14 ) + 8027f02: 68b8 ldr r0, [r7, #8] + 8027f04: f016 ff29 bl 803ed5a } - 8027f9c: bf00 nop - 8027f9e: 3718 adds r7, #24 - 8027fa0: 46bd mov sp, r7 - 8027fa2: bd80 pop {r7, pc} - 8027fa4: 20000058 .word 0x20000058 - 8027fa8: 08046cf8 .word 0x08046cf8 + 8027f08: bf00 nop + 8027f0a: 3718 adds r7, #24 + 8027f0c: 46bd mov sp, r7 + 8027f0e: bd80 pop {r7, pc} + 8027f10: 20000058 .word 0x20000058 + 8027f14: 08046c50 .word 0x08046c50 -08027fac : +08027f18 : /********************** * STATIC FUNCTIONS **********************/ static void my_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 8027fac: b580 push {r7, lr} - 8027fae: b086 sub sp, #24 - 8027fb0: af00 add r7, sp, #0 - 8027fb2: 6078 str r0, [r7, #4] - 8027fb4: 6039 str r1, [r7, #0] + 8027f18: b580 push {r7, lr} + 8027f1a: b086 sub sp, #24 + 8027f1c: af00 add r7, sp, #0 + 8027f1e: 6078 str r0, [r7, #4] + 8027f20: 6039 str r1, [r7, #0] LV_TRACE_OBJ_CREATE("begin"); LV_UNUSED(class_p); lv_obj_t * calendar = lv_obj_get_parent(obj); - 8027fb6: 6838 ldr r0, [r7, #0] - 8027fb8: f7e7 fba8 bl 800f70c - 8027fbc: 6178 str r0, [r7, #20] + 8027f22: 6838 ldr r0, [r7, #0] + 8027f24: f7e7 fba8 bl 800f678 + 8027f28: 6178 str r0, [r7, #20] lv_obj_move_to_index(obj, 0); - 8027fbe: 2100 movs r1, #0 - 8027fc0: 6838 ldr r0, [r7, #0] - 8027fc2: f7e7 fadb bl 800f57c + 8027f2a: 2100 movs r1, #0 + 8027f2c: 6838 ldr r0, [r7, #0] + 8027f2e: f7e7 fadb bl 800f4e8 lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_ROW); - 8027fc6: 2100 movs r1, #0 - 8027fc8: 6838 ldr r0, [r7, #0] - 8027fca: f7f9 f983 bl 80212d4 + 8027f32: 2100 movs r1, #0 + 8027f34: 6838 ldr r0, [r7, #0] + 8027f36: f7f9 f983 bl 8021240 lv_obj_t * year_dd = lv_dropdown_create(obj); - 8027fce: 6838 ldr r0, [r7, #0] - 8027fd0: f014 f89e bl 803c110 - 8027fd4: 6138 str r0, [r7, #16] + 8027f3a: 6838 ldr r0, [r7, #0] + 8027f3c: f014 f89e bl 803c07c + 8027f40: 6138 str r0, [r7, #16] lv_dropdown_set_options(year_dd, year_list); - 8027fd6: 4b19 ldr r3, [pc, #100] ; (802803c ) - 8027fd8: 681b ldr r3, [r3, #0] - 8027fda: 4619 mov r1, r3 - 8027fdc: 6938 ldr r0, [r7, #16] - 8027fde: f014 f8ab bl 803c138 + 8027f42: 4b19 ldr r3, [pc, #100] ; (8027fa8 ) + 8027f44: 681b ldr r3, [r3, #0] + 8027f46: 4619 mov r1, r3 + 8027f48: 6938 ldr r0, [r7, #16] + 8027f4a: f014 f8ab bl 803c0a4 lv_obj_add_event_cb(year_dd, year_event_cb, LV_EVENT_VALUE_CHANGED, calendar); - 8027fe2: 697b ldr r3, [r7, #20] - 8027fe4: 221c movs r2, #28 - 8027fe6: 4916 ldr r1, [pc, #88] ; (8028040 ) - 8027fe8: 6938 ldr r0, [r7, #16] - 8027fea: f7da fb29 bl 8002640 + 8027f4e: 697b ldr r3, [r7, #20] + 8027f50: 221c movs r2, #28 + 8027f52: 4916 ldr r1, [pc, #88] ; (8027fac ) + 8027f54: 6938 ldr r0, [r7, #16] + 8027f56: f7da fb3d bl 80025d4 lv_obj_set_flex_grow(year_dd, 1); - 8027fee: 2101 movs r1, #1 - 8027ff0: 6938 ldr r0, [r7, #16] - 8027ff2: f7f9 f9b7 bl 8021364 + 8027f5a: 2101 movs r1, #1 + 8027f5c: 6938 ldr r0, [r7, #16] + 8027f5e: f7f9 f9b7 bl 80212d0 lv_obj_t * month_dd = lv_dropdown_create(obj); - 8027ff6: 6838 ldr r0, [r7, #0] - 8027ff8: f014 f88a bl 803c110 - 8027ffc: 60f8 str r0, [r7, #12] + 8027f62: 6838 ldr r0, [r7, #0] + 8027f64: f014 f88a bl 803c07c + 8027f68: 60f8 str r0, [r7, #12] lv_dropdown_set_options(month_dd, month_list); - 8027ffe: 4b11 ldr r3, [pc, #68] ; (8028044 ) - 8028000: 681b ldr r3, [r3, #0] - 8028002: 4619 mov r1, r3 - 8028004: 68f8 ldr r0, [r7, #12] - 8028006: f014 f897 bl 803c138 + 8027f6a: 4b11 ldr r3, [pc, #68] ; (8027fb0 ) + 8027f6c: 681b ldr r3, [r3, #0] + 8027f6e: 4619 mov r1, r3 + 8027f70: 68f8 ldr r0, [r7, #12] + 8027f72: f014 f897 bl 803c0a4 lv_obj_add_event_cb(month_dd, month_event_cb, LV_EVENT_VALUE_CHANGED, calendar); - 802800a: 697b ldr r3, [r7, #20] - 802800c: 221c movs r2, #28 - 802800e: 490e ldr r1, [pc, #56] ; (8028048 ) - 8028010: 68f8 ldr r0, [r7, #12] - 8028012: f7da fb15 bl 8002640 + 8027f76: 697b ldr r3, [r7, #20] + 8027f78: 221c movs r2, #28 + 8027f7a: 490e ldr r1, [pc, #56] ; (8027fb4 ) + 8027f7c: 68f8 ldr r0, [r7, #12] + 8027f7e: f7da fb29 bl 80025d4 lv_obj_set_flex_grow(month_dd, 1); - 8028016: 2101 movs r1, #1 - 8028018: 68f8 ldr r0, [r7, #12] - 802801a: f7f9 f9a3 bl 8021364 + 8027f82: 2101 movs r1, #1 + 8027f84: 68f8 ldr r0, [r7, #12] + 8027f86: f7f9 f9a3 bl 80212d0 lv_obj_add_event_cb(obj, value_changed_event_cb, LV_EVENT_VALUE_CHANGED, NULL); - 802801e: 2300 movs r3, #0 - 8028020: 221c movs r2, #28 - 8028022: 490a ldr r1, [pc, #40] ; (802804c ) - 8028024: 6838 ldr r0, [r7, #0] - 8028026: f7da fb0b bl 8002640 + 8027f8a: 2300 movs r3, #0 + 8027f8c: 221c movs r2, #28 + 8027f8e: 490a ldr r1, [pc, #40] ; (8027fb8 ) + 8027f90: 6838 ldr r0, [r7, #0] + 8027f92: f7da fb1f bl 80025d4 /*Refresh the drop downs*/ lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 802802a: 2200 movs r2, #0 - 802802c: 211c movs r1, #28 - 802802e: 6838 ldr r0, [r7, #0] - 8028030: f7da fa26 bl 8002480 + 8027f96: 2200 movs r2, #0 + 8027f98: 211c movs r1, #28 + 8027f9a: 6838 ldr r0, [r7, #0] + 8027f9c: f7da fa3a bl 8002414 } - 8028034: bf00 nop - 8028036: 3718 adds r7, #24 - 8028038: 46bd mov sp, r7 - 802803a: bd80 pop {r7, pc} - 802803c: 2000008c .word 0x2000008c - 8028040: 080280a9 .word 0x080280a9 - 8028044: 20000088 .word 0x20000088 - 8028048: 08028051 .word 0x08028051 - 802804c: 08028101 .word 0x08028101 + 8027fa0: bf00 nop + 8027fa2: 3718 adds r7, #24 + 8027fa4: 46bd mov sp, r7 + 8027fa6: bd80 pop {r7, pc} + 8027fa8: 2000008c .word 0x2000008c + 8027fac: 08028015 .word 0x08028015 + 8027fb0: 20000088 .word 0x20000088 + 8027fb4: 08027fbd .word 0x08027fbd + 8027fb8: 0802806d .word 0x0802806d -08028050 : +08027fbc : static void month_event_cb(lv_event_t * e) { - 8028050: b580 push {r7, lr} - 8028052: b088 sub sp, #32 - 8028054: af00 add r7, sp, #0 - 8028056: 6078 str r0, [r7, #4] + 8027fbc: b580 push {r7, lr} + 8027fbe: b088 sub sp, #32 + 8027fc0: af00 add r7, sp, #0 + 8027fc2: 6078 str r0, [r7, #4] lv_obj_t * dropdown = lv_event_get_target(e); - 8028058: 6878 ldr r0, [r7, #4] - 802805a: f7da fa91 bl 8002580 - 802805e: 61f8 str r0, [r7, #28] + 8027fc4: 6878 ldr r0, [r7, #4] + 8027fc6: f7da faa5 bl 8002514 + 8027fca: 61f8 str r0, [r7, #28] lv_obj_t * calendar = lv_event_get_user_data(e); - 8028060: 6878 ldr r0, [r7, #4] - 8028062: f7da fabc bl 80025de - 8028066: 61b8 str r0, [r7, #24] + 8027fcc: 6878 ldr r0, [r7, #4] + 8027fce: f7da fad0 bl 8002572 + 8027fd2: 61b8 str r0, [r7, #24] uint16_t sel = lv_dropdown_get_selected(dropdown); - 8028068: 69f8 ldr r0, [r7, #28] - 802806a: f014 f964 bl 803c336 - 802806e: 4603 mov r3, r0 - 8028070: 82fb strh r3, [r7, #22] + 8027fd4: 69f8 ldr r0, [r7, #28] + 8027fd6: f014 f964 bl 803c2a2 + 8027fda: 4603 mov r3, r0 + 8027fdc: 82fb strh r3, [r7, #22] const lv_calendar_date_t * d; d = lv_calendar_get_showed_date(calendar); - 8028072: 69b8 ldr r0, [r7, #24] - 8028074: f7ff fbe4 bl 8027840 - 8028078: 6138 str r0, [r7, #16] + 8027fde: 69b8 ldr r0, [r7, #24] + 8027fe0: f7ff fbe4 bl 80277ac + 8027fe4: 6138 str r0, [r7, #16] lv_calendar_date_t newd = *d; - 802807a: 693a ldr r2, [r7, #16] - 802807c: f107 030c add.w r3, r7, #12 - 8028080: 6810 ldr r0, [r2, #0] - 8028082: 6018 str r0, [r3, #0] + 8027fe6: 693a ldr r2, [r7, #16] + 8027fe8: f107 030c add.w r3, r7, #12 + 8027fec: 6810 ldr r0, [r2, #0] + 8027fee: 6018 str r0, [r3, #0] newd.month = sel + 1; - 8028084: 8afb ldrh r3, [r7, #22] - 8028086: b2db uxtb r3, r3 - 8028088: 3301 adds r3, #1 - 802808a: b2db uxtb r3, r3 - 802808c: b25b sxtb r3, r3 - 802808e: 73bb strb r3, [r7, #14] + 8027ff0: 8afb ldrh r3, [r7, #22] + 8027ff2: b2db uxtb r3, r3 + 8027ff4: 3301 adds r3, #1 + 8027ff6: b2db uxtb r3, r3 + 8027ff8: b25b sxtb r3, r3 + 8027ffa: 73bb strb r3, [r7, #14] lv_calendar_set_showed_date(calendar, newd.year, newd.month); - 8028090: 89bb ldrh r3, [r7, #12] - 8028092: 4619 mov r1, r3 - 8028094: f997 300e ldrsb.w r3, [r7, #14] - 8028098: 461a mov r2, r3 - 802809a: 69b8 ldr r0, [r7, #24] - 802809c: f7ff faaa bl 80275f4 + 8027ffc: 89bb ldrh r3, [r7, #12] + 8027ffe: 4619 mov r1, r3 + 8028000: f997 300e ldrsb.w r3, [r7, #14] + 8028004: 461a mov r2, r3 + 8028006: 69b8 ldr r0, [r7, #24] + 8028008: f7ff faaa bl 8027560 } - 80280a0: bf00 nop - 80280a2: 3720 adds r7, #32 - 80280a4: 46bd mov sp, r7 - 80280a6: bd80 pop {r7, pc} + 802800c: bf00 nop + 802800e: 3720 adds r7, #32 + 8028010: 46bd mov sp, r7 + 8028012: bd80 pop {r7, pc} -080280a8 : +08028014 : static void year_event_cb(lv_event_t * e) { - 80280a8: b580 push {r7, lr} - 80280aa: b088 sub sp, #32 - 80280ac: af00 add r7, sp, #0 - 80280ae: 6078 str r0, [r7, #4] + 8028014: b580 push {r7, lr} + 8028016: b088 sub sp, #32 + 8028018: af00 add r7, sp, #0 + 802801a: 6078 str r0, [r7, #4] lv_obj_t * dropdown = lv_event_get_target(e); - 80280b0: 6878 ldr r0, [r7, #4] - 80280b2: f7da fa65 bl 8002580 - 80280b6: 61f8 str r0, [r7, #28] + 802801c: 6878 ldr r0, [r7, #4] + 802801e: f7da fa79 bl 8002514 + 8028022: 61f8 str r0, [r7, #28] lv_obj_t * calendar = lv_event_get_user_data(e); - 80280b8: 6878 ldr r0, [r7, #4] - 80280ba: f7da fa90 bl 80025de - 80280be: 61b8 str r0, [r7, #24] + 8028024: 6878 ldr r0, [r7, #4] + 8028026: f7da faa4 bl 8002572 + 802802a: 61b8 str r0, [r7, #24] uint16_t sel = lv_dropdown_get_selected(dropdown); - 80280c0: 69f8 ldr r0, [r7, #28] - 80280c2: f014 f938 bl 803c336 - 80280c6: 4603 mov r3, r0 - 80280c8: 82fb strh r3, [r7, #22] + 802802c: 69f8 ldr r0, [r7, #28] + 802802e: f014 f938 bl 803c2a2 + 8028032: 4603 mov r3, r0 + 8028034: 82fb strh r3, [r7, #22] const lv_calendar_date_t * d; d = lv_calendar_get_showed_date(calendar); - 80280ca: 69b8 ldr r0, [r7, #24] - 80280cc: f7ff fbb8 bl 8027840 - 80280d0: 6138 str r0, [r7, #16] + 8028036: 69b8 ldr r0, [r7, #24] + 8028038: f7ff fbb8 bl 80277ac + 802803c: 6138 str r0, [r7, #16] lv_calendar_date_t newd = *d; - 80280d2: 693a ldr r2, [r7, #16] - 80280d4: f107 030c add.w r3, r7, #12 - 80280d8: 6810 ldr r0, [r2, #0] - 80280da: 6018 str r0, [r3, #0] + 802803e: 693a ldr r2, [r7, #16] + 8028040: f107 030c add.w r3, r7, #12 + 8028044: 6810 ldr r0, [r2, #0] + 8028046: 6018 str r0, [r3, #0] newd.year = 2023 - sel; - 80280dc: 8afb ldrh r3, [r7, #22] - 80280de: f5c3 63fc rsb r3, r3, #2016 ; 0x7e0 - 80280e2: 3307 adds r3, #7 - 80280e4: b29b uxth r3, r3 - 80280e6: 81bb strh r3, [r7, #12] + 8028048: 8afb ldrh r3, [r7, #22] + 802804a: f5c3 63fc rsb r3, r3, #2016 ; 0x7e0 + 802804e: 3307 adds r3, #7 + 8028050: b29b uxth r3, r3 + 8028052: 81bb strh r3, [r7, #12] lv_calendar_set_showed_date(calendar, newd.year, newd.month); - 80280e8: 89bb ldrh r3, [r7, #12] - 80280ea: 4619 mov r1, r3 - 80280ec: f997 300e ldrsb.w r3, [r7, #14] - 80280f0: 461a mov r2, r3 - 80280f2: 69b8 ldr r0, [r7, #24] - 80280f4: f7ff fa7e bl 80275f4 + 8028054: 89bb ldrh r3, [r7, #12] + 8028056: 4619 mov r1, r3 + 8028058: f997 300e ldrsb.w r3, [r7, #14] + 802805c: 461a mov r2, r3 + 802805e: 69b8 ldr r0, [r7, #24] + 8028060: f7ff fa7e bl 8027560 } - 80280f8: bf00 nop - 80280fa: 3720 adds r7, #32 - 80280fc: 46bd mov sp, r7 - 80280fe: bd80 pop {r7, pc} + 8028064: bf00 nop + 8028066: 3720 adds r7, #32 + 8028068: 46bd mov sp, r7 + 802806a: bd80 pop {r7, pc} -08028100 : +0802806c : static void value_changed_event_cb(lv_event_t * e) { - 8028100: b580 push {r7, lr} - 8028102: b088 sub sp, #32 - 8028104: af00 add r7, sp, #0 - 8028106: 6078 str r0, [r7, #4] + 802806c: b580 push {r7, lr} + 802806e: b088 sub sp, #32 + 8028070: af00 add r7, sp, #0 + 8028072: 6078 str r0, [r7, #4] lv_obj_t * header = lv_event_get_target(e); - 8028108: 6878 ldr r0, [r7, #4] - 802810a: f7da fa39 bl 8002580 - 802810e: 61f8 str r0, [r7, #28] + 8028074: 6878 ldr r0, [r7, #4] + 8028076: f7da fa4d bl 8002514 + 802807a: 61f8 str r0, [r7, #28] lv_obj_t * calendar = lv_obj_get_parent(header); - 8028110: 69f8 ldr r0, [r7, #28] - 8028112: f7e7 fafb bl 800f70c - 8028116: 61b8 str r0, [r7, #24] + 802807c: 69f8 ldr r0, [r7, #28] + 802807e: f7e7 fafb bl 800f678 + 8028082: 61b8 str r0, [r7, #24] const lv_calendar_date_t * cur_date = lv_calendar_get_showed_date(calendar); - 8028118: 69b8 ldr r0, [r7, #24] - 802811a: f7ff fb91 bl 8027840 - 802811e: 6178 str r0, [r7, #20] + 8028084: 69b8 ldr r0, [r7, #24] + 8028086: f7ff fb91 bl 80277ac + 802808a: 6178 str r0, [r7, #20] lv_obj_t * year_dd = lv_obj_get_child(header, 0); - 8028120: 2100 movs r1, #0 - 8028122: 69f8 ldr r0, [r7, #28] - 8028124: f7e7 fb02 bl 800f72c - 8028128: 6138 str r0, [r7, #16] + 802808c: 2100 movs r1, #0 + 802808e: 69f8 ldr r0, [r7, #28] + 8028090: f7e7 fb02 bl 800f698 + 8028094: 6138 str r0, [r7, #16] lv_dropdown_set_selected(year_dd, 2023 - cur_date->year); - 802812a: 697b ldr r3, [r7, #20] - 802812c: 881b ldrh r3, [r3, #0] - 802812e: f5c3 63fc rsb r3, r3, #2016 ; 0x7e0 - 8028132: 3307 adds r3, #7 - 8028134: b29b uxth r3, r3 - 8028136: 4619 mov r1, r3 - 8028138: 6938 ldr r0, [r7, #16] - 802813a: f014 f8d6 bl 803c2ea + 8028096: 697b ldr r3, [r7, #20] + 8028098: 881b ldrh r3, [r3, #0] + 802809a: f5c3 63fc rsb r3, r3, #2016 ; 0x7e0 + 802809e: 3307 adds r3, #7 + 80280a0: b29b uxth r3, r3 + 80280a2: 4619 mov r1, r3 + 80280a4: 6938 ldr r0, [r7, #16] + 80280a6: f014 f8d6 bl 803c256 lv_obj_t * month_dd = lv_obj_get_child(header, 1); - 802813e: 2101 movs r1, #1 - 8028140: 69f8 ldr r0, [r7, #28] - 8028142: f7e7 faf3 bl 800f72c - 8028146: 60f8 str r0, [r7, #12] + 80280aa: 2101 movs r1, #1 + 80280ac: 69f8 ldr r0, [r7, #28] + 80280ae: f7e7 faf3 bl 800f698 + 80280b2: 60f8 str r0, [r7, #12] lv_dropdown_set_selected(month_dd, cur_date->month - 1); - 8028148: 697b ldr r3, [r7, #20] - 802814a: f993 3002 ldrsb.w r3, [r3, #2] - 802814e: b29b uxth r3, r3 - 8028150: 3b01 subs r3, #1 - 8028152: b29b uxth r3, r3 - 8028154: 4619 mov r1, r3 - 8028156: 68f8 ldr r0, [r7, #12] - 8028158: f014 f8c7 bl 803c2ea + 80280b4: 697b ldr r3, [r7, #20] + 80280b6: f993 3002 ldrsb.w r3, [r3, #2] + 80280ba: b29b uxth r3, r3 + 80280bc: 3b01 subs r3, #1 + 80280be: b29b uxth r3, r3 + 80280c0: 4619 mov r1, r3 + 80280c2: 68f8 ldr r0, [r7, #12] + 80280c4: f014 f8c7 bl 803c256 } - 802815c: bf00 nop - 802815e: 3720 adds r7, #32 - 8028160: 46bd mov sp, r7 - 8028162: bd80 pop {r7, pc} + 80280c8: bf00 nop + 80280ca: 3720 adds r7, #32 + 80280cc: 46bd mov sp, r7 + 80280ce: bd80 pop {r7, pc} -08028164 : +080280d0 : * Copy an area * @param dest pointer to the destination area * @param src pointer to the source area */ inline static void lv_area_copy(lv_area_t * dest, const lv_area_t * src) { - 8028164: b480 push {r7} - 8028166: b083 sub sp, #12 - 8028168: af00 add r7, sp, #0 - 802816a: 6078 str r0, [r7, #4] - 802816c: 6039 str r1, [r7, #0] + 80280d0: b480 push {r7} + 80280d2: b083 sub sp, #12 + 80280d4: af00 add r7, sp, #0 + 80280d6: 6078 str r0, [r7, #4] + 80280d8: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 802816e: 683b ldr r3, [r7, #0] - 8028170: f9b3 2000 ldrsh.w r2, [r3] - 8028174: 687b ldr r3, [r7, #4] - 8028176: 801a strh r2, [r3, #0] + 80280da: 683b ldr r3, [r7, #0] + 80280dc: f9b3 2000 ldrsh.w r2, [r3] + 80280e0: 687b ldr r3, [r7, #4] + 80280e2: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 8028178: 683b ldr r3, [r7, #0] - 802817a: f9b3 2002 ldrsh.w r2, [r3, #2] - 802817e: 687b ldr r3, [r7, #4] - 8028180: 805a strh r2, [r3, #2] + 80280e4: 683b ldr r3, [r7, #0] + 80280e6: f9b3 2002 ldrsh.w r2, [r3, #2] + 80280ea: 687b ldr r3, [r7, #4] + 80280ec: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 8028182: 683b ldr r3, [r7, #0] - 8028184: f9b3 2004 ldrsh.w r2, [r3, #4] - 8028188: 687b ldr r3, [r7, #4] - 802818a: 809a strh r2, [r3, #4] + 80280ee: 683b ldr r3, [r7, #0] + 80280f0: f9b3 2004 ldrsh.w r2, [r3, #4] + 80280f4: 687b ldr r3, [r7, #4] + 80280f6: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 802818c: 683b ldr r3, [r7, #0] - 802818e: f9b3 2006 ldrsh.w r2, [r3, #6] - 8028192: 687b ldr r3, [r7, #4] - 8028194: 80da strh r2, [r3, #6] + 80280f8: 683b ldr r3, [r7, #0] + 80280fa: f9b3 2006 ldrsh.w r2, [r3, #6] + 80280fe: 687b ldr r3, [r7, #4] + 8028100: 80da strh r2, [r3, #6] } - 8028196: bf00 nop - 8028198: 370c adds r7, #12 - 802819a: 46bd mov sp, r7 - 802819c: bc80 pop {r7} - 802819e: 4770 bx lr + 8028102: bf00 nop + 8028104: 370c adds r7, #12 + 8028106: 46bd mov sp, r7 + 8028108: bc80 pop {r7} + 802810a: 4770 bx lr -080281a0 : +0802810c : static inline lv_coord_t lv_obj_get_style_width(const struct _lv_obj_t * obj, uint32_t part) { - 80281a0: b580 push {r7, lr} - 80281a2: b084 sub sp, #16 - 80281a4: af00 add r7, sp, #0 - 80281a6: 6078 str r0, [r7, #4] - 80281a8: 6039 str r1, [r7, #0] + 802810c: b580 push {r7, lr} + 802810e: b084 sub sp, #16 + 8028110: af00 add r7, sp, #0 + 8028112: 6078 str r0, [r7, #4] + 8028114: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_WIDTH); - 80281aa: f241 0201 movw r2, #4097 ; 0x1001 - 80281ae: 6839 ldr r1, [r7, #0] - 80281b0: 6878 ldr r0, [r7, #4] - 80281b2: f7e5 fdfd bl 800ddb0 - 80281b6: 4603 mov r3, r0 - 80281b8: 60fb str r3, [r7, #12] + 8028116: f241 0201 movw r2, #4097 ; 0x1001 + 802811a: 6839 ldr r1, [r7, #0] + 802811c: 6878 ldr r0, [r7, #4] + 802811e: f7e5 fe11 bl 800dd44 + 8028122: 4603 mov r3, r0 + 8028124: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80281ba: 68fb ldr r3, [r7, #12] - 80281bc: b21b sxth r3, r3 + 8028126: 68fb ldr r3, [r7, #12] + 8028128: b21b sxth r3, r3 } - 80281be: 4618 mov r0, r3 - 80281c0: 3710 adds r7, #16 - 80281c2: 46bd mov sp, r7 - 80281c4: bd80 pop {r7, pc} + 802812a: 4618 mov r0, r3 + 802812c: 3710 adds r7, #16 + 802812e: 46bd mov sp, r7 + 8028130: bd80 pop {r7, pc} -080281c6 : +08028132 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MAX_WIDTH); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_height(const struct _lv_obj_t * obj, uint32_t part) { - 80281c6: b580 push {r7, lr} - 80281c8: b084 sub sp, #16 - 80281ca: af00 add r7, sp, #0 - 80281cc: 6078 str r0, [r7, #4] - 80281ce: 6039 str r1, [r7, #0] + 8028132: b580 push {r7, lr} + 8028134: b084 sub sp, #16 + 8028136: af00 add r7, sp, #0 + 8028138: 6078 str r0, [r7, #4] + 802813a: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_HEIGHT); - 80281d0: f241 0204 movw r2, #4100 ; 0x1004 - 80281d4: 6839 ldr r1, [r7, #0] - 80281d6: 6878 ldr r0, [r7, #4] - 80281d8: f7e5 fdea bl 800ddb0 - 80281dc: 4603 mov r3, r0 - 80281de: 60fb str r3, [r7, #12] + 802813c: f241 0204 movw r2, #4100 ; 0x1004 + 8028140: 6839 ldr r1, [r7, #0] + 8028142: 6878 ldr r0, [r7, #4] + 8028144: f7e5 fdfe bl 800dd44 + 8028148: 4603 mov r3, r0 + 802814a: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80281e0: 68fb ldr r3, [r7, #12] - 80281e2: b21b sxth r3, r3 + 802814c: 68fb ldr r3, [r7, #12] + 802814e: b21b sxth r3, r3 } - 80281e4: 4618 mov r0, r3 - 80281e6: 3710 adds r7, #16 - 80281e8: 46bd mov sp, r7 - 80281ea: bd80 pop {r7, pc} + 8028150: 4618 mov r0, r3 + 8028152: 3710 adds r7, #16 + 8028154: 46bd mov sp, r7 + 8028156: bd80 pop {r7, pc} -080281ec : +08028158 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_ANGLE); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_pad_top(const struct _lv_obj_t * obj, uint32_t part) { - 80281ec: b580 push {r7, lr} - 80281ee: b084 sub sp, #16 - 80281f0: af00 add r7, sp, #0 - 80281f2: 6078 str r0, [r7, #4] - 80281f4: 6039 str r1, [r7, #0] + 8028158: b580 push {r7, lr} + 802815a: b084 sub sp, #16 + 802815c: af00 add r7, sp, #0 + 802815e: 6078 str r0, [r7, #4] + 8028160: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 80281f6: f641 0210 movw r2, #6160 ; 0x1810 - 80281fa: 6839 ldr r1, [r7, #0] - 80281fc: 6878 ldr r0, [r7, #4] - 80281fe: f7e5 fdd7 bl 800ddb0 - 8028202: 4603 mov r3, r0 - 8028204: 60fb str r3, [r7, #12] + 8028162: f641 0210 movw r2, #6160 ; 0x1810 + 8028166: 6839 ldr r1, [r7, #0] + 8028168: 6878 ldr r0, [r7, #4] + 802816a: f7e5 fdeb bl 800dd44 + 802816e: 4603 mov r3, r0 + 8028170: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8028206: 68fb ldr r3, [r7, #12] - 8028208: b21b sxth r3, r3 + 8028172: 68fb ldr r3, [r7, #12] + 8028174: b21b sxth r3, r3 } - 802820a: 4618 mov r0, r3 - 802820c: 3710 adds r7, #16 - 802820e: 46bd mov sp, r7 - 8028210: bd80 pop {r7, pc} + 8028176: 4618 mov r0, r3 + 8028178: 3710 adds r7, #16 + 802817a: 46bd mov sp, r7 + 802817c: bd80 pop {r7, pc} -08028212 : +0802817e : static inline lv_coord_t lv_obj_get_style_pad_bottom(const struct _lv_obj_t * obj, uint32_t part) { - 8028212: b580 push {r7, lr} - 8028214: b084 sub sp, #16 - 8028216: af00 add r7, sp, #0 - 8028218: 6078 str r0, [r7, #4] - 802821a: 6039 str r1, [r7, #0] + 802817e: b580 push {r7, lr} + 8028180: b084 sub sp, #16 + 8028182: af00 add r7, sp, #0 + 8028184: 6078 str r0, [r7, #4] + 8028186: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); - 802821c: f641 0211 movw r2, #6161 ; 0x1811 - 8028220: 6839 ldr r1, [r7, #0] - 8028222: 6878 ldr r0, [r7, #4] - 8028224: f7e5 fdc4 bl 800ddb0 - 8028228: 4603 mov r3, r0 - 802822a: 60fb str r3, [r7, #12] + 8028188: f641 0211 movw r2, #6161 ; 0x1811 + 802818c: 6839 ldr r1, [r7, #0] + 802818e: 6878 ldr r0, [r7, #4] + 8028190: f7e5 fdd8 bl 800dd44 + 8028194: 4603 mov r3, r0 + 8028196: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 802822c: 68fb ldr r3, [r7, #12] - 802822e: b21b sxth r3, r3 + 8028198: 68fb ldr r3, [r7, #12] + 802819a: b21b sxth r3, r3 } - 8028230: 4618 mov r0, r3 - 8028232: 3710 adds r7, #16 - 8028234: 46bd mov sp, r7 - 8028236: bd80 pop {r7, pc} + 802819c: 4618 mov r0, r3 + 802819e: 3710 adds r7, #16 + 80281a0: 46bd mov sp, r7 + 80281a2: bd80 pop {r7, pc} -08028238 : +080281a4 : static inline lv_coord_t lv_obj_get_style_pad_left(const struct _lv_obj_t * obj, uint32_t part) { - 8028238: b580 push {r7, lr} - 802823a: b084 sub sp, #16 - 802823c: af00 add r7, sp, #0 - 802823e: 6078 str r0, [r7, #4] - 8028240: 6039 str r1, [r7, #0] + 80281a4: b580 push {r7, lr} + 80281a6: b084 sub sp, #16 + 80281a8: af00 add r7, sp, #0 + 80281aa: 6078 str r0, [r7, #4] + 80281ac: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 8028242: f641 0212 movw r2, #6162 ; 0x1812 - 8028246: 6839 ldr r1, [r7, #0] - 8028248: 6878 ldr r0, [r7, #4] - 802824a: f7e5 fdb1 bl 800ddb0 - 802824e: 4603 mov r3, r0 - 8028250: 60fb str r3, [r7, #12] + 80281ae: f641 0212 movw r2, #6162 ; 0x1812 + 80281b2: 6839 ldr r1, [r7, #0] + 80281b4: 6878 ldr r0, [r7, #4] + 80281b6: f7e5 fdc5 bl 800dd44 + 80281ba: 4603 mov r3, r0 + 80281bc: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8028252: 68fb ldr r3, [r7, #12] - 8028254: b21b sxth r3, r3 + 80281be: 68fb ldr r3, [r7, #12] + 80281c0: b21b sxth r3, r3 } - 8028256: 4618 mov r0, r3 - 8028258: 3710 adds r7, #16 - 802825a: 46bd mov sp, r7 - 802825c: bd80 pop {r7, pc} + 80281c2: 4618 mov r0, r3 + 80281c4: 3710 adds r7, #16 + 80281c6: 46bd mov sp, r7 + 80281c8: bd80 pop {r7, pc} -0802825e : +080281ca : static inline lv_coord_t lv_obj_get_style_pad_right(const struct _lv_obj_t * obj, uint32_t part) { - 802825e: b580 push {r7, lr} - 8028260: b084 sub sp, #16 - 8028262: af00 add r7, sp, #0 - 8028264: 6078 str r0, [r7, #4] - 8028266: 6039 str r1, [r7, #0] + 80281ca: b580 push {r7, lr} + 80281cc: b084 sub sp, #16 + 80281ce: af00 add r7, sp, #0 + 80281d0: 6078 str r0, [r7, #4] + 80281d2: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - 8028268: f641 0213 movw r2, #6163 ; 0x1813 - 802826c: 6839 ldr r1, [r7, #0] - 802826e: 6878 ldr r0, [r7, #4] - 8028270: f7e5 fd9e bl 800ddb0 - 8028274: 4603 mov r3, r0 - 8028276: 60fb str r3, [r7, #12] + 80281d4: f641 0213 movw r2, #6163 ; 0x1813 + 80281d8: 6839 ldr r1, [r7, #0] + 80281da: 6878 ldr r0, [r7, #4] + 80281dc: f7e5 fdb2 bl 800dd44 + 80281e0: 4603 mov r3, r0 + 80281e2: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8028278: 68fb ldr r3, [r7, #12] - 802827a: b21b sxth r3, r3 + 80281e4: 68fb ldr r3, [r7, #12] + 80281e6: b21b sxth r3, r3 } - 802827c: 4618 mov r0, r3 - 802827e: 3710 adds r7, #16 - 8028280: 46bd mov sp, r7 - 8028282: bd80 pop {r7, pc} + 80281e8: 4618 mov r0, r3 + 80281ea: 3710 adds r7, #16 + 80281ec: 46bd mov sp, r7 + 80281ee: bd80 pop {r7, pc} -08028284 : +080281f0 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_ROW); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_pad_column(const struct _lv_obj_t * obj, uint32_t part) +{ + 80281f0: b580 push {r7, lr} + 80281f2: b084 sub sp, #16 + 80281f4: af00 add r7, sp, #0 + 80281f6: 6078 str r0, [r7, #4] + 80281f8: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_COLUMN); + 80281fa: f641 0215 movw r2, #6165 ; 0x1815 + 80281fe: 6839 ldr r1, [r7, #0] + 8028200: 6878 ldr r0, [r7, #4] + 8028202: f7e5 fd9f bl 800dd44 + 8028206: 4603 mov r3, r0 + 8028208: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 802820a: 68fb ldr r3, [r7, #12] + 802820c: b21b sxth r3, r3 +} + 802820e: 4618 mov r0, r3 + 8028210: 3710 adds r7, #16 + 8028212: 46bd mov sp, r7 + 8028214: bd80 pop {r7, pc} + +08028216 : + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_COLOR_FILTERED); + return v.color; +} + +static inline lv_opa_t lv_obj_get_style_border_opa(const struct _lv_obj_t * obj, uint32_t part) +{ + 8028216: b580 push {r7, lr} + 8028218: b084 sub sp, #16 + 802821a: af00 add r7, sp, #0 + 802821c: 6078 str r0, [r7, #4] + 802821e: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_OPA); + 8028220: 2231 movs r2, #49 ; 0x31 + 8028222: 6839 ldr r1, [r7, #0] + 8028224: 6878 ldr r0, [r7, #4] + 8028226: f7e5 fd8d bl 800dd44 + 802822a: 4603 mov r3, r0 + 802822c: 60fb str r3, [r7, #12] + return (lv_opa_t)v.num; + 802822e: 68fb ldr r3, [r7, #12] + 8028230: b2db uxtb r3, r3 +} + 8028232: 4618 mov r0, r3 + 8028234: 3710 adds r7, #16 + 8028236: 46bd mov sp, r7 + 8028238: bd80 pop {r7, pc} + +0802823a : + +static inline lv_coord_t lv_obj_get_style_border_width(const struct _lv_obj_t * obj, uint32_t part) +{ + 802823a: b580 push {r7, lr} + 802823c: b084 sub sp, #16 + 802823e: af00 add r7, sp, #0 + 8028240: 6078 str r0, [r7, #4] + 8028242: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); + 8028244: f241 0232 movw r2, #4146 ; 0x1032 + 8028248: 6839 ldr r1, [r7, #0] + 802824a: 6878 ldr r0, [r7, #4] + 802824c: f7e5 fd7a bl 800dd44 + 8028250: 4603 mov r3, r0 + 8028252: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 8028254: 68fb ldr r3, [r7, #12] + 8028256: b21b sxth r3, r3 +} + 8028258: 4618 mov r0, r3 + 802825a: 3710 adds r7, #16 + 802825c: 46bd mov sp, r7 + 802825e: bd80 pop {r7, pc} + +08028260 : + +static inline lv_border_side_t lv_obj_get_style_border_side(const struct _lv_obj_t * obj, uint32_t part) +{ + 8028260: b580 push {r7, lr} + 8028262: b084 sub sp, #16 + 8028264: af00 add r7, sp, #0 + 8028266: 6078 str r0, [r7, #4] + 8028268: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_SIDE); + 802826a: 2233 movs r2, #51 ; 0x33 + 802826c: 6839 ldr r1, [r7, #0] + 802826e: 6878 ldr r0, [r7, #4] + 8028270: f7e5 fd68 bl 800dd44 + 8028274: 4603 mov r3, r0 + 8028276: 60fb str r3, [r7, #12] + return (lv_border_side_t)v.num; + 8028278: 68fb ldr r3, [r7, #12] + 802827a: b2db uxtb r3, r3 +} + 802827c: 4618 mov r0, r3 + 802827e: 3710 adds r7, #16 + 8028280: 46bd mov sp, r7 + 8028282: bd80 pop {r7, pc} + +08028284 : + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_IMG_RECOLOR_OPA); + return (lv_opa_t)v.num; +} + +static inline lv_coord_t lv_obj_get_style_line_width(const struct _lv_obj_t * obj, uint32_t part) { 8028284: b580 push {r7, lr} 8028286: b084 sub sp, #16 8028288: af00 add r7, sp, #0 802828a: 6078 str r0, [r7, #4] 802828c: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_COLUMN); - 802828e: f641 0215 movw r2, #6165 ; 0x1815 + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_WIDTH); + 802828e: f640 0249 movw r2, #2121 ; 0x849 8028292: 6839 ldr r1, [r7, #0] 8028294: 6878 ldr r0, [r7, #4] - 8028296: f7e5 fd8b bl 800ddb0 + 8028296: f7e5 fd55 bl 800dd44 802829a: 4603 mov r3, r0 802829c: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; @@ -90016,15983 +90043,15958 @@ static inline lv_coord_t lv_obj_get_style_pad_column(const struct _lv_obj_t * ob 80282a6: 46bd mov sp, r7 80282a8: bd80 pop {r7, pc} -080282aa : - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_COLOR_FILTERED); - return v.color; -} - -static inline lv_opa_t lv_obj_get_style_border_opa(const struct _lv_obj_t * obj, uint32_t part) -{ - 80282aa: b580 push {r7, lr} - 80282ac: b084 sub sp, #16 - 80282ae: af00 add r7, sp, #0 - 80282b0: 6078 str r0, [r7, #4] - 80282b2: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_OPA); - 80282b4: 2231 movs r2, #49 ; 0x31 - 80282b6: 6839 ldr r1, [r7, #0] - 80282b8: 6878 ldr r0, [r7, #4] - 80282ba: f7e5 fd79 bl 800ddb0 - 80282be: 4603 mov r3, r0 - 80282c0: 60fb str r3, [r7, #12] - return (lv_opa_t)v.num; - 80282c2: 68fb ldr r3, [r7, #12] - 80282c4: b2db uxtb r3, r3 -} - 80282c6: 4618 mov r0, r3 - 80282c8: 3710 adds r7, #16 - 80282ca: 46bd mov sp, r7 - 80282cc: bd80 pop {r7, pc} - -080282ce : - -static inline lv_coord_t lv_obj_get_style_border_width(const struct _lv_obj_t * obj, uint32_t part) -{ - 80282ce: b580 push {r7, lr} - 80282d0: b084 sub sp, #16 - 80282d2: af00 add r7, sp, #0 - 80282d4: 6078 str r0, [r7, #4] - 80282d6: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); - 80282d8: f241 0232 movw r2, #4146 ; 0x1032 - 80282dc: 6839 ldr r1, [r7, #0] - 80282de: 6878 ldr r0, [r7, #4] - 80282e0: f7e5 fd66 bl 800ddb0 - 80282e4: 4603 mov r3, r0 - 80282e6: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 80282e8: 68fb ldr r3, [r7, #12] - 80282ea: b21b sxth r3, r3 -} - 80282ec: 4618 mov r0, r3 - 80282ee: 3710 adds r7, #16 - 80282f0: 46bd mov sp, r7 - 80282f2: bd80 pop {r7, pc} - -080282f4 : - -static inline lv_border_side_t lv_obj_get_style_border_side(const struct _lv_obj_t * obj, uint32_t part) -{ - 80282f4: b580 push {r7, lr} - 80282f6: b084 sub sp, #16 - 80282f8: af00 add r7, sp, #0 - 80282fa: 6078 str r0, [r7, #4] - 80282fc: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_SIDE); - 80282fe: 2233 movs r2, #51 ; 0x33 - 8028300: 6839 ldr r1, [r7, #0] - 8028302: 6878 ldr r0, [r7, #4] - 8028304: f7e5 fd54 bl 800ddb0 - 8028308: 4603 mov r3, r0 - 802830a: 60fb str r3, [r7, #12] - return (lv_border_side_t)v.num; - 802830c: 68fb ldr r3, [r7, #12] - 802830e: b2db uxtb r3, r3 -} - 8028310: 4618 mov r0, r3 - 8028312: 3710 adds r7, #16 - 8028314: 46bd mov sp, r7 - 8028316: bd80 pop {r7, pc} - -08028318 : - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_IMG_RECOLOR_OPA); - return (lv_opa_t)v.num; -} - -static inline lv_coord_t lv_obj_get_style_line_width(const struct _lv_obj_t * obj, uint32_t part) -{ - 8028318: b580 push {r7, lr} - 802831a: b084 sub sp, #16 - 802831c: af00 add r7, sp, #0 - 802831e: 6078 str r0, [r7, #4] - 8028320: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_WIDTH); - 8028322: f640 0249 movw r2, #2121 ; 0x849 - 8028326: 6839 ldr r1, [r7, #0] - 8028328: 6878 ldr r0, [r7, #4] - 802832a: f7e5 fd41 bl 800ddb0 - 802832e: 4603 mov r3, r0 - 8028330: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 8028332: 68fb ldr r3, [r7, #12] - 8028334: b21b sxth r3, r3 -} - 8028336: 4618 mov r0, r3 - 8028338: 3710 adds r7, #16 - 802833a: 46bd mov sp, r7 - 802833c: bd80 pop {r7, pc} - -0802833e : +080282aa : return ser->start_point; } void lv_chart_get_point_pos_by_id(lv_obj_t * obj, lv_chart_series_t * ser, uint16_t id, lv_point_t * p_out) { - 802833e: b580 push {r7, lr} - 8028340: b090 sub sp, #64 ; 0x40 - 8028342: af02 add r7, sp, #8 - 8028344: 60f8 str r0, [r7, #12] - 8028346: 60b9 str r1, [r7, #8] - 8028348: 603b str r3, [r7, #0] - 802834a: 4613 mov r3, r2 - 802834c: 80fb strh r3, [r7, #6] + 80282aa: b580 push {r7, lr} + 80282ac: b090 sub sp, #64 ; 0x40 + 80282ae: af02 add r7, sp, #8 + 80282b0: 60f8 str r0, [r7, #12] + 80282b2: 60b9 str r1, [r7, #8] + 80282b4: 603b str r3, [r7, #0] + 80282b6: 4613 mov r3, r2 + 80282b8: 80fb strh r3, [r7, #6] LV_ASSERT_NULL(obj); - 802834e: 68fb ldr r3, [r7, #12] - 8028350: 2b00 cmp r3, #0 - 8028352: d100 bne.n 8028356 - 8028354: e7fe b.n 8028354 + 80282ba: 68fb ldr r3, [r7, #12] + 80282bc: 2b00 cmp r3, #0 + 80282be: d100 bne.n 80282c2 + 80282c0: e7fe b.n 80282c0 LV_ASSERT_NULL(ser); - 8028356: 68bb ldr r3, [r7, #8] - 8028358: 2b00 cmp r3, #0 - 802835a: d100 bne.n 802835e - 802835c: e7fe b.n 802835c + 80282c2: 68bb ldr r3, [r7, #8] + 80282c4: 2b00 cmp r3, #0 + 80282c6: d100 bne.n 80282ca + 80282c8: e7fe b.n 80282c8 LV_ASSERT_OBJ(obj, MY_CLASS); lv_chart_t * chart = (lv_chart_t *)obj; - 802835e: 68fb ldr r3, [r7, #12] - 8028360: 633b str r3, [r7, #48] ; 0x30 + 80282ca: 68fb ldr r3, [r7, #12] + 80282cc: 633b str r3, [r7, #48] ; 0x30 if(id >= chart->point_cnt) { - 8028362: 6b3b ldr r3, [r7, #48] ; 0x30 - 8028364: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 8028368: 88fa ldrh r2, [r7, #6] - 802836a: 429a cmp r2, r3 - 802836c: d306 bcc.n 802837c + 80282ce: 6b3b ldr r3, [r7, #48] ; 0x30 + 80282d0: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 80282d4: 88fa ldrh r2, [r7, #6] + 80282d6: 429a cmp r2, r3 + 80282d8: d306 bcc.n 80282e8 LV_LOG_WARN("Invalid index: %d", id); p_out->x = 0; - 802836e: 683b ldr r3, [r7, #0] - 8028370: 2200 movs r2, #0 - 8028372: 801a strh r2, [r3, #0] + 80282da: 683b ldr r3, [r7, #0] + 80282dc: 2200 movs r2, #0 + 80282de: 801a strh r2, [r3, #0] p_out->y = 0; - 8028374: 683b ldr r3, [r7, #0] - 8028376: 2200 movs r2, #0 - 8028378: 805a strh r2, [r3, #2] + 80282e0: 683b ldr r3, [r7, #0] + 80282e2: 2200 movs r2, #0 + 80282e4: 805a strh r2, [r3, #2] return; - 802837a: e168 b.n 802864e + 80282e6: e168 b.n 80285ba } lv_coord_t w = ((int32_t)lv_obj_get_content_width(obj) * chart->zoom_x) >> 8; - 802837c: 68f8 ldr r0, [r7, #12] - 802837e: f7e1 feff bl 800a180 - 8028382: 4603 mov r3, r0 - 8028384: 461a mov r2, r3 - 8028386: 6b3b ldr r3, [r7, #48] ; 0x30 - 8028388: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 - 802838c: fb02 f303 mul.w r3, r2, r3 - 8028390: 121b asrs r3, r3, #8 - 8028392: 85fb strh r3, [r7, #46] ; 0x2e + 80282e8: 68f8 ldr r0, [r7, #12] + 80282ea: f7e1 ff13 bl 800a114 + 80282ee: 4603 mov r3, r0 + 80282f0: 461a mov r2, r3 + 80282f2: 6b3b ldr r3, [r7, #48] ; 0x30 + 80282f4: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 + 80282f8: fb02 f303 mul.w r3, r2, r3 + 80282fc: 121b asrs r3, r3, #8 + 80282fe: 85fb strh r3, [r7, #46] ; 0x2e lv_coord_t h = ((int32_t)lv_obj_get_content_height(obj) * chart->zoom_y) >> 8; - 8028394: 68f8 ldr r0, [r7, #12] - 8028396: f7e1 ff1e bl 800a1d6 - 802839a: 4603 mov r3, r0 - 802839c: 461a mov r2, r3 - 802839e: 6b3b ldr r3, [r7, #48] ; 0x30 - 80283a0: f8b3 3086 ldrh.w r3, [r3, #134] ; 0x86 - 80283a4: fb02 f303 mul.w r3, r2, r3 - 80283a8: 121b asrs r3, r3, #8 - 80283aa: 85bb strh r3, [r7, #44] ; 0x2c + 8028300: 68f8 ldr r0, [r7, #12] + 8028302: f7e1 ff32 bl 800a16a + 8028306: 4603 mov r3, r0 + 8028308: 461a mov r2, r3 + 802830a: 6b3b ldr r3, [r7, #48] ; 0x30 + 802830c: f8b3 3086 ldrh.w r3, [r3, #134] ; 0x86 + 8028310: fb02 f303 mul.w r3, r2, r3 + 8028314: 121b asrs r3, r3, #8 + 8028316: 85bb strh r3, [r7, #44] ; 0x2c if(chart->type == LV_CHART_TYPE_LINE) { - 80283ac: 6b3b ldr r3, [r7, #48] ; 0x30 - 80283ae: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 80283b2: f003 0307 and.w r3, r3, #7 - 80283b6: b2db uxtb r3, r3 - 80283b8: 2b01 cmp r3, #1 - 80283ba: d10e bne.n 80283da + 8028318: 6b3b ldr r3, [r7, #48] ; 0x30 + 802831a: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 802831e: f003 0307 and.w r3, r3, #7 + 8028322: b2db uxtb r3, r3 + 8028324: 2b01 cmp r3, #1 + 8028326: d10e bne.n 8028346 p_out->x = (w * id) / (chart->point_cnt - 1); - 80283bc: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 80283c0: 88fa ldrh r2, [r7, #6] - 80283c2: fb03 f202 mul.w r2, r3, r2 - 80283c6: 6b3b ldr r3, [r7, #48] ; 0x30 - 80283c8: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 80283cc: 3b01 subs r3, #1 - 80283ce: fb92 f3f3 sdiv r3, r2, r3 - 80283d2: b21a sxth r2, r3 - 80283d4: 683b ldr r3, [r7, #0] - 80283d6: 801a strh r2, [r3, #0] - 80283d8: e0b1 b.n 802853e + 8028328: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 802832c: 88fa ldrh r2, [r7, #6] + 802832e: fb03 f202 mul.w r2, r3, r2 + 8028332: 6b3b ldr r3, [r7, #48] ; 0x30 + 8028334: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 8028338: 3b01 subs r3, #1 + 802833a: fb92 f3f3 sdiv r3, r2, r3 + 802833e: b21a sxth r2, r3 + 8028340: 683b ldr r3, [r7, #0] + 8028342: 801a strh r2, [r3, #0] + 8028344: e0b1 b.n 80284aa } else if(chart->type == LV_CHART_TYPE_SCATTER) { - 80283da: 6b3b ldr r3, [r7, #48] ; 0x30 - 80283dc: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 80283e0: f003 0307 and.w r3, r3, #7 - 80283e4: b2db uxtb r3, r3 - 80283e6: 2b03 cmp r3, #3 - 80283e8: d129 bne.n 802843e + 8028346: 6b3b ldr r3, [r7, #48] ; 0x30 + 8028348: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 802834c: f003 0307 and.w r3, r3, #7 + 8028350: b2db uxtb r3, r3 + 8028352: 2b03 cmp r3, #3 + 8028354: d129 bne.n 80283aa p_out->x = lv_map(ser->x_points[id], chart->xmin[ser->x_axis_sec], chart->xmax[ser->x_axis_sec], 0, w); - 80283ea: 68bb ldr r3, [r7, #8] - 80283ec: 681a ldr r2, [r3, #0] - 80283ee: 88fb ldrh r3, [r7, #6] - 80283f0: 005b lsls r3, r3, #1 - 80283f2: 4413 add r3, r2 - 80283f4: f9b3 3000 ldrsh.w r3, [r3] - 80283f8: 4618 mov r0, r3 - 80283fa: 68bb ldr r3, [r7, #8] - 80283fc: 7b1b ldrb r3, [r3, #12] - 80283fe: f3c3 03c0 ubfx r3, r3, #3, #1 - 8028402: b2db uxtb r3, r3 - 8028404: 6b3a ldr r2, [r7, #48] ; 0x30 - 8028406: 3338 adds r3, #56 ; 0x38 - 8028408: 005b lsls r3, r3, #1 - 802840a: 4413 add r3, r2 - 802840c: f9b3 3004 ldrsh.w r3, [r3, #4] - 8028410: 4619 mov r1, r3 - 8028412: 68bb ldr r3, [r7, #8] - 8028414: 7b1b ldrb r3, [r3, #12] - 8028416: f3c3 03c0 ubfx r3, r3, #3, #1 - 802841a: b2db uxtb r3, r3 - 802841c: 461a mov r2, r3 - 802841e: 6b3b ldr r3, [r7, #48] ; 0x30 - 8028420: 323c adds r2, #60 ; 0x3c - 8028422: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] - 8028426: 461a mov r2, r3 - 8028428: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 802842c: 9300 str r3, [sp, #0] - 802842e: 2300 movs r3, #0 - 8028430: f00a f9f7 bl 8032822 - 8028434: 4603 mov r3, r0 - 8028436: b21a sxth r2, r3 - 8028438: 683b ldr r3, [r7, #0] - 802843a: 801a strh r2, [r3, #0] - 802843c: e07f b.n 802853e + 8028356: 68bb ldr r3, [r7, #8] + 8028358: 681a ldr r2, [r3, #0] + 802835a: 88fb ldrh r3, [r7, #6] + 802835c: 005b lsls r3, r3, #1 + 802835e: 4413 add r3, r2 + 8028360: f9b3 3000 ldrsh.w r3, [r3] + 8028364: 4618 mov r0, r3 + 8028366: 68bb ldr r3, [r7, #8] + 8028368: 7b1b ldrb r3, [r3, #12] + 802836a: f3c3 03c0 ubfx r3, r3, #3, #1 + 802836e: b2db uxtb r3, r3 + 8028370: 6b3a ldr r2, [r7, #48] ; 0x30 + 8028372: 3338 adds r3, #56 ; 0x38 + 8028374: 005b lsls r3, r3, #1 + 8028376: 4413 add r3, r2 + 8028378: f9b3 3004 ldrsh.w r3, [r3, #4] + 802837c: 4619 mov r1, r3 + 802837e: 68bb ldr r3, [r7, #8] + 8028380: 7b1b ldrb r3, [r3, #12] + 8028382: f3c3 03c0 ubfx r3, r3, #3, #1 + 8028386: b2db uxtb r3, r3 + 8028388: 461a mov r2, r3 + 802838a: 6b3b ldr r3, [r7, #48] ; 0x30 + 802838c: 323c adds r2, #60 ; 0x3c + 802838e: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] + 8028392: 461a mov r2, r3 + 8028394: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 8028398: 9300 str r3, [sp, #0] + 802839a: 2300 movs r3, #0 + 802839c: f00a f9f7 bl 803278e + 80283a0: 4603 mov r3, r0 + 80283a2: b21a sxth r2, r3 + 80283a4: 683b ldr r3, [r7, #0] + 80283a6: 801a strh r2, [r3, #0] + 80283a8: e07f b.n 80284aa } else if(chart->type == LV_CHART_TYPE_BAR) { - 802843e: 6b3b ldr r3, [r7, #48] ; 0x30 - 8028440: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 8028444: f003 0307 and.w r3, r3, #7 - 8028448: b2db uxtb r3, r3 - 802844a: 2b02 cmp r3, #2 - 802844c: d177 bne.n 802853e + 80283aa: 6b3b ldr r3, [r7, #48] ; 0x30 + 80283ac: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 80283b0: f003 0307 and.w r3, r3, #7 + 80283b4: b2db uxtb r3, r3 + 80283b6: 2b02 cmp r3, #2 + 80283b8: d177 bne.n 80284aa uint32_t ser_cnt = _lv_ll_get_len(&chart->series_ll); - 802844e: 6b3b ldr r3, [r7, #48] ; 0x30 - 8028450: 3324 adds r3, #36 ; 0x24 - 8028452: 4618 mov r0, r3 - 8028454: f009 ffc9 bl 80323ea <_lv_ll_get_len> - 8028458: 62b8 str r0, [r7, #40] ; 0x28 + 80283ba: 6b3b ldr r3, [r7, #48] ; 0x30 + 80283bc: 3324 adds r3, #36 ; 0x24 + 80283be: 4618 mov r0, r3 + 80283c0: f009 ffc9 bl 8032356 <_lv_ll_get_len> + 80283c4: 62b8 str r0, [r7, #40] ; 0x28 int32_t ser_gap = ((int32_t)lv_obj_get_style_pad_column(obj, - 802845a: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 802845e: 68f8 ldr r0, [r7, #12] - 8028460: f7ff ff10 bl 8028284 - 8028464: 4603 mov r3, r0 - 8028466: 461a mov r2, r3 + 80283c6: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 80283ca: 68f8 ldr r0, [r7, #12] + 80283cc: f7ff ff10 bl 80281f0 + 80283d0: 4603 mov r3, r0 + 80283d2: 461a mov r2, r3 LV_PART_ITEMS) * chart->zoom_x) >> 8; /*Gap between the column on the ~same X*/ - 8028468: 6b3b ldr r3, [r7, #48] ; 0x30 - 802846a: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 - 802846e: fb02 f303 mul.w r3, r2, r3 + 80283d4: 6b3b ldr r3, [r7, #48] ; 0x30 + 80283d6: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 + 80283da: fb02 f303 mul.w r3, r2, r3 int32_t ser_gap = ((int32_t)lv_obj_get_style_pad_column(obj, - 8028472: 121b asrs r3, r3, #8 - 8028474: 627b str r3, [r7, #36] ; 0x24 + 80283de: 121b asrs r3, r3, #8 + 80283e0: 627b str r3, [r7, #36] ; 0x24 int32_t block_gap = ((int32_t)lv_obj_get_style_pad_column(obj, - 8028476: 2100 movs r1, #0 - 8028478: 68f8 ldr r0, [r7, #12] - 802847a: f7ff ff03 bl 8028284 - 802847e: 4603 mov r3, r0 - 8028480: 461a mov r2, r3 + 80283e2: 2100 movs r1, #0 + 80283e4: 68f8 ldr r0, [r7, #12] + 80283e6: f7ff ff03 bl 80281f0 + 80283ea: 4603 mov r3, r0 + 80283ec: 461a mov r2, r3 LV_PART_MAIN) * chart->zoom_x) >> 8; /*Gap between the column on ~adjacent X*/ - 8028482: 6b3b ldr r3, [r7, #48] ; 0x30 - 8028484: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 - 8028488: fb02 f303 mul.w r3, r2, r3 + 80283ee: 6b3b ldr r3, [r7, #48] ; 0x30 + 80283f0: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 + 80283f4: fb02 f303 mul.w r3, r2, r3 int32_t block_gap = ((int32_t)lv_obj_get_style_pad_column(obj, - 802848c: 121b asrs r3, r3, #8 - 802848e: 623b str r3, [r7, #32] + 80283f8: 121b asrs r3, r3, #8 + 80283fa: 623b str r3, [r7, #32] lv_coord_t block_w = (w - ((chart->point_cnt - 1) * block_gap)) / chart->point_cnt; - 8028490: f9b7 202e ldrsh.w r2, [r7, #46] ; 0x2e - 8028494: 6b3b ldr r3, [r7, #48] ; 0x30 - 8028496: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 802849a: 3b01 subs r3, #1 - 802849c: 6a39 ldr r1, [r7, #32] - 802849e: fb01 f303 mul.w r3, r1, r3 - 80284a2: 1ad3 subs r3, r2, r3 - 80284a4: 6b3a ldr r2, [r7, #48] ; 0x30 - 80284a6: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 - 80284aa: fb93 f3f2 sdiv r3, r3, r2 - 80284ae: 83fb strh r3, [r7, #30] + 80283fc: f9b7 202e ldrsh.w r2, [r7, #46] ; 0x2e + 8028400: 6b3b ldr r3, [r7, #48] ; 0x30 + 8028402: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 8028406: 3b01 subs r3, #1 + 8028408: 6a39 ldr r1, [r7, #32] + 802840a: fb01 f303 mul.w r3, r1, r3 + 802840e: 1ad3 subs r3, r2, r3 + 8028410: 6b3a ldr r2, [r7, #48] ; 0x30 + 8028412: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 + 8028416: fb93 f3f2 sdiv r3, r3, r2 + 802841a: 83fb strh r3, [r7, #30] lv_coord_t col_w = block_w / ser_cnt; - 80284b0: f9b7 201e ldrsh.w r2, [r7, #30] - 80284b4: 6abb ldr r3, [r7, #40] ; 0x28 - 80284b6: fbb2 f3f3 udiv r3, r2, r3 - 80284ba: 83bb strh r3, [r7, #28] + 802841c: f9b7 201e ldrsh.w r2, [r7, #30] + 8028420: 6abb ldr r3, [r7, #40] ; 0x28 + 8028422: fbb2 f3f3 udiv r3, r2, r3 + 8028426: 83bb strh r3, [r7, #28] p_out->x = (int32_t)((int32_t)w * id) / chart->point_cnt; - 80284bc: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 80284c0: 88fa ldrh r2, [r7, #6] - 80284c2: fb02 f303 mul.w r3, r2, r3 - 80284c6: 6b3a ldr r2, [r7, #48] ; 0x30 - 80284c8: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 - 80284cc: fb93 f3f2 sdiv r3, r3, r2 - 80284d0: b21a sxth r2, r3 - 80284d2: 683b ldr r3, [r7, #0] - 80284d4: 801a strh r2, [r3, #0] + 8028428: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 802842c: 88fa ldrh r2, [r7, #6] + 802842e: fb02 f303 mul.w r3, r2, r3 + 8028432: 6b3a ldr r2, [r7, #48] ; 0x30 + 8028434: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 + 8028438: fb93 f3f2 sdiv r3, r3, r2 + 802843c: b21a sxth r2, r3 + 802843e: 683b ldr r3, [r7, #0] + 8028440: 801a strh r2, [r3, #0] lv_chart_series_t * ser_i = NULL; - 80284d6: 2300 movs r3, #0 - 80284d8: 637b str r3, [r7, #52] ; 0x34 + 8028442: 2300 movs r3, #0 + 8028444: 637b str r3, [r7, #52] ; 0x34 _LV_LL_READ_BACK(&chart->series_ll, ser_i) { - 80284da: 6b3b ldr r3, [r7, #48] ; 0x30 - 80284dc: 3324 adds r3, #36 ; 0x24 - 80284de: 4618 mov r0, r3 - 80284e0: f009 ff4c bl 803237c <_lv_ll_get_tail> - 80284e4: 6378 str r0, [r7, #52] ; 0x34 - 80284e6: e014 b.n 8028512 + 8028446: 6b3b ldr r3, [r7, #48] ; 0x30 + 8028448: 3324 adds r3, #36 ; 0x24 + 802844a: 4618 mov r0, r3 + 802844c: f009 ff4c bl 80322e8 <_lv_ll_get_tail> + 8028450: 6378 str r0, [r7, #52] ; 0x34 + 8028452: e014 b.n 802847e if(ser_i == ser) break; - 80284e8: 6b7a ldr r2, [r7, #52] ; 0x34 - 80284ea: 68bb ldr r3, [r7, #8] - 80284ec: 429a cmp r2, r3 - 80284ee: d014 beq.n 802851a + 8028454: 6b7a ldr r2, [r7, #52] ; 0x34 + 8028456: 68bb ldr r3, [r7, #8] + 8028458: 429a cmp r2, r3 + 802845a: d014 beq.n 8028486 p_out->x += col_w; - 80284f0: 683b ldr r3, [r7, #0] - 80284f2: f9b3 3000 ldrsh.w r3, [r3] - 80284f6: b29a uxth r2, r3 - 80284f8: 8bbb ldrh r3, [r7, #28] - 80284fa: 4413 add r3, r2 - 80284fc: b29b uxth r3, r3 - 80284fe: b21a sxth r2, r3 - 8028500: 683b ldr r3, [r7, #0] - 8028502: 801a strh r2, [r3, #0] + 802845c: 683b ldr r3, [r7, #0] + 802845e: f9b3 3000 ldrsh.w r3, [r3] + 8028462: b29a uxth r2, r3 + 8028464: 8bbb ldrh r3, [r7, #28] + 8028466: 4413 add r3, r2 + 8028468: b29b uxth r3, r3 + 802846a: b21a sxth r2, r3 + 802846c: 683b ldr r3, [r7, #0] + 802846e: 801a strh r2, [r3, #0] _LV_LL_READ_BACK(&chart->series_ll, ser_i) { - 8028504: 6b3b ldr r3, [r7, #48] ; 0x30 - 8028506: 3324 adds r3, #36 ; 0x24 - 8028508: 6b79 ldr r1, [r7, #52] ; 0x34 - 802850a: 4618 mov r0, r3 - 802850c: f009 ff5a bl 80323c4 <_lv_ll_get_prev> - 8028510: 6378 str r0, [r7, #52] ; 0x34 - 8028512: 6b7b ldr r3, [r7, #52] ; 0x34 - 8028514: 2b00 cmp r3, #0 - 8028516: d1e7 bne.n 80284e8 - 8028518: e000 b.n 802851c + 8028470: 6b3b ldr r3, [r7, #48] ; 0x30 + 8028472: 3324 adds r3, #36 ; 0x24 + 8028474: 6b79 ldr r1, [r7, #52] ; 0x34 + 8028476: 4618 mov r0, r3 + 8028478: f009 ff5a bl 8032330 <_lv_ll_get_prev> + 802847c: 6378 str r0, [r7, #52] ; 0x34 + 802847e: 6b7b ldr r3, [r7, #52] ; 0x34 + 8028480: 2b00 cmp r3, #0 + 8028482: d1e7 bne.n 8028454 + 8028484: e000 b.n 8028488 if(ser_i == ser) break; - 802851a: bf00 nop + 8028486: bf00 nop } p_out->x += (col_w - ser_gap) / 2; - 802851c: 683b ldr r3, [r7, #0] - 802851e: f9b3 3000 ldrsh.w r3, [r3] - 8028522: b29a uxth r2, r3 - 8028524: f9b7 101c ldrsh.w r1, [r7, #28] - 8028528: 6a7b ldr r3, [r7, #36] ; 0x24 - 802852a: 1acb subs r3, r1, r3 - 802852c: 0fd9 lsrs r1, r3, #31 - 802852e: 440b add r3, r1 - 8028530: 105b asrs r3, r3, #1 - 8028532: b29b uxth r3, r3 - 8028534: 4413 add r3, r2 - 8028536: b29b uxth r3, r3 - 8028538: b21a sxth r2, r3 - 802853a: 683b ldr r3, [r7, #0] - 802853c: 801a strh r2, [r3, #0] + 8028488: 683b ldr r3, [r7, #0] + 802848a: f9b3 3000 ldrsh.w r3, [r3] + 802848e: b29a uxth r2, r3 + 8028490: f9b7 101c ldrsh.w r1, [r7, #28] + 8028494: 6a7b ldr r3, [r7, #36] ; 0x24 + 8028496: 1acb subs r3, r1, r3 + 8028498: 0fd9 lsrs r1, r3, #31 + 802849a: 440b add r3, r1 + 802849c: 105b asrs r3, r3, #1 + 802849e: b29b uxth r3, r3 + 80284a0: 4413 add r3, r2 + 80284a2: b29b uxth r3, r3 + 80284a4: b21a sxth r2, r3 + 80284a6: 683b ldr r3, [r7, #0] + 80284a8: 801a strh r2, [r3, #0] } lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 802853e: 2100 movs r1, #0 - 8028540: 68f8 ldr r0, [r7, #12] - 8028542: f7ff fec4 bl 80282ce - 8028546: 4603 mov r3, r0 - 8028548: 837b strh r3, [r7, #26] + 80284aa: 2100 movs r1, #0 + 80284ac: 68f8 ldr r0, [r7, #12] + 80284ae: f7ff fec4 bl 802823a + 80284b2: 4603 mov r3, r0 + 80284b4: 837b strh r3, [r7, #26] p_out->x += lv_obj_get_style_pad_left(obj, LV_PART_MAIN) + border_width; - 802854a: 2100 movs r1, #0 - 802854c: 68f8 ldr r0, [r7, #12] - 802854e: f7ff fe73 bl 8028238 - 8028552: 4603 mov r3, r0 - 8028554: 461a mov r2, r3 - 8028556: f9b7 301a ldrsh.w r3, [r7, #26] - 802855a: 18d1 adds r1, r2, r3 - 802855c: 683b ldr r3, [r7, #0] - 802855e: f9b3 3000 ldrsh.w r3, [r3] - 8028562: b29a uxth r2, r3 - 8028564: b28b uxth r3, r1 - 8028566: 4413 add r3, r2 - 8028568: b29b uxth r3, r3 - 802856a: b21a sxth r2, r3 - 802856c: 683b ldr r3, [r7, #0] - 802856e: 801a strh r2, [r3, #0] + 80284b6: 2100 movs r1, #0 + 80284b8: 68f8 ldr r0, [r7, #12] + 80284ba: f7ff fe73 bl 80281a4 + 80284be: 4603 mov r3, r0 + 80284c0: 461a mov r2, r3 + 80284c2: f9b7 301a ldrsh.w r3, [r7, #26] + 80284c6: 18d1 adds r1, r2, r3 + 80284c8: 683b ldr r3, [r7, #0] + 80284ca: f9b3 3000 ldrsh.w r3, [r3] + 80284ce: b29a uxth r2, r3 + 80284d0: b28b uxth r3, r1 + 80284d2: 4413 add r3, r2 + 80284d4: b29b uxth r3, r3 + 80284d6: b21a sxth r2, r3 + 80284d8: 683b ldr r3, [r7, #0] + 80284da: 801a strh r2, [r3, #0] p_out->x -= lv_obj_get_scroll_left(obj); - 8028570: 68f8 ldr r0, [r7, #12] - 8028572: f7e3 fac9 bl 800bb08 - 8028576: 4603 mov r3, r0 - 8028578: 4619 mov r1, r3 - 802857a: 683b ldr r3, [r7, #0] - 802857c: f9b3 3000 ldrsh.w r3, [r3] - 8028580: b29a uxth r2, r3 - 8028582: b28b uxth r3, r1 - 8028584: 1ad3 subs r3, r2, r3 - 8028586: b29b uxth r3, r3 - 8028588: b21a sxth r2, r3 - 802858a: 683b ldr r3, [r7, #0] - 802858c: 801a strh r2, [r3, #0] + 80284dc: 68f8 ldr r0, [r7, #12] + 80284de: f7e3 fadd bl 800ba9c + 80284e2: 4603 mov r3, r0 + 80284e4: 4619 mov r1, r3 + 80284e6: 683b ldr r3, [r7, #0] + 80284e8: f9b3 3000 ldrsh.w r3, [r3] + 80284ec: b29a uxth r2, r3 + 80284ee: b28b uxth r3, r1 + 80284f0: 1ad3 subs r3, r2, r3 + 80284f2: b29b uxth r3, r3 + 80284f4: b21a sxth r2, r3 + 80284f6: 683b ldr r3, [r7, #0] + 80284f8: 801a strh r2, [r3, #0] int32_t temp_y = 0; - 802858e: 2300 movs r3, #0 - 8028590: 617b str r3, [r7, #20] + 80284fa: 2300 movs r3, #0 + 80284fc: 617b str r3, [r7, #20] temp_y = (int32_t)((int32_t)ser->y_points[id] - chart->ymin[ser->y_axis_sec]) * h; - 8028592: 68bb ldr r3, [r7, #8] - 8028594: 685a ldr r2, [r3, #4] - 8028596: 88fb ldrh r3, [r7, #6] - 8028598: 005b lsls r3, r3, #1 - 802859a: 4413 add r3, r2 - 802859c: f9b3 3000 ldrsh.w r3, [r3] - 80285a0: 4619 mov r1, r3 - 80285a2: 68bb ldr r3, [r7, #8] - 80285a4: 7b1b ldrb r3, [r3, #12] - 80285a6: f3c3 1300 ubfx r3, r3, #4, #1 - 80285aa: b2db uxtb r3, r3 - 80285ac: 6b3a ldr r2, [r7, #48] ; 0x30 - 80285ae: 3334 adds r3, #52 ; 0x34 - 80285b0: 005b lsls r3, r3, #1 - 80285b2: 4413 add r3, r2 - 80285b4: f9b3 3004 ldrsh.w r3, [r3, #4] - 80285b8: 1acb subs r3, r1, r3 - 80285ba: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c - 80285be: fb02 f303 mul.w r3, r2, r3 - 80285c2: 617b str r3, [r7, #20] + 80284fe: 68bb ldr r3, [r7, #8] + 8028500: 685a ldr r2, [r3, #4] + 8028502: 88fb ldrh r3, [r7, #6] + 8028504: 005b lsls r3, r3, #1 + 8028506: 4413 add r3, r2 + 8028508: f9b3 3000 ldrsh.w r3, [r3] + 802850c: 4619 mov r1, r3 + 802850e: 68bb ldr r3, [r7, #8] + 8028510: 7b1b ldrb r3, [r3, #12] + 8028512: f3c3 1300 ubfx r3, r3, #4, #1 + 8028516: b2db uxtb r3, r3 + 8028518: 6b3a ldr r2, [r7, #48] ; 0x30 + 802851a: 3334 adds r3, #52 ; 0x34 + 802851c: 005b lsls r3, r3, #1 + 802851e: 4413 add r3, r2 + 8028520: f9b3 3004 ldrsh.w r3, [r3, #4] + 8028524: 1acb subs r3, r1, r3 + 8028526: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c + 802852a: fb02 f303 mul.w r3, r2, r3 + 802852e: 617b str r3, [r7, #20] temp_y = temp_y / (chart->ymax[ser->y_axis_sec] - chart->ymin[ser->y_axis_sec]); - 80285c4: 68bb ldr r3, [r7, #8] - 80285c6: 7b1b ldrb r3, [r3, #12] - 80285c8: f3c3 1300 ubfx r3, r3, #4, #1 - 80285cc: b2db uxtb r3, r3 - 80285ce: 461a mov r2, r3 - 80285d0: 6b3b ldr r3, [r7, #48] ; 0x30 - 80285d2: 3238 adds r2, #56 ; 0x38 - 80285d4: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] - 80285d8: 4619 mov r1, r3 - 80285da: 68bb ldr r3, [r7, #8] - 80285dc: 7b1b ldrb r3, [r3, #12] - 80285de: f3c3 1300 ubfx r3, r3, #4, #1 - 80285e2: b2db uxtb r3, r3 - 80285e4: 6b3a ldr r2, [r7, #48] ; 0x30 - 80285e6: 3334 adds r3, #52 ; 0x34 - 80285e8: 005b lsls r3, r3, #1 - 80285ea: 4413 add r3, r2 - 80285ec: f9b3 3004 ldrsh.w r3, [r3, #4] - 80285f0: 1acb subs r3, r1, r3 - 80285f2: 697a ldr r2, [r7, #20] - 80285f4: fb92 f3f3 sdiv r3, r2, r3 - 80285f8: 617b str r3, [r7, #20] + 8028530: 68bb ldr r3, [r7, #8] + 8028532: 7b1b ldrb r3, [r3, #12] + 8028534: f3c3 1300 ubfx r3, r3, #4, #1 + 8028538: b2db uxtb r3, r3 + 802853a: 461a mov r2, r3 + 802853c: 6b3b ldr r3, [r7, #48] ; 0x30 + 802853e: 3238 adds r2, #56 ; 0x38 + 8028540: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] + 8028544: 4619 mov r1, r3 + 8028546: 68bb ldr r3, [r7, #8] + 8028548: 7b1b ldrb r3, [r3, #12] + 802854a: f3c3 1300 ubfx r3, r3, #4, #1 + 802854e: b2db uxtb r3, r3 + 8028550: 6b3a ldr r2, [r7, #48] ; 0x30 + 8028552: 3334 adds r3, #52 ; 0x34 + 8028554: 005b lsls r3, r3, #1 + 8028556: 4413 add r3, r2 + 8028558: f9b3 3004 ldrsh.w r3, [r3, #4] + 802855c: 1acb subs r3, r1, r3 + 802855e: 697a ldr r2, [r7, #20] + 8028560: fb92 f3f3 sdiv r3, r2, r3 + 8028564: 617b str r3, [r7, #20] p_out->y = h - temp_y; - 80285fa: 8dba ldrh r2, [r7, #44] ; 0x2c - 80285fc: 697b ldr r3, [r7, #20] - 80285fe: b29b uxth r3, r3 - 8028600: 1ad3 subs r3, r2, r3 - 8028602: b29b uxth r3, r3 - 8028604: b21a sxth r2, r3 - 8028606: 683b ldr r3, [r7, #0] - 8028608: 805a strh r2, [r3, #2] + 8028566: 8dba ldrh r2, [r7, #44] ; 0x2c + 8028568: 697b ldr r3, [r7, #20] + 802856a: b29b uxth r3, r3 + 802856c: 1ad3 subs r3, r2, r3 + 802856e: b29b uxth r3, r3 + 8028570: b21a sxth r2, r3 + 8028572: 683b ldr r3, [r7, #0] + 8028574: 805a strh r2, [r3, #2] p_out->y += lv_obj_get_style_pad_top(obj, LV_PART_MAIN) + border_width; - 802860a: 2100 movs r1, #0 - 802860c: 68f8 ldr r0, [r7, #12] - 802860e: f7ff fded bl 80281ec - 8028612: 4603 mov r3, r0 - 8028614: 461a mov r2, r3 - 8028616: f9b7 301a ldrsh.w r3, [r7, #26] - 802861a: 18d1 adds r1, r2, r3 - 802861c: 683b ldr r3, [r7, #0] - 802861e: f9b3 3002 ldrsh.w r3, [r3, #2] - 8028622: b29a uxth r2, r3 - 8028624: b28b uxth r3, r1 - 8028626: 4413 add r3, r2 - 8028628: b29b uxth r3, r3 - 802862a: b21a sxth r2, r3 - 802862c: 683b ldr r3, [r7, #0] - 802862e: 805a strh r2, [r3, #2] + 8028576: 2100 movs r1, #0 + 8028578: 68f8 ldr r0, [r7, #12] + 802857a: f7ff fded bl 8028158 + 802857e: 4603 mov r3, r0 + 8028580: 461a mov r2, r3 + 8028582: f9b7 301a ldrsh.w r3, [r7, #26] + 8028586: 18d1 adds r1, r2, r3 + 8028588: 683b ldr r3, [r7, #0] + 802858a: f9b3 3002 ldrsh.w r3, [r3, #2] + 802858e: b29a uxth r2, r3 + 8028590: b28b uxth r3, r1 + 8028592: 4413 add r3, r2 + 8028594: b29b uxth r3, r3 + 8028596: b21a sxth r2, r3 + 8028598: 683b ldr r3, [r7, #0] + 802859a: 805a strh r2, [r3, #2] p_out->y -= lv_obj_get_scroll_top(obj); - 8028630: 68f8 ldr r0, [r7, #12] - 8028632: f7e3 f9cb bl 800b9cc - 8028636: 4603 mov r3, r0 - 8028638: 4619 mov r1, r3 - 802863a: 683b ldr r3, [r7, #0] - 802863c: f9b3 3002 ldrsh.w r3, [r3, #2] - 8028640: b29a uxth r2, r3 - 8028642: b28b uxth r3, r1 - 8028644: 1ad3 subs r3, r2, r3 - 8028646: b29b uxth r3, r3 - 8028648: b21a sxth r2, r3 - 802864a: 683b ldr r3, [r7, #0] - 802864c: 805a strh r2, [r3, #2] + 802859c: 68f8 ldr r0, [r7, #12] + 802859e: f7e3 f9df bl 800b960 + 80285a2: 4603 mov r3, r0 + 80285a4: 4619 mov r1, r3 + 80285a6: 683b ldr r3, [r7, #0] + 80285a8: f9b3 3002 ldrsh.w r3, [r3, #2] + 80285ac: b29a uxth r2, r3 + 80285ae: b28b uxth r3, r1 + 80285b0: 1ad3 subs r3, r2, r3 + 80285b2: b29b uxth r3, r3 + 80285b4: b21a sxth r2, r3 + 80285b6: 683b ldr r3, [r7, #0] + 80285b8: 805a strh r2, [r3, #2] } - 802864e: 3738 adds r7, #56 ; 0x38 - 8028650: 46bd mov sp, r7 - 8028652: bd80 pop {r7, pc} + 80285ba: 3738 adds r7, #56 ; 0x38 + 80285bc: 46bd mov sp, r7 + 80285be: bd80 pop {r7, pc} -08028654 : +080285c0 : /********************** * STATIC FUNCTIONS **********************/ static void lv_chart_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 8028654: b580 push {r7, lr} - 8028656: b084 sub sp, #16 - 8028658: af00 add r7, sp, #0 - 802865a: 6078 str r0, [r7, #4] - 802865c: 6039 str r1, [r7, #0] + 80285c0: b580 push {r7, lr} + 80285c2: b084 sub sp, #16 + 80285c4: af00 add r7, sp, #0 + 80285c6: 6078 str r0, [r7, #4] + 80285c8: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_chart_t * chart = (lv_chart_t *)obj; - 802865e: 683b ldr r3, [r7, #0] - 8028660: 60fb str r3, [r7, #12] + 80285ca: 683b ldr r3, [r7, #0] + 80285cc: 60fb str r3, [r7, #12] _lv_ll_init(&chart->series_ll, sizeof(lv_chart_series_t)); - 8028662: 68fb ldr r3, [r7, #12] - 8028664: 3324 adds r3, #36 ; 0x24 - 8028666: 2110 movs r1, #16 - 8028668: 4618 mov r0, r3 - 802866a: f009 fd79 bl 8032160 <_lv_ll_init> + 80285ce: 68fb ldr r3, [r7, #12] + 80285d0: 3324 adds r3, #36 ; 0x24 + 80285d2: 2110 movs r1, #16 + 80285d4: 4618 mov r0, r3 + 80285d6: f009 fd79 bl 80320cc <_lv_ll_init> _lv_ll_init(&chart->cursor_ll, sizeof(lv_chart_cursor_t)); - 802866e: 68fb ldr r3, [r7, #12] - 8028670: 3330 adds r3, #48 ; 0x30 - 8028672: 2110 movs r1, #16 - 8028674: 4618 mov r0, r3 - 8028676: f009 fd73 bl 8032160 <_lv_ll_init> + 80285da: 68fb ldr r3, [r7, #12] + 80285dc: 3330 adds r3, #48 ; 0x30 + 80285de: 2110 movs r1, #16 + 80285e0: 4618 mov r0, r3 + 80285e2: f009 fd73 bl 80320cc <_lv_ll_init> chart->ymin[0] = 0; - 802867a: 68fb ldr r3, [r7, #12] - 802867c: 2200 movs r2, #0 - 802867e: f8a3 206c strh.w r2, [r3, #108] ; 0x6c + 80285e6: 68fb ldr r3, [r7, #12] + 80285e8: 2200 movs r2, #0 + 80285ea: f8a3 206c strh.w r2, [r3, #108] ; 0x6c chart->xmin[0] = 0; - 8028682: 68fb ldr r3, [r7, #12] - 8028684: 2200 movs r2, #0 - 8028686: f8a3 2074 strh.w r2, [r3, #116] ; 0x74 + 80285ee: 68fb ldr r3, [r7, #12] + 80285f0: 2200 movs r2, #0 + 80285f2: f8a3 2074 strh.w r2, [r3, #116] ; 0x74 chart->ymin[1] = 0; - 802868a: 68fb ldr r3, [r7, #12] - 802868c: 2200 movs r2, #0 - 802868e: f8a3 206e strh.w r2, [r3, #110] ; 0x6e + 80285f6: 68fb ldr r3, [r7, #12] + 80285f8: 2200 movs r2, #0 + 80285fa: f8a3 206e strh.w r2, [r3, #110] ; 0x6e chart->xmin[1] = 0; - 8028692: 68fb ldr r3, [r7, #12] - 8028694: 2200 movs r2, #0 - 8028696: f8a3 2076 strh.w r2, [r3, #118] ; 0x76 + 80285fe: 68fb ldr r3, [r7, #12] + 8028600: 2200 movs r2, #0 + 8028602: f8a3 2076 strh.w r2, [r3, #118] ; 0x76 chart->ymax[0] = 100; - 802869a: 68fb ldr r3, [r7, #12] - 802869c: 2264 movs r2, #100 ; 0x64 - 802869e: f8a3 2070 strh.w r2, [r3, #112] ; 0x70 + 8028606: 68fb ldr r3, [r7, #12] + 8028608: 2264 movs r2, #100 ; 0x64 + 802860a: f8a3 2070 strh.w r2, [r3, #112] ; 0x70 chart->xmax[0] = 100; - 80286a2: 68fb ldr r3, [r7, #12] - 80286a4: 2264 movs r2, #100 ; 0x64 - 80286a6: f8a3 2078 strh.w r2, [r3, #120] ; 0x78 + 802860e: 68fb ldr r3, [r7, #12] + 8028610: 2264 movs r2, #100 ; 0x64 + 8028612: f8a3 2078 strh.w r2, [r3, #120] ; 0x78 chart->ymax[1] = 100; - 80286aa: 68fb ldr r3, [r7, #12] - 80286ac: 2264 movs r2, #100 ; 0x64 - 80286ae: f8a3 2072 strh.w r2, [r3, #114] ; 0x72 + 8028616: 68fb ldr r3, [r7, #12] + 8028618: 2264 movs r2, #100 ; 0x64 + 802861a: f8a3 2072 strh.w r2, [r3, #114] ; 0x72 chart->xmax[1] = 100; - 80286b2: 68fb ldr r3, [r7, #12] - 80286b4: 2264 movs r2, #100 ; 0x64 - 80286b6: f8a3 207a strh.w r2, [r3, #122] ; 0x7a + 802861e: 68fb ldr r3, [r7, #12] + 8028620: 2264 movs r2, #100 ; 0x64 + 8028622: f8a3 207a strh.w r2, [r3, #122] ; 0x7a chart->hdiv_cnt = LV_CHART_HDIV_DEF; - 80286ba: 68fb ldr r3, [r7, #12] - 80286bc: 2203 movs r2, #3 - 80286be: f8a3 207e strh.w r2, [r3, #126] ; 0x7e + 8028626: 68fb ldr r3, [r7, #12] + 8028628: 2203 movs r2, #3 + 802862a: f8a3 207e strh.w r2, [r3, #126] ; 0x7e chart->vdiv_cnt = LV_CHART_VDIV_DEF; - 80286c2: 68fb ldr r3, [r7, #12] - 80286c4: 2205 movs r2, #5 - 80286c6: f8a3 2080 strh.w r2, [r3, #128] ; 0x80 + 802862e: 68fb ldr r3, [r7, #12] + 8028630: 2205 movs r2, #5 + 8028632: f8a3 2080 strh.w r2, [r3, #128] ; 0x80 chart->point_cnt = LV_CHART_POINT_CNT_DEF; - 80286ca: 68fb ldr r3, [r7, #12] - 80286cc: 220a movs r2, #10 - 80286ce: f8a3 2082 strh.w r2, [r3, #130] ; 0x82 + 8028636: 68fb ldr r3, [r7, #12] + 8028638: 220a movs r2, #10 + 802863a: f8a3 2082 strh.w r2, [r3, #130] ; 0x82 chart->pressed_point_id = LV_CHART_POINT_NONE; - 80286d2: 68fb ldr r3, [r7, #12] - 80286d4: f647 72ff movw r2, #32767 ; 0x7fff - 80286d8: f8a3 207c strh.w r2, [r3, #124] ; 0x7c + 802863e: 68fb ldr r3, [r7, #12] + 8028640: f647 72ff movw r2, #32767 ; 0x7fff + 8028644: f8a3 207c strh.w r2, [r3, #124] ; 0x7c chart->type = LV_CHART_TYPE_LINE; - 80286dc: 68fa ldr r2, [r7, #12] - 80286de: f892 3088 ldrb.w r3, [r2, #136] ; 0x88 - 80286e2: 2101 movs r1, #1 - 80286e4: f361 0302 bfi r3, r1, #0, #3 - 80286e8: f882 3088 strb.w r3, [r2, #136] ; 0x88 + 8028648: 68fa ldr r2, [r7, #12] + 802864a: f892 3088 ldrb.w r3, [r2, #136] ; 0x88 + 802864e: 2101 movs r1, #1 + 8028650: f361 0302 bfi r3, r1, #0, #3 + 8028654: f882 3088 strb.w r3, [r2, #136] ; 0x88 chart->update_mode = LV_CHART_UPDATE_MODE_SHIFT; - 80286ec: 68fa ldr r2, [r7, #12] - 80286ee: f892 3088 ldrb.w r3, [r2, #136] ; 0x88 - 80286f2: f36f 03c3 bfc r3, #3, #1 - 80286f6: f882 3088 strb.w r3, [r2, #136] ; 0x88 + 8028658: 68fa ldr r2, [r7, #12] + 802865a: f892 3088 ldrb.w r3, [r2, #136] ; 0x88 + 802865e: f36f 03c3 bfc r3, #3, #1 + 8028662: f882 3088 strb.w r3, [r2, #136] ; 0x88 chart->zoom_x = LV_IMG_ZOOM_NONE; - 80286fa: 68fb ldr r3, [r7, #12] - 80286fc: f44f 7280 mov.w r2, #256 ; 0x100 - 8028700: f8a3 2084 strh.w r2, [r3, #132] ; 0x84 + 8028666: 68fb ldr r3, [r7, #12] + 8028668: f44f 7280 mov.w r2, #256 ; 0x100 + 802866c: f8a3 2084 strh.w r2, [r3, #132] ; 0x84 chart->zoom_y = LV_IMG_ZOOM_NONE; - 8028704: 68fb ldr r3, [r7, #12] - 8028706: f44f 7280 mov.w r2, #256 ; 0x100 - 802870a: f8a3 2086 strh.w r2, [r3, #134] ; 0x86 + 8028670: 68fb ldr r3, [r7, #12] + 8028672: f44f 7280 mov.w r2, #256 ; 0x100 + 8028676: f8a3 2086 strh.w r2, [r3, #134] ; 0x86 LV_TRACE_OBJ_CREATE("finished"); } - 802870e: bf00 nop - 8028710: 3710 adds r7, #16 - 8028712: 46bd mov sp, r7 - 8028714: bd80 pop {r7, pc} + 802867a: bf00 nop + 802867c: 3710 adds r7, #16 + 802867e: 46bd mov sp, r7 + 8028680: bd80 pop {r7, pc} -08028716 : +08028682 : static void lv_chart_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 8028716: b580 push {r7, lr} - 8028718: b086 sub sp, #24 - 802871a: af00 add r7, sp, #0 - 802871c: 6078 str r0, [r7, #4] - 802871e: 6039 str r1, [r7, #0] + 8028682: b580 push {r7, lr} + 8028684: b086 sub sp, #24 + 8028686: af00 add r7, sp, #0 + 8028688: 6078 str r0, [r7, #4] + 802868a: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_chart_t * chart = (lv_chart_t *)obj; - 8028720: 683b ldr r3, [r7, #0] - 8028722: 617b str r3, [r7, #20] + 802868c: 683b ldr r3, [r7, #0] + 802868e: 617b str r3, [r7, #20] lv_chart_series_t * ser; while(chart->series_ll.head) { - 8028724: e01a b.n 802875c + 8028690: e01a b.n 80286c8 ser = _lv_ll_get_head(&chart->series_ll); - 8028726: 697b ldr r3, [r7, #20] - 8028728: 3324 adds r3, #36 ; 0x24 - 802872a: 4618 mov r0, r3 - 802872c: f009 fe16 bl 803235c <_lv_ll_get_head> - 8028730: 60f8 str r0, [r7, #12] + 8028692: 697b ldr r3, [r7, #20] + 8028694: 3324 adds r3, #36 ; 0x24 + 8028696: 4618 mov r0, r3 + 8028698: f009 fe16 bl 80322c8 <_lv_ll_get_head> + 802869c: 60f8 str r0, [r7, #12] if(!ser->y_ext_buf_assigned) lv_mem_free(ser->y_points); - 8028732: 68fb ldr r3, [r7, #12] - 8028734: 7b1b ldrb r3, [r3, #12] - 8028736: f003 0304 and.w r3, r3, #4 - 802873a: b2db uxtb r3, r3 - 802873c: 2b00 cmp r3, #0 - 802873e: d104 bne.n 802874a - 8028740: 68fb ldr r3, [r7, #12] - 8028742: 685b ldr r3, [r3, #4] - 8028744: 4618 mov r0, r3 - 8028746: f00a f8c9 bl 80328dc + 802869e: 68fb ldr r3, [r7, #12] + 80286a0: 7b1b ldrb r3, [r3, #12] + 80286a2: f003 0304 and.w r3, r3, #4 + 80286a6: b2db uxtb r3, r3 + 80286a8: 2b00 cmp r3, #0 + 80286aa: d104 bne.n 80286b6 + 80286ac: 68fb ldr r3, [r7, #12] + 80286ae: 685b ldr r3, [r3, #4] + 80286b0: 4618 mov r0, r3 + 80286b2: f00a f8c9 bl 8032848 _lv_ll_remove(&chart->series_ll, ser); - 802874a: 697b ldr r3, [r7, #20] - 802874c: 3324 adds r3, #36 ; 0x24 - 802874e: 68f9 ldr r1, [r7, #12] - 8028750: 4618 mov r0, r3 - 8028752: f009 fd85 bl 8032260 <_lv_ll_remove> + 80286b6: 697b ldr r3, [r7, #20] + 80286b8: 3324 adds r3, #36 ; 0x24 + 80286ba: 68f9 ldr r1, [r7, #12] + 80286bc: 4618 mov r0, r3 + 80286be: f009 fd85 bl 80321cc <_lv_ll_remove> lv_mem_free(ser); - 8028756: 68f8 ldr r0, [r7, #12] - 8028758: f00a f8c0 bl 80328dc + 80286c2: 68f8 ldr r0, [r7, #12] + 80286c4: f00a f8c0 bl 8032848 while(chart->series_ll.head) { - 802875c: 697b ldr r3, [r7, #20] - 802875e: 6a9b ldr r3, [r3, #40] ; 0x28 - 8028760: 2b00 cmp r3, #0 - 8028762: d1e0 bne.n 8028726 + 80286c8: 697b ldr r3, [r7, #20] + 80286ca: 6a9b ldr r3, [r3, #40] ; 0x28 + 80286cc: 2b00 cmp r3, #0 + 80286ce: d1e0 bne.n 8028692 } _lv_ll_clear(&chart->series_ll); - 8028764: 697b ldr r3, [r7, #20] - 8028766: 3324 adds r3, #36 ; 0x24 - 8028768: 4618 mov r0, r3 - 802876a: f009 fdd6 bl 803231a <_lv_ll_clear> + 80286d0: 697b ldr r3, [r7, #20] + 80286d2: 3324 adds r3, #36 ; 0x24 + 80286d4: 4618 mov r0, r3 + 80286d6: f009 fdd6 bl 8032286 <_lv_ll_clear> lv_chart_cursor_t * cur; while(chart->cursor_ll.head) { - 802876e: e00e b.n 802878e + 80286da: e00e b.n 80286fa cur = _lv_ll_get_head(&chart->cursor_ll); - 8028770: 697b ldr r3, [r7, #20] - 8028772: 3330 adds r3, #48 ; 0x30 - 8028774: 4618 mov r0, r3 - 8028776: f009 fdf1 bl 803235c <_lv_ll_get_head> - 802877a: 6138 str r0, [r7, #16] + 80286dc: 697b ldr r3, [r7, #20] + 80286de: 3330 adds r3, #48 ; 0x30 + 80286e0: 4618 mov r0, r3 + 80286e2: f009 fdf1 bl 80322c8 <_lv_ll_get_head> + 80286e6: 6138 str r0, [r7, #16] _lv_ll_remove(&chart->cursor_ll, cur); - 802877c: 697b ldr r3, [r7, #20] - 802877e: 3330 adds r3, #48 ; 0x30 - 8028780: 6939 ldr r1, [r7, #16] - 8028782: 4618 mov r0, r3 - 8028784: f009 fd6c bl 8032260 <_lv_ll_remove> + 80286e8: 697b ldr r3, [r7, #20] + 80286ea: 3330 adds r3, #48 ; 0x30 + 80286ec: 6939 ldr r1, [r7, #16] + 80286ee: 4618 mov r0, r3 + 80286f0: f009 fd6c bl 80321cc <_lv_ll_remove> lv_mem_free(cur); - 8028788: 6938 ldr r0, [r7, #16] - 802878a: f00a f8a7 bl 80328dc + 80286f4: 6938 ldr r0, [r7, #16] + 80286f6: f00a f8a7 bl 8032848 while(chart->cursor_ll.head) { - 802878e: 697b ldr r3, [r7, #20] - 8028790: 6b5b ldr r3, [r3, #52] ; 0x34 - 8028792: 2b00 cmp r3, #0 - 8028794: d1ec bne.n 8028770 + 80286fa: 697b ldr r3, [r7, #20] + 80286fc: 6b5b ldr r3, [r3, #52] ; 0x34 + 80286fe: 2b00 cmp r3, #0 + 8028700: d1ec bne.n 80286dc } _lv_ll_clear(&chart->cursor_ll); - 8028796: 697b ldr r3, [r7, #20] - 8028798: 3330 adds r3, #48 ; 0x30 - 802879a: 4618 mov r0, r3 - 802879c: f009 fdbd bl 803231a <_lv_ll_clear> + 8028702: 697b ldr r3, [r7, #20] + 8028704: 3330 adds r3, #48 ; 0x30 + 8028706: 4618 mov r0, r3 + 8028708: f009 fdbd bl 8032286 <_lv_ll_clear> LV_TRACE_OBJ_CREATE("finished"); } - 80287a0: bf00 nop - 80287a2: 3718 adds r7, #24 - 80287a4: 46bd mov sp, r7 - 80287a6: bd80 pop {r7, pc} + 802870c: bf00 nop + 802870e: 3718 adds r7, #24 + 8028710: 46bd mov sp, r7 + 8028712: bd80 pop {r7, pc} -080287a8 : +08028714 : static void lv_chart_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 80287a8: b590 push {r4, r7, lr} - 80287aa: b08b sub sp, #44 ; 0x2c - 80287ac: af00 add r7, sp, #0 - 80287ae: 6078 str r0, [r7, #4] - 80287b0: 6039 str r1, [r7, #0] + 8028714: b590 push {r4, r7, lr} + 8028716: b08b sub sp, #44 ; 0x2c + 8028718: af00 add r7, sp, #0 + 802871a: 6078 str r0, [r7, #4] + 802871c: 6039 str r1, [r7, #0] LV_UNUSED(class_p); /*Call the ancestor's event handler*/ lv_res_t res; res = lv_obj_event_base(MY_CLASS, e); - 80287b2: 6839 ldr r1, [r7, #0] - 80287b4: 4883 ldr r0, [pc, #524] ; (80289c4 ) - 80287b6: f7d9 fea5 bl 8002504 - 80287ba: 4603 mov r3, r0 - 80287bc: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 802871e: 6839 ldr r1, [r7, #0] + 8028720: 4883 ldr r0, [pc, #524] ; (8028930 ) + 8028722: f7d9 feb9 bl 8002498 + 8028726: 4603 mov r3, r0 + 8028728: f887 3027 strb.w r3, [r7, #39] ; 0x27 if(res != LV_RES_OK) return; - 80287c0: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80287c4: 2b01 cmp r3, #1 - 80287c6: f040 80f9 bne.w 80289bc + 802872c: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8028730: 2b01 cmp r3, #1 + 8028732: f040 80f9 bne.w 8028928 lv_event_code_t code = lv_event_get_code(e); - 80287ca: 6838 ldr r0, [r7, #0] - 80287cc: f7d9 feee bl 80025ac - 80287d0: 4603 mov r3, r0 - 80287d2: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 8028736: 6838 ldr r0, [r7, #0] + 8028738: f7d9 ff02 bl 8002540 + 802873c: 4603 mov r3, r0 + 802873e: f887 3026 strb.w r3, [r7, #38] ; 0x26 lv_obj_t * obj = lv_event_get_target(e); - 80287d6: 6838 ldr r0, [r7, #0] - 80287d8: f7d9 fed2 bl 8002580 - 80287dc: 6238 str r0, [r7, #32] + 8028742: 6838 ldr r0, [r7, #0] + 8028744: f7d9 fee6 bl 8002514 + 8028748: 6238 str r0, [r7, #32] lv_chart_t * chart = (lv_chart_t *)obj; - 80287de: 6a3b ldr r3, [r7, #32] - 80287e0: 61fb str r3, [r7, #28] + 802874a: 6a3b ldr r3, [r7, #32] + 802874c: 61fb str r3, [r7, #28] if(code == LV_EVENT_PRESSED) { - 80287e2: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 80287e6: 2b01 cmp r3, #1 - 80287e8: d143 bne.n 8028872 + 802874e: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 8028752: 2b01 cmp r3, #1 + 8028754: d143 bne.n 80287de lv_indev_t * indev = lv_indev_get_act(); - 80287ea: f7da fd95 bl 8003318 - 80287ee: 6138 str r0, [r7, #16] + 8028756: f7da fda9 bl 80032ac + 802875a: 6138 str r0, [r7, #16] lv_point_t p; lv_indev_get_point(indev, &p); - 80287f0: f107 0308 add.w r3, r7, #8 - 80287f4: 4619 mov r1, r3 - 80287f6: 6938 ldr r0, [r7, #16] - 80287f8: f7da fe80 bl 80034fc + 802875c: f107 0308 add.w r3, r7, #8 + 8028760: 4619 mov r1, r3 + 8028762: 6938 ldr r0, [r7, #16] + 8028764: f7da fe94 bl 8003490 p.x -= obj->coords.x1; - 80287fc: f9b7 3008 ldrsh.w r3, [r7, #8] - 8028800: b29a uxth r2, r3 - 8028802: 6a3b ldr r3, [r7, #32] - 8028804: f9b3 3014 ldrsh.w r3, [r3, #20] - 8028808: b29b uxth r3, r3 - 802880a: 1ad3 subs r3, r2, r3 - 802880c: b29b uxth r3, r3 - 802880e: b21b sxth r3, r3 - 8028810: 813b strh r3, [r7, #8] + 8028768: f9b7 3008 ldrsh.w r3, [r7, #8] + 802876c: b29a uxth r2, r3 + 802876e: 6a3b ldr r3, [r7, #32] + 8028770: f9b3 3014 ldrsh.w r3, [r3, #20] + 8028774: b29b uxth r3, r3 + 8028776: 1ad3 subs r3, r2, r3 + 8028778: b29b uxth r3, r3 + 802877a: b21b sxth r3, r3 + 802877c: 813b strh r3, [r7, #8] uint32_t id = get_index_from_x(obj, p.x + lv_obj_get_scroll_left(obj)); - 8028812: f9b7 3008 ldrsh.w r3, [r7, #8] - 8028816: b29c uxth r4, r3 - 8028818: 6a38 ldr r0, [r7, #32] - 802881a: f7e3 f975 bl 800bb08 - 802881e: 4603 mov r3, r0 - 8028820: b29b uxth r3, r3 - 8028822: 4423 add r3, r4 - 8028824: b29b uxth r3, r3 - 8028826: b21b sxth r3, r3 - 8028828: 4619 mov r1, r3 - 802882a: 6a38 ldr r0, [r7, #32] - 802882c: f002 fc13 bl 802b056 - 8028830: 60f8 str r0, [r7, #12] + 802877e: f9b7 3008 ldrsh.w r3, [r7, #8] + 8028782: b29c uxth r4, r3 + 8028784: 6a38 ldr r0, [r7, #32] + 8028786: f7e3 f989 bl 800ba9c + 802878a: 4603 mov r3, r0 + 802878c: b29b uxth r3, r3 + 802878e: 4423 add r3, r4 + 8028790: b29b uxth r3, r3 + 8028792: b21b sxth r3, r3 + 8028794: 4619 mov r1, r3 + 8028796: 6a38 ldr r0, [r7, #32] + 8028798: f002 fc13 bl 802afc2 + 802879c: 60f8 str r0, [r7, #12] if(id != chart->pressed_point_id) { - 8028832: 69fb ldr r3, [r7, #28] - 8028834: f8b3 307c ldrh.w r3, [r3, #124] ; 0x7c - 8028838: 461a mov r2, r3 - 802883a: 68fb ldr r3, [r7, #12] - 802883c: 4293 cmp r3, r2 - 802883e: f000 80be beq.w 80289be + 802879e: 69fb ldr r3, [r7, #28] + 80287a0: f8b3 307c ldrh.w r3, [r3, #124] ; 0x7c + 80287a4: 461a mov r2, r3 + 80287a6: 68fb ldr r3, [r7, #12] + 80287a8: 4293 cmp r3, r2 + 80287aa: f000 80be beq.w 802892a invalidate_point(obj, id); - 8028842: 68fb ldr r3, [r7, #12] - 8028844: b29b uxth r3, r3 - 8028846: 4619 mov r1, r3 - 8028848: 6a38 ldr r0, [r7, #32] - 802884a: f002 fc69 bl 802b120 + 80287ae: 68fb ldr r3, [r7, #12] + 80287b0: b29b uxth r3, r3 + 80287b2: 4619 mov r1, r3 + 80287b4: 6a38 ldr r0, [r7, #32] + 80287b6: f002 fc69 bl 802b08c invalidate_point(obj, chart->pressed_point_id); - 802884e: 69fb ldr r3, [r7, #28] - 8028850: f8b3 307c ldrh.w r3, [r3, #124] ; 0x7c - 8028854: 4619 mov r1, r3 - 8028856: 6a38 ldr r0, [r7, #32] - 8028858: f002 fc62 bl 802b120 + 80287ba: 69fb ldr r3, [r7, #28] + 80287bc: f8b3 307c ldrh.w r3, [r3, #124] ; 0x7c + 80287c0: 4619 mov r1, r3 + 80287c2: 6a38 ldr r0, [r7, #32] + 80287c4: f002 fc62 bl 802b08c chart->pressed_point_id = id; - 802885c: 68fb ldr r3, [r7, #12] - 802885e: b29a uxth r2, r3 - 8028860: 69fb ldr r3, [r7, #28] - 8028862: f8a3 207c strh.w r2, [r3, #124] ; 0x7c + 80287c8: 68fb ldr r3, [r7, #12] + 80287ca: b29a uxth r2, r3 + 80287cc: 69fb ldr r3, [r7, #28] + 80287ce: f8a3 207c strh.w r2, [r3, #124] ; 0x7c lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 8028866: 2200 movs r2, #0 - 8028868: 211c movs r1, #28 - 802886a: 6a38 ldr r0, [r7, #32] - 802886c: f7d9 fe08 bl 8002480 - 8028870: e0a5 b.n 80289be + 80287d2: 2200 movs r2, #0 + 80287d4: 211c movs r1, #28 + 80287d6: 6a38 ldr r0, [r7, #32] + 80287d8: f7d9 fe1c bl 8002414 + 80287dc: e0a5 b.n 802892a } } else if(code == LV_EVENT_RELEASED) { - 8028872: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 8028876: 2b08 cmp r3, #8 - 8028878: d10c bne.n 8028894 + 80287de: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 80287e2: 2b08 cmp r3, #8 + 80287e4: d10c bne.n 8028800 invalidate_point(obj, chart->pressed_point_id); - 802887a: 69fb ldr r3, [r7, #28] - 802887c: f8b3 307c ldrh.w r3, [r3, #124] ; 0x7c - 8028880: 4619 mov r1, r3 - 8028882: 6a38 ldr r0, [r7, #32] - 8028884: f002 fc4c bl 802b120 + 80287e6: 69fb ldr r3, [r7, #28] + 80287e8: f8b3 307c ldrh.w r3, [r3, #124] ; 0x7c + 80287ec: 4619 mov r1, r3 + 80287ee: 6a38 ldr r0, [r7, #32] + 80287f0: f002 fc4c bl 802b08c chart->pressed_point_id = LV_CHART_POINT_NONE; - 8028888: 69fb ldr r3, [r7, #28] - 802888a: f647 72ff movw r2, #32767 ; 0x7fff - 802888e: f8a3 207c strh.w r2, [r3, #124] ; 0x7c - 8028892: e094 b.n 80289be + 80287f4: 69fb ldr r3, [r7, #28] + 80287f6: f647 72ff movw r2, #32767 ; 0x7fff + 80287fa: f8a3 207c strh.w r2, [r3, #124] ; 0x7c + 80287fe: e094 b.n 802892a } else if(code == LV_EVENT_SIZE_CHANGED) { - 8028894: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 8028898: 2b29 cmp r3, #41 ; 0x29 - 802889a: d103 bne.n 80288a4 + 8028800: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 8028804: 2b29 cmp r3, #41 ; 0x29 + 8028806: d103 bne.n 8028810 lv_obj_refresh_self_size(obj); - 802889c: 6a38 ldr r0, [r7, #32] - 802889e: f7e1 fd50 bl 800a342 - 80288a2: e08c b.n 80289be + 8028808: 6a38 ldr r0, [r7, #32] + 802880a: f7e1 fd64 bl 800a2d6 + 802880e: e08c b.n 802892a } else if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) { - 80288a4: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 80288a8: 2b13 cmp r3, #19 - 80288aa: d11c bne.n 80288e6 + 8028810: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 8028814: 2b13 cmp r3, #19 + 8028816: d11c bne.n 8028852 lv_event_set_ext_draw_size(e, LV_MAX4(chart->tick[0].draw_size, chart->tick[1].draw_size, chart->tick[2].draw_size, - 80288ac: 69fb ldr r3, [r7, #28] - 80288ae: f9b3 2064 ldrsh.w r2, [r3, #100] ; 0x64 - 80288b2: 69fb ldr r3, [r7, #28] - 80288b4: f9b3 3058 ldrsh.w r3, [r3, #88] ; 0x58 - 80288b8: 4293 cmp r3, r2 - 80288ba: bfb8 it lt - 80288bc: 4613 movlt r3, r2 - 80288be: b21a sxth r2, r3 - 80288c0: 69fb ldr r3, [r7, #28] - 80288c2: f9b3 104c ldrsh.w r1, [r3, #76] ; 0x4c - 80288c6: 69fb ldr r3, [r7, #28] - 80288c8: f9b3 3040 ldrsh.w r3, [r3, #64] ; 0x40 - 80288cc: 428b cmp r3, r1 - 80288ce: bfb8 it lt - 80288d0: 460b movlt r3, r1 - 80288d2: b21b sxth r3, r3 - 80288d4: 4293 cmp r3, r2 - 80288d6: bfb8 it lt - 80288d8: 4613 movlt r3, r2 - 80288da: b21b sxth r3, r3 - 80288dc: 4619 mov r1, r3 - 80288de: 6838 ldr r0, [r7, #0] - 80288e0: f7d9 ff8a bl 80027f8 - 80288e4: e06b b.n 80289be + 8028818: 69fb ldr r3, [r7, #28] + 802881a: f9b3 2064 ldrsh.w r2, [r3, #100] ; 0x64 + 802881e: 69fb ldr r3, [r7, #28] + 8028820: f9b3 3058 ldrsh.w r3, [r3, #88] ; 0x58 + 8028824: 4293 cmp r3, r2 + 8028826: bfb8 it lt + 8028828: 4613 movlt r3, r2 + 802882a: b21a sxth r2, r3 + 802882c: 69fb ldr r3, [r7, #28] + 802882e: f9b3 104c ldrsh.w r1, [r3, #76] ; 0x4c + 8028832: 69fb ldr r3, [r7, #28] + 8028834: f9b3 3040 ldrsh.w r3, [r3, #64] ; 0x40 + 8028838: 428b cmp r3, r1 + 802883a: bfb8 it lt + 802883c: 460b movlt r3, r1 + 802883e: b21b sxth r3, r3 + 8028840: 4293 cmp r3, r2 + 8028842: bfb8 it lt + 8028844: 4613 movlt r3, r2 + 8028846: b21b sxth r3, r3 + 8028848: 4619 mov r1, r3 + 802884a: 6838 ldr r0, [r7, #0] + 802884c: f7d9 ff9e bl 800278c + 8028850: e06b b.n 802892a chart->tick[3].draw_size)); } else if(code == LV_EVENT_GET_SELF_SIZE) { - 80288e6: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 80288ea: 2b2c cmp r3, #44 ; 0x2c - 80288ec: d120 bne.n 8028930 + 8028852: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 8028856: 2b2c cmp r3, #44 ; 0x2c + 8028858: d120 bne.n 802889c lv_point_t * p = lv_event_get_param(e); - 80288ee: 6838 ldr r0, [r7, #0] - 80288f0: f7d9 fe6a bl 80025c8 - 80288f4: 6178 str r0, [r7, #20] + 802885a: 6838 ldr r0, [r7, #0] + 802885c: f7d9 fe7e bl 800255c + 8028860: 6178 str r0, [r7, #20] p->x = ((int32_t)lv_obj_get_content_width(obj) * chart->zoom_x) >> 8; - 80288f6: 6a38 ldr r0, [r7, #32] - 80288f8: f7e1 fc42 bl 800a180 - 80288fc: 4603 mov r3, r0 - 80288fe: 461a mov r2, r3 - 8028900: 69fb ldr r3, [r7, #28] - 8028902: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 - 8028906: fb02 f303 mul.w r3, r2, r3 - 802890a: 121b asrs r3, r3, #8 - 802890c: b21a sxth r2, r3 - 802890e: 697b ldr r3, [r7, #20] - 8028910: 801a strh r2, [r3, #0] + 8028862: 6a38 ldr r0, [r7, #32] + 8028864: f7e1 fc56 bl 800a114 + 8028868: 4603 mov r3, r0 + 802886a: 461a mov r2, r3 + 802886c: 69fb ldr r3, [r7, #28] + 802886e: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 + 8028872: fb02 f303 mul.w r3, r2, r3 + 8028876: 121b asrs r3, r3, #8 + 8028878: b21a sxth r2, r3 + 802887a: 697b ldr r3, [r7, #20] + 802887c: 801a strh r2, [r3, #0] p->y = ((int32_t)lv_obj_get_content_height(obj) * chart->zoom_y) >> 8; - 8028912: 6a38 ldr r0, [r7, #32] - 8028914: f7e1 fc5f bl 800a1d6 - 8028918: 4603 mov r3, r0 - 802891a: 461a mov r2, r3 - 802891c: 69fb ldr r3, [r7, #28] - 802891e: f8b3 3086 ldrh.w r3, [r3, #134] ; 0x86 - 8028922: fb02 f303 mul.w r3, r2, r3 - 8028926: 121b asrs r3, r3, #8 - 8028928: b21a sxth r2, r3 - 802892a: 697b ldr r3, [r7, #20] - 802892c: 805a strh r2, [r3, #2] - 802892e: e046 b.n 80289be + 802887e: 6a38 ldr r0, [r7, #32] + 8028880: f7e1 fc73 bl 800a16a + 8028884: 4603 mov r3, r0 + 8028886: 461a mov r2, r3 + 8028888: 69fb ldr r3, [r7, #28] + 802888a: f8b3 3086 ldrh.w r3, [r3, #134] ; 0x86 + 802888e: fb02 f303 mul.w r3, r2, r3 + 8028892: 121b asrs r3, r3, #8 + 8028894: b21a sxth r2, r3 + 8028896: 697b ldr r3, [r7, #20] + 8028898: 805a strh r2, [r3, #2] + 802889a: e046 b.n 802892a } else if(code == LV_EVENT_DRAW_MAIN) { - 8028930: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 8028934: 2b15 cmp r3, #21 - 8028936: d142 bne.n 80289be + 802889c: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 80288a0: 2b15 cmp r3, #21 + 80288a2: d142 bne.n 802892a lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 8028938: 6838 ldr r0, [r7, #0] - 802893a: f7d9 ff37 bl 80027ac - 802893e: 61b8 str r0, [r7, #24] + 80288a4: 6838 ldr r0, [r7, #0] + 80288a6: f7d9 ff4b bl 8002740 + 80288aa: 61b8 str r0, [r7, #24] draw_div_lines(obj, draw_ctx); - 8028940: 69b9 ldr r1, [r7, #24] - 8028942: 6a38 ldr r0, [r7, #32] - 8028944: f000 f840 bl 80289c8 + 80288ac: 69b9 ldr r1, [r7, #24] + 80288ae: 6a38 ldr r0, [r7, #32] + 80288b0: f000 f840 bl 8028934 draw_axes(obj, draw_ctx); - 8028948: 69b9 ldr r1, [r7, #24] - 802894a: 6a38 ldr r0, [r7, #32] - 802894c: f002 fb66 bl 802b01c + 80288b4: 69b9 ldr r1, [r7, #24] + 80288b6: 6a38 ldr r0, [r7, #32] + 80288b8: f002 fb66 bl 802af88 if(_lv_ll_is_empty(&chart->series_ll) == false) { - 8028950: 69fb ldr r3, [r7, #28] - 8028952: 3324 adds r3, #36 ; 0x24 - 8028954: 4618 mov r0, r3 - 8028956: f009 fd63 bl 8032420 <_lv_ll_is_empty> - 802895a: 4603 mov r3, r0 - 802895c: f083 0301 eor.w r3, r3, #1 - 8028960: b2db uxtb r3, r3 - 8028962: 2b00 cmp r3, #0 - 8028964: d025 beq.n 80289b2 + 80288bc: 69fb ldr r3, [r7, #28] + 80288be: 3324 adds r3, #36 ; 0x24 + 80288c0: 4618 mov r0, r3 + 80288c2: f009 fd63 bl 803238c <_lv_ll_is_empty> + 80288c6: 4603 mov r3, r0 + 80288c8: f083 0301 eor.w r3, r3, #1 + 80288cc: b2db uxtb r3, r3 + 80288ce: 2b00 cmp r3, #0 + 80288d0: d025 beq.n 802891e if(chart->type == LV_CHART_TYPE_LINE) draw_series_line(obj, draw_ctx); - 8028966: 69fb ldr r3, [r7, #28] - 8028968: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 802896c: f003 0307 and.w r3, r3, #7 - 8028970: b2db uxtb r3, r3 - 8028972: 2b01 cmp r3, #1 - 8028974: d104 bne.n 8028980 - 8028976: 69b9 ldr r1, [r7, #24] - 8028978: 6a38 ldr r0, [r7, #32] - 802897a: f000 fa43 bl 8028e04 - 802897e: e018 b.n 80289b2 + 80288d2: 69fb ldr r3, [r7, #28] + 80288d4: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 80288d8: f003 0307 and.w r3, r3, #7 + 80288dc: b2db uxtb r3, r3 + 80288de: 2b01 cmp r3, #1 + 80288e0: d104 bne.n 80288ec + 80288e2: 69b9 ldr r1, [r7, #24] + 80288e4: 6a38 ldr r0, [r7, #32] + 80288e6: f000 fa43 bl 8028d70 + 80288ea: e018 b.n 802891e else if(chart->type == LV_CHART_TYPE_BAR) draw_series_bar(obj, draw_ctx); - 8028980: 69fb ldr r3, [r7, #28] - 8028982: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 8028986: f003 0307 and.w r3, r3, #7 - 802898a: b2db uxtb r3, r3 - 802898c: 2b02 cmp r3, #2 - 802898e: d104 bne.n 802899a - 8028990: 69b9 ldr r1, [r7, #24] - 8028992: 6a38 ldr r0, [r7, #32] - 8028994: f001 f9d6 bl 8029d44 - 8028998: e00b b.n 80289b2 + 80288ec: 69fb ldr r3, [r7, #28] + 80288ee: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 80288f2: f003 0307 and.w r3, r3, #7 + 80288f6: b2db uxtb r3, r3 + 80288f8: 2b02 cmp r3, #2 + 80288fa: d104 bne.n 8028906 + 80288fc: 69b9 ldr r1, [r7, #24] + 80288fe: 6a38 ldr r0, [r7, #32] + 8028900: f001 f9d6 bl 8029cb0 + 8028904: e00b b.n 802891e else if(chart->type == LV_CHART_TYPE_SCATTER) draw_series_scatter(obj, draw_ctx); - 802899a: 69fb ldr r3, [r7, #28] - 802899c: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 80289a0: f003 0307 and.w r3, r3, #7 - 80289a4: b2db uxtb r3, r3 - 80289a6: 2b03 cmp r3, #3 - 80289a8: d103 bne.n 80289b2 - 80289aa: 69b9 ldr r1, [r7, #24] - 80289ac: 6a38 ldr r0, [r7, #32] - 80289ae: f000 fe35 bl 802961c + 8028906: 69fb ldr r3, [r7, #28] + 8028908: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 802890c: f003 0307 and.w r3, r3, #7 + 8028910: b2db uxtb r3, r3 + 8028912: 2b03 cmp r3, #3 + 8028914: d103 bne.n 802891e + 8028916: 69b9 ldr r1, [r7, #24] + 8028918: 6a38 ldr r0, [r7, #32] + 802891a: f000 fe35 bl 8029588 } draw_cursors(obj, draw_ctx); - 80289b2: 69b9 ldr r1, [r7, #24] - 80289b4: 6a38 ldr r0, [r7, #32] - 80289b6: f001 fbd5 bl 802a164 - 80289ba: e000 b.n 80289be + 802891e: 69b9 ldr r1, [r7, #24] + 8028920: 6a38 ldr r0, [r7, #32] + 8028922: f001 fbd5 bl 802a0d0 + 8028926: e000 b.n 802892a if(res != LV_RES_OK) return; - 80289bc: bf00 nop + 8028928: bf00 nop } } - 80289be: 372c adds r7, #44 ; 0x2c - 80289c0: 46bd mov sp, r7 - 80289c2: bd90 pop {r4, r7, pc} - 80289c4: 0806cbf8 .word 0x0806cbf8 + 802892a: 372c adds r7, #44 ; 0x2c + 802892c: 46bd mov sp, r7 + 802892e: bd90 pop {r4, r7, pc} + 8028930: 0806cb50 .word 0x0806cb50 -080289c8 : +08028934 : static void draw_div_lines(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx) { - 80289c8: b580 push {r7, lr} - 80289ca: b0a6 sub sp, #152 ; 0x98 - 80289cc: af00 add r7, sp, #0 - 80289ce: 6078 str r0, [r7, #4] - 80289d0: 6039 str r1, [r7, #0] + 8028934: b580 push {r7, lr} + 8028936: b0a6 sub sp, #152 ; 0x98 + 8028938: af00 add r7, sp, #0 + 802893a: 6078 str r0, [r7, #4] + 802893c: 6039 str r1, [r7, #0] lv_chart_t * chart = (lv_chart_t *)obj; - 80289d2: 687b ldr r3, [r7, #4] - 80289d4: f8c7 308c str.w r3, [r7, #140] ; 0x8c + 802893e: 687b ldr r3, [r7, #4] + 8028940: f8c7 308c str.w r3, [r7, #140] ; 0x8c lv_area_t series_clip_area; bool mask_ret = _lv_area_intersect(&series_clip_area, &obj->coords, draw_ctx->clip_area); - 80289d8: 687b ldr r3, [r7, #4] - 80289da: f103 0114 add.w r1, r3, #20 - 80289de: 683b ldr r3, [r7, #0] - 80289e0: 689a ldr r2, [r3, #8] - 80289e2: f107 0364 add.w r3, r7, #100 ; 0x64 - 80289e6: 4618 mov r0, r3 - 80289e8: f008 fb5e bl 80310a8 <_lv_area_intersect> - 80289ec: 4603 mov r3, r0 - 80289ee: f887 308b strb.w r3, [r7, #139] ; 0x8b + 8028944: 687b ldr r3, [r7, #4] + 8028946: f103 0114 add.w r1, r3, #20 + 802894a: 683b ldr r3, [r7, #0] + 802894c: 689a ldr r2, [r3, #8] + 802894e: f107 0364 add.w r3, r7, #100 ; 0x64 + 8028952: 4618 mov r0, r3 + 8028954: f008 fb5e bl 8031014 <_lv_area_intersect> + 8028958: 4603 mov r3, r0 + 802895a: f887 308b strb.w r3, [r7, #139] ; 0x8b if(mask_ret == false) return; - 80289f2: f897 308b ldrb.w r3, [r7, #139] ; 0x8b - 80289f6: f083 0301 eor.w r3, r3, #1 - 80289fa: b2db uxtb r3, r3 - 80289fc: 2b00 cmp r3, #0 - 80289fe: f040 81fb bne.w 8028df8 + 802895e: f897 308b ldrb.w r3, [r7, #139] ; 0x8b + 8028962: f083 0301 eor.w r3, r3, #1 + 8028966: b2db uxtb r3, r3 + 8028968: 2b00 cmp r3, #0 + 802896a: f040 81fb bne.w 8028d64 const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 8028a02: 683b ldr r3, [r7, #0] - 8028a04: 689b ldr r3, [r3, #8] - 8028a06: f8c7 3084 str.w r3, [r7, #132] ; 0x84 + 802896e: 683b ldr r3, [r7, #0] + 8028970: 689b ldr r3, [r3, #8] + 8028972: f8c7 3084 str.w r3, [r7, #132] ; 0x84 draw_ctx->clip_area = &series_clip_area; - 8028a0a: 683b ldr r3, [r7, #0] - 8028a0c: f107 0264 add.w r2, r7, #100 ; 0x64 - 8028a10: 609a str r2, [r3, #8] + 8028976: 683b ldr r3, [r7, #0] + 8028978: f107 0264 add.w r2, r7, #100 ; 0x64 + 802897c: 609a str r2, [r3, #8] int16_t i; int16_t i_start; int16_t i_end; lv_point_t p1; lv_point_t p2; lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 8028a12: 2100 movs r1, #0 - 8028a14: 6878 ldr r0, [r7, #4] - 8028a16: f7ff fc5a bl 80282ce - 8028a1a: 4603 mov r3, r0 - 8028a1c: f8a7 3082 strh.w r3, [r7, #130] ; 0x82 + 802897e: 2100 movs r1, #0 + 8028980: 6878 ldr r0, [r7, #4] + 8028982: f7ff fc5a bl 802823a + 8028986: 4603 mov r3, r0 + 8028988: f8a7 3082 strh.w r3, [r7, #130] ; 0x82 lv_coord_t pad_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN) + border_width; - 8028a20: 2100 movs r1, #0 - 8028a22: 6878 ldr r0, [r7, #4] - 8028a24: f7ff fc08 bl 8028238 - 8028a28: 4603 mov r3, r0 - 8028a2a: b29a uxth r2, r3 - 8028a2c: f8b7 3082 ldrh.w r3, [r7, #130] ; 0x82 - 8028a30: 4413 add r3, r2 - 8028a32: b29b uxth r3, r3 - 8028a34: f8a7 3080 strh.w r3, [r7, #128] ; 0x80 + 802898c: 2100 movs r1, #0 + 802898e: 6878 ldr r0, [r7, #4] + 8028990: f7ff fc08 bl 80281a4 + 8028994: 4603 mov r3, r0 + 8028996: b29a uxth r2, r3 + 8028998: f8b7 3082 ldrh.w r3, [r7, #130] ; 0x82 + 802899c: 4413 add r3, r2 + 802899e: b29b uxth r3, r3 + 80289a0: f8a7 3080 strh.w r3, [r7, #128] ; 0x80 lv_coord_t pad_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN) + border_width; - 8028a38: 2100 movs r1, #0 - 8028a3a: 6878 ldr r0, [r7, #4] - 8028a3c: f7ff fbd6 bl 80281ec - 8028a40: 4603 mov r3, r0 - 8028a42: b29a uxth r2, r3 - 8028a44: f8b7 3082 ldrh.w r3, [r7, #130] ; 0x82 - 8028a48: 4413 add r3, r2 - 8028a4a: b29b uxth r3, r3 - 8028a4c: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 80289a4: 2100 movs r1, #0 + 80289a6: 6878 ldr r0, [r7, #4] + 80289a8: f7ff fbd6 bl 8028158 + 80289ac: 4603 mov r3, r0 + 80289ae: b29a uxth r2, r3 + 80289b0: f8b7 3082 ldrh.w r3, [r7, #130] ; 0x82 + 80289b4: 4413 add r3, r2 + 80289b6: b29b uxth r3, r3 + 80289b8: f8a7 307e strh.w r3, [r7, #126] ; 0x7e lv_coord_t w = ((int32_t)lv_obj_get_content_width(obj) * chart->zoom_x) >> 8; - 8028a50: 6878 ldr r0, [r7, #4] - 8028a52: f7e1 fb95 bl 800a180 - 8028a56: 4603 mov r3, r0 - 8028a58: 461a mov r2, r3 - 8028a5a: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 8028a5e: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 - 8028a62: fb02 f303 mul.w r3, r2, r3 - 8028a66: 121b asrs r3, r3, #8 - 8028a68: f8a7 307c strh.w r3, [r7, #124] ; 0x7c + 80289bc: 6878 ldr r0, [r7, #4] + 80289be: f7e1 fba9 bl 800a114 + 80289c2: 4603 mov r3, r0 + 80289c4: 461a mov r2, r3 + 80289c6: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 80289ca: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 + 80289ce: fb02 f303 mul.w r3, r2, r3 + 80289d2: 121b asrs r3, r3, #8 + 80289d4: f8a7 307c strh.w r3, [r7, #124] ; 0x7c lv_coord_t h = ((int32_t)lv_obj_get_content_height(obj) * chart->zoom_y) >> 8; - 8028a6c: 6878 ldr r0, [r7, #4] - 8028a6e: f7e1 fbb2 bl 800a1d6 - 8028a72: 4603 mov r3, r0 - 8028a74: 461a mov r2, r3 - 8028a76: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 8028a7a: f8b3 3086 ldrh.w r3, [r3, #134] ; 0x86 - 8028a7e: fb02 f303 mul.w r3, r2, r3 - 8028a82: 121b asrs r3, r3, #8 - 8028a84: f8a7 307a strh.w r3, [r7, #122] ; 0x7a + 80289d8: 6878 ldr r0, [r7, #4] + 80289da: f7e1 fbc6 bl 800a16a + 80289de: 4603 mov r3, r0 + 80289e0: 461a mov r2, r3 + 80289e2: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 80289e6: f8b3 3086 ldrh.w r3, [r3, #134] ; 0x86 + 80289ea: fb02 f303 mul.w r3, r2, r3 + 80289ee: 121b asrs r3, r3, #8 + 80289f0: f8a7 307a strh.w r3, [r7, #122] ; 0x7a lv_draw_line_dsc_t line_dsc; lv_draw_line_dsc_init(&line_dsc); - 8028a88: f107 0350 add.w r3, r7, #80 ; 0x50 - 8028a8c: 4618 mov r0, r3 - 8028a8e: f7ea fa5a bl 8012f46 + 80289f4: f107 0350 add.w r3, r7, #80 ; 0x50 + 80289f8: 4618 mov r0, r3 + 80289fa: f7ea fa5a bl 8012eb2 lv_obj_init_draw_line_dsc(obj, LV_PART_MAIN, &line_dsc); - 8028a92: f107 0350 add.w r3, r7, #80 ; 0x50 - 8028a96: 461a mov r2, r3 - 8028a98: 2100 movs r1, #0 - 8028a9a: 6878 ldr r0, [r7, #4] - 8028a9c: f7e0 f864 bl 8008b68 + 80289fe: f107 0350 add.w r3, r7, #80 ; 0x50 + 8028a02: 461a mov r2, r3 + 8028a04: 2100 movs r1, #0 + 8028a06: 6878 ldr r0, [r7, #4] + 8028a08: f7e0 f878 bl 8008afc lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 8028aa0: f107 0308 add.w r3, r7, #8 - 8028aa4: 6839 ldr r1, [r7, #0] - 8028aa6: 4618 mov r0, r3 - 8028aa8: f7e0 f9e1 bl 8008e6e + 8028a0c: f107 0308 add.w r3, r7, #8 + 8028a10: 6839 ldr r1, [r7, #0] + 8028a12: 4618 mov r0, r3 + 8028a14: f7e0 f9f5 bl 8008e02 part_draw_dsc.part = LV_PART_MAIN; - 8028aac: 2300 movs r3, #0 - 8028aae: 63fb str r3, [r7, #60] ; 0x3c + 8028a18: 2300 movs r3, #0 + 8028a1a: 63fb str r3, [r7, #60] ; 0x3c part_draw_dsc.class_p = MY_CLASS; - 8028ab0: 4b9f ldr r3, [pc, #636] ; (8028d30 ) - 8028ab2: 60fb str r3, [r7, #12] + 8028a1c: 4b9f ldr r3, [pc, #636] ; (8028c9c ) + 8028a1e: 60fb str r3, [r7, #12] part_draw_dsc.type = LV_CHART_DRAW_PART_DIV_LINE_INIT; - 8028ab4: 2300 movs r3, #0 - 8028ab6: 613b str r3, [r7, #16] + 8028a20: 2300 movs r3, #0 + 8028a22: 613b str r3, [r7, #16] part_draw_dsc.line_dsc = &line_dsc; - 8028ab8: f107 0350 add.w r3, r7, #80 ; 0x50 - 8028abc: 623b str r3, [r7, #32] + 8028a24: f107 0350 add.w r3, r7, #80 ; 0x50 + 8028a28: 623b str r3, [r7, #32] part_draw_dsc.id = 0xFFFFFFFF; - 8028abe: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 8028ac2: 643b str r3, [r7, #64] ; 0x40 + 8028a2a: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 8028a2e: 643b str r3, [r7, #64] ; 0x40 part_draw_dsc.p1 = NULL; - 8028ac4: 2300 movs r3, #0 - 8028ac6: 62fb str r3, [r7, #44] ; 0x2c + 8028a30: 2300 movs r3, #0 + 8028a32: 62fb str r3, [r7, #44] ; 0x2c part_draw_dsc.p2 = NULL; - 8028ac8: 2300 movs r3, #0 - 8028aca: 633b str r3, [r7, #48] ; 0x30 + 8028a34: 2300 movs r3, #0 + 8028a36: 633b str r3, [r7, #48] ; 0x30 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 8028acc: f107 0308 add.w r3, r7, #8 - 8028ad0: 461a mov r2, r3 - 8028ad2: 211a movs r1, #26 - 8028ad4: 6878 ldr r0, [r7, #4] - 8028ad6: f7d9 fcd3 bl 8002480 + 8028a38: f107 0308 add.w r3, r7, #8 + 8028a3c: 461a mov r2, r3 + 8028a3e: 211a movs r1, #26 + 8028a40: 6878 ldr r0, [r7, #4] + 8028a42: f7d9 fce7 bl 8002414 lv_opa_t border_opa = lv_obj_get_style_border_opa(obj, LV_PART_MAIN); - 8028ada: 2100 movs r1, #0 - 8028adc: 6878 ldr r0, [r7, #4] - 8028ade: f7ff fbe4 bl 80282aa - 8028ae2: 4603 mov r3, r0 - 8028ae4: f887 3079 strb.w r3, [r7, #121] ; 0x79 + 8028a46: 2100 movs r1, #0 + 8028a48: 6878 ldr r0, [r7, #4] + 8028a4a: f7ff fbe4 bl 8028216 + 8028a4e: 4603 mov r3, r0 + 8028a50: f887 3079 strb.w r3, [r7, #121] ; 0x79 lv_coord_t border_w = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 8028ae8: 2100 movs r1, #0 - 8028aea: 6878 ldr r0, [r7, #4] - 8028aec: f7ff fbef bl 80282ce - 8028af0: 4603 mov r3, r0 - 8028af2: f8a7 3076 strh.w r3, [r7, #118] ; 0x76 + 8028a54: 2100 movs r1, #0 + 8028a56: 6878 ldr r0, [r7, #4] + 8028a58: f7ff fbef bl 802823a + 8028a5c: 4603 mov r3, r0 + 8028a5e: f8a7 3076 strh.w r3, [r7, #118] ; 0x76 lv_border_side_t border_side = lv_obj_get_style_border_side(obj, LV_PART_MAIN); - 8028af6: 2100 movs r1, #0 - 8028af8: 6878 ldr r0, [r7, #4] - 8028afa: f7ff fbfb bl 80282f4 - 8028afe: 4603 mov r3, r0 - 8028b00: f887 3075 strb.w r3, [r7, #117] ; 0x75 + 8028a62: 2100 movs r1, #0 + 8028a64: 6878 ldr r0, [r7, #4] + 8028a66: f7ff fbfb bl 8028260 + 8028a6a: 4603 mov r3, r0 + 8028a6c: f887 3075 strb.w r3, [r7, #117] ; 0x75 lv_coord_t scroll_left = lv_obj_get_scroll_left(obj); - 8028b04: 6878 ldr r0, [r7, #4] - 8028b06: f7e2 ffff bl 800bb08 - 8028b0a: 4603 mov r3, r0 - 8028b0c: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 + 8028a70: 6878 ldr r0, [r7, #4] + 8028a72: f7e3 f813 bl 800ba9c + 8028a76: 4603 mov r3, r0 + 8028a78: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 lv_coord_t scroll_top = lv_obj_get_scroll_top(obj); - 8028b10: 6878 ldr r0, [r7, #4] - 8028b12: f7e2 ff5b bl 800b9cc - 8028b16: 4603 mov r3, r0 - 8028b18: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 + 8028a7c: 6878 ldr r0, [r7, #4] + 8028a7e: f7e2 ff6f bl 800b960 + 8028a82: 4603 mov r3, r0 + 8028a84: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 if(chart->hdiv_cnt != 0) { - 8028b1c: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 8028b20: f8b3 307e ldrh.w r3, [r3, #126] ; 0x7e - 8028b24: 2b00 cmp r3, #0 - 8028b26: f000 80a5 beq.w 8028c74 + 8028a88: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 8028a8c: f8b3 307e ldrh.w r3, [r3, #126] ; 0x7e + 8028a90: 2b00 cmp r3, #0 + 8028a92: f000 80a5 beq.w 8028be0 lv_coord_t y_ofs = obj->coords.y1 + pad_top - scroll_top; - 8028b2a: 687b ldr r3, [r7, #4] - 8028b2c: f9b3 3016 ldrsh.w r3, [r3, #22] - 8028b30: b29a uxth r2, r3 - 8028b32: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e - 8028b36: 4413 add r3, r2 - 8028b38: b29a uxth r2, r3 - 8028b3a: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70 - 8028b3e: 1ad3 subs r3, r2, r3 - 8028b40: b29b uxth r3, r3 - 8028b42: f8a7 306e strh.w r3, [r7, #110] ; 0x6e + 8028a96: 687b ldr r3, [r7, #4] + 8028a98: f9b3 3016 ldrsh.w r3, [r3, #22] + 8028a9c: b29a uxth r2, r3 + 8028a9e: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e + 8028aa2: 4413 add r3, r2 + 8028aa4: b29a uxth r2, r3 + 8028aa6: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70 + 8028aaa: 1ad3 subs r3, r2, r3 + 8028aac: b29b uxth r3, r3 + 8028aae: f8a7 306e strh.w r3, [r7, #110] ; 0x6e p1.x = obj->coords.x1; - 8028b46: 687b ldr r3, [r7, #4] - 8028b48: f9b3 3014 ldrsh.w r3, [r3, #20] - 8028b4c: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 + 8028ab2: 687b ldr r3, [r7, #4] + 8028ab4: f9b3 3014 ldrsh.w r3, [r3, #20] + 8028ab8: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 p2.x = obj->coords.x2; - 8028b50: 687b ldr r3, [r7, #4] - 8028b52: f9b3 3018 ldrsh.w r3, [r3, #24] - 8028b56: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 8028abc: 687b ldr r3, [r7, #4] + 8028abe: f9b3 3018 ldrsh.w r3, [r3, #24] + 8028ac2: f8a7 305c strh.w r3, [r7, #92] ; 0x5c i_start = 0; - 8028b5a: 2300 movs r3, #0 - 8028b5c: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 + 8028ac6: 2300 movs r3, #0 + 8028ac8: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 i_end = chart->hdiv_cnt; - 8028b60: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 8028b64: f8b3 307e ldrh.w r3, [r3, #126] ; 0x7e - 8028b68: f8a7 3092 strh.w r3, [r7, #146] ; 0x92 + 8028acc: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 8028ad0: f8b3 307e ldrh.w r3, [r3, #126] ; 0x7e + 8028ad4: f8a7 3092 strh.w r3, [r7, #146] ; 0x92 if(border_opa > LV_OPA_MIN && border_w > 0) { - 8028b6c: f897 3079 ldrb.w r3, [r7, #121] ; 0x79 - 8028b70: 2b02 cmp r3, #2 - 8028b72: d92b bls.n 8028bcc - 8028b74: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 - 8028b78: 2b00 cmp r3, #0 - 8028b7a: dd27 ble.n 8028bcc + 8028ad8: f897 3079 ldrb.w r3, [r7, #121] ; 0x79 + 8028adc: 2b02 cmp r3, #2 + 8028ade: d92b bls.n 8028b38 + 8028ae0: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 + 8028ae4: 2b00 cmp r3, #0 + 8028ae6: dd27 ble.n 8028b38 if((border_side & LV_BORDER_SIDE_TOP) && (lv_obj_get_style_pad_top(obj, LV_PART_MAIN) == 0)) i_start++; - 8028b7c: f897 3075 ldrb.w r3, [r7, #117] ; 0x75 - 8028b80: f003 0302 and.w r3, r3, #2 - 8028b84: 2b00 cmp r3, #0 - 8028b86: d00d beq.n 8028ba4 - 8028b88: 2100 movs r1, #0 - 8028b8a: 6878 ldr r0, [r7, #4] - 8028b8c: f7ff fb2e bl 80281ec - 8028b90: 4603 mov r3, r0 - 8028b92: 2b00 cmp r3, #0 - 8028b94: d106 bne.n 8028ba4 - 8028b96: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 - 8028b9a: b29b uxth r3, r3 - 8028b9c: 3301 adds r3, #1 - 8028b9e: b29b uxth r3, r3 - 8028ba0: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 + 8028ae8: f897 3075 ldrb.w r3, [r7, #117] ; 0x75 + 8028aec: f003 0302 and.w r3, r3, #2 + 8028af0: 2b00 cmp r3, #0 + 8028af2: d00d beq.n 8028b10 + 8028af4: 2100 movs r1, #0 + 8028af6: 6878 ldr r0, [r7, #4] + 8028af8: f7ff fb2e bl 8028158 + 8028afc: 4603 mov r3, r0 + 8028afe: 2b00 cmp r3, #0 + 8028b00: d106 bne.n 8028b10 + 8028b02: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 + 8028b06: b29b uxth r3, r3 + 8028b08: 3301 adds r3, #1 + 8028b0a: b29b uxth r3, r3 + 8028b0c: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 if((border_side & LV_BORDER_SIDE_BOTTOM) && (lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN) == 0)) i_end--; - 8028ba4: f897 3075 ldrb.w r3, [r7, #117] ; 0x75 - 8028ba8: f003 0301 and.w r3, r3, #1 - 8028bac: 2b00 cmp r3, #0 - 8028bae: d00d beq.n 8028bcc - 8028bb0: 2100 movs r1, #0 - 8028bb2: 6878 ldr r0, [r7, #4] - 8028bb4: f7ff fb2d bl 8028212 - 8028bb8: 4603 mov r3, r0 - 8028bba: 2b00 cmp r3, #0 - 8028bbc: d106 bne.n 8028bcc - 8028bbe: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 - 8028bc2: b29b uxth r3, r3 - 8028bc4: 3b01 subs r3, #1 - 8028bc6: b29b uxth r3, r3 - 8028bc8: f8a7 3092 strh.w r3, [r7, #146] ; 0x92 + 8028b10: f897 3075 ldrb.w r3, [r7, #117] ; 0x75 + 8028b14: f003 0301 and.w r3, r3, #1 + 8028b18: 2b00 cmp r3, #0 + 8028b1a: d00d beq.n 8028b38 + 8028b1c: 2100 movs r1, #0 + 8028b1e: 6878 ldr r0, [r7, #4] + 8028b20: f7ff fb2d bl 802817e + 8028b24: 4603 mov r3, r0 + 8028b26: 2b00 cmp r3, #0 + 8028b28: d106 bne.n 8028b38 + 8028b2a: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 + 8028b2e: b29b uxth r3, r3 + 8028b30: 3b01 subs r3, #1 + 8028b32: b29b uxth r3, r3 + 8028b34: f8a7 3092 strh.w r3, [r7, #146] ; 0x92 } for(i = i_start; i < i_end; i++) { - 8028bcc: f8b7 3094 ldrh.w r3, [r7, #148] ; 0x94 - 8028bd0: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 - 8028bd4: e048 b.n 8028c68 + 8028b38: f8b7 3094 ldrh.w r3, [r7, #148] ; 0x94 + 8028b3c: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 + 8028b40: e048 b.n 8028bd4 p1.y = (int32_t)((int32_t)h * i) / (chart->hdiv_cnt - 1); - 8028bd6: f9b7 307a ldrsh.w r3, [r7, #122] ; 0x7a - 8028bda: f9b7 2096 ldrsh.w r2, [r7, #150] ; 0x96 - 8028bde: fb03 f202 mul.w r2, r3, r2 - 8028be2: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 8028be6: f8b3 307e ldrh.w r3, [r3, #126] ; 0x7e - 8028bea: 3b01 subs r3, #1 - 8028bec: fb92 f3f3 sdiv r3, r2, r3 - 8028bf0: b21b sxth r3, r3 - 8028bf2: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 + 8028b42: f9b7 307a ldrsh.w r3, [r7, #122] ; 0x7a + 8028b46: f9b7 2096 ldrsh.w r2, [r7, #150] ; 0x96 + 8028b4a: fb03 f202 mul.w r2, r3, r2 + 8028b4e: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 8028b52: f8b3 307e ldrh.w r3, [r3, #126] ; 0x7e + 8028b56: 3b01 subs r3, #1 + 8028b58: fb92 f3f3 sdiv r3, r2, r3 + 8028b5c: b21b sxth r3, r3 + 8028b5e: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 p1.y += y_ofs; - 8028bf6: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 - 8028bfa: b29a uxth r2, r3 - 8028bfc: f8b7 306e ldrh.w r3, [r7, #110] ; 0x6e - 8028c00: 4413 add r3, r2 - 8028c02: b29b uxth r3, r3 - 8028c04: b21b sxth r3, r3 - 8028c06: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 + 8028b62: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 + 8028b66: b29a uxth r2, r3 + 8028b68: f8b7 306e ldrh.w r3, [r7, #110] ; 0x6e + 8028b6c: 4413 add r3, r2 + 8028b6e: b29b uxth r3, r3 + 8028b70: b21b sxth r3, r3 + 8028b72: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 p2.y = p1.y; - 8028c0a: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 - 8028c0e: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 8028b76: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 + 8028b7a: f8a7 305e strh.w r3, [r7, #94] ; 0x5e part_draw_dsc.class_p = MY_CLASS; - 8028c12: 4b47 ldr r3, [pc, #284] ; (8028d30 ) - 8028c14: 60fb str r3, [r7, #12] + 8028b7e: 4b47 ldr r3, [pc, #284] ; (8028c9c ) + 8028b80: 60fb str r3, [r7, #12] part_draw_dsc.type = LV_CHART_DRAW_PART_DIV_LINE_HOR; - 8028c16: 2301 movs r3, #1 - 8028c18: 613b str r3, [r7, #16] + 8028b82: 2301 movs r3, #1 + 8028b84: 613b str r3, [r7, #16] part_draw_dsc.p1 = &p1; - 8028c1a: f107 0360 add.w r3, r7, #96 ; 0x60 - 8028c1e: 62fb str r3, [r7, #44] ; 0x2c + 8028b86: f107 0360 add.w r3, r7, #96 ; 0x60 + 8028b8a: 62fb str r3, [r7, #44] ; 0x2c part_draw_dsc.p2 = &p2; - 8028c20: f107 035c add.w r3, r7, #92 ; 0x5c - 8028c24: 633b str r3, [r7, #48] ; 0x30 + 8028b8c: f107 035c add.w r3, r7, #92 ; 0x5c + 8028b90: 633b str r3, [r7, #48] ; 0x30 part_draw_dsc.id = i; - 8028c26: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 - 8028c2a: 643b str r3, [r7, #64] ; 0x40 + 8028b92: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 + 8028b96: 643b str r3, [r7, #64] ; 0x40 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 8028c2c: f107 0308 add.w r3, r7, #8 - 8028c30: 461a mov r2, r3 - 8028c32: 211a movs r1, #26 - 8028c34: 6878 ldr r0, [r7, #4] - 8028c36: f7d9 fc23 bl 8002480 + 8028b98: f107 0308 add.w r3, r7, #8 + 8028b9c: 461a mov r2, r3 + 8028b9e: 211a movs r1, #26 + 8028ba0: 6878 ldr r0, [r7, #4] + 8028ba2: f7d9 fc37 bl 8002414 lv_draw_line(draw_ctx, &line_dsc, &p1, &p2); - 8028c3a: f107 035c add.w r3, r7, #92 ; 0x5c - 8028c3e: f107 0260 add.w r2, r7, #96 ; 0x60 - 8028c42: f107 0150 add.w r1, r7, #80 ; 0x50 - 8028c46: 6838 ldr r0, [r7, #0] - 8028c48: f7ea f993 bl 8012f72 + 8028ba6: f107 035c add.w r3, r7, #92 ; 0x5c + 8028baa: f107 0260 add.w r2, r7, #96 ; 0x60 + 8028bae: f107 0150 add.w r1, r7, #80 ; 0x50 + 8028bb2: 6838 ldr r0, [r7, #0] + 8028bb4: f7ea f993 bl 8012ede lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 8028c4c: f107 0308 add.w r3, r7, #8 - 8028c50: 461a mov r2, r3 - 8028c52: 211b movs r1, #27 - 8028c54: 6878 ldr r0, [r7, #4] - 8028c56: f7d9 fc13 bl 8002480 + 8028bb8: f107 0308 add.w r3, r7, #8 + 8028bbc: 461a mov r2, r3 + 8028bbe: 211b movs r1, #27 + 8028bc0: 6878 ldr r0, [r7, #4] + 8028bc2: f7d9 fc27 bl 8002414 for(i = i_start; i < i_end; i++) { - 8028c5a: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 - 8028c5e: b29b uxth r3, r3 - 8028c60: 3301 adds r3, #1 - 8028c62: b29b uxth r3, r3 - 8028c64: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 - 8028c68: f9b7 2096 ldrsh.w r2, [r7, #150] ; 0x96 - 8028c6c: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 - 8028c70: 429a cmp r2, r3 - 8028c72: dbb0 blt.n 8028bd6 + 8028bc6: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 + 8028bca: b29b uxth r3, r3 + 8028bcc: 3301 adds r3, #1 + 8028bce: b29b uxth r3, r3 + 8028bd0: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 + 8028bd4: f9b7 2096 ldrsh.w r2, [r7, #150] ; 0x96 + 8028bd8: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 + 8028bdc: 429a cmp r2, r3 + 8028bde: dbb0 blt.n 8028b42 } } if(chart->vdiv_cnt != 0) { - 8028c74: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 8028c78: f8b3 3080 ldrh.w r3, [r3, #128] ; 0x80 - 8028c7c: 2b00 cmp r3, #0 - 8028c7e: f000 80a8 beq.w 8028dd2 + 8028be0: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 8028be4: f8b3 3080 ldrh.w r3, [r3, #128] ; 0x80 + 8028be8: 2b00 cmp r3, #0 + 8028bea: f000 80a8 beq.w 8028d3e lv_coord_t x_ofs = obj->coords.x1 + pad_left - scroll_left; - 8028c82: 687b ldr r3, [r7, #4] - 8028c84: f9b3 3014 ldrsh.w r3, [r3, #20] - 8028c88: b29a uxth r2, r3 - 8028c8a: f8b7 3080 ldrh.w r3, [r7, #128] ; 0x80 - 8028c8e: 4413 add r3, r2 - 8028c90: b29a uxth r2, r3 - 8028c92: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72 - 8028c96: 1ad3 subs r3, r2, r3 - 8028c98: b29b uxth r3, r3 - 8028c9a: f8a7 306c strh.w r3, [r7, #108] ; 0x6c + 8028bee: 687b ldr r3, [r7, #4] + 8028bf0: f9b3 3014 ldrsh.w r3, [r3, #20] + 8028bf4: b29a uxth r2, r3 + 8028bf6: f8b7 3080 ldrh.w r3, [r7, #128] ; 0x80 + 8028bfa: 4413 add r3, r2 + 8028bfc: b29a uxth r2, r3 + 8028bfe: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72 + 8028c02: 1ad3 subs r3, r2, r3 + 8028c04: b29b uxth r3, r3 + 8028c06: f8a7 306c strh.w r3, [r7, #108] ; 0x6c p1.y = obj->coords.y1; - 8028c9e: 687b ldr r3, [r7, #4] - 8028ca0: f9b3 3016 ldrsh.w r3, [r3, #22] - 8028ca4: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 + 8028c0a: 687b ldr r3, [r7, #4] + 8028c0c: f9b3 3016 ldrsh.w r3, [r3, #22] + 8028c10: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 p2.y = obj->coords.y2; - 8028ca8: 687b ldr r3, [r7, #4] - 8028caa: f9b3 301a ldrsh.w r3, [r3, #26] - 8028cae: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 8028c14: 687b ldr r3, [r7, #4] + 8028c16: f9b3 301a ldrsh.w r3, [r3, #26] + 8028c1a: f8a7 305e strh.w r3, [r7, #94] ; 0x5e i_start = 0; - 8028cb2: 2300 movs r3, #0 - 8028cb4: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 + 8028c1e: 2300 movs r3, #0 + 8028c20: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 i_end = chart->vdiv_cnt; - 8028cb8: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 8028cbc: f8b3 3080 ldrh.w r3, [r3, #128] ; 0x80 - 8028cc0: f8a7 3092 strh.w r3, [r7, #146] ; 0x92 + 8028c24: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 8028c28: f8b3 3080 ldrh.w r3, [r3, #128] ; 0x80 + 8028c2c: f8a7 3092 strh.w r3, [r7, #146] ; 0x92 if(border_opa > LV_OPA_MIN && border_w > 0) { - 8028cc4: f897 3079 ldrb.w r3, [r7, #121] ; 0x79 - 8028cc8: 2b02 cmp r3, #2 - 8028cca: d92b bls.n 8028d24 - 8028ccc: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 - 8028cd0: 2b00 cmp r3, #0 - 8028cd2: dd27 ble.n 8028d24 + 8028c30: f897 3079 ldrb.w r3, [r7, #121] ; 0x79 + 8028c34: 2b02 cmp r3, #2 + 8028c36: d92b bls.n 8028c90 + 8028c38: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 + 8028c3c: 2b00 cmp r3, #0 + 8028c3e: dd27 ble.n 8028c90 if((border_side & LV_BORDER_SIDE_LEFT) && (lv_obj_get_style_pad_left(obj, LV_PART_MAIN) == 0)) i_start++; - 8028cd4: f897 3075 ldrb.w r3, [r7, #117] ; 0x75 - 8028cd8: f003 0304 and.w r3, r3, #4 - 8028cdc: 2b00 cmp r3, #0 - 8028cde: d00d beq.n 8028cfc - 8028ce0: 2100 movs r1, #0 - 8028ce2: 6878 ldr r0, [r7, #4] - 8028ce4: f7ff faa8 bl 8028238 - 8028ce8: 4603 mov r3, r0 - 8028cea: 2b00 cmp r3, #0 - 8028cec: d106 bne.n 8028cfc - 8028cee: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 - 8028cf2: b29b uxth r3, r3 - 8028cf4: 3301 adds r3, #1 - 8028cf6: b29b uxth r3, r3 - 8028cf8: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 + 8028c40: f897 3075 ldrb.w r3, [r7, #117] ; 0x75 + 8028c44: f003 0304 and.w r3, r3, #4 + 8028c48: 2b00 cmp r3, #0 + 8028c4a: d00d beq.n 8028c68 + 8028c4c: 2100 movs r1, #0 + 8028c4e: 6878 ldr r0, [r7, #4] + 8028c50: f7ff faa8 bl 80281a4 + 8028c54: 4603 mov r3, r0 + 8028c56: 2b00 cmp r3, #0 + 8028c58: d106 bne.n 8028c68 + 8028c5a: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 + 8028c5e: b29b uxth r3, r3 + 8028c60: 3301 adds r3, #1 + 8028c62: b29b uxth r3, r3 + 8028c64: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 if((border_side & LV_BORDER_SIDE_RIGHT) && (lv_obj_get_style_pad_right(obj, LV_PART_MAIN) == 0)) i_end--; - 8028cfc: f897 3075 ldrb.w r3, [r7, #117] ; 0x75 - 8028d00: f003 0308 and.w r3, r3, #8 - 8028d04: 2b00 cmp r3, #0 - 8028d06: d00d beq.n 8028d24 - 8028d08: 2100 movs r1, #0 - 8028d0a: 6878 ldr r0, [r7, #4] - 8028d0c: f7ff faa7 bl 802825e - 8028d10: 4603 mov r3, r0 - 8028d12: 2b00 cmp r3, #0 - 8028d14: d106 bne.n 8028d24 - 8028d16: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 - 8028d1a: b29b uxth r3, r3 - 8028d1c: 3b01 subs r3, #1 - 8028d1e: b29b uxth r3, r3 - 8028d20: f8a7 3092 strh.w r3, [r7, #146] ; 0x92 + 8028c68: f897 3075 ldrb.w r3, [r7, #117] ; 0x75 + 8028c6c: f003 0308 and.w r3, r3, #8 + 8028c70: 2b00 cmp r3, #0 + 8028c72: d00d beq.n 8028c90 + 8028c74: 2100 movs r1, #0 + 8028c76: 6878 ldr r0, [r7, #4] + 8028c78: f7ff faa7 bl 80281ca + 8028c7c: 4603 mov r3, r0 + 8028c7e: 2b00 cmp r3, #0 + 8028c80: d106 bne.n 8028c90 + 8028c82: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 + 8028c86: b29b uxth r3, r3 + 8028c88: 3b01 subs r3, #1 + 8028c8a: b29b uxth r3, r3 + 8028c8c: f8a7 3092 strh.w r3, [r7, #146] ; 0x92 } for(i = i_start; i < i_end; i++) { - 8028d24: f8b7 3094 ldrh.w r3, [r7, #148] ; 0x94 - 8028d28: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 - 8028d2c: e04b b.n 8028dc6 - 8028d2e: bf00 nop - 8028d30: 0806cbf8 .word 0x0806cbf8 + 8028c90: f8b7 3094 ldrh.w r3, [r7, #148] ; 0x94 + 8028c94: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 + 8028c98: e04b b.n 8028d32 + 8028c9a: bf00 nop + 8028c9c: 0806cb50 .word 0x0806cb50 p1.x = (int32_t)((int32_t)w * i) / (chart->vdiv_cnt - 1); - 8028d34: f9b7 307c ldrsh.w r3, [r7, #124] ; 0x7c - 8028d38: f9b7 2096 ldrsh.w r2, [r7, #150] ; 0x96 - 8028d3c: fb03 f202 mul.w r2, r3, r2 - 8028d40: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 8028d44: f8b3 3080 ldrh.w r3, [r3, #128] ; 0x80 - 8028d48: 3b01 subs r3, #1 - 8028d4a: fb92 f3f3 sdiv r3, r2, r3 - 8028d4e: b21b sxth r3, r3 - 8028d50: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 + 8028ca0: f9b7 307c ldrsh.w r3, [r7, #124] ; 0x7c + 8028ca4: f9b7 2096 ldrsh.w r2, [r7, #150] ; 0x96 + 8028ca8: fb03 f202 mul.w r2, r3, r2 + 8028cac: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 8028cb0: f8b3 3080 ldrh.w r3, [r3, #128] ; 0x80 + 8028cb4: 3b01 subs r3, #1 + 8028cb6: fb92 f3f3 sdiv r3, r2, r3 + 8028cba: b21b sxth r3, r3 + 8028cbc: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 p1.x += x_ofs; - 8028d54: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 - 8028d58: b29a uxth r2, r3 - 8028d5a: f8b7 306c ldrh.w r3, [r7, #108] ; 0x6c - 8028d5e: 4413 add r3, r2 - 8028d60: b29b uxth r3, r3 - 8028d62: b21b sxth r3, r3 - 8028d64: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 + 8028cc0: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 + 8028cc4: b29a uxth r2, r3 + 8028cc6: f8b7 306c ldrh.w r3, [r7, #108] ; 0x6c + 8028cca: 4413 add r3, r2 + 8028ccc: b29b uxth r3, r3 + 8028cce: b21b sxth r3, r3 + 8028cd0: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 p2.x = p1.x; - 8028d68: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 - 8028d6c: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 8028cd4: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 + 8028cd8: f8a7 305c strh.w r3, [r7, #92] ; 0x5c part_draw_dsc.class_p = MY_CLASS; - 8028d70: 4b23 ldr r3, [pc, #140] ; (8028e00 ) - 8028d72: 60fb str r3, [r7, #12] + 8028cdc: 4b23 ldr r3, [pc, #140] ; (8028d6c ) + 8028cde: 60fb str r3, [r7, #12] part_draw_dsc.type = LV_CHART_DRAW_PART_DIV_LINE_VER; - 8028d74: 2302 movs r3, #2 - 8028d76: 613b str r3, [r7, #16] + 8028ce0: 2302 movs r3, #2 + 8028ce2: 613b str r3, [r7, #16] part_draw_dsc.p1 = &p1; - 8028d78: f107 0360 add.w r3, r7, #96 ; 0x60 - 8028d7c: 62fb str r3, [r7, #44] ; 0x2c + 8028ce4: f107 0360 add.w r3, r7, #96 ; 0x60 + 8028ce8: 62fb str r3, [r7, #44] ; 0x2c part_draw_dsc.p2 = &p2; - 8028d7e: f107 035c add.w r3, r7, #92 ; 0x5c - 8028d82: 633b str r3, [r7, #48] ; 0x30 + 8028cea: f107 035c add.w r3, r7, #92 ; 0x5c + 8028cee: 633b str r3, [r7, #48] ; 0x30 part_draw_dsc.id = i; - 8028d84: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 - 8028d88: 643b str r3, [r7, #64] ; 0x40 + 8028cf0: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 + 8028cf4: 643b str r3, [r7, #64] ; 0x40 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 8028d8a: f107 0308 add.w r3, r7, #8 - 8028d8e: 461a mov r2, r3 - 8028d90: 211a movs r1, #26 - 8028d92: 6878 ldr r0, [r7, #4] - 8028d94: f7d9 fb74 bl 8002480 + 8028cf6: f107 0308 add.w r3, r7, #8 + 8028cfa: 461a mov r2, r3 + 8028cfc: 211a movs r1, #26 + 8028cfe: 6878 ldr r0, [r7, #4] + 8028d00: f7d9 fb88 bl 8002414 lv_draw_line(draw_ctx, &line_dsc, &p1, &p2); - 8028d98: f107 035c add.w r3, r7, #92 ; 0x5c - 8028d9c: f107 0260 add.w r2, r7, #96 ; 0x60 - 8028da0: f107 0150 add.w r1, r7, #80 ; 0x50 - 8028da4: 6838 ldr r0, [r7, #0] - 8028da6: f7ea f8e4 bl 8012f72 + 8028d04: f107 035c add.w r3, r7, #92 ; 0x5c + 8028d08: f107 0260 add.w r2, r7, #96 ; 0x60 + 8028d0c: f107 0150 add.w r1, r7, #80 ; 0x50 + 8028d10: 6838 ldr r0, [r7, #0] + 8028d12: f7ea f8e4 bl 8012ede lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 8028daa: f107 0308 add.w r3, r7, #8 - 8028dae: 461a mov r2, r3 - 8028db0: 211b movs r1, #27 - 8028db2: 6878 ldr r0, [r7, #4] - 8028db4: f7d9 fb64 bl 8002480 + 8028d16: f107 0308 add.w r3, r7, #8 + 8028d1a: 461a mov r2, r3 + 8028d1c: 211b movs r1, #27 + 8028d1e: 6878 ldr r0, [r7, #4] + 8028d20: f7d9 fb78 bl 8002414 for(i = i_start; i < i_end; i++) { - 8028db8: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 - 8028dbc: b29b uxth r3, r3 - 8028dbe: 3301 adds r3, #1 - 8028dc0: b29b uxth r3, r3 - 8028dc2: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 - 8028dc6: f9b7 2096 ldrsh.w r2, [r7, #150] ; 0x96 - 8028dca: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 - 8028dce: 429a cmp r2, r3 - 8028dd0: dbb0 blt.n 8028d34 + 8028d24: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 + 8028d28: b29b uxth r3, r3 + 8028d2a: 3301 adds r3, #1 + 8028d2c: b29b uxth r3, r3 + 8028d2e: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 + 8028d32: f9b7 2096 ldrsh.w r2, [r7, #150] ; 0x96 + 8028d36: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 + 8028d3a: 429a cmp r2, r3 + 8028d3c: dbb0 blt.n 8028ca0 } } part_draw_dsc.id = 0xFFFFFFFF; - 8028dd2: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 8028dd6: 643b str r3, [r7, #64] ; 0x40 + 8028d3e: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 8028d42: 643b str r3, [r7, #64] ; 0x40 part_draw_dsc.p1 = NULL; - 8028dd8: 2300 movs r3, #0 - 8028dda: 62fb str r3, [r7, #44] ; 0x2c + 8028d44: 2300 movs r3, #0 + 8028d46: 62fb str r3, [r7, #44] ; 0x2c part_draw_dsc.p2 = NULL; - 8028ddc: 2300 movs r3, #0 - 8028dde: 633b str r3, [r7, #48] ; 0x30 + 8028d48: 2300 movs r3, #0 + 8028d4a: 633b str r3, [r7, #48] ; 0x30 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 8028de0: f107 0308 add.w r3, r7, #8 - 8028de4: 461a mov r2, r3 - 8028de6: 211b movs r1, #27 - 8028de8: 6878 ldr r0, [r7, #4] - 8028dea: f7d9 fb49 bl 8002480 + 8028d4c: f107 0308 add.w r3, r7, #8 + 8028d50: 461a mov r2, r3 + 8028d52: 211b movs r1, #27 + 8028d54: 6878 ldr r0, [r7, #4] + 8028d56: f7d9 fb5d bl 8002414 draw_ctx->clip_area = clip_area_ori; - 8028dee: 683b ldr r3, [r7, #0] - 8028df0: f8d7 2084 ldr.w r2, [r7, #132] ; 0x84 - 8028df4: 609a str r2, [r3, #8] - 8028df6: e000 b.n 8028dfa + 8028d5a: 683b ldr r3, [r7, #0] + 8028d5c: f8d7 2084 ldr.w r2, [r7, #132] ; 0x84 + 8028d60: 609a str r2, [r3, #8] + 8028d62: e000 b.n 8028d66 if(mask_ret == false) return; - 8028df8: bf00 nop + 8028d64: bf00 nop } - 8028dfa: 3798 adds r7, #152 ; 0x98 - 8028dfc: 46bd mov sp, r7 - 8028dfe: bd80 pop {r7, pc} - 8028e00: 0806cbf8 .word 0x0806cbf8 + 8028d66: 3798 adds r7, #152 ; 0x98 + 8028d68: 46bd mov sp, r7 + 8028d6a: bd80 pop {r7, pc} + 8028d6c: 0806cb50 .word 0x0806cb50 -08028e04 : +08028d70 : static void draw_series_line(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx) { - 8028e04: b590 push {r4, r7, lr} - 8028e06: b0bf sub sp, #252 ; 0xfc - 8028e08: af00 add r7, sp, #0 - 8028e0a: 6078 str r0, [r7, #4] - 8028e0c: 6039 str r1, [r7, #0] + 8028d70: b590 push {r4, r7, lr} + 8028d72: b0bf sub sp, #252 ; 0xfc + 8028d74: af00 add r7, sp, #0 + 8028d76: 6078 str r0, [r7, #4] + 8028d78: 6039 str r1, [r7, #0] lv_area_t clip_area; if(_lv_area_intersect(&clip_area, &obj->coords, draw_ctx->clip_area) == false) return; - 8028e0e: 687b ldr r3, [r7, #4] - 8028e10: f103 0114 add.w r1, r3, #20 - 8028e14: 683b ldr r3, [r7, #0] - 8028e16: 689a ldr r2, [r3, #8] - 8028e18: f107 03b8 add.w r3, r7, #184 ; 0xb8 - 8028e1c: 4618 mov r0, r3 - 8028e1e: f008 f943 bl 80310a8 <_lv_area_intersect> - 8028e22: 4603 mov r3, r0 - 8028e24: f083 0301 eor.w r3, r3, #1 - 8028e28: b2db uxtb r3, r3 - 8028e2a: 2b00 cmp r3, #0 - 8028e2c: f040 83ee bne.w 802960c + 8028d7a: 687b ldr r3, [r7, #4] + 8028d7c: f103 0114 add.w r1, r3, #20 + 8028d80: 683b ldr r3, [r7, #0] + 8028d82: 689a ldr r2, [r3, #8] + 8028d84: f107 03b8 add.w r3, r7, #184 ; 0xb8 + 8028d88: 4618 mov r0, r3 + 8028d8a: f008 f943 bl 8031014 <_lv_area_intersect> + 8028d8e: 4603 mov r3, r0 + 8028d90: f083 0301 eor.w r3, r3, #1 + 8028d94: b2db uxtb r3, r3 + 8028d96: 2b00 cmp r3, #0 + 8028d98: f040 83ee bne.w 8029578 const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 8028e30: 683b ldr r3, [r7, #0] - 8028e32: 689b ldr r3, [r3, #8] - 8028e34: f8c7 30e4 str.w r3, [r7, #228] ; 0xe4 + 8028d9c: 683b ldr r3, [r7, #0] + 8028d9e: 689b ldr r3, [r3, #8] + 8028da0: f8c7 30e4 str.w r3, [r7, #228] ; 0xe4 draw_ctx->clip_area = &clip_area; - 8028e38: 683b ldr r3, [r7, #0] - 8028e3a: f107 02b8 add.w r2, r7, #184 ; 0xb8 - 8028e3e: 609a str r2, [r3, #8] + 8028da4: 683b ldr r3, [r7, #0] + 8028da6: f107 02b8 add.w r2, r7, #184 ; 0xb8 + 8028daa: 609a str r2, [r3, #8] lv_chart_t * chart = (lv_chart_t *)obj; - 8028e40: 687b ldr r3, [r7, #4] - 8028e42: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 + 8028dac: 687b ldr r3, [r7, #4] + 8028dae: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 if(chart->point_cnt < 2) return; - 8028e46: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 8028e4a: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 8028e4e: 2b01 cmp r3, #1 - 8028e50: f240 83de bls.w 8029610 + 8028db2: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 8028db6: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 8028dba: 2b01 cmp r3, #1 + 8028dbc: f240 83de bls.w 802957c uint16_t i; lv_point_t p1; lv_point_t p2; lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 8028e54: 2100 movs r1, #0 - 8028e56: 6878 ldr r0, [r7, #4] - 8028e58: f7ff fa39 bl 80282ce - 8028e5c: 4603 mov r3, r0 - 8028e5e: f8a7 30de strh.w r3, [r7, #222] ; 0xde + 8028dc0: 2100 movs r1, #0 + 8028dc2: 6878 ldr r0, [r7, #4] + 8028dc4: f7ff fa39 bl 802823a + 8028dc8: 4603 mov r3, r0 + 8028dca: f8a7 30de strh.w r3, [r7, #222] ; 0xde lv_coord_t pad_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN) + border_width; - 8028e62: 2100 movs r1, #0 - 8028e64: 6878 ldr r0, [r7, #4] - 8028e66: f7ff f9e7 bl 8028238 - 8028e6a: 4603 mov r3, r0 - 8028e6c: b29a uxth r2, r3 - 8028e6e: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde - 8028e72: 4413 add r3, r2 - 8028e74: b29b uxth r3, r3 - 8028e76: f8a7 30dc strh.w r3, [r7, #220] ; 0xdc + 8028dce: 2100 movs r1, #0 + 8028dd0: 6878 ldr r0, [r7, #4] + 8028dd2: f7ff f9e7 bl 80281a4 + 8028dd6: 4603 mov r3, r0 + 8028dd8: b29a uxth r2, r3 + 8028dda: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde + 8028dde: 4413 add r3, r2 + 8028de0: b29b uxth r3, r3 + 8028de2: f8a7 30dc strh.w r3, [r7, #220] ; 0xdc lv_coord_t pad_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN) + border_width; - 8028e7a: 2100 movs r1, #0 - 8028e7c: 6878 ldr r0, [r7, #4] - 8028e7e: f7ff f9b5 bl 80281ec - 8028e82: 4603 mov r3, r0 - 8028e84: b29a uxth r2, r3 - 8028e86: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde - 8028e8a: 4413 add r3, r2 - 8028e8c: b29b uxth r3, r3 - 8028e8e: f8a7 30da strh.w r3, [r7, #218] ; 0xda + 8028de6: 2100 movs r1, #0 + 8028de8: 6878 ldr r0, [r7, #4] + 8028dea: f7ff f9b5 bl 8028158 + 8028dee: 4603 mov r3, r0 + 8028df0: b29a uxth r2, r3 + 8028df2: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde + 8028df6: 4413 add r3, r2 + 8028df8: b29b uxth r3, r3 + 8028dfa: f8a7 30da strh.w r3, [r7, #218] ; 0xda lv_coord_t w = ((int32_t)lv_obj_get_content_width(obj) * chart->zoom_x) >> 8; - 8028e92: 6878 ldr r0, [r7, #4] - 8028e94: f7e1 f974 bl 800a180 - 8028e98: 4603 mov r3, r0 - 8028e9a: 461a mov r2, r3 - 8028e9c: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 8028ea0: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 - 8028ea4: fb02 f303 mul.w r3, r2, r3 - 8028ea8: 121b asrs r3, r3, #8 - 8028eaa: f8a7 30d8 strh.w r3, [r7, #216] ; 0xd8 + 8028dfe: 6878 ldr r0, [r7, #4] + 8028e00: f7e1 f988 bl 800a114 + 8028e04: 4603 mov r3, r0 + 8028e06: 461a mov r2, r3 + 8028e08: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 8028e0c: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 + 8028e10: fb02 f303 mul.w r3, r2, r3 + 8028e14: 121b asrs r3, r3, #8 + 8028e16: f8a7 30d8 strh.w r3, [r7, #216] ; 0xd8 lv_coord_t h = ((int32_t)lv_obj_get_content_height(obj) * chart->zoom_y) >> 8; - 8028eae: 6878 ldr r0, [r7, #4] - 8028eb0: f7e1 f991 bl 800a1d6 - 8028eb4: 4603 mov r3, r0 - 8028eb6: 461a mov r2, r3 - 8028eb8: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 8028ebc: f8b3 3086 ldrh.w r3, [r3, #134] ; 0x86 - 8028ec0: fb02 f303 mul.w r3, r2, r3 - 8028ec4: 121b asrs r3, r3, #8 - 8028ec6: f8a7 30d6 strh.w r3, [r7, #214] ; 0xd6 + 8028e1a: 6878 ldr r0, [r7, #4] + 8028e1c: f7e1 f9a5 bl 800a16a + 8028e20: 4603 mov r3, r0 + 8028e22: 461a mov r2, r3 + 8028e24: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 8028e28: f8b3 3086 ldrh.w r3, [r3, #134] ; 0x86 + 8028e2c: fb02 f303 mul.w r3, r2, r3 + 8028e30: 121b asrs r3, r3, #8 + 8028e32: f8a7 30d6 strh.w r3, [r7, #214] ; 0xd6 lv_coord_t x_ofs = obj->coords.x1 + pad_left - lv_obj_get_scroll_left(obj); - 8028eca: 687b ldr r3, [r7, #4] - 8028ecc: f9b3 3014 ldrsh.w r3, [r3, #20] - 8028ed0: b29a uxth r2, r3 - 8028ed2: f8b7 30dc ldrh.w r3, [r7, #220] ; 0xdc - 8028ed6: 4413 add r3, r2 - 8028ed8: b29c uxth r4, r3 - 8028eda: 6878 ldr r0, [r7, #4] - 8028edc: f7e2 fe14 bl 800bb08 - 8028ee0: 4603 mov r3, r0 - 8028ee2: b29b uxth r3, r3 - 8028ee4: 1ae3 subs r3, r4, r3 - 8028ee6: b29b uxth r3, r3 - 8028ee8: f8a7 30d4 strh.w r3, [r7, #212] ; 0xd4 + 8028e36: 687b ldr r3, [r7, #4] + 8028e38: f9b3 3014 ldrsh.w r3, [r3, #20] + 8028e3c: b29a uxth r2, r3 + 8028e3e: f8b7 30dc ldrh.w r3, [r7, #220] ; 0xdc + 8028e42: 4413 add r3, r2 + 8028e44: b29c uxth r4, r3 + 8028e46: 6878 ldr r0, [r7, #4] + 8028e48: f7e2 fe28 bl 800ba9c + 8028e4c: 4603 mov r3, r0 + 8028e4e: b29b uxth r3, r3 + 8028e50: 1ae3 subs r3, r4, r3 + 8028e52: b29b uxth r3, r3 + 8028e54: f8a7 30d4 strh.w r3, [r7, #212] ; 0xd4 lv_coord_t y_ofs = obj->coords.y1 + pad_top - lv_obj_get_scroll_top(obj); - 8028eec: 687b ldr r3, [r7, #4] - 8028eee: f9b3 3016 ldrsh.w r3, [r3, #22] - 8028ef2: b29a uxth r2, r3 - 8028ef4: f8b7 30da ldrh.w r3, [r7, #218] ; 0xda - 8028ef8: 4413 add r3, r2 - 8028efa: b29c uxth r4, r3 - 8028efc: 6878 ldr r0, [r7, #4] - 8028efe: f7e2 fd65 bl 800b9cc - 8028f02: 4603 mov r3, r0 - 8028f04: b29b uxth r3, r3 - 8028f06: 1ae3 subs r3, r4, r3 - 8028f08: b29b uxth r3, r3 - 8028f0a: f8a7 30d2 strh.w r3, [r7, #210] ; 0xd2 + 8028e58: 687b ldr r3, [r7, #4] + 8028e5a: f9b3 3016 ldrsh.w r3, [r3, #22] + 8028e5e: b29a uxth r2, r3 + 8028e60: f8b7 30da ldrh.w r3, [r7, #218] ; 0xda + 8028e64: 4413 add r3, r2 + 8028e66: b29c uxth r4, r3 + 8028e68: 6878 ldr r0, [r7, #4] + 8028e6a: f7e2 fd79 bl 800b960 + 8028e6e: 4603 mov r3, r0 + 8028e70: b29b uxth r3, r3 + 8028e72: 1ae3 subs r3, r4, r3 + 8028e74: b29b uxth r3, r3 + 8028e76: f8a7 30d2 strh.w r3, [r7, #210] ; 0xd2 lv_chart_series_t * ser; lv_area_t series_clip_area; bool mask_ret = _lv_area_intersect(&series_clip_area, &obj->coords, draw_ctx->clip_area); - 8028f0e: 687b ldr r3, [r7, #4] - 8028f10: f103 0114 add.w r1, r3, #20 - 8028f14: 683b ldr r3, [r7, #0] - 8028f16: 689a ldr r2, [r3, #8] - 8028f18: f107 03a8 add.w r3, r7, #168 ; 0xa8 - 8028f1c: 4618 mov r0, r3 - 8028f1e: f008 f8c3 bl 80310a8 <_lv_area_intersect> - 8028f22: 4603 mov r3, r0 - 8028f24: f887 30d1 strb.w r3, [r7, #209] ; 0xd1 + 8028e7a: 687b ldr r3, [r7, #4] + 8028e7c: f103 0114 add.w r1, r3, #20 + 8028e80: 683b ldr r3, [r7, #0] + 8028e82: 689a ldr r2, [r3, #8] + 8028e84: f107 03a8 add.w r3, r7, #168 ; 0xa8 + 8028e88: 4618 mov r0, r3 + 8028e8a: f008 f8c3 bl 8031014 <_lv_area_intersect> + 8028e8e: 4603 mov r3, r0 + 8028e90: f887 30d1 strb.w r3, [r7, #209] ; 0xd1 if(mask_ret == false) return; - 8028f28: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 - 8028f2c: f083 0301 eor.w r3, r3, #1 - 8028f30: b2db uxtb r3, r3 - 8028f32: 2b00 cmp r3, #0 - 8028f34: f040 836e bne.w 8029614 + 8028e94: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 + 8028e98: f083 0301 eor.w r3, r3, #1 + 8028e9c: b2db uxtb r3, r3 + 8028e9e: 2b00 cmp r3, #0 + 8028ea0: f040 836e bne.w 8029580 lv_draw_line_dsc_t line_dsc_default; lv_draw_line_dsc_init(&line_dsc_default); - 8028f38: f107 039c add.w r3, r7, #156 ; 0x9c - 8028f3c: 4618 mov r0, r3 - 8028f3e: f7ea f802 bl 8012f46 + 8028ea4: f107 039c add.w r3, r7, #156 ; 0x9c + 8028ea8: 4618 mov r0, r3 + 8028eaa: f7ea f802 bl 8012eb2 lv_obj_init_draw_line_dsc(obj, LV_PART_ITEMS, &line_dsc_default); - 8028f42: f107 039c add.w r3, r7, #156 ; 0x9c - 8028f46: 461a mov r2, r3 - 8028f48: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 8028f4c: 6878 ldr r0, [r7, #4] - 8028f4e: f7df fe0b bl 8008b68 + 8028eae: f107 039c add.w r3, r7, #156 ; 0x9c + 8028eb2: 461a mov r2, r3 + 8028eb4: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8028eb8: 6878 ldr r0, [r7, #4] + 8028eba: f7df fe1f bl 8008afc lv_draw_rect_dsc_t point_dsc_default; lv_draw_rect_dsc_init(&point_dsc_default); - 8028f52: f107 0364 add.w r3, r7, #100 ; 0x64 - 8028f56: 4618 mov r0, r3 - 8028f58: f7ec fc4c bl 80157f4 + 8028ebe: f107 0364 add.w r3, r7, #100 ; 0x64 + 8028ec2: 4618 mov r0, r3 + 8028ec4: f7ec fc4c bl 8015760 lv_obj_init_draw_rect_dsc(obj, LV_PART_INDICATOR, &point_dsc_default); - 8028f5c: f107 0364 add.w r3, r7, #100 ; 0x64 - 8028f60: 461a mov r2, r3 - 8028f62: f44f 3100 mov.w r1, #131072 ; 0x20000 - 8028f66: 6878 ldr r0, [r7, #4] - 8028f68: f7df fb2d bl 80085c6 + 8028ec8: f107 0364 add.w r3, r7, #100 ; 0x64 + 8028ecc: 461a mov r2, r3 + 8028ece: f44f 3100 mov.w r1, #131072 ; 0x20000 + 8028ed2: 6878 ldr r0, [r7, #4] + 8028ed4: f7df fb41 bl 800855a lv_coord_t point_w = lv_obj_get_style_width(obj, LV_PART_INDICATOR) / 2; - 8028f6c: f44f 3100 mov.w r1, #131072 ; 0x20000 - 8028f70: 6878 ldr r0, [r7, #4] - 8028f72: f7ff f915 bl 80281a0 - 8028f76: 4603 mov r3, r0 - 8028f78: 0fda lsrs r2, r3, #31 - 8028f7a: 4413 add r3, r2 - 8028f7c: 105b asrs r3, r3, #1 - 8028f7e: f8a7 30ce strh.w r3, [r7, #206] ; 0xce + 8028ed8: f44f 3100 mov.w r1, #131072 ; 0x20000 + 8028edc: 6878 ldr r0, [r7, #4] + 8028ede: f7ff f915 bl 802810c + 8028ee2: 4603 mov r3, r0 + 8028ee4: 0fda lsrs r2, r3, #31 + 8028ee6: 4413 add r3, r2 + 8028ee8: 105b asrs r3, r3, #1 + 8028eea: f8a7 30ce strh.w r3, [r7, #206] ; 0xce lv_coord_t point_h = lv_obj_get_style_height(obj, LV_PART_INDICATOR) / 2; - 8028f82: f44f 3100 mov.w r1, #131072 ; 0x20000 - 8028f86: 6878 ldr r0, [r7, #4] - 8028f88: f7ff f91d bl 80281c6 - 8028f8c: 4603 mov r3, r0 - 8028f8e: 0fda lsrs r2, r3, #31 - 8028f90: 4413 add r3, r2 - 8028f92: 105b asrs r3, r3, #1 - 8028f94: f8a7 30cc strh.w r3, [r7, #204] ; 0xcc + 8028eee: f44f 3100 mov.w r1, #131072 ; 0x20000 + 8028ef2: 6878 ldr r0, [r7, #4] + 8028ef4: f7ff f91d bl 8028132 + 8028ef8: 4603 mov r3, r0 + 8028efa: 0fda lsrs r2, r3, #31 + 8028efc: 4413 add r3, r2 + 8028efe: 105b asrs r3, r3, #1 + 8028f00: f8a7 30cc strh.w r3, [r7, #204] ; 0xcc /*Do not bother with line ending is the point will over it*/ if(LV_MIN(point_w, point_h) > line_dsc_default.width / 2) line_dsc_default.raw_end = 1; - 8028f98: f9b7 20cc ldrsh.w r2, [r7, #204] ; 0xcc - 8028f9c: f9b7 30ce ldrsh.w r3, [r7, #206] ; 0xce - 8028fa0: 4293 cmp r3, r2 - 8028fa2: bfa8 it ge - 8028fa4: 4613 movge r3, r2 - 8028fa6: b21a sxth r2, r3 - 8028fa8: f9b7 309e ldrsh.w r3, [r7, #158] ; 0x9e - 8028fac: 0fd9 lsrs r1, r3, #31 - 8028fae: 440b add r3, r1 - 8028fb0: 105b asrs r3, r3, #1 - 8028fb2: b21b sxth r3, r3 - 8028fb4: 429a cmp r2, r3 - 8028fb6: dd05 ble.n 8028fc4 - 8028fb8: f897 30a5 ldrb.w r3, [r7, #165] ; 0xa5 - 8028fbc: f043 0310 orr.w r3, r3, #16 - 8028fc0: f887 30a5 strb.w r3, [r7, #165] ; 0xa5 + 8028f04: f9b7 20cc ldrsh.w r2, [r7, #204] ; 0xcc + 8028f08: f9b7 30ce ldrsh.w r3, [r7, #206] ; 0xce + 8028f0c: 4293 cmp r3, r2 + 8028f0e: bfa8 it ge + 8028f10: 4613 movge r3, r2 + 8028f12: b21a sxth r2, r3 + 8028f14: f9b7 309e ldrsh.w r3, [r7, #158] ; 0x9e + 8028f18: 0fd9 lsrs r1, r3, #31 + 8028f1a: 440b add r3, r1 + 8028f1c: 105b asrs r3, r3, #1 + 8028f1e: b21b sxth r3, r3 + 8028f20: 429a cmp r2, r3 + 8028f22: dd05 ble.n 8028f30 + 8028f24: f897 30a5 ldrb.w r3, [r7, #165] ; 0xa5 + 8028f28: f043 0310 orr.w r3, r3, #16 + 8028f2c: f887 30a5 strb.w r3, [r7, #165] ; 0xa5 if(line_dsc_default.width == 1) line_dsc_default.raw_end = 1; - 8028fc4: f9b7 309e ldrsh.w r3, [r7, #158] ; 0x9e - 8028fc8: 2b01 cmp r3, #1 - 8028fca: d105 bne.n 8028fd8 - 8028fcc: f897 30a5 ldrb.w r3, [r7, #165] ; 0xa5 - 8028fd0: f043 0310 orr.w r3, r3, #16 - 8028fd4: f887 30a5 strb.w r3, [r7, #165] ; 0xa5 + 8028f30: f9b7 309e ldrsh.w r3, [r7, #158] ; 0x9e + 8028f34: 2b01 cmp r3, #1 + 8028f36: d105 bne.n 8028f44 + 8028f38: f897 30a5 ldrb.w r3, [r7, #165] ; 0xa5 + 8028f3c: f043 0310 orr.w r3, r3, #16 + 8028f40: f887 30a5 strb.w r3, [r7, #165] ; 0xa5 /*If there are mire points than pixels draw only vertical lines*/ bool crowded_mode = chart->point_cnt >= w ? true : false; - 8028fd8: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 8028fdc: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 8028fe0: 461a mov r2, r3 - 8028fe2: f9b7 30d8 ldrsh.w r3, [r7, #216] ; 0xd8 - 8028fe6: 429a cmp r2, r3 - 8028fe8: bfac ite ge - 8028fea: 2301 movge r3, #1 - 8028fec: 2300 movlt r3, #0 - 8028fee: f887 30cb strb.w r3, [r7, #203] ; 0xcb + 8028f44: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 8028f48: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 8028f4c: 461a mov r2, r3 + 8028f4e: f9b7 30d8 ldrsh.w r3, [r7, #216] ; 0xd8 + 8028f52: 429a cmp r2, r3 + 8028f54: bfac ite ge + 8028f56: 2301 movge r3, #1 + 8028f58: 2300 movlt r3, #0 + 8028f5a: f887 30cb strb.w r3, [r7, #203] ; 0xcb /*Go through all data lines*/ _LV_LL_READ_BACK(&chart->series_ll, ser) { - 8028ff2: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 8028ff6: 3324 adds r3, #36 ; 0x24 - 8028ff8: 4618 mov r0, r3 - 8028ffa: f009 f9bf bl 803237c <_lv_ll_get_tail> - 8028ffe: f8c7 00f0 str.w r0, [r7, #240] ; 0xf0 - 8029002: e2f9 b.n 80295f8 + 8028f5e: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 8028f62: 3324 adds r3, #36 ; 0x24 + 8028f64: 4618 mov r0, r3 + 8028f66: f009 f9bf bl 80322e8 <_lv_ll_get_tail> + 8028f6a: f8c7 00f0 str.w r0, [r7, #240] ; 0xf0 + 8028f6e: e2f9 b.n 8029564 if(ser->hidden) continue; - 8029004: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 8029008: 7b1b ldrb r3, [r3, #12] - 802900a: f003 0301 and.w r3, r3, #1 - 802900e: b2db uxtb r3, r3 - 8029010: 2b00 cmp r3, #0 - 8029012: f040 82e6 bne.w 80295e2 + 8028f70: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8028f74: 7b1b ldrb r3, [r3, #12] + 8028f76: f003 0301 and.w r3, r3, #1 + 8028f7a: b2db uxtb r3, r3 + 8028f7c: 2b00 cmp r3, #0 + 8028f7e: f040 82e6 bne.w 802954e line_dsc_default.color = ser->color; - 8029016: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 802901a: 891b ldrh r3, [r3, #8] - 802901c: f8a7 309c strh.w r3, [r7, #156] ; 0x9c + 8028f82: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8028f86: 891b ldrh r3, [r3, #8] + 8028f88: f8a7 309c strh.w r3, [r7, #156] ; 0x9c point_dsc_default.bg_color = ser->color; - 8029020: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 8029024: 891b ldrh r3, [r3, #8] - 8029026: f8a7 3068 strh.w r3, [r7, #104] ; 0x68 + 8028f8c: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8028f90: 891b ldrh r3, [r3, #8] + 8028f92: f8a7 3068 strh.w r3, [r7, #104] ; 0x68 lv_coord_t start_point = chart->update_mode == LV_CHART_UPDATE_MODE_SHIFT ? ser->start_point : 0; - 802902a: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 802902e: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 8029032: f003 0308 and.w r3, r3, #8 - 8029036: b2db uxtb r3, r3 - 8029038: 2b00 cmp r3, #0 - 802903a: d104 bne.n 8029046 - 802903c: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 8029040: 895b ldrh r3, [r3, #10] - 8029042: b21b sxth r3, r3 - 8029044: e000 b.n 8029048 - 8029046: 2300 movs r3, #0 - 8029048: f8a7 30c8 strh.w r3, [r7, #200] ; 0xc8 + 8028f96: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 8028f9a: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 8028f9e: f003 0308 and.w r3, r3, #8 + 8028fa2: b2db uxtb r3, r3 + 8028fa4: 2b00 cmp r3, #0 + 8028fa6: d104 bne.n 8028fb2 + 8028fa8: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8028fac: 895b ldrh r3, [r3, #10] + 8028fae: b21b sxth r3, r3 + 8028fb0: e000 b.n 8028fb4 + 8028fb2: 2300 movs r3, #0 + 8028fb4: f8a7 30c8 strh.w r3, [r7, #200] ; 0xc8 p1.x = x_ofs; - 802904c: f8b7 30d4 ldrh.w r3, [r7, #212] ; 0xd4 - 8029050: f8a7 30b4 strh.w r3, [r7, #180] ; 0xb4 + 8028fb8: f8b7 30d4 ldrh.w r3, [r7, #212] ; 0xd4 + 8028fbc: f8a7 30b4 strh.w r3, [r7, #180] ; 0xb4 p2.x = x_ofs; - 8029054: f8b7 30d4 ldrh.w r3, [r7, #212] ; 0xd4 - 8029058: f8a7 30b0 strh.w r3, [r7, #176] ; 0xb0 + 8028fc0: f8b7 30d4 ldrh.w r3, [r7, #212] ; 0xd4 + 8028fc4: f8a7 30b0 strh.w r3, [r7, #176] ; 0xb0 lv_coord_t p_act = start_point; - 802905c: f8b7 30c8 ldrh.w r3, [r7, #200] ; 0xc8 - 8029060: f8a7 30ee strh.w r3, [r7, #238] ; 0xee + 8028fc8: f8b7 30c8 ldrh.w r3, [r7, #200] ; 0xc8 + 8028fcc: f8a7 30ee strh.w r3, [r7, #238] ; 0xee lv_coord_t p_prev = start_point; - 8029064: f8b7 30c8 ldrh.w r3, [r7, #200] ; 0xc8 - 8029068: f8a7 30ec strh.w r3, [r7, #236] ; 0xec + 8028fd0: f8b7 30c8 ldrh.w r3, [r7, #200] ; 0xc8 + 8028fd4: f8a7 30ec strh.w r3, [r7, #236] ; 0xec int32_t y_tmp = (int32_t)((int32_t)ser->y_points[p_prev] - chart->ymin[ser->y_axis_sec]) * h; - 802906c: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 8029070: 685a ldr r2, [r3, #4] - 8029072: f9b7 30ec ldrsh.w r3, [r7, #236] ; 0xec - 8029076: 005b lsls r3, r3, #1 - 8029078: 4413 add r3, r2 - 802907a: f9b3 3000 ldrsh.w r3, [r3] - 802907e: 4619 mov r1, r3 - 8029080: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 8029084: 7b1b ldrb r3, [r3, #12] - 8029086: f3c3 1300 ubfx r3, r3, #4, #1 - 802908a: b2db uxtb r3, r3 - 802908c: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 - 8029090: 3334 adds r3, #52 ; 0x34 - 8029092: 005b lsls r3, r3, #1 - 8029094: 4413 add r3, r2 - 8029096: f9b3 3004 ldrsh.w r3, [r3, #4] - 802909a: 1acb subs r3, r1, r3 - 802909c: f9b7 20d6 ldrsh.w r2, [r7, #214] ; 0xd6 - 80290a0: fb02 f303 mul.w r3, r2, r3 - 80290a4: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 + 8028fd8: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8028fdc: 685a ldr r2, [r3, #4] + 8028fde: f9b7 30ec ldrsh.w r3, [r7, #236] ; 0xec + 8028fe2: 005b lsls r3, r3, #1 + 8028fe4: 4413 add r3, r2 + 8028fe6: f9b3 3000 ldrsh.w r3, [r3] + 8028fea: 4619 mov r1, r3 + 8028fec: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8028ff0: 7b1b ldrb r3, [r3, #12] + 8028ff2: f3c3 1300 ubfx r3, r3, #4, #1 + 8028ff6: b2db uxtb r3, r3 + 8028ff8: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 + 8028ffc: 3334 adds r3, #52 ; 0x34 + 8028ffe: 005b lsls r3, r3, #1 + 8029000: 4413 add r3, r2 + 8029002: f9b3 3004 ldrsh.w r3, [r3, #4] + 8029006: 1acb subs r3, r1, r3 + 8029008: f9b7 20d6 ldrsh.w r2, [r7, #214] ; 0xd6 + 802900c: fb02 f303 mul.w r3, r2, r3 + 8029010: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 y_tmp = y_tmp / (chart->ymax[ser->y_axis_sec] - chart->ymin[ser->y_axis_sec]); - 80290a8: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 80290ac: 7b1b ldrb r3, [r3, #12] - 80290ae: f3c3 1300 ubfx r3, r3, #4, #1 - 80290b2: b2db uxtb r3, r3 - 80290b4: 461a mov r2, r3 - 80290b6: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 80290ba: 3238 adds r2, #56 ; 0x38 - 80290bc: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] - 80290c0: 4619 mov r1, r3 - 80290c2: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 80290c6: 7b1b ldrb r3, [r3, #12] - 80290c8: f3c3 1300 ubfx r3, r3, #4, #1 - 80290cc: b2db uxtb r3, r3 - 80290ce: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 - 80290d2: 3334 adds r3, #52 ; 0x34 - 80290d4: 005b lsls r3, r3, #1 - 80290d6: 4413 add r3, r2 - 80290d8: f9b3 3004 ldrsh.w r3, [r3, #4] - 80290dc: 1acb subs r3, r1, r3 - 80290de: f8d7 20c4 ldr.w r2, [r7, #196] ; 0xc4 - 80290e2: fb92 f3f3 sdiv r3, r2, r3 - 80290e6: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 + 8029014: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8029018: 7b1b ldrb r3, [r3, #12] + 802901a: f3c3 1300 ubfx r3, r3, #4, #1 + 802901e: b2db uxtb r3, r3 + 8029020: 461a mov r2, r3 + 8029022: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 8029026: 3238 adds r2, #56 ; 0x38 + 8029028: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] + 802902c: 4619 mov r1, r3 + 802902e: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8029032: 7b1b ldrb r3, [r3, #12] + 8029034: f3c3 1300 ubfx r3, r3, #4, #1 + 8029038: b2db uxtb r3, r3 + 802903a: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 + 802903e: 3334 adds r3, #52 ; 0x34 + 8029040: 005b lsls r3, r3, #1 + 8029042: 4413 add r3, r2 + 8029044: f9b3 3004 ldrsh.w r3, [r3, #4] + 8029048: 1acb subs r3, r1, r3 + 802904a: f8d7 20c4 ldr.w r2, [r7, #196] ; 0xc4 + 802904e: fb92 f3f3 sdiv r3, r2, r3 + 8029052: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 p2.y = h - y_tmp + y_ofs; - 80290ea: f8b7 20d6 ldrh.w r2, [r7, #214] ; 0xd6 - 80290ee: f8d7 30c4 ldr.w r3, [r7, #196] ; 0xc4 - 80290f2: b29b uxth r3, r3 - 80290f4: 1ad3 subs r3, r2, r3 - 80290f6: b29a uxth r2, r3 - 80290f8: f8b7 30d2 ldrh.w r3, [r7, #210] ; 0xd2 - 80290fc: 4413 add r3, r2 - 80290fe: b29b uxth r3, r3 - 8029100: b21b sxth r3, r3 - 8029102: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 8029056: f8b7 20d6 ldrh.w r2, [r7, #214] ; 0xd6 + 802905a: f8d7 30c4 ldr.w r3, [r7, #196] ; 0xc4 + 802905e: b29b uxth r3, r3 + 8029060: 1ad3 subs r3, r2, r3 + 8029062: b29a uxth r2, r3 + 8029064: f8b7 30d2 ldrh.w r3, [r7, #210] ; 0xd2 + 8029068: 4413 add r3, r2 + 802906a: b29b uxth r3, r3 + 802906c: b21b sxth r3, r3 + 802906e: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 8029106: f107 030c add.w r3, r7, #12 - 802910a: 6839 ldr r1, [r7, #0] - 802910c: 4618 mov r0, r3 - 802910e: f7df feae bl 8008e6e + 8029072: f107 030c add.w r3, r7, #12 + 8029076: 6839 ldr r1, [r7, #0] + 8029078: 4618 mov r0, r3 + 802907a: f7df fec2 bl 8008e02 part_draw_dsc.class_p = MY_CLASS; - 8029112: 4bc2 ldr r3, [pc, #776] ; (802941c ) - 8029114: 613b str r3, [r7, #16] + 802907e: 4bc2 ldr r3, [pc, #776] ; (8029388 ) + 8029080: 613b str r3, [r7, #16] part_draw_dsc.type = LV_CHART_DRAW_PART_LINE_AND_POINT; - 8029116: 2303 movs r3, #3 - 8029118: 617b str r3, [r7, #20] + 8029082: 2303 movs r3, #3 + 8029084: 617b str r3, [r7, #20] part_draw_dsc.part = LV_PART_ITEMS; - 802911a: f44f 23a0 mov.w r3, #327680 ; 0x50000 - 802911e: 643b str r3, [r7, #64] ; 0x40 + 8029086: f44f 23a0 mov.w r3, #327680 ; 0x50000 + 802908a: 643b str r3, [r7, #64] ; 0x40 part_draw_dsc.line_dsc = &line_dsc_default; - 8029120: f107 039c add.w r3, r7, #156 ; 0x9c - 8029124: 627b str r3, [r7, #36] ; 0x24 + 802908c: f107 039c add.w r3, r7, #156 ; 0x9c + 8029090: 627b str r3, [r7, #36] ; 0x24 part_draw_dsc.rect_dsc = &point_dsc_default; - 8029126: f107 0364 add.w r3, r7, #100 ; 0x64 - 802912a: 61fb str r3, [r7, #28] + 8029092: f107 0364 add.w r3, r7, #100 ; 0x64 + 8029096: 61fb str r3, [r7, #28] part_draw_dsc.sub_part_ptr = ser; - 802912c: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 8029130: 653b str r3, [r7, #80] ; 0x50 + 8029098: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 802909c: 653b str r3, [r7, #80] ; 0x50 lv_coord_t y_min = p2.y; - 8029132: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 8029136: f8a7 30ea strh.w r3, [r7, #234] ; 0xea + 802909e: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 80290a2: f8a7 30ea strh.w r3, [r7, #234] ; 0xea lv_coord_t y_max = p2.y; - 802913a: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 802913e: f8a7 30e8 strh.w r3, [r7, #232] ; 0xe8 + 80290a6: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 80290aa: f8a7 30e8 strh.w r3, [r7, #232] ; 0xe8 for(i = 0; i < chart->point_cnt; i++) { - 8029142: 2300 movs r3, #0 - 8029144: f8a7 30f6 strh.w r3, [r7, #246] ; 0xf6 - 8029148: e1d0 b.n 80294ec + 80290ae: 2300 movs r3, #0 + 80290b0: f8a7 30f6 strh.w r3, [r7, #246] ; 0xf6 + 80290b4: e1d0 b.n 8029458 p1.x = p2.x; - 802914a: f9b7 30b0 ldrsh.w r3, [r7, #176] ; 0xb0 - 802914e: f8a7 30b4 strh.w r3, [r7, #180] ; 0xb4 + 80290b6: f9b7 30b0 ldrsh.w r3, [r7, #176] ; 0xb0 + 80290ba: f8a7 30b4 strh.w r3, [r7, #180] ; 0xb4 p1.y = p2.y; - 8029152: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 8029156: f8a7 30b6 strh.w r3, [r7, #182] ; 0xb6 + 80290be: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 80290c2: f8a7 30b6 strh.w r3, [r7, #182] ; 0xb6 if(p1.x > clip_area_ori->x2 + point_w + 1) break; - 802915a: f9b7 30b4 ldrsh.w r3, [r7, #180] ; 0xb4 - 802915e: 461a mov r2, r3 - 8029160: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 - 8029164: f9b3 3004 ldrsh.w r3, [r3, #4] - 8029168: 4619 mov r1, r3 - 802916a: f9b7 30ce ldrsh.w r3, [r7, #206] ; 0xce - 802916e: 440b add r3, r1 - 8029170: 3301 adds r3, #1 - 8029172: 429a cmp r2, r3 - 8029174: f300 81c4 bgt.w 8029500 + 80290c6: f9b7 30b4 ldrsh.w r3, [r7, #180] ; 0xb4 + 80290ca: 461a mov r2, r3 + 80290cc: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 + 80290d0: f9b3 3004 ldrsh.w r3, [r3, #4] + 80290d4: 4619 mov r1, r3 + 80290d6: f9b7 30ce ldrsh.w r3, [r7, #206] ; 0xce + 80290da: 440b add r3, r1 + 80290dc: 3301 adds r3, #1 + 80290de: 429a cmp r2, r3 + 80290e0: f300 81c4 bgt.w 802946c p2.x = ((w * i) / (chart->point_cnt - 1)) + x_ofs; - 8029178: f9b7 30d8 ldrsh.w r3, [r7, #216] ; 0xd8 - 802917c: f8b7 20f6 ldrh.w r2, [r7, #246] ; 0xf6 - 8029180: fb03 f202 mul.w r2, r3, r2 - 8029184: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 8029188: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 802918c: 3b01 subs r3, #1 - 802918e: fb92 f3f3 sdiv r3, r2, r3 - 8029192: b29a uxth r2, r3 - 8029194: f8b7 30d4 ldrh.w r3, [r7, #212] ; 0xd4 - 8029198: 4413 add r3, r2 - 802919a: b29b uxth r3, r3 - 802919c: b21b sxth r3, r3 - 802919e: f8a7 30b0 strh.w r3, [r7, #176] ; 0xb0 + 80290e4: f9b7 30d8 ldrsh.w r3, [r7, #216] ; 0xd8 + 80290e8: f8b7 20f6 ldrh.w r2, [r7, #246] ; 0xf6 + 80290ec: fb03 f202 mul.w r2, r3, r2 + 80290f0: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 80290f4: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 80290f8: 3b01 subs r3, #1 + 80290fa: fb92 f3f3 sdiv r3, r2, r3 + 80290fe: b29a uxth r2, r3 + 8029100: f8b7 30d4 ldrh.w r3, [r7, #212] ; 0xd4 + 8029104: 4413 add r3, r2 + 8029106: b29b uxth r3, r3 + 8029108: b21b sxth r3, r3 + 802910a: f8a7 30b0 strh.w r3, [r7, #176] ; 0xb0 p_act = (start_point + i) % chart->point_cnt; - 80291a2: f9b7 20c8 ldrsh.w r2, [r7, #200] ; 0xc8 - 80291a6: f8b7 30f6 ldrh.w r3, [r7, #246] ; 0xf6 - 80291aa: 4413 add r3, r2 - 80291ac: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 - 80291b0: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 - 80291b4: fb93 f1f2 sdiv r1, r3, r2 - 80291b8: fb01 f202 mul.w r2, r1, r2 - 80291bc: 1a9b subs r3, r3, r2 - 80291be: f8a7 30ee strh.w r3, [r7, #238] ; 0xee + 802910e: f9b7 20c8 ldrsh.w r2, [r7, #200] ; 0xc8 + 8029112: f8b7 30f6 ldrh.w r3, [r7, #246] ; 0xf6 + 8029116: 4413 add r3, r2 + 8029118: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 + 802911c: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 + 8029120: fb93 f1f2 sdiv r1, r3, r2 + 8029124: fb01 f202 mul.w r2, r1, r2 + 8029128: 1a9b subs r3, r3, r2 + 802912a: f8a7 30ee strh.w r3, [r7, #238] ; 0xee y_tmp = (int32_t)((int32_t)ser->y_points[p_act] - chart->ymin[ser->y_axis_sec]) * h; - 80291c2: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 80291c6: 685a ldr r2, [r3, #4] - 80291c8: f9b7 30ee ldrsh.w r3, [r7, #238] ; 0xee - 80291cc: 005b lsls r3, r3, #1 - 80291ce: 4413 add r3, r2 - 80291d0: f9b3 3000 ldrsh.w r3, [r3] - 80291d4: 4619 mov r1, r3 - 80291d6: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 80291da: 7b1b ldrb r3, [r3, #12] - 80291dc: f3c3 1300 ubfx r3, r3, #4, #1 - 80291e0: b2db uxtb r3, r3 - 80291e2: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 - 80291e6: 3334 adds r3, #52 ; 0x34 - 80291e8: 005b lsls r3, r3, #1 - 80291ea: 4413 add r3, r2 - 80291ec: f9b3 3004 ldrsh.w r3, [r3, #4] - 80291f0: 1acb subs r3, r1, r3 - 80291f2: f9b7 20d6 ldrsh.w r2, [r7, #214] ; 0xd6 - 80291f6: fb02 f303 mul.w r3, r2, r3 - 80291fa: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 + 802912e: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8029132: 685a ldr r2, [r3, #4] + 8029134: f9b7 30ee ldrsh.w r3, [r7, #238] ; 0xee + 8029138: 005b lsls r3, r3, #1 + 802913a: 4413 add r3, r2 + 802913c: f9b3 3000 ldrsh.w r3, [r3] + 8029140: 4619 mov r1, r3 + 8029142: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8029146: 7b1b ldrb r3, [r3, #12] + 8029148: f3c3 1300 ubfx r3, r3, #4, #1 + 802914c: b2db uxtb r3, r3 + 802914e: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 + 8029152: 3334 adds r3, #52 ; 0x34 + 8029154: 005b lsls r3, r3, #1 + 8029156: 4413 add r3, r2 + 8029158: f9b3 3004 ldrsh.w r3, [r3, #4] + 802915c: 1acb subs r3, r1, r3 + 802915e: f9b7 20d6 ldrsh.w r2, [r7, #214] ; 0xd6 + 8029162: fb02 f303 mul.w r3, r2, r3 + 8029166: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 y_tmp = y_tmp / (chart->ymax[ser->y_axis_sec] - chart->ymin[ser->y_axis_sec]); - 80291fe: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 8029202: 7b1b ldrb r3, [r3, #12] - 8029204: f3c3 1300 ubfx r3, r3, #4, #1 - 8029208: b2db uxtb r3, r3 - 802920a: 461a mov r2, r3 - 802920c: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 8029210: 3238 adds r2, #56 ; 0x38 - 8029212: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] - 8029216: 4619 mov r1, r3 - 8029218: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 802921c: 7b1b ldrb r3, [r3, #12] - 802921e: f3c3 1300 ubfx r3, r3, #4, #1 - 8029222: b2db uxtb r3, r3 - 8029224: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 - 8029228: 3334 adds r3, #52 ; 0x34 - 802922a: 005b lsls r3, r3, #1 - 802922c: 4413 add r3, r2 - 802922e: f9b3 3004 ldrsh.w r3, [r3, #4] - 8029232: 1acb subs r3, r1, r3 - 8029234: f8d7 20c4 ldr.w r2, [r7, #196] ; 0xc4 - 8029238: fb92 f3f3 sdiv r3, r2, r3 - 802923c: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 + 802916a: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 802916e: 7b1b ldrb r3, [r3, #12] + 8029170: f3c3 1300 ubfx r3, r3, #4, #1 + 8029174: b2db uxtb r3, r3 + 8029176: 461a mov r2, r3 + 8029178: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 802917c: 3238 adds r2, #56 ; 0x38 + 802917e: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] + 8029182: 4619 mov r1, r3 + 8029184: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8029188: 7b1b ldrb r3, [r3, #12] + 802918a: f3c3 1300 ubfx r3, r3, #4, #1 + 802918e: b2db uxtb r3, r3 + 8029190: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 + 8029194: 3334 adds r3, #52 ; 0x34 + 8029196: 005b lsls r3, r3, #1 + 8029198: 4413 add r3, r2 + 802919a: f9b3 3004 ldrsh.w r3, [r3, #4] + 802919e: 1acb subs r3, r1, r3 + 80291a0: f8d7 20c4 ldr.w r2, [r7, #196] ; 0xc4 + 80291a4: fb92 f3f3 sdiv r3, r2, r3 + 80291a8: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 p2.y = h - y_tmp + y_ofs; - 8029240: f8b7 20d6 ldrh.w r2, [r7, #214] ; 0xd6 - 8029244: f8d7 30c4 ldr.w r3, [r7, #196] ; 0xc4 - 8029248: b29b uxth r3, r3 - 802924a: 1ad3 subs r3, r2, r3 - 802924c: b29a uxth r2, r3 - 802924e: f8b7 30d2 ldrh.w r3, [r7, #210] ; 0xd2 - 8029252: 4413 add r3, r2 - 8029254: b29b uxth r3, r3 - 8029256: b21b sxth r3, r3 - 8029258: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 80291ac: f8b7 20d6 ldrh.w r2, [r7, #214] ; 0xd6 + 80291b0: f8d7 30c4 ldr.w r3, [r7, #196] ; 0xc4 + 80291b4: b29b uxth r3, r3 + 80291b6: 1ad3 subs r3, r2, r3 + 80291b8: b29a uxth r2, r3 + 80291ba: f8b7 30d2 ldrh.w r3, [r7, #210] ; 0xd2 + 80291be: 4413 add r3, r2 + 80291c0: b29b uxth r3, r3 + 80291c2: b21b sxth r3, r3 + 80291c4: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 if(p2.x < clip_area_ori->x1 - point_w - 1) { - 802925c: f9b7 30b0 ldrsh.w r3, [r7, #176] ; 0xb0 - 8029260: 461a mov r2, r3 - 8029262: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 - 8029266: f9b3 3000 ldrsh.w r3, [r3] - 802926a: 4619 mov r1, r3 - 802926c: f9b7 30ce ldrsh.w r3, [r7, #206] ; 0xce - 8029270: 1acb subs r3, r1, r3 - 8029272: 3b01 subs r3, #1 - 8029274: 429a cmp r2, r3 - 8029276: da04 bge.n 8029282 + 80291c8: f9b7 30b0 ldrsh.w r3, [r7, #176] ; 0xb0 + 80291cc: 461a mov r2, r3 + 80291ce: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 + 80291d2: f9b3 3000 ldrsh.w r3, [r3] + 80291d6: 4619 mov r1, r3 + 80291d8: f9b7 30ce ldrsh.w r3, [r7, #206] ; 0xce + 80291dc: 1acb subs r3, r1, r3 + 80291de: 3b01 subs r3, #1 + 80291e0: 429a cmp r2, r3 + 80291e2: da04 bge.n 80291ee p_prev = p_act; - 8029278: f8b7 30ee ldrh.w r3, [r7, #238] ; 0xee - 802927c: f8a7 30ec strh.w r3, [r7, #236] ; 0xec + 80291e4: f8b7 30ee ldrh.w r3, [r7, #238] ; 0xee + 80291e8: f8a7 30ec strh.w r3, [r7, #236] ; 0xec continue; - 8029280: e12f b.n 80294e2 + 80291ec: e12f b.n 802944e } /*Don't draw the first point. A second point is also required to draw the line*/ if(i != 0) { - 8029282: f8b7 30f6 ldrh.w r3, [r7, #246] ; 0xf6 - 8029286: 2b00 cmp r3, #0 - 8029288: f000 8127 beq.w 80294da + 80291ee: f8b7 30f6 ldrh.w r3, [r7, #246] ; 0xf6 + 80291f2: 2b00 cmp r3, #0 + 80291f4: f000 8127 beq.w 8029446 if(crowded_mode) { - 802928c: f897 30cb ldrb.w r3, [r7, #203] ; 0xcb - 8029290: 2b00 cmp r3, #0 - 8029292: d074 beq.n 802937e + 80291f8: f897 30cb ldrb.w r3, [r7, #203] ; 0xcb + 80291fc: 2b00 cmp r3, #0 + 80291fe: d074 beq.n 80292ea if(ser->y_points[p_prev] != LV_CHART_POINT_NONE && ser->y_points[p_act] != LV_CHART_POINT_NONE) { - 8029294: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 8029298: 685a ldr r2, [r3, #4] - 802929a: f9b7 30ec ldrsh.w r3, [r7, #236] ; 0xec - 802929e: 005b lsls r3, r3, #1 - 80292a0: 4413 add r3, r2 - 80292a2: f9b3 3000 ldrsh.w r3, [r3] - 80292a6: f647 72ff movw r2, #32767 ; 0x7fff - 80292aa: 4293 cmp r3, r2 - 80292ac: f000 8115 beq.w 80294da - 80292b0: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 80292b4: 685a ldr r2, [r3, #4] - 80292b6: f9b7 30ee ldrsh.w r3, [r7, #238] ; 0xee - 80292ba: 005b lsls r3, r3, #1 - 80292bc: 4413 add r3, r2 - 80292be: f9b3 3000 ldrsh.w r3, [r3] - 80292c2: f647 72ff movw r2, #32767 ; 0x7fff - 80292c6: 4293 cmp r3, r2 - 80292c8: f000 8107 beq.w 80294da + 8029200: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8029204: 685a ldr r2, [r3, #4] + 8029206: f9b7 30ec ldrsh.w r3, [r7, #236] ; 0xec + 802920a: 005b lsls r3, r3, #1 + 802920c: 4413 add r3, r2 + 802920e: f9b3 3000 ldrsh.w r3, [r3] + 8029212: f647 72ff movw r2, #32767 ; 0x7fff + 8029216: 4293 cmp r3, r2 + 8029218: f000 8115 beq.w 8029446 + 802921c: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8029220: 685a ldr r2, [r3, #4] + 8029222: f9b7 30ee ldrsh.w r3, [r7, #238] ; 0xee + 8029226: 005b lsls r3, r3, #1 + 8029228: 4413 add r3, r2 + 802922a: f9b3 3000 ldrsh.w r3, [r3] + 802922e: f647 72ff movw r2, #32767 ; 0x7fff + 8029232: 4293 cmp r3, r2 + 8029234: f000 8107 beq.w 8029446 /*Draw only one vertical line between the min and max y-values on the same x-value*/ y_max = LV_MAX(y_max, p2.y); - 80292cc: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 80292d0: f9b7 20e8 ldrsh.w r2, [r7, #232] ; 0xe8 - 80292d4: 4293 cmp r3, r2 - 80292d6: bfb8 it lt - 80292d8: 4613 movlt r3, r2 - 80292da: f8a7 30e8 strh.w r3, [r7, #232] ; 0xe8 + 8029238: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 802923c: f9b7 20e8 ldrsh.w r2, [r7, #232] ; 0xe8 + 8029240: 4293 cmp r3, r2 + 8029242: bfb8 it lt + 8029244: 4613 movlt r3, r2 + 8029246: f8a7 30e8 strh.w r3, [r7, #232] ; 0xe8 y_min = LV_MIN(y_min, p2.y); - 80292de: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 80292e2: f9b7 20ea ldrsh.w r2, [r7, #234] ; 0xea - 80292e6: 4293 cmp r3, r2 - 80292e8: bfa8 it ge - 80292ea: 4613 movge r3, r2 - 80292ec: f8a7 30ea strh.w r3, [r7, #234] ; 0xea + 802924a: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 802924e: f9b7 20ea ldrsh.w r2, [r7, #234] ; 0xea + 8029252: 4293 cmp r3, r2 + 8029254: bfa8 it ge + 8029256: 4613 movge r3, r2 + 8029258: f8a7 30ea strh.w r3, [r7, #234] ; 0xea if(p1.x != p2.x) { - 80292f0: f9b7 20b4 ldrsh.w r2, [r7, #180] ; 0xb4 - 80292f4: f9b7 30b0 ldrsh.w r3, [r7, #176] ; 0xb0 - 80292f8: 429a cmp r2, r3 - 80292fa: f000 80ee beq.w 80294da + 802925c: f9b7 20b4 ldrsh.w r2, [r7, #180] ; 0xb4 + 8029260: f9b7 30b0 ldrsh.w r3, [r7, #176] ; 0xb0 + 8029264: 429a cmp r2, r3 + 8029266: f000 80ee beq.w 8029446 lv_coord_t y_cur = p2.y; - 80292fe: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 8029302: f8a7 30c2 strh.w r3, [r7, #194] ; 0xc2 + 802926a: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 802926e: f8a7 30c2 strh.w r3, [r7, #194] ; 0xc2 p2.x--; /*It's already on the next x value*/ - 8029306: f9b7 30b0 ldrsh.w r3, [r7, #176] ; 0xb0 - 802930a: b29b uxth r3, r3 - 802930c: 3b01 subs r3, #1 - 802930e: b29b uxth r3, r3 - 8029310: b21b sxth r3, r3 - 8029312: f8a7 30b0 strh.w r3, [r7, #176] ; 0xb0 + 8029272: f9b7 30b0 ldrsh.w r3, [r7, #176] ; 0xb0 + 8029276: b29b uxth r3, r3 + 8029278: 3b01 subs r3, #1 + 802927a: b29b uxth r3, r3 + 802927c: b21b sxth r3, r3 + 802927e: f8a7 30b0 strh.w r3, [r7, #176] ; 0xb0 p1.x = p2.x; - 8029316: f9b7 30b0 ldrsh.w r3, [r7, #176] ; 0xb0 - 802931a: f8a7 30b4 strh.w r3, [r7, #180] ; 0xb4 + 8029282: f9b7 30b0 ldrsh.w r3, [r7, #176] ; 0xb0 + 8029286: f8a7 30b4 strh.w r3, [r7, #180] ; 0xb4 p1.y = y_min; - 802931e: f8b7 30ea ldrh.w r3, [r7, #234] ; 0xea - 8029322: f8a7 30b6 strh.w r3, [r7, #182] ; 0xb6 + 802928a: f8b7 30ea ldrh.w r3, [r7, #234] ; 0xea + 802928e: f8a7 30b6 strh.w r3, [r7, #182] ; 0xb6 p2.y = y_max; - 8029326: f8b7 30e8 ldrh.w r3, [r7, #232] ; 0xe8 - 802932a: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 8029292: f8b7 30e8 ldrh.w r3, [r7, #232] ; 0xe8 + 8029296: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 if(p1.y == p2.y) p2.y++; /*If they are the same no line will be drawn*/ - 802932e: f9b7 20b6 ldrsh.w r2, [r7, #182] ; 0xb6 - 8029332: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 8029336: 429a cmp r2, r3 - 8029338: d107 bne.n 802934a - 802933a: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 802933e: b29b uxth r3, r3 - 8029340: 3301 adds r3, #1 - 8029342: b29b uxth r3, r3 - 8029344: b21b sxth r3, r3 - 8029346: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 802929a: f9b7 20b6 ldrsh.w r2, [r7, #182] ; 0xb6 + 802929e: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 80292a2: 429a cmp r2, r3 + 80292a4: d107 bne.n 80292b6 + 80292a6: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 80292aa: b29b uxth r3, r3 + 80292ac: 3301 adds r3, #1 + 80292ae: b29b uxth r3, r3 + 80292b0: b21b sxth r3, r3 + 80292b2: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 lv_draw_line(draw_ctx, &line_dsc_default, &p1, &p2); - 802934a: f107 03b0 add.w r3, r7, #176 ; 0xb0 - 802934e: f107 02b4 add.w r2, r7, #180 ; 0xb4 - 8029352: f107 019c add.w r1, r7, #156 ; 0x9c - 8029356: 6838 ldr r0, [r7, #0] - 8029358: f7e9 fe0b bl 8012f72 + 80292b6: f107 03b0 add.w r3, r7, #176 ; 0xb0 + 80292ba: f107 02b4 add.w r2, r7, #180 ; 0xb4 + 80292be: f107 019c add.w r1, r7, #156 ; 0x9c + 80292c2: 6838 ldr r0, [r7, #0] + 80292c4: f7e9 fe0b bl 8012ede p2.x++; /*Compensate the previous x--*/ - 802935c: f9b7 30b0 ldrsh.w r3, [r7, #176] ; 0xb0 - 8029360: b29b uxth r3, r3 - 8029362: 3301 adds r3, #1 - 8029364: b29b uxth r3, r3 - 8029366: b21b sxth r3, r3 - 8029368: f8a7 30b0 strh.w r3, [r7, #176] ; 0xb0 + 80292c8: f9b7 30b0 ldrsh.w r3, [r7, #176] ; 0xb0 + 80292cc: b29b uxth r3, r3 + 80292ce: 3301 adds r3, #1 + 80292d0: b29b uxth r3, r3 + 80292d2: b21b sxth r3, r3 + 80292d4: f8a7 30b0 strh.w r3, [r7, #176] ; 0xb0 y_min = y_cur; /*Start the line of the next x from the current last y*/ - 802936c: f8b7 30c2 ldrh.w r3, [r7, #194] ; 0xc2 - 8029370: f8a7 30ea strh.w r3, [r7, #234] ; 0xea + 80292d8: f8b7 30c2 ldrh.w r3, [r7, #194] ; 0xc2 + 80292dc: f8a7 30ea strh.w r3, [r7, #234] ; 0xea y_max = y_cur; - 8029374: f8b7 30c2 ldrh.w r3, [r7, #194] ; 0xc2 - 8029378: f8a7 30e8 strh.w r3, [r7, #232] ; 0xe8 - 802937c: e0ad b.n 80294da + 80292e0: f8b7 30c2 ldrh.w r3, [r7, #194] ; 0xc2 + 80292e4: f8a7 30e8 strh.w r3, [r7, #232] ; 0xe8 + 80292e8: e0ad b.n 8029446 } } } else { lv_area_t point_area; point_area.x1 = p1.x - point_w; - 802937e: f9b7 30b4 ldrsh.w r3, [r7, #180] ; 0xb4 - 8029382: b29a uxth r2, r3 - 8029384: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce - 8029388: 1ad3 subs r3, r2, r3 - 802938a: b29b uxth r3, r3 - 802938c: b21b sxth r3, r3 - 802938e: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 80292ea: f9b7 30b4 ldrsh.w r3, [r7, #180] ; 0xb4 + 80292ee: b29a uxth r2, r3 + 80292f0: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce + 80292f4: 1ad3 subs r3, r2, r3 + 80292f6: b29b uxth r3, r3 + 80292f8: b21b sxth r3, r3 + 80292fa: f8a7 305c strh.w r3, [r7, #92] ; 0x5c point_area.x2 = p1.x + point_w; - 8029392: f9b7 30b4 ldrsh.w r3, [r7, #180] ; 0xb4 - 8029396: b29a uxth r2, r3 - 8029398: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce - 802939c: 4413 add r3, r2 - 802939e: b29b uxth r3, r3 - 80293a0: b21b sxth r3, r3 - 80293a2: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 + 80292fe: f9b7 30b4 ldrsh.w r3, [r7, #180] ; 0xb4 + 8029302: b29a uxth r2, r3 + 8029304: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce + 8029308: 4413 add r3, r2 + 802930a: b29b uxth r3, r3 + 802930c: b21b sxth r3, r3 + 802930e: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 point_area.y1 = p1.y - point_h; - 80293a6: f9b7 30b6 ldrsh.w r3, [r7, #182] ; 0xb6 - 80293aa: b29a uxth r2, r3 - 80293ac: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc - 80293b0: 1ad3 subs r3, r2, r3 - 80293b2: b29b uxth r3, r3 - 80293b4: b21b sxth r3, r3 - 80293b6: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 8029312: f9b7 30b6 ldrsh.w r3, [r7, #182] ; 0xb6 + 8029316: b29a uxth r2, r3 + 8029318: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc + 802931c: 1ad3 subs r3, r2, r3 + 802931e: b29b uxth r3, r3 + 8029320: b21b sxth r3, r3 + 8029322: f8a7 305e strh.w r3, [r7, #94] ; 0x5e point_area.y2 = p1.y + point_h; - 80293ba: f9b7 30b6 ldrsh.w r3, [r7, #182] ; 0xb6 - 80293be: b29a uxth r2, r3 - 80293c0: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc - 80293c4: 4413 add r3, r2 - 80293c6: b29b uxth r3, r3 - 80293c8: b21b sxth r3, r3 - 80293ca: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 + 8029326: f9b7 30b6 ldrsh.w r3, [r7, #182] ; 0xb6 + 802932a: b29a uxth r2, r3 + 802932c: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc + 8029330: 4413 add r3, r2 + 8029332: b29b uxth r3, r3 + 8029334: b21b sxth r3, r3 + 8029336: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 part_draw_dsc.id = i - 1; - 80293ce: f8b7 30f6 ldrh.w r3, [r7, #246] ; 0xf6 - 80293d2: 3b01 subs r3, #1 - 80293d4: 647b str r3, [r7, #68] ; 0x44 + 802933a: f8b7 30f6 ldrh.w r3, [r7, #246] ; 0xf6 + 802933e: 3b01 subs r3, #1 + 8029340: 647b str r3, [r7, #68] ; 0x44 part_draw_dsc.p1 = ser->y_points[p_prev] != LV_CHART_POINT_NONE ? &p1 : NULL; - 80293d6: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 80293da: 685a ldr r2, [r3, #4] - 80293dc: f9b7 30ec ldrsh.w r3, [r7, #236] ; 0xec - 80293e0: 005b lsls r3, r3, #1 - 80293e2: 4413 add r3, r2 - 80293e4: f9b3 3000 ldrsh.w r3, [r3] - 80293e8: f647 72ff movw r2, #32767 ; 0x7fff - 80293ec: 4293 cmp r3, r2 - 80293ee: d002 beq.n 80293f6 - 80293f0: f107 03b4 add.w r3, r7, #180 ; 0xb4 - 80293f4: e000 b.n 80293f8 - 80293f6: 2300 movs r3, #0 - 80293f8: 633b str r3, [r7, #48] ; 0x30 + 8029342: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8029346: 685a ldr r2, [r3, #4] + 8029348: f9b7 30ec ldrsh.w r3, [r7, #236] ; 0xec + 802934c: 005b lsls r3, r3, #1 + 802934e: 4413 add r3, r2 + 8029350: f9b3 3000 ldrsh.w r3, [r3] + 8029354: f647 72ff movw r2, #32767 ; 0x7fff + 8029358: 4293 cmp r3, r2 + 802935a: d002 beq.n 8029362 + 802935c: f107 03b4 add.w r3, r7, #180 ; 0xb4 + 8029360: e000 b.n 8029364 + 8029362: 2300 movs r3, #0 + 8029364: 633b str r3, [r7, #48] ; 0x30 part_draw_dsc.p2 = ser->y_points[p_act] != LV_CHART_POINT_NONE ? &p2 : NULL; - 80293fa: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 80293fe: 685a ldr r2, [r3, #4] - 8029400: f9b7 30ee ldrsh.w r3, [r7, #238] ; 0xee - 8029404: 005b lsls r3, r3, #1 - 8029406: 4413 add r3, r2 - 8029408: f9b3 3000 ldrsh.w r3, [r3] - 802940c: f647 72ff movw r2, #32767 ; 0x7fff - 8029410: 4293 cmp r3, r2 - 8029412: d005 beq.n 8029420 - 8029414: f107 03b0 add.w r3, r7, #176 ; 0xb0 - 8029418: e003 b.n 8029422 - 802941a: bf00 nop - 802941c: 0806cbf8 .word 0x0806cbf8 - 8029420: 2300 movs r3, #0 - 8029422: 637b str r3, [r7, #52] ; 0x34 + 8029366: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 802936a: 685a ldr r2, [r3, #4] + 802936c: f9b7 30ee ldrsh.w r3, [r7, #238] ; 0xee + 8029370: 005b lsls r3, r3, #1 + 8029372: 4413 add r3, r2 + 8029374: f9b3 3000 ldrsh.w r3, [r3] + 8029378: f647 72ff movw r2, #32767 ; 0x7fff + 802937c: 4293 cmp r3, r2 + 802937e: d005 beq.n 802938c + 8029380: f107 03b0 add.w r3, r7, #176 ; 0xb0 + 8029384: e003 b.n 802938e + 8029386: bf00 nop + 8029388: 0806cb50 .word 0x0806cb50 + 802938c: 2300 movs r3, #0 + 802938e: 637b str r3, [r7, #52] ; 0x34 part_draw_dsc.draw_area = &point_area; - 8029424: f107 035c add.w r3, r7, #92 ; 0x5c - 8029428: 61bb str r3, [r7, #24] + 8029390: f107 035c add.w r3, r7, #92 ; 0x5c + 8029394: 61bb str r3, [r7, #24] part_draw_dsc.value = ser->y_points[p_prev]; - 802942a: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 802942e: 685a ldr r2, [r3, #4] - 8029430: f9b7 30ec ldrsh.w r3, [r7, #236] ; 0xec - 8029434: 005b lsls r3, r3, #1 - 8029436: 4413 add r3, r2 - 8029438: f9b3 3000 ldrsh.w r3, [r3] - 802943c: 64fb str r3, [r7, #76] ; 0x4c + 8029396: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 802939a: 685a ldr r2, [r3, #4] + 802939c: f9b7 30ec ldrsh.w r3, [r7, #236] ; 0xec + 80293a0: 005b lsls r3, r3, #1 + 80293a2: 4413 add r3, r2 + 80293a4: f9b3 3000 ldrsh.w r3, [r3] + 80293a8: 64fb str r3, [r7, #76] ; 0x4c lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 802943e: f107 030c add.w r3, r7, #12 - 8029442: 461a mov r2, r3 - 8029444: 211a movs r1, #26 - 8029446: 6878 ldr r0, [r7, #4] - 8029448: f7d9 f81a bl 8002480 + 80293aa: f107 030c add.w r3, r7, #12 + 80293ae: 461a mov r2, r3 + 80293b0: 211a movs r1, #26 + 80293b2: 6878 ldr r0, [r7, #4] + 80293b4: f7d9 f82e bl 8002414 if(ser->y_points[p_prev] != LV_CHART_POINT_NONE && ser->y_points[p_act] != LV_CHART_POINT_NONE) { - 802944c: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 8029450: 685a ldr r2, [r3, #4] - 8029452: f9b7 30ec ldrsh.w r3, [r7, #236] ; 0xec - 8029456: 005b lsls r3, r3, #1 - 8029458: 4413 add r3, r2 - 802945a: f9b3 3000 ldrsh.w r3, [r3] - 802945e: f647 72ff movw r2, #32767 ; 0x7fff - 8029462: 4293 cmp r3, r2 - 8029464: d015 beq.n 8029492 - 8029466: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 802946a: 685a ldr r2, [r3, #4] - 802946c: f9b7 30ee ldrsh.w r3, [r7, #238] ; 0xee - 8029470: 005b lsls r3, r3, #1 - 8029472: 4413 add r3, r2 - 8029474: f9b3 3000 ldrsh.w r3, [r3] - 8029478: f647 72ff movw r2, #32767 ; 0x7fff - 802947c: 4293 cmp r3, r2 - 802947e: d008 beq.n 8029492 + 80293b8: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 80293bc: 685a ldr r2, [r3, #4] + 80293be: f9b7 30ec ldrsh.w r3, [r7, #236] ; 0xec + 80293c2: 005b lsls r3, r3, #1 + 80293c4: 4413 add r3, r2 + 80293c6: f9b3 3000 ldrsh.w r3, [r3] + 80293ca: f647 72ff movw r2, #32767 ; 0x7fff + 80293ce: 4293 cmp r3, r2 + 80293d0: d015 beq.n 80293fe + 80293d2: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 80293d6: 685a ldr r2, [r3, #4] + 80293d8: f9b7 30ee ldrsh.w r3, [r7, #238] ; 0xee + 80293dc: 005b lsls r3, r3, #1 + 80293de: 4413 add r3, r2 + 80293e0: f9b3 3000 ldrsh.w r3, [r3] + 80293e4: f647 72ff movw r2, #32767 ; 0x7fff + 80293e8: 4293 cmp r3, r2 + 80293ea: d008 beq.n 80293fe lv_draw_line(draw_ctx, &line_dsc_default, &p1, &p2); - 8029480: f107 03b0 add.w r3, r7, #176 ; 0xb0 - 8029484: f107 02b4 add.w r2, r7, #180 ; 0xb4 - 8029488: f107 019c add.w r1, r7, #156 ; 0x9c - 802948c: 6838 ldr r0, [r7, #0] - 802948e: f7e9 fd70 bl 8012f72 + 80293ec: f107 03b0 add.w r3, r7, #176 ; 0xb0 + 80293f0: f107 02b4 add.w r2, r7, #180 ; 0xb4 + 80293f4: f107 019c add.w r1, r7, #156 ; 0x9c + 80293f8: 6838 ldr r0, [r7, #0] + 80293fa: f7e9 fd70 bl 8012ede } if(point_w && point_h && ser->y_points[p_prev] != LV_CHART_POINT_NONE) { - 8029492: f9b7 30ce ldrsh.w r3, [r7, #206] ; 0xce - 8029496: 2b00 cmp r3, #0 - 8029498: d018 beq.n 80294cc - 802949a: f9b7 30cc ldrsh.w r3, [r7, #204] ; 0xcc - 802949e: 2b00 cmp r3, #0 - 80294a0: d014 beq.n 80294cc - 80294a2: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 80294a6: 685a ldr r2, [r3, #4] - 80294a8: f9b7 30ec ldrsh.w r3, [r7, #236] ; 0xec - 80294ac: 005b lsls r3, r3, #1 - 80294ae: 4413 add r3, r2 - 80294b0: f9b3 3000 ldrsh.w r3, [r3] - 80294b4: f647 72ff movw r2, #32767 ; 0x7fff - 80294b8: 4293 cmp r3, r2 - 80294ba: d007 beq.n 80294cc + 80293fe: f9b7 30ce ldrsh.w r3, [r7, #206] ; 0xce + 8029402: 2b00 cmp r3, #0 + 8029404: d018 beq.n 8029438 + 8029406: f9b7 30cc ldrsh.w r3, [r7, #204] ; 0xcc + 802940a: 2b00 cmp r3, #0 + 802940c: d014 beq.n 8029438 + 802940e: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8029412: 685a ldr r2, [r3, #4] + 8029414: f9b7 30ec ldrsh.w r3, [r7, #236] ; 0xec + 8029418: 005b lsls r3, r3, #1 + 802941a: 4413 add r3, r2 + 802941c: f9b3 3000 ldrsh.w r3, [r3] + 8029420: f647 72ff movw r2, #32767 ; 0x7fff + 8029424: 4293 cmp r3, r2 + 8029426: d007 beq.n 8029438 lv_draw_rect(draw_ctx, &point_dsc_default, &point_area); - 80294bc: f107 025c add.w r2, r7, #92 ; 0x5c - 80294c0: f107 0364 add.w r3, r7, #100 ; 0x64 - 80294c4: 4619 mov r1, r3 - 80294c6: 6838 ldr r0, [r7, #0] - 80294c8: f7ec f9d6 bl 8015878 + 8029428: f107 025c add.w r2, r7, #92 ; 0x5c + 802942c: f107 0364 add.w r3, r7, #100 ; 0x64 + 8029430: 4619 mov r1, r3 + 8029432: 6838 ldr r0, [r7, #0] + 8029434: f7ec f9d6 bl 80157e4 } lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 80294cc: f107 030c add.w r3, r7, #12 - 80294d0: 461a mov r2, r3 - 80294d2: 211b movs r1, #27 - 80294d4: 6878 ldr r0, [r7, #4] - 80294d6: f7d8 ffd3 bl 8002480 + 8029438: f107 030c add.w r3, r7, #12 + 802943c: 461a mov r2, r3 + 802943e: 211b movs r1, #27 + 8029440: 6878 ldr r0, [r7, #4] + 8029442: f7d8 ffe7 bl 8002414 } } p_prev = p_act; - 80294da: f8b7 30ee ldrh.w r3, [r7, #238] ; 0xee - 80294de: f8a7 30ec strh.w r3, [r7, #236] ; 0xec + 8029446: f8b7 30ee ldrh.w r3, [r7, #238] ; 0xee + 802944a: f8a7 30ec strh.w r3, [r7, #236] ; 0xec for(i = 0; i < chart->point_cnt; i++) { - 80294e2: f8b7 30f6 ldrh.w r3, [r7, #246] ; 0xf6 - 80294e6: 3301 adds r3, #1 - 80294e8: f8a7 30f6 strh.w r3, [r7, #246] ; 0xf6 - 80294ec: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 80294f0: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 80294f4: f8b7 20f6 ldrh.w r2, [r7, #246] ; 0xf6 - 80294f8: 429a cmp r2, r3 - 80294fa: f4ff ae26 bcc.w 802914a - 80294fe: e000 b.n 8029502 + 802944e: f8b7 30f6 ldrh.w r3, [r7, #246] ; 0xf6 + 8029452: 3301 adds r3, #1 + 8029454: f8a7 30f6 strh.w r3, [r7, #246] ; 0xf6 + 8029458: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 802945c: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 8029460: f8b7 20f6 ldrh.w r2, [r7, #246] ; 0xf6 + 8029464: 429a cmp r2, r3 + 8029466: f4ff ae26 bcc.w 80290b6 + 802946a: e000 b.n 802946e if(p1.x > clip_area_ori->x2 + point_w + 1) break; - 8029500: bf00 nop + 802946c: bf00 nop } /*Draw the last point*/ if(!crowded_mode && i == chart->point_cnt) { - 8029502: f897 30cb ldrb.w r3, [r7, #203] ; 0xcb - 8029506: f083 0301 eor.w r3, r3, #1 - 802950a: b2db uxtb r3, r3 - 802950c: 2b00 cmp r3, #0 - 802950e: d069 beq.n 80295e4 - 8029510: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 8029514: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 8029518: f8b7 20f6 ldrh.w r2, [r7, #246] ; 0xf6 - 802951c: 429a cmp r2, r3 - 802951e: d161 bne.n 80295e4 + 802946e: f897 30cb ldrb.w r3, [r7, #203] ; 0xcb + 8029472: f083 0301 eor.w r3, r3, #1 + 8029476: b2db uxtb r3, r3 + 8029478: 2b00 cmp r3, #0 + 802947a: d069 beq.n 8029550 + 802947c: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 8029480: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 8029484: f8b7 20f6 ldrh.w r2, [r7, #246] ; 0xf6 + 8029488: 429a cmp r2, r3 + 802948a: d161 bne.n 8029550 if(ser->y_points[p_act] != LV_CHART_POINT_NONE) { - 8029520: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 8029524: 685a ldr r2, [r3, #4] - 8029526: f9b7 30ee ldrsh.w r3, [r7, #238] ; 0xee - 802952a: 005b lsls r3, r3, #1 - 802952c: 4413 add r3, r2 - 802952e: f9b3 3000 ldrsh.w r3, [r3] - 8029532: f647 72ff movw r2, #32767 ; 0x7fff - 8029536: 4293 cmp r3, r2 - 8029538: d054 beq.n 80295e4 + 802948c: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8029490: 685a ldr r2, [r3, #4] + 8029492: f9b7 30ee ldrsh.w r3, [r7, #238] ; 0xee + 8029496: 005b lsls r3, r3, #1 + 8029498: 4413 add r3, r2 + 802949a: f9b3 3000 ldrsh.w r3, [r3] + 802949e: f647 72ff movw r2, #32767 ; 0x7fff + 80294a2: 4293 cmp r3, r2 + 80294a4: d054 beq.n 8029550 lv_area_t point_area; point_area.x1 = p2.x - point_w; - 802953a: f9b7 30b0 ldrsh.w r3, [r7, #176] ; 0xb0 - 802953e: b29a uxth r2, r3 - 8029540: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce - 8029544: 1ad3 subs r3, r2, r3 - 8029546: b29b uxth r3, r3 - 8029548: b21b sxth r3, r3 - 802954a: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 + 80294a6: f9b7 30b0 ldrsh.w r3, [r7, #176] ; 0xb0 + 80294aa: b29a uxth r2, r3 + 80294ac: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce + 80294b0: 1ad3 subs r3, r2, r3 + 80294b2: b29b uxth r3, r3 + 80294b4: b21b sxth r3, r3 + 80294b6: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 point_area.x2 = p2.x + point_w; - 802954e: f9b7 30b0 ldrsh.w r3, [r7, #176] ; 0xb0 - 8029552: b29a uxth r2, r3 - 8029554: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce - 8029558: 4413 add r3, r2 - 802955a: b29b uxth r3, r3 - 802955c: b21b sxth r3, r3 - 802955e: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 + 80294ba: f9b7 30b0 ldrsh.w r3, [r7, #176] ; 0xb0 + 80294be: b29a uxth r2, r3 + 80294c0: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce + 80294c4: 4413 add r3, r2 + 80294c6: b29b uxth r3, r3 + 80294c8: b21b sxth r3, r3 + 80294ca: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 point_area.y1 = p2.y - point_h; - 8029562: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 8029566: b29a uxth r2, r3 - 8029568: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc - 802956c: 1ad3 subs r3, r2, r3 - 802956e: b29b uxth r3, r3 - 8029570: b21b sxth r3, r3 - 8029572: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 80294ce: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 80294d2: b29a uxth r2, r3 + 80294d4: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc + 80294d8: 1ad3 subs r3, r2, r3 + 80294da: b29b uxth r3, r3 + 80294dc: b21b sxth r3, r3 + 80294de: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 point_area.y2 = p2.y + point_h; - 8029576: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 802957a: b29a uxth r2, r3 - 802957c: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc - 8029580: 4413 add r3, r2 - 8029582: b29b uxth r3, r3 - 8029584: b21b sxth r3, r3 - 8029586: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 80294e2: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 80294e6: b29a uxth r2, r3 + 80294e8: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc + 80294ec: 4413 add r3, r2 + 80294ee: b29b uxth r3, r3 + 80294f0: b21b sxth r3, r3 + 80294f2: f8a7 305a strh.w r3, [r7, #90] ; 0x5a part_draw_dsc.id = i - 1; - 802958a: f8b7 30f6 ldrh.w r3, [r7, #246] ; 0xf6 - 802958e: 3b01 subs r3, #1 - 8029590: 647b str r3, [r7, #68] ; 0x44 + 80294f6: f8b7 30f6 ldrh.w r3, [r7, #246] ; 0xf6 + 80294fa: 3b01 subs r3, #1 + 80294fc: 647b str r3, [r7, #68] ; 0x44 part_draw_dsc.p1 = NULL; - 8029592: 2300 movs r3, #0 - 8029594: 633b str r3, [r7, #48] ; 0x30 + 80294fe: 2300 movs r3, #0 + 8029500: 633b str r3, [r7, #48] ; 0x30 part_draw_dsc.p2 = NULL; - 8029596: 2300 movs r3, #0 - 8029598: 637b str r3, [r7, #52] ; 0x34 + 8029502: 2300 movs r3, #0 + 8029504: 637b str r3, [r7, #52] ; 0x34 part_draw_dsc.draw_area = &point_area; - 802959a: f107 0354 add.w r3, r7, #84 ; 0x54 - 802959e: 61bb str r3, [r7, #24] + 8029506: f107 0354 add.w r3, r7, #84 ; 0x54 + 802950a: 61bb str r3, [r7, #24] part_draw_dsc.value = ser->y_points[p_act]; - 80295a0: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 80295a4: 685a ldr r2, [r3, #4] - 80295a6: f9b7 30ee ldrsh.w r3, [r7, #238] ; 0xee - 80295aa: 005b lsls r3, r3, #1 - 80295ac: 4413 add r3, r2 - 80295ae: f9b3 3000 ldrsh.w r3, [r3] - 80295b2: 64fb str r3, [r7, #76] ; 0x4c + 802950c: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8029510: 685a ldr r2, [r3, #4] + 8029512: f9b7 30ee ldrsh.w r3, [r7, #238] ; 0xee + 8029516: 005b lsls r3, r3, #1 + 8029518: 4413 add r3, r2 + 802951a: f9b3 3000 ldrsh.w r3, [r3] + 802951e: 64fb str r3, [r7, #76] ; 0x4c lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 80295b4: f107 030c add.w r3, r7, #12 - 80295b8: 461a mov r2, r3 - 80295ba: 211a movs r1, #26 - 80295bc: 6878 ldr r0, [r7, #4] - 80295be: f7d8 ff5f bl 8002480 + 8029520: f107 030c add.w r3, r7, #12 + 8029524: 461a mov r2, r3 + 8029526: 211a movs r1, #26 + 8029528: 6878 ldr r0, [r7, #4] + 802952a: f7d8 ff73 bl 8002414 lv_draw_rect(draw_ctx, &point_dsc_default, &point_area); - 80295c2: f107 0254 add.w r2, r7, #84 ; 0x54 - 80295c6: f107 0364 add.w r3, r7, #100 ; 0x64 - 80295ca: 4619 mov r1, r3 - 80295cc: 6838 ldr r0, [r7, #0] - 80295ce: f7ec f953 bl 8015878 + 802952e: f107 0254 add.w r2, r7, #84 ; 0x54 + 8029532: f107 0364 add.w r3, r7, #100 ; 0x64 + 8029536: 4619 mov r1, r3 + 8029538: 6838 ldr r0, [r7, #0] + 802953a: f7ec f953 bl 80157e4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 80295d2: f107 030c add.w r3, r7, #12 - 80295d6: 461a mov r2, r3 - 80295d8: 211b movs r1, #27 - 80295da: 6878 ldr r0, [r7, #4] - 80295dc: f7d8 ff50 bl 8002480 - 80295e0: e000 b.n 80295e4 + 802953e: f107 030c add.w r3, r7, #12 + 8029542: 461a mov r2, r3 + 8029544: 211b movs r1, #27 + 8029546: 6878 ldr r0, [r7, #4] + 8029548: f7d8 ff64 bl 8002414 + 802954c: e000 b.n 8029550 if(ser->hidden) continue; - 80295e2: bf00 nop + 802954e: bf00 nop _LV_LL_READ_BACK(&chart->series_ll, ser) { - 80295e4: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 80295e8: 3324 adds r3, #36 ; 0x24 - 80295ea: f8d7 10f0 ldr.w r1, [r7, #240] ; 0xf0 - 80295ee: 4618 mov r0, r3 - 80295f0: f008 fee8 bl 80323c4 <_lv_ll_get_prev> - 80295f4: f8c7 00f0 str.w r0, [r7, #240] ; 0xf0 - 80295f8: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 - 80295fc: 2b00 cmp r3, #0 - 80295fe: f47f ad01 bne.w 8029004 + 8029550: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 8029554: 3324 adds r3, #36 ; 0x24 + 8029556: f8d7 10f0 ldr.w r1, [r7, #240] ; 0xf0 + 802955a: 4618 mov r0, r3 + 802955c: f008 fee8 bl 8032330 <_lv_ll_get_prev> + 8029560: f8c7 00f0 str.w r0, [r7, #240] ; 0xf0 + 8029564: f8d7 30f0 ldr.w r3, [r7, #240] ; 0xf0 + 8029568: 2b00 cmp r3, #0 + 802956a: f47f ad01 bne.w 8028f70 } } } draw_ctx->clip_area = clip_area_ori; - 8029602: 683b ldr r3, [r7, #0] - 8029604: f8d7 20e4 ldr.w r2, [r7, #228] ; 0xe4 - 8029608: 609a str r2, [r3, #8] - 802960a: e004 b.n 8029616 + 802956e: 683b ldr r3, [r7, #0] + 8029570: f8d7 20e4 ldr.w r2, [r7, #228] ; 0xe4 + 8029574: 609a str r2, [r3, #8] + 8029576: e004 b.n 8029582 if(_lv_area_intersect(&clip_area, &obj->coords, draw_ctx->clip_area) == false) return; - 802960c: bf00 nop - 802960e: e002 b.n 8029616 + 8029578: bf00 nop + 802957a: e002 b.n 8029582 if(chart->point_cnt < 2) return; - 8029610: bf00 nop - 8029612: e000 b.n 8029616 + 802957c: bf00 nop + 802957e: e000 b.n 8029582 if(mask_ret == false) return; - 8029614: bf00 nop + 8029580: bf00 nop } - 8029616: 37fc adds r7, #252 ; 0xfc - 8029618: 46bd mov sp, r7 - 802961a: bd90 pop {r4, r7, pc} + 8029582: 37fc adds r7, #252 ; 0xfc + 8029584: 46bd mov sp, r7 + 8029586: bd90 pop {r4, r7, pc} -0802961c : +08029588 : static void draw_series_scatter(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx) { - 802961c: b590 push {r4, r7, lr} - 802961e: b0bb sub sp, #236 ; 0xec - 8029620: af02 add r7, sp, #8 - 8029622: 6078 str r0, [r7, #4] - 8029624: 6039 str r1, [r7, #0] + 8029588: b590 push {r4, r7, lr} + 802958a: b0bb sub sp, #236 ; 0xec + 802958c: af02 add r7, sp, #8 + 802958e: 6078 str r0, [r7, #4] + 8029590: 6039 str r1, [r7, #0] lv_area_t clip_area; if(_lv_area_intersect(&clip_area, &obj->coords, draw_ctx->clip_area) == false) return; - 8029626: 687b ldr r3, [r7, #4] - 8029628: f103 0114 add.w r1, r3, #20 - 802962c: 683b ldr r3, [r7, #0] - 802962e: 689a ldr r2, [r3, #8] - 8029630: f107 03b0 add.w r3, r7, #176 ; 0xb0 - 8029634: 4618 mov r0, r3 - 8029636: f007 fd37 bl 80310a8 <_lv_area_intersect> - 802963a: 4603 mov r3, r0 - 802963c: f083 0301 eor.w r3, r3, #1 - 8029640: b2db uxtb r3, r3 - 8029642: 2b00 cmp r3, #0 - 8029644: f040 837a bne.w 8029d3c + 8029592: 687b ldr r3, [r7, #4] + 8029594: f103 0114 add.w r1, r3, #20 + 8029598: 683b ldr r3, [r7, #0] + 802959a: 689a ldr r2, [r3, #8] + 802959c: f107 03b0 add.w r3, r7, #176 ; 0xb0 + 80295a0: 4618 mov r0, r3 + 80295a2: f007 fd37 bl 8031014 <_lv_area_intersect> + 80295a6: 4603 mov r3, r0 + 80295a8: f083 0301 eor.w r3, r3, #1 + 80295ac: b2db uxtb r3, r3 + 80295ae: 2b00 cmp r3, #0 + 80295b0: f040 837a bne.w 8029ca8 const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 8029648: 683b ldr r3, [r7, #0] - 802964a: 689b ldr r3, [r3, #8] - 802964c: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0 + 80295b4: 683b ldr r3, [r7, #0] + 80295b6: 689b ldr r3, [r3, #8] + 80295b8: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0 draw_ctx->clip_area = &clip_area; - 8029650: 683b ldr r3, [r7, #0] - 8029652: f107 02b0 add.w r2, r7, #176 ; 0xb0 - 8029656: 609a str r2, [r3, #8] + 80295bc: 683b ldr r3, [r7, #0] + 80295be: f107 02b0 add.w r2, r7, #176 ; 0xb0 + 80295c2: 609a str r2, [r3, #8] lv_chart_t * chart = (lv_chart_t *)obj; - 8029658: 687b ldr r3, [r7, #4] - 802965a: f8c7 30cc str.w r3, [r7, #204] ; 0xcc + 80295c4: 687b ldr r3, [r7, #4] + 80295c6: f8c7 30cc str.w r3, [r7, #204] ; 0xcc uint16_t i; lv_point_t p1; lv_point_t p2; lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 802965e: 2100 movs r1, #0 - 8029660: 6878 ldr r0, [r7, #4] - 8029662: f7fe fe34 bl 80282ce - 8029666: 4603 mov r3, r0 - 8029668: f8a7 30ca strh.w r3, [r7, #202] ; 0xca + 80295ca: 2100 movs r1, #0 + 80295cc: 6878 ldr r0, [r7, #4] + 80295ce: f7fe fe34 bl 802823a + 80295d2: 4603 mov r3, r0 + 80295d4: f8a7 30ca strh.w r3, [r7, #202] ; 0xca lv_coord_t pad_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 802966c: 2100 movs r1, #0 - 802966e: 6878 ldr r0, [r7, #4] - 8029670: f7fe fde2 bl 8028238 - 8029674: 4603 mov r3, r0 - 8029676: f8a7 30c8 strh.w r3, [r7, #200] ; 0xc8 + 80295d8: 2100 movs r1, #0 + 80295da: 6878 ldr r0, [r7, #4] + 80295dc: f7fe fde2 bl 80281a4 + 80295e0: 4603 mov r3, r0 + 80295e2: f8a7 30c8 strh.w r3, [r7, #200] ; 0xc8 lv_coord_t pad_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 802967a: 2100 movs r1, #0 - 802967c: 6878 ldr r0, [r7, #4] - 802967e: f7fe fdb5 bl 80281ec - 8029682: 4603 mov r3, r0 - 8029684: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 + 80295e6: 2100 movs r1, #0 + 80295e8: 6878 ldr r0, [r7, #4] + 80295ea: f7fe fdb5 bl 8028158 + 80295ee: 4603 mov r3, r0 + 80295f0: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 lv_coord_t w = ((int32_t)lv_obj_get_content_width(obj) * chart->zoom_x) >> 8; - 8029688: 6878 ldr r0, [r7, #4] - 802968a: f7e0 fd79 bl 800a180 - 802968e: 4603 mov r3, r0 - 8029690: 461a mov r2, r3 - 8029692: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc - 8029696: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 - 802969a: fb02 f303 mul.w r3, r2, r3 - 802969e: 121b asrs r3, r3, #8 - 80296a0: f8a7 30c4 strh.w r3, [r7, #196] ; 0xc4 + 80295f4: 6878 ldr r0, [r7, #4] + 80295f6: f7e0 fd8d bl 800a114 + 80295fa: 4603 mov r3, r0 + 80295fc: 461a mov r2, r3 + 80295fe: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc + 8029602: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 + 8029606: fb02 f303 mul.w r3, r2, r3 + 802960a: 121b asrs r3, r3, #8 + 802960c: f8a7 30c4 strh.w r3, [r7, #196] ; 0xc4 lv_coord_t h = ((int32_t)lv_obj_get_content_height(obj) * chart->zoom_y) >> 8; - 80296a4: 6878 ldr r0, [r7, #4] - 80296a6: f7e0 fd96 bl 800a1d6 - 80296aa: 4603 mov r3, r0 - 80296ac: 461a mov r2, r3 - 80296ae: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc - 80296b2: f8b3 3086 ldrh.w r3, [r3, #134] ; 0x86 - 80296b6: fb02 f303 mul.w r3, r2, r3 - 80296ba: 121b asrs r3, r3, #8 - 80296bc: f8a7 30c2 strh.w r3, [r7, #194] ; 0xc2 + 8029610: 6878 ldr r0, [r7, #4] + 8029612: f7e0 fdaa bl 800a16a + 8029616: 4603 mov r3, r0 + 8029618: 461a mov r2, r3 + 802961a: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc + 802961e: f8b3 3086 ldrh.w r3, [r3, #134] ; 0x86 + 8029622: fb02 f303 mul.w r3, r2, r3 + 8029626: 121b asrs r3, r3, #8 + 8029628: f8a7 30c2 strh.w r3, [r7, #194] ; 0xc2 lv_coord_t x_ofs = obj->coords.x1 + pad_left + border_width - lv_obj_get_scroll_left(obj); - 80296c0: 687b ldr r3, [r7, #4] - 80296c2: f9b3 3014 ldrsh.w r3, [r3, #20] - 80296c6: b29a uxth r2, r3 - 80296c8: f8b7 30c8 ldrh.w r3, [r7, #200] ; 0xc8 - 80296cc: 4413 add r3, r2 - 80296ce: b29a uxth r2, r3 - 80296d0: f8b7 30ca ldrh.w r3, [r7, #202] ; 0xca - 80296d4: 4413 add r3, r2 - 80296d6: b29c uxth r4, r3 - 80296d8: 6878 ldr r0, [r7, #4] - 80296da: f7e2 fa15 bl 800bb08 - 80296de: 4603 mov r3, r0 - 80296e0: b29b uxth r3, r3 - 80296e2: 1ae3 subs r3, r4, r3 - 80296e4: b29b uxth r3, r3 - 80296e6: f8a7 30c0 strh.w r3, [r7, #192] ; 0xc0 + 802962c: 687b ldr r3, [r7, #4] + 802962e: f9b3 3014 ldrsh.w r3, [r3, #20] + 8029632: b29a uxth r2, r3 + 8029634: f8b7 30c8 ldrh.w r3, [r7, #200] ; 0xc8 + 8029638: 4413 add r3, r2 + 802963a: b29a uxth r2, r3 + 802963c: f8b7 30ca ldrh.w r3, [r7, #202] ; 0xca + 8029640: 4413 add r3, r2 + 8029642: b29c uxth r4, r3 + 8029644: 6878 ldr r0, [r7, #4] + 8029646: f7e2 fa29 bl 800ba9c + 802964a: 4603 mov r3, r0 + 802964c: b29b uxth r3, r3 + 802964e: 1ae3 subs r3, r4, r3 + 8029650: b29b uxth r3, r3 + 8029652: f8a7 30c0 strh.w r3, [r7, #192] ; 0xc0 lv_coord_t y_ofs = obj->coords.y1 + pad_top + border_width - lv_obj_get_scroll_top(obj); - 80296ea: 687b ldr r3, [r7, #4] - 80296ec: f9b3 3016 ldrsh.w r3, [r3, #22] - 80296f0: b29a uxth r2, r3 - 80296f2: f8b7 30c6 ldrh.w r3, [r7, #198] ; 0xc6 - 80296f6: 4413 add r3, r2 - 80296f8: b29a uxth r2, r3 - 80296fa: f8b7 30ca ldrh.w r3, [r7, #202] ; 0xca - 80296fe: 4413 add r3, r2 - 8029700: b29c uxth r4, r3 - 8029702: 6878 ldr r0, [r7, #4] - 8029704: f7e2 f962 bl 800b9cc - 8029708: 4603 mov r3, r0 - 802970a: b29b uxth r3, r3 - 802970c: 1ae3 subs r3, r4, r3 - 802970e: b29b uxth r3, r3 - 8029710: f8a7 30be strh.w r3, [r7, #190] ; 0xbe + 8029656: 687b ldr r3, [r7, #4] + 8029658: f9b3 3016 ldrsh.w r3, [r3, #22] + 802965c: b29a uxth r2, r3 + 802965e: f8b7 30c6 ldrh.w r3, [r7, #198] ; 0xc6 + 8029662: 4413 add r3, r2 + 8029664: b29a uxth r2, r3 + 8029666: f8b7 30ca ldrh.w r3, [r7, #202] ; 0xca + 802966a: 4413 add r3, r2 + 802966c: b29c uxth r4, r3 + 802966e: 6878 ldr r0, [r7, #4] + 8029670: f7e2 f976 bl 800b960 + 8029674: 4603 mov r3, r0 + 8029676: b29b uxth r3, r3 + 8029678: 1ae3 subs r3, r4, r3 + 802967a: b29b uxth r3, r3 + 802967c: f8a7 30be strh.w r3, [r7, #190] ; 0xbe lv_chart_series_t * ser; lv_draw_line_dsc_t line_dsc_default; lv_draw_line_dsc_init(&line_dsc_default); - 8029714: f107 039c add.w r3, r7, #156 ; 0x9c - 8029718: 4618 mov r0, r3 - 802971a: f7e9 fc14 bl 8012f46 + 8029680: f107 039c add.w r3, r7, #156 ; 0x9c + 8029684: 4618 mov r0, r3 + 8029686: f7e9 fc14 bl 8012eb2 lv_obj_init_draw_line_dsc(obj, LV_PART_ITEMS, &line_dsc_default); - 802971e: f107 039c add.w r3, r7, #156 ; 0x9c - 8029722: 461a mov r2, r3 - 8029724: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 8029728: 6878 ldr r0, [r7, #4] - 802972a: f7df fa1d bl 8008b68 + 802968a: f107 039c add.w r3, r7, #156 ; 0x9c + 802968e: 461a mov r2, r3 + 8029690: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8029694: 6878 ldr r0, [r7, #4] + 8029696: f7df fa31 bl 8008afc lv_draw_rect_dsc_t point_dsc_default; lv_draw_rect_dsc_init(&point_dsc_default); - 802972e: f107 0364 add.w r3, r7, #100 ; 0x64 - 8029732: 4618 mov r0, r3 - 8029734: f7ec f85e bl 80157f4 + 802969a: f107 0364 add.w r3, r7, #100 ; 0x64 + 802969e: 4618 mov r0, r3 + 80296a0: f7ec f85e bl 8015760 lv_obj_init_draw_rect_dsc(obj, LV_PART_INDICATOR, &point_dsc_default); - 8029738: f107 0364 add.w r3, r7, #100 ; 0x64 - 802973c: 461a mov r2, r3 - 802973e: f44f 3100 mov.w r1, #131072 ; 0x20000 - 8029742: 6878 ldr r0, [r7, #4] - 8029744: f7de ff3f bl 80085c6 + 80296a4: f107 0364 add.w r3, r7, #100 ; 0x64 + 80296a8: 461a mov r2, r3 + 80296aa: f44f 3100 mov.w r1, #131072 ; 0x20000 + 80296ae: 6878 ldr r0, [r7, #4] + 80296b0: f7de ff53 bl 800855a lv_coord_t point_w = lv_obj_get_style_width(obj, LV_PART_INDICATOR) / 2; - 8029748: f44f 3100 mov.w r1, #131072 ; 0x20000 - 802974c: 6878 ldr r0, [r7, #4] - 802974e: f7fe fd27 bl 80281a0 - 8029752: 4603 mov r3, r0 - 8029754: 0fda lsrs r2, r3, #31 - 8029756: 4413 add r3, r2 - 8029758: 105b asrs r3, r3, #1 - 802975a: f8a7 30bc strh.w r3, [r7, #188] ; 0xbc + 80296b4: f44f 3100 mov.w r1, #131072 ; 0x20000 + 80296b8: 6878 ldr r0, [r7, #4] + 80296ba: f7fe fd27 bl 802810c + 80296be: 4603 mov r3, r0 + 80296c0: 0fda lsrs r2, r3, #31 + 80296c2: 4413 add r3, r2 + 80296c4: 105b asrs r3, r3, #1 + 80296c6: f8a7 30bc strh.w r3, [r7, #188] ; 0xbc lv_coord_t point_h = lv_obj_get_style_height(obj, LV_PART_INDICATOR) / 2; - 802975e: f44f 3100 mov.w r1, #131072 ; 0x20000 - 8029762: 6878 ldr r0, [r7, #4] - 8029764: f7fe fd2f bl 80281c6 - 8029768: 4603 mov r3, r0 - 802976a: 0fda lsrs r2, r3, #31 - 802976c: 4413 add r3, r2 - 802976e: 105b asrs r3, r3, #1 - 8029770: f8a7 30ba strh.w r3, [r7, #186] ; 0xba + 80296ca: f44f 3100 mov.w r1, #131072 ; 0x20000 + 80296ce: 6878 ldr r0, [r7, #4] + 80296d0: f7fe fd2f bl 8028132 + 80296d4: 4603 mov r3, r0 + 80296d6: 0fda lsrs r2, r3, #31 + 80296d8: 4413 add r3, r2 + 80296da: 105b asrs r3, r3, #1 + 80296dc: f8a7 30ba strh.w r3, [r7, #186] ; 0xba /*Do not bother with line ending is the point will over it*/ if(LV_MIN(point_w, point_h) > line_dsc_default.width / 2) line_dsc_default.raw_end = 1; - 8029774: f9b7 20ba ldrsh.w r2, [r7, #186] ; 0xba - 8029778: f9b7 30bc ldrsh.w r3, [r7, #188] ; 0xbc - 802977c: 4293 cmp r3, r2 - 802977e: bfa8 it ge - 8029780: 4613 movge r3, r2 - 8029782: b21a sxth r2, r3 - 8029784: f9b7 309e ldrsh.w r3, [r7, #158] ; 0x9e - 8029788: 0fd9 lsrs r1, r3, #31 - 802978a: 440b add r3, r1 - 802978c: 105b asrs r3, r3, #1 - 802978e: b21b sxth r3, r3 - 8029790: 429a cmp r2, r3 - 8029792: dd05 ble.n 80297a0 - 8029794: f897 30a5 ldrb.w r3, [r7, #165] ; 0xa5 - 8029798: f043 0310 orr.w r3, r3, #16 - 802979c: f887 30a5 strb.w r3, [r7, #165] ; 0xa5 + 80296e0: f9b7 20ba ldrsh.w r2, [r7, #186] ; 0xba + 80296e4: f9b7 30bc ldrsh.w r3, [r7, #188] ; 0xbc + 80296e8: 4293 cmp r3, r2 + 80296ea: bfa8 it ge + 80296ec: 4613 movge r3, r2 + 80296ee: b21a sxth r2, r3 + 80296f0: f9b7 309e ldrsh.w r3, [r7, #158] ; 0x9e + 80296f4: 0fd9 lsrs r1, r3, #31 + 80296f6: 440b add r3, r1 + 80296f8: 105b asrs r3, r3, #1 + 80296fa: b21b sxth r3, r3 + 80296fc: 429a cmp r2, r3 + 80296fe: dd05 ble.n 802970c + 8029700: f897 30a5 ldrb.w r3, [r7, #165] ; 0xa5 + 8029704: f043 0310 orr.w r3, r3, #16 + 8029708: f887 30a5 strb.w r3, [r7, #165] ; 0xa5 if(line_dsc_default.width == 1) line_dsc_default.raw_end = 1; - 80297a0: f9b7 309e ldrsh.w r3, [r7, #158] ; 0x9e - 80297a4: 2b01 cmp r3, #1 - 80297a6: d105 bne.n 80297b4 - 80297a8: f897 30a5 ldrb.w r3, [r7, #165] ; 0xa5 - 80297ac: f043 0310 orr.w r3, r3, #16 - 80297b0: f887 30a5 strb.w r3, [r7, #165] ; 0xa5 + 802970c: f9b7 309e ldrsh.w r3, [r7, #158] ; 0x9e + 8029710: 2b01 cmp r3, #1 + 8029712: d105 bne.n 8029720 + 8029714: f897 30a5 ldrb.w r3, [r7, #165] ; 0xa5 + 8029718: f043 0310 orr.w r3, r3, #16 + 802971c: f887 30a5 strb.w r3, [r7, #165] ; 0xa5 /*Go through all data lines*/ _LV_LL_READ_BACK(&chart->series_ll, ser) { - 80297b4: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc - 80297b8: 3324 adds r3, #36 ; 0x24 - 80297ba: 4618 mov r0, r3 - 80297bc: f008 fdde bl 803237c <_lv_ll_get_tail> - 80297c0: f8c7 00d8 str.w r0, [r7, #216] ; 0xd8 - 80297c4: e2b0 b.n 8029d28 + 8029720: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc + 8029724: 3324 adds r3, #36 ; 0x24 + 8029726: 4618 mov r0, r3 + 8029728: f008 fdde bl 80322e8 <_lv_ll_get_tail> + 802972c: f8c7 00d8 str.w r0, [r7, #216] ; 0xd8 + 8029730: e2b0 b.n 8029c94 if(ser->hidden) continue; - 80297c6: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 80297ca: 7b1b ldrb r3, [r3, #12] - 80297cc: f003 0301 and.w r3, r3, #1 - 80297d0: b2db uxtb r3, r3 - 80297d2: 2b00 cmp r3, #0 - 80297d4: f040 829d bne.w 8029d12 + 8029732: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 8029736: 7b1b ldrb r3, [r3, #12] + 8029738: f003 0301 and.w r3, r3, #1 + 802973c: b2db uxtb r3, r3 + 802973e: 2b00 cmp r3, #0 + 8029740: f040 829d bne.w 8029c7e line_dsc_default.color = ser->color; - 80297d8: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 80297dc: 891b ldrh r3, [r3, #8] - 80297de: f8a7 309c strh.w r3, [r7, #156] ; 0x9c + 8029744: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 8029748: 891b ldrh r3, [r3, #8] + 802974a: f8a7 309c strh.w r3, [r7, #156] ; 0x9c point_dsc_default.bg_color = ser->color; - 80297e2: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 80297e6: 891b ldrh r3, [r3, #8] - 80297e8: f8a7 3068 strh.w r3, [r7, #104] ; 0x68 + 802974e: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 8029752: 891b ldrh r3, [r3, #8] + 8029754: f8a7 3068 strh.w r3, [r7, #104] ; 0x68 lv_coord_t start_point = chart->update_mode == LV_CHART_UPDATE_MODE_SHIFT ? ser->start_point : 0; - 80297ec: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc - 80297f0: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 80297f4: f003 0308 and.w r3, r3, #8 - 80297f8: b2db uxtb r3, r3 - 80297fa: 2b00 cmp r3, #0 - 80297fc: d104 bne.n 8029808 - 80297fe: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029802: 895b ldrh r3, [r3, #10] - 8029804: b21b sxth r3, r3 - 8029806: e000 b.n 802980a - 8029808: 2300 movs r3, #0 - 802980a: f8a7 30b8 strh.w r3, [r7, #184] ; 0xb8 + 8029758: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc + 802975c: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 8029760: f003 0308 and.w r3, r3, #8 + 8029764: b2db uxtb r3, r3 + 8029766: 2b00 cmp r3, #0 + 8029768: d104 bne.n 8029774 + 802976a: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 802976e: 895b ldrh r3, [r3, #10] + 8029770: b21b sxth r3, r3 + 8029772: e000 b.n 8029776 + 8029774: 2300 movs r3, #0 + 8029776: f8a7 30b8 strh.w r3, [r7, #184] ; 0xb8 p1.x = x_ofs; - 802980e: f8b7 30c0 ldrh.w r3, [r7, #192] ; 0xc0 - 8029812: f8a7 30ac strh.w r3, [r7, #172] ; 0xac + 802977a: f8b7 30c0 ldrh.w r3, [r7, #192] ; 0xc0 + 802977e: f8a7 30ac strh.w r3, [r7, #172] ; 0xac p2.x = x_ofs; - 8029816: f8b7 30c0 ldrh.w r3, [r7, #192] ; 0xc0 - 802981a: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 + 8029782: f8b7 30c0 ldrh.w r3, [r7, #192] ; 0xc0 + 8029786: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 lv_coord_t p_act = start_point; - 802981e: f8b7 30b8 ldrh.w r3, [r7, #184] ; 0xb8 - 8029822: f8a7 30d6 strh.w r3, [r7, #214] ; 0xd6 + 802978a: f8b7 30b8 ldrh.w r3, [r7, #184] ; 0xb8 + 802978e: f8a7 30d6 strh.w r3, [r7, #214] ; 0xd6 lv_coord_t p_prev = start_point; - 8029826: f8b7 30b8 ldrh.w r3, [r7, #184] ; 0xb8 - 802982a: f8a7 30d4 strh.w r3, [r7, #212] ; 0xd4 + 8029792: f8b7 30b8 ldrh.w r3, [r7, #184] ; 0xb8 + 8029796: f8a7 30d4 strh.w r3, [r7, #212] ; 0xd4 if(ser->y_points[p_act] != LV_CHART_POINT_CNT_DEF) { - 802982e: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029832: 685a ldr r2, [r3, #4] - 8029834: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 - 8029838: 005b lsls r3, r3, #1 - 802983a: 4413 add r3, r2 - 802983c: f9b3 3000 ldrsh.w r3, [r3] - 8029840: 2b0a cmp r3, #10 - 8029842: d07c beq.n 802993e + 802979a: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 802979e: 685a ldr r2, [r3, #4] + 80297a0: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 + 80297a4: 005b lsls r3, r3, #1 + 80297a6: 4413 add r3, r2 + 80297a8: f9b3 3000 ldrsh.w r3, [r3] + 80297ac: 2b0a cmp r3, #10 + 80297ae: d07c beq.n 80298aa p2.x = lv_map(ser->x_points[p_act], chart->xmin[ser->x_axis_sec], chart->xmax[ser->x_axis_sec], 0, w); - 8029844: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029848: 681a ldr r2, [r3, #0] - 802984a: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 - 802984e: 005b lsls r3, r3, #1 - 8029850: 4413 add r3, r2 - 8029852: f9b3 3000 ldrsh.w r3, [r3] - 8029856: 4618 mov r0, r3 - 8029858: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 802985c: 7b1b ldrb r3, [r3, #12] - 802985e: f3c3 03c0 ubfx r3, r3, #3, #1 - 8029862: b2db uxtb r3, r3 - 8029864: f8d7 20cc ldr.w r2, [r7, #204] ; 0xcc - 8029868: 3338 adds r3, #56 ; 0x38 - 802986a: 005b lsls r3, r3, #1 - 802986c: 4413 add r3, r2 - 802986e: f9b3 3004 ldrsh.w r3, [r3, #4] - 8029872: 4619 mov r1, r3 - 8029874: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029878: 7b1b ldrb r3, [r3, #12] - 802987a: f3c3 03c0 ubfx r3, r3, #3, #1 - 802987e: b2db uxtb r3, r3 - 8029880: 461a mov r2, r3 - 8029882: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc - 8029886: 323c adds r2, #60 ; 0x3c - 8029888: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] - 802988c: 461a mov r2, r3 - 802988e: f9b7 30c4 ldrsh.w r3, [r7, #196] ; 0xc4 - 8029892: 9300 str r3, [sp, #0] - 8029894: 2300 movs r3, #0 - 8029896: f008 ffc4 bl 8032822 - 802989a: 4603 mov r3, r0 - 802989c: b21b sxth r3, r3 - 802989e: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 + 80297b0: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 80297b4: 681a ldr r2, [r3, #0] + 80297b6: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 + 80297ba: 005b lsls r3, r3, #1 + 80297bc: 4413 add r3, r2 + 80297be: f9b3 3000 ldrsh.w r3, [r3] + 80297c2: 4618 mov r0, r3 + 80297c4: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 80297c8: 7b1b ldrb r3, [r3, #12] + 80297ca: f3c3 03c0 ubfx r3, r3, #3, #1 + 80297ce: b2db uxtb r3, r3 + 80297d0: f8d7 20cc ldr.w r2, [r7, #204] ; 0xcc + 80297d4: 3338 adds r3, #56 ; 0x38 + 80297d6: 005b lsls r3, r3, #1 + 80297d8: 4413 add r3, r2 + 80297da: f9b3 3004 ldrsh.w r3, [r3, #4] + 80297de: 4619 mov r1, r3 + 80297e0: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 80297e4: 7b1b ldrb r3, [r3, #12] + 80297e6: f3c3 03c0 ubfx r3, r3, #3, #1 + 80297ea: b2db uxtb r3, r3 + 80297ec: 461a mov r2, r3 + 80297ee: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc + 80297f2: 323c adds r2, #60 ; 0x3c + 80297f4: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] + 80297f8: 461a mov r2, r3 + 80297fa: f9b7 30c4 ldrsh.w r3, [r7, #196] ; 0xc4 + 80297fe: 9300 str r3, [sp, #0] + 8029800: 2300 movs r3, #0 + 8029802: f008 ffc4 bl 803278e + 8029806: 4603 mov r3, r0 + 8029808: b21b sxth r3, r3 + 802980a: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 p2.x += x_ofs; - 80298a2: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 - 80298a6: b29a uxth r2, r3 - 80298a8: f8b7 30c0 ldrh.w r3, [r7, #192] ; 0xc0 - 80298ac: 4413 add r3, r2 - 80298ae: b29b uxth r3, r3 - 80298b0: b21b sxth r3, r3 - 80298b2: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 + 802980e: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 + 8029812: b29a uxth r2, r3 + 8029814: f8b7 30c0 ldrh.w r3, [r7, #192] ; 0xc0 + 8029818: 4413 add r3, r2 + 802981a: b29b uxth r3, r3 + 802981c: b21b sxth r3, r3 + 802981e: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 p2.y = lv_map(ser->y_points[p_act], chart->ymin[ser->y_axis_sec], chart->ymax[ser->y_axis_sec], 0, h); - 80298b6: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 80298ba: 685a ldr r2, [r3, #4] - 80298bc: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 - 80298c0: 005b lsls r3, r3, #1 - 80298c2: 4413 add r3, r2 - 80298c4: f9b3 3000 ldrsh.w r3, [r3] - 80298c8: 4618 mov r0, r3 - 80298ca: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 80298ce: 7b1b ldrb r3, [r3, #12] - 80298d0: f3c3 1300 ubfx r3, r3, #4, #1 - 80298d4: b2db uxtb r3, r3 - 80298d6: f8d7 20cc ldr.w r2, [r7, #204] ; 0xcc - 80298da: 3334 adds r3, #52 ; 0x34 - 80298dc: 005b lsls r3, r3, #1 - 80298de: 4413 add r3, r2 - 80298e0: f9b3 3004 ldrsh.w r3, [r3, #4] - 80298e4: 4619 mov r1, r3 - 80298e6: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 80298ea: 7b1b ldrb r3, [r3, #12] - 80298ec: f3c3 1300 ubfx r3, r3, #4, #1 - 80298f0: b2db uxtb r3, r3 - 80298f2: 461a mov r2, r3 - 80298f4: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc - 80298f8: 3238 adds r2, #56 ; 0x38 - 80298fa: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] - 80298fe: 461a mov r2, r3 - 8029900: f9b7 30c2 ldrsh.w r3, [r7, #194] ; 0xc2 - 8029904: 9300 str r3, [sp, #0] - 8029906: 2300 movs r3, #0 - 8029908: f008 ff8b bl 8032822 - 802990c: 4603 mov r3, r0 - 802990e: b21b sxth r3, r3 - 8029910: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa + 8029822: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 8029826: 685a ldr r2, [r3, #4] + 8029828: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 + 802982c: 005b lsls r3, r3, #1 + 802982e: 4413 add r3, r2 + 8029830: f9b3 3000 ldrsh.w r3, [r3] + 8029834: 4618 mov r0, r3 + 8029836: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 802983a: 7b1b ldrb r3, [r3, #12] + 802983c: f3c3 1300 ubfx r3, r3, #4, #1 + 8029840: b2db uxtb r3, r3 + 8029842: f8d7 20cc ldr.w r2, [r7, #204] ; 0xcc + 8029846: 3334 adds r3, #52 ; 0x34 + 8029848: 005b lsls r3, r3, #1 + 802984a: 4413 add r3, r2 + 802984c: f9b3 3004 ldrsh.w r3, [r3, #4] + 8029850: 4619 mov r1, r3 + 8029852: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 8029856: 7b1b ldrb r3, [r3, #12] + 8029858: f3c3 1300 ubfx r3, r3, #4, #1 + 802985c: b2db uxtb r3, r3 + 802985e: 461a mov r2, r3 + 8029860: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc + 8029864: 3238 adds r2, #56 ; 0x38 + 8029866: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] + 802986a: 461a mov r2, r3 + 802986c: f9b7 30c2 ldrsh.w r3, [r7, #194] ; 0xc2 + 8029870: 9300 str r3, [sp, #0] + 8029872: 2300 movs r3, #0 + 8029874: f008 ff8b bl 803278e + 8029878: 4603 mov r3, r0 + 802987a: b21b sxth r3, r3 + 802987c: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa p2.y = h - p2.y; - 8029914: f8b7 20c2 ldrh.w r2, [r7, #194] ; 0xc2 - 8029918: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa - 802991c: b29b uxth r3, r3 - 802991e: 1ad3 subs r3, r2, r3 - 8029920: b29b uxth r3, r3 - 8029922: b21b sxth r3, r3 - 8029924: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa + 8029880: f8b7 20c2 ldrh.w r2, [r7, #194] ; 0xc2 + 8029884: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa + 8029888: b29b uxth r3, r3 + 802988a: 1ad3 subs r3, r2, r3 + 802988c: b29b uxth r3, r3 + 802988e: b21b sxth r3, r3 + 8029890: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa p2.y += y_ofs; - 8029928: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa - 802992c: b29a uxth r2, r3 - 802992e: f8b7 30be ldrh.w r3, [r7, #190] ; 0xbe - 8029932: 4413 add r3, r2 - 8029934: b29b uxth r3, r3 - 8029936: b21b sxth r3, r3 - 8029938: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa - 802993c: e007 b.n 802994e + 8029894: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa + 8029898: b29a uxth r2, r3 + 802989a: f8b7 30be ldrh.w r3, [r7, #190] ; 0xbe + 802989e: 4413 add r3, r2 + 80298a0: b29b uxth r3, r3 + 80298a2: b21b sxth r3, r3 + 80298a4: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa + 80298a8: e007 b.n 80298ba } else { p2.x = LV_COORD_MIN; - 802993e: f24e 0301 movw r3, #57345 ; 0xe001 - 8029942: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 + 80298aa: f24e 0301 movw r3, #57345 ; 0xe001 + 80298ae: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 p2.y = LV_COORD_MIN; - 8029946: f24e 0301 movw r3, #57345 ; 0xe001 - 802994a: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa + 80298b2: f24e 0301 movw r3, #57345 ; 0xe001 + 80298b6: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa } lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 802994e: f107 030c add.w r3, r7, #12 - 8029952: 6839 ldr r1, [r7, #0] - 8029954: 4618 mov r0, r3 - 8029956: f7df fa8a bl 8008e6e + 80298ba: f107 030c add.w r3, r7, #12 + 80298be: 6839 ldr r1, [r7, #0] + 80298c0: 4618 mov r0, r3 + 80298c2: f7df fa9e bl 8008e02 part_draw_dsc.part = LV_PART_ITEMS; - 802995a: f44f 23a0 mov.w r3, #327680 ; 0x50000 - 802995e: 643b str r3, [r7, #64] ; 0x40 + 80298c6: f44f 23a0 mov.w r3, #327680 ; 0x50000 + 80298ca: 643b str r3, [r7, #64] ; 0x40 part_draw_dsc.class_p = MY_CLASS; - 8029960: 4b85 ldr r3, [pc, #532] ; (8029b78 ) - 8029962: 613b str r3, [r7, #16] + 80298cc: 4b85 ldr r3, [pc, #532] ; (8029ae4 ) + 80298ce: 613b str r3, [r7, #16] part_draw_dsc.type = LV_CHART_DRAW_PART_LINE_AND_POINT; - 8029964: 2303 movs r3, #3 - 8029966: 617b str r3, [r7, #20] + 80298d0: 2303 movs r3, #3 + 80298d2: 617b str r3, [r7, #20] part_draw_dsc.line_dsc = &line_dsc_default; - 8029968: f107 039c add.w r3, r7, #156 ; 0x9c - 802996c: 627b str r3, [r7, #36] ; 0x24 + 80298d4: f107 039c add.w r3, r7, #156 ; 0x9c + 80298d8: 627b str r3, [r7, #36] ; 0x24 part_draw_dsc.rect_dsc = &point_dsc_default; - 802996e: f107 0364 add.w r3, r7, #100 ; 0x64 - 8029972: 61fb str r3, [r7, #28] + 80298da: f107 0364 add.w r3, r7, #100 ; 0x64 + 80298de: 61fb str r3, [r7, #28] part_draw_dsc.sub_part_ptr = ser; - 8029974: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029978: 653b str r3, [r7, #80] ; 0x50 + 80298e0: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 80298e4: 653b str r3, [r7, #80] ; 0x50 for(i = 0; i < chart->point_cnt; i++) { - 802997a: 2300 movs r3, #0 - 802997c: f8a7 30de strh.w r3, [r7, #222] ; 0xde - 8029980: e155 b.n 8029c2e + 80298e6: 2300 movs r3, #0 + 80298e8: f8a7 30de strh.w r3, [r7, #222] ; 0xde + 80298ec: e155 b.n 8029b9a p1.x = p2.x; - 8029982: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 - 8029986: f8a7 30ac strh.w r3, [r7, #172] ; 0xac + 80298ee: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 + 80298f2: f8a7 30ac strh.w r3, [r7, #172] ; 0xac p1.y = p2.y; - 802998a: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa - 802998e: f8a7 30ae strh.w r3, [r7, #174] ; 0xae + 80298f6: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa + 80298fa: f8a7 30ae strh.w r3, [r7, #174] ; 0xae p_act = (start_point + i) % chart->point_cnt; - 8029992: f9b7 20b8 ldrsh.w r2, [r7, #184] ; 0xb8 - 8029996: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde - 802999a: 4413 add r3, r2 - 802999c: f8d7 20cc ldr.w r2, [r7, #204] ; 0xcc - 80299a0: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 - 80299a4: fb93 f1f2 sdiv r1, r3, r2 - 80299a8: fb01 f202 mul.w r2, r1, r2 - 80299ac: 1a9b subs r3, r3, r2 - 80299ae: f8a7 30d6 strh.w r3, [r7, #214] ; 0xd6 + 80298fe: f9b7 20b8 ldrsh.w r2, [r7, #184] ; 0xb8 + 8029902: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde + 8029906: 4413 add r3, r2 + 8029908: f8d7 20cc ldr.w r2, [r7, #204] ; 0xcc + 802990c: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 + 8029910: fb93 f1f2 sdiv r1, r3, r2 + 8029914: fb01 f202 mul.w r2, r1, r2 + 8029918: 1a9b subs r3, r3, r2 + 802991a: f8a7 30d6 strh.w r3, [r7, #214] ; 0xd6 if(ser->y_points[p_act] != LV_CHART_POINT_NONE) { - 80299b2: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 80299b6: 685a ldr r2, [r3, #4] - 80299b8: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 - 80299bc: 005b lsls r3, r3, #1 - 80299be: 4413 add r3, r2 - 80299c0: f9b3 3000 ldrsh.w r3, [r3] - 80299c4: f647 72ff movw r2, #32767 ; 0x7fff - 80299c8: 4293 cmp r3, r2 - 80299ca: f000 8082 beq.w 8029ad2 + 802991e: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 8029922: 685a ldr r2, [r3, #4] + 8029924: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 + 8029928: 005b lsls r3, r3, #1 + 802992a: 4413 add r3, r2 + 802992c: f9b3 3000 ldrsh.w r3, [r3] + 8029930: f647 72ff movw r2, #32767 ; 0x7fff + 8029934: 4293 cmp r3, r2 + 8029936: f000 8082 beq.w 8029a3e p2.y = lv_map(ser->y_points[p_act], chart->ymin[ser->y_axis_sec], chart->ymax[ser->y_axis_sec], 0, h); - 80299ce: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 80299d2: 685a ldr r2, [r3, #4] - 80299d4: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 - 80299d8: 005b lsls r3, r3, #1 - 80299da: 4413 add r3, r2 - 80299dc: f9b3 3000 ldrsh.w r3, [r3] - 80299e0: 4618 mov r0, r3 - 80299e2: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 80299e6: 7b1b ldrb r3, [r3, #12] - 80299e8: f3c3 1300 ubfx r3, r3, #4, #1 - 80299ec: b2db uxtb r3, r3 - 80299ee: f8d7 20cc ldr.w r2, [r7, #204] ; 0xcc - 80299f2: 3334 adds r3, #52 ; 0x34 - 80299f4: 005b lsls r3, r3, #1 - 80299f6: 4413 add r3, r2 - 80299f8: f9b3 3004 ldrsh.w r3, [r3, #4] - 80299fc: 4619 mov r1, r3 - 80299fe: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029a02: 7b1b ldrb r3, [r3, #12] - 8029a04: f3c3 1300 ubfx r3, r3, #4, #1 - 8029a08: b2db uxtb r3, r3 - 8029a0a: 461a mov r2, r3 - 8029a0c: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc - 8029a10: 3238 adds r2, #56 ; 0x38 - 8029a12: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] - 8029a16: 461a mov r2, r3 - 8029a18: f9b7 30c2 ldrsh.w r3, [r7, #194] ; 0xc2 - 8029a1c: 9300 str r3, [sp, #0] - 8029a1e: 2300 movs r3, #0 - 8029a20: f008 feff bl 8032822 - 8029a24: 4603 mov r3, r0 - 8029a26: b21b sxth r3, r3 - 8029a28: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa + 802993a: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 802993e: 685a ldr r2, [r3, #4] + 8029940: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 + 8029944: 005b lsls r3, r3, #1 + 8029946: 4413 add r3, r2 + 8029948: f9b3 3000 ldrsh.w r3, [r3] + 802994c: 4618 mov r0, r3 + 802994e: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 8029952: 7b1b ldrb r3, [r3, #12] + 8029954: f3c3 1300 ubfx r3, r3, #4, #1 + 8029958: b2db uxtb r3, r3 + 802995a: f8d7 20cc ldr.w r2, [r7, #204] ; 0xcc + 802995e: 3334 adds r3, #52 ; 0x34 + 8029960: 005b lsls r3, r3, #1 + 8029962: 4413 add r3, r2 + 8029964: f9b3 3004 ldrsh.w r3, [r3, #4] + 8029968: 4619 mov r1, r3 + 802996a: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 802996e: 7b1b ldrb r3, [r3, #12] + 8029970: f3c3 1300 ubfx r3, r3, #4, #1 + 8029974: b2db uxtb r3, r3 + 8029976: 461a mov r2, r3 + 8029978: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc + 802997c: 3238 adds r2, #56 ; 0x38 + 802997e: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] + 8029982: 461a mov r2, r3 + 8029984: f9b7 30c2 ldrsh.w r3, [r7, #194] ; 0xc2 + 8029988: 9300 str r3, [sp, #0] + 802998a: 2300 movs r3, #0 + 802998c: f008 feff bl 803278e + 8029990: 4603 mov r3, r0 + 8029992: b21b sxth r3, r3 + 8029994: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa p2.y = h - p2.y; - 8029a2c: f8b7 20c2 ldrh.w r2, [r7, #194] ; 0xc2 - 8029a30: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa - 8029a34: b29b uxth r3, r3 - 8029a36: 1ad3 subs r3, r2, r3 - 8029a38: b29b uxth r3, r3 - 8029a3a: b21b sxth r3, r3 - 8029a3c: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa + 8029998: f8b7 20c2 ldrh.w r2, [r7, #194] ; 0xc2 + 802999c: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa + 80299a0: b29b uxth r3, r3 + 80299a2: 1ad3 subs r3, r2, r3 + 80299a4: b29b uxth r3, r3 + 80299a6: b21b sxth r3, r3 + 80299a8: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa p2.y += y_ofs; - 8029a40: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa - 8029a44: b29a uxth r2, r3 - 8029a46: f8b7 30be ldrh.w r3, [r7, #190] ; 0xbe - 8029a4a: 4413 add r3, r2 - 8029a4c: b29b uxth r3, r3 - 8029a4e: b21b sxth r3, r3 - 8029a50: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa + 80299ac: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa + 80299b0: b29a uxth r2, r3 + 80299b2: f8b7 30be ldrh.w r3, [r7, #190] ; 0xbe + 80299b6: 4413 add r3, r2 + 80299b8: b29b uxth r3, r3 + 80299ba: b21b sxth r3, r3 + 80299bc: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa p2.x = lv_map(ser->x_points[p_act], chart->xmin[ser->x_axis_sec], chart->xmax[ser->x_axis_sec], 0, w); - 8029a54: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029a58: 681a ldr r2, [r3, #0] - 8029a5a: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 - 8029a5e: 005b lsls r3, r3, #1 - 8029a60: 4413 add r3, r2 - 8029a62: f9b3 3000 ldrsh.w r3, [r3] - 8029a66: 4618 mov r0, r3 - 8029a68: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029a6c: 7b1b ldrb r3, [r3, #12] - 8029a6e: f3c3 03c0 ubfx r3, r3, #3, #1 - 8029a72: b2db uxtb r3, r3 - 8029a74: f8d7 20cc ldr.w r2, [r7, #204] ; 0xcc - 8029a78: 3338 adds r3, #56 ; 0x38 - 8029a7a: 005b lsls r3, r3, #1 - 8029a7c: 4413 add r3, r2 - 8029a7e: f9b3 3004 ldrsh.w r3, [r3, #4] - 8029a82: 4619 mov r1, r3 - 8029a84: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029a88: 7b1b ldrb r3, [r3, #12] - 8029a8a: f3c3 03c0 ubfx r3, r3, #3, #1 - 8029a8e: b2db uxtb r3, r3 - 8029a90: 461a mov r2, r3 - 8029a92: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc - 8029a96: 323c adds r2, #60 ; 0x3c - 8029a98: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] - 8029a9c: 461a mov r2, r3 - 8029a9e: f9b7 30c4 ldrsh.w r3, [r7, #196] ; 0xc4 - 8029aa2: 9300 str r3, [sp, #0] - 8029aa4: 2300 movs r3, #0 - 8029aa6: f008 febc bl 8032822 - 8029aaa: 4603 mov r3, r0 - 8029aac: b21b sxth r3, r3 - 8029aae: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 + 80299c0: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 80299c4: 681a ldr r2, [r3, #0] + 80299c6: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 + 80299ca: 005b lsls r3, r3, #1 + 80299cc: 4413 add r3, r2 + 80299ce: f9b3 3000 ldrsh.w r3, [r3] + 80299d2: 4618 mov r0, r3 + 80299d4: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 80299d8: 7b1b ldrb r3, [r3, #12] + 80299da: f3c3 03c0 ubfx r3, r3, #3, #1 + 80299de: b2db uxtb r3, r3 + 80299e0: f8d7 20cc ldr.w r2, [r7, #204] ; 0xcc + 80299e4: 3338 adds r3, #56 ; 0x38 + 80299e6: 005b lsls r3, r3, #1 + 80299e8: 4413 add r3, r2 + 80299ea: f9b3 3004 ldrsh.w r3, [r3, #4] + 80299ee: 4619 mov r1, r3 + 80299f0: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 80299f4: 7b1b ldrb r3, [r3, #12] + 80299f6: f3c3 03c0 ubfx r3, r3, #3, #1 + 80299fa: b2db uxtb r3, r3 + 80299fc: 461a mov r2, r3 + 80299fe: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc + 8029a02: 323c adds r2, #60 ; 0x3c + 8029a04: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] + 8029a08: 461a mov r2, r3 + 8029a0a: f9b7 30c4 ldrsh.w r3, [r7, #196] ; 0xc4 + 8029a0e: 9300 str r3, [sp, #0] + 8029a10: 2300 movs r3, #0 + 8029a12: f008 febc bl 803278e + 8029a16: 4603 mov r3, r0 + 8029a18: b21b sxth r3, r3 + 8029a1a: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 p2.x += x_ofs; - 8029ab2: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 - 8029ab6: b29a uxth r2, r3 - 8029ab8: f8b7 30c0 ldrh.w r3, [r7, #192] ; 0xc0 - 8029abc: 4413 add r3, r2 - 8029abe: b29b uxth r3, r3 - 8029ac0: b21b sxth r3, r3 - 8029ac2: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 + 8029a1e: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 + 8029a22: b29a uxth r2, r3 + 8029a24: f8b7 30c0 ldrh.w r3, [r7, #192] ; 0xc0 + 8029a28: 4413 add r3, r2 + 8029a2a: b29b uxth r3, r3 + 8029a2c: b21b sxth r3, r3 + 8029a2e: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 p_prev = p_act; continue; } /*Don't draw the first point. A second point is also required to draw the line*/ if(i != 0) { - 8029ac6: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde - 8029aca: 2b00 cmp r3, #0 - 8029acc: f000 80a6 beq.w 8029c1c - 8029ad0: e004 b.n 8029adc + 8029a32: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde + 8029a36: 2b00 cmp r3, #0 + 8029a38: f000 80a6 beq.w 8029b88 + 8029a3c: e004 b.n 8029a48 p_prev = p_act; - 8029ad2: f8b7 30d6 ldrh.w r3, [r7, #214] ; 0xd6 - 8029ad6: f8a7 30d4 strh.w r3, [r7, #212] ; 0xd4 + 8029a3e: f8b7 30d6 ldrh.w r3, [r7, #214] ; 0xd6 + 8029a42: f8a7 30d4 strh.w r3, [r7, #212] ; 0xd4 continue; - 8029ada: e0a3 b.n 8029c24 + 8029a46: e0a3 b.n 8029b90 lv_area_t point_area; point_area.x1 = p1.x - point_w; - 8029adc: f9b7 30ac ldrsh.w r3, [r7, #172] ; 0xac - 8029ae0: b29a uxth r2, r3 - 8029ae2: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc - 8029ae6: 1ad3 subs r3, r2, r3 - 8029ae8: b29b uxth r3, r3 - 8029aea: b21b sxth r3, r3 - 8029aec: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 8029a48: f9b7 30ac ldrsh.w r3, [r7, #172] ; 0xac + 8029a4c: b29a uxth r2, r3 + 8029a4e: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc + 8029a52: 1ad3 subs r3, r2, r3 + 8029a54: b29b uxth r3, r3 + 8029a56: b21b sxth r3, r3 + 8029a58: f8a7 305c strh.w r3, [r7, #92] ; 0x5c point_area.x2 = p1.x + point_w; - 8029af0: f9b7 30ac ldrsh.w r3, [r7, #172] ; 0xac - 8029af4: b29a uxth r2, r3 - 8029af6: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc - 8029afa: 4413 add r3, r2 - 8029afc: b29b uxth r3, r3 - 8029afe: b21b sxth r3, r3 - 8029b00: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 + 8029a5c: f9b7 30ac ldrsh.w r3, [r7, #172] ; 0xac + 8029a60: b29a uxth r2, r3 + 8029a62: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc + 8029a66: 4413 add r3, r2 + 8029a68: b29b uxth r3, r3 + 8029a6a: b21b sxth r3, r3 + 8029a6c: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 point_area.y1 = p1.y - point_h; - 8029b04: f9b7 30ae ldrsh.w r3, [r7, #174] ; 0xae - 8029b08: b29a uxth r2, r3 - 8029b0a: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba - 8029b0e: 1ad3 subs r3, r2, r3 - 8029b10: b29b uxth r3, r3 - 8029b12: b21b sxth r3, r3 - 8029b14: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 8029a70: f9b7 30ae ldrsh.w r3, [r7, #174] ; 0xae + 8029a74: b29a uxth r2, r3 + 8029a76: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba + 8029a7a: 1ad3 subs r3, r2, r3 + 8029a7c: b29b uxth r3, r3 + 8029a7e: b21b sxth r3, r3 + 8029a80: f8a7 305e strh.w r3, [r7, #94] ; 0x5e point_area.y2 = p1.y + point_h; - 8029b18: f9b7 30ae ldrsh.w r3, [r7, #174] ; 0xae - 8029b1c: b29a uxth r2, r3 - 8029b1e: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba - 8029b22: 4413 add r3, r2 - 8029b24: b29b uxth r3, r3 - 8029b26: b21b sxth r3, r3 - 8029b28: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 + 8029a84: f9b7 30ae ldrsh.w r3, [r7, #174] ; 0xae + 8029a88: b29a uxth r2, r3 + 8029a8a: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba + 8029a8e: 4413 add r3, r2 + 8029a90: b29b uxth r3, r3 + 8029a92: b21b sxth r3, r3 + 8029a94: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 part_draw_dsc.id = i - 1; - 8029b2c: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde - 8029b30: 3b01 subs r3, #1 - 8029b32: 647b str r3, [r7, #68] ; 0x44 + 8029a98: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde + 8029a9c: 3b01 subs r3, #1 + 8029a9e: 647b str r3, [r7, #68] ; 0x44 part_draw_dsc.p1 = ser->y_points[p_prev] != LV_CHART_POINT_NONE ? &p1 : NULL; - 8029b34: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029b38: 685a ldr r2, [r3, #4] - 8029b3a: f9b7 30d4 ldrsh.w r3, [r7, #212] ; 0xd4 - 8029b3e: 005b lsls r3, r3, #1 - 8029b40: 4413 add r3, r2 - 8029b42: f9b3 3000 ldrsh.w r3, [r3] - 8029b46: f647 72ff movw r2, #32767 ; 0x7fff - 8029b4a: 4293 cmp r3, r2 - 8029b4c: d002 beq.n 8029b54 - 8029b4e: f107 03ac add.w r3, r7, #172 ; 0xac - 8029b52: e000 b.n 8029b56 - 8029b54: 2300 movs r3, #0 - 8029b56: 633b str r3, [r7, #48] ; 0x30 + 8029aa0: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 8029aa4: 685a ldr r2, [r3, #4] + 8029aa6: f9b7 30d4 ldrsh.w r3, [r7, #212] ; 0xd4 + 8029aaa: 005b lsls r3, r3, #1 + 8029aac: 4413 add r3, r2 + 8029aae: f9b3 3000 ldrsh.w r3, [r3] + 8029ab2: f647 72ff movw r2, #32767 ; 0x7fff + 8029ab6: 4293 cmp r3, r2 + 8029ab8: d002 beq.n 8029ac0 + 8029aba: f107 03ac add.w r3, r7, #172 ; 0xac + 8029abe: e000 b.n 8029ac2 + 8029ac0: 2300 movs r3, #0 + 8029ac2: 633b str r3, [r7, #48] ; 0x30 part_draw_dsc.p2 = ser->y_points[p_act] != LV_CHART_POINT_NONE ? &p2 : NULL; - 8029b58: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029b5c: 685a ldr r2, [r3, #4] - 8029b5e: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 - 8029b62: 005b lsls r3, r3, #1 - 8029b64: 4413 add r3, r2 - 8029b66: f9b3 3000 ldrsh.w r3, [r3] - 8029b6a: f647 72ff movw r2, #32767 ; 0x7fff - 8029b6e: 4293 cmp r3, r2 - 8029b70: d004 beq.n 8029b7c - 8029b72: f107 03a8 add.w r3, r7, #168 ; 0xa8 - 8029b76: e002 b.n 8029b7e - 8029b78: 0806cbf8 .word 0x0806cbf8 - 8029b7c: 2300 movs r3, #0 - 8029b7e: 637b str r3, [r7, #52] ; 0x34 + 8029ac4: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 8029ac8: 685a ldr r2, [r3, #4] + 8029aca: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 + 8029ace: 005b lsls r3, r3, #1 + 8029ad0: 4413 add r3, r2 + 8029ad2: f9b3 3000 ldrsh.w r3, [r3] + 8029ad6: f647 72ff movw r2, #32767 ; 0x7fff + 8029ada: 4293 cmp r3, r2 + 8029adc: d004 beq.n 8029ae8 + 8029ade: f107 03a8 add.w r3, r7, #168 ; 0xa8 + 8029ae2: e002 b.n 8029aea + 8029ae4: 0806cb50 .word 0x0806cb50 + 8029ae8: 2300 movs r3, #0 + 8029aea: 637b str r3, [r7, #52] ; 0x34 part_draw_dsc.draw_area = &point_area; - 8029b80: f107 035c add.w r3, r7, #92 ; 0x5c - 8029b84: 61bb str r3, [r7, #24] + 8029aec: f107 035c add.w r3, r7, #92 ; 0x5c + 8029af0: 61bb str r3, [r7, #24] part_draw_dsc.value = ser->y_points[p_prev]; - 8029b86: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029b8a: 685a ldr r2, [r3, #4] - 8029b8c: f9b7 30d4 ldrsh.w r3, [r7, #212] ; 0xd4 - 8029b90: 005b lsls r3, r3, #1 - 8029b92: 4413 add r3, r2 - 8029b94: f9b3 3000 ldrsh.w r3, [r3] - 8029b98: 64fb str r3, [r7, #76] ; 0x4c + 8029af2: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 8029af6: 685a ldr r2, [r3, #4] + 8029af8: f9b7 30d4 ldrsh.w r3, [r7, #212] ; 0xd4 + 8029afc: 005b lsls r3, r3, #1 + 8029afe: 4413 add r3, r2 + 8029b00: f9b3 3000 ldrsh.w r3, [r3] + 8029b04: 64fb str r3, [r7, #76] ; 0x4c lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 8029b9a: f107 030c add.w r3, r7, #12 - 8029b9e: 461a mov r2, r3 - 8029ba0: 211a movs r1, #26 - 8029ba2: 6878 ldr r0, [r7, #4] - 8029ba4: f7d8 fc6c bl 8002480 + 8029b06: f107 030c add.w r3, r7, #12 + 8029b0a: 461a mov r2, r3 + 8029b0c: 211a movs r1, #26 + 8029b0e: 6878 ldr r0, [r7, #4] + 8029b10: f7d8 fc80 bl 8002414 if(ser->y_points[p_prev] != LV_CHART_POINT_NONE && ser->y_points[p_act] != LV_CHART_POINT_NONE) { - 8029ba8: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029bac: 685a ldr r2, [r3, #4] - 8029bae: f9b7 30d4 ldrsh.w r3, [r7, #212] ; 0xd4 - 8029bb2: 005b lsls r3, r3, #1 - 8029bb4: 4413 add r3, r2 - 8029bb6: f9b3 3000 ldrsh.w r3, [r3] - 8029bba: f647 72ff movw r2, #32767 ; 0x7fff - 8029bbe: 4293 cmp r3, r2 - 8029bc0: d025 beq.n 8029c0e - 8029bc2: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029bc6: 685a ldr r2, [r3, #4] - 8029bc8: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 - 8029bcc: 005b lsls r3, r3, #1 - 8029bce: 4413 add r3, r2 - 8029bd0: f9b3 3000 ldrsh.w r3, [r3] - 8029bd4: f647 72ff movw r2, #32767 ; 0x7fff - 8029bd8: 4293 cmp r3, r2 - 8029bda: d018 beq.n 8029c0e + 8029b14: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 8029b18: 685a ldr r2, [r3, #4] + 8029b1a: f9b7 30d4 ldrsh.w r3, [r7, #212] ; 0xd4 + 8029b1e: 005b lsls r3, r3, #1 + 8029b20: 4413 add r3, r2 + 8029b22: f9b3 3000 ldrsh.w r3, [r3] + 8029b26: f647 72ff movw r2, #32767 ; 0x7fff + 8029b2a: 4293 cmp r3, r2 + 8029b2c: d025 beq.n 8029b7a + 8029b2e: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 8029b32: 685a ldr r2, [r3, #4] + 8029b34: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 + 8029b38: 005b lsls r3, r3, #1 + 8029b3a: 4413 add r3, r2 + 8029b3c: f9b3 3000 ldrsh.w r3, [r3] + 8029b40: f647 72ff movw r2, #32767 ; 0x7fff + 8029b44: 4293 cmp r3, r2 + 8029b46: d018 beq.n 8029b7a lv_draw_line(draw_ctx, &line_dsc_default, &p1, &p2); - 8029bdc: f107 03a8 add.w r3, r7, #168 ; 0xa8 - 8029be0: f107 02ac add.w r2, r7, #172 ; 0xac - 8029be4: f107 019c add.w r1, r7, #156 ; 0x9c - 8029be8: 6838 ldr r0, [r7, #0] - 8029bea: f7e9 f9c2 bl 8012f72 + 8029b48: f107 03a8 add.w r3, r7, #168 ; 0xa8 + 8029b4c: f107 02ac add.w r2, r7, #172 ; 0xac + 8029b50: f107 019c add.w r1, r7, #156 ; 0x9c + 8029b54: 6838 ldr r0, [r7, #0] + 8029b56: f7e9 f9c2 bl 8012ede if(point_w && point_h) { - 8029bee: f9b7 30bc ldrsh.w r3, [r7, #188] ; 0xbc - 8029bf2: 2b00 cmp r3, #0 - 8029bf4: d00b beq.n 8029c0e - 8029bf6: f9b7 30ba ldrsh.w r3, [r7, #186] ; 0xba - 8029bfa: 2b00 cmp r3, #0 - 8029bfc: d007 beq.n 8029c0e + 8029b5a: f9b7 30bc ldrsh.w r3, [r7, #188] ; 0xbc + 8029b5e: 2b00 cmp r3, #0 + 8029b60: d00b beq.n 8029b7a + 8029b62: f9b7 30ba ldrsh.w r3, [r7, #186] ; 0xba + 8029b66: 2b00 cmp r3, #0 + 8029b68: d007 beq.n 8029b7a lv_draw_rect(draw_ctx, &point_dsc_default, &point_area); - 8029bfe: f107 025c add.w r2, r7, #92 ; 0x5c - 8029c02: f107 0364 add.w r3, r7, #100 ; 0x64 - 8029c06: 4619 mov r1, r3 - 8029c08: 6838 ldr r0, [r7, #0] - 8029c0a: f7eb fe35 bl 8015878 + 8029b6a: f107 025c add.w r2, r7, #92 ; 0x5c + 8029b6e: f107 0364 add.w r3, r7, #100 ; 0x64 + 8029b72: 4619 mov r1, r3 + 8029b74: 6838 ldr r0, [r7, #0] + 8029b76: f7eb fe35 bl 80157e4 } } lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 8029c0e: f107 030c add.w r3, r7, #12 - 8029c12: 461a mov r2, r3 - 8029c14: 211b movs r1, #27 - 8029c16: 6878 ldr r0, [r7, #4] - 8029c18: f7d8 fc32 bl 8002480 + 8029b7a: f107 030c add.w r3, r7, #12 + 8029b7e: 461a mov r2, r3 + 8029b80: 211b movs r1, #27 + 8029b82: 6878 ldr r0, [r7, #4] + 8029b84: f7d8 fc46 bl 8002414 } p_prev = p_act; - 8029c1c: f8b7 30d6 ldrh.w r3, [r7, #214] ; 0xd6 - 8029c20: f8a7 30d4 strh.w r3, [r7, #212] ; 0xd4 + 8029b88: f8b7 30d6 ldrh.w r3, [r7, #214] ; 0xd6 + 8029b8c: f8a7 30d4 strh.w r3, [r7, #212] ; 0xd4 for(i = 0; i < chart->point_cnt; i++) { - 8029c24: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde - 8029c28: 3301 adds r3, #1 - 8029c2a: f8a7 30de strh.w r3, [r7, #222] ; 0xde - 8029c2e: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc - 8029c32: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 8029c36: f8b7 20de ldrh.w r2, [r7, #222] ; 0xde - 8029c3a: 429a cmp r2, r3 - 8029c3c: f4ff aea1 bcc.w 8029982 + 8029b90: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde + 8029b94: 3301 adds r3, #1 + 8029b96: f8a7 30de strh.w r3, [r7, #222] ; 0xde + 8029b9a: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc + 8029b9e: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 8029ba2: f8b7 20de ldrh.w r2, [r7, #222] ; 0xde + 8029ba6: 429a cmp r2, r3 + 8029ba8: f4ff aea1 bcc.w 80298ee } /*Draw the last point*/ if(i == chart->point_cnt) { - 8029c40: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc - 8029c44: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 8029c48: f8b7 20de ldrh.w r2, [r7, #222] ; 0xde - 8029c4c: 429a cmp r2, r3 - 8029c4e: d161 bne.n 8029d14 + 8029bac: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc + 8029bb0: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 8029bb4: f8b7 20de ldrh.w r2, [r7, #222] ; 0xde + 8029bb8: 429a cmp r2, r3 + 8029bba: d161 bne.n 8029c80 if(ser->y_points[p_act] != LV_CHART_POINT_NONE) { - 8029c50: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029c54: 685a ldr r2, [r3, #4] - 8029c56: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 - 8029c5a: 005b lsls r3, r3, #1 - 8029c5c: 4413 add r3, r2 - 8029c5e: f9b3 3000 ldrsh.w r3, [r3] - 8029c62: f647 72ff movw r2, #32767 ; 0x7fff - 8029c66: 4293 cmp r3, r2 - 8029c68: d054 beq.n 8029d14 + 8029bbc: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 8029bc0: 685a ldr r2, [r3, #4] + 8029bc2: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 + 8029bc6: 005b lsls r3, r3, #1 + 8029bc8: 4413 add r3, r2 + 8029bca: f9b3 3000 ldrsh.w r3, [r3] + 8029bce: f647 72ff movw r2, #32767 ; 0x7fff + 8029bd2: 4293 cmp r3, r2 + 8029bd4: d054 beq.n 8029c80 lv_area_t point_area; point_area.x1 = p2.x - point_w; - 8029c6a: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 - 8029c6e: b29a uxth r2, r3 - 8029c70: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc - 8029c74: 1ad3 subs r3, r2, r3 - 8029c76: b29b uxth r3, r3 - 8029c78: b21b sxth r3, r3 - 8029c7a: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 + 8029bd6: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 + 8029bda: b29a uxth r2, r3 + 8029bdc: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc + 8029be0: 1ad3 subs r3, r2, r3 + 8029be2: b29b uxth r3, r3 + 8029be4: b21b sxth r3, r3 + 8029be6: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 point_area.x2 = p2.x + point_w; - 8029c7e: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 - 8029c82: b29a uxth r2, r3 - 8029c84: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc - 8029c88: 4413 add r3, r2 - 8029c8a: b29b uxth r3, r3 - 8029c8c: b21b sxth r3, r3 - 8029c8e: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 + 8029bea: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 + 8029bee: b29a uxth r2, r3 + 8029bf0: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc + 8029bf4: 4413 add r3, r2 + 8029bf6: b29b uxth r3, r3 + 8029bf8: b21b sxth r3, r3 + 8029bfa: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 point_area.y1 = p2.y - point_h; - 8029c92: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa - 8029c96: b29a uxth r2, r3 - 8029c98: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba - 8029c9c: 1ad3 subs r3, r2, r3 - 8029c9e: b29b uxth r3, r3 - 8029ca0: b21b sxth r3, r3 - 8029ca2: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 8029bfe: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa + 8029c02: b29a uxth r2, r3 + 8029c04: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba + 8029c08: 1ad3 subs r3, r2, r3 + 8029c0a: b29b uxth r3, r3 + 8029c0c: b21b sxth r3, r3 + 8029c0e: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 point_area.y2 = p2.y + point_h; - 8029ca6: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa - 8029caa: b29a uxth r2, r3 - 8029cac: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba - 8029cb0: 4413 add r3, r2 - 8029cb2: b29b uxth r3, r3 - 8029cb4: b21b sxth r3, r3 - 8029cb6: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 8029c12: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa + 8029c16: b29a uxth r2, r3 + 8029c18: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba + 8029c1c: 4413 add r3, r2 + 8029c1e: b29b uxth r3, r3 + 8029c20: b21b sxth r3, r3 + 8029c22: f8a7 305a strh.w r3, [r7, #90] ; 0x5a part_draw_dsc.id = i - 1; - 8029cba: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde - 8029cbe: 3b01 subs r3, #1 - 8029cc0: 647b str r3, [r7, #68] ; 0x44 + 8029c26: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde + 8029c2a: 3b01 subs r3, #1 + 8029c2c: 647b str r3, [r7, #68] ; 0x44 part_draw_dsc.p1 = NULL; - 8029cc2: 2300 movs r3, #0 - 8029cc4: 633b str r3, [r7, #48] ; 0x30 + 8029c2e: 2300 movs r3, #0 + 8029c30: 633b str r3, [r7, #48] ; 0x30 part_draw_dsc.p2 = NULL; - 8029cc6: 2300 movs r3, #0 - 8029cc8: 637b str r3, [r7, #52] ; 0x34 + 8029c32: 2300 movs r3, #0 + 8029c34: 637b str r3, [r7, #52] ; 0x34 part_draw_dsc.draw_area = &point_area; - 8029cca: f107 0354 add.w r3, r7, #84 ; 0x54 - 8029cce: 61bb str r3, [r7, #24] + 8029c36: f107 0354 add.w r3, r7, #84 ; 0x54 + 8029c3a: 61bb str r3, [r7, #24] part_draw_dsc.value = ser->y_points[p_act]; - 8029cd0: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029cd4: 685a ldr r2, [r3, #4] - 8029cd6: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 - 8029cda: 005b lsls r3, r3, #1 - 8029cdc: 4413 add r3, r2 - 8029cde: f9b3 3000 ldrsh.w r3, [r3] - 8029ce2: 64fb str r3, [r7, #76] ; 0x4c + 8029c3c: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 8029c40: 685a ldr r2, [r3, #4] + 8029c42: f9b7 30d6 ldrsh.w r3, [r7, #214] ; 0xd6 + 8029c46: 005b lsls r3, r3, #1 + 8029c48: 4413 add r3, r2 + 8029c4a: f9b3 3000 ldrsh.w r3, [r3] + 8029c4e: 64fb str r3, [r7, #76] ; 0x4c lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 8029ce4: f107 030c add.w r3, r7, #12 - 8029ce8: 461a mov r2, r3 - 8029cea: 211a movs r1, #26 - 8029cec: 6878 ldr r0, [r7, #4] - 8029cee: f7d8 fbc7 bl 8002480 + 8029c50: f107 030c add.w r3, r7, #12 + 8029c54: 461a mov r2, r3 + 8029c56: 211a movs r1, #26 + 8029c58: 6878 ldr r0, [r7, #4] + 8029c5a: f7d8 fbdb bl 8002414 lv_draw_rect(draw_ctx, &point_dsc_default, &point_area); - 8029cf2: f107 0254 add.w r2, r7, #84 ; 0x54 - 8029cf6: f107 0364 add.w r3, r7, #100 ; 0x64 - 8029cfa: 4619 mov r1, r3 - 8029cfc: 6838 ldr r0, [r7, #0] - 8029cfe: f7eb fdbb bl 8015878 + 8029c5e: f107 0254 add.w r2, r7, #84 ; 0x54 + 8029c62: f107 0364 add.w r3, r7, #100 ; 0x64 + 8029c66: 4619 mov r1, r3 + 8029c68: 6838 ldr r0, [r7, #0] + 8029c6a: f7eb fdbb bl 80157e4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 8029d02: f107 030c add.w r3, r7, #12 - 8029d06: 461a mov r2, r3 - 8029d08: 211b movs r1, #27 - 8029d0a: 6878 ldr r0, [r7, #4] - 8029d0c: f7d8 fbb8 bl 8002480 - 8029d10: e000 b.n 8029d14 + 8029c6e: f107 030c add.w r3, r7, #12 + 8029c72: 461a mov r2, r3 + 8029c74: 211b movs r1, #27 + 8029c76: 6878 ldr r0, [r7, #4] + 8029c78: f7d8 fbcc bl 8002414 + 8029c7c: e000 b.n 8029c80 if(ser->hidden) continue; - 8029d12: bf00 nop + 8029c7e: bf00 nop _LV_LL_READ_BACK(&chart->series_ll, ser) { - 8029d14: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc - 8029d18: 3324 adds r3, #36 ; 0x24 - 8029d1a: f8d7 10d8 ldr.w r1, [r7, #216] ; 0xd8 - 8029d1e: 4618 mov r0, r3 - 8029d20: f008 fb50 bl 80323c4 <_lv_ll_get_prev> - 8029d24: f8c7 00d8 str.w r0, [r7, #216] ; 0xd8 - 8029d28: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 - 8029d2c: 2b00 cmp r3, #0 - 8029d2e: f47f ad4a bne.w 80297c6 + 8029c80: f8d7 30cc ldr.w r3, [r7, #204] ; 0xcc + 8029c84: 3324 adds r3, #36 ; 0x24 + 8029c86: f8d7 10d8 ldr.w r1, [r7, #216] ; 0xd8 + 8029c8a: 4618 mov r0, r3 + 8029c8c: f008 fb50 bl 8032330 <_lv_ll_get_prev> + 8029c90: f8c7 00d8 str.w r0, [r7, #216] ; 0xd8 + 8029c94: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 + 8029c98: 2b00 cmp r3, #0 + 8029c9a: f47f ad4a bne.w 8029732 } } } draw_ctx->clip_area = clip_area_ori; - 8029d32: 683b ldr r3, [r7, #0] - 8029d34: f8d7 20d0 ldr.w r2, [r7, #208] ; 0xd0 - 8029d38: 609a str r2, [r3, #8] - 8029d3a: e000 b.n 8029d3e + 8029c9e: 683b ldr r3, [r7, #0] + 8029ca0: f8d7 20d0 ldr.w r2, [r7, #208] ; 0xd0 + 8029ca4: 609a str r2, [r3, #8] + 8029ca6: e000 b.n 8029caa if(_lv_area_intersect(&clip_area, &obj->coords, draw_ctx->clip_area) == false) return; - 8029d3c: bf00 nop + 8029ca8: bf00 nop } - 8029d3e: 37e4 adds r7, #228 ; 0xe4 - 8029d40: 46bd mov sp, r7 - 8029d42: bd90 pop {r4, r7, pc} + 8029caa: 37e4 adds r7, #228 ; 0xe4 + 8029cac: 46bd mov sp, r7 + 8029cae: bd90 pop {r4, r7, pc} -08029d44 : +08029cb0 : static void draw_series_bar(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx) { - 8029d44: b590 push {r4, r7, lr} - 8029d46: b0b5 sub sp, #212 ; 0xd4 - 8029d48: af00 add r7, sp, #0 - 8029d4a: 6078 str r0, [r7, #4] - 8029d4c: 6039 str r1, [r7, #0] + 8029cb0: b590 push {r4, r7, lr} + 8029cb2: b0b5 sub sp, #212 ; 0xd4 + 8029cb4: af00 add r7, sp, #0 + 8029cb6: 6078 str r0, [r7, #4] + 8029cb8: 6039 str r1, [r7, #0] lv_area_t clip_area; if(_lv_area_intersect(&clip_area, &obj->coords, draw_ctx->clip_area) == false) return; - 8029d4e: 687b ldr r3, [r7, #4] - 8029d50: f103 0114 add.w r1, r3, #20 - 8029d54: 683b ldr r3, [r7, #0] - 8029d56: 689a ldr r2, [r3, #8] - 8029d58: f107 0390 add.w r3, r7, #144 ; 0x90 - 8029d5c: 4618 mov r0, r3 - 8029d5e: f007 f9a3 bl 80310a8 <_lv_area_intersect> - 8029d62: 4603 mov r3, r0 - 8029d64: f083 0301 eor.w r3, r3, #1 - 8029d68: b2db uxtb r3, r3 - 8029d6a: 2b00 cmp r3, #0 - 8029d6c: f040 81f4 bne.w 802a158 + 8029cba: 687b ldr r3, [r7, #4] + 8029cbc: f103 0114 add.w r1, r3, #20 + 8029cc0: 683b ldr r3, [r7, #0] + 8029cc2: 689a ldr r2, [r3, #8] + 8029cc4: f107 0390 add.w r3, r7, #144 ; 0x90 + 8029cc8: 4618 mov r0, r3 + 8029cca: f007 f9a3 bl 8031014 <_lv_area_intersect> + 8029cce: 4603 mov r3, r0 + 8029cd0: f083 0301 eor.w r3, r3, #1 + 8029cd4: b2db uxtb r3, r3 + 8029cd6: 2b00 cmp r3, #0 + 8029cd8: f040 81f4 bne.w 802a0c4 const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 8029d70: 683b ldr r3, [r7, #0] - 8029d72: 689b ldr r3, [r3, #8] - 8029d74: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0 + 8029cdc: 683b ldr r3, [r7, #0] + 8029cde: 689b ldr r3, [r3, #8] + 8029ce0: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0 draw_ctx->clip_area = &clip_area; - 8029d78: 683b ldr r3, [r7, #0] - 8029d7a: f107 0290 add.w r2, r7, #144 ; 0x90 - 8029d7e: 609a str r2, [r3, #8] + 8029ce4: 683b ldr r3, [r7, #0] + 8029ce6: f107 0290 add.w r2, r7, #144 ; 0x90 + 8029cea: 609a str r2, [r3, #8] lv_chart_t * chart = (lv_chart_t *)obj; - 8029d80: 687b ldr r3, [r7, #4] - 8029d82: f8c7 30bc str.w r3, [r7, #188] ; 0xbc + 8029cec: 687b ldr r3, [r7, #4] + 8029cee: f8c7 30bc str.w r3, [r7, #188] ; 0xbc uint16_t i; lv_area_t col_a; lv_coord_t pad_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 8029d86: 2100 movs r1, #0 - 8029d88: 6878 ldr r0, [r7, #4] - 8029d8a: f7fe fa55 bl 8028238 - 8029d8e: 4603 mov r3, r0 - 8029d90: f8a7 30ba strh.w r3, [r7, #186] ; 0xba + 8029cf2: 2100 movs r1, #0 + 8029cf4: 6878 ldr r0, [r7, #4] + 8029cf6: f7fe fa55 bl 80281a4 + 8029cfa: 4603 mov r3, r0 + 8029cfc: f8a7 30ba strh.w r3, [r7, #186] ; 0xba lv_coord_t pad_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 8029d94: 2100 movs r1, #0 - 8029d96: 6878 ldr r0, [r7, #4] - 8029d98: f7fe fa28 bl 80281ec - 8029d9c: 4603 mov r3, r0 - 8029d9e: f8a7 30b8 strh.w r3, [r7, #184] ; 0xb8 + 8029d00: 2100 movs r1, #0 + 8029d02: 6878 ldr r0, [r7, #4] + 8029d04: f7fe fa28 bl 8028158 + 8029d08: 4603 mov r3, r0 + 8029d0a: f8a7 30b8 strh.w r3, [r7, #184] ; 0xb8 lv_coord_t w = ((int32_t)lv_obj_get_content_width(obj) * chart->zoom_x) >> 8; - 8029da2: 6878 ldr r0, [r7, #4] - 8029da4: f7e0 f9ec bl 800a180 - 8029da8: 4603 mov r3, r0 - 8029daa: 461a mov r2, r3 - 8029dac: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 8029db0: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 - 8029db4: fb02 f303 mul.w r3, r2, r3 - 8029db8: 121b asrs r3, r3, #8 - 8029dba: f8a7 30b6 strh.w r3, [r7, #182] ; 0xb6 + 8029d0e: 6878 ldr r0, [r7, #4] + 8029d10: f7e0 fa00 bl 800a114 + 8029d14: 4603 mov r3, r0 + 8029d16: 461a mov r2, r3 + 8029d18: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 8029d1c: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 + 8029d20: fb02 f303 mul.w r3, r2, r3 + 8029d24: 121b asrs r3, r3, #8 + 8029d26: f8a7 30b6 strh.w r3, [r7, #182] ; 0xb6 lv_coord_t h = ((int32_t)lv_obj_get_content_height(obj) * chart->zoom_y) >> 8; - 8029dbe: 6878 ldr r0, [r7, #4] - 8029dc0: f7e0 fa09 bl 800a1d6 - 8029dc4: 4603 mov r3, r0 - 8029dc6: 461a mov r2, r3 - 8029dc8: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 8029dcc: f8b3 3086 ldrh.w r3, [r3, #134] ; 0x86 - 8029dd0: fb02 f303 mul.w r3, r2, r3 - 8029dd4: 121b asrs r3, r3, #8 - 8029dd6: f8a7 30b4 strh.w r3, [r7, #180] ; 0xb4 + 8029d2a: 6878 ldr r0, [r7, #4] + 8029d2c: f7e0 fa1d bl 800a16a + 8029d30: 4603 mov r3, r0 + 8029d32: 461a mov r2, r3 + 8029d34: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 8029d38: f8b3 3086 ldrh.w r3, [r3, #134] ; 0x86 + 8029d3c: fb02 f303 mul.w r3, r2, r3 + 8029d40: 121b asrs r3, r3, #8 + 8029d42: f8a7 30b4 strh.w r3, [r7, #180] ; 0xb4 int32_t y_tmp; lv_chart_series_t * ser; uint32_t ser_cnt = _lv_ll_get_len(&chart->series_ll); - 8029dda: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 8029dde: 3324 adds r3, #36 ; 0x24 - 8029de0: 4618 mov r0, r3 - 8029de2: f008 fb02 bl 80323ea <_lv_ll_get_len> - 8029de6: f8c7 00b0 str.w r0, [r7, #176] ; 0xb0 + 8029d46: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 8029d4a: 3324 adds r3, #36 ; 0x24 + 8029d4c: 4618 mov r0, r3 + 8029d4e: f008 fb02 bl 8032356 <_lv_ll_get_len> + 8029d52: f8c7 00b0 str.w r0, [r7, #176] ; 0xb0 int32_t block_gap = ((int32_t)lv_obj_get_style_pad_column(obj, - 8029dea: 2100 movs r1, #0 - 8029dec: 6878 ldr r0, [r7, #4] - 8029dee: f7fe fa49 bl 8028284 - 8029df2: 4603 mov r3, r0 - 8029df4: 461a mov r2, r3 + 8029d56: 2100 movs r1, #0 + 8029d58: 6878 ldr r0, [r7, #4] + 8029d5a: f7fe fa49 bl 80281f0 + 8029d5e: 4603 mov r3, r0 + 8029d60: 461a mov r2, r3 LV_PART_MAIN) * chart->zoom_x) >> 8; /*Gap between the column on ~adjacent X*/ - 8029df6: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 8029dfa: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 - 8029dfe: fb02 f303 mul.w r3, r2, r3 + 8029d62: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 8029d66: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 + 8029d6a: fb02 f303 mul.w r3, r2, r3 int32_t block_gap = ((int32_t)lv_obj_get_style_pad_column(obj, - 8029e02: 121b asrs r3, r3, #8 - 8029e04: f8c7 30ac str.w r3, [r7, #172] ; 0xac + 8029d6e: 121b asrs r3, r3, #8 + 8029d70: f8c7 30ac str.w r3, [r7, #172] ; 0xac lv_coord_t block_w = (w - ((chart->point_cnt - 1) * block_gap)) / chart->point_cnt; - 8029e08: f9b7 20b6 ldrsh.w r2, [r7, #182] ; 0xb6 - 8029e0c: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 8029e10: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 8029e14: 3b01 subs r3, #1 - 8029e16: f8d7 10ac ldr.w r1, [r7, #172] ; 0xac - 8029e1a: fb01 f303 mul.w r3, r1, r3 - 8029e1e: 1ad3 subs r3, r2, r3 - 8029e20: f8d7 20bc ldr.w r2, [r7, #188] ; 0xbc - 8029e24: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 - 8029e28: fb93 f3f2 sdiv r3, r3, r2 - 8029e2c: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa + 8029d74: f9b7 20b6 ldrsh.w r2, [r7, #182] ; 0xb6 + 8029d78: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 8029d7c: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 8029d80: 3b01 subs r3, #1 + 8029d82: f8d7 10ac ldr.w r1, [r7, #172] ; 0xac + 8029d86: fb01 f303 mul.w r3, r1, r3 + 8029d8a: 1ad3 subs r3, r2, r3 + 8029d8c: f8d7 20bc ldr.w r2, [r7, #188] ; 0xbc + 8029d90: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 + 8029d94: fb93 f3f2 sdiv r3, r3, r2 + 8029d98: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa lv_coord_t col_w = block_w / ser_cnt; - 8029e30: f9b7 20aa ldrsh.w r2, [r7, #170] ; 0xaa - 8029e34: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 8029e38: fbb2 f3f3 udiv r3, r2, r3 - 8029e3c: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 + 8029d9c: f9b7 20aa ldrsh.w r2, [r7, #170] ; 0xaa + 8029da0: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 8029da4: fbb2 f3f3 udiv r3, r2, r3 + 8029da8: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 int32_t ser_gap = ((int32_t)lv_obj_get_style_pad_column(obj, - 8029e40: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 8029e44: 6878 ldr r0, [r7, #4] - 8029e46: f7fe fa1d bl 8028284 - 8029e4a: 4603 mov r3, r0 - 8029e4c: 461a mov r2, r3 + 8029dac: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8029db0: 6878 ldr r0, [r7, #4] + 8029db2: f7fe fa1d bl 80281f0 + 8029db6: 4603 mov r3, r0 + 8029db8: 461a mov r2, r3 LV_PART_ITEMS) * chart->zoom_x) >> 8; /*Gap between the column on the ~same X*/ - 8029e4e: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 8029e52: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 - 8029e56: fb02 f303 mul.w r3, r2, r3 + 8029dba: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 8029dbe: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 + 8029dc2: fb02 f303 mul.w r3, r2, r3 int32_t ser_gap = ((int32_t)lv_obj_get_style_pad_column(obj, - 8029e5a: 121b asrs r3, r3, #8 - 8029e5c: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + 8029dc6: 121b asrs r3, r3, #8 + 8029dc8: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 lv_coord_t x_ofs = pad_left - lv_obj_get_scroll_left(obj); - 8029e60: f8b7 40ba ldrh.w r4, [r7, #186] ; 0xba - 8029e64: 6878 ldr r0, [r7, #4] - 8029e66: f7e1 fe4f bl 800bb08 - 8029e6a: 4603 mov r3, r0 - 8029e6c: b29b uxth r3, r3 - 8029e6e: 1ae3 subs r3, r4, r3 - 8029e70: b29b uxth r3, r3 - 8029e72: f8a7 30a2 strh.w r3, [r7, #162] ; 0xa2 + 8029dcc: f8b7 40ba ldrh.w r4, [r7, #186] ; 0xba + 8029dd0: 6878 ldr r0, [r7, #4] + 8029dd2: f7e1 fe63 bl 800ba9c + 8029dd6: 4603 mov r3, r0 + 8029dd8: b29b uxth r3, r3 + 8029dda: 1ae3 subs r3, r4, r3 + 8029ddc: b29b uxth r3, r3 + 8029dde: f8a7 30a2 strh.w r3, [r7, #162] ; 0xa2 lv_coord_t y_ofs = pad_top - lv_obj_get_scroll_top(obj); - 8029e76: f8b7 40b8 ldrh.w r4, [r7, #184] ; 0xb8 - 8029e7a: 6878 ldr r0, [r7, #4] - 8029e7c: f7e1 fda6 bl 800b9cc - 8029e80: 4603 mov r3, r0 - 8029e82: b29b uxth r3, r3 - 8029e84: 1ae3 subs r3, r4, r3 - 8029e86: b29b uxth r3, r3 - 8029e88: f8a7 30a0 strh.w r3, [r7, #160] ; 0xa0 + 8029de2: f8b7 40b8 ldrh.w r4, [r7, #184] ; 0xb8 + 8029de6: 6878 ldr r0, [r7, #4] + 8029de8: f7e1 fdba bl 800b960 + 8029dec: 4603 mov r3, r0 + 8029dee: b29b uxth r3, r3 + 8029df0: 1ae3 subs r3, r4, r3 + 8029df2: b29b uxth r3, r3 + 8029df4: f8a7 30a0 strh.w r3, [r7, #160] ; 0xa0 lv_draw_rect_dsc_t col_dsc; lv_draw_rect_dsc_init(&col_dsc); - 8029e8c: f107 0350 add.w r3, r7, #80 ; 0x50 - 8029e90: 4618 mov r0, r3 - 8029e92: f7eb fcaf bl 80157f4 + 8029df8: f107 0350 add.w r3, r7, #80 ; 0x50 + 8029dfc: 4618 mov r0, r3 + 8029dfe: f7eb fcaf bl 8015760 lv_obj_init_draw_rect_dsc(obj, LV_PART_ITEMS, &col_dsc); - 8029e96: f107 0350 add.w r3, r7, #80 ; 0x50 - 8029e9a: 461a mov r2, r3 - 8029e9c: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 8029ea0: 6878 ldr r0, [r7, #4] - 8029ea2: f7de fb90 bl 80085c6 + 8029e02: f107 0350 add.w r3, r7, #80 ; 0x50 + 8029e06: 461a mov r2, r3 + 8029e08: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8029e0c: 6878 ldr r0, [r7, #4] + 8029e0e: f7de fba4 bl 800855a col_dsc.bg_grad.dir = LV_GRAD_DIR_NONE; - 8029ea6: f897 305d ldrb.w r3, [r7, #93] ; 0x5d - 8029eaa: f36f 0302 bfc r3, #0, #3 - 8029eae: f887 305d strb.w r3, [r7, #93] ; 0x5d + 8029e12: f897 305d ldrb.w r3, [r7, #93] ; 0x5d + 8029e16: f36f 0302 bfc r3, #0, #3 + 8029e1a: f887 305d strb.w r3, [r7, #93] ; 0x5d col_dsc.bg_opa = LV_OPA_COVER; - 8029eb2: 23ff movs r3, #255 ; 0xff - 8029eb4: f887 3053 strb.w r3, [r7, #83] ; 0x53 + 8029e1e: 23ff movs r3, #255 ; 0xff + 8029e20: f887 3053 strb.w r3, [r7, #83] ; 0x53 /*Make the cols longer with `radius` to clip the rounding from the bottom*/ col_a.y2 = obj->coords.y2 + col_dsc.radius; - 8029eb8: 687b ldr r3, [r7, #4] - 8029eba: f9b3 301a ldrsh.w r3, [r3, #26] - 8029ebe: b29a uxth r2, r3 - 8029ec0: f9b7 3050 ldrsh.w r3, [r7, #80] ; 0x50 - 8029ec4: b29b uxth r3, r3 - 8029ec6: 4413 add r3, r2 - 8029ec8: b29b uxth r3, r3 - 8029eca: b21b sxth r3, r3 - 8029ecc: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 8029e24: 687b ldr r3, [r7, #4] + 8029e26: f9b3 301a ldrsh.w r3, [r3, #26] + 8029e2a: b29a uxth r2, r3 + 8029e2c: f9b7 3050 ldrsh.w r3, [r7, #80] ; 0x50 + 8029e30: b29b uxth r3, r3 + 8029e32: 4413 add r3, r2 + 8029e34: b29b uxth r3, r3 + 8029e36: b21b sxth r3, r3 + 8029e38: f8a7 308e strh.w r3, [r7, #142] ; 0x8e lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 8029ed0: f107 0308 add.w r3, r7, #8 - 8029ed4: 6839 ldr r1, [r7, #0] - 8029ed6: 4618 mov r0, r3 - 8029ed8: f7de ffc9 bl 8008e6e + 8029e3c: f107 0308 add.w r3, r7, #8 + 8029e40: 6839 ldr r1, [r7, #0] + 8029e42: 4618 mov r0, r3 + 8029e44: f7de ffdd bl 8008e02 part_draw_dsc.part = LV_PART_ITEMS; - 8029edc: f44f 23a0 mov.w r3, #327680 ; 0x50000 - 8029ee0: 63fb str r3, [r7, #60] ; 0x3c + 8029e48: f44f 23a0 mov.w r3, #327680 ; 0x50000 + 8029e4c: 63fb str r3, [r7, #60] ; 0x3c part_draw_dsc.class_p = MY_CLASS; - 8029ee2: 4b9f ldr r3, [pc, #636] ; (802a160 ) - 8029ee4: 60fb str r3, [r7, #12] + 8029e4e: 4b9f ldr r3, [pc, #636] ; (802a0cc ) + 8029e50: 60fb str r3, [r7, #12] part_draw_dsc.type = LV_CHART_DRAW_PART_BAR; - 8029ee6: 2304 movs r3, #4 - 8029ee8: 613b str r3, [r7, #16] + 8029e52: 2304 movs r3, #4 + 8029e54: 613b str r3, [r7, #16] /*Go through all points*/ for(i = 0; i < chart->point_cnt; i++) { - 8029eea: 2300 movs r3, #0 - 8029eec: f8a7 30ce strh.w r3, [r7, #206] ; 0xce - 8029ef0: e124 b.n 802a13c + 8029e56: 2300 movs r3, #0 + 8029e58: f8a7 30ce strh.w r3, [r7, #206] ; 0xce + 8029e5c: e124 b.n 802a0a8 lv_coord_t x_act = (int32_t)((int32_t)(w + block_gap) * i) / (chart->point_cnt) + obj->coords.x1 + x_ofs; - 8029ef2: f9b7 20b6 ldrsh.w r2, [r7, #182] ; 0xb6 - 8029ef6: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 8029efa: 4413 add r3, r2 - 8029efc: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce - 8029f00: fb02 f303 mul.w r3, r2, r3 - 8029f04: f8d7 20bc ldr.w r2, [r7, #188] ; 0xbc - 8029f08: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 - 8029f0c: fb93 f3f2 sdiv r3, r3, r2 - 8029f10: b29a uxth r2, r3 - 8029f12: 687b ldr r3, [r7, #4] - 8029f14: f9b3 3014 ldrsh.w r3, [r3, #20] - 8029f18: b29b uxth r3, r3 - 8029f1a: 4413 add r3, r2 - 8029f1c: b29a uxth r2, r3 - 8029f1e: f8b7 30a2 ldrh.w r3, [r7, #162] ; 0xa2 - 8029f22: 4413 add r3, r2 - 8029f24: b29b uxth r3, r3 - 8029f26: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 + 8029e5e: f9b7 20b6 ldrsh.w r2, [r7, #182] ; 0xb6 + 8029e62: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 8029e66: 4413 add r3, r2 + 8029e68: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce + 8029e6c: fb02 f303 mul.w r3, r2, r3 + 8029e70: f8d7 20bc ldr.w r2, [r7, #188] ; 0xbc + 8029e74: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 + 8029e78: fb93 f3f2 sdiv r3, r3, r2 + 8029e7c: b29a uxth r2, r3 + 8029e7e: 687b ldr r3, [r7, #4] + 8029e80: f9b3 3014 ldrsh.w r3, [r3, #20] + 8029e84: b29b uxth r3, r3 + 8029e86: 4413 add r3, r2 + 8029e88: b29a uxth r2, r3 + 8029e8a: f8b7 30a2 ldrh.w r3, [r7, #162] ; 0xa2 + 8029e8e: 4413 add r3, r2 + 8029e90: b29b uxth r3, r3 + 8029e92: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 part_draw_dsc.id = i; - 8029f2a: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce - 8029f2e: 643b str r3, [r7, #64] ; 0x40 + 8029e96: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce + 8029e9a: 643b str r3, [r7, #64] ; 0x40 /*Draw the current point of all data line*/ _LV_LL_READ_BACK(&chart->series_ll, ser) { - 8029f30: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 8029f34: 3324 adds r3, #36 ; 0x24 - 8029f36: 4618 mov r0, r3 - 8029f38: f008 fa20 bl 803237c <_lv_ll_get_tail> - 8029f3c: f8c7 00c8 str.w r0, [r7, #200] ; 0xc8 - 8029f40: e0f0 b.n 802a124 + 8029e9c: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 8029ea0: 3324 adds r3, #36 ; 0x24 + 8029ea2: 4618 mov r0, r3 + 8029ea4: f008 fa20 bl 80322e8 <_lv_ll_get_tail> + 8029ea8: f8c7 00c8 str.w r0, [r7, #200] ; 0xc8 + 8029eac: e0f0 b.n 802a090 if(ser->hidden) continue; - 8029f42: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 - 8029f46: 7b1b ldrb r3, [r3, #12] - 8029f48: f003 0301 and.w r3, r3, #1 - 8029f4c: b2db uxtb r3, r3 - 8029f4e: 2b00 cmp r3, #0 - 8029f50: f040 80db bne.w 802a10a + 8029eae: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 + 8029eb2: 7b1b ldrb r3, [r3, #12] + 8029eb4: f003 0301 and.w r3, r3, #1 + 8029eb8: b2db uxtb r3, r3 + 8029eba: 2b00 cmp r3, #0 + 8029ebc: f040 80db bne.w 802a076 lv_coord_t start_point = chart->update_mode == LV_CHART_UPDATE_MODE_SHIFT ? ser->start_point : 0; - 8029f54: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 8029f58: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 8029f5c: f003 0308 and.w r3, r3, #8 - 8029f60: b2db uxtb r3, r3 - 8029f62: 2b00 cmp r3, #0 - 8029f64: d104 bne.n 8029f70 - 8029f66: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 - 8029f6a: 895b ldrh r3, [r3, #10] - 8029f6c: b21b sxth r3, r3 - 8029f6e: e000 b.n 8029f72 - 8029f70: 2300 movs r3, #0 - 8029f72: f8a7 309e strh.w r3, [r7, #158] ; 0x9e + 8029ec0: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 8029ec4: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 8029ec8: f003 0308 and.w r3, r3, #8 + 8029ecc: b2db uxtb r3, r3 + 8029ece: 2b00 cmp r3, #0 + 8029ed0: d104 bne.n 8029edc + 8029ed2: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 + 8029ed6: 895b ldrh r3, [r3, #10] + 8029ed8: b21b sxth r3, r3 + 8029eda: e000 b.n 8029ede + 8029edc: 2300 movs r3, #0 + 8029ede: f8a7 309e strh.w r3, [r7, #158] ; 0x9e col_a.x1 = x_act; - 8029f76: f8b7 30c6 ldrh.w r3, [r7, #198] ; 0xc6 - 8029f7a: f8a7 3088 strh.w r3, [r7, #136] ; 0x88 + 8029ee2: f8b7 30c6 ldrh.w r3, [r7, #198] ; 0xc6 + 8029ee6: f8a7 3088 strh.w r3, [r7, #136] ; 0x88 col_a.x2 = col_a.x1 + col_w - ser_gap - 1; - 8029f7e: f9b7 3088 ldrsh.w r3, [r7, #136] ; 0x88 - 8029f82: b29a uxth r2, r3 - 8029f84: f8b7 30a8 ldrh.w r3, [r7, #168] ; 0xa8 - 8029f88: 4413 add r3, r2 - 8029f8a: b29a uxth r2, r3 - 8029f8c: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 - 8029f90: b29b uxth r3, r3 - 8029f92: 1ad3 subs r3, r2, r3 - 8029f94: b29b uxth r3, r3 - 8029f96: 3b01 subs r3, #1 - 8029f98: b29b uxth r3, r3 - 8029f9a: b21b sxth r3, r3 - 8029f9c: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 8029eea: f9b7 3088 ldrsh.w r3, [r7, #136] ; 0x88 + 8029eee: b29a uxth r2, r3 + 8029ef0: f8b7 30a8 ldrh.w r3, [r7, #168] ; 0xa8 + 8029ef4: 4413 add r3, r2 + 8029ef6: b29a uxth r2, r3 + 8029ef8: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 + 8029efc: b29b uxth r3, r3 + 8029efe: 1ad3 subs r3, r2, r3 + 8029f00: b29b uxth r3, r3 + 8029f02: 3b01 subs r3, #1 + 8029f04: b29b uxth r3, r3 + 8029f06: b21b sxth r3, r3 + 8029f08: f8a7 308c strh.w r3, [r7, #140] ; 0x8c x_act += col_w; - 8029fa0: f8b7 20c6 ldrh.w r2, [r7, #198] ; 0xc6 - 8029fa4: f8b7 30a8 ldrh.w r3, [r7, #168] ; 0xa8 - 8029fa8: 4413 add r3, r2 - 8029faa: b29b uxth r3, r3 - 8029fac: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 + 8029f0c: f8b7 20c6 ldrh.w r2, [r7, #198] ; 0xc6 + 8029f10: f8b7 30a8 ldrh.w r3, [r7, #168] ; 0xa8 + 8029f14: 4413 add r3, r2 + 8029f16: b29b uxth r3, r3 + 8029f18: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 if(col_a.x2 < clip_area.x1) continue; - 8029fb0: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c - 8029fb4: f9b7 3090 ldrsh.w r3, [r7, #144] ; 0x90 - 8029fb8: 429a cmp r2, r3 - 8029fba: f2c0 80a8 blt.w 802a10e + 8029f1c: f9b7 208c ldrsh.w r2, [r7, #140] ; 0x8c + 8029f20: f9b7 3090 ldrsh.w r3, [r7, #144] ; 0x90 + 8029f24: 429a cmp r2, r3 + 8029f26: f2c0 80a8 blt.w 802a07a if(col_a.x1 > clip_area.x2) break; - 8029fbe: f9b7 2088 ldrsh.w r2, [r7, #136] ; 0x88 - 8029fc2: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 - 8029fc6: 429a cmp r2, r3 - 8029fc8: f300 80b2 bgt.w 802a130 + 8029f2a: f9b7 2088 ldrsh.w r2, [r7, #136] ; 0x88 + 8029f2e: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 + 8029f32: 429a cmp r2, r3 + 8029f34: f300 80b2 bgt.w 802a09c col_dsc.bg_color = ser->color; - 8029fcc: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 - 8029fd0: 891b ldrh r3, [r3, #8] - 8029fd2: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 + 8029f38: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 + 8029f3c: 891b ldrh r3, [r3, #8] + 8029f3e: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 lv_coord_t p_act = (start_point + i) % chart->point_cnt; - 8029fd6: f9b7 209e ldrsh.w r2, [r7, #158] ; 0x9e - 8029fda: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce - 8029fde: 4413 add r3, r2 - 8029fe0: f8d7 20bc ldr.w r2, [r7, #188] ; 0xbc - 8029fe4: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 - 8029fe8: fb93 f1f2 sdiv r1, r3, r2 - 8029fec: fb01 f202 mul.w r2, r1, r2 - 8029ff0: 1a9b subs r3, r3, r2 - 8029ff2: f8a7 309c strh.w r3, [r7, #156] ; 0x9c + 8029f42: f9b7 209e ldrsh.w r2, [r7, #158] ; 0x9e + 8029f46: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce + 8029f4a: 4413 add r3, r2 + 8029f4c: f8d7 20bc ldr.w r2, [r7, #188] ; 0xbc + 8029f50: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 + 8029f54: fb93 f1f2 sdiv r1, r3, r2 + 8029f58: fb01 f202 mul.w r2, r1, r2 + 8029f5c: 1a9b subs r3, r3, r2 + 8029f5e: f8a7 309c strh.w r3, [r7, #156] ; 0x9c y_tmp = (int32_t)((int32_t)ser->y_points[p_act] - chart->ymin[ser->y_axis_sec]) * h; - 8029ff6: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 - 8029ffa: 685a ldr r2, [r3, #4] - 8029ffc: f9b7 309c ldrsh.w r3, [r7, #156] ; 0x9c - 802a000: 005b lsls r3, r3, #1 - 802a002: 4413 add r3, r2 - 802a004: f9b3 3000 ldrsh.w r3, [r3] - 802a008: 4619 mov r1, r3 - 802a00a: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 - 802a00e: 7b1b ldrb r3, [r3, #12] - 802a010: f3c3 1300 ubfx r3, r3, #4, #1 - 802a014: b2db uxtb r3, r3 - 802a016: f8d7 20bc ldr.w r2, [r7, #188] ; 0xbc - 802a01a: 3334 adds r3, #52 ; 0x34 - 802a01c: 005b lsls r3, r3, #1 - 802a01e: 4413 add r3, r2 - 802a020: f9b3 3004 ldrsh.w r3, [r3, #4] - 802a024: 1acb subs r3, r1, r3 - 802a026: f9b7 20b4 ldrsh.w r2, [r7, #180] ; 0xb4 - 802a02a: fb02 f303 mul.w r3, r2, r3 - 802a02e: f8c7 3098 str.w r3, [r7, #152] ; 0x98 + 8029f62: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 + 8029f66: 685a ldr r2, [r3, #4] + 8029f68: f9b7 309c ldrsh.w r3, [r7, #156] ; 0x9c + 8029f6c: 005b lsls r3, r3, #1 + 8029f6e: 4413 add r3, r2 + 8029f70: f9b3 3000 ldrsh.w r3, [r3] + 8029f74: 4619 mov r1, r3 + 8029f76: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 + 8029f7a: 7b1b ldrb r3, [r3, #12] + 8029f7c: f3c3 1300 ubfx r3, r3, #4, #1 + 8029f80: b2db uxtb r3, r3 + 8029f82: f8d7 20bc ldr.w r2, [r7, #188] ; 0xbc + 8029f86: 3334 adds r3, #52 ; 0x34 + 8029f88: 005b lsls r3, r3, #1 + 8029f8a: 4413 add r3, r2 + 8029f8c: f9b3 3004 ldrsh.w r3, [r3, #4] + 8029f90: 1acb subs r3, r1, r3 + 8029f92: f9b7 20b4 ldrsh.w r2, [r7, #180] ; 0xb4 + 8029f96: fb02 f303 mul.w r3, r2, r3 + 8029f9a: f8c7 3098 str.w r3, [r7, #152] ; 0x98 y_tmp = y_tmp / (chart->ymax[ser->y_axis_sec] - chart->ymin[ser->y_axis_sec]); - 802a032: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 - 802a036: 7b1b ldrb r3, [r3, #12] - 802a038: f3c3 1300 ubfx r3, r3, #4, #1 - 802a03c: b2db uxtb r3, r3 - 802a03e: 461a mov r2, r3 - 802a040: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802a044: 3238 adds r2, #56 ; 0x38 - 802a046: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] - 802a04a: 4619 mov r1, r3 - 802a04c: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 - 802a050: 7b1b ldrb r3, [r3, #12] - 802a052: f3c3 1300 ubfx r3, r3, #4, #1 - 802a056: b2db uxtb r3, r3 - 802a058: f8d7 20bc ldr.w r2, [r7, #188] ; 0xbc - 802a05c: 3334 adds r3, #52 ; 0x34 - 802a05e: 005b lsls r3, r3, #1 - 802a060: 4413 add r3, r2 - 802a062: f9b3 3004 ldrsh.w r3, [r3, #4] - 802a066: 1acb subs r3, r1, r3 - 802a068: f8d7 2098 ldr.w r2, [r7, #152] ; 0x98 - 802a06c: fb92 f3f3 sdiv r3, r2, r3 - 802a070: f8c7 3098 str.w r3, [r7, #152] ; 0x98 + 8029f9e: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 + 8029fa2: 7b1b ldrb r3, [r3, #12] + 8029fa4: f3c3 1300 ubfx r3, r3, #4, #1 + 8029fa8: b2db uxtb r3, r3 + 8029faa: 461a mov r2, r3 + 8029fac: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 8029fb0: 3238 adds r2, #56 ; 0x38 + 8029fb2: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] + 8029fb6: 4619 mov r1, r3 + 8029fb8: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 + 8029fbc: 7b1b ldrb r3, [r3, #12] + 8029fbe: f3c3 1300 ubfx r3, r3, #4, #1 + 8029fc2: b2db uxtb r3, r3 + 8029fc4: f8d7 20bc ldr.w r2, [r7, #188] ; 0xbc + 8029fc8: 3334 adds r3, #52 ; 0x34 + 8029fca: 005b lsls r3, r3, #1 + 8029fcc: 4413 add r3, r2 + 8029fce: f9b3 3004 ldrsh.w r3, [r3, #4] + 8029fd2: 1acb subs r3, r1, r3 + 8029fd4: f8d7 2098 ldr.w r2, [r7, #152] ; 0x98 + 8029fd8: fb92 f3f3 sdiv r3, r2, r3 + 8029fdc: f8c7 3098 str.w r3, [r7, #152] ; 0x98 col_a.y1 = h - y_tmp + obj->coords.y1 + y_ofs; - 802a074: f8b7 20b4 ldrh.w r2, [r7, #180] ; 0xb4 - 802a078: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 802a07c: b29b uxth r3, r3 - 802a07e: 1ad3 subs r3, r2, r3 - 802a080: b29a uxth r2, r3 - 802a082: 687b ldr r3, [r7, #4] - 802a084: f9b3 3016 ldrsh.w r3, [r3, #22] - 802a088: b29b uxth r3, r3 - 802a08a: 4413 add r3, r2 - 802a08c: b29a uxth r2, r3 - 802a08e: f8b7 30a0 ldrh.w r3, [r7, #160] ; 0xa0 - 802a092: 4413 add r3, r2 - 802a094: b29b uxth r3, r3 - 802a096: b21b sxth r3, r3 - 802a098: f8a7 308a strh.w r3, [r7, #138] ; 0x8a + 8029fe0: f8b7 20b4 ldrh.w r2, [r7, #180] ; 0xb4 + 8029fe4: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 8029fe8: b29b uxth r3, r3 + 8029fea: 1ad3 subs r3, r2, r3 + 8029fec: b29a uxth r2, r3 + 8029fee: 687b ldr r3, [r7, #4] + 8029ff0: f9b3 3016 ldrsh.w r3, [r3, #22] + 8029ff4: b29b uxth r3, r3 + 8029ff6: 4413 add r3, r2 + 8029ff8: b29a uxth r2, r3 + 8029ffa: f8b7 30a0 ldrh.w r3, [r7, #160] ; 0xa0 + 8029ffe: 4413 add r3, r2 + 802a000: b29b uxth r3, r3 + 802a002: b21b sxth r3, r3 + 802a004: f8a7 308a strh.w r3, [r7, #138] ; 0x8a if(ser->y_points[p_act] != LV_CHART_POINT_NONE) { - 802a09c: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 - 802a0a0: 685a ldr r2, [r3, #4] - 802a0a2: f9b7 309c ldrsh.w r3, [r7, #156] ; 0x9c - 802a0a6: 005b lsls r3, r3, #1 - 802a0a8: 4413 add r3, r2 - 802a0aa: f9b3 3000 ldrsh.w r3, [r3] - 802a0ae: f647 72ff movw r2, #32767 ; 0x7fff - 802a0b2: 4293 cmp r3, r2 - 802a0b4: d02c beq.n 802a110 + 802a008: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 + 802a00c: 685a ldr r2, [r3, #4] + 802a00e: f9b7 309c ldrsh.w r3, [r7, #156] ; 0x9c + 802a012: 005b lsls r3, r3, #1 + 802a014: 4413 add r3, r2 + 802a016: f9b3 3000 ldrsh.w r3, [r3] + 802a01a: f647 72ff movw r2, #32767 ; 0x7fff + 802a01e: 4293 cmp r3, r2 + 802a020: d02c beq.n 802a07c part_draw_dsc.draw_area = &col_a; - 802a0b6: f107 0388 add.w r3, r7, #136 ; 0x88 - 802a0ba: 617b str r3, [r7, #20] + 802a022: f107 0388 add.w r3, r7, #136 ; 0x88 + 802a026: 617b str r3, [r7, #20] part_draw_dsc.rect_dsc = &col_dsc; - 802a0bc: f107 0350 add.w r3, r7, #80 ; 0x50 - 802a0c0: 61bb str r3, [r7, #24] + 802a028: f107 0350 add.w r3, r7, #80 ; 0x50 + 802a02c: 61bb str r3, [r7, #24] part_draw_dsc.sub_part_ptr = ser; - 802a0c2: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 - 802a0c6: 64fb str r3, [r7, #76] ; 0x4c + 802a02e: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 + 802a032: 64fb str r3, [r7, #76] ; 0x4c part_draw_dsc.value = ser->y_points[p_act]; - 802a0c8: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 - 802a0cc: 685a ldr r2, [r3, #4] - 802a0ce: f9b7 309c ldrsh.w r3, [r7, #156] ; 0x9c - 802a0d2: 005b lsls r3, r3, #1 - 802a0d4: 4413 add r3, r2 - 802a0d6: f9b3 3000 ldrsh.w r3, [r3] - 802a0da: 64bb str r3, [r7, #72] ; 0x48 + 802a034: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 + 802a038: 685a ldr r2, [r3, #4] + 802a03a: f9b7 309c ldrsh.w r3, [r7, #156] ; 0x9c + 802a03e: 005b lsls r3, r3, #1 + 802a040: 4413 add r3, r2 + 802a042: f9b3 3000 ldrsh.w r3, [r3] + 802a046: 64bb str r3, [r7, #72] ; 0x48 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 802a0dc: f107 0308 add.w r3, r7, #8 - 802a0e0: 461a mov r2, r3 - 802a0e2: 211a movs r1, #26 - 802a0e4: 6878 ldr r0, [r7, #4] - 802a0e6: f7d8 f9cb bl 8002480 + 802a048: f107 0308 add.w r3, r7, #8 + 802a04c: 461a mov r2, r3 + 802a04e: 211a movs r1, #26 + 802a050: 6878 ldr r0, [r7, #4] + 802a052: f7d8 f9df bl 8002414 lv_draw_rect(draw_ctx, &col_dsc, &col_a); - 802a0ea: f107 0288 add.w r2, r7, #136 ; 0x88 - 802a0ee: f107 0350 add.w r3, r7, #80 ; 0x50 - 802a0f2: 4619 mov r1, r3 - 802a0f4: 6838 ldr r0, [r7, #0] - 802a0f6: f7eb fbbf bl 8015878 + 802a056: f107 0288 add.w r2, r7, #136 ; 0x88 + 802a05a: f107 0350 add.w r3, r7, #80 ; 0x50 + 802a05e: 4619 mov r1, r3 + 802a060: 6838 ldr r0, [r7, #0] + 802a062: f7eb fbbf bl 80157e4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 802a0fa: f107 0308 add.w r3, r7, #8 - 802a0fe: 461a mov r2, r3 - 802a100: 211b movs r1, #27 - 802a102: 6878 ldr r0, [r7, #4] - 802a104: f7d8 f9bc bl 8002480 - 802a108: e002 b.n 802a110 + 802a066: f107 0308 add.w r3, r7, #8 + 802a06a: 461a mov r2, r3 + 802a06c: 211b movs r1, #27 + 802a06e: 6878 ldr r0, [r7, #4] + 802a070: f7d8 f9d0 bl 8002414 + 802a074: e002 b.n 802a07c if(ser->hidden) continue; - 802a10a: bf00 nop - 802a10c: e000 b.n 802a110 + 802a076: bf00 nop + 802a078: e000 b.n 802a07c if(col_a.x2 < clip_area.x1) continue; - 802a10e: bf00 nop + 802a07a: bf00 nop _LV_LL_READ_BACK(&chart->series_ll, ser) { - 802a110: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802a114: 3324 adds r3, #36 ; 0x24 - 802a116: f8d7 10c8 ldr.w r1, [r7, #200] ; 0xc8 - 802a11a: 4618 mov r0, r3 - 802a11c: f008 f952 bl 80323c4 <_lv_ll_get_prev> - 802a120: f8c7 00c8 str.w r0, [r7, #200] ; 0xc8 - 802a124: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 - 802a128: 2b00 cmp r3, #0 - 802a12a: f47f af0a bne.w 8029f42 - 802a12e: e000 b.n 802a132 + 802a07c: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 802a080: 3324 adds r3, #36 ; 0x24 + 802a082: f8d7 10c8 ldr.w r1, [r7, #200] ; 0xc8 + 802a086: 4618 mov r0, r3 + 802a088: f008 f952 bl 8032330 <_lv_ll_get_prev> + 802a08c: f8c7 00c8 str.w r0, [r7, #200] ; 0xc8 + 802a090: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 + 802a094: 2b00 cmp r3, #0 + 802a096: f47f af0a bne.w 8029eae + 802a09a: e000 b.n 802a09e if(col_a.x1 > clip_area.x2) break; - 802a130: bf00 nop + 802a09c: bf00 nop for(i = 0; i < chart->point_cnt; i++) { - 802a132: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce - 802a136: 3301 adds r3, #1 - 802a138: f8a7 30ce strh.w r3, [r7, #206] ; 0xce - 802a13c: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802a140: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 802a144: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce - 802a148: 429a cmp r2, r3 - 802a14a: f4ff aed2 bcc.w 8029ef2 + 802a09e: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce + 802a0a2: 3301 adds r3, #1 + 802a0a4: f8a7 30ce strh.w r3, [r7, #206] ; 0xce + 802a0a8: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 802a0ac: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 802a0b0: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce + 802a0b4: 429a cmp r2, r3 + 802a0b6: f4ff aed2 bcc.w 8029e5e } } } draw_ctx->clip_area = clip_area_ori; - 802a14e: 683b ldr r3, [r7, #0] - 802a150: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0 - 802a154: 609a str r2, [r3, #8] - 802a156: e000 b.n 802a15a + 802a0ba: 683b ldr r3, [r7, #0] + 802a0bc: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0 + 802a0c0: 609a str r2, [r3, #8] + 802a0c2: e000 b.n 802a0c6 if(_lv_area_intersect(&clip_area, &obj->coords, draw_ctx->clip_area) == false) return; - 802a158: bf00 nop + 802a0c4: bf00 nop } - 802a15a: 37d4 adds r7, #212 ; 0xd4 - 802a15c: 46bd mov sp, r7 - 802a15e: bd90 pop {r4, r7, pc} - 802a160: 0806cbf8 .word 0x0806cbf8 + 802a0c6: 37d4 adds r7, #212 ; 0xd4 + 802a0c8: 46bd mov sp, r7 + 802a0ca: bd90 pop {r4, r7, pc} + 802a0cc: 0806cb50 .word 0x0806cb50 -0802a164 : +0802a0d0 : static void draw_cursors(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx) { - 802a164: b580 push {r7, lr} - 802a166: b0c2 sub sp, #264 ; 0x108 - 802a168: af00 add r7, sp, #0 - 802a16a: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a16e: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 802a172: 6018 str r0, [r3, #0] - 802a174: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a178: f5a3 7384 sub.w r3, r3, #264 ; 0x108 - 802a17c: 6019 str r1, [r3, #0] + 802a0d0: b580 push {r7, lr} + 802a0d2: b0c2 sub sp, #264 ; 0x108 + 802a0d4: af00 add r7, sp, #0 + 802a0d6: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a0da: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 802a0de: 6018 str r0, [r3, #0] + 802a0e0: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a0e4: f5a3 7384 sub.w r3, r3, #264 ; 0x108 + 802a0e8: 6019 str r1, [r3, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_chart_t * chart = (lv_chart_t *)obj; - 802a17e: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a182: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 802a186: 681b ldr r3, [r3, #0] - 802a188: f8c7 30fc str.w r3, [r7, #252] ; 0xfc + 802a0ea: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a0ee: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 802a0f2: 681b ldr r3, [r3, #0] + 802a0f4: f8c7 30fc str.w r3, [r7, #252] ; 0xfc if(_lv_ll_is_empty(&chart->cursor_ll)) return; - 802a18c: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 802a190: 3330 adds r3, #48 ; 0x30 - 802a192: 4618 mov r0, r3 - 802a194: f008 f944 bl 8032420 <_lv_ll_is_empty> - 802a198: 4603 mov r3, r0 - 802a19a: 2b00 cmp r3, #0 - 802a19c: f040 8200 bne.w 802a5a0 + 802a0f8: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 802a0fc: 3330 adds r3, #48 ; 0x30 + 802a0fe: 4618 mov r0, r3 + 802a100: f008 f944 bl 803238c <_lv_ll_is_empty> + 802a104: 4603 mov r3, r0 + 802a106: 2b00 cmp r3, #0 + 802a108: f040 8200 bne.w 802a50c lv_area_t clip_area; if(!_lv_area_intersect(&clip_area, draw_ctx->clip_area, &obj->coords)) return; - 802a1a0: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a1a4: f5a3 7384 sub.w r3, r3, #264 ; 0x108 - 802a1a8: 681b ldr r3, [r3, #0] - 802a1aa: 6899 ldr r1, [r3, #8] - 802a1ac: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a1b0: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 802a1b4: 681b ldr r3, [r3, #0] - 802a1b6: f103 0214 add.w r2, r3, #20 - 802a1ba: f107 03ec add.w r3, r7, #236 ; 0xec - 802a1be: 4618 mov r0, r3 - 802a1c0: f006 ff72 bl 80310a8 <_lv_area_intersect> - 802a1c4: 4603 mov r3, r0 - 802a1c6: f083 0301 eor.w r3, r3, #1 - 802a1ca: b2db uxtb r3, r3 - 802a1cc: 2b00 cmp r3, #0 - 802a1ce: f040 81e9 bne.w 802a5a4 + 802a10c: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a110: f5a3 7384 sub.w r3, r3, #264 ; 0x108 + 802a114: 681b ldr r3, [r3, #0] + 802a116: 6899 ldr r1, [r3, #8] + 802a118: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a11c: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 802a120: 681b ldr r3, [r3, #0] + 802a122: f103 0214 add.w r2, r3, #20 + 802a126: f107 03ec add.w r3, r7, #236 ; 0xec + 802a12a: 4618 mov r0, r3 + 802a12c: f006 ff72 bl 8031014 <_lv_area_intersect> + 802a130: 4603 mov r3, r0 + 802a132: f083 0301 eor.w r3, r3, #1 + 802a136: b2db uxtb r3, r3 + 802a138: 2b00 cmp r3, #0 + 802a13a: f040 81e9 bne.w 802a510 const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 802a1d2: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a1d6: f5a3 7384 sub.w r3, r3, #264 ; 0x108 - 802a1da: 681b ldr r3, [r3, #0] - 802a1dc: 689b ldr r3, [r3, #8] - 802a1de: f8c7 30f8 str.w r3, [r7, #248] ; 0xf8 + 802a13e: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a142: f5a3 7384 sub.w r3, r3, #264 ; 0x108 + 802a146: 681b ldr r3, [r3, #0] + 802a148: 689b ldr r3, [r3, #8] + 802a14a: f8c7 30f8 str.w r3, [r7, #248] ; 0xf8 draw_ctx->clip_area = &clip_area; - 802a1e2: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a1e6: f5a3 7384 sub.w r3, r3, #264 ; 0x108 - 802a1ea: 681b ldr r3, [r3, #0] - 802a1ec: f107 02ec add.w r2, r7, #236 ; 0xec - 802a1f0: 609a str r2, [r3, #8] + 802a14e: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a152: f5a3 7384 sub.w r3, r3, #264 ; 0x108 + 802a156: 681b ldr r3, [r3, #0] + 802a158: f107 02ec add.w r2, r7, #236 ; 0xec + 802a15c: 609a str r2, [r3, #8] lv_point_t p1; lv_point_t p2; lv_chart_cursor_t * cursor; lv_draw_line_dsc_t line_dsc_ori; lv_draw_line_dsc_init(&line_dsc_ori); - 802a1f2: f107 03d8 add.w r3, r7, #216 ; 0xd8 - 802a1f6: 4618 mov r0, r3 - 802a1f8: f7e8 fea5 bl 8012f46 + 802a15e: f107 03d8 add.w r3, r7, #216 ; 0xd8 + 802a162: 4618 mov r0, r3 + 802a164: f7e8 fea5 bl 8012eb2 lv_obj_init_draw_line_dsc(obj, LV_PART_CURSOR, &line_dsc_ori); - 802a1fc: f107 02d8 add.w r2, r7, #216 ; 0xd8 - 802a200: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a204: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 802a208: f44f 21e0 mov.w r1, #458752 ; 0x70000 - 802a20c: 6818 ldr r0, [r3, #0] - 802a20e: f7de fcab bl 8008b68 + 802a168: f107 02d8 add.w r2, r7, #216 ; 0xd8 + 802a16c: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a170: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 802a174: f44f 21e0 mov.w r1, #458752 ; 0x70000 + 802a178: 6818 ldr r0, [r3, #0] + 802a17a: f7de fcbf bl 8008afc lv_draw_rect_dsc_t point_dsc_ori; lv_draw_rect_dsc_init(&point_dsc_ori); - 802a212: f107 03a0 add.w r3, r7, #160 ; 0xa0 - 802a216: 4618 mov r0, r3 - 802a218: f7eb faec bl 80157f4 + 802a17e: f107 03a0 add.w r3, r7, #160 ; 0xa0 + 802a182: 4618 mov r0, r3 + 802a184: f7eb faec bl 8015760 point_dsc_ori.bg_opa = line_dsc_ori.opa; - 802a21c: f897 30e0 ldrb.w r3, [r7, #224] ; 0xe0 - 802a220: f887 30a3 strb.w r3, [r7, #163] ; 0xa3 + 802a188: f897 30e0 ldrb.w r3, [r7, #224] ; 0xe0 + 802a18c: f887 30a3 strb.w r3, [r7, #163] ; 0xa3 point_dsc_ori.radius = LV_RADIUS_CIRCLE; - 802a224: f647 73ff movw r3, #32767 ; 0x7fff - 802a228: f8a7 30a0 strh.w r3, [r7, #160] ; 0xa0 + 802a190: f647 73ff movw r3, #32767 ; 0x7fff + 802a194: f8a7 30a0 strh.w r3, [r7, #160] ; 0xa0 lv_draw_line_dsc_t line_dsc_tmp; lv_draw_rect_dsc_t point_dsc_tmp; lv_coord_t point_w = lv_obj_get_style_width(obj, LV_PART_CURSOR) / 2; - 802a22c: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a230: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 802a234: f44f 21e0 mov.w r1, #458752 ; 0x70000 - 802a238: 6818 ldr r0, [r3, #0] - 802a23a: f7fd ffb1 bl 80281a0 - 802a23e: 4603 mov r3, r0 - 802a240: 0fda lsrs r2, r3, #31 - 802a242: 4413 add r3, r2 - 802a244: 105b asrs r3, r3, #1 - 802a246: f8a7 30f6 strh.w r3, [r7, #246] ; 0xf6 + 802a198: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a19c: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 802a1a0: f44f 21e0 mov.w r1, #458752 ; 0x70000 + 802a1a4: 6818 ldr r0, [r3, #0] + 802a1a6: f7fd ffb1 bl 802810c + 802a1aa: 4603 mov r3, r0 + 802a1ac: 0fda lsrs r2, r3, #31 + 802a1ae: 4413 add r3, r2 + 802a1b0: 105b asrs r3, r3, #1 + 802a1b2: f8a7 30f6 strh.w r3, [r7, #246] ; 0xf6 lv_coord_t point_h = lv_obj_get_style_width(obj, LV_PART_CURSOR) / 2; - 802a24a: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a24e: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 802a252: f44f 21e0 mov.w r1, #458752 ; 0x70000 - 802a256: 6818 ldr r0, [r3, #0] - 802a258: f7fd ffa2 bl 80281a0 - 802a25c: 4603 mov r3, r0 - 802a25e: 0fda lsrs r2, r3, #31 - 802a260: 4413 add r3, r2 - 802a262: 105b asrs r3, r3, #1 - 802a264: f8a7 30f4 strh.w r3, [r7, #244] ; 0xf4 + 802a1b6: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a1ba: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 802a1be: f44f 21e0 mov.w r1, #458752 ; 0x70000 + 802a1c2: 6818 ldr r0, [r3, #0] + 802a1c4: f7fd ffa2 bl 802810c + 802a1c8: 4603 mov r3, r0 + 802a1ca: 0fda lsrs r2, r3, #31 + 802a1cc: 4413 add r3, r2 + 802a1ce: 105b asrs r3, r3, #1 + 802a1d0: f8a7 30f4 strh.w r3, [r7, #244] ; 0xf4 lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 802a268: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a26c: f5a3 7384 sub.w r3, r3, #264 ; 0x108 - 802a270: f107 0214 add.w r2, r7, #20 - 802a274: 6819 ldr r1, [r3, #0] - 802a276: 4610 mov r0, r2 - 802a278: f7de fdf9 bl 8008e6e + 802a1d4: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a1d8: f5a3 7384 sub.w r3, r3, #264 ; 0x108 + 802a1dc: f107 0214 add.w r2, r7, #20 + 802a1e0: 6819 ldr r1, [r3, #0] + 802a1e2: 4610 mov r0, r2 + 802a1e4: f7de fe0d bl 8008e02 part_draw_dsc.line_dsc = &line_dsc_tmp; - 802a27c: f107 0394 add.w r3, r7, #148 ; 0x94 - 802a280: 62fb str r3, [r7, #44] ; 0x2c + 802a1e8: f107 0394 add.w r3, r7, #148 ; 0x94 + 802a1ec: 62fb str r3, [r7, #44] ; 0x2c part_draw_dsc.rect_dsc = &point_dsc_tmp; - 802a282: f107 035c add.w r3, r7, #92 ; 0x5c - 802a286: 627b str r3, [r7, #36] ; 0x24 + 802a1ee: f107 035c add.w r3, r7, #92 ; 0x5c + 802a1f2: 627b str r3, [r7, #36] ; 0x24 part_draw_dsc.part = LV_PART_CURSOR; - 802a288: f44f 23e0 mov.w r3, #458752 ; 0x70000 - 802a28c: 64bb str r3, [r7, #72] ; 0x48 + 802a1f4: f44f 23e0 mov.w r3, #458752 ; 0x70000 + 802a1f8: 64bb str r3, [r7, #72] ; 0x48 part_draw_dsc.class_p = MY_CLASS; - 802a28e: 4bc8 ldr r3, [pc, #800] ; (802a5b0 ) - 802a290: 61bb str r3, [r7, #24] + 802a1fa: 4bc8 ldr r3, [pc, #800] ; (802a51c ) + 802a1fc: 61bb str r3, [r7, #24] part_draw_dsc.type = LV_CHART_DRAW_PART_CURSOR; - 802a292: 2305 movs r3, #5 - 802a294: 61fb str r3, [r7, #28] + 802a1fe: 2305 movs r3, #5 + 802a200: 61fb str r3, [r7, #28] /*Go through all cursor lines*/ _LV_LL_READ_BACK(&chart->cursor_ll, cursor) { - 802a296: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 802a29a: 3330 adds r3, #48 ; 0x30 - 802a29c: 4618 mov r0, r3 - 802a29e: f008 f86d bl 803237c <_lv_ll_get_tail> - 802a2a2: f8c7 0104 str.w r0, [r7, #260] ; 0x104 - 802a2a6: e16d b.n 802a584 + 802a202: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 802a206: 3330 adds r3, #48 ; 0x30 + 802a208: 4618 mov r0, r3 + 802a20a: f008 f86d bl 80322e8 <_lv_ll_get_tail> + 802a20e: f8c7 0104 str.w r0, [r7, #260] ; 0x104 + 802a212: e16d b.n 802a4f0 lv_memcpy(&line_dsc_tmp, &line_dsc_ori, sizeof(lv_draw_line_dsc_t)); - 802a2a8: f107 01d8 add.w r1, r7, #216 ; 0xd8 - 802a2ac: f107 0394 add.w r3, r7, #148 ; 0x94 - 802a2b0: 220a movs r2, #10 - 802a2b2: 4618 mov r0, r3 - 802a2b4: f008 fca8 bl 8032c08 + 802a214: f107 01d8 add.w r1, r7, #216 ; 0xd8 + 802a218: f107 0394 add.w r3, r7, #148 ; 0x94 + 802a21c: 220a movs r2, #10 + 802a21e: 4618 mov r0, r3 + 802a220: f008 fca8 bl 8032b74 lv_memcpy(&point_dsc_tmp, &point_dsc_ori, sizeof(lv_draw_rect_dsc_t)); - 802a2b8: f107 01a0 add.w r1, r7, #160 ; 0xa0 - 802a2bc: f107 035c add.w r3, r7, #92 ; 0x5c - 802a2c0: 2238 movs r2, #56 ; 0x38 - 802a2c2: 4618 mov r0, r3 - 802a2c4: f008 fca0 bl 8032c08 + 802a224: f107 01a0 add.w r1, r7, #160 ; 0xa0 + 802a228: f107 035c add.w r3, r7, #92 ; 0x5c + 802a22c: 2238 movs r2, #56 ; 0x38 + 802a22e: 4618 mov r0, r3 + 802a230: f008 fca0 bl 8032b74 line_dsc_tmp.color = cursor->color; - 802a2c8: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 802a2cc: 88db ldrh r3, [r3, #6] - 802a2ce: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 + 802a234: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 802a238: 88db ldrh r3, [r3, #6] + 802a23a: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 point_dsc_tmp.bg_color = cursor->color; - 802a2d2: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 802a2d6: 88db ldrh r3, [r3, #6] - 802a2d8: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 + 802a23e: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 802a242: 88db ldrh r3, [r3, #6] + 802a244: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 part_draw_dsc.p1 = &p1; - 802a2dc: f107 03e8 add.w r3, r7, #232 ; 0xe8 - 802a2e0: 63bb str r3, [r7, #56] ; 0x38 + 802a248: f107 03e8 add.w r3, r7, #232 ; 0xe8 + 802a24c: 63bb str r3, [r7, #56] ; 0x38 part_draw_dsc.p2 = &p2; - 802a2e2: f107 03e4 add.w r3, r7, #228 ; 0xe4 - 802a2e6: 63fb str r3, [r7, #60] ; 0x3c + 802a24e: f107 03e4 add.w r3, r7, #228 ; 0xe4 + 802a252: 63fb str r3, [r7, #60] ; 0x3c lv_coord_t cx; lv_coord_t cy; if(cursor->pos_set) { - 802a2e8: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 802a2ec: 7b5b ldrb r3, [r3, #13] - 802a2ee: f003 0301 and.w r3, r3, #1 - 802a2f2: b2db uxtb r3, r3 - 802a2f4: 2b00 cmp r3, #0 - 802a2f6: d00a beq.n 802a30e + 802a254: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 802a258: 7b5b ldrb r3, [r3, #13] + 802a25a: f003 0301 and.w r3, r3, #1 + 802a25e: b2db uxtb r3, r3 + 802a260: 2b00 cmp r3, #0 + 802a262: d00a beq.n 802a27a cx = cursor->pos.x; - 802a2f8: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 802a2fc: 881b ldrh r3, [r3, #0] - 802a2fe: f8a7 3102 strh.w r3, [r7, #258] ; 0x102 + 802a264: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 802a268: 881b ldrh r3, [r3, #0] + 802a26a: f8a7 3102 strh.w r3, [r7, #258] ; 0x102 cy = cursor->pos.y; - 802a302: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 802a306: 885b ldrh r3, [r3, #2] - 802a308: f8a7 3100 strh.w r3, [r7, #256] ; 0x100 - 802a30c: e024 b.n 802a358 + 802a26e: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 802a272: 885b ldrh r3, [r3, #2] + 802a274: f8a7 3100 strh.w r3, [r7, #256] ; 0x100 + 802a278: e024 b.n 802a2c4 } else { if(cursor->point_id == LV_CHART_POINT_NONE) continue; - 802a30e: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 802a312: 889b ldrh r3, [r3, #4] - 802a314: f647 72ff movw r2, #32767 ; 0x7fff - 802a318: 4293 cmp r3, r2 - 802a31a: f000 8129 beq.w 802a570 + 802a27a: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 802a27e: 889b ldrh r3, [r3, #4] + 802a280: f647 72ff movw r2, #32767 ; 0x7fff + 802a284: 4293 cmp r3, r2 + 802a286: f000 8129 beq.w 802a4dc lv_point_t p; lv_chart_get_point_pos_by_id(obj, cursor->ser, cursor->point_id, &p); - 802a31e: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 802a322: 6899 ldr r1, [r3, #8] - 802a324: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 802a328: 889a ldrh r2, [r3, #4] - 802a32a: f107 0308 add.w r3, r7, #8 - 802a32e: f507 7084 add.w r0, r7, #264 ; 0x108 - 802a332: f5a0 7082 sub.w r0, r0, #260 ; 0x104 - 802a336: 6800 ldr r0, [r0, #0] - 802a338: f7fe f801 bl 802833e + 802a28a: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 802a28e: 6899 ldr r1, [r3, #8] + 802a290: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 802a294: 889a ldrh r2, [r3, #4] + 802a296: f107 0308 add.w r3, r7, #8 + 802a29a: f507 7084 add.w r0, r7, #264 ; 0x108 + 802a29e: f5a0 7082 sub.w r0, r0, #260 ; 0x104 + 802a2a2: 6800 ldr r0, [r0, #0] + 802a2a4: f7fe f801 bl 80282aa cx = p.x; - 802a33c: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a340: f5a3 7380 sub.w r3, r3, #256 ; 0x100 - 802a344: 881b ldrh r3, [r3, #0] - 802a346: f8a7 3102 strh.w r3, [r7, #258] ; 0x102 + 802a2a8: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a2ac: f5a3 7380 sub.w r3, r3, #256 ; 0x100 + 802a2b0: 881b ldrh r3, [r3, #0] + 802a2b2: f8a7 3102 strh.w r3, [r7, #258] ; 0x102 cy = p.y; - 802a34a: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a34e: f5a3 7380 sub.w r3, r3, #256 ; 0x100 - 802a352: 885b ldrh r3, [r3, #2] - 802a354: f8a7 3100 strh.w r3, [r7, #256] ; 0x100 + 802a2b6: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a2ba: f5a3 7380 sub.w r3, r3, #256 ; 0x100 + 802a2be: 885b ldrh r3, [r3, #2] + 802a2c0: f8a7 3100 strh.w r3, [r7, #256] ; 0x100 } cx += obj->coords.x1; - 802a358: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a35c: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 802a360: 681b ldr r3, [r3, #0] - 802a362: f9b3 3014 ldrsh.w r3, [r3, #20] - 802a366: b29a uxth r2, r3 - 802a368: f8b7 3102 ldrh.w r3, [r7, #258] ; 0x102 - 802a36c: 4413 add r3, r2 - 802a36e: b29b uxth r3, r3 - 802a370: f8a7 3102 strh.w r3, [r7, #258] ; 0x102 + 802a2c4: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a2c8: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 802a2cc: 681b ldr r3, [r3, #0] + 802a2ce: f9b3 3014 ldrsh.w r3, [r3, #20] + 802a2d2: b29a uxth r2, r3 + 802a2d4: f8b7 3102 ldrh.w r3, [r7, #258] ; 0x102 + 802a2d8: 4413 add r3, r2 + 802a2da: b29b uxth r3, r3 + 802a2dc: f8a7 3102 strh.w r3, [r7, #258] ; 0x102 cy += obj->coords.y1; - 802a374: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a378: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 802a37c: 681b ldr r3, [r3, #0] - 802a37e: f9b3 3016 ldrsh.w r3, [r3, #22] - 802a382: b29a uxth r2, r3 - 802a384: f8b7 3100 ldrh.w r3, [r7, #256] ; 0x100 - 802a388: 4413 add r3, r2 - 802a38a: b29b uxth r3, r3 - 802a38c: f8a7 3100 strh.w r3, [r7, #256] ; 0x100 + 802a2e0: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a2e4: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 802a2e8: 681b ldr r3, [r3, #0] + 802a2ea: f9b3 3016 ldrsh.w r3, [r3, #22] + 802a2ee: b29a uxth r2, r3 + 802a2f0: f8b7 3100 ldrh.w r3, [r7, #256] ; 0x100 + 802a2f4: 4413 add r3, r2 + 802a2f6: b29b uxth r3, r3 + 802a2f8: f8a7 3100 strh.w r3, [r7, #256] ; 0x100 lv_area_t point_area; if(point_w && point_h) { - 802a390: f9b7 30f6 ldrsh.w r3, [r7, #246] ; 0xf6 - 802a394: 2b00 cmp r3, #0 - 802a396: d027 beq.n 802a3e8 - 802a398: f9b7 30f4 ldrsh.w r3, [r7, #244] ; 0xf4 - 802a39c: 2b00 cmp r3, #0 - 802a39e: d023 beq.n 802a3e8 + 802a2fc: f9b7 30f6 ldrsh.w r3, [r7, #246] ; 0xf6 + 802a300: 2b00 cmp r3, #0 + 802a302: d027 beq.n 802a354 + 802a304: f9b7 30f4 ldrsh.w r3, [r7, #244] ; 0xf4 + 802a308: 2b00 cmp r3, #0 + 802a30a: d023 beq.n 802a354 point_area.x1 = cx - point_w; - 802a3a0: f8b7 2102 ldrh.w r2, [r7, #258] ; 0x102 - 802a3a4: f8b7 30f6 ldrh.w r3, [r7, #246] ; 0xf6 - 802a3a8: 1ad3 subs r3, r2, r3 - 802a3aa: b29b uxth r3, r3 - 802a3ac: b21b sxth r3, r3 - 802a3ae: 81bb strh r3, [r7, #12] + 802a30c: f8b7 2102 ldrh.w r2, [r7, #258] ; 0x102 + 802a310: f8b7 30f6 ldrh.w r3, [r7, #246] ; 0xf6 + 802a314: 1ad3 subs r3, r2, r3 + 802a316: b29b uxth r3, r3 + 802a318: b21b sxth r3, r3 + 802a31a: 81bb strh r3, [r7, #12] point_area.x2 = cx + point_w; - 802a3b0: f8b7 2102 ldrh.w r2, [r7, #258] ; 0x102 - 802a3b4: f8b7 30f6 ldrh.w r3, [r7, #246] ; 0xf6 - 802a3b8: 4413 add r3, r2 - 802a3ba: b29b uxth r3, r3 - 802a3bc: b21b sxth r3, r3 - 802a3be: 823b strh r3, [r7, #16] + 802a31c: f8b7 2102 ldrh.w r2, [r7, #258] ; 0x102 + 802a320: f8b7 30f6 ldrh.w r3, [r7, #246] ; 0xf6 + 802a324: 4413 add r3, r2 + 802a326: b29b uxth r3, r3 + 802a328: b21b sxth r3, r3 + 802a32a: 823b strh r3, [r7, #16] point_area.y1 = cy - point_h; - 802a3c0: f8b7 2100 ldrh.w r2, [r7, #256] ; 0x100 - 802a3c4: f8b7 30f4 ldrh.w r3, [r7, #244] ; 0xf4 - 802a3c8: 1ad3 subs r3, r2, r3 - 802a3ca: b29b uxth r3, r3 - 802a3cc: b21b sxth r3, r3 - 802a3ce: 81fb strh r3, [r7, #14] + 802a32c: f8b7 2100 ldrh.w r2, [r7, #256] ; 0x100 + 802a330: f8b7 30f4 ldrh.w r3, [r7, #244] ; 0xf4 + 802a334: 1ad3 subs r3, r2, r3 + 802a336: b29b uxth r3, r3 + 802a338: b21b sxth r3, r3 + 802a33a: 81fb strh r3, [r7, #14] point_area.y2 = cy + point_h; - 802a3d0: f8b7 2100 ldrh.w r2, [r7, #256] ; 0x100 - 802a3d4: f8b7 30f4 ldrh.w r3, [r7, #244] ; 0xf4 - 802a3d8: 4413 add r3, r2 - 802a3da: b29b uxth r3, r3 - 802a3dc: b21b sxth r3, r3 - 802a3de: 827b strh r3, [r7, #18] + 802a33c: f8b7 2100 ldrh.w r2, [r7, #256] ; 0x100 + 802a340: f8b7 30f4 ldrh.w r3, [r7, #244] ; 0xf4 + 802a344: 4413 add r3, r2 + 802a346: b29b uxth r3, r3 + 802a348: b21b sxth r3, r3 + 802a34a: 827b strh r3, [r7, #18] part_draw_dsc.draw_area = &point_area; - 802a3e0: f107 030c add.w r3, r7, #12 - 802a3e4: 623b str r3, [r7, #32] - 802a3e6: e001 b.n 802a3ec + 802a34c: f107 030c add.w r3, r7, #12 + 802a350: 623b str r3, [r7, #32] + 802a352: e001 b.n 802a358 } else { part_draw_dsc.draw_area = NULL; - 802a3e8: 2300 movs r3, #0 - 802a3ea: 623b str r3, [r7, #32] + 802a354: 2300 movs r3, #0 + 802a356: 623b str r3, [r7, #32] } if(cursor->dir & LV_DIR_HOR) { - 802a3ec: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 802a3f0: 7b1b ldrb r3, [r3, #12] - 802a3f2: f003 0303 and.w r3, r3, #3 - 802a3f6: 2b00 cmp r3, #0 - 802a3f8: d059 beq.n 802a4ae + 802a358: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 802a35c: 7b1b ldrb r3, [r3, #12] + 802a35e: f003 0303 and.w r3, r3, #3 + 802a362: 2b00 cmp r3, #0 + 802a364: d059 beq.n 802a41a p1.x = cursor->dir & LV_DIR_LEFT ? obj->coords.x1 : cx; - 802a3fa: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 802a3fe: 7b1b ldrb r3, [r3, #12] - 802a400: f003 0301 and.w r3, r3, #1 - 802a404: 2b00 cmp r3, #0 - 802a406: d007 beq.n 802a418 - 802a408: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a40c: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 802a410: 681b ldr r3, [r3, #0] - 802a412: f9b3 3014 ldrsh.w r3, [r3, #20] - 802a416: e001 b.n 802a41c - 802a418: f9b7 3102 ldrsh.w r3, [r7, #258] ; 0x102 - 802a41c: f8a7 30e8 strh.w r3, [r7, #232] ; 0xe8 + 802a366: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 802a36a: 7b1b ldrb r3, [r3, #12] + 802a36c: f003 0301 and.w r3, r3, #1 + 802a370: 2b00 cmp r3, #0 + 802a372: d007 beq.n 802a384 + 802a374: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a378: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 802a37c: 681b ldr r3, [r3, #0] + 802a37e: f9b3 3014 ldrsh.w r3, [r3, #20] + 802a382: e001 b.n 802a388 + 802a384: f9b7 3102 ldrsh.w r3, [r7, #258] ; 0x102 + 802a388: f8a7 30e8 strh.w r3, [r7, #232] ; 0xe8 p1.y = cy; - 802a420: f8b7 3100 ldrh.w r3, [r7, #256] ; 0x100 - 802a424: f8a7 30ea strh.w r3, [r7, #234] ; 0xea + 802a38c: f8b7 3100 ldrh.w r3, [r7, #256] ; 0x100 + 802a390: f8a7 30ea strh.w r3, [r7, #234] ; 0xea p2.x = cursor->dir & LV_DIR_RIGHT ? obj->coords.x2 : cx; - 802a428: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 802a42c: 7b1b ldrb r3, [r3, #12] - 802a42e: f003 0302 and.w r3, r3, #2 - 802a432: 2b00 cmp r3, #0 - 802a434: d007 beq.n 802a446 - 802a436: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a43a: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 802a43e: 681b ldr r3, [r3, #0] - 802a440: f9b3 3018 ldrsh.w r3, [r3, #24] - 802a444: e001 b.n 802a44a - 802a446: f9b7 3102 ldrsh.w r3, [r7, #258] ; 0x102 - 802a44a: f8a7 30e4 strh.w r3, [r7, #228] ; 0xe4 + 802a394: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 802a398: 7b1b ldrb r3, [r3, #12] + 802a39a: f003 0302 and.w r3, r3, #2 + 802a39e: 2b00 cmp r3, #0 + 802a3a0: d007 beq.n 802a3b2 + 802a3a2: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a3a6: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 802a3aa: 681b ldr r3, [r3, #0] + 802a3ac: f9b3 3018 ldrsh.w r3, [r3, #24] + 802a3b0: e001 b.n 802a3b6 + 802a3b2: f9b7 3102 ldrsh.w r3, [r7, #258] ; 0x102 + 802a3b6: f8a7 30e4 strh.w r3, [r7, #228] ; 0xe4 p2.y = p1.y; - 802a44e: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea - 802a452: f8a7 30e6 strh.w r3, [r7, #230] ; 0xe6 + 802a3ba: f9b7 30ea ldrsh.w r3, [r7, #234] ; 0xea + 802a3be: f8a7 30e6 strh.w r3, [r7, #230] ; 0xe6 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 802a456: f107 0214 add.w r2, r7, #20 - 802a45a: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a45e: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 802a462: 211a movs r1, #26 - 802a464: 6818 ldr r0, [r3, #0] - 802a466: f7d8 f80b bl 8002480 + 802a3c2: f107 0214 add.w r2, r7, #20 + 802a3c6: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a3ca: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 802a3ce: 211a movs r1, #26 + 802a3d0: 6818 ldr r0, [r3, #0] + 802a3d2: f7d8 f81f bl 8002414 lv_draw_line(draw_ctx, &line_dsc_tmp, &p1, &p2); - 802a46a: f107 03e4 add.w r3, r7, #228 ; 0xe4 - 802a46e: f107 02e8 add.w r2, r7, #232 ; 0xe8 - 802a472: f107 0194 add.w r1, r7, #148 ; 0x94 - 802a476: f507 7084 add.w r0, r7, #264 ; 0x108 - 802a47a: f5a0 7084 sub.w r0, r0, #264 ; 0x108 - 802a47e: 6800 ldr r0, [r0, #0] - 802a480: f7e8 fd77 bl 8012f72 + 802a3d6: f107 03e4 add.w r3, r7, #228 ; 0xe4 + 802a3da: f107 02e8 add.w r2, r7, #232 ; 0xe8 + 802a3de: f107 0194 add.w r1, r7, #148 ; 0x94 + 802a3e2: f507 7084 add.w r0, r7, #264 ; 0x108 + 802a3e6: f5a0 7084 sub.w r0, r0, #264 ; 0x108 + 802a3ea: 6800 ldr r0, [r0, #0] + 802a3ec: f7e8 fd77 bl 8012ede lv_draw_rect(draw_ctx, &point_dsc_tmp, &point_area); - 802a484: f107 020c add.w r2, r7, #12 - 802a488: f107 015c add.w r1, r7, #92 ; 0x5c - 802a48c: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a490: f5a3 7384 sub.w r3, r3, #264 ; 0x108 - 802a494: 6818 ldr r0, [r3, #0] - 802a496: f7eb f9ef bl 8015878 + 802a3f0: f107 020c add.w r2, r7, #12 + 802a3f4: f107 015c add.w r1, r7, #92 ; 0x5c + 802a3f8: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a3fc: f5a3 7384 sub.w r3, r3, #264 ; 0x108 + 802a400: 6818 ldr r0, [r3, #0] + 802a402: f7eb f9ef bl 80157e4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 802a49a: f107 0214 add.w r2, r7, #20 - 802a49e: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a4a2: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 802a4a6: 211b movs r1, #27 - 802a4a8: 6818 ldr r0, [r3, #0] - 802a4aa: f7d7 ffe9 bl 8002480 + 802a406: f107 0214 add.w r2, r7, #20 + 802a40a: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a40e: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 802a412: 211b movs r1, #27 + 802a414: 6818 ldr r0, [r3, #0] + 802a416: f7d7 fffd bl 8002414 } if(cursor->dir & LV_DIR_VER) { - 802a4ae: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 802a4b2: 7b1b ldrb r3, [r3, #12] - 802a4b4: f003 030c and.w r3, r3, #12 - 802a4b8: 2b00 cmp r3, #0 - 802a4ba: d059 beq.n 802a570 + 802a41a: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 802a41e: 7b1b ldrb r3, [r3, #12] + 802a420: f003 030c and.w r3, r3, #12 + 802a424: 2b00 cmp r3, #0 + 802a426: d059 beq.n 802a4dc p1.x = cx; - 802a4bc: f8b7 3102 ldrh.w r3, [r7, #258] ; 0x102 - 802a4c0: f8a7 30e8 strh.w r3, [r7, #232] ; 0xe8 + 802a428: f8b7 3102 ldrh.w r3, [r7, #258] ; 0x102 + 802a42c: f8a7 30e8 strh.w r3, [r7, #232] ; 0xe8 p1.y = cursor->dir & LV_DIR_TOP ? obj->coords.y1 : cy; - 802a4c4: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 802a4c8: 7b1b ldrb r3, [r3, #12] - 802a4ca: f003 0304 and.w r3, r3, #4 - 802a4ce: 2b00 cmp r3, #0 - 802a4d0: d007 beq.n 802a4e2 - 802a4d2: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a4d6: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 802a4da: 681b ldr r3, [r3, #0] - 802a4dc: f9b3 3016 ldrsh.w r3, [r3, #22] - 802a4e0: e001 b.n 802a4e6 - 802a4e2: f9b7 3100 ldrsh.w r3, [r7, #256] ; 0x100 - 802a4e6: f8a7 30ea strh.w r3, [r7, #234] ; 0xea + 802a430: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 802a434: 7b1b ldrb r3, [r3, #12] + 802a436: f003 0304 and.w r3, r3, #4 + 802a43a: 2b00 cmp r3, #0 + 802a43c: d007 beq.n 802a44e + 802a43e: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a442: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 802a446: 681b ldr r3, [r3, #0] + 802a448: f9b3 3016 ldrsh.w r3, [r3, #22] + 802a44c: e001 b.n 802a452 + 802a44e: f9b7 3100 ldrsh.w r3, [r7, #256] ; 0x100 + 802a452: f8a7 30ea strh.w r3, [r7, #234] ; 0xea p2.x = p1.x; - 802a4ea: f9b7 30e8 ldrsh.w r3, [r7, #232] ; 0xe8 - 802a4ee: f8a7 30e4 strh.w r3, [r7, #228] ; 0xe4 + 802a456: f9b7 30e8 ldrsh.w r3, [r7, #232] ; 0xe8 + 802a45a: f8a7 30e4 strh.w r3, [r7, #228] ; 0xe4 p2.y = cursor->dir & LV_DIR_BOTTOM ? obj->coords.y2 : cy; - 802a4f2: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 802a4f6: 7b1b ldrb r3, [r3, #12] - 802a4f8: f003 0308 and.w r3, r3, #8 - 802a4fc: 2b00 cmp r3, #0 - 802a4fe: d007 beq.n 802a510 - 802a500: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a504: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 802a508: 681b ldr r3, [r3, #0] - 802a50a: f9b3 301a ldrsh.w r3, [r3, #26] - 802a50e: e001 b.n 802a514 - 802a510: f9b7 3100 ldrsh.w r3, [r7, #256] ; 0x100 - 802a514: f8a7 30e6 strh.w r3, [r7, #230] ; 0xe6 + 802a45e: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 802a462: 7b1b ldrb r3, [r3, #12] + 802a464: f003 0308 and.w r3, r3, #8 + 802a468: 2b00 cmp r3, #0 + 802a46a: d007 beq.n 802a47c + 802a46c: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a470: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 802a474: 681b ldr r3, [r3, #0] + 802a476: f9b3 301a ldrsh.w r3, [r3, #26] + 802a47a: e001 b.n 802a480 + 802a47c: f9b7 3100 ldrsh.w r3, [r7, #256] ; 0x100 + 802a480: f8a7 30e6 strh.w r3, [r7, #230] ; 0xe6 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 802a518: f107 0214 add.w r2, r7, #20 - 802a51c: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a520: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 802a524: 211a movs r1, #26 - 802a526: 6818 ldr r0, [r3, #0] - 802a528: f7d7 ffaa bl 8002480 + 802a484: f107 0214 add.w r2, r7, #20 + 802a488: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a48c: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 802a490: 211a movs r1, #26 + 802a492: 6818 ldr r0, [r3, #0] + 802a494: f7d7 ffbe bl 8002414 lv_draw_line(draw_ctx, &line_dsc_tmp, &p1, &p2); - 802a52c: f107 03e4 add.w r3, r7, #228 ; 0xe4 - 802a530: f107 02e8 add.w r2, r7, #232 ; 0xe8 - 802a534: f107 0194 add.w r1, r7, #148 ; 0x94 - 802a538: f507 7084 add.w r0, r7, #264 ; 0x108 - 802a53c: f5a0 7084 sub.w r0, r0, #264 ; 0x108 - 802a540: 6800 ldr r0, [r0, #0] - 802a542: f7e8 fd16 bl 8012f72 + 802a498: f107 03e4 add.w r3, r7, #228 ; 0xe4 + 802a49c: f107 02e8 add.w r2, r7, #232 ; 0xe8 + 802a4a0: f107 0194 add.w r1, r7, #148 ; 0x94 + 802a4a4: f507 7084 add.w r0, r7, #264 ; 0x108 + 802a4a8: f5a0 7084 sub.w r0, r0, #264 ; 0x108 + 802a4ac: 6800 ldr r0, [r0, #0] + 802a4ae: f7e8 fd16 bl 8012ede lv_draw_rect(draw_ctx, &point_dsc_tmp, &point_area); - 802a546: f107 020c add.w r2, r7, #12 - 802a54a: f107 015c add.w r1, r7, #92 ; 0x5c - 802a54e: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a552: f5a3 7384 sub.w r3, r3, #264 ; 0x108 - 802a556: 6818 ldr r0, [r3, #0] - 802a558: f7eb f98e bl 8015878 + 802a4b2: f107 020c add.w r2, r7, #12 + 802a4b6: f107 015c add.w r1, r7, #92 ; 0x5c + 802a4ba: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a4be: f5a3 7384 sub.w r3, r3, #264 ; 0x108 + 802a4c2: 6818 ldr r0, [r3, #0] + 802a4c4: f7eb f98e bl 80157e4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 802a55c: f107 0214 add.w r2, r7, #20 - 802a560: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a564: f5a3 7382 sub.w r3, r3, #260 ; 0x104 - 802a568: 211b movs r1, #27 - 802a56a: 6818 ldr r0, [r3, #0] - 802a56c: f7d7 ff88 bl 8002480 + 802a4c8: f107 0214 add.w r2, r7, #20 + 802a4cc: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a4d0: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 802a4d4: 211b movs r1, #27 + 802a4d6: 6818 ldr r0, [r3, #0] + 802a4d8: f7d7 ff9c bl 8002414 _LV_LL_READ_BACK(&chart->cursor_ll, cursor) { - 802a570: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc - 802a574: 3330 adds r3, #48 ; 0x30 - 802a576: f8d7 1104 ldr.w r1, [r7, #260] ; 0x104 - 802a57a: 4618 mov r0, r3 - 802a57c: f007 ff22 bl 80323c4 <_lv_ll_get_prev> - 802a580: f8c7 0104 str.w r0, [r7, #260] ; 0x104 - 802a584: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 - 802a588: 2b00 cmp r3, #0 - 802a58a: f47f ae8d bne.w 802a2a8 + 802a4dc: f8d7 30fc ldr.w r3, [r7, #252] ; 0xfc + 802a4e0: 3330 adds r3, #48 ; 0x30 + 802a4e2: f8d7 1104 ldr.w r1, [r7, #260] ; 0x104 + 802a4e6: 4618 mov r0, r3 + 802a4e8: f007 ff22 bl 8032330 <_lv_ll_get_prev> + 802a4ec: f8c7 0104 str.w r0, [r7, #260] ; 0x104 + 802a4f0: f8d7 3104 ldr.w r3, [r7, #260] ; 0x104 + 802a4f4: 2b00 cmp r3, #0 + 802a4f6: f47f ae8d bne.w 802a214 } } draw_ctx->clip_area = clip_area_ori; - 802a58e: f507 7384 add.w r3, r7, #264 ; 0x108 - 802a592: f5a3 7384 sub.w r3, r3, #264 ; 0x108 - 802a596: 681b ldr r3, [r3, #0] - 802a598: f8d7 20f8 ldr.w r2, [r7, #248] ; 0xf8 - 802a59c: 609a str r2, [r3, #8] - 802a59e: e002 b.n 802a5a6 + 802a4fa: f507 7384 add.w r3, r7, #264 ; 0x108 + 802a4fe: f5a3 7384 sub.w r3, r3, #264 ; 0x108 + 802a502: 681b ldr r3, [r3, #0] + 802a504: f8d7 20f8 ldr.w r2, [r7, #248] ; 0xf8 + 802a508: 609a str r2, [r3, #8] + 802a50a: e002 b.n 802a512 if(_lv_ll_is_empty(&chart->cursor_ll)) return; - 802a5a0: bf00 nop - 802a5a2: e000 b.n 802a5a6 + 802a50c: bf00 nop + 802a50e: e000 b.n 802a512 if(!_lv_area_intersect(&clip_area, draw_ctx->clip_area, &obj->coords)) return; - 802a5a4: bf00 nop + 802a510: bf00 nop } - 802a5a6: f507 7784 add.w r7, r7, #264 ; 0x108 - 802a5aa: 46bd mov sp, r7 - 802a5ac: bd80 pop {r7, pc} - 802a5ae: bf00 nop - 802a5b0: 0806cbf8 .word 0x0806cbf8 + 802a512: f507 7784 add.w r7, r7, #264 ; 0x108 + 802a516: 46bd mov sp, r7 + 802a518: bd80 pop {r7, pc} + 802a51a: bf00 nop + 802a51c: 0806cb50 .word 0x0806cb50 -0802a5b4 : +0802a520 : static void draw_y_ticks(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, lv_chart_axis_t axis) { - 802a5b4: b5b0 push {r4, r5, r7, lr} - 802a5b6: b0ba sub sp, #232 ; 0xe8 - 802a5b8: af04 add r7, sp, #16 - 802a5ba: 60f8 str r0, [r7, #12] - 802a5bc: 60b9 str r1, [r7, #8] - 802a5be: 4613 mov r3, r2 - 802a5c0: 71fb strb r3, [r7, #7] + 802a520: b5b0 push {r4, r5, r7, lr} + 802a522: b0ba sub sp, #232 ; 0xe8 + 802a524: af04 add r7, sp, #16 + 802a526: 60f8 str r0, [r7, #12] + 802a528: 60b9 str r1, [r7, #8] + 802a52a: 4613 mov r3, r2 + 802a52c: 71fb strb r3, [r7, #7] lv_chart_t * chart = (lv_chart_t *)obj; - 802a5c2: 68fb ldr r3, [r7, #12] - 802a5c4: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 + 802a52e: 68fb ldr r3, [r7, #12] + 802a530: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 lv_chart_tick_dsc_t * t = get_tick_gsc(obj, axis); - 802a5c8: 79fb ldrb r3, [r7, #7] - 802a5ca: 4619 mov r1, r3 - 802a5cc: 68f8 ldr r0, [r7, #12] - 802a5ce: f000 ff05 bl 802b3dc - 802a5d2: f8c7 00c0 str.w r0, [r7, #192] ; 0xc0 + 802a534: 79fb ldrb r3, [r7, #7] + 802a536: 4619 mov r1, r3 + 802a538: 68f8 ldr r0, [r7, #12] + 802a53a: f000 ff05 bl 802b348 + 802a53e: f8c7 00c0 str.w r0, [r7, #192] ; 0xc0 if(t->major_cnt <= 1) return; - 802a5d6: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 802a5da: 891b ldrh r3, [r3, #8] - 802a5dc: f3c3 030e ubfx r3, r3, #0, #15 - 802a5e0: b29b uxth r3, r3 - 802a5e2: 2b01 cmp r3, #1 - 802a5e4: f240 823e bls.w 802aa64 + 802a542: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 802a546: 891b ldrh r3, [r3, #8] + 802a548: f3c3 030e ubfx r3, r3, #0, #15 + 802a54c: b29b uxth r3, r3 + 802a54e: 2b01 cmp r3, #1 + 802a550: f240 823e bls.w 802a9d0 if(!t->label_en && !t->major_len && !t->minor_len) return; - 802a5e8: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 802a5ec: 7a5b ldrb r3, [r3, #9] - 802a5ee: f023 037f bic.w r3, r3, #127 ; 0x7f - 802a5f2: b2db uxtb r3, r3 - 802a5f4: 2b00 cmp r3, #0 - 802a5f6: d10c bne.n 802a612 - 802a5f8: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 802a5fc: f9b3 3000 ldrsh.w r3, [r3] - 802a600: 2b00 cmp r3, #0 - 802a602: d106 bne.n 802a612 - 802a604: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 802a608: f9b3 3002 ldrsh.w r3, [r3, #2] - 802a60c: 2b00 cmp r3, #0 - 802a60e: f000 822b beq.w 802aa68 + 802a554: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 802a558: 7a5b ldrb r3, [r3, #9] + 802a55a: f023 037f bic.w r3, r3, #127 ; 0x7f + 802a55e: b2db uxtb r3, r3 + 802a560: 2b00 cmp r3, #0 + 802a562: d10c bne.n 802a57e + 802a564: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 802a568: f9b3 3000 ldrsh.w r3, [r3] + 802a56c: 2b00 cmp r3, #0 + 802a56e: d106 bne.n 802a57e + 802a570: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 802a574: f9b3 3002 ldrsh.w r3, [r3, #2] + 802a578: 2b00 cmp r3, #0 + 802a57a: f000 822b beq.w 802a9d4 uint8_t sec_axis = axis == LV_CHART_AXIS_PRIMARY_Y ? 0 : 1; - 802a612: 79fb ldrb r3, [r7, #7] - 802a614: 2b00 cmp r3, #0 - 802a616: bf14 ite ne - 802a618: 2301 movne r3, #1 - 802a61a: 2300 moveq r3, #0 - 802a61c: b2db uxtb r3, r3 - 802a61e: f887 30bf strb.w r3, [r7, #191] ; 0xbf + 802a57e: 79fb ldrb r3, [r7, #7] + 802a580: 2b00 cmp r3, #0 + 802a582: bf14 ite ne + 802a584: 2301 movne r3, #1 + 802a586: 2300 moveq r3, #0 + 802a588: b2db uxtb r3, r3 + 802a58a: f887 30bf strb.w r3, [r7, #191] ; 0xbf uint32_t i; lv_point_t p1; lv_point_t p2; lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 802a622: 2100 movs r1, #0 - 802a624: 68f8 ldr r0, [r7, #12] - 802a626: f7fd fe52 bl 80282ce - 802a62a: 4603 mov r3, r0 - 802a62c: f8a7 30bc strh.w r3, [r7, #188] ; 0xbc + 802a58e: 2100 movs r1, #0 + 802a590: 68f8 ldr r0, [r7, #12] + 802a592: f7fd fe52 bl 802823a + 802a596: 4603 mov r3, r0 + 802a598: f8a7 30bc strh.w r3, [r7, #188] ; 0xbc lv_coord_t pad_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 802a630: 2100 movs r1, #0 - 802a632: 68f8 ldr r0, [r7, #12] - 802a634: f7fd fdda bl 80281ec - 802a638: 4603 mov r3, r0 - 802a63a: f8a7 30ba strh.w r3, [r7, #186] ; 0xba + 802a59c: 2100 movs r1, #0 + 802a59e: 68f8 ldr r0, [r7, #12] + 802a5a0: f7fd fdda bl 8028158 + 802a5a4: 4603 mov r3, r0 + 802a5a6: f8a7 30ba strh.w r3, [r7, #186] ; 0xba lv_coord_t h = ((int32_t)lv_obj_get_content_height(obj) * chart->zoom_y) >> 8; - 802a63e: 68f8 ldr r0, [r7, #12] - 802a640: f7df fdc9 bl 800a1d6 - 802a644: 4603 mov r3, r0 - 802a646: 461a mov r2, r3 - 802a648: f8d7 30c4 ldr.w r3, [r7, #196] ; 0xc4 - 802a64c: f8b3 3086 ldrh.w r3, [r3, #134] ; 0x86 - 802a650: fb02 f303 mul.w r3, r2, r3 - 802a654: 121b asrs r3, r3, #8 - 802a656: f8a7 30b8 strh.w r3, [r7, #184] ; 0xb8 + 802a5aa: 68f8 ldr r0, [r7, #12] + 802a5ac: f7df fddd bl 800a16a + 802a5b0: 4603 mov r3, r0 + 802a5b2: 461a mov r2, r3 + 802a5b4: f8d7 30c4 ldr.w r3, [r7, #196] ; 0xc4 + 802a5b8: f8b3 3086 ldrh.w r3, [r3, #134] ; 0x86 + 802a5bc: fb02 f303 mul.w r3, r2, r3 + 802a5c0: 121b asrs r3, r3, #8 + 802a5c2: f8a7 30b8 strh.w r3, [r7, #184] ; 0xb8 lv_coord_t y_ofs = obj->coords.y1 + pad_top + border_width - lv_obj_get_scroll_top(obj); - 802a65a: 68fb ldr r3, [r7, #12] - 802a65c: f9b3 3016 ldrsh.w r3, [r3, #22] - 802a660: b29a uxth r2, r3 - 802a662: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba - 802a666: 4413 add r3, r2 - 802a668: b29a uxth r2, r3 - 802a66a: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc - 802a66e: 4413 add r3, r2 - 802a670: b29c uxth r4, r3 - 802a672: 68f8 ldr r0, [r7, #12] - 802a674: f7e1 f9aa bl 800b9cc - 802a678: 4603 mov r3, r0 - 802a67a: b29b uxth r3, r3 - 802a67c: 1ae3 subs r3, r4, r3 - 802a67e: b29b uxth r3, r3 - 802a680: f8a7 30b6 strh.w r3, [r7, #182] ; 0xb6 + 802a5c6: 68fb ldr r3, [r7, #12] + 802a5c8: f9b3 3016 ldrsh.w r3, [r3, #22] + 802a5cc: b29a uxth r2, r3 + 802a5ce: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba + 802a5d2: 4413 add r3, r2 + 802a5d4: b29a uxth r2, r3 + 802a5d6: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc + 802a5da: 4413 add r3, r2 + 802a5dc: b29c uxth r4, r3 + 802a5de: 68f8 ldr r0, [r7, #12] + 802a5e0: f7e1 f9be bl 800b960 + 802a5e4: 4603 mov r3, r0 + 802a5e6: b29b uxth r3, r3 + 802a5e8: 1ae3 subs r3, r4, r3 + 802a5ea: b29b uxth r3, r3 + 802a5ec: f8a7 30b6 strh.w r3, [r7, #182] ; 0xb6 lv_coord_t label_gap; lv_coord_t x_ofs; if(axis == LV_CHART_AXIS_PRIMARY_Y) { - 802a684: 79fb ldrb r3, [r7, #7] - 802a686: 2b00 cmp r3, #0 - 802a688: d10c bne.n 802a6a4 + 802a5f0: 79fb ldrb r3, [r7, #7] + 802a5f2: 2b00 cmp r3, #0 + 802a5f4: d10c bne.n 802a610 label_gap = lv_obj_get_style_pad_left(obj, LV_PART_TICKS); - 802a68a: f44f 21c0 mov.w r1, #393216 ; 0x60000 - 802a68e: 68f8 ldr r0, [r7, #12] - 802a690: f7fd fdd2 bl 8028238 - 802a694: 4603 mov r3, r0 - 802a696: f8a7 30d2 strh.w r3, [r7, #210] ; 0xd2 + 802a5f6: f44f 21c0 mov.w r1, #393216 ; 0x60000 + 802a5fa: 68f8 ldr r0, [r7, #12] + 802a5fc: f7fd fdd2 bl 80281a4 + 802a600: 4603 mov r3, r0 + 802a602: f8a7 30d2 strh.w r3, [r7, #210] ; 0xd2 x_ofs = obj->coords.x1; - 802a69a: 68fb ldr r3, [r7, #12] - 802a69c: 8a9b ldrh r3, [r3, #20] - 802a69e: f8a7 30d0 strh.w r3, [r7, #208] ; 0xd0 - 802a6a2: e00b b.n 802a6bc + 802a606: 68fb ldr r3, [r7, #12] + 802a608: 8a9b ldrh r3, [r3, #20] + 802a60a: f8a7 30d0 strh.w r3, [r7, #208] ; 0xd0 + 802a60e: e00b b.n 802a628 } else { label_gap = lv_obj_get_style_pad_right(obj, LV_PART_TICKS); - 802a6a4: f44f 21c0 mov.w r1, #393216 ; 0x60000 - 802a6a8: 68f8 ldr r0, [r7, #12] - 802a6aa: f7fd fdd8 bl 802825e - 802a6ae: 4603 mov r3, r0 - 802a6b0: f8a7 30d2 strh.w r3, [r7, #210] ; 0xd2 + 802a610: f44f 21c0 mov.w r1, #393216 ; 0x60000 + 802a614: 68f8 ldr r0, [r7, #12] + 802a616: f7fd fdd8 bl 80281ca + 802a61a: 4603 mov r3, r0 + 802a61c: f8a7 30d2 strh.w r3, [r7, #210] ; 0xd2 x_ofs = obj->coords.x2; - 802a6b4: 68fb ldr r3, [r7, #12] - 802a6b6: 8b1b ldrh r3, [r3, #24] - 802a6b8: f8a7 30d0 strh.w r3, [r7, #208] ; 0xd0 + 802a620: 68fb ldr r3, [r7, #12] + 802a622: 8b1b ldrh r3, [r3, #24] + 802a624: f8a7 30d0 strh.w r3, [r7, #208] ; 0xd0 } lv_coord_t major_len = t->major_len; - 802a6bc: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 802a6c0: 881b ldrh r3, [r3, #0] - 802a6c2: f8a7 30ce strh.w r3, [r7, #206] ; 0xce + 802a628: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 802a62c: 881b ldrh r3, [r3, #0] + 802a62e: f8a7 30ce strh.w r3, [r7, #206] ; 0xce lv_coord_t minor_len = t->minor_len; - 802a6c6: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 802a6ca: 885b ldrh r3, [r3, #2] - 802a6cc: f8a7 30cc strh.w r3, [r7, #204] ; 0xcc + 802a632: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 802a636: 885b ldrh r3, [r3, #2] + 802a638: f8a7 30cc strh.w r3, [r7, #204] ; 0xcc /*tick lines on secondary y axis are drawn in other direction*/ if(axis == LV_CHART_AXIS_SECONDARY_Y) { - 802a6d0: 79fb ldrb r3, [r7, #7] - 802a6d2: 2b01 cmp r3, #1 - 802a6d4: d10b bne.n 802a6ee + 802a63c: 79fb ldrb r3, [r7, #7] + 802a63e: 2b01 cmp r3, #1 + 802a640: d10b bne.n 802a65a major_len *= -1; - 802a6d6: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce - 802a6da: 425b negs r3, r3 - 802a6dc: b29b uxth r3, r3 - 802a6de: f8a7 30ce strh.w r3, [r7, #206] ; 0xce + 802a642: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce + 802a646: 425b negs r3, r3 + 802a648: b29b uxth r3, r3 + 802a64a: f8a7 30ce strh.w r3, [r7, #206] ; 0xce minor_len *= -1; - 802a6e2: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc - 802a6e6: 425b negs r3, r3 - 802a6e8: b29b uxth r3, r3 - 802a6ea: f8a7 30cc strh.w r3, [r7, #204] ; 0xcc + 802a64e: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc + 802a652: 425b negs r3, r3 + 802a654: b29b uxth r3, r3 + 802a656: f8a7 30cc strh.w r3, [r7, #204] ; 0xcc } lv_draw_line_dsc_t line_dsc; lv_draw_line_dsc_init(&line_dsc); - 802a6ee: f107 0398 add.w r3, r7, #152 ; 0x98 - 802a6f2: 4618 mov r0, r3 - 802a6f4: f7e8 fc27 bl 8012f46 + 802a65a: f107 0398 add.w r3, r7, #152 ; 0x98 + 802a65e: 4618 mov r0, r3 + 802a660: f7e8 fc27 bl 8012eb2 lv_obj_init_draw_line_dsc(obj, LV_PART_TICKS, &line_dsc); - 802a6f8: f107 0398 add.w r3, r7, #152 ; 0x98 - 802a6fc: 461a mov r2, r3 - 802a6fe: f44f 21c0 mov.w r1, #393216 ; 0x60000 - 802a702: 68f8 ldr r0, [r7, #12] - 802a704: f7de fa30 bl 8008b68 + 802a664: f107 0398 add.w r3, r7, #152 ; 0x98 + 802a668: 461a mov r2, r3 + 802a66a: f44f 21c0 mov.w r1, #393216 ; 0x60000 + 802a66e: 68f8 ldr r0, [r7, #12] + 802a670: f7de fa44 bl 8008afc lv_draw_label_dsc_t label_dsc; lv_draw_label_dsc_init(&label_dsc); - 802a708: f107 0378 add.w r3, r7, #120 ; 0x78 - 802a70c: 4618 mov r0, r3 - 802a70e: f7e7 fd3d bl 801218c + 802a674: f107 0378 add.w r3, r7, #120 ; 0x78 + 802a678: 4618 mov r0, r3 + 802a67a: f7e7 fd3d bl 80120f8 lv_obj_init_draw_label_dsc(obj, LV_PART_TICKS, &label_dsc); - 802a712: f107 0378 add.w r3, r7, #120 ; 0x78 - 802a716: 461a mov r2, r3 - 802a718: f44f 21c0 mov.w r1, #393216 ; 0x60000 - 802a71c: 68f8 ldr r0, [r7, #12] - 802a71e: f7de f940 bl 80089a2 + 802a67e: f107 0378 add.w r3, r7, #120 ; 0x78 + 802a682: 461a mov r2, r3 + 802a684: f44f 21c0 mov.w r1, #393216 ; 0x60000 + 802a688: 68f8 ldr r0, [r7, #12] + 802a68a: f7de f954 bl 8008936 lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 802a722: f107 0330 add.w r3, r7, #48 ; 0x30 - 802a726: 68b9 ldr r1, [r7, #8] - 802a728: 4618 mov r0, r3 - 802a72a: f7de fba0 bl 8008e6e + 802a68e: f107 0330 add.w r3, r7, #48 ; 0x30 + 802a692: 68b9 ldr r1, [r7, #8] + 802a694: 4618 mov r0, r3 + 802a696: f7de fbb4 bl 8008e02 part_draw_dsc.class_p = MY_CLASS; - 802a72e: 4bad ldr r3, [pc, #692] ; (802a9e4 ) - 802a730: 637b str r3, [r7, #52] ; 0x34 + 802a69a: 4bad ldr r3, [pc, #692] ; (802a950 ) + 802a69c: 637b str r3, [r7, #52] ; 0x34 part_draw_dsc.type = LV_CHART_DRAW_PART_TICK_LABEL; - 802a732: 2306 movs r3, #6 - 802a734: 63bb str r3, [r7, #56] ; 0x38 + 802a69e: 2306 movs r3, #6 + 802a6a0: 63bb str r3, [r7, #56] ; 0x38 part_draw_dsc.id = axis; - 802a736: 79fb ldrb r3, [r7, #7] - 802a738: 66bb str r3, [r7, #104] ; 0x68 + 802a6a2: 79fb ldrb r3, [r7, #7] + 802a6a4: 66bb str r3, [r7, #104] ; 0x68 part_draw_dsc.part = LV_PART_TICKS; - 802a73a: f44f 23c0 mov.w r3, #393216 ; 0x60000 - 802a73e: 667b str r3, [r7, #100] ; 0x64 + 802a6a6: f44f 23c0 mov.w r3, #393216 ; 0x60000 + 802a6aa: 667b str r3, [r7, #100] ; 0x64 part_draw_dsc.line_dsc = &line_dsc; - 802a740: f107 0398 add.w r3, r7, #152 ; 0x98 - 802a744: 64bb str r3, [r7, #72] ; 0x48 + 802a6ac: f107 0398 add.w r3, r7, #152 ; 0x98 + 802a6b0: 64bb str r3, [r7, #72] ; 0x48 part_draw_dsc.label_dsc = &label_dsc; - 802a746: f107 0378 add.w r3, r7, #120 ; 0x78 - 802a74a: 647b str r3, [r7, #68] ; 0x44 + 802a6b2: f107 0378 add.w r3, r7, #120 ; 0x78 + 802a6b6: 647b str r3, [r7, #68] ; 0x44 uint32_t total_tick_num = (t->major_cnt - 1) * (t->minor_cnt); - 802a74c: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 802a750: 891b ldrh r3, [r3, #8] - 802a752: f3c3 030e ubfx r3, r3, #0, #15 - 802a756: b29b uxth r3, r3 - 802a758: 3b01 subs r3, #1 - 802a75a: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0 - 802a75e: 88d2 ldrh r2, [r2, #6] - 802a760: f3c2 020e ubfx r2, r2, #0, #15 - 802a764: b292 uxth r2, r2 - 802a766: fb02 f303 mul.w r3, r2, r3 - 802a76a: f8c7 30b0 str.w r3, [r7, #176] ; 0xb0 + 802a6b8: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 802a6bc: 891b ldrh r3, [r3, #8] + 802a6be: f3c3 030e ubfx r3, r3, #0, #15 + 802a6c2: b29b uxth r3, r3 + 802a6c4: 3b01 subs r3, #1 + 802a6c6: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0 + 802a6ca: 88d2 ldrh r2, [r2, #6] + 802a6cc: f3c2 020e ubfx r2, r2, #0, #15 + 802a6d0: b292 uxth r2, r2 + 802a6d2: fb02 f303 mul.w r3, r2, r3 + 802a6d6: f8c7 30b0 str.w r3, [r7, #176] ; 0xb0 for(i = 0; i <= total_tick_num; i++) { - 802a76e: 2300 movs r3, #0 - 802a770: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4 - 802a774: e16e b.n 802aa54 + 802a6da: 2300 movs r3, #0 + 802a6dc: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4 + 802a6e0: e16e b.n 802a9c0 /*draw a line at moving y position*/ p2.y = p1.y = y_ofs + (int32_t)((int32_t)(h - line_dsc.width) * i) / total_tick_num; - 802a776: f9b7 30b8 ldrsh.w r3, [r7, #184] ; 0xb8 - 802a77a: f9b7 209a ldrsh.w r2, [r7, #154] ; 0x9a - 802a77e: 1a9b subs r3, r3, r2 - 802a780: 461a mov r2, r3 - 802a782: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 - 802a786: fb03 f202 mul.w r2, r3, r2 - 802a78a: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 802a78e: fbb2 f3f3 udiv r3, r2, r3 - 802a792: b29a uxth r2, r3 - 802a794: f8b7 30b6 ldrh.w r3, [r7, #182] ; 0xb6 - 802a798: 4413 add r3, r2 - 802a79a: b29b uxth r3, r3 - 802a79c: b21b sxth r3, r3 - 802a79e: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa - 802a7a2: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa - 802a7a6: f8a7 30a6 strh.w r3, [r7, #166] ; 0xa6 + 802a6e2: f9b7 30b8 ldrsh.w r3, [r7, #184] ; 0xb8 + 802a6e6: f9b7 209a ldrsh.w r2, [r7, #154] ; 0x9a + 802a6ea: 1a9b subs r3, r3, r2 + 802a6ec: 461a mov r2, r3 + 802a6ee: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 + 802a6f2: fb03 f202 mul.w r2, r3, r2 + 802a6f6: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 802a6fa: fbb2 f3f3 udiv r3, r2, r3 + 802a6fe: b29a uxth r2, r3 + 802a700: f8b7 30b6 ldrh.w r3, [r7, #182] ; 0xb6 + 802a704: 4413 add r3, r2 + 802a706: b29b uxth r3, r3 + 802a708: b21b sxth r3, r3 + 802a70a: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa + 802a70e: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa + 802a712: f8a7 30a6 strh.w r3, [r7, #166] ; 0xa6 /*first point of the tick*/ p1.x = x_ofs; - 802a7aa: f8b7 30d0 ldrh.w r3, [r7, #208] ; 0xd0 - 802a7ae: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 + 802a716: f8b7 30d0 ldrh.w r3, [r7, #208] ; 0xd0 + 802a71a: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 /*move extra pixel out of chart boundary*/ if(axis == LV_CHART_AXIS_PRIMARY_Y) p1.x--; - 802a7b2: 79fb ldrb r3, [r7, #7] - 802a7b4: 2b00 cmp r3, #0 - 802a7b6: d108 bne.n 802a7ca - 802a7b8: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 - 802a7bc: b29b uxth r3, r3 - 802a7be: 3b01 subs r3, #1 - 802a7c0: b29b uxth r3, r3 - 802a7c2: b21b sxth r3, r3 - 802a7c4: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 - 802a7c8: e007 b.n 802a7da + 802a71e: 79fb ldrb r3, [r7, #7] + 802a720: 2b00 cmp r3, #0 + 802a722: d108 bne.n 802a736 + 802a724: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 + 802a728: b29b uxth r3, r3 + 802a72a: 3b01 subs r3, #1 + 802a72c: b29b uxth r3, r3 + 802a72e: b21b sxth r3, r3 + 802a730: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 + 802a734: e007 b.n 802a746 else p1.x++; - 802a7ca: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 - 802a7ce: b29b uxth r3, r3 - 802a7d0: 3301 adds r3, #1 - 802a7d2: b29b uxth r3, r3 - 802a7d4: b21b sxth r3, r3 - 802a7d6: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 + 802a736: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 + 802a73a: b29b uxth r3, r3 + 802a73c: 3301 adds r3, #1 + 802a73e: b29b uxth r3, r3 + 802a740: b21b sxth r3, r3 + 802a742: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 /*second point of the tick*/ bool major = false; - 802a7da: 2300 movs r3, #0 - 802a7dc: f887 30cb strb.w r3, [r7, #203] ; 0xcb + 802a746: 2300 movs r3, #0 + 802a748: f887 30cb strb.w r3, [r7, #203] ; 0xcb if(i % t->minor_cnt == 0) major = true; - 802a7e0: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 802a7e4: 88db ldrh r3, [r3, #6] - 802a7e6: f3c3 030e ubfx r3, r3, #0, #15 - 802a7ea: b29b uxth r3, r3 - 802a7ec: 461a mov r2, r3 - 802a7ee: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 - 802a7f2: fbb3 f1f2 udiv r1, r3, r2 - 802a7f6: fb01 f202 mul.w r2, r1, r2 - 802a7fa: 1a9b subs r3, r3, r2 - 802a7fc: 2b00 cmp r3, #0 - 802a7fe: d102 bne.n 802a806 - 802a800: 2301 movs r3, #1 - 802a802: f887 30cb strb.w r3, [r7, #203] ; 0xcb + 802a74c: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 802a750: 88db ldrh r3, [r3, #6] + 802a752: f3c3 030e ubfx r3, r3, #0, #15 + 802a756: b29b uxth r3, r3 + 802a758: 461a mov r2, r3 + 802a75a: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 + 802a75e: fbb3 f1f2 udiv r1, r3, r2 + 802a762: fb01 f202 mul.w r2, r1, r2 + 802a766: 1a9b subs r3, r3, r2 + 802a768: 2b00 cmp r3, #0 + 802a76a: d102 bne.n 802a772 + 802a76c: 2301 movs r3, #1 + 802a76e: f887 30cb strb.w r3, [r7, #203] ; 0xcb if(major) p2.x = p1.x - major_len; /*major tick*/ - 802a806: f897 30cb ldrb.w r3, [r7, #203] ; 0xcb - 802a80a: 2b00 cmp r3, #0 - 802a80c: d00a beq.n 802a824 - 802a80e: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 - 802a812: b29a uxth r2, r3 - 802a814: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce - 802a818: 1ad3 subs r3, r2, r3 - 802a81a: b29b uxth r3, r3 - 802a81c: b21b sxth r3, r3 - 802a81e: f8a7 30a4 strh.w r3, [r7, #164] ; 0xa4 - 802a822: e009 b.n 802a838 + 802a772: f897 30cb ldrb.w r3, [r7, #203] ; 0xcb + 802a776: 2b00 cmp r3, #0 + 802a778: d00a beq.n 802a790 + 802a77a: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 + 802a77e: b29a uxth r2, r3 + 802a780: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce + 802a784: 1ad3 subs r3, r2, r3 + 802a786: b29b uxth r3, r3 + 802a788: b21b sxth r3, r3 + 802a78a: f8a7 30a4 strh.w r3, [r7, #164] ; 0xa4 + 802a78e: e009 b.n 802a7a4 else p2.x = p1.x - minor_len; /*minor tick*/ - 802a824: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 - 802a828: b29a uxth r2, r3 - 802a82a: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc - 802a82e: 1ad3 subs r3, r2, r3 - 802a830: b29b uxth r3, r3 - 802a832: b21b sxth r3, r3 - 802a834: f8a7 30a4 strh.w r3, [r7, #164] ; 0xa4 + 802a790: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 + 802a794: b29a uxth r2, r3 + 802a796: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc + 802a79a: 1ad3 subs r3, r2, r3 + 802a79c: b29b uxth r3, r3 + 802a79e: b21b sxth r3, r3 + 802a7a0: f8a7 30a4 strh.w r3, [r7, #164] ; 0xa4 part_draw_dsc.p1 = &p1; - 802a838: f107 03a8 add.w r3, r7, #168 ; 0xa8 - 802a83c: 657b str r3, [r7, #84] ; 0x54 + 802a7a4: f107 03a8 add.w r3, r7, #168 ; 0xa8 + 802a7a8: 657b str r3, [r7, #84] ; 0x54 part_draw_dsc.p2 = &p2; - 802a83e: f107 03a4 add.w r3, r7, #164 ; 0xa4 - 802a842: 65bb str r3, [r7, #88] ; 0x58 + 802a7aa: f107 03a4 add.w r3, r7, #164 ; 0xa4 + 802a7ae: 65bb str r3, [r7, #88] ; 0x58 int32_t tick_value = lv_map(total_tick_num - i, 0, total_tick_num, chart->ymin[sec_axis], chart->ymax[sec_axis]); - 802a844: f8d7 20b0 ldr.w r2, [r7, #176] ; 0xb0 - 802a848: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 - 802a84c: 1ad3 subs r3, r2, r3 - 802a84e: 4618 mov r0, r3 - 802a850: f8d7 10b0 ldr.w r1, [r7, #176] ; 0xb0 - 802a854: f897 30bf ldrb.w r3, [r7, #191] ; 0xbf - 802a858: f8d7 20c4 ldr.w r2, [r7, #196] ; 0xc4 - 802a85c: 3334 adds r3, #52 ; 0x34 - 802a85e: 005b lsls r3, r3, #1 - 802a860: 4413 add r3, r2 - 802a862: f9b3 3004 ldrsh.w r3, [r3, #4] - 802a866: 461c mov r4, r3 - 802a868: f897 20bf ldrb.w r2, [r7, #191] ; 0xbf - 802a86c: f8d7 30c4 ldr.w r3, [r7, #196] ; 0xc4 - 802a870: 3238 adds r2, #56 ; 0x38 - 802a872: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] - 802a876: 9300 str r3, [sp, #0] - 802a878: 4623 mov r3, r4 - 802a87a: 460a mov r2, r1 - 802a87c: 2100 movs r1, #0 - 802a87e: f007 ffd0 bl 8032822 - 802a882: f8c7 00ac str.w r0, [r7, #172] ; 0xac + 802a7b0: f8d7 20b0 ldr.w r2, [r7, #176] ; 0xb0 + 802a7b4: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 + 802a7b8: 1ad3 subs r3, r2, r3 + 802a7ba: 4618 mov r0, r3 + 802a7bc: f8d7 10b0 ldr.w r1, [r7, #176] ; 0xb0 + 802a7c0: f897 30bf ldrb.w r3, [r7, #191] ; 0xbf + 802a7c4: f8d7 20c4 ldr.w r2, [r7, #196] ; 0xc4 + 802a7c8: 3334 adds r3, #52 ; 0x34 + 802a7ca: 005b lsls r3, r3, #1 + 802a7cc: 4413 add r3, r2 + 802a7ce: f9b3 3004 ldrsh.w r3, [r3, #4] + 802a7d2: 461c mov r4, r3 + 802a7d4: f897 20bf ldrb.w r2, [r7, #191] ; 0xbf + 802a7d8: f8d7 30c4 ldr.w r3, [r7, #196] ; 0xc4 + 802a7dc: 3238 adds r2, #56 ; 0x38 + 802a7de: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] + 802a7e2: 9300 str r3, [sp, #0] + 802a7e4: 4623 mov r3, r4 + 802a7e6: 460a mov r2, r1 + 802a7e8: 2100 movs r1, #0 + 802a7ea: f007 ffd0 bl 803278e + 802a7ee: f8c7 00ac str.w r0, [r7, #172] ; 0xac part_draw_dsc.value = tick_value; - 802a886: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802a88a: 673b str r3, [r7, #112] ; 0x70 + 802a7f2: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802a7f6: 673b str r3, [r7, #112] ; 0x70 /*add text only to major tick*/ if(major && t->label_en) { - 802a88c: f897 30cb ldrb.w r3, [r7, #203] ; 0xcb - 802a890: 2b00 cmp r3, #0 - 802a892: f000 8099 beq.w 802a9c8 - 802a896: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 802a89a: 7a5b ldrb r3, [r3, #9] - 802a89c: f023 037f bic.w r3, r3, #127 ; 0x7f - 802a8a0: b2db uxtb r3, r3 - 802a8a2: 2b00 cmp r3, #0 - 802a8a4: f000 8090 beq.w 802a9c8 + 802a7f8: f897 30cb ldrb.w r3, [r7, #203] ; 0xcb + 802a7fc: 2b00 cmp r3, #0 + 802a7fe: f000 8099 beq.w 802a934 + 802a802: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 802a806: 7a5b ldrb r3, [r3, #9] + 802a808: f023 037f bic.w r3, r3, #127 ; 0x7f + 802a80c: b2db uxtb r3, r3 + 802a80e: 2b00 cmp r3, #0 + 802a810: f000 8090 beq.w 802a934 char buf[LV_CHART_LABEL_MAX_TEXT_LENGTH]; lv_snprintf(buf, sizeof(buf), "%" LV_PRId32, tick_value); - 802a8a8: f107 0020 add.w r0, r7, #32 - 802a8ac: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802a8b0: 4a4d ldr r2, [pc, #308] ; (802a9e8 ) - 802a8b2: 2110 movs r1, #16 - 802a8b4: f009 fbf0 bl 8034098 + 802a814: f107 0020 add.w r0, r7, #32 + 802a818: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802a81c: 4a4d ldr r2, [pc, #308] ; (802a954 ) + 802a81e: 2110 movs r1, #16 + 802a820: f009 fbf0 bl 8034004 part_draw_dsc.label_dsc = &label_dsc; - 802a8b8: f107 0378 add.w r3, r7, #120 ; 0x78 - 802a8bc: 647b str r3, [r7, #68] ; 0x44 + 802a824: f107 0378 add.w r3, r7, #120 ; 0x78 + 802a828: 647b str r3, [r7, #68] ; 0x44 part_draw_dsc.text = buf; - 802a8be: f107 0320 add.w r3, r7, #32 - 802a8c2: 65fb str r3, [r7, #92] ; 0x5c + 802a82a: f107 0320 add.w r3, r7, #32 + 802a82e: 65fb str r3, [r7, #92] ; 0x5c part_draw_dsc.text_length = LV_CHART_LABEL_MAX_TEXT_LENGTH; - 802a8c4: 2310 movs r3, #16 - 802a8c6: 663b str r3, [r7, #96] ; 0x60 + 802a830: 2310 movs r3, #16 + 802a832: 663b str r3, [r7, #96] ; 0x60 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 802a8c8: f107 0330 add.w r3, r7, #48 ; 0x30 - 802a8cc: 461a mov r2, r3 - 802a8ce: 211a movs r1, #26 - 802a8d0: 68f8 ldr r0, [r7, #12] - 802a8d2: f7d7 fdd5 bl 8002480 + 802a834: f107 0330 add.w r3, r7, #48 ; 0x30 + 802a838: 461a mov r2, r3 + 802a83a: 211a movs r1, #26 + 802a83c: 68f8 ldr r0, [r7, #12] + 802a83e: f7d7 fde9 bl 8002414 /*reserve appropriate area*/ lv_point_t size; lv_txt_get_size(&size, part_draw_dsc.text, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX, - 802a8d6: 6df9 ldr r1, [r7, #92] ; 0x5c - 802a8d8: 6fba ldr r2, [r7, #120] ; 0x78 - 802a8da: f9b7 408c ldrsh.w r4, [r7, #140] ; 0x8c - 802a8de: f9b7 308a ldrsh.w r3, [r7, #138] ; 0x8a - 802a8e2: f107 001c add.w r0, r7, #28 - 802a8e6: 2500 movs r5, #0 - 802a8e8: 9502 str r5, [sp, #8] - 802a8ea: f641 75ff movw r5, #8191 ; 0x1fff - 802a8ee: 9501 str r5, [sp, #4] - 802a8f0: 9300 str r3, [sp, #0] - 802a8f2: 4623 mov r3, r4 - 802a8f4: f00b fbc9 bl 803608a + 802a842: 6df9 ldr r1, [r7, #92] ; 0x5c + 802a844: 6fba ldr r2, [r7, #120] ; 0x78 + 802a846: f9b7 408c ldrsh.w r4, [r7, #140] ; 0x8c + 802a84a: f9b7 308a ldrsh.w r3, [r7, #138] ; 0x8a + 802a84e: f107 001c add.w r0, r7, #28 + 802a852: 2500 movs r5, #0 + 802a854: 9502 str r5, [sp, #8] + 802a856: f641 75ff movw r5, #8191 ; 0x1fff + 802a85a: 9501 str r5, [sp, #4] + 802a85c: 9300 str r3, [sp, #0] + 802a85e: 4623 mov r3, r4 + 802a860: f00b fbc9 bl 8035ff6 LV_TEXT_FLAG_NONE); /*set the area at some distance of the major tick len left of the tick*/ lv_area_t a; a.y1 = p2.y - size.y / 2; - 802a8f8: f9b7 30a6 ldrsh.w r3, [r7, #166] ; 0xa6 - 802a8fc: b29a uxth r2, r3 - 802a8fe: f9b7 301e ldrsh.w r3, [r7, #30] - 802a902: 0fd9 lsrs r1, r3, #31 - 802a904: 440b add r3, r1 - 802a906: 105b asrs r3, r3, #1 - 802a908: b21b sxth r3, r3 - 802a90a: b29b uxth r3, r3 - 802a90c: 1ad3 subs r3, r2, r3 - 802a90e: b29b uxth r3, r3 - 802a910: b21b sxth r3, r3 - 802a912: 82fb strh r3, [r7, #22] + 802a864: f9b7 30a6 ldrsh.w r3, [r7, #166] ; 0xa6 + 802a868: b29a uxth r2, r3 + 802a86a: f9b7 301e ldrsh.w r3, [r7, #30] + 802a86e: 0fd9 lsrs r1, r3, #31 + 802a870: 440b add r3, r1 + 802a872: 105b asrs r3, r3, #1 + 802a874: b21b sxth r3, r3 + 802a876: b29b uxth r3, r3 + 802a878: 1ad3 subs r3, r2, r3 + 802a87a: b29b uxth r3, r3 + 802a87c: b21b sxth r3, r3 + 802a87e: 82fb strh r3, [r7, #22] a.y2 = p2.y + size.y / 2; - 802a914: f9b7 30a6 ldrsh.w r3, [r7, #166] ; 0xa6 - 802a918: b29a uxth r2, r3 - 802a91a: f9b7 301e ldrsh.w r3, [r7, #30] - 802a91e: 0fd9 lsrs r1, r3, #31 - 802a920: 440b add r3, r1 - 802a922: 105b asrs r3, r3, #1 - 802a924: b21b sxth r3, r3 - 802a926: b29b uxth r3, r3 - 802a928: 4413 add r3, r2 - 802a92a: b29b uxth r3, r3 - 802a92c: b21b sxth r3, r3 - 802a92e: 837b strh r3, [r7, #26] + 802a880: f9b7 30a6 ldrsh.w r3, [r7, #166] ; 0xa6 + 802a884: b29a uxth r2, r3 + 802a886: f9b7 301e ldrsh.w r3, [r7, #30] + 802a88a: 0fd9 lsrs r1, r3, #31 + 802a88c: 440b add r3, r1 + 802a88e: 105b asrs r3, r3, #1 + 802a890: b21b sxth r3, r3 + 802a892: b29b uxth r3, r3 + 802a894: 4413 add r3, r2 + 802a896: b29b uxth r3, r3 + 802a898: b21b sxth r3, r3 + 802a89a: 837b strh r3, [r7, #26] if(!sec_axis) { - 802a930: f897 30bf ldrb.w r3, [r7, #191] ; 0xbf - 802a934: 2b00 cmp r3, #0 - 802a936: d117 bne.n 802a968 + 802a89c: f897 30bf ldrb.w r3, [r7, #191] ; 0xbf + 802a8a0: 2b00 cmp r3, #0 + 802a8a2: d117 bne.n 802a8d4 a.x1 = p2.x - size.x - label_gap; - 802a938: f9b7 30a4 ldrsh.w r3, [r7, #164] ; 0xa4 - 802a93c: b29a uxth r2, r3 - 802a93e: f9b7 301c ldrsh.w r3, [r7, #28] - 802a942: b29b uxth r3, r3 - 802a944: 1ad3 subs r3, r2, r3 - 802a946: b29a uxth r2, r3 - 802a948: f8b7 30d2 ldrh.w r3, [r7, #210] ; 0xd2 - 802a94c: 1ad3 subs r3, r2, r3 - 802a94e: b29b uxth r3, r3 - 802a950: b21b sxth r3, r3 - 802a952: 82bb strh r3, [r7, #20] + 802a8a4: f9b7 30a4 ldrsh.w r3, [r7, #164] ; 0xa4 + 802a8a8: b29a uxth r2, r3 + 802a8aa: f9b7 301c ldrsh.w r3, [r7, #28] + 802a8ae: b29b uxth r3, r3 + 802a8b0: 1ad3 subs r3, r2, r3 + 802a8b2: b29a uxth r2, r3 + 802a8b4: f8b7 30d2 ldrh.w r3, [r7, #210] ; 0xd2 + 802a8b8: 1ad3 subs r3, r2, r3 + 802a8ba: b29b uxth r3, r3 + 802a8bc: b21b sxth r3, r3 + 802a8be: 82bb strh r3, [r7, #20] a.x2 = p2.x - label_gap; - 802a954: f9b7 30a4 ldrsh.w r3, [r7, #164] ; 0xa4 - 802a958: b29a uxth r2, r3 - 802a95a: f8b7 30d2 ldrh.w r3, [r7, #210] ; 0xd2 - 802a95e: 1ad3 subs r3, r2, r3 - 802a960: b29b uxth r3, r3 - 802a962: b21b sxth r3, r3 - 802a964: 833b strh r3, [r7, #24] - 802a966: e016 b.n 802a996 + 802a8c0: f9b7 30a4 ldrsh.w r3, [r7, #164] ; 0xa4 + 802a8c4: b29a uxth r2, r3 + 802a8c6: f8b7 30d2 ldrh.w r3, [r7, #210] ; 0xd2 + 802a8ca: 1ad3 subs r3, r2, r3 + 802a8cc: b29b uxth r3, r3 + 802a8ce: b21b sxth r3, r3 + 802a8d0: 833b strh r3, [r7, #24] + 802a8d2: e016 b.n 802a902 } else { a.x1 = p2.x + label_gap; - 802a968: f9b7 30a4 ldrsh.w r3, [r7, #164] ; 0xa4 - 802a96c: b29a uxth r2, r3 - 802a96e: f8b7 30d2 ldrh.w r3, [r7, #210] ; 0xd2 - 802a972: 4413 add r3, r2 - 802a974: b29b uxth r3, r3 - 802a976: b21b sxth r3, r3 - 802a978: 82bb strh r3, [r7, #20] + 802a8d4: f9b7 30a4 ldrsh.w r3, [r7, #164] ; 0xa4 + 802a8d8: b29a uxth r2, r3 + 802a8da: f8b7 30d2 ldrh.w r3, [r7, #210] ; 0xd2 + 802a8de: 4413 add r3, r2 + 802a8e0: b29b uxth r3, r3 + 802a8e2: b21b sxth r3, r3 + 802a8e4: 82bb strh r3, [r7, #20] a.x2 = p2.x + size.x + label_gap; - 802a97a: f9b7 30a4 ldrsh.w r3, [r7, #164] ; 0xa4 - 802a97e: b29a uxth r2, r3 - 802a980: f9b7 301c ldrsh.w r3, [r7, #28] - 802a984: b29b uxth r3, r3 - 802a986: 4413 add r3, r2 - 802a988: b29a uxth r2, r3 - 802a98a: f8b7 30d2 ldrh.w r3, [r7, #210] ; 0xd2 - 802a98e: 4413 add r3, r2 - 802a990: b29b uxth r3, r3 - 802a992: b21b sxth r3, r3 - 802a994: 833b strh r3, [r7, #24] + 802a8e6: f9b7 30a4 ldrsh.w r3, [r7, #164] ; 0xa4 + 802a8ea: b29a uxth r2, r3 + 802a8ec: f9b7 301c ldrsh.w r3, [r7, #28] + 802a8f0: b29b uxth r3, r3 + 802a8f2: 4413 add r3, r2 + 802a8f4: b29a uxth r2, r3 + 802a8f6: f8b7 30d2 ldrh.w r3, [r7, #210] ; 0xd2 + 802a8fa: 4413 add r3, r2 + 802a8fc: b29b uxth r3, r3 + 802a8fe: b21b sxth r3, r3 + 802a900: 833b strh r3, [r7, #24] } if(a.y2 >= obj->coords.y1 && - 802a996: f9b7 201a ldrsh.w r2, [r7, #26] - 802a99a: 68fb ldr r3, [r7, #12] - 802a99c: f9b3 3016 ldrsh.w r3, [r3, #22] - 802a9a0: 429a cmp r2, r3 - 802a9a2: db23 blt.n 802a9ec + 802a902: f9b7 201a ldrsh.w r2, [r7, #26] + 802a906: 68fb ldr r3, [r7, #12] + 802a908: f9b3 3016 ldrsh.w r3, [r3, #22] + 802a90c: 429a cmp r2, r3 + 802a90e: db23 blt.n 802a958 a.y1 <= obj->coords.y2) { - 802a9a4: f9b7 2016 ldrsh.w r2, [r7, #22] - 802a9a8: 68fb ldr r3, [r7, #12] - 802a9aa: f9b3 301a ldrsh.w r3, [r3, #26] + 802a910: f9b7 2016 ldrsh.w r2, [r7, #22] + 802a914: 68fb ldr r3, [r7, #12] + 802a916: f9b3 301a ldrsh.w r3, [r3, #26] if(a.y2 >= obj->coords.y1 && - 802a9ae: 429a cmp r2, r3 - 802a9b0: dc1c bgt.n 802a9ec + 802a91a: 429a cmp r2, r3 + 802a91c: dc1c bgt.n 802a958 lv_draw_label(draw_ctx, &label_dsc, &a, part_draw_dsc.text, NULL); - 802a9b2: 6dfb ldr r3, [r7, #92] ; 0x5c - 802a9b4: f107 0214 add.w r2, r7, #20 - 802a9b8: f107 0178 add.w r1, r7, #120 ; 0x78 - 802a9bc: 2000 movs r0, #0 - 802a9be: 9000 str r0, [sp, #0] - 802a9c0: 68b8 ldr r0, [r7, #8] - 802a9c2: f7e7 fc0f bl 80121e4 + 802a91e: 6dfb ldr r3, [r7, #92] ; 0x5c + 802a920: f107 0214 add.w r2, r7, #20 + 802a924: f107 0178 add.w r1, r7, #120 ; 0x78 + 802a928: 2000 movs r0, #0 + 802a92a: 9000 str r0, [sp, #0] + 802a92c: 68b8 ldr r0, [r7, #8] + 802a92e: f7e7 fc0f bl 8012150 if(major && t->label_en) { - 802a9c6: e011 b.n 802a9ec + 802a932: e011 b.n 802a958 } } else { part_draw_dsc.label_dsc = NULL; - 802a9c8: 2300 movs r3, #0 - 802a9ca: 647b str r3, [r7, #68] ; 0x44 + 802a934: 2300 movs r3, #0 + 802a936: 647b str r3, [r7, #68] ; 0x44 part_draw_dsc.text = NULL; - 802a9cc: 2300 movs r3, #0 - 802a9ce: 65fb str r3, [r7, #92] ; 0x5c + 802a938: 2300 movs r3, #0 + 802a93a: 65fb str r3, [r7, #92] ; 0x5c part_draw_dsc.text_length = 0; - 802a9d0: 2300 movs r3, #0 - 802a9d2: 663b str r3, [r7, #96] ; 0x60 + 802a93c: 2300 movs r3, #0 + 802a93e: 663b str r3, [r7, #96] ; 0x60 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 802a9d4: f107 0330 add.w r3, r7, #48 ; 0x30 - 802a9d8: 461a mov r2, r3 - 802a9da: 211a movs r1, #26 - 802a9dc: 68f8 ldr r0, [r7, #12] - 802a9de: f7d7 fd4f bl 8002480 - 802a9e2: e004 b.n 802a9ee - 802a9e4: 0806cbf8 .word 0x0806cbf8 - 802a9e8: 08046f8c .word 0x08046f8c + 802a940: f107 0330 add.w r3, r7, #48 ; 0x30 + 802a944: 461a mov r2, r3 + 802a946: 211a movs r1, #26 + 802a948: 68f8 ldr r0, [r7, #12] + 802a94a: f7d7 fd63 bl 8002414 + 802a94e: e004 b.n 802a95a + 802a950: 0806cb50 .word 0x0806cb50 + 802a954: 08046ee4 .word 0x08046ee4 if(major && t->label_en) { - 802a9ec: bf00 nop + 802a958: bf00 nop } if(p1.y + line_dsc.width / 2 >= obj->coords.y1 && - 802a9ee: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa - 802a9f2: 4619 mov r1, r3 - 802a9f4: f9b7 309a ldrsh.w r3, [r7, #154] ; 0x9a - 802a9f8: 0fda lsrs r2, r3, #31 - 802a9fa: 4413 add r3, r2 - 802a9fc: 105b asrs r3, r3, #1 - 802a9fe: b21b sxth r3, r3 - 802aa00: 440b add r3, r1 - 802aa02: 68fa ldr r2, [r7, #12] - 802aa04: f9b2 2016 ldrsh.w r2, [r2, #22] - 802aa08: 4293 cmp r3, r2 - 802aa0a: db17 blt.n 802aa3c + 802a95a: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa + 802a95e: 4619 mov r1, r3 + 802a960: f9b7 309a ldrsh.w r3, [r7, #154] ; 0x9a + 802a964: 0fda lsrs r2, r3, #31 + 802a966: 4413 add r3, r2 + 802a968: 105b asrs r3, r3, #1 + 802a96a: b21b sxth r3, r3 + 802a96c: 440b add r3, r1 + 802a96e: 68fa ldr r2, [r7, #12] + 802a970: f9b2 2016 ldrsh.w r2, [r2, #22] + 802a974: 4293 cmp r3, r2 + 802a976: db17 blt.n 802a9a8 p2.y - line_dsc.width / 2 <= obj->coords.y2) { - 802aa0c: f9b7 30a6 ldrsh.w r3, [r7, #166] ; 0xa6 - 802aa10: 4619 mov r1, r3 - 802aa12: f9b7 309a ldrsh.w r3, [r7, #154] ; 0x9a - 802aa16: 0fda lsrs r2, r3, #31 - 802aa18: 4413 add r3, r2 - 802aa1a: 105b asrs r3, r3, #1 - 802aa1c: b21b sxth r3, r3 - 802aa1e: 1acb subs r3, r1, r3 - 802aa20: 68fa ldr r2, [r7, #12] - 802aa22: f9b2 201a ldrsh.w r2, [r2, #26] + 802a978: f9b7 30a6 ldrsh.w r3, [r7, #166] ; 0xa6 + 802a97c: 4619 mov r1, r3 + 802a97e: f9b7 309a ldrsh.w r3, [r7, #154] ; 0x9a + 802a982: 0fda lsrs r2, r3, #31 + 802a984: 4413 add r3, r2 + 802a986: 105b asrs r3, r3, #1 + 802a988: b21b sxth r3, r3 + 802a98a: 1acb subs r3, r1, r3 + 802a98c: 68fa ldr r2, [r7, #12] + 802a98e: f9b2 201a ldrsh.w r2, [r2, #26] if(p1.y + line_dsc.width / 2 >= obj->coords.y1 && - 802aa26: 4293 cmp r3, r2 - 802aa28: dc08 bgt.n 802aa3c + 802a992: 4293 cmp r3, r2 + 802a994: dc08 bgt.n 802a9a8 lv_draw_line(draw_ctx, &line_dsc, &p1, &p2); - 802aa2a: f107 03a4 add.w r3, r7, #164 ; 0xa4 - 802aa2e: f107 02a8 add.w r2, r7, #168 ; 0xa8 - 802aa32: f107 0198 add.w r1, r7, #152 ; 0x98 - 802aa36: 68b8 ldr r0, [r7, #8] - 802aa38: f7e8 fa9b bl 8012f72 + 802a996: f107 03a4 add.w r3, r7, #164 ; 0xa4 + 802a99a: f107 02a8 add.w r2, r7, #168 ; 0xa8 + 802a99e: f107 0198 add.w r1, r7, #152 ; 0x98 + 802a9a2: 68b8 ldr r0, [r7, #8] + 802a9a4: f7e8 fa9b bl 8012ede } lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 802aa3c: f107 0330 add.w r3, r7, #48 ; 0x30 - 802aa40: 461a mov r2, r3 - 802aa42: 211b movs r1, #27 - 802aa44: 68f8 ldr r0, [r7, #12] - 802aa46: f7d7 fd1b bl 8002480 + 802a9a8: f107 0330 add.w r3, r7, #48 ; 0x30 + 802a9ac: 461a mov r2, r3 + 802a9ae: 211b movs r1, #27 + 802a9b0: 68f8 ldr r0, [r7, #12] + 802a9b2: f7d7 fd2f bl 8002414 for(i = 0; i <= total_tick_num; i++) { - 802aa4a: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 - 802aa4e: 3301 adds r3, #1 - 802aa50: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4 - 802aa54: f8d7 20d4 ldr.w r2, [r7, #212] ; 0xd4 - 802aa58: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 802aa5c: 429a cmp r2, r3 - 802aa5e: f67f ae8a bls.w 802a776 - 802aa62: e002 b.n 802aa6a + 802a9b6: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 + 802a9ba: 3301 adds r3, #1 + 802a9bc: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4 + 802a9c0: f8d7 20d4 ldr.w r2, [r7, #212] ; 0xd4 + 802a9c4: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 802a9c8: 429a cmp r2, r3 + 802a9ca: f67f ae8a bls.w 802a6e2 + 802a9ce: e002 b.n 802a9d6 if(t->major_cnt <= 1) return; - 802aa64: bf00 nop - 802aa66: e000 b.n 802aa6a + 802a9d0: bf00 nop + 802a9d2: e000 b.n 802a9d6 if(!t->label_en && !t->major_len && !t->minor_len) return; - 802aa68: bf00 nop + 802a9d4: bf00 nop } } - 802aa6a: 37d8 adds r7, #216 ; 0xd8 - 802aa6c: 46bd mov sp, r7 - 802aa6e: bdb0 pop {r4, r5, r7, pc} + 802a9d6: 37d8 adds r7, #216 ; 0xd8 + 802a9d8: 46bd mov sp, r7 + 802a9da: bdb0 pop {r4, r5, r7, pc} -0802aa70 : +0802a9dc : static void draw_x_ticks(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, lv_chart_axis_t axis) { - 802aa70: b5b0 push {r4, r5, r7, lr} - 802aa72: b0ba sub sp, #232 ; 0xe8 - 802aa74: af04 add r7, sp, #16 - 802aa76: 60f8 str r0, [r7, #12] - 802aa78: 60b9 str r1, [r7, #8] - 802aa7a: 4613 mov r3, r2 - 802aa7c: 71fb strb r3, [r7, #7] + 802a9dc: b5b0 push {r4, r5, r7, lr} + 802a9de: b0ba sub sp, #232 ; 0xe8 + 802a9e0: af04 add r7, sp, #16 + 802a9e2: 60f8 str r0, [r7, #12] + 802a9e4: 60b9 str r1, [r7, #8] + 802a9e6: 4613 mov r3, r2 + 802a9e8: 71fb strb r3, [r7, #7] lv_chart_t * chart = (lv_chart_t *)obj; - 802aa7e: 68fb ldr r3, [r7, #12] - 802aa80: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0 + 802a9ea: 68fb ldr r3, [r7, #12] + 802a9ec: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0 lv_chart_tick_dsc_t * t = get_tick_gsc(obj, axis); - 802aa84: 79fb ldrb r3, [r7, #7] - 802aa86: 4619 mov r1, r3 - 802aa88: 68f8 ldr r0, [r7, #12] - 802aa8a: f000 fca7 bl 802b3dc - 802aa8e: f8c7 00bc str.w r0, [r7, #188] ; 0xbc + 802a9f0: 79fb ldrb r3, [r7, #7] + 802a9f2: 4619 mov r1, r3 + 802a9f4: 68f8 ldr r0, [r7, #12] + 802a9f6: f000 fca7 bl 802b348 + 802a9fa: f8c7 00bc str.w r0, [r7, #188] ; 0xbc if(t->major_cnt <= 1) return; - 802aa92: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802aa96: 891b ldrh r3, [r3, #8] - 802aa98: f3c3 030e ubfx r3, r3, #0, #15 - 802aa9c: b29b uxth r3, r3 - 802aa9e: 2b01 cmp r3, #1 - 802aaa0: f240 82b2 bls.w 802b008 + 802a9fe: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 802aa02: 891b ldrh r3, [r3, #8] + 802aa04: f3c3 030e ubfx r3, r3, #0, #15 + 802aa08: b29b uxth r3, r3 + 802aa0a: 2b01 cmp r3, #1 + 802aa0c: f240 82b2 bls.w 802af74 if(!t->label_en && !t->major_len && !t->minor_len) return; - 802aaa4: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802aaa8: 7a5b ldrb r3, [r3, #9] - 802aaaa: f023 037f bic.w r3, r3, #127 ; 0x7f - 802aaae: b2db uxtb r3, r3 - 802aab0: 2b00 cmp r3, #0 - 802aab2: d10c bne.n 802aace - 802aab4: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802aab8: f9b3 3000 ldrsh.w r3, [r3] - 802aabc: 2b00 cmp r3, #0 - 802aabe: d106 bne.n 802aace - 802aac0: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802aac4: f9b3 3002 ldrsh.w r3, [r3, #2] - 802aac8: 2b00 cmp r3, #0 - 802aaca: f000 829f beq.w 802b00c + 802aa10: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 802aa14: 7a5b ldrb r3, [r3, #9] + 802aa16: f023 037f bic.w r3, r3, #127 ; 0x7f + 802aa1a: b2db uxtb r3, r3 + 802aa1c: 2b00 cmp r3, #0 + 802aa1e: d10c bne.n 802aa3a + 802aa20: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 802aa24: f9b3 3000 ldrsh.w r3, [r3] + 802aa28: 2b00 cmp r3, #0 + 802aa2a: d106 bne.n 802aa3a + 802aa2c: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 802aa30: f9b3 3002 ldrsh.w r3, [r3, #2] + 802aa34: 2b00 cmp r3, #0 + 802aa36: f000 829f beq.w 802af78 uint32_t i; lv_point_t p1; lv_point_t p2; lv_coord_t pad_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN) + lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 802aace: 2100 movs r1, #0 - 802aad0: 68f8 ldr r0, [r7, #12] - 802aad2: f7fd fbb1 bl 8028238 - 802aad6: 4603 mov r3, r0 - 802aad8: b29c uxth r4, r3 - 802aada: 2100 movs r1, #0 - 802aadc: 68f8 ldr r0, [r7, #12] - 802aade: f7fd fbf6 bl 80282ce - 802aae2: 4603 mov r3, r0 - 802aae4: b29b uxth r3, r3 - 802aae6: 4423 add r3, r4 - 802aae8: b29b uxth r3, r3 - 802aaea: f8a7 30ba strh.w r3, [r7, #186] ; 0xba + 802aa3a: 2100 movs r1, #0 + 802aa3c: 68f8 ldr r0, [r7, #12] + 802aa3e: f7fd fbb1 bl 80281a4 + 802aa42: 4603 mov r3, r0 + 802aa44: b29c uxth r4, r3 + 802aa46: 2100 movs r1, #0 + 802aa48: 68f8 ldr r0, [r7, #12] + 802aa4a: f7fd fbf6 bl 802823a + 802aa4e: 4603 mov r3, r0 + 802aa50: b29b uxth r3, r3 + 802aa52: 4423 add r3, r4 + 802aa54: b29b uxth r3, r3 + 802aa56: f8a7 30ba strh.w r3, [r7, #186] ; 0xba lv_coord_t w = ((int32_t)lv_obj_get_content_width(obj) * chart->zoom_x) >> 8; - 802aaee: 68f8 ldr r0, [r7, #12] - 802aaf0: f7df fb46 bl 800a180 - 802aaf4: 4603 mov r3, r0 - 802aaf6: 461a mov r2, r3 - 802aaf8: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 802aafc: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 - 802ab00: fb02 f303 mul.w r3, r2, r3 - 802ab04: 121b asrs r3, r3, #8 - 802ab06: f8a7 30d2 strh.w r3, [r7, #210] ; 0xd2 + 802aa5a: 68f8 ldr r0, [r7, #12] + 802aa5c: f7df fb5a bl 800a114 + 802aa60: 4603 mov r3, r0 + 802aa62: 461a mov r2, r3 + 802aa64: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 802aa68: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 + 802aa6c: fb02 f303 mul.w r3, r2, r3 + 802aa70: 121b asrs r3, r3, #8 + 802aa72: f8a7 30d2 strh.w r3, [r7, #210] ; 0xd2 lv_draw_label_dsc_t label_dsc; lv_draw_label_dsc_init(&label_dsc); - 802ab0a: f107 0384 add.w r3, r7, #132 ; 0x84 - 802ab0e: 4618 mov r0, r3 - 802ab10: f7e7 fb3c bl 801218c + 802aa76: f107 0384 add.w r3, r7, #132 ; 0x84 + 802aa7a: 4618 mov r0, r3 + 802aa7c: f7e7 fb3c bl 80120f8 lv_obj_init_draw_label_dsc(obj, LV_PART_TICKS, &label_dsc); - 802ab14: f107 0384 add.w r3, r7, #132 ; 0x84 - 802ab18: 461a mov r2, r3 - 802ab1a: f44f 21c0 mov.w r1, #393216 ; 0x60000 - 802ab1e: 68f8 ldr r0, [r7, #12] - 802ab20: f7dd ff3f bl 80089a2 + 802aa80: f107 0384 add.w r3, r7, #132 ; 0x84 + 802aa84: 461a mov r2, r3 + 802aa86: f44f 21c0 mov.w r1, #393216 ; 0x60000 + 802aa8a: 68f8 ldr r0, [r7, #12] + 802aa8c: f7dd ff53 bl 8008936 lv_coord_t x_ofs = obj->coords.x1 + pad_left - lv_obj_get_scroll_left(obj); - 802ab24: 68fb ldr r3, [r7, #12] - 802ab26: f9b3 3014 ldrsh.w r3, [r3, #20] - 802ab2a: b29a uxth r2, r3 - 802ab2c: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba - 802ab30: 4413 add r3, r2 - 802ab32: b29c uxth r4, r3 - 802ab34: 68f8 ldr r0, [r7, #12] - 802ab36: f7e0 ffe7 bl 800bb08 - 802ab3a: 4603 mov r3, r0 - 802ab3c: b29b uxth r3, r3 - 802ab3e: 1ae3 subs r3, r4, r3 - 802ab40: b29b uxth r3, r3 - 802ab42: f8a7 30d0 strh.w r3, [r7, #208] ; 0xd0 + 802aa90: 68fb ldr r3, [r7, #12] + 802aa92: f9b3 3014 ldrsh.w r3, [r3, #20] + 802aa96: b29a uxth r2, r3 + 802aa98: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba + 802aa9c: 4413 add r3, r2 + 802aa9e: b29c uxth r4, r3 + 802aaa0: 68f8 ldr r0, [r7, #12] + 802aaa2: f7e0 fffb bl 800ba9c + 802aaa6: 4603 mov r3, r0 + 802aaa8: b29b uxth r3, r3 + 802aaaa: 1ae3 subs r3, r4, r3 + 802aaac: b29b uxth r3, r3 + 802aaae: f8a7 30d0 strh.w r3, [r7, #208] ; 0xd0 lv_coord_t y_ofs; lv_coord_t label_gap; if(axis == LV_CHART_AXIS_PRIMARY_X) { - 802ab46: 79fb ldrb r3, [r7, #7] - 802ab48: 2b02 cmp r3, #2 - 802ab4a: d116 bne.n 802ab7a + 802aab2: 79fb ldrb r3, [r7, #7] + 802aab4: 2b02 cmp r3, #2 + 802aab6: d116 bne.n 802aae6 label_gap = t->label_en ? lv_obj_get_style_pad_bottom(obj, LV_PART_TICKS) : 0; - 802ab4c: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802ab50: 7a5b ldrb r3, [r3, #9] - 802ab52: f023 037f bic.w r3, r3, #127 ; 0x7f - 802ab56: b2db uxtb r3, r3 - 802ab58: 2b00 cmp r3, #0 - 802ab5a: d006 beq.n 802ab6a - 802ab5c: f44f 21c0 mov.w r1, #393216 ; 0x60000 - 802ab60: 68f8 ldr r0, [r7, #12] - 802ab62: f7fd fb56 bl 8028212 - 802ab66: 4603 mov r3, r0 - 802ab68: e000 b.n 802ab6c - 802ab6a: 2300 movs r3, #0 - 802ab6c: f8a7 30cc strh.w r3, [r7, #204] ; 0xcc + 802aab8: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 802aabc: 7a5b ldrb r3, [r3, #9] + 802aabe: f023 037f bic.w r3, r3, #127 ; 0x7f + 802aac2: b2db uxtb r3, r3 + 802aac4: 2b00 cmp r3, #0 + 802aac6: d006 beq.n 802aad6 + 802aac8: f44f 21c0 mov.w r1, #393216 ; 0x60000 + 802aacc: 68f8 ldr r0, [r7, #12] + 802aace: f7fd fb56 bl 802817e + 802aad2: 4603 mov r3, r0 + 802aad4: e000 b.n 802aad8 + 802aad6: 2300 movs r3, #0 + 802aad8: f8a7 30cc strh.w r3, [r7, #204] ; 0xcc y_ofs = obj->coords.y2; - 802ab70: 68fb ldr r3, [r7, #12] - 802ab72: 8b5b ldrh r3, [r3, #26] - 802ab74: f8a7 30ce strh.w r3, [r7, #206] ; 0xce - 802ab78: e015 b.n 802aba6 + 802aadc: 68fb ldr r3, [r7, #12] + 802aade: 8b5b ldrh r3, [r3, #26] + 802aae0: f8a7 30ce strh.w r3, [r7, #206] ; 0xce + 802aae4: e015 b.n 802ab12 } else { label_gap = t->label_en ? lv_obj_get_style_pad_top(obj, LV_PART_TICKS) : 0; - 802ab7a: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802ab7e: 7a5b ldrb r3, [r3, #9] - 802ab80: f023 037f bic.w r3, r3, #127 ; 0x7f - 802ab84: b2db uxtb r3, r3 - 802ab86: 2b00 cmp r3, #0 - 802ab88: d006 beq.n 802ab98 - 802ab8a: f44f 21c0 mov.w r1, #393216 ; 0x60000 - 802ab8e: 68f8 ldr r0, [r7, #12] - 802ab90: f7fd fb2c bl 80281ec - 802ab94: 4603 mov r3, r0 - 802ab96: e000 b.n 802ab9a - 802ab98: 2300 movs r3, #0 - 802ab9a: f8a7 30cc strh.w r3, [r7, #204] ; 0xcc + 802aae6: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 802aaea: 7a5b ldrb r3, [r3, #9] + 802aaec: f023 037f bic.w r3, r3, #127 ; 0x7f + 802aaf0: b2db uxtb r3, r3 + 802aaf2: 2b00 cmp r3, #0 + 802aaf4: d006 beq.n 802ab04 + 802aaf6: f44f 21c0 mov.w r1, #393216 ; 0x60000 + 802aafa: 68f8 ldr r0, [r7, #12] + 802aafc: f7fd fb2c bl 8028158 + 802ab00: 4603 mov r3, r0 + 802ab02: e000 b.n 802ab06 + 802ab04: 2300 movs r3, #0 + 802ab06: f8a7 30cc strh.w r3, [r7, #204] ; 0xcc y_ofs = obj->coords.y1; - 802ab9e: 68fb ldr r3, [r7, #12] - 802aba0: 8adb ldrh r3, [r3, #22] - 802aba2: f8a7 30ce strh.w r3, [r7, #206] ; 0xce + 802ab0a: 68fb ldr r3, [r7, #12] + 802ab0c: 8adb ldrh r3, [r3, #22] + 802ab0e: f8a7 30ce strh.w r3, [r7, #206] ; 0xce } if(axis == LV_CHART_AXIS_PRIMARY_X) { - 802aba6: 79fb ldrb r3, [r7, #7] - 802aba8: 2b02 cmp r3, #2 - 802abaa: d11e bne.n 802abea + 802ab12: 79fb ldrb r3, [r7, #7] + 802ab14: 2b02 cmp r3, #2 + 802ab16: d11e bne.n 802ab56 if(y_ofs > draw_ctx->clip_area->y2) return; - 802abac: 68bb ldr r3, [r7, #8] - 802abae: 689b ldr r3, [r3, #8] - 802abb0: f9b3 3006 ldrsh.w r3, [r3, #6] - 802abb4: f9b7 20ce ldrsh.w r2, [r7, #206] ; 0xce - 802abb8: 429a cmp r2, r3 - 802abba: f300 8229 bgt.w 802b010 + 802ab18: 68bb ldr r3, [r7, #8] + 802ab1a: 689b ldr r3, [r3, #8] + 802ab1c: f9b3 3006 ldrsh.w r3, [r3, #6] + 802ab20: f9b7 20ce ldrsh.w r2, [r7, #206] ; 0xce + 802ab24: 429a cmp r2, r3 + 802ab26: f300 8229 bgt.w 802af7c if(y_ofs + label_gap + label_dsc.font->line_height + t->major_len < draw_ctx->clip_area->y1) return; - 802abbe: f9b7 20ce ldrsh.w r2, [r7, #206] ; 0xce - 802abc2: f9b7 30cc ldrsh.w r3, [r7, #204] ; 0xcc - 802abc6: 4413 add r3, r2 - 802abc8: f8d7 2084 ldr.w r2, [r7, #132] ; 0x84 - 802abcc: f9b2 2008 ldrsh.w r2, [r2, #8] - 802abd0: 4413 add r3, r2 - 802abd2: f8d7 20bc ldr.w r2, [r7, #188] ; 0xbc - 802abd6: f9b2 2000 ldrsh.w r2, [r2] - 802abda: 4413 add r3, r2 - 802abdc: 68ba ldr r2, [r7, #8] - 802abde: 6892 ldr r2, [r2, #8] - 802abe0: f9b2 2002 ldrsh.w r2, [r2, #2] - 802abe4: 4293 cmp r3, r2 - 802abe6: f2c0 8215 blt.w 802b014 + 802ab2a: f9b7 20ce ldrsh.w r2, [r7, #206] ; 0xce + 802ab2e: f9b7 30cc ldrsh.w r3, [r7, #204] ; 0xcc + 802ab32: 4413 add r3, r2 + 802ab34: f8d7 2084 ldr.w r2, [r7, #132] ; 0x84 + 802ab38: f9b2 2008 ldrsh.w r2, [r2, #8] + 802ab3c: 4413 add r3, r2 + 802ab3e: f8d7 20bc ldr.w r2, [r7, #188] ; 0xbc + 802ab42: f9b2 2000 ldrsh.w r2, [r2] + 802ab46: 4413 add r3, r2 + 802ab48: 68ba ldr r2, [r7, #8] + 802ab4a: 6892 ldr r2, [r2, #8] + 802ab4c: f9b2 2002 ldrsh.w r2, [r2, #2] + 802ab50: 4293 cmp r3, r2 + 802ab52: f2c0 8215 blt.w 802af80 } lv_draw_line_dsc_t line_dsc; lv_draw_line_dsc_init(&line_dsc); - 802abea: f107 0378 add.w r3, r7, #120 ; 0x78 - 802abee: 4618 mov r0, r3 - 802abf0: f7e8 f9a9 bl 8012f46 + 802ab56: f107 0378 add.w r3, r7, #120 ; 0x78 + 802ab5a: 4618 mov r0, r3 + 802ab5c: f7e8 f9a9 bl 8012eb2 lv_obj_init_draw_line_dsc(obj, LV_PART_TICKS, &line_dsc); - 802abf4: f107 0378 add.w r3, r7, #120 ; 0x78 - 802abf8: 461a mov r2, r3 - 802abfa: f44f 21c0 mov.w r1, #393216 ; 0x60000 - 802abfe: 68f8 ldr r0, [r7, #12] - 802ac00: f7dd ffb2 bl 8008b68 + 802ab60: f107 0378 add.w r3, r7, #120 ; 0x78 + 802ab64: 461a mov r2, r3 + 802ab66: f44f 21c0 mov.w r1, #393216 ; 0x60000 + 802ab6a: 68f8 ldr r0, [r7, #12] + 802ab6c: f7dd ffc6 bl 8008afc line_dsc.dash_gap = 0; - 802ac04: 2300 movs r3, #0 - 802ac06: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 802ab70: 2300 movs r3, #0 + 802ab72: f8a7 307e strh.w r3, [r7, #126] ; 0x7e line_dsc.dash_width = 0; - 802ac0a: 2300 movs r3, #0 - 802ac0c: f8a7 307c strh.w r3, [r7, #124] ; 0x7c + 802ab76: 2300 movs r3, #0 + 802ab78: f8a7 307c strh.w r3, [r7, #124] ; 0x7c lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 802ac10: f107 0330 add.w r3, r7, #48 ; 0x30 - 802ac14: 68b9 ldr r1, [r7, #8] - 802ac16: 4618 mov r0, r3 - 802ac18: f7de f929 bl 8008e6e + 802ab7c: f107 0330 add.w r3, r7, #48 ; 0x30 + 802ab80: 68b9 ldr r1, [r7, #8] + 802ab82: 4618 mov r0, r3 + 802ab84: f7de f93d bl 8008e02 part_draw_dsc.class_p = MY_CLASS; - 802ac1c: 4bbd ldr r3, [pc, #756] ; (802af14 ) - 802ac1e: 637b str r3, [r7, #52] ; 0x34 + 802ab88: 4bbd ldr r3, [pc, #756] ; (802ae80 ) + 802ab8a: 637b str r3, [r7, #52] ; 0x34 part_draw_dsc.type = LV_CHART_DRAW_PART_TICK_LABEL; - 802ac20: 2306 movs r3, #6 - 802ac22: 63bb str r3, [r7, #56] ; 0x38 + 802ab8c: 2306 movs r3, #6 + 802ab8e: 63bb str r3, [r7, #56] ; 0x38 part_draw_dsc.id = LV_CHART_AXIS_PRIMARY_X; - 802ac24: 2302 movs r3, #2 - 802ac26: 66bb str r3, [r7, #104] ; 0x68 + 802ab90: 2302 movs r3, #2 + 802ab92: 66bb str r3, [r7, #104] ; 0x68 part_draw_dsc.part = LV_PART_TICKS; - 802ac28: f44f 23c0 mov.w r3, #393216 ; 0x60000 - 802ac2c: 667b str r3, [r7, #100] ; 0x64 + 802ab94: f44f 23c0 mov.w r3, #393216 ; 0x60000 + 802ab98: 667b str r3, [r7, #100] ; 0x64 part_draw_dsc.label_dsc = &label_dsc; - 802ac2e: f107 0384 add.w r3, r7, #132 ; 0x84 - 802ac32: 647b str r3, [r7, #68] ; 0x44 + 802ab9a: f107 0384 add.w r3, r7, #132 ; 0x84 + 802ab9e: 647b str r3, [r7, #68] ; 0x44 part_draw_dsc.line_dsc = &line_dsc; - 802ac34: f107 0378 add.w r3, r7, #120 ; 0x78 - 802ac38: 64bb str r3, [r7, #72] ; 0x48 + 802aba0: f107 0378 add.w r3, r7, #120 ; 0x78 + 802aba4: 64bb str r3, [r7, #72] ; 0x48 uint8_t sec_axis = axis == LV_CHART_AXIS_PRIMARY_X ? 0 : 1; - 802ac3a: 79fb ldrb r3, [r7, #7] - 802ac3c: 2b02 cmp r3, #2 - 802ac3e: bf14 ite ne - 802ac40: 2301 movne r3, #1 - 802ac42: 2300 moveq r3, #0 - 802ac44: b2db uxtb r3, r3 - 802ac46: f887 30b9 strb.w r3, [r7, #185] ; 0xb9 + 802aba6: 79fb ldrb r3, [r7, #7] + 802aba8: 2b02 cmp r3, #2 + 802abaa: bf14 ite ne + 802abac: 2301 movne r3, #1 + 802abae: 2300 moveq r3, #0 + 802abb0: b2db uxtb r3, r3 + 802abb2: f887 30b9 strb.w r3, [r7, #185] ; 0xb9 /*The columns ticks should be aligned to the center of blocks*/ if(chart->type == LV_CHART_TYPE_BAR) { - 802ac4a: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 802ac4e: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 802ac52: f003 0307 and.w r3, r3, #7 - 802ac56: b2db uxtb r3, r3 - 802ac58: 2b02 cmp r3, #2 - 802ac5a: d137 bne.n 802accc + 802abb6: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 802abba: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 802abbe: f003 0307 and.w r3, r3, #7 + 802abc2: b2db uxtb r3, r3 + 802abc4: 2b02 cmp r3, #2 + 802abc6: d137 bne.n 802ac38 int32_t block_gap = ((int32_t)lv_obj_get_style_pad_column(obj, - 802ac5c: 2100 movs r1, #0 - 802ac5e: 68f8 ldr r0, [r7, #12] - 802ac60: f7fd fb10 bl 8028284 - 802ac64: 4603 mov r3, r0 - 802ac66: 461a mov r2, r3 + 802abc8: 2100 movs r1, #0 + 802abca: 68f8 ldr r0, [r7, #12] + 802abcc: f7fd fb10 bl 80281f0 + 802abd0: 4603 mov r3, r0 + 802abd2: 461a mov r2, r3 LV_PART_MAIN) * chart->zoom_x) >> 8; /*Gap between the columns on ~adjacent X*/ - 802ac68: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 802ac6c: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 - 802ac70: fb02 f303 mul.w r3, r2, r3 + 802abd4: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 802abd8: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 + 802abdc: fb02 f303 mul.w r3, r2, r3 int32_t block_gap = ((int32_t)lv_obj_get_style_pad_column(obj, - 802ac74: 121b asrs r3, r3, #8 - 802ac76: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 802abe0: 121b asrs r3, r3, #8 + 802abe2: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 lv_coord_t block_w = (w + block_gap) / (chart->point_cnt); - 802ac7a: f9b7 20d2 ldrsh.w r2, [r7, #210] ; 0xd2 - 802ac7e: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 802ac82: 4413 add r3, r2 - 802ac84: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0 - 802ac88: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 - 802ac8c: fb93 f3f2 sdiv r3, r3, r2 - 802ac90: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 802abe6: f9b7 20d2 ldrsh.w r2, [r7, #210] ; 0xd2 + 802abea: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 802abee: 4413 add r3, r2 + 802abf0: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0 + 802abf4: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 + 802abf8: fb93 f3f2 sdiv r3, r3, r2 + 802abfc: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 x_ofs += (block_w - block_gap) / 2; - 802ac94: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 - 802ac98: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 802ac9c: 1ad3 subs r3, r2, r3 - 802ac9e: 0fda lsrs r2, r3, #31 - 802aca0: 4413 add r3, r2 - 802aca2: 105b asrs r3, r3, #1 - 802aca4: b29a uxth r2, r3 - 802aca6: f8b7 30d0 ldrh.w r3, [r7, #208] ; 0xd0 - 802acaa: 4413 add r3, r2 - 802acac: b29b uxth r3, r3 - 802acae: f8a7 30d0 strh.w r3, [r7, #208] ; 0xd0 + 802ac00: f9b7 20b2 ldrsh.w r2, [r7, #178] ; 0xb2 + 802ac04: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 802ac08: 1ad3 subs r3, r2, r3 + 802ac0a: 0fda lsrs r2, r3, #31 + 802ac0c: 4413 add r3, r2 + 802ac0e: 105b asrs r3, r3, #1 + 802ac10: b29a uxth r2, r3 + 802ac12: f8b7 30d0 ldrh.w r3, [r7, #208] ; 0xd0 + 802ac16: 4413 add r3, r2 + 802ac18: b29b uxth r3, r3 + 802ac1a: f8a7 30d0 strh.w r3, [r7, #208] ; 0xd0 w -= block_w - block_gap; - 802acb2: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 802acb6: b29a uxth r2, r3 - 802acb8: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 - 802acbc: 1ad3 subs r3, r2, r3 - 802acbe: b29a uxth r2, r3 - 802acc0: f8b7 30d2 ldrh.w r3, [r7, #210] ; 0xd2 - 802acc4: 4413 add r3, r2 - 802acc6: b29b uxth r3, r3 - 802acc8: f8a7 30d2 strh.w r3, [r7, #210] ; 0xd2 + 802ac1e: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 802ac22: b29a uxth r2, r3 + 802ac24: f8b7 30b2 ldrh.w r3, [r7, #178] ; 0xb2 + 802ac28: 1ad3 subs r3, r2, r3 + 802ac2a: b29a uxth r2, r3 + 802ac2c: f8b7 30d2 ldrh.w r3, [r7, #210] ; 0xd2 + 802ac30: 4413 add r3, r2 + 802ac32: b29b uxth r3, r3 + 802ac34: f8a7 30d2 strh.w r3, [r7, #210] ; 0xd2 } p1.y = y_ofs; - 802accc: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce - 802acd0: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa + 802ac38: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce + 802ac3c: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa uint32_t total_tick_num = (t->major_cnt - 1) * t->minor_cnt; - 802acd4: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802acd8: 891b ldrh r3, [r3, #8] - 802acda: f3c3 030e ubfx r3, r3, #0, #15 - 802acde: b29b uxth r3, r3 - 802ace0: 3b01 subs r3, #1 - 802ace2: f8d7 20bc ldr.w r2, [r7, #188] ; 0xbc - 802ace6: 88d2 ldrh r2, [r2, #6] - 802ace8: f3c2 020e ubfx r2, r2, #0, #15 - 802acec: b292 uxth r2, r2 - 802acee: fb02 f303 mul.w r3, r2, r3 - 802acf2: f8c7 30ac str.w r3, [r7, #172] ; 0xac + 802ac40: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 802ac44: 891b ldrh r3, [r3, #8] + 802ac46: f3c3 030e ubfx r3, r3, #0, #15 + 802ac4a: b29b uxth r3, r3 + 802ac4c: 3b01 subs r3, #1 + 802ac4e: f8d7 20bc ldr.w r2, [r7, #188] ; 0xbc + 802ac52: 88d2 ldrh r2, [r2, #6] + 802ac54: f3c2 020e ubfx r2, r2, #0, #15 + 802ac58: b292 uxth r2, r2 + 802ac5a: fb02 f303 mul.w r3, r2, r3 + 802ac5e: f8c7 30ac str.w r3, [r7, #172] ; 0xac for(i = 0; i <= total_tick_num; i++) { /*one extra loop - it may not exist in the list, empty label*/ - 802acf6: 2300 movs r3, #0 - 802acf8: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4 - 802acfc: e17c b.n 802aff8 + 802ac62: 2300 movs r3, #0 + 802ac64: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4 + 802ac68: e17c b.n 802af64 bool major = false; - 802acfe: 2300 movs r3, #0 - 802ad00: f887 30cb strb.w r3, [r7, #203] ; 0xcb + 802ac6a: 2300 movs r3, #0 + 802ac6c: f887 30cb strb.w r3, [r7, #203] ; 0xcb if(i % t->minor_cnt == 0) major = true; - 802ad04: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802ad08: 88db ldrh r3, [r3, #6] - 802ad0a: f3c3 030e ubfx r3, r3, #0, #15 - 802ad0e: b29b uxth r3, r3 - 802ad10: 461a mov r2, r3 - 802ad12: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 - 802ad16: fbb3 f1f2 udiv r1, r3, r2 - 802ad1a: fb01 f202 mul.w r2, r1, r2 - 802ad1e: 1a9b subs r3, r3, r2 - 802ad20: 2b00 cmp r3, #0 - 802ad22: d102 bne.n 802ad2a - 802ad24: 2301 movs r3, #1 - 802ad26: f887 30cb strb.w r3, [r7, #203] ; 0xcb + 802ac70: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 802ac74: 88db ldrh r3, [r3, #6] + 802ac76: f3c3 030e ubfx r3, r3, #0, #15 + 802ac7a: b29b uxth r3, r3 + 802ac7c: 461a mov r2, r3 + 802ac7e: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 + 802ac82: fbb3 f1f2 udiv r1, r3, r2 + 802ac86: fb01 f202 mul.w r2, r1, r2 + 802ac8a: 1a9b subs r3, r3, r2 + 802ac8c: 2b00 cmp r3, #0 + 802ac8e: d102 bne.n 802ac96 + 802ac90: 2301 movs r3, #1 + 802ac92: f887 30cb strb.w r3, [r7, #203] ; 0xcb /*draw a line at moving x position*/ p2.x = p1.x = x_ofs + (int32_t)((int32_t)(w - line_dsc.width) * i) / total_tick_num; - 802ad2a: f9b7 30d2 ldrsh.w r3, [r7, #210] ; 0xd2 - 802ad2e: f9b7 207a ldrsh.w r2, [r7, #122] ; 0x7a - 802ad32: 1a9b subs r3, r3, r2 - 802ad34: 461a mov r2, r3 - 802ad36: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 - 802ad3a: fb03 f202 mul.w r2, r3, r2 - 802ad3e: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802ad42: fbb2 f3f3 udiv r3, r2, r3 - 802ad46: b29a uxth r2, r3 - 802ad48: f8b7 30d0 ldrh.w r3, [r7, #208] ; 0xd0 - 802ad4c: 4413 add r3, r2 - 802ad4e: b29b uxth r3, r3 - 802ad50: b21b sxth r3, r3 - 802ad52: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 - 802ad56: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 - 802ad5a: f8a7 30a4 strh.w r3, [r7, #164] ; 0xa4 + 802ac96: f9b7 30d2 ldrsh.w r3, [r7, #210] ; 0xd2 + 802ac9a: f9b7 207a ldrsh.w r2, [r7, #122] ; 0x7a + 802ac9e: 1a9b subs r3, r3, r2 + 802aca0: 461a mov r2, r3 + 802aca2: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 + 802aca6: fb03 f202 mul.w r2, r3, r2 + 802acaa: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802acae: fbb2 f3f3 udiv r3, r2, r3 + 802acb2: b29a uxth r2, r3 + 802acb4: f8b7 30d0 ldrh.w r3, [r7, #208] ; 0xd0 + 802acb8: 4413 add r3, r2 + 802acba: b29b uxth r3, r3 + 802acbc: b21b sxth r3, r3 + 802acbe: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 + 802acc2: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 + 802acc6: f8a7 30a4 strh.w r3, [r7, #164] ; 0xa4 if(sec_axis) p2.y = p1.y - (major ? t->major_len : t->minor_len); - 802ad5e: f897 30b9 ldrb.w r3, [r7, #185] ; 0xb9 - 802ad62: 2b00 cmp r3, #0 - 802ad64: d017 beq.n 802ad96 - 802ad66: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa - 802ad6a: b29a uxth r2, r3 - 802ad6c: f897 30cb ldrb.w r3, [r7, #203] ; 0xcb - 802ad70: 2b00 cmp r3, #0 - 802ad72: d005 beq.n 802ad80 - 802ad74: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802ad78: f9b3 3000 ldrsh.w r3, [r3] - 802ad7c: b29b uxth r3, r3 - 802ad7e: e004 b.n 802ad8a - 802ad80: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802ad84: f9b3 3002 ldrsh.w r3, [r3, #2] - 802ad88: b29b uxth r3, r3 - 802ad8a: 1ad3 subs r3, r2, r3 - 802ad8c: b29b uxth r3, r3 - 802ad8e: b21b sxth r3, r3 - 802ad90: f8a7 30a6 strh.w r3, [r7, #166] ; 0xa6 - 802ad94: e016 b.n 802adc4 + 802acca: f897 30b9 ldrb.w r3, [r7, #185] ; 0xb9 + 802acce: 2b00 cmp r3, #0 + 802acd0: d017 beq.n 802ad02 + 802acd2: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa + 802acd6: b29a uxth r2, r3 + 802acd8: f897 30cb ldrb.w r3, [r7, #203] ; 0xcb + 802acdc: 2b00 cmp r3, #0 + 802acde: d005 beq.n 802acec + 802ace0: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 802ace4: f9b3 3000 ldrsh.w r3, [r3] + 802ace8: b29b uxth r3, r3 + 802acea: e004 b.n 802acf6 + 802acec: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 802acf0: f9b3 3002 ldrsh.w r3, [r3, #2] + 802acf4: b29b uxth r3, r3 + 802acf6: 1ad3 subs r3, r2, r3 + 802acf8: b29b uxth r3, r3 + 802acfa: b21b sxth r3, r3 + 802acfc: f8a7 30a6 strh.w r3, [r7, #166] ; 0xa6 + 802ad00: e016 b.n 802ad30 else p2.y = p1.y + (major ? t->major_len : t->minor_len); - 802ad96: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa - 802ad9a: b29a uxth r2, r3 - 802ad9c: f897 30cb ldrb.w r3, [r7, #203] ; 0xcb - 802ada0: 2b00 cmp r3, #0 - 802ada2: d005 beq.n 802adb0 - 802ada4: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802ada8: f9b3 3000 ldrsh.w r3, [r3] - 802adac: b29b uxth r3, r3 - 802adae: e004 b.n 802adba - 802adb0: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802adb4: f9b3 3002 ldrsh.w r3, [r3, #2] - 802adb8: b29b uxth r3, r3 - 802adba: 4413 add r3, r2 - 802adbc: b29b uxth r3, r3 - 802adbe: b21b sxth r3, r3 - 802adc0: f8a7 30a6 strh.w r3, [r7, #166] ; 0xa6 + 802ad02: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa + 802ad06: b29a uxth r2, r3 + 802ad08: f897 30cb ldrb.w r3, [r7, #203] ; 0xcb + 802ad0c: 2b00 cmp r3, #0 + 802ad0e: d005 beq.n 802ad1c + 802ad10: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 802ad14: f9b3 3000 ldrsh.w r3, [r3] + 802ad18: b29b uxth r3, r3 + 802ad1a: e004 b.n 802ad26 + 802ad1c: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 802ad20: f9b3 3002 ldrsh.w r3, [r3, #2] + 802ad24: b29b uxth r3, r3 + 802ad26: 4413 add r3, r2 + 802ad28: b29b uxth r3, r3 + 802ad2a: b21b sxth r3, r3 + 802ad2c: f8a7 30a6 strh.w r3, [r7, #166] ; 0xa6 part_draw_dsc.p1 = &p1; - 802adc4: f107 03a8 add.w r3, r7, #168 ; 0xa8 - 802adc8: 657b str r3, [r7, #84] ; 0x54 + 802ad30: f107 03a8 add.w r3, r7, #168 ; 0xa8 + 802ad34: 657b str r3, [r7, #84] ; 0x54 part_draw_dsc.p2 = &p2; - 802adca: f107 03a4 add.w r3, r7, #164 ; 0xa4 - 802adce: 65bb str r3, [r7, #88] ; 0x58 + 802ad36: f107 03a4 add.w r3, r7, #164 ; 0xa4 + 802ad3a: 65bb str r3, [r7, #88] ; 0x58 /*add text only to major tick*/ int32_t tick_value; if(chart->type == LV_CHART_TYPE_SCATTER) { - 802add0: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 802add4: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 802add8: f003 0307 and.w r3, r3, #7 - 802addc: b2db uxtb r3, r3 - 802adde: 2b03 cmp r3, #3 - 802ade0: d11d bne.n 802ae1e + 802ad3c: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 802ad40: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 802ad44: f003 0307 and.w r3, r3, #7 + 802ad48: b2db uxtb r3, r3 + 802ad4a: 2b03 cmp r3, #3 + 802ad4c: d11d bne.n 802ad8a tick_value = lv_map(i, 0, total_tick_num, chart->xmin[sec_axis], chart->xmax[sec_axis]); - 802ade2: f8d7 00d4 ldr.w r0, [r7, #212] ; 0xd4 - 802ade6: f8d7 10ac ldr.w r1, [r7, #172] ; 0xac - 802adea: f897 30b9 ldrb.w r3, [r7, #185] ; 0xb9 - 802adee: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0 - 802adf2: 3338 adds r3, #56 ; 0x38 - 802adf4: 005b lsls r3, r3, #1 - 802adf6: 4413 add r3, r2 - 802adf8: f9b3 3004 ldrsh.w r3, [r3, #4] - 802adfc: 461c mov r4, r3 - 802adfe: f897 20b9 ldrb.w r2, [r7, #185] ; 0xb9 - 802ae02: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 - 802ae06: 323c adds r2, #60 ; 0x3c - 802ae08: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] - 802ae0c: 9300 str r3, [sp, #0] - 802ae0e: 4623 mov r3, r4 - 802ae10: 460a mov r2, r1 - 802ae12: 2100 movs r1, #0 - 802ae14: f007 fd05 bl 8032822 - 802ae18: f8c7 00c4 str.w r0, [r7, #196] ; 0xc4 - 802ae1c: e00c b.n 802ae38 + 802ad4e: f8d7 00d4 ldr.w r0, [r7, #212] ; 0xd4 + 802ad52: f8d7 10ac ldr.w r1, [r7, #172] ; 0xac + 802ad56: f897 30b9 ldrb.w r3, [r7, #185] ; 0xb9 + 802ad5a: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0 + 802ad5e: 3338 adds r3, #56 ; 0x38 + 802ad60: 005b lsls r3, r3, #1 + 802ad62: 4413 add r3, r2 + 802ad64: f9b3 3004 ldrsh.w r3, [r3, #4] + 802ad68: 461c mov r4, r3 + 802ad6a: f897 20b9 ldrb.w r2, [r7, #185] ; 0xb9 + 802ad6e: f8d7 30c0 ldr.w r3, [r7, #192] ; 0xc0 + 802ad72: 323c adds r2, #60 ; 0x3c + 802ad74: f933 3012 ldrsh.w r3, [r3, r2, lsl #1] + 802ad78: 9300 str r3, [sp, #0] + 802ad7a: 4623 mov r3, r4 + 802ad7c: 460a mov r2, r1 + 802ad7e: 2100 movs r1, #0 + 802ad80: f007 fd05 bl 803278e + 802ad84: f8c7 00c4 str.w r0, [r7, #196] ; 0xc4 + 802ad88: e00c b.n 802ada4 } else { tick_value = i / t->minor_cnt; - 802ae1e: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802ae22: 88db ldrh r3, [r3, #6] - 802ae24: f3c3 030e ubfx r3, r3, #0, #15 - 802ae28: b29b uxth r3, r3 - 802ae2a: 461a mov r2, r3 - 802ae2c: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 - 802ae30: fbb3 f3f2 udiv r3, r3, r2 - 802ae34: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 + 802ad8a: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 802ad8e: 88db ldrh r3, [r3, #6] + 802ad90: f3c3 030e ubfx r3, r3, #0, #15 + 802ad94: b29b uxth r3, r3 + 802ad96: 461a mov r2, r3 + 802ad98: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 + 802ad9c: fbb3 f3f2 udiv r3, r3, r2 + 802ada0: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 } part_draw_dsc.value = tick_value; - 802ae38: f8d7 30c4 ldr.w r3, [r7, #196] ; 0xc4 - 802ae3c: 673b str r3, [r7, #112] ; 0x70 + 802ada4: f8d7 30c4 ldr.w r3, [r7, #196] ; 0xc4 + 802ada8: 673b str r3, [r7, #112] ; 0x70 if(major && t->label_en) { - 802ae3e: f897 30cb ldrb.w r3, [r7, #203] ; 0xcb - 802ae42: 2b00 cmp r3, #0 - 802ae44: f000 8096 beq.w 802af74 - 802ae48: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 802ae4c: 7a5b ldrb r3, [r3, #9] - 802ae4e: f023 037f bic.w r3, r3, #127 ; 0x7f - 802ae52: b2db uxtb r3, r3 - 802ae54: 2b00 cmp r3, #0 - 802ae56: f000 808d beq.w 802af74 + 802adaa: f897 30cb ldrb.w r3, [r7, #203] ; 0xcb + 802adae: 2b00 cmp r3, #0 + 802adb0: f000 8096 beq.w 802aee0 + 802adb4: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 802adb8: 7a5b ldrb r3, [r3, #9] + 802adba: f023 037f bic.w r3, r3, #127 ; 0x7f + 802adbe: b2db uxtb r3, r3 + 802adc0: 2b00 cmp r3, #0 + 802adc2: f000 808d beq.w 802aee0 char buf[LV_CHART_LABEL_MAX_TEXT_LENGTH]; lv_snprintf(buf, sizeof(buf), "%" LV_PRId32, tick_value); - 802ae5a: f107 0020 add.w r0, r7, #32 - 802ae5e: f8d7 30c4 ldr.w r3, [r7, #196] ; 0xc4 - 802ae62: 4a2d ldr r2, [pc, #180] ; (802af18 ) - 802ae64: 2110 movs r1, #16 - 802ae66: f009 f917 bl 8034098 + 802adc6: f107 0020 add.w r0, r7, #32 + 802adca: f8d7 30c4 ldr.w r3, [r7, #196] ; 0xc4 + 802adce: 4a2d ldr r2, [pc, #180] ; (802ae84 ) + 802add0: 2110 movs r1, #16 + 802add2: f009 f917 bl 8034004 part_draw_dsc.label_dsc = &label_dsc; - 802ae6a: f107 0384 add.w r3, r7, #132 ; 0x84 - 802ae6e: 647b str r3, [r7, #68] ; 0x44 + 802add6: f107 0384 add.w r3, r7, #132 ; 0x84 + 802adda: 647b str r3, [r7, #68] ; 0x44 part_draw_dsc.text = buf; - 802ae70: f107 0320 add.w r3, r7, #32 - 802ae74: 65fb str r3, [r7, #92] ; 0x5c + 802addc: f107 0320 add.w r3, r7, #32 + 802ade0: 65fb str r3, [r7, #92] ; 0x5c part_draw_dsc.text_length = LV_CHART_LABEL_MAX_TEXT_LENGTH; - 802ae76: 2310 movs r3, #16 - 802ae78: 663b str r3, [r7, #96] ; 0x60 + 802ade2: 2310 movs r3, #16 + 802ade4: 663b str r3, [r7, #96] ; 0x60 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 802ae7a: f107 0330 add.w r3, r7, #48 ; 0x30 - 802ae7e: 461a mov r2, r3 - 802ae80: 211a movs r1, #26 - 802ae82: 68f8 ldr r0, [r7, #12] - 802ae84: f7d7 fafc bl 8002480 + 802ade6: f107 0330 add.w r3, r7, #48 ; 0x30 + 802adea: 461a mov r2, r3 + 802adec: 211a movs r1, #26 + 802adee: 68f8 ldr r0, [r7, #12] + 802adf0: f7d7 fb10 bl 8002414 /*reserve appropriate area*/ lv_point_t size; lv_txt_get_size(&size, part_draw_dsc.text, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX, - 802ae88: 6df9 ldr r1, [r7, #92] ; 0x5c - 802ae8a: f8d7 2084 ldr.w r2, [r7, #132] ; 0x84 - 802ae8e: f9b7 4098 ldrsh.w r4, [r7, #152] ; 0x98 - 802ae92: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 - 802ae96: f107 001c add.w r0, r7, #28 - 802ae9a: 2500 movs r5, #0 - 802ae9c: 9502 str r5, [sp, #8] - 802ae9e: f641 75ff movw r5, #8191 ; 0x1fff - 802aea2: 9501 str r5, [sp, #4] - 802aea4: 9300 str r3, [sp, #0] - 802aea6: 4623 mov r3, r4 - 802aea8: f00b f8ef bl 803608a + 802adf4: 6df9 ldr r1, [r7, #92] ; 0x5c + 802adf6: f8d7 2084 ldr.w r2, [r7, #132] ; 0x84 + 802adfa: f9b7 4098 ldrsh.w r4, [r7, #152] ; 0x98 + 802adfe: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 + 802ae02: f107 001c add.w r0, r7, #28 + 802ae06: 2500 movs r5, #0 + 802ae08: 9502 str r5, [sp, #8] + 802ae0a: f641 75ff movw r5, #8191 ; 0x1fff + 802ae0e: 9501 str r5, [sp, #4] + 802ae10: 9300 str r3, [sp, #0] + 802ae12: 4623 mov r3, r4 + 802ae14: f00b f8ef bl 8035ff6 LV_TEXT_FLAG_NONE); /*set the area at some distance of the major tick len under of the tick*/ lv_area_t a; a.x1 = (p2.x - size.x / 2); - 802aeac: f9b7 30a4 ldrsh.w r3, [r7, #164] ; 0xa4 - 802aeb0: b29a uxth r2, r3 - 802aeb2: f9b7 301c ldrsh.w r3, [r7, #28] - 802aeb6: 0fd9 lsrs r1, r3, #31 - 802aeb8: 440b add r3, r1 - 802aeba: 105b asrs r3, r3, #1 - 802aebc: b21b sxth r3, r3 - 802aebe: b29b uxth r3, r3 - 802aec0: 1ad3 subs r3, r2, r3 - 802aec2: b29b uxth r3, r3 - 802aec4: b21b sxth r3, r3 - 802aec6: 82bb strh r3, [r7, #20] + 802ae18: f9b7 30a4 ldrsh.w r3, [r7, #164] ; 0xa4 + 802ae1c: b29a uxth r2, r3 + 802ae1e: f9b7 301c ldrsh.w r3, [r7, #28] + 802ae22: 0fd9 lsrs r1, r3, #31 + 802ae24: 440b add r3, r1 + 802ae26: 105b asrs r3, r3, #1 + 802ae28: b21b sxth r3, r3 + 802ae2a: b29b uxth r3, r3 + 802ae2c: 1ad3 subs r3, r2, r3 + 802ae2e: b29b uxth r3, r3 + 802ae30: b21b sxth r3, r3 + 802ae32: 82bb strh r3, [r7, #20] a.x2 = (p2.x + size.x / 2); - 802aec8: f9b7 30a4 ldrsh.w r3, [r7, #164] ; 0xa4 - 802aecc: b29a uxth r2, r3 - 802aece: f9b7 301c ldrsh.w r3, [r7, #28] - 802aed2: 0fd9 lsrs r1, r3, #31 - 802aed4: 440b add r3, r1 - 802aed6: 105b asrs r3, r3, #1 - 802aed8: b21b sxth r3, r3 - 802aeda: b29b uxth r3, r3 - 802aedc: 4413 add r3, r2 - 802aede: b29b uxth r3, r3 - 802aee0: b21b sxth r3, r3 - 802aee2: 833b strh r3, [r7, #24] + 802ae34: f9b7 30a4 ldrsh.w r3, [r7, #164] ; 0xa4 + 802ae38: b29a uxth r2, r3 + 802ae3a: f9b7 301c ldrsh.w r3, [r7, #28] + 802ae3e: 0fd9 lsrs r1, r3, #31 + 802ae40: 440b add r3, r1 + 802ae42: 105b asrs r3, r3, #1 + 802ae44: b21b sxth r3, r3 + 802ae46: b29b uxth r3, r3 + 802ae48: 4413 add r3, r2 + 802ae4a: b29b uxth r3, r3 + 802ae4c: b21b sxth r3, r3 + 802ae4e: 833b strh r3, [r7, #24] if(sec_axis) { - 802aee4: f897 30b9 ldrb.w r3, [r7, #185] ; 0xb9 - 802aee8: 2b00 cmp r3, #0 - 802aeea: d017 beq.n 802af1c + 802ae50: f897 30b9 ldrb.w r3, [r7, #185] ; 0xb9 + 802ae54: 2b00 cmp r3, #0 + 802ae56: d017 beq.n 802ae88 a.y2 = p2.y - label_gap; - 802aeec: f9b7 30a6 ldrsh.w r3, [r7, #166] ; 0xa6 - 802aef0: b29a uxth r2, r3 - 802aef2: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc - 802aef6: 1ad3 subs r3, r2, r3 - 802aef8: b29b uxth r3, r3 - 802aefa: b21b sxth r3, r3 - 802aefc: 837b strh r3, [r7, #26] + 802ae58: f9b7 30a6 ldrsh.w r3, [r7, #166] ; 0xa6 + 802ae5c: b29a uxth r2, r3 + 802ae5e: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc + 802ae62: 1ad3 subs r3, r2, r3 + 802ae64: b29b uxth r3, r3 + 802ae66: b21b sxth r3, r3 + 802ae68: 837b strh r3, [r7, #26] a.y1 = a.y2 - size.y; - 802aefe: f9b7 301a ldrsh.w r3, [r7, #26] - 802af02: b29a uxth r2, r3 - 802af04: f9b7 301e ldrsh.w r3, [r7, #30] - 802af08: b29b uxth r3, r3 - 802af0a: 1ad3 subs r3, r2, r3 - 802af0c: b29b uxth r3, r3 - 802af0e: b21b sxth r3, r3 - 802af10: 82fb strh r3, [r7, #22] - 802af12: e016 b.n 802af42 - 802af14: 0806cbf8 .word 0x0806cbf8 - 802af18: 08046f8c .word 0x08046f8c + 802ae6a: f9b7 301a ldrsh.w r3, [r7, #26] + 802ae6e: b29a uxth r2, r3 + 802ae70: f9b7 301e ldrsh.w r3, [r7, #30] + 802ae74: b29b uxth r3, r3 + 802ae76: 1ad3 subs r3, r2, r3 + 802ae78: b29b uxth r3, r3 + 802ae7a: b21b sxth r3, r3 + 802ae7c: 82fb strh r3, [r7, #22] + 802ae7e: e016 b.n 802aeae + 802ae80: 0806cb50 .word 0x0806cb50 + 802ae84: 08046ee4 .word 0x08046ee4 } else { a.y1 = p2.y + label_gap; - 802af1c: f9b7 30a6 ldrsh.w r3, [r7, #166] ; 0xa6 - 802af20: b29a uxth r2, r3 - 802af22: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc - 802af26: 4413 add r3, r2 - 802af28: b29b uxth r3, r3 - 802af2a: b21b sxth r3, r3 - 802af2c: 82fb strh r3, [r7, #22] + 802ae88: f9b7 30a6 ldrsh.w r3, [r7, #166] ; 0xa6 + 802ae8c: b29a uxth r2, r3 + 802ae8e: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc + 802ae92: 4413 add r3, r2 + 802ae94: b29b uxth r3, r3 + 802ae96: b21b sxth r3, r3 + 802ae98: 82fb strh r3, [r7, #22] a.y2 = a.y1 + size.y; - 802af2e: f9b7 3016 ldrsh.w r3, [r7, #22] - 802af32: b29a uxth r2, r3 - 802af34: f9b7 301e ldrsh.w r3, [r7, #30] - 802af38: b29b uxth r3, r3 - 802af3a: 4413 add r3, r2 - 802af3c: b29b uxth r3, r3 - 802af3e: b21b sxth r3, r3 - 802af40: 837b strh r3, [r7, #26] + 802ae9a: f9b7 3016 ldrsh.w r3, [r7, #22] + 802ae9e: b29a uxth r2, r3 + 802aea0: f9b7 301e ldrsh.w r3, [r7, #30] + 802aea4: b29b uxth r3, r3 + 802aea6: 4413 add r3, r2 + 802aea8: b29b uxth r3, r3 + 802aeaa: b21b sxth r3, r3 + 802aeac: 837b strh r3, [r7, #26] } if(a.x2 >= obj->coords.x1 && - 802af42: f9b7 2018 ldrsh.w r2, [r7, #24] - 802af46: 68fb ldr r3, [r7, #12] - 802af48: f9b3 3014 ldrsh.w r3, [r3, #20] - 802af4c: 429a cmp r2, r3 - 802af4e: db1f blt.n 802af90 + 802aeae: f9b7 2018 ldrsh.w r2, [r7, #24] + 802aeb2: 68fb ldr r3, [r7, #12] + 802aeb4: f9b3 3014 ldrsh.w r3, [r3, #20] + 802aeb8: 429a cmp r2, r3 + 802aeba: db1f blt.n 802aefc a.x1 <= obj->coords.x2) { - 802af50: f9b7 2014 ldrsh.w r2, [r7, #20] - 802af54: 68fb ldr r3, [r7, #12] - 802af56: f9b3 3018 ldrsh.w r3, [r3, #24] + 802aebc: f9b7 2014 ldrsh.w r2, [r7, #20] + 802aec0: 68fb ldr r3, [r7, #12] + 802aec2: f9b3 3018 ldrsh.w r3, [r3, #24] if(a.x2 >= obj->coords.x1 && - 802af5a: 429a cmp r2, r3 - 802af5c: dc18 bgt.n 802af90 + 802aec6: 429a cmp r2, r3 + 802aec8: dc18 bgt.n 802aefc lv_draw_label(draw_ctx, &label_dsc, &a, part_draw_dsc.text, NULL); - 802af5e: 6dfb ldr r3, [r7, #92] ; 0x5c - 802af60: f107 0214 add.w r2, r7, #20 - 802af64: f107 0184 add.w r1, r7, #132 ; 0x84 - 802af68: 2000 movs r0, #0 - 802af6a: 9000 str r0, [sp, #0] - 802af6c: 68b8 ldr r0, [r7, #8] - 802af6e: f7e7 f939 bl 80121e4 + 802aeca: 6dfb ldr r3, [r7, #92] ; 0x5c + 802aecc: f107 0214 add.w r2, r7, #20 + 802aed0: f107 0184 add.w r1, r7, #132 ; 0x84 + 802aed4: 2000 movs r0, #0 + 802aed6: 9000 str r0, [sp, #0] + 802aed8: 68b8 ldr r0, [r7, #8] + 802aeda: f7e7 f939 bl 8012150 if(major && t->label_en) { - 802af72: e00d b.n 802af90 + 802aede: e00d b.n 802aefc } } else { part_draw_dsc.label_dsc = NULL; - 802af74: 2300 movs r3, #0 - 802af76: 647b str r3, [r7, #68] ; 0x44 + 802aee0: 2300 movs r3, #0 + 802aee2: 647b str r3, [r7, #68] ; 0x44 part_draw_dsc.text = NULL; - 802af78: 2300 movs r3, #0 - 802af7a: 65fb str r3, [r7, #92] ; 0x5c + 802aee4: 2300 movs r3, #0 + 802aee6: 65fb str r3, [r7, #92] ; 0x5c part_draw_dsc.text_length = 0; - 802af7c: 2300 movs r3, #0 - 802af7e: 663b str r3, [r7, #96] ; 0x60 + 802aee8: 2300 movs r3, #0 + 802aeea: 663b str r3, [r7, #96] ; 0x60 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 802af80: f107 0330 add.w r3, r7, #48 ; 0x30 - 802af84: 461a mov r2, r3 - 802af86: 211a movs r1, #26 - 802af88: 68f8 ldr r0, [r7, #12] - 802af8a: f7d7 fa79 bl 8002480 - 802af8e: e000 b.n 802af92 + 802aeec: f107 0330 add.w r3, r7, #48 ; 0x30 + 802aef0: 461a mov r2, r3 + 802aef2: 211a movs r1, #26 + 802aef4: 68f8 ldr r0, [r7, #12] + 802aef6: f7d7 fa8d bl 8002414 + 802aefa: e000 b.n 802aefe if(major && t->label_en) { - 802af90: bf00 nop + 802aefc: bf00 nop } if(p1.x + line_dsc.width / 2 >= obj->coords.x1 && - 802af92: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 - 802af96: 4619 mov r1, r3 - 802af98: f9b7 307a ldrsh.w r3, [r7, #122] ; 0x7a - 802af9c: 0fda lsrs r2, r3, #31 - 802af9e: 4413 add r3, r2 - 802afa0: 105b asrs r3, r3, #1 - 802afa2: b21b sxth r3, r3 - 802afa4: 440b add r3, r1 - 802afa6: 68fa ldr r2, [r7, #12] - 802afa8: f9b2 2014 ldrsh.w r2, [r2, #20] - 802afac: 4293 cmp r3, r2 - 802afae: db17 blt.n 802afe0 + 802aefe: f9b7 30a8 ldrsh.w r3, [r7, #168] ; 0xa8 + 802af02: 4619 mov r1, r3 + 802af04: f9b7 307a ldrsh.w r3, [r7, #122] ; 0x7a + 802af08: 0fda lsrs r2, r3, #31 + 802af0a: 4413 add r3, r2 + 802af0c: 105b asrs r3, r3, #1 + 802af0e: b21b sxth r3, r3 + 802af10: 440b add r3, r1 + 802af12: 68fa ldr r2, [r7, #12] + 802af14: f9b2 2014 ldrsh.w r2, [r2, #20] + 802af18: 4293 cmp r3, r2 + 802af1a: db17 blt.n 802af4c p2.x - line_dsc.width / 2 <= obj->coords.x2) { - 802afb0: f9b7 30a4 ldrsh.w r3, [r7, #164] ; 0xa4 - 802afb4: 4619 mov r1, r3 - 802afb6: f9b7 307a ldrsh.w r3, [r7, #122] ; 0x7a - 802afba: 0fda lsrs r2, r3, #31 - 802afbc: 4413 add r3, r2 - 802afbe: 105b asrs r3, r3, #1 - 802afc0: b21b sxth r3, r3 - 802afc2: 1acb subs r3, r1, r3 - 802afc4: 68fa ldr r2, [r7, #12] - 802afc6: f9b2 2018 ldrsh.w r2, [r2, #24] + 802af1c: f9b7 30a4 ldrsh.w r3, [r7, #164] ; 0xa4 + 802af20: 4619 mov r1, r3 + 802af22: f9b7 307a ldrsh.w r3, [r7, #122] ; 0x7a + 802af26: 0fda lsrs r2, r3, #31 + 802af28: 4413 add r3, r2 + 802af2a: 105b asrs r3, r3, #1 + 802af2c: b21b sxth r3, r3 + 802af2e: 1acb subs r3, r1, r3 + 802af30: 68fa ldr r2, [r7, #12] + 802af32: f9b2 2018 ldrsh.w r2, [r2, #24] if(p1.x + line_dsc.width / 2 >= obj->coords.x1 && - 802afca: 4293 cmp r3, r2 - 802afcc: dc08 bgt.n 802afe0 + 802af36: 4293 cmp r3, r2 + 802af38: dc08 bgt.n 802af4c lv_draw_line(draw_ctx, &line_dsc, &p1, &p2); - 802afce: f107 03a4 add.w r3, r7, #164 ; 0xa4 - 802afd2: f107 02a8 add.w r2, r7, #168 ; 0xa8 - 802afd6: f107 0178 add.w r1, r7, #120 ; 0x78 - 802afda: 68b8 ldr r0, [r7, #8] - 802afdc: f7e7 ffc9 bl 8012f72 + 802af3a: f107 03a4 add.w r3, r7, #164 ; 0xa4 + 802af3e: f107 02a8 add.w r2, r7, #168 ; 0xa8 + 802af42: f107 0178 add.w r1, r7, #120 ; 0x78 + 802af46: 68b8 ldr r0, [r7, #8] + 802af48: f7e7 ffc9 bl 8012ede } lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 802afe0: f107 0330 add.w r3, r7, #48 ; 0x30 - 802afe4: 461a mov r2, r3 - 802afe6: 211b movs r1, #27 - 802afe8: 68f8 ldr r0, [r7, #12] - 802afea: f7d7 fa49 bl 8002480 + 802af4c: f107 0330 add.w r3, r7, #48 ; 0x30 + 802af50: 461a mov r2, r3 + 802af52: 211b movs r1, #27 + 802af54: 68f8 ldr r0, [r7, #12] + 802af56: f7d7 fa5d bl 8002414 for(i = 0; i <= total_tick_num; i++) { /*one extra loop - it may not exist in the list, empty label*/ - 802afee: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 - 802aff2: 3301 adds r3, #1 - 802aff4: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4 - 802aff8: f8d7 20d4 ldr.w r2, [r7, #212] ; 0xd4 - 802affc: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802b000: 429a cmp r2, r3 - 802b002: f67f ae7c bls.w 802acfe - 802b006: e006 b.n 802b016 + 802af5a: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 + 802af5e: 3301 adds r3, #1 + 802af60: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4 + 802af64: f8d7 20d4 ldr.w r2, [r7, #212] ; 0xd4 + 802af68: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802af6c: 429a cmp r2, r3 + 802af6e: f67f ae7c bls.w 802ac6a + 802af72: e006 b.n 802af82 if(t->major_cnt <= 1) return; - 802b008: bf00 nop - 802b00a: e004 b.n 802b016 + 802af74: bf00 nop + 802af76: e004 b.n 802af82 if(!t->label_en && !t->major_len && !t->minor_len) return; - 802b00c: bf00 nop - 802b00e: e002 b.n 802b016 + 802af78: bf00 nop + 802af7a: e002 b.n 802af82 if(y_ofs > draw_ctx->clip_area->y2) return; - 802b010: bf00 nop - 802b012: e000 b.n 802b016 + 802af7c: bf00 nop + 802af7e: e000 b.n 802af82 if(y_ofs + label_gap + label_dsc.font->line_height + t->major_len < draw_ctx->clip_area->y1) return; - 802b014: bf00 nop + 802af80: bf00 nop } } - 802b016: 37d8 adds r7, #216 ; 0xd8 - 802b018: 46bd mov sp, r7 - 802b01a: bdb0 pop {r4, r5, r7, pc} + 802af82: 37d8 adds r7, #216 ; 0xd8 + 802af84: 46bd mov sp, r7 + 802af86: bdb0 pop {r4, r5, r7, pc} -0802b01c : +0802af88 : static void draw_axes(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx) { - 802b01c: b580 push {r7, lr} - 802b01e: b082 sub sp, #8 - 802b020: af00 add r7, sp, #0 - 802b022: 6078 str r0, [r7, #4] - 802b024: 6039 str r1, [r7, #0] + 802af88: b580 push {r7, lr} + 802af8a: b082 sub sp, #8 + 802af8c: af00 add r7, sp, #0 + 802af8e: 6078 str r0, [r7, #4] + 802af90: 6039 str r1, [r7, #0] draw_y_ticks(obj, draw_ctx, LV_CHART_AXIS_PRIMARY_Y); - 802b026: 2200 movs r2, #0 - 802b028: 6839 ldr r1, [r7, #0] - 802b02a: 6878 ldr r0, [r7, #4] - 802b02c: f7ff fac2 bl 802a5b4 + 802af92: 2200 movs r2, #0 + 802af94: 6839 ldr r1, [r7, #0] + 802af96: 6878 ldr r0, [r7, #4] + 802af98: f7ff fac2 bl 802a520 draw_y_ticks(obj, draw_ctx, LV_CHART_AXIS_SECONDARY_Y); - 802b030: 2201 movs r2, #1 - 802b032: 6839 ldr r1, [r7, #0] - 802b034: 6878 ldr r0, [r7, #4] - 802b036: f7ff fabd bl 802a5b4 + 802af9c: 2201 movs r2, #1 + 802af9e: 6839 ldr r1, [r7, #0] + 802afa0: 6878 ldr r0, [r7, #4] + 802afa2: f7ff fabd bl 802a520 draw_x_ticks(obj, draw_ctx, LV_CHART_AXIS_PRIMARY_X); - 802b03a: 2202 movs r2, #2 - 802b03c: 6839 ldr r1, [r7, #0] - 802b03e: 6878 ldr r0, [r7, #4] - 802b040: f7ff fd16 bl 802aa70 + 802afa6: 2202 movs r2, #2 + 802afa8: 6839 ldr r1, [r7, #0] + 802afaa: 6878 ldr r0, [r7, #4] + 802afac: f7ff fd16 bl 802a9dc draw_x_ticks(obj, draw_ctx, LV_CHART_AXIS_SECONDARY_X); - 802b044: 2204 movs r2, #4 - 802b046: 6839 ldr r1, [r7, #0] - 802b048: 6878 ldr r0, [r7, #4] - 802b04a: f7ff fd11 bl 802aa70 + 802afb0: 2204 movs r2, #4 + 802afb2: 6839 ldr r1, [r7, #0] + 802afb4: 6878 ldr r0, [r7, #4] + 802afb6: f7ff fd11 bl 802a9dc } - 802b04e: bf00 nop - 802b050: 3708 adds r7, #8 - 802b052: 46bd mov sp, r7 - 802b054: bd80 pop {r7, pc} + 802afba: bf00 nop + 802afbc: 3708 adds r7, #8 + 802afbe: 46bd mov sp, r7 + 802afc0: bd80 pop {r7, pc} -0802b056 : +0802afc2 : * @param chart pointer to a chart object * @param coord the coordination of the point relative to the series area. * @return the found index */ static uint32_t get_index_from_x(lv_obj_t * obj, lv_coord_t x) { - 802b056: b580 push {r7, lr} - 802b058: b084 sub sp, #16 - 802b05a: af00 add r7, sp, #0 - 802b05c: 6078 str r0, [r7, #4] - 802b05e: 460b mov r3, r1 - 802b060: 807b strh r3, [r7, #2] + 802afc2: b580 push {r7, lr} + 802afc4: b084 sub sp, #16 + 802afc6: af00 add r7, sp, #0 + 802afc8: 6078 str r0, [r7, #4] + 802afca: 460b mov r3, r1 + 802afcc: 807b strh r3, [r7, #2] lv_chart_t * chart = (lv_chart_t *)obj; - 802b062: 687b ldr r3, [r7, #4] - 802b064: 60fb str r3, [r7, #12] + 802afce: 687b ldr r3, [r7, #4] + 802afd0: 60fb str r3, [r7, #12] lv_coord_t w = ((int32_t)lv_obj_get_content_width(obj) * chart->zoom_x) >> 8; - 802b066: 6878 ldr r0, [r7, #4] - 802b068: f7df f88a bl 800a180 - 802b06c: 4603 mov r3, r0 - 802b06e: 461a mov r2, r3 - 802b070: 68fb ldr r3, [r7, #12] - 802b072: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 - 802b076: fb02 f303 mul.w r3, r2, r3 - 802b07a: 121b asrs r3, r3, #8 - 802b07c: 817b strh r3, [r7, #10] + 802afd2: 6878 ldr r0, [r7, #4] + 802afd4: f7df f89e bl 800a114 + 802afd8: 4603 mov r3, r0 + 802afda: 461a mov r2, r3 + 802afdc: 68fb ldr r3, [r7, #12] + 802afde: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 + 802afe2: fb02 f303 mul.w r3, r2, r3 + 802afe6: 121b asrs r3, r3, #8 + 802afe8: 817b strh r3, [r7, #10] lv_coord_t pad_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 802b07e: 2100 movs r1, #0 - 802b080: 6878 ldr r0, [r7, #4] - 802b082: f7fd f8d9 bl 8028238 - 802b086: 4603 mov r3, r0 - 802b088: 813b strh r3, [r7, #8] + 802afea: 2100 movs r1, #0 + 802afec: 6878 ldr r0, [r7, #4] + 802afee: f7fd f8d9 bl 80281a4 + 802aff2: 4603 mov r3, r0 + 802aff4: 813b strh r3, [r7, #8] x -= pad_left; - 802b08a: 887a ldrh r2, [r7, #2] - 802b08c: 893b ldrh r3, [r7, #8] - 802b08e: 1ad3 subs r3, r2, r3 - 802b090: b29b uxth r3, r3 - 802b092: 807b strh r3, [r7, #2] + 802aff6: 887a ldrh r2, [r7, #2] + 802aff8: 893b ldrh r3, [r7, #8] + 802affa: 1ad3 subs r3, r2, r3 + 802affc: b29b uxth r3, r3 + 802affe: 807b strh r3, [r7, #2] if(x < 0) return 0; - 802b094: f9b7 3002 ldrsh.w r3, [r7, #2] - 802b098: 2b00 cmp r3, #0 - 802b09a: da01 bge.n 802b0a0 - 802b09c: 2300 movs r3, #0 - 802b09e: e03b b.n 802b118 + 802b000: f9b7 3002 ldrsh.w r3, [r7, #2] + 802b004: 2b00 cmp r3, #0 + 802b006: da01 bge.n 802b00c + 802b008: 2300 movs r3, #0 + 802b00a: e03b b.n 802b084 if(x > w) return chart->point_cnt - 1; - 802b0a0: f9b7 2002 ldrsh.w r2, [r7, #2] - 802b0a4: f9b7 300a ldrsh.w r3, [r7, #10] - 802b0a8: 429a cmp r2, r3 - 802b0aa: dd04 ble.n 802b0b6 - 802b0ac: 68fb ldr r3, [r7, #12] - 802b0ae: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 802b0b2: 3b01 subs r3, #1 - 802b0b4: e030 b.n 802b118 + 802b00c: f9b7 2002 ldrsh.w r2, [r7, #2] + 802b010: f9b7 300a ldrsh.w r3, [r7, #10] + 802b014: 429a cmp r2, r3 + 802b016: dd04 ble.n 802b022 + 802b018: 68fb ldr r3, [r7, #12] + 802b01a: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 802b01e: 3b01 subs r3, #1 + 802b020: e030 b.n 802b084 if(chart->type == LV_CHART_TYPE_LINE) return (x * (chart->point_cnt - 1) + w / 2) / w; - 802b0b6: 68fb ldr r3, [r7, #12] - 802b0b8: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 802b0bc: f003 0307 and.w r3, r3, #7 - 802b0c0: b2db uxtb r3, r3 - 802b0c2: 2b01 cmp r3, #1 - 802b0c4: d113 bne.n 802b0ee - 802b0c6: f9b7 3002 ldrsh.w r3, [r7, #2] - 802b0ca: 68fa ldr r2, [r7, #12] - 802b0cc: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 - 802b0d0: 3a01 subs r2, #1 - 802b0d2: fb03 f202 mul.w r2, r3, r2 - 802b0d6: f9b7 300a ldrsh.w r3, [r7, #10] - 802b0da: 0fd9 lsrs r1, r3, #31 - 802b0dc: 440b add r3, r1 - 802b0de: 105b asrs r3, r3, #1 - 802b0e0: b21b sxth r3, r3 - 802b0e2: 441a add r2, r3 - 802b0e4: f9b7 300a ldrsh.w r3, [r7, #10] - 802b0e8: fb92 f3f3 sdiv r3, r2, r3 - 802b0ec: e014 b.n 802b118 + 802b022: 68fb ldr r3, [r7, #12] + 802b024: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 802b028: f003 0307 and.w r3, r3, #7 + 802b02c: b2db uxtb r3, r3 + 802b02e: 2b01 cmp r3, #1 + 802b030: d113 bne.n 802b05a + 802b032: f9b7 3002 ldrsh.w r3, [r7, #2] + 802b036: 68fa ldr r2, [r7, #12] + 802b038: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 + 802b03c: 3a01 subs r2, #1 + 802b03e: fb03 f202 mul.w r2, r3, r2 + 802b042: f9b7 300a ldrsh.w r3, [r7, #10] + 802b046: 0fd9 lsrs r1, r3, #31 + 802b048: 440b add r3, r1 + 802b04a: 105b asrs r3, r3, #1 + 802b04c: b21b sxth r3, r3 + 802b04e: 441a add r2, r3 + 802b050: f9b7 300a ldrsh.w r3, [r7, #10] + 802b054: fb92 f3f3 sdiv r3, r2, r3 + 802b058: e014 b.n 802b084 if(chart->type == LV_CHART_TYPE_BAR) return (x * chart->point_cnt) / w; - 802b0ee: 68fb ldr r3, [r7, #12] - 802b0f0: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 802b0f4: f003 0307 and.w r3, r3, #7 - 802b0f8: b2db uxtb r3, r3 - 802b0fa: 2b02 cmp r3, #2 - 802b0fc: d10b bne.n 802b116 - 802b0fe: f9b7 3002 ldrsh.w r3, [r7, #2] - 802b102: 68fa ldr r2, [r7, #12] - 802b104: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 - 802b108: fb03 f202 mul.w r2, r3, r2 - 802b10c: f9b7 300a ldrsh.w r3, [r7, #10] - 802b110: fb92 f3f3 sdiv r3, r2, r3 - 802b114: e000 b.n 802b118 + 802b05a: 68fb ldr r3, [r7, #12] + 802b05c: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 802b060: f003 0307 and.w r3, r3, #7 + 802b064: b2db uxtb r3, r3 + 802b066: 2b02 cmp r3, #2 + 802b068: d10b bne.n 802b082 + 802b06a: f9b7 3002 ldrsh.w r3, [r7, #2] + 802b06e: 68fa ldr r2, [r7, #12] + 802b070: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 + 802b074: fb03 f202 mul.w r2, r3, r2 + 802b078: f9b7 300a ldrsh.w r3, [r7, #10] + 802b07c: fb92 f3f3 sdiv r3, r2, r3 + 802b080: e000 b.n 802b084 return 0; - 802b116: 2300 movs r3, #0 + 802b082: 2300 movs r3, #0 } - 802b118: 4618 mov r0, r3 - 802b11a: 3710 adds r7, #16 - 802b11c: 46bd mov sp, r7 - 802b11e: bd80 pop {r7, pc} + 802b084: 4618 mov r0, r3 + 802b086: 3710 adds r7, #16 + 802b088: 46bd mov sp, r7 + 802b08a: bd80 pop {r7, pc} -0802b120 : +0802b08c : static void invalidate_point(lv_obj_t * obj, uint16_t i) { - 802b120: b590 push {r4, r7, lr} - 802b122: b08f sub sp, #60 ; 0x3c - 802b124: af00 add r7, sp, #0 - 802b126: 6078 str r0, [r7, #4] - 802b128: 460b mov r3, r1 - 802b12a: 807b strh r3, [r7, #2] + 802b08c: b590 push {r4, r7, lr} + 802b08e: b08f sub sp, #60 ; 0x3c + 802b090: af00 add r7, sp, #0 + 802b092: 6078 str r0, [r7, #4] + 802b094: 460b mov r3, r1 + 802b096: 807b strh r3, [r7, #2] lv_chart_t * chart = (lv_chart_t *)obj; - 802b12c: 687b ldr r3, [r7, #4] - 802b12e: 637b str r3, [r7, #52] ; 0x34 + 802b098: 687b ldr r3, [r7, #4] + 802b09a: 637b str r3, [r7, #52] ; 0x34 if(i >= chart->point_cnt) return; - 802b130: 6b7b ldr r3, [r7, #52] ; 0x34 - 802b132: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 802b136: 887a ldrh r2, [r7, #2] - 802b138: 429a cmp r2, r3 - 802b13a: f080 814b bcs.w 802b3d4 + 802b09c: 6b7b ldr r3, [r7, #52] ; 0x34 + 802b09e: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 802b0a2: 887a ldrh r2, [r7, #2] + 802b0a4: 429a cmp r2, r3 + 802b0a6: f080 814b bcs.w 802b340 lv_coord_t w = ((int32_t)lv_obj_get_content_width(obj) * chart->zoom_x) >> 8; - 802b13e: 6878 ldr r0, [r7, #4] - 802b140: f7df f81e bl 800a180 - 802b144: 4603 mov r3, r0 - 802b146: 461a mov r2, r3 - 802b148: 6b7b ldr r3, [r7, #52] ; 0x34 - 802b14a: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 - 802b14e: fb02 f303 mul.w r3, r2, r3 - 802b152: 121b asrs r3, r3, #8 - 802b154: 867b strh r3, [r7, #50] ; 0x32 + 802b0aa: 6878 ldr r0, [r7, #4] + 802b0ac: f7df f832 bl 800a114 + 802b0b0: 4603 mov r3, r0 + 802b0b2: 461a mov r2, r3 + 802b0b4: 6b7b ldr r3, [r7, #52] ; 0x34 + 802b0b6: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 + 802b0ba: fb02 f303 mul.w r3, r2, r3 + 802b0be: 121b asrs r3, r3, #8 + 802b0c0: 867b strh r3, [r7, #50] ; 0x32 lv_coord_t scroll_left = lv_obj_get_scroll_left(obj); - 802b156: 6878 ldr r0, [r7, #4] - 802b158: f7e0 fcd6 bl 800bb08 - 802b15c: 4603 mov r3, r0 - 802b15e: 863b strh r3, [r7, #48] ; 0x30 + 802b0c2: 6878 ldr r0, [r7, #4] + 802b0c4: f7e0 fcea bl 800ba9c + 802b0c8: 4603 mov r3, r0 + 802b0ca: 863b strh r3, [r7, #48] ; 0x30 /*In shift mode the whole chart changes so the whole object*/ if(chart->update_mode == LV_CHART_UPDATE_MODE_SHIFT) { - 802b160: 6b7b ldr r3, [r7, #52] ; 0x34 - 802b162: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 802b166: f003 0308 and.w r3, r3, #8 - 802b16a: b2db uxtb r3, r3 - 802b16c: 2b00 cmp r3, #0 - 802b16e: d103 bne.n 802b178 + 802b0cc: 6b7b ldr r3, [r7, #52] ; 0x34 + 802b0ce: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 802b0d2: f003 0308 and.w r3, r3, #8 + 802b0d6: b2db uxtb r3, r3 + 802b0d8: 2b00 cmp r3, #0 + 802b0da: d103 bne.n 802b0e4 lv_obj_invalidate(obj); - 802b170: 6878 ldr r0, [r7, #4] - 802b172: f7df fc9e bl 800aab2 + 802b0dc: 6878 ldr r0, [r7, #4] + 802b0de: f7df fcb2 bl 800aa46 return; - 802b176: e12e b.n 802b3d6 + 802b0e2: e12e b.n 802b342 } if(chart->type == LV_CHART_TYPE_LINE) { - 802b178: 6b7b ldr r3, [r7, #52] ; 0x34 - 802b17a: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 802b17e: f003 0307 and.w r3, r3, #7 - 802b182: b2db uxtb r3, r3 - 802b184: 2b01 cmp r3, #1 - 802b186: f040 80bd bne.w 802b304 + 802b0e4: 6b7b ldr r3, [r7, #52] ; 0x34 + 802b0e6: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 802b0ea: f003 0307 and.w r3, r3, #7 + 802b0ee: b2db uxtb r3, r3 + 802b0f0: 2b01 cmp r3, #1 + 802b0f2: f040 80bd bne.w 802b270 lv_coord_t bwidth = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 802b18a: 2100 movs r1, #0 - 802b18c: 6878 ldr r0, [r7, #4] - 802b18e: f7fd f89e bl 80282ce - 802b192: 4603 mov r3, r0 - 802b194: 84fb strh r3, [r7, #38] ; 0x26 + 802b0f6: 2100 movs r1, #0 + 802b0f8: 6878 ldr r0, [r7, #4] + 802b0fa: f7fd f89e bl 802823a + 802b0fe: 4603 mov r3, r0 + 802b100: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t pleft = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 802b196: 2100 movs r1, #0 - 802b198: 6878 ldr r0, [r7, #4] - 802b19a: f7fd f84d bl 8028238 - 802b19e: 4603 mov r3, r0 - 802b1a0: 84bb strh r3, [r7, #36] ; 0x24 + 802b102: 2100 movs r1, #0 + 802b104: 6878 ldr r0, [r7, #4] + 802b106: f7fd f84d bl 80281a4 + 802b10a: 4603 mov r3, r0 + 802b10c: 84bb strh r3, [r7, #36] ; 0x24 lv_coord_t x_ofs = obj->coords.x1 + pleft + bwidth - scroll_left; - 802b1a2: 687b ldr r3, [r7, #4] - 802b1a4: f9b3 3014 ldrsh.w r3, [r3, #20] - 802b1a8: b29a uxth r2, r3 - 802b1aa: 8cbb ldrh r3, [r7, #36] ; 0x24 - 802b1ac: 4413 add r3, r2 - 802b1ae: b29a uxth r2, r3 - 802b1b0: 8cfb ldrh r3, [r7, #38] ; 0x26 - 802b1b2: 4413 add r3, r2 - 802b1b4: b29a uxth r2, r3 - 802b1b6: 8e3b ldrh r3, [r7, #48] ; 0x30 - 802b1b8: 1ad3 subs r3, r2, r3 - 802b1ba: b29b uxth r3, r3 - 802b1bc: 847b strh r3, [r7, #34] ; 0x22 + 802b10e: 687b ldr r3, [r7, #4] + 802b110: f9b3 3014 ldrsh.w r3, [r3, #20] + 802b114: b29a uxth r2, r3 + 802b116: 8cbb ldrh r3, [r7, #36] ; 0x24 + 802b118: 4413 add r3, r2 + 802b11a: b29a uxth r2, r3 + 802b11c: 8cfb ldrh r3, [r7, #38] ; 0x26 + 802b11e: 4413 add r3, r2 + 802b120: b29a uxth r2, r3 + 802b122: 8e3b ldrh r3, [r7, #48] ; 0x30 + 802b124: 1ad3 subs r3, r2, r3 + 802b126: b29b uxth r3, r3 + 802b128: 847b strh r3, [r7, #34] ; 0x22 lv_coord_t line_width = lv_obj_get_style_line_width(obj, LV_PART_ITEMS); - 802b1be: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 802b1c2: 6878 ldr r0, [r7, #4] - 802b1c4: f7fd f8a8 bl 8028318 - 802b1c8: 4603 mov r3, r0 - 802b1ca: 843b strh r3, [r7, #32] + 802b12a: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 802b12e: 6878 ldr r0, [r7, #4] + 802b130: f7fd f8a8 bl 8028284 + 802b134: 4603 mov r3, r0 + 802b136: 843b strh r3, [r7, #32] lv_coord_t point_w = lv_obj_get_style_width(obj, LV_PART_INDICATOR); - 802b1cc: f44f 3100 mov.w r1, #131072 ; 0x20000 - 802b1d0: 6878 ldr r0, [r7, #4] - 802b1d2: f7fc ffe5 bl 80281a0 - 802b1d6: 4603 mov r3, r0 - 802b1d8: 83fb strh r3, [r7, #30] + 802b138: f44f 3100 mov.w r1, #131072 ; 0x20000 + 802b13c: 6878 ldr r0, [r7, #4] + 802b13e: f7fc ffe5 bl 802810c + 802b142: 4603 mov r3, r0 + 802b144: 83fb strh r3, [r7, #30] lv_area_t coords; lv_area_copy(&coords, &obj->coords); - 802b1da: 687b ldr r3, [r7, #4] - 802b1dc: f103 0214 add.w r2, r3, #20 - 802b1e0: f107 0314 add.w r3, r7, #20 - 802b1e4: 4611 mov r1, r2 - 802b1e6: 4618 mov r0, r3 - 802b1e8: f7fc ffbc bl 8028164 + 802b146: 687b ldr r3, [r7, #4] + 802b148: f103 0214 add.w r2, r3, #20 + 802b14c: f107 0314 add.w r3, r7, #20 + 802b150: 4611 mov r1, r2 + 802b152: 4618 mov r0, r3 + 802b154: f7fc ffbc bl 80280d0 coords.y1 -= line_width + point_w; - 802b1ec: f9b7 3016 ldrsh.w r3, [r7, #22] - 802b1f0: b29a uxth r2, r3 - 802b1f2: 8c39 ldrh r1, [r7, #32] - 802b1f4: 8bfb ldrh r3, [r7, #30] - 802b1f6: 440b add r3, r1 - 802b1f8: b29b uxth r3, r3 - 802b1fa: 1ad3 subs r3, r2, r3 - 802b1fc: b29b uxth r3, r3 - 802b1fe: b21b sxth r3, r3 - 802b200: 82fb strh r3, [r7, #22] + 802b158: f9b7 3016 ldrsh.w r3, [r7, #22] + 802b15c: b29a uxth r2, r3 + 802b15e: 8c39 ldrh r1, [r7, #32] + 802b160: 8bfb ldrh r3, [r7, #30] + 802b162: 440b add r3, r1 + 802b164: b29b uxth r3, r3 + 802b166: 1ad3 subs r3, r2, r3 + 802b168: b29b uxth r3, r3 + 802b16a: b21b sxth r3, r3 + 802b16c: 82fb strh r3, [r7, #22] coords.y2 += line_width + point_w; - 802b202: f9b7 301a ldrsh.w r3, [r7, #26] - 802b206: b29a uxth r2, r3 - 802b208: 8c39 ldrh r1, [r7, #32] - 802b20a: 8bfb ldrh r3, [r7, #30] - 802b20c: 440b add r3, r1 - 802b20e: b29b uxth r3, r3 - 802b210: 4413 add r3, r2 - 802b212: b29b uxth r3, r3 - 802b214: b21b sxth r3, r3 - 802b216: 837b strh r3, [r7, #26] + 802b16e: f9b7 301a ldrsh.w r3, [r7, #26] + 802b172: b29a uxth r2, r3 + 802b174: 8c39 ldrh r1, [r7, #32] + 802b176: 8bfb ldrh r3, [r7, #30] + 802b178: 440b add r3, r1 + 802b17a: b29b uxth r3, r3 + 802b17c: 4413 add r3, r2 + 802b17e: b29b uxth r3, r3 + 802b180: b21b sxth r3, r3 + 802b182: 837b strh r3, [r7, #26] if(i < chart->point_cnt - 1) { - 802b218: 887a ldrh r2, [r7, #2] - 802b21a: 6b7b ldr r3, [r7, #52] ; 0x34 - 802b21c: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 802b220: 3b01 subs r3, #1 - 802b222: 429a cmp r2, r3 - 802b224: da34 bge.n 802b290 + 802b184: 887a ldrh r2, [r7, #2] + 802b186: 6b7b ldr r3, [r7, #52] ; 0x34 + 802b188: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 802b18c: 3b01 subs r3, #1 + 802b18e: 429a cmp r2, r3 + 802b190: da34 bge.n 802b1fc coords.x1 = ((w * i) / (chart->point_cnt - 1)) + x_ofs - line_width - point_w; - 802b226: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 802b22a: 887a ldrh r2, [r7, #2] - 802b22c: fb03 f202 mul.w r2, r3, r2 - 802b230: 6b7b ldr r3, [r7, #52] ; 0x34 - 802b232: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 802b236: 3b01 subs r3, #1 - 802b238: fb92 f3f3 sdiv r3, r2, r3 - 802b23c: b29a uxth r2, r3 - 802b23e: 8c7b ldrh r3, [r7, #34] ; 0x22 - 802b240: 4413 add r3, r2 - 802b242: b29a uxth r2, r3 - 802b244: 8c3b ldrh r3, [r7, #32] - 802b246: 1ad3 subs r3, r2, r3 - 802b248: b29a uxth r2, r3 - 802b24a: 8bfb ldrh r3, [r7, #30] - 802b24c: 1ad3 subs r3, r2, r3 - 802b24e: b29b uxth r3, r3 - 802b250: b21b sxth r3, r3 - 802b252: 82bb strh r3, [r7, #20] + 802b192: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 802b196: 887a ldrh r2, [r7, #2] + 802b198: fb03 f202 mul.w r2, r3, r2 + 802b19c: 6b7b ldr r3, [r7, #52] ; 0x34 + 802b19e: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 802b1a2: 3b01 subs r3, #1 + 802b1a4: fb92 f3f3 sdiv r3, r2, r3 + 802b1a8: b29a uxth r2, r3 + 802b1aa: 8c7b ldrh r3, [r7, #34] ; 0x22 + 802b1ac: 4413 add r3, r2 + 802b1ae: b29a uxth r2, r3 + 802b1b0: 8c3b ldrh r3, [r7, #32] + 802b1b2: 1ad3 subs r3, r2, r3 + 802b1b4: b29a uxth r2, r3 + 802b1b6: 8bfb ldrh r3, [r7, #30] + 802b1b8: 1ad3 subs r3, r2, r3 + 802b1ba: b29b uxth r3, r3 + 802b1bc: b21b sxth r3, r3 + 802b1be: 82bb strh r3, [r7, #20] coords.x2 = ((w * (i + 1)) / (chart->point_cnt - 1)) + x_ofs + line_width + point_w; - 802b254: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 802b258: 887a ldrh r2, [r7, #2] - 802b25a: 3201 adds r2, #1 - 802b25c: fb03 f202 mul.w r2, r3, r2 - 802b260: 6b7b ldr r3, [r7, #52] ; 0x34 - 802b262: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 802b266: 3b01 subs r3, #1 - 802b268: fb92 f3f3 sdiv r3, r2, r3 - 802b26c: b29a uxth r2, r3 - 802b26e: 8c7b ldrh r3, [r7, #34] ; 0x22 - 802b270: 4413 add r3, r2 - 802b272: b29a uxth r2, r3 - 802b274: 8c3b ldrh r3, [r7, #32] - 802b276: 4413 add r3, r2 - 802b278: b29a uxth r2, r3 - 802b27a: 8bfb ldrh r3, [r7, #30] - 802b27c: 4413 add r3, r2 - 802b27e: b29b uxth r3, r3 - 802b280: b21b sxth r3, r3 - 802b282: 833b strh r3, [r7, #24] + 802b1c0: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 802b1c4: 887a ldrh r2, [r7, #2] + 802b1c6: 3201 adds r2, #1 + 802b1c8: fb03 f202 mul.w r2, r3, r2 + 802b1cc: 6b7b ldr r3, [r7, #52] ; 0x34 + 802b1ce: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 802b1d2: 3b01 subs r3, #1 + 802b1d4: fb92 f3f3 sdiv r3, r2, r3 + 802b1d8: b29a uxth r2, r3 + 802b1da: 8c7b ldrh r3, [r7, #34] ; 0x22 + 802b1dc: 4413 add r3, r2 + 802b1de: b29a uxth r2, r3 + 802b1e0: 8c3b ldrh r3, [r7, #32] + 802b1e2: 4413 add r3, r2 + 802b1e4: b29a uxth r2, r3 + 802b1e6: 8bfb ldrh r3, [r7, #30] + 802b1e8: 4413 add r3, r2 + 802b1ea: b29b uxth r3, r3 + 802b1ec: b21b sxth r3, r3 + 802b1ee: 833b strh r3, [r7, #24] lv_obj_invalidate_area(obj, &coords); - 802b284: f107 0314 add.w r3, r7, #20 - 802b288: 4619 mov r1, r3 - 802b28a: 6878 ldr r0, [r7, #4] - 802b28c: f7df fbed bl 800aa6a + 802b1f0: f107 0314 add.w r3, r7, #20 + 802b1f4: 4619 mov r1, r3 + 802b1f6: 6878 ldr r0, [r7, #4] + 802b1f8: f7df fc01 bl 800a9fe } if(i > 0) { - 802b290: 887b ldrh r3, [r7, #2] - 802b292: 2b00 cmp r3, #0 - 802b294: f000 809f beq.w 802b3d6 + 802b1fc: 887b ldrh r3, [r7, #2] + 802b1fe: 2b00 cmp r3, #0 + 802b200: f000 809f beq.w 802b342 coords.x1 = ((w * (i - 1)) / (chart->point_cnt - 1)) + x_ofs - line_width - point_w; - 802b298: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 802b29c: 887a ldrh r2, [r7, #2] - 802b29e: 3a01 subs r2, #1 - 802b2a0: fb03 f202 mul.w r2, r3, r2 - 802b2a4: 6b7b ldr r3, [r7, #52] ; 0x34 - 802b2a6: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 802b2aa: 3b01 subs r3, #1 - 802b2ac: fb92 f3f3 sdiv r3, r2, r3 - 802b2b0: b29a uxth r2, r3 - 802b2b2: 8c7b ldrh r3, [r7, #34] ; 0x22 - 802b2b4: 4413 add r3, r2 - 802b2b6: b29a uxth r2, r3 - 802b2b8: 8c3b ldrh r3, [r7, #32] - 802b2ba: 1ad3 subs r3, r2, r3 - 802b2bc: b29a uxth r2, r3 - 802b2be: 8bfb ldrh r3, [r7, #30] - 802b2c0: 1ad3 subs r3, r2, r3 - 802b2c2: b29b uxth r3, r3 - 802b2c4: b21b sxth r3, r3 - 802b2c6: 82bb strh r3, [r7, #20] + 802b204: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 802b208: 887a ldrh r2, [r7, #2] + 802b20a: 3a01 subs r2, #1 + 802b20c: fb03 f202 mul.w r2, r3, r2 + 802b210: 6b7b ldr r3, [r7, #52] ; 0x34 + 802b212: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 802b216: 3b01 subs r3, #1 + 802b218: fb92 f3f3 sdiv r3, r2, r3 + 802b21c: b29a uxth r2, r3 + 802b21e: 8c7b ldrh r3, [r7, #34] ; 0x22 + 802b220: 4413 add r3, r2 + 802b222: b29a uxth r2, r3 + 802b224: 8c3b ldrh r3, [r7, #32] + 802b226: 1ad3 subs r3, r2, r3 + 802b228: b29a uxth r2, r3 + 802b22a: 8bfb ldrh r3, [r7, #30] + 802b22c: 1ad3 subs r3, r2, r3 + 802b22e: b29b uxth r3, r3 + 802b230: b21b sxth r3, r3 + 802b232: 82bb strh r3, [r7, #20] coords.x2 = ((w * i) / (chart->point_cnt - 1)) + x_ofs + line_width + point_w; - 802b2c8: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 802b2cc: 887a ldrh r2, [r7, #2] - 802b2ce: fb03 f202 mul.w r2, r3, r2 - 802b2d2: 6b7b ldr r3, [r7, #52] ; 0x34 - 802b2d4: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 - 802b2d8: 3b01 subs r3, #1 - 802b2da: fb92 f3f3 sdiv r3, r2, r3 - 802b2de: b29a uxth r2, r3 - 802b2e0: 8c7b ldrh r3, [r7, #34] ; 0x22 - 802b2e2: 4413 add r3, r2 - 802b2e4: b29a uxth r2, r3 - 802b2e6: 8c3b ldrh r3, [r7, #32] - 802b2e8: 4413 add r3, r2 - 802b2ea: b29a uxth r2, r3 - 802b2ec: 8bfb ldrh r3, [r7, #30] - 802b2ee: 4413 add r3, r2 - 802b2f0: b29b uxth r3, r3 - 802b2f2: b21b sxth r3, r3 - 802b2f4: 833b strh r3, [r7, #24] + 802b234: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 802b238: 887a ldrh r2, [r7, #2] + 802b23a: fb03 f202 mul.w r2, r3, r2 + 802b23e: 6b7b ldr r3, [r7, #52] ; 0x34 + 802b240: f8b3 3082 ldrh.w r3, [r3, #130] ; 0x82 + 802b244: 3b01 subs r3, #1 + 802b246: fb92 f3f3 sdiv r3, r2, r3 + 802b24a: b29a uxth r2, r3 + 802b24c: 8c7b ldrh r3, [r7, #34] ; 0x22 + 802b24e: 4413 add r3, r2 + 802b250: b29a uxth r2, r3 + 802b252: 8c3b ldrh r3, [r7, #32] + 802b254: 4413 add r3, r2 + 802b256: b29a uxth r2, r3 + 802b258: 8bfb ldrh r3, [r7, #30] + 802b25a: 4413 add r3, r2 + 802b25c: b29b uxth r3, r3 + 802b25e: b21b sxth r3, r3 + 802b260: 833b strh r3, [r7, #24] lv_obj_invalidate_area(obj, &coords); - 802b2f6: f107 0314 add.w r3, r7, #20 - 802b2fa: 4619 mov r1, r3 - 802b2fc: 6878 ldr r0, [r7, #4] - 802b2fe: f7df fbb4 bl 800aa6a - 802b302: e068 b.n 802b3d6 + 802b262: f107 0314 add.w r3, r7, #20 + 802b266: 4619 mov r1, r3 + 802b268: 6878 ldr r0, [r7, #4] + 802b26a: f7df fbc8 bl 800a9fe + 802b26e: e068 b.n 802b342 } } else if(chart->type == LV_CHART_TYPE_BAR) { - 802b304: 6b7b ldr r3, [r7, #52] ; 0x34 - 802b306: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 802b30a: f003 0307 and.w r3, r3, #7 - 802b30e: b2db uxtb r3, r3 - 802b310: 2b02 cmp r3, #2 - 802b312: d14f bne.n 802b3b4 + 802b270: 6b7b ldr r3, [r7, #52] ; 0x34 + 802b272: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 802b276: f003 0307 and.w r3, r3, #7 + 802b27a: b2db uxtb r3, r3 + 802b27c: 2b02 cmp r3, #2 + 802b27e: d14f bne.n 802b320 lv_area_t col_a; int32_t block_gap = ((int32_t)lv_obj_get_style_pad_column(obj, - 802b314: 2100 movs r1, #0 - 802b316: 6878 ldr r0, [r7, #4] - 802b318: f7fc ffb4 bl 8028284 - 802b31c: 4603 mov r3, r0 - 802b31e: 461a mov r2, r3 + 802b280: 2100 movs r1, #0 + 802b282: 6878 ldr r0, [r7, #4] + 802b284: f7fc ffb4 bl 80281f0 + 802b288: 4603 mov r3, r0 + 802b28a: 461a mov r2, r3 LV_PART_MAIN) * chart->zoom_x) >> 8; /*Gap between the column on ~adjacent X*/ - 802b320: 6b7b ldr r3, [r7, #52] ; 0x34 - 802b322: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 - 802b326: fb02 f303 mul.w r3, r2, r3 + 802b28c: 6b7b ldr r3, [r7, #52] ; 0x34 + 802b28e: f8b3 3084 ldrh.w r3, [r3, #132] ; 0x84 + 802b292: fb02 f303 mul.w r3, r2, r3 int32_t block_gap = ((int32_t)lv_obj_get_style_pad_column(obj, - 802b32a: 121b asrs r3, r3, #8 - 802b32c: 62fb str r3, [r7, #44] ; 0x2c + 802b296: 121b asrs r3, r3, #8 + 802b298: 62fb str r3, [r7, #44] ; 0x2c lv_coord_t block_w = (w + block_gap) / chart->point_cnt; - 802b32e: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 - 802b332: 6afb ldr r3, [r7, #44] ; 0x2c - 802b334: 4413 add r3, r2 - 802b336: 6b7a ldr r2, [r7, #52] ; 0x34 - 802b338: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 - 802b33c: fb93 f3f2 sdiv r3, r3, r2 - 802b340: 857b strh r3, [r7, #42] ; 0x2a + 802b29a: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 + 802b29e: 6afb ldr r3, [r7, #44] ; 0x2c + 802b2a0: 4413 add r3, r2 + 802b2a2: 6b7a ldr r2, [r7, #52] ; 0x34 + 802b2a4: f8b2 2082 ldrh.w r2, [r2, #130] ; 0x82 + 802b2a8: fb93 f3f2 sdiv r3, r3, r2 + 802b2ac: 857b strh r3, [r7, #42] ; 0x2a lv_coord_t x_act; x_act = (int32_t)((int32_t)(block_w) * i) ; - 802b342: 8d7b ldrh r3, [r7, #42] ; 0x2a - 802b344: 887a ldrh r2, [r7, #2] - 802b346: fb02 f303 mul.w r3, r2, r3 - 802b34a: b29b uxth r3, r3 - 802b34c: 853b strh r3, [r7, #40] ; 0x28 + 802b2ae: 8d7b ldrh r3, [r7, #42] ; 0x2a + 802b2b0: 887a ldrh r2, [r7, #2] + 802b2b2: fb02 f303 mul.w r3, r2, r3 + 802b2b6: b29b uxth r3, r3 + 802b2b8: 853b strh r3, [r7, #40] ; 0x28 x_act += obj->coords.x1 + lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 802b34e: 687b ldr r3, [r7, #4] - 802b350: f9b3 3014 ldrsh.w r3, [r3, #20] - 802b354: 461c mov r4, r3 - 802b356: 2100 movs r1, #0 - 802b358: 6878 ldr r0, [r7, #4] - 802b35a: f7fc ff6d bl 8028238 - 802b35e: 4603 mov r3, r0 - 802b360: 4423 add r3, r4 - 802b362: b29a uxth r2, r3 - 802b364: 8d3b ldrh r3, [r7, #40] ; 0x28 - 802b366: 4413 add r3, r2 - 802b368: b29b uxth r3, r3 - 802b36a: 853b strh r3, [r7, #40] ; 0x28 + 802b2ba: 687b ldr r3, [r7, #4] + 802b2bc: f9b3 3014 ldrsh.w r3, [r3, #20] + 802b2c0: 461c mov r4, r3 + 802b2c2: 2100 movs r1, #0 + 802b2c4: 6878 ldr r0, [r7, #4] + 802b2c6: f7fc ff6d bl 80281a4 + 802b2ca: 4603 mov r3, r0 + 802b2cc: 4423 add r3, r4 + 802b2ce: b29a uxth r2, r3 + 802b2d0: 8d3b ldrh r3, [r7, #40] ; 0x28 + 802b2d2: 4413 add r3, r2 + 802b2d4: b29b uxth r3, r3 + 802b2d6: 853b strh r3, [r7, #40] ; 0x28 lv_obj_get_coords(obj, &col_a); - 802b36c: f107 030c add.w r3, r7, #12 - 802b370: 4619 mov r1, r3 - 802b372: 6878 ldr r0, [r7, #4] - 802b374: f7de fe4a bl 800a00c + 802b2d8: f107 030c add.w r3, r7, #12 + 802b2dc: 4619 mov r1, r3 + 802b2de: 6878 ldr r0, [r7, #4] + 802b2e0: f7de fe5e bl 8009fa0 col_a.x1 = x_act - scroll_left; - 802b378: 8d3a ldrh r2, [r7, #40] ; 0x28 - 802b37a: 8e3b ldrh r3, [r7, #48] ; 0x30 - 802b37c: 1ad3 subs r3, r2, r3 - 802b37e: b29b uxth r3, r3 - 802b380: b21b sxth r3, r3 - 802b382: 81bb strh r3, [r7, #12] + 802b2e4: 8d3a ldrh r2, [r7, #40] ; 0x28 + 802b2e6: 8e3b ldrh r3, [r7, #48] ; 0x30 + 802b2e8: 1ad3 subs r3, r2, r3 + 802b2ea: b29b uxth r3, r3 + 802b2ec: b21b sxth r3, r3 + 802b2ee: 81bb strh r3, [r7, #12] col_a.x2 = col_a.x1 + block_w; - 802b384: f9b7 300c ldrsh.w r3, [r7, #12] - 802b388: b29a uxth r2, r3 - 802b38a: 8d7b ldrh r3, [r7, #42] ; 0x2a - 802b38c: 4413 add r3, r2 - 802b38e: b29b uxth r3, r3 - 802b390: b21b sxth r3, r3 - 802b392: 823b strh r3, [r7, #16] + 802b2f0: f9b7 300c ldrsh.w r3, [r7, #12] + 802b2f4: b29a uxth r2, r3 + 802b2f6: 8d7b ldrh r3, [r7, #42] ; 0x2a + 802b2f8: 4413 add r3, r2 + 802b2fa: b29b uxth r3, r3 + 802b2fc: b21b sxth r3, r3 + 802b2fe: 823b strh r3, [r7, #16] col_a.x1 -= block_gap; - 802b394: f9b7 300c ldrsh.w r3, [r7, #12] - 802b398: b29a uxth r2, r3 - 802b39a: 6afb ldr r3, [r7, #44] ; 0x2c - 802b39c: b29b uxth r3, r3 - 802b39e: 1ad3 subs r3, r2, r3 - 802b3a0: b29b uxth r3, r3 - 802b3a2: b21b sxth r3, r3 - 802b3a4: 81bb strh r3, [r7, #12] + 802b300: f9b7 300c ldrsh.w r3, [r7, #12] + 802b304: b29a uxth r2, r3 + 802b306: 6afb ldr r3, [r7, #44] ; 0x2c + 802b308: b29b uxth r3, r3 + 802b30a: 1ad3 subs r3, r2, r3 + 802b30c: b29b uxth r3, r3 + 802b30e: b21b sxth r3, r3 + 802b310: 81bb strh r3, [r7, #12] lv_obj_invalidate_area(obj, &col_a); - 802b3a6: f107 030c add.w r3, r7, #12 - 802b3aa: 4619 mov r1, r3 - 802b3ac: 6878 ldr r0, [r7, #4] - 802b3ae: f7df fb5c bl 800aa6a - 802b3b2: e010 b.n 802b3d6 + 802b312: f107 030c add.w r3, r7, #12 + 802b316: 4619 mov r1, r3 + 802b318: 6878 ldr r0, [r7, #4] + 802b31a: f7df fb70 bl 800a9fe + 802b31e: e010 b.n 802b342 } else if(chart->type == LV_CHART_TYPE_SCATTER) { - 802b3b4: 6b7b ldr r3, [r7, #52] ; 0x34 - 802b3b6: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 - 802b3ba: f003 0307 and.w r3, r3, #7 - 802b3be: b2db uxtb r3, r3 - 802b3c0: 2b03 cmp r3, #3 - 802b3c2: d103 bne.n 802b3cc + 802b320: 6b7b ldr r3, [r7, #52] ; 0x34 + 802b322: f893 3088 ldrb.w r3, [r3, #136] ; 0x88 + 802b326: f003 0307 and.w r3, r3, #7 + 802b32a: b2db uxtb r3, r3 + 802b32c: 2b03 cmp r3, #3 + 802b32e: d103 bne.n 802b338 lv_obj_invalidate(obj); - 802b3c4: 6878 ldr r0, [r7, #4] - 802b3c6: f7df fb74 bl 800aab2 - 802b3ca: e004 b.n 802b3d6 + 802b330: 6878 ldr r0, [r7, #4] + 802b332: f7df fb88 bl 800aa46 + 802b336: e004 b.n 802b342 } else { lv_obj_invalidate(obj); - 802b3cc: 6878 ldr r0, [r7, #4] - 802b3ce: f7df fb70 bl 800aab2 - 802b3d2: e000 b.n 802b3d6 + 802b338: 6878 ldr r0, [r7, #4] + 802b33a: f7df fb84 bl 800aa46 + 802b33e: e000 b.n 802b342 if(i >= chart->point_cnt) return; - 802b3d4: bf00 nop + 802b340: bf00 nop } } - 802b3d6: 373c adds r7, #60 ; 0x3c - 802b3d8: 46bd mov sp, r7 - 802b3da: bd90 pop {r4, r7, pc} + 802b342: 373c adds r7, #60 ; 0x3c + 802b344: 46bd mov sp, r7 + 802b346: bd90 pop {r4, r7, pc} -0802b3dc : +0802b348 : } } } lv_chart_tick_dsc_t * get_tick_gsc(lv_obj_t * obj, lv_chart_axis_t axis) { - 802b3dc: b480 push {r7} - 802b3de: b085 sub sp, #20 - 802b3e0: af00 add r7, sp, #0 - 802b3e2: 6078 str r0, [r7, #4] - 802b3e4: 460b mov r3, r1 - 802b3e6: 70fb strb r3, [r7, #3] + 802b348: b480 push {r7} + 802b34a: b085 sub sp, #20 + 802b34c: af00 add r7, sp, #0 + 802b34e: 6078 str r0, [r7, #4] + 802b350: 460b mov r3, r1 + 802b352: 70fb strb r3, [r7, #3] lv_chart_t * chart = (lv_chart_t *) obj; - 802b3e8: 687b ldr r3, [r7, #4] - 802b3ea: 60fb str r3, [r7, #12] + 802b354: 687b ldr r3, [r7, #4] + 802b356: 60fb str r3, [r7, #12] switch(axis) { - 802b3ec: 78fb ldrb r3, [r7, #3] - 802b3ee: 2b04 cmp r3, #4 - 802b3f0: d818 bhi.n 802b424 - 802b3f2: a201 add r2, pc, #4 ; (adr r2, 802b3f8 ) - 802b3f4: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 802b3f8: 0802b40d .word 0x0802b40d - 802b3fc: 0802b419 .word 0x0802b419 - 802b400: 0802b413 .word 0x0802b413 - 802b404: 0802b425 .word 0x0802b425 - 802b408: 0802b41f .word 0x0802b41f + 802b358: 78fb ldrb r3, [r7, #3] + 802b35a: 2b04 cmp r3, #4 + 802b35c: d818 bhi.n 802b390 + 802b35e: a201 add r2, pc, #4 ; (adr r2, 802b364 ) + 802b360: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 802b364: 0802b379 .word 0x0802b379 + 802b368: 0802b385 .word 0x0802b385 + 802b36c: 0802b37f .word 0x0802b37f + 802b370: 0802b391 .word 0x0802b391 + 802b374: 0802b38b .word 0x0802b38b case LV_CHART_AXIS_PRIMARY_Y: return &chart->tick[0]; - 802b40c: 68fb ldr r3, [r7, #12] - 802b40e: 333c adds r3, #60 ; 0x3c - 802b410: e009 b.n 802b426 + 802b378: 68fb ldr r3, [r7, #12] + 802b37a: 333c adds r3, #60 ; 0x3c + 802b37c: e009 b.n 802b392 case LV_CHART_AXIS_PRIMARY_X: return &chart->tick[1]; - 802b412: 68fb ldr r3, [r7, #12] - 802b414: 3348 adds r3, #72 ; 0x48 - 802b416: e006 b.n 802b426 + 802b37e: 68fb ldr r3, [r7, #12] + 802b380: 3348 adds r3, #72 ; 0x48 + 802b382: e006 b.n 802b392 case LV_CHART_AXIS_SECONDARY_Y: return &chart->tick[2]; - 802b418: 68fb ldr r3, [r7, #12] - 802b41a: 3354 adds r3, #84 ; 0x54 - 802b41c: e003 b.n 802b426 + 802b384: 68fb ldr r3, [r7, #12] + 802b386: 3354 adds r3, #84 ; 0x54 + 802b388: e003 b.n 802b392 case LV_CHART_AXIS_SECONDARY_X: return &chart->tick[3]; - 802b41e: 68fb ldr r3, [r7, #12] - 802b420: 3360 adds r3, #96 ; 0x60 - 802b422: e000 b.n 802b426 + 802b38a: 68fb ldr r3, [r7, #12] + 802b38c: 3360 adds r3, #96 ; 0x60 + 802b38e: e000 b.n 802b392 default: return NULL; - 802b424: 2300 movs r3, #0 + 802b390: 2300 movs r3, #0 } } - 802b426: 4618 mov r0, r3 - 802b428: 3714 adds r7, #20 - 802b42a: 46bd mov sp, r7 - 802b42c: bc80 pop {r7} - 802b42e: 4770 bx lr + 802b392: 4618 mov r0, r3 + 802b394: 3714 adds r7, #20 + 802b396: 46bd mov sp, r7 + 802b398: bc80 pop {r7} + 802b39a: 4770 bx lr -0802b430 : +0802b39c : * @return sinus of 'angle'. sin(-90) = -32767, sin(90) = 32767 */ LV_ATTRIBUTE_FAST_MEM int16_t lv_trigo_sin(int16_t angle); static inline LV_ATTRIBUTE_FAST_MEM int16_t lv_trigo_cos(int16_t angle) { - 802b430: b580 push {r7, lr} - 802b432: b082 sub sp, #8 - 802b434: af00 add r7, sp, #0 - 802b436: 4603 mov r3, r0 - 802b438: 80fb strh r3, [r7, #6] + 802b39c: b580 push {r7, lr} + 802b39e: b082 sub sp, #8 + 802b3a0: af00 add r7, sp, #0 + 802b3a2: 4603 mov r3, r0 + 802b3a4: 80fb strh r3, [r7, #6] return lv_trigo_sin(angle + 90); - 802b43a: 88fb ldrh r3, [r7, #6] - 802b43c: 335a adds r3, #90 ; 0x5a - 802b43e: b29b uxth r3, r3 - 802b440: b21b sxth r3, r3 - 802b442: 4618 mov r0, r3 - 802b444: f007 f842 bl 80324cc - 802b448: 4603 mov r3, r0 + 802b3a6: 88fb ldrh r3, [r7, #6] + 802b3a8: 335a adds r3, #90 ; 0x5a + 802b3aa: b29b uxth r3, r3 + 802b3ac: b21b sxth r3, r3 + 802b3ae: 4618 mov r0, r3 + 802b3b0: f007 f842 bl 8032438 + 802b3b4: 4603 mov r3, r0 } - 802b44a: 4618 mov r0, r3 - 802b44c: 3708 adds r7, #8 - 802b44e: 46bd mov sp, r7 - 802b450: bd80 pop {r7, pc} + 802b3b6: 4618 mov r0, r3 + 802b3b8: 3708 adds r7, #8 + 802b3ba: 46bd mov sp, r7 + 802b3bc: bd80 pop {r7, pc} -0802b452 : +0802b3be : * Copy an area * @param dest pointer to the destination area * @param src pointer to the source area */ inline static void lv_area_copy(lv_area_t * dest, const lv_area_t * src) { - 802b452: b480 push {r7} - 802b454: b083 sub sp, #12 - 802b456: af00 add r7, sp, #0 - 802b458: 6078 str r0, [r7, #4] - 802b45a: 6039 str r1, [r7, #0] + 802b3be: b480 push {r7} + 802b3c0: b083 sub sp, #12 + 802b3c2: af00 add r7, sp, #0 + 802b3c4: 6078 str r0, [r7, #4] + 802b3c6: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 802b45c: 683b ldr r3, [r7, #0] - 802b45e: f9b3 2000 ldrsh.w r2, [r3] - 802b462: 687b ldr r3, [r7, #4] - 802b464: 801a strh r2, [r3, #0] + 802b3c8: 683b ldr r3, [r7, #0] + 802b3ca: f9b3 2000 ldrsh.w r2, [r3] + 802b3ce: 687b ldr r3, [r7, #4] + 802b3d0: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 802b466: 683b ldr r3, [r7, #0] - 802b468: f9b3 2002 ldrsh.w r2, [r3, #2] - 802b46c: 687b ldr r3, [r7, #4] - 802b46e: 805a strh r2, [r3, #2] + 802b3d2: 683b ldr r3, [r7, #0] + 802b3d4: f9b3 2002 ldrsh.w r2, [r3, #2] + 802b3d8: 687b ldr r3, [r7, #4] + 802b3da: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 802b470: 683b ldr r3, [r7, #0] - 802b472: f9b3 2004 ldrsh.w r2, [r3, #4] - 802b476: 687b ldr r3, [r7, #4] - 802b478: 809a strh r2, [r3, #4] + 802b3dc: 683b ldr r3, [r7, #0] + 802b3de: f9b3 2004 ldrsh.w r2, [r3, #4] + 802b3e2: 687b ldr r3, [r7, #4] + 802b3e4: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 802b47a: 683b ldr r3, [r7, #0] - 802b47c: f9b3 2006 ldrsh.w r2, [r3, #6] - 802b480: 687b ldr r3, [r7, #4] - 802b482: 80da strh r2, [r3, #6] + 802b3e6: 683b ldr r3, [r7, #0] + 802b3e8: f9b3 2006 ldrsh.w r2, [r3, #6] + 802b3ec: 687b ldr r3, [r7, #4] + 802b3ee: 80da strh r2, [r3, #6] } - 802b484: bf00 nop - 802b486: 370c adds r7, #12 - 802b488: 46bd mov sp, r7 - 802b48a: bc80 pop {r7} - 802b48c: 4770 bx lr + 802b3f0: bf00 nop + 802b3f2: 370c adds r7, #12 + 802b3f4: 46bd mov sp, r7 + 802b3f6: bc80 pop {r7} + 802b3f8: 4770 bx lr -0802b48e : +0802b3fa : * Get the width of an area * @param area_p pointer to an area * @return the width of the area (if x1 == x2 -> width = 1) */ static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p) { - 802b48e: b480 push {r7} - 802b490: b083 sub sp, #12 - 802b492: af00 add r7, sp, #0 - 802b494: 6078 str r0, [r7, #4] + 802b3fa: b480 push {r7} + 802b3fc: b083 sub sp, #12 + 802b3fe: af00 add r7, sp, #0 + 802b400: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 802b496: 687b ldr r3, [r7, #4] - 802b498: f9b3 3004 ldrsh.w r3, [r3, #4] - 802b49c: b29a uxth r2, r3 - 802b49e: 687b ldr r3, [r7, #4] - 802b4a0: f9b3 3000 ldrsh.w r3, [r3] - 802b4a4: b29b uxth r3, r3 - 802b4a6: 1ad3 subs r3, r2, r3 - 802b4a8: b29b uxth r3, r3 - 802b4aa: 3301 adds r3, #1 - 802b4ac: b29b uxth r3, r3 - 802b4ae: b21b sxth r3, r3 + 802b402: 687b ldr r3, [r7, #4] + 802b404: f9b3 3004 ldrsh.w r3, [r3, #4] + 802b408: b29a uxth r2, r3 + 802b40a: 687b ldr r3, [r7, #4] + 802b40c: f9b3 3000 ldrsh.w r3, [r3] + 802b410: b29b uxth r3, r3 + 802b412: 1ad3 subs r3, r2, r3 + 802b414: b29b uxth r3, r3 + 802b416: 3301 adds r3, #1 + 802b418: b29b uxth r3, r3 + 802b41a: b21b sxth r3, r3 } - 802b4b0: 4618 mov r0, r3 - 802b4b2: 370c adds r7, #12 - 802b4b4: 46bd mov sp, r7 - 802b4b6: bc80 pop {r7} - 802b4b8: 4770 bx lr + 802b41c: 4618 mov r0, r3 + 802b41e: 370c adds r7, #12 + 802b420: 46bd mov sp, r7 + 802b422: bc80 pop {r7} + 802b424: 4770 bx lr -0802b4ba : +0802b426 : * Get the height of an area * @param area_p pointer to an area * @return the height of the area (if y1 == y2 -> height = 1) */ static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) { - 802b4ba: b480 push {r7} - 802b4bc: b083 sub sp, #12 - 802b4be: af00 add r7, sp, #0 - 802b4c0: 6078 str r0, [r7, #4] + 802b426: b480 push {r7} + 802b428: b083 sub sp, #12 + 802b42a: af00 add r7, sp, #0 + 802b42c: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 802b4c2: 687b ldr r3, [r7, #4] - 802b4c4: f9b3 3006 ldrsh.w r3, [r3, #6] - 802b4c8: b29a uxth r2, r3 - 802b4ca: 687b ldr r3, [r7, #4] - 802b4cc: f9b3 3002 ldrsh.w r3, [r3, #2] - 802b4d0: b29b uxth r3, r3 - 802b4d2: 1ad3 subs r3, r2, r3 - 802b4d4: b29b uxth r3, r3 - 802b4d6: 3301 adds r3, #1 - 802b4d8: b29b uxth r3, r3 - 802b4da: b21b sxth r3, r3 + 802b42e: 687b ldr r3, [r7, #4] + 802b430: f9b3 3006 ldrsh.w r3, [r3, #6] + 802b434: b29a uxth r2, r3 + 802b436: 687b ldr r3, [r7, #4] + 802b438: f9b3 3002 ldrsh.w r3, [r3, #2] + 802b43c: b29b uxth r3, r3 + 802b43e: 1ad3 subs r3, r2, r3 + 802b440: b29b uxth r3, r3 + 802b442: 3301 adds r3, #1 + 802b444: b29b uxth r3, r3 + 802b446: b21b sxth r3, r3 } - 802b4dc: 4618 mov r0, r3 - 802b4de: 370c adds r7, #12 - 802b4e0: 46bd mov sp, r7 - 802b4e2: bc80 pop {r7} - 802b4e4: 4770 bx lr + 802b448: 4618 mov r0, r3 + 802b44a: 370c adds r7, #12 + 802b44c: 46bd mov sp, r7 + 802b44e: bc80 pop {r7} + 802b450: 4770 bx lr -0802b4e6 : +0802b452 : uint16_t bright = (uint16_t)(3u * LV_COLOR_GET_R32(c32) + LV_COLOR_GET_B32(c32) + 4u * LV_COLOR_GET_G32(c32)); return (uint8_t)(bright >> 3); } static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b) { - 802b4e6: b490 push {r4, r7} - 802b4e8: b082 sub sp, #8 - 802b4ea: af00 add r7, sp, #0 - 802b4ec: 4604 mov r4, r0 - 802b4ee: 4608 mov r0, r1 - 802b4f0: 4611 mov r1, r2 - 802b4f2: 4622 mov r2, r4 - 802b4f4: 71fa strb r2, [r7, #7] - 802b4f6: 4602 mov r2, r0 - 802b4f8: 71ba strb r2, [r7, #6] - 802b4fa: 460a mov r2, r1 - 802b4fc: 717a strb r2, [r7, #5] + 802b452: b490 push {r4, r7} + 802b454: b082 sub sp, #8 + 802b456: af00 add r7, sp, #0 + 802b458: 4604 mov r4, r0 + 802b45a: 4608 mov r0, r1 + 802b45c: 4611 mov r1, r2 + 802b45e: 4622 mov r2, r4 + 802b460: 71fa strb r2, [r7, #7] + 802b462: 4602 mov r2, r0 + 802b464: 71ba strb r2, [r7, #6] + 802b466: 460a mov r2, r1 + 802b468: 717a strb r2, [r7, #5] return _LV_COLOR_MAKE_TYPE_HELPER LV_COLOR_MAKE(r, g, b); - 802b4fe: 797a ldrb r2, [r7, #5] - 802b500: 08d2 lsrs r2, r2, #3 - 802b502: b2d2 uxtb r2, r2 - 802b504: f002 021f and.w r2, r2, #31 - 802b508: b2d0 uxtb r0, r2 - 802b50a: 79ba ldrb r2, [r7, #6] - 802b50c: 0892 lsrs r2, r2, #2 - 802b50e: b2d2 uxtb r2, r2 - 802b510: f002 023f and.w r2, r2, #63 ; 0x3f - 802b514: b2d1 uxtb r1, r2 - 802b516: 79fa ldrb r2, [r7, #7] - 802b518: 08d2 lsrs r2, r2, #3 - 802b51a: b2d2 uxtb r2, r2 - 802b51c: f002 021f and.w r2, r2, #31 - 802b520: b2d2 uxtb r2, r2 - 802b522: f360 0304 bfi r3, r0, #0, #5 - 802b526: f361 134a bfi r3, r1, #5, #6 - 802b52a: f362 23cf bfi r3, r2, #11, #5 + 802b46a: 797a ldrb r2, [r7, #5] + 802b46c: 08d2 lsrs r2, r2, #3 + 802b46e: b2d2 uxtb r2, r2 + 802b470: f002 021f and.w r2, r2, #31 + 802b474: b2d0 uxtb r0, r2 + 802b476: 79ba ldrb r2, [r7, #6] + 802b478: 0892 lsrs r2, r2, #2 + 802b47a: b2d2 uxtb r2, r2 + 802b47c: f002 023f and.w r2, r2, #63 ; 0x3f + 802b480: b2d1 uxtb r1, r2 + 802b482: 79fa ldrb r2, [r7, #7] + 802b484: 08d2 lsrs r2, r2, #3 + 802b486: b2d2 uxtb r2, r2 + 802b488: f002 021f and.w r2, r2, #31 + 802b48c: b2d2 uxtb r2, r2 + 802b48e: f360 0304 bfi r3, r0, #0, #5 + 802b492: f361 134a bfi r3, r1, #5, #6 + 802b496: f362 23cf bfi r3, r2, #11, #5 } - 802b52e: 4618 mov r0, r3 - 802b530: 3708 adds r7, #8 - 802b532: 46bd mov sp, r7 - 802b534: bc90 pop {r4, r7} - 802b536: 4770 bx lr + 802b49a: 4618 mov r0, r3 + 802b49c: 3708 adds r7, #8 + 802b49e: 46bd mov sp, r7 + 802b4a0: bc90 pop {r4, r7} + 802b4a2: 4770 bx lr -0802b538 : +0802b4a4 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_ANGLE); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_pad_top(const struct _lv_obj_t * obj, uint32_t part) { - 802b538: b580 push {r7, lr} - 802b53a: b084 sub sp, #16 - 802b53c: af00 add r7, sp, #0 - 802b53e: 6078 str r0, [r7, #4] - 802b540: 6039 str r1, [r7, #0] + 802b4a4: b580 push {r7, lr} + 802b4a6: b084 sub sp, #16 + 802b4a8: af00 add r7, sp, #0 + 802b4aa: 6078 str r0, [r7, #4] + 802b4ac: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 802b542: f641 0210 movw r2, #6160 ; 0x1810 - 802b546: 6839 ldr r1, [r7, #0] - 802b548: 6878 ldr r0, [r7, #4] - 802b54a: f7e2 fc31 bl 800ddb0 - 802b54e: 4603 mov r3, r0 - 802b550: 60fb str r3, [r7, #12] + 802b4ae: f641 0210 movw r2, #6160 ; 0x1810 + 802b4b2: 6839 ldr r1, [r7, #0] + 802b4b4: 6878 ldr r0, [r7, #4] + 802b4b6: f7e2 fc45 bl 800dd44 + 802b4ba: 4603 mov r3, r0 + 802b4bc: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 802b552: 68fb ldr r3, [r7, #12] - 802b554: b21b sxth r3, r3 + 802b4be: 68fb ldr r3, [r7, #12] + 802b4c0: b21b sxth r3, r3 } - 802b556: 4618 mov r0, r3 - 802b558: 3710 adds r7, #16 - 802b55a: 46bd mov sp, r7 - 802b55c: bd80 pop {r7, pc} + 802b4c2: 4618 mov r0, r3 + 802b4c4: 3710 adds r7, #16 + 802b4c6: 46bd mov sp, r7 + 802b4c8: bd80 pop {r7, pc} -0802b55e : +0802b4ca : static inline lv_coord_t lv_obj_get_style_pad_bottom(const struct _lv_obj_t * obj, uint32_t part) { - 802b55e: b580 push {r7, lr} - 802b560: b084 sub sp, #16 - 802b562: af00 add r7, sp, #0 - 802b564: 6078 str r0, [r7, #4] - 802b566: 6039 str r1, [r7, #0] + 802b4ca: b580 push {r7, lr} + 802b4cc: b084 sub sp, #16 + 802b4ce: af00 add r7, sp, #0 + 802b4d0: 6078 str r0, [r7, #4] + 802b4d2: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); - 802b568: f641 0211 movw r2, #6161 ; 0x1811 - 802b56c: 6839 ldr r1, [r7, #0] - 802b56e: 6878 ldr r0, [r7, #4] - 802b570: f7e2 fc1e bl 800ddb0 - 802b574: 4603 mov r3, r0 - 802b576: 60fb str r3, [r7, #12] + 802b4d4: f641 0211 movw r2, #6161 ; 0x1811 + 802b4d8: 6839 ldr r1, [r7, #0] + 802b4da: 6878 ldr r0, [r7, #4] + 802b4dc: f7e2 fc32 bl 800dd44 + 802b4e0: 4603 mov r3, r0 + 802b4e2: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 802b578: 68fb ldr r3, [r7, #12] - 802b57a: b21b sxth r3, r3 + 802b4e4: 68fb ldr r3, [r7, #12] + 802b4e6: b21b sxth r3, r3 } - 802b57c: 4618 mov r0, r3 - 802b57e: 3710 adds r7, #16 - 802b580: 46bd mov sp, r7 - 802b582: bd80 pop {r7, pc} + 802b4e8: 4618 mov r0, r3 + 802b4ea: 3710 adds r7, #16 + 802b4ec: 46bd mov sp, r7 + 802b4ee: bd80 pop {r7, pc} -0802b584 : +0802b4f0 : static inline lv_coord_t lv_obj_get_style_pad_left(const struct _lv_obj_t * obj, uint32_t part) { - 802b584: b580 push {r7, lr} - 802b586: b084 sub sp, #16 - 802b588: af00 add r7, sp, #0 - 802b58a: 6078 str r0, [r7, #4] - 802b58c: 6039 str r1, [r7, #0] + 802b4f0: b580 push {r7, lr} + 802b4f2: b084 sub sp, #16 + 802b4f4: af00 add r7, sp, #0 + 802b4f6: 6078 str r0, [r7, #4] + 802b4f8: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 802b58e: f641 0212 movw r2, #6162 ; 0x1812 - 802b592: 6839 ldr r1, [r7, #0] - 802b594: 6878 ldr r0, [r7, #4] - 802b596: f7e2 fc0b bl 800ddb0 - 802b59a: 4603 mov r3, r0 - 802b59c: 60fb str r3, [r7, #12] + 802b4fa: f641 0212 movw r2, #6162 ; 0x1812 + 802b4fe: 6839 ldr r1, [r7, #0] + 802b500: 6878 ldr r0, [r7, #4] + 802b502: f7e2 fc1f bl 800dd44 + 802b506: 4603 mov r3, r0 + 802b508: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 802b59e: 68fb ldr r3, [r7, #12] - 802b5a0: b21b sxth r3, r3 + 802b50a: 68fb ldr r3, [r7, #12] + 802b50c: b21b sxth r3, r3 } - 802b5a2: 4618 mov r0, r3 - 802b5a4: 3710 adds r7, #16 - 802b5a6: 46bd mov sp, r7 - 802b5a8: bd80 pop {r7, pc} + 802b50e: 4618 mov r0, r3 + 802b510: 3710 adds r7, #16 + 802b512: 46bd mov sp, r7 + 802b514: bd80 pop {r7, pc} -0802b5aa : +0802b516 : static inline lv_coord_t lv_obj_get_style_pad_right(const struct _lv_obj_t * obj, uint32_t part) { - 802b5aa: b580 push {r7, lr} - 802b5ac: b084 sub sp, #16 - 802b5ae: af00 add r7, sp, #0 - 802b5b0: 6078 str r0, [r7, #4] - 802b5b2: 6039 str r1, [r7, #0] + 802b516: b580 push {r7, lr} + 802b518: b084 sub sp, #16 + 802b51a: af00 add r7, sp, #0 + 802b51c: 6078 str r0, [r7, #4] + 802b51e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - 802b5b4: f641 0213 movw r2, #6163 ; 0x1813 - 802b5b8: 6839 ldr r1, [r7, #0] - 802b5ba: 6878 ldr r0, [r7, #4] - 802b5bc: f7e2 fbf8 bl 800ddb0 - 802b5c0: 4603 mov r3, r0 - 802b5c2: 60fb str r3, [r7, #12] + 802b520: f641 0213 movw r2, #6163 ; 0x1813 + 802b524: 6839 ldr r1, [r7, #0] + 802b526: 6878 ldr r0, [r7, #4] + 802b528: f7e2 fc0c bl 800dd44 + 802b52c: 4603 mov r3, r0 + 802b52e: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 802b5c4: 68fb ldr r3, [r7, #12] - 802b5c6: b21b sxth r3, r3 + 802b530: 68fb ldr r3, [r7, #12] + 802b532: b21b sxth r3, r3 } - 802b5c8: 4618 mov r0, r3 - 802b5ca: 3710 adds r7, #16 - 802b5cc: 46bd mov sp, r7 - 802b5ce: bd80 pop {r7, pc} + 802b534: 4618 mov r0, r3 + 802b536: 3710 adds r7, #16 + 802b538: 46bd mov sp, r7 + 802b53a: bd80 pop {r7, pc} -0802b5d0 : +0802b53c : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_OPA); return (lv_opa_t)v.num; } static inline lv_coord_t lv_obj_get_style_arc_width(const struct _lv_obj_t * obj, uint32_t part) { - 802b5d0: b580 push {r7, lr} - 802b5d2: b084 sub sp, #16 - 802b5d4: af00 add r7, sp, #0 - 802b5d6: 6078 str r0, [r7, #4] - 802b5d8: 6039 str r1, [r7, #0] + 802b53c: b580 push {r7, lr} + 802b53e: b084 sub sp, #16 + 802b540: af00 add r7, sp, #0 + 802b542: 6078 str r0, [r7, #4] + 802b544: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_WIDTH); - 802b5da: f44f 6205 mov.w r2, #2128 ; 0x850 - 802b5de: 6839 ldr r1, [r7, #0] - 802b5e0: 6878 ldr r0, [r7, #4] - 802b5e2: f7e2 fbe5 bl 800ddb0 - 802b5e6: 4603 mov r3, r0 - 802b5e8: 60fb str r3, [r7, #12] + 802b546: f44f 6205 mov.w r2, #2128 ; 0x850 + 802b54a: 6839 ldr r1, [r7, #0] + 802b54c: 6878 ldr r0, [r7, #4] + 802b54e: f7e2 fbf9 bl 800dd44 + 802b552: 4603 mov r3, r0 + 802b554: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 802b5ea: 68fb ldr r3, [r7, #12] - 802b5ec: b21b sxth r3, r3 + 802b556: 68fb ldr r3, [r7, #12] + 802b558: b21b sxth r3, r3 } - 802b5ee: 4618 mov r0, r3 - 802b5f0: 3710 adds r7, #16 - 802b5f2: 46bd mov sp, r7 - 802b5f4: bd80 pop {r7, pc} + 802b55a: 4618 mov r0, r3 + 802b55c: 3710 adds r7, #16 + 802b55e: 46bd mov sp, r7 + 802b560: bd80 pop {r7, pc} ... -0802b5f8 : +0802b564 : * @param colorwheel pointer to color wheel object * @param color current selected hsv * @return true if changed, otherwise false */ bool lv_colorwheel_set_hsv(lv_obj_t * obj, lv_color_hsv_t hsv) { - 802b5f8: b580 push {r7, lr} - 802b5fa: b084 sub sp, #16 - 802b5fc: af00 add r7, sp, #0 - 802b5fe: 6078 str r0, [r7, #4] - 802b600: 6039 str r1, [r7, #0] + 802b564: b580 push {r7, lr} + 802b566: b084 sub sp, #16 + 802b568: af00 add r7, sp, #0 + 802b56a: 6078 str r0, [r7, #4] + 802b56c: 6039 str r1, [r7, #0] if(hsv.h > 360) hsv.h %= 360; - 802b602: 883b ldrh r3, [r7, #0] - 802b604: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 802b608: d90c bls.n 802b624 - 802b60a: 883b ldrh r3, [r7, #0] - 802b60c: 08da lsrs r2, r3, #3 - 802b60e: 491c ldr r1, [pc, #112] ; (802b680 ) - 802b610: fba1 1202 umull r1, r2, r1, r2 - 802b614: 0892 lsrs r2, r2, #2 - 802b616: f44f 71b4 mov.w r1, #360 ; 0x168 - 802b61a: fb01 f202 mul.w r2, r1, r2 - 802b61e: 1a9b subs r3, r3, r2 - 802b620: b29b uxth r3, r3 - 802b622: 803b strh r3, [r7, #0] + 802b56e: 883b ldrh r3, [r7, #0] + 802b570: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 802b574: d90c bls.n 802b590 + 802b576: 883b ldrh r3, [r7, #0] + 802b578: 08da lsrs r2, r3, #3 + 802b57a: 491c ldr r1, [pc, #112] ; (802b5ec ) + 802b57c: fba1 1202 umull r1, r2, r1, r2 + 802b580: 0892 lsrs r2, r2, #2 + 802b582: f44f 71b4 mov.w r1, #360 ; 0x168 + 802b586: fb01 f202 mul.w r2, r1, r2 + 802b58a: 1a9b subs r3, r3, r2 + 802b58c: b29b uxth r3, r3 + 802b58e: 803b strh r3, [r7, #0] if(hsv.s > 100) hsv.s = 100; - 802b624: 78bb ldrb r3, [r7, #2] - 802b626: 2b64 cmp r3, #100 ; 0x64 - 802b628: d901 bls.n 802b62e - 802b62a: 2364 movs r3, #100 ; 0x64 - 802b62c: 70bb strb r3, [r7, #2] + 802b590: 78bb ldrb r3, [r7, #2] + 802b592: 2b64 cmp r3, #100 ; 0x64 + 802b594: d901 bls.n 802b59a + 802b596: 2364 movs r3, #100 ; 0x64 + 802b598: 70bb strb r3, [r7, #2] if(hsv.v > 100) hsv.v = 100; - 802b62e: 78fb ldrb r3, [r7, #3] - 802b630: 2b64 cmp r3, #100 ; 0x64 - 802b632: d901 bls.n 802b638 - 802b634: 2364 movs r3, #100 ; 0x64 - 802b636: 70fb strb r3, [r7, #3] + 802b59a: 78fb ldrb r3, [r7, #3] + 802b59c: 2b64 cmp r3, #100 ; 0x64 + 802b59e: d901 bls.n 802b5a4 + 802b5a0: 2364 movs r3, #100 ; 0x64 + 802b5a2: 70fb strb r3, [r7, #3] LV_ASSERT_OBJ(obj, MY_CLASS); lv_colorwheel_t * colorwheel = (lv_colorwheel_t *)obj; - 802b638: 687b ldr r3, [r7, #4] - 802b63a: 60fb str r3, [r7, #12] + 802b5a4: 687b ldr r3, [r7, #4] + 802b5a6: 60fb str r3, [r7, #12] if(colorwheel->hsv.h == hsv.h && colorwheel->hsv.s == hsv.s && colorwheel->hsv.v == hsv.v) return false; - 802b63c: 68fb ldr r3, [r7, #12] - 802b63e: 8c9a ldrh r2, [r3, #36] ; 0x24 - 802b640: 883b ldrh r3, [r7, #0] - 802b642: 429a cmp r2, r3 - 802b644: d10d bne.n 802b662 - 802b646: 68fb ldr r3, [r7, #12] - 802b648: f893 2026 ldrb.w r2, [r3, #38] ; 0x26 - 802b64c: 78bb ldrb r3, [r7, #2] - 802b64e: 429a cmp r2, r3 - 802b650: d107 bne.n 802b662 - 802b652: 68fb ldr r3, [r7, #12] - 802b654: f893 2027 ldrb.w r2, [r3, #39] ; 0x27 - 802b658: 78fb ldrb r3, [r7, #3] - 802b65a: 429a cmp r2, r3 - 802b65c: d101 bne.n 802b662 - 802b65e: 2300 movs r3, #0 - 802b660: e009 b.n 802b676 + 802b5a8: 68fb ldr r3, [r7, #12] + 802b5aa: 8c9a ldrh r2, [r3, #36] ; 0x24 + 802b5ac: 883b ldrh r3, [r7, #0] + 802b5ae: 429a cmp r2, r3 + 802b5b0: d10d bne.n 802b5ce + 802b5b2: 68fb ldr r3, [r7, #12] + 802b5b4: f893 2026 ldrb.w r2, [r3, #38] ; 0x26 + 802b5b8: 78bb ldrb r3, [r7, #2] + 802b5ba: 429a cmp r2, r3 + 802b5bc: d107 bne.n 802b5ce + 802b5be: 68fb ldr r3, [r7, #12] + 802b5c0: f893 2027 ldrb.w r2, [r3, #39] ; 0x27 + 802b5c4: 78fb ldrb r3, [r7, #3] + 802b5c6: 429a cmp r2, r3 + 802b5c8: d101 bne.n 802b5ce + 802b5ca: 2300 movs r3, #0 + 802b5cc: e009 b.n 802b5e2 colorwheel->hsv = hsv; - 802b662: 68fb ldr r3, [r7, #12] - 802b664: 683a ldr r2, [r7, #0] - 802b666: 625a str r2, [r3, #36] ; 0x24 + 802b5ce: 68fb ldr r3, [r7, #12] + 802b5d0: 683a ldr r2, [r7, #0] + 802b5d2: 625a str r2, [r3, #36] ; 0x24 refr_knob_pos(obj); - 802b668: 6878 ldr r0, [r7, #4] - 802b66a: f000 fde5 bl 802c238 + 802b5d4: 6878 ldr r0, [r7, #4] + 802b5d6: f000 fde5 bl 802c1a4 lv_obj_invalidate(obj); - 802b66e: 6878 ldr r0, [r7, #4] - 802b670: f7df fa1f bl 800aab2 + 802b5da: 6878 ldr r0, [r7, #4] + 802b5dc: f7df fa33 bl 800aa46 return true; - 802b674: 2301 movs r3, #1 + 802b5e0: 2301 movs r3, #1 } - 802b676: 4618 mov r0, r3 - 802b678: 3710 adds r7, #16 - 802b67a: 46bd mov sp, r7 - 802b67c: bd80 pop {r7, pc} - 802b67e: bf00 nop - 802b680: 16c16c17 .word 0x16c16c17 + 802b5e2: 4618 mov r0, r3 + 802b5e4: 3710 adds r7, #16 + 802b5e6: 46bd mov sp, r7 + 802b5e8: bd80 pop {r7, pc} + 802b5ea: bf00 nop + 802b5ec: 16c16c17 .word 0x16c16c17 -0802b684 : +0802b5f0 : * Get the current selected color of a color wheel. * @param colorwheel pointer to color wheel object * @return color current selected color */ lv_color_t lv_colorwheel_get_rgb(lv_obj_t * obj) { - 802b684: b580 push {r7, lr} - 802b686: b084 sub sp, #16 - 802b688: af00 add r7, sp, #0 - 802b68a: 6078 str r0, [r7, #4] + 802b5f0: b580 push {r7, lr} + 802b5f2: b084 sub sp, #16 + 802b5f4: af00 add r7, sp, #0 + 802b5f6: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_colorwheel_t * colorwheel = (lv_colorwheel_t *)obj; - 802b68c: 687b ldr r3, [r7, #4] - 802b68e: 60fb str r3, [r7, #12] + 802b5f8: 687b ldr r3, [r7, #4] + 802b5fa: 60fb str r3, [r7, #12] return lv_color_hsv_to_rgb(colorwheel->hsv.h, colorwheel->hsv.s, colorwheel->hsv.v); - 802b690: 68fb ldr r3, [r7, #12] - 802b692: 8c98 ldrh r0, [r3, #36] ; 0x24 - 802b694: 68fb ldr r3, [r7, #12] - 802b696: f893 1026 ldrb.w r1, [r3, #38] ; 0x26 - 802b69a: 68fb ldr r3, [r7, #12] - 802b69c: f893 3027 ldrb.w r3, [r3, #39] ; 0x27 - 802b6a0: 461a mov r2, r3 - 802b6a2: f006 f941 bl 8031928 - 802b6a6: 4603 mov r3, r0 + 802b5fc: 68fb ldr r3, [r7, #12] + 802b5fe: 8c98 ldrh r0, [r3, #36] ; 0x24 + 802b600: 68fb ldr r3, [r7, #12] + 802b602: f893 1026 ldrb.w r1, [r3, #38] ; 0x26 + 802b606: 68fb ldr r3, [r7, #12] + 802b608: f893 3027 ldrb.w r3, [r3, #39] ; 0x27 + 802b60c: 461a mov r2, r3 + 802b60e: f006 f941 bl 8031894 + 802b612: 4603 mov r3, r0 } - 802b6a8: 4618 mov r0, r3 - 802b6aa: 3710 adds r7, #16 - 802b6ac: 46bd mov sp, r7 - 802b6ae: bd80 pop {r7, pc} + 802b614: 4618 mov r0, r3 + 802b616: 3710 adds r7, #16 + 802b618: 46bd mov sp, r7 + 802b61a: bd80 pop {r7, pc} -0802b6b0 : +0802b61c : /********************** * STATIC FUNCTIONS **********************/ static void lv_colorwheel_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802b6b0: b580 push {r7, lr} - 802b6b2: b084 sub sp, #16 - 802b6b4: af00 add r7, sp, #0 - 802b6b6: 6078 str r0, [r7, #4] - 802b6b8: 6039 str r1, [r7, #0] + 802b61c: b580 push {r7, lr} + 802b61e: b084 sub sp, #16 + 802b620: af00 add r7, sp, #0 + 802b622: 6078 str r0, [r7, #4] + 802b624: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_colorwheel_t * colorwheel = (lv_colorwheel_t *)obj; - 802b6ba: 683b ldr r3, [r7, #0] - 802b6bc: 60fb str r3, [r7, #12] + 802b626: 683b ldr r3, [r7, #0] + 802b628: 60fb str r3, [r7, #12] colorwheel->hsv.h = 0; - 802b6be: 68fb ldr r3, [r7, #12] - 802b6c0: 2200 movs r2, #0 - 802b6c2: 849a strh r2, [r3, #36] ; 0x24 + 802b62a: 68fb ldr r3, [r7, #12] + 802b62c: 2200 movs r2, #0 + 802b62e: 849a strh r2, [r3, #36] ; 0x24 colorwheel->hsv.s = 100; - 802b6c4: 68fb ldr r3, [r7, #12] - 802b6c6: 2264 movs r2, #100 ; 0x64 - 802b6c8: f883 2026 strb.w r2, [r3, #38] ; 0x26 + 802b630: 68fb ldr r3, [r7, #12] + 802b632: 2264 movs r2, #100 ; 0x64 + 802b634: f883 2026 strb.w r2, [r3, #38] ; 0x26 colorwheel->hsv.v = 100; - 802b6cc: 68fb ldr r3, [r7, #12] - 802b6ce: 2264 movs r2, #100 ; 0x64 - 802b6d0: f883 2027 strb.w r2, [r3, #39] ; 0x27 + 802b638: 68fb ldr r3, [r7, #12] + 802b63a: 2264 movs r2, #100 ; 0x64 + 802b63c: f883 2027 strb.w r2, [r3, #39] ; 0x27 colorwheel->mode = LV_COLORWHEEL_MODE_HUE; - 802b6d4: 68fa ldr r2, [r7, #12] - 802b6d6: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 802b6da: f36f 0301 bfc r3, #0, #2 - 802b6de: f882 303c strb.w r3, [r2, #60] ; 0x3c + 802b640: 68fa ldr r2, [r7, #12] + 802b642: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 802b646: f36f 0301 bfc r3, #0, #2 + 802b64a: f882 303c strb.w r3, [r2, #60] ; 0x3c colorwheel->mode_fixed = 0; - 802b6e2: 68fa ldr r2, [r7, #12] - 802b6e4: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 802b6e8: f36f 0382 bfc r3, #2, #1 - 802b6ec: f882 303c strb.w r3, [r2, #60] ; 0x3c + 802b64e: 68fa ldr r2, [r7, #12] + 802b650: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 802b654: f36f 0382 bfc r3, #2, #1 + 802b658: f882 303c strb.w r3, [r2, #60] ; 0x3c colorwheel->last_click_time = 0; - 802b6f0: 68fb ldr r3, [r7, #12] - 802b6f2: 2200 movs r2, #0 - 802b6f4: 631a str r2, [r3, #48] ; 0x30 + 802b65c: 68fb ldr r3, [r7, #12] + 802b65e: 2200 movs r2, #0 + 802b660: 631a str r2, [r3, #48] ; 0x30 colorwheel->last_change_time = 0; - 802b6f6: 68fb ldr r3, [r7, #12] - 802b6f8: 2200 movs r2, #0 - 802b6fa: 635a str r2, [r3, #52] ; 0x34 + 802b662: 68fb ldr r3, [r7, #12] + 802b664: 2200 movs r2, #0 + 802b666: 635a str r2, [r3, #52] ; 0x34 colorwheel->knob.recolor = create_knob_recolor; - 802b6fc: 4b0c ldr r3, [pc, #48] ; (802b730 ) - 802b6fe: 7819 ldrb r1, [r3, #0] - 802b700: 68fa ldr r2, [r7, #12] - 802b702: f892 302c ldrb.w r3, [r2, #44] ; 0x2c - 802b706: f361 0300 bfi r3, r1, #0, #1 - 802b70a: f882 302c strb.w r3, [r2, #44] ; 0x2c + 802b668: 4b0c ldr r3, [pc, #48] ; (802b69c ) + 802b66a: 7819 ldrb r1, [r3, #0] + 802b66c: 68fa ldr r2, [r7, #12] + 802b66e: f892 302c ldrb.w r3, [r2, #44] ; 0x2c + 802b672: f361 0300 bfi r3, r1, #0, #1 + 802b676: f882 302c strb.w r3, [r2, #44] ; 0x2c lv_obj_add_flag(obj, LV_OBJ_FLAG_ADV_HITTEST); - 802b70e: f44f 3180 mov.w r1, #65536 ; 0x10000 - 802b712: 6838 ldr r0, [r7, #0] - 802b714: f7da ff50 bl 80065b8 + 802b67a: f44f 3180 mov.w r1, #65536 ; 0x10000 + 802b67e: 6838 ldr r0, [r7, #0] + 802b680: f7da ff64 bl 800654c lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN); - 802b718: f44f 7140 mov.w r1, #768 ; 0x300 - 802b71c: 6838 ldr r0, [r7, #0] - 802b71e: f7da ff9f bl 8006660 + 802b684: f44f 7140 mov.w r1, #768 ; 0x300 + 802b688: 6838 ldr r0, [r7, #0] + 802b68a: f7da ffb3 bl 80065f4 refr_knob_pos(obj); - 802b722: 6838 ldr r0, [r7, #0] - 802b724: f000 fd88 bl 802c238 + 802b68e: 6838 ldr r0, [r7, #0] + 802b690: f000 fd88 bl 802c1a4 } - 802b728: bf00 nop - 802b72a: 3710 adds r7, #16 - 802b72c: 46bd mov sp, r7 - 802b72e: bd80 pop {r7, pc} - 802b730: 20001cc0 .word 0x20001cc0 + 802b694: bf00 nop + 802b696: 3710 adds r7, #16 + 802b698: 46bd mov sp, r7 + 802b69a: bd80 pop {r7, pc} + 802b69c: 20001cc0 .word 0x20001cc0 -0802b734 : +0802b6a0 : static void draw_disc_grad(lv_event_t * e) { - 802b734: b590 push {r4, r7, lr} - 802b736: b09f sub sp, #124 ; 0x7c - 802b738: af00 add r7, sp, #0 - 802b73a: 6078 str r0, [r7, #4] + 802b6a0: b590 push {r4, r7, lr} + 802b6a2: b09f sub sp, #124 ; 0x7c + 802b6a4: af00 add r7, sp, #0 + 802b6a6: 6078 str r0, [r7, #4] lv_obj_t * obj = lv_event_get_target(e); - 802b73c: 6878 ldr r0, [r7, #4] - 802b73e: f7d6 ff1f bl 8002580 - 802b742: 66f8 str r0, [r7, #108] ; 0x6c + 802b6a8: 6878 ldr r0, [r7, #4] + 802b6aa: f7d6 ff33 bl 8002514 + 802b6ae: 66f8 str r0, [r7, #108] ; 0x6c lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 802b744: 6878 ldr r0, [r7, #4] - 802b746: f7d7 f831 bl 80027ac - 802b74a: 66b8 str r0, [r7, #104] ; 0x68 + 802b6b0: 6878 ldr r0, [r7, #4] + 802b6b2: f7d7 f845 bl 8002740 + 802b6b6: 66b8 str r0, [r7, #104] ; 0x68 lv_coord_t w = lv_obj_get_width(obj); - 802b74c: 6ef8 ldr r0, [r7, #108] ; 0x6c - 802b74e: f7de fcfb bl 800a148 - 802b752: 4603 mov r3, r0 - 802b754: f8a7 3066 strh.w r3, [r7, #102] ; 0x66 + 802b6b8: 6ef8 ldr r0, [r7, #108] ; 0x6c + 802b6ba: f7de fd0f bl 800a0dc + 802b6be: 4603 mov r3, r0 + 802b6c0: f8a7 3066 strh.w r3, [r7, #102] ; 0x66 lv_coord_t h = lv_obj_get_height(obj); - 802b758: 6ef8 ldr r0, [r7, #108] ; 0x6c - 802b75a: f7de fd03 bl 800a164 - 802b75e: 4603 mov r3, r0 - 802b760: f8a7 3064 strh.w r3, [r7, #100] ; 0x64 + 802b6c4: 6ef8 ldr r0, [r7, #108] ; 0x6c + 802b6c6: f7de fd17 bl 800a0f8 + 802b6ca: 4603 mov r3, r0 + 802b6cc: f8a7 3064 strh.w r3, [r7, #100] ; 0x64 lv_coord_t cx = obj->coords.x1 + w / 2; - 802b764: 6efb ldr r3, [r7, #108] ; 0x6c - 802b766: f9b3 3014 ldrsh.w r3, [r3, #20] - 802b76a: b29a uxth r2, r3 - 802b76c: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 - 802b770: 0fd9 lsrs r1, r3, #31 - 802b772: 440b add r3, r1 - 802b774: 105b asrs r3, r3, #1 - 802b776: b21b sxth r3, r3 - 802b778: b29b uxth r3, r3 - 802b77a: 4413 add r3, r2 - 802b77c: b29b uxth r3, r3 - 802b77e: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 + 802b6d0: 6efb ldr r3, [r7, #108] ; 0x6c + 802b6d2: f9b3 3014 ldrsh.w r3, [r3, #20] + 802b6d6: b29a uxth r2, r3 + 802b6d8: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 + 802b6dc: 0fd9 lsrs r1, r3, #31 + 802b6de: 440b add r3, r1 + 802b6e0: 105b asrs r3, r3, #1 + 802b6e2: b21b sxth r3, r3 + 802b6e4: b29b uxth r3, r3 + 802b6e6: 4413 add r3, r2 + 802b6e8: b29b uxth r3, r3 + 802b6ea: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 lv_coord_t cy = obj->coords.y1 + h / 2; - 802b782: 6efb ldr r3, [r7, #108] ; 0x6c - 802b784: f9b3 3016 ldrsh.w r3, [r3, #22] - 802b788: b29a uxth r2, r3 - 802b78a: f9b7 3064 ldrsh.w r3, [r7, #100] ; 0x64 - 802b78e: 0fd9 lsrs r1, r3, #31 - 802b790: 440b add r3, r1 - 802b792: 105b asrs r3, r3, #1 - 802b794: b21b sxth r3, r3 - 802b796: b29b uxth r3, r3 - 802b798: 4413 add r3, r2 - 802b79a: b29b uxth r3, r3 - 802b79c: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 + 802b6ee: 6efb ldr r3, [r7, #108] ; 0x6c + 802b6f0: f9b3 3016 ldrsh.w r3, [r3, #22] + 802b6f4: b29a uxth r2, r3 + 802b6f6: f9b7 3064 ldrsh.w r3, [r7, #100] ; 0x64 + 802b6fa: 0fd9 lsrs r1, r3, #31 + 802b6fc: 440b add r3, r1 + 802b6fe: 105b asrs r3, r3, #1 + 802b700: b21b sxth r3, r3 + 802b702: b29b uxth r3, r3 + 802b704: 4413 add r3, r2 + 802b706: b29b uxth r3, r3 + 802b708: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 lv_coord_t r = w / 2; - 802b7a0: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 - 802b7a4: 0fda lsrs r2, r3, #31 - 802b7a6: 4413 add r3, r2 - 802b7a8: 105b asrs r3, r3, #1 - 802b7aa: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 802b70c: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 + 802b710: 0fda lsrs r2, r3, #31 + 802b712: 4413 add r3, r2 + 802b714: 105b asrs r3, r3, #1 + 802b716: f8a7 305e strh.w r3, [r7, #94] ; 0x5e lv_draw_line_dsc_t line_dsc; lv_draw_line_dsc_init(&line_dsc); - 802b7ae: f107 0348 add.w r3, r7, #72 ; 0x48 - 802b7b2: 4618 mov r0, r3 - 802b7b4: f7e7 fbc7 bl 8012f46 + 802b71a: f107 0348 add.w r3, r7, #72 ; 0x48 + 802b71e: 4618 mov r0, r3 + 802b720: f7e7 fbc7 bl 8012eb2 lv_obj_init_draw_line_dsc(obj, LV_PART_MAIN, &line_dsc); - 802b7b8: f107 0348 add.w r3, r7, #72 ; 0x48 - 802b7bc: 461a mov r2, r3 - 802b7be: 2100 movs r1, #0 - 802b7c0: 6ef8 ldr r0, [r7, #108] ; 0x6c - 802b7c2: f7dd f9d1 bl 8008b68 + 802b724: f107 0348 add.w r3, r7, #72 ; 0x48 + 802b728: 461a mov r2, r3 + 802b72a: 2100 movs r1, #0 + 802b72c: 6ef8 ldr r0, [r7, #108] ; 0x6c + 802b72e: f7dd f9e5 bl 8008afc line_dsc.width = (r * 628 / (256 / LV_CPICKER_DEF_QF)) / 100; - 802b7c6: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e - 802b7ca: f44f 721d mov.w r2, #628 ; 0x274 - 802b7ce: fb02 f303 mul.w r3, r2, r3 - 802b7d2: 4a85 ldr r2, [pc, #532] ; (802b9e8 ) - 802b7d4: fb82 1203 smull r1, r2, r2, r3 - 802b7d8: 1312 asrs r2, r2, #12 - 802b7da: 17db asrs r3, r3, #31 - 802b7dc: 1ad3 subs r3, r2, r3 - 802b7de: b21b sxth r3, r3 - 802b7e0: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 802b732: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e + 802b736: f44f 721d mov.w r2, #628 ; 0x274 + 802b73a: fb02 f303 mul.w r3, r2, r3 + 802b73e: 4a85 ldr r2, [pc, #532] ; (802b954 ) + 802b740: fb82 1203 smull r1, r2, r2, r3 + 802b744: 1312 asrs r2, r2, #12 + 802b746: 17db asrs r3, r3, #31 + 802b748: 1ad3 subs r3, r2, r3 + 802b74a: b21b sxth r3, r3 + 802b74c: f8a7 304a strh.w r3, [r7, #74] ; 0x4a line_dsc.width += 2; - 802b7e4: f9b7 304a ldrsh.w r3, [r7, #74] ; 0x4a - 802b7e8: b29b uxth r3, r3 - 802b7ea: 3302 adds r3, #2 - 802b7ec: b29b uxth r3, r3 - 802b7ee: b21b sxth r3, r3 - 802b7f0: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 802b750: f9b7 304a ldrsh.w r3, [r7, #74] ; 0x4a + 802b754: b29b uxth r3, r3 + 802b756: 3302 adds r3, #2 + 802b758: b29b uxth r3, r3 + 802b75a: b21b sxth r3, r3 + 802b75c: f8a7 304a strh.w r3, [r7, #74] ; 0x4a uint16_t i; uint32_t a = 0; - 802b7f4: 2300 movs r3, #0 - 802b7f6: 673b str r3, [r7, #112] ; 0x70 + 802b760: 2300 movs r3, #0 + 802b762: 673b str r3, [r7, #112] ; 0x70 lv_coord_t cir_w = lv_obj_get_style_arc_width(obj, LV_PART_MAIN); - 802b7f8: 2100 movs r1, #0 - 802b7fa: 6ef8 ldr r0, [r7, #108] ; 0x6c - 802b7fc: f7ff fee8 bl 802b5d0 - 802b800: 4603 mov r3, r0 - 802b802: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 802b764: 2100 movs r1, #0 + 802b766: 6ef8 ldr r0, [r7, #108] ; 0x6c + 802b768: f7ff fee8 bl 802b53c + 802b76c: 4603 mov r3, r0 + 802b76e: f8a7 305c strh.w r3, [r7, #92] ; 0x5c #if LV_DRAW_COMPLEX /*Mask outer and inner ring of widget to tidy up ragged edges of lines while drawing outer ring*/ lv_draw_mask_radius_param_t mask_out_param; lv_draw_mask_radius_init(&mask_out_param, &obj->coords, LV_RADIUS_CIRCLE, false); - 802b806: 6efb ldr r3, [r7, #108] ; 0x6c - 802b808: f103 0114 add.w r1, r3, #20 - 802b80c: f107 0030 add.w r0, r7, #48 ; 0x30 - 802b810: 2300 movs r3, #0 - 802b812: f647 72ff movw r2, #32767 ; 0x7fff - 802b816: f7e7 ffeb bl 80137f0 + 802b772: 6efb ldr r3, [r7, #108] ; 0x6c + 802b774: f103 0114 add.w r1, r3, #20 + 802b778: f107 0030 add.w r0, r7, #48 ; 0x30 + 802b77c: 2300 movs r3, #0 + 802b77e: f647 72ff movw r2, #32767 ; 0x7fff + 802b782: f7e7 ffeb bl 801375c int16_t mask_out_id = lv_draw_mask_add(&mask_out_param, 0); - 802b81a: f107 0330 add.w r3, r7, #48 ; 0x30 - 802b81e: 2100 movs r1, #0 - 802b820: 4618 mov r0, r3 - 802b822: f7e7 fc0f bl 8013044 - 802b826: 4603 mov r3, r0 - 802b828: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 802b786: f107 0330 add.w r3, r7, #48 ; 0x30 + 802b78a: 2100 movs r1, #0 + 802b78c: 4618 mov r0, r3 + 802b78e: f7e7 fc0f bl 8012fb0 + 802b792: 4603 mov r3, r0 + 802b794: f8a7 305a strh.w r3, [r7, #90] ; 0x5a lv_area_t mask_area; lv_area_copy(&mask_area, &obj->coords); - 802b82c: 6efb ldr r3, [r7, #108] ; 0x6c - 802b82e: f103 0214 add.w r2, r3, #20 - 802b832: f107 0328 add.w r3, r7, #40 ; 0x28 - 802b836: 4611 mov r1, r2 - 802b838: 4618 mov r0, r3 - 802b83a: f7ff fe0a bl 802b452 + 802b798: 6efb ldr r3, [r7, #108] ; 0x6c + 802b79a: f103 0214 add.w r2, r3, #20 + 802b79e: f107 0328 add.w r3, r7, #40 ; 0x28 + 802b7a2: 4611 mov r1, r2 + 802b7a4: 4618 mov r0, r3 + 802b7a6: f7ff fe0a bl 802b3be mask_area.x1 += cir_w; - 802b83e: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 - 802b842: b29a uxth r2, r3 - 802b844: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c - 802b848: 4413 add r3, r2 - 802b84a: b29b uxth r3, r3 - 802b84c: b21b sxth r3, r3 - 802b84e: 853b strh r3, [r7, #40] ; 0x28 + 802b7aa: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 802b7ae: b29a uxth r2, r3 + 802b7b0: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c + 802b7b4: 4413 add r3, r2 + 802b7b6: b29b uxth r3, r3 + 802b7b8: b21b sxth r3, r3 + 802b7ba: 853b strh r3, [r7, #40] ; 0x28 mask_area.x2 -= cir_w; - 802b850: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 802b854: b29a uxth r2, r3 - 802b856: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c - 802b85a: 1ad3 subs r3, r2, r3 - 802b85c: b29b uxth r3, r3 - 802b85e: b21b sxth r3, r3 - 802b860: 85bb strh r3, [r7, #44] ; 0x2c + 802b7bc: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 802b7c0: b29a uxth r2, r3 + 802b7c2: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c + 802b7c6: 1ad3 subs r3, r2, r3 + 802b7c8: b29b uxth r3, r3 + 802b7ca: b21b sxth r3, r3 + 802b7cc: 85bb strh r3, [r7, #44] ; 0x2c mask_area.y1 += cir_w; - 802b862: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a - 802b866: b29a uxth r2, r3 - 802b868: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c - 802b86c: 4413 add r3, r2 - 802b86e: b29b uxth r3, r3 - 802b870: b21b sxth r3, r3 - 802b872: 857b strh r3, [r7, #42] ; 0x2a + 802b7ce: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a + 802b7d2: b29a uxth r2, r3 + 802b7d4: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c + 802b7d8: 4413 add r3, r2 + 802b7da: b29b uxth r3, r3 + 802b7dc: b21b sxth r3, r3 + 802b7de: 857b strh r3, [r7, #42] ; 0x2a mask_area.y2 -= cir_w; - 802b874: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 802b878: b29a uxth r2, r3 - 802b87a: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c - 802b87e: 1ad3 subs r3, r2, r3 - 802b880: b29b uxth r3, r3 - 802b882: b21b sxth r3, r3 - 802b884: 85fb strh r3, [r7, #46] ; 0x2e + 802b7e0: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 802b7e4: b29a uxth r2, r3 + 802b7e6: f8b7 305c ldrh.w r3, [r7, #92] ; 0x5c + 802b7ea: 1ad3 subs r3, r2, r3 + 802b7ec: b29b uxth r3, r3 + 802b7ee: b21b sxth r3, r3 + 802b7f0: 85fb strh r3, [r7, #46] ; 0x2e lv_draw_mask_radius_param_t mask_in_param; lv_draw_mask_radius_init(&mask_in_param, &mask_area, LV_RADIUS_CIRCLE, true); - 802b886: f107 0128 add.w r1, r7, #40 ; 0x28 - 802b88a: f107 0010 add.w r0, r7, #16 - 802b88e: 2301 movs r3, #1 - 802b890: f647 72ff movw r2, #32767 ; 0x7fff - 802b894: f7e7 ffac bl 80137f0 + 802b7f2: f107 0128 add.w r1, r7, #40 ; 0x28 + 802b7f6: f107 0010 add.w r0, r7, #16 + 802b7fa: 2301 movs r3, #1 + 802b7fc: f647 72ff movw r2, #32767 ; 0x7fff + 802b800: f7e7 ffac bl 801375c int16_t mask_in_id = lv_draw_mask_add(&mask_in_param, 0); - 802b898: f107 0310 add.w r3, r7, #16 - 802b89c: 2100 movs r1, #0 - 802b89e: 4618 mov r0, r3 - 802b8a0: f7e7 fbd0 bl 8013044 - 802b8a4: 4603 mov r3, r0 - 802b8a6: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 + 802b804: f107 0310 add.w r3, r7, #16 + 802b808: 2100 movs r1, #0 + 802b80a: 4618 mov r0, r3 + 802b80c: f7e7 fbd0 bl 8012fb0 + 802b810: 4603 mov r3, r0 + 802b812: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 /*The inner and outer line ends will be masked out. *So make lines a little bit longer because the masking makes a more even result*/ lv_coord_t cir_w_extra = line_dsc.width; - 802b8aa: f8b7 304a ldrh.w r3, [r7, #74] ; 0x4a - 802b8ae: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 802b816: f8b7 304a ldrh.w r3, [r7, #74] ; 0x4a + 802b81a: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 #else lv_coord_t cir_w_extra = 0; #endif for(i = 0; i <= 256; i += LV_CPICKER_DEF_QF, a += 360 * LV_CPICKER_DEF_QF) { - 802b8b2: 2300 movs r3, #0 - 802b8b4: f8a7 3076 strh.w r3, [r7, #118] ; 0x76 - 802b8b8: e078 b.n 802b9ac + 802b81e: 2300 movs r3, #0 + 802b820: f8a7 3076 strh.w r3, [r7, #118] ; 0x76 + 802b824: e078 b.n 802b918 line_dsc.color = angle_to_mode_color_fast(obj, i); - 802b8ba: f8b7 3076 ldrh.w r3, [r7, #118] ; 0x76 - 802b8be: 4619 mov r1, r3 - 802b8c0: 6ef8 ldr r0, [r7, #108] ; 0x6c - 802b8c2: f000 fe09 bl 802c4d8 - 802b8c6: f8a7 0048 strh.w r0, [r7, #72] ; 0x48 + 802b826: f8b7 3076 ldrh.w r3, [r7, #118] ; 0x76 + 802b82a: 4619 mov r1, r3 + 802b82c: 6ef8 ldr r0, [r7, #108] ; 0x6c + 802b82e: f000 fe09 bl 802c444 + 802b832: f8a7 0048 strh.w r0, [r7, #72] ; 0x48 uint16_t angle_trigo = (uint16_t)(a >> 8); /*i * 360 / 256 is the scale to apply, but we can skip multiplication here*/ - 802b8ca: 6f3b ldr r3, [r7, #112] ; 0x70 - 802b8cc: 0a1b lsrs r3, r3, #8 - 802b8ce: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 + 802b836: 6f3b ldr r3, [r7, #112] ; 0x70 + 802b838: 0a1b lsrs r3, r3, #8 + 802b83a: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 lv_point_t p[2]; p[0].x = cx + ((r + cir_w_extra) * lv_trigo_sin(angle_trigo) >> LV_TRIGO_SHIFT); - 802b8d2: f9b7 205e ldrsh.w r2, [r7, #94] ; 0x5e - 802b8d6: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 802b8da: 18d4 adds r4, r2, r3 - 802b8dc: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 - 802b8e0: 4618 mov r0, r3 - 802b8e2: f006 fdf3 bl 80324cc - 802b8e6: 4603 mov r3, r0 - 802b8e8: fb04 f303 mul.w r3, r4, r3 - 802b8ec: 13db asrs r3, r3, #15 - 802b8ee: b29a uxth r2, r3 - 802b8f0: f8b7 3062 ldrh.w r3, [r7, #98] ; 0x62 - 802b8f4: 4413 add r3, r2 - 802b8f6: b29b uxth r3, r3 - 802b8f8: b21b sxth r3, r3 - 802b8fa: 813b strh r3, [r7, #8] + 802b83e: f9b7 205e ldrsh.w r2, [r7, #94] ; 0x5e + 802b842: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 802b846: 18d4 adds r4, r2, r3 + 802b848: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 + 802b84c: 4618 mov r0, r3 + 802b84e: f006 fdf3 bl 8032438 + 802b852: 4603 mov r3, r0 + 802b854: fb04 f303 mul.w r3, r4, r3 + 802b858: 13db asrs r3, r3, #15 + 802b85a: b29a uxth r2, r3 + 802b85c: f8b7 3062 ldrh.w r3, [r7, #98] ; 0x62 + 802b860: 4413 add r3, r2 + 802b862: b29b uxth r3, r3 + 802b864: b21b sxth r3, r3 + 802b866: 813b strh r3, [r7, #8] p[0].y = cy + ((r + cir_w_extra) * lv_trigo_cos(angle_trigo) >> LV_TRIGO_SHIFT); - 802b8fc: f9b7 205e ldrsh.w r2, [r7, #94] ; 0x5e - 802b900: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 802b904: 18d4 adds r4, r2, r3 - 802b906: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 - 802b90a: 4618 mov r0, r3 - 802b90c: f7ff fd90 bl 802b430 - 802b910: 4603 mov r3, r0 - 802b912: fb04 f303 mul.w r3, r4, r3 - 802b916: 13db asrs r3, r3, #15 - 802b918: b29a uxth r2, r3 - 802b91a: f8b7 3060 ldrh.w r3, [r7, #96] ; 0x60 - 802b91e: 4413 add r3, r2 - 802b920: b29b uxth r3, r3 - 802b922: b21b sxth r3, r3 - 802b924: 817b strh r3, [r7, #10] + 802b868: f9b7 205e ldrsh.w r2, [r7, #94] ; 0x5e + 802b86c: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 802b870: 18d4 adds r4, r2, r3 + 802b872: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 + 802b876: 4618 mov r0, r3 + 802b878: f7ff fd90 bl 802b39c + 802b87c: 4603 mov r3, r0 + 802b87e: fb04 f303 mul.w r3, r4, r3 + 802b882: 13db asrs r3, r3, #15 + 802b884: b29a uxth r2, r3 + 802b886: f8b7 3060 ldrh.w r3, [r7, #96] ; 0x60 + 802b88a: 4413 add r3, r2 + 802b88c: b29b uxth r3, r3 + 802b88e: b21b sxth r3, r3 + 802b890: 817b strh r3, [r7, #10] p[1].x = cx + ((r - cir_w - cir_w_extra) * lv_trigo_sin(angle_trigo) >> LV_TRIGO_SHIFT); - 802b926: f9b7 205e ldrsh.w r2, [r7, #94] ; 0x5e - 802b92a: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c - 802b92e: 1ad2 subs r2, r2, r3 - 802b930: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 802b934: 1ad4 subs r4, r2, r3 - 802b936: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 - 802b93a: 4618 mov r0, r3 - 802b93c: f006 fdc6 bl 80324cc - 802b940: 4603 mov r3, r0 - 802b942: fb04 f303 mul.w r3, r4, r3 - 802b946: 13db asrs r3, r3, #15 - 802b948: b29a uxth r2, r3 - 802b94a: f8b7 3062 ldrh.w r3, [r7, #98] ; 0x62 - 802b94e: 4413 add r3, r2 - 802b950: b29b uxth r3, r3 - 802b952: b21b sxth r3, r3 - 802b954: 81bb strh r3, [r7, #12] + 802b892: f9b7 205e ldrsh.w r2, [r7, #94] ; 0x5e + 802b896: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c + 802b89a: 1ad2 subs r2, r2, r3 + 802b89c: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 802b8a0: 1ad4 subs r4, r2, r3 + 802b8a2: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 + 802b8a6: 4618 mov r0, r3 + 802b8a8: f006 fdc6 bl 8032438 + 802b8ac: 4603 mov r3, r0 + 802b8ae: fb04 f303 mul.w r3, r4, r3 + 802b8b2: 13db asrs r3, r3, #15 + 802b8b4: b29a uxth r2, r3 + 802b8b6: f8b7 3062 ldrh.w r3, [r7, #98] ; 0x62 + 802b8ba: 4413 add r3, r2 + 802b8bc: b29b uxth r3, r3 + 802b8be: b21b sxth r3, r3 + 802b8c0: 81bb strh r3, [r7, #12] p[1].y = cy + ((r - cir_w - cir_w_extra) * lv_trigo_cos(angle_trigo) >> LV_TRIGO_SHIFT); - 802b956: f9b7 205e ldrsh.w r2, [r7, #94] ; 0x5e - 802b95a: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c - 802b95e: 1ad2 subs r2, r2, r3 - 802b960: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 802b964: 1ad4 subs r4, r2, r3 - 802b966: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 - 802b96a: 4618 mov r0, r3 - 802b96c: f7ff fd60 bl 802b430 - 802b970: 4603 mov r3, r0 - 802b972: fb04 f303 mul.w r3, r4, r3 - 802b976: 13db asrs r3, r3, #15 - 802b978: b29a uxth r2, r3 - 802b97a: f8b7 3060 ldrh.w r3, [r7, #96] ; 0x60 - 802b97e: 4413 add r3, r2 - 802b980: b29b uxth r3, r3 - 802b982: b21b sxth r3, r3 - 802b984: 81fb strh r3, [r7, #14] + 802b8c2: f9b7 205e ldrsh.w r2, [r7, #94] ; 0x5e + 802b8c6: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c + 802b8ca: 1ad2 subs r2, r2, r3 + 802b8cc: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 802b8d0: 1ad4 subs r4, r2, r3 + 802b8d2: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 + 802b8d6: 4618 mov r0, r3 + 802b8d8: f7ff fd60 bl 802b39c + 802b8dc: 4603 mov r3, r0 + 802b8de: fb04 f303 mul.w r3, r4, r3 + 802b8e2: 13db asrs r3, r3, #15 + 802b8e4: b29a uxth r2, r3 + 802b8e6: f8b7 3060 ldrh.w r3, [r7, #96] ; 0x60 + 802b8ea: 4413 add r3, r2 + 802b8ec: b29b uxth r3, r3 + 802b8ee: b21b sxth r3, r3 + 802b8f0: 81fb strh r3, [r7, #14] lv_draw_line(draw_ctx, &line_dsc, &p[0], &p[1]); - 802b986: f107 0308 add.w r3, r7, #8 - 802b98a: 3304 adds r3, #4 - 802b98c: f107 0208 add.w r2, r7, #8 - 802b990: f107 0148 add.w r1, r7, #72 ; 0x48 - 802b994: 6eb8 ldr r0, [r7, #104] ; 0x68 - 802b996: f7e7 faec bl 8012f72 + 802b8f2: f107 0308 add.w r3, r7, #8 + 802b8f6: 3304 adds r3, #4 + 802b8f8: f107 0208 add.w r2, r7, #8 + 802b8fc: f107 0148 add.w r1, r7, #72 ; 0x48 + 802b900: 6eb8 ldr r0, [r7, #104] ; 0x68 + 802b902: f7e7 faec bl 8012ede for(i = 0; i <= 256; i += LV_CPICKER_DEF_QF, a += 360 * LV_CPICKER_DEF_QF) { - 802b99a: f8b7 3076 ldrh.w r3, [r7, #118] ; 0x76 - 802b99e: 3303 adds r3, #3 - 802b9a0: f8a7 3076 strh.w r3, [r7, #118] ; 0x76 - 802b9a4: 6f3b ldr r3, [r7, #112] ; 0x70 - 802b9a6: f503 6387 add.w r3, r3, #1080 ; 0x438 - 802b9aa: 673b str r3, [r7, #112] ; 0x70 - 802b9ac: f8b7 3076 ldrh.w r3, [r7, #118] ; 0x76 - 802b9b0: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 802b9b4: d981 bls.n 802b8ba + 802b906: f8b7 3076 ldrh.w r3, [r7, #118] ; 0x76 + 802b90a: 3303 adds r3, #3 + 802b90c: f8a7 3076 strh.w r3, [r7, #118] ; 0x76 + 802b910: 6f3b ldr r3, [r7, #112] ; 0x70 + 802b912: f503 6387 add.w r3, r3, #1080 ; 0x438 + 802b916: 673b str r3, [r7, #112] ; 0x70 + 802b918: f8b7 3076 ldrh.w r3, [r7, #118] ; 0x76 + 802b91c: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 802b920: d981 bls.n 802b826 } #if LV_DRAW_COMPLEX lv_draw_mask_free_param(&mask_out_param); - 802b9b6: f107 0330 add.w r3, r7, #48 ; 0x30 - 802b9ba: 4618 mov r0, r3 - 802b9bc: f7e7 fc06 bl 80131cc + 802b922: f107 0330 add.w r3, r7, #48 ; 0x30 + 802b926: 4618 mov r0, r3 + 802b928: f7e7 fc06 bl 8013138 lv_draw_mask_free_param(&mask_in_param); - 802b9c0: f107 0310 add.w r3, r7, #16 - 802b9c4: 4618 mov r0, r3 - 802b9c6: f7e7 fc01 bl 80131cc + 802b92c: f107 0310 add.w r3, r7, #16 + 802b930: 4618 mov r0, r3 + 802b932: f7e7 fc01 bl 8013138 lv_draw_mask_remove_id(mask_out_id); - 802b9ca: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a - 802b9ce: 4618 mov r0, r3 - 802b9d0: f7e7 fbac bl 801312c + 802b936: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a + 802b93a: 4618 mov r0, r3 + 802b93c: f7e7 fbac bl 8013098 lv_draw_mask_remove_id(mask_in_id); - 802b9d4: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 802b9d8: 4618 mov r0, r3 - 802b9da: f7e7 fba7 bl 801312c + 802b940: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 802b944: 4618 mov r0, r3 + 802b946: f7e7 fba7 bl 8013098 #endif } - 802b9de: bf00 nop - 802b9e0: 377c adds r7, #124 ; 0x7c - 802b9e2: 46bd mov sp, r7 - 802b9e4: bd90 pop {r4, r7, pc} - 802b9e6: bf00 nop - 802b9e8: 7b5ca453 .word 0x7b5ca453 + 802b94a: bf00 nop + 802b94c: 377c adds r7, #124 ; 0x7c + 802b94e: 46bd mov sp, r7 + 802b950: bd90 pop {r4, r7, pc} + 802b952: bf00 nop + 802b954: 7b5ca453 .word 0x7b5ca453 -0802b9ec : +0802b958 : static void draw_knob(lv_event_t * e) { - 802b9ec: b580 push {r7, lr} - 802b9ee: b096 sub sp, #88 ; 0x58 - 802b9f0: af00 add r7, sp, #0 - 802b9f2: 6078 str r0, [r7, #4] + 802b958: b580 push {r7, lr} + 802b95a: b096 sub sp, #88 ; 0x58 + 802b95c: af00 add r7, sp, #0 + 802b95e: 6078 str r0, [r7, #4] lv_obj_t * obj = lv_event_get_target(e); - 802b9f4: 6878 ldr r0, [r7, #4] - 802b9f6: f7d6 fdc3 bl 8002580 - 802b9fa: 6578 str r0, [r7, #84] ; 0x54 + 802b960: 6878 ldr r0, [r7, #4] + 802b962: f7d6 fdd7 bl 8002514 + 802b966: 6578 str r0, [r7, #84] ; 0x54 lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 802b9fc: 6878 ldr r0, [r7, #4] - 802b9fe: f7d6 fed5 bl 80027ac - 802ba02: 6538 str r0, [r7, #80] ; 0x50 + 802b968: 6878 ldr r0, [r7, #4] + 802b96a: f7d6 fee9 bl 8002740 + 802b96e: 6538 str r0, [r7, #80] ; 0x50 lv_colorwheel_t * colorwheel = (lv_colorwheel_t *)obj; - 802ba04: 6d7b ldr r3, [r7, #84] ; 0x54 - 802ba06: 64fb str r3, [r7, #76] ; 0x4c + 802b970: 6d7b ldr r3, [r7, #84] ; 0x54 + 802b972: 64fb str r3, [r7, #76] ; 0x4c lv_draw_rect_dsc_t cir_dsc; lv_draw_rect_dsc_init(&cir_dsc); - 802ba08: f107 0314 add.w r3, r7, #20 - 802ba0c: 4618 mov r0, r3 - 802ba0e: f7e9 fef1 bl 80157f4 + 802b974: f107 0314 add.w r3, r7, #20 + 802b978: 4618 mov r0, r3 + 802b97a: f7e9 fef1 bl 8015760 lv_obj_init_draw_rect_dsc(obj, LV_PART_KNOB, &cir_dsc); - 802ba12: f107 0314 add.w r3, r7, #20 - 802ba16: 461a mov r2, r3 - 802ba18: f44f 3140 mov.w r1, #196608 ; 0x30000 - 802ba1c: 6d78 ldr r0, [r7, #84] ; 0x54 - 802ba1e: f7dc fdd2 bl 80085c6 + 802b97e: f107 0314 add.w r3, r7, #20 + 802b982: 461a mov r2, r3 + 802b984: f44f 3140 mov.w r1, #196608 ; 0x30000 + 802b988: 6d78 ldr r0, [r7, #84] ; 0x54 + 802b98a: f7dc fde6 bl 800855a cir_dsc.radius = LV_RADIUS_CIRCLE; - 802ba22: f647 73ff movw r3, #32767 ; 0x7fff - 802ba26: 82bb strh r3, [r7, #20] + 802b98e: f647 73ff movw r3, #32767 ; 0x7fff + 802b992: 82bb strh r3, [r7, #20] if(colorwheel->knob.recolor) { - 802ba28: 6cfb ldr r3, [r7, #76] ; 0x4c - 802ba2a: f893 302c ldrb.w r3, [r3, #44] ; 0x2c - 802ba2e: f003 0301 and.w r3, r3, #1 - 802ba32: b2db uxtb r3, r3 - 802ba34: 2b00 cmp r3, #0 - 802ba36: d003 beq.n 802ba40 + 802b994: 6cfb ldr r3, [r7, #76] ; 0x4c + 802b996: f893 302c ldrb.w r3, [r3, #44] ; 0x2c + 802b99a: f003 0301 and.w r3, r3, #1 + 802b99e: b2db uxtb r3, r3 + 802b9a0: 2b00 cmp r3, #0 + 802b9a2: d003 beq.n 802b9ac cir_dsc.bg_color = lv_colorwheel_get_rgb(obj); - 802ba38: 6d78 ldr r0, [r7, #84] ; 0x54 - 802ba3a: f7ff fe23 bl 802b684 - 802ba3e: 8338 strh r0, [r7, #24] + 802b9a4: 6d78 ldr r0, [r7, #84] ; 0x54 + 802b9a6: f7ff fe23 bl 802b5f0 + 802b9aa: 8338 strh r0, [r7, #24] } lv_area_t knob_area = get_knob_area(obj); - 802ba40: f107 030c add.w r3, r7, #12 - 802ba44: 6d79 ldr r1, [r7, #84] ; 0x54 - 802ba46: 4618 mov r0, r3 - 802ba48: f000 f820 bl 802ba8c + 802b9ac: f107 030c add.w r3, r7, #12 + 802b9b0: 6d79 ldr r1, [r7, #84] ; 0x54 + 802b9b2: 4618 mov r0, r3 + 802b9b4: f000 f820 bl 802b9f8 lv_draw_rect(draw_ctx, &cir_dsc, &knob_area); - 802ba4c: f107 020c add.w r2, r7, #12 - 802ba50: f107 0314 add.w r3, r7, #20 - 802ba54: 4619 mov r1, r3 - 802ba56: 6d38 ldr r0, [r7, #80] ; 0x50 - 802ba58: f7e9 ff0e bl 8015878 + 802b9b8: f107 020c add.w r2, r7, #12 + 802b9bc: f107 0314 add.w r3, r7, #20 + 802b9c0: 4619 mov r1, r3 + 802b9c2: 6d38 ldr r0, [r7, #80] ; 0x50 + 802b9c4: f7e9 ff0e bl 80157e4 } - 802ba5c: bf00 nop - 802ba5e: 3758 adds r7, #88 ; 0x58 - 802ba60: 46bd mov sp, r7 - 802ba62: bd80 pop {r7, pc} + 802b9c8: bf00 nop + 802b9ca: 3758 adds r7, #88 ; 0x58 + 802b9cc: 46bd mov sp, r7 + 802b9ce: bd80 pop {r7, pc} -0802ba64 : +0802b9d0 : static void invalidate_knob(lv_obj_t * obj) { - 802ba64: b580 push {r7, lr} - 802ba66: b084 sub sp, #16 - 802ba68: af00 add r7, sp, #0 - 802ba6a: 6078 str r0, [r7, #4] + 802b9d0: b580 push {r7, lr} + 802b9d2: b084 sub sp, #16 + 802b9d4: af00 add r7, sp, #0 + 802b9d6: 6078 str r0, [r7, #4] lv_area_t knob_area = get_knob_area(obj); - 802ba6c: f107 0308 add.w r3, r7, #8 - 802ba70: 6879 ldr r1, [r7, #4] - 802ba72: 4618 mov r0, r3 - 802ba74: f000 f80a bl 802ba8c + 802b9d8: f107 0308 add.w r3, r7, #8 + 802b9dc: 6879 ldr r1, [r7, #4] + 802b9de: 4618 mov r0, r3 + 802b9e0: f000 f80a bl 802b9f8 lv_obj_invalidate_area(obj, &knob_area); - 802ba78: f107 0308 add.w r3, r7, #8 - 802ba7c: 4619 mov r1, r3 - 802ba7e: 6878 ldr r0, [r7, #4] - 802ba80: f7de fff3 bl 800aa6a + 802b9e4: f107 0308 add.w r3, r7, #8 + 802b9e8: 4619 mov r1, r3 + 802b9ea: 6878 ldr r0, [r7, #4] + 802b9ec: f7df f807 bl 800a9fe } - 802ba84: bf00 nop - 802ba86: 3710 adds r7, #16 - 802ba88: 46bd mov sp, r7 - 802ba8a: bd80 pop {r7, pc} + 802b9f0: bf00 nop + 802b9f2: 3710 adds r7, #16 + 802b9f4: 46bd mov sp, r7 + 802b9f6: bd80 pop {r7, pc} -0802ba8c : +0802b9f8 : static lv_area_t get_knob_area(lv_obj_t * obj) { - 802ba8c: b580 push {r7, lr} - 802ba8e: b088 sub sp, #32 - 802ba90: af00 add r7, sp, #0 - 802ba92: 6078 str r0, [r7, #4] - 802ba94: 6039 str r1, [r7, #0] + 802b9f8: b580 push {r7, lr} + 802b9fa: b088 sub sp, #32 + 802b9fc: af00 add r7, sp, #0 + 802b9fe: 6078 str r0, [r7, #4] + 802ba00: 6039 str r1, [r7, #0] lv_colorwheel_t * colorwheel = (lv_colorwheel_t *)obj; - 802ba96: 683b ldr r3, [r7, #0] - 802ba98: 61fb str r3, [r7, #28] + 802ba02: 683b ldr r3, [r7, #0] + 802ba04: 61fb str r3, [r7, #28] /*Get knob's radius*/ uint16_t r = 0; - 802ba9a: 2300 movs r3, #0 - 802ba9c: 837b strh r3, [r7, #26] + 802ba06: 2300 movs r3, #0 + 802ba08: 837b strh r3, [r7, #26] r = lv_obj_get_style_arc_width(obj, LV_PART_MAIN) / 2; - 802ba9e: 2100 movs r1, #0 - 802baa0: 6838 ldr r0, [r7, #0] - 802baa2: f7ff fd95 bl 802b5d0 - 802baa6: 4603 mov r3, r0 - 802baa8: 0fda lsrs r2, r3, #31 - 802baaa: 4413 add r3, r2 - 802baac: 105b asrs r3, r3, #1 - 802baae: b21b sxth r3, r3 - 802bab0: 837b strh r3, [r7, #26] + 802ba0a: 2100 movs r1, #0 + 802ba0c: 6838 ldr r0, [r7, #0] + 802ba0e: f7ff fd95 bl 802b53c + 802ba12: 4603 mov r3, r0 + 802ba14: 0fda lsrs r2, r3, #31 + 802ba16: 4413 add r3, r2 + 802ba18: 105b asrs r3, r3, #1 + 802ba1a: b21b sxth r3, r3 + 802ba1c: 837b strh r3, [r7, #26] lv_coord_t left = lv_obj_get_style_pad_left(obj, LV_PART_KNOB); - 802bab2: f44f 3140 mov.w r1, #196608 ; 0x30000 - 802bab6: 6838 ldr r0, [r7, #0] - 802bab8: f7ff fd64 bl 802b584 - 802babc: 4603 mov r3, r0 - 802babe: 833b strh r3, [r7, #24] + 802ba1e: f44f 3140 mov.w r1, #196608 ; 0x30000 + 802ba22: 6838 ldr r0, [r7, #0] + 802ba24: f7ff fd64 bl 802b4f0 + 802ba28: 4603 mov r3, r0 + 802ba2a: 833b strh r3, [r7, #24] lv_coord_t right = lv_obj_get_style_pad_right(obj, LV_PART_KNOB); - 802bac0: f44f 3140 mov.w r1, #196608 ; 0x30000 - 802bac4: 6838 ldr r0, [r7, #0] - 802bac6: f7ff fd70 bl 802b5aa - 802baca: 4603 mov r3, r0 - 802bacc: 82fb strh r3, [r7, #22] + 802ba2c: f44f 3140 mov.w r1, #196608 ; 0x30000 + 802ba30: 6838 ldr r0, [r7, #0] + 802ba32: f7ff fd70 bl 802b516 + 802ba36: 4603 mov r3, r0 + 802ba38: 82fb strh r3, [r7, #22] lv_coord_t top = lv_obj_get_style_pad_top(obj, LV_PART_KNOB); - 802bace: f44f 3140 mov.w r1, #196608 ; 0x30000 - 802bad2: 6838 ldr r0, [r7, #0] - 802bad4: f7ff fd30 bl 802b538 - 802bad8: 4603 mov r3, r0 - 802bada: 82bb strh r3, [r7, #20] + 802ba3a: f44f 3140 mov.w r1, #196608 ; 0x30000 + 802ba3e: 6838 ldr r0, [r7, #0] + 802ba40: f7ff fd30 bl 802b4a4 + 802ba44: 4603 mov r3, r0 + 802ba46: 82bb strh r3, [r7, #20] lv_coord_t bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_KNOB); - 802badc: f44f 3140 mov.w r1, #196608 ; 0x30000 - 802bae0: 6838 ldr r0, [r7, #0] - 802bae2: f7ff fd3c bl 802b55e - 802bae6: 4603 mov r3, r0 - 802bae8: 827b strh r3, [r7, #18] + 802ba48: f44f 3140 mov.w r1, #196608 ; 0x30000 + 802ba4c: 6838 ldr r0, [r7, #0] + 802ba4e: f7ff fd3c bl 802b4ca + 802ba52: 4603 mov r3, r0 + 802ba54: 827b strh r3, [r7, #18] lv_area_t knob_area; knob_area.x1 = obj->coords.x1 + colorwheel->knob.pos.x - r - left; - 802baea: 683b ldr r3, [r7, #0] - 802baec: f9b3 3014 ldrsh.w r3, [r3, #20] - 802baf0: b29a uxth r2, r3 - 802baf2: 69fb ldr r3, [r7, #28] - 802baf4: f9b3 3028 ldrsh.w r3, [r3, #40] ; 0x28 - 802baf8: b29b uxth r3, r3 - 802bafa: 4413 add r3, r2 - 802bafc: b29a uxth r2, r3 - 802bafe: 8b7b ldrh r3, [r7, #26] - 802bb00: 1ad3 subs r3, r2, r3 - 802bb02: b29a uxth r2, r3 - 802bb04: 8b3b ldrh r3, [r7, #24] - 802bb06: 1ad3 subs r3, r2, r3 - 802bb08: b29b uxth r3, r3 - 802bb0a: b21b sxth r3, r3 - 802bb0c: 813b strh r3, [r7, #8] + 802ba56: 683b ldr r3, [r7, #0] + 802ba58: f9b3 3014 ldrsh.w r3, [r3, #20] + 802ba5c: b29a uxth r2, r3 + 802ba5e: 69fb ldr r3, [r7, #28] + 802ba60: f9b3 3028 ldrsh.w r3, [r3, #40] ; 0x28 + 802ba64: b29b uxth r3, r3 + 802ba66: 4413 add r3, r2 + 802ba68: b29a uxth r2, r3 + 802ba6a: 8b7b ldrh r3, [r7, #26] + 802ba6c: 1ad3 subs r3, r2, r3 + 802ba6e: b29a uxth r2, r3 + 802ba70: 8b3b ldrh r3, [r7, #24] + 802ba72: 1ad3 subs r3, r2, r3 + 802ba74: b29b uxth r3, r3 + 802ba76: b21b sxth r3, r3 + 802ba78: 813b strh r3, [r7, #8] knob_area.y1 = obj->coords.y1 + colorwheel->knob.pos.y - r - right; - 802bb0e: 683b ldr r3, [r7, #0] - 802bb10: f9b3 3016 ldrsh.w r3, [r3, #22] - 802bb14: b29a uxth r2, r3 - 802bb16: 69fb ldr r3, [r7, #28] - 802bb18: f9b3 302a ldrsh.w r3, [r3, #42] ; 0x2a - 802bb1c: b29b uxth r3, r3 - 802bb1e: 4413 add r3, r2 - 802bb20: b29a uxth r2, r3 - 802bb22: 8b7b ldrh r3, [r7, #26] - 802bb24: 1ad3 subs r3, r2, r3 - 802bb26: b29a uxth r2, r3 - 802bb28: 8afb ldrh r3, [r7, #22] - 802bb2a: 1ad3 subs r3, r2, r3 - 802bb2c: b29b uxth r3, r3 - 802bb2e: b21b sxth r3, r3 - 802bb30: 817b strh r3, [r7, #10] + 802ba7a: 683b ldr r3, [r7, #0] + 802ba7c: f9b3 3016 ldrsh.w r3, [r3, #22] + 802ba80: b29a uxth r2, r3 + 802ba82: 69fb ldr r3, [r7, #28] + 802ba84: f9b3 302a ldrsh.w r3, [r3, #42] ; 0x2a + 802ba88: b29b uxth r3, r3 + 802ba8a: 4413 add r3, r2 + 802ba8c: b29a uxth r2, r3 + 802ba8e: 8b7b ldrh r3, [r7, #26] + 802ba90: 1ad3 subs r3, r2, r3 + 802ba92: b29a uxth r2, r3 + 802ba94: 8afb ldrh r3, [r7, #22] + 802ba96: 1ad3 subs r3, r2, r3 + 802ba98: b29b uxth r3, r3 + 802ba9a: b21b sxth r3, r3 + 802ba9c: 817b strh r3, [r7, #10] knob_area.x2 = obj->coords.x1 + colorwheel->knob.pos.x + r + top; - 802bb32: 683b ldr r3, [r7, #0] - 802bb34: f9b3 3014 ldrsh.w r3, [r3, #20] - 802bb38: b29a uxth r2, r3 - 802bb3a: 69fb ldr r3, [r7, #28] - 802bb3c: f9b3 3028 ldrsh.w r3, [r3, #40] ; 0x28 - 802bb40: b29b uxth r3, r3 - 802bb42: 4413 add r3, r2 - 802bb44: b29a uxth r2, r3 - 802bb46: 8b7b ldrh r3, [r7, #26] - 802bb48: 4413 add r3, r2 - 802bb4a: b29a uxth r2, r3 - 802bb4c: 8abb ldrh r3, [r7, #20] - 802bb4e: 4413 add r3, r2 - 802bb50: b29b uxth r3, r3 - 802bb52: b21b sxth r3, r3 - 802bb54: 81bb strh r3, [r7, #12] + 802ba9e: 683b ldr r3, [r7, #0] + 802baa0: f9b3 3014 ldrsh.w r3, [r3, #20] + 802baa4: b29a uxth r2, r3 + 802baa6: 69fb ldr r3, [r7, #28] + 802baa8: f9b3 3028 ldrsh.w r3, [r3, #40] ; 0x28 + 802baac: b29b uxth r3, r3 + 802baae: 4413 add r3, r2 + 802bab0: b29a uxth r2, r3 + 802bab2: 8b7b ldrh r3, [r7, #26] + 802bab4: 4413 add r3, r2 + 802bab6: b29a uxth r2, r3 + 802bab8: 8abb ldrh r3, [r7, #20] + 802baba: 4413 add r3, r2 + 802babc: b29b uxth r3, r3 + 802babe: b21b sxth r3, r3 + 802bac0: 81bb strh r3, [r7, #12] knob_area.y2 = obj->coords.y1 + colorwheel->knob.pos.y + r + bottom; - 802bb56: 683b ldr r3, [r7, #0] - 802bb58: f9b3 3016 ldrsh.w r3, [r3, #22] - 802bb5c: b29a uxth r2, r3 - 802bb5e: 69fb ldr r3, [r7, #28] - 802bb60: f9b3 302a ldrsh.w r3, [r3, #42] ; 0x2a - 802bb64: b29b uxth r3, r3 - 802bb66: 4413 add r3, r2 - 802bb68: b29a uxth r2, r3 - 802bb6a: 8b7b ldrh r3, [r7, #26] - 802bb6c: 4413 add r3, r2 - 802bb6e: b29a uxth r2, r3 - 802bb70: 8a7b ldrh r3, [r7, #18] - 802bb72: 4413 add r3, r2 - 802bb74: b29b uxth r3, r3 - 802bb76: b21b sxth r3, r3 - 802bb78: 81fb strh r3, [r7, #14] + 802bac2: 683b ldr r3, [r7, #0] + 802bac4: f9b3 3016 ldrsh.w r3, [r3, #22] + 802bac8: b29a uxth r2, r3 + 802baca: 69fb ldr r3, [r7, #28] + 802bacc: f9b3 302a ldrsh.w r3, [r3, #42] ; 0x2a + 802bad0: b29b uxth r3, r3 + 802bad2: 4413 add r3, r2 + 802bad4: b29a uxth r2, r3 + 802bad6: 8b7b ldrh r3, [r7, #26] + 802bad8: 4413 add r3, r2 + 802bada: b29a uxth r2, r3 + 802badc: 8a7b ldrh r3, [r7, #18] + 802bade: 4413 add r3, r2 + 802bae0: b29b uxth r3, r3 + 802bae2: b21b sxth r3, r3 + 802bae4: 81fb strh r3, [r7, #14] return knob_area; - 802bb7a: 687b ldr r3, [r7, #4] - 802bb7c: 461a mov r2, r3 - 802bb7e: f107 0308 add.w r3, r7, #8 - 802bb82: cb03 ldmia r3!, {r0, r1} - 802bb84: 6010 str r0, [r2, #0] - 802bb86: 6051 str r1, [r2, #4] + 802bae6: 687b ldr r3, [r7, #4] + 802bae8: 461a mov r2, r3 + 802baea: f107 0308 add.w r3, r7, #8 + 802baee: cb03 ldmia r3!, {r0, r1} + 802baf0: 6010 str r0, [r2, #0] + 802baf2: 6051 str r1, [r2, #4] } - 802bb88: 6878 ldr r0, [r7, #4] - 802bb8a: 3720 adds r7, #32 - 802bb8c: 46bd mov sp, r7 - 802bb8e: bd80 pop {r7, pc} + 802baf4: 6878 ldr r0, [r7, #4] + 802baf6: 3720 adds r7, #32 + 802baf8: 46bd mov sp, r7 + 802bafa: bd80 pop {r7, pc} -0802bb90 : +0802bafc : static void lv_colorwheel_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 802bb90: b590 push {r4, r7, lr} - 802bb92: b099 sub sp, #100 ; 0x64 - 802bb94: af00 add r7, sp, #0 - 802bb96: 6078 str r0, [r7, #4] - 802bb98: 6039 str r1, [r7, #0] + 802bafc: b590 push {r4, r7, lr} + 802bafe: b099 sub sp, #100 ; 0x64 + 802bb00: af00 add r7, sp, #0 + 802bb02: 6078 str r0, [r7, #4] + 802bb04: 6039 str r1, [r7, #0] LV_UNUSED(class_p); /*Call the ancestor's event handler*/ lv_res_t res = lv_obj_event_base(MY_CLASS, e); - 802bb9a: 6839 ldr r1, [r7, #0] - 802bb9c: 48b3 ldr r0, [pc, #716] ; (802be6c ) - 802bb9e: f7d6 fcb1 bl 8002504 - 802bba2: 4603 mov r3, r0 - 802bba4: f887 305c strb.w r3, [r7, #92] ; 0x5c + 802bb06: 6839 ldr r1, [r7, #0] + 802bb08: 48b3 ldr r0, [pc, #716] ; (802bdd8 ) + 802bb0a: f7d6 fcc5 bl 8002498 + 802bb0e: 4603 mov r3, r0 + 802bb10: f887 305c strb.w r3, [r7, #92] ; 0x5c if(res != LV_RES_OK) return; - 802bba8: f897 305c ldrb.w r3, [r7, #92] ; 0x5c - 802bbac: 2b01 cmp r3, #1 - 802bbae: f040 8306 bne.w 802c1be + 802bb14: f897 305c ldrb.w r3, [r7, #92] ; 0x5c + 802bb18: 2b01 cmp r3, #1 + 802bb1a: f040 8306 bne.w 802c12a lv_event_code_t code = lv_event_get_code(e); - 802bbb2: 6838 ldr r0, [r7, #0] - 802bbb4: f7d6 fcfa bl 80025ac - 802bbb8: 4603 mov r3, r0 - 802bbba: f887 305b strb.w r3, [r7, #91] ; 0x5b + 802bb1e: 6838 ldr r0, [r7, #0] + 802bb20: f7d6 fd0e bl 8002540 + 802bb24: 4603 mov r3, r0 + 802bb26: f887 305b strb.w r3, [r7, #91] ; 0x5b lv_obj_t * obj = lv_event_get_target(e); - 802bbbe: 6838 ldr r0, [r7, #0] - 802bbc0: f7d6 fcde bl 8002580 - 802bbc4: 6578 str r0, [r7, #84] ; 0x54 + 802bb2a: 6838 ldr r0, [r7, #0] + 802bb2c: f7d6 fcf2 bl 8002514 + 802bb30: 6578 str r0, [r7, #84] ; 0x54 lv_colorwheel_t * colorwheel = (lv_colorwheel_t *)obj; - 802bbc6: 6d7b ldr r3, [r7, #84] ; 0x54 - 802bbc8: 653b str r3, [r7, #80] ; 0x50 + 802bb32: 6d7b ldr r3, [r7, #84] ; 0x54 + 802bb34: 653b str r3, [r7, #80] ; 0x50 if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) { - 802bbca: f897 305b ldrb.w r3, [r7, #91] ; 0x5b - 802bbce: 2b13 cmp r3, #19 - 802bbd0: d143 bne.n 802bc5a + 802bb36: f897 305b ldrb.w r3, [r7, #91] ; 0x5b + 802bb3a: 2b13 cmp r3, #19 + 802bb3c: d143 bne.n 802bbc6 lv_coord_t left = lv_obj_get_style_pad_left(obj, LV_PART_KNOB); - 802bbd2: f44f 3140 mov.w r1, #196608 ; 0x30000 - 802bbd6: 6d78 ldr r0, [r7, #84] ; 0x54 - 802bbd8: f7ff fcd4 bl 802b584 - 802bbdc: 4603 mov r3, r0 - 802bbde: 857b strh r3, [r7, #42] ; 0x2a + 802bb3e: f44f 3140 mov.w r1, #196608 ; 0x30000 + 802bb42: 6d78 ldr r0, [r7, #84] ; 0x54 + 802bb44: f7ff fcd4 bl 802b4f0 + 802bb48: 4603 mov r3, r0 + 802bb4a: 857b strh r3, [r7, #42] ; 0x2a lv_coord_t right = lv_obj_get_style_pad_right(obj, LV_PART_KNOB); - 802bbe0: f44f 3140 mov.w r1, #196608 ; 0x30000 - 802bbe4: 6d78 ldr r0, [r7, #84] ; 0x54 - 802bbe6: f7ff fce0 bl 802b5aa - 802bbea: 4603 mov r3, r0 - 802bbec: 853b strh r3, [r7, #40] ; 0x28 + 802bb4c: f44f 3140 mov.w r1, #196608 ; 0x30000 + 802bb50: 6d78 ldr r0, [r7, #84] ; 0x54 + 802bb52: f7ff fce0 bl 802b516 + 802bb56: 4603 mov r3, r0 + 802bb58: 853b strh r3, [r7, #40] ; 0x28 lv_coord_t top = lv_obj_get_style_pad_top(obj, LV_PART_KNOB); - 802bbee: f44f 3140 mov.w r1, #196608 ; 0x30000 - 802bbf2: 6d78 ldr r0, [r7, #84] ; 0x54 - 802bbf4: f7ff fca0 bl 802b538 - 802bbf8: 4603 mov r3, r0 - 802bbfa: 84fb strh r3, [r7, #38] ; 0x26 + 802bb5a: f44f 3140 mov.w r1, #196608 ; 0x30000 + 802bb5e: 6d78 ldr r0, [r7, #84] ; 0x54 + 802bb60: f7ff fca0 bl 802b4a4 + 802bb64: 4603 mov r3, r0 + 802bb66: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_KNOB); - 802bbfc: f44f 3140 mov.w r1, #196608 ; 0x30000 - 802bc00: 6d78 ldr r0, [r7, #84] ; 0x54 - 802bc02: f7ff fcac bl 802b55e - 802bc06: 4603 mov r3, r0 - 802bc08: 84bb strh r3, [r7, #36] ; 0x24 + 802bb68: f44f 3140 mov.w r1, #196608 ; 0x30000 + 802bb6c: 6d78 ldr r0, [r7, #84] ; 0x54 + 802bb6e: f7ff fcac bl 802b4ca + 802bb72: 4603 mov r3, r0 + 802bb74: 84bb strh r3, [r7, #36] ; 0x24 lv_coord_t knob_pad = LV_MAX4(left, right, top, bottom) + 2; - 802bc0a: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 - 802bc0e: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 802bc12: 4293 cmp r3, r2 - 802bc14: bfb8 it lt - 802bc16: 4613 movlt r3, r2 - 802bc18: b21a sxth r2, r3 - 802bc1a: f9b7 1028 ldrsh.w r1, [r7, #40] ; 0x28 - 802bc1e: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a - 802bc22: 428b cmp r3, r1 - 802bc24: bfb8 it lt - 802bc26: 460b movlt r3, r1 - 802bc28: b21b sxth r3, r3 - 802bc2a: 4293 cmp r3, r2 - 802bc2c: bfb8 it lt - 802bc2e: 4613 movlt r3, r2 - 802bc30: b21b sxth r3, r3 - 802bc32: b29b uxth r3, r3 - 802bc34: 3302 adds r3, #2 - 802bc36: b29b uxth r3, r3 - 802bc38: 847b strh r3, [r7, #34] ; 0x22 + 802bb76: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 + 802bb7a: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 802bb7e: 4293 cmp r3, r2 + 802bb80: bfb8 it lt + 802bb82: 4613 movlt r3, r2 + 802bb84: b21a sxth r2, r3 + 802bb86: f9b7 1028 ldrsh.w r1, [r7, #40] ; 0x28 + 802bb8a: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a + 802bb8e: 428b cmp r3, r1 + 802bb90: bfb8 it lt + 802bb92: 460b movlt r3, r1 + 802bb94: b21b sxth r3, r3 + 802bb96: 4293 cmp r3, r2 + 802bb98: bfb8 it lt + 802bb9a: 4613 movlt r3, r2 + 802bb9c: b21b sxth r3, r3 + 802bb9e: b29b uxth r3, r3 + 802bba0: 3302 adds r3, #2 + 802bba2: b29b uxth r3, r3 + 802bba4: 847b strh r3, [r7, #34] ; 0x22 lv_coord_t * s = lv_event_get_param(e); - 802bc3a: 6838 ldr r0, [r7, #0] - 802bc3c: f7d6 fcc4 bl 80025c8 - 802bc40: 61f8 str r0, [r7, #28] + 802bba6: 6838 ldr r0, [r7, #0] + 802bba8: f7d6 fcd8 bl 800255c + 802bbac: 61f8 str r0, [r7, #28] *s = LV_MAX(*s, knob_pad); - 802bc42: 69fb ldr r3, [r7, #28] - 802bc44: f9b3 3000 ldrsh.w r3, [r3] - 802bc48: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 - 802bc4c: 4293 cmp r3, r2 - 802bc4e: bfb8 it lt - 802bc50: 4613 movlt r3, r2 - 802bc52: b21a sxth r2, r3 - 802bc54: 69fb ldr r3, [r7, #28] - 802bc56: 801a strh r2, [r3, #0] - 802bc58: e2b8 b.n 802c1cc + 802bbae: 69fb ldr r3, [r7, #28] + 802bbb0: f9b3 3000 ldrsh.w r3, [r3] + 802bbb4: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 + 802bbb8: 4293 cmp r3, r2 + 802bbba: bfb8 it lt + 802bbbc: 4613 movlt r3, r2 + 802bbbe: b21a sxth r2, r3 + 802bbc0: 69fb ldr r3, [r7, #28] + 802bbc2: 801a strh r2, [r3, #0] + 802bbc4: e2b8 b.n 802c138 } else if(code == LV_EVENT_SIZE_CHANGED) { - 802bc5a: f897 305b ldrb.w r3, [r7, #91] ; 0x5b - 802bc5e: 2b29 cmp r3, #41 ; 0x29 - 802bc60: d11e bne.n 802bca0 + 802bbc6: f897 305b ldrb.w r3, [r7, #91] ; 0x5b + 802bbca: 2b29 cmp r3, #41 ; 0x29 + 802bbcc: d11e bne.n 802bc0c void * param = lv_event_get_param(e); - 802bc62: 6838 ldr r0, [r7, #0] - 802bc64: f7d6 fcb0 bl 80025c8 - 802bc68: 62f8 str r0, [r7, #44] ; 0x2c + 802bbce: 6838 ldr r0, [r7, #0] + 802bbd0: f7d6 fcc4 bl 800255c + 802bbd4: 62f8 str r0, [r7, #44] ; 0x2c /*Refresh extended draw area to make knob visible*/ if(lv_obj_get_width(obj) != lv_area_get_width(param) || - 802bc6a: 6d78 ldr r0, [r7, #84] ; 0x54 - 802bc6c: f7de fa6c bl 800a148 - 802bc70: 4603 mov r3, r0 - 802bc72: 461c mov r4, r3 - 802bc74: 6af8 ldr r0, [r7, #44] ; 0x2c - 802bc76: f7ff fc0a bl 802b48e - 802bc7a: 4603 mov r3, r0 - 802bc7c: 429c cmp r4, r3 - 802bc7e: d10b bne.n 802bc98 + 802bbd6: 6d78 ldr r0, [r7, #84] ; 0x54 + 802bbd8: f7de fa80 bl 800a0dc + 802bbdc: 4603 mov r3, r0 + 802bbde: 461c mov r4, r3 + 802bbe0: 6af8 ldr r0, [r7, #44] ; 0x2c + 802bbe2: f7ff fc0a bl 802b3fa + 802bbe6: 4603 mov r3, r0 + 802bbe8: 429c cmp r4, r3 + 802bbea: d10b bne.n 802bc04 lv_obj_get_height(obj) != lv_area_get_height(param)) { - 802bc80: 6d78 ldr r0, [r7, #84] ; 0x54 - 802bc82: f7de fa6f bl 800a164 - 802bc86: 4603 mov r3, r0 - 802bc88: 461c mov r4, r3 - 802bc8a: 6af8 ldr r0, [r7, #44] ; 0x2c - 802bc8c: f7ff fc15 bl 802b4ba - 802bc90: 4603 mov r3, r0 + 802bbec: 6d78 ldr r0, [r7, #84] ; 0x54 + 802bbee: f7de fa83 bl 800a0f8 + 802bbf2: 4603 mov r3, r0 + 802bbf4: 461c mov r4, r3 + 802bbf6: 6af8 ldr r0, [r7, #44] ; 0x2c + 802bbf8: f7ff fc15 bl 802b426 + 802bbfc: 4603 mov r3, r0 if(lv_obj_get_width(obj) != lv_area_get_width(param) || - 802bc92: 429c cmp r4, r3 - 802bc94: f000 829a beq.w 802c1cc + 802bbfe: 429c cmp r4, r3 + 802bc00: f000 829a beq.w 802c138 refr_knob_pos(obj); - 802bc98: 6d78 ldr r0, [r7, #84] ; 0x54 - 802bc9a: f000 facd bl 802c238 - 802bc9e: e295 b.n 802c1cc + 802bc04: 6d78 ldr r0, [r7, #84] ; 0x54 + 802bc06: f000 facd bl 802c1a4 + 802bc0a: e295 b.n 802c138 } } else if(code == LV_EVENT_STYLE_CHANGED) { - 802bca0: f897 305b ldrb.w r3, [r7, #91] ; 0x5b - 802bca4: 2b2a cmp r3, #42 ; 0x2a - 802bca6: d103 bne.n 802bcb0 + 802bc0c: f897 305b ldrb.w r3, [r7, #91] ; 0x5b + 802bc10: 2b2a cmp r3, #42 ; 0x2a + 802bc12: d103 bne.n 802bc1c /*Refresh extended draw area to make knob visible*/ refr_knob_pos(obj); - 802bca8: 6d78 ldr r0, [r7, #84] ; 0x54 - 802bcaa: f000 fac5 bl 802c238 - 802bcae: e28d b.n 802c1cc + 802bc14: 6d78 ldr r0, [r7, #84] ; 0x54 + 802bc16: f000 fac5 bl 802c1a4 + 802bc1a: e28d b.n 802c138 } else if(code == LV_EVENT_KEY) { - 802bcb0: f897 305b ldrb.w r3, [r7, #91] ; 0x5b - 802bcb4: 2b0d cmp r3, #13 - 802bcb6: f040 80bc bne.w 802be32 + 802bc1c: f897 305b ldrb.w r3, [r7, #91] ; 0x5b + 802bc20: 2b0d cmp r3, #13 + 802bc22: f040 80bc bne.w 802bd9e uint32_t c = *((uint32_t *)lv_event_get_param(e)); /*uint32_t because can be UTF-8*/ - 802bcba: 6838 ldr r0, [r7, #0] - 802bcbc: f7d6 fc84 bl 80025c8 - 802bcc0: 4603 mov r3, r0 - 802bcc2: 681b ldr r3, [r3, #0] - 802bcc4: 633b str r3, [r7, #48] ; 0x30 + 802bc26: 6838 ldr r0, [r7, #0] + 802bc28: f7d6 fc98 bl 800255c + 802bc2c: 4603 mov r3, r0 + 802bc2e: 681b ldr r3, [r3, #0] + 802bc30: 633b str r3, [r7, #48] ; 0x30 if(c == LV_KEY_RIGHT || c == LV_KEY_UP) { - 802bcc6: 6b3b ldr r3, [r7, #48] ; 0x30 - 802bcc8: 2b13 cmp r3, #19 - 802bcca: d002 beq.n 802bcd2 - 802bccc: 6b3b ldr r3, [r7, #48] ; 0x30 - 802bcce: 2b11 cmp r3, #17 - 802bcd0: d159 bne.n 802bd86 + 802bc32: 6b3b ldr r3, [r7, #48] ; 0x30 + 802bc34: 2b13 cmp r3, #19 + 802bc36: d002 beq.n 802bc3e + 802bc38: 6b3b ldr r3, [r7, #48] ; 0x30 + 802bc3a: 2b11 cmp r3, #17 + 802bc3c: d159 bne.n 802bcf2 lv_color_hsv_t hsv_cur; hsv_cur = colorwheel->hsv; - 802bcd2: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bcd4: 6a5b ldr r3, [r3, #36] ; 0x24 - 802bcd6: 61bb str r3, [r7, #24] + 802bc3e: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bc40: 6a5b ldr r3, [r3, #36] ; 0x24 + 802bc42: 61bb str r3, [r7, #24] switch(colorwheel->mode) { - 802bcd8: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bcda: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802bcde: f3c3 0301 ubfx r3, r3, #0, #2 - 802bce2: b2db uxtb r3, r3 - 802bce4: 2b02 cmp r3, #2 - 802bce6: d029 beq.n 802bd3c - 802bce8: 2b02 cmp r3, #2 - 802bcea: dc38 bgt.n 802bd5e - 802bcec: 2b00 cmp r3, #0 - 802bcee: d002 beq.n 802bcf6 - 802bcf0: 2b01 cmp r3, #1 - 802bcf2: d012 beq.n 802bd1a - 802bcf4: e033 b.n 802bd5e + 802bc44: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bc46: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802bc4a: f3c3 0301 ubfx r3, r3, #0, #2 + 802bc4e: b2db uxtb r3, r3 + 802bc50: 2b02 cmp r3, #2 + 802bc52: d029 beq.n 802bca8 + 802bc54: 2b02 cmp r3, #2 + 802bc56: dc38 bgt.n 802bcca + 802bc58: 2b00 cmp r3, #0 + 802bc5a: d002 beq.n 802bc62 + 802bc5c: 2b01 cmp r3, #1 + 802bc5e: d012 beq.n 802bc86 + 802bc60: e033 b.n 802bcca case LV_COLORWHEEL_MODE_HUE: hsv_cur.h = (colorwheel->hsv.h + 1) % 360; - 802bcf6: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bcf8: 8c9b ldrh r3, [r3, #36] ; 0x24 - 802bcfa: 3301 adds r3, #1 - 802bcfc: 4a5c ldr r2, [pc, #368] ; (802be70 ) - 802bcfe: fb82 1203 smull r1, r2, r2, r3 - 802bd02: 441a add r2, r3 - 802bd04: 1211 asrs r1, r2, #8 - 802bd06: 17da asrs r2, r3, #31 - 802bd08: 1a8a subs r2, r1, r2 - 802bd0a: f44f 71b4 mov.w r1, #360 ; 0x168 - 802bd0e: fb01 f202 mul.w r2, r1, r2 - 802bd12: 1a9a subs r2, r3, r2 - 802bd14: b293 uxth r3, r2 - 802bd16: 833b strh r3, [r7, #24] + 802bc62: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bc64: 8c9b ldrh r3, [r3, #36] ; 0x24 + 802bc66: 3301 adds r3, #1 + 802bc68: 4a5c ldr r2, [pc, #368] ; (802bddc ) + 802bc6a: fb82 1203 smull r1, r2, r2, r3 + 802bc6e: 441a add r2, r3 + 802bc70: 1211 asrs r1, r2, #8 + 802bc72: 17da asrs r2, r3, #31 + 802bc74: 1a8a subs r2, r1, r2 + 802bc76: f44f 71b4 mov.w r1, #360 ; 0x168 + 802bc7a: fb01 f202 mul.w r2, r1, r2 + 802bc7e: 1a9a subs r2, r3, r2 + 802bc80: b293 uxth r3, r2 + 802bc82: 833b strh r3, [r7, #24] break; - 802bd18: e021 b.n 802bd5e + 802bc84: e021 b.n 802bcca case LV_COLORWHEEL_MODE_SATURATION: hsv_cur.s = (colorwheel->hsv.s + 1) % 100; - 802bd1a: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bd1c: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 - 802bd20: 3301 adds r3, #1 - 802bd22: 4a54 ldr r2, [pc, #336] ; (802be74 ) - 802bd24: fb82 1203 smull r1, r2, r2, r3 - 802bd28: 1151 asrs r1, r2, #5 - 802bd2a: 17da asrs r2, r3, #31 - 802bd2c: 1a8a subs r2, r1, r2 - 802bd2e: 2164 movs r1, #100 ; 0x64 - 802bd30: fb01 f202 mul.w r2, r1, r2 - 802bd34: 1a9a subs r2, r3, r2 - 802bd36: b2d3 uxtb r3, r2 - 802bd38: 76bb strb r3, [r7, #26] + 802bc86: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bc88: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 + 802bc8c: 3301 adds r3, #1 + 802bc8e: 4a54 ldr r2, [pc, #336] ; (802bde0 ) + 802bc90: fb82 1203 smull r1, r2, r2, r3 + 802bc94: 1151 asrs r1, r2, #5 + 802bc96: 17da asrs r2, r3, #31 + 802bc98: 1a8a subs r2, r1, r2 + 802bc9a: 2164 movs r1, #100 ; 0x64 + 802bc9c: fb01 f202 mul.w r2, r1, r2 + 802bca0: 1a9a subs r2, r3, r2 + 802bca2: b2d3 uxtb r3, r2 + 802bca4: 76bb strb r3, [r7, #26] break; - 802bd3a: e010 b.n 802bd5e + 802bca6: e010 b.n 802bcca case LV_COLORWHEEL_MODE_VALUE: hsv_cur.v = (colorwheel->hsv.v + 1) % 100; - 802bd3c: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bd3e: f893 3027 ldrb.w r3, [r3, #39] ; 0x27 - 802bd42: 3301 adds r3, #1 - 802bd44: 4a4b ldr r2, [pc, #300] ; (802be74 ) - 802bd46: fb82 1203 smull r1, r2, r2, r3 - 802bd4a: 1151 asrs r1, r2, #5 - 802bd4c: 17da asrs r2, r3, #31 - 802bd4e: 1a8a subs r2, r1, r2 - 802bd50: 2164 movs r1, #100 ; 0x64 - 802bd52: fb01 f202 mul.w r2, r1, r2 - 802bd56: 1a9a subs r2, r3, r2 - 802bd58: b2d3 uxtb r3, r2 - 802bd5a: 76fb strb r3, [r7, #27] + 802bca8: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bcaa: f893 3027 ldrb.w r3, [r3, #39] ; 0x27 + 802bcae: 3301 adds r3, #1 + 802bcb0: 4a4b ldr r2, [pc, #300] ; (802bde0 ) + 802bcb2: fb82 1203 smull r1, r2, r2, r3 + 802bcb6: 1151 asrs r1, r2, #5 + 802bcb8: 17da asrs r2, r3, #31 + 802bcba: 1a8a subs r2, r1, r2 + 802bcbc: 2164 movs r1, #100 ; 0x64 + 802bcbe: fb01 f202 mul.w r2, r1, r2 + 802bcc2: 1a9a subs r2, r3, r2 + 802bcc4: b2d3 uxtb r3, r2 + 802bcc6: 76fb strb r3, [r7, #27] break; - 802bd5c: bf00 nop + 802bcc8: bf00 nop } if(lv_colorwheel_set_hsv(obj, hsv_cur)) { - 802bd5e: 69b9 ldr r1, [r7, #24] - 802bd60: 6d78 ldr r0, [r7, #84] ; 0x54 - 802bd62: f7ff fc49 bl 802b5f8 - 802bd66: 4603 mov r3, r0 - 802bd68: 2b00 cmp r3, #0 - 802bd6a: f000 822a beq.w 802c1c2 + 802bcca: 69b9 ldr r1, [r7, #24] + 802bccc: 6d78 ldr r0, [r7, #84] ; 0x54 + 802bcce: f7ff fc49 bl 802b564 + 802bcd2: 4603 mov r3, r0 + 802bcd4: 2b00 cmp r3, #0 + 802bcd6: f000 822a beq.w 802c12e res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 802bd6e: 2200 movs r2, #0 - 802bd70: 211c movs r1, #28 - 802bd72: 6d78 ldr r0, [r7, #84] ; 0x54 - 802bd74: f7d6 fb84 bl 8002480 - 802bd78: 4603 mov r3, r0 - 802bd7a: f887 305c strb.w r3, [r7, #92] ; 0x5c + 802bcda: 2200 movs r2, #0 + 802bcdc: 211c movs r1, #28 + 802bcde: 6d78 ldr r0, [r7, #84] ; 0x54 + 802bce0: f7d6 fb98 bl 8002414 + 802bce4: 4603 mov r3, r0 + 802bce6: f887 305c strb.w r3, [r7, #92] ; 0x5c if(res != LV_RES_OK) return; - 802bd7e: f897 305c ldrb.w r3, [r7, #92] ; 0x5c - 802bd82: 2b01 cmp r3, #1 + 802bcea: f897 305c ldrb.w r3, [r7, #92] ; 0x5c + 802bcee: 2b01 cmp r3, #1 if(c == LV_KEY_RIGHT || c == LV_KEY_UP) { - 802bd84: e21d b.n 802c1c2 + 802bcf0: e21d b.n 802c12e } } else if(c == LV_KEY_LEFT || c == LV_KEY_DOWN) { - 802bd86: 6b3b ldr r3, [r7, #48] ; 0x30 - 802bd88: 2b14 cmp r3, #20 - 802bd8a: d003 beq.n 802bd94 - 802bd8c: 6b3b ldr r3, [r7, #48] ; 0x30 - 802bd8e: 2b12 cmp r3, #18 - 802bd90: f040 821c bne.w 802c1cc + 802bcf2: 6b3b ldr r3, [r7, #48] ; 0x30 + 802bcf4: 2b14 cmp r3, #20 + 802bcf6: d003 beq.n 802bd00 + 802bcf8: 6b3b ldr r3, [r7, #48] ; 0x30 + 802bcfa: 2b12 cmp r3, #18 + 802bcfc: f040 821c bne.w 802c138 lv_color_hsv_t hsv_cur; hsv_cur = colorwheel->hsv; - 802bd94: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bd96: 6a5b ldr r3, [r3, #36] ; 0x24 - 802bd98: 617b str r3, [r7, #20] + 802bd00: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bd02: 6a5b ldr r3, [r3, #36] ; 0x24 + 802bd04: 617b str r3, [r7, #20] switch(colorwheel->mode) { - 802bd9a: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bd9c: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802bda0: f3c3 0301 ubfx r3, r3, #0, #2 - 802bda4: b2db uxtb r3, r3 - 802bda6: 2b02 cmp r3, #2 - 802bda8: d021 beq.n 802bdee - 802bdaa: 2b02 cmp r3, #2 - 802bdac: dc2d bgt.n 802be0a - 802bdae: 2b00 cmp r3, #0 - 802bdb0: d002 beq.n 802bdb8 - 802bdb2: 2b01 cmp r3, #1 - 802bdb4: d00d beq.n 802bdd2 - 802bdb6: e028 b.n 802be0a + 802bd06: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bd08: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802bd0c: f3c3 0301 ubfx r3, r3, #0, #2 + 802bd10: b2db uxtb r3, r3 + 802bd12: 2b02 cmp r3, #2 + 802bd14: d021 beq.n 802bd5a + 802bd16: 2b02 cmp r3, #2 + 802bd18: dc2d bgt.n 802bd76 + 802bd1a: 2b00 cmp r3, #0 + 802bd1c: d002 beq.n 802bd24 + 802bd1e: 2b01 cmp r3, #1 + 802bd20: d00d beq.n 802bd3e + 802bd22: e028 b.n 802bd76 case LV_COLORWHEEL_MODE_HUE: hsv_cur.h = colorwheel->hsv.h > 0 ? (colorwheel->hsv.h - 1) : 360; - 802bdb8: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bdba: 8c9b ldrh r3, [r3, #36] ; 0x24 - 802bdbc: 2b00 cmp r3, #0 - 802bdbe: d004 beq.n 802bdca - 802bdc0: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bdc2: 8c9b ldrh r3, [r3, #36] ; 0x24 - 802bdc4: 3b01 subs r3, #1 - 802bdc6: b29b uxth r3, r3 - 802bdc8: e001 b.n 802bdce - 802bdca: f44f 73b4 mov.w r3, #360 ; 0x168 - 802bdce: 82bb strh r3, [r7, #20] + 802bd24: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bd26: 8c9b ldrh r3, [r3, #36] ; 0x24 + 802bd28: 2b00 cmp r3, #0 + 802bd2a: d004 beq.n 802bd36 + 802bd2c: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bd2e: 8c9b ldrh r3, [r3, #36] ; 0x24 + 802bd30: 3b01 subs r3, #1 + 802bd32: b29b uxth r3, r3 + 802bd34: e001 b.n 802bd3a + 802bd36: f44f 73b4 mov.w r3, #360 ; 0x168 + 802bd3a: 82bb strh r3, [r7, #20] break; - 802bdd0: e01b b.n 802be0a + 802bd3c: e01b b.n 802bd76 case LV_COLORWHEEL_MODE_SATURATION: hsv_cur.s = colorwheel->hsv.s > 0 ? (colorwheel->hsv.s - 1) : 100; - 802bdd2: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bdd4: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 - 802bdd8: 2b00 cmp r3, #0 - 802bdda: d005 beq.n 802bde8 - 802bddc: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bdde: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 - 802bde2: 3b01 subs r3, #1 - 802bde4: b2db uxtb r3, r3 - 802bde6: e000 b.n 802bdea - 802bde8: 2364 movs r3, #100 ; 0x64 - 802bdea: 75bb strb r3, [r7, #22] + 802bd3e: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bd40: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 + 802bd44: 2b00 cmp r3, #0 + 802bd46: d005 beq.n 802bd54 + 802bd48: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bd4a: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 + 802bd4e: 3b01 subs r3, #1 + 802bd50: b2db uxtb r3, r3 + 802bd52: e000 b.n 802bd56 + 802bd54: 2364 movs r3, #100 ; 0x64 + 802bd56: 75bb strb r3, [r7, #22] break; - 802bdec: e00d b.n 802be0a + 802bd58: e00d b.n 802bd76 case LV_COLORWHEEL_MODE_VALUE: hsv_cur.v = colorwheel->hsv.v > 0 ? (colorwheel->hsv.v - 1) : 100; - 802bdee: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bdf0: f893 3027 ldrb.w r3, [r3, #39] ; 0x27 - 802bdf4: 2b00 cmp r3, #0 - 802bdf6: d005 beq.n 802be04 - 802bdf8: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bdfa: f893 3027 ldrb.w r3, [r3, #39] ; 0x27 - 802bdfe: 3b01 subs r3, #1 - 802be00: b2db uxtb r3, r3 - 802be02: e000 b.n 802be06 - 802be04: 2364 movs r3, #100 ; 0x64 - 802be06: 75fb strb r3, [r7, #23] + 802bd5a: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bd5c: f893 3027 ldrb.w r3, [r3, #39] ; 0x27 + 802bd60: 2b00 cmp r3, #0 + 802bd62: d005 beq.n 802bd70 + 802bd64: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bd66: f893 3027 ldrb.w r3, [r3, #39] ; 0x27 + 802bd6a: 3b01 subs r3, #1 + 802bd6c: b2db uxtb r3, r3 + 802bd6e: e000 b.n 802bd72 + 802bd70: 2364 movs r3, #100 ; 0x64 + 802bd72: 75fb strb r3, [r7, #23] break; - 802be08: bf00 nop + 802bd74: bf00 nop } if(lv_colorwheel_set_hsv(obj, hsv_cur)) { - 802be0a: 6979 ldr r1, [r7, #20] - 802be0c: 6d78 ldr r0, [r7, #84] ; 0x54 - 802be0e: f7ff fbf3 bl 802b5f8 - 802be12: 4603 mov r3, r0 - 802be14: 2b00 cmp r3, #0 - 802be16: f000 81d9 beq.w 802c1cc + 802bd76: 6979 ldr r1, [r7, #20] + 802bd78: 6d78 ldr r0, [r7, #84] ; 0x54 + 802bd7a: f7ff fbf3 bl 802b564 + 802bd7e: 4603 mov r3, r0 + 802bd80: 2b00 cmp r3, #0 + 802bd82: f000 81d9 beq.w 802c138 res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 802be1a: 2200 movs r2, #0 - 802be1c: 211c movs r1, #28 - 802be1e: 6d78 ldr r0, [r7, #84] ; 0x54 - 802be20: f7d6 fb2e bl 8002480 - 802be24: 4603 mov r3, r0 - 802be26: f887 305c strb.w r3, [r7, #92] ; 0x5c + 802bd86: 2200 movs r2, #0 + 802bd88: 211c movs r1, #28 + 802bd8a: 6d78 ldr r0, [r7, #84] ; 0x54 + 802bd8c: f7d6 fb42 bl 8002414 + 802bd90: 4603 mov r3, r0 + 802bd92: f887 305c strb.w r3, [r7, #92] ; 0x5c if(res != LV_RES_OK) return; - 802be2a: f897 305c ldrb.w r3, [r7, #92] ; 0x5c - 802be2e: 2b01 cmp r3, #1 - 802be30: e1cc b.n 802c1cc + 802bd96: f897 305c ldrb.w r3, [r7, #92] ; 0x5c + 802bd9a: 2b01 cmp r3, #1 + 802bd9c: e1cc b.n 802c138 } } } else if(code == LV_EVENT_PRESSED) { - 802be32: f897 305b ldrb.w r3, [r7, #91] ; 0x5b - 802be36: 2b01 cmp r3, #1 - 802be38: d11e bne.n 802be78 + 802bd9e: f897 305b ldrb.w r3, [r7, #91] ; 0x5b + 802bda2: 2b01 cmp r3, #1 + 802bda4: d11e bne.n 802bde4 colorwheel->last_change_time = lv_tick_get(); - 802be3a: f004 fcb7 bl 80307ac - 802be3e: 4602 mov r2, r0 - 802be40: 6d3b ldr r3, [r7, #80] ; 0x50 - 802be42: 635a str r2, [r3, #52] ; 0x34 + 802bda6: f004 fcb7 bl 8030718 + 802bdaa: 4602 mov r2, r0 + 802bdac: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bdae: 635a str r2, [r3, #52] ; 0x34 lv_indev_get_point(lv_indev_get_act(), &colorwheel->last_press_point); - 802be44: f7d7 fa68 bl 8003318 - 802be48: 4602 mov r2, r0 - 802be4a: 6d3b ldr r3, [r7, #80] ; 0x50 - 802be4c: 3338 adds r3, #56 ; 0x38 - 802be4e: 4619 mov r1, r3 - 802be50: 4610 mov r0, r2 - 802be52: f7d7 fb53 bl 80034fc + 802bdb0: f7d7 fa7c bl 80032ac + 802bdb4: 4602 mov r2, r0 + 802bdb6: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bdb8: 3338 adds r3, #56 ; 0x38 + 802bdba: 4619 mov r1, r3 + 802bdbc: 4610 mov r0, r2 + 802bdbe: f7d7 fb67 bl 8003490 res = double_click_reset(obj); - 802be56: 6d78 ldr r0, [r7, #84] ; 0x54 - 802be58: f000 fa53 bl 802c302 - 802be5c: 4603 mov r3, r0 - 802be5e: f887 305c strb.w r3, [r7, #92] ; 0x5c + 802bdc2: 6d78 ldr r0, [r7, #84] ; 0x54 + 802bdc4: f000 fa53 bl 802c26e + 802bdc8: 4603 mov r3, r0 + 802bdca: f887 305c strb.w r3, [r7, #92] ; 0x5c if(res != LV_RES_OK) return; - 802be62: f897 305c ldrb.w r3, [r7, #92] ; 0x5c - 802be66: 2b01 cmp r3, #1 - 802be68: e1b0 b.n 802c1cc - 802be6a: bf00 nop - 802be6c: 0806cc14 .word 0x0806cc14 - 802be70: b60b60b7 .word 0xb60b60b7 - 802be74: 51eb851f .word 0x51eb851f + 802bdce: f897 305c ldrb.w r3, [r7, #92] ; 0x5c + 802bdd2: 2b01 cmp r3, #1 + 802bdd4: e1b0 b.n 802c138 + 802bdd6: bf00 nop + 802bdd8: 0806cb6c .word 0x0806cb6c + 802bddc: b60b60b7 .word 0xb60b60b7 + 802bde0: 51eb851f .word 0x51eb851f } else if(code == LV_EVENT_PRESSING) { - 802be78: f897 305b ldrb.w r3, [r7, #91] ; 0x5b - 802be7c: 2b02 cmp r3, #2 - 802be7e: f040 816c bne.w 802c15a + 802bde4: f897 305b ldrb.w r3, [r7, #91] ; 0x5b + 802bde8: 2b02 cmp r3, #2 + 802bdea: f040 816c bne.w 802c0c6 lv_indev_t * indev = lv_indev_get_act(); - 802be82: f7d7 fa49 bl 8003318 - 802be86: 6478 str r0, [r7, #68] ; 0x44 + 802bdee: f7d7 fa5d bl 80032ac + 802bdf2: 6478 str r0, [r7, #68] ; 0x44 if(indev == NULL) return; - 802be88: 6c7b ldr r3, [r7, #68] ; 0x44 - 802be8a: 2b00 cmp r3, #0 - 802be8c: f000 819b beq.w 802c1c6 + 802bdf4: 6c7b ldr r3, [r7, #68] ; 0x44 + 802bdf6: 2b00 cmp r3, #0 + 802bdf8: f000 819b beq.w 802c132 lv_indev_type_t indev_type = lv_indev_get_type(indev); - 802be90: 6c78 ldr r0, [r7, #68] ; 0x44 - 802be92: f7d7 fa4b bl 800332c - 802be96: 4603 mov r3, r0 - 802be98: f887 3043 strb.w r3, [r7, #67] ; 0x43 + 802bdfc: 6c78 ldr r0, [r7, #68] ; 0x44 + 802bdfe: f7d7 fa5f bl 80032c0 + 802be02: 4603 mov r3, r0 + 802be04: f887 3043 strb.w r3, [r7, #67] ; 0x43 lv_point_t p; if(indev_type == LV_INDEV_TYPE_ENCODER || indev_type == LV_INDEV_TYPE_KEYPAD) { - 802be9c: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 - 802bea0: 2b04 cmp r3, #4 - 802bea2: d003 beq.n 802beac - 802bea4: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 - 802bea8: 2b02 cmp r3, #2 - 802beaa: d122 bne.n 802bef2 + 802be08: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 + 802be0c: 2b04 cmp r3, #4 + 802be0e: d003 beq.n 802be18 + 802be10: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 + 802be14: 2b02 cmp r3, #2 + 802be16: d122 bne.n 802be5e p.x = obj->coords.x1 + lv_obj_get_width(obj) / 2; - 802beac: 6d7b ldr r3, [r7, #84] ; 0x54 - 802beae: f9b3 3014 ldrsh.w r3, [r3, #20] - 802beb2: b29c uxth r4, r3 - 802beb4: 6d78 ldr r0, [r7, #84] ; 0x54 - 802beb6: f7de f947 bl 800a148 - 802beba: 4603 mov r3, r0 - 802bebc: 0fda lsrs r2, r3, #31 - 802bebe: 4413 add r3, r2 - 802bec0: 105b asrs r3, r3, #1 - 802bec2: b21b sxth r3, r3 - 802bec4: b29b uxth r3, r3 - 802bec6: 4423 add r3, r4 - 802bec8: b29b uxth r3, r3 - 802beca: b21b sxth r3, r3 - 802becc: 823b strh r3, [r7, #16] + 802be18: 6d7b ldr r3, [r7, #84] ; 0x54 + 802be1a: f9b3 3014 ldrsh.w r3, [r3, #20] + 802be1e: b29c uxth r4, r3 + 802be20: 6d78 ldr r0, [r7, #84] ; 0x54 + 802be22: f7de f95b bl 800a0dc + 802be26: 4603 mov r3, r0 + 802be28: 0fda lsrs r2, r3, #31 + 802be2a: 4413 add r3, r2 + 802be2c: 105b asrs r3, r3, #1 + 802be2e: b21b sxth r3, r3 + 802be30: b29b uxth r3, r3 + 802be32: 4423 add r3, r4 + 802be34: b29b uxth r3, r3 + 802be36: b21b sxth r3, r3 + 802be38: 823b strh r3, [r7, #16] p.y = obj->coords.y1 + lv_obj_get_height(obj) / 2; - 802bece: 6d7b ldr r3, [r7, #84] ; 0x54 - 802bed0: f9b3 3016 ldrsh.w r3, [r3, #22] - 802bed4: b29c uxth r4, r3 - 802bed6: 6d78 ldr r0, [r7, #84] ; 0x54 - 802bed8: f7de f944 bl 800a164 - 802bedc: 4603 mov r3, r0 - 802bede: 0fda lsrs r2, r3, #31 - 802bee0: 4413 add r3, r2 - 802bee2: 105b asrs r3, r3, #1 - 802bee4: b21b sxth r3, r3 - 802bee6: b29b uxth r3, r3 - 802bee8: 4423 add r3, r4 - 802beea: b29b uxth r3, r3 - 802beec: b21b sxth r3, r3 - 802beee: 827b strh r3, [r7, #18] - 802bef0: e005 b.n 802befe + 802be3a: 6d7b ldr r3, [r7, #84] ; 0x54 + 802be3c: f9b3 3016 ldrsh.w r3, [r3, #22] + 802be40: b29c uxth r4, r3 + 802be42: 6d78 ldr r0, [r7, #84] ; 0x54 + 802be44: f7de f958 bl 800a0f8 + 802be48: 4603 mov r3, r0 + 802be4a: 0fda lsrs r2, r3, #31 + 802be4c: 4413 add r3, r2 + 802be4e: 105b asrs r3, r3, #1 + 802be50: b21b sxth r3, r3 + 802be52: b29b uxth r3, r3 + 802be54: 4423 add r3, r4 + 802be56: b29b uxth r3, r3 + 802be58: b21b sxth r3, r3 + 802be5a: 827b strh r3, [r7, #18] + 802be5c: e005 b.n 802be6a } else { lv_indev_get_point(indev, &p); - 802bef2: f107 0310 add.w r3, r7, #16 - 802bef6: 4619 mov r1, r3 - 802bef8: 6c78 ldr r0, [r7, #68] ; 0x44 - 802befa: f7d7 faff bl 80034fc + 802be5e: f107 0310 add.w r3, r7, #16 + 802be62: 4619 mov r1, r3 + 802be64: 6c78 ldr r0, [r7, #68] ; 0x44 + 802be66: f7d7 fb13 bl 8003490 } lv_coord_t drag_limit = indev->driver->scroll_limit; - 802befe: 6c7b ldr r3, [r7, #68] ; 0x44 - 802bf00: 681b ldr r3, [r3, #0] - 802bf02: 7e1b ldrb r3, [r3, #24] - 802bf04: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 802be6a: 6c7b ldr r3, [r7, #68] ; 0x44 + 802be6c: 681b ldr r3, [r3, #0] + 802be6e: 7e1b ldrb r3, [r3, #24] + 802be70: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 if((LV_ABS(p.x - colorwheel->last_press_point.x) > drag_limit) || - 802bf08: f9b7 3010 ldrsh.w r3, [r7, #16] - 802bf0c: 461a mov r2, r3 - 802bf0e: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bf10: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 - 802bf14: 1ad3 subs r3, r2, r3 - 802bf16: ea83 72e3 eor.w r2, r3, r3, asr #31 - 802bf1a: eba2 72e3 sub.w r2, r2, r3, asr #31 - 802bf1e: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 - 802bf22: 429a cmp r2, r3 - 802bf24: dc0e bgt.n 802bf44 + 802be74: f9b7 3010 ldrsh.w r3, [r7, #16] + 802be78: 461a mov r2, r3 + 802be7a: 6d3b ldr r3, [r7, #80] ; 0x50 + 802be7c: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 + 802be80: 1ad3 subs r3, r2, r3 + 802be82: ea83 72e3 eor.w r2, r3, r3, asr #31 + 802be86: eba2 72e3 sub.w r2, r2, r3, asr #31 + 802be8a: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 + 802be8e: 429a cmp r2, r3 + 802be90: dc0e bgt.n 802beb0 (LV_ABS(p.y - colorwheel->last_press_point.y) > drag_limit)) { - 802bf26: f9b7 3012 ldrsh.w r3, [r7, #18] - 802bf2a: 461a mov r2, r3 - 802bf2c: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bf2e: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a - 802bf32: 1ad3 subs r3, r2, r3 - 802bf34: ea83 72e3 eor.w r2, r3, r3, asr #31 - 802bf38: eba2 72e3 sub.w r2, r2, r3, asr #31 - 802bf3c: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 + 802be92: f9b7 3012 ldrsh.w r3, [r7, #18] + 802be96: 461a mov r2, r3 + 802be98: 6d3b ldr r3, [r7, #80] ; 0x50 + 802be9a: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a + 802be9e: 1ad3 subs r3, r2, r3 + 802bea0: ea83 72e3 eor.w r2, r3, r3, asr #31 + 802bea4: eba2 72e3 sub.w r2, r2, r3, asr #31 + 802bea8: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 if((LV_ABS(p.x - colorwheel->last_press_point.x) > drag_limit) || - 802bf40: 429a cmp r2, r3 - 802bf42: dd0c ble.n 802bf5e + 802beac: 429a cmp r2, r3 + 802beae: dd0c ble.n 802beca colorwheel->last_change_time = lv_tick_get(); - 802bf44: f004 fc32 bl 80307ac - 802bf48: 4602 mov r2, r0 - 802bf4a: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bf4c: 635a str r2, [r3, #52] ; 0x34 + 802beb0: f004 fc32 bl 8030718 + 802beb4: 4602 mov r2, r0 + 802beb6: 6d3b ldr r3, [r7, #80] ; 0x50 + 802beb8: 635a str r2, [r3, #52] ; 0x34 colorwheel->last_press_point.x = p.x; - 802bf4e: f9b7 2010 ldrsh.w r2, [r7, #16] - 802bf52: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bf54: 871a strh r2, [r3, #56] ; 0x38 + 802beba: f9b7 2010 ldrsh.w r2, [r7, #16] + 802bebe: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bec0: 871a strh r2, [r3, #56] ; 0x38 colorwheel->last_press_point.y = p.y; - 802bf56: f9b7 2012 ldrsh.w r2, [r7, #18] - 802bf5a: 6d3b ldr r3, [r7, #80] ; 0x50 - 802bf5c: 875a strh r2, [r3, #58] ; 0x3a + 802bec2: f9b7 2012 ldrsh.w r2, [r7, #18] + 802bec6: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bec8: 875a strh r2, [r3, #58] ; 0x3a } p.x -= obj->coords.x1; - 802bf5e: f9b7 3010 ldrsh.w r3, [r7, #16] - 802bf62: b29a uxth r2, r3 - 802bf64: 6d7b ldr r3, [r7, #84] ; 0x54 - 802bf66: f9b3 3014 ldrsh.w r3, [r3, #20] - 802bf6a: b29b uxth r3, r3 - 802bf6c: 1ad3 subs r3, r2, r3 - 802bf6e: b29b uxth r3, r3 - 802bf70: b21b sxth r3, r3 - 802bf72: 823b strh r3, [r7, #16] + 802beca: f9b7 3010 ldrsh.w r3, [r7, #16] + 802bece: b29a uxth r2, r3 + 802bed0: 6d7b ldr r3, [r7, #84] ; 0x54 + 802bed2: f9b3 3014 ldrsh.w r3, [r3, #20] + 802bed6: b29b uxth r3, r3 + 802bed8: 1ad3 subs r3, r2, r3 + 802beda: b29b uxth r3, r3 + 802bedc: b21b sxth r3, r3 + 802bede: 823b strh r3, [r7, #16] p.y -= obj->coords.y1; - 802bf74: f9b7 3012 ldrsh.w r3, [r7, #18] - 802bf78: b29a uxth r2, r3 - 802bf7a: 6d7b ldr r3, [r7, #84] ; 0x54 - 802bf7c: f9b3 3016 ldrsh.w r3, [r3, #22] - 802bf80: b29b uxth r3, r3 - 802bf82: 1ad3 subs r3, r2, r3 - 802bf84: b29b uxth r3, r3 - 802bf86: b21b sxth r3, r3 - 802bf88: 827b strh r3, [r7, #18] + 802bee0: f9b7 3012 ldrsh.w r3, [r7, #18] + 802bee4: b29a uxth r2, r3 + 802bee6: 6d7b ldr r3, [r7, #84] ; 0x54 + 802bee8: f9b3 3016 ldrsh.w r3, [r3, #22] + 802beec: b29b uxth r3, r3 + 802beee: 1ad3 subs r3, r2, r3 + 802bef0: b29b uxth r3, r3 + 802bef2: b21b sxth r3, r3 + 802bef4: 827b strh r3, [r7, #18] /*Ignore pressing in the inner area*/ uint16_t w = lv_obj_get_width(obj); - 802bf8a: 6d78 ldr r0, [r7, #84] ; 0x54 - 802bf8c: f7de f8dc bl 800a148 - 802bf90: 4603 mov r3, r0 - 802bf92: 87fb strh r3, [r7, #62] ; 0x3e + 802bef6: 6d78 ldr r0, [r7, #84] ; 0x54 + 802bef8: f7de f8f0 bl 800a0dc + 802befc: 4603 mov r3, r0 + 802befe: 87fb strh r3, [r7, #62] ; 0x3e int16_t angle = 0; - 802bf94: 2300 movs r3, #0 - 802bf96: 87bb strh r3, [r7, #60] ; 0x3c + 802bf00: 2300 movs r3, #0 + 802bf02: 87bb strh r3, [r7, #60] ; 0x3c lv_coord_t cir_w = lv_obj_get_style_arc_width(obj, LV_PART_MAIN); - 802bf98: 2100 movs r1, #0 - 802bf9a: 6d78 ldr r0, [r7, #84] ; 0x54 - 802bf9c: f7ff fb18 bl 802b5d0 - 802bfa0: 4603 mov r3, r0 - 802bfa2: 877b strh r3, [r7, #58] ; 0x3a + 802bf04: 2100 movs r1, #0 + 802bf06: 6d78 ldr r0, [r7, #84] ; 0x54 + 802bf08: f7ff fb18 bl 802b53c + 802bf0c: 4603 mov r3, r0 + 802bf0e: 877b strh r3, [r7, #58] ; 0x3a lv_coord_t r_in = w / 2; - 802bfa4: 8ffb ldrh r3, [r7, #62] ; 0x3e - 802bfa6: 085b lsrs r3, r3, #1 - 802bfa8: b29b uxth r3, r3 - 802bfaa: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 802bf10: 8ffb ldrh r3, [r7, #62] ; 0x3e + 802bf12: 085b lsrs r3, r3, #1 + 802bf14: b29b uxth r3, r3 + 802bf16: f8a7 305e strh.w r3, [r7, #94] ; 0x5e p.x -= r_in; - 802bfae: f9b7 3010 ldrsh.w r3, [r7, #16] - 802bfb2: b29a uxth r2, r3 - 802bfb4: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 802bfb8: 1ad3 subs r3, r2, r3 - 802bfba: b29b uxth r3, r3 - 802bfbc: b21b sxth r3, r3 - 802bfbe: 823b strh r3, [r7, #16] + 802bf1a: f9b7 3010 ldrsh.w r3, [r7, #16] + 802bf1e: b29a uxth r2, r3 + 802bf20: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 802bf24: 1ad3 subs r3, r2, r3 + 802bf26: b29b uxth r3, r3 + 802bf28: b21b sxth r3, r3 + 802bf2a: 823b strh r3, [r7, #16] p.y -= r_in; - 802bfc0: f9b7 3012 ldrsh.w r3, [r7, #18] - 802bfc4: b29a uxth r2, r3 - 802bfc6: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 802bfca: 1ad3 subs r3, r2, r3 - 802bfcc: b29b uxth r3, r3 - 802bfce: b21b sxth r3, r3 - 802bfd0: 827b strh r3, [r7, #18] + 802bf2c: f9b7 3012 ldrsh.w r3, [r7, #18] + 802bf30: b29a uxth r2, r3 + 802bf32: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 802bf36: 1ad3 subs r3, r2, r3 + 802bf38: b29b uxth r3, r3 + 802bf3a: b21b sxth r3, r3 + 802bf3c: 827b strh r3, [r7, #18] bool on_ring = true; - 802bfd2: 2301 movs r3, #1 - 802bfd4: f887 305d strb.w r3, [r7, #93] ; 0x5d + 802bf3e: 2301 movs r3, #1 + 802bf40: f887 305d strb.w r3, [r7, #93] ; 0x5d r_in -= cir_w; - 802bfd8: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e - 802bfdc: 8f7b ldrh r3, [r7, #58] ; 0x3a - 802bfde: 1ad3 subs r3, r2, r3 - 802bfe0: b29b uxth r3, r3 - 802bfe2: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 802bf44: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e + 802bf48: 8f7b ldrh r3, [r7, #58] ; 0x3a + 802bf4a: 1ad3 subs r3, r2, r3 + 802bf4c: b29b uxth r3, r3 + 802bf4e: f8a7 305e strh.w r3, [r7, #94] ; 0x5e if(r_in > LV_DPI_DEF / 2) { - 802bfe6: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e - 802bfea: 2b41 cmp r3, #65 ; 0x41 - 802bfec: dd13 ble.n 802c016 + 802bf52: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e + 802bf56: 2b41 cmp r3, #65 ; 0x41 + 802bf58: dd13 ble.n 802bf82 lv_coord_t inner = cir_w / 2; - 802bfee: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 802bff2: 0fda lsrs r2, r3, #31 - 802bff4: 4413 add r3, r2 - 802bff6: 105b asrs r3, r3, #1 - 802bff8: 873b strh r3, [r7, #56] ; 0x38 + 802bf5a: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 802bf5e: 0fda lsrs r2, r3, #31 + 802bf60: 4413 add r3, r2 + 802bf62: 105b asrs r3, r3, #1 + 802bf64: 873b strh r3, [r7, #56] ; 0x38 r_in -= inner; - 802bffa: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e - 802bffe: 8f3b ldrh r3, [r7, #56] ; 0x38 - 802c000: 1ad3 subs r3, r2, r3 - 802c002: b29b uxth r3, r3 - 802c004: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 802bf66: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e + 802bf6a: 8f3b ldrh r3, [r7, #56] ; 0x38 + 802bf6c: 1ad3 subs r3, r2, r3 + 802bf6e: b29b uxth r3, r3 + 802bf70: f8a7 305e strh.w r3, [r7, #94] ; 0x5e if(r_in < LV_DPI_DEF / 2) r_in = LV_DPI_DEF / 2; - 802c008: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e - 802c00c: 2b40 cmp r3, #64 ; 0x40 - 802c00e: dc02 bgt.n 802c016 - 802c010: 2341 movs r3, #65 ; 0x41 - 802c012: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 802bf74: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e + 802bf78: 2b40 cmp r3, #64 ; 0x40 + 802bf7a: dc02 bgt.n 802bf82 + 802bf7c: 2341 movs r3, #65 ; 0x41 + 802bf7e: f8a7 305e strh.w r3, [r7, #94] ; 0x5e } if(p.x * p.x + p.y * p.y < r_in * r_in) { - 802c016: f9b7 3010 ldrsh.w r3, [r7, #16] - 802c01a: f9b7 2010 ldrsh.w r2, [r7, #16] - 802c01e: fb03 f202 mul.w r2, r3, r2 - 802c022: f9b7 3012 ldrsh.w r3, [r7, #18] - 802c026: f9b7 1012 ldrsh.w r1, [r7, #18] - 802c02a: fb01 f303 mul.w r3, r1, r3 - 802c02e: 441a add r2, r3 - 802c030: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e - 802c034: f9b7 105e ldrsh.w r1, [r7, #94] ; 0x5e - 802c038: fb01 f303 mul.w r3, r1, r3 - 802c03c: 429a cmp r2, r3 - 802c03e: da02 bge.n 802c046 + 802bf82: f9b7 3010 ldrsh.w r3, [r7, #16] + 802bf86: f9b7 2010 ldrsh.w r2, [r7, #16] + 802bf8a: fb03 f202 mul.w r2, r3, r2 + 802bf8e: f9b7 3012 ldrsh.w r3, [r7, #18] + 802bf92: f9b7 1012 ldrsh.w r1, [r7, #18] + 802bf96: fb01 f303 mul.w r3, r1, r3 + 802bf9a: 441a add r2, r3 + 802bf9c: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e + 802bfa0: f9b7 105e ldrsh.w r1, [r7, #94] ; 0x5e + 802bfa4: fb01 f303 mul.w r3, r1, r3 + 802bfa8: 429a cmp r2, r3 + 802bfaa: da02 bge.n 802bfb2 on_ring = false; - 802c040: 2300 movs r3, #0 - 802c042: f887 305d strb.w r3, [r7, #93] ; 0x5d + 802bfac: 2300 movs r3, #0 + 802bfae: f887 305d strb.w r3, [r7, #93] ; 0x5d } /*If the inner area is being pressed, go to the next color mode on long press*/ uint32_t diff = lv_tick_elaps(colorwheel->last_change_time); - 802c046: 6d3b ldr r3, [r7, #80] ; 0x50 - 802c048: 6b5b ldr r3, [r3, #52] ; 0x34 - 802c04a: 4618 mov r0, r3 - 802c04c: f004 fbc6 bl 80307dc - 802c050: 6378 str r0, [r7, #52] ; 0x34 + 802bfb2: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bfb4: 6b5b ldr r3, [r3, #52] ; 0x34 + 802bfb6: 4618 mov r0, r3 + 802bfb8: f004 fbc6 bl 8030748 + 802bfbc: 6378 str r0, [r7, #52] ; 0x34 if(!on_ring && diff > indev->driver->long_press_time && !colorwheel->mode_fixed) { - 802c052: f897 305d ldrb.w r3, [r7, #93] ; 0x5d - 802c056: f083 0301 eor.w r3, r3, #1 - 802c05a: b2db uxtb r3, r3 - 802c05c: 2b00 cmp r3, #0 - 802c05e: d018 beq.n 802c092 - 802c060: 6c7b ldr r3, [r7, #68] ; 0x44 - 802c062: 681b ldr r3, [r3, #0] - 802c064: 8b9b ldrh r3, [r3, #28] - 802c066: 461a mov r2, r3 - 802c068: 6b7b ldr r3, [r7, #52] ; 0x34 - 802c06a: 4293 cmp r3, r2 - 802c06c: d911 bls.n 802c092 - 802c06e: 6d3b ldr r3, [r7, #80] ; 0x50 - 802c070: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802c074: f003 0304 and.w r3, r3, #4 - 802c078: b2db uxtb r3, r3 - 802c07a: 2b00 cmp r3, #0 - 802c07c: d109 bne.n 802c092 + 802bfbe: f897 305d ldrb.w r3, [r7, #93] ; 0x5d + 802bfc2: f083 0301 eor.w r3, r3, #1 + 802bfc6: b2db uxtb r3, r3 + 802bfc8: 2b00 cmp r3, #0 + 802bfca: d018 beq.n 802bffe + 802bfcc: 6c7b ldr r3, [r7, #68] ; 0x44 + 802bfce: 681b ldr r3, [r3, #0] + 802bfd0: 8b9b ldrh r3, [r3, #28] + 802bfd2: 461a mov r2, r3 + 802bfd4: 6b7b ldr r3, [r7, #52] ; 0x34 + 802bfd6: 4293 cmp r3, r2 + 802bfd8: d911 bls.n 802bffe + 802bfda: 6d3b ldr r3, [r7, #80] ; 0x50 + 802bfdc: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802bfe0: f003 0304 and.w r3, r3, #4 + 802bfe4: b2db uxtb r3, r3 + 802bfe6: 2b00 cmp r3, #0 + 802bfe8: d109 bne.n 802bffe next_color_mode(obj); - 802c07e: 6d78 ldr r0, [r7, #84] ; 0x54 - 802c080: f000 f8ac bl 802c1dc + 802bfea: 6d78 ldr r0, [r7, #84] ; 0x54 + 802bfec: f000 f8ac bl 802c148 lv_indev_wait_release(lv_indev_get_act()); - 802c084: f7d7 f948 bl 8003318 - 802c088: 4603 mov r3, r0 - 802c08a: 4618 mov r0, r3 - 802c08c: f7d7 faca bl 8003624 + 802bff0: f7d7 f95c bl 80032ac + 802bff4: 4603 mov r3, r0 + 802bff6: 4618 mov r0, r3 + 802bff8: f7d7 fade bl 80035b8 return; - 802c090: e09c b.n 802c1cc + 802bffc: e09c b.n 802c138 } /*Set the angle only if pressed on the ring*/ if(!on_ring) return; - 802c092: f897 305d ldrb.w r3, [r7, #93] ; 0x5d - 802c096: f083 0301 eor.w r3, r3, #1 - 802c09a: b2db uxtb r3, r3 - 802c09c: 2b00 cmp r3, #0 - 802c09e: f040 8094 bne.w 802c1ca + 802bffe: f897 305d ldrb.w r3, [r7, #93] ; 0x5d + 802c002: f083 0301 eor.w r3, r3, #1 + 802c006: b2db uxtb r3, r3 + 802c008: 2b00 cmp r3, #0 + 802c00a: f040 8094 bne.w 802c136 angle = lv_atan2(p.x, p.y) % 360; - 802c0a2: f9b7 3010 ldrsh.w r3, [r7, #16] - 802c0a6: 461a mov r2, r3 - 802c0a8: f9b7 3012 ldrsh.w r3, [r7, #18] - 802c0ac: 4619 mov r1, r3 - 802c0ae: 4610 mov r0, r2 - 802c0b0: f006 facb bl 803264a - 802c0b4: 4603 mov r3, r0 - 802c0b6: 08da lsrs r2, r3, #3 - 802c0b8: 4946 ldr r1, [pc, #280] ; (802c1d4 ) - 802c0ba: fba1 1202 umull r1, r2, r1, r2 - 802c0be: 0892 lsrs r2, r2, #2 - 802c0c0: f44f 71b4 mov.w r1, #360 ; 0x168 - 802c0c4: fb01 f202 mul.w r2, r1, r2 - 802c0c8: 1a9b subs r3, r3, r2 - 802c0ca: b29b uxth r3, r3 - 802c0cc: 87bb strh r3, [r7, #60] ; 0x3c + 802c00e: f9b7 3010 ldrsh.w r3, [r7, #16] + 802c012: 461a mov r2, r3 + 802c014: f9b7 3012 ldrsh.w r3, [r7, #18] + 802c018: 4619 mov r1, r3 + 802c01a: 4610 mov r0, r2 + 802c01c: f006 facb bl 80325b6 + 802c020: 4603 mov r3, r0 + 802c022: 08da lsrs r2, r3, #3 + 802c024: 4946 ldr r1, [pc, #280] ; (802c140 ) + 802c026: fba1 1202 umull r1, r2, r1, r2 + 802c02a: 0892 lsrs r2, r2, #2 + 802c02c: f44f 71b4 mov.w r1, #360 ; 0x168 + 802c030: fb01 f202 mul.w r2, r1, r2 + 802c034: 1a9b subs r3, r3, r2 + 802c036: b29b uxth r3, r3 + 802c038: 87bb strh r3, [r7, #60] ; 0x3c lv_color_hsv_t hsv_cur; hsv_cur = colorwheel->hsv; - 802c0ce: 6d3b ldr r3, [r7, #80] ; 0x50 - 802c0d0: 6a5b ldr r3, [r3, #36] ; 0x24 - 802c0d2: 60fb str r3, [r7, #12] + 802c03a: 6d3b ldr r3, [r7, #80] ; 0x50 + 802c03c: 6a5b ldr r3, [r3, #36] ; 0x24 + 802c03e: 60fb str r3, [r7, #12] switch(colorwheel->mode) { - 802c0d4: 6d3b ldr r3, [r7, #80] ; 0x50 - 802c0d6: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802c0da: f3c3 0301 ubfx r3, r3, #0, #2 - 802c0de: b2db uxtb r3, r3 - 802c0e0: 2b02 cmp r3, #2 - 802c0e2: d018 beq.n 802c116 - 802c0e4: 2b02 cmp r3, #2 - 802c0e6: dc25 bgt.n 802c134 - 802c0e8: 2b00 cmp r3, #0 - 802c0ea: d002 beq.n 802c0f2 - 802c0ec: 2b01 cmp r3, #1 - 802c0ee: d003 beq.n 802c0f8 - 802c0f0: e020 b.n 802c134 + 802c040: 6d3b ldr r3, [r7, #80] ; 0x50 + 802c042: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802c046: f3c3 0301 ubfx r3, r3, #0, #2 + 802c04a: b2db uxtb r3, r3 + 802c04c: 2b02 cmp r3, #2 + 802c04e: d018 beq.n 802c082 + 802c050: 2b02 cmp r3, #2 + 802c052: dc25 bgt.n 802c0a0 + 802c054: 2b00 cmp r3, #0 + 802c056: d002 beq.n 802c05e + 802c058: 2b01 cmp r3, #1 + 802c05a: d003 beq.n 802c064 + 802c05c: e020 b.n 802c0a0 case LV_COLORWHEEL_MODE_HUE: hsv_cur.h = angle; - 802c0f2: 8fbb ldrh r3, [r7, #60] ; 0x3c - 802c0f4: 81bb strh r3, [r7, #12] + 802c05e: 8fbb ldrh r3, [r7, #60] ; 0x3c + 802c060: 81bb strh r3, [r7, #12] break; - 802c0f6: e01d b.n 802c134 + 802c062: e01d b.n 802c0a0 case LV_COLORWHEEL_MODE_SATURATION: hsv_cur.s = (angle * 100) / 360; - 802c0f8: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c - 802c0fc: 2264 movs r2, #100 ; 0x64 - 802c0fe: fb02 f303 mul.w r3, r2, r3 - 802c102: 4a35 ldr r2, [pc, #212] ; (802c1d8 ) - 802c104: fb82 1203 smull r1, r2, r2, r3 - 802c108: 441a add r2, r3 - 802c10a: 1212 asrs r2, r2, #8 - 802c10c: 17db asrs r3, r3, #31 - 802c10e: 1ad3 subs r3, r2, r3 - 802c110: b2db uxtb r3, r3 - 802c112: 73bb strb r3, [r7, #14] + 802c064: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c + 802c068: 2264 movs r2, #100 ; 0x64 + 802c06a: fb02 f303 mul.w r3, r2, r3 + 802c06e: 4a35 ldr r2, [pc, #212] ; (802c144 ) + 802c070: fb82 1203 smull r1, r2, r2, r3 + 802c074: 441a add r2, r3 + 802c076: 1212 asrs r2, r2, #8 + 802c078: 17db asrs r3, r3, #31 + 802c07a: 1ad3 subs r3, r2, r3 + 802c07c: b2db uxtb r3, r3 + 802c07e: 73bb strb r3, [r7, #14] break; - 802c114: e00e b.n 802c134 + 802c080: e00e b.n 802c0a0 case LV_COLORWHEEL_MODE_VALUE: hsv_cur.v = (angle * 100) / 360; - 802c116: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c - 802c11a: 2264 movs r2, #100 ; 0x64 - 802c11c: fb02 f303 mul.w r3, r2, r3 - 802c120: 4a2d ldr r2, [pc, #180] ; (802c1d8 ) - 802c122: fb82 1203 smull r1, r2, r2, r3 - 802c126: 441a add r2, r3 - 802c128: 1212 asrs r2, r2, #8 - 802c12a: 17db asrs r3, r3, #31 - 802c12c: 1ad3 subs r3, r2, r3 - 802c12e: b2db uxtb r3, r3 - 802c130: 73fb strb r3, [r7, #15] + 802c082: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c + 802c086: 2264 movs r2, #100 ; 0x64 + 802c088: fb02 f303 mul.w r3, r2, r3 + 802c08c: 4a2d ldr r2, [pc, #180] ; (802c144 ) + 802c08e: fb82 1203 smull r1, r2, r2, r3 + 802c092: 441a add r2, r3 + 802c094: 1212 asrs r2, r2, #8 + 802c096: 17db asrs r3, r3, #31 + 802c098: 1ad3 subs r3, r2, r3 + 802c09a: b2db uxtb r3, r3 + 802c09c: 73fb strb r3, [r7, #15] break; - 802c132: bf00 nop + 802c09e: bf00 nop } if(lv_colorwheel_set_hsv(obj, hsv_cur)) { - 802c134: 68f9 ldr r1, [r7, #12] - 802c136: 6d78 ldr r0, [r7, #84] ; 0x54 - 802c138: f7ff fa5e bl 802b5f8 - 802c13c: 4603 mov r3, r0 - 802c13e: 2b00 cmp r3, #0 - 802c140: d044 beq.n 802c1cc + 802c0a0: 68f9 ldr r1, [r7, #12] + 802c0a2: 6d78 ldr r0, [r7, #84] ; 0x54 + 802c0a4: f7ff fa5e bl 802b564 + 802c0a8: 4603 mov r3, r0 + 802c0aa: 2b00 cmp r3, #0 + 802c0ac: d044 beq.n 802c138 res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 802c142: 2200 movs r2, #0 - 802c144: 211c movs r1, #28 - 802c146: 6d78 ldr r0, [r7, #84] ; 0x54 - 802c148: f7d6 f99a bl 8002480 - 802c14c: 4603 mov r3, r0 - 802c14e: f887 305c strb.w r3, [r7, #92] ; 0x5c + 802c0ae: 2200 movs r2, #0 + 802c0b0: 211c movs r1, #28 + 802c0b2: 6d78 ldr r0, [r7, #84] ; 0x54 + 802c0b4: f7d6 f9ae bl 8002414 + 802c0b8: 4603 mov r3, r0 + 802c0ba: f887 305c strb.w r3, [r7, #92] ; 0x5c if(res != LV_RES_OK) return; - 802c152: f897 305c ldrb.w r3, [r7, #92] ; 0x5c - 802c156: 2b01 cmp r3, #1 - 802c158: e038 b.n 802c1cc + 802c0be: f897 305c ldrb.w r3, [r7, #92] ; 0x5c + 802c0c2: 2b01 cmp r3, #1 + 802c0c4: e038 b.n 802c138 } } else if(code == LV_EVENT_HIT_TEST) { - 802c15a: f897 305b ldrb.w r3, [r7, #91] ; 0x5b - 802c15e: 2b11 cmp r3, #17 - 802c160: d112 bne.n 802c188 + 802c0c6: f897 305b ldrb.w r3, [r7, #91] ; 0x5b + 802c0ca: 2b11 cmp r3, #17 + 802c0cc: d112 bne.n 802c0f4 lv_hit_test_info_t * info = lv_event_get_param(e);; - 802c162: 6838 ldr r0, [r7, #0] - 802c164: f7d6 fa30 bl 80025c8 - 802c168: 64b8 str r0, [r7, #72] ; 0x48 + 802c0ce: 6838 ldr r0, [r7, #0] + 802c0d0: f7d6 fa44 bl 800255c + 802c0d4: 64b8 str r0, [r7, #72] ; 0x48 /*Valid clicks can be only in the circle*/ info->res = _lv_area_is_point_on(&obj->coords, info->point, LV_RADIUS_CIRCLE); - 802c16a: 6d7b ldr r3, [r7, #84] ; 0x54 - 802c16c: f103 0014 add.w r0, r3, #20 - 802c170: 6cbb ldr r3, [r7, #72] ; 0x48 - 802c172: 681b ldr r3, [r3, #0] - 802c174: f647 72ff movw r2, #32767 ; 0x7fff - 802c178: 4619 mov r1, r3 - 802c17a: f005 f820 bl 80311be <_lv_area_is_point_on> - 802c17e: 4603 mov r3, r0 - 802c180: 461a mov r2, r3 - 802c182: 6cbb ldr r3, [r7, #72] ; 0x48 - 802c184: 711a strb r2, [r3, #4] - 802c186: e021 b.n 802c1cc + 802c0d6: 6d7b ldr r3, [r7, #84] ; 0x54 + 802c0d8: f103 0014 add.w r0, r3, #20 + 802c0dc: 6cbb ldr r3, [r7, #72] ; 0x48 + 802c0de: 681b ldr r3, [r3, #0] + 802c0e0: f647 72ff movw r2, #32767 ; 0x7fff + 802c0e4: 4619 mov r1, r3 + 802c0e6: f005 f820 bl 803112a <_lv_area_is_point_on> + 802c0ea: 4603 mov r3, r0 + 802c0ec: 461a mov r2, r3 + 802c0ee: 6cbb ldr r3, [r7, #72] ; 0x48 + 802c0f0: 711a strb r2, [r3, #4] + 802c0f2: e021 b.n 802c138 } else if(code == LV_EVENT_DRAW_MAIN) { - 802c188: f897 305b ldrb.w r3, [r7, #91] ; 0x5b - 802c18c: 2b15 cmp r3, #21 - 802c18e: d106 bne.n 802c19e + 802c0f4: f897 305b ldrb.w r3, [r7, #91] ; 0x5b + 802c0f8: 2b15 cmp r3, #21 + 802c0fa: d106 bne.n 802c10a draw_disc_grad(e); - 802c190: 6838 ldr r0, [r7, #0] - 802c192: f7ff facf bl 802b734 + 802c0fc: 6838 ldr r0, [r7, #0] + 802c0fe: f7ff facf bl 802b6a0 draw_knob(e); - 802c196: 6838 ldr r0, [r7, #0] - 802c198: f7ff fc28 bl 802b9ec - 802c19c: e016 b.n 802c1cc + 802c102: 6838 ldr r0, [r7, #0] + 802c104: f7ff fc28 bl 802b958 + 802c108: e016 b.n 802c138 } else if(code == LV_EVENT_COVER_CHECK) { - 802c19e: f897 305b ldrb.w r3, [r7, #91] ; 0x5b - 802c1a2: 2b12 cmp r3, #18 - 802c1a4: d112 bne.n 802c1cc + 802c10a: f897 305b ldrb.w r3, [r7, #91] ; 0x5b + 802c10e: 2b12 cmp r3, #18 + 802c110: d112 bne.n 802c138 lv_cover_check_info_t * info = lv_event_get_param(e); - 802c1a6: 6838 ldr r0, [r7, #0] - 802c1a8: f7d6 fa0e bl 80025c8 - 802c1ac: 64f8 str r0, [r7, #76] ; 0x4c + 802c112: 6838 ldr r0, [r7, #0] + 802c114: f7d6 fa22 bl 800255c + 802c118: 64f8 str r0, [r7, #76] ; 0x4c if(info->res != LV_COVER_RES_MASKED) info->res = LV_COVER_RES_NOT_COVER; - 802c1ae: 6cfb ldr r3, [r7, #76] ; 0x4c - 802c1b0: 781b ldrb r3, [r3, #0] - 802c1b2: 2b02 cmp r3, #2 - 802c1b4: d00a beq.n 802c1cc - 802c1b6: 6cfb ldr r3, [r7, #76] ; 0x4c - 802c1b8: 2201 movs r2, #1 - 802c1ba: 701a strb r2, [r3, #0] - 802c1bc: e006 b.n 802c1cc + 802c11a: 6cfb ldr r3, [r7, #76] ; 0x4c + 802c11c: 781b ldrb r3, [r3, #0] + 802c11e: 2b02 cmp r3, #2 + 802c120: d00a beq.n 802c138 + 802c122: 6cfb ldr r3, [r7, #76] ; 0x4c + 802c124: 2201 movs r2, #1 + 802c126: 701a strb r2, [r3, #0] + 802c128: e006 b.n 802c138 if(res != LV_RES_OK) return; - 802c1be: bf00 nop - 802c1c0: e004 b.n 802c1cc + 802c12a: bf00 nop + 802c12c: e004 b.n 802c138 if(c == LV_KEY_RIGHT || c == LV_KEY_UP) { - 802c1c2: bf00 nop - 802c1c4: e002 b.n 802c1cc + 802c12e: bf00 nop + 802c130: e002 b.n 802c138 if(indev == NULL) return; - 802c1c6: bf00 nop - 802c1c8: e000 b.n 802c1cc + 802c132: bf00 nop + 802c134: e000 b.n 802c138 if(!on_ring) return; - 802c1ca: bf00 nop + 802c136: bf00 nop } } - 802c1cc: 3764 adds r7, #100 ; 0x64 - 802c1ce: 46bd mov sp, r7 - 802c1d0: bd90 pop {r4, r7, pc} - 802c1d2: bf00 nop - 802c1d4: 16c16c17 .word 0x16c16c17 - 802c1d8: b60b60b7 .word 0xb60b60b7 + 802c138: 3764 adds r7, #100 ; 0x64 + 802c13a: 46bd mov sp, r7 + 802c13c: bd90 pop {r4, r7, pc} + 802c13e: bf00 nop + 802c140: 16c16c17 .word 0x16c16c17 + 802c144: b60b60b7 .word 0xb60b60b7 -0802c1dc : +0802c148 : static void next_color_mode(lv_obj_t * obj) { - 802c1dc: b580 push {r7, lr} - 802c1de: b084 sub sp, #16 - 802c1e0: af00 add r7, sp, #0 - 802c1e2: 6078 str r0, [r7, #4] + 802c148: b580 push {r7, lr} + 802c14a: b084 sub sp, #16 + 802c14c: af00 add r7, sp, #0 + 802c14e: 6078 str r0, [r7, #4] lv_colorwheel_t * colorwheel = (lv_colorwheel_t *)obj; - 802c1e4: 687b ldr r3, [r7, #4] - 802c1e6: 60fb str r3, [r7, #12] + 802c150: 687b ldr r3, [r7, #4] + 802c152: 60fb str r3, [r7, #12] colorwheel->mode = (colorwheel->mode + 1) % 3; - 802c1e8: 68fb ldr r3, [r7, #12] - 802c1ea: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802c1ee: f3c3 0301 ubfx r3, r3, #0, #2 - 802c1f2: b2db uxtb r3, r3 - 802c1f4: 1c5a adds r2, r3, #1 - 802c1f6: 4b0f ldr r3, [pc, #60] ; (802c234 ) - 802c1f8: fb83 3102 smull r3, r1, r3, r2 - 802c1fc: 17d3 asrs r3, r2, #31 - 802c1fe: 1ac9 subs r1, r1, r3 - 802c200: 460b mov r3, r1 - 802c202: 005b lsls r3, r3, #1 - 802c204: 440b add r3, r1 - 802c206: 1ad1 subs r1, r2, r3 - 802c208: 460b mov r3, r1 - 802c20a: f003 0303 and.w r3, r3, #3 - 802c20e: b2d9 uxtb r1, r3 - 802c210: 68fa ldr r2, [r7, #12] - 802c212: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 802c216: f361 0301 bfi r3, r1, #0, #2 - 802c21a: f882 303c strb.w r3, [r2, #60] ; 0x3c + 802c154: 68fb ldr r3, [r7, #12] + 802c156: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802c15a: f3c3 0301 ubfx r3, r3, #0, #2 + 802c15e: b2db uxtb r3, r3 + 802c160: 1c5a adds r2, r3, #1 + 802c162: 4b0f ldr r3, [pc, #60] ; (802c1a0 ) + 802c164: fb83 3102 smull r3, r1, r3, r2 + 802c168: 17d3 asrs r3, r2, #31 + 802c16a: 1ac9 subs r1, r1, r3 + 802c16c: 460b mov r3, r1 + 802c16e: 005b lsls r3, r3, #1 + 802c170: 440b add r3, r1 + 802c172: 1ad1 subs r1, r2, r3 + 802c174: 460b mov r3, r1 + 802c176: f003 0303 and.w r3, r3, #3 + 802c17a: b2d9 uxtb r1, r3 + 802c17c: 68fa ldr r2, [r7, #12] + 802c17e: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 802c182: f361 0301 bfi r3, r1, #0, #2 + 802c186: f882 303c strb.w r3, [r2, #60] ; 0x3c refr_knob_pos(obj); - 802c21e: 6878 ldr r0, [r7, #4] - 802c220: f000 f80a bl 802c238 + 802c18a: 6878 ldr r0, [r7, #4] + 802c18c: f000 f80a bl 802c1a4 lv_obj_invalidate(obj); - 802c224: 6878 ldr r0, [r7, #4] - 802c226: f7de fc44 bl 800aab2 + 802c190: 6878 ldr r0, [r7, #4] + 802c192: f7de fc58 bl 800aa46 } - 802c22a: bf00 nop - 802c22c: 3710 adds r7, #16 - 802c22e: 46bd mov sp, r7 - 802c230: bd80 pop {r7, pc} - 802c232: bf00 nop - 802c234: 55555556 .word 0x55555556 + 802c196: bf00 nop + 802c198: 3710 adds r7, #16 + 802c19a: 46bd mov sp, r7 + 802c19c: bd80 pop {r7, pc} + 802c19e: bf00 nop + 802c1a0: 55555556 .word 0x55555556 -0802c238 : +0802c1a4 : static void refr_knob_pos(lv_obj_t * obj) { - 802c238: b590 push {r4, r7, lr} - 802c23a: b087 sub sp, #28 - 802c23c: af00 add r7, sp, #0 - 802c23e: 6078 str r0, [r7, #4] + 802c1a4: b590 push {r4, r7, lr} + 802c1a6: b087 sub sp, #28 + 802c1a8: af00 add r7, sp, #0 + 802c1aa: 6078 str r0, [r7, #4] invalidate_knob(obj); - 802c240: 6878 ldr r0, [r7, #4] - 802c242: f7ff fc0f bl 802ba64 + 802c1ac: 6878 ldr r0, [r7, #4] + 802c1ae: f7ff fc0f bl 802b9d0 lv_colorwheel_t * colorwheel = (lv_colorwheel_t *)obj; - 802c246: 687b ldr r3, [r7, #4] - 802c248: 617b str r3, [r7, #20] + 802c1b2: 687b ldr r3, [r7, #4] + 802c1b4: 617b str r3, [r7, #20] lv_coord_t w = lv_obj_get_width(obj); - 802c24a: 6878 ldr r0, [r7, #4] - 802c24c: f7dd ff7c bl 800a148 - 802c250: 4603 mov r3, r0 - 802c252: 827b strh r3, [r7, #18] + 802c1b6: 6878 ldr r0, [r7, #4] + 802c1b8: f7dd ff90 bl 800a0dc + 802c1bc: 4603 mov r3, r0 + 802c1be: 827b strh r3, [r7, #18] lv_coord_t scale_w = lv_obj_get_style_arc_width(obj, LV_PART_MAIN); - 802c254: 2100 movs r1, #0 - 802c256: 6878 ldr r0, [r7, #4] - 802c258: f7ff f9ba bl 802b5d0 - 802c25c: 4603 mov r3, r0 - 802c25e: 823b strh r3, [r7, #16] + 802c1c0: 2100 movs r1, #0 + 802c1c2: 6878 ldr r0, [r7, #4] + 802c1c4: f7ff f9ba bl 802b53c + 802c1c8: 4603 mov r3, r0 + 802c1ca: 823b strh r3, [r7, #16] lv_coord_t r = (w - scale_w) / 2; - 802c260: f9b7 2012 ldrsh.w r2, [r7, #18] - 802c264: f9b7 3010 ldrsh.w r3, [r7, #16] - 802c268: 1ad3 subs r3, r2, r3 - 802c26a: 0fda lsrs r2, r3, #31 - 802c26c: 4413 add r3, r2 - 802c26e: 105b asrs r3, r3, #1 - 802c270: 81fb strh r3, [r7, #14] + 802c1cc: f9b7 2012 ldrsh.w r2, [r7, #18] + 802c1d0: f9b7 3010 ldrsh.w r3, [r7, #16] + 802c1d4: 1ad3 subs r3, r2, r3 + 802c1d6: 0fda lsrs r2, r3, #31 + 802c1d8: 4413 add r3, r2 + 802c1da: 105b asrs r3, r3, #1 + 802c1dc: 81fb strh r3, [r7, #14] uint16_t angle = get_angle(obj); - 802c272: 6878 ldr r0, [r7, #4] - 802c274: f000 fa3c bl 802c6f0 - 802c278: 4603 mov r3, r0 - 802c27a: 81bb strh r3, [r7, #12] + 802c1de: 6878 ldr r0, [r7, #4] + 802c1e0: f000 fa3c bl 802c65c + 802c1e4: 4603 mov r3, r0 + 802c1e6: 81bb strh r3, [r7, #12] colorwheel->knob.pos.x = (((int32_t)r * lv_trigo_sin(angle)) >> LV_TRIGO_SHIFT); - 802c27c: f9b7 400e ldrsh.w r4, [r7, #14] - 802c280: f9b7 300c ldrsh.w r3, [r7, #12] - 802c284: 4618 mov r0, r3 - 802c286: f006 f921 bl 80324cc - 802c28a: 4603 mov r3, r0 - 802c28c: fb04 f303 mul.w r3, r4, r3 - 802c290: 13db asrs r3, r3, #15 - 802c292: b21a sxth r2, r3 - 802c294: 697b ldr r3, [r7, #20] - 802c296: 851a strh r2, [r3, #40] ; 0x28 + 802c1e8: f9b7 400e ldrsh.w r4, [r7, #14] + 802c1ec: f9b7 300c ldrsh.w r3, [r7, #12] + 802c1f0: 4618 mov r0, r3 + 802c1f2: f006 f921 bl 8032438 + 802c1f6: 4603 mov r3, r0 + 802c1f8: fb04 f303 mul.w r3, r4, r3 + 802c1fc: 13db asrs r3, r3, #15 + 802c1fe: b21a sxth r2, r3 + 802c200: 697b ldr r3, [r7, #20] + 802c202: 851a strh r2, [r3, #40] ; 0x28 colorwheel->knob.pos.y = (((int32_t)r * lv_trigo_cos(angle)) >> LV_TRIGO_SHIFT); - 802c298: f9b7 400e ldrsh.w r4, [r7, #14] - 802c29c: f9b7 300c ldrsh.w r3, [r7, #12] - 802c2a0: 4618 mov r0, r3 - 802c2a2: f7ff f8c5 bl 802b430 - 802c2a6: 4603 mov r3, r0 - 802c2a8: fb04 f303 mul.w r3, r4, r3 - 802c2ac: 13db asrs r3, r3, #15 - 802c2ae: b21a sxth r2, r3 - 802c2b0: 697b ldr r3, [r7, #20] - 802c2b2: 855a strh r2, [r3, #42] ; 0x2a + 802c204: f9b7 400e ldrsh.w r4, [r7, #14] + 802c208: f9b7 300c ldrsh.w r3, [r7, #12] + 802c20c: 4618 mov r0, r3 + 802c20e: f7ff f8c5 bl 802b39c + 802c212: 4603 mov r3, r0 + 802c214: fb04 f303 mul.w r3, r4, r3 + 802c218: 13db asrs r3, r3, #15 + 802c21a: b21a sxth r2, r3 + 802c21c: 697b ldr r3, [r7, #20] + 802c21e: 855a strh r2, [r3, #42] ; 0x2a colorwheel->knob.pos.x = colorwheel->knob.pos.x + w / 2; - 802c2b4: 697b ldr r3, [r7, #20] - 802c2b6: f9b3 3028 ldrsh.w r3, [r3, #40] ; 0x28 - 802c2ba: b29a uxth r2, r3 - 802c2bc: f9b7 3012 ldrsh.w r3, [r7, #18] - 802c2c0: 0fd9 lsrs r1, r3, #31 - 802c2c2: 440b add r3, r1 - 802c2c4: 105b asrs r3, r3, #1 - 802c2c6: b21b sxth r3, r3 - 802c2c8: b29b uxth r3, r3 - 802c2ca: 4413 add r3, r2 - 802c2cc: b29b uxth r3, r3 - 802c2ce: b21a sxth r2, r3 - 802c2d0: 697b ldr r3, [r7, #20] - 802c2d2: 851a strh r2, [r3, #40] ; 0x28 + 802c220: 697b ldr r3, [r7, #20] + 802c222: f9b3 3028 ldrsh.w r3, [r3, #40] ; 0x28 + 802c226: b29a uxth r2, r3 + 802c228: f9b7 3012 ldrsh.w r3, [r7, #18] + 802c22c: 0fd9 lsrs r1, r3, #31 + 802c22e: 440b add r3, r1 + 802c230: 105b asrs r3, r3, #1 + 802c232: b21b sxth r3, r3 + 802c234: b29b uxth r3, r3 + 802c236: 4413 add r3, r2 + 802c238: b29b uxth r3, r3 + 802c23a: b21a sxth r2, r3 + 802c23c: 697b ldr r3, [r7, #20] + 802c23e: 851a strh r2, [r3, #40] ; 0x28 colorwheel->knob.pos.y = colorwheel->knob.pos.y + w / 2; - 802c2d4: 697b ldr r3, [r7, #20] - 802c2d6: f9b3 302a ldrsh.w r3, [r3, #42] ; 0x2a - 802c2da: b29a uxth r2, r3 - 802c2dc: f9b7 3012 ldrsh.w r3, [r7, #18] - 802c2e0: 0fd9 lsrs r1, r3, #31 - 802c2e2: 440b add r3, r1 - 802c2e4: 105b asrs r3, r3, #1 - 802c2e6: b21b sxth r3, r3 - 802c2e8: b29b uxth r3, r3 - 802c2ea: 4413 add r3, r2 - 802c2ec: b29b uxth r3, r3 - 802c2ee: b21a sxth r2, r3 - 802c2f0: 697b ldr r3, [r7, #20] - 802c2f2: 855a strh r2, [r3, #42] ; 0x2a + 802c240: 697b ldr r3, [r7, #20] + 802c242: f9b3 302a ldrsh.w r3, [r3, #42] ; 0x2a + 802c246: b29a uxth r2, r3 + 802c248: f9b7 3012 ldrsh.w r3, [r7, #18] + 802c24c: 0fd9 lsrs r1, r3, #31 + 802c24e: 440b add r3, r1 + 802c250: 105b asrs r3, r3, #1 + 802c252: b21b sxth r3, r3 + 802c254: b29b uxth r3, r3 + 802c256: 4413 add r3, r2 + 802c258: b29b uxth r3, r3 + 802c25a: b21a sxth r2, r3 + 802c25c: 697b ldr r3, [r7, #20] + 802c25e: 855a strh r2, [r3, #42] ; 0x2a invalidate_knob(obj); - 802c2f4: 6878 ldr r0, [r7, #4] - 802c2f6: f7ff fbb5 bl 802ba64 + 802c260: 6878 ldr r0, [r7, #4] + 802c262: f7ff fbb5 bl 802b9d0 } - 802c2fa: bf00 nop - 802c2fc: 371c adds r7, #28 - 802c2fe: 46bd mov sp, r7 - 802c300: bd90 pop {r4, r7, pc} + 802c266: bf00 nop + 802c268: 371c adds r7, #28 + 802c26a: 46bd mov sp, r7 + 802c26c: bd90 pop {r4, r7, pc} -0802c302 : +0802c26e : static lv_res_t double_click_reset(lv_obj_t * obj) { - 802c302: b580 push {r7, lr} - 802c304: b086 sub sp, #24 - 802c306: af00 add r7, sp, #0 - 802c308: 6078 str r0, [r7, #4] + 802c26e: b580 push {r7, lr} + 802c270: b086 sub sp, #24 + 802c272: af00 add r7, sp, #0 + 802c274: 6078 str r0, [r7, #4] lv_colorwheel_t * colorwheel = (lv_colorwheel_t *)obj; - 802c30a: 687b ldr r3, [r7, #4] - 802c30c: 617b str r3, [r7, #20] + 802c276: 687b ldr r3, [r7, #4] + 802c278: 617b str r3, [r7, #20] lv_indev_t * indev = lv_indev_get_act(); - 802c30e: f7d7 f803 bl 8003318 - 802c312: 6138 str r0, [r7, #16] + 802c27a: f7d7 f817 bl 80032ac + 802c27e: 6138 str r0, [r7, #16] /*Double clicked? Use long press time as double click time out*/ if(lv_tick_elaps(colorwheel->last_click_time) < indev->driver->long_press_time) { - 802c314: 697b ldr r3, [r7, #20] - 802c316: 6b1b ldr r3, [r3, #48] ; 0x30 - 802c318: 4618 mov r0, r3 - 802c31a: f004 fa5f bl 80307dc - 802c31e: 4602 mov r2, r0 - 802c320: 693b ldr r3, [r7, #16] - 802c322: 681b ldr r3, [r3, #0] - 802c324: 8b9b ldrh r3, [r3, #28] - 802c326: 429a cmp r2, r3 - 802c328: d230 bcs.n 802c38c + 802c280: 697b ldr r3, [r7, #20] + 802c282: 6b1b ldr r3, [r3, #48] ; 0x30 + 802c284: 4618 mov r0, r3 + 802c286: f004 fa5f bl 8030748 + 802c28a: 4602 mov r2, r0 + 802c28c: 693b ldr r3, [r7, #16] + 802c28e: 681b ldr r3, [r3, #0] + 802c290: 8b9b ldrh r3, [r3, #28] + 802c292: 429a cmp r2, r3 + 802c294: d230 bcs.n 802c2f8 lv_color_hsv_t hsv_cur; hsv_cur = colorwheel->hsv; - 802c32a: 697b ldr r3, [r7, #20] - 802c32c: 6a5b ldr r3, [r3, #36] ; 0x24 - 802c32e: 60bb str r3, [r7, #8] + 802c296: 697b ldr r3, [r7, #20] + 802c298: 6a5b ldr r3, [r3, #36] ; 0x24 + 802c29a: 60bb str r3, [r7, #8] switch(colorwheel->mode) { - 802c330: 697b ldr r3, [r7, #20] - 802c332: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802c336: f3c3 0301 ubfx r3, r3, #0, #2 - 802c33a: b2db uxtb r3, r3 - 802c33c: 2b02 cmp r3, #2 - 802c33e: d00c beq.n 802c35a - 802c340: 2b02 cmp r3, #2 - 802c342: dc0d bgt.n 802c360 - 802c344: 2b00 cmp r3, #0 - 802c346: d002 beq.n 802c34e - 802c348: 2b01 cmp r3, #1 - 802c34a: d003 beq.n 802c354 - 802c34c: e008 b.n 802c360 + 802c29c: 697b ldr r3, [r7, #20] + 802c29e: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802c2a2: f3c3 0301 ubfx r3, r3, #0, #2 + 802c2a6: b2db uxtb r3, r3 + 802c2a8: 2b02 cmp r3, #2 + 802c2aa: d00c beq.n 802c2c6 + 802c2ac: 2b02 cmp r3, #2 + 802c2ae: dc0d bgt.n 802c2cc + 802c2b0: 2b00 cmp r3, #0 + 802c2b2: d002 beq.n 802c2ba + 802c2b4: 2b01 cmp r3, #1 + 802c2b6: d003 beq.n 802c2c0 + 802c2b8: e008 b.n 802c2cc case LV_COLORWHEEL_MODE_HUE: hsv_cur.h = 0; - 802c34e: 2300 movs r3, #0 - 802c350: 813b strh r3, [r7, #8] + 802c2ba: 2300 movs r3, #0 + 802c2bc: 813b strh r3, [r7, #8] break; - 802c352: e005 b.n 802c360 + 802c2be: e005 b.n 802c2cc case LV_COLORWHEEL_MODE_SATURATION: hsv_cur.s = 100; - 802c354: 2364 movs r3, #100 ; 0x64 - 802c356: 72bb strb r3, [r7, #10] + 802c2c0: 2364 movs r3, #100 ; 0x64 + 802c2c2: 72bb strb r3, [r7, #10] break; - 802c358: e002 b.n 802c360 + 802c2c4: e002 b.n 802c2cc case LV_COLORWHEEL_MODE_VALUE: hsv_cur.v = 100; - 802c35a: 2364 movs r3, #100 ; 0x64 - 802c35c: 72fb strb r3, [r7, #11] + 802c2c6: 2364 movs r3, #100 ; 0x64 + 802c2c8: 72fb strb r3, [r7, #11] break; - 802c35e: bf00 nop + 802c2ca: bf00 nop } lv_indev_wait_release(indev); - 802c360: 6938 ldr r0, [r7, #16] - 802c362: f7d7 f95f bl 8003624 + 802c2cc: 6938 ldr r0, [r7, #16] + 802c2ce: f7d7 f973 bl 80035b8 if(lv_colorwheel_set_hsv(obj, hsv_cur)) { - 802c366: 68b9 ldr r1, [r7, #8] - 802c368: 6878 ldr r0, [r7, #4] - 802c36a: f7ff f945 bl 802b5f8 - 802c36e: 4603 mov r3, r0 - 802c370: 2b00 cmp r3, #0 - 802c372: d00b beq.n 802c38c + 802c2d2: 68b9 ldr r1, [r7, #8] + 802c2d4: 6878 ldr r0, [r7, #4] + 802c2d6: f7ff f945 bl 802b564 + 802c2da: 4603 mov r3, r0 + 802c2dc: 2b00 cmp r3, #0 + 802c2de: d00b beq.n 802c2f8 lv_res_t res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 802c374: 2200 movs r2, #0 - 802c376: 211c movs r1, #28 - 802c378: 6878 ldr r0, [r7, #4] - 802c37a: f7d6 f881 bl 8002480 - 802c37e: 4603 mov r3, r0 - 802c380: 73fb strb r3, [r7, #15] + 802c2e0: 2200 movs r2, #0 + 802c2e2: 211c movs r1, #28 + 802c2e4: 6878 ldr r0, [r7, #4] + 802c2e6: f7d6 f895 bl 8002414 + 802c2ea: 4603 mov r3, r0 + 802c2ec: 73fb strb r3, [r7, #15] if(res != LV_RES_OK) return res; - 802c382: 7bfb ldrb r3, [r7, #15] - 802c384: 2b01 cmp r3, #1 - 802c386: d001 beq.n 802c38c - 802c388: 7bfb ldrb r3, [r7, #15] - 802c38a: e005 b.n 802c398 + 802c2ee: 7bfb ldrb r3, [r7, #15] + 802c2f0: 2b01 cmp r3, #1 + 802c2f2: d001 beq.n 802c2f8 + 802c2f4: 7bfb ldrb r3, [r7, #15] + 802c2f6: e005 b.n 802c304 } } colorwheel->last_click_time = lv_tick_get(); - 802c38c: f004 fa0e bl 80307ac - 802c390: 4602 mov r2, r0 - 802c392: 697b ldr r3, [r7, #20] - 802c394: 631a str r2, [r3, #48] ; 0x30 + 802c2f8: f004 fa0e bl 8030718 + 802c2fc: 4602 mov r2, r0 + 802c2fe: 697b ldr r3, [r7, #20] + 802c300: 631a str r2, [r3, #48] ; 0x30 return LV_RES_OK; - 802c396: 2301 movs r3, #1 + 802c302: 2301 movs r3, #1 } - 802c398: 4618 mov r0, r3 - 802c39a: 3718 adds r7, #24 - 802c39c: 46bd mov sp, r7 - 802c39e: bd80 pop {r7, pc} + 802c304: 4618 mov r0, r3 + 802c306: 3718 adds r7, #24 + 802c308: 46bd mov sp, r7 + 802c30a: bd80 pop {r7, pc} -0802c3a0 : +0802c30c : * We replace division by 255 by a division by 256, a.k.a a shift right by 8 bits. * This is wrong, but since this is only used to compute the pixels on the screen and not the final color, it's ok. */ static void fast_hsv2rgb(uint16_t h, uint8_t s, uint8_t v, uint8_t * r, uint8_t * g, uint8_t * b); static void fast_hsv2rgb(uint16_t h, uint8_t s, uint8_t v, uint8_t * r, uint8_t * g, uint8_t * b) { - 802c3a0: b480 push {r7} - 802c3a2: b089 sub sp, #36 ; 0x24 - 802c3a4: af00 add r7, sp, #0 - 802c3a6: 603b str r3, [r7, #0] - 802c3a8: 4603 mov r3, r0 - 802c3aa: 80fb strh r3, [r7, #6] - 802c3ac: 460b mov r3, r1 - 802c3ae: 717b strb r3, [r7, #5] - 802c3b0: 4613 mov r3, r2 - 802c3b2: 713b strb r3, [r7, #4] + 802c30c: b480 push {r7} + 802c30e: b089 sub sp, #36 ; 0x24 + 802c310: af00 add r7, sp, #0 + 802c312: 603b str r3, [r7, #0] + 802c314: 4603 mov r3, r0 + 802c316: 80fb strh r3, [r7, #6] + 802c318: 460b mov r3, r1 + 802c31a: 717b strb r3, [r7, #5] + 802c31c: 4613 mov r3, r2 + 802c31e: 713b strb r3, [r7, #4] if(!s) { - 802c3b4: 797b ldrb r3, [r7, #5] - 802c3b6: 2b00 cmp r3, #0 - 802c3b8: d10b bne.n 802c3d2 + 802c320: 797b ldrb r3, [r7, #5] + 802c322: 2b00 cmp r3, #0 + 802c324: d10b bne.n 802c33e *r = *g = *b = v; - 802c3ba: 6afb ldr r3, [r7, #44] ; 0x2c - 802c3bc: 793a ldrb r2, [r7, #4] - 802c3be: 701a strb r2, [r3, #0] - 802c3c0: 6afb ldr r3, [r7, #44] ; 0x2c - 802c3c2: 781a ldrb r2, [r3, #0] - 802c3c4: 6abb ldr r3, [r7, #40] ; 0x28 - 802c3c6: 701a strb r2, [r3, #0] - 802c3c8: 6abb ldr r3, [r7, #40] ; 0x28 - 802c3ca: 781a ldrb r2, [r3, #0] - 802c3cc: 683b ldr r3, [r7, #0] - 802c3ce: 701a strb r2, [r3, #0] + 802c326: 6afb ldr r3, [r7, #44] ; 0x2c + 802c328: 793a ldrb r2, [r7, #4] + 802c32a: 701a strb r2, [r3, #0] + 802c32c: 6afb ldr r3, [r7, #44] ; 0x2c + 802c32e: 781a ldrb r2, [r3, #0] + 802c330: 6abb ldr r3, [r7, #40] ; 0x28 + 802c332: 701a strb r2, [r3, #0] + 802c334: 6abb ldr r3, [r7, #40] ; 0x28 + 802c336: 781a ldrb r2, [r3, #0] + 802c338: 683b ldr r3, [r7, #0] + 802c33a: 701a strb r2, [r3, #0] return; - 802c3d0: e07d b.n 802c4ce + 802c33c: e07d b.n 802c43a } uint8_t sextant = h >> 8; - 802c3d2: 88fb ldrh r3, [r7, #6] - 802c3d4: 0a1b lsrs r3, r3, #8 - 802c3d6: b29b uxth r3, r3 - 802c3d8: 777b strb r3, [r7, #29] + 802c33e: 88fb ldrh r3, [r7, #6] + 802c340: 0a1b lsrs r3, r3, #8 + 802c342: b29b uxth r3, r3 + 802c344: 777b strb r3, [r7, #29] HSV_PTR_SWAP(sextant, r, g, b); /*Swap pointers so the conversion code is the same*/ - 802c3da: 7f7b ldrb r3, [r7, #29] - 802c3dc: f003 0302 and.w r3, r3, #2 - 802c3e0: 2b00 cmp r3, #0 - 802c3e2: d005 beq.n 802c3f0 - 802c3e4: 683b ldr r3, [r7, #0] - 802c3e6: 61bb str r3, [r7, #24] - 802c3e8: 6afb ldr r3, [r7, #44] ; 0x2c - 802c3ea: 603b str r3, [r7, #0] - 802c3ec: 69bb ldr r3, [r7, #24] - 802c3ee: 62fb str r3, [r7, #44] ; 0x2c - 802c3f0: 7f7b ldrb r3, [r7, #29] - 802c3f2: f003 0304 and.w r3, r3, #4 - 802c3f6: 2b00 cmp r3, #0 - 802c3f8: d005 beq.n 802c406 - 802c3fa: 6abb ldr r3, [r7, #40] ; 0x28 - 802c3fc: 617b str r3, [r7, #20] - 802c3fe: 6afb ldr r3, [r7, #44] ; 0x2c - 802c400: 62bb str r3, [r7, #40] ; 0x28 - 802c402: 697b ldr r3, [r7, #20] - 802c404: 62fb str r3, [r7, #44] ; 0x2c - 802c406: 7f7b ldrb r3, [r7, #29] - 802c408: f003 0306 and.w r3, r3, #6 - 802c40c: 2b00 cmp r3, #0 - 802c40e: d10b bne.n 802c428 - 802c410: 7f7b ldrb r3, [r7, #29] - 802c412: f003 0301 and.w r3, r3, #1 - 802c416: 2b00 cmp r3, #0 - 802c418: d111 bne.n 802c43e - 802c41a: 683b ldr r3, [r7, #0] - 802c41c: 60fb str r3, [r7, #12] - 802c41e: 6abb ldr r3, [r7, #40] ; 0x28 - 802c420: 603b str r3, [r7, #0] - 802c422: 68fb ldr r3, [r7, #12] - 802c424: 62bb str r3, [r7, #40] ; 0x28 - 802c426: e00a b.n 802c43e - 802c428: 7f7b ldrb r3, [r7, #29] - 802c42a: f003 0301 and.w r3, r3, #1 - 802c42e: 2b00 cmp r3, #0 - 802c430: d005 beq.n 802c43e - 802c432: 683b ldr r3, [r7, #0] - 802c434: 613b str r3, [r7, #16] - 802c436: 6abb ldr r3, [r7, #40] ; 0x28 - 802c438: 603b str r3, [r7, #0] - 802c43a: 693b ldr r3, [r7, #16] - 802c43c: 62bb str r3, [r7, #40] ; 0x28 + 802c346: 7f7b ldrb r3, [r7, #29] + 802c348: f003 0302 and.w r3, r3, #2 + 802c34c: 2b00 cmp r3, #0 + 802c34e: d005 beq.n 802c35c + 802c350: 683b ldr r3, [r7, #0] + 802c352: 61bb str r3, [r7, #24] + 802c354: 6afb ldr r3, [r7, #44] ; 0x2c + 802c356: 603b str r3, [r7, #0] + 802c358: 69bb ldr r3, [r7, #24] + 802c35a: 62fb str r3, [r7, #44] ; 0x2c + 802c35c: 7f7b ldrb r3, [r7, #29] + 802c35e: f003 0304 and.w r3, r3, #4 + 802c362: 2b00 cmp r3, #0 + 802c364: d005 beq.n 802c372 + 802c366: 6abb ldr r3, [r7, #40] ; 0x28 + 802c368: 617b str r3, [r7, #20] + 802c36a: 6afb ldr r3, [r7, #44] ; 0x2c + 802c36c: 62bb str r3, [r7, #40] ; 0x28 + 802c36e: 697b ldr r3, [r7, #20] + 802c370: 62fb str r3, [r7, #44] ; 0x2c + 802c372: 7f7b ldrb r3, [r7, #29] + 802c374: f003 0306 and.w r3, r3, #6 + 802c378: 2b00 cmp r3, #0 + 802c37a: d10b bne.n 802c394 + 802c37c: 7f7b ldrb r3, [r7, #29] + 802c37e: f003 0301 and.w r3, r3, #1 + 802c382: 2b00 cmp r3, #0 + 802c384: d111 bne.n 802c3aa + 802c386: 683b ldr r3, [r7, #0] + 802c388: 60fb str r3, [r7, #12] + 802c38a: 6abb ldr r3, [r7, #40] ; 0x28 + 802c38c: 603b str r3, [r7, #0] + 802c38e: 68fb ldr r3, [r7, #12] + 802c390: 62bb str r3, [r7, #40] ; 0x28 + 802c392: e00a b.n 802c3aa + 802c394: 7f7b ldrb r3, [r7, #29] + 802c396: f003 0301 and.w r3, r3, #1 + 802c39a: 2b00 cmp r3, #0 + 802c39c: d005 beq.n 802c3aa + 802c39e: 683b ldr r3, [r7, #0] + 802c3a0: 613b str r3, [r7, #16] + 802c3a2: 6abb ldr r3, [r7, #40] ; 0x28 + 802c3a4: 603b str r3, [r7, #0] + 802c3a6: 693b ldr r3, [r7, #16] + 802c3a8: 62bb str r3, [r7, #40] ; 0x28 *g = v; - 802c43e: 6abb ldr r3, [r7, #40] ; 0x28 - 802c440: 793a ldrb r2, [r7, #4] - 802c442: 701a strb r2, [r3, #0] + 802c3aa: 6abb ldr r3, [r7, #40] ; 0x28 + 802c3ac: 793a ldrb r2, [r7, #4] + 802c3ae: 701a strb r2, [r3, #0] uint8_t bb = ~s; - 802c444: 797b ldrb r3, [r7, #5] - 802c446: 43db mvns r3, r3 - 802c448: 72fb strb r3, [r7, #11] + 802c3b0: 797b ldrb r3, [r7, #5] + 802c3b2: 43db mvns r3, r3 + 802c3b4: 72fb strb r3, [r7, #11] uint16_t ww = v * bb; /*Don't try to be precise, but instead, be fast*/ - 802c44a: 793b ldrb r3, [r7, #4] - 802c44c: b29b uxth r3, r3 - 802c44e: 7afa ldrb r2, [r7, #11] - 802c450: b292 uxth r2, r2 - 802c452: fb02 f303 mul.w r3, r2, r3 - 802c456: 83fb strh r3, [r7, #30] + 802c3b6: 793b ldrb r3, [r7, #4] + 802c3b8: b29b uxth r3, r3 + 802c3ba: 7afa ldrb r2, [r7, #11] + 802c3bc: b292 uxth r2, r2 + 802c3be: fb02 f303 mul.w r3, r2, r3 + 802c3c2: 83fb strh r3, [r7, #30] *b = ww >> 8; - 802c458: 8bfb ldrh r3, [r7, #30] - 802c45a: 0a1b lsrs r3, r3, #8 - 802c45c: b29b uxth r3, r3 - 802c45e: b2da uxtb r2, r3 - 802c460: 6afb ldr r3, [r7, #44] ; 0x2c - 802c462: 701a strb r2, [r3, #0] + 802c3c4: 8bfb ldrh r3, [r7, #30] + 802c3c6: 0a1b lsrs r3, r3, #8 + 802c3c8: b29b uxth r3, r3 + 802c3ca: b2da uxtb r2, r3 + 802c3cc: 6afb ldr r3, [r7, #44] ; 0x2c + 802c3ce: 701a strb r2, [r3, #0] uint8_t h_frac = h & 0xff; - 802c464: 88fb ldrh r3, [r7, #6] - 802c466: 72bb strb r3, [r7, #10] + 802c3d0: 88fb ldrh r3, [r7, #6] + 802c3d2: 72bb strb r3, [r7, #10] if(!(sextant & 1)) { - 802c468: 7f7b ldrb r3, [r7, #29] - 802c46a: f003 0301 and.w r3, r3, #1 - 802c46e: 2b00 cmp r3, #0 - 802c470: d112 bne.n 802c498 + 802c3d4: 7f7b ldrb r3, [r7, #29] + 802c3d6: f003 0301 and.w r3, r3, #1 + 802c3da: 2b00 cmp r3, #0 + 802c3dc: d112 bne.n 802c404 /*Up slope*/ ww = !h_frac ? ((uint16_t)s << 8) : (s * (uint8_t)(-h_frac)); /*Skip multiply if not required*/ - 802c472: 7abb ldrb r3, [r7, #10] - 802c474: 2b00 cmp r3, #0 - 802c476: d104 bne.n 802c482 - 802c478: 797b ldrb r3, [r7, #5] - 802c47a: b29b uxth r3, r3 - 802c47c: 021b lsls r3, r3, #8 - 802c47e: b29b uxth r3, r3 - 802c480: e008 b.n 802c494 - 802c482: 797b ldrb r3, [r7, #5] - 802c484: b29b uxth r3, r3 - 802c486: 7aba ldrb r2, [r7, #10] - 802c488: 4252 negs r2, r2 - 802c48a: b2d2 uxtb r2, r2 - 802c48c: b292 uxth r2, r2 - 802c48e: fb02 f303 mul.w r3, r2, r3 - 802c492: b29b uxth r3, r3 - 802c494: 83fb strh r3, [r7, #30] - 802c496: e006 b.n 802c4a6 + 802c3de: 7abb ldrb r3, [r7, #10] + 802c3e0: 2b00 cmp r3, #0 + 802c3e2: d104 bne.n 802c3ee + 802c3e4: 797b ldrb r3, [r7, #5] + 802c3e6: b29b uxth r3, r3 + 802c3e8: 021b lsls r3, r3, #8 + 802c3ea: b29b uxth r3, r3 + 802c3ec: e008 b.n 802c400 + 802c3ee: 797b ldrb r3, [r7, #5] + 802c3f0: b29b uxth r3, r3 + 802c3f2: 7aba ldrb r2, [r7, #10] + 802c3f4: 4252 negs r2, r2 + 802c3f6: b2d2 uxtb r2, r2 + 802c3f8: b292 uxth r2, r2 + 802c3fa: fb02 f303 mul.w r3, r2, r3 + 802c3fe: b29b uxth r3, r3 + 802c400: 83fb strh r3, [r7, #30] + 802c402: e006 b.n 802c412 } else { /*Down slope*/ ww = s * h_frac; - 802c498: 797b ldrb r3, [r7, #5] - 802c49a: b29b uxth r3, r3 - 802c49c: 7aba ldrb r2, [r7, #10] - 802c49e: b292 uxth r2, r2 - 802c4a0: fb02 f303 mul.w r3, r2, r3 - 802c4a4: 83fb strh r3, [r7, #30] + 802c404: 797b ldrb r3, [r7, #5] + 802c406: b29b uxth r3, r3 + 802c408: 7aba ldrb r2, [r7, #10] + 802c40a: b292 uxth r2, r2 + 802c40c: fb02 f303 mul.w r3, r2, r3 + 802c410: 83fb strh r3, [r7, #30] } bb = ww >> 8; - 802c4a6: 8bfb ldrh r3, [r7, #30] - 802c4a8: 0a1b lsrs r3, r3, #8 - 802c4aa: b29b uxth r3, r3 - 802c4ac: 72fb strb r3, [r7, #11] + 802c412: 8bfb ldrh r3, [r7, #30] + 802c414: 0a1b lsrs r3, r3, #8 + 802c416: b29b uxth r3, r3 + 802c418: 72fb strb r3, [r7, #11] bb = ~bb; - 802c4ae: 7afb ldrb r3, [r7, #11] - 802c4b0: 43db mvns r3, r3 - 802c4b2: 72fb strb r3, [r7, #11] + 802c41a: 7afb ldrb r3, [r7, #11] + 802c41c: 43db mvns r3, r3 + 802c41e: 72fb strb r3, [r7, #11] ww = v * bb; - 802c4b4: 793b ldrb r3, [r7, #4] - 802c4b6: b29b uxth r3, r3 - 802c4b8: 7afa ldrb r2, [r7, #11] - 802c4ba: b292 uxth r2, r2 - 802c4bc: fb02 f303 mul.w r3, r2, r3 - 802c4c0: 83fb strh r3, [r7, #30] + 802c420: 793b ldrb r3, [r7, #4] + 802c422: b29b uxth r3, r3 + 802c424: 7afa ldrb r2, [r7, #11] + 802c426: b292 uxth r2, r2 + 802c428: fb02 f303 mul.w r3, r2, r3 + 802c42c: 83fb strh r3, [r7, #30] *r = ww >> 8; - 802c4c2: 8bfb ldrh r3, [r7, #30] - 802c4c4: 0a1b lsrs r3, r3, #8 - 802c4c6: b29b uxth r3, r3 - 802c4c8: b2da uxtb r2, r3 - 802c4ca: 683b ldr r3, [r7, #0] - 802c4cc: 701a strb r2, [r3, #0] + 802c42e: 8bfb ldrh r3, [r7, #30] + 802c430: 0a1b lsrs r3, r3, #8 + 802c432: b29b uxth r3, r3 + 802c434: b2da uxtb r2, r3 + 802c436: 683b ldr r3, [r7, #0] + 802c438: 701a strb r2, [r3, #0] } - 802c4ce: 3724 adds r7, #36 ; 0x24 - 802c4d0: 46bd mov sp, r7 - 802c4d2: bc80 pop {r7} - 802c4d4: 4770 bx lr + 802c43a: 3724 adds r7, #36 ; 0x24 + 802c43c: 46bd mov sp, r7 + 802c43e: bc80 pop {r7} + 802c440: 4770 bx lr ... -0802c4d8 : +0802c444 : static lv_color_t angle_to_mode_color_fast(lv_obj_t * obj, uint16_t angle) { - 802c4d8: b590 push {r4, r7, lr} - 802c4da: b087 sub sp, #28 - 802c4dc: af02 add r7, sp, #8 - 802c4de: 6078 str r0, [r7, #4] - 802c4e0: 460b mov r3, r1 - 802c4e2: 807b strh r3, [r7, #2] + 802c444: b590 push {r4, r7, lr} + 802c446: b087 sub sp, #28 + 802c448: af02 add r7, sp, #8 + 802c44a: 6078 str r0, [r7, #4] + 802c44c: 460b mov r3, r1 + 802c44e: 807b strh r3, [r7, #2] lv_colorwheel_t * ext = (lv_colorwheel_t *)obj; - 802c4e4: 687b ldr r3, [r7, #4] - 802c4e6: 60fb str r3, [r7, #12] + 802c450: 687b ldr r3, [r7, #4] + 802c452: 60fb str r3, [r7, #12] uint8_t r = 0, g = 0, b = 0; - 802c4e8: 2300 movs r3, #0 - 802c4ea: 72fb strb r3, [r7, #11] - 802c4ec: 2300 movs r3, #0 - 802c4ee: 72bb strb r3, [r7, #10] - 802c4f0: 2300 movs r3, #0 - 802c4f2: 727b strb r3, [r7, #9] + 802c454: 2300 movs r3, #0 + 802c456: 72fb strb r3, [r7, #11] + 802c458: 2300 movs r3, #0 + 802c45a: 72bb strb r3, [r7, #10] + 802c45c: 2300 movs r3, #0 + 802c45e: 727b strb r3, [r7, #9] static uint16_t h = 0; static uint8_t s = 0, v = 0, m = 255; switch(ext->mode) { - 802c4f4: 68fb ldr r3, [r7, #12] - 802c4f6: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802c4fa: f3c3 0301 ubfx r3, r3, #0, #2 - 802c4fe: b2db uxtb r3, r3 - 802c500: 2b01 cmp r3, #1 - 802c502: d050 beq.n 802c5a6 - 802c504: 2b02 cmp r3, #2 - 802c506: f000 8095 beq.w 802c634 + 802c460: 68fb ldr r3, [r7, #12] + 802c462: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802c466: f3c3 0301 ubfx r3, r3, #0, #2 + 802c46a: b2db uxtb r3, r3 + 802c46c: 2b01 cmp r3, #1 + 802c46e: d050 beq.n 802c512 + 802c470: 2b02 cmp r3, #2 + 802c472: f000 8095 beq.w 802c5a0 default: case LV_COLORWHEEL_MODE_HUE: /*Don't recompute costly scaling if it does not change*/ if(m != ext->mode) { - 802c50a: 68fb ldr r3, [r7, #12] - 802c50c: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802c510: f3c3 0301 ubfx r3, r3, #0, #2 - 802c514: b2db uxtb r3, r3 - 802c516: 461a mov r2, r3 - 802c518: 4b6f ldr r3, [pc, #444] ; (802c6d8 ) - 802c51a: 781b ldrb r3, [r3, #0] - 802c51c: 429a cmp r2, r3 - 802c51e: d02c beq.n 802c57a + 802c476: 68fb ldr r3, [r7, #12] + 802c478: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802c47c: f3c3 0301 ubfx r3, r3, #0, #2 + 802c480: b2db uxtb r3, r3 + 802c482: 461a mov r2, r3 + 802c484: 4b6f ldr r3, [pc, #444] ; (802c644 ) + 802c486: 781b ldrb r3, [r3, #0] + 802c488: 429a cmp r2, r3 + 802c48a: d02c beq.n 802c4e6 s = (uint8_t)(((uint16_t)ext->hsv.s * 51) / 20); - 802c520: 68fb ldr r3, [r7, #12] - 802c522: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 - 802c526: 461a mov r2, r3 - 802c528: 4613 mov r3, r2 - 802c52a: 005b lsls r3, r3, #1 - 802c52c: 4413 add r3, r2 - 802c52e: 011a lsls r2, r3, #4 - 802c530: 4413 add r3, r2 - 802c532: 4a6a ldr r2, [pc, #424] ; (802c6dc ) - 802c534: fb82 1203 smull r1, r2, r2, r3 - 802c538: 10d2 asrs r2, r2, #3 - 802c53a: 17db asrs r3, r3, #31 - 802c53c: 1ad3 subs r3, r2, r3 - 802c53e: b2da uxtb r2, r3 - 802c540: 4b67 ldr r3, [pc, #412] ; (802c6e0 ) - 802c542: 701a strb r2, [r3, #0] + 802c48c: 68fb ldr r3, [r7, #12] + 802c48e: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 + 802c492: 461a mov r2, r3 + 802c494: 4613 mov r3, r2 + 802c496: 005b lsls r3, r3, #1 + 802c498: 4413 add r3, r2 + 802c49a: 011a lsls r2, r3, #4 + 802c49c: 4413 add r3, r2 + 802c49e: 4a6a ldr r2, [pc, #424] ; (802c648 ) + 802c4a0: fb82 1203 smull r1, r2, r2, r3 + 802c4a4: 10d2 asrs r2, r2, #3 + 802c4a6: 17db asrs r3, r3, #31 + 802c4a8: 1ad3 subs r3, r2, r3 + 802c4aa: b2da uxtb r2, r3 + 802c4ac: 4b67 ldr r3, [pc, #412] ; (802c64c ) + 802c4ae: 701a strb r2, [r3, #0] v = (uint8_t)(((uint16_t)ext->hsv.v * 51) / 20); - 802c544: 68fb ldr r3, [r7, #12] - 802c546: f893 3027 ldrb.w r3, [r3, #39] ; 0x27 - 802c54a: 461a mov r2, r3 - 802c54c: 4613 mov r3, r2 - 802c54e: 005b lsls r3, r3, #1 - 802c550: 4413 add r3, r2 - 802c552: 011a lsls r2, r3, #4 - 802c554: 4413 add r3, r2 - 802c556: 4a61 ldr r2, [pc, #388] ; (802c6dc ) - 802c558: fb82 1203 smull r1, r2, r2, r3 - 802c55c: 10d2 asrs r2, r2, #3 - 802c55e: 17db asrs r3, r3, #31 - 802c560: 1ad3 subs r3, r2, r3 - 802c562: b2da uxtb r2, r3 - 802c564: 4b5f ldr r3, [pc, #380] ; (802c6e4 ) - 802c566: 701a strb r2, [r3, #0] + 802c4b0: 68fb ldr r3, [r7, #12] + 802c4b2: f893 3027 ldrb.w r3, [r3, #39] ; 0x27 + 802c4b6: 461a mov r2, r3 + 802c4b8: 4613 mov r3, r2 + 802c4ba: 005b lsls r3, r3, #1 + 802c4bc: 4413 add r3, r2 + 802c4be: 011a lsls r2, r3, #4 + 802c4c0: 4413 add r3, r2 + 802c4c2: 4a61 ldr r2, [pc, #388] ; (802c648 ) + 802c4c4: fb82 1203 smull r1, r2, r2, r3 + 802c4c8: 10d2 asrs r2, r2, #3 + 802c4ca: 17db asrs r3, r3, #31 + 802c4cc: 1ad3 subs r3, r2, r3 + 802c4ce: b2da uxtb r2, r3 + 802c4d0: 4b5f ldr r3, [pc, #380] ; (802c650 ) + 802c4d2: 701a strb r2, [r3, #0] m = ext->mode; - 802c568: 68fb ldr r3, [r7, #12] - 802c56a: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802c56e: f3c3 0301 ubfx r3, r3, #0, #2 - 802c572: b2db uxtb r3, r3 - 802c574: 461a mov r2, r3 - 802c576: 4b58 ldr r3, [pc, #352] ; (802c6d8 ) - 802c578: 701a strb r2, [r3, #0] + 802c4d4: 68fb ldr r3, [r7, #12] + 802c4d6: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802c4da: f3c3 0301 ubfx r3, r3, #0, #2 + 802c4de: b2db uxtb r3, r3 + 802c4e0: 461a mov r2, r3 + 802c4e2: 4b58 ldr r3, [pc, #352] ; (802c644 ) + 802c4e4: 701a strb r2, [r3, #0] } fast_hsv2rgb(angle * 6, s, v, &r, &g, - 802c57a: 887b ldrh r3, [r7, #2] - 802c57c: 461a mov r2, r3 - 802c57e: 0052 lsls r2, r2, #1 - 802c580: 4413 add r3, r2 - 802c582: 005b lsls r3, r3, #1 - 802c584: b298 uxth r0, r3 - 802c586: 4b56 ldr r3, [pc, #344] ; (802c6e0 ) - 802c588: 7819 ldrb r1, [r3, #0] - 802c58a: 4b56 ldr r3, [pc, #344] ; (802c6e4 ) - 802c58c: 781a ldrb r2, [r3, #0] - 802c58e: f107 040b add.w r4, r7, #11 - 802c592: f107 0309 add.w r3, r7, #9 - 802c596: 9301 str r3, [sp, #4] - 802c598: f107 030a add.w r3, r7, #10 - 802c59c: 9300 str r3, [sp, #0] - 802c59e: 4623 mov r3, r4 - 802c5a0: f7ff fefe bl 802c3a0 + 802c4e6: 887b ldrh r3, [r7, #2] + 802c4e8: 461a mov r2, r3 + 802c4ea: 0052 lsls r2, r2, #1 + 802c4ec: 4413 add r3, r2 + 802c4ee: 005b lsls r3, r3, #1 + 802c4f0: b298 uxth r0, r3 + 802c4f2: 4b56 ldr r3, [pc, #344] ; (802c64c ) + 802c4f4: 7819 ldrb r1, [r3, #0] + 802c4f6: 4b56 ldr r3, [pc, #344] ; (802c650 ) + 802c4f8: 781a ldrb r2, [r3, #0] + 802c4fa: f107 040b add.w r4, r7, #11 + 802c4fe: f107 0309 add.w r3, r7, #9 + 802c502: 9301 str r3, [sp, #4] + 802c504: f107 030a add.w r3, r7, #10 + 802c508: 9300 str r3, [sp, #0] + 802c50a: 4623 mov r3, r4 + 802c50c: f7ff fefe bl 802c30c &b); /*A smart compiler will replace x * 6 by (x << 2) + (x << 1) if it's more efficient*/ break; - 802c5a4: e08d b.n 802c6c2 + 802c510: e08d b.n 802c62e case LV_COLORWHEEL_MODE_SATURATION: /*Don't recompute costly scaling if it does not change*/ if(m != ext->mode) { - 802c5a6: 68fb ldr r3, [r7, #12] - 802c5a8: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802c5ac: f3c3 0301 ubfx r3, r3, #0, #2 - 802c5b0: b2db uxtb r3, r3 - 802c5b2: 461a mov r2, r3 - 802c5b4: 4b48 ldr r3, [pc, #288] ; (802c6d8 ) - 802c5b6: 781b ldrb r3, [r3, #0] - 802c5b8: 429a cmp r2, r3 - 802c5ba: d029 beq.n 802c610 + 802c512: 68fb ldr r3, [r7, #12] + 802c514: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802c518: f3c3 0301 ubfx r3, r3, #0, #2 + 802c51c: b2db uxtb r3, r3 + 802c51e: 461a mov r2, r3 + 802c520: 4b48 ldr r3, [pc, #288] ; (802c644 ) + 802c522: 781b ldrb r3, [r3, #0] + 802c524: 429a cmp r2, r3 + 802c526: d029 beq.n 802c57c h = (uint16_t)(((uint32_t)ext->hsv.h * 6 * 256) / 360); - 802c5bc: 68fb ldr r3, [r7, #12] - 802c5be: 8c9b ldrh r3, [r3, #36] ; 0x24 - 802c5c0: 461a mov r2, r3 - 802c5c2: 4613 mov r3, r2 - 802c5c4: 005b lsls r3, r3, #1 - 802c5c6: 4413 add r3, r2 - 802c5c8: 025b lsls r3, r3, #9 - 802c5ca: 08db lsrs r3, r3, #3 - 802c5cc: 4a46 ldr r2, [pc, #280] ; (802c6e8 ) - 802c5ce: fba2 2303 umull r2, r3, r2, r3 - 802c5d2: 089b lsrs r3, r3, #2 - 802c5d4: b29a uxth r2, r3 - 802c5d6: 4b45 ldr r3, [pc, #276] ; (802c6ec ) - 802c5d8: 801a strh r2, [r3, #0] + 802c528: 68fb ldr r3, [r7, #12] + 802c52a: 8c9b ldrh r3, [r3, #36] ; 0x24 + 802c52c: 461a mov r2, r3 + 802c52e: 4613 mov r3, r2 + 802c530: 005b lsls r3, r3, #1 + 802c532: 4413 add r3, r2 + 802c534: 025b lsls r3, r3, #9 + 802c536: 08db lsrs r3, r3, #3 + 802c538: 4a46 ldr r2, [pc, #280] ; (802c654 ) + 802c53a: fba2 2303 umull r2, r3, r2, r3 + 802c53e: 089b lsrs r3, r3, #2 + 802c540: b29a uxth r2, r3 + 802c542: 4b45 ldr r3, [pc, #276] ; (802c658 ) + 802c544: 801a strh r2, [r3, #0] v = (uint8_t)(((uint16_t)ext->hsv.v * 51) / 20); - 802c5da: 68fb ldr r3, [r7, #12] - 802c5dc: f893 3027 ldrb.w r3, [r3, #39] ; 0x27 - 802c5e0: 461a mov r2, r3 - 802c5e2: 4613 mov r3, r2 - 802c5e4: 005b lsls r3, r3, #1 - 802c5e6: 4413 add r3, r2 - 802c5e8: 011a lsls r2, r3, #4 - 802c5ea: 4413 add r3, r2 - 802c5ec: 4a3b ldr r2, [pc, #236] ; (802c6dc ) - 802c5ee: fb82 1203 smull r1, r2, r2, r3 - 802c5f2: 10d2 asrs r2, r2, #3 - 802c5f4: 17db asrs r3, r3, #31 - 802c5f6: 1ad3 subs r3, r2, r3 - 802c5f8: b2da uxtb r2, r3 - 802c5fa: 4b3a ldr r3, [pc, #232] ; (802c6e4 ) - 802c5fc: 701a strb r2, [r3, #0] + 802c546: 68fb ldr r3, [r7, #12] + 802c548: f893 3027 ldrb.w r3, [r3, #39] ; 0x27 + 802c54c: 461a mov r2, r3 + 802c54e: 4613 mov r3, r2 + 802c550: 005b lsls r3, r3, #1 + 802c552: 4413 add r3, r2 + 802c554: 011a lsls r2, r3, #4 + 802c556: 4413 add r3, r2 + 802c558: 4a3b ldr r2, [pc, #236] ; (802c648 ) + 802c55a: fb82 1203 smull r1, r2, r2, r3 + 802c55e: 10d2 asrs r2, r2, #3 + 802c560: 17db asrs r3, r3, #31 + 802c562: 1ad3 subs r3, r2, r3 + 802c564: b2da uxtb r2, r3 + 802c566: 4b3a ldr r3, [pc, #232] ; (802c650 ) + 802c568: 701a strb r2, [r3, #0] m = ext->mode; - 802c5fe: 68fb ldr r3, [r7, #12] - 802c600: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802c604: f3c3 0301 ubfx r3, r3, #0, #2 - 802c608: b2db uxtb r3, r3 - 802c60a: 461a mov r2, r3 - 802c60c: 4b32 ldr r3, [pc, #200] ; (802c6d8 ) - 802c60e: 701a strb r2, [r3, #0] + 802c56a: 68fb ldr r3, [r7, #12] + 802c56c: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802c570: f3c3 0301 ubfx r3, r3, #0, #2 + 802c574: b2db uxtb r3, r3 + 802c576: 461a mov r2, r3 + 802c578: 4b32 ldr r3, [pc, #200] ; (802c644 ) + 802c57a: 701a strb r2, [r3, #0] } fast_hsv2rgb(h, angle, v, &r, &g, &b); - 802c610: 4b36 ldr r3, [pc, #216] ; (802c6ec ) - 802c612: 8818 ldrh r0, [r3, #0] - 802c614: 887b ldrh r3, [r7, #2] - 802c616: b2d9 uxtb r1, r3 - 802c618: 4b32 ldr r3, [pc, #200] ; (802c6e4 ) - 802c61a: 781a ldrb r2, [r3, #0] - 802c61c: f107 040b add.w r4, r7, #11 - 802c620: f107 0309 add.w r3, r7, #9 - 802c624: 9301 str r3, [sp, #4] - 802c626: f107 030a add.w r3, r7, #10 - 802c62a: 9300 str r3, [sp, #0] - 802c62c: 4623 mov r3, r4 - 802c62e: f7ff feb7 bl 802c3a0 + 802c57c: 4b36 ldr r3, [pc, #216] ; (802c658 ) + 802c57e: 8818 ldrh r0, [r3, #0] + 802c580: 887b ldrh r3, [r7, #2] + 802c582: b2d9 uxtb r1, r3 + 802c584: 4b32 ldr r3, [pc, #200] ; (802c650 ) + 802c586: 781a ldrb r2, [r3, #0] + 802c588: f107 040b add.w r4, r7, #11 + 802c58c: f107 0309 add.w r3, r7, #9 + 802c590: 9301 str r3, [sp, #4] + 802c592: f107 030a add.w r3, r7, #10 + 802c596: 9300 str r3, [sp, #0] + 802c598: 4623 mov r3, r4 + 802c59a: f7ff feb7 bl 802c30c break; - 802c632: e046 b.n 802c6c2 + 802c59e: e046 b.n 802c62e case LV_COLORWHEEL_MODE_VALUE: /*Don't recompute costly scaling if it does not change*/ if(m != ext->mode) { - 802c634: 68fb ldr r3, [r7, #12] - 802c636: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802c63a: f3c3 0301 ubfx r3, r3, #0, #2 - 802c63e: b2db uxtb r3, r3 - 802c640: 461a mov r2, r3 - 802c642: 4b25 ldr r3, [pc, #148] ; (802c6d8 ) - 802c644: 781b ldrb r3, [r3, #0] - 802c646: 429a cmp r2, r3 - 802c648: d029 beq.n 802c69e + 802c5a0: 68fb ldr r3, [r7, #12] + 802c5a2: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802c5a6: f3c3 0301 ubfx r3, r3, #0, #2 + 802c5aa: b2db uxtb r3, r3 + 802c5ac: 461a mov r2, r3 + 802c5ae: 4b25 ldr r3, [pc, #148] ; (802c644 ) + 802c5b0: 781b ldrb r3, [r3, #0] + 802c5b2: 429a cmp r2, r3 + 802c5b4: d029 beq.n 802c60a h = (uint16_t)(((uint32_t)ext->hsv.h * 6 * 256) / 360); - 802c64a: 68fb ldr r3, [r7, #12] - 802c64c: 8c9b ldrh r3, [r3, #36] ; 0x24 - 802c64e: 461a mov r2, r3 - 802c650: 4613 mov r3, r2 - 802c652: 005b lsls r3, r3, #1 - 802c654: 4413 add r3, r2 - 802c656: 025b lsls r3, r3, #9 - 802c658: 08db lsrs r3, r3, #3 - 802c65a: 4a23 ldr r2, [pc, #140] ; (802c6e8 ) - 802c65c: fba2 2303 umull r2, r3, r2, r3 - 802c660: 089b lsrs r3, r3, #2 - 802c662: b29a uxth r2, r3 - 802c664: 4b21 ldr r3, [pc, #132] ; (802c6ec ) - 802c666: 801a strh r2, [r3, #0] + 802c5b6: 68fb ldr r3, [r7, #12] + 802c5b8: 8c9b ldrh r3, [r3, #36] ; 0x24 + 802c5ba: 461a mov r2, r3 + 802c5bc: 4613 mov r3, r2 + 802c5be: 005b lsls r3, r3, #1 + 802c5c0: 4413 add r3, r2 + 802c5c2: 025b lsls r3, r3, #9 + 802c5c4: 08db lsrs r3, r3, #3 + 802c5c6: 4a23 ldr r2, [pc, #140] ; (802c654 ) + 802c5c8: fba2 2303 umull r2, r3, r2, r3 + 802c5cc: 089b lsrs r3, r3, #2 + 802c5ce: b29a uxth r2, r3 + 802c5d0: 4b21 ldr r3, [pc, #132] ; (802c658 ) + 802c5d2: 801a strh r2, [r3, #0] s = (uint8_t)(((uint16_t)ext->hsv.s * 51) / 20); - 802c668: 68fb ldr r3, [r7, #12] - 802c66a: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 - 802c66e: 461a mov r2, r3 - 802c670: 4613 mov r3, r2 - 802c672: 005b lsls r3, r3, #1 - 802c674: 4413 add r3, r2 - 802c676: 011a lsls r2, r3, #4 - 802c678: 4413 add r3, r2 - 802c67a: 4a18 ldr r2, [pc, #96] ; (802c6dc ) - 802c67c: fb82 1203 smull r1, r2, r2, r3 - 802c680: 10d2 asrs r2, r2, #3 - 802c682: 17db asrs r3, r3, #31 - 802c684: 1ad3 subs r3, r2, r3 - 802c686: b2da uxtb r2, r3 - 802c688: 4b15 ldr r3, [pc, #84] ; (802c6e0 ) - 802c68a: 701a strb r2, [r3, #0] + 802c5d4: 68fb ldr r3, [r7, #12] + 802c5d6: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 + 802c5da: 461a mov r2, r3 + 802c5dc: 4613 mov r3, r2 + 802c5de: 005b lsls r3, r3, #1 + 802c5e0: 4413 add r3, r2 + 802c5e2: 011a lsls r2, r3, #4 + 802c5e4: 4413 add r3, r2 + 802c5e6: 4a18 ldr r2, [pc, #96] ; (802c648 ) + 802c5e8: fb82 1203 smull r1, r2, r2, r3 + 802c5ec: 10d2 asrs r2, r2, #3 + 802c5ee: 17db asrs r3, r3, #31 + 802c5f0: 1ad3 subs r3, r2, r3 + 802c5f2: b2da uxtb r2, r3 + 802c5f4: 4b15 ldr r3, [pc, #84] ; (802c64c ) + 802c5f6: 701a strb r2, [r3, #0] m = ext->mode; - 802c68c: 68fb ldr r3, [r7, #12] - 802c68e: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802c692: f3c3 0301 ubfx r3, r3, #0, #2 - 802c696: b2db uxtb r3, r3 - 802c698: 461a mov r2, r3 - 802c69a: 4b0f ldr r3, [pc, #60] ; (802c6d8 ) - 802c69c: 701a strb r2, [r3, #0] + 802c5f8: 68fb ldr r3, [r7, #12] + 802c5fa: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802c5fe: f3c3 0301 ubfx r3, r3, #0, #2 + 802c602: b2db uxtb r3, r3 + 802c604: 461a mov r2, r3 + 802c606: 4b0f ldr r3, [pc, #60] ; (802c644 ) + 802c608: 701a strb r2, [r3, #0] } fast_hsv2rgb(h, s, angle, &r, &g, &b); - 802c69e: 4b13 ldr r3, [pc, #76] ; (802c6ec ) - 802c6a0: 8818 ldrh r0, [r3, #0] - 802c6a2: 4b0f ldr r3, [pc, #60] ; (802c6e0 ) - 802c6a4: 7819 ldrb r1, [r3, #0] - 802c6a6: 887b ldrh r3, [r7, #2] - 802c6a8: b2da uxtb r2, r3 - 802c6aa: f107 040b add.w r4, r7, #11 - 802c6ae: f107 0309 add.w r3, r7, #9 - 802c6b2: 9301 str r3, [sp, #4] - 802c6b4: f107 030a add.w r3, r7, #10 - 802c6b8: 9300 str r3, [sp, #0] - 802c6ba: 4623 mov r3, r4 - 802c6bc: f7ff fe70 bl 802c3a0 + 802c60a: 4b13 ldr r3, [pc, #76] ; (802c658 ) + 802c60c: 8818 ldrh r0, [r3, #0] + 802c60e: 4b0f ldr r3, [pc, #60] ; (802c64c ) + 802c610: 7819 ldrb r1, [r3, #0] + 802c612: 887b ldrh r3, [r7, #2] + 802c614: b2da uxtb r2, r3 + 802c616: f107 040b add.w r4, r7, #11 + 802c61a: f107 0309 add.w r3, r7, #9 + 802c61e: 9301 str r3, [sp, #4] + 802c620: f107 030a add.w r3, r7, #10 + 802c624: 9300 str r3, [sp, #0] + 802c626: 4623 mov r3, r4 + 802c628: f7ff fe70 bl 802c30c break; - 802c6c0: bf00 nop + 802c62c: bf00 nop } return lv_color_make(r, g, b); - 802c6c2: 7afb ldrb r3, [r7, #11] - 802c6c4: 7ab9 ldrb r1, [r7, #10] - 802c6c6: 7a7a ldrb r2, [r7, #9] - 802c6c8: 4618 mov r0, r3 - 802c6ca: f7fe ff0c bl 802b4e6 - 802c6ce: 4603 mov r3, r0 + 802c62e: 7afb ldrb r3, [r7, #11] + 802c630: 7ab9 ldrb r1, [r7, #10] + 802c632: 7a7a ldrb r2, [r7, #9] + 802c634: 4618 mov r0, r3 + 802c636: f7fe ff0c bl 802b452 + 802c63a: 4603 mov r3, r0 } - 802c6d0: 4618 mov r0, r3 - 802c6d2: 3714 adds r7, #20 - 802c6d4: 46bd mov sp, r7 - 802c6d6: bd90 pop {r4, r7, pc} - 802c6d8: 20000090 .word 0x20000090 - 802c6dc: 66666667 .word 0x66666667 - 802c6e0: 20001cc1 .word 0x20001cc1 - 802c6e4: 20001cc2 .word 0x20001cc2 - 802c6e8: 16c16c17 .word 0x16c16c17 - 802c6ec: 20001cc4 .word 0x20001cc4 + 802c63c: 4618 mov r0, r3 + 802c63e: 3714 adds r7, #20 + 802c640: 46bd mov sp, r7 + 802c642: bd90 pop {r4, r7, pc} + 802c644: 20000090 .word 0x20000090 + 802c648: 66666667 .word 0x66666667 + 802c64c: 20001cc1 .word 0x20001cc1 + 802c650: 20001cc2 .word 0x20001cc2 + 802c654: 16c16c17 .word 0x16c16c17 + 802c658: 20001cc4 .word 0x20001cc4 -0802c6f0 : +0802c65c : static uint16_t get_angle(lv_obj_t * obj) { - 802c6f0: b480 push {r7} - 802c6f2: b085 sub sp, #20 - 802c6f4: af00 add r7, sp, #0 - 802c6f6: 6078 str r0, [r7, #4] + 802c65c: b480 push {r7} + 802c65e: b085 sub sp, #20 + 802c660: af00 add r7, sp, #0 + 802c662: 6078 str r0, [r7, #4] lv_colorwheel_t * colorwheel = (lv_colorwheel_t *)obj; - 802c6f8: 687b ldr r3, [r7, #4] - 802c6fa: 60bb str r3, [r7, #8] + 802c664: 687b ldr r3, [r7, #4] + 802c666: 60bb str r3, [r7, #8] uint16_t angle; switch(colorwheel->mode) { - 802c6fc: 68bb ldr r3, [r7, #8] - 802c6fe: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802c702: f3c3 0301 ubfx r3, r3, #0, #2 - 802c706: b2db uxtb r3, r3 - 802c708: 2b01 cmp r3, #1 - 802c70a: d005 beq.n 802c718 - 802c70c: 2b02 cmp r3, #2 - 802c70e: d013 beq.n 802c738 + 802c668: 68bb ldr r3, [r7, #8] + 802c66a: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802c66e: f3c3 0301 ubfx r3, r3, #0, #2 + 802c672: b2db uxtb r3, r3 + 802c674: 2b01 cmp r3, #1 + 802c676: d005 beq.n 802c684 + 802c678: 2b02 cmp r3, #2 + 802c67a: d013 beq.n 802c6a4 default: case LV_COLORWHEEL_MODE_HUE: angle = colorwheel->hsv.h; - 802c710: 68bb ldr r3, [r7, #8] - 802c712: 8c9b ldrh r3, [r3, #36] ; 0x24 - 802c714: 81fb strh r3, [r7, #14] + 802c67c: 68bb ldr r3, [r7, #8] + 802c67e: 8c9b ldrh r3, [r3, #36] ; 0x24 + 802c680: 81fb strh r3, [r7, #14] break; - 802c716: e01f b.n 802c758 + 802c682: e01f b.n 802c6c4 case LV_COLORWHEEL_MODE_SATURATION: angle = (colorwheel->hsv.s * 360) / 100; - 802c718: 68bb ldr r3, [r7, #8] - 802c71a: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 - 802c71e: 461a mov r2, r3 - 802c720: f44f 73b4 mov.w r3, #360 ; 0x168 - 802c724: fb02 f303 mul.w r3, r2, r3 - 802c728: 4a0e ldr r2, [pc, #56] ; (802c764 ) - 802c72a: fb82 1203 smull r1, r2, r2, r3 - 802c72e: 1152 asrs r2, r2, #5 - 802c730: 17db asrs r3, r3, #31 - 802c732: 1ad3 subs r3, r2, r3 - 802c734: 81fb strh r3, [r7, #14] + 802c684: 68bb ldr r3, [r7, #8] + 802c686: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 + 802c68a: 461a mov r2, r3 + 802c68c: f44f 73b4 mov.w r3, #360 ; 0x168 + 802c690: fb02 f303 mul.w r3, r2, r3 + 802c694: 4a0e ldr r2, [pc, #56] ; (802c6d0 ) + 802c696: fb82 1203 smull r1, r2, r2, r3 + 802c69a: 1152 asrs r2, r2, #5 + 802c69c: 17db asrs r3, r3, #31 + 802c69e: 1ad3 subs r3, r2, r3 + 802c6a0: 81fb strh r3, [r7, #14] break; - 802c736: e00f b.n 802c758 + 802c6a2: e00f b.n 802c6c4 case LV_COLORWHEEL_MODE_VALUE: angle = (colorwheel->hsv.v * 360) / 100 ; - 802c738: 68bb ldr r3, [r7, #8] - 802c73a: f893 3027 ldrb.w r3, [r3, #39] ; 0x27 - 802c73e: 461a mov r2, r3 - 802c740: f44f 73b4 mov.w r3, #360 ; 0x168 - 802c744: fb02 f303 mul.w r3, r2, r3 - 802c748: 4a06 ldr r2, [pc, #24] ; (802c764 ) - 802c74a: fb82 1203 smull r1, r2, r2, r3 - 802c74e: 1152 asrs r2, r2, #5 - 802c750: 17db asrs r3, r3, #31 - 802c752: 1ad3 subs r3, r2, r3 - 802c754: 81fb strh r3, [r7, #14] + 802c6a4: 68bb ldr r3, [r7, #8] + 802c6a6: f893 3027 ldrb.w r3, [r3, #39] ; 0x27 + 802c6aa: 461a mov r2, r3 + 802c6ac: f44f 73b4 mov.w r3, #360 ; 0x168 + 802c6b0: fb02 f303 mul.w r3, r2, r3 + 802c6b4: 4a06 ldr r2, [pc, #24] ; (802c6d0 ) + 802c6b6: fb82 1203 smull r1, r2, r2, r3 + 802c6ba: 1152 asrs r2, r2, #5 + 802c6bc: 17db asrs r3, r3, #31 + 802c6be: 1ad3 subs r3, r2, r3 + 802c6c0: 81fb strh r3, [r7, #14] break; - 802c756: bf00 nop + 802c6c2: bf00 nop } return angle; - 802c758: 89fb ldrh r3, [r7, #14] + 802c6c4: 89fb ldrh r3, [r7, #14] } - 802c75a: 4618 mov r0, r3 - 802c75c: 3714 adds r7, #20 - 802c75e: 46bd mov sp, r7 - 802c760: bc80 pop {r7} - 802c762: 4770 bx lr - 802c764: 51eb851f .word 0x51eb851f + 802c6c6: 4618 mov r0, r3 + 802c6c8: 3714 adds r7, #20 + 802c6ca: 46bd mov sp, r7 + 802c6cc: bc80 pop {r7} + 802c6ce: 4770 bx lr + 802c6d0: 51eb851f .word 0x51eb851f -0802c768 : +0802c6d4 : * button clicks * @param kb pointer to a keyboard * @param event the triggering event */ void lv_keyboard_def_event_cb(lv_event_t * e) { - 802c768: b580 push {r7, lr} - 802c76a: b08a sub sp, #40 ; 0x28 - 802c76c: af00 add r7, sp, #0 - 802c76e: 6078 str r0, [r7, #4] + 802c6d4: b580 push {r7, lr} + 802c6d6: b08a sub sp, #40 ; 0x28 + 802c6d8: af00 add r7, sp, #0 + 802c6da: 6078 str r0, [r7, #4] lv_obj_t * obj = lv_event_get_target(e); - 802c770: 6878 ldr r0, [r7, #4] - 802c772: f7d5 ff05 bl 8002580 - 802c776: 6278 str r0, [r7, #36] ; 0x24 + 802c6dc: 6878 ldr r0, [r7, #4] + 802c6de: f7d5 ff19 bl 8002514 + 802c6e2: 6278 str r0, [r7, #36] ; 0x24 LV_ASSERT_OBJ(obj, MY_CLASS); lv_keyboard_t * keyboard = (lv_keyboard_t *)obj; - 802c778: 6a7b ldr r3, [r7, #36] ; 0x24 - 802c77a: 623b str r3, [r7, #32] + 802c6e4: 6a7b ldr r3, [r7, #36] ; 0x24 + 802c6e6: 623b str r3, [r7, #32] uint16_t btn_id = lv_btnmatrix_get_selected_btn(obj); - 802c77c: 6a78 ldr r0, [r7, #36] ; 0x24 - 802c77e: f00d fa74 bl 8039c6a - 802c782: 4603 mov r3, r0 - 802c784: 83fb strh r3, [r7, #30] + 802c6e8: 6a78 ldr r0, [r7, #36] ; 0x24 + 802c6ea: f00d fa74 bl 8039bd6 + 802c6ee: 4603 mov r3, r0 + 802c6f0: 83fb strh r3, [r7, #30] if(btn_id == LV_BTNMATRIX_BTN_NONE) return; - 802c786: 8bfb ldrh r3, [r7, #30] - 802c788: f64f 72ff movw r2, #65535 ; 0xffff - 802c78c: 4293 cmp r3, r2 - 802c78e: f000 8161 beq.w 802ca54 + 802c6f2: 8bfb ldrh r3, [r7, #30] + 802c6f4: f64f 72ff movw r2, #65535 ; 0xffff + 802c6f8: 4293 cmp r3, r2 + 802c6fa: f000 8161 beq.w 802c9c0 const char * txt = lv_btnmatrix_get_btn_text(obj, lv_btnmatrix_get_selected_btn(obj)); - 802c792: 6a78 ldr r0, [r7, #36] ; 0x24 - 802c794: f00d fa69 bl 8039c6a - 802c798: 4603 mov r3, r0 - 802c79a: 4619 mov r1, r3 - 802c79c: 6a78 ldr r0, [r7, #36] ; 0x24 - 802c79e: f00d fa71 bl 8039c84 - 802c7a2: 61b8 str r0, [r7, #24] + 802c6fe: 6a78 ldr r0, [r7, #36] ; 0x24 + 802c700: f00d fa69 bl 8039bd6 + 802c704: 4603 mov r3, r0 + 802c706: 4619 mov r1, r3 + 802c708: 6a78 ldr r0, [r7, #36] ; 0x24 + 802c70a: f00d fa71 bl 8039bf0 + 802c70e: 61b8 str r0, [r7, #24] if(txt == NULL) return; - 802c7a4: 69bb ldr r3, [r7, #24] - 802c7a6: 2b00 cmp r3, #0 - 802c7a8: f000 8156 beq.w 802ca58 + 802c710: 69bb ldr r3, [r7, #24] + 802c712: 2b00 cmp r3, #0 + 802c714: f000 8156 beq.w 802c9c4 if(strcmp(txt, "abc") == 0) { - 802c7ac: 49ac ldr r1, [pc, #688] ; (802ca60 ) - 802c7ae: 69b8 ldr r0, [r7, #24] - 802c7b0: f7d3 fd38 bl 8000224 - 802c7b4: 4603 mov r3, r0 - 802c7b6: 2b00 cmp r3, #0 - 802c7b8: d110 bne.n 802c7dc + 802c718: 49ac ldr r1, [pc, #688] ; (802c9cc ) + 802c71a: 69b8 ldr r0, [r7, #24] + 802c71c: f7d3 fd82 bl 8000224 + 802c720: 4603 mov r3, r0 + 802c722: 2b00 cmp r3, #0 + 802c724: d110 bne.n 802c748 keyboard->mode = LV_KEYBOARD_MODE_TEXT_LOWER; - 802c7ba: 6a3b ldr r3, [r7, #32] - 802c7bc: 2200 movs r2, #0 - 802c7be: f883 203c strb.w r2, [r3, #60] ; 0x3c + 802c726: 6a3b ldr r3, [r7, #32] + 802c728: 2200 movs r2, #0 + 802c72a: f883 203c strb.w r2, [r3, #60] ; 0x3c lv_btnmatrix_set_map(obj, kb_map[LV_KEYBOARD_MODE_TEXT_LOWER]); - 802c7c2: 4ba8 ldr r3, [pc, #672] ; (802ca64 ) - 802c7c4: 681b ldr r3, [r3, #0] - 802c7c6: 4619 mov r1, r3 - 802c7c8: 6a78 ldr r0, [r7, #36] ; 0x24 - 802c7ca: f00c ffdb bl 8039784 + 802c72e: 4ba8 ldr r3, [pc, #672] ; (802c9d0 ) + 802c730: 681b ldr r3, [r3, #0] + 802c732: 4619 mov r1, r3 + 802c734: 6a78 ldr r0, [r7, #36] ; 0x24 + 802c736: f00c ffdb bl 80396f0 lv_btnmatrix_set_ctrl_map(obj, kb_ctrl[LV_KEYBOARD_MODE_TEXT_LOWER]); - 802c7ce: 4ba6 ldr r3, [pc, #664] ; (802ca68 ) - 802c7d0: 681b ldr r3, [r3, #0] - 802c7d2: 4619 mov r1, r3 - 802c7d4: 6a78 ldr r0, [r7, #36] ; 0x24 - 802c7d6: f00d f93f bl 8039a58 + 802c73a: 4ba6 ldr r3, [pc, #664] ; (802c9d4 ) + 802c73c: 681b ldr r3, [r3, #0] + 802c73e: 4619 mov r1, r3 + 802c740: 6a78 ldr r0, [r7, #36] ; 0x24 + 802c742: f00d f93f bl 80399c4 return; - 802c7da: e164 b.n 802caa6 + 802c746: e164 b.n 802ca12 } else if(strcmp(txt, "ABC") == 0) { - 802c7dc: 49a3 ldr r1, [pc, #652] ; (802ca6c ) - 802c7de: 69b8 ldr r0, [r7, #24] - 802c7e0: f7d3 fd20 bl 8000224 - 802c7e4: 4603 mov r3, r0 - 802c7e6: 2b00 cmp r3, #0 - 802c7e8: d110 bne.n 802c80c + 802c748: 49a3 ldr r1, [pc, #652] ; (802c9d8 ) + 802c74a: 69b8 ldr r0, [r7, #24] + 802c74c: f7d3 fd6a bl 8000224 + 802c750: 4603 mov r3, r0 + 802c752: 2b00 cmp r3, #0 + 802c754: d110 bne.n 802c778 keyboard->mode = LV_KEYBOARD_MODE_TEXT_UPPER; - 802c7ea: 6a3b ldr r3, [r7, #32] - 802c7ec: 2201 movs r2, #1 - 802c7ee: f883 203c strb.w r2, [r3, #60] ; 0x3c + 802c756: 6a3b ldr r3, [r7, #32] + 802c758: 2201 movs r2, #1 + 802c75a: f883 203c strb.w r2, [r3, #60] ; 0x3c lv_btnmatrix_set_map(obj, kb_map[LV_KEYBOARD_MODE_TEXT_UPPER]); - 802c7f2: 4b9c ldr r3, [pc, #624] ; (802ca64 ) - 802c7f4: 685b ldr r3, [r3, #4] - 802c7f6: 4619 mov r1, r3 - 802c7f8: 6a78 ldr r0, [r7, #36] ; 0x24 - 802c7fa: f00c ffc3 bl 8039784 + 802c75e: 4b9c ldr r3, [pc, #624] ; (802c9d0 ) + 802c760: 685b ldr r3, [r3, #4] + 802c762: 4619 mov r1, r3 + 802c764: 6a78 ldr r0, [r7, #36] ; 0x24 + 802c766: f00c ffc3 bl 80396f0 lv_btnmatrix_set_ctrl_map(obj, kb_ctrl[LV_KEYBOARD_MODE_TEXT_UPPER]); - 802c7fe: 4b9a ldr r3, [pc, #616] ; (802ca68 ) - 802c800: 685b ldr r3, [r3, #4] - 802c802: 4619 mov r1, r3 - 802c804: 6a78 ldr r0, [r7, #36] ; 0x24 - 802c806: f00d f927 bl 8039a58 + 802c76a: 4b9a ldr r3, [pc, #616] ; (802c9d4 ) + 802c76c: 685b ldr r3, [r3, #4] + 802c76e: 4619 mov r1, r3 + 802c770: 6a78 ldr r0, [r7, #36] ; 0x24 + 802c772: f00d f927 bl 80399c4 return; - 802c80a: e14c b.n 802caa6 + 802c776: e14c b.n 802ca12 } else if(strcmp(txt, "1#") == 0) { - 802c80c: 4998 ldr r1, [pc, #608] ; (802ca70 ) - 802c80e: 69b8 ldr r0, [r7, #24] - 802c810: f7d3 fd08 bl 8000224 - 802c814: 4603 mov r3, r0 - 802c816: 2b00 cmp r3, #0 - 802c818: d110 bne.n 802c83c + 802c778: 4998 ldr r1, [pc, #608] ; (802c9dc ) + 802c77a: 69b8 ldr r0, [r7, #24] + 802c77c: f7d3 fd52 bl 8000224 + 802c780: 4603 mov r3, r0 + 802c782: 2b00 cmp r3, #0 + 802c784: d110 bne.n 802c7a8 keyboard->mode = LV_KEYBOARD_MODE_SPECIAL; - 802c81a: 6a3b ldr r3, [r7, #32] - 802c81c: 2202 movs r2, #2 - 802c81e: f883 203c strb.w r2, [r3, #60] ; 0x3c + 802c786: 6a3b ldr r3, [r7, #32] + 802c788: 2202 movs r2, #2 + 802c78a: f883 203c strb.w r2, [r3, #60] ; 0x3c lv_btnmatrix_set_map(obj, kb_map[LV_KEYBOARD_MODE_SPECIAL]); - 802c822: 4b90 ldr r3, [pc, #576] ; (802ca64 ) - 802c824: 689b ldr r3, [r3, #8] - 802c826: 4619 mov r1, r3 - 802c828: 6a78 ldr r0, [r7, #36] ; 0x24 - 802c82a: f00c ffab bl 8039784 + 802c78e: 4b90 ldr r3, [pc, #576] ; (802c9d0 ) + 802c790: 689b ldr r3, [r3, #8] + 802c792: 4619 mov r1, r3 + 802c794: 6a78 ldr r0, [r7, #36] ; 0x24 + 802c796: f00c ffab bl 80396f0 lv_btnmatrix_set_ctrl_map(obj, kb_ctrl[LV_KEYBOARD_MODE_SPECIAL]); - 802c82e: 4b8e ldr r3, [pc, #568] ; (802ca68 ) - 802c830: 689b ldr r3, [r3, #8] - 802c832: 4619 mov r1, r3 - 802c834: 6a78 ldr r0, [r7, #36] ; 0x24 - 802c836: f00d f90f bl 8039a58 + 802c79a: 4b8e ldr r3, [pc, #568] ; (802c9d4 ) + 802c79c: 689b ldr r3, [r3, #8] + 802c79e: 4619 mov r1, r3 + 802c7a0: 6a78 ldr r0, [r7, #36] ; 0x24 + 802c7a2: f00d f90f bl 80399c4 return; - 802c83a: e134 b.n 802caa6 + 802c7a6: e134 b.n 802ca12 } else if(strcmp(txt, LV_SYMBOL_CLOSE) == 0 || strcmp(txt, LV_SYMBOL_KEYBOARD) == 0) { - 802c83c: 498d ldr r1, [pc, #564] ; (802ca74 ) - 802c83e: 69b8 ldr r0, [r7, #24] - 802c840: f7d3 fcf0 bl 8000224 - 802c844: 4603 mov r3, r0 - 802c846: 2b00 cmp r3, #0 - 802c848: d006 beq.n 802c858 - 802c84a: 498b ldr r1, [pc, #556] ; (802ca78 ) - 802c84c: 69b8 ldr r0, [r7, #24] - 802c84e: f7d3 fce9 bl 8000224 - 802c852: 4603 mov r3, r0 - 802c854: 2b00 cmp r3, #0 - 802c856: d11b bne.n 802c890 + 802c7a8: 498d ldr r1, [pc, #564] ; (802c9e0 ) + 802c7aa: 69b8 ldr r0, [r7, #24] + 802c7ac: f7d3 fd3a bl 8000224 + 802c7b0: 4603 mov r3, r0 + 802c7b2: 2b00 cmp r3, #0 + 802c7b4: d006 beq.n 802c7c4 + 802c7b6: 498b ldr r1, [pc, #556] ; (802c9e4 ) + 802c7b8: 69b8 ldr r0, [r7, #24] + 802c7ba: f7d3 fd33 bl 8000224 + 802c7be: 4603 mov r3, r0 + 802c7c0: 2b00 cmp r3, #0 + 802c7c2: d11b bne.n 802c7fc lv_res_t res = lv_event_send(obj, LV_EVENT_CANCEL, NULL); - 802c858: 2200 movs r2, #0 - 802c85a: 2120 movs r1, #32 - 802c85c: 6a78 ldr r0, [r7, #36] ; 0x24 - 802c85e: f7d5 fe0f bl 8002480 - 802c862: 4603 mov r3, r0 - 802c864: 737b strb r3, [r7, #13] + 802c7c4: 2200 movs r2, #0 + 802c7c6: 2120 movs r1, #32 + 802c7c8: 6a78 ldr r0, [r7, #36] ; 0x24 + 802c7ca: f7d5 fe23 bl 8002414 + 802c7ce: 4603 mov r3, r0 + 802c7d0: 737b strb r3, [r7, #13] if(res != LV_RES_OK) return; - 802c866: 7b7b ldrb r3, [r7, #13] - 802c868: 2b01 cmp r3, #1 - 802c86a: f040 80f7 bne.w 802ca5c + 802c7d2: 7b7b ldrb r3, [r7, #13] + 802c7d4: 2b01 cmp r3, #1 + 802c7d6: f040 80f7 bne.w 802c9c8 if(keyboard->ta) { - 802c86e: 6a3b ldr r3, [r7, #32] - 802c870: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c872: 2b00 cmp r3, #0 - 802c874: f000 8110 beq.w 802ca98 + 802c7da: 6a3b ldr r3, [r7, #32] + 802c7dc: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c7de: 2b00 cmp r3, #0 + 802c7e0: f000 8110 beq.w 802ca04 res = lv_event_send(keyboard->ta, LV_EVENT_CANCEL, NULL); - 802c878: 6a3b ldr r3, [r7, #32] - 802c87a: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c87c: 2200 movs r2, #0 - 802c87e: 2120 movs r1, #32 - 802c880: 4618 mov r0, r3 - 802c882: f7d5 fdfd bl 8002480 - 802c886: 4603 mov r3, r0 - 802c888: 737b strb r3, [r7, #13] + 802c7e4: 6a3b ldr r3, [r7, #32] + 802c7e6: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c7e8: 2200 movs r2, #0 + 802c7ea: 2120 movs r1, #32 + 802c7ec: 4618 mov r0, r3 + 802c7ee: f7d5 fe11 bl 8002414 + 802c7f2: 4603 mov r3, r0 + 802c7f4: 737b strb r3, [r7, #13] if(res != LV_RES_OK) return; - 802c88a: 7b7b ldrb r3, [r7, #13] - 802c88c: 2b01 cmp r3, #1 + 802c7f6: 7b7b ldrb r3, [r7, #13] + 802c7f8: 2b01 cmp r3, #1 } return; - 802c88e: e103 b.n 802ca98 + 802c7fa: e103 b.n 802ca04 } else if(strcmp(txt, LV_SYMBOL_OK) == 0) { - 802c890: 497a ldr r1, [pc, #488] ; (802ca7c ) - 802c892: 69b8 ldr r0, [r7, #24] - 802c894: f7d3 fcc6 bl 8000224 - 802c898: 4603 mov r3, r0 - 802c89a: 2b00 cmp r3, #0 - 802c89c: d11b bne.n 802c8d6 + 802c7fc: 497a ldr r1, [pc, #488] ; (802c9e8 ) + 802c7fe: 69b8 ldr r0, [r7, #24] + 802c800: f7d3 fd10 bl 8000224 + 802c804: 4603 mov r3, r0 + 802c806: 2b00 cmp r3, #0 + 802c808: d11b bne.n 802c842 lv_res_t res = lv_event_send(obj, LV_EVENT_READY, NULL); - 802c89e: 2200 movs r2, #0 - 802c8a0: 211f movs r1, #31 - 802c8a2: 6a78 ldr r0, [r7, #36] ; 0x24 - 802c8a4: f7d5 fdec bl 8002480 - 802c8a8: 4603 mov r3, r0 - 802c8aa: 73bb strb r3, [r7, #14] + 802c80a: 2200 movs r2, #0 + 802c80c: 211f movs r1, #31 + 802c80e: 6a78 ldr r0, [r7, #36] ; 0x24 + 802c810: f7d5 fe00 bl 8002414 + 802c814: 4603 mov r3, r0 + 802c816: 73bb strb r3, [r7, #14] if(res != LV_RES_OK) return; - 802c8ac: 7bbb ldrb r3, [r7, #14] - 802c8ae: 2b01 cmp r3, #1 - 802c8b0: f040 80f4 bne.w 802ca9c + 802c818: 7bbb ldrb r3, [r7, #14] + 802c81a: 2b01 cmp r3, #1 + 802c81c: f040 80f4 bne.w 802ca08 if(keyboard->ta) { - 802c8b4: 6a3b ldr r3, [r7, #32] - 802c8b6: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c8b8: 2b00 cmp r3, #0 - 802c8ba: f000 80f1 beq.w 802caa0 + 802c820: 6a3b ldr r3, [r7, #32] + 802c822: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c824: 2b00 cmp r3, #0 + 802c826: f000 80f1 beq.w 802ca0c res = lv_event_send(keyboard->ta, LV_EVENT_READY, NULL); - 802c8be: 6a3b ldr r3, [r7, #32] - 802c8c0: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c8c2: 2200 movs r2, #0 - 802c8c4: 211f movs r1, #31 - 802c8c6: 4618 mov r0, r3 - 802c8c8: f7d5 fdda bl 8002480 - 802c8cc: 4603 mov r3, r0 - 802c8ce: 73bb strb r3, [r7, #14] + 802c82a: 6a3b ldr r3, [r7, #32] + 802c82c: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c82e: 2200 movs r2, #0 + 802c830: 211f movs r1, #31 + 802c832: 4618 mov r0, r3 + 802c834: f7d5 fdee bl 8002414 + 802c838: 4603 mov r3, r0 + 802c83a: 73bb strb r3, [r7, #14] if(res != LV_RES_OK) return; - 802c8d0: 7bbb ldrb r3, [r7, #14] - 802c8d2: 2b01 cmp r3, #1 + 802c83c: 7bbb ldrb r3, [r7, #14] + 802c83e: 2b01 cmp r3, #1 } return; - 802c8d4: e0e4 b.n 802caa0 + 802c840: e0e4 b.n 802ca0c } /*Add the characters to the text area if set*/ if(keyboard->ta == NULL) return; - 802c8d6: 6a3b ldr r3, [r7, #32] - 802c8d8: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c8da: 2b00 cmp r3, #0 - 802c8dc: f000 80e2 beq.w 802caa4 + 802c842: 6a3b ldr r3, [r7, #32] + 802c844: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c846: 2b00 cmp r3, #0 + 802c848: f000 80e2 beq.w 802ca10 if(strcmp(txt, "Enter") == 0 || strcmp(txt, LV_SYMBOL_NEW_LINE) == 0) { - 802c8e0: 4967 ldr r1, [pc, #412] ; (802ca80 ) - 802c8e2: 69b8 ldr r0, [r7, #24] - 802c8e4: f7d3 fc9e bl 8000224 - 802c8e8: 4603 mov r3, r0 - 802c8ea: 2b00 cmp r3, #0 - 802c8ec: d006 beq.n 802c8fc - 802c8ee: 4965 ldr r1, [pc, #404] ; (802ca84 ) - 802c8f0: 69b8 ldr r0, [r7, #24] - 802c8f2: f7d3 fc97 bl 8000224 - 802c8f6: 4603 mov r3, r0 - 802c8f8: 2b00 cmp r3, #0 - 802c8fa: d11a bne.n 802c932 + 802c84c: 4967 ldr r1, [pc, #412] ; (802c9ec ) + 802c84e: 69b8 ldr r0, [r7, #24] + 802c850: f7d3 fce8 bl 8000224 + 802c854: 4603 mov r3, r0 + 802c856: 2b00 cmp r3, #0 + 802c858: d006 beq.n 802c868 + 802c85a: 4965 ldr r1, [pc, #404] ; (802c9f0 ) + 802c85c: 69b8 ldr r0, [r7, #24] + 802c85e: f7d3 fce1 bl 8000224 + 802c862: 4603 mov r3, r0 + 802c864: 2b00 cmp r3, #0 + 802c866: d11a bne.n 802c89e lv_textarea_add_char(keyboard->ta, '\n'); - 802c8fc: 6a3b ldr r3, [r7, #32] - 802c8fe: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c900: 210a movs r1, #10 - 802c902: 4618 mov r0, r3 - 802c904: f018 fb90 bl 8045028 + 802c868: 6a3b ldr r3, [r7, #32] + 802c86a: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c86c: 210a movs r1, #10 + 802c86e: 4618 mov r0, r3 + 802c870: f018 fb90 bl 8044f94 if(lv_textarea_get_one_line(keyboard->ta)) { - 802c908: 6a3b ldr r3, [r7, #32] - 802c90a: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c90c: 4618 mov r0, r3 - 802c90e: f019 f83e bl 804598e - 802c912: 4603 mov r3, r0 - 802c914: 2b00 cmp r3, #0 - 802c916: f000 80c6 beq.w 802caa6 + 802c874: 6a3b ldr r3, [r7, #32] + 802c876: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c878: 4618 mov r0, r3 + 802c87a: f019 f83e bl 80458fa + 802c87e: 4603 mov r3, r0 + 802c880: 2b00 cmp r3, #0 + 802c882: f000 80c6 beq.w 802ca12 lv_res_t res = lv_event_send(keyboard->ta, LV_EVENT_READY, NULL); - 802c91a: 6a3b ldr r3, [r7, #32] - 802c91c: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c91e: 2200 movs r2, #0 - 802c920: 211f movs r1, #31 - 802c922: 4618 mov r0, r3 - 802c924: f7d5 fdac bl 8002480 - 802c928: 4603 mov r3, r0 - 802c92a: 73fb strb r3, [r7, #15] + 802c886: 6a3b ldr r3, [r7, #32] + 802c888: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c88a: 2200 movs r2, #0 + 802c88c: 211f movs r1, #31 + 802c88e: 4618 mov r0, r3 + 802c890: f7d5 fdc0 bl 8002414 + 802c894: 4603 mov r3, r0 + 802c896: 73fb strb r3, [r7, #15] if(res != LV_RES_OK) return; - 802c92c: 7bfb ldrb r3, [r7, #15] - 802c92e: 2b01 cmp r3, #1 + 802c898: 7bfb ldrb r3, [r7, #15] + 802c89a: 2b01 cmp r3, #1 if(lv_textarea_get_one_line(keyboard->ta)) { - 802c930: e0b9 b.n 802caa6 + 802c89c: e0b9 b.n 802ca12 } } else if(strcmp(txt, LV_SYMBOL_LEFT) == 0) { - 802c932: 4955 ldr r1, [pc, #340] ; (802ca88 ) - 802c934: 69b8 ldr r0, [r7, #24] - 802c936: f7d3 fc75 bl 8000224 - 802c93a: 4603 mov r3, r0 - 802c93c: 2b00 cmp r3, #0 - 802c93e: d105 bne.n 802c94c + 802c89e: 4955 ldr r1, [pc, #340] ; (802c9f4 ) + 802c8a0: 69b8 ldr r0, [r7, #24] + 802c8a2: f7d3 fcbf bl 8000224 + 802c8a6: 4603 mov r3, r0 + 802c8a8: 2b00 cmp r3, #0 + 802c8aa: d105 bne.n 802c8b8 lv_textarea_cursor_left(keyboard->ta); - 802c940: 6a3b ldr r3, [r7, #32] - 802c942: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c944: 4618 mov r0, r3 - 802c946: f019 f892 bl 8045a6e - 802c94a: e0ac b.n 802caa6 + 802c8ac: 6a3b ldr r3, [r7, #32] + 802c8ae: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c8b0: 4618 mov r0, r3 + 802c8b2: f019 f892 bl 80459da + 802c8b6: e0ac b.n 802ca12 } else if(strcmp(txt, LV_SYMBOL_RIGHT) == 0) { - 802c94c: 494f ldr r1, [pc, #316] ; (802ca8c ) - 802c94e: 69b8 ldr r0, [r7, #24] - 802c950: f7d3 fc68 bl 8000224 - 802c954: 4603 mov r3, r0 - 802c956: 2b00 cmp r3, #0 - 802c958: d105 bne.n 802c966 + 802c8b8: 494f ldr r1, [pc, #316] ; (802c9f8 ) + 802c8ba: 69b8 ldr r0, [r7, #24] + 802c8bc: f7d3 fcb2 bl 8000224 + 802c8c0: 4603 mov r3, r0 + 802c8c2: 2b00 cmp r3, #0 + 802c8c4: d105 bne.n 802c8d2 lv_textarea_cursor_right(keyboard->ta); - 802c95a: 6a3b ldr r3, [r7, #32] - 802c95c: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c95e: 4618 mov r0, r3 - 802c960: f019 f871 bl 8045a46 - 802c964: e09f b.n 802caa6 + 802c8c6: 6a3b ldr r3, [r7, #32] + 802c8c8: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c8ca: 4618 mov r0, r3 + 802c8cc: f019 f871 bl 80459b2 + 802c8d0: e09f b.n 802ca12 } else if(strcmp(txt, LV_SYMBOL_BACKSPACE) == 0) { - 802c966: 494a ldr r1, [pc, #296] ; (802ca90 ) - 802c968: 69b8 ldr r0, [r7, #24] - 802c96a: f7d3 fc5b bl 8000224 - 802c96e: 4603 mov r3, r0 - 802c970: 2b00 cmp r3, #0 - 802c972: d105 bne.n 802c980 + 802c8d2: 494a ldr r1, [pc, #296] ; (802c9fc ) + 802c8d4: 69b8 ldr r0, [r7, #24] + 802c8d6: f7d3 fca5 bl 8000224 + 802c8da: 4603 mov r3, r0 + 802c8dc: 2b00 cmp r3, #0 + 802c8de: d105 bne.n 802c8ec lv_textarea_del_char(keyboard->ta); - 802c974: 6a3b ldr r3, [r7, #32] - 802c976: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c978: 4618 mov r0, r3 - 802c97a: f018 fd35 bl 80453e8 - 802c97e: e092 b.n 802caa6 + 802c8e0: 6a3b ldr r3, [r7, #32] + 802c8e2: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c8e4: 4618 mov r0, r3 + 802c8e6: f018 fd35 bl 8045354 + 802c8ea: e092 b.n 802ca12 } else if(strcmp(txt, "+/-") == 0) { - 802c980: 4944 ldr r1, [pc, #272] ; (802ca94 ) - 802c982: 69b8 ldr r0, [r7, #24] - 802c984: f7d3 fc4e bl 8000224 - 802c988: 4603 mov r3, r0 - 802c98a: 2b00 cmp r3, #0 - 802c98c: d15b bne.n 802ca46 + 802c8ec: 4944 ldr r1, [pc, #272] ; (802ca00 ) + 802c8ee: 69b8 ldr r0, [r7, #24] + 802c8f0: f7d3 fc98 bl 8000224 + 802c8f4: 4603 mov r3, r0 + 802c8f6: 2b00 cmp r3, #0 + 802c8f8: d15b bne.n 802c9b2 uint16_t cur = lv_textarea_get_cursor_pos(keyboard->ta); - 802c98e: 6a3b ldr r3, [r7, #32] - 802c990: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c992: 4618 mov r0, r3 - 802c994: f018 ffee bl 8045974 - 802c998: 4603 mov r3, r0 - 802c99a: 82fb strh r3, [r7, #22] + 802c8fa: 6a3b ldr r3, [r7, #32] + 802c8fc: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c8fe: 4618 mov r0, r3 + 802c900: f018 ffee bl 80458e0 + 802c904: 4603 mov r3, r0 + 802c906: 82fb strh r3, [r7, #22] const char * ta_txt = lv_textarea_get_text(keyboard->ta); - 802c99c: 6a3b ldr r3, [r7, #32] - 802c99e: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c9a0: 4618 mov r0, r3 - 802c9a2: f018 ffca bl 804593a - 802c9a6: 6138 str r0, [r7, #16] + 802c908: 6a3b ldr r3, [r7, #32] + 802c90a: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c90c: 4618 mov r0, r3 + 802c90e: f018 ffca bl 80458a6 + 802c912: 6138 str r0, [r7, #16] if(ta_txt[0] == '-') { - 802c9a8: 693b ldr r3, [r7, #16] - 802c9aa: 781b ldrb r3, [r3, #0] - 802c9ac: 2b2d cmp r3, #45 ; 0x2d - 802c9ae: d118 bne.n 802c9e2 + 802c914: 693b ldr r3, [r7, #16] + 802c916: 781b ldrb r3, [r3, #0] + 802c918: 2b2d cmp r3, #45 ; 0x2d + 802c91a: d118 bne.n 802c94e lv_textarea_set_cursor_pos(keyboard->ta, 1); - 802c9b0: 6a3b ldr r3, [r7, #32] - 802c9b2: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c9b4: 2101 movs r1, #1 - 802c9b6: 4618 mov r0, r3 - 802c9b8: f018 fe90 bl 80456dc + 802c91c: 6a3b ldr r3, [r7, #32] + 802c91e: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c920: 2101 movs r1, #1 + 802c922: 4618 mov r0, r3 + 802c924: f018 fe90 bl 8045648 lv_textarea_del_char(keyboard->ta); - 802c9bc: 6a3b ldr r3, [r7, #32] - 802c9be: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c9c0: 4618 mov r0, r3 - 802c9c2: f018 fd11 bl 80453e8 + 802c928: 6a3b ldr r3, [r7, #32] + 802c92a: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c92c: 4618 mov r0, r3 + 802c92e: f018 fd11 bl 8045354 lv_textarea_add_char(keyboard->ta, '+'); - 802c9c6: 6a3b ldr r3, [r7, #32] - 802c9c8: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c9ca: 212b movs r1, #43 ; 0x2b - 802c9cc: 4618 mov r0, r3 - 802c9ce: f018 fb2b bl 8045028 + 802c932: 6a3b ldr r3, [r7, #32] + 802c934: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c936: 212b movs r1, #43 ; 0x2b + 802c938: 4618 mov r0, r3 + 802c93a: f018 fb2b bl 8044f94 lv_textarea_set_cursor_pos(keyboard->ta, cur); - 802c9d2: 6a3b ldr r3, [r7, #32] - 802c9d4: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c9d6: 8afa ldrh r2, [r7, #22] - 802c9d8: 4611 mov r1, r2 - 802c9da: 4618 mov r0, r3 - 802c9dc: f018 fe7e bl 80456dc - 802c9e0: e061 b.n 802caa6 + 802c93e: 6a3b ldr r3, [r7, #32] + 802c940: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c942: 8afa ldrh r2, [r7, #22] + 802c944: 4611 mov r1, r2 + 802c946: 4618 mov r0, r3 + 802c948: f018 fe7e bl 8045648 + 802c94c: e061 b.n 802ca12 } else if(ta_txt[0] == '+') { - 802c9e2: 693b ldr r3, [r7, #16] - 802c9e4: 781b ldrb r3, [r3, #0] - 802c9e6: 2b2b cmp r3, #43 ; 0x2b - 802c9e8: d118 bne.n 802ca1c + 802c94e: 693b ldr r3, [r7, #16] + 802c950: 781b ldrb r3, [r3, #0] + 802c952: 2b2b cmp r3, #43 ; 0x2b + 802c954: d118 bne.n 802c988 lv_textarea_set_cursor_pos(keyboard->ta, 1); - 802c9ea: 6a3b ldr r3, [r7, #32] - 802c9ec: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c9ee: 2101 movs r1, #1 - 802c9f0: 4618 mov r0, r3 - 802c9f2: f018 fe73 bl 80456dc + 802c956: 6a3b ldr r3, [r7, #32] + 802c958: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c95a: 2101 movs r1, #1 + 802c95c: 4618 mov r0, r3 + 802c95e: f018 fe73 bl 8045648 lv_textarea_del_char(keyboard->ta); - 802c9f6: 6a3b ldr r3, [r7, #32] - 802c9f8: 6b9b ldr r3, [r3, #56] ; 0x38 - 802c9fa: 4618 mov r0, r3 - 802c9fc: f018 fcf4 bl 80453e8 + 802c962: 6a3b ldr r3, [r7, #32] + 802c964: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c966: 4618 mov r0, r3 + 802c968: f018 fcf4 bl 8045354 lv_textarea_add_char(keyboard->ta, '-'); - 802ca00: 6a3b ldr r3, [r7, #32] - 802ca02: 6b9b ldr r3, [r3, #56] ; 0x38 - 802ca04: 212d movs r1, #45 ; 0x2d - 802ca06: 4618 mov r0, r3 - 802ca08: f018 fb0e bl 8045028 + 802c96c: 6a3b ldr r3, [r7, #32] + 802c96e: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c970: 212d movs r1, #45 ; 0x2d + 802c972: 4618 mov r0, r3 + 802c974: f018 fb0e bl 8044f94 lv_textarea_set_cursor_pos(keyboard->ta, cur); - 802ca0c: 6a3b ldr r3, [r7, #32] - 802ca0e: 6b9b ldr r3, [r3, #56] ; 0x38 - 802ca10: 8afa ldrh r2, [r7, #22] - 802ca12: 4611 mov r1, r2 - 802ca14: 4618 mov r0, r3 - 802ca16: f018 fe61 bl 80456dc - 802ca1a: e044 b.n 802caa6 + 802c978: 6a3b ldr r3, [r7, #32] + 802c97a: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c97c: 8afa ldrh r2, [r7, #22] + 802c97e: 4611 mov r1, r2 + 802c980: 4618 mov r0, r3 + 802c982: f018 fe61 bl 8045648 + 802c986: e044 b.n 802ca12 } else { lv_textarea_set_cursor_pos(keyboard->ta, 0); - 802ca1c: 6a3b ldr r3, [r7, #32] - 802ca1e: 6b9b ldr r3, [r3, #56] ; 0x38 - 802ca20: 2100 movs r1, #0 - 802ca22: 4618 mov r0, r3 - 802ca24: f018 fe5a bl 80456dc + 802c988: 6a3b ldr r3, [r7, #32] + 802c98a: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c98c: 2100 movs r1, #0 + 802c98e: 4618 mov r0, r3 + 802c990: f018 fe5a bl 8045648 lv_textarea_add_char(keyboard->ta, '-'); - 802ca28: 6a3b ldr r3, [r7, #32] - 802ca2a: 6b9b ldr r3, [r3, #56] ; 0x38 - 802ca2c: 212d movs r1, #45 ; 0x2d - 802ca2e: 4618 mov r0, r3 - 802ca30: f018 fafa bl 8045028 + 802c994: 6a3b ldr r3, [r7, #32] + 802c996: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c998: 212d movs r1, #45 ; 0x2d + 802c99a: 4618 mov r0, r3 + 802c99c: f018 fafa bl 8044f94 lv_textarea_set_cursor_pos(keyboard->ta, cur + 1); - 802ca34: 6a3b ldr r3, [r7, #32] - 802ca36: 6b9a ldr r2, [r3, #56] ; 0x38 - 802ca38: 8afb ldrh r3, [r7, #22] - 802ca3a: 3301 adds r3, #1 - 802ca3c: 4619 mov r1, r3 - 802ca3e: 4610 mov r0, r2 - 802ca40: f018 fe4c bl 80456dc - 802ca44: e02f b.n 802caa6 + 802c9a0: 6a3b ldr r3, [r7, #32] + 802c9a2: 6b9a ldr r2, [r3, #56] ; 0x38 + 802c9a4: 8afb ldrh r3, [r7, #22] + 802c9a6: 3301 adds r3, #1 + 802c9a8: 4619 mov r1, r3 + 802c9aa: 4610 mov r0, r2 + 802c9ac: f018 fe4c bl 8045648 + 802c9b0: e02f b.n 802ca12 } } else { lv_textarea_add_text(keyboard->ta, txt); - 802ca46: 6a3b ldr r3, [r7, #32] - 802ca48: 6b9b ldr r3, [r3, #56] ; 0x38 - 802ca4a: 69b9 ldr r1, [r7, #24] - 802ca4c: 4618 mov r0, r3 - 802ca4e: f018 fbd7 bl 8045200 - 802ca52: e028 b.n 802caa6 + 802c9b2: 6a3b ldr r3, [r7, #32] + 802c9b4: 6b9b ldr r3, [r3, #56] ; 0x38 + 802c9b6: 69b9 ldr r1, [r7, #24] + 802c9b8: 4618 mov r0, r3 + 802c9ba: f018 fbd7 bl 804516c + 802c9be: e028 b.n 802ca12 if(btn_id == LV_BTNMATRIX_BTN_NONE) return; - 802ca54: bf00 nop - 802ca56: e026 b.n 802caa6 + 802c9c0: bf00 nop + 802c9c2: e026 b.n 802ca12 if(txt == NULL) return; - 802ca58: bf00 nop - 802ca5a: e024 b.n 802caa6 + 802c9c4: bf00 nop + 802c9c6: e024 b.n 802ca12 if(res != LV_RES_OK) return; - 802ca5c: bf00 nop - 802ca5e: e022 b.n 802caa6 - 802ca60: 08047060 .word 0x08047060 - 802ca64: 20000094 .word 0x20000094 - 802ca68: 200000b8 .word 0x200000b8 - 802ca6c: 08046fc4 .word 0x08046fc4 - 802ca70: 08046f90 .word 0x08046f90 - 802ca74: 08047128 .word 0x08047128 - 802ca78: 08047020 .word 0x08047020 - 802ca7c: 08047030 .word 0x08047030 - 802ca80: 0804712c .word 0x0804712c - 802ca84: 08046fec .word 0x08046fec - 802ca88: 08047024 .word 0x08047024 - 802ca8c: 0804702c .word 0x0804702c - 802ca90: 08046fbc .word 0x08046fbc - 802ca94: 08047124 .word 0x08047124 + 802c9c8: bf00 nop + 802c9ca: e022 b.n 802ca12 + 802c9cc: 08046fb8 .word 0x08046fb8 + 802c9d0: 20000094 .word 0x20000094 + 802c9d4: 200000b8 .word 0x200000b8 + 802c9d8: 08046f1c .word 0x08046f1c + 802c9dc: 08046ee8 .word 0x08046ee8 + 802c9e0: 08047080 .word 0x08047080 + 802c9e4: 08046f78 .word 0x08046f78 + 802c9e8: 08046f88 .word 0x08046f88 + 802c9ec: 08047084 .word 0x08047084 + 802c9f0: 08046f44 .word 0x08046f44 + 802c9f4: 08046f7c .word 0x08046f7c + 802c9f8: 08046f84 .word 0x08046f84 + 802c9fc: 08046f14 .word 0x08046f14 + 802ca00: 0804707c .word 0x0804707c return; - 802ca98: bf00 nop - 802ca9a: e004 b.n 802caa6 + 802ca04: bf00 nop + 802ca06: e004 b.n 802ca12 if(res != LV_RES_OK) return; - 802ca9c: bf00 nop - 802ca9e: e002 b.n 802caa6 + 802ca08: bf00 nop + 802ca0a: e002 b.n 802ca12 return; - 802caa0: bf00 nop - 802caa2: e000 b.n 802caa6 + 802ca0c: bf00 nop + 802ca0e: e000 b.n 802ca12 if(keyboard->ta == NULL) return; - 802caa4: bf00 nop + 802ca10: bf00 nop } } - 802caa6: 3728 adds r7, #40 ; 0x28 - 802caa8: 46bd mov sp, r7 - 802caaa: bd80 pop {r7, pc} + 802ca12: 3728 adds r7, #40 ; 0x28 + 802ca14: 46bd mov sp, r7 + 802ca16: bd80 pop {r7, pc} -0802caac : +0802ca18 : /********************** * STATIC FUNCTIONS **********************/ static void lv_keyboard_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802caac: b580 push {r7, lr} - 802caae: b084 sub sp, #16 - 802cab0: af00 add r7, sp, #0 - 802cab2: 6078 str r0, [r7, #4] - 802cab4: 6039 str r1, [r7, #0] + 802ca18: b580 push {r7, lr} + 802ca1a: b084 sub sp, #16 + 802ca1c: af00 add r7, sp, #0 + 802ca1e: 6078 str r0, [r7, #4] + 802ca20: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICK_FOCUSABLE); - 802cab6: 2104 movs r1, #4 - 802cab8: 6838 ldr r0, [r7, #0] - 802caba: f7d9 fdd1 bl 8006660 + 802ca22: 2104 movs r1, #4 + 802ca24: 6838 ldr r0, [r7, #0] + 802ca26: f7d9 fde5 bl 80065f4 lv_keyboard_t * keyboard = (lv_keyboard_t *)obj; - 802cabe: 683b ldr r3, [r7, #0] - 802cac0: 60fb str r3, [r7, #12] + 802ca2a: 683b ldr r3, [r7, #0] + 802ca2c: 60fb str r3, [r7, #12] keyboard->ta = NULL; - 802cac2: 68fb ldr r3, [r7, #12] - 802cac4: 2200 movs r2, #0 - 802cac6: 639a str r2, [r3, #56] ; 0x38 + 802ca2e: 68fb ldr r3, [r7, #12] + 802ca30: 2200 movs r2, #0 + 802ca32: 639a str r2, [r3, #56] ; 0x38 keyboard->mode = LV_KEYBOARD_MODE_TEXT_LOWER; - 802cac8: 68fb ldr r3, [r7, #12] - 802caca: 2200 movs r2, #0 - 802cacc: f883 203c strb.w r2, [r3, #60] ; 0x3c + 802ca34: 68fb ldr r3, [r7, #12] + 802ca36: 2200 movs r2, #0 + 802ca38: f883 203c strb.w r2, [r3, #60] ; 0x3c keyboard->popovers = 0; - 802cad0: 68fa ldr r2, [r7, #12] - 802cad2: f892 303d ldrb.w r3, [r2, #61] ; 0x3d - 802cad6: f36f 0300 bfc r3, #0, #1 - 802cada: f882 303d strb.w r3, [r2, #61] ; 0x3d + 802ca3c: 68fa ldr r2, [r7, #12] + 802ca3e: f892 303d ldrb.w r3, [r2, #61] ; 0x3d + 802ca42: f36f 0300 bfc r3, #0, #1 + 802ca46: f882 303d strb.w r3, [r2, #61] ; 0x3d lv_obj_align(obj, LV_ALIGN_BOTTOM_MID, 0, 0); - 802cade: 2300 movs r3, #0 - 802cae0: 2200 movs r2, #0 - 802cae2: 2105 movs r1, #5 - 802cae4: 6838 ldr r0, [r7, #0] - 802cae6: f7dc ff91 bl 8009a0c + 802ca4a: 2300 movs r3, #0 + 802ca4c: 2200 movs r2, #0 + 802ca4e: 2105 movs r1, #5 + 802ca50: 6838 ldr r0, [r7, #0] + 802ca52: f7dc ffa5 bl 80099a0 lv_obj_add_event_cb(obj, lv_keyboard_def_event_cb, LV_EVENT_VALUE_CHANGED, NULL); - 802caea: 2300 movs r3, #0 - 802caec: 221c movs r2, #28 - 802caee: 4908 ldr r1, [pc, #32] ; (802cb10 ) - 802caf0: 6838 ldr r0, [r7, #0] - 802caf2: f7d5 fda5 bl 8002640 + 802ca56: 2300 movs r3, #0 + 802ca58: 221c movs r2, #28 + 802ca5a: 4908 ldr r1, [pc, #32] ; (802ca7c ) + 802ca5c: 6838 ldr r0, [r7, #0] + 802ca5e: f7d5 fdb9 bl 80025d4 lv_obj_set_style_base_dir(obj, LV_BASE_DIR_LTR, 0); - 802caf6: 2200 movs r2, #0 - 802caf8: 2100 movs r1, #0 - 802cafa: 6838 ldr r0, [r7, #0] - 802cafc: f7e2 fc3c bl 800f378 + 802ca62: 2200 movs r2, #0 + 802ca64: 2100 movs r1, #0 + 802ca66: 6838 ldr r0, [r7, #0] + 802ca68: f7e2 fc3c bl 800f2e4 lv_keyboard_update_map(obj); - 802cb00: 6838 ldr r0, [r7, #0] - 802cb02: f000 f807 bl 802cb14 + 802ca6c: 6838 ldr r0, [r7, #0] + 802ca6e: f000 f807 bl 802ca80 } - 802cb06: bf00 nop - 802cb08: 3710 adds r7, #16 - 802cb0a: 46bd mov sp, r7 - 802cb0c: bd80 pop {r7, pc} - 802cb0e: bf00 nop - 802cb10: 0802c769 .word 0x0802c769 + 802ca72: bf00 nop + 802ca74: 3710 adds r7, #16 + 802ca76: 46bd mov sp, r7 + 802ca78: bd80 pop {r7, pc} + 802ca7a: bf00 nop + 802ca7c: 0802c6d5 .word 0x0802c6d5 -0802cb14 : +0802ca80 : /** * Update the key and control map for the current mode * @param obj pointer to a keyboard object */ static void lv_keyboard_update_map(lv_obj_t * obj) { - 802cb14: b580 push {r7, lr} - 802cb16: b084 sub sp, #16 - 802cb18: af00 add r7, sp, #0 - 802cb1a: 6078 str r0, [r7, #4] + 802ca80: b580 push {r7, lr} + 802ca82: b084 sub sp, #16 + 802ca84: af00 add r7, sp, #0 + 802ca86: 6078 str r0, [r7, #4] lv_keyboard_t * keyboard = (lv_keyboard_t *)obj; - 802cb1c: 687b ldr r3, [r7, #4] - 802cb1e: 60fb str r3, [r7, #12] + 802ca88: 687b ldr r3, [r7, #4] + 802ca8a: 60fb str r3, [r7, #12] lv_btnmatrix_set_map(obj, kb_map[keyboard->mode]); - 802cb20: 68fb ldr r3, [r7, #12] - 802cb22: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802cb26: 461a mov r2, r3 - 802cb28: 4b06 ldr r3, [pc, #24] ; (802cb44 ) - 802cb2a: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 802cb2e: 4619 mov r1, r3 - 802cb30: 6878 ldr r0, [r7, #4] - 802cb32: f00c fe27 bl 8039784 + 802ca8c: 68fb ldr r3, [r7, #12] + 802ca8e: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802ca92: 461a mov r2, r3 + 802ca94: 4b06 ldr r3, [pc, #24] ; (802cab0 ) + 802ca96: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 802ca9a: 4619 mov r1, r3 + 802ca9c: 6878 ldr r0, [r7, #4] + 802ca9e: f00c fe27 bl 80396f0 lv_keyboard_update_ctrl_map(obj); - 802cb36: 6878 ldr r0, [r7, #4] - 802cb38: f000 f806 bl 802cb48 + 802caa2: 6878 ldr r0, [r7, #4] + 802caa4: f000 f806 bl 802cab4 } - 802cb3c: bf00 nop - 802cb3e: 3710 adds r7, #16 - 802cb40: 46bd mov sp, r7 - 802cb42: bd80 pop {r7, pc} - 802cb44: 20000094 .word 0x20000094 + 802caa8: bf00 nop + 802caaa: 3710 adds r7, #16 + 802caac: 46bd mov sp, r7 + 802caae: bd80 pop {r7, pc} + 802cab0: 20000094 .word 0x20000094 -0802cb48 : +0802cab4 : /** * Update the control map for the current mode * @param obj pointer to a keyboard object */ static void lv_keyboard_update_ctrl_map(lv_obj_t * obj) { - 802cb48: b580 push {r7, lr} - 802cb4a: b086 sub sp, #24 - 802cb4c: af00 add r7, sp, #0 - 802cb4e: 6078 str r0, [r7, #4] + 802cab4: b580 push {r7, lr} + 802cab6: b086 sub sp, #24 + 802cab8: af00 add r7, sp, #0 + 802caba: 6078 str r0, [r7, #4] lv_keyboard_t * keyboard = (lv_keyboard_t *)obj; - 802cb50: 687b ldr r3, [r7, #4] - 802cb52: 613b str r3, [r7, #16] + 802cabc: 687b ldr r3, [r7, #4] + 802cabe: 613b str r3, [r7, #16] if(keyboard->popovers) { - 802cb54: 693b ldr r3, [r7, #16] - 802cb56: f893 303d ldrb.w r3, [r3, #61] ; 0x3d - 802cb5a: f003 0301 and.w r3, r3, #1 - 802cb5e: b2db uxtb r3, r3 - 802cb60: 2b00 cmp r3, #0 - 802cb62: d00b beq.n 802cb7c + 802cac0: 693b ldr r3, [r7, #16] + 802cac2: f893 303d ldrb.w r3, [r3, #61] ; 0x3d + 802cac6: f003 0301 and.w r3, r3, #1 + 802caca: b2db uxtb r3, r3 + 802cacc: 2b00 cmp r3, #0 + 802cace: d00b beq.n 802cae8 /*Apply the current control map (already includes LV_BTNMATRIX_CTRL_POPOVER flags)*/ lv_btnmatrix_set_ctrl_map(obj, kb_ctrl[keyboard->mode]); - 802cb64: 693b ldr r3, [r7, #16] - 802cb66: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802cb6a: 461a mov r2, r3 - 802cb6c: 4b20 ldr r3, [pc, #128] ; (802cbf0 ) - 802cb6e: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 802cb72: 4619 mov r1, r3 - 802cb74: 6878 ldr r0, [r7, #4] - 802cb76: f00c ff6f bl 8039a58 + 802cad0: 693b ldr r3, [r7, #16] + 802cad2: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802cad6: 461a mov r2, r3 + 802cad8: 4b20 ldr r3, [pc, #128] ; (802cb5c ) + 802cada: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 802cade: 4619 mov r1, r3 + 802cae0: 6878 ldr r0, [r7, #4] + 802cae2: f00c ff6f bl 80399c4 /*Apply new control map and clean up*/ lv_btnmatrix_set_ctrl_map(obj, ctrl_map); lv_mem_free(ctrl_map); } } - 802cb7a: e035 b.n 802cbe8 + 802cae6: e035 b.n 802cb54 lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj; - 802cb7c: 687b ldr r3, [r7, #4] - 802cb7e: 60fb str r3, [r7, #12] + 802cae8: 687b ldr r3, [r7, #4] + 802caea: 60fb str r3, [r7, #12] lv_btnmatrix_ctrl_t * ctrl_map = lv_mem_alloc(btnm->btn_cnt * sizeof(lv_btnmatrix_ctrl_t)); - 802cb80: 68fb ldr r3, [r7, #12] - 802cb82: 8e1b ldrh r3, [r3, #48] ; 0x30 - 802cb84: 005b lsls r3, r3, #1 - 802cb86: 4618 mov r0, r3 - 802cb88: f005 fe86 bl 8032898 - 802cb8c: 60b8 str r0, [r7, #8] + 802caec: 68fb ldr r3, [r7, #12] + 802caee: 8e1b ldrh r3, [r3, #48] ; 0x30 + 802caf0: 005b lsls r3, r3, #1 + 802caf2: 4618 mov r0, r3 + 802caf4: f005 fe86 bl 8032804 + 802caf8: 60b8 str r0, [r7, #8] lv_memcpy(ctrl_map, kb_ctrl[keyboard->mode], sizeof(lv_btnmatrix_ctrl_t) * btnm->btn_cnt); - 802cb8e: 693b ldr r3, [r7, #16] - 802cb90: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 802cb94: 461a mov r2, r3 - 802cb96: 4b16 ldr r3, [pc, #88] ; (802cbf0 ) - 802cb98: f853 1022 ldr.w r1, [r3, r2, lsl #2] - 802cb9c: 68fb ldr r3, [r7, #12] - 802cb9e: 8e1b ldrh r3, [r3, #48] ; 0x30 - 802cba0: 005b lsls r3, r3, #1 - 802cba2: 461a mov r2, r3 - 802cba4: 68b8 ldr r0, [r7, #8] - 802cba6: f006 f82f bl 8032c08 + 802cafa: 693b ldr r3, [r7, #16] + 802cafc: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 802cb00: 461a mov r2, r3 + 802cb02: 4b16 ldr r3, [pc, #88] ; (802cb5c ) + 802cb04: f853 1022 ldr.w r1, [r3, r2, lsl #2] + 802cb08: 68fb ldr r3, [r7, #12] + 802cb0a: 8e1b ldrh r3, [r3, #48] ; 0x30 + 802cb0c: 005b lsls r3, r3, #1 + 802cb0e: 461a mov r2, r3 + 802cb10: 68b8 ldr r0, [r7, #8] + 802cb12: f006 f82f bl 8032b74 for(uint16_t i = 0; i < btnm->btn_cnt; i++) { - 802cbaa: 2300 movs r3, #0 - 802cbac: 82fb strh r3, [r7, #22] - 802cbae: e00f b.n 802cbd0 + 802cb16: 2300 movs r3, #0 + 802cb18: 82fb strh r3, [r7, #22] + 802cb1a: e00f b.n 802cb3c ctrl_map[i] &= (~LV_BTNMATRIX_CTRL_POPOVER); - 802cbb0: 8afb ldrh r3, [r7, #22] - 802cbb2: 005b lsls r3, r3, #1 - 802cbb4: 68ba ldr r2, [r7, #8] - 802cbb6: 4413 add r3, r2 - 802cbb8: 881a ldrh r2, [r3, #0] - 802cbba: 8afb ldrh r3, [r7, #22] - 802cbbc: 005b lsls r3, r3, #1 - 802cbbe: 68b9 ldr r1, [r7, #8] - 802cbc0: 440b add r3, r1 - 802cbc2: f422 7200 bic.w r2, r2, #512 ; 0x200 - 802cbc6: b292 uxth r2, r2 - 802cbc8: 801a strh r2, [r3, #0] + 802cb1c: 8afb ldrh r3, [r7, #22] + 802cb1e: 005b lsls r3, r3, #1 + 802cb20: 68ba ldr r2, [r7, #8] + 802cb22: 4413 add r3, r2 + 802cb24: 881a ldrh r2, [r3, #0] + 802cb26: 8afb ldrh r3, [r7, #22] + 802cb28: 005b lsls r3, r3, #1 + 802cb2a: 68b9 ldr r1, [r7, #8] + 802cb2c: 440b add r3, r1 + 802cb2e: f422 7200 bic.w r2, r2, #512 ; 0x200 + 802cb32: b292 uxth r2, r2 + 802cb34: 801a strh r2, [r3, #0] for(uint16_t i = 0; i < btnm->btn_cnt; i++) { - 802cbca: 8afb ldrh r3, [r7, #22] - 802cbcc: 3301 adds r3, #1 - 802cbce: 82fb strh r3, [r7, #22] - 802cbd0: 68fb ldr r3, [r7, #12] - 802cbd2: 8e1b ldrh r3, [r3, #48] ; 0x30 - 802cbd4: 8afa ldrh r2, [r7, #22] - 802cbd6: 429a cmp r2, r3 - 802cbd8: d3ea bcc.n 802cbb0 + 802cb36: 8afb ldrh r3, [r7, #22] + 802cb38: 3301 adds r3, #1 + 802cb3a: 82fb strh r3, [r7, #22] + 802cb3c: 68fb ldr r3, [r7, #12] + 802cb3e: 8e1b ldrh r3, [r3, #48] ; 0x30 + 802cb40: 8afa ldrh r2, [r7, #22] + 802cb42: 429a cmp r2, r3 + 802cb44: d3ea bcc.n 802cb1c lv_btnmatrix_set_ctrl_map(obj, ctrl_map); - 802cbda: 68b9 ldr r1, [r7, #8] - 802cbdc: 6878 ldr r0, [r7, #4] - 802cbde: f00c ff3b bl 8039a58 + 802cb46: 68b9 ldr r1, [r7, #8] + 802cb48: 6878 ldr r0, [r7, #4] + 802cb4a: f00c ff3b bl 80399c4 lv_mem_free(ctrl_map); - 802cbe2: 68b8 ldr r0, [r7, #8] - 802cbe4: f005 fe7a bl 80328dc + 802cb4e: 68b8 ldr r0, [r7, #8] + 802cb50: f005 fe7a bl 8032848 } - 802cbe8: bf00 nop - 802cbea: 3718 adds r7, #24 - 802cbec: 46bd mov sp, r7 - 802cbee: bd80 pop {r7, pc} - 802cbf0: 200000b8 .word 0x200000b8 + 802cb54: bf00 nop + 802cb56: 3718 adds r7, #24 + 802cb58: 46bd mov sp, r7 + 802cb5a: bd80 pop {r7, pc} + 802cb5c: 200000b8 .word 0x200000b8 -0802cbf4 : +0802cb60 : return ret.full; #endif } static inline uint32_t lv_color_to32(lv_color_t color) { - 802cbf4: b480 push {r7} - 802cbf6: b085 sub sp, #20 - 802cbf8: af00 add r7, sp, #0 - 802cbfa: 80b8 strh r0, [r7, #4] + 802cb60: b480 push {r7} + 802cb62: b085 sub sp, #20 + 802cb64: af00 add r7, sp, #0 + 802cb66: 80b8 strh r0, [r7, #4] * 5 129 33 1 255 * 6 259 3 0 255 */ lv_color32_t ret; LV_COLOR_SET_R32(ret, (LV_COLOR_GET_R(color) * 263 + 7) >> 5); - 802cbfc: 797b ldrb r3, [r7, #5] - 802cbfe: f3c3 03c4 ubfx r3, r3, #3, #5 - 802cc02: b2db uxtb r3, r3 - 802cc04: 461a mov r2, r3 - 802cc06: 4613 mov r3, r2 - 802cc08: 015b lsls r3, r3, #5 - 802cc0a: 4413 add r3, r2 - 802cc0c: 00db lsls r3, r3, #3 - 802cc0e: 1a9b subs r3, r3, r2 - 802cc10: 3307 adds r3, #7 - 802cc12: 115b asrs r3, r3, #5 - 802cc14: b2db uxtb r3, r3 - 802cc16: 73bb strb r3, [r7, #14] + 802cb68: 797b ldrb r3, [r7, #5] + 802cb6a: f3c3 03c4 ubfx r3, r3, #3, #5 + 802cb6e: b2db uxtb r3, r3 + 802cb70: 461a mov r2, r3 + 802cb72: 4613 mov r3, r2 + 802cb74: 015b lsls r3, r3, #5 + 802cb76: 4413 add r3, r2 + 802cb78: 00db lsls r3, r3, #3 + 802cb7a: 1a9b subs r3, r3, r2 + 802cb7c: 3307 adds r3, #7 + 802cb7e: 115b asrs r3, r3, #5 + 802cb80: b2db uxtb r3, r3 + 802cb82: 73bb strb r3, [r7, #14] LV_COLOR_SET_G32(ret, (LV_COLOR_GET_G(color) * 259 + 3) >> 6); - 802cc18: 88bb ldrh r3, [r7, #4] - 802cc1a: f3c3 1345 ubfx r3, r3, #5, #6 - 802cc1e: b2db uxtb r3, r3 - 802cc20: 461a mov r2, r3 - 802cc22: 4613 mov r3, r2 - 802cc24: 01db lsls r3, r3, #7 - 802cc26: 4413 add r3, r2 - 802cc28: 005b lsls r3, r3, #1 - 802cc2a: 4413 add r3, r2 - 802cc2c: 3303 adds r3, #3 - 802cc2e: 119b asrs r3, r3, #6 - 802cc30: b2db uxtb r3, r3 - 802cc32: 737b strb r3, [r7, #13] + 802cb84: 88bb ldrh r3, [r7, #4] + 802cb86: f3c3 1345 ubfx r3, r3, #5, #6 + 802cb8a: b2db uxtb r3, r3 + 802cb8c: 461a mov r2, r3 + 802cb8e: 4613 mov r3, r2 + 802cb90: 01db lsls r3, r3, #7 + 802cb92: 4413 add r3, r2 + 802cb94: 005b lsls r3, r3, #1 + 802cb96: 4413 add r3, r2 + 802cb98: 3303 adds r3, #3 + 802cb9a: 119b asrs r3, r3, #6 + 802cb9c: b2db uxtb r3, r3 + 802cb9e: 737b strb r3, [r7, #13] LV_COLOR_SET_B32(ret, (LV_COLOR_GET_B(color) * 263 + 7) >> 5); - 802cc34: 793b ldrb r3, [r7, #4] - 802cc36: f3c3 0304 ubfx r3, r3, #0, #5 - 802cc3a: b2db uxtb r3, r3 - 802cc3c: 461a mov r2, r3 - 802cc3e: 4613 mov r3, r2 - 802cc40: 015b lsls r3, r3, #5 - 802cc42: 4413 add r3, r2 - 802cc44: 00db lsls r3, r3, #3 - 802cc46: 1a9b subs r3, r3, r2 - 802cc48: 3307 adds r3, #7 - 802cc4a: 115b asrs r3, r3, #5 - 802cc4c: b2db uxtb r3, r3 - 802cc4e: 733b strb r3, [r7, #12] + 802cba0: 793b ldrb r3, [r7, #4] + 802cba2: f3c3 0304 ubfx r3, r3, #0, #5 + 802cba6: b2db uxtb r3, r3 + 802cba8: 461a mov r2, r3 + 802cbaa: 4613 mov r3, r2 + 802cbac: 015b lsls r3, r3, #5 + 802cbae: 4413 add r3, r2 + 802cbb0: 00db lsls r3, r3, #3 + 802cbb2: 1a9b subs r3, r3, r2 + 802cbb4: 3307 adds r3, #7 + 802cbb6: 115b asrs r3, r3, #5 + 802cbb8: b2db uxtb r3, r3 + 802cbba: 733b strb r3, [r7, #12] LV_COLOR_SET_A32(ret, 0xFF); - 802cc50: 23ff movs r3, #255 ; 0xff - 802cc52: 73fb strb r3, [r7, #15] + 802cbbc: 23ff movs r3, #255 ; 0xff + 802cbbe: 73fb strb r3, [r7, #15] return ret.full; - 802cc54: 68fb ldr r3, [r7, #12] + 802cbc0: 68fb ldr r3, [r7, #12] #elif LV_COLOR_DEPTH == 32 return color.full; #endif } - 802cc56: 4618 mov r0, r3 - 802cc58: 3714 adds r7, #20 - 802cc5a: 46bd mov sp, r7 - 802cc5c: bc80 pop {r7} - 802cc5e: 4770 bx lr + 802cbc2: 4618 mov r0, r3 + 802cbc4: 3714 adds r7, #20 + 802cbc6: 46bd mov sp, r7 + 802cbc8: bc80 pop {r7} + 802cbca: 4770 bx lr -0802cc60 : +0802cbcc : * @param c2 the second color to mix (usually the background) * @param mix The ratio of the colors. 0: full `c2`, 255: full `c1`, 127: half `c1` and half`c2` * @return the mixed color */ LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix) { - 802cc60: b480 push {r7} - 802cc62: b087 sub sp, #28 - 802cc64: af00 add r7, sp, #0 - 802cc66: 80b8 strh r0, [r7, #4] - 802cc68: 8039 strh r1, [r7, #0] - 802cc6a: 4613 mov r3, r2 - 802cc6c: 70fb strb r3, [r7, #3] + 802cbcc: b480 push {r7} + 802cbce: b087 sub sp, #28 + 802cbd0: af00 add r7, sp, #0 + 802cbd2: 80b8 strh r0, [r7, #4] + 802cbd4: 8039 strh r1, [r7, #0] + 802cbd6: 4613 mov r3, r2 + 802cbd8: 70fb strb r3, [r7, #3] lv_color_t ret; #if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0 /*Source: https://stackoverflow.com/a/50012418/1999969*/ mix = (mix + 4) >> 3; - 802cc6e: 78fb ldrb r3, [r7, #3] - 802cc70: 3304 adds r3, #4 - 802cc72: 10db asrs r3, r3, #3 - 802cc74: 70fb strb r3, [r7, #3] + 802cbda: 78fb ldrb r3, [r7, #3] + 802cbdc: 3304 adds r3, #4 + 802cbde: 10db asrs r3, r3, #3 + 802cbe0: 70fb strb r3, [r7, #3] uint32_t bg = (uint32_t)((uint32_t)c2.full | ((uint32_t)c2.full << 16)) & - 802cc76: 883b ldrh r3, [r7, #0] - 802cc78: 461a mov r2, r3 - 802cc7a: 883b ldrh r3, [r7, #0] - 802cc7c: 041b lsls r3, r3, #16 - 802cc7e: 431a orrs r2, r3 - 802cc80: 4b12 ldr r3, [pc, #72] ; (802cccc ) - 802cc82: 4013 ands r3, r2 - 802cc84: 617b str r3, [r7, #20] + 802cbe2: 883b ldrh r3, [r7, #0] + 802cbe4: 461a mov r2, r3 + 802cbe6: 883b ldrh r3, [r7, #0] + 802cbe8: 041b lsls r3, r3, #16 + 802cbea: 431a orrs r2, r3 + 802cbec: 4b12 ldr r3, [pc, #72] ; (802cc38 ) + 802cbee: 4013 ands r3, r2 + 802cbf0: 617b str r3, [r7, #20] 0x7E0F81F; /*0b00000111111000001111100000011111*/ uint32_t fg = (uint32_t)((uint32_t)c1.full | ((uint32_t)c1.full << 16)) & 0x7E0F81F; - 802cc86: 88bb ldrh r3, [r7, #4] - 802cc88: 461a mov r2, r3 - 802cc8a: 88bb ldrh r3, [r7, #4] - 802cc8c: 041b lsls r3, r3, #16 - 802cc8e: 431a orrs r2, r3 - 802cc90: 4b0e ldr r3, [pc, #56] ; (802cccc ) - 802cc92: 4013 ands r3, r2 - 802cc94: 613b str r3, [r7, #16] + 802cbf2: 88bb ldrh r3, [r7, #4] + 802cbf4: 461a mov r2, r3 + 802cbf6: 88bb ldrh r3, [r7, #4] + 802cbf8: 041b lsls r3, r3, #16 + 802cbfa: 431a orrs r2, r3 + 802cbfc: 4b0e ldr r3, [pc, #56] ; (802cc38 ) + 802cbfe: 4013 ands r3, r2 + 802cc00: 613b str r3, [r7, #16] uint32_t result = ((((fg - bg) * mix) >> 5) + bg) & 0x7E0F81F; - 802cc96: 693a ldr r2, [r7, #16] - 802cc98: 697b ldr r3, [r7, #20] - 802cc9a: 1ad3 subs r3, r2, r3 - 802cc9c: 78fa ldrb r2, [r7, #3] - 802cc9e: fb02 f303 mul.w r3, r2, r3 - 802cca2: 095a lsrs r2, r3, #5 - 802cca4: 697b ldr r3, [r7, #20] - 802cca6: 441a add r2, r3 - 802cca8: 4b08 ldr r3, [pc, #32] ; (802cccc ) - 802ccaa: 4013 ands r3, r2 - 802ccac: 60fb str r3, [r7, #12] + 802cc02: 693a ldr r2, [r7, #16] + 802cc04: 697b ldr r3, [r7, #20] + 802cc06: 1ad3 subs r3, r2, r3 + 802cc08: 78fa ldrb r2, [r7, #3] + 802cc0a: fb02 f303 mul.w r3, r2, r3 + 802cc0e: 095a lsrs r2, r3, #5 + 802cc10: 697b ldr r3, [r7, #20] + 802cc12: 441a add r2, r3 + 802cc14: 4b08 ldr r3, [pc, #32] ; (802cc38 ) + 802cc16: 4013 ands r3, r2 + 802cc18: 60fb str r3, [r7, #12] ret.full = (uint16_t)((result >> 16) | result); - 802ccae: 68fb ldr r3, [r7, #12] - 802ccb0: 0c1b lsrs r3, r3, #16 - 802ccb2: b29a uxth r2, r3 - 802ccb4: 68fb ldr r3, [r7, #12] - 802ccb6: b29b uxth r3, r3 - 802ccb8: 4313 orrs r3, r2 - 802ccba: b29b uxth r3, r3 - 802ccbc: 813b strh r3, [r7, #8] + 802cc1a: 68fb ldr r3, [r7, #12] + 802cc1c: 0c1b lsrs r3, r3, #16 + 802cc1e: b29a uxth r2, r3 + 802cc20: 68fb ldr r3, [r7, #12] + 802cc22: b29b uxth r3, r3 + 802cc24: 4313 orrs r3, r2 + 802cc26: b29b uxth r3, r3 + 802cc28: 813b strh r3, [r7, #8] #else /*LV_COLOR_DEPTH == 1*/ ret.full = mix > LV_OPA_50 ? c1.full : c2.full; #endif return ret; - 802ccbe: 893b ldrh r3, [r7, #8] + 802cc2a: 893b ldrh r3, [r7, #8] } - 802ccc0: 4618 mov r0, r3 - 802ccc2: 371c adds r7, #28 - 802ccc4: 46bd mov sp, r7 - 802ccc6: bc80 pop {r7} - 802ccc8: 4770 bx lr - 802ccca: bf00 nop - 802cccc: 07e0f81f .word 0x07e0f81f + 802cc2c: 4618 mov r0, r3 + 802cc2e: 371c adds r7, #28 + 802cc30: 46bd mov sp, r7 + 802cc32: bc80 pop {r7} + 802cc34: 4770 bx lr + 802cc36: bf00 nop + 802cc38: 07e0f81f .word 0x07e0f81f -0802ccd0 : +0802cc3c : * Get the brightness of a color * @param color a color * @return the brightness [0..255] */ static inline uint8_t lv_color_brightness(lv_color_t color) { - 802ccd0: b580 push {r7, lr} - 802ccd2: b084 sub sp, #16 - 802ccd4: af00 add r7, sp, #0 - 802ccd6: 80b8 strh r0, [r7, #4] + 802cc3c: b580 push {r7, lr} + 802cc3e: b084 sub sp, #16 + 802cc40: af00 add r7, sp, #0 + 802cc42: 80b8 strh r0, [r7, #4] lv_color32_t c32; c32.full = lv_color_to32(color); - 802ccd8: 88b8 ldrh r0, [r7, #4] - 802ccda: f7ff ff8b bl 802cbf4 - 802ccde: 4603 mov r3, r0 - 802cce0: 60bb str r3, [r7, #8] + 802cc44: 88b8 ldrh r0, [r7, #4] + 802cc46: f7ff ff8b bl 802cb60 + 802cc4a: 4603 mov r3, r0 + 802cc4c: 60bb str r3, [r7, #8] uint16_t bright = (uint16_t)(3u * LV_COLOR_GET_R32(c32) + LV_COLOR_GET_B32(c32) + 4u * LV_COLOR_GET_G32(c32)); - 802cce2: 7abb ldrb r3, [r7, #10] - 802cce4: b29b uxth r3, r3 - 802cce6: 461a mov r2, r3 - 802cce8: 0052 lsls r2, r2, #1 - 802ccea: 4413 add r3, r2 - 802ccec: b29a uxth r2, r3 - 802ccee: 7a7b ldrb r3, [r7, #9] - 802ccf0: b29b uxth r3, r3 - 802ccf2: 009b lsls r3, r3, #2 - 802ccf4: b29b uxth r3, r3 - 802ccf6: 4413 add r3, r2 - 802ccf8: b29a uxth r2, r3 - 802ccfa: 7a3b ldrb r3, [r7, #8] - 802ccfc: b29b uxth r3, r3 - 802ccfe: 4413 add r3, r2 - 802cd00: 81fb strh r3, [r7, #14] + 802cc4e: 7abb ldrb r3, [r7, #10] + 802cc50: b29b uxth r3, r3 + 802cc52: 461a mov r2, r3 + 802cc54: 0052 lsls r2, r2, #1 + 802cc56: 4413 add r3, r2 + 802cc58: b29a uxth r2, r3 + 802cc5a: 7a7b ldrb r3, [r7, #9] + 802cc5c: b29b uxth r3, r3 + 802cc5e: 009b lsls r3, r3, #2 + 802cc60: b29b uxth r3, r3 + 802cc62: 4413 add r3, r2 + 802cc64: b29a uxth r2, r3 + 802cc66: 7a3b ldrb r3, [r7, #8] + 802cc68: b29b uxth r3, r3 + 802cc6a: 4413 add r3, r2 + 802cc6c: 81fb strh r3, [r7, #14] return (uint8_t)(bright >> 3); - 802cd02: 89fb ldrh r3, [r7, #14] - 802cd04: 08db lsrs r3, r3, #3 - 802cd06: b29b uxth r3, r3 - 802cd08: b2db uxtb r3, r3 + 802cc6e: 89fb ldrh r3, [r7, #14] + 802cc70: 08db lsrs r3, r3, #3 + 802cc72: b29b uxth r3, r3 + 802cc74: b2db uxtb r3, r3 } - 802cd0a: 4618 mov r0, r3 - 802cd0c: 3710 adds r7, #16 - 802cd0e: 46bd mov sp, r7 - 802cd10: bd80 pop {r7, pc} + 802cc76: 4618 mov r0, r3 + 802cc78: 3710 adds r7, #16 + 802cc7a: 46bd mov sp, r7 + 802cc7c: bd80 pop {r7, pc} -0802cd12 : +0802cc7e : static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b) { - 802cd12: b490 push {r4, r7} - 802cd14: b082 sub sp, #8 - 802cd16: af00 add r7, sp, #0 - 802cd18: 4604 mov r4, r0 - 802cd1a: 4608 mov r0, r1 - 802cd1c: 4611 mov r1, r2 - 802cd1e: 4622 mov r2, r4 - 802cd20: 71fa strb r2, [r7, #7] - 802cd22: 4602 mov r2, r0 - 802cd24: 71ba strb r2, [r7, #6] - 802cd26: 460a mov r2, r1 - 802cd28: 717a strb r2, [r7, #5] + 802cc7e: b490 push {r4, r7} + 802cc80: b082 sub sp, #8 + 802cc82: af00 add r7, sp, #0 + 802cc84: 4604 mov r4, r0 + 802cc86: 4608 mov r0, r1 + 802cc88: 4611 mov r1, r2 + 802cc8a: 4622 mov r2, r4 + 802cc8c: 71fa strb r2, [r7, #7] + 802cc8e: 4602 mov r2, r0 + 802cc90: 71ba strb r2, [r7, #6] + 802cc92: 460a mov r2, r1 + 802cc94: 717a strb r2, [r7, #5] return _LV_COLOR_MAKE_TYPE_HELPER LV_COLOR_MAKE(r, g, b); - 802cd2a: 797a ldrb r2, [r7, #5] - 802cd2c: 08d2 lsrs r2, r2, #3 - 802cd2e: b2d2 uxtb r2, r2 - 802cd30: f002 021f and.w r2, r2, #31 - 802cd34: b2d0 uxtb r0, r2 - 802cd36: 79ba ldrb r2, [r7, #6] - 802cd38: 0892 lsrs r2, r2, #2 - 802cd3a: b2d2 uxtb r2, r2 - 802cd3c: f002 023f and.w r2, r2, #63 ; 0x3f - 802cd40: b2d1 uxtb r1, r2 - 802cd42: 79fa ldrb r2, [r7, #7] - 802cd44: 08d2 lsrs r2, r2, #3 - 802cd46: b2d2 uxtb r2, r2 - 802cd48: f002 021f and.w r2, r2, #31 - 802cd4c: b2d2 uxtb r2, r2 - 802cd4e: f360 0304 bfi r3, r0, #0, #5 - 802cd52: f361 134a bfi r3, r1, #5, #6 - 802cd56: f362 23cf bfi r3, r2, #11, #5 + 802cc96: 797a ldrb r2, [r7, #5] + 802cc98: 08d2 lsrs r2, r2, #3 + 802cc9a: b2d2 uxtb r2, r2 + 802cc9c: f002 021f and.w r2, r2, #31 + 802cca0: b2d0 uxtb r0, r2 + 802cca2: 79ba ldrb r2, [r7, #6] + 802cca4: 0892 lsrs r2, r2, #2 + 802cca6: b2d2 uxtb r2, r2 + 802cca8: f002 023f and.w r2, r2, #63 ; 0x3f + 802ccac: b2d1 uxtb r1, r2 + 802ccae: 79fa ldrb r2, [r7, #7] + 802ccb0: 08d2 lsrs r2, r2, #3 + 802ccb2: b2d2 uxtb r2, r2 + 802ccb4: f002 021f and.w r2, r2, #31 + 802ccb8: b2d2 uxtb r2, r2 + 802ccba: f360 0304 bfi r3, r0, #0, #5 + 802ccbe: f361 134a bfi r3, r1, #5, #6 + 802ccc2: f362 23cf bfi r3, r2, #11, #5 } - 802cd5a: 4618 mov r0, r3 - 802cd5c: 3708 adds r7, #8 - 802cd5e: 46bd mov sp, r7 - 802cd60: bc90 pop {r4, r7} - 802cd62: 4770 bx lr + 802ccc6: 4618 mov r0, r3 + 802ccc8: 3708 adds r7, #8 + 802ccca: 46bd mov sp, r7 + 802cccc: bc90 pop {r4, r7} + 802ccce: 4770 bx lr -0802cd64 : +0802ccd0 : static inline lv_color_t lv_color_white(void) { return lv_color_make(0xff, 0xff, 0xff); } static inline lv_color_t lv_color_black(void) { - 802cd64: b580 push {r7, lr} - 802cd66: af00 add r7, sp, #0 + 802ccd0: b580 push {r7, lr} + 802ccd2: af00 add r7, sp, #0 return lv_color_make(0x00, 0x0, 0x00); - 802cd68: 2200 movs r2, #0 - 802cd6a: 2100 movs r1, #0 - 802cd6c: 2000 movs r0, #0 - 802cd6e: f7ff ffd0 bl 802cd12 - 802cd72: 4603 mov r3, r0 + 802ccd4: 2200 movs r2, #0 + 802ccd6: 2100 movs r1, #0 + 802ccd8: 2000 movs r0, #0 + 802ccda: f7ff ffd0 bl 802cc7e + 802ccde: 4603 mov r3, r0 } - 802cd74: 4618 mov r0, r3 - 802cd76: bd80 pop {r7, pc} + 802cce0: 4618 mov r0, r3 + 802cce2: bd80 pop {r7, pc} -0802cd78 : +0802cce4 : /********************** * STATIC FUNCTIONS **********************/ static void lv_led_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802cd78: b590 push {r4, r7, lr} - 802cd7a: b085 sub sp, #20 - 802cd7c: af00 add r7, sp, #0 - 802cd7e: 6078 str r0, [r7, #4] - 802cd80: 6039 str r1, [r7, #0] + 802cce4: b590 push {r4, r7, lr} + 802cce6: b085 sub sp, #20 + 802cce8: af00 add r7, sp, #0 + 802ccea: 6078 str r0, [r7, #4] + 802ccec: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_led_t * led = (lv_led_t *)obj; - 802cd82: 683b ldr r3, [r7, #0] - 802cd84: 60fb str r3, [r7, #12] + 802ccee: 683b ldr r3, [r7, #0] + 802ccf0: 60fb str r3, [r7, #12] led->color = lv_theme_get_color_primary(obj); - 802cd86: 68fc ldr r4, [r7, #12] - 802cd88: 6838 ldr r0, [r7, #0] - 802cd8a: f7e4 f96c bl 8011066 - 802cd8e: 84a0 strh r0, [r4, #36] ; 0x24 + 802ccf2: 68fc ldr r4, [r7, #12] + 802ccf4: 6838 ldr r0, [r7, #0] + 802ccf6: f7e4 f96c bl 8010fd2 + 802ccfa: 84a0 strh r0, [r4, #36] ; 0x24 led->bright = LV_LED_BRIGHT_MAX; - 802cd90: 68fb ldr r3, [r7, #12] - 802cd92: 22ff movs r2, #255 ; 0xff - 802cd94: f883 2026 strb.w r2, [r3, #38] ; 0x26 + 802ccfc: 68fb ldr r3, [r7, #12] + 802ccfe: 22ff movs r2, #255 ; 0xff + 802cd00: f883 2026 strb.w r2, [r3, #38] ; 0x26 } - 802cd98: bf00 nop - 802cd9a: 3714 adds r7, #20 - 802cd9c: 46bd mov sp, r7 - 802cd9e: bd90 pop {r4, r7, pc} + 802cd04: bf00 nop + 802cd06: 3714 adds r7, #20 + 802cd08: 46bd mov sp, r7 + 802cd0a: bd90 pop {r4, r7, pc} -0802cda0 : +0802cd0c : static void lv_led_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 802cda0: b590 push {r4, r7, lr} - 802cda2: b0a7 sub sp, #156 ; 0x9c - 802cda4: af00 add r7, sp, #0 - 802cda6: 6078 str r0, [r7, #4] - 802cda8: 6039 str r1, [r7, #0] + 802cd0c: b590 push {r4, r7, lr} + 802cd0e: b0a7 sub sp, #156 ; 0x9c + 802cd10: af00 add r7, sp, #0 + 802cd12: 6078 str r0, [r7, #4] + 802cd14: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res; /* Call the ancestor's event handler */ lv_event_code_t code = lv_event_get_code(e); - 802cdaa: 6838 ldr r0, [r7, #0] - 802cdac: f7d5 fbfe bl 80025ac - 802cdb0: 4603 mov r3, r0 - 802cdb2: f887 3097 strb.w r3, [r7, #151] ; 0x97 + 802cd16: 6838 ldr r0, [r7, #0] + 802cd18: f7d5 fc12 bl 8002540 + 802cd1c: 4603 mov r3, r0 + 802cd1e: f887 3097 strb.w r3, [r7, #151] ; 0x97 if(code != LV_EVENT_DRAW_MAIN && code != LV_EVENT_DRAW_MAIN_END) { - 802cdb6: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 - 802cdba: 2b15 cmp r3, #21 - 802cdbc: d00f beq.n 802cdde - 802cdbe: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 - 802cdc2: 2b16 cmp r3, #22 - 802cdc4: d00b beq.n 802cdde + 802cd22: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 + 802cd26: 2b15 cmp r3, #21 + 802cd28: d00f beq.n 802cd4a + 802cd2a: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 + 802cd2e: 2b16 cmp r3, #22 + 802cd30: d00b beq.n 802cd4a res = lv_obj_event_base(MY_CLASS, e); - 802cdc6: 6839 ldr r1, [r7, #0] - 802cdc8: 4883 ldr r0, [pc, #524] ; (802cfd8 ) - 802cdca: f7d5 fb9b bl 8002504 - 802cdce: 4603 mov r3, r0 - 802cdd0: f887 3096 strb.w r3, [r7, #150] ; 0x96 + 802cd32: 6839 ldr r1, [r7, #0] + 802cd34: 4883 ldr r0, [pc, #524] ; (802cf44 ) + 802cd36: f7d5 fbaf bl 8002498 + 802cd3a: 4603 mov r3, r0 + 802cd3c: f887 3096 strb.w r3, [r7, #150] ; 0x96 if(res != LV_RES_OK) return; - 802cdd4: f897 3096 ldrb.w r3, [r7, #150] ; 0x96 - 802cdd8: 2b01 cmp r3, #1 - 802cdda: f040 80f9 bne.w 802cfd0 + 802cd40: f897 3096 ldrb.w r3, [r7, #150] ; 0x96 + 802cd44: 2b01 cmp r3, #1 + 802cd46: f040 80f9 bne.w 802cf3c } lv_obj_t * obj = lv_event_get_target(e); - 802cdde: 6838 ldr r0, [r7, #0] - 802cde0: f7d5 fbce bl 8002580 - 802cde4: f8c7 0090 str.w r0, [r7, #144] ; 0x90 + 802cd4a: 6838 ldr r0, [r7, #0] + 802cd4c: f7d5 fbe2 bl 8002514 + 802cd50: f8c7 0090 str.w r0, [r7, #144] ; 0x90 if(code == LV_EVENT_DRAW_MAIN) { - 802cde8: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 - 802cdec: 2b15 cmp r3, #21 - 802cdee: f040 80f0 bne.w 802cfd2 + 802cd54: f897 3097 ldrb.w r3, [r7, #151] ; 0x97 + 802cd58: 2b15 cmp r3, #21 + 802cd5a: f040 80f0 bne.w 802cf3e /*Make darker colors in a temporary style according to the brightness*/ lv_led_t * led = (lv_led_t *)obj; - 802cdf2: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 802cdf6: f8c7 308c str.w r3, [r7, #140] ; 0x8c + 802cd5e: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 802cd62: f8c7 308c str.w r3, [r7, #140] ; 0x8c lv_draw_rect_dsc_t rect_dsc; lv_draw_rect_dsc_init(&rect_dsc); - 802cdfa: f107 0308 add.w r3, r7, #8 - 802cdfe: 4618 mov r0, r3 - 802ce00: f7e8 fcf8 bl 80157f4 + 802cd66: f107 0308 add.w r3, r7, #8 + 802cd6a: 4618 mov r0, r3 + 802cd6c: f7e8 fcf8 bl 8015760 lv_obj_init_draw_rect_dsc(obj, LV_PART_MAIN, &rect_dsc); - 802ce04: f107 0308 add.w r3, r7, #8 - 802ce08: 461a mov r2, r3 - 802ce0a: 2100 movs r1, #0 - 802ce0c: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 802ce10: f7db fbd9 bl 80085c6 + 802cd70: f107 0308 add.w r3, r7, #8 + 802cd74: 461a mov r2, r3 + 802cd76: 2100 movs r1, #0 + 802cd78: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 802cd7c: f7db fbed bl 800855a /*Use the original colors brightness to modify color->led*/ rect_dsc.bg_grad.stops[0].color = lv_color_mix(led->color, lv_color_black(), - 802ce14: f7ff ffa6 bl 802cd64 - 802ce18: 4604 mov r4, r0 - 802ce1a: 89b8 ldrh r0, [r7, #12] - 802ce1c: f7ff ff58 bl 802ccd0 - 802ce20: 4603 mov r3, r0 - 802ce22: 461a mov r2, r3 - 802ce24: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 802ce28: 4621 mov r1, r4 - 802ce2a: 8c98 ldrh r0, [r3, #36] ; 0x24 - 802ce2c: f7ff ff18 bl 802cc60 - 802ce30: 81b8 strh r0, [r7, #12] + 802cd80: f7ff ffa6 bl 802ccd0 + 802cd84: 4604 mov r4, r0 + 802cd86: 89b8 ldrh r0, [r7, #12] + 802cd88: f7ff ff58 bl 802cc3c + 802cd8c: 4603 mov r3, r0 + 802cd8e: 461a mov r2, r3 + 802cd90: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 802cd94: 4621 mov r1, r4 + 802cd96: 8c98 ldrh r0, [r3, #36] ; 0x24 + 802cd98: f7ff ff18 bl 802cbcc + 802cd9c: 81b8 strh r0, [r7, #12] lv_color_brightness(rect_dsc.bg_grad.stops[0].color)); rect_dsc.bg_grad.stops[1].color = lv_color_mix(led->color, lv_color_black(), - 802ce32: f7ff ff97 bl 802cd64 - 802ce36: 4604 mov r4, r0 - 802ce38: 8a38 ldrh r0, [r7, #16] - 802ce3a: f7ff ff49 bl 802ccd0 - 802ce3e: 4603 mov r3, r0 - 802ce40: 461a mov r2, r3 - 802ce42: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 802ce46: 4621 mov r1, r4 - 802ce48: 8c98 ldrh r0, [r3, #36] ; 0x24 - 802ce4a: f7ff ff09 bl 802cc60 - 802ce4e: 8238 strh r0, [r7, #16] + 802cd9e: f7ff ff97 bl 802ccd0 + 802cda2: 4604 mov r4, r0 + 802cda4: 8a38 ldrh r0, [r7, #16] + 802cda6: f7ff ff49 bl 802cc3c + 802cdaa: 4603 mov r3, r0 + 802cdac: 461a mov r2, r3 + 802cdae: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 802cdb2: 4621 mov r1, r4 + 802cdb4: 8c98 ldrh r0, [r3, #36] ; 0x24 + 802cdb6: f7ff ff09 bl 802cbcc + 802cdba: 8238 strh r0, [r7, #16] lv_color_brightness(rect_dsc.bg_grad.stops[1].color)); rect_dsc.shadow_color = lv_color_mix(led->color, lv_color_black(), lv_color_brightness(rect_dsc.shadow_color)); - 802ce50: f7ff ff88 bl 802cd64 - 802ce54: 4604 mov r4, r0 - 802ce56: 8eb8 ldrh r0, [r7, #52] ; 0x34 - 802ce58: f7ff ff3a bl 802ccd0 - 802ce5c: 4603 mov r3, r0 - 802ce5e: 461a mov r2, r3 - 802ce60: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 802ce64: 4621 mov r1, r4 - 802ce66: 8c98 ldrh r0, [r3, #36] ; 0x24 - 802ce68: f7ff fefa bl 802cc60 - 802ce6c: 86b8 strh r0, [r7, #52] ; 0x34 + 802cdbc: f7ff ff88 bl 802ccd0 + 802cdc0: 4604 mov r4, r0 + 802cdc2: 8eb8 ldrh r0, [r7, #52] ; 0x34 + 802cdc4: f7ff ff3a bl 802cc3c + 802cdc8: 4603 mov r3, r0 + 802cdca: 461a mov r2, r3 + 802cdcc: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 802cdd0: 4621 mov r1, r4 + 802cdd2: 8c98 ldrh r0, [r3, #36] ; 0x24 + 802cdd4: f7ff fefa bl 802cbcc + 802cdd8: 86b8 strh r0, [r7, #52] ; 0x34 rect_dsc.border_color = lv_color_mix(led->color, lv_color_black(), lv_color_brightness(rect_dsc.border_color)); - 802ce6e: f7ff ff79 bl 802cd64 - 802ce72: 4604 mov r4, r0 - 802ce74: 8cf8 ldrh r0, [r7, #38] ; 0x26 - 802ce76: f7ff ff2b bl 802ccd0 - 802ce7a: 4603 mov r3, r0 - 802ce7c: 461a mov r2, r3 - 802ce7e: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 802ce82: 4621 mov r1, r4 - 802ce84: 8c98 ldrh r0, [r3, #36] ; 0x24 - 802ce86: f7ff feeb bl 802cc60 - 802ce8a: 84f8 strh r0, [r7, #38] ; 0x26 + 802cdda: f7ff ff79 bl 802ccd0 + 802cdde: 4604 mov r4, r0 + 802cde0: 8cf8 ldrh r0, [r7, #38] ; 0x26 + 802cde2: f7ff ff2b bl 802cc3c + 802cde6: 4603 mov r3, r0 + 802cde8: 461a mov r2, r3 + 802cdea: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 802cdee: 4621 mov r1, r4 + 802cdf0: 8c98 ldrh r0, [r3, #36] ; 0x24 + 802cdf2: f7ff feeb bl 802cbcc + 802cdf6: 84f8 strh r0, [r7, #38] ; 0x26 rect_dsc.outline_color = lv_color_mix(led->color, lv_color_black(), lv_color_brightness(rect_dsc.outline_color)); - 802ce8c: f7ff ff6a bl 802cd64 - 802ce90: 4604 mov r4, r0 - 802ce92: 8db8 ldrh r0, [r7, #44] ; 0x2c - 802ce94: f7ff ff1c bl 802ccd0 - 802ce98: 4603 mov r3, r0 - 802ce9a: 461a mov r2, r3 - 802ce9c: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 802cea0: 4621 mov r1, r4 - 802cea2: 8c98 ldrh r0, [r3, #36] ; 0x24 - 802cea4: f7ff fedc bl 802cc60 - 802cea8: 85b8 strh r0, [r7, #44] ; 0x2c + 802cdf8: f7ff ff6a bl 802ccd0 + 802cdfc: 4604 mov r4, r0 + 802cdfe: 8db8 ldrh r0, [r7, #44] ; 0x2c + 802ce00: f7ff ff1c bl 802cc3c + 802ce04: 4603 mov r3, r0 + 802ce06: 461a mov r2, r3 + 802ce08: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 802ce0c: 4621 mov r1, r4 + 802ce0e: 8c98 ldrh r0, [r3, #36] ; 0x24 + 802ce10: f7ff fedc bl 802cbcc + 802ce14: 85b8 strh r0, [r7, #44] ; 0x2c /*Mix. the color with black proportionally with brightness*/ rect_dsc.bg_grad.stops[0].color = lv_color_mix(rect_dsc.bg_grad.stops[0].color, lv_color_black(), led->bright); - 802ceaa: f7ff ff5b bl 802cd64 - 802ceae: 4601 mov r1, r0 - 802ceb0: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 802ceb4: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 - 802ceb8: 461a mov r2, r3 - 802ceba: 89b8 ldrh r0, [r7, #12] - 802cebc: f7ff fed0 bl 802cc60 - 802cec0: 81b8 strh r0, [r7, #12] + 802ce16: f7ff ff5b bl 802ccd0 + 802ce1a: 4601 mov r1, r0 + 802ce1c: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 802ce20: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 + 802ce24: 461a mov r2, r3 + 802ce26: 89b8 ldrh r0, [r7, #12] + 802ce28: f7ff fed0 bl 802cbcc + 802ce2c: 81b8 strh r0, [r7, #12] rect_dsc.bg_grad.stops[1].color = lv_color_mix(rect_dsc.bg_grad.stops[1].color, lv_color_black(), led->bright); - 802cec2: f7ff ff4f bl 802cd64 - 802cec6: 4601 mov r1, r0 - 802cec8: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 802cecc: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 - 802ced0: 461a mov r2, r3 - 802ced2: 8a38 ldrh r0, [r7, #16] - 802ced4: f7ff fec4 bl 802cc60 - 802ced8: 8238 strh r0, [r7, #16] + 802ce2e: f7ff ff4f bl 802ccd0 + 802ce32: 4601 mov r1, r0 + 802ce34: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 802ce38: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 + 802ce3c: 461a mov r2, r3 + 802ce3e: 8a38 ldrh r0, [r7, #16] + 802ce40: f7ff fec4 bl 802cbcc + 802ce44: 8238 strh r0, [r7, #16] rect_dsc.border_color = lv_color_mix(rect_dsc.border_color, lv_color_black(), led->bright); - 802ceda: f7ff ff43 bl 802cd64 - 802cede: 4601 mov r1, r0 - 802cee0: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 802cee4: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 - 802cee8: 461a mov r2, r3 - 802ceea: 8cf8 ldrh r0, [r7, #38] ; 0x26 - 802ceec: f7ff feb8 bl 802cc60 - 802cef0: 84f8 strh r0, [r7, #38] ; 0x26 + 802ce46: f7ff ff43 bl 802ccd0 + 802ce4a: 4601 mov r1, r0 + 802ce4c: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 802ce50: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 + 802ce54: 461a mov r2, r3 + 802ce56: 8cf8 ldrh r0, [r7, #38] ; 0x26 + 802ce58: f7ff feb8 bl 802cbcc + 802ce5c: 84f8 strh r0, [r7, #38] ; 0x26 rect_dsc.shadow_color = lv_color_mix(rect_dsc.shadow_color, lv_color_black(), led->bright); - 802cef2: f7ff ff37 bl 802cd64 - 802cef6: 4601 mov r1, r0 - 802cef8: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 802cefc: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 - 802cf00: 461a mov r2, r3 - 802cf02: 8eb8 ldrh r0, [r7, #52] ; 0x34 - 802cf04: f7ff feac bl 802cc60 - 802cf08: 86b8 strh r0, [r7, #52] ; 0x34 + 802ce5e: f7ff ff37 bl 802ccd0 + 802ce62: 4601 mov r1, r0 + 802ce64: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 802ce68: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 + 802ce6c: 461a mov r2, r3 + 802ce6e: 8eb8 ldrh r0, [r7, #52] ; 0x34 + 802ce70: f7ff feac bl 802cbcc + 802ce74: 86b8 strh r0, [r7, #52] ; 0x34 rect_dsc.outline_color = lv_color_mix(rect_dsc.outline_color, lv_color_black(), led->bright); - 802cf0a: f7ff ff2b bl 802cd64 - 802cf0e: 4601 mov r1, r0 - 802cf10: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 802cf14: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 - 802cf18: 461a mov r2, r3 - 802cf1a: 8db8 ldrh r0, [r7, #44] ; 0x2c - 802cf1c: f7ff fea0 bl 802cc60 - 802cf20: 85b8 strh r0, [r7, #44] ; 0x2c + 802ce76: f7ff ff2b bl 802ccd0 + 802ce7a: 4601 mov r1, r0 + 802ce7c: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 802ce80: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 + 802ce84: 461a mov r2, r3 + 802ce86: 8db8 ldrh r0, [r7, #44] ; 0x2c + 802ce88: f7ff fea0 bl 802cbcc + 802ce8c: 85b8 strh r0, [r7, #44] ; 0x2c /*Set the current shadow width according to brightness proportionally between LV_LED_BRIGHT_OFF * and LV_LED_BRIGHT_ON*/ rect_dsc.shadow_width = ((led->bright - LV_LED_BRIGHT_MIN) * rect_dsc.shadow_width) / - 802cf22: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 802cf26: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 - 802cf2a: 3b50 subs r3, #80 ; 0x50 - 802cf2c: f9b7 2036 ldrsh.w r2, [r7, #54] ; 0x36 - 802cf30: fb02 f303 mul.w r3, r2, r3 - 802cf34: 4a29 ldr r2, [pc, #164] ; (802cfdc ) - 802cf36: fb82 1203 smull r1, r2, r2, r3 - 802cf3a: 1192 asrs r2, r2, #6 - 802cf3c: 17db asrs r3, r3, #31 - 802cf3e: 1ad3 subs r3, r2, r3 - 802cf40: b21b sxth r3, r3 - 802cf42: 86fb strh r3, [r7, #54] ; 0x36 + 802ce8e: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 802ce92: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 + 802ce96: 3b50 subs r3, #80 ; 0x50 + 802ce98: f9b7 2036 ldrsh.w r2, [r7, #54] ; 0x36 + 802ce9c: fb02 f303 mul.w r3, r2, r3 + 802cea0: 4a29 ldr r2, [pc, #164] ; (802cf48 ) + 802cea2: fb82 1203 smull r1, r2, r2, r3 + 802cea6: 1192 asrs r2, r2, #6 + 802cea8: 17db asrs r3, r3, #31 + 802ceaa: 1ad3 subs r3, r2, r3 + 802ceac: b21b sxth r3, r3 + 802ceae: 86fb strh r3, [r7, #54] ; 0x36 (LV_LED_BRIGHT_MAX - LV_LED_BRIGHT_MIN); rect_dsc.shadow_spread = ((led->bright - LV_LED_BRIGHT_MIN) * rect_dsc.shadow_spread) / - 802cf44: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 802cf48: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 - 802cf4c: 3b50 subs r3, #80 ; 0x50 - 802cf4e: f9b7 203c ldrsh.w r2, [r7, #60] ; 0x3c - 802cf52: fb02 f303 mul.w r3, r2, r3 - 802cf56: 4a21 ldr r2, [pc, #132] ; (802cfdc ) - 802cf58: fb82 1203 smull r1, r2, r2, r3 - 802cf5c: 1192 asrs r2, r2, #6 - 802cf5e: 17db asrs r3, r3, #31 - 802cf60: 1ad3 subs r3, r2, r3 - 802cf62: b21b sxth r3, r3 - 802cf64: 87bb strh r3, [r7, #60] ; 0x3c + 802ceb0: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 802ceb4: f893 3026 ldrb.w r3, [r3, #38] ; 0x26 + 802ceb8: 3b50 subs r3, #80 ; 0x50 + 802ceba: f9b7 203c ldrsh.w r2, [r7, #60] ; 0x3c + 802cebe: fb02 f303 mul.w r3, r2, r3 + 802cec2: 4a21 ldr r2, [pc, #132] ; (802cf48 ) + 802cec4: fb82 1203 smull r1, r2, r2, r3 + 802cec8: 1192 asrs r2, r2, #6 + 802ceca: 17db asrs r3, r3, #31 + 802cecc: 1ad3 subs r3, r2, r3 + 802cece: b21b sxth r3, r3 + 802ced0: 87bb strh r3, [r7, #60] ; 0x3c (LV_LED_BRIGHT_MAX - LV_LED_BRIGHT_MIN); lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 802cf66: 6838 ldr r0, [r7, #0] - 802cf68: f7d5 fc20 bl 80027ac - 802cf6c: f8c7 0088 str.w r0, [r7, #136] ; 0x88 + 802ced2: 6838 ldr r0, [r7, #0] + 802ced4: f7d5 fc34 bl 8002740 + 802ced8: f8c7 0088 str.w r0, [r7, #136] ; 0x88 lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 802cf70: f107 0340 add.w r3, r7, #64 ; 0x40 - 802cf74: f8d7 1088 ldr.w r1, [r7, #136] ; 0x88 - 802cf78: 4618 mov r0, r3 - 802cf7a: f7db ff78 bl 8008e6e + 802cedc: f107 0340 add.w r3, r7, #64 ; 0x40 + 802cee0: f8d7 1088 ldr.w r1, [r7, #136] ; 0x88 + 802cee4: 4618 mov r0, r3 + 802cee6: f7db ff8c bl 8008e02 part_draw_dsc.draw_area = &obj->coords; - 802cf7e: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 802cf82: 3314 adds r3, #20 - 802cf84: 64fb str r3, [r7, #76] ; 0x4c + 802ceea: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 802ceee: 3314 adds r3, #20 + 802cef0: 64fb str r3, [r7, #76] ; 0x4c part_draw_dsc.class_p = MY_CLASS; - 802cf86: 4b14 ldr r3, [pc, #80] ; (802cfd8 ) - 802cf88: 647b str r3, [r7, #68] ; 0x44 + 802cef2: 4b14 ldr r3, [pc, #80] ; (802cf44 ) + 802cef4: 647b str r3, [r7, #68] ; 0x44 part_draw_dsc.type = LV_LED_DRAW_PART_RECTANGLE; - 802cf8a: 2300 movs r3, #0 - 802cf8c: 64bb str r3, [r7, #72] ; 0x48 + 802cef6: 2300 movs r3, #0 + 802cef8: 64bb str r3, [r7, #72] ; 0x48 part_draw_dsc.rect_dsc = &rect_dsc; - 802cf8e: f107 0308 add.w r3, r7, #8 - 802cf92: 653b str r3, [r7, #80] ; 0x50 + 802cefa: f107 0308 add.w r3, r7, #8 + 802cefe: 653b str r3, [r7, #80] ; 0x50 part_draw_dsc.part = LV_PART_MAIN; - 802cf94: 2300 movs r3, #0 - 802cf96: 677b str r3, [r7, #116] ; 0x74 + 802cf00: 2300 movs r3, #0 + 802cf02: 677b str r3, [r7, #116] ; 0x74 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 802cf98: f107 0340 add.w r3, r7, #64 ; 0x40 - 802cf9c: 461a mov r2, r3 - 802cf9e: 211a movs r1, #26 - 802cfa0: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 802cfa4: f7d5 fa6c bl 8002480 + 802cf04: f107 0340 add.w r3, r7, #64 ; 0x40 + 802cf08: 461a mov r2, r3 + 802cf0a: 211a movs r1, #26 + 802cf0c: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 802cf10: f7d5 fa80 bl 8002414 lv_draw_rect(draw_ctx, &rect_dsc, &obj->coords); - 802cfa8: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 802cfac: f103 0214 add.w r2, r3, #20 - 802cfb0: f107 0308 add.w r3, r7, #8 - 802cfb4: 4619 mov r1, r3 - 802cfb6: f8d7 0088 ldr.w r0, [r7, #136] ; 0x88 - 802cfba: f7e8 fc5d bl 8015878 + 802cf14: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 802cf18: f103 0214 add.w r2, r3, #20 + 802cf1c: f107 0308 add.w r3, r7, #8 + 802cf20: 4619 mov r1, r3 + 802cf22: f8d7 0088 ldr.w r0, [r7, #136] ; 0x88 + 802cf26: f7e8 fc5d bl 80157e4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 802cfbe: f107 0340 add.w r3, r7, #64 ; 0x40 - 802cfc2: 461a mov r2, r3 - 802cfc4: 211b movs r1, #27 - 802cfc6: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 802cfca: f7d5 fa59 bl 8002480 - 802cfce: e000 b.n 802cfd2 + 802cf2a: f107 0340 add.w r3, r7, #64 ; 0x40 + 802cf2e: 461a mov r2, r3 + 802cf30: 211b movs r1, #27 + 802cf32: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 802cf36: f7d5 fa6d bl 8002414 + 802cf3a: e000 b.n 802cf3e if(res != LV_RES_OK) return; - 802cfd0: bf00 nop + 802cf3c: bf00 nop } } - 802cfd2: 379c adds r7, #156 ; 0x9c - 802cfd4: 46bd mov sp, r7 - 802cfd6: bd90 pop {r4, r7, pc} - 802cfd8: 0806cfc4 .word 0x0806cfc4 - 802cfdc: 5d9f7391 .word 0x5d9f7391 + 802cf3e: 379c adds r7, #156 ; 0x9c + 802cf40: 46bd mov sp, r7 + 802cf42: bd90 pop {r4, r7, pc} + 802cf44: 0806cf1c .word 0x0806cf1c + 802cf48: 5d9f7391 .word 0x5d9f7391 -0802cfe0 : +0802cf4c : /*===================== * Setter functions *====================*/ void lv_menu_set_page(lv_obj_t * obj, lv_obj_t * page) { - 802cfe0: b580 push {r7, lr} - 802cfe2: b086 sub sp, #24 - 802cfe4: af00 add r7, sp, #0 - 802cfe6: 6078 str r0, [r7, #4] - 802cfe8: 6039 str r1, [r7, #0] + 802cf4c: b580 push {r7, lr} + 802cf4e: b086 sub sp, #24 + 802cf50: af00 add r7, sp, #0 + 802cf52: 6078 str r0, [r7, #4] + 802cf54: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_menu_t * menu = (lv_menu_t *)obj; - 802cfea: 687b ldr r3, [r7, #4] - 802cfec: 617b str r3, [r7, #20] + 802cf56: 687b ldr r3, [r7, #4] + 802cf58: 617b str r3, [r7, #20] /* Hide previous page */ if(menu->main_page != NULL) { - 802cfee: 697b ldr r3, [r7, #20] - 802cff0: 6adb ldr r3, [r3, #44] ; 0x2c - 802cff2: 2b00 cmp r3, #0 - 802cff4: d007 beq.n 802d006 + 802cf5a: 697b ldr r3, [r7, #20] + 802cf5c: 6adb ldr r3, [r3, #44] ; 0x2c + 802cf5e: 2b00 cmp r3, #0 + 802cf60: d007 beq.n 802cf72 lv_obj_set_parent(menu->main_page, menu->storage); - 802cff6: 697b ldr r3, [r7, #20] - 802cff8: 6ada ldr r2, [r3, #44] ; 0x2c - 802cffa: 697b ldr r3, [r7, #20] - 802cffc: 6a5b ldr r3, [r3, #36] ; 0x24 - 802cffe: 4619 mov r1, r3 - 802d000: 4610 mov r0, r2 - 802d002: f7e2 fa15 bl 800f430 + 802cf62: 697b ldr r3, [r7, #20] + 802cf64: 6ada ldr r2, [r3, #44] ; 0x2c + 802cf66: 697b ldr r3, [r7, #20] + 802cf68: 6a5b ldr r3, [r3, #36] ; 0x24 + 802cf6a: 4619 mov r1, r3 + 802cf6c: 4610 mov r0, r2 + 802cf6e: f7e2 fa15 bl 800f39c } if(page != NULL) { - 802d006: 683b ldr r3, [r7, #0] - 802d008: 2b00 cmp r3, #0 - 802d00a: d018 beq.n 802d03e + 802cf72: 683b ldr r3, [r7, #0] + 802cf74: 2b00 cmp r3, #0 + 802cf76: d018 beq.n 802cfaa /* Add a new node */ lv_ll_t * history_ll = &(menu->history_ll); - 802d00c: 697b ldr r3, [r7, #20] - 802d00e: 3354 adds r3, #84 ; 0x54 - 802d010: 613b str r3, [r7, #16] + 802cf78: 697b ldr r3, [r7, #20] + 802cf7a: 3354 adds r3, #84 ; 0x54 + 802cf7c: 613b str r3, [r7, #16] lv_menu_history_t * new_node = _lv_ll_ins_head(history_ll); - 802d012: 6938 ldr r0, [r7, #16] - 802d014: f005 f8bc bl 8032190 <_lv_ll_ins_head> - 802d018: 60f8 str r0, [r7, #12] + 802cf7e: 6938 ldr r0, [r7, #16] + 802cf80: f005 f8bc bl 80320fc <_lv_ll_ins_head> + 802cf84: 60f8 str r0, [r7, #12] new_node->page = page; - 802d01a: 68fb ldr r3, [r7, #12] - 802d01c: 683a ldr r2, [r7, #0] - 802d01e: 601a str r2, [r3, #0] + 802cf86: 68fb ldr r3, [r7, #12] + 802cf88: 683a ldr r2, [r7, #0] + 802cf8a: 601a str r2, [r3, #0] menu->cur_depth++; - 802d020: 697b ldr r3, [r7, #20] - 802d022: f893 3060 ldrb.w r3, [r3, #96] ; 0x60 - 802d026: 3301 adds r3, #1 - 802d028: b2da uxtb r2, r3 - 802d02a: 697b ldr r3, [r7, #20] - 802d02c: f883 2060 strb.w r2, [r3, #96] ; 0x60 + 802cf8c: 697b ldr r3, [r7, #20] + 802cf8e: f893 3060 ldrb.w r3, [r3, #96] ; 0x60 + 802cf92: 3301 adds r3, #1 + 802cf94: b2da uxtb r2, r3 + 802cf96: 697b ldr r3, [r7, #20] + 802cf98: f883 2060 strb.w r2, [r3, #96] ; 0x60 /* Place page in main */ lv_obj_set_parent(page, menu->main); - 802d030: 697b ldr r3, [r7, #20] - 802d032: 6a9b ldr r3, [r3, #40] ; 0x28 - 802d034: 4619 mov r1, r3 - 802d036: 6838 ldr r0, [r7, #0] - 802d038: f7e2 f9fa bl 800f430 - 802d03c: e002 b.n 802d044 + 802cf9c: 697b ldr r3, [r7, #20] + 802cf9e: 6a9b ldr r3, [r3, #40] ; 0x28 + 802cfa0: 4619 mov r1, r3 + 802cfa2: 6838 ldr r0, [r7, #0] + 802cfa4: f7e2 f9fa bl 800f39c + 802cfa8: e002 b.n 802cfb0 } else { /* Empty page, clear history */ lv_menu_clear_history(obj); - 802d03e: 6878 ldr r0, [r7, #4] - 802d040: f000 f8ce bl 802d1e0 + 802cfaa: 6878 ldr r0, [r7, #4] + 802cfac: f000 f8ce bl 802d14c } menu->main_page = page; - 802d044: 697b ldr r3, [r7, #20] - 802d046: 683a ldr r2, [r7, #0] - 802d048: 62da str r2, [r3, #44] ; 0x2c + 802cfb0: 697b ldr r3, [r7, #20] + 802cfb2: 683a ldr r2, [r7, #0] + 802cfb4: 62da str r2, [r3, #44] ; 0x2c /* If there is a selected tab, update checked state */ if(menu->selected_tab != NULL) { - 802d04a: 697b ldr r3, [r7, #20] - 802d04c: 6d1b ldr r3, [r3, #80] ; 0x50 - 802d04e: 2b00 cmp r3, #0 - 802d050: d010 beq.n 802d074 + 802cfb6: 697b ldr r3, [r7, #20] + 802cfb8: 6d1b ldr r3, [r3, #80] ; 0x50 + 802cfba: 2b00 cmp r3, #0 + 802cfbc: d010 beq.n 802cfe0 if(menu->sidebar_page != NULL) { - 802d052: 697b ldr r3, [r7, #20] - 802d054: 6c1b ldr r3, [r3, #64] ; 0x40 - 802d056: 2b00 cmp r3, #0 - 802d058: d006 beq.n 802d068 + 802cfbe: 697b ldr r3, [r7, #20] + 802cfc0: 6c1b ldr r3, [r3, #64] ; 0x40 + 802cfc2: 2b00 cmp r3, #0 + 802cfc4: d006 beq.n 802cfd4 lv_obj_add_state(menu->selected_tab, LV_STATE_CHECKED); - 802d05a: 697b ldr r3, [r7, #20] - 802d05c: 6d1b ldr r3, [r3, #80] ; 0x50 - 802d05e: 2101 movs r1, #1 - 802d060: 4618 mov r0, r3 - 802d062: f7d9 fb57 bl 8006714 - 802d066: e005 b.n 802d074 + 802cfc6: 697b ldr r3, [r7, #20] + 802cfc8: 6d1b ldr r3, [r3, #80] ; 0x50 + 802cfca: 2101 movs r1, #1 + 802cfcc: 4618 mov r0, r3 + 802cfce: f7d9 fb6b bl 80066a8 + 802cfd2: e005 b.n 802cfe0 } else { lv_obj_clear_state(menu->selected_tab, LV_STATE_CHECKED); - 802d068: 697b ldr r3, [r7, #20] - 802d06a: 6d1b ldr r3, [r3, #80] ; 0x50 - 802d06c: 2101 movs r1, #1 - 802d06e: 4618 mov r0, r3 - 802d070: f7d9 fb69 bl 8006746 + 802cfd4: 697b ldr r3, [r7, #20] + 802cfd6: 6d1b ldr r3, [r3, #80] ; 0x50 + 802cfd8: 2101 movs r1, #1 + 802cfda: 4618 mov r0, r3 + 802cfdc: f7d9 fb7d bl 80066da } } /* Back btn management */ if(menu->sidebar_page != NULL) { - 802d074: 697b ldr r3, [r7, #20] - 802d076: 6c1b ldr r3, [r3, #64] ; 0x40 - 802d078: 2b00 cmp r3, #0 - 802d07a: d047 beq.n 802d10c + 802cfe0: 697b ldr r3, [r7, #20] + 802cfe2: 6c1b ldr r3, [r3, #64] ; 0x40 + 802cfe4: 2b00 cmp r3, #0 + 802cfe6: d047 beq.n 802d078 /* With sidebar enabled */ if(menu->sidebar_generated) { - 802d07c: 697b ldr r3, [r7, #20] - 802d07e: f893 3062 ldrb.w r3, [r3, #98] ; 0x62 - 802d082: f003 0301 and.w r3, r3, #1 - 802d086: b2db uxtb r3, r3 - 802d088: 2b00 cmp r3, #0 - 802d08a: d020 beq.n 802d0ce + 802cfe8: 697b ldr r3, [r7, #20] + 802cfea: f893 3062 ldrb.w r3, [r3, #98] ; 0x62 + 802cfee: f003 0301 and.w r3, r3, #1 + 802cff2: b2db uxtb r3, r3 + 802cff4: 2b00 cmp r3, #0 + 802cff6: d020 beq.n 802d03a if(menu->mode_root_back_btn == LV_MENU_ROOT_BACK_BTN_ENABLED) { - 802d08c: 697b ldr r3, [r7, #20] - 802d08e: f893 3062 ldrb.w r3, [r3, #98] ; 0x62 - 802d092: f003 0308 and.w r3, r3, #8 - 802d096: b2db uxtb r3, r3 - 802d098: 2b00 cmp r3, #0 - 802d09a: d00c beq.n 802d0b6 + 802cff8: 697b ldr r3, [r7, #20] + 802cffa: f893 3062 ldrb.w r3, [r3, #98] ; 0x62 + 802cffe: f003 0308 and.w r3, r3, #8 + 802d002: b2db uxtb r3, r3 + 802d004: 2b00 cmp r3, #0 + 802d006: d00c beq.n 802d022 /* Root back btn is always shown if enabled*/ lv_obj_clear_flag(menu->sidebar_header_back_btn, LV_OBJ_FLAG_HIDDEN); - 802d09c: 697b ldr r3, [r7, #20] - 802d09e: 6c9b ldr r3, [r3, #72] ; 0x48 - 802d0a0: 2101 movs r1, #1 - 802d0a2: 4618 mov r0, r3 - 802d0a4: f7d9 fadc bl 8006660 + 802d008: 697b ldr r3, [r7, #20] + 802d00a: 6c9b ldr r3, [r3, #72] ; 0x48 + 802d00c: 2101 movs r1, #1 + 802d00e: 4618 mov r0, r3 + 802d010: f7d9 faf0 bl 80065f4 lv_obj_add_flag(menu->sidebar_header_back_btn, LV_OBJ_FLAG_CLICKABLE); - 802d0a8: 697b ldr r3, [r7, #20] - 802d0aa: 6c9b ldr r3, [r3, #72] ; 0x48 - 802d0ac: 2102 movs r1, #2 - 802d0ae: 4618 mov r0, r3 - 802d0b0: f7d9 fa82 bl 80065b8 - 802d0b4: e00b b.n 802d0ce + 802d014: 697b ldr r3, [r7, #20] + 802d016: 6c9b ldr r3, [r3, #72] ; 0x48 + 802d018: 2102 movs r1, #2 + 802d01a: 4618 mov r0, r3 + 802d01c: f7d9 fa96 bl 800654c + 802d020: e00b b.n 802d03a } else { lv_obj_add_flag(menu->sidebar_header_back_btn, LV_OBJ_FLAG_HIDDEN); - 802d0b6: 697b ldr r3, [r7, #20] - 802d0b8: 6c9b ldr r3, [r3, #72] ; 0x48 - 802d0ba: 2101 movs r1, #1 - 802d0bc: 4618 mov r0, r3 - 802d0be: f7d9 fa7b bl 80065b8 + 802d022: 697b ldr r3, [r7, #20] + 802d024: 6c9b ldr r3, [r3, #72] ; 0x48 + 802d026: 2101 movs r1, #1 + 802d028: 4618 mov r0, r3 + 802d02a: f7d9 fa8f bl 800654c lv_obj_clear_flag(menu->sidebar_header_back_btn, LV_OBJ_FLAG_CLICKABLE); - 802d0c2: 697b ldr r3, [r7, #20] - 802d0c4: 6c9b ldr r3, [r3, #72] ; 0x48 - 802d0c6: 2102 movs r1, #2 - 802d0c8: 4618 mov r0, r3 - 802d0ca: f7d9 fac9 bl 8006660 + 802d02e: 697b ldr r3, [r7, #20] + 802d030: 6c9b ldr r3, [r3, #72] ; 0x48 + 802d032: 2102 movs r1, #2 + 802d034: 4618 mov r0, r3 + 802d036: f7d9 fadd bl 80065f4 } } if(menu->cur_depth >= 2) { - 802d0ce: 697b ldr r3, [r7, #20] - 802d0d0: f893 3060 ldrb.w r3, [r3, #96] ; 0x60 - 802d0d4: 2b01 cmp r3, #1 - 802d0d6: d90c bls.n 802d0f2 + 802d03a: 697b ldr r3, [r7, #20] + 802d03c: f893 3060 ldrb.w r3, [r3, #96] ; 0x60 + 802d040: 2b01 cmp r3, #1 + 802d042: d90c bls.n 802d05e lv_obj_clear_flag(menu->main_header_back_btn, LV_OBJ_FLAG_HIDDEN); - 802d0d8: 697b ldr r3, [r7, #20] - 802d0da: 6b5b ldr r3, [r3, #52] ; 0x34 - 802d0dc: 2101 movs r1, #1 - 802d0de: 4618 mov r0, r3 - 802d0e0: f7d9 fabe bl 8006660 + 802d044: 697b ldr r3, [r7, #20] + 802d046: 6b5b ldr r3, [r3, #52] ; 0x34 + 802d048: 2101 movs r1, #1 + 802d04a: 4618 mov r0, r3 + 802d04c: f7d9 fad2 bl 80065f4 lv_obj_add_flag(menu->main_header_back_btn, LV_OBJ_FLAG_CLICKABLE); - 802d0e4: 697b ldr r3, [r7, #20] - 802d0e6: 6b5b ldr r3, [r3, #52] ; 0x34 - 802d0e8: 2102 movs r1, #2 - 802d0ea: 4618 mov r0, r3 - 802d0ec: f7d9 fa64 bl 80065b8 - 802d0f0: e032 b.n 802d158 + 802d050: 697b ldr r3, [r7, #20] + 802d052: 6b5b ldr r3, [r3, #52] ; 0x34 + 802d054: 2102 movs r1, #2 + 802d056: 4618 mov r0, r3 + 802d058: f7d9 fa78 bl 800654c + 802d05c: e032 b.n 802d0c4 } else { lv_obj_add_flag(menu->main_header_back_btn, LV_OBJ_FLAG_HIDDEN); - 802d0f2: 697b ldr r3, [r7, #20] - 802d0f4: 6b5b ldr r3, [r3, #52] ; 0x34 - 802d0f6: 2101 movs r1, #1 - 802d0f8: 4618 mov r0, r3 - 802d0fa: f7d9 fa5d bl 80065b8 + 802d05e: 697b ldr r3, [r7, #20] + 802d060: 6b5b ldr r3, [r3, #52] ; 0x34 + 802d062: 2101 movs r1, #1 + 802d064: 4618 mov r0, r3 + 802d066: f7d9 fa71 bl 800654c lv_obj_clear_flag(menu->main_header_back_btn, LV_OBJ_FLAG_CLICKABLE); - 802d0fe: 697b ldr r3, [r7, #20] - 802d100: 6b5b ldr r3, [r3, #52] ; 0x34 - 802d102: 2102 movs r1, #2 - 802d104: 4618 mov r0, r3 - 802d106: f7d9 faab bl 8006660 - 802d10a: e025 b.n 802d158 + 802d06a: 697b ldr r3, [r7, #20] + 802d06c: 6b5b ldr r3, [r3, #52] ; 0x34 + 802d06e: 2102 movs r1, #2 + 802d070: 4618 mov r0, r3 + 802d072: f7d9 fabf bl 80065f4 + 802d076: e025 b.n 802d0c4 } } else { /* With sidebar disabled */ if(menu->cur_depth >= 2 || menu->mode_root_back_btn == LV_MENU_ROOT_BACK_BTN_ENABLED) { - 802d10c: 697b ldr r3, [r7, #20] - 802d10e: f893 3060 ldrb.w r3, [r3, #96] ; 0x60 - 802d112: 2b01 cmp r3, #1 - 802d114: d807 bhi.n 802d126 - 802d116: 697b ldr r3, [r7, #20] - 802d118: f893 3062 ldrb.w r3, [r3, #98] ; 0x62 - 802d11c: f003 0308 and.w r3, r3, #8 - 802d120: b2db uxtb r3, r3 - 802d122: 2b00 cmp r3, #0 - 802d124: d00c beq.n 802d140 + 802d078: 697b ldr r3, [r7, #20] + 802d07a: f893 3060 ldrb.w r3, [r3, #96] ; 0x60 + 802d07e: 2b01 cmp r3, #1 + 802d080: d807 bhi.n 802d092 + 802d082: 697b ldr r3, [r7, #20] + 802d084: f893 3062 ldrb.w r3, [r3, #98] ; 0x62 + 802d088: f003 0308 and.w r3, r3, #8 + 802d08c: b2db uxtb r3, r3 + 802d08e: 2b00 cmp r3, #0 + 802d090: d00c beq.n 802d0ac lv_obj_clear_flag(menu->main_header_back_btn, LV_OBJ_FLAG_HIDDEN); - 802d126: 697b ldr r3, [r7, #20] - 802d128: 6b5b ldr r3, [r3, #52] ; 0x34 - 802d12a: 2101 movs r1, #1 - 802d12c: 4618 mov r0, r3 - 802d12e: f7d9 fa97 bl 8006660 + 802d092: 697b ldr r3, [r7, #20] + 802d094: 6b5b ldr r3, [r3, #52] ; 0x34 + 802d096: 2101 movs r1, #1 + 802d098: 4618 mov r0, r3 + 802d09a: f7d9 faab bl 80065f4 lv_obj_add_flag(menu->main_header_back_btn, LV_OBJ_FLAG_CLICKABLE); - 802d132: 697b ldr r3, [r7, #20] - 802d134: 6b5b ldr r3, [r3, #52] ; 0x34 - 802d136: 2102 movs r1, #2 - 802d138: 4618 mov r0, r3 - 802d13a: f7d9 fa3d bl 80065b8 - 802d13e: e00b b.n 802d158 + 802d09e: 697b ldr r3, [r7, #20] + 802d0a0: 6b5b ldr r3, [r3, #52] ; 0x34 + 802d0a2: 2102 movs r1, #2 + 802d0a4: 4618 mov r0, r3 + 802d0a6: f7d9 fa51 bl 800654c + 802d0aa: e00b b.n 802d0c4 } else { lv_obj_add_flag(menu->main_header_back_btn, LV_OBJ_FLAG_HIDDEN); - 802d140: 697b ldr r3, [r7, #20] - 802d142: 6b5b ldr r3, [r3, #52] ; 0x34 - 802d144: 2101 movs r1, #1 - 802d146: 4618 mov r0, r3 - 802d148: f7d9 fa36 bl 80065b8 + 802d0ac: 697b ldr r3, [r7, #20] + 802d0ae: 6b5b ldr r3, [r3, #52] ; 0x34 + 802d0b0: 2101 movs r1, #1 + 802d0b2: 4618 mov r0, r3 + 802d0b4: f7d9 fa4a bl 800654c lv_obj_clear_flag(menu->main_header_back_btn, LV_OBJ_FLAG_CLICKABLE); - 802d14c: 697b ldr r3, [r7, #20] - 802d14e: 6b5b ldr r3, [r3, #52] ; 0x34 - 802d150: 2102 movs r1, #2 - 802d152: 4618 mov r0, r3 - 802d154: f7d9 fa84 bl 8006660 + 802d0b8: 697b ldr r3, [r7, #20] + 802d0ba: 6b5b ldr r3, [r3, #52] ; 0x34 + 802d0bc: 2102 movs r1, #2 + 802d0be: 4618 mov r0, r3 + 802d0c0: f7d9 fa98 bl 80065f4 } } lv_event_send((lv_obj_t *)menu, LV_EVENT_VALUE_CHANGED, NULL); - 802d158: 2200 movs r2, #0 - 802d15a: 211c movs r1, #28 - 802d15c: 6978 ldr r0, [r7, #20] - 802d15e: f7d5 f98f bl 8002480 + 802d0c4: 2200 movs r2, #0 + 802d0c6: 211c movs r1, #28 + 802d0c8: 6978 ldr r0, [r7, #20] + 802d0ca: f7d5 f9a3 bl 8002414 lv_menu_refr_main_header_mode(obj); - 802d162: 6878 ldr r0, [r7, #4] - 802d164: f000 f9a2 bl 802d4ac + 802d0ce: 6878 ldr r0, [r7, #4] + 802d0d0: f000 f9a2 bl 802d418 } - 802d168: bf00 nop - 802d16a: 3718 adds r7, #24 - 802d16c: 46bd mov sp, r7 - 802d16e: bd80 pop {r7, pc} + 802d0d4: bf00 nop + 802d0d6: 3718 adds r7, #24 + 802d0d8: 46bd mov sp, r7 + 802d0da: bd80 pop {r7, pc} -0802d170 : +0802d0dc : /*===================== * Getter functions *====================*/ lv_obj_t * lv_menu_get_cur_main_page(lv_obj_t * obj) { - 802d170: b480 push {r7} - 802d172: b085 sub sp, #20 - 802d174: af00 add r7, sp, #0 - 802d176: 6078 str r0, [r7, #4] + 802d0dc: b480 push {r7} + 802d0de: b085 sub sp, #20 + 802d0e0: af00 add r7, sp, #0 + 802d0e2: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_menu_t * menu = (lv_menu_t *)obj; - 802d178: 687b ldr r3, [r7, #4] - 802d17a: 60fb str r3, [r7, #12] + 802d0e4: 687b ldr r3, [r7, #4] + 802d0e6: 60fb str r3, [r7, #12] return menu->main_page; - 802d17c: 68fb ldr r3, [r7, #12] - 802d17e: 6adb ldr r3, [r3, #44] ; 0x2c + 802d0e8: 68fb ldr r3, [r7, #12] + 802d0ea: 6adb ldr r3, [r3, #44] ; 0x2c } - 802d180: 4618 mov r0, r3 - 802d182: 3714 adds r7, #20 - 802d184: 46bd mov sp, r7 - 802d186: bc80 pop {r7} - 802d188: 4770 bx lr + 802d0ec: 4618 mov r0, r3 + 802d0ee: 3714 adds r7, #20 + 802d0f0: 46bd mov sp, r7 + 802d0f2: bc80 pop {r7} + 802d0f4: 4770 bx lr -0802d18a : +0802d0f6 : lv_obj_t * lv_menu_get_cur_sidebar_page(lv_obj_t * obj) { - 802d18a: b480 push {r7} - 802d18c: b085 sub sp, #20 - 802d18e: af00 add r7, sp, #0 - 802d190: 6078 str r0, [r7, #4] + 802d0f6: b480 push {r7} + 802d0f8: b085 sub sp, #20 + 802d0fa: af00 add r7, sp, #0 + 802d0fc: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_menu_t * menu = (lv_menu_t *)obj; - 802d192: 687b ldr r3, [r7, #4] - 802d194: 60fb str r3, [r7, #12] + 802d0fe: 687b ldr r3, [r7, #4] + 802d100: 60fb str r3, [r7, #12] return menu->sidebar_page; - 802d196: 68fb ldr r3, [r7, #12] - 802d198: 6c1b ldr r3, [r3, #64] ; 0x40 + 802d102: 68fb ldr r3, [r7, #12] + 802d104: 6c1b ldr r3, [r3, #64] ; 0x40 } - 802d19a: 4618 mov r0, r3 - 802d19c: 3714 adds r7, #20 - 802d19e: 46bd mov sp, r7 - 802d1a0: bc80 pop {r7} - 802d1a2: 4770 bx lr + 802d106: 4618 mov r0, r3 + 802d108: 3714 adds r7, #20 + 802d10a: 46bd mov sp, r7 + 802d10c: bc80 pop {r7} + 802d10e: 4770 bx lr -0802d1a4 : +0802d110 : lv_menu_t * menu = (lv_menu_t *)obj; return menu->sidebar_header_back_btn; } bool lv_menu_back_btn_is_root(lv_obj_t * menu, lv_obj_t * obj) { - 802d1a4: b480 push {r7} - 802d1a6: b083 sub sp, #12 - 802d1a8: af00 add r7, sp, #0 - 802d1aa: 6078 str r0, [r7, #4] - 802d1ac: 6039 str r1, [r7, #0] + 802d110: b480 push {r7} + 802d112: b083 sub sp, #12 + 802d114: af00 add r7, sp, #0 + 802d116: 6078 str r0, [r7, #4] + 802d118: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(menu, MY_CLASS); if(obj == ((lv_menu_t *)menu)->sidebar_header_back_btn) { - 802d1ae: 687b ldr r3, [r7, #4] - 802d1b0: 6c9b ldr r3, [r3, #72] ; 0x48 - 802d1b2: 683a ldr r2, [r7, #0] - 802d1b4: 429a cmp r2, r3 - 802d1b6: d101 bne.n 802d1bc + 802d11a: 687b ldr r3, [r7, #4] + 802d11c: 6c9b ldr r3, [r3, #72] ; 0x48 + 802d11e: 683a ldr r2, [r7, #0] + 802d120: 429a cmp r2, r3 + 802d122: d101 bne.n 802d128 return true; - 802d1b8: 2301 movs r3, #1 - 802d1ba: e00c b.n 802d1d6 + 802d124: 2301 movs r3, #1 + 802d126: e00c b.n 802d142 } if(obj == ((lv_menu_t *)menu)->main_header_back_btn && ((lv_menu_t *)menu)->prev_depth <= 1) { - 802d1bc: 687b ldr r3, [r7, #4] - 802d1be: 6b5b ldr r3, [r3, #52] ; 0x34 - 802d1c0: 683a ldr r2, [r7, #0] - 802d1c2: 429a cmp r2, r3 - 802d1c4: d106 bne.n 802d1d4 - 802d1c6: 687b ldr r3, [r7, #4] - 802d1c8: f893 3061 ldrb.w r3, [r3, #97] ; 0x61 - 802d1cc: 2b01 cmp r3, #1 - 802d1ce: d801 bhi.n 802d1d4 + 802d128: 687b ldr r3, [r7, #4] + 802d12a: 6b5b ldr r3, [r3, #52] ; 0x34 + 802d12c: 683a ldr r2, [r7, #0] + 802d12e: 429a cmp r2, r3 + 802d130: d106 bne.n 802d140 + 802d132: 687b ldr r3, [r7, #4] + 802d134: f893 3061 ldrb.w r3, [r3, #97] ; 0x61 + 802d138: 2b01 cmp r3, #1 + 802d13a: d801 bhi.n 802d140 return true; - 802d1d0: 2301 movs r3, #1 - 802d1d2: e000 b.n 802d1d6 + 802d13c: 2301 movs r3, #1 + 802d13e: e000 b.n 802d142 } return false; - 802d1d4: 2300 movs r3, #0 + 802d140: 2300 movs r3, #0 } - 802d1d6: 4618 mov r0, r3 - 802d1d8: 370c adds r7, #12 - 802d1da: 46bd mov sp, r7 - 802d1dc: bc80 pop {r7} - 802d1de: 4770 bx lr + 802d142: 4618 mov r0, r3 + 802d144: 370c adds r7, #12 + 802d146: 46bd mov sp, r7 + 802d148: bc80 pop {r7} + 802d14a: 4770 bx lr -0802d1e0 : +0802d14c : void lv_menu_clear_history(lv_obj_t * obj) { - 802d1e0: b580 push {r7, lr} - 802d1e2: b084 sub sp, #16 - 802d1e4: af00 add r7, sp, #0 - 802d1e6: 6078 str r0, [r7, #4] + 802d14c: b580 push {r7, lr} + 802d14e: b084 sub sp, #16 + 802d150: af00 add r7, sp, #0 + 802d152: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_menu_t * menu = (lv_menu_t *)obj; - 802d1e8: 687b ldr r3, [r7, #4] - 802d1ea: 60fb str r3, [r7, #12] + 802d154: 687b ldr r3, [r7, #4] + 802d156: 60fb str r3, [r7, #12] lv_ll_t * history_ll = &(menu->history_ll); - 802d1ec: 68fb ldr r3, [r7, #12] - 802d1ee: 3354 adds r3, #84 ; 0x54 - 802d1f0: 60bb str r3, [r7, #8] + 802d158: 68fb ldr r3, [r7, #12] + 802d15a: 3354 adds r3, #84 ; 0x54 + 802d15c: 60bb str r3, [r7, #8] _lv_ll_clear(history_ll); - 802d1f2: 68b8 ldr r0, [r7, #8] - 802d1f4: f005 f891 bl 803231a <_lv_ll_clear> + 802d15e: 68b8 ldr r0, [r7, #8] + 802d160: f005 f891 bl 8032286 <_lv_ll_clear> menu->cur_depth = 0; - 802d1f8: 68fb ldr r3, [r7, #12] - 802d1fa: 2200 movs r2, #0 - 802d1fc: f883 2060 strb.w r2, [r3, #96] ; 0x60 + 802d164: 68fb ldr r3, [r7, #12] + 802d166: 2200 movs r2, #0 + 802d168: f883 2060 strb.w r2, [r3, #96] ; 0x60 } - 802d200: bf00 nop - 802d202: 3710 adds r7, #16 - 802d204: 46bd mov sp, r7 - 802d206: bd80 pop {r7, pc} + 802d16c: bf00 nop + 802d16e: 3710 adds r7, #16 + 802d170: 46bd mov sp, r7 + 802d172: bd80 pop {r7, pc} -0802d208 : +0802d174 : /********************** * STATIC FUNCTIONS **********************/ static void lv_menu_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802d208: b580 push {r7, lr} - 802d20a: b088 sub sp, #32 - 802d20c: af00 add r7, sp, #0 - 802d20e: 6078 str r0, [r7, #4] - 802d210: 6039 str r1, [r7, #0] + 802d174: b580 push {r7, lr} + 802d176: b088 sub sp, #32 + 802d178: af00 add r7, sp, #0 + 802d17a: 6078 str r0, [r7, #4] + 802d17c: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_obj_set_layout(obj, LV_LAYOUT_FLEX); - 802d212: 4b67 ldr r3, [pc, #412] ; (802d3b0 ) - 802d214: 681b ldr r3, [r3, #0] - 802d216: 4619 mov r1, r3 - 802d218: 6838 ldr r0, [r7, #0] - 802d21a: f7dc fb2b bl 8009874 + 802d17e: 4b67 ldr r3, [pc, #412] ; (802d31c ) + 802d180: 681b ldr r3, [r3, #0] + 802d182: 4619 mov r1, r3 + 802d184: 6838 ldr r0, [r7, #0] + 802d186: f7dc fb3f bl 8009808 lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_ROW); - 802d21e: 2100 movs r1, #0 - 802d220: 6838 ldr r0, [r7, #0] - 802d222: f7f4 f857 bl 80212d4 + 802d18a: 2100 movs r1, #0 + 802d18c: 6838 ldr r0, [r7, #0] + 802d18e: f7f4 f857 bl 8021240 lv_menu_t * menu = (lv_menu_t *)obj; - 802d226: 683b ldr r3, [r7, #0] - 802d228: 61fb str r3, [r7, #28] + 802d192: 683b ldr r3, [r7, #0] + 802d194: 61fb str r3, [r7, #28] menu->mode_header = LV_MENU_HEADER_TOP_FIXED; - 802d22a: 69fa ldr r2, [r7, #28] - 802d22c: f892 3062 ldrb.w r3, [r2, #98] ; 0x62 - 802d230: f36f 0342 bfc r3, #1, #2 - 802d234: f882 3062 strb.w r3, [r2, #98] ; 0x62 + 802d196: 69fa ldr r2, [r7, #28] + 802d198: f892 3062 ldrb.w r3, [r2, #98] ; 0x62 + 802d19c: f36f 0342 bfc r3, #1, #2 + 802d1a0: f882 3062 strb.w r3, [r2, #98] ; 0x62 menu->mode_root_back_btn = LV_MENU_ROOT_BACK_BTN_DISABLED; - 802d238: 69fa ldr r2, [r7, #28] - 802d23a: f892 3062 ldrb.w r3, [r2, #98] ; 0x62 - 802d23e: f36f 03c3 bfc r3, #3, #1 - 802d242: f882 3062 strb.w r3, [r2, #98] ; 0x62 + 802d1a4: 69fa ldr r2, [r7, #28] + 802d1a6: f892 3062 ldrb.w r3, [r2, #98] ; 0x62 + 802d1aa: f36f 03c3 bfc r3, #3, #1 + 802d1ae: f882 3062 strb.w r3, [r2, #98] ; 0x62 menu->cur_depth = 0; - 802d246: 69fb ldr r3, [r7, #28] - 802d248: 2200 movs r2, #0 - 802d24a: f883 2060 strb.w r2, [r3, #96] ; 0x60 + 802d1b2: 69fb ldr r3, [r7, #28] + 802d1b4: 2200 movs r2, #0 + 802d1b6: f883 2060 strb.w r2, [r3, #96] ; 0x60 menu->prev_depth = 0; - 802d24e: 69fb ldr r3, [r7, #28] - 802d250: 2200 movs r2, #0 - 802d252: f883 2061 strb.w r2, [r3, #97] ; 0x61 + 802d1ba: 69fb ldr r3, [r7, #28] + 802d1bc: 2200 movs r2, #0 + 802d1be: f883 2061 strb.w r2, [r3, #97] ; 0x61 menu->sidebar_generated = false; - 802d256: 69fa ldr r2, [r7, #28] - 802d258: f892 3062 ldrb.w r3, [r2, #98] ; 0x62 - 802d25c: f36f 0300 bfc r3, #0, #1 - 802d260: f882 3062 strb.w r3, [r2, #98] ; 0x62 + 802d1c2: 69fa ldr r2, [r7, #28] + 802d1c4: f892 3062 ldrb.w r3, [r2, #98] ; 0x62 + 802d1c8: f36f 0300 bfc r3, #0, #1 + 802d1cc: f882 3062 strb.w r3, [r2, #98] ; 0x62 _lv_ll_init(&(menu->history_ll), sizeof(lv_menu_history_t)); - 802d264: 69fb ldr r3, [r7, #28] - 802d266: 3354 adds r3, #84 ; 0x54 - 802d268: 2104 movs r1, #4 - 802d26a: 4618 mov r0, r3 - 802d26c: f004 ff78 bl 8032160 <_lv_ll_init> + 802d1d0: 69fb ldr r3, [r7, #28] + 802d1d2: 3354 adds r3, #84 ; 0x54 + 802d1d4: 2104 movs r1, #4 + 802d1d6: 4618 mov r0, r3 + 802d1d8: f004 ff78 bl 80320cc <_lv_ll_init> menu->storage = lv_obj_create(obj); - 802d270: 6838 ldr r0, [r7, #0] - 802d272: f7d9 f98d bl 8006590 - 802d276: 4602 mov r2, r0 - 802d278: 69fb ldr r3, [r7, #28] - 802d27a: 625a str r2, [r3, #36] ; 0x24 + 802d1dc: 6838 ldr r0, [r7, #0] + 802d1de: f7d9 f9a1 bl 8006524 + 802d1e2: 4602 mov r2, r0 + 802d1e4: 69fb ldr r3, [r7, #28] + 802d1e6: 625a str r2, [r3, #36] ; 0x24 lv_obj_add_flag(menu->storage, LV_OBJ_FLAG_HIDDEN); - 802d27c: 69fb ldr r3, [r7, #28] - 802d27e: 6a5b ldr r3, [r3, #36] ; 0x24 - 802d280: 2101 movs r1, #1 - 802d282: 4618 mov r0, r3 - 802d284: f7d9 f998 bl 80065b8 + 802d1e8: 69fb ldr r3, [r7, #28] + 802d1ea: 6a5b ldr r3, [r3, #36] ; 0x24 + 802d1ec: 2101 movs r1, #1 + 802d1ee: 4618 mov r0, r3 + 802d1f0: f7d9 f9ac bl 800654c menu->sidebar = NULL; - 802d288: 69fb ldr r3, [r7, #28] - 802d28a: 2200 movs r2, #0 - 802d28c: 63da str r2, [r3, #60] ; 0x3c + 802d1f4: 69fb ldr r3, [r7, #28] + 802d1f6: 2200 movs r2, #0 + 802d1f8: 63da str r2, [r3, #60] ; 0x3c menu->sidebar_header = NULL; - 802d28e: 69fb ldr r3, [r7, #28] - 802d290: 2200 movs r2, #0 - 802d292: 645a str r2, [r3, #68] ; 0x44 + 802d1fa: 69fb ldr r3, [r7, #28] + 802d1fc: 2200 movs r2, #0 + 802d1fe: 645a str r2, [r3, #68] ; 0x44 menu->sidebar_header_back_btn = NULL; - 802d294: 69fb ldr r3, [r7, #28] - 802d296: 2200 movs r2, #0 - 802d298: 649a str r2, [r3, #72] ; 0x48 + 802d200: 69fb ldr r3, [r7, #28] + 802d202: 2200 movs r2, #0 + 802d204: 649a str r2, [r3, #72] ; 0x48 menu->sidebar_header_title = NULL; - 802d29a: 69fb ldr r3, [r7, #28] - 802d29c: 2200 movs r2, #0 - 802d29e: 64da str r2, [r3, #76] ; 0x4c + 802d206: 69fb ldr r3, [r7, #28] + 802d208: 2200 movs r2, #0 + 802d20a: 64da str r2, [r3, #76] ; 0x4c menu->sidebar_page = NULL; - 802d2a0: 69fb ldr r3, [r7, #28] - 802d2a2: 2200 movs r2, #0 - 802d2a4: 641a str r2, [r3, #64] ; 0x40 + 802d20c: 69fb ldr r3, [r7, #28] + 802d20e: 2200 movs r2, #0 + 802d210: 641a str r2, [r3, #64] ; 0x40 lv_obj_t * main_cont = lv_obj_class_create_obj(&lv_menu_main_cont_class, obj); - 802d2a6: 6839 ldr r1, [r7, #0] - 802d2a8: 4842 ldr r0, [pc, #264] ; (802d3b4 ) - 802d2aa: f7da fbd2 bl 8007a52 - 802d2ae: 61b8 str r0, [r7, #24] + 802d212: 6839 ldr r1, [r7, #0] + 802d214: 4842 ldr r0, [pc, #264] ; (802d320 ) + 802d216: f7da fbe6 bl 80079e6 + 802d21a: 61b8 str r0, [r7, #24] lv_obj_class_init_obj(main_cont); - 802d2b0: 69b8 ldr r0, [r7, #24] - 802d2b2: f7da fc80 bl 8007bb6 + 802d21c: 69b8 ldr r0, [r7, #24] + 802d21e: f7da fc94 bl 8007b4a lv_obj_set_height(main_cont, LV_PCT(100)); - 802d2b6: f242 0164 movw r1, #8292 ; 0x2064 - 802d2ba: 69b8 ldr r0, [r7, #24] - 802d2bc: f7dc fab4 bl 8009828 + 802d222: f242 0164 movw r1, #8292 ; 0x2064 + 802d226: 69b8 ldr r0, [r7, #24] + 802d228: f7dc fac8 bl 80097bc lv_obj_set_flex_grow(main_cont, 1); - 802d2c0: 2101 movs r1, #1 - 802d2c2: 69b8 ldr r0, [r7, #24] - 802d2c4: f7f4 f84e bl 8021364 + 802d22c: 2101 movs r1, #1 + 802d22e: 69b8 ldr r0, [r7, #24] + 802d230: f7f4 f84e bl 80212d0 lv_obj_set_flex_flow(main_cont, LV_FLEX_FLOW_COLUMN); - 802d2c8: 2101 movs r1, #1 - 802d2ca: 69b8 ldr r0, [r7, #24] - 802d2cc: f7f4 f802 bl 80212d4 + 802d234: 2101 movs r1, #1 + 802d236: 69b8 ldr r0, [r7, #24] + 802d238: f7f4 f802 bl 8021240 lv_obj_add_flag(main_cont, LV_OBJ_FLAG_EVENT_BUBBLE); - 802d2d0: f44f 4180 mov.w r1, #16384 ; 0x4000 - 802d2d4: 69b8 ldr r0, [r7, #24] - 802d2d6: f7d9 f96f bl 80065b8 + 802d23c: f44f 4180 mov.w r1, #16384 ; 0x4000 + 802d240: 69b8 ldr r0, [r7, #24] + 802d242: f7d9 f983 bl 800654c lv_obj_clear_flag(main_cont, LV_OBJ_FLAG_CLICKABLE); - 802d2da: 2102 movs r1, #2 - 802d2dc: 69b8 ldr r0, [r7, #24] - 802d2de: f7d9 f9bf bl 8006660 + 802d246: 2102 movs r1, #2 + 802d248: 69b8 ldr r0, [r7, #24] + 802d24a: f7d9 f9d3 bl 80065f4 menu->main = main_cont; - 802d2e2: 69fb ldr r3, [r7, #28] - 802d2e4: 69ba ldr r2, [r7, #24] - 802d2e6: 629a str r2, [r3, #40] ; 0x28 + 802d24e: 69fb ldr r3, [r7, #28] + 802d250: 69ba ldr r2, [r7, #24] + 802d252: 629a str r2, [r3, #40] ; 0x28 lv_obj_t * main_header = lv_obj_class_create_obj(&lv_menu_main_header_cont_class, main_cont); - 802d2e8: 69b9 ldr r1, [r7, #24] - 802d2ea: 4833 ldr r0, [pc, #204] ; (802d3b8 ) - 802d2ec: f7da fbb1 bl 8007a52 - 802d2f0: 6178 str r0, [r7, #20] + 802d254: 69b9 ldr r1, [r7, #24] + 802d256: 4833 ldr r0, [pc, #204] ; (802d324 ) + 802d258: f7da fbc5 bl 80079e6 + 802d25c: 6178 str r0, [r7, #20] lv_obj_class_init_obj(main_header); - 802d2f2: 6978 ldr r0, [r7, #20] - 802d2f4: f7da fc5f bl 8007bb6 + 802d25e: 6978 ldr r0, [r7, #20] + 802d260: f7da fc73 bl 8007b4a lv_obj_set_size(main_header, LV_PCT(100), LV_SIZE_CONTENT); - 802d2f8: f242 72d1 movw r2, #10193 ; 0x27d1 - 802d2fc: f242 0164 movw r1, #8292 ; 0x2064 - 802d300: 6978 ldr r0, [r7, #20] - 802d302: f7dc fa53 bl 80097ac + 802d264: f242 72d1 movw r2, #10193 ; 0x27d1 + 802d268: f242 0164 movw r1, #8292 ; 0x2064 + 802d26c: 6978 ldr r0, [r7, #20] + 802d26e: f7dc fa67 bl 8009740 lv_obj_set_flex_flow(main_header, LV_FLEX_FLOW_ROW); - 802d306: 2100 movs r1, #0 - 802d308: 6978 ldr r0, [r7, #20] - 802d30a: f7f3 ffe3 bl 80212d4 + 802d272: 2100 movs r1, #0 + 802d274: 6978 ldr r0, [r7, #20] + 802d276: f7f3 ffe3 bl 8021240 lv_obj_set_flex_align(main_header, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - 802d30e: 2302 movs r3, #2 - 802d310: 2202 movs r2, #2 - 802d312: 2100 movs r1, #0 - 802d314: 6978 ldr r0, [r7, #20] - 802d316: f7f3 fff7 bl 8021308 + 802d27a: 2302 movs r3, #2 + 802d27c: 2202 movs r2, #2 + 802d27e: 2100 movs r1, #0 + 802d280: 6978 ldr r0, [r7, #20] + 802d282: f7f3 fff7 bl 8021274 lv_obj_clear_flag(main_header, LV_OBJ_FLAG_CLICKABLE); - 802d31a: 2102 movs r1, #2 - 802d31c: 6978 ldr r0, [r7, #20] - 802d31e: f7d9 f99f bl 8006660 + 802d286: 2102 movs r1, #2 + 802d288: 6978 ldr r0, [r7, #20] + 802d28a: f7d9 f9b3 bl 80065f4 lv_obj_add_flag(main_header, LV_OBJ_FLAG_EVENT_BUBBLE); - 802d322: f44f 4180 mov.w r1, #16384 ; 0x4000 - 802d326: 6978 ldr r0, [r7, #20] - 802d328: f7d9 f946 bl 80065b8 + 802d28e: f44f 4180 mov.w r1, #16384 ; 0x4000 + 802d292: 6978 ldr r0, [r7, #20] + 802d294: f7d9 f95a bl 800654c menu->main_header = main_header; - 802d32c: 69fb ldr r3, [r7, #28] - 802d32e: 697a ldr r2, [r7, #20] - 802d330: 631a str r2, [r3, #48] ; 0x30 + 802d298: 69fb ldr r3, [r7, #28] + 802d29a: 697a ldr r2, [r7, #20] + 802d29c: 631a str r2, [r3, #48] ; 0x30 /* Create the default simple back btn and title */ lv_obj_t * main_header_back_btn = lv_btn_create(menu->main_header); - 802d332: 69fb ldr r3, [r7, #28] - 802d334: 6b1b ldr r3, [r3, #48] ; 0x30 - 802d336: 4618 mov r0, r3 - 802d338: f00c f91a bl 8039570 - 802d33c: 6138 str r0, [r7, #16] + 802d29e: 69fb ldr r3, [r7, #28] + 802d2a0: 6b1b ldr r3, [r3, #48] ; 0x30 + 802d2a2: 4618 mov r0, r3 + 802d2a4: f00c f91a bl 80394dc + 802d2a8: 6138 str r0, [r7, #16] lv_obj_add_event_cb(main_header_back_btn, lv_menu_back_event_cb, LV_EVENT_CLICKED, menu); - 802d33e: 69fb ldr r3, [r7, #28] - 802d340: 2207 movs r2, #7 - 802d342: 491e ldr r1, [pc, #120] ; (802d3bc ) - 802d344: 6938 ldr r0, [r7, #16] - 802d346: f7d5 f97b bl 8002640 + 802d2aa: 69fb ldr r3, [r7, #28] + 802d2ac: 2207 movs r2, #7 + 802d2ae: 491e ldr r1, [pc, #120] ; (802d328 ) + 802d2b0: 6938 ldr r0, [r7, #16] + 802d2b2: f7d5 f98f bl 80025d4 lv_obj_add_flag(main_header_back_btn, LV_OBJ_FLAG_EVENT_BUBBLE); - 802d34a: f44f 4180 mov.w r1, #16384 ; 0x4000 - 802d34e: 6938 ldr r0, [r7, #16] - 802d350: f7d9 f932 bl 80065b8 + 802d2b6: f44f 4180 mov.w r1, #16384 ; 0x4000 + 802d2ba: 6938 ldr r0, [r7, #16] + 802d2bc: f7d9 f946 bl 800654c lv_obj_set_flex_flow(main_header_back_btn, LV_FLEX_FLOW_ROW); - 802d354: 2100 movs r1, #0 - 802d356: 6938 ldr r0, [r7, #16] - 802d358: f7f3 ffbc bl 80212d4 + 802d2c0: 2100 movs r1, #0 + 802d2c2: 6938 ldr r0, [r7, #16] + 802d2c4: f7f3 ffbc bl 8021240 menu->main_header_back_btn = main_header_back_btn; - 802d35c: 69fb ldr r3, [r7, #28] - 802d35e: 693a ldr r2, [r7, #16] - 802d360: 635a str r2, [r3, #52] ; 0x34 + 802d2c8: 69fb ldr r3, [r7, #28] + 802d2ca: 693a ldr r2, [r7, #16] + 802d2cc: 635a str r2, [r3, #52] ; 0x34 lv_obj_t * main_header_back_icon = lv_img_create(menu->main_header_back_btn); - 802d362: 69fb ldr r3, [r7, #28] - 802d364: 6b5b ldr r3, [r3, #52] ; 0x34 - 802d366: 4618 mov r0, r3 - 802d368: f010 fb44 bl 803d9f4 - 802d36c: 60f8 str r0, [r7, #12] + 802d2ce: 69fb ldr r3, [r7, #28] + 802d2d0: 6b5b ldr r3, [r3, #52] ; 0x34 + 802d2d2: 4618 mov r0, r3 + 802d2d4: f010 fb44 bl 803d960 + 802d2d8: 60f8 str r0, [r7, #12] lv_img_set_src(main_header_back_icon, LV_SYMBOL_LEFT); - 802d36e: 4914 ldr r1, [pc, #80] ; (802d3c0 ) - 802d370: 68f8 ldr r0, [r7, #12] - 802d372: f010 fb53 bl 803da1c + 802d2da: 4914 ldr r1, [pc, #80] ; (802d32c ) + 802d2dc: 68f8 ldr r0, [r7, #12] + 802d2de: f010 fb53 bl 803d988 lv_obj_t * main_header_title = lv_label_create(menu->main_header); - 802d376: 69fb ldr r3, [r7, #28] - 802d378: 6b1b ldr r3, [r3, #48] ; 0x30 - 802d37a: 4618 mov r0, r3 - 802d37c: f011 fcae bl 803ecdc - 802d380: 60b8 str r0, [r7, #8] + 802d2e2: 69fb ldr r3, [r7, #28] + 802d2e4: 6b1b ldr r3, [r3, #48] ; 0x30 + 802d2e6: 4618 mov r0, r3 + 802d2e8: f011 fcae bl 803ec48 + 802d2ec: 60b8 str r0, [r7, #8] lv_obj_add_flag(main_header_title, LV_OBJ_FLAG_HIDDEN); - 802d382: 2101 movs r1, #1 - 802d384: 68b8 ldr r0, [r7, #8] - 802d386: f7d9 f917 bl 80065b8 + 802d2ee: 2101 movs r1, #1 + 802d2f0: 68b8 ldr r0, [r7, #8] + 802d2f2: f7d9 f92b bl 800654c menu->main_header_title = main_header_title; - 802d38a: 69fb ldr r3, [r7, #28] - 802d38c: 68ba ldr r2, [r7, #8] - 802d38e: 639a str r2, [r3, #56] ; 0x38 + 802d2f6: 69fb ldr r3, [r7, #28] + 802d2f8: 68ba ldr r2, [r7, #8] + 802d2fa: 639a str r2, [r3, #56] ; 0x38 menu->main_page = NULL; - 802d390: 69fb ldr r3, [r7, #28] - 802d392: 2200 movs r2, #0 - 802d394: 62da str r2, [r3, #44] ; 0x2c + 802d2fc: 69fb ldr r3, [r7, #28] + 802d2fe: 2200 movs r2, #0 + 802d300: 62da str r2, [r3, #44] ; 0x2c menu->selected_tab = NULL; - 802d396: 69fb ldr r3, [r7, #28] - 802d398: 2200 movs r2, #0 - 802d39a: 651a str r2, [r3, #80] ; 0x50 + 802d302: 69fb ldr r3, [r7, #28] + 802d304: 2200 movs r2, #0 + 802d306: 651a str r2, [r3, #80] ; 0x50 lv_obj_add_event_cb(obj, lv_menu_value_changed_event_cb, LV_EVENT_VALUE_CHANGED, menu); - 802d39c: 69fb ldr r3, [r7, #28] - 802d39e: 221c movs r2, #28 - 802d3a0: 4908 ldr r1, [pc, #32] ; (802d3c4 ) - 802d3a2: 6838 ldr r0, [r7, #0] - 802d3a4: f7d5 f94c bl 8002640 + 802d308: 69fb ldr r3, [r7, #28] + 802d30a: 221c movs r2, #28 + 802d30c: 4908 ldr r1, [pc, #32] ; (802d330 ) + 802d30e: 6838 ldr r0, [r7, #0] + 802d310: f7d5 f960 bl 80025d4 LV_TRACE_OBJ_CREATE("finished"); } - 802d3a8: bf00 nop - 802d3aa: 3720 adds r7, #32 - 802d3ac: 46bd mov sp, r7 - 802d3ae: bd80 pop {r7, pc} - 802d3b0: 20001c24 .word 0x20001c24 - 802d3b4: 0806d0dc .word 0x0806d0dc - 802d3b8: 0806d0f8 .word 0x0806d0f8 - 802d3bc: 0802d587 .word 0x0802d587 - 802d3c0: 08047134 .word 0x08047134 - 802d3c4: 0802d653 .word 0x0802d653 + 802d314: bf00 nop + 802d316: 3720 adds r7, #32 + 802d318: 46bd mov sp, r7 + 802d31a: bd80 pop {r7, pc} + 802d31c: 20001c24 .word 0x20001c24 + 802d320: 0806d034 .word 0x0806d034 + 802d324: 0806d050 .word 0x0806d050 + 802d328: 0802d4f3 .word 0x0802d4f3 + 802d32c: 0804708c .word 0x0804708c + 802d330: 0802d5bf .word 0x0802d5bf -0802d3c8 : +0802d334 : static void lv_menu_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802d3c8: b580 push {r7, lr} - 802d3ca: b084 sub sp, #16 - 802d3cc: af00 add r7, sp, #0 - 802d3ce: 6078 str r0, [r7, #4] - 802d3d0: 6039 str r1, [r7, #0] + 802d334: b580 push {r7, lr} + 802d336: b084 sub sp, #16 + 802d338: af00 add r7, sp, #0 + 802d33a: 6078 str r0, [r7, #4] + 802d33c: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_menu_t * menu = (lv_menu_t *)obj; - 802d3d2: 683b ldr r3, [r7, #0] - 802d3d4: 60fb str r3, [r7, #12] + 802d33e: 683b ldr r3, [r7, #0] + 802d340: 60fb str r3, [r7, #12] lv_ll_t * history_ll = &(menu->history_ll); - 802d3d6: 68fb ldr r3, [r7, #12] - 802d3d8: 3354 adds r3, #84 ; 0x54 - 802d3da: 60bb str r3, [r7, #8] + 802d342: 68fb ldr r3, [r7, #12] + 802d344: 3354 adds r3, #84 ; 0x54 + 802d346: 60bb str r3, [r7, #8] _lv_ll_clear(history_ll); - 802d3dc: 68b8 ldr r0, [r7, #8] - 802d3de: f004 ff9c bl 803231a <_lv_ll_clear> + 802d348: 68b8 ldr r0, [r7, #8] + 802d34a: f004 ff9c bl 8032286 <_lv_ll_clear> LV_TRACE_OBJ_CREATE("finished"); } - 802d3e2: bf00 nop - 802d3e4: 3710 adds r7, #16 - 802d3e6: 46bd mov sp, r7 - 802d3e8: bd80 pop {r7, pc} + 802d34e: bf00 nop + 802d350: 3710 adds r7, #16 + 802d352: 46bd mov sp, r7 + 802d354: bd80 pop {r7, pc} -0802d3ea : +0802d356 : static void lv_menu_page_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802d3ea: b580 push {r7, lr} - 802d3ec: b084 sub sp, #16 - 802d3ee: af00 add r7, sp, #0 - 802d3f0: 6078 str r0, [r7, #4] - 802d3f2: 6039 str r1, [r7, #0] + 802d356: b580 push {r7, lr} + 802d358: b084 sub sp, #16 + 802d35a: af00 add r7, sp, #0 + 802d35c: 6078 str r0, [r7, #4] + 802d35e: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_menu_t * menu = (lv_menu_t *)lv_obj_get_parent(obj); - 802d3f4: 6838 ldr r0, [r7, #0] - 802d3f6: f7e2 f989 bl 800f70c - 802d3fa: 60f8 str r0, [r7, #12] + 802d360: 6838 ldr r0, [r7, #0] + 802d362: f7e2 f989 bl 800f678 + 802d366: 60f8 str r0, [r7, #12] lv_obj_set_parent(obj, ((lv_menu_t *)menu)->storage); - 802d3fc: 68fb ldr r3, [r7, #12] - 802d3fe: 6a5b ldr r3, [r3, #36] ; 0x24 - 802d400: 4619 mov r1, r3 - 802d402: 6838 ldr r0, [r7, #0] - 802d404: f7e2 f814 bl 800f430 + 802d368: 68fb ldr r3, [r7, #12] + 802d36a: 6a5b ldr r3, [r3, #36] ; 0x24 + 802d36c: 4619 mov r1, r3 + 802d36e: 6838 ldr r0, [r7, #0] + 802d370: f7e2 f814 bl 800f39c lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN); - 802d408: 2101 movs r1, #1 - 802d40a: 6838 ldr r0, [r7, #0] - 802d40c: f7f3 ff62 bl 80212d4 + 802d374: 2101 movs r1, #1 + 802d376: 6838 ldr r0, [r7, #0] + 802d378: f7f3 ff62 bl 8021240 lv_obj_set_flex_align(obj, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - 802d410: 2302 movs r3, #2 - 802d412: 2202 movs r2, #2 - 802d414: 2100 movs r1, #0 - 802d416: 6838 ldr r0, [r7, #0] - 802d418: f7f3 ff76 bl 8021308 + 802d37c: 2302 movs r3, #2 + 802d37e: 2202 movs r2, #2 + 802d380: 2100 movs r1, #0 + 802d382: 6838 ldr r0, [r7, #0] + 802d384: f7f3 ff76 bl 8021274 lv_obj_add_flag(obj, LV_OBJ_FLAG_EVENT_BUBBLE); - 802d41c: f44f 4180 mov.w r1, #16384 ; 0x4000 - 802d420: 6838 ldr r0, [r7, #0] - 802d422: f7d9 f8c9 bl 80065b8 + 802d388: f44f 4180 mov.w r1, #16384 ; 0x4000 + 802d38c: 6838 ldr r0, [r7, #0] + 802d38e: f7d9 f8dd bl 800654c } - 802d426: bf00 nop - 802d428: 3710 adds r7, #16 - 802d42a: 46bd mov sp, r7 - 802d42c: bd80 pop {r7, pc} + 802d392: bf00 nop + 802d394: 3710 adds r7, #16 + 802d396: 46bd mov sp, r7 + 802d398: bd80 pop {r7, pc} -0802d42e : +0802d39a : static void lv_menu_page_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802d42e: b580 push {r7, lr} - 802d430: b084 sub sp, #16 - 802d432: af00 add r7, sp, #0 - 802d434: 6078 str r0, [r7, #4] - 802d436: 6039 str r1, [r7, #0] + 802d39a: b580 push {r7, lr} + 802d39c: b084 sub sp, #16 + 802d39e: af00 add r7, sp, #0 + 802d3a0: 6078 str r0, [r7, #4] + 802d3a2: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_menu_page_t * page = (lv_menu_page_t *)obj; - 802d438: 683b ldr r3, [r7, #0] - 802d43a: 60fb str r3, [r7, #12] + 802d3a4: 683b ldr r3, [r7, #0] + 802d3a6: 60fb str r3, [r7, #12] if(page->title != NULL) { - 802d43c: 68fb ldr r3, [r7, #12] - 802d43e: 6a5b ldr r3, [r3, #36] ; 0x24 - 802d440: 2b00 cmp r3, #0 - 802d442: d007 beq.n 802d454 + 802d3a8: 68fb ldr r3, [r7, #12] + 802d3aa: 6a5b ldr r3, [r3, #36] ; 0x24 + 802d3ac: 2b00 cmp r3, #0 + 802d3ae: d007 beq.n 802d3c0 lv_mem_free(page->title); - 802d444: 68fb ldr r3, [r7, #12] - 802d446: 6a5b ldr r3, [r3, #36] ; 0x24 - 802d448: 4618 mov r0, r3 - 802d44a: f005 fa47 bl 80328dc + 802d3b0: 68fb ldr r3, [r7, #12] + 802d3b2: 6a5b ldr r3, [r3, #36] ; 0x24 + 802d3b4: 4618 mov r0, r3 + 802d3b6: f005 fa47 bl 8032848 page->title = NULL; - 802d44e: 68fb ldr r3, [r7, #12] - 802d450: 2200 movs r2, #0 - 802d452: 625a str r2, [r3, #36] ; 0x24 + 802d3ba: 68fb ldr r3, [r7, #12] + 802d3bc: 2200 movs r2, #0 + 802d3be: 625a str r2, [r3, #36] ; 0x24 } } - 802d454: bf00 nop - 802d456: 3710 adds r7, #16 - 802d458: 46bd mov sp, r7 - 802d45a: bd80 pop {r7, pc} + 802d3c0: bf00 nop + 802d3c2: 3710 adds r7, #16 + 802d3c4: 46bd mov sp, r7 + 802d3c6: bd80 pop {r7, pc} -0802d45c : +0802d3c8 : static void lv_menu_cont_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802d45c: b580 push {r7, lr} - 802d45e: b082 sub sp, #8 - 802d460: af00 add r7, sp, #0 - 802d462: 6078 str r0, [r7, #4] - 802d464: 6039 str r1, [r7, #0] + 802d3c8: b580 push {r7, lr} + 802d3ca: b082 sub sp, #8 + 802d3cc: af00 add r7, sp, #0 + 802d3ce: 6078 str r0, [r7, #4] + 802d3d0: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_ROW); - 802d466: 2100 movs r1, #0 - 802d468: 6838 ldr r0, [r7, #0] - 802d46a: f7f3 ff33 bl 80212d4 + 802d3d2: 2100 movs r1, #0 + 802d3d4: 6838 ldr r0, [r7, #0] + 802d3d6: f7f3 ff33 bl 8021240 lv_obj_set_flex_align(obj, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - 802d46e: 2302 movs r3, #2 - 802d470: 2202 movs r2, #2 - 802d472: 2100 movs r1, #0 - 802d474: 6838 ldr r0, [r7, #0] - 802d476: f7f3 ff47 bl 8021308 + 802d3da: 2302 movs r3, #2 + 802d3dc: 2202 movs r2, #2 + 802d3de: 2100 movs r1, #0 + 802d3e0: 6838 ldr r0, [r7, #0] + 802d3e2: f7f3 ff47 bl 8021274 lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE); - 802d47a: 2102 movs r1, #2 - 802d47c: 6838 ldr r0, [r7, #0] - 802d47e: f7d9 f8ef bl 8006660 + 802d3e6: 2102 movs r1, #2 + 802d3e8: 6838 ldr r0, [r7, #0] + 802d3ea: f7d9 f903 bl 80065f4 } - 802d482: bf00 nop - 802d484: 3708 adds r7, #8 - 802d486: 46bd mov sp, r7 - 802d488: bd80 pop {r7, pc} + 802d3ee: bf00 nop + 802d3f0: 3708 adds r7, #8 + 802d3f2: 46bd mov sp, r7 + 802d3f4: bd80 pop {r7, pc} -0802d48a : +0802d3f6 : static void lv_menu_section_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802d48a: b580 push {r7, lr} - 802d48c: b082 sub sp, #8 - 802d48e: af00 add r7, sp, #0 - 802d490: 6078 str r0, [r7, #4] - 802d492: 6039 str r1, [r7, #0] + 802d3f6: b580 push {r7, lr} + 802d3f8: b082 sub sp, #8 + 802d3fa: af00 add r7, sp, #0 + 802d3fc: 6078 str r0, [r7, #4] + 802d3fe: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN); - 802d494: 2101 movs r1, #1 - 802d496: 6838 ldr r0, [r7, #0] - 802d498: f7f3 ff1c bl 80212d4 + 802d400: 2101 movs r1, #1 + 802d402: 6838 ldr r0, [r7, #0] + 802d404: f7f3 ff1c bl 8021240 lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE); - 802d49c: 2102 movs r1, #2 - 802d49e: 6838 ldr r0, [r7, #0] - 802d4a0: f7d9 f8de bl 8006660 + 802d408: 2102 movs r1, #2 + 802d40a: 6838 ldr r0, [r7, #0] + 802d40c: f7d9 f8f2 bl 80065f4 } - 802d4a4: bf00 nop - 802d4a6: 3708 adds r7, #8 - 802d4a8: 46bd mov sp, r7 - 802d4aa: bd80 pop {r7, pc} + 802d410: bf00 nop + 802d412: 3708 adds r7, #8 + 802d414: 46bd mov sp, r7 + 802d416: bd80 pop {r7, pc} -0802d4ac : +0802d418 : lv_obj_clear_flag(menu->sidebar_header, LV_OBJ_FLAG_HIDDEN); } } static void lv_menu_refr_main_header_mode(lv_obj_t * obj) { - 802d4ac: b580 push {r7, lr} - 802d4ae: b084 sub sp, #16 - 802d4b0: af00 add r7, sp, #0 - 802d4b2: 6078 str r0, [r7, #4] + 802d418: b580 push {r7, lr} + 802d41a: b084 sub sp, #16 + 802d41c: af00 add r7, sp, #0 + 802d41e: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_menu_t * menu = (lv_menu_t *)obj; - 802d4b4: 687b ldr r3, [r7, #4] - 802d4b6: 60fb str r3, [r7, #12] + 802d420: 687b ldr r3, [r7, #4] + 802d422: 60fb str r3, [r7, #12] if(menu->main_header == NULL || menu->main_page == NULL) return; - 802d4b8: 68fb ldr r3, [r7, #12] - 802d4ba: 6b1b ldr r3, [r3, #48] ; 0x30 - 802d4bc: 2b00 cmp r3, #0 - 802d4be: d05e beq.n 802d57e - 802d4c0: 68fb ldr r3, [r7, #12] - 802d4c2: 6adb ldr r3, [r3, #44] ; 0x2c - 802d4c4: 2b00 cmp r3, #0 - 802d4c6: d05a beq.n 802d57e + 802d424: 68fb ldr r3, [r7, #12] + 802d426: 6b1b ldr r3, [r3, #48] ; 0x30 + 802d428: 2b00 cmp r3, #0 + 802d42a: d05e beq.n 802d4ea + 802d42c: 68fb ldr r3, [r7, #12] + 802d42e: 6adb ldr r3, [r3, #44] ; 0x2c + 802d430: 2b00 cmp r3, #0 + 802d432: d05a beq.n 802d4ea switch(menu->mode_header) { - 802d4c8: 68fb ldr r3, [r7, #12] - 802d4ca: f893 3062 ldrb.w r3, [r3, #98] ; 0x62 - 802d4ce: f3c3 0341 ubfx r3, r3, #1, #2 - 802d4d2: b2db uxtb r3, r3 - 802d4d4: 2b02 cmp r3, #2 - 802d4d6: d020 beq.n 802d51a - 802d4d8: 2b02 cmp r3, #2 - 802d4da: dc2b bgt.n 802d534 - 802d4dc: 2b00 cmp r3, #0 - 802d4de: d002 beq.n 802d4e6 - 802d4e0: 2b01 cmp r3, #1 - 802d4e2: d00d beq.n 802d500 - 802d4e4: e026 b.n 802d534 + 802d434: 68fb ldr r3, [r7, #12] + 802d436: f893 3062 ldrb.w r3, [r3, #98] ; 0x62 + 802d43a: f3c3 0341 ubfx r3, r3, #1, #2 + 802d43e: b2db uxtb r3, r3 + 802d440: 2b02 cmp r3, #2 + 802d442: d020 beq.n 802d486 + 802d444: 2b02 cmp r3, #2 + 802d446: dc2b bgt.n 802d4a0 + 802d448: 2b00 cmp r3, #0 + 802d44a: d002 beq.n 802d452 + 802d44c: 2b01 cmp r3, #1 + 802d44e: d00d beq.n 802d46c + 802d450: e026 b.n 802d4a0 case LV_MENU_HEADER_TOP_FIXED: /* Content should fill the remaining space */ lv_obj_move_to_index(menu->main_header, 0); - 802d4e6: 68fb ldr r3, [r7, #12] - 802d4e8: 6b1b ldr r3, [r3, #48] ; 0x30 - 802d4ea: 2100 movs r1, #0 - 802d4ec: 4618 mov r0, r3 - 802d4ee: f7e2 f845 bl 800f57c + 802d452: 68fb ldr r3, [r7, #12] + 802d454: 6b1b ldr r3, [r3, #48] ; 0x30 + 802d456: 2100 movs r1, #0 + 802d458: 4618 mov r0, r3 + 802d45a: f7e2 f845 bl 800f4e8 lv_obj_set_flex_grow(menu->main_page, 1); - 802d4f2: 68fb ldr r3, [r7, #12] - 802d4f4: 6adb ldr r3, [r3, #44] ; 0x2c - 802d4f6: 2101 movs r1, #1 - 802d4f8: 4618 mov r0, r3 - 802d4fa: f7f3 ff33 bl 8021364 + 802d45e: 68fb ldr r3, [r7, #12] + 802d460: 6adb ldr r3, [r3, #44] ; 0x2c + 802d462: 2101 movs r1, #1 + 802d464: 4618 mov r0, r3 + 802d466: f7f3 ff33 bl 80212d0 break; - 802d4fe: e019 b.n 802d534 + 802d46a: e019 b.n 802d4a0 case LV_MENU_HEADER_TOP_UNFIXED: lv_obj_move_to_index(menu->main_header, 0); - 802d500: 68fb ldr r3, [r7, #12] - 802d502: 6b1b ldr r3, [r3, #48] ; 0x30 - 802d504: 2100 movs r1, #0 - 802d506: 4618 mov r0, r3 - 802d508: f7e2 f838 bl 800f57c + 802d46c: 68fb ldr r3, [r7, #12] + 802d46e: 6b1b ldr r3, [r3, #48] ; 0x30 + 802d470: 2100 movs r1, #0 + 802d472: 4618 mov r0, r3 + 802d474: f7e2 f838 bl 800f4e8 lv_obj_set_flex_grow(menu->main_page, 0); - 802d50c: 68fb ldr r3, [r7, #12] - 802d50e: 6adb ldr r3, [r3, #44] ; 0x2c - 802d510: 2100 movs r1, #0 - 802d512: 4618 mov r0, r3 - 802d514: f7f3 ff26 bl 8021364 + 802d478: 68fb ldr r3, [r7, #12] + 802d47a: 6adb ldr r3, [r3, #44] ; 0x2c + 802d47c: 2100 movs r1, #0 + 802d47e: 4618 mov r0, r3 + 802d480: f7f3 ff26 bl 80212d0 break; - 802d518: e00c b.n 802d534 + 802d484: e00c b.n 802d4a0 case LV_MENU_HEADER_BOTTOM_FIXED: lv_obj_move_to_index(menu->main_header, 1); - 802d51a: 68fb ldr r3, [r7, #12] - 802d51c: 6b1b ldr r3, [r3, #48] ; 0x30 - 802d51e: 2101 movs r1, #1 - 802d520: 4618 mov r0, r3 - 802d522: f7e2 f82b bl 800f57c + 802d486: 68fb ldr r3, [r7, #12] + 802d488: 6b1b ldr r3, [r3, #48] ; 0x30 + 802d48a: 2101 movs r1, #1 + 802d48c: 4618 mov r0, r3 + 802d48e: f7e2 f82b bl 800f4e8 lv_obj_set_flex_grow(menu->main_page, 1); - 802d526: 68fb ldr r3, [r7, #12] - 802d528: 6adb ldr r3, [r3, #44] ; 0x2c - 802d52a: 2101 movs r1, #1 - 802d52c: 4618 mov r0, r3 - 802d52e: f7f3 ff19 bl 8021364 + 802d492: 68fb ldr r3, [r7, #12] + 802d494: 6adb ldr r3, [r3, #44] ; 0x2c + 802d496: 2101 movs r1, #1 + 802d498: 4618 mov r0, r3 + 802d49a: f7f3 ff19 bl 80212d0 break; - 802d532: bf00 nop + 802d49e: bf00 nop } lv_obj_refr_size(menu->main_header); - 802d534: 68fb ldr r3, [r7, #12] - 802d536: 6b1b ldr r3, [r3, #48] ; 0x30 - 802d538: 4618 mov r0, r3 - 802d53a: f7db fefd bl 8009338 + 802d4a0: 68fb ldr r3, [r7, #12] + 802d4a2: 6b1b ldr r3, [r3, #48] ; 0x30 + 802d4a4: 4618 mov r0, r3 + 802d4a6: f7db ff11 bl 80092cc lv_obj_refr_size(menu->main_page); - 802d53e: 68fb ldr r3, [r7, #12] - 802d540: 6adb ldr r3, [r3, #44] ; 0x2c - 802d542: 4618 mov r0, r3 - 802d544: f7db fef8 bl 8009338 + 802d4aa: 68fb ldr r3, [r7, #12] + 802d4ac: 6adb ldr r3, [r3, #44] ; 0x2c + 802d4ae: 4618 mov r0, r3 + 802d4b0: f7db ff0c bl 80092cc lv_obj_update_layout(menu->main_header); - 802d548: 68fb ldr r3, [r7, #12] - 802d54a: 6b1b ldr r3, [r3, #48] ; 0x30 - 802d54c: 4618 mov r0, r3 - 802d54e: f7dc f9f5 bl 800993c + 802d4b4: 68fb ldr r3, [r7, #12] + 802d4b6: 6b1b ldr r3, [r3, #48] ; 0x30 + 802d4b8: 4618 mov r0, r3 + 802d4ba: f7dc fa09 bl 80098d0 if(lv_obj_get_content_height(menu->main_header) == 0) { - 802d552: 68fb ldr r3, [r7, #12] - 802d554: 6b1b ldr r3, [r3, #48] ; 0x30 - 802d556: 4618 mov r0, r3 - 802d558: f7dc fe3d bl 800a1d6 - 802d55c: 4603 mov r3, r0 - 802d55e: 2b00 cmp r3, #0 - 802d560: d106 bne.n 802d570 + 802d4be: 68fb ldr r3, [r7, #12] + 802d4c0: 6b1b ldr r3, [r3, #48] ; 0x30 + 802d4c2: 4618 mov r0, r3 + 802d4c4: f7dc fe51 bl 800a16a + 802d4c8: 4603 mov r3, r0 + 802d4ca: 2b00 cmp r3, #0 + 802d4cc: d106 bne.n 802d4dc lv_obj_add_flag(menu->main_header, LV_OBJ_FLAG_HIDDEN); - 802d562: 68fb ldr r3, [r7, #12] - 802d564: 6b1b ldr r3, [r3, #48] ; 0x30 - 802d566: 2101 movs r1, #1 - 802d568: 4618 mov r0, r3 - 802d56a: f7d9 f825 bl 80065b8 - 802d56e: e007 b.n 802d580 + 802d4ce: 68fb ldr r3, [r7, #12] + 802d4d0: 6b1b ldr r3, [r3, #48] ; 0x30 + 802d4d2: 2101 movs r1, #1 + 802d4d4: 4618 mov r0, r3 + 802d4d6: f7d9 f839 bl 800654c + 802d4da: e007 b.n 802d4ec } else { lv_obj_clear_flag(menu->main_header, LV_OBJ_FLAG_HIDDEN); - 802d570: 68fb ldr r3, [r7, #12] - 802d572: 6b1b ldr r3, [r3, #48] ; 0x30 - 802d574: 2101 movs r1, #1 - 802d576: 4618 mov r0, r3 - 802d578: f7d9 f872 bl 8006660 - 802d57c: e000 b.n 802d580 + 802d4dc: 68fb ldr r3, [r7, #12] + 802d4de: 6b1b ldr r3, [r3, #48] ; 0x30 + 802d4e0: 2101 movs r1, #1 + 802d4e2: 4618 mov r0, r3 + 802d4e4: f7d9 f886 bl 80065f4 + 802d4e8: e000 b.n 802d4ec if(menu->main_header == NULL || menu->main_page == NULL) return; - 802d57e: bf00 nop + 802d4ea: bf00 nop } } - 802d580: 3710 adds r7, #16 - 802d582: 46bd mov sp, r7 - 802d584: bd80 pop {r7, pc} + 802d4ec: 3710 adds r7, #16 + 802d4ee: 46bd mov sp, r7 + 802d4f0: bd80 pop {r7, pc} -0802d586 : +0802d4f2 : lv_menu_load_page_event_data_t * event_data = lv_event_get_user_data(e); lv_mem_free(event_data); } static void lv_menu_back_event_cb(lv_event_t * e) { - 802d586: b580 push {r7, lr} - 802d588: b088 sub sp, #32 - 802d58a: af00 add r7, sp, #0 - 802d58c: 6078 str r0, [r7, #4] + 802d4f2: b580 push {r7, lr} + 802d4f4: b088 sub sp, #32 + 802d4f6: af00 add r7, sp, #0 + 802d4f8: 6078 str r0, [r7, #4] lv_event_code_t code = lv_event_get_code(e); - 802d58e: 6878 ldr r0, [r7, #4] - 802d590: f7d5 f80c bl 80025ac - 802d594: 4603 mov r3, r0 - 802d596: 77fb strb r3, [r7, #31] + 802d4fa: 6878 ldr r0, [r7, #4] + 802d4fc: f7d5 f820 bl 8002540 + 802d500: 4603 mov r3, r0 + 802d502: 77fb strb r3, [r7, #31] /* LV_EVENT_CLICKED */ if(code == LV_EVENT_CLICKED) { - 802d598: 7ffb ldrb r3, [r7, #31] - 802d59a: 2b07 cmp r3, #7 - 802d59c: d156 bne.n 802d64c + 802d504: 7ffb ldrb r3, [r7, #31] + 802d506: 2b07 cmp r3, #7 + 802d508: d156 bne.n 802d5b8 lv_obj_t * obj = lv_event_get_target(e); - 802d59e: 6878 ldr r0, [r7, #4] - 802d5a0: f7d4 ffee bl 8002580 - 802d5a4: 61b8 str r0, [r7, #24] + 802d50a: 6878 ldr r0, [r7, #4] + 802d50c: f7d5 f802 bl 8002514 + 802d510: 61b8 str r0, [r7, #24] lv_menu_t * menu = (lv_menu_t *)lv_event_get_user_data(e); - 802d5a6: 6878 ldr r0, [r7, #4] - 802d5a8: f7d5 f819 bl 80025de - 802d5ac: 6178 str r0, [r7, #20] + 802d512: 6878 ldr r0, [r7, #4] + 802d514: f7d5 f82d bl 8002572 + 802d518: 6178 str r0, [r7, #20] if(!(obj == menu->main_header_back_btn || obj == menu->sidebar_header_back_btn)) return; - 802d5ae: 697b ldr r3, [r7, #20] - 802d5b0: 6b5b ldr r3, [r3, #52] ; 0x34 - 802d5b2: 69ba ldr r2, [r7, #24] - 802d5b4: 429a cmp r2, r3 - 802d5b6: d004 beq.n 802d5c2 - 802d5b8: 697b ldr r3, [r7, #20] - 802d5ba: 6c9b ldr r3, [r3, #72] ; 0x48 - 802d5bc: 69ba ldr r2, [r7, #24] - 802d5be: 429a cmp r2, r3 - 802d5c0: d141 bne.n 802d646 + 802d51a: 697b ldr r3, [r7, #20] + 802d51c: 6b5b ldr r3, [r3, #52] ; 0x34 + 802d51e: 69ba ldr r2, [r7, #24] + 802d520: 429a cmp r2, r3 + 802d522: d004 beq.n 802d52e + 802d524: 697b ldr r3, [r7, #20] + 802d526: 6c9b ldr r3, [r3, #72] ; 0x48 + 802d528: 69ba ldr r2, [r7, #24] + 802d52a: 429a cmp r2, r3 + 802d52c: d141 bne.n 802d5b2 menu->prev_depth = menu->cur_depth; /* Save the previous value for user event handler */ - 802d5c2: 697b ldr r3, [r7, #20] - 802d5c4: f893 2060 ldrb.w r2, [r3, #96] ; 0x60 - 802d5c8: 697b ldr r3, [r7, #20] - 802d5ca: f883 2061 strb.w r2, [r3, #97] ; 0x61 + 802d52e: 697b ldr r3, [r7, #20] + 802d530: f893 2060 ldrb.w r2, [r3, #96] ; 0x60 + 802d534: 697b ldr r3, [r7, #20] + 802d536: f883 2061 strb.w r2, [r3, #97] ; 0x61 if(lv_menu_back_btn_is_root((lv_obj_t *)menu, obj)) return; - 802d5ce: 69b9 ldr r1, [r7, #24] - 802d5d0: 6978 ldr r0, [r7, #20] - 802d5d2: f7ff fde7 bl 802d1a4 - 802d5d6: 4603 mov r3, r0 - 802d5d8: 2b00 cmp r3, #0 - 802d5da: d136 bne.n 802d64a + 802d53a: 69b9 ldr r1, [r7, #24] + 802d53c: 6978 ldr r0, [r7, #20] + 802d53e: f7ff fde7 bl 802d110 + 802d542: 4603 mov r3, r0 + 802d544: 2b00 cmp r3, #0 + 802d546: d136 bne.n 802d5b6 lv_ll_t * history_ll = &(menu->history_ll); - 802d5dc: 697b ldr r3, [r7, #20] - 802d5de: 3354 adds r3, #84 ; 0x54 - 802d5e0: 613b str r3, [r7, #16] + 802d548: 697b ldr r3, [r7, #20] + 802d54a: 3354 adds r3, #84 ; 0x54 + 802d54c: 613b str r3, [r7, #16] /* The current menu */ lv_menu_history_t * act_hist = _lv_ll_get_head(history_ll); - 802d5e2: 6938 ldr r0, [r7, #16] - 802d5e4: f004 feba bl 803235c <_lv_ll_get_head> - 802d5e8: 60f8 str r0, [r7, #12] + 802d54e: 6938 ldr r0, [r7, #16] + 802d550: f004 feba bl 80322c8 <_lv_ll_get_head> + 802d554: 60f8 str r0, [r7, #12] /* The previous menu */ lv_menu_history_t * prev_hist = _lv_ll_get_next(history_ll, act_hist); - 802d5ea: 68f9 ldr r1, [r7, #12] - 802d5ec: 6938 ldr r0, [r7, #16] - 802d5ee: f004 fed5 bl 803239c <_lv_ll_get_next> - 802d5f2: 60b8 str r0, [r7, #8] + 802d556: 68f9 ldr r1, [r7, #12] + 802d558: 6938 ldr r0, [r7, #16] + 802d55a: f004 fed5 bl 8032308 <_lv_ll_get_next> + 802d55e: 60b8 str r0, [r7, #8] if(prev_hist != NULL) { - 802d5f4: 68bb ldr r3, [r7, #8] - 802d5f6: 2b00 cmp r3, #0 - 802d5f8: d028 beq.n 802d64c + 802d560: 68bb ldr r3, [r7, #8] + 802d562: 2b00 cmp r3, #0 + 802d564: d028 beq.n 802d5b8 /* Previous menu exists */ /* Delete the current item from the history */ _lv_ll_remove(history_ll, act_hist); - 802d5fa: 68f9 ldr r1, [r7, #12] - 802d5fc: 6938 ldr r0, [r7, #16] - 802d5fe: f004 fe2f bl 8032260 <_lv_ll_remove> + 802d566: 68f9 ldr r1, [r7, #12] + 802d568: 6938 ldr r0, [r7, #16] + 802d56a: f004 fe2f bl 80321cc <_lv_ll_remove> lv_mem_free(act_hist); - 802d602: 68f8 ldr r0, [r7, #12] - 802d604: f005 f96a bl 80328dc + 802d56e: 68f8 ldr r0, [r7, #12] + 802d570: f005 f96a bl 8032848 menu->cur_depth--; - 802d608: 697b ldr r3, [r7, #20] - 802d60a: f893 3060 ldrb.w r3, [r3, #96] ; 0x60 - 802d60e: 3b01 subs r3, #1 - 802d610: b2da uxtb r2, r3 - 802d612: 697b ldr r3, [r7, #20] - 802d614: f883 2060 strb.w r2, [r3, #96] ; 0x60 + 802d574: 697b ldr r3, [r7, #20] + 802d576: f893 3060 ldrb.w r3, [r3, #96] ; 0x60 + 802d57a: 3b01 subs r3, #1 + 802d57c: b2da uxtb r2, r3 + 802d57e: 697b ldr r3, [r7, #20] + 802d580: f883 2060 strb.w r2, [r3, #96] ; 0x60 /* Create the previous menu. * Remove it from the history because `lv_menu_set_page` will add it again */ _lv_ll_remove(history_ll, prev_hist); - 802d618: 68b9 ldr r1, [r7, #8] - 802d61a: 6938 ldr r0, [r7, #16] - 802d61c: f004 fe20 bl 8032260 <_lv_ll_remove> + 802d584: 68b9 ldr r1, [r7, #8] + 802d586: 6938 ldr r0, [r7, #16] + 802d588: f004 fe20 bl 80321cc <_lv_ll_remove> menu->cur_depth--; - 802d620: 697b ldr r3, [r7, #20] - 802d622: f893 3060 ldrb.w r3, [r3, #96] ; 0x60 - 802d626: 3b01 subs r3, #1 - 802d628: b2da uxtb r2, r3 - 802d62a: 697b ldr r3, [r7, #20] - 802d62c: f883 2060 strb.w r2, [r3, #96] ; 0x60 + 802d58c: 697b ldr r3, [r7, #20] + 802d58e: f893 3060 ldrb.w r3, [r3, #96] ; 0x60 + 802d592: 3b01 subs r3, #1 + 802d594: b2da uxtb r2, r3 + 802d596: 697b ldr r3, [r7, #20] + 802d598: f883 2060 strb.w r2, [r3, #96] ; 0x60 lv_menu_set_page(&(menu->obj), prev_hist->page); - 802d630: 697a ldr r2, [r7, #20] - 802d632: 68bb ldr r3, [r7, #8] - 802d634: 681b ldr r3, [r3, #0] - 802d636: 4619 mov r1, r3 - 802d638: 4610 mov r0, r2 - 802d63a: f7ff fcd1 bl 802cfe0 + 802d59c: 697a ldr r2, [r7, #20] + 802d59e: 68bb ldr r3, [r7, #8] + 802d5a0: 681b ldr r3, [r3, #0] + 802d5a2: 4619 mov r1, r3 + 802d5a4: 4610 mov r0, r2 + 802d5a6: f7ff fcd1 bl 802cf4c lv_mem_free(prev_hist); - 802d63e: 68b8 ldr r0, [r7, #8] - 802d640: f005 f94c bl 80328dc - 802d644: e002 b.n 802d64c + 802d5aa: 68b8 ldr r0, [r7, #8] + 802d5ac: f005 f94c bl 8032848 + 802d5b0: e002 b.n 802d5b8 if(!(obj == menu->main_header_back_btn || obj == menu->sidebar_header_back_btn)) return; - 802d646: bf00 nop - 802d648: e000 b.n 802d64c + 802d5b2: bf00 nop + 802d5b4: e000 b.n 802d5b8 if(lv_menu_back_btn_is_root((lv_obj_t *)menu, obj)) return; - 802d64a: bf00 nop + 802d5b6: bf00 nop } } } - 802d64c: 3720 adds r7, #32 - 802d64e: 46bd mov sp, r7 - 802d650: bd80 pop {r7, pc} + 802d5b8: 3720 adds r7, #32 + 802d5ba: 46bd mov sp, r7 + 802d5bc: bd80 pop {r7, pc} -0802d652 : +0802d5be : static void lv_menu_value_changed_event_cb(lv_event_t * e) { - 802d652: b580 push {r7, lr} - 802d654: b086 sub sp, #24 - 802d656: af00 add r7, sp, #0 - 802d658: 6078 str r0, [r7, #4] + 802d5be: b580 push {r7, lr} + 802d5c0: b086 sub sp, #24 + 802d5c2: af00 add r7, sp, #0 + 802d5c4: 6078 str r0, [r7, #4] lv_obj_t * obj = lv_event_get_user_data(e); - 802d65a: 6878 ldr r0, [r7, #4] - 802d65c: f7d4 ffbf bl 80025de - 802d660: 6178 str r0, [r7, #20] + 802d5c6: 6878 ldr r0, [r7, #4] + 802d5c8: f7d4 ffd3 bl 8002572 + 802d5cc: 6178 str r0, [r7, #20] lv_menu_t * menu = (lv_menu_t *)obj; - 802d662: 697b ldr r3, [r7, #20] - 802d664: 613b str r3, [r7, #16] + 802d5ce: 697b ldr r3, [r7, #20] + 802d5d0: 613b str r3, [r7, #16] lv_menu_page_t * main_page = (lv_menu_page_t *)lv_menu_get_cur_main_page(obj); - 802d666: 6978 ldr r0, [r7, #20] - 802d668: f7ff fd82 bl 802d170 - 802d66c: 60f8 str r0, [r7, #12] + 802d5d2: 6978 ldr r0, [r7, #20] + 802d5d4: f7ff fd82 bl 802d0dc + 802d5d8: 60f8 str r0, [r7, #12] if(main_page != NULL && menu->main_header_title != NULL) { - 802d66e: 68fb ldr r3, [r7, #12] - 802d670: 2b00 cmp r3, #0 - 802d672: d01c beq.n 802d6ae - 802d674: 693b ldr r3, [r7, #16] - 802d676: 6b9b ldr r3, [r3, #56] ; 0x38 - 802d678: 2b00 cmp r3, #0 - 802d67a: d018 beq.n 802d6ae + 802d5da: 68fb ldr r3, [r7, #12] + 802d5dc: 2b00 cmp r3, #0 + 802d5de: d01c beq.n 802d61a + 802d5e0: 693b ldr r3, [r7, #16] + 802d5e2: 6b9b ldr r3, [r3, #56] ; 0x38 + 802d5e4: 2b00 cmp r3, #0 + 802d5e6: d018 beq.n 802d61a if(main_page->title != NULL) { - 802d67c: 68fb ldr r3, [r7, #12] - 802d67e: 6a5b ldr r3, [r3, #36] ; 0x24 - 802d680: 2b00 cmp r3, #0 - 802d682: d00e beq.n 802d6a2 + 802d5e8: 68fb ldr r3, [r7, #12] + 802d5ea: 6a5b ldr r3, [r3, #36] ; 0x24 + 802d5ec: 2b00 cmp r3, #0 + 802d5ee: d00e beq.n 802d60e lv_label_set_text(menu->main_header_title, main_page->title); - 802d684: 693b ldr r3, [r7, #16] - 802d686: 6b9a ldr r2, [r3, #56] ; 0x38 - 802d688: 68fb ldr r3, [r7, #12] - 802d68a: 6a5b ldr r3, [r3, #36] ; 0x24 - 802d68c: 4619 mov r1, r3 - 802d68e: 4610 mov r0, r2 - 802d690: f011 fb38 bl 803ed04 + 802d5f0: 693b ldr r3, [r7, #16] + 802d5f2: 6b9a ldr r2, [r3, #56] ; 0x38 + 802d5f4: 68fb ldr r3, [r7, #12] + 802d5f6: 6a5b ldr r3, [r3, #36] ; 0x24 + 802d5f8: 4619 mov r1, r3 + 802d5fa: 4610 mov r0, r2 + 802d5fc: f011 fb38 bl 803ec70 lv_obj_clear_flag(menu->main_header_title, LV_OBJ_FLAG_HIDDEN); - 802d694: 693b ldr r3, [r7, #16] - 802d696: 6b9b ldr r3, [r3, #56] ; 0x38 - 802d698: 2101 movs r1, #1 - 802d69a: 4618 mov r0, r3 - 802d69c: f7d8 ffe0 bl 8006660 - 802d6a0: e005 b.n 802d6ae + 802d600: 693b ldr r3, [r7, #16] + 802d602: 6b9b ldr r3, [r3, #56] ; 0x38 + 802d604: 2101 movs r1, #1 + 802d606: 4618 mov r0, r3 + 802d608: f7d8 fff4 bl 80065f4 + 802d60c: e005 b.n 802d61a } else { lv_obj_add_flag(menu->main_header_title, LV_OBJ_FLAG_HIDDEN); - 802d6a2: 693b ldr r3, [r7, #16] - 802d6a4: 6b9b ldr r3, [r3, #56] ; 0x38 - 802d6a6: 2101 movs r1, #1 - 802d6a8: 4618 mov r0, r3 - 802d6aa: f7d8 ff85 bl 80065b8 + 802d60e: 693b ldr r3, [r7, #16] + 802d610: 6b9b ldr r3, [r3, #56] ; 0x38 + 802d612: 2101 movs r1, #1 + 802d614: 4618 mov r0, r3 + 802d616: f7d8 ff99 bl 800654c } } lv_menu_page_t * sidebar_page = (lv_menu_page_t *)lv_menu_get_cur_sidebar_page(obj); - 802d6ae: 6978 ldr r0, [r7, #20] - 802d6b0: f7ff fd6b bl 802d18a - 802d6b4: 60b8 str r0, [r7, #8] + 802d61a: 6978 ldr r0, [r7, #20] + 802d61c: f7ff fd6b bl 802d0f6 + 802d620: 60b8 str r0, [r7, #8] if(sidebar_page != NULL && menu->sidebar_header_title != NULL) { - 802d6b6: 68bb ldr r3, [r7, #8] - 802d6b8: 2b00 cmp r3, #0 - 802d6ba: d01c beq.n 802d6f6 - 802d6bc: 693b ldr r3, [r7, #16] - 802d6be: 6cdb ldr r3, [r3, #76] ; 0x4c - 802d6c0: 2b00 cmp r3, #0 - 802d6c2: d018 beq.n 802d6f6 + 802d622: 68bb ldr r3, [r7, #8] + 802d624: 2b00 cmp r3, #0 + 802d626: d01c beq.n 802d662 + 802d628: 693b ldr r3, [r7, #16] + 802d62a: 6cdb ldr r3, [r3, #76] ; 0x4c + 802d62c: 2b00 cmp r3, #0 + 802d62e: d018 beq.n 802d662 if(sidebar_page->title != NULL) { - 802d6c4: 68bb ldr r3, [r7, #8] - 802d6c6: 6a5b ldr r3, [r3, #36] ; 0x24 - 802d6c8: 2b00 cmp r3, #0 - 802d6ca: d00e beq.n 802d6ea + 802d630: 68bb ldr r3, [r7, #8] + 802d632: 6a5b ldr r3, [r3, #36] ; 0x24 + 802d634: 2b00 cmp r3, #0 + 802d636: d00e beq.n 802d656 lv_label_set_text(menu->sidebar_header_title, sidebar_page->title); - 802d6cc: 693b ldr r3, [r7, #16] - 802d6ce: 6cda ldr r2, [r3, #76] ; 0x4c - 802d6d0: 68bb ldr r3, [r7, #8] - 802d6d2: 6a5b ldr r3, [r3, #36] ; 0x24 - 802d6d4: 4619 mov r1, r3 - 802d6d6: 4610 mov r0, r2 - 802d6d8: f011 fb14 bl 803ed04 + 802d638: 693b ldr r3, [r7, #16] + 802d63a: 6cda ldr r2, [r3, #76] ; 0x4c + 802d63c: 68bb ldr r3, [r7, #8] + 802d63e: 6a5b ldr r3, [r3, #36] ; 0x24 + 802d640: 4619 mov r1, r3 + 802d642: 4610 mov r0, r2 + 802d644: f011 fb14 bl 803ec70 lv_obj_clear_flag(menu->sidebar_header_title, LV_OBJ_FLAG_HIDDEN); - 802d6dc: 693b ldr r3, [r7, #16] - 802d6de: 6cdb ldr r3, [r3, #76] ; 0x4c - 802d6e0: 2101 movs r1, #1 - 802d6e2: 4618 mov r0, r3 - 802d6e4: f7d8 ffbc bl 8006660 + 802d648: 693b ldr r3, [r7, #16] + 802d64a: 6cdb ldr r3, [r3, #76] ; 0x4c + 802d64c: 2101 movs r1, #1 + 802d64e: 4618 mov r0, r3 + 802d650: f7d8 ffd0 bl 80065f4 } else { lv_obj_add_flag(menu->sidebar_header_title, LV_OBJ_FLAG_HIDDEN); } } } - 802d6e8: e005 b.n 802d6f6 + 802d654: e005 b.n 802d662 lv_obj_add_flag(menu->sidebar_header_title, LV_OBJ_FLAG_HIDDEN); - 802d6ea: 693b ldr r3, [r7, #16] - 802d6ec: 6cdb ldr r3, [r3, #76] ; 0x4c - 802d6ee: 2101 movs r1, #1 - 802d6f0: 4618 mov r0, r3 - 802d6f2: f7d8 ff61 bl 80065b8 + 802d656: 693b ldr r3, [r7, #16] + 802d658: 6cdb ldr r3, [r3, #76] ; 0x4c + 802d65a: 2101 movs r1, #1 + 802d65c: 4618 mov r0, r3 + 802d65e: f7d8 ff75 bl 800654c } - 802d6f6: bf00 nop - 802d6f8: 3718 adds r7, #24 - 802d6fa: 46bd mov sp, r7 - 802d6fc: bd80 pop {r7, pc} + 802d662: bf00 nop + 802d664: 3718 adds r7, #24 + 802d666: 46bd mov sp, r7 + 802d668: bd80 pop {r7, pc} -0802d6fe : +0802d66a : * @return sinus of 'angle'. sin(-90) = -32767, sin(90) = 32767 */ LV_ATTRIBUTE_FAST_MEM int16_t lv_trigo_sin(int16_t angle); static inline LV_ATTRIBUTE_FAST_MEM int16_t lv_trigo_cos(int16_t angle) { - 802d6fe: b580 push {r7, lr} - 802d700: b082 sub sp, #8 - 802d702: af00 add r7, sp, #0 - 802d704: 4603 mov r3, r0 - 802d706: 80fb strh r3, [r7, #6] + 802d66a: b580 push {r7, lr} + 802d66c: b082 sub sp, #8 + 802d66e: af00 add r7, sp, #0 + 802d670: 4603 mov r3, r0 + 802d672: 80fb strh r3, [r7, #6] return lv_trigo_sin(angle + 90); - 802d708: 88fb ldrh r3, [r7, #6] - 802d70a: 335a adds r3, #90 ; 0x5a - 802d70c: b29b uxth r3, r3 - 802d70e: b21b sxth r3, r3 - 802d710: 4618 mov r0, r3 - 802d712: f004 fedb bl 80324cc - 802d716: 4603 mov r3, r0 + 802d674: 88fb ldrh r3, [r7, #6] + 802d676: 335a adds r3, #90 ; 0x5a + 802d678: b29b uxth r3, r3 + 802d67a: b21b sxth r3, r3 + 802d67c: 4618 mov r0, r3 + 802d67e: f004 fedb bl 8032438 + 802d682: 4603 mov r3, r0 } - 802d718: 4618 mov r0, r3 - 802d71a: 3708 adds r7, #8 - 802d71c: 46bd mov sp, r7 - 802d71e: bd80 pop {r7, pc} + 802d684: 4618 mov r0, r3 + 802d686: 3708 adds r7, #8 + 802d688: 46bd mov sp, r7 + 802d68a: bd80 pop {r7, pc} -0802d720 : +0802d68c : * Get the width of an area * @param area_p pointer to an area * @return the width of the area (if x1 == x2 -> width = 1) */ static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p) { - 802d720: b480 push {r7} - 802d722: b083 sub sp, #12 - 802d724: af00 add r7, sp, #0 - 802d726: 6078 str r0, [r7, #4] + 802d68c: b480 push {r7} + 802d68e: b083 sub sp, #12 + 802d690: af00 add r7, sp, #0 + 802d692: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 802d728: 687b ldr r3, [r7, #4] - 802d72a: f9b3 3004 ldrsh.w r3, [r3, #4] - 802d72e: b29a uxth r2, r3 - 802d730: 687b ldr r3, [r7, #4] - 802d732: f9b3 3000 ldrsh.w r3, [r3] - 802d736: b29b uxth r3, r3 - 802d738: 1ad3 subs r3, r2, r3 - 802d73a: b29b uxth r3, r3 - 802d73c: 3301 adds r3, #1 - 802d73e: b29b uxth r3, r3 - 802d740: b21b sxth r3, r3 + 802d694: 687b ldr r3, [r7, #4] + 802d696: f9b3 3004 ldrsh.w r3, [r3, #4] + 802d69a: b29a uxth r2, r3 + 802d69c: 687b ldr r3, [r7, #4] + 802d69e: f9b3 3000 ldrsh.w r3, [r3] + 802d6a2: b29b uxth r3, r3 + 802d6a4: 1ad3 subs r3, r2, r3 + 802d6a6: b29b uxth r3, r3 + 802d6a8: 3301 adds r3, #1 + 802d6aa: b29b uxth r3, r3 + 802d6ac: b21b sxth r3, r3 } - 802d742: 4618 mov r0, r3 - 802d744: 370c adds r7, #12 - 802d746: 46bd mov sp, r7 - 802d748: bc80 pop {r7} - 802d74a: 4770 bx lr + 802d6ae: 4618 mov r0, r3 + 802d6b0: 370c adds r7, #12 + 802d6b2: 46bd mov sp, r7 + 802d6b4: bc80 pop {r7} + 802d6b6: 4770 bx lr -0802d74c : +0802d6b8 : * Get the height of an area * @param area_p pointer to an area * @return the height of the area (if y1 == y2 -> height = 1) */ static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) { - 802d74c: b480 push {r7} - 802d74e: b083 sub sp, #12 - 802d750: af00 add r7, sp, #0 - 802d752: 6078 str r0, [r7, #4] + 802d6b8: b480 push {r7} + 802d6ba: b083 sub sp, #12 + 802d6bc: af00 add r7, sp, #0 + 802d6be: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 802d754: 687b ldr r3, [r7, #4] - 802d756: f9b3 3006 ldrsh.w r3, [r3, #6] - 802d75a: b29a uxth r2, r3 - 802d75c: 687b ldr r3, [r7, #4] - 802d75e: f9b3 3002 ldrsh.w r3, [r3, #2] - 802d762: b29b uxth r3, r3 - 802d764: 1ad3 subs r3, r2, r3 - 802d766: b29b uxth r3, r3 - 802d768: 3301 adds r3, #1 - 802d76a: b29b uxth r3, r3 - 802d76c: b21b sxth r3, r3 + 802d6c0: 687b ldr r3, [r7, #4] + 802d6c2: f9b3 3006 ldrsh.w r3, [r3, #6] + 802d6c6: b29a uxth r2, r3 + 802d6c8: 687b ldr r3, [r7, #4] + 802d6ca: f9b3 3002 ldrsh.w r3, [r3, #2] + 802d6ce: b29b uxth r3, r3 + 802d6d0: 1ad3 subs r3, r2, r3 + 802d6d2: b29b uxth r3, r3 + 802d6d4: 3301 adds r3, #1 + 802d6d6: b29b uxth r3, r3 + 802d6d8: b21b sxth r3, r3 } - 802d76e: 4618 mov r0, r3 - 802d770: 370c adds r7, #12 - 802d772: 46bd mov sp, r7 - 802d774: bc80 pop {r7} - 802d776: 4770 bx lr + 802d6da: 4618 mov r0, r3 + 802d6dc: 370c adds r7, #12 + 802d6de: 46bd mov sp, r7 + 802d6e0: bc80 pop {r7} + 802d6e2: 4770 bx lr -0802d778 : +0802d6e4 : * @param c2 the second color to mix (usually the background) * @param mix The ratio of the colors. 0: full `c2`, 255: full `c1`, 127: half `c1` and half`c2` * @return the mixed color */ LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix) { - 802d778: b480 push {r7} - 802d77a: b087 sub sp, #28 - 802d77c: af00 add r7, sp, #0 - 802d77e: 80b8 strh r0, [r7, #4] - 802d780: 8039 strh r1, [r7, #0] - 802d782: 4613 mov r3, r2 - 802d784: 70fb strb r3, [r7, #3] + 802d6e4: b480 push {r7} + 802d6e6: b087 sub sp, #28 + 802d6e8: af00 add r7, sp, #0 + 802d6ea: 80b8 strh r0, [r7, #4] + 802d6ec: 8039 strh r1, [r7, #0] + 802d6ee: 4613 mov r3, r2 + 802d6f0: 70fb strb r3, [r7, #3] lv_color_t ret; #if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0 /*Source: https://stackoverflow.com/a/50012418/1999969*/ mix = (mix + 4) >> 3; - 802d786: 78fb ldrb r3, [r7, #3] - 802d788: 3304 adds r3, #4 - 802d78a: 10db asrs r3, r3, #3 - 802d78c: 70fb strb r3, [r7, #3] + 802d6f2: 78fb ldrb r3, [r7, #3] + 802d6f4: 3304 adds r3, #4 + 802d6f6: 10db asrs r3, r3, #3 + 802d6f8: 70fb strb r3, [r7, #3] uint32_t bg = (uint32_t)((uint32_t)c2.full | ((uint32_t)c2.full << 16)) & - 802d78e: 883b ldrh r3, [r7, #0] - 802d790: 461a mov r2, r3 - 802d792: 883b ldrh r3, [r7, #0] - 802d794: 041b lsls r3, r3, #16 - 802d796: 431a orrs r2, r3 - 802d798: 4b12 ldr r3, [pc, #72] ; (802d7e4 ) - 802d79a: 4013 ands r3, r2 - 802d79c: 617b str r3, [r7, #20] + 802d6fa: 883b ldrh r3, [r7, #0] + 802d6fc: 461a mov r2, r3 + 802d6fe: 883b ldrh r3, [r7, #0] + 802d700: 041b lsls r3, r3, #16 + 802d702: 431a orrs r2, r3 + 802d704: 4b12 ldr r3, [pc, #72] ; (802d750 ) + 802d706: 4013 ands r3, r2 + 802d708: 617b str r3, [r7, #20] 0x7E0F81F; /*0b00000111111000001111100000011111*/ uint32_t fg = (uint32_t)((uint32_t)c1.full | ((uint32_t)c1.full << 16)) & 0x7E0F81F; - 802d79e: 88bb ldrh r3, [r7, #4] - 802d7a0: 461a mov r2, r3 - 802d7a2: 88bb ldrh r3, [r7, #4] - 802d7a4: 041b lsls r3, r3, #16 - 802d7a6: 431a orrs r2, r3 - 802d7a8: 4b0e ldr r3, [pc, #56] ; (802d7e4 ) - 802d7aa: 4013 ands r3, r2 - 802d7ac: 613b str r3, [r7, #16] + 802d70a: 88bb ldrh r3, [r7, #4] + 802d70c: 461a mov r2, r3 + 802d70e: 88bb ldrh r3, [r7, #4] + 802d710: 041b lsls r3, r3, #16 + 802d712: 431a orrs r2, r3 + 802d714: 4b0e ldr r3, [pc, #56] ; (802d750 ) + 802d716: 4013 ands r3, r2 + 802d718: 613b str r3, [r7, #16] uint32_t result = ((((fg - bg) * mix) >> 5) + bg) & 0x7E0F81F; - 802d7ae: 693a ldr r2, [r7, #16] - 802d7b0: 697b ldr r3, [r7, #20] - 802d7b2: 1ad3 subs r3, r2, r3 - 802d7b4: 78fa ldrb r2, [r7, #3] - 802d7b6: fb02 f303 mul.w r3, r2, r3 - 802d7ba: 095a lsrs r2, r3, #5 - 802d7bc: 697b ldr r3, [r7, #20] - 802d7be: 441a add r2, r3 - 802d7c0: 4b08 ldr r3, [pc, #32] ; (802d7e4 ) - 802d7c2: 4013 ands r3, r2 - 802d7c4: 60fb str r3, [r7, #12] + 802d71a: 693a ldr r2, [r7, #16] + 802d71c: 697b ldr r3, [r7, #20] + 802d71e: 1ad3 subs r3, r2, r3 + 802d720: 78fa ldrb r2, [r7, #3] + 802d722: fb02 f303 mul.w r3, r2, r3 + 802d726: 095a lsrs r2, r3, #5 + 802d728: 697b ldr r3, [r7, #20] + 802d72a: 441a add r2, r3 + 802d72c: 4b08 ldr r3, [pc, #32] ; (802d750 ) + 802d72e: 4013 ands r3, r2 + 802d730: 60fb str r3, [r7, #12] ret.full = (uint16_t)((result >> 16) | result); - 802d7c6: 68fb ldr r3, [r7, #12] - 802d7c8: 0c1b lsrs r3, r3, #16 - 802d7ca: b29a uxth r2, r3 - 802d7cc: 68fb ldr r3, [r7, #12] - 802d7ce: b29b uxth r3, r3 - 802d7d0: 4313 orrs r3, r2 - 802d7d2: b29b uxth r3, r3 - 802d7d4: 813b strh r3, [r7, #8] + 802d732: 68fb ldr r3, [r7, #12] + 802d734: 0c1b lsrs r3, r3, #16 + 802d736: b29a uxth r2, r3 + 802d738: 68fb ldr r3, [r7, #12] + 802d73a: b29b uxth r3, r3 + 802d73c: 4313 orrs r3, r2 + 802d73e: b29b uxth r3, r3 + 802d740: 813b strh r3, [r7, #8] #else /*LV_COLOR_DEPTH == 1*/ ret.full = mix > LV_OPA_50 ? c1.full : c2.full; #endif return ret; - 802d7d6: 893b ldrh r3, [r7, #8] + 802d742: 893b ldrh r3, [r7, #8] } - 802d7d8: 4618 mov r0, r3 - 802d7da: 371c adds r7, #28 - 802d7dc: 46bd mov sp, r7 - 802d7de: bc80 pop {r7} - 802d7e0: 4770 bx lr - 802d7e2: bf00 nop - 802d7e4: 07e0f81f .word 0x07e0f81f + 802d744: 4618 mov r0, r3 + 802d746: 371c adds r7, #28 + 802d748: 46bd mov sp, r7 + 802d74a: bc80 pop {r7} + 802d74c: 4770 bx lr + 802d74e: bf00 nop + 802d750: 07e0f81f .word 0x07e0f81f -0802d7e8 : +0802d754 : static inline lv_coord_t lv_obj_get_style_width(const struct _lv_obj_t * obj, uint32_t part) { - 802d7e8: b580 push {r7, lr} - 802d7ea: b084 sub sp, #16 - 802d7ec: af00 add r7, sp, #0 - 802d7ee: 6078 str r0, [r7, #4] - 802d7f0: 6039 str r1, [r7, #0] + 802d754: b580 push {r7, lr} + 802d756: b084 sub sp, #16 + 802d758: af00 add r7, sp, #0 + 802d75a: 6078 str r0, [r7, #4] + 802d75c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_WIDTH); - 802d7f2: f241 0201 movw r2, #4097 ; 0x1001 - 802d7f6: 6839 ldr r1, [r7, #0] - 802d7f8: 6878 ldr r0, [r7, #4] - 802d7fa: f7e0 fad9 bl 800ddb0 - 802d7fe: 4603 mov r3, r0 - 802d800: 60fb str r3, [r7, #12] + 802d75e: f241 0201 movw r2, #4097 ; 0x1001 + 802d762: 6839 ldr r1, [r7, #0] + 802d764: 6878 ldr r0, [r7, #4] + 802d766: f7e0 faed bl 800dd44 + 802d76a: 4603 mov r3, r0 + 802d76c: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 802d802: 68fb ldr r3, [r7, #12] - 802d804: b21b sxth r3, r3 + 802d76e: 68fb ldr r3, [r7, #12] + 802d770: b21b sxth r3, r3 } - 802d806: 4618 mov r0, r3 - 802d808: 3710 adds r7, #16 - 802d80a: 46bd mov sp, r7 - 802d80c: bd80 pop {r7, pc} + 802d772: 4618 mov r0, r3 + 802d774: 3710 adds r7, #16 + 802d776: 46bd mov sp, r7 + 802d778: bd80 pop {r7, pc} -0802d80e : +0802d77a : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MAX_WIDTH); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_height(const struct _lv_obj_t * obj, uint32_t part) { - 802d80e: b580 push {r7, lr} - 802d810: b084 sub sp, #16 - 802d812: af00 add r7, sp, #0 - 802d814: 6078 str r0, [r7, #4] - 802d816: 6039 str r1, [r7, #0] + 802d77a: b580 push {r7, lr} + 802d77c: b084 sub sp, #16 + 802d77e: af00 add r7, sp, #0 + 802d780: 6078 str r0, [r7, #4] + 802d782: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_HEIGHT); - 802d818: f241 0204 movw r2, #4100 ; 0x1004 - 802d81c: 6839 ldr r1, [r7, #0] - 802d81e: 6878 ldr r0, [r7, #4] - 802d820: f7e0 fac6 bl 800ddb0 - 802d824: 4603 mov r3, r0 - 802d826: 60fb str r3, [r7, #12] + 802d784: f241 0204 movw r2, #4100 ; 0x1004 + 802d788: 6839 ldr r1, [r7, #0] + 802d78a: 6878 ldr r0, [r7, #4] + 802d78c: f7e0 fada bl 800dd44 + 802d790: 4603 mov r3, r0 + 802d792: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 802d828: 68fb ldr r3, [r7, #12] - 802d82a: b21b sxth r3, r3 + 802d794: 68fb ldr r3, [r7, #12] + 802d796: b21b sxth r3, r3 } - 802d82c: 4618 mov r0, r3 - 802d82e: 3710 adds r7, #16 - 802d830: 46bd mov sp, r7 - 802d832: bd80 pop {r7, pc} + 802d798: 4618 mov r0, r3 + 802d79a: 3710 adds r7, #16 + 802d79c: 46bd mov sp, r7 + 802d79e: bd80 pop {r7, pc} -0802d834 : +0802d7a0 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_WIDTH); return (lv_coord_t)v.num; } static inline bool lv_obj_get_style_arc_rounded(const struct _lv_obj_t * obj, uint32_t part) { - 802d834: b580 push {r7, lr} - 802d836: b084 sub sp, #16 - 802d838: af00 add r7, sp, #0 - 802d83a: 6078 str r0, [r7, #4] - 802d83c: 6039 str r1, [r7, #0] + 802d7a0: b580 push {r7, lr} + 802d7a2: b084 sub sp, #16 + 802d7a4: af00 add r7, sp, #0 + 802d7a6: 6078 str r0, [r7, #4] + 802d7a8: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_ROUNDED); - 802d83e: 2251 movs r2, #81 ; 0x51 - 802d840: 6839 ldr r1, [r7, #0] - 802d842: 6878 ldr r0, [r7, #4] - 802d844: f7e0 fab4 bl 800ddb0 - 802d848: 4603 mov r3, r0 - 802d84a: 60fb str r3, [r7, #12] + 802d7aa: 2251 movs r2, #81 ; 0x51 + 802d7ac: 6839 ldr r1, [r7, #0] + 802d7ae: 6878 ldr r0, [r7, #4] + 802d7b0: f7e0 fac8 bl 800dd44 + 802d7b4: 4603 mov r3, r0 + 802d7b6: 60fb str r3, [r7, #12] return (bool)v.num; - 802d84c: 68fb ldr r3, [r7, #12] - 802d84e: 2b00 cmp r3, #0 - 802d850: bf14 ite ne - 802d852: 2301 movne r3, #1 - 802d854: 2300 moveq r3, #0 - 802d856: b2db uxtb r3, r3 + 802d7b8: 68fb ldr r3, [r7, #12] + 802d7ba: 2b00 cmp r3, #0 + 802d7bc: bf14 ite ne + 802d7be: 2301 movne r3, #1 + 802d7c0: 2300 moveq r3, #0 + 802d7c2: b2db uxtb r3, r3 } - 802d858: 4618 mov r0, r3 - 802d85a: 3710 adds r7, #16 - 802d85c: 46bd mov sp, r7 - 802d85e: bd80 pop {r7, pc} + 802d7c4: 4618 mov r0, r3 + 802d7c6: 3710 adds r7, #16 + 802d7c8: 46bd mov sp, r7 + 802d7ca: bd80 pop {r7, pc} -0802d860 : +0802d7cc : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_CLIP_CORNER); return (bool)v.num; } static inline lv_opa_t lv_obj_get_style_opa(const struct _lv_obj_t * obj, uint32_t part) { - 802d860: b580 push {r7, lr} - 802d862: b084 sub sp, #16 - 802d864: af00 add r7, sp, #0 - 802d866: 6078 str r0, [r7, #4] - 802d868: 6039 str r1, [r7, #0] + 802d7cc: b580 push {r7, lr} + 802d7ce: b084 sub sp, #16 + 802d7d0: af00 add r7, sp, #0 + 802d7d2: 6078 str r0, [r7, #4] + 802d7d4: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_OPA); - 802d86a: f240 4262 movw r2, #1122 ; 0x462 - 802d86e: 6839 ldr r1, [r7, #0] - 802d870: 6878 ldr r0, [r7, #4] - 802d872: f7e0 fa9d bl 800ddb0 - 802d876: 4603 mov r3, r0 - 802d878: 60fb str r3, [r7, #12] + 802d7d6: f240 4262 movw r2, #1122 ; 0x462 + 802d7da: 6839 ldr r1, [r7, #0] + 802d7dc: 6878 ldr r0, [r7, #4] + 802d7de: f7e0 fab1 bl 800dd44 + 802d7e2: 4603 mov r3, r0 + 802d7e4: 60fb str r3, [r7, #12] return (lv_opa_t)v.num; - 802d87a: 68fb ldr r3, [r7, #12] - 802d87c: b2db uxtb r3, r3 + 802d7e6: 68fb ldr r3, [r7, #12] + 802d7e8: b2db uxtb r3, r3 } - 802d87e: 4618 mov r0, r3 - 802d880: 3710 adds r7, #16 - 802d882: 46bd mov sp, r7 - 802d884: bd80 pop {r7, pc} + 802d7ea: 4618 mov r0, r3 + 802d7ec: 3710 adds r7, #16 + 802d7ee: 46bd mov sp, r7 + 802d7f0: bd80 pop {r7, pc} -0802d886 : +0802d7f2 : /********************** * STATIC FUNCTIONS **********************/ static void lv_meter_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802d886: b580 push {r7, lr} - 802d888: b084 sub sp, #16 - 802d88a: af00 add r7, sp, #0 - 802d88c: 6078 str r0, [r7, #4] - 802d88e: 6039 str r1, [r7, #0] + 802d7f2: b580 push {r7, lr} + 802d7f4: b084 sub sp, #16 + 802d7f6: af00 add r7, sp, #0 + 802d7f8: 6078 str r0, [r7, #4] + 802d7fa: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_meter_t * meter = (lv_meter_t *)obj; - 802d890: 683b ldr r3, [r7, #0] - 802d892: 60fb str r3, [r7, #12] + 802d7fc: 683b ldr r3, [r7, #0] + 802d7fe: 60fb str r3, [r7, #12] _lv_ll_init(&meter->scale_ll, sizeof(lv_meter_scale_t)); - 802d894: 68fb ldr r3, [r7, #12] - 802d896: 3324 adds r3, #36 ; 0x24 - 802d898: 2124 movs r1, #36 ; 0x24 - 802d89a: 4618 mov r0, r3 - 802d89c: f004 fc60 bl 8032160 <_lv_ll_init> + 802d800: 68fb ldr r3, [r7, #12] + 802d802: 3324 adds r3, #36 ; 0x24 + 802d804: 2124 movs r1, #36 ; 0x24 + 802d806: 4618 mov r0, r3 + 802d808: f004 fc60 bl 80320cc <_lv_ll_init> _lv_ll_init(&meter->indicator_ll, sizeof(lv_meter_indicator_t)); - 802d8a0: 68fb ldr r3, [r7, #12] - 802d8a2: 3330 adds r3, #48 ; 0x30 - 802d8a4: 211c movs r1, #28 - 802d8a6: 4618 mov r0, r3 - 802d8a8: f004 fc5a bl 8032160 <_lv_ll_init> + 802d80c: 68fb ldr r3, [r7, #12] + 802d80e: 3330 adds r3, #48 ; 0x30 + 802d810: 211c movs r1, #28 + 802d812: 4618 mov r0, r3 + 802d814: f004 fc5a bl 80320cc <_lv_ll_init> LV_TRACE_OBJ_CREATE("finished"); } - 802d8ac: bf00 nop - 802d8ae: 3710 adds r7, #16 - 802d8b0: 46bd mov sp, r7 - 802d8b2: bd80 pop {r7, pc} + 802d818: bf00 nop + 802d81a: 3710 adds r7, #16 + 802d81c: 46bd mov sp, r7 + 802d81e: bd80 pop {r7, pc} -0802d8b4 : +0802d820 : static void lv_meter_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802d8b4: b580 push {r7, lr} - 802d8b6: b084 sub sp, #16 - 802d8b8: af00 add r7, sp, #0 - 802d8ba: 6078 str r0, [r7, #4] - 802d8bc: 6039 str r1, [r7, #0] + 802d820: b580 push {r7, lr} + 802d822: b084 sub sp, #16 + 802d824: af00 add r7, sp, #0 + 802d826: 6078 str r0, [r7, #4] + 802d828: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_ASSERT_OBJ(obj, MY_CLASS); lv_meter_t * meter = (lv_meter_t *)obj; - 802d8be: 683b ldr r3, [r7, #0] - 802d8c0: 60fb str r3, [r7, #12] + 802d82a: 683b ldr r3, [r7, #0] + 802d82c: 60fb str r3, [r7, #12] _lv_ll_clear(&meter->indicator_ll); - 802d8c2: 68fb ldr r3, [r7, #12] - 802d8c4: 3330 adds r3, #48 ; 0x30 - 802d8c6: 4618 mov r0, r3 - 802d8c8: f004 fd27 bl 803231a <_lv_ll_clear> + 802d82e: 68fb ldr r3, [r7, #12] + 802d830: 3330 adds r3, #48 ; 0x30 + 802d832: 4618 mov r0, r3 + 802d834: f004 fd27 bl 8032286 <_lv_ll_clear> _lv_ll_clear(&meter->scale_ll); - 802d8cc: 68fb ldr r3, [r7, #12] - 802d8ce: 3324 adds r3, #36 ; 0x24 - 802d8d0: 4618 mov r0, r3 - 802d8d2: f004 fd22 bl 803231a <_lv_ll_clear> + 802d838: 68fb ldr r3, [r7, #12] + 802d83a: 3324 adds r3, #36 ; 0x24 + 802d83c: 4618 mov r0, r3 + 802d83e: f004 fd22 bl 8032286 <_lv_ll_clear> } - 802d8d6: bf00 nop - 802d8d8: 3710 adds r7, #16 - 802d8da: 46bd mov sp, r7 - 802d8dc: bd80 pop {r7, pc} + 802d842: bf00 nop + 802d844: 3710 adds r7, #16 + 802d846: 46bd mov sp, r7 + 802d848: bd80 pop {r7, pc} ... -0802d8e0 : +0802d84c : static void lv_meter_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 802d8e0: b580 push {r7, lr} - 802d8e2: b09a sub sp, #104 ; 0x68 - 802d8e4: af00 add r7, sp, #0 - 802d8e6: 6078 str r0, [r7, #4] - 802d8e8: 6039 str r1, [r7, #0] + 802d84c: b580 push {r7, lr} + 802d84e: b09a sub sp, #104 ; 0x68 + 802d850: af00 add r7, sp, #0 + 802d852: 6078 str r0, [r7, #4] + 802d854: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res = lv_obj_event_base(MY_CLASS, e); - 802d8ea: 6839 ldr r1, [r7, #0] - 802d8ec: 4857 ldr r0, [pc, #348] ; (802da4c ) - 802d8ee: f7d4 fe09 bl 8002504 - 802d8f2: 4603 mov r3, r0 - 802d8f4: f887 3067 strb.w r3, [r7, #103] ; 0x67 + 802d856: 6839 ldr r1, [r7, #0] + 802d858: 4857 ldr r0, [pc, #348] ; (802d9b8 ) + 802d85a: f7d4 fe1d bl 8002498 + 802d85e: 4603 mov r3, r0 + 802d860: f887 3067 strb.w r3, [r7, #103] ; 0x67 if(res != LV_RES_OK) return; - 802d8f8: f897 3067 ldrb.w r3, [r7, #103] ; 0x67 - 802d8fc: 2b01 cmp r3, #1 - 802d8fe: f040 80a1 bne.w 802da44 + 802d864: f897 3067 ldrb.w r3, [r7, #103] ; 0x67 + 802d868: 2b01 cmp r3, #1 + 802d86a: f040 80a1 bne.w 802d9b0 lv_event_code_t code = lv_event_get_code(e); - 802d902: 6838 ldr r0, [r7, #0] - 802d904: f7d4 fe52 bl 80025ac - 802d908: 4603 mov r3, r0 - 802d90a: f887 3066 strb.w r3, [r7, #102] ; 0x66 + 802d86e: 6838 ldr r0, [r7, #0] + 802d870: f7d4 fe66 bl 8002540 + 802d874: 4603 mov r3, r0 + 802d876: f887 3066 strb.w r3, [r7, #102] ; 0x66 lv_obj_t * obj = lv_event_get_target(e); - 802d90e: 6838 ldr r0, [r7, #0] - 802d910: f7d4 fe36 bl 8002580 - 802d914: 6638 str r0, [r7, #96] ; 0x60 + 802d87a: 6838 ldr r0, [r7, #0] + 802d87c: f7d4 fe4a bl 8002514 + 802d880: 6638 str r0, [r7, #96] ; 0x60 if(code == LV_EVENT_DRAW_MAIN) { - 802d916: f897 3066 ldrb.w r3, [r7, #102] ; 0x66 - 802d91a: 2b15 cmp r3, #21 - 802d91c: f040 8093 bne.w 802da46 + 802d882: f897 3066 ldrb.w r3, [r7, #102] ; 0x66 + 802d886: 2b15 cmp r3, #21 + 802d888: f040 8093 bne.w 802d9b2 lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 802d920: 6838 ldr r0, [r7, #0] - 802d922: f7d4 ff43 bl 80027ac - 802d926: 65f8 str r0, [r7, #92] ; 0x5c + 802d88c: 6838 ldr r0, [r7, #0] + 802d88e: f7d4 ff57 bl 8002740 + 802d892: 65f8 str r0, [r7, #92] ; 0x5c lv_area_t scale_area; lv_obj_get_content_coords(obj, &scale_area); - 802d928: f107 034c add.w r3, r7, #76 ; 0x4c - 802d92c: 4619 mov r1, r3 - 802d92e: 6e38 ldr r0, [r7, #96] ; 0x60 - 802d930: f7dc fc7c bl 800a22c + 802d894: f107 034c add.w r3, r7, #76 ; 0x4c + 802d898: 4619 mov r1, r3 + 802d89a: 6e38 ldr r0, [r7, #96] ; 0x60 + 802d89c: f7dc fc90 bl 800a1c0 draw_arcs(obj, draw_ctx, &scale_area); - 802d934: f107 034c add.w r3, r7, #76 ; 0x4c - 802d938: 461a mov r2, r3 - 802d93a: 6df9 ldr r1, [r7, #92] ; 0x5c - 802d93c: 6e38 ldr r0, [r7, #96] ; 0x60 - 802d93e: f000 f887 bl 802da50 + 802d8a0: f107 034c add.w r3, r7, #76 ; 0x4c + 802d8a4: 461a mov r2, r3 + 802d8a6: 6df9 ldr r1, [r7, #92] ; 0x5c + 802d8a8: 6e38 ldr r0, [r7, #96] ; 0x60 + 802d8aa: f000 f887 bl 802d9bc draw_ticks_and_labels(obj, draw_ctx, &scale_area); - 802d942: f107 034c add.w r3, r7, #76 ; 0x4c - 802d946: 461a mov r2, r3 - 802d948: 6df9 ldr r1, [r7, #92] ; 0x5c - 802d94a: 6e38 ldr r0, [r7, #96] ; 0x60 - 802d94c: f000 f97a bl 802dc44 + 802d8ae: f107 034c add.w r3, r7, #76 ; 0x4c + 802d8b2: 461a mov r2, r3 + 802d8b4: 6df9 ldr r1, [r7, #92] ; 0x5c + 802d8b6: 6e38 ldr r0, [r7, #96] ; 0x60 + 802d8b8: f000 f97a bl 802dbb0 draw_needles(obj, draw_ctx, &scale_area); - 802d950: f107 034c add.w r3, r7, #76 ; 0x4c - 802d954: 461a mov r2, r3 - 802d956: 6df9 ldr r1, [r7, #92] ; 0x5c - 802d958: 6e38 ldr r0, [r7, #96] ; 0x60 - 802d95a: f000 fe75 bl 802e648 + 802d8bc: f107 034c add.w r3, r7, #76 ; 0x4c + 802d8c0: 461a mov r2, r3 + 802d8c2: 6df9 ldr r1, [r7, #92] ; 0x5c + 802d8c4: 6e38 ldr r0, [r7, #96] ; 0x60 + 802d8c6: f000 fe75 bl 802e5b4 lv_coord_t r_edge = lv_area_get_width(&scale_area) / 2; - 802d95e: f107 034c add.w r3, r7, #76 ; 0x4c - 802d962: 4618 mov r0, r3 - 802d964: f7ff fedc bl 802d720 - 802d968: 4603 mov r3, r0 - 802d96a: 0fda lsrs r2, r3, #31 - 802d96c: 4413 add r3, r2 - 802d96e: 105b asrs r3, r3, #1 - 802d970: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 802d8ca: f107 034c add.w r3, r7, #76 ; 0x4c + 802d8ce: 4618 mov r0, r3 + 802d8d0: f7ff fedc bl 802d68c + 802d8d4: 4603 mov r3, r0 + 802d8d6: 0fda lsrs r2, r3, #31 + 802d8d8: 4413 add r3, r2 + 802d8da: 105b asrs r3, r3, #1 + 802d8dc: f8a7 305a strh.w r3, [r7, #90] ; 0x5a lv_point_t scale_center; scale_center.x = scale_area.x1 + r_edge; - 802d974: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c - 802d978: b29a uxth r2, r3 - 802d97a: f8b7 305a ldrh.w r3, [r7, #90] ; 0x5a - 802d97e: 4413 add r3, r2 - 802d980: b29b uxth r3, r3 - 802d982: b21b sxth r3, r3 - 802d984: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 + 802d8e0: f9b7 304c ldrsh.w r3, [r7, #76] ; 0x4c + 802d8e4: b29a uxth r2, r3 + 802d8e6: f8b7 305a ldrh.w r3, [r7, #90] ; 0x5a + 802d8ea: 4413 add r3, r2 + 802d8ec: b29b uxth r3, r3 + 802d8ee: b21b sxth r3, r3 + 802d8f0: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 scale_center.y = scale_area.y1 + r_edge; - 802d988: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 802d98c: b29a uxth r2, r3 - 802d98e: f8b7 305a ldrh.w r3, [r7, #90] ; 0x5a - 802d992: 4413 add r3, r2 - 802d994: b29b uxth r3, r3 - 802d996: b21b sxth r3, r3 - 802d998: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 802d8f4: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 802d8f8: b29a uxth r2, r3 + 802d8fa: f8b7 305a ldrh.w r3, [r7, #90] ; 0x5a + 802d8fe: 4413 add r3, r2 + 802d900: b29b uxth r3, r3 + 802d902: b21b sxth r3, r3 + 802d904: f8a7 304a strh.w r3, [r7, #74] ; 0x4a lv_draw_rect_dsc_t mid_dsc; lv_draw_rect_dsc_init(&mid_dsc); - 802d99c: f107 0308 add.w r3, r7, #8 - 802d9a0: 4618 mov r0, r3 - 802d9a2: f7e7 ff27 bl 80157f4 + 802d908: f107 0308 add.w r3, r7, #8 + 802d90c: 4618 mov r0, r3 + 802d90e: f7e7 ff27 bl 8015760 lv_obj_init_draw_rect_dsc(obj, LV_PART_INDICATOR, &mid_dsc); - 802d9a6: f107 0308 add.w r3, r7, #8 - 802d9aa: 461a mov r2, r3 - 802d9ac: f44f 3100 mov.w r1, #131072 ; 0x20000 - 802d9b0: 6e38 ldr r0, [r7, #96] ; 0x60 - 802d9b2: f7da fe08 bl 80085c6 + 802d912: f107 0308 add.w r3, r7, #8 + 802d916: 461a mov r2, r3 + 802d918: f44f 3100 mov.w r1, #131072 ; 0x20000 + 802d91c: 6e38 ldr r0, [r7, #96] ; 0x60 + 802d91e: f7da fe1c bl 800855a lv_coord_t w = lv_obj_get_style_width(obj, LV_PART_INDICATOR) / 2; - 802d9b6: f44f 3100 mov.w r1, #131072 ; 0x20000 - 802d9ba: 6e38 ldr r0, [r7, #96] ; 0x60 - 802d9bc: f7ff ff14 bl 802d7e8 - 802d9c0: 4603 mov r3, r0 - 802d9c2: 0fda lsrs r2, r3, #31 - 802d9c4: 4413 add r3, r2 - 802d9c6: 105b asrs r3, r3, #1 - 802d9c8: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 + 802d922: f44f 3100 mov.w r1, #131072 ; 0x20000 + 802d926: 6e38 ldr r0, [r7, #96] ; 0x60 + 802d928: f7ff ff14 bl 802d754 + 802d92c: 4603 mov r3, r0 + 802d92e: 0fda lsrs r2, r3, #31 + 802d930: 4413 add r3, r2 + 802d932: 105b asrs r3, r3, #1 + 802d934: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 lv_coord_t h = lv_obj_get_style_height(obj, LV_PART_INDICATOR) / 2; - 802d9cc: f44f 3100 mov.w r1, #131072 ; 0x20000 - 802d9d0: 6e38 ldr r0, [r7, #96] ; 0x60 - 802d9d2: f7ff ff1c bl 802d80e - 802d9d6: 4603 mov r3, r0 - 802d9d8: 0fda lsrs r2, r3, #31 - 802d9da: 4413 add r3, r2 - 802d9dc: 105b asrs r3, r3, #1 - 802d9de: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 802d938: f44f 3100 mov.w r1, #131072 ; 0x20000 + 802d93c: 6e38 ldr r0, [r7, #96] ; 0x60 + 802d93e: f7ff ff1c bl 802d77a + 802d942: 4603 mov r3, r0 + 802d944: 0fda lsrs r2, r3, #31 + 802d946: 4413 add r3, r2 + 802d948: 105b asrs r3, r3, #1 + 802d94a: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 lv_area_t nm_cord; nm_cord.x1 = scale_center.x - w; - 802d9e2: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 - 802d9e6: b29a uxth r2, r3 - 802d9e8: f8b7 3058 ldrh.w r3, [r7, #88] ; 0x58 - 802d9ec: 1ad3 subs r3, r2, r3 - 802d9ee: b29b uxth r3, r3 - 802d9f0: b21b sxth r3, r3 - 802d9f2: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 802d94e: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 + 802d952: b29a uxth r2, r3 + 802d954: f8b7 3058 ldrh.w r3, [r7, #88] ; 0x58 + 802d958: 1ad3 subs r3, r2, r3 + 802d95a: b29b uxth r3, r3 + 802d95c: b21b sxth r3, r3 + 802d95e: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 nm_cord.y1 = scale_center.y - h; - 802d9f6: f9b7 304a ldrsh.w r3, [r7, #74] ; 0x4a - 802d9fa: b29a uxth r2, r3 - 802d9fc: f8b7 3056 ldrh.w r3, [r7, #86] ; 0x56 - 802da00: 1ad3 subs r3, r2, r3 - 802da02: b29b uxth r3, r3 - 802da04: b21b sxth r3, r3 - 802da06: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 802d962: f9b7 304a ldrsh.w r3, [r7, #74] ; 0x4a + 802d966: b29a uxth r2, r3 + 802d968: f8b7 3056 ldrh.w r3, [r7, #86] ; 0x56 + 802d96c: 1ad3 subs r3, r2, r3 + 802d96e: b29b uxth r3, r3 + 802d970: b21b sxth r3, r3 + 802d972: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 nm_cord.x2 = scale_center.x + w; - 802da0a: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 - 802da0e: b29a uxth r2, r3 - 802da10: f8b7 3058 ldrh.w r3, [r7, #88] ; 0x58 - 802da14: 4413 add r3, r2 - 802da16: b29b uxth r3, r3 - 802da18: b21b sxth r3, r3 - 802da1a: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 + 802d976: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 + 802d97a: b29a uxth r2, r3 + 802d97c: f8b7 3058 ldrh.w r3, [r7, #88] ; 0x58 + 802d980: 4413 add r3, r2 + 802d982: b29b uxth r3, r3 + 802d984: b21b sxth r3, r3 + 802d986: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 nm_cord.y2 = scale_center.y + h; - 802da1e: f9b7 304a ldrsh.w r3, [r7, #74] ; 0x4a - 802da22: b29a uxth r2, r3 - 802da24: f8b7 3056 ldrh.w r3, [r7, #86] ; 0x56 - 802da28: 4413 add r3, r2 - 802da2a: b29b uxth r3, r3 - 802da2c: b21b sxth r3, r3 - 802da2e: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 802d98a: f9b7 304a ldrsh.w r3, [r7, #74] ; 0x4a + 802d98e: b29a uxth r2, r3 + 802d990: f8b7 3056 ldrh.w r3, [r7, #86] ; 0x56 + 802d994: 4413 add r3, r2 + 802d996: b29b uxth r3, r3 + 802d998: b21b sxth r3, r3 + 802d99a: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 lv_draw_rect(draw_ctx, &mid_dsc, &nm_cord); - 802da32: f107 0240 add.w r2, r7, #64 ; 0x40 - 802da36: f107 0308 add.w r3, r7, #8 - 802da3a: 4619 mov r1, r3 - 802da3c: 6df8 ldr r0, [r7, #92] ; 0x5c - 802da3e: f7e7 ff1b bl 8015878 - 802da42: e000 b.n 802da46 + 802d99e: f107 0240 add.w r2, r7, #64 ; 0x40 + 802d9a2: f107 0308 add.w r3, r7, #8 + 802d9a6: 4619 mov r1, r3 + 802d9a8: 6df8 ldr r0, [r7, #92] ; 0x5c + 802d9aa: f7e7 ff1b bl 80157e4 + 802d9ae: e000 b.n 802d9b2 if(res != LV_RES_OK) return; - 802da44: bf00 nop + 802d9b0: bf00 nop } } - 802da46: 3768 adds r7, #104 ; 0x68 - 802da48: 46bd mov sp, r7 - 802da4a: bd80 pop {r7, pc} - 802da4c: 0806d130 .word 0x0806d130 + 802d9b2: 3768 adds r7, #104 ; 0x68 + 802d9b4: 46bd mov sp, r7 + 802d9b6: bd80 pop {r7, pc} + 802d9b8: 0806d088 .word 0x0806d088 -0802da50 : +0802d9bc : static void draw_arcs(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, const lv_area_t * scale_area) { - 802da50: b5b0 push {r4, r5, r7, lr} - 802da52: b0a4 sub sp, #144 ; 0x90 - 802da54: af02 add r7, sp, #8 - 802da56: 60f8 str r0, [r7, #12] - 802da58: 60b9 str r1, [r7, #8] - 802da5a: 607a str r2, [r7, #4] + 802d9bc: b5b0 push {r4, r5, r7, lr} + 802d9be: b0a4 sub sp, #144 ; 0x90 + 802d9c0: af02 add r7, sp, #8 + 802d9c2: 60f8 str r0, [r7, #12] + 802d9c4: 60b9 str r1, [r7, #8] + 802d9c6: 607a str r2, [r7, #4] lv_meter_t * meter = (lv_meter_t *)obj; - 802da5c: 68fb ldr r3, [r7, #12] - 802da5e: f8c7 3080 str.w r3, [r7, #128] ; 0x80 + 802d9c8: 68fb ldr r3, [r7, #12] + 802d9ca: f8c7 3080 str.w r3, [r7, #128] ; 0x80 lv_draw_arc_dsc_t arc_dsc; lv_draw_arc_dsc_init(&arc_dsc); - 802da62: f107 0360 add.w r3, r7, #96 ; 0x60 - 802da66: 4618 mov r0, r3 - 802da68: f7e3 fb68 bl 801113c + 802d9ce: f107 0360 add.w r3, r7, #96 ; 0x60 + 802d9d2: 4618 mov r0, r3 + 802d9d4: f7e3 fb68 bl 80110a8 arc_dsc.rounded = lv_obj_get_style_arc_rounded(obj, LV_PART_ITEMS); - 802da6c: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 802da70: 68f8 ldr r0, [r7, #12] - 802da72: f7ff fedf bl 802d834 - 802da76: 4603 mov r3, r0 - 802da78: 461a mov r2, r3 - 802da7a: f897 306d ldrb.w r3, [r7, #109] ; 0x6d - 802da7e: f362 0382 bfi r3, r2, #2, #1 - 802da82: f887 306d strb.w r3, [r7, #109] ; 0x6d + 802d9d8: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 802d9dc: 68f8 ldr r0, [r7, #12] + 802d9de: f7ff fedf bl 802d7a0 + 802d9e2: 4603 mov r3, r0 + 802d9e4: 461a mov r2, r3 + 802d9e6: f897 306d ldrb.w r3, [r7, #109] ; 0x6d + 802d9ea: f362 0382 bfi r3, r2, #2, #1 + 802d9ee: f887 306d strb.w r3, [r7, #109] ; 0x6d lv_coord_t r_out = lv_area_get_width(scale_area) / 2 ; - 802da86: 6878 ldr r0, [r7, #4] - 802da88: f7ff fe4a bl 802d720 - 802da8c: 4603 mov r3, r0 - 802da8e: 0fda lsrs r2, r3, #31 - 802da90: 4413 add r3, r2 - 802da92: 105b asrs r3, r3, #1 - 802da94: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 802d9f2: 6878 ldr r0, [r7, #4] + 802d9f4: f7ff fe4a bl 802d68c + 802d9f8: 4603 mov r3, r0 + 802d9fa: 0fda lsrs r2, r3, #31 + 802d9fc: 4413 add r3, r2 + 802d9fe: 105b asrs r3, r3, #1 + 802da00: f8a7 307e strh.w r3, [r7, #126] ; 0x7e lv_point_t scale_center; scale_center.x = scale_area->x1 + r_out; - 802da98: 687b ldr r3, [r7, #4] - 802da9a: f9b3 3000 ldrsh.w r3, [r3] - 802da9e: b29a uxth r2, r3 - 802daa0: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e - 802daa4: 4413 add r3, r2 - 802daa6: b29b uxth r3, r3 - 802daa8: b21b sxth r3, r3 - 802daaa: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 802da04: 687b ldr r3, [r7, #4] + 802da06: f9b3 3000 ldrsh.w r3, [r3] + 802da0a: b29a uxth r2, r3 + 802da0c: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e + 802da10: 4413 add r3, r2 + 802da12: b29b uxth r3, r3 + 802da14: b21b sxth r3, r3 + 802da16: f8a7 305c strh.w r3, [r7, #92] ; 0x5c scale_center.y = scale_area->y1 + r_out; - 802daae: 687b ldr r3, [r7, #4] - 802dab0: f9b3 3002 ldrsh.w r3, [r3, #2] - 802dab4: b29a uxth r2, r3 - 802dab6: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e - 802daba: 4413 add r3, r2 - 802dabc: b29b uxth r3, r3 - 802dabe: b21b sxth r3, r3 - 802dac0: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 802da1a: 687b ldr r3, [r7, #4] + 802da1c: f9b3 3002 ldrsh.w r3, [r3, #2] + 802da20: b29a uxth r2, r3 + 802da22: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e + 802da26: 4413 add r3, r2 + 802da28: b29b uxth r3, r3 + 802da2a: b21b sxth r3, r3 + 802da2c: f8a7 305e strh.w r3, [r7, #94] ; 0x5e lv_opa_t opa_main = lv_obj_get_style_opa(obj, LV_PART_MAIN); - 802dac4: 2100 movs r1, #0 - 802dac6: 68f8 ldr r0, [r7, #12] - 802dac8: f7ff feca bl 802d860 - 802dacc: 4603 mov r3, r0 - 802dace: f887 307d strb.w r3, [r7, #125] ; 0x7d + 802da30: 2100 movs r1, #0 + 802da32: 68f8 ldr r0, [r7, #12] + 802da34: f7ff feca bl 802d7cc + 802da38: 4603 mov r3, r0 + 802da3a: f887 307d strb.w r3, [r7, #125] ; 0x7d lv_meter_indicator_t * indic; lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 802dad2: f107 0314 add.w r3, r7, #20 - 802dad6: 68b9 ldr r1, [r7, #8] - 802dad8: 4618 mov r0, r3 - 802dada: f7db f9c8 bl 8008e6e + 802da3e: f107 0314 add.w r3, r7, #20 + 802da42: 68b9 ldr r1, [r7, #8] + 802da44: 4618 mov r0, r3 + 802da46: f7db f9dc bl 8008e02 part_draw_dsc.arc_dsc = &arc_dsc; - 802dade: f107 0360 add.w r3, r7, #96 ; 0x60 - 802dae2: 637b str r3, [r7, #52] ; 0x34 + 802da4a: f107 0360 add.w r3, r7, #96 ; 0x60 + 802da4e: 637b str r3, [r7, #52] ; 0x34 part_draw_dsc.part = LV_PART_INDICATOR; - 802dae4: f44f 3300 mov.w r3, #131072 ; 0x20000 - 802dae8: 64bb str r3, [r7, #72] ; 0x48 + 802da50: f44f 3300 mov.w r3, #131072 ; 0x20000 + 802da54: 64bb str r3, [r7, #72] ; 0x48 part_draw_dsc.class_p = MY_CLASS; - 802daea: 4b55 ldr r3, [pc, #340] ; (802dc40 ) - 802daec: 61bb str r3, [r7, #24] + 802da56: 4b55 ldr r3, [pc, #340] ; (802dbac ) + 802da58: 61bb str r3, [r7, #24] part_draw_dsc.type = LV_METER_DRAW_PART_ARC; - 802daee: 2300 movs r3, #0 - 802daf0: 61fb str r3, [r7, #28] + 802da5a: 2300 movs r3, #0 + 802da5c: 61fb str r3, [r7, #28] _LV_LL_READ_BACK(&meter->indicator_ll, indic) { - 802daf2: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 - 802daf6: 3330 adds r3, #48 ; 0x30 - 802daf8: 4618 mov r0, r3 - 802dafa: f004 fc3f bl 803237c <_lv_ll_get_tail> - 802dafe: f8c7 0084 str.w r0, [r7, #132] ; 0x84 - 802db02: e093 b.n 802dc2c + 802da5e: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 + 802da62: 3330 adds r3, #48 ; 0x30 + 802da64: 4618 mov r0, r3 + 802da66: f004 fc3f bl 80322e8 <_lv_ll_get_tail> + 802da6a: f8c7 0084 str.w r0, [r7, #132] ; 0x84 + 802da6e: e093 b.n 802db98 if(indic->type != LV_METER_INDICATOR_TYPE_ARC) continue; - 802db04: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 802db08: 791b ldrb r3, [r3, #4] - 802db0a: 2b03 cmp r3, #3 - 802db0c: f040 8083 bne.w 802dc16 + 802da70: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 802da74: 791b ldrb r3, [r3, #4] + 802da76: 2b03 cmp r3, #3 + 802da78: f040 8083 bne.w 802db82 arc_dsc.color = indic->type_data.arc.color; - 802db10: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 802db14: 8b1b ldrh r3, [r3, #24] - 802db16: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 + 802da7c: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 802da80: 8b1b ldrh r3, [r3, #24] + 802da82: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 arc_dsc.width = indic->type_data.arc.width; - 802db1a: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 802db1e: 8a1b ldrh r3, [r3, #16] - 802db20: b21b sxth r3, r3 - 802db22: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 + 802da86: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 802da8a: 8a1b ldrh r3, [r3, #16] + 802da8c: b21b sxth r3, r3 + 802da8e: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 arc_dsc.opa = indic->opa > LV_OPA_MAX ? opa_main : (opa_main * indic->opa) >> 8; - 802db26: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 802db2a: 795b ldrb r3, [r3, #5] - 802db2c: 2bfd cmp r3, #253 ; 0xfd - 802db2e: d809 bhi.n 802db44 - 802db30: f897 307d ldrb.w r3, [r7, #125] ; 0x7d - 802db34: f8d7 2084 ldr.w r2, [r7, #132] ; 0x84 - 802db38: 7952 ldrb r2, [r2, #5] - 802db3a: fb02 f303 mul.w r3, r2, r3 - 802db3e: 121b asrs r3, r3, #8 - 802db40: b2db uxtb r3, r3 - 802db42: e001 b.n 802db48 - 802db44: f897 307d ldrb.w r3, [r7, #125] ; 0x7d - 802db48: f887 306c strb.w r3, [r7, #108] ; 0x6c + 802da92: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 802da96: 795b ldrb r3, [r3, #5] + 802da98: 2bfd cmp r3, #253 ; 0xfd + 802da9a: d809 bhi.n 802dab0 + 802da9c: f897 307d ldrb.w r3, [r7, #125] ; 0x7d + 802daa0: f8d7 2084 ldr.w r2, [r7, #132] ; 0x84 + 802daa4: 7952 ldrb r2, [r2, #5] + 802daa6: fb02 f303 mul.w r3, r2, r3 + 802daaa: 121b asrs r3, r3, #8 + 802daac: b2db uxtb r3, r3 + 802daae: e001 b.n 802dab4 + 802dab0: f897 307d ldrb.w r3, [r7, #125] ; 0x7d + 802dab4: f887 306c strb.w r3, [r7, #108] ; 0x6c lv_meter_scale_t * scale = indic->scale; - 802db4c: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 802db50: 681b ldr r3, [r3, #0] - 802db52: 67bb str r3, [r7, #120] ; 0x78 + 802dab8: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 802dabc: 681b ldr r3, [r3, #0] + 802dabe: 67bb str r3, [r7, #120] ; 0x78 int32_t start_angle = lv_map(indic->start_value, scale->min, scale->max, scale->rotation, - 802db54: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 802db58: 6898 ldr r0, [r3, #8] - 802db5a: 6fbb ldr r3, [r7, #120] ; 0x78 - 802db5c: 6959 ldr r1, [r3, #20] - 802db5e: 6fbb ldr r3, [r7, #120] ; 0x78 - 802db60: 699a ldr r2, [r3, #24] - 802db62: 6fbb ldr r3, [r7, #120] ; 0x78 - 802db64: f9b3 3020 ldrsh.w r3, [r3, #32] - 802db68: 461d mov r5, r3 + 802dac0: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 802dac4: 6898 ldr r0, [r3, #8] + 802dac6: 6fbb ldr r3, [r7, #120] ; 0x78 + 802dac8: 6959 ldr r1, [r3, #20] + 802daca: 6fbb ldr r3, [r7, #120] ; 0x78 + 802dacc: 699a ldr r2, [r3, #24] + 802dace: 6fbb ldr r3, [r7, #120] ; 0x78 + 802dad0: f9b3 3020 ldrsh.w r3, [r3, #32] + 802dad4: 461d mov r5, r3 scale->rotation + scale->angle_range); - 802db6a: 6fbb ldr r3, [r7, #120] ; 0x78 - 802db6c: f9b3 3020 ldrsh.w r3, [r3, #32] - 802db70: 461c mov r4, r3 - 802db72: 6fbb ldr r3, [r7, #120] ; 0x78 - 802db74: 8bdb ldrh r3, [r3, #30] - 802db76: 4423 add r3, r4 + 802dad6: 6fbb ldr r3, [r7, #120] ; 0x78 + 802dad8: f9b3 3020 ldrsh.w r3, [r3, #32] + 802dadc: 461c mov r4, r3 + 802dade: 6fbb ldr r3, [r7, #120] ; 0x78 + 802dae0: 8bdb ldrh r3, [r3, #30] + 802dae2: 4423 add r3, r4 int32_t start_angle = lv_map(indic->start_value, scale->min, scale->max, scale->rotation, - 802db78: 9300 str r3, [sp, #0] - 802db7a: 462b mov r3, r5 - 802db7c: f004 fe51 bl 8032822 - 802db80: 6778 str r0, [r7, #116] ; 0x74 + 802dae4: 9300 str r3, [sp, #0] + 802dae6: 462b mov r3, r5 + 802dae8: f004 fe51 bl 803278e + 802daec: 6778 str r0, [r7, #116] ; 0x74 int32_t end_angle = lv_map(indic->end_value, scale->min, scale->max, scale->rotation, - 802db82: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 802db86: 68d8 ldr r0, [r3, #12] - 802db88: 6fbb ldr r3, [r7, #120] ; 0x78 - 802db8a: 6959 ldr r1, [r3, #20] - 802db8c: 6fbb ldr r3, [r7, #120] ; 0x78 - 802db8e: 699a ldr r2, [r3, #24] - 802db90: 6fbb ldr r3, [r7, #120] ; 0x78 - 802db92: f9b3 3020 ldrsh.w r3, [r3, #32] - 802db96: 461d mov r5, r3 + 802daee: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 802daf2: 68d8 ldr r0, [r3, #12] + 802daf4: 6fbb ldr r3, [r7, #120] ; 0x78 + 802daf6: 6959 ldr r1, [r3, #20] + 802daf8: 6fbb ldr r3, [r7, #120] ; 0x78 + 802dafa: 699a ldr r2, [r3, #24] + 802dafc: 6fbb ldr r3, [r7, #120] ; 0x78 + 802dafe: f9b3 3020 ldrsh.w r3, [r3, #32] + 802db02: 461d mov r5, r3 scale->rotation + scale->angle_range); - 802db98: 6fbb ldr r3, [r7, #120] ; 0x78 - 802db9a: f9b3 3020 ldrsh.w r3, [r3, #32] - 802db9e: 461c mov r4, r3 - 802dba0: 6fbb ldr r3, [r7, #120] ; 0x78 - 802dba2: 8bdb ldrh r3, [r3, #30] - 802dba4: 4423 add r3, r4 + 802db04: 6fbb ldr r3, [r7, #120] ; 0x78 + 802db06: f9b3 3020 ldrsh.w r3, [r3, #32] + 802db0a: 461c mov r4, r3 + 802db0c: 6fbb ldr r3, [r7, #120] ; 0x78 + 802db0e: 8bdb ldrh r3, [r3, #30] + 802db10: 4423 add r3, r4 int32_t end_angle = lv_map(indic->end_value, scale->min, scale->max, scale->rotation, - 802dba6: 9300 str r3, [sp, #0] - 802dba8: 462b mov r3, r5 - 802dbaa: f004 fe3a bl 8032822 - 802dbae: 6738 str r0, [r7, #112] ; 0x70 + 802db12: 9300 str r3, [sp, #0] + 802db14: 462b mov r3, r5 + 802db16: f004 fe3a bl 803278e + 802db1a: 6738 str r0, [r7, #112] ; 0x70 part_draw_dsc.radius = r_out + indic->type_data.arc.r_mod; - 802dbb0: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 802dbb4: f9b3 301a ldrsh.w r3, [r3, #26] - 802dbb8: b29a uxth r2, r3 - 802dbba: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e - 802dbbe: 4413 add r3, r2 - 802dbc0: b29b uxth r3, r3 - 802dbc2: b21b sxth r3, r3 - 802dbc4: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 + 802db1c: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 802db20: f9b3 301a ldrsh.w r3, [r3, #26] + 802db24: b29a uxth r2, r3 + 802db26: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e + 802db2a: 4413 add r3, r2 + 802db2c: b29b uxth r3, r3 + 802db2e: b21b sxth r3, r3 + 802db30: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 part_draw_dsc.sub_part_ptr = indic; - 802dbc8: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 802dbcc: 65bb str r3, [r7, #88] ; 0x58 + 802db34: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 802db38: 65bb str r3, [r7, #88] ; 0x58 part_draw_dsc.p1 = &scale_center; - 802dbce: f107 035c add.w r3, r7, #92 ; 0x5c - 802dbd2: 63bb str r3, [r7, #56] ; 0x38 + 802db3a: f107 035c add.w r3, r7, #92 ; 0x5c + 802db3e: 63bb str r3, [r7, #56] ; 0x38 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 802dbd4: f107 0314 add.w r3, r7, #20 - 802dbd8: 461a mov r2, r3 - 802dbda: 211a movs r1, #26 - 802dbdc: 68f8 ldr r0, [r7, #12] - 802dbde: f7d4 fc4f bl 8002480 + 802db40: f107 0314 add.w r3, r7, #20 + 802db44: 461a mov r2, r3 + 802db46: 211a movs r1, #26 + 802db48: 68f8 ldr r0, [r7, #12] + 802db4a: f7d4 fc63 bl 8002414 lv_draw_arc(draw_ctx, &arc_dsc, &scale_center, part_draw_dsc.radius, start_angle, end_angle); - 802dbe2: f9b7 3050 ldrsh.w r3, [r7, #80] ; 0x50 - 802dbe6: b29c uxth r4, r3 - 802dbe8: 6f7b ldr r3, [r7, #116] ; 0x74 - 802dbea: b29b uxth r3, r3 - 802dbec: 6f3a ldr r2, [r7, #112] ; 0x70 - 802dbee: b292 uxth r2, r2 - 802dbf0: f107 005c add.w r0, r7, #92 ; 0x5c - 802dbf4: f107 0160 add.w r1, r7, #96 ; 0x60 - 802dbf8: 9201 str r2, [sp, #4] - 802dbfa: 9300 str r3, [sp, #0] - 802dbfc: 4623 mov r3, r4 - 802dbfe: 4602 mov r2, r0 - 802dc00: 68b8 ldr r0, [r7, #8] - 802dc02: f7e3 fab1 bl 8011168 + 802db4e: f9b7 3050 ldrsh.w r3, [r7, #80] ; 0x50 + 802db52: b29c uxth r4, r3 + 802db54: 6f7b ldr r3, [r7, #116] ; 0x74 + 802db56: b29b uxth r3, r3 + 802db58: 6f3a ldr r2, [r7, #112] ; 0x70 + 802db5a: b292 uxth r2, r2 + 802db5c: f107 005c add.w r0, r7, #92 ; 0x5c + 802db60: f107 0160 add.w r1, r7, #96 ; 0x60 + 802db64: 9201 str r2, [sp, #4] + 802db66: 9300 str r3, [sp, #0] + 802db68: 4623 mov r3, r4 + 802db6a: 4602 mov r2, r0 + 802db6c: 68b8 ldr r0, [r7, #8] + 802db6e: f7e3 fab1 bl 80110d4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 802dc06: f107 0314 add.w r3, r7, #20 - 802dc0a: 461a mov r2, r3 - 802dc0c: 211b movs r1, #27 - 802dc0e: 68f8 ldr r0, [r7, #12] - 802dc10: f7d4 fc36 bl 8002480 - 802dc14: e000 b.n 802dc18 + 802db72: f107 0314 add.w r3, r7, #20 + 802db76: 461a mov r2, r3 + 802db78: 211b movs r1, #27 + 802db7a: 68f8 ldr r0, [r7, #12] + 802db7c: f7d4 fc4a bl 8002414 + 802db80: e000 b.n 802db84 if(indic->type != LV_METER_INDICATOR_TYPE_ARC) continue; - 802dc16: bf00 nop + 802db82: bf00 nop _LV_LL_READ_BACK(&meter->indicator_ll, indic) { - 802dc18: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 - 802dc1c: 3330 adds r3, #48 ; 0x30 - 802dc1e: f8d7 1084 ldr.w r1, [r7, #132] ; 0x84 - 802dc22: 4618 mov r0, r3 - 802dc24: f004 fbce bl 80323c4 <_lv_ll_get_prev> - 802dc28: f8c7 0084 str.w r0, [r7, #132] ; 0x84 - 802dc2c: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 802dc30: 2b00 cmp r3, #0 - 802dc32: f47f af67 bne.w 802db04 + 802db84: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 + 802db88: 3330 adds r3, #48 ; 0x30 + 802db8a: f8d7 1084 ldr.w r1, [r7, #132] ; 0x84 + 802db8e: 4618 mov r0, r3 + 802db90: f004 fbce bl 8032330 <_lv_ll_get_prev> + 802db94: f8c7 0084 str.w r0, [r7, #132] ; 0x84 + 802db98: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 802db9c: 2b00 cmp r3, #0 + 802db9e: f47f af67 bne.w 802da70 } } - 802dc36: bf00 nop - 802dc38: bf00 nop - 802dc3a: 3788 adds r7, #136 ; 0x88 - 802dc3c: 46bd mov sp, r7 - 802dc3e: bdb0 pop {r4, r5, r7, pc} - 802dc40: 0806d130 .word 0x0806d130 + 802dba2: bf00 nop + 802dba4: bf00 nop + 802dba6: 3788 adds r7, #136 ; 0x88 + 802dba8: 46bd mov sp, r7 + 802dbaa: bdb0 pop {r4, r5, r7, pc} + 802dbac: 0806d088 .word 0x0806d088 -0802dc44 : +0802dbb0 : static void draw_ticks_and_labels(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, const lv_area_t * scale_area) { - 802dc44: b5b0 push {r4, r5, r7, lr} - 802dc46: b0ea sub sp, #424 ; 0x1a8 - 802dc48: af04 add r7, sp, #16 - 802dc4a: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dc4e: f5a3 73c6 sub.w r3, r3, #396 ; 0x18c - 802dc52: 6018 str r0, [r3, #0] - 802dc54: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dc58: f5a3 73c8 sub.w r3, r3, #400 ; 0x190 - 802dc5c: 6019 str r1, [r3, #0] - 802dc5e: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dc62: f5a3 73ca sub.w r3, r3, #404 ; 0x194 - 802dc66: 601a str r2, [r3, #0] + 802dbb0: b5b0 push {r4, r5, r7, lr} + 802dbb2: b0ea sub sp, #424 ; 0x1a8 + 802dbb4: af04 add r7, sp, #16 + 802dbb6: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dbba: f5a3 73c6 sub.w r3, r3, #396 ; 0x18c + 802dbbe: 6018 str r0, [r3, #0] + 802dbc0: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dbc4: f5a3 73c8 sub.w r3, r3, #400 ; 0x190 + 802dbc8: 6019 str r1, [r3, #0] + 802dbca: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dbce: f5a3 73ca sub.w r3, r3, #404 ; 0x194 + 802dbd2: 601a str r2, [r3, #0] lv_meter_t * meter = (lv_meter_t *)obj; - 802dc68: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dc6c: f5a3 73c6 sub.w r3, r3, #396 ; 0x18c - 802dc70: 681b ldr r3, [r3, #0] - 802dc72: f8c7 3178 str.w r3, [r7, #376] ; 0x178 + 802dbd4: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dbd8: f5a3 73c6 sub.w r3, r3, #396 ; 0x18c + 802dbdc: 681b ldr r3, [r3, #0] + 802dbde: f8c7 3178 str.w r3, [r7, #376] ; 0x178 lv_point_t p_center; lv_coord_t r_edge = LV_MIN(lv_area_get_width(scale_area) / 2, lv_area_get_height(scale_area) / 2); - 802dc76: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dc7a: f5a3 73ca sub.w r3, r3, #404 ; 0x194 - 802dc7e: 6818 ldr r0, [r3, #0] - 802dc80: f7ff fd4e bl 802d720 - 802dc84: 4603 mov r3, r0 - 802dc86: 0fda lsrs r2, r3, #31 - 802dc88: 4413 add r3, r2 - 802dc8a: 105b asrs r3, r3, #1 - 802dc8c: b21c sxth r4, r3 - 802dc8e: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dc92: f5a3 73ca sub.w r3, r3, #404 ; 0x194 - 802dc96: 6818 ldr r0, [r3, #0] - 802dc98: f7ff fd58 bl 802d74c - 802dc9c: 4603 mov r3, r0 - 802dc9e: 0fda lsrs r2, r3, #31 - 802dca0: 4413 add r3, r2 - 802dca2: 105b asrs r3, r3, #1 - 802dca4: b21b sxth r3, r3 - 802dca6: 429c cmp r4, r3 - 802dca8: da0c bge.n 802dcc4 - 802dcaa: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dcae: f5a3 73ca sub.w r3, r3, #404 ; 0x194 - 802dcb2: 6818 ldr r0, [r3, #0] - 802dcb4: f7ff fd34 bl 802d720 - 802dcb8: 4603 mov r3, r0 - 802dcba: 0fda lsrs r2, r3, #31 - 802dcbc: 4413 add r3, r2 - 802dcbe: 105b asrs r3, r3, #1 - 802dcc0: b21b sxth r3, r3 - 802dcc2: e00b b.n 802dcdc - 802dcc4: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dcc8: f5a3 73ca sub.w r3, r3, #404 ; 0x194 - 802dccc: 6818 ldr r0, [r3, #0] - 802dcce: f7ff fd3d bl 802d74c - 802dcd2: 4603 mov r3, r0 - 802dcd4: 0fda lsrs r2, r3, #31 - 802dcd6: 4413 add r3, r2 - 802dcd8: 105b asrs r3, r3, #1 - 802dcda: b21b sxth r3, r3 - 802dcdc: f8a7 3176 strh.w r3, [r7, #374] ; 0x176 + 802dbe2: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dbe6: f5a3 73ca sub.w r3, r3, #404 ; 0x194 + 802dbea: 6818 ldr r0, [r3, #0] + 802dbec: f7ff fd4e bl 802d68c + 802dbf0: 4603 mov r3, r0 + 802dbf2: 0fda lsrs r2, r3, #31 + 802dbf4: 4413 add r3, r2 + 802dbf6: 105b asrs r3, r3, #1 + 802dbf8: b21c sxth r4, r3 + 802dbfa: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dbfe: f5a3 73ca sub.w r3, r3, #404 ; 0x194 + 802dc02: 6818 ldr r0, [r3, #0] + 802dc04: f7ff fd58 bl 802d6b8 + 802dc08: 4603 mov r3, r0 + 802dc0a: 0fda lsrs r2, r3, #31 + 802dc0c: 4413 add r3, r2 + 802dc0e: 105b asrs r3, r3, #1 + 802dc10: b21b sxth r3, r3 + 802dc12: 429c cmp r4, r3 + 802dc14: da0c bge.n 802dc30 + 802dc16: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dc1a: f5a3 73ca sub.w r3, r3, #404 ; 0x194 + 802dc1e: 6818 ldr r0, [r3, #0] + 802dc20: f7ff fd34 bl 802d68c + 802dc24: 4603 mov r3, r0 + 802dc26: 0fda lsrs r2, r3, #31 + 802dc28: 4413 add r3, r2 + 802dc2a: 105b asrs r3, r3, #1 + 802dc2c: b21b sxth r3, r3 + 802dc2e: e00b b.n 802dc48 + 802dc30: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dc34: f5a3 73ca sub.w r3, r3, #404 ; 0x194 + 802dc38: 6818 ldr r0, [r3, #0] + 802dc3a: f7ff fd3d bl 802d6b8 + 802dc3e: 4603 mov r3, r0 + 802dc40: 0fda lsrs r2, r3, #31 + 802dc42: 4413 add r3, r2 + 802dc44: 105b asrs r3, r3, #1 + 802dc46: b21b sxth r3, r3 + 802dc48: f8a7 3176 strh.w r3, [r7, #374] ; 0x176 p_center.x = scale_area->x1 + r_edge; - 802dce0: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dce4: f5a3 73ca sub.w r3, r3, #404 ; 0x194 - 802dce8: 681b ldr r3, [r3, #0] - 802dcea: f9b3 3000 ldrsh.w r3, [r3] - 802dcee: b29a uxth r2, r3 - 802dcf0: f8b7 3176 ldrh.w r3, [r7, #374] ; 0x176 - 802dcf4: 4413 add r3, r2 - 802dcf6: b29b uxth r3, r3 - 802dcf8: b21b sxth r3, r3 - 802dcfa: f8a7 3134 strh.w r3, [r7, #308] ; 0x134 + 802dc4c: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dc50: f5a3 73ca sub.w r3, r3, #404 ; 0x194 + 802dc54: 681b ldr r3, [r3, #0] + 802dc56: f9b3 3000 ldrsh.w r3, [r3] + 802dc5a: b29a uxth r2, r3 + 802dc5c: f8b7 3176 ldrh.w r3, [r7, #374] ; 0x176 + 802dc60: 4413 add r3, r2 + 802dc62: b29b uxth r3, r3 + 802dc64: b21b sxth r3, r3 + 802dc66: f8a7 3134 strh.w r3, [r7, #308] ; 0x134 p_center.y = scale_area->y1 + r_edge; - 802dcfe: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dd02: f5a3 73ca sub.w r3, r3, #404 ; 0x194 - 802dd06: 681b ldr r3, [r3, #0] - 802dd08: f9b3 3002 ldrsh.w r3, [r3, #2] - 802dd0c: b29a uxth r2, r3 - 802dd0e: f8b7 3176 ldrh.w r3, [r7, #374] ; 0x176 - 802dd12: 4413 add r3, r2 - 802dd14: b29b uxth r3, r3 - 802dd16: b21b sxth r3, r3 - 802dd18: f8a7 3136 strh.w r3, [r7, #310] ; 0x136 + 802dc6a: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dc6e: f5a3 73ca sub.w r3, r3, #404 ; 0x194 + 802dc72: 681b ldr r3, [r3, #0] + 802dc74: f9b3 3002 ldrsh.w r3, [r3, #2] + 802dc78: b29a uxth r2, r3 + 802dc7a: f8b7 3176 ldrh.w r3, [r7, #374] ; 0x176 + 802dc7e: 4413 add r3, r2 + 802dc80: b29b uxth r3, r3 + 802dc82: b21b sxth r3, r3 + 802dc84: f8a7 3136 strh.w r3, [r7, #310] ; 0x136 uint8_t i; lv_draw_line_dsc_t line_dsc; lv_draw_line_dsc_init(&line_dsc); - 802dd1c: f507 7394 add.w r3, r7, #296 ; 0x128 - 802dd20: 4618 mov r0, r3 - 802dd22: f7e5 f910 bl 8012f46 + 802dc88: f507 7394 add.w r3, r7, #296 ; 0x128 + 802dc8c: 4618 mov r0, r3 + 802dc8e: f7e5 f910 bl 8012eb2 lv_obj_init_draw_line_dsc(obj, LV_PART_TICKS, &line_dsc); - 802dd26: f507 7294 add.w r2, r7, #296 ; 0x128 - 802dd2a: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dd2e: f5a3 73c6 sub.w r3, r3, #396 ; 0x18c - 802dd32: f44f 21c0 mov.w r1, #393216 ; 0x60000 - 802dd36: 6818 ldr r0, [r3, #0] - 802dd38: f7da ff16 bl 8008b68 + 802dc92: f507 7294 add.w r2, r7, #296 ; 0x128 + 802dc96: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dc9a: f5a3 73c6 sub.w r3, r3, #396 ; 0x18c + 802dc9e: f44f 21c0 mov.w r1, #393216 ; 0x60000 + 802dca2: 6818 ldr r0, [r3, #0] + 802dca4: f7da ff2a bl 8008afc line_dsc.raw_end = 1; - 802dd3c: f897 3131 ldrb.w r3, [r7, #305] ; 0x131 - 802dd40: f043 0310 orr.w r3, r3, #16 - 802dd44: f887 3131 strb.w r3, [r7, #305] ; 0x131 + 802dca8: f897 3131 ldrb.w r3, [r7, #305] ; 0x131 + 802dcac: f043 0310 orr.w r3, r3, #16 + 802dcb0: f887 3131 strb.w r3, [r7, #305] ; 0x131 lv_draw_label_dsc_t label_dsc; lv_draw_label_dsc_init(&label_dsc); - 802dd48: f507 7384 add.w r3, r7, #264 ; 0x108 - 802dd4c: 4618 mov r0, r3 - 802dd4e: f7e4 fa1d bl 801218c + 802dcb4: f507 7384 add.w r3, r7, #264 ; 0x108 + 802dcb8: 4618 mov r0, r3 + 802dcba: f7e4 fa1d bl 80120f8 lv_obj_init_draw_label_dsc(obj, LV_PART_TICKS, &label_dsc); - 802dd52: f507 7284 add.w r2, r7, #264 ; 0x108 - 802dd56: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dd5a: f5a3 73c6 sub.w r3, r3, #396 ; 0x18c - 802dd5e: f44f 21c0 mov.w r1, #393216 ; 0x60000 - 802dd62: 6818 ldr r0, [r3, #0] - 802dd64: f7da fe1d bl 80089a2 + 802dcbe: f507 7284 add.w r2, r7, #264 ; 0x108 + 802dcc2: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dcc6: f5a3 73c6 sub.w r3, r3, #396 ; 0x18c + 802dcca: f44f 21c0 mov.w r1, #393216 ; 0x60000 + 802dcce: 6818 ldr r0, [r3, #0] + 802dcd0: f7da fe31 bl 8008936 lv_draw_mask_radius_param_t inner_minor_mask; lv_draw_mask_radius_param_t inner_major_mask; lv_draw_mask_radius_param_t outer_mask; lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 802dd68: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dd6c: f5a3 73c8 sub.w r3, r3, #400 ; 0x190 - 802dd70: f107 0278 add.w r2, r7, #120 ; 0x78 - 802dd74: 6819 ldr r1, [r3, #0] - 802dd76: 4610 mov r0, r2 - 802dd78: f7db f879 bl 8008e6e + 802dcd4: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dcd8: f5a3 73c8 sub.w r3, r3, #400 ; 0x190 + 802dcdc: f107 0278 add.w r2, r7, #120 ; 0x78 + 802dce0: 6819 ldr r1, [r3, #0] + 802dce2: 4610 mov r0, r2 + 802dce4: f7db f88d bl 8008e02 part_draw_dsc.class_p = MY_CLASS; - 802dd7c: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dd80: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802dd84: 4ac6 ldr r2, [pc, #792] ; (802e0a0 ) - 802dd86: 605a str r2, [r3, #4] + 802dce8: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dcec: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802dcf0: 4ac6 ldr r2, [pc, #792] ; (802e00c ) + 802dcf2: 605a str r2, [r3, #4] part_draw_dsc.part = LV_PART_TICKS; - 802dd88: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dd8c: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802dd90: f44f 22c0 mov.w r2, #393216 ; 0x60000 - 802dd94: 635a str r2, [r3, #52] ; 0x34 + 802dcf4: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dcf8: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802dcfc: f44f 22c0 mov.w r2, #393216 ; 0x60000 + 802dd00: 635a str r2, [r3, #52] ; 0x34 part_draw_dsc.type = LV_METER_DRAW_PART_TICK; - 802dd96: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dd9a: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802dd9e: 2203 movs r2, #3 - 802dda0: 609a str r2, [r3, #8] + 802dd02: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dd06: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802dd0a: 2203 movs r2, #3 + 802dd0c: 609a str r2, [r3, #8] part_draw_dsc.line_dsc = &line_dsc; - 802dda2: f507 73cc add.w r3, r7, #408 ; 0x198 - 802dda6: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802ddaa: f507 7294 add.w r2, r7, #296 ; 0x128 - 802ddae: 619a str r2, [r3, #24] + 802dd0e: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dd12: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802dd16: f507 7294 add.w r2, r7, #296 ; 0x128 + 802dd1a: 619a str r2, [r3, #24] _LV_LL_READ_BACK(&meter->scale_ll, scale) { - 802ddb0: f8d7 3178 ldr.w r3, [r7, #376] ; 0x178 - 802ddb4: 3324 adds r3, #36 ; 0x24 - 802ddb6: 4618 mov r0, r3 - 802ddb8: f004 fae0 bl 803237c <_lv_ll_get_tail> - 802ddbc: f8c7 0190 str.w r0, [r7, #400] ; 0x190 - 802ddc0: f000 bc35 b.w 802e62e + 802dd1c: f8d7 3178 ldr.w r3, [r7, #376] ; 0x178 + 802dd20: 3324 adds r3, #36 ; 0x24 + 802dd22: 4618 mov r0, r3 + 802dd24: f004 fae0 bl 80322e8 <_lv_ll_get_tail> + 802dd28: f8c7 0190 str.w r0, [r7, #400] ; 0x190 + 802dd2c: f000 bc35 b.w 802e59a part_draw_dsc.sub_part_ptr = scale; - 802ddc4: f507 73cc add.w r3, r7, #408 ; 0x198 - 802ddc8: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802ddcc: f8d7 2190 ldr.w r2, [r7, #400] ; 0x190 - 802ddd0: 645a str r2, [r3, #68] ; 0x44 + 802dd30: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dd34: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802dd38: f8d7 2190 ldr.w r2, [r7, #400] ; 0x190 + 802dd3c: 645a str r2, [r3, #68] ; 0x44 lv_coord_t r_out = r_edge + scale->r_mod; - 802ddd2: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802ddd6: f9b3 301c ldrsh.w r3, [r3, #28] - 802ddda: b29a uxth r2, r3 - 802dddc: f8b7 3176 ldrh.w r3, [r7, #374] ; 0x176 - 802dde0: 4413 add r3, r2 - 802dde2: b29b uxth r3, r3 - 802dde4: f8a7 3174 strh.w r3, [r7, #372] ; 0x174 + 802dd3e: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802dd42: f9b3 301c ldrsh.w r3, [r3, #28] + 802dd46: b29a uxth r2, r3 + 802dd48: f8b7 3176 ldrh.w r3, [r7, #374] ; 0x176 + 802dd4c: 4413 add r3, r2 + 802dd4e: b29b uxth r3, r3 + 802dd50: f8a7 3174 strh.w r3, [r7, #372] ; 0x174 lv_coord_t r_in_minor = r_out - scale->tick_length; - 802dde8: f8b7 2174 ldrh.w r2, [r7, #372] ; 0x174 - 802ddec: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802ddf0: 889b ldrh r3, [r3, #4] - 802ddf2: 1ad3 subs r3, r2, r3 - 802ddf4: b29b uxth r3, r3 - 802ddf6: f8a7 3172 strh.w r3, [r7, #370] ; 0x172 + 802dd54: f8b7 2174 ldrh.w r2, [r7, #372] ; 0x174 + 802dd58: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802dd5c: 889b ldrh r3, [r3, #4] + 802dd5e: 1ad3 subs r3, r2, r3 + 802dd60: b29b uxth r3, r3 + 802dd62: f8a7 3172 strh.w r3, [r7, #370] ; 0x172 lv_coord_t r_in_major = r_out - scale->tick_major_length; - 802ddfa: f8b7 2174 ldrh.w r2, [r7, #372] ; 0x174 - 802ddfe: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802de02: 899b ldrh r3, [r3, #12] - 802de04: 1ad3 subs r3, r2, r3 - 802de06: b29b uxth r3, r3 - 802de08: f8a7 3170 strh.w r3, [r7, #368] ; 0x170 + 802dd66: f8b7 2174 ldrh.w r2, [r7, #372] ; 0x174 + 802dd6a: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802dd6e: 899b ldrh r3, [r3, #12] + 802dd70: 1ad3 subs r3, r2, r3 + 802dd72: b29b uxth r3, r3 + 802dd74: f8a7 3170 strh.w r3, [r7, #368] ; 0x170 lv_area_t area_inner_minor; area_inner_minor.x1 = p_center.x - r_in_minor; - 802de0c: f9b7 3134 ldrsh.w r3, [r7, #308] ; 0x134 + 802dd78: f9b7 3134 ldrsh.w r3, [r7, #308] ; 0x134 + 802dd7c: b29a uxth r2, r3 + 802dd7e: f8b7 3172 ldrh.w r3, [r7, #370] ; 0x172 + 802dd82: 1ad3 subs r3, r2, r3 + 802dd84: b29b uxth r3, r3 + 802dd86: b21a sxth r2, r3 + 802dd88: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dd8c: f5a3 7394 sub.w r3, r3, #296 ; 0x128 + 802dd90: 801a strh r2, [r3, #0] + area_inner_minor.y1 = p_center.y - r_in_minor; + 802dd92: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 + 802dd96: b29a uxth r2, r3 + 802dd98: f8b7 3172 ldrh.w r3, [r7, #370] ; 0x172 + 802dd9c: 1ad3 subs r3, r2, r3 + 802dd9e: b29b uxth r3, r3 + 802dda0: b21a sxth r2, r3 + 802dda2: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dda6: f5a3 7394 sub.w r3, r3, #296 ; 0x128 + 802ddaa: 805a strh r2, [r3, #2] + area_inner_minor.x2 = p_center.x + r_in_minor; + 802ddac: f9b7 3134 ldrsh.w r3, [r7, #308] ; 0x134 + 802ddb0: b29a uxth r2, r3 + 802ddb2: f8b7 3172 ldrh.w r3, [r7, #370] ; 0x172 + 802ddb6: 4413 add r3, r2 + 802ddb8: b29b uxth r3, r3 + 802ddba: b21a sxth r2, r3 + 802ddbc: f507 73cc add.w r3, r7, #408 ; 0x198 + 802ddc0: f5a3 7394 sub.w r3, r3, #296 ; 0x128 + 802ddc4: 809a strh r2, [r3, #4] + area_inner_minor.y2 = p_center.y + r_in_minor; + 802ddc6: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 + 802ddca: b29a uxth r2, r3 + 802ddcc: f8b7 3172 ldrh.w r3, [r7, #370] ; 0x172 + 802ddd0: 4413 add r3, r2 + 802ddd2: b29b uxth r3, r3 + 802ddd4: b21a sxth r2, r3 + 802ddd6: f507 73cc add.w r3, r7, #408 ; 0x198 + 802ddda: f5a3 7394 sub.w r3, r3, #296 ; 0x128 + 802ddde: 80da strh r2, [r3, #6] + lv_draw_mask_radius_init(&inner_minor_mask, &area_inner_minor, LV_RADIUS_CIRCLE, true); + 802dde0: f107 0170 add.w r1, r7, #112 ; 0x70 + 802dde4: f107 00f0 add.w r0, r7, #240 ; 0xf0 + 802dde8: 2301 movs r3, #1 + 802ddea: f647 72ff movw r2, #32767 ; 0x7fff + 802ddee: f7e5 fcb5 bl 801375c + + lv_area_t area_inner_major; + area_inner_major.x1 = p_center.x - r_in_major; + 802ddf2: f9b7 3134 ldrsh.w r3, [r7, #308] ; 0x134 + 802ddf6: b29a uxth r2, r3 + 802ddf8: f8b7 3170 ldrh.w r3, [r7, #368] ; 0x170 + 802ddfc: 1ad3 subs r3, r2, r3 + 802ddfe: b29b uxth r3, r3 + 802de00: b21a sxth r2, r3 + 802de02: f507 73cc add.w r3, r7, #408 ; 0x198 + 802de06: f5a3 7398 sub.w r3, r3, #304 ; 0x130 + 802de0a: 801a strh r2, [r3, #0] + area_inner_major.y1 = p_center.y - r_in_major; + 802de0c: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 802de10: b29a uxth r2, r3 - 802de12: f8b7 3172 ldrh.w r3, [r7, #370] ; 0x172 + 802de12: f8b7 3170 ldrh.w r3, [r7, #368] ; 0x170 802de16: 1ad3 subs r3, r2, r3 802de18: b29b uxth r3, r3 802de1a: b21a sxth r2, r3 802de1c: f507 73cc add.w r3, r7, #408 ; 0x198 - 802de20: f5a3 7394 sub.w r3, r3, #296 ; 0x128 - 802de24: 801a strh r2, [r3, #0] - area_inner_minor.y1 = p_center.y - r_in_minor; - 802de26: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 - 802de2a: b29a uxth r2, r3 - 802de2c: f8b7 3172 ldrh.w r3, [r7, #370] ; 0x172 - 802de30: 1ad3 subs r3, r2, r3 - 802de32: b29b uxth r3, r3 - 802de34: b21a sxth r2, r3 - 802de36: f507 73cc add.w r3, r7, #408 ; 0x198 - 802de3a: f5a3 7394 sub.w r3, r3, #296 ; 0x128 - 802de3e: 805a strh r2, [r3, #2] - area_inner_minor.x2 = p_center.x + r_in_minor; - 802de40: f9b7 3134 ldrsh.w r3, [r7, #308] ; 0x134 - 802de44: b29a uxth r2, r3 - 802de46: f8b7 3172 ldrh.w r3, [r7, #370] ; 0x172 - 802de4a: 4413 add r3, r2 - 802de4c: b29b uxth r3, r3 - 802de4e: b21a sxth r2, r3 - 802de50: f507 73cc add.w r3, r7, #408 ; 0x198 - 802de54: f5a3 7394 sub.w r3, r3, #296 ; 0x128 - 802de58: 809a strh r2, [r3, #4] - area_inner_minor.y2 = p_center.y + r_in_minor; - 802de5a: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 - 802de5e: b29a uxth r2, r3 - 802de60: f8b7 3172 ldrh.w r3, [r7, #370] ; 0x172 - 802de64: 4413 add r3, r2 - 802de66: b29b uxth r3, r3 - 802de68: b21a sxth r2, r3 - 802de6a: f507 73cc add.w r3, r7, #408 ; 0x198 - 802de6e: f5a3 7394 sub.w r3, r3, #296 ; 0x128 - 802de72: 80da strh r2, [r3, #6] - lv_draw_mask_radius_init(&inner_minor_mask, &area_inner_minor, LV_RADIUS_CIRCLE, true); - 802de74: f107 0170 add.w r1, r7, #112 ; 0x70 - 802de78: f107 00f0 add.w r0, r7, #240 ; 0xf0 - 802de7c: 2301 movs r3, #1 - 802de7e: f647 72ff movw r2, #32767 ; 0x7fff - 802de82: f7e5 fcb5 bl 80137f0 - - lv_area_t area_inner_major; - area_inner_major.x1 = p_center.x - r_in_major; - 802de86: f9b7 3134 ldrsh.w r3, [r7, #308] ; 0x134 - 802de8a: b29a uxth r2, r3 - 802de8c: f8b7 3170 ldrh.w r3, [r7, #368] ; 0x170 - 802de90: 1ad3 subs r3, r2, r3 - 802de92: b29b uxth r3, r3 - 802de94: b21a sxth r2, r3 - 802de96: f507 73cc add.w r3, r7, #408 ; 0x198 - 802de9a: f5a3 7398 sub.w r3, r3, #304 ; 0x130 - 802de9e: 801a strh r2, [r3, #0] - area_inner_major.y1 = p_center.y - r_in_major; - 802dea0: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 - 802dea4: b29a uxth r2, r3 - 802dea6: f8b7 3170 ldrh.w r3, [r7, #368] ; 0x170 - 802deaa: 1ad3 subs r3, r2, r3 - 802deac: b29b uxth r3, r3 - 802deae: b21a sxth r2, r3 - 802deb0: f507 73cc add.w r3, r7, #408 ; 0x198 - 802deb4: f5a3 7398 sub.w r3, r3, #304 ; 0x130 - 802deb8: 805a strh r2, [r3, #2] + 802de20: f5a3 7398 sub.w r3, r3, #304 ; 0x130 + 802de24: 805a strh r2, [r3, #2] area_inner_major.x2 = p_center.x + r_in_major - 1; - 802deba: f9b7 3134 ldrsh.w r3, [r7, #308] ; 0x134 - 802debe: b29a uxth r2, r3 - 802dec0: f8b7 3170 ldrh.w r3, [r7, #368] ; 0x170 - 802dec4: 4413 add r3, r2 - 802dec6: b29b uxth r3, r3 - 802dec8: 3b01 subs r3, #1 - 802deca: b29b uxth r3, r3 - 802decc: b21a sxth r2, r3 - 802dece: f507 73cc add.w r3, r7, #408 ; 0x198 - 802ded2: f5a3 7398 sub.w r3, r3, #304 ; 0x130 - 802ded6: 809a strh r2, [r3, #4] + 802de26: f9b7 3134 ldrsh.w r3, [r7, #308] ; 0x134 + 802de2a: b29a uxth r2, r3 + 802de2c: f8b7 3170 ldrh.w r3, [r7, #368] ; 0x170 + 802de30: 4413 add r3, r2 + 802de32: b29b uxth r3, r3 + 802de34: 3b01 subs r3, #1 + 802de36: b29b uxth r3, r3 + 802de38: b21a sxth r2, r3 + 802de3a: f507 73cc add.w r3, r7, #408 ; 0x198 + 802de3e: f5a3 7398 sub.w r3, r3, #304 ; 0x130 + 802de42: 809a strh r2, [r3, #4] area_inner_major.y2 = p_center.y + r_in_major - 1; - 802ded8: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 - 802dedc: b29a uxth r2, r3 - 802dede: f8b7 3170 ldrh.w r3, [r7, #368] ; 0x170 - 802dee2: 4413 add r3, r2 - 802dee4: b29b uxth r3, r3 - 802dee6: 3b01 subs r3, #1 - 802dee8: b29b uxth r3, r3 - 802deea: b21a sxth r2, r3 - 802deec: f507 73cc add.w r3, r7, #408 ; 0x198 - 802def0: f5a3 7398 sub.w r3, r3, #304 ; 0x130 - 802def4: 80da strh r2, [r3, #6] + 802de44: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 + 802de48: b29a uxth r2, r3 + 802de4a: f8b7 3170 ldrh.w r3, [r7, #368] ; 0x170 + 802de4e: 4413 add r3, r2 + 802de50: b29b uxth r3, r3 + 802de52: 3b01 subs r3, #1 + 802de54: b29b uxth r3, r3 + 802de56: b21a sxth r2, r3 + 802de58: f507 73cc add.w r3, r7, #408 ; 0x198 + 802de5c: f5a3 7398 sub.w r3, r3, #304 ; 0x130 + 802de60: 80da strh r2, [r3, #6] lv_draw_mask_radius_init(&inner_major_mask, &area_inner_major, LV_RADIUS_CIRCLE, true); - 802def6: f107 0168 add.w r1, r7, #104 ; 0x68 - 802defa: f107 00d8 add.w r0, r7, #216 ; 0xd8 - 802defe: 2301 movs r3, #1 - 802df00: f647 72ff movw r2, #32767 ; 0x7fff - 802df04: f7e5 fc74 bl 80137f0 + 802de62: f107 0168 add.w r1, r7, #104 ; 0x68 + 802de66: f107 00d8 add.w r0, r7, #216 ; 0xd8 + 802de6a: 2301 movs r3, #1 + 802de6c: f647 72ff movw r2, #32767 ; 0x7fff + 802de70: f7e5 fc74 bl 801375c lv_area_t area_outer; area_outer.x1 = p_center.x - r_out; - 802df08: f9b7 3134 ldrsh.w r3, [r7, #308] ; 0x134 - 802df0c: b29a uxth r2, r3 - 802df0e: f8b7 3174 ldrh.w r3, [r7, #372] ; 0x174 - 802df12: 1ad3 subs r3, r2, r3 - 802df14: b29b uxth r3, r3 - 802df16: b21a sxth r2, r3 - 802df18: f507 73cc add.w r3, r7, #408 ; 0x198 - 802df1c: f5a3 739c sub.w r3, r3, #312 ; 0x138 - 802df20: 801a strh r2, [r3, #0] + 802de74: f9b7 3134 ldrsh.w r3, [r7, #308] ; 0x134 + 802de78: b29a uxth r2, r3 + 802de7a: f8b7 3174 ldrh.w r3, [r7, #372] ; 0x174 + 802de7e: 1ad3 subs r3, r2, r3 + 802de80: b29b uxth r3, r3 + 802de82: b21a sxth r2, r3 + 802de84: f507 73cc add.w r3, r7, #408 ; 0x198 + 802de88: f5a3 739c sub.w r3, r3, #312 ; 0x138 + 802de8c: 801a strh r2, [r3, #0] area_outer.y1 = p_center.y - r_out; - 802df22: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 - 802df26: b29a uxth r2, r3 - 802df28: f8b7 3174 ldrh.w r3, [r7, #372] ; 0x174 - 802df2c: 1ad3 subs r3, r2, r3 - 802df2e: b29b uxth r3, r3 - 802df30: b21a sxth r2, r3 - 802df32: f507 73cc add.w r3, r7, #408 ; 0x198 - 802df36: f5a3 739c sub.w r3, r3, #312 ; 0x138 - 802df3a: 805a strh r2, [r3, #2] + 802de8e: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 + 802de92: b29a uxth r2, r3 + 802de94: f8b7 3174 ldrh.w r3, [r7, #372] ; 0x174 + 802de98: 1ad3 subs r3, r2, r3 + 802de9a: b29b uxth r3, r3 + 802de9c: b21a sxth r2, r3 + 802de9e: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dea2: f5a3 739c sub.w r3, r3, #312 ; 0x138 + 802dea6: 805a strh r2, [r3, #2] area_outer.x2 = p_center.x + r_out - 1; - 802df3c: f9b7 3134 ldrsh.w r3, [r7, #308] ; 0x134 - 802df40: b29a uxth r2, r3 - 802df42: f8b7 3174 ldrh.w r3, [r7, #372] ; 0x174 - 802df46: 4413 add r3, r2 - 802df48: b29b uxth r3, r3 - 802df4a: 3b01 subs r3, #1 - 802df4c: b29b uxth r3, r3 - 802df4e: b21a sxth r2, r3 - 802df50: f507 73cc add.w r3, r7, #408 ; 0x198 - 802df54: f5a3 739c sub.w r3, r3, #312 ; 0x138 - 802df58: 809a strh r2, [r3, #4] + 802dea8: f9b7 3134 ldrsh.w r3, [r7, #308] ; 0x134 + 802deac: b29a uxth r2, r3 + 802deae: f8b7 3174 ldrh.w r3, [r7, #372] ; 0x174 + 802deb2: 4413 add r3, r2 + 802deb4: b29b uxth r3, r3 + 802deb6: 3b01 subs r3, #1 + 802deb8: b29b uxth r3, r3 + 802deba: b21a sxth r2, r3 + 802debc: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dec0: f5a3 739c sub.w r3, r3, #312 ; 0x138 + 802dec4: 809a strh r2, [r3, #4] area_outer.y2 = p_center.y + r_out - 1; - 802df5a: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 - 802df5e: b29a uxth r2, r3 - 802df60: f8b7 3174 ldrh.w r3, [r7, #372] ; 0x174 - 802df64: 4413 add r3, r2 - 802df66: b29b uxth r3, r3 - 802df68: 3b01 subs r3, #1 - 802df6a: b29b uxth r3, r3 - 802df6c: b21a sxth r2, r3 - 802df6e: f507 73cc add.w r3, r7, #408 ; 0x198 - 802df72: f5a3 739c sub.w r3, r3, #312 ; 0x138 - 802df76: 80da strh r2, [r3, #6] + 802dec6: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 + 802deca: b29a uxth r2, r3 + 802decc: f8b7 3174 ldrh.w r3, [r7, #372] ; 0x174 + 802ded0: 4413 add r3, r2 + 802ded2: b29b uxth r3, r3 + 802ded4: 3b01 subs r3, #1 + 802ded6: b29b uxth r3, r3 + 802ded8: b21a sxth r2, r3 + 802deda: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dede: f5a3 739c sub.w r3, r3, #312 ; 0x138 + 802dee2: 80da strh r2, [r3, #6] lv_draw_mask_radius_init(&outer_mask, &area_outer, LV_RADIUS_CIRCLE, false); - 802df78: f107 0160 add.w r1, r7, #96 ; 0x60 - 802df7c: f107 00c0 add.w r0, r7, #192 ; 0xc0 - 802df80: 2300 movs r3, #0 - 802df82: f647 72ff movw r2, #32767 ; 0x7fff - 802df86: f7e5 fc33 bl 80137f0 + 802dee4: f107 0160 add.w r1, r7, #96 ; 0x60 + 802dee8: f107 00c0 add.w r0, r7, #192 ; 0xc0 + 802deec: 2300 movs r3, #0 + 802deee: f647 72ff movw r2, #32767 ; 0x7fff + 802def2: f7e5 fc33 bl 801375c int16_t outer_mask_id = lv_draw_mask_add(&outer_mask, NULL); - 802df8a: f107 03c0 add.w r3, r7, #192 ; 0xc0 - 802df8e: 2100 movs r1, #0 - 802df90: 4618 mov r0, r3 - 802df92: f7e5 f857 bl 8013044 - 802df96: 4603 mov r3, r0 - 802df98: f8a7 318e strh.w r3, [r7, #398] ; 0x18e + 802def6: f107 03c0 add.w r3, r7, #192 ; 0xc0 + 802defa: 2100 movs r1, #0 + 802defc: 4618 mov r0, r3 + 802defe: f7e5 f857 bl 8012fb0 + 802df02: 4603 mov r3, r0 + 802df04: f8a7 318e strh.w r3, [r7, #398] ; 0x18e int16_t inner_act_mask_id = LV_MASK_ID_INV; /*Will be added later*/ - 802df9c: f64f 73ff movw r3, #65535 ; 0xffff - 802dfa0: f8a7 316e strh.w r3, [r7, #366] ; 0x16e + 802df08: f64f 73ff movw r3, #65535 ; 0xffff + 802df0c: f8a7 316e strh.w r3, [r7, #366] ; 0x16e uint32_t minor_cnt = scale->tick_major_nth ? scale->tick_major_nth - 1 : 0xFFFF; - 802dfa4: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802dfa8: 895b ldrh r3, [r3, #10] - 802dfaa: 2b00 cmp r3, #0 - 802dfac: d004 beq.n 802dfb8 - 802dfae: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802dfb2: 895b ldrh r3, [r3, #10] - 802dfb4: 3b01 subs r3, #1 - 802dfb6: e001 b.n 802dfbc - 802dfb8: f64f 73ff movw r3, #65535 ; 0xffff - 802dfbc: f8c7 3188 str.w r3, [r7, #392] ; 0x188 + 802df10: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802df14: 895b ldrh r3, [r3, #10] + 802df16: 2b00 cmp r3, #0 + 802df18: d004 beq.n 802df24 + 802df1a: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802df1e: 895b ldrh r3, [r3, #10] + 802df20: 3b01 subs r3, #1 + 802df22: e001 b.n 802df28 + 802df24: f64f 73ff movw r3, #65535 ; 0xffff + 802df28: f8c7 3188 str.w r3, [r7, #392] ; 0x188 for(i = 0; i < scale->tick_cnt; i++) { - 802dfc0: 2300 movs r3, #0 - 802dfc2: f887 3197 strb.w r3, [r7, #407] ; 0x197 - 802dfc6: e30b b.n 802e5e0 + 802df2c: 2300 movs r3, #0 + 802df2e: f887 3197 strb.w r3, [r7, #407] ; 0x197 + 802df32: e30b b.n 802e54c minor_cnt++; - 802dfc8: f8d7 3188 ldr.w r3, [r7, #392] ; 0x188 - 802dfcc: 3301 adds r3, #1 - 802dfce: f8c7 3188 str.w r3, [r7, #392] ; 0x188 + 802df34: f8d7 3188 ldr.w r3, [r7, #392] ; 0x188 + 802df38: 3301 adds r3, #1 + 802df3a: f8c7 3188 str.w r3, [r7, #392] ; 0x188 bool major = false; - 802dfd2: 2300 movs r3, #0 - 802dfd4: f887 3187 strb.w r3, [r7, #391] ; 0x187 + 802df3e: 2300 movs r3, #0 + 802df40: f887 3187 strb.w r3, [r7, #391] ; 0x187 if(minor_cnt == scale->tick_major_nth) { - 802dfd8: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802dfdc: 895b ldrh r3, [r3, #10] - 802dfde: 461a mov r2, r3 - 802dfe0: f8d7 3188 ldr.w r3, [r7, #392] ; 0x188 - 802dfe4: 4293 cmp r3, r2 - 802dfe6: d105 bne.n 802dff4 + 802df44: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802df48: 895b ldrh r3, [r3, #10] + 802df4a: 461a mov r2, r3 + 802df4c: f8d7 3188 ldr.w r3, [r7, #392] ; 0x188 + 802df50: 4293 cmp r3, r2 + 802df52: d105 bne.n 802df60 minor_cnt = 0; - 802dfe8: 2300 movs r3, #0 - 802dfea: f8c7 3188 str.w r3, [r7, #392] ; 0x188 + 802df54: 2300 movs r3, #0 + 802df56: f8c7 3188 str.w r3, [r7, #392] ; 0x188 major = true; - 802dfee: 2301 movs r3, #1 - 802dff0: f887 3187 strb.w r3, [r7, #391] ; 0x187 + 802df5a: 2301 movs r3, #1 + 802df5c: f887 3187 strb.w r3, [r7, #391] ; 0x187 } int32_t value_of_line = lv_map(i, 0, scale->tick_cnt - 1, scale->min, scale->max); - 802dff4: f897 0197 ldrb.w r0, [r7, #407] ; 0x197 - 802dff8: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802dffc: 885b ldrh r3, [r3, #2] - 802dffe: 1e5a subs r2, r3, #1 - 802e000: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802e004: 6959 ldr r1, [r3, #20] - 802e006: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802e00a: 699b ldr r3, [r3, #24] - 802e00c: 9300 str r3, [sp, #0] - 802e00e: 460b mov r3, r1 - 802e010: 2100 movs r1, #0 - 802e012: f004 fc06 bl 8032822 - 802e016: f8c7 0168 str.w r0, [r7, #360] ; 0x168 + 802df60: f897 0197 ldrb.w r0, [r7, #407] ; 0x197 + 802df64: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802df68: 885b ldrh r3, [r3, #2] + 802df6a: 1e5a subs r2, r3, #1 + 802df6c: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802df70: 6959 ldr r1, [r3, #20] + 802df72: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802df76: 699b ldr r3, [r3, #24] + 802df78: 9300 str r3, [sp, #0] + 802df7a: 460b mov r3, r1 + 802df7c: 2100 movs r1, #0 + 802df7e: f004 fc06 bl 803278e + 802df82: f8c7 0168 str.w r0, [r7, #360] ; 0x168 part_draw_dsc.value = value_of_line; - 802e01a: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e01e: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802e022: f8d7 2168 ldr.w r2, [r7, #360] ; 0x168 - 802e026: 641a str r2, [r3, #64] ; 0x40 + 802df86: f507 73cc add.w r3, r7, #408 ; 0x198 + 802df8a: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802df8e: f8d7 2168 ldr.w r2, [r7, #360] ; 0x168 + 802df92: 641a str r2, [r3, #64] ; 0x40 lv_color_t line_color = major ? scale->tick_major_color : scale->tick_color; - 802e028: f897 3187 ldrb.w r3, [r7, #391] ; 0x187 - 802e02c: 2b00 cmp r3, #0 - 802e02e: d008 beq.n 802e042 - 802e030: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e034: f5a3 739e sub.w r3, r3, #316 ; 0x13c - 802e038: f8d7 2190 ldr.w r2, [r7, #400] ; 0x190 - 802e03c: 8912 ldrh r2, [r2, #8] - 802e03e: 801a strh r2, [r3, #0] - 802e040: e007 b.n 802e052 - 802e042: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e046: f5a3 739e sub.w r3, r3, #316 ; 0x13c - 802e04a: f8d7 2190 ldr.w r2, [r7, #400] ; 0x190 - 802e04e: 8812 ldrh r2, [r2, #0] - 802e050: 801a strh r2, [r3, #0] + 802df94: f897 3187 ldrb.w r3, [r7, #391] ; 0x187 + 802df98: 2b00 cmp r3, #0 + 802df9a: d008 beq.n 802dfae + 802df9c: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dfa0: f5a3 739e sub.w r3, r3, #316 ; 0x13c + 802dfa4: f8d7 2190 ldr.w r2, [r7, #400] ; 0x190 + 802dfa8: 8912 ldrh r2, [r2, #8] + 802dfaa: 801a strh r2, [r3, #0] + 802dfac: e007 b.n 802dfbe + 802dfae: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dfb2: f5a3 739e sub.w r3, r3, #316 ; 0x13c + 802dfb6: f8d7 2190 ldr.w r2, [r7, #400] ; 0x190 + 802dfba: 8812 ldrh r2, [r2, #0] + 802dfbc: 801a strh r2, [r3, #0] lv_color_t line_color_ori = line_color; - 802e052: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e056: f5a3 73a0 sub.w r3, r3, #320 ; 0x140 - 802e05a: f507 72cc add.w r2, r7, #408 ; 0x198 - 802e05e: f5a2 729e sub.w r2, r2, #316 ; 0x13c - 802e062: 8812 ldrh r2, [r2, #0] - 802e064: 801a strh r2, [r3, #0] + 802dfbe: f507 73cc add.w r3, r7, #408 ; 0x198 + 802dfc2: f5a3 73a0 sub.w r3, r3, #320 ; 0x140 + 802dfc6: f507 72cc add.w r2, r7, #408 ; 0x198 + 802dfca: f5a2 729e sub.w r2, r2, #316 ; 0x13c + 802dfce: 8812 ldrh r2, [r2, #0] + 802dfd0: 801a strh r2, [r3, #0] lv_coord_t line_width_ori = major ? scale->tick_major_width : scale->tick_width; - 802e066: f897 3187 ldrb.w r3, [r7, #391] ; 0x187 - 802e06a: 2b00 cmp r3, #0 - 802e06c: d004 beq.n 802e078 - 802e06e: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802e072: 89db ldrh r3, [r3, #14] - 802e074: b21b sxth r3, r3 - 802e076: e003 b.n 802e080 - 802e078: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802e07c: 88db ldrh r3, [r3, #6] - 802e07e: b21b sxth r3, r3 - 802e080: f8a7 3166 strh.w r3, [r7, #358] ; 0x166 + 802dfd2: f897 3187 ldrb.w r3, [r7, #391] ; 0x187 + 802dfd6: 2b00 cmp r3, #0 + 802dfd8: d004 beq.n 802dfe4 + 802dfda: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802dfde: 89db ldrh r3, [r3, #14] + 802dfe0: b21b sxth r3, r3 + 802dfe2: e003 b.n 802dfec + 802dfe4: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802dfe8: 88db ldrh r3, [r3, #6] + 802dfea: b21b sxth r3, r3 + 802dfec: f8a7 3166 strh.w r3, [r7, #358] ; 0x166 lv_coord_t line_width = line_width_ori; - 802e084: f8b7 3166 ldrh.w r3, [r7, #358] ; 0x166 - 802e088: f8a7 3184 strh.w r3, [r7, #388] ; 0x184 + 802dff0: f8b7 3166 ldrh.w r3, [r7, #358] ; 0x166 + 802dff4: f8a7 3184 strh.w r3, [r7, #388] ; 0x184 lv_meter_indicator_t * indic; _LV_LL_READ_BACK(&meter->indicator_ll, indic) { - 802e08c: f8d7 3178 ldr.w r3, [r7, #376] ; 0x178 - 802e090: 3330 adds r3, #48 ; 0x30 - 802e092: 4618 mov r0, r3 - 802e094: f004 f972 bl 803237c <_lv_ll_get_tail> - 802e098: f8c7 0180 str.w r0, [r7, #384] ; 0x180 - 802e09c: e076 b.n 802e18c - 802e09e: bf00 nop - 802e0a0: 0806d130 .word 0x0806d130 + 802dff8: f8d7 3178 ldr.w r3, [r7, #376] ; 0x178 + 802dffc: 3330 adds r3, #48 ; 0x30 + 802dffe: 4618 mov r0, r3 + 802e000: f004 f972 bl 80322e8 <_lv_ll_get_tail> + 802e004: f8c7 0180 str.w r0, [r7, #384] ; 0x180 + 802e008: e076 b.n 802e0f8 + 802e00a: bf00 nop + 802e00c: 0806d088 .word 0x0806d088 if(indic->type != LV_METER_INDICATOR_TYPE_SCALE_LINES) continue; - 802e0a4: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 - 802e0a8: 791b ldrb r3, [r3, #4] - 802e0aa: 2b02 cmp r3, #2 - 802e0ac: d163 bne.n 802e176 + 802e010: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 + 802e014: 791b ldrb r3, [r3, #4] + 802e016: 2b02 cmp r3, #2 + 802e018: d163 bne.n 802e0e2 if(value_of_line >= indic->start_value && value_of_line <= indic->end_value) { - 802e0ae: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 - 802e0b2: 689b ldr r3, [r3, #8] - 802e0b4: f8d7 2168 ldr.w r2, [r7, #360] ; 0x168 - 802e0b8: 429a cmp r2, r3 - 802e0ba: db5d blt.n 802e178 - 802e0bc: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 - 802e0c0: 68db ldr r3, [r3, #12] - 802e0c2: f8d7 2168 ldr.w r2, [r7, #360] ; 0x168 - 802e0c6: 429a cmp r2, r3 - 802e0c8: dc56 bgt.n 802e178 + 802e01a: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 + 802e01e: 689b ldr r3, [r3, #8] + 802e020: f8d7 2168 ldr.w r2, [r7, #360] ; 0x168 + 802e024: 429a cmp r2, r3 + 802e026: db5d blt.n 802e0e4 + 802e028: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 + 802e02c: 68db ldr r3, [r3, #12] + 802e02e: f8d7 2168 ldr.w r2, [r7, #360] ; 0x168 + 802e032: 429a cmp r2, r3 + 802e034: dc56 bgt.n 802e0e4 line_width += indic->type_data.scale_lines.width_mod; - 802e0ca: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 - 802e0ce: f9b3 3010 ldrsh.w r3, [r3, #16] - 802e0d2: b29a uxth r2, r3 - 802e0d4: f8b7 3184 ldrh.w r3, [r7, #388] ; 0x184 - 802e0d8: 4413 add r3, r2 - 802e0da: b29b uxth r3, r3 - 802e0dc: f8a7 3184 strh.w r3, [r7, #388] ; 0x184 + 802e036: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 + 802e03a: f9b3 3010 ldrsh.w r3, [r3, #16] + 802e03e: b29a uxth r2, r3 + 802e040: f8b7 3184 ldrh.w r3, [r7, #388] ; 0x184 + 802e044: 4413 add r3, r2 + 802e046: b29b uxth r3, r3 + 802e048: f8a7 3184 strh.w r3, [r7, #388] ; 0x184 if(indic->type_data.scale_lines.color_start.full == indic->type_data.scale_lines.color_end.full) { - 802e0e0: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 - 802e0e4: 8a5a ldrh r2, [r3, #18] - 802e0e6: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 - 802e0ea: 8a9b ldrh r3, [r3, #20] - 802e0ec: 429a cmp r2, r3 - 802e0ee: d108 bne.n 802e102 + 802e04c: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 + 802e050: 8a5a ldrh r2, [r3, #18] + 802e052: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 + 802e056: 8a9b ldrh r3, [r3, #20] + 802e058: 429a cmp r2, r3 + 802e05a: d108 bne.n 802e06e line_color = indic->type_data.scale_lines.color_start; - 802e0f0: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e0f4: f5a3 739e sub.w r3, r3, #316 ; 0x13c - 802e0f8: f8d7 2180 ldr.w r2, [r7, #384] ; 0x180 - 802e0fc: 8a52 ldrh r2, [r2, #18] - 802e0fe: 801a strh r2, [r3, #0] - 802e100: e03a b.n 802e178 + 802e05c: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e060: f5a3 739e sub.w r3, r3, #316 ; 0x13c + 802e064: f8d7 2180 ldr.w r2, [r7, #384] ; 0x180 + 802e068: 8a52 ldrh r2, [r2, #18] + 802e06a: 801a strh r2, [r3, #0] + 802e06c: e03a b.n 802e0e4 } else { lv_opa_t ratio; if(indic->type_data.scale_lines.local_grad) { - 802e102: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 - 802e106: 7d9b ldrb r3, [r3, #22] - 802e108: f003 0301 and.w r3, r3, #1 - 802e10c: b2db uxtb r3, r3 - 802e10e: 2b00 cmp r3, #0 - 802e110: d010 beq.n 802e134 + 802e06e: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 + 802e072: 7d9b ldrb r3, [r3, #22] + 802e074: f003 0301 and.w r3, r3, #1 + 802e078: b2db uxtb r3, r3 + 802e07a: 2b00 cmp r3, #0 + 802e07c: d010 beq.n 802e0a0 ratio = lv_map(value_of_line, indic->start_value, indic->end_value, LV_OPA_TRANSP, LV_OPA_COVER); - 802e112: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 - 802e116: 6899 ldr r1, [r3, #8] - 802e118: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 - 802e11c: 68da ldr r2, [r3, #12] - 802e11e: 23ff movs r3, #255 ; 0xff - 802e120: 9300 str r3, [sp, #0] - 802e122: 2300 movs r3, #0 - 802e124: f8d7 0168 ldr.w r0, [r7, #360] ; 0x168 - 802e128: f004 fb7b bl 8032822 - 802e12c: 4603 mov r3, r0 - 802e12e: f887 317f strb.w r3, [r7, #383] ; 0x17f - 802e132: e00f b.n 802e154 + 802e07e: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 + 802e082: 6899 ldr r1, [r3, #8] + 802e084: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 + 802e088: 68da ldr r2, [r3, #12] + 802e08a: 23ff movs r3, #255 ; 0xff + 802e08c: 9300 str r3, [sp, #0] + 802e08e: 2300 movs r3, #0 + 802e090: f8d7 0168 ldr.w r0, [r7, #360] ; 0x168 + 802e094: f004 fb7b bl 803278e + 802e098: 4603 mov r3, r0 + 802e09a: f887 317f strb.w r3, [r7, #383] ; 0x17f + 802e09e: e00f b.n 802e0c0 } else { ratio = lv_map(value_of_line, scale->min, scale->max, LV_OPA_TRANSP, LV_OPA_COVER); - 802e134: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802e138: 6959 ldr r1, [r3, #20] - 802e13a: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802e13e: 699a ldr r2, [r3, #24] - 802e140: 23ff movs r3, #255 ; 0xff - 802e142: 9300 str r3, [sp, #0] - 802e144: 2300 movs r3, #0 - 802e146: f8d7 0168 ldr.w r0, [r7, #360] ; 0x168 - 802e14a: f004 fb6a bl 8032822 - 802e14e: 4603 mov r3, r0 - 802e150: f887 317f strb.w r3, [r7, #383] ; 0x17f + 802e0a0: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802e0a4: 6959 ldr r1, [r3, #20] + 802e0a6: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802e0aa: 699a ldr r2, [r3, #24] + 802e0ac: 23ff movs r3, #255 ; 0xff + 802e0ae: 9300 str r3, [sp, #0] + 802e0b0: 2300 movs r3, #0 + 802e0b2: f8d7 0168 ldr.w r0, [r7, #360] ; 0x168 + 802e0b6: f004 fb6a bl 803278e + 802e0ba: 4603 mov r3, r0 + 802e0bc: f887 317f strb.w r3, [r7, #383] ; 0x17f } line_color = lv_color_mix(indic->type_data.scale_lines.color_end, indic->type_data.scale_lines.color_start, ratio); - 802e154: f897 217f ldrb.w r2, [r7, #383] ; 0x17f - 802e158: f8d7 1180 ldr.w r1, [r7, #384] ; 0x180 - 802e15c: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 - 802e160: 8a49 ldrh r1, [r1, #18] - 802e162: 8a98 ldrh r0, [r3, #20] - 802e164: f7ff fb08 bl 802d778 - 802e168: 4602 mov r2, r0 - 802e16a: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e16e: f5a3 739e sub.w r3, r3, #316 ; 0x13c - 802e172: 801a strh r2, [r3, #0] - 802e174: e000 b.n 802e178 + 802e0c0: f897 217f ldrb.w r2, [r7, #383] ; 0x17f + 802e0c4: f8d7 1180 ldr.w r1, [r7, #384] ; 0x180 + 802e0c8: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 + 802e0cc: 8a49 ldrh r1, [r1, #18] + 802e0ce: 8a98 ldrh r0, [r3, #20] + 802e0d0: f7ff fb08 bl 802d6e4 + 802e0d4: 4602 mov r2, r0 + 802e0d6: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e0da: f5a3 739e sub.w r3, r3, #316 ; 0x13c + 802e0de: 801a strh r2, [r3, #0] + 802e0e0: e000 b.n 802e0e4 if(indic->type != LV_METER_INDICATOR_TYPE_SCALE_LINES) continue; - 802e176: bf00 nop + 802e0e2: bf00 nop _LV_LL_READ_BACK(&meter->indicator_ll, indic) { - 802e178: f8d7 3178 ldr.w r3, [r7, #376] ; 0x178 - 802e17c: 3330 adds r3, #48 ; 0x30 - 802e17e: f8d7 1180 ldr.w r1, [r7, #384] ; 0x180 - 802e182: 4618 mov r0, r3 - 802e184: f004 f91e bl 80323c4 <_lv_ll_get_prev> - 802e188: f8c7 0180 str.w r0, [r7, #384] ; 0x180 - 802e18c: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 - 802e190: 2b00 cmp r3, #0 - 802e192: d187 bne.n 802e0a4 + 802e0e4: f8d7 3178 ldr.w r3, [r7, #376] ; 0x178 + 802e0e8: 3330 adds r3, #48 ; 0x30 + 802e0ea: f8d7 1180 ldr.w r1, [r7, #384] ; 0x180 + 802e0ee: 4618 mov r0, r3 + 802e0f0: f004 f91e bl 8032330 <_lv_ll_get_prev> + 802e0f4: f8c7 0180 str.w r0, [r7, #384] ; 0x180 + 802e0f8: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 + 802e0fc: 2b00 cmp r3, #0 + 802e0fe: d187 bne.n 802e010 } } } /*`* 256` for extra precision*/ int32_t angle_upscale = ((i * scale->angle_range) << 8) / (scale->tick_cnt - 1); - 802e194: f897 3197 ldrb.w r3, [r7, #407] ; 0x197 - 802e198: f8d7 2190 ldr.w r2, [r7, #400] ; 0x190 - 802e19c: 8bd2 ldrh r2, [r2, #30] - 802e19e: fb02 f303 mul.w r3, r2, r3 - 802e1a2: 021a lsls r2, r3, #8 - 802e1a4: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802e1a8: 885b ldrh r3, [r3, #2] - 802e1aa: 3b01 subs r3, #1 - 802e1ac: fb92 f3f3 sdiv r3, r2, r3 - 802e1b0: f8c7 3160 str.w r3, [r7, #352] ; 0x160 + 802e100: f897 3197 ldrb.w r3, [r7, #407] ; 0x197 + 802e104: f8d7 2190 ldr.w r2, [r7, #400] ; 0x190 + 802e108: 8bd2 ldrh r2, [r2, #30] + 802e10a: fb02 f303 mul.w r3, r2, r3 + 802e10e: 021a lsls r2, r3, #8 + 802e110: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802e114: 885b ldrh r3, [r3, #2] + 802e116: 3b01 subs r3, #1 + 802e118: fb92 f3f3 sdiv r3, r2, r3 + 802e11c: f8c7 3160 str.w r3, [r7, #352] ; 0x160 int32_t angle_low = (angle_upscale >> 8); - 802e1b4: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 802e1b8: 121b asrs r3, r3, #8 - 802e1ba: f8c7 315c str.w r3, [r7, #348] ; 0x15c + 802e120: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 802e124: 121b asrs r3, r3, #8 + 802e126: f8c7 315c str.w r3, [r7, #348] ; 0x15c int32_t angle_high = angle_low + 1; - 802e1be: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 802e1c2: 3301 adds r3, #1 - 802e1c4: f8c7 3158 str.w r3, [r7, #344] ; 0x158 + 802e12a: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 802e12e: 3301 adds r3, #1 + 802e130: f8c7 3158 str.w r3, [r7, #344] ; 0x158 int32_t angle_rem = angle_upscale & 0xFF; - 802e1c8: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 802e1cc: b2db uxtb r3, r3 - 802e1ce: f8c7 3154 str.w r3, [r7, #340] ; 0x154 + 802e134: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 802e138: b2db uxtb r3, r3 + 802e13a: f8c7 3154 str.w r3, [r7, #340] ; 0x154 /*Interpolate sine and cos*/ int32_t sin_low = lv_trigo_sin(angle_low + scale->rotation); - 802e1d2: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802e1d6: f9b3 3020 ldrsh.w r3, [r3, #32] - 802e1da: b29a uxth r2, r3 - 802e1dc: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 802e1e0: b29b uxth r3, r3 - 802e1e2: 4413 add r3, r2 - 802e1e4: b29b uxth r3, r3 - 802e1e6: b21b sxth r3, r3 - 802e1e8: 4618 mov r0, r3 - 802e1ea: f004 f96f bl 80324cc - 802e1ee: 4603 mov r3, r0 - 802e1f0: f8c7 3150 str.w r3, [r7, #336] ; 0x150 + 802e13e: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802e142: f9b3 3020 ldrsh.w r3, [r3, #32] + 802e146: b29a uxth r2, r3 + 802e148: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 802e14c: b29b uxth r3, r3 + 802e14e: 4413 add r3, r2 + 802e150: b29b uxth r3, r3 + 802e152: b21b sxth r3, r3 + 802e154: 4618 mov r0, r3 + 802e156: f004 f96f bl 8032438 + 802e15a: 4603 mov r3, r0 + 802e15c: f8c7 3150 str.w r3, [r7, #336] ; 0x150 int32_t sin_high = lv_trigo_sin(angle_high + scale->rotation); - 802e1f4: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802e1f8: f9b3 3020 ldrsh.w r3, [r3, #32] - 802e1fc: b29a uxth r2, r3 - 802e1fe: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 802e202: b29b uxth r3, r3 - 802e204: 4413 add r3, r2 - 802e206: b29b uxth r3, r3 - 802e208: b21b sxth r3, r3 - 802e20a: 4618 mov r0, r3 - 802e20c: f004 f95e bl 80324cc - 802e210: 4603 mov r3, r0 - 802e212: f8c7 314c str.w r3, [r7, #332] ; 0x14c + 802e160: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802e164: f9b3 3020 ldrsh.w r3, [r3, #32] + 802e168: b29a uxth r2, r3 + 802e16a: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 802e16e: b29b uxth r3, r3 + 802e170: 4413 add r3, r2 + 802e172: b29b uxth r3, r3 + 802e174: b21b sxth r3, r3 + 802e176: 4618 mov r0, r3 + 802e178: f004 f95e bl 8032438 + 802e17c: 4603 mov r3, r0 + 802e17e: f8c7 314c str.w r3, [r7, #332] ; 0x14c int32_t sin_mid = (sin_low * (256 - angle_rem) + sin_high * angle_rem) >> 8; - 802e216: f8d7 3154 ldr.w r3, [r7, #340] ; 0x154 - 802e21a: f5c3 7380 rsb r3, r3, #256 ; 0x100 - 802e21e: f8d7 2150 ldr.w r2, [r7, #336] ; 0x150 - 802e222: fb03 f202 mul.w r2, r3, r2 - 802e226: f8d7 314c ldr.w r3, [r7, #332] ; 0x14c - 802e22a: f8d7 1154 ldr.w r1, [r7, #340] ; 0x154 - 802e22e: fb01 f303 mul.w r3, r1, r3 - 802e232: 4413 add r3, r2 - 802e234: 121b asrs r3, r3, #8 - 802e236: f8c7 3148 str.w r3, [r7, #328] ; 0x148 + 802e182: f8d7 3154 ldr.w r3, [r7, #340] ; 0x154 + 802e186: f5c3 7380 rsb r3, r3, #256 ; 0x100 + 802e18a: f8d7 2150 ldr.w r2, [r7, #336] ; 0x150 + 802e18e: fb03 f202 mul.w r2, r3, r2 + 802e192: f8d7 314c ldr.w r3, [r7, #332] ; 0x14c + 802e196: f8d7 1154 ldr.w r1, [r7, #340] ; 0x154 + 802e19a: fb01 f303 mul.w r3, r1, r3 + 802e19e: 4413 add r3, r2 + 802e1a0: 121b asrs r3, r3, #8 + 802e1a2: f8c7 3148 str.w r3, [r7, #328] ; 0x148 int32_t cos_low = lv_trigo_cos(angle_low + scale->rotation); - 802e23a: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802e23e: f9b3 3020 ldrsh.w r3, [r3, #32] - 802e242: b29a uxth r2, r3 - 802e244: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 802e248: b29b uxth r3, r3 - 802e24a: 4413 add r3, r2 - 802e24c: b29b uxth r3, r3 - 802e24e: b21b sxth r3, r3 - 802e250: 4618 mov r0, r3 - 802e252: f7ff fa54 bl 802d6fe - 802e256: 4603 mov r3, r0 - 802e258: f8c7 3144 str.w r3, [r7, #324] ; 0x144 + 802e1a6: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802e1aa: f9b3 3020 ldrsh.w r3, [r3, #32] + 802e1ae: b29a uxth r2, r3 + 802e1b0: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 802e1b4: b29b uxth r3, r3 + 802e1b6: 4413 add r3, r2 + 802e1b8: b29b uxth r3, r3 + 802e1ba: b21b sxth r3, r3 + 802e1bc: 4618 mov r0, r3 + 802e1be: f7ff fa54 bl 802d66a + 802e1c2: 4603 mov r3, r0 + 802e1c4: f8c7 3144 str.w r3, [r7, #324] ; 0x144 int32_t cos_high = lv_trigo_cos(angle_high + scale->rotation); - 802e25c: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802e260: f9b3 3020 ldrsh.w r3, [r3, #32] - 802e264: b29a uxth r2, r3 - 802e266: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 802e26a: b29b uxth r3, r3 - 802e26c: 4413 add r3, r2 - 802e26e: b29b uxth r3, r3 - 802e270: b21b sxth r3, r3 - 802e272: 4618 mov r0, r3 - 802e274: f7ff fa43 bl 802d6fe - 802e278: 4603 mov r3, r0 - 802e27a: f8c7 3140 str.w r3, [r7, #320] ; 0x140 + 802e1c8: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802e1cc: f9b3 3020 ldrsh.w r3, [r3, #32] + 802e1d0: b29a uxth r2, r3 + 802e1d2: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 802e1d6: b29b uxth r3, r3 + 802e1d8: 4413 add r3, r2 + 802e1da: b29b uxth r3, r3 + 802e1dc: b21b sxth r3, r3 + 802e1de: 4618 mov r0, r3 + 802e1e0: f7ff fa43 bl 802d66a + 802e1e4: 4603 mov r3, r0 + 802e1e6: f8c7 3140 str.w r3, [r7, #320] ; 0x140 int32_t cos_mid = (cos_low * (256 - angle_rem) + cos_high * angle_rem) >> 8; - 802e27e: f8d7 3154 ldr.w r3, [r7, #340] ; 0x154 - 802e282: f5c3 7380 rsb r3, r3, #256 ; 0x100 - 802e286: f8d7 2144 ldr.w r2, [r7, #324] ; 0x144 - 802e28a: fb03 f202 mul.w r2, r3, r2 - 802e28e: f8d7 3140 ldr.w r3, [r7, #320] ; 0x140 - 802e292: f8d7 1154 ldr.w r1, [r7, #340] ; 0x154 - 802e296: fb01 f303 mul.w r3, r1, r3 - 802e29a: 4413 add r3, r2 - 802e29c: 121b asrs r3, r3, #8 - 802e29e: f8c7 313c str.w r3, [r7, #316] ; 0x13c + 802e1ea: f8d7 3154 ldr.w r3, [r7, #340] ; 0x154 + 802e1ee: f5c3 7380 rsb r3, r3, #256 ; 0x100 + 802e1f2: f8d7 2144 ldr.w r2, [r7, #324] ; 0x144 + 802e1f6: fb03 f202 mul.w r2, r3, r2 + 802e1fa: f8d7 3140 ldr.w r3, [r7, #320] ; 0x140 + 802e1fe: f8d7 1154 ldr.w r1, [r7, #340] ; 0x154 + 802e202: fb01 f303 mul.w r3, r1, r3 + 802e206: 4413 add r3, r2 + 802e208: 121b asrs r3, r3, #8 + 802e20a: f8c7 313c str.w r3, [r7, #316] ; 0x13c line_dsc.color = line_color; - 802e2a2: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e2a6: f5a3 739e sub.w r3, r3, #316 ; 0x13c - 802e2aa: 881b ldrh r3, [r3, #0] - 802e2ac: f8a7 3128 strh.w r3, [r7, #296] ; 0x128 + 802e20e: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e212: f5a3 739e sub.w r3, r3, #316 ; 0x13c + 802e216: 881b ldrh r3, [r3, #0] + 802e218: f8a7 3128 strh.w r3, [r7, #296] ; 0x128 line_dsc.width = line_width; - 802e2b0: f8b7 3184 ldrh.w r3, [r7, #388] ; 0x184 - 802e2b4: f8a7 312a strh.w r3, [r7, #298] ; 0x12a + 802e21c: f8b7 3184 ldrh.w r3, [r7, #388] ; 0x184 + 802e220: f8a7 312a strh.w r3, [r7, #298] ; 0x12a /*Use the interpolated angle to get the outer x and y coordinates. *Draw a little bit longer lines to be sure the mask will clip them correctly*/ lv_point_t p_outer; p_outer.x = (int32_t)(((int32_t)cos_mid * (r_out + line_width) + 127) >> (LV_TRIGO_SHIFT)) + p_center.x; - 802e2b8: f9b7 2174 ldrsh.w r2, [r7, #372] ; 0x174 - 802e2bc: f9b7 3184 ldrsh.w r3, [r7, #388] ; 0x184 - 802e2c0: 4413 add r3, r2 - 802e2c2: f8d7 213c ldr.w r2, [r7, #316] ; 0x13c - 802e2c6: fb02 f303 mul.w r3, r2, r3 - 802e2ca: 337f adds r3, #127 ; 0x7f - 802e2cc: 13db asrs r3, r3, #15 - 802e2ce: b29a uxth r2, r3 - 802e2d0: f9b7 3134 ldrsh.w r3, [r7, #308] ; 0x134 - 802e2d4: b29b uxth r3, r3 - 802e2d6: 4413 add r3, r2 - 802e2d8: b29b uxth r3, r3 - 802e2da: b21a sxth r2, r3 - 802e2dc: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e2e0: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 - 802e2e4: 801a strh r2, [r3, #0] + 802e224: f9b7 2174 ldrsh.w r2, [r7, #372] ; 0x174 + 802e228: f9b7 3184 ldrsh.w r3, [r7, #388] ; 0x184 + 802e22c: 4413 add r3, r2 + 802e22e: f8d7 213c ldr.w r2, [r7, #316] ; 0x13c + 802e232: fb02 f303 mul.w r3, r2, r3 + 802e236: 337f adds r3, #127 ; 0x7f + 802e238: 13db asrs r3, r3, #15 + 802e23a: b29a uxth r2, r3 + 802e23c: f9b7 3134 ldrsh.w r3, [r7, #308] ; 0x134 + 802e240: b29b uxth r3, r3 + 802e242: 4413 add r3, r2 + 802e244: b29b uxth r3, r3 + 802e246: b21a sxth r2, r3 + 802e248: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e24c: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 + 802e250: 801a strh r2, [r3, #0] p_outer.y = (int32_t)(((int32_t)sin_mid * (r_out + line_width) + 127) >> (LV_TRIGO_SHIFT)) + p_center.y; - 802e2e6: f9b7 2174 ldrsh.w r2, [r7, #372] ; 0x174 - 802e2ea: f9b7 3184 ldrsh.w r3, [r7, #388] ; 0x184 - 802e2ee: 4413 add r3, r2 - 802e2f0: f8d7 2148 ldr.w r2, [r7, #328] ; 0x148 - 802e2f4: fb02 f303 mul.w r3, r2, r3 - 802e2f8: 337f adds r3, #127 ; 0x7f - 802e2fa: 13db asrs r3, r3, #15 - 802e2fc: b29a uxth r2, r3 - 802e2fe: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 - 802e302: b29b uxth r3, r3 - 802e304: 4413 add r3, r2 - 802e306: b29b uxth r3, r3 - 802e308: b21a sxth r2, r3 - 802e30a: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e30e: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 - 802e312: 805a strh r2, [r3, #2] + 802e252: f9b7 2174 ldrsh.w r2, [r7, #372] ; 0x174 + 802e256: f9b7 3184 ldrsh.w r3, [r7, #388] ; 0x184 + 802e25a: 4413 add r3, r2 + 802e25c: f8d7 2148 ldr.w r2, [r7, #328] ; 0x148 + 802e260: fb02 f303 mul.w r3, r2, r3 + 802e264: 337f adds r3, #127 ; 0x7f + 802e266: 13db asrs r3, r3, #15 + 802e268: b29a uxth r2, r3 + 802e26a: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 + 802e26e: b29b uxth r3, r3 + 802e270: 4413 add r3, r2 + 802e272: b29b uxth r3, r3 + 802e274: b21a sxth r2, r3 + 802e276: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e27a: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 + 802e27e: 805a strh r2, [r3, #2] part_draw_dsc.p1 = &p_outer; - 802e314: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e318: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802e31c: f107 0254 add.w r2, r7, #84 ; 0x54 - 802e320: 625a str r2, [r3, #36] ; 0x24 + 802e280: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e284: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802e288: f107 0254 add.w r2, r7, #84 ; 0x54 + 802e28c: 625a str r2, [r3, #36] ; 0x24 part_draw_dsc.p1 = &p_center; - 802e322: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e326: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802e32a: f507 729a add.w r2, r7, #308 ; 0x134 - 802e32e: 625a str r2, [r3, #36] ; 0x24 + 802e28e: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e292: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802e296: f507 729a add.w r2, r7, #308 ; 0x134 + 802e29a: 625a str r2, [r3, #36] ; 0x24 part_draw_dsc.id = i; - 802e330: f897 2197 ldrb.w r2, [r7, #407] ; 0x197 - 802e334: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e338: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802e33c: 639a str r2, [r3, #56] ; 0x38 + 802e29c: f897 2197 ldrb.w r2, [r7, #407] ; 0x197 + 802e2a0: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e2a4: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802e2a8: 639a str r2, [r3, #56] ; 0x38 part_draw_dsc.label_dsc = &label_dsc; - 802e33e: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e342: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802e346: f507 7284 add.w r2, r7, #264 ; 0x108 - 802e34a: 615a str r2, [r3, #20] + 802e2aa: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e2ae: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802e2b2: f507 7284 add.w r2, r7, #264 ; 0x108 + 802e2b6: 615a str r2, [r3, #20] /*Draw the text*/ if(major) { - 802e34c: f897 3187 ldrb.w r3, [r7, #391] ; 0x187 - 802e350: 2b00 cmp r3, #0 - 802e352: f000 80f3 beq.w 802e53c + 802e2b8: f897 3187 ldrb.w r3, [r7, #391] ; 0x187 + 802e2bc: 2b00 cmp r3, #0 + 802e2be: f000 80f3 beq.w 802e4a8 lv_draw_mask_remove_id(outer_mask_id); - 802e356: f9b7 318e ldrsh.w r3, [r7, #398] ; 0x18e - 802e35a: 4618 mov r0, r3 - 802e35c: f7e4 fee6 bl 801312c + 802e2c2: f9b7 318e ldrsh.w r3, [r7, #398] ; 0x18e + 802e2c6: 4618 mov r0, r3 + 802e2c8: f7e4 fee6 bl 8013098 uint32_t r_text = r_in_major - scale->label_gap; - 802e360: f9b7 3170 ldrsh.w r3, [r7, #368] ; 0x170 - 802e364: f8d7 2190 ldr.w r2, [r7, #400] ; 0x190 - 802e368: f9b2 2010 ldrsh.w r2, [r2, #16] - 802e36c: 1a9b subs r3, r3, r2 - 802e36e: f8c7 3138 str.w r3, [r7, #312] ; 0x138 + 802e2cc: f9b7 3170 ldrsh.w r3, [r7, #368] ; 0x170 + 802e2d0: f8d7 2190 ldr.w r2, [r7, #400] ; 0x190 + 802e2d4: f9b2 2010 ldrsh.w r2, [r2, #16] + 802e2d8: 1a9b subs r3, r3, r2 + 802e2da: f8c7 3138 str.w r3, [r7, #312] ; 0x138 lv_point_t p; p.x = (int32_t)((int32_t)((int32_t)cos_mid * r_text + 127) >> LV_TRIGO_SHIFT) + p_center.x; - 802e372: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c - 802e376: f8d7 2138 ldr.w r2, [r7, #312] ; 0x138 - 802e37a: fb02 f303 mul.w r3, r2, r3 - 802e37e: 337f adds r3, #127 ; 0x7f - 802e380: 13db asrs r3, r3, #15 - 802e382: b29a uxth r2, r3 - 802e384: f9b7 3134 ldrsh.w r3, [r7, #308] ; 0x134 - 802e388: b29b uxth r3, r3 - 802e38a: 4413 add r3, r2 - 802e38c: b29b uxth r3, r3 - 802e38e: b21a sxth r2, r3 - 802e390: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e394: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 802e398: 801a strh r2, [r3, #0] + 802e2de: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c + 802e2e2: f8d7 2138 ldr.w r2, [r7, #312] ; 0x138 + 802e2e6: fb02 f303 mul.w r3, r2, r3 + 802e2ea: 337f adds r3, #127 ; 0x7f + 802e2ec: 13db asrs r3, r3, #15 + 802e2ee: b29a uxth r2, r3 + 802e2f0: f9b7 3134 ldrsh.w r3, [r7, #308] ; 0x134 + 802e2f4: b29b uxth r3, r3 + 802e2f6: 4413 add r3, r2 + 802e2f8: b29b uxth r3, r3 + 802e2fa: b21a sxth r2, r3 + 802e2fc: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e300: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 802e304: 801a strh r2, [r3, #0] p.y = (int32_t)((int32_t)((int32_t)sin_mid * r_text + 127) >> LV_TRIGO_SHIFT) + p_center.y; - 802e39a: f8d7 3148 ldr.w r3, [r7, #328] ; 0x148 - 802e39e: f8d7 2138 ldr.w r2, [r7, #312] ; 0x138 - 802e3a2: fb02 f303 mul.w r3, r2, r3 - 802e3a6: 337f adds r3, #127 ; 0x7f - 802e3a8: 13db asrs r3, r3, #15 - 802e3aa: b29a uxth r2, r3 - 802e3ac: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 - 802e3b0: b29b uxth r3, r3 - 802e3b2: 4413 add r3, r2 - 802e3b4: b29b uxth r3, r3 - 802e3b6: b21a sxth r2, r3 - 802e3b8: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e3bc: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 802e3c0: 805a strh r2, [r3, #2] + 802e306: f8d7 3148 ldr.w r3, [r7, #328] ; 0x148 + 802e30a: f8d7 2138 ldr.w r2, [r7, #312] ; 0x138 + 802e30e: fb02 f303 mul.w r3, r2, r3 + 802e312: 337f adds r3, #127 ; 0x7f + 802e314: 13db asrs r3, r3, #15 + 802e316: b29a uxth r2, r3 + 802e318: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 + 802e31c: b29b uxth r3, r3 + 802e31e: 4413 add r3, r2 + 802e320: b29b uxth r3, r3 + 802e322: b21a sxth r2, r3 + 802e324: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e328: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 802e32c: 805a strh r2, [r3, #2] lv_draw_label_dsc_t label_dsc_tmp; lv_memcpy(&label_dsc_tmp, &label_dsc, sizeof(label_dsc_tmp)); - 802e3c2: f507 7184 add.w r1, r7, #264 ; 0x108 - 802e3c6: f107 0314 add.w r3, r7, #20 - 802e3ca: 2220 movs r2, #32 - 802e3cc: 4618 mov r0, r3 - 802e3ce: f004 fc1b bl 8032c08 + 802e32e: f507 7184 add.w r1, r7, #264 ; 0x108 + 802e332: f107 0314 add.w r3, r7, #20 + 802e336: 2220 movs r2, #32 + 802e338: 4618 mov r0, r3 + 802e33a: f004 fc1b bl 8032b74 part_draw_dsc.label_dsc = &label_dsc_tmp; - 802e3d2: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e3d6: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802e3da: f107 0214 add.w r2, r7, #20 - 802e3de: 615a str r2, [r3, #20] + 802e33e: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e342: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802e346: f107 0214 add.w r2, r7, #20 + 802e34a: 615a str r2, [r3, #20] char buf[16]; lv_snprintf(buf, sizeof(buf), "%" LV_PRId32, value_of_line); - 802e3e0: f107 0040 add.w r0, r7, #64 ; 0x40 - 802e3e4: f8d7 3168 ldr.w r3, [r7, #360] ; 0x168 - 802e3e8: 4a96 ldr r2, [pc, #600] ; (802e644 ) - 802e3ea: 2110 movs r1, #16 - 802e3ec: f005 fe54 bl 8034098 + 802e34c: f107 0040 add.w r0, r7, #64 ; 0x40 + 802e350: f8d7 3168 ldr.w r3, [r7, #360] ; 0x168 + 802e354: 4a96 ldr r2, [pc, #600] ; (802e5b0 ) + 802e356: 2110 movs r1, #16 + 802e358: f005 fe54 bl 8034004 part_draw_dsc.text = buf; - 802e3f0: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e3f4: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802e3f8: f107 0240 add.w r2, r7, #64 ; 0x40 - 802e3fc: 62da str r2, [r3, #44] ; 0x2c + 802e35c: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e360: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802e364: f107 0240 add.w r2, r7, #64 ; 0x40 + 802e368: 62da str r2, [r3, #44] ; 0x2c lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 802e3fe: f107 0278 add.w r2, r7, #120 ; 0x78 - 802e402: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e406: f5a3 73c6 sub.w r3, r3, #396 ; 0x18c - 802e40a: 211a movs r1, #26 - 802e40c: 6818 ldr r0, [r3, #0] - 802e40e: f7d4 f837 bl 8002480 + 802e36a: f107 0278 add.w r2, r7, #120 ; 0x78 + 802e36e: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e372: f5a3 73c6 sub.w r3, r3, #396 ; 0x18c + 802e376: 211a movs r1, #26 + 802e378: 6818 ldr r0, [r3, #0] + 802e37a: f7d4 f84b bl 8002414 lv_point_t label_size; lv_txt_get_size(&label_size, part_draw_dsc.text, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, - 802e412: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e416: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802e41a: 6ad9 ldr r1, [r3, #44] ; 0x2c - 802e41c: f8d7 2108 ldr.w r2, [r7, #264] ; 0x108 - 802e420: f9b7 411c ldrsh.w r4, [r7, #284] ; 0x11c - 802e424: f9b7 311a ldrsh.w r3, [r7, #282] ; 0x11a - 802e428: f107 003c add.w r0, r7, #60 ; 0x3c - 802e42c: 2500 movs r5, #0 - 802e42e: 9502 str r5, [sp, #8] - 802e430: f641 75ff movw r5, #8191 ; 0x1fff - 802e434: 9501 str r5, [sp, #4] - 802e436: 9300 str r3, [sp, #0] - 802e438: 4623 mov r3, r4 - 802e43a: f007 fe26 bl 803608a + 802e37e: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e382: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802e386: 6ad9 ldr r1, [r3, #44] ; 0x2c + 802e388: f8d7 2108 ldr.w r2, [r7, #264] ; 0x108 + 802e38c: f9b7 411c ldrsh.w r4, [r7, #284] ; 0x11c + 802e390: f9b7 311a ldrsh.w r3, [r7, #282] ; 0x11a + 802e394: f107 003c add.w r0, r7, #60 ; 0x3c + 802e398: 2500 movs r5, #0 + 802e39a: 9502 str r5, [sp, #8] + 802e39c: f641 75ff movw r5, #8191 ; 0x1fff + 802e3a0: 9501 str r5, [sp, #4] + 802e3a2: 9300 str r3, [sp, #0] + 802e3a4: 4623 mov r3, r4 + 802e3a6: f007 fe26 bl 8035ff6 LV_COORD_MAX, LV_TEXT_FLAG_NONE); lv_area_t label_cord; label_cord.x1 = p.x - label_size.x / 2; + 802e3aa: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e3ae: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 802e3b2: f9b3 3000 ldrsh.w r3, [r3] + 802e3b6: b29a uxth r2, r3 + 802e3b8: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e3bc: f5a3 73ae sub.w r3, r3, #348 ; 0x15c + 802e3c0: f9b3 3000 ldrsh.w r3, [r3] + 802e3c4: 0fd9 lsrs r1, r3, #31 + 802e3c6: 440b add r3, r1 + 802e3c8: 105b asrs r3, r3, #1 + 802e3ca: b21b sxth r3, r3 + 802e3cc: b29b uxth r3, r3 + 802e3ce: 1ad3 subs r3, r2, r3 + 802e3d0: b29b uxth r3, r3 + 802e3d2: b21a sxth r2, r3 + 802e3d4: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e3d8: f5a3 73b2 sub.w r3, r3, #356 ; 0x164 + 802e3dc: 801a strh r2, [r3, #0] + label_cord.y1 = p.y - label_size.y / 2; + 802e3de: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e3e2: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 802e3e6: f9b3 3002 ldrsh.w r3, [r3, #2] + 802e3ea: b29a uxth r2, r3 + 802e3ec: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e3f0: f5a3 73ae sub.w r3, r3, #348 ; 0x15c + 802e3f4: f9b3 3002 ldrsh.w r3, [r3, #2] + 802e3f8: 0fd9 lsrs r1, r3, #31 + 802e3fa: 440b add r3, r1 + 802e3fc: 105b asrs r3, r3, #1 + 802e3fe: b21b sxth r3, r3 + 802e400: b29b uxth r3, r3 + 802e402: 1ad3 subs r3, r2, r3 + 802e404: b29b uxth r3, r3 + 802e406: b21a sxth r2, r3 + 802e408: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e40c: f5a3 73b2 sub.w r3, r3, #356 ; 0x164 + 802e410: 805a strh r2, [r3, #2] + label_cord.x2 = label_cord.x1 + label_size.x; + 802e412: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e416: f5a3 73b2 sub.w r3, r3, #356 ; 0x164 + 802e41a: f9b3 3000 ldrsh.w r3, [r3] + 802e41e: b29a uxth r2, r3 + 802e420: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e424: f5a3 73ae sub.w r3, r3, #348 ; 0x15c + 802e428: f9b3 3000 ldrsh.w r3, [r3] + 802e42c: b29b uxth r3, r3 + 802e42e: 4413 add r3, r2 + 802e430: b29b uxth r3, r3 + 802e432: b21a sxth r2, r3 + 802e434: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e438: f5a3 73b2 sub.w r3, r3, #356 ; 0x164 + 802e43c: 809a strh r2, [r3, #4] + label_cord.y2 = label_cord.y1 + label_size.y; 802e43e: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e442: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 802e446: f9b3 3000 ldrsh.w r3, [r3] + 802e442: f5a3 73b2 sub.w r3, r3, #356 ; 0x164 + 802e446: f9b3 3002 ldrsh.w r3, [r3, #2] 802e44a: b29a uxth r2, r3 802e44c: f507 73cc add.w r3, r7, #408 ; 0x198 802e450: f5a3 73ae sub.w r3, r3, #348 ; 0x15c - 802e454: f9b3 3000 ldrsh.w r3, [r3] - 802e458: 0fd9 lsrs r1, r3, #31 - 802e45a: 440b add r3, r1 - 802e45c: 105b asrs r3, r3, #1 - 802e45e: b21b sxth r3, r3 - 802e460: b29b uxth r3, r3 - 802e462: 1ad3 subs r3, r2, r3 - 802e464: b29b uxth r3, r3 - 802e466: b21a sxth r2, r3 - 802e468: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e46c: f5a3 73b2 sub.w r3, r3, #356 ; 0x164 - 802e470: 801a strh r2, [r3, #0] - label_cord.y1 = p.y - label_size.y / 2; - 802e472: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e476: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 - 802e47a: f9b3 3002 ldrsh.w r3, [r3, #2] - 802e47e: b29a uxth r2, r3 - 802e480: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e484: f5a3 73ae sub.w r3, r3, #348 ; 0x15c - 802e488: f9b3 3002 ldrsh.w r3, [r3, #2] - 802e48c: 0fd9 lsrs r1, r3, #31 - 802e48e: 440b add r3, r1 - 802e490: 105b asrs r3, r3, #1 - 802e492: b21b sxth r3, r3 - 802e494: b29b uxth r3, r3 - 802e496: 1ad3 subs r3, r2, r3 - 802e498: b29b uxth r3, r3 - 802e49a: b21a sxth r2, r3 - 802e49c: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e4a0: f5a3 73b2 sub.w r3, r3, #356 ; 0x164 - 802e4a4: 805a strh r2, [r3, #2] - label_cord.x2 = label_cord.x1 + label_size.x; - 802e4a6: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e4aa: f5a3 73b2 sub.w r3, r3, #356 ; 0x164 - 802e4ae: f9b3 3000 ldrsh.w r3, [r3] - 802e4b2: b29a uxth r2, r3 - 802e4b4: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e4b8: f5a3 73ae sub.w r3, r3, #348 ; 0x15c - 802e4bc: f9b3 3000 ldrsh.w r3, [r3] - 802e4c0: b29b uxth r3, r3 - 802e4c2: 4413 add r3, r2 - 802e4c4: b29b uxth r3, r3 - 802e4c6: b21a sxth r2, r3 - 802e4c8: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e4cc: f5a3 73b2 sub.w r3, r3, #356 ; 0x164 - 802e4d0: 809a strh r2, [r3, #4] - label_cord.y2 = label_cord.y1 + label_size.y; - 802e4d2: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e4d6: f5a3 73b2 sub.w r3, r3, #356 ; 0x164 - 802e4da: f9b3 3002 ldrsh.w r3, [r3, #2] - 802e4de: b29a uxth r2, r3 - 802e4e0: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e4e4: f5a3 73ae sub.w r3, r3, #348 ; 0x15c - 802e4e8: f9b3 3002 ldrsh.w r3, [r3, #2] - 802e4ec: b29b uxth r3, r3 - 802e4ee: 4413 add r3, r2 - 802e4f0: b29b uxth r3, r3 - 802e4f2: b21a sxth r2, r3 - 802e4f4: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e4f8: f5a3 73b2 sub.w r3, r3, #356 ; 0x164 - 802e4fc: 80da strh r2, [r3, #6] + 802e454: f9b3 3002 ldrsh.w r3, [r3, #2] + 802e458: b29b uxth r3, r3 + 802e45a: 4413 add r3, r2 + 802e45c: b29b uxth r3, r3 + 802e45e: b21a sxth r2, r3 + 802e460: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e464: f5a3 73b2 sub.w r3, r3, #356 ; 0x164 + 802e468: 80da strh r2, [r3, #6] lv_draw_label(draw_ctx, part_draw_dsc.label_dsc, &label_cord, part_draw_dsc.text, NULL); - 802e4fe: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e502: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802e506: 6959 ldr r1, [r3, #20] - 802e508: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e50c: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802e510: 6adb ldr r3, [r3, #44] ; 0x2c - 802e512: f107 0234 add.w r2, r7, #52 ; 0x34 - 802e516: f507 70cc add.w r0, r7, #408 ; 0x198 - 802e51a: f5a0 70c8 sub.w r0, r0, #400 ; 0x190 - 802e51e: 2400 movs r4, #0 - 802e520: 9400 str r4, [sp, #0] - 802e522: 6800 ldr r0, [r0, #0] - 802e524: f7e3 fe5e bl 80121e4 + 802e46a: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e46e: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802e472: 6959 ldr r1, [r3, #20] + 802e474: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e478: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802e47c: 6adb ldr r3, [r3, #44] ; 0x2c + 802e47e: f107 0234 add.w r2, r7, #52 ; 0x34 + 802e482: f507 70cc add.w r0, r7, #408 ; 0x198 + 802e486: f5a0 70c8 sub.w r0, r0, #400 ; 0x190 + 802e48a: 2400 movs r4, #0 + 802e48c: 9400 str r4, [sp, #0] + 802e48e: 6800 ldr r0, [r0, #0] + 802e490: f7e3 fe5e bl 8012150 outer_mask_id = lv_draw_mask_add(&outer_mask, NULL); - 802e528: f107 03c0 add.w r3, r7, #192 ; 0xc0 - 802e52c: 2100 movs r1, #0 - 802e52e: 4618 mov r0, r3 - 802e530: f7e4 fd88 bl 8013044 - 802e534: 4603 mov r3, r0 - 802e536: f8a7 318e strh.w r3, [r7, #398] ; 0x18e - 802e53a: e015 b.n 802e568 + 802e494: f107 03c0 add.w r3, r7, #192 ; 0xc0 + 802e498: 2100 movs r1, #0 + 802e49a: 4618 mov r0, r3 + 802e49c: f7e4 fd88 bl 8012fb0 + 802e4a0: 4603 mov r3, r0 + 802e4a2: f8a7 318e strh.w r3, [r7, #398] ; 0x18e + 802e4a6: e015 b.n 802e4d4 } else { part_draw_dsc.label_dsc = NULL; - 802e53c: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e540: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802e544: 2200 movs r2, #0 - 802e546: 615a str r2, [r3, #20] + 802e4a8: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e4ac: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802e4b0: 2200 movs r2, #0 + 802e4b2: 615a str r2, [r3, #20] part_draw_dsc.text = NULL; - 802e548: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e54c: f5a3 7390 sub.w r3, r3, #288 ; 0x120 - 802e550: 2200 movs r2, #0 - 802e552: 62da str r2, [r3, #44] ; 0x2c + 802e4b4: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e4b8: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 802e4bc: 2200 movs r2, #0 + 802e4be: 62da str r2, [r3, #44] ; 0x2c lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 802e554: f107 0278 add.w r2, r7, #120 ; 0x78 - 802e558: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e55c: f5a3 73c6 sub.w r3, r3, #396 ; 0x18c - 802e560: 211a movs r1, #26 - 802e562: 6818 ldr r0, [r3, #0] - 802e564: f7d3 ff8c bl 8002480 + 802e4c0: f107 0278 add.w r2, r7, #120 ; 0x78 + 802e4c4: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e4c8: f5a3 73c6 sub.w r3, r3, #396 ; 0x18c + 802e4cc: 211a movs r1, #26 + 802e4ce: 6818 ldr r0, [r3, #0] + 802e4d0: f7d3 ffa0 bl 8002414 } inner_act_mask_id = lv_draw_mask_add(major ? &inner_major_mask : &inner_minor_mask, NULL); - 802e568: f897 3187 ldrb.w r3, [r7, #391] ; 0x187 - 802e56c: 2b00 cmp r3, #0 - 802e56e: d002 beq.n 802e576 - 802e570: f107 03d8 add.w r3, r7, #216 ; 0xd8 - 802e574: e001 b.n 802e57a - 802e576: f107 03f0 add.w r3, r7, #240 ; 0xf0 - 802e57a: 2100 movs r1, #0 - 802e57c: 4618 mov r0, r3 - 802e57e: f7e4 fd61 bl 8013044 - 802e582: 4603 mov r3, r0 - 802e584: f8a7 316e strh.w r3, [r7, #366] ; 0x16e + 802e4d4: f897 3187 ldrb.w r3, [r7, #391] ; 0x187 + 802e4d8: 2b00 cmp r3, #0 + 802e4da: d002 beq.n 802e4e2 + 802e4dc: f107 03d8 add.w r3, r7, #216 ; 0xd8 + 802e4e0: e001 b.n 802e4e6 + 802e4e2: f107 03f0 add.w r3, r7, #240 ; 0xf0 + 802e4e6: 2100 movs r1, #0 + 802e4e8: 4618 mov r0, r3 + 802e4ea: f7e4 fd61 bl 8012fb0 + 802e4ee: 4603 mov r3, r0 + 802e4f0: f8a7 316e strh.w r3, [r7, #366] ; 0x16e lv_draw_line(draw_ctx, &line_dsc, &p_outer, &p_center); - 802e588: f507 739a add.w r3, r7, #308 ; 0x134 - 802e58c: f107 0254 add.w r2, r7, #84 ; 0x54 - 802e590: f507 7194 add.w r1, r7, #296 ; 0x128 - 802e594: f507 70cc add.w r0, r7, #408 ; 0x198 - 802e598: f5a0 70c8 sub.w r0, r0, #400 ; 0x190 - 802e59c: 6800 ldr r0, [r0, #0] - 802e59e: f7e4 fce8 bl 8012f72 + 802e4f4: f507 739a add.w r3, r7, #308 ; 0x134 + 802e4f8: f107 0254 add.w r2, r7, #84 ; 0x54 + 802e4fc: f507 7194 add.w r1, r7, #296 ; 0x128 + 802e500: f507 70cc add.w r0, r7, #408 ; 0x198 + 802e504: f5a0 70c8 sub.w r0, r0, #400 ; 0x190 + 802e508: 6800 ldr r0, [r0, #0] + 802e50a: f7e4 fce8 bl 8012ede lv_draw_mask_remove_id(inner_act_mask_id); - 802e5a2: f9b7 316e ldrsh.w r3, [r7, #366] ; 0x16e - 802e5a6: 4618 mov r0, r3 - 802e5a8: f7e4 fdc0 bl 801312c + 802e50e: f9b7 316e ldrsh.w r3, [r7, #366] ; 0x16e + 802e512: 4618 mov r0, r3 + 802e514: f7e4 fdc0 bl 8013098 lv_event_send(obj, LV_EVENT_DRAW_MAIN_END, &part_draw_dsc); - 802e5ac: f107 0278 add.w r2, r7, #120 ; 0x78 - 802e5b0: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e5b4: f5a3 73c6 sub.w r3, r3, #396 ; 0x18c - 802e5b8: 2116 movs r1, #22 - 802e5ba: 6818 ldr r0, [r3, #0] - 802e5bc: f7d3 ff60 bl 8002480 + 802e518: f107 0278 add.w r2, r7, #120 ; 0x78 + 802e51c: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e520: f5a3 73c6 sub.w r3, r3, #396 ; 0x18c + 802e524: 2116 movs r1, #22 + 802e526: 6818 ldr r0, [r3, #0] + 802e528: f7d3 ff74 bl 8002414 line_dsc.color = line_color_ori; - 802e5c0: f507 73cc add.w r3, r7, #408 ; 0x198 - 802e5c4: f5a3 73a0 sub.w r3, r3, #320 ; 0x140 - 802e5c8: 881b ldrh r3, [r3, #0] - 802e5ca: f8a7 3128 strh.w r3, [r7, #296] ; 0x128 + 802e52c: f507 73cc add.w r3, r7, #408 ; 0x198 + 802e530: f5a3 73a0 sub.w r3, r3, #320 ; 0x140 + 802e534: 881b ldrh r3, [r3, #0] + 802e536: f8a7 3128 strh.w r3, [r7, #296] ; 0x128 line_dsc.width = line_width_ori; - 802e5ce: f8b7 3166 ldrh.w r3, [r7, #358] ; 0x166 - 802e5d2: f8a7 312a strh.w r3, [r7, #298] ; 0x12a + 802e53a: f8b7 3166 ldrh.w r3, [r7, #358] ; 0x166 + 802e53e: f8a7 312a strh.w r3, [r7, #298] ; 0x12a for(i = 0; i < scale->tick_cnt; i++) { - 802e5d6: f897 3197 ldrb.w r3, [r7, #407] ; 0x197 - 802e5da: 3301 adds r3, #1 - 802e5dc: f887 3197 strb.w r3, [r7, #407] ; 0x197 - 802e5e0: f897 3197 ldrb.w r3, [r7, #407] ; 0x197 - 802e5e4: b29a uxth r2, r3 - 802e5e6: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802e5ea: 885b ldrh r3, [r3, #2] - 802e5ec: 429a cmp r2, r3 - 802e5ee: f4ff aceb bcc.w 802dfc8 + 802e542: f897 3197 ldrb.w r3, [r7, #407] ; 0x197 + 802e546: 3301 adds r3, #1 + 802e548: f887 3197 strb.w r3, [r7, #407] ; 0x197 + 802e54c: f897 3197 ldrb.w r3, [r7, #407] ; 0x197 + 802e550: b29a uxth r2, r3 + 802e552: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802e556: 885b ldrh r3, [r3, #2] + 802e558: 429a cmp r2, r3 + 802e55a: f4ff aceb bcc.w 802df34 } lv_draw_mask_free_param(&inner_minor_mask); - 802e5f2: f107 03f0 add.w r3, r7, #240 ; 0xf0 - 802e5f6: 4618 mov r0, r3 - 802e5f8: f7e4 fde8 bl 80131cc + 802e55e: f107 03f0 add.w r3, r7, #240 ; 0xf0 + 802e562: 4618 mov r0, r3 + 802e564: f7e4 fde8 bl 8013138 lv_draw_mask_free_param(&inner_major_mask); - 802e5fc: f107 03d8 add.w r3, r7, #216 ; 0xd8 - 802e600: 4618 mov r0, r3 - 802e602: f7e4 fde3 bl 80131cc + 802e568: f107 03d8 add.w r3, r7, #216 ; 0xd8 + 802e56c: 4618 mov r0, r3 + 802e56e: f7e4 fde3 bl 8013138 lv_draw_mask_free_param(&outer_mask); - 802e606: f107 03c0 add.w r3, r7, #192 ; 0xc0 - 802e60a: 4618 mov r0, r3 - 802e60c: f7e4 fdde bl 80131cc + 802e572: f107 03c0 add.w r3, r7, #192 ; 0xc0 + 802e576: 4618 mov r0, r3 + 802e578: f7e4 fdde bl 8013138 lv_draw_mask_remove_id(outer_mask_id); - 802e610: f9b7 318e ldrsh.w r3, [r7, #398] ; 0x18e - 802e614: 4618 mov r0, r3 - 802e616: f7e4 fd89 bl 801312c + 802e57c: f9b7 318e ldrsh.w r3, [r7, #398] ; 0x18e + 802e580: 4618 mov r0, r3 + 802e582: f7e4 fd89 bl 8013098 _LV_LL_READ_BACK(&meter->scale_ll, scale) { - 802e61a: f8d7 3178 ldr.w r3, [r7, #376] ; 0x178 - 802e61e: 3324 adds r3, #36 ; 0x24 - 802e620: f8d7 1190 ldr.w r1, [r7, #400] ; 0x190 - 802e624: 4618 mov r0, r3 - 802e626: f003 fecd bl 80323c4 <_lv_ll_get_prev> - 802e62a: f8c7 0190 str.w r0, [r7, #400] ; 0x190 - 802e62e: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 - 802e632: 2b00 cmp r3, #0 - 802e634: f47f abc6 bne.w 802ddc4 + 802e586: f8d7 3178 ldr.w r3, [r7, #376] ; 0x178 + 802e58a: 3324 adds r3, #36 ; 0x24 + 802e58c: f8d7 1190 ldr.w r1, [r7, #400] ; 0x190 + 802e590: 4618 mov r0, r3 + 802e592: f003 fecd bl 8032330 <_lv_ll_get_prev> + 802e596: f8c7 0190 str.w r0, [r7, #400] ; 0x190 + 802e59a: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 802e59e: 2b00 cmp r3, #0 + 802e5a0: f47f abc6 bne.w 802dd30 } } - 802e638: bf00 nop - 802e63a: bf00 nop - 802e63c: f507 77cc add.w r7, r7, #408 ; 0x198 - 802e640: 46bd mov sp, r7 - 802e642: bdb0 pop {r4, r5, r7, pc} - 802e644: 08047138 .word 0x08047138 + 802e5a4: bf00 nop + 802e5a6: bf00 nop + 802e5a8: f507 77cc add.w r7, r7, #408 ; 0x198 + 802e5ac: 46bd mov sp, r7 + 802e5ae: bdb0 pop {r4, r5, r7, pc} + 802e5b0: 08047090 .word 0x08047090 -0802e648 : +0802e5b4 : static void draw_needles(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, const lv_area_t * scale_area) { - 802e648: b5b0 push {r4, r5, r7, lr} - 802e64a: b0ae sub sp, #184 ; 0xb8 - 802e64c: af02 add r7, sp, #8 - 802e64e: 60f8 str r0, [r7, #12] - 802e650: 60b9 str r1, [r7, #8] - 802e652: 607a str r2, [r7, #4] + 802e5b4: b5b0 push {r4, r5, r7, lr} + 802e5b6: b0ae sub sp, #184 ; 0xb8 + 802e5b8: af02 add r7, sp, #8 + 802e5ba: 60f8 str r0, [r7, #12] + 802e5bc: 60b9 str r1, [r7, #8] + 802e5be: 607a str r2, [r7, #4] lv_meter_t * meter = (lv_meter_t *)obj; - 802e654: 68fb ldr r3, [r7, #12] - 802e656: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + 802e5c0: 68fb ldr r3, [r7, #12] + 802e5c2: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 lv_coord_t r_edge = lv_area_get_width(scale_area) / 2; - 802e65a: 6878 ldr r0, [r7, #4] - 802e65c: f7ff f860 bl 802d720 - 802e660: 4603 mov r3, r0 - 802e662: 0fda lsrs r2, r3, #31 - 802e664: 4413 add r3, r2 - 802e666: 105b asrs r3, r3, #1 - 802e668: f8a7 30a2 strh.w r3, [r7, #162] ; 0xa2 + 802e5c6: 6878 ldr r0, [r7, #4] + 802e5c8: f7ff f860 bl 802d68c + 802e5cc: 4603 mov r3, r0 + 802e5ce: 0fda lsrs r2, r3, #31 + 802e5d0: 4413 add r3, r2 + 802e5d2: 105b asrs r3, r3, #1 + 802e5d4: f8a7 30a2 strh.w r3, [r7, #162] ; 0xa2 lv_point_t scale_center; scale_center.x = scale_area->x1 + r_edge; - 802e66c: 687b ldr r3, [r7, #4] - 802e66e: f9b3 3000 ldrsh.w r3, [r3] - 802e672: b29a uxth r2, r3 - 802e674: f8b7 30a2 ldrh.w r3, [r7, #162] ; 0xa2 - 802e678: 4413 add r3, r2 - 802e67a: b29b uxth r3, r3 - 802e67c: b21b sxth r3, r3 - 802e67e: f8a7 3090 strh.w r3, [r7, #144] ; 0x90 + 802e5d8: 687b ldr r3, [r7, #4] + 802e5da: f9b3 3000 ldrsh.w r3, [r3] + 802e5de: b29a uxth r2, r3 + 802e5e0: f8b7 30a2 ldrh.w r3, [r7, #162] ; 0xa2 + 802e5e4: 4413 add r3, r2 + 802e5e6: b29b uxth r3, r3 + 802e5e8: b21b sxth r3, r3 + 802e5ea: f8a7 3090 strh.w r3, [r7, #144] ; 0x90 scale_center.y = scale_area->y1 + r_edge; - 802e682: 687b ldr r3, [r7, #4] - 802e684: f9b3 3002 ldrsh.w r3, [r3, #2] - 802e688: b29a uxth r2, r3 - 802e68a: f8b7 30a2 ldrh.w r3, [r7, #162] ; 0xa2 - 802e68e: 4413 add r3, r2 - 802e690: b29b uxth r3, r3 - 802e692: b21b sxth r3, r3 - 802e694: f8a7 3092 strh.w r3, [r7, #146] ; 0x92 + 802e5ee: 687b ldr r3, [r7, #4] + 802e5f0: f9b3 3002 ldrsh.w r3, [r3, #2] + 802e5f4: b29a uxth r2, r3 + 802e5f6: f8b7 30a2 ldrh.w r3, [r7, #162] ; 0xa2 + 802e5fa: 4413 add r3, r2 + 802e5fc: b29b uxth r3, r3 + 802e5fe: b21b sxth r3, r3 + 802e600: f8a7 3092 strh.w r3, [r7, #146] ; 0x92 lv_draw_line_dsc_t line_dsc; lv_draw_line_dsc_init(&line_dsc); - 802e698: f107 0384 add.w r3, r7, #132 ; 0x84 - 802e69c: 4618 mov r0, r3 - 802e69e: f7e4 fc52 bl 8012f46 + 802e604: f107 0384 add.w r3, r7, #132 ; 0x84 + 802e608: 4618 mov r0, r3 + 802e60a: f7e4 fc52 bl 8012eb2 lv_obj_init_draw_line_dsc(obj, LV_PART_ITEMS, &line_dsc); - 802e6a2: f107 0384 add.w r3, r7, #132 ; 0x84 - 802e6a6: 461a mov r2, r3 - 802e6a8: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 802e6ac: 68f8 ldr r0, [r7, #12] - 802e6ae: f7da fa5b bl 8008b68 + 802e60e: f107 0384 add.w r3, r7, #132 ; 0x84 + 802e612: 461a mov r2, r3 + 802e614: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 802e618: 68f8 ldr r0, [r7, #12] + 802e61a: f7da fa6f bl 8008afc lv_draw_img_dsc_t img_dsc; lv_draw_img_dsc_init(&img_dsc); - 802e6b2: f107 036c add.w r3, r7, #108 ; 0x6c - 802e6b6: 4618 mov r0, r3 - 802e6b8: f7e3 f9f9 bl 8011aae + 802e61e: f107 036c add.w r3, r7, #108 ; 0x6c + 802e622: 4618 mov r0, r3 + 802e624: f7e3 f9f9 bl 8011a1a lv_obj_init_draw_img_dsc(obj, LV_PART_ITEMS, &img_dsc); - 802e6bc: f107 036c add.w r3, r7, #108 ; 0x6c - 802e6c0: 461a mov r2, r3 - 802e6c2: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 802e6c6: 68f8 ldr r0, [r7, #12] - 802e6c8: f7da f9dd bl 8008a86 + 802e628: f107 036c add.w r3, r7, #108 ; 0x6c + 802e62c: 461a mov r2, r3 + 802e62e: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 802e632: 68f8 ldr r0, [r7, #12] + 802e634: f7da f9f1 bl 8008a1a lv_opa_t opa_main = lv_obj_get_style_opa(obj, LV_PART_MAIN); - 802e6cc: 2100 movs r1, #0 - 802e6ce: 68f8 ldr r0, [r7, #12] - 802e6d0: f7ff f8c6 bl 802d860 - 802e6d4: 4603 mov r3, r0 - 802e6d6: f887 30a1 strb.w r3, [r7, #161] ; 0xa1 + 802e638: 2100 movs r1, #0 + 802e63a: 68f8 ldr r0, [r7, #12] + 802e63c: f7ff f8c6 bl 802d7cc + 802e640: 4603 mov r3, r0 + 802e642: f887 30a1 strb.w r3, [r7, #161] ; 0xa1 lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 802e6da: f107 0324 add.w r3, r7, #36 ; 0x24 - 802e6de: 68b9 ldr r1, [r7, #8] - 802e6e0: 4618 mov r0, r3 - 802e6e2: f7da fbc4 bl 8008e6e + 802e646: f107 0324 add.w r3, r7, #36 ; 0x24 + 802e64a: 68b9 ldr r1, [r7, #8] + 802e64c: 4618 mov r0, r3 + 802e64e: f7da fbd8 bl 8008e02 part_draw_dsc.class_p = MY_CLASS; - 802e6e6: 4bc5 ldr r3, [pc, #788] ; (802e9fc ) - 802e6e8: 62bb str r3, [r7, #40] ; 0x28 + 802e652: 4bc5 ldr r3, [pc, #788] ; (802e968 ) + 802e654: 62bb str r3, [r7, #40] ; 0x28 part_draw_dsc.p1 = &scale_center; - 802e6ea: f107 0390 add.w r3, r7, #144 ; 0x90 - 802e6ee: 64bb str r3, [r7, #72] ; 0x48 + 802e656: f107 0390 add.w r3, r7, #144 ; 0x90 + 802e65a: 64bb str r3, [r7, #72] ; 0x48 lv_meter_indicator_t * indic; _LV_LL_READ_BACK(&meter->indicator_ll, indic) { - 802e6f0: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 - 802e6f4: 3330 adds r3, #48 ; 0x30 - 802e6f6: 4618 mov r0, r3 - 802e6f8: f003 fe40 bl 803237c <_lv_ll_get_tail> - 802e6fc: f8c7 00ac str.w r0, [r7, #172] ; 0xac - 802e700: e172 b.n 802e9e8 + 802e65c: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 + 802e660: 3330 adds r3, #48 ; 0x30 + 802e662: 4618 mov r0, r3 + 802e664: f003 fe40 bl 80322e8 <_lv_ll_get_tail> + 802e668: f8c7 00ac str.w r0, [r7, #172] ; 0xac + 802e66c: e172 b.n 802e954 lv_meter_scale_t * scale = indic->scale; - 802e702: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e706: 681b ldr r3, [r3, #0] - 802e708: f8c7 309c str.w r3, [r7, #156] ; 0x9c + 802e66e: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e672: 681b ldr r3, [r3, #0] + 802e674: f8c7 309c str.w r3, [r7, #156] ; 0x9c part_draw_dsc.sub_part_ptr = indic; - 802e70c: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e710: 66bb str r3, [r7, #104] ; 0x68 + 802e678: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e67c: 66bb str r3, [r7, #104] ; 0x68 if(indic->type == LV_METER_INDICATOR_TYPE_NEEDLE_LINE) { - 802e712: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e716: 791b ldrb r3, [r3, #4] - 802e718: 2b01 cmp r3, #1 - 802e71a: f040 80a3 bne.w 802e864 + 802e67e: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e682: 791b ldrb r3, [r3, #4] + 802e684: 2b01 cmp r3, #1 + 802e686: f040 80a3 bne.w 802e7d0 int32_t angle = lv_map(indic->end_value, scale->min, scale->max, scale->rotation, scale->rotation + scale->angle_range); - 802e71e: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e722: 68d8 ldr r0, [r3, #12] - 802e724: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 802e728: 6959 ldr r1, [r3, #20] - 802e72a: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 802e72e: 699a ldr r2, [r3, #24] - 802e730: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 802e734: f9b3 3020 ldrsh.w r3, [r3, #32] - 802e738: 461d mov r5, r3 - 802e73a: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 802e73e: f9b3 3020 ldrsh.w r3, [r3, #32] - 802e742: 461c mov r4, r3 - 802e744: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 802e748: 8bdb ldrh r3, [r3, #30] - 802e74a: 4423 add r3, r4 - 802e74c: 9300 str r3, [sp, #0] - 802e74e: 462b mov r3, r5 - 802e750: f004 f867 bl 8032822 - 802e754: f8c7 0098 str.w r0, [r7, #152] ; 0x98 + 802e68a: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e68e: 68d8 ldr r0, [r3, #12] + 802e690: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 802e694: 6959 ldr r1, [r3, #20] + 802e696: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 802e69a: 699a ldr r2, [r3, #24] + 802e69c: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 802e6a0: f9b3 3020 ldrsh.w r3, [r3, #32] + 802e6a4: 461d mov r5, r3 + 802e6a6: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 802e6aa: f9b3 3020 ldrsh.w r3, [r3, #32] + 802e6ae: 461c mov r4, r3 + 802e6b0: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 802e6b4: 8bdb ldrh r3, [r3, #30] + 802e6b6: 4423 add r3, r4 + 802e6b8: 9300 str r3, [sp, #0] + 802e6ba: 462b mov r3, r5 + 802e6bc: f004 f867 bl 803278e + 802e6c0: f8c7 0098 str.w r0, [r7, #152] ; 0x98 lv_coord_t r_out = r_edge + scale->r_mod + indic->type_data.needle_line.r_mod; - 802e758: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 802e75c: f9b3 301c ldrsh.w r3, [r3, #28] - 802e760: b29a uxth r2, r3 - 802e762: f8b7 30a2 ldrh.w r3, [r7, #162] ; 0xa2 - 802e766: 4413 add r3, r2 - 802e768: b29a uxth r2, r3 - 802e76a: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e76e: f9b3 3012 ldrsh.w r3, [r3, #18] - 802e772: b29b uxth r3, r3 - 802e774: 4413 add r3, r2 - 802e776: b29b uxth r3, r3 - 802e778: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 + 802e6c4: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 802e6c8: f9b3 301c ldrsh.w r3, [r3, #28] + 802e6cc: b29a uxth r2, r3 + 802e6ce: f8b7 30a2 ldrh.w r3, [r7, #162] ; 0xa2 + 802e6d2: 4413 add r3, r2 + 802e6d4: b29a uxth r2, r3 + 802e6d6: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e6da: f9b3 3012 ldrsh.w r3, [r3, #18] + 802e6de: b29b uxth r3, r3 + 802e6e0: 4413 add r3, r2 + 802e6e2: b29b uxth r3, r3 + 802e6e4: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 lv_point_t p_end; p_end.y = (lv_trigo_sin(angle) * (r_out)) / LV_TRIGO_SIN_MAX + scale_center.y; - 802e77c: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 802e780: b21b sxth r3, r3 - 802e782: 4618 mov r0, r3 - 802e784: f003 fea2 bl 80324cc - 802e788: 4603 mov r3, r0 - 802e78a: 461a mov r2, r3 - 802e78c: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 - 802e790: fb02 f303 mul.w r3, r2, r3 - 802e794: 4a9a ldr r2, [pc, #616] ; (802ea00 ) - 802e796: fb82 1203 smull r1, r2, r2, r3 - 802e79a: 441a add r2, r3 - 802e79c: 1392 asrs r2, r2, #14 - 802e79e: 17db asrs r3, r3, #31 - 802e7a0: 1ad3 subs r3, r2, r3 - 802e7a2: b29a uxth r2, r3 - 802e7a4: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 - 802e7a8: b29b uxth r3, r3 - 802e7aa: 4413 add r3, r2 - 802e7ac: b29b uxth r3, r3 - 802e7ae: b21b sxth r3, r3 - 802e7b0: 847b strh r3, [r7, #34] ; 0x22 + 802e6e8: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 802e6ec: b21b sxth r3, r3 + 802e6ee: 4618 mov r0, r3 + 802e6f0: f003 fea2 bl 8032438 + 802e6f4: 4603 mov r3, r0 + 802e6f6: 461a mov r2, r3 + 802e6f8: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 + 802e6fc: fb02 f303 mul.w r3, r2, r3 + 802e700: 4a9a ldr r2, [pc, #616] ; (802e96c ) + 802e702: fb82 1203 smull r1, r2, r2, r3 + 802e706: 441a add r2, r3 + 802e708: 1392 asrs r2, r2, #14 + 802e70a: 17db asrs r3, r3, #31 + 802e70c: 1ad3 subs r3, r2, r3 + 802e70e: b29a uxth r2, r3 + 802e710: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 + 802e714: b29b uxth r3, r3 + 802e716: 4413 add r3, r2 + 802e718: b29b uxth r3, r3 + 802e71a: b21b sxth r3, r3 + 802e71c: 847b strh r3, [r7, #34] ; 0x22 p_end.x = (lv_trigo_cos(angle) * (r_out)) / LV_TRIGO_SIN_MAX + scale_center.x; - 802e7b2: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 802e7b6: b21b sxth r3, r3 - 802e7b8: 4618 mov r0, r3 - 802e7ba: f7fe ffa0 bl 802d6fe - 802e7be: 4603 mov r3, r0 - 802e7c0: 461a mov r2, r3 - 802e7c2: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 - 802e7c6: fb02 f303 mul.w r3, r2, r3 - 802e7ca: 4a8d ldr r2, [pc, #564] ; (802ea00 ) - 802e7cc: fb82 1203 smull r1, r2, r2, r3 - 802e7d0: 441a add r2, r3 - 802e7d2: 1392 asrs r2, r2, #14 - 802e7d4: 17db asrs r3, r3, #31 - 802e7d6: 1ad3 subs r3, r2, r3 - 802e7d8: b29a uxth r2, r3 - 802e7da: f9b7 3090 ldrsh.w r3, [r7, #144] ; 0x90 - 802e7de: b29b uxth r3, r3 - 802e7e0: 4413 add r3, r2 - 802e7e2: b29b uxth r3, r3 - 802e7e4: b21b sxth r3, r3 - 802e7e6: 843b strh r3, [r7, #32] + 802e71e: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 802e722: b21b sxth r3, r3 + 802e724: 4618 mov r0, r3 + 802e726: f7fe ffa0 bl 802d66a + 802e72a: 4603 mov r3, r0 + 802e72c: 461a mov r2, r3 + 802e72e: f9b7 3096 ldrsh.w r3, [r7, #150] ; 0x96 + 802e732: fb02 f303 mul.w r3, r2, r3 + 802e736: 4a8d ldr r2, [pc, #564] ; (802e96c ) + 802e738: fb82 1203 smull r1, r2, r2, r3 + 802e73c: 441a add r2, r3 + 802e73e: 1392 asrs r2, r2, #14 + 802e740: 17db asrs r3, r3, #31 + 802e742: 1ad3 subs r3, r2, r3 + 802e744: b29a uxth r2, r3 + 802e746: f9b7 3090 ldrsh.w r3, [r7, #144] ; 0x90 + 802e74a: b29b uxth r3, r3 + 802e74c: 4413 add r3, r2 + 802e74e: b29b uxth r3, r3 + 802e750: b21b sxth r3, r3 + 802e752: 843b strh r3, [r7, #32] line_dsc.color = indic->type_data.needle_line.color; - 802e7e8: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e7ec: 8a9b ldrh r3, [r3, #20] - 802e7ee: f8a7 3084 strh.w r3, [r7, #132] ; 0x84 + 802e754: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e758: 8a9b ldrh r3, [r3, #20] + 802e75a: f8a7 3084 strh.w r3, [r7, #132] ; 0x84 line_dsc.width = indic->type_data.needle_line.width; - 802e7f2: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e7f6: 8a1b ldrh r3, [r3, #16] - 802e7f8: b21b sxth r3, r3 - 802e7fa: f8a7 3086 strh.w r3, [r7, #134] ; 0x86 + 802e75e: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e762: 8a1b ldrh r3, [r3, #16] + 802e764: b21b sxth r3, r3 + 802e766: f8a7 3086 strh.w r3, [r7, #134] ; 0x86 line_dsc.opa = indic->opa > LV_OPA_MAX ? opa_main : (opa_main * indic->opa) >> 8; - 802e7fe: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e802: 795b ldrb r3, [r3, #5] - 802e804: 2bfd cmp r3, #253 ; 0xfd - 802e806: d809 bhi.n 802e81c - 802e808: f897 30a1 ldrb.w r3, [r7, #161] ; 0xa1 - 802e80c: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac - 802e810: 7952 ldrb r2, [r2, #5] - 802e812: fb02 f303 mul.w r3, r2, r3 - 802e816: 121b asrs r3, r3, #8 - 802e818: b2db uxtb r3, r3 - 802e81a: e001 b.n 802e820 - 802e81c: f897 30a1 ldrb.w r3, [r7, #161] ; 0xa1 - 802e820: f887 308c strb.w r3, [r7, #140] ; 0x8c + 802e76a: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e76e: 795b ldrb r3, [r3, #5] + 802e770: 2bfd cmp r3, #253 ; 0xfd + 802e772: d809 bhi.n 802e788 + 802e774: f897 30a1 ldrb.w r3, [r7, #161] ; 0xa1 + 802e778: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac + 802e77c: 7952 ldrb r2, [r2, #5] + 802e77e: fb02 f303 mul.w r3, r2, r3 + 802e782: 121b asrs r3, r3, #8 + 802e784: b2db uxtb r3, r3 + 802e786: e001 b.n 802e78c + 802e788: f897 30a1 ldrb.w r3, [r7, #161] ; 0xa1 + 802e78c: f887 308c strb.w r3, [r7, #140] ; 0x8c part_draw_dsc.id = LV_METER_DRAW_PART_NEEDLE_LINE; - 802e824: 2301 movs r3, #1 - 802e826: 65fb str r3, [r7, #92] ; 0x5c + 802e790: 2301 movs r3, #1 + 802e792: 65fb str r3, [r7, #92] ; 0x5c part_draw_dsc.line_dsc = &line_dsc; - 802e828: f107 0384 add.w r3, r7, #132 ; 0x84 - 802e82c: 63fb str r3, [r7, #60] ; 0x3c + 802e794: f107 0384 add.w r3, r7, #132 ; 0x84 + 802e798: 63fb str r3, [r7, #60] ; 0x3c part_draw_dsc.p2 = &p_end; - 802e82e: f107 0320 add.w r3, r7, #32 - 802e832: 64fb str r3, [r7, #76] ; 0x4c + 802e79a: f107 0320 add.w r3, r7, #32 + 802e79e: 64fb str r3, [r7, #76] ; 0x4c lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 802e834: f107 0324 add.w r3, r7, #36 ; 0x24 - 802e838: 461a mov r2, r3 - 802e83a: 211a movs r1, #26 - 802e83c: 68f8 ldr r0, [r7, #12] - 802e83e: f7d3 fe1f bl 8002480 + 802e7a0: f107 0324 add.w r3, r7, #36 ; 0x24 + 802e7a4: 461a mov r2, r3 + 802e7a6: 211a movs r1, #26 + 802e7a8: 68f8 ldr r0, [r7, #12] + 802e7aa: f7d3 fe33 bl 8002414 lv_draw_line(draw_ctx, &line_dsc, &scale_center, &p_end); - 802e842: f107 0320 add.w r3, r7, #32 - 802e846: f107 0290 add.w r2, r7, #144 ; 0x90 - 802e84a: f107 0184 add.w r1, r7, #132 ; 0x84 - 802e84e: 68b8 ldr r0, [r7, #8] - 802e850: f7e4 fb8f bl 8012f72 + 802e7ae: f107 0320 add.w r3, r7, #32 + 802e7b2: f107 0290 add.w r2, r7, #144 ; 0x90 + 802e7b6: f107 0184 add.w r1, r7, #132 ; 0x84 + 802e7ba: 68b8 ldr r0, [r7, #8] + 802e7bc: f7e4 fb8f bl 8012ede lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 802e854: f107 0324 add.w r3, r7, #36 ; 0x24 - 802e858: 461a mov r2, r3 - 802e85a: 211b movs r1, #27 - 802e85c: 68f8 ldr r0, [r7, #12] - 802e85e: f7d3 fe0f bl 8002480 - 802e862: e0b7 b.n 802e9d4 + 802e7c0: f107 0324 add.w r3, r7, #36 ; 0x24 + 802e7c4: 461a mov r2, r3 + 802e7c6: 211b movs r1, #27 + 802e7c8: 68f8 ldr r0, [r7, #12] + 802e7ca: f7d3 fe23 bl 8002414 + 802e7ce: e0b7 b.n 802e940 } else if(indic->type == LV_METER_INDICATOR_TYPE_NEEDLE_IMG) { - 802e864: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e868: 791b ldrb r3, [r3, #4] - 802e86a: 2b00 cmp r3, #0 - 802e86c: f040 80b2 bne.w 802e9d4 + 802e7d0: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e7d4: 791b ldrb r3, [r3, #4] + 802e7d6: 2b00 cmp r3, #0 + 802e7d8: f040 80b2 bne.w 802e940 if(indic->type_data.needle_img.src == NULL) continue; - 802e870: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e874: 691b ldr r3, [r3, #16] - 802e876: 2b00 cmp r3, #0 - 802e878: f000 80ab beq.w 802e9d2 + 802e7dc: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e7e0: 691b ldr r3, [r3, #16] + 802e7e2: 2b00 cmp r3, #0 + 802e7e4: f000 80ab beq.w 802e93e int32_t angle = lv_map(indic->end_value, scale->min, scale->max, scale->rotation, scale->rotation + scale->angle_range); - 802e87c: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e880: 68d8 ldr r0, [r3, #12] - 802e882: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 802e886: 6959 ldr r1, [r3, #20] - 802e888: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 802e88c: 699a ldr r2, [r3, #24] - 802e88e: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 802e892: f9b3 3020 ldrsh.w r3, [r3, #32] - 802e896: 461d mov r5, r3 - 802e898: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 802e89c: f9b3 3020 ldrsh.w r3, [r3, #32] - 802e8a0: 461c mov r4, r3 - 802e8a2: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 802e8a6: 8bdb ldrh r3, [r3, #30] - 802e8a8: 4423 add r3, r4 - 802e8aa: 9300 str r3, [sp, #0] - 802e8ac: 462b mov r3, r5 - 802e8ae: f003 ffb8 bl 8032822 - 802e8b2: f8c7 00a8 str.w r0, [r7, #168] ; 0xa8 + 802e7e8: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e7ec: 68d8 ldr r0, [r3, #12] + 802e7ee: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 802e7f2: 6959 ldr r1, [r3, #20] + 802e7f4: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 802e7f8: 699a ldr r2, [r3, #24] + 802e7fa: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 802e7fe: f9b3 3020 ldrsh.w r3, [r3, #32] + 802e802: 461d mov r5, r3 + 802e804: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 802e808: f9b3 3020 ldrsh.w r3, [r3, #32] + 802e80c: 461c mov r4, r3 + 802e80e: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 802e812: 8bdb ldrh r3, [r3, #30] + 802e814: 4423 add r3, r4 + 802e816: 9300 str r3, [sp, #0] + 802e818: 462b mov r3, r5 + 802e81a: f003 ffb8 bl 803278e + 802e81e: f8c7 00a8 str.w r0, [r7, #168] ; 0xa8 lv_img_header_t info; lv_img_decoder_get_info(indic->type_data.needle_img.src, &info); - 802e8b6: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e8ba: 691b ldr r3, [r3, #16] - 802e8bc: f107 021c add.w r2, r7, #28 - 802e8c0: 4611 mov r1, r2 - 802e8c2: 4618 mov r0, r3 - 802e8c4: f7e8 fada bl 8016e7c + 802e822: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e826: 691b ldr r3, [r3, #16] + 802e828: f107 021c add.w r2, r7, #28 + 802e82c: 4611 mov r1, r2 + 802e82e: 4618 mov r0, r3 + 802e830: f7e8 fada bl 8016de8 lv_area_t a; a.x1 = scale_center.x - indic->type_data.needle_img.pivot.x; - 802e8c8: f9b7 3090 ldrsh.w r3, [r7, #144] ; 0x90 - 802e8cc: b29a uxth r2, r3 - 802e8ce: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e8d2: f9b3 3014 ldrsh.w r3, [r3, #20] - 802e8d6: b29b uxth r3, r3 - 802e8d8: 1ad3 subs r3, r2, r3 - 802e8da: b29b uxth r3, r3 - 802e8dc: b21b sxth r3, r3 - 802e8de: 82bb strh r3, [r7, #20] + 802e834: f9b7 3090 ldrsh.w r3, [r7, #144] ; 0x90 + 802e838: b29a uxth r2, r3 + 802e83a: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e83e: f9b3 3014 ldrsh.w r3, [r3, #20] + 802e842: b29b uxth r3, r3 + 802e844: 1ad3 subs r3, r2, r3 + 802e846: b29b uxth r3, r3 + 802e848: b21b sxth r3, r3 + 802e84a: 82bb strh r3, [r7, #20] a.y1 = scale_center.y - indic->type_data.needle_img.pivot.y; - 802e8e0: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 - 802e8e4: b29a uxth r2, r3 - 802e8e6: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e8ea: f9b3 3016 ldrsh.w r3, [r3, #22] - 802e8ee: b29b uxth r3, r3 - 802e8f0: 1ad3 subs r3, r2, r3 - 802e8f2: b29b uxth r3, r3 - 802e8f4: b21b sxth r3, r3 - 802e8f6: 82fb strh r3, [r7, #22] + 802e84c: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 + 802e850: b29a uxth r2, r3 + 802e852: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e856: f9b3 3016 ldrsh.w r3, [r3, #22] + 802e85a: b29b uxth r3, r3 + 802e85c: 1ad3 subs r3, r2, r3 + 802e85e: b29b uxth r3, r3 + 802e860: b21b sxth r3, r3 + 802e862: 82fb strh r3, [r7, #22] a.x2 = a.x1 + info.w - 1; - 802e8f8: f9b7 3014 ldrsh.w r3, [r7, #20] - 802e8fc: b29b uxth r3, r3 - 802e8fe: 69fa ldr r2, [r7, #28] - 802e900: f3c2 228a ubfx r2, r2, #10, #11 - 802e904: b292 uxth r2, r2 - 802e906: 4413 add r3, r2 - 802e908: b29b uxth r3, r3 - 802e90a: 3b01 subs r3, #1 - 802e90c: b29b uxth r3, r3 - 802e90e: b21b sxth r3, r3 - 802e910: 833b strh r3, [r7, #24] + 802e864: f9b7 3014 ldrsh.w r3, [r7, #20] + 802e868: b29b uxth r3, r3 + 802e86a: 69fa ldr r2, [r7, #28] + 802e86c: f3c2 228a ubfx r2, r2, #10, #11 + 802e870: b292 uxth r2, r2 + 802e872: 4413 add r3, r2 + 802e874: b29b uxth r3, r3 + 802e876: 3b01 subs r3, #1 + 802e878: b29b uxth r3, r3 + 802e87a: b21b sxth r3, r3 + 802e87c: 833b strh r3, [r7, #24] a.y2 = a.y1 + info.h - 1; - 802e912: f9b7 3016 ldrsh.w r3, [r7, #22] - 802e916: b29b uxth r3, r3 - 802e918: 8bfa ldrh r2, [r7, #30] - 802e91a: f3c2 124a ubfx r2, r2, #5, #11 - 802e91e: b292 uxth r2, r2 - 802e920: 4413 add r3, r2 - 802e922: b29b uxth r3, r3 - 802e924: 3b01 subs r3, #1 - 802e926: b29b uxth r3, r3 - 802e928: b21b sxth r3, r3 - 802e92a: 837b strh r3, [r7, #26] + 802e87e: f9b7 3016 ldrsh.w r3, [r7, #22] + 802e882: b29b uxth r3, r3 + 802e884: 8bfa ldrh r2, [r7, #30] + 802e886: f3c2 124a ubfx r2, r2, #5, #11 + 802e88a: b292 uxth r2, r2 + 802e88c: 4413 add r3, r2 + 802e88e: b29b uxth r3, r3 + 802e890: 3b01 subs r3, #1 + 802e892: b29b uxth r3, r3 + 802e894: b21b sxth r3, r3 + 802e896: 837b strh r3, [r7, #26] img_dsc.opa = indic->opa > LV_OPA_MAX ? opa_main : (opa_main * indic->opa) >> 8; - 802e92c: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e930: 795b ldrb r3, [r3, #5] - 802e932: 2bfd cmp r3, #253 ; 0xfd - 802e934: d809 bhi.n 802e94a - 802e936: f897 30a1 ldrb.w r3, [r7, #161] ; 0xa1 - 802e93a: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac - 802e93e: 7952 ldrb r2, [r2, #5] - 802e940: fb02 f303 mul.w r3, r2, r3 - 802e944: 121b asrs r3, r3, #8 - 802e946: b2db uxtb r3, r3 - 802e948: e001 b.n 802e94e - 802e94a: f897 30a1 ldrb.w r3, [r7, #161] ; 0xa1 - 802e94e: f887 3077 strb.w r3, [r7, #119] ; 0x77 + 802e898: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e89c: 795b ldrb r3, [r3, #5] + 802e89e: 2bfd cmp r3, #253 ; 0xfd + 802e8a0: d809 bhi.n 802e8b6 + 802e8a2: f897 30a1 ldrb.w r3, [r7, #161] ; 0xa1 + 802e8a6: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac + 802e8aa: 7952 ldrb r2, [r2, #5] + 802e8ac: fb02 f303 mul.w r3, r2, r3 + 802e8b0: 121b asrs r3, r3, #8 + 802e8b2: b2db uxtb r3, r3 + 802e8b4: e001 b.n 802e8ba + 802e8b6: f897 30a1 ldrb.w r3, [r7, #161] ; 0xa1 + 802e8ba: f887 3077 strb.w r3, [r7, #119] ; 0x77 img_dsc.pivot.x = indic->type_data.needle_img.pivot.x; - 802e952: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e956: f9b3 3014 ldrsh.w r3, [r3, #20] - 802e95a: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 + 802e8be: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e8c2: f9b3 3014 ldrsh.w r3, [r3, #20] + 802e8c6: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 img_dsc.pivot.y = indic->type_data.needle_img.pivot.y; - 802e95e: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e962: f9b3 3016 ldrsh.w r3, [r3, #22] - 802e966: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 + 802e8ca: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e8ce: f9b3 3016 ldrsh.w r3, [r3, #22] + 802e8d2: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 angle = angle * 10; - 802e96a: f8d7 20a8 ldr.w r2, [r7, #168] ; 0xa8 - 802e96e: 4613 mov r3, r2 - 802e970: 009b lsls r3, r3, #2 - 802e972: 4413 add r3, r2 - 802e974: 005b lsls r3, r3, #1 - 802e976: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 + 802e8d6: f8d7 20a8 ldr.w r2, [r7, #168] ; 0xa8 + 802e8da: 4613 mov r3, r2 + 802e8dc: 009b lsls r3, r3, #2 + 802e8de: 4413 add r3, r2 + 802e8e0: 005b lsls r3, r3, #1 + 802e8e2: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 if(angle > 3600) angle -= 3600; - 802e97a: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 - 802e97e: f5b3 6f61 cmp.w r3, #3600 ; 0xe10 - 802e982: dd05 ble.n 802e990 - 802e984: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 - 802e988: f5a3 6361 sub.w r3, r3, #3600 ; 0xe10 - 802e98c: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 + 802e8e6: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 + 802e8ea: f5b3 6f61 cmp.w r3, #3600 ; 0xe10 + 802e8ee: dd05 ble.n 802e8fc + 802e8f0: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 + 802e8f4: f5a3 6361 sub.w r3, r3, #3600 ; 0xe10 + 802e8f8: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 img_dsc.angle = angle; - 802e990: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 - 802e994: b29b uxth r3, r3 - 802e996: f8a7 306c strh.w r3, [r7, #108] ; 0x6c + 802e8fc: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 + 802e900: b29b uxth r3, r3 + 802e902: f8a7 306c strh.w r3, [r7, #108] ; 0x6c part_draw_dsc.img_dsc = &img_dsc; - 802e99a: f107 036c add.w r3, r7, #108 ; 0x6c - 802e99e: 643b str r3, [r7, #64] ; 0x40 + 802e906: f107 036c add.w r3, r7, #108 ; 0x6c + 802e90a: 643b str r3, [r7, #64] ; 0x40 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 802e9a0: f107 0324 add.w r3, r7, #36 ; 0x24 - 802e9a4: 461a mov r2, r3 - 802e9a6: 211a movs r1, #26 - 802e9a8: 68f8 ldr r0, [r7, #12] - 802e9aa: f7d3 fd69 bl 8002480 + 802e90c: f107 0324 add.w r3, r7, #36 ; 0x24 + 802e910: 461a mov r2, r3 + 802e912: 211a movs r1, #26 + 802e914: 68f8 ldr r0, [r7, #12] + 802e916: f7d3 fd7d bl 8002414 lv_draw_img(draw_ctx, &img_dsc, &a, indic->type_data.needle_img.src); - 802e9ae: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e9b2: 691b ldr r3, [r3, #16] - 802e9b4: f107 0214 add.w r2, r7, #20 - 802e9b8: f107 016c add.w r1, r7, #108 ; 0x6c - 802e9bc: 68b8 ldr r0, [r7, #8] - 802e9be: f7e3 f893 bl 8011ae8 + 802e91a: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e91e: 691b ldr r3, [r3, #16] + 802e920: f107 0214 add.w r2, r7, #20 + 802e924: f107 016c add.w r1, r7, #108 ; 0x6c + 802e928: 68b8 ldr r0, [r7, #8] + 802e92a: f7e3 f893 bl 8011a54 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 802e9c2: f107 0324 add.w r3, r7, #36 ; 0x24 - 802e9c6: 461a mov r2, r3 - 802e9c8: 211b movs r1, #27 - 802e9ca: 68f8 ldr r0, [r7, #12] - 802e9cc: f7d3 fd58 bl 8002480 - 802e9d0: e000 b.n 802e9d4 + 802e92e: f107 0324 add.w r3, r7, #36 ; 0x24 + 802e932: 461a mov r2, r3 + 802e934: 211b movs r1, #27 + 802e936: 68f8 ldr r0, [r7, #12] + 802e938: f7d3 fd6c bl 8002414 + 802e93c: e000 b.n 802e940 if(indic->type_data.needle_img.src == NULL) continue; - 802e9d2: bf00 nop + 802e93e: bf00 nop _LV_LL_READ_BACK(&meter->indicator_ll, indic) { - 802e9d4: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 - 802e9d8: 3330 adds r3, #48 ; 0x30 - 802e9da: f8d7 10ac ldr.w r1, [r7, #172] ; 0xac - 802e9de: 4618 mov r0, r3 - 802e9e0: f003 fcf0 bl 80323c4 <_lv_ll_get_prev> - 802e9e4: f8c7 00ac str.w r0, [r7, #172] ; 0xac - 802e9e8: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 802e9ec: 2b00 cmp r3, #0 - 802e9ee: f47f ae88 bne.w 802e702 + 802e940: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 + 802e944: 3330 adds r3, #48 ; 0x30 + 802e946: f8d7 10ac ldr.w r1, [r7, #172] ; 0xac + 802e94a: 4618 mov r0, r3 + 802e94c: f003 fcf0 bl 8032330 <_lv_ll_get_prev> + 802e950: f8c7 00ac str.w r0, [r7, #172] ; 0xac + 802e954: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 802e958: 2b00 cmp r3, #0 + 802e95a: f47f ae88 bne.w 802e66e } } } - 802e9f2: bf00 nop - 802e9f4: bf00 nop - 802e9f6: 37b0 adds r7, #176 ; 0xb0 - 802e9f8: 46bd mov sp, r7 - 802e9fa: bdb0 pop {r4, r5, r7, pc} - 802e9fc: 0806d130 .word 0x0806d130 - 802ea00: 80010003 .word 0x80010003 + 802e95e: bf00 nop + 802e960: bf00 nop + 802e962: 37b0 adds r7, #176 ; 0xb0 + 802e964: 46bd mov sp, r7 + 802e966: bdb0 pop {r4, r5, r7, pc} + 802e968: 0806d088 .word 0x0806d088 + 802e96c: 80010003 .word 0x80010003 -0802ea04 : +0802e970 : /** * Select next lower digit for edition * @param obj pointer to spinbox */ void lv_spinbox_step_next(lv_obj_t * obj) { - 802ea04: b580 push {r7, lr} - 802ea06: b084 sub sp, #16 - 802ea08: af00 add r7, sp, #0 - 802ea0a: 6078 str r0, [r7, #4] + 802e970: b580 push {r7, lr} + 802e972: b084 sub sp, #16 + 802e974: af00 add r7, sp, #0 + 802e976: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_spinbox_t * spinbox = (lv_spinbox_t *)obj; - 802ea0c: 687b ldr r3, [r7, #4] - 802ea0e: 60fb str r3, [r7, #12] + 802e978: 687b ldr r3, [r7, #4] + 802e97a: 60fb str r3, [r7, #12] int32_t new_step = spinbox->step / 10; - 802ea10: 68fb ldr r3, [r7, #12] - 802ea12: 6edb ldr r3, [r3, #108] ; 0x6c - 802ea14: 4a0b ldr r2, [pc, #44] ; (802ea44 ) - 802ea16: fb82 1203 smull r1, r2, r2, r3 - 802ea1a: 1092 asrs r2, r2, #2 - 802ea1c: 17db asrs r3, r3, #31 - 802ea1e: 1ad3 subs r3, r2, r3 - 802ea20: 60bb str r3, [r7, #8] + 802e97c: 68fb ldr r3, [r7, #12] + 802e97e: 6edb ldr r3, [r3, #108] ; 0x6c + 802e980: 4a0b ldr r2, [pc, #44] ; (802e9b0 ) + 802e982: fb82 1203 smull r1, r2, r2, r3 + 802e986: 1092 asrs r2, r2, #2 + 802e988: 17db asrs r3, r3, #31 + 802e98a: 1ad3 subs r3, r2, r3 + 802e98c: 60bb str r3, [r7, #8] if((new_step) > 0) - 802ea22: 68bb ldr r3, [r7, #8] - 802ea24: 2b00 cmp r3, #0 - 802ea26: dd03 ble.n 802ea30 + 802e98e: 68bb ldr r3, [r7, #8] + 802e990: 2b00 cmp r3, #0 + 802e992: dd03 ble.n 802e99c spinbox->step = new_step; - 802ea28: 68fb ldr r3, [r7, #12] - 802ea2a: 68ba ldr r2, [r7, #8] - 802ea2c: 66da str r2, [r3, #108] ; 0x6c - 802ea2e: e002 b.n 802ea36 + 802e994: 68fb ldr r3, [r7, #12] + 802e996: 68ba ldr r2, [r7, #8] + 802e998: 66da str r2, [r3, #108] ; 0x6c + 802e99a: e002 b.n 802e9a2 else spinbox->step = 1; - 802ea30: 68fb ldr r3, [r7, #12] - 802ea32: 2201 movs r2, #1 - 802ea34: 66da str r2, [r3, #108] ; 0x6c + 802e99c: 68fb ldr r3, [r7, #12] + 802e99e: 2201 movs r2, #1 + 802e9a0: 66da str r2, [r3, #108] ; 0x6c lv_spinbox_updatevalue(obj); - 802ea36: 6878 ldr r0, [r7, #4] - 802ea38: f000 fa48 bl 802eecc + 802e9a2: 6878 ldr r0, [r7, #4] + 802e9a4: f000 fa48 bl 802ee38 } - 802ea3c: bf00 nop - 802ea3e: 3710 adds r7, #16 - 802ea40: 46bd mov sp, r7 - 802ea42: bd80 pop {r7, pc} - 802ea44: 66666667 .word 0x66666667 + 802e9a8: bf00 nop + 802e9aa: 3710 adds r7, #16 + 802e9ac: 46bd mov sp, r7 + 802e9ae: bd80 pop {r7, pc} + 802e9b0: 66666667 .word 0x66666667 -0802ea48 : +0802e9b4 : /** * Select next higher digit for edition * @param obj pointer to spinbox */ void lv_spinbox_step_prev(lv_obj_t * obj) { - 802ea48: b580 push {r7, lr} - 802ea4a: b086 sub sp, #24 - 802ea4c: af00 add r7, sp, #0 - 802ea4e: 6078 str r0, [r7, #4] + 802e9b4: b580 push {r7, lr} + 802e9b6: b086 sub sp, #24 + 802e9b8: af00 add r7, sp, #0 + 802e9ba: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_spinbox_t * spinbox = (lv_spinbox_t *)obj; - 802ea50: 687b ldr r3, [r7, #4] - 802ea52: 617b str r3, [r7, #20] + 802e9bc: 687b ldr r3, [r7, #4] + 802e9be: 617b str r3, [r7, #20] int32_t step_limit; step_limit = LV_MAX(spinbox->range_max, (spinbox->range_min < 0 ? (-spinbox->range_min) : spinbox->range_min)); - 802ea54: 697b ldr r3, [r7, #20] - 802ea56: 6e9b ldr r3, [r3, #104] ; 0x68 - 802ea58: ea83 72e3 eor.w r2, r3, r3, asr #31 - 802ea5c: eba2 72e3 sub.w r2, r2, r3, asr #31 - 802ea60: 697b ldr r3, [r7, #20] - 802ea62: 6e5b ldr r3, [r3, #100] ; 0x64 - 802ea64: 4293 cmp r3, r2 - 802ea66: bfb8 it lt - 802ea68: 4613 movlt r3, r2 - 802ea6a: 613b str r3, [r7, #16] + 802e9c0: 697b ldr r3, [r7, #20] + 802e9c2: 6e9b ldr r3, [r3, #104] ; 0x68 + 802e9c4: ea83 72e3 eor.w r2, r3, r3, asr #31 + 802e9c8: eba2 72e3 sub.w r2, r2, r3, asr #31 + 802e9cc: 697b ldr r3, [r7, #20] + 802e9ce: 6e5b ldr r3, [r3, #100] ; 0x64 + 802e9d0: 4293 cmp r3, r2 + 802e9d2: bfb8 it lt + 802e9d4: 4613 movlt r3, r2 + 802e9d6: 613b str r3, [r7, #16] int32_t new_step = spinbox->step * 10; - 802ea6c: 697b ldr r3, [r7, #20] - 802ea6e: 6eda ldr r2, [r3, #108] ; 0x6c - 802ea70: 4613 mov r3, r2 - 802ea72: 009b lsls r3, r3, #2 - 802ea74: 4413 add r3, r2 - 802ea76: 005b lsls r3, r3, #1 - 802ea78: 60fb str r3, [r7, #12] + 802e9d8: 697b ldr r3, [r7, #20] + 802e9da: 6eda ldr r2, [r3, #108] ; 0x6c + 802e9dc: 4613 mov r3, r2 + 802e9de: 009b lsls r3, r3, #2 + 802e9e0: 4413 add r3, r2 + 802e9e2: 005b lsls r3, r3, #1 + 802e9e4: 60fb str r3, [r7, #12] if(new_step <= step_limit) spinbox->step = new_step; - 802ea7a: 68fa ldr r2, [r7, #12] - 802ea7c: 693b ldr r3, [r7, #16] - 802ea7e: 429a cmp r2, r3 - 802ea80: dc02 bgt.n 802ea88 - 802ea82: 697b ldr r3, [r7, #20] - 802ea84: 68fa ldr r2, [r7, #12] - 802ea86: 66da str r2, [r3, #108] ; 0x6c + 802e9e6: 68fa ldr r2, [r7, #12] + 802e9e8: 693b ldr r3, [r7, #16] + 802e9ea: 429a cmp r2, r3 + 802e9ec: dc02 bgt.n 802e9f4 + 802e9ee: 697b ldr r3, [r7, #20] + 802e9f0: 68fa ldr r2, [r7, #12] + 802e9f2: 66da str r2, [r3, #108] ; 0x6c lv_spinbox_updatevalue(obj); - 802ea88: 6878 ldr r0, [r7, #4] - 802ea8a: f000 fa1f bl 802eecc + 802e9f4: 6878 ldr r0, [r7, #4] + 802e9f6: f000 fa1f bl 802ee38 } - 802ea8e: bf00 nop - 802ea90: 3718 adds r7, #24 - 802ea92: 46bd mov sp, r7 - 802ea94: bd80 pop {r7, pc} + 802e9fa: bf00 nop + 802e9fc: 3718 adds r7, #24 + 802e9fe: 46bd mov sp, r7 + 802ea00: bd80 pop {r7, pc} -0802ea96 : +0802ea02 : /** * Increment spinbox value by one step * @param obj pointer to spinbox */ void lv_spinbox_increment(lv_obj_t * obj) { - 802ea96: b580 push {r7, lr} - 802ea98: b084 sub sp, #16 - 802ea9a: af00 add r7, sp, #0 - 802ea9c: 6078 str r0, [r7, #4] + 802ea02: b580 push {r7, lr} + 802ea04: b084 sub sp, #16 + 802ea06: af00 add r7, sp, #0 + 802ea08: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_spinbox_t * spinbox = (lv_spinbox_t *)obj; - 802ea9e: 687b ldr r3, [r7, #4] - 802eaa0: 60fb str r3, [r7, #12] + 802ea0a: 687b ldr r3, [r7, #4] + 802ea0c: 60fb str r3, [r7, #12] if(spinbox->value + spinbox->step <= spinbox->range_max) { - 802eaa2: 68fb ldr r3, [r7, #12] - 802eaa4: 6e1a ldr r2, [r3, #96] ; 0x60 - 802eaa6: 68fb ldr r3, [r7, #12] - 802eaa8: 6edb ldr r3, [r3, #108] ; 0x6c - 802eaaa: 441a add r2, r3 - 802eaac: 68fb ldr r3, [r7, #12] - 802eaae: 6e5b ldr r3, [r3, #100] ; 0x64 - 802eab0: 429a cmp r2, r3 - 802eab2: dc17 bgt.n 802eae4 + 802ea0e: 68fb ldr r3, [r7, #12] + 802ea10: 6e1a ldr r2, [r3, #96] ; 0x60 + 802ea12: 68fb ldr r3, [r7, #12] + 802ea14: 6edb ldr r3, [r3, #108] ; 0x6c + 802ea16: 441a add r2, r3 + 802ea18: 68fb ldr r3, [r7, #12] + 802ea1a: 6e5b ldr r3, [r3, #100] ; 0x64 + 802ea1c: 429a cmp r2, r3 + 802ea1e: dc17 bgt.n 802ea50 /*Special mode when zero crossing*/ if((spinbox->value + spinbox->step) > 0 && spinbox->value < 0) spinbox->value = -spinbox->value; - 802eab4: 68fb ldr r3, [r7, #12] - 802eab6: 6e1a ldr r2, [r3, #96] ; 0x60 - 802eab8: 68fb ldr r3, [r7, #12] - 802eaba: 6edb ldr r3, [r3, #108] ; 0x6c - 802eabc: 4413 add r3, r2 - 802eabe: 2b00 cmp r3, #0 - 802eac0: dd08 ble.n 802ead4 - 802eac2: 68fb ldr r3, [r7, #12] - 802eac4: 6e1b ldr r3, [r3, #96] ; 0x60 - 802eac6: 2b00 cmp r3, #0 - 802eac8: da04 bge.n 802ead4 - 802eaca: 68fb ldr r3, [r7, #12] - 802eacc: 6e1b ldr r3, [r3, #96] ; 0x60 - 802eace: 425a negs r2, r3 - 802ead0: 68fb ldr r3, [r7, #12] - 802ead2: 661a str r2, [r3, #96] ; 0x60 + 802ea20: 68fb ldr r3, [r7, #12] + 802ea22: 6e1a ldr r2, [r3, #96] ; 0x60 + 802ea24: 68fb ldr r3, [r7, #12] + 802ea26: 6edb ldr r3, [r3, #108] ; 0x6c + 802ea28: 4413 add r3, r2 + 802ea2a: 2b00 cmp r3, #0 + 802ea2c: dd08 ble.n 802ea40 + 802ea2e: 68fb ldr r3, [r7, #12] + 802ea30: 6e1b ldr r3, [r3, #96] ; 0x60 + 802ea32: 2b00 cmp r3, #0 + 802ea34: da04 bge.n 802ea40 + 802ea36: 68fb ldr r3, [r7, #12] + 802ea38: 6e1b ldr r3, [r3, #96] ; 0x60 + 802ea3a: 425a negs r2, r3 + 802ea3c: 68fb ldr r3, [r7, #12] + 802ea3e: 661a str r2, [r3, #96] ; 0x60 spinbox->value += spinbox->step; - 802ead4: 68fb ldr r3, [r7, #12] - 802ead6: 6e1a ldr r2, [r3, #96] ; 0x60 - 802ead8: 68fb ldr r3, [r7, #12] - 802eada: 6edb ldr r3, [r3, #108] ; 0x6c - 802eadc: 441a add r2, r3 - 802eade: 68fb ldr r3, [r7, #12] - 802eae0: 661a str r2, [r3, #96] ; 0x60 - 802eae2: e016 b.n 802eb12 + 802ea40: 68fb ldr r3, [r7, #12] + 802ea42: 6e1a ldr r2, [r3, #96] ; 0x60 + 802ea44: 68fb ldr r3, [r7, #12] + 802ea46: 6edb ldr r3, [r3, #108] ; 0x6c + 802ea48: 441a add r2, r3 + 802ea4a: 68fb ldr r3, [r7, #12] + 802ea4c: 661a str r2, [r3, #96] ; 0x60 + 802ea4e: e016 b.n 802ea7e } else { // Rollover? if((spinbox->rollover) && (spinbox->value == spinbox->range_max)) - 802eae4: 68fb ldr r3, [r7, #12] - 802eae6: f893 3071 ldrb.w r3, [r3, #113] ; 0x71 - 802eaea: f003 0301 and.w r3, r3, #1 - 802eaee: b2db uxtb r3, r3 - 802eaf0: 2b00 cmp r3, #0 - 802eaf2: d00a beq.n 802eb0a - 802eaf4: 68fb ldr r3, [r7, #12] - 802eaf6: 6e1a ldr r2, [r3, #96] ; 0x60 - 802eaf8: 68fb ldr r3, [r7, #12] - 802eafa: 6e5b ldr r3, [r3, #100] ; 0x64 - 802eafc: 429a cmp r2, r3 - 802eafe: d104 bne.n 802eb0a + 802ea50: 68fb ldr r3, [r7, #12] + 802ea52: f893 3071 ldrb.w r3, [r3, #113] ; 0x71 + 802ea56: f003 0301 and.w r3, r3, #1 + 802ea5a: b2db uxtb r3, r3 + 802ea5c: 2b00 cmp r3, #0 + 802ea5e: d00a beq.n 802ea76 + 802ea60: 68fb ldr r3, [r7, #12] + 802ea62: 6e1a ldr r2, [r3, #96] ; 0x60 + 802ea64: 68fb ldr r3, [r7, #12] + 802ea66: 6e5b ldr r3, [r3, #100] ; 0x64 + 802ea68: 429a cmp r2, r3 + 802ea6a: d104 bne.n 802ea76 spinbox->value = spinbox->range_min; - 802eb00: 68fb ldr r3, [r7, #12] - 802eb02: 6e9a ldr r2, [r3, #104] ; 0x68 - 802eb04: 68fb ldr r3, [r7, #12] - 802eb06: 661a str r2, [r3, #96] ; 0x60 - 802eb08: e003 b.n 802eb12 + 802ea6c: 68fb ldr r3, [r7, #12] + 802ea6e: 6e9a ldr r2, [r3, #104] ; 0x68 + 802ea70: 68fb ldr r3, [r7, #12] + 802ea72: 661a str r2, [r3, #96] ; 0x60 + 802ea74: e003 b.n 802ea7e else spinbox->value = spinbox->range_max; - 802eb0a: 68fb ldr r3, [r7, #12] - 802eb0c: 6e5a ldr r2, [r3, #100] ; 0x64 - 802eb0e: 68fb ldr r3, [r7, #12] - 802eb10: 661a str r2, [r3, #96] ; 0x60 + 802ea76: 68fb ldr r3, [r7, #12] + 802ea78: 6e5a ldr r2, [r3, #100] ; 0x64 + 802ea7a: 68fb ldr r3, [r7, #12] + 802ea7c: 661a str r2, [r3, #96] ; 0x60 } lv_spinbox_updatevalue(obj); - 802eb12: 6878 ldr r0, [r7, #4] - 802eb14: f000 f9da bl 802eecc + 802ea7e: 6878 ldr r0, [r7, #4] + 802ea80: f000 f9da bl 802ee38 } - 802eb18: bf00 nop - 802eb1a: 3710 adds r7, #16 - 802eb1c: 46bd mov sp, r7 - 802eb1e: bd80 pop {r7, pc} + 802ea84: bf00 nop + 802ea86: 3710 adds r7, #16 + 802ea88: 46bd mov sp, r7 + 802ea8a: bd80 pop {r7, pc} -0802eb20 : +0802ea8c : /** * Decrement spinbox value by one step * @param obj pointer to spinbox */ void lv_spinbox_decrement(lv_obj_t * obj) { - 802eb20: b580 push {r7, lr} - 802eb22: b084 sub sp, #16 - 802eb24: af00 add r7, sp, #0 - 802eb26: 6078 str r0, [r7, #4] + 802ea8c: b580 push {r7, lr} + 802ea8e: b084 sub sp, #16 + 802ea90: af00 add r7, sp, #0 + 802ea92: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_spinbox_t * spinbox = (lv_spinbox_t *)obj; - 802eb28: 687b ldr r3, [r7, #4] - 802eb2a: 60fb str r3, [r7, #12] + 802ea94: 687b ldr r3, [r7, #4] + 802ea96: 60fb str r3, [r7, #12] if(spinbox->value - spinbox->step >= spinbox->range_min) { - 802eb2c: 68fb ldr r3, [r7, #12] - 802eb2e: 6e1a ldr r2, [r3, #96] ; 0x60 - 802eb30: 68fb ldr r3, [r7, #12] - 802eb32: 6edb ldr r3, [r3, #108] ; 0x6c - 802eb34: 1ad2 subs r2, r2, r3 - 802eb36: 68fb ldr r3, [r7, #12] - 802eb38: 6e9b ldr r3, [r3, #104] ; 0x68 - 802eb3a: 429a cmp r2, r3 - 802eb3c: db17 blt.n 802eb6e + 802ea98: 68fb ldr r3, [r7, #12] + 802ea9a: 6e1a ldr r2, [r3, #96] ; 0x60 + 802ea9c: 68fb ldr r3, [r7, #12] + 802ea9e: 6edb ldr r3, [r3, #108] ; 0x6c + 802eaa0: 1ad2 subs r2, r2, r3 + 802eaa2: 68fb ldr r3, [r7, #12] + 802eaa4: 6e9b ldr r3, [r3, #104] ; 0x68 + 802eaa6: 429a cmp r2, r3 + 802eaa8: db17 blt.n 802eada /*Special mode when zero crossing*/ if((spinbox->value - spinbox->step) < 0 && spinbox->value > 0) spinbox->value = -spinbox->value; - 802eb3e: 68fb ldr r3, [r7, #12] - 802eb40: 6e1a ldr r2, [r3, #96] ; 0x60 - 802eb42: 68fb ldr r3, [r7, #12] - 802eb44: 6edb ldr r3, [r3, #108] ; 0x6c - 802eb46: 1ad3 subs r3, r2, r3 - 802eb48: 2b00 cmp r3, #0 - 802eb4a: da08 bge.n 802eb5e - 802eb4c: 68fb ldr r3, [r7, #12] - 802eb4e: 6e1b ldr r3, [r3, #96] ; 0x60 - 802eb50: 2b00 cmp r3, #0 - 802eb52: dd04 ble.n 802eb5e - 802eb54: 68fb ldr r3, [r7, #12] - 802eb56: 6e1b ldr r3, [r3, #96] ; 0x60 - 802eb58: 425a negs r2, r3 - 802eb5a: 68fb ldr r3, [r7, #12] - 802eb5c: 661a str r2, [r3, #96] ; 0x60 + 802eaaa: 68fb ldr r3, [r7, #12] + 802eaac: 6e1a ldr r2, [r3, #96] ; 0x60 + 802eaae: 68fb ldr r3, [r7, #12] + 802eab0: 6edb ldr r3, [r3, #108] ; 0x6c + 802eab2: 1ad3 subs r3, r2, r3 + 802eab4: 2b00 cmp r3, #0 + 802eab6: da08 bge.n 802eaca + 802eab8: 68fb ldr r3, [r7, #12] + 802eaba: 6e1b ldr r3, [r3, #96] ; 0x60 + 802eabc: 2b00 cmp r3, #0 + 802eabe: dd04 ble.n 802eaca + 802eac0: 68fb ldr r3, [r7, #12] + 802eac2: 6e1b ldr r3, [r3, #96] ; 0x60 + 802eac4: 425a negs r2, r3 + 802eac6: 68fb ldr r3, [r7, #12] + 802eac8: 661a str r2, [r3, #96] ; 0x60 spinbox->value -= spinbox->step; - 802eb5e: 68fb ldr r3, [r7, #12] - 802eb60: 6e1a ldr r2, [r3, #96] ; 0x60 - 802eb62: 68fb ldr r3, [r7, #12] - 802eb64: 6edb ldr r3, [r3, #108] ; 0x6c - 802eb66: 1ad2 subs r2, r2, r3 - 802eb68: 68fb ldr r3, [r7, #12] - 802eb6a: 661a str r2, [r3, #96] ; 0x60 - 802eb6c: e016 b.n 802eb9c + 802eaca: 68fb ldr r3, [r7, #12] + 802eacc: 6e1a ldr r2, [r3, #96] ; 0x60 + 802eace: 68fb ldr r3, [r7, #12] + 802ead0: 6edb ldr r3, [r3, #108] ; 0x6c + 802ead2: 1ad2 subs r2, r2, r3 + 802ead4: 68fb ldr r3, [r7, #12] + 802ead6: 661a str r2, [r3, #96] ; 0x60 + 802ead8: e016 b.n 802eb08 } else { /*Rollover?*/ if((spinbox->rollover) && (spinbox->value == spinbox->range_min)) - 802eb6e: 68fb ldr r3, [r7, #12] - 802eb70: f893 3071 ldrb.w r3, [r3, #113] ; 0x71 - 802eb74: f003 0301 and.w r3, r3, #1 - 802eb78: b2db uxtb r3, r3 - 802eb7a: 2b00 cmp r3, #0 - 802eb7c: d00a beq.n 802eb94 - 802eb7e: 68fb ldr r3, [r7, #12] - 802eb80: 6e1a ldr r2, [r3, #96] ; 0x60 - 802eb82: 68fb ldr r3, [r7, #12] - 802eb84: 6e9b ldr r3, [r3, #104] ; 0x68 - 802eb86: 429a cmp r2, r3 - 802eb88: d104 bne.n 802eb94 + 802eada: 68fb ldr r3, [r7, #12] + 802eadc: f893 3071 ldrb.w r3, [r3, #113] ; 0x71 + 802eae0: f003 0301 and.w r3, r3, #1 + 802eae4: b2db uxtb r3, r3 + 802eae6: 2b00 cmp r3, #0 + 802eae8: d00a beq.n 802eb00 + 802eaea: 68fb ldr r3, [r7, #12] + 802eaec: 6e1a ldr r2, [r3, #96] ; 0x60 + 802eaee: 68fb ldr r3, [r7, #12] + 802eaf0: 6e9b ldr r3, [r3, #104] ; 0x68 + 802eaf2: 429a cmp r2, r3 + 802eaf4: d104 bne.n 802eb00 spinbox->value = spinbox->range_max; - 802eb8a: 68fb ldr r3, [r7, #12] - 802eb8c: 6e5a ldr r2, [r3, #100] ; 0x64 - 802eb8e: 68fb ldr r3, [r7, #12] - 802eb90: 661a str r2, [r3, #96] ; 0x60 - 802eb92: e003 b.n 802eb9c + 802eaf6: 68fb ldr r3, [r7, #12] + 802eaf8: 6e5a ldr r2, [r3, #100] ; 0x64 + 802eafa: 68fb ldr r3, [r7, #12] + 802eafc: 661a str r2, [r3, #96] ; 0x60 + 802eafe: e003 b.n 802eb08 else spinbox->value = spinbox->range_min; - 802eb94: 68fb ldr r3, [r7, #12] - 802eb96: 6e9a ldr r2, [r3, #104] ; 0x68 - 802eb98: 68fb ldr r3, [r7, #12] - 802eb9a: 661a str r2, [r3, #96] ; 0x60 + 802eb00: 68fb ldr r3, [r7, #12] + 802eb02: 6e9a ldr r2, [r3, #104] ; 0x68 + 802eb04: 68fb ldr r3, [r7, #12] + 802eb06: 661a str r2, [r3, #96] ; 0x60 } lv_spinbox_updatevalue(obj); - 802eb9c: 6878 ldr r0, [r7, #4] - 802eb9e: f000 f995 bl 802eecc + 802eb08: 6878 ldr r0, [r7, #4] + 802eb0a: f000 f995 bl 802ee38 } - 802eba2: bf00 nop - 802eba4: 3710 adds r7, #16 - 802eba6: 46bd mov sp, r7 - 802eba8: bd80 pop {r7, pc} + 802eb0e: bf00 nop + 802eb10: 3710 adds r7, #16 + 802eb12: 46bd mov sp, r7 + 802eb14: bd80 pop {r7, pc} ... -0802ebac : +0802eb18 : /********************** * STATIC FUNCTIONS **********************/ static void lv_spinbox_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802ebac: b580 push {r7, lr} - 802ebae: b084 sub sp, #16 - 802ebb0: af00 add r7, sp, #0 - 802ebb2: 6078 str r0, [r7, #4] - 802ebb4: 6039 str r1, [r7, #0] + 802eb18: b580 push {r7, lr} + 802eb1a: b084 sub sp, #16 + 802eb1c: af00 add r7, sp, #0 + 802eb1e: 6078 str r0, [r7, #4] + 802eb20: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_LOG_TRACE("begin"); lv_spinbox_t * spinbox = (lv_spinbox_t *)obj; - 802ebb6: 683b ldr r3, [r7, #0] - 802ebb8: 60fb str r3, [r7, #12] + 802eb22: 683b ldr r3, [r7, #0] + 802eb24: 60fb str r3, [r7, #12] /*Initialize the allocated 'ext'*/ spinbox->value = 0; - 802ebba: 68fb ldr r3, [r7, #12] - 802ebbc: 2200 movs r2, #0 - 802ebbe: 661a str r2, [r3, #96] ; 0x60 + 802eb26: 68fb ldr r3, [r7, #12] + 802eb28: 2200 movs r2, #0 + 802eb2a: 661a str r2, [r3, #96] ; 0x60 spinbox->dec_point_pos = 0; - 802ebc0: 68fa ldr r2, [r7, #12] - 802ebc2: f892 3070 ldrb.w r3, [r2, #112] ; 0x70 - 802ebc6: f36f 1307 bfc r3, #4, #4 - 802ebca: f882 3070 strb.w r3, [r2, #112] ; 0x70 + 802eb2c: 68fa ldr r2, [r7, #12] + 802eb2e: f892 3070 ldrb.w r3, [r2, #112] ; 0x70 + 802eb32: f36f 1307 bfc r3, #4, #4 + 802eb36: f882 3070 strb.w r3, [r2, #112] ; 0x70 spinbox->digit_count = 5; - 802ebce: 68fa ldr r2, [r7, #12] - 802ebd0: f892 3070 ldrb.w r3, [r2, #112] ; 0x70 - 802ebd4: 2105 movs r1, #5 - 802ebd6: f361 0303 bfi r3, r1, #0, #4 - 802ebda: f882 3070 strb.w r3, [r2, #112] ; 0x70 + 802eb3a: 68fa ldr r2, [r7, #12] + 802eb3c: f892 3070 ldrb.w r3, [r2, #112] ; 0x70 + 802eb40: 2105 movs r1, #5 + 802eb42: f361 0303 bfi r3, r1, #0, #4 + 802eb46: f882 3070 strb.w r3, [r2, #112] ; 0x70 spinbox->step = 1; - 802ebde: 68fb ldr r3, [r7, #12] - 802ebe0: 2201 movs r2, #1 - 802ebe2: 66da str r2, [r3, #108] ; 0x6c + 802eb4a: 68fb ldr r3, [r7, #12] + 802eb4c: 2201 movs r2, #1 + 802eb4e: 66da str r2, [r3, #108] ; 0x6c spinbox->range_max = 99999; - 802ebe4: 68fb ldr r3, [r7, #12] - 802ebe6: 4a13 ldr r2, [pc, #76] ; (802ec34 ) - 802ebe8: 665a str r2, [r3, #100] ; 0x64 + 802eb50: 68fb ldr r3, [r7, #12] + 802eb52: 4a13 ldr r2, [pc, #76] ; (802eba0 ) + 802eb54: 665a str r2, [r3, #100] ; 0x64 spinbox->range_min = -99999; - 802ebea: 68fb ldr r3, [r7, #12] - 802ebec: 4a12 ldr r2, [pc, #72] ; (802ec38 ) - 802ebee: 669a str r2, [r3, #104] ; 0x68 + 802eb56: 68fb ldr r3, [r7, #12] + 802eb58: 4a12 ldr r2, [pc, #72] ; (802eba4 ) + 802eb5a: 669a str r2, [r3, #104] ; 0x68 spinbox->rollover = false; - 802ebf0: 68fa ldr r2, [r7, #12] - 802ebf2: f892 3071 ldrb.w r3, [r2, #113] ; 0x71 - 802ebf6: f36f 0300 bfc r3, #0, #1 - 802ebfa: f882 3071 strb.w r3, [r2, #113] ; 0x71 + 802eb5c: 68fa ldr r2, [r7, #12] + 802eb5e: f892 3071 ldrb.w r3, [r2, #113] ; 0x71 + 802eb62: f36f 0300 bfc r3, #0, #1 + 802eb66: f882 3071 strb.w r3, [r2, #113] ; 0x71 spinbox->digit_step_dir = LV_DIR_RIGHT; - 802ebfe: 68fa ldr r2, [r7, #12] - 802ec00: f892 3071 ldrb.w r3, [r2, #113] ; 0x71 - 802ec04: 2102 movs r1, #2 - 802ec06: f361 0342 bfi r3, r1, #1, #2 - 802ec0a: f882 3071 strb.w r3, [r2, #113] ; 0x71 + 802eb6a: 68fa ldr r2, [r7, #12] + 802eb6c: f892 3071 ldrb.w r3, [r2, #113] ; 0x71 + 802eb70: 2102 movs r1, #2 + 802eb72: f361 0342 bfi r3, r1, #1, #2 + 802eb76: f882 3071 strb.w r3, [r2, #113] ; 0x71 lv_textarea_set_one_line(obj, true); - 802ec0e: 2101 movs r1, #1 - 802ec10: 6838 ldr r0, [r7, #0] - 802ec12: f016 fe30 bl 8045876 + 802eb7a: 2101 movs r1, #1 + 802eb7c: 6838 ldr r0, [r7, #0] + 802eb7e: f016 fe30 bl 80457e2 lv_textarea_set_cursor_click_pos(obj, true); - 802ec16: 2101 movs r1, #1 - 802ec18: 6838 ldr r0, [r7, #0] - 802ec1a: f016 fe17 bl 804584c + 802eb82: 2101 movs r1, #1 + 802eb84: 6838 ldr r0, [r7, #0] + 802eb86: f016 fe17 bl 80457b8 lv_obj_set_width(obj, LV_DPI_DEF); - 802ec1e: 2182 movs r1, #130 ; 0x82 - 802ec20: 6838 ldr r0, [r7, #0] - 802ec22: f7da fddb bl 80097dc + 802eb8a: 2182 movs r1, #130 ; 0x82 + 802eb8c: 6838 ldr r0, [r7, #0] + 802eb8e: f7da fdef bl 8009770 lv_spinbox_updatevalue(obj); - 802ec26: 6838 ldr r0, [r7, #0] - 802ec28: f000 f950 bl 802eecc + 802eb92: 6838 ldr r0, [r7, #0] + 802eb94: f000 f950 bl 802ee38 LV_LOG_TRACE("Spinbox constructor finished"); } - 802ec2c: bf00 nop - 802ec2e: 3710 adds r7, #16 - 802ec30: 46bd mov sp, r7 - 802ec32: bd80 pop {r7, pc} - 802ec34: 0001869f .word 0x0001869f - 802ec38: fffe7961 .word 0xfffe7961 + 802eb98: bf00 nop + 802eb9a: 3710 adds r7, #16 + 802eb9c: 46bd mov sp, r7 + 802eb9e: bd80 pop {r7, pc} + 802eba0: 0001869f .word 0x0001869f + 802eba4: fffe7961 .word 0xfffe7961 -0802ec3c : +0802eba8 : static void lv_spinbox_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 802ec3c: b5b0 push {r4, r5, r7, lr} - 802ec3e: b08e sub sp, #56 ; 0x38 - 802ec40: af00 add r7, sp, #0 - 802ec42: 6078 str r0, [r7, #4] - 802ec44: 6039 str r1, [r7, #0] + 802eba8: b5b0 push {r4, r5, r7, lr} + 802ebaa: b08e sub sp, #56 ; 0x38 + 802ebac: af00 add r7, sp, #0 + 802ebae: 6078 str r0, [r7, #4] + 802ebb0: 6039 str r1, [r7, #0] LV_UNUSED(class_p); /*Call the ancestor's event handler*/ lv_res_t res = LV_RES_OK; - 802ec46: 2301 movs r3, #1 - 802ec48: f887 302d strb.w r3, [r7, #45] ; 0x2d + 802ebb2: 2301 movs r3, #1 + 802ebb4: f887 302d strb.w r3, [r7, #45] ; 0x2d res = lv_obj_event_base(MY_CLASS, e); - 802ec4c: 6839 ldr r1, [r7, #0] - 802ec4e: 489e ldr r0, [pc, #632] ; (802eec8 ) - 802ec50: f7d3 fc58 bl 8002504 - 802ec54: 4603 mov r3, r0 - 802ec56: f887 302d strb.w r3, [r7, #45] ; 0x2d + 802ebb8: 6839 ldr r1, [r7, #0] + 802ebba: 489e ldr r0, [pc, #632] ; (802ee34 ) + 802ebbc: f7d3 fc6c bl 8002498 + 802ebc0: 4603 mov r3, r0 + 802ebc2: f887 302d strb.w r3, [r7, #45] ; 0x2d if(res != LV_RES_OK) return; - 802ec5a: f897 302d ldrb.w r3, [r7, #45] ; 0x2d - 802ec5e: 2b01 cmp r3, #1 - 802ec60: f040 812d bne.w 802eebe + 802ebc6: f897 302d ldrb.w r3, [r7, #45] ; 0x2d + 802ebca: 2b01 cmp r3, #1 + 802ebcc: f040 812d bne.w 802ee2a lv_event_code_t code = lv_event_get_code(e); - 802ec64: 6838 ldr r0, [r7, #0] - 802ec66: f7d3 fca1 bl 80025ac - 802ec6a: 4603 mov r3, r0 - 802ec6c: f887 302c strb.w r3, [r7, #44] ; 0x2c + 802ebd0: 6838 ldr r0, [r7, #0] + 802ebd2: f7d3 fcb5 bl 8002540 + 802ebd6: 4603 mov r3, r0 + 802ebd8: f887 302c strb.w r3, [r7, #44] ; 0x2c lv_obj_t * obj = lv_event_get_target(e); - 802ec70: 6838 ldr r0, [r7, #0] - 802ec72: f7d3 fc85 bl 8002580 - 802ec76: 62b8 str r0, [r7, #40] ; 0x28 + 802ebdc: 6838 ldr r0, [r7, #0] + 802ebde: f7d3 fc99 bl 8002514 + 802ebe2: 62b8 str r0, [r7, #40] ; 0x28 lv_spinbox_t * spinbox = (lv_spinbox_t *)obj; - 802ec78: 6abb ldr r3, [r7, #40] ; 0x28 - 802ec7a: 627b str r3, [r7, #36] ; 0x24 + 802ebe4: 6abb ldr r3, [r7, #40] ; 0x28 + 802ebe6: 627b str r3, [r7, #36] ; 0x24 if(code == LV_EVENT_RELEASED) { - 802ec7c: f897 302c ldrb.w r3, [r7, #44] ; 0x2c - 802ec80: 2b08 cmp r3, #8 - 802ec82: f040 80d8 bne.w 802ee36 + 802ebe8: f897 302c ldrb.w r3, [r7, #44] ; 0x2c + 802ebec: 2b08 cmp r3, #8 + 802ebee: f040 80d8 bne.w 802eda2 /*If released with an ENCODER then move to the next digit*/ lv_indev_t * indev = lv_indev_get_act(); - 802ec86: f7d4 fb47 bl 8003318 - 802ec8a: 61b8 str r0, [r7, #24] + 802ebf2: f7d4 fb5b bl 80032ac + 802ebf6: 61b8 str r0, [r7, #24] if(lv_indev_get_type(indev) == LV_INDEV_TYPE_ENCODER) { - 802ec8c: 69b8 ldr r0, [r7, #24] - 802ec8e: f7d4 fb4d bl 800332c - 802ec92: 4603 mov r3, r0 - 802ec94: 2b04 cmp r3, #4 - 802ec96: d161 bne.n 802ed5c + 802ebf8: 69b8 ldr r0, [r7, #24] + 802ebfa: f7d4 fb61 bl 80032c0 + 802ebfe: 4603 mov r3, r0 + 802ec00: 2b04 cmp r3, #4 + 802ec02: d161 bne.n 802ecc8 if(lv_group_get_editing(lv_obj_get_group(obj))) { - 802ec98: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802ec9a: f7d7 fdb9 bl 8006810 - 802ec9e: 4603 mov r3, r0 - 802eca0: 4618 mov r0, r3 - 802eca2: f7d4 f928 bl 8002ef6 - 802eca6: 4603 mov r3, r0 - 802eca8: 2b00 cmp r3, #0 - 802ecaa: f000 8109 beq.w 802eec0 + 802ec04: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802ec06: f7d7 fdcd bl 80067a4 + 802ec0a: 4603 mov r3, r0 + 802ec0c: 4618 mov r0, r3 + 802ec0e: f7d4 f93c bl 8002e8a + 802ec12: 4603 mov r3, r0 + 802ec14: 2b00 cmp r3, #0 + 802ec16: f000 8109 beq.w 802ee2c if(spinbox->digit_count > 1) { - 802ecae: 6a7b ldr r3, [r7, #36] ; 0x24 - 802ecb0: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 - 802ecb4: f3c3 0303 ubfx r3, r3, #0, #4 - 802ecb8: b2db uxtb r3, r3 - 802ecba: 2b01 cmp r3, #1 - 802ecbc: f240 8100 bls.w 802eec0 + 802ec1a: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ec1c: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 + 802ec20: f3c3 0303 ubfx r3, r3, #0, #4 + 802ec24: b2db uxtb r3, r3 + 802ec26: 2b01 cmp r3, #1 + 802ec28: f240 8100 bls.w 802ee2c if(spinbox->digit_step_dir == LV_DIR_RIGHT) { - 802ecc0: 6a7b ldr r3, [r7, #36] ; 0x24 - 802ecc2: f893 3071 ldrb.w r3, [r3, #113] ; 0x71 - 802ecc6: f003 0306 and.w r3, r3, #6 - 802ecca: b2db uxtb r3, r3 - 802eccc: 2b04 cmp r3, #4 - 802ecce: d11f bne.n 802ed10 + 802ec2c: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ec2e: f893 3071 ldrb.w r3, [r3, #113] ; 0x71 + 802ec32: f003 0306 and.w r3, r3, #6 + 802ec36: b2db uxtb r3, r3 + 802ec38: 2b04 cmp r3, #4 + 802ec3a: d11f bne.n 802ec7c if(spinbox->step > 1) { - 802ecd0: 6a7b ldr r3, [r7, #36] ; 0x24 - 802ecd2: 6edb ldr r3, [r3, #108] ; 0x6c - 802ecd4: 2b01 cmp r3, #1 - 802ecd6: dd03 ble.n 802ece0 + 802ec3c: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ec3e: 6edb ldr r3, [r3, #108] ; 0x6c + 802ec40: 2b01 cmp r3, #1 + 802ec42: dd03 ble.n 802ec4c lv_spinbox_step_next(obj); - 802ecd8: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802ecda: f7ff fe93 bl 802ea04 - 802ecde: e0ef b.n 802eec0 + 802ec44: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802ec46: f7ff fe93 bl 802e970 + 802ec4a: e0ef b.n 802ee2c } else { /*Restart from the MSB*/ spinbox->step = lv_pow(10, spinbox->digit_count - 2); - 802ece0: 6a7b ldr r3, [r7, #36] ; 0x24 - 802ece2: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 - 802ece6: f3c3 0303 ubfx r3, r3, #0, #4 - 802ecea: b2db uxtb r3, r3 - 802ecec: 3b02 subs r3, #2 - 802ecee: b2db uxtb r3, r3 - 802ecf0: b25b sxtb r3, r3 - 802ecf2: 461a mov r2, r3 - 802ecf4: f04f 000a mov.w r0, #10 - 802ecf8: f04f 0100 mov.w r1, #0 - 802ecfc: f003 fd46 bl 803278c - 802ed00: 4602 mov r2, r0 - 802ed02: 460b mov r3, r1 - 802ed04: 6a7b ldr r3, [r7, #36] ; 0x24 - 802ed06: 66da str r2, [r3, #108] ; 0x6c + 802ec4c: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ec4e: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 + 802ec52: f3c3 0303 ubfx r3, r3, #0, #4 + 802ec56: b2db uxtb r3, r3 + 802ec58: 3b02 subs r3, #2 + 802ec5a: b2db uxtb r3, r3 + 802ec5c: b25b sxtb r3, r3 + 802ec5e: 461a mov r2, r3 + 802ec60: f04f 000a mov.w r0, #10 + 802ec64: f04f 0100 mov.w r1, #0 + 802ec68: f003 fd46 bl 80326f8 + 802ec6c: 4602 mov r2, r0 + 802ec6e: 460b mov r3, r1 + 802ec70: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ec72: 66da str r2, [r3, #108] ; 0x6c lv_spinbox_step_prev(obj); - 802ed08: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802ed0a: f7ff fe9d bl 802ea48 - 802ed0e: e0d7 b.n 802eec0 + 802ec74: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802ec76: f7ff fe9d bl 802e9b4 + 802ec7a: e0d7 b.n 802ee2c } } else { if(spinbox->step < lv_pow(10, spinbox->digit_count - 1)) { - 802ed10: 6a7b ldr r3, [r7, #36] ; 0x24 - 802ed12: 6edb ldr r3, [r3, #108] ; 0x6c - 802ed14: 17da asrs r2, r3, #31 - 802ed16: 461c mov r4, r3 - 802ed18: 4615 mov r5, r2 - 802ed1a: 6a7b ldr r3, [r7, #36] ; 0x24 - 802ed1c: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 - 802ed20: f3c3 0303 ubfx r3, r3, #0, #4 - 802ed24: b2db uxtb r3, r3 - 802ed26: 3b01 subs r3, #1 - 802ed28: b2db uxtb r3, r3 - 802ed2a: b25b sxtb r3, r3 - 802ed2c: 461a mov r2, r3 - 802ed2e: f04f 000a mov.w r0, #10 - 802ed32: f04f 0100 mov.w r1, #0 - 802ed36: f003 fd29 bl 803278c - 802ed3a: 4602 mov r2, r0 - 802ed3c: 460b mov r3, r1 - 802ed3e: 4294 cmp r4, r2 - 802ed40: eb75 0303 sbcs.w r3, r5, r3 - 802ed44: da03 bge.n 802ed4e + 802ec7c: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ec7e: 6edb ldr r3, [r3, #108] ; 0x6c + 802ec80: 17da asrs r2, r3, #31 + 802ec82: 461c mov r4, r3 + 802ec84: 4615 mov r5, r2 + 802ec86: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ec88: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 + 802ec8c: f3c3 0303 ubfx r3, r3, #0, #4 + 802ec90: b2db uxtb r3, r3 + 802ec92: 3b01 subs r3, #1 + 802ec94: b2db uxtb r3, r3 + 802ec96: b25b sxtb r3, r3 + 802ec98: 461a mov r2, r3 + 802ec9a: f04f 000a mov.w r0, #10 + 802ec9e: f04f 0100 mov.w r1, #0 + 802eca2: f003 fd29 bl 80326f8 + 802eca6: 4602 mov r2, r0 + 802eca8: 460b mov r3, r1 + 802ecaa: 4294 cmp r4, r2 + 802ecac: eb75 0303 sbcs.w r3, r5, r3 + 802ecb0: da03 bge.n 802ecba lv_spinbox_step_prev(obj); - 802ed46: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802ed48: f7ff fe7e bl 802ea48 - 802ed4c: e0b8 b.n 802eec0 + 802ecb2: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802ecb4: f7ff fe7e bl 802e9b4 + 802ecb8: e0b8 b.n 802ee2c } else { /*Restart from the LSB*/ spinbox->step = 10; - 802ed4e: 6a7b ldr r3, [r7, #36] ; 0x24 - 802ed50: 220a movs r2, #10 - 802ed52: 66da str r2, [r3, #108] ; 0x6c + 802ecba: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ecbc: 220a movs r2, #10 + 802ecbe: 66da str r2, [r3, #108] ; 0x6c lv_spinbox_step_next(obj); - 802ed54: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802ed56: f7ff fe55 bl 802ea04 - 802ed5a: e0b1 b.n 802eec0 + 802ecc0: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802ecc2: f7ff fe55 bl 802e970 + 802ecc6: e0b1 b.n 802ee2c } } /*The cursor has been positioned to a digit. * Set `step` accordingly*/ else { const char * txt = lv_textarea_get_text(obj); - 802ed5c: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802ed5e: f016 fdec bl 804593a - 802ed62: 6178 str r0, [r7, #20] + 802ecc8: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802ecca: f016 fdec bl 80458a6 + 802ecce: 6178 str r0, [r7, #20] size_t txt_len = strlen(txt); - 802ed64: 6978 ldr r0, [r7, #20] - 802ed66: f7d1 fa67 bl 8000238 - 802ed6a: 6138 str r0, [r7, #16] + 802ecd0: 6978 ldr r0, [r7, #20] + 802ecd2: f7d1 fab1 bl 8000238 + 802ecd6: 6138 str r0, [r7, #16] if(txt[spinbox->ta.cursor.pos] == '.') { - 802ed6c: 6a7b ldr r3, [r7, #36] ; 0x24 - 802ed6e: 6c1b ldr r3, [r3, #64] ; 0x40 - 802ed70: 697a ldr r2, [r7, #20] - 802ed72: 4413 add r3, r2 - 802ed74: 781b ldrb r3, [r3, #0] - 802ed76: 2b2e cmp r3, #46 ; 0x2e - 802ed78: d103 bne.n 802ed82 + 802ecd8: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ecda: 6c1b ldr r3, [r3, #64] ; 0x40 + 802ecdc: 697a ldr r2, [r7, #20] + 802ecde: 4413 add r3, r2 + 802ece0: 781b ldrb r3, [r3, #0] + 802ece2: 2b2e cmp r3, #46 ; 0x2e + 802ece4: d103 bne.n 802ecee lv_textarea_cursor_left(obj); - 802ed7a: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802ed7c: f016 fe77 bl 8045a6e - 802ed80: e017 b.n 802edb2 + 802ece6: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802ece8: f016 fe77 bl 80459da + 802ecec: e017 b.n 802ed1e } else if(spinbox->ta.cursor.pos == (uint32_t)txt_len) { - 802ed82: 6a7b ldr r3, [r7, #36] ; 0x24 - 802ed84: 6c1b ldr r3, [r3, #64] ; 0x40 - 802ed86: 693a ldr r2, [r7, #16] - 802ed88: 429a cmp r2, r3 - 802ed8a: d106 bne.n 802ed9a + 802ecee: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ecf0: 6c1b ldr r3, [r3, #64] ; 0x40 + 802ecf2: 693a ldr r2, [r7, #16] + 802ecf4: 429a cmp r2, r3 + 802ecf6: d106 bne.n 802ed06 lv_textarea_set_cursor_pos(obj, txt_len - 1); - 802ed8c: 693b ldr r3, [r7, #16] - 802ed8e: 3b01 subs r3, #1 - 802ed90: 4619 mov r1, r3 - 802ed92: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802ed94: f016 fca2 bl 80456dc - 802ed98: e00b b.n 802edb2 + 802ecf8: 693b ldr r3, [r7, #16] + 802ecfa: 3b01 subs r3, #1 + 802ecfc: 4619 mov r1, r3 + 802ecfe: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802ed00: f016 fca2 bl 8045648 + 802ed04: e00b b.n 802ed1e } else if(spinbox->ta.cursor.pos == 0 && spinbox->range_min < 0) { - 802ed9a: 6a7b ldr r3, [r7, #36] ; 0x24 - 802ed9c: 6c1b ldr r3, [r3, #64] ; 0x40 - 802ed9e: 2b00 cmp r3, #0 - 802eda0: d107 bne.n 802edb2 - 802eda2: 6a7b ldr r3, [r7, #36] ; 0x24 - 802eda4: 6e9b ldr r3, [r3, #104] ; 0x68 - 802eda6: 2b00 cmp r3, #0 - 802eda8: da03 bge.n 802edb2 + 802ed06: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ed08: 6c1b ldr r3, [r3, #64] ; 0x40 + 802ed0a: 2b00 cmp r3, #0 + 802ed0c: d107 bne.n 802ed1e + 802ed0e: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ed10: 6e9b ldr r3, [r3, #104] ; 0x68 + 802ed12: 2b00 cmp r3, #0 + 802ed14: da03 bge.n 802ed1e lv_textarea_set_cursor_pos(obj, 1); - 802edaa: 2101 movs r1, #1 - 802edac: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802edae: f016 fc95 bl 80456dc + 802ed16: 2101 movs r1, #1 + 802ed18: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802ed1a: f016 fc95 bl 8045648 } size_t len = spinbox->digit_count - 1; - 802edb2: 6a7b ldr r3, [r7, #36] ; 0x24 - 802edb4: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 - 802edb8: f3c3 0303 ubfx r3, r3, #0, #4 - 802edbc: b2db uxtb r3, r3 - 802edbe: 3b01 subs r3, #1 - 802edc0: 60fb str r3, [r7, #12] + 802ed1e: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ed20: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 + 802ed24: f3c3 0303 ubfx r3, r3, #0, #4 + 802ed28: b2db uxtb r3, r3 + 802ed2a: 3b01 subs r3, #1 + 802ed2c: 60fb str r3, [r7, #12] uint16_t cp = spinbox->ta.cursor.pos; - 802edc2: 6a7b ldr r3, [r7, #36] ; 0x24 - 802edc4: 6c1b ldr r3, [r3, #64] ; 0x40 - 802edc6: 86fb strh r3, [r7, #54] ; 0x36 + 802ed2e: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ed30: 6c1b ldr r3, [r3, #64] ; 0x40 + 802ed32: 86fb strh r3, [r7, #54] ; 0x36 if(spinbox->ta.cursor.pos > spinbox->dec_point_pos && spinbox->dec_point_pos != 0) cp--; - 802edc8: 6a7b ldr r3, [r7, #36] ; 0x24 - 802edca: 6c1b ldr r3, [r3, #64] ; 0x40 - 802edcc: 6a7a ldr r2, [r7, #36] ; 0x24 - 802edce: f892 2070 ldrb.w r2, [r2, #112] ; 0x70 - 802edd2: f3c2 1203 ubfx r2, r2, #4, #4 - 802edd6: b2d2 uxtb r2, r2 - 802edd8: 4293 cmp r3, r2 - 802edda: d90a bls.n 802edf2 - 802eddc: 6a7b ldr r3, [r7, #36] ; 0x24 - 802edde: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 - 802ede2: f023 030f bic.w r3, r3, #15 - 802ede6: b2db uxtb r3, r3 - 802ede8: 2b00 cmp r3, #0 - 802edea: d002 beq.n 802edf2 - 802edec: 8efb ldrh r3, [r7, #54] ; 0x36 - 802edee: 3b01 subs r3, #1 - 802edf0: 86fb strh r3, [r7, #54] ; 0x36 + 802ed34: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ed36: 6c1b ldr r3, [r3, #64] ; 0x40 + 802ed38: 6a7a ldr r2, [r7, #36] ; 0x24 + 802ed3a: f892 2070 ldrb.w r2, [r2, #112] ; 0x70 + 802ed3e: f3c2 1203 ubfx r2, r2, #4, #4 + 802ed42: b2d2 uxtb r2, r2 + 802ed44: 4293 cmp r3, r2 + 802ed46: d90a bls.n 802ed5e + 802ed48: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ed4a: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 + 802ed4e: f023 030f bic.w r3, r3, #15 + 802ed52: b2db uxtb r3, r3 + 802ed54: 2b00 cmp r3, #0 + 802ed56: d002 beq.n 802ed5e + 802ed58: 8efb ldrh r3, [r7, #54] ; 0x36 + 802ed5a: 3b01 subs r3, #1 + 802ed5c: 86fb strh r3, [r7, #54] ; 0x36 uint32_t pos = len - cp; - 802edf2: 8efb ldrh r3, [r7, #54] ; 0x36 - 802edf4: 68fa ldr r2, [r7, #12] - 802edf6: 1ad3 subs r3, r2, r3 - 802edf8: 633b str r3, [r7, #48] ; 0x30 + 802ed5e: 8efb ldrh r3, [r7, #54] ; 0x36 + 802ed60: 68fa ldr r2, [r7, #12] + 802ed62: 1ad3 subs r3, r2, r3 + 802ed64: 633b str r3, [r7, #48] ; 0x30 if(spinbox->range_min < 0) pos++; - 802edfa: 6a7b ldr r3, [r7, #36] ; 0x24 - 802edfc: 6e9b ldr r3, [r3, #104] ; 0x68 - 802edfe: 2b00 cmp r3, #0 - 802ee00: da02 bge.n 802ee08 - 802ee02: 6b3b ldr r3, [r7, #48] ; 0x30 - 802ee04: 3301 adds r3, #1 - 802ee06: 633b str r3, [r7, #48] ; 0x30 + 802ed66: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ed68: 6e9b ldr r3, [r3, #104] ; 0x68 + 802ed6a: 2b00 cmp r3, #0 + 802ed6c: da02 bge.n 802ed74 + 802ed6e: 6b3b ldr r3, [r7, #48] ; 0x30 + 802ed70: 3301 adds r3, #1 + 802ed72: 633b str r3, [r7, #48] ; 0x30 spinbox->step = 1; - 802ee08: 6a7b ldr r3, [r7, #36] ; 0x24 - 802ee0a: 2201 movs r2, #1 - 802ee0c: 66da str r2, [r3, #108] ; 0x6c + 802ed74: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ed76: 2201 movs r2, #1 + 802ed78: 66da str r2, [r3, #108] ; 0x6c uint16_t i; for(i = 0; i < pos; i++) spinbox->step *= 10; - 802ee0e: 2300 movs r3, #0 - 802ee10: 85fb strh r3, [r7, #46] ; 0x2e - 802ee12: e00b b.n 802ee2c - 802ee14: 6a7b ldr r3, [r7, #36] ; 0x24 - 802ee16: 6eda ldr r2, [r3, #108] ; 0x6c - 802ee18: 4613 mov r3, r2 - 802ee1a: 009b lsls r3, r3, #2 - 802ee1c: 4413 add r3, r2 - 802ee1e: 005b lsls r3, r3, #1 - 802ee20: 461a mov r2, r3 - 802ee22: 6a7b ldr r3, [r7, #36] ; 0x24 - 802ee24: 66da str r2, [r3, #108] ; 0x6c - 802ee26: 8dfb ldrh r3, [r7, #46] ; 0x2e - 802ee28: 3301 adds r3, #1 - 802ee2a: 85fb strh r3, [r7, #46] ; 0x2e - 802ee2c: 8dfb ldrh r3, [r7, #46] ; 0x2e - 802ee2e: 6b3a ldr r2, [r7, #48] ; 0x30 - 802ee30: 429a cmp r2, r3 - 802ee32: d8ef bhi.n 802ee14 - 802ee34: e044 b.n 802eec0 + 802ed7a: 2300 movs r3, #0 + 802ed7c: 85fb strh r3, [r7, #46] ; 0x2e + 802ed7e: e00b b.n 802ed98 + 802ed80: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ed82: 6eda ldr r2, [r3, #108] ; 0x6c + 802ed84: 4613 mov r3, r2 + 802ed86: 009b lsls r3, r3, #2 + 802ed88: 4413 add r3, r2 + 802ed8a: 005b lsls r3, r3, #1 + 802ed8c: 461a mov r2, r3 + 802ed8e: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ed90: 66da str r2, [r3, #108] ; 0x6c + 802ed92: 8dfb ldrh r3, [r7, #46] ; 0x2e + 802ed94: 3301 adds r3, #1 + 802ed96: 85fb strh r3, [r7, #46] ; 0x2e + 802ed98: 8dfb ldrh r3, [r7, #46] ; 0x2e + 802ed9a: 6b3a ldr r2, [r7, #48] ; 0x30 + 802ed9c: 429a cmp r2, r3 + 802ed9e: d8ef bhi.n 802ed80 + 802eda0: e044 b.n 802ee2c } } else if(code == LV_EVENT_KEY) { - 802ee36: f897 302c ldrb.w r3, [r7, #44] ; 0x2c - 802ee3a: 2b0d cmp r3, #13 - 802ee3c: d140 bne.n 802eec0 + 802eda2: f897 302c ldrb.w r3, [r7, #44] ; 0x2c + 802eda6: 2b0d cmp r3, #13 + 802eda8: d140 bne.n 802ee2c lv_indev_type_t indev_type = lv_indev_get_type(lv_indev_get_act()); - 802ee3e: f7d4 fa6b bl 8003318 - 802ee42: 4603 mov r3, r0 - 802ee44: 4618 mov r0, r3 - 802ee46: f7d4 fa71 bl 800332c - 802ee4a: 4603 mov r3, r0 - 802ee4c: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 802edaa: f7d4 fa7f bl 80032ac + 802edae: 4603 mov r3, r0 + 802edb0: 4618 mov r0, r3 + 802edb2: f7d4 fa85 bl 80032c0 + 802edb6: 4603 mov r3, r0 + 802edb8: f887 3023 strb.w r3, [r7, #35] ; 0x23 uint32_t c = *((uint32_t *)lv_event_get_param(e)); /*uint32_t because can be UTF-8*/ - 802ee50: 6838 ldr r0, [r7, #0] - 802ee52: f7d3 fbb9 bl 80025c8 - 802ee56: 4603 mov r3, r0 - 802ee58: 681b ldr r3, [r3, #0] - 802ee5a: 61fb str r3, [r7, #28] + 802edbc: 6838 ldr r0, [r7, #0] + 802edbe: f7d3 fbcd bl 800255c + 802edc2: 4603 mov r3, r0 + 802edc4: 681b ldr r3, [r3, #0] + 802edc6: 61fb str r3, [r7, #28] if(c == LV_KEY_RIGHT) { - 802ee5c: 69fb ldr r3, [r7, #28] - 802ee5e: 2b13 cmp r3, #19 - 802ee60: d10b bne.n 802ee7a + 802edc8: 69fb ldr r3, [r7, #28] + 802edca: 2b13 cmp r3, #19 + 802edcc: d10b bne.n 802ede6 if(indev_type == LV_INDEV_TYPE_ENCODER) - 802ee62: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 802ee66: 2b04 cmp r3, #4 - 802ee68: d103 bne.n 802ee72 + 802edce: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 802edd2: 2b04 cmp r3, #4 + 802edd4: d103 bne.n 802edde lv_spinbox_increment(obj); - 802ee6a: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802ee6c: f7ff fe13 bl 802ea96 - 802ee70: e026 b.n 802eec0 + 802edd6: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802edd8: f7ff fe13 bl 802ea02 + 802eddc: e026 b.n 802ee2c else lv_spinbox_step_next(obj); - 802ee72: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802ee74: f7ff fdc6 bl 802ea04 - 802ee78: e022 b.n 802eec0 + 802edde: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802ede0: f7ff fdc6 bl 802e970 + 802ede4: e022 b.n 802ee2c } else if(c == LV_KEY_LEFT) { - 802ee7a: 69fb ldr r3, [r7, #28] - 802ee7c: 2b14 cmp r3, #20 - 802ee7e: d10b bne.n 802ee98 + 802ede6: 69fb ldr r3, [r7, #28] + 802ede8: 2b14 cmp r3, #20 + 802edea: d10b bne.n 802ee04 if(indev_type == LV_INDEV_TYPE_ENCODER) - 802ee80: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 802ee84: 2b04 cmp r3, #4 - 802ee86: d103 bne.n 802ee90 + 802edec: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 802edf0: 2b04 cmp r3, #4 + 802edf2: d103 bne.n 802edfc lv_spinbox_decrement(obj); - 802ee88: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802ee8a: f7ff fe49 bl 802eb20 - 802ee8e: e017 b.n 802eec0 + 802edf4: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802edf6: f7ff fe49 bl 802ea8c + 802edfa: e017 b.n 802ee2c else lv_spinbox_step_prev(obj); - 802ee90: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802ee92: f7ff fdd9 bl 802ea48 - 802ee96: e013 b.n 802eec0 + 802edfc: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802edfe: f7ff fdd9 bl 802e9b4 + 802ee02: e013 b.n 802ee2c } else if(c == LV_KEY_UP) { - 802ee98: 69fb ldr r3, [r7, #28] - 802ee9a: 2b11 cmp r3, #17 - 802ee9c: d103 bne.n 802eea6 + 802ee04: 69fb ldr r3, [r7, #28] + 802ee06: 2b11 cmp r3, #17 + 802ee08: d103 bne.n 802ee12 lv_spinbox_increment(obj); - 802ee9e: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802eea0: f7ff fdf9 bl 802ea96 - 802eea4: e00c b.n 802eec0 + 802ee0a: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802ee0c: f7ff fdf9 bl 802ea02 + 802ee10: e00c b.n 802ee2c } else if(c == LV_KEY_DOWN) { - 802eea6: 69fb ldr r3, [r7, #28] - 802eea8: 2b12 cmp r3, #18 - 802eeaa: d103 bne.n 802eeb4 + 802ee12: 69fb ldr r3, [r7, #28] + 802ee14: 2b12 cmp r3, #18 + 802ee16: d103 bne.n 802ee20 lv_spinbox_decrement(obj); - 802eeac: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802eeae: f7ff fe37 bl 802eb20 - 802eeb2: e005 b.n 802eec0 + 802ee18: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802ee1a: f7ff fe37 bl 802ea8c + 802ee1e: e005 b.n 802ee2c } else { lv_textarea_add_char(obj, c); - 802eeb4: 69f9 ldr r1, [r7, #28] - 802eeb6: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802eeb8: f016 f8b6 bl 8045028 - 802eebc: e000 b.n 802eec0 + 802ee20: 69f9 ldr r1, [r7, #28] + 802ee22: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802ee24: f016 f8b6 bl 8044f94 + 802ee28: e000 b.n 802ee2c if(res != LV_RES_OK) return; - 802eebe: bf00 nop + 802ee2a: bf00 nop } } } - 802eec0: 3738 adds r7, #56 ; 0x38 - 802eec2: 46bd mov sp, r7 - 802eec4: bdb0 pop {r4, r5, r7, pc} - 802eec6: bf00 nop - 802eec8: 0806d184 .word 0x0806d184 + 802ee2c: 3738 adds r7, #56 ; 0x38 + 802ee2e: 46bd mov sp, r7 + 802ee30: bdb0 pop {r4, r5, r7, pc} + 802ee32: bf00 nop + 802ee34: 0806d0dc .word 0x0806d0dc -0802eecc : +0802ee38 : static void lv_spinbox_updatevalue(lv_obj_t * obj) { - 802eecc: b590 push {r4, r7, lr} - 802eece: b095 sub sp, #84 ; 0x54 - 802eed0: af00 add r7, sp, #0 - 802eed2: 6078 str r0, [r7, #4] + 802ee38: b590 push {r4, r7, lr} + 802ee3a: b095 sub sp, #84 ; 0x54 + 802ee3c: af00 add r7, sp, #0 + 802ee3e: 6078 str r0, [r7, #4] lv_spinbox_t * spinbox = (lv_spinbox_t *)obj; - 802eed4: 687b ldr r3, [r7, #4] - 802eed6: 63bb str r3, [r7, #56] ; 0x38 + 802ee40: 687b ldr r3, [r7, #4] + 802ee42: 63bb str r3, [r7, #56] ; 0x38 char buf[LV_SPINBOX_MAX_DIGIT_COUNT + 8]; lv_memset_00(buf, sizeof(buf)); - 802eed8: f107 031c add.w r3, r7, #28 - 802eedc: 2112 movs r1, #18 - 802eede: 4618 mov r0, r3 - 802eee0: f004 f936 bl 8033150 + 802ee44: f107 031c add.w r3, r7, #28 + 802ee48: 2112 movs r1, #18 + 802ee4a: 4618 mov r0, r3 + 802ee4c: f004 f936 bl 80330bc char * buf_p = buf; - 802eee4: f107 031c add.w r3, r7, #28 - 802eee8: 64fb str r3, [r7, #76] ; 0x4c + 802ee50: f107 031c add.w r3, r7, #28 + 802ee54: 64fb str r3, [r7, #76] ; 0x4c uint8_t cur_shift_left = 0; - 802eeea: 2300 movs r3, #0 - 802eeec: f887 304b strb.w r3, [r7, #75] ; 0x4b + 802ee56: 2300 movs r3, #0 + 802ee58: f887 304b strb.w r3, [r7, #75] ; 0x4b if(spinbox->range_min < 0) { // hide sign if there are only positive values - 802eef0: 6bbb ldr r3, [r7, #56] ; 0x38 - 802eef2: 6e9b ldr r3, [r3, #104] ; 0x68 - 802eef4: 2b00 cmp r3, #0 - 802eef6: da0c bge.n 802ef12 + 802ee5c: 6bbb ldr r3, [r7, #56] ; 0x38 + 802ee5e: 6e9b ldr r3, [r3, #104] ; 0x68 + 802ee60: 2b00 cmp r3, #0 + 802ee62: da0c bge.n 802ee7e /*Add the sign*/ (*buf_p) = spinbox->value >= 0 ? '+' : '-'; - 802eef8: 6bbb ldr r3, [r7, #56] ; 0x38 - 802eefa: 6e1b ldr r3, [r3, #96] ; 0x60 - 802eefc: 2b00 cmp r3, #0 - 802eefe: db01 blt.n 802ef04 - 802ef00: 222b movs r2, #43 ; 0x2b - 802ef02: e000 b.n 802ef06 - 802ef04: 222d movs r2, #45 ; 0x2d - 802ef06: 6cfb ldr r3, [r7, #76] ; 0x4c - 802ef08: 701a strb r2, [r3, #0] + 802ee64: 6bbb ldr r3, [r7, #56] ; 0x38 + 802ee66: 6e1b ldr r3, [r3, #96] ; 0x60 + 802ee68: 2b00 cmp r3, #0 + 802ee6a: db01 blt.n 802ee70 + 802ee6c: 222b movs r2, #43 ; 0x2b + 802ee6e: e000 b.n 802ee72 + 802ee70: 222d movs r2, #45 ; 0x2d + 802ee72: 6cfb ldr r3, [r7, #76] ; 0x4c + 802ee74: 701a strb r2, [r3, #0] buf_p++; - 802ef0a: 6cfb ldr r3, [r7, #76] ; 0x4c - 802ef0c: 3301 adds r3, #1 - 802ef0e: 64fb str r3, [r7, #76] ; 0x4c - 802ef10: e004 b.n 802ef1c + 802ee76: 6cfb ldr r3, [r7, #76] ; 0x4c + 802ee78: 3301 adds r3, #1 + 802ee7a: 64fb str r3, [r7, #76] ; 0x4c + 802ee7c: e004 b.n 802ee88 } else { /*Cursor need shift to left*/ cur_shift_left++; - 802ef12: f897 304b ldrb.w r3, [r7, #75] ; 0x4b - 802ef16: 3301 adds r3, #1 - 802ef18: f887 304b strb.w r3, [r7, #75] ; 0x4b + 802ee7e: f897 304b ldrb.w r3, [r7, #75] ; 0x4b + 802ee82: 3301 adds r3, #1 + 802ee84: f887 304b strb.w r3, [r7, #75] ; 0x4b } int32_t i; char digits[LV_SPINBOX_MAX_DIGIT_COUNT + 4]; /*Convert the numbers to string (the sign is already handled so always covert positive number)*/ lv_snprintf(digits, sizeof(digits), "%" LV_PRId32, LV_ABS(spinbox->value)); - 802ef1c: 6bbb ldr r3, [r7, #56] ; 0x38 - 802ef1e: 6e1b ldr r3, [r3, #96] ; 0x60 - 802ef20: 2b00 cmp r3, #0 - 802ef22: bfb8 it lt - 802ef24: 425b neglt r3, r3 - 802ef26: f107 000c add.w r0, r7, #12 - 802ef2a: 4a6e ldr r2, [pc, #440] ; (802f0e4 ) - 802ef2c: 210e movs r1, #14 - 802ef2e: f005 f8b3 bl 8034098 + 802ee88: 6bbb ldr r3, [r7, #56] ; 0x38 + 802ee8a: 6e1b ldr r3, [r3, #96] ; 0x60 + 802ee8c: 2b00 cmp r3, #0 + 802ee8e: bfb8 it lt + 802ee90: 425b neglt r3, r3 + 802ee92: f107 000c add.w r0, r7, #12 + 802ee96: 4a6e ldr r2, [pc, #440] ; (802f050 ) + 802ee98: 210e movs r1, #14 + 802ee9a: f005 f8b3 bl 8034004 /*Add leading zeros*/ int lz_cnt = spinbox->digit_count - (int)strlen(digits); - 802ef32: 6bbb ldr r3, [r7, #56] ; 0x38 - 802ef34: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 - 802ef38: f3c3 0303 ubfx r3, r3, #0, #4 - 802ef3c: b2db uxtb r3, r3 - 802ef3e: 461c mov r4, r3 - 802ef40: f107 030c add.w r3, r7, #12 - 802ef44: 4618 mov r0, r3 - 802ef46: f7d1 f977 bl 8000238 - 802ef4a: 4603 mov r3, r0 - 802ef4c: 1ae3 subs r3, r4, r3 - 802ef4e: 637b str r3, [r7, #52] ; 0x34 + 802ee9e: 6bbb ldr r3, [r7, #56] ; 0x38 + 802eea0: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 + 802eea4: f3c3 0303 ubfx r3, r3, #0, #4 + 802eea8: b2db uxtb r3, r3 + 802eeaa: 461c mov r4, r3 + 802eeac: f107 030c add.w r3, r7, #12 + 802eeb0: 4618 mov r0, r3 + 802eeb2: f7d1 f9c1 bl 8000238 + 802eeb6: 4603 mov r3, r0 + 802eeb8: 1ae3 subs r3, r4, r3 + 802eeba: 637b str r3, [r7, #52] ; 0x34 if(lz_cnt > 0) { - 802ef50: 6b7b ldr r3, [r7, #52] ; 0x34 - 802ef52: 2b00 cmp r3, #0 - 802ef54: dd2a ble.n 802efac + 802eebc: 6b7b ldr r3, [r7, #52] ; 0x34 + 802eebe: 2b00 cmp r3, #0 + 802eec0: dd2a ble.n 802ef18 for(i = (uint16_t)strlen(digits); i >= 0; i--) { - 802ef56: f107 030c add.w r3, r7, #12 - 802ef5a: 4618 mov r0, r3 - 802ef5c: f7d1 f96c bl 8000238 - 802ef60: 4603 mov r3, r0 - 802ef62: b29b uxth r3, r3 - 802ef64: 647b str r3, [r7, #68] ; 0x44 - 802ef66: e00e b.n 802ef86 + 802eec2: f107 030c add.w r3, r7, #12 + 802eec6: 4618 mov r0, r3 + 802eec8: f7d1 f9b6 bl 8000238 + 802eecc: 4603 mov r3, r0 + 802eece: b29b uxth r3, r3 + 802eed0: 647b str r3, [r7, #68] ; 0x44 + 802eed2: e00e b.n 802eef2 digits[i + lz_cnt] = digits[i]; - 802ef68: 6c7a ldr r2, [r7, #68] ; 0x44 - 802ef6a: 6b7b ldr r3, [r7, #52] ; 0x34 - 802ef6c: 4413 add r3, r2 - 802ef6e: f107 010c add.w r1, r7, #12 - 802ef72: 6c7a ldr r2, [r7, #68] ; 0x44 - 802ef74: 440a add r2, r1 - 802ef76: 7812 ldrb r2, [r2, #0] - 802ef78: 3350 adds r3, #80 ; 0x50 - 802ef7a: 443b add r3, r7 - 802ef7c: f803 2c44 strb.w r2, [r3, #-68] + 802eed4: 6c7a ldr r2, [r7, #68] ; 0x44 + 802eed6: 6b7b ldr r3, [r7, #52] ; 0x34 + 802eed8: 4413 add r3, r2 + 802eeda: f107 010c add.w r1, r7, #12 + 802eede: 6c7a ldr r2, [r7, #68] ; 0x44 + 802eee0: 440a add r2, r1 + 802eee2: 7812 ldrb r2, [r2, #0] + 802eee4: 3350 adds r3, #80 ; 0x50 + 802eee6: 443b add r3, r7 + 802eee8: f803 2c44 strb.w r2, [r3, #-68] for(i = (uint16_t)strlen(digits); i >= 0; i--) { - 802ef80: 6c7b ldr r3, [r7, #68] ; 0x44 - 802ef82: 3b01 subs r3, #1 - 802ef84: 647b str r3, [r7, #68] ; 0x44 - 802ef86: 6c7b ldr r3, [r7, #68] ; 0x44 - 802ef88: 2b00 cmp r3, #0 - 802ef8a: daed bge.n 802ef68 + 802eeec: 6c7b ldr r3, [r7, #68] ; 0x44 + 802eeee: 3b01 subs r3, #1 + 802eef0: 647b str r3, [r7, #68] ; 0x44 + 802eef2: 6c7b ldr r3, [r7, #68] ; 0x44 + 802eef4: 2b00 cmp r3, #0 + 802eef6: daed bge.n 802eed4 } for(i = 0; i < lz_cnt; i++) { - 802ef8c: 2300 movs r3, #0 - 802ef8e: 647b str r3, [r7, #68] ; 0x44 - 802ef90: e008 b.n 802efa4 + 802eef8: 2300 movs r3, #0 + 802eefa: 647b str r3, [r7, #68] ; 0x44 + 802eefc: e008 b.n 802ef10 digits[i] = '0'; - 802ef92: f107 020c add.w r2, r7, #12 - 802ef96: 6c7b ldr r3, [r7, #68] ; 0x44 - 802ef98: 4413 add r3, r2 - 802ef9a: 2230 movs r2, #48 ; 0x30 - 802ef9c: 701a strb r2, [r3, #0] + 802eefe: f107 020c add.w r2, r7, #12 + 802ef02: 6c7b ldr r3, [r7, #68] ; 0x44 + 802ef04: 4413 add r3, r2 + 802ef06: 2230 movs r2, #48 ; 0x30 + 802ef08: 701a strb r2, [r3, #0] for(i = 0; i < lz_cnt; i++) { - 802ef9e: 6c7b ldr r3, [r7, #68] ; 0x44 - 802efa0: 3301 adds r3, #1 - 802efa2: 647b str r3, [r7, #68] ; 0x44 - 802efa4: 6c7a ldr r2, [r7, #68] ; 0x44 - 802efa6: 6b7b ldr r3, [r7, #52] ; 0x34 - 802efa8: 429a cmp r2, r3 - 802efaa: dbf2 blt.n 802ef92 + 802ef0a: 6c7b ldr r3, [r7, #68] ; 0x44 + 802ef0c: 3301 adds r3, #1 + 802ef0e: 647b str r3, [r7, #68] ; 0x44 + 802ef10: 6c7a ldr r2, [r7, #68] ; 0x44 + 802ef12: 6b7b ldr r3, [r7, #52] ; 0x34 + 802ef14: 429a cmp r2, r3 + 802ef16: dbf2 blt.n 802eefe } } int32_t intDigits; intDigits = (spinbox->dec_point_pos == 0) ? spinbox->digit_count : spinbox->dec_point_pos; - 802efac: 6bbb ldr r3, [r7, #56] ; 0x38 - 802efae: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 - 802efb2: f023 030f bic.w r3, r3, #15 - 802efb6: b2db uxtb r3, r3 - 802efb8: 2b00 cmp r3, #0 - 802efba: d106 bne.n 802efca - 802efbc: 6bbb ldr r3, [r7, #56] ; 0x38 - 802efbe: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 - 802efc2: f3c3 0303 ubfx r3, r3, #0, #4 - 802efc6: b2db uxtb r3, r3 - 802efc8: e005 b.n 802efd6 - 802efca: 6bbb ldr r3, [r7, #56] ; 0x38 - 802efcc: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 - 802efd0: f3c3 1303 ubfx r3, r3, #4, #4 - 802efd4: b2db uxtb r3, r3 - 802efd6: 633b str r3, [r7, #48] ; 0x30 + 802ef18: 6bbb ldr r3, [r7, #56] ; 0x38 + 802ef1a: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 + 802ef1e: f023 030f bic.w r3, r3, #15 + 802ef22: b2db uxtb r3, r3 + 802ef24: 2b00 cmp r3, #0 + 802ef26: d106 bne.n 802ef36 + 802ef28: 6bbb ldr r3, [r7, #56] ; 0x38 + 802ef2a: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 + 802ef2e: f3c3 0303 ubfx r3, r3, #0, #4 + 802ef32: b2db uxtb r3, r3 + 802ef34: e005 b.n 802ef42 + 802ef36: 6bbb ldr r3, [r7, #56] ; 0x38 + 802ef38: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 + 802ef3c: f3c3 1303 ubfx r3, r3, #4, #4 + 802ef40: b2db uxtb r3, r3 + 802ef42: 633b str r3, [r7, #48] ; 0x30 /*Add the decimal part*/ for(i = 0; i < intDigits && digits[i] != '\0'; i++) { - 802efd8: 2300 movs r3, #0 - 802efda: 647b str r3, [r7, #68] ; 0x44 - 802efdc: e00c b.n 802eff8 + 802ef44: 2300 movs r3, #0 + 802ef46: 647b str r3, [r7, #68] ; 0x44 + 802ef48: e00c b.n 802ef64 (*buf_p) = digits[i]; - 802efde: f107 020c add.w r2, r7, #12 - 802efe2: 6c7b ldr r3, [r7, #68] ; 0x44 - 802efe4: 4413 add r3, r2 - 802efe6: 781a ldrb r2, [r3, #0] - 802efe8: 6cfb ldr r3, [r7, #76] ; 0x4c - 802efea: 701a strb r2, [r3, #0] + 802ef4a: f107 020c add.w r2, r7, #12 + 802ef4e: 6c7b ldr r3, [r7, #68] ; 0x44 + 802ef50: 4413 add r3, r2 + 802ef52: 781a ldrb r2, [r3, #0] + 802ef54: 6cfb ldr r3, [r7, #76] ; 0x4c + 802ef56: 701a strb r2, [r3, #0] buf_p++; - 802efec: 6cfb ldr r3, [r7, #76] ; 0x4c - 802efee: 3301 adds r3, #1 - 802eff0: 64fb str r3, [r7, #76] ; 0x4c + 802ef58: 6cfb ldr r3, [r7, #76] ; 0x4c + 802ef5a: 3301 adds r3, #1 + 802ef5c: 64fb str r3, [r7, #76] ; 0x4c for(i = 0; i < intDigits && digits[i] != '\0'; i++) { - 802eff2: 6c7b ldr r3, [r7, #68] ; 0x44 - 802eff4: 3301 adds r3, #1 - 802eff6: 647b str r3, [r7, #68] ; 0x44 - 802eff8: 6c7a ldr r2, [r7, #68] ; 0x44 - 802effa: 6b3b ldr r3, [r7, #48] ; 0x30 - 802effc: 429a cmp r2, r3 - 802effe: da06 bge.n 802f00e - 802f000: f107 020c add.w r2, r7, #12 - 802f004: 6c7b ldr r3, [r7, #68] ; 0x44 - 802f006: 4413 add r3, r2 - 802f008: 781b ldrb r3, [r3, #0] - 802f00a: 2b00 cmp r3, #0 - 802f00c: d1e7 bne.n 802efde + 802ef5e: 6c7b ldr r3, [r7, #68] ; 0x44 + 802ef60: 3301 adds r3, #1 + 802ef62: 647b str r3, [r7, #68] ; 0x44 + 802ef64: 6c7a ldr r2, [r7, #68] ; 0x44 + 802ef66: 6b3b ldr r3, [r7, #48] ; 0x30 + 802ef68: 429a cmp r2, r3 + 802ef6a: da06 bge.n 802ef7a + 802ef6c: f107 020c add.w r2, r7, #12 + 802ef70: 6c7b ldr r3, [r7, #68] ; 0x44 + 802ef72: 4413 add r3, r2 + 802ef74: 781b ldrb r3, [r3, #0] + 802ef76: 2b00 cmp r3, #0 + 802ef78: d1e7 bne.n 802ef4a } if(spinbox->dec_point_pos != 0) { - 802f00e: 6bbb ldr r3, [r7, #56] ; 0x38 - 802f010: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 - 802f014: f023 030f bic.w r3, r3, #15 - 802f018: b2db uxtb r3, r3 - 802f01a: 2b00 cmp r3, #0 - 802f01c: d024 beq.n 802f068 + 802ef7a: 6bbb ldr r3, [r7, #56] ; 0x38 + 802ef7c: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 + 802ef80: f023 030f bic.w r3, r3, #15 + 802ef84: b2db uxtb r3, r3 + 802ef86: 2b00 cmp r3, #0 + 802ef88: d024 beq.n 802efd4 /*Insert the decimal point*/ (*buf_p) = '.'; - 802f01e: 6cfb ldr r3, [r7, #76] ; 0x4c - 802f020: 222e movs r2, #46 ; 0x2e - 802f022: 701a strb r2, [r3, #0] + 802ef8a: 6cfb ldr r3, [r7, #76] ; 0x4c + 802ef8c: 222e movs r2, #46 ; 0x2e + 802ef8e: 701a strb r2, [r3, #0] buf_p++; - 802f024: 6cfb ldr r3, [r7, #76] ; 0x4c - 802f026: 3301 adds r3, #1 - 802f028: 64fb str r3, [r7, #76] ; 0x4c + 802ef90: 6cfb ldr r3, [r7, #76] ; 0x4c + 802ef92: 3301 adds r3, #1 + 802ef94: 64fb str r3, [r7, #76] ; 0x4c for(/*Leave i*/; i < spinbox->digit_count && digits[i] != '\0'; i++) { - 802f02a: e00c b.n 802f046 + 802ef96: e00c b.n 802efb2 (*buf_p) = digits[i]; - 802f02c: f107 020c add.w r2, r7, #12 - 802f030: 6c7b ldr r3, [r7, #68] ; 0x44 - 802f032: 4413 add r3, r2 - 802f034: 781a ldrb r2, [r3, #0] - 802f036: 6cfb ldr r3, [r7, #76] ; 0x4c - 802f038: 701a strb r2, [r3, #0] + 802ef98: f107 020c add.w r2, r7, #12 + 802ef9c: 6c7b ldr r3, [r7, #68] ; 0x44 + 802ef9e: 4413 add r3, r2 + 802efa0: 781a ldrb r2, [r3, #0] + 802efa2: 6cfb ldr r3, [r7, #76] ; 0x4c + 802efa4: 701a strb r2, [r3, #0] buf_p++; - 802f03a: 6cfb ldr r3, [r7, #76] ; 0x4c - 802f03c: 3301 adds r3, #1 - 802f03e: 64fb str r3, [r7, #76] ; 0x4c + 802efa6: 6cfb ldr r3, [r7, #76] ; 0x4c + 802efa8: 3301 adds r3, #1 + 802efaa: 64fb str r3, [r7, #76] ; 0x4c for(/*Leave i*/; i < spinbox->digit_count && digits[i] != '\0'; i++) { - 802f040: 6c7b ldr r3, [r7, #68] ; 0x44 - 802f042: 3301 adds r3, #1 - 802f044: 647b str r3, [r7, #68] ; 0x44 - 802f046: 6bbb ldr r3, [r7, #56] ; 0x38 - 802f048: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 - 802f04c: f3c3 0303 ubfx r3, r3, #0, #4 - 802f050: b2db uxtb r3, r3 - 802f052: 461a mov r2, r3 - 802f054: 6c7b ldr r3, [r7, #68] ; 0x44 - 802f056: 4293 cmp r3, r2 - 802f058: da06 bge.n 802f068 - 802f05a: f107 020c add.w r2, r7, #12 - 802f05e: 6c7b ldr r3, [r7, #68] ; 0x44 - 802f060: 4413 add r3, r2 - 802f062: 781b ldrb r3, [r3, #0] - 802f064: 2b00 cmp r3, #0 - 802f066: d1e1 bne.n 802f02c + 802efac: 6c7b ldr r3, [r7, #68] ; 0x44 + 802efae: 3301 adds r3, #1 + 802efb0: 647b str r3, [r7, #68] ; 0x44 + 802efb2: 6bbb ldr r3, [r7, #56] ; 0x38 + 802efb4: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 + 802efb8: f3c3 0303 ubfx r3, r3, #0, #4 + 802efbc: b2db uxtb r3, r3 + 802efbe: 461a mov r2, r3 + 802efc0: 6c7b ldr r3, [r7, #68] ; 0x44 + 802efc2: 4293 cmp r3, r2 + 802efc4: da06 bge.n 802efd4 + 802efc6: f107 020c add.w r2, r7, #12 + 802efca: 6c7b ldr r3, [r7, #68] ; 0x44 + 802efcc: 4413 add r3, r2 + 802efce: 781b ldrb r3, [r3, #0] + 802efd0: 2b00 cmp r3, #0 + 802efd2: d1e1 bne.n 802ef98 } } /*Refresh the text*/ lv_textarea_set_text(obj, (char *)buf); - 802f068: f107 031c add.w r3, r7, #28 - 802f06c: 4619 mov r1, r3 - 802f06e: 6878 ldr r0, [r7, #4] - 802f070: f016 fa56 bl 8045520 + 802efd4: f107 031c add.w r3, r7, #28 + 802efd8: 4619 mov r1, r3 + 802efda: 6878 ldr r0, [r7, #4] + 802efdc: f016 fa56 bl 804548c /*Set the cursor position*/ int32_t step = spinbox->step; - 802f074: 6bbb ldr r3, [r7, #56] ; 0x38 - 802f076: 6edb ldr r3, [r3, #108] ; 0x6c - 802f078: 643b str r3, [r7, #64] ; 0x40 + 802efe0: 6bbb ldr r3, [r7, #56] ; 0x38 + 802efe2: 6edb ldr r3, [r3, #108] ; 0x6c + 802efe4: 643b str r3, [r7, #64] ; 0x40 uint8_t cur_pos = (uint8_t)spinbox->digit_count; - 802f07a: 6bbb ldr r3, [r7, #56] ; 0x38 - 802f07c: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 - 802f080: f3c3 0303 ubfx r3, r3, #0, #4 - 802f084: b2db uxtb r3, r3 - 802f086: f887 303f strb.w r3, [r7, #63] ; 0x3f + 802efe6: 6bbb ldr r3, [r7, #56] ; 0x38 + 802efe8: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 + 802efec: f3c3 0303 ubfx r3, r3, #0, #4 + 802eff0: b2db uxtb r3, r3 + 802eff2: f887 303f strb.w r3, [r7, #63] ; 0x3f while(step >= 10) { - 802f08a: e00c b.n 802f0a6 + 802eff6: e00c b.n 802f012 step /= 10; - 802f08c: 6c3b ldr r3, [r7, #64] ; 0x40 - 802f08e: 4a16 ldr r2, [pc, #88] ; (802f0e8 ) - 802f090: fb82 1203 smull r1, r2, r2, r3 - 802f094: 1092 asrs r2, r2, #2 - 802f096: 17db asrs r3, r3, #31 - 802f098: 1ad3 subs r3, r2, r3 - 802f09a: 643b str r3, [r7, #64] ; 0x40 + 802eff8: 6c3b ldr r3, [r7, #64] ; 0x40 + 802effa: 4a16 ldr r2, [pc, #88] ; (802f054 ) + 802effc: fb82 1203 smull r1, r2, r2, r3 + 802f000: 1092 asrs r2, r2, #2 + 802f002: 17db asrs r3, r3, #31 + 802f004: 1ad3 subs r3, r2, r3 + 802f006: 643b str r3, [r7, #64] ; 0x40 cur_pos--; - 802f09c: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 802f0a0: 3b01 subs r3, #1 - 802f0a2: f887 303f strb.w r3, [r7, #63] ; 0x3f + 802f008: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 802f00c: 3b01 subs r3, #1 + 802f00e: f887 303f strb.w r3, [r7, #63] ; 0x3f while(step >= 10) { - 802f0a6: 6c3b ldr r3, [r7, #64] ; 0x40 - 802f0a8: 2b09 cmp r3, #9 - 802f0aa: dcef bgt.n 802f08c + 802f012: 6c3b ldr r3, [r7, #64] ; 0x40 + 802f014: 2b09 cmp r3, #9 + 802f016: dcef bgt.n 802eff8 } if(cur_pos > intDigits) cur_pos++; /*Skip the decimal point*/ - 802f0ac: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 802f0b0: 6b3a ldr r2, [r7, #48] ; 0x30 - 802f0b2: 429a cmp r2, r3 - 802f0b4: da04 bge.n 802f0c0 - 802f0b6: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 802f0ba: 3301 adds r3, #1 - 802f0bc: f887 303f strb.w r3, [r7, #63] ; 0x3f + 802f018: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 802f01c: 6b3a ldr r2, [r7, #48] ; 0x30 + 802f01e: 429a cmp r2, r3 + 802f020: da04 bge.n 802f02c + 802f022: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 802f026: 3301 adds r3, #1 + 802f028: f887 303f strb.w r3, [r7, #63] ; 0x3f cur_pos -= cur_shift_left; - 802f0c0: f897 203f ldrb.w r2, [r7, #63] ; 0x3f - 802f0c4: f897 304b ldrb.w r3, [r7, #75] ; 0x4b - 802f0c8: 1ad3 subs r3, r2, r3 - 802f0ca: f887 303f strb.w r3, [r7, #63] ; 0x3f + 802f02c: f897 203f ldrb.w r2, [r7, #63] ; 0x3f + 802f030: f897 304b ldrb.w r3, [r7, #75] ; 0x4b + 802f034: 1ad3 subs r3, r2, r3 + 802f036: f887 303f strb.w r3, [r7, #63] ; 0x3f lv_textarea_set_cursor_pos(obj, cur_pos); - 802f0ce: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 802f0d2: 4619 mov r1, r3 - 802f0d4: 6878 ldr r0, [r7, #4] - 802f0d6: f016 fb01 bl 80456dc + 802f03a: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 802f03e: 4619 mov r1, r3 + 802f040: 6878 ldr r0, [r7, #4] + 802f042: f016 fb01 bl 8045648 } - 802f0da: bf00 nop - 802f0dc: 3754 adds r7, #84 ; 0x54 - 802f0de: 46bd mov sp, r7 - 802f0e0: bd90 pop {r4, r7, pc} - 802f0e2: bf00 nop - 802f0e4: 0804713c .word 0x0804713c - 802f0e8: 66666667 .word 0x66666667 + 802f046: bf00 nop + 802f048: 3754 adds r7, #84 ; 0x54 + 802f04a: 46bd mov sp, r7 + 802f04c: bd90 pop {r4, r7, pc} + 802f04e: bf00 nop + 802f050: 08047094 .word 0x08047094 + 802f054: 66666667 .word 0x66666667 -0802f0ec : +0802f058 : * Set a variable to animate * @param a pointer to an initialized `lv_anim_t` variable * @param var pointer to a variable to animate */ static inline void lv_anim_set_var(lv_anim_t * a, void * var) { - 802f0ec: b480 push {r7} - 802f0ee: b083 sub sp, #12 - 802f0f0: af00 add r7, sp, #0 - 802f0f2: 6078 str r0, [r7, #4] - 802f0f4: 6039 str r1, [r7, #0] + 802f058: b480 push {r7} + 802f05a: b083 sub sp, #12 + 802f05c: af00 add r7, sp, #0 + 802f05e: 6078 str r0, [r7, #4] + 802f060: 6039 str r1, [r7, #0] a->var = var; - 802f0f6: 687b ldr r3, [r7, #4] - 802f0f8: 683a ldr r2, [r7, #0] - 802f0fa: 601a str r2, [r3, #0] + 802f062: 687b ldr r3, [r7, #4] + 802f064: 683a ldr r2, [r7, #0] + 802f066: 601a str r2, [r3, #0] } - 802f0fc: bf00 nop - 802f0fe: 370c adds r7, #12 - 802f100: 46bd mov sp, r7 - 802f102: bc80 pop {r7} - 802f104: 4770 bx lr + 802f068: bf00 nop + 802f06a: 370c adds r7, #12 + 802f06c: 46bd mov sp, r7 + 802f06e: bc80 pop {r7} + 802f070: 4770 bx lr -0802f106 : +0802f072 : * @param exec_cb a function to execute during animation * LVGL's built-in functions can be used. * E.g. lv_obj_set_x */ static inline void lv_anim_set_exec_cb(lv_anim_t * a, lv_anim_exec_xcb_t exec_cb) { - 802f106: b480 push {r7} - 802f108: b083 sub sp, #12 - 802f10a: af00 add r7, sp, #0 - 802f10c: 6078 str r0, [r7, #4] - 802f10e: 6039 str r1, [r7, #0] + 802f072: b480 push {r7} + 802f074: b083 sub sp, #12 + 802f076: af00 add r7, sp, #0 + 802f078: 6078 str r0, [r7, #4] + 802f07a: 6039 str r1, [r7, #0] a->exec_cb = exec_cb; - 802f110: 687b ldr r3, [r7, #4] - 802f112: 683a ldr r2, [r7, #0] - 802f114: 605a str r2, [r3, #4] + 802f07c: 687b ldr r3, [r7, #4] + 802f07e: 683a ldr r2, [r7, #0] + 802f080: 605a str r2, [r3, #4] } - 802f116: bf00 nop - 802f118: 370c adds r7, #12 - 802f11a: 46bd mov sp, r7 - 802f11c: bc80 pop {r7} - 802f11e: 4770 bx lr + 802f082: bf00 nop + 802f084: 370c adds r7, #12 + 802f086: 46bd mov sp, r7 + 802f088: bc80 pop {r7} + 802f08a: 4770 bx lr -0802f120 : +0802f08c : * Set the duration of an animation * @param a pointer to an initialized `lv_anim_t` variable * @param duration duration of the animation in milliseconds */ static inline void lv_anim_set_time(lv_anim_t * a, uint32_t duration) { - 802f120: b480 push {r7} - 802f122: b083 sub sp, #12 - 802f124: af00 add r7, sp, #0 - 802f126: 6078 str r0, [r7, #4] - 802f128: 6039 str r1, [r7, #0] + 802f08c: b480 push {r7} + 802f08e: b083 sub sp, #12 + 802f090: af00 add r7, sp, #0 + 802f092: 6078 str r0, [r7, #4] + 802f094: 6039 str r1, [r7, #0] a->time = duration; - 802f12a: 683a ldr r2, [r7, #0] - 802f12c: 687b ldr r3, [r7, #4] - 802f12e: 629a str r2, [r3, #40] ; 0x28 + 802f096: 683a ldr r2, [r7, #0] + 802f098: 687b ldr r3, [r7, #4] + 802f09a: 629a str r2, [r3, #40] ; 0x28 } - 802f130: bf00 nop - 802f132: 370c adds r7, #12 - 802f134: 46bd mov sp, r7 - 802f136: bc80 pop {r7} - 802f138: 4770 bx lr + 802f09c: bf00 nop + 802f09e: 370c adds r7, #12 + 802f0a0: 46bd mov sp, r7 + 802f0a2: bc80 pop {r7} + 802f0a4: 4770 bx lr -0802f13a : +0802f0a6 : * @param a pointer to an initialized `lv_anim_t` variable * @param start the start value * @param end the end value */ static inline void lv_anim_set_values(lv_anim_t * a, int32_t start, int32_t end) { - 802f13a: b480 push {r7} - 802f13c: b085 sub sp, #20 - 802f13e: af00 add r7, sp, #0 - 802f140: 60f8 str r0, [r7, #12] - 802f142: 60b9 str r1, [r7, #8] - 802f144: 607a str r2, [r7, #4] + 802f0a6: b480 push {r7} + 802f0a8: b085 sub sp, #20 + 802f0aa: af00 add r7, sp, #0 + 802f0ac: 60f8 str r0, [r7, #12] + 802f0ae: 60b9 str r1, [r7, #8] + 802f0b0: 607a str r2, [r7, #4] a->start_value = start; - 802f146: 68fb ldr r3, [r7, #12] - 802f148: 68ba ldr r2, [r7, #8] - 802f14a: 61da str r2, [r3, #28] + 802f0b2: 68fb ldr r3, [r7, #12] + 802f0b4: 68ba ldr r2, [r7, #8] + 802f0b6: 61da str r2, [r3, #28] a->current_value = start; - 802f14c: 68fb ldr r3, [r7, #12] - 802f14e: 68ba ldr r2, [r7, #8] - 802f150: 621a str r2, [r3, #32] + 802f0b8: 68fb ldr r3, [r7, #12] + 802f0ba: 68ba ldr r2, [r7, #8] + 802f0bc: 621a str r2, [r3, #32] a->end_value = end; - 802f152: 68fb ldr r3, [r7, #12] - 802f154: 687a ldr r2, [r7, #4] - 802f156: 625a str r2, [r3, #36] ; 0x24 + 802f0be: 68fb ldr r3, [r7, #12] + 802f0c0: 687a ldr r2, [r7, #4] + 802f0c2: 625a str r2, [r3, #36] ; 0x24 } - 802f158: bf00 nop - 802f15a: 3714 adds r7, #20 - 802f15c: 46bd mov sp, r7 - 802f15e: bc80 pop {r7} - 802f160: 4770 bx lr + 802f0c4: bf00 nop + 802f0c6: 3714 adds r7, #20 + 802f0c8: 46bd mov sp, r7 + 802f0ca: bc80 pop {r7} + 802f0cc: 4770 bx lr -0802f162 : +0802f0ce : * Set the path (curve) of the animation. * @param a pointer to an initialized `lv_anim_t` variable * @param path_cb a function to set the current value of the animation. */ static inline void lv_anim_set_path_cb(lv_anim_t * a, lv_anim_path_cb_t path_cb) { - 802f162: b480 push {r7} - 802f164: b083 sub sp, #12 - 802f166: af00 add r7, sp, #0 - 802f168: 6078 str r0, [r7, #4] - 802f16a: 6039 str r1, [r7, #0] + 802f0ce: b480 push {r7} + 802f0d0: b083 sub sp, #12 + 802f0d2: af00 add r7, sp, #0 + 802f0d4: 6078 str r0, [r7, #4] + 802f0d6: 6039 str r1, [r7, #0] a->path_cb = path_cb; - 802f16c: 687b ldr r3, [r7, #4] - 802f16e: 683a ldr r2, [r7, #0] - 802f170: 619a str r2, [r3, #24] + 802f0d8: 687b ldr r3, [r7, #4] + 802f0da: 683a ldr r2, [r7, #0] + 802f0dc: 619a str r2, [r3, #24] } - 802f172: bf00 nop - 802f174: 370c adds r7, #12 - 802f176: 46bd mov sp, r7 - 802f178: bc80 pop {r7} - 802f17a: 4770 bx lr + 802f0de: bf00 nop + 802f0e0: 370c adds r7, #12 + 802f0e2: 46bd mov sp, r7 + 802f0e4: bc80 pop {r7} + 802f0e6: 4770 bx lr -0802f17c : +0802f0e8 : * Make the animation repeat itself. * @param a pointer to an initialized `lv_anim_t` variable * @param cnt repeat count or `LV_ANIM_REPEAT_INFINITE` for infinite repetition. 0: to disable repetition. */ static inline void lv_anim_set_repeat_count(lv_anim_t * a, uint16_t cnt) { - 802f17c: b480 push {r7} - 802f17e: b083 sub sp, #12 - 802f180: af00 add r7, sp, #0 - 802f182: 6078 str r0, [r7, #4] - 802f184: 460b mov r3, r1 - 802f186: 807b strh r3, [r7, #2] + 802f0e8: b480 push {r7} + 802f0ea: b083 sub sp, #12 + 802f0ec: af00 add r7, sp, #0 + 802f0ee: 6078 str r0, [r7, #4] + 802f0f0: 460b mov r3, r1 + 802f0f2: 807b strh r3, [r7, #2] a->repeat_cnt = cnt; - 802f188: 687b ldr r3, [r7, #4] - 802f18a: 887a ldrh r2, [r7, #2] - 802f18c: 879a strh r2, [r3, #60] ; 0x3c + 802f0f4: 687b ldr r3, [r7, #4] + 802f0f6: 887a ldrh r2, [r7, #2] + 802f0f8: 879a strh r2, [r3, #60] ; 0x3c } - 802f18e: bf00 nop - 802f190: 370c adds r7, #12 - 802f192: 46bd mov sp, r7 - 802f194: bc80 pop {r7} - 802f196: 4770 bx lr + 802f0fa: bf00 nop + 802f0fc: 370c adds r7, #12 + 802f0fe: 46bd mov sp, r7 + 802f100: bc80 pop {r7} + 802f102: 4770 bx lr -0802f198 : +0802f104 : /********************** * STATIC FUNCTIONS **********************/ static void lv_spinner_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802f198: b580 push {r7, lr} - 802f19a: b092 sub sp, #72 ; 0x48 - 802f19c: af00 add r7, sp, #0 - 802f19e: 6078 str r0, [r7, #4] - 802f1a0: 6039 str r1, [r7, #0] + 802f104: b580 push {r7, lr} + 802f106: b092 sub sp, #72 ; 0x48 + 802f108: af00 add r7, sp, #0 + 802f10a: 6078 str r0, [r7, #4] + 802f10c: 6039 str r1, [r7, #0] LV_TRACE_OBJ_CREATE("begin"); LV_UNUSED(class_p); lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE); - 802f1a2: 2102 movs r1, #2 - 802f1a4: 6838 ldr r0, [r7, #0] - 802f1a6: f7d7 fa5b bl 8006660 + 802f10e: 2102 movs r1, #2 + 802f110: 6838 ldr r0, [r7, #0] + 802f112: f7d7 fa6f bl 80065f4 lv_anim_t a; lv_anim_init(&a); - 802f1aa: f107 0308 add.w r3, r7, #8 - 802f1ae: 4618 mov r0, r3 - 802f1b0: f001 fb4e bl 8030850 + 802f116: f107 0308 add.w r3, r7, #8 + 802f11a: 4618 mov r0, r3 + 802f11c: f001 fb4e bl 80307bc lv_anim_set_var(&a, obj); - 802f1b4: f107 0308 add.w r3, r7, #8 - 802f1b8: 6839 ldr r1, [r7, #0] - 802f1ba: 4618 mov r0, r3 - 802f1bc: f7ff ff96 bl 802f0ec + 802f120: f107 0308 add.w r3, r7, #8 + 802f124: 6839 ldr r1, [r7, #0] + 802f126: 4618 mov r0, r3 + 802f128: f7ff ff96 bl 802f058 lv_anim_set_exec_cb(&a, arc_anim_end_angle); - 802f1c0: f107 0308 add.w r3, r7, #8 - 802f1c4: 4926 ldr r1, [pc, #152] ; (802f260 ) - 802f1c6: 4618 mov r0, r3 - 802f1c8: f7ff ff9d bl 802f106 + 802f12c: f107 0308 add.w r3, r7, #8 + 802f130: 4926 ldr r1, [pc, #152] ; (802f1cc ) + 802f132: 4618 mov r0, r3 + 802f134: f7ff ff9d bl 802f072 lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE); - 802f1cc: f107 0308 add.w r3, r7, #8 - 802f1d0: f64f 71ff movw r1, #65535 ; 0xffff - 802f1d4: 4618 mov r0, r3 - 802f1d6: f7ff ffd1 bl 802f17c + 802f138: f107 0308 add.w r3, r7, #8 + 802f13c: f64f 71ff movw r1, #65535 ; 0xffff + 802f140: 4618 mov r0, r3 + 802f142: f7ff ffd1 bl 802f0e8 lv_anim_set_time(&a, time_param); - 802f1da: 4b22 ldr r3, [pc, #136] ; (802f264 ) - 802f1dc: 681a ldr r2, [r3, #0] - 802f1de: f107 0308 add.w r3, r7, #8 - 802f1e2: 4611 mov r1, r2 - 802f1e4: 4618 mov r0, r3 - 802f1e6: f7ff ff9b bl 802f120 + 802f146: 4b22 ldr r3, [pc, #136] ; (802f1d0 ) + 802f148: 681a ldr r2, [r3, #0] + 802f14a: f107 0308 add.w r3, r7, #8 + 802f14e: 4611 mov r1, r2 + 802f150: 4618 mov r0, r3 + 802f152: f7ff ff9b bl 802f08c lv_anim_set_values(&a, arc_length_param, 360 + arc_length_param); - 802f1ea: 4b1f ldr r3, [pc, #124] ; (802f268 ) - 802f1ec: 681b ldr r3, [r3, #0] - 802f1ee: 4619 mov r1, r3 - 802f1f0: 4b1d ldr r3, [pc, #116] ; (802f268 ) - 802f1f2: 681b ldr r3, [r3, #0] - 802f1f4: f503 73b4 add.w r3, r3, #360 ; 0x168 - 802f1f8: 461a mov r2, r3 - 802f1fa: f107 0308 add.w r3, r7, #8 - 802f1fe: 4618 mov r0, r3 - 802f200: f7ff ff9b bl 802f13a + 802f156: 4b1f ldr r3, [pc, #124] ; (802f1d4 ) + 802f158: 681b ldr r3, [r3, #0] + 802f15a: 4619 mov r1, r3 + 802f15c: 4b1d ldr r3, [pc, #116] ; (802f1d4 ) + 802f15e: 681b ldr r3, [r3, #0] + 802f160: f503 73b4 add.w r3, r3, #360 ; 0x168 + 802f164: 461a mov r2, r3 + 802f166: f107 0308 add.w r3, r7, #8 + 802f16a: 4618 mov r0, r3 + 802f16c: f7ff ff9b bl 802f0a6 lv_anim_start(&a); - 802f204: f107 0308 add.w r3, r7, #8 - 802f208: 4618 mov r0, r3 - 802f20a: f001 fb47 bl 803089c + 802f170: f107 0308 add.w r3, r7, #8 + 802f174: 4618 mov r0, r3 + 802f176: f001 fb47 bl 8030808 lv_anim_set_path_cb(&a, lv_anim_path_ease_in_out); - 802f20e: f107 0308 add.w r3, r7, #8 - 802f212: 4916 ldr r1, [pc, #88] ; (802f26c ) - 802f214: 4618 mov r0, r3 - 802f216: f7ff ffa4 bl 802f162 + 802f17a: f107 0308 add.w r3, r7, #8 + 802f17e: 4916 ldr r1, [pc, #88] ; (802f1d8 ) + 802f180: 4618 mov r0, r3 + 802f182: f7ff ffa4 bl 802f0ce lv_anim_set_values(&a, 0, 360); - 802f21a: f107 0308 add.w r3, r7, #8 - 802f21e: f44f 72b4 mov.w r2, #360 ; 0x168 - 802f222: 2100 movs r1, #0 - 802f224: 4618 mov r0, r3 - 802f226: f7ff ff88 bl 802f13a + 802f186: f107 0308 add.w r3, r7, #8 + 802f18a: f44f 72b4 mov.w r2, #360 ; 0x168 + 802f18e: 2100 movs r1, #0 + 802f190: 4618 mov r0, r3 + 802f192: f7ff ff88 bl 802f0a6 lv_anim_set_exec_cb(&a, arc_anim_start_angle); - 802f22a: f107 0308 add.w r3, r7, #8 - 802f22e: 4910 ldr r1, [pc, #64] ; (802f270 ) - 802f230: 4618 mov r0, r3 - 802f232: f7ff ff68 bl 802f106 + 802f196: f107 0308 add.w r3, r7, #8 + 802f19a: 4910 ldr r1, [pc, #64] ; (802f1dc ) + 802f19c: 4618 mov r0, r3 + 802f19e: f7ff ff68 bl 802f072 lv_anim_start(&a); - 802f236: f107 0308 add.w r3, r7, #8 - 802f23a: 4618 mov r0, r3 - 802f23c: f001 fb2e bl 803089c + 802f1a2: f107 0308 add.w r3, r7, #8 + 802f1a6: 4618 mov r0, r3 + 802f1a8: f001 fb2e bl 8030808 lv_arc_set_bg_angles(obj, 0, 360); - 802f240: f44f 72b4 mov.w r2, #360 ; 0x168 - 802f244: 2100 movs r1, #0 - 802f246: 6838 ldr r0, [r7, #0] - 802f248: f007 ffdf bl 803720a + 802f1ac: f44f 72b4 mov.w r2, #360 ; 0x168 + 802f1b0: 2100 movs r1, #0 + 802f1b2: 6838 ldr r0, [r7, #0] + 802f1b4: f007 ffdf bl 8037176 lv_arc_set_rotation(obj, 270); - 802f24c: f44f 7187 mov.w r1, #270 ; 0x10e - 802f250: 6838 ldr r0, [r7, #0] - 802f252: f007 fff0 bl 8037236 + 802f1b8: f44f 7187 mov.w r1, #270 ; 0x10e + 802f1bc: 6838 ldr r0, [r7, #0] + 802f1be: f007 fff0 bl 80371a2 } - 802f256: bf00 nop - 802f258: 3748 adds r7, #72 ; 0x48 - 802f25a: 46bd mov sp, r7 - 802f25c: bd80 pop {r7, pc} - 802f25e: bf00 nop - 802f260: 0802f293 .word 0x0802f293 - 802f264: 20001cc8 .word 0x20001cc8 - 802f268: 20001ccc .word 0x20001ccc - 802f26c: 08030b45 .word 0x08030b45 - 802f270: 0802f275 .word 0x0802f275 + 802f1c2: bf00 nop + 802f1c4: 3748 adds r7, #72 ; 0x48 + 802f1c6: 46bd mov sp, r7 + 802f1c8: bd80 pop {r7, pc} + 802f1ca: bf00 nop + 802f1cc: 0802f1ff .word 0x0802f1ff + 802f1d0: 20001cc8 .word 0x20001cc8 + 802f1d4: 20001ccc .word 0x20001ccc + 802f1d8: 08030ab1 .word 0x08030ab1 + 802f1dc: 0802f1e1 .word 0x0802f1e1 -0802f274 : +0802f1e0 : static void arc_anim_start_angle(void * obj, int32_t v) { - 802f274: b580 push {r7, lr} - 802f276: b082 sub sp, #8 - 802f278: af00 add r7, sp, #0 - 802f27a: 6078 str r0, [r7, #4] - 802f27c: 6039 str r1, [r7, #0] + 802f1e0: b580 push {r7, lr} + 802f1e2: b082 sub sp, #8 + 802f1e4: af00 add r7, sp, #0 + 802f1e6: 6078 str r0, [r7, #4] + 802f1e8: 6039 str r1, [r7, #0] lv_arc_set_start_angle(obj, (uint16_t) v); - 802f27e: 683b ldr r3, [r7, #0] - 802f280: b29b uxth r3, r3 - 802f282: 4619 mov r1, r3 - 802f284: 6878 ldr r0, [r7, #4] - 802f286: f007 fe18 bl 8036eba + 802f1ea: 683b ldr r3, [r7, #0] + 802f1ec: b29b uxth r3, r3 + 802f1ee: 4619 mov r1, r3 + 802f1f0: 6878 ldr r0, [r7, #4] + 802f1f2: f007 fe18 bl 8036e26 } - 802f28a: bf00 nop - 802f28c: 3708 adds r7, #8 - 802f28e: 46bd mov sp, r7 - 802f290: bd80 pop {r7, pc} + 802f1f6: bf00 nop + 802f1f8: 3708 adds r7, #8 + 802f1fa: 46bd mov sp, r7 + 802f1fc: bd80 pop {r7, pc} -0802f292 : +0802f1fe : static void arc_anim_end_angle(void * obj, int32_t v) { - 802f292: b580 push {r7, lr} - 802f294: b082 sub sp, #8 - 802f296: af00 add r7, sp, #0 - 802f298: 6078 str r0, [r7, #4] - 802f29a: 6039 str r1, [r7, #0] + 802f1fe: b580 push {r7, lr} + 802f200: b082 sub sp, #8 + 802f202: af00 add r7, sp, #0 + 802f204: 6078 str r0, [r7, #4] + 802f206: 6039 str r1, [r7, #0] lv_arc_set_end_angle(obj, (uint16_t) v); - 802f29c: 683b ldr r3, [r7, #0] - 802f29e: b29b uxth r3, r3 - 802f2a0: 4619 mov r1, r3 - 802f2a2: 6878 ldr r0, [r7, #4] - 802f2a4: f007 fe70 bl 8036f88 + 802f208: 683b ldr r3, [r7, #0] + 802f20a: b29b uxth r3, r3 + 802f20c: 4619 mov r1, r3 + 802f20e: 6878 ldr r0, [r7, #4] + 802f210: f007 fe70 bl 8036ef4 } - 802f2a8: bf00 nop - 802f2aa: 3708 adds r7, #8 - 802f2ac: 46bd mov sp, r7 - 802f2ae: bd80 pop {r7, pc} + 802f214: bf00 nop + 802f216: 3708 adds r7, #8 + 802f218: 46bd mov sp, r7 + 802f21a: bd80 pop {r7, pc} -0802f2b0 : +0802f21c : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_ROW); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_pad_column(const struct _lv_obj_t * obj, uint32_t part) { - 802f2b0: b580 push {r7, lr} - 802f2b2: b084 sub sp, #16 - 802f2b4: af00 add r7, sp, #0 - 802f2b6: 6078 str r0, [r7, #4] - 802f2b8: 6039 str r1, [r7, #0] + 802f21c: b580 push {r7, lr} + 802f21e: b084 sub sp, #16 + 802f220: af00 add r7, sp, #0 + 802f222: 6078 str r0, [r7, #4] + 802f224: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_COLUMN); - 802f2ba: f641 0215 movw r2, #6165 ; 0x1815 - 802f2be: 6839 ldr r1, [r7, #0] - 802f2c0: 6878 ldr r0, [r7, #4] - 802f2c2: f7de fd75 bl 800ddb0 - 802f2c6: 4603 mov r3, r0 - 802f2c8: 60fb str r3, [r7, #12] + 802f226: f641 0215 movw r2, #6165 ; 0x1815 + 802f22a: 6839 ldr r1, [r7, #0] + 802f22c: 6878 ldr r0, [r7, #4] + 802f22e: f7de fd89 bl 800dd44 + 802f232: 4603 mov r3, r0 + 802f234: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 802f2ca: 68fb ldr r3, [r7, #12] - 802f2cc: b21b sxth r3, r3 + 802f236: 68fb ldr r3, [r7, #12] + 802f238: b21b sxth r3, r3 } - 802f2ce: 4618 mov r0, r3 - 802f2d0: 3710 adds r7, #16 - 802f2d2: 46bd mov sp, r7 - 802f2d4: bd80 pop {r7, pc} + 802f23a: 4618 mov r0, r3 + 802f23c: 3710 adds r7, #16 + 802f23e: 46bd mov sp, r7 + 802f240: bd80 pop {r7, pc} -0802f2d6 : +0802f242 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LAYOUT); return (uint16_t)v.num; } static inline lv_base_dir_t lv_obj_get_style_base_dir(const struct _lv_obj_t * obj, uint32_t part) { - 802f2d6: b580 push {r7, lr} - 802f2d8: b084 sub sp, #16 - 802f2da: af00 add r7, sp, #0 - 802f2dc: 6078 str r0, [r7, #4] - 802f2de: 6039 str r1, [r7, #0] + 802f242: b580 push {r7, lr} + 802f244: b084 sub sp, #16 + 802f246: af00 add r7, sp, #0 + 802f248: 6078 str r0, [r7, #4] + 802f24a: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BASE_DIR); - 802f2e0: f241 426a movw r2, #5226 ; 0x146a - 802f2e4: 6839 ldr r1, [r7, #0] - 802f2e6: 6878 ldr r0, [r7, #4] - 802f2e8: f7de fd62 bl 800ddb0 - 802f2ec: 4603 mov r3, r0 - 802f2ee: 60fb str r3, [r7, #12] + 802f24c: f241 426a movw r2, #5226 ; 0x146a + 802f250: 6839 ldr r1, [r7, #0] + 802f252: 6878 ldr r0, [r7, #4] + 802f254: f7de fd76 bl 800dd44 + 802f258: 4603 mov r3, r0 + 802f25a: 60fb str r3, [r7, #12] return (lv_base_dir_t)v.num; - 802f2f0: 68fb ldr r3, [r7, #12] - 802f2f2: b2db uxtb r3, r3 + 802f25c: 68fb ldr r3, [r7, #12] + 802f25e: b2db uxtb r3, r3 } - 802f2f4: 4618 mov r0, r3 - 802f2f6: 3710 adds r7, #16 - 802f2f8: 46bd mov sp, r7 - 802f2fa: bd80 pop {r7, pc} + 802f260: 4618 mov r0, r3 + 802f262: 3710 adds r7, #16 + 802f264: 46bd mov sp, r7 + 802f266: bd80 pop {r7, pc} -0802f2fc : +0802f268 : return page; } void lv_tabview_set_act(lv_obj_t * obj, uint32_t id, lv_anim_enable_t anim_en) { - 802f2fc: b580 push {r7, lr} - 802f2fe: b08a sub sp, #40 ; 0x28 - 802f300: af00 add r7, sp, #0 - 802f302: 60f8 str r0, [r7, #12] - 802f304: 60b9 str r1, [r7, #8] - 802f306: 4613 mov r3, r2 - 802f308: 71fb strb r3, [r7, #7] + 802f268: b580 push {r7, lr} + 802f26a: b08a sub sp, #40 ; 0x28 + 802f26c: af00 add r7, sp, #0 + 802f26e: 60f8 str r0, [r7, #12] + 802f270: 60b9 str r1, [r7, #8] + 802f272: 4613 mov r3, r2 + 802f274: 71fb strb r3, [r7, #7] LV_ASSERT_OBJ(obj, MY_CLASS); lv_tabview_t * tabview = (lv_tabview_t *)obj; - 802f30a: 68fb ldr r3, [r7, #12] - 802f30c: 627b str r3, [r7, #36] ; 0x24 + 802f276: 68fb ldr r3, [r7, #12] + 802f278: 627b str r3, [r7, #36] ; 0x24 if(id >= tabview->tab_cnt) { - 802f30e: 6a7b ldr r3, [r7, #36] ; 0x24 - 802f310: 8d1b ldrh r3, [r3, #40] ; 0x28 - 802f312: 461a mov r2, r3 - 802f314: 68bb ldr r3, [r7, #8] - 802f316: 4293 cmp r3, r2 - 802f318: d303 bcc.n 802f322 + 802f27a: 6a7b ldr r3, [r7, #36] ; 0x24 + 802f27c: 8d1b ldrh r3, [r3, #40] ; 0x28 + 802f27e: 461a mov r2, r3 + 802f280: 68bb ldr r3, [r7, #8] + 802f282: 4293 cmp r3, r2 + 802f284: d303 bcc.n 802f28e id = tabview->tab_cnt - 1; - 802f31a: 6a7b ldr r3, [r7, #36] ; 0x24 - 802f31c: 8d1b ldrh r3, [r3, #40] ; 0x28 - 802f31e: 3b01 subs r3, #1 - 802f320: 60bb str r3, [r7, #8] + 802f286: 6a7b ldr r3, [r7, #36] ; 0x24 + 802f288: 8d1b ldrh r3, [r3, #40] ; 0x28 + 802f28a: 3b01 subs r3, #1 + 802f28c: 60bb str r3, [r7, #8] } /*To be sure lv_obj_get_content_width will return valid value*/ lv_obj_update_layout(obj); - 802f322: 68f8 ldr r0, [r7, #12] - 802f324: f7da fb0a bl 800993c + 802f28e: 68f8 ldr r0, [r7, #12] + 802f290: f7da fb1e bl 80098d0 lv_obj_t * cont = lv_tabview_get_content(obj); - 802f328: 68f8 ldr r0, [r7, #12] - 802f32a: f000 f85d bl 802f3e8 - 802f32e: 6238 str r0, [r7, #32] + 802f294: 68f8 ldr r0, [r7, #12] + 802f296: f000 f85d bl 802f354 + 802f29a: 6238 str r0, [r7, #32] if(cont == NULL) return; - 802f330: 6a3b ldr r3, [r7, #32] - 802f332: 2b00 cmp r3, #0 - 802f334: d047 beq.n 802f3c6 + 802f29c: 6a3b ldr r3, [r7, #32] + 802f29e: 2b00 cmp r3, #0 + 802f2a0: d047 beq.n 802f332 lv_coord_t gap = lv_obj_get_style_pad_column(cont, LV_PART_MAIN); - 802f336: 2100 movs r1, #0 - 802f338: 6a38 ldr r0, [r7, #32] - 802f33a: f7ff ffb9 bl 802f2b0 - 802f33e: 4603 mov r3, r0 - 802f340: 83fb strh r3, [r7, #30] + 802f2a2: 2100 movs r1, #0 + 802f2a4: 6a38 ldr r0, [r7, #32] + 802f2a6: f7ff ffb9 bl 802f21c + 802f2aa: 4603 mov r3, r0 + 802f2ac: 83fb strh r3, [r7, #30] lv_coord_t w = lv_obj_get_content_width(cont); - 802f342: 6a38 ldr r0, [r7, #32] - 802f344: f7da ff1c bl 800a180 - 802f348: 4603 mov r3, r0 - 802f34a: 83bb strh r3, [r7, #28] + 802f2ae: 6a38 ldr r0, [r7, #32] + 802f2b0: f7da ff30 bl 800a114 + 802f2b4: 4603 mov r3, r0 + 802f2b6: 83bb strh r3, [r7, #28] if(lv_obj_get_style_base_dir(obj, LV_PART_MAIN) != LV_BASE_DIR_RTL) { - 802f34c: 2100 movs r1, #0 - 802f34e: 68f8 ldr r0, [r7, #12] - 802f350: f7ff ffc1 bl 802f2d6 - 802f354: 4603 mov r3, r0 - 802f356: 2b01 cmp r3, #1 - 802f358: d011 beq.n 802f37e + 802f2b8: 2100 movs r1, #0 + 802f2ba: 68f8 ldr r0, [r7, #12] + 802f2bc: f7ff ffc1 bl 802f242 + 802f2c0: 4603 mov r3, r0 + 802f2c2: 2b01 cmp r3, #1 + 802f2c4: d011 beq.n 802f2ea lv_obj_scroll_to_x(cont, id * (gap + w), anim_en); - 802f35a: f9b7 201e ldrsh.w r2, [r7, #30] - 802f35e: f9b7 301c ldrsh.w r3, [r7, #28] - 802f362: 4413 add r3, r2 - 802f364: b29b uxth r3, r3 - 802f366: 68ba ldr r2, [r7, #8] - 802f368: b292 uxth r2, r2 - 802f36a: fb02 f303 mul.w r3, r2, r3 - 802f36e: b29b uxth r3, r3 - 802f370: b21b sxth r3, r3 - 802f372: 79fa ldrb r2, [r7, #7] - 802f374: 4619 mov r1, r3 - 802f376: 6a38 ldr r0, [r7, #32] - 802f378: f7dc ff44 bl 800c204 - 802f37c: e013 b.n 802f3a6 + 802f2c6: f9b7 201e ldrsh.w r2, [r7, #30] + 802f2ca: f9b7 301c ldrsh.w r3, [r7, #28] + 802f2ce: 4413 add r3, r2 + 802f2d0: b29b uxth r3, r3 + 802f2d2: 68ba ldr r2, [r7, #8] + 802f2d4: b292 uxth r2, r2 + 802f2d6: fb02 f303 mul.w r3, r2, r3 + 802f2da: b29b uxth r3, r3 + 802f2dc: b21b sxth r3, r3 + 802f2de: 79fa ldrb r2, [r7, #7] + 802f2e0: 4619 mov r1, r3 + 802f2e2: 6a38 ldr r0, [r7, #32] + 802f2e4: f7dc ff58 bl 800c198 + 802f2e8: e013 b.n 802f312 } else { int32_t id_rtl = -(int32_t)id; - 802f37e: 68bb ldr r3, [r7, #8] - 802f380: 425b negs r3, r3 - 802f382: 61bb str r3, [r7, #24] + 802f2ea: 68bb ldr r3, [r7, #8] + 802f2ec: 425b negs r3, r3 + 802f2ee: 61bb str r3, [r7, #24] lv_obj_scroll_to_x(cont, (gap + w) * id_rtl, anim_en); - 802f384: f9b7 201e ldrsh.w r2, [r7, #30] - 802f388: f9b7 301c ldrsh.w r3, [r7, #28] - 802f38c: 4413 add r3, r2 - 802f38e: b29b uxth r3, r3 - 802f390: 69ba ldr r2, [r7, #24] - 802f392: b292 uxth r2, r2 - 802f394: fb02 f303 mul.w r3, r2, r3 - 802f398: b29b uxth r3, r3 - 802f39a: b21b sxth r3, r3 - 802f39c: 79fa ldrb r2, [r7, #7] - 802f39e: 4619 mov r1, r3 - 802f3a0: 6a38 ldr r0, [r7, #32] - 802f3a2: f7dc ff2f bl 800c204 + 802f2f0: f9b7 201e ldrsh.w r2, [r7, #30] + 802f2f4: f9b7 301c ldrsh.w r3, [r7, #28] + 802f2f8: 4413 add r3, r2 + 802f2fa: b29b uxth r3, r3 + 802f2fc: 69ba ldr r2, [r7, #24] + 802f2fe: b292 uxth r2, r2 + 802f300: fb02 f303 mul.w r3, r2, r3 + 802f304: b29b uxth r3, r3 + 802f306: b21b sxth r3, r3 + 802f308: 79fa ldrb r2, [r7, #7] + 802f30a: 4619 mov r1, r3 + 802f30c: 6a38 ldr r0, [r7, #32] + 802f30e: f7dc ff43 bl 800c198 } lv_obj_t * btns = lv_tabview_get_tab_btns(obj); - 802f3a6: 68f8 ldr r0, [r7, #12] - 802f3a8: f000 f82b bl 802f402 - 802f3ac: 6178 str r0, [r7, #20] + 802f312: 68f8 ldr r0, [r7, #12] + 802f314: f000 f82b bl 802f36e + 802f318: 6178 str r0, [r7, #20] lv_btnmatrix_set_btn_ctrl(btns, id, LV_BTNMATRIX_CTRL_CHECKED); - 802f3ae: 68bb ldr r3, [r7, #8] - 802f3b0: b29b uxth r3, r3 - 802f3b2: 2280 movs r2, #128 ; 0x80 - 802f3b4: 4619 mov r1, r3 - 802f3b6: 6978 ldr r0, [r7, #20] - 802f3b8: f00a fb8d bl 8039ad6 + 802f31a: 68bb ldr r3, [r7, #8] + 802f31c: b29b uxth r3, r3 + 802f31e: 2280 movs r2, #128 ; 0x80 + 802f320: 4619 mov r1, r3 + 802f322: 6978 ldr r0, [r7, #20] + 802f324: f00a fb8d bl 8039a42 tabview->tab_cur = id; - 802f3bc: 68bb ldr r3, [r7, #8] - 802f3be: b29a uxth r2, r3 - 802f3c0: 6a7b ldr r3, [r7, #36] ; 0x24 - 802f3c2: 855a strh r2, [r3, #42] ; 0x2a - 802f3c4: e000 b.n 802f3c8 + 802f328: 68bb ldr r3, [r7, #8] + 802f32a: b29a uxth r2, r3 + 802f32c: 6a7b ldr r3, [r7, #36] ; 0x24 + 802f32e: 855a strh r2, [r3, #42] ; 0x2a + 802f330: e000 b.n 802f334 if(cont == NULL) return; - 802f3c6: bf00 nop + 802f332: bf00 nop } - 802f3c8: 3728 adds r7, #40 ; 0x28 - 802f3ca: 46bd mov sp, r7 - 802f3cc: bd80 pop {r7, pc} + 802f334: 3728 adds r7, #40 ; 0x28 + 802f336: 46bd mov sp, r7 + 802f338: bd80 pop {r7, pc} -0802f3ce : +0802f33a : uint16_t lv_tabview_get_tab_act(lv_obj_t * obj) { - 802f3ce: b480 push {r7} - 802f3d0: b085 sub sp, #20 - 802f3d2: af00 add r7, sp, #0 - 802f3d4: 6078 str r0, [r7, #4] + 802f33a: b480 push {r7} + 802f33c: b085 sub sp, #20 + 802f33e: af00 add r7, sp, #0 + 802f340: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_tabview_t * tabview = (lv_tabview_t *)obj; - 802f3d6: 687b ldr r3, [r7, #4] - 802f3d8: 60fb str r3, [r7, #12] + 802f342: 687b ldr r3, [r7, #4] + 802f344: 60fb str r3, [r7, #12] return tabview->tab_cur; - 802f3da: 68fb ldr r3, [r7, #12] - 802f3dc: 8d5b ldrh r3, [r3, #42] ; 0x2a + 802f346: 68fb ldr r3, [r7, #12] + 802f348: 8d5b ldrh r3, [r3, #42] ; 0x2a } - 802f3de: 4618 mov r0, r3 - 802f3e0: 3714 adds r7, #20 - 802f3e2: 46bd mov sp, r7 - 802f3e4: bc80 pop {r7} - 802f3e6: 4770 bx lr + 802f34a: 4618 mov r0, r3 + 802f34c: 3714 adds r7, #20 + 802f34e: 46bd mov sp, r7 + 802f350: bc80 pop {r7} + 802f352: 4770 bx lr -0802f3e8 : +0802f354 : lv_obj_t * lv_tabview_get_content(lv_obj_t * tv) { - 802f3e8: b580 push {r7, lr} - 802f3ea: b082 sub sp, #8 - 802f3ec: af00 add r7, sp, #0 - 802f3ee: 6078 str r0, [r7, #4] + 802f354: b580 push {r7, lr} + 802f356: b082 sub sp, #8 + 802f358: af00 add r7, sp, #0 + 802f35a: 6078 str r0, [r7, #4] return lv_obj_get_child(tv, 1); - 802f3f0: 2101 movs r1, #1 - 802f3f2: 6878 ldr r0, [r7, #4] - 802f3f4: f7e0 f99a bl 800f72c - 802f3f8: 4603 mov r3, r0 + 802f35c: 2101 movs r1, #1 + 802f35e: 6878 ldr r0, [r7, #4] + 802f360: f7e0 f99a bl 800f698 + 802f364: 4603 mov r3, r0 } - 802f3fa: 4618 mov r0, r3 - 802f3fc: 3708 adds r7, #8 - 802f3fe: 46bd mov sp, r7 - 802f400: bd80 pop {r7, pc} + 802f366: 4618 mov r0, r3 + 802f368: 3708 adds r7, #8 + 802f36a: 46bd mov sp, r7 + 802f36c: bd80 pop {r7, pc} -0802f402 : +0802f36e : lv_obj_t * lv_tabview_get_tab_btns(lv_obj_t * tv) { - 802f402: b580 push {r7, lr} - 802f404: b082 sub sp, #8 - 802f406: af00 add r7, sp, #0 - 802f408: 6078 str r0, [r7, #4] + 802f36e: b580 push {r7, lr} + 802f370: b082 sub sp, #8 + 802f372: af00 add r7, sp, #0 + 802f374: 6078 str r0, [r7, #4] return lv_obj_get_child(tv, 0); - 802f40a: 2100 movs r1, #0 - 802f40c: 6878 ldr r0, [r7, #4] - 802f40e: f7e0 f98d bl 800f72c - 802f412: 4603 mov r3, r0 + 802f376: 2100 movs r1, #0 + 802f378: 6878 ldr r0, [r7, #4] + 802f37a: f7e0 f98d bl 800f698 + 802f37e: 4603 mov r3, r0 } - 802f414: 4618 mov r0, r3 - 802f416: 3708 adds r7, #8 - 802f418: 46bd mov sp, r7 - 802f41a: bd80 pop {r7, pc} + 802f380: 4618 mov r0, r3 + 802f382: 3708 adds r7, #8 + 802f384: 46bd mov sp, r7 + 802f386: bd80 pop {r7, pc} -0802f41c : +0802f388 : /********************** * STATIC FUNCTIONS **********************/ static void lv_tabview_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802f41c: b580 push {r7, lr} - 802f41e: b086 sub sp, #24 - 802f420: af00 add r7, sp, #0 - 802f422: 6078 str r0, [r7, #4] - 802f424: 6039 str r1, [r7, #0] + 802f388: b580 push {r7, lr} + 802f38a: b086 sub sp, #24 + 802f38c: af00 add r7, sp, #0 + 802f38e: 6078 str r0, [r7, #4] + 802f390: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_tabview_t * tabview = (lv_tabview_t *)obj; - 802f426: 683b ldr r3, [r7, #0] - 802f428: 617b str r3, [r7, #20] + 802f392: 683b ldr r3, [r7, #0] + 802f394: 617b str r3, [r7, #20] tabview->tab_pos = tabpos_create; - 802f42a: 4b5f ldr r3, [pc, #380] ; (802f5a8 ) - 802f42c: 781a ldrb r2, [r3, #0] - 802f42e: 697b ldr r3, [r7, #20] - 802f430: f883 202c strb.w r2, [r3, #44] ; 0x2c + 802f396: 4b5f ldr r3, [pc, #380] ; (802f514 ) + 802f398: 781a ldrb r2, [r3, #0] + 802f39a: 697b ldr r3, [r7, #20] + 802f39c: f883 202c strb.w r2, [r3, #44] ; 0x2c switch(tabview->tab_pos) { - 802f434: 697b ldr r3, [r7, #20] - 802f436: f893 302c ldrb.w r3, [r3, #44] ; 0x2c - 802f43a: 3b01 subs r3, #1 - 802f43c: 2b07 cmp r3, #7 - 802f43e: d827 bhi.n 802f490 - 802f440: a201 add r2, pc, #4 ; (adr r2, 802f448 ) - 802f442: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 802f446: bf00 nop - 802f448: 0802f47d .word 0x0802f47d - 802f44c: 0802f487 .word 0x0802f487 - 802f450: 0802f491 .word 0x0802f491 - 802f454: 0802f469 .word 0x0802f469 - 802f458: 0802f491 .word 0x0802f491 - 802f45c: 0802f491 .word 0x0802f491 - 802f460: 0802f491 .word 0x0802f491 - 802f464: 0802f473 .word 0x0802f473 + 802f3a0: 697b ldr r3, [r7, #20] + 802f3a2: f893 302c ldrb.w r3, [r3, #44] ; 0x2c + 802f3a6: 3b01 subs r3, #1 + 802f3a8: 2b07 cmp r3, #7 + 802f3aa: d827 bhi.n 802f3fc + 802f3ac: a201 add r2, pc, #4 ; (adr r2, 802f3b4 ) + 802f3ae: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 802f3b2: bf00 nop + 802f3b4: 0802f3e9 .word 0x0802f3e9 + 802f3b8: 0802f3f3 .word 0x0802f3f3 + 802f3bc: 0802f3fd .word 0x0802f3fd + 802f3c0: 0802f3d5 .word 0x0802f3d5 + 802f3c4: 0802f3fd .word 0x0802f3fd + 802f3c8: 0802f3fd .word 0x0802f3fd + 802f3cc: 0802f3fd .word 0x0802f3fd + 802f3d0: 0802f3df .word 0x0802f3df case LV_DIR_TOP: lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN); - 802f468: 2101 movs r1, #1 - 802f46a: 6838 ldr r0, [r7, #0] - 802f46c: f7f1 ff32 bl 80212d4 + 802f3d4: 2101 movs r1, #1 + 802f3d6: 6838 ldr r0, [r7, #0] + 802f3d8: f7f1 ff32 bl 8021240 break; - 802f470: e00e b.n 802f490 + 802f3dc: e00e b.n 802f3fc case LV_DIR_BOTTOM: lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN_REVERSE); - 802f472: 2109 movs r1, #9 - 802f474: 6838 ldr r0, [r7, #0] - 802f476: f7f1 ff2d bl 80212d4 + 802f3de: 2109 movs r1, #9 + 802f3e0: 6838 ldr r0, [r7, #0] + 802f3e2: f7f1 ff2d bl 8021240 break; - 802f47a: e009 b.n 802f490 + 802f3e6: e009 b.n 802f3fc case LV_DIR_LEFT: lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_ROW); - 802f47c: 2100 movs r1, #0 - 802f47e: 6838 ldr r0, [r7, #0] - 802f480: f7f1 ff28 bl 80212d4 + 802f3e8: 2100 movs r1, #0 + 802f3ea: 6838 ldr r0, [r7, #0] + 802f3ec: f7f1 ff28 bl 8021240 break; - 802f484: e004 b.n 802f490 + 802f3f0: e004 b.n 802f3fc case LV_DIR_RIGHT: lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_ROW_REVERSE); - 802f486: 2108 movs r1, #8 - 802f488: 6838 ldr r0, [r7, #0] - 802f48a: f7f1 ff23 bl 80212d4 + 802f3f2: 2108 movs r1, #8 + 802f3f4: 6838 ldr r0, [r7, #0] + 802f3f6: f7f1 ff23 bl 8021240 break; - 802f48e: bf00 nop + 802f3fa: bf00 nop } lv_obj_set_size(obj, LV_PCT(100), LV_PCT(100)); - 802f490: f242 0264 movw r2, #8292 ; 0x2064 - 802f494: f242 0164 movw r1, #8292 ; 0x2064 - 802f498: 6838 ldr r0, [r7, #0] - 802f49a: f7da f987 bl 80097ac + 802f3fc: f242 0264 movw r2, #8292 ; 0x2064 + 802f400: f242 0164 movw r1, #8292 ; 0x2064 + 802f404: 6838 ldr r0, [r7, #0] + 802f406: f7da f99b bl 8009740 lv_obj_t * btnm; lv_obj_t * cont; btnm = lv_btnmatrix_create(obj); - 802f49e: 6838 ldr r0, [r7, #0] - 802f4a0: f00a f95c bl 803975c - 802f4a4: 6138 str r0, [r7, #16] + 802f40a: 6838 ldr r0, [r7, #0] + 802f40c: f00a f95c bl 80396c8 + 802f410: 6138 str r0, [r7, #16] cont = lv_obj_create(obj); - 802f4a6: 6838 ldr r0, [r7, #0] - 802f4a8: f7d7 f872 bl 8006590 - 802f4ac: 60f8 str r0, [r7, #12] + 802f412: 6838 ldr r0, [r7, #0] + 802f414: f7d7 f886 bl 8006524 + 802f418: 60f8 str r0, [r7, #12] lv_btnmatrix_set_one_checked(btnm, true); - 802f4ae: 2101 movs r1, #1 - 802f4b0: 6938 ldr r0, [r7, #16] - 802f4b2: f00a fbc2 bl 8039c3a + 802f41a: 2101 movs r1, #1 + 802f41c: 6938 ldr r0, [r7, #16] + 802f41e: f00a fbc2 bl 8039ba6 tabview->map = lv_mem_alloc(sizeof(const char *)); - 802f4b6: 2004 movs r0, #4 - 802f4b8: f003 f9ee bl 8032898 - 802f4bc: 4602 mov r2, r0 - 802f4be: 697b ldr r3, [r7, #20] - 802f4c0: 625a str r2, [r3, #36] ; 0x24 + 802f422: 2004 movs r0, #4 + 802f424: f003 f9ee bl 8032804 + 802f428: 4602 mov r2, r0 + 802f42a: 697b ldr r3, [r7, #20] + 802f42c: 625a str r2, [r3, #36] ; 0x24 tabview->map[0] = ""; - 802f4c2: 697b ldr r3, [r7, #20] - 802f4c4: 6a5b ldr r3, [r3, #36] ; 0x24 - 802f4c6: 4a39 ldr r2, [pc, #228] ; (802f5ac ) - 802f4c8: 601a str r2, [r3, #0] + 802f42e: 697b ldr r3, [r7, #20] + 802f430: 6a5b ldr r3, [r3, #36] ; 0x24 + 802f432: 4a39 ldr r2, [pc, #228] ; (802f518 ) + 802f434: 601a str r2, [r3, #0] lv_btnmatrix_set_map(btnm, (const char **)tabview->map); - 802f4ca: 697b ldr r3, [r7, #20] - 802f4cc: 6a5b ldr r3, [r3, #36] ; 0x24 - 802f4ce: 4619 mov r1, r3 - 802f4d0: 6938 ldr r0, [r7, #16] - 802f4d2: f00a f957 bl 8039784 + 802f436: 697b ldr r3, [r7, #20] + 802f438: 6a5b ldr r3, [r3, #36] ; 0x24 + 802f43a: 4619 mov r1, r3 + 802f43c: 6938 ldr r0, [r7, #16] + 802f43e: f00a f957 bl 80396f0 lv_obj_add_event_cb(btnm, btns_value_changed_event_cb, LV_EVENT_VALUE_CHANGED, NULL); - 802f4d6: 2300 movs r3, #0 - 802f4d8: 221c movs r2, #28 - 802f4da: 4935 ldr r1, [pc, #212] ; (802f5b0 ) - 802f4dc: 6938 ldr r0, [r7, #16] - 802f4de: f7d3 f8af bl 8002640 + 802f442: 2300 movs r3, #0 + 802f444: 221c movs r2, #28 + 802f446: 4935 ldr r1, [pc, #212] ; (802f51c ) + 802f448: 6938 ldr r0, [r7, #16] + 802f44a: f7d3 f8c3 bl 80025d4 lv_obj_add_flag(btnm, LV_OBJ_FLAG_EVENT_BUBBLE); - 802f4e2: f44f 4180 mov.w r1, #16384 ; 0x4000 - 802f4e6: 6938 ldr r0, [r7, #16] - 802f4e8: f7d7 f866 bl 80065b8 + 802f44e: f44f 4180 mov.w r1, #16384 ; 0x4000 + 802f452: 6938 ldr r0, [r7, #16] + 802f454: f7d7 f87a bl 800654c lv_obj_add_event_cb(cont, cont_scroll_end_event_cb, LV_EVENT_ALL, NULL); - 802f4ec: 2300 movs r3, #0 - 802f4ee: 2200 movs r2, #0 - 802f4f0: 4930 ldr r1, [pc, #192] ; (802f5b4 ) - 802f4f2: 68f8 ldr r0, [r7, #12] - 802f4f4: f7d3 f8a4 bl 8002640 + 802f458: 2300 movs r3, #0 + 802f45a: 2200 movs r2, #0 + 802f45c: 4930 ldr r1, [pc, #192] ; (802f520 ) + 802f45e: 68f8 ldr r0, [r7, #12] + 802f460: f7d3 f8b8 bl 80025d4 lv_obj_set_scrollbar_mode(cont, LV_SCROLLBAR_MODE_OFF); - 802f4f8: 2100 movs r1, #0 - 802f4fa: 68f8 ldr r0, [r7, #12] - 802f4fc: f7dc f970 bl 800b7e0 + 802f464: 2100 movs r1, #0 + 802f466: 68f8 ldr r0, [r7, #12] + 802f468: f7dc f984 bl 800b774 switch(tabview->tab_pos) { - 802f500: 697b ldr r3, [r7, #20] - 802f502: f893 302c ldrb.w r3, [r3, #44] ; 0x2c - 802f506: 2b08 cmp r3, #8 - 802f508: d008 beq.n 802f51c - 802f50a: 2b08 cmp r3, #8 - 802f50c: dc2c bgt.n 802f568 - 802f50e: 2b02 cmp r3, #2 - 802f510: dc02 bgt.n 802f518 - 802f512: 2b00 cmp r3, #0 - 802f514: dc15 bgt.n 802f542 - 802f516: e027 b.n 802f568 - 802f518: 2b04 cmp r3, #4 - 802f51a: d125 bne.n 802f568 + 802f46c: 697b ldr r3, [r7, #20] + 802f46e: f893 302c ldrb.w r3, [r3, #44] ; 0x2c + 802f472: 2b08 cmp r3, #8 + 802f474: d008 beq.n 802f488 + 802f476: 2b08 cmp r3, #8 + 802f478: dc2c bgt.n 802f4d4 + 802f47a: 2b02 cmp r3, #2 + 802f47c: dc02 bgt.n 802f484 + 802f47e: 2b00 cmp r3, #0 + 802f480: dc15 bgt.n 802f4ae + 802f482: e027 b.n 802f4d4 + 802f484: 2b04 cmp r3, #4 + 802f486: d125 bne.n 802f4d4 case LV_DIR_TOP: case LV_DIR_BOTTOM: lv_obj_set_size(btnm, LV_PCT(100), tabsize_create); - 802f51c: 4b26 ldr r3, [pc, #152] ; (802f5b8 ) - 802f51e: f9b3 3000 ldrsh.w r3, [r3] - 802f522: 461a mov r2, r3 - 802f524: f242 0164 movw r1, #8292 ; 0x2064 - 802f528: 6938 ldr r0, [r7, #16] - 802f52a: f7da f93f bl 80097ac + 802f488: 4b26 ldr r3, [pc, #152] ; (802f524 ) + 802f48a: f9b3 3000 ldrsh.w r3, [r3] + 802f48e: 461a mov r2, r3 + 802f490: f242 0164 movw r1, #8292 ; 0x2064 + 802f494: 6938 ldr r0, [r7, #16] + 802f496: f7da f953 bl 8009740 lv_obj_set_width(cont, LV_PCT(100)); - 802f52e: f242 0164 movw r1, #8292 ; 0x2064 - 802f532: 68f8 ldr r0, [r7, #12] - 802f534: f7da f952 bl 80097dc + 802f49a: f242 0164 movw r1, #8292 ; 0x2064 + 802f49e: 68f8 ldr r0, [r7, #12] + 802f4a0: f7da f966 bl 8009770 lv_obj_set_flex_grow(cont, 1); - 802f538: 2101 movs r1, #1 - 802f53a: 68f8 ldr r0, [r7, #12] - 802f53c: f7f1 ff12 bl 8021364 + 802f4a4: 2101 movs r1, #1 + 802f4a6: 68f8 ldr r0, [r7, #12] + 802f4a8: f7f1 ff12 bl 80212d0 break; - 802f540: e012 b.n 802f568 + 802f4ac: e012 b.n 802f4d4 case LV_DIR_LEFT: case LV_DIR_RIGHT: lv_obj_set_size(btnm, tabsize_create, LV_PCT(100)); - 802f542: 4b1d ldr r3, [pc, #116] ; (802f5b8 ) - 802f544: f9b3 3000 ldrsh.w r3, [r3] - 802f548: f242 0264 movw r2, #8292 ; 0x2064 - 802f54c: 4619 mov r1, r3 - 802f54e: 6938 ldr r0, [r7, #16] - 802f550: f7da f92c bl 80097ac + 802f4ae: 4b1d ldr r3, [pc, #116] ; (802f524 ) + 802f4b0: f9b3 3000 ldrsh.w r3, [r3] + 802f4b4: f242 0264 movw r2, #8292 ; 0x2064 + 802f4b8: 4619 mov r1, r3 + 802f4ba: 6938 ldr r0, [r7, #16] + 802f4bc: f7da f940 bl 8009740 lv_obj_set_height(cont, LV_PCT(100)); - 802f554: f242 0164 movw r1, #8292 ; 0x2064 - 802f558: 68f8 ldr r0, [r7, #12] - 802f55a: f7da f965 bl 8009828 + 802f4c0: f242 0164 movw r1, #8292 ; 0x2064 + 802f4c4: 68f8 ldr r0, [r7, #12] + 802f4c6: f7da f979 bl 80097bc lv_obj_set_flex_grow(cont, 1); - 802f55e: 2101 movs r1, #1 - 802f560: 68f8 ldr r0, [r7, #12] - 802f562: f7f1 feff bl 8021364 + 802f4ca: 2101 movs r1, #1 + 802f4cc: 68f8 ldr r0, [r7, #12] + 802f4ce: f7f1 feff bl 80212d0 break; - 802f566: bf00 nop + 802f4d2: bf00 nop } lv_group_t * g = lv_group_get_default(); - 802f568: f7d3 fac4 bl 8002af4 - 802f56c: 60b8 str r0, [r7, #8] + 802f4d4: f7d3 fad8 bl 8002a88 + 802f4d8: 60b8 str r0, [r7, #8] if(g) lv_group_add_obj(g, btnm); - 802f56e: 68bb ldr r3, [r7, #8] - 802f570: 2b00 cmp r3, #0 - 802f572: d003 beq.n 802f57c - 802f574: 6939 ldr r1, [r7, #16] - 802f576: 68b8 ldr r0, [r7, #8] - 802f578: f7d3 fac6 bl 8002b08 + 802f4da: 68bb ldr r3, [r7, #8] + 802f4dc: 2b00 cmp r3, #0 + 802f4de: d003 beq.n 802f4e8 + 802f4e0: 6939 ldr r1, [r7, #16] + 802f4e2: 68b8 ldr r0, [r7, #8] + 802f4e4: f7d3 fada bl 8002a9c lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_ROW); - 802f57c: 2100 movs r1, #0 - 802f57e: 68f8 ldr r0, [r7, #12] - 802f580: f7f1 fea8 bl 80212d4 + 802f4e8: 2100 movs r1, #0 + 802f4ea: 68f8 ldr r0, [r7, #12] + 802f4ec: f7f1 fea8 bl 8021240 lv_obj_set_scroll_snap_x(cont, LV_SCROLL_SNAP_CENTER); - 802f584: 2103 movs r1, #3 - 802f586: 68f8 ldr r0, [r7, #12] - 802f588: f7dc f970 bl 800b86c + 802f4f0: 2103 movs r1, #3 + 802f4f2: 68f8 ldr r0, [r7, #12] + 802f4f4: f7dc f984 bl 800b800 lv_obj_add_flag(cont, LV_OBJ_FLAG_SCROLL_ONE); - 802f58c: 2180 movs r1, #128 ; 0x80 - 802f58e: 68f8 ldr r0, [r7, #12] - 802f590: f7d7 f812 bl 80065b8 + 802f4f8: 2180 movs r1, #128 ; 0x80 + 802f4fa: 68f8 ldr r0, [r7, #12] + 802f4fc: f7d7 f826 bl 800654c lv_obj_clear_flag(cont, LV_OBJ_FLAG_SCROLL_ON_FOCUS); - 802f594: f44f 6180 mov.w r1, #1024 ; 0x400 - 802f598: 68f8 ldr r0, [r7, #12] - 802f59a: f7d7 f861 bl 8006660 + 802f500: f44f 6180 mov.w r1, #1024 ; 0x400 + 802f504: 68f8 ldr r0, [r7, #12] + 802f506: f7d7 f875 bl 80065f4 } - 802f59e: bf00 nop - 802f5a0: 3718 adds r7, #24 - 802f5a2: 46bd mov sp, r7 - 802f5a4: bd80 pop {r7, pc} - 802f5a6: bf00 nop - 802f5a8: 20001cd0 .word 0x20001cd0 - 802f5ac: 08047140 .word 0x08047140 - 802f5b0: 0802f6c5 .word 0x0802f6c5 - 802f5b4: 0802f6f9 .word 0x0802f6f9 - 802f5b8: 20001cd2 .word 0x20001cd2 + 802f50a: bf00 nop + 802f50c: 3718 adds r7, #24 + 802f50e: 46bd mov sp, r7 + 802f510: bd80 pop {r7, pc} + 802f512: bf00 nop + 802f514: 20001cd0 .word 0x20001cd0 + 802f518: 08047098 .word 0x08047098 + 802f51c: 0802f631 .word 0x0802f631 + 802f520: 0802f665 .word 0x0802f665 + 802f524: 20001cd2 .word 0x20001cd2 -0802f5bc : +0802f528 : static void lv_tabview_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802f5bc: b580 push {r7, lr} - 802f5be: b084 sub sp, #16 - 802f5c0: af00 add r7, sp, #0 - 802f5c2: 6078 str r0, [r7, #4] - 802f5c4: 6039 str r1, [r7, #0] + 802f528: b580 push {r7, lr} + 802f52a: b084 sub sp, #16 + 802f52c: af00 add r7, sp, #0 + 802f52e: 6078 str r0, [r7, #4] + 802f530: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_tabview_t * tabview = (lv_tabview_t *)obj; - 802f5c6: 683b ldr r3, [r7, #0] - 802f5c8: 60bb str r3, [r7, #8] + 802f532: 683b ldr r3, [r7, #0] + 802f534: 60bb str r3, [r7, #8] uint32_t i; if(tabview->tab_pos & LV_DIR_VER) { - 802f5ca: 68bb ldr r3, [r7, #8] - 802f5cc: f893 302c ldrb.w r3, [r3, #44] ; 0x2c - 802f5d0: f003 030c and.w r3, r3, #12 - 802f5d4: 2b00 cmp r3, #0 - 802f5d6: d01b beq.n 802f610 + 802f536: 68bb ldr r3, [r7, #8] + 802f538: f893 302c ldrb.w r3, [r3, #44] ; 0x2c + 802f53c: f003 030c and.w r3, r3, #12 + 802f540: 2b00 cmp r3, #0 + 802f542: d01b beq.n 802f57c for(i = 0; i < tabview->tab_cnt; i++) { - 802f5d8: 2300 movs r3, #0 - 802f5da: 60fb str r3, [r7, #12] - 802f5dc: e012 b.n 802f604 + 802f544: 2300 movs r3, #0 + 802f546: 60fb str r3, [r7, #12] + 802f548: e012 b.n 802f570 lv_mem_free(tabview->map[i]); - 802f5de: 68bb ldr r3, [r7, #8] - 802f5e0: 6a5a ldr r2, [r3, #36] ; 0x24 - 802f5e2: 68fb ldr r3, [r7, #12] - 802f5e4: 009b lsls r3, r3, #2 - 802f5e6: 4413 add r3, r2 - 802f5e8: 681b ldr r3, [r3, #0] - 802f5ea: 4618 mov r0, r3 - 802f5ec: f003 f976 bl 80328dc + 802f54a: 68bb ldr r3, [r7, #8] + 802f54c: 6a5a ldr r2, [r3, #36] ; 0x24 + 802f54e: 68fb ldr r3, [r7, #12] + 802f550: 009b lsls r3, r3, #2 + 802f552: 4413 add r3, r2 + 802f554: 681b ldr r3, [r3, #0] + 802f556: 4618 mov r0, r3 + 802f558: f003 f976 bl 8032848 tabview->map[i] = NULL; - 802f5f0: 68bb ldr r3, [r7, #8] - 802f5f2: 6a5a ldr r2, [r3, #36] ; 0x24 - 802f5f4: 68fb ldr r3, [r7, #12] - 802f5f6: 009b lsls r3, r3, #2 - 802f5f8: 4413 add r3, r2 - 802f5fa: 2200 movs r2, #0 - 802f5fc: 601a str r2, [r3, #0] + 802f55c: 68bb ldr r3, [r7, #8] + 802f55e: 6a5a ldr r2, [r3, #36] ; 0x24 + 802f560: 68fb ldr r3, [r7, #12] + 802f562: 009b lsls r3, r3, #2 + 802f564: 4413 add r3, r2 + 802f566: 2200 movs r2, #0 + 802f568: 601a str r2, [r3, #0] for(i = 0; i < tabview->tab_cnt; i++) { - 802f5fe: 68fb ldr r3, [r7, #12] - 802f600: 3301 adds r3, #1 - 802f602: 60fb str r3, [r7, #12] - 802f604: 68bb ldr r3, [r7, #8] - 802f606: 8d1b ldrh r3, [r3, #40] ; 0x28 - 802f608: 461a mov r2, r3 - 802f60a: 68fb ldr r3, [r7, #12] - 802f60c: 4293 cmp r3, r2 - 802f60e: d3e6 bcc.n 802f5de + 802f56a: 68fb ldr r3, [r7, #12] + 802f56c: 3301 adds r3, #1 + 802f56e: 60fb str r3, [r7, #12] + 802f570: 68bb ldr r3, [r7, #8] + 802f572: 8d1b ldrh r3, [r3, #40] ; 0x28 + 802f574: 461a mov r2, r3 + 802f576: 68fb ldr r3, [r7, #12] + 802f578: 4293 cmp r3, r2 + 802f57a: d3e6 bcc.n 802f54a } } if(tabview->tab_pos & LV_DIR_HOR) { - 802f610: 68bb ldr r3, [r7, #8] - 802f612: f893 302c ldrb.w r3, [r3, #44] ; 0x2c - 802f616: f003 0303 and.w r3, r3, #3 - 802f61a: 2b00 cmp r3, #0 - 802f61c: d01b beq.n 802f656 + 802f57c: 68bb ldr r3, [r7, #8] + 802f57e: f893 302c ldrb.w r3, [r3, #44] ; 0x2c + 802f582: f003 0303 and.w r3, r3, #3 + 802f586: 2b00 cmp r3, #0 + 802f588: d01b beq.n 802f5c2 for(i = 0; i < tabview->tab_cnt; i++) { - 802f61e: 2300 movs r3, #0 - 802f620: 60fb str r3, [r7, #12] - 802f622: e012 b.n 802f64a + 802f58a: 2300 movs r3, #0 + 802f58c: 60fb str r3, [r7, #12] + 802f58e: e012 b.n 802f5b6 lv_mem_free(tabview->map[i * 2]); - 802f624: 68bb ldr r3, [r7, #8] - 802f626: 6a5a ldr r2, [r3, #36] ; 0x24 - 802f628: 68fb ldr r3, [r7, #12] - 802f62a: 00db lsls r3, r3, #3 - 802f62c: 4413 add r3, r2 - 802f62e: 681b ldr r3, [r3, #0] - 802f630: 4618 mov r0, r3 - 802f632: f003 f953 bl 80328dc + 802f590: 68bb ldr r3, [r7, #8] + 802f592: 6a5a ldr r2, [r3, #36] ; 0x24 + 802f594: 68fb ldr r3, [r7, #12] + 802f596: 00db lsls r3, r3, #3 + 802f598: 4413 add r3, r2 + 802f59a: 681b ldr r3, [r3, #0] + 802f59c: 4618 mov r0, r3 + 802f59e: f003 f953 bl 8032848 tabview->map[i * 2] = NULL; - 802f636: 68bb ldr r3, [r7, #8] - 802f638: 6a5a ldr r2, [r3, #36] ; 0x24 - 802f63a: 68fb ldr r3, [r7, #12] - 802f63c: 00db lsls r3, r3, #3 - 802f63e: 4413 add r3, r2 - 802f640: 2200 movs r2, #0 - 802f642: 601a str r2, [r3, #0] + 802f5a2: 68bb ldr r3, [r7, #8] + 802f5a4: 6a5a ldr r2, [r3, #36] ; 0x24 + 802f5a6: 68fb ldr r3, [r7, #12] + 802f5a8: 00db lsls r3, r3, #3 + 802f5aa: 4413 add r3, r2 + 802f5ac: 2200 movs r2, #0 + 802f5ae: 601a str r2, [r3, #0] for(i = 0; i < tabview->tab_cnt; i++) { - 802f644: 68fb ldr r3, [r7, #12] - 802f646: 3301 adds r3, #1 - 802f648: 60fb str r3, [r7, #12] - 802f64a: 68bb ldr r3, [r7, #8] - 802f64c: 8d1b ldrh r3, [r3, #40] ; 0x28 - 802f64e: 461a mov r2, r3 - 802f650: 68fb ldr r3, [r7, #12] - 802f652: 4293 cmp r3, r2 - 802f654: d3e6 bcc.n 802f624 + 802f5b0: 68fb ldr r3, [r7, #12] + 802f5b2: 3301 adds r3, #1 + 802f5b4: 60fb str r3, [r7, #12] + 802f5b6: 68bb ldr r3, [r7, #8] + 802f5b8: 8d1b ldrh r3, [r3, #40] ; 0x28 + 802f5ba: 461a mov r2, r3 + 802f5bc: 68fb ldr r3, [r7, #12] + 802f5be: 4293 cmp r3, r2 + 802f5c0: d3e6 bcc.n 802f590 } } lv_mem_free(tabview->map); - 802f656: 68bb ldr r3, [r7, #8] - 802f658: 6a5b ldr r3, [r3, #36] ; 0x24 - 802f65a: 4618 mov r0, r3 - 802f65c: f003 f93e bl 80328dc + 802f5c2: 68bb ldr r3, [r7, #8] + 802f5c4: 6a5b ldr r3, [r3, #36] ; 0x24 + 802f5c6: 4618 mov r0, r3 + 802f5c8: f003 f93e bl 8032848 tabview->map = NULL; - 802f660: 68bb ldr r3, [r7, #8] - 802f662: 2200 movs r2, #0 - 802f664: 625a str r2, [r3, #36] ; 0x24 + 802f5cc: 68bb ldr r3, [r7, #8] + 802f5ce: 2200 movs r2, #0 + 802f5d0: 625a str r2, [r3, #36] ; 0x24 } - 802f666: bf00 nop - 802f668: 3710 adds r7, #16 - 802f66a: 46bd mov sp, r7 - 802f66c: bd80 pop {r7, pc} + 802f5d2: bf00 nop + 802f5d4: 3710 adds r7, #16 + 802f5d6: 46bd mov sp, r7 + 802f5d8: bd80 pop {r7, pc} ... -0802f670 : +0802f5dc : static void lv_tabview_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 802f670: b580 push {r7, lr} - 802f672: b084 sub sp, #16 - 802f674: af00 add r7, sp, #0 - 802f676: 6078 str r0, [r7, #4] - 802f678: 6039 str r1, [r7, #0] + 802f5dc: b580 push {r7, lr} + 802f5de: b084 sub sp, #16 + 802f5e0: af00 add r7, sp, #0 + 802f5e2: 6078 str r0, [r7, #4] + 802f5e4: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res = lv_obj_event_base(&lv_tabview_class, e); - 802f67a: 6839 ldr r1, [r7, #0] - 802f67c: 4810 ldr r0, [pc, #64] ; (802f6c0 ) - 802f67e: f7d2 ff41 bl 8002504 - 802f682: 4603 mov r3, r0 - 802f684: 73fb strb r3, [r7, #15] + 802f5e6: 6839 ldr r1, [r7, #0] + 802f5e8: 4810 ldr r0, [pc, #64] ; (802f62c ) + 802f5ea: f7d2 ff55 bl 8002498 + 802f5ee: 4603 mov r3, r0 + 802f5f0: 73fb strb r3, [r7, #15] if(res != LV_RES_OK) return; - 802f686: 7bfb ldrb r3, [r7, #15] - 802f688: 2b01 cmp r3, #1 - 802f68a: d115 bne.n 802f6b8 + 802f5f2: 7bfb ldrb r3, [r7, #15] + 802f5f4: 2b01 cmp r3, #1 + 802f5f6: d115 bne.n 802f624 lv_event_code_t code = lv_event_get_code(e); - 802f68c: 6838 ldr r0, [r7, #0] - 802f68e: f7d2 ff8d bl 80025ac - 802f692: 4603 mov r3, r0 - 802f694: 73bb strb r3, [r7, #14] + 802f5f8: 6838 ldr r0, [r7, #0] + 802f5fa: f7d2 ffa1 bl 8002540 + 802f5fe: 4603 mov r3, r0 + 802f600: 73bb strb r3, [r7, #14] lv_obj_t * target = lv_event_get_target(e); - 802f696: 6838 ldr r0, [r7, #0] - 802f698: f7d2 ff72 bl 8002580 - 802f69c: 60b8 str r0, [r7, #8] + 802f602: 6838 ldr r0, [r7, #0] + 802f604: f7d2 ff86 bl 8002514 + 802f608: 60b8 str r0, [r7, #8] if(code == LV_EVENT_SIZE_CHANGED) { - 802f69e: 7bbb ldrb r3, [r7, #14] - 802f6a0: 2b29 cmp r3, #41 ; 0x29 - 802f6a2: d10a bne.n 802f6ba + 802f60a: 7bbb ldrb r3, [r7, #14] + 802f60c: 2b29 cmp r3, #41 ; 0x29 + 802f60e: d10a bne.n 802f626 lv_tabview_set_act(target, lv_tabview_get_tab_act(target), LV_ANIM_OFF); - 802f6a4: 68b8 ldr r0, [r7, #8] - 802f6a6: f7ff fe92 bl 802f3ce - 802f6aa: 4603 mov r3, r0 - 802f6ac: 2200 movs r2, #0 - 802f6ae: 4619 mov r1, r3 - 802f6b0: 68b8 ldr r0, [r7, #8] - 802f6b2: f7ff fe23 bl 802f2fc - 802f6b6: e000 b.n 802f6ba + 802f610: 68b8 ldr r0, [r7, #8] + 802f612: f7ff fe92 bl 802f33a + 802f616: 4603 mov r3, r0 + 802f618: 2200 movs r2, #0 + 802f61a: 4619 mov r1, r3 + 802f61c: 68b8 ldr r0, [r7, #8] + 802f61e: f7ff fe23 bl 802f268 + 802f622: e000 b.n 802f626 if(res != LV_RES_OK) return; - 802f6b8: bf00 nop + 802f624: bf00 nop } } - 802f6ba: 3710 adds r7, #16 - 802f6bc: 46bd mov sp, r7 - 802f6be: bd80 pop {r7, pc} - 802f6c0: 0806d1bc .word 0x0806d1bc + 802f626: 3710 adds r7, #16 + 802f628: 46bd mov sp, r7 + 802f62a: bd80 pop {r7, pc} + 802f62c: 0806d114 .word 0x0806d114 -0802f6c4 : +0802f630 : static void btns_value_changed_event_cb(lv_event_t * e) { - 802f6c4: b580 push {r7, lr} - 802f6c6: b086 sub sp, #24 - 802f6c8: af00 add r7, sp, #0 - 802f6ca: 6078 str r0, [r7, #4] + 802f630: b580 push {r7, lr} + 802f632: b086 sub sp, #24 + 802f634: af00 add r7, sp, #0 + 802f636: 6078 str r0, [r7, #4] lv_obj_t * btns = lv_event_get_target(e); - 802f6cc: 6878 ldr r0, [r7, #4] - 802f6ce: f7d2 ff57 bl 8002580 - 802f6d2: 6178 str r0, [r7, #20] + 802f638: 6878 ldr r0, [r7, #4] + 802f63a: f7d2 ff6b bl 8002514 + 802f63e: 6178 str r0, [r7, #20] lv_obj_t * tv = lv_obj_get_parent(btns); - 802f6d4: 6978 ldr r0, [r7, #20] - 802f6d6: f7e0 f819 bl 800f70c - 802f6da: 6138 str r0, [r7, #16] + 802f640: 6978 ldr r0, [r7, #20] + 802f642: f7e0 f819 bl 800f678 + 802f646: 6138 str r0, [r7, #16] uint32_t id = lv_btnmatrix_get_selected_btn(btns); - 802f6dc: 6978 ldr r0, [r7, #20] - 802f6de: f00a fac4 bl 8039c6a - 802f6e2: 4603 mov r3, r0 - 802f6e4: 60fb str r3, [r7, #12] + 802f648: 6978 ldr r0, [r7, #20] + 802f64a: f00a fac4 bl 8039bd6 + 802f64e: 4603 mov r3, r0 + 802f650: 60fb str r3, [r7, #12] lv_tabview_set_act(tv, id, LV_ANIM_ON); - 802f6e6: 2201 movs r2, #1 - 802f6e8: 68f9 ldr r1, [r7, #12] - 802f6ea: 6938 ldr r0, [r7, #16] - 802f6ec: f7ff fe06 bl 802f2fc + 802f652: 2201 movs r2, #1 + 802f654: 68f9 ldr r1, [r7, #12] + 802f656: 6938 ldr r0, [r7, #16] + 802f658: f7ff fe06 bl 802f268 } - 802f6f0: bf00 nop - 802f6f2: 3718 adds r7, #24 - 802f6f4: 46bd mov sp, r7 - 802f6f6: bd80 pop {r7, pc} + 802f65c: bf00 nop + 802f65e: 3718 adds r7, #24 + 802f660: 46bd mov sp, r7 + 802f662: bd80 pop {r7, pc} -0802f6f8 : +0802f664 : static void cont_scroll_end_event_cb(lv_event_t * e) { - 802f6f8: b590 push {r4, r7, lr} - 802f6fa: b089 sub sp, #36 ; 0x24 - 802f6fc: af00 add r7, sp, #0 - 802f6fe: 6078 str r0, [r7, #4] + 802f664: b590 push {r4, r7, lr} + 802f666: b089 sub sp, #36 ; 0x24 + 802f668: af00 add r7, sp, #0 + 802f66a: 6078 str r0, [r7, #4] lv_obj_t * cont = lv_event_get_target(e); - 802f700: 6878 ldr r0, [r7, #4] - 802f702: f7d2 ff3d bl 8002580 - 802f706: 61b8 str r0, [r7, #24] + 802f66c: 6878 ldr r0, [r7, #4] + 802f66e: f7d2 ff51 bl 8002514 + 802f672: 61b8 str r0, [r7, #24] lv_event_code_t code = lv_event_get_code(e); - 802f708: 6878 ldr r0, [r7, #4] - 802f70a: f7d2 ff4f bl 80025ac - 802f70e: 4603 mov r3, r0 - 802f710: 75fb strb r3, [r7, #23] + 802f674: 6878 ldr r0, [r7, #4] + 802f676: f7d2 ff63 bl 8002540 + 802f67a: 4603 mov r3, r0 + 802f67c: 75fb strb r3, [r7, #23] lv_obj_t * tv = lv_obj_get_parent(cont); - 802f712: 69b8 ldr r0, [r7, #24] - 802f714: f7df fffa bl 800f70c - 802f718: 6138 str r0, [r7, #16] + 802f67e: 69b8 ldr r0, [r7, #24] + 802f680: f7df fffa bl 800f678 + 802f684: 6138 str r0, [r7, #16] if(code == LV_EVENT_LAYOUT_CHANGED) { - 802f71a: 7dfb ldrb r3, [r7, #23] - 802f71c: 2b2b cmp r3, #43 ; 0x2b - 802f71e: d109 bne.n 802f734 + 802f686: 7dfb ldrb r3, [r7, #23] + 802f688: 2b2b cmp r3, #43 ; 0x2b + 802f68a: d109 bne.n 802f6a0 lv_tabview_set_act(tv, lv_tabview_get_tab_act(tv), LV_ANIM_OFF); - 802f720: 6938 ldr r0, [r7, #16] - 802f722: f7ff fe54 bl 802f3ce - 802f726: 4603 mov r3, r0 - 802f728: 2200 movs r2, #0 - 802f72a: 4619 mov r1, r3 - 802f72c: 6938 ldr r0, [r7, #16] - 802f72e: f7ff fde5 bl 802f2fc + 802f68c: 6938 ldr r0, [r7, #16] + 802f68e: f7ff fe54 bl 802f33a + 802f692: 4603 mov r3, r0 + 802f694: 2200 movs r2, #0 + 802f696: 4619 mov r1, r3 + 802f698: 6938 ldr r0, [r7, #16] + 802f69a: f7ff fde5 bl 802f268 if(t != lv_tabview_get_tab_act(tv)) new_tab = true; lv_tabview_set_act(tv, t, LV_ANIM_ON); if(new_tab) lv_event_send(tv, LV_EVENT_VALUE_CHANGED, NULL); } } - 802f732: e054 b.n 802f7de + 802f69e: e054 b.n 802f74a else if(code == LV_EVENT_SCROLL_END) { - 802f734: 7dfb ldrb r3, [r7, #23] - 802f736: 2b0a cmp r3, #10 - 802f738: d151 bne.n 802f7de + 802f6a0: 7dfb ldrb r3, [r7, #23] + 802f6a2: 2b0a cmp r3, #10 + 802f6a4: d151 bne.n 802f74a lv_obj_get_scroll_end(cont, &p); - 802f73a: f107 0308 add.w r3, r7, #8 - 802f73e: 4619 mov r1, r3 - 802f740: 69b8 ldr r0, [r7, #24] - 802f742: f7dc fb1d bl 800bd80 + 802f6a6: f107 0308 add.w r3, r7, #8 + 802f6aa: 4619 mov r1, r3 + 802f6ac: 69b8 ldr r0, [r7, #24] + 802f6ae: f7dc fb31 bl 800bd14 lv_coord_t w = lv_obj_get_content_width(cont); - 802f746: 69b8 ldr r0, [r7, #24] - 802f748: f7da fd1a bl 800a180 - 802f74c: 4603 mov r3, r0 - 802f74e: 81fb strh r3, [r7, #14] + 802f6b2: 69b8 ldr r0, [r7, #24] + 802f6b4: f7da fd2e bl 800a114 + 802f6b8: 4603 mov r3, r0 + 802f6ba: 81fb strh r3, [r7, #14] if(lv_obj_get_style_base_dir(tv, LV_PART_MAIN) == LV_BASE_DIR_RTL) t = -(p.x - w / 2) / w; - 802f750: 2100 movs r1, #0 - 802f752: 6938 ldr r0, [r7, #16] - 802f754: f7ff fdbf bl 802f2d6 - 802f758: 4603 mov r3, r0 - 802f75a: 2b01 cmp r3, #1 - 802f75c: d10f bne.n 802f77e - 802f75e: f9b7 300e ldrsh.w r3, [r7, #14] - 802f762: 0fda lsrs r2, r3, #31 - 802f764: 4413 add r3, r2 - 802f766: 105b asrs r3, r3, #1 - 802f768: b21b sxth r3, r3 - 802f76a: 461a mov r2, r3 - 802f76c: f9b7 3008 ldrsh.w r3, [r7, #8] - 802f770: 1ad2 subs r2, r2, r3 - 802f772: f9b7 300e ldrsh.w r3, [r7, #14] - 802f776: fb92 f3f3 sdiv r3, r2, r3 - 802f77a: 83fb strh r3, [r7, #30] - 802f77c: e00e b.n 802f79c + 802f6bc: 2100 movs r1, #0 + 802f6be: 6938 ldr r0, [r7, #16] + 802f6c0: f7ff fdbf bl 802f242 + 802f6c4: 4603 mov r3, r0 + 802f6c6: 2b01 cmp r3, #1 + 802f6c8: d10f bne.n 802f6ea + 802f6ca: f9b7 300e ldrsh.w r3, [r7, #14] + 802f6ce: 0fda lsrs r2, r3, #31 + 802f6d0: 4413 add r3, r2 + 802f6d2: 105b asrs r3, r3, #1 + 802f6d4: b21b sxth r3, r3 + 802f6d6: 461a mov r2, r3 + 802f6d8: f9b7 3008 ldrsh.w r3, [r7, #8] + 802f6dc: 1ad2 subs r2, r2, r3 + 802f6de: f9b7 300e ldrsh.w r3, [r7, #14] + 802f6e2: fb92 f3f3 sdiv r3, r2, r3 + 802f6e6: 83fb strh r3, [r7, #30] + 802f6e8: e00e b.n 802f708 else t = (p.x + w / 2) / w; - 802f77e: f9b7 3008 ldrsh.w r3, [r7, #8] - 802f782: 4619 mov r1, r3 - 802f784: f9b7 300e ldrsh.w r3, [r7, #14] - 802f788: 0fda lsrs r2, r3, #31 - 802f78a: 4413 add r3, r2 - 802f78c: 105b asrs r3, r3, #1 - 802f78e: b21b sxth r3, r3 - 802f790: 18ca adds r2, r1, r3 - 802f792: f9b7 300e ldrsh.w r3, [r7, #14] - 802f796: fb92 f3f3 sdiv r3, r2, r3 - 802f79a: 83fb strh r3, [r7, #30] + 802f6ea: f9b7 3008 ldrsh.w r3, [r7, #8] + 802f6ee: 4619 mov r1, r3 + 802f6f0: f9b7 300e ldrsh.w r3, [r7, #14] + 802f6f4: 0fda lsrs r2, r3, #31 + 802f6f6: 4413 add r3, r2 + 802f6f8: 105b asrs r3, r3, #1 + 802f6fa: b21b sxth r3, r3 + 802f6fc: 18ca adds r2, r1, r3 + 802f6fe: f9b7 300e ldrsh.w r3, [r7, #14] + 802f702: fb92 f3f3 sdiv r3, r2, r3 + 802f706: 83fb strh r3, [r7, #30] if(t < 0) t = 0; - 802f79c: f9b7 301e ldrsh.w r3, [r7, #30] - 802f7a0: 2b00 cmp r3, #0 - 802f7a2: da01 bge.n 802f7a8 - 802f7a4: 2300 movs r3, #0 - 802f7a6: 83fb strh r3, [r7, #30] + 802f708: f9b7 301e ldrsh.w r3, [r7, #30] + 802f70c: 2b00 cmp r3, #0 + 802f70e: da01 bge.n 802f714 + 802f710: 2300 movs r3, #0 + 802f712: 83fb strh r3, [r7, #30] bool new_tab = false; - 802f7a8: 2300 movs r3, #0 - 802f7aa: 777b strb r3, [r7, #29] + 802f714: 2300 movs r3, #0 + 802f716: 777b strb r3, [r7, #29] if(t != lv_tabview_get_tab_act(tv)) new_tab = true; - 802f7ac: f9b7 401e ldrsh.w r4, [r7, #30] - 802f7b0: 6938 ldr r0, [r7, #16] - 802f7b2: f7ff fe0c bl 802f3ce - 802f7b6: 4603 mov r3, r0 - 802f7b8: 429c cmp r4, r3 - 802f7ba: d001 beq.n 802f7c0 - 802f7bc: 2301 movs r3, #1 - 802f7be: 777b strb r3, [r7, #29] + 802f718: f9b7 401e ldrsh.w r4, [r7, #30] + 802f71c: 6938 ldr r0, [r7, #16] + 802f71e: f7ff fe0c bl 802f33a + 802f722: 4603 mov r3, r0 + 802f724: 429c cmp r4, r3 + 802f726: d001 beq.n 802f72c + 802f728: 2301 movs r3, #1 + 802f72a: 777b strb r3, [r7, #29] lv_tabview_set_act(tv, t, LV_ANIM_ON); - 802f7c0: f9b7 301e ldrsh.w r3, [r7, #30] - 802f7c4: 2201 movs r2, #1 - 802f7c6: 4619 mov r1, r3 - 802f7c8: 6938 ldr r0, [r7, #16] - 802f7ca: f7ff fd97 bl 802f2fc + 802f72c: f9b7 301e ldrsh.w r3, [r7, #30] + 802f730: 2201 movs r2, #1 + 802f732: 4619 mov r1, r3 + 802f734: 6938 ldr r0, [r7, #16] + 802f736: f7ff fd97 bl 802f268 if(new_tab) lv_event_send(tv, LV_EVENT_VALUE_CHANGED, NULL); - 802f7ce: 7f7b ldrb r3, [r7, #29] - 802f7d0: 2b00 cmp r3, #0 - 802f7d2: d004 beq.n 802f7de - 802f7d4: 2200 movs r2, #0 - 802f7d6: 211c movs r1, #28 - 802f7d8: 6938 ldr r0, [r7, #16] - 802f7da: f7d2 fe51 bl 8002480 + 802f73a: 7f7b ldrb r3, [r7, #29] + 802f73c: 2b00 cmp r3, #0 + 802f73e: d004 beq.n 802f74a + 802f740: 2200 movs r2, #0 + 802f742: 211c movs r1, #28 + 802f744: 6938 ldr r0, [r7, #16] + 802f746: f7d2 fe65 bl 8002414 } - 802f7de: bf00 nop - 802f7e0: 3724 adds r7, #36 ; 0x24 - 802f7e2: 46bd mov sp, r7 - 802f7e4: bd90 pop {r4, r7, pc} + 802f74a: bf00 nop + 802f74c: 3724 adds r7, #36 ; 0x24 + 802f74e: 46bd mov sp, r7 + 802f750: bd90 pop {r4, r7, pc} ... -0802f7e8 : +0802f754 : /********************** * STATIC FUNCTIONS **********************/ static void lv_tileview_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802f7e8: b580 push {r7, lr} - 802f7ea: b082 sub sp, #8 - 802f7ec: af00 add r7, sp, #0 - 802f7ee: 6078 str r0, [r7, #4] - 802f7f0: 6039 str r1, [r7, #0] + 802f754: b580 push {r7, lr} + 802f756: b082 sub sp, #8 + 802f758: af00 add r7, sp, #0 + 802f75a: 6078 str r0, [r7, #4] + 802f75c: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_obj_set_size(obj, LV_PCT(100), LV_PCT(100)); - 802f7f2: f242 0264 movw r2, #8292 ; 0x2064 - 802f7f6: f242 0164 movw r1, #8292 ; 0x2064 - 802f7fa: 6838 ldr r0, [r7, #0] - 802f7fc: f7d9 ffd6 bl 80097ac + 802f75e: f242 0264 movw r2, #8292 ; 0x2064 + 802f762: f242 0164 movw r1, #8292 ; 0x2064 + 802f766: 6838 ldr r0, [r7, #0] + 802f768: f7d9 ffea bl 8009740 lv_obj_add_event_cb(obj, tileview_event_cb, LV_EVENT_ALL, NULL); - 802f800: 2300 movs r3, #0 - 802f802: 2200 movs r2, #0 - 802f804: 4909 ldr r1, [pc, #36] ; (802f82c ) - 802f806: 6838 ldr r0, [r7, #0] - 802f808: f7d2 ff1a bl 8002640 + 802f76c: 2300 movs r3, #0 + 802f76e: 2200 movs r2, #0 + 802f770: 4909 ldr r1, [pc, #36] ; (802f798 ) + 802f772: 6838 ldr r0, [r7, #0] + 802f774: f7d2 ff2e bl 80025d4 lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ONE); - 802f80c: 2180 movs r1, #128 ; 0x80 - 802f80e: 6838 ldr r0, [r7, #0] - 802f810: f7d6 fed2 bl 80065b8 + 802f778: 2180 movs r1, #128 ; 0x80 + 802f77a: 6838 ldr r0, [r7, #0] + 802f77c: f7d6 fee6 bl 800654c lv_obj_set_scroll_snap_x(obj, LV_SCROLL_SNAP_CENTER); - 802f814: 2103 movs r1, #3 - 802f816: 6838 ldr r0, [r7, #0] - 802f818: f7dc f828 bl 800b86c + 802f780: 2103 movs r1, #3 + 802f782: 6838 ldr r0, [r7, #0] + 802f784: f7dc f83c bl 800b800 lv_obj_set_scroll_snap_y(obj, LV_SCROLL_SNAP_CENTER); - 802f81c: 2103 movs r1, #3 - 802f81e: 6838 ldr r0, [r7, #0] - 802f820: f7dc f83b bl 800b89a + 802f788: 2103 movs r1, #3 + 802f78a: 6838 ldr r0, [r7, #0] + 802f78c: f7dc f84f bl 800b82e } - 802f824: bf00 nop - 802f826: 3708 adds r7, #8 - 802f828: 46bd mov sp, r7 - 802f82a: bd80 pop {r7, pc} - 802f82c: 0802f8d1 .word 0x0802f8d1 + 802f790: bf00 nop + 802f792: 3708 adds r7, #8 + 802f794: 46bd mov sp, r7 + 802f796: bd80 pop {r7, pc} + 802f798: 0802f83d .word 0x0802f83d -0802f830 : +0802f79c : static void lv_tileview_tile_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802f830: b590 push {r4, r7, lr} - 802f832: b085 sub sp, #20 - 802f834: af00 add r7, sp, #0 - 802f836: 6078 str r0, [r7, #4] - 802f838: 6039 str r1, [r7, #0] + 802f79c: b590 push {r4, r7, lr} + 802f79e: b085 sub sp, #20 + 802f7a0: af00 add r7, sp, #0 + 802f7a2: 6078 str r0, [r7, #4] + 802f7a4: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_obj_t * parent = lv_obj_get_parent(obj); - 802f83a: 6838 ldr r0, [r7, #0] - 802f83c: f7df ff66 bl 800f70c - 802f840: 60f8 str r0, [r7, #12] + 802f7a6: 6838 ldr r0, [r7, #0] + 802f7a8: f7df ff66 bl 800f678 + 802f7ac: 60f8 str r0, [r7, #12] lv_obj_set_size(obj, LV_PCT(100), LV_PCT(100)); - 802f842: f242 0264 movw r2, #8292 ; 0x2064 - 802f846: f242 0164 movw r1, #8292 ; 0x2064 - 802f84a: 6838 ldr r0, [r7, #0] - 802f84c: f7d9 ffae bl 80097ac + 802f7ae: f242 0264 movw r2, #8292 ; 0x2064 + 802f7b2: f242 0164 movw r1, #8292 ; 0x2064 + 802f7b6: 6838 ldr r0, [r7, #0] + 802f7b8: f7d9 ffc2 bl 8009740 lv_obj_update_layout(obj); /*Be sure the size is correct*/ - 802f850: 6838 ldr r0, [r7, #0] - 802f852: f7da f873 bl 800993c + 802f7bc: 6838 ldr r0, [r7, #0] + 802f7be: f7da f887 bl 80098d0 lv_obj_set_pos(obj, create_col_id * lv_obj_get_content_width(parent), - 802f856: 68f8 ldr r0, [r7, #12] - 802f858: f7da fc92 bl 800a180 - 802f85c: 4603 mov r3, r0 - 802f85e: b29b uxth r3, r3 - 802f860: 4a18 ldr r2, [pc, #96] ; (802f8c4 ) - 802f862: 6812 ldr r2, [r2, #0] - 802f864: b292 uxth r2, r2 - 802f866: fb02 f303 mul.w r3, r2, r3 - 802f86a: b29b uxth r3, r3 - 802f86c: b21c sxth r4, r3 + 802f7c2: 68f8 ldr r0, [r7, #12] + 802f7c4: f7da fca6 bl 800a114 + 802f7c8: 4603 mov r3, r0 + 802f7ca: b29b uxth r3, r3 + 802f7cc: 4a18 ldr r2, [pc, #96] ; (802f830 ) + 802f7ce: 6812 ldr r2, [r2, #0] + 802f7d0: b292 uxth r2, r2 + 802f7d2: fb02 f303 mul.w r3, r2, r3 + 802f7d6: b29b uxth r3, r3 + 802f7d8: b21c sxth r4, r3 create_row_id * lv_obj_get_content_height(parent)); - 802f86e: 68f8 ldr r0, [r7, #12] - 802f870: f7da fcb1 bl 800a1d6 - 802f874: 4603 mov r3, r0 + 802f7da: 68f8 ldr r0, [r7, #12] + 802f7dc: f7da fcc5 bl 800a16a + 802f7e0: 4603 mov r3, r0 lv_obj_set_pos(obj, create_col_id * lv_obj_get_content_width(parent), - 802f876: b29b uxth r3, r3 - 802f878: 4a13 ldr r2, [pc, #76] ; (802f8c8 ) - 802f87a: 6812 ldr r2, [r2, #0] - 802f87c: b292 uxth r2, r2 - 802f87e: fb02 f303 mul.w r3, r2, r3 - 802f882: b29b uxth r3, r3 - 802f884: b21b sxth r3, r3 - 802f886: 461a mov r2, r3 - 802f888: 4621 mov r1, r4 - 802f88a: 6838 ldr r0, [r7, #0] - 802f88c: f7d9 fcf0 bl 8009270 + 802f7e2: b29b uxth r3, r3 + 802f7e4: 4a13 ldr r2, [pc, #76] ; (802f834 ) + 802f7e6: 6812 ldr r2, [r2, #0] + 802f7e8: b292 uxth r2, r2 + 802f7ea: fb02 f303 mul.w r3, r2, r3 + 802f7ee: b29b uxth r3, r3 + 802f7f0: b21b sxth r3, r3 + 802f7f2: 461a mov r2, r3 + 802f7f4: 4621 mov r1, r4 + 802f7f6: 6838 ldr r0, [r7, #0] + 802f7f8: f7d9 fd04 bl 8009204 lv_tileview_tile_t * tile = (lv_tileview_tile_t *)obj; - 802f890: 683b ldr r3, [r7, #0] - 802f892: 60bb str r3, [r7, #8] + 802f7fc: 683b ldr r3, [r7, #0] + 802f7fe: 60bb str r3, [r7, #8] tile->dir = create_dir; - 802f894: 4b0d ldr r3, [pc, #52] ; (802f8cc ) - 802f896: 781a ldrb r2, [r3, #0] - 802f898: 68bb ldr r3, [r7, #8] - 802f89a: f883 2024 strb.w r2, [r3, #36] ; 0x24 + 802f800: 4b0d ldr r3, [pc, #52] ; (802f838 ) + 802f802: 781a ldrb r2, [r3, #0] + 802f804: 68bb ldr r3, [r7, #8] + 802f806: f883 2024 strb.w r2, [r3, #36] ; 0x24 if(create_col_id == 0 && create_row_id == 0) { - 802f89e: 4b09 ldr r3, [pc, #36] ; (802f8c4 ) - 802f8a0: 681b ldr r3, [r3, #0] - 802f8a2: 2b00 cmp r3, #0 - 802f8a4: d109 bne.n 802f8ba - 802f8a6: 4b08 ldr r3, [pc, #32] ; (802f8c8 ) - 802f8a8: 681b ldr r3, [r3, #0] - 802f8aa: 2b00 cmp r3, #0 - 802f8ac: d105 bne.n 802f8ba + 802f80a: 4b09 ldr r3, [pc, #36] ; (802f830 ) + 802f80c: 681b ldr r3, [r3, #0] + 802f80e: 2b00 cmp r3, #0 + 802f810: d109 bne.n 802f826 + 802f812: 4b08 ldr r3, [pc, #32] ; (802f834 ) + 802f814: 681b ldr r3, [r3, #0] + 802f816: 2b00 cmp r3, #0 + 802f818: d105 bne.n 802f826 lv_obj_set_scroll_dir(parent, create_dir); - 802f8ae: 4b07 ldr r3, [pc, #28] ; (802f8cc ) - 802f8b0: 781b ldrb r3, [r3, #0] - 802f8b2: 4619 mov r1, r3 - 802f8b4: 68f8 ldr r0, [r7, #12] - 802f8b6: f7db ffb8 bl 800b82a + 802f81a: 4b07 ldr r3, [pc, #28] ; (802f838 ) + 802f81c: 781b ldrb r3, [r3, #0] + 802f81e: 4619 mov r1, r3 + 802f820: 68f8 ldr r0, [r7, #12] + 802f822: f7db ffcc bl 800b7be } } - 802f8ba: bf00 nop - 802f8bc: 3714 adds r7, #20 - 802f8be: 46bd mov sp, r7 - 802f8c0: bd90 pop {r4, r7, pc} - 802f8c2: bf00 nop - 802f8c4: 20001cd8 .word 0x20001cd8 - 802f8c8: 20001cdc .word 0x20001cdc - 802f8cc: 20001cd4 .word 0x20001cd4 + 802f826: bf00 nop + 802f828: 3714 adds r7, #20 + 802f82a: 46bd mov sp, r7 + 802f82c: bd90 pop {r4, r7, pc} + 802f82e: bf00 nop + 802f830: 20001cd8 .word 0x20001cd8 + 802f834: 20001cdc .word 0x20001cdc + 802f838: 20001cd4 .word 0x20001cd4 -0802f8d0 : +0802f83c : static void tileview_event_cb(lv_event_t * e) { - 802f8d0: b580 push {r7, lr} - 802f8d2: b08e sub sp, #56 ; 0x38 - 802f8d4: af00 add r7, sp, #0 - 802f8d6: 6078 str r0, [r7, #4] + 802f83c: b580 push {r7, lr} + 802f83e: b08e sub sp, #56 ; 0x38 + 802f840: af00 add r7, sp, #0 + 802f842: 6078 str r0, [r7, #4] lv_event_code_t code = lv_event_get_code(e); - 802f8d8: 6878 ldr r0, [r7, #4] - 802f8da: f7d2 fe67 bl 80025ac - 802f8de: 4603 mov r3, r0 - 802f8e0: f887 302f strb.w r3, [r7, #47] ; 0x2f + 802f844: 6878 ldr r0, [r7, #4] + 802f846: f7d2 fe7b bl 8002540 + 802f84a: 4603 mov r3, r0 + 802f84c: f887 302f strb.w r3, [r7, #47] ; 0x2f lv_obj_t * obj = lv_event_get_target(e); - 802f8e4: 6878 ldr r0, [r7, #4] - 802f8e6: f7d2 fe4b bl 8002580 - 802f8ea: 62b8 str r0, [r7, #40] ; 0x28 + 802f850: 6878 ldr r0, [r7, #4] + 802f852: f7d2 fe5f bl 8002514 + 802f856: 62b8 str r0, [r7, #40] ; 0x28 lv_tileview_t * tv = (lv_tileview_t *) obj; - 802f8ec: 6abb ldr r3, [r7, #40] ; 0x28 - 802f8ee: 627b str r3, [r7, #36] ; 0x24 + 802f858: 6abb ldr r3, [r7, #40] ; 0x28 + 802f85a: 627b str r3, [r7, #36] ; 0x24 if(code == LV_EVENT_SCROLL_END) { - 802f8f0: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 802f8f4: 2b0a cmp r3, #10 - 802f8f6: d17b bne.n 802f9f0 + 802f85c: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 802f860: 2b0a cmp r3, #10 + 802f862: d17b bne.n 802f95c lv_coord_t w = lv_obj_get_content_width(obj); - 802f8f8: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802f8fa: f7da fc41 bl 800a180 - 802f8fe: 4603 mov r3, r0 - 802f900: 847b strh r3, [r7, #34] ; 0x22 + 802f864: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802f866: f7da fc55 bl 800a114 + 802f86a: 4603 mov r3, r0 + 802f86c: 847b strh r3, [r7, #34] ; 0x22 lv_coord_t h = lv_obj_get_content_height(obj); - 802f902: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802f904: f7da fc67 bl 800a1d6 - 802f908: 4603 mov r3, r0 - 802f90a: 843b strh r3, [r7, #32] + 802f86e: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802f870: f7da fc7b bl 800a16a + 802f874: 4603 mov r3, r0 + 802f876: 843b strh r3, [r7, #32] lv_point_t scroll_end; lv_obj_get_scroll_end(obj, &scroll_end); - 802f90c: f107 0308 add.w r3, r7, #8 - 802f910: 4619 mov r1, r3 - 802f912: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802f914: f7dc fa34 bl 800bd80 + 802f878: f107 0308 add.w r3, r7, #8 + 802f87c: 4619 mov r1, r3 + 802f87e: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802f880: f7dc fa48 bl 800bd14 lv_coord_t left = scroll_end.x; - 802f918: 893b ldrh r3, [r7, #8] - 802f91a: 83fb strh r3, [r7, #30] + 802f884: 893b ldrh r3, [r7, #8] + 802f886: 83fb strh r3, [r7, #30] lv_coord_t top = scroll_end.y; - 802f91c: 897b ldrh r3, [r7, #10] - 802f91e: 83bb strh r3, [r7, #28] + 802f888: 897b ldrh r3, [r7, #10] + 802f88a: 83bb strh r3, [r7, #28] lv_coord_t tx = ((left + (w / 2)) / w) * w; - 802f920: f9b7 201e ldrsh.w r2, [r7, #30] - 802f924: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 802f928: 0fd9 lsrs r1, r3, #31 - 802f92a: 440b add r3, r1 - 802f92c: 105b asrs r3, r3, #1 - 802f92e: b21b sxth r3, r3 - 802f930: 441a add r2, r3 - 802f932: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 802f936: fb92 f3f3 sdiv r3, r2, r3 - 802f93a: b29b uxth r3, r3 - 802f93c: 8c7a ldrh r2, [r7, #34] ; 0x22 - 802f93e: fb02 f303 mul.w r3, r2, r3 - 802f942: b29b uxth r3, r3 - 802f944: 837b strh r3, [r7, #26] + 802f88c: f9b7 201e ldrsh.w r2, [r7, #30] + 802f890: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 802f894: 0fd9 lsrs r1, r3, #31 + 802f896: 440b add r3, r1 + 802f898: 105b asrs r3, r3, #1 + 802f89a: b21b sxth r3, r3 + 802f89c: 441a add r2, r3 + 802f89e: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 802f8a2: fb92 f3f3 sdiv r3, r2, r3 + 802f8a6: b29b uxth r3, r3 + 802f8a8: 8c7a ldrh r2, [r7, #34] ; 0x22 + 802f8aa: fb02 f303 mul.w r3, r2, r3 + 802f8ae: b29b uxth r3, r3 + 802f8b0: 837b strh r3, [r7, #26] lv_coord_t ty = ((top + (h / 2)) / h) * h; - 802f946: f9b7 201c ldrsh.w r2, [r7, #28] - 802f94a: f9b7 3020 ldrsh.w r3, [r7, #32] - 802f94e: 0fd9 lsrs r1, r3, #31 - 802f950: 440b add r3, r1 - 802f952: 105b asrs r3, r3, #1 - 802f954: b21b sxth r3, r3 - 802f956: 441a add r2, r3 - 802f958: f9b7 3020 ldrsh.w r3, [r7, #32] - 802f95c: fb92 f3f3 sdiv r3, r2, r3 - 802f960: b29b uxth r3, r3 - 802f962: 8c3a ldrh r2, [r7, #32] - 802f964: fb02 f303 mul.w r3, r2, r3 - 802f968: b29b uxth r3, r3 - 802f96a: 833b strh r3, [r7, #24] + 802f8b2: f9b7 201c ldrsh.w r2, [r7, #28] + 802f8b6: f9b7 3020 ldrsh.w r3, [r7, #32] + 802f8ba: 0fd9 lsrs r1, r3, #31 + 802f8bc: 440b add r3, r1 + 802f8be: 105b asrs r3, r3, #1 + 802f8c0: b21b sxth r3, r3 + 802f8c2: 441a add r2, r3 + 802f8c4: f9b7 3020 ldrsh.w r3, [r7, #32] + 802f8c8: fb92 f3f3 sdiv r3, r2, r3 + 802f8cc: b29b uxth r3, r3 + 802f8ce: 8c3a ldrh r2, [r7, #32] + 802f8d0: fb02 f303 mul.w r3, r2, r3 + 802f8d4: b29b uxth r3, r3 + 802f8d6: 833b strh r3, [r7, #24] lv_dir_t dir = LV_DIR_ALL; - 802f96c: 230f movs r3, #15 - 802f96e: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 802f8d8: 230f movs r3, #15 + 802f8da: f887 3037 strb.w r3, [r7, #55] ; 0x37 uint32_t i; for(i = 0; i < lv_obj_get_child_cnt(obj); i++) { - 802f972: 2300 movs r3, #0 - 802f974: 633b str r3, [r7, #48] ; 0x30 - 802f976: e02e b.n 802f9d6 + 802f8de: 2300 movs r3, #0 + 802f8e0: 633b str r3, [r7, #48] ; 0x30 + 802f8e2: e02e b.n 802f942 lv_obj_t * tile_obj = lv_obj_get_child(obj, i); - 802f978: 6b3b ldr r3, [r7, #48] ; 0x30 - 802f97a: 4619 mov r1, r3 - 802f97c: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802f97e: f7df fed5 bl 800f72c - 802f982: 6178 str r0, [r7, #20] + 802f8e4: 6b3b ldr r3, [r7, #48] ; 0x30 + 802f8e6: 4619 mov r1, r3 + 802f8e8: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802f8ea: f7df fed5 bl 800f698 + 802f8ee: 6178 str r0, [r7, #20] lv_coord_t x = lv_obj_get_x(tile_obj); - 802f984: 6978 ldr r0, [r7, #20] - 802f986: f7da fb50 bl 800a02a - 802f98a: 4603 mov r3, r0 - 802f98c: 827b strh r3, [r7, #18] + 802f8f0: 6978 ldr r0, [r7, #20] + 802f8f2: f7da fb64 bl 8009fbe + 802f8f6: 4603 mov r3, r0 + 802f8f8: 827b strh r3, [r7, #18] lv_coord_t y = lv_obj_get_y(tile_obj); - 802f98e: 6978 ldr r0, [r7, #20] - 802f990: f7da fb88 bl 800a0a4 - 802f994: 4603 mov r3, r0 - 802f996: 823b strh r3, [r7, #16] + 802f8fa: 6978 ldr r0, [r7, #20] + 802f8fc: f7da fb9c bl 800a038 + 802f900: 4603 mov r3, r0 + 802f902: 823b strh r3, [r7, #16] if(x == tx && y == ty) { - 802f998: f9b7 2012 ldrsh.w r2, [r7, #18] - 802f99c: f9b7 301a ldrsh.w r3, [r7, #26] - 802f9a0: 429a cmp r2, r3 - 802f9a2: d115 bne.n 802f9d0 - 802f9a4: f9b7 2010 ldrsh.w r2, [r7, #16] - 802f9a8: f9b7 3018 ldrsh.w r3, [r7, #24] - 802f9ac: 429a cmp r2, r3 - 802f9ae: d10f bne.n 802f9d0 + 802f904: f9b7 2012 ldrsh.w r2, [r7, #18] + 802f908: f9b7 301a ldrsh.w r3, [r7, #26] + 802f90c: 429a cmp r2, r3 + 802f90e: d115 bne.n 802f93c + 802f910: f9b7 2010 ldrsh.w r2, [r7, #16] + 802f914: f9b7 3018 ldrsh.w r3, [r7, #24] + 802f918: 429a cmp r2, r3 + 802f91a: d10f bne.n 802f93c lv_tileview_tile_t * tile = (lv_tileview_tile_t *)tile_obj; - 802f9b0: 697b ldr r3, [r7, #20] - 802f9b2: 60fb str r3, [r7, #12] + 802f91c: 697b ldr r3, [r7, #20] + 802f91e: 60fb str r3, [r7, #12] tv->tile_act = (lv_obj_t *)tile; - 802f9b4: 6a7b ldr r3, [r7, #36] ; 0x24 - 802f9b6: 68fa ldr r2, [r7, #12] - 802f9b8: 625a str r2, [r3, #36] ; 0x24 + 802f920: 6a7b ldr r3, [r7, #36] ; 0x24 + 802f922: 68fa ldr r2, [r7, #12] + 802f924: 625a str r2, [r3, #36] ; 0x24 dir = tile->dir; - 802f9ba: 68fb ldr r3, [r7, #12] - 802f9bc: f893 3024 ldrb.w r3, [r3, #36] ; 0x24 - 802f9c0: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 802f926: 68fb ldr r3, [r7, #12] + 802f928: f893 3024 ldrb.w r3, [r3, #36] ; 0x24 + 802f92c: f887 3037 strb.w r3, [r7, #55] ; 0x37 lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 802f9c4: 2200 movs r2, #0 - 802f9c6: 211c movs r1, #28 - 802f9c8: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802f9ca: f7d2 fd59 bl 8002480 + 802f930: 2200 movs r2, #0 + 802f932: 211c movs r1, #28 + 802f934: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802f936: f7d2 fd6d bl 8002414 break; - 802f9ce: e009 b.n 802f9e4 + 802f93a: e009 b.n 802f950 for(i = 0; i < lv_obj_get_child_cnt(obj); i++) { - 802f9d0: 6b3b ldr r3, [r7, #48] ; 0x30 - 802f9d2: 3301 adds r3, #1 - 802f9d4: 633b str r3, [r7, #48] ; 0x30 - 802f9d6: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802f9d8: f7df feda bl 800f790 - 802f9dc: 4602 mov r2, r0 - 802f9de: 6b3b ldr r3, [r7, #48] ; 0x30 - 802f9e0: 4293 cmp r3, r2 - 802f9e2: d3c9 bcc.n 802f978 + 802f93c: 6b3b ldr r3, [r7, #48] ; 0x30 + 802f93e: 3301 adds r3, #1 + 802f940: 633b str r3, [r7, #48] ; 0x30 + 802f942: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802f944: f7df feda bl 800f6fc + 802f948: 4602 mov r2, r0 + 802f94a: 6b3b ldr r3, [r7, #48] ; 0x30 + 802f94c: 4293 cmp r3, r2 + 802f94e: d3c9 bcc.n 802f8e4 } } lv_obj_set_scroll_dir(obj, dir); - 802f9e4: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 802f9e8: 4619 mov r1, r3 - 802f9ea: 6ab8 ldr r0, [r7, #40] ; 0x28 - 802f9ec: f7db ff1d bl 800b82a + 802f950: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 802f954: 4619 mov r1, r3 + 802f956: 6ab8 ldr r0, [r7, #40] ; 0x28 + 802f958: f7db ff31 bl 800b7be } } - 802f9f0: bf00 nop - 802f9f2: 3738 adds r7, #56 ; 0x38 - 802f9f4: 46bd mov sp, r7 - 802f9f6: bd80 pop {r7, pc} + 802f95c: bf00 nop + 802f95e: 3738 adds r7, #56 ; 0x38 + 802f960: 46bd mov sp, r7 + 802f962: bd80 pop {r7, pc} -0802f9f8 : +0802f964 : /********************** * STATIC FUNCTIONS **********************/ static void lv_win_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 802f9f8: b590 push {r4, r7, lr} - 802f9fa: b087 sub sp, #28 - 802f9fc: af00 add r7, sp, #0 - 802f9fe: 6078 str r0, [r7, #4] - 802fa00: 6039 str r1, [r7, #0] + 802f964: b590 push {r4, r7, lr} + 802f966: b087 sub sp, #28 + 802f968: af00 add r7, sp, #0 + 802f96a: 6078 str r0, [r7, #4] + 802f96c: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_obj_t * parent = lv_obj_get_parent(obj); - 802fa02: 6838 ldr r0, [r7, #0] - 802fa04: f7df fe82 bl 800f70c - 802fa08: 6178 str r0, [r7, #20] + 802f96e: 6838 ldr r0, [r7, #0] + 802f970: f7df fe82 bl 800f678 + 802f974: 6178 str r0, [r7, #20] lv_obj_set_size(obj, lv_obj_get_width(parent), lv_obj_get_height(parent)); - 802fa0a: 6978 ldr r0, [r7, #20] - 802fa0c: f7da fb9c bl 800a148 - 802fa10: 4603 mov r3, r0 - 802fa12: 461c mov r4, r3 - 802fa14: 6978 ldr r0, [r7, #20] - 802fa16: f7da fba5 bl 800a164 - 802fa1a: 4603 mov r3, r0 - 802fa1c: 461a mov r2, r3 - 802fa1e: 4621 mov r1, r4 - 802fa20: 6838 ldr r0, [r7, #0] - 802fa22: f7d9 fec3 bl 80097ac + 802f976: 6978 ldr r0, [r7, #20] + 802f978: f7da fbb0 bl 800a0dc + 802f97c: 4603 mov r3, r0 + 802f97e: 461c mov r4, r3 + 802f980: 6978 ldr r0, [r7, #20] + 802f982: f7da fbb9 bl 800a0f8 + 802f986: 4603 mov r3, r0 + 802f988: 461a mov r2, r3 + 802f98a: 4621 mov r1, r4 + 802f98c: 6838 ldr r0, [r7, #0] + 802f98e: f7d9 fed7 bl 8009740 lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN); - 802fa26: 2101 movs r1, #1 - 802fa28: 6838 ldr r0, [r7, #0] - 802fa2a: f7f1 fc53 bl 80212d4 + 802f992: 2101 movs r1, #1 + 802f994: 6838 ldr r0, [r7, #0] + 802f996: f7f1 fc53 bl 8021240 lv_obj_t * header = lv_obj_create(obj); - 802fa2e: 6838 ldr r0, [r7, #0] - 802fa30: f7d6 fdae bl 8006590 - 802fa34: 6138 str r0, [r7, #16] + 802f99a: 6838 ldr r0, [r7, #0] + 802f99c: f7d6 fdc2 bl 8006524 + 802f9a0: 6138 str r0, [r7, #16] lv_obj_set_size(header, LV_PCT(100), create_header_height); - 802fa36: 4b12 ldr r3, [pc, #72] ; (802fa80 ) - 802fa38: f9b3 3000 ldrsh.w r3, [r3] - 802fa3c: 461a mov r2, r3 - 802fa3e: f242 0164 movw r1, #8292 ; 0x2064 - 802fa42: 6938 ldr r0, [r7, #16] - 802fa44: f7d9 feb2 bl 80097ac + 802f9a2: 4b12 ldr r3, [pc, #72] ; (802f9ec ) + 802f9a4: f9b3 3000 ldrsh.w r3, [r3] + 802f9a8: 461a mov r2, r3 + 802f9aa: f242 0164 movw r1, #8292 ; 0x2064 + 802f9ae: 6938 ldr r0, [r7, #16] + 802f9b0: f7d9 fec6 bl 8009740 lv_obj_set_flex_flow(header, LV_FLEX_FLOW_ROW); - 802fa48: 2100 movs r1, #0 - 802fa4a: 6938 ldr r0, [r7, #16] - 802fa4c: f7f1 fc42 bl 80212d4 + 802f9b4: 2100 movs r1, #0 + 802f9b6: 6938 ldr r0, [r7, #16] + 802f9b8: f7f1 fc42 bl 8021240 lv_obj_set_flex_align(header, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - 802fa50: 2302 movs r3, #2 - 802fa52: 2202 movs r2, #2 - 802fa54: 2100 movs r1, #0 - 802fa56: 6938 ldr r0, [r7, #16] - 802fa58: f7f1 fc56 bl 8021308 + 802f9bc: 2302 movs r3, #2 + 802f9be: 2202 movs r2, #2 + 802f9c0: 2100 movs r1, #0 + 802f9c2: 6938 ldr r0, [r7, #16] + 802f9c4: f7f1 fc56 bl 8021274 lv_obj_t * cont = lv_obj_create(obj); - 802fa5c: 6838 ldr r0, [r7, #0] - 802fa5e: f7d6 fd97 bl 8006590 - 802fa62: 60f8 str r0, [r7, #12] + 802f9c8: 6838 ldr r0, [r7, #0] + 802f9ca: f7d6 fdab bl 8006524 + 802f9ce: 60f8 str r0, [r7, #12] lv_obj_set_flex_grow(cont, 1); - 802fa64: 2101 movs r1, #1 - 802fa66: 68f8 ldr r0, [r7, #12] - 802fa68: f7f1 fc7c bl 8021364 + 802f9d0: 2101 movs r1, #1 + 802f9d2: 68f8 ldr r0, [r7, #12] + 802f9d4: f7f1 fc7c bl 80212d0 lv_obj_set_width(cont, LV_PCT(100)); - 802fa6c: f242 0164 movw r1, #8292 ; 0x2064 - 802fa70: 68f8 ldr r0, [r7, #12] - 802fa72: f7d9 feb3 bl 80097dc + 802f9d8: f242 0164 movw r1, #8292 ; 0x2064 + 802f9dc: 68f8 ldr r0, [r7, #12] + 802f9de: f7d9 fec7 bl 8009770 } - 802fa76: bf00 nop - 802fa78: 371c adds r7, #28 - 802fa7a: 46bd mov sp, r7 - 802fa7c: bd90 pop {r4, r7, pc} - 802fa7e: bf00 nop - 802fa80: 20001ce0 .word 0x20001ce0 + 802f9e2: bf00 nop + 802f9e4: 371c adds r7, #28 + 802f9e6: 46bd mov sp, r7 + 802f9e8: bd90 pop {r4, r7, pc} + 802f9ea: bf00 nop + 802f9ec: 20001ce0 .word 0x20001ce0 -0802fa84 : +0802f9f0 : * @param font_p pointer to a font * @param letter an UNICODE character code * @return pointer to the bitmap of the letter */ const uint8_t * lv_font_get_glyph_bitmap(const lv_font_t * font_p, uint32_t letter) { - 802fa84: b580 push {r7, lr} - 802fa86: b082 sub sp, #8 - 802fa88: af00 add r7, sp, #0 - 802fa8a: 6078 str r0, [r7, #4] - 802fa8c: 6039 str r1, [r7, #0] + 802f9f0: b580 push {r7, lr} + 802f9f2: b082 sub sp, #8 + 802f9f4: af00 add r7, sp, #0 + 802f9f6: 6078 str r0, [r7, #4] + 802f9f8: 6039 str r1, [r7, #0] LV_ASSERT_NULL(font_p); - 802fa8e: 687b ldr r3, [r7, #4] - 802fa90: 2b00 cmp r3, #0 - 802fa92: d100 bne.n 802fa96 - 802fa94: e7fe b.n 802fa94 + 802f9fa: 687b ldr r3, [r7, #4] + 802f9fc: 2b00 cmp r3, #0 + 802f9fe: d100 bne.n 802fa02 + 802fa00: e7fe b.n 802fa00 return font_p->get_glyph_bitmap(font_p, letter); - 802fa96: 687b ldr r3, [r7, #4] - 802fa98: 685b ldr r3, [r3, #4] - 802fa9a: 6839 ldr r1, [r7, #0] - 802fa9c: 6878 ldr r0, [r7, #4] - 802fa9e: 4798 blx r3 - 802faa0: 4603 mov r3, r0 + 802fa02: 687b ldr r3, [r7, #4] + 802fa04: 685b ldr r3, [r3, #4] + 802fa06: 6839 ldr r1, [r7, #0] + 802fa08: 6878 ldr r0, [r7, #4] + 802fa0a: 4798 blx r3 + 802fa0c: 4603 mov r3, r0 } - 802faa2: 4618 mov r0, r3 - 802faa4: 3708 adds r7, #8 - 802faa6: 46bd mov sp, r7 - 802faa8: bd80 pop {r7, pc} + 802fa0e: 4618 mov r0, r3 + 802fa10: 3708 adds r7, #8 + 802fa12: 46bd mov sp, r7 + 802fa14: bd80 pop {r7, pc} -0802faaa : +0802fa16 : * @return true: descriptor is successfully loaded into `dsc_out`. * false: the letter was not found, no data is loaded to `dsc_out` */ bool lv_font_get_glyph_dsc(const lv_font_t * font_p, lv_font_glyph_dsc_t * dsc_out, uint32_t letter, uint32_t letter_next) { - 802faaa: b590 push {r4, r7, lr} - 802faac: b087 sub sp, #28 - 802faae: af00 add r7, sp, #0 - 802fab0: 60f8 str r0, [r7, #12] - 802fab2: 60b9 str r1, [r7, #8] - 802fab4: 607a str r2, [r7, #4] - 802fab6: 603b str r3, [r7, #0] + 802fa16: b590 push {r4, r7, lr} + 802fa18: b087 sub sp, #28 + 802fa1a: af00 add r7, sp, #0 + 802fa1c: 60f8 str r0, [r7, #12] + 802fa1e: 60b9 str r1, [r7, #8] + 802fa20: 607a str r2, [r7, #4] + 802fa22: 603b str r3, [r7, #0] LV_ASSERT_NULL(font_p); - 802fab8: 68fb ldr r3, [r7, #12] - 802faba: 2b00 cmp r3, #0 - 802fabc: d100 bne.n 802fac0 - 802fabe: e7fe b.n 802fabe + 802fa24: 68fb ldr r3, [r7, #12] + 802fa26: 2b00 cmp r3, #0 + 802fa28: d100 bne.n 802fa2c + 802fa2a: e7fe b.n 802fa2a LV_ASSERT_NULL(dsc_out); - 802fac0: 68bb ldr r3, [r7, #8] - 802fac2: 2b00 cmp r3, #0 - 802fac4: d100 bne.n 802fac8 - 802fac6: e7fe b.n 802fac6 + 802fa2c: 68bb ldr r3, [r7, #8] + 802fa2e: 2b00 cmp r3, #0 + 802fa30: d100 bne.n 802fa34 + 802fa32: e7fe b.n 802fa32 dsc_out->resolved_font = NULL; - 802fac8: 68bb ldr r3, [r7, #8] - 802faca: 2200 movs r2, #0 - 802facc: 601a str r2, [r3, #0] + 802fa34: 68bb ldr r3, [r7, #8] + 802fa36: 2200 movs r2, #0 + 802fa38: 601a str r2, [r3, #0] const lv_font_t * f = font_p; - 802face: 68fb ldr r3, [r7, #12] - 802fad0: 617b str r3, [r7, #20] + 802fa3a: 68fb ldr r3, [r7, #12] + 802fa3c: 617b str r3, [r7, #20] bool found = false; - 802fad2: 2300 movs r3, #0 - 802fad4: 74fb strb r3, [r7, #19] + 802fa3e: 2300 movs r3, #0 + 802fa40: 74fb strb r3, [r7, #19] while(f) { - 802fad6: e019 b.n 802fb0c + 802fa42: e019 b.n 802fa78 found = f->get_glyph_dsc(f, dsc_out, letter, letter_next); - 802fad8: 697b ldr r3, [r7, #20] - 802fada: 681c ldr r4, [r3, #0] - 802fadc: 683b ldr r3, [r7, #0] - 802fade: 687a ldr r2, [r7, #4] - 802fae0: 68b9 ldr r1, [r7, #8] - 802fae2: 6978 ldr r0, [r7, #20] - 802fae4: 47a0 blx r4 - 802fae6: 4603 mov r3, r0 - 802fae8: 74fb strb r3, [r7, #19] + 802fa44: 697b ldr r3, [r7, #20] + 802fa46: 681c ldr r4, [r3, #0] + 802fa48: 683b ldr r3, [r7, #0] + 802fa4a: 687a ldr r2, [r7, #4] + 802fa4c: 68b9 ldr r1, [r7, #8] + 802fa4e: 6978 ldr r0, [r7, #20] + 802fa50: 47a0 blx r4 + 802fa52: 4603 mov r3, r0 + 802fa54: 74fb strb r3, [r7, #19] if(found && !dsc_out->is_placeholder) { - 802faea: 7cfb ldrb r3, [r7, #19] - 802faec: 2b00 cmp r3, #0 - 802faee: d00a beq.n 802fb06 - 802faf0: 68bb ldr r3, [r7, #8] - 802faf2: 7b9b ldrb r3, [r3, #14] - 802faf4: f003 0310 and.w r3, r3, #16 - 802faf8: b2db uxtb r3, r3 - 802fafa: 2b00 cmp r3, #0 - 802fafc: d103 bne.n 802fb06 + 802fa56: 7cfb ldrb r3, [r7, #19] + 802fa58: 2b00 cmp r3, #0 + 802fa5a: d00a beq.n 802fa72 + 802fa5c: 68bb ldr r3, [r7, #8] + 802fa5e: 7b9b ldrb r3, [r3, #14] + 802fa60: f003 0310 and.w r3, r3, #16 + 802fa64: b2db uxtb r3, r3 + 802fa66: 2b00 cmp r3, #0 + 802fa68: d103 bne.n 802fa72 dsc_out->resolved_font = f; - 802fafe: 68bb ldr r3, [r7, #8] - 802fb00: 697a ldr r2, [r7, #20] - 802fb02: 601a str r2, [r3, #0] + 802fa6a: 68bb ldr r3, [r7, #8] + 802fa6c: 697a ldr r2, [r7, #20] + 802fa6e: 601a str r2, [r3, #0] break; - 802fb04: e005 b.n 802fb12 + 802fa70: e005 b.n 802fa7e } f = f->fallback; - 802fb06: 697b ldr r3, [r7, #20] - 802fb08: 695b ldr r3, [r3, #20] - 802fb0a: 617b str r3, [r7, #20] + 802fa72: 697b ldr r3, [r7, #20] + 802fa74: 695b ldr r3, [r3, #20] + 802fa76: 617b str r3, [r7, #20] while(f) { - 802fb0c: 697b ldr r3, [r7, #20] - 802fb0e: 2b00 cmp r3, #0 - 802fb10: d1e2 bne.n 802fad8 + 802fa78: 697b ldr r3, [r7, #20] + 802fa7a: 2b00 cmp r3, #0 + 802fa7c: d1e2 bne.n 802fa44 } return found; - 802fb12: 7cfb ldrb r3, [r7, #19] + 802fa7e: 7cfb ldrb r3, [r7, #19] } - 802fb14: 4618 mov r0, r3 - 802fb16: 371c adds r7, #28 - 802fb18: 46bd mov sp, r7 - 802fb1a: bd90 pop {r4, r7, pc} + 802fa80: 4618 mov r0, r3 + 802fa82: 371c adds r7, #28 + 802fa84: 46bd mov sp, r7 + 802fa86: bd90 pop {r4, r7, pc} -0802fb1c : +0802fa88 : * @param letter an UNICODE letter * @param letter_next the next letter after `letter`. Used for kerning * @return the width of the glyph */ uint16_t lv_font_get_glyph_width(const lv_font_t * font, uint32_t letter, uint32_t letter_next) { - 802fb1c: b580 push {r7, lr} - 802fb1e: b08a sub sp, #40 ; 0x28 - 802fb20: af00 add r7, sp, #0 - 802fb22: 60f8 str r0, [r7, #12] - 802fb24: 60b9 str r1, [r7, #8] - 802fb26: 607a str r2, [r7, #4] + 802fa88: b580 push {r7, lr} + 802fa8a: b08a sub sp, #40 ; 0x28 + 802fa8c: af00 add r7, sp, #0 + 802fa8e: 60f8 str r0, [r7, #12] + 802fa90: 60b9 str r1, [r7, #8] + 802fa92: 607a str r2, [r7, #4] LV_ASSERT_NULL(font); - 802fb28: 68fb ldr r3, [r7, #12] - 802fb2a: 2b00 cmp r3, #0 - 802fb2c: d100 bne.n 802fb30 - 802fb2e: e7fe b.n 802fb2e + 802fa94: 68fb ldr r3, [r7, #12] + 802fa96: 2b00 cmp r3, #0 + 802fa98: d100 bne.n 802fa9c + 802fa9a: e7fe b.n 802fa9a lv_font_glyph_dsc_t g; bool ret; ret = lv_font_get_glyph_dsc(font, &g, letter, letter_next); - 802fb30: f107 0114 add.w r1, r7, #20 - 802fb34: 687b ldr r3, [r7, #4] - 802fb36: 68ba ldr r2, [r7, #8] - 802fb38: 68f8 ldr r0, [r7, #12] - 802fb3a: f7ff ffb6 bl 802faaa - 802fb3e: 4603 mov r3, r0 - 802fb40: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 802fa9c: f107 0114 add.w r1, r7, #20 + 802faa0: 687b ldr r3, [r7, #4] + 802faa2: 68ba ldr r2, [r7, #8] + 802faa4: 68f8 ldr r0, [r7, #12] + 802faa6: f7ff ffb6 bl 802fa16 + 802faaa: 4603 mov r3, r0 + 802faac: f887 3027 strb.w r3, [r7, #39] ; 0x27 if(ret) return g.adv_w; - 802fb44: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 802fb48: 2b00 cmp r3, #0 - 802fb4a: d001 beq.n 802fb50 - 802fb4c: 8b3b ldrh r3, [r7, #24] - 802fb4e: e000 b.n 802fb52 + 802fab0: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 802fab4: 2b00 cmp r3, #0 + 802fab6: d001 beq.n 802fabc + 802fab8: 8b3b ldrh r3, [r7, #24] + 802faba: e000 b.n 802fabe else return 0; - 802fb50: 2300 movs r3, #0 + 802fabc: 2300 movs r3, #0 } - 802fb52: 4618 mov r0, r3 - 802fb54: 3728 adds r7, #40 ; 0x28 - 802fb56: 46bd mov sp, r7 - 802fb58: bd80 pop {r7, pc} + 802fabe: 4618 mov r0, r3 + 802fac0: 3728 adds r7, #40 ; 0x28 + 802fac2: 46bd mov sp, r7 + 802fac4: bd80 pop {r7, pc} -0802fb5a : +0802fac6 : * @param font pointer to font * @param unicode_letter an unicode letter which bitmap should be get * @return pointer to the bitmap or NULL if not found */ const uint8_t * lv_font_get_bitmap_fmt_txt(const lv_font_t * font, uint32_t unicode_letter) { - 802fb5a: b580 push {r7, lr} - 802fb5c: b086 sub sp, #24 - 802fb5e: af00 add r7, sp, #0 - 802fb60: 6078 str r0, [r7, #4] - 802fb62: 6039 str r1, [r7, #0] + 802fac6: b580 push {r7, lr} + 802fac8: b086 sub sp, #24 + 802faca: af00 add r7, sp, #0 + 802facc: 6078 str r0, [r7, #4] + 802face: 6039 str r1, [r7, #0] if(unicode_letter == '\t') unicode_letter = ' '; - 802fb64: 683b ldr r3, [r7, #0] - 802fb66: 2b09 cmp r3, #9 - 802fb68: d101 bne.n 802fb6e - 802fb6a: 2320 movs r3, #32 - 802fb6c: 603b str r3, [r7, #0] + 802fad0: 683b ldr r3, [r7, #0] + 802fad2: 2b09 cmp r3, #9 + 802fad4: d101 bne.n 802fada + 802fad6: 2320 movs r3, #32 + 802fad8: 603b str r3, [r7, #0] lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *)font->dsc; - 802fb6e: 687b ldr r3, [r7, #4] - 802fb70: 691b ldr r3, [r3, #16] - 802fb72: 617b str r3, [r7, #20] + 802fada: 687b ldr r3, [r7, #4] + 802fadc: 691b ldr r3, [r3, #16] + 802fade: 617b str r3, [r7, #20] uint32_t gid = get_glyph_dsc_id(font, unicode_letter); - 802fb74: 6839 ldr r1, [r7, #0] - 802fb76: 6878 ldr r0, [r7, #4] - 802fb78: f000 f8b8 bl 802fcec - 802fb7c: 6138 str r0, [r7, #16] + 802fae0: 6839 ldr r1, [r7, #0] + 802fae2: 6878 ldr r0, [r7, #4] + 802fae4: f000 f8b8 bl 802fc58 + 802fae8: 6138 str r0, [r7, #16] if(!gid) return NULL; - 802fb7e: 693b ldr r3, [r7, #16] - 802fb80: 2b00 cmp r3, #0 - 802fb82: d101 bne.n 802fb88 - 802fb84: 2300 movs r3, #0 - 802fb86: e015 b.n 802fbb4 + 802faea: 693b ldr r3, [r7, #16] + 802faec: 2b00 cmp r3, #0 + 802faee: d101 bne.n 802faf4 + 802faf0: 2300 movs r3, #0 + 802faf2: e015 b.n 802fb20 const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid]; - 802fb88: 697b ldr r3, [r7, #20] - 802fb8a: 685a ldr r2, [r3, #4] - 802fb8c: 693b ldr r3, [r7, #16] - 802fb8e: 00db lsls r3, r3, #3 - 802fb90: 4413 add r3, r2 - 802fb92: 60fb str r3, [r7, #12] + 802faf4: 697b ldr r3, [r7, #20] + 802faf6: 685a ldr r2, [r3, #4] + 802faf8: 693b ldr r3, [r7, #16] + 802fafa: 00db lsls r3, r3, #3 + 802fafc: 4413 add r3, r2 + 802fafe: 60fb str r3, [r7, #12] if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) { - 802fb94: 697b ldr r3, [r7, #20] - 802fb96: 7cdb ldrb r3, [r3, #19] - 802fb98: f023 033f bic.w r3, r3, #63 ; 0x3f - 802fb9c: b2db uxtb r3, r3 - 802fb9e: 2b00 cmp r3, #0 - 802fba0: d107 bne.n 802fbb2 + 802fb00: 697b ldr r3, [r7, #20] + 802fb02: 7cdb ldrb r3, [r3, #19] + 802fb04: f023 033f bic.w r3, r3, #63 ; 0x3f + 802fb08: b2db uxtb r3, r3 + 802fb0a: 2b00 cmp r3, #0 + 802fb0c: d107 bne.n 802fb1e return &fdsc->glyph_bitmap[gdsc->bitmap_index]; - 802fba2: 697b ldr r3, [r7, #20] - 802fba4: 681b ldr r3, [r3, #0] - 802fba6: 68fa ldr r2, [r7, #12] - 802fba8: 6812 ldr r2, [r2, #0] - 802fbaa: f3c2 0213 ubfx r2, r2, #0, #20 - 802fbae: 4413 add r3, r2 - 802fbb0: e000 b.n 802fbb4 + 802fb0e: 697b ldr r3, [r7, #20] + 802fb10: 681b ldr r3, [r3, #0] + 802fb12: 68fa ldr r2, [r7, #12] + 802fb14: 6812 ldr r2, [r2, #0] + 802fb16: f3c2 0213 ubfx r2, r2, #0, #20 + 802fb1a: 4413 add r3, r2 + 802fb1c: e000 b.n 802fb20 decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], LV_GC_ROOT(_lv_font_decompr_buf), gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp, prefilter); return LV_GC_ROOT(_lv_font_decompr_buf); #else /*!LV_USE_FONT_COMPRESSED*/ LV_LOG_WARN("Compressed fonts is used but LV_USE_FONT_COMPRESSED is not enabled in lv_conf.h"); return NULL; - 802fbb2: 2300 movs r3, #0 + 802fb1e: 2300 movs r3, #0 #endif } /*If not returned earlier then the letter is not found in this font*/ return NULL; } - 802fbb4: 4618 mov r0, r3 - 802fbb6: 3718 adds r7, #24 - 802fbb8: 46bd mov sp, r7 - 802fbba: bd80 pop {r7, pc} + 802fb20: 4618 mov r0, r3 + 802fb22: 3718 adds r7, #24 + 802fb24: 46bd mov sp, r7 + 802fb26: bd80 pop {r7, pc} -0802fbbc : +0802fb28 : * @return true: descriptor is successfully loaded into `dsc_out`. * false: the letter was not found, no data is loaded to `dsc_out` */ bool lv_font_get_glyph_dsc_fmt_txt(const lv_font_t * font, lv_font_glyph_dsc_t * dsc_out, uint32_t unicode_letter, uint32_t unicode_letter_next) { - 802fbbc: b580 push {r7, lr} - 802fbbe: b08c sub sp, #48 ; 0x30 - 802fbc0: af00 add r7, sp, #0 - 802fbc2: 60f8 str r0, [r7, #12] - 802fbc4: 60b9 str r1, [r7, #8] - 802fbc6: 607a str r2, [r7, #4] - 802fbc8: 603b str r3, [r7, #0] + 802fb28: b580 push {r7, lr} + 802fb2a: b08c sub sp, #48 ; 0x30 + 802fb2c: af00 add r7, sp, #0 + 802fb2e: 60f8 str r0, [r7, #12] + 802fb30: 60b9 str r1, [r7, #8] + 802fb32: 607a str r2, [r7, #4] + 802fb34: 603b str r3, [r7, #0] bool is_tab = false; - 802fbca: 2300 movs r3, #0 - 802fbcc: f887 302f strb.w r3, [r7, #47] ; 0x2f + 802fb36: 2300 movs r3, #0 + 802fb38: f887 302f strb.w r3, [r7, #47] ; 0x2f if(unicode_letter == '\t') { - 802fbd0: 687b ldr r3, [r7, #4] - 802fbd2: 2b09 cmp r3, #9 - 802fbd4: d104 bne.n 802fbe0 + 802fb3c: 687b ldr r3, [r7, #4] + 802fb3e: 2b09 cmp r3, #9 + 802fb40: d104 bne.n 802fb4c unicode_letter = ' '; - 802fbd6: 2320 movs r3, #32 - 802fbd8: 607b str r3, [r7, #4] + 802fb42: 2320 movs r3, #32 + 802fb44: 607b str r3, [r7, #4] is_tab = true; - 802fbda: 2301 movs r3, #1 - 802fbdc: f887 302f strb.w r3, [r7, #47] ; 0x2f + 802fb46: 2301 movs r3, #1 + 802fb48: f887 302f strb.w r3, [r7, #47] ; 0x2f } lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *)font->dsc; - 802fbe0: 68fb ldr r3, [r7, #12] - 802fbe2: 691b ldr r3, [r3, #16] - 802fbe4: 627b str r3, [r7, #36] ; 0x24 + 802fb4c: 68fb ldr r3, [r7, #12] + 802fb4e: 691b ldr r3, [r3, #16] + 802fb50: 627b str r3, [r7, #36] ; 0x24 uint32_t gid = get_glyph_dsc_id(font, unicode_letter); - 802fbe6: 6879 ldr r1, [r7, #4] - 802fbe8: 68f8 ldr r0, [r7, #12] - 802fbea: f000 f87f bl 802fcec - 802fbee: 6238 str r0, [r7, #32] + 802fb52: 6879 ldr r1, [r7, #4] + 802fb54: 68f8 ldr r0, [r7, #12] + 802fb56: f000 f87f bl 802fc58 + 802fb5a: 6238 str r0, [r7, #32] if(!gid) return false; - 802fbf0: 6a3b ldr r3, [r7, #32] - 802fbf2: 2b00 cmp r3, #0 - 802fbf4: d101 bne.n 802fbfa - 802fbf6: 2300 movs r3, #0 - 802fbf8: e06d b.n 802fcd6 + 802fb5c: 6a3b ldr r3, [r7, #32] + 802fb5e: 2b00 cmp r3, #0 + 802fb60: d101 bne.n 802fb66 + 802fb62: 2300 movs r3, #0 + 802fb64: e06d b.n 802fc42 int8_t kvalue = 0; - 802fbfa: 2300 movs r3, #0 - 802fbfc: f887 302e strb.w r3, [r7, #46] ; 0x2e + 802fb66: 2300 movs r3, #0 + 802fb68: f887 302e strb.w r3, [r7, #46] ; 0x2e if(fdsc->kern_dsc) { - 802fc00: 6a7b ldr r3, [r7, #36] ; 0x24 - 802fc02: 68db ldr r3, [r3, #12] - 802fc04: 2b00 cmp r3, #0 - 802fc06: d00f beq.n 802fc28 + 802fb6c: 6a7b ldr r3, [r7, #36] ; 0x24 + 802fb6e: 68db ldr r3, [r3, #12] + 802fb70: 2b00 cmp r3, #0 + 802fb72: d00f beq.n 802fb94 uint32_t gid_next = get_glyph_dsc_id(font, unicode_letter_next); - 802fc08: 6839 ldr r1, [r7, #0] - 802fc0a: 68f8 ldr r0, [r7, #12] - 802fc0c: f000 f86e bl 802fcec - 802fc10: 61f8 str r0, [r7, #28] + 802fb74: 6839 ldr r1, [r7, #0] + 802fb76: 68f8 ldr r0, [r7, #12] + 802fb78: f000 f86e bl 802fc58 + 802fb7c: 61f8 str r0, [r7, #28] if(gid_next) { - 802fc12: 69fb ldr r3, [r7, #28] - 802fc14: 2b00 cmp r3, #0 - 802fc16: d007 beq.n 802fc28 + 802fb7e: 69fb ldr r3, [r7, #28] + 802fb80: 2b00 cmp r3, #0 + 802fb82: d007 beq.n 802fb94 kvalue = get_kern_value(font, gid, gid_next); - 802fc18: 69fa ldr r2, [r7, #28] - 802fc1a: 6a39 ldr r1, [r7, #32] - 802fc1c: 68f8 ldr r0, [r7, #12] - 802fc1e: f000 f9ab bl 802ff78 - 802fc22: 4603 mov r3, r0 - 802fc24: f887 302e strb.w r3, [r7, #46] ; 0x2e + 802fb84: 69fa ldr r2, [r7, #28] + 802fb86: 6a39 ldr r1, [r7, #32] + 802fb88: 68f8 ldr r0, [r7, #12] + 802fb8a: f000 f9ab bl 802fee4 + 802fb8e: 4603 mov r3, r0 + 802fb90: f887 302e strb.w r3, [r7, #46] ; 0x2e } } /*Put together a glyph dsc*/ const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid]; - 802fc28: 6a7b ldr r3, [r7, #36] ; 0x24 - 802fc2a: 685a ldr r2, [r3, #4] - 802fc2c: 6a3b ldr r3, [r7, #32] - 802fc2e: 00db lsls r3, r3, #3 - 802fc30: 4413 add r3, r2 - 802fc32: 61bb str r3, [r7, #24] + 802fb94: 6a7b ldr r3, [r7, #36] ; 0x24 + 802fb96: 685a ldr r2, [r3, #4] + 802fb98: 6a3b ldr r3, [r7, #32] + 802fb9a: 00db lsls r3, r3, #3 + 802fb9c: 4413 add r3, r2 + 802fb9e: 61bb str r3, [r7, #24] int32_t kv = ((int32_t)((int32_t)kvalue * fdsc->kern_scale) >> 4); - 802fc34: f997 302e ldrsb.w r3, [r7, #46] ; 0x2e - 802fc38: 6a7a ldr r2, [r7, #36] ; 0x24 - 802fc3a: 8a12 ldrh r2, [r2, #16] - 802fc3c: fb02 f303 mul.w r3, r2, r3 - 802fc40: 111b asrs r3, r3, #4 - 802fc42: 617b str r3, [r7, #20] + 802fba0: f997 302e ldrsb.w r3, [r7, #46] ; 0x2e + 802fba4: 6a7a ldr r2, [r7, #36] ; 0x24 + 802fba6: 8a12 ldrh r2, [r2, #16] + 802fba8: fb02 f303 mul.w r3, r2, r3 + 802fbac: 111b asrs r3, r3, #4 + 802fbae: 617b str r3, [r7, #20] uint32_t adv_w = gdsc->adv_w; - 802fc44: 69bb ldr r3, [r7, #24] - 802fc46: 885b ldrh r3, [r3, #2] - 802fc48: f3c3 130b ubfx r3, r3, #4, #12 - 802fc4c: b29b uxth r3, r3 - 802fc4e: 62bb str r3, [r7, #40] ; 0x28 + 802fbb0: 69bb ldr r3, [r7, #24] + 802fbb2: 885b ldrh r3, [r3, #2] + 802fbb4: f3c3 130b ubfx r3, r3, #4, #12 + 802fbb8: b29b uxth r3, r3 + 802fbba: 62bb str r3, [r7, #40] ; 0x28 if(is_tab) adv_w *= 2; - 802fc50: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 802fc54: 2b00 cmp r3, #0 - 802fc56: d002 beq.n 802fc5e - 802fc58: 6abb ldr r3, [r7, #40] ; 0x28 - 802fc5a: 005b lsls r3, r3, #1 - 802fc5c: 62bb str r3, [r7, #40] ; 0x28 + 802fbbc: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 802fbc0: 2b00 cmp r3, #0 + 802fbc2: d002 beq.n 802fbca + 802fbc4: 6abb ldr r3, [r7, #40] ; 0x28 + 802fbc6: 005b lsls r3, r3, #1 + 802fbc8: 62bb str r3, [r7, #40] ; 0x28 adv_w += kv; - 802fc5e: 697b ldr r3, [r7, #20] - 802fc60: 6aba ldr r2, [r7, #40] ; 0x28 - 802fc62: 4413 add r3, r2 - 802fc64: 62bb str r3, [r7, #40] ; 0x28 + 802fbca: 697b ldr r3, [r7, #20] + 802fbcc: 6aba ldr r2, [r7, #40] ; 0x28 + 802fbce: 4413 add r3, r2 + 802fbd0: 62bb str r3, [r7, #40] ; 0x28 adv_w = (adv_w + (1 << 3)) >> 4; - 802fc66: 6abb ldr r3, [r7, #40] ; 0x28 - 802fc68: 3308 adds r3, #8 - 802fc6a: 091b lsrs r3, r3, #4 - 802fc6c: 62bb str r3, [r7, #40] ; 0x28 + 802fbd2: 6abb ldr r3, [r7, #40] ; 0x28 + 802fbd4: 3308 adds r3, #8 + 802fbd6: 091b lsrs r3, r3, #4 + 802fbd8: 62bb str r3, [r7, #40] ; 0x28 dsc_out->adv_w = adv_w; - 802fc6e: 6abb ldr r3, [r7, #40] ; 0x28 - 802fc70: b29a uxth r2, r3 - 802fc72: 68bb ldr r3, [r7, #8] - 802fc74: 809a strh r2, [r3, #4] + 802fbda: 6abb ldr r3, [r7, #40] ; 0x28 + 802fbdc: b29a uxth r2, r3 + 802fbde: 68bb ldr r3, [r7, #8] + 802fbe0: 809a strh r2, [r3, #4] dsc_out->box_h = gdsc->box_h; - 802fc76: 69bb ldr r3, [r7, #24] - 802fc78: 795b ldrb r3, [r3, #5] - 802fc7a: b29a uxth r2, r3 - 802fc7c: 68bb ldr r3, [r7, #8] - 802fc7e: 811a strh r2, [r3, #8] + 802fbe2: 69bb ldr r3, [r7, #24] + 802fbe4: 795b ldrb r3, [r3, #5] + 802fbe6: b29a uxth r2, r3 + 802fbe8: 68bb ldr r3, [r7, #8] + 802fbea: 811a strh r2, [r3, #8] dsc_out->box_w = gdsc->box_w; - 802fc80: 69bb ldr r3, [r7, #24] - 802fc82: 791b ldrb r3, [r3, #4] - 802fc84: b29a uxth r2, r3 - 802fc86: 68bb ldr r3, [r7, #8] - 802fc88: 80da strh r2, [r3, #6] + 802fbec: 69bb ldr r3, [r7, #24] + 802fbee: 791b ldrb r3, [r3, #4] + 802fbf0: b29a uxth r2, r3 + 802fbf2: 68bb ldr r3, [r7, #8] + 802fbf4: 80da strh r2, [r3, #6] dsc_out->ofs_x = gdsc->ofs_x; - 802fc8a: 69bb ldr r3, [r7, #24] - 802fc8c: f993 3006 ldrsb.w r3, [r3, #6] - 802fc90: b21a sxth r2, r3 - 802fc92: 68bb ldr r3, [r7, #8] - 802fc94: 815a strh r2, [r3, #10] + 802fbf6: 69bb ldr r3, [r7, #24] + 802fbf8: f993 3006 ldrsb.w r3, [r3, #6] + 802fbfc: b21a sxth r2, r3 + 802fbfe: 68bb ldr r3, [r7, #8] + 802fc00: 815a strh r2, [r3, #10] dsc_out->ofs_y = gdsc->ofs_y; - 802fc96: 69bb ldr r3, [r7, #24] - 802fc98: f993 3007 ldrsb.w r3, [r3, #7] - 802fc9c: b21a sxth r2, r3 - 802fc9e: 68bb ldr r3, [r7, #8] - 802fca0: 819a strh r2, [r3, #12] + 802fc02: 69bb ldr r3, [r7, #24] + 802fc04: f993 3007 ldrsb.w r3, [r3, #7] + 802fc08: b21a sxth r2, r3 + 802fc0a: 68bb ldr r3, [r7, #8] + 802fc0c: 819a strh r2, [r3, #12] dsc_out->bpp = (uint8_t)fdsc->bpp; - 802fca2: 6a7b ldr r3, [r7, #36] ; 0x24 - 802fca4: 7cdb ldrb r3, [r3, #19] - 802fca6: f3c3 0343 ubfx r3, r3, #1, #4 - 802fcaa: b2d9 uxtb r1, r3 - 802fcac: 68ba ldr r2, [r7, #8] - 802fcae: 7b93 ldrb r3, [r2, #14] - 802fcb0: f361 0303 bfi r3, r1, #0, #4 - 802fcb4: 7393 strb r3, [r2, #14] + 802fc0e: 6a7b ldr r3, [r7, #36] ; 0x24 + 802fc10: 7cdb ldrb r3, [r3, #19] + 802fc12: f3c3 0343 ubfx r3, r3, #1, #4 + 802fc16: b2d9 uxtb r1, r3 + 802fc18: 68ba ldr r2, [r7, #8] + 802fc1a: 7b93 ldrb r3, [r2, #14] + 802fc1c: f361 0303 bfi r3, r1, #0, #4 + 802fc20: 7393 strb r3, [r2, #14] dsc_out->is_placeholder = false; - 802fcb6: 68ba ldr r2, [r7, #8] - 802fcb8: 7b93 ldrb r3, [r2, #14] - 802fcba: f36f 1304 bfc r3, #4, #1 - 802fcbe: 7393 strb r3, [r2, #14] + 802fc22: 68ba ldr r2, [r7, #8] + 802fc24: 7b93 ldrb r3, [r2, #14] + 802fc26: f36f 1304 bfc r3, #4, #1 + 802fc2a: 7393 strb r3, [r2, #14] if(is_tab) dsc_out->box_w = dsc_out->box_w * 2; - 802fcc0: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 802fcc4: 2b00 cmp r3, #0 - 802fcc6: d005 beq.n 802fcd4 - 802fcc8: 68bb ldr r3, [r7, #8] - 802fcca: 88db ldrh r3, [r3, #6] - 802fccc: 005b lsls r3, r3, #1 - 802fcce: b29a uxth r2, r3 - 802fcd0: 68bb ldr r3, [r7, #8] - 802fcd2: 80da strh r2, [r3, #6] + 802fc2c: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 802fc30: 2b00 cmp r3, #0 + 802fc32: d005 beq.n 802fc40 + 802fc34: 68bb ldr r3, [r7, #8] + 802fc36: 88db ldrh r3, [r3, #6] + 802fc38: 005b lsls r3, r3, #1 + 802fc3a: b29a uxth r2, r3 + 802fc3c: 68bb ldr r3, [r7, #8] + 802fc3e: 80da strh r2, [r3, #6] return true; - 802fcd4: 2301 movs r3, #1 + 802fc40: 2301 movs r3, #1 } - 802fcd6: 4618 mov r0, r3 - 802fcd8: 3730 adds r7, #48 ; 0x30 - 802fcda: 46bd mov sp, r7 - 802fcdc: bd80 pop {r7, pc} + 802fc42: 4618 mov r0, r3 + 802fc44: 3730 adds r7, #48 ; 0x30 + 802fc46: 46bd mov sp, r7 + 802fc48: bd80 pop {r7, pc} -0802fcde <_lv_font_clean_up_fmt_txt>: +0802fc4a <_lv_font_clean_up_fmt_txt>: /** * Free the allocated memories. */ void _lv_font_clean_up_fmt_txt(void) { - 802fcde: b480 push {r7} - 802fce0: af00 add r7, sp, #0 + 802fc4a: b480 push {r7} + 802fc4c: af00 add r7, sp, #0 if(LV_GC_ROOT(_lv_font_decompr_buf)) { lv_mem_free(LV_GC_ROOT(_lv_font_decompr_buf)); LV_GC_ROOT(_lv_font_decompr_buf) = NULL; } #endif } - 802fce2: bf00 nop - 802fce4: 46bd mov sp, r7 - 802fce6: bc80 pop {r7} - 802fce8: 4770 bx lr + 802fc4e: bf00 nop + 802fc50: 46bd mov sp, r7 + 802fc52: bc80 pop {r7} + 802fc54: 4770 bx lr ... -0802fcec : +0802fc58 : /********************** * STATIC FUNCTIONS **********************/ static uint32_t get_glyph_dsc_id(const lv_font_t * font, uint32_t letter) { - 802fcec: b590 push {r4, r7, lr} - 802fcee: b091 sub sp, #68 ; 0x44 - 802fcf0: af02 add r7, sp, #8 - 802fcf2: 6078 str r0, [r7, #4] - 802fcf4: 6039 str r1, [r7, #0] + 802fc58: b590 push {r4, r7, lr} + 802fc5a: b091 sub sp, #68 ; 0x44 + 802fc5c: af02 add r7, sp, #8 + 802fc5e: 6078 str r0, [r7, #4] + 802fc60: 6039 str r1, [r7, #0] if(letter == '\0') return 0; - 802fcf6: 683b ldr r3, [r7, #0] - 802fcf8: 2b00 cmp r3, #0 - 802fcfa: d101 bne.n 802fd00 - 802fcfc: 2300 movs r3, #0 - 802fcfe: e134 b.n 802ff6a + 802fc62: 683b ldr r3, [r7, #0] + 802fc64: 2b00 cmp r3, #0 + 802fc66: d101 bne.n 802fc6c + 802fc68: 2300 movs r3, #0 + 802fc6a: e134 b.n 802fed6 lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *)font->dsc; - 802fd00: 687b ldr r3, [r7, #4] - 802fd02: 691b ldr r3, [r3, #16] - 802fd04: 62fb str r3, [r7, #44] ; 0x2c + 802fc6c: 687b ldr r3, [r7, #4] + 802fc6e: 691b ldr r3, [r3, #16] + 802fc70: 62fb str r3, [r7, #44] ; 0x2c /*Check the cache first*/ if(fdsc->cache && letter == fdsc->cache->last_letter) return fdsc->cache->last_glyph_id; - 802fd06: 6afb ldr r3, [r7, #44] ; 0x2c - 802fd08: 695b ldr r3, [r3, #20] - 802fd0a: 2b00 cmp r3, #0 - 802fd0c: d009 beq.n 802fd22 - 802fd0e: 6afb ldr r3, [r7, #44] ; 0x2c - 802fd10: 695b ldr r3, [r3, #20] - 802fd12: 681b ldr r3, [r3, #0] - 802fd14: 683a ldr r2, [r7, #0] - 802fd16: 429a cmp r2, r3 - 802fd18: d103 bne.n 802fd22 - 802fd1a: 6afb ldr r3, [r7, #44] ; 0x2c - 802fd1c: 695b ldr r3, [r3, #20] - 802fd1e: 685b ldr r3, [r3, #4] - 802fd20: e123 b.n 802ff6a + 802fc72: 6afb ldr r3, [r7, #44] ; 0x2c + 802fc74: 695b ldr r3, [r3, #20] + 802fc76: 2b00 cmp r3, #0 + 802fc78: d009 beq.n 802fc8e + 802fc7a: 6afb ldr r3, [r7, #44] ; 0x2c + 802fc7c: 695b ldr r3, [r3, #20] + 802fc7e: 681b ldr r3, [r3, #0] + 802fc80: 683a ldr r2, [r7, #0] + 802fc82: 429a cmp r2, r3 + 802fc84: d103 bne.n 802fc8e + 802fc86: 6afb ldr r3, [r7, #44] ; 0x2c + 802fc88: 695b ldr r3, [r3, #20] + 802fc8a: 685b ldr r3, [r3, #4] + 802fc8c: e123 b.n 802fed6 uint16_t i; for(i = 0; i < fdsc->cmap_num; i++) { - 802fd22: 2300 movs r3, #0 - 802fd24: 86fb strh r3, [r7, #54] ; 0x36 - 802fd26: e109 b.n 802ff3c + 802fc8e: 2300 movs r3, #0 + 802fc90: 86fb strh r3, [r7, #54] ; 0x36 + 802fc92: e109 b.n 802fea8 /*Relative code point*/ uint32_t rcp = letter - fdsc->cmaps[i].range_start; + 802fc94: 6afb ldr r3, [r7, #44] ; 0x2c + 802fc96: 6899 ldr r1, [r3, #8] + 802fc98: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fc9a: 4613 mov r3, r2 + 802fc9c: 009b lsls r3, r3, #2 + 802fc9e: 4413 add r3, r2 + 802fca0: 009b lsls r3, r3, #2 + 802fca2: 440b add r3, r1 + 802fca4: 681b ldr r3, [r3, #0] + 802fca6: 683a ldr r2, [r7, #0] + 802fca8: 1ad3 subs r3, r2, r3 + 802fcaa: 62bb str r3, [r7, #40] ; 0x28 + if(rcp > fdsc->cmaps[i].range_length) continue; + 802fcac: 6afb ldr r3, [r7, #44] ; 0x2c + 802fcae: 6899 ldr r1, [r3, #8] + 802fcb0: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fcb2: 4613 mov r3, r2 + 802fcb4: 009b lsls r3, r3, #2 + 802fcb6: 4413 add r3, r2 + 802fcb8: 009b lsls r3, r3, #2 + 802fcba: 440b add r3, r1 + 802fcbc: 889b ldrh r3, [r3, #4] + 802fcbe: 461a mov r2, r3 + 802fcc0: 6abb ldr r3, [r7, #40] ; 0x28 + 802fcc2: 4293 cmp r3, r2 + 802fcc4: f200 80ec bhi.w 802fea0 + uint32_t glyph_id = 0; + 802fcc8: 2300 movs r3, #0 + 802fcca: 633b str r3, [r7, #48] ; 0x30 + if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY) { + 802fccc: 6afb ldr r3, [r7, #44] ; 0x2c + 802fcce: 6899 ldr r1, [r3, #8] + 802fcd0: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fcd2: 4613 mov r3, r2 + 802fcd4: 009b lsls r3, r3, #2 + 802fcd6: 4413 add r3, r2 + 802fcd8: 009b lsls r3, r3, #2 + 802fcda: 440b add r3, r1 + 802fcdc: 7c9b ldrb r3, [r3, #18] + 802fcde: 2b02 cmp r3, #2 + 802fce0: d10d bne.n 802fcfe + glyph_id = fdsc->cmaps[i].glyph_id_start + rcp; + 802fce2: 6afb ldr r3, [r7, #44] ; 0x2c + 802fce4: 6899 ldr r1, [r3, #8] + 802fce6: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fce8: 4613 mov r3, r2 + 802fcea: 009b lsls r3, r3, #2 + 802fcec: 4413 add r3, r2 + 802fcee: 009b lsls r3, r3, #2 + 802fcf0: 440b add r3, r1 + 802fcf2: 88db ldrh r3, [r3, #6] + 802fcf4: 461a mov r2, r3 + 802fcf6: 6abb ldr r3, [r7, #40] ; 0x28 + 802fcf8: 4413 add r3, r2 + 802fcfa: 633b str r3, [r7, #48] ; 0x30 + 802fcfc: e0c2 b.n 802fe84 + } + else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL) { + 802fcfe: 6afb ldr r3, [r7, #44] ; 0x2c + 802fd00: 6899 ldr r1, [r3, #8] + 802fd02: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fd04: 4613 mov r3, r2 + 802fd06: 009b lsls r3, r3, #2 + 802fd08: 4413 add r3, r2 + 802fd0a: 009b lsls r3, r3, #2 + 802fd0c: 440b add r3, r1 + 802fd0e: 7c9b ldrb r3, [r3, #18] + 802fd10: 2b00 cmp r3, #0 + 802fd12: d11a bne.n 802fd4a + const uint8_t * gid_ofs_8 = fdsc->cmaps[i].glyph_id_ofs_list; + 802fd14: 6afb ldr r3, [r7, #44] ; 0x2c + 802fd16: 6899 ldr r1, [r3, #8] + 802fd18: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fd1a: 4613 mov r3, r2 + 802fd1c: 009b lsls r3, r3, #2 + 802fd1e: 4413 add r3, r2 + 802fd20: 009b lsls r3, r3, #2 + 802fd22: 440b add r3, r1 + 802fd24: 68db ldr r3, [r3, #12] + 802fd26: 613b str r3, [r7, #16] + glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_8[rcp]; 802fd28: 6afb ldr r3, [r7, #44] ; 0x2c 802fd2a: 6899 ldr r1, [r3, #8] 802fd2c: 8efa ldrh r2, [r7, #54] ; 0x36 @@ -106001,5228 +106003,5240 @@ static uint32_t get_glyph_dsc_id(const lv_font_t * font, uint32_t letter) 802fd32: 4413 add r3, r2 802fd34: 009b lsls r3, r3, #2 802fd36: 440b add r3, r1 - 802fd38: 681b ldr r3, [r3, #0] - 802fd3a: 683a ldr r2, [r7, #0] - 802fd3c: 1ad3 subs r3, r2, r3 - 802fd3e: 62bb str r3, [r7, #40] ; 0x28 - if(rcp > fdsc->cmaps[i].range_length) continue; - 802fd40: 6afb ldr r3, [r7, #44] ; 0x2c - 802fd42: 6899 ldr r1, [r3, #8] - 802fd44: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fd46: 4613 mov r3, r2 - 802fd48: 009b lsls r3, r3, #2 - 802fd4a: 4413 add r3, r2 - 802fd4c: 009b lsls r3, r3, #2 - 802fd4e: 440b add r3, r1 - 802fd50: 889b ldrh r3, [r3, #4] - 802fd52: 461a mov r2, r3 - 802fd54: 6abb ldr r3, [r7, #40] ; 0x28 - 802fd56: 4293 cmp r3, r2 - 802fd58: f200 80ec bhi.w 802ff34 - uint32_t glyph_id = 0; - 802fd5c: 2300 movs r3, #0 - 802fd5e: 633b str r3, [r7, #48] ; 0x30 - if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY) { - 802fd60: 6afb ldr r3, [r7, #44] ; 0x2c - 802fd62: 6899 ldr r1, [r3, #8] - 802fd64: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fd66: 4613 mov r3, r2 - 802fd68: 009b lsls r3, r3, #2 - 802fd6a: 4413 add r3, r2 - 802fd6c: 009b lsls r3, r3, #2 - 802fd6e: 440b add r3, r1 - 802fd70: 7c9b ldrb r3, [r3, #18] - 802fd72: 2b02 cmp r3, #2 - 802fd74: d10d bne.n 802fd92 - glyph_id = fdsc->cmaps[i].glyph_id_start + rcp; - 802fd76: 6afb ldr r3, [r7, #44] ; 0x2c - 802fd78: 6899 ldr r1, [r3, #8] - 802fd7a: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fd7c: 4613 mov r3, r2 - 802fd7e: 009b lsls r3, r3, #2 - 802fd80: 4413 add r3, r2 - 802fd82: 009b lsls r3, r3, #2 - 802fd84: 440b add r3, r1 - 802fd86: 88db ldrh r3, [r3, #6] - 802fd88: 461a mov r2, r3 - 802fd8a: 6abb ldr r3, [r7, #40] ; 0x28 - 802fd8c: 4413 add r3, r2 - 802fd8e: 633b str r3, [r7, #48] ; 0x30 - 802fd90: e0c2 b.n 802ff18 - } - else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL) { - 802fd92: 6afb ldr r3, [r7, #44] ; 0x2c - 802fd94: 6899 ldr r1, [r3, #8] - 802fd96: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fd98: 4613 mov r3, r2 - 802fd9a: 009b lsls r3, r3, #2 - 802fd9c: 4413 add r3, r2 - 802fd9e: 009b lsls r3, r3, #2 - 802fda0: 440b add r3, r1 - 802fda2: 7c9b ldrb r3, [r3, #18] - 802fda4: 2b00 cmp r3, #0 - 802fda6: d11a bne.n 802fdde - const uint8_t * gid_ofs_8 = fdsc->cmaps[i].glyph_id_ofs_list; - 802fda8: 6afb ldr r3, [r7, #44] ; 0x2c - 802fdaa: 6899 ldr r1, [r3, #8] - 802fdac: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fdae: 4613 mov r3, r2 - 802fdb0: 009b lsls r3, r3, #2 - 802fdb2: 4413 add r3, r2 - 802fdb4: 009b lsls r3, r3, #2 - 802fdb6: 440b add r3, r1 - 802fdb8: 68db ldr r3, [r3, #12] - 802fdba: 613b str r3, [r7, #16] - glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_8[rcp]; - 802fdbc: 6afb ldr r3, [r7, #44] ; 0x2c - 802fdbe: 6899 ldr r1, [r3, #8] - 802fdc0: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fdc2: 4613 mov r3, r2 - 802fdc4: 009b lsls r3, r3, #2 - 802fdc6: 4413 add r3, r2 - 802fdc8: 009b lsls r3, r3, #2 - 802fdca: 440b add r3, r1 - 802fdcc: 88db ldrh r3, [r3, #6] - 802fdce: 4619 mov r1, r3 - 802fdd0: 693a ldr r2, [r7, #16] - 802fdd2: 6abb ldr r3, [r7, #40] ; 0x28 - 802fdd4: 4413 add r3, r2 - 802fdd6: 781b ldrb r3, [r3, #0] - 802fdd8: 440b add r3, r1 - 802fdda: 633b str r3, [r7, #48] ; 0x30 - 802fddc: e09c b.n 802ff18 + 802fd38: 88db ldrh r3, [r3, #6] + 802fd3a: 4619 mov r1, r3 + 802fd3c: 693a ldr r2, [r7, #16] + 802fd3e: 6abb ldr r3, [r7, #40] ; 0x28 + 802fd40: 4413 add r3, r2 + 802fd42: 781b ldrb r3, [r3, #0] + 802fd44: 440b add r3, r1 + 802fd46: 633b str r3, [r7, #48] ; 0x30 + 802fd48: e09c b.n 802fe84 } else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_SPARSE_TINY) { - 802fdde: 6afb ldr r3, [r7, #44] ; 0x2c - 802fde0: 6899 ldr r1, [r3, #8] - 802fde2: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fde4: 4613 mov r3, r2 - 802fde6: 009b lsls r3, r3, #2 - 802fde8: 4413 add r3, r2 - 802fdea: 009b lsls r3, r3, #2 - 802fdec: 440b add r3, r1 - 802fdee: 7c9b ldrb r3, [r3, #18] - 802fdf0: 2b03 cmp r3, #3 - 802fdf2: d13c bne.n 802fe6e + 802fd4a: 6afb ldr r3, [r7, #44] ; 0x2c + 802fd4c: 6899 ldr r1, [r3, #8] + 802fd4e: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fd50: 4613 mov r3, r2 + 802fd52: 009b lsls r3, r3, #2 + 802fd54: 4413 add r3, r2 + 802fd56: 009b lsls r3, r3, #2 + 802fd58: 440b add r3, r1 + 802fd5a: 7c9b ldrb r3, [r3, #18] + 802fd5c: 2b03 cmp r3, #3 + 802fd5e: d13c bne.n 802fdda uint16_t key = rcp; - 802fdf4: 6abb ldr r3, [r7, #40] ; 0x28 - 802fdf6: b29b uxth r3, r3 - 802fdf8: 81fb strh r3, [r7, #14] + 802fd60: 6abb ldr r3, [r7, #40] ; 0x28 + 802fd62: b29b uxth r3, r3 + 802fd64: 81fb strh r3, [r7, #14] uint16_t * p = _lv_utils_bsearch(&key, fdsc->cmaps[i].unicode_list, fdsc->cmaps[i].list_length, - 802fdfa: 6afb ldr r3, [r7, #44] ; 0x2c - 802fdfc: 6899 ldr r1, [r3, #8] - 802fdfe: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fe00: 4613 mov r3, r2 - 802fe02: 009b lsls r3, r3, #2 - 802fe04: 4413 add r3, r2 - 802fe06: 009b lsls r3, r3, #2 - 802fe08: 440b add r3, r1 - 802fe0a: 689c ldr r4, [r3, #8] - 802fe0c: 6afb ldr r3, [r7, #44] ; 0x2c - 802fe0e: 6899 ldr r1, [r3, #8] - 802fe10: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fe12: 4613 mov r3, r2 - 802fe14: 009b lsls r3, r3, #2 - 802fe16: 4413 add r3, r2 - 802fe18: 009b lsls r3, r3, #2 - 802fe1a: 440b add r3, r1 - 802fe1c: 8a1b ldrh r3, [r3, #16] - 802fe1e: 461a mov r2, r3 - 802fe20: f107 000e add.w r0, r7, #14 - 802fe24: 4b53 ldr r3, [pc, #332] ; (802ff74 ) - 802fe26: 9300 str r3, [sp, #0] - 802fe28: 2302 movs r3, #2 - 802fe2a: 4621 mov r1, r4 - 802fe2c: f006 ff90 bl 8036d50 <_lv_utils_bsearch> - 802fe30: 61b8 str r0, [r7, #24] + 802fd66: 6afb ldr r3, [r7, #44] ; 0x2c + 802fd68: 6899 ldr r1, [r3, #8] + 802fd6a: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fd6c: 4613 mov r3, r2 + 802fd6e: 009b lsls r3, r3, #2 + 802fd70: 4413 add r3, r2 + 802fd72: 009b lsls r3, r3, #2 + 802fd74: 440b add r3, r1 + 802fd76: 689c ldr r4, [r3, #8] + 802fd78: 6afb ldr r3, [r7, #44] ; 0x2c + 802fd7a: 6899 ldr r1, [r3, #8] + 802fd7c: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fd7e: 4613 mov r3, r2 + 802fd80: 009b lsls r3, r3, #2 + 802fd82: 4413 add r3, r2 + 802fd84: 009b lsls r3, r3, #2 + 802fd86: 440b add r3, r1 + 802fd88: 8a1b ldrh r3, [r3, #16] + 802fd8a: 461a mov r2, r3 + 802fd8c: f107 000e add.w r0, r7, #14 + 802fd90: 4b53 ldr r3, [pc, #332] ; (802fee0 ) + 802fd92: 9300 str r3, [sp, #0] + 802fd94: 2302 movs r3, #2 + 802fd96: 4621 mov r1, r4 + 802fd98: f006 ff90 bl 8036cbc <_lv_utils_bsearch> + 802fd9c: 61b8 str r0, [r7, #24] sizeof(fdsc->cmaps[i].unicode_list[0]), unicode_list_compare); if(p) { - 802fe32: 69bb ldr r3, [r7, #24] - 802fe34: 2b00 cmp r3, #0 - 802fe36: d06f beq.n 802ff18 + 802fd9e: 69bb ldr r3, [r7, #24] + 802fda0: 2b00 cmp r3, #0 + 802fda2: d06f beq.n 802fe84 lv_uintptr_t ofs = p - fdsc->cmaps[i].unicode_list; - 802fe38: 6afb ldr r3, [r7, #44] ; 0x2c - 802fe3a: 6899 ldr r1, [r3, #8] - 802fe3c: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fe3e: 4613 mov r3, r2 - 802fe40: 009b lsls r3, r3, #2 - 802fe42: 4413 add r3, r2 - 802fe44: 009b lsls r3, r3, #2 - 802fe46: 440b add r3, r1 - 802fe48: 689b ldr r3, [r3, #8] - 802fe4a: 69ba ldr r2, [r7, #24] - 802fe4c: 1ad3 subs r3, r2, r3 - 802fe4e: 105b asrs r3, r3, #1 - 802fe50: 617b str r3, [r7, #20] + 802fda4: 6afb ldr r3, [r7, #44] ; 0x2c + 802fda6: 6899 ldr r1, [r3, #8] + 802fda8: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fdaa: 4613 mov r3, r2 + 802fdac: 009b lsls r3, r3, #2 + 802fdae: 4413 add r3, r2 + 802fdb0: 009b lsls r3, r3, #2 + 802fdb2: 440b add r3, r1 + 802fdb4: 689b ldr r3, [r3, #8] + 802fdb6: 69ba ldr r2, [r7, #24] + 802fdb8: 1ad3 subs r3, r2, r3 + 802fdba: 105b asrs r3, r3, #1 + 802fdbc: 617b str r3, [r7, #20] glyph_id = fdsc->cmaps[i].glyph_id_start + ofs; - 802fe52: 6afb ldr r3, [r7, #44] ; 0x2c - 802fe54: 6899 ldr r1, [r3, #8] - 802fe56: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fe58: 4613 mov r3, r2 - 802fe5a: 009b lsls r3, r3, #2 - 802fe5c: 4413 add r3, r2 - 802fe5e: 009b lsls r3, r3, #2 - 802fe60: 440b add r3, r1 - 802fe62: 88db ldrh r3, [r3, #6] - 802fe64: 461a mov r2, r3 - 802fe66: 697b ldr r3, [r7, #20] - 802fe68: 4413 add r3, r2 - 802fe6a: 633b str r3, [r7, #48] ; 0x30 - 802fe6c: e054 b.n 802ff18 + 802fdbe: 6afb ldr r3, [r7, #44] ; 0x2c + 802fdc0: 6899 ldr r1, [r3, #8] + 802fdc2: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fdc4: 4613 mov r3, r2 + 802fdc6: 009b lsls r3, r3, #2 + 802fdc8: 4413 add r3, r2 + 802fdca: 009b lsls r3, r3, #2 + 802fdcc: 440b add r3, r1 + 802fdce: 88db ldrh r3, [r3, #6] + 802fdd0: 461a mov r2, r3 + 802fdd2: 697b ldr r3, [r7, #20] + 802fdd4: 4413 add r3, r2 + 802fdd6: 633b str r3, [r7, #48] ; 0x30 + 802fdd8: e054 b.n 802fe84 } } else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_SPARSE_FULL) { - 802fe6e: 6afb ldr r3, [r7, #44] ; 0x2c - 802fe70: 6899 ldr r1, [r3, #8] - 802fe72: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fe74: 4613 mov r3, r2 - 802fe76: 009b lsls r3, r3, #2 - 802fe78: 4413 add r3, r2 - 802fe7a: 009b lsls r3, r3, #2 - 802fe7c: 440b add r3, r1 - 802fe7e: 7c9b ldrb r3, [r3, #18] - 802fe80: 2b01 cmp r3, #1 - 802fe82: d149 bne.n 802ff18 + 802fdda: 6afb ldr r3, [r7, #44] ; 0x2c + 802fddc: 6899 ldr r1, [r3, #8] + 802fdde: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fde0: 4613 mov r3, r2 + 802fde2: 009b lsls r3, r3, #2 + 802fde4: 4413 add r3, r2 + 802fde6: 009b lsls r3, r3, #2 + 802fde8: 440b add r3, r1 + 802fdea: 7c9b ldrb r3, [r3, #18] + 802fdec: 2b01 cmp r3, #1 + 802fdee: d149 bne.n 802fe84 uint16_t key = rcp; - 802fe84: 6abb ldr r3, [r7, #40] ; 0x28 - 802fe86: b29b uxth r3, r3 - 802fe88: 81bb strh r3, [r7, #12] + 802fdf0: 6abb ldr r3, [r7, #40] ; 0x28 + 802fdf2: b29b uxth r3, r3 + 802fdf4: 81bb strh r3, [r7, #12] uint16_t * p = _lv_utils_bsearch(&key, fdsc->cmaps[i].unicode_list, fdsc->cmaps[i].list_length, - 802fe8a: 6afb ldr r3, [r7, #44] ; 0x2c - 802fe8c: 6899 ldr r1, [r3, #8] - 802fe8e: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fe90: 4613 mov r3, r2 - 802fe92: 009b lsls r3, r3, #2 - 802fe94: 4413 add r3, r2 - 802fe96: 009b lsls r3, r3, #2 - 802fe98: 440b add r3, r1 - 802fe9a: 689c ldr r4, [r3, #8] - 802fe9c: 6afb ldr r3, [r7, #44] ; 0x2c - 802fe9e: 6899 ldr r1, [r3, #8] - 802fea0: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fea2: 4613 mov r3, r2 - 802fea4: 009b lsls r3, r3, #2 - 802fea6: 4413 add r3, r2 - 802fea8: 009b lsls r3, r3, #2 - 802feaa: 440b add r3, r1 - 802feac: 8a1b ldrh r3, [r3, #16] - 802feae: 461a mov r2, r3 - 802feb0: f107 000c add.w r0, r7, #12 - 802feb4: 4b2f ldr r3, [pc, #188] ; (802ff74 ) - 802feb6: 9300 str r3, [sp, #0] - 802feb8: 2302 movs r3, #2 - 802feba: 4621 mov r1, r4 - 802febc: f006 ff48 bl 8036d50 <_lv_utils_bsearch> - 802fec0: 6278 str r0, [r7, #36] ; 0x24 + 802fdf6: 6afb ldr r3, [r7, #44] ; 0x2c + 802fdf8: 6899 ldr r1, [r3, #8] + 802fdfa: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fdfc: 4613 mov r3, r2 + 802fdfe: 009b lsls r3, r3, #2 + 802fe00: 4413 add r3, r2 + 802fe02: 009b lsls r3, r3, #2 + 802fe04: 440b add r3, r1 + 802fe06: 689c ldr r4, [r3, #8] + 802fe08: 6afb ldr r3, [r7, #44] ; 0x2c + 802fe0a: 6899 ldr r1, [r3, #8] + 802fe0c: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fe0e: 4613 mov r3, r2 + 802fe10: 009b lsls r3, r3, #2 + 802fe12: 4413 add r3, r2 + 802fe14: 009b lsls r3, r3, #2 + 802fe16: 440b add r3, r1 + 802fe18: 8a1b ldrh r3, [r3, #16] + 802fe1a: 461a mov r2, r3 + 802fe1c: f107 000c add.w r0, r7, #12 + 802fe20: 4b2f ldr r3, [pc, #188] ; (802fee0 ) + 802fe22: 9300 str r3, [sp, #0] + 802fe24: 2302 movs r3, #2 + 802fe26: 4621 mov r1, r4 + 802fe28: f006 ff48 bl 8036cbc <_lv_utils_bsearch> + 802fe2c: 6278 str r0, [r7, #36] ; 0x24 sizeof(fdsc->cmaps[i].unicode_list[0]), unicode_list_compare); if(p) { - 802fec2: 6a7b ldr r3, [r7, #36] ; 0x24 - 802fec4: 2b00 cmp r3, #0 - 802fec6: d027 beq.n 802ff18 + 802fe2e: 6a7b ldr r3, [r7, #36] ; 0x24 + 802fe30: 2b00 cmp r3, #0 + 802fe32: d027 beq.n 802fe84 lv_uintptr_t ofs = p - fdsc->cmaps[i].unicode_list; - 802fec8: 6afb ldr r3, [r7, #44] ; 0x2c - 802feca: 6899 ldr r1, [r3, #8] - 802fecc: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fece: 4613 mov r3, r2 - 802fed0: 009b lsls r3, r3, #2 - 802fed2: 4413 add r3, r2 - 802fed4: 009b lsls r3, r3, #2 - 802fed6: 440b add r3, r1 - 802fed8: 689b ldr r3, [r3, #8] - 802feda: 6a7a ldr r2, [r7, #36] ; 0x24 - 802fedc: 1ad3 subs r3, r2, r3 - 802fede: 105b asrs r3, r3, #1 - 802fee0: 623b str r3, [r7, #32] + 802fe34: 6afb ldr r3, [r7, #44] ; 0x2c + 802fe36: 6899 ldr r1, [r3, #8] + 802fe38: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fe3a: 4613 mov r3, r2 + 802fe3c: 009b lsls r3, r3, #2 + 802fe3e: 4413 add r3, r2 + 802fe40: 009b lsls r3, r3, #2 + 802fe42: 440b add r3, r1 + 802fe44: 689b ldr r3, [r3, #8] + 802fe46: 6a7a ldr r2, [r7, #36] ; 0x24 + 802fe48: 1ad3 subs r3, r2, r3 + 802fe4a: 105b asrs r3, r3, #1 + 802fe4c: 623b str r3, [r7, #32] const uint16_t * gid_ofs_16 = fdsc->cmaps[i].glyph_id_ofs_list; - 802fee2: 6afb ldr r3, [r7, #44] ; 0x2c - 802fee4: 6899 ldr r1, [r3, #8] - 802fee6: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fee8: 4613 mov r3, r2 - 802feea: 009b lsls r3, r3, #2 - 802feec: 4413 add r3, r2 - 802feee: 009b lsls r3, r3, #2 - 802fef0: 440b add r3, r1 - 802fef2: 68db ldr r3, [r3, #12] - 802fef4: 61fb str r3, [r7, #28] + 802fe4e: 6afb ldr r3, [r7, #44] ; 0x2c + 802fe50: 6899 ldr r1, [r3, #8] + 802fe52: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fe54: 4613 mov r3, r2 + 802fe56: 009b lsls r3, r3, #2 + 802fe58: 4413 add r3, r2 + 802fe5a: 009b lsls r3, r3, #2 + 802fe5c: 440b add r3, r1 + 802fe5e: 68db ldr r3, [r3, #12] + 802fe60: 61fb str r3, [r7, #28] glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_16[ofs]; - 802fef6: 6afb ldr r3, [r7, #44] ; 0x2c - 802fef8: 6899 ldr r1, [r3, #8] - 802fefa: 8efa ldrh r2, [r7, #54] ; 0x36 - 802fefc: 4613 mov r3, r2 - 802fefe: 009b lsls r3, r3, #2 - 802ff00: 4413 add r3, r2 - 802ff02: 009b lsls r3, r3, #2 - 802ff04: 440b add r3, r1 - 802ff06: 88db ldrh r3, [r3, #6] - 802ff08: 4619 mov r1, r3 - 802ff0a: 6a3b ldr r3, [r7, #32] - 802ff0c: 005b lsls r3, r3, #1 - 802ff0e: 69fa ldr r2, [r7, #28] - 802ff10: 4413 add r3, r2 - 802ff12: 881b ldrh r3, [r3, #0] - 802ff14: 440b add r3, r1 - 802ff16: 633b str r3, [r7, #48] ; 0x30 + 802fe62: 6afb ldr r3, [r7, #44] ; 0x2c + 802fe64: 6899 ldr r1, [r3, #8] + 802fe66: 8efa ldrh r2, [r7, #54] ; 0x36 + 802fe68: 4613 mov r3, r2 + 802fe6a: 009b lsls r3, r3, #2 + 802fe6c: 4413 add r3, r2 + 802fe6e: 009b lsls r3, r3, #2 + 802fe70: 440b add r3, r1 + 802fe72: 88db ldrh r3, [r3, #6] + 802fe74: 4619 mov r1, r3 + 802fe76: 6a3b ldr r3, [r7, #32] + 802fe78: 005b lsls r3, r3, #1 + 802fe7a: 69fa ldr r2, [r7, #28] + 802fe7c: 4413 add r3, r2 + 802fe7e: 881b ldrh r3, [r3, #0] + 802fe80: 440b add r3, r1 + 802fe82: 633b str r3, [r7, #48] ; 0x30 } } /*Update the cache*/ if(fdsc->cache) { - 802ff18: 6afb ldr r3, [r7, #44] ; 0x2c - 802ff1a: 695b ldr r3, [r3, #20] - 802ff1c: 2b00 cmp r3, #0 - 802ff1e: d007 beq.n 802ff30 + 802fe84: 6afb ldr r3, [r7, #44] ; 0x2c + 802fe86: 695b ldr r3, [r3, #20] + 802fe88: 2b00 cmp r3, #0 + 802fe8a: d007 beq.n 802fe9c fdsc->cache->last_letter = letter; - 802ff20: 6afb ldr r3, [r7, #44] ; 0x2c - 802ff22: 695b ldr r3, [r3, #20] - 802ff24: 683a ldr r2, [r7, #0] - 802ff26: 601a str r2, [r3, #0] + 802fe8c: 6afb ldr r3, [r7, #44] ; 0x2c + 802fe8e: 695b ldr r3, [r3, #20] + 802fe90: 683a ldr r2, [r7, #0] + 802fe92: 601a str r2, [r3, #0] fdsc->cache->last_glyph_id = glyph_id; - 802ff28: 6afb ldr r3, [r7, #44] ; 0x2c - 802ff2a: 695b ldr r3, [r3, #20] - 802ff2c: 6b3a ldr r2, [r7, #48] ; 0x30 - 802ff2e: 605a str r2, [r3, #4] + 802fe94: 6afb ldr r3, [r7, #44] ; 0x2c + 802fe96: 695b ldr r3, [r3, #20] + 802fe98: 6b3a ldr r2, [r7, #48] ; 0x30 + 802fe9a: 605a str r2, [r3, #4] } return glyph_id; - 802ff30: 6b3b ldr r3, [r7, #48] ; 0x30 - 802ff32: e01a b.n 802ff6a + 802fe9c: 6b3b ldr r3, [r7, #48] ; 0x30 + 802fe9e: e01a b.n 802fed6 if(rcp > fdsc->cmaps[i].range_length) continue; - 802ff34: bf00 nop + 802fea0: bf00 nop for(i = 0; i < fdsc->cmap_num; i++) { - 802ff36: 8efb ldrh r3, [r7, #54] ; 0x36 - 802ff38: 3301 adds r3, #1 - 802ff3a: 86fb strh r3, [r7, #54] ; 0x36 - 802ff3c: 6afb ldr r3, [r7, #44] ; 0x2c - 802ff3e: 8a5b ldrh r3, [r3, #18] - 802ff40: f3c3 0308 ubfx r3, r3, #0, #9 - 802ff44: b29b uxth r3, r3 - 802ff46: 461a mov r2, r3 - 802ff48: 8efb ldrh r3, [r7, #54] ; 0x36 - 802ff4a: 4293 cmp r3, r2 - 802ff4c: f4ff aeec bcc.w 802fd28 + 802fea2: 8efb ldrh r3, [r7, #54] ; 0x36 + 802fea4: 3301 adds r3, #1 + 802fea6: 86fb strh r3, [r7, #54] ; 0x36 + 802fea8: 6afb ldr r3, [r7, #44] ; 0x2c + 802feaa: 8a5b ldrh r3, [r3, #18] + 802feac: f3c3 0308 ubfx r3, r3, #0, #9 + 802feb0: b29b uxth r3, r3 + 802feb2: 461a mov r2, r3 + 802feb4: 8efb ldrh r3, [r7, #54] ; 0x36 + 802feb6: 4293 cmp r3, r2 + 802feb8: f4ff aeec bcc.w 802fc94 } if(fdsc->cache) { - 802ff50: 6afb ldr r3, [r7, #44] ; 0x2c - 802ff52: 695b ldr r3, [r3, #20] - 802ff54: 2b00 cmp r3, #0 - 802ff56: d007 beq.n 802ff68 + 802febc: 6afb ldr r3, [r7, #44] ; 0x2c + 802febe: 695b ldr r3, [r3, #20] + 802fec0: 2b00 cmp r3, #0 + 802fec2: d007 beq.n 802fed4 fdsc->cache->last_letter = letter; - 802ff58: 6afb ldr r3, [r7, #44] ; 0x2c - 802ff5a: 695b ldr r3, [r3, #20] - 802ff5c: 683a ldr r2, [r7, #0] - 802ff5e: 601a str r2, [r3, #0] + 802fec4: 6afb ldr r3, [r7, #44] ; 0x2c + 802fec6: 695b ldr r3, [r3, #20] + 802fec8: 683a ldr r2, [r7, #0] + 802feca: 601a str r2, [r3, #0] fdsc->cache->last_glyph_id = 0; - 802ff60: 6afb ldr r3, [r7, #44] ; 0x2c - 802ff62: 695b ldr r3, [r3, #20] - 802ff64: 2200 movs r2, #0 - 802ff66: 605a str r2, [r3, #4] + 802fecc: 6afb ldr r3, [r7, #44] ; 0x2c + 802fece: 695b ldr r3, [r3, #20] + 802fed0: 2200 movs r2, #0 + 802fed2: 605a str r2, [r3, #4] } return 0; - 802ff68: 2300 movs r3, #0 + 802fed4: 2300 movs r3, #0 } - 802ff6a: 4618 mov r0, r3 - 802ff6c: 373c adds r7, #60 ; 0x3c - 802ff6e: 46bd mov sp, r7 - 802ff70: bd90 pop {r4, r7, pc} - 802ff72: bf00 nop - 802ff74: 08030155 .word 0x08030155 + 802fed6: 4618 mov r0, r3 + 802fed8: 373c adds r7, #60 ; 0x3c + 802feda: 46bd mov sp, r7 + 802fedc: bd90 pop {r4, r7, pc} + 802fede: bf00 nop + 802fee0: 080300c1 .word 0x080300c1 -0802ff78 : +0802fee4 : static int8_t get_kern_value(const lv_font_t * font, uint32_t gid_left, uint32_t gid_right) { - 802ff78: b580 push {r7, lr} - 802ff7a: b094 sub sp, #80 ; 0x50 - 802ff7c: af02 add r7, sp, #8 - 802ff7e: 60f8 str r0, [r7, #12] - 802ff80: 60b9 str r1, [r7, #8] - 802ff82: 607a str r2, [r7, #4] + 802fee4: b580 push {r7, lr} + 802fee6: b094 sub sp, #80 ; 0x50 + 802fee8: af02 add r7, sp, #8 + 802feea: 60f8 str r0, [r7, #12] + 802feec: 60b9 str r1, [r7, #8] + 802feee: 607a str r2, [r7, #4] lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *)font->dsc; - 802ff84: 68fb ldr r3, [r7, #12] - 802ff86: 691b ldr r3, [r3, #16] - 802ff88: 643b str r3, [r7, #64] ; 0x40 + 802fef0: 68fb ldr r3, [r7, #12] + 802fef2: 691b ldr r3, [r3, #16] + 802fef4: 643b str r3, [r7, #64] ; 0x40 int8_t value = 0; - 802ff8a: 2300 movs r3, #0 - 802ff8c: f887 3047 strb.w r3, [r7, #71] ; 0x47 + 802fef6: 2300 movs r3, #0 + 802fef8: f887 3047 strb.w r3, [r7, #71] ; 0x47 if(fdsc->kern_classes == 0) { - 802ff90: 6c3b ldr r3, [r7, #64] ; 0x40 - 802ff92: 7cdb ldrb r3, [r3, #19] - 802ff94: f003 0320 and.w r3, r3, #32 - 802ff98: b2db uxtb r3, r3 - 802ff9a: 2b00 cmp r3, #0 - 802ff9c: d160 bne.n 8030060 + 802fefc: 6c3b ldr r3, [r7, #64] ; 0x40 + 802fefe: 7cdb ldrb r3, [r3, #19] + 802ff00: f003 0320 and.w r3, r3, #32 + 802ff04: b2db uxtb r3, r3 + 802ff06: 2b00 cmp r3, #0 + 802ff08: d160 bne.n 802ffcc /*Kern pairs*/ const lv_font_fmt_txt_kern_pair_t * kdsc = fdsc->kern_dsc; - 802ff9e: 6c3b ldr r3, [r7, #64] ; 0x40 - 802ffa0: 68db ldr r3, [r3, #12] - 802ffa2: 637b str r3, [r7, #52] ; 0x34 + 802ff0a: 6c3b ldr r3, [r7, #64] ; 0x40 + 802ff0c: 68db ldr r3, [r3, #12] + 802ff0e: 637b str r3, [r7, #52] ; 0x34 if(kdsc->glyph_ids_size == 0) { - 802ffa4: 6b7b ldr r3, [r7, #52] ; 0x34 - 802ffa6: 7adb ldrb r3, [r3, #11] - 802ffa8: f023 033f bic.w r3, r3, #63 ; 0x3f - 802ffac: b2db uxtb r3, r3 - 802ffae: 2b00 cmp r3, #0 - 802ffb0: d129 bne.n 8030006 + 802ff10: 6b7b ldr r3, [r7, #52] ; 0x34 + 802ff12: 7adb ldrb r3, [r3, #11] + 802ff14: f023 033f bic.w r3, r3, #63 ; 0x3f + 802ff18: b2db uxtb r3, r3 + 802ff1a: 2b00 cmp r3, #0 + 802ff1c: d129 bne.n 802ff72 /*Use binary search to find the kern value. *The pairs are ordered left_id first, then right_id secondly.*/ const uint16_t * g_ids = kdsc->glyph_ids; - 802ffb2: 6b7b ldr r3, [r7, #52] ; 0x34 - 802ffb4: 681b ldr r3, [r3, #0] - 802ffb6: 627b str r3, [r7, #36] ; 0x24 + 802ff1e: 6b7b ldr r3, [r7, #52] ; 0x34 + 802ff20: 681b ldr r3, [r3, #0] + 802ff22: 627b str r3, [r7, #36] ; 0x24 uint16_t g_id_both = (gid_right << 8) + gid_left; /*Create one number from the ids*/ - 802ffb8: 687b ldr r3, [r7, #4] - 802ffba: b29b uxth r3, r3 - 802ffbc: 021b lsls r3, r3, #8 - 802ffbe: b29a uxth r2, r3 - 802ffc0: 68bb ldr r3, [r7, #8] - 802ffc2: b29b uxth r3, r3 - 802ffc4: 4413 add r3, r2 - 802ffc6: b29b uxth r3, r3 - 802ffc8: 837b strh r3, [r7, #26] + 802ff24: 687b ldr r3, [r7, #4] + 802ff26: b29b uxth r3, r3 + 802ff28: 021b lsls r3, r3, #8 + 802ff2a: b29a uxth r2, r3 + 802ff2c: 68bb ldr r3, [r7, #8] + 802ff2e: b29b uxth r3, r3 + 802ff30: 4413 add r3, r2 + 802ff32: b29b uxth r3, r3 + 802ff34: 837b strh r3, [r7, #26] uint16_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 2, kern_pair_8_compare); - 802ffca: 6b7b ldr r3, [r7, #52] ; 0x34 - 802ffcc: 689b ldr r3, [r3, #8] - 802ffce: f3c3 031d ubfx r3, r3, #0, #30 - 802ffd2: 461a mov r2, r3 - 802ffd4: f107 001a add.w r0, r7, #26 - 802ffd8: 4b39 ldr r3, [pc, #228] ; (80300c0 ) - 802ffda: 9300 str r3, [sp, #0] - 802ffdc: 2302 movs r3, #2 - 802ffde: 6a79 ldr r1, [r7, #36] ; 0x24 - 802ffe0: f006 feb6 bl 8036d50 <_lv_utils_bsearch> - 802ffe4: 6238 str r0, [r7, #32] + 802ff36: 6b7b ldr r3, [r7, #52] ; 0x34 + 802ff38: 689b ldr r3, [r3, #8] + 802ff3a: f3c3 031d ubfx r3, r3, #0, #30 + 802ff3e: 461a mov r2, r3 + 802ff40: f107 001a add.w r0, r7, #26 + 802ff44: 4b39 ldr r3, [pc, #228] ; (803002c ) + 802ff46: 9300 str r3, [sp, #0] + 802ff48: 2302 movs r3, #2 + 802ff4a: 6a79 ldr r1, [r7, #36] ; 0x24 + 802ff4c: f006 feb6 bl 8036cbc <_lv_utils_bsearch> + 802ff50: 6238 str r0, [r7, #32] /*If the `g_id_both` were found get its index from the pointer*/ if(kid_p) { - 802ffe6: 6a3b ldr r3, [r7, #32] - 802ffe8: 2b00 cmp r3, #0 - 802ffea: d063 beq.n 80300b4 + 802ff52: 6a3b ldr r3, [r7, #32] + 802ff54: 2b00 cmp r3, #0 + 802ff56: d063 beq.n 8030020 lv_uintptr_t ofs = kid_p - g_ids; - 802ffec: 6a3a ldr r2, [r7, #32] - 802ffee: 6a7b ldr r3, [r7, #36] ; 0x24 - 802fff0: 1ad3 subs r3, r2, r3 - 802fff2: 105b asrs r3, r3, #1 - 802fff4: 61fb str r3, [r7, #28] + 802ff58: 6a3a ldr r2, [r7, #32] + 802ff5a: 6a7b ldr r3, [r7, #36] ; 0x24 + 802ff5c: 1ad3 subs r3, r2, r3 + 802ff5e: 105b asrs r3, r3, #1 + 802ff60: 61fb str r3, [r7, #28] value = kdsc->values[ofs]; - 802fff6: 6b7b ldr r3, [r7, #52] ; 0x34 - 802fff8: 685a ldr r2, [r3, #4] - 802fffa: 69fb ldr r3, [r7, #28] - 802fffc: 4413 add r3, r2 - 802fffe: 781b ldrb r3, [r3, #0] - 8030000: f887 3047 strb.w r3, [r7, #71] ; 0x47 - 8030004: e056 b.n 80300b4 + 802ff62: 6b7b ldr r3, [r7, #52] ; 0x34 + 802ff64: 685a ldr r2, [r3, #4] + 802ff66: 69fb ldr r3, [r7, #28] + 802ff68: 4413 add r3, r2 + 802ff6a: 781b ldrb r3, [r3, #0] + 802ff6c: f887 3047 strb.w r3, [r7, #71] ; 0x47 + 802ff70: e056 b.n 8030020 } } else if(kdsc->glyph_ids_size == 1) { - 8030006: 6b7b ldr r3, [r7, #52] ; 0x34 - 8030008: 7adb ldrb r3, [r3, #11] - 803000a: f023 033f bic.w r3, r3, #63 ; 0x3f - 803000e: b2db uxtb r3, r3 - 8030010: 2b40 cmp r3, #64 ; 0x40 - 8030012: d14f bne.n 80300b4 + 802ff72: 6b7b ldr r3, [r7, #52] ; 0x34 + 802ff74: 7adb ldrb r3, [r3, #11] + 802ff76: f023 033f bic.w r3, r3, #63 ; 0x3f + 802ff7a: b2db uxtb r3, r3 + 802ff7c: 2b40 cmp r3, #64 ; 0x40 + 802ff7e: d14f bne.n 8030020 /*Use binary search to find the kern value. *The pairs are ordered left_id first, then right_id secondly.*/ const uint32_t * g_ids = kdsc->glyph_ids; - 8030014: 6b7b ldr r3, [r7, #52] ; 0x34 - 8030016: 681b ldr r3, [r3, #0] - 8030018: 633b str r3, [r7, #48] ; 0x30 + 802ff80: 6b7b ldr r3, [r7, #52] ; 0x34 + 802ff82: 681b ldr r3, [r3, #0] + 802ff84: 633b str r3, [r7, #48] ; 0x30 uint32_t g_id_both = (gid_right << 16) + gid_left; /*Create one number from the ids*/ - 803001a: 687b ldr r3, [r7, #4] - 803001c: 041a lsls r2, r3, #16 - 803001e: 68bb ldr r3, [r7, #8] - 8030020: 4413 add r3, r2 - 8030022: 617b str r3, [r7, #20] + 802ff86: 687b ldr r3, [r7, #4] + 802ff88: 041a lsls r2, r3, #16 + 802ff8a: 68bb ldr r3, [r7, #8] + 802ff8c: 4413 add r3, r2 + 802ff8e: 617b str r3, [r7, #20] uint32_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 4, kern_pair_16_compare); - 8030024: 6b7b ldr r3, [r7, #52] ; 0x34 - 8030026: 689b ldr r3, [r3, #8] - 8030028: f3c3 031d ubfx r3, r3, #0, #30 - 803002c: 461a mov r2, r3 - 803002e: f107 0014 add.w r0, r7, #20 - 8030032: 4b24 ldr r3, [pc, #144] ; (80300c4 ) - 8030034: 9300 str r3, [sp, #0] - 8030036: 2304 movs r3, #4 - 8030038: 6b39 ldr r1, [r7, #48] ; 0x30 - 803003a: f006 fe89 bl 8036d50 <_lv_utils_bsearch> - 803003e: 62f8 str r0, [r7, #44] ; 0x2c + 802ff90: 6b7b ldr r3, [r7, #52] ; 0x34 + 802ff92: 689b ldr r3, [r3, #8] + 802ff94: f3c3 031d ubfx r3, r3, #0, #30 + 802ff98: 461a mov r2, r3 + 802ff9a: f107 0014 add.w r0, r7, #20 + 802ff9e: 4b24 ldr r3, [pc, #144] ; (8030030 ) + 802ffa0: 9300 str r3, [sp, #0] + 802ffa2: 2304 movs r3, #4 + 802ffa4: 6b39 ldr r1, [r7, #48] ; 0x30 + 802ffa6: f006 fe89 bl 8036cbc <_lv_utils_bsearch> + 802ffaa: 62f8 str r0, [r7, #44] ; 0x2c /*If the `g_id_both` were found get its index from the pointer*/ if(kid_p) { - 8030040: 6afb ldr r3, [r7, #44] ; 0x2c - 8030042: 2b00 cmp r3, #0 - 8030044: d036 beq.n 80300b4 + 802ffac: 6afb ldr r3, [r7, #44] ; 0x2c + 802ffae: 2b00 cmp r3, #0 + 802ffb0: d036 beq.n 8030020 lv_uintptr_t ofs = kid_p - g_ids; - 8030046: 6afa ldr r2, [r7, #44] ; 0x2c - 8030048: 6b3b ldr r3, [r7, #48] ; 0x30 - 803004a: 1ad3 subs r3, r2, r3 - 803004c: 109b asrs r3, r3, #2 - 803004e: 62bb str r3, [r7, #40] ; 0x28 + 802ffb2: 6afa ldr r2, [r7, #44] ; 0x2c + 802ffb4: 6b3b ldr r3, [r7, #48] ; 0x30 + 802ffb6: 1ad3 subs r3, r2, r3 + 802ffb8: 109b asrs r3, r3, #2 + 802ffba: 62bb str r3, [r7, #40] ; 0x28 value = kdsc->values[ofs]; - 8030050: 6b7b ldr r3, [r7, #52] ; 0x34 - 8030052: 685a ldr r2, [r3, #4] - 8030054: 6abb ldr r3, [r7, #40] ; 0x28 - 8030056: 4413 add r3, r2 - 8030058: 781b ldrb r3, [r3, #0] - 803005a: f887 3047 strb.w r3, [r7, #71] ; 0x47 - 803005e: e029 b.n 80300b4 + 802ffbc: 6b7b ldr r3, [r7, #52] ; 0x34 + 802ffbe: 685a ldr r2, [r3, #4] + 802ffc0: 6abb ldr r3, [r7, #40] ; 0x28 + 802ffc2: 4413 add r3, r2 + 802ffc4: 781b ldrb r3, [r3, #0] + 802ffc6: f887 3047 strb.w r3, [r7, #71] ; 0x47 + 802ffca: e029 b.n 8030020 /*Invalid value*/ } } else { /*Kern classes*/ const lv_font_fmt_txt_kern_classes_t * kdsc = fdsc->kern_dsc; - 8030060: 6c3b ldr r3, [r7, #64] ; 0x40 - 8030062: 68db ldr r3, [r3, #12] - 8030064: 63fb str r3, [r7, #60] ; 0x3c + 802ffcc: 6c3b ldr r3, [r7, #64] ; 0x40 + 802ffce: 68db ldr r3, [r3, #12] + 802ffd0: 63fb str r3, [r7, #60] ; 0x3c uint8_t left_class = kdsc->left_class_mapping[gid_left]; - 8030066: 6bfb ldr r3, [r7, #60] ; 0x3c - 8030068: 685a ldr r2, [r3, #4] - 803006a: 68bb ldr r3, [r7, #8] - 803006c: 4413 add r3, r2 - 803006e: 781b ldrb r3, [r3, #0] - 8030070: f887 303b strb.w r3, [r7, #59] ; 0x3b + 802ffd2: 6bfb ldr r3, [r7, #60] ; 0x3c + 802ffd4: 685a ldr r2, [r3, #4] + 802ffd6: 68bb ldr r3, [r7, #8] + 802ffd8: 4413 add r3, r2 + 802ffda: 781b ldrb r3, [r3, #0] + 802ffdc: f887 303b strb.w r3, [r7, #59] ; 0x3b uint8_t right_class = kdsc->right_class_mapping[gid_right]; - 8030074: 6bfb ldr r3, [r7, #60] ; 0x3c - 8030076: 689a ldr r2, [r3, #8] - 8030078: 687b ldr r3, [r7, #4] - 803007a: 4413 add r3, r2 - 803007c: 781b ldrb r3, [r3, #0] - 803007e: f887 303a strb.w r3, [r7, #58] ; 0x3a + 802ffe0: 6bfb ldr r3, [r7, #60] ; 0x3c + 802ffe2: 689a ldr r2, [r3, #8] + 802ffe4: 687b ldr r3, [r7, #4] + 802ffe6: 4413 add r3, r2 + 802ffe8: 781b ldrb r3, [r3, #0] + 802ffea: f887 303a strb.w r3, [r7, #58] ; 0x3a /*If class = 0, kerning not exist for that glyph *else got the value form `class_pair_values` 2D array*/ if(left_class > 0 && right_class > 0) { - 8030082: f897 303b ldrb.w r3, [r7, #59] ; 0x3b - 8030086: 2b00 cmp r3, #0 - 8030088: d014 beq.n 80300b4 - 803008a: f897 303a ldrb.w r3, [r7, #58] ; 0x3a - 803008e: 2b00 cmp r3, #0 - 8030090: d010 beq.n 80300b4 + 802ffee: f897 303b ldrb.w r3, [r7, #59] ; 0x3b + 802fff2: 2b00 cmp r3, #0 + 802fff4: d014 beq.n 8030020 + 802fff6: f897 303a ldrb.w r3, [r7, #58] ; 0x3a + 802fffa: 2b00 cmp r3, #0 + 802fffc: d010 beq.n 8030020 value = kdsc->class_pair_values[(left_class - 1) * kdsc->right_class_cnt + (right_class - 1)]; - 8030092: 6bfb ldr r3, [r7, #60] ; 0x3c - 8030094: 681b ldr r3, [r3, #0] - 8030096: f897 203b ldrb.w r2, [r7, #59] ; 0x3b - 803009a: 3a01 subs r2, #1 - 803009c: 6bf9 ldr r1, [r7, #60] ; 0x3c - 803009e: 7b49 ldrb r1, [r1, #13] - 80300a0: fb02 f101 mul.w r1, r2, r1 - 80300a4: f897 203a ldrb.w r2, [r7, #58] ; 0x3a - 80300a8: 3a01 subs r2, #1 - 80300aa: 440a add r2, r1 - 80300ac: 4413 add r3, r2 - 80300ae: 781b ldrb r3, [r3, #0] - 80300b0: f887 3047 strb.w r3, [r7, #71] ; 0x47 + 802fffe: 6bfb ldr r3, [r7, #60] ; 0x3c + 8030000: 681b ldr r3, [r3, #0] + 8030002: f897 203b ldrb.w r2, [r7, #59] ; 0x3b + 8030006: 3a01 subs r2, #1 + 8030008: 6bf9 ldr r1, [r7, #60] ; 0x3c + 803000a: 7b49 ldrb r1, [r1, #13] + 803000c: fb02 f101 mul.w r1, r2, r1 + 8030010: f897 203a ldrb.w r2, [r7, #58] ; 0x3a + 8030014: 3a01 subs r2, #1 + 8030016: 440a add r2, r1 + 8030018: 4413 add r3, r2 + 803001a: 781b ldrb r3, [r3, #0] + 803001c: f887 3047 strb.w r3, [r7, #71] ; 0x47 } } return value; - 80300b4: f997 3047 ldrsb.w r3, [r7, #71] ; 0x47 + 8030020: f997 3047 ldrsb.w r3, [r7, #71] ; 0x47 } - 80300b8: 4618 mov r0, r3 - 80300ba: 3748 adds r7, #72 ; 0x48 - 80300bc: 46bd mov sp, r7 - 80300be: bd80 pop {r7, pc} - 80300c0: 080300c9 .word 0x080300c9 - 80300c4: 0803010f .word 0x0803010f + 8030024: 4618 mov r0, r3 + 8030026: 3748 adds r7, #72 ; 0x48 + 8030028: 46bd mov sp, r7 + 803002a: bd80 pop {r7, pc} + 803002c: 08030035 .word 0x08030035 + 8030030: 0803007b .word 0x0803007b -080300c8 : +08030034 : static int32_t kern_pair_8_compare(const void * ref, const void * element) { - 80300c8: b480 push {r7} - 80300ca: b085 sub sp, #20 - 80300cc: af00 add r7, sp, #0 - 80300ce: 6078 str r0, [r7, #4] - 80300d0: 6039 str r1, [r7, #0] + 8030034: b480 push {r7} + 8030036: b085 sub sp, #20 + 8030038: af00 add r7, sp, #0 + 803003a: 6078 str r0, [r7, #4] + 803003c: 6039 str r1, [r7, #0] const uint8_t * ref8_p = ref; - 80300d2: 687b ldr r3, [r7, #4] - 80300d4: 60fb str r3, [r7, #12] + 803003e: 687b ldr r3, [r7, #4] + 8030040: 60fb str r3, [r7, #12] const uint8_t * element8_p = element; - 80300d6: 683b ldr r3, [r7, #0] - 80300d8: 60bb str r3, [r7, #8] + 8030042: 683b ldr r3, [r7, #0] + 8030044: 60bb str r3, [r7, #8] /*If the MSB is different it will matter. If not return the diff. of the LSB*/ if(ref8_p[0] != element8_p[0]) return (int32_t)ref8_p[0] - element8_p[0]; - 80300da: 68fb ldr r3, [r7, #12] - 80300dc: 781a ldrb r2, [r3, #0] - 80300de: 68bb ldr r3, [r7, #8] - 80300e0: 781b ldrb r3, [r3, #0] - 80300e2: 429a cmp r2, r3 - 80300e4: d006 beq.n 80300f4 - 80300e6: 68fb ldr r3, [r7, #12] - 80300e8: 781b ldrb r3, [r3, #0] - 80300ea: 461a mov r2, r3 - 80300ec: 68bb ldr r3, [r7, #8] - 80300ee: 781b ldrb r3, [r3, #0] - 80300f0: 1ad3 subs r3, r2, r3 - 80300f2: e007 b.n 8030104 + 8030046: 68fb ldr r3, [r7, #12] + 8030048: 781a ldrb r2, [r3, #0] + 803004a: 68bb ldr r3, [r7, #8] + 803004c: 781b ldrb r3, [r3, #0] + 803004e: 429a cmp r2, r3 + 8030050: d006 beq.n 8030060 + 8030052: 68fb ldr r3, [r7, #12] + 8030054: 781b ldrb r3, [r3, #0] + 8030056: 461a mov r2, r3 + 8030058: 68bb ldr r3, [r7, #8] + 803005a: 781b ldrb r3, [r3, #0] + 803005c: 1ad3 subs r3, r2, r3 + 803005e: e007 b.n 8030070 else return (int32_t) ref8_p[1] - element8_p[1]; - 80300f4: 68fb ldr r3, [r7, #12] - 80300f6: 3301 adds r3, #1 - 80300f8: 781b ldrb r3, [r3, #0] - 80300fa: 461a mov r2, r3 - 80300fc: 68bb ldr r3, [r7, #8] - 80300fe: 3301 adds r3, #1 - 8030100: 781b ldrb r3, [r3, #0] - 8030102: 1ad3 subs r3, r2, r3 + 8030060: 68fb ldr r3, [r7, #12] + 8030062: 3301 adds r3, #1 + 8030064: 781b ldrb r3, [r3, #0] + 8030066: 461a mov r2, r3 + 8030068: 68bb ldr r3, [r7, #8] + 803006a: 3301 adds r3, #1 + 803006c: 781b ldrb r3, [r3, #0] + 803006e: 1ad3 subs r3, r2, r3 } - 8030104: 4618 mov r0, r3 - 8030106: 3714 adds r7, #20 - 8030108: 46bd mov sp, r7 - 803010a: bc80 pop {r7} - 803010c: 4770 bx lr + 8030070: 4618 mov r0, r3 + 8030072: 3714 adds r7, #20 + 8030074: 46bd mov sp, r7 + 8030076: bc80 pop {r7} + 8030078: 4770 bx lr -0803010e : +0803007a : static int32_t kern_pair_16_compare(const void * ref, const void * element) { - 803010e: b480 push {r7} - 8030110: b085 sub sp, #20 - 8030112: af00 add r7, sp, #0 - 8030114: 6078 str r0, [r7, #4] - 8030116: 6039 str r1, [r7, #0] + 803007a: b480 push {r7} + 803007c: b085 sub sp, #20 + 803007e: af00 add r7, sp, #0 + 8030080: 6078 str r0, [r7, #4] + 8030082: 6039 str r1, [r7, #0] const uint16_t * ref16_p = ref; - 8030118: 687b ldr r3, [r7, #4] - 803011a: 60fb str r3, [r7, #12] + 8030084: 687b ldr r3, [r7, #4] + 8030086: 60fb str r3, [r7, #12] const uint16_t * element16_p = element; - 803011c: 683b ldr r3, [r7, #0] - 803011e: 60bb str r3, [r7, #8] + 8030088: 683b ldr r3, [r7, #0] + 803008a: 60bb str r3, [r7, #8] /*If the MSB is different it will matter. If not return the diff. of the LSB*/ if(ref16_p[0] != element16_p[0]) return (int32_t)ref16_p[0] - element16_p[0]; - 8030120: 68fb ldr r3, [r7, #12] - 8030122: 881a ldrh r2, [r3, #0] - 8030124: 68bb ldr r3, [r7, #8] - 8030126: 881b ldrh r3, [r3, #0] - 8030128: 429a cmp r2, r3 - 803012a: d006 beq.n 803013a - 803012c: 68fb ldr r3, [r7, #12] - 803012e: 881b ldrh r3, [r3, #0] - 8030130: 461a mov r2, r3 - 8030132: 68bb ldr r3, [r7, #8] - 8030134: 881b ldrh r3, [r3, #0] - 8030136: 1ad3 subs r3, r2, r3 - 8030138: e007 b.n 803014a + 803008c: 68fb ldr r3, [r7, #12] + 803008e: 881a ldrh r2, [r3, #0] + 8030090: 68bb ldr r3, [r7, #8] + 8030092: 881b ldrh r3, [r3, #0] + 8030094: 429a cmp r2, r3 + 8030096: d006 beq.n 80300a6 + 8030098: 68fb ldr r3, [r7, #12] + 803009a: 881b ldrh r3, [r3, #0] + 803009c: 461a mov r2, r3 + 803009e: 68bb ldr r3, [r7, #8] + 80300a0: 881b ldrh r3, [r3, #0] + 80300a2: 1ad3 subs r3, r2, r3 + 80300a4: e007 b.n 80300b6 else return (int32_t) ref16_p[1] - element16_p[1]; - 803013a: 68fb ldr r3, [r7, #12] - 803013c: 3302 adds r3, #2 - 803013e: 881b ldrh r3, [r3, #0] - 8030140: 461a mov r2, r3 - 8030142: 68bb ldr r3, [r7, #8] - 8030144: 3302 adds r3, #2 - 8030146: 881b ldrh r3, [r3, #0] - 8030148: 1ad3 subs r3, r2, r3 + 80300a6: 68fb ldr r3, [r7, #12] + 80300a8: 3302 adds r3, #2 + 80300aa: 881b ldrh r3, [r3, #0] + 80300ac: 461a mov r2, r3 + 80300ae: 68bb ldr r3, [r7, #8] + 80300b0: 3302 adds r3, #2 + 80300b2: 881b ldrh r3, [r3, #0] + 80300b4: 1ad3 subs r3, r2, r3 } - 803014a: 4618 mov r0, r3 - 803014c: 3714 adds r7, #20 - 803014e: 46bd mov sp, r7 - 8030150: bc80 pop {r7} - 8030152: 4770 bx lr + 80300b6: 4618 mov r0, r3 + 80300b8: 3714 adds r7, #20 + 80300ba: 46bd mov sp, r7 + 80300bc: bc80 pop {r7} + 80300be: 4770 bx lr -08030154 : +080300c0 : * @retval = 0 Reference is equal to element. * @retval > 0 Reference is greater than element. * */ static int32_t unicode_list_compare(const void * ref, const void * element) { - 8030154: b480 push {r7} - 8030156: b083 sub sp, #12 - 8030158: af00 add r7, sp, #0 - 803015a: 6078 str r0, [r7, #4] - 803015c: 6039 str r1, [r7, #0] + 80300c0: b480 push {r7} + 80300c2: b083 sub sp, #12 + 80300c4: af00 add r7, sp, #0 + 80300c6: 6078 str r0, [r7, #4] + 80300c8: 6039 str r1, [r7, #0] return ((int32_t)(*(uint16_t *)ref)) - ((int32_t)(*(uint16_t *)element)); - 803015e: 687b ldr r3, [r7, #4] - 8030160: 881b ldrh r3, [r3, #0] - 8030162: 461a mov r2, r3 - 8030164: 683b ldr r3, [r7, #0] - 8030166: 881b ldrh r3, [r3, #0] - 8030168: 1ad3 subs r3, r2, r3 + 80300ca: 687b ldr r3, [r7, #4] + 80300cc: 881b ldrh r3, [r3, #0] + 80300ce: 461a mov r2, r3 + 80300d0: 683b ldr r3, [r7, #0] + 80300d2: 881b ldrh r3, [r3, #0] + 80300d4: 1ad3 subs r3, r2, r3 } - 803016a: 4618 mov r0, r3 - 803016c: 370c adds r7, #12 - 803016e: 46bd mov sp, r7 - 8030170: bc80 pop {r7} - 8030172: 4770 bx lr + 80300d6: 4618 mov r0, r3 + 80300d8: 370c adds r7, #12 + 80300da: 46bd mov sp, r7 + 80300dc: bc80 pop {r7} + 80300de: 4770 bx lr -08030174 : +080300e0 : uint16_t bright = (uint16_t)(3u * LV_COLOR_GET_R32(c32) + LV_COLOR_GET_B32(c32) + 4u * LV_COLOR_GET_G32(c32)); return (uint8_t)(bright >> 3); } static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b) { - 8030174: b490 push {r4, r7} - 8030176: b082 sub sp, #8 - 8030178: af00 add r7, sp, #0 - 803017a: 4604 mov r4, r0 - 803017c: 4608 mov r0, r1 - 803017e: 4611 mov r1, r2 - 8030180: 4622 mov r2, r4 - 8030182: 71fa strb r2, [r7, #7] - 8030184: 4602 mov r2, r0 - 8030186: 71ba strb r2, [r7, #6] - 8030188: 460a mov r2, r1 - 803018a: 717a strb r2, [r7, #5] + 80300e0: b490 push {r4, r7} + 80300e2: b082 sub sp, #8 + 80300e4: af00 add r7, sp, #0 + 80300e6: 4604 mov r4, r0 + 80300e8: 4608 mov r0, r1 + 80300ea: 4611 mov r1, r2 + 80300ec: 4622 mov r2, r4 + 80300ee: 71fa strb r2, [r7, #7] + 80300f0: 4602 mov r2, r0 + 80300f2: 71ba strb r2, [r7, #6] + 80300f4: 460a mov r2, r1 + 80300f6: 717a strb r2, [r7, #5] return _LV_COLOR_MAKE_TYPE_HELPER LV_COLOR_MAKE(r, g, b); - 803018c: 797a ldrb r2, [r7, #5] - 803018e: 08d2 lsrs r2, r2, #3 - 8030190: b2d2 uxtb r2, r2 - 8030192: f002 021f and.w r2, r2, #31 - 8030196: b2d0 uxtb r0, r2 - 8030198: 79ba ldrb r2, [r7, #6] - 803019a: 0892 lsrs r2, r2, #2 - 803019c: b2d2 uxtb r2, r2 - 803019e: f002 023f and.w r2, r2, #63 ; 0x3f - 80301a2: b2d1 uxtb r1, r2 - 80301a4: 79fa ldrb r2, [r7, #7] - 80301a6: 08d2 lsrs r2, r2, #3 - 80301a8: b2d2 uxtb r2, r2 - 80301aa: f002 021f and.w r2, r2, #31 - 80301ae: b2d2 uxtb r2, r2 - 80301b0: f360 0304 bfi r3, r0, #0, #5 - 80301b4: f361 134a bfi r3, r1, #5, #6 - 80301b8: f362 23cf bfi r3, r2, #11, #5 + 80300f8: 797a ldrb r2, [r7, #5] + 80300fa: 08d2 lsrs r2, r2, #3 + 80300fc: b2d2 uxtb r2, r2 + 80300fe: f002 021f and.w r2, r2, #31 + 8030102: b2d0 uxtb r0, r2 + 8030104: 79ba ldrb r2, [r7, #6] + 8030106: 0892 lsrs r2, r2, #2 + 8030108: b2d2 uxtb r2, r2 + 803010a: f002 023f and.w r2, r2, #63 ; 0x3f + 803010e: b2d1 uxtb r1, r2 + 8030110: 79fa ldrb r2, [r7, #7] + 8030112: 08d2 lsrs r2, r2, #3 + 8030114: b2d2 uxtb r2, r2 + 8030116: f002 021f and.w r2, r2, #31 + 803011a: b2d2 uxtb r2, r2 + 803011c: f360 0304 bfi r3, r0, #0, #5 + 8030120: f361 134a bfi r3, r1, #5, #6 + 8030124: f362 23cf bfi r3, r2, #11, #5 } - 80301bc: 4618 mov r0, r3 - 80301be: 3708 adds r7, #8 - 80301c0: 46bd mov sp, r7 - 80301c2: bc90 pop {r4, r7} - 80301c4: 4770 bx lr + 8030128: 4618 mov r0, r3 + 803012a: 3708 adds r7, #8 + 803012c: 46bd mov sp, r7 + 803012e: bc90 pop {r4, r7} + 8030130: 4770 bx lr -080301c6 : +08030132 : static inline lv_color_t lv_color_hex(uint32_t c) { - 80301c6: b480 push {r7} - 80301c8: b085 sub sp, #20 - 80301ca: af00 add r7, sp, #0 - 80301cc: 6078 str r0, [r7, #4] + 8030132: b480 push {r7} + 8030134: b085 sub sp, #20 + 8030136: af00 add r7, sp, #0 + 8030138: 6078 str r0, [r7, #4] r = ((c & 0xF80000) >> 8) g = ((c & 0xFC00) >> 5) b = ((c & 0xFF) >> 3) rgb565 = r | g | b That's 3 mask, 3 bitshifts and 2 or operations */ r.full = (uint16_t)(((c & 0xF80000) >> 8) | ((c & 0xFC00) >> 5) | ((c & 0xFF) >> 3)); - 80301ce: 687b ldr r3, [r7, #4] - 80301d0: 0a1b lsrs r3, r3, #8 - 80301d2: b29b uxth r3, r3 - 80301d4: f423 63ff bic.w r3, r3, #2040 ; 0x7f8 - 80301d8: f023 0307 bic.w r3, r3, #7 - 80301dc: b29a uxth r2, r3 - 80301de: 687b ldr r3, [r7, #4] - 80301e0: 095b lsrs r3, r3, #5 - 80301e2: b29b uxth r3, r3 - 80301e4: f403 63fc and.w r3, r3, #2016 ; 0x7e0 - 80301e8: b29b uxth r3, r3 - 80301ea: 4313 orrs r3, r2 - 80301ec: b29a uxth r2, r3 - 80301ee: 687b ldr r3, [r7, #4] - 80301f0: 08db lsrs r3, r3, #3 - 80301f2: b29b uxth r3, r3 - 80301f4: f003 031f and.w r3, r3, #31 - 80301f8: b29b uxth r3, r3 - 80301fa: 4313 orrs r3, r2 - 80301fc: b29b uxth r3, r3 - 80301fe: 81bb strh r3, [r7, #12] + 803013a: 687b ldr r3, [r7, #4] + 803013c: 0a1b lsrs r3, r3, #8 + 803013e: b29b uxth r3, r3 + 8030140: f423 63ff bic.w r3, r3, #2040 ; 0x7f8 + 8030144: f023 0307 bic.w r3, r3, #7 + 8030148: b29a uxth r2, r3 + 803014a: 687b ldr r3, [r7, #4] + 803014c: 095b lsrs r3, r3, #5 + 803014e: b29b uxth r3, r3 + 8030150: f403 63fc and.w r3, r3, #2016 ; 0x7e0 + 8030154: b29b uxth r3, r3 + 8030156: 4313 orrs r3, r2 + 8030158: b29a uxth r2, r3 + 803015a: 687b ldr r3, [r7, #4] + 803015c: 08db lsrs r3, r3, #3 + 803015e: b29b uxth r3, r3 + 8030160: f003 031f and.w r3, r3, #31 + 8030164: b29b uxth r3, r3 + 8030166: 4313 orrs r3, r2 + 8030168: b29b uxth r3, r3 + 803016a: 81bb strh r3, [r7, #12] #else /* We want: rrrr rrrr GGGg gggg bbbb bbbb => gggb bbbb rrrr rGGG */ r.full = (uint16_t)(((c & 0xF80000) >> 16) | ((c & 0xFC00) >> 13) | ((c & 0x1C00) << 3) | ((c & 0xF8) << 5)); #endif return r; - 8030200: 89bb ldrh r3, [r7, #12] + 803016c: 89bb ldrh r3, [r7, #12] r.full = c | 0xFF000000; return r; #else /*LV_COLOR_DEPTH == 8*/ return lv_color_make((uint8_t)((c >> 16) & 0xFF), (uint8_t)((c >> 8) & 0xFF), (uint8_t)(c & 0xFF)); #endif } - 8030202: 4618 mov r0, r3 - 8030204: 3714 adds r7, #20 - 8030206: 46bd mov sp, r7 - 8030208: bc80 pop {r7} - 803020a: 4770 bx lr + 803016e: 4618 mov r0, r3 + 8030170: 3714 adds r7, #20 + 8030172: 46bd mov sp, r7 + 8030174: bc80 pop {r7} + 8030176: 4770 bx lr -0803020c : +08030178 : **********************/ /*Source: https://vuetifyjs.com/en/styles/colors/#material-colors*/ lv_color_t lv_palette_main(lv_palette_t p); static inline lv_color_t lv_color_white(void) { - 803020c: b580 push {r7, lr} - 803020e: af00 add r7, sp, #0 + 8030178: b580 push {r7, lr} + 803017a: af00 add r7, sp, #0 return lv_color_make(0xff, 0xff, 0xff); - 8030210: 22ff movs r2, #255 ; 0xff - 8030212: 21ff movs r1, #255 ; 0xff - 8030214: 20ff movs r0, #255 ; 0xff - 8030216: f7ff ffad bl 8030174 - 803021a: 4603 mov r3, r0 + 803017c: 22ff movs r2, #255 ; 0xff + 803017e: 21ff movs r1, #255 ; 0xff + 8030180: 20ff movs r0, #255 ; 0xff + 8030182: f7ff ffad bl 80300e0 + 8030186: 4603 mov r3, r0 } - 803021c: 4618 mov r0, r3 - 803021e: bd80 pop {r7, pc} + 8030188: 4618 mov r0, r3 + 803018a: bd80 pop {r7, pc} -08030220 : +0803018c : /** * Remove all styles from an object * @param obj pointer to an object */ static inline void lv_obj_remove_style_all(struct _lv_obj_t * obj) { - 8030220: b580 push {r7, lr} - 8030222: b082 sub sp, #8 - 8030224: af00 add r7, sp, #0 - 8030226: 6078 str r0, [r7, #4] + 803018c: b580 push {r7, lr} + 803018e: b082 sub sp, #8 + 8030190: af00 add r7, sp, #0 + 8030192: 6078 str r0, [r7, #4] lv_obj_remove_style(obj, NULL, LV_PART_ANY | LV_STATE_ANY); - 8030228: 4a04 ldr r2, [pc, #16] ; (803023c ) - 803022a: 2100 movs r1, #0 - 803022c: 6878 ldr r0, [r7, #4] - 803022e: f7dd fbfb bl 800da28 + 8030194: 4a04 ldr r2, [pc, #16] ; (80301a8 ) + 8030196: 2100 movs r1, #0 + 8030198: 6878 ldr r0, [r7, #4] + 803019a: f7dd fc0f bl 800d9bc } - 8030232: bf00 nop - 8030234: 3708 adds r7, #8 - 8030236: 46bd mov sp, r7 - 8030238: bd80 pop {r7, pc} - 803023a: bf00 nop - 803023c: 000fffff .word 0x000fffff + 803019e: bf00 nop + 80301a0: 3708 adds r7, #8 + 80301a2: 46bd mov sp, r7 + 80301a4: bd80 pop {r7, pc} + 80301a6: bf00 nop + 80301a8: 000fffff .word 0x000fffff -08030240 : +080301ac : * It is used to surly have known values in the fields ant not memory junk. * After it you can set the fields. * @param driver pointer to driver variable to initialize */ void lv_disp_drv_init(lv_disp_drv_t * driver) { - 8030240: b590 push {r4, r7, lr} - 8030242: b083 sub sp, #12 - 8030244: af00 add r7, sp, #0 - 8030246: 6078 str r0, [r7, #4] + 80301ac: b590 push {r4, r7, lr} + 80301ae: b083 sub sp, #12 + 80301b0: af00 add r7, sp, #0 + 80301b2: 6078 str r0, [r7, #4] lv_memset_00(driver, sizeof(lv_disp_drv_t)); - 8030248: 214c movs r1, #76 ; 0x4c - 803024a: 6878 ldr r0, [r7, #4] - 803024c: f002 ff80 bl 8033150 + 80301b4: 214c movs r1, #76 ; 0x4c + 80301b6: 6878 ldr r0, [r7, #4] + 80301b8: f002 ff80 bl 80330bc driver->hor_res = 320; - 8030250: 687b ldr r3, [r7, #4] - 8030252: f44f 72a0 mov.w r2, #320 ; 0x140 - 8030256: 801a strh r2, [r3, #0] + 80301bc: 687b ldr r3, [r7, #4] + 80301be: f44f 72a0 mov.w r2, #320 ; 0x140 + 80301c2: 801a strh r2, [r3, #0] driver->ver_res = 240; - 8030258: 687b ldr r3, [r7, #4] - 803025a: 22f0 movs r2, #240 ; 0xf0 - 803025c: 805a strh r2, [r3, #2] + 80301c4: 687b ldr r3, [r7, #4] + 80301c6: 22f0 movs r2, #240 ; 0xf0 + 80301c8: 805a strh r2, [r3, #2] driver->physical_hor_res = -1; - 803025e: 687b ldr r3, [r7, #4] - 8030260: f64f 72ff movw r2, #65535 ; 0xffff - 8030264: 809a strh r2, [r3, #4] + 80301ca: 687b ldr r3, [r7, #4] + 80301cc: f64f 72ff movw r2, #65535 ; 0xffff + 80301d0: 809a strh r2, [r3, #4] driver->physical_ver_res = -1; - 8030266: 687b ldr r3, [r7, #4] - 8030268: f64f 72ff movw r2, #65535 ; 0xffff - 803026c: 80da strh r2, [r3, #6] + 80301d2: 687b ldr r3, [r7, #4] + 80301d4: f64f 72ff movw r2, #65535 ; 0xffff + 80301d8: 80da strh r2, [r3, #6] driver->offset_x = 0; - 803026e: 687b ldr r3, [r7, #4] - 8030270: 2200 movs r2, #0 - 8030272: 811a strh r2, [r3, #8] + 80301da: 687b ldr r3, [r7, #4] + 80301dc: 2200 movs r2, #0 + 80301de: 811a strh r2, [r3, #8] driver->offset_y = 0; - 8030274: 687b ldr r3, [r7, #4] - 8030276: 2200 movs r2, #0 - 8030278: 815a strh r2, [r3, #10] + 80301e0: 687b ldr r3, [r7, #4] + 80301e2: 2200 movs r2, #0 + 80301e4: 815a strh r2, [r3, #10] driver->antialiasing = LV_COLOR_DEPTH > 8 ? 1 : 0; - 803027a: 687a ldr r2, [r7, #4] - 803027c: 7c13 ldrb r3, [r2, #16] - 803027e: f043 0308 orr.w r3, r3, #8 - 8030282: 7413 strb r3, [r2, #16] + 80301e6: 687a ldr r2, [r7, #4] + 80301e8: 7c13 ldrb r3, [r2, #16] + 80301ea: f043 0308 orr.w r3, r3, #8 + 80301ee: 7413 strb r3, [r2, #16] driver->screen_transp = LV_COLOR_SCREEN_TRANSP; - 8030284: 687a ldr r2, [r7, #4] - 8030286: 7c13 ldrb r3, [r2, #16] - 8030288: f36f 1386 bfc r3, #6, #1 - 803028c: 7413 strb r3, [r2, #16] + 80301f0: 687a ldr r2, [r7, #4] + 80301f2: 7c13 ldrb r3, [r2, #16] + 80301f4: f36f 1386 bfc r3, #6, #1 + 80301f8: 7413 strb r3, [r2, #16] driver->dpi = LV_DPI_DEF; - 803028e: 687a ldr r2, [r7, #4] - 8030290: 6913 ldr r3, [r2, #16] - 8030292: 2182 movs r1, #130 ; 0x82 - 8030294: f361 13d0 bfi r3, r1, #7, #10 - 8030298: 6113 str r3, [r2, #16] + 80301fa: 687a ldr r2, [r7, #4] + 80301fc: 6913 ldr r3, [r2, #16] + 80301fe: 2182 movs r1, #130 ; 0x82 + 8030200: f361 13d0 bfi r3, r1, #7, #10 + 8030204: 6113 str r3, [r2, #16] driver->color_chroma_key = LV_COLOR_CHROMA_KEY; - 803029a: 687c ldr r4, [r7, #4] - 803029c: f44f 407f mov.w r0, #65280 ; 0xff00 - 80302a0: f7ff ff91 bl 80301c6 - 80302a4: 86a0 strh r0, [r4, #52] ; 0x34 + 8030206: 687c ldr r4, [r7, #4] + 8030208: f44f 407f mov.w r0, #65280 ; 0xff00 + 803020c: f7ff ff91 bl 8030132 + 8030210: 86a0 strh r0, [r4, #52] ; 0x34 #elif LV_USE_GPU_SDL driver->draw_ctx_init = lv_draw_sdl_init_ctx; driver->draw_ctx_deinit = lv_draw_sdl_deinit_ctx; driver->draw_ctx_size = sizeof(lv_draw_sdl_ctx_t); #else driver->draw_ctx_init = lv_draw_sw_init_ctx; - 80302a6: 687b ldr r3, [r7, #4] - 80302a8: 4a05 ldr r2, [pc, #20] ; (80302c0 ) - 80302aa: 63da str r2, [r3, #60] ; 0x3c + 8030212: 687b ldr r3, [r7, #4] + 8030214: 4a05 ldr r2, [pc, #20] ; (803022c ) + 8030216: 63da str r2, [r3, #60] ; 0x3c driver->draw_ctx_deinit = lv_draw_sw_init_ctx; - 80302ac: 687b ldr r3, [r7, #4] - 80302ae: 4a04 ldr r2, [pc, #16] ; (80302c0 ) - 80302b0: 641a str r2, [r3, #64] ; 0x40 + 8030218: 687b ldr r3, [r7, #4] + 803021a: 4a04 ldr r2, [pc, #16] ; (803022c ) + 803021c: 641a str r2, [r3, #64] ; 0x40 driver->draw_ctx_size = sizeof(lv_draw_sw_ctx_t); - 80302b2: 687b ldr r3, [r7, #4] - 80302b4: 2238 movs r2, #56 ; 0x38 - 80302b6: 645a str r2, [r3, #68] ; 0x44 + 803021e: 687b ldr r3, [r7, #4] + 8030220: 2238 movs r2, #56 ; 0x38 + 8030222: 645a str r2, [r3, #68] ; 0x44 #endif } - 80302b8: bf00 nop - 80302ba: 370c adds r7, #12 - 80302bc: 46bd mov sp, r7 - 80302be: bd90 pop {r4, r7, pc} - 80302c0: 08017db5 .word 0x08017db5 + 8030224: bf00 nop + 8030226: 370c adds r7, #12 + 8030228: 46bd mov sp, r7 + 803022a: bd90 pop {r4, r7, pc} + 803022c: 08017d21 .word 0x08017d21 -080302c4 : +08030230 : * It lets LVGL to render next frame into the other buffer while previous is being * sent. Set to `NULL` if unused. * @param size_in_px_cnt size of the `buf1` and `buf2` in pixel count. */ void lv_disp_draw_buf_init(lv_disp_draw_buf_t * draw_buf, void * buf1, void * buf2, uint32_t size_in_px_cnt) { - 80302c4: b580 push {r7, lr} - 80302c6: b084 sub sp, #16 - 80302c8: af00 add r7, sp, #0 - 80302ca: 60f8 str r0, [r7, #12] - 80302cc: 60b9 str r1, [r7, #8] - 80302ce: 607a str r2, [r7, #4] - 80302d0: 603b str r3, [r7, #0] + 8030230: b580 push {r7, lr} + 8030232: b084 sub sp, #16 + 8030234: af00 add r7, sp, #0 + 8030236: 60f8 str r0, [r7, #12] + 8030238: 60b9 str r1, [r7, #8] + 803023a: 607a str r2, [r7, #4] + 803023c: 603b str r3, [r7, #0] lv_memset_00(draw_buf, sizeof(lv_disp_draw_buf_t)); - 80302d2: 211c movs r1, #28 - 80302d4: 68f8 ldr r0, [r7, #12] - 80302d6: f002 ff3b bl 8033150 + 803023e: 211c movs r1, #28 + 8030240: 68f8 ldr r0, [r7, #12] + 8030242: f002 ff3b bl 80330bc draw_buf->buf1 = buf1; - 80302da: 68fb ldr r3, [r7, #12] - 80302dc: 68ba ldr r2, [r7, #8] - 80302de: 601a str r2, [r3, #0] + 8030246: 68fb ldr r3, [r7, #12] + 8030248: 68ba ldr r2, [r7, #8] + 803024a: 601a str r2, [r3, #0] draw_buf->buf2 = buf2; - 80302e0: 68fb ldr r3, [r7, #12] - 80302e2: 687a ldr r2, [r7, #4] - 80302e4: 605a str r2, [r3, #4] + 803024c: 68fb ldr r3, [r7, #12] + 803024e: 687a ldr r2, [r7, #4] + 8030250: 605a str r2, [r3, #4] draw_buf->buf_act = draw_buf->buf1; - 80302e6: 68fb ldr r3, [r7, #12] - 80302e8: 681a ldr r2, [r3, #0] - 80302ea: 68fb ldr r3, [r7, #12] - 80302ec: 609a str r2, [r3, #8] + 8030252: 68fb ldr r3, [r7, #12] + 8030254: 681a ldr r2, [r3, #0] + 8030256: 68fb ldr r3, [r7, #12] + 8030258: 609a str r2, [r3, #8] draw_buf->size = size_in_px_cnt; - 80302ee: 68fb ldr r3, [r7, #12] - 80302f0: 683a ldr r2, [r7, #0] - 80302f2: 60da str r2, [r3, #12] + 803025a: 68fb ldr r3, [r7, #12] + 803025c: 683a ldr r2, [r7, #0] + 803025e: 60da str r2, [r3, #12] } - 80302f4: bf00 nop - 80302f6: 3710 adds r7, #16 - 80302f8: 46bd mov sp, r7 - 80302fa: bd80 pop {r7, pc} + 8030260: bf00 nop + 8030262: 3710 adds r7, #16 + 8030264: 46bd mov sp, r7 + 8030266: bd80 pop {r7, pc} -080302fc : +08030268 : * Automatically set the first display as active. * @param driver pointer to an initialized 'lv_disp_drv_t' variable. Only its pointer is saved! * @return pointer to the new display or NULL on error */ lv_disp_t * lv_disp_drv_register(lv_disp_drv_t * driver) { - 80302fc: b590 push {r4, r7, lr} - 80302fe: b089 sub sp, #36 ; 0x24 - 8030300: af02 add r7, sp, #8 - 8030302: 6078 str r0, [r7, #4] + 8030268: b590 push {r4, r7, lr} + 803026a: b089 sub sp, #36 ; 0x24 + 803026c: af02 add r7, sp, #8 + 803026e: 6078 str r0, [r7, #4] lv_disp_t * disp = _lv_ll_ins_head(&LV_GC_ROOT(_lv_disp_ll)); - 8030304: 486d ldr r0, [pc, #436] ; (80304bc ) - 8030306: f001 ff43 bl 8032190 <_lv_ll_ins_head> - 803030a: 6178 str r0, [r7, #20] + 8030270: 486d ldr r0, [pc, #436] ; (8030428 ) + 8030272: f001 ff43 bl 80320fc <_lv_ll_ins_head> + 8030276: 6178 str r0, [r7, #20] if(!disp) { - 803030c: 697b ldr r3, [r7, #20] - 803030e: 2b00 cmp r3, #0 - 8030310: d105 bne.n 803031e + 8030278: 697b ldr r3, [r7, #20] + 803027a: 2b00 cmp r3, #0 + 803027c: d105 bne.n 803028a LV_ASSERT_MALLOC(disp); - 8030312: 697b ldr r3, [r7, #20] - 8030314: 2b00 cmp r3, #0 - 8030316: d100 bne.n 803031a - 8030318: e7fe b.n 8030318 + 803027e: 697b ldr r3, [r7, #20] + 8030280: 2b00 cmp r3, #0 + 8030282: d100 bne.n 8030286 + 8030284: e7fe b.n 8030284 return NULL; - 803031a: 2300 movs r3, #0 - 803031c: e0c9 b.n 80304b2 + 8030286: 2300 movs r3, #0 + 8030288: e0c9 b.n 803041e } /*Create a draw context if not created yet*/ if(driver->draw_ctx == NULL) { - 803031e: 687b ldr r3, [r7, #4] - 8030320: 6b9b ldr r3, [r3, #56] ; 0x38 - 8030322: 2b00 cmp r3, #0 - 8030324: d116 bne.n 8030354 + 803028a: 687b ldr r3, [r7, #4] + 803028c: 6b9b ldr r3, [r3, #56] ; 0x38 + 803028e: 2b00 cmp r3, #0 + 8030290: d116 bne.n 80302c0 lv_draw_ctx_t * draw_ctx = lv_mem_alloc(driver->draw_ctx_size); - 8030326: 687b ldr r3, [r7, #4] - 8030328: 6c5b ldr r3, [r3, #68] ; 0x44 - 803032a: 4618 mov r0, r3 - 803032c: f002 fab4 bl 8032898 - 8030330: 6138 str r0, [r7, #16] + 8030292: 687b ldr r3, [r7, #4] + 8030294: 6c5b ldr r3, [r3, #68] ; 0x44 + 8030296: 4618 mov r0, r3 + 8030298: f002 fab4 bl 8032804 + 803029c: 6138 str r0, [r7, #16] LV_ASSERT_MALLOC(draw_ctx); - 8030332: 693b ldr r3, [r7, #16] - 8030334: 2b00 cmp r3, #0 - 8030336: d100 bne.n 803033a - 8030338: e7fe b.n 8030338 + 803029e: 693b ldr r3, [r7, #16] + 80302a0: 2b00 cmp r3, #0 + 80302a2: d100 bne.n 80302a6 + 80302a4: e7fe b.n 80302a4 if(draw_ctx == NULL) return NULL; - 803033a: 693b ldr r3, [r7, #16] - 803033c: 2b00 cmp r3, #0 - 803033e: d101 bne.n 8030344 - 8030340: 2300 movs r3, #0 - 8030342: e0b6 b.n 80304b2 + 80302a6: 693b ldr r3, [r7, #16] + 80302a8: 2b00 cmp r3, #0 + 80302aa: d101 bne.n 80302b0 + 80302ac: 2300 movs r3, #0 + 80302ae: e0b6 b.n 803041e driver->draw_ctx_init(driver, draw_ctx); - 8030344: 687b ldr r3, [r7, #4] - 8030346: 6bdb ldr r3, [r3, #60] ; 0x3c - 8030348: 6939 ldr r1, [r7, #16] - 803034a: 6878 ldr r0, [r7, #4] - 803034c: 4798 blx r3 + 80302b0: 687b ldr r3, [r7, #4] + 80302b2: 6bdb ldr r3, [r3, #60] ; 0x3c + 80302b4: 6939 ldr r1, [r7, #16] + 80302b6: 6878 ldr r0, [r7, #4] + 80302b8: 4798 blx r3 driver->draw_ctx = draw_ctx; - 803034e: 687b ldr r3, [r7, #4] - 8030350: 693a ldr r2, [r7, #16] - 8030352: 639a str r2, [r3, #56] ; 0x38 + 80302ba: 687b ldr r3, [r7, #4] + 80302bc: 693a ldr r2, [r7, #16] + 80302be: 639a str r2, [r3, #56] ; 0x38 } lv_memset_00(disp, sizeof(lv_disp_t)); - 8030354: f44f 71ac mov.w r1, #344 ; 0x158 - 8030358: 6978 ldr r0, [r7, #20] - 803035a: f002 fef9 bl 8033150 + 80302c0: f44f 71ac mov.w r1, #344 ; 0x158 + 80302c4: 6978 ldr r0, [r7, #20] + 80302c6: f002 fef9 bl 80330bc disp->driver = driver; - 803035e: 697b ldr r3, [r7, #20] - 8030360: 687a ldr r2, [r7, #4] - 8030362: 601a str r2, [r3, #0] + 80302ca: 697b ldr r3, [r7, #20] + 80302cc: 687a ldr r2, [r7, #4] + 80302ce: 601a str r2, [r3, #0] lv_disp_t * disp_def_tmp = disp_def; - 8030364: 4b56 ldr r3, [pc, #344] ; (80304c0 ) - 8030366: 681b ldr r3, [r3, #0] - 8030368: 60fb str r3, [r7, #12] + 80302d0: 4b56 ldr r3, [pc, #344] ; (803042c ) + 80302d2: 681b ldr r3, [r3, #0] + 80302d4: 60fb str r3, [r7, #12] disp_def = disp; /*Temporarily change the default screen to create the default screens on the - 803036a: 4a55 ldr r2, [pc, #340] ; (80304c0 ) - 803036c: 697b ldr r3, [r7, #20] - 803036e: 6013 str r3, [r2, #0] + 80302d6: 4a55 ldr r2, [pc, #340] ; (803042c ) + 80302d8: 697b ldr r3, [r7, #20] + 80302da: 6013 str r3, [r2, #0] new display*/ /*Create a refresh timer*/ disp->refr_timer = lv_timer_create(_lv_disp_refr_timer, LV_DISP_DEF_REFR_PERIOD, disp); - 8030370: 697a ldr r2, [r7, #20] - 8030372: 211e movs r1, #30 - 8030374: 4853 ldr r0, [pc, #332] ; (80304c4 ) - 8030376: f004 febb bl 80350f0 - 803037a: 4602 mov r2, r0 - 803037c: 697b ldr r3, [r7, #20] - 803037e: 605a str r2, [r3, #4] + 80302dc: 697a ldr r2, [r7, #20] + 80302de: 211e movs r1, #30 + 80302e0: 4853 ldr r0, [pc, #332] ; (8030430 ) + 80302e2: f004 febb bl 803505c + 80302e6: 4602 mov r2, r0 + 80302e8: 697b ldr r3, [r7, #20] + 80302ea: 605a str r2, [r3, #4] LV_ASSERT_MALLOC(disp->refr_timer); - 8030380: 697b ldr r3, [r7, #20] - 8030382: 685b ldr r3, [r3, #4] - 8030384: 2b00 cmp r3, #0 - 8030386: d100 bne.n 803038a - 8030388: e7fe b.n 8030388 + 80302ec: 697b ldr r3, [r7, #20] + 80302ee: 685b ldr r3, [r3, #4] + 80302f0: 2b00 cmp r3, #0 + 80302f2: d100 bne.n 80302f6 + 80302f4: e7fe b.n 80302f4 if(disp->refr_timer == NULL) { - 803038a: 697b ldr r3, [r7, #20] - 803038c: 685b ldr r3, [r3, #4] - 803038e: 2b00 cmp r3, #0 - 8030390: d104 bne.n 803039c + 80302f6: 697b ldr r3, [r7, #20] + 80302f8: 685b ldr r3, [r3, #4] + 80302fa: 2b00 cmp r3, #0 + 80302fc: d104 bne.n 8030308 lv_mem_free(disp); - 8030392: 6978 ldr r0, [r7, #20] - 8030394: f002 faa2 bl 80328dc + 80302fe: 6978 ldr r0, [r7, #20] + 8030300: f002 faa2 bl 8032848 return NULL; - 8030398: 2300 movs r3, #0 - 803039a: e08a b.n 80304b2 + 8030304: 2300 movs r3, #0 + 8030306: e08a b.n 803041e } if(driver->full_refresh && driver->draw_buf->size < (uint32_t)driver->hor_res * driver->ver_res) { - 803039c: 687b ldr r3, [r7, #4] - 803039e: 7c1b ldrb r3, [r3, #16] - 80303a0: f003 0302 and.w r3, r3, #2 - 80303a4: b2db uxtb r3, r3 - 80303a6: 2b00 cmp r3, #0 - 80303a8: d012 beq.n 80303d0 - 80303aa: 687b ldr r3, [r7, #4] - 80303ac: 68db ldr r3, [r3, #12] - 80303ae: 68da ldr r2, [r3, #12] - 80303b0: 687b ldr r3, [r7, #4] - 80303b2: f9b3 3000 ldrsh.w r3, [r3] - 80303b6: 4619 mov r1, r3 - 80303b8: 687b ldr r3, [r7, #4] - 80303ba: f9b3 3002 ldrsh.w r3, [r3, #2] - 80303be: fb01 f303 mul.w r3, r1, r3 - 80303c2: 429a cmp r2, r3 - 80303c4: d204 bcs.n 80303d0 + 8030308: 687b ldr r3, [r7, #4] + 803030a: 7c1b ldrb r3, [r3, #16] + 803030c: f003 0302 and.w r3, r3, #2 + 8030310: b2db uxtb r3, r3 + 8030312: 2b00 cmp r3, #0 + 8030314: d012 beq.n 803033c + 8030316: 687b ldr r3, [r7, #4] + 8030318: 68db ldr r3, [r3, #12] + 803031a: 68da ldr r2, [r3, #12] + 803031c: 687b ldr r3, [r7, #4] + 803031e: f9b3 3000 ldrsh.w r3, [r3] + 8030322: 4619 mov r1, r3 + 8030324: 687b ldr r3, [r7, #4] + 8030326: f9b3 3002 ldrsh.w r3, [r3, #2] + 803032a: fb01 f303 mul.w r3, r1, r3 + 803032e: 429a cmp r2, r3 + 8030330: d204 bcs.n 803033c driver->full_refresh = 0; - 80303c6: 687a ldr r2, [r7, #4] - 80303c8: 7c13 ldrb r3, [r2, #16] - 80303ca: f36f 0341 bfc r3, #1, #1 - 80303ce: 7413 strb r3, [r2, #16] + 8030332: 687a ldr r2, [r7, #4] + 8030334: 7c13 ldrb r3, [r2, #16] + 8030336: f36f 0341 bfc r3, #1, #1 + 803033a: 7413 strb r3, [r2, #16] LV_LOG_WARN("full_refresh requires at least screen sized draw buffer(s)"); } disp->bg_color = lv_color_white(); - 80303d0: 697c ldr r4, [r7, #20] - 80303d2: f7ff ff1b bl 803020c - 80303d6: 8560 strh r0, [r4, #42] ; 0x2a + 803033c: 697c ldr r4, [r7, #20] + 803033e: f7ff ff1b bl 8030178 + 8030342: 8560 strh r0, [r4, #42] ; 0x2a #if LV_COLOR_SCREEN_TRANSP disp->bg_opa = LV_OPA_TRANSP; #else disp->bg_opa = LV_OPA_COVER; - 80303d8: 697b ldr r3, [r7, #20] - 80303da: 22ff movs r2, #255 ; 0xff - 80303dc: f883 2029 strb.w r2, [r3, #41] ; 0x29 + 8030344: 697b ldr r3, [r7, #20] + 8030346: 22ff movs r2, #255 ; 0xff + 8030348: f883 2029 strb.w r2, [r3, #41] ; 0x29 #endif #if LV_USE_THEME_DEFAULT if(lv_theme_default_is_inited() == false) { - 80303e0: f7f5 fe4c bl 802607c - 80303e4: 4603 mov r3, r0 - 80303e6: f083 0301 eor.w r3, r3, #1 - 80303ea: b2db uxtb r3, r3 - 80303ec: 2b00 cmp r3, #0 - 80303ee: d012 beq.n 8030416 + 803034c: f7f5 fe4c bl 8025fe8 + 8030350: 4603 mov r3, r0 + 8030352: f083 0301 eor.w r3, r3, #1 + 8030356: b2db uxtb r3, r3 + 8030358: 2b00 cmp r3, #0 + 803035a: d012 beq.n 8030382 disp->theme = lv_theme_default_init(disp, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED), - 80303f0: 2005 movs r0, #5 - 80303f2: f001 fb53 bl 8031a9c - 80303f6: 4604 mov r4, r0 - 80303f8: 2000 movs r0, #0 - 80303fa: f001 fb4f bl 8031a9c - 80303fe: 4602 mov r2, r0 - 8030400: 4b31 ldr r3, [pc, #196] ; (80304c8 ) - 8030402: 9300 str r3, [sp, #0] - 8030404: 2300 movs r3, #0 - 8030406: 4621 mov r1, r4 - 8030408: 6978 ldr r0, [r7, #20] - 803040a: f7f5 fdad bl 8025f68 - 803040e: 4602 mov r2, r0 - 8030410: 697b ldr r3, [r7, #20] - 8030412: 609a str r2, [r3, #8] - 8030414: e004 b.n 8030420 + 803035c: 2005 movs r0, #5 + 803035e: f001 fb53 bl 8031a08 + 8030362: 4604 mov r4, r0 + 8030364: 2000 movs r0, #0 + 8030366: f001 fb4f bl 8031a08 + 803036a: 4602 mov r2, r0 + 803036c: 4b31 ldr r3, [pc, #196] ; (8030434 ) + 803036e: 9300 str r3, [sp, #0] + 8030370: 2300 movs r3, #0 + 8030372: 4621 mov r1, r4 + 8030374: 6978 ldr r0, [r7, #20] + 8030376: f7f5 fdad bl 8025ed4 + 803037a: 4602 mov r2, r0 + 803037c: 697b ldr r3, [r7, #20] + 803037e: 609a str r2, [r3, #8] + 8030380: e004 b.n 803038c LV_THEME_DEFAULT_DARK, LV_FONT_DEFAULT); } else { disp->theme = lv_theme_default_get(); - 8030416: f7f5 fe1f bl 8026058 - 803041a: 4602 mov r2, r0 - 803041c: 697b ldr r3, [r7, #20] - 803041e: 609a str r2, [r3, #8] + 8030382: f7f5 fe1f bl 8025fc4 + 8030386: 4602 mov r2, r0 + 8030388: 697b ldr r3, [r7, #20] + 803038a: 609a str r2, [r3, #8] } #endif disp->act_scr = lv_obj_create(NULL); /*Create a default screen on the display*/ - 8030420: 2000 movs r0, #0 - 8030422: f7d6 f8b5 bl 8006590 - 8030426: 4602 mov r2, r0 - 8030428: 697b ldr r3, [r7, #20] - 803042a: 611a str r2, [r3, #16] + 803038c: 2000 movs r0, #0 + 803038e: f7d6 f8c9 bl 8006524 + 8030392: 4602 mov r2, r0 + 8030394: 697b ldr r3, [r7, #20] + 8030396: 611a str r2, [r3, #16] disp->top_layer = lv_obj_create(NULL); /*Create top layer on the display*/ - 803042c: 2000 movs r0, #0 - 803042e: f7d6 f8af bl 8006590 - 8030432: 4602 mov r2, r0 - 8030434: 697b ldr r3, [r7, #20] - 8030436: 61da str r2, [r3, #28] + 8030398: 2000 movs r0, #0 + 803039a: f7d6 f8c3 bl 8006524 + 803039e: 4602 mov r2, r0 + 80303a0: 697b ldr r3, [r7, #20] + 80303a2: 61da str r2, [r3, #28] disp->sys_layer = lv_obj_create(NULL); /*Create sys layer on the display*/ - 8030438: 2000 movs r0, #0 - 803043a: f7d6 f8a9 bl 8006590 - 803043e: 4602 mov r2, r0 - 8030440: 697b ldr r3, [r7, #20] - 8030442: 621a str r2, [r3, #32] + 80303a4: 2000 movs r0, #0 + 80303a6: f7d6 f8bd bl 8006524 + 80303aa: 4602 mov r2, r0 + 80303ac: 697b ldr r3, [r7, #20] + 80303ae: 621a str r2, [r3, #32] lv_obj_remove_style_all(disp->top_layer); - 8030444: 697b ldr r3, [r7, #20] - 8030446: 69db ldr r3, [r3, #28] - 8030448: 4618 mov r0, r3 - 803044a: f7ff fee9 bl 8030220 + 80303b0: 697b ldr r3, [r7, #20] + 80303b2: 69db ldr r3, [r3, #28] + 80303b4: 4618 mov r0, r3 + 80303b6: f7ff fee9 bl 803018c lv_obj_remove_style_all(disp->sys_layer); - 803044e: 697b ldr r3, [r7, #20] - 8030450: 6a1b ldr r3, [r3, #32] - 8030452: 4618 mov r0, r3 - 8030454: f7ff fee4 bl 8030220 + 80303ba: 697b ldr r3, [r7, #20] + 80303bc: 6a1b ldr r3, [r3, #32] + 80303be: 4618 mov r0, r3 + 80303c0: f7ff fee4 bl 803018c lv_obj_clear_flag(disp->top_layer, LV_OBJ_FLAG_CLICKABLE); - 8030458: 697b ldr r3, [r7, #20] - 803045a: 69db ldr r3, [r3, #28] - 803045c: 2102 movs r1, #2 - 803045e: 4618 mov r0, r3 - 8030460: f7d6 f8fe bl 8006660 + 80303c4: 697b ldr r3, [r7, #20] + 80303c6: 69db ldr r3, [r3, #28] + 80303c8: 2102 movs r1, #2 + 80303ca: 4618 mov r0, r3 + 80303cc: f7d6 f912 bl 80065f4 lv_obj_clear_flag(disp->sys_layer, LV_OBJ_FLAG_CLICKABLE); - 8030464: 697b ldr r3, [r7, #20] - 8030466: 6a1b ldr r3, [r3, #32] - 8030468: 2102 movs r1, #2 - 803046a: 4618 mov r0, r3 - 803046c: f7d6 f8f8 bl 8006660 + 80303d0: 697b ldr r3, [r7, #20] + 80303d2: 6a1b ldr r3, [r3, #32] + 80303d4: 2102 movs r1, #2 + 80303d6: 4618 mov r0, r3 + 80303d8: f7d6 f90c bl 80065f4 lv_obj_set_scrollbar_mode(disp->top_layer, LV_SCROLLBAR_MODE_OFF); - 8030470: 697b ldr r3, [r7, #20] - 8030472: 69db ldr r3, [r3, #28] - 8030474: 2100 movs r1, #0 - 8030476: 4618 mov r0, r3 - 8030478: f7db f9b2 bl 800b7e0 + 80303dc: 697b ldr r3, [r7, #20] + 80303de: 69db ldr r3, [r3, #28] + 80303e0: 2100 movs r1, #0 + 80303e2: 4618 mov r0, r3 + 80303e4: f7db f9c6 bl 800b774 lv_obj_set_scrollbar_mode(disp->sys_layer, LV_SCROLLBAR_MODE_OFF); - 803047c: 697b ldr r3, [r7, #20] - 803047e: 6a1b ldr r3, [r3, #32] - 8030480: 2100 movs r1, #0 - 8030482: 4618 mov r0, r3 - 8030484: f7db f9ac bl 800b7e0 + 80303e8: 697b ldr r3, [r7, #20] + 80303ea: 6a1b ldr r3, [r3, #32] + 80303ec: 2100 movs r1, #0 + 80303ee: 4618 mov r0, r3 + 80303f0: f7db f9c0 bl 800b774 lv_obj_invalidate(disp->act_scr); - 8030488: 697b ldr r3, [r7, #20] - 803048a: 691b ldr r3, [r3, #16] - 803048c: 4618 mov r0, r3 - 803048e: f7da fb10 bl 800aab2 + 80303f4: 697b ldr r3, [r7, #20] + 80303f6: 691b ldr r3, [r3, #16] + 80303f8: 4618 mov r0, r3 + 80303fa: f7da fb24 bl 800aa46 disp_def = disp_def_tmp; /*Revert the default display*/ - 8030492: 4a0b ldr r2, [pc, #44] ; (80304c0 ) - 8030494: 68fb ldr r3, [r7, #12] - 8030496: 6013 str r3, [r2, #0] + 80303fe: 4a0b ldr r2, [pc, #44] ; (803042c ) + 8030400: 68fb ldr r3, [r7, #12] + 8030402: 6013 str r3, [r2, #0] if(disp_def == NULL) disp_def = disp; /*Initialize the default display*/ - 8030498: 4b09 ldr r3, [pc, #36] ; (80304c0 ) - 803049a: 681b ldr r3, [r3, #0] - 803049c: 2b00 cmp r3, #0 - 803049e: d102 bne.n 80304a6 - 80304a0: 4a07 ldr r2, [pc, #28] ; (80304c0 ) - 80304a2: 697b ldr r3, [r7, #20] - 80304a4: 6013 str r3, [r2, #0] + 8030404: 4b09 ldr r3, [pc, #36] ; (803042c ) + 8030406: 681b ldr r3, [r3, #0] + 8030408: 2b00 cmp r3, #0 + 803040a: d102 bne.n 8030412 + 803040c: 4a07 ldr r2, [pc, #28] ; (803042c ) + 803040e: 697b ldr r3, [r7, #20] + 8030410: 6013 str r3, [r2, #0] lv_timer_ready(disp->refr_timer); /*Be sure the screen will be refreshed immediately on start up*/ - 80304a6: 697b ldr r3, [r7, #20] - 80304a8: 685b ldr r3, [r3, #4] - 80304aa: 4618 mov r0, r3 - 80304ac: f004 fe8a bl 80351c4 + 8030412: 697b ldr r3, [r7, #20] + 8030414: 685b ldr r3, [r3, #4] + 8030416: 4618 mov r0, r3 + 8030418: f004 fe8a bl 8035130 return disp; - 80304b0: 697b ldr r3, [r7, #20] + 803041c: 697b ldr r3, [r7, #20] } - 80304b2: 4618 mov r0, r3 - 80304b4: 371c adds r7, #28 - 80304b6: 46bd mov sp, r7 - 80304b8: bd90 pop {r4, r7, pc} - 80304ba: bf00 nop - 80304bc: 20001d10 .word 0x20001d10 - 80304c0: 20001cec .word 0x20001cec - 80304c4: 0800fd65 .word 0x0800fd65 - 80304c8: 08070758 .word 0x08070758 + 803041e: 4618 mov r0, r3 + 8030420: 371c adds r7, #28 + 8030422: 46bd mov sp, r7 + 8030424: bd90 pop {r4, r7, pc} + 8030426: bf00 nop + 8030428: 20001d10 .word 0x20001d10 + 803042c: 20001cec .word 0x20001cec + 8030430: 0800fcd1 .word 0x0800fcd1 + 8030434: 080706b0 .word 0x080706b0 -080304cc : +08030438 : /** * Get the default display * @return pointer to the default display */ lv_disp_t * lv_disp_get_default(void) { - 80304cc: b480 push {r7} - 80304ce: af00 add r7, sp, #0 + 8030438: b480 push {r7} + 803043a: af00 add r7, sp, #0 return disp_def; - 80304d0: 4b02 ldr r3, [pc, #8] ; (80304dc ) - 80304d2: 681b ldr r3, [r3, #0] + 803043c: 4b02 ldr r3, [pc, #8] ; (8030448 ) + 803043e: 681b ldr r3, [r3, #0] } - 80304d4: 4618 mov r0, r3 - 80304d6: 46bd mov sp, r7 - 80304d8: bc80 pop {r7} - 80304da: 4770 bx lr - 80304dc: 20001cec .word 0x20001cec + 8030440: 4618 mov r0, r3 + 8030442: 46bd mov sp, r7 + 8030444: bc80 pop {r7} + 8030446: 4770 bx lr + 8030448: 20001cec .word 0x20001cec -080304e0 : +0803044c : * Get the horizontal resolution of a display * @param disp pointer to a display (NULL to use the default display) * @return the horizontal resolution of the display */ lv_coord_t lv_disp_get_hor_res(lv_disp_t * disp) { - 80304e0: b580 push {r7, lr} - 80304e2: b082 sub sp, #8 - 80304e4: af00 add r7, sp, #0 - 80304e6: 6078 str r0, [r7, #4] + 803044c: b580 push {r7, lr} + 803044e: b082 sub sp, #8 + 8030450: af00 add r7, sp, #0 + 8030452: 6078 str r0, [r7, #4] if(disp == NULL) disp = lv_disp_get_default(); - 80304e8: 687b ldr r3, [r7, #4] - 80304ea: 2b00 cmp r3, #0 - 80304ec: d102 bne.n 80304f4 - 80304ee: f7ff ffed bl 80304cc - 80304f2: 6078 str r0, [r7, #4] + 8030454: 687b ldr r3, [r7, #4] + 8030456: 2b00 cmp r3, #0 + 8030458: d102 bne.n 8030460 + 803045a: f7ff ffed bl 8030438 + 803045e: 6078 str r0, [r7, #4] if(disp == NULL) { - 80304f4: 687b ldr r3, [r7, #4] - 80304f6: 2b00 cmp r3, #0 - 80304f8: d101 bne.n 80304fe + 8030460: 687b ldr r3, [r7, #4] + 8030462: 2b00 cmp r3, #0 + 8030464: d101 bne.n 803046a return 0; - 80304fa: 2300 movs r3, #0 - 80304fc: e012 b.n 8030524 + 8030466: 2300 movs r3, #0 + 8030468: e012 b.n 8030490 } else { switch(disp->driver->rotated) { - 80304fe: 687b ldr r3, [r7, #4] - 8030500: 681b ldr r3, [r3, #0] - 8030502: 7c1b ldrb r3, [r3, #16] - 8030504: f3c3 1301 ubfx r3, r3, #4, #2 - 8030508: b2db uxtb r3, r3 - 803050a: 2b01 cmp r3, #1 - 803050c: d001 beq.n 8030512 - 803050e: 2b03 cmp r3, #3 - 8030510: d104 bne.n 803051c + 803046a: 687b ldr r3, [r7, #4] + 803046c: 681b ldr r3, [r3, #0] + 803046e: 7c1b ldrb r3, [r3, #16] + 8030470: f3c3 1301 ubfx r3, r3, #4, #2 + 8030474: b2db uxtb r3, r3 + 8030476: 2b01 cmp r3, #1 + 8030478: d001 beq.n 803047e + 803047a: 2b03 cmp r3, #3 + 803047c: d104 bne.n 8030488 case LV_DISP_ROT_90: case LV_DISP_ROT_270: return disp->driver->ver_res; - 8030512: 687b ldr r3, [r7, #4] - 8030514: 681b ldr r3, [r3, #0] - 8030516: f9b3 3002 ldrsh.w r3, [r3, #2] - 803051a: e003 b.n 8030524 + 803047e: 687b ldr r3, [r7, #4] + 8030480: 681b ldr r3, [r3, #0] + 8030482: f9b3 3002 ldrsh.w r3, [r3, #2] + 8030486: e003 b.n 8030490 default: return disp->driver->hor_res; - 803051c: 687b ldr r3, [r7, #4] - 803051e: 681b ldr r3, [r3, #0] - 8030520: f9b3 3000 ldrsh.w r3, [r3] + 8030488: 687b ldr r3, [r7, #4] + 803048a: 681b ldr r3, [r3, #0] + 803048c: f9b3 3000 ldrsh.w r3, [r3] } } } - 8030524: 4618 mov r0, r3 - 8030526: 3708 adds r7, #8 - 8030528: 46bd mov sp, r7 - 803052a: bd80 pop {r7, pc} + 8030490: 4618 mov r0, r3 + 8030492: 3708 adds r7, #8 + 8030494: 46bd mov sp, r7 + 8030496: bd80 pop {r7, pc} -0803052c : +08030498 : * Get the vertical resolution of a display * @param disp pointer to a display (NULL to use the default display) * @return the vertical resolution of the display */ lv_coord_t lv_disp_get_ver_res(lv_disp_t * disp) { - 803052c: b580 push {r7, lr} - 803052e: b082 sub sp, #8 - 8030530: af00 add r7, sp, #0 - 8030532: 6078 str r0, [r7, #4] + 8030498: b580 push {r7, lr} + 803049a: b082 sub sp, #8 + 803049c: af00 add r7, sp, #0 + 803049e: 6078 str r0, [r7, #4] if(disp == NULL) disp = lv_disp_get_default(); - 8030534: 687b ldr r3, [r7, #4] - 8030536: 2b00 cmp r3, #0 - 8030538: d102 bne.n 8030540 - 803053a: f7ff ffc7 bl 80304cc - 803053e: 6078 str r0, [r7, #4] + 80304a0: 687b ldr r3, [r7, #4] + 80304a2: 2b00 cmp r3, #0 + 80304a4: d102 bne.n 80304ac + 80304a6: f7ff ffc7 bl 8030438 + 80304aa: 6078 str r0, [r7, #4] if(disp == NULL) { - 8030540: 687b ldr r3, [r7, #4] - 8030542: 2b00 cmp r3, #0 - 8030544: d101 bne.n 803054a + 80304ac: 687b ldr r3, [r7, #4] + 80304ae: 2b00 cmp r3, #0 + 80304b0: d101 bne.n 80304b6 return 0; - 8030546: 2300 movs r3, #0 - 8030548: e012 b.n 8030570 + 80304b2: 2300 movs r3, #0 + 80304b4: e012 b.n 80304dc } else { switch(disp->driver->rotated) { - 803054a: 687b ldr r3, [r7, #4] - 803054c: 681b ldr r3, [r3, #0] - 803054e: 7c1b ldrb r3, [r3, #16] - 8030550: f3c3 1301 ubfx r3, r3, #4, #2 - 8030554: b2db uxtb r3, r3 - 8030556: 2b01 cmp r3, #1 - 8030558: d001 beq.n 803055e - 803055a: 2b03 cmp r3, #3 - 803055c: d104 bne.n 8030568 + 80304b6: 687b ldr r3, [r7, #4] + 80304b8: 681b ldr r3, [r3, #0] + 80304ba: 7c1b ldrb r3, [r3, #16] + 80304bc: f3c3 1301 ubfx r3, r3, #4, #2 + 80304c0: b2db uxtb r3, r3 + 80304c2: 2b01 cmp r3, #1 + 80304c4: d001 beq.n 80304ca + 80304c6: 2b03 cmp r3, #3 + 80304c8: d104 bne.n 80304d4 case LV_DISP_ROT_90: case LV_DISP_ROT_270: return disp->driver->hor_res; - 803055e: 687b ldr r3, [r7, #4] - 8030560: 681b ldr r3, [r3, #0] - 8030562: f9b3 3000 ldrsh.w r3, [r3] - 8030566: e003 b.n 8030570 + 80304ca: 687b ldr r3, [r7, #4] + 80304cc: 681b ldr r3, [r3, #0] + 80304ce: f9b3 3000 ldrsh.w r3, [r3] + 80304d2: e003 b.n 80304dc default: return disp->driver->ver_res; - 8030568: 687b ldr r3, [r7, #4] - 803056a: 681b ldr r3, [r3, #0] - 803056c: f9b3 3002 ldrsh.w r3, [r3, #2] + 80304d4: 687b ldr r3, [r7, #4] + 80304d6: 681b ldr r3, [r3, #0] + 80304d8: f9b3 3002 ldrsh.w r3, [r3, #2] } } } - 8030570: 4618 mov r0, r3 - 8030572: 3708 adds r7, #8 - 8030574: 46bd mov sp, r7 - 8030576: bd80 pop {r7, pc} + 80304dc: 4618 mov r0, r3 + 80304de: 3708 adds r7, #8 + 80304e0: 46bd mov sp, r7 + 80304e2: bd80 pop {r7, pc} -08030578 : +080304e4 : * Get the DPI of the display * @param disp pointer to a display (NULL to use the default display) * @return dpi of the display */ lv_coord_t lv_disp_get_dpi(const lv_disp_t * disp) { - 8030578: b580 push {r7, lr} - 803057a: b082 sub sp, #8 - 803057c: af00 add r7, sp, #0 - 803057e: 6078 str r0, [r7, #4] + 80304e4: b580 push {r7, lr} + 80304e6: b082 sub sp, #8 + 80304e8: af00 add r7, sp, #0 + 80304ea: 6078 str r0, [r7, #4] if(disp == NULL) disp = lv_disp_get_default(); - 8030580: 687b ldr r3, [r7, #4] - 8030582: 2b00 cmp r3, #0 - 8030584: d102 bne.n 803058c - 8030586: f7ff ffa1 bl 80304cc - 803058a: 6078 str r0, [r7, #4] + 80304ec: 687b ldr r3, [r7, #4] + 80304ee: 2b00 cmp r3, #0 + 80304f0: d102 bne.n 80304f8 + 80304f2: f7ff ffa1 bl 8030438 + 80304f6: 6078 str r0, [r7, #4] if(disp == NULL) return LV_DPI_DEF; /*Do not return 0 because it might be a divider*/ - 803058c: 687b ldr r3, [r7, #4] - 803058e: 2b00 cmp r3, #0 - 8030590: d101 bne.n 8030596 - 8030592: 2382 movs r3, #130 ; 0x82 - 8030594: e006 b.n 80305a4 + 80304f8: 687b ldr r3, [r7, #4] + 80304fa: 2b00 cmp r3, #0 + 80304fc: d101 bne.n 8030502 + 80304fe: 2382 movs r3, #130 ; 0x82 + 8030500: e006 b.n 8030510 return disp->driver->dpi; - 8030596: 687b ldr r3, [r7, #4] - 8030598: 681b ldr r3, [r3, #0] - 803059a: 691b ldr r3, [r3, #16] - 803059c: f3c3 13c9 ubfx r3, r3, #7, #10 - 80305a0: b29b uxth r3, r3 - 80305a2: b21b sxth r3, r3 + 8030502: 687b ldr r3, [r7, #4] + 8030504: 681b ldr r3, [r3, #0] + 8030506: 691b ldr r3, [r3, #16] + 8030508: f3c3 13c9 ubfx r3, r3, #7, #10 + 803050c: b29b uxth r3, r3 + 803050e: b21b sxth r3, r3 } - 80305a4: 4618 mov r0, r3 - 80305a6: 3708 adds r7, #8 - 80305a8: 46bd mov sp, r7 - 80305aa: bd80 pop {r7, pc} + 8030510: 4618 mov r0, r3 + 8030512: 3708 adds r7, #8 + 8030514: 46bd mov sp, r7 + 8030516: bd80 pop {r7, pc} -080305ac : +08030518 : /** * Call in the display driver's `flush_cb` function when the flushing is finished * @param disp_drv pointer to display driver in `flush_cb` where this function is called */ LV_ATTRIBUTE_FLUSH_READY void lv_disp_flush_ready(lv_disp_drv_t * disp_drv) { - 80305ac: b480 push {r7} - 80305ae: b083 sub sp, #12 - 80305b0: af00 add r7, sp, #0 - 80305b2: 6078 str r0, [r7, #4] + 8030518: b480 push {r7} + 803051a: b083 sub sp, #12 + 803051c: af00 add r7, sp, #0 + 803051e: 6078 str r0, [r7, #4] lv_memset_00(disp_drv->draw_buf->buf_act, disp_drv->draw_buf->size * sizeof(lv_color32_t)); } } #endif disp_drv->draw_buf->flushing = 0; - 80305b4: 687b ldr r3, [r7, #4] - 80305b6: 68db ldr r3, [r3, #12] - 80305b8: 2200 movs r2, #0 - 80305ba: 611a str r2, [r3, #16] + 8030520: 687b ldr r3, [r7, #4] + 8030522: 68db ldr r3, [r3, #12] + 8030524: 2200 movs r2, #0 + 8030526: 611a str r2, [r3, #16] disp_drv->draw_buf->flushing_last = 0; - 80305bc: 687b ldr r3, [r7, #4] - 80305be: 68db ldr r3, [r3, #12] - 80305c0: 2200 movs r2, #0 - 80305c2: 615a str r2, [r3, #20] + 8030528: 687b ldr r3, [r7, #4] + 803052a: 68db ldr r3, [r3, #12] + 803052c: 2200 movs r2, #0 + 803052e: 615a str r2, [r3, #20] } - 80305c4: bf00 nop - 80305c6: 370c adds r7, #12 - 80305c8: 46bd mov sp, r7 - 80305ca: bc80 pop {r7} - 80305cc: 4770 bx lr + 8030530: bf00 nop + 8030532: 370c adds r7, #12 + 8030534: 46bd mov sp, r7 + 8030536: bc80 pop {r7} + 8030538: 4770 bx lr ... -080305d0 : +0803053c : * Get the next display. * @param disp pointer to the current display. NULL to initialize. * @return the next display or NULL if no more. Give the first display when the parameter is NULL */ lv_disp_t * lv_disp_get_next(lv_disp_t * disp) { - 80305d0: b580 push {r7, lr} - 80305d2: b082 sub sp, #8 - 80305d4: af00 add r7, sp, #0 - 80305d6: 6078 str r0, [r7, #4] + 803053c: b580 push {r7, lr} + 803053e: b082 sub sp, #8 + 8030540: af00 add r7, sp, #0 + 8030542: 6078 str r0, [r7, #4] if(disp == NULL) - 80305d8: 687b ldr r3, [r7, #4] - 80305da: 2b00 cmp r3, #0 - 80305dc: d104 bne.n 80305e8 + 8030544: 687b ldr r3, [r7, #4] + 8030546: 2b00 cmp r3, #0 + 8030548: d104 bne.n 8030554 return _lv_ll_get_head(&LV_GC_ROOT(_lv_disp_ll)); - 80305de: 4807 ldr r0, [pc, #28] ; (80305fc ) - 80305e0: f001 febc bl 803235c <_lv_ll_get_head> - 80305e4: 4603 mov r3, r0 - 80305e6: e004 b.n 80305f2 + 803054a: 4807 ldr r0, [pc, #28] ; (8030568 ) + 803054c: f001 febc bl 80322c8 <_lv_ll_get_head> + 8030550: 4603 mov r3, r0 + 8030552: e004 b.n 803055e else return _lv_ll_get_next(&LV_GC_ROOT(_lv_disp_ll), disp); - 80305e8: 6879 ldr r1, [r7, #4] - 80305ea: 4804 ldr r0, [pc, #16] ; (80305fc ) - 80305ec: f001 fed6 bl 803239c <_lv_ll_get_next> - 80305f0: 4603 mov r3, r0 + 8030554: 6879 ldr r1, [r7, #4] + 8030556: 4804 ldr r0, [pc, #16] ; (8030568 ) + 8030558: f001 fed6 bl 8032308 <_lv_ll_get_next> + 803055c: 4603 mov r3, r0 } - 80305f2: 4618 mov r0, r3 - 80305f4: 3708 adds r7, #8 - 80305f6: 46bd mov sp, r7 - 80305f8: bd80 pop {r7, pc} - 80305fa: bf00 nop - 80305fc: 20001d10 .word 0x20001d10 + 803055e: 4618 mov r0, r3 + 8030560: 3708 adds r7, #8 + 8030562: 46bd mov sp, r7 + 8030564: bd80 pop {r7, pc} + 8030566: bf00 nop + 8030568: 20001d10 .word 0x20001d10 -08030600 : +0803056c : * Get the internal buffer of a display * @param disp pointer to a display * @return pointer to the internal buffers */ lv_disp_draw_buf_t * lv_disp_get_draw_buf(lv_disp_t * disp) { - 8030600: b480 push {r7} - 8030602: b083 sub sp, #12 - 8030604: af00 add r7, sp, #0 - 8030606: 6078 str r0, [r7, #4] + 803056c: b480 push {r7} + 803056e: b083 sub sp, #12 + 8030570: af00 add r7, sp, #0 + 8030572: 6078 str r0, [r7, #4] return disp->driver->draw_buf; - 8030608: 687b ldr r3, [r7, #4] - 803060a: 681b ldr r3, [r3, #0] - 803060c: 68db ldr r3, [r3, #12] + 8030574: 687b ldr r3, [r7, #4] + 8030576: 681b ldr r3, [r3, #0] + 8030578: 68db ldr r3, [r3, #12] } - 803060e: 4618 mov r0, r3 - 8030610: 370c adds r7, #12 - 8030612: 46bd mov sp, r7 - 8030614: bc80 pop {r7} - 8030616: 4770 bx lr + 803057a: 4618 mov r0, r3 + 803057c: 370c adds r7, #12 + 803057e: 46bd mov sp, r7 + 8030580: bc80 pop {r7} + 8030582: 4770 bx lr -08030618 : +08030584 : * It is used to surly have known values in the fields ant not memory junk. * After it you can set the fields. * @param driver pointer to driver variable to initialize */ void lv_indev_drv_init(lv_indev_drv_t * driver) { - 8030618: b580 push {r7, lr} - 803061a: b082 sub sp, #8 - 803061c: af00 add r7, sp, #0 - 803061e: 6078 str r0, [r7, #4] + 8030584: b580 push {r7, lr} + 8030586: b082 sub sp, #8 + 8030588: af00 add r7, sp, #0 + 803058a: 6078 str r0, [r7, #4] lv_memset_00(driver, sizeof(lv_indev_drv_t)); - 8030620: 2120 movs r1, #32 - 8030622: 6878 ldr r0, [r7, #4] - 8030624: f002 fd94 bl 8033150 + 803058c: 2120 movs r1, #32 + 803058e: 6878 ldr r0, [r7, #4] + 8030590: f002 fd94 bl 80330bc driver->type = LV_INDEV_TYPE_NONE; - 8030628: 687b ldr r3, [r7, #4] - 803062a: 2200 movs r2, #0 - 803062c: 701a strb r2, [r3, #0] + 8030594: 687b ldr r3, [r7, #4] + 8030596: 2200 movs r2, #0 + 8030598: 701a strb r2, [r3, #0] driver->scroll_limit = LV_INDEV_DEF_SCROLL_LIMIT; - 803062e: 687b ldr r3, [r7, #4] - 8030630: 220a movs r2, #10 - 8030632: 761a strb r2, [r3, #24] + 803059a: 687b ldr r3, [r7, #4] + 803059c: 220a movs r2, #10 + 803059e: 761a strb r2, [r3, #24] driver->scroll_throw = LV_INDEV_DEF_SCROLL_THROW; - 8030634: 687b ldr r3, [r7, #4] - 8030636: 220a movs r2, #10 - 8030638: 765a strb r2, [r3, #25] + 80305a0: 687b ldr r3, [r7, #4] + 80305a2: 220a movs r2, #10 + 80305a4: 765a strb r2, [r3, #25] driver->long_press_time = LV_INDEV_DEF_LONG_PRESS_TIME; - 803063a: 687b ldr r3, [r7, #4] - 803063c: f44f 72c8 mov.w r2, #400 ; 0x190 - 8030640: 839a strh r2, [r3, #28] + 80305a6: 687b ldr r3, [r7, #4] + 80305a8: f44f 72c8 mov.w r2, #400 ; 0x190 + 80305ac: 839a strh r2, [r3, #28] driver->long_press_repeat_time = LV_INDEV_DEF_LONG_PRESS_REP_TIME; - 8030642: 687b ldr r3, [r7, #4] - 8030644: 2264 movs r2, #100 ; 0x64 - 8030646: 83da strh r2, [r3, #30] + 80305ae: 687b ldr r3, [r7, #4] + 80305b0: 2264 movs r2, #100 ; 0x64 + 80305b2: 83da strh r2, [r3, #30] driver->gesture_limit = LV_INDEV_DEF_GESTURE_LIMIT; - 8030648: 687b ldr r3, [r7, #4] - 803064a: 2232 movs r2, #50 ; 0x32 - 803064c: 76da strb r2, [r3, #27] + 80305b4: 687b ldr r3, [r7, #4] + 80305b6: 2232 movs r2, #50 ; 0x32 + 80305b8: 76da strb r2, [r3, #27] driver->gesture_min_velocity = LV_INDEV_DEF_GESTURE_MIN_VELOCITY; - 803064e: 687b ldr r3, [r7, #4] - 8030650: 2203 movs r2, #3 - 8030652: 769a strb r2, [r3, #26] + 80305ba: 687b ldr r3, [r7, #4] + 80305bc: 2203 movs r2, #3 + 80305be: 769a strb r2, [r3, #26] } - 8030654: bf00 nop - 8030656: 3708 adds r7, #8 - 8030658: 46bd mov sp, r7 - 803065a: bd80 pop {r7, pc} + 80305c0: bf00 nop + 80305c2: 3708 adds r7, #8 + 80305c4: 46bd mov sp, r7 + 80305c6: bd80 pop {r7, pc} -0803065c : +080305c8 : * @param driver pointer to an initialized 'lv_indev_drv_t' variable. * Only pointer is saved, so the driver should be static or dynamically allocated. * @return pointer to the new input device or NULL on error */ lv_indev_t * lv_indev_drv_register(lv_indev_drv_t * driver) { - 803065c: b590 push {r4, r7, lr} - 803065e: b085 sub sp, #20 - 8030660: af00 add r7, sp, #0 - 8030662: 6078 str r0, [r7, #4] + 80305c8: b590 push {r4, r7, lr} + 80305ca: b085 sub sp, #20 + 80305cc: af00 add r7, sp, #0 + 80305ce: 6078 str r0, [r7, #4] if(driver->disp == NULL) driver->disp = lv_disp_get_default(); - 8030664: 687b ldr r3, [r7, #4] - 8030666: 691b ldr r3, [r3, #16] - 8030668: 2b00 cmp r3, #0 - 803066a: d104 bne.n 8030676 - 803066c: f7ff ff2e bl 80304cc - 8030670: 4602 mov r2, r0 - 8030672: 687b ldr r3, [r7, #4] - 8030674: 611a str r2, [r3, #16] + 80305d0: 687b ldr r3, [r7, #4] + 80305d2: 691b ldr r3, [r3, #16] + 80305d4: 2b00 cmp r3, #0 + 80305d6: d104 bne.n 80305e2 + 80305d8: f7ff ff2e bl 8030438 + 80305dc: 4602 mov r2, r0 + 80305de: 687b ldr r3, [r7, #4] + 80305e0: 611a str r2, [r3, #16] if(driver->disp == NULL) { - 8030676: 687b ldr r3, [r7, #4] - 8030678: 691b ldr r3, [r3, #16] - 803067a: 2b00 cmp r3, #0 - 803067c: d101 bne.n 8030682 + 80305e2: 687b ldr r3, [r7, #4] + 80305e4: 691b ldr r3, [r3, #16] + 80305e6: 2b00 cmp r3, #0 + 80305e8: d101 bne.n 80305ee LV_LOG_WARN("lv_indev_drv_register: no display registered hence can't attach the indev to " "a display"); return NULL; - 803067e: 2300 movs r3, #0 - 8030680: e022 b.n 80306c8 + 80305ea: 2300 movs r3, #0 + 80305ec: e022 b.n 8030634 } lv_indev_t * indev = _lv_ll_ins_head(&LV_GC_ROOT(_lv_indev_ll)); - 8030682: 4813 ldr r0, [pc, #76] ; (80306d0 ) - 8030684: f001 fd84 bl 8032190 <_lv_ll_ins_head> - 8030688: 60f8 str r0, [r7, #12] + 80305ee: 4813 ldr r0, [pc, #76] ; (803063c ) + 80305f0: f001 fd84 bl 80320fc <_lv_ll_ins_head> + 80305f4: 60f8 str r0, [r7, #12] if(!indev) { - 803068a: 68fb ldr r3, [r7, #12] - 803068c: 2b00 cmp r3, #0 - 803068e: d105 bne.n 803069c + 80305f6: 68fb ldr r3, [r7, #12] + 80305f8: 2b00 cmp r3, #0 + 80305fa: d105 bne.n 8030608 LV_ASSERT_MALLOC(indev); - 8030690: 68fb ldr r3, [r7, #12] - 8030692: 2b00 cmp r3, #0 - 8030694: d100 bne.n 8030698 - 8030696: e7fe b.n 8030696 + 80305fc: 68fb ldr r3, [r7, #12] + 80305fe: 2b00 cmp r3, #0 + 8030600: d100 bne.n 8030604 + 8030602: e7fe b.n 8030602 return NULL; - 8030698: 2300 movs r3, #0 - 803069a: e015 b.n 80306c8 + 8030604: 2300 movs r3, #0 + 8030606: e015 b.n 8030634 } lv_memset_00(indev, sizeof(lv_indev_t)); - 803069c: 2158 movs r1, #88 ; 0x58 - 803069e: 68f8 ldr r0, [r7, #12] - 80306a0: f002 fd56 bl 8033150 + 8030608: 2158 movs r1, #88 ; 0x58 + 803060a: 68f8 ldr r0, [r7, #12] + 803060c: f002 fd56 bl 80330bc indev->driver = driver; - 80306a4: 68fb ldr r3, [r7, #12] - 80306a6: 687a ldr r2, [r7, #4] - 80306a8: 601a str r2, [r3, #0] + 8030610: 68fb ldr r3, [r7, #12] + 8030612: 687a ldr r2, [r7, #4] + 8030614: 601a str r2, [r3, #0] indev->proc.reset_query = 1; - 80306aa: 68fa ldr r2, [r7, #12] - 80306ac: 7953 ldrb r3, [r2, #5] - 80306ae: f043 0302 orr.w r3, r3, #2 - 80306b2: 7153 strb r3, [r2, #5] + 8030616: 68fa ldr r2, [r7, #12] + 8030618: 7953 ldrb r3, [r2, #5] + 803061a: f043 0302 orr.w r3, r3, #2 + 803061e: 7153 strb r3, [r2, #5] indev->driver->read_timer = lv_timer_create(lv_indev_read_timer_cb, LV_INDEV_DEF_READ_PERIOD, indev); - 80306b4: 68fb ldr r3, [r7, #12] - 80306b6: 681c ldr r4, [r3, #0] - 80306b8: 68fa ldr r2, [r7, #12] - 80306ba: 211e movs r1, #30 - 80306bc: 4805 ldr r0, [pc, #20] ; (80306d4 ) - 80306be: f004 fd17 bl 80350f0 - 80306c2: 4603 mov r3, r0 - 80306c4: 6163 str r3, [r4, #20] + 8030620: 68fb ldr r3, [r7, #12] + 8030622: 681c ldr r4, [r3, #0] + 8030624: 68fa ldr r2, [r7, #12] + 8030626: 211e movs r1, #30 + 8030628: 4805 ldr r0, [pc, #20] ; (8030640 ) + 803062a: f004 fd17 bl 803505c + 803062e: 4603 mov r3, r0 + 8030630: 6163 str r3, [r4, #20] return indev; - 80306c6: 68fb ldr r3, [r7, #12] + 8030632: 68fb ldr r3, [r7, #12] } - 80306c8: 4618 mov r0, r3 - 80306ca: 3714 adds r7, #20 - 80306cc: 46bd mov sp, r7 - 80306ce: bd90 pop {r4, r7, pc} - 80306d0: 20001d1c .word 0x20001d1c - 80306d4: 080031c5 .word 0x080031c5 + 8030634: 4618 mov r0, r3 + 8030636: 3714 adds r7, #20 + 8030638: 46bd mov sp, r7 + 803063a: bd90 pop {r4, r7, pc} + 803063c: 20001d1c .word 0x20001d1c + 8030640: 08003159 .word 0x08003159 -080306d8 : +08030644 : * @param indev pointer to the current input device. NULL to initialize. * @return the next input devise or NULL if no more. Give the first input device when the parameter * is NULL */ lv_indev_t * lv_indev_get_next(lv_indev_t * indev) { - 80306d8: b580 push {r7, lr} - 80306da: b082 sub sp, #8 - 80306dc: af00 add r7, sp, #0 - 80306de: 6078 str r0, [r7, #4] + 8030644: b580 push {r7, lr} + 8030646: b082 sub sp, #8 + 8030648: af00 add r7, sp, #0 + 803064a: 6078 str r0, [r7, #4] if(indev == NULL) - 80306e0: 687b ldr r3, [r7, #4] - 80306e2: 2b00 cmp r3, #0 - 80306e4: d104 bne.n 80306f0 + 803064c: 687b ldr r3, [r7, #4] + 803064e: 2b00 cmp r3, #0 + 8030650: d104 bne.n 803065c return _lv_ll_get_head(&LV_GC_ROOT(_lv_indev_ll)); - 80306e6: 4807 ldr r0, [pc, #28] ; (8030704 ) - 80306e8: f001 fe38 bl 803235c <_lv_ll_get_head> - 80306ec: 4603 mov r3, r0 - 80306ee: e004 b.n 80306fa + 8030652: 4807 ldr r0, [pc, #28] ; (8030670 ) + 8030654: f001 fe38 bl 80322c8 <_lv_ll_get_head> + 8030658: 4603 mov r3, r0 + 803065a: e004 b.n 8030666 else return _lv_ll_get_next(&LV_GC_ROOT(_lv_indev_ll), indev); - 80306f0: 6879 ldr r1, [r7, #4] - 80306f2: 4804 ldr r0, [pc, #16] ; (8030704 ) - 80306f4: f001 fe52 bl 803239c <_lv_ll_get_next> - 80306f8: 4603 mov r3, r0 + 803065c: 6879 ldr r1, [r7, #4] + 803065e: 4804 ldr r0, [pc, #16] ; (8030670 ) + 8030660: f001 fe52 bl 8032308 <_lv_ll_get_next> + 8030664: 4603 mov r3, r0 } - 80306fa: 4618 mov r0, r3 - 80306fc: 3708 adds r7, #8 - 80306fe: 46bd mov sp, r7 - 8030700: bd80 pop {r7, pc} - 8030702: bf00 nop - 8030704: 20001d1c .word 0x20001d1c + 8030666: 4618 mov r0, r3 + 8030668: 3708 adds r7, #8 + 803066a: 46bd mov sp, r7 + 803066c: bd80 pop {r7, pc} + 803066e: bf00 nop + 8030670: 20001d1c .word 0x20001d1c -08030708 <_lv_indev_read>: +08030674 <_lv_indev_read>: * Read data from an input device. * @param indev pointer to an input device * @param data input device will write its data here */ void _lv_indev_read(lv_indev_t * indev, lv_indev_data_t * data) { - 8030708: b580 push {r7, lr} - 803070a: b082 sub sp, #8 - 803070c: af00 add r7, sp, #0 - 803070e: 6078 str r0, [r7, #4] - 8030710: 6039 str r1, [r7, #0] + 8030674: b580 push {r7, lr} + 8030676: b082 sub sp, #8 + 8030678: af00 add r7, sp, #0 + 803067a: 6078 str r0, [r7, #4] + 803067c: 6039 str r1, [r7, #0] lv_memset_00(data, sizeof(lv_indev_data_t)); - 8030712: 2110 movs r1, #16 - 8030714: 6838 ldr r0, [r7, #0] - 8030716: f002 fd1b bl 8033150 + 803067e: 2110 movs r1, #16 + 8030680: 6838 ldr r0, [r7, #0] + 8030682: f002 fd1b bl 80330bc /* For touchpad sometimes users don't set the last pressed coordinate on release. * So be sure a coordinates are initialized to the last point */ if(indev->driver->type == LV_INDEV_TYPE_POINTER) { - 803071a: 687b ldr r3, [r7, #4] - 803071c: 681b ldr r3, [r3, #0] - 803071e: 781b ldrb r3, [r3, #0] - 8030720: 2b01 cmp r3, #1 - 8030722: d10a bne.n 803073a <_lv_indev_read+0x32> + 8030686: 687b ldr r3, [r7, #4] + 8030688: 681b ldr r3, [r3, #0] + 803068a: 781b ldrb r3, [r3, #0] + 803068c: 2b01 cmp r3, #1 + 803068e: d10a bne.n 80306a6 <_lv_indev_read+0x32> data->point.x = indev->proc.types.pointer.last_raw_point.x; - 8030724: 687b ldr r3, [r7, #4] - 8030726: f9b3 2010 ldrsh.w r2, [r3, #16] - 803072a: 683b ldr r3, [r7, #0] - 803072c: 801a strh r2, [r3, #0] + 8030690: 687b ldr r3, [r7, #4] + 8030692: f9b3 2010 ldrsh.w r2, [r3, #16] + 8030696: 683b ldr r3, [r7, #0] + 8030698: 801a strh r2, [r3, #0] data->point.y = indev->proc.types.pointer.last_raw_point.y; - 803072e: 687b ldr r3, [r7, #4] - 8030730: f9b3 2012 ldrsh.w r2, [r3, #18] - 8030734: 683b ldr r3, [r7, #0] - 8030736: 805a strh r2, [r3, #2] - 8030738: e011 b.n 803075e <_lv_indev_read+0x56> + 803069a: 687b ldr r3, [r7, #4] + 803069c: f9b3 2012 ldrsh.w r2, [r3, #18] + 80306a0: 683b ldr r3, [r7, #0] + 80306a2: 805a strh r2, [r3, #2] + 80306a4: e011 b.n 80306ca <_lv_indev_read+0x56> } /*Similarly set at least the last key in case of the user doesn't set it on release*/ else if(indev->driver->type == LV_INDEV_TYPE_KEYPAD) { - 803073a: 687b ldr r3, [r7, #4] - 803073c: 681b ldr r3, [r3, #0] - 803073e: 781b ldrb r3, [r3, #0] - 8030740: 2b02 cmp r3, #2 - 8030742: d104 bne.n 803074e <_lv_indev_read+0x46> + 80306a6: 687b ldr r3, [r7, #4] + 80306a8: 681b ldr r3, [r3, #0] + 80306aa: 781b ldrb r3, [r3, #0] + 80306ac: 2b02 cmp r3, #2 + 80306ae: d104 bne.n 80306ba <_lv_indev_read+0x46> data->key = indev->proc.types.keypad.last_key; - 8030744: 687b ldr r3, [r7, #4] - 8030746: 68da ldr r2, [r3, #12] - 8030748: 683b ldr r3, [r7, #0] - 803074a: 605a str r2, [r3, #4] - 803074c: e007 b.n 803075e <_lv_indev_read+0x56> + 80306b0: 687b ldr r3, [r7, #4] + 80306b2: 68da ldr r2, [r3, #12] + 80306b4: 683b ldr r3, [r7, #0] + 80306b6: 605a str r2, [r3, #4] + 80306b8: e007 b.n 80306ca <_lv_indev_read+0x56> } /*For compatibility assume that used button was enter (encoder push)*/ else if(indev->driver->type == LV_INDEV_TYPE_ENCODER) { - 803074e: 687b ldr r3, [r7, #4] - 8030750: 681b ldr r3, [r3, #0] - 8030752: 781b ldrb r3, [r3, #0] - 8030754: 2b04 cmp r3, #4 - 8030756: d102 bne.n 803075e <_lv_indev_read+0x56> + 80306ba: 687b ldr r3, [r7, #4] + 80306bc: 681b ldr r3, [r3, #0] + 80306be: 781b ldrb r3, [r3, #0] + 80306c0: 2b04 cmp r3, #4 + 80306c2: d102 bne.n 80306ca <_lv_indev_read+0x56> data->key = LV_KEY_ENTER; - 8030758: 683b ldr r3, [r7, #0] - 803075a: 220a movs r2, #10 - 803075c: 605a str r2, [r3, #4] + 80306c4: 683b ldr r3, [r7, #0] + 80306c6: 220a movs r2, #10 + 80306c8: 605a str r2, [r3, #4] } if(indev->driver->read_cb) { - 803075e: 687b ldr r3, [r7, #4] - 8030760: 681b ldr r3, [r3, #0] - 8030762: 685b ldr r3, [r3, #4] - 8030764: 2b00 cmp r3, #0 - 8030766: d007 beq.n 8030778 <_lv_indev_read+0x70> + 80306ca: 687b ldr r3, [r7, #4] + 80306cc: 681b ldr r3, [r3, #0] + 80306ce: 685b ldr r3, [r3, #4] + 80306d0: 2b00 cmp r3, #0 + 80306d2: d007 beq.n 80306e4 <_lv_indev_read+0x70> INDEV_TRACE("calling indev_read_cb"); indev->driver->read_cb(indev->driver, data); - 8030768: 687b ldr r3, [r7, #4] - 803076a: 681b ldr r3, [r3, #0] - 803076c: 685b ldr r3, [r3, #4] - 803076e: 687a ldr r2, [r7, #4] - 8030770: 6812 ldr r2, [r2, #0] - 8030772: 6839 ldr r1, [r7, #0] - 8030774: 4610 mov r0, r2 - 8030776: 4798 blx r3 + 80306d4: 687b ldr r3, [r7, #4] + 80306d6: 681b ldr r3, [r3, #0] + 80306d8: 685b ldr r3, [r3, #4] + 80306da: 687a ldr r2, [r7, #4] + 80306dc: 6812 ldr r2, [r2, #0] + 80306de: 6839 ldr r1, [r7, #0] + 80306e0: 4610 mov r0, r2 + 80306e2: 4798 blx r3 } else { LV_LOG_WARN("indev_read_cb is not registered"); } } - 8030778: bf00 nop - 803077a: 3708 adds r7, #8 - 803077c: 46bd mov sp, r7 - 803077e: bd80 pop {r7, pc} + 80306e4: bf00 nop + 80306e6: 3708 adds r7, #8 + 80306e8: 46bd mov sp, r7 + 80306ea: bd80 pop {r7, pc} -08030780 : +080306ec : /** * You have to call this function periodically * @param tick_period the call period of this function in milliseconds */ LV_ATTRIBUTE_TICK_INC void lv_tick_inc(uint32_t tick_period) { - 8030780: b480 push {r7} - 8030782: b083 sub sp, #12 - 8030784: af00 add r7, sp, #0 - 8030786: 6078 str r0, [r7, #4] + 80306ec: b480 push {r7} + 80306ee: b083 sub sp, #12 + 80306f0: af00 add r7, sp, #0 + 80306f2: 6078 str r0, [r7, #4] tick_irq_flag = 0; - 8030788: 4b06 ldr r3, [pc, #24] ; (80307a4 ) - 803078a: 2200 movs r2, #0 - 803078c: 701a strb r2, [r3, #0] + 80306f4: 4b06 ldr r3, [pc, #24] ; (8030710 ) + 80306f6: 2200 movs r2, #0 + 80306f8: 701a strb r2, [r3, #0] sys_time += tick_period; - 803078e: 4b06 ldr r3, [pc, #24] ; (80307a8 ) - 8030790: 681a ldr r2, [r3, #0] - 8030792: 687b ldr r3, [r7, #4] - 8030794: 4413 add r3, r2 - 8030796: 4a04 ldr r2, [pc, #16] ; (80307a8 ) - 8030798: 6013 str r3, [r2, #0] + 80306fa: 4b06 ldr r3, [pc, #24] ; (8030714 ) + 80306fc: 681a ldr r2, [r3, #0] + 80306fe: 687b ldr r3, [r7, #4] + 8030700: 4413 add r3, r2 + 8030702: 4a04 ldr r2, [pc, #16] ; (8030714 ) + 8030704: 6013 str r3, [r2, #0] } - 803079a: bf00 nop - 803079c: 370c adds r7, #12 - 803079e: 46bd mov sp, r7 - 80307a0: bc80 pop {r7} - 80307a2: 4770 bx lr - 80307a4: 20001cf4 .word 0x20001cf4 - 80307a8: 20001cf0 .word 0x20001cf0 + 8030706: bf00 nop + 8030708: 370c adds r7, #12 + 803070a: 46bd mov sp, r7 + 803070c: bc80 pop {r7} + 803070e: 4770 bx lr + 8030710: 20001cf4 .word 0x20001cf4 + 8030714: 20001cf0 .word 0x20001cf0 -080307ac : +08030718 : /** * Get the elapsed milliseconds since start up * @return the elapsed milliseconds */ uint32_t lv_tick_get(void) { - 80307ac: b480 push {r7} - 80307ae: b083 sub sp, #12 - 80307b0: af00 add r7, sp, #0 + 8030718: b480 push {r7} + 803071a: b083 sub sp, #12 + 803071c: af00 add r7, sp, #0 *This loop detects if `lv_tick_inc` was called while reading `sys_time`. *If `tick_irq_flag` was cleared in `lv_tick_inc` try to read again *until `tick_irq_flag` remains `1`.*/ uint32_t result; do { tick_irq_flag = 1; - 80307b2: 4b08 ldr r3, [pc, #32] ; (80307d4 ) - 80307b4: 2201 movs r2, #1 - 80307b6: 701a strb r2, [r3, #0] + 803071e: 4b08 ldr r3, [pc, #32] ; (8030740 ) + 8030720: 2201 movs r2, #1 + 8030722: 701a strb r2, [r3, #0] result = sys_time; - 80307b8: 4b07 ldr r3, [pc, #28] ; (80307d8 ) - 80307ba: 681b ldr r3, [r3, #0] - 80307bc: 607b str r3, [r7, #4] + 8030724: 4b07 ldr r3, [pc, #28] ; (8030744 ) + 8030726: 681b ldr r3, [r3, #0] + 8030728: 607b str r3, [r7, #4] } while(!tick_irq_flag); /*Continue until see a non interrupted cycle*/ - 80307be: 4b05 ldr r3, [pc, #20] ; (80307d4 ) - 80307c0: 781b ldrb r3, [r3, #0] - 80307c2: b2db uxtb r3, r3 - 80307c4: 2b00 cmp r3, #0 - 80307c6: d0f4 beq.n 80307b2 + 803072a: 4b05 ldr r3, [pc, #20] ; (8030740 ) + 803072c: 781b ldrb r3, [r3, #0] + 803072e: b2db uxtb r3, r3 + 8030730: 2b00 cmp r3, #0 + 8030732: d0f4 beq.n 803071e return result; - 80307c8: 687b ldr r3, [r7, #4] + 8030734: 687b ldr r3, [r7, #4] #else return LV_TICK_CUSTOM_SYS_TIME_EXPR; #endif } - 80307ca: 4618 mov r0, r3 - 80307cc: 370c adds r7, #12 - 80307ce: 46bd mov sp, r7 - 80307d0: bc80 pop {r7} - 80307d2: 4770 bx lr - 80307d4: 20001cf4 .word 0x20001cf4 - 80307d8: 20001cf0 .word 0x20001cf0 + 8030736: 4618 mov r0, r3 + 8030738: 370c adds r7, #12 + 803073a: 46bd mov sp, r7 + 803073c: bc80 pop {r7} + 803073e: 4770 bx lr + 8030740: 20001cf4 .word 0x20001cf4 + 8030744: 20001cf0 .word 0x20001cf0 -080307dc : +08030748 : * Get the elapsed milliseconds since a previous time stamp * @param prev_tick a previous time stamp (return value of lv_tick_get() ) * @return the elapsed milliseconds since 'prev_tick' */ uint32_t lv_tick_elaps(uint32_t prev_tick) { - 80307dc: b580 push {r7, lr} - 80307de: b084 sub sp, #16 - 80307e0: af00 add r7, sp, #0 - 80307e2: 6078 str r0, [r7, #4] + 8030748: b580 push {r7, lr} + 803074a: b084 sub sp, #16 + 803074c: af00 add r7, sp, #0 + 803074e: 6078 str r0, [r7, #4] uint32_t act_time = lv_tick_get(); - 80307e4: f7ff ffe2 bl 80307ac - 80307e8: 60f8 str r0, [r7, #12] + 8030750: f7ff ffe2 bl 8030718 + 8030754: 60f8 str r0, [r7, #12] /*If there is no overflow in sys_time simple subtract*/ if(act_time >= prev_tick) { - 80307ea: 68fa ldr r2, [r7, #12] - 80307ec: 687b ldr r3, [r7, #4] - 80307ee: 429a cmp r2, r3 - 80307f0: d304 bcc.n 80307fc + 8030756: 68fa ldr r2, [r7, #12] + 8030758: 687b ldr r3, [r7, #4] + 803075a: 429a cmp r2, r3 + 803075c: d304 bcc.n 8030768 prev_tick = act_time - prev_tick; - 80307f2: 68fa ldr r2, [r7, #12] - 80307f4: 687b ldr r3, [r7, #4] - 80307f6: 1ad3 subs r3, r2, r3 - 80307f8: 607b str r3, [r7, #4] - 80307fa: e006 b.n 803080a + 803075e: 68fa ldr r2, [r7, #12] + 8030760: 687b ldr r3, [r7, #4] + 8030762: 1ad3 subs r3, r2, r3 + 8030764: 607b str r3, [r7, #4] + 8030766: e006 b.n 8030776 } else { prev_tick = UINT32_MAX - prev_tick + 1; - 80307fc: 687b ldr r3, [r7, #4] - 80307fe: 425b negs r3, r3 - 8030800: 607b str r3, [r7, #4] + 8030768: 687b ldr r3, [r7, #4] + 803076a: 425b negs r3, r3 + 803076c: 607b str r3, [r7, #4] prev_tick += act_time; - 8030802: 687a ldr r2, [r7, #4] - 8030804: 68fb ldr r3, [r7, #12] - 8030806: 4413 add r3, r2 - 8030808: 607b str r3, [r7, #4] + 803076e: 687a ldr r2, [r7, #4] + 8030770: 68fb ldr r3, [r7, #12] + 8030772: 4413 add r3, r2 + 8030774: 607b str r3, [r7, #4] } return prev_tick; - 803080a: 687b ldr r3, [r7, #4] + 8030776: 687b ldr r3, [r7, #4] } - 803080c: 4618 mov r0, r3 - 803080e: 3710 adds r7, #16 - 8030810: 46bd mov sp, r7 - 8030812: bd80 pop {r7, pc} + 8030778: 4618 mov r0, r3 + 803077a: 3710 adds r7, #16 + 803077c: 46bd mov sp, r7 + 803077e: bd80 pop {r7, pc} -08030814 <_lv_anim_core_init>: +08030780 <_lv_anim_core_init>: /********************** * GLOBAL FUNCTIONS **********************/ void _lv_anim_core_init(void) { - 8030814: b580 push {r7, lr} - 8030816: af00 add r7, sp, #0 + 8030780: b580 push {r7, lr} + 8030782: af00 add r7, sp, #0 _lv_ll_init(&LV_GC_ROOT(_lv_anim_ll), sizeof(lv_anim_t)); - 8030818: 2140 movs r1, #64 ; 0x40 - 803081a: 4809 ldr r0, [pc, #36] ; (8030840 <_lv_anim_core_init+0x2c>) - 803081c: f001 fca0 bl 8032160 <_lv_ll_init> + 8030784: 2140 movs r1, #64 ; 0x40 + 8030786: 4809 ldr r0, [pc, #36] ; (80307ac <_lv_anim_core_init+0x2c>) + 8030788: f001 fca0 bl 80320cc <_lv_ll_init> _lv_anim_tmr = lv_timer_create(anim_timer, LV_DISP_DEF_REFR_PERIOD, NULL); - 8030820: 2200 movs r2, #0 - 8030822: 211e movs r1, #30 - 8030824: 4807 ldr r0, [pc, #28] ; (8030844 <_lv_anim_core_init+0x30>) - 8030826: f004 fc63 bl 80350f0 - 803082a: 4603 mov r3, r0 - 803082c: 4a06 ldr r2, [pc, #24] ; (8030848 <_lv_anim_core_init+0x34>) - 803082e: 6013 str r3, [r2, #0] + 803078c: 2200 movs r2, #0 + 803078e: 211e movs r1, #30 + 8030790: 4807 ldr r0, [pc, #28] ; (80307b0 <_lv_anim_core_init+0x30>) + 8030792: f004 fc63 bl 803505c + 8030796: 4603 mov r3, r0 + 8030798: 4a06 ldr r2, [pc, #24] ; (80307b4 <_lv_anim_core_init+0x34>) + 803079a: 6013 str r3, [r2, #0] anim_mark_list_change(); /*Turn off the animation timer*/ - 8030830: f000 fb1a bl 8030e68 + 803079c: f000 fb1a bl 8030dd4 anim_list_changed = false; - 8030834: 4b05 ldr r3, [pc, #20] ; (803084c <_lv_anim_core_init+0x38>) - 8030836: 2200 movs r2, #0 - 8030838: 701a strb r2, [r3, #0] + 80307a0: 4b05 ldr r3, [pc, #20] ; (80307b8 <_lv_anim_core_init+0x38>) + 80307a2: 2200 movs r2, #0 + 80307a4: 701a strb r2, [r3, #0] } - 803083a: bf00 nop - 803083c: bd80 pop {r7, pc} - 803083e: bf00 nop - 8030840: 20001d34 .word 0x20001d34 - 8030844: 08030bd5 .word 0x08030bd5 - 8030848: 20001d00 .word 0x20001d00 - 803084c: 20001cfc .word 0x20001cfc + 80307a6: bf00 nop + 80307a8: bd80 pop {r7, pc} + 80307aa: bf00 nop + 80307ac: 20001d34 .word 0x20001d34 + 80307b0: 08030b41 .word 0x08030b41 + 80307b4: 20001d00 .word 0x20001d00 + 80307b8: 20001cfc .word 0x20001cfc -08030850 : +080307bc : void lv_anim_init(lv_anim_t * a) { - 8030850: b580 push {r7, lr} - 8030852: b082 sub sp, #8 - 8030854: af00 add r7, sp, #0 - 8030856: 6078 str r0, [r7, #4] + 80307bc: b580 push {r7, lr} + 80307be: b082 sub sp, #8 + 80307c0: af00 add r7, sp, #0 + 80307c2: 6078 str r0, [r7, #4] lv_memset_00(a, sizeof(lv_anim_t)); - 8030858: 2140 movs r1, #64 ; 0x40 - 803085a: 6878 ldr r0, [r7, #4] - 803085c: f002 fc78 bl 8033150 + 80307c4: 2140 movs r1, #64 ; 0x40 + 80307c6: 6878 ldr r0, [r7, #4] + 80307c8: f002 fc78 bl 80330bc a->time = 500; - 8030860: 687b ldr r3, [r7, #4] - 8030862: f44f 72fa mov.w r2, #500 ; 0x1f4 - 8030866: 629a str r2, [r3, #40] ; 0x28 + 80307cc: 687b ldr r3, [r7, #4] + 80307ce: f44f 72fa mov.w r2, #500 ; 0x1f4 + 80307d2: 629a str r2, [r3, #40] ; 0x28 a->start_value = 0; - 8030868: 687b ldr r3, [r7, #4] - 803086a: 2200 movs r2, #0 - 803086c: 61da str r2, [r3, #28] + 80307d4: 687b ldr r3, [r7, #4] + 80307d6: 2200 movs r2, #0 + 80307d8: 61da str r2, [r3, #28] a->end_value = 100; - 803086e: 687b ldr r3, [r7, #4] - 8030870: 2264 movs r2, #100 ; 0x64 - 8030872: 625a str r2, [r3, #36] ; 0x24 + 80307da: 687b ldr r3, [r7, #4] + 80307dc: 2264 movs r2, #100 ; 0x64 + 80307de: 625a str r2, [r3, #36] ; 0x24 a->repeat_cnt = 1; - 8030874: 687b ldr r3, [r7, #4] - 8030876: 2201 movs r2, #1 - 8030878: 879a strh r2, [r3, #60] ; 0x3c + 80307e0: 687b ldr r3, [r7, #4] + 80307e2: 2201 movs r2, #1 + 80307e4: 879a strh r2, [r3, #60] ; 0x3c a->path_cb = lv_anim_path_linear; - 803087a: 687b ldr r3, [r7, #4] - 803087c: 4a06 ldr r2, [pc, #24] ; (8030898 ) - 803087e: 619a str r2, [r3, #24] + 80307e6: 687b ldr r3, [r7, #4] + 80307e8: 4a06 ldr r2, [pc, #24] ; (8030804 ) + 80307ea: 619a str r2, [r3, #24] a->early_apply = 1; - 8030880: 687a ldr r2, [r7, #4] - 8030882: f892 303e ldrb.w r3, [r2, #62] ; 0x3e - 8030886: f043 0301 orr.w r3, r3, #1 - 803088a: f882 303e strb.w r3, [r2, #62] ; 0x3e + 80307ec: 687a ldr r2, [r7, #4] + 80307ee: f892 303e ldrb.w r3, [r2, #62] ; 0x3e + 80307f2: f043 0301 orr.w r3, r3, #1 + 80307f6: f882 303e strb.w r3, [r2, #62] ; 0x3e } - 803088e: bf00 nop - 8030890: 3708 adds r7, #8 - 8030892: 46bd mov sp, r7 - 8030894: bd80 pop {r7, pc} - 8030896: bf00 nop - 8030898: 08030a91 .word 0x08030a91 + 80307fa: bf00 nop + 80307fc: 3708 adds r7, #8 + 80307fe: 46bd mov sp, r7 + 8030800: bd80 pop {r7, pc} + 8030802: bf00 nop + 8030804: 080309fd .word 0x080309fd -0803089c : +08030808 : lv_anim_t * lv_anim_start(const lv_anim_t * a) { - 803089c: b580 push {r7, lr} - 803089e: b084 sub sp, #16 - 80308a0: af00 add r7, sp, #0 - 80308a2: 6078 str r0, [r7, #4] + 8030808: b580 push {r7, lr} + 803080a: b084 sub sp, #16 + 803080c: af00 add r7, sp, #0 + 803080e: 6078 str r0, [r7, #4] TRACE_ANIM("begin"); /*Do not let two animations for the same 'var' with the same 'exec_cb'*/ if(a->exec_cb != NULL) lv_anim_del(a->var, a->exec_cb); /*exec_cb == NULL would delete all animations of var*/ - 80308a4: 687b ldr r3, [r7, #4] - 80308a6: 685b ldr r3, [r3, #4] - 80308a8: 2b00 cmp r3, #0 - 80308aa: d007 beq.n 80308bc - 80308ac: 687b ldr r3, [r7, #4] - 80308ae: 681a ldr r2, [r3, #0] - 80308b0: 687b ldr r3, [r7, #4] - 80308b2: 685b ldr r3, [r3, #4] - 80308b4: 4619 mov r1, r3 - 80308b6: 4610 mov r0, r2 - 80308b8: f000 f868 bl 803098c + 8030810: 687b ldr r3, [r7, #4] + 8030812: 685b ldr r3, [r3, #4] + 8030814: 2b00 cmp r3, #0 + 8030816: d007 beq.n 8030828 + 8030818: 687b ldr r3, [r7, #4] + 803081a: 681a ldr r2, [r3, #0] + 803081c: 687b ldr r3, [r7, #4] + 803081e: 685b ldr r3, [r3, #4] + 8030820: 4619 mov r1, r3 + 8030822: 4610 mov r0, r2 + 8030824: f000 f868 bl 80308f8 /*If the list is empty the anim timer was suspended and it's last run measure is invalid*/ if(_lv_ll_is_empty(&LV_GC_ROOT(_lv_anim_ll))) { - 80308bc: 4830 ldr r0, [pc, #192] ; (8030980 ) - 80308be: f001 fdaf bl 8032420 <_lv_ll_is_empty> - 80308c2: 4603 mov r3, r0 - 80308c4: 2b00 cmp r3, #0 - 80308c6: d004 beq.n 80308d2 + 8030828: 4830 ldr r0, [pc, #192] ; (80308ec ) + 803082a: f001 fdaf bl 803238c <_lv_ll_is_empty> + 803082e: 4603 mov r3, r0 + 8030830: 2b00 cmp r3, #0 + 8030832: d004 beq.n 803083e last_timer_run = lv_tick_get(); - 80308c8: f7ff ff70 bl 80307ac - 80308cc: 4603 mov r3, r0 - 80308ce: 4a2d ldr r2, [pc, #180] ; (8030984 ) - 80308d0: 6013 str r3, [r2, #0] + 8030834: f7ff ff70 bl 8030718 + 8030838: 4603 mov r3, r0 + 803083a: 4a2d ldr r2, [pc, #180] ; (80308f0 ) + 803083c: 6013 str r3, [r2, #0] } /*Add the new animation to the animation linked list*/ lv_anim_t * new_anim = _lv_ll_ins_head(&LV_GC_ROOT(_lv_anim_ll)); - 80308d2: 482b ldr r0, [pc, #172] ; (8030980 ) - 80308d4: f001 fc5c bl 8032190 <_lv_ll_ins_head> - 80308d8: 60f8 str r0, [r7, #12] + 803083e: 482b ldr r0, [pc, #172] ; (80308ec ) + 8030840: f001 fc5c bl 80320fc <_lv_ll_ins_head> + 8030844: 60f8 str r0, [r7, #12] LV_ASSERT_MALLOC(new_anim); - 80308da: 68fb ldr r3, [r7, #12] - 80308dc: 2b00 cmp r3, #0 - 80308de: d100 bne.n 80308e2 - 80308e0: e7fe b.n 80308e0 + 8030846: 68fb ldr r3, [r7, #12] + 8030848: 2b00 cmp r3, #0 + 803084a: d100 bne.n 803084e + 803084c: e7fe b.n 803084c if(new_anim == NULL) return NULL; - 80308e2: 68fb ldr r3, [r7, #12] - 80308e4: 2b00 cmp r3, #0 - 80308e6: d101 bne.n 80308ec - 80308e8: 2300 movs r3, #0 - 80308ea: e045 b.n 8030978 + 803084e: 68fb ldr r3, [r7, #12] + 8030850: 2b00 cmp r3, #0 + 8030852: d101 bne.n 8030858 + 8030854: 2300 movs r3, #0 + 8030856: e045 b.n 80308e4 /*Initialize the animation descriptor*/ lv_memcpy(new_anim, a, sizeof(lv_anim_t)); - 80308ec: 2240 movs r2, #64 ; 0x40 - 80308ee: 6879 ldr r1, [r7, #4] - 80308f0: 68f8 ldr r0, [r7, #12] - 80308f2: f002 f989 bl 8032c08 + 8030858: 2240 movs r2, #64 ; 0x40 + 803085a: 6879 ldr r1, [r7, #4] + 803085c: 68f8 ldr r0, [r7, #12] + 803085e: f002 f989 bl 8032b74 if(a->var == a) new_anim->var = new_anim; - 80308f6: 687b ldr r3, [r7, #4] - 80308f8: 681b ldr r3, [r3, #0] - 80308fa: 687a ldr r2, [r7, #4] - 80308fc: 429a cmp r2, r3 - 80308fe: d102 bne.n 8030906 - 8030900: 68fb ldr r3, [r7, #12] - 8030902: 68fa ldr r2, [r7, #12] - 8030904: 601a str r2, [r3, #0] + 8030862: 687b ldr r3, [r7, #4] + 8030864: 681b ldr r3, [r3, #0] + 8030866: 687a ldr r2, [r7, #4] + 8030868: 429a cmp r2, r3 + 803086a: d102 bne.n 8030872 + 803086c: 68fb ldr r3, [r7, #12] + 803086e: 68fa ldr r2, [r7, #12] + 8030870: 601a str r2, [r3, #0] new_anim->run_round = anim_run_round; - 8030906: 4b20 ldr r3, [pc, #128] ; (8030988 ) - 8030908: 7819 ldrb r1, [r3, #0] - 803090a: 68fa ldr r2, [r7, #12] - 803090c: f892 303e ldrb.w r3, [r2, #62] ; 0x3e - 8030910: f361 0382 bfi r3, r1, #2, #1 - 8030914: f882 303e strb.w r3, [r2, #62] ; 0x3e + 8030872: 4b20 ldr r3, [pc, #128] ; (80308f4 ) + 8030874: 7819 ldrb r1, [r3, #0] + 8030876: 68fa ldr r2, [r7, #12] + 8030878: f892 303e ldrb.w r3, [r2, #62] ; 0x3e + 803087c: f361 0382 bfi r3, r1, #2, #1 + 8030880: f882 303e strb.w r3, [r2, #62] ; 0x3e /*Set the start value*/ if(new_anim->early_apply) { - 8030918: 68fb ldr r3, [r7, #12] - 803091a: f893 303e ldrb.w r3, [r3, #62] ; 0x3e - 803091e: f003 0301 and.w r3, r3, #1 - 8030922: b2db uxtb r3, r3 - 8030924: 2b00 cmp r3, #0 - 8030926: d024 beq.n 8030972 + 8030884: 68fb ldr r3, [r7, #12] + 8030886: f893 303e ldrb.w r3, [r3, #62] ; 0x3e + 803088a: f003 0301 and.w r3, r3, #1 + 803088e: b2db uxtb r3, r3 + 8030890: 2b00 cmp r3, #0 + 8030892: d024 beq.n 80308de if(new_anim->get_value_cb) { - 8030928: 68fb ldr r3, [r7, #12] - 803092a: 691b ldr r3, [r3, #16] - 803092c: 2b00 cmp r3, #0 - 803092e: d010 beq.n 8030952 + 8030894: 68fb ldr r3, [r7, #12] + 8030896: 691b ldr r3, [r3, #16] + 8030898: 2b00 cmp r3, #0 + 803089a: d010 beq.n 80308be int32_t v_ofs = new_anim->get_value_cb(new_anim); - 8030930: 68fb ldr r3, [r7, #12] - 8030932: 691b ldr r3, [r3, #16] - 8030934: 68f8 ldr r0, [r7, #12] - 8030936: 4798 blx r3 - 8030938: 60b8 str r0, [r7, #8] + 803089c: 68fb ldr r3, [r7, #12] + 803089e: 691b ldr r3, [r3, #16] + 80308a0: 68f8 ldr r0, [r7, #12] + 80308a2: 4798 blx r3 + 80308a4: 60b8 str r0, [r7, #8] new_anim->start_value += v_ofs; - 803093a: 68fb ldr r3, [r7, #12] - 803093c: 69da ldr r2, [r3, #28] - 803093e: 68bb ldr r3, [r7, #8] - 8030940: 441a add r2, r3 - 8030942: 68fb ldr r3, [r7, #12] - 8030944: 61da str r2, [r3, #28] + 80308a6: 68fb ldr r3, [r7, #12] + 80308a8: 69da ldr r2, [r3, #28] + 80308aa: 68bb ldr r3, [r7, #8] + 80308ac: 441a add r2, r3 + 80308ae: 68fb ldr r3, [r7, #12] + 80308b0: 61da str r2, [r3, #28] new_anim->end_value += v_ofs; - 8030946: 68fb ldr r3, [r7, #12] - 8030948: 6a5a ldr r2, [r3, #36] ; 0x24 - 803094a: 68bb ldr r3, [r7, #8] - 803094c: 441a add r2, r3 - 803094e: 68fb ldr r3, [r7, #12] - 8030950: 625a str r2, [r3, #36] ; 0x24 + 80308b2: 68fb ldr r3, [r7, #12] + 80308b4: 6a5a ldr r2, [r3, #36] ; 0x24 + 80308b6: 68bb ldr r3, [r7, #8] + 80308b8: 441a add r2, r3 + 80308ba: 68fb ldr r3, [r7, #12] + 80308bc: 625a str r2, [r3, #36] ; 0x24 } if(new_anim->exec_cb && new_anim->var) new_anim->exec_cb(new_anim->var, new_anim->start_value); - 8030952: 68fb ldr r3, [r7, #12] - 8030954: 685b ldr r3, [r3, #4] - 8030956: 2b00 cmp r3, #0 - 8030958: d00b beq.n 8030972 - 803095a: 68fb ldr r3, [r7, #12] - 803095c: 681b ldr r3, [r3, #0] - 803095e: 2b00 cmp r3, #0 - 8030960: d007 beq.n 8030972 - 8030962: 68fb ldr r3, [r7, #12] - 8030964: 685b ldr r3, [r3, #4] - 8030966: 68fa ldr r2, [r7, #12] - 8030968: 6810 ldr r0, [r2, #0] - 803096a: 68fa ldr r2, [r7, #12] - 803096c: 69d2 ldr r2, [r2, #28] - 803096e: 4611 mov r1, r2 - 8030970: 4798 blx r3 + 80308be: 68fb ldr r3, [r7, #12] + 80308c0: 685b ldr r3, [r3, #4] + 80308c2: 2b00 cmp r3, #0 + 80308c4: d00b beq.n 80308de + 80308c6: 68fb ldr r3, [r7, #12] + 80308c8: 681b ldr r3, [r3, #0] + 80308ca: 2b00 cmp r3, #0 + 80308cc: d007 beq.n 80308de + 80308ce: 68fb ldr r3, [r7, #12] + 80308d0: 685b ldr r3, [r3, #4] + 80308d2: 68fa ldr r2, [r7, #12] + 80308d4: 6810 ldr r0, [r2, #0] + 80308d6: 68fa ldr r2, [r7, #12] + 80308d8: 69d2 ldr r2, [r2, #28] + 80308da: 4611 mov r1, r2 + 80308dc: 4798 blx r3 } /*Creating an animation changed the linked list. *It's important if it happens in a ready callback. (see `anim_timer`)*/ anim_mark_list_change(); - 8030972: f000 fa79 bl 8030e68 + 80308de: f000 fa79 bl 8030dd4 TRACE_ANIM("finished"); return new_anim; - 8030976: 68fb ldr r3, [r7, #12] + 80308e2: 68fb ldr r3, [r7, #12] } - 8030978: 4618 mov r0, r3 - 803097a: 3710 adds r7, #16 - 803097c: 46bd mov sp, r7 - 803097e: bd80 pop {r7, pc} - 8030980: 20001d34 .word 0x20001d34 - 8030984: 20001cf8 .word 0x20001cf8 - 8030988: 20001cfd .word 0x20001cfd + 80308e4: 4618 mov r0, r3 + 80308e6: 3710 adds r7, #16 + 80308e8: 46bd mov sp, r7 + 80308ea: bd80 pop {r7, pc} + 80308ec: 20001d34 .word 0x20001d34 + 80308f0: 20001cf8 .word 0x20001cf8 + 80308f4: 20001cfd .word 0x20001cfd -0803098c : +080308f8 : return playtime; } bool lv_anim_del(void * var, lv_anim_exec_xcb_t exec_cb) { - 803098c: b580 push {r7, lr} - 803098e: b086 sub sp, #24 - 8030990: af00 add r7, sp, #0 - 8030992: 6078 str r0, [r7, #4] - 8030994: 6039 str r1, [r7, #0] + 80308f8: b580 push {r7, lr} + 80308fa: b086 sub sp, #24 + 80308fc: af00 add r7, sp, #0 + 80308fe: 6078 str r0, [r7, #4] + 8030900: 6039 str r1, [r7, #0] lv_anim_t * a; lv_anim_t * a_next; bool del = false; - 8030996: 2300 movs r3, #0 - 8030998: 74fb strb r3, [r7, #19] + 8030902: 2300 movs r3, #0 + 8030904: 74fb strb r3, [r7, #19] a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)); - 803099a: 4817 ldr r0, [pc, #92] ; (80309f8 ) - 803099c: f001 fcde bl 803235c <_lv_ll_get_head> - 80309a0: 6178 str r0, [r7, #20] + 8030906: 4817 ldr r0, [pc, #92] ; (8030964 ) + 8030908: f001 fcde bl 80322c8 <_lv_ll_get_head> + 803090c: 6178 str r0, [r7, #20] while(a != NULL) { - 80309a2: e021 b.n 80309e8 + 803090e: e021 b.n 8030954 /*'a' might be deleted, so get the next object while 'a' is valid*/ a_next = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a); - 80309a4: 6979 ldr r1, [r7, #20] - 80309a6: 4814 ldr r0, [pc, #80] ; (80309f8 ) - 80309a8: f001 fcf8 bl 803239c <_lv_ll_get_next> - 80309ac: 60f8 str r0, [r7, #12] + 8030910: 6979 ldr r1, [r7, #20] + 8030912: 4814 ldr r0, [pc, #80] ; (8030964 ) + 8030914: f001 fcf8 bl 8032308 <_lv_ll_get_next> + 8030918: 60f8 str r0, [r7, #12] if((a->var == var || var == NULL) && (a->exec_cb == exec_cb || exec_cb == NULL)) { - 80309ae: 697b ldr r3, [r7, #20] - 80309b0: 681b ldr r3, [r3, #0] - 80309b2: 687a ldr r2, [r7, #4] - 80309b4: 429a cmp r2, r3 - 80309b6: d002 beq.n 80309be - 80309b8: 687b ldr r3, [r7, #4] - 80309ba: 2b00 cmp r3, #0 - 80309bc: d112 bne.n 80309e4 - 80309be: 697b ldr r3, [r7, #20] - 80309c0: 685b ldr r3, [r3, #4] - 80309c2: 683a ldr r2, [r7, #0] - 80309c4: 429a cmp r2, r3 - 80309c6: d002 beq.n 80309ce - 80309c8: 683b ldr r3, [r7, #0] - 80309ca: 2b00 cmp r3, #0 - 80309cc: d10a bne.n 80309e4 + 803091a: 697b ldr r3, [r7, #20] + 803091c: 681b ldr r3, [r3, #0] + 803091e: 687a ldr r2, [r7, #4] + 8030920: 429a cmp r2, r3 + 8030922: d002 beq.n 803092a + 8030924: 687b ldr r3, [r7, #4] + 8030926: 2b00 cmp r3, #0 + 8030928: d112 bne.n 8030950 + 803092a: 697b ldr r3, [r7, #20] + 803092c: 685b ldr r3, [r3, #4] + 803092e: 683a ldr r2, [r7, #0] + 8030930: 429a cmp r2, r3 + 8030932: d002 beq.n 803093a + 8030934: 683b ldr r3, [r7, #0] + 8030936: 2b00 cmp r3, #0 + 8030938: d10a bne.n 8030950 _lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a); - 80309ce: 6979 ldr r1, [r7, #20] - 80309d0: 4809 ldr r0, [pc, #36] ; (80309f8 ) - 80309d2: f001 fc45 bl 8032260 <_lv_ll_remove> + 803093a: 6979 ldr r1, [r7, #20] + 803093c: 4809 ldr r0, [pc, #36] ; (8030964 ) + 803093e: f001 fc45 bl 80321cc <_lv_ll_remove> lv_mem_free(a); - 80309d6: 6978 ldr r0, [r7, #20] - 80309d8: f001 ff80 bl 80328dc + 8030942: 6978 ldr r0, [r7, #20] + 8030944: f001 ff80 bl 8032848 anim_mark_list_change(); /*Read by `anim_timer`. It need to know if a delete occurred in - 80309dc: f000 fa44 bl 8030e68 + 8030948: f000 fa44 bl 8030dd4 the linked list*/ del = true; - 80309e0: 2301 movs r3, #1 - 80309e2: 74fb strb r3, [r7, #19] + 803094c: 2301 movs r3, #1 + 803094e: 74fb strb r3, [r7, #19] } a = a_next; - 80309e4: 68fb ldr r3, [r7, #12] - 80309e6: 617b str r3, [r7, #20] + 8030950: 68fb ldr r3, [r7, #12] + 8030952: 617b str r3, [r7, #20] while(a != NULL) { - 80309e8: 697b ldr r3, [r7, #20] - 80309ea: 2b00 cmp r3, #0 - 80309ec: d1da bne.n 80309a4 + 8030954: 697b ldr r3, [r7, #20] + 8030956: 2b00 cmp r3, #0 + 8030958: d1da bne.n 8030910 } return del; - 80309ee: 7cfb ldrb r3, [r7, #19] + 803095a: 7cfb ldrb r3, [r7, #19] } - 80309f0: 4618 mov r0, r3 - 80309f2: 3718 adds r7, #24 - 80309f4: 46bd mov sp, r7 - 80309f6: bd80 pop {r7, pc} - 80309f8: 20001d34 .word 0x20001d34 + 803095c: 4618 mov r0, r3 + 803095e: 3718 adds r7, #24 + 8030960: 46bd mov sp, r7 + 8030962: bd80 pop {r7, pc} + 8030964: 20001d34 .word 0x20001d34 -080309fc : +08030968 : _lv_ll_clear(&LV_GC_ROOT(_lv_anim_ll)); anim_mark_list_change(); } lv_anim_t * lv_anim_get(void * var, lv_anim_exec_xcb_t exec_cb) { - 80309fc: b580 push {r7, lr} - 80309fe: b084 sub sp, #16 - 8030a00: af00 add r7, sp, #0 - 8030a02: 6078 str r0, [r7, #4] - 8030a04: 6039 str r1, [r7, #0] + 8030968: b580 push {r7, lr} + 803096a: b084 sub sp, #16 + 803096c: af00 add r7, sp, #0 + 803096e: 6078 str r0, [r7, #4] + 8030970: 6039 str r1, [r7, #0] lv_anim_t * a; _LV_LL_READ(&LV_GC_ROOT(_lv_anim_ll), a) { - 8030a06: 4810 ldr r0, [pc, #64] ; (8030a48 ) - 8030a08: f001 fca8 bl 803235c <_lv_ll_get_head> - 8030a0c: 60f8 str r0, [r7, #12] - 8030a0e: e013 b.n 8030a38 + 8030972: 4810 ldr r0, [pc, #64] ; (80309b4 ) + 8030974: f001 fca8 bl 80322c8 <_lv_ll_get_head> + 8030978: 60f8 str r0, [r7, #12] + 803097a: e013 b.n 80309a4 if(a->var == var && (a->exec_cb == exec_cb || exec_cb == NULL)) { - 8030a10: 68fb ldr r3, [r7, #12] - 8030a12: 681b ldr r3, [r3, #0] - 8030a14: 687a ldr r2, [r7, #4] - 8030a16: 429a cmp r2, r3 - 8030a18: d109 bne.n 8030a2e - 8030a1a: 68fb ldr r3, [r7, #12] - 8030a1c: 685b ldr r3, [r3, #4] - 8030a1e: 683a ldr r2, [r7, #0] - 8030a20: 429a cmp r2, r3 - 8030a22: d002 beq.n 8030a2a - 8030a24: 683b ldr r3, [r7, #0] - 8030a26: 2b00 cmp r3, #0 - 8030a28: d101 bne.n 8030a2e + 803097c: 68fb ldr r3, [r7, #12] + 803097e: 681b ldr r3, [r3, #0] + 8030980: 687a ldr r2, [r7, #4] + 8030982: 429a cmp r2, r3 + 8030984: d109 bne.n 803099a + 8030986: 68fb ldr r3, [r7, #12] + 8030988: 685b ldr r3, [r3, #4] + 803098a: 683a ldr r2, [r7, #0] + 803098c: 429a cmp r2, r3 + 803098e: d002 beq.n 8030996 + 8030990: 683b ldr r3, [r7, #0] + 8030992: 2b00 cmp r3, #0 + 8030994: d101 bne.n 803099a return a; - 8030a2a: 68fb ldr r3, [r7, #12] - 8030a2c: e008 b.n 8030a40 + 8030996: 68fb ldr r3, [r7, #12] + 8030998: e008 b.n 80309ac _LV_LL_READ(&LV_GC_ROOT(_lv_anim_ll), a) { - 8030a2e: 68f9 ldr r1, [r7, #12] - 8030a30: 4805 ldr r0, [pc, #20] ; (8030a48 ) - 8030a32: f001 fcb3 bl 803239c <_lv_ll_get_next> - 8030a36: 60f8 str r0, [r7, #12] - 8030a38: 68fb ldr r3, [r7, #12] - 8030a3a: 2b00 cmp r3, #0 - 8030a3c: d1e8 bne.n 8030a10 + 803099a: 68f9 ldr r1, [r7, #12] + 803099c: 4805 ldr r0, [pc, #20] ; (80309b4 ) + 803099e: f001 fcb3 bl 8032308 <_lv_ll_get_next> + 80309a2: 60f8 str r0, [r7, #12] + 80309a4: 68fb ldr r3, [r7, #12] + 80309a6: 2b00 cmp r3, #0 + 80309a8: d1e8 bne.n 803097c } } return NULL; - 8030a3e: 2300 movs r3, #0 + 80309aa: 2300 movs r3, #0 } - 8030a40: 4618 mov r0, r3 - 8030a42: 3710 adds r7, #16 - 8030a44: 46bd mov sp, r7 - 8030a46: bd80 pop {r7, pc} - 8030a48: 20001d34 .word 0x20001d34 + 80309ac: 4618 mov r0, r3 + 80309ae: 3710 adds r7, #16 + 80309b0: 46bd mov sp, r7 + 80309b2: bd80 pop {r7, pc} + 80309b4: 20001d34 .word 0x20001d34 -08030a4c : +080309b8 : return cnt; } uint32_t lv_anim_speed_to_time(uint32_t speed, int32_t start, int32_t end) { - 8030a4c: b480 push {r7} - 8030a4e: b087 sub sp, #28 - 8030a50: af00 add r7, sp, #0 - 8030a52: 60f8 str r0, [r7, #12] - 8030a54: 60b9 str r1, [r7, #8] - 8030a56: 607a str r2, [r7, #4] + 80309b8: b480 push {r7} + 80309ba: b087 sub sp, #28 + 80309bc: af00 add r7, sp, #0 + 80309be: 60f8 str r0, [r7, #12] + 80309c0: 60b9 str r1, [r7, #8] + 80309c2: 607a str r2, [r7, #4] uint32_t d = LV_ABS(start - end); - 8030a58: 68ba ldr r2, [r7, #8] - 8030a5a: 687b ldr r3, [r7, #4] - 8030a5c: 1ad3 subs r3, r2, r3 - 8030a5e: 2b00 cmp r3, #0 - 8030a60: bfb8 it lt - 8030a62: 425b neglt r3, r3 - 8030a64: 613b str r3, [r7, #16] + 80309c4: 68ba ldr r2, [r7, #8] + 80309c6: 687b ldr r3, [r7, #4] + 80309c8: 1ad3 subs r3, r2, r3 + 80309ca: 2b00 cmp r3, #0 + 80309cc: bfb8 it lt + 80309ce: 425b neglt r3, r3 + 80309d0: 613b str r3, [r7, #16] uint32_t time = (d * 1000) / speed; - 8030a66: 693b ldr r3, [r7, #16] - 8030a68: f44f 727a mov.w r2, #1000 ; 0x3e8 - 8030a6c: fb03 f202 mul.w r2, r3, r2 - 8030a70: 68fb ldr r3, [r7, #12] - 8030a72: fbb2 f3f3 udiv r3, r2, r3 - 8030a76: 617b str r3, [r7, #20] + 80309d2: 693b ldr r3, [r7, #16] + 80309d4: f44f 727a mov.w r2, #1000 ; 0x3e8 + 80309d8: fb03 f202 mul.w r2, r3, r2 + 80309dc: 68fb ldr r3, [r7, #12] + 80309de: fbb2 f3f3 udiv r3, r2, r3 + 80309e2: 617b str r3, [r7, #20] if(time == 0) { - 8030a78: 697b ldr r3, [r7, #20] - 8030a7a: 2b00 cmp r3, #0 - 8030a7c: d102 bne.n 8030a84 + 80309e4: 697b ldr r3, [r7, #20] + 80309e6: 2b00 cmp r3, #0 + 80309e8: d102 bne.n 80309f0 time++; - 8030a7e: 697b ldr r3, [r7, #20] - 8030a80: 3301 adds r3, #1 - 8030a82: 617b str r3, [r7, #20] + 80309ea: 697b ldr r3, [r7, #20] + 80309ec: 3301 adds r3, #1 + 80309ee: 617b str r3, [r7, #20] } return time; - 8030a84: 697b ldr r3, [r7, #20] + 80309f0: 697b ldr r3, [r7, #20] } - 8030a86: 4618 mov r0, r3 - 8030a88: 371c adds r7, #28 - 8030a8a: 46bd mov sp, r7 - 8030a8c: bc80 pop {r7} - 8030a8e: 4770 bx lr + 80309f2: 4618 mov r0, r3 + 80309f4: 371c adds r7, #28 + 80309f6: 46bd mov sp, r7 + 80309f8: bc80 pop {r7} + 80309fa: 4770 bx lr -08030a90 : +080309fc : { anim_timer(NULL); } int32_t lv_anim_path_linear(const lv_anim_t * a) { - 8030a90: b580 push {r7, lr} - 8030a92: b086 sub sp, #24 - 8030a94: af02 add r7, sp, #8 - 8030a96: 6078 str r0, [r7, #4] + 80309fc: b580 push {r7, lr} + 80309fe: b086 sub sp, #24 + 8030a00: af02 add r7, sp, #8 + 8030a02: 6078 str r0, [r7, #4] /*Calculate the current step*/ int32_t step = lv_map(a->act_time, 0, a->time, 0, LV_ANIM_RESOLUTION); - 8030a98: 687b ldr r3, [r7, #4] - 8030a9a: 6ad8 ldr r0, [r3, #44] ; 0x2c - 8030a9c: 687b ldr r3, [r7, #4] - 8030a9e: 6a9a ldr r2, [r3, #40] ; 0x28 - 8030aa0: f44f 6380 mov.w r3, #1024 ; 0x400 - 8030aa4: 9300 str r3, [sp, #0] - 8030aa6: 2300 movs r3, #0 - 8030aa8: 2100 movs r1, #0 - 8030aaa: f001 feba bl 8032822 - 8030aae: 60f8 str r0, [r7, #12] + 8030a04: 687b ldr r3, [r7, #4] + 8030a06: 6ad8 ldr r0, [r3, #44] ; 0x2c + 8030a08: 687b ldr r3, [r7, #4] + 8030a0a: 6a9a ldr r2, [r3, #40] ; 0x28 + 8030a0c: f44f 6380 mov.w r3, #1024 ; 0x400 + 8030a10: 9300 str r3, [sp, #0] + 8030a12: 2300 movs r3, #0 + 8030a14: 2100 movs r1, #0 + 8030a16: f001 feba bl 803278e + 8030a1a: 60f8 str r0, [r7, #12] /*Get the new value which will be proportional to `step` *and the `start` and `end` values*/ int32_t new_value; new_value = step * (a->end_value - a->start_value); - 8030ab0: 687b ldr r3, [r7, #4] - 8030ab2: 6a5a ldr r2, [r3, #36] ; 0x24 - 8030ab4: 687b ldr r3, [r7, #4] - 8030ab6: 69db ldr r3, [r3, #28] - 8030ab8: 1ad2 subs r2, r2, r3 - 8030aba: 68fb ldr r3, [r7, #12] - 8030abc: fb02 f303 mul.w r3, r2, r3 - 8030ac0: 60bb str r3, [r7, #8] + 8030a1c: 687b ldr r3, [r7, #4] + 8030a1e: 6a5a ldr r2, [r3, #36] ; 0x24 + 8030a20: 687b ldr r3, [r7, #4] + 8030a22: 69db ldr r3, [r3, #28] + 8030a24: 1ad2 subs r2, r2, r3 + 8030a26: 68fb ldr r3, [r7, #12] + 8030a28: fb02 f303 mul.w r3, r2, r3 + 8030a2c: 60bb str r3, [r7, #8] new_value = new_value >> LV_ANIM_RES_SHIFT; - 8030ac2: 68bb ldr r3, [r7, #8] - 8030ac4: 129b asrs r3, r3, #10 - 8030ac6: 60bb str r3, [r7, #8] + 8030a2e: 68bb ldr r3, [r7, #8] + 8030a30: 129b asrs r3, r3, #10 + 8030a32: 60bb str r3, [r7, #8] new_value += a->start_value; - 8030ac8: 687b ldr r3, [r7, #4] - 8030aca: 69db ldr r3, [r3, #28] - 8030acc: 68ba ldr r2, [r7, #8] - 8030ace: 4413 add r3, r2 - 8030ad0: 60bb str r3, [r7, #8] + 8030a34: 687b ldr r3, [r7, #4] + 8030a36: 69db ldr r3, [r3, #28] + 8030a38: 68ba ldr r2, [r7, #8] + 8030a3a: 4413 add r3, r2 + 8030a3c: 60bb str r3, [r7, #8] return new_value; - 8030ad2: 68bb ldr r3, [r7, #8] + 8030a3e: 68bb ldr r3, [r7, #8] } - 8030ad4: 4618 mov r0, r3 - 8030ad6: 3710 adds r7, #16 - 8030ad8: 46bd mov sp, r7 - 8030ada: bd80 pop {r7, pc} + 8030a40: 4618 mov r0, r3 + 8030a42: 3710 adds r7, #16 + 8030a44: 46bd mov sp, r7 + 8030a46: bd80 pop {r7, pc} -08030adc : +08030a48 : return new_value; } int32_t lv_anim_path_ease_out(const lv_anim_t * a) { - 8030adc: b580 push {r7, lr} - 8030ade: b088 sub sp, #32 - 8030ae0: af02 add r7, sp, #8 - 8030ae2: 6078 str r0, [r7, #4] + 8030a48: b580 push {r7, lr} + 8030a4a: b088 sub sp, #32 + 8030a4c: af02 add r7, sp, #8 + 8030a4e: 6078 str r0, [r7, #4] /*Calculate the current step*/ uint32_t t = lv_map(a->act_time, 0, a->time, 0, LV_BEZIER_VAL_MAX); - 8030ae4: 687b ldr r3, [r7, #4] - 8030ae6: 6ad8 ldr r0, [r3, #44] ; 0x2c - 8030ae8: 687b ldr r3, [r7, #4] - 8030aea: 6a9a ldr r2, [r3, #40] ; 0x28 - 8030aec: f44f 6380 mov.w r3, #1024 ; 0x400 - 8030af0: 9300 str r3, [sp, #0] - 8030af2: 2300 movs r3, #0 - 8030af4: 2100 movs r1, #0 - 8030af6: f001 fe94 bl 8032822 - 8030afa: 4603 mov r3, r0 - 8030afc: 617b str r3, [r7, #20] + 8030a50: 687b ldr r3, [r7, #4] + 8030a52: 6ad8 ldr r0, [r3, #44] ; 0x2c + 8030a54: 687b ldr r3, [r7, #4] + 8030a56: 6a9a ldr r2, [r3, #40] ; 0x28 + 8030a58: f44f 6380 mov.w r3, #1024 ; 0x400 + 8030a5c: 9300 str r3, [sp, #0] + 8030a5e: 2300 movs r3, #0 + 8030a60: 2100 movs r1, #0 + 8030a62: f001 fe94 bl 803278e + 8030a66: 4603 mov r3, r0 + 8030a68: 617b str r3, [r7, #20] int32_t step = lv_bezier3(t, 0, 900, 950, LV_BEZIER_VAL_MAX); - 8030afe: f44f 6380 mov.w r3, #1024 ; 0x400 - 8030b02: 9300 str r3, [sp, #0] - 8030b04: f240 33b6 movw r3, #950 ; 0x3b6 - 8030b08: f44f 7261 mov.w r2, #900 ; 0x384 - 8030b0c: 2100 movs r1, #0 - 8030b0e: 6978 ldr r0, [r7, #20] - 8030b10: f001 fd4a bl 80325a8 - 8030b14: 4603 mov r3, r0 - 8030b16: 613b str r3, [r7, #16] + 8030a6a: f44f 6380 mov.w r3, #1024 ; 0x400 + 8030a6e: 9300 str r3, [sp, #0] + 8030a70: f240 33b6 movw r3, #950 ; 0x3b6 + 8030a74: f44f 7261 mov.w r2, #900 ; 0x384 + 8030a78: 2100 movs r1, #0 + 8030a7a: 6978 ldr r0, [r7, #20] + 8030a7c: f001 fd4a bl 8032514 + 8030a80: 4603 mov r3, r0 + 8030a82: 613b str r3, [r7, #16] int32_t new_value; new_value = step * (a->end_value - a->start_value); - 8030b18: 687b ldr r3, [r7, #4] - 8030b1a: 6a5a ldr r2, [r3, #36] ; 0x24 - 8030b1c: 687b ldr r3, [r7, #4] - 8030b1e: 69db ldr r3, [r3, #28] - 8030b20: 1ad2 subs r2, r2, r3 - 8030b22: 693b ldr r3, [r7, #16] - 8030b24: fb02 f303 mul.w r3, r2, r3 - 8030b28: 60fb str r3, [r7, #12] + 8030a84: 687b ldr r3, [r7, #4] + 8030a86: 6a5a ldr r2, [r3, #36] ; 0x24 + 8030a88: 687b ldr r3, [r7, #4] + 8030a8a: 69db ldr r3, [r3, #28] + 8030a8c: 1ad2 subs r2, r2, r3 + 8030a8e: 693b ldr r3, [r7, #16] + 8030a90: fb02 f303 mul.w r3, r2, r3 + 8030a94: 60fb str r3, [r7, #12] new_value = new_value >> LV_BEZIER_VAL_SHIFT; - 8030b2a: 68fb ldr r3, [r7, #12] - 8030b2c: 129b asrs r3, r3, #10 - 8030b2e: 60fb str r3, [r7, #12] + 8030a96: 68fb ldr r3, [r7, #12] + 8030a98: 129b asrs r3, r3, #10 + 8030a9a: 60fb str r3, [r7, #12] new_value += a->start_value; - 8030b30: 687b ldr r3, [r7, #4] - 8030b32: 69db ldr r3, [r3, #28] - 8030b34: 68fa ldr r2, [r7, #12] - 8030b36: 4413 add r3, r2 - 8030b38: 60fb str r3, [r7, #12] + 8030a9c: 687b ldr r3, [r7, #4] + 8030a9e: 69db ldr r3, [r3, #28] + 8030aa0: 68fa ldr r2, [r7, #12] + 8030aa2: 4413 add r3, r2 + 8030aa4: 60fb str r3, [r7, #12] return new_value; - 8030b3a: 68fb ldr r3, [r7, #12] + 8030aa6: 68fb ldr r3, [r7, #12] } - 8030b3c: 4618 mov r0, r3 - 8030b3e: 3718 adds r7, #24 - 8030b40: 46bd mov sp, r7 - 8030b42: bd80 pop {r7, pc} + 8030aa8: 4618 mov r0, r3 + 8030aaa: 3718 adds r7, #24 + 8030aac: 46bd mov sp, r7 + 8030aae: bd80 pop {r7, pc} -08030b44 : +08030ab0 : int32_t lv_anim_path_ease_in_out(const lv_anim_t * a) { - 8030b44: b580 push {r7, lr} - 8030b46: b088 sub sp, #32 - 8030b48: af02 add r7, sp, #8 - 8030b4a: 6078 str r0, [r7, #4] + 8030ab0: b580 push {r7, lr} + 8030ab2: b088 sub sp, #32 + 8030ab4: af02 add r7, sp, #8 + 8030ab6: 6078 str r0, [r7, #4] /*Calculate the current step*/ uint32_t t = lv_map(a->act_time, 0, a->time, 0, LV_BEZIER_VAL_MAX); - 8030b4c: 687b ldr r3, [r7, #4] - 8030b4e: 6ad8 ldr r0, [r3, #44] ; 0x2c - 8030b50: 687b ldr r3, [r7, #4] - 8030b52: 6a9a ldr r2, [r3, #40] ; 0x28 - 8030b54: f44f 6380 mov.w r3, #1024 ; 0x400 - 8030b58: 9300 str r3, [sp, #0] - 8030b5a: 2300 movs r3, #0 - 8030b5c: 2100 movs r1, #0 - 8030b5e: f001 fe60 bl 8032822 - 8030b62: 4603 mov r3, r0 - 8030b64: 617b str r3, [r7, #20] + 8030ab8: 687b ldr r3, [r7, #4] + 8030aba: 6ad8 ldr r0, [r3, #44] ; 0x2c + 8030abc: 687b ldr r3, [r7, #4] + 8030abe: 6a9a ldr r2, [r3, #40] ; 0x28 + 8030ac0: f44f 6380 mov.w r3, #1024 ; 0x400 + 8030ac4: 9300 str r3, [sp, #0] + 8030ac6: 2300 movs r3, #0 + 8030ac8: 2100 movs r1, #0 + 8030aca: f001 fe60 bl 803278e + 8030ace: 4603 mov r3, r0 + 8030ad0: 617b str r3, [r7, #20] int32_t step = lv_bezier3(t, 0, 50, 952, LV_BEZIER_VAL_MAX); - 8030b66: f44f 6380 mov.w r3, #1024 ; 0x400 - 8030b6a: 9300 str r3, [sp, #0] - 8030b6c: f44f 736e mov.w r3, #952 ; 0x3b8 - 8030b70: 2232 movs r2, #50 ; 0x32 - 8030b72: 2100 movs r1, #0 - 8030b74: 6978 ldr r0, [r7, #20] - 8030b76: f001 fd17 bl 80325a8 - 8030b7a: 4603 mov r3, r0 - 8030b7c: 613b str r3, [r7, #16] + 8030ad2: f44f 6380 mov.w r3, #1024 ; 0x400 + 8030ad6: 9300 str r3, [sp, #0] + 8030ad8: f44f 736e mov.w r3, #952 ; 0x3b8 + 8030adc: 2232 movs r2, #50 ; 0x32 + 8030ade: 2100 movs r1, #0 + 8030ae0: 6978 ldr r0, [r7, #20] + 8030ae2: f001 fd17 bl 8032514 + 8030ae6: 4603 mov r3, r0 + 8030ae8: 613b str r3, [r7, #16] int32_t new_value; new_value = step * (a->end_value - a->start_value); - 8030b7e: 687b ldr r3, [r7, #4] - 8030b80: 6a5a ldr r2, [r3, #36] ; 0x24 - 8030b82: 687b ldr r3, [r7, #4] - 8030b84: 69db ldr r3, [r3, #28] - 8030b86: 1ad2 subs r2, r2, r3 - 8030b88: 693b ldr r3, [r7, #16] - 8030b8a: fb02 f303 mul.w r3, r2, r3 - 8030b8e: 60fb str r3, [r7, #12] + 8030aea: 687b ldr r3, [r7, #4] + 8030aec: 6a5a ldr r2, [r3, #36] ; 0x24 + 8030aee: 687b ldr r3, [r7, #4] + 8030af0: 69db ldr r3, [r3, #28] + 8030af2: 1ad2 subs r2, r2, r3 + 8030af4: 693b ldr r3, [r7, #16] + 8030af6: fb02 f303 mul.w r3, r2, r3 + 8030afa: 60fb str r3, [r7, #12] new_value = new_value >> LV_BEZIER_VAL_SHIFT; - 8030b90: 68fb ldr r3, [r7, #12] - 8030b92: 129b asrs r3, r3, #10 - 8030b94: 60fb str r3, [r7, #12] + 8030afc: 68fb ldr r3, [r7, #12] + 8030afe: 129b asrs r3, r3, #10 + 8030b00: 60fb str r3, [r7, #12] new_value += a->start_value; - 8030b96: 687b ldr r3, [r7, #4] - 8030b98: 69db ldr r3, [r3, #28] - 8030b9a: 68fa ldr r2, [r7, #12] - 8030b9c: 4413 add r3, r2 - 8030b9e: 60fb str r3, [r7, #12] + 8030b02: 687b ldr r3, [r7, #4] + 8030b04: 69db ldr r3, [r3, #28] + 8030b06: 68fa ldr r2, [r7, #12] + 8030b08: 4413 add r3, r2 + 8030b0a: 60fb str r3, [r7, #12] return new_value; - 8030ba0: 68fb ldr r3, [r7, #12] + 8030b0c: 68fb ldr r3, [r7, #12] } - 8030ba2: 4618 mov r0, r3 - 8030ba4: 3718 adds r7, #24 - 8030ba6: 46bd mov sp, r7 - 8030ba8: bd80 pop {r7, pc} + 8030b0e: 4618 mov r0, r3 + 8030b10: 3718 adds r7, #24 + 8030b12: 46bd mov sp, r7 + 8030b14: bd80 pop {r7, pc} -08030baa : +08030b16 : return new_value; } int32_t lv_anim_path_step(const lv_anim_t * a) { - 8030baa: b480 push {r7} - 8030bac: b083 sub sp, #12 - 8030bae: af00 add r7, sp, #0 - 8030bb0: 6078 str r0, [r7, #4] + 8030b16: b480 push {r7} + 8030b18: b083 sub sp, #12 + 8030b1a: af00 add r7, sp, #0 + 8030b1c: 6078 str r0, [r7, #4] if(a->act_time >= a->time) - 8030bb2: 687b ldr r3, [r7, #4] - 8030bb4: 6ada ldr r2, [r3, #44] ; 0x2c - 8030bb6: 687b ldr r3, [r7, #4] - 8030bb8: 6a9b ldr r3, [r3, #40] ; 0x28 - 8030bba: 429a cmp r2, r3 - 8030bbc: db02 blt.n 8030bc4 + 8030b1e: 687b ldr r3, [r7, #4] + 8030b20: 6ada ldr r2, [r3, #44] ; 0x2c + 8030b22: 687b ldr r3, [r7, #4] + 8030b24: 6a9b ldr r3, [r3, #40] ; 0x28 + 8030b26: 429a cmp r2, r3 + 8030b28: db02 blt.n 8030b30 return a->end_value; - 8030bbe: 687b ldr r3, [r7, #4] - 8030bc0: 6a5b ldr r3, [r3, #36] ; 0x24 - 8030bc2: e001 b.n 8030bc8 + 8030b2a: 687b ldr r3, [r7, #4] + 8030b2c: 6a5b ldr r3, [r3, #36] ; 0x24 + 8030b2e: e001 b.n 8030b34 else return a->start_value; - 8030bc4: 687b ldr r3, [r7, #4] - 8030bc6: 69db ldr r3, [r3, #28] + 8030b30: 687b ldr r3, [r7, #4] + 8030b32: 69db ldr r3, [r3, #28] } - 8030bc8: 4618 mov r0, r3 - 8030bca: 370c adds r7, #12 - 8030bcc: 46bd mov sp, r7 - 8030bce: bc80 pop {r7} - 8030bd0: 4770 bx lr + 8030b34: 4618 mov r0, r3 + 8030b36: 370c adds r7, #12 + 8030b38: 46bd mov sp, r7 + 8030b3a: bc80 pop {r7} + 8030b3c: 4770 bx lr ... -08030bd4 : +08030b40 : /** * Periodically handle the animations. * @param param unused */ static void anim_timer(lv_timer_t * param) { - 8030bd4: b580 push {r7, lr} - 8030bd6: b088 sub sp, #32 - 8030bd8: af00 add r7, sp, #0 - 8030bda: 6078 str r0, [r7, #4] + 8030b40: b580 push {r7, lr} + 8030b42: b088 sub sp, #32 + 8030b44: af00 add r7, sp, #0 + 8030b46: 6078 str r0, [r7, #4] LV_UNUSED(param); uint32_t elaps = lv_tick_elaps(last_timer_run); - 8030bdc: 4b5d ldr r3, [pc, #372] ; (8030d54 ) - 8030bde: 681b ldr r3, [r3, #0] - 8030be0: 4618 mov r0, r3 - 8030be2: f7ff fdfb bl 80307dc - 8030be6: 61b8 str r0, [r7, #24] + 8030b48: 4b5d ldr r3, [pc, #372] ; (8030cc0 ) + 8030b4a: 681b ldr r3, [r3, #0] + 8030b4c: 4618 mov r0, r3 + 8030b4e: f7ff fdfb bl 8030748 + 8030b52: 61b8 str r0, [r7, #24] /*Flip the run round*/ anim_run_round = anim_run_round ? false : true; - 8030be8: 4b5b ldr r3, [pc, #364] ; (8030d58 ) - 8030bea: 781b ldrb r3, [r3, #0] - 8030bec: f083 0301 eor.w r3, r3, #1 - 8030bf0: b2da uxtb r2, r3 - 8030bf2: 4b59 ldr r3, [pc, #356] ; (8030d58 ) - 8030bf4: 701a strb r2, [r3, #0] + 8030b54: 4b5b ldr r3, [pc, #364] ; (8030cc4 ) + 8030b56: 781b ldrb r3, [r3, #0] + 8030b58: f083 0301 eor.w r3, r3, #1 + 8030b5c: b2da uxtb r2, r3 + 8030b5e: 4b59 ldr r3, [pc, #356] ; (8030cc4 ) + 8030b60: 701a strb r2, [r3, #0] lv_anim_t * a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)); - 8030bf6: 4859 ldr r0, [pc, #356] ; (8030d5c ) - 8030bf8: f001 fbb0 bl 803235c <_lv_ll_get_head> - 8030bfc: 61f8 str r0, [r7, #28] + 8030b62: 4859 ldr r0, [pc, #356] ; (8030cc8 ) + 8030b64: f001 fbb0 bl 80322c8 <_lv_ll_get_head> + 8030b68: 61f8 str r0, [r7, #28] while(a != NULL) { - 8030bfe: e09c b.n 8030d3a + 8030b6a: e09c b.n 8030ca6 /*It can be set by `lv_anim_del()` typically in `end_cb`. If set then an animation delete * happened in `anim_ready_handler` which could make this linked list reading corrupt * because the list is changed meanwhile */ anim_list_changed = false; - 8030c00: 4b57 ldr r3, [pc, #348] ; (8030d60 ) - 8030c02: 2200 movs r2, #0 - 8030c04: 701a strb r2, [r3, #0] + 8030b6c: 4b57 ldr r3, [pc, #348] ; (8030ccc ) + 8030b6e: 2200 movs r2, #0 + 8030b70: 701a strb r2, [r3, #0] if(a->run_round != anim_run_round) { - 8030c06: 69fb ldr r3, [r7, #28] - 8030c08: f893 303e ldrb.w r3, [r3, #62] ; 0x3e - 8030c0c: f3c3 0380 ubfx r3, r3, #2, #1 - 8030c10: b2da uxtb r2, r3 - 8030c12: 4b51 ldr r3, [pc, #324] ; (8030d58 ) - 8030c14: 781b ldrb r3, [r3, #0] - 8030c16: 429a cmp r2, r3 - 8030c18: f000 8081 beq.w 8030d1e + 8030b72: 69fb ldr r3, [r7, #28] + 8030b74: f893 303e ldrb.w r3, [r3, #62] ; 0x3e + 8030b78: f3c3 0380 ubfx r3, r3, #2, #1 + 8030b7c: b2da uxtb r2, r3 + 8030b7e: 4b51 ldr r3, [pc, #324] ; (8030cc4 ) + 8030b80: 781b ldrb r3, [r3, #0] + 8030b82: 429a cmp r2, r3 + 8030b84: f000 8081 beq.w 8030c8a a->run_round = anim_run_round; /*The list readying might be reset so need to know which anim has run already*/ - 8030c1c: 4b4e ldr r3, [pc, #312] ; (8030d58 ) - 8030c1e: 7819 ldrb r1, [r3, #0] - 8030c20: 69fa ldr r2, [r7, #28] - 8030c22: f892 303e ldrb.w r3, [r2, #62] ; 0x3e - 8030c26: f361 0382 bfi r3, r1, #2, #1 - 8030c2a: f882 303e strb.w r3, [r2, #62] ; 0x3e + 8030b88: 4b4e ldr r3, [pc, #312] ; (8030cc4 ) + 8030b8a: 7819 ldrb r1, [r3, #0] + 8030b8c: 69fa ldr r2, [r7, #28] + 8030b8e: f892 303e ldrb.w r3, [r2, #62] ; 0x3e + 8030b92: f361 0382 bfi r3, r1, #2, #1 + 8030b96: f882 303e strb.w r3, [r2, #62] ; 0x3e /*The animation will run now for the first time. Call `start_cb`*/ int32_t new_act_time = a->act_time + elaps; - 8030c2e: 69fb ldr r3, [r7, #28] - 8030c30: 6adb ldr r3, [r3, #44] ; 0x2c - 8030c32: 461a mov r2, r3 - 8030c34: 69bb ldr r3, [r7, #24] - 8030c36: 4413 add r3, r2 - 8030c38: 617b str r3, [r7, #20] + 8030b9a: 69fb ldr r3, [r7, #28] + 8030b9c: 6adb ldr r3, [r3, #44] ; 0x2c + 8030b9e: 461a mov r2, r3 + 8030ba0: 69bb ldr r3, [r7, #24] + 8030ba2: 4413 add r3, r2 + 8030ba4: 617b str r3, [r7, #20] if(!a->start_cb_called && a->act_time <= 0 && new_act_time >= 0) { - 8030c3a: 69fb ldr r3, [r7, #28] - 8030c3c: f893 303e ldrb.w r3, [r3, #62] ; 0x3e - 8030c40: f003 0308 and.w r3, r3, #8 - 8030c44: b2db uxtb r3, r3 - 8030c46: 2b00 cmp r3, #0 - 8030c48: d132 bne.n 8030cb0 - 8030c4a: 69fb ldr r3, [r7, #28] - 8030c4c: 6adb ldr r3, [r3, #44] ; 0x2c - 8030c4e: 2b00 cmp r3, #0 - 8030c50: dc2e bgt.n 8030cb0 - 8030c52: 697b ldr r3, [r7, #20] - 8030c54: 2b00 cmp r3, #0 - 8030c56: db2b blt.n 8030cb0 + 8030ba6: 69fb ldr r3, [r7, #28] + 8030ba8: f893 303e ldrb.w r3, [r3, #62] ; 0x3e + 8030bac: f003 0308 and.w r3, r3, #8 + 8030bb0: b2db uxtb r3, r3 + 8030bb2: 2b00 cmp r3, #0 + 8030bb4: d132 bne.n 8030c1c + 8030bb6: 69fb ldr r3, [r7, #28] + 8030bb8: 6adb ldr r3, [r3, #44] ; 0x2c + 8030bba: 2b00 cmp r3, #0 + 8030bbc: dc2e bgt.n 8030c1c + 8030bbe: 697b ldr r3, [r7, #20] + 8030bc0: 2b00 cmp r3, #0 + 8030bc2: db2b blt.n 8030c1c if(a->early_apply == 0 && a->get_value_cb) { - 8030c58: 69fb ldr r3, [r7, #28] - 8030c5a: f893 303e ldrb.w r3, [r3, #62] ; 0x3e - 8030c5e: f003 0301 and.w r3, r3, #1 - 8030c62: b2db uxtb r3, r3 - 8030c64: 2b00 cmp r3, #0 - 8030c66: d114 bne.n 8030c92 - 8030c68: 69fb ldr r3, [r7, #28] - 8030c6a: 691b ldr r3, [r3, #16] - 8030c6c: 2b00 cmp r3, #0 - 8030c6e: d010 beq.n 8030c92 + 8030bc4: 69fb ldr r3, [r7, #28] + 8030bc6: f893 303e ldrb.w r3, [r3, #62] ; 0x3e + 8030bca: f003 0301 and.w r3, r3, #1 + 8030bce: b2db uxtb r3, r3 + 8030bd0: 2b00 cmp r3, #0 + 8030bd2: d114 bne.n 8030bfe + 8030bd4: 69fb ldr r3, [r7, #28] + 8030bd6: 691b ldr r3, [r3, #16] + 8030bd8: 2b00 cmp r3, #0 + 8030bda: d010 beq.n 8030bfe int32_t v_ofs = a->get_value_cb(a); - 8030c70: 69fb ldr r3, [r7, #28] - 8030c72: 691b ldr r3, [r3, #16] - 8030c74: 69f8 ldr r0, [r7, #28] - 8030c76: 4798 blx r3 - 8030c78: 6138 str r0, [r7, #16] + 8030bdc: 69fb ldr r3, [r7, #28] + 8030bde: 691b ldr r3, [r3, #16] + 8030be0: 69f8 ldr r0, [r7, #28] + 8030be2: 4798 blx r3 + 8030be4: 6138 str r0, [r7, #16] a->start_value += v_ofs; - 8030c7a: 69fb ldr r3, [r7, #28] - 8030c7c: 69da ldr r2, [r3, #28] - 8030c7e: 693b ldr r3, [r7, #16] - 8030c80: 441a add r2, r3 - 8030c82: 69fb ldr r3, [r7, #28] - 8030c84: 61da str r2, [r3, #28] + 8030be6: 69fb ldr r3, [r7, #28] + 8030be8: 69da ldr r2, [r3, #28] + 8030bea: 693b ldr r3, [r7, #16] + 8030bec: 441a add r2, r3 + 8030bee: 69fb ldr r3, [r7, #28] + 8030bf0: 61da str r2, [r3, #28] a->end_value += v_ofs; - 8030c86: 69fb ldr r3, [r7, #28] - 8030c88: 6a5a ldr r2, [r3, #36] ; 0x24 - 8030c8a: 693b ldr r3, [r7, #16] - 8030c8c: 441a add r2, r3 - 8030c8e: 69fb ldr r3, [r7, #28] - 8030c90: 625a str r2, [r3, #36] ; 0x24 + 8030bf2: 69fb ldr r3, [r7, #28] + 8030bf4: 6a5a ldr r2, [r3, #36] ; 0x24 + 8030bf6: 693b ldr r3, [r7, #16] + 8030bf8: 441a add r2, r3 + 8030bfa: 69fb ldr r3, [r7, #28] + 8030bfc: 625a str r2, [r3, #36] ; 0x24 } if(a->start_cb) a->start_cb(a); - 8030c92: 69fb ldr r3, [r7, #28] - 8030c94: 689b ldr r3, [r3, #8] - 8030c96: 2b00 cmp r3, #0 - 8030c98: d003 beq.n 8030ca2 - 8030c9a: 69fb ldr r3, [r7, #28] - 8030c9c: 689b ldr r3, [r3, #8] - 8030c9e: 69f8 ldr r0, [r7, #28] - 8030ca0: 4798 blx r3 + 8030bfe: 69fb ldr r3, [r7, #28] + 8030c00: 689b ldr r3, [r3, #8] + 8030c02: 2b00 cmp r3, #0 + 8030c04: d003 beq.n 8030c0e + 8030c06: 69fb ldr r3, [r7, #28] + 8030c08: 689b ldr r3, [r3, #8] + 8030c0a: 69f8 ldr r0, [r7, #28] + 8030c0c: 4798 blx r3 a->start_cb_called = 1; - 8030ca2: 69fa ldr r2, [r7, #28] - 8030ca4: f892 303e ldrb.w r3, [r2, #62] ; 0x3e - 8030ca8: f043 0308 orr.w r3, r3, #8 - 8030cac: f882 303e strb.w r3, [r2, #62] ; 0x3e + 8030c0e: 69fa ldr r2, [r7, #28] + 8030c10: f892 303e ldrb.w r3, [r2, #62] ; 0x3e + 8030c14: f043 0308 orr.w r3, r3, #8 + 8030c18: f882 303e strb.w r3, [r2, #62] ; 0x3e } a->act_time += elaps; - 8030cb0: 69fb ldr r3, [r7, #28] - 8030cb2: 6adb ldr r3, [r3, #44] ; 0x2c - 8030cb4: 461a mov r2, r3 - 8030cb6: 69bb ldr r3, [r7, #24] - 8030cb8: 4413 add r3, r2 - 8030cba: 461a mov r2, r3 - 8030cbc: 69fb ldr r3, [r7, #28] - 8030cbe: 62da str r2, [r3, #44] ; 0x2c + 8030c1c: 69fb ldr r3, [r7, #28] + 8030c1e: 6adb ldr r3, [r3, #44] ; 0x2c + 8030c20: 461a mov r2, r3 + 8030c22: 69bb ldr r3, [r7, #24] + 8030c24: 4413 add r3, r2 + 8030c26: 461a mov r2, r3 + 8030c28: 69fb ldr r3, [r7, #28] + 8030c2a: 62da str r2, [r3, #44] ; 0x2c if(a->act_time >= 0) { - 8030cc0: 69fb ldr r3, [r7, #28] - 8030cc2: 6adb ldr r3, [r3, #44] ; 0x2c - 8030cc4: 2b00 cmp r3, #0 - 8030cc6: db2a blt.n 8030d1e + 8030c2c: 69fb ldr r3, [r7, #28] + 8030c2e: 6adb ldr r3, [r3, #44] ; 0x2c + 8030c30: 2b00 cmp r3, #0 + 8030c32: db2a blt.n 8030c8a if(a->act_time > a->time) a->act_time = a->time; - 8030cc8: 69fb ldr r3, [r7, #28] - 8030cca: 6ada ldr r2, [r3, #44] ; 0x2c - 8030ccc: 69fb ldr r3, [r7, #28] - 8030cce: 6a9b ldr r3, [r3, #40] ; 0x28 - 8030cd0: 429a cmp r2, r3 - 8030cd2: dd03 ble.n 8030cdc - 8030cd4: 69fb ldr r3, [r7, #28] - 8030cd6: 6a9a ldr r2, [r3, #40] ; 0x28 - 8030cd8: 69fb ldr r3, [r7, #28] - 8030cda: 62da str r2, [r3, #44] ; 0x2c + 8030c34: 69fb ldr r3, [r7, #28] + 8030c36: 6ada ldr r2, [r3, #44] ; 0x2c + 8030c38: 69fb ldr r3, [r7, #28] + 8030c3a: 6a9b ldr r3, [r3, #40] ; 0x28 + 8030c3c: 429a cmp r2, r3 + 8030c3e: dd03 ble.n 8030c48 + 8030c40: 69fb ldr r3, [r7, #28] + 8030c42: 6a9a ldr r2, [r3, #40] ; 0x28 + 8030c44: 69fb ldr r3, [r7, #28] + 8030c46: 62da str r2, [r3, #44] ; 0x2c int32_t new_value; new_value = a->path_cb(a); - 8030cdc: 69fb ldr r3, [r7, #28] - 8030cde: 699b ldr r3, [r3, #24] - 8030ce0: 69f8 ldr r0, [r7, #28] - 8030ce2: 4798 blx r3 - 8030ce4: 60f8 str r0, [r7, #12] + 8030c48: 69fb ldr r3, [r7, #28] + 8030c4a: 699b ldr r3, [r3, #24] + 8030c4c: 69f8 ldr r0, [r7, #28] + 8030c4e: 4798 blx r3 + 8030c50: 60f8 str r0, [r7, #12] if(new_value != a->current_value) { - 8030ce6: 69fb ldr r3, [r7, #28] - 8030ce8: 6a1b ldr r3, [r3, #32] - 8030cea: 68fa ldr r2, [r7, #12] - 8030cec: 429a cmp r2, r3 - 8030cee: d00d beq.n 8030d0c + 8030c52: 69fb ldr r3, [r7, #28] + 8030c54: 6a1b ldr r3, [r3, #32] + 8030c56: 68fa ldr r2, [r7, #12] + 8030c58: 429a cmp r2, r3 + 8030c5a: d00d beq.n 8030c78 a->current_value = new_value; - 8030cf0: 69fb ldr r3, [r7, #28] - 8030cf2: 68fa ldr r2, [r7, #12] - 8030cf4: 621a str r2, [r3, #32] + 8030c5c: 69fb ldr r3, [r7, #28] + 8030c5e: 68fa ldr r2, [r7, #12] + 8030c60: 621a str r2, [r3, #32] /*Apply the calculated value*/ if(a->exec_cb) a->exec_cb(a->var, new_value); - 8030cf6: 69fb ldr r3, [r7, #28] - 8030cf8: 685b ldr r3, [r3, #4] - 8030cfa: 2b00 cmp r3, #0 - 8030cfc: d006 beq.n 8030d0c - 8030cfe: 69fb ldr r3, [r7, #28] - 8030d00: 685b ldr r3, [r3, #4] - 8030d02: 69fa ldr r2, [r7, #28] - 8030d04: 6812 ldr r2, [r2, #0] - 8030d06: 68f9 ldr r1, [r7, #12] - 8030d08: 4610 mov r0, r2 - 8030d0a: 4798 blx r3 + 8030c62: 69fb ldr r3, [r7, #28] + 8030c64: 685b ldr r3, [r3, #4] + 8030c66: 2b00 cmp r3, #0 + 8030c68: d006 beq.n 8030c78 + 8030c6a: 69fb ldr r3, [r7, #28] + 8030c6c: 685b ldr r3, [r3, #4] + 8030c6e: 69fa ldr r2, [r7, #28] + 8030c70: 6812 ldr r2, [r2, #0] + 8030c72: 68f9 ldr r1, [r7, #12] + 8030c74: 4610 mov r0, r2 + 8030c76: 4798 blx r3 } /*If the time is elapsed the animation is ready*/ if(a->act_time >= a->time) { - 8030d0c: 69fb ldr r3, [r7, #28] - 8030d0e: 6ada ldr r2, [r3, #44] ; 0x2c - 8030d10: 69fb ldr r3, [r7, #28] - 8030d12: 6a9b ldr r3, [r3, #40] ; 0x28 - 8030d14: 429a cmp r2, r3 - 8030d16: db02 blt.n 8030d1e + 8030c78: 69fb ldr r3, [r7, #28] + 8030c7a: 6ada ldr r2, [r3, #44] ; 0x2c + 8030c7c: 69fb ldr r3, [r7, #28] + 8030c7e: 6a9b ldr r3, [r3, #40] ; 0x28 + 8030c80: 429a cmp r2, r3 + 8030c82: db02 blt.n 8030c8a anim_ready_handler(a); - 8030d18: 69f8 ldr r0, [r7, #28] - 8030d1a: f000 f823 bl 8030d64 + 8030c84: 69f8 ldr r0, [r7, #28] + 8030c86: f000 f823 bl 8030cd0 } } /*If the linked list changed due to anim. delete then it's not safe to continue *the reading of the list from here -> start from the head*/ if(anim_list_changed) - 8030d1e: 4b10 ldr r3, [pc, #64] ; (8030d60 ) - 8030d20: 781b ldrb r3, [r3, #0] - 8030d22: 2b00 cmp r3, #0 - 8030d24: d004 beq.n 8030d30 + 8030c8a: 4b10 ldr r3, [pc, #64] ; (8030ccc ) + 8030c8c: 781b ldrb r3, [r3, #0] + 8030c8e: 2b00 cmp r3, #0 + 8030c90: d004 beq.n 8030c9c a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)); - 8030d26: 480d ldr r0, [pc, #52] ; (8030d5c ) - 8030d28: f001 fb18 bl 803235c <_lv_ll_get_head> - 8030d2c: 61f8 str r0, [r7, #28] - 8030d2e: e004 b.n 8030d3a + 8030c92: 480d ldr r0, [pc, #52] ; (8030cc8 ) + 8030c94: f001 fb18 bl 80322c8 <_lv_ll_get_head> + 8030c98: 61f8 str r0, [r7, #28] + 8030c9a: e004 b.n 8030ca6 else a = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a); - 8030d30: 69f9 ldr r1, [r7, #28] - 8030d32: 480a ldr r0, [pc, #40] ; (8030d5c ) - 8030d34: f001 fb32 bl 803239c <_lv_ll_get_next> - 8030d38: 61f8 str r0, [r7, #28] + 8030c9c: 69f9 ldr r1, [r7, #28] + 8030c9e: 480a ldr r0, [pc, #40] ; (8030cc8 ) + 8030ca0: f001 fb32 bl 8032308 <_lv_ll_get_next> + 8030ca4: 61f8 str r0, [r7, #28] while(a != NULL) { - 8030d3a: 69fb ldr r3, [r7, #28] - 8030d3c: 2b00 cmp r3, #0 - 8030d3e: f47f af5f bne.w 8030c00 + 8030ca6: 69fb ldr r3, [r7, #28] + 8030ca8: 2b00 cmp r3, #0 + 8030caa: f47f af5f bne.w 8030b6c } last_timer_run = lv_tick_get(); - 8030d42: f7ff fd33 bl 80307ac - 8030d46: 4603 mov r3, r0 - 8030d48: 4a02 ldr r2, [pc, #8] ; (8030d54 ) - 8030d4a: 6013 str r3, [r2, #0] + 8030cae: f7ff fd33 bl 8030718 + 8030cb2: 4603 mov r3, r0 + 8030cb4: 4a02 ldr r2, [pc, #8] ; (8030cc0 ) + 8030cb6: 6013 str r3, [r2, #0] } - 8030d4c: bf00 nop - 8030d4e: 3720 adds r7, #32 - 8030d50: 46bd mov sp, r7 - 8030d52: bd80 pop {r7, pc} - 8030d54: 20001cf8 .word 0x20001cf8 - 8030d58: 20001cfd .word 0x20001cfd - 8030d5c: 20001d34 .word 0x20001d34 - 8030d60: 20001cfc .word 0x20001cfc + 8030cb8: bf00 nop + 8030cba: 3720 adds r7, #32 + 8030cbc: 46bd mov sp, r7 + 8030cbe: bd80 pop {r7, pc} + 8030cc0: 20001cf8 .word 0x20001cf8 + 8030cc4: 20001cfd .word 0x20001cfd + 8030cc8: 20001d34 .word 0x20001d34 + 8030ccc: 20001cfc .word 0x20001cfc -08030d64 : +08030cd0 : * Called when an animation is ready to do the necessary thinks * e.g. repeat, play back, delete etc. * @param a pointer to an animation descriptor */ static void anim_ready_handler(lv_anim_t * a) { - 8030d64: b580 push {r7, lr} - 8030d66: b084 sub sp, #16 - 8030d68: af00 add r7, sp, #0 - 8030d6a: 6078 str r0, [r7, #4] + 8030cd0: b580 push {r7, lr} + 8030cd2: b084 sub sp, #16 + 8030cd4: af00 add r7, sp, #0 + 8030cd6: 6078 str r0, [r7, #4] /*In the end of a forward anim decrement repeat cnt.*/ if(a->playback_now == 0 && a->repeat_cnt > 0 && a->repeat_cnt != LV_ANIM_REPEAT_INFINITE) { - 8030d6c: 687b ldr r3, [r7, #4] - 8030d6e: f893 303e ldrb.w r3, [r3, #62] ; 0x3e - 8030d72: f003 0302 and.w r3, r3, #2 - 8030d76: b2db uxtb r3, r3 - 8030d78: 2b00 cmp r3, #0 - 8030d7a: d10f bne.n 8030d9c - 8030d7c: 687b ldr r3, [r7, #4] - 8030d7e: 8f9b ldrh r3, [r3, #60] ; 0x3c - 8030d80: 2b00 cmp r3, #0 - 8030d82: d00b beq.n 8030d9c - 8030d84: 687b ldr r3, [r7, #4] - 8030d86: 8f9b ldrh r3, [r3, #60] ; 0x3c - 8030d88: f64f 72ff movw r2, #65535 ; 0xffff - 8030d8c: 4293 cmp r3, r2 - 8030d8e: d005 beq.n 8030d9c + 8030cd8: 687b ldr r3, [r7, #4] + 8030cda: f893 303e ldrb.w r3, [r3, #62] ; 0x3e + 8030cde: f003 0302 and.w r3, r3, #2 + 8030ce2: b2db uxtb r3, r3 + 8030ce4: 2b00 cmp r3, #0 + 8030ce6: d10f bne.n 8030d08 + 8030ce8: 687b ldr r3, [r7, #4] + 8030cea: 8f9b ldrh r3, [r3, #60] ; 0x3c + 8030cec: 2b00 cmp r3, #0 + 8030cee: d00b beq.n 8030d08 + 8030cf0: 687b ldr r3, [r7, #4] + 8030cf2: 8f9b ldrh r3, [r3, #60] ; 0x3c + 8030cf4: f64f 72ff movw r2, #65535 ; 0xffff + 8030cf8: 4293 cmp r3, r2 + 8030cfa: d005 beq.n 8030d08 a->repeat_cnt--; - 8030d90: 687b ldr r3, [r7, #4] - 8030d92: 8f9b ldrh r3, [r3, #60] ; 0x3c - 8030d94: 3b01 subs r3, #1 - 8030d96: b29a uxth r2, r3 - 8030d98: 687b ldr r3, [r7, #4] - 8030d9a: 879a strh r2, [r3, #60] ; 0x3c + 8030cfc: 687b ldr r3, [r7, #4] + 8030cfe: 8f9b ldrh r3, [r3, #60] ; 0x3c + 8030d00: 3b01 subs r3, #1 + 8030d02: b29a uxth r2, r3 + 8030d04: 687b ldr r3, [r7, #4] + 8030d06: 879a strh r2, [r3, #60] ; 0x3c } /*Delete the animation if * - no repeat left and no play back (simple one shot animation) * - no repeat, play back is enabled and play back is ready*/ if(a->repeat_cnt == 0 && (a->playback_time == 0 || a->playback_now == 1)) { - 8030d9c: 687b ldr r3, [r7, #4] - 8030d9e: 8f9b ldrh r3, [r3, #60] ; 0x3c - 8030da0: 2b00 cmp r3, #0 - 8030da2: d11d bne.n 8030de0 - 8030da4: 687b ldr r3, [r7, #4] - 8030da6: 6b5b ldr r3, [r3, #52] ; 0x34 - 8030da8: 2b00 cmp r3, #0 - 8030daa: d007 beq.n 8030dbc - 8030dac: 687b ldr r3, [r7, #4] - 8030dae: f893 303e ldrb.w r3, [r3, #62] ; 0x3e - 8030db2: f003 0302 and.w r3, r3, #2 - 8030db6: b2db uxtb r3, r3 - 8030db8: 2b00 cmp r3, #0 - 8030dba: d011 beq.n 8030de0 + 8030d08: 687b ldr r3, [r7, #4] + 8030d0a: 8f9b ldrh r3, [r3, #60] ; 0x3c + 8030d0c: 2b00 cmp r3, #0 + 8030d0e: d11d bne.n 8030d4c + 8030d10: 687b ldr r3, [r7, #4] + 8030d12: 6b5b ldr r3, [r3, #52] ; 0x34 + 8030d14: 2b00 cmp r3, #0 + 8030d16: d007 beq.n 8030d28 + 8030d18: 687b ldr r3, [r7, #4] + 8030d1a: f893 303e ldrb.w r3, [r3, #62] ; 0x3e + 8030d1e: f003 0302 and.w r3, r3, #2 + 8030d22: b2db uxtb r3, r3 + 8030d24: 2b00 cmp r3, #0 + 8030d26: d011 beq.n 8030d4c /*Delete the animation from the list. * This way the `ready_cb` will see the animations like it's animation is ready deleted*/ _lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a); - 8030dbc: 6879 ldr r1, [r7, #4] - 8030dbe: 4829 ldr r0, [pc, #164] ; (8030e64 ) - 8030dc0: f001 fa4e bl 8032260 <_lv_ll_remove> + 8030d28: 6879 ldr r1, [r7, #4] + 8030d2a: 4829 ldr r0, [pc, #164] ; (8030dd0 ) + 8030d2c: f001 fa4e bl 80321cc <_lv_ll_remove> /*Flag that the list has changed*/ anim_mark_list_change(); - 8030dc4: f000 f850 bl 8030e68 + 8030d30: f000 f850 bl 8030dd4 /*Call the callback function at the end*/ if(a->ready_cb != NULL) a->ready_cb(a); - 8030dc8: 687b ldr r3, [r7, #4] - 8030dca: 68db ldr r3, [r3, #12] - 8030dcc: 2b00 cmp r3, #0 - 8030dce: d003 beq.n 8030dd8 - 8030dd0: 687b ldr r3, [r7, #4] - 8030dd2: 68db ldr r3, [r3, #12] - 8030dd4: 6878 ldr r0, [r7, #4] - 8030dd6: 4798 blx r3 + 8030d34: 687b ldr r3, [r7, #4] + 8030d36: 68db ldr r3, [r3, #12] + 8030d38: 2b00 cmp r3, #0 + 8030d3a: d003 beq.n 8030d44 + 8030d3c: 687b ldr r3, [r7, #4] + 8030d3e: 68db ldr r3, [r3, #12] + 8030d40: 6878 ldr r0, [r7, #4] + 8030d42: 4798 blx r3 lv_mem_free(a); - 8030dd8: 6878 ldr r0, [r7, #4] - 8030dda: f001 fd7f bl 80328dc + 8030d44: 6878 ldr r0, [r7, #4] + 8030d46: f001 fd7f bl 8032848 tmp = a->time; a->time = a->playback_time; a->playback_time = tmp; } } } - 8030dde: e03c b.n 8030e5a + 8030d4a: e03c b.n 8030dc6 a->act_time = -(int32_t)(a->repeat_delay); /*Restart the animation*/ - 8030de0: 687b ldr r3, [r7, #4] - 8030de2: 6b9b ldr r3, [r3, #56] ; 0x38 - 8030de4: 425a negs r2, r3 - 8030de6: 687b ldr r3, [r7, #4] - 8030de8: 62da str r2, [r3, #44] ; 0x2c + 8030d4c: 687b ldr r3, [r7, #4] + 8030d4e: 6b9b ldr r3, [r3, #56] ; 0x38 + 8030d50: 425a negs r2, r3 + 8030d52: 687b ldr r3, [r7, #4] + 8030d54: 62da str r2, [r3, #44] ; 0x2c if(a->playback_time != 0) { - 8030dea: 687b ldr r3, [r7, #4] - 8030dec: 6b5b ldr r3, [r3, #52] ; 0x34 - 8030dee: 2b00 cmp r3, #0 - 8030df0: d033 beq.n 8030e5a + 8030d56: 687b ldr r3, [r7, #4] + 8030d58: 6b5b ldr r3, [r3, #52] ; 0x34 + 8030d5a: 2b00 cmp r3, #0 + 8030d5c: d033 beq.n 8030dc6 if(a->playback_now == 0) a->act_time = -(int32_t)(a->playback_delay); - 8030df2: 687b ldr r3, [r7, #4] - 8030df4: f893 303e ldrb.w r3, [r3, #62] ; 0x3e - 8030df8: f003 0302 and.w r3, r3, #2 - 8030dfc: b2db uxtb r3, r3 - 8030dfe: 2b00 cmp r3, #0 - 8030e00: d104 bne.n 8030e0c - 8030e02: 687b ldr r3, [r7, #4] - 8030e04: 6b1b ldr r3, [r3, #48] ; 0x30 - 8030e06: 425a negs r2, r3 - 8030e08: 687b ldr r3, [r7, #4] - 8030e0a: 62da str r2, [r3, #44] ; 0x2c + 8030d5e: 687b ldr r3, [r7, #4] + 8030d60: f893 303e ldrb.w r3, [r3, #62] ; 0x3e + 8030d64: f003 0302 and.w r3, r3, #2 + 8030d68: b2db uxtb r3, r3 + 8030d6a: 2b00 cmp r3, #0 + 8030d6c: d104 bne.n 8030d78 + 8030d6e: 687b ldr r3, [r7, #4] + 8030d70: 6b1b ldr r3, [r3, #48] ; 0x30 + 8030d72: 425a negs r2, r3 + 8030d74: 687b ldr r3, [r7, #4] + 8030d76: 62da str r2, [r3, #44] ; 0x2c a->playback_now = a->playback_now == 0 ? 1 : 0; - 8030e0c: 687b ldr r3, [r7, #4] - 8030e0e: f893 303e ldrb.w r3, [r3, #62] ; 0x3e - 8030e12: f003 0302 and.w r3, r3, #2 - 8030e16: b2db uxtb r3, r3 - 8030e18: 2b00 cmp r3, #0 - 8030e1a: bf0c ite eq - 8030e1c: 2301 moveq r3, #1 - 8030e1e: 2300 movne r3, #0 - 8030e20: b2d9 uxtb r1, r3 - 8030e22: 687a ldr r2, [r7, #4] - 8030e24: f892 303e ldrb.w r3, [r2, #62] ; 0x3e - 8030e28: f361 0341 bfi r3, r1, #1, #1 - 8030e2c: f882 303e strb.w r3, [r2, #62] ; 0x3e + 8030d78: 687b ldr r3, [r7, #4] + 8030d7a: f893 303e ldrb.w r3, [r3, #62] ; 0x3e + 8030d7e: f003 0302 and.w r3, r3, #2 + 8030d82: b2db uxtb r3, r3 + 8030d84: 2b00 cmp r3, #0 + 8030d86: bf0c ite eq + 8030d88: 2301 moveq r3, #1 + 8030d8a: 2300 movne r3, #0 + 8030d8c: b2d9 uxtb r1, r3 + 8030d8e: 687a ldr r2, [r7, #4] + 8030d90: f892 303e ldrb.w r3, [r2, #62] ; 0x3e + 8030d94: f361 0341 bfi r3, r1, #1, #1 + 8030d98: f882 303e strb.w r3, [r2, #62] ; 0x3e int32_t tmp = a->start_value; - 8030e30: 687b ldr r3, [r7, #4] - 8030e32: 69db ldr r3, [r3, #28] - 8030e34: 60fb str r3, [r7, #12] + 8030d9c: 687b ldr r3, [r7, #4] + 8030d9e: 69db ldr r3, [r3, #28] + 8030da0: 60fb str r3, [r7, #12] a->start_value = a->end_value; - 8030e36: 687b ldr r3, [r7, #4] - 8030e38: 6a5a ldr r2, [r3, #36] ; 0x24 - 8030e3a: 687b ldr r3, [r7, #4] - 8030e3c: 61da str r2, [r3, #28] + 8030da2: 687b ldr r3, [r7, #4] + 8030da4: 6a5a ldr r2, [r3, #36] ; 0x24 + 8030da6: 687b ldr r3, [r7, #4] + 8030da8: 61da str r2, [r3, #28] a->end_value = tmp; - 8030e3e: 687b ldr r3, [r7, #4] - 8030e40: 68fa ldr r2, [r7, #12] - 8030e42: 625a str r2, [r3, #36] ; 0x24 + 8030daa: 687b ldr r3, [r7, #4] + 8030dac: 68fa ldr r2, [r7, #12] + 8030dae: 625a str r2, [r3, #36] ; 0x24 tmp = a->time; - 8030e44: 687b ldr r3, [r7, #4] - 8030e46: 6a9b ldr r3, [r3, #40] ; 0x28 - 8030e48: 60fb str r3, [r7, #12] + 8030db0: 687b ldr r3, [r7, #4] + 8030db2: 6a9b ldr r3, [r3, #40] ; 0x28 + 8030db4: 60fb str r3, [r7, #12] a->time = a->playback_time; - 8030e4a: 687b ldr r3, [r7, #4] - 8030e4c: 6b5b ldr r3, [r3, #52] ; 0x34 - 8030e4e: 461a mov r2, r3 - 8030e50: 687b ldr r3, [r7, #4] - 8030e52: 629a str r2, [r3, #40] ; 0x28 + 8030db6: 687b ldr r3, [r7, #4] + 8030db8: 6b5b ldr r3, [r3, #52] ; 0x34 + 8030dba: 461a mov r2, r3 + 8030dbc: 687b ldr r3, [r7, #4] + 8030dbe: 629a str r2, [r3, #40] ; 0x28 a->playback_time = tmp; - 8030e54: 68fa ldr r2, [r7, #12] - 8030e56: 687b ldr r3, [r7, #4] - 8030e58: 635a str r2, [r3, #52] ; 0x34 + 8030dc0: 68fa ldr r2, [r7, #12] + 8030dc2: 687b ldr r3, [r7, #4] + 8030dc4: 635a str r2, [r3, #52] ; 0x34 } - 8030e5a: bf00 nop - 8030e5c: 3710 adds r7, #16 - 8030e5e: 46bd mov sp, r7 - 8030e60: bd80 pop {r7, pc} - 8030e62: bf00 nop - 8030e64: 20001d34 .word 0x20001d34 + 8030dc6: bf00 nop + 8030dc8: 3710 adds r7, #16 + 8030dca: 46bd mov sp, r7 + 8030dcc: bd80 pop {r7, pc} + 8030dce: bf00 nop + 8030dd0: 20001d34 .word 0x20001d34 -08030e68 : +08030dd4 : static void anim_mark_list_change(void) { - 8030e68: b580 push {r7, lr} - 8030e6a: af00 add r7, sp, #0 + 8030dd4: b580 push {r7, lr} + 8030dd6: af00 add r7, sp, #0 anim_list_changed = true; - 8030e6c: 4b0a ldr r3, [pc, #40] ; (8030e98 ) - 8030e6e: 2201 movs r2, #1 - 8030e70: 701a strb r2, [r3, #0] + 8030dd8: 4b0a ldr r3, [pc, #40] ; (8030e04 ) + 8030dda: 2201 movs r2, #1 + 8030ddc: 701a strb r2, [r3, #0] if(_lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)) == NULL) - 8030e72: 480a ldr r0, [pc, #40] ; (8030e9c ) - 8030e74: f001 fa72 bl 803235c <_lv_ll_get_head> - 8030e78: 4603 mov r3, r0 - 8030e7a: 2b00 cmp r3, #0 - 8030e7c: d105 bne.n 8030e8a + 8030dde: 480a ldr r0, [pc, #40] ; (8030e08 ) + 8030de0: f001 fa72 bl 80322c8 <_lv_ll_get_head> + 8030de4: 4603 mov r3, r0 + 8030de6: 2b00 cmp r3, #0 + 8030de8: d105 bne.n 8030df6 lv_timer_pause(_lv_anim_tmr); - 8030e7e: 4b08 ldr r3, [pc, #32] ; (8030ea0 ) - 8030e80: 681b ldr r3, [r3, #0] - 8030e82: 4618 mov r0, r3 - 8030e84: f004 f982 bl 803518c + 8030dea: 4b08 ldr r3, [pc, #32] ; (8030e0c ) + 8030dec: 681b ldr r3, [r3, #0] + 8030dee: 4618 mov r0, r3 + 8030df0: f004 f982 bl 80350f8 else lv_timer_resume(_lv_anim_tmr); } - 8030e88: e004 b.n 8030e94 + 8030df4: e004 b.n 8030e00 lv_timer_resume(_lv_anim_tmr); - 8030e8a: 4b05 ldr r3, [pc, #20] ; (8030ea0 ) - 8030e8c: 681b ldr r3, [r3, #0] - 8030e8e: 4618 mov r0, r3 - 8030e90: f004 f98a bl 80351a8 + 8030df6: 4b05 ldr r3, [pc, #20] ; (8030e0c ) + 8030df8: 681b ldr r3, [r3, #0] + 8030dfa: 4618 mov r0, r3 + 8030dfc: f004 f98a bl 8035114 } - 8030e94: bf00 nop - 8030e96: bd80 pop {r7, pc} - 8030e98: 20001cfc .word 0x20001cfc - 8030e9c: 20001d34 .word 0x20001d34 - 8030ea0: 20001d00 .word 0x20001d00 + 8030e00: bf00 nop + 8030e02: bd80 pop {r7, pc} + 8030e04: 20001cfc .word 0x20001cfc + 8030e08: 20001d34 .word 0x20001d34 + 8030e0c: 20001d00 .word 0x20001d00 -08030ea4 : +08030e10 : * Get the width of an area * @param area_p pointer to an area * @return the width of the area (if x1 == x2 -> width = 1) */ static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p) { - 8030ea4: b480 push {r7} - 8030ea6: b083 sub sp, #12 - 8030ea8: af00 add r7, sp, #0 - 8030eaa: 6078 str r0, [r7, #4] + 8030e10: b480 push {r7} + 8030e12: b083 sub sp, #12 + 8030e14: af00 add r7, sp, #0 + 8030e16: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 8030eac: 687b ldr r3, [r7, #4] - 8030eae: f9b3 3004 ldrsh.w r3, [r3, #4] - 8030eb2: b29a uxth r2, r3 - 8030eb4: 687b ldr r3, [r7, #4] - 8030eb6: f9b3 3000 ldrsh.w r3, [r3] - 8030eba: b29b uxth r3, r3 - 8030ebc: 1ad3 subs r3, r2, r3 - 8030ebe: b29b uxth r3, r3 - 8030ec0: 3301 adds r3, #1 - 8030ec2: b29b uxth r3, r3 - 8030ec4: b21b sxth r3, r3 + 8030e18: 687b ldr r3, [r7, #4] + 8030e1a: f9b3 3004 ldrsh.w r3, [r3, #4] + 8030e1e: b29a uxth r2, r3 + 8030e20: 687b ldr r3, [r7, #4] + 8030e22: f9b3 3000 ldrsh.w r3, [r3] + 8030e26: b29b uxth r3, r3 + 8030e28: 1ad3 subs r3, r2, r3 + 8030e2a: b29b uxth r3, r3 + 8030e2c: 3301 adds r3, #1 + 8030e2e: b29b uxth r3, r3 + 8030e30: b21b sxth r3, r3 } - 8030ec6: 4618 mov r0, r3 - 8030ec8: 370c adds r7, #12 - 8030eca: 46bd mov sp, r7 - 8030ecc: bc80 pop {r7} - 8030ece: 4770 bx lr + 8030e32: 4618 mov r0, r3 + 8030e34: 370c adds r7, #12 + 8030e36: 46bd mov sp, r7 + 8030e38: bc80 pop {r7} + 8030e3a: 4770 bx lr -08030ed0 : +08030e3c : * Get the height of an area * @param area_p pointer to an area * @return the height of the area (if y1 == y2 -> height = 1) */ static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) { - 8030ed0: b480 push {r7} - 8030ed2: b083 sub sp, #12 - 8030ed4: af00 add r7, sp, #0 - 8030ed6: 6078 str r0, [r7, #4] + 8030e3c: b480 push {r7} + 8030e3e: b083 sub sp, #12 + 8030e40: af00 add r7, sp, #0 + 8030e42: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 8030ed8: 687b ldr r3, [r7, #4] - 8030eda: f9b3 3006 ldrsh.w r3, [r3, #6] - 8030ede: b29a uxth r2, r3 - 8030ee0: 687b ldr r3, [r7, #4] - 8030ee2: f9b3 3002 ldrsh.w r3, [r3, #2] - 8030ee6: b29b uxth r3, r3 - 8030ee8: 1ad3 subs r3, r2, r3 - 8030eea: b29b uxth r3, r3 - 8030eec: 3301 adds r3, #1 - 8030eee: b29b uxth r3, r3 - 8030ef0: b21b sxth r3, r3 + 8030e44: 687b ldr r3, [r7, #4] + 8030e46: f9b3 3006 ldrsh.w r3, [r3, #6] + 8030e4a: b29a uxth r2, r3 + 8030e4c: 687b ldr r3, [r7, #4] + 8030e4e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8030e52: b29b uxth r3, r3 + 8030e54: 1ad3 subs r3, r2, r3 + 8030e56: b29b uxth r3, r3 + 8030e58: 3301 adds r3, #1 + 8030e5a: b29b uxth r3, r3 + 8030e5c: b21b sxth r3, r3 } - 8030ef2: 4618 mov r0, r3 - 8030ef4: 370c adds r7, #12 - 8030ef6: 46bd mov sp, r7 - 8030ef8: bc80 pop {r7} - 8030efa: 4770 bx lr + 8030e5e: 4618 mov r0, r3 + 8030e60: 370c adds r7, #12 + 8030e62: 46bd mov sp, r7 + 8030e64: bc80 pop {r7} + 8030e66: 4770 bx lr -08030efc : +08030e68 : * @param y1 top coordinate of the area * @param x2 right coordinate of the area * @param y2 bottom coordinate of the area */ void lv_area_set(lv_area_t * area_p, lv_coord_t x1, lv_coord_t y1, lv_coord_t x2, lv_coord_t y2) { - 8030efc: b480 push {r7} - 8030efe: b085 sub sp, #20 - 8030f00: af00 add r7, sp, #0 - 8030f02: 60f8 str r0, [r7, #12] - 8030f04: 4608 mov r0, r1 - 8030f06: 4611 mov r1, r2 - 8030f08: 461a mov r2, r3 - 8030f0a: 4603 mov r3, r0 - 8030f0c: 817b strh r3, [r7, #10] - 8030f0e: 460b mov r3, r1 - 8030f10: 813b strh r3, [r7, #8] - 8030f12: 4613 mov r3, r2 - 8030f14: 80fb strh r3, [r7, #6] + 8030e68: b480 push {r7} + 8030e6a: b085 sub sp, #20 + 8030e6c: af00 add r7, sp, #0 + 8030e6e: 60f8 str r0, [r7, #12] + 8030e70: 4608 mov r0, r1 + 8030e72: 4611 mov r1, r2 + 8030e74: 461a mov r2, r3 + 8030e76: 4603 mov r3, r0 + 8030e78: 817b strh r3, [r7, #10] + 8030e7a: 460b mov r3, r1 + 8030e7c: 813b strh r3, [r7, #8] + 8030e7e: 4613 mov r3, r2 + 8030e80: 80fb strh r3, [r7, #6] area_p->x1 = x1; - 8030f16: 68fb ldr r3, [r7, #12] - 8030f18: 897a ldrh r2, [r7, #10] - 8030f1a: 801a strh r2, [r3, #0] + 8030e82: 68fb ldr r3, [r7, #12] + 8030e84: 897a ldrh r2, [r7, #10] + 8030e86: 801a strh r2, [r3, #0] area_p->y1 = y1; - 8030f1c: 68fb ldr r3, [r7, #12] - 8030f1e: 893a ldrh r2, [r7, #8] - 8030f20: 805a strh r2, [r3, #2] + 8030e88: 68fb ldr r3, [r7, #12] + 8030e8a: 893a ldrh r2, [r7, #8] + 8030e8c: 805a strh r2, [r3, #2] area_p->x2 = x2; - 8030f22: 68fb ldr r3, [r7, #12] - 8030f24: 88fa ldrh r2, [r7, #6] - 8030f26: 809a strh r2, [r3, #4] + 8030e8e: 68fb ldr r3, [r7, #12] + 8030e90: 88fa ldrh r2, [r7, #6] + 8030e92: 809a strh r2, [r3, #4] area_p->y2 = y2; - 8030f28: 68fb ldr r3, [r7, #12] - 8030f2a: 8b3a ldrh r2, [r7, #24] - 8030f2c: 80da strh r2, [r3, #6] + 8030e94: 68fb ldr r3, [r7, #12] + 8030e96: 8b3a ldrh r2, [r7, #24] + 8030e98: 80da strh r2, [r3, #6] } - 8030f2e: bf00 nop - 8030f30: 3714 adds r7, #20 - 8030f32: 46bd mov sp, r7 - 8030f34: bc80 pop {r7} - 8030f36: 4770 bx lr + 8030e9a: bf00 nop + 8030e9c: 3714 adds r7, #20 + 8030e9e: 46bd mov sp, r7 + 8030ea0: bc80 pop {r7} + 8030ea2: 4770 bx lr -08030f38 : +08030ea4 : * Set the width of an area * @param area_p pointer to an area * @param w the new width of the area (w == 1 makes x1 == x2) */ void lv_area_set_width(lv_area_t * area_p, lv_coord_t w) { - 8030f38: b480 push {r7} - 8030f3a: b083 sub sp, #12 - 8030f3c: af00 add r7, sp, #0 - 8030f3e: 6078 str r0, [r7, #4] - 8030f40: 460b mov r3, r1 - 8030f42: 807b strh r3, [r7, #2] + 8030ea4: b480 push {r7} + 8030ea6: b083 sub sp, #12 + 8030ea8: af00 add r7, sp, #0 + 8030eaa: 6078 str r0, [r7, #4] + 8030eac: 460b mov r3, r1 + 8030eae: 807b strh r3, [r7, #2] area_p->x2 = area_p->x1 + w - 1; - 8030f44: 687b ldr r3, [r7, #4] - 8030f46: f9b3 3000 ldrsh.w r3, [r3] - 8030f4a: b29a uxth r2, r3 - 8030f4c: 887b ldrh r3, [r7, #2] - 8030f4e: 4413 add r3, r2 - 8030f50: b29b uxth r3, r3 - 8030f52: 3b01 subs r3, #1 - 8030f54: b29b uxth r3, r3 - 8030f56: b21a sxth r2, r3 - 8030f58: 687b ldr r3, [r7, #4] - 8030f5a: 809a strh r2, [r3, #4] + 8030eb0: 687b ldr r3, [r7, #4] + 8030eb2: f9b3 3000 ldrsh.w r3, [r3] + 8030eb6: b29a uxth r2, r3 + 8030eb8: 887b ldrh r3, [r7, #2] + 8030eba: 4413 add r3, r2 + 8030ebc: b29b uxth r3, r3 + 8030ebe: 3b01 subs r3, #1 + 8030ec0: b29b uxth r3, r3 + 8030ec2: b21a sxth r2, r3 + 8030ec4: 687b ldr r3, [r7, #4] + 8030ec6: 809a strh r2, [r3, #4] } - 8030f5c: bf00 nop - 8030f5e: 370c adds r7, #12 - 8030f60: 46bd mov sp, r7 - 8030f62: bc80 pop {r7} - 8030f64: 4770 bx lr + 8030ec8: bf00 nop + 8030eca: 370c adds r7, #12 + 8030ecc: 46bd mov sp, r7 + 8030ece: bc80 pop {r7} + 8030ed0: 4770 bx lr -08030f66 : +08030ed2 : * Set the height of an area * @param area_p pointer to an area * @param h the new height of the area (h == 1 makes y1 == y2) */ void lv_area_set_height(lv_area_t * area_p, lv_coord_t h) { - 8030f66: b480 push {r7} - 8030f68: b083 sub sp, #12 - 8030f6a: af00 add r7, sp, #0 - 8030f6c: 6078 str r0, [r7, #4] - 8030f6e: 460b mov r3, r1 - 8030f70: 807b strh r3, [r7, #2] + 8030ed2: b480 push {r7} + 8030ed4: b083 sub sp, #12 + 8030ed6: af00 add r7, sp, #0 + 8030ed8: 6078 str r0, [r7, #4] + 8030eda: 460b mov r3, r1 + 8030edc: 807b strh r3, [r7, #2] area_p->y2 = area_p->y1 + h - 1; - 8030f72: 687b ldr r3, [r7, #4] - 8030f74: f9b3 3002 ldrsh.w r3, [r3, #2] - 8030f78: b29a uxth r2, r3 - 8030f7a: 887b ldrh r3, [r7, #2] - 8030f7c: 4413 add r3, r2 - 8030f7e: b29b uxth r3, r3 - 8030f80: 3b01 subs r3, #1 - 8030f82: b29b uxth r3, r3 - 8030f84: b21a sxth r2, r3 - 8030f86: 687b ldr r3, [r7, #4] - 8030f88: 80da strh r2, [r3, #6] + 8030ede: 687b ldr r3, [r7, #4] + 8030ee0: f9b3 3002 ldrsh.w r3, [r3, #2] + 8030ee4: b29a uxth r2, r3 + 8030ee6: 887b ldrh r3, [r7, #2] + 8030ee8: 4413 add r3, r2 + 8030eea: b29b uxth r3, r3 + 8030eec: 3b01 subs r3, #1 + 8030eee: b29b uxth r3, r3 + 8030ef0: b21a sxth r2, r3 + 8030ef2: 687b ldr r3, [r7, #4] + 8030ef4: 80da strh r2, [r3, #6] } - 8030f8a: bf00 nop - 8030f8c: 370c adds r7, #12 - 8030f8e: 46bd mov sp, r7 - 8030f90: bc80 pop {r7} - 8030f92: 4770 bx lr + 8030ef6: bf00 nop + 8030ef8: 370c adds r7, #12 + 8030efa: 46bd mov sp, r7 + 8030efc: bc80 pop {r7} + 8030efe: 4770 bx lr -08030f94 : +08030f00 : * Return with area of an area (x * y) * @param area_p pointer to an area * @return size of area */ uint32_t lv_area_get_size(const lv_area_t * area_p) { - 8030f94: b480 push {r7} - 8030f96: b085 sub sp, #20 - 8030f98: af00 add r7, sp, #0 - 8030f9a: 6078 str r0, [r7, #4] + 8030f00: b480 push {r7} + 8030f02: b085 sub sp, #20 + 8030f04: af00 add r7, sp, #0 + 8030f06: 6078 str r0, [r7, #4] uint32_t size; size = (uint32_t)(area_p->x2 - area_p->x1 + 1) * (area_p->y2 - area_p->y1 + 1); - 8030f9c: 687b ldr r3, [r7, #4] - 8030f9e: f9b3 3004 ldrsh.w r3, [r3, #4] - 8030fa2: 461a mov r2, r3 - 8030fa4: 687b ldr r3, [r7, #4] - 8030fa6: f9b3 3000 ldrsh.w r3, [r3] - 8030faa: 1ad3 subs r3, r2, r3 - 8030fac: 3301 adds r3, #1 - 8030fae: 461a mov r2, r3 - 8030fb0: 687b ldr r3, [r7, #4] - 8030fb2: f9b3 3006 ldrsh.w r3, [r3, #6] - 8030fb6: 4619 mov r1, r3 - 8030fb8: 687b ldr r3, [r7, #4] - 8030fba: f9b3 3002 ldrsh.w r3, [r3, #2] - 8030fbe: 1acb subs r3, r1, r3 - 8030fc0: 3301 adds r3, #1 - 8030fc2: fb02 f303 mul.w r3, r2, r3 - 8030fc6: 60fb str r3, [r7, #12] + 8030f08: 687b ldr r3, [r7, #4] + 8030f0a: f9b3 3004 ldrsh.w r3, [r3, #4] + 8030f0e: 461a mov r2, r3 + 8030f10: 687b ldr r3, [r7, #4] + 8030f12: f9b3 3000 ldrsh.w r3, [r3] + 8030f16: 1ad3 subs r3, r2, r3 + 8030f18: 3301 adds r3, #1 + 8030f1a: 461a mov r2, r3 + 8030f1c: 687b ldr r3, [r7, #4] + 8030f1e: f9b3 3006 ldrsh.w r3, [r3, #6] + 8030f22: 4619 mov r1, r3 + 8030f24: 687b ldr r3, [r7, #4] + 8030f26: f9b3 3002 ldrsh.w r3, [r3, #2] + 8030f2a: 1acb subs r3, r1, r3 + 8030f2c: 3301 adds r3, #1 + 8030f2e: fb02 f303 mul.w r3, r2, r3 + 8030f32: 60fb str r3, [r7, #12] return size; - 8030fc8: 68fb ldr r3, [r7, #12] + 8030f34: 68fb ldr r3, [r7, #12] } - 8030fca: 4618 mov r0, r3 - 8030fcc: 3714 adds r7, #20 - 8030fce: 46bd mov sp, r7 - 8030fd0: bc80 pop {r7} - 8030fd2: 4770 bx lr + 8030f36: 4618 mov r0, r3 + 8030f38: 3714 adds r7, #20 + 8030f3a: 46bd mov sp, r7 + 8030f3c: bc80 pop {r7} + 8030f3e: 4770 bx lr -08030fd4 : +08030f40 : void lv_area_increase(lv_area_t * area, lv_coord_t w_extra, lv_coord_t h_extra) { - 8030fd4: b480 push {r7} - 8030fd6: b083 sub sp, #12 - 8030fd8: af00 add r7, sp, #0 - 8030fda: 6078 str r0, [r7, #4] - 8030fdc: 460b mov r3, r1 - 8030fde: 807b strh r3, [r7, #2] - 8030fe0: 4613 mov r3, r2 - 8030fe2: 803b strh r3, [r7, #0] + 8030f40: b480 push {r7} + 8030f42: b083 sub sp, #12 + 8030f44: af00 add r7, sp, #0 + 8030f46: 6078 str r0, [r7, #4] + 8030f48: 460b mov r3, r1 + 8030f4a: 807b strh r3, [r7, #2] + 8030f4c: 4613 mov r3, r2 + 8030f4e: 803b strh r3, [r7, #0] area->x1 -= w_extra; - 8030fe4: 687b ldr r3, [r7, #4] - 8030fe6: f9b3 3000 ldrsh.w r3, [r3] - 8030fea: b29a uxth r2, r3 - 8030fec: 887b ldrh r3, [r7, #2] - 8030fee: 1ad3 subs r3, r2, r3 - 8030ff0: b29b uxth r3, r3 - 8030ff2: b21a sxth r2, r3 - 8030ff4: 687b ldr r3, [r7, #4] - 8030ff6: 801a strh r2, [r3, #0] + 8030f50: 687b ldr r3, [r7, #4] + 8030f52: f9b3 3000 ldrsh.w r3, [r3] + 8030f56: b29a uxth r2, r3 + 8030f58: 887b ldrh r3, [r7, #2] + 8030f5a: 1ad3 subs r3, r2, r3 + 8030f5c: b29b uxth r3, r3 + 8030f5e: b21a sxth r2, r3 + 8030f60: 687b ldr r3, [r7, #4] + 8030f62: 801a strh r2, [r3, #0] area->x2 += w_extra; - 8030ff8: 687b ldr r3, [r7, #4] - 8030ffa: f9b3 3004 ldrsh.w r3, [r3, #4] - 8030ffe: b29a uxth r2, r3 - 8031000: 887b ldrh r3, [r7, #2] - 8031002: 4413 add r3, r2 - 8031004: b29b uxth r3, r3 - 8031006: b21a sxth r2, r3 - 8031008: 687b ldr r3, [r7, #4] - 803100a: 809a strh r2, [r3, #4] + 8030f64: 687b ldr r3, [r7, #4] + 8030f66: f9b3 3004 ldrsh.w r3, [r3, #4] + 8030f6a: b29a uxth r2, r3 + 8030f6c: 887b ldrh r3, [r7, #2] + 8030f6e: 4413 add r3, r2 + 8030f70: b29b uxth r3, r3 + 8030f72: b21a sxth r2, r3 + 8030f74: 687b ldr r3, [r7, #4] + 8030f76: 809a strh r2, [r3, #4] area->y1 -= h_extra; - 803100c: 687b ldr r3, [r7, #4] - 803100e: f9b3 3002 ldrsh.w r3, [r3, #2] - 8031012: b29a uxth r2, r3 - 8031014: 883b ldrh r3, [r7, #0] - 8031016: 1ad3 subs r3, r2, r3 - 8031018: b29b uxth r3, r3 - 803101a: b21a sxth r2, r3 - 803101c: 687b ldr r3, [r7, #4] - 803101e: 805a strh r2, [r3, #2] + 8030f78: 687b ldr r3, [r7, #4] + 8030f7a: f9b3 3002 ldrsh.w r3, [r3, #2] + 8030f7e: b29a uxth r2, r3 + 8030f80: 883b ldrh r3, [r7, #0] + 8030f82: 1ad3 subs r3, r2, r3 + 8030f84: b29b uxth r3, r3 + 8030f86: b21a sxth r2, r3 + 8030f88: 687b ldr r3, [r7, #4] + 8030f8a: 805a strh r2, [r3, #2] area->y2 += h_extra; - 8031020: 687b ldr r3, [r7, #4] - 8031022: f9b3 3006 ldrsh.w r3, [r3, #6] - 8031026: b29a uxth r2, r3 - 8031028: 883b ldrh r3, [r7, #0] - 803102a: 4413 add r3, r2 - 803102c: b29b uxth r3, r3 - 803102e: b21a sxth r2, r3 - 8031030: 687b ldr r3, [r7, #4] - 8031032: 80da strh r2, [r3, #6] + 8030f8c: 687b ldr r3, [r7, #4] + 8030f8e: f9b3 3006 ldrsh.w r3, [r3, #6] + 8030f92: b29a uxth r2, r3 + 8030f94: 883b ldrh r3, [r7, #0] + 8030f96: 4413 add r3, r2 + 8030f98: b29b uxth r3, r3 + 8030f9a: b21a sxth r2, r3 + 8030f9c: 687b ldr r3, [r7, #4] + 8030f9e: 80da strh r2, [r3, #6] } - 8031034: bf00 nop - 8031036: 370c adds r7, #12 - 8031038: 46bd mov sp, r7 - 803103a: bc80 pop {r7} - 803103c: 4770 bx lr + 8030fa0: bf00 nop + 8030fa2: 370c adds r7, #12 + 8030fa4: 46bd mov sp, r7 + 8030fa6: bc80 pop {r7} + 8030fa8: 4770 bx lr -0803103e : +08030faa : void lv_area_move(lv_area_t * area, lv_coord_t x_ofs, lv_coord_t y_ofs) { - 803103e: b480 push {r7} - 8031040: b083 sub sp, #12 - 8031042: af00 add r7, sp, #0 - 8031044: 6078 str r0, [r7, #4] - 8031046: 460b mov r3, r1 - 8031048: 807b strh r3, [r7, #2] - 803104a: 4613 mov r3, r2 - 803104c: 803b strh r3, [r7, #0] + 8030faa: b480 push {r7} + 8030fac: b083 sub sp, #12 + 8030fae: af00 add r7, sp, #0 + 8030fb0: 6078 str r0, [r7, #4] + 8030fb2: 460b mov r3, r1 + 8030fb4: 807b strh r3, [r7, #2] + 8030fb6: 4613 mov r3, r2 + 8030fb8: 803b strh r3, [r7, #0] area->x1 += x_ofs; - 803104e: 687b ldr r3, [r7, #4] - 8031050: f9b3 3000 ldrsh.w r3, [r3] - 8031054: b29a uxth r2, r3 - 8031056: 887b ldrh r3, [r7, #2] - 8031058: 4413 add r3, r2 - 803105a: b29b uxth r3, r3 - 803105c: b21a sxth r2, r3 - 803105e: 687b ldr r3, [r7, #4] - 8031060: 801a strh r2, [r3, #0] + 8030fba: 687b ldr r3, [r7, #4] + 8030fbc: f9b3 3000 ldrsh.w r3, [r3] + 8030fc0: b29a uxth r2, r3 + 8030fc2: 887b ldrh r3, [r7, #2] + 8030fc4: 4413 add r3, r2 + 8030fc6: b29b uxth r3, r3 + 8030fc8: b21a sxth r2, r3 + 8030fca: 687b ldr r3, [r7, #4] + 8030fcc: 801a strh r2, [r3, #0] area->x2 += x_ofs; - 8031062: 687b ldr r3, [r7, #4] - 8031064: f9b3 3004 ldrsh.w r3, [r3, #4] - 8031068: b29a uxth r2, r3 - 803106a: 887b ldrh r3, [r7, #2] - 803106c: 4413 add r3, r2 - 803106e: b29b uxth r3, r3 - 8031070: b21a sxth r2, r3 - 8031072: 687b ldr r3, [r7, #4] - 8031074: 809a strh r2, [r3, #4] + 8030fce: 687b ldr r3, [r7, #4] + 8030fd0: f9b3 3004 ldrsh.w r3, [r3, #4] + 8030fd4: b29a uxth r2, r3 + 8030fd6: 887b ldrh r3, [r7, #2] + 8030fd8: 4413 add r3, r2 + 8030fda: b29b uxth r3, r3 + 8030fdc: b21a sxth r2, r3 + 8030fde: 687b ldr r3, [r7, #4] + 8030fe0: 809a strh r2, [r3, #4] area->y1 += y_ofs; - 8031076: 687b ldr r3, [r7, #4] - 8031078: f9b3 3002 ldrsh.w r3, [r3, #2] - 803107c: b29a uxth r2, r3 - 803107e: 883b ldrh r3, [r7, #0] - 8031080: 4413 add r3, r2 - 8031082: b29b uxth r3, r3 - 8031084: b21a sxth r2, r3 - 8031086: 687b ldr r3, [r7, #4] - 8031088: 805a strh r2, [r3, #2] + 8030fe2: 687b ldr r3, [r7, #4] + 8030fe4: f9b3 3002 ldrsh.w r3, [r3, #2] + 8030fe8: b29a uxth r2, r3 + 8030fea: 883b ldrh r3, [r7, #0] + 8030fec: 4413 add r3, r2 + 8030fee: b29b uxth r3, r3 + 8030ff0: b21a sxth r2, r3 + 8030ff2: 687b ldr r3, [r7, #4] + 8030ff4: 805a strh r2, [r3, #2] area->y2 += y_ofs; - 803108a: 687b ldr r3, [r7, #4] - 803108c: f9b3 3006 ldrsh.w r3, [r3, #6] - 8031090: b29a uxth r2, r3 - 8031092: 883b ldrh r3, [r7, #0] - 8031094: 4413 add r3, r2 - 8031096: b29b uxth r3, r3 - 8031098: b21a sxth r2, r3 - 803109a: 687b ldr r3, [r7, #4] - 803109c: 80da strh r2, [r3, #6] + 8030ff6: 687b ldr r3, [r7, #4] + 8030ff8: f9b3 3006 ldrsh.w r3, [r3, #6] + 8030ffc: b29a uxth r2, r3 + 8030ffe: 883b ldrh r3, [r7, #0] + 8031000: 4413 add r3, r2 + 8031002: b29b uxth r3, r3 + 8031004: b21a sxth r2, r3 + 8031006: 687b ldr r3, [r7, #4] + 8031008: 80da strh r2, [r3, #6] } - 803109e: bf00 nop - 80310a0: 370c adds r7, #12 - 80310a2: 46bd mov sp, r7 - 80310a4: bc80 pop {r7} - 80310a6: 4770 bx lr + 803100a: bf00 nop + 803100c: 370c adds r7, #12 + 803100e: 46bd mov sp, r7 + 8031010: bc80 pop {r7} + 8031012: 4770 bx lr -080310a8 <_lv_area_intersect>: +08031014 <_lv_area_intersect>: * @param a1_p pointer to the first area * @param a2_p pointer to the second area * @return false: the two area has NO common parts, res_p is invalid */ bool _lv_area_intersect(lv_area_t * res_p, const lv_area_t * a1_p, const lv_area_t * a2_p) { - 80310a8: b480 push {r7} - 80310aa: b087 sub sp, #28 - 80310ac: af00 add r7, sp, #0 - 80310ae: 60f8 str r0, [r7, #12] - 80310b0: 60b9 str r1, [r7, #8] - 80310b2: 607a str r2, [r7, #4] + 8031014: b480 push {r7} + 8031016: b087 sub sp, #28 + 8031018: af00 add r7, sp, #0 + 803101a: 60f8 str r0, [r7, #12] + 803101c: 60b9 str r1, [r7, #8] + 803101e: 607a str r2, [r7, #4] /*Get the smaller area from 'a1_p' and 'a2_p'*/ res_p->x1 = LV_MAX(a1_p->x1, a2_p->x1); - 80310b4: 687b ldr r3, [r7, #4] - 80310b6: f9b3 2000 ldrsh.w r2, [r3] - 80310ba: 68bb ldr r3, [r7, #8] - 80310bc: f9b3 3000 ldrsh.w r3, [r3] - 80310c0: 4293 cmp r3, r2 - 80310c2: bfb8 it lt - 80310c4: 4613 movlt r3, r2 - 80310c6: b21a sxth r2, r3 - 80310c8: 68fb ldr r3, [r7, #12] - 80310ca: 801a strh r2, [r3, #0] + 8031020: 687b ldr r3, [r7, #4] + 8031022: f9b3 2000 ldrsh.w r2, [r3] + 8031026: 68bb ldr r3, [r7, #8] + 8031028: f9b3 3000 ldrsh.w r3, [r3] + 803102c: 4293 cmp r3, r2 + 803102e: bfb8 it lt + 8031030: 4613 movlt r3, r2 + 8031032: b21a sxth r2, r3 + 8031034: 68fb ldr r3, [r7, #12] + 8031036: 801a strh r2, [r3, #0] res_p->y1 = LV_MAX(a1_p->y1, a2_p->y1); - 80310cc: 687b ldr r3, [r7, #4] - 80310ce: f9b3 2002 ldrsh.w r2, [r3, #2] - 80310d2: 68bb ldr r3, [r7, #8] - 80310d4: f9b3 3002 ldrsh.w r3, [r3, #2] - 80310d8: 4293 cmp r3, r2 - 80310da: bfb8 it lt - 80310dc: 4613 movlt r3, r2 - 80310de: b21a sxth r2, r3 - 80310e0: 68fb ldr r3, [r7, #12] - 80310e2: 805a strh r2, [r3, #2] + 8031038: 687b ldr r3, [r7, #4] + 803103a: f9b3 2002 ldrsh.w r2, [r3, #2] + 803103e: 68bb ldr r3, [r7, #8] + 8031040: f9b3 3002 ldrsh.w r3, [r3, #2] + 8031044: 4293 cmp r3, r2 + 8031046: bfb8 it lt + 8031048: 4613 movlt r3, r2 + 803104a: b21a sxth r2, r3 + 803104c: 68fb ldr r3, [r7, #12] + 803104e: 805a strh r2, [r3, #2] res_p->x2 = LV_MIN(a1_p->x2, a2_p->x2); - 80310e4: 687b ldr r3, [r7, #4] - 80310e6: f9b3 2004 ldrsh.w r2, [r3, #4] - 80310ea: 68bb ldr r3, [r7, #8] - 80310ec: f9b3 3004 ldrsh.w r3, [r3, #4] - 80310f0: 4293 cmp r3, r2 - 80310f2: bfa8 it ge - 80310f4: 4613 movge r3, r2 - 80310f6: b21a sxth r2, r3 - 80310f8: 68fb ldr r3, [r7, #12] - 80310fa: 809a strh r2, [r3, #4] + 8031050: 687b ldr r3, [r7, #4] + 8031052: f9b3 2004 ldrsh.w r2, [r3, #4] + 8031056: 68bb ldr r3, [r7, #8] + 8031058: f9b3 3004 ldrsh.w r3, [r3, #4] + 803105c: 4293 cmp r3, r2 + 803105e: bfa8 it ge + 8031060: 4613 movge r3, r2 + 8031062: b21a sxth r2, r3 + 8031064: 68fb ldr r3, [r7, #12] + 8031066: 809a strh r2, [r3, #4] res_p->y2 = LV_MIN(a1_p->y2, a2_p->y2); - 80310fc: 687b ldr r3, [r7, #4] - 80310fe: f9b3 2006 ldrsh.w r2, [r3, #6] - 8031102: 68bb ldr r3, [r7, #8] - 8031104: f9b3 3006 ldrsh.w r3, [r3, #6] - 8031108: 4293 cmp r3, r2 - 803110a: bfa8 it ge - 803110c: 4613 movge r3, r2 - 803110e: b21a sxth r2, r3 - 8031110: 68fb ldr r3, [r7, #12] - 8031112: 80da strh r2, [r3, #6] + 8031068: 687b ldr r3, [r7, #4] + 803106a: f9b3 2006 ldrsh.w r2, [r3, #6] + 803106e: 68bb ldr r3, [r7, #8] + 8031070: f9b3 3006 ldrsh.w r3, [r3, #6] + 8031074: 4293 cmp r3, r2 + 8031076: bfa8 it ge + 8031078: 4613 movge r3, r2 + 803107a: b21a sxth r2, r3 + 803107c: 68fb ldr r3, [r7, #12] + 803107e: 80da strh r2, [r3, #6] /*If x1 or y1 greater than x2 or y2 then the areas union is empty*/ bool union_ok = true; - 8031114: 2301 movs r3, #1 - 8031116: 75fb strb r3, [r7, #23] + 8031080: 2301 movs r3, #1 + 8031082: 75fb strb r3, [r7, #23] if((res_p->x1 > res_p->x2) || (res_p->y1 > res_p->y2)) { - 8031118: 68fb ldr r3, [r7, #12] - 803111a: f9b3 2000 ldrsh.w r2, [r3] - 803111e: 68fb ldr r3, [r7, #12] - 8031120: f9b3 3004 ldrsh.w r3, [r3, #4] - 8031124: 429a cmp r2, r3 - 8031126: dc07 bgt.n 8031138 <_lv_area_intersect+0x90> - 8031128: 68fb ldr r3, [r7, #12] - 803112a: f9b3 2002 ldrsh.w r2, [r3, #2] - 803112e: 68fb ldr r3, [r7, #12] - 8031130: f9b3 3006 ldrsh.w r3, [r3, #6] - 8031134: 429a cmp r2, r3 - 8031136: dd01 ble.n 803113c <_lv_area_intersect+0x94> + 8031084: 68fb ldr r3, [r7, #12] + 8031086: f9b3 2000 ldrsh.w r2, [r3] + 803108a: 68fb ldr r3, [r7, #12] + 803108c: f9b3 3004 ldrsh.w r3, [r3, #4] + 8031090: 429a cmp r2, r3 + 8031092: dc07 bgt.n 80310a4 <_lv_area_intersect+0x90> + 8031094: 68fb ldr r3, [r7, #12] + 8031096: f9b3 2002 ldrsh.w r2, [r3, #2] + 803109a: 68fb ldr r3, [r7, #12] + 803109c: f9b3 3006 ldrsh.w r3, [r3, #6] + 80310a0: 429a cmp r2, r3 + 80310a2: dd01 ble.n 80310a8 <_lv_area_intersect+0x94> union_ok = false; - 8031138: 2300 movs r3, #0 - 803113a: 75fb strb r3, [r7, #23] + 80310a4: 2300 movs r3, #0 + 80310a6: 75fb strb r3, [r7, #23] } return union_ok; - 803113c: 7dfb ldrb r3, [r7, #23] + 80310a8: 7dfb ldrb r3, [r7, #23] } - 803113e: 4618 mov r0, r3 - 8031140: 371c adds r7, #28 - 8031142: 46bd mov sp, r7 - 8031144: bc80 pop {r7} - 8031146: 4770 bx lr + 80310aa: 4618 mov r0, r3 + 80310ac: 371c adds r7, #28 + 80310ae: 46bd mov sp, r7 + 80310b0: bc80 pop {r7} + 80310b2: 4770 bx lr -08031148 <_lv_area_join>: +080310b4 <_lv_area_join>: * @param res_p pointer to an area, the result will be stored here * @param a1_p pointer to the first area * @param a2_p pointer to the second area */ void _lv_area_join(lv_area_t * a_res_p, const lv_area_t * a1_p, const lv_area_t * a2_p) { - 8031148: b480 push {r7} - 803114a: b085 sub sp, #20 - 803114c: af00 add r7, sp, #0 - 803114e: 60f8 str r0, [r7, #12] - 8031150: 60b9 str r1, [r7, #8] - 8031152: 607a str r2, [r7, #4] + 80310b4: b480 push {r7} + 80310b6: b085 sub sp, #20 + 80310b8: af00 add r7, sp, #0 + 80310ba: 60f8 str r0, [r7, #12] + 80310bc: 60b9 str r1, [r7, #8] + 80310be: 607a str r2, [r7, #4] a_res_p->x1 = LV_MIN(a1_p->x1, a2_p->x1); - 8031154: 687b ldr r3, [r7, #4] - 8031156: f9b3 2000 ldrsh.w r2, [r3] - 803115a: 68bb ldr r3, [r7, #8] - 803115c: f9b3 3000 ldrsh.w r3, [r3] - 8031160: 4293 cmp r3, r2 - 8031162: bfa8 it ge - 8031164: 4613 movge r3, r2 - 8031166: b21a sxth r2, r3 - 8031168: 68fb ldr r3, [r7, #12] - 803116a: 801a strh r2, [r3, #0] + 80310c0: 687b ldr r3, [r7, #4] + 80310c2: f9b3 2000 ldrsh.w r2, [r3] + 80310c6: 68bb ldr r3, [r7, #8] + 80310c8: f9b3 3000 ldrsh.w r3, [r3] + 80310cc: 4293 cmp r3, r2 + 80310ce: bfa8 it ge + 80310d0: 4613 movge r3, r2 + 80310d2: b21a sxth r2, r3 + 80310d4: 68fb ldr r3, [r7, #12] + 80310d6: 801a strh r2, [r3, #0] a_res_p->y1 = LV_MIN(a1_p->y1, a2_p->y1); - 803116c: 687b ldr r3, [r7, #4] - 803116e: f9b3 2002 ldrsh.w r2, [r3, #2] - 8031172: 68bb ldr r3, [r7, #8] - 8031174: f9b3 3002 ldrsh.w r3, [r3, #2] - 8031178: 4293 cmp r3, r2 - 803117a: bfa8 it ge - 803117c: 4613 movge r3, r2 - 803117e: b21a sxth r2, r3 - 8031180: 68fb ldr r3, [r7, #12] - 8031182: 805a strh r2, [r3, #2] + 80310d8: 687b ldr r3, [r7, #4] + 80310da: f9b3 2002 ldrsh.w r2, [r3, #2] + 80310de: 68bb ldr r3, [r7, #8] + 80310e0: f9b3 3002 ldrsh.w r3, [r3, #2] + 80310e4: 4293 cmp r3, r2 + 80310e6: bfa8 it ge + 80310e8: 4613 movge r3, r2 + 80310ea: b21a sxth r2, r3 + 80310ec: 68fb ldr r3, [r7, #12] + 80310ee: 805a strh r2, [r3, #2] a_res_p->x2 = LV_MAX(a1_p->x2, a2_p->x2); - 8031184: 687b ldr r3, [r7, #4] - 8031186: f9b3 2004 ldrsh.w r2, [r3, #4] - 803118a: 68bb ldr r3, [r7, #8] - 803118c: f9b3 3004 ldrsh.w r3, [r3, #4] - 8031190: 4293 cmp r3, r2 - 8031192: bfb8 it lt - 8031194: 4613 movlt r3, r2 - 8031196: b21a sxth r2, r3 - 8031198: 68fb ldr r3, [r7, #12] - 803119a: 809a strh r2, [r3, #4] + 80310f0: 687b ldr r3, [r7, #4] + 80310f2: f9b3 2004 ldrsh.w r2, [r3, #4] + 80310f6: 68bb ldr r3, [r7, #8] + 80310f8: f9b3 3004 ldrsh.w r3, [r3, #4] + 80310fc: 4293 cmp r3, r2 + 80310fe: bfb8 it lt + 8031100: 4613 movlt r3, r2 + 8031102: b21a sxth r2, r3 + 8031104: 68fb ldr r3, [r7, #12] + 8031106: 809a strh r2, [r3, #4] a_res_p->y2 = LV_MAX(a1_p->y2, a2_p->y2); - 803119c: 687b ldr r3, [r7, #4] - 803119e: f9b3 2006 ldrsh.w r2, [r3, #6] - 80311a2: 68bb ldr r3, [r7, #8] - 80311a4: f9b3 3006 ldrsh.w r3, [r3, #6] - 80311a8: 4293 cmp r3, r2 - 80311aa: bfb8 it lt - 80311ac: 4613 movlt r3, r2 - 80311ae: b21a sxth r2, r3 - 80311b0: 68fb ldr r3, [r7, #12] - 80311b2: 80da strh r2, [r3, #6] + 8031108: 687b ldr r3, [r7, #4] + 803110a: f9b3 2006 ldrsh.w r2, [r3, #6] + 803110e: 68bb ldr r3, [r7, #8] + 8031110: f9b3 3006 ldrsh.w r3, [r3, #6] + 8031114: 4293 cmp r3, r2 + 8031116: bfb8 it lt + 8031118: 4613 movlt r3, r2 + 803111a: b21a sxth r2, r3 + 803111c: 68fb ldr r3, [r7, #12] + 803111e: 80da strh r2, [r3, #6] } - 80311b4: bf00 nop - 80311b6: 3714 adds r7, #20 - 80311b8: 46bd mov sp, r7 - 80311ba: bc80 pop {r7} - 80311bc: 4770 bx lr + 8031120: bf00 nop + 8031122: 3714 adds r7, #20 + 8031124: 46bd mov sp, r7 + 8031126: bc80 pop {r7} + 8031128: 4770 bx lr -080311be <_lv_area_is_point_on>: +0803112a <_lv_area_is_point_on>: * @param p_p pointer to a point * @param radius radius of area (e.g. for rounded rectangle) * @return false:the point is out of the area */ bool _lv_area_is_point_on(const lv_area_t * a_p, const lv_point_t * p_p, lv_coord_t radius) { - 80311be: b580 push {r7, lr} - 80311c0: b088 sub sp, #32 - 80311c2: af00 add r7, sp, #0 - 80311c4: 60f8 str r0, [r7, #12] - 80311c6: 60b9 str r1, [r7, #8] - 80311c8: 4613 mov r3, r2 - 80311ca: 80fb strh r3, [r7, #6] + 803112a: b580 push {r7, lr} + 803112c: b088 sub sp, #32 + 803112e: af00 add r7, sp, #0 + 8031130: 60f8 str r0, [r7, #12] + 8031132: 60b9 str r1, [r7, #8] + 8031134: 4613 mov r3, r2 + 8031136: 80fb strh r3, [r7, #6] /*First check the basic area*/ bool is_on_rect = false; - 80311cc: 2300 movs r3, #0 - 80311ce: 77fb strb r3, [r7, #31] + 8031138: 2300 movs r3, #0 + 803113a: 77fb strb r3, [r7, #31] if((p_p->x >= a_p->x1 && p_p->x <= a_p->x2) && ((p_p->y >= a_p->y1 && p_p->y <= a_p->y2))) { - 80311d0: 68bb ldr r3, [r7, #8] - 80311d2: f9b3 2000 ldrsh.w r2, [r3] - 80311d6: 68fb ldr r3, [r7, #12] - 80311d8: f9b3 3000 ldrsh.w r3, [r3] - 80311dc: 429a cmp r2, r3 - 80311de: db19 blt.n 8031214 <_lv_area_is_point_on+0x56> - 80311e0: 68bb ldr r3, [r7, #8] - 80311e2: f9b3 2000 ldrsh.w r2, [r3] - 80311e6: 68fb ldr r3, [r7, #12] - 80311e8: f9b3 3004 ldrsh.w r3, [r3, #4] - 80311ec: 429a cmp r2, r3 - 80311ee: dc11 bgt.n 8031214 <_lv_area_is_point_on+0x56> - 80311f0: 68bb ldr r3, [r7, #8] - 80311f2: f9b3 2002 ldrsh.w r2, [r3, #2] - 80311f6: 68fb ldr r3, [r7, #12] - 80311f8: f9b3 3002 ldrsh.w r3, [r3, #2] - 80311fc: 429a cmp r2, r3 - 80311fe: db09 blt.n 8031214 <_lv_area_is_point_on+0x56> - 8031200: 68bb ldr r3, [r7, #8] - 8031202: f9b3 2002 ldrsh.w r2, [r3, #2] - 8031206: 68fb ldr r3, [r7, #12] - 8031208: f9b3 3006 ldrsh.w r3, [r3, #6] - 803120c: 429a cmp r2, r3 - 803120e: dc01 bgt.n 8031214 <_lv_area_is_point_on+0x56> + 803113c: 68bb ldr r3, [r7, #8] + 803113e: f9b3 2000 ldrsh.w r2, [r3] + 8031142: 68fb ldr r3, [r7, #12] + 8031144: f9b3 3000 ldrsh.w r3, [r3] + 8031148: 429a cmp r2, r3 + 803114a: db19 blt.n 8031180 <_lv_area_is_point_on+0x56> + 803114c: 68bb ldr r3, [r7, #8] + 803114e: f9b3 2000 ldrsh.w r2, [r3] + 8031152: 68fb ldr r3, [r7, #12] + 8031154: f9b3 3004 ldrsh.w r3, [r3, #4] + 8031158: 429a cmp r2, r3 + 803115a: dc11 bgt.n 8031180 <_lv_area_is_point_on+0x56> + 803115c: 68bb ldr r3, [r7, #8] + 803115e: f9b3 2002 ldrsh.w r2, [r3, #2] + 8031162: 68fb ldr r3, [r7, #12] + 8031164: f9b3 3002 ldrsh.w r3, [r3, #2] + 8031168: 429a cmp r2, r3 + 803116a: db09 blt.n 8031180 <_lv_area_is_point_on+0x56> + 803116c: 68bb ldr r3, [r7, #8] + 803116e: f9b3 2002 ldrsh.w r2, [r3, #2] + 8031172: 68fb ldr r3, [r7, #12] + 8031174: f9b3 3006 ldrsh.w r3, [r3, #6] + 8031178: 429a cmp r2, r3 + 803117a: dc01 bgt.n 8031180 <_lv_area_is_point_on+0x56> is_on_rect = true; - 8031210: 2301 movs r3, #1 - 8031212: 77fb strb r3, [r7, #31] + 803117c: 2301 movs r3, #1 + 803117e: 77fb strb r3, [r7, #31] } if(!is_on_rect) - 8031214: 7ffb ldrb r3, [r7, #31] - 8031216: f083 0301 eor.w r3, r3, #1 - 803121a: b2db uxtb r3, r3 - 803121c: 2b00 cmp r3, #0 - 803121e: d001 beq.n 8031224 <_lv_area_is_point_on+0x66> + 8031180: 7ffb ldrb r3, [r7, #31] + 8031182: f083 0301 eor.w r3, r3, #1 + 8031186: b2db uxtb r3, r3 + 8031188: 2b00 cmp r3, #0 + 803118a: d001 beq.n 8031190 <_lv_area_is_point_on+0x66> return false; - 8031220: 2300 movs r3, #0 - 8031222: e0ef b.n 8031404 <_lv_area_is_point_on+0x246> + 803118c: 2300 movs r3, #0 + 803118e: e0ef b.n 8031370 <_lv_area_is_point_on+0x246> /*Now handle potential rounded rectangles*/ if(radius <= 0) { - 8031224: f9b7 3006 ldrsh.w r3, [r7, #6] - 8031228: 2b00 cmp r3, #0 - 803122a: dc01 bgt.n 8031230 <_lv_area_is_point_on+0x72> + 8031190: f9b7 3006 ldrsh.w r3, [r7, #6] + 8031194: 2b00 cmp r3, #0 + 8031196: dc01 bgt.n 803119c <_lv_area_is_point_on+0x72> /*No radius, it is within the rectangle*/ return true; - 803122c: 2301 movs r3, #1 - 803122e: e0e9 b.n 8031404 <_lv_area_is_point_on+0x246> + 8031198: 2301 movs r3, #1 + 803119a: e0e9 b.n 8031370 <_lv_area_is_point_on+0x246> } lv_coord_t w = lv_area_get_width(a_p) / 2; - 8031230: 68f8 ldr r0, [r7, #12] - 8031232: f7ff fe37 bl 8030ea4 - 8031236: 4603 mov r3, r0 - 8031238: 0fda lsrs r2, r3, #31 - 803123a: 4413 add r3, r2 - 803123c: 105b asrs r3, r3, #1 - 803123e: 83bb strh r3, [r7, #28] + 803119c: 68f8 ldr r0, [r7, #12] + 803119e: f7ff fe37 bl 8030e10 + 80311a2: 4603 mov r3, r0 + 80311a4: 0fda lsrs r2, r3, #31 + 80311a6: 4413 add r3, r2 + 80311a8: 105b asrs r3, r3, #1 + 80311aa: 83bb strh r3, [r7, #28] lv_coord_t h = lv_area_get_height(a_p) / 2; - 8031240: 68f8 ldr r0, [r7, #12] - 8031242: f7ff fe45 bl 8030ed0 - 8031246: 4603 mov r3, r0 - 8031248: 0fda lsrs r2, r3, #31 - 803124a: 4413 add r3, r2 - 803124c: 105b asrs r3, r3, #1 - 803124e: 837b strh r3, [r7, #26] + 80311ac: 68f8 ldr r0, [r7, #12] + 80311ae: f7ff fe45 bl 8030e3c + 80311b2: 4603 mov r3, r0 + 80311b4: 0fda lsrs r2, r3, #31 + 80311b6: 4413 add r3, r2 + 80311b8: 105b asrs r3, r3, #1 + 80311ba: 837b strh r3, [r7, #26] lv_coord_t max_radius = LV_MIN(w, h); - 8031250: f9b7 201a ldrsh.w r2, [r7, #26] - 8031254: f9b7 301c ldrsh.w r3, [r7, #28] - 8031258: 4293 cmp r3, r2 - 803125a: bfa8 it ge - 803125c: 4613 movge r3, r2 - 803125e: 833b strh r3, [r7, #24] + 80311bc: f9b7 201a ldrsh.w r2, [r7, #26] + 80311c0: f9b7 301c ldrsh.w r3, [r7, #28] + 80311c4: 4293 cmp r3, r2 + 80311c6: bfa8 it ge + 80311c8: 4613 movge r3, r2 + 80311ca: 833b strh r3, [r7, #24] if(radius > max_radius) - 8031260: f9b7 2006 ldrsh.w r2, [r7, #6] - 8031264: f9b7 3018 ldrsh.w r3, [r7, #24] - 8031268: 429a cmp r2, r3 - 803126a: dd01 ble.n 8031270 <_lv_area_is_point_on+0xb2> + 80311cc: f9b7 2006 ldrsh.w r2, [r7, #6] + 80311d0: f9b7 3018 ldrsh.w r3, [r7, #24] + 80311d4: 429a cmp r2, r3 + 80311d6: dd01 ble.n 80311dc <_lv_area_is_point_on+0xb2> radius = max_radius; - 803126c: 8b3b ldrh r3, [r7, #24] - 803126e: 80fb strh r3, [r7, #6] + 80311d8: 8b3b ldrh r3, [r7, #24] + 80311da: 80fb strh r3, [r7, #6] /*Check if it's in one of the corners*/ lv_area_t corner_area; /*Top left*/ corner_area.x1 = a_p->x1; - 8031270: 68fb ldr r3, [r7, #12] - 8031272: f9b3 3000 ldrsh.w r3, [r3] - 8031276: 823b strh r3, [r7, #16] + 80311dc: 68fb ldr r3, [r7, #12] + 80311de: f9b3 3000 ldrsh.w r3, [r3] + 80311e2: 823b strh r3, [r7, #16] corner_area.x2 = a_p->x1 + radius; - 8031278: 68fb ldr r3, [r7, #12] - 803127a: f9b3 3000 ldrsh.w r3, [r3] - 803127e: b29a uxth r2, r3 - 8031280: 88fb ldrh r3, [r7, #6] - 8031282: 4413 add r3, r2 - 8031284: b29b uxth r3, r3 - 8031286: b21b sxth r3, r3 - 8031288: 82bb strh r3, [r7, #20] + 80311e4: 68fb ldr r3, [r7, #12] + 80311e6: f9b3 3000 ldrsh.w r3, [r3] + 80311ea: b29a uxth r2, r3 + 80311ec: 88fb ldrh r3, [r7, #6] + 80311ee: 4413 add r3, r2 + 80311f0: b29b uxth r3, r3 + 80311f2: b21b sxth r3, r3 + 80311f4: 82bb strh r3, [r7, #20] corner_area.y1 = a_p->y1; - 803128a: 68fb ldr r3, [r7, #12] - 803128c: f9b3 3002 ldrsh.w r3, [r3, #2] - 8031290: 827b strh r3, [r7, #18] + 80311f6: 68fb ldr r3, [r7, #12] + 80311f8: f9b3 3002 ldrsh.w r3, [r3, #2] + 80311fc: 827b strh r3, [r7, #18] corner_area.y2 = a_p->y1 + radius; - 8031292: 68fb ldr r3, [r7, #12] - 8031294: f9b3 3002 ldrsh.w r3, [r3, #2] - 8031298: b29a uxth r2, r3 - 803129a: 88fb ldrh r3, [r7, #6] - 803129c: 4413 add r3, r2 - 803129e: b29b uxth r3, r3 - 80312a0: b21b sxth r3, r3 - 80312a2: 82fb strh r3, [r7, #22] + 80311fe: 68fb ldr r3, [r7, #12] + 8031200: f9b3 3002 ldrsh.w r3, [r3, #2] + 8031204: b29a uxth r2, r3 + 8031206: 88fb ldrh r3, [r7, #6] + 8031208: 4413 add r3, r2 + 803120a: b29b uxth r3, r3 + 803120c: b21b sxth r3, r3 + 803120e: 82fb strh r3, [r7, #22] if(_lv_area_is_point_on(&corner_area, p_p, 0)) { - 80312a4: f107 0310 add.w r3, r7, #16 - 80312a8: 2200 movs r2, #0 - 80312aa: 68b9 ldr r1, [r7, #8] - 80312ac: 4618 mov r0, r3 - 80312ae: f7ff ff86 bl 80311be <_lv_area_is_point_on> - 80312b2: 4603 mov r3, r0 - 80312b4: 2b00 cmp r3, #0 - 80312b6: d017 beq.n 80312e8 <_lv_area_is_point_on+0x12a> + 8031210: f107 0310 add.w r3, r7, #16 + 8031214: 2200 movs r2, #0 + 8031216: 68b9 ldr r1, [r7, #8] + 8031218: 4618 mov r0, r3 + 803121a: f7ff ff86 bl 803112a <_lv_area_is_point_on> + 803121e: 4603 mov r3, r0 + 8031220: 2b00 cmp r3, #0 + 8031222: d017 beq.n 8031254 <_lv_area_is_point_on+0x12a> corner_area.x2 += radius; - 80312b8: f9b7 3014 ldrsh.w r3, [r7, #20] - 80312bc: b29a uxth r2, r3 - 80312be: 88fb ldrh r3, [r7, #6] - 80312c0: 4413 add r3, r2 - 80312c2: b29b uxth r3, r3 - 80312c4: b21b sxth r3, r3 - 80312c6: 82bb strh r3, [r7, #20] + 8031224: f9b7 3014 ldrsh.w r3, [r7, #20] + 8031228: b29a uxth r2, r3 + 803122a: 88fb ldrh r3, [r7, #6] + 803122c: 4413 add r3, r2 + 803122e: b29b uxth r3, r3 + 8031230: b21b sxth r3, r3 + 8031232: 82bb strh r3, [r7, #20] corner_area.y2 += radius; - 80312c8: f9b7 3016 ldrsh.w r3, [r7, #22] - 80312cc: b29a uxth r2, r3 - 80312ce: 88fb ldrh r3, [r7, #6] - 80312d0: 4413 add r3, r2 - 80312d2: b29b uxth r3, r3 - 80312d4: b21b sxth r3, r3 - 80312d6: 82fb strh r3, [r7, #22] + 8031234: f9b7 3016 ldrsh.w r3, [r7, #22] + 8031238: b29a uxth r2, r3 + 803123a: 88fb ldrh r3, [r7, #6] + 803123c: 4413 add r3, r2 + 803123e: b29b uxth r3, r3 + 8031240: b21b sxth r3, r3 + 8031242: 82fb strh r3, [r7, #22] return lv_point_within_circle(&corner_area, p_p); - 80312d8: f107 0310 add.w r3, r7, #16 - 80312dc: 68b9 ldr r1, [r7, #8] - 80312de: 4618 mov r0, r3 - 80312e0: f000 f9e7 bl 80316b2 - 80312e4: 4603 mov r3, r0 - 80312e6: e08d b.n 8031404 <_lv_area_is_point_on+0x246> + 8031244: f107 0310 add.w r3, r7, #16 + 8031248: 68b9 ldr r1, [r7, #8] + 803124a: 4618 mov r0, r3 + 803124c: f000 f9e7 bl 803161e + 8031250: 4603 mov r3, r0 + 8031252: e08d b.n 8031370 <_lv_area_is_point_on+0x246> } /*Bottom left*/ corner_area.y1 = a_p->y2 - radius; - 80312e8: 68fb ldr r3, [r7, #12] - 80312ea: f9b3 3006 ldrsh.w r3, [r3, #6] - 80312ee: b29a uxth r2, r3 - 80312f0: 88fb ldrh r3, [r7, #6] - 80312f2: 1ad3 subs r3, r2, r3 - 80312f4: b29b uxth r3, r3 - 80312f6: b21b sxth r3, r3 - 80312f8: 827b strh r3, [r7, #18] + 8031254: 68fb ldr r3, [r7, #12] + 8031256: f9b3 3006 ldrsh.w r3, [r3, #6] + 803125a: b29a uxth r2, r3 + 803125c: 88fb ldrh r3, [r7, #6] + 803125e: 1ad3 subs r3, r2, r3 + 8031260: b29b uxth r3, r3 + 8031262: b21b sxth r3, r3 + 8031264: 827b strh r3, [r7, #18] corner_area.y2 = a_p->y2; - 80312fa: 68fb ldr r3, [r7, #12] - 80312fc: f9b3 3006 ldrsh.w r3, [r3, #6] - 8031300: 82fb strh r3, [r7, #22] + 8031266: 68fb ldr r3, [r7, #12] + 8031268: f9b3 3006 ldrsh.w r3, [r3, #6] + 803126c: 82fb strh r3, [r7, #22] if(_lv_area_is_point_on(&corner_area, p_p, 0)) { - 8031302: f107 0310 add.w r3, r7, #16 - 8031306: 2200 movs r2, #0 - 8031308: 68b9 ldr r1, [r7, #8] - 803130a: 4618 mov r0, r3 - 803130c: f7ff ff57 bl 80311be <_lv_area_is_point_on> - 8031310: 4603 mov r3, r0 - 8031312: 2b00 cmp r3, #0 - 8031314: d017 beq.n 8031346 <_lv_area_is_point_on+0x188> + 803126e: f107 0310 add.w r3, r7, #16 + 8031272: 2200 movs r2, #0 + 8031274: 68b9 ldr r1, [r7, #8] + 8031276: 4618 mov r0, r3 + 8031278: f7ff ff57 bl 803112a <_lv_area_is_point_on> + 803127c: 4603 mov r3, r0 + 803127e: 2b00 cmp r3, #0 + 8031280: d017 beq.n 80312b2 <_lv_area_is_point_on+0x188> corner_area.x2 += radius; - 8031316: f9b7 3014 ldrsh.w r3, [r7, #20] - 803131a: b29a uxth r2, r3 - 803131c: 88fb ldrh r3, [r7, #6] - 803131e: 4413 add r3, r2 - 8031320: b29b uxth r3, r3 - 8031322: b21b sxth r3, r3 - 8031324: 82bb strh r3, [r7, #20] + 8031282: f9b7 3014 ldrsh.w r3, [r7, #20] + 8031286: b29a uxth r2, r3 + 8031288: 88fb ldrh r3, [r7, #6] + 803128a: 4413 add r3, r2 + 803128c: b29b uxth r3, r3 + 803128e: b21b sxth r3, r3 + 8031290: 82bb strh r3, [r7, #20] corner_area.y1 -= radius; - 8031326: f9b7 3012 ldrsh.w r3, [r7, #18] - 803132a: b29a uxth r2, r3 - 803132c: 88fb ldrh r3, [r7, #6] - 803132e: 1ad3 subs r3, r2, r3 - 8031330: b29b uxth r3, r3 - 8031332: b21b sxth r3, r3 - 8031334: 827b strh r3, [r7, #18] + 8031292: f9b7 3012 ldrsh.w r3, [r7, #18] + 8031296: b29a uxth r2, r3 + 8031298: 88fb ldrh r3, [r7, #6] + 803129a: 1ad3 subs r3, r2, r3 + 803129c: b29b uxth r3, r3 + 803129e: b21b sxth r3, r3 + 80312a0: 827b strh r3, [r7, #18] return lv_point_within_circle(&corner_area, p_p); - 8031336: f107 0310 add.w r3, r7, #16 - 803133a: 68b9 ldr r1, [r7, #8] - 803133c: 4618 mov r0, r3 - 803133e: f000 f9b8 bl 80316b2 - 8031342: 4603 mov r3, r0 - 8031344: e05e b.n 8031404 <_lv_area_is_point_on+0x246> + 80312a2: f107 0310 add.w r3, r7, #16 + 80312a6: 68b9 ldr r1, [r7, #8] + 80312a8: 4618 mov r0, r3 + 80312aa: f000 f9b8 bl 803161e + 80312ae: 4603 mov r3, r0 + 80312b0: e05e b.n 8031370 <_lv_area_is_point_on+0x246> } /*Bottom right*/ corner_area.x1 = a_p->x2 - radius; - 8031346: 68fb ldr r3, [r7, #12] - 8031348: f9b3 3004 ldrsh.w r3, [r3, #4] - 803134c: b29a uxth r2, r3 - 803134e: 88fb ldrh r3, [r7, #6] - 8031350: 1ad3 subs r3, r2, r3 - 8031352: b29b uxth r3, r3 - 8031354: b21b sxth r3, r3 - 8031356: 823b strh r3, [r7, #16] + 80312b2: 68fb ldr r3, [r7, #12] + 80312b4: f9b3 3004 ldrsh.w r3, [r3, #4] + 80312b8: b29a uxth r2, r3 + 80312ba: 88fb ldrh r3, [r7, #6] + 80312bc: 1ad3 subs r3, r2, r3 + 80312be: b29b uxth r3, r3 + 80312c0: b21b sxth r3, r3 + 80312c2: 823b strh r3, [r7, #16] corner_area.x2 = a_p->x2; - 8031358: 68fb ldr r3, [r7, #12] - 803135a: f9b3 3004 ldrsh.w r3, [r3, #4] - 803135e: 82bb strh r3, [r7, #20] + 80312c4: 68fb ldr r3, [r7, #12] + 80312c6: f9b3 3004 ldrsh.w r3, [r3, #4] + 80312ca: 82bb strh r3, [r7, #20] if(_lv_area_is_point_on(&corner_area, p_p, 0)) { - 8031360: f107 0310 add.w r3, r7, #16 - 8031364: 2200 movs r2, #0 - 8031366: 68b9 ldr r1, [r7, #8] - 8031368: 4618 mov r0, r3 - 803136a: f7ff ff28 bl 80311be <_lv_area_is_point_on> - 803136e: 4603 mov r3, r0 - 8031370: 2b00 cmp r3, #0 - 8031372: d017 beq.n 80313a4 <_lv_area_is_point_on+0x1e6> + 80312cc: f107 0310 add.w r3, r7, #16 + 80312d0: 2200 movs r2, #0 + 80312d2: 68b9 ldr r1, [r7, #8] + 80312d4: 4618 mov r0, r3 + 80312d6: f7ff ff28 bl 803112a <_lv_area_is_point_on> + 80312da: 4603 mov r3, r0 + 80312dc: 2b00 cmp r3, #0 + 80312de: d017 beq.n 8031310 <_lv_area_is_point_on+0x1e6> corner_area.x1 -= radius; - 8031374: f9b7 3010 ldrsh.w r3, [r7, #16] - 8031378: b29a uxth r2, r3 - 803137a: 88fb ldrh r3, [r7, #6] - 803137c: 1ad3 subs r3, r2, r3 - 803137e: b29b uxth r3, r3 - 8031380: b21b sxth r3, r3 - 8031382: 823b strh r3, [r7, #16] + 80312e0: f9b7 3010 ldrsh.w r3, [r7, #16] + 80312e4: b29a uxth r2, r3 + 80312e6: 88fb ldrh r3, [r7, #6] + 80312e8: 1ad3 subs r3, r2, r3 + 80312ea: b29b uxth r3, r3 + 80312ec: b21b sxth r3, r3 + 80312ee: 823b strh r3, [r7, #16] corner_area.y1 -= radius; - 8031384: f9b7 3012 ldrsh.w r3, [r7, #18] - 8031388: b29a uxth r2, r3 - 803138a: 88fb ldrh r3, [r7, #6] - 803138c: 1ad3 subs r3, r2, r3 - 803138e: b29b uxth r3, r3 - 8031390: b21b sxth r3, r3 - 8031392: 827b strh r3, [r7, #18] + 80312f0: f9b7 3012 ldrsh.w r3, [r7, #18] + 80312f4: b29a uxth r2, r3 + 80312f6: 88fb ldrh r3, [r7, #6] + 80312f8: 1ad3 subs r3, r2, r3 + 80312fa: b29b uxth r3, r3 + 80312fc: b21b sxth r3, r3 + 80312fe: 827b strh r3, [r7, #18] return lv_point_within_circle(&corner_area, p_p); - 8031394: f107 0310 add.w r3, r7, #16 - 8031398: 68b9 ldr r1, [r7, #8] - 803139a: 4618 mov r0, r3 - 803139c: f000 f989 bl 80316b2 - 80313a0: 4603 mov r3, r0 - 80313a2: e02f b.n 8031404 <_lv_area_is_point_on+0x246> + 8031300: f107 0310 add.w r3, r7, #16 + 8031304: 68b9 ldr r1, [r7, #8] + 8031306: 4618 mov r0, r3 + 8031308: f000 f989 bl 803161e + 803130c: 4603 mov r3, r0 + 803130e: e02f b.n 8031370 <_lv_area_is_point_on+0x246> } /*Top right*/ corner_area.y1 = a_p->y1; - 80313a4: 68fb ldr r3, [r7, #12] - 80313a6: f9b3 3002 ldrsh.w r3, [r3, #2] - 80313aa: 827b strh r3, [r7, #18] + 8031310: 68fb ldr r3, [r7, #12] + 8031312: f9b3 3002 ldrsh.w r3, [r3, #2] + 8031316: 827b strh r3, [r7, #18] corner_area.y2 = a_p->y1 + radius; - 80313ac: 68fb ldr r3, [r7, #12] - 80313ae: f9b3 3002 ldrsh.w r3, [r3, #2] - 80313b2: b29a uxth r2, r3 - 80313b4: 88fb ldrh r3, [r7, #6] - 80313b6: 4413 add r3, r2 - 80313b8: b29b uxth r3, r3 - 80313ba: b21b sxth r3, r3 - 80313bc: 82fb strh r3, [r7, #22] + 8031318: 68fb ldr r3, [r7, #12] + 803131a: f9b3 3002 ldrsh.w r3, [r3, #2] + 803131e: b29a uxth r2, r3 + 8031320: 88fb ldrh r3, [r7, #6] + 8031322: 4413 add r3, r2 + 8031324: b29b uxth r3, r3 + 8031326: b21b sxth r3, r3 + 8031328: 82fb strh r3, [r7, #22] if(_lv_area_is_point_on(&corner_area, p_p, 0)) { - 80313be: f107 0310 add.w r3, r7, #16 - 80313c2: 2200 movs r2, #0 - 80313c4: 68b9 ldr r1, [r7, #8] - 80313c6: 4618 mov r0, r3 - 80313c8: f7ff fef9 bl 80311be <_lv_area_is_point_on> - 80313cc: 4603 mov r3, r0 - 80313ce: 2b00 cmp r3, #0 - 80313d0: d017 beq.n 8031402 <_lv_area_is_point_on+0x244> + 803132a: f107 0310 add.w r3, r7, #16 + 803132e: 2200 movs r2, #0 + 8031330: 68b9 ldr r1, [r7, #8] + 8031332: 4618 mov r0, r3 + 8031334: f7ff fef9 bl 803112a <_lv_area_is_point_on> + 8031338: 4603 mov r3, r0 + 803133a: 2b00 cmp r3, #0 + 803133c: d017 beq.n 803136e <_lv_area_is_point_on+0x244> corner_area.x1 -= radius; - 80313d2: f9b7 3010 ldrsh.w r3, [r7, #16] - 80313d6: b29a uxth r2, r3 - 80313d8: 88fb ldrh r3, [r7, #6] - 80313da: 1ad3 subs r3, r2, r3 - 80313dc: b29b uxth r3, r3 - 80313de: b21b sxth r3, r3 - 80313e0: 823b strh r3, [r7, #16] + 803133e: f9b7 3010 ldrsh.w r3, [r7, #16] + 8031342: b29a uxth r2, r3 + 8031344: 88fb ldrh r3, [r7, #6] + 8031346: 1ad3 subs r3, r2, r3 + 8031348: b29b uxth r3, r3 + 803134a: b21b sxth r3, r3 + 803134c: 823b strh r3, [r7, #16] corner_area.y2 += radius; - 80313e2: f9b7 3016 ldrsh.w r3, [r7, #22] - 80313e6: b29a uxth r2, r3 - 80313e8: 88fb ldrh r3, [r7, #6] - 80313ea: 4413 add r3, r2 - 80313ec: b29b uxth r3, r3 - 80313ee: b21b sxth r3, r3 - 80313f0: 82fb strh r3, [r7, #22] + 803134e: f9b7 3016 ldrsh.w r3, [r7, #22] + 8031352: b29a uxth r2, r3 + 8031354: 88fb ldrh r3, [r7, #6] + 8031356: 4413 add r3, r2 + 8031358: b29b uxth r3, r3 + 803135a: b21b sxth r3, r3 + 803135c: 82fb strh r3, [r7, #22] return lv_point_within_circle(&corner_area, p_p); - 80313f2: f107 0310 add.w r3, r7, #16 - 80313f6: 68b9 ldr r1, [r7, #8] - 80313f8: 4618 mov r0, r3 - 80313fa: f000 f95a bl 80316b2 - 80313fe: 4603 mov r3, r0 - 8031400: e000 b.n 8031404 <_lv_area_is_point_on+0x246> + 803135e: f107 0310 add.w r3, r7, #16 + 8031362: 68b9 ldr r1, [r7, #8] + 8031364: 4618 mov r0, r3 + 8031366: f000 f95a bl 803161e + 803136a: 4603 mov r3, r0 + 803136c: e000 b.n 8031370 <_lv_area_is_point_on+0x246> } /*Not within corners*/ return true; - 8031402: 2301 movs r3, #1 + 803136e: 2301 movs r3, #1 } - 8031404: 4618 mov r0, r3 - 8031406: 3720 adds r7, #32 - 8031408: 46bd mov sp, r7 - 803140a: bd80 pop {r7, pc} + 8031370: 4618 mov r0, r3 + 8031372: 3720 adds r7, #32 + 8031374: 46bd mov sp, r7 + 8031376: bd80 pop {r7, pc} -0803140c <_lv_area_is_on>: +08031378 <_lv_area_is_on>: * @param a1_p pointer to an area. * @param a2_p pointer to an other area * @return false: a1_p and a2_p has no common parts */ bool _lv_area_is_on(const lv_area_t * a1_p, const lv_area_t * a2_p) { - 803140c: b480 push {r7} - 803140e: b083 sub sp, #12 - 8031410: af00 add r7, sp, #0 - 8031412: 6078 str r0, [r7, #4] - 8031414: 6039 str r1, [r7, #0] + 8031378: b480 push {r7} + 803137a: b083 sub sp, #12 + 803137c: af00 add r7, sp, #0 + 803137e: 6078 str r0, [r7, #4] + 8031380: 6039 str r1, [r7, #0] if((a1_p->x1 <= a2_p->x2) && (a1_p->x2 >= a2_p->x1) && (a1_p->y1 <= a2_p->y2) && (a1_p->y2 >= a2_p->y1)) { - 8031416: 687b ldr r3, [r7, #4] - 8031418: f9b3 2000 ldrsh.w r2, [r3] - 803141c: 683b ldr r3, [r7, #0] - 803141e: f9b3 3004 ldrsh.w r3, [r3, #4] - 8031422: 429a cmp r2, r3 - 8031424: dc19 bgt.n 803145a <_lv_area_is_on+0x4e> - 8031426: 687b ldr r3, [r7, #4] - 8031428: f9b3 2004 ldrsh.w r2, [r3, #4] - 803142c: 683b ldr r3, [r7, #0] - 803142e: f9b3 3000 ldrsh.w r3, [r3] - 8031432: 429a cmp r2, r3 - 8031434: db11 blt.n 803145a <_lv_area_is_on+0x4e> - 8031436: 687b ldr r3, [r7, #4] - 8031438: f9b3 2002 ldrsh.w r2, [r3, #2] - 803143c: 683b ldr r3, [r7, #0] - 803143e: f9b3 3006 ldrsh.w r3, [r3, #6] - 8031442: 429a cmp r2, r3 - 8031444: dc09 bgt.n 803145a <_lv_area_is_on+0x4e> - 8031446: 687b ldr r3, [r7, #4] - 8031448: f9b3 2006 ldrsh.w r2, [r3, #6] - 803144c: 683b ldr r3, [r7, #0] - 803144e: f9b3 3002 ldrsh.w r3, [r3, #2] - 8031452: 429a cmp r2, r3 - 8031454: db01 blt.n 803145a <_lv_area_is_on+0x4e> + 8031382: 687b ldr r3, [r7, #4] + 8031384: f9b3 2000 ldrsh.w r2, [r3] + 8031388: 683b ldr r3, [r7, #0] + 803138a: f9b3 3004 ldrsh.w r3, [r3, #4] + 803138e: 429a cmp r2, r3 + 8031390: dc19 bgt.n 80313c6 <_lv_area_is_on+0x4e> + 8031392: 687b ldr r3, [r7, #4] + 8031394: f9b3 2004 ldrsh.w r2, [r3, #4] + 8031398: 683b ldr r3, [r7, #0] + 803139a: f9b3 3000 ldrsh.w r3, [r3] + 803139e: 429a cmp r2, r3 + 80313a0: db11 blt.n 80313c6 <_lv_area_is_on+0x4e> + 80313a2: 687b ldr r3, [r7, #4] + 80313a4: f9b3 2002 ldrsh.w r2, [r3, #2] + 80313a8: 683b ldr r3, [r7, #0] + 80313aa: f9b3 3006 ldrsh.w r3, [r3, #6] + 80313ae: 429a cmp r2, r3 + 80313b0: dc09 bgt.n 80313c6 <_lv_area_is_on+0x4e> + 80313b2: 687b ldr r3, [r7, #4] + 80313b4: f9b3 2006 ldrsh.w r2, [r3, #6] + 80313b8: 683b ldr r3, [r7, #0] + 80313ba: f9b3 3002 ldrsh.w r3, [r3, #2] + 80313be: 429a cmp r2, r3 + 80313c0: db01 blt.n 80313c6 <_lv_area_is_on+0x4e> return true; - 8031456: 2301 movs r3, #1 - 8031458: e000 b.n 803145c <_lv_area_is_on+0x50> + 80313c2: 2301 movs r3, #1 + 80313c4: e000 b.n 80313c8 <_lv_area_is_on+0x50> } else { return false; - 803145a: 2300 movs r3, #0 + 80313c6: 2300 movs r3, #0 } } - 803145c: 4618 mov r0, r3 - 803145e: 370c adds r7, #12 - 8031460: 46bd mov sp, r7 - 8031462: bc80 pop {r7} - 8031464: 4770 bx lr + 80313c8: 4618 mov r0, r3 + 80313ca: 370c adds r7, #12 + 80313cc: 46bd mov sp, r7 + 80313ce: bc80 pop {r7} + 80313d0: 4770 bx lr -08031466 <_lv_area_is_in>: +080313d2 <_lv_area_is_in>: * @param aholder_p pointer to an area which could involve 'ain_p' * @param radius radius of `aholder_p` (e.g. for rounded rectangle) * @return true: `ain_p` is fully inside `aholder_p` */ bool _lv_area_is_in(const lv_area_t * ain_p, const lv_area_t * aholder_p, lv_coord_t radius) { - 8031466: b580 push {r7, lr} - 8031468: b086 sub sp, #24 - 803146a: af00 add r7, sp, #0 - 803146c: 60f8 str r0, [r7, #12] - 803146e: 60b9 str r1, [r7, #8] - 8031470: 4613 mov r3, r2 - 8031472: 80fb strh r3, [r7, #6] + 80313d2: b580 push {r7, lr} + 80313d4: b086 sub sp, #24 + 80313d6: af00 add r7, sp, #0 + 80313d8: 60f8 str r0, [r7, #12] + 80313da: 60b9 str r1, [r7, #8] + 80313dc: 4613 mov r3, r2 + 80313de: 80fb strh r3, [r7, #6] bool is_in = false; - 8031474: 2300 movs r3, #0 - 8031476: 75fb strb r3, [r7, #23] + 80313e0: 2300 movs r3, #0 + 80313e2: 75fb strb r3, [r7, #23] if(ain_p->x1 >= aholder_p->x1 && ain_p->y1 >= aholder_p->y1 && ain_p->x2 <= aholder_p->x2 && - 8031478: 68fb ldr r3, [r7, #12] - 803147a: f9b3 2000 ldrsh.w r2, [r3] - 803147e: 68bb ldr r3, [r7, #8] - 8031480: f9b3 3000 ldrsh.w r3, [r3] - 8031484: 429a cmp r2, r3 - 8031486: db19 blt.n 80314bc <_lv_area_is_in+0x56> - 8031488: 68fb ldr r3, [r7, #12] - 803148a: f9b3 2002 ldrsh.w r2, [r3, #2] - 803148e: 68bb ldr r3, [r7, #8] - 8031490: f9b3 3002 ldrsh.w r3, [r3, #2] - 8031494: 429a cmp r2, r3 - 8031496: db11 blt.n 80314bc <_lv_area_is_in+0x56> - 8031498: 68fb ldr r3, [r7, #12] - 803149a: f9b3 2004 ldrsh.w r2, [r3, #4] - 803149e: 68bb ldr r3, [r7, #8] - 80314a0: f9b3 3004 ldrsh.w r3, [r3, #4] - 80314a4: 429a cmp r2, r3 - 80314a6: dc09 bgt.n 80314bc <_lv_area_is_in+0x56> + 80313e4: 68fb ldr r3, [r7, #12] + 80313e6: f9b3 2000 ldrsh.w r2, [r3] + 80313ea: 68bb ldr r3, [r7, #8] + 80313ec: f9b3 3000 ldrsh.w r3, [r3] + 80313f0: 429a cmp r2, r3 + 80313f2: db19 blt.n 8031428 <_lv_area_is_in+0x56> + 80313f4: 68fb ldr r3, [r7, #12] + 80313f6: f9b3 2002 ldrsh.w r2, [r3, #2] + 80313fa: 68bb ldr r3, [r7, #8] + 80313fc: f9b3 3002 ldrsh.w r3, [r3, #2] + 8031400: 429a cmp r2, r3 + 8031402: db11 blt.n 8031428 <_lv_area_is_in+0x56> + 8031404: 68fb ldr r3, [r7, #12] + 8031406: f9b3 2004 ldrsh.w r2, [r3, #4] + 803140a: 68bb ldr r3, [r7, #8] + 803140c: f9b3 3004 ldrsh.w r3, [r3, #4] + 8031410: 429a cmp r2, r3 + 8031412: dc09 bgt.n 8031428 <_lv_area_is_in+0x56> ain_p->y2 <= aholder_p->y2) { - 80314a8: 68fb ldr r3, [r7, #12] - 80314aa: f9b3 2006 ldrsh.w r2, [r3, #6] - 80314ae: 68bb ldr r3, [r7, #8] - 80314b0: f9b3 3006 ldrsh.w r3, [r3, #6] + 8031414: 68fb ldr r3, [r7, #12] + 8031416: f9b3 2006 ldrsh.w r2, [r3, #6] + 803141a: 68bb ldr r3, [r7, #8] + 803141c: f9b3 3006 ldrsh.w r3, [r3, #6] if(ain_p->x1 >= aholder_p->x1 && ain_p->y1 >= aholder_p->y1 && ain_p->x2 <= aholder_p->x2 && - 80314b4: 429a cmp r2, r3 - 80314b6: dc01 bgt.n 80314bc <_lv_area_is_in+0x56> + 8031420: 429a cmp r2, r3 + 8031422: dc01 bgt.n 8031428 <_lv_area_is_in+0x56> is_in = true; - 80314b8: 2301 movs r3, #1 - 80314ba: 75fb strb r3, [r7, #23] + 8031424: 2301 movs r3, #1 + 8031426: 75fb strb r3, [r7, #23] } if(!is_in) return false; - 80314bc: 7dfb ldrb r3, [r7, #23] - 80314be: f083 0301 eor.w r3, r3, #1 - 80314c2: b2db uxtb r3, r3 - 80314c4: 2b00 cmp r3, #0 - 80314c6: d001 beq.n 80314cc <_lv_area_is_in+0x66> - 80314c8: 2300 movs r3, #0 - 80314ca: e066 b.n 803159a <_lv_area_is_in+0x134> + 8031428: 7dfb ldrb r3, [r7, #23] + 803142a: f083 0301 eor.w r3, r3, #1 + 803142e: b2db uxtb r3, r3 + 8031430: 2b00 cmp r3, #0 + 8031432: d001 beq.n 8031438 <_lv_area_is_in+0x66> + 8031434: 2300 movs r3, #0 + 8031436: e066 b.n 8031506 <_lv_area_is_in+0x134> if(radius == 0) return true; - 80314cc: f9b7 3006 ldrsh.w r3, [r7, #6] - 80314d0: 2b00 cmp r3, #0 - 80314d2: d101 bne.n 80314d8 <_lv_area_is_in+0x72> - 80314d4: 2301 movs r3, #1 - 80314d6: e060 b.n 803159a <_lv_area_is_in+0x134> + 8031438: f9b7 3006 ldrsh.w r3, [r7, #6] + 803143c: 2b00 cmp r3, #0 + 803143e: d101 bne.n 8031444 <_lv_area_is_in+0x72> + 8031440: 2301 movs r3, #1 + 8031442: e060 b.n 8031506 <_lv_area_is_in+0x134> /*Check if the corner points are inside the radius or not*/ lv_point_t p; p.x = ain_p->x1; - 80314d8: 68fb ldr r3, [r7, #12] - 80314da: f9b3 3000 ldrsh.w r3, [r3] - 80314de: 823b strh r3, [r7, #16] + 8031444: 68fb ldr r3, [r7, #12] + 8031446: f9b3 3000 ldrsh.w r3, [r3] + 803144a: 823b strh r3, [r7, #16] p.y = ain_p->y1; - 80314e0: 68fb ldr r3, [r7, #12] - 80314e2: f9b3 3002 ldrsh.w r3, [r3, #2] - 80314e6: 827b strh r3, [r7, #18] + 803144c: 68fb ldr r3, [r7, #12] + 803144e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8031452: 827b strh r3, [r7, #18] if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; - 80314e8: f9b7 2006 ldrsh.w r2, [r7, #6] - 80314ec: f107 0310 add.w r3, r7, #16 - 80314f0: 4619 mov r1, r3 - 80314f2: 68b8 ldr r0, [r7, #8] - 80314f4: f7ff fe63 bl 80311be <_lv_area_is_point_on> - 80314f8: 4603 mov r3, r0 - 80314fa: f083 0301 eor.w r3, r3, #1 - 80314fe: b2db uxtb r3, r3 - 8031500: 2b00 cmp r3, #0 - 8031502: d001 beq.n 8031508 <_lv_area_is_in+0xa2> - 8031504: 2300 movs r3, #0 - 8031506: e048 b.n 803159a <_lv_area_is_in+0x134> + 8031454: f9b7 2006 ldrsh.w r2, [r7, #6] + 8031458: f107 0310 add.w r3, r7, #16 + 803145c: 4619 mov r1, r3 + 803145e: 68b8 ldr r0, [r7, #8] + 8031460: f7ff fe63 bl 803112a <_lv_area_is_point_on> + 8031464: 4603 mov r3, r0 + 8031466: f083 0301 eor.w r3, r3, #1 + 803146a: b2db uxtb r3, r3 + 803146c: 2b00 cmp r3, #0 + 803146e: d001 beq.n 8031474 <_lv_area_is_in+0xa2> + 8031470: 2300 movs r3, #0 + 8031472: e048 b.n 8031506 <_lv_area_is_in+0x134> p.x = ain_p->x2; - 8031508: 68fb ldr r3, [r7, #12] - 803150a: f9b3 3004 ldrsh.w r3, [r3, #4] - 803150e: 823b strh r3, [r7, #16] + 8031474: 68fb ldr r3, [r7, #12] + 8031476: f9b3 3004 ldrsh.w r3, [r3, #4] + 803147a: 823b strh r3, [r7, #16] p.y = ain_p->y1; - 8031510: 68fb ldr r3, [r7, #12] - 8031512: f9b3 3002 ldrsh.w r3, [r3, #2] - 8031516: 827b strh r3, [r7, #18] + 803147c: 68fb ldr r3, [r7, #12] + 803147e: f9b3 3002 ldrsh.w r3, [r3, #2] + 8031482: 827b strh r3, [r7, #18] if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; - 8031518: f9b7 2006 ldrsh.w r2, [r7, #6] - 803151c: f107 0310 add.w r3, r7, #16 - 8031520: 4619 mov r1, r3 - 8031522: 68b8 ldr r0, [r7, #8] - 8031524: f7ff fe4b bl 80311be <_lv_area_is_point_on> - 8031528: 4603 mov r3, r0 - 803152a: f083 0301 eor.w r3, r3, #1 - 803152e: b2db uxtb r3, r3 - 8031530: 2b00 cmp r3, #0 - 8031532: d001 beq.n 8031538 <_lv_area_is_in+0xd2> - 8031534: 2300 movs r3, #0 - 8031536: e030 b.n 803159a <_lv_area_is_in+0x134> + 8031484: f9b7 2006 ldrsh.w r2, [r7, #6] + 8031488: f107 0310 add.w r3, r7, #16 + 803148c: 4619 mov r1, r3 + 803148e: 68b8 ldr r0, [r7, #8] + 8031490: f7ff fe4b bl 803112a <_lv_area_is_point_on> + 8031494: 4603 mov r3, r0 + 8031496: f083 0301 eor.w r3, r3, #1 + 803149a: b2db uxtb r3, r3 + 803149c: 2b00 cmp r3, #0 + 803149e: d001 beq.n 80314a4 <_lv_area_is_in+0xd2> + 80314a0: 2300 movs r3, #0 + 80314a2: e030 b.n 8031506 <_lv_area_is_in+0x134> p.x = ain_p->x1; - 8031538: 68fb ldr r3, [r7, #12] - 803153a: f9b3 3000 ldrsh.w r3, [r3] - 803153e: 823b strh r3, [r7, #16] + 80314a4: 68fb ldr r3, [r7, #12] + 80314a6: f9b3 3000 ldrsh.w r3, [r3] + 80314aa: 823b strh r3, [r7, #16] p.y = ain_p->y2; - 8031540: 68fb ldr r3, [r7, #12] - 8031542: f9b3 3006 ldrsh.w r3, [r3, #6] - 8031546: 827b strh r3, [r7, #18] + 80314ac: 68fb ldr r3, [r7, #12] + 80314ae: f9b3 3006 ldrsh.w r3, [r3, #6] + 80314b2: 827b strh r3, [r7, #18] if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; - 8031548: f9b7 2006 ldrsh.w r2, [r7, #6] - 803154c: f107 0310 add.w r3, r7, #16 - 8031550: 4619 mov r1, r3 - 8031552: 68b8 ldr r0, [r7, #8] - 8031554: f7ff fe33 bl 80311be <_lv_area_is_point_on> - 8031558: 4603 mov r3, r0 - 803155a: f083 0301 eor.w r3, r3, #1 - 803155e: b2db uxtb r3, r3 - 8031560: 2b00 cmp r3, #0 - 8031562: d001 beq.n 8031568 <_lv_area_is_in+0x102> - 8031564: 2300 movs r3, #0 - 8031566: e018 b.n 803159a <_lv_area_is_in+0x134> + 80314b4: f9b7 2006 ldrsh.w r2, [r7, #6] + 80314b8: f107 0310 add.w r3, r7, #16 + 80314bc: 4619 mov r1, r3 + 80314be: 68b8 ldr r0, [r7, #8] + 80314c0: f7ff fe33 bl 803112a <_lv_area_is_point_on> + 80314c4: 4603 mov r3, r0 + 80314c6: f083 0301 eor.w r3, r3, #1 + 80314ca: b2db uxtb r3, r3 + 80314cc: 2b00 cmp r3, #0 + 80314ce: d001 beq.n 80314d4 <_lv_area_is_in+0x102> + 80314d0: 2300 movs r3, #0 + 80314d2: e018 b.n 8031506 <_lv_area_is_in+0x134> p.x = ain_p->x2; - 8031568: 68fb ldr r3, [r7, #12] - 803156a: f9b3 3004 ldrsh.w r3, [r3, #4] - 803156e: 823b strh r3, [r7, #16] + 80314d4: 68fb ldr r3, [r7, #12] + 80314d6: f9b3 3004 ldrsh.w r3, [r3, #4] + 80314da: 823b strh r3, [r7, #16] p.y = ain_p->y2; - 8031570: 68fb ldr r3, [r7, #12] - 8031572: f9b3 3006 ldrsh.w r3, [r3, #6] - 8031576: 827b strh r3, [r7, #18] + 80314dc: 68fb ldr r3, [r7, #12] + 80314de: f9b3 3006 ldrsh.w r3, [r3, #6] + 80314e2: 827b strh r3, [r7, #18] if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; - 8031578: f9b7 2006 ldrsh.w r2, [r7, #6] - 803157c: f107 0310 add.w r3, r7, #16 - 8031580: 4619 mov r1, r3 - 8031582: 68b8 ldr r0, [r7, #8] - 8031584: f7ff fe1b bl 80311be <_lv_area_is_point_on> - 8031588: 4603 mov r3, r0 - 803158a: f083 0301 eor.w r3, r3, #1 - 803158e: b2db uxtb r3, r3 - 8031590: 2b00 cmp r3, #0 - 8031592: d001 beq.n 8031598 <_lv_area_is_in+0x132> - 8031594: 2300 movs r3, #0 - 8031596: e000 b.n 803159a <_lv_area_is_in+0x134> + 80314e4: f9b7 2006 ldrsh.w r2, [r7, #6] + 80314e8: f107 0310 add.w r3, r7, #16 + 80314ec: 4619 mov r1, r3 + 80314ee: 68b8 ldr r0, [r7, #8] + 80314f0: f7ff fe1b bl 803112a <_lv_area_is_point_on> + 80314f4: 4603 mov r3, r0 + 80314f6: f083 0301 eor.w r3, r3, #1 + 80314fa: b2db uxtb r3, r3 + 80314fc: 2b00 cmp r3, #0 + 80314fe: d001 beq.n 8031504 <_lv_area_is_in+0x132> + 8031500: 2300 movs r3, #0 + 8031502: e000 b.n 8031506 <_lv_area_is_in+0x134> return true; - 8031598: 2301 movs r3, #1 + 8031504: 2301 movs r3, #1 } - 803159a: 4618 mov r0, r3 - 803159c: 3718 adds r7, #24 - 803159e: 46bd mov sp, r7 - 80315a0: bd80 pop {r7, pc} + 8031506: 4618 mov r0, r3 + 8031508: 3718 adds r7, #24 + 803150a: 46bd mov sp, r7 + 803150c: bd80 pop {r7, pc} -080315a2 <_lv_area_is_out>: +0803150e <_lv_area_is_out>: * @param aholder_p pointer to an area which could involve 'ain_p' * @param radius radius of `aholder_p` (e.g. for rounded rectangle) * @return true: `aout_p` is fully outside `aholder_p` */ bool _lv_area_is_out(const lv_area_t * aout_p, const lv_area_t * aholder_p, lv_coord_t radius) { - 80315a2: b580 push {r7, lr} - 80315a4: b086 sub sp, #24 - 80315a6: af00 add r7, sp, #0 - 80315a8: 60f8 str r0, [r7, #12] - 80315aa: 60b9 str r1, [r7, #8] - 80315ac: 4613 mov r3, r2 - 80315ae: 80fb strh r3, [r7, #6] + 803150e: b580 push {r7, lr} + 8031510: b086 sub sp, #24 + 8031512: af00 add r7, sp, #0 + 8031514: 60f8 str r0, [r7, #12] + 8031516: 60b9 str r1, [r7, #8] + 8031518: 4613 mov r3, r2 + 803151a: 80fb strh r3, [r7, #6] if(aout_p->x2 < aholder_p->x1 || aout_p->y2 < aholder_p->y1 || aout_p->x1 > aholder_p->x2 || - 80315b0: 68fb ldr r3, [r7, #12] - 80315b2: f9b3 2004 ldrsh.w r2, [r3, #4] - 80315b6: 68bb ldr r3, [r7, #8] - 80315b8: f9b3 3000 ldrsh.w r3, [r3] - 80315bc: 429a cmp r2, r3 - 80315be: db17 blt.n 80315f0 <_lv_area_is_out+0x4e> - 80315c0: 68fb ldr r3, [r7, #12] - 80315c2: f9b3 2006 ldrsh.w r2, [r3, #6] - 80315c6: 68bb ldr r3, [r7, #8] - 80315c8: f9b3 3002 ldrsh.w r3, [r3, #2] - 80315cc: 429a cmp r2, r3 - 80315ce: db0f blt.n 80315f0 <_lv_area_is_out+0x4e> - 80315d0: 68fb ldr r3, [r7, #12] - 80315d2: f9b3 2000 ldrsh.w r2, [r3] - 80315d6: 68bb ldr r3, [r7, #8] - 80315d8: f9b3 3004 ldrsh.w r3, [r3, #4] - 80315dc: 429a cmp r2, r3 - 80315de: dc07 bgt.n 80315f0 <_lv_area_is_out+0x4e> + 803151c: 68fb ldr r3, [r7, #12] + 803151e: f9b3 2004 ldrsh.w r2, [r3, #4] + 8031522: 68bb ldr r3, [r7, #8] + 8031524: f9b3 3000 ldrsh.w r3, [r3] + 8031528: 429a cmp r2, r3 + 803152a: db17 blt.n 803155c <_lv_area_is_out+0x4e> + 803152c: 68fb ldr r3, [r7, #12] + 803152e: f9b3 2006 ldrsh.w r2, [r3, #6] + 8031532: 68bb ldr r3, [r7, #8] + 8031534: f9b3 3002 ldrsh.w r3, [r3, #2] + 8031538: 429a cmp r2, r3 + 803153a: db0f blt.n 803155c <_lv_area_is_out+0x4e> + 803153c: 68fb ldr r3, [r7, #12] + 803153e: f9b3 2000 ldrsh.w r2, [r3] + 8031542: 68bb ldr r3, [r7, #8] + 8031544: f9b3 3004 ldrsh.w r3, [r3, #4] + 8031548: 429a cmp r2, r3 + 803154a: dc07 bgt.n 803155c <_lv_area_is_out+0x4e> aout_p->y1 > aholder_p->y2) { - 80315e0: 68fb ldr r3, [r7, #12] - 80315e2: f9b3 2002 ldrsh.w r2, [r3, #2] - 80315e6: 68bb ldr r3, [r7, #8] - 80315e8: f9b3 3006 ldrsh.w r3, [r3, #6] + 803154c: 68fb ldr r3, [r7, #12] + 803154e: f9b3 2002 ldrsh.w r2, [r3, #2] + 8031552: 68bb ldr r3, [r7, #8] + 8031554: f9b3 3006 ldrsh.w r3, [r3, #6] if(aout_p->x2 < aholder_p->x1 || aout_p->y2 < aholder_p->y1 || aout_p->x1 > aholder_p->x2 || - 80315ec: 429a cmp r2, r3 - 80315ee: dd01 ble.n 80315f4 <_lv_area_is_out+0x52> + 8031558: 429a cmp r2, r3 + 803155a: dd01 ble.n 8031560 <_lv_area_is_out+0x52> return true; - 80315f0: 2301 movs r3, #1 - 80315f2: e05a b.n 80316aa <_lv_area_is_out+0x108> + 803155c: 2301 movs r3, #1 + 803155e: e05a b.n 8031616 <_lv_area_is_out+0x108> } if(radius == 0) return false; - 80315f4: f9b7 3006 ldrsh.w r3, [r7, #6] - 80315f8: 2b00 cmp r3, #0 - 80315fa: d101 bne.n 8031600 <_lv_area_is_out+0x5e> - 80315fc: 2300 movs r3, #0 - 80315fe: e054 b.n 80316aa <_lv_area_is_out+0x108> + 8031560: f9b7 3006 ldrsh.w r3, [r7, #6] + 8031564: 2b00 cmp r3, #0 + 8031566: d101 bne.n 803156c <_lv_area_is_out+0x5e> + 8031568: 2300 movs r3, #0 + 803156a: e054 b.n 8031616 <_lv_area_is_out+0x108> /*Check if the corner points are outside the radius or not*/ lv_point_t p; p.x = aout_p->x1; - 8031600: 68fb ldr r3, [r7, #12] - 8031602: f9b3 3000 ldrsh.w r3, [r3] - 8031606: 82bb strh r3, [r7, #20] + 803156c: 68fb ldr r3, [r7, #12] + 803156e: f9b3 3000 ldrsh.w r3, [r3] + 8031572: 82bb strh r3, [r7, #20] p.y = aout_p->y1; - 8031608: 68fb ldr r3, [r7, #12] - 803160a: f9b3 3002 ldrsh.w r3, [r3, #2] - 803160e: 82fb strh r3, [r7, #22] + 8031574: 68fb ldr r3, [r7, #12] + 8031576: f9b3 3002 ldrsh.w r3, [r3, #2] + 803157a: 82fb strh r3, [r7, #22] if(_lv_area_is_point_on(aholder_p, &p, radius)) return false; - 8031610: f9b7 2006 ldrsh.w r2, [r7, #6] - 8031614: f107 0314 add.w r3, r7, #20 - 8031618: 4619 mov r1, r3 - 803161a: 68b8 ldr r0, [r7, #8] - 803161c: f7ff fdcf bl 80311be <_lv_area_is_point_on> - 8031620: 4603 mov r3, r0 - 8031622: 2b00 cmp r3, #0 - 8031624: d001 beq.n 803162a <_lv_area_is_out+0x88> - 8031626: 2300 movs r3, #0 - 8031628: e03f b.n 80316aa <_lv_area_is_out+0x108> + 803157c: f9b7 2006 ldrsh.w r2, [r7, #6] + 8031580: f107 0314 add.w r3, r7, #20 + 8031584: 4619 mov r1, r3 + 8031586: 68b8 ldr r0, [r7, #8] + 8031588: f7ff fdcf bl 803112a <_lv_area_is_point_on> + 803158c: 4603 mov r3, r0 + 803158e: 2b00 cmp r3, #0 + 8031590: d001 beq.n 8031596 <_lv_area_is_out+0x88> + 8031592: 2300 movs r3, #0 + 8031594: e03f b.n 8031616 <_lv_area_is_out+0x108> p.x = aout_p->x2; - 803162a: 68fb ldr r3, [r7, #12] - 803162c: f9b3 3004 ldrsh.w r3, [r3, #4] - 8031630: 82bb strh r3, [r7, #20] + 8031596: 68fb ldr r3, [r7, #12] + 8031598: f9b3 3004 ldrsh.w r3, [r3, #4] + 803159c: 82bb strh r3, [r7, #20] p.y = aout_p->y1; - 8031632: 68fb ldr r3, [r7, #12] - 8031634: f9b3 3002 ldrsh.w r3, [r3, #2] - 8031638: 82fb strh r3, [r7, #22] + 803159e: 68fb ldr r3, [r7, #12] + 80315a0: f9b3 3002 ldrsh.w r3, [r3, #2] + 80315a4: 82fb strh r3, [r7, #22] if(_lv_area_is_point_on(aholder_p, &p, radius)) return false; - 803163a: f9b7 2006 ldrsh.w r2, [r7, #6] - 803163e: f107 0314 add.w r3, r7, #20 - 8031642: 4619 mov r1, r3 - 8031644: 68b8 ldr r0, [r7, #8] - 8031646: f7ff fdba bl 80311be <_lv_area_is_point_on> - 803164a: 4603 mov r3, r0 - 803164c: 2b00 cmp r3, #0 - 803164e: d001 beq.n 8031654 <_lv_area_is_out+0xb2> - 8031650: 2300 movs r3, #0 - 8031652: e02a b.n 80316aa <_lv_area_is_out+0x108> + 80315a6: f9b7 2006 ldrsh.w r2, [r7, #6] + 80315aa: f107 0314 add.w r3, r7, #20 + 80315ae: 4619 mov r1, r3 + 80315b0: 68b8 ldr r0, [r7, #8] + 80315b2: f7ff fdba bl 803112a <_lv_area_is_point_on> + 80315b6: 4603 mov r3, r0 + 80315b8: 2b00 cmp r3, #0 + 80315ba: d001 beq.n 80315c0 <_lv_area_is_out+0xb2> + 80315bc: 2300 movs r3, #0 + 80315be: e02a b.n 8031616 <_lv_area_is_out+0x108> p.x = aout_p->x1; - 8031654: 68fb ldr r3, [r7, #12] - 8031656: f9b3 3000 ldrsh.w r3, [r3] - 803165a: 82bb strh r3, [r7, #20] + 80315c0: 68fb ldr r3, [r7, #12] + 80315c2: f9b3 3000 ldrsh.w r3, [r3] + 80315c6: 82bb strh r3, [r7, #20] p.y = aout_p->y2; - 803165c: 68fb ldr r3, [r7, #12] - 803165e: f9b3 3006 ldrsh.w r3, [r3, #6] - 8031662: 82fb strh r3, [r7, #22] + 80315c8: 68fb ldr r3, [r7, #12] + 80315ca: f9b3 3006 ldrsh.w r3, [r3, #6] + 80315ce: 82fb strh r3, [r7, #22] if(_lv_area_is_point_on(aholder_p, &p, radius)) return false; - 8031664: f9b7 2006 ldrsh.w r2, [r7, #6] - 8031668: f107 0314 add.w r3, r7, #20 - 803166c: 4619 mov r1, r3 - 803166e: 68b8 ldr r0, [r7, #8] - 8031670: f7ff fda5 bl 80311be <_lv_area_is_point_on> - 8031674: 4603 mov r3, r0 - 8031676: 2b00 cmp r3, #0 - 8031678: d001 beq.n 803167e <_lv_area_is_out+0xdc> - 803167a: 2300 movs r3, #0 - 803167c: e015 b.n 80316aa <_lv_area_is_out+0x108> + 80315d0: f9b7 2006 ldrsh.w r2, [r7, #6] + 80315d4: f107 0314 add.w r3, r7, #20 + 80315d8: 4619 mov r1, r3 + 80315da: 68b8 ldr r0, [r7, #8] + 80315dc: f7ff fda5 bl 803112a <_lv_area_is_point_on> + 80315e0: 4603 mov r3, r0 + 80315e2: 2b00 cmp r3, #0 + 80315e4: d001 beq.n 80315ea <_lv_area_is_out+0xdc> + 80315e6: 2300 movs r3, #0 + 80315e8: e015 b.n 8031616 <_lv_area_is_out+0x108> p.x = aout_p->x2; - 803167e: 68fb ldr r3, [r7, #12] - 8031680: f9b3 3004 ldrsh.w r3, [r3, #4] - 8031684: 82bb strh r3, [r7, #20] + 80315ea: 68fb ldr r3, [r7, #12] + 80315ec: f9b3 3004 ldrsh.w r3, [r3, #4] + 80315f0: 82bb strh r3, [r7, #20] p.y = aout_p->y2; - 8031686: 68fb ldr r3, [r7, #12] - 8031688: f9b3 3006 ldrsh.w r3, [r3, #6] - 803168c: 82fb strh r3, [r7, #22] + 80315f2: 68fb ldr r3, [r7, #12] + 80315f4: f9b3 3006 ldrsh.w r3, [r3, #6] + 80315f8: 82fb strh r3, [r7, #22] if(_lv_area_is_point_on(aholder_p, &p, radius)) return false; - 803168e: f9b7 2006 ldrsh.w r2, [r7, #6] - 8031692: f107 0314 add.w r3, r7, #20 - 8031696: 4619 mov r1, r3 - 8031698: 68b8 ldr r0, [r7, #8] - 803169a: f7ff fd90 bl 80311be <_lv_area_is_point_on> - 803169e: 4603 mov r3, r0 - 80316a0: 2b00 cmp r3, #0 - 80316a2: d001 beq.n 80316a8 <_lv_area_is_out+0x106> - 80316a4: 2300 movs r3, #0 - 80316a6: e000 b.n 80316aa <_lv_area_is_out+0x108> + 80315fa: f9b7 2006 ldrsh.w r2, [r7, #6] + 80315fe: f107 0314 add.w r3, r7, #20 + 8031602: 4619 mov r1, r3 + 8031604: 68b8 ldr r0, [r7, #8] + 8031606: f7ff fd90 bl 803112a <_lv_area_is_point_on> + 803160a: 4603 mov r3, r0 + 803160c: 2b00 cmp r3, #0 + 803160e: d001 beq.n 8031614 <_lv_area_is_out+0x106> + 8031610: 2300 movs r3, #0 + 8031612: e000 b.n 8031616 <_lv_area_is_out+0x108> return true; - 80316a8: 2301 movs r3, #1 + 8031614: 2301 movs r3, #1 } - 80316aa: 4618 mov r0, r3 - 80316ac: 3718 adds r7, #24 - 80316ae: 46bd mov sp, r7 - 80316b0: bd80 pop {r7, pc} + 8031616: 4618 mov r0, r3 + 8031618: 3718 adds r7, #24 + 803161a: 46bd mov sp, r7 + 803161c: bd80 pop {r7, pc} -080316b2 : +0803161e : /********************** * STATIC FUNCTIONS **********************/ static bool lv_point_within_circle(const lv_area_t * area, const lv_point_t * p) { - 80316b2: b480 push {r7} - 80316b4: b089 sub sp, #36 ; 0x24 - 80316b6: af00 add r7, sp, #0 - 80316b8: 6078 str r0, [r7, #4] - 80316ba: 6039 str r1, [r7, #0] + 803161e: b480 push {r7} + 8031620: b089 sub sp, #36 ; 0x24 + 8031622: af00 add r7, sp, #0 + 8031624: 6078 str r0, [r7, #4] + 8031626: 6039 str r1, [r7, #0] lv_coord_t r = (area->x2 - area->x1) / 2; - 80316bc: 687b ldr r3, [r7, #4] - 80316be: f9b3 3004 ldrsh.w r3, [r3, #4] - 80316c2: 461a mov r2, r3 - 80316c4: 687b ldr r3, [r7, #4] - 80316c6: f9b3 3000 ldrsh.w r3, [r3] - 80316ca: 1ad3 subs r3, r2, r3 - 80316cc: 0fda lsrs r2, r3, #31 - 80316ce: 4413 add r3, r2 - 80316d0: 105b asrs r3, r3, #1 - 80316d2: 83fb strh r3, [r7, #30] + 8031628: 687b ldr r3, [r7, #4] + 803162a: f9b3 3004 ldrsh.w r3, [r3, #4] + 803162e: 461a mov r2, r3 + 8031630: 687b ldr r3, [r7, #4] + 8031632: f9b3 3000 ldrsh.w r3, [r3] + 8031636: 1ad3 subs r3, r2, r3 + 8031638: 0fda lsrs r2, r3, #31 + 803163a: 4413 add r3, r2 + 803163c: 105b asrs r3, r3, #1 + 803163e: 83fb strh r3, [r7, #30] /*Circle center*/ lv_coord_t cx = area->x1 + r; - 80316d4: 687b ldr r3, [r7, #4] - 80316d6: f9b3 3000 ldrsh.w r3, [r3] - 80316da: b29a uxth r2, r3 - 80316dc: 8bfb ldrh r3, [r7, #30] - 80316de: 4413 add r3, r2 - 80316e0: b29b uxth r3, r3 - 80316e2: 83bb strh r3, [r7, #28] + 8031640: 687b ldr r3, [r7, #4] + 8031642: f9b3 3000 ldrsh.w r3, [r3] + 8031646: b29a uxth r2, r3 + 8031648: 8bfb ldrh r3, [r7, #30] + 803164a: 4413 add r3, r2 + 803164c: b29b uxth r3, r3 + 803164e: 83bb strh r3, [r7, #28] lv_coord_t cy = area->y1 + r; - 80316e4: 687b ldr r3, [r7, #4] - 80316e6: f9b3 3002 ldrsh.w r3, [r3, #2] - 80316ea: b29a uxth r2, r3 - 80316ec: 8bfb ldrh r3, [r7, #30] - 80316ee: 4413 add r3, r2 - 80316f0: b29b uxth r3, r3 - 80316f2: 837b strh r3, [r7, #26] + 8031650: 687b ldr r3, [r7, #4] + 8031652: f9b3 3002 ldrsh.w r3, [r3, #2] + 8031656: b29a uxth r2, r3 + 8031658: 8bfb ldrh r3, [r7, #30] + 803165a: 4413 add r3, r2 + 803165c: b29b uxth r3, r3 + 803165e: 837b strh r3, [r7, #26] /*Simplify the code by moving everything to (0, 0)*/ lv_coord_t px = p->x - cx; - 80316f4: 683b ldr r3, [r7, #0] - 80316f6: f9b3 3000 ldrsh.w r3, [r3] - 80316fa: b29a uxth r2, r3 - 80316fc: 8bbb ldrh r3, [r7, #28] - 80316fe: 1ad3 subs r3, r2, r3 - 8031700: b29b uxth r3, r3 - 8031702: 833b strh r3, [r7, #24] + 8031660: 683b ldr r3, [r7, #0] + 8031662: f9b3 3000 ldrsh.w r3, [r3] + 8031666: b29a uxth r2, r3 + 8031668: 8bbb ldrh r3, [r7, #28] + 803166a: 1ad3 subs r3, r2, r3 + 803166c: b29b uxth r3, r3 + 803166e: 833b strh r3, [r7, #24] lv_coord_t py = p->y - cy; - 8031704: 683b ldr r3, [r7, #0] - 8031706: f9b3 3002 ldrsh.w r3, [r3, #2] - 803170a: b29a uxth r2, r3 - 803170c: 8b7b ldrh r3, [r7, #26] - 803170e: 1ad3 subs r3, r2, r3 - 8031710: b29b uxth r3, r3 - 8031712: 82fb strh r3, [r7, #22] + 8031670: 683b ldr r3, [r7, #0] + 8031672: f9b3 3002 ldrsh.w r3, [r3, #2] + 8031676: b29a uxth r2, r3 + 8031678: 8b7b ldrh r3, [r7, #26] + 803167a: 1ad3 subs r3, r2, r3 + 803167c: b29b uxth r3, r3 + 803167e: 82fb strh r3, [r7, #22] uint32_t r_sqrd = r * r; - 8031714: f9b7 301e ldrsh.w r3, [r7, #30] - 8031718: f9b7 201e ldrsh.w r2, [r7, #30] - 803171c: fb02 f303 mul.w r3, r2, r3 - 8031720: 613b str r3, [r7, #16] + 8031680: f9b7 301e ldrsh.w r3, [r7, #30] + 8031684: f9b7 201e ldrsh.w r2, [r7, #30] + 8031688: fb02 f303 mul.w r3, r2, r3 + 803168c: 613b str r3, [r7, #16] uint32_t dist = (px * px) + (py * py); - 8031722: f9b7 3018 ldrsh.w r3, [r7, #24] - 8031726: f9b7 2018 ldrsh.w r2, [r7, #24] - 803172a: fb03 f202 mul.w r2, r3, r2 - 803172e: f9b7 3016 ldrsh.w r3, [r7, #22] - 8031732: f9b7 1016 ldrsh.w r1, [r7, #22] - 8031736: fb01 f303 mul.w r3, r1, r3 - 803173a: 4413 add r3, r2 - 803173c: 60fb str r3, [r7, #12] + 803168e: f9b7 3018 ldrsh.w r3, [r7, #24] + 8031692: f9b7 2018 ldrsh.w r2, [r7, #24] + 8031696: fb03 f202 mul.w r2, r3, r2 + 803169a: f9b7 3016 ldrsh.w r3, [r7, #22] + 803169e: f9b7 1016 ldrsh.w r1, [r7, #22] + 80316a2: fb01 f303 mul.w r3, r1, r3 + 80316a6: 4413 add r3, r2 + 80316a8: 60fb str r3, [r7, #12] if(dist <= r_sqrd) - 803173e: 68fa ldr r2, [r7, #12] - 8031740: 693b ldr r3, [r7, #16] - 8031742: 429a cmp r2, r3 - 8031744: d801 bhi.n 803174a + 80316aa: 68fa ldr r2, [r7, #12] + 80316ac: 693b ldr r3, [r7, #16] + 80316ae: 429a cmp r2, r3 + 80316b0: d801 bhi.n 80316b6 return true; - 8031746: 2301 movs r3, #1 - 8031748: e000 b.n 803174c + 80316b2: 2301 movs r3, #1 + 80316b4: e000 b.n 80316b8 else return false; - 803174a: 2300 movs r3, #0 + 80316b6: 2300 movs r3, #0 } - 803174c: 4618 mov r0, r3 - 803174e: 3724 adds r7, #36 ; 0x24 - 8031750: 46bd mov sp, r7 - 8031752: bc80 pop {r7} - 8031754: 4770 bx lr + 80316b8: 4618 mov r0, r3 + 80316ba: 3724 adds r7, #36 ; 0x24 + 80316bc: 46bd mov sp, r7 + 80316be: bc80 pop {r7} + 80316c0: 4770 bx lr ... -08031758 : +080316c4 : * @param c2 the second color to mix (usually the background) * @param mix The ratio of the colors. 0: full `c2`, 255: full `c1`, 127: half `c1` and half`c2` * @return the mixed color */ LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix) { - 8031758: b480 push {r7} - 803175a: b087 sub sp, #28 - 803175c: af00 add r7, sp, #0 - 803175e: 80b8 strh r0, [r7, #4] - 8031760: 8039 strh r1, [r7, #0] - 8031762: 4613 mov r3, r2 - 8031764: 70fb strb r3, [r7, #3] + 80316c4: b480 push {r7} + 80316c6: b087 sub sp, #28 + 80316c8: af00 add r7, sp, #0 + 80316ca: 80b8 strh r0, [r7, #4] + 80316cc: 8039 strh r1, [r7, #0] + 80316ce: 4613 mov r3, r2 + 80316d0: 70fb strb r3, [r7, #3] lv_color_t ret; #if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0 /*Source: https://stackoverflow.com/a/50012418/1999969*/ mix = (mix + 4) >> 3; - 8031766: 78fb ldrb r3, [r7, #3] - 8031768: 3304 adds r3, #4 - 803176a: 10db asrs r3, r3, #3 - 803176c: 70fb strb r3, [r7, #3] + 80316d2: 78fb ldrb r3, [r7, #3] + 80316d4: 3304 adds r3, #4 + 80316d6: 10db asrs r3, r3, #3 + 80316d8: 70fb strb r3, [r7, #3] uint32_t bg = (uint32_t)((uint32_t)c2.full | ((uint32_t)c2.full << 16)) & - 803176e: 883b ldrh r3, [r7, #0] - 8031770: 461a mov r2, r3 - 8031772: 883b ldrh r3, [r7, #0] - 8031774: 041b lsls r3, r3, #16 - 8031776: 431a orrs r2, r3 - 8031778: 4b12 ldr r3, [pc, #72] ; (80317c4 ) - 803177a: 4013 ands r3, r2 - 803177c: 617b str r3, [r7, #20] + 80316da: 883b ldrh r3, [r7, #0] + 80316dc: 461a mov r2, r3 + 80316de: 883b ldrh r3, [r7, #0] + 80316e0: 041b lsls r3, r3, #16 + 80316e2: 431a orrs r2, r3 + 80316e4: 4b12 ldr r3, [pc, #72] ; (8031730 ) + 80316e6: 4013 ands r3, r2 + 80316e8: 617b str r3, [r7, #20] 0x7E0F81F; /*0b00000111111000001111100000011111*/ uint32_t fg = (uint32_t)((uint32_t)c1.full | ((uint32_t)c1.full << 16)) & 0x7E0F81F; - 803177e: 88bb ldrh r3, [r7, #4] - 8031780: 461a mov r2, r3 - 8031782: 88bb ldrh r3, [r7, #4] - 8031784: 041b lsls r3, r3, #16 - 8031786: 431a orrs r2, r3 - 8031788: 4b0e ldr r3, [pc, #56] ; (80317c4 ) - 803178a: 4013 ands r3, r2 - 803178c: 613b str r3, [r7, #16] + 80316ea: 88bb ldrh r3, [r7, #4] + 80316ec: 461a mov r2, r3 + 80316ee: 88bb ldrh r3, [r7, #4] + 80316f0: 041b lsls r3, r3, #16 + 80316f2: 431a orrs r2, r3 + 80316f4: 4b0e ldr r3, [pc, #56] ; (8031730 ) + 80316f6: 4013 ands r3, r2 + 80316f8: 613b str r3, [r7, #16] uint32_t result = ((((fg - bg) * mix) >> 5) + bg) & 0x7E0F81F; - 803178e: 693a ldr r2, [r7, #16] - 8031790: 697b ldr r3, [r7, #20] - 8031792: 1ad3 subs r3, r2, r3 - 8031794: 78fa ldrb r2, [r7, #3] - 8031796: fb02 f303 mul.w r3, r2, r3 - 803179a: 095a lsrs r2, r3, #5 - 803179c: 697b ldr r3, [r7, #20] - 803179e: 441a add r2, r3 - 80317a0: 4b08 ldr r3, [pc, #32] ; (80317c4 ) - 80317a2: 4013 ands r3, r2 - 80317a4: 60fb str r3, [r7, #12] + 80316fa: 693a ldr r2, [r7, #16] + 80316fc: 697b ldr r3, [r7, #20] + 80316fe: 1ad3 subs r3, r2, r3 + 8031700: 78fa ldrb r2, [r7, #3] + 8031702: fb02 f303 mul.w r3, r2, r3 + 8031706: 095a lsrs r2, r3, #5 + 8031708: 697b ldr r3, [r7, #20] + 803170a: 441a add r2, r3 + 803170c: 4b08 ldr r3, [pc, #32] ; (8031730 ) + 803170e: 4013 ands r3, r2 + 8031710: 60fb str r3, [r7, #12] ret.full = (uint16_t)((result >> 16) | result); - 80317a6: 68fb ldr r3, [r7, #12] - 80317a8: 0c1b lsrs r3, r3, #16 - 80317aa: b29a uxth r2, r3 - 80317ac: 68fb ldr r3, [r7, #12] - 80317ae: b29b uxth r3, r3 - 80317b0: 4313 orrs r3, r2 - 80317b2: b29b uxth r3, r3 - 80317b4: 813b strh r3, [r7, #8] + 8031712: 68fb ldr r3, [r7, #12] + 8031714: 0c1b lsrs r3, r3, #16 + 8031716: b29a uxth r2, r3 + 8031718: 68fb ldr r3, [r7, #12] + 803171a: b29b uxth r3, r3 + 803171c: 4313 orrs r3, r2 + 803171e: b29b uxth r3, r3 + 8031720: 813b strh r3, [r7, #8] #else /*LV_COLOR_DEPTH == 1*/ ret.full = mix > LV_OPA_50 ? c1.full : c2.full; #endif return ret; - 80317b6: 893b ldrh r3, [r7, #8] + 8031722: 893b ldrh r3, [r7, #8] } - 80317b8: 4618 mov r0, r3 - 80317ba: 371c adds r7, #28 - 80317bc: 46bd mov sp, r7 - 80317be: bc80 pop {r7} - 80317c0: 4770 bx lr - 80317c2: bf00 nop - 80317c4: 07e0f81f .word 0x07e0f81f + 8031724: 4618 mov r0, r3 + 8031726: 371c adds r7, #28 + 8031728: 46bd mov sp, r7 + 803172a: bc80 pop {r7} + 803172c: 4770 bx lr + 803172e: bf00 nop + 8031730: 07e0f81f .word 0x07e0f81f -080317c8 : +08031734 : uint16_t bright = (uint16_t)(3u * LV_COLOR_GET_R32(c32) + LV_COLOR_GET_B32(c32) + 4u * LV_COLOR_GET_G32(c32)); return (uint8_t)(bright >> 3); } static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b) { - 80317c8: b490 push {r4, r7} - 80317ca: b082 sub sp, #8 - 80317cc: af00 add r7, sp, #0 - 80317ce: 4604 mov r4, r0 - 80317d0: 4608 mov r0, r1 - 80317d2: 4611 mov r1, r2 - 80317d4: 4622 mov r2, r4 - 80317d6: 71fa strb r2, [r7, #7] - 80317d8: 4602 mov r2, r0 - 80317da: 71ba strb r2, [r7, #6] - 80317dc: 460a mov r2, r1 - 80317de: 717a strb r2, [r7, #5] + 8031734: b490 push {r4, r7} + 8031736: b082 sub sp, #8 + 8031738: af00 add r7, sp, #0 + 803173a: 4604 mov r4, r0 + 803173c: 4608 mov r0, r1 + 803173e: 4611 mov r1, r2 + 8031740: 4622 mov r2, r4 + 8031742: 71fa strb r2, [r7, #7] + 8031744: 4602 mov r2, r0 + 8031746: 71ba strb r2, [r7, #6] + 8031748: 460a mov r2, r1 + 803174a: 717a strb r2, [r7, #5] return _LV_COLOR_MAKE_TYPE_HELPER LV_COLOR_MAKE(r, g, b); - 80317e0: 797a ldrb r2, [r7, #5] - 80317e2: 08d2 lsrs r2, r2, #3 - 80317e4: b2d2 uxtb r2, r2 - 80317e6: f002 021f and.w r2, r2, #31 - 80317ea: b2d0 uxtb r0, r2 - 80317ec: 79ba ldrb r2, [r7, #6] - 80317ee: 0892 lsrs r2, r2, #2 - 80317f0: b2d2 uxtb r2, r2 - 80317f2: f002 023f and.w r2, r2, #63 ; 0x3f - 80317f6: b2d1 uxtb r1, r2 - 80317f8: 79fa ldrb r2, [r7, #7] - 80317fa: 08d2 lsrs r2, r2, #3 - 80317fc: b2d2 uxtb r2, r2 - 80317fe: f002 021f and.w r2, r2, #31 - 8031802: b2d2 uxtb r2, r2 - 8031804: f360 0304 bfi r3, r0, #0, #5 - 8031808: f361 134a bfi r3, r1, #5, #6 - 803180c: f362 23cf bfi r3, r2, #11, #5 + 803174c: 797a ldrb r2, [r7, #5] + 803174e: 08d2 lsrs r2, r2, #3 + 8031750: b2d2 uxtb r2, r2 + 8031752: f002 021f and.w r2, r2, #31 + 8031756: b2d0 uxtb r0, r2 + 8031758: 79ba ldrb r2, [r7, #6] + 803175a: 0892 lsrs r2, r2, #2 + 803175c: b2d2 uxtb r2, r2 + 803175e: f002 023f and.w r2, r2, #63 ; 0x3f + 8031762: b2d1 uxtb r1, r2 + 8031764: 79fa ldrb r2, [r7, #7] + 8031766: 08d2 lsrs r2, r2, #3 + 8031768: b2d2 uxtb r2, r2 + 803176a: f002 021f and.w r2, r2, #31 + 803176e: b2d2 uxtb r2, r2 + 8031770: f360 0304 bfi r3, r0, #0, #5 + 8031774: f361 134a bfi r3, r1, #5, #6 + 8031778: f362 23cf bfi r3, r2, #11, #5 } - 8031810: 4618 mov r0, r3 - 8031812: 3708 adds r7, #8 - 8031814: 46bd mov sp, r7 - 8031816: bc90 pop {r4, r7} - 8031818: 4770 bx lr + 803177c: 4618 mov r0, r3 + 803177e: 3708 adds r7, #8 + 8031780: 46bd mov sp, r7 + 8031782: bc90 pop {r4, r7} + 8031784: 4770 bx lr -0803181a : +08031786 : static inline lv_color_t lv_color_white(void) { return lv_color_make(0xff, 0xff, 0xff); } static inline lv_color_t lv_color_black(void) { - 803181a: b580 push {r7, lr} - 803181c: af00 add r7, sp, #0 + 8031786: b580 push {r7, lr} + 8031788: af00 add r7, sp, #0 return lv_color_make(0x00, 0x0, 0x00); - 803181e: 2200 movs r2, #0 - 8031820: 2100 movs r1, #0 - 8031822: 2000 movs r0, #0 - 8031824: f7ff ffd0 bl 80317c8 - 8031828: 4603 mov r3, r0 + 803178a: 2200 movs r2, #0 + 803178c: 2100 movs r1, #0 + 803178e: 2000 movs r0, #0 + 8031790: f7ff ffd0 bl 8031734 + 8031794: 4603 mov r3, r0 } - 803182a: 4618 mov r0, r3 - 803182c: bd80 pop {r7, pc} + 8031796: 4618 mov r0, r3 + 8031798: bd80 pop {r7, pc} -0803182e : +0803179a : /********************** * GLOBAL FUNCTIONS **********************/ LV_ATTRIBUTE_FAST_MEM void lv_color_fill(lv_color_t * buf, lv_color_t color, uint32_t px_num) { - 803182e: b480 push {r7} - 8031830: b089 sub sp, #36 ; 0x24 - 8031832: af00 add r7, sp, #0 - 8031834: 60f8 str r0, [r7, #12] - 8031836: 8139 strh r1, [r7, #8] - 8031838: 607a str r2, [r7, #4] + 803179a: b480 push {r7} + 803179c: b089 sub sp, #36 ; 0x24 + 803179e: af00 add r7, sp, #0 + 80317a0: 60f8 str r0, [r7, #12] + 80317a2: 8139 strh r1, [r7, #8] + 80317a4: 607a str r2, [r7, #4] #if LV_COLOR_DEPTH == 16 uintptr_t buf_int = (uintptr_t)buf; - 803183a: 68fb ldr r3, [r7, #12] - 803183c: 61bb str r3, [r7, #24] + 80317a6: 68fb ldr r3, [r7, #12] + 80317a8: 61bb str r3, [r7, #24] if(buf_int & 0x3) { - 803183e: 69bb ldr r3, [r7, #24] - 8031840: f003 0303 and.w r3, r3, #3 - 8031844: 2b00 cmp r3, #0 - 8031846: d008 beq.n 803185a + 80317aa: 69bb ldr r3, [r7, #24] + 80317ac: f003 0303 and.w r3, r3, #3 + 80317b0: 2b00 cmp r3, #0 + 80317b2: d008 beq.n 80317c6 *buf = color; - 8031848: 68fb ldr r3, [r7, #12] - 803184a: 893a ldrh r2, [r7, #8] - 803184c: 801a strh r2, [r3, #0] + 80317b4: 68fb ldr r3, [r7, #12] + 80317b6: 893a ldrh r2, [r7, #8] + 80317b8: 801a strh r2, [r3, #0] buf++; - 803184e: 68fb ldr r3, [r7, #12] - 8031850: 3302 adds r3, #2 - 8031852: 60fb str r3, [r7, #12] + 80317ba: 68fb ldr r3, [r7, #12] + 80317bc: 3302 adds r3, #2 + 80317be: 60fb str r3, [r7, #12] px_num--; - 8031854: 687b ldr r3, [r7, #4] - 8031856: 3b01 subs r3, #1 - 8031858: 607b str r3, [r7, #4] + 80317c0: 687b ldr r3, [r7, #4] + 80317c2: 3b01 subs r3, #1 + 80317c4: 607b str r3, [r7, #4] } uint32_t c32 = (uint32_t)color.full + ((uint32_t)color.full << 16); - 803185a: 893b ldrh r3, [r7, #8] - 803185c: 461a mov r2, r3 - 803185e: 893b ldrh r3, [r7, #8] - 8031860: 041b lsls r3, r3, #16 - 8031862: 4413 add r3, r2 - 8031864: 617b str r3, [r7, #20] + 80317c6: 893b ldrh r3, [r7, #8] + 80317c8: 461a mov r2, r3 + 80317ca: 893b ldrh r3, [r7, #8] + 80317cc: 041b lsls r3, r3, #16 + 80317ce: 4413 add r3, r2 + 80317d0: 617b str r3, [r7, #20] uint32_t * buf32 = (uint32_t *)buf; - 8031866: 68fb ldr r3, [r7, #12] - 8031868: 61fb str r3, [r7, #28] + 80317d2: 68fb ldr r3, [r7, #12] + 80317d4: 61fb str r3, [r7, #28] while(px_num > 16) { - 803186a: e032 b.n 80318d2 + 80317d6: e032 b.n 803183e *buf32 = c32; - 803186c: 69fb ldr r3, [r7, #28] - 803186e: 697a ldr r2, [r7, #20] - 8031870: 601a str r2, [r3, #0] + 80317d8: 69fb ldr r3, [r7, #28] + 80317da: 697a ldr r2, [r7, #20] + 80317dc: 601a str r2, [r3, #0] buf32++; - 8031872: 69fb ldr r3, [r7, #28] - 8031874: 3304 adds r3, #4 - 8031876: 61fb str r3, [r7, #28] + 80317de: 69fb ldr r3, [r7, #28] + 80317e0: 3304 adds r3, #4 + 80317e2: 61fb str r3, [r7, #28] *buf32 = c32; - 8031878: 69fb ldr r3, [r7, #28] - 803187a: 697a ldr r2, [r7, #20] - 803187c: 601a str r2, [r3, #0] + 80317e4: 69fb ldr r3, [r7, #28] + 80317e6: 697a ldr r2, [r7, #20] + 80317e8: 601a str r2, [r3, #0] buf32++; - 803187e: 69fb ldr r3, [r7, #28] - 8031880: 3304 adds r3, #4 - 8031882: 61fb str r3, [r7, #28] + 80317ea: 69fb ldr r3, [r7, #28] + 80317ec: 3304 adds r3, #4 + 80317ee: 61fb str r3, [r7, #28] *buf32 = c32; - 8031884: 69fb ldr r3, [r7, #28] - 8031886: 697a ldr r2, [r7, #20] - 8031888: 601a str r2, [r3, #0] + 80317f0: 69fb ldr r3, [r7, #28] + 80317f2: 697a ldr r2, [r7, #20] + 80317f4: 601a str r2, [r3, #0] buf32++; - 803188a: 69fb ldr r3, [r7, #28] - 803188c: 3304 adds r3, #4 - 803188e: 61fb str r3, [r7, #28] + 80317f6: 69fb ldr r3, [r7, #28] + 80317f8: 3304 adds r3, #4 + 80317fa: 61fb str r3, [r7, #28] *buf32 = c32; - 8031890: 69fb ldr r3, [r7, #28] - 8031892: 697a ldr r2, [r7, #20] - 8031894: 601a str r2, [r3, #0] + 80317fc: 69fb ldr r3, [r7, #28] + 80317fe: 697a ldr r2, [r7, #20] + 8031800: 601a str r2, [r3, #0] buf32++; - 8031896: 69fb ldr r3, [r7, #28] - 8031898: 3304 adds r3, #4 - 803189a: 61fb str r3, [r7, #28] + 8031802: 69fb ldr r3, [r7, #28] + 8031804: 3304 adds r3, #4 + 8031806: 61fb str r3, [r7, #28] *buf32 = c32; - 803189c: 69fb ldr r3, [r7, #28] - 803189e: 697a ldr r2, [r7, #20] - 80318a0: 601a str r2, [r3, #0] + 8031808: 69fb ldr r3, [r7, #28] + 803180a: 697a ldr r2, [r7, #20] + 803180c: 601a str r2, [r3, #0] buf32++; - 80318a2: 69fb ldr r3, [r7, #28] - 80318a4: 3304 adds r3, #4 - 80318a6: 61fb str r3, [r7, #28] + 803180e: 69fb ldr r3, [r7, #28] + 8031810: 3304 adds r3, #4 + 8031812: 61fb str r3, [r7, #28] *buf32 = c32; - 80318a8: 69fb ldr r3, [r7, #28] - 80318aa: 697a ldr r2, [r7, #20] - 80318ac: 601a str r2, [r3, #0] + 8031814: 69fb ldr r3, [r7, #28] + 8031816: 697a ldr r2, [r7, #20] + 8031818: 601a str r2, [r3, #0] buf32++; - 80318ae: 69fb ldr r3, [r7, #28] - 80318b0: 3304 adds r3, #4 - 80318b2: 61fb str r3, [r7, #28] + 803181a: 69fb ldr r3, [r7, #28] + 803181c: 3304 adds r3, #4 + 803181e: 61fb str r3, [r7, #28] *buf32 = c32; - 80318b4: 69fb ldr r3, [r7, #28] - 80318b6: 697a ldr r2, [r7, #20] - 80318b8: 601a str r2, [r3, #0] + 8031820: 69fb ldr r3, [r7, #28] + 8031822: 697a ldr r2, [r7, #20] + 8031824: 601a str r2, [r3, #0] buf32++; - 80318ba: 69fb ldr r3, [r7, #28] - 80318bc: 3304 adds r3, #4 - 80318be: 61fb str r3, [r7, #28] + 8031826: 69fb ldr r3, [r7, #28] + 8031828: 3304 adds r3, #4 + 803182a: 61fb str r3, [r7, #28] *buf32 = c32; - 80318c0: 69fb ldr r3, [r7, #28] - 80318c2: 697a ldr r2, [r7, #20] - 80318c4: 601a str r2, [r3, #0] + 803182c: 69fb ldr r3, [r7, #28] + 803182e: 697a ldr r2, [r7, #20] + 8031830: 601a str r2, [r3, #0] buf32++; - 80318c6: 69fb ldr r3, [r7, #28] - 80318c8: 3304 adds r3, #4 - 80318ca: 61fb str r3, [r7, #28] + 8031832: 69fb ldr r3, [r7, #28] + 8031834: 3304 adds r3, #4 + 8031836: 61fb str r3, [r7, #28] px_num -= 16; - 80318cc: 687b ldr r3, [r7, #4] - 80318ce: 3b10 subs r3, #16 - 80318d0: 607b str r3, [r7, #4] + 8031838: 687b ldr r3, [r7, #4] + 803183a: 3b10 subs r3, #16 + 803183c: 607b str r3, [r7, #4] while(px_num > 16) { - 80318d2: 687b ldr r3, [r7, #4] - 80318d4: 2b10 cmp r3, #16 - 80318d6: d8c9 bhi.n 803186c + 803183e: 687b ldr r3, [r7, #4] + 8031840: 2b10 cmp r3, #16 + 8031842: d8c9 bhi.n 80317d8 } buf = (lv_color_t *)buf32; - 80318d8: 69fb ldr r3, [r7, #28] - 80318da: 60fb str r3, [r7, #12] + 8031844: 69fb ldr r3, [r7, #28] + 8031846: 60fb str r3, [r7, #12] while(px_num) { - 80318dc: e008 b.n 80318f0 + 8031848: e008 b.n 803185c *buf = color; - 80318de: 68fb ldr r3, [r7, #12] - 80318e0: 893a ldrh r2, [r7, #8] - 80318e2: 801a strh r2, [r3, #0] + 803184a: 68fb ldr r3, [r7, #12] + 803184c: 893a ldrh r2, [r7, #8] + 803184e: 801a strh r2, [r3, #0] buf++; - 80318e4: 68fb ldr r3, [r7, #12] - 80318e6: 3302 adds r3, #2 - 80318e8: 60fb str r3, [r7, #12] + 8031850: 68fb ldr r3, [r7, #12] + 8031852: 3302 adds r3, #2 + 8031854: 60fb str r3, [r7, #12] px_num--; - 80318ea: 687b ldr r3, [r7, #4] - 80318ec: 3b01 subs r3, #1 - 80318ee: 607b str r3, [r7, #4] + 8031856: 687b ldr r3, [r7, #4] + 8031858: 3b01 subs r3, #1 + 803185a: 607b str r3, [r7, #4] while(px_num) { - 80318f0: 687b ldr r3, [r7, #4] - 80318f2: 2b00 cmp r3, #0 - 80318f4: d1f3 bne.n 80318de + 803185c: 687b ldr r3, [r7, #4] + 803185e: 2b00 cmp r3, #0 + 8031860: d1f3 bne.n 803184a *buf = color; buf++; px_num--; } #endif } - 80318f6: bf00 nop - 80318f8: bf00 nop - 80318fa: 3724 adds r7, #36 ; 0x24 - 80318fc: 46bd mov sp, r7 - 80318fe: bc80 pop {r7} - 8031900: 4770 bx lr + 8031862: bf00 nop + 8031864: bf00 nop + 8031866: 3724 adds r7, #36 ; 0x24 + 8031868: 46bd mov sp, r7 + 803186a: bc80 pop {r7} + 803186c: 4770 bx lr -08031902 : +0803186e : { return lv_color_mix(lv_color_white(), c, lvl); } lv_color_t lv_color_darken(lv_color_t c, lv_opa_t lvl) { - 8031902: b580 push {r7, lr} - 8031904: b082 sub sp, #8 - 8031906: af00 add r7, sp, #0 - 8031908: 80b8 strh r0, [r7, #4] - 803190a: 460b mov r3, r1 - 803190c: 71fb strb r3, [r7, #7] + 803186e: b580 push {r7, lr} + 8031870: b082 sub sp, #8 + 8031872: af00 add r7, sp, #0 + 8031874: 80b8 strh r0, [r7, #4] + 8031876: 460b mov r3, r1 + 8031878: 71fb strb r3, [r7, #7] return lv_color_mix(lv_color_black(), c, lvl); - 803190e: f7ff ff84 bl 803181a - 8031912: 79fb ldrb r3, [r7, #7] - 8031914: 461a mov r2, r3 - 8031916: 88b9 ldrh r1, [r7, #4] - 8031918: f7ff ff1e bl 8031758 - 803191c: 4603 mov r3, r0 + 803187a: f7ff ff84 bl 8031786 + 803187e: 79fb ldrb r3, [r7, #7] + 8031880: 461a mov r2, r3 + 8031882: 88b9 ldrh r1, [r7, #4] + 8031884: f7ff ff1e bl 80316c4 + 8031888: 4603 mov r3, r0 } - 803191e: 4618 mov r0, r3 - 8031920: 3708 adds r7, #8 - 8031922: 46bd mov sp, r7 - 8031924: bd80 pop {r7, pc} + 803188a: 4618 mov r0, r3 + 803188c: 3708 adds r7, #8 + 803188e: 46bd mov sp, r7 + 8031890: bd80 pop {r7, pc} ... -08031928 : +08031894 : * @param s saturation [0..100] * @param v value [0..100] * @return the given RGB color in RGB (with LV_COLOR_DEPTH depth) */ lv_color_t lv_color_hsv_to_rgb(uint16_t h, uint8_t s, uint8_t v) { - 8031928: b580 push {r7, lr} - 803192a: b086 sub sp, #24 - 803192c: af00 add r7, sp, #0 - 803192e: 4603 mov r3, r0 - 8031930: 80fb strh r3, [r7, #6] - 8031932: 460b mov r3, r1 - 8031934: 717b strb r3, [r7, #5] - 8031936: 4613 mov r3, r2 - 8031938: 713b strb r3, [r7, #4] + 8031894: b580 push {r7, lr} + 8031896: b086 sub sp, #24 + 8031898: af00 add r7, sp, #0 + 803189a: 4603 mov r3, r0 + 803189c: 80fb strh r3, [r7, #6] + 803189e: 460b mov r3, r1 + 80318a0: 717b strb r3, [r7, #5] + 80318a2: 4613 mov r3, r2 + 80318a4: 713b strb r3, [r7, #4] h = (uint32_t)((uint32_t)h * 255) / 360; - 803193a: 88fa ldrh r2, [r7, #6] - 803193c: 4613 mov r3, r2 - 803193e: 021b lsls r3, r3, #8 - 8031940: 1a9b subs r3, r3, r2 - 8031942: 08db lsrs r3, r3, #3 - 8031944: 4a52 ldr r2, [pc, #328] ; (8031a90 ) - 8031946: fba2 2303 umull r2, r3, r2, r3 - 803194a: 089b lsrs r3, r3, #2 - 803194c: 80fb strh r3, [r7, #6] + 80318a6: 88fa ldrh r2, [r7, #6] + 80318a8: 4613 mov r3, r2 + 80318aa: 021b lsls r3, r3, #8 + 80318ac: 1a9b subs r3, r3, r2 + 80318ae: 08db lsrs r3, r3, #3 + 80318b0: 4a52 ldr r2, [pc, #328] ; (80319fc ) + 80318b2: fba2 2303 umull r2, r3, r2, r3 + 80318b6: 089b lsrs r3, r3, #2 + 80318b8: 80fb strh r3, [r7, #6] s = (uint16_t)((uint16_t)s * 255) / 100; - 803194e: 797b ldrb r3, [r7, #5] - 8031950: b29b uxth r3, r3 - 8031952: 461a mov r2, r3 - 8031954: 0212 lsls r2, r2, #8 - 8031956: 1ad3 subs r3, r2, r3 - 8031958: b29b uxth r3, r3 - 803195a: 4a4e ldr r2, [pc, #312] ; (8031a94 ) - 803195c: fba2 2303 umull r2, r3, r2, r3 - 8031960: 095b lsrs r3, r3, #5 - 8031962: b29b uxth r3, r3 - 8031964: 717b strb r3, [r7, #5] + 80318ba: 797b ldrb r3, [r7, #5] + 80318bc: b29b uxth r3, r3 + 80318be: 461a mov r2, r3 + 80318c0: 0212 lsls r2, r2, #8 + 80318c2: 1ad3 subs r3, r2, r3 + 80318c4: b29b uxth r3, r3 + 80318c6: 4a4e ldr r2, [pc, #312] ; (8031a00 ) + 80318c8: fba2 2303 umull r2, r3, r2, r3 + 80318cc: 095b lsrs r3, r3, #5 + 80318ce: b29b uxth r3, r3 + 80318d0: 717b strb r3, [r7, #5] v = (uint16_t)((uint16_t)v * 255) / 100; - 8031966: 793b ldrb r3, [r7, #4] - 8031968: b29b uxth r3, r3 - 803196a: 461a mov r2, r3 - 803196c: 0212 lsls r2, r2, #8 - 803196e: 1ad3 subs r3, r2, r3 - 8031970: b29b uxth r3, r3 - 8031972: 4a48 ldr r2, [pc, #288] ; (8031a94 ) - 8031974: fba2 2303 umull r2, r3, r2, r3 - 8031978: 095b lsrs r3, r3, #5 - 803197a: b29b uxth r3, r3 - 803197c: 713b strb r3, [r7, #4] + 80318d2: 793b ldrb r3, [r7, #4] + 80318d4: b29b uxth r3, r3 + 80318d6: 461a mov r2, r3 + 80318d8: 0212 lsls r2, r2, #8 + 80318da: 1ad3 subs r3, r2, r3 + 80318dc: b29b uxth r3, r3 + 80318de: 4a48 ldr r2, [pc, #288] ; (8031a00 ) + 80318e0: fba2 2303 umull r2, r3, r2, r3 + 80318e4: 095b lsrs r3, r3, #5 + 80318e6: b29b uxth r3, r3 + 80318e8: 713b strb r3, [r7, #4] uint8_t r, g, b; uint8_t region, remainder, p, q, t; if(s == 0) { - 803197e: 797b ldrb r3, [r7, #5] - 8031980: 2b00 cmp r3, #0 - 8031982: d107 bne.n 8031994 + 80318ea: 797b ldrb r3, [r7, #5] + 80318ec: 2b00 cmp r3, #0 + 80318ee: d107 bne.n 8031900 return lv_color_make(v, v, v); - 8031984: 793a ldrb r2, [r7, #4] - 8031986: 7939 ldrb r1, [r7, #4] - 8031988: 793b ldrb r3, [r7, #4] - 803198a: 4618 mov r0, r3 - 803198c: f7ff ff1c bl 80317c8 - 8031990: 4603 mov r3, r0 - 8031992: e078 b.n 8031a86 + 80318f0: 793a ldrb r2, [r7, #4] + 80318f2: 7939 ldrb r1, [r7, #4] + 80318f4: 793b ldrb r3, [r7, #4] + 80318f6: 4618 mov r0, r3 + 80318f8: f7ff ff1c bl 8031734 + 80318fc: 4603 mov r3, r0 + 80318fe: e078 b.n 80319f2 } region = h / 43; - 8031994: 88fb ldrh r3, [r7, #6] - 8031996: 4a40 ldr r2, [pc, #256] ; (8031a98 ) - 8031998: fba2 2303 umull r2, r3, r2, r3 - 803199c: 08db lsrs r3, r3, #3 - 803199e: b29b uxth r3, r3 - 80319a0: 753b strb r3, [r7, #20] + 8031900: 88fb ldrh r3, [r7, #6] + 8031902: 4a40 ldr r2, [pc, #256] ; (8031a04 ) + 8031904: fba2 2303 umull r2, r3, r2, r3 + 8031908: 08db lsrs r3, r3, #3 + 803190a: b29b uxth r3, r3 + 803190c: 753b strb r3, [r7, #20] remainder = (h - (region * 43)) * 6; - 80319a2: 88fa ldrh r2, [r7, #6] - 80319a4: 7d3b ldrb r3, [r7, #20] - 80319a6: f06f 012a mvn.w r1, #42 ; 0x2a - 80319aa: fb01 f303 mul.w r3, r1, r3 - 80319ae: 4413 add r3, r2 - 80319b0: b2db uxtb r3, r3 - 80319b2: 461a mov r2, r3 - 80319b4: 0052 lsls r2, r2, #1 - 80319b6: 4413 add r3, r2 - 80319b8: 005b lsls r3, r3, #1 - 80319ba: 74fb strb r3, [r7, #19] + 803190e: 88fa ldrh r2, [r7, #6] + 8031910: 7d3b ldrb r3, [r7, #20] + 8031912: f06f 012a mvn.w r1, #42 ; 0x2a + 8031916: fb01 f303 mul.w r3, r1, r3 + 803191a: 4413 add r3, r2 + 803191c: b2db uxtb r3, r3 + 803191e: 461a mov r2, r3 + 8031920: 0052 lsls r2, r2, #1 + 8031922: 4413 add r3, r2 + 8031924: 005b lsls r3, r3, #1 + 8031926: 74fb strb r3, [r7, #19] p = (v * (255 - s)) >> 8; - 80319bc: 793b ldrb r3, [r7, #4] - 80319be: 797a ldrb r2, [r7, #5] - 80319c0: f1c2 02ff rsb r2, r2, #255 ; 0xff - 80319c4: fb02 f303 mul.w r3, r2, r3 - 80319c8: 121b asrs r3, r3, #8 - 80319ca: 74bb strb r3, [r7, #18] + 8031928: 793b ldrb r3, [r7, #4] + 803192a: 797a ldrb r2, [r7, #5] + 803192c: f1c2 02ff rsb r2, r2, #255 ; 0xff + 8031930: fb02 f303 mul.w r3, r2, r3 + 8031934: 121b asrs r3, r3, #8 + 8031936: 74bb strb r3, [r7, #18] q = (v * (255 - ((s * remainder) >> 8))) >> 8; - 80319cc: 793b ldrb r3, [r7, #4] - 80319ce: 797a ldrb r2, [r7, #5] - 80319d0: 7cf9 ldrb r1, [r7, #19] - 80319d2: fb01 f202 mul.w r2, r1, r2 - 80319d6: 1212 asrs r2, r2, #8 - 80319d8: f1c2 02ff rsb r2, r2, #255 ; 0xff - 80319dc: fb02 f303 mul.w r3, r2, r3 - 80319e0: 121b asrs r3, r3, #8 - 80319e2: 747b strb r3, [r7, #17] + 8031938: 793b ldrb r3, [r7, #4] + 803193a: 797a ldrb r2, [r7, #5] + 803193c: 7cf9 ldrb r1, [r7, #19] + 803193e: fb01 f202 mul.w r2, r1, r2 + 8031942: 1212 asrs r2, r2, #8 + 8031944: f1c2 02ff rsb r2, r2, #255 ; 0xff + 8031948: fb02 f303 mul.w r3, r2, r3 + 803194c: 121b asrs r3, r3, #8 + 803194e: 747b strb r3, [r7, #17] t = (v * (255 - ((s * (255 - remainder)) >> 8))) >> 8; - 80319e4: 793b ldrb r3, [r7, #4] - 80319e6: 797a ldrb r2, [r7, #5] - 80319e8: 7cf9 ldrb r1, [r7, #19] - 80319ea: f1c1 01ff rsb r1, r1, #255 ; 0xff - 80319ee: fb01 f202 mul.w r2, r1, r2 - 80319f2: 1212 asrs r2, r2, #8 - 80319f4: f1c2 02ff rsb r2, r2, #255 ; 0xff - 80319f8: fb02 f303 mul.w r3, r2, r3 - 80319fc: 121b asrs r3, r3, #8 - 80319fe: 743b strb r3, [r7, #16] + 8031950: 793b ldrb r3, [r7, #4] + 8031952: 797a ldrb r2, [r7, #5] + 8031954: 7cf9 ldrb r1, [r7, #19] + 8031956: f1c1 01ff rsb r1, r1, #255 ; 0xff + 803195a: fb01 f202 mul.w r2, r1, r2 + 803195e: 1212 asrs r2, r2, #8 + 8031960: f1c2 02ff rsb r2, r2, #255 ; 0xff + 8031964: fb02 f303 mul.w r3, r2, r3 + 8031968: 121b asrs r3, r3, #8 + 803196a: 743b strb r3, [r7, #16] switch(region) { - 8031a00: 7d3b ldrb r3, [r7, #20] - 8031a02: 2b04 cmp r3, #4 - 8031a04: d82f bhi.n 8031a66 - 8031a06: a201 add r2, pc, #4 ; (adr r2, 8031a0c ) - 8031a08: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8031a0c: 08031a21 .word 0x08031a21 - 8031a10: 08031a2f .word 0x08031a2f - 8031a14: 08031a3d .word 0x08031a3d - 8031a18: 08031a4b .word 0x08031a4b - 8031a1c: 08031a59 .word 0x08031a59 + 803196c: 7d3b ldrb r3, [r7, #20] + 803196e: 2b04 cmp r3, #4 + 8031970: d82f bhi.n 80319d2 + 8031972: a201 add r2, pc, #4 ; (adr r2, 8031978 ) + 8031974: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8031978: 0803198d .word 0x0803198d + 803197c: 0803199b .word 0x0803199b + 8031980: 080319a9 .word 0x080319a9 + 8031984: 080319b7 .word 0x080319b7 + 8031988: 080319c5 .word 0x080319c5 case 0: r = v; - 8031a20: 793b ldrb r3, [r7, #4] - 8031a22: 75fb strb r3, [r7, #23] + 803198c: 793b ldrb r3, [r7, #4] + 803198e: 75fb strb r3, [r7, #23] g = t; - 8031a24: 7c3b ldrb r3, [r7, #16] - 8031a26: 75bb strb r3, [r7, #22] + 8031990: 7c3b ldrb r3, [r7, #16] + 8031992: 75bb strb r3, [r7, #22] b = p; - 8031a28: 7cbb ldrb r3, [r7, #18] - 8031a2a: 757b strb r3, [r7, #21] + 8031994: 7cbb ldrb r3, [r7, #18] + 8031996: 757b strb r3, [r7, #21] break; - 8031a2c: e022 b.n 8031a74 + 8031998: e022 b.n 80319e0 case 1: r = q; - 8031a2e: 7c7b ldrb r3, [r7, #17] - 8031a30: 75fb strb r3, [r7, #23] + 803199a: 7c7b ldrb r3, [r7, #17] + 803199c: 75fb strb r3, [r7, #23] g = v; - 8031a32: 793b ldrb r3, [r7, #4] - 8031a34: 75bb strb r3, [r7, #22] + 803199e: 793b ldrb r3, [r7, #4] + 80319a0: 75bb strb r3, [r7, #22] b = p; - 8031a36: 7cbb ldrb r3, [r7, #18] - 8031a38: 757b strb r3, [r7, #21] + 80319a2: 7cbb ldrb r3, [r7, #18] + 80319a4: 757b strb r3, [r7, #21] break; - 8031a3a: e01b b.n 8031a74 + 80319a6: e01b b.n 80319e0 case 2: r = p; - 8031a3c: 7cbb ldrb r3, [r7, #18] - 8031a3e: 75fb strb r3, [r7, #23] + 80319a8: 7cbb ldrb r3, [r7, #18] + 80319aa: 75fb strb r3, [r7, #23] g = v; - 8031a40: 793b ldrb r3, [r7, #4] - 8031a42: 75bb strb r3, [r7, #22] + 80319ac: 793b ldrb r3, [r7, #4] + 80319ae: 75bb strb r3, [r7, #22] b = t; - 8031a44: 7c3b ldrb r3, [r7, #16] - 8031a46: 757b strb r3, [r7, #21] + 80319b0: 7c3b ldrb r3, [r7, #16] + 80319b2: 757b strb r3, [r7, #21] break; - 8031a48: e014 b.n 8031a74 + 80319b4: e014 b.n 80319e0 case 3: r = p; - 8031a4a: 7cbb ldrb r3, [r7, #18] - 8031a4c: 75fb strb r3, [r7, #23] + 80319b6: 7cbb ldrb r3, [r7, #18] + 80319b8: 75fb strb r3, [r7, #23] g = q; - 8031a4e: 7c7b ldrb r3, [r7, #17] - 8031a50: 75bb strb r3, [r7, #22] + 80319ba: 7c7b ldrb r3, [r7, #17] + 80319bc: 75bb strb r3, [r7, #22] b = v; - 8031a52: 793b ldrb r3, [r7, #4] - 8031a54: 757b strb r3, [r7, #21] + 80319be: 793b ldrb r3, [r7, #4] + 80319c0: 757b strb r3, [r7, #21] break; - 8031a56: e00d b.n 8031a74 + 80319c2: e00d b.n 80319e0 case 4: r = t; - 8031a58: 7c3b ldrb r3, [r7, #16] - 8031a5a: 75fb strb r3, [r7, #23] + 80319c4: 7c3b ldrb r3, [r7, #16] + 80319c6: 75fb strb r3, [r7, #23] g = p; - 8031a5c: 7cbb ldrb r3, [r7, #18] - 8031a5e: 75bb strb r3, [r7, #22] + 80319c8: 7cbb ldrb r3, [r7, #18] + 80319ca: 75bb strb r3, [r7, #22] b = v; - 8031a60: 793b ldrb r3, [r7, #4] - 8031a62: 757b strb r3, [r7, #21] + 80319cc: 793b ldrb r3, [r7, #4] + 80319ce: 757b strb r3, [r7, #21] break; - 8031a64: e006 b.n 8031a74 + 80319d0: e006 b.n 80319e0 default: r = v; - 8031a66: 793b ldrb r3, [r7, #4] - 8031a68: 75fb strb r3, [r7, #23] + 80319d2: 793b ldrb r3, [r7, #4] + 80319d4: 75fb strb r3, [r7, #23] g = p; - 8031a6a: 7cbb ldrb r3, [r7, #18] - 8031a6c: 75bb strb r3, [r7, #22] + 80319d6: 7cbb ldrb r3, [r7, #18] + 80319d8: 75bb strb r3, [r7, #22] b = q; - 8031a6e: 7c7b ldrb r3, [r7, #17] - 8031a70: 757b strb r3, [r7, #21] + 80319da: 7c7b ldrb r3, [r7, #17] + 80319dc: 757b strb r3, [r7, #21] break; - 8031a72: bf00 nop + 80319de: bf00 nop } lv_color_t result = lv_color_make(r, g, b); - 8031a74: 7d7a ldrb r2, [r7, #21] - 8031a76: 7db9 ldrb r1, [r7, #22] - 8031a78: 7dfb ldrb r3, [r7, #23] - 8031a7a: 4618 mov r0, r3 - 8031a7c: f7ff fea4 bl 80317c8 - 8031a80: 4603 mov r3, r0 - 8031a82: 81bb strh r3, [r7, #12] + 80319e0: 7d7a ldrb r2, [r7, #21] + 80319e2: 7db9 ldrb r1, [r7, #22] + 80319e4: 7dfb ldrb r3, [r7, #23] + 80319e6: 4618 mov r0, r3 + 80319e8: f7ff fea4 bl 8031734 + 80319ec: 4603 mov r3, r0 + 80319ee: 81bb strh r3, [r7, #12] return result; - 8031a84: 89bb ldrh r3, [r7, #12] + 80319f0: 89bb ldrh r3, [r7, #12] } - 8031a86: 4618 mov r0, r3 - 8031a88: 3718 adds r7, #24 - 8031a8a: 46bd mov sp, r7 - 8031a8c: bd80 pop {r7, pc} - 8031a8e: bf00 nop - 8031a90: 16c16c17 .word 0x16c16c17 - 8031a94: 51eb851f .word 0x51eb851f - 8031a98: 2fa0be83 .word 0x2fa0be83 + 80319f2: 4618 mov r0, r3 + 80319f4: 3718 adds r7, #24 + 80319f6: 46bd mov sp, r7 + 80319f8: bd80 pop {r7, pc} + 80319fa: bf00 nop + 80319fc: 16c16c17 .word 0x16c16c17 + 8031a00: 51eb851f .word 0x51eb851f + 8031a04: 2fa0be83 .word 0x2fa0be83 -08031a9c : +08031a08 : color32.full = lv_color_to32(color); return lv_color_rgb_to_hsv(color32.ch.red, color32.ch.green, color32.ch.blue); } lv_color_t lv_palette_main(lv_palette_t p) { - 8031a9c: b580 push {r7, lr} - 8031a9e: b082 sub sp, #8 - 8031aa0: af00 add r7, sp, #0 - 8031aa2: 4603 mov r3, r0 - 8031aa4: 71fb strb r3, [r7, #7] + 8031a08: b580 push {r7, lr} + 8031a0a: b082 sub sp, #8 + 8031a0c: af00 add r7, sp, #0 + 8031a0e: 4603 mov r3, r0 + 8031a10: 71fb strb r3, [r7, #7] LV_COLOR_MAKE(0x00, 0x96, 0x88), LV_COLOR_MAKE(0x4C, 0xAF, 0x50), LV_COLOR_MAKE(0x8B, 0xC3, 0x4A), LV_COLOR_MAKE(0xCD, 0xDC, 0x39), LV_COLOR_MAKE(0xFF, 0xEB, 0x3B), LV_COLOR_MAKE(0xFF, 0xC1, 0x07), LV_COLOR_MAKE(0xFF, 0x98, 0x00), LV_COLOR_MAKE(0xFF, 0x57, 0x22), LV_COLOR_MAKE(0x79, 0x55, 0x48), LV_COLOR_MAKE(0x60, 0x7D, 0x8B), LV_COLOR_MAKE(0x9E, 0x9E, 0x9E) }; if(p >= _LV_PALETTE_LAST) { - 8031aa6: 79fb ldrb r3, [r7, #7] - 8031aa8: 2b12 cmp r3, #18 - 8031aaa: d903 bls.n 8031ab4 + 8031a12: 79fb ldrb r3, [r7, #7] + 8031a14: 2b12 cmp r3, #18 + 8031a16: d903 bls.n 8031a20 LV_LOG_WARN("Invalid palette: %d", p); return lv_color_black(); - 8031aac: f7ff feb5 bl 803181a - 8031ab0: 4603 mov r3, r0 - 8031ab2: e003 b.n 8031abc + 8031a18: f7ff feb5 bl 8031786 + 8031a1c: 4603 mov r3, r0 + 8031a1e: e003 b.n 8031a28 } return colors[p]; - 8031ab4: 79fb ldrb r3, [r7, #7] - 8031ab6: 4a03 ldr r2, [pc, #12] ; (8031ac4 ) - 8031ab8: f832 3013 ldrh.w r3, [r2, r3, lsl #1] + 8031a20: 79fb ldrb r3, [r7, #7] + 8031a22: 4a03 ldr r2, [pc, #12] ; (8031a30 ) + 8031a24: f832 3013 ldrh.w r3, [r2, r3, lsl #1] } - 8031abc: 4618 mov r0, r3 - 8031abe: 3708 adds r7, #8 - 8031ac0: 46bd mov sp, r7 - 8031ac2: bd80 pop {r7, pc} - 8031ac4: 08070774 .word 0x08070774 + 8031a28: 4618 mov r0, r3 + 8031a2a: 3708 adds r7, #8 + 8031a2c: 46bd mov sp, r7 + 8031a2e: bd80 pop {r7, pc} + 8031a30: 080706cc .word 0x080706cc -08031ac8 : +08031a34 : lv_color_t lv_palette_lighten(lv_palette_t p, uint8_t lvl) { - 8031ac8: b580 push {r7, lr} - 8031aca: b082 sub sp, #8 - 8031acc: af00 add r7, sp, #0 - 8031ace: 4603 mov r3, r0 - 8031ad0: 460a mov r2, r1 - 8031ad2: 71fb strb r3, [r7, #7] - 8031ad4: 4613 mov r3, r2 - 8031ad6: 71bb strb r3, [r7, #6] + 8031a34: b580 push {r7, lr} + 8031a36: b082 sub sp, #8 + 8031a38: af00 add r7, sp, #0 + 8031a3a: 4603 mov r3, r0 + 8031a3c: 460a mov r2, r1 + 8031a3e: 71fb strb r3, [r7, #7] + 8031a40: 4613 mov r3, r2 + 8031a42: 71bb strb r3, [r7, #6] {LV_COLOR_MAKE(0x8D, 0x6E, 0x63), LV_COLOR_MAKE(0xA1, 0x88, 0x7F), LV_COLOR_MAKE(0xBC, 0xAA, 0xA4), LV_COLOR_MAKE(0xD7, 0xCC, 0xC8), LV_COLOR_MAKE(0xEF, 0xEB, 0xE9)}, {LV_COLOR_MAKE(0x78, 0x90, 0x9C), LV_COLOR_MAKE(0x90, 0xA4, 0xAE), LV_COLOR_MAKE(0xB0, 0xBE, 0xC5), LV_COLOR_MAKE(0xCF, 0xD8, 0xDC), LV_COLOR_MAKE(0xEC, 0xEF, 0xF1)}, {LV_COLOR_MAKE(0xBD, 0xBD, 0xBD), LV_COLOR_MAKE(0xE0, 0xE0, 0xE0), LV_COLOR_MAKE(0xEE, 0xEE, 0xEE), LV_COLOR_MAKE(0xF5, 0xF5, 0xF5), LV_COLOR_MAKE(0xFA, 0xFA, 0xFA)}, }; if(p >= _LV_PALETTE_LAST) { - 8031ad8: 79fb ldrb r3, [r7, #7] - 8031ada: 2b12 cmp r3, #18 - 8031adc: d903 bls.n 8031ae6 + 8031a44: 79fb ldrb r3, [r7, #7] + 8031a46: 2b12 cmp r3, #18 + 8031a48: d903 bls.n 8031a52 LV_LOG_WARN("Invalid palette: %d", p); return lv_color_black(); - 8031ade: f7ff fe9c bl 803181a - 8031ae2: 4603 mov r3, r0 - 8031ae4: e015 b.n 8031b12 + 8031a4a: f7ff fe9c bl 8031786 + 8031a4e: 4603 mov r3, r0 + 8031a50: e015 b.n 8031a7e } if(lvl == 0 || lvl > 5) { - 8031ae6: 79bb ldrb r3, [r7, #6] - 8031ae8: 2b00 cmp r3, #0 - 8031aea: d002 beq.n 8031af2 - 8031aec: 79bb ldrb r3, [r7, #6] - 8031aee: 2b05 cmp r3, #5 - 8031af0: d903 bls.n 8031afa + 8031a52: 79bb ldrb r3, [r7, #6] + 8031a54: 2b00 cmp r3, #0 + 8031a56: d002 beq.n 8031a5e + 8031a58: 79bb ldrb r3, [r7, #6] + 8031a5a: 2b05 cmp r3, #5 + 8031a5c: d903 bls.n 8031a66 LV_LOG_WARN("Invalid level: %d. Must be 1..5", lvl); return lv_color_black(); - 8031af2: f7ff fe92 bl 803181a - 8031af6: 4603 mov r3, r0 - 8031af8: e00b b.n 8031b12 + 8031a5e: f7ff fe92 bl 8031786 + 8031a62: 4603 mov r3, r0 + 8031a64: e00b b.n 8031a7e } lvl--; - 8031afa: 79bb ldrb r3, [r7, #6] - 8031afc: 3b01 subs r3, #1 - 8031afe: 71bb strb r3, [r7, #6] + 8031a66: 79bb ldrb r3, [r7, #6] + 8031a68: 3b01 subs r3, #1 + 8031a6a: 71bb strb r3, [r7, #6] return colors[p][lvl]; - 8031b00: 79fa ldrb r2, [r7, #7] - 8031b02: 79b9 ldrb r1, [r7, #6] - 8031b04: 4805 ldr r0, [pc, #20] ; (8031b1c ) - 8031b06: 4613 mov r3, r2 - 8031b08: 009b lsls r3, r3, #2 - 8031b0a: 4413 add r3, r2 - 8031b0c: 440b add r3, r1 - 8031b0e: f830 3013 ldrh.w r3, [r0, r3, lsl #1] + 8031a6c: 79fa ldrb r2, [r7, #7] + 8031a6e: 79b9 ldrb r1, [r7, #6] + 8031a70: 4805 ldr r0, [pc, #20] ; (8031a88 ) + 8031a72: 4613 mov r3, r2 + 8031a74: 009b lsls r3, r3, #2 + 8031a76: 4413 add r3, r2 + 8031a78: 440b add r3, r1 + 8031a7a: f830 3013 ldrh.w r3, [r0, r3, lsl #1] } - 8031b12: 4618 mov r0, r3 - 8031b14: 3708 adds r7, #8 - 8031b16: 46bd mov sp, r7 - 8031b18: bd80 pop {r7, pc} - 8031b1a: bf00 nop - 8031b1c: 0807079c .word 0x0807079c + 8031a7e: 4618 mov r0, r3 + 8031a80: 3708 adds r7, #8 + 8031a82: 46bd mov sp, r7 + 8031a84: bd80 pop {r7, pc} + 8031a86: bf00 nop + 8031a88: 080706f4 .word 0x080706f4 -08031b20 : +08031a8c : lv_color_t lv_palette_darken(lv_palette_t p, uint8_t lvl) { - 8031b20: b580 push {r7, lr} - 8031b22: b082 sub sp, #8 - 8031b24: af00 add r7, sp, #0 - 8031b26: 4603 mov r3, r0 - 8031b28: 460a mov r2, r1 - 8031b2a: 71fb strb r3, [r7, #7] - 8031b2c: 4613 mov r3, r2 - 8031b2e: 71bb strb r3, [r7, #6] + 8031a8c: b580 push {r7, lr} + 8031a8e: b082 sub sp, #8 + 8031a90: af00 add r7, sp, #0 + 8031a92: 4603 mov r3, r0 + 8031a94: 460a mov r2, r1 + 8031a96: 71fb strb r3, [r7, #7] + 8031a98: 4613 mov r3, r2 + 8031a9a: 71bb strb r3, [r7, #6] {LV_COLOR_MAKE(0x6D, 0x4C, 0x41), LV_COLOR_MAKE(0x5D, 0x40, 0x37), LV_COLOR_MAKE(0x4E, 0x34, 0x2E), LV_COLOR_MAKE(0x3E, 0x27, 0x23)}, {LV_COLOR_MAKE(0x54, 0x6E, 0x7A), LV_COLOR_MAKE(0x45, 0x5A, 0x64), LV_COLOR_MAKE(0x37, 0x47, 0x4F), LV_COLOR_MAKE(0x26, 0x32, 0x38)}, {LV_COLOR_MAKE(0x75, 0x75, 0x75), LV_COLOR_MAKE(0x61, 0x61, 0x61), LV_COLOR_MAKE(0x42, 0x42, 0x42), LV_COLOR_MAKE(0x21, 0x21, 0x21)}, }; if(p >= _LV_PALETTE_LAST) { - 8031b30: 79fb ldrb r3, [r7, #7] - 8031b32: 2b12 cmp r3, #18 - 8031b34: d903 bls.n 8031b3e + 8031a9c: 79fb ldrb r3, [r7, #7] + 8031a9e: 2b12 cmp r3, #18 + 8031aa0: d903 bls.n 8031aaa LV_LOG_WARN("Invalid palette: %d", p); return lv_color_black(); - 8031b36: f7ff fe70 bl 803181a - 8031b3a: 4603 mov r3, r0 - 8031b3c: e013 b.n 8031b66 + 8031aa2: f7ff fe70 bl 8031786 + 8031aa6: 4603 mov r3, r0 + 8031aa8: e013 b.n 8031ad2 } if(lvl == 0 || lvl > 4) { - 8031b3e: 79bb ldrb r3, [r7, #6] - 8031b40: 2b00 cmp r3, #0 - 8031b42: d002 beq.n 8031b4a - 8031b44: 79bb ldrb r3, [r7, #6] - 8031b46: 2b04 cmp r3, #4 - 8031b48: d903 bls.n 8031b52 + 8031aaa: 79bb ldrb r3, [r7, #6] + 8031aac: 2b00 cmp r3, #0 + 8031aae: d002 beq.n 8031ab6 + 8031ab0: 79bb ldrb r3, [r7, #6] + 8031ab2: 2b04 cmp r3, #4 + 8031ab4: d903 bls.n 8031abe LV_LOG_WARN("Invalid level: %d. Must be 1..4", lvl); return lv_color_black(); - 8031b4a: f7ff fe66 bl 803181a - 8031b4e: 4603 mov r3, r0 - 8031b50: e009 b.n 8031b66 + 8031ab6: f7ff fe66 bl 8031786 + 8031aba: 4603 mov r3, r0 + 8031abc: e009 b.n 8031ad2 } lvl--; - 8031b52: 79bb ldrb r3, [r7, #6] - 8031b54: 3b01 subs r3, #1 - 8031b56: 71bb strb r3, [r7, #6] + 8031abe: 79bb ldrb r3, [r7, #6] + 8031ac0: 3b01 subs r3, #1 + 8031ac2: 71bb strb r3, [r7, #6] return colors[p][lvl]; - 8031b58: 79fa ldrb r2, [r7, #7] - 8031b5a: 79bb ldrb r3, [r7, #6] - 8031b5c: 4904 ldr r1, [pc, #16] ; (8031b70 ) - 8031b5e: 0092 lsls r2, r2, #2 - 8031b60: 4413 add r3, r2 - 8031b62: f831 3013 ldrh.w r3, [r1, r3, lsl #1] + 8031ac4: 79fa ldrb r2, [r7, #7] + 8031ac6: 79bb ldrb r3, [r7, #6] + 8031ac8: 4904 ldr r1, [pc, #16] ; (8031adc ) + 8031aca: 0092 lsls r2, r2, #2 + 8031acc: 4413 add r3, r2 + 8031ace: f831 3013 ldrh.w r3, [r1, r3, lsl #1] } - 8031b66: 4618 mov r0, r3 - 8031b68: 3708 adds r7, #8 - 8031b6a: 46bd mov sp, r7 - 8031b6c: bd80 pop {r7, pc} - 8031b6e: bf00 nop - 8031b70: 0807085c .word 0x0807085c + 8031ad2: 4618 mov r0, r3 + 8031ad4: 3708 adds r7, #8 + 8031ad6: 46bd mov sp, r7 + 8031ad8: bd80 pop {r7, pc} + 8031ada: bf00 nop + 8031adc: 080707b4 .word 0x080707b4 -08031b74 <_lv_fs_init>: +08031ae0 <_lv_fs_init>: /********************** * GLOBAL FUNCTIONS **********************/ void _lv_fs_init(void) { - 8031b74: b580 push {r7, lr} - 8031b76: af00 add r7, sp, #0 + 8031ae0: b580 push {r7, lr} + 8031ae2: af00 add r7, sp, #0 _lv_ll_init(&LV_GC_ROOT(_lv_fsdrv_ll), sizeof(lv_fs_drv_t *)); - 8031b78: 2104 movs r1, #4 - 8031b7a: 4802 ldr r0, [pc, #8] ; (8031b84 <_lv_fs_init+0x10>) - 8031b7c: f000 faf0 bl 8032160 <_lv_ll_init> + 8031ae4: 2104 movs r1, #4 + 8031ae6: 4802 ldr r0, [pc, #8] ; (8031af0 <_lv_fs_init+0x10>) + 8031ae8: f000 faf0 bl 80320cc <_lv_ll_init> } - 8031b80: bf00 nop - 8031b82: bd80 pop {r7, pc} - 8031b84: 20001d28 .word 0x20001d28 + 8031aec: bf00 nop + 8031aee: bd80 pop {r7, pc} + 8031af0: 20001d28 .word 0x20001d28 -08031b88 : +08031af4 : return drv->ready_cb(drv); } lv_fs_res_t lv_fs_open(lv_fs_file_t * file_p, const char * path, lv_fs_mode_t mode) { - 8031b88: b580 push {r7, lr} - 8031b8a: b088 sub sp, #32 - 8031b8c: af00 add r7, sp, #0 - 8031b8e: 60f8 str r0, [r7, #12] - 8031b90: 60b9 str r1, [r7, #8] - 8031b92: 4613 mov r3, r2 - 8031b94: 71fb strb r3, [r7, #7] + 8031af4: b580 push {r7, lr} + 8031af6: b088 sub sp, #32 + 8031af8: af00 add r7, sp, #0 + 8031afa: 60f8 str r0, [r7, #12] + 8031afc: 60b9 str r1, [r7, #8] + 8031afe: 4613 mov r3, r2 + 8031b00: 71fb strb r3, [r7, #7] if(path == NULL) { - 8031b96: 68bb ldr r3, [r7, #8] - 8031b98: 2b00 cmp r3, #0 - 8031b9a: d101 bne.n 8031ba0 + 8031b02: 68bb ldr r3, [r7, #8] + 8031b04: 2b00 cmp r3, #0 + 8031b06: d101 bne.n 8031b0c LV_LOG_WARN("Can't open file: path is NULL"); return LV_FS_RES_INV_PARAM; - 8031b9c: 230b movs r3, #11 - 8031b9e: e052 b.n 8031c46 + 8031b08: 230b movs r3, #11 + 8031b0a: e052 b.n 8031bb2 } char letter = path[0]; - 8031ba0: 68bb ldr r3, [r7, #8] - 8031ba2: 781b ldrb r3, [r3, #0] - 8031ba4: 77fb strb r3, [r7, #31] + 8031b0c: 68bb ldr r3, [r7, #8] + 8031b0e: 781b ldrb r3, [r3, #0] + 8031b10: 77fb strb r3, [r7, #31] lv_fs_drv_t * drv = lv_fs_get_drv(letter); - 8031ba6: 7ffb ldrb r3, [r7, #31] - 8031ba8: 4618 mov r0, r3 - 8031baa: f000 fa73 bl 8032094 - 8031bae: 61b8 str r0, [r7, #24] + 8031b12: 7ffb ldrb r3, [r7, #31] + 8031b14: 4618 mov r0, r3 + 8031b16: f000 fa73 bl 8032000 + 8031b1a: 61b8 str r0, [r7, #24] if(drv == NULL) { - 8031bb0: 69bb ldr r3, [r7, #24] - 8031bb2: 2b00 cmp r3, #0 - 8031bb4: d101 bne.n 8031bba + 8031b1c: 69bb ldr r3, [r7, #24] + 8031b1e: 2b00 cmp r3, #0 + 8031b20: d101 bne.n 8031b26 LV_LOG_WARN("Can't open file (%s): unknown driver letter", path); return LV_FS_RES_NOT_EX; - 8031bb6: 2303 movs r3, #3 - 8031bb8: e045 b.n 8031c46 + 8031b22: 2303 movs r3, #3 + 8031b24: e045 b.n 8031bb2 } if(drv->ready_cb) { - 8031bba: 69bb ldr r3, [r7, #24] - 8031bbc: 685b ldr r3, [r3, #4] - 8031bbe: 2b00 cmp r3, #0 - 8031bc0: d00b beq.n 8031bda + 8031b26: 69bb ldr r3, [r7, #24] + 8031b28: 685b ldr r3, [r3, #4] + 8031b2a: 2b00 cmp r3, #0 + 8031b2c: d00b beq.n 8031b46 if(drv->ready_cb(drv) == false) { - 8031bc2: 69bb ldr r3, [r7, #24] - 8031bc4: 685b ldr r3, [r3, #4] - 8031bc6: 69b8 ldr r0, [r7, #24] - 8031bc8: 4798 blx r3 - 8031bca: 4603 mov r3, r0 - 8031bcc: f083 0301 eor.w r3, r3, #1 - 8031bd0: b2db uxtb r3, r3 - 8031bd2: 2b00 cmp r3, #0 - 8031bd4: d001 beq.n 8031bda + 8031b2e: 69bb ldr r3, [r7, #24] + 8031b30: 685b ldr r3, [r3, #4] + 8031b32: 69b8 ldr r0, [r7, #24] + 8031b34: 4798 blx r3 + 8031b36: 4603 mov r3, r0 + 8031b38: f083 0301 eor.w r3, r3, #1 + 8031b3c: b2db uxtb r3, r3 + 8031b3e: 2b00 cmp r3, #0 + 8031b40: d001 beq.n 8031b46 LV_LOG_WARN("Can't open file (%s): driver not ready", path); return LV_FS_RES_HW_ERR; - 8031bd6: 2301 movs r3, #1 - 8031bd8: e035 b.n 8031c46 + 8031b42: 2301 movs r3, #1 + 8031b44: e035 b.n 8031bb2 } } if(drv->open_cb == NULL) { - 8031bda: 69bb ldr r3, [r7, #24] - 8031bdc: 689b ldr r3, [r3, #8] - 8031bde: 2b00 cmp r3, #0 - 8031be0: d101 bne.n 8031be6 + 8031b46: 69bb ldr r3, [r7, #24] + 8031b48: 689b ldr r3, [r3, #8] + 8031b4a: 2b00 cmp r3, #0 + 8031b4c: d101 bne.n 8031b52 LV_LOG_WARN("Can't open file (%s): open function not exists", path); return LV_FS_RES_NOT_IMP; - 8031be2: 2309 movs r3, #9 - 8031be4: e02f b.n 8031c46 + 8031b4e: 2309 movs r3, #9 + 8031b50: e02f b.n 8031bb2 } const char * real_path = lv_fs_get_real_path(path); - 8031be6: 68b8 ldr r0, [r7, #8] - 8031be8: f000 faa6 bl 8032138 - 8031bec: 6178 str r0, [r7, #20] + 8031b52: 68b8 ldr r0, [r7, #8] + 8031b54: f000 faa6 bl 80320a4 + 8031b58: 6178 str r0, [r7, #20] void * file_d = drv->open_cb(drv, real_path, mode); - 8031bee: 69bb ldr r3, [r7, #24] - 8031bf0: 689b ldr r3, [r3, #8] - 8031bf2: 79fa ldrb r2, [r7, #7] - 8031bf4: 6979 ldr r1, [r7, #20] - 8031bf6: 69b8 ldr r0, [r7, #24] - 8031bf8: 4798 blx r3 - 8031bfa: 6138 str r0, [r7, #16] + 8031b5a: 69bb ldr r3, [r7, #24] + 8031b5c: 689b ldr r3, [r3, #8] + 8031b5e: 79fa ldrb r2, [r7, #7] + 8031b60: 6979 ldr r1, [r7, #20] + 8031b62: 69b8 ldr r0, [r7, #24] + 8031b64: 4798 blx r3 + 8031b66: 6138 str r0, [r7, #16] if(file_d == NULL || file_d == (void *)(-1)) { - 8031bfc: 693b ldr r3, [r7, #16] - 8031bfe: 2b00 cmp r3, #0 - 8031c00: d003 beq.n 8031c0a - 8031c02: 693b ldr r3, [r7, #16] - 8031c04: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 8031c08: d101 bne.n 8031c0e + 8031b68: 693b ldr r3, [r7, #16] + 8031b6a: 2b00 cmp r3, #0 + 8031b6c: d003 beq.n 8031b76 + 8031b6e: 693b ldr r3, [r7, #16] + 8031b70: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 8031b74: d101 bne.n 8031b7a return LV_FS_RES_UNKNOWN; - 8031c0a: 230c movs r3, #12 - 8031c0c: e01b b.n 8031c46 + 8031b76: 230c movs r3, #12 + 8031b78: e01b b.n 8031bb2 } file_p->drv = drv; - 8031c0e: 68fb ldr r3, [r7, #12] - 8031c10: 69ba ldr r2, [r7, #24] - 8031c12: 605a str r2, [r3, #4] + 8031b7a: 68fb ldr r3, [r7, #12] + 8031b7c: 69ba ldr r2, [r7, #24] + 8031b7e: 605a str r2, [r3, #4] file_p->file_d = file_d; - 8031c14: 68fb ldr r3, [r7, #12] - 8031c16: 693a ldr r2, [r7, #16] - 8031c18: 601a str r2, [r3, #0] + 8031b80: 68fb ldr r3, [r7, #12] + 8031b82: 693a ldr r2, [r7, #16] + 8031b84: 601a str r2, [r3, #0] if(drv->cache_size) { - 8031c1a: 69bb ldr r3, [r7, #24] - 8031c1c: 885b ldrh r3, [r3, #2] - 8031c1e: 2b00 cmp r3, #0 - 8031c20: d010 beq.n 8031c44 + 8031b86: 69bb ldr r3, [r7, #24] + 8031b88: 885b ldrh r3, [r3, #2] + 8031b8a: 2b00 cmp r3, #0 + 8031b8c: d010 beq.n 8031bb0 file_p->cache = lv_mem_alloc(sizeof(lv_fs_file_cache_t)); - 8031c22: 2010 movs r0, #16 - 8031c24: f000 fe38 bl 8032898 - 8031c28: 4602 mov r2, r0 - 8031c2a: 68fb ldr r3, [r7, #12] - 8031c2c: 609a str r2, [r3, #8] + 8031b8e: 2010 movs r0, #16 + 8031b90: f000 fe38 bl 8032804 + 8031b94: 4602 mov r2, r0 + 8031b96: 68fb ldr r3, [r7, #12] + 8031b98: 609a str r2, [r3, #8] LV_ASSERT_MALLOC(file_p->cache); - 8031c2e: 68fb ldr r3, [r7, #12] - 8031c30: 689b ldr r3, [r3, #8] - 8031c32: 2b00 cmp r3, #0 - 8031c34: d100 bne.n 8031c38 - 8031c36: e7fe b.n 8031c36 + 8031b9a: 68fb ldr r3, [r7, #12] + 8031b9c: 689b ldr r3, [r3, #8] + 8031b9e: 2b00 cmp r3, #0 + 8031ba0: d100 bne.n 8031ba4 + 8031ba2: e7fe b.n 8031ba2 lv_memset_00(file_p->cache, sizeof(lv_fs_file_cache_t)); - 8031c38: 68fb ldr r3, [r7, #12] - 8031c3a: 689b ldr r3, [r3, #8] - 8031c3c: 2110 movs r1, #16 - 8031c3e: 4618 mov r0, r3 - 8031c40: f001 fa86 bl 8033150 + 8031ba4: 68fb ldr r3, [r7, #12] + 8031ba6: 689b ldr r3, [r3, #8] + 8031ba8: 2110 movs r1, #16 + 8031baa: 4618 mov r0, r3 + 8031bac: f001 fa86 bl 80330bc } return LV_FS_RES_OK; - 8031c44: 2300 movs r3, #0 + 8031bb0: 2300 movs r3, #0 } - 8031c46: 4618 mov r0, r3 - 8031c48: 3720 adds r7, #32 - 8031c4a: 46bd mov sp, r7 - 8031c4c: bd80 pop {r7, pc} + 8031bb2: 4618 mov r0, r3 + 8031bb4: 3720 adds r7, #32 + 8031bb6: 46bd mov sp, r7 + 8031bb8: bd80 pop {r7, pc} -08031c4e : +08031bba : lv_fs_res_t lv_fs_close(lv_fs_file_t * file_p) { - 8031c4e: b580 push {r7, lr} - 8031c50: b084 sub sp, #16 - 8031c52: af00 add r7, sp, #0 - 8031c54: 6078 str r0, [r7, #4] + 8031bba: b580 push {r7, lr} + 8031bbc: b084 sub sp, #16 + 8031bbe: af00 add r7, sp, #0 + 8031bc0: 6078 str r0, [r7, #4] if(file_p->drv == NULL) { - 8031c56: 687b ldr r3, [r7, #4] - 8031c58: 685b ldr r3, [r3, #4] - 8031c5a: 2b00 cmp r3, #0 - 8031c5c: d101 bne.n 8031c62 + 8031bc2: 687b ldr r3, [r7, #4] + 8031bc4: 685b ldr r3, [r3, #4] + 8031bc6: 2b00 cmp r3, #0 + 8031bc8: d101 bne.n 8031bce return LV_FS_RES_INV_PARAM; - 8031c5e: 230b movs r3, #11 - 8031c60: e034 b.n 8031ccc + 8031bca: 230b movs r3, #11 + 8031bcc: e034 b.n 8031c38 } if(file_p->drv->close_cb == NULL) { - 8031c62: 687b ldr r3, [r7, #4] - 8031c64: 685b ldr r3, [r3, #4] - 8031c66: 68db ldr r3, [r3, #12] - 8031c68: 2b00 cmp r3, #0 - 8031c6a: d101 bne.n 8031c70 + 8031bce: 687b ldr r3, [r7, #4] + 8031bd0: 685b ldr r3, [r3, #4] + 8031bd2: 68db ldr r3, [r3, #12] + 8031bd4: 2b00 cmp r3, #0 + 8031bd6: d101 bne.n 8031bdc return LV_FS_RES_NOT_IMP; - 8031c6c: 2309 movs r3, #9 - 8031c6e: e02d b.n 8031ccc + 8031bd8: 2309 movs r3, #9 + 8031bda: e02d b.n 8031c38 } lv_fs_res_t res = file_p->drv->close_cb(file_p->drv, file_p->file_d); - 8031c70: 687b ldr r3, [r7, #4] - 8031c72: 685b ldr r3, [r3, #4] - 8031c74: 68db ldr r3, [r3, #12] - 8031c76: 687a ldr r2, [r7, #4] - 8031c78: 6850 ldr r0, [r2, #4] - 8031c7a: 687a ldr r2, [r7, #4] - 8031c7c: 6812 ldr r2, [r2, #0] - 8031c7e: 4611 mov r1, r2 - 8031c80: 4798 blx r3 - 8031c82: 4603 mov r3, r0 - 8031c84: 73fb strb r3, [r7, #15] + 8031bdc: 687b ldr r3, [r7, #4] + 8031bde: 685b ldr r3, [r3, #4] + 8031be0: 68db ldr r3, [r3, #12] + 8031be2: 687a ldr r2, [r7, #4] + 8031be4: 6850 ldr r0, [r2, #4] + 8031be6: 687a ldr r2, [r7, #4] + 8031be8: 6812 ldr r2, [r2, #0] + 8031bea: 4611 mov r1, r2 + 8031bec: 4798 blx r3 + 8031bee: 4603 mov r3, r0 + 8031bf0: 73fb strb r3, [r7, #15] if(file_p->drv->cache_size && file_p->cache) { - 8031c86: 687b ldr r3, [r7, #4] - 8031c88: 685b ldr r3, [r3, #4] - 8031c8a: 885b ldrh r3, [r3, #2] - 8031c8c: 2b00 cmp r3, #0 - 8031c8e: d013 beq.n 8031cb8 - 8031c90: 687b ldr r3, [r7, #4] - 8031c92: 689b ldr r3, [r3, #8] - 8031c94: 2b00 cmp r3, #0 - 8031c96: d00f beq.n 8031cb8 + 8031bf2: 687b ldr r3, [r7, #4] + 8031bf4: 685b ldr r3, [r3, #4] + 8031bf6: 885b ldrh r3, [r3, #2] + 8031bf8: 2b00 cmp r3, #0 + 8031bfa: d013 beq.n 8031c24 + 8031bfc: 687b ldr r3, [r7, #4] + 8031bfe: 689b ldr r3, [r3, #8] + 8031c00: 2b00 cmp r3, #0 + 8031c02: d00f beq.n 8031c24 if(file_p->cache->buffer) { - 8031c98: 687b ldr r3, [r7, #4] - 8031c9a: 689b ldr r3, [r3, #8] - 8031c9c: 68db ldr r3, [r3, #12] - 8031c9e: 2b00 cmp r3, #0 - 8031ca0: d005 beq.n 8031cae + 8031c04: 687b ldr r3, [r7, #4] + 8031c06: 689b ldr r3, [r3, #8] + 8031c08: 68db ldr r3, [r3, #12] + 8031c0a: 2b00 cmp r3, #0 + 8031c0c: d005 beq.n 8031c1a lv_mem_free(file_p->cache->buffer); - 8031ca2: 687b ldr r3, [r7, #4] - 8031ca4: 689b ldr r3, [r3, #8] - 8031ca6: 68db ldr r3, [r3, #12] - 8031ca8: 4618 mov r0, r3 - 8031caa: f000 fe17 bl 80328dc + 8031c0e: 687b ldr r3, [r7, #4] + 8031c10: 689b ldr r3, [r3, #8] + 8031c12: 68db ldr r3, [r3, #12] + 8031c14: 4618 mov r0, r3 + 8031c16: f000 fe17 bl 8032848 } lv_mem_free(file_p->cache); - 8031cae: 687b ldr r3, [r7, #4] - 8031cb0: 689b ldr r3, [r3, #8] - 8031cb2: 4618 mov r0, r3 - 8031cb4: f000 fe12 bl 80328dc + 8031c1a: 687b ldr r3, [r7, #4] + 8031c1c: 689b ldr r3, [r3, #8] + 8031c1e: 4618 mov r0, r3 + 8031c20: f000 fe12 bl 8032848 } file_p->file_d = NULL; - 8031cb8: 687b ldr r3, [r7, #4] - 8031cba: 2200 movs r2, #0 - 8031cbc: 601a str r2, [r3, #0] + 8031c24: 687b ldr r3, [r7, #4] + 8031c26: 2200 movs r2, #0 + 8031c28: 601a str r2, [r3, #0] file_p->drv = NULL; - 8031cbe: 687b ldr r3, [r7, #4] - 8031cc0: 2200 movs r2, #0 - 8031cc2: 605a str r2, [r3, #4] + 8031c2a: 687b ldr r3, [r7, #4] + 8031c2c: 2200 movs r2, #0 + 8031c2e: 605a str r2, [r3, #4] file_p->cache = NULL; - 8031cc4: 687b ldr r3, [r7, #4] - 8031cc6: 2200 movs r2, #0 - 8031cc8: 609a str r2, [r3, #8] + 8031c30: 687b ldr r3, [r7, #4] + 8031c32: 2200 movs r2, #0 + 8031c34: 609a str r2, [r3, #8] return res; - 8031cca: 7bfb ldrb r3, [r7, #15] + 8031c36: 7bfb ldrb r3, [r7, #15] } - 8031ccc: 4618 mov r0, r3 - 8031cce: 3710 adds r7, #16 - 8031cd0: 46bd mov sp, r7 - 8031cd2: bd80 pop {r7, pc} + 8031c38: 4618 mov r0, r3 + 8031c3a: 3710 adds r7, #16 + 8031c3c: 46bd mov sp, r7 + 8031c3e: bd80 pop {r7, pc} -08031cd4 : +08031c40 : static lv_fs_res_t lv_fs_read_cached(lv_fs_file_t * file_p, char * buf, uint32_t btr, uint32_t * br) { - 8031cd4: b5b0 push {r4, r5, r7, lr} - 8031cd6: b090 sub sp, #64 ; 0x40 - 8031cd8: af02 add r7, sp, #8 - 8031cda: 60f8 str r0, [r7, #12] - 8031cdc: 60b9 str r1, [r7, #8] - 8031cde: 607a str r2, [r7, #4] - 8031ce0: 603b str r3, [r7, #0] + 8031c40: b5b0 push {r4, r5, r7, lr} + 8031c42: b090 sub sp, #64 ; 0x40 + 8031c44: af02 add r7, sp, #8 + 8031c46: 60f8 str r0, [r7, #12] + 8031c48: 60b9 str r1, [r7, #8] + 8031c4a: 607a str r2, [r7, #4] + 8031c4c: 603b str r3, [r7, #0] lv_fs_res_t res = LV_FS_RES_OK; - 8031ce2: 2300 movs r3, #0 - 8031ce4: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 8031c4e: 2300 movs r3, #0 + 8031c50: f887 3037 strb.w r3, [r7, #55] ; 0x37 uint32_t file_position = file_p->cache->file_position; - 8031ce8: 68fb ldr r3, [r7, #12] - 8031cea: 689b ldr r3, [r3, #8] - 8031cec: 689b ldr r3, [r3, #8] - 8031cee: 62fb str r3, [r7, #44] ; 0x2c + 8031c54: 68fb ldr r3, [r7, #12] + 8031c56: 689b ldr r3, [r3, #8] + 8031c58: 689b ldr r3, [r3, #8] + 8031c5a: 62fb str r3, [r7, #44] ; 0x2c uint32_t start = file_p->cache->start; - 8031cf0: 68fb ldr r3, [r7, #12] - 8031cf2: 689b ldr r3, [r3, #8] - 8031cf4: 681b ldr r3, [r3, #0] - 8031cf6: 62bb str r3, [r7, #40] ; 0x28 + 8031c5c: 68fb ldr r3, [r7, #12] + 8031c5e: 689b ldr r3, [r3, #8] + 8031c60: 681b ldr r3, [r3, #0] + 8031c62: 62bb str r3, [r7, #40] ; 0x28 uint32_t end = file_p->cache->end; - 8031cf8: 68fb ldr r3, [r7, #12] - 8031cfa: 689b ldr r3, [r3, #8] - 8031cfc: 685b ldr r3, [r3, #4] - 8031cfe: 627b str r3, [r7, #36] ; 0x24 + 8031c64: 68fb ldr r3, [r7, #12] + 8031c66: 689b ldr r3, [r3, #8] + 8031c68: 685b ldr r3, [r3, #4] + 8031c6a: 627b str r3, [r7, #36] ; 0x24 char * buffer = file_p->cache->buffer; - 8031d00: 68fb ldr r3, [r7, #12] - 8031d02: 689b ldr r3, [r3, #8] - 8031d04: 68db ldr r3, [r3, #12] - 8031d06: 633b str r3, [r7, #48] ; 0x30 + 8031c6c: 68fb ldr r3, [r7, #12] + 8031c6e: 689b ldr r3, [r3, #8] + 8031c70: 68db ldr r3, [r3, #12] + 8031c72: 633b str r3, [r7, #48] ; 0x30 uint16_t buffer_size = file_p->drv->cache_size; - 8031d08: 68fb ldr r3, [r7, #12] - 8031d0a: 685b ldr r3, [r3, #4] - 8031d0c: 885b ldrh r3, [r3, #2] - 8031d0e: 847b strh r3, [r7, #34] ; 0x22 + 8031c74: 68fb ldr r3, [r7, #12] + 8031c76: 685b ldr r3, [r3, #4] + 8031c78: 885b ldrh r3, [r3, #2] + 8031c7a: 847b strh r3, [r7, #34] ; 0x22 if(start <= file_position && file_position < end) { - 8031d10: 6aba ldr r2, [r7, #40] ; 0x28 - 8031d12: 6afb ldr r3, [r7, #44] ; 0x2c - 8031d14: 429a cmp r2, r3 - 8031d16: d86c bhi.n 8031df2 - 8031d18: 6afa ldr r2, [r7, #44] ; 0x2c - 8031d1a: 6a7b ldr r3, [r7, #36] ; 0x24 - 8031d1c: 429a cmp r2, r3 - 8031d1e: d268 bcs.n 8031df2 + 8031c7c: 6aba ldr r2, [r7, #40] ; 0x28 + 8031c7e: 6afb ldr r3, [r7, #44] ; 0x2c + 8031c80: 429a cmp r2, r3 + 8031c82: d86c bhi.n 8031d5e + 8031c84: 6afa ldr r2, [r7, #44] ; 0x2c + 8031c86: 6a7b ldr r3, [r7, #36] ; 0x24 + 8031c88: 429a cmp r2, r3 + 8031c8a: d268 bcs.n 8031d5e /* Data can be read from cache buffer */ uint16_t buffer_offset = file_position - start; - 8031d20: 6afb ldr r3, [r7, #44] ; 0x2c - 8031d22: b29a uxth r2, r3 - 8031d24: 6abb ldr r3, [r7, #40] ; 0x28 - 8031d26: b29b uxth r3, r3 - 8031d28: 1ad3 subs r3, r2, r3 - 8031d2a: 843b strh r3, [r7, #32] + 8031c8c: 6afb ldr r3, [r7, #44] ; 0x2c + 8031c8e: b29a uxth r2, r3 + 8031c90: 6abb ldr r3, [r7, #40] ; 0x28 + 8031c92: b29b uxth r3, r3 + 8031c94: 1ad3 subs r3, r2, r3 + 8031c96: 843b strh r3, [r7, #32] uint16_t buffer_remaining_length = buffer_size - buffer_offset; - 8031d2c: 8c7a ldrh r2, [r7, #34] ; 0x22 - 8031d2e: 8c3b ldrh r3, [r7, #32] - 8031d30: 1ad3 subs r3, r2, r3 - 8031d32: 83fb strh r3, [r7, #30] + 8031c98: 8c7a ldrh r2, [r7, #34] ; 0x22 + 8031c9a: 8c3b ldrh r3, [r7, #32] + 8031c9c: 1ad3 subs r3, r2, r3 + 8031c9e: 83fb strh r3, [r7, #30] if(btr <= buffer_remaining_length) { - 8031d34: 8bfb ldrh r3, [r7, #30] - 8031d36: 687a ldr r2, [r7, #4] - 8031d38: 429a cmp r2, r3 - 8031d3a: d808 bhi.n 8031d4e + 8031ca0: 8bfb ldrh r3, [r7, #30] + 8031ca2: 687a ldr r2, [r7, #4] + 8031ca4: 429a cmp r2, r3 + 8031ca6: d808 bhi.n 8031cba /*Data is in cache buffer, and buffer end not reached, no need to read from FS*/ lv_memcpy(buf, buffer + buffer_offset, btr); - 8031d3c: 8c3b ldrh r3, [r7, #32] - 8031d3e: 6b3a ldr r2, [r7, #48] ; 0x30 - 8031d40: 4413 add r3, r2 - 8031d42: 687a ldr r2, [r7, #4] - 8031d44: 4619 mov r1, r3 - 8031d46: 68b8 ldr r0, [r7, #8] - 8031d48: f000 ff5e bl 8032c08 + 8031ca8: 8c3b ldrh r3, [r7, #32] + 8031caa: 6b3a ldr r2, [r7, #48] ; 0x30 + 8031cac: 4413 add r3, r2 + 8031cae: 687a ldr r2, [r7, #4] + 8031cb0: 4619 mov r1, r3 + 8031cb2: 68b8 ldr r0, [r7, #8] + 8031cb4: f000 ff5e bl 8032b74 if(start <= file_position && file_position < end) { - 8031d4c: e09e b.n 8031e8c + 8031cb8: e09e b.n 8031df8 } else { /*First part of data is in cache buffer, but we need to read rest of data from FS*/ lv_memcpy(buf, buffer + buffer_offset, buffer_remaining_length); - 8031d4e: 8c3b ldrh r3, [r7, #32] - 8031d50: 6b3a ldr r2, [r7, #48] ; 0x30 - 8031d52: 4413 add r3, r2 - 8031d54: 8bfa ldrh r2, [r7, #30] - 8031d56: 4619 mov r1, r3 - 8031d58: 68b8 ldr r0, [r7, #8] - 8031d5a: f000 ff55 bl 8032c08 + 8031cba: 8c3b ldrh r3, [r7, #32] + 8031cbc: 6b3a ldr r2, [r7, #48] ; 0x30 + 8031cbe: 4413 add r3, r2 + 8031cc0: 8bfa ldrh r2, [r7, #30] + 8031cc2: 4619 mov r1, r3 + 8031cc4: 68b8 ldr r0, [r7, #8] + 8031cc6: f000 ff55 bl 8032b74 if(btr > buffer_size) { + 8031cca: 8c7b ldrh r3, [r7, #34] ; 0x22 + 8031ccc: 687a ldr r2, [r7, #4] + 8031cce: 429a cmp r2, r3 + 8031cd0: d915 bls.n 8031cfe + /*If remaining data chuck is bigger than buffer size, then do not use cache, instead read it directly from FS*/ + res = file_p->drv->read_cb(file_p->drv, file_p->file_d, (void *)(buf + buffer_remaining_length), + 8031cd2: 68fb ldr r3, [r7, #12] + 8031cd4: 685b ldr r3, [r3, #4] + 8031cd6: 691c ldr r4, [r3, #16] + 8031cd8: 68fb ldr r3, [r7, #12] + 8031cda: 6858 ldr r0, [r3, #4] + 8031cdc: 68fb ldr r3, [r7, #12] + 8031cde: 6819 ldr r1, [r3, #0] + 8031ce0: 8bfb ldrh r3, [r7, #30] + 8031ce2: 68ba ldr r2, [r7, #8] + 8031ce4: 18d5 adds r5, r2, r3 + 8031ce6: 8bfb ldrh r3, [r7, #30] + 8031ce8: 687a ldr r2, [r7, #4] + 8031cea: 1ad2 subs r2, r2, r3 + 8031cec: 683b ldr r3, [r7, #0] + 8031cee: 9300 str r3, [sp, #0] + 8031cf0: 4613 mov r3, r2 + 8031cf2: 462a mov r2, r5 + 8031cf4: 47a0 blx r4 + 8031cf6: 4603 mov r3, r0 + 8031cf8: f887 3037 strb.w r3, [r7, #55] ; 0x37 + if(start <= file_position && file_position < end) { + 8031cfc: e07c b.n 8031df8 + btr - buffer_remaining_length, br); + } + else { + /*If remaining data chunk is smaller than buffer size, then read into cache buffer*/ + uint32_t bytes_read_to_buffer = 0; + 8031cfe: 2300 movs r3, #0 + 8031d00: 61bb str r3, [r7, #24] + + /*Read into cache buffer:*/ + res = file_p->drv->read_cb(file_p->drv, file_p->file_d, (void *)buffer, buffer_size, &bytes_read_to_buffer); + 8031d02: 68fb ldr r3, [r7, #12] + 8031d04: 685b ldr r3, [r3, #4] + 8031d06: 691c ldr r4, [r3, #16] + 8031d08: 68fb ldr r3, [r7, #12] + 8031d0a: 6858 ldr r0, [r3, #4] + 8031d0c: 68fb ldr r3, [r7, #12] + 8031d0e: 6819 ldr r1, [r3, #0] + 8031d10: 8c7a ldrh r2, [r7, #34] ; 0x22 + 8031d12: f107 0318 add.w r3, r7, #24 + 8031d16: 9300 str r3, [sp, #0] + 8031d18: 4613 mov r3, r2 + 8031d1a: 6b3a ldr r2, [r7, #48] ; 0x30 + 8031d1c: 47a0 blx r4 + 8031d1e: 4603 mov r3, r0 + 8031d20: f887 3037 strb.w r3, [r7, #55] ; 0x37 + file_p->cache->start = file_p->cache->end + 1; + 8031d24: 68fb ldr r3, [r7, #12] + 8031d26: 689b ldr r3, [r3, #8] + 8031d28: 685a ldr r2, [r3, #4] + 8031d2a: 68fb ldr r3, [r7, #12] + 8031d2c: 689b ldr r3, [r3, #8] + 8031d2e: 3201 adds r2, #1 + 8031d30: 601a str r2, [r3, #0] + file_p->cache->end = file_p->cache->start + bytes_read_to_buffer; + 8031d32: 68fb ldr r3, [r7, #12] + 8031d34: 689b ldr r3, [r3, #8] + 8031d36: 6819 ldr r1, [r3, #0] + 8031d38: 69ba ldr r2, [r7, #24] + 8031d3a: 68fb ldr r3, [r7, #12] + 8031d3c: 689b ldr r3, [r3, #8] + 8031d3e: 440a add r2, r1 + 8031d40: 605a str r2, [r3, #4] + + uint16_t data_chunk_remaining = btr - buffer_remaining_length; + 8031d42: 687b ldr r3, [r7, #4] + 8031d44: b29a uxth r2, r3 + 8031d46: 8bfb ldrh r3, [r7, #30] + 8031d48: 1ad3 subs r3, r2, r3 + 8031d4a: 83bb strh r3, [r7, #28] + memcpy(buf + buffer_remaining_length, buffer, data_chunk_remaining); + 8031d4c: 8bfb ldrh r3, [r7, #30] + 8031d4e: 68ba ldr r2, [r7, #8] + 8031d50: 4413 add r3, r2 + 8031d52: 8bba ldrh r2, [r7, #28] + 8031d54: 6b39 ldr r1, [r7, #48] ; 0x30 + 8031d56: 4618 mov r0, r3 + 8031d58: f014 fef2 bl 8046b40 + if(start <= file_position && file_position < end) { + 8031d5c: e04c b.n 8031df8 + } + } + else { + /*Data is not in cache buffer*/ + + if(btr > buffer_size) { 8031d5e: 8c7b ldrh r3, [r7, #34] ; 0x22 8031d60: 687a ldr r2, [r7, #4] 8031d62: 429a cmp r2, r3 - 8031d64: d915 bls.n 8031d92 - /*If remaining data chuck is bigger than buffer size, then do not use cache, instead read it directly from FS*/ - res = file_p->drv->read_cb(file_p->drv, file_p->file_d, (void *)(buf + buffer_remaining_length), + 8031d64: d90f bls.n 8031d86 + /*If bigger data is requested, then do not use cache, instead read it directly*/ + res = file_p->drv->read_cb(file_p->drv, file_p->file_d, (void *)buf, btr, br); 8031d66: 68fb ldr r3, [r7, #12] 8031d68: 685b ldr r3, [r3, #4] 8031d6a: 691c ldr r4, [r3, #16] @@ -111230,2858 +111244,2853 @@ static lv_fs_res_t lv_fs_read_cached(lv_fs_file_t * file_p, char * buf, uint32_t 8031d6e: 6858 ldr r0, [r3, #4] 8031d70: 68fb ldr r3, [r7, #12] 8031d72: 6819 ldr r1, [r3, #0] - 8031d74: 8bfb ldrh r3, [r7, #30] - 8031d76: 68ba ldr r2, [r7, #8] - 8031d78: 18d5 adds r5, r2, r3 - 8031d7a: 8bfb ldrh r3, [r7, #30] - 8031d7c: 687a ldr r2, [r7, #4] - 8031d7e: 1ad2 subs r2, r2, r3 - 8031d80: 683b ldr r3, [r7, #0] - 8031d82: 9300 str r3, [sp, #0] - 8031d84: 4613 mov r3, r2 - 8031d86: 462a mov r2, r5 - 8031d88: 47a0 blx r4 - 8031d8a: 4603 mov r3, r0 - 8031d8c: f887 3037 strb.w r3, [r7, #55] ; 0x37 - if(start <= file_position && file_position < end) { - 8031d90: e07c b.n 8031e8c - btr - buffer_remaining_length, br); - } - else { - /*If remaining data chunk is smaller than buffer size, then read into cache buffer*/ - uint32_t bytes_read_to_buffer = 0; - 8031d92: 2300 movs r3, #0 - 8031d94: 61bb str r3, [r7, #24] - - /*Read into cache buffer:*/ - res = file_p->drv->read_cb(file_p->drv, file_p->file_d, (void *)buffer, buffer_size, &bytes_read_to_buffer); - 8031d96: 68fb ldr r3, [r7, #12] - 8031d98: 685b ldr r3, [r3, #4] - 8031d9a: 691c ldr r4, [r3, #16] - 8031d9c: 68fb ldr r3, [r7, #12] - 8031d9e: 6858 ldr r0, [r3, #4] - 8031da0: 68fb ldr r3, [r7, #12] - 8031da2: 6819 ldr r1, [r3, #0] - 8031da4: 8c7a ldrh r2, [r7, #34] ; 0x22 - 8031da6: f107 0318 add.w r3, r7, #24 - 8031daa: 9300 str r3, [sp, #0] - 8031dac: 4613 mov r3, r2 - 8031dae: 6b3a ldr r2, [r7, #48] ; 0x30 - 8031db0: 47a0 blx r4 - 8031db2: 4603 mov r3, r0 - 8031db4: f887 3037 strb.w r3, [r7, #55] ; 0x37 - file_p->cache->start = file_p->cache->end + 1; - 8031db8: 68fb ldr r3, [r7, #12] - 8031dba: 689b ldr r3, [r3, #8] - 8031dbc: 685a ldr r2, [r3, #4] - 8031dbe: 68fb ldr r3, [r7, #12] - 8031dc0: 689b ldr r3, [r3, #8] - 8031dc2: 3201 adds r2, #1 - 8031dc4: 601a str r2, [r3, #0] - file_p->cache->end = file_p->cache->start + bytes_read_to_buffer; - 8031dc6: 68fb ldr r3, [r7, #12] - 8031dc8: 689b ldr r3, [r3, #8] - 8031dca: 6819 ldr r1, [r3, #0] - 8031dcc: 69ba ldr r2, [r7, #24] - 8031dce: 68fb ldr r3, [r7, #12] - 8031dd0: 689b ldr r3, [r3, #8] - 8031dd2: 440a add r2, r1 - 8031dd4: 605a str r2, [r3, #4] - - uint16_t data_chunk_remaining = btr - buffer_remaining_length; - 8031dd6: 687b ldr r3, [r7, #4] - 8031dd8: b29a uxth r2, r3 - 8031dda: 8bfb ldrh r3, [r7, #30] - 8031ddc: 1ad3 subs r3, r2, r3 - 8031dde: 83bb strh r3, [r7, #28] - memcpy(buf + buffer_remaining_length, buffer, data_chunk_remaining); - 8031de0: 8bfb ldrh r3, [r7, #30] - 8031de2: 68ba ldr r2, [r7, #8] - 8031de4: 4413 add r3, r2 - 8031de6: 8bba ldrh r2, [r7, #28] - 8031de8: 6b39 ldr r1, [r7, #48] ; 0x30 - 8031dea: 4618 mov r0, r3 - 8031dec: f014 fef2 bl 8046bd4 - if(start <= file_position && file_position < end) { - 8031df0: e04c b.n 8031e8c - } - } - else { - /*Data is not in cache buffer*/ - - if(btr > buffer_size) { - 8031df2: 8c7b ldrh r3, [r7, #34] ; 0x22 - 8031df4: 687a ldr r2, [r7, #4] - 8031df6: 429a cmp r2, r3 - 8031df8: d90f bls.n 8031e1a - /*If bigger data is requested, then do not use cache, instead read it directly*/ - res = file_p->drv->read_cb(file_p->drv, file_p->file_d, (void *)buf, btr, br); - 8031dfa: 68fb ldr r3, [r7, #12] - 8031dfc: 685b ldr r3, [r3, #4] - 8031dfe: 691c ldr r4, [r3, #16] - 8031e00: 68fb ldr r3, [r7, #12] - 8031e02: 6858 ldr r0, [r3, #4] - 8031e04: 68fb ldr r3, [r7, #12] - 8031e06: 6819 ldr r1, [r3, #0] - 8031e08: 683b ldr r3, [r7, #0] - 8031e0a: 9300 str r3, [sp, #0] - 8031e0c: 687b ldr r3, [r7, #4] - 8031e0e: 68ba ldr r2, [r7, #8] - 8031e10: 47a0 blx r4 - 8031e12: 4603 mov r3, r0 - 8031e14: f887 3037 strb.w r3, [r7, #55] ; 0x37 - 8031e18: e038 b.n 8031e8c + 8031d74: 683b ldr r3, [r7, #0] + 8031d76: 9300 str r3, [sp, #0] + 8031d78: 687b ldr r3, [r7, #4] + 8031d7a: 68ba ldr r2, [r7, #8] + 8031d7c: 47a0 blx r4 + 8031d7e: 4603 mov r3, r0 + 8031d80: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 8031d84: e038 b.n 8031df8 } else { /*If small data is requested, then read from FS into cache buffer*/ if(buffer == NULL) { - 8031e1a: 6b3b ldr r3, [r7, #48] ; 0x30 - 8031e1c: 2b00 cmp r3, #0 - 8031e1e: d111 bne.n 8031e44 + 8031d86: 6b3b ldr r3, [r7, #48] ; 0x30 + 8031d88: 2b00 cmp r3, #0 + 8031d8a: d111 bne.n 8031db0 file_p->cache->buffer = lv_mem_alloc(buffer_size); - 8031e20: 8c7a ldrh r2, [r7, #34] ; 0x22 - 8031e22: 68fb ldr r3, [r7, #12] - 8031e24: 689c ldr r4, [r3, #8] - 8031e26: 4610 mov r0, r2 - 8031e28: f000 fd36 bl 8032898 - 8031e2c: 4603 mov r3, r0 - 8031e2e: 60e3 str r3, [r4, #12] + 8031d8c: 8c7a ldrh r2, [r7, #34] ; 0x22 + 8031d8e: 68fb ldr r3, [r7, #12] + 8031d90: 689c ldr r4, [r3, #8] + 8031d92: 4610 mov r0, r2 + 8031d94: f000 fd36 bl 8032804 + 8031d98: 4603 mov r3, r0 + 8031d9a: 60e3 str r3, [r4, #12] LV_ASSERT_MALLOC(file_p->cache->buffer); - 8031e30: 68fb ldr r3, [r7, #12] - 8031e32: 689b ldr r3, [r3, #8] - 8031e34: 68db ldr r3, [r3, #12] - 8031e36: 2b00 cmp r3, #0 - 8031e38: d100 bne.n 8031e3c - 8031e3a: e7fe b.n 8031e3a + 8031d9c: 68fb ldr r3, [r7, #12] + 8031d9e: 689b ldr r3, [r3, #8] + 8031da0: 68db ldr r3, [r3, #12] + 8031da2: 2b00 cmp r3, #0 + 8031da4: d100 bne.n 8031da8 + 8031da6: e7fe b.n 8031da6 buffer = file_p->cache->buffer; - 8031e3c: 68fb ldr r3, [r7, #12] - 8031e3e: 689b ldr r3, [r3, #8] - 8031e40: 68db ldr r3, [r3, #12] - 8031e42: 633b str r3, [r7, #48] ; 0x30 + 8031da8: 68fb ldr r3, [r7, #12] + 8031daa: 689b ldr r3, [r3, #8] + 8031dac: 68db ldr r3, [r3, #12] + 8031dae: 633b str r3, [r7, #48] ; 0x30 } uint32_t bytes_read_to_buffer = 0; - 8031e44: 2300 movs r3, #0 - 8031e46: 617b str r3, [r7, #20] + 8031db0: 2300 movs r3, #0 + 8031db2: 617b str r3, [r7, #20] res = file_p->drv->read_cb(file_p->drv, file_p->file_d, (void *)buffer, buffer_size, &bytes_read_to_buffer); - 8031e48: 68fb ldr r3, [r7, #12] - 8031e4a: 685b ldr r3, [r3, #4] - 8031e4c: 691c ldr r4, [r3, #16] - 8031e4e: 68fb ldr r3, [r7, #12] - 8031e50: 6858 ldr r0, [r3, #4] - 8031e52: 68fb ldr r3, [r7, #12] - 8031e54: 6819 ldr r1, [r3, #0] - 8031e56: 8c7a ldrh r2, [r7, #34] ; 0x22 - 8031e58: f107 0314 add.w r3, r7, #20 - 8031e5c: 9300 str r3, [sp, #0] - 8031e5e: 4613 mov r3, r2 - 8031e60: 6b3a ldr r2, [r7, #48] ; 0x30 - 8031e62: 47a0 blx r4 - 8031e64: 4603 mov r3, r0 - 8031e66: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 8031db4: 68fb ldr r3, [r7, #12] + 8031db6: 685b ldr r3, [r3, #4] + 8031db8: 691c ldr r4, [r3, #16] + 8031dba: 68fb ldr r3, [r7, #12] + 8031dbc: 6858 ldr r0, [r3, #4] + 8031dbe: 68fb ldr r3, [r7, #12] + 8031dc0: 6819 ldr r1, [r3, #0] + 8031dc2: 8c7a ldrh r2, [r7, #34] ; 0x22 + 8031dc4: f107 0314 add.w r3, r7, #20 + 8031dc8: 9300 str r3, [sp, #0] + 8031dca: 4613 mov r3, r2 + 8031dcc: 6b3a ldr r2, [r7, #48] ; 0x30 + 8031dce: 47a0 blx r4 + 8031dd0: 4603 mov r3, r0 + 8031dd2: f887 3037 strb.w r3, [r7, #55] ; 0x37 file_p->cache->start = file_position; - 8031e6a: 68fb ldr r3, [r7, #12] - 8031e6c: 689b ldr r3, [r3, #8] - 8031e6e: 6afa ldr r2, [r7, #44] ; 0x2c - 8031e70: 601a str r2, [r3, #0] + 8031dd6: 68fb ldr r3, [r7, #12] + 8031dd8: 689b ldr r3, [r3, #8] + 8031dda: 6afa ldr r2, [r7, #44] ; 0x2c + 8031ddc: 601a str r2, [r3, #0] file_p->cache->end = file_p->cache->start + bytes_read_to_buffer; - 8031e72: 68fb ldr r3, [r7, #12] - 8031e74: 689b ldr r3, [r3, #8] - 8031e76: 6819 ldr r1, [r3, #0] - 8031e78: 697a ldr r2, [r7, #20] - 8031e7a: 68fb ldr r3, [r7, #12] - 8031e7c: 689b ldr r3, [r3, #8] - 8031e7e: 440a add r2, r1 - 8031e80: 605a str r2, [r3, #4] + 8031dde: 68fb ldr r3, [r7, #12] + 8031de0: 689b ldr r3, [r3, #8] + 8031de2: 6819 ldr r1, [r3, #0] + 8031de4: 697a ldr r2, [r7, #20] + 8031de6: 68fb ldr r3, [r7, #12] + 8031de8: 689b ldr r3, [r3, #8] + 8031dea: 440a add r2, r1 + 8031dec: 605a str r2, [r3, #4] memcpy(buf, buffer, btr); - 8031e82: 687a ldr r2, [r7, #4] - 8031e84: 6b39 ldr r1, [r7, #48] ; 0x30 - 8031e86: 68b8 ldr r0, [r7, #8] - 8031e88: f014 fea4 bl 8046bd4 + 8031dee: 687a ldr r2, [r7, #4] + 8031df0: 6b39 ldr r1, [r7, #48] ; 0x30 + 8031df2: 68b8 ldr r0, [r7, #8] + 8031df4: f014 fea4 bl 8046b40 } } if(res == LV_FS_RES_OK) { - 8031e8c: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 8031e90: 2b00 cmp r3, #0 - 8031e92: d10a bne.n 8031eaa + 8031df8: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 8031dfc: 2b00 cmp r3, #0 + 8031dfe: d10a bne.n 8031e16 *br = btr; - 8031e94: 683b ldr r3, [r7, #0] - 8031e96: 687a ldr r2, [r7, #4] - 8031e98: 601a str r2, [r3, #0] + 8031e00: 683b ldr r3, [r7, #0] + 8031e02: 687a ldr r2, [r7, #4] + 8031e04: 601a str r2, [r3, #0] file_p->cache->file_position += btr; - 8031e9a: 68fb ldr r3, [r7, #12] - 8031e9c: 689b ldr r3, [r3, #8] - 8031e9e: 6899 ldr r1, [r3, #8] - 8031ea0: 68fb ldr r3, [r7, #12] - 8031ea2: 689b ldr r3, [r3, #8] - 8031ea4: 687a ldr r2, [r7, #4] - 8031ea6: 440a add r2, r1 - 8031ea8: 609a str r2, [r3, #8] + 8031e06: 68fb ldr r3, [r7, #12] + 8031e08: 689b ldr r3, [r3, #8] + 8031e0a: 6899 ldr r1, [r3, #8] + 8031e0c: 68fb ldr r3, [r7, #12] + 8031e0e: 689b ldr r3, [r3, #8] + 8031e10: 687a ldr r2, [r7, #4] + 8031e12: 440a add r2, r1 + 8031e14: 609a str r2, [r3, #8] } return res; - 8031eaa: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 8031e16: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 } - 8031eae: 4618 mov r0, r3 - 8031eb0: 3738 adds r7, #56 ; 0x38 - 8031eb2: 46bd mov sp, r7 - 8031eb4: bdb0 pop {r4, r5, r7, pc} + 8031e1a: 4618 mov r0, r3 + 8031e1c: 3738 adds r7, #56 ; 0x38 + 8031e1e: 46bd mov sp, r7 + 8031e20: bdb0 pop {r4, r5, r7, pc} -08031eb6 : +08031e22 : lv_fs_res_t lv_fs_read(lv_fs_file_t * file_p, void * buf, uint32_t btr, uint32_t * br) { - 8031eb6: b590 push {r4, r7, lr} - 8031eb8: b089 sub sp, #36 ; 0x24 - 8031eba: af02 add r7, sp, #8 - 8031ebc: 60f8 str r0, [r7, #12] - 8031ebe: 60b9 str r1, [r7, #8] - 8031ec0: 607a str r2, [r7, #4] - 8031ec2: 603b str r3, [r7, #0] + 8031e22: b590 push {r4, r7, lr} + 8031e24: b089 sub sp, #36 ; 0x24 + 8031e26: af02 add r7, sp, #8 + 8031e28: 60f8 str r0, [r7, #12] + 8031e2a: 60b9 str r1, [r7, #8] + 8031e2c: 607a str r2, [r7, #4] + 8031e2e: 603b str r3, [r7, #0] if(br != NULL) *br = 0; - 8031ec4: 683b ldr r3, [r7, #0] - 8031ec6: 2b00 cmp r3, #0 - 8031ec8: d002 beq.n 8031ed0 - 8031eca: 683b ldr r3, [r7, #0] - 8031ecc: 2200 movs r2, #0 - 8031ece: 601a str r2, [r3, #0] + 8031e30: 683b ldr r3, [r7, #0] + 8031e32: 2b00 cmp r3, #0 + 8031e34: d002 beq.n 8031e3c + 8031e36: 683b ldr r3, [r7, #0] + 8031e38: 2200 movs r2, #0 + 8031e3a: 601a str r2, [r3, #0] if(file_p->drv == NULL) return LV_FS_RES_INV_PARAM; - 8031ed0: 68fb ldr r3, [r7, #12] - 8031ed2: 685b ldr r3, [r3, #4] - 8031ed4: 2b00 cmp r3, #0 - 8031ed6: d101 bne.n 8031edc - 8031ed8: 230b movs r3, #11 - 8031eda: e02d b.n 8031f38 + 8031e3c: 68fb ldr r3, [r7, #12] + 8031e3e: 685b ldr r3, [r3, #4] + 8031e40: 2b00 cmp r3, #0 + 8031e42: d101 bne.n 8031e48 + 8031e44: 230b movs r3, #11 + 8031e46: e02d b.n 8031ea4 if(file_p->drv->read_cb == NULL) return LV_FS_RES_NOT_IMP; - 8031edc: 68fb ldr r3, [r7, #12] - 8031ede: 685b ldr r3, [r3, #4] - 8031ee0: 691b ldr r3, [r3, #16] - 8031ee2: 2b00 cmp r3, #0 - 8031ee4: d101 bne.n 8031eea - 8031ee6: 2309 movs r3, #9 - 8031ee8: e026 b.n 8031f38 + 8031e48: 68fb ldr r3, [r7, #12] + 8031e4a: 685b ldr r3, [r3, #4] + 8031e4c: 691b ldr r3, [r3, #16] + 8031e4e: 2b00 cmp r3, #0 + 8031e50: d101 bne.n 8031e56 + 8031e52: 2309 movs r3, #9 + 8031e54: e026 b.n 8031ea4 uint32_t br_tmp = 0; - 8031eea: 2300 movs r3, #0 - 8031eec: 613b str r3, [r7, #16] + 8031e56: 2300 movs r3, #0 + 8031e58: 613b str r3, [r7, #16] lv_fs_res_t res; if(file_p->drv->cache_size) { - 8031eee: 68fb ldr r3, [r7, #12] - 8031ef0: 685b ldr r3, [r3, #4] - 8031ef2: 885b ldrh r3, [r3, #2] - 8031ef4: 2b00 cmp r3, #0 - 8031ef6: d009 beq.n 8031f0c + 8031e5a: 68fb ldr r3, [r7, #12] + 8031e5c: 685b ldr r3, [r3, #4] + 8031e5e: 885b ldrh r3, [r3, #2] + 8031e60: 2b00 cmp r3, #0 + 8031e62: d009 beq.n 8031e78 res = lv_fs_read_cached(file_p, (char *)buf, btr, &br_tmp); - 8031ef8: f107 0310 add.w r3, r7, #16 - 8031efc: 687a ldr r2, [r7, #4] - 8031efe: 68b9 ldr r1, [r7, #8] - 8031f00: 68f8 ldr r0, [r7, #12] - 8031f02: f7ff fee7 bl 8031cd4 - 8031f06: 4603 mov r3, r0 - 8031f08: 75fb strb r3, [r7, #23] - 8031f0a: e00e b.n 8031f2a + 8031e64: f107 0310 add.w r3, r7, #16 + 8031e68: 687a ldr r2, [r7, #4] + 8031e6a: 68b9 ldr r1, [r7, #8] + 8031e6c: 68f8 ldr r0, [r7, #12] + 8031e6e: f7ff fee7 bl 8031c40 + 8031e72: 4603 mov r3, r0 + 8031e74: 75fb strb r3, [r7, #23] + 8031e76: e00e b.n 8031e96 } else { res = file_p->drv->read_cb(file_p->drv, file_p->file_d, buf, btr, &br_tmp); - 8031f0c: 68fb ldr r3, [r7, #12] - 8031f0e: 685b ldr r3, [r3, #4] - 8031f10: 691c ldr r4, [r3, #16] - 8031f12: 68fb ldr r3, [r7, #12] - 8031f14: 6858 ldr r0, [r3, #4] - 8031f16: 68fb ldr r3, [r7, #12] - 8031f18: 6819 ldr r1, [r3, #0] - 8031f1a: f107 0310 add.w r3, r7, #16 - 8031f1e: 9300 str r3, [sp, #0] - 8031f20: 687b ldr r3, [r7, #4] - 8031f22: 68ba ldr r2, [r7, #8] - 8031f24: 47a0 blx r4 - 8031f26: 4603 mov r3, r0 - 8031f28: 75fb strb r3, [r7, #23] + 8031e78: 68fb ldr r3, [r7, #12] + 8031e7a: 685b ldr r3, [r3, #4] + 8031e7c: 691c ldr r4, [r3, #16] + 8031e7e: 68fb ldr r3, [r7, #12] + 8031e80: 6858 ldr r0, [r3, #4] + 8031e82: 68fb ldr r3, [r7, #12] + 8031e84: 6819 ldr r1, [r3, #0] + 8031e86: f107 0310 add.w r3, r7, #16 + 8031e8a: 9300 str r3, [sp, #0] + 8031e8c: 687b ldr r3, [r7, #4] + 8031e8e: 68ba ldr r2, [r7, #8] + 8031e90: 47a0 blx r4 + 8031e92: 4603 mov r3, r0 + 8031e94: 75fb strb r3, [r7, #23] } if(br != NULL) *br = br_tmp; - 8031f2a: 683b ldr r3, [r7, #0] - 8031f2c: 2b00 cmp r3, #0 - 8031f2e: d002 beq.n 8031f36 - 8031f30: 693a ldr r2, [r7, #16] - 8031f32: 683b ldr r3, [r7, #0] - 8031f34: 601a str r2, [r3, #0] + 8031e96: 683b ldr r3, [r7, #0] + 8031e98: 2b00 cmp r3, #0 + 8031e9a: d002 beq.n 8031ea2 + 8031e9c: 693a ldr r2, [r7, #16] + 8031e9e: 683b ldr r3, [r7, #0] + 8031ea0: 601a str r2, [r3, #0] return res; - 8031f36: 7dfb ldrb r3, [r7, #23] + 8031ea2: 7dfb ldrb r3, [r7, #23] } - 8031f38: 4618 mov r0, r3 - 8031f3a: 371c adds r7, #28 - 8031f3c: 46bd mov sp, r7 - 8031f3e: bd90 pop {r4, r7, pc} + 8031ea4: 4618 mov r0, r3 + 8031ea6: 371c adds r7, #28 + 8031ea8: 46bd mov sp, r7 + 8031eaa: bd90 pop {r4, r7, pc} -08031f40 : +08031eac : return res; } lv_fs_res_t lv_fs_seek(lv_fs_file_t * file_p, uint32_t pos, lv_fs_whence_t whence) { - 8031f40: b590 push {r4, r7, lr} - 8031f42: b087 sub sp, #28 - 8031f44: af00 add r7, sp, #0 - 8031f46: 60f8 str r0, [r7, #12] - 8031f48: 60b9 str r1, [r7, #8] - 8031f4a: 4613 mov r3, r2 - 8031f4c: 71fb strb r3, [r7, #7] + 8031eac: b590 push {r4, r7, lr} + 8031eae: b087 sub sp, #28 + 8031eb0: af00 add r7, sp, #0 + 8031eb2: 60f8 str r0, [r7, #12] + 8031eb4: 60b9 str r1, [r7, #8] + 8031eb6: 4613 mov r3, r2 + 8031eb8: 71fb strb r3, [r7, #7] if(file_p->drv == NULL) { - 8031f4e: 68fb ldr r3, [r7, #12] - 8031f50: 685b ldr r3, [r3, #4] - 8031f52: 2b00 cmp r3, #0 - 8031f54: d101 bne.n 8031f5a + 8031eba: 68fb ldr r3, [r7, #12] + 8031ebc: 685b ldr r3, [r3, #4] + 8031ebe: 2b00 cmp r3, #0 + 8031ec0: d101 bne.n 8031ec6 return LV_FS_RES_INV_PARAM; - 8031f56: 230b movs r3, #11 - 8031f58: e098 b.n 803208c + 8031ec2: 230b movs r3, #11 + 8031ec4: e098 b.n 8031ff8 } if(file_p->drv->seek_cb == NULL) { - 8031f5a: 68fb ldr r3, [r7, #12] - 8031f5c: 685b ldr r3, [r3, #4] - 8031f5e: 699b ldr r3, [r3, #24] - 8031f60: 2b00 cmp r3, #0 - 8031f62: d101 bne.n 8031f68 + 8031ec6: 68fb ldr r3, [r7, #12] + 8031ec8: 685b ldr r3, [r3, #4] + 8031eca: 699b ldr r3, [r3, #24] + 8031ecc: 2b00 cmp r3, #0 + 8031ece: d101 bne.n 8031ed4 return LV_FS_RES_NOT_IMP; - 8031f64: 2309 movs r3, #9 - 8031f66: e091 b.n 803208c + 8031ed0: 2309 movs r3, #9 + 8031ed2: e091 b.n 8031ff8 } lv_fs_res_t res = LV_FS_RES_OK; - 8031f68: 2300 movs r3, #0 - 8031f6a: 75fb strb r3, [r7, #23] + 8031ed4: 2300 movs r3, #0 + 8031ed6: 75fb strb r3, [r7, #23] if(file_p->drv->cache_size) { - 8031f6c: 68fb ldr r3, [r7, #12] - 8031f6e: 685b ldr r3, [r3, #4] - 8031f70: 885b ldrh r3, [r3, #2] - 8031f72: 2b00 cmp r3, #0 - 8031f74: d077 beq.n 8032066 + 8031ed8: 68fb ldr r3, [r7, #12] + 8031eda: 685b ldr r3, [r3, #4] + 8031edc: 885b ldrh r3, [r3, #2] + 8031ede: 2b00 cmp r3, #0 + 8031ee0: d077 beq.n 8031fd2 switch(whence) { - 8031f76: 79fb ldrb r3, [r7, #7] - 8031f78: 2b02 cmp r3, #2 - 8031f7a: d051 beq.n 8032020 - 8031f7c: 2b02 cmp r3, #2 - 8031f7e: f300 8084 bgt.w 803208a - 8031f82: 2b00 cmp r3, #0 - 8031f84: d002 beq.n 8031f8c - 8031f86: 2b01 cmp r3, #1 - 8031f88: d023 beq.n 8031fd2 - 8031f8a: e07e b.n 803208a + 8031ee2: 79fb ldrb r3, [r7, #7] + 8031ee4: 2b02 cmp r3, #2 + 8031ee6: d051 beq.n 8031f8c + 8031ee8: 2b02 cmp r3, #2 + 8031eea: f300 8084 bgt.w 8031ff6 + 8031eee: 2b00 cmp r3, #0 + 8031ef0: d002 beq.n 8031ef8 + 8031ef2: 2b01 cmp r3, #1 + 8031ef4: d023 beq.n 8031f3e + 8031ef6: e07e b.n 8031ff6 case LV_FS_SEEK_SET: { file_p->cache->file_position = pos; - 8031f8c: 68fb ldr r3, [r7, #12] - 8031f8e: 689b ldr r3, [r3, #8] - 8031f90: 68ba ldr r2, [r7, #8] - 8031f92: 609a str r2, [r3, #8] + 8031ef8: 68fb ldr r3, [r7, #12] + 8031efa: 689b ldr r3, [r3, #8] + 8031efc: 68ba ldr r2, [r7, #8] + 8031efe: 609a str r2, [r3, #8] /*FS seek if new position is outside cache buffer*/ if(file_p->cache->file_position < file_p->cache->start || file_p->cache->file_position > file_p->cache->end) { - 8031f94: 68fb ldr r3, [r7, #12] - 8031f96: 689b ldr r3, [r3, #8] - 8031f98: 689a ldr r2, [r3, #8] - 8031f9a: 68fb ldr r3, [r7, #12] - 8031f9c: 689b ldr r3, [r3, #8] - 8031f9e: 681b ldr r3, [r3, #0] - 8031fa0: 429a cmp r2, r3 - 8031fa2: d307 bcc.n 8031fb4 - 8031fa4: 68fb ldr r3, [r7, #12] - 8031fa6: 689b ldr r3, [r3, #8] - 8031fa8: 689a ldr r2, [r3, #8] - 8031faa: 68fb ldr r3, [r7, #12] - 8031fac: 689b ldr r3, [r3, #8] - 8031fae: 685b ldr r3, [r3, #4] - 8031fb0: 429a cmp r2, r3 - 8031fb2: d965 bls.n 8032080 + 8031f00: 68fb ldr r3, [r7, #12] + 8031f02: 689b ldr r3, [r3, #8] + 8031f04: 689a ldr r2, [r3, #8] + 8031f06: 68fb ldr r3, [r7, #12] + 8031f08: 689b ldr r3, [r3, #8] + 8031f0a: 681b ldr r3, [r3, #0] + 8031f0c: 429a cmp r2, r3 + 8031f0e: d307 bcc.n 8031f20 + 8031f10: 68fb ldr r3, [r7, #12] + 8031f12: 689b ldr r3, [r3, #8] + 8031f14: 689a ldr r2, [r3, #8] + 8031f16: 68fb ldr r3, [r7, #12] + 8031f18: 689b ldr r3, [r3, #8] + 8031f1a: 685b ldr r3, [r3, #4] + 8031f1c: 429a cmp r2, r3 + 8031f1e: d965 bls.n 8031fec res = file_p->drv->seek_cb(file_p->drv, file_p->file_d, file_p->cache->file_position, LV_FS_SEEK_SET); - 8031fb4: 68fb ldr r3, [r7, #12] - 8031fb6: 685b ldr r3, [r3, #4] - 8031fb8: 699c ldr r4, [r3, #24] - 8031fba: 68fb ldr r3, [r7, #12] - 8031fbc: 6858 ldr r0, [r3, #4] - 8031fbe: 68fb ldr r3, [r7, #12] - 8031fc0: 6819 ldr r1, [r3, #0] - 8031fc2: 68fb ldr r3, [r7, #12] - 8031fc4: 689b ldr r3, [r3, #8] - 8031fc6: 689a ldr r2, [r3, #8] - 8031fc8: 2300 movs r3, #0 - 8031fca: 47a0 blx r4 - 8031fcc: 4603 mov r3, r0 - 8031fce: 75fb strb r3, [r7, #23] + 8031f20: 68fb ldr r3, [r7, #12] + 8031f22: 685b ldr r3, [r3, #4] + 8031f24: 699c ldr r4, [r3, #24] + 8031f26: 68fb ldr r3, [r7, #12] + 8031f28: 6858 ldr r0, [r3, #4] + 8031f2a: 68fb ldr r3, [r7, #12] + 8031f2c: 6819 ldr r1, [r3, #0] + 8031f2e: 68fb ldr r3, [r7, #12] + 8031f30: 689b ldr r3, [r3, #8] + 8031f32: 689a ldr r2, [r3, #8] + 8031f34: 2300 movs r3, #0 + 8031f36: 47a0 blx r4 + 8031f38: 4603 mov r3, r0 + 8031f3a: 75fb strb r3, [r7, #23] } break; - 8031fd0: e056 b.n 8032080 + 8031f3c: e056 b.n 8031fec } case LV_FS_SEEK_CUR: { file_p->cache->file_position += pos; - 8031fd2: 68fb ldr r3, [r7, #12] - 8031fd4: 689b ldr r3, [r3, #8] - 8031fd6: 6899 ldr r1, [r3, #8] - 8031fd8: 68fb ldr r3, [r7, #12] - 8031fda: 689b ldr r3, [r3, #8] - 8031fdc: 68ba ldr r2, [r7, #8] - 8031fde: 440a add r2, r1 - 8031fe0: 609a str r2, [r3, #8] + 8031f3e: 68fb ldr r3, [r7, #12] + 8031f40: 689b ldr r3, [r3, #8] + 8031f42: 6899 ldr r1, [r3, #8] + 8031f44: 68fb ldr r3, [r7, #12] + 8031f46: 689b ldr r3, [r3, #8] + 8031f48: 68ba ldr r2, [r7, #8] + 8031f4a: 440a add r2, r1 + 8031f4c: 609a str r2, [r3, #8] /*FS seek if new position is outside cache buffer*/ if(file_p->cache->file_position < file_p->cache->start || file_p->cache->file_position > file_p->cache->end) { - 8031fe2: 68fb ldr r3, [r7, #12] - 8031fe4: 689b ldr r3, [r3, #8] - 8031fe6: 689a ldr r2, [r3, #8] - 8031fe8: 68fb ldr r3, [r7, #12] - 8031fea: 689b ldr r3, [r3, #8] - 8031fec: 681b ldr r3, [r3, #0] - 8031fee: 429a cmp r2, r3 - 8031ff0: d307 bcc.n 8032002 - 8031ff2: 68fb ldr r3, [r7, #12] - 8031ff4: 689b ldr r3, [r3, #8] - 8031ff6: 689a ldr r2, [r3, #8] - 8031ff8: 68fb ldr r3, [r7, #12] - 8031ffa: 689b ldr r3, [r3, #8] - 8031ffc: 685b ldr r3, [r3, #4] - 8031ffe: 429a cmp r2, r3 - 8032000: d940 bls.n 8032084 + 8031f4e: 68fb ldr r3, [r7, #12] + 8031f50: 689b ldr r3, [r3, #8] + 8031f52: 689a ldr r2, [r3, #8] + 8031f54: 68fb ldr r3, [r7, #12] + 8031f56: 689b ldr r3, [r3, #8] + 8031f58: 681b ldr r3, [r3, #0] + 8031f5a: 429a cmp r2, r3 + 8031f5c: d307 bcc.n 8031f6e + 8031f5e: 68fb ldr r3, [r7, #12] + 8031f60: 689b ldr r3, [r3, #8] + 8031f62: 689a ldr r2, [r3, #8] + 8031f64: 68fb ldr r3, [r7, #12] + 8031f66: 689b ldr r3, [r3, #8] + 8031f68: 685b ldr r3, [r3, #4] + 8031f6a: 429a cmp r2, r3 + 8031f6c: d940 bls.n 8031ff0 res = file_p->drv->seek_cb(file_p->drv, file_p->file_d, file_p->cache->file_position, LV_FS_SEEK_SET); - 8032002: 68fb ldr r3, [r7, #12] - 8032004: 685b ldr r3, [r3, #4] - 8032006: 699c ldr r4, [r3, #24] - 8032008: 68fb ldr r3, [r7, #12] - 803200a: 6858 ldr r0, [r3, #4] - 803200c: 68fb ldr r3, [r7, #12] - 803200e: 6819 ldr r1, [r3, #0] - 8032010: 68fb ldr r3, [r7, #12] - 8032012: 689b ldr r3, [r3, #8] - 8032014: 689a ldr r2, [r3, #8] - 8032016: 2300 movs r3, #0 - 8032018: 47a0 blx r4 - 803201a: 4603 mov r3, r0 - 803201c: 75fb strb r3, [r7, #23] + 8031f6e: 68fb ldr r3, [r7, #12] + 8031f70: 685b ldr r3, [r3, #4] + 8031f72: 699c ldr r4, [r3, #24] + 8031f74: 68fb ldr r3, [r7, #12] + 8031f76: 6858 ldr r0, [r3, #4] + 8031f78: 68fb ldr r3, [r7, #12] + 8031f7a: 6819 ldr r1, [r3, #0] + 8031f7c: 68fb ldr r3, [r7, #12] + 8031f7e: 689b ldr r3, [r3, #8] + 8031f80: 689a ldr r2, [r3, #8] + 8031f82: 2300 movs r3, #0 + 8031f84: 47a0 blx r4 + 8031f86: 4603 mov r3, r0 + 8031f88: 75fb strb r3, [r7, #23] } break; - 803201e: e031 b.n 8032084 + 8031f8a: e031 b.n 8031ff0 } case LV_FS_SEEK_END: { /*Because we don't know the file size, we do a little trick: do a FS seek, then get new file position from FS*/ res = file_p->drv->seek_cb(file_p->drv, file_p->file_d, pos, whence); - 8032020: 68fb ldr r3, [r7, #12] - 8032022: 685b ldr r3, [r3, #4] - 8032024: 699c ldr r4, [r3, #24] - 8032026: 68fb ldr r3, [r7, #12] - 8032028: 6858 ldr r0, [r3, #4] - 803202a: 68fb ldr r3, [r7, #12] - 803202c: 6819 ldr r1, [r3, #0] - 803202e: 79fb ldrb r3, [r7, #7] - 8032030: 68ba ldr r2, [r7, #8] - 8032032: 47a0 blx r4 - 8032034: 4603 mov r3, r0 - 8032036: 75fb strb r3, [r7, #23] + 8031f8c: 68fb ldr r3, [r7, #12] + 8031f8e: 685b ldr r3, [r3, #4] + 8031f90: 699c ldr r4, [r3, #24] + 8031f92: 68fb ldr r3, [r7, #12] + 8031f94: 6858 ldr r0, [r3, #4] + 8031f96: 68fb ldr r3, [r7, #12] + 8031f98: 6819 ldr r1, [r3, #0] + 8031f9a: 79fb ldrb r3, [r7, #7] + 8031f9c: 68ba ldr r2, [r7, #8] + 8031f9e: 47a0 blx r4 + 8031fa0: 4603 mov r3, r0 + 8031fa2: 75fb strb r3, [r7, #23] if(res == LV_FS_RES_OK) { - 8032038: 7dfb ldrb r3, [r7, #23] - 803203a: 2b00 cmp r3, #0 - 803203c: d124 bne.n 8032088 + 8031fa4: 7dfb ldrb r3, [r7, #23] + 8031fa6: 2b00 cmp r3, #0 + 8031fa8: d124 bne.n 8031ff4 uint32_t tmp_position; res = file_p->drv->tell_cb(file_p->drv, file_p->file_d, &tmp_position); - 803203e: 68fb ldr r3, [r7, #12] - 8032040: 685b ldr r3, [r3, #4] - 8032042: 69db ldr r3, [r3, #28] - 8032044: 68fa ldr r2, [r7, #12] - 8032046: 6850 ldr r0, [r2, #4] - 8032048: 68fa ldr r2, [r7, #12] - 803204a: 6811 ldr r1, [r2, #0] - 803204c: f107 0210 add.w r2, r7, #16 - 8032050: 4798 blx r3 - 8032052: 4603 mov r3, r0 - 8032054: 75fb strb r3, [r7, #23] + 8031faa: 68fb ldr r3, [r7, #12] + 8031fac: 685b ldr r3, [r3, #4] + 8031fae: 69db ldr r3, [r3, #28] + 8031fb0: 68fa ldr r2, [r7, #12] + 8031fb2: 6850 ldr r0, [r2, #4] + 8031fb4: 68fa ldr r2, [r7, #12] + 8031fb6: 6811 ldr r1, [r2, #0] + 8031fb8: f107 0210 add.w r2, r7, #16 + 8031fbc: 4798 blx r3 + 8031fbe: 4603 mov r3, r0 + 8031fc0: 75fb strb r3, [r7, #23] if(res == LV_FS_RES_OK) { - 8032056: 7dfb ldrb r3, [r7, #23] - 8032058: 2b00 cmp r3, #0 - 803205a: d115 bne.n 8032088 + 8031fc2: 7dfb ldrb r3, [r7, #23] + 8031fc4: 2b00 cmp r3, #0 + 8031fc6: d115 bne.n 8031ff4 file_p->cache->file_position = tmp_position; - 803205c: 68fb ldr r3, [r7, #12] - 803205e: 689b ldr r3, [r3, #8] - 8032060: 693a ldr r2, [r7, #16] - 8032062: 609a str r2, [r3, #8] + 8031fc8: 68fb ldr r3, [r7, #12] + 8031fca: 689b ldr r3, [r3, #8] + 8031fcc: 693a ldr r2, [r7, #16] + 8031fce: 609a str r2, [r3, #8] } } break; - 8032064: e010 b.n 8032088 + 8031fd0: e010 b.n 8031ff4 } } } else { res = file_p->drv->seek_cb(file_p->drv, file_p->file_d, pos, whence); - 8032066: 68fb ldr r3, [r7, #12] - 8032068: 685b ldr r3, [r3, #4] - 803206a: 699c ldr r4, [r3, #24] - 803206c: 68fb ldr r3, [r7, #12] - 803206e: 6858 ldr r0, [r3, #4] - 8032070: 68fb ldr r3, [r7, #12] - 8032072: 6819 ldr r1, [r3, #0] - 8032074: 79fb ldrb r3, [r7, #7] - 8032076: 68ba ldr r2, [r7, #8] - 8032078: 47a0 blx r4 - 803207a: 4603 mov r3, r0 - 803207c: 75fb strb r3, [r7, #23] - 803207e: e004 b.n 803208a + 8031fd2: 68fb ldr r3, [r7, #12] + 8031fd4: 685b ldr r3, [r3, #4] + 8031fd6: 699c ldr r4, [r3, #24] + 8031fd8: 68fb ldr r3, [r7, #12] + 8031fda: 6858 ldr r0, [r3, #4] + 8031fdc: 68fb ldr r3, [r7, #12] + 8031fde: 6819 ldr r1, [r3, #0] + 8031fe0: 79fb ldrb r3, [r7, #7] + 8031fe2: 68ba ldr r2, [r7, #8] + 8031fe4: 47a0 blx r4 + 8031fe6: 4603 mov r3, r0 + 8031fe8: 75fb strb r3, [r7, #23] + 8031fea: e004 b.n 8031ff6 break; - 8032080: bf00 nop - 8032082: e002 b.n 803208a + 8031fec: bf00 nop + 8031fee: e002 b.n 8031ff6 break; - 8032084: bf00 nop - 8032086: e000 b.n 803208a + 8031ff0: bf00 nop + 8031ff2: e000 b.n 8031ff6 break; - 8032088: bf00 nop + 8031ff4: bf00 nop } return res; - 803208a: 7dfb ldrb r3, [r7, #23] + 8031ff6: 7dfb ldrb r3, [r7, #23] } - 803208c: 4618 mov r0, r3 - 803208e: 371c adds r7, #28 - 8032090: 46bd mov sp, r7 - 8032092: bd90 pop {r4, r7, pc} + 8031ff8: 4618 mov r0, r3 + 8031ffa: 371c adds r7, #28 + 8031ffc: 46bd mov sp, r7 + 8031ffe: bd90 pop {r4, r7, pc} -08032094 : +08032000 : *new_drv = drv_p; } lv_fs_drv_t * lv_fs_get_drv(char letter) { - 8032094: b580 push {r7, lr} - 8032096: b084 sub sp, #16 - 8032098: af00 add r7, sp, #0 - 803209a: 4603 mov r3, r0 - 803209c: 71fb strb r3, [r7, #7] + 8032000: b580 push {r7, lr} + 8032002: b084 sub sp, #16 + 8032004: af00 add r7, sp, #0 + 8032006: 4603 mov r3, r0 + 8032008: 71fb strb r3, [r7, #7] lv_fs_drv_t ** drv; _LV_LL_READ(&LV_GC_ROOT(_lv_fsdrv_ll), drv) { - 803209e: 480d ldr r0, [pc, #52] ; (80320d4 ) - 80320a0: f000 f95c bl 803235c <_lv_ll_get_head> - 80320a4: 60f8 str r0, [r7, #12] - 80320a6: e00d b.n 80320c4 + 803200a: 480d ldr r0, [pc, #52] ; (8032040 ) + 803200c: f000 f95c bl 80322c8 <_lv_ll_get_head> + 8032010: 60f8 str r0, [r7, #12] + 8032012: e00d b.n 8032030 if((*drv)->letter == letter) { - 80320a8: 68fb ldr r3, [r7, #12] - 80320aa: 681b ldr r3, [r3, #0] - 80320ac: 781b ldrb r3, [r3, #0] - 80320ae: 79fa ldrb r2, [r7, #7] - 80320b0: 429a cmp r2, r3 - 80320b2: d102 bne.n 80320ba + 8032014: 68fb ldr r3, [r7, #12] + 8032016: 681b ldr r3, [r3, #0] + 8032018: 781b ldrb r3, [r3, #0] + 803201a: 79fa ldrb r2, [r7, #7] + 803201c: 429a cmp r2, r3 + 803201e: d102 bne.n 8032026 return *drv; - 80320b4: 68fb ldr r3, [r7, #12] - 80320b6: 681b ldr r3, [r3, #0] - 80320b8: e008 b.n 80320cc + 8032020: 68fb ldr r3, [r7, #12] + 8032022: 681b ldr r3, [r3, #0] + 8032024: e008 b.n 8032038 _LV_LL_READ(&LV_GC_ROOT(_lv_fsdrv_ll), drv) { - 80320ba: 68f9 ldr r1, [r7, #12] - 80320bc: 4805 ldr r0, [pc, #20] ; (80320d4 ) - 80320be: f000 f96d bl 803239c <_lv_ll_get_next> - 80320c2: 60f8 str r0, [r7, #12] - 80320c4: 68fb ldr r3, [r7, #12] - 80320c6: 2b00 cmp r3, #0 - 80320c8: d1ee bne.n 80320a8 + 8032026: 68f9 ldr r1, [r7, #12] + 8032028: 4805 ldr r0, [pc, #20] ; (8032040 ) + 803202a: f000 f96d bl 8032308 <_lv_ll_get_next> + 803202e: 60f8 str r0, [r7, #12] + 8032030: 68fb ldr r3, [r7, #12] + 8032032: 2b00 cmp r3, #0 + 8032034: d1ee bne.n 8032014 } } return NULL; - 80320ca: 2300 movs r3, #0 + 8032036: 2300 movs r3, #0 } - 80320cc: 4618 mov r0, r3 - 80320ce: 3710 adds r7, #16 - 80320d0: 46bd mov sp, r7 - 80320d2: bd80 pop {r7, pc} - 80320d4: 20001d28 .word 0x20001d28 + 8032038: 4618 mov r0, r3 + 803203a: 3710 adds r7, #16 + 803203c: 46bd mov sp, r7 + 803203e: bd80 pop {r7, pc} + 8032040: 20001d28 .word 0x20001d28 -080320d8 : +08032044 : return buf; } const char * lv_fs_get_ext(const char * fn) { - 80320d8: b580 push {r7, lr} - 80320da: b084 sub sp, #16 - 80320dc: af00 add r7, sp, #0 - 80320de: 6078 str r0, [r7, #4] + 8032044: b580 push {r7, lr} + 8032046: b084 sub sp, #16 + 8032048: af00 add r7, sp, #0 + 803204a: 6078 str r0, [r7, #4] size_t i; for(i = strlen(fn); i > 0; i--) { - 80320e0: 6878 ldr r0, [r7, #4] - 80320e2: f7ce f8a9 bl 8000238 - 80320e6: 60f8 str r0, [r7, #12] - 80320e8: e01b b.n 8032122 + 803204c: 6878 ldr r0, [r7, #4] + 803204e: f7ce f8f3 bl 8000238 + 8032052: 60f8 str r0, [r7, #12] + 8032054: e01b b.n 803208e if(fn[i] == '.') { - 80320ea: 687a ldr r2, [r7, #4] - 80320ec: 68fb ldr r3, [r7, #12] - 80320ee: 4413 add r3, r2 - 80320f0: 781b ldrb r3, [r3, #0] - 80320f2: 2b2e cmp r3, #46 ; 0x2e - 80320f4: d104 bne.n 8032100 + 8032056: 687a ldr r2, [r7, #4] + 8032058: 68fb ldr r3, [r7, #12] + 803205a: 4413 add r3, r2 + 803205c: 781b ldrb r3, [r3, #0] + 803205e: 2b2e cmp r3, #46 ; 0x2e + 8032060: d104 bne.n 803206c return &fn[i + 1]; - 80320f6: 68fb ldr r3, [r7, #12] - 80320f8: 3301 adds r3, #1 - 80320fa: 687a ldr r2, [r7, #4] - 80320fc: 4413 add r3, r2 - 80320fe: e014 b.n 803212a + 8032062: 68fb ldr r3, [r7, #12] + 8032064: 3301 adds r3, #1 + 8032066: 687a ldr r2, [r7, #4] + 8032068: 4413 add r3, r2 + 803206a: e014 b.n 8032096 } else if(fn[i] == '/' || fn[i] == '\\') { - 8032100: 687a ldr r2, [r7, #4] - 8032102: 68fb ldr r3, [r7, #12] - 8032104: 4413 add r3, r2 - 8032106: 781b ldrb r3, [r3, #0] - 8032108: 2b2f cmp r3, #47 ; 0x2f - 803210a: d005 beq.n 8032118 - 803210c: 687a ldr r2, [r7, #4] - 803210e: 68fb ldr r3, [r7, #12] - 8032110: 4413 add r3, r2 - 8032112: 781b ldrb r3, [r3, #0] - 8032114: 2b5c cmp r3, #92 ; 0x5c - 8032116: d101 bne.n 803211c + 803206c: 687a ldr r2, [r7, #4] + 803206e: 68fb ldr r3, [r7, #12] + 8032070: 4413 add r3, r2 + 8032072: 781b ldrb r3, [r3, #0] + 8032074: 2b2f cmp r3, #47 ; 0x2f + 8032076: d005 beq.n 8032084 + 8032078: 687a ldr r2, [r7, #4] + 803207a: 68fb ldr r3, [r7, #12] + 803207c: 4413 add r3, r2 + 803207e: 781b ldrb r3, [r3, #0] + 8032080: 2b5c cmp r3, #92 ; 0x5c + 8032082: d101 bne.n 8032088 return ""; /*No extension if a '\' or '/' found*/ - 8032118: 4b06 ldr r3, [pc, #24] ; (8032134 ) - 803211a: e006 b.n 803212a + 8032084: 4b06 ldr r3, [pc, #24] ; (80320a0 ) + 8032086: e006 b.n 8032096 for(i = strlen(fn); i > 0; i--) { - 803211c: 68fb ldr r3, [r7, #12] - 803211e: 3b01 subs r3, #1 - 8032120: 60fb str r3, [r7, #12] - 8032122: 68fb ldr r3, [r7, #12] - 8032124: 2b00 cmp r3, #0 - 8032126: d1e0 bne.n 80320ea + 8032088: 68fb ldr r3, [r7, #12] + 803208a: 3b01 subs r3, #1 + 803208c: 60fb str r3, [r7, #12] + 803208e: 68fb ldr r3, [r7, #12] + 8032090: 2b00 cmp r3, #0 + 8032092: d1e0 bne.n 8032056 } } return ""; /*Empty string if no '.' in the file name.*/ - 8032128: 4b02 ldr r3, [pc, #8] ; (8032134 ) + 8032094: 4b02 ldr r3, [pc, #8] ; (80320a0 ) } - 803212a: 4618 mov r0, r3 - 803212c: 3710 adds r7, #16 - 803212e: 46bd mov sp, r7 - 8032130: bd80 pop {r7, pc} - 8032132: bf00 nop - 8032134: 08047148 .word 0x08047148 + 8032096: 4618 mov r0, r3 + 8032098: 3710 adds r7, #16 + 803209a: 46bd mov sp, r7 + 803209c: bd80 pop {r7, pc} + 803209e: bf00 nop + 80320a0: 080470a0 .word 0x080470a0 -08032138 : +080320a4 : * Skip the driver letter and the possible : after the letter * @param path path string (E.g. S:/folder/file.txt) * @return pointer to the beginning of the real path (E.g. /folder/file.txt) */ static const char * lv_fs_get_real_path(const char * path) { - 8032138: b480 push {r7} - 803213a: b083 sub sp, #12 - 803213c: af00 add r7, sp, #0 - 803213e: 6078 str r0, [r7, #4] + 80320a4: b480 push {r7} + 80320a6: b083 sub sp, #12 + 80320a8: af00 add r7, sp, #0 + 80320aa: 6078 str r0, [r7, #4] path++; /*Ignore the driver letter*/ - 8032140: 687b ldr r3, [r7, #4] - 8032142: 3301 adds r3, #1 - 8032144: 607b str r3, [r7, #4] + 80320ac: 687b ldr r3, [r7, #4] + 80320ae: 3301 adds r3, #1 + 80320b0: 607b str r3, [r7, #4] if(*path == ':') path++; - 8032146: 687b ldr r3, [r7, #4] - 8032148: 781b ldrb r3, [r3, #0] - 803214a: 2b3a cmp r3, #58 ; 0x3a - 803214c: d102 bne.n 8032154 - 803214e: 687b ldr r3, [r7, #4] - 8032150: 3301 adds r3, #1 - 8032152: 607b str r3, [r7, #4] + 80320b2: 687b ldr r3, [r7, #4] + 80320b4: 781b ldrb r3, [r3, #0] + 80320b6: 2b3a cmp r3, #58 ; 0x3a + 80320b8: d102 bne.n 80320c0 + 80320ba: 687b ldr r3, [r7, #4] + 80320bc: 3301 adds r3, #1 + 80320be: 607b str r3, [r7, #4] return path; - 8032154: 687b ldr r3, [r7, #4] + 80320c0: 687b ldr r3, [r7, #4] } - 8032156: 4618 mov r0, r3 - 8032158: 370c adds r7, #12 - 803215a: 46bd mov sp, r7 - 803215c: bc80 pop {r7} - 803215e: 4770 bx lr + 80320c2: 4618 mov r0, r3 + 80320c4: 370c adds r7, #12 + 80320c6: 46bd mov sp, r7 + 80320c8: bc80 pop {r7} + 80320ca: 4770 bx lr -08032160 <_lv_ll_init>: +080320cc <_lv_ll_init>: * Initialize linked list * @param ll_p pointer to lv_ll_t variable * @param node_size the size of 1 node in bytes */ void _lv_ll_init(lv_ll_t * ll_p, uint32_t node_size) { - 8032160: b480 push {r7} - 8032162: b083 sub sp, #12 - 8032164: af00 add r7, sp, #0 - 8032166: 6078 str r0, [r7, #4] - 8032168: 6039 str r1, [r7, #0] + 80320cc: b480 push {r7} + 80320ce: b083 sub sp, #12 + 80320d0: af00 add r7, sp, #0 + 80320d2: 6078 str r0, [r7, #4] + 80320d4: 6039 str r1, [r7, #0] ll_p->head = NULL; - 803216a: 687b ldr r3, [r7, #4] - 803216c: 2200 movs r2, #0 - 803216e: 605a str r2, [r3, #4] + 80320d6: 687b ldr r3, [r7, #4] + 80320d8: 2200 movs r2, #0 + 80320da: 605a str r2, [r3, #4] ll_p->tail = NULL; - 8032170: 687b ldr r3, [r7, #4] - 8032172: 2200 movs r2, #0 - 8032174: 609a str r2, [r3, #8] + 80320dc: 687b ldr r3, [r7, #4] + 80320de: 2200 movs r2, #0 + 80320e0: 609a str r2, [r3, #8] #ifdef LV_ARCH_64 /*Round the size up to 8*/ node_size = (node_size + 7) & (~0x7); #else /*Round the size up to 4*/ node_size = (node_size + 3) & (~0x3); - 8032176: 683b ldr r3, [r7, #0] - 8032178: 3303 adds r3, #3 - 803217a: f023 0303 bic.w r3, r3, #3 - 803217e: 603b str r3, [r7, #0] + 80320e2: 683b ldr r3, [r7, #0] + 80320e4: 3303 adds r3, #3 + 80320e6: f023 0303 bic.w r3, r3, #3 + 80320ea: 603b str r3, [r7, #0] #endif ll_p->n_size = node_size; - 8032180: 687b ldr r3, [r7, #4] - 8032182: 683a ldr r2, [r7, #0] - 8032184: 601a str r2, [r3, #0] + 80320ec: 687b ldr r3, [r7, #4] + 80320ee: 683a ldr r2, [r7, #0] + 80320f0: 601a str r2, [r3, #0] } - 8032186: bf00 nop - 8032188: 370c adds r7, #12 - 803218a: 46bd mov sp, r7 - 803218c: bc80 pop {r7} - 803218e: 4770 bx lr + 80320f2: bf00 nop + 80320f4: 370c adds r7, #12 + 80320f6: 46bd mov sp, r7 + 80320f8: bc80 pop {r7} + 80320fa: 4770 bx lr -08032190 <_lv_ll_ins_head>: +080320fc <_lv_ll_ins_head>: * Add a new head to a linked list * @param ll_p pointer to linked list * @return pointer to the new head */ void * _lv_ll_ins_head(lv_ll_t * ll_p) { - 8032190: b580 push {r7, lr} - 8032192: b084 sub sp, #16 - 8032194: af00 add r7, sp, #0 - 8032196: 6078 str r0, [r7, #4] + 80320fc: b580 push {r7, lr} + 80320fe: b084 sub sp, #16 + 8032100: af00 add r7, sp, #0 + 8032102: 6078 str r0, [r7, #4] lv_ll_node_t * n_new; n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE); - 8032198: 687b ldr r3, [r7, #4] - 803219a: 681b ldr r3, [r3, #0] - 803219c: 3308 adds r3, #8 - 803219e: 4618 mov r0, r3 - 80321a0: f000 fb7a bl 8032898 - 80321a4: 60f8 str r0, [r7, #12] + 8032104: 687b ldr r3, [r7, #4] + 8032106: 681b ldr r3, [r3, #0] + 8032108: 3308 adds r3, #8 + 803210a: 4618 mov r0, r3 + 803210c: f000 fb7a bl 8032804 + 8032110: 60f8 str r0, [r7, #12] if(n_new != NULL) { - 80321a6: 68fb ldr r3, [r7, #12] - 80321a8: 2b00 cmp r3, #0 - 80321aa: d020 beq.n 80321ee <_lv_ll_ins_head+0x5e> + 8032112: 68fb ldr r3, [r7, #12] + 8032114: 2b00 cmp r3, #0 + 8032116: d020 beq.n 803215a <_lv_ll_ins_head+0x5e> node_set_prev(ll_p, n_new, NULL); /*No prev. before the new head*/ - 80321ac: 2200 movs r2, #0 - 80321ae: 68f9 ldr r1, [r7, #12] - 80321b0: 6878 ldr r0, [r7, #4] - 80321b2: f000 f94e bl 8032452 + 8032118: 2200 movs r2, #0 + 803211a: 68f9 ldr r1, [r7, #12] + 803211c: 6878 ldr r0, [r7, #4] + 803211e: f000 f94e bl 80323be node_set_next(ll_p, n_new, ll_p->head); /*After new comes the old head*/ - 80321b6: 687b ldr r3, [r7, #4] - 80321b8: 685b ldr r3, [r3, #4] - 80321ba: 461a mov r2, r3 - 80321bc: 68f9 ldr r1, [r7, #12] - 80321be: 6878 ldr r0, [r7, #4] - 80321c0: f000 f965 bl 803248e + 8032122: 687b ldr r3, [r7, #4] + 8032124: 685b ldr r3, [r3, #4] + 8032126: 461a mov r2, r3 + 8032128: 68f9 ldr r1, [r7, #12] + 803212a: 6878 ldr r0, [r7, #4] + 803212c: f000 f965 bl 80323fa if(ll_p->head != NULL) { /*If there is old head then before it goes the new*/ - 80321c4: 687b ldr r3, [r7, #4] - 80321c6: 685b ldr r3, [r3, #4] - 80321c8: 2b00 cmp r3, #0 - 80321ca: d006 beq.n 80321da <_lv_ll_ins_head+0x4a> + 8032130: 687b ldr r3, [r7, #4] + 8032132: 685b ldr r3, [r3, #4] + 8032134: 2b00 cmp r3, #0 + 8032136: d006 beq.n 8032146 <_lv_ll_ins_head+0x4a> node_set_prev(ll_p, ll_p->head, n_new); - 80321cc: 687b ldr r3, [r7, #4] - 80321ce: 685b ldr r3, [r3, #4] - 80321d0: 68fa ldr r2, [r7, #12] - 80321d2: 4619 mov r1, r3 - 80321d4: 6878 ldr r0, [r7, #4] - 80321d6: f000 f93c bl 8032452 + 8032138: 687b ldr r3, [r7, #4] + 803213a: 685b ldr r3, [r3, #4] + 803213c: 68fa ldr r2, [r7, #12] + 803213e: 4619 mov r1, r3 + 8032140: 6878 ldr r0, [r7, #4] + 8032142: f000 f93c bl 80323be } ll_p->head = n_new; /*Set the new head in the dsc.*/ - 80321da: 687b ldr r3, [r7, #4] - 80321dc: 68fa ldr r2, [r7, #12] - 80321de: 605a str r2, [r3, #4] + 8032146: 687b ldr r3, [r7, #4] + 8032148: 68fa ldr r2, [r7, #12] + 803214a: 605a str r2, [r3, #4] if(ll_p->tail == NULL) { /*If there is no tail (1. node) set the tail too*/ - 80321e0: 687b ldr r3, [r7, #4] - 80321e2: 689b ldr r3, [r3, #8] - 80321e4: 2b00 cmp r3, #0 - 80321e6: d102 bne.n 80321ee <_lv_ll_ins_head+0x5e> + 803214c: 687b ldr r3, [r7, #4] + 803214e: 689b ldr r3, [r3, #8] + 8032150: 2b00 cmp r3, #0 + 8032152: d102 bne.n 803215a <_lv_ll_ins_head+0x5e> ll_p->tail = n_new; - 80321e8: 687b ldr r3, [r7, #4] - 80321ea: 68fa ldr r2, [r7, #12] - 80321ec: 609a str r2, [r3, #8] + 8032154: 687b ldr r3, [r7, #4] + 8032156: 68fa ldr r2, [r7, #12] + 8032158: 609a str r2, [r3, #8] } } return n_new; - 80321ee: 68fb ldr r3, [r7, #12] + 803215a: 68fb ldr r3, [r7, #12] } - 80321f0: 4618 mov r0, r3 - 80321f2: 3710 adds r7, #16 - 80321f4: 46bd mov sp, r7 - 80321f6: bd80 pop {r7, pc} + 803215c: 4618 mov r0, r3 + 803215e: 3710 adds r7, #16 + 8032160: 46bd mov sp, r7 + 8032162: bd80 pop {r7, pc} -080321f8 <_lv_ll_ins_tail>: +08032164 <_lv_ll_ins_tail>: * Add a new tail to a linked list * @param ll_p pointer to linked list * @return pointer to the new tail */ void * _lv_ll_ins_tail(lv_ll_t * ll_p) { - 80321f8: b580 push {r7, lr} - 80321fa: b084 sub sp, #16 - 80321fc: af00 add r7, sp, #0 - 80321fe: 6078 str r0, [r7, #4] + 8032164: b580 push {r7, lr} + 8032166: b084 sub sp, #16 + 8032168: af00 add r7, sp, #0 + 803216a: 6078 str r0, [r7, #4] lv_ll_node_t * n_new; n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE); - 8032200: 687b ldr r3, [r7, #4] - 8032202: 681b ldr r3, [r3, #0] - 8032204: 3308 adds r3, #8 - 8032206: 4618 mov r0, r3 - 8032208: f000 fb46 bl 8032898 - 803220c: 60f8 str r0, [r7, #12] + 803216c: 687b ldr r3, [r7, #4] + 803216e: 681b ldr r3, [r3, #0] + 8032170: 3308 adds r3, #8 + 8032172: 4618 mov r0, r3 + 8032174: f000 fb46 bl 8032804 + 8032178: 60f8 str r0, [r7, #12] if(n_new != NULL) { - 803220e: 68fb ldr r3, [r7, #12] - 8032210: 2b00 cmp r3, #0 - 8032212: d020 beq.n 8032256 <_lv_ll_ins_tail+0x5e> + 803217a: 68fb ldr r3, [r7, #12] + 803217c: 2b00 cmp r3, #0 + 803217e: d020 beq.n 80321c2 <_lv_ll_ins_tail+0x5e> node_set_next(ll_p, n_new, NULL); /*No next after the new tail*/ - 8032214: 2200 movs r2, #0 - 8032216: 68f9 ldr r1, [r7, #12] - 8032218: 6878 ldr r0, [r7, #4] - 803221a: f000 f938 bl 803248e + 8032180: 2200 movs r2, #0 + 8032182: 68f9 ldr r1, [r7, #12] + 8032184: 6878 ldr r0, [r7, #4] + 8032186: f000 f938 bl 80323fa node_set_prev(ll_p, n_new, ll_p->tail); /*The prev. before new is the old tail*/ - 803221e: 687b ldr r3, [r7, #4] - 8032220: 689b ldr r3, [r3, #8] - 8032222: 461a mov r2, r3 - 8032224: 68f9 ldr r1, [r7, #12] - 8032226: 6878 ldr r0, [r7, #4] - 8032228: f000 f913 bl 8032452 + 803218a: 687b ldr r3, [r7, #4] + 803218c: 689b ldr r3, [r3, #8] + 803218e: 461a mov r2, r3 + 8032190: 68f9 ldr r1, [r7, #12] + 8032192: 6878 ldr r0, [r7, #4] + 8032194: f000 f913 bl 80323be if(ll_p->tail != NULL) { /*If there is old tail then the new comes after it*/ - 803222c: 687b ldr r3, [r7, #4] - 803222e: 689b ldr r3, [r3, #8] - 8032230: 2b00 cmp r3, #0 - 8032232: d006 beq.n 8032242 <_lv_ll_ins_tail+0x4a> + 8032198: 687b ldr r3, [r7, #4] + 803219a: 689b ldr r3, [r3, #8] + 803219c: 2b00 cmp r3, #0 + 803219e: d006 beq.n 80321ae <_lv_ll_ins_tail+0x4a> node_set_next(ll_p, ll_p->tail, n_new); - 8032234: 687b ldr r3, [r7, #4] - 8032236: 689b ldr r3, [r3, #8] - 8032238: 68fa ldr r2, [r7, #12] - 803223a: 4619 mov r1, r3 - 803223c: 6878 ldr r0, [r7, #4] - 803223e: f000 f926 bl 803248e + 80321a0: 687b ldr r3, [r7, #4] + 80321a2: 689b ldr r3, [r3, #8] + 80321a4: 68fa ldr r2, [r7, #12] + 80321a6: 4619 mov r1, r3 + 80321a8: 6878 ldr r0, [r7, #4] + 80321aa: f000 f926 bl 80323fa } ll_p->tail = n_new; /*Set the new tail in the dsc.*/ - 8032242: 687b ldr r3, [r7, #4] - 8032244: 68fa ldr r2, [r7, #12] - 8032246: 609a str r2, [r3, #8] + 80321ae: 687b ldr r3, [r7, #4] + 80321b0: 68fa ldr r2, [r7, #12] + 80321b2: 609a str r2, [r3, #8] if(ll_p->head == NULL) { /*If there is no head (1. node) set the head too*/ - 8032248: 687b ldr r3, [r7, #4] - 803224a: 685b ldr r3, [r3, #4] - 803224c: 2b00 cmp r3, #0 - 803224e: d102 bne.n 8032256 <_lv_ll_ins_tail+0x5e> + 80321b4: 687b ldr r3, [r7, #4] + 80321b6: 685b ldr r3, [r3, #4] + 80321b8: 2b00 cmp r3, #0 + 80321ba: d102 bne.n 80321c2 <_lv_ll_ins_tail+0x5e> ll_p->head = n_new; - 8032250: 687b ldr r3, [r7, #4] - 8032252: 68fa ldr r2, [r7, #12] - 8032254: 605a str r2, [r3, #4] + 80321bc: 687b ldr r3, [r7, #4] + 80321be: 68fa ldr r2, [r7, #12] + 80321c0: 605a str r2, [r3, #4] } } return n_new; - 8032256: 68fb ldr r3, [r7, #12] + 80321c2: 68fb ldr r3, [r7, #12] } - 8032258: 4618 mov r0, r3 - 803225a: 3710 adds r7, #16 - 803225c: 46bd mov sp, r7 - 803225e: bd80 pop {r7, pc} + 80321c4: 4618 mov r0, r3 + 80321c6: 3710 adds r7, #16 + 80321c8: 46bd mov sp, r7 + 80321ca: bd80 pop {r7, pc} -08032260 <_lv_ll_remove>: +080321cc <_lv_ll_remove>: * It does not free the memory of node. * @param ll_p pointer to the linked list of 'node_p' * @param node_p pointer to node in 'll_p' linked list */ void _lv_ll_remove(lv_ll_t * ll_p, void * node_p) { - 8032260: b580 push {r7, lr} - 8032262: b084 sub sp, #16 - 8032264: af00 add r7, sp, #0 - 8032266: 6078 str r0, [r7, #4] - 8032268: 6039 str r1, [r7, #0] + 80321cc: b580 push {r7, lr} + 80321ce: b084 sub sp, #16 + 80321d0: af00 add r7, sp, #0 + 80321d2: 6078 str r0, [r7, #4] + 80321d4: 6039 str r1, [r7, #0] if(ll_p == NULL) return; - 803226a: 687b ldr r3, [r7, #4] - 803226c: 2b00 cmp r3, #0 - 803226e: d050 beq.n 8032312 <_lv_ll_remove+0xb2> + 80321d6: 687b ldr r3, [r7, #4] + 80321d8: 2b00 cmp r3, #0 + 80321da: d050 beq.n 803227e <_lv_ll_remove+0xb2> if(_lv_ll_get_head(ll_p) == node_p) { - 8032270: 6878 ldr r0, [r7, #4] - 8032272: f000 f873 bl 803235c <_lv_ll_get_head> - 8032276: 4602 mov r2, r0 - 8032278: 683b ldr r3, [r7, #0] - 803227a: 4293 cmp r3, r2 - 803227c: d116 bne.n 80322ac <_lv_ll_remove+0x4c> + 80321dc: 6878 ldr r0, [r7, #4] + 80321de: f000 f873 bl 80322c8 <_lv_ll_get_head> + 80321e2: 4602 mov r2, r0 + 80321e4: 683b ldr r3, [r7, #0] + 80321e6: 4293 cmp r3, r2 + 80321e8: d116 bne.n 8032218 <_lv_ll_remove+0x4c> /*The new head will be the node after 'n_act'*/ ll_p->head = _lv_ll_get_next(ll_p, node_p); - 803227e: 6839 ldr r1, [r7, #0] - 8032280: 6878 ldr r0, [r7, #4] - 8032282: f000 f88b bl 803239c <_lv_ll_get_next> - 8032286: 4602 mov r2, r0 - 8032288: 687b ldr r3, [r7, #4] - 803228a: 605a str r2, [r3, #4] + 80321ea: 6839 ldr r1, [r7, #0] + 80321ec: 6878 ldr r0, [r7, #4] + 80321ee: f000 f88b bl 8032308 <_lv_ll_get_next> + 80321f2: 4602 mov r2, r0 + 80321f4: 687b ldr r3, [r7, #4] + 80321f6: 605a str r2, [r3, #4] if(ll_p->head == NULL) { - 803228c: 687b ldr r3, [r7, #4] - 803228e: 685b ldr r3, [r3, #4] - 8032290: 2b00 cmp r3, #0 - 8032292: d103 bne.n 803229c <_lv_ll_remove+0x3c> + 80321f8: 687b ldr r3, [r7, #4] + 80321fa: 685b ldr r3, [r3, #4] + 80321fc: 2b00 cmp r3, #0 + 80321fe: d103 bne.n 8032208 <_lv_ll_remove+0x3c> ll_p->tail = NULL; - 8032294: 687b ldr r3, [r7, #4] - 8032296: 2200 movs r2, #0 - 8032298: 609a str r2, [r3, #8] - 803229a: e03b b.n 8032314 <_lv_ll_remove+0xb4> + 8032200: 687b ldr r3, [r7, #4] + 8032202: 2200 movs r2, #0 + 8032204: 609a str r2, [r3, #8] + 8032206: e03b b.n 8032280 <_lv_ll_remove+0xb4> } else { node_set_prev(ll_p, ll_p->head, NULL); - 803229c: 687b ldr r3, [r7, #4] - 803229e: 685b ldr r3, [r3, #4] - 80322a0: 2200 movs r2, #0 - 80322a2: 4619 mov r1, r3 - 80322a4: 6878 ldr r0, [r7, #4] - 80322a6: f000 f8d4 bl 8032452 - 80322aa: e033 b.n 8032314 <_lv_ll_remove+0xb4> + 8032208: 687b ldr r3, [r7, #4] + 803220a: 685b ldr r3, [r3, #4] + 803220c: 2200 movs r2, #0 + 803220e: 4619 mov r1, r3 + 8032210: 6878 ldr r0, [r7, #4] + 8032212: f000 f8d4 bl 80323be + 8032216: e033 b.n 8032280 <_lv_ll_remove+0xb4> } } else if(_lv_ll_get_tail(ll_p) == node_p) { - 80322ac: 6878 ldr r0, [r7, #4] - 80322ae: f000 f865 bl 803237c <_lv_ll_get_tail> - 80322b2: 4602 mov r2, r0 - 80322b4: 683b ldr r3, [r7, #0] - 80322b6: 4293 cmp r3, r2 - 80322b8: d116 bne.n 80322e8 <_lv_ll_remove+0x88> + 8032218: 6878 ldr r0, [r7, #4] + 803221a: f000 f865 bl 80322e8 <_lv_ll_get_tail> + 803221e: 4602 mov r2, r0 + 8032220: 683b ldr r3, [r7, #0] + 8032222: 4293 cmp r3, r2 + 8032224: d116 bne.n 8032254 <_lv_ll_remove+0x88> /*The new tail will be the node before 'n_act'*/ ll_p->tail = _lv_ll_get_prev(ll_p, node_p); - 80322ba: 6839 ldr r1, [r7, #0] - 80322bc: 6878 ldr r0, [r7, #4] - 80322be: f000 f881 bl 80323c4 <_lv_ll_get_prev> - 80322c2: 4602 mov r2, r0 - 80322c4: 687b ldr r3, [r7, #4] - 80322c6: 609a str r2, [r3, #8] + 8032226: 6839 ldr r1, [r7, #0] + 8032228: 6878 ldr r0, [r7, #4] + 803222a: f000 f881 bl 8032330 <_lv_ll_get_prev> + 803222e: 4602 mov r2, r0 + 8032230: 687b ldr r3, [r7, #4] + 8032232: 609a str r2, [r3, #8] if(ll_p->tail == NULL) { - 80322c8: 687b ldr r3, [r7, #4] - 80322ca: 689b ldr r3, [r3, #8] - 80322cc: 2b00 cmp r3, #0 - 80322ce: d103 bne.n 80322d8 <_lv_ll_remove+0x78> + 8032234: 687b ldr r3, [r7, #4] + 8032236: 689b ldr r3, [r3, #8] + 8032238: 2b00 cmp r3, #0 + 803223a: d103 bne.n 8032244 <_lv_ll_remove+0x78> ll_p->head = NULL; - 80322d0: 687b ldr r3, [r7, #4] - 80322d2: 2200 movs r2, #0 - 80322d4: 605a str r2, [r3, #4] - 80322d6: e01d b.n 8032314 <_lv_ll_remove+0xb4> + 803223c: 687b ldr r3, [r7, #4] + 803223e: 2200 movs r2, #0 + 8032240: 605a str r2, [r3, #4] + 8032242: e01d b.n 8032280 <_lv_ll_remove+0xb4> } else { node_set_next(ll_p, ll_p->tail, NULL); - 80322d8: 687b ldr r3, [r7, #4] - 80322da: 689b ldr r3, [r3, #8] - 80322dc: 2200 movs r2, #0 - 80322de: 4619 mov r1, r3 - 80322e0: 6878 ldr r0, [r7, #4] - 80322e2: f000 f8d4 bl 803248e - 80322e6: e015 b.n 8032314 <_lv_ll_remove+0xb4> + 8032244: 687b ldr r3, [r7, #4] + 8032246: 689b ldr r3, [r3, #8] + 8032248: 2200 movs r2, #0 + 803224a: 4619 mov r1, r3 + 803224c: 6878 ldr r0, [r7, #4] + 803224e: f000 f8d4 bl 80323fa + 8032252: e015 b.n 8032280 <_lv_ll_remove+0xb4> } } else { lv_ll_node_t * n_prev = _lv_ll_get_prev(ll_p, node_p); - 80322e8: 6839 ldr r1, [r7, #0] - 80322ea: 6878 ldr r0, [r7, #4] - 80322ec: f000 f86a bl 80323c4 <_lv_ll_get_prev> - 80322f0: 60f8 str r0, [r7, #12] + 8032254: 6839 ldr r1, [r7, #0] + 8032256: 6878 ldr r0, [r7, #4] + 8032258: f000 f86a bl 8032330 <_lv_ll_get_prev> + 803225c: 60f8 str r0, [r7, #12] lv_ll_node_t * n_next = _lv_ll_get_next(ll_p, node_p); - 80322f2: 6839 ldr r1, [r7, #0] - 80322f4: 6878 ldr r0, [r7, #4] - 80322f6: f000 f851 bl 803239c <_lv_ll_get_next> - 80322fa: 60b8 str r0, [r7, #8] + 803225e: 6839 ldr r1, [r7, #0] + 8032260: 6878 ldr r0, [r7, #4] + 8032262: f000 f851 bl 8032308 <_lv_ll_get_next> + 8032266: 60b8 str r0, [r7, #8] node_set_next(ll_p, n_prev, n_next); - 80322fc: 68ba ldr r2, [r7, #8] - 80322fe: 68f9 ldr r1, [r7, #12] - 8032300: 6878 ldr r0, [r7, #4] - 8032302: f000 f8c4 bl 803248e + 8032268: 68ba ldr r2, [r7, #8] + 803226a: 68f9 ldr r1, [r7, #12] + 803226c: 6878 ldr r0, [r7, #4] + 803226e: f000 f8c4 bl 80323fa node_set_prev(ll_p, n_next, n_prev); - 8032306: 68fa ldr r2, [r7, #12] - 8032308: 68b9 ldr r1, [r7, #8] - 803230a: 6878 ldr r0, [r7, #4] - 803230c: f000 f8a1 bl 8032452 - 8032310: e000 b.n 8032314 <_lv_ll_remove+0xb4> + 8032272: 68fa ldr r2, [r7, #12] + 8032274: 68b9 ldr r1, [r7, #8] + 8032276: 6878 ldr r0, [r7, #4] + 8032278: f000 f8a1 bl 80323be + 803227c: e000 b.n 8032280 <_lv_ll_remove+0xb4> if(ll_p == NULL) return; - 8032312: bf00 nop + 803227e: bf00 nop } } - 8032314: 3710 adds r7, #16 - 8032316: 46bd mov sp, r7 - 8032318: bd80 pop {r7, pc} + 8032280: 3710 adds r7, #16 + 8032282: 46bd mov sp, r7 + 8032284: bd80 pop {r7, pc} -0803231a <_lv_ll_clear>: +08032286 <_lv_ll_clear>: /** * Remove and free all elements from a linked list. The list remain valid but become empty. * @param ll_p pointer to linked list */ void _lv_ll_clear(lv_ll_t * ll_p) { - 803231a: b580 push {r7, lr} - 803231c: b084 sub sp, #16 - 803231e: af00 add r7, sp, #0 - 8032320: 6078 str r0, [r7, #4] + 8032286: b580 push {r7, lr} + 8032288: b084 sub sp, #16 + 803228a: af00 add r7, sp, #0 + 803228c: 6078 str r0, [r7, #4] void * i; void * i_next; i = _lv_ll_get_head(ll_p); - 8032322: 6878 ldr r0, [r7, #4] - 8032324: f000 f81a bl 803235c <_lv_ll_get_head> - 8032328: 60f8 str r0, [r7, #12] + 803228e: 6878 ldr r0, [r7, #4] + 8032290: f000 f81a bl 80322c8 <_lv_ll_get_head> + 8032294: 60f8 str r0, [r7, #12] i_next = NULL; - 803232a: 2300 movs r3, #0 - 803232c: 60bb str r3, [r7, #8] + 8032296: 2300 movs r3, #0 + 8032298: 60bb str r3, [r7, #8] while(i != NULL) { - 803232e: e00d b.n 803234c <_lv_ll_clear+0x32> + 803229a: e00d b.n 80322b8 <_lv_ll_clear+0x32> i_next = _lv_ll_get_next(ll_p, i); - 8032330: 68f9 ldr r1, [r7, #12] - 8032332: 6878 ldr r0, [r7, #4] - 8032334: f000 f832 bl 803239c <_lv_ll_get_next> - 8032338: 60b8 str r0, [r7, #8] + 803229c: 68f9 ldr r1, [r7, #12] + 803229e: 6878 ldr r0, [r7, #4] + 80322a0: f000 f832 bl 8032308 <_lv_ll_get_next> + 80322a4: 60b8 str r0, [r7, #8] _lv_ll_remove(ll_p, i); - 803233a: 68f9 ldr r1, [r7, #12] - 803233c: 6878 ldr r0, [r7, #4] - 803233e: f7ff ff8f bl 8032260 <_lv_ll_remove> + 80322a6: 68f9 ldr r1, [r7, #12] + 80322a8: 6878 ldr r0, [r7, #4] + 80322aa: f7ff ff8f bl 80321cc <_lv_ll_remove> lv_mem_free(i); - 8032342: 68f8 ldr r0, [r7, #12] - 8032344: f000 faca bl 80328dc + 80322ae: 68f8 ldr r0, [r7, #12] + 80322b0: f000 faca bl 8032848 i = i_next; - 8032348: 68bb ldr r3, [r7, #8] - 803234a: 60fb str r3, [r7, #12] + 80322b4: 68bb ldr r3, [r7, #8] + 80322b6: 60fb str r3, [r7, #12] while(i != NULL) { - 803234c: 68fb ldr r3, [r7, #12] - 803234e: 2b00 cmp r3, #0 - 8032350: d1ee bne.n 8032330 <_lv_ll_clear+0x16> + 80322b8: 68fb ldr r3, [r7, #12] + 80322ba: 2b00 cmp r3, #0 + 80322bc: d1ee bne.n 803229c <_lv_ll_clear+0x16> } } - 8032352: bf00 nop - 8032354: bf00 nop - 8032356: 3710 adds r7, #16 - 8032358: 46bd mov sp, r7 - 803235a: bd80 pop {r7, pc} + 80322be: bf00 nop + 80322c0: bf00 nop + 80322c2: 3710 adds r7, #16 + 80322c4: 46bd mov sp, r7 + 80322c6: bd80 pop {r7, pc} -0803235c <_lv_ll_get_head>: +080322c8 <_lv_ll_get_head>: * Return with head node of the linked list * @param ll_p pointer to linked list * @return pointer to the head of 'll_p' */ void * _lv_ll_get_head(const lv_ll_t * ll_p) { - 803235c: b480 push {r7} - 803235e: b083 sub sp, #12 - 8032360: af00 add r7, sp, #0 - 8032362: 6078 str r0, [r7, #4] + 80322c8: b480 push {r7} + 80322ca: b083 sub sp, #12 + 80322cc: af00 add r7, sp, #0 + 80322ce: 6078 str r0, [r7, #4] if(ll_p == NULL) return NULL; - 8032364: 687b ldr r3, [r7, #4] - 8032366: 2b00 cmp r3, #0 - 8032368: d101 bne.n 803236e <_lv_ll_get_head+0x12> - 803236a: 2300 movs r3, #0 - 803236c: e001 b.n 8032372 <_lv_ll_get_head+0x16> + 80322d0: 687b ldr r3, [r7, #4] + 80322d2: 2b00 cmp r3, #0 + 80322d4: d101 bne.n 80322da <_lv_ll_get_head+0x12> + 80322d6: 2300 movs r3, #0 + 80322d8: e001 b.n 80322de <_lv_ll_get_head+0x16> return ll_p->head; - 803236e: 687b ldr r3, [r7, #4] - 8032370: 685b ldr r3, [r3, #4] + 80322da: 687b ldr r3, [r7, #4] + 80322dc: 685b ldr r3, [r3, #4] } - 8032372: 4618 mov r0, r3 - 8032374: 370c adds r7, #12 - 8032376: 46bd mov sp, r7 - 8032378: bc80 pop {r7} - 803237a: 4770 bx lr + 80322de: 4618 mov r0, r3 + 80322e0: 370c adds r7, #12 + 80322e2: 46bd mov sp, r7 + 80322e4: bc80 pop {r7} + 80322e6: 4770 bx lr -0803237c <_lv_ll_get_tail>: +080322e8 <_lv_ll_get_tail>: * Return with tail node of the linked list * @param ll_p pointer to linked list * @return pointer to the tail of 'll_p' */ void * _lv_ll_get_tail(const lv_ll_t * ll_p) { - 803237c: b480 push {r7} - 803237e: b083 sub sp, #12 - 8032380: af00 add r7, sp, #0 - 8032382: 6078 str r0, [r7, #4] + 80322e8: b480 push {r7} + 80322ea: b083 sub sp, #12 + 80322ec: af00 add r7, sp, #0 + 80322ee: 6078 str r0, [r7, #4] if(ll_p == NULL) return NULL; - 8032384: 687b ldr r3, [r7, #4] - 8032386: 2b00 cmp r3, #0 - 8032388: d101 bne.n 803238e <_lv_ll_get_tail+0x12> - 803238a: 2300 movs r3, #0 - 803238c: e001 b.n 8032392 <_lv_ll_get_tail+0x16> + 80322f0: 687b ldr r3, [r7, #4] + 80322f2: 2b00 cmp r3, #0 + 80322f4: d101 bne.n 80322fa <_lv_ll_get_tail+0x12> + 80322f6: 2300 movs r3, #0 + 80322f8: e001 b.n 80322fe <_lv_ll_get_tail+0x16> return ll_p->tail; - 803238e: 687b ldr r3, [r7, #4] - 8032390: 689b ldr r3, [r3, #8] + 80322fa: 687b ldr r3, [r7, #4] + 80322fc: 689b ldr r3, [r3, #8] } - 8032392: 4618 mov r0, r3 - 8032394: 370c adds r7, #12 - 8032396: 46bd mov sp, r7 - 8032398: bc80 pop {r7} - 803239a: 4770 bx lr + 80322fe: 4618 mov r0, r3 + 8032300: 370c adds r7, #12 + 8032302: 46bd mov sp, r7 + 8032304: bc80 pop {r7} + 8032306: 4770 bx lr -0803239c <_lv_ll_get_next>: +08032308 <_lv_ll_get_next>: * @param ll_p pointer to linked list * @param n_act pointer a node * @return pointer to the next node */ void * _lv_ll_get_next(const lv_ll_t * ll_p, const void * n_act) { - 803239c: b480 push {r7} - 803239e: b085 sub sp, #20 - 80323a0: af00 add r7, sp, #0 - 80323a2: 6078 str r0, [r7, #4] - 80323a4: 6039 str r1, [r7, #0] + 8032308: b480 push {r7} + 803230a: b085 sub sp, #20 + 803230c: af00 add r7, sp, #0 + 803230e: 6078 str r0, [r7, #4] + 8032310: 6039 str r1, [r7, #0] /*Pointer to the next node is stored in the end of this node. *Go there and return the address found there*/ const lv_ll_node_t * n_act_d = n_act; - 80323a6: 683b ldr r3, [r7, #0] - 80323a8: 60fb str r3, [r7, #12] + 8032312: 683b ldr r3, [r7, #0] + 8032314: 60fb str r3, [r7, #12] n_act_d += LL_NEXT_P_OFFSET(ll_p); - 80323aa: 687b ldr r3, [r7, #4] - 80323ac: 681b ldr r3, [r3, #0] - 80323ae: 3304 adds r3, #4 - 80323b0: 68fa ldr r2, [r7, #12] - 80323b2: 4413 add r3, r2 - 80323b4: 60fb str r3, [r7, #12] + 8032316: 687b ldr r3, [r7, #4] + 8032318: 681b ldr r3, [r3, #0] + 803231a: 3304 adds r3, #4 + 803231c: 68fa ldr r2, [r7, #12] + 803231e: 4413 add r3, r2 + 8032320: 60fb str r3, [r7, #12] return *((lv_ll_node_t **)n_act_d); - 80323b6: 68fb ldr r3, [r7, #12] - 80323b8: 681b ldr r3, [r3, #0] + 8032322: 68fb ldr r3, [r7, #12] + 8032324: 681b ldr r3, [r3, #0] } - 80323ba: 4618 mov r0, r3 - 80323bc: 3714 adds r7, #20 - 80323be: 46bd mov sp, r7 - 80323c0: bc80 pop {r7} - 80323c2: 4770 bx lr + 8032326: 4618 mov r0, r3 + 8032328: 3714 adds r7, #20 + 803232a: 46bd mov sp, r7 + 803232c: bc80 pop {r7} + 803232e: 4770 bx lr -080323c4 <_lv_ll_get_prev>: +08032330 <_lv_ll_get_prev>: * @param ll_p pointer to linked list * @param n_act pointer a node * @return pointer to the previous node */ void * _lv_ll_get_prev(const lv_ll_t * ll_p, const void * n_act) { - 80323c4: b480 push {r7} - 80323c6: b085 sub sp, #20 - 80323c8: af00 add r7, sp, #0 - 80323ca: 6078 str r0, [r7, #4] - 80323cc: 6039 str r1, [r7, #0] + 8032330: b480 push {r7} + 8032332: b085 sub sp, #20 + 8032334: af00 add r7, sp, #0 + 8032336: 6078 str r0, [r7, #4] + 8032338: 6039 str r1, [r7, #0] /*Pointer to the prev. node is stored in the end of this node. *Go there and return the address found there*/ const lv_ll_node_t * n_act_d = n_act; - 80323ce: 683b ldr r3, [r7, #0] - 80323d0: 60fb str r3, [r7, #12] + 803233a: 683b ldr r3, [r7, #0] + 803233c: 60fb str r3, [r7, #12] n_act_d += LL_PREV_P_OFFSET(ll_p); - 80323d2: 687b ldr r3, [r7, #4] - 80323d4: 681b ldr r3, [r3, #0] - 80323d6: 68fa ldr r2, [r7, #12] - 80323d8: 4413 add r3, r2 - 80323da: 60fb str r3, [r7, #12] + 803233e: 687b ldr r3, [r7, #4] + 8032340: 681b ldr r3, [r3, #0] + 8032342: 68fa ldr r2, [r7, #12] + 8032344: 4413 add r3, r2 + 8032346: 60fb str r3, [r7, #12] return *((lv_ll_node_t **)n_act_d); - 80323dc: 68fb ldr r3, [r7, #12] - 80323de: 681b ldr r3, [r3, #0] + 8032348: 68fb ldr r3, [r7, #12] + 803234a: 681b ldr r3, [r3, #0] } - 80323e0: 4618 mov r0, r3 - 80323e2: 3714 adds r7, #20 - 80323e4: 46bd mov sp, r7 - 80323e6: bc80 pop {r7} - 80323e8: 4770 bx lr + 803234c: 4618 mov r0, r3 + 803234e: 3714 adds r7, #20 + 8032350: 46bd mov sp, r7 + 8032352: bc80 pop {r7} + 8032354: 4770 bx lr -080323ea <_lv_ll_get_len>: +08032356 <_lv_ll_get_len>: * Return the length of the linked list. * @param ll_p pointer to linked list * @return length of the linked list */ uint32_t _lv_ll_get_len(const lv_ll_t * ll_p) { - 80323ea: b580 push {r7, lr} - 80323ec: b084 sub sp, #16 - 80323ee: af00 add r7, sp, #0 - 80323f0: 6078 str r0, [r7, #4] + 8032356: b580 push {r7, lr} + 8032358: b084 sub sp, #16 + 803235a: af00 add r7, sp, #0 + 803235c: 6078 str r0, [r7, #4] uint32_t len = 0; - 80323f2: 2300 movs r3, #0 - 80323f4: 60fb str r3, [r7, #12] + 803235e: 2300 movs r3, #0 + 8032360: 60fb str r3, [r7, #12] void * node; for(node = _lv_ll_get_head(ll_p); node != NULL; node = _lv_ll_get_next(ll_p, node)) { - 80323f6: 6878 ldr r0, [r7, #4] - 80323f8: f7ff ffb0 bl 803235c <_lv_ll_get_head> - 80323fc: 60b8 str r0, [r7, #8] - 80323fe: e007 b.n 8032410 <_lv_ll_get_len+0x26> + 8032362: 6878 ldr r0, [r7, #4] + 8032364: f7ff ffb0 bl 80322c8 <_lv_ll_get_head> + 8032368: 60b8 str r0, [r7, #8] + 803236a: e007 b.n 803237c <_lv_ll_get_len+0x26> len++; - 8032400: 68fb ldr r3, [r7, #12] - 8032402: 3301 adds r3, #1 - 8032404: 60fb str r3, [r7, #12] + 803236c: 68fb ldr r3, [r7, #12] + 803236e: 3301 adds r3, #1 + 8032370: 60fb str r3, [r7, #12] for(node = _lv_ll_get_head(ll_p); node != NULL; node = _lv_ll_get_next(ll_p, node)) { - 8032406: 68b9 ldr r1, [r7, #8] - 8032408: 6878 ldr r0, [r7, #4] - 803240a: f7ff ffc7 bl 803239c <_lv_ll_get_next> - 803240e: 60b8 str r0, [r7, #8] - 8032410: 68bb ldr r3, [r7, #8] - 8032412: 2b00 cmp r3, #0 - 8032414: d1f4 bne.n 8032400 <_lv_ll_get_len+0x16> + 8032372: 68b9 ldr r1, [r7, #8] + 8032374: 6878 ldr r0, [r7, #4] + 8032376: f7ff ffc7 bl 8032308 <_lv_ll_get_next> + 803237a: 60b8 str r0, [r7, #8] + 803237c: 68bb ldr r3, [r7, #8] + 803237e: 2b00 cmp r3, #0 + 8032380: d1f4 bne.n 803236c <_lv_ll_get_len+0x16> } return len; - 8032416: 68fb ldr r3, [r7, #12] + 8032382: 68fb ldr r3, [r7, #12] } - 8032418: 4618 mov r0, r3 - 803241a: 3710 adds r7, #16 - 803241c: 46bd mov sp, r7 - 803241e: bd80 pop {r7, pc} + 8032384: 4618 mov r0, r3 + 8032386: 3710 adds r7, #16 + 8032388: 46bd mov sp, r7 + 803238a: bd80 pop {r7, pc} -08032420 <_lv_ll_is_empty>: +0803238c <_lv_ll_is_empty>: * Check if a linked list is empty * @param ll_p pointer to a linked list * @return true: the linked list is empty; false: not empty */ bool _lv_ll_is_empty(lv_ll_t * ll_p) { - 8032420: b480 push {r7} - 8032422: b083 sub sp, #12 - 8032424: af00 add r7, sp, #0 - 8032426: 6078 str r0, [r7, #4] + 803238c: b480 push {r7} + 803238e: b083 sub sp, #12 + 8032390: af00 add r7, sp, #0 + 8032392: 6078 str r0, [r7, #4] if(ll_p == NULL) return true; - 8032428: 687b ldr r3, [r7, #4] - 803242a: 2b00 cmp r3, #0 - 803242c: d101 bne.n 8032432 <_lv_ll_is_empty+0x12> - 803242e: 2301 movs r3, #1 - 8032430: e00a b.n 8032448 <_lv_ll_is_empty+0x28> + 8032394: 687b ldr r3, [r7, #4] + 8032396: 2b00 cmp r3, #0 + 8032398: d101 bne.n 803239e <_lv_ll_is_empty+0x12> + 803239a: 2301 movs r3, #1 + 803239c: e00a b.n 80323b4 <_lv_ll_is_empty+0x28> if(ll_p->head == NULL && ll_p->tail == NULL) return true; - 8032432: 687b ldr r3, [r7, #4] - 8032434: 685b ldr r3, [r3, #4] - 8032436: 2b00 cmp r3, #0 - 8032438: d105 bne.n 8032446 <_lv_ll_is_empty+0x26> - 803243a: 687b ldr r3, [r7, #4] - 803243c: 689b ldr r3, [r3, #8] - 803243e: 2b00 cmp r3, #0 - 8032440: d101 bne.n 8032446 <_lv_ll_is_empty+0x26> - 8032442: 2301 movs r3, #1 - 8032444: e000 b.n 8032448 <_lv_ll_is_empty+0x28> + 803239e: 687b ldr r3, [r7, #4] + 80323a0: 685b ldr r3, [r3, #4] + 80323a2: 2b00 cmp r3, #0 + 80323a4: d105 bne.n 80323b2 <_lv_ll_is_empty+0x26> + 80323a6: 687b ldr r3, [r7, #4] + 80323a8: 689b ldr r3, [r3, #8] + 80323aa: 2b00 cmp r3, #0 + 80323ac: d101 bne.n 80323b2 <_lv_ll_is_empty+0x26> + 80323ae: 2301 movs r3, #1 + 80323b0: e000 b.n 80323b4 <_lv_ll_is_empty+0x28> return false; - 8032446: 2300 movs r3, #0 + 80323b2: 2300 movs r3, #0 } - 8032448: 4618 mov r0, r3 - 803244a: 370c adds r7, #12 - 803244c: 46bd mov sp, r7 - 803244e: bc80 pop {r7} - 8032450: 4770 bx lr + 80323b4: 4618 mov r0, r3 + 80323b6: 370c adds r7, #12 + 80323b8: 46bd mov sp, r7 + 80323ba: bc80 pop {r7} + 80323bc: 4770 bx lr -08032452 : +080323be : * @param ll_p pointer to linked list * @param act pointer to a node which prev. node pointer should be set * @param prev pointer to a node which should be the previous node before 'act' */ static void node_set_prev(lv_ll_t * ll_p, lv_ll_node_t * act, lv_ll_node_t * prev) { - 8032452: b480 push {r7} - 8032454: b089 sub sp, #36 ; 0x24 - 8032456: af00 add r7, sp, #0 - 8032458: 60f8 str r0, [r7, #12] - 803245a: 60b9 str r1, [r7, #8] - 803245c: 607a str r2, [r7, #4] + 80323be: b480 push {r7} + 80323c0: b089 sub sp, #36 ; 0x24 + 80323c2: af00 add r7, sp, #0 + 80323c4: 60f8 str r0, [r7, #12] + 80323c6: 60b9 str r1, [r7, #8] + 80323c8: 607a str r2, [r7, #4] if(act == NULL) return; /*Can't set the prev node of `NULL`*/ - 803245e: 68bb ldr r3, [r7, #8] - 8032460: 2b00 cmp r3, #0 - 8032462: d00f beq.n 8032484 + 80323ca: 68bb ldr r3, [r7, #8] + 80323cc: 2b00 cmp r3, #0 + 80323ce: d00f beq.n 80323f0 uint8_t * act8 = (uint8_t *)act; - 8032464: 68bb ldr r3, [r7, #8] - 8032466: 61fb str r3, [r7, #28] + 80323d0: 68bb ldr r3, [r7, #8] + 80323d2: 61fb str r3, [r7, #28] act8 += LL_PREV_P_OFFSET(ll_p); - 8032468: 68fb ldr r3, [r7, #12] - 803246a: 681b ldr r3, [r3, #0] - 803246c: 69fa ldr r2, [r7, #28] - 803246e: 4413 add r3, r2 - 8032470: 61fb str r3, [r7, #28] + 80323d4: 68fb ldr r3, [r7, #12] + 80323d6: 681b ldr r3, [r3, #0] + 80323d8: 69fa ldr r2, [r7, #28] + 80323da: 4413 add r3, r2 + 80323dc: 61fb str r3, [r7, #28] lv_ll_node_t ** act_node_p = (lv_ll_node_t **) act8; - 8032472: 69fb ldr r3, [r7, #28] - 8032474: 61bb str r3, [r7, #24] + 80323de: 69fb ldr r3, [r7, #28] + 80323e0: 61bb str r3, [r7, #24] lv_ll_node_t ** prev_node_p = (lv_ll_node_t **) &prev; - 8032476: 1d3b adds r3, r7, #4 - 8032478: 617b str r3, [r7, #20] + 80323e2: 1d3b adds r3, r7, #4 + 80323e4: 617b str r3, [r7, #20] *act_node_p = *prev_node_p; - 803247a: 697b ldr r3, [r7, #20] - 803247c: 681a ldr r2, [r3, #0] - 803247e: 69bb ldr r3, [r7, #24] - 8032480: 601a str r2, [r3, #0] - 8032482: e000 b.n 8032486 + 80323e6: 697b ldr r3, [r7, #20] + 80323e8: 681a ldr r2, [r3, #0] + 80323ea: 69bb ldr r3, [r7, #24] + 80323ec: 601a str r2, [r3, #0] + 80323ee: e000 b.n 80323f2 if(act == NULL) return; /*Can't set the prev node of `NULL`*/ - 8032484: bf00 nop + 80323f0: bf00 nop } - 8032486: 3724 adds r7, #36 ; 0x24 - 8032488: 46bd mov sp, r7 - 803248a: bc80 pop {r7} - 803248c: 4770 bx lr + 80323f2: 3724 adds r7, #36 ; 0x24 + 80323f4: 46bd mov sp, r7 + 80323f6: bc80 pop {r7} + 80323f8: 4770 bx lr -0803248e : +080323fa : * @param ll_p pointer to linked list * @param act pointer to a node which next node pointer should be set * @param next pointer to a node which should be the next node before 'act' */ static void node_set_next(lv_ll_t * ll_p, lv_ll_node_t * act, lv_ll_node_t * next) { - 803248e: b480 push {r7} - 8032490: b089 sub sp, #36 ; 0x24 - 8032492: af00 add r7, sp, #0 - 8032494: 60f8 str r0, [r7, #12] - 8032496: 60b9 str r1, [r7, #8] - 8032498: 607a str r2, [r7, #4] + 80323fa: b480 push {r7} + 80323fc: b089 sub sp, #36 ; 0x24 + 80323fe: af00 add r7, sp, #0 + 8032400: 60f8 str r0, [r7, #12] + 8032402: 60b9 str r1, [r7, #8] + 8032404: 607a str r2, [r7, #4] if(act == NULL) return; /*Can't set the next node of `NULL`*/ - 803249a: 68bb ldr r3, [r7, #8] - 803249c: 2b00 cmp r3, #0 - 803249e: d010 beq.n 80324c2 + 8032406: 68bb ldr r3, [r7, #8] + 8032408: 2b00 cmp r3, #0 + 803240a: d010 beq.n 803242e uint8_t * act8 = (uint8_t *)act; - 80324a0: 68bb ldr r3, [r7, #8] - 80324a2: 61fb str r3, [r7, #28] + 803240c: 68bb ldr r3, [r7, #8] + 803240e: 61fb str r3, [r7, #28] act8 += LL_NEXT_P_OFFSET(ll_p); - 80324a4: 68fb ldr r3, [r7, #12] - 80324a6: 681b ldr r3, [r3, #0] - 80324a8: 3304 adds r3, #4 - 80324aa: 69fa ldr r2, [r7, #28] - 80324ac: 4413 add r3, r2 - 80324ae: 61fb str r3, [r7, #28] + 8032410: 68fb ldr r3, [r7, #12] + 8032412: 681b ldr r3, [r3, #0] + 8032414: 3304 adds r3, #4 + 8032416: 69fa ldr r2, [r7, #28] + 8032418: 4413 add r3, r2 + 803241a: 61fb str r3, [r7, #28] lv_ll_node_t ** act_node_p = (lv_ll_node_t **) act8; - 80324b0: 69fb ldr r3, [r7, #28] - 80324b2: 61bb str r3, [r7, #24] + 803241c: 69fb ldr r3, [r7, #28] + 803241e: 61bb str r3, [r7, #24] lv_ll_node_t ** next_node_p = (lv_ll_node_t **) &next; - 80324b4: 1d3b adds r3, r7, #4 - 80324b6: 617b str r3, [r7, #20] + 8032420: 1d3b adds r3, r7, #4 + 8032422: 617b str r3, [r7, #20] *act_node_p = *next_node_p; - 80324b8: 697b ldr r3, [r7, #20] - 80324ba: 681a ldr r2, [r3, #0] - 80324bc: 69bb ldr r3, [r7, #24] - 80324be: 601a str r2, [r3, #0] - 80324c0: e000 b.n 80324c4 + 8032424: 697b ldr r3, [r7, #20] + 8032426: 681a ldr r2, [r3, #0] + 8032428: 69bb ldr r3, [r7, #24] + 803242a: 601a str r2, [r3, #0] + 803242c: e000 b.n 8032430 if(act == NULL) return; /*Can't set the next node of `NULL`*/ - 80324c2: bf00 nop + 803242e: bf00 nop } - 80324c4: 3724 adds r7, #36 ; 0x24 - 80324c6: 46bd mov sp, r7 - 80324c8: bc80 pop {r7} - 80324ca: 4770 bx lr + 8032430: 3724 adds r7, #36 ; 0x24 + 8032432: 46bd mov sp, r7 + 8032434: bc80 pop {r7} + 8032436: 4770 bx lr -080324cc : +08032438 : * Return with sinus of an angle * @param angle * @return sinus of 'angle'. sin(-90) = -32767, sin(90) = 32767 */ LV_ATTRIBUTE_FAST_MEM int16_t lv_trigo_sin(int16_t angle) { - 80324cc: b480 push {r7} - 80324ce: b085 sub sp, #20 - 80324d0: af00 add r7, sp, #0 - 80324d2: 4603 mov r3, r0 - 80324d4: 80fb strh r3, [r7, #6] + 8032438: b480 push {r7} + 803243a: b085 sub sp, #20 + 803243c: af00 add r7, sp, #0 + 803243e: 4603 mov r3, r0 + 8032440: 80fb strh r3, [r7, #6] int16_t ret = 0; - 80324d6: 2300 movs r3, #0 - 80324d8: 81fb strh r3, [r7, #14] + 8032442: 2300 movs r3, #0 + 8032444: 81fb strh r3, [r7, #14] angle = angle % 360; - 80324da: f9b7 3006 ldrsh.w r3, [r7, #6] - 80324de: 4a30 ldr r2, [pc, #192] ; (80325a0 ) - 80324e0: fb82 1203 smull r1, r2, r2, r3 - 80324e4: 441a add r2, r3 - 80324e6: 1211 asrs r1, r2, #8 - 80324e8: 17da asrs r2, r3, #31 - 80324ea: 1a8a subs r2, r1, r2 - 80324ec: f44f 71b4 mov.w r1, #360 ; 0x168 - 80324f0: fb01 f202 mul.w r2, r1, r2 - 80324f4: 1a9b subs r3, r3, r2 - 80324f6: 80fb strh r3, [r7, #6] + 8032446: f9b7 3006 ldrsh.w r3, [r7, #6] + 803244a: 4a30 ldr r2, [pc, #192] ; (803250c ) + 803244c: fb82 1203 smull r1, r2, r2, r3 + 8032450: 441a add r2, r3 + 8032452: 1211 asrs r1, r2, #8 + 8032454: 17da asrs r2, r3, #31 + 8032456: 1a8a subs r2, r1, r2 + 8032458: f44f 71b4 mov.w r1, #360 ; 0x168 + 803245c: fb01 f202 mul.w r2, r1, r2 + 8032460: 1a9b subs r3, r3, r2 + 8032462: 80fb strh r3, [r7, #6] if(angle < 0) angle = 360 + angle; - 80324f8: f9b7 3006 ldrsh.w r3, [r7, #6] - 80324fc: 2b00 cmp r3, #0 - 80324fe: da04 bge.n 803250a - 8032500: 88fb ldrh r3, [r7, #6] - 8032502: f503 73b4 add.w r3, r3, #360 ; 0x168 - 8032506: b29b uxth r3, r3 - 8032508: 80fb strh r3, [r7, #6] + 8032464: f9b7 3006 ldrsh.w r3, [r7, #6] + 8032468: 2b00 cmp r3, #0 + 803246a: da04 bge.n 8032476 + 803246c: 88fb ldrh r3, [r7, #6] + 803246e: f503 73b4 add.w r3, r3, #360 ; 0x168 + 8032472: b29b uxth r3, r3 + 8032474: 80fb strh r3, [r7, #6] if(angle < 90) { - 803250a: f9b7 3006 ldrsh.w r3, [r7, #6] - 803250e: 2b59 cmp r3, #89 ; 0x59 - 8032510: dc06 bgt.n 8032520 + 8032476: f9b7 3006 ldrsh.w r3, [r7, #6] + 803247a: 2b59 cmp r3, #89 ; 0x59 + 803247c: dc06 bgt.n 803248c ret = sin0_90_table[angle]; - 8032512: f9b7 3006 ldrsh.w r3, [r7, #6] - 8032516: 4a23 ldr r2, [pc, #140] ; (80325a4 ) - 8032518: f832 3013 ldrh.w r3, [r2, r3, lsl #1] - 803251c: 81fb strh r3, [r7, #14] - 803251e: e038 b.n 8032592 + 803247e: f9b7 3006 ldrsh.w r3, [r7, #6] + 8032482: 4a23 ldr r2, [pc, #140] ; (8032510 ) + 8032484: f832 3013 ldrh.w r3, [r2, r3, lsl #1] + 8032488: 81fb strh r3, [r7, #14] + 803248a: e038 b.n 80324fe } else if(angle >= 90 && angle < 180) { - 8032520: f9b7 3006 ldrsh.w r3, [r7, #6] - 8032524: 2b59 cmp r3, #89 ; 0x59 - 8032526: dd0f ble.n 8032548 - 8032528: f9b7 3006 ldrsh.w r3, [r7, #6] - 803252c: 2bb3 cmp r3, #179 ; 0xb3 - 803252e: dc0b bgt.n 8032548 + 803248c: f9b7 3006 ldrsh.w r3, [r7, #6] + 8032490: 2b59 cmp r3, #89 ; 0x59 + 8032492: dd0f ble.n 80324b4 + 8032494: f9b7 3006 ldrsh.w r3, [r7, #6] + 8032498: 2bb3 cmp r3, #179 ; 0xb3 + 803249a: dc0b bgt.n 80324b4 angle = 180 - angle; - 8032530: 88fb ldrh r3, [r7, #6] - 8032532: f1c3 03b4 rsb r3, r3, #180 ; 0xb4 - 8032536: b29b uxth r3, r3 - 8032538: 80fb strh r3, [r7, #6] + 803249c: 88fb ldrh r3, [r7, #6] + 803249e: f1c3 03b4 rsb r3, r3, #180 ; 0xb4 + 80324a2: b29b uxth r3, r3 + 80324a4: 80fb strh r3, [r7, #6] ret = sin0_90_table[angle]; - 803253a: f9b7 3006 ldrsh.w r3, [r7, #6] - 803253e: 4a19 ldr r2, [pc, #100] ; (80325a4 ) - 8032540: f832 3013 ldrh.w r3, [r2, r3, lsl #1] - 8032544: 81fb strh r3, [r7, #14] - 8032546: e024 b.n 8032592 + 80324a6: f9b7 3006 ldrsh.w r3, [r7, #6] + 80324aa: 4a19 ldr r2, [pc, #100] ; (8032510 ) + 80324ac: f832 3013 ldrh.w r3, [r2, r3, lsl #1] + 80324b0: 81fb strh r3, [r7, #14] + 80324b2: e024 b.n 80324fe } else if(angle >= 180 && angle < 270) { - 8032548: f9b7 3006 ldrsh.w r3, [r7, #6] - 803254c: 2bb3 cmp r3, #179 ; 0xb3 - 803254e: dd12 ble.n 8032576 - 8032550: f9b7 3006 ldrsh.w r3, [r7, #6] - 8032554: f5b3 7f87 cmp.w r3, #270 ; 0x10e - 8032558: da0d bge.n 8032576 + 80324b4: f9b7 3006 ldrsh.w r3, [r7, #6] + 80324b8: 2bb3 cmp r3, #179 ; 0xb3 + 80324ba: dd12 ble.n 80324e2 + 80324bc: f9b7 3006 ldrsh.w r3, [r7, #6] + 80324c0: f5b3 7f87 cmp.w r3, #270 ; 0x10e + 80324c4: da0d bge.n 80324e2 angle = angle - 180; - 803255a: 88fb ldrh r3, [r7, #6] - 803255c: 3bb4 subs r3, #180 ; 0xb4 - 803255e: b29b uxth r3, r3 - 8032560: 80fb strh r3, [r7, #6] + 80324c6: 88fb ldrh r3, [r7, #6] + 80324c8: 3bb4 subs r3, #180 ; 0xb4 + 80324ca: b29b uxth r3, r3 + 80324cc: 80fb strh r3, [r7, #6] ret = -sin0_90_table[angle]; - 8032562: f9b7 3006 ldrsh.w r3, [r7, #6] - 8032566: 4a0f ldr r2, [pc, #60] ; (80325a4 ) - 8032568: f932 3013 ldrsh.w r3, [r2, r3, lsl #1] - 803256c: b29b uxth r3, r3 - 803256e: 425b negs r3, r3 - 8032570: b29b uxth r3, r3 - 8032572: 81fb strh r3, [r7, #14] - 8032574: e00d b.n 8032592 + 80324ce: f9b7 3006 ldrsh.w r3, [r7, #6] + 80324d2: 4a0f ldr r2, [pc, #60] ; (8032510 ) + 80324d4: f932 3013 ldrsh.w r3, [r2, r3, lsl #1] + 80324d8: b29b uxth r3, r3 + 80324da: 425b negs r3, r3 + 80324dc: b29b uxth r3, r3 + 80324de: 81fb strh r3, [r7, #14] + 80324e0: e00d b.n 80324fe } else { /*angle >=270*/ angle = 360 - angle; - 8032576: 88fb ldrh r3, [r7, #6] - 8032578: f5c3 73b4 rsb r3, r3, #360 ; 0x168 - 803257c: b29b uxth r3, r3 - 803257e: 80fb strh r3, [r7, #6] + 80324e2: 88fb ldrh r3, [r7, #6] + 80324e4: f5c3 73b4 rsb r3, r3, #360 ; 0x168 + 80324e8: b29b uxth r3, r3 + 80324ea: 80fb strh r3, [r7, #6] ret = -sin0_90_table[angle]; - 8032580: f9b7 3006 ldrsh.w r3, [r7, #6] - 8032584: 4a07 ldr r2, [pc, #28] ; (80325a4 ) - 8032586: f932 3013 ldrsh.w r3, [r2, r3, lsl #1] - 803258a: b29b uxth r3, r3 - 803258c: 425b negs r3, r3 - 803258e: b29b uxth r3, r3 - 8032590: 81fb strh r3, [r7, #14] + 80324ec: f9b7 3006 ldrsh.w r3, [r7, #6] + 80324f0: 4a07 ldr r2, [pc, #28] ; (8032510 ) + 80324f2: f932 3013 ldrsh.w r3, [r2, r3, lsl #1] + 80324f6: b29b uxth r3, r3 + 80324f8: 425b negs r3, r3 + 80324fa: b29b uxth r3, r3 + 80324fc: 81fb strh r3, [r7, #14] } return ret; - 8032592: f9b7 300e ldrsh.w r3, [r7, #14] + 80324fe: f9b7 300e ldrsh.w r3, [r7, #14] } - 8032596: 4618 mov r0, r3 - 8032598: 3714 adds r7, #20 - 803259a: 46bd mov sp, r7 - 803259c: bc80 pop {r7} - 803259e: 4770 bx lr - 80325a0: b60b60b7 .word 0xb60b60b7 - 80325a4: 080708f4 .word 0x080708f4 + 8032502: 4618 mov r0, r3 + 8032504: 3714 adds r7, #20 + 8032506: 46bd mov sp, r7 + 8032508: bc80 pop {r7} + 803250a: 4770 bx lr + 803250c: b60b60b7 .word 0xb60b60b7 + 8032510: 0807084c .word 0x0807084c -080325a8 : +08032514 : * @param u2 control value 2 in range of [0..LV_BEZIER_VAL_MAX] * @param u3 end values in range of [0..LV_BEZIER_VAL_MAX] * @return the value calculated from the given parameters in range of [0..LV_BEZIER_VAL_MAX] */ uint32_t lv_bezier3(uint32_t t, uint32_t u0, uint32_t u1, uint32_t u2, uint32_t u3) { - 80325a8: b480 push {r7} - 80325aa: b08f sub sp, #60 ; 0x3c - 80325ac: af00 add r7, sp, #0 - 80325ae: 60f8 str r0, [r7, #12] - 80325b0: 60b9 str r1, [r7, #8] - 80325b2: 607a str r2, [r7, #4] - 80325b4: 603b str r3, [r7, #0] + 8032514: b480 push {r7} + 8032516: b08f sub sp, #60 ; 0x3c + 8032518: af00 add r7, sp, #0 + 803251a: 60f8 str r0, [r7, #12] + 803251c: 60b9 str r1, [r7, #8] + 803251e: 607a str r2, [r7, #4] + 8032520: 603b str r3, [r7, #0] uint32_t t_rem = 1024 - t; - 80325b6: 68fb ldr r3, [r7, #12] - 80325b8: f5c3 6380 rsb r3, r3, #1024 ; 0x400 - 80325bc: 637b str r3, [r7, #52] ; 0x34 + 8032522: 68fb ldr r3, [r7, #12] + 8032524: f5c3 6380 rsb r3, r3, #1024 ; 0x400 + 8032528: 637b str r3, [r7, #52] ; 0x34 uint32_t t_rem2 = (t_rem * t_rem) >> 10; - 80325be: 6b7b ldr r3, [r7, #52] ; 0x34 - 80325c0: fb03 f303 mul.w r3, r3, r3 - 80325c4: 0a9b lsrs r3, r3, #10 - 80325c6: 633b str r3, [r7, #48] ; 0x30 + 803252a: 6b7b ldr r3, [r7, #52] ; 0x34 + 803252c: fb03 f303 mul.w r3, r3, r3 + 8032530: 0a9b lsrs r3, r3, #10 + 8032532: 633b str r3, [r7, #48] ; 0x30 uint32_t t_rem3 = (t_rem2 * t_rem) >> 10; - 80325c8: 6b3b ldr r3, [r7, #48] ; 0x30 - 80325ca: 6b7a ldr r2, [r7, #52] ; 0x34 - 80325cc: fb02 f303 mul.w r3, r2, r3 - 80325d0: 0a9b lsrs r3, r3, #10 - 80325d2: 62fb str r3, [r7, #44] ; 0x2c + 8032534: 6b3b ldr r3, [r7, #48] ; 0x30 + 8032536: 6b7a ldr r2, [r7, #52] ; 0x34 + 8032538: fb02 f303 mul.w r3, r2, r3 + 803253c: 0a9b lsrs r3, r3, #10 + 803253e: 62fb str r3, [r7, #44] ; 0x2c uint32_t t2 = (t * t) >> 10; - 80325d4: 68fb ldr r3, [r7, #12] - 80325d6: fb03 f303 mul.w r3, r3, r3 - 80325da: 0a9b lsrs r3, r3, #10 - 80325dc: 62bb str r3, [r7, #40] ; 0x28 + 8032540: 68fb ldr r3, [r7, #12] + 8032542: fb03 f303 mul.w r3, r3, r3 + 8032546: 0a9b lsrs r3, r3, #10 + 8032548: 62bb str r3, [r7, #40] ; 0x28 uint32_t t3 = (t2 * t) >> 10; - 80325de: 6abb ldr r3, [r7, #40] ; 0x28 - 80325e0: 68fa ldr r2, [r7, #12] - 80325e2: fb02 f303 mul.w r3, r2, r3 - 80325e6: 0a9b lsrs r3, r3, #10 - 80325e8: 627b str r3, [r7, #36] ; 0x24 + 803254a: 6abb ldr r3, [r7, #40] ; 0x28 + 803254c: 68fa ldr r2, [r7, #12] + 803254e: fb02 f303 mul.w r3, r2, r3 + 8032552: 0a9b lsrs r3, r3, #10 + 8032554: 627b str r3, [r7, #36] ; 0x24 uint32_t v1 = (t_rem3 * u0) >> 10; - 80325ea: 6afb ldr r3, [r7, #44] ; 0x2c - 80325ec: 68ba ldr r2, [r7, #8] - 80325ee: fb02 f303 mul.w r3, r2, r3 - 80325f2: 0a9b lsrs r3, r3, #10 - 80325f4: 623b str r3, [r7, #32] + 8032556: 6afb ldr r3, [r7, #44] ; 0x2c + 8032558: 68ba ldr r2, [r7, #8] + 803255a: fb02 f303 mul.w r3, r2, r3 + 803255e: 0a9b lsrs r3, r3, #10 + 8032560: 623b str r3, [r7, #32] uint32_t v2 = (3 * t_rem2 * t * u1) >> 20; - 80325f6: 6b3b ldr r3, [r7, #48] ; 0x30 - 80325f8: 68fa ldr r2, [r7, #12] - 80325fa: fb02 f303 mul.w r3, r2, r3 - 80325fe: 687a ldr r2, [r7, #4] - 8032600: fb03 f202 mul.w r2, r3, r2 - 8032604: 4613 mov r3, r2 - 8032606: 005b lsls r3, r3, #1 - 8032608: 4413 add r3, r2 - 803260a: 0d1b lsrs r3, r3, #20 - 803260c: 61fb str r3, [r7, #28] + 8032562: 6b3b ldr r3, [r7, #48] ; 0x30 + 8032564: 68fa ldr r2, [r7, #12] + 8032566: fb02 f303 mul.w r3, r2, r3 + 803256a: 687a ldr r2, [r7, #4] + 803256c: fb03 f202 mul.w r2, r3, r2 + 8032570: 4613 mov r3, r2 + 8032572: 005b lsls r3, r3, #1 + 8032574: 4413 add r3, r2 + 8032576: 0d1b lsrs r3, r3, #20 + 8032578: 61fb str r3, [r7, #28] uint32_t v3 = (3 * t_rem * t2 * u2) >> 20; - 803260e: 6b7b ldr r3, [r7, #52] ; 0x34 - 8032610: 6aba ldr r2, [r7, #40] ; 0x28 - 8032612: fb02 f303 mul.w r3, r2, r3 - 8032616: 683a ldr r2, [r7, #0] - 8032618: fb03 f202 mul.w r2, r3, r2 - 803261c: 4613 mov r3, r2 - 803261e: 005b lsls r3, r3, #1 - 8032620: 4413 add r3, r2 - 8032622: 0d1b lsrs r3, r3, #20 - 8032624: 61bb str r3, [r7, #24] + 803257a: 6b7b ldr r3, [r7, #52] ; 0x34 + 803257c: 6aba ldr r2, [r7, #40] ; 0x28 + 803257e: fb02 f303 mul.w r3, r2, r3 + 8032582: 683a ldr r2, [r7, #0] + 8032584: fb03 f202 mul.w r2, r3, r2 + 8032588: 4613 mov r3, r2 + 803258a: 005b lsls r3, r3, #1 + 803258c: 4413 add r3, r2 + 803258e: 0d1b lsrs r3, r3, #20 + 8032590: 61bb str r3, [r7, #24] uint32_t v4 = (t3 * u3) >> 10; - 8032626: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032628: 6c3a ldr r2, [r7, #64] ; 0x40 - 803262a: fb02 f303 mul.w r3, r2, r3 - 803262e: 0a9b lsrs r3, r3, #10 - 8032630: 617b str r3, [r7, #20] + 8032592: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032594: 6c3a ldr r2, [r7, #64] ; 0x40 + 8032596: fb02 f303 mul.w r3, r2, r3 + 803259a: 0a9b lsrs r3, r3, #10 + 803259c: 617b str r3, [r7, #20] return v1 + v2 + v3 + v4; - 8032632: 6a3a ldr r2, [r7, #32] - 8032634: 69fb ldr r3, [r7, #28] - 8032636: 441a add r2, r3 - 8032638: 69bb ldr r3, [r7, #24] - 803263a: 441a add r2, r3 - 803263c: 697b ldr r3, [r7, #20] - 803263e: 4413 add r3, r2 + 803259e: 6a3a ldr r2, [r7, #32] + 80325a0: 69fb ldr r3, [r7, #28] + 80325a2: 441a add r2, r3 + 80325a4: 69bb ldr r3, [r7, #24] + 80325a6: 441a add r2, r3 + 80325a8: 697b ldr r3, [r7, #20] + 80325aa: 4413 add r3, r2 } - 8032640: 4618 mov r0, r3 - 8032642: 373c adds r7, #60 ; 0x3c - 8032644: 46bd mov sp, r7 - 8032646: bc80 pop {r7} - 8032648: 4770 bx lr + 80325ac: 4618 mov r0, r3 + 80325ae: 373c adds r7, #60 ; 0x3c + 80325b0: 46bd mov sp, r7 + 80325b2: bc80 pop {r7} + 80325b4: 4770 bx lr -0803264a : +080325b6 : * @param x * @param y * @return the angle in degree calculated from the given parameters in range of [0..360] */ uint16_t lv_atan2(int x, int y) { - 803264a: b480 push {r7} - 803264c: b089 sub sp, #36 ; 0x24 - 803264e: af00 add r7, sp, #0 - 8032650: 6078 str r0, [r7, #4] - 8032652: 6039 str r1, [r7, #0] + 80325b6: b480 push {r7} + 80325b8: b089 sub sp, #36 ; 0x24 + 80325ba: af00 add r7, sp, #0 + 80325bc: 6078 str r0, [r7, #4] + 80325be: 6039 str r1, [r7, #0] unsigned int degree; // this will hold the result unsigned int ux; unsigned int uy; // Save the sign flags then remove signs and get XY as unsigned ints negflag = 0; - 8032654: 2300 movs r3, #0 - 8032656: 77fb strb r3, [r7, #31] + 80325c0: 2300 movs r3, #0 + 80325c2: 77fb strb r3, [r7, #31] if(x < 0) { - 8032658: 687b ldr r3, [r7, #4] - 803265a: 2b00 cmp r3, #0 - 803265c: da05 bge.n 803266a + 80325c4: 687b ldr r3, [r7, #4] + 80325c6: 2b00 cmp r3, #0 + 80325c8: da05 bge.n 80325d6 negflag += 0x01; // x flag bit - 803265e: 7ffb ldrb r3, [r7, #31] - 8032660: 3301 adds r3, #1 - 8032662: 77fb strb r3, [r7, #31] + 80325ca: 7ffb ldrb r3, [r7, #31] + 80325cc: 3301 adds r3, #1 + 80325ce: 77fb strb r3, [r7, #31] x = (0 - x); // is now + - 8032664: 687b ldr r3, [r7, #4] - 8032666: 425b negs r3, r3 - 8032668: 607b str r3, [r7, #4] + 80325d0: 687b ldr r3, [r7, #4] + 80325d2: 425b negs r3, r3 + 80325d4: 607b str r3, [r7, #4] } ux = x; // copy to unsigned var before multiply - 803266a: 687b ldr r3, [r7, #4] - 803266c: 617b str r3, [r7, #20] + 80325d6: 687b ldr r3, [r7, #4] + 80325d8: 617b str r3, [r7, #20] if(y < 0) { - 803266e: 683b ldr r3, [r7, #0] - 8032670: 2b00 cmp r3, #0 - 8032672: da05 bge.n 8032680 + 80325da: 683b ldr r3, [r7, #0] + 80325dc: 2b00 cmp r3, #0 + 80325de: da05 bge.n 80325ec negflag += 0x02; // y flag bit - 8032674: 7ffb ldrb r3, [r7, #31] - 8032676: 3302 adds r3, #2 - 8032678: 77fb strb r3, [r7, #31] + 80325e0: 7ffb ldrb r3, [r7, #31] + 80325e2: 3302 adds r3, #2 + 80325e4: 77fb strb r3, [r7, #31] y = (0 - y); // is now + - 803267a: 683b ldr r3, [r7, #0] - 803267c: 425b negs r3, r3 - 803267e: 603b str r3, [r7, #0] + 80325e6: 683b ldr r3, [r7, #0] + 80325e8: 425b negs r3, r3 + 80325ea: 603b str r3, [r7, #0] } uy = y; // copy to unsigned var before multiply - 8032680: 683b ldr r3, [r7, #0] - 8032682: 613b str r3, [r7, #16] + 80325ec: 683b ldr r3, [r7, #0] + 80325ee: 613b str r3, [r7, #16] // 1. Calc the scaled "degrees" if(ux > uy) { - 8032684: 697a ldr r2, [r7, #20] - 8032686: 693b ldr r3, [r7, #16] - 8032688: 429a cmp r2, r3 - 803268a: d90d bls.n 80326a8 + 80325f0: 697a ldr r2, [r7, #20] + 80325f2: 693b ldr r3, [r7, #16] + 80325f4: 429a cmp r2, r3 + 80325f6: d90d bls.n 8032614 degree = (uy * 45) / ux; // degree result will be 0-45 range - 803268c: 693a ldr r2, [r7, #16] - 803268e: 4613 mov r3, r2 - 8032690: 005b lsls r3, r3, #1 - 8032692: 4413 add r3, r2 - 8032694: 011a lsls r2, r3, #4 - 8032696: 1ad2 subs r2, r2, r3 - 8032698: 697b ldr r3, [r7, #20] - 803269a: fbb2 f3f3 udiv r3, r2, r3 - 803269e: 61bb str r3, [r7, #24] + 80325f8: 693a ldr r2, [r7, #16] + 80325fa: 4613 mov r3, r2 + 80325fc: 005b lsls r3, r3, #1 + 80325fe: 4413 add r3, r2 + 8032600: 011a lsls r2, r3, #4 + 8032602: 1ad2 subs r2, r2, r3 + 8032604: 697b ldr r3, [r7, #20] + 8032606: fbb2 f3f3 udiv r3, r2, r3 + 803260a: 61bb str r3, [r7, #24] negflag += 0x10; // octant flag bit - 80326a0: 7ffb ldrb r3, [r7, #31] - 80326a2: 3310 adds r3, #16 - 80326a4: 77fb strb r3, [r7, #31] - 80326a6: e009 b.n 80326bc + 803260c: 7ffb ldrb r3, [r7, #31] + 803260e: 3310 adds r3, #16 + 8032610: 77fb strb r3, [r7, #31] + 8032612: e009 b.n 8032628 } else { degree = (ux * 45) / uy; // degree result will be 0-45 range - 80326a8: 697a ldr r2, [r7, #20] - 80326aa: 4613 mov r3, r2 - 80326ac: 005b lsls r3, r3, #1 - 80326ae: 4413 add r3, r2 - 80326b0: 011a lsls r2, r3, #4 - 80326b2: 1ad2 subs r2, r2, r3 - 80326b4: 693b ldr r3, [r7, #16] - 80326b6: fbb2 f3f3 udiv r3, r2, r3 - 80326ba: 61bb str r3, [r7, #24] + 8032614: 697a ldr r2, [r7, #20] + 8032616: 4613 mov r3, r2 + 8032618: 005b lsls r3, r3, #1 + 803261a: 4413 add r3, r2 + 803261c: 011a lsls r2, r3, #4 + 803261e: 1ad2 subs r2, r2, r3 + 8032620: 693b ldr r3, [r7, #16] + 8032622: fbb2 f3f3 udiv r3, r2, r3 + 8032626: 61bb str r3, [r7, #24] } // 2. Compensate for the 4 degree error curve comp = 0; - 80326bc: 2300 movs r3, #0 - 80326be: 77bb strb r3, [r7, #30] + 8032628: 2300 movs r3, #0 + 803262a: 77bb strb r3, [r7, #30] tempdegree = degree; // use an unsigned char for speed! - 80326c0: 69bb ldr r3, [r7, #24] - 80326c2: 73fb strb r3, [r7, #15] + 803262c: 69bb ldr r3, [r7, #24] + 803262e: 73fb strb r3, [r7, #15] if(tempdegree > 22) { // if top half of range - 80326c4: 7bfb ldrb r3, [r7, #15] - 80326c6: 2b16 cmp r3, #22 - 80326c8: d918 bls.n 80326fc + 8032630: 7bfb ldrb r3, [r7, #15] + 8032632: 2b16 cmp r3, #22 + 8032634: d918 bls.n 8032668 if(tempdegree <= 44) comp++; - 80326ca: 7bfb ldrb r3, [r7, #15] - 80326cc: 2b2c cmp r3, #44 ; 0x2c - 80326ce: d802 bhi.n 80326d6 - 80326d0: 7fbb ldrb r3, [r7, #30] - 80326d2: 3301 adds r3, #1 - 80326d4: 77bb strb r3, [r7, #30] + 8032636: 7bfb ldrb r3, [r7, #15] + 8032638: 2b2c cmp r3, #44 ; 0x2c + 803263a: d802 bhi.n 8032642 + 803263c: 7fbb ldrb r3, [r7, #30] + 803263e: 3301 adds r3, #1 + 8032640: 77bb strb r3, [r7, #30] if(tempdegree <= 41) comp++; - 80326d6: 7bfb ldrb r3, [r7, #15] - 80326d8: 2b29 cmp r3, #41 ; 0x29 - 80326da: d802 bhi.n 80326e2 - 80326dc: 7fbb ldrb r3, [r7, #30] - 80326de: 3301 adds r3, #1 - 80326e0: 77bb strb r3, [r7, #30] + 8032642: 7bfb ldrb r3, [r7, #15] + 8032644: 2b29 cmp r3, #41 ; 0x29 + 8032646: d802 bhi.n 803264e + 8032648: 7fbb ldrb r3, [r7, #30] + 803264a: 3301 adds r3, #1 + 803264c: 77bb strb r3, [r7, #30] if(tempdegree <= 37) comp++; - 80326e2: 7bfb ldrb r3, [r7, #15] - 80326e4: 2b25 cmp r3, #37 ; 0x25 - 80326e6: d802 bhi.n 80326ee - 80326e8: 7fbb ldrb r3, [r7, #30] - 80326ea: 3301 adds r3, #1 - 80326ec: 77bb strb r3, [r7, #30] + 803264e: 7bfb ldrb r3, [r7, #15] + 8032650: 2b25 cmp r3, #37 ; 0x25 + 8032652: d802 bhi.n 803265a + 8032654: 7fbb ldrb r3, [r7, #30] + 8032656: 3301 adds r3, #1 + 8032658: 77bb strb r3, [r7, #30] if(tempdegree <= 32) comp++; // max is 4 degrees compensated - 80326ee: 7bfb ldrb r3, [r7, #15] - 80326f0: 2b20 cmp r3, #32 - 80326f2: d81b bhi.n 803272c - 80326f4: 7fbb ldrb r3, [r7, #30] - 80326f6: 3301 adds r3, #1 - 80326f8: 77bb strb r3, [r7, #30] - 80326fa: e017 b.n 803272c + 803265a: 7bfb ldrb r3, [r7, #15] + 803265c: 2b20 cmp r3, #32 + 803265e: d81b bhi.n 8032698 + 8032660: 7fbb ldrb r3, [r7, #30] + 8032662: 3301 adds r3, #1 + 8032664: 77bb strb r3, [r7, #30] + 8032666: e017 b.n 8032698 } else { // else is lower half of range if(tempdegree >= 2) comp++; - 80326fc: 7bfb ldrb r3, [r7, #15] - 80326fe: 2b01 cmp r3, #1 - 8032700: d902 bls.n 8032708 - 8032702: 7fbb ldrb r3, [r7, #30] - 8032704: 3301 adds r3, #1 - 8032706: 77bb strb r3, [r7, #30] + 8032668: 7bfb ldrb r3, [r7, #15] + 803266a: 2b01 cmp r3, #1 + 803266c: d902 bls.n 8032674 + 803266e: 7fbb ldrb r3, [r7, #30] + 8032670: 3301 adds r3, #1 + 8032672: 77bb strb r3, [r7, #30] if(tempdegree >= 6) comp++; - 8032708: 7bfb ldrb r3, [r7, #15] - 803270a: 2b05 cmp r3, #5 - 803270c: d902 bls.n 8032714 - 803270e: 7fbb ldrb r3, [r7, #30] - 8032710: 3301 adds r3, #1 - 8032712: 77bb strb r3, [r7, #30] + 8032674: 7bfb ldrb r3, [r7, #15] + 8032676: 2b05 cmp r3, #5 + 8032678: d902 bls.n 8032680 + 803267a: 7fbb ldrb r3, [r7, #30] + 803267c: 3301 adds r3, #1 + 803267e: 77bb strb r3, [r7, #30] if(tempdegree >= 10) comp++; - 8032714: 7bfb ldrb r3, [r7, #15] - 8032716: 2b09 cmp r3, #9 - 8032718: d902 bls.n 8032720 - 803271a: 7fbb ldrb r3, [r7, #30] - 803271c: 3301 adds r3, #1 - 803271e: 77bb strb r3, [r7, #30] + 8032680: 7bfb ldrb r3, [r7, #15] + 8032682: 2b09 cmp r3, #9 + 8032684: d902 bls.n 803268c + 8032686: 7fbb ldrb r3, [r7, #30] + 8032688: 3301 adds r3, #1 + 803268a: 77bb strb r3, [r7, #30] if(tempdegree >= 15) comp++; // max is 4 degrees compensated - 8032720: 7bfb ldrb r3, [r7, #15] - 8032722: 2b0e cmp r3, #14 - 8032724: d902 bls.n 803272c - 8032726: 7fbb ldrb r3, [r7, #30] - 8032728: 3301 adds r3, #1 - 803272a: 77bb strb r3, [r7, #30] + 803268c: 7bfb ldrb r3, [r7, #15] + 803268e: 2b0e cmp r3, #14 + 8032690: d902 bls.n 8032698 + 8032692: 7fbb ldrb r3, [r7, #30] + 8032694: 3301 adds r3, #1 + 8032696: 77bb strb r3, [r7, #30] } degree += comp; // degree is now accurate to +/- 1 degree! - 803272c: 7fbb ldrb r3, [r7, #30] - 803272e: 69ba ldr r2, [r7, #24] - 8032730: 4413 add r3, r2 - 8032732: 61bb str r3, [r7, #24] + 8032698: 7fbb ldrb r3, [r7, #30] + 803269a: 69ba ldr r2, [r7, #24] + 803269c: 4413 add r3, r2 + 803269e: 61bb str r3, [r7, #24] // Invert degree if it was X>Y octant, makes 0-45 into 90-45 if(negflag & 0x10) degree = (90 - degree); - 8032734: 7ffb ldrb r3, [r7, #31] - 8032736: f003 0310 and.w r3, r3, #16 - 803273a: 2b00 cmp r3, #0 - 803273c: d003 beq.n 8032746 - 803273e: 69bb ldr r3, [r7, #24] - 8032740: f1c3 035a rsb r3, r3, #90 ; 0x5a - 8032744: 61bb str r3, [r7, #24] + 80326a0: 7ffb ldrb r3, [r7, #31] + 80326a2: f003 0310 and.w r3, r3, #16 + 80326a6: 2b00 cmp r3, #0 + 80326a8: d003 beq.n 80326b2 + 80326aa: 69bb ldr r3, [r7, #24] + 80326ac: f1c3 035a rsb r3, r3, #90 ; 0x5a + 80326b0: 61bb str r3, [r7, #24] // 3. Degree is now 0-90 range for this quadrant, // need to invert it for whichever quadrant it was in if(negflag & 0x02) { // if -Y - 8032746: 7ffb ldrb r3, [r7, #31] - 8032748: f003 0302 and.w r3, r3, #2 - 803274c: 2b00 cmp r3, #0 - 803274e: d00d beq.n 803276c + 80326b2: 7ffb ldrb r3, [r7, #31] + 80326b4: f003 0302 and.w r3, r3, #2 + 80326b8: 2b00 cmp r3, #0 + 80326ba: d00d beq.n 80326d8 if(negflag & 0x01) // if -Y -X - 8032750: 7ffb ldrb r3, [r7, #31] - 8032752: f003 0301 and.w r3, r3, #1 - 8032756: 2b00 cmp r3, #0 - 8032758: d003 beq.n 8032762 + 80326bc: 7ffb ldrb r3, [r7, #31] + 80326be: f003 0301 and.w r3, r3, #1 + 80326c2: 2b00 cmp r3, #0 + 80326c4: d003 beq.n 80326ce degree = (180 + degree); - 803275a: 69bb ldr r3, [r7, #24] - 803275c: 33b4 adds r3, #180 ; 0xb4 - 803275e: 61bb str r3, [r7, #24] - 8032760: e00d b.n 803277e + 80326c6: 69bb ldr r3, [r7, #24] + 80326c8: 33b4 adds r3, #180 ; 0xb4 + 80326ca: 61bb str r3, [r7, #24] + 80326cc: e00d b.n 80326ea else // else is -Y +X degree = (180 - degree); - 8032762: 69bb ldr r3, [r7, #24] - 8032764: f1c3 03b4 rsb r3, r3, #180 ; 0xb4 - 8032768: 61bb str r3, [r7, #24] - 803276a: e008 b.n 803277e + 80326ce: 69bb ldr r3, [r7, #24] + 80326d0: f1c3 03b4 rsb r3, r3, #180 ; 0xb4 + 80326d4: 61bb str r3, [r7, #24] + 80326d6: e008 b.n 80326ea } else { // else is +Y if(negflag & 0x01) // if +Y -X - 803276c: 7ffb ldrb r3, [r7, #31] - 803276e: f003 0301 and.w r3, r3, #1 - 8032772: 2b00 cmp r3, #0 - 8032774: d003 beq.n 803277e + 80326d8: 7ffb ldrb r3, [r7, #31] + 80326da: f003 0301 and.w r3, r3, #1 + 80326de: 2b00 cmp r3, #0 + 80326e0: d003 beq.n 80326ea degree = (360 - degree); - 8032776: 69bb ldr r3, [r7, #24] - 8032778: f5c3 73b4 rsb r3, r3, #360 ; 0x168 - 803277c: 61bb str r3, [r7, #24] + 80326e2: 69bb ldr r3, [r7, #24] + 80326e4: f5c3 73b4 rsb r3, r3, #360 ; 0x168 + 80326e8: 61bb str r3, [r7, #24] } return degree; - 803277e: 69bb ldr r3, [r7, #24] - 8032780: b29b uxth r3, r3 + 80326ea: 69bb ldr r3, [r7, #24] + 80326ec: b29b uxth r3, r3 } - 8032782: 4618 mov r0, r3 - 8032784: 3724 adds r7, #36 ; 0x24 - 8032786: 46bd mov sp, r7 - 8032788: bc80 pop {r7} - 803278a: 4770 bx lr + 80326ee: 4618 mov r0, r3 + 80326f0: 3724 adds r7, #36 ; 0x24 + 80326f2: 46bd mov sp, r7 + 80326f4: bc80 pop {r7} + 80326f6: 4770 bx lr -0803278c : +080326f8 : * @param base * @param power * @return base raised to the power exponent */ int64_t lv_pow(int64_t base, int8_t exp) { - 803278c: e92d 03b0 stmdb sp!, {r4, r5, r7, r8, r9} - 8032790: b087 sub sp, #28 - 8032792: af00 add r7, sp, #0 - 8032794: e9c7 0102 strd r0, r1, [r7, #8] - 8032798: 4613 mov r3, r2 - 803279a: 71fb strb r3, [r7, #7] + 80326f8: e92d 03b0 stmdb sp!, {r4, r5, r7, r8, r9} + 80326fc: b087 sub sp, #28 + 80326fe: af00 add r7, sp, #0 + 8032700: e9c7 0102 strd r0, r1, [r7, #8] + 8032704: 4613 mov r3, r2 + 8032706: 71fb strb r3, [r7, #7] int64_t result = 1; - 803279c: f04f 0201 mov.w r2, #1 - 80327a0: f04f 0300 mov.w r3, #0 - 80327a4: e9c7 2304 strd r2, r3, [r7, #16] + 8032708: f04f 0201 mov.w r2, #1 + 803270c: f04f 0300 mov.w r3, #0 + 8032710: e9c7 2304 strd r2, r3, [r7, #16] while(exp) { - 80327a8: e02e b.n 8032808 + 8032714: e02e b.n 8032774 if(exp & 1) - 80327aa: 79fb ldrb r3, [r7, #7] - 80327ac: f003 0301 and.w r3, r3, #1 - 80327b0: 2b00 cmp r3, #0 - 80327b2: d012 beq.n 80327da + 8032716: 79fb ldrb r3, [r7, #7] + 8032718: f003 0301 and.w r3, r3, #1 + 803271c: 2b00 cmp r3, #0 + 803271e: d012 beq.n 8032746 result *= base; - 80327b4: 697b ldr r3, [r7, #20] - 80327b6: 68ba ldr r2, [r7, #8] - 80327b8: fb03 f202 mul.w r2, r3, r2 - 80327bc: 68fb ldr r3, [r7, #12] - 80327be: 6939 ldr r1, [r7, #16] - 80327c0: fb01 f303 mul.w r3, r1, r3 - 80327c4: 4413 add r3, r2 - 80327c6: 6939 ldr r1, [r7, #16] - 80327c8: 68ba ldr r2, [r7, #8] - 80327ca: fba1 4502 umull r4, r5, r1, r2 - 80327ce: 442b add r3, r5 - 80327d0: 461d mov r5, r3 - 80327d2: e9c7 4504 strd r4, r5, [r7, #16] - 80327d6: e9c7 4504 strd r4, r5, [r7, #16] + 8032720: 697b ldr r3, [r7, #20] + 8032722: 68ba ldr r2, [r7, #8] + 8032724: fb03 f202 mul.w r2, r3, r2 + 8032728: 68fb ldr r3, [r7, #12] + 803272a: 6939 ldr r1, [r7, #16] + 803272c: fb01 f303 mul.w r3, r1, r3 + 8032730: 4413 add r3, r2 + 8032732: 6939 ldr r1, [r7, #16] + 8032734: 68ba ldr r2, [r7, #8] + 8032736: fba1 4502 umull r4, r5, r1, r2 + 803273a: 442b add r3, r5 + 803273c: 461d mov r5, r3 + 803273e: e9c7 4504 strd r4, r5, [r7, #16] + 8032742: e9c7 4504 strd r4, r5, [r7, #16] exp >>= 1; - 80327da: f997 3007 ldrsb.w r3, [r7, #7] - 80327de: 105b asrs r3, r3, #1 - 80327e0: 71fb strb r3, [r7, #7] + 8032746: f997 3007 ldrsb.w r3, [r7, #7] + 803274a: 105b asrs r3, r3, #1 + 803274c: 71fb strb r3, [r7, #7] base *= base; - 80327e2: 68fb ldr r3, [r7, #12] - 80327e4: 68ba ldr r2, [r7, #8] - 80327e6: fb03 f202 mul.w r2, r3, r2 - 80327ea: 68fb ldr r3, [r7, #12] - 80327ec: 68b9 ldr r1, [r7, #8] - 80327ee: fb01 f303 mul.w r3, r1, r3 - 80327f2: 441a add r2, r3 - 80327f4: 68bb ldr r3, [r7, #8] - 80327f6: fba3 8903 umull r8, r9, r3, r3 - 80327fa: eb02 0309 add.w r3, r2, r9 - 80327fe: 4699 mov r9, r3 - 8032800: e9c7 8902 strd r8, r9, [r7, #8] - 8032804: e9c7 8902 strd r8, r9, [r7, #8] + 803274e: 68fb ldr r3, [r7, #12] + 8032750: 68ba ldr r2, [r7, #8] + 8032752: fb03 f202 mul.w r2, r3, r2 + 8032756: 68fb ldr r3, [r7, #12] + 8032758: 68b9 ldr r1, [r7, #8] + 803275a: fb01 f303 mul.w r3, r1, r3 + 803275e: 441a add r2, r3 + 8032760: 68bb ldr r3, [r7, #8] + 8032762: fba3 8903 umull r8, r9, r3, r3 + 8032766: eb02 0309 add.w r3, r2, r9 + 803276a: 4699 mov r9, r3 + 803276c: e9c7 8902 strd r8, r9, [r7, #8] + 8032770: e9c7 8902 strd r8, r9, [r7, #8] while(exp) { - 8032808: f997 3007 ldrsb.w r3, [r7, #7] - 803280c: 2b00 cmp r3, #0 - 803280e: d1cc bne.n 80327aa + 8032774: f997 3007 ldrsb.w r3, [r7, #7] + 8032778: 2b00 cmp r3, #0 + 803277a: d1cc bne.n 8032716 } return result; - 8032810: e9d7 2304 ldrd r2, r3, [r7, #16] + 803277c: e9d7 2304 ldrd r2, r3, [r7, #16] } - 8032814: 4610 mov r0, r2 - 8032816: 4619 mov r1, r3 - 8032818: 371c adds r7, #28 - 803281a: 46bd mov sp, r7 - 803281c: e8bd 03b0 ldmia.w sp!, {r4, r5, r7, r8, r9} - 8032820: 4770 bx lr + 8032780: 4610 mov r0, r2 + 8032782: 4619 mov r1, r3 + 8032784: 371c adds r7, #28 + 8032786: 46bd mov sp, r7 + 8032788: e8bd 03b0 ldmia.w sp!, {r4, r5, r7, r8, r9} + 803278c: 4770 bx lr -08032822 : +0803278e : * @param min_out max output range * @param max_out max output range * @return the mapped number */ int32_t lv_map(int32_t x, int32_t min_in, int32_t max_in, int32_t min_out, int32_t max_out) { - 8032822: b480 push {r7} - 8032824: b087 sub sp, #28 - 8032826: af00 add r7, sp, #0 - 8032828: 60f8 str r0, [r7, #12] - 803282a: 60b9 str r1, [r7, #8] - 803282c: 607a str r2, [r7, #4] - 803282e: 603b str r3, [r7, #0] + 803278e: b480 push {r7} + 8032790: b087 sub sp, #28 + 8032792: af00 add r7, sp, #0 + 8032794: 60f8 str r0, [r7, #12] + 8032796: 60b9 str r1, [r7, #8] + 8032798: 607a str r2, [r7, #4] + 803279a: 603b str r3, [r7, #0] if(x >= max_in) return max_out; - 8032830: 68fa ldr r2, [r7, #12] - 8032832: 687b ldr r3, [r7, #4] - 8032834: 429a cmp r2, r3 - 8032836: db01 blt.n 803283c - 8032838: 6a3b ldr r3, [r7, #32] - 803283a: e018 b.n 803286e + 803279c: 68fa ldr r2, [r7, #12] + 803279e: 687b ldr r3, [r7, #4] + 80327a0: 429a cmp r2, r3 + 80327a2: db01 blt.n 80327a8 + 80327a4: 6a3b ldr r3, [r7, #32] + 80327a6: e018 b.n 80327da if(x <= min_in) return min_out; - 803283c: 68fa ldr r2, [r7, #12] - 803283e: 68bb ldr r3, [r7, #8] - 8032840: 429a cmp r2, r3 - 8032842: dc01 bgt.n 8032848 - 8032844: 683b ldr r3, [r7, #0] - 8032846: e012 b.n 803286e + 80327a8: 68fa ldr r2, [r7, #12] + 80327aa: 68bb ldr r3, [r7, #8] + 80327ac: 429a cmp r2, r3 + 80327ae: dc01 bgt.n 80327b4 + 80327b0: 683b ldr r3, [r7, #0] + 80327b2: e012 b.n 80327da * ((x - min_in) * delta_out) / delta in) + min_out * To avoid rounding error reorder the operations: * (x - min_in) * (delta_out / delta_min) + min_out */ int32_t delta_in = max_in - min_in; - 8032848: 687a ldr r2, [r7, #4] - 803284a: 68bb ldr r3, [r7, #8] - 803284c: 1ad3 subs r3, r2, r3 - 803284e: 617b str r3, [r7, #20] + 80327b4: 687a ldr r2, [r7, #4] + 80327b6: 68bb ldr r3, [r7, #8] + 80327b8: 1ad3 subs r3, r2, r3 + 80327ba: 617b str r3, [r7, #20] int32_t delta_out = max_out - min_out; - 8032850: 6a3a ldr r2, [r7, #32] - 8032852: 683b ldr r3, [r7, #0] - 8032854: 1ad3 subs r3, r2, r3 - 8032856: 613b str r3, [r7, #16] + 80327bc: 6a3a ldr r2, [r7, #32] + 80327be: 683b ldr r3, [r7, #0] + 80327c0: 1ad3 subs r3, r2, r3 + 80327c2: 613b str r3, [r7, #16] return ((x - min_in) * delta_out) / delta_in + min_out; - 8032858: 68fa ldr r2, [r7, #12] - 803285a: 68bb ldr r3, [r7, #8] - 803285c: 1ad3 subs r3, r2, r3 - 803285e: 693a ldr r2, [r7, #16] - 8032860: fb03 f202 mul.w r2, r3, r2 - 8032864: 697b ldr r3, [r7, #20] - 8032866: fb92 f2f3 sdiv r2, r2, r3 - 803286a: 683b ldr r3, [r7, #0] - 803286c: 4413 add r3, r2 + 80327c4: 68fa ldr r2, [r7, #12] + 80327c6: 68bb ldr r3, [r7, #8] + 80327c8: 1ad3 subs r3, r2, r3 + 80327ca: 693a ldr r2, [r7, #16] + 80327cc: fb03 f202 mul.w r2, r3, r2 + 80327d0: 697b ldr r3, [r7, #20] + 80327d2: fb92 f2f3 sdiv r2, r2, r3 + 80327d6: 683b ldr r3, [r7, #0] + 80327d8: 4413 add r3, r2 } - 803286e: 4618 mov r0, r3 - 8032870: 371c adds r7, #28 - 8032872: 46bd mov sp, r7 - 8032874: bc80 pop {r7} - 8032876: 4770 bx lr + 80327da: 4618 mov r0, r3 + 80327dc: 371c adds r7, #28 + 80327de: 46bd mov sp, r7 + 80327e0: bc80 pop {r7} + 80327e2: 4770 bx lr -08032878 : +080327e4 : /** * Initialize the dyn_mem module (work memory and other variables) */ void lv_mem_init(void) { - 8032878: b580 push {r7, lr} - 803287a: af00 add r7, sp, #0 + 80327e4: b580 push {r7, lr} + 80327e6: af00 add r7, sp, #0 #ifdef LV_MEM_POOL_ALLOC tlsf = lv_tlsf_create_with_pool((void *)LV_MEM_POOL_ALLOC(LV_MEM_SIZE), LV_MEM_SIZE); #else /*Allocate a large array to store the dynamically allocated data*/ static LV_ATTRIBUTE_LARGE_RAM_ARRAY MEM_UNIT work_mem_int[LV_MEM_SIZE / sizeof(MEM_UNIT)]; tlsf = lv_tlsf_create_with_pool((void *)work_mem_int, LV_MEM_SIZE); - 803287c: f44f 4180 mov.w r1, #16384 ; 0x4000 - 8032880: 4803 ldr r0, [pc, #12] ; (8032890 ) - 8032882: f003 fabb bl 8035dfc - 8032886: 4603 mov r3, r0 - 8032888: 4a02 ldr r2, [pc, #8] ; (8032894 ) - 803288a: 6013 str r3, [r2, #0] + 80327e8: f44f 4180 mov.w r1, #16384 ; 0x4000 + 80327ec: 4803 ldr r0, [pc, #12] ; (80327fc ) + 80327ee: f003 fabb bl 8035d68 + 80327f2: 4603 mov r3, r0 + 80327f4: 4a02 ldr r2, [pc, #8] ; (8032800 ) + 80327f6: 6013 str r3, [r2, #0] #endif #if LV_MEM_ADD_JUNK LV_LOG_WARN("LV_MEM_ADD_JUNK is enabled which makes LVGL much slower"); #endif } - 803288c: bf00 nop - 803288e: bd80 pop {r7, pc} - 8032890: 20001f14 .word 0x20001f14 - 8032894: 20001f10 .word 0x20001f10 + 80327f8: bf00 nop + 80327fa: bd80 pop {r7, pc} + 80327fc: 20001f14 .word 0x20001f14 + 8032800: 20001f10 .word 0x20001f10 -08032898 : +08032804 : * Allocate a memory dynamically * @param size size of the memory to allocate in bytes * @return pointer to the allocated memory */ void * lv_mem_alloc(size_t size) { - 8032898: b580 push {r7, lr} - 803289a: b08a sub sp, #40 ; 0x28 - 803289c: af00 add r7, sp, #0 - 803289e: 6078 str r0, [r7, #4] + 8032804: b580 push {r7, lr} + 8032806: b08a sub sp, #40 ; 0x28 + 8032808: af00 add r7, sp, #0 + 803280a: 6078 str r0, [r7, #4] MEM_TRACE("allocating %lu bytes", (unsigned long)size); if(size == 0) { - 80328a0: 687b ldr r3, [r7, #4] - 80328a2: 2b00 cmp r3, #0 - 80328a4: d101 bne.n 80328aa + 803280c: 687b ldr r3, [r7, #4] + 803280e: 2b00 cmp r3, #0 + 8032810: d101 bne.n 8032816 MEM_TRACE("using zero_mem"); return &zero_mem; - 80328a6: 4b0b ldr r3, [pc, #44] ; (80328d4 ) - 80328a8: e00f b.n 80328ca + 8032812: 4b0b ldr r3, [pc, #44] ; (8032840 ) + 8032814: e00f b.n 8032836 } #if LV_MEM_CUSTOM == 0 void * alloc = lv_tlsf_malloc(tlsf, size); - 80328aa: 4b0b ldr r3, [pc, #44] ; (80328d8 ) - 80328ac: 681b ldr r3, [r3, #0] - 80328ae: 6879 ldr r1, [r7, #4] - 80328b0: 4618 mov r0, r3 - 80328b2: f003 facd bl 8035e50 - 80328b6: 6278 str r0, [r7, #36] ; 0x24 + 8032816: 4b0b ldr r3, [pc, #44] ; (8032844 ) + 8032818: 681b ldr r3, [r3, #0] + 803281a: 6879 ldr r1, [r7, #4] + 803281c: 4618 mov r0, r3 + 803281e: f003 facd bl 8035dbc + 8032822: 6278 str r0, [r7, #36] ; 0x24 #else void * alloc = LV_MEM_CUSTOM_ALLOC(size); #endif if(alloc == NULL) { - 80328b8: 6a7b ldr r3, [r7, #36] ; 0x24 - 80328ba: 2b00 cmp r3, #0 - 80328bc: d104 bne.n 80328c8 + 8032824: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032826: 2b00 cmp r3, #0 + 8032828: d104 bne.n 8032834 LV_LOG_ERROR("couldn't allocate memory (%lu bytes)", (unsigned long)size); lv_mem_monitor_t mon; lv_mem_monitor(&mon); - 80328be: f107 0308 add.w r3, r7, #8 - 80328c2: 4618 mov r0, r3 - 80328c4: f000 f852 bl 803296c + 803282a: f107 0308 add.w r3, r7, #8 + 803282e: 4618 mov r0, r3 + 8032830: f000 f852 bl 80328d8 lv_memset(alloc, 0xaa, size); } #endif MEM_TRACE("allocated at %p", alloc); return alloc; - 80328c8: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032834: 6a7b ldr r3, [r7, #36] ; 0x24 } - 80328ca: 4618 mov r0, r3 - 80328cc: 3728 adds r7, #40 ; 0x28 - 80328ce: 46bd mov sp, r7 - 80328d0: bd80 pop {r7, pc} - 80328d2: bf00 nop - 80328d4: 200000dc .word 0x200000dc - 80328d8: 20001f10 .word 0x20001f10 + 8032836: 4618 mov r0, r3 + 8032838: 3728 adds r7, #40 ; 0x28 + 803283a: 46bd mov sp, r7 + 803283c: bd80 pop {r7, pc} + 803283e: bf00 nop + 8032840: 200000dc .word 0x200000dc + 8032844: 20001f10 .word 0x20001f10 -080328dc : +08032848 : /** * Free an allocated data * @param data pointer to an allocated memory */ void lv_mem_free(void * data) { - 80328dc: b580 push {r7, lr} - 80328de: b082 sub sp, #8 - 80328e0: af00 add r7, sp, #0 - 80328e2: 6078 str r0, [r7, #4] + 8032848: b580 push {r7, lr} + 803284a: b082 sub sp, #8 + 803284c: af00 add r7, sp, #0 + 803284e: 6078 str r0, [r7, #4] MEM_TRACE("freeing %p", data); if(data == &zero_mem) return; - 80328e4: 687b ldr r3, [r7, #4] - 80328e6: 4a09 ldr r2, [pc, #36] ; (803290c ) - 80328e8: 4293 cmp r3, r2 - 80328ea: d009 beq.n 8032900 + 8032850: 687b ldr r3, [r7, #4] + 8032852: 4a09 ldr r2, [pc, #36] ; (8032878 ) + 8032854: 4293 cmp r3, r2 + 8032856: d009 beq.n 803286c if(data == NULL) return; - 80328ec: 687b ldr r3, [r7, #4] - 80328ee: 2b00 cmp r3, #0 - 80328f0: d008 beq.n 8032904 + 8032858: 687b ldr r3, [r7, #4] + 803285a: 2b00 cmp r3, #0 + 803285c: d008 beq.n 8032870 #if LV_MEM_CUSTOM == 0 # if LV_MEM_ADD_JUNK lv_memset(data, 0xbb, lv_tlsf_block_size(data)); # endif lv_tlsf_free(tlsf, data); - 80328f2: 4b07 ldr r3, [pc, #28] ; (8032910 ) - 80328f4: 681b ldr r3, [r3, #0] - 80328f6: 6879 ldr r1, [r7, #4] - 80328f8: 4618 mov r0, r3 - 80328fa: f003 fac4 bl 8035e86 - 80328fe: e002 b.n 8032906 + 803285e: 4b07 ldr r3, [pc, #28] ; (803287c ) + 8032860: 681b ldr r3, [r3, #0] + 8032862: 6879 ldr r1, [r7, #4] + 8032864: 4618 mov r0, r3 + 8032866: f003 fac4 bl 8035df2 + 803286a: e002 b.n 8032872 if(data == &zero_mem) return; - 8032900: bf00 nop - 8032902: e000 b.n 8032906 + 803286c: bf00 nop + 803286e: e000 b.n 8032872 if(data == NULL) return; - 8032904: bf00 nop + 8032870: bf00 nop #else LV_MEM_CUSTOM_FREE(data); #endif } - 8032906: 3708 adds r7, #8 - 8032908: 46bd mov sp, r7 - 803290a: bd80 pop {r7, pc} - 803290c: 200000dc .word 0x200000dc - 8032910: 20001f10 .word 0x20001f10 + 8032872: 3708 adds r7, #8 + 8032874: 46bd mov sp, r7 + 8032876: bd80 pop {r7, pc} + 8032878: 200000dc .word 0x200000dc + 803287c: 20001f10 .word 0x20001f10 -08032914 : +08032880 : * Its content will be copied to the new memory block and freed * @param new_size the desired new size in byte * @return pointer to the new memory */ void * lv_mem_realloc(void * data_p, size_t new_size) { - 8032914: b580 push {r7, lr} - 8032916: b084 sub sp, #16 - 8032918: af00 add r7, sp, #0 - 803291a: 6078 str r0, [r7, #4] - 803291c: 6039 str r1, [r7, #0] + 8032880: b580 push {r7, lr} + 8032882: b084 sub sp, #16 + 8032884: af00 add r7, sp, #0 + 8032886: 6078 str r0, [r7, #4] + 8032888: 6039 str r1, [r7, #0] MEM_TRACE("reallocating %p with %lu size", data_p, (unsigned long)new_size); if(new_size == 0) { - 803291e: 683b ldr r3, [r7, #0] - 8032920: 2b00 cmp r3, #0 - 8032922: d104 bne.n 803292e + 803288a: 683b ldr r3, [r7, #0] + 803288c: 2b00 cmp r3, #0 + 803288e: d104 bne.n 803289a MEM_TRACE("using zero_mem"); lv_mem_free(data_p); - 8032924: 6878 ldr r0, [r7, #4] - 8032926: f7ff ffd9 bl 80328dc + 8032890: 6878 ldr r0, [r7, #4] + 8032892: f7ff ffd9 bl 8032848 return &zero_mem; - 803292a: 4b0e ldr r3, [pc, #56] ; (8032964 ) - 803292c: e016 b.n 803295c + 8032896: 4b0e ldr r3, [pc, #56] ; (80328d0 ) + 8032898: e016 b.n 80328c8 } if(data_p == &zero_mem) return lv_mem_alloc(new_size); - 803292e: 687b ldr r3, [r7, #4] - 8032930: 4a0c ldr r2, [pc, #48] ; (8032964 ) - 8032932: 4293 cmp r3, r2 - 8032934: d104 bne.n 8032940 - 8032936: 6838 ldr r0, [r7, #0] - 8032938: f7ff ffae bl 8032898 - 803293c: 4603 mov r3, r0 - 803293e: e00d b.n 803295c + 803289a: 687b ldr r3, [r7, #4] + 803289c: 4a0c ldr r2, [pc, #48] ; (80328d0 ) + 803289e: 4293 cmp r3, r2 + 80328a0: d104 bne.n 80328ac + 80328a2: 6838 ldr r0, [r7, #0] + 80328a4: f7ff ffae bl 8032804 + 80328a8: 4603 mov r3, r0 + 80328aa: e00d b.n 80328c8 #if LV_MEM_CUSTOM == 0 void * new_p = lv_tlsf_realloc(tlsf, data_p, new_size); - 8032940: 4b09 ldr r3, [pc, #36] ; (8032968 ) - 8032942: 681b ldr r3, [r3, #0] - 8032944: 683a ldr r2, [r7, #0] - 8032946: 6879 ldr r1, [r7, #4] - 8032948: 4618 mov r0, r3 - 803294a: f003 fac6 bl 8035eda - 803294e: 60f8 str r0, [r7, #12] + 80328ac: 4b09 ldr r3, [pc, #36] ; (80328d4 ) + 80328ae: 681b ldr r3, [r3, #0] + 80328b0: 683a ldr r2, [r7, #0] + 80328b2: 6879 ldr r1, [r7, #4] + 80328b4: 4618 mov r0, r3 + 80328b6: f003 fac6 bl 8035e46 + 80328ba: 60f8 str r0, [r7, #12] #else void * new_p = LV_MEM_CUSTOM_REALLOC(data_p, new_size); #endif if(new_p == NULL) { - 8032950: 68fb ldr r3, [r7, #12] - 8032952: 2b00 cmp r3, #0 - 8032954: d101 bne.n 803295a + 80328bc: 68fb ldr r3, [r7, #12] + 80328be: 2b00 cmp r3, #0 + 80328c0: d101 bne.n 80328c6 LV_LOG_ERROR("couldn't allocate memory"); return NULL; - 8032956: 2300 movs r3, #0 - 8032958: e000 b.n 803295c + 80328c2: 2300 movs r3, #0 + 80328c4: e000 b.n 80328c8 } MEM_TRACE("allocated at %p", new_p); return new_p; - 803295a: 68fb ldr r3, [r7, #12] + 80328c6: 68fb ldr r3, [r7, #12] } - 803295c: 4618 mov r0, r3 - 803295e: 3710 adds r7, #16 - 8032960: 46bd mov sp, r7 - 8032962: bd80 pop {r7, pc} - 8032964: 200000dc .word 0x200000dc - 8032968: 20001f10 .word 0x20001f10 + 80328c8: 4618 mov r0, r3 + 80328ca: 3710 adds r7, #16 + 80328cc: 46bd mov sp, r7 + 80328ce: bd80 pop {r7, pc} + 80328d0: 200000dc .word 0x200000dc + 80328d4: 20001f10 .word 0x20001f10 -0803296c : +080328d8 : * Give information about the work memory of dynamic allocation * @param mon_p pointer to a lv_mem_monitor_t variable, * the result of the analysis will be stored here */ void lv_mem_monitor(lv_mem_monitor_t * mon_p) { - 803296c: b580 push {r7, lr} - 803296e: b082 sub sp, #8 - 8032970: af00 add r7, sp, #0 - 8032972: 6078 str r0, [r7, #4] + 80328d8: b580 push {r7, lr} + 80328da: b082 sub sp, #8 + 80328dc: af00 add r7, sp, #0 + 80328de: 6078 str r0, [r7, #4] /*Init the data*/ lv_memset(mon_p, 0, sizeof(lv_mem_monitor_t)); - 8032974: 221c movs r2, #28 - 8032976: 2100 movs r1, #0 - 8032978: 6878 ldr r0, [r7, #4] - 803297a: f000 fb5c bl 8033036 + 80328e0: 221c movs r2, #28 + 80328e2: 2100 movs r1, #0 + 80328e4: 6878 ldr r0, [r7, #4] + 80328e6: f000 fb5c bl 8032fa2 #if LV_MEM_CUSTOM == 0 MEM_TRACE("begin"); lv_tlsf_walk_pool(lv_tlsf_get_pool(tlsf), lv_mem_walker, mon_p); - 803297e: 4b1e ldr r3, [pc, #120] ; (80329f8 ) - 8032980: 681b ldr r3, [r3, #0] - 8032982: 4618 mov r0, r3 - 8032984: f003 fa57 bl 8035e36 - 8032988: 4603 mov r3, r0 - 803298a: 687a ldr r2, [r7, #4] - 803298c: 491b ldr r1, [pc, #108] ; (80329fc ) - 803298e: 4618 mov r0, r3 - 8032990: f003 f986 bl 8035ca0 + 80328ea: 4b1e ldr r3, [pc, #120] ; (8032964 ) + 80328ec: 681b ldr r3, [r3, #0] + 80328ee: 4618 mov r0, r3 + 80328f0: f003 fa57 bl 8035da2 + 80328f4: 4603 mov r3, r0 + 80328f6: 687a ldr r2, [r7, #4] + 80328f8: 491b ldr r1, [pc, #108] ; (8032968 ) + 80328fa: 4618 mov r0, r3 + 80328fc: f003 f986 bl 8035c0c mon_p->total_size = LV_MEM_SIZE; - 8032994: 687b ldr r3, [r7, #4] - 8032996: f44f 4280 mov.w r2, #16384 ; 0x4000 - 803299a: 601a str r2, [r3, #0] + 8032900: 687b ldr r3, [r7, #4] + 8032902: f44f 4280 mov.w r2, #16384 ; 0x4000 + 8032906: 601a str r2, [r3, #0] mon_p->used_pct = 100 - (100U * mon_p->free_size) / mon_p->total_size; - 803299c: 687b ldr r3, [r7, #4] - 803299e: 689b ldr r3, [r3, #8] - 80329a0: 2264 movs r2, #100 ; 0x64 - 80329a2: fb03 f202 mul.w r2, r3, r2 - 80329a6: 687b ldr r3, [r7, #4] - 80329a8: 681b ldr r3, [r3, #0] - 80329aa: fbb2 f3f3 udiv r3, r2, r3 - 80329ae: b2db uxtb r3, r3 - 80329b0: f1c3 0364 rsb r3, r3, #100 ; 0x64 - 80329b4: b2da uxtb r2, r3 - 80329b6: 687b ldr r3, [r7, #4] - 80329b8: 761a strb r2, [r3, #24] + 8032908: 687b ldr r3, [r7, #4] + 803290a: 689b ldr r3, [r3, #8] + 803290c: 2264 movs r2, #100 ; 0x64 + 803290e: fb03 f202 mul.w r2, r3, r2 + 8032912: 687b ldr r3, [r7, #4] + 8032914: 681b ldr r3, [r3, #0] + 8032916: fbb2 f3f3 udiv r3, r2, r3 + 803291a: b2db uxtb r3, r3 + 803291c: f1c3 0364 rsb r3, r3, #100 ; 0x64 + 8032920: b2da uxtb r2, r3 + 8032922: 687b ldr r3, [r7, #4] + 8032924: 761a strb r2, [r3, #24] if(mon_p->free_size > 0) { - 80329ba: 687b ldr r3, [r7, #4] - 80329bc: 689b ldr r3, [r3, #8] - 80329be: 2b00 cmp r3, #0 - 80329c0: d013 beq.n 80329ea + 8032926: 687b ldr r3, [r7, #4] + 8032928: 689b ldr r3, [r3, #8] + 803292a: 2b00 cmp r3, #0 + 803292c: d013 beq.n 8032956 mon_p->frag_pct = mon_p->free_biggest_size * 100U / mon_p->free_size; - 80329c2: 687b ldr r3, [r7, #4] - 80329c4: 68db ldr r3, [r3, #12] - 80329c6: 2264 movs r2, #100 ; 0x64 - 80329c8: fb03 f202 mul.w r2, r3, r2 - 80329cc: 687b ldr r3, [r7, #4] - 80329ce: 689b ldr r3, [r3, #8] - 80329d0: fbb2 f3f3 udiv r3, r2, r3 - 80329d4: b2da uxtb r2, r3 - 80329d6: 687b ldr r3, [r7, #4] - 80329d8: 765a strb r2, [r3, #25] + 803292e: 687b ldr r3, [r7, #4] + 8032930: 68db ldr r3, [r3, #12] + 8032932: 2264 movs r2, #100 ; 0x64 + 8032934: fb03 f202 mul.w r2, r3, r2 + 8032938: 687b ldr r3, [r7, #4] + 803293a: 689b ldr r3, [r3, #8] + 803293c: fbb2 f3f3 udiv r3, r2, r3 + 8032940: b2da uxtb r2, r3 + 8032942: 687b ldr r3, [r7, #4] + 8032944: 765a strb r2, [r3, #25] mon_p->frag_pct = 100 - mon_p->frag_pct; - 80329da: 687b ldr r3, [r7, #4] - 80329dc: 7e5b ldrb r3, [r3, #25] - 80329de: f1c3 0364 rsb r3, r3, #100 ; 0x64 - 80329e2: b2da uxtb r2, r3 - 80329e4: 687b ldr r3, [r7, #4] - 80329e6: 765a strb r2, [r3, #25] + 8032946: 687b ldr r3, [r7, #4] + 8032948: 7e5b ldrb r3, [r3, #25] + 803294a: f1c3 0364 rsb r3, r3, #100 ; 0x64 + 803294e: b2da uxtb r2, r3 + 8032950: 687b ldr r3, [r7, #4] + 8032952: 765a strb r2, [r3, #25] mon_p->frag_pct = 0; /*no fragmentation if all the RAM is used*/ } MEM_TRACE("finished"); #endif } - 80329e8: e002 b.n 80329f0 + 8032954: e002 b.n 803295c mon_p->frag_pct = 0; /*no fragmentation if all the RAM is used*/ - 80329ea: 687b ldr r3, [r7, #4] - 80329ec: 2200 movs r2, #0 - 80329ee: 765a strb r2, [r3, #25] + 8032956: 687b ldr r3, [r7, #4] + 8032958: 2200 movs r2, #0 + 803295a: 765a strb r2, [r3, #25] } - 80329f0: bf00 nop - 80329f2: 3708 adds r7, #8 - 80329f4: 46bd mov sp, r7 - 80329f6: bd80 pop {r7, pc} - 80329f8: 20001f10 .word 0x20001f10 - 80329fc: 08033363 .word 0x08033363 + 803295c: bf00 nop + 803295e: 3708 adds r7, #8 + 8032960: 46bd mov sp, r7 + 8032962: bd80 pop {r7, pc} + 8032964: 20001f10 .word 0x20001f10 + 8032968: 080332cf .word 0x080332cf -08032a00 : +0803296c : /** * Get a temporal buffer with the given size. * @param size the required size */ void * lv_mem_buf_get(uint32_t size) { - 8032a00: b580 push {r7, lr} - 8032a02: b084 sub sp, #16 - 8032a04: af00 add r7, sp, #0 - 8032a06: 6078 str r0, [r7, #4] + 803296c: b580 push {r7, lr} + 803296e: b084 sub sp, #16 + 8032970: af00 add r7, sp, #0 + 8032972: 6078 str r0, [r7, #4] if(size == 0) return NULL; - 8032a08: 687b ldr r3, [r7, #4] - 8032a0a: 2b00 cmp r3, #0 - 8032a0c: d101 bne.n 8032a12 - 8032a0e: 2300 movs r3, #0 - 8032a10: e09c b.n 8032b4c + 8032974: 687b ldr r3, [r7, #4] + 8032976: 2b00 cmp r3, #0 + 8032978: d101 bne.n 803297e + 803297a: 2300 movs r3, #0 + 803297c: e09c b.n 8032ab8 MEM_TRACE("begin, getting %d bytes", size); /*Try to find a free buffer with suitable size*/ int8_t i_guess = -1; - 8032a12: 23ff movs r3, #255 ; 0xff - 8032a14: 73fb strb r3, [r7, #15] + 803297e: 23ff movs r3, #255 ; 0xff + 8032980: 73fb strb r3, [r7, #15] for(uint8_t i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { - 8032a16: 2300 movs r3, #0 - 8032a18: 73bb strb r3, [r7, #14] - 8032a1a: e041 b.n 8032aa0 + 8032982: 2300 movs r3, #0 + 8032984: 73bb strb r3, [r7, #14] + 8032986: e041 b.n 8032a0c if(LV_GC_ROOT(lv_mem_buf[i]).used == 0 && LV_GC_ROOT(lv_mem_buf[i]).size >= size) { - 8032a1c: 7bbb ldrb r3, [r7, #14] - 8032a1e: 4a4d ldr r2, [pc, #308] ; (8032b54 ) - 8032a20: 00db lsls r3, r3, #3 - 8032a22: 4413 add r3, r2 - 8032a24: 799b ldrb r3, [r3, #6] - 8032a26: f3c3 0300 ubfx r3, r3, #0, #1 - 8032a2a: b2db uxtb r3, r3 - 8032a2c: 2b00 cmp r3, #0 - 8032a2e: d134 bne.n 8032a9a - 8032a30: 7bbb ldrb r3, [r7, #14] - 8032a32: 4a48 ldr r2, [pc, #288] ; (8032b54 ) - 8032a34: 00db lsls r3, r3, #3 - 8032a36: 4413 add r3, r2 - 8032a38: 889b ldrh r3, [r3, #4] - 8032a3a: 461a mov r2, r3 - 8032a3c: 687b ldr r3, [r7, #4] - 8032a3e: 4293 cmp r3, r2 - 8032a40: d82b bhi.n 8032a9a + 8032988: 7bbb ldrb r3, [r7, #14] + 803298a: 4a4d ldr r2, [pc, #308] ; (8032ac0 ) + 803298c: 00db lsls r3, r3, #3 + 803298e: 4413 add r3, r2 + 8032990: 799b ldrb r3, [r3, #6] + 8032992: f3c3 0300 ubfx r3, r3, #0, #1 + 8032996: b2db uxtb r3, r3 + 8032998: 2b00 cmp r3, #0 + 803299a: d134 bne.n 8032a06 + 803299c: 7bbb ldrb r3, [r7, #14] + 803299e: 4a48 ldr r2, [pc, #288] ; (8032ac0 ) + 80329a0: 00db lsls r3, r3, #3 + 80329a2: 4413 add r3, r2 + 80329a4: 889b ldrh r3, [r3, #4] + 80329a6: 461a mov r2, r3 + 80329a8: 687b ldr r3, [r7, #4] + 80329aa: 4293 cmp r3, r2 + 80329ac: d82b bhi.n 8032a06 if(LV_GC_ROOT(lv_mem_buf[i]).size == size) { - 8032a42: 7bbb ldrb r3, [r7, #14] - 8032a44: 4a43 ldr r2, [pc, #268] ; (8032b54 ) - 8032a46: 00db lsls r3, r3, #3 - 8032a48: 4413 add r3, r2 - 8032a4a: 889b ldrh r3, [r3, #4] - 8032a4c: 461a mov r2, r3 - 8032a4e: 687b ldr r3, [r7, #4] - 8032a50: 4293 cmp r3, r2 - 8032a52: d10c bne.n 8032a6e + 80329ae: 7bbb ldrb r3, [r7, #14] + 80329b0: 4a43 ldr r2, [pc, #268] ; (8032ac0 ) + 80329b2: 00db lsls r3, r3, #3 + 80329b4: 4413 add r3, r2 + 80329b6: 889b ldrh r3, [r3, #4] + 80329b8: 461a mov r2, r3 + 80329ba: 687b ldr r3, [r7, #4] + 80329bc: 4293 cmp r3, r2 + 80329be: d10c bne.n 80329da LV_GC_ROOT(lv_mem_buf[i]).used = 1; - 8032a54: 7bbb ldrb r3, [r7, #14] - 8032a56: 4a3f ldr r2, [pc, #252] ; (8032b54 ) - 8032a58: 00db lsls r3, r3, #3 - 8032a5a: 4413 add r3, r2 - 8032a5c: 799a ldrb r2, [r3, #6] - 8032a5e: f042 0201 orr.w r2, r2, #1 - 8032a62: 719a strb r2, [r3, #6] + 80329c0: 7bbb ldrb r3, [r7, #14] + 80329c2: 4a3f ldr r2, [pc, #252] ; (8032ac0 ) + 80329c4: 00db lsls r3, r3, #3 + 80329c6: 4413 add r3, r2 + 80329c8: 799a ldrb r2, [r3, #6] + 80329ca: f042 0201 orr.w r2, r2, #1 + 80329ce: 719a strb r2, [r3, #6] return LV_GC_ROOT(lv_mem_buf[i]).p; - 8032a64: 7bbb ldrb r3, [r7, #14] - 8032a66: 4a3b ldr r2, [pc, #236] ; (8032b54 ) - 8032a68: f852 3033 ldr.w r3, [r2, r3, lsl #3] - 8032a6c: e06e b.n 8032b4c + 80329d0: 7bbb ldrb r3, [r7, #14] + 80329d2: 4a3b ldr r2, [pc, #236] ; (8032ac0 ) + 80329d4: f852 3033 ldr.w r3, [r2, r3, lsl #3] + 80329d8: e06e b.n 8032ab8 } else if(i_guess < 0) { - 8032a6e: f997 300f ldrsb.w r3, [r7, #15] - 8032a72: 2b00 cmp r3, #0 - 8032a74: da02 bge.n 8032a7c + 80329da: f997 300f ldrsb.w r3, [r7, #15] + 80329de: 2b00 cmp r3, #0 + 80329e0: da02 bge.n 80329e8 i_guess = i; - 8032a76: 7bbb ldrb r3, [r7, #14] - 8032a78: 73fb strb r3, [r7, #15] - 8032a7a: e00e b.n 8032a9a + 80329e2: 7bbb ldrb r3, [r7, #14] + 80329e4: 73fb strb r3, [r7, #15] + 80329e6: e00e b.n 8032a06 } /*If size of `i` is closer to `size` prefer it*/ else if(LV_GC_ROOT(lv_mem_buf[i]).size < LV_GC_ROOT(lv_mem_buf[i_guess]).size) { - 8032a7c: 7bbb ldrb r3, [r7, #14] - 8032a7e: 4a35 ldr r2, [pc, #212] ; (8032b54 ) - 8032a80: 00db lsls r3, r3, #3 - 8032a82: 4413 add r3, r2 - 8032a84: 889a ldrh r2, [r3, #4] - 8032a86: f997 300f ldrsb.w r3, [r7, #15] - 8032a8a: 4932 ldr r1, [pc, #200] ; (8032b54 ) - 8032a8c: 00db lsls r3, r3, #3 - 8032a8e: 440b add r3, r1 - 8032a90: 889b ldrh r3, [r3, #4] - 8032a92: 429a cmp r2, r3 - 8032a94: d201 bcs.n 8032a9a + 80329e8: 7bbb ldrb r3, [r7, #14] + 80329ea: 4a35 ldr r2, [pc, #212] ; (8032ac0 ) + 80329ec: 00db lsls r3, r3, #3 + 80329ee: 4413 add r3, r2 + 80329f0: 889a ldrh r2, [r3, #4] + 80329f2: f997 300f ldrsb.w r3, [r7, #15] + 80329f6: 4932 ldr r1, [pc, #200] ; (8032ac0 ) + 80329f8: 00db lsls r3, r3, #3 + 80329fa: 440b add r3, r1 + 80329fc: 889b ldrh r3, [r3, #4] + 80329fe: 429a cmp r2, r3 + 8032a00: d201 bcs.n 8032a06 i_guess = i; - 8032a96: 7bbb ldrb r3, [r7, #14] - 8032a98: 73fb strb r3, [r7, #15] + 8032a02: 7bbb ldrb r3, [r7, #14] + 8032a04: 73fb strb r3, [r7, #15] for(uint8_t i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { - 8032a9a: 7bbb ldrb r3, [r7, #14] - 8032a9c: 3301 adds r3, #1 - 8032a9e: 73bb strb r3, [r7, #14] - 8032aa0: 7bbb ldrb r3, [r7, #14] - 8032aa2: 2b0f cmp r3, #15 - 8032aa4: d9ba bls.n 8032a1c + 8032a06: 7bbb ldrb r3, [r7, #14] + 8032a08: 3301 adds r3, #1 + 8032a0a: 73bb strb r3, [r7, #14] + 8032a0c: 7bbb ldrb r3, [r7, #14] + 8032a0e: 2b0f cmp r3, #15 + 8032a10: d9ba bls.n 8032988 } } } if(i_guess >= 0) { - 8032aa6: f997 300f ldrsb.w r3, [r7, #15] - 8032aaa: 2b00 cmp r3, #0 - 8032aac: db0e blt.n 8032acc + 8032a12: f997 300f ldrsb.w r3, [r7, #15] + 8032a16: 2b00 cmp r3, #0 + 8032a18: db0e blt.n 8032a38 LV_GC_ROOT(lv_mem_buf[i_guess]).used = 1; - 8032aae: f997 300f ldrsb.w r3, [r7, #15] - 8032ab2: 4a28 ldr r2, [pc, #160] ; (8032b54 ) - 8032ab4: 00db lsls r3, r3, #3 - 8032ab6: 4413 add r3, r2 - 8032ab8: 799a ldrb r2, [r3, #6] - 8032aba: f042 0201 orr.w r2, r2, #1 - 8032abe: 719a strb r2, [r3, #6] + 8032a1a: f997 300f ldrsb.w r3, [r7, #15] + 8032a1e: 4a28 ldr r2, [pc, #160] ; (8032ac0 ) + 8032a20: 00db lsls r3, r3, #3 + 8032a22: 4413 add r3, r2 + 8032a24: 799a ldrb r2, [r3, #6] + 8032a26: f042 0201 orr.w r2, r2, #1 + 8032a2a: 719a strb r2, [r3, #6] MEM_TRACE("returning already allocated buffer (buffer id: %d, address: %p)", i_guess, LV_GC_ROOT(lv_mem_buf[i_guess]).p); return LV_GC_ROOT(lv_mem_buf[i_guess]).p; - 8032ac0: f997 300f ldrsb.w r3, [r7, #15] - 8032ac4: 4a23 ldr r2, [pc, #140] ; (8032b54 ) - 8032ac6: f852 3033 ldr.w r3, [r2, r3, lsl #3] - 8032aca: e03f b.n 8032b4c + 8032a2c: f997 300f ldrsb.w r3, [r7, #15] + 8032a30: 4a23 ldr r2, [pc, #140] ; (8032ac0 ) + 8032a32: f852 3033 ldr.w r3, [r2, r3, lsl #3] + 8032a36: e03f b.n 8032ab8 } /*Reallocate a free buffer*/ for(uint8_t i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { - 8032acc: 2300 movs r3, #0 - 8032ace: 737b strb r3, [r7, #13] - 8032ad0: e038 b.n 8032b44 + 8032a38: 2300 movs r3, #0 + 8032a3a: 737b strb r3, [r7, #13] + 8032a3c: e038 b.n 8032ab0 if(LV_GC_ROOT(lv_mem_buf[i]).used == 0) { - 8032ad2: 7b7b ldrb r3, [r7, #13] - 8032ad4: 4a1f ldr r2, [pc, #124] ; (8032b54 ) - 8032ad6: 00db lsls r3, r3, #3 - 8032ad8: 4413 add r3, r2 - 8032ada: 799b ldrb r3, [r3, #6] - 8032adc: f3c3 0300 ubfx r3, r3, #0, #1 - 8032ae0: b2db uxtb r3, r3 - 8032ae2: 2b00 cmp r3, #0 - 8032ae4: d12b bne.n 8032b3e + 8032a3e: 7b7b ldrb r3, [r7, #13] + 8032a40: 4a1f ldr r2, [pc, #124] ; (8032ac0 ) + 8032a42: 00db lsls r3, r3, #3 + 8032a44: 4413 add r3, r2 + 8032a46: 799b ldrb r3, [r3, #6] + 8032a48: f3c3 0300 ubfx r3, r3, #0, #1 + 8032a4c: b2db uxtb r3, r3 + 8032a4e: 2b00 cmp r3, #0 + 8032a50: d12b bne.n 8032aaa /*if this fails you probably need to increase your LV_MEM_SIZE/heap size*/ void * buf = lv_mem_realloc(LV_GC_ROOT(lv_mem_buf[i]).p, size); - 8032ae6: 7b7b ldrb r3, [r7, #13] - 8032ae8: 4a1a ldr r2, [pc, #104] ; (8032b54 ) - 8032aea: f852 3033 ldr.w r3, [r2, r3, lsl #3] - 8032aee: 6879 ldr r1, [r7, #4] - 8032af0: 4618 mov r0, r3 - 8032af2: f7ff ff0f bl 8032914 - 8032af6: 60b8 str r0, [r7, #8] + 8032a52: 7b7b ldrb r3, [r7, #13] + 8032a54: 4a1a ldr r2, [pc, #104] ; (8032ac0 ) + 8032a56: f852 3033 ldr.w r3, [r2, r3, lsl #3] + 8032a5a: 6879 ldr r1, [r7, #4] + 8032a5c: 4618 mov r0, r3 + 8032a5e: f7ff ff0f bl 8032880 + 8032a62: 60b8 str r0, [r7, #8] LV_ASSERT_MSG(buf != NULL, "Out of memory, can't allocate a new buffer (increase your LV_MEM_SIZE/heap size)"); - 8032af8: 68bb ldr r3, [r7, #8] - 8032afa: 2b00 cmp r3, #0 - 8032afc: d100 bne.n 8032b00 - 8032afe: e7fe b.n 8032afe + 8032a64: 68bb ldr r3, [r7, #8] + 8032a66: 2b00 cmp r3, #0 + 8032a68: d100 bne.n 8032a6c + 8032a6a: e7fe b.n 8032a6a if(buf == NULL) return NULL; - 8032b00: 68bb ldr r3, [r7, #8] - 8032b02: 2b00 cmp r3, #0 - 8032b04: d101 bne.n 8032b0a - 8032b06: 2300 movs r3, #0 - 8032b08: e020 b.n 8032b4c + 8032a6c: 68bb ldr r3, [r7, #8] + 8032a6e: 2b00 cmp r3, #0 + 8032a70: d101 bne.n 8032a76 + 8032a72: 2300 movs r3, #0 + 8032a74: e020 b.n 8032ab8 LV_GC_ROOT(lv_mem_buf[i]).used = 1; - 8032b0a: 7b7b ldrb r3, [r7, #13] - 8032b0c: 4a11 ldr r2, [pc, #68] ; (8032b54 ) - 8032b0e: 00db lsls r3, r3, #3 - 8032b10: 4413 add r3, r2 - 8032b12: 799a ldrb r2, [r3, #6] - 8032b14: f042 0201 orr.w r2, r2, #1 - 8032b18: 719a strb r2, [r3, #6] + 8032a76: 7b7b ldrb r3, [r7, #13] + 8032a78: 4a11 ldr r2, [pc, #68] ; (8032ac0 ) + 8032a7a: 00db lsls r3, r3, #3 + 8032a7c: 4413 add r3, r2 + 8032a7e: 799a ldrb r2, [r3, #6] + 8032a80: f042 0201 orr.w r2, r2, #1 + 8032a84: 719a strb r2, [r3, #6] LV_GC_ROOT(lv_mem_buf[i]).size = size; - 8032b1a: 7b7b ldrb r3, [r7, #13] - 8032b1c: 687a ldr r2, [r7, #4] - 8032b1e: b291 uxth r1, r2 - 8032b20: 4a0c ldr r2, [pc, #48] ; (8032b54 ) - 8032b22: 00db lsls r3, r3, #3 - 8032b24: 4413 add r3, r2 - 8032b26: 460a mov r2, r1 - 8032b28: 809a strh r2, [r3, #4] + 8032a86: 7b7b ldrb r3, [r7, #13] + 8032a88: 687a ldr r2, [r7, #4] + 8032a8a: b291 uxth r1, r2 + 8032a8c: 4a0c ldr r2, [pc, #48] ; (8032ac0 ) + 8032a8e: 00db lsls r3, r3, #3 + 8032a90: 4413 add r3, r2 + 8032a92: 460a mov r2, r1 + 8032a94: 809a strh r2, [r3, #4] LV_GC_ROOT(lv_mem_buf[i]).p = buf; - 8032b2a: 7b7b ldrb r3, [r7, #13] - 8032b2c: 4909 ldr r1, [pc, #36] ; (8032b54 ) - 8032b2e: 68ba ldr r2, [r7, #8] - 8032b30: f841 2033 str.w r2, [r1, r3, lsl #3] + 8032a96: 7b7b ldrb r3, [r7, #13] + 8032a98: 4909 ldr r1, [pc, #36] ; (8032ac0 ) + 8032a9a: 68ba ldr r2, [r7, #8] + 8032a9c: f841 2033 str.w r2, [r1, r3, lsl #3] MEM_TRACE("allocated (buffer id: %d, address: %p)", i, LV_GC_ROOT(lv_mem_buf[i]).p); return LV_GC_ROOT(lv_mem_buf[i]).p; - 8032b34: 7b7b ldrb r3, [r7, #13] - 8032b36: 4a07 ldr r2, [pc, #28] ; (8032b54 ) - 8032b38: f852 3033 ldr.w r3, [r2, r3, lsl #3] - 8032b3c: e006 b.n 8032b4c + 8032aa0: 7b7b ldrb r3, [r7, #13] + 8032aa2: 4a07 ldr r2, [pc, #28] ; (8032ac0 ) + 8032aa4: f852 3033 ldr.w r3, [r2, r3, lsl #3] + 8032aa8: e006 b.n 8032ab8 for(uint8_t i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { - 8032b3e: 7b7b ldrb r3, [r7, #13] - 8032b40: 3301 adds r3, #1 - 8032b42: 737b strb r3, [r7, #13] - 8032b44: 7b7b ldrb r3, [r7, #13] - 8032b46: 2b0f cmp r3, #15 - 8032b48: d9c3 bls.n 8032ad2 + 8032aaa: 7b7b ldrb r3, [r7, #13] + 8032aac: 3301 adds r3, #1 + 8032aae: 737b strb r3, [r7, #13] + 8032ab0: 7b7b ldrb r3, [r7, #13] + 8032ab2: 2b0f cmp r3, #15 + 8032ab4: d9c3 bls.n 8032a3e } } LV_LOG_ERROR("no more buffers. (increase LV_MEM_BUF_MAX_NUM)"); LV_ASSERT_MSG(false, "No more buffers. Increase LV_MEM_BUF_MAX_NUM."); - 8032b4a: e7fe b.n 8032b4a + 8032ab6: e7fe b.n 8032ab6 return NULL; } - 8032b4c: 4618 mov r0, r3 - 8032b4e: 3710 adds r7, #16 - 8032b50: 46bd mov sp, r7 - 8032b52: bd80 pop {r7, pc} - 8032b54: 20001d98 .word 0x20001d98 + 8032ab8: 4618 mov r0, r3 + 8032aba: 3710 adds r7, #16 + 8032abc: 46bd mov sp, r7 + 8032abe: bd80 pop {r7, pc} + 8032ac0: 20001d98 .word 0x20001d98 -08032b58 : +08032ac4 : /** * Release a memory buffer * @param p buffer to release */ void lv_mem_buf_release(void * p) { - 8032b58: b480 push {r7} - 8032b5a: b085 sub sp, #20 - 8032b5c: af00 add r7, sp, #0 - 8032b5e: 6078 str r0, [r7, #4] + 8032ac4: b480 push {r7} + 8032ac6: b085 sub sp, #20 + 8032ac8: af00 add r7, sp, #0 + 8032aca: 6078 str r0, [r7, #4] MEM_TRACE("begin (address: %p)", p); for(uint8_t i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { - 8032b60: 2300 movs r3, #0 - 8032b62: 73fb strb r3, [r7, #15] - 8032b64: e012 b.n 8032b8c + 8032acc: 2300 movs r3, #0 + 8032ace: 73fb strb r3, [r7, #15] + 8032ad0: e012 b.n 8032af8 if(LV_GC_ROOT(lv_mem_buf[i]).p == p) { - 8032b66: 7bfb ldrb r3, [r7, #15] - 8032b68: 4a0c ldr r2, [pc, #48] ; (8032b9c ) - 8032b6a: f852 3033 ldr.w r3, [r2, r3, lsl #3] - 8032b6e: 687a ldr r2, [r7, #4] - 8032b70: 429a cmp r2, r3 - 8032b72: d108 bne.n 8032b86 + 8032ad2: 7bfb ldrb r3, [r7, #15] + 8032ad4: 4a0c ldr r2, [pc, #48] ; (8032b08 ) + 8032ad6: f852 3033 ldr.w r3, [r2, r3, lsl #3] + 8032ada: 687a ldr r2, [r7, #4] + 8032adc: 429a cmp r2, r3 + 8032ade: d108 bne.n 8032af2 LV_GC_ROOT(lv_mem_buf[i]).used = 0; - 8032b74: 7bfb ldrb r3, [r7, #15] - 8032b76: 4a09 ldr r2, [pc, #36] ; (8032b9c ) - 8032b78: 00db lsls r3, r3, #3 - 8032b7a: 4413 add r3, r2 - 8032b7c: 799a ldrb r2, [r3, #6] - 8032b7e: f36f 0200 bfc r2, #0, #1 - 8032b82: 719a strb r2, [r3, #6] + 8032ae0: 7bfb ldrb r3, [r7, #15] + 8032ae2: 4a09 ldr r2, [pc, #36] ; (8032b08 ) + 8032ae4: 00db lsls r3, r3, #3 + 8032ae6: 4413 add r3, r2 + 8032ae8: 799a ldrb r2, [r3, #6] + 8032aea: f36f 0200 bfc r2, #0, #1 + 8032aee: 719a strb r2, [r3, #6] return; - 8032b84: e005 b.n 8032b92 + 8032af0: e005 b.n 8032afe for(uint8_t i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { - 8032b86: 7bfb ldrb r3, [r7, #15] - 8032b88: 3301 adds r3, #1 - 8032b8a: 73fb strb r3, [r7, #15] - 8032b8c: 7bfb ldrb r3, [r7, #15] - 8032b8e: 2b0f cmp r3, #15 - 8032b90: d9e9 bls.n 8032b66 + 8032af2: 7bfb ldrb r3, [r7, #15] + 8032af4: 3301 adds r3, #1 + 8032af6: 73fb strb r3, [r7, #15] + 8032af8: 7bfb ldrb r3, [r7, #15] + 8032afa: 2b0f cmp r3, #15 + 8032afc: d9e9 bls.n 8032ad2 } } LV_LOG_ERROR("p is not a known buffer"); } - 8032b92: 3714 adds r7, #20 - 8032b94: 46bd mov sp, r7 - 8032b96: bc80 pop {r7} - 8032b98: 4770 bx lr - 8032b9a: bf00 nop - 8032b9c: 20001d98 .word 0x20001d98 + 8032afe: 3714 adds r7, #20 + 8032b00: 46bd mov sp, r7 + 8032b02: bc80 pop {r7} + 8032b04: 4770 bx lr + 8032b06: bf00 nop + 8032b08: 20001d98 .word 0x20001d98 -08032ba0 : +08032b0c : /** * Free all memory buffers */ void lv_mem_buf_free_all(void) { - 8032ba0: b580 push {r7, lr} - 8032ba2: b082 sub sp, #8 - 8032ba4: af00 add r7, sp, #0 + 8032b0c: b580 push {r7, lr} + 8032b0e: b082 sub sp, #8 + 8032b10: af00 add r7, sp, #0 for(uint8_t i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { - 8032ba6: 2300 movs r3, #0 - 8032ba8: 71fb strb r3, [r7, #7] - 8032baa: e022 b.n 8032bf2 + 8032b12: 2300 movs r3, #0 + 8032b14: 71fb strb r3, [r7, #7] + 8032b16: e022 b.n 8032b5e if(LV_GC_ROOT(lv_mem_buf[i]).p) { - 8032bac: 79fb ldrb r3, [r7, #7] - 8032bae: 4a15 ldr r2, [pc, #84] ; (8032c04 ) - 8032bb0: f852 3033 ldr.w r3, [r2, r3, lsl #3] - 8032bb4: 2b00 cmp r3, #0 - 8032bb6: d019 beq.n 8032bec + 8032b18: 79fb ldrb r3, [r7, #7] + 8032b1a: 4a15 ldr r2, [pc, #84] ; (8032b70 ) + 8032b1c: f852 3033 ldr.w r3, [r2, r3, lsl #3] + 8032b20: 2b00 cmp r3, #0 + 8032b22: d019 beq.n 8032b58 lv_mem_free(LV_GC_ROOT(lv_mem_buf[i]).p); - 8032bb8: 79fb ldrb r3, [r7, #7] - 8032bba: 4a12 ldr r2, [pc, #72] ; (8032c04 ) - 8032bbc: f852 3033 ldr.w r3, [r2, r3, lsl #3] - 8032bc0: 4618 mov r0, r3 - 8032bc2: f7ff fe8b bl 80328dc + 8032b24: 79fb ldrb r3, [r7, #7] + 8032b26: 4a12 ldr r2, [pc, #72] ; (8032b70 ) + 8032b28: f852 3033 ldr.w r3, [r2, r3, lsl #3] + 8032b2c: 4618 mov r0, r3 + 8032b2e: f7ff fe8b bl 8032848 LV_GC_ROOT(lv_mem_buf[i]).p = NULL; - 8032bc6: 79fb ldrb r3, [r7, #7] - 8032bc8: 4a0e ldr r2, [pc, #56] ; (8032c04 ) - 8032bca: 2100 movs r1, #0 - 8032bcc: f842 1033 str.w r1, [r2, r3, lsl #3] + 8032b32: 79fb ldrb r3, [r7, #7] + 8032b34: 4a0e ldr r2, [pc, #56] ; (8032b70 ) + 8032b36: 2100 movs r1, #0 + 8032b38: f842 1033 str.w r1, [r2, r3, lsl #3] LV_GC_ROOT(lv_mem_buf[i]).used = 0; - 8032bd0: 79fb ldrb r3, [r7, #7] - 8032bd2: 4a0c ldr r2, [pc, #48] ; (8032c04 ) - 8032bd4: 00db lsls r3, r3, #3 - 8032bd6: 4413 add r3, r2 - 8032bd8: 799a ldrb r2, [r3, #6] - 8032bda: f36f 0200 bfc r2, #0, #1 - 8032bde: 719a strb r2, [r3, #6] + 8032b3c: 79fb ldrb r3, [r7, #7] + 8032b3e: 4a0c ldr r2, [pc, #48] ; (8032b70 ) + 8032b40: 00db lsls r3, r3, #3 + 8032b42: 4413 add r3, r2 + 8032b44: 799a ldrb r2, [r3, #6] + 8032b46: f36f 0200 bfc r2, #0, #1 + 8032b4a: 719a strb r2, [r3, #6] LV_GC_ROOT(lv_mem_buf[i]).size = 0; - 8032be0: 79fb ldrb r3, [r7, #7] - 8032be2: 4a08 ldr r2, [pc, #32] ; (8032c04 ) - 8032be4: 00db lsls r3, r3, #3 - 8032be6: 4413 add r3, r2 - 8032be8: 2200 movs r2, #0 - 8032bea: 809a strh r2, [r3, #4] + 8032b4c: 79fb ldrb r3, [r7, #7] + 8032b4e: 4a08 ldr r2, [pc, #32] ; (8032b70 ) + 8032b50: 00db lsls r3, r3, #3 + 8032b52: 4413 add r3, r2 + 8032b54: 2200 movs r2, #0 + 8032b56: 809a strh r2, [r3, #4] for(uint8_t i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { - 8032bec: 79fb ldrb r3, [r7, #7] - 8032bee: 3301 adds r3, #1 - 8032bf0: 71fb strb r3, [r7, #7] - 8032bf2: 79fb ldrb r3, [r7, #7] - 8032bf4: 2b0f cmp r3, #15 - 8032bf6: d9d9 bls.n 8032bac + 8032b58: 79fb ldrb r3, [r7, #7] + 8032b5a: 3301 adds r3, #1 + 8032b5c: 71fb strb r3, [r7, #7] + 8032b5e: 79fb ldrb r3, [r7, #7] + 8032b60: 2b0f cmp r3, #15 + 8032b62: d9d9 bls.n 8032b18 } } } - 8032bf8: bf00 nop - 8032bfa: bf00 nop - 8032bfc: 3708 adds r7, #8 - 8032bfe: 46bd mov sp, r7 - 8032c00: bd80 pop {r7, pc} - 8032c02: bf00 nop - 8032c04: 20001d98 .word 0x20001d98 + 8032b64: bf00 nop + 8032b66: bf00 nop + 8032b68: 3708 adds r7, #8 + 8032b6a: 46bd mov sp, r7 + 8032b6c: bd80 pop {r7, pc} + 8032b6e: bf00 nop + 8032b70: 20001d98 .word 0x20001d98 -08032c08 : +08032b74 : * @param dst pointer to the destination buffer * @param src pointer to the source buffer * @param len number of byte to copy */ LV_ATTRIBUTE_FAST_MEM void * lv_memcpy(void * dst, const void * src, size_t len) { - 8032c08: b480 push {r7} - 8032c0a: b08b sub sp, #44 ; 0x2c - 8032c0c: af00 add r7, sp, #0 - 8032c0e: 60f8 str r0, [r7, #12] - 8032c10: 60b9 str r1, [r7, #8] - 8032c12: 607a str r2, [r7, #4] + 8032b74: b480 push {r7} + 8032b76: b08b sub sp, #44 ; 0x2c + 8032b78: af00 add r7, sp, #0 + 8032b7a: 60f8 str r0, [r7, #12] + 8032b7c: 60b9 str r1, [r7, #8] + 8032b7e: 607a str r2, [r7, #4] uint8_t * d8 = dst; - 8032c14: 68fb ldr r3, [r7, #12] - 8032c16: 627b str r3, [r7, #36] ; 0x24 + 8032b80: 68fb ldr r3, [r7, #12] + 8032b82: 627b str r3, [r7, #36] ; 0x24 const uint8_t * s8 = src; - 8032c18: 68bb ldr r3, [r7, #8] - 8032c1a: 623b str r3, [r7, #32] + 8032b84: 68bb ldr r3, [r7, #8] + 8032b86: 623b str r3, [r7, #32] lv_uintptr_t d_align = (lv_uintptr_t)d8 & ALIGN_MASK; - 8032c1c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032c1e: f003 0303 and.w r3, r3, #3 - 8032c22: 61fb str r3, [r7, #28] + 8032b88: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032b8a: f003 0303 and.w r3, r3, #3 + 8032b8e: 61fb str r3, [r7, #28] lv_uintptr_t s_align = (lv_uintptr_t)s8 & ALIGN_MASK; - 8032c24: 6a3b ldr r3, [r7, #32] - 8032c26: f003 0303 and.w r3, r3, #3 - 8032c2a: 613b str r3, [r7, #16] + 8032b90: 6a3b ldr r3, [r7, #32] + 8032b92: f003 0303 and.w r3, r3, #3 + 8032b96: 613b str r3, [r7, #16] /*Byte copy for unaligned memories*/ if(s_align != d_align) { - 8032c2c: 693a ldr r2, [r7, #16] - 8032c2e: 69fb ldr r3, [r7, #28] - 8032c30: 429a cmp r2, r3 - 8032c32: f000 815b beq.w 8032eec + 8032b98: 693a ldr r2, [r7, #16] + 8032b9a: 69fb ldr r3, [r7, #28] + 8032b9c: 429a cmp r2, r3 + 8032b9e: f000 815b beq.w 8032e58 while(len > 32) { - 8032c36: e142 b.n 8032ebe + 8032ba2: e142 b.n 8032e2a REPEAT8(COPY8); - 8032c38: 6a3b ldr r3, [r7, #32] - 8032c3a: 781a ldrb r2, [r3, #0] - 8032c3c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032c3e: 701a strb r2, [r3, #0] - 8032c40: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032c42: 3301 adds r3, #1 - 8032c44: 627b str r3, [r7, #36] ; 0x24 - 8032c46: 6a3b ldr r3, [r7, #32] - 8032c48: 3301 adds r3, #1 - 8032c4a: 623b str r3, [r7, #32] - 8032c4c: 6a3b ldr r3, [r7, #32] - 8032c4e: 781a ldrb r2, [r3, #0] - 8032c50: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032c52: 701a strb r2, [r3, #0] - 8032c54: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032c56: 3301 adds r3, #1 - 8032c58: 627b str r3, [r7, #36] ; 0x24 - 8032c5a: 6a3b ldr r3, [r7, #32] - 8032c5c: 3301 adds r3, #1 - 8032c5e: 623b str r3, [r7, #32] - 8032c60: 6a3b ldr r3, [r7, #32] - 8032c62: 781a ldrb r2, [r3, #0] - 8032c64: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032c66: 701a strb r2, [r3, #0] - 8032c68: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032c6a: 3301 adds r3, #1 - 8032c6c: 627b str r3, [r7, #36] ; 0x24 - 8032c6e: 6a3b ldr r3, [r7, #32] - 8032c70: 3301 adds r3, #1 - 8032c72: 623b str r3, [r7, #32] - 8032c74: 6a3b ldr r3, [r7, #32] - 8032c76: 781a ldrb r2, [r3, #0] - 8032c78: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032c7a: 701a strb r2, [r3, #0] - 8032c7c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032c7e: 3301 adds r3, #1 - 8032c80: 627b str r3, [r7, #36] ; 0x24 - 8032c82: 6a3b ldr r3, [r7, #32] - 8032c84: 3301 adds r3, #1 - 8032c86: 623b str r3, [r7, #32] - 8032c88: 6a3b ldr r3, [r7, #32] - 8032c8a: 781a ldrb r2, [r3, #0] - 8032c8c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032c8e: 701a strb r2, [r3, #0] - 8032c90: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032c92: 3301 adds r3, #1 - 8032c94: 627b str r3, [r7, #36] ; 0x24 - 8032c96: 6a3b ldr r3, [r7, #32] - 8032c98: 3301 adds r3, #1 - 8032c9a: 623b str r3, [r7, #32] - 8032c9c: 6a3b ldr r3, [r7, #32] - 8032c9e: 781a ldrb r2, [r3, #0] - 8032ca0: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032ca2: 701a strb r2, [r3, #0] - 8032ca4: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032ca6: 3301 adds r3, #1 - 8032ca8: 627b str r3, [r7, #36] ; 0x24 - 8032caa: 6a3b ldr r3, [r7, #32] - 8032cac: 3301 adds r3, #1 - 8032cae: 623b str r3, [r7, #32] - 8032cb0: 6a3b ldr r3, [r7, #32] - 8032cb2: 781a ldrb r2, [r3, #0] - 8032cb4: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032cb6: 701a strb r2, [r3, #0] - 8032cb8: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032cba: 3301 adds r3, #1 - 8032cbc: 627b str r3, [r7, #36] ; 0x24 - 8032cbe: 6a3b ldr r3, [r7, #32] - 8032cc0: 3301 adds r3, #1 - 8032cc2: 623b str r3, [r7, #32] - 8032cc4: 6a3b ldr r3, [r7, #32] - 8032cc6: 781a ldrb r2, [r3, #0] - 8032cc8: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032cca: 701a strb r2, [r3, #0] - 8032ccc: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032cce: 3301 adds r3, #1 - 8032cd0: 627b str r3, [r7, #36] ; 0x24 - 8032cd2: 6a3b ldr r3, [r7, #32] - 8032cd4: 3301 adds r3, #1 - 8032cd6: 623b str r3, [r7, #32] + 8032ba4: 6a3b ldr r3, [r7, #32] + 8032ba6: 781a ldrb r2, [r3, #0] + 8032ba8: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032baa: 701a strb r2, [r3, #0] + 8032bac: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032bae: 3301 adds r3, #1 + 8032bb0: 627b str r3, [r7, #36] ; 0x24 + 8032bb2: 6a3b ldr r3, [r7, #32] + 8032bb4: 3301 adds r3, #1 + 8032bb6: 623b str r3, [r7, #32] + 8032bb8: 6a3b ldr r3, [r7, #32] + 8032bba: 781a ldrb r2, [r3, #0] + 8032bbc: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032bbe: 701a strb r2, [r3, #0] + 8032bc0: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032bc2: 3301 adds r3, #1 + 8032bc4: 627b str r3, [r7, #36] ; 0x24 + 8032bc6: 6a3b ldr r3, [r7, #32] + 8032bc8: 3301 adds r3, #1 + 8032bca: 623b str r3, [r7, #32] + 8032bcc: 6a3b ldr r3, [r7, #32] + 8032bce: 781a ldrb r2, [r3, #0] + 8032bd0: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032bd2: 701a strb r2, [r3, #0] + 8032bd4: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032bd6: 3301 adds r3, #1 + 8032bd8: 627b str r3, [r7, #36] ; 0x24 + 8032bda: 6a3b ldr r3, [r7, #32] + 8032bdc: 3301 adds r3, #1 + 8032bde: 623b str r3, [r7, #32] + 8032be0: 6a3b ldr r3, [r7, #32] + 8032be2: 781a ldrb r2, [r3, #0] + 8032be4: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032be6: 701a strb r2, [r3, #0] + 8032be8: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032bea: 3301 adds r3, #1 + 8032bec: 627b str r3, [r7, #36] ; 0x24 + 8032bee: 6a3b ldr r3, [r7, #32] + 8032bf0: 3301 adds r3, #1 + 8032bf2: 623b str r3, [r7, #32] + 8032bf4: 6a3b ldr r3, [r7, #32] + 8032bf6: 781a ldrb r2, [r3, #0] + 8032bf8: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032bfa: 701a strb r2, [r3, #0] + 8032bfc: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032bfe: 3301 adds r3, #1 + 8032c00: 627b str r3, [r7, #36] ; 0x24 + 8032c02: 6a3b ldr r3, [r7, #32] + 8032c04: 3301 adds r3, #1 + 8032c06: 623b str r3, [r7, #32] + 8032c08: 6a3b ldr r3, [r7, #32] + 8032c0a: 781a ldrb r2, [r3, #0] + 8032c0c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032c0e: 701a strb r2, [r3, #0] + 8032c10: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032c12: 3301 adds r3, #1 + 8032c14: 627b str r3, [r7, #36] ; 0x24 + 8032c16: 6a3b ldr r3, [r7, #32] + 8032c18: 3301 adds r3, #1 + 8032c1a: 623b str r3, [r7, #32] + 8032c1c: 6a3b ldr r3, [r7, #32] + 8032c1e: 781a ldrb r2, [r3, #0] + 8032c20: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032c22: 701a strb r2, [r3, #0] + 8032c24: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032c26: 3301 adds r3, #1 + 8032c28: 627b str r3, [r7, #36] ; 0x24 + 8032c2a: 6a3b ldr r3, [r7, #32] + 8032c2c: 3301 adds r3, #1 + 8032c2e: 623b str r3, [r7, #32] + 8032c30: 6a3b ldr r3, [r7, #32] + 8032c32: 781a ldrb r2, [r3, #0] + 8032c34: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032c36: 701a strb r2, [r3, #0] + 8032c38: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032c3a: 3301 adds r3, #1 + 8032c3c: 627b str r3, [r7, #36] ; 0x24 + 8032c3e: 6a3b ldr r3, [r7, #32] + 8032c40: 3301 adds r3, #1 + 8032c42: 623b str r3, [r7, #32] REPEAT8(COPY8); - 8032cd8: 6a3b ldr r3, [r7, #32] - 8032cda: 781a ldrb r2, [r3, #0] - 8032cdc: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032cde: 701a strb r2, [r3, #0] - 8032ce0: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032ce2: 3301 adds r3, #1 - 8032ce4: 627b str r3, [r7, #36] ; 0x24 - 8032ce6: 6a3b ldr r3, [r7, #32] - 8032ce8: 3301 adds r3, #1 - 8032cea: 623b str r3, [r7, #32] - 8032cec: 6a3b ldr r3, [r7, #32] - 8032cee: 781a ldrb r2, [r3, #0] - 8032cf0: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032cf2: 701a strb r2, [r3, #0] - 8032cf4: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032cf6: 3301 adds r3, #1 - 8032cf8: 627b str r3, [r7, #36] ; 0x24 - 8032cfa: 6a3b ldr r3, [r7, #32] - 8032cfc: 3301 adds r3, #1 - 8032cfe: 623b str r3, [r7, #32] - 8032d00: 6a3b ldr r3, [r7, #32] - 8032d02: 781a ldrb r2, [r3, #0] - 8032d04: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032d06: 701a strb r2, [r3, #0] - 8032d08: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032d0a: 3301 adds r3, #1 - 8032d0c: 627b str r3, [r7, #36] ; 0x24 - 8032d0e: 6a3b ldr r3, [r7, #32] - 8032d10: 3301 adds r3, #1 - 8032d12: 623b str r3, [r7, #32] - 8032d14: 6a3b ldr r3, [r7, #32] - 8032d16: 781a ldrb r2, [r3, #0] - 8032d18: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032d1a: 701a strb r2, [r3, #0] - 8032d1c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032d1e: 3301 adds r3, #1 - 8032d20: 627b str r3, [r7, #36] ; 0x24 - 8032d22: 6a3b ldr r3, [r7, #32] - 8032d24: 3301 adds r3, #1 - 8032d26: 623b str r3, [r7, #32] - 8032d28: 6a3b ldr r3, [r7, #32] - 8032d2a: 781a ldrb r2, [r3, #0] - 8032d2c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032d2e: 701a strb r2, [r3, #0] - 8032d30: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032d32: 3301 adds r3, #1 - 8032d34: 627b str r3, [r7, #36] ; 0x24 - 8032d36: 6a3b ldr r3, [r7, #32] - 8032d38: 3301 adds r3, #1 - 8032d3a: 623b str r3, [r7, #32] - 8032d3c: 6a3b ldr r3, [r7, #32] - 8032d3e: 781a ldrb r2, [r3, #0] - 8032d40: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032d42: 701a strb r2, [r3, #0] - 8032d44: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032d46: 3301 adds r3, #1 - 8032d48: 627b str r3, [r7, #36] ; 0x24 - 8032d4a: 6a3b ldr r3, [r7, #32] - 8032d4c: 3301 adds r3, #1 - 8032d4e: 623b str r3, [r7, #32] - 8032d50: 6a3b ldr r3, [r7, #32] - 8032d52: 781a ldrb r2, [r3, #0] - 8032d54: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032d56: 701a strb r2, [r3, #0] - 8032d58: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032d5a: 3301 adds r3, #1 - 8032d5c: 627b str r3, [r7, #36] ; 0x24 - 8032d5e: 6a3b ldr r3, [r7, #32] - 8032d60: 3301 adds r3, #1 - 8032d62: 623b str r3, [r7, #32] - 8032d64: 6a3b ldr r3, [r7, #32] - 8032d66: 781a ldrb r2, [r3, #0] - 8032d68: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032d6a: 701a strb r2, [r3, #0] - 8032d6c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032d6e: 3301 adds r3, #1 - 8032d70: 627b str r3, [r7, #36] ; 0x24 - 8032d72: 6a3b ldr r3, [r7, #32] - 8032d74: 3301 adds r3, #1 - 8032d76: 623b str r3, [r7, #32] + 8032c44: 6a3b ldr r3, [r7, #32] + 8032c46: 781a ldrb r2, [r3, #0] + 8032c48: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032c4a: 701a strb r2, [r3, #0] + 8032c4c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032c4e: 3301 adds r3, #1 + 8032c50: 627b str r3, [r7, #36] ; 0x24 + 8032c52: 6a3b ldr r3, [r7, #32] + 8032c54: 3301 adds r3, #1 + 8032c56: 623b str r3, [r7, #32] + 8032c58: 6a3b ldr r3, [r7, #32] + 8032c5a: 781a ldrb r2, [r3, #0] + 8032c5c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032c5e: 701a strb r2, [r3, #0] + 8032c60: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032c62: 3301 adds r3, #1 + 8032c64: 627b str r3, [r7, #36] ; 0x24 + 8032c66: 6a3b ldr r3, [r7, #32] + 8032c68: 3301 adds r3, #1 + 8032c6a: 623b str r3, [r7, #32] + 8032c6c: 6a3b ldr r3, [r7, #32] + 8032c6e: 781a ldrb r2, [r3, #0] + 8032c70: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032c72: 701a strb r2, [r3, #0] + 8032c74: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032c76: 3301 adds r3, #1 + 8032c78: 627b str r3, [r7, #36] ; 0x24 + 8032c7a: 6a3b ldr r3, [r7, #32] + 8032c7c: 3301 adds r3, #1 + 8032c7e: 623b str r3, [r7, #32] + 8032c80: 6a3b ldr r3, [r7, #32] + 8032c82: 781a ldrb r2, [r3, #0] + 8032c84: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032c86: 701a strb r2, [r3, #0] + 8032c88: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032c8a: 3301 adds r3, #1 + 8032c8c: 627b str r3, [r7, #36] ; 0x24 + 8032c8e: 6a3b ldr r3, [r7, #32] + 8032c90: 3301 adds r3, #1 + 8032c92: 623b str r3, [r7, #32] + 8032c94: 6a3b ldr r3, [r7, #32] + 8032c96: 781a ldrb r2, [r3, #0] + 8032c98: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032c9a: 701a strb r2, [r3, #0] + 8032c9c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032c9e: 3301 adds r3, #1 + 8032ca0: 627b str r3, [r7, #36] ; 0x24 + 8032ca2: 6a3b ldr r3, [r7, #32] + 8032ca4: 3301 adds r3, #1 + 8032ca6: 623b str r3, [r7, #32] + 8032ca8: 6a3b ldr r3, [r7, #32] + 8032caa: 781a ldrb r2, [r3, #0] + 8032cac: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032cae: 701a strb r2, [r3, #0] + 8032cb0: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032cb2: 3301 adds r3, #1 + 8032cb4: 627b str r3, [r7, #36] ; 0x24 + 8032cb6: 6a3b ldr r3, [r7, #32] + 8032cb8: 3301 adds r3, #1 + 8032cba: 623b str r3, [r7, #32] + 8032cbc: 6a3b ldr r3, [r7, #32] + 8032cbe: 781a ldrb r2, [r3, #0] + 8032cc0: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032cc2: 701a strb r2, [r3, #0] + 8032cc4: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032cc6: 3301 adds r3, #1 + 8032cc8: 627b str r3, [r7, #36] ; 0x24 + 8032cca: 6a3b ldr r3, [r7, #32] + 8032ccc: 3301 adds r3, #1 + 8032cce: 623b str r3, [r7, #32] + 8032cd0: 6a3b ldr r3, [r7, #32] + 8032cd2: 781a ldrb r2, [r3, #0] + 8032cd4: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032cd6: 701a strb r2, [r3, #0] + 8032cd8: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032cda: 3301 adds r3, #1 + 8032cdc: 627b str r3, [r7, #36] ; 0x24 + 8032cde: 6a3b ldr r3, [r7, #32] + 8032ce0: 3301 adds r3, #1 + 8032ce2: 623b str r3, [r7, #32] REPEAT8(COPY8); - 8032d78: 6a3b ldr r3, [r7, #32] - 8032d7a: 781a ldrb r2, [r3, #0] - 8032d7c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032d7e: 701a strb r2, [r3, #0] - 8032d80: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032d82: 3301 adds r3, #1 - 8032d84: 627b str r3, [r7, #36] ; 0x24 - 8032d86: 6a3b ldr r3, [r7, #32] - 8032d88: 3301 adds r3, #1 - 8032d8a: 623b str r3, [r7, #32] - 8032d8c: 6a3b ldr r3, [r7, #32] - 8032d8e: 781a ldrb r2, [r3, #0] - 8032d90: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032d92: 701a strb r2, [r3, #0] - 8032d94: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032d96: 3301 adds r3, #1 - 8032d98: 627b str r3, [r7, #36] ; 0x24 - 8032d9a: 6a3b ldr r3, [r7, #32] - 8032d9c: 3301 adds r3, #1 - 8032d9e: 623b str r3, [r7, #32] - 8032da0: 6a3b ldr r3, [r7, #32] - 8032da2: 781a ldrb r2, [r3, #0] - 8032da4: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032da6: 701a strb r2, [r3, #0] - 8032da8: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032daa: 3301 adds r3, #1 - 8032dac: 627b str r3, [r7, #36] ; 0x24 - 8032dae: 6a3b ldr r3, [r7, #32] - 8032db0: 3301 adds r3, #1 - 8032db2: 623b str r3, [r7, #32] - 8032db4: 6a3b ldr r3, [r7, #32] - 8032db6: 781a ldrb r2, [r3, #0] - 8032db8: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032dba: 701a strb r2, [r3, #0] - 8032dbc: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032dbe: 3301 adds r3, #1 - 8032dc0: 627b str r3, [r7, #36] ; 0x24 - 8032dc2: 6a3b ldr r3, [r7, #32] - 8032dc4: 3301 adds r3, #1 - 8032dc6: 623b str r3, [r7, #32] - 8032dc8: 6a3b ldr r3, [r7, #32] - 8032dca: 781a ldrb r2, [r3, #0] - 8032dcc: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032dce: 701a strb r2, [r3, #0] - 8032dd0: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032dd2: 3301 adds r3, #1 - 8032dd4: 627b str r3, [r7, #36] ; 0x24 - 8032dd6: 6a3b ldr r3, [r7, #32] - 8032dd8: 3301 adds r3, #1 - 8032dda: 623b str r3, [r7, #32] - 8032ddc: 6a3b ldr r3, [r7, #32] - 8032dde: 781a ldrb r2, [r3, #0] - 8032de0: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032de2: 701a strb r2, [r3, #0] - 8032de4: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032de6: 3301 adds r3, #1 - 8032de8: 627b str r3, [r7, #36] ; 0x24 - 8032dea: 6a3b ldr r3, [r7, #32] - 8032dec: 3301 adds r3, #1 - 8032dee: 623b str r3, [r7, #32] - 8032df0: 6a3b ldr r3, [r7, #32] - 8032df2: 781a ldrb r2, [r3, #0] - 8032df4: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032df6: 701a strb r2, [r3, #0] - 8032df8: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032dfa: 3301 adds r3, #1 - 8032dfc: 627b str r3, [r7, #36] ; 0x24 - 8032dfe: 6a3b ldr r3, [r7, #32] - 8032e00: 3301 adds r3, #1 - 8032e02: 623b str r3, [r7, #32] - 8032e04: 6a3b ldr r3, [r7, #32] - 8032e06: 781a ldrb r2, [r3, #0] - 8032e08: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032e0a: 701a strb r2, [r3, #0] - 8032e0c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032e0e: 3301 adds r3, #1 - 8032e10: 627b str r3, [r7, #36] ; 0x24 - 8032e12: 6a3b ldr r3, [r7, #32] - 8032e14: 3301 adds r3, #1 - 8032e16: 623b str r3, [r7, #32] + 8032ce4: 6a3b ldr r3, [r7, #32] + 8032ce6: 781a ldrb r2, [r3, #0] + 8032ce8: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032cea: 701a strb r2, [r3, #0] + 8032cec: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032cee: 3301 adds r3, #1 + 8032cf0: 627b str r3, [r7, #36] ; 0x24 + 8032cf2: 6a3b ldr r3, [r7, #32] + 8032cf4: 3301 adds r3, #1 + 8032cf6: 623b str r3, [r7, #32] + 8032cf8: 6a3b ldr r3, [r7, #32] + 8032cfa: 781a ldrb r2, [r3, #0] + 8032cfc: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032cfe: 701a strb r2, [r3, #0] + 8032d00: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032d02: 3301 adds r3, #1 + 8032d04: 627b str r3, [r7, #36] ; 0x24 + 8032d06: 6a3b ldr r3, [r7, #32] + 8032d08: 3301 adds r3, #1 + 8032d0a: 623b str r3, [r7, #32] + 8032d0c: 6a3b ldr r3, [r7, #32] + 8032d0e: 781a ldrb r2, [r3, #0] + 8032d10: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032d12: 701a strb r2, [r3, #0] + 8032d14: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032d16: 3301 adds r3, #1 + 8032d18: 627b str r3, [r7, #36] ; 0x24 + 8032d1a: 6a3b ldr r3, [r7, #32] + 8032d1c: 3301 adds r3, #1 + 8032d1e: 623b str r3, [r7, #32] + 8032d20: 6a3b ldr r3, [r7, #32] + 8032d22: 781a ldrb r2, [r3, #0] + 8032d24: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032d26: 701a strb r2, [r3, #0] + 8032d28: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032d2a: 3301 adds r3, #1 + 8032d2c: 627b str r3, [r7, #36] ; 0x24 + 8032d2e: 6a3b ldr r3, [r7, #32] + 8032d30: 3301 adds r3, #1 + 8032d32: 623b str r3, [r7, #32] + 8032d34: 6a3b ldr r3, [r7, #32] + 8032d36: 781a ldrb r2, [r3, #0] + 8032d38: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032d3a: 701a strb r2, [r3, #0] + 8032d3c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032d3e: 3301 adds r3, #1 + 8032d40: 627b str r3, [r7, #36] ; 0x24 + 8032d42: 6a3b ldr r3, [r7, #32] + 8032d44: 3301 adds r3, #1 + 8032d46: 623b str r3, [r7, #32] + 8032d48: 6a3b ldr r3, [r7, #32] + 8032d4a: 781a ldrb r2, [r3, #0] + 8032d4c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032d4e: 701a strb r2, [r3, #0] + 8032d50: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032d52: 3301 adds r3, #1 + 8032d54: 627b str r3, [r7, #36] ; 0x24 + 8032d56: 6a3b ldr r3, [r7, #32] + 8032d58: 3301 adds r3, #1 + 8032d5a: 623b str r3, [r7, #32] + 8032d5c: 6a3b ldr r3, [r7, #32] + 8032d5e: 781a ldrb r2, [r3, #0] + 8032d60: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032d62: 701a strb r2, [r3, #0] + 8032d64: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032d66: 3301 adds r3, #1 + 8032d68: 627b str r3, [r7, #36] ; 0x24 + 8032d6a: 6a3b ldr r3, [r7, #32] + 8032d6c: 3301 adds r3, #1 + 8032d6e: 623b str r3, [r7, #32] + 8032d70: 6a3b ldr r3, [r7, #32] + 8032d72: 781a ldrb r2, [r3, #0] + 8032d74: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032d76: 701a strb r2, [r3, #0] + 8032d78: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032d7a: 3301 adds r3, #1 + 8032d7c: 627b str r3, [r7, #36] ; 0x24 + 8032d7e: 6a3b ldr r3, [r7, #32] + 8032d80: 3301 adds r3, #1 + 8032d82: 623b str r3, [r7, #32] REPEAT8(COPY8); - 8032e18: 6a3b ldr r3, [r7, #32] - 8032e1a: 781a ldrb r2, [r3, #0] - 8032e1c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032e1e: 701a strb r2, [r3, #0] - 8032e20: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032e22: 3301 adds r3, #1 - 8032e24: 627b str r3, [r7, #36] ; 0x24 - 8032e26: 6a3b ldr r3, [r7, #32] - 8032e28: 3301 adds r3, #1 - 8032e2a: 623b str r3, [r7, #32] - 8032e2c: 6a3b ldr r3, [r7, #32] - 8032e2e: 781a ldrb r2, [r3, #0] - 8032e30: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032e32: 701a strb r2, [r3, #0] - 8032e34: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032e36: 3301 adds r3, #1 - 8032e38: 627b str r3, [r7, #36] ; 0x24 - 8032e3a: 6a3b ldr r3, [r7, #32] - 8032e3c: 3301 adds r3, #1 - 8032e3e: 623b str r3, [r7, #32] - 8032e40: 6a3b ldr r3, [r7, #32] - 8032e42: 781a ldrb r2, [r3, #0] - 8032e44: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032e46: 701a strb r2, [r3, #0] - 8032e48: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032e4a: 3301 adds r3, #1 - 8032e4c: 627b str r3, [r7, #36] ; 0x24 - 8032e4e: 6a3b ldr r3, [r7, #32] - 8032e50: 3301 adds r3, #1 - 8032e52: 623b str r3, [r7, #32] - 8032e54: 6a3b ldr r3, [r7, #32] - 8032e56: 781a ldrb r2, [r3, #0] - 8032e58: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032e5a: 701a strb r2, [r3, #0] - 8032e5c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032e5e: 3301 adds r3, #1 - 8032e60: 627b str r3, [r7, #36] ; 0x24 - 8032e62: 6a3b ldr r3, [r7, #32] - 8032e64: 3301 adds r3, #1 - 8032e66: 623b str r3, [r7, #32] + 8032d84: 6a3b ldr r3, [r7, #32] + 8032d86: 781a ldrb r2, [r3, #0] + 8032d88: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032d8a: 701a strb r2, [r3, #0] + 8032d8c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032d8e: 3301 adds r3, #1 + 8032d90: 627b str r3, [r7, #36] ; 0x24 + 8032d92: 6a3b ldr r3, [r7, #32] + 8032d94: 3301 adds r3, #1 + 8032d96: 623b str r3, [r7, #32] + 8032d98: 6a3b ldr r3, [r7, #32] + 8032d9a: 781a ldrb r2, [r3, #0] + 8032d9c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032d9e: 701a strb r2, [r3, #0] + 8032da0: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032da2: 3301 adds r3, #1 + 8032da4: 627b str r3, [r7, #36] ; 0x24 + 8032da6: 6a3b ldr r3, [r7, #32] + 8032da8: 3301 adds r3, #1 + 8032daa: 623b str r3, [r7, #32] + 8032dac: 6a3b ldr r3, [r7, #32] + 8032dae: 781a ldrb r2, [r3, #0] + 8032db0: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032db2: 701a strb r2, [r3, #0] + 8032db4: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032db6: 3301 adds r3, #1 + 8032db8: 627b str r3, [r7, #36] ; 0x24 + 8032dba: 6a3b ldr r3, [r7, #32] + 8032dbc: 3301 adds r3, #1 + 8032dbe: 623b str r3, [r7, #32] + 8032dc0: 6a3b ldr r3, [r7, #32] + 8032dc2: 781a ldrb r2, [r3, #0] + 8032dc4: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032dc6: 701a strb r2, [r3, #0] + 8032dc8: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032dca: 3301 adds r3, #1 + 8032dcc: 627b str r3, [r7, #36] ; 0x24 + 8032dce: 6a3b ldr r3, [r7, #32] + 8032dd0: 3301 adds r3, #1 + 8032dd2: 623b str r3, [r7, #32] + 8032dd4: 6a3b ldr r3, [r7, #32] + 8032dd6: 781a ldrb r2, [r3, #0] + 8032dd8: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032dda: 701a strb r2, [r3, #0] + 8032ddc: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032dde: 3301 adds r3, #1 + 8032de0: 627b str r3, [r7, #36] ; 0x24 + 8032de2: 6a3b ldr r3, [r7, #32] + 8032de4: 3301 adds r3, #1 + 8032de6: 623b str r3, [r7, #32] + 8032de8: 6a3b ldr r3, [r7, #32] + 8032dea: 781a ldrb r2, [r3, #0] + 8032dec: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032dee: 701a strb r2, [r3, #0] + 8032df0: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032df2: 3301 adds r3, #1 + 8032df4: 627b str r3, [r7, #36] ; 0x24 + 8032df6: 6a3b ldr r3, [r7, #32] + 8032df8: 3301 adds r3, #1 + 8032dfa: 623b str r3, [r7, #32] + 8032dfc: 6a3b ldr r3, [r7, #32] + 8032dfe: 781a ldrb r2, [r3, #0] + 8032e00: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032e02: 701a strb r2, [r3, #0] + 8032e04: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032e06: 3301 adds r3, #1 + 8032e08: 627b str r3, [r7, #36] ; 0x24 + 8032e0a: 6a3b ldr r3, [r7, #32] + 8032e0c: 3301 adds r3, #1 + 8032e0e: 623b str r3, [r7, #32] + 8032e10: 6a3b ldr r3, [r7, #32] + 8032e12: 781a ldrb r2, [r3, #0] + 8032e14: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032e16: 701a strb r2, [r3, #0] + 8032e18: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032e1a: 3301 adds r3, #1 + 8032e1c: 627b str r3, [r7, #36] ; 0x24 + 8032e1e: 6a3b ldr r3, [r7, #32] + 8032e20: 3301 adds r3, #1 + 8032e22: 623b str r3, [r7, #32] + len -= 32; + 8032e24: 687b ldr r3, [r7, #4] + 8032e26: 3b20 subs r3, #32 + 8032e28: 607b str r3, [r7, #4] + while(len > 32) { + 8032e2a: 687b ldr r3, [r7, #4] + 8032e2c: 2b20 cmp r3, #32 + 8032e2e: f63f aeb9 bhi.w 8032ba4 + } + while(len) { + 8032e32: e00c b.n 8032e4e + COPY8 + 8032e34: 6a3b ldr r3, [r7, #32] + 8032e36: 781a ldrb r2, [r3, #0] + 8032e38: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032e3a: 701a strb r2, [r3, #0] + 8032e3c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032e3e: 3301 adds r3, #1 + 8032e40: 627b str r3, [r7, #36] ; 0x24 + 8032e42: 6a3b ldr r3, [r7, #32] + 8032e44: 3301 adds r3, #1 + 8032e46: 623b str r3, [r7, #32] + len--; + 8032e48: 687b ldr r3, [r7, #4] + 8032e4a: 3b01 subs r3, #1 + 8032e4c: 607b str r3, [r7, #4] + while(len) { + 8032e4e: 687b ldr r3, [r7, #4] + 8032e50: 2b00 cmp r3, #0 + 8032e52: d1ef bne.n 8032e34 + } + return dst; + 8032e54: 68fb ldr r3, [r7, #12] + 8032e56: e09f b.n 8032f98 + } + + /*Make the memories aligned*/ + if(d_align) { + 8032e58: 69fb ldr r3, [r7, #28] + 8032e5a: 2b00 cmp r3, #0 + 8032e5c: d01a beq.n 8032e94 + d_align = ALIGN_MASK + 1 - d_align; + 8032e5e: 69fb ldr r3, [r7, #28] + 8032e60: f1c3 0304 rsb r3, r3, #4 + 8032e64: 61fb str r3, [r7, #28] + while(d_align && len) { + 8032e66: e00f b.n 8032e88 + COPY8; 8032e68: 6a3b ldr r3, [r7, #32] 8032e6a: 781a ldrb r2, [r3, #0] 8032e6c: 6a7b ldr r3, [r7, #36] ; 0x24 @@ -114092,4733 +114101,4756 @@ LV_ATTRIBUTE_FAST_MEM void * lv_memcpy(void * dst, const void * src, size_t len) 8032e76: 6a3b ldr r3, [r7, #32] 8032e78: 3301 adds r3, #1 8032e7a: 623b str r3, [r7, #32] - 8032e7c: 6a3b ldr r3, [r7, #32] - 8032e7e: 781a ldrb r2, [r3, #0] - 8032e80: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032e82: 701a strb r2, [r3, #0] - 8032e84: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032e86: 3301 adds r3, #1 - 8032e88: 627b str r3, [r7, #36] ; 0x24 - 8032e8a: 6a3b ldr r3, [r7, #32] - 8032e8c: 3301 adds r3, #1 - 8032e8e: 623b str r3, [r7, #32] - 8032e90: 6a3b ldr r3, [r7, #32] - 8032e92: 781a ldrb r2, [r3, #0] - 8032e94: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032e96: 701a strb r2, [r3, #0] - 8032e98: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032e9a: 3301 adds r3, #1 - 8032e9c: 627b str r3, [r7, #36] ; 0x24 - 8032e9e: 6a3b ldr r3, [r7, #32] - 8032ea0: 3301 adds r3, #1 - 8032ea2: 623b str r3, [r7, #32] - 8032ea4: 6a3b ldr r3, [r7, #32] - 8032ea6: 781a ldrb r2, [r3, #0] - 8032ea8: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032eaa: 701a strb r2, [r3, #0] - 8032eac: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032eae: 3301 adds r3, #1 - 8032eb0: 627b str r3, [r7, #36] ; 0x24 - 8032eb2: 6a3b ldr r3, [r7, #32] - 8032eb4: 3301 adds r3, #1 - 8032eb6: 623b str r3, [r7, #32] - len -= 32; - 8032eb8: 687b ldr r3, [r7, #4] - 8032eba: 3b20 subs r3, #32 - 8032ebc: 607b str r3, [r7, #4] - while(len > 32) { - 8032ebe: 687b ldr r3, [r7, #4] - 8032ec0: 2b20 cmp r3, #32 - 8032ec2: f63f aeb9 bhi.w 8032c38 - } - while(len) { - 8032ec6: e00c b.n 8032ee2 - COPY8 - 8032ec8: 6a3b ldr r3, [r7, #32] - 8032eca: 781a ldrb r2, [r3, #0] - 8032ecc: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032ece: 701a strb r2, [r3, #0] - 8032ed0: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032ed2: 3301 adds r3, #1 - 8032ed4: 627b str r3, [r7, #36] ; 0x24 - 8032ed6: 6a3b ldr r3, [r7, #32] - 8032ed8: 3301 adds r3, #1 - 8032eda: 623b str r3, [r7, #32] - len--; - 8032edc: 687b ldr r3, [r7, #4] - 8032ede: 3b01 subs r3, #1 - 8032ee0: 607b str r3, [r7, #4] - while(len) { - 8032ee2: 687b ldr r3, [r7, #4] - 8032ee4: 2b00 cmp r3, #0 - 8032ee6: d1ef bne.n 8032ec8 - } - return dst; - 8032ee8: 68fb ldr r3, [r7, #12] - 8032eea: e09f b.n 803302c - } - - /*Make the memories aligned*/ - if(d_align) { - 8032eec: 69fb ldr r3, [r7, #28] - 8032eee: 2b00 cmp r3, #0 - 8032ef0: d01a beq.n 8032f28 - d_align = ALIGN_MASK + 1 - d_align; - 8032ef2: 69fb ldr r3, [r7, #28] - 8032ef4: f1c3 0304 rsb r3, r3, #4 - 8032ef8: 61fb str r3, [r7, #28] - while(d_align && len) { - 8032efa: e00f b.n 8032f1c - COPY8; - 8032efc: 6a3b ldr r3, [r7, #32] - 8032efe: 781a ldrb r2, [r3, #0] - 8032f00: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032f02: 701a strb r2, [r3, #0] - 8032f04: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032f06: 3301 adds r3, #1 - 8032f08: 627b str r3, [r7, #36] ; 0x24 - 8032f0a: 6a3b ldr r3, [r7, #32] - 8032f0c: 3301 adds r3, #1 - 8032f0e: 623b str r3, [r7, #32] d_align--; - 8032f10: 69fb ldr r3, [r7, #28] - 8032f12: 3b01 subs r3, #1 - 8032f14: 61fb str r3, [r7, #28] + 8032e7c: 69fb ldr r3, [r7, #28] + 8032e7e: 3b01 subs r3, #1 + 8032e80: 61fb str r3, [r7, #28] len--; - 8032f16: 687b ldr r3, [r7, #4] - 8032f18: 3b01 subs r3, #1 - 8032f1a: 607b str r3, [r7, #4] + 8032e82: 687b ldr r3, [r7, #4] + 8032e84: 3b01 subs r3, #1 + 8032e86: 607b str r3, [r7, #4] while(d_align && len) { - 8032f1c: 69fb ldr r3, [r7, #28] - 8032f1e: 2b00 cmp r3, #0 - 8032f20: d002 beq.n 8032f28 - 8032f22: 687b ldr r3, [r7, #4] - 8032f24: 2b00 cmp r3, #0 - 8032f26: d1e9 bne.n 8032efc + 8032e88: 69fb ldr r3, [r7, #28] + 8032e8a: 2b00 cmp r3, #0 + 8032e8c: d002 beq.n 8032e94 + 8032e8e: 687b ldr r3, [r7, #4] + 8032e90: 2b00 cmp r3, #0 + 8032e92: d1e9 bne.n 8032e68 } } uint32_t * d32 = (uint32_t *)d8; - 8032f28: 6a7b ldr r3, [r7, #36] ; 0x24 - 8032f2a: 61bb str r3, [r7, #24] + 8032e94: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032e96: 61bb str r3, [r7, #24] const uint32_t * s32 = (uint32_t *)s8; - 8032f2c: 6a3b ldr r3, [r7, #32] - 8032f2e: 617b str r3, [r7, #20] + 8032e98: 6a3b ldr r3, [r7, #32] + 8032e9a: 617b str r3, [r7, #20] while(len > 32) { - 8032f30: e052 b.n 8032fd8 + 8032e9c: e052 b.n 8032f44 REPEAT8(COPY32) - 8032f32: 697b ldr r3, [r7, #20] - 8032f34: 681a ldr r2, [r3, #0] - 8032f36: 69bb ldr r3, [r7, #24] - 8032f38: 601a str r2, [r3, #0] - 8032f3a: 69bb ldr r3, [r7, #24] - 8032f3c: 3304 adds r3, #4 - 8032f3e: 61bb str r3, [r7, #24] - 8032f40: 697b ldr r3, [r7, #20] - 8032f42: 3304 adds r3, #4 - 8032f44: 617b str r3, [r7, #20] - 8032f46: 697b ldr r3, [r7, #20] - 8032f48: 681a ldr r2, [r3, #0] - 8032f4a: 69bb ldr r3, [r7, #24] - 8032f4c: 601a str r2, [r3, #0] - 8032f4e: 69bb ldr r3, [r7, #24] - 8032f50: 3304 adds r3, #4 - 8032f52: 61bb str r3, [r7, #24] - 8032f54: 697b ldr r3, [r7, #20] - 8032f56: 3304 adds r3, #4 - 8032f58: 617b str r3, [r7, #20] - 8032f5a: 697b ldr r3, [r7, #20] - 8032f5c: 681a ldr r2, [r3, #0] - 8032f5e: 69bb ldr r3, [r7, #24] - 8032f60: 601a str r2, [r3, #0] - 8032f62: 69bb ldr r3, [r7, #24] - 8032f64: 3304 adds r3, #4 - 8032f66: 61bb str r3, [r7, #24] - 8032f68: 697b ldr r3, [r7, #20] - 8032f6a: 3304 adds r3, #4 - 8032f6c: 617b str r3, [r7, #20] - 8032f6e: 697b ldr r3, [r7, #20] - 8032f70: 681a ldr r2, [r3, #0] - 8032f72: 69bb ldr r3, [r7, #24] - 8032f74: 601a str r2, [r3, #0] - 8032f76: 69bb ldr r3, [r7, #24] - 8032f78: 3304 adds r3, #4 - 8032f7a: 61bb str r3, [r7, #24] - 8032f7c: 697b ldr r3, [r7, #20] - 8032f7e: 3304 adds r3, #4 - 8032f80: 617b str r3, [r7, #20] - 8032f82: 697b ldr r3, [r7, #20] - 8032f84: 681a ldr r2, [r3, #0] - 8032f86: 69bb ldr r3, [r7, #24] - 8032f88: 601a str r2, [r3, #0] - 8032f8a: 69bb ldr r3, [r7, #24] - 8032f8c: 3304 adds r3, #4 - 8032f8e: 61bb str r3, [r7, #24] - 8032f90: 697b ldr r3, [r7, #20] - 8032f92: 3304 adds r3, #4 - 8032f94: 617b str r3, [r7, #20] - 8032f96: 697b ldr r3, [r7, #20] - 8032f98: 681a ldr r2, [r3, #0] - 8032f9a: 69bb ldr r3, [r7, #24] - 8032f9c: 601a str r2, [r3, #0] - 8032f9e: 69bb ldr r3, [r7, #24] - 8032fa0: 3304 adds r3, #4 - 8032fa2: 61bb str r3, [r7, #24] - 8032fa4: 697b ldr r3, [r7, #20] - 8032fa6: 3304 adds r3, #4 - 8032fa8: 617b str r3, [r7, #20] - 8032faa: 697b ldr r3, [r7, #20] - 8032fac: 681a ldr r2, [r3, #0] - 8032fae: 69bb ldr r3, [r7, #24] - 8032fb0: 601a str r2, [r3, #0] - 8032fb2: 69bb ldr r3, [r7, #24] - 8032fb4: 3304 adds r3, #4 - 8032fb6: 61bb str r3, [r7, #24] - 8032fb8: 697b ldr r3, [r7, #20] - 8032fba: 3304 adds r3, #4 - 8032fbc: 617b str r3, [r7, #20] - 8032fbe: 697b ldr r3, [r7, #20] - 8032fc0: 681a ldr r2, [r3, #0] - 8032fc2: 69bb ldr r3, [r7, #24] - 8032fc4: 601a str r2, [r3, #0] - 8032fc6: 69bb ldr r3, [r7, #24] - 8032fc8: 3304 adds r3, #4 - 8032fca: 61bb str r3, [r7, #24] - 8032fcc: 697b ldr r3, [r7, #20] - 8032fce: 3304 adds r3, #4 - 8032fd0: 617b str r3, [r7, #20] + 8032e9e: 697b ldr r3, [r7, #20] + 8032ea0: 681a ldr r2, [r3, #0] + 8032ea2: 69bb ldr r3, [r7, #24] + 8032ea4: 601a str r2, [r3, #0] + 8032ea6: 69bb ldr r3, [r7, #24] + 8032ea8: 3304 adds r3, #4 + 8032eaa: 61bb str r3, [r7, #24] + 8032eac: 697b ldr r3, [r7, #20] + 8032eae: 3304 adds r3, #4 + 8032eb0: 617b str r3, [r7, #20] + 8032eb2: 697b ldr r3, [r7, #20] + 8032eb4: 681a ldr r2, [r3, #0] + 8032eb6: 69bb ldr r3, [r7, #24] + 8032eb8: 601a str r2, [r3, #0] + 8032eba: 69bb ldr r3, [r7, #24] + 8032ebc: 3304 adds r3, #4 + 8032ebe: 61bb str r3, [r7, #24] + 8032ec0: 697b ldr r3, [r7, #20] + 8032ec2: 3304 adds r3, #4 + 8032ec4: 617b str r3, [r7, #20] + 8032ec6: 697b ldr r3, [r7, #20] + 8032ec8: 681a ldr r2, [r3, #0] + 8032eca: 69bb ldr r3, [r7, #24] + 8032ecc: 601a str r2, [r3, #0] + 8032ece: 69bb ldr r3, [r7, #24] + 8032ed0: 3304 adds r3, #4 + 8032ed2: 61bb str r3, [r7, #24] + 8032ed4: 697b ldr r3, [r7, #20] + 8032ed6: 3304 adds r3, #4 + 8032ed8: 617b str r3, [r7, #20] + 8032eda: 697b ldr r3, [r7, #20] + 8032edc: 681a ldr r2, [r3, #0] + 8032ede: 69bb ldr r3, [r7, #24] + 8032ee0: 601a str r2, [r3, #0] + 8032ee2: 69bb ldr r3, [r7, #24] + 8032ee4: 3304 adds r3, #4 + 8032ee6: 61bb str r3, [r7, #24] + 8032ee8: 697b ldr r3, [r7, #20] + 8032eea: 3304 adds r3, #4 + 8032eec: 617b str r3, [r7, #20] + 8032eee: 697b ldr r3, [r7, #20] + 8032ef0: 681a ldr r2, [r3, #0] + 8032ef2: 69bb ldr r3, [r7, #24] + 8032ef4: 601a str r2, [r3, #0] + 8032ef6: 69bb ldr r3, [r7, #24] + 8032ef8: 3304 adds r3, #4 + 8032efa: 61bb str r3, [r7, #24] + 8032efc: 697b ldr r3, [r7, #20] + 8032efe: 3304 adds r3, #4 + 8032f00: 617b str r3, [r7, #20] + 8032f02: 697b ldr r3, [r7, #20] + 8032f04: 681a ldr r2, [r3, #0] + 8032f06: 69bb ldr r3, [r7, #24] + 8032f08: 601a str r2, [r3, #0] + 8032f0a: 69bb ldr r3, [r7, #24] + 8032f0c: 3304 adds r3, #4 + 8032f0e: 61bb str r3, [r7, #24] + 8032f10: 697b ldr r3, [r7, #20] + 8032f12: 3304 adds r3, #4 + 8032f14: 617b str r3, [r7, #20] + 8032f16: 697b ldr r3, [r7, #20] + 8032f18: 681a ldr r2, [r3, #0] + 8032f1a: 69bb ldr r3, [r7, #24] + 8032f1c: 601a str r2, [r3, #0] + 8032f1e: 69bb ldr r3, [r7, #24] + 8032f20: 3304 adds r3, #4 + 8032f22: 61bb str r3, [r7, #24] + 8032f24: 697b ldr r3, [r7, #20] + 8032f26: 3304 adds r3, #4 + 8032f28: 617b str r3, [r7, #20] + 8032f2a: 697b ldr r3, [r7, #20] + 8032f2c: 681a ldr r2, [r3, #0] + 8032f2e: 69bb ldr r3, [r7, #24] + 8032f30: 601a str r2, [r3, #0] + 8032f32: 69bb ldr r3, [r7, #24] + 8032f34: 3304 adds r3, #4 + 8032f36: 61bb str r3, [r7, #24] + 8032f38: 697b ldr r3, [r7, #20] + 8032f3a: 3304 adds r3, #4 + 8032f3c: 617b str r3, [r7, #20] len -= 32; - 8032fd2: 687b ldr r3, [r7, #4] - 8032fd4: 3b20 subs r3, #32 - 8032fd6: 607b str r3, [r7, #4] + 8032f3e: 687b ldr r3, [r7, #4] + 8032f40: 3b20 subs r3, #32 + 8032f42: 607b str r3, [r7, #4] while(len > 32) { - 8032fd8: 687b ldr r3, [r7, #4] - 8032fda: 2b20 cmp r3, #32 - 8032fdc: d8a9 bhi.n 8032f32 + 8032f44: 687b ldr r3, [r7, #4] + 8032f46: 2b20 cmp r3, #32 + 8032f48: d8a9 bhi.n 8032e9e } while(len > 4) { - 8032fde: e00c b.n 8032ffa + 8032f4a: e00c b.n 8032f66 COPY32; - 8032fe0: 697b ldr r3, [r7, #20] - 8032fe2: 681a ldr r2, [r3, #0] - 8032fe4: 69bb ldr r3, [r7, #24] - 8032fe6: 601a str r2, [r3, #0] - 8032fe8: 69bb ldr r3, [r7, #24] - 8032fea: 3304 adds r3, #4 - 8032fec: 61bb str r3, [r7, #24] - 8032fee: 697b ldr r3, [r7, #20] - 8032ff0: 3304 adds r3, #4 - 8032ff2: 617b str r3, [r7, #20] + 8032f4c: 697b ldr r3, [r7, #20] + 8032f4e: 681a ldr r2, [r3, #0] + 8032f50: 69bb ldr r3, [r7, #24] + 8032f52: 601a str r2, [r3, #0] + 8032f54: 69bb ldr r3, [r7, #24] + 8032f56: 3304 adds r3, #4 + 8032f58: 61bb str r3, [r7, #24] + 8032f5a: 697b ldr r3, [r7, #20] + 8032f5c: 3304 adds r3, #4 + 8032f5e: 617b str r3, [r7, #20] len -= 4; - 8032ff4: 687b ldr r3, [r7, #4] - 8032ff6: 3b04 subs r3, #4 - 8032ff8: 607b str r3, [r7, #4] + 8032f60: 687b ldr r3, [r7, #4] + 8032f62: 3b04 subs r3, #4 + 8032f64: 607b str r3, [r7, #4] while(len > 4) { - 8032ffa: 687b ldr r3, [r7, #4] - 8032ffc: 2b04 cmp r3, #4 - 8032ffe: d8ef bhi.n 8032fe0 + 8032f66: 687b ldr r3, [r7, #4] + 8032f68: 2b04 cmp r3, #4 + 8032f6a: d8ef bhi.n 8032f4c } d8 = (uint8_t *)d32; - 8033000: 69bb ldr r3, [r7, #24] - 8033002: 627b str r3, [r7, #36] ; 0x24 + 8032f6c: 69bb ldr r3, [r7, #24] + 8032f6e: 627b str r3, [r7, #36] ; 0x24 s8 = (const uint8_t *)s32; - 8033004: 697b ldr r3, [r7, #20] - 8033006: 623b str r3, [r7, #32] + 8032f70: 697b ldr r3, [r7, #20] + 8032f72: 623b str r3, [r7, #32] while(len) { - 8033008: e00c b.n 8033024 + 8032f74: e00c b.n 8032f90 COPY8 - 803300a: 6a3b ldr r3, [r7, #32] - 803300c: 781a ldrb r2, [r3, #0] - 803300e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8033010: 701a strb r2, [r3, #0] - 8033012: 6a7b ldr r3, [r7, #36] ; 0x24 - 8033014: 3301 adds r3, #1 - 8033016: 627b str r3, [r7, #36] ; 0x24 - 8033018: 6a3b ldr r3, [r7, #32] - 803301a: 3301 adds r3, #1 - 803301c: 623b str r3, [r7, #32] + 8032f76: 6a3b ldr r3, [r7, #32] + 8032f78: 781a ldrb r2, [r3, #0] + 8032f7a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032f7c: 701a strb r2, [r3, #0] + 8032f7e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8032f80: 3301 adds r3, #1 + 8032f82: 627b str r3, [r7, #36] ; 0x24 + 8032f84: 6a3b ldr r3, [r7, #32] + 8032f86: 3301 adds r3, #1 + 8032f88: 623b str r3, [r7, #32] len--; - 803301e: 687b ldr r3, [r7, #4] - 8033020: 3b01 subs r3, #1 - 8033022: 607b str r3, [r7, #4] + 8032f8a: 687b ldr r3, [r7, #4] + 8032f8c: 3b01 subs r3, #1 + 8032f8e: 607b str r3, [r7, #4] while(len) { - 8033024: 687b ldr r3, [r7, #4] - 8033026: 2b00 cmp r3, #0 - 8033028: d1ef bne.n 803300a + 8032f90: 687b ldr r3, [r7, #4] + 8032f92: 2b00 cmp r3, #0 + 8032f94: d1ef bne.n 8032f76 } return dst; - 803302a: 68fb ldr r3, [r7, #12] + 8032f96: 68fb ldr r3, [r7, #12] } - 803302c: 4618 mov r0, r3 - 803302e: 372c adds r7, #44 ; 0x2c - 8033030: 46bd mov sp, r7 - 8033032: bc80 pop {r7} - 8033034: 4770 bx lr + 8032f98: 4618 mov r0, r3 + 8032f9a: 372c adds r7, #44 ; 0x2c + 8032f9c: 46bd mov sp, r7 + 8032f9e: bc80 pop {r7} + 8032fa0: 4770 bx lr -08033036 : +08032fa2 : * @param dst pointer to the destination buffer * @param v value to set [0..255] * @param len number of byte to set */ LV_ATTRIBUTE_FAST_MEM void lv_memset(void * dst, uint8_t v, size_t len) { - 8033036: b480 push {r7} - 8033038: b089 sub sp, #36 ; 0x24 - 803303a: af00 add r7, sp, #0 - 803303c: 60f8 str r0, [r7, #12] - 803303e: 460b mov r3, r1 - 8033040: 607a str r2, [r7, #4] - 8033042: 72fb strb r3, [r7, #11] + 8032fa2: b480 push {r7} + 8032fa4: b089 sub sp, #36 ; 0x24 + 8032fa6: af00 add r7, sp, #0 + 8032fa8: 60f8 str r0, [r7, #12] + 8032faa: 460b mov r3, r1 + 8032fac: 607a str r2, [r7, #4] + 8032fae: 72fb strb r3, [r7, #11] uint8_t * d8 = (uint8_t *)dst; - 8033044: 68fb ldr r3, [r7, #12] - 8033046: 61fb str r3, [r7, #28] + 8032fb0: 68fb ldr r3, [r7, #12] + 8032fb2: 61fb str r3, [r7, #28] uintptr_t d_align = (lv_uintptr_t) d8 & ALIGN_MASK; - 8033048: 69fb ldr r3, [r7, #28] - 803304a: f003 0303 and.w r3, r3, #3 - 803304e: 61bb str r3, [r7, #24] + 8032fb4: 69fb ldr r3, [r7, #28] + 8032fb6: f003 0303 and.w r3, r3, #3 + 8032fba: 61bb str r3, [r7, #24] /*Make the address aligned*/ if(d_align) { - 8033050: 69bb ldr r3, [r7, #24] - 8033052: 2b00 cmp r3, #0 - 8033054: d016 beq.n 8033084 + 8032fbc: 69bb ldr r3, [r7, #24] + 8032fbe: 2b00 cmp r3, #0 + 8032fc0: d016 beq.n 8032ff0 d_align = ALIGN_MASK + 1 - d_align; - 8033056: 69bb ldr r3, [r7, #24] - 8033058: f1c3 0304 rsb r3, r3, #4 - 803305c: 61bb str r3, [r7, #24] + 8032fc2: 69bb ldr r3, [r7, #24] + 8032fc4: f1c3 0304 rsb r3, r3, #4 + 8032fc8: 61bb str r3, [r7, #24] while(d_align && len) { - 803305e: e00b b.n 8033078 + 8032fca: e00b b.n 8032fe4 SET8(v); - 8033060: 69fb ldr r3, [r7, #28] - 8033062: 7afa ldrb r2, [r7, #11] - 8033064: 701a strb r2, [r3, #0] - 8033066: 69fb ldr r3, [r7, #28] - 8033068: 3301 adds r3, #1 - 803306a: 61fb str r3, [r7, #28] + 8032fcc: 69fb ldr r3, [r7, #28] + 8032fce: 7afa ldrb r2, [r7, #11] + 8032fd0: 701a strb r2, [r3, #0] + 8032fd2: 69fb ldr r3, [r7, #28] + 8032fd4: 3301 adds r3, #1 + 8032fd6: 61fb str r3, [r7, #28] len--; - 803306c: 687b ldr r3, [r7, #4] - 803306e: 3b01 subs r3, #1 - 8033070: 607b str r3, [r7, #4] + 8032fd8: 687b ldr r3, [r7, #4] + 8032fda: 3b01 subs r3, #1 + 8032fdc: 607b str r3, [r7, #4] d_align--; - 8033072: 69bb ldr r3, [r7, #24] - 8033074: 3b01 subs r3, #1 - 8033076: 61bb str r3, [r7, #24] + 8032fde: 69bb ldr r3, [r7, #24] + 8032fe0: 3b01 subs r3, #1 + 8032fe2: 61bb str r3, [r7, #24] while(d_align && len) { - 8033078: 69bb ldr r3, [r7, #24] - 803307a: 2b00 cmp r3, #0 - 803307c: d002 beq.n 8033084 - 803307e: 687b ldr r3, [r7, #4] - 8033080: 2b00 cmp r3, #0 - 8033082: d1ed bne.n 8033060 + 8032fe4: 69bb ldr r3, [r7, #24] + 8032fe6: 2b00 cmp r3, #0 + 8032fe8: d002 beq.n 8032ff0 + 8032fea: 687b ldr r3, [r7, #4] + 8032fec: 2b00 cmp r3, #0 + 8032fee: d1ed bne.n 8032fcc } } uint32_t v32 = (uint32_t)v + ((uint32_t)v << 8) + ((uint32_t)v << 16) + ((uint32_t)v << 24); - 8033084: 7afa ldrb r2, [r7, #11] - 8033086: 7afb ldrb r3, [r7, #11] - 8033088: 021b lsls r3, r3, #8 - 803308a: 441a add r2, r3 - 803308c: 7afb ldrb r3, [r7, #11] - 803308e: 041b lsls r3, r3, #16 - 8033090: 441a add r2, r3 - 8033092: 7afb ldrb r3, [r7, #11] - 8033094: 061b lsls r3, r3, #24 - 8033096: 4413 add r3, r2 - 8033098: 613b str r3, [r7, #16] + 8032ff0: 7afa ldrb r2, [r7, #11] + 8032ff2: 7afb ldrb r3, [r7, #11] + 8032ff4: 021b lsls r3, r3, #8 + 8032ff6: 441a add r2, r3 + 8032ff8: 7afb ldrb r3, [r7, #11] + 8032ffa: 041b lsls r3, r3, #16 + 8032ffc: 441a add r2, r3 + 8032ffe: 7afb ldrb r3, [r7, #11] + 8033000: 061b lsls r3, r3, #24 + 8033002: 4413 add r3, r2 + 8033004: 613b str r3, [r7, #16] uint32_t * d32 = (uint32_t *)d8; - 803309a: 69fb ldr r3, [r7, #28] - 803309c: 617b str r3, [r7, #20] + 8033006: 69fb ldr r3, [r7, #28] + 8033008: 617b str r3, [r7, #20] while(len > 32) { - 803309e: e032 b.n 8033106 + 803300a: e032 b.n 8033072 REPEAT8(SET32(v32)); - 80330a0: 697b ldr r3, [r7, #20] - 80330a2: 693a ldr r2, [r7, #16] - 80330a4: 601a str r2, [r3, #0] - 80330a6: 697b ldr r3, [r7, #20] - 80330a8: 3304 adds r3, #4 - 80330aa: 617b str r3, [r7, #20] - 80330ac: 697b ldr r3, [r7, #20] - 80330ae: 693a ldr r2, [r7, #16] - 80330b0: 601a str r2, [r3, #0] - 80330b2: 697b ldr r3, [r7, #20] - 80330b4: 3304 adds r3, #4 - 80330b6: 617b str r3, [r7, #20] - 80330b8: 697b ldr r3, [r7, #20] - 80330ba: 693a ldr r2, [r7, #16] - 80330bc: 601a str r2, [r3, #0] - 80330be: 697b ldr r3, [r7, #20] - 80330c0: 3304 adds r3, #4 - 80330c2: 617b str r3, [r7, #20] - 80330c4: 697b ldr r3, [r7, #20] - 80330c6: 693a ldr r2, [r7, #16] - 80330c8: 601a str r2, [r3, #0] - 80330ca: 697b ldr r3, [r7, #20] - 80330cc: 3304 adds r3, #4 - 80330ce: 617b str r3, [r7, #20] - 80330d0: 697b ldr r3, [r7, #20] - 80330d2: 693a ldr r2, [r7, #16] - 80330d4: 601a str r2, [r3, #0] - 80330d6: 697b ldr r3, [r7, #20] - 80330d8: 3304 adds r3, #4 - 80330da: 617b str r3, [r7, #20] - 80330dc: 697b ldr r3, [r7, #20] - 80330de: 693a ldr r2, [r7, #16] - 80330e0: 601a str r2, [r3, #0] - 80330e2: 697b ldr r3, [r7, #20] - 80330e4: 3304 adds r3, #4 - 80330e6: 617b str r3, [r7, #20] - 80330e8: 697b ldr r3, [r7, #20] - 80330ea: 693a ldr r2, [r7, #16] - 80330ec: 601a str r2, [r3, #0] - 80330ee: 697b ldr r3, [r7, #20] - 80330f0: 3304 adds r3, #4 - 80330f2: 617b str r3, [r7, #20] - 80330f4: 697b ldr r3, [r7, #20] - 80330f6: 693a ldr r2, [r7, #16] - 80330f8: 601a str r2, [r3, #0] - 80330fa: 697b ldr r3, [r7, #20] - 80330fc: 3304 adds r3, #4 - 80330fe: 617b str r3, [r7, #20] + 803300c: 697b ldr r3, [r7, #20] + 803300e: 693a ldr r2, [r7, #16] + 8033010: 601a str r2, [r3, #0] + 8033012: 697b ldr r3, [r7, #20] + 8033014: 3304 adds r3, #4 + 8033016: 617b str r3, [r7, #20] + 8033018: 697b ldr r3, [r7, #20] + 803301a: 693a ldr r2, [r7, #16] + 803301c: 601a str r2, [r3, #0] + 803301e: 697b ldr r3, [r7, #20] + 8033020: 3304 adds r3, #4 + 8033022: 617b str r3, [r7, #20] + 8033024: 697b ldr r3, [r7, #20] + 8033026: 693a ldr r2, [r7, #16] + 8033028: 601a str r2, [r3, #0] + 803302a: 697b ldr r3, [r7, #20] + 803302c: 3304 adds r3, #4 + 803302e: 617b str r3, [r7, #20] + 8033030: 697b ldr r3, [r7, #20] + 8033032: 693a ldr r2, [r7, #16] + 8033034: 601a str r2, [r3, #0] + 8033036: 697b ldr r3, [r7, #20] + 8033038: 3304 adds r3, #4 + 803303a: 617b str r3, [r7, #20] + 803303c: 697b ldr r3, [r7, #20] + 803303e: 693a ldr r2, [r7, #16] + 8033040: 601a str r2, [r3, #0] + 8033042: 697b ldr r3, [r7, #20] + 8033044: 3304 adds r3, #4 + 8033046: 617b str r3, [r7, #20] + 8033048: 697b ldr r3, [r7, #20] + 803304a: 693a ldr r2, [r7, #16] + 803304c: 601a str r2, [r3, #0] + 803304e: 697b ldr r3, [r7, #20] + 8033050: 3304 adds r3, #4 + 8033052: 617b str r3, [r7, #20] + 8033054: 697b ldr r3, [r7, #20] + 8033056: 693a ldr r2, [r7, #16] + 8033058: 601a str r2, [r3, #0] + 803305a: 697b ldr r3, [r7, #20] + 803305c: 3304 adds r3, #4 + 803305e: 617b str r3, [r7, #20] + 8033060: 697b ldr r3, [r7, #20] + 8033062: 693a ldr r2, [r7, #16] + 8033064: 601a str r2, [r3, #0] + 8033066: 697b ldr r3, [r7, #20] + 8033068: 3304 adds r3, #4 + 803306a: 617b str r3, [r7, #20] len -= 32; - 8033100: 687b ldr r3, [r7, #4] - 8033102: 3b20 subs r3, #32 - 8033104: 607b str r3, [r7, #4] + 803306c: 687b ldr r3, [r7, #4] + 803306e: 3b20 subs r3, #32 + 8033070: 607b str r3, [r7, #4] while(len > 32) { - 8033106: 687b ldr r3, [r7, #4] - 8033108: 2b20 cmp r3, #32 - 803310a: d8c9 bhi.n 80330a0 + 8033072: 687b ldr r3, [r7, #4] + 8033074: 2b20 cmp r3, #32 + 8033076: d8c9 bhi.n 803300c } while(len > 4) { - 803310c: e008 b.n 8033120 + 8033078: e008 b.n 803308c SET32(v32); - 803310e: 697b ldr r3, [r7, #20] - 8033110: 693a ldr r2, [r7, #16] - 8033112: 601a str r2, [r3, #0] - 8033114: 697b ldr r3, [r7, #20] - 8033116: 3304 adds r3, #4 - 8033118: 617b str r3, [r7, #20] + 803307a: 697b ldr r3, [r7, #20] + 803307c: 693a ldr r2, [r7, #16] + 803307e: 601a str r2, [r3, #0] + 8033080: 697b ldr r3, [r7, #20] + 8033082: 3304 adds r3, #4 + 8033084: 617b str r3, [r7, #20] len -= 4; - 803311a: 687b ldr r3, [r7, #4] - 803311c: 3b04 subs r3, #4 - 803311e: 607b str r3, [r7, #4] + 8033086: 687b ldr r3, [r7, #4] + 8033088: 3b04 subs r3, #4 + 803308a: 607b str r3, [r7, #4] while(len > 4) { - 8033120: 687b ldr r3, [r7, #4] - 8033122: 2b04 cmp r3, #4 - 8033124: d8f3 bhi.n 803310e + 803308c: 687b ldr r3, [r7, #4] + 803308e: 2b04 cmp r3, #4 + 8033090: d8f3 bhi.n 803307a } d8 = (uint8_t *)d32; - 8033126: 697b ldr r3, [r7, #20] - 8033128: 61fb str r3, [r7, #28] + 8033092: 697b ldr r3, [r7, #20] + 8033094: 61fb str r3, [r7, #28] while(len) { - 803312a: e008 b.n 803313e + 8033096: e008 b.n 80330aa SET8(v); - 803312c: 69fb ldr r3, [r7, #28] - 803312e: 7afa ldrb r2, [r7, #11] - 8033130: 701a strb r2, [r3, #0] - 8033132: 69fb ldr r3, [r7, #28] - 8033134: 3301 adds r3, #1 - 8033136: 61fb str r3, [r7, #28] + 8033098: 69fb ldr r3, [r7, #28] + 803309a: 7afa ldrb r2, [r7, #11] + 803309c: 701a strb r2, [r3, #0] + 803309e: 69fb ldr r3, [r7, #28] + 80330a0: 3301 adds r3, #1 + 80330a2: 61fb str r3, [r7, #28] len--; - 8033138: 687b ldr r3, [r7, #4] - 803313a: 3b01 subs r3, #1 - 803313c: 607b str r3, [r7, #4] + 80330a4: 687b ldr r3, [r7, #4] + 80330a6: 3b01 subs r3, #1 + 80330a8: 607b str r3, [r7, #4] while(len) { - 803313e: 687b ldr r3, [r7, #4] - 8033140: 2b00 cmp r3, #0 - 8033142: d1f3 bne.n 803312c + 80330aa: 687b ldr r3, [r7, #4] + 80330ac: 2b00 cmp r3, #0 + 80330ae: d1f3 bne.n 8033098 } } - 8033144: bf00 nop - 8033146: bf00 nop - 8033148: 3724 adds r7, #36 ; 0x24 - 803314a: 46bd mov sp, r7 - 803314c: bc80 pop {r7} - 803314e: 4770 bx lr + 80330b0: bf00 nop + 80330b2: bf00 nop + 80330b4: 3724 adds r7, #36 ; 0x24 + 80330b6: 46bd mov sp, r7 + 80330b8: bc80 pop {r7} + 80330ba: 4770 bx lr -08033150 : +080330bc : * Same as `memset(dst, 0x00, len)` but optimized for 4 byte operation. * @param dst pointer to the destination buffer * @param len number of byte to set */ LV_ATTRIBUTE_FAST_MEM void lv_memset_00(void * dst, size_t len) { - 8033150: b480 push {r7} - 8033152: b087 sub sp, #28 - 8033154: af00 add r7, sp, #0 - 8033156: 6078 str r0, [r7, #4] - 8033158: 6039 str r1, [r7, #0] + 80330bc: b480 push {r7} + 80330be: b087 sub sp, #28 + 80330c0: af00 add r7, sp, #0 + 80330c2: 6078 str r0, [r7, #4] + 80330c4: 6039 str r1, [r7, #0] uint8_t * d8 = (uint8_t *)dst; - 803315a: 687b ldr r3, [r7, #4] - 803315c: 617b str r3, [r7, #20] + 80330c6: 687b ldr r3, [r7, #4] + 80330c8: 617b str r3, [r7, #20] uintptr_t d_align = (lv_uintptr_t) d8 & ALIGN_MASK; - 803315e: 697b ldr r3, [r7, #20] - 8033160: f003 0303 and.w r3, r3, #3 - 8033164: 613b str r3, [r7, #16] + 80330ca: 697b ldr r3, [r7, #20] + 80330cc: f003 0303 and.w r3, r3, #3 + 80330d0: 613b str r3, [r7, #16] /*Make the address aligned*/ if(d_align) { - 8033166: 693b ldr r3, [r7, #16] - 8033168: 2b00 cmp r3, #0 - 803316a: d016 beq.n 803319a + 80330d2: 693b ldr r3, [r7, #16] + 80330d4: 2b00 cmp r3, #0 + 80330d6: d016 beq.n 8033106 d_align = ALIGN_MASK + 1 - d_align; - 803316c: 693b ldr r3, [r7, #16] - 803316e: f1c3 0304 rsb r3, r3, #4 - 8033172: 613b str r3, [r7, #16] + 80330d8: 693b ldr r3, [r7, #16] + 80330da: f1c3 0304 rsb r3, r3, #4 + 80330de: 613b str r3, [r7, #16] while(d_align && len) { - 8033174: e00b b.n 803318e + 80330e0: e00b b.n 80330fa SET8(0); - 8033176: 697b ldr r3, [r7, #20] - 8033178: 2200 movs r2, #0 - 803317a: 701a strb r2, [r3, #0] - 803317c: 697b ldr r3, [r7, #20] - 803317e: 3301 adds r3, #1 - 8033180: 617b str r3, [r7, #20] + 80330e2: 697b ldr r3, [r7, #20] + 80330e4: 2200 movs r2, #0 + 80330e6: 701a strb r2, [r3, #0] + 80330e8: 697b ldr r3, [r7, #20] + 80330ea: 3301 adds r3, #1 + 80330ec: 617b str r3, [r7, #20] len--; - 8033182: 683b ldr r3, [r7, #0] - 8033184: 3b01 subs r3, #1 - 8033186: 603b str r3, [r7, #0] + 80330ee: 683b ldr r3, [r7, #0] + 80330f0: 3b01 subs r3, #1 + 80330f2: 603b str r3, [r7, #0] d_align--; - 8033188: 693b ldr r3, [r7, #16] - 803318a: 3b01 subs r3, #1 - 803318c: 613b str r3, [r7, #16] + 80330f4: 693b ldr r3, [r7, #16] + 80330f6: 3b01 subs r3, #1 + 80330f8: 613b str r3, [r7, #16] while(d_align && len) { - 803318e: 693b ldr r3, [r7, #16] - 8033190: 2b00 cmp r3, #0 - 8033192: d002 beq.n 803319a - 8033194: 683b ldr r3, [r7, #0] - 8033196: 2b00 cmp r3, #0 - 8033198: d1ed bne.n 8033176 + 80330fa: 693b ldr r3, [r7, #16] + 80330fc: 2b00 cmp r3, #0 + 80330fe: d002 beq.n 8033106 + 8033100: 683b ldr r3, [r7, #0] + 8033102: 2b00 cmp r3, #0 + 8033104: d1ed bne.n 80330e2 } } uint32_t * d32 = (uint32_t *)d8; - 803319a: 697b ldr r3, [r7, #20] - 803319c: 60fb str r3, [r7, #12] + 8033106: 697b ldr r3, [r7, #20] + 8033108: 60fb str r3, [r7, #12] while(len > 32) { - 803319e: e032 b.n 8033206 + 803310a: e032 b.n 8033172 REPEAT8(SET32(0)); - 80331a0: 68fb ldr r3, [r7, #12] - 80331a2: 2200 movs r2, #0 - 80331a4: 601a str r2, [r3, #0] - 80331a6: 68fb ldr r3, [r7, #12] - 80331a8: 3304 adds r3, #4 - 80331aa: 60fb str r3, [r7, #12] - 80331ac: 68fb ldr r3, [r7, #12] - 80331ae: 2200 movs r2, #0 - 80331b0: 601a str r2, [r3, #0] - 80331b2: 68fb ldr r3, [r7, #12] - 80331b4: 3304 adds r3, #4 - 80331b6: 60fb str r3, [r7, #12] - 80331b8: 68fb ldr r3, [r7, #12] - 80331ba: 2200 movs r2, #0 - 80331bc: 601a str r2, [r3, #0] - 80331be: 68fb ldr r3, [r7, #12] - 80331c0: 3304 adds r3, #4 - 80331c2: 60fb str r3, [r7, #12] - 80331c4: 68fb ldr r3, [r7, #12] - 80331c6: 2200 movs r2, #0 - 80331c8: 601a str r2, [r3, #0] - 80331ca: 68fb ldr r3, [r7, #12] - 80331cc: 3304 adds r3, #4 - 80331ce: 60fb str r3, [r7, #12] - 80331d0: 68fb ldr r3, [r7, #12] - 80331d2: 2200 movs r2, #0 - 80331d4: 601a str r2, [r3, #0] - 80331d6: 68fb ldr r3, [r7, #12] - 80331d8: 3304 adds r3, #4 - 80331da: 60fb str r3, [r7, #12] - 80331dc: 68fb ldr r3, [r7, #12] - 80331de: 2200 movs r2, #0 - 80331e0: 601a str r2, [r3, #0] - 80331e2: 68fb ldr r3, [r7, #12] - 80331e4: 3304 adds r3, #4 - 80331e6: 60fb str r3, [r7, #12] - 80331e8: 68fb ldr r3, [r7, #12] - 80331ea: 2200 movs r2, #0 - 80331ec: 601a str r2, [r3, #0] - 80331ee: 68fb ldr r3, [r7, #12] - 80331f0: 3304 adds r3, #4 - 80331f2: 60fb str r3, [r7, #12] - 80331f4: 68fb ldr r3, [r7, #12] - 80331f6: 2200 movs r2, #0 - 80331f8: 601a str r2, [r3, #0] - 80331fa: 68fb ldr r3, [r7, #12] - 80331fc: 3304 adds r3, #4 - 80331fe: 60fb str r3, [r7, #12] + 803310c: 68fb ldr r3, [r7, #12] + 803310e: 2200 movs r2, #0 + 8033110: 601a str r2, [r3, #0] + 8033112: 68fb ldr r3, [r7, #12] + 8033114: 3304 adds r3, #4 + 8033116: 60fb str r3, [r7, #12] + 8033118: 68fb ldr r3, [r7, #12] + 803311a: 2200 movs r2, #0 + 803311c: 601a str r2, [r3, #0] + 803311e: 68fb ldr r3, [r7, #12] + 8033120: 3304 adds r3, #4 + 8033122: 60fb str r3, [r7, #12] + 8033124: 68fb ldr r3, [r7, #12] + 8033126: 2200 movs r2, #0 + 8033128: 601a str r2, [r3, #0] + 803312a: 68fb ldr r3, [r7, #12] + 803312c: 3304 adds r3, #4 + 803312e: 60fb str r3, [r7, #12] + 8033130: 68fb ldr r3, [r7, #12] + 8033132: 2200 movs r2, #0 + 8033134: 601a str r2, [r3, #0] + 8033136: 68fb ldr r3, [r7, #12] + 8033138: 3304 adds r3, #4 + 803313a: 60fb str r3, [r7, #12] + 803313c: 68fb ldr r3, [r7, #12] + 803313e: 2200 movs r2, #0 + 8033140: 601a str r2, [r3, #0] + 8033142: 68fb ldr r3, [r7, #12] + 8033144: 3304 adds r3, #4 + 8033146: 60fb str r3, [r7, #12] + 8033148: 68fb ldr r3, [r7, #12] + 803314a: 2200 movs r2, #0 + 803314c: 601a str r2, [r3, #0] + 803314e: 68fb ldr r3, [r7, #12] + 8033150: 3304 adds r3, #4 + 8033152: 60fb str r3, [r7, #12] + 8033154: 68fb ldr r3, [r7, #12] + 8033156: 2200 movs r2, #0 + 8033158: 601a str r2, [r3, #0] + 803315a: 68fb ldr r3, [r7, #12] + 803315c: 3304 adds r3, #4 + 803315e: 60fb str r3, [r7, #12] + 8033160: 68fb ldr r3, [r7, #12] + 8033162: 2200 movs r2, #0 + 8033164: 601a str r2, [r3, #0] + 8033166: 68fb ldr r3, [r7, #12] + 8033168: 3304 adds r3, #4 + 803316a: 60fb str r3, [r7, #12] len -= 32; - 8033200: 683b ldr r3, [r7, #0] - 8033202: 3b20 subs r3, #32 - 8033204: 603b str r3, [r7, #0] + 803316c: 683b ldr r3, [r7, #0] + 803316e: 3b20 subs r3, #32 + 8033170: 603b str r3, [r7, #0] while(len > 32) { - 8033206: 683b ldr r3, [r7, #0] - 8033208: 2b20 cmp r3, #32 - 803320a: d8c9 bhi.n 80331a0 + 8033172: 683b ldr r3, [r7, #0] + 8033174: 2b20 cmp r3, #32 + 8033176: d8c9 bhi.n 803310c } while(len > 4) { - 803320c: e008 b.n 8033220 + 8033178: e008 b.n 803318c SET32(0); - 803320e: 68fb ldr r3, [r7, #12] - 8033210: 2200 movs r2, #0 - 8033212: 601a str r2, [r3, #0] - 8033214: 68fb ldr r3, [r7, #12] - 8033216: 3304 adds r3, #4 - 8033218: 60fb str r3, [r7, #12] + 803317a: 68fb ldr r3, [r7, #12] + 803317c: 2200 movs r2, #0 + 803317e: 601a str r2, [r3, #0] + 8033180: 68fb ldr r3, [r7, #12] + 8033182: 3304 adds r3, #4 + 8033184: 60fb str r3, [r7, #12] len -= 4; - 803321a: 683b ldr r3, [r7, #0] - 803321c: 3b04 subs r3, #4 - 803321e: 603b str r3, [r7, #0] + 8033186: 683b ldr r3, [r7, #0] + 8033188: 3b04 subs r3, #4 + 803318a: 603b str r3, [r7, #0] while(len > 4) { - 8033220: 683b ldr r3, [r7, #0] - 8033222: 2b04 cmp r3, #4 - 8033224: d8f3 bhi.n 803320e + 803318c: 683b ldr r3, [r7, #0] + 803318e: 2b04 cmp r3, #4 + 8033190: d8f3 bhi.n 803317a } d8 = (uint8_t *)d32; - 8033226: 68fb ldr r3, [r7, #12] - 8033228: 617b str r3, [r7, #20] + 8033192: 68fb ldr r3, [r7, #12] + 8033194: 617b str r3, [r7, #20] while(len) { - 803322a: e008 b.n 803323e + 8033196: e008 b.n 80331aa SET8(0); - 803322c: 697b ldr r3, [r7, #20] - 803322e: 2200 movs r2, #0 - 8033230: 701a strb r2, [r3, #0] - 8033232: 697b ldr r3, [r7, #20] - 8033234: 3301 adds r3, #1 - 8033236: 617b str r3, [r7, #20] + 8033198: 697b ldr r3, [r7, #20] + 803319a: 2200 movs r2, #0 + 803319c: 701a strb r2, [r3, #0] + 803319e: 697b ldr r3, [r7, #20] + 80331a0: 3301 adds r3, #1 + 80331a2: 617b str r3, [r7, #20] len--; - 8033238: 683b ldr r3, [r7, #0] - 803323a: 3b01 subs r3, #1 - 803323c: 603b str r3, [r7, #0] + 80331a4: 683b ldr r3, [r7, #0] + 80331a6: 3b01 subs r3, #1 + 80331a8: 603b str r3, [r7, #0] while(len) { - 803323e: 683b ldr r3, [r7, #0] - 8033240: 2b00 cmp r3, #0 - 8033242: d1f3 bne.n 803322c + 80331aa: 683b ldr r3, [r7, #0] + 80331ac: 2b00 cmp r3, #0 + 80331ae: d1f3 bne.n 8033198 } } - 8033244: bf00 nop - 8033246: bf00 nop - 8033248: 371c adds r7, #28 - 803324a: 46bd mov sp, r7 - 803324c: bc80 pop {r7} - 803324e: 4770 bx lr + 80331b0: bf00 nop + 80331b2: bf00 nop + 80331b4: 371c adds r7, #28 + 80331b6: 46bd mov sp, r7 + 80331b8: bc80 pop {r7} + 80331ba: 4770 bx lr -08033250 : +080331bc : * Same as `memset(dst, 0xFF, len)` but optimized for 4 byte operation. * @param dst pointer to the destination buffer * @param len number of byte to set */ LV_ATTRIBUTE_FAST_MEM void lv_memset_ff(void * dst, size_t len) { - 8033250: b480 push {r7} - 8033252: b087 sub sp, #28 - 8033254: af00 add r7, sp, #0 - 8033256: 6078 str r0, [r7, #4] - 8033258: 6039 str r1, [r7, #0] + 80331bc: b480 push {r7} + 80331be: b087 sub sp, #28 + 80331c0: af00 add r7, sp, #0 + 80331c2: 6078 str r0, [r7, #4] + 80331c4: 6039 str r1, [r7, #0] uint8_t * d8 = (uint8_t *)dst; - 803325a: 687b ldr r3, [r7, #4] - 803325c: 617b str r3, [r7, #20] + 80331c6: 687b ldr r3, [r7, #4] + 80331c8: 617b str r3, [r7, #20] uintptr_t d_align = (lv_uintptr_t) d8 & ALIGN_MASK; - 803325e: 697b ldr r3, [r7, #20] - 8033260: f003 0303 and.w r3, r3, #3 - 8033264: 613b str r3, [r7, #16] + 80331ca: 697b ldr r3, [r7, #20] + 80331cc: f003 0303 and.w r3, r3, #3 + 80331d0: 613b str r3, [r7, #16] /*Make the address aligned*/ if(d_align) { - 8033266: 693b ldr r3, [r7, #16] - 8033268: 2b00 cmp r3, #0 - 803326a: d016 beq.n 803329a + 80331d2: 693b ldr r3, [r7, #16] + 80331d4: 2b00 cmp r3, #0 + 80331d6: d016 beq.n 8033206 d_align = ALIGN_MASK + 1 - d_align; - 803326c: 693b ldr r3, [r7, #16] - 803326e: f1c3 0304 rsb r3, r3, #4 - 8033272: 613b str r3, [r7, #16] + 80331d8: 693b ldr r3, [r7, #16] + 80331da: f1c3 0304 rsb r3, r3, #4 + 80331de: 613b str r3, [r7, #16] while(d_align && len) { - 8033274: e00b b.n 803328e + 80331e0: e00b b.n 80331fa SET8(0xFF); - 8033276: 697b ldr r3, [r7, #20] - 8033278: 22ff movs r2, #255 ; 0xff - 803327a: 701a strb r2, [r3, #0] - 803327c: 697b ldr r3, [r7, #20] - 803327e: 3301 adds r3, #1 - 8033280: 617b str r3, [r7, #20] + 80331e2: 697b ldr r3, [r7, #20] + 80331e4: 22ff movs r2, #255 ; 0xff + 80331e6: 701a strb r2, [r3, #0] + 80331e8: 697b ldr r3, [r7, #20] + 80331ea: 3301 adds r3, #1 + 80331ec: 617b str r3, [r7, #20] len--; - 8033282: 683b ldr r3, [r7, #0] - 8033284: 3b01 subs r3, #1 - 8033286: 603b str r3, [r7, #0] + 80331ee: 683b ldr r3, [r7, #0] + 80331f0: 3b01 subs r3, #1 + 80331f2: 603b str r3, [r7, #0] d_align--; - 8033288: 693b ldr r3, [r7, #16] - 803328a: 3b01 subs r3, #1 - 803328c: 613b str r3, [r7, #16] + 80331f4: 693b ldr r3, [r7, #16] + 80331f6: 3b01 subs r3, #1 + 80331f8: 613b str r3, [r7, #16] while(d_align && len) { - 803328e: 693b ldr r3, [r7, #16] - 8033290: 2b00 cmp r3, #0 - 8033292: d002 beq.n 803329a - 8033294: 683b ldr r3, [r7, #0] - 8033296: 2b00 cmp r3, #0 - 8033298: d1ed bne.n 8033276 + 80331fa: 693b ldr r3, [r7, #16] + 80331fc: 2b00 cmp r3, #0 + 80331fe: d002 beq.n 8033206 + 8033200: 683b ldr r3, [r7, #0] + 8033202: 2b00 cmp r3, #0 + 8033204: d1ed bne.n 80331e2 } } uint32_t * d32 = (uint32_t *)d8; - 803329a: 697b ldr r3, [r7, #20] - 803329c: 60fb str r3, [r7, #12] + 8033206: 697b ldr r3, [r7, #20] + 8033208: 60fb str r3, [r7, #12] while(len > 32) { - 803329e: e03a b.n 8033316 + 803320a: e03a b.n 8033282 REPEAT8(SET32(0xFFFFFFFF)); - 80332a0: 68fb ldr r3, [r7, #12] - 80332a2: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 80332a6: 601a str r2, [r3, #0] - 80332a8: 68fb ldr r3, [r7, #12] - 80332aa: 3304 adds r3, #4 - 80332ac: 60fb str r3, [r7, #12] - 80332ae: 68fb ldr r3, [r7, #12] - 80332b0: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 80332b4: 601a str r2, [r3, #0] - 80332b6: 68fb ldr r3, [r7, #12] - 80332b8: 3304 adds r3, #4 - 80332ba: 60fb str r3, [r7, #12] - 80332bc: 68fb ldr r3, [r7, #12] - 80332be: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 80332c2: 601a str r2, [r3, #0] - 80332c4: 68fb ldr r3, [r7, #12] - 80332c6: 3304 adds r3, #4 - 80332c8: 60fb str r3, [r7, #12] - 80332ca: 68fb ldr r3, [r7, #12] - 80332cc: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 80332d0: 601a str r2, [r3, #0] - 80332d2: 68fb ldr r3, [r7, #12] - 80332d4: 3304 adds r3, #4 - 80332d6: 60fb str r3, [r7, #12] - 80332d8: 68fb ldr r3, [r7, #12] - 80332da: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 80332de: 601a str r2, [r3, #0] - 80332e0: 68fb ldr r3, [r7, #12] - 80332e2: 3304 adds r3, #4 - 80332e4: 60fb str r3, [r7, #12] - 80332e6: 68fb ldr r3, [r7, #12] - 80332e8: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 80332ec: 601a str r2, [r3, #0] - 80332ee: 68fb ldr r3, [r7, #12] - 80332f0: 3304 adds r3, #4 - 80332f2: 60fb str r3, [r7, #12] - 80332f4: 68fb ldr r3, [r7, #12] - 80332f6: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 80332fa: 601a str r2, [r3, #0] - 80332fc: 68fb ldr r3, [r7, #12] - 80332fe: 3304 adds r3, #4 - 8033300: 60fb str r3, [r7, #12] - 8033302: 68fb ldr r3, [r7, #12] - 8033304: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 8033308: 601a str r2, [r3, #0] - 803330a: 68fb ldr r3, [r7, #12] - 803330c: 3304 adds r3, #4 - 803330e: 60fb str r3, [r7, #12] + 803320c: 68fb ldr r3, [r7, #12] + 803320e: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 8033212: 601a str r2, [r3, #0] + 8033214: 68fb ldr r3, [r7, #12] + 8033216: 3304 adds r3, #4 + 8033218: 60fb str r3, [r7, #12] + 803321a: 68fb ldr r3, [r7, #12] + 803321c: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 8033220: 601a str r2, [r3, #0] + 8033222: 68fb ldr r3, [r7, #12] + 8033224: 3304 adds r3, #4 + 8033226: 60fb str r3, [r7, #12] + 8033228: 68fb ldr r3, [r7, #12] + 803322a: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 803322e: 601a str r2, [r3, #0] + 8033230: 68fb ldr r3, [r7, #12] + 8033232: 3304 adds r3, #4 + 8033234: 60fb str r3, [r7, #12] + 8033236: 68fb ldr r3, [r7, #12] + 8033238: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 803323c: 601a str r2, [r3, #0] + 803323e: 68fb ldr r3, [r7, #12] + 8033240: 3304 adds r3, #4 + 8033242: 60fb str r3, [r7, #12] + 8033244: 68fb ldr r3, [r7, #12] + 8033246: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 803324a: 601a str r2, [r3, #0] + 803324c: 68fb ldr r3, [r7, #12] + 803324e: 3304 adds r3, #4 + 8033250: 60fb str r3, [r7, #12] + 8033252: 68fb ldr r3, [r7, #12] + 8033254: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 8033258: 601a str r2, [r3, #0] + 803325a: 68fb ldr r3, [r7, #12] + 803325c: 3304 adds r3, #4 + 803325e: 60fb str r3, [r7, #12] + 8033260: 68fb ldr r3, [r7, #12] + 8033262: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 8033266: 601a str r2, [r3, #0] + 8033268: 68fb ldr r3, [r7, #12] + 803326a: 3304 adds r3, #4 + 803326c: 60fb str r3, [r7, #12] + 803326e: 68fb ldr r3, [r7, #12] + 8033270: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 8033274: 601a str r2, [r3, #0] + 8033276: 68fb ldr r3, [r7, #12] + 8033278: 3304 adds r3, #4 + 803327a: 60fb str r3, [r7, #12] len -= 32; - 8033310: 683b ldr r3, [r7, #0] - 8033312: 3b20 subs r3, #32 - 8033314: 603b str r3, [r7, #0] + 803327c: 683b ldr r3, [r7, #0] + 803327e: 3b20 subs r3, #32 + 8033280: 603b str r3, [r7, #0] while(len > 32) { - 8033316: 683b ldr r3, [r7, #0] - 8033318: 2b20 cmp r3, #32 - 803331a: d8c1 bhi.n 80332a0 + 8033282: 683b ldr r3, [r7, #0] + 8033284: 2b20 cmp r3, #32 + 8033286: d8c1 bhi.n 803320c } while(len > 4) { - 803331c: e009 b.n 8033332 + 8033288: e009 b.n 803329e SET32(0xFFFFFFFF); - 803331e: 68fb ldr r3, [r7, #12] - 8033320: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 8033324: 601a str r2, [r3, #0] - 8033326: 68fb ldr r3, [r7, #12] - 8033328: 3304 adds r3, #4 - 803332a: 60fb str r3, [r7, #12] + 803328a: 68fb ldr r3, [r7, #12] + 803328c: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 8033290: 601a str r2, [r3, #0] + 8033292: 68fb ldr r3, [r7, #12] + 8033294: 3304 adds r3, #4 + 8033296: 60fb str r3, [r7, #12] len -= 4; - 803332c: 683b ldr r3, [r7, #0] - 803332e: 3b04 subs r3, #4 - 8033330: 603b str r3, [r7, #0] + 8033298: 683b ldr r3, [r7, #0] + 803329a: 3b04 subs r3, #4 + 803329c: 603b str r3, [r7, #0] while(len > 4) { - 8033332: 683b ldr r3, [r7, #0] - 8033334: 2b04 cmp r3, #4 - 8033336: d8f2 bhi.n 803331e + 803329e: 683b ldr r3, [r7, #0] + 80332a0: 2b04 cmp r3, #4 + 80332a2: d8f2 bhi.n 803328a } d8 = (uint8_t *)d32; - 8033338: 68fb ldr r3, [r7, #12] - 803333a: 617b str r3, [r7, #20] + 80332a4: 68fb ldr r3, [r7, #12] + 80332a6: 617b str r3, [r7, #20] while(len) { - 803333c: e008 b.n 8033350 + 80332a8: e008 b.n 80332bc SET8(0xFF); - 803333e: 697b ldr r3, [r7, #20] - 8033340: 22ff movs r2, #255 ; 0xff - 8033342: 701a strb r2, [r3, #0] - 8033344: 697b ldr r3, [r7, #20] - 8033346: 3301 adds r3, #1 - 8033348: 617b str r3, [r7, #20] + 80332aa: 697b ldr r3, [r7, #20] + 80332ac: 22ff movs r2, #255 ; 0xff + 80332ae: 701a strb r2, [r3, #0] + 80332b0: 697b ldr r3, [r7, #20] + 80332b2: 3301 adds r3, #1 + 80332b4: 617b str r3, [r7, #20] len--; - 803334a: 683b ldr r3, [r7, #0] - 803334c: 3b01 subs r3, #1 - 803334e: 603b str r3, [r7, #0] + 80332b6: 683b ldr r3, [r7, #0] + 80332b8: 3b01 subs r3, #1 + 80332ba: 603b str r3, [r7, #0] while(len) { - 8033350: 683b ldr r3, [r7, #0] - 8033352: 2b00 cmp r3, #0 - 8033354: d1f3 bne.n 803333e + 80332bc: 683b ldr r3, [r7, #0] + 80332be: 2b00 cmp r3, #0 + 80332c0: d1f3 bne.n 80332aa } } - 8033356: bf00 nop - 8033358: bf00 nop - 803335a: 371c adds r7, #28 - 803335c: 46bd mov sp, r7 - 803335e: bc80 pop {r7} - 8033360: 4770 bx lr + 80332c2: bf00 nop + 80332c4: bf00 nop + 80332c6: 371c adds r7, #28 + 80332c8: 46bd mov sp, r7 + 80332ca: bc80 pop {r7} + 80332cc: 4770 bx lr -08033362 : +080332ce : * STATIC FUNCTIONS **********************/ #if LV_MEM_CUSTOM == 0 static void lv_mem_walker(void * ptr, size_t size, int used, void * user) { - 8033362: b480 push {r7} - 8033364: b087 sub sp, #28 - 8033366: af00 add r7, sp, #0 - 8033368: 60f8 str r0, [r7, #12] - 803336a: 60b9 str r1, [r7, #8] - 803336c: 607a str r2, [r7, #4] - 803336e: 603b str r3, [r7, #0] + 80332ce: b480 push {r7} + 80332d0: b087 sub sp, #28 + 80332d2: af00 add r7, sp, #0 + 80332d4: 60f8 str r0, [r7, #12] + 80332d6: 60b9 str r1, [r7, #8] + 80332d8: 607a str r2, [r7, #4] + 80332da: 603b str r3, [r7, #0] LV_UNUSED(ptr); lv_mem_monitor_t * mon_p = user; - 8033370: 683b ldr r3, [r7, #0] - 8033372: 617b str r3, [r7, #20] + 80332dc: 683b ldr r3, [r7, #0] + 80332de: 617b str r3, [r7, #20] if(used) { - 8033374: 687b ldr r3, [r7, #4] - 8033376: 2b00 cmp r3, #0 - 8033378: d005 beq.n 8033386 + 80332e0: 687b ldr r3, [r7, #4] + 80332e2: 2b00 cmp r3, #0 + 80332e4: d005 beq.n 80332f2 mon_p->used_cnt++; - 803337a: 697b ldr r3, [r7, #20] - 803337c: 691b ldr r3, [r3, #16] - 803337e: 1c5a adds r2, r3, #1 - 8033380: 697b ldr r3, [r7, #20] - 8033382: 611a str r2, [r3, #16] + 80332e6: 697b ldr r3, [r7, #20] + 80332e8: 691b ldr r3, [r3, #16] + 80332ea: 1c5a adds r2, r3, #1 + 80332ec: 697b ldr r3, [r7, #20] + 80332ee: 611a str r2, [r3, #16] mon_p->free_cnt++; mon_p->free_size += size; if(size > mon_p->free_biggest_size) mon_p->free_biggest_size = size; } } - 8033384: e012 b.n 80333ac + 80332f0: e012 b.n 8033318 mon_p->free_cnt++; - 8033386: 697b ldr r3, [r7, #20] - 8033388: 685b ldr r3, [r3, #4] - 803338a: 1c5a adds r2, r3, #1 - 803338c: 697b ldr r3, [r7, #20] - 803338e: 605a str r2, [r3, #4] + 80332f2: 697b ldr r3, [r7, #20] + 80332f4: 685b ldr r3, [r3, #4] + 80332f6: 1c5a adds r2, r3, #1 + 80332f8: 697b ldr r3, [r7, #20] + 80332fa: 605a str r2, [r3, #4] mon_p->free_size += size; - 8033390: 697b ldr r3, [r7, #20] - 8033392: 689a ldr r2, [r3, #8] - 8033394: 68bb ldr r3, [r7, #8] - 8033396: 441a add r2, r3 - 8033398: 697b ldr r3, [r7, #20] - 803339a: 609a str r2, [r3, #8] + 80332fc: 697b ldr r3, [r7, #20] + 80332fe: 689a ldr r2, [r3, #8] + 8033300: 68bb ldr r3, [r7, #8] + 8033302: 441a add r2, r3 + 8033304: 697b ldr r3, [r7, #20] + 8033306: 609a str r2, [r3, #8] if(size > mon_p->free_biggest_size) - 803339c: 697b ldr r3, [r7, #20] - 803339e: 68db ldr r3, [r3, #12] - 80333a0: 68ba ldr r2, [r7, #8] - 80333a2: 429a cmp r2, r3 - 80333a4: d902 bls.n 80333ac + 8033308: 697b ldr r3, [r7, #20] + 803330a: 68db ldr r3, [r3, #12] + 803330c: 68ba ldr r2, [r7, #8] + 803330e: 429a cmp r2, r3 + 8033310: d902 bls.n 8033318 mon_p->free_biggest_size = size; - 80333a6: 697b ldr r3, [r7, #20] - 80333a8: 68ba ldr r2, [r7, #8] - 80333aa: 60da str r2, [r3, #12] + 8033312: 697b ldr r3, [r7, #20] + 8033314: 68ba ldr r2, [r7, #8] + 8033316: 60da str r2, [r3, #12] } - 80333ac: bf00 nop - 80333ae: 371c adds r7, #28 - 80333b0: 46bd mov sp, r7 - 80333b2: bc80 pop {r7} - 80333b4: 4770 bx lr + 8033318: bf00 nop + 803331a: 371c adds r7, #28 + 803331c: 46bd mov sp, r7 + 803331e: bc80 pop {r7} + 8033320: 4770 bx lr -080333b6 <_out_buffer>: +08033322 <_out_buffer>: void * arg; } out_fct_wrap_type; // internal buffer output static inline void _out_buffer(char character, void * buffer, size_t idx, size_t maxlen) { - 80333b6: b480 push {r7} - 80333b8: b085 sub sp, #20 - 80333ba: af00 add r7, sp, #0 - 80333bc: 60b9 str r1, [r7, #8] - 80333be: 607a str r2, [r7, #4] - 80333c0: 603b str r3, [r7, #0] - 80333c2: 4603 mov r3, r0 - 80333c4: 73fb strb r3, [r7, #15] + 8033322: b480 push {r7} + 8033324: b085 sub sp, #20 + 8033326: af00 add r7, sp, #0 + 8033328: 60b9 str r1, [r7, #8] + 803332a: 607a str r2, [r7, #4] + 803332c: 603b str r3, [r7, #0] + 803332e: 4603 mov r3, r0 + 8033330: 73fb strb r3, [r7, #15] if(idx < maxlen) { - 80333c6: 687a ldr r2, [r7, #4] - 80333c8: 683b ldr r3, [r7, #0] - 80333ca: 429a cmp r2, r3 - 80333cc: d204 bcs.n 80333d8 <_out_buffer+0x22> + 8033332: 687a ldr r2, [r7, #4] + 8033334: 683b ldr r3, [r7, #0] + 8033336: 429a cmp r2, r3 + 8033338: d204 bcs.n 8033344 <_out_buffer+0x22> ((char *)buffer)[idx] = character; - 80333ce: 68ba ldr r2, [r7, #8] - 80333d0: 687b ldr r3, [r7, #4] - 80333d2: 4413 add r3, r2 - 80333d4: 7bfa ldrb r2, [r7, #15] - 80333d6: 701a strb r2, [r3, #0] + 803333a: 68ba ldr r2, [r7, #8] + 803333c: 687b ldr r3, [r7, #4] + 803333e: 4413 add r3, r2 + 8033340: 7bfa ldrb r2, [r7, #15] + 8033342: 701a strb r2, [r3, #0] } } - 80333d8: bf00 nop - 80333da: 3714 adds r7, #20 - 80333dc: 46bd mov sp, r7 - 80333de: bc80 pop {r7} - 80333e0: 4770 bx lr + 8033344: bf00 nop + 8033346: 3714 adds r7, #20 + 8033348: 46bd mov sp, r7 + 803334a: bc80 pop {r7} + 803334c: 4770 bx lr -080333e2 <_out_null>: +0803334e <_out_null>: // internal null output static inline void _out_null(char character, void * buffer, size_t idx, size_t maxlen) { - 80333e2: b480 push {r7} - 80333e4: b085 sub sp, #20 - 80333e6: af00 add r7, sp, #0 - 80333e8: 60b9 str r1, [r7, #8] - 80333ea: 607a str r2, [r7, #4] - 80333ec: 603b str r3, [r7, #0] - 80333ee: 4603 mov r3, r0 - 80333f0: 73fb strb r3, [r7, #15] + 803334e: b480 push {r7} + 8033350: b085 sub sp, #20 + 8033352: af00 add r7, sp, #0 + 8033354: 60b9 str r1, [r7, #8] + 8033356: 607a str r2, [r7, #4] + 8033358: 603b str r3, [r7, #0] + 803335a: 4603 mov r3, r0 + 803335c: 73fb strb r3, [r7, #15] LV_UNUSED(character); LV_UNUSED(buffer); LV_UNUSED(idx); LV_UNUSED(maxlen); } - 80333f2: bf00 nop - 80333f4: 3714 adds r7, #20 - 80333f6: 46bd mov sp, r7 - 80333f8: bc80 pop {r7} - 80333fa: 4770 bx lr + 803335e: bf00 nop + 8033360: 3714 adds r7, #20 + 8033362: 46bd mov sp, r7 + 8033364: bc80 pop {r7} + 8033366: 4770 bx lr -080333fc <_strnlen_s>: +08033368 <_strnlen_s>: // internal secure strlen // \return The length of the string (excluding the terminating 0) limited by 'maxsize' static inline unsigned int _strnlen_s(const char * str, size_t maxsize) { - 80333fc: b480 push {r7} - 80333fe: b085 sub sp, #20 - 8033400: af00 add r7, sp, #0 - 8033402: 6078 str r0, [r7, #4] - 8033404: 6039 str r1, [r7, #0] + 8033368: b480 push {r7} + 803336a: b085 sub sp, #20 + 803336c: af00 add r7, sp, #0 + 803336e: 6078 str r0, [r7, #4] + 8033370: 6039 str r1, [r7, #0] const char * s; for(s = str; *s && maxsize--; ++s); - 8033406: 687b ldr r3, [r7, #4] - 8033408: 60fb str r3, [r7, #12] - 803340a: e002 b.n 8033412 <_strnlen_s+0x16> - 803340c: 68fb ldr r3, [r7, #12] - 803340e: 3301 adds r3, #1 - 8033410: 60fb str r3, [r7, #12] - 8033412: 68fb ldr r3, [r7, #12] - 8033414: 781b ldrb r3, [r3, #0] - 8033416: 2b00 cmp r3, #0 - 8033418: d004 beq.n 8033424 <_strnlen_s+0x28> - 803341a: 683b ldr r3, [r7, #0] - 803341c: 1e5a subs r2, r3, #1 - 803341e: 603a str r2, [r7, #0] - 8033420: 2b00 cmp r3, #0 - 8033422: d1f3 bne.n 803340c <_strnlen_s+0x10> + 8033372: 687b ldr r3, [r7, #4] + 8033374: 60fb str r3, [r7, #12] + 8033376: e002 b.n 803337e <_strnlen_s+0x16> + 8033378: 68fb ldr r3, [r7, #12] + 803337a: 3301 adds r3, #1 + 803337c: 60fb str r3, [r7, #12] + 803337e: 68fb ldr r3, [r7, #12] + 8033380: 781b ldrb r3, [r3, #0] + 8033382: 2b00 cmp r3, #0 + 8033384: d004 beq.n 8033390 <_strnlen_s+0x28> + 8033386: 683b ldr r3, [r7, #0] + 8033388: 1e5a subs r2, r3, #1 + 803338a: 603a str r2, [r7, #0] + 803338c: 2b00 cmp r3, #0 + 803338e: d1f3 bne.n 8033378 <_strnlen_s+0x10> return (unsigned int)(s - str); - 8033424: 68fa ldr r2, [r7, #12] - 8033426: 687b ldr r3, [r7, #4] - 8033428: 1ad3 subs r3, r2, r3 + 8033390: 68fa ldr r2, [r7, #12] + 8033392: 687b ldr r3, [r7, #4] + 8033394: 1ad3 subs r3, r2, r3 } - 803342a: 4618 mov r0, r3 - 803342c: 3714 adds r7, #20 - 803342e: 46bd mov sp, r7 - 8033430: bc80 pop {r7} - 8033432: 4770 bx lr + 8033396: 4618 mov r0, r3 + 8033398: 3714 adds r7, #20 + 803339a: 46bd mov sp, r7 + 803339c: bc80 pop {r7} + 803339e: 4770 bx lr -08033434 <_is_digit>: +080333a0 <_is_digit>: // internal test if char is a digit (0-9) // \return true if char is a digit static inline bool _is_digit(char ch) { - 8033434: b480 push {r7} - 8033436: b083 sub sp, #12 - 8033438: af00 add r7, sp, #0 - 803343a: 4603 mov r3, r0 - 803343c: 71fb strb r3, [r7, #7] + 80333a0: b480 push {r7} + 80333a2: b083 sub sp, #12 + 80333a4: af00 add r7, sp, #0 + 80333a6: 4603 mov r3, r0 + 80333a8: 71fb strb r3, [r7, #7] return (ch >= '0') && (ch <= '9'); - 803343e: 79fb ldrb r3, [r7, #7] - 8033440: 2b2f cmp r3, #47 ; 0x2f - 8033442: d904 bls.n 803344e <_is_digit+0x1a> - 8033444: 79fb ldrb r3, [r7, #7] - 8033446: 2b39 cmp r3, #57 ; 0x39 - 8033448: d801 bhi.n 803344e <_is_digit+0x1a> - 803344a: 2301 movs r3, #1 - 803344c: e000 b.n 8033450 <_is_digit+0x1c> - 803344e: 2300 movs r3, #0 - 8033450: f003 0301 and.w r3, r3, #1 - 8033454: b2db uxtb r3, r3 + 80333aa: 79fb ldrb r3, [r7, #7] + 80333ac: 2b2f cmp r3, #47 ; 0x2f + 80333ae: d904 bls.n 80333ba <_is_digit+0x1a> + 80333b0: 79fb ldrb r3, [r7, #7] + 80333b2: 2b39 cmp r3, #57 ; 0x39 + 80333b4: d801 bhi.n 80333ba <_is_digit+0x1a> + 80333b6: 2301 movs r3, #1 + 80333b8: e000 b.n 80333bc <_is_digit+0x1c> + 80333ba: 2300 movs r3, #0 + 80333bc: f003 0301 and.w r3, r3, #1 + 80333c0: b2db uxtb r3, r3 } - 8033456: 4618 mov r0, r3 - 8033458: 370c adds r7, #12 - 803345a: 46bd mov sp, r7 - 803345c: bc80 pop {r7} - 803345e: 4770 bx lr + 80333c2: 4618 mov r0, r3 + 80333c4: 370c adds r7, #12 + 80333c6: 46bd mov sp, r7 + 80333c8: bc80 pop {r7} + 80333ca: 4770 bx lr -08033460 <_atoi>: +080333cc <_atoi>: // internal ASCII string to unsigned int conversion static unsigned int _atoi(const char ** str) { - 8033460: b580 push {r7, lr} - 8033462: b084 sub sp, #16 - 8033464: af00 add r7, sp, #0 - 8033466: 6078 str r0, [r7, #4] + 80333cc: b580 push {r7, lr} + 80333ce: b084 sub sp, #16 + 80333d0: af00 add r7, sp, #0 + 80333d2: 6078 str r0, [r7, #4] unsigned int i = 0U; - 8033468: 2300 movs r3, #0 - 803346a: 60fb str r3, [r7, #12] + 80333d4: 2300 movs r3, #0 + 80333d6: 60fb str r3, [r7, #12] while(_is_digit(**str)) { - 803346c: e00e b.n 803348c <_atoi+0x2c> + 80333d8: e00e b.n 80333f8 <_atoi+0x2c> i = i * 10U + (unsigned int)(*((*str)++) - '0'); - 803346e: 68fa ldr r2, [r7, #12] - 8033470: 4613 mov r3, r2 - 8033472: 009b lsls r3, r3, #2 - 8033474: 4413 add r3, r2 - 8033476: 005b lsls r3, r3, #1 - 8033478: 4618 mov r0, r3 - 803347a: 687b ldr r3, [r7, #4] - 803347c: 681b ldr r3, [r3, #0] - 803347e: 1c59 adds r1, r3, #1 - 8033480: 687a ldr r2, [r7, #4] - 8033482: 6011 str r1, [r2, #0] - 8033484: 781b ldrb r3, [r3, #0] - 8033486: 4403 add r3, r0 - 8033488: 3b30 subs r3, #48 ; 0x30 - 803348a: 60fb str r3, [r7, #12] + 80333da: 68fa ldr r2, [r7, #12] + 80333dc: 4613 mov r3, r2 + 80333de: 009b lsls r3, r3, #2 + 80333e0: 4413 add r3, r2 + 80333e2: 005b lsls r3, r3, #1 + 80333e4: 4618 mov r0, r3 + 80333e6: 687b ldr r3, [r7, #4] + 80333e8: 681b ldr r3, [r3, #0] + 80333ea: 1c59 adds r1, r3, #1 + 80333ec: 687a ldr r2, [r7, #4] + 80333ee: 6011 str r1, [r2, #0] + 80333f0: 781b ldrb r3, [r3, #0] + 80333f2: 4403 add r3, r0 + 80333f4: 3b30 subs r3, #48 ; 0x30 + 80333f6: 60fb str r3, [r7, #12] while(_is_digit(**str)) { - 803348c: 687b ldr r3, [r7, #4] - 803348e: 681b ldr r3, [r3, #0] - 8033490: 781b ldrb r3, [r3, #0] - 8033492: 4618 mov r0, r3 - 8033494: f7ff ffce bl 8033434 <_is_digit> - 8033498: 4603 mov r3, r0 - 803349a: 2b00 cmp r3, #0 - 803349c: d1e7 bne.n 803346e <_atoi+0xe> + 80333f8: 687b ldr r3, [r7, #4] + 80333fa: 681b ldr r3, [r3, #0] + 80333fc: 781b ldrb r3, [r3, #0] + 80333fe: 4618 mov r0, r3 + 8033400: f7ff ffce bl 80333a0 <_is_digit> + 8033404: 4603 mov r3, r0 + 8033406: 2b00 cmp r3, #0 + 8033408: d1e7 bne.n 80333da <_atoi+0xe> } return i; - 803349e: 68fb ldr r3, [r7, #12] + 803340a: 68fb ldr r3, [r7, #12] } - 80334a0: 4618 mov r0, r3 - 80334a2: 3710 adds r7, #16 - 80334a4: 46bd mov sp, r7 - 80334a6: bd80 pop {r7, pc} + 803340c: 4618 mov r0, r3 + 803340e: 3710 adds r7, #16 + 8033410: 46bd mov sp, r7 + 8033412: bd80 pop {r7, pc} -080334a8 <_out_rev>: +08033414 <_out_rev>: // output the specified string in reverse, taking care of any zero-padding static size_t _out_rev(out_fct_type out, char * buffer, size_t idx, size_t maxlen, const char * buf, size_t len, unsigned int width, unsigned int flags) { - 80334a8: b590 push {r4, r7, lr} - 80334aa: b087 sub sp, #28 - 80334ac: af00 add r7, sp, #0 - 80334ae: 60f8 str r0, [r7, #12] - 80334b0: 60b9 str r1, [r7, #8] - 80334b2: 607a str r2, [r7, #4] - 80334b4: 603b str r3, [r7, #0] + 8033414: b590 push {r4, r7, lr} + 8033416: b087 sub sp, #28 + 8033418: af00 add r7, sp, #0 + 803341a: 60f8 str r0, [r7, #12] + 803341c: 60b9 str r1, [r7, #8] + 803341e: 607a str r2, [r7, #4] + 8033420: 603b str r3, [r7, #0] const size_t start_idx = idx; - 80334b6: 687b ldr r3, [r7, #4] - 80334b8: 613b str r3, [r7, #16] + 8033422: 687b ldr r3, [r7, #4] + 8033424: 613b str r3, [r7, #16] // pad spaces up to given width if(!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) { - 80334ba: 6b7b ldr r3, [r7, #52] ; 0x34 - 80334bc: f003 0302 and.w r3, r3, #2 - 80334c0: 2b00 cmp r3, #0 - 80334c2: d125 bne.n 8033510 <_out_rev+0x68> - 80334c4: 6b7b ldr r3, [r7, #52] ; 0x34 - 80334c6: f003 0301 and.w r3, r3, #1 - 80334ca: 2b00 cmp r3, #0 - 80334cc: d120 bne.n 8033510 <_out_rev+0x68> + 8033426: 6b7b ldr r3, [r7, #52] ; 0x34 + 8033428: f003 0302 and.w r3, r3, #2 + 803342c: 2b00 cmp r3, #0 + 803342e: d125 bne.n 803347c <_out_rev+0x68> + 8033430: 6b7b ldr r3, [r7, #52] ; 0x34 + 8033432: f003 0301 and.w r3, r3, #1 + 8033436: 2b00 cmp r3, #0 + 8033438: d120 bne.n 803347c <_out_rev+0x68> size_t i; for(i = len; i < width; i++) { - 80334ce: 6afb ldr r3, [r7, #44] ; 0x2c - 80334d0: 617b str r3, [r7, #20] - 80334d2: e00a b.n 80334ea <_out_rev+0x42> + 803343a: 6afb ldr r3, [r7, #44] ; 0x2c + 803343c: 617b str r3, [r7, #20] + 803343e: e00a b.n 8033456 <_out_rev+0x42> out(' ', buffer, idx++, maxlen); - 80334d4: 687a ldr r2, [r7, #4] - 80334d6: 1c53 adds r3, r2, #1 - 80334d8: 607b str r3, [r7, #4] - 80334da: 68fc ldr r4, [r7, #12] - 80334dc: 683b ldr r3, [r7, #0] - 80334de: 68b9 ldr r1, [r7, #8] - 80334e0: 2020 movs r0, #32 - 80334e2: 47a0 blx r4 + 8033440: 687a ldr r2, [r7, #4] + 8033442: 1c53 adds r3, r2, #1 + 8033444: 607b str r3, [r7, #4] + 8033446: 68fc ldr r4, [r7, #12] + 8033448: 683b ldr r3, [r7, #0] + 803344a: 68b9 ldr r1, [r7, #8] + 803344c: 2020 movs r0, #32 + 803344e: 47a0 blx r4 for(i = len; i < width; i++) { - 80334e4: 697b ldr r3, [r7, #20] - 80334e6: 3301 adds r3, #1 - 80334e8: 617b str r3, [r7, #20] - 80334ea: 697a ldr r2, [r7, #20] - 80334ec: 6b3b ldr r3, [r7, #48] ; 0x30 - 80334ee: 429a cmp r2, r3 - 80334f0: d3f0 bcc.n 80334d4 <_out_rev+0x2c> + 8033450: 697b ldr r3, [r7, #20] + 8033452: 3301 adds r3, #1 + 8033454: 617b str r3, [r7, #20] + 8033456: 697a ldr r2, [r7, #20] + 8033458: 6b3b ldr r3, [r7, #48] ; 0x30 + 803345a: 429a cmp r2, r3 + 803345c: d3f0 bcc.n 8033440 <_out_rev+0x2c> } } // reverse string while(len) { - 80334f2: e00d b.n 8033510 <_out_rev+0x68> + 803345e: e00d b.n 803347c <_out_rev+0x68> out(buf[--len], buffer, idx++, maxlen); - 80334f4: 6afb ldr r3, [r7, #44] ; 0x2c - 80334f6: 3b01 subs r3, #1 - 80334f8: 62fb str r3, [r7, #44] ; 0x2c - 80334fa: 6aba ldr r2, [r7, #40] ; 0x28 - 80334fc: 6afb ldr r3, [r7, #44] ; 0x2c - 80334fe: 4413 add r3, r2 - 8033500: 7818 ldrb r0, [r3, #0] - 8033502: 687a ldr r2, [r7, #4] - 8033504: 1c53 adds r3, r2, #1 - 8033506: 607b str r3, [r7, #4] - 8033508: 68fc ldr r4, [r7, #12] - 803350a: 683b ldr r3, [r7, #0] - 803350c: 68b9 ldr r1, [r7, #8] - 803350e: 47a0 blx r4 + 8033460: 6afb ldr r3, [r7, #44] ; 0x2c + 8033462: 3b01 subs r3, #1 + 8033464: 62fb str r3, [r7, #44] ; 0x2c + 8033466: 6aba ldr r2, [r7, #40] ; 0x28 + 8033468: 6afb ldr r3, [r7, #44] ; 0x2c + 803346a: 4413 add r3, r2 + 803346c: 7818 ldrb r0, [r3, #0] + 803346e: 687a ldr r2, [r7, #4] + 8033470: 1c53 adds r3, r2, #1 + 8033472: 607b str r3, [r7, #4] + 8033474: 68fc ldr r4, [r7, #12] + 8033476: 683b ldr r3, [r7, #0] + 8033478: 68b9 ldr r1, [r7, #8] + 803347a: 47a0 blx r4 while(len) { - 8033510: 6afb ldr r3, [r7, #44] ; 0x2c - 8033512: 2b00 cmp r3, #0 - 8033514: d1ee bne.n 80334f4 <_out_rev+0x4c> + 803347c: 6afb ldr r3, [r7, #44] ; 0x2c + 803347e: 2b00 cmp r3, #0 + 8033480: d1ee bne.n 8033460 <_out_rev+0x4c> } // append pad spaces up to given width if(flags & FLAGS_LEFT) { - 8033516: 6b7b ldr r3, [r7, #52] ; 0x34 - 8033518: f003 0302 and.w r3, r3, #2 - 803351c: 2b00 cmp r3, #0 - 803351e: d00e beq.n 803353e <_out_rev+0x96> + 8033482: 6b7b ldr r3, [r7, #52] ; 0x34 + 8033484: f003 0302 and.w r3, r3, #2 + 8033488: 2b00 cmp r3, #0 + 803348a: d00e beq.n 80334aa <_out_rev+0x96> while(idx - start_idx < width) { - 8033520: e007 b.n 8033532 <_out_rev+0x8a> + 803348c: e007 b.n 803349e <_out_rev+0x8a> out(' ', buffer, idx++, maxlen); - 8033522: 687a ldr r2, [r7, #4] - 8033524: 1c53 adds r3, r2, #1 - 8033526: 607b str r3, [r7, #4] - 8033528: 68fc ldr r4, [r7, #12] - 803352a: 683b ldr r3, [r7, #0] - 803352c: 68b9 ldr r1, [r7, #8] - 803352e: 2020 movs r0, #32 - 8033530: 47a0 blx r4 + 803348e: 687a ldr r2, [r7, #4] + 8033490: 1c53 adds r3, r2, #1 + 8033492: 607b str r3, [r7, #4] + 8033494: 68fc ldr r4, [r7, #12] + 8033496: 683b ldr r3, [r7, #0] + 8033498: 68b9 ldr r1, [r7, #8] + 803349a: 2020 movs r0, #32 + 803349c: 47a0 blx r4 while(idx - start_idx < width) { - 8033532: 687a ldr r2, [r7, #4] - 8033534: 693b ldr r3, [r7, #16] - 8033536: 1ad3 subs r3, r2, r3 - 8033538: 6b3a ldr r2, [r7, #48] ; 0x30 - 803353a: 429a cmp r2, r3 - 803353c: d8f1 bhi.n 8033522 <_out_rev+0x7a> + 803349e: 687a ldr r2, [r7, #4] + 80334a0: 693b ldr r3, [r7, #16] + 80334a2: 1ad3 subs r3, r2, r3 + 80334a4: 6b3a ldr r2, [r7, #48] ; 0x30 + 80334a6: 429a cmp r2, r3 + 80334a8: d8f1 bhi.n 803348e <_out_rev+0x7a> } } return idx; - 803353e: 687b ldr r3, [r7, #4] + 80334aa: 687b ldr r3, [r7, #4] } - 8033540: 4618 mov r0, r3 - 8033542: 371c adds r7, #28 - 8033544: 46bd mov sp, r7 - 8033546: bd90 pop {r4, r7, pc} + 80334ac: 4618 mov r0, r3 + 80334ae: 371c adds r7, #28 + 80334b0: 46bd mov sp, r7 + 80334b2: bd90 pop {r4, r7, pc} -08033548 <_ntoa_format>: +080334b4 <_ntoa_format>: // internal itoa format static size_t _ntoa_format(out_fct_type out, char * buffer, size_t idx, size_t maxlen, char * buf, size_t len, bool negative, unsigned int base, unsigned int prec, unsigned int width, unsigned int flags) { - 8033548: b580 push {r7, lr} - 803354a: b088 sub sp, #32 - 803354c: af04 add r7, sp, #16 - 803354e: 60f8 str r0, [r7, #12] - 8033550: 60b9 str r1, [r7, #8] - 8033552: 607a str r2, [r7, #4] - 8033554: 603b str r3, [r7, #0] + 80334b4: b580 push {r7, lr} + 80334b6: b088 sub sp, #32 + 80334b8: af04 add r7, sp, #16 + 80334ba: 60f8 str r0, [r7, #12] + 80334bc: 60b9 str r1, [r7, #8] + 80334be: 607a str r2, [r7, #4] + 80334c0: 603b str r3, [r7, #0] // pad leading zeros if(!(flags & FLAGS_LEFT)) { - 8033556: 6b3b ldr r3, [r7, #48] ; 0x30 - 8033558: f003 0302 and.w r3, r3, #2 - 803355c: 2b00 cmp r3, #0 - 803355e: d136 bne.n 80335ce <_ntoa_format+0x86> + 80334c2: 6b3b ldr r3, [r7, #48] ; 0x30 + 80334c4: f003 0302 and.w r3, r3, #2 + 80334c8: 2b00 cmp r3, #0 + 80334ca: d136 bne.n 803353a <_ntoa_format+0x86> if(width && (flags & FLAGS_ZEROPAD) && (negative || (flags & (FLAGS_PLUS | FLAGS_SPACE)))) { - 8033560: 6afb ldr r3, [r7, #44] ; 0x2c - 8033562: 2b00 cmp r3, #0 - 8033564: d018 beq.n 8033598 <_ntoa_format+0x50> - 8033566: 6b3b ldr r3, [r7, #48] ; 0x30 - 8033568: f003 0301 and.w r3, r3, #1 - 803356c: 2b00 cmp r3, #0 - 803356e: d013 beq.n 8033598 <_ntoa_format+0x50> - 8033570: f897 3020 ldrb.w r3, [r7, #32] - 8033574: 2b00 cmp r3, #0 - 8033576: d104 bne.n 8033582 <_ntoa_format+0x3a> - 8033578: 6b3b ldr r3, [r7, #48] ; 0x30 - 803357a: f003 030c and.w r3, r3, #12 - 803357e: 2b00 cmp r3, #0 - 8033580: d00a beq.n 8033598 <_ntoa_format+0x50> + 80334cc: 6afb ldr r3, [r7, #44] ; 0x2c + 80334ce: 2b00 cmp r3, #0 + 80334d0: d018 beq.n 8033504 <_ntoa_format+0x50> + 80334d2: 6b3b ldr r3, [r7, #48] ; 0x30 + 80334d4: f003 0301 and.w r3, r3, #1 + 80334d8: 2b00 cmp r3, #0 + 80334da: d013 beq.n 8033504 <_ntoa_format+0x50> + 80334dc: f897 3020 ldrb.w r3, [r7, #32] + 80334e0: 2b00 cmp r3, #0 + 80334e2: d104 bne.n 80334ee <_ntoa_format+0x3a> + 80334e4: 6b3b ldr r3, [r7, #48] ; 0x30 + 80334e6: f003 030c and.w r3, r3, #12 + 80334ea: 2b00 cmp r3, #0 + 80334ec: d00a beq.n 8033504 <_ntoa_format+0x50> width--; - 8033582: 6afb ldr r3, [r7, #44] ; 0x2c - 8033584: 3b01 subs r3, #1 - 8033586: 62fb str r3, [r7, #44] ; 0x2c + 80334ee: 6afb ldr r3, [r7, #44] ; 0x2c + 80334f0: 3b01 subs r3, #1 + 80334f2: 62fb str r3, [r7, #44] ; 0x2c } while((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - 8033588: e006 b.n 8033598 <_ntoa_format+0x50> + 80334f4: e006 b.n 8033504 <_ntoa_format+0x50> buf[len++] = '0'; - 803358a: 69fb ldr r3, [r7, #28] - 803358c: 1c5a adds r2, r3, #1 - 803358e: 61fa str r2, [r7, #28] - 8033590: 69ba ldr r2, [r7, #24] - 8033592: 4413 add r3, r2 - 8033594: 2230 movs r2, #48 ; 0x30 - 8033596: 701a strb r2, [r3, #0] + 80334f6: 69fb ldr r3, [r7, #28] + 80334f8: 1c5a adds r2, r3, #1 + 80334fa: 61fa str r2, [r7, #28] + 80334fc: 69ba ldr r2, [r7, #24] + 80334fe: 4413 add r3, r2 + 8033500: 2230 movs r2, #48 ; 0x30 + 8033502: 701a strb r2, [r3, #0] while((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - 8033598: 69fa ldr r2, [r7, #28] - 803359a: 6abb ldr r3, [r7, #40] ; 0x28 - 803359c: 429a cmp r2, r3 - 803359e: d20a bcs.n 80335b6 <_ntoa_format+0x6e> - 80335a0: 69fb ldr r3, [r7, #28] - 80335a2: 2b1f cmp r3, #31 - 80335a4: d9f1 bls.n 803358a <_ntoa_format+0x42> + 8033504: 69fa ldr r2, [r7, #28] + 8033506: 6abb ldr r3, [r7, #40] ; 0x28 + 8033508: 429a cmp r2, r3 + 803350a: d20a bcs.n 8033522 <_ntoa_format+0x6e> + 803350c: 69fb ldr r3, [r7, #28] + 803350e: 2b1f cmp r3, #31 + 8033510: d9f1 bls.n 80334f6 <_ntoa_format+0x42> } while((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - 80335a6: e006 b.n 80335b6 <_ntoa_format+0x6e> + 8033512: e006 b.n 8033522 <_ntoa_format+0x6e> buf[len++] = '0'; - 80335a8: 69fb ldr r3, [r7, #28] - 80335aa: 1c5a adds r2, r3, #1 - 80335ac: 61fa str r2, [r7, #28] - 80335ae: 69ba ldr r2, [r7, #24] - 80335b0: 4413 add r3, r2 - 80335b2: 2230 movs r2, #48 ; 0x30 - 80335b4: 701a strb r2, [r3, #0] + 8033514: 69fb ldr r3, [r7, #28] + 8033516: 1c5a adds r2, r3, #1 + 8033518: 61fa str r2, [r7, #28] + 803351a: 69ba ldr r2, [r7, #24] + 803351c: 4413 add r3, r2 + 803351e: 2230 movs r2, #48 ; 0x30 + 8033520: 701a strb r2, [r3, #0] while((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - 80335b6: 6b3b ldr r3, [r7, #48] ; 0x30 - 80335b8: f003 0301 and.w r3, r3, #1 - 80335bc: 2b00 cmp r3, #0 - 80335be: d006 beq.n 80335ce <_ntoa_format+0x86> - 80335c0: 69fa ldr r2, [r7, #28] - 80335c2: 6afb ldr r3, [r7, #44] ; 0x2c - 80335c4: 429a cmp r2, r3 - 80335c6: d202 bcs.n 80335ce <_ntoa_format+0x86> - 80335c8: 69fb ldr r3, [r7, #28] - 80335ca: 2b1f cmp r3, #31 - 80335cc: d9ec bls.n 80335a8 <_ntoa_format+0x60> + 8033522: 6b3b ldr r3, [r7, #48] ; 0x30 + 8033524: f003 0301 and.w r3, r3, #1 + 8033528: 2b00 cmp r3, #0 + 803352a: d006 beq.n 803353a <_ntoa_format+0x86> + 803352c: 69fa ldr r2, [r7, #28] + 803352e: 6afb ldr r3, [r7, #44] ; 0x2c + 8033530: 429a cmp r2, r3 + 8033532: d202 bcs.n 803353a <_ntoa_format+0x86> + 8033534: 69fb ldr r3, [r7, #28] + 8033536: 2b1f cmp r3, #31 + 8033538: d9ec bls.n 8033514 <_ntoa_format+0x60> } } // handle hash if(flags & FLAGS_HASH) { - 80335ce: 6b3b ldr r3, [r7, #48] ; 0x30 - 80335d0: f003 0310 and.w r3, r3, #16 - 80335d4: 2b00 cmp r3, #0 - 80335d6: d058 beq.n 803368a <_ntoa_format+0x142> + 803353a: 6b3b ldr r3, [r7, #48] ; 0x30 + 803353c: f003 0310 and.w r3, r3, #16 + 8033540: 2b00 cmp r3, #0 + 8033542: d058 beq.n 80335f6 <_ntoa_format+0x142> if(!(flags & FLAGS_PRECISION) && len && ((len == prec) || (len == width))) { - 80335d8: 6b3b ldr r3, [r7, #48] ; 0x30 - 80335da: f403 6380 and.w r3, r3, #1024 ; 0x400 - 80335de: 2b00 cmp r3, #0 - 80335e0: d116 bne.n 8033610 <_ntoa_format+0xc8> - 80335e2: 69fb ldr r3, [r7, #28] - 80335e4: 2b00 cmp r3, #0 - 80335e6: d013 beq.n 8033610 <_ntoa_format+0xc8> - 80335e8: 69fa ldr r2, [r7, #28] - 80335ea: 6abb ldr r3, [r7, #40] ; 0x28 - 80335ec: 429a cmp r2, r3 - 80335ee: d003 beq.n 80335f8 <_ntoa_format+0xb0> - 80335f0: 69fa ldr r2, [r7, #28] - 80335f2: 6afb ldr r3, [r7, #44] ; 0x2c - 80335f4: 429a cmp r2, r3 - 80335f6: d10b bne.n 8033610 <_ntoa_format+0xc8> + 8033544: 6b3b ldr r3, [r7, #48] ; 0x30 + 8033546: f403 6380 and.w r3, r3, #1024 ; 0x400 + 803354a: 2b00 cmp r3, #0 + 803354c: d116 bne.n 803357c <_ntoa_format+0xc8> + 803354e: 69fb ldr r3, [r7, #28] + 8033550: 2b00 cmp r3, #0 + 8033552: d013 beq.n 803357c <_ntoa_format+0xc8> + 8033554: 69fa ldr r2, [r7, #28] + 8033556: 6abb ldr r3, [r7, #40] ; 0x28 + 8033558: 429a cmp r2, r3 + 803355a: d003 beq.n 8033564 <_ntoa_format+0xb0> + 803355c: 69fa ldr r2, [r7, #28] + 803355e: 6afb ldr r3, [r7, #44] ; 0x2c + 8033560: 429a cmp r2, r3 + 8033562: d10b bne.n 803357c <_ntoa_format+0xc8> len--; - 80335f8: 69fb ldr r3, [r7, #28] - 80335fa: 3b01 subs r3, #1 - 80335fc: 61fb str r3, [r7, #28] + 8033564: 69fb ldr r3, [r7, #28] + 8033566: 3b01 subs r3, #1 + 8033568: 61fb str r3, [r7, #28] if(len && (base == 16U)) { - 80335fe: 69fb ldr r3, [r7, #28] - 8033600: 2b00 cmp r3, #0 - 8033602: d005 beq.n 8033610 <_ntoa_format+0xc8> - 8033604: 6a7b ldr r3, [r7, #36] ; 0x24 - 8033606: 2b10 cmp r3, #16 - 8033608: d102 bne.n 8033610 <_ntoa_format+0xc8> + 803356a: 69fb ldr r3, [r7, #28] + 803356c: 2b00 cmp r3, #0 + 803356e: d005 beq.n 803357c <_ntoa_format+0xc8> + 8033570: 6a7b ldr r3, [r7, #36] ; 0x24 + 8033572: 2b10 cmp r3, #16 + 8033574: d102 bne.n 803357c <_ntoa_format+0xc8> len--; - 803360a: 69fb ldr r3, [r7, #28] - 803360c: 3b01 subs r3, #1 - 803360e: 61fb str r3, [r7, #28] + 8033576: 69fb ldr r3, [r7, #28] + 8033578: 3b01 subs r3, #1 + 803357a: 61fb str r3, [r7, #28] } } if((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - 8033610: 6a7b ldr r3, [r7, #36] ; 0x24 - 8033612: 2b10 cmp r3, #16 - 8033614: d10f bne.n 8033636 <_ntoa_format+0xee> - 8033616: 6b3b ldr r3, [r7, #48] ; 0x30 - 8033618: f003 0320 and.w r3, r3, #32 - 803361c: 2b00 cmp r3, #0 - 803361e: d10a bne.n 8033636 <_ntoa_format+0xee> - 8033620: 69fb ldr r3, [r7, #28] - 8033622: 2b1f cmp r3, #31 - 8033624: d807 bhi.n 8033636 <_ntoa_format+0xee> + 803357c: 6a7b ldr r3, [r7, #36] ; 0x24 + 803357e: 2b10 cmp r3, #16 + 8033580: d10f bne.n 80335a2 <_ntoa_format+0xee> + 8033582: 6b3b ldr r3, [r7, #48] ; 0x30 + 8033584: f003 0320 and.w r3, r3, #32 + 8033588: 2b00 cmp r3, #0 + 803358a: d10a bne.n 80335a2 <_ntoa_format+0xee> + 803358c: 69fb ldr r3, [r7, #28] + 803358e: 2b1f cmp r3, #31 + 8033590: d807 bhi.n 80335a2 <_ntoa_format+0xee> buf[len++] = 'x'; - 8033626: 69fb ldr r3, [r7, #28] - 8033628: 1c5a adds r2, r3, #1 - 803362a: 61fa str r2, [r7, #28] - 803362c: 69ba ldr r2, [r7, #24] - 803362e: 4413 add r3, r2 - 8033630: 2278 movs r2, #120 ; 0x78 - 8033632: 701a strb r2, [r3, #0] - 8033634: e01f b.n 8033676 <_ntoa_format+0x12e> + 8033592: 69fb ldr r3, [r7, #28] + 8033594: 1c5a adds r2, r3, #1 + 8033596: 61fa str r2, [r7, #28] + 8033598: 69ba ldr r2, [r7, #24] + 803359a: 4413 add r3, r2 + 803359c: 2278 movs r2, #120 ; 0x78 + 803359e: 701a strb r2, [r3, #0] + 80335a0: e01f b.n 80335e2 <_ntoa_format+0x12e> } else if((base == 16U) && (flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - 8033636: 6a7b ldr r3, [r7, #36] ; 0x24 - 8033638: 2b10 cmp r3, #16 - 803363a: d10f bne.n 803365c <_ntoa_format+0x114> - 803363c: 6b3b ldr r3, [r7, #48] ; 0x30 - 803363e: f003 0320 and.w r3, r3, #32 - 8033642: 2b00 cmp r3, #0 - 8033644: d00a beq.n 803365c <_ntoa_format+0x114> - 8033646: 69fb ldr r3, [r7, #28] - 8033648: 2b1f cmp r3, #31 - 803364a: d807 bhi.n 803365c <_ntoa_format+0x114> + 80335a2: 6a7b ldr r3, [r7, #36] ; 0x24 + 80335a4: 2b10 cmp r3, #16 + 80335a6: d10f bne.n 80335c8 <_ntoa_format+0x114> + 80335a8: 6b3b ldr r3, [r7, #48] ; 0x30 + 80335aa: f003 0320 and.w r3, r3, #32 + 80335ae: 2b00 cmp r3, #0 + 80335b0: d00a beq.n 80335c8 <_ntoa_format+0x114> + 80335b2: 69fb ldr r3, [r7, #28] + 80335b4: 2b1f cmp r3, #31 + 80335b6: d807 bhi.n 80335c8 <_ntoa_format+0x114> buf[len++] = 'X'; - 803364c: 69fb ldr r3, [r7, #28] - 803364e: 1c5a adds r2, r3, #1 - 8033650: 61fa str r2, [r7, #28] - 8033652: 69ba ldr r2, [r7, #24] - 8033654: 4413 add r3, r2 - 8033656: 2258 movs r2, #88 ; 0x58 - 8033658: 701a strb r2, [r3, #0] - 803365a: e00c b.n 8033676 <_ntoa_format+0x12e> + 80335b8: 69fb ldr r3, [r7, #28] + 80335ba: 1c5a adds r2, r3, #1 + 80335bc: 61fa str r2, [r7, #28] + 80335be: 69ba ldr r2, [r7, #24] + 80335c0: 4413 add r3, r2 + 80335c2: 2258 movs r2, #88 ; 0x58 + 80335c4: 701a strb r2, [r3, #0] + 80335c6: e00c b.n 80335e2 <_ntoa_format+0x12e> } else if((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - 803365c: 6a7b ldr r3, [r7, #36] ; 0x24 - 803365e: 2b02 cmp r3, #2 - 8033660: d109 bne.n 8033676 <_ntoa_format+0x12e> - 8033662: 69fb ldr r3, [r7, #28] - 8033664: 2b1f cmp r3, #31 - 8033666: d806 bhi.n 8033676 <_ntoa_format+0x12e> + 80335c8: 6a7b ldr r3, [r7, #36] ; 0x24 + 80335ca: 2b02 cmp r3, #2 + 80335cc: d109 bne.n 80335e2 <_ntoa_format+0x12e> + 80335ce: 69fb ldr r3, [r7, #28] + 80335d0: 2b1f cmp r3, #31 + 80335d2: d806 bhi.n 80335e2 <_ntoa_format+0x12e> buf[len++] = 'b'; - 8033668: 69fb ldr r3, [r7, #28] - 803366a: 1c5a adds r2, r3, #1 - 803366c: 61fa str r2, [r7, #28] - 803366e: 69ba ldr r2, [r7, #24] - 8033670: 4413 add r3, r2 - 8033672: 2262 movs r2, #98 ; 0x62 - 8033674: 701a strb r2, [r3, #0] + 80335d4: 69fb ldr r3, [r7, #28] + 80335d6: 1c5a adds r2, r3, #1 + 80335d8: 61fa str r2, [r7, #28] + 80335da: 69ba ldr r2, [r7, #24] + 80335dc: 4413 add r3, r2 + 80335de: 2262 movs r2, #98 ; 0x62 + 80335e0: 701a strb r2, [r3, #0] } if(len < PRINTF_NTOA_BUFFER_SIZE) { - 8033676: 69fb ldr r3, [r7, #28] - 8033678: 2b1f cmp r3, #31 - 803367a: d806 bhi.n 803368a <_ntoa_format+0x142> + 80335e2: 69fb ldr r3, [r7, #28] + 80335e4: 2b1f cmp r3, #31 + 80335e6: d806 bhi.n 80335f6 <_ntoa_format+0x142> buf[len++] = '0'; - 803367c: 69fb ldr r3, [r7, #28] - 803367e: 1c5a adds r2, r3, #1 - 8033680: 61fa str r2, [r7, #28] - 8033682: 69ba ldr r2, [r7, #24] - 8033684: 4413 add r3, r2 - 8033686: 2230 movs r2, #48 ; 0x30 - 8033688: 701a strb r2, [r3, #0] + 80335e8: 69fb ldr r3, [r7, #28] + 80335ea: 1c5a adds r2, r3, #1 + 80335ec: 61fa str r2, [r7, #28] + 80335ee: 69ba ldr r2, [r7, #24] + 80335f0: 4413 add r3, r2 + 80335f2: 2230 movs r2, #48 ; 0x30 + 80335f4: 701a strb r2, [r3, #0] } } if(len < PRINTF_NTOA_BUFFER_SIZE) { - 803368a: 69fb ldr r3, [r7, #28] - 803368c: 2b1f cmp r3, #31 - 803368e: d824 bhi.n 80336da <_ntoa_format+0x192> + 80335f6: 69fb ldr r3, [r7, #28] + 80335f8: 2b1f cmp r3, #31 + 80335fa: d824 bhi.n 8033646 <_ntoa_format+0x192> if(negative) { - 8033690: f897 3020 ldrb.w r3, [r7, #32] - 8033694: 2b00 cmp r3, #0 - 8033696: d007 beq.n 80336a8 <_ntoa_format+0x160> + 80335fc: f897 3020 ldrb.w r3, [r7, #32] + 8033600: 2b00 cmp r3, #0 + 8033602: d007 beq.n 8033614 <_ntoa_format+0x160> buf[len++] = '-'; - 8033698: 69fb ldr r3, [r7, #28] - 803369a: 1c5a adds r2, r3, #1 - 803369c: 61fa str r2, [r7, #28] - 803369e: 69ba ldr r2, [r7, #24] - 80336a0: 4413 add r3, r2 - 80336a2: 222d movs r2, #45 ; 0x2d - 80336a4: 701a strb r2, [r3, #0] - 80336a6: e018 b.n 80336da <_ntoa_format+0x192> + 8033604: 69fb ldr r3, [r7, #28] + 8033606: 1c5a adds r2, r3, #1 + 8033608: 61fa str r2, [r7, #28] + 803360a: 69ba ldr r2, [r7, #24] + 803360c: 4413 add r3, r2 + 803360e: 222d movs r2, #45 ; 0x2d + 8033610: 701a strb r2, [r3, #0] + 8033612: e018 b.n 8033646 <_ntoa_format+0x192> } else if(flags & FLAGS_PLUS) { - 80336a8: 6b3b ldr r3, [r7, #48] ; 0x30 - 80336aa: f003 0304 and.w r3, r3, #4 - 80336ae: 2b00 cmp r3, #0 - 80336b0: d007 beq.n 80336c2 <_ntoa_format+0x17a> + 8033614: 6b3b ldr r3, [r7, #48] ; 0x30 + 8033616: f003 0304 and.w r3, r3, #4 + 803361a: 2b00 cmp r3, #0 + 803361c: d007 beq.n 803362e <_ntoa_format+0x17a> buf[len++] = '+'; // ignore the space if the '+' exists - 80336b2: 69fb ldr r3, [r7, #28] - 80336b4: 1c5a adds r2, r3, #1 - 80336b6: 61fa str r2, [r7, #28] - 80336b8: 69ba ldr r2, [r7, #24] - 80336ba: 4413 add r3, r2 - 80336bc: 222b movs r2, #43 ; 0x2b - 80336be: 701a strb r2, [r3, #0] - 80336c0: e00b b.n 80336da <_ntoa_format+0x192> + 803361e: 69fb ldr r3, [r7, #28] + 8033620: 1c5a adds r2, r3, #1 + 8033622: 61fa str r2, [r7, #28] + 8033624: 69ba ldr r2, [r7, #24] + 8033626: 4413 add r3, r2 + 8033628: 222b movs r2, #43 ; 0x2b + 803362a: 701a strb r2, [r3, #0] + 803362c: e00b b.n 8033646 <_ntoa_format+0x192> } else if(flags & FLAGS_SPACE) { - 80336c2: 6b3b ldr r3, [r7, #48] ; 0x30 - 80336c4: f003 0308 and.w r3, r3, #8 - 80336c8: 2b00 cmp r3, #0 - 80336ca: d006 beq.n 80336da <_ntoa_format+0x192> + 803362e: 6b3b ldr r3, [r7, #48] ; 0x30 + 8033630: f003 0308 and.w r3, r3, #8 + 8033634: 2b00 cmp r3, #0 + 8033636: d006 beq.n 8033646 <_ntoa_format+0x192> buf[len++] = ' '; - 80336cc: 69fb ldr r3, [r7, #28] - 80336ce: 1c5a adds r2, r3, #1 - 80336d0: 61fa str r2, [r7, #28] - 80336d2: 69ba ldr r2, [r7, #24] - 80336d4: 4413 add r3, r2 - 80336d6: 2220 movs r2, #32 - 80336d8: 701a strb r2, [r3, #0] + 8033638: 69fb ldr r3, [r7, #28] + 803363a: 1c5a adds r2, r3, #1 + 803363c: 61fa str r2, [r7, #28] + 803363e: 69ba ldr r2, [r7, #24] + 8033640: 4413 add r3, r2 + 8033642: 2220 movs r2, #32 + 8033644: 701a strb r2, [r3, #0] } } return _out_rev(out, buffer, idx, maxlen, buf, len, width, flags); - 80336da: 6b3b ldr r3, [r7, #48] ; 0x30 - 80336dc: 9303 str r3, [sp, #12] - 80336de: 6afb ldr r3, [r7, #44] ; 0x2c - 80336e0: 9302 str r3, [sp, #8] - 80336e2: 69fb ldr r3, [r7, #28] - 80336e4: 9301 str r3, [sp, #4] - 80336e6: 69bb ldr r3, [r7, #24] - 80336e8: 9300 str r3, [sp, #0] - 80336ea: 683b ldr r3, [r7, #0] - 80336ec: 687a ldr r2, [r7, #4] - 80336ee: 68b9 ldr r1, [r7, #8] - 80336f0: 68f8 ldr r0, [r7, #12] - 80336f2: f7ff fed9 bl 80334a8 <_out_rev> - 80336f6: 4603 mov r3, r0 + 8033646: 6b3b ldr r3, [r7, #48] ; 0x30 + 8033648: 9303 str r3, [sp, #12] + 803364a: 6afb ldr r3, [r7, #44] ; 0x2c + 803364c: 9302 str r3, [sp, #8] + 803364e: 69fb ldr r3, [r7, #28] + 8033650: 9301 str r3, [sp, #4] + 8033652: 69bb ldr r3, [r7, #24] + 8033654: 9300 str r3, [sp, #0] + 8033656: 683b ldr r3, [r7, #0] + 8033658: 687a ldr r2, [r7, #4] + 803365a: 68b9 ldr r1, [r7, #8] + 803365c: 68f8 ldr r0, [r7, #12] + 803365e: f7ff fed9 bl 8033414 <_out_rev> + 8033662: 4603 mov r3, r0 } - 80336f8: 4618 mov r0, r3 - 80336fa: 3710 adds r7, #16 - 80336fc: 46bd mov sp, r7 - 80336fe: bd80 pop {r7, pc} + 8033664: 4618 mov r0, r3 + 8033666: 3710 adds r7, #16 + 8033668: 46bd mov sp, r7 + 803366a: bd80 pop {r7, pc} -08033700 <_ntoa_long>: +0803366c <_ntoa_long>: // internal itoa for 'long' type static size_t _ntoa_long(out_fct_type out, char * buffer, size_t idx, size_t maxlen, unsigned long value, bool negative, unsigned long base, unsigned int prec, unsigned int width, unsigned int flags) { - 8033700: b580 push {r7, lr} - 8033702: b096 sub sp, #88 ; 0x58 - 8033704: af08 add r7, sp, #32 - 8033706: 60f8 str r0, [r7, #12] - 8033708: 60b9 str r1, [r7, #8] - 803370a: 607a str r2, [r7, #4] - 803370c: 603b str r3, [r7, #0] + 803366c: b580 push {r7, lr} + 803366e: b096 sub sp, #88 ; 0x58 + 8033670: af08 add r7, sp, #32 + 8033672: 60f8 str r0, [r7, #12] + 8033674: 60b9 str r1, [r7, #8] + 8033676: 607a str r2, [r7, #4] + 8033678: 603b str r3, [r7, #0] char buf[PRINTF_NTOA_BUFFER_SIZE]; size_t len = 0U; - 803370e: 2300 movs r3, #0 - 8033710: 637b str r3, [r7, #52] ; 0x34 + 803367a: 2300 movs r3, #0 + 803367c: 637b str r3, [r7, #52] ; 0x34 // no hash for 0 values if(!value) { - 8033712: 6c3b ldr r3, [r7, #64] ; 0x40 - 8033714: 2b00 cmp r3, #0 - 8033716: d103 bne.n 8033720 <_ntoa_long+0x20> + 803367e: 6c3b ldr r3, [r7, #64] ; 0x40 + 8033680: 2b00 cmp r3, #0 + 8033682: d103 bne.n 803368c <_ntoa_long+0x20> flags &= ~FLAGS_HASH; - 8033718: 6d7b ldr r3, [r7, #84] ; 0x54 - 803371a: f023 0310 bic.w r3, r3, #16 - 803371e: 657b str r3, [r7, #84] ; 0x54 + 8033684: 6d7b ldr r3, [r7, #84] ; 0x54 + 8033686: f023 0310 bic.w r3, r3, #16 + 803368a: 657b str r3, [r7, #84] ; 0x54 } // write if precision != 0 and value is != 0 if(!(flags & FLAGS_PRECISION) || value) { - 8033720: 6d7b ldr r3, [r7, #84] ; 0x54 - 8033722: f403 6380 and.w r3, r3, #1024 ; 0x400 - 8033726: 2b00 cmp r3, #0 - 8033728: d002 beq.n 8033730 <_ntoa_long+0x30> - 803372a: 6c3b ldr r3, [r7, #64] ; 0x40 - 803372c: 2b00 cmp r3, #0 - 803372e: d032 beq.n 8033796 <_ntoa_long+0x96> + 803368c: 6d7b ldr r3, [r7, #84] ; 0x54 + 803368e: f403 6380 and.w r3, r3, #1024 ; 0x400 + 8033692: 2b00 cmp r3, #0 + 8033694: d002 beq.n 803369c <_ntoa_long+0x30> + 8033696: 6c3b ldr r3, [r7, #64] ; 0x40 + 8033698: 2b00 cmp r3, #0 + 803369a: d032 beq.n 8033702 <_ntoa_long+0x96> do { const char digit = (char)(value % base); - 8033730: 6c3b ldr r3, [r7, #64] ; 0x40 - 8033732: 6cba ldr r2, [r7, #72] ; 0x48 - 8033734: fbb3 f2f2 udiv r2, r3, r2 - 8033738: 6cb9 ldr r1, [r7, #72] ; 0x48 - 803373a: fb01 f202 mul.w r2, r1, r2 - 803373e: 1a9b subs r3, r3, r2 - 8033740: f887 3033 strb.w r3, [r7, #51] ; 0x33 + 803369c: 6c3b ldr r3, [r7, #64] ; 0x40 + 803369e: 6cba ldr r2, [r7, #72] ; 0x48 + 80336a0: fbb3 f2f2 udiv r2, r3, r2 + 80336a4: 6cb9 ldr r1, [r7, #72] ; 0x48 + 80336a6: fb01 f202 mul.w r2, r1, r2 + 80336aa: 1a9b subs r3, r3, r2 + 80336ac: f887 3033 strb.w r3, [r7, #51] ; 0x33 buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; - 8033744: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 - 8033748: 2b09 cmp r3, #9 - 803374a: d804 bhi.n 8033756 <_ntoa_long+0x56> - 803374c: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 - 8033750: 3330 adds r3, #48 ; 0x30 - 8033752: b2da uxtb r2, r3 - 8033754: e00d b.n 8033772 <_ntoa_long+0x72> - 8033756: 6d7b ldr r3, [r7, #84] ; 0x54 - 8033758: f003 0320 and.w r3, r3, #32 - 803375c: 2b00 cmp r3, #0 - 803375e: d001 beq.n 8033764 <_ntoa_long+0x64> - 8033760: 2241 movs r2, #65 ; 0x41 - 8033762: e000 b.n 8033766 <_ntoa_long+0x66> - 8033764: 2261 movs r2, #97 ; 0x61 - 8033766: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 - 803376a: 4413 add r3, r2 - 803376c: b2db uxtb r3, r3 - 803376e: 3b0a subs r3, #10 - 8033770: b2da uxtb r2, r3 - 8033772: 6b7b ldr r3, [r7, #52] ; 0x34 - 8033774: 1c59 adds r1, r3, #1 - 8033776: 6379 str r1, [r7, #52] ; 0x34 - 8033778: 3338 adds r3, #56 ; 0x38 - 803377a: 443b add r3, r7 - 803377c: f803 2c28 strb.w r2, [r3, #-40] + 80336b0: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 + 80336b4: 2b09 cmp r3, #9 + 80336b6: d804 bhi.n 80336c2 <_ntoa_long+0x56> + 80336b8: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 + 80336bc: 3330 adds r3, #48 ; 0x30 + 80336be: b2da uxtb r2, r3 + 80336c0: e00d b.n 80336de <_ntoa_long+0x72> + 80336c2: 6d7b ldr r3, [r7, #84] ; 0x54 + 80336c4: f003 0320 and.w r3, r3, #32 + 80336c8: 2b00 cmp r3, #0 + 80336ca: d001 beq.n 80336d0 <_ntoa_long+0x64> + 80336cc: 2241 movs r2, #65 ; 0x41 + 80336ce: e000 b.n 80336d2 <_ntoa_long+0x66> + 80336d0: 2261 movs r2, #97 ; 0x61 + 80336d2: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 + 80336d6: 4413 add r3, r2 + 80336d8: b2db uxtb r3, r3 + 80336da: 3b0a subs r3, #10 + 80336dc: b2da uxtb r2, r3 + 80336de: 6b7b ldr r3, [r7, #52] ; 0x34 + 80336e0: 1c59 adds r1, r3, #1 + 80336e2: 6379 str r1, [r7, #52] ; 0x34 + 80336e4: 3338 adds r3, #56 ; 0x38 + 80336e6: 443b add r3, r7 + 80336e8: f803 2c28 strb.w r2, [r3, #-40] value /= base; - 8033780: 6c3a ldr r2, [r7, #64] ; 0x40 - 8033782: 6cbb ldr r3, [r7, #72] ; 0x48 - 8033784: fbb2 f3f3 udiv r3, r2, r3 - 8033788: 643b str r3, [r7, #64] ; 0x40 + 80336ec: 6c3a ldr r2, [r7, #64] ; 0x40 + 80336ee: 6cbb ldr r3, [r7, #72] ; 0x48 + 80336f0: fbb2 f3f3 udiv r3, r2, r3 + 80336f4: 643b str r3, [r7, #64] ; 0x40 } while(value && (len < PRINTF_NTOA_BUFFER_SIZE)); - 803378a: 6c3b ldr r3, [r7, #64] ; 0x40 - 803378c: 2b00 cmp r3, #0 - 803378e: d002 beq.n 8033796 <_ntoa_long+0x96> - 8033790: 6b7b ldr r3, [r7, #52] ; 0x34 - 8033792: 2b1f cmp r3, #31 - 8033794: d9cc bls.n 8033730 <_ntoa_long+0x30> + 80336f6: 6c3b ldr r3, [r7, #64] ; 0x40 + 80336f8: 2b00 cmp r3, #0 + 80336fa: d002 beq.n 8033702 <_ntoa_long+0x96> + 80336fc: 6b7b ldr r3, [r7, #52] ; 0x34 + 80336fe: 2b1f cmp r3, #31 + 8033700: d9cc bls.n 803369c <_ntoa_long+0x30> } return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags); - 8033796: 6d7b ldr r3, [r7, #84] ; 0x54 - 8033798: 9306 str r3, [sp, #24] - 803379a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803379c: 9305 str r3, [sp, #20] - 803379e: 6cfb ldr r3, [r7, #76] ; 0x4c - 80337a0: 9304 str r3, [sp, #16] - 80337a2: 6cbb ldr r3, [r7, #72] ; 0x48 - 80337a4: 9303 str r3, [sp, #12] - 80337a6: f897 3044 ldrb.w r3, [r7, #68] ; 0x44 - 80337aa: 9302 str r3, [sp, #8] - 80337ac: 6b7b ldr r3, [r7, #52] ; 0x34 - 80337ae: 9301 str r3, [sp, #4] - 80337b0: f107 0310 add.w r3, r7, #16 - 80337b4: 9300 str r3, [sp, #0] - 80337b6: 683b ldr r3, [r7, #0] - 80337b8: 687a ldr r2, [r7, #4] - 80337ba: 68b9 ldr r1, [r7, #8] - 80337bc: 68f8 ldr r0, [r7, #12] - 80337be: f7ff fec3 bl 8033548 <_ntoa_format> - 80337c2: 4603 mov r3, r0 + 8033702: 6d7b ldr r3, [r7, #84] ; 0x54 + 8033704: 9306 str r3, [sp, #24] + 8033706: 6d3b ldr r3, [r7, #80] ; 0x50 + 8033708: 9305 str r3, [sp, #20] + 803370a: 6cfb ldr r3, [r7, #76] ; 0x4c + 803370c: 9304 str r3, [sp, #16] + 803370e: 6cbb ldr r3, [r7, #72] ; 0x48 + 8033710: 9303 str r3, [sp, #12] + 8033712: f897 3044 ldrb.w r3, [r7, #68] ; 0x44 + 8033716: 9302 str r3, [sp, #8] + 8033718: 6b7b ldr r3, [r7, #52] ; 0x34 + 803371a: 9301 str r3, [sp, #4] + 803371c: f107 0310 add.w r3, r7, #16 + 8033720: 9300 str r3, [sp, #0] + 8033722: 683b ldr r3, [r7, #0] + 8033724: 687a ldr r2, [r7, #4] + 8033726: 68b9 ldr r1, [r7, #8] + 8033728: 68f8 ldr r0, [r7, #12] + 803372a: f7ff fec3 bl 80334b4 <_ntoa_format> + 803372e: 4603 mov r3, r0 } - 80337c4: 4618 mov r0, r3 - 80337c6: 3738 adds r7, #56 ; 0x38 - 80337c8: 46bd mov sp, r7 - 80337ca: bd80 pop {r7, pc} + 8033730: 4618 mov r0, r3 + 8033732: 3738 adds r7, #56 ; 0x38 + 8033734: 46bd mov sp, r7 + 8033736: bd80 pop {r7, pc} -080337cc <_ntoa_long_long>: +08033738 <_ntoa_long_long>: // internal itoa for 'long long' type #if defined(PRINTF_SUPPORT_LONG_LONG) static size_t _ntoa_long_long(out_fct_type out, char * buffer, size_t idx, size_t maxlen, unsigned long long value, bool negative, unsigned long long base, unsigned int prec, unsigned int width, unsigned int flags) { - 80337cc: b580 push {r7, lr} - 80337ce: b096 sub sp, #88 ; 0x58 - 80337d0: af08 add r7, sp, #32 - 80337d2: 60f8 str r0, [r7, #12] - 80337d4: 60b9 str r1, [r7, #8] - 80337d6: 607a str r2, [r7, #4] - 80337d8: 603b str r3, [r7, #0] + 8033738: b580 push {r7, lr} + 803373a: b096 sub sp, #88 ; 0x58 + 803373c: af08 add r7, sp, #32 + 803373e: 60f8 str r0, [r7, #12] + 8033740: 60b9 str r1, [r7, #8] + 8033742: 607a str r2, [r7, #4] + 8033744: 603b str r3, [r7, #0] char buf[PRINTF_NTOA_BUFFER_SIZE]; size_t len = 0U; - 80337da: 2300 movs r3, #0 - 80337dc: 637b str r3, [r7, #52] ; 0x34 + 8033746: 2300 movs r3, #0 + 8033748: 637b str r3, [r7, #52] ; 0x34 // no hash for 0 values if(!value) { - 80337de: e9d7 2310 ldrd r2, r3, [r7, #64] ; 0x40 - 80337e2: 4313 orrs r3, r2 - 80337e4: d103 bne.n 80337ee <_ntoa_long_long+0x22> + 803374a: e9d7 2310 ldrd r2, r3, [r7, #64] ; 0x40 + 803374e: 4313 orrs r3, r2 + 8033750: d103 bne.n 803375a <_ntoa_long_long+0x22> flags &= ~FLAGS_HASH; - 80337e6: 6e3b ldr r3, [r7, #96] ; 0x60 - 80337e8: f023 0310 bic.w r3, r3, #16 - 80337ec: 663b str r3, [r7, #96] ; 0x60 + 8033752: 6e3b ldr r3, [r7, #96] ; 0x60 + 8033754: f023 0310 bic.w r3, r3, #16 + 8033758: 663b str r3, [r7, #96] ; 0x60 } // write if precision != 0 and value is != 0 if(!(flags & FLAGS_PRECISION) || value) { - 80337ee: 6e3b ldr r3, [r7, #96] ; 0x60 - 80337f0: f403 6380 and.w r3, r3, #1024 ; 0x400 - 80337f4: 2b00 cmp r3, #0 - 80337f6: d003 beq.n 8033800 <_ntoa_long_long+0x34> - 80337f8: e9d7 2310 ldrd r2, r3, [r7, #64] ; 0x40 - 80337fc: 4313 orrs r3, r2 - 80337fe: d037 beq.n 8033870 <_ntoa_long_long+0xa4> + 803375a: 6e3b ldr r3, [r7, #96] ; 0x60 + 803375c: f403 6380 and.w r3, r3, #1024 ; 0x400 + 8033760: 2b00 cmp r3, #0 + 8033762: d003 beq.n 803376c <_ntoa_long_long+0x34> + 8033764: e9d7 2310 ldrd r2, r3, [r7, #64] ; 0x40 + 8033768: 4313 orrs r3, r2 + 803376a: d037 beq.n 80337dc <_ntoa_long_long+0xa4> do { const char digit = (char)(value % base); - 8033800: e9d7 0110 ldrd r0, r1, [r7, #64] ; 0x40 - 8033804: e9d7 2314 ldrd r2, r3, [r7, #80] ; 0x50 - 8033808: f7cc fd1e bl 8000248 <__aeabi_uldivmod> - 803380c: 4613 mov r3, r2 - 803380e: f887 3033 strb.w r3, [r7, #51] ; 0x33 + 803376c: e9d7 0110 ldrd r0, r1, [r7, #64] ; 0x40 + 8033770: e9d7 2314 ldrd r2, r3, [r7, #80] ; 0x50 + 8033774: f7cc fd68 bl 8000248 <__aeabi_uldivmod> + 8033778: 4613 mov r3, r2 + 803377a: f887 3033 strb.w r3, [r7, #51] ; 0x33 buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; - 8033812: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 - 8033816: 2b09 cmp r3, #9 - 8033818: d804 bhi.n 8033824 <_ntoa_long_long+0x58> - 803381a: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 - 803381e: 3330 adds r3, #48 ; 0x30 - 8033820: b2da uxtb r2, r3 - 8033822: e00d b.n 8033840 <_ntoa_long_long+0x74> - 8033824: 6e3b ldr r3, [r7, #96] ; 0x60 - 8033826: f003 0320 and.w r3, r3, #32 - 803382a: 2b00 cmp r3, #0 - 803382c: d001 beq.n 8033832 <_ntoa_long_long+0x66> - 803382e: 2241 movs r2, #65 ; 0x41 - 8033830: e000 b.n 8033834 <_ntoa_long_long+0x68> - 8033832: 2261 movs r2, #97 ; 0x61 - 8033834: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 - 8033838: 4413 add r3, r2 - 803383a: b2db uxtb r3, r3 - 803383c: 3b0a subs r3, #10 - 803383e: b2da uxtb r2, r3 - 8033840: 6b7b ldr r3, [r7, #52] ; 0x34 - 8033842: 1c59 adds r1, r3, #1 - 8033844: 6379 str r1, [r7, #52] ; 0x34 - 8033846: 3338 adds r3, #56 ; 0x38 - 8033848: 443b add r3, r7 - 803384a: f803 2c28 strb.w r2, [r3, #-40] + 803377e: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 + 8033782: 2b09 cmp r3, #9 + 8033784: d804 bhi.n 8033790 <_ntoa_long_long+0x58> + 8033786: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 + 803378a: 3330 adds r3, #48 ; 0x30 + 803378c: b2da uxtb r2, r3 + 803378e: e00d b.n 80337ac <_ntoa_long_long+0x74> + 8033790: 6e3b ldr r3, [r7, #96] ; 0x60 + 8033792: f003 0320 and.w r3, r3, #32 + 8033796: 2b00 cmp r3, #0 + 8033798: d001 beq.n 803379e <_ntoa_long_long+0x66> + 803379a: 2241 movs r2, #65 ; 0x41 + 803379c: e000 b.n 80337a0 <_ntoa_long_long+0x68> + 803379e: 2261 movs r2, #97 ; 0x61 + 80337a0: f897 3033 ldrb.w r3, [r7, #51] ; 0x33 + 80337a4: 4413 add r3, r2 + 80337a6: b2db uxtb r3, r3 + 80337a8: 3b0a subs r3, #10 + 80337aa: b2da uxtb r2, r3 + 80337ac: 6b7b ldr r3, [r7, #52] ; 0x34 + 80337ae: 1c59 adds r1, r3, #1 + 80337b0: 6379 str r1, [r7, #52] ; 0x34 + 80337b2: 3338 adds r3, #56 ; 0x38 + 80337b4: 443b add r3, r7 + 80337b6: f803 2c28 strb.w r2, [r3, #-40] value /= base; - 803384e: e9d7 2314 ldrd r2, r3, [r7, #80] ; 0x50 - 8033852: e9d7 0110 ldrd r0, r1, [r7, #64] ; 0x40 - 8033856: f7cc fcf7 bl 8000248 <__aeabi_uldivmod> - 803385a: 4602 mov r2, r0 - 803385c: 460b mov r3, r1 - 803385e: e9c7 2310 strd r2, r3, [r7, #64] ; 0x40 + 80337ba: e9d7 2314 ldrd r2, r3, [r7, #80] ; 0x50 + 80337be: e9d7 0110 ldrd r0, r1, [r7, #64] ; 0x40 + 80337c2: f7cc fd41 bl 8000248 <__aeabi_uldivmod> + 80337c6: 4602 mov r2, r0 + 80337c8: 460b mov r3, r1 + 80337ca: e9c7 2310 strd r2, r3, [r7, #64] ; 0x40 } while(value && (len < PRINTF_NTOA_BUFFER_SIZE)); - 8033862: e9d7 2310 ldrd r2, r3, [r7, #64] ; 0x40 - 8033866: 4313 orrs r3, r2 - 8033868: d002 beq.n 8033870 <_ntoa_long_long+0xa4> - 803386a: 6b7b ldr r3, [r7, #52] ; 0x34 - 803386c: 2b1f cmp r3, #31 - 803386e: d9c7 bls.n 8033800 <_ntoa_long_long+0x34> + 80337ce: e9d7 2310 ldrd r2, r3, [r7, #64] ; 0x40 + 80337d2: 4313 orrs r3, r2 + 80337d4: d002 beq.n 80337dc <_ntoa_long_long+0xa4> + 80337d6: 6b7b ldr r3, [r7, #52] ; 0x34 + 80337d8: 2b1f cmp r3, #31 + 80337da: d9c7 bls.n 803376c <_ntoa_long_long+0x34> } return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags); - 8033870: 6d3b ldr r3, [r7, #80] ; 0x50 - 8033872: 6e3a ldr r2, [r7, #96] ; 0x60 - 8033874: 9206 str r2, [sp, #24] - 8033876: 6dfa ldr r2, [r7, #92] ; 0x5c - 8033878: 9205 str r2, [sp, #20] - 803387a: 6dba ldr r2, [r7, #88] ; 0x58 - 803387c: 9204 str r2, [sp, #16] - 803387e: 9303 str r3, [sp, #12] - 8033880: f897 3048 ldrb.w r3, [r7, #72] ; 0x48 - 8033884: 9302 str r3, [sp, #8] - 8033886: 6b7b ldr r3, [r7, #52] ; 0x34 - 8033888: 9301 str r3, [sp, #4] - 803388a: f107 0310 add.w r3, r7, #16 - 803388e: 9300 str r3, [sp, #0] - 8033890: 683b ldr r3, [r7, #0] - 8033892: 687a ldr r2, [r7, #4] - 8033894: 68b9 ldr r1, [r7, #8] - 8033896: 68f8 ldr r0, [r7, #12] - 8033898: f7ff fe56 bl 8033548 <_ntoa_format> - 803389c: 4603 mov r3, r0 + 80337dc: 6d3b ldr r3, [r7, #80] ; 0x50 + 80337de: 6e3a ldr r2, [r7, #96] ; 0x60 + 80337e0: 9206 str r2, [sp, #24] + 80337e2: 6dfa ldr r2, [r7, #92] ; 0x5c + 80337e4: 9205 str r2, [sp, #20] + 80337e6: 6dba ldr r2, [r7, #88] ; 0x58 + 80337e8: 9204 str r2, [sp, #16] + 80337ea: 9303 str r3, [sp, #12] + 80337ec: f897 3048 ldrb.w r3, [r7, #72] ; 0x48 + 80337f0: 9302 str r3, [sp, #8] + 80337f2: 6b7b ldr r3, [r7, #52] ; 0x34 + 80337f4: 9301 str r3, [sp, #4] + 80337f6: f107 0310 add.w r3, r7, #16 + 80337fa: 9300 str r3, [sp, #0] + 80337fc: 683b ldr r3, [r7, #0] + 80337fe: 687a ldr r2, [r7, #4] + 8033800: 68b9 ldr r1, [r7, #8] + 8033802: 68f8 ldr r0, [r7, #12] + 8033804: f7ff fe56 bl 80334b4 <_ntoa_format> + 8033808: 4603 mov r3, r0 } - 803389e: 4618 mov r0, r3 - 80338a0: 3738 adds r7, #56 ; 0x38 - 80338a2: 46bd mov sp, r7 - 80338a4: bd80 pop {r7, pc} + 803380a: 4618 mov r0, r3 + 803380c: 3738 adds r7, #56 ; 0x38 + 803380e: 46bd mov sp, r7 + 8033810: bd80 pop {r7, pc} ... -080338a8 <_vsnprintf>: +08033814 <_vsnprintf>: #endif // PRINTF_SUPPORT_EXPONENTIAL #endif // PRINTF_SUPPORT_FLOAT // internal vsnprintf static int _vsnprintf(out_fct_type out, char * buffer, const size_t maxlen, const char * format, va_list va) { - 80338a8: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 80338ac: b0a3 sub sp, #140 ; 0x8c - 80338ae: af0a add r7, sp, #40 ; 0x28 - 80338b0: 60f8 str r0, [r7, #12] - 80338b2: 60b9 str r1, [r7, #8] - 80338b4: 607a str r2, [r7, #4] - 80338b6: 603b str r3, [r7, #0] + 8033814: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + 8033818: b0a3 sub sp, #140 ; 0x8c + 803381a: af0a add r7, sp, #40 ; 0x28 + 803381c: 60f8 str r0, [r7, #12] + 803381e: 60b9 str r1, [r7, #8] + 8033820: 607a str r2, [r7, #4] + 8033822: 603b str r3, [r7, #0] unsigned int flags, width, precision, n; size_t idx = 0U; - 80338b8: 2300 movs r3, #0 - 80338ba: 64fb str r3, [r7, #76] ; 0x4c + 8033824: 2300 movs r3, #0 + 8033826: 64fb str r3, [r7, #76] ; 0x4c if(!buffer) { - 80338bc: 68bb ldr r3, [r7, #8] - 80338be: 2b00 cmp r3, #0 - 80338c0: f040 83d2 bne.w 8034068 <_vsnprintf+0x7c0> + 8033828: 68bb ldr r3, [r7, #8] + 803382a: 2b00 cmp r3, #0 + 803382c: f040 83d2 bne.w 8033fd4 <_vsnprintf+0x7c0> // use null output function out = _out_null; - 80338c4: 4ba1 ldr r3, [pc, #644] ; (8033b4c <_vsnprintf+0x2a4>) - 80338c6: 60fb str r3, [r7, #12] + 8033830: 4ba1 ldr r3, [pc, #644] ; (8033ab8 <_vsnprintf+0x2a4>) + 8033832: 60fb str r3, [r7, #12] } while(*format) { - 80338c8: e3ce b.n 8034068 <_vsnprintf+0x7c0> + 8033834: e3ce b.n 8033fd4 <_vsnprintf+0x7c0> // format specifier? %[flags][width][.precision][length] if(*format != '%') { - 80338ca: 683b ldr r3, [r7, #0] - 80338cc: 781b ldrb r3, [r3, #0] - 80338ce: 2b25 cmp r3, #37 ; 0x25 - 80338d0: d00c beq.n 80338ec <_vsnprintf+0x44> + 8033836: 683b ldr r3, [r7, #0] + 8033838: 781b ldrb r3, [r3, #0] + 803383a: 2b25 cmp r3, #37 ; 0x25 + 803383c: d00c beq.n 8033858 <_vsnprintf+0x44> // no out(*format, buffer, idx++, maxlen); - 80338d2: 683b ldr r3, [r7, #0] - 80338d4: 7818 ldrb r0, [r3, #0] - 80338d6: 6cfa ldr r2, [r7, #76] ; 0x4c - 80338d8: 1c53 adds r3, r2, #1 - 80338da: 64fb str r3, [r7, #76] ; 0x4c - 80338dc: 68fe ldr r6, [r7, #12] - 80338de: 687b ldr r3, [r7, #4] - 80338e0: 68b9 ldr r1, [r7, #8] - 80338e2: 47b0 blx r6 + 803383e: 683b ldr r3, [r7, #0] + 8033840: 7818 ldrb r0, [r3, #0] + 8033842: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033844: 1c53 adds r3, r2, #1 + 8033846: 64fb str r3, [r7, #76] ; 0x4c + 8033848: 68fe ldr r6, [r7, #12] + 803384a: 687b ldr r3, [r7, #4] + 803384c: 68b9 ldr r1, [r7, #8] + 803384e: 47b0 blx r6 format++; - 80338e4: 683b ldr r3, [r7, #0] - 80338e6: 3301 adds r3, #1 - 80338e8: 603b str r3, [r7, #0] + 8033850: 683b ldr r3, [r7, #0] + 8033852: 3301 adds r3, #1 + 8033854: 603b str r3, [r7, #0] continue; - 80338ea: e3bd b.n 8034068 <_vsnprintf+0x7c0> + 8033856: e3bd b.n 8033fd4 <_vsnprintf+0x7c0> } else { // yes, evaluate it format++; - 80338ec: 683b ldr r3, [r7, #0] - 80338ee: 3301 adds r3, #1 - 80338f0: 603b str r3, [r7, #0] + 8033858: 683b ldr r3, [r7, #0] + 803385a: 3301 adds r3, #1 + 803385c: 603b str r3, [r7, #0] } // evaluate flags flags = 0U; - 80338f2: 2300 movs r3, #0 - 80338f4: 65fb str r3, [r7, #92] ; 0x5c + 803385e: 2300 movs r3, #0 + 8033860: 65fb str r3, [r7, #92] ; 0x5c do { switch(*format) { - 80338f6: 683b ldr r3, [r7, #0] - 80338f8: 781b ldrb r3, [r3, #0] - 80338fa: 3b20 subs r3, #32 - 80338fc: 2b10 cmp r3, #16 - 80338fe: d857 bhi.n 80339b0 <_vsnprintf+0x108> - 8033900: a201 add r2, pc, #4 ; (adr r2, 8033908 <_vsnprintf+0x60>) - 8033902: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8033906: bf00 nop - 8033908: 08033989 .word 0x08033989 - 803390c: 080339b1 .word 0x080339b1 - 8033910: 080339b1 .word 0x080339b1 - 8033914: 0803399d .word 0x0803399d - 8033918: 080339b1 .word 0x080339b1 - 803391c: 080339b1 .word 0x080339b1 - 8033920: 080339b1 .word 0x080339b1 - 8033924: 080339b1 .word 0x080339b1 - 8033928: 080339b1 .word 0x080339b1 - 803392c: 080339b1 .word 0x080339b1 - 8033930: 080339b1 .word 0x080339b1 - 8033934: 08033975 .word 0x08033975 - 8033938: 080339b1 .word 0x080339b1 - 803393c: 08033961 .word 0x08033961 - 8033940: 080339b1 .word 0x080339b1 - 8033944: 080339b1 .word 0x080339b1 - 8033948: 0803394d .word 0x0803394d + 8033862: 683b ldr r3, [r7, #0] + 8033864: 781b ldrb r3, [r3, #0] + 8033866: 3b20 subs r3, #32 + 8033868: 2b10 cmp r3, #16 + 803386a: d857 bhi.n 803391c <_vsnprintf+0x108> + 803386c: a201 add r2, pc, #4 ; (adr r2, 8033874 <_vsnprintf+0x60>) + 803386e: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8033872: bf00 nop + 8033874: 080338f5 .word 0x080338f5 + 8033878: 0803391d .word 0x0803391d + 803387c: 0803391d .word 0x0803391d + 8033880: 08033909 .word 0x08033909 + 8033884: 0803391d .word 0x0803391d + 8033888: 0803391d .word 0x0803391d + 803388c: 0803391d .word 0x0803391d + 8033890: 0803391d .word 0x0803391d + 8033894: 0803391d .word 0x0803391d + 8033898: 0803391d .word 0x0803391d + 803389c: 0803391d .word 0x0803391d + 80338a0: 080338e1 .word 0x080338e1 + 80338a4: 0803391d .word 0x0803391d + 80338a8: 080338cd .word 0x080338cd + 80338ac: 0803391d .word 0x0803391d + 80338b0: 0803391d .word 0x0803391d + 80338b4: 080338b9 .word 0x080338b9 case '0': flags |= FLAGS_ZEROPAD; - 803394c: 6dfb ldr r3, [r7, #92] ; 0x5c - 803394e: f043 0301 orr.w r3, r3, #1 - 8033952: 65fb str r3, [r7, #92] ; 0x5c + 80338b8: 6dfb ldr r3, [r7, #92] ; 0x5c + 80338ba: f043 0301 orr.w r3, r3, #1 + 80338be: 65fb str r3, [r7, #92] ; 0x5c format++; - 8033954: 683b ldr r3, [r7, #0] - 8033956: 3301 adds r3, #1 - 8033958: 603b str r3, [r7, #0] + 80338c0: 683b ldr r3, [r7, #0] + 80338c2: 3301 adds r3, #1 + 80338c4: 603b str r3, [r7, #0] n = 1U; - 803395a: 2301 movs r3, #1 - 803395c: 653b str r3, [r7, #80] ; 0x50 + 80338c6: 2301 movs r3, #1 + 80338c8: 653b str r3, [r7, #80] ; 0x50 break; - 803395e: e02a b.n 80339b6 <_vsnprintf+0x10e> + 80338ca: e02a b.n 8033922 <_vsnprintf+0x10e> case '-': flags |= FLAGS_LEFT; - 8033960: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033962: f043 0302 orr.w r3, r3, #2 - 8033966: 65fb str r3, [r7, #92] ; 0x5c + 80338cc: 6dfb ldr r3, [r7, #92] ; 0x5c + 80338ce: f043 0302 orr.w r3, r3, #2 + 80338d2: 65fb str r3, [r7, #92] ; 0x5c format++; - 8033968: 683b ldr r3, [r7, #0] - 803396a: 3301 adds r3, #1 - 803396c: 603b str r3, [r7, #0] + 80338d4: 683b ldr r3, [r7, #0] + 80338d6: 3301 adds r3, #1 + 80338d8: 603b str r3, [r7, #0] n = 1U; - 803396e: 2301 movs r3, #1 - 8033970: 653b str r3, [r7, #80] ; 0x50 + 80338da: 2301 movs r3, #1 + 80338dc: 653b str r3, [r7, #80] ; 0x50 break; - 8033972: e020 b.n 80339b6 <_vsnprintf+0x10e> + 80338de: e020 b.n 8033922 <_vsnprintf+0x10e> case '+': flags |= FLAGS_PLUS; - 8033974: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033976: f043 0304 orr.w r3, r3, #4 - 803397a: 65fb str r3, [r7, #92] ; 0x5c + 80338e0: 6dfb ldr r3, [r7, #92] ; 0x5c + 80338e2: f043 0304 orr.w r3, r3, #4 + 80338e6: 65fb str r3, [r7, #92] ; 0x5c format++; - 803397c: 683b ldr r3, [r7, #0] - 803397e: 3301 adds r3, #1 - 8033980: 603b str r3, [r7, #0] + 80338e8: 683b ldr r3, [r7, #0] + 80338ea: 3301 adds r3, #1 + 80338ec: 603b str r3, [r7, #0] n = 1U; - 8033982: 2301 movs r3, #1 - 8033984: 653b str r3, [r7, #80] ; 0x50 + 80338ee: 2301 movs r3, #1 + 80338f0: 653b str r3, [r7, #80] ; 0x50 break; - 8033986: e016 b.n 80339b6 <_vsnprintf+0x10e> + 80338f2: e016 b.n 8033922 <_vsnprintf+0x10e> case ' ': flags |= FLAGS_SPACE; - 8033988: 6dfb ldr r3, [r7, #92] ; 0x5c - 803398a: f043 0308 orr.w r3, r3, #8 - 803398e: 65fb str r3, [r7, #92] ; 0x5c + 80338f4: 6dfb ldr r3, [r7, #92] ; 0x5c + 80338f6: f043 0308 orr.w r3, r3, #8 + 80338fa: 65fb str r3, [r7, #92] ; 0x5c format++; - 8033990: 683b ldr r3, [r7, #0] - 8033992: 3301 adds r3, #1 - 8033994: 603b str r3, [r7, #0] + 80338fc: 683b ldr r3, [r7, #0] + 80338fe: 3301 adds r3, #1 + 8033900: 603b str r3, [r7, #0] n = 1U; - 8033996: 2301 movs r3, #1 - 8033998: 653b str r3, [r7, #80] ; 0x50 + 8033902: 2301 movs r3, #1 + 8033904: 653b str r3, [r7, #80] ; 0x50 break; - 803399a: e00c b.n 80339b6 <_vsnprintf+0x10e> + 8033906: e00c b.n 8033922 <_vsnprintf+0x10e> case '#': flags |= FLAGS_HASH; - 803399c: 6dfb ldr r3, [r7, #92] ; 0x5c - 803399e: f043 0310 orr.w r3, r3, #16 - 80339a2: 65fb str r3, [r7, #92] ; 0x5c + 8033908: 6dfb ldr r3, [r7, #92] ; 0x5c + 803390a: f043 0310 orr.w r3, r3, #16 + 803390e: 65fb str r3, [r7, #92] ; 0x5c format++; - 80339a4: 683b ldr r3, [r7, #0] - 80339a6: 3301 adds r3, #1 - 80339a8: 603b str r3, [r7, #0] + 8033910: 683b ldr r3, [r7, #0] + 8033912: 3301 adds r3, #1 + 8033914: 603b str r3, [r7, #0] n = 1U; - 80339aa: 2301 movs r3, #1 - 80339ac: 653b str r3, [r7, #80] ; 0x50 + 8033916: 2301 movs r3, #1 + 8033918: 653b str r3, [r7, #80] ; 0x50 break; - 80339ae: e002 b.n 80339b6 <_vsnprintf+0x10e> + 803391a: e002 b.n 8033922 <_vsnprintf+0x10e> default : n = 0U; - 80339b0: 2300 movs r3, #0 - 80339b2: 653b str r3, [r7, #80] ; 0x50 + 803391c: 2300 movs r3, #0 + 803391e: 653b str r3, [r7, #80] ; 0x50 break; - 80339b4: bf00 nop + 8033920: bf00 nop } } while(n); - 80339b6: 6d3b ldr r3, [r7, #80] ; 0x50 - 80339b8: 2b00 cmp r3, #0 - 80339ba: d19c bne.n 80338f6 <_vsnprintf+0x4e> + 8033922: 6d3b ldr r3, [r7, #80] ; 0x50 + 8033924: 2b00 cmp r3, #0 + 8033926: d19c bne.n 8033862 <_vsnprintf+0x4e> // evaluate width field width = 0U; - 80339bc: 2300 movs r3, #0 - 80339be: 65bb str r3, [r7, #88] ; 0x58 + 8033928: 2300 movs r3, #0 + 803392a: 65bb str r3, [r7, #88] ; 0x58 if(_is_digit(*format)) { - 80339c0: 683b ldr r3, [r7, #0] - 80339c2: 781b ldrb r3, [r3, #0] - 80339c4: 4618 mov r0, r3 - 80339c6: f7ff fd35 bl 8033434 <_is_digit> - 80339ca: 4603 mov r3, r0 - 80339cc: 2b00 cmp r3, #0 - 80339ce: d005 beq.n 80339dc <_vsnprintf+0x134> + 803392c: 683b ldr r3, [r7, #0] + 803392e: 781b ldrb r3, [r3, #0] + 8033930: 4618 mov r0, r3 + 8033932: f7ff fd35 bl 80333a0 <_is_digit> + 8033936: 4603 mov r3, r0 + 8033938: 2b00 cmp r3, #0 + 803393a: d005 beq.n 8033948 <_vsnprintf+0x134> width = _atoi(&format); - 80339d0: 463b mov r3, r7 - 80339d2: 4618 mov r0, r3 - 80339d4: f7ff fd44 bl 8033460 <_atoi> - 80339d8: 65b8 str r0, [r7, #88] ; 0x58 - 80339da: e01a b.n 8033a12 <_vsnprintf+0x16a> + 803393c: 463b mov r3, r7 + 803393e: 4618 mov r0, r3 + 8033940: f7ff fd44 bl 80333cc <_atoi> + 8033944: 65b8 str r0, [r7, #88] ; 0x58 + 8033946: e01a b.n 803397e <_vsnprintf+0x16a> } else if(*format == '*') { - 80339dc: 683b ldr r3, [r7, #0] - 80339de: 781b ldrb r3, [r3, #0] - 80339e0: 2b2a cmp r3, #42 ; 0x2a - 80339e2: d116 bne.n 8033a12 <_vsnprintf+0x16a> + 8033948: 683b ldr r3, [r7, #0] + 803394a: 781b ldrb r3, [r3, #0] + 803394c: 2b2a cmp r3, #42 ; 0x2a + 803394e: d116 bne.n 803397e <_vsnprintf+0x16a> const int w = va_arg(va, int); - 80339e4: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 80339e8: 1d1a adds r2, r3, #4 - 80339ea: f8c7 2088 str.w r2, [r7, #136] ; 0x88 - 80339ee: 681b ldr r3, [r3, #0] - 80339f0: 63bb str r3, [r7, #56] ; 0x38 + 8033950: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8033954: 1d1a adds r2, r3, #4 + 8033956: f8c7 2088 str.w r2, [r7, #136] ; 0x88 + 803395a: 681b ldr r3, [r3, #0] + 803395c: 63bb str r3, [r7, #56] ; 0x38 if(w < 0) { - 80339f2: 6bbb ldr r3, [r7, #56] ; 0x38 - 80339f4: 2b00 cmp r3, #0 - 80339f6: da07 bge.n 8033a08 <_vsnprintf+0x160> + 803395e: 6bbb ldr r3, [r7, #56] ; 0x38 + 8033960: 2b00 cmp r3, #0 + 8033962: da07 bge.n 8033974 <_vsnprintf+0x160> flags |= FLAGS_LEFT; // reverse padding - 80339f8: 6dfb ldr r3, [r7, #92] ; 0x5c - 80339fa: f043 0302 orr.w r3, r3, #2 - 80339fe: 65fb str r3, [r7, #92] ; 0x5c + 8033964: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033966: f043 0302 orr.w r3, r3, #2 + 803396a: 65fb str r3, [r7, #92] ; 0x5c width = (unsigned int) - w; - 8033a00: 6bbb ldr r3, [r7, #56] ; 0x38 - 8033a02: 425b negs r3, r3 - 8033a04: 65bb str r3, [r7, #88] ; 0x58 - 8033a06: e001 b.n 8033a0c <_vsnprintf+0x164> + 803396c: 6bbb ldr r3, [r7, #56] ; 0x38 + 803396e: 425b negs r3, r3 + 8033970: 65bb str r3, [r7, #88] ; 0x58 + 8033972: e001 b.n 8033978 <_vsnprintf+0x164> } else { width = (unsigned int)w; - 8033a08: 6bbb ldr r3, [r7, #56] ; 0x38 - 8033a0a: 65bb str r3, [r7, #88] ; 0x58 + 8033974: 6bbb ldr r3, [r7, #56] ; 0x38 + 8033976: 65bb str r3, [r7, #88] ; 0x58 } format++; - 8033a0c: 683b ldr r3, [r7, #0] - 8033a0e: 3301 adds r3, #1 - 8033a10: 603b str r3, [r7, #0] + 8033978: 683b ldr r3, [r7, #0] + 803397a: 3301 adds r3, #1 + 803397c: 603b str r3, [r7, #0] } // evaluate precision field precision = 0U; - 8033a12: 2300 movs r3, #0 - 8033a14: 657b str r3, [r7, #84] ; 0x54 + 803397e: 2300 movs r3, #0 + 8033980: 657b str r3, [r7, #84] ; 0x54 if(*format == '.') { - 8033a16: 683b ldr r3, [r7, #0] - 8033a18: 781b ldrb r3, [r3, #0] - 8033a1a: 2b2e cmp r3, #46 ; 0x2e - 8033a1c: d126 bne.n 8033a6c <_vsnprintf+0x1c4> + 8033982: 683b ldr r3, [r7, #0] + 8033984: 781b ldrb r3, [r3, #0] + 8033986: 2b2e cmp r3, #46 ; 0x2e + 8033988: d126 bne.n 80339d8 <_vsnprintf+0x1c4> flags |= FLAGS_PRECISION; - 8033a1e: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033a20: f443 6380 orr.w r3, r3, #1024 ; 0x400 - 8033a24: 65fb str r3, [r7, #92] ; 0x5c + 803398a: 6dfb ldr r3, [r7, #92] ; 0x5c + 803398c: f443 6380 orr.w r3, r3, #1024 ; 0x400 + 8033990: 65fb str r3, [r7, #92] ; 0x5c format++; - 8033a26: 683b ldr r3, [r7, #0] - 8033a28: 3301 adds r3, #1 - 8033a2a: 603b str r3, [r7, #0] + 8033992: 683b ldr r3, [r7, #0] + 8033994: 3301 adds r3, #1 + 8033996: 603b str r3, [r7, #0] if(_is_digit(*format)) { - 8033a2c: 683b ldr r3, [r7, #0] - 8033a2e: 781b ldrb r3, [r3, #0] - 8033a30: 4618 mov r0, r3 - 8033a32: f7ff fcff bl 8033434 <_is_digit> - 8033a36: 4603 mov r3, r0 - 8033a38: 2b00 cmp r3, #0 - 8033a3a: d005 beq.n 8033a48 <_vsnprintf+0x1a0> + 8033998: 683b ldr r3, [r7, #0] + 803399a: 781b ldrb r3, [r3, #0] + 803399c: 4618 mov r0, r3 + 803399e: f7ff fcff bl 80333a0 <_is_digit> + 80339a2: 4603 mov r3, r0 + 80339a4: 2b00 cmp r3, #0 + 80339a6: d005 beq.n 80339b4 <_vsnprintf+0x1a0> precision = _atoi(&format); - 8033a3c: 463b mov r3, r7 - 8033a3e: 4618 mov r0, r3 - 8033a40: f7ff fd0e bl 8033460 <_atoi> - 8033a44: 6578 str r0, [r7, #84] ; 0x54 - 8033a46: e011 b.n 8033a6c <_vsnprintf+0x1c4> + 80339a8: 463b mov r3, r7 + 80339aa: 4618 mov r0, r3 + 80339ac: f7ff fd0e bl 80333cc <_atoi> + 80339b0: 6578 str r0, [r7, #84] ; 0x54 + 80339b2: e011 b.n 80339d8 <_vsnprintf+0x1c4> } else if(*format == '*') { - 8033a48: 683b ldr r3, [r7, #0] - 8033a4a: 781b ldrb r3, [r3, #0] - 8033a4c: 2b2a cmp r3, #42 ; 0x2a - 8033a4e: d10d bne.n 8033a6c <_vsnprintf+0x1c4> + 80339b4: 683b ldr r3, [r7, #0] + 80339b6: 781b ldrb r3, [r3, #0] + 80339b8: 2b2a cmp r3, #42 ; 0x2a + 80339ba: d10d bne.n 80339d8 <_vsnprintf+0x1c4> const int prec = (int)va_arg(va, int); - 8033a50: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8033a54: 1d1a adds r2, r3, #4 - 8033a56: f8c7 2088 str.w r2, [r7, #136] ; 0x88 - 8033a5a: 681b ldr r3, [r3, #0] - 8033a5c: 637b str r3, [r7, #52] ; 0x34 + 80339bc: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 80339c0: 1d1a adds r2, r3, #4 + 80339c2: f8c7 2088 str.w r2, [r7, #136] ; 0x88 + 80339c6: 681b ldr r3, [r3, #0] + 80339c8: 637b str r3, [r7, #52] ; 0x34 precision = prec > 0 ? (unsigned int)prec : 0U; - 8033a5e: 6b7b ldr r3, [r7, #52] ; 0x34 - 8033a60: ea23 73e3 bic.w r3, r3, r3, asr #31 - 8033a64: 657b str r3, [r7, #84] ; 0x54 + 80339ca: 6b7b ldr r3, [r7, #52] ; 0x34 + 80339cc: ea23 73e3 bic.w r3, r3, r3, asr #31 + 80339d0: 657b str r3, [r7, #84] ; 0x54 format++; - 8033a66: 683b ldr r3, [r7, #0] - 8033a68: 3301 adds r3, #1 - 8033a6a: 603b str r3, [r7, #0] + 80339d2: 683b ldr r3, [r7, #0] + 80339d4: 3301 adds r3, #1 + 80339d6: 603b str r3, [r7, #0] } } // evaluate length field switch(*format) { - 8033a6c: 683b ldr r3, [r7, #0] - 8033a6e: 781b ldrb r3, [r3, #0] - 8033a70: 3b68 subs r3, #104 ; 0x68 - 8033a72: 2b12 cmp r3, #18 - 8033a74: d866 bhi.n 8033b44 <_vsnprintf+0x29c> - 8033a76: a201 add r2, pc, #4 ; (adr r2, 8033a7c <_vsnprintf+0x1d4>) - 8033a78: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8033a7c: 08033aef .word 0x08033aef - 8033a80: 08033b45 .word 0x08033b45 - 8033a84: 08033b25 .word 0x08033b25 - 8033a88: 08033b45 .word 0x08033b45 - 8033a8c: 08033ac9 .word 0x08033ac9 - 8033a90: 08033b45 .word 0x08033b45 - 8033a94: 08033b45 .word 0x08033b45 - 8033a98: 08033b45 .word 0x08033b45 - 8033a9c: 08033b45 .word 0x08033b45 - 8033aa0: 08033b45 .word 0x08033b45 - 8033aa4: 08033b45 .word 0x08033b45 - 8033aa8: 08033b45 .word 0x08033b45 - 8033aac: 08033b15 .word 0x08033b15 - 8033ab0: 08033b45 .word 0x08033b45 - 8033ab4: 08033b45 .word 0x08033b45 - 8033ab8: 08033b45 .word 0x08033b45 - 8033abc: 08033b45 .word 0x08033b45 - 8033ac0: 08033b45 .word 0x08033b45 - 8033ac4: 08033b35 .word 0x08033b35 + 80339d8: 683b ldr r3, [r7, #0] + 80339da: 781b ldrb r3, [r3, #0] + 80339dc: 3b68 subs r3, #104 ; 0x68 + 80339de: 2b12 cmp r3, #18 + 80339e0: d866 bhi.n 8033ab0 <_vsnprintf+0x29c> + 80339e2: a201 add r2, pc, #4 ; (adr r2, 80339e8 <_vsnprintf+0x1d4>) + 80339e4: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 80339e8: 08033a5b .word 0x08033a5b + 80339ec: 08033ab1 .word 0x08033ab1 + 80339f0: 08033a91 .word 0x08033a91 + 80339f4: 08033ab1 .word 0x08033ab1 + 80339f8: 08033a35 .word 0x08033a35 + 80339fc: 08033ab1 .word 0x08033ab1 + 8033a00: 08033ab1 .word 0x08033ab1 + 8033a04: 08033ab1 .word 0x08033ab1 + 8033a08: 08033ab1 .word 0x08033ab1 + 8033a0c: 08033ab1 .word 0x08033ab1 + 8033a10: 08033ab1 .word 0x08033ab1 + 8033a14: 08033ab1 .word 0x08033ab1 + 8033a18: 08033a81 .word 0x08033a81 + 8033a1c: 08033ab1 .word 0x08033ab1 + 8033a20: 08033ab1 .word 0x08033ab1 + 8033a24: 08033ab1 .word 0x08033ab1 + 8033a28: 08033ab1 .word 0x08033ab1 + 8033a2c: 08033ab1 .word 0x08033ab1 + 8033a30: 08033aa1 .word 0x08033aa1 case 'l' : flags |= FLAGS_LONG; - 8033ac8: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033aca: f443 7380 orr.w r3, r3, #256 ; 0x100 - 8033ace: 65fb str r3, [r7, #92] ; 0x5c + 8033a34: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033a36: f443 7380 orr.w r3, r3, #256 ; 0x100 + 8033a3a: 65fb str r3, [r7, #92] ; 0x5c format++; - 8033ad0: 683b ldr r3, [r7, #0] - 8033ad2: 3301 adds r3, #1 - 8033ad4: 603b str r3, [r7, #0] + 8033a3c: 683b ldr r3, [r7, #0] + 8033a3e: 3301 adds r3, #1 + 8033a40: 603b str r3, [r7, #0] if(*format == 'l') { - 8033ad6: 683b ldr r3, [r7, #0] - 8033ad8: 781b ldrb r3, [r3, #0] - 8033ada: 2b6c cmp r3, #108 ; 0x6c - 8033adc: d134 bne.n 8033b48 <_vsnprintf+0x2a0> + 8033a42: 683b ldr r3, [r7, #0] + 8033a44: 781b ldrb r3, [r3, #0] + 8033a46: 2b6c cmp r3, #108 ; 0x6c + 8033a48: d134 bne.n 8033ab4 <_vsnprintf+0x2a0> flags |= FLAGS_LONG_LONG; - 8033ade: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033ae0: f443 7300 orr.w r3, r3, #512 ; 0x200 - 8033ae4: 65fb str r3, [r7, #92] ; 0x5c + 8033a4a: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033a4c: f443 7300 orr.w r3, r3, #512 ; 0x200 + 8033a50: 65fb str r3, [r7, #92] ; 0x5c format++; - 8033ae6: 683b ldr r3, [r7, #0] - 8033ae8: 3301 adds r3, #1 - 8033aea: 603b str r3, [r7, #0] + 8033a52: 683b ldr r3, [r7, #0] + 8033a54: 3301 adds r3, #1 + 8033a56: 603b str r3, [r7, #0] } break; - 8033aec: e02c b.n 8033b48 <_vsnprintf+0x2a0> + 8033a58: e02c b.n 8033ab4 <_vsnprintf+0x2a0> case 'h' : flags |= FLAGS_SHORT; - 8033aee: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033af0: f043 0380 orr.w r3, r3, #128 ; 0x80 - 8033af4: 65fb str r3, [r7, #92] ; 0x5c + 8033a5a: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033a5c: f043 0380 orr.w r3, r3, #128 ; 0x80 + 8033a60: 65fb str r3, [r7, #92] ; 0x5c format++; - 8033af6: 683b ldr r3, [r7, #0] - 8033af8: 3301 adds r3, #1 - 8033afa: 603b str r3, [r7, #0] + 8033a62: 683b ldr r3, [r7, #0] + 8033a64: 3301 adds r3, #1 + 8033a66: 603b str r3, [r7, #0] if(*format == 'h') { - 8033afc: 683b ldr r3, [r7, #0] - 8033afe: 781b ldrb r3, [r3, #0] - 8033b00: 2b68 cmp r3, #104 ; 0x68 - 8033b02: d125 bne.n 8033b50 <_vsnprintf+0x2a8> + 8033a68: 683b ldr r3, [r7, #0] + 8033a6a: 781b ldrb r3, [r3, #0] + 8033a6c: 2b68 cmp r3, #104 ; 0x68 + 8033a6e: d125 bne.n 8033abc <_vsnprintf+0x2a8> flags |= FLAGS_CHAR; - 8033b04: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033b06: f043 0340 orr.w r3, r3, #64 ; 0x40 - 8033b0a: 65fb str r3, [r7, #92] ; 0x5c + 8033a70: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033a72: f043 0340 orr.w r3, r3, #64 ; 0x40 + 8033a76: 65fb str r3, [r7, #92] ; 0x5c format++; - 8033b0c: 683b ldr r3, [r7, #0] - 8033b0e: 3301 adds r3, #1 - 8033b10: 603b str r3, [r7, #0] + 8033a78: 683b ldr r3, [r7, #0] + 8033a7a: 3301 adds r3, #1 + 8033a7c: 603b str r3, [r7, #0] } break; - 8033b12: e01d b.n 8033b50 <_vsnprintf+0x2a8> + 8033a7e: e01d b.n 8033abc <_vsnprintf+0x2a8> #if defined(PRINTF_SUPPORT_PTRDIFF_T) case 't' : flags |= (sizeof(ptrdiff_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG); - 8033b14: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033b16: f443 7380 orr.w r3, r3, #256 ; 0x100 - 8033b1a: 65fb str r3, [r7, #92] ; 0x5c + 8033a80: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033a82: f443 7380 orr.w r3, r3, #256 ; 0x100 + 8033a86: 65fb str r3, [r7, #92] ; 0x5c format++; - 8033b1c: 683b ldr r3, [r7, #0] - 8033b1e: 3301 adds r3, #1 - 8033b20: 603b str r3, [r7, #0] + 8033a88: 683b ldr r3, [r7, #0] + 8033a8a: 3301 adds r3, #1 + 8033a8c: 603b str r3, [r7, #0] break; - 8033b22: e016 b.n 8033b52 <_vsnprintf+0x2aa> + 8033a8e: e016 b.n 8033abe <_vsnprintf+0x2aa> #endif case 'j' : flags |= (sizeof(intmax_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG); - 8033b24: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033b26: f443 7300 orr.w r3, r3, #512 ; 0x200 - 8033b2a: 65fb str r3, [r7, #92] ; 0x5c + 8033a90: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033a92: f443 7300 orr.w r3, r3, #512 ; 0x200 + 8033a96: 65fb str r3, [r7, #92] ; 0x5c format++; - 8033b2c: 683b ldr r3, [r7, #0] - 8033b2e: 3301 adds r3, #1 - 8033b30: 603b str r3, [r7, #0] + 8033a98: 683b ldr r3, [r7, #0] + 8033a9a: 3301 adds r3, #1 + 8033a9c: 603b str r3, [r7, #0] break; - 8033b32: e00e b.n 8033b52 <_vsnprintf+0x2aa> + 8033a9e: e00e b.n 8033abe <_vsnprintf+0x2aa> case 'z' : flags |= (sizeof(size_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG); - 8033b34: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033b36: f443 7380 orr.w r3, r3, #256 ; 0x100 - 8033b3a: 65fb str r3, [r7, #92] ; 0x5c + 8033aa0: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033aa2: f443 7380 orr.w r3, r3, #256 ; 0x100 + 8033aa6: 65fb str r3, [r7, #92] ; 0x5c format++; - 8033b3c: 683b ldr r3, [r7, #0] - 8033b3e: 3301 adds r3, #1 - 8033b40: 603b str r3, [r7, #0] + 8033aa8: 683b ldr r3, [r7, #0] + 8033aaa: 3301 adds r3, #1 + 8033aac: 603b str r3, [r7, #0] break; - 8033b42: e006 b.n 8033b52 <_vsnprintf+0x2aa> + 8033aae: e006 b.n 8033abe <_vsnprintf+0x2aa> default : break; - 8033b44: bf00 nop - 8033b46: e004 b.n 8033b52 <_vsnprintf+0x2aa> + 8033ab0: bf00 nop + 8033ab2: e004 b.n 8033abe <_vsnprintf+0x2aa> break; - 8033b48: bf00 nop - 8033b4a: e002 b.n 8033b52 <_vsnprintf+0x2aa> - 8033b4c: 080333e3 .word 0x080333e3 + 8033ab4: bf00 nop + 8033ab6: e002 b.n 8033abe <_vsnprintf+0x2aa> + 8033ab8: 0803334f .word 0x0803334f break; - 8033b50: bf00 nop + 8033abc: bf00 nop } // evaluate specifier switch(*format) { - 8033b52: 683b ldr r3, [r7, #0] - 8033b54: 781b ldrb r3, [r3, #0] - 8033b56: 2b78 cmp r3, #120 ; 0x78 - 8033b58: f300 8279 bgt.w 803404e <_vsnprintf+0x7a6> - 8033b5c: 2b62 cmp r3, #98 ; 0x62 - 8033b5e: da0a bge.n 8033b76 <_vsnprintf+0x2ce> - 8033b60: 2b58 cmp r3, #88 ; 0x58 - 8033b62: d02a beq.n 8033bba <_vsnprintf+0x312> - 8033b64: 2b58 cmp r3, #88 ; 0x58 - 8033b66: f300 8272 bgt.w 803404e <_vsnprintf+0x7a6> - 8033b6a: 2b25 cmp r3, #37 ; 0x25 - 8033b6c: f000 8263 beq.w 8034036 <_vsnprintf+0x78e> - 8033b70: 2b50 cmp r3, #80 ; 0x50 - 8033b72: d022 beq.n 8033bba <_vsnprintf+0x312> - 8033b74: e26b b.n 803404e <_vsnprintf+0x7a6> - 8033b76: 3b62 subs r3, #98 ; 0x62 - 8033b78: 2201 movs r2, #1 - 8033b7a: fa02 f303 lsl.w r3, r2, r3 - 8033b7e: 4a8c ldr r2, [pc, #560] ; (8033db0 <_vsnprintf+0x508>) - 8033b80: 401a ands r2, r3 - 8033b82: 2a00 cmp r2, #0 - 8033b84: bf14 ite ne - 8033b86: 2201 movne r2, #1 - 8033b88: 2200 moveq r2, #0 - 8033b8a: b2d2 uxtb r2, r2 - 8033b8c: 2a00 cmp r2, #0 - 8033b8e: d114 bne.n 8033bba <_vsnprintf+0x312> - 8033b90: f403 3200 and.w r2, r3, #131072 ; 0x20000 - 8033b94: 2a00 cmp r2, #0 - 8033b96: bf14 ite ne - 8033b98: 2201 movne r2, #1 - 8033b9a: 2200 moveq r2, #0 - 8033b9c: b2d2 uxtb r2, r2 - 8033b9e: 2a00 cmp r2, #0 - 8033ba0: f040 81e5 bne.w 8033f6e <_vsnprintf+0x6c6> - 8033ba4: f003 0302 and.w r3, r3, #2 - 8033ba8: 2b00 cmp r3, #0 - 8033baa: bf14 ite ne - 8033bac: 2301 movne r3, #1 - 8033bae: 2300 moveq r3, #0 - 8033bb0: b2db uxtb r3, r3 - 8033bb2: 2b00 cmp r3, #0 - 8033bb4: f040 819f bne.w 8033ef6 <_vsnprintf+0x64e> - 8033bb8: e249 b.n 803404e <_vsnprintf+0x7a6> + 8033abe: 683b ldr r3, [r7, #0] + 8033ac0: 781b ldrb r3, [r3, #0] + 8033ac2: 2b78 cmp r3, #120 ; 0x78 + 8033ac4: f300 8279 bgt.w 8033fba <_vsnprintf+0x7a6> + 8033ac8: 2b62 cmp r3, #98 ; 0x62 + 8033aca: da0a bge.n 8033ae2 <_vsnprintf+0x2ce> + 8033acc: 2b58 cmp r3, #88 ; 0x58 + 8033ace: d02a beq.n 8033b26 <_vsnprintf+0x312> + 8033ad0: 2b58 cmp r3, #88 ; 0x58 + 8033ad2: f300 8272 bgt.w 8033fba <_vsnprintf+0x7a6> + 8033ad6: 2b25 cmp r3, #37 ; 0x25 + 8033ad8: f000 8263 beq.w 8033fa2 <_vsnprintf+0x78e> + 8033adc: 2b50 cmp r3, #80 ; 0x50 + 8033ade: d022 beq.n 8033b26 <_vsnprintf+0x312> + 8033ae0: e26b b.n 8033fba <_vsnprintf+0x7a6> + 8033ae2: 3b62 subs r3, #98 ; 0x62 + 8033ae4: 2201 movs r2, #1 + 8033ae6: fa02 f303 lsl.w r3, r2, r3 + 8033aea: 4a8c ldr r2, [pc, #560] ; (8033d1c <_vsnprintf+0x508>) + 8033aec: 401a ands r2, r3 + 8033aee: 2a00 cmp r2, #0 + 8033af0: bf14 ite ne + 8033af2: 2201 movne r2, #1 + 8033af4: 2200 moveq r2, #0 + 8033af6: b2d2 uxtb r2, r2 + 8033af8: 2a00 cmp r2, #0 + 8033afa: d114 bne.n 8033b26 <_vsnprintf+0x312> + 8033afc: f403 3200 and.w r2, r3, #131072 ; 0x20000 + 8033b00: 2a00 cmp r2, #0 + 8033b02: bf14 ite ne + 8033b04: 2201 movne r2, #1 + 8033b06: 2200 moveq r2, #0 + 8033b08: b2d2 uxtb r2, r2 + 8033b0a: 2a00 cmp r2, #0 + 8033b0c: f040 81e5 bne.w 8033eda <_vsnprintf+0x6c6> + 8033b10: f003 0302 and.w r3, r3, #2 + 8033b14: 2b00 cmp r3, #0 + 8033b16: bf14 ite ne + 8033b18: 2301 movne r3, #1 + 8033b1a: 2300 moveq r3, #0 + 8033b1c: b2db uxtb r3, r3 + 8033b1e: 2b00 cmp r3, #0 + 8033b20: f040 819f bne.w 8033e62 <_vsnprintf+0x64e> + 8033b24: e249 b.n 8033fba <_vsnprintf+0x7a6> case 'P' : case 'o' : case 'b' : { // set the base unsigned int base; if(*format == 'x' || *format == 'X') { - 8033bba: 683b ldr r3, [r7, #0] - 8033bbc: 781b ldrb r3, [r3, #0] - 8033bbe: 2b78 cmp r3, #120 ; 0x78 - 8033bc0: d003 beq.n 8033bca <_vsnprintf+0x322> - 8033bc2: 683b ldr r3, [r7, #0] - 8033bc4: 781b ldrb r3, [r3, #0] - 8033bc6: 2b58 cmp r3, #88 ; 0x58 - 8033bc8: d102 bne.n 8033bd0 <_vsnprintf+0x328> + 8033b26: 683b ldr r3, [r7, #0] + 8033b28: 781b ldrb r3, [r3, #0] + 8033b2a: 2b78 cmp r3, #120 ; 0x78 + 8033b2c: d003 beq.n 8033b36 <_vsnprintf+0x322> + 8033b2e: 683b ldr r3, [r7, #0] + 8033b30: 781b ldrb r3, [r3, #0] + 8033b32: 2b58 cmp r3, #88 ; 0x58 + 8033b34: d102 bne.n 8033b3c <_vsnprintf+0x328> base = 16U; - 8033bca: 2310 movs r3, #16 - 8033bcc: 64bb str r3, [r7, #72] ; 0x48 - 8033bce: e02e b.n 8033c2e <_vsnprintf+0x386> + 8033b36: 2310 movs r3, #16 + 8033b38: 64bb str r3, [r7, #72] ; 0x48 + 8033b3a: e02e b.n 8033b9a <_vsnprintf+0x386> } else if(*format == 'p' || *format == 'P') { - 8033bd0: 683b ldr r3, [r7, #0] - 8033bd2: 781b ldrb r3, [r3, #0] - 8033bd4: 2b70 cmp r3, #112 ; 0x70 - 8033bd6: d003 beq.n 8033be0 <_vsnprintf+0x338> - 8033bd8: 683b ldr r3, [r7, #0] - 8033bda: 781b ldrb r3, [r3, #0] - 8033bdc: 2b50 cmp r3, #80 ; 0x50 - 8033bde: d112 bne.n 8033c06 <_vsnprintf+0x35e> + 8033b3c: 683b ldr r3, [r7, #0] + 8033b3e: 781b ldrb r3, [r3, #0] + 8033b40: 2b70 cmp r3, #112 ; 0x70 + 8033b42: d003 beq.n 8033b4c <_vsnprintf+0x338> + 8033b44: 683b ldr r3, [r7, #0] + 8033b46: 781b ldrb r3, [r3, #0] + 8033b48: 2b50 cmp r3, #80 ; 0x50 + 8033b4a: d112 bne.n 8033b72 <_vsnprintf+0x35e> base = 16U; - 8033be0: 2310 movs r3, #16 - 8033be2: 64bb str r3, [r7, #72] ; 0x48 + 8033b4c: 2310 movs r3, #16 + 8033b4e: 64bb str r3, [r7, #72] ; 0x48 flags |= FLAGS_HASH; // always hash for pointer format - 8033be4: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033be6: f043 0310 orr.w r3, r3, #16 - 8033bea: 65fb str r3, [r7, #92] ; 0x5c + 8033b50: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033b52: f043 0310 orr.w r3, r3, #16 + 8033b56: 65fb str r3, [r7, #92] ; 0x5c #if defined(PRINTF_SUPPORT_LONG_LONG) if(sizeof(uintptr_t) == sizeof(long long)) flags |= FLAGS_LONG_LONG; else #endif flags |= FLAGS_LONG; - 8033bec: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033bee: f443 7380 orr.w r3, r3, #256 ; 0x100 - 8033bf2: 65fb str r3, [r7, #92] ; 0x5c + 8033b58: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033b5a: f443 7380 orr.w r3, r3, #256 ; 0x100 + 8033b5e: 65fb str r3, [r7, #92] ; 0x5c if(*(format + 1) == 'V') - 8033bf4: 683b ldr r3, [r7, #0] - 8033bf6: 3301 adds r3, #1 - 8033bf8: 781b ldrb r3, [r3, #0] - 8033bfa: 2b56 cmp r3, #86 ; 0x56 - 8033bfc: d117 bne.n 8033c2e <_vsnprintf+0x386> + 8033b60: 683b ldr r3, [r7, #0] + 8033b62: 3301 adds r3, #1 + 8033b64: 781b ldrb r3, [r3, #0] + 8033b66: 2b56 cmp r3, #86 ; 0x56 + 8033b68: d117 bne.n 8033b9a <_vsnprintf+0x386> format++; - 8033bfe: 683b ldr r3, [r7, #0] - 8033c00: 3301 adds r3, #1 - 8033c02: 603b str r3, [r7, #0] + 8033b6a: 683b ldr r3, [r7, #0] + 8033b6c: 3301 adds r3, #1 + 8033b6e: 603b str r3, [r7, #0] if(*(format + 1) == 'V') - 8033c04: e013 b.n 8033c2e <_vsnprintf+0x386> + 8033b70: e013 b.n 8033b9a <_vsnprintf+0x386> } else if(*format == 'o') { - 8033c06: 683b ldr r3, [r7, #0] - 8033c08: 781b ldrb r3, [r3, #0] - 8033c0a: 2b6f cmp r3, #111 ; 0x6f - 8033c0c: d102 bne.n 8033c14 <_vsnprintf+0x36c> + 8033b72: 683b ldr r3, [r7, #0] + 8033b74: 781b ldrb r3, [r3, #0] + 8033b76: 2b6f cmp r3, #111 ; 0x6f + 8033b78: d102 bne.n 8033b80 <_vsnprintf+0x36c> base = 8U; - 8033c0e: 2308 movs r3, #8 - 8033c10: 64bb str r3, [r7, #72] ; 0x48 - 8033c12: e00c b.n 8033c2e <_vsnprintf+0x386> + 8033b7a: 2308 movs r3, #8 + 8033b7c: 64bb str r3, [r7, #72] ; 0x48 + 8033b7e: e00c b.n 8033b9a <_vsnprintf+0x386> } else if(*format == 'b') { - 8033c14: 683b ldr r3, [r7, #0] - 8033c16: 781b ldrb r3, [r3, #0] - 8033c18: 2b62 cmp r3, #98 ; 0x62 - 8033c1a: d102 bne.n 8033c22 <_vsnprintf+0x37a> + 8033b80: 683b ldr r3, [r7, #0] + 8033b82: 781b ldrb r3, [r3, #0] + 8033b84: 2b62 cmp r3, #98 ; 0x62 + 8033b86: d102 bne.n 8033b8e <_vsnprintf+0x37a> base = 2U; - 8033c1c: 2302 movs r3, #2 - 8033c1e: 64bb str r3, [r7, #72] ; 0x48 - 8033c20: e005 b.n 8033c2e <_vsnprintf+0x386> + 8033b88: 2302 movs r3, #2 + 8033b8a: 64bb str r3, [r7, #72] ; 0x48 + 8033b8c: e005 b.n 8033b9a <_vsnprintf+0x386> } else { base = 10U; - 8033c22: 230a movs r3, #10 - 8033c24: 64bb str r3, [r7, #72] ; 0x48 + 8033b8e: 230a movs r3, #10 + 8033b90: 64bb str r3, [r7, #72] ; 0x48 flags &= ~FLAGS_HASH; // no hash for dec format - 8033c26: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033c28: f023 0310 bic.w r3, r3, #16 - 8033c2c: 65fb str r3, [r7, #92] ; 0x5c + 8033b92: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033b94: f023 0310 bic.w r3, r3, #16 + 8033b98: 65fb str r3, [r7, #92] ; 0x5c } // uppercase if(*format == 'X' || *format == 'P') { - 8033c2e: 683b ldr r3, [r7, #0] - 8033c30: 781b ldrb r3, [r3, #0] - 8033c32: 2b58 cmp r3, #88 ; 0x58 - 8033c34: d003 beq.n 8033c3e <_vsnprintf+0x396> - 8033c36: 683b ldr r3, [r7, #0] - 8033c38: 781b ldrb r3, [r3, #0] - 8033c3a: 2b50 cmp r3, #80 ; 0x50 - 8033c3c: d103 bne.n 8033c46 <_vsnprintf+0x39e> + 8033b9a: 683b ldr r3, [r7, #0] + 8033b9c: 781b ldrb r3, [r3, #0] + 8033b9e: 2b58 cmp r3, #88 ; 0x58 + 8033ba0: d003 beq.n 8033baa <_vsnprintf+0x396> + 8033ba2: 683b ldr r3, [r7, #0] + 8033ba4: 781b ldrb r3, [r3, #0] + 8033ba6: 2b50 cmp r3, #80 ; 0x50 + 8033ba8: d103 bne.n 8033bb2 <_vsnprintf+0x39e> flags |= FLAGS_UPPERCASE; - 8033c3e: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033c40: f043 0320 orr.w r3, r3, #32 - 8033c44: 65fb str r3, [r7, #92] ; 0x5c + 8033baa: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033bac: f043 0320 orr.w r3, r3, #32 + 8033bb0: 65fb str r3, [r7, #92] ; 0x5c } // no plus or space flag for u, x, X, o, b if((*format != 'i') && (*format != 'd')) { - 8033c46: 683b ldr r3, [r7, #0] - 8033c48: 781b ldrb r3, [r3, #0] - 8033c4a: 2b69 cmp r3, #105 ; 0x69 - 8033c4c: d007 beq.n 8033c5e <_vsnprintf+0x3b6> - 8033c4e: 683b ldr r3, [r7, #0] - 8033c50: 781b ldrb r3, [r3, #0] - 8033c52: 2b64 cmp r3, #100 ; 0x64 - 8033c54: d003 beq.n 8033c5e <_vsnprintf+0x3b6> + 8033bb2: 683b ldr r3, [r7, #0] + 8033bb4: 781b ldrb r3, [r3, #0] + 8033bb6: 2b69 cmp r3, #105 ; 0x69 + 8033bb8: d007 beq.n 8033bca <_vsnprintf+0x3b6> + 8033bba: 683b ldr r3, [r7, #0] + 8033bbc: 781b ldrb r3, [r3, #0] + 8033bbe: 2b64 cmp r3, #100 ; 0x64 + 8033bc0: d003 beq.n 8033bca <_vsnprintf+0x3b6> flags &= ~(FLAGS_PLUS | FLAGS_SPACE); - 8033c56: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033c58: f023 030c bic.w r3, r3, #12 - 8033c5c: 65fb str r3, [r7, #92] ; 0x5c + 8033bc2: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033bc4: f023 030c bic.w r3, r3, #12 + 8033bc8: 65fb str r3, [r7, #92] ; 0x5c } // ignore '0' flag when precision is given if(flags & FLAGS_PRECISION) { - 8033c5e: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033c60: f403 6380 and.w r3, r3, #1024 ; 0x400 - 8033c64: 2b00 cmp r3, #0 - 8033c66: d003 beq.n 8033c70 <_vsnprintf+0x3c8> + 8033bca: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033bcc: f403 6380 and.w r3, r3, #1024 ; 0x400 + 8033bd0: 2b00 cmp r3, #0 + 8033bd2: d003 beq.n 8033bdc <_vsnprintf+0x3c8> flags &= ~FLAGS_ZEROPAD; - 8033c68: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033c6a: f023 0301 bic.w r3, r3, #1 - 8033c6e: 65fb str r3, [r7, #92] ; 0x5c + 8033bd4: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033bd6: f023 0301 bic.w r3, r3, #1 + 8033bda: 65fb str r3, [r7, #92] ; 0x5c } // convert the integer if((*format == 'i') || (*format == 'd')) { - 8033c70: 683b ldr r3, [r7, #0] - 8033c72: 781b ldrb r3, [r3, #0] - 8033c74: 2b69 cmp r3, #105 ; 0x69 - 8033c76: d004 beq.n 8033c82 <_vsnprintf+0x3da> - 8033c78: 683b ldr r3, [r7, #0] - 8033c7a: 781b ldrb r3, [r3, #0] - 8033c7c: 2b64 cmp r3, #100 ; 0x64 - 8033c7e: f040 8099 bne.w 8033db4 <_vsnprintf+0x50c> + 8033bdc: 683b ldr r3, [r7, #0] + 8033bde: 781b ldrb r3, [r3, #0] + 8033be0: 2b69 cmp r3, #105 ; 0x69 + 8033be2: d004 beq.n 8033bee <_vsnprintf+0x3da> + 8033be4: 683b ldr r3, [r7, #0] + 8033be6: 781b ldrb r3, [r3, #0] + 8033be8: 2b64 cmp r3, #100 ; 0x64 + 8033bea: f040 8099 bne.w 8033d20 <_vsnprintf+0x50c> // signed if(flags & FLAGS_LONG_LONG) { - 8033c82: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033c84: f403 7300 and.w r3, r3, #512 ; 0x200 - 8033c88: 2b00 cmp r3, #0 - 8033c8a: d030 beq.n 8033cee <_vsnprintf+0x446> + 8033bee: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033bf0: f403 7300 and.w r3, r3, #512 ; 0x200 + 8033bf4: 2b00 cmp r3, #0 + 8033bf6: d030 beq.n 8033c5a <_vsnprintf+0x446> #if defined(PRINTF_SUPPORT_LONG_LONG) const long long value = va_arg(va, long long); - 8033c8c: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8033c90: 3307 adds r3, #7 - 8033c92: f023 0307 bic.w r3, r3, #7 - 8033c96: f103 0208 add.w r2, r3, #8 - 8033c9a: f8c7 2088 str.w r2, [r7, #136] ; 0x88 - 8033c9e: e9d3 2300 ldrd r2, r3, [r3] - 8033ca2: e9c7 2306 strd r2, r3, [r7, #24] + 8033bf8: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8033bfc: 3307 adds r3, #7 + 8033bfe: f023 0307 bic.w r3, r3, #7 + 8033c02: f103 0208 add.w r2, r3, #8 + 8033c06: f8c7 2088 str.w r2, [r7, #136] ; 0x88 + 8033c0a: e9d3 2300 ldrd r2, r3, [r3] + 8033c0e: e9c7 2306 strd r2, r3, [r7, #24] idx = _ntoa_long_long(out, buffer, idx, maxlen, (unsigned long long)(value > 0 ? value : 0 - value), value < 0, base, - 8033ca6: e9d7 2306 ldrd r2, r3, [r7, #24] - 8033caa: 2b00 cmp r3, #0 - 8033cac: da05 bge.n 8033cba <_vsnprintf+0x412> - 8033cae: 2100 movs r1, #0 - 8033cb0: 4254 negs r4, r2 - 8033cb2: eb61 0503 sbc.w r5, r1, r3 - 8033cb6: 4622 mov r2, r4 - 8033cb8: 462b mov r3, r5 - 8033cba: 69f9 ldr r1, [r7, #28] - 8033cbc: 0fc9 lsrs r1, r1, #31 - 8033cbe: b2c9 uxtb r1, r1 - 8033cc0: 6cb8 ldr r0, [r7, #72] ; 0x48 - 8033cc2: 2600 movs r6, #0 - 8033cc4: 4680 mov r8, r0 - 8033cc6: 46b1 mov r9, r6 - 8033cc8: 6df8 ldr r0, [r7, #92] ; 0x5c - 8033cca: 9008 str r0, [sp, #32] - 8033ccc: 6db8 ldr r0, [r7, #88] ; 0x58 - 8033cce: 9007 str r0, [sp, #28] - 8033cd0: 6d78 ldr r0, [r7, #84] ; 0x54 - 8033cd2: 9006 str r0, [sp, #24] - 8033cd4: e9cd 8904 strd r8, r9, [sp, #16] - 8033cd8: 9102 str r1, [sp, #8] - 8033cda: e9cd 2300 strd r2, r3, [sp] - 8033cde: 687b ldr r3, [r7, #4] - 8033ce0: 6cfa ldr r2, [r7, #76] ; 0x4c - 8033ce2: 68b9 ldr r1, [r7, #8] - 8033ce4: 68f8 ldr r0, [r7, #12] - 8033ce6: f7ff fd71 bl 80337cc <_ntoa_long_long> - 8033cea: 64f8 str r0, [r7, #76] ; 0x4c + 8033c12: e9d7 2306 ldrd r2, r3, [r7, #24] + 8033c16: 2b00 cmp r3, #0 + 8033c18: da05 bge.n 8033c26 <_vsnprintf+0x412> + 8033c1a: 2100 movs r1, #0 + 8033c1c: 4254 negs r4, r2 + 8033c1e: eb61 0503 sbc.w r5, r1, r3 + 8033c22: 4622 mov r2, r4 + 8033c24: 462b mov r3, r5 + 8033c26: 69f9 ldr r1, [r7, #28] + 8033c28: 0fc9 lsrs r1, r1, #31 + 8033c2a: b2c9 uxtb r1, r1 + 8033c2c: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8033c2e: 2600 movs r6, #0 + 8033c30: 4680 mov r8, r0 + 8033c32: 46b1 mov r9, r6 + 8033c34: 6df8 ldr r0, [r7, #92] ; 0x5c + 8033c36: 9008 str r0, [sp, #32] + 8033c38: 6db8 ldr r0, [r7, #88] ; 0x58 + 8033c3a: 9007 str r0, [sp, #28] + 8033c3c: 6d78 ldr r0, [r7, #84] ; 0x54 + 8033c3e: 9006 str r0, [sp, #24] + 8033c40: e9cd 8904 strd r8, r9, [sp, #16] + 8033c44: 9102 str r1, [sp, #8] + 8033c46: e9cd 2300 strd r2, r3, [sp] + 8033c4a: 687b ldr r3, [r7, #4] + 8033c4c: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033c4e: 68b9 ldr r1, [r7, #8] + 8033c50: 68f8 ldr r0, [r7, #12] + 8033c52: f7ff fd71 bl 8033738 <_ntoa_long_long> + 8033c56: 64f8 str r0, [r7, #76] ; 0x4c if(flags & FLAGS_LONG_LONG) { - 8033cec: e0ff b.n 8033eee <_vsnprintf+0x646> + 8033c58: e0ff b.n 8033e5a <_vsnprintf+0x646> precision, width, flags); #endif } else if(flags & FLAGS_LONG) { - 8033cee: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033cf0: f403 7380 and.w r3, r3, #256 ; 0x100 - 8033cf4: 2b00 cmp r3, #0 - 8033cf6: d020 beq.n 8033d3a <_vsnprintf+0x492> + 8033c5a: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033c5c: f403 7380 and.w r3, r3, #256 ; 0x100 + 8033c60: 2b00 cmp r3, #0 + 8033c62: d020 beq.n 8033ca6 <_vsnprintf+0x492> const long value = va_arg(va, long); - 8033cf8: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8033cfc: 1d1a adds r2, r3, #4 - 8033cfe: f8c7 2088 str.w r2, [r7, #136] ; 0x88 - 8033d02: 681b ldr r3, [r3, #0] - 8033d04: 627b str r3, [r7, #36] ; 0x24 + 8033c64: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8033c68: 1d1a adds r2, r3, #4 + 8033c6a: f8c7 2088 str.w r2, [r7, #136] ; 0x88 + 8033c6e: 681b ldr r3, [r3, #0] + 8033c70: 627b str r3, [r7, #36] ; 0x24 idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned long)(value > 0 ? value : 0 - value), value < 0, base, precision, - 8033d06: 6a7b ldr r3, [r7, #36] ; 0x24 - 8033d08: 2b00 cmp r3, #0 - 8033d0a: bfb8 it lt - 8033d0c: 425b neglt r3, r3 - 8033d0e: 4619 mov r1, r3 - 8033d10: 6a7b ldr r3, [r7, #36] ; 0x24 - 8033d12: 0fdb lsrs r3, r3, #31 - 8033d14: b2db uxtb r3, r3 - 8033d16: 6dfa ldr r2, [r7, #92] ; 0x5c - 8033d18: 9205 str r2, [sp, #20] - 8033d1a: 6dba ldr r2, [r7, #88] ; 0x58 - 8033d1c: 9204 str r2, [sp, #16] - 8033d1e: 6d7a ldr r2, [r7, #84] ; 0x54 - 8033d20: 9203 str r2, [sp, #12] - 8033d22: 6cba ldr r2, [r7, #72] ; 0x48 - 8033d24: 9202 str r2, [sp, #8] - 8033d26: 9301 str r3, [sp, #4] - 8033d28: 9100 str r1, [sp, #0] - 8033d2a: 687b ldr r3, [r7, #4] - 8033d2c: 6cfa ldr r2, [r7, #76] ; 0x4c - 8033d2e: 68b9 ldr r1, [r7, #8] - 8033d30: 68f8 ldr r0, [r7, #12] - 8033d32: f7ff fce5 bl 8033700 <_ntoa_long> - 8033d36: 64f8 str r0, [r7, #76] ; 0x4c + 8033c72: 6a7b ldr r3, [r7, #36] ; 0x24 + 8033c74: 2b00 cmp r3, #0 + 8033c76: bfb8 it lt + 8033c78: 425b neglt r3, r3 + 8033c7a: 4619 mov r1, r3 + 8033c7c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8033c7e: 0fdb lsrs r3, r3, #31 + 8033c80: b2db uxtb r3, r3 + 8033c82: 6dfa ldr r2, [r7, #92] ; 0x5c + 8033c84: 9205 str r2, [sp, #20] + 8033c86: 6dba ldr r2, [r7, #88] ; 0x58 + 8033c88: 9204 str r2, [sp, #16] + 8033c8a: 6d7a ldr r2, [r7, #84] ; 0x54 + 8033c8c: 9203 str r2, [sp, #12] + 8033c8e: 6cba ldr r2, [r7, #72] ; 0x48 + 8033c90: 9202 str r2, [sp, #8] + 8033c92: 9301 str r3, [sp, #4] + 8033c94: 9100 str r1, [sp, #0] + 8033c96: 687b ldr r3, [r7, #4] + 8033c98: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033c9a: 68b9 ldr r1, [r7, #8] + 8033c9c: 68f8 ldr r0, [r7, #12] + 8033c9e: f7ff fce5 bl 803366c <_ntoa_long> + 8033ca2: 64f8 str r0, [r7, #76] ; 0x4c if(flags & FLAGS_LONG_LONG) { - 8033d38: e0d9 b.n 8033eee <_vsnprintf+0x646> + 8033ca4: e0d9 b.n 8033e5a <_vsnprintf+0x646> width, flags); } else { const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va, - 8033d3a: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033d3c: f003 0340 and.w r3, r3, #64 ; 0x40 - 8033d40: 2b00 cmp r3, #0 - 8033d42: d007 beq.n 8033d54 <_vsnprintf+0x4ac> - 8033d44: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8033d48: 1d1a adds r2, r3, #4 - 8033d4a: f8c7 2088 str.w r2, [r7, #136] ; 0x88 - 8033d4e: 681b ldr r3, [r3, #0] - 8033d50: b2db uxtb r3, r3 - 8033d52: e012 b.n 8033d7a <_vsnprintf+0x4d2> - 8033d54: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033d56: f003 0380 and.w r3, r3, #128 ; 0x80 + 8033ca6: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033ca8: f003 0340 and.w r3, r3, #64 ; 0x40 + 8033cac: 2b00 cmp r3, #0 + 8033cae: d007 beq.n 8033cc0 <_vsnprintf+0x4ac> + 8033cb0: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8033cb4: 1d1a adds r2, r3, #4 + 8033cb6: f8c7 2088 str.w r2, [r7, #136] ; 0x88 + 8033cba: 681b ldr r3, [r3, #0] + 8033cbc: b2db uxtb r3, r3 + 8033cbe: e012 b.n 8033ce6 <_vsnprintf+0x4d2> + 8033cc0: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033cc2: f003 0380 and.w r3, r3, #128 ; 0x80 int) : va_arg(va, int); - 8033d5a: 2b00 cmp r3, #0 - 8033d5c: d007 beq.n 8033d6e <_vsnprintf+0x4c6> + 8033cc6: 2b00 cmp r3, #0 + 8033cc8: d007 beq.n 8033cda <_vsnprintf+0x4c6> const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va, - 8033d5e: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8033d62: 1d1a adds r2, r3, #4 - 8033d64: f8c7 2088 str.w r2, [r7, #136] ; 0x88 - 8033d68: 681b ldr r3, [r3, #0] - 8033d6a: b21b sxth r3, r3 - 8033d6c: e005 b.n 8033d7a <_vsnprintf+0x4d2> + 8033cca: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8033cce: 1d1a adds r2, r3, #4 + 8033cd0: f8c7 2088 str.w r2, [r7, #136] ; 0x88 + 8033cd4: 681b ldr r3, [r3, #0] + 8033cd6: b21b sxth r3, r3 + 8033cd8: e005 b.n 8033ce6 <_vsnprintf+0x4d2> int) : va_arg(va, int); - 8033d6e: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8033d72: 1d1a adds r2, r3, #4 - 8033d74: f8c7 2088 str.w r2, [r7, #136] ; 0x88 - 8033d78: 681b ldr r3, [r3, #0] + 8033cda: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8033cde: 1d1a adds r2, r3, #4 + 8033ce0: f8c7 2088 str.w r2, [r7, #136] ; 0x88 + 8033ce4: 681b ldr r3, [r3, #0] const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va, - 8033d7a: 62bb str r3, [r7, #40] ; 0x28 + 8033ce6: 62bb str r3, [r7, #40] ; 0x28 idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned int)(value > 0 ? value : 0 - value), value < 0, base, precision, - 8033d7c: 6abb ldr r3, [r7, #40] ; 0x28 - 8033d7e: 2b00 cmp r3, #0 - 8033d80: bfb8 it lt - 8033d82: 425b neglt r3, r3 - 8033d84: 4619 mov r1, r3 - 8033d86: 6abb ldr r3, [r7, #40] ; 0x28 - 8033d88: 0fdb lsrs r3, r3, #31 - 8033d8a: b2db uxtb r3, r3 - 8033d8c: 6dfa ldr r2, [r7, #92] ; 0x5c - 8033d8e: 9205 str r2, [sp, #20] - 8033d90: 6dba ldr r2, [r7, #88] ; 0x58 - 8033d92: 9204 str r2, [sp, #16] - 8033d94: 6d7a ldr r2, [r7, #84] ; 0x54 - 8033d96: 9203 str r2, [sp, #12] - 8033d98: 6cba ldr r2, [r7, #72] ; 0x48 - 8033d9a: 9202 str r2, [sp, #8] - 8033d9c: 9301 str r3, [sp, #4] - 8033d9e: 9100 str r1, [sp, #0] - 8033da0: 687b ldr r3, [r7, #4] - 8033da2: 6cfa ldr r2, [r7, #76] ; 0x4c - 8033da4: 68b9 ldr r1, [r7, #8] - 8033da6: 68f8 ldr r0, [r7, #12] - 8033da8: f7ff fcaa bl 8033700 <_ntoa_long> - 8033dac: 64f8 str r0, [r7, #76] ; 0x4c + 8033ce8: 6abb ldr r3, [r7, #40] ; 0x28 + 8033cea: 2b00 cmp r3, #0 + 8033cec: bfb8 it lt + 8033cee: 425b neglt r3, r3 + 8033cf0: 4619 mov r1, r3 + 8033cf2: 6abb ldr r3, [r7, #40] ; 0x28 + 8033cf4: 0fdb lsrs r3, r3, #31 + 8033cf6: b2db uxtb r3, r3 + 8033cf8: 6dfa ldr r2, [r7, #92] ; 0x5c + 8033cfa: 9205 str r2, [sp, #20] + 8033cfc: 6dba ldr r2, [r7, #88] ; 0x58 + 8033cfe: 9204 str r2, [sp, #16] + 8033d00: 6d7a ldr r2, [r7, #84] ; 0x54 + 8033d02: 9203 str r2, [sp, #12] + 8033d04: 6cba ldr r2, [r7, #72] ; 0x48 + 8033d06: 9202 str r2, [sp, #8] + 8033d08: 9301 str r3, [sp, #4] + 8033d0a: 9100 str r1, [sp, #0] + 8033d0c: 687b ldr r3, [r7, #4] + 8033d0e: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033d10: 68b9 ldr r1, [r7, #8] + 8033d12: 68f8 ldr r0, [r7, #12] + 8033d14: f7ff fcaa bl 803366c <_ntoa_long> + 8033d18: 64f8 str r0, [r7, #76] ; 0x4c if(flags & FLAGS_LONG_LONG) { - 8033dae: e09e b.n 8033eee <_vsnprintf+0x646> - 8033db0: 00486085 .word 0x00486085 + 8033d1a: e09e b.n 8033e5a <_vsnprintf+0x646> + 8033d1c: 00486085 .word 0x00486085 width, flags); } } else if(*format == 'V') { - 8033db4: 683b ldr r3, [r7, #0] - 8033db6: 781b ldrb r3, [r3, #0] - 8033db8: 2b56 cmp r3, #86 ; 0x56 - 8033dba: d11e bne.n 8033dfa <_vsnprintf+0x552> + 8033d20: 683b ldr r3, [r7, #0] + 8033d22: 781b ldrb r3, [r3, #0] + 8033d24: 2b56 cmp r3, #86 ; 0x56 + 8033d26: d11e bne.n 8033d66 <_vsnprintf+0x552> lv_vaformat_t * vaf = va_arg(va, lv_vaformat_t *); - 8033dbc: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8033dc0: 1d1a adds r2, r3, #4 - 8033dc2: f8c7 2088 str.w r2, [r7, #136] ; 0x88 - 8033dc6: 681b ldr r3, [r3, #0] - 8033dc8: 62fb str r3, [r7, #44] ; 0x2c + 8033d28: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8033d2c: 1d1a adds r2, r3, #4 + 8033d2e: f8c7 2088 str.w r2, [r7, #136] ; 0x88 + 8033d32: 681b ldr r3, [r3, #0] + 8033d34: 62fb str r3, [r7, #44] ; 0x2c va_list copy; va_copy(copy, *vaf->va); - 8033dca: 6afb ldr r3, [r7, #44] ; 0x2c - 8033dcc: 685b ldr r3, [r3, #4] - 8033dce: 681b ldr r3, [r3, #0] - 8033dd0: 617b str r3, [r7, #20] + 8033d36: 6afb ldr r3, [r7, #44] ; 0x2c + 8033d38: 685b ldr r3, [r3, #4] + 8033d3a: 681b ldr r3, [r3, #0] + 8033d3c: 617b str r3, [r7, #20] idx += _vsnprintf(out, buffer + idx, maxlen - idx, vaf->fmt, copy); - 8033dd2: 68ba ldr r2, [r7, #8] - 8033dd4: 6cfb ldr r3, [r7, #76] ; 0x4c - 8033dd6: 18d1 adds r1, r2, r3 - 8033dd8: 687a ldr r2, [r7, #4] - 8033dda: 6cfb ldr r3, [r7, #76] ; 0x4c - 8033ddc: 1ad2 subs r2, r2, r3 - 8033dde: 6afb ldr r3, [r7, #44] ; 0x2c - 8033de0: 6818 ldr r0, [r3, #0] - 8033de2: 697b ldr r3, [r7, #20] - 8033de4: 9300 str r3, [sp, #0] - 8033de6: 4603 mov r3, r0 - 8033de8: 68f8 ldr r0, [r7, #12] - 8033dea: f7ff fd5d bl 80338a8 <_vsnprintf> - 8033dee: 4603 mov r3, r0 - 8033df0: 461a mov r2, r3 - 8033df2: 6cfb ldr r3, [r7, #76] ; 0x4c - 8033df4: 4413 add r3, r2 - 8033df6: 64fb str r3, [r7, #76] ; 0x4c - 8033df8: e079 b.n 8033eee <_vsnprintf+0x646> + 8033d3e: 68ba ldr r2, [r7, #8] + 8033d40: 6cfb ldr r3, [r7, #76] ; 0x4c + 8033d42: 18d1 adds r1, r2, r3 + 8033d44: 687a ldr r2, [r7, #4] + 8033d46: 6cfb ldr r3, [r7, #76] ; 0x4c + 8033d48: 1ad2 subs r2, r2, r3 + 8033d4a: 6afb ldr r3, [r7, #44] ; 0x2c + 8033d4c: 6818 ldr r0, [r3, #0] + 8033d4e: 697b ldr r3, [r7, #20] + 8033d50: 9300 str r3, [sp, #0] + 8033d52: 4603 mov r3, r0 + 8033d54: 68f8 ldr r0, [r7, #12] + 8033d56: f7ff fd5d bl 8033814 <_vsnprintf> + 8033d5a: 4603 mov r3, r0 + 8033d5c: 461a mov r2, r3 + 8033d5e: 6cfb ldr r3, [r7, #76] ; 0x4c + 8033d60: 4413 add r3, r2 + 8033d62: 64fb str r3, [r7, #76] ; 0x4c + 8033d64: e079 b.n 8033e5a <_vsnprintf+0x646> va_end(copy); } else { // unsigned if(flags & FLAGS_LONG_LONG) { - 8033dfa: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033dfc: f403 7300 and.w r3, r3, #512 ; 0x200 - 8033e00: 2b00 cmp r3, #0 - 8033e02: d022 beq.n 8033e4a <_vsnprintf+0x5a2> + 8033d66: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033d68: f403 7300 and.w r3, r3, #512 ; 0x200 + 8033d6c: 2b00 cmp r3, #0 + 8033d6e: d022 beq.n 8033db6 <_vsnprintf+0x5a2> #if defined(PRINTF_SUPPORT_LONG_LONG) idx = _ntoa_long_long(out, buffer, idx, maxlen, va_arg(va, unsigned long long), false, base, precision, width, flags); - 8033e04: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8033e08: 3307 adds r3, #7 - 8033e0a: f023 0307 bic.w r3, r3, #7 - 8033e0e: f103 0208 add.w r2, r3, #8 - 8033e12: f8c7 2088 str.w r2, [r7, #136] ; 0x88 - 8033e16: e9d3 2300 ldrd r2, r3, [r3] - 8033e1a: 6cb9 ldr r1, [r7, #72] ; 0x48 - 8033e1c: 2000 movs r0, #0 - 8033e1e: 468a mov sl, r1 - 8033e20: 4683 mov fp, r0 - 8033e22: 6df9 ldr r1, [r7, #92] ; 0x5c - 8033e24: 9108 str r1, [sp, #32] - 8033e26: 6db9 ldr r1, [r7, #88] ; 0x58 - 8033e28: 9107 str r1, [sp, #28] - 8033e2a: 6d79 ldr r1, [r7, #84] ; 0x54 - 8033e2c: 9106 str r1, [sp, #24] - 8033e2e: e9cd ab04 strd sl, fp, [sp, #16] - 8033e32: 2100 movs r1, #0 - 8033e34: 9102 str r1, [sp, #8] - 8033e36: e9cd 2300 strd r2, r3, [sp] - 8033e3a: 687b ldr r3, [r7, #4] - 8033e3c: 6cfa ldr r2, [r7, #76] ; 0x4c - 8033e3e: 68b9 ldr r1, [r7, #8] - 8033e40: 68f8 ldr r0, [r7, #12] - 8033e42: f7ff fcc3 bl 80337cc <_ntoa_long_long> - 8033e46: 64f8 str r0, [r7, #76] ; 0x4c - 8033e48: e051 b.n 8033eee <_vsnprintf+0x646> + 8033d70: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8033d74: 3307 adds r3, #7 + 8033d76: f023 0307 bic.w r3, r3, #7 + 8033d7a: f103 0208 add.w r2, r3, #8 + 8033d7e: f8c7 2088 str.w r2, [r7, #136] ; 0x88 + 8033d82: e9d3 2300 ldrd r2, r3, [r3] + 8033d86: 6cb9 ldr r1, [r7, #72] ; 0x48 + 8033d88: 2000 movs r0, #0 + 8033d8a: 468a mov sl, r1 + 8033d8c: 4683 mov fp, r0 + 8033d8e: 6df9 ldr r1, [r7, #92] ; 0x5c + 8033d90: 9108 str r1, [sp, #32] + 8033d92: 6db9 ldr r1, [r7, #88] ; 0x58 + 8033d94: 9107 str r1, [sp, #28] + 8033d96: 6d79 ldr r1, [r7, #84] ; 0x54 + 8033d98: 9106 str r1, [sp, #24] + 8033d9a: e9cd ab04 strd sl, fp, [sp, #16] + 8033d9e: 2100 movs r1, #0 + 8033da0: 9102 str r1, [sp, #8] + 8033da2: e9cd 2300 strd r2, r3, [sp] + 8033da6: 687b ldr r3, [r7, #4] + 8033da8: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033daa: 68b9 ldr r1, [r7, #8] + 8033dac: 68f8 ldr r0, [r7, #12] + 8033dae: f7ff fcc3 bl 8033738 <_ntoa_long_long> + 8033db2: 64f8 str r0, [r7, #76] ; 0x4c + 8033db4: e051 b.n 8033e5a <_vsnprintf+0x646> #endif } else if(flags & FLAGS_LONG) { - 8033e4a: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033e4c: f403 7380 and.w r3, r3, #256 ; 0x100 - 8033e50: 2b00 cmp r3, #0 - 8033e52: d018 beq.n 8033e86 <_vsnprintf+0x5de> + 8033db6: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033db8: f403 7380 and.w r3, r3, #256 ; 0x100 + 8033dbc: 2b00 cmp r3, #0 + 8033dbe: d018 beq.n 8033df2 <_vsnprintf+0x5de> idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags); - 8033e54: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8033e58: 1d1a adds r2, r3, #4 - 8033e5a: f8c7 2088 str.w r2, [r7, #136] ; 0x88 - 8033e5e: 681b ldr r3, [r3, #0] - 8033e60: 6dfa ldr r2, [r7, #92] ; 0x5c - 8033e62: 9205 str r2, [sp, #20] - 8033e64: 6dba ldr r2, [r7, #88] ; 0x58 - 8033e66: 9204 str r2, [sp, #16] - 8033e68: 6d7a ldr r2, [r7, #84] ; 0x54 - 8033e6a: 9203 str r2, [sp, #12] - 8033e6c: 6cba ldr r2, [r7, #72] ; 0x48 - 8033e6e: 9202 str r2, [sp, #8] - 8033e70: 2200 movs r2, #0 - 8033e72: 9201 str r2, [sp, #4] - 8033e74: 9300 str r3, [sp, #0] - 8033e76: 687b ldr r3, [r7, #4] - 8033e78: 6cfa ldr r2, [r7, #76] ; 0x4c - 8033e7a: 68b9 ldr r1, [r7, #8] - 8033e7c: 68f8 ldr r0, [r7, #12] - 8033e7e: f7ff fc3f bl 8033700 <_ntoa_long> - 8033e82: 64f8 str r0, [r7, #76] ; 0x4c - 8033e84: e033 b.n 8033eee <_vsnprintf+0x646> + 8033dc0: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8033dc4: 1d1a adds r2, r3, #4 + 8033dc6: f8c7 2088 str.w r2, [r7, #136] ; 0x88 + 8033dca: 681b ldr r3, [r3, #0] + 8033dcc: 6dfa ldr r2, [r7, #92] ; 0x5c + 8033dce: 9205 str r2, [sp, #20] + 8033dd0: 6dba ldr r2, [r7, #88] ; 0x58 + 8033dd2: 9204 str r2, [sp, #16] + 8033dd4: 6d7a ldr r2, [r7, #84] ; 0x54 + 8033dd6: 9203 str r2, [sp, #12] + 8033dd8: 6cba ldr r2, [r7, #72] ; 0x48 + 8033dda: 9202 str r2, [sp, #8] + 8033ddc: 2200 movs r2, #0 + 8033dde: 9201 str r2, [sp, #4] + 8033de0: 9300 str r3, [sp, #0] + 8033de2: 687b ldr r3, [r7, #4] + 8033de4: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033de6: 68b9 ldr r1, [r7, #8] + 8033de8: 68f8 ldr r0, [r7, #12] + 8033dea: f7ff fc3f bl 803366c <_ntoa_long> + 8033dee: 64f8 str r0, [r7, #76] ; 0x4c + 8033df0: e033 b.n 8033e5a <_vsnprintf+0x646> } else { const unsigned int value = (flags & FLAGS_CHAR) ? (unsigned char)va_arg(va, - 8033e86: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033e88: f003 0340 and.w r3, r3, #64 ; 0x40 + 8033df2: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033df4: f003 0340 and.w r3, r3, #64 ; 0x40 unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int) : va_arg(va, unsigned int); - 8033e8c: 2b00 cmp r3, #0 - 8033e8e: d007 beq.n 8033ea0 <_vsnprintf+0x5f8> + 8033df8: 2b00 cmp r3, #0 + 8033dfa: d007 beq.n 8033e0c <_vsnprintf+0x5f8> const unsigned int value = (flags & FLAGS_CHAR) ? (unsigned char)va_arg(va, - 8033e90: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8033e94: 1d1a adds r2, r3, #4 - 8033e96: f8c7 2088 str.w r2, [r7, #136] ; 0x88 - 8033e9a: 681b ldr r3, [r3, #0] - 8033e9c: b2db uxtb r3, r3 - 8033e9e: e012 b.n 8033ec6 <_vsnprintf+0x61e> + 8033dfc: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8033e00: 1d1a adds r2, r3, #4 + 8033e02: f8c7 2088 str.w r2, [r7, #136] ; 0x88 + 8033e06: 681b ldr r3, [r3, #0] + 8033e08: b2db uxtb r3, r3 + 8033e0a: e012 b.n 8033e32 <_vsnprintf+0x61e> unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int) : va_arg(va, unsigned int); - 8033ea0: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033ea2: f003 0380 and.w r3, r3, #128 ; 0x80 - 8033ea6: 2b00 cmp r3, #0 - 8033ea8: d007 beq.n 8033eba <_vsnprintf+0x612> - 8033eaa: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8033eae: 1d1a adds r2, r3, #4 - 8033eb0: f8c7 2088 str.w r2, [r7, #136] ; 0x88 - 8033eb4: 681b ldr r3, [r3, #0] - 8033eb6: b29b uxth r3, r3 - 8033eb8: e005 b.n 8033ec6 <_vsnprintf+0x61e> - 8033eba: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8033ebe: 1d1a adds r2, r3, #4 - 8033ec0: f8c7 2088 str.w r2, [r7, #136] ; 0x88 - 8033ec4: 681b ldr r3, [r3, #0] + 8033e0c: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033e0e: f003 0380 and.w r3, r3, #128 ; 0x80 + 8033e12: 2b00 cmp r3, #0 + 8033e14: d007 beq.n 8033e26 <_vsnprintf+0x612> + 8033e16: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8033e1a: 1d1a adds r2, r3, #4 + 8033e1c: f8c7 2088 str.w r2, [r7, #136] ; 0x88 + 8033e20: 681b ldr r3, [r3, #0] + 8033e22: b29b uxth r3, r3 + 8033e24: e005 b.n 8033e32 <_vsnprintf+0x61e> + 8033e26: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8033e2a: 1d1a adds r2, r3, #4 + 8033e2c: f8c7 2088 str.w r2, [r7, #136] ; 0x88 + 8033e30: 681b ldr r3, [r3, #0] const unsigned int value = (flags & FLAGS_CHAR) ? (unsigned char)va_arg(va, - 8033ec6: 633b str r3, [r7, #48] ; 0x30 + 8033e32: 633b str r3, [r7, #48] ; 0x30 idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags); - 8033ec8: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033eca: 9305 str r3, [sp, #20] - 8033ecc: 6dbb ldr r3, [r7, #88] ; 0x58 - 8033ece: 9304 str r3, [sp, #16] - 8033ed0: 6d7b ldr r3, [r7, #84] ; 0x54 - 8033ed2: 9303 str r3, [sp, #12] - 8033ed4: 6cbb ldr r3, [r7, #72] ; 0x48 - 8033ed6: 9302 str r3, [sp, #8] - 8033ed8: 2300 movs r3, #0 - 8033eda: 9301 str r3, [sp, #4] - 8033edc: 6b3b ldr r3, [r7, #48] ; 0x30 - 8033ede: 9300 str r3, [sp, #0] - 8033ee0: 687b ldr r3, [r7, #4] - 8033ee2: 6cfa ldr r2, [r7, #76] ; 0x4c - 8033ee4: 68b9 ldr r1, [r7, #8] - 8033ee6: 68f8 ldr r0, [r7, #12] - 8033ee8: f7ff fc0a bl 8033700 <_ntoa_long> - 8033eec: 64f8 str r0, [r7, #76] ; 0x4c + 8033e34: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033e36: 9305 str r3, [sp, #20] + 8033e38: 6dbb ldr r3, [r7, #88] ; 0x58 + 8033e3a: 9304 str r3, [sp, #16] + 8033e3c: 6d7b ldr r3, [r7, #84] ; 0x54 + 8033e3e: 9303 str r3, [sp, #12] + 8033e40: 6cbb ldr r3, [r7, #72] ; 0x48 + 8033e42: 9302 str r3, [sp, #8] + 8033e44: 2300 movs r3, #0 + 8033e46: 9301 str r3, [sp, #4] + 8033e48: 6b3b ldr r3, [r7, #48] ; 0x30 + 8033e4a: 9300 str r3, [sp, #0] + 8033e4c: 687b ldr r3, [r7, #4] + 8033e4e: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033e50: 68b9 ldr r1, [r7, #8] + 8033e52: 68f8 ldr r0, [r7, #12] + 8033e54: f7ff fc0a bl 803366c <_ntoa_long> + 8033e58: 64f8 str r0, [r7, #76] ; 0x4c } } format++; - 8033eee: 683b ldr r3, [r7, #0] - 8033ef0: 3301 adds r3, #1 - 8033ef2: 603b str r3, [r7, #0] + 8033e5a: 683b ldr r3, [r7, #0] + 8033e5c: 3301 adds r3, #1 + 8033e5e: 603b str r3, [r7, #0] break; - 8033ef4: e0b8 b.n 8034068 <_vsnprintf+0x7c0> + 8033e60: e0b8 b.n 8033fd4 <_vsnprintf+0x7c0> format++; break; #endif // PRINTF_SUPPORT_EXPONENTIAL #endif // PRINTF_SUPPORT_FLOAT case 'c' : { unsigned int l = 1U; - 8033ef6: 2301 movs r3, #1 - 8033ef8: 647b str r3, [r7, #68] ; 0x44 + 8033e62: 2301 movs r3, #1 + 8033e64: 647b str r3, [r7, #68] ; 0x44 // pre padding if(!(flags & FLAGS_LEFT)) { - 8033efa: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033efc: f003 0302 and.w r3, r3, #2 - 8033f00: 2b00 cmp r3, #0 - 8033f02: d10e bne.n 8033f22 <_vsnprintf+0x67a> + 8033e66: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033e68: f003 0302 and.w r3, r3, #2 + 8033e6c: 2b00 cmp r3, #0 + 8033e6e: d10e bne.n 8033e8e <_vsnprintf+0x67a> while(l++ < width) { - 8033f04: e007 b.n 8033f16 <_vsnprintf+0x66e> + 8033e70: e007 b.n 8033e82 <_vsnprintf+0x66e> out(' ', buffer, idx++, maxlen); - 8033f06: 6cfa ldr r2, [r7, #76] ; 0x4c - 8033f08: 1c53 adds r3, r2, #1 - 8033f0a: 64fb str r3, [r7, #76] ; 0x4c - 8033f0c: 68fe ldr r6, [r7, #12] - 8033f0e: 687b ldr r3, [r7, #4] - 8033f10: 68b9 ldr r1, [r7, #8] - 8033f12: 2020 movs r0, #32 - 8033f14: 47b0 blx r6 + 8033e72: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033e74: 1c53 adds r3, r2, #1 + 8033e76: 64fb str r3, [r7, #76] ; 0x4c + 8033e78: 68fe ldr r6, [r7, #12] + 8033e7a: 687b ldr r3, [r7, #4] + 8033e7c: 68b9 ldr r1, [r7, #8] + 8033e7e: 2020 movs r0, #32 + 8033e80: 47b0 blx r6 while(l++ < width) { - 8033f16: 6c7b ldr r3, [r7, #68] ; 0x44 - 8033f18: 1c5a adds r2, r3, #1 - 8033f1a: 647a str r2, [r7, #68] ; 0x44 - 8033f1c: 6dba ldr r2, [r7, #88] ; 0x58 - 8033f1e: 429a cmp r2, r3 - 8033f20: d8f1 bhi.n 8033f06 <_vsnprintf+0x65e> + 8033e82: 6c7b ldr r3, [r7, #68] ; 0x44 + 8033e84: 1c5a adds r2, r3, #1 + 8033e86: 647a str r2, [r7, #68] ; 0x44 + 8033e88: 6dba ldr r2, [r7, #88] ; 0x58 + 8033e8a: 429a cmp r2, r3 + 8033e8c: d8f1 bhi.n 8033e72 <_vsnprintf+0x65e> } } // char output out((char)va_arg(va, int), buffer, idx++, maxlen); - 8033f22: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8033f26: 1d1a adds r2, r3, #4 - 8033f28: f8c7 2088 str.w r2, [r7, #136] ; 0x88 - 8033f2c: 681b ldr r3, [r3, #0] - 8033f2e: b2d8 uxtb r0, r3 - 8033f30: 6cfa ldr r2, [r7, #76] ; 0x4c - 8033f32: 1c53 adds r3, r2, #1 - 8033f34: 64fb str r3, [r7, #76] ; 0x4c - 8033f36: 68fe ldr r6, [r7, #12] - 8033f38: 687b ldr r3, [r7, #4] - 8033f3a: 68b9 ldr r1, [r7, #8] - 8033f3c: 47b0 blx r6 + 8033e8e: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8033e92: 1d1a adds r2, r3, #4 + 8033e94: f8c7 2088 str.w r2, [r7, #136] ; 0x88 + 8033e98: 681b ldr r3, [r3, #0] + 8033e9a: b2d8 uxtb r0, r3 + 8033e9c: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033e9e: 1c53 adds r3, r2, #1 + 8033ea0: 64fb str r3, [r7, #76] ; 0x4c + 8033ea2: 68fe ldr r6, [r7, #12] + 8033ea4: 687b ldr r3, [r7, #4] + 8033ea6: 68b9 ldr r1, [r7, #8] + 8033ea8: 47b0 blx r6 // post padding if(flags & FLAGS_LEFT) { - 8033f3e: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033f40: f003 0302 and.w r3, r3, #2 - 8033f44: 2b00 cmp r3, #0 - 8033f46: d00e beq.n 8033f66 <_vsnprintf+0x6be> + 8033eaa: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033eac: f003 0302 and.w r3, r3, #2 + 8033eb0: 2b00 cmp r3, #0 + 8033eb2: d00e beq.n 8033ed2 <_vsnprintf+0x6be> while(l++ < width) { - 8033f48: e007 b.n 8033f5a <_vsnprintf+0x6b2> + 8033eb4: e007 b.n 8033ec6 <_vsnprintf+0x6b2> out(' ', buffer, idx++, maxlen); - 8033f4a: 6cfa ldr r2, [r7, #76] ; 0x4c - 8033f4c: 1c53 adds r3, r2, #1 - 8033f4e: 64fb str r3, [r7, #76] ; 0x4c - 8033f50: 68fe ldr r6, [r7, #12] - 8033f52: 687b ldr r3, [r7, #4] - 8033f54: 68b9 ldr r1, [r7, #8] - 8033f56: 2020 movs r0, #32 - 8033f58: 47b0 blx r6 + 8033eb6: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033eb8: 1c53 adds r3, r2, #1 + 8033eba: 64fb str r3, [r7, #76] ; 0x4c + 8033ebc: 68fe ldr r6, [r7, #12] + 8033ebe: 687b ldr r3, [r7, #4] + 8033ec0: 68b9 ldr r1, [r7, #8] + 8033ec2: 2020 movs r0, #32 + 8033ec4: 47b0 blx r6 while(l++ < width) { - 8033f5a: 6c7b ldr r3, [r7, #68] ; 0x44 - 8033f5c: 1c5a adds r2, r3, #1 - 8033f5e: 647a str r2, [r7, #68] ; 0x44 - 8033f60: 6dba ldr r2, [r7, #88] ; 0x58 - 8033f62: 429a cmp r2, r3 - 8033f64: d8f1 bhi.n 8033f4a <_vsnprintf+0x6a2> + 8033ec6: 6c7b ldr r3, [r7, #68] ; 0x44 + 8033ec8: 1c5a adds r2, r3, #1 + 8033eca: 647a str r2, [r7, #68] ; 0x44 + 8033ecc: 6dba ldr r2, [r7, #88] ; 0x58 + 8033ece: 429a cmp r2, r3 + 8033ed0: d8f1 bhi.n 8033eb6 <_vsnprintf+0x6a2> } } format++; - 8033f66: 683b ldr r3, [r7, #0] - 8033f68: 3301 adds r3, #1 - 8033f6a: 603b str r3, [r7, #0] + 8033ed2: 683b ldr r3, [r7, #0] + 8033ed4: 3301 adds r3, #1 + 8033ed6: 603b str r3, [r7, #0] break; - 8033f6c: e07c b.n 8034068 <_vsnprintf+0x7c0> + 8033ed8: e07c b.n 8033fd4 <_vsnprintf+0x7c0> } case 's' : { const char * p = va_arg(va, char *); - 8033f6e: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8033f72: 1d1a adds r2, r3, #4 - 8033f74: f8c7 2088 str.w r2, [r7, #136] ; 0x88 - 8033f78: 681b ldr r3, [r3, #0] - 8033f7a: 643b str r3, [r7, #64] ; 0x40 + 8033eda: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8033ede: 1d1a adds r2, r3, #4 + 8033ee0: f8c7 2088 str.w r2, [r7, #136] ; 0x88 + 8033ee4: 681b ldr r3, [r3, #0] + 8033ee6: 643b str r3, [r7, #64] ; 0x40 unsigned int l = _strnlen_s(p, precision ? precision : (size_t) -1); - 8033f7c: 6d7b ldr r3, [r7, #84] ; 0x54 - 8033f7e: 2b00 cmp r3, #0 - 8033f80: d001 beq.n 8033f86 <_vsnprintf+0x6de> - 8033f82: 6d7b ldr r3, [r7, #84] ; 0x54 - 8033f84: e001 b.n 8033f8a <_vsnprintf+0x6e2> - 8033f86: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 8033f8a: 4619 mov r1, r3 - 8033f8c: 6c38 ldr r0, [r7, #64] ; 0x40 - 8033f8e: f7ff fa35 bl 80333fc <_strnlen_s> - 8033f92: 63f8 str r0, [r7, #60] ; 0x3c + 8033ee8: 6d7b ldr r3, [r7, #84] ; 0x54 + 8033eea: 2b00 cmp r3, #0 + 8033eec: d001 beq.n 8033ef2 <_vsnprintf+0x6de> + 8033eee: 6d7b ldr r3, [r7, #84] ; 0x54 + 8033ef0: e001 b.n 8033ef6 <_vsnprintf+0x6e2> + 8033ef2: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 8033ef6: 4619 mov r1, r3 + 8033ef8: 6c38 ldr r0, [r7, #64] ; 0x40 + 8033efa: f7ff fa35 bl 8033368 <_strnlen_s> + 8033efe: 63f8 str r0, [r7, #60] ; 0x3c // pre padding if(flags & FLAGS_PRECISION) { - 8033f94: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033f96: f403 6380 and.w r3, r3, #1024 ; 0x400 - 8033f9a: 2b00 cmp r3, #0 - 8033f9c: d005 beq.n 8033faa <_vsnprintf+0x702> + 8033f00: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033f02: f403 6380 and.w r3, r3, #1024 ; 0x400 + 8033f06: 2b00 cmp r3, #0 + 8033f08: d005 beq.n 8033f16 <_vsnprintf+0x702> l = (l < precision ? l : precision); - 8033f9e: 6bfa ldr r2, [r7, #60] ; 0x3c - 8033fa0: 6d7b ldr r3, [r7, #84] ; 0x54 - 8033fa2: 4293 cmp r3, r2 - 8033fa4: bf28 it cs - 8033fa6: 4613 movcs r3, r2 - 8033fa8: 63fb str r3, [r7, #60] ; 0x3c + 8033f0a: 6bfa ldr r2, [r7, #60] ; 0x3c + 8033f0c: 6d7b ldr r3, [r7, #84] ; 0x54 + 8033f0e: 4293 cmp r3, r2 + 8033f10: bf28 it cs + 8033f12: 4613 movcs r3, r2 + 8033f14: 63fb str r3, [r7, #60] ; 0x3c } if(!(flags & FLAGS_LEFT)) { - 8033faa: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033fac: f003 0302 and.w r3, r3, #2 - 8033fb0: 2b00 cmp r3, #0 - 8033fb2: d11a bne.n 8033fea <_vsnprintf+0x742> + 8033f16: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033f18: f003 0302 and.w r3, r3, #2 + 8033f1c: 2b00 cmp r3, #0 + 8033f1e: d11a bne.n 8033f56 <_vsnprintf+0x742> while(l++ < width) { - 8033fb4: e007 b.n 8033fc6 <_vsnprintf+0x71e> + 8033f20: e007 b.n 8033f32 <_vsnprintf+0x71e> out(' ', buffer, idx++, maxlen); - 8033fb6: 6cfa ldr r2, [r7, #76] ; 0x4c - 8033fb8: 1c53 adds r3, r2, #1 - 8033fba: 64fb str r3, [r7, #76] ; 0x4c - 8033fbc: 68fe ldr r6, [r7, #12] - 8033fbe: 687b ldr r3, [r7, #4] - 8033fc0: 68b9 ldr r1, [r7, #8] - 8033fc2: 2020 movs r0, #32 - 8033fc4: 47b0 blx r6 + 8033f22: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033f24: 1c53 adds r3, r2, #1 + 8033f26: 64fb str r3, [r7, #76] ; 0x4c + 8033f28: 68fe ldr r6, [r7, #12] + 8033f2a: 687b ldr r3, [r7, #4] + 8033f2c: 68b9 ldr r1, [r7, #8] + 8033f2e: 2020 movs r0, #32 + 8033f30: 47b0 blx r6 while(l++ < width) { - 8033fc6: 6bfb ldr r3, [r7, #60] ; 0x3c - 8033fc8: 1c5a adds r2, r3, #1 - 8033fca: 63fa str r2, [r7, #60] ; 0x3c - 8033fcc: 6dba ldr r2, [r7, #88] ; 0x58 - 8033fce: 429a cmp r2, r3 - 8033fd0: d8f1 bhi.n 8033fb6 <_vsnprintf+0x70e> + 8033f32: 6bfb ldr r3, [r7, #60] ; 0x3c + 8033f34: 1c5a adds r2, r3, #1 + 8033f36: 63fa str r2, [r7, #60] ; 0x3c + 8033f38: 6dba ldr r2, [r7, #88] ; 0x58 + 8033f3a: 429a cmp r2, r3 + 8033f3c: d8f1 bhi.n 8033f22 <_vsnprintf+0x70e> } } // string output while((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) { - 8033fd2: e00a b.n 8033fea <_vsnprintf+0x742> + 8033f3e: e00a b.n 8033f56 <_vsnprintf+0x742> out(*(p++), buffer, idx++, maxlen); - 8033fd4: 6c3b ldr r3, [r7, #64] ; 0x40 - 8033fd6: 1c5a adds r2, r3, #1 - 8033fd8: 643a str r2, [r7, #64] ; 0x40 - 8033fda: 7818 ldrb r0, [r3, #0] - 8033fdc: 6cfa ldr r2, [r7, #76] ; 0x4c - 8033fde: 1c53 adds r3, r2, #1 - 8033fe0: 64fb str r3, [r7, #76] ; 0x4c - 8033fe2: 68fe ldr r6, [r7, #12] - 8033fe4: 687b ldr r3, [r7, #4] - 8033fe6: 68b9 ldr r1, [r7, #8] - 8033fe8: 47b0 blx r6 + 8033f40: 6c3b ldr r3, [r7, #64] ; 0x40 + 8033f42: 1c5a adds r2, r3, #1 + 8033f44: 643a str r2, [r7, #64] ; 0x40 + 8033f46: 7818 ldrb r0, [r3, #0] + 8033f48: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033f4a: 1c53 adds r3, r2, #1 + 8033f4c: 64fb str r3, [r7, #76] ; 0x4c + 8033f4e: 68fe ldr r6, [r7, #12] + 8033f50: 687b ldr r3, [r7, #4] + 8033f52: 68b9 ldr r1, [r7, #8] + 8033f54: 47b0 blx r6 while((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) { - 8033fea: 6c3b ldr r3, [r7, #64] ; 0x40 - 8033fec: 781b ldrb r3, [r3, #0] - 8033fee: 2b00 cmp r3, #0 - 8033ff0: d009 beq.n 8034006 <_vsnprintf+0x75e> - 8033ff2: 6dfb ldr r3, [r7, #92] ; 0x5c - 8033ff4: f403 6380 and.w r3, r3, #1024 ; 0x400 - 8033ff8: 2b00 cmp r3, #0 - 8033ffa: d0eb beq.n 8033fd4 <_vsnprintf+0x72c> - 8033ffc: 6d7b ldr r3, [r7, #84] ; 0x54 - 8033ffe: 1e5a subs r2, r3, #1 - 8034000: 657a str r2, [r7, #84] ; 0x54 - 8034002: 2b00 cmp r3, #0 - 8034004: d1e6 bne.n 8033fd4 <_vsnprintf+0x72c> + 8033f56: 6c3b ldr r3, [r7, #64] ; 0x40 + 8033f58: 781b ldrb r3, [r3, #0] + 8033f5a: 2b00 cmp r3, #0 + 8033f5c: d009 beq.n 8033f72 <_vsnprintf+0x75e> + 8033f5e: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033f60: f403 6380 and.w r3, r3, #1024 ; 0x400 + 8033f64: 2b00 cmp r3, #0 + 8033f66: d0eb beq.n 8033f40 <_vsnprintf+0x72c> + 8033f68: 6d7b ldr r3, [r7, #84] ; 0x54 + 8033f6a: 1e5a subs r2, r3, #1 + 8033f6c: 657a str r2, [r7, #84] ; 0x54 + 8033f6e: 2b00 cmp r3, #0 + 8033f70: d1e6 bne.n 8033f40 <_vsnprintf+0x72c> } // post padding if(flags & FLAGS_LEFT) { - 8034006: 6dfb ldr r3, [r7, #92] ; 0x5c - 8034008: f003 0302 and.w r3, r3, #2 - 803400c: 2b00 cmp r3, #0 - 803400e: d00e beq.n 803402e <_vsnprintf+0x786> + 8033f72: 6dfb ldr r3, [r7, #92] ; 0x5c + 8033f74: f003 0302 and.w r3, r3, #2 + 8033f78: 2b00 cmp r3, #0 + 8033f7a: d00e beq.n 8033f9a <_vsnprintf+0x786> while(l++ < width) { - 8034010: e007 b.n 8034022 <_vsnprintf+0x77a> + 8033f7c: e007 b.n 8033f8e <_vsnprintf+0x77a> out(' ', buffer, idx++, maxlen); - 8034012: 6cfa ldr r2, [r7, #76] ; 0x4c - 8034014: 1c53 adds r3, r2, #1 - 8034016: 64fb str r3, [r7, #76] ; 0x4c - 8034018: 68fe ldr r6, [r7, #12] - 803401a: 687b ldr r3, [r7, #4] - 803401c: 68b9 ldr r1, [r7, #8] - 803401e: 2020 movs r0, #32 - 8034020: 47b0 blx r6 + 8033f7e: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033f80: 1c53 adds r3, r2, #1 + 8033f82: 64fb str r3, [r7, #76] ; 0x4c + 8033f84: 68fe ldr r6, [r7, #12] + 8033f86: 687b ldr r3, [r7, #4] + 8033f88: 68b9 ldr r1, [r7, #8] + 8033f8a: 2020 movs r0, #32 + 8033f8c: 47b0 blx r6 while(l++ < width) { - 8034022: 6bfb ldr r3, [r7, #60] ; 0x3c - 8034024: 1c5a adds r2, r3, #1 - 8034026: 63fa str r2, [r7, #60] ; 0x3c - 8034028: 6dba ldr r2, [r7, #88] ; 0x58 - 803402a: 429a cmp r2, r3 - 803402c: d8f1 bhi.n 8034012 <_vsnprintf+0x76a> + 8033f8e: 6bfb ldr r3, [r7, #60] ; 0x3c + 8033f90: 1c5a adds r2, r3, #1 + 8033f92: 63fa str r2, [r7, #60] ; 0x3c + 8033f94: 6dba ldr r2, [r7, #88] ; 0x58 + 8033f96: 429a cmp r2, r3 + 8033f98: d8f1 bhi.n 8033f7e <_vsnprintf+0x76a> } } format++; - 803402e: 683b ldr r3, [r7, #0] - 8034030: 3301 adds r3, #1 - 8034032: 603b str r3, [r7, #0] + 8033f9a: 683b ldr r3, [r7, #0] + 8033f9c: 3301 adds r3, #1 + 8033f9e: 603b str r3, [r7, #0] break; - 8034034: e018 b.n 8034068 <_vsnprintf+0x7c0> + 8033fa0: e018 b.n 8033fd4 <_vsnprintf+0x7c0> } case '%' : out('%', buffer, idx++, maxlen); - 8034036: 6cfa ldr r2, [r7, #76] ; 0x4c - 8034038: 1c53 adds r3, r2, #1 - 803403a: 64fb str r3, [r7, #76] ; 0x4c - 803403c: 68fe ldr r6, [r7, #12] - 803403e: 687b ldr r3, [r7, #4] - 8034040: 68b9 ldr r1, [r7, #8] - 8034042: 2025 movs r0, #37 ; 0x25 - 8034044: 47b0 blx r6 + 8033fa2: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033fa4: 1c53 adds r3, r2, #1 + 8033fa6: 64fb str r3, [r7, #76] ; 0x4c + 8033fa8: 68fe ldr r6, [r7, #12] + 8033faa: 687b ldr r3, [r7, #4] + 8033fac: 68b9 ldr r1, [r7, #8] + 8033fae: 2025 movs r0, #37 ; 0x25 + 8033fb0: 47b0 blx r6 format++; - 8034046: 683b ldr r3, [r7, #0] - 8034048: 3301 adds r3, #1 - 803404a: 603b str r3, [r7, #0] + 8033fb2: 683b ldr r3, [r7, #0] + 8033fb4: 3301 adds r3, #1 + 8033fb6: 603b str r3, [r7, #0] break; - 803404c: e00c b.n 8034068 <_vsnprintf+0x7c0> + 8033fb8: e00c b.n 8033fd4 <_vsnprintf+0x7c0> default : out(*format, buffer, idx++, maxlen); - 803404e: 683b ldr r3, [r7, #0] - 8034050: 7818 ldrb r0, [r3, #0] - 8034052: 6cfa ldr r2, [r7, #76] ; 0x4c - 8034054: 1c53 adds r3, r2, #1 - 8034056: 64fb str r3, [r7, #76] ; 0x4c - 8034058: 68fe ldr r6, [r7, #12] - 803405a: 687b ldr r3, [r7, #4] - 803405c: 68b9 ldr r1, [r7, #8] - 803405e: 47b0 blx r6 + 8033fba: 683b ldr r3, [r7, #0] + 8033fbc: 7818 ldrb r0, [r3, #0] + 8033fbe: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033fc0: 1c53 adds r3, r2, #1 + 8033fc2: 64fb str r3, [r7, #76] ; 0x4c + 8033fc4: 68fe ldr r6, [r7, #12] + 8033fc6: 687b ldr r3, [r7, #4] + 8033fc8: 68b9 ldr r1, [r7, #8] + 8033fca: 47b0 blx r6 format++; - 8034060: 683b ldr r3, [r7, #0] - 8034062: 3301 adds r3, #1 - 8034064: 603b str r3, [r7, #0] + 8033fcc: 683b ldr r3, [r7, #0] + 8033fce: 3301 adds r3, #1 + 8033fd0: 603b str r3, [r7, #0] break; - 8034066: bf00 nop + 8033fd2: bf00 nop while(*format) { - 8034068: 683b ldr r3, [r7, #0] - 803406a: 781b ldrb r3, [r3, #0] - 803406c: 2b00 cmp r3, #0 - 803406e: f47f ac2c bne.w 80338ca <_vsnprintf+0x22> + 8033fd4: 683b ldr r3, [r7, #0] + 8033fd6: 781b ldrb r3, [r3, #0] + 8033fd8: 2b00 cmp r3, #0 + 8033fda: f47f ac2c bne.w 8033836 <_vsnprintf+0x22> } } // termination out((char)0, buffer, idx < maxlen ? idx : maxlen - 1U, maxlen); - 8034072: 6cfa ldr r2, [r7, #76] ; 0x4c - 8034074: 687b ldr r3, [r7, #4] - 8034076: 429a cmp r2, r3 - 8034078: d302 bcc.n 8034080 <_vsnprintf+0x7d8> - 803407a: 687b ldr r3, [r7, #4] - 803407c: 1e5a subs r2, r3, #1 - 803407e: e000 b.n 8034082 <_vsnprintf+0x7da> - 8034080: 6cfa ldr r2, [r7, #76] ; 0x4c - 8034082: 68fc ldr r4, [r7, #12] - 8034084: 687b ldr r3, [r7, #4] - 8034086: 68b9 ldr r1, [r7, #8] - 8034088: 2000 movs r0, #0 - 803408a: 47a0 blx r4 + 8033fde: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033fe0: 687b ldr r3, [r7, #4] + 8033fe2: 429a cmp r2, r3 + 8033fe4: d302 bcc.n 8033fec <_vsnprintf+0x7d8> + 8033fe6: 687b ldr r3, [r7, #4] + 8033fe8: 1e5a subs r2, r3, #1 + 8033fea: e000 b.n 8033fee <_vsnprintf+0x7da> + 8033fec: 6cfa ldr r2, [r7, #76] ; 0x4c + 8033fee: 68fc ldr r4, [r7, #12] + 8033ff0: 687b ldr r3, [r7, #4] + 8033ff2: 68b9 ldr r1, [r7, #8] + 8033ff4: 2000 movs r0, #0 + 8033ff6: 47a0 blx r4 // return written chars without terminating \0 return (int)idx; - 803408c: 6cfb ldr r3, [r7, #76] ; 0x4c + 8033ff8: 6cfb ldr r3, [r7, #76] ; 0x4c } - 803408e: 4618 mov r0, r3 - 8034090: 3764 adds r7, #100 ; 0x64 - 8034092: 46bd mov sp, r7 - 8034094: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + 8033ffa: 4618 mov r0, r3 + 8033ffc: 3764 adds r7, #100 ; 0x64 + 8033ffe: 46bd mov sp, r7 + 8034000: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -08034098 : +08034004 : /////////////////////////////////////////////////////////////////////////////// int lv_snprintf(char * buffer, size_t count, const char * format, ...) { - 8034098: b40c push {r2, r3} - 803409a: b580 push {r7, lr} - 803409c: b086 sub sp, #24 - 803409e: af02 add r7, sp, #8 - 80340a0: 6078 str r0, [r7, #4] - 80340a2: 6039 str r1, [r7, #0] + 8034004: b40c push {r2, r3} + 8034006: b580 push {r7, lr} + 8034008: b086 sub sp, #24 + 803400a: af02 add r7, sp, #8 + 803400c: 6078 str r0, [r7, #4] + 803400e: 6039 str r1, [r7, #0] va_list va; va_start(va, format); - 80340a4: f107 031c add.w r3, r7, #28 - 80340a8: 60bb str r3, [r7, #8] + 8034010: f107 031c add.w r3, r7, #28 + 8034014: 60bb str r3, [r7, #8] const int ret = _vsnprintf(_out_buffer, buffer, count, format, va); - 80340aa: 68bb ldr r3, [r7, #8] - 80340ac: 9300 str r3, [sp, #0] - 80340ae: 69bb ldr r3, [r7, #24] - 80340b0: 683a ldr r2, [r7, #0] - 80340b2: 6879 ldr r1, [r7, #4] - 80340b4: 4805 ldr r0, [pc, #20] ; (80340cc ) - 80340b6: f7ff fbf7 bl 80338a8 <_vsnprintf> - 80340ba: 60f8 str r0, [r7, #12] + 8034016: 68bb ldr r3, [r7, #8] + 8034018: 9300 str r3, [sp, #0] + 803401a: 69bb ldr r3, [r7, #24] + 803401c: 683a ldr r2, [r7, #0] + 803401e: 6879 ldr r1, [r7, #4] + 8034020: 4805 ldr r0, [pc, #20] ; (8034038 ) + 8034022: f7ff fbf7 bl 8033814 <_vsnprintf> + 8034026: 60f8 str r0, [r7, #12] va_end(va); return ret; - 80340bc: 68fb ldr r3, [r7, #12] + 8034028: 68fb ldr r3, [r7, #12] } - 80340be: 4618 mov r0, r3 - 80340c0: 3710 adds r7, #16 - 80340c2: 46bd mov sp, r7 - 80340c4: e8bd 4080 ldmia.w sp!, {r7, lr} - 80340c8: b002 add sp, #8 - 80340ca: 4770 bx lr - 80340cc: 080333b7 .word 0x080333b7 + 803402a: 4618 mov r0, r3 + 803402c: 3710 adds r7, #16 + 803402e: 46bd mov sp, r7 + 8034030: e8bd 4080 ldmia.w sp!, {r7, lr} + 8034034: b002 add sp, #8 + 8034036: 4770 bx lr + 8034038: 08033323 .word 0x08033323 -080340d0 : +0803403c : int lv_vsnprintf(char * buffer, size_t count, const char * format, va_list va) { - 80340d0: b580 push {r7, lr} - 80340d2: b086 sub sp, #24 - 80340d4: af02 add r7, sp, #8 - 80340d6: 60f8 str r0, [r7, #12] - 80340d8: 60b9 str r1, [r7, #8] - 80340da: 607a str r2, [r7, #4] - 80340dc: 603b str r3, [r7, #0] + 803403c: b580 push {r7, lr} + 803403e: b086 sub sp, #24 + 8034040: af02 add r7, sp, #8 + 8034042: 60f8 str r0, [r7, #12] + 8034044: 60b9 str r1, [r7, #8] + 8034046: 607a str r2, [r7, #4] + 8034048: 603b str r3, [r7, #0] return _vsnprintf(_out_buffer, buffer, count, format, va); - 80340de: 683b ldr r3, [r7, #0] - 80340e0: 9300 str r3, [sp, #0] - 80340e2: 687b ldr r3, [r7, #4] - 80340e4: 68ba ldr r2, [r7, #8] - 80340e6: 68f9 ldr r1, [r7, #12] - 80340e8: 4803 ldr r0, [pc, #12] ; (80340f8 ) - 80340ea: f7ff fbdd bl 80338a8 <_vsnprintf> - 80340ee: 4603 mov r3, r0 + 803404a: 683b ldr r3, [r7, #0] + 803404c: 9300 str r3, [sp, #0] + 803404e: 687b ldr r3, [r7, #4] + 8034050: 68ba ldr r2, [r7, #8] + 8034052: 68f9 ldr r1, [r7, #12] + 8034054: 4803 ldr r0, [pc, #12] ; (8034064 ) + 8034056: f7ff fbdd bl 8033814 <_vsnprintf> + 803405a: 4603 mov r3, r0 } - 80340f0: 4618 mov r0, r3 - 80340f2: 3710 adds r7, #16 - 80340f4: 46bd mov sp, r7 - 80340f6: bd80 pop {r7, pc} - 80340f8: 080333b7 .word 0x080333b7 + 803405c: 4618 mov r0, r3 + 803405e: 3710 adds r7, #16 + 8034060: 46bd mov sp, r7 + 8034062: bd80 pop {r7, pc} + 8034064: 08033323 .word 0x08033323 -080340fc : +08034068 : { - 80340fc: b490 push {r4, r7} - 80340fe: b082 sub sp, #8 - 8034100: af00 add r7, sp, #0 - 8034102: 4604 mov r4, r0 - 8034104: 4608 mov r0, r1 - 8034106: 4611 mov r1, r2 - 8034108: 4622 mov r2, r4 - 803410a: 71fa strb r2, [r7, #7] - 803410c: 4602 mov r2, r0 - 803410e: 71ba strb r2, [r7, #6] - 8034110: 460a mov r2, r1 - 8034112: 717a strb r2, [r7, #5] + 8034068: b490 push {r4, r7} + 803406a: b082 sub sp, #8 + 803406c: af00 add r7, sp, #0 + 803406e: 4604 mov r4, r0 + 8034070: 4608 mov r0, r1 + 8034072: 4611 mov r1, r2 + 8034074: 4622 mov r2, r4 + 8034076: 71fa strb r2, [r7, #7] + 8034078: 4602 mov r2, r0 + 803407a: 71ba strb r2, [r7, #6] + 803407c: 460a mov r2, r1 + 803407e: 717a strb r2, [r7, #5] return _LV_COLOR_MAKE_TYPE_HELPER LV_COLOR_MAKE(r, g, b); - 8034114: 797a ldrb r2, [r7, #5] - 8034116: 08d2 lsrs r2, r2, #3 - 8034118: b2d2 uxtb r2, r2 - 803411a: f002 021f and.w r2, r2, #31 - 803411e: b2d0 uxtb r0, r2 - 8034120: 79ba ldrb r2, [r7, #6] - 8034122: 0892 lsrs r2, r2, #2 - 8034124: b2d2 uxtb r2, r2 - 8034126: f002 023f and.w r2, r2, #63 ; 0x3f - 803412a: b2d1 uxtb r1, r2 - 803412c: 79fa ldrb r2, [r7, #7] - 803412e: 08d2 lsrs r2, r2, #3 - 8034130: b2d2 uxtb r2, r2 - 8034132: f002 021f and.w r2, r2, #31 - 8034136: b2d2 uxtb r2, r2 - 8034138: f360 0304 bfi r3, r0, #0, #5 - 803413c: f361 134a bfi r3, r1, #5, #6 - 8034140: f362 23cf bfi r3, r2, #11, #5 + 8034080: 797a ldrb r2, [r7, #5] + 8034082: 08d2 lsrs r2, r2, #3 + 8034084: b2d2 uxtb r2, r2 + 8034086: f002 021f and.w r2, r2, #31 + 803408a: b2d0 uxtb r0, r2 + 803408c: 79ba ldrb r2, [r7, #6] + 803408e: 0892 lsrs r2, r2, #2 + 8034090: b2d2 uxtb r2, r2 + 8034092: f002 023f and.w r2, r2, #63 ; 0x3f + 8034096: b2d1 uxtb r1, r2 + 8034098: 79fa ldrb r2, [r7, #7] + 803409a: 08d2 lsrs r2, r2, #3 + 803409c: b2d2 uxtb r2, r2 + 803409e: f002 021f and.w r2, r2, #31 + 80340a2: b2d2 uxtb r2, r2 + 80340a4: f360 0304 bfi r3, r0, #0, #5 + 80340a8: f361 134a bfi r3, r1, #5, #6 + 80340ac: f362 23cf bfi r3, r2, #11, #5 } - 8034144: 4618 mov r0, r3 - 8034146: 3708 adds r7, #8 - 8034148: 46bd mov sp, r7 - 803414a: bc90 pop {r4, r7} - 803414c: 4770 bx lr + 80340b0: 4618 mov r0, r3 + 80340b2: 3708 adds r7, #8 + 80340b4: 46bd mov sp, r7 + 80340b6: bc90 pop {r4, r7} + 80340b8: 4770 bx lr -0803414e : +080340ba : { - 803414e: b580 push {r7, lr} - 8034150: af00 add r7, sp, #0 + 80340ba: b580 push {r7, lr} + 80340bc: af00 add r7, sp, #0 return lv_color_make(0xff, 0xff, 0xff); - 8034152: 22ff movs r2, #255 ; 0xff - 8034154: 21ff movs r1, #255 ; 0xff - 8034156: 20ff movs r0, #255 ; 0xff - 8034158: f7ff ffd0 bl 80340fc - 803415c: 4603 mov r3, r0 + 80340be: 22ff movs r2, #255 ; 0xff + 80340c0: 21ff movs r1, #255 ; 0xff + 80340c2: 20ff movs r0, #255 ; 0xff + 80340c4: f7ff ffd0 bl 8034068 + 80340c8: 4603 mov r3, r0 } - 803415e: 4618 mov r0, r3 - 8034160: bd80 pop {r7, pc} + 80340ca: 4618 mov r0, r3 + 80340cc: bd80 pop {r7, pc} -08034162 : +080340ce : { - 8034162: b580 push {r7, lr} - 8034164: af00 add r7, sp, #0 + 80340ce: b580 push {r7, lr} + 80340d0: af00 add r7, sp, #0 return lv_color_make(0x00, 0x0, 0x00); - 8034166: 2200 movs r2, #0 - 8034168: 2100 movs r1, #0 - 803416a: 2000 movs r0, #0 - 803416c: f7ff ffc6 bl 80340fc - 8034170: 4603 mov r3, r0 + 80340d2: 2200 movs r2, #0 + 80340d4: 2100 movs r1, #0 + 80340d6: 2000 movs r0, #0 + 80340d8: f7ff ffc6 bl 8034068 + 80340dc: 4603 mov r3, r0 } - 8034172: 4618 mov r0, r3 - 8034174: bd80 pop {r7, pc} + 80340de: 4618 mov r0, r3 + 80340e0: bd80 pop {r7, pc} -08034176 : +080340e2 : * @note For performance reasons there are no sanity check on `style` * @note This function is the same as ::lv_style_get_prop but inlined. Use it only on performance critical places */ static inline lv_res_t lv_style_get_prop_inlined(const lv_style_t * style, lv_style_prop_t prop, lv_style_value_t * value) { - 8034176: b480 push {r7} - 8034178: b08b sub sp, #44 ; 0x2c - 803417a: af00 add r7, sp, #0 - 803417c: 60f8 str r0, [r7, #12] - 803417e: 460b mov r3, r1 - 8034180: 607a str r2, [r7, #4] - 8034182: 817b strh r3, [r7, #10] + 80340e2: b480 push {r7} + 80340e4: b08b sub sp, #44 ; 0x2c + 80340e6: af00 add r7, sp, #0 + 80340e8: 60f8 str r0, [r7, #12] + 80340ea: 460b mov r3, r1 + 80340ec: 607a str r2, [r7, #4] + 80340ee: 817b strh r3, [r7, #10] if(style->is_const) { - 8034184: 68fb ldr r3, [r7, #12] - 8034186: 795b ldrb r3, [r3, #5] - 8034188: f023 037f bic.w r3, r3, #127 ; 0x7f - 803418c: b2db uxtb r3, r3 - 803418e: 2b00 cmp r3, #0 - 8034190: d017 beq.n 80341c2 + 80340f0: 68fb ldr r3, [r7, #12] + 80340f2: 795b ldrb r3, [r3, #5] + 80340f4: f023 037f bic.w r3, r3, #127 ; 0x7f + 80340f8: b2db uxtb r3, r3 + 80340fa: 2b00 cmp r3, #0 + 80340fc: d017 beq.n 803412e const lv_style_const_prop_t * const_prop; for(const_prop = style->v_p.const_props; const_prop->prop != LV_STYLE_PROP_INV; const_prop++) { - 8034192: 68fb ldr r3, [r7, #12] - 8034194: 681b ldr r3, [r3, #0] - 8034196: 627b str r3, [r7, #36] ; 0x24 - 8034198: e00d b.n 80341b6 + 80340fe: 68fb ldr r3, [r7, #12] + 8034100: 681b ldr r3, [r3, #0] + 8034102: 627b str r3, [r7, #36] ; 0x24 + 8034104: e00d b.n 8034122 if(const_prop->prop == prop) { - 803419a: 6a7b ldr r3, [r7, #36] ; 0x24 - 803419c: 881b ldrh r3, [r3, #0] - 803419e: 897a ldrh r2, [r7, #10] - 80341a0: 429a cmp r2, r3 - 80341a2: d105 bne.n 80341b0 + 8034106: 6a7b ldr r3, [r7, #36] ; 0x24 + 8034108: 881b ldrh r3, [r3, #0] + 803410a: 897a ldrh r2, [r7, #10] + 803410c: 429a cmp r2, r3 + 803410e: d105 bne.n 803411c *value = const_prop->value; - 80341a4: 687b ldr r3, [r7, #4] - 80341a6: 6a7a ldr r2, [r7, #36] ; 0x24 - 80341a8: 6852 ldr r2, [r2, #4] - 80341aa: 601a str r2, [r3, #0] + 8034110: 687b ldr r3, [r7, #4] + 8034112: 6a7a ldr r2, [r7, #36] ; 0x24 + 8034114: 6852 ldr r2, [r2, #4] + 8034116: 601a str r2, [r3, #0] return LV_RES_OK; - 80341ac: 2301 movs r3, #1 - 80341ae: e04c b.n 803424a + 8034118: 2301 movs r3, #1 + 803411a: e04c b.n 80341b6 for(const_prop = style->v_p.const_props; const_prop->prop != LV_STYLE_PROP_INV; const_prop++) { - 80341b0: 6a7b ldr r3, [r7, #36] ; 0x24 - 80341b2: 3308 adds r3, #8 - 80341b4: 627b str r3, [r7, #36] ; 0x24 - 80341b6: 6a7b ldr r3, [r7, #36] ; 0x24 - 80341b8: 881b ldrh r3, [r3, #0] - 80341ba: 2b00 cmp r3, #0 - 80341bc: d1ed bne.n 803419a + 803411c: 6a7b ldr r3, [r7, #36] ; 0x24 + 803411e: 3308 adds r3, #8 + 8034120: 627b str r3, [r7, #36] ; 0x24 + 8034122: 6a7b ldr r3, [r7, #36] ; 0x24 + 8034124: 881b ldrh r3, [r3, #0] + 8034126: 2b00 cmp r3, #0 + 8034128: d1ed bne.n 8034106 } } return LV_RES_INV; - 80341be: 2300 movs r3, #0 - 80341c0: e043 b.n 803424a + 803412a: 2300 movs r3, #0 + 803412c: e043 b.n 80341b6 } if(style->prop_cnt == 0) return LV_RES_INV; - 80341c2: 68fb ldr r3, [r7, #12] - 80341c4: 79db ldrb r3, [r3, #7] - 80341c6: 2b00 cmp r3, #0 - 80341c8: d101 bne.n 80341ce - 80341ca: 2300 movs r3, #0 - 80341cc: e03d b.n 803424a + 803412e: 68fb ldr r3, [r7, #12] + 8034130: 79db ldrb r3, [r3, #7] + 8034132: 2b00 cmp r3, #0 + 8034134: d101 bne.n 803413a + 8034136: 2300 movs r3, #0 + 8034138: e03d b.n 80341b6 if(style->prop_cnt > 1) { - 80341ce: 68fb ldr r3, [r7, #12] - 80341d0: 79db ldrb r3, [r3, #7] - 80341d2: 2b01 cmp r3, #1 - 80341d4: d929 bls.n 803422a + 803413a: 68fb ldr r3, [r7, #12] + 803413c: 79db ldrb r3, [r3, #7] + 803413e: 2b01 cmp r3, #1 + 8034140: d929 bls.n 8034196 uint8_t * tmp = style->v_p.values_and_props + style->prop_cnt * sizeof(lv_style_value_t); - 80341d6: 68fb ldr r3, [r7, #12] - 80341d8: 681a ldr r2, [r3, #0] - 80341da: 68fb ldr r3, [r7, #12] - 80341dc: 79db ldrb r3, [r3, #7] - 80341de: 009b lsls r3, r3, #2 - 80341e0: 4413 add r3, r2 - 80341e2: 61fb str r3, [r7, #28] + 8034142: 68fb ldr r3, [r7, #12] + 8034144: 681a ldr r2, [r3, #0] + 8034146: 68fb ldr r3, [r7, #12] + 8034148: 79db ldrb r3, [r3, #7] + 803414a: 009b lsls r3, r3, #2 + 803414c: 4413 add r3, r2 + 803414e: 61fb str r3, [r7, #28] uint16_t * props = (uint16_t *)tmp; - 80341e4: 69fb ldr r3, [r7, #28] - 80341e6: 61bb str r3, [r7, #24] + 8034150: 69fb ldr r3, [r7, #28] + 8034152: 61bb str r3, [r7, #24] uint32_t i; for(i = 0; i < style->prop_cnt; i++) { - 80341e8: 2300 movs r3, #0 - 80341ea: 623b str r3, [r7, #32] - 80341ec: e016 b.n 803421c + 8034154: 2300 movs r3, #0 + 8034156: 623b str r3, [r7, #32] + 8034158: e016 b.n 8034188 if(props[i] == prop) { - 80341ee: 6a3b ldr r3, [r7, #32] - 80341f0: 005b lsls r3, r3, #1 - 80341f2: 69ba ldr r2, [r7, #24] - 80341f4: 4413 add r3, r2 - 80341f6: 881b ldrh r3, [r3, #0] - 80341f8: 897a ldrh r2, [r7, #10] - 80341fa: 429a cmp r2, r3 - 80341fc: d10b bne.n 8034216 + 803415a: 6a3b ldr r3, [r7, #32] + 803415c: 005b lsls r3, r3, #1 + 803415e: 69ba ldr r2, [r7, #24] + 8034160: 4413 add r3, r2 + 8034162: 881b ldrh r3, [r3, #0] + 8034164: 897a ldrh r2, [r7, #10] + 8034166: 429a cmp r2, r3 + 8034168: d10b bne.n 8034182 lv_style_value_t * values = (lv_style_value_t *)style->v_p.values_and_props; - 80341fe: 68fb ldr r3, [r7, #12] - 8034200: 681b ldr r3, [r3, #0] - 8034202: 617b str r3, [r7, #20] + 803416a: 68fb ldr r3, [r7, #12] + 803416c: 681b ldr r3, [r3, #0] + 803416e: 617b str r3, [r7, #20] *value = values[i]; - 8034204: 6a3b ldr r3, [r7, #32] - 8034206: 009b lsls r3, r3, #2 - 8034208: 697a ldr r2, [r7, #20] - 803420a: 441a add r2, r3 - 803420c: 687b ldr r3, [r7, #4] - 803420e: 6812 ldr r2, [r2, #0] - 8034210: 601a str r2, [r3, #0] + 8034170: 6a3b ldr r3, [r7, #32] + 8034172: 009b lsls r3, r3, #2 + 8034174: 697a ldr r2, [r7, #20] + 8034176: 441a add r2, r3 + 8034178: 687b ldr r3, [r7, #4] + 803417a: 6812 ldr r2, [r2, #0] + 803417c: 601a str r2, [r3, #0] return LV_RES_OK; - 8034212: 2301 movs r3, #1 - 8034214: e019 b.n 803424a + 803417e: 2301 movs r3, #1 + 8034180: e019 b.n 80341b6 for(i = 0; i < style->prop_cnt; i++) { - 8034216: 6a3b ldr r3, [r7, #32] - 8034218: 3301 adds r3, #1 - 803421a: 623b str r3, [r7, #32] - 803421c: 68fb ldr r3, [r7, #12] - 803421e: 79db ldrb r3, [r3, #7] - 8034220: 461a mov r2, r3 - 8034222: 6a3b ldr r3, [r7, #32] - 8034224: 4293 cmp r3, r2 - 8034226: d3e2 bcc.n 80341ee - 8034228: e00e b.n 8034248 + 8034182: 6a3b ldr r3, [r7, #32] + 8034184: 3301 adds r3, #1 + 8034186: 623b str r3, [r7, #32] + 8034188: 68fb ldr r3, [r7, #12] + 803418a: 79db ldrb r3, [r3, #7] + 803418c: 461a mov r2, r3 + 803418e: 6a3b ldr r3, [r7, #32] + 8034190: 4293 cmp r3, r2 + 8034192: d3e2 bcc.n 803415a + 8034194: e00e b.n 80341b4 } } } else if(style->prop1 == prop) { - 803422a: 68fb ldr r3, [r7, #12] - 803422c: 889b ldrh r3, [r3, #4] - 803422e: f3c3 030e ubfx r3, r3, #0, #15 - 8034232: b29b uxth r3, r3 - 8034234: 461a mov r2, r3 - 8034236: 897b ldrh r3, [r7, #10] - 8034238: 4293 cmp r3, r2 - 803423a: d105 bne.n 8034248 + 8034196: 68fb ldr r3, [r7, #12] + 8034198: 889b ldrh r3, [r3, #4] + 803419a: f3c3 030e ubfx r3, r3, #0, #15 + 803419e: b29b uxth r3, r3 + 80341a0: 461a mov r2, r3 + 80341a2: 897b ldrh r3, [r7, #10] + 80341a4: 4293 cmp r3, r2 + 80341a6: d105 bne.n 80341b4 *value = style->v_p.value1; - 803423c: 687b ldr r3, [r7, #4] - 803423e: 68fa ldr r2, [r7, #12] - 8034240: 6812 ldr r2, [r2, #0] - 8034242: 601a str r2, [r3, #0] + 80341a8: 687b ldr r3, [r7, #4] + 80341aa: 68fa ldr r2, [r7, #12] + 80341ac: 6812 ldr r2, [r2, #0] + 80341ae: 601a str r2, [r3, #0] return LV_RES_OK; - 8034244: 2301 movs r3, #1 - 8034246: e000 b.n 803424a + 80341b0: 2301 movs r3, #1 + 80341b2: e000 b.n 80341b6 } return LV_RES_INV; - 8034248: 2300 movs r3, #0 + 80341b4: 2300 movs r3, #0 } - 803424a: 4618 mov r0, r3 - 803424c: 372c adds r7, #44 ; 0x2c - 803424e: 46bd mov sp, r7 - 8034250: bc80 pop {r7} - 8034252: 4770 bx lr + 80341b6: 4618 mov r0, r3 + 80341b8: 372c adds r7, #44 ; 0x2c + 80341ba: 46bd mov sp, r7 + 80341bc: bc80 pop {r7} + 80341be: 4770 bx lr -08034254 : +080341c0 : /********************** * GLOBAL FUNCTIONS **********************/ void lv_style_init(lv_style_t * style) { - 8034254: b580 push {r7, lr} - 8034256: b082 sub sp, #8 - 8034258: af00 add r7, sp, #0 - 803425a: 6078 str r0, [r7, #4] + 80341c0: b580 push {r7, lr} + 80341c2: b082 sub sp, #8 + 80341c4: af00 add r7, sp, #0 + 80341c6: 6078 str r0, [r7, #4] if(style->sentinel == LV_STYLE_SENTINEL_VALUE && style->prop_cnt > 1) { LV_LOG_WARN("Style might be already inited. (Potential memory leak)"); } #endif lv_memset_00(style, sizeof(lv_style_t)); - 803425c: 2108 movs r1, #8 - 803425e: 6878 ldr r0, [r7, #4] - 8034260: f7fe ff76 bl 8033150 + 80341c8: 2108 movs r1, #8 + 80341ca: 6878 ldr r0, [r7, #4] + 80341cc: f7fe ff76 bl 80330bc #if LV_USE_ASSERT_STYLE style->sentinel = LV_STYLE_SENTINEL_VALUE; #endif } - 8034264: bf00 nop - 8034266: 3708 adds r7, #8 - 8034268: 46bd mov sp, r7 - 803426a: bd80 pop {r7, pc} + 80341d0: bf00 nop + 80341d2: 3708 adds r7, #8 + 80341d4: 46bd mov sp, r7 + 80341d6: bd80 pop {r7, pc} -0803426c : +080341d8 : void lv_style_reset(lv_style_t * style) { - 803426c: b580 push {r7, lr} - 803426e: b082 sub sp, #8 - 8034270: af00 add r7, sp, #0 - 8034272: 6078 str r0, [r7, #4] + 80341d8: b580 push {r7, lr} + 80341da: b082 sub sp, #8 + 80341dc: af00 add r7, sp, #0 + 80341de: 6078 str r0, [r7, #4] LV_ASSERT_STYLE(style); if(style->is_const) { - 8034274: 687b ldr r3, [r7, #4] - 8034276: 795b ldrb r3, [r3, #5] - 8034278: f023 037f bic.w r3, r3, #127 ; 0x7f - 803427c: b2db uxtb r3, r3 - 803427e: 2b00 cmp r3, #0 - 8034280: d10d bne.n 803429e + 80341e0: 687b ldr r3, [r7, #4] + 80341e2: 795b ldrb r3, [r3, #5] + 80341e4: f023 037f bic.w r3, r3, #127 ; 0x7f + 80341e8: b2db uxtb r3, r3 + 80341ea: 2b00 cmp r3, #0 + 80341ec: d10d bne.n 803420a LV_LOG_ERROR("Cannot reset const style"); return; } if(style->prop_cnt > 1) lv_mem_free(style->v_p.values_and_props); - 8034282: 687b ldr r3, [r7, #4] - 8034284: 79db ldrb r3, [r3, #7] - 8034286: 2b01 cmp r3, #1 - 8034288: d904 bls.n 8034294 - 803428a: 687b ldr r3, [r7, #4] - 803428c: 681b ldr r3, [r3, #0] - 803428e: 4618 mov r0, r3 - 8034290: f7fe fb24 bl 80328dc + 80341ee: 687b ldr r3, [r7, #4] + 80341f0: 79db ldrb r3, [r3, #7] + 80341f2: 2b01 cmp r3, #1 + 80341f4: d904 bls.n 8034200 + 80341f6: 687b ldr r3, [r7, #4] + 80341f8: 681b ldr r3, [r3, #0] + 80341fa: 4618 mov r0, r3 + 80341fc: f7fe fb24 bl 8032848 lv_memset_00(style, sizeof(lv_style_t)); - 8034294: 2108 movs r1, #8 - 8034296: 6878 ldr r0, [r7, #4] - 8034298: f7fe ff5a bl 8033150 - 803429c: e000 b.n 80342a0 + 8034200: 2108 movs r1, #8 + 8034202: 6878 ldr r0, [r7, #4] + 8034204: f7fe ff5a bl 80330bc + 8034208: e000 b.n 803420c return; - 803429e: bf00 nop + 803420a: bf00 nop #if LV_USE_ASSERT_STYLE style->sentinel = LV_STYLE_SENTINEL_VALUE; #endif } - 80342a0: 3708 adds r7, #8 - 80342a2: 46bd mov sp, r7 - 80342a4: bd80 pop {r7, pc} + 803420c: 3708 adds r7, #8 + 803420e: 46bd mov sp, r7 + 8034210: bd80 pop {r7, pc} ... -080342a8 : +08034214 : lv_style_prop_t lv_style_register_prop(void) { - 80342a8: b480 push {r7} - 80342aa: af00 add r7, sp, #0 + 8034214: b480 push {r7} + 8034216: af00 add r7, sp, #0 static uint16_t act_id = (uint16_t)_LV_STYLE_LAST_BUILT_IN_PROP; act_id++; - 80342ac: 4b05 ldr r3, [pc, #20] ; (80342c4 ) - 80342ae: 881b ldrh r3, [r3, #0] - 80342b0: 3301 adds r3, #1 - 80342b2: b29a uxth r2, r3 - 80342b4: 4b03 ldr r3, [pc, #12] ; (80342c4 ) - 80342b6: 801a strh r2, [r3, #0] + 8034218: 4b05 ldr r3, [pc, #20] ; (8034230 ) + 803421a: 881b ldrh r3, [r3, #0] + 803421c: 3301 adds r3, #1 + 803421e: b29a uxth r2, r3 + 8034220: 4b03 ldr r3, [pc, #12] ; (8034230 ) + 8034222: 801a strh r2, [r3, #0] return act_id; - 80342b8: 4b02 ldr r3, [pc, #8] ; (80342c4 ) - 80342ba: 881b ldrh r3, [r3, #0] + 8034224: 4b02 ldr r3, [pc, #8] ; (8034230 ) + 8034226: 881b ldrh r3, [r3, #0] } - 80342bc: 4618 mov r0, r3 - 80342be: 46bd mov sp, r7 - 80342c0: bc80 pop {r7} - 80342c2: 4770 bx lr - 80342c4: 200000e0 .word 0x200000e0 + 8034228: 4618 mov r0, r3 + 803422a: 46bd mov sp, r7 + 803422c: bc80 pop {r7} + 803422e: 4770 bx lr + 8034230: 200000e0 .word 0x200000e0 -080342c8 : +08034234 : bool lv_style_remove_prop(lv_style_t * style, lv_style_prop_t prop) { - 80342c8: b580 push {r7, lr} - 80342ca: b08c sub sp, #48 ; 0x30 - 80342cc: af00 add r7, sp, #0 - 80342ce: 6078 str r0, [r7, #4] - 80342d0: 460b mov r3, r1 - 80342d2: 807b strh r3, [r7, #2] + 8034234: b580 push {r7, lr} + 8034236: b08c sub sp, #48 ; 0x30 + 8034238: af00 add r7, sp, #0 + 803423a: 6078 str r0, [r7, #4] + 803423c: 460b mov r3, r1 + 803423e: 807b strh r3, [r7, #2] LV_ASSERT_STYLE(style); if(style->is_const) { - 80342d4: 687b ldr r3, [r7, #4] - 80342d6: 795b ldrb r3, [r3, #5] - 80342d8: f023 037f bic.w r3, r3, #127 ; 0x7f - 80342dc: b2db uxtb r3, r3 - 80342de: 2b00 cmp r3, #0 - 80342e0: d001 beq.n 80342e6 + 8034240: 687b ldr r3, [r7, #4] + 8034242: 795b ldrb r3, [r3, #5] + 8034244: f023 037f bic.w r3, r3, #127 ; 0x7f + 8034248: b2db uxtb r3, r3 + 803424a: 2b00 cmp r3, #0 + 803424c: d001 beq.n 8034252 LV_LOG_ERROR("Cannot remove prop from const style"); return false; - 80342e2: 2300 movs r3, #0 - 80342e4: e0bf b.n 8034466 + 803424e: 2300 movs r3, #0 + 8034250: e0bf b.n 80343d2 } if(style->prop_cnt == 0) return false; - 80342e6: 687b ldr r3, [r7, #4] - 80342e8: 79db ldrb r3, [r3, #7] - 80342ea: 2b00 cmp r3, #0 - 80342ec: d101 bne.n 80342f2 - 80342ee: 2300 movs r3, #0 - 80342f0: e0b9 b.n 8034466 + 8034252: 687b ldr r3, [r7, #4] + 8034254: 79db ldrb r3, [r3, #7] + 8034256: 2b00 cmp r3, #0 + 8034258: d101 bne.n 803425e + 803425a: 2300 movs r3, #0 + 803425c: e0b9 b.n 80343d2 if(style->prop_cnt == 1) { - 80342f2: 687b ldr r3, [r7, #4] - 80342f4: 79db ldrb r3, [r3, #7] - 80342f6: 2b01 cmp r3, #1 - 80342f8: d114 bne.n 8034324 + 803425e: 687b ldr r3, [r7, #4] + 8034260: 79db ldrb r3, [r3, #7] + 8034262: 2b01 cmp r3, #1 + 8034264: d114 bne.n 8034290 if(style->prop1 == prop) { - 80342fa: 687b ldr r3, [r7, #4] - 80342fc: 889b ldrh r3, [r3, #4] - 80342fe: f3c3 030e ubfx r3, r3, #0, #15 - 8034302: b29b uxth r3, r3 - 8034304: 461a mov r2, r3 - 8034306: 887b ldrh r3, [r7, #2] - 8034308: 429a cmp r2, r3 - 803430a: d109 bne.n 8034320 + 8034266: 687b ldr r3, [r7, #4] + 8034268: 889b ldrh r3, [r3, #4] + 803426a: f3c3 030e ubfx r3, r3, #0, #15 + 803426e: b29b uxth r3, r3 + 8034270: 461a mov r2, r3 + 8034272: 887b ldrh r3, [r7, #2] + 8034274: 429a cmp r2, r3 + 8034276: d109 bne.n 803428c style->prop1 = LV_STYLE_PROP_INV; - 803430c: 687a ldr r2, [r7, #4] - 803430e: 8893 ldrh r3, [r2, #4] - 8034310: f36f 030e bfc r3, #0, #15 - 8034314: 8093 strh r3, [r2, #4] + 8034278: 687a ldr r2, [r7, #4] + 803427a: 8893 ldrh r3, [r2, #4] + 803427c: f36f 030e bfc r3, #0, #15 + 8034280: 8093 strh r3, [r2, #4] style->prop_cnt = 0; - 8034316: 687b ldr r3, [r7, #4] - 8034318: 2200 movs r2, #0 - 803431a: 71da strb r2, [r3, #7] + 8034282: 687b ldr r3, [r7, #4] + 8034284: 2200 movs r2, #0 + 8034286: 71da strb r2, [r3, #7] return true; - 803431c: 2301 movs r3, #1 - 803431e: e0a2 b.n 8034466 + 8034288: 2301 movs r3, #1 + 803428a: e0a2 b.n 80343d2 } return false; - 8034320: 2300 movs r3, #0 - 8034322: e0a0 b.n 8034466 + 803428c: 2300 movs r3, #0 + 803428e: e0a0 b.n 80343d2 } uint8_t * tmp = style->v_p.values_and_props + style->prop_cnt * sizeof(lv_style_value_t); - 8034324: 687b ldr r3, [r7, #4] - 8034326: 681a ldr r2, [r3, #0] - 8034328: 687b ldr r3, [r7, #4] - 803432a: 79db ldrb r3, [r3, #7] - 803432c: 009b lsls r3, r3, #2 - 803432e: 4413 add r3, r2 - 8034330: 627b str r3, [r7, #36] ; 0x24 + 8034290: 687b ldr r3, [r7, #4] + 8034292: 681a ldr r2, [r3, #0] + 8034294: 687b ldr r3, [r7, #4] + 8034296: 79db ldrb r3, [r3, #7] + 8034298: 009b lsls r3, r3, #2 + 803429a: 4413 add r3, r2 + 803429c: 627b str r3, [r7, #36] ; 0x24 uint16_t * old_props = (uint16_t *)tmp; - 8034332: 6a7b ldr r3, [r7, #36] ; 0x24 - 8034334: 623b str r3, [r7, #32] + 803429e: 6a7b ldr r3, [r7, #36] ; 0x24 + 80342a0: 623b str r3, [r7, #32] uint32_t i; for(i = 0; i < style->prop_cnt; i++) { - 8034336: 2300 movs r3, #0 - 8034338: 62fb str r3, [r7, #44] ; 0x2c - 803433a: e08c b.n 8034456 + 80342a2: 2300 movs r3, #0 + 80342a4: 62fb str r3, [r7, #44] ; 0x2c + 80342a6: e08c b.n 80343c2 if(old_props[i] == prop) { - 803433c: 6afb ldr r3, [r7, #44] ; 0x2c - 803433e: 005b lsls r3, r3, #1 - 8034340: 6a3a ldr r2, [r7, #32] - 8034342: 4413 add r3, r2 - 8034344: 881b ldrh r3, [r3, #0] - 8034346: 887a ldrh r2, [r7, #2] - 8034348: 429a cmp r2, r3 - 803434a: f040 8081 bne.w 8034450 + 80342a8: 6afb ldr r3, [r7, #44] ; 0x2c + 80342aa: 005b lsls r3, r3, #1 + 80342ac: 6a3a ldr r2, [r7, #32] + 80342ae: 4413 add r3, r2 + 80342b0: 881b ldrh r3, [r3, #0] + 80342b2: 887a ldrh r2, [r7, #2] + 80342b4: 429a cmp r2, r3 + 80342b6: f040 8081 bne.w 80343bc lv_style_value_t * old_values = (lv_style_value_t *)style->v_p.values_and_props; - 803434e: 687b ldr r3, [r7, #4] - 8034350: 681b ldr r3, [r3, #0] - 8034352: 61fb str r3, [r7, #28] + 80342ba: 687b ldr r3, [r7, #4] + 80342bc: 681b ldr r3, [r3, #0] + 80342be: 61fb str r3, [r7, #28] if(style->prop_cnt == 2) { - 8034354: 687b ldr r3, [r7, #4] - 8034356: 79db ldrb r3, [r3, #7] - 8034358: 2b02 cmp r3, #2 - 803435a: d123 bne.n 80343a4 + 80342c0: 687b ldr r3, [r7, #4] + 80342c2: 79db ldrb r3, [r3, #7] + 80342c4: 2b02 cmp r3, #2 + 80342c6: d123 bne.n 8034310 style->prop_cnt = 1; - 803435c: 687b ldr r3, [r7, #4] - 803435e: 2201 movs r2, #1 - 8034360: 71da strb r2, [r3, #7] + 80342c8: 687b ldr r3, [r7, #4] + 80342ca: 2201 movs r2, #1 + 80342cc: 71da strb r2, [r3, #7] style->prop1 = i == 0 ? old_props[1] : old_props[0]; - 8034362: 6afb ldr r3, [r7, #44] ; 0x2c - 8034364: 2b00 cmp r3, #0 - 8034366: d106 bne.n 8034376 - 8034368: 6a3b ldr r3, [r7, #32] - 803436a: 3302 adds r3, #2 - 803436c: 881b ldrh r3, [r3, #0] - 803436e: f3c3 030e ubfx r3, r3, #0, #15 - 8034372: b299 uxth r1, r3 - 8034374: e004 b.n 8034380 - 8034376: 6a3b ldr r3, [r7, #32] - 8034378: 881b ldrh r3, [r3, #0] - 803437a: f3c3 030e ubfx r3, r3, #0, #15 - 803437e: b299 uxth r1, r3 - 8034380: 687a ldr r2, [r7, #4] - 8034382: 8893 ldrh r3, [r2, #4] - 8034384: f361 030e bfi r3, r1, #0, #15 - 8034388: 8093 strh r3, [r2, #4] + 80342ce: 6afb ldr r3, [r7, #44] ; 0x2c + 80342d0: 2b00 cmp r3, #0 + 80342d2: d106 bne.n 80342e2 + 80342d4: 6a3b ldr r3, [r7, #32] + 80342d6: 3302 adds r3, #2 + 80342d8: 881b ldrh r3, [r3, #0] + 80342da: f3c3 030e ubfx r3, r3, #0, #15 + 80342de: b299 uxth r1, r3 + 80342e0: e004 b.n 80342ec + 80342e2: 6a3b ldr r3, [r7, #32] + 80342e4: 881b ldrh r3, [r3, #0] + 80342e6: f3c3 030e ubfx r3, r3, #0, #15 + 80342ea: b299 uxth r1, r3 + 80342ec: 687a ldr r2, [r7, #4] + 80342ee: 8893 ldrh r3, [r2, #4] + 80342f0: f361 030e bfi r3, r1, #0, #15 + 80342f4: 8093 strh r3, [r2, #4] style->v_p.value1 = i == 0 ? old_values[1] : old_values[0]; - 803438a: 6afb ldr r3, [r7, #44] ; 0x2c - 803438c: 2b00 cmp r3, #0 - 803438e: d104 bne.n 803439a - 8034390: 687b ldr r3, [r7, #4] - 8034392: 69fa ldr r2, [r7, #28] - 8034394: 6852 ldr r2, [r2, #4] - 8034396: 601a str r2, [r3, #0] - 8034398: e055 b.n 8034446 - 803439a: 687b ldr r3, [r7, #4] - 803439c: 69fa ldr r2, [r7, #28] - 803439e: 6812 ldr r2, [r2, #0] - 80343a0: 601a str r2, [r3, #0] - 80343a2: e050 b.n 8034446 + 80342f6: 6afb ldr r3, [r7, #44] ; 0x2c + 80342f8: 2b00 cmp r3, #0 + 80342fa: d104 bne.n 8034306 + 80342fc: 687b ldr r3, [r7, #4] + 80342fe: 69fa ldr r2, [r7, #28] + 8034300: 6852 ldr r2, [r2, #4] + 8034302: 601a str r2, [r3, #0] + 8034304: e055 b.n 80343b2 + 8034306: 687b ldr r3, [r7, #4] + 8034308: 69fa ldr r2, [r7, #28] + 803430a: 6812 ldr r2, [r2, #0] + 803430c: 601a str r2, [r3, #0] + 803430e: e050 b.n 80343b2 } else { size_t size = (style->prop_cnt - 1) * (sizeof(lv_style_value_t) + sizeof(uint16_t)); - 80343a4: 687b ldr r3, [r7, #4] - 80343a6: 79db ldrb r3, [r3, #7] - 80343a8: 3b01 subs r3, #1 - 80343aa: 461a mov r2, r3 - 80343ac: 4613 mov r3, r2 - 80343ae: 005b lsls r3, r3, #1 - 80343b0: 4413 add r3, r2 - 80343b2: 005b lsls r3, r3, #1 - 80343b4: 61bb str r3, [r7, #24] + 8034310: 687b ldr r3, [r7, #4] + 8034312: 79db ldrb r3, [r3, #7] + 8034314: 3b01 subs r3, #1 + 8034316: 461a mov r2, r3 + 8034318: 4613 mov r3, r2 + 803431a: 005b lsls r3, r3, #1 + 803431c: 4413 add r3, r2 + 803431e: 005b lsls r3, r3, #1 + 8034320: 61bb str r3, [r7, #24] uint8_t * new_values_and_props = lv_mem_alloc(size); - 80343b6: 69b8 ldr r0, [r7, #24] - 80343b8: f7fe fa6e bl 8032898 - 80343bc: 6178 str r0, [r7, #20] + 8034322: 69b8 ldr r0, [r7, #24] + 8034324: f7fe fa6e bl 8032804 + 8034328: 6178 str r0, [r7, #20] if(new_values_and_props == NULL) return false; - 80343be: 697b ldr r3, [r7, #20] - 80343c0: 2b00 cmp r3, #0 - 80343c2: d101 bne.n 80343c8 - 80343c4: 2300 movs r3, #0 - 80343c6: e04e b.n 8034466 + 803432a: 697b ldr r3, [r7, #20] + 803432c: 2b00 cmp r3, #0 + 803432e: d101 bne.n 8034334 + 8034330: 2300 movs r3, #0 + 8034332: e04e b.n 80343d2 style->v_p.values_and_props = new_values_and_props; - 80343c8: 687b ldr r3, [r7, #4] - 80343ca: 697a ldr r2, [r7, #20] - 80343cc: 601a str r2, [r3, #0] + 8034334: 687b ldr r3, [r7, #4] + 8034336: 697a ldr r2, [r7, #20] + 8034338: 601a str r2, [r3, #0] style->prop_cnt--; - 80343ce: 687b ldr r3, [r7, #4] - 80343d0: 79db ldrb r3, [r3, #7] - 80343d2: 3b01 subs r3, #1 - 80343d4: b2da uxtb r2, r3 - 80343d6: 687b ldr r3, [r7, #4] - 80343d8: 71da strb r2, [r3, #7] + 803433a: 687b ldr r3, [r7, #4] + 803433c: 79db ldrb r3, [r3, #7] + 803433e: 3b01 subs r3, #1 + 8034340: b2da uxtb r2, r3 + 8034342: 687b ldr r3, [r7, #4] + 8034344: 71da strb r2, [r3, #7] tmp = new_values_and_props + style->prop_cnt * sizeof(lv_style_value_t); - 80343da: 687b ldr r3, [r7, #4] - 80343dc: 79db ldrb r3, [r3, #7] - 80343de: 009b lsls r3, r3, #2 - 80343e0: 697a ldr r2, [r7, #20] - 80343e2: 4413 add r3, r2 - 80343e4: 627b str r3, [r7, #36] ; 0x24 + 8034346: 687b ldr r3, [r7, #4] + 8034348: 79db ldrb r3, [r3, #7] + 803434a: 009b lsls r3, r3, #2 + 803434c: 697a ldr r2, [r7, #20] + 803434e: 4413 add r3, r2 + 8034350: 627b str r3, [r7, #36] ; 0x24 uint16_t * new_props = (uint16_t *)tmp; - 80343e6: 6a7b ldr r3, [r7, #36] ; 0x24 - 80343e8: 613b str r3, [r7, #16] + 8034352: 6a7b ldr r3, [r7, #36] ; 0x24 + 8034354: 613b str r3, [r7, #16] lv_style_value_t * new_values = (lv_style_value_t *)new_values_and_props; - 80343ea: 697b ldr r3, [r7, #20] - 80343ec: 60fb str r3, [r7, #12] + 8034356: 697b ldr r3, [r7, #20] + 8034358: 60fb str r3, [r7, #12] uint32_t j; for(i = j = 0; j <= style->prop_cnt; - 80343ee: 2300 movs r3, #0 - 80343f0: 62bb str r3, [r7, #40] ; 0x28 - 80343f2: 6abb ldr r3, [r7, #40] ; 0x28 - 80343f4: 62fb str r3, [r7, #44] ; 0x2c - 80343f6: e020 b.n 803443a + 803435a: 2300 movs r3, #0 + 803435c: 62bb str r3, [r7, #40] ; 0x28 + 803435e: 6abb ldr r3, [r7, #40] ; 0x28 + 8034360: 62fb str r3, [r7, #44] ; 0x2c + 8034362: e020 b.n 80343a6 j++) { /*<=: because prop_cnt already reduced but all the old props. needs to be checked.*/ if(old_props[j] != prop) { - 80343f8: 6abb ldr r3, [r7, #40] ; 0x28 - 80343fa: 005b lsls r3, r3, #1 - 80343fc: 6a3a ldr r2, [r7, #32] - 80343fe: 4413 add r3, r2 - 8034400: 881b ldrh r3, [r3, #0] - 8034402: 887a ldrh r2, [r7, #2] - 8034404: 429a cmp r2, r3 - 8034406: d015 beq.n 8034434 + 8034364: 6abb ldr r3, [r7, #40] ; 0x28 + 8034366: 005b lsls r3, r3, #1 + 8034368: 6a3a ldr r2, [r7, #32] + 803436a: 4413 add r3, r2 + 803436c: 881b ldrh r3, [r3, #0] + 803436e: 887a ldrh r2, [r7, #2] + 8034370: 429a cmp r2, r3 + 8034372: d015 beq.n 80343a0 new_values[i] = old_values[j]; - 8034408: 6abb ldr r3, [r7, #40] ; 0x28 - 803440a: 009b lsls r3, r3, #2 - 803440c: 69fa ldr r2, [r7, #28] - 803440e: 441a add r2, r3 - 8034410: 6afb ldr r3, [r7, #44] ; 0x2c - 8034412: 009b lsls r3, r3, #2 - 8034414: 68f9 ldr r1, [r7, #12] - 8034416: 440b add r3, r1 - 8034418: 6812 ldr r2, [r2, #0] - 803441a: 601a str r2, [r3, #0] + 8034374: 6abb ldr r3, [r7, #40] ; 0x28 + 8034376: 009b lsls r3, r3, #2 + 8034378: 69fa ldr r2, [r7, #28] + 803437a: 441a add r2, r3 + 803437c: 6afb ldr r3, [r7, #44] ; 0x2c + 803437e: 009b lsls r3, r3, #2 + 8034380: 68f9 ldr r1, [r7, #12] + 8034382: 440b add r3, r1 + 8034384: 6812 ldr r2, [r2, #0] + 8034386: 601a str r2, [r3, #0] new_props[i++] = old_props[j]; - 803441c: 6abb ldr r3, [r7, #40] ; 0x28 - 803441e: 005b lsls r3, r3, #1 - 8034420: 6a3a ldr r2, [r7, #32] - 8034422: 441a add r2, r3 - 8034424: 6afb ldr r3, [r7, #44] ; 0x2c - 8034426: 1c59 adds r1, r3, #1 - 8034428: 62f9 str r1, [r7, #44] ; 0x2c - 803442a: 005b lsls r3, r3, #1 - 803442c: 6939 ldr r1, [r7, #16] - 803442e: 440b add r3, r1 - 8034430: 8812 ldrh r2, [r2, #0] - 8034432: 801a strh r2, [r3, #0] + 8034388: 6abb ldr r3, [r7, #40] ; 0x28 + 803438a: 005b lsls r3, r3, #1 + 803438c: 6a3a ldr r2, [r7, #32] + 803438e: 441a add r2, r3 + 8034390: 6afb ldr r3, [r7, #44] ; 0x2c + 8034392: 1c59 adds r1, r3, #1 + 8034394: 62f9 str r1, [r7, #44] ; 0x2c + 8034396: 005b lsls r3, r3, #1 + 8034398: 6939 ldr r1, [r7, #16] + 803439a: 440b add r3, r1 + 803439c: 8812 ldrh r2, [r2, #0] + 803439e: 801a strh r2, [r3, #0] j++) { /*<=: because prop_cnt already reduced but all the old props. needs to be checked.*/ - 8034434: 6abb ldr r3, [r7, #40] ; 0x28 - 8034436: 3301 adds r3, #1 - 8034438: 62bb str r3, [r7, #40] ; 0x28 + 80343a0: 6abb ldr r3, [r7, #40] ; 0x28 + 80343a2: 3301 adds r3, #1 + 80343a4: 62bb str r3, [r7, #40] ; 0x28 for(i = j = 0; j <= style->prop_cnt; - 803443a: 687b ldr r3, [r7, #4] - 803443c: 79db ldrb r3, [r3, #7] - 803443e: 461a mov r2, r3 - 8034440: 6abb ldr r3, [r7, #40] ; 0x28 - 8034442: 4293 cmp r3, r2 - 8034444: d9d8 bls.n 80343f8 + 80343a6: 687b ldr r3, [r7, #4] + 80343a8: 79db ldrb r3, [r3, #7] + 80343aa: 461a mov r2, r3 + 80343ac: 6abb ldr r3, [r7, #40] ; 0x28 + 80343ae: 4293 cmp r3, r2 + 80343b0: d9d8 bls.n 8034364 } } } lv_mem_free(old_values); - 8034446: 69f8 ldr r0, [r7, #28] - 8034448: f7fe fa48 bl 80328dc + 80343b2: 69f8 ldr r0, [r7, #28] + 80343b4: f7fe fa48 bl 8032848 return true; - 803444c: 2301 movs r3, #1 - 803444e: e00a b.n 8034466 + 80343b8: 2301 movs r3, #1 + 80343ba: e00a b.n 80343d2 for(i = 0; i < style->prop_cnt; i++) { - 8034450: 6afb ldr r3, [r7, #44] ; 0x2c - 8034452: 3301 adds r3, #1 - 8034454: 62fb str r3, [r7, #44] ; 0x2c - 8034456: 687b ldr r3, [r7, #4] - 8034458: 79db ldrb r3, [r3, #7] - 803445a: 461a mov r2, r3 - 803445c: 6afb ldr r3, [r7, #44] ; 0x2c - 803445e: 4293 cmp r3, r2 - 8034460: f4ff af6c bcc.w 803433c + 80343bc: 6afb ldr r3, [r7, #44] ; 0x2c + 80343be: 3301 adds r3, #1 + 80343c0: 62fb str r3, [r7, #44] ; 0x2c + 80343c2: 687b ldr r3, [r7, #4] + 80343c4: 79db ldrb r3, [r3, #7] + 80343c6: 461a mov r2, r3 + 80343c8: 6afb ldr r3, [r7, #44] ; 0x2c + 80343ca: 4293 cmp r3, r2 + 80343cc: f4ff af6c bcc.w 80342a8 } } return false; - 8034464: 2300 movs r3, #0 + 80343d0: 2300 movs r3, #0 } - 8034466: 4618 mov r0, r3 - 8034468: 3730 adds r7, #48 ; 0x30 - 803446a: 46bd mov sp, r7 - 803446c: bd80 pop {r7, pc} + 80343d2: 4618 mov r0, r3 + 80343d4: 3730 adds r7, #48 ; 0x30 + 80343d6: 46bd mov sp, r7 + 80343d8: bd80 pop {r7, pc} -0803446e : +080343da : void lv_style_set_prop(lv_style_t * style, lv_style_prop_t prop, lv_style_value_t value) { - 803446e: b580 push {r7, lr} - 8034470: b092 sub sp, #72 ; 0x48 - 8034472: af00 add r7, sp, #0 - 8034474: 60f8 str r0, [r7, #12] - 8034476: 460b mov r3, r1 - 8034478: 607a str r2, [r7, #4] - 803447a: 817b strh r3, [r7, #10] + 80343da: b580 push {r7, lr} + 80343dc: b092 sub sp, #72 ; 0x48 + 80343de: af00 add r7, sp, #0 + 80343e0: 60f8 str r0, [r7, #12] + 80343e2: 460b mov r3, r1 + 80343e4: 607a str r2, [r7, #4] + 80343e6: 817b strh r3, [r7, #10] LV_ASSERT_STYLE(style); if(style->is_const) { - 803447c: 68fb ldr r3, [r7, #12] - 803447e: 795b ldrb r3, [r3, #5] - 8034480: f023 037f bic.w r3, r3, #127 ; 0x7f - 8034484: b2db uxtb r3, r3 - 8034486: 2b00 cmp r3, #0 - 8034488: f040 80f2 bne.w 8034670 + 80343e8: 68fb ldr r3, [r7, #12] + 80343ea: 795b ldrb r3, [r3, #5] + 80343ec: f023 037f bic.w r3, r3, #127 ; 0x7f + 80343f0: b2db uxtb r3, r3 + 80343f2: 2b00 cmp r3, #0 + 80343f4: f040 80f2 bne.w 80345dc LV_LOG_ERROR("Cannot set property of constant style"); return; } if(style->prop_cnt > 1) { - 803448c: 68fb ldr r3, [r7, #12] - 803448e: 79db ldrb r3, [r3, #7] - 8034490: 2b01 cmp r3, #1 - 8034492: d97f bls.n 8034594 + 80343f8: 68fb ldr r3, [r7, #12] + 80343fa: 79db ldrb r3, [r3, #7] + 80343fc: 2b01 cmp r3, #1 + 80343fe: d97f bls.n 8034500 uint8_t * tmp = style->v_p.values_and_props + style->prop_cnt * sizeof(lv_style_value_t); - 8034494: 68fb ldr r3, [r7, #12] - 8034496: 681a ldr r2, [r3, #0] - 8034498: 68fb ldr r3, [r7, #12] - 803449a: 79db ldrb r3, [r3, #7] - 803449c: 009b lsls r3, r3, #2 - 803449e: 4413 add r3, r2 - 80344a0: 62fb str r3, [r7, #44] ; 0x2c + 8034400: 68fb ldr r3, [r7, #12] + 8034402: 681a ldr r2, [r3, #0] + 8034404: 68fb ldr r3, [r7, #12] + 8034406: 79db ldrb r3, [r3, #7] + 8034408: 009b lsls r3, r3, #2 + 803440a: 4413 add r3, r2 + 803440c: 62fb str r3, [r7, #44] ; 0x2c uint16_t * props = (uint16_t *)tmp; - 80344a2: 6afb ldr r3, [r7, #44] ; 0x2c - 80344a4: 62bb str r3, [r7, #40] ; 0x28 + 803440e: 6afb ldr r3, [r7, #44] ; 0x2c + 8034410: 62bb str r3, [r7, #40] ; 0x28 int32_t i; for(i = style->prop_cnt - 1; i >= 0; i--) { - 80344a6: 68fb ldr r3, [r7, #12] - 80344a8: 79db ldrb r3, [r3, #7] - 80344aa: 3b01 subs r3, #1 - 80344ac: 647b str r3, [r7, #68] ; 0x44 - 80344ae: e014 b.n 80344da + 8034412: 68fb ldr r3, [r7, #12] + 8034414: 79db ldrb r3, [r3, #7] + 8034416: 3b01 subs r3, #1 + 8034418: 647b str r3, [r7, #68] ; 0x44 + 803441a: e014 b.n 8034446 if(props[i] == prop) { - 80344b0: 6c7b ldr r3, [r7, #68] ; 0x44 - 80344b2: 005b lsls r3, r3, #1 - 80344b4: 6aba ldr r2, [r7, #40] ; 0x28 - 80344b6: 4413 add r3, r2 - 80344b8: 881b ldrh r3, [r3, #0] - 80344ba: 897a ldrh r2, [r7, #10] - 80344bc: 429a cmp r2, r3 - 80344be: d109 bne.n 80344d4 + 803441c: 6c7b ldr r3, [r7, #68] ; 0x44 + 803441e: 005b lsls r3, r3, #1 + 8034420: 6aba ldr r2, [r7, #40] ; 0x28 + 8034422: 4413 add r3, r2 + 8034424: 881b ldrh r3, [r3, #0] + 8034426: 897a ldrh r2, [r7, #10] + 8034428: 429a cmp r2, r3 + 803442a: d109 bne.n 8034440 lv_style_value_t * values = (lv_style_value_t *)style->v_p.values_and_props; - 80344c0: 68fb ldr r3, [r7, #12] - 80344c2: 681b ldr r3, [r3, #0] - 80344c4: 61bb str r3, [r7, #24] + 803442c: 68fb ldr r3, [r7, #12] + 803442e: 681b ldr r3, [r3, #0] + 8034430: 61bb str r3, [r7, #24] values[i] = value; - 80344c6: 6c7b ldr r3, [r7, #68] ; 0x44 - 80344c8: 009b lsls r3, r3, #2 - 80344ca: 69ba ldr r2, [r7, #24] - 80344cc: 4413 add r3, r2 - 80344ce: 687a ldr r2, [r7, #4] - 80344d0: 601a str r2, [r3, #0] + 8034432: 6c7b ldr r3, [r7, #68] ; 0x44 + 8034434: 009b lsls r3, r3, #2 + 8034436: 69ba ldr r2, [r7, #24] + 8034438: 4413 add r3, r2 + 803443a: 687a ldr r2, [r7, #4] + 803443c: 601a str r2, [r3, #0] return; - 80344d2: e0d2 b.n 803467a + 803443e: e0d2 b.n 80345e6 for(i = style->prop_cnt - 1; i >= 0; i--) { - 80344d4: 6c7b ldr r3, [r7, #68] ; 0x44 - 80344d6: 3b01 subs r3, #1 - 80344d8: 647b str r3, [r7, #68] ; 0x44 - 80344da: 6c7b ldr r3, [r7, #68] ; 0x44 - 80344dc: 2b00 cmp r3, #0 - 80344de: dae7 bge.n 80344b0 + 8034440: 6c7b ldr r3, [r7, #68] ; 0x44 + 8034442: 3b01 subs r3, #1 + 8034444: 647b str r3, [r7, #68] ; 0x44 + 8034446: 6c7b ldr r3, [r7, #68] ; 0x44 + 8034448: 2b00 cmp r3, #0 + 803444a: dae7 bge.n 803441c } } size_t size = (style->prop_cnt + 1) * (sizeof(lv_style_value_t) + sizeof(uint16_t)); - 80344e0: 68fb ldr r3, [r7, #12] - 80344e2: 79db ldrb r3, [r3, #7] - 80344e4: 3301 adds r3, #1 - 80344e6: 461a mov r2, r3 - 80344e8: 4613 mov r3, r2 - 80344ea: 005b lsls r3, r3, #1 - 80344ec: 4413 add r3, r2 - 80344ee: 005b lsls r3, r3, #1 - 80344f0: 627b str r3, [r7, #36] ; 0x24 + 803444c: 68fb ldr r3, [r7, #12] + 803444e: 79db ldrb r3, [r3, #7] + 8034450: 3301 adds r3, #1 + 8034452: 461a mov r2, r3 + 8034454: 4613 mov r3, r2 + 8034456: 005b lsls r3, r3, #1 + 8034458: 4413 add r3, r2 + 803445a: 005b lsls r3, r3, #1 + 803445c: 627b str r3, [r7, #36] ; 0x24 uint8_t * values_and_props = lv_mem_realloc(style->v_p.values_and_props, size); - 80344f2: 68fb ldr r3, [r7, #12] - 80344f4: 681b ldr r3, [r3, #0] - 80344f6: 6a79 ldr r1, [r7, #36] ; 0x24 - 80344f8: 4618 mov r0, r3 - 80344fa: f7fe fa0b bl 8032914 - 80344fe: 6238 str r0, [r7, #32] + 803445e: 68fb ldr r3, [r7, #12] + 8034460: 681b ldr r3, [r3, #0] + 8034462: 6a79 ldr r1, [r7, #36] ; 0x24 + 8034464: 4618 mov r0, r3 + 8034466: f7fe fa0b bl 8032880 + 803446a: 6238 str r0, [r7, #32] if(values_and_props == NULL) return; - 8034500: 6a3b ldr r3, [r7, #32] - 8034502: 2b00 cmp r3, #0 - 8034504: f000 80b6 beq.w 8034674 + 803446c: 6a3b ldr r3, [r7, #32] + 803446e: 2b00 cmp r3, #0 + 8034470: f000 80b6 beq.w 80345e0 style->v_p.values_and_props = values_and_props; - 8034508: 68fb ldr r3, [r7, #12] - 803450a: 6a3a ldr r2, [r7, #32] - 803450c: 601a str r2, [r3, #0] + 8034474: 68fb ldr r3, [r7, #12] + 8034476: 6a3a ldr r2, [r7, #32] + 8034478: 601a str r2, [r3, #0] tmp = values_and_props + style->prop_cnt * sizeof(lv_style_value_t); - 803450e: 68fb ldr r3, [r7, #12] - 8034510: 79db ldrb r3, [r3, #7] - 8034512: 009b lsls r3, r3, #2 - 8034514: 6a3a ldr r2, [r7, #32] - 8034516: 4413 add r3, r2 - 8034518: 62fb str r3, [r7, #44] ; 0x2c + 803447a: 68fb ldr r3, [r7, #12] + 803447c: 79db ldrb r3, [r3, #7] + 803447e: 009b lsls r3, r3, #2 + 8034480: 6a3a ldr r2, [r7, #32] + 8034482: 4413 add r3, r2 + 8034484: 62fb str r3, [r7, #44] ; 0x2c props = (uint16_t *)tmp; - 803451a: 6afb ldr r3, [r7, #44] ; 0x2c - 803451c: 62bb str r3, [r7, #40] ; 0x28 + 8034486: 6afb ldr r3, [r7, #44] ; 0x2c + 8034488: 62bb str r3, [r7, #40] ; 0x28 /*Shift all props to make place for the value before them*/ for(i = style->prop_cnt - 1; i >= 0; i--) { - 803451e: 68fb ldr r3, [r7, #12] - 8034520: 79db ldrb r3, [r3, #7] - 8034522: 3b01 subs r3, #1 - 8034524: 647b str r3, [r7, #68] ; 0x44 - 8034526: e00d b.n 8034544 + 803448a: 68fb ldr r3, [r7, #12] + 803448c: 79db ldrb r3, [r3, #7] + 803448e: 3b01 subs r3, #1 + 8034490: 647b str r3, [r7, #68] ; 0x44 + 8034492: e00d b.n 80344b0 props[i + sizeof(lv_style_value_t) / sizeof(uint16_t)] = props[i]; - 8034528: 6c7b ldr r3, [r7, #68] ; 0x44 - 803452a: 005b lsls r3, r3, #1 - 803452c: 6aba ldr r2, [r7, #40] ; 0x28 - 803452e: 441a add r2, r3 - 8034530: 6c7b ldr r3, [r7, #68] ; 0x44 - 8034532: 3302 adds r3, #2 - 8034534: 005b lsls r3, r3, #1 - 8034536: 6ab9 ldr r1, [r7, #40] ; 0x28 - 8034538: 440b add r3, r1 - 803453a: 8812 ldrh r2, [r2, #0] - 803453c: 801a strh r2, [r3, #0] + 8034494: 6c7b ldr r3, [r7, #68] ; 0x44 + 8034496: 005b lsls r3, r3, #1 + 8034498: 6aba ldr r2, [r7, #40] ; 0x28 + 803449a: 441a add r2, r3 + 803449c: 6c7b ldr r3, [r7, #68] ; 0x44 + 803449e: 3302 adds r3, #2 + 80344a0: 005b lsls r3, r3, #1 + 80344a2: 6ab9 ldr r1, [r7, #40] ; 0x28 + 80344a4: 440b add r3, r1 + 80344a6: 8812 ldrh r2, [r2, #0] + 80344a8: 801a strh r2, [r3, #0] for(i = style->prop_cnt - 1; i >= 0; i--) { - 803453e: 6c7b ldr r3, [r7, #68] ; 0x44 - 8034540: 3b01 subs r3, #1 - 8034542: 647b str r3, [r7, #68] ; 0x44 - 8034544: 6c7b ldr r3, [r7, #68] ; 0x44 - 8034546: 2b00 cmp r3, #0 - 8034548: daee bge.n 8034528 + 80344aa: 6c7b ldr r3, [r7, #68] ; 0x44 + 80344ac: 3b01 subs r3, #1 + 80344ae: 647b str r3, [r7, #68] ; 0x44 + 80344b0: 6c7b ldr r3, [r7, #68] ; 0x44 + 80344b2: 2b00 cmp r3, #0 + 80344b4: daee bge.n 8034494 } style->prop_cnt++; - 803454a: 68fb ldr r3, [r7, #12] - 803454c: 79db ldrb r3, [r3, #7] - 803454e: 3301 adds r3, #1 - 8034550: b2da uxtb r2, r3 - 8034552: 68fb ldr r3, [r7, #12] - 8034554: 71da strb r2, [r3, #7] + 80344b6: 68fb ldr r3, [r7, #12] + 80344b8: 79db ldrb r3, [r3, #7] + 80344ba: 3301 adds r3, #1 + 80344bc: b2da uxtb r2, r3 + 80344be: 68fb ldr r3, [r7, #12] + 80344c0: 71da strb r2, [r3, #7] /*Go to the new position wit the props*/ tmp = values_and_props + style->prop_cnt * sizeof(lv_style_value_t); - 8034556: 68fb ldr r3, [r7, #12] - 8034558: 79db ldrb r3, [r3, #7] - 803455a: 009b lsls r3, r3, #2 - 803455c: 6a3a ldr r2, [r7, #32] - 803455e: 4413 add r3, r2 - 8034560: 62fb str r3, [r7, #44] ; 0x2c + 80344c2: 68fb ldr r3, [r7, #12] + 80344c4: 79db ldrb r3, [r3, #7] + 80344c6: 009b lsls r3, r3, #2 + 80344c8: 6a3a ldr r2, [r7, #32] + 80344ca: 4413 add r3, r2 + 80344cc: 62fb str r3, [r7, #44] ; 0x2c props = (uint16_t *)tmp; - 8034562: 6afb ldr r3, [r7, #44] ; 0x2c - 8034564: 62bb str r3, [r7, #40] ; 0x28 + 80344ce: 6afb ldr r3, [r7, #44] ; 0x2c + 80344d0: 62bb str r3, [r7, #40] ; 0x28 lv_style_value_t * values = (lv_style_value_t *)values_and_props; - 8034566: 6a3b ldr r3, [r7, #32] - 8034568: 61fb str r3, [r7, #28] + 80344d2: 6a3b ldr r3, [r7, #32] + 80344d4: 61fb str r3, [r7, #28] /*Set the new property and value*/ props[style->prop_cnt - 1] = prop; - 803456a: 68fb ldr r3, [r7, #12] - 803456c: 79db ldrb r3, [r3, #7] - 803456e: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 - 8034572: 3b01 subs r3, #1 - 8034574: 005b lsls r3, r3, #1 - 8034576: 6aba ldr r2, [r7, #40] ; 0x28 - 8034578: 4413 add r3, r2 - 803457a: 897a ldrh r2, [r7, #10] - 803457c: 801a strh r2, [r3, #0] + 80344d6: 68fb ldr r3, [r7, #12] + 80344d8: 79db ldrb r3, [r3, #7] + 80344da: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 + 80344de: 3b01 subs r3, #1 + 80344e0: 005b lsls r3, r3, #1 + 80344e2: 6aba ldr r2, [r7, #40] ; 0x28 + 80344e4: 4413 add r3, r2 + 80344e6: 897a ldrh r2, [r7, #10] + 80344e8: 801a strh r2, [r3, #0] values[style->prop_cnt - 1] = value; - 803457e: 68fb ldr r3, [r7, #12] - 8034580: 79db ldrb r3, [r3, #7] - 8034582: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 - 8034586: 3b01 subs r3, #1 - 8034588: 009b lsls r3, r3, #2 - 803458a: 69fa ldr r2, [r7, #28] - 803458c: 4413 add r3, r2 - 803458e: 687a ldr r2, [r7, #4] - 8034590: 601a str r2, [r3, #0] - 8034592: e059 b.n 8034648 + 80344ea: 68fb ldr r3, [r7, #12] + 80344ec: 79db ldrb r3, [r3, #7] + 80344ee: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 + 80344f2: 3b01 subs r3, #1 + 80344f4: 009b lsls r3, r3, #2 + 80344f6: 69fa ldr r2, [r7, #28] + 80344f8: 4413 add r3, r2 + 80344fa: 687a ldr r2, [r7, #4] + 80344fc: 601a str r2, [r3, #0] + 80344fe: e059 b.n 80345b4 } else if(style->prop_cnt == 1) { - 8034594: 68fb ldr r3, [r7, #12] - 8034596: 79db ldrb r3, [r3, #7] - 8034598: 2b01 cmp r3, #1 - 803459a: d146 bne.n 803462a + 8034500: 68fb ldr r3, [r7, #12] + 8034502: 79db ldrb r3, [r3, #7] + 8034504: 2b01 cmp r3, #1 + 8034506: d146 bne.n 8034596 if(style->prop1 == prop) { - 803459c: 68fb ldr r3, [r7, #12] - 803459e: 889b ldrh r3, [r3, #4] - 80345a0: f3c3 030e ubfx r3, r3, #0, #15 - 80345a4: b29b uxth r3, r3 - 80345a6: 461a mov r2, r3 - 80345a8: 897b ldrh r3, [r7, #10] - 80345aa: 429a cmp r2, r3 - 80345ac: d103 bne.n 80345b6 + 8034508: 68fb ldr r3, [r7, #12] + 803450a: 889b ldrh r3, [r3, #4] + 803450c: f3c3 030e ubfx r3, r3, #0, #15 + 8034510: b29b uxth r3, r3 + 8034512: 461a mov r2, r3 + 8034514: 897b ldrh r3, [r7, #10] + 8034516: 429a cmp r2, r3 + 8034518: d103 bne.n 8034522 style->v_p.value1 = value; - 80345ae: 68fb ldr r3, [r7, #12] - 80345b0: 687a ldr r2, [r7, #4] - 80345b2: 601a str r2, [r3, #0] + 803451a: 68fb ldr r3, [r7, #12] + 803451c: 687a ldr r2, [r7, #4] + 803451e: 601a str r2, [r3, #0] return; - 80345b4: e061 b.n 803467a + 8034520: e061 b.n 80345e6 } size_t size = (style->prop_cnt + 1) * (sizeof(lv_style_value_t) + sizeof(uint16_t)); - 80345b6: 68fb ldr r3, [r7, #12] - 80345b8: 79db ldrb r3, [r3, #7] - 80345ba: 3301 adds r3, #1 - 80345bc: 461a mov r2, r3 - 80345be: 4613 mov r3, r2 - 80345c0: 005b lsls r3, r3, #1 - 80345c2: 4413 add r3, r2 - 80345c4: 005b lsls r3, r3, #1 - 80345c6: 643b str r3, [r7, #64] ; 0x40 + 8034522: 68fb ldr r3, [r7, #12] + 8034524: 79db ldrb r3, [r3, #7] + 8034526: 3301 adds r3, #1 + 8034528: 461a mov r2, r3 + 803452a: 4613 mov r3, r2 + 803452c: 005b lsls r3, r3, #1 + 803452e: 4413 add r3, r2 + 8034530: 005b lsls r3, r3, #1 + 8034532: 643b str r3, [r7, #64] ; 0x40 uint8_t * values_and_props = lv_mem_alloc(size); - 80345c8: 6c38 ldr r0, [r7, #64] ; 0x40 - 80345ca: f7fe f965 bl 8032898 - 80345ce: 63f8 str r0, [r7, #60] ; 0x3c + 8034534: 6c38 ldr r0, [r7, #64] ; 0x40 + 8034536: f7fe f965 bl 8032804 + 803453a: 63f8 str r0, [r7, #60] ; 0x3c if(values_and_props == NULL) return; - 80345d0: 6bfb ldr r3, [r7, #60] ; 0x3c - 80345d2: 2b00 cmp r3, #0 - 80345d4: d050 beq.n 8034678 + 803453c: 6bfb ldr r3, [r7, #60] ; 0x3c + 803453e: 2b00 cmp r3, #0 + 8034540: d050 beq.n 80345e4 lv_style_value_t value_tmp = style->v_p.value1; - 80345d6: 68fb ldr r3, [r7, #12] - 80345d8: 681b ldr r3, [r3, #0] - 80345da: 613b str r3, [r7, #16] + 8034542: 68fb ldr r3, [r7, #12] + 8034544: 681b ldr r3, [r3, #0] + 8034546: 613b str r3, [r7, #16] style->v_p.values_and_props = values_and_props; - 80345dc: 68fb ldr r3, [r7, #12] - 80345de: 6bfa ldr r2, [r7, #60] ; 0x3c - 80345e0: 601a str r2, [r3, #0] + 8034548: 68fb ldr r3, [r7, #12] + 803454a: 6bfa ldr r2, [r7, #60] ; 0x3c + 803454c: 601a str r2, [r3, #0] style->prop_cnt++; - 80345e2: 68fb ldr r3, [r7, #12] - 80345e4: 79db ldrb r3, [r3, #7] - 80345e6: 3301 adds r3, #1 - 80345e8: b2da uxtb r2, r3 - 80345ea: 68fb ldr r3, [r7, #12] - 80345ec: 71da strb r2, [r3, #7] + 803454e: 68fb ldr r3, [r7, #12] + 8034550: 79db ldrb r3, [r3, #7] + 8034552: 3301 adds r3, #1 + 8034554: b2da uxtb r2, r3 + 8034556: 68fb ldr r3, [r7, #12] + 8034558: 71da strb r2, [r3, #7] uint8_t * tmp = values_and_props + style->prop_cnt * sizeof(lv_style_value_t); - 80345ee: 68fb ldr r3, [r7, #12] - 80345f0: 79db ldrb r3, [r3, #7] - 80345f2: 009b lsls r3, r3, #2 - 80345f4: 6bfa ldr r2, [r7, #60] ; 0x3c - 80345f6: 4413 add r3, r2 - 80345f8: 63bb str r3, [r7, #56] ; 0x38 + 803455a: 68fb ldr r3, [r7, #12] + 803455c: 79db ldrb r3, [r3, #7] + 803455e: 009b lsls r3, r3, #2 + 8034560: 6bfa ldr r2, [r7, #60] ; 0x3c + 8034562: 4413 add r3, r2 + 8034564: 63bb str r3, [r7, #56] ; 0x38 uint16_t * props = (uint16_t *)tmp; - 80345fa: 6bbb ldr r3, [r7, #56] ; 0x38 - 80345fc: 637b str r3, [r7, #52] ; 0x34 + 8034566: 6bbb ldr r3, [r7, #56] ; 0x38 + 8034568: 637b str r3, [r7, #52] ; 0x34 lv_style_value_t * values = (lv_style_value_t *)values_and_props; - 80345fe: 6bfb ldr r3, [r7, #60] ; 0x3c - 8034600: 633b str r3, [r7, #48] ; 0x30 + 803456a: 6bfb ldr r3, [r7, #60] ; 0x3c + 803456c: 633b str r3, [r7, #48] ; 0x30 props[0] = style->prop1; - 8034602: 68fb ldr r3, [r7, #12] - 8034604: 889b ldrh r3, [r3, #4] - 8034606: f3c3 030e ubfx r3, r3, #0, #15 - 803460a: b29b uxth r3, r3 - 803460c: 461a mov r2, r3 - 803460e: 6b7b ldr r3, [r7, #52] ; 0x34 - 8034610: 801a strh r2, [r3, #0] + 803456e: 68fb ldr r3, [r7, #12] + 8034570: 889b ldrh r3, [r3, #4] + 8034572: f3c3 030e ubfx r3, r3, #0, #15 + 8034576: b29b uxth r3, r3 + 8034578: 461a mov r2, r3 + 803457a: 6b7b ldr r3, [r7, #52] ; 0x34 + 803457c: 801a strh r2, [r3, #0] props[1] = prop; - 8034612: 6b7b ldr r3, [r7, #52] ; 0x34 - 8034614: 3302 adds r3, #2 - 8034616: 897a ldrh r2, [r7, #10] - 8034618: 801a strh r2, [r3, #0] + 803457e: 6b7b ldr r3, [r7, #52] ; 0x34 + 8034580: 3302 adds r3, #2 + 8034582: 897a ldrh r2, [r7, #10] + 8034584: 801a strh r2, [r3, #0] values[0] = value_tmp; - 803461a: 6b3b ldr r3, [r7, #48] ; 0x30 - 803461c: 693a ldr r2, [r7, #16] - 803461e: 601a str r2, [r3, #0] + 8034586: 6b3b ldr r3, [r7, #48] ; 0x30 + 8034588: 693a ldr r2, [r7, #16] + 803458a: 601a str r2, [r3, #0] values[1] = value; - 8034620: 6b3b ldr r3, [r7, #48] ; 0x30 - 8034622: 3304 adds r3, #4 - 8034624: 687a ldr r2, [r7, #4] - 8034626: 601a str r2, [r3, #0] - 8034628: e00e b.n 8034648 + 803458c: 6b3b ldr r3, [r7, #48] ; 0x30 + 803458e: 3304 adds r3, #4 + 8034590: 687a ldr r2, [r7, #4] + 8034592: 601a str r2, [r3, #0] + 8034594: e00e b.n 80345b4 } else { style->prop_cnt = 1; - 803462a: 68fb ldr r3, [r7, #12] - 803462c: 2201 movs r2, #1 - 803462e: 71da strb r2, [r3, #7] + 8034596: 68fb ldr r3, [r7, #12] + 8034598: 2201 movs r2, #1 + 803459a: 71da strb r2, [r3, #7] style->prop1 = prop; - 8034630: 897b ldrh r3, [r7, #10] - 8034632: f3c3 030e ubfx r3, r3, #0, #15 - 8034636: b299 uxth r1, r3 - 8034638: 68fa ldr r2, [r7, #12] - 803463a: 8893 ldrh r3, [r2, #4] - 803463c: f361 030e bfi r3, r1, #0, #15 - 8034640: 8093 strh r3, [r2, #4] + 803459c: 897b ldrh r3, [r7, #10] + 803459e: f3c3 030e ubfx r3, r3, #0, #15 + 80345a2: b299 uxth r1, r3 + 80345a4: 68fa ldr r2, [r7, #12] + 80345a6: 8893 ldrh r3, [r2, #4] + 80345a8: f361 030e bfi r3, r1, #0, #15 + 80345ac: 8093 strh r3, [r2, #4] style->v_p.value1 = value; - 8034642: 68fb ldr r3, [r7, #12] - 8034644: 687a ldr r2, [r7, #4] - 8034646: 601a str r2, [r3, #0] + 80345ae: 68fb ldr r3, [r7, #12] + 80345b0: 687a ldr r2, [r7, #4] + 80345b2: 601a str r2, [r3, #0] } uint8_t group = _lv_style_get_prop_group(prop); - 8034648: 897b ldrh r3, [r7, #10] - 803464a: 4618 mov r0, r3 - 803464c: f000 f930 bl 80348b0 <_lv_style_get_prop_group> - 8034650: 4603 mov r3, r0 - 8034652: 75fb strb r3, [r7, #23] + 80345b4: 897b ldrh r3, [r7, #10] + 80345b6: 4618 mov r0, r3 + 80345b8: f000 f930 bl 803481c <_lv_style_get_prop_group> + 80345bc: 4603 mov r3, r0 + 80345be: 75fb strb r3, [r7, #23] style->has_group |= 1 << group; - 8034654: 68fb ldr r3, [r7, #12] - 8034656: 799b ldrb r3, [r3, #6] - 8034658: b25a sxtb r2, r3 - 803465a: 7dfb ldrb r3, [r7, #23] - 803465c: 2101 movs r1, #1 - 803465e: fa01 f303 lsl.w r3, r1, r3 - 8034662: b25b sxtb r3, r3 - 8034664: 4313 orrs r3, r2 - 8034666: b25b sxtb r3, r3 - 8034668: b2da uxtb r2, r3 - 803466a: 68fb ldr r3, [r7, #12] - 803466c: 719a strb r2, [r3, #6] - 803466e: e004 b.n 803467a + 80345c0: 68fb ldr r3, [r7, #12] + 80345c2: 799b ldrb r3, [r3, #6] + 80345c4: b25a sxtb r2, r3 + 80345c6: 7dfb ldrb r3, [r7, #23] + 80345c8: 2101 movs r1, #1 + 80345ca: fa01 f303 lsl.w r3, r1, r3 + 80345ce: b25b sxtb r3, r3 + 80345d0: 4313 orrs r3, r2 + 80345d2: b25b sxtb r3, r3 + 80345d4: b2da uxtb r2, r3 + 80345d6: 68fb ldr r3, [r7, #12] + 80345d8: 719a strb r2, [r3, #6] + 80345da: e004 b.n 80345e6 return; - 8034670: bf00 nop - 8034672: e002 b.n 803467a + 80345dc: bf00 nop + 80345de: e002 b.n 80345e6 if(values_and_props == NULL) return; - 8034674: bf00 nop - 8034676: e000 b.n 803467a + 80345e0: bf00 nop + 80345e2: e000 b.n 80345e6 if(values_and_props == NULL) return; - 8034678: bf00 nop + 80345e4: bf00 nop } - 803467a: 3748 adds r7, #72 ; 0x48 - 803467c: 46bd mov sp, r7 - 803467e: bd80 pop {r7, pc} + 80345e6: 3748 adds r7, #72 ; 0x48 + 80345e8: 46bd mov sp, r7 + 80345ea: bd80 pop {r7, pc} -08034680 : +080345ec : lv_res_t lv_style_get_prop(const lv_style_t * style, lv_style_prop_t prop, lv_style_value_t * value) { - 8034680: b580 push {r7, lr} - 8034682: b084 sub sp, #16 - 8034684: af00 add r7, sp, #0 - 8034686: 60f8 str r0, [r7, #12] - 8034688: 460b mov r3, r1 - 803468a: 607a str r2, [r7, #4] - 803468c: 817b strh r3, [r7, #10] + 80345ec: b580 push {r7, lr} + 80345ee: b084 sub sp, #16 + 80345f0: af00 add r7, sp, #0 + 80345f2: 60f8 str r0, [r7, #12] + 80345f4: 460b mov r3, r1 + 80345f6: 607a str r2, [r7, #4] + 80345f8: 817b strh r3, [r7, #10] return lv_style_get_prop_inlined(style, prop, value); - 803468e: 897b ldrh r3, [r7, #10] - 8034690: 687a ldr r2, [r7, #4] - 8034692: 4619 mov r1, r3 - 8034694: 68f8 ldr r0, [r7, #12] - 8034696: f7ff fd6e bl 8034176 - 803469a: 4603 mov r3, r0 + 80345fa: 897b ldrh r3, [r7, #10] + 80345fc: 687a ldr r2, [r7, #4] + 80345fe: 4619 mov r1, r3 + 8034600: 68f8 ldr r0, [r7, #12] + 8034602: f7ff fd6e bl 80340e2 + 8034606: 4603 mov r3, r0 } - 803469c: 4618 mov r0, r3 - 803469e: 3710 adds r7, #16 - 80346a0: 46bd mov sp, r7 - 80346a2: bd80 pop {r7, pc} + 8034608: 4618 mov r0, r3 + 803460a: 3710 adds r7, #16 + 803460c: 46bd mov sp, r7 + 803460e: bd80 pop {r7, pc} -080346a4 : +08034610 : void lv_style_transition_dsc_init(lv_style_transition_dsc_t * tr, const lv_style_prop_t props[], lv_anim_path_cb_t path_cb, uint32_t time, uint32_t delay, void * user_data) { - 80346a4: b580 push {r7, lr} - 80346a6: b084 sub sp, #16 - 80346a8: af00 add r7, sp, #0 - 80346aa: 60f8 str r0, [r7, #12] - 80346ac: 60b9 str r1, [r7, #8] - 80346ae: 607a str r2, [r7, #4] - 80346b0: 603b str r3, [r7, #0] + 8034610: b580 push {r7, lr} + 8034612: b084 sub sp, #16 + 8034614: af00 add r7, sp, #0 + 8034616: 60f8 str r0, [r7, #12] + 8034618: 60b9 str r1, [r7, #8] + 803461a: 607a str r2, [r7, #4] + 803461c: 603b str r3, [r7, #0] lv_memset_00(tr, sizeof(lv_style_transition_dsc_t)); - 80346b2: 2114 movs r1, #20 - 80346b4: 68f8 ldr r0, [r7, #12] - 80346b6: f7fe fd4b bl 8033150 + 803461e: 2114 movs r1, #20 + 8034620: 68f8 ldr r0, [r7, #12] + 8034622: f7fe fd4b bl 80330bc tr->props = props; - 80346ba: 68fb ldr r3, [r7, #12] - 80346bc: 68ba ldr r2, [r7, #8] - 80346be: 601a str r2, [r3, #0] + 8034626: 68fb ldr r3, [r7, #12] + 8034628: 68ba ldr r2, [r7, #8] + 803462a: 601a str r2, [r3, #0] tr->path_xcb = path_cb == NULL ? lv_anim_path_linear : path_cb; - 80346c0: 687b ldr r3, [r7, #4] - 80346c2: 2b00 cmp r3, #0 - 80346c4: d001 beq.n 80346ca - 80346c6: 687b ldr r3, [r7, #4] - 80346c8: e000 b.n 80346cc - 80346ca: 4b08 ldr r3, [pc, #32] ; (80346ec ) - 80346cc: 68fa ldr r2, [r7, #12] - 80346ce: 6093 str r3, [r2, #8] + 803462c: 687b ldr r3, [r7, #4] + 803462e: 2b00 cmp r3, #0 + 8034630: d001 beq.n 8034636 + 8034632: 687b ldr r3, [r7, #4] + 8034634: e000 b.n 8034638 + 8034636: 4b08 ldr r3, [pc, #32] ; (8034658 ) + 8034638: 68fa ldr r2, [r7, #12] + 803463a: 6093 str r3, [r2, #8] tr->time = time; - 80346d0: 68fb ldr r3, [r7, #12] - 80346d2: 683a ldr r2, [r7, #0] - 80346d4: 60da str r2, [r3, #12] + 803463c: 68fb ldr r3, [r7, #12] + 803463e: 683a ldr r2, [r7, #0] + 8034640: 60da str r2, [r3, #12] tr->delay = delay; - 80346d6: 68fb ldr r3, [r7, #12] - 80346d8: 69ba ldr r2, [r7, #24] - 80346da: 611a str r2, [r3, #16] + 8034642: 68fb ldr r3, [r7, #12] + 8034644: 69ba ldr r2, [r7, #24] + 8034646: 611a str r2, [r3, #16] #if LV_USE_USER_DATA tr->user_data = user_data; - 80346dc: 68fb ldr r3, [r7, #12] - 80346de: 69fa ldr r2, [r7, #28] - 80346e0: 605a str r2, [r3, #4] + 8034648: 68fb ldr r3, [r7, #12] + 803464a: 69fa ldr r2, [r7, #28] + 803464c: 605a str r2, [r3, #4] #else LV_UNUSED(user_data); #endif } - 80346e2: bf00 nop - 80346e4: 3710 adds r7, #16 - 80346e6: 46bd mov sp, r7 - 80346e8: bd80 pop {r7, pc} - 80346ea: bf00 nop - 80346ec: 08030a91 .word 0x08030a91 + 803464e: bf00 nop + 8034650: 3710 adds r7, #16 + 8034652: 46bd mov sp, r7 + 8034654: bd80 pop {r7, pc} + 8034656: bf00 nop + 8034658: 080309fd .word 0x080309fd -080346f0 : +0803465c : lv_style_value_t lv_style_prop_get_default(lv_style_prop_t prop) { - 80346f0: b580 push {r7, lr} - 80346f2: b084 sub sp, #16 - 80346f4: af00 add r7, sp, #0 - 80346f6: 4603 mov r3, r0 - 80346f8: 80fb strh r3, [r7, #6] + 803465c: b580 push {r7, lr} + 803465e: b084 sub sp, #16 + 8034660: af00 add r7, sp, #0 + 8034662: 4603 mov r3, r0 + 8034664: 80fb strh r3, [r7, #6] lv_style_value_t value; switch(prop) { - 80346fa: 88fb ldrh r3, [r7, #6] - 80346fc: f643 020e movw r2, #14350 ; 0x380e - 8034700: 4293 cmp r3, r2 - 8034702: f000 8098 beq.w 8034836 - 8034706: f643 020e movw r2, #14350 ; 0x380e - 803470a: 4293 cmp r3, r2 - 803470c: f300 80af bgt.w 803486e - 8034710: f241 4259 movw r2, #5209 ; 0x1459 - 8034714: 4293 cmp r3, r2 - 8034716: f000 80a3 beq.w 8034860 - 803471a: f241 4259 movw r2, #5209 ; 0x1459 - 803471e: 4293 cmp r3, r2 - 8034720: f300 80a5 bgt.w 803486e - 8034724: f241 0206 movw r2, #4102 ; 0x1006 - 8034728: 4293 cmp r3, r2 - 803472a: f000 809c beq.w 8034866 - 803472e: f241 0206 movw r2, #4102 ; 0x1006 - 8034732: 4293 cmp r3, r2 - 8034734: f300 809b bgt.w 803486e - 8034738: f241 0203 movw r2, #4099 ; 0x1003 - 803473c: 4293 cmp r3, r2 - 803473e: f000 8092 beq.w 8034866 - 8034742: f241 0203 movw r2, #4099 ; 0x1003 - 8034746: 4293 cmp r3, r2 - 8034748: f300 8091 bgt.w 803486e - 803474c: f640 0245 movw r2, #2117 ; 0x845 - 8034750: 4293 cmp r3, r2 - 8034752: d07c beq.n 803484e - 8034754: f640 0245 movw r2, #2117 ; 0x845 - 8034758: 4293 cmp r3, r2 - 803475a: f300 8088 bgt.w 803486e - 803475e: f640 023c movw r2, #2108 ; 0x83c - 8034762: 4293 cmp r3, r2 - 8034764: d073 beq.n 803484e - 8034766: f640 023c movw r2, #2108 ; 0x83c - 803476a: 4293 cmp r3, r2 - 803476c: dc7f bgt.n 803486e - 803476e: f240 4262 movw r2, #1122 ; 0x462 - 8034772: 4293 cmp r3, r2 - 8034774: d06b beq.n 803484e - 8034776: f240 4262 movw r2, #1122 ; 0x462 - 803477a: 4293 cmp r3, r2 - 803477c: dc77 bgt.n 803486e - 803477e: f5b3 6f8b cmp.w r3, #1112 ; 0x458 - 8034782: d064 beq.n 803484e - 8034784: f5b3 6f8b cmp.w r3, #1112 ; 0x458 - 8034788: dc71 bgt.n 803486e - 803478a: f240 4257 movw r2, #1111 ; 0x457 - 803478e: 4293 cmp r3, r2 - 8034790: d059 beq.n 8034846 - 8034792: f5b3 6f8b cmp.w r3, #1112 ; 0x458 - 8034796: da6a bge.n 803486e - 8034798: 2b33 cmp r3, #51 ; 0x33 - 803479a: dc47 bgt.n 803482c - 803479c: 2b20 cmp r3, #32 - 803479e: da16 bge.n 80347ce - 80347a0: e065 b.n 803486e - 80347a2: 3b3b subs r3, #59 ; 0x3b - 80347a4: 2201 movs r2, #1 - 80347a6: 409a lsls r2, r3 - 80347a8: 4b36 ldr r3, [pc, #216] ; (8034884 ) - 80347aa: 4013 ands r3, r2 - 80347ac: 2b00 cmp r3, #0 - 80347ae: bf14 ite ne - 80347b0: 2301 movne r3, #1 - 80347b2: 2300 moveq r3, #0 - 80347b4: b2db uxtb r3, r3 - 80347b6: 2b00 cmp r3, #0 - 80347b8: d145 bne.n 8034846 - 80347ba: 4b33 ldr r3, [pc, #204] ; (8034888 ) - 80347bc: 4013 ands r3, r2 - 80347be: 2b00 cmp r3, #0 - 80347c0: bf14 ite ne - 80347c2: 2301 movne r3, #1 - 80347c4: 2300 moveq r3, #0 - 80347c6: b2db uxtb r3, r3 - 80347c8: 2b00 cmp r3, #0 - 80347ca: d140 bne.n 803484e - 80347cc: e04f b.n 803486e - 80347ce: 3b20 subs r3, #32 - 80347d0: 2b13 cmp r3, #19 - 80347d2: d84c bhi.n 803486e - 80347d4: a201 add r2, pc, #4 ; (adr r2, 80347dc ) - 80347d6: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 80347da: bf00 nop - 80347dc: 0803483f .word 0x0803483f - 80347e0: 0803486f .word 0x0803486f - 80347e4: 08034847 .word 0x08034847 - 80347e8: 0803486f .word 0x0803486f - 80347ec: 0803486f .word 0x0803486f - 80347f0: 08034855 .word 0x08034855 - 80347f4: 0803486f .word 0x0803486f - 80347f8: 0803486f .word 0x0803486f - 80347fc: 0803486f .word 0x0803486f - 8034800: 0803484f .word 0x0803484f - 8034804: 0803486f .word 0x0803486f - 8034808: 0803486f .word 0x0803486f - 803480c: 0803486f .word 0x0803486f - 8034810: 0803486f .word 0x0803486f - 8034814: 0803486f .word 0x0803486f - 8034818: 0803486f .word 0x0803486f - 803481c: 08034847 .word 0x08034847 - 8034820: 0803484f .word 0x0803484f - 8034824: 0803486f .word 0x0803486f - 8034828: 0803485b .word 0x0803485b - 803482c: 2b53 cmp r3, #83 ; 0x53 - 803482e: dc1e bgt.n 803486e - 8034830: 2b3b cmp r3, #59 ; 0x3b - 8034832: dab6 bge.n 80347a2 - 8034834: e01b b.n 803486e + 8034666: 88fb ldrh r3, [r7, #6] + 8034668: f643 020e movw r2, #14350 ; 0x380e + 803466c: 4293 cmp r3, r2 + 803466e: f000 8098 beq.w 80347a2 + 8034672: f643 020e movw r2, #14350 ; 0x380e + 8034676: 4293 cmp r3, r2 + 8034678: f300 80af bgt.w 80347da + 803467c: f241 4259 movw r2, #5209 ; 0x1459 + 8034680: 4293 cmp r3, r2 + 8034682: f000 80a3 beq.w 80347cc + 8034686: f241 4259 movw r2, #5209 ; 0x1459 + 803468a: 4293 cmp r3, r2 + 803468c: f300 80a5 bgt.w 80347da + 8034690: f241 0206 movw r2, #4102 ; 0x1006 + 8034694: 4293 cmp r3, r2 + 8034696: f000 809c beq.w 80347d2 + 803469a: f241 0206 movw r2, #4102 ; 0x1006 + 803469e: 4293 cmp r3, r2 + 80346a0: f300 809b bgt.w 80347da + 80346a4: f241 0203 movw r2, #4099 ; 0x1003 + 80346a8: 4293 cmp r3, r2 + 80346aa: f000 8092 beq.w 80347d2 + 80346ae: f241 0203 movw r2, #4099 ; 0x1003 + 80346b2: 4293 cmp r3, r2 + 80346b4: f300 8091 bgt.w 80347da + 80346b8: f640 0245 movw r2, #2117 ; 0x845 + 80346bc: 4293 cmp r3, r2 + 80346be: d07c beq.n 80347ba + 80346c0: f640 0245 movw r2, #2117 ; 0x845 + 80346c4: 4293 cmp r3, r2 + 80346c6: f300 8088 bgt.w 80347da + 80346ca: f640 023c movw r2, #2108 ; 0x83c + 80346ce: 4293 cmp r3, r2 + 80346d0: d073 beq.n 80347ba + 80346d2: f640 023c movw r2, #2108 ; 0x83c + 80346d6: 4293 cmp r3, r2 + 80346d8: dc7f bgt.n 80347da + 80346da: f240 4262 movw r2, #1122 ; 0x462 + 80346de: 4293 cmp r3, r2 + 80346e0: d06b beq.n 80347ba + 80346e2: f240 4262 movw r2, #1122 ; 0x462 + 80346e6: 4293 cmp r3, r2 + 80346e8: dc77 bgt.n 80347da + 80346ea: f5b3 6f8b cmp.w r3, #1112 ; 0x458 + 80346ee: d064 beq.n 80347ba + 80346f0: f5b3 6f8b cmp.w r3, #1112 ; 0x458 + 80346f4: dc71 bgt.n 80347da + 80346f6: f240 4257 movw r2, #1111 ; 0x457 + 80346fa: 4293 cmp r3, r2 + 80346fc: d059 beq.n 80347b2 + 80346fe: f5b3 6f8b cmp.w r3, #1112 ; 0x458 + 8034702: da6a bge.n 80347da + 8034704: 2b33 cmp r3, #51 ; 0x33 + 8034706: dc47 bgt.n 8034798 + 8034708: 2b20 cmp r3, #32 + 803470a: da16 bge.n 803473a + 803470c: e065 b.n 80347da + 803470e: 3b3b subs r3, #59 ; 0x3b + 8034710: 2201 movs r2, #1 + 8034712: 409a lsls r2, r3 + 8034714: 4b36 ldr r3, [pc, #216] ; (80347f0 ) + 8034716: 4013 ands r3, r2 + 8034718: 2b00 cmp r3, #0 + 803471a: bf14 ite ne + 803471c: 2301 movne r3, #1 + 803471e: 2300 moveq r3, #0 + 8034720: b2db uxtb r3, r3 + 8034722: 2b00 cmp r3, #0 + 8034724: d145 bne.n 80347b2 + 8034726: 4b33 ldr r3, [pc, #204] ; (80347f4 ) + 8034728: 4013 ands r3, r2 + 803472a: 2b00 cmp r3, #0 + 803472c: bf14 ite ne + 803472e: 2301 movne r3, #1 + 8034730: 2300 moveq r3, #0 + 8034732: b2db uxtb r3, r3 + 8034734: 2b00 cmp r3, #0 + 8034736: d140 bne.n 80347ba + 8034738: e04f b.n 80347da + 803473a: 3b20 subs r3, #32 + 803473c: 2b13 cmp r3, #19 + 803473e: d84c bhi.n 80347da + 8034740: a201 add r2, pc, #4 ; (adr r2, 8034748 ) + 8034742: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8034746: bf00 nop + 8034748: 080347ab .word 0x080347ab + 803474c: 080347db .word 0x080347db + 8034750: 080347b3 .word 0x080347b3 + 8034754: 080347db .word 0x080347db + 8034758: 080347db .word 0x080347db + 803475c: 080347c1 .word 0x080347c1 + 8034760: 080347db .word 0x080347db + 8034764: 080347db .word 0x080347db + 8034768: 080347db .word 0x080347db + 803476c: 080347bb .word 0x080347bb + 8034770: 080347db .word 0x080347db + 8034774: 080347db .word 0x080347db + 8034778: 080347db .word 0x080347db + 803477c: 080347db .word 0x080347db + 8034780: 080347db .word 0x080347db + 8034784: 080347db .word 0x080347db + 8034788: 080347b3 .word 0x080347b3 + 803478c: 080347bb .word 0x080347bb + 8034790: 080347db .word 0x080347db + 8034794: 080347c7 .word 0x080347c7 + 8034798: 2b53 cmp r3, #83 ; 0x53 + 803479a: dc1e bgt.n 80347da + 803479c: 2b3b cmp r3, #59 ; 0x3b + 803479e: dab6 bge.n 803470e + 80347a0: e01b b.n 80347da case LV_STYLE_TRANSFORM_ZOOM: value.num = LV_IMG_ZOOM_NONE; - 8034836: f44f 7380 mov.w r3, #256 ; 0x100 - 803483a: 60fb str r3, [r7, #12] + 80347a2: f44f 7380 mov.w r3, #256 ; 0x100 + 80347a6: 60fb str r3, [r7, #12] break; - 803483c: e01c b.n 8034878 + 80347a8: e01c b.n 80347e4 case LV_STYLE_BG_COLOR: value.color = lv_color_white(); - 803483e: f7ff fc86 bl 803414e - 8034842: 81b8 strh r0, [r7, #12] + 80347aa: f7ff fc86 bl 80340ba + 80347ae: 81b8 strh r0, [r7, #12] break; - 8034844: e018 b.n 8034878 + 80347b0: e018 b.n 80347e4 case LV_STYLE_OUTLINE_COLOR: case LV_STYLE_ARC_COLOR: case LV_STYLE_LINE_COLOR: case LV_STYLE_TEXT_COLOR: case LV_STYLE_IMG_RECOLOR: value.color = lv_color_black(); - 8034846: f7ff fc8c bl 8034162 - 803484a: 81b8 strh r0, [r7, #12] + 80347b2: f7ff fc8c bl 80340ce + 80347b6: 81b8 strh r0, [r7, #12] break; - 803484c: e014 b.n 8034878 + 80347b8: e014 b.n 80347e4 case LV_STYLE_BG_IMG_OPA: case LV_STYLE_OUTLINE_OPA: case LV_STYLE_SHADOW_OPA: case LV_STYLE_LINE_OPA: case LV_STYLE_ARC_OPA: value.num = LV_OPA_COVER; - 803484e: 23ff movs r3, #255 ; 0xff - 8034850: 60fb str r3, [r7, #12] + 80347ba: 23ff movs r3, #255 ; 0xff + 80347bc: 60fb str r3, [r7, #12] break; - 8034852: e011 b.n 8034878 + 80347be: e011 b.n 80347e4 case LV_STYLE_BG_GRAD_STOP: value.num = 255; - 8034854: 23ff movs r3, #255 ; 0xff - 8034856: 60fb str r3, [r7, #12] + 80347c0: 23ff movs r3, #255 ; 0xff + 80347c2: 60fb str r3, [r7, #12] break; - 8034858: e00e b.n 8034878 + 80347c4: e00e b.n 80347e4 case LV_STYLE_BORDER_SIDE: value.num = LV_BORDER_SIDE_FULL; - 803485a: 230f movs r3, #15 - 803485c: 60fb str r3, [r7, #12] + 80347c6: 230f movs r3, #15 + 80347c8: 60fb str r3, [r7, #12] break; - 803485e: e00b b.n 8034878 + 80347ca: e00b b.n 80347e4 case LV_STYLE_TEXT_FONT: value.ptr = LV_FONT_DEFAULT; - 8034860: 4b0a ldr r3, [pc, #40] ; (803488c ) - 8034862: 60fb str r3, [r7, #12] + 80347cc: 4b0a ldr r3, [pc, #40] ; (80347f8 ) + 80347ce: 60fb str r3, [r7, #12] break; - 8034864: e008 b.n 8034878 + 80347d0: e008 b.n 80347e4 case LV_STYLE_MAX_WIDTH: case LV_STYLE_MAX_HEIGHT: value.num = LV_COORD_MAX; - 8034866: f641 73ff movw r3, #8191 ; 0x1fff - 803486a: 60fb str r3, [r7, #12] + 80347d2: f641 73ff movw r3, #8191 ; 0x1fff + 80347d6: 60fb str r3, [r7, #12] break; - 803486c: e004 b.n 8034878 + 80347d8: e004 b.n 80347e4 default: value.ptr = NULL; - 803486e: 2300 movs r3, #0 - 8034870: 60fb str r3, [r7, #12] + 80347da: 2300 movs r3, #0 + 80347dc: 60fb str r3, [r7, #12] value.num = 0; - 8034872: 2300 movs r3, #0 - 8034874: 60fb str r3, [r7, #12] + 80347de: 2300 movs r3, #0 + 80347e0: 60fb str r3, [r7, #12] break; - 8034876: bf00 nop + 80347e2: bf00 nop } return value; - 8034878: 68fb ldr r3, [r7, #12] + 80347e4: 68fb ldr r3, [r7, #12] } - 803487a: 4618 mov r0, r3 - 803487c: 3710 adds r7, #16 - 803487e: 46bd mov sp, r7 - 8034880: bd80 pop {r7, pc} - 8034882: bf00 nop - 8034884: 00841201 .word 0x00841201 - 8034888: 01080800 .word 0x01080800 - 803488c: 08070758 .word 0x08070758 + 80347e6: 4618 mov r0, r3 + 80347e8: 3710 adds r7, #16 + 80347ea: 46bd mov sp, r7 + 80347ec: bd80 pop {r7, pc} + 80347ee: bf00 nop + 80347f0: 00841201 .word 0x00841201 + 80347f4: 01080800 .word 0x01080800 + 80347f8: 080706b0 .word 0x080706b0 -08034890 : +080347fc : bool lv_style_is_empty(const lv_style_t * style) { - 8034890: b480 push {r7} - 8034892: b083 sub sp, #12 - 8034894: af00 add r7, sp, #0 - 8034896: 6078 str r0, [r7, #4] + 80347fc: b480 push {r7} + 80347fe: b083 sub sp, #12 + 8034800: af00 add r7, sp, #0 + 8034802: 6078 str r0, [r7, #4] LV_ASSERT_STYLE(style); return style->prop_cnt == 0 ? true : false; - 8034898: 687b ldr r3, [r7, #4] - 803489a: 79db ldrb r3, [r3, #7] - 803489c: 2b00 cmp r3, #0 - 803489e: bf0c ite eq - 80348a0: 2301 moveq r3, #1 - 80348a2: 2300 movne r3, #0 - 80348a4: b2db uxtb r3, r3 + 8034804: 687b ldr r3, [r7, #4] + 8034806: 79db ldrb r3, [r3, #7] + 8034808: 2b00 cmp r3, #0 + 803480a: bf0c ite eq + 803480c: 2301 moveq r3, #1 + 803480e: 2300 movne r3, #0 + 8034810: b2db uxtb r3, r3 } - 80348a6: 4618 mov r0, r3 - 80348a8: 370c adds r7, #12 - 80348aa: 46bd mov sp, r7 - 80348ac: bc80 pop {r7} - 80348ae: 4770 bx lr + 8034812: 4618 mov r0, r3 + 8034814: 370c adds r7, #12 + 8034816: 46bd mov sp, r7 + 8034818: bc80 pop {r7} + 803481a: 4770 bx lr -080348b0 <_lv_style_get_prop_group>: +0803481c <_lv_style_get_prop_group>: uint8_t _lv_style_get_prop_group(lv_style_prop_t prop) { - 80348b0: b480 push {r7} - 80348b2: b085 sub sp, #20 - 80348b4: af00 add r7, sp, #0 - 80348b6: 4603 mov r3, r0 - 80348b8: 80fb strh r3, [r7, #6] + 803481c: b480 push {r7} + 803481e: b085 sub sp, #20 + 8034820: af00 add r7, sp, #0 + 8034822: 4603 mov r3, r0 + 8034824: 80fb strh r3, [r7, #6] uint16_t group = (prop & 0x1FF) >> 4; - 80348ba: 88fb ldrh r3, [r7, #6] - 80348bc: 111b asrs r3, r3, #4 - 80348be: b29b uxth r3, r3 - 80348c0: f003 031f and.w r3, r3, #31 - 80348c4: 81fb strh r3, [r7, #14] + 8034826: 88fb ldrh r3, [r7, #6] + 8034828: 111b asrs r3, r3, #4 + 803482a: b29b uxth r3, r3 + 803482c: f003 031f and.w r3, r3, #31 + 8034830: 81fb strh r3, [r7, #14] if(group > 7) group = 7; /*The MSB marks all the custom properties*/ - 80348c6: 89fb ldrh r3, [r7, #14] - 80348c8: 2b07 cmp r3, #7 - 80348ca: d901 bls.n 80348d0 <_lv_style_get_prop_group+0x20> - 80348cc: 2307 movs r3, #7 - 80348ce: 81fb strh r3, [r7, #14] + 8034832: 89fb ldrh r3, [r7, #14] + 8034834: 2b07 cmp r3, #7 + 8034836: d901 bls.n 803483c <_lv_style_get_prop_group+0x20> + 8034838: 2307 movs r3, #7 + 803483a: 81fb strh r3, [r7, #14] return (uint8_t)group; - 80348d0: 89fb ldrh r3, [r7, #14] - 80348d2: b2db uxtb r3, r3 + 803483c: 89fb ldrh r3, [r7, #14] + 803483e: b2db uxtb r3, r3 } - 80348d4: 4618 mov r0, r3 - 80348d6: 3714 adds r7, #20 - 80348d8: 46bd mov sp, r7 - 80348da: bc80 pop {r7} - 80348dc: 4770 bx lr + 8034840: 4618 mov r0, r3 + 8034842: 3714 adds r7, #20 + 8034844: 46bd mov sp, r7 + 8034846: bc80 pop {r7} + 8034848: 4770 bx lr -080348de : +0803484a : #include "lv_style.h" void lv_style_set_width(lv_style_t * style, lv_coord_t value) { - 80348de: b580 push {r7, lr} - 80348e0: b084 sub sp, #16 - 80348e2: af00 add r7, sp, #0 - 80348e4: 6078 str r0, [r7, #4] - 80348e6: 460b mov r3, r1 - 80348e8: 807b strh r3, [r7, #2] + 803484a: b580 push {r7, lr} + 803484c: b084 sub sp, #16 + 803484e: af00 add r7, sp, #0 + 8034850: 6078 str r0, [r7, #4] + 8034852: 460b mov r3, r1 + 8034854: 807b strh r3, [r7, #2] lv_style_value_t v = { .num = (int32_t)value - 80348ea: f9b7 3002 ldrsh.w r3, [r7, #2] + 8034856: f9b7 3002 ldrsh.w r3, [r7, #2] lv_style_value_t v = { - 80348ee: 60fb str r3, [r7, #12] + 803485a: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_WIDTH, v); - 80348f0: 68fa ldr r2, [r7, #12] - 80348f2: f241 0101 movw r1, #4097 ; 0x1001 - 80348f6: 6878 ldr r0, [r7, #4] - 80348f8: f7ff fdb9 bl 803446e + 803485c: 68fa ldr r2, [r7, #12] + 803485e: f241 0101 movw r1, #4097 ; 0x1001 + 8034862: 6878 ldr r0, [r7, #4] + 8034864: f7ff fdb9 bl 80343da } - 80348fc: bf00 nop - 80348fe: 3710 adds r7, #16 - 8034900: 46bd mov sp, r7 - 8034902: bd80 pop {r7, pc} + 8034868: bf00 nop + 803486a: 3710 adds r7, #16 + 803486c: 46bd mov sp, r7 + 803486e: bd80 pop {r7, pc} -08034904 : +08034870 : }; lv_style_set_prop(style, LV_STYLE_MIN_WIDTH, v); } void lv_style_set_max_width(lv_style_t * style, lv_coord_t value) { - 8034904: b580 push {r7, lr} - 8034906: b084 sub sp, #16 - 8034908: af00 add r7, sp, #0 - 803490a: 6078 str r0, [r7, #4] - 803490c: 460b mov r3, r1 - 803490e: 807b strh r3, [r7, #2] + 8034870: b580 push {r7, lr} + 8034872: b084 sub sp, #16 + 8034874: af00 add r7, sp, #0 + 8034876: 6078 str r0, [r7, #4] + 8034878: 460b mov r3, r1 + 803487a: 807b strh r3, [r7, #2] lv_style_value_t v = { .num = (int32_t)value - 8034910: f9b7 3002 ldrsh.w r3, [r7, #2] + 803487c: f9b7 3002 ldrsh.w r3, [r7, #2] lv_style_value_t v = { - 8034914: 60fb str r3, [r7, #12] + 8034880: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_MAX_WIDTH, v); - 8034916: 68fa ldr r2, [r7, #12] - 8034918: f241 0103 movw r1, #4099 ; 0x1003 - 803491c: 6878 ldr r0, [r7, #4] - 803491e: f7ff fda6 bl 803446e + 8034882: 68fa ldr r2, [r7, #12] + 8034884: f241 0103 movw r1, #4099 ; 0x1003 + 8034888: 6878 ldr r0, [r7, #4] + 803488a: f7ff fda6 bl 80343da } - 8034922: bf00 nop - 8034924: 3710 adds r7, #16 - 8034926: 46bd mov sp, r7 - 8034928: bd80 pop {r7, pc} + 803488e: bf00 nop + 8034890: 3710 adds r7, #16 + 8034892: 46bd mov sp, r7 + 8034894: bd80 pop {r7, pc} -0803492a : +08034896 : void lv_style_set_height(lv_style_t * style, lv_coord_t value) { - 803492a: b580 push {r7, lr} - 803492c: b084 sub sp, #16 - 803492e: af00 add r7, sp, #0 - 8034930: 6078 str r0, [r7, #4] - 8034932: 460b mov r3, r1 - 8034934: 807b strh r3, [r7, #2] + 8034896: b580 push {r7, lr} + 8034898: b084 sub sp, #16 + 803489a: af00 add r7, sp, #0 + 803489c: 6078 str r0, [r7, #4] + 803489e: 460b mov r3, r1 + 80348a0: 807b strh r3, [r7, #2] lv_style_value_t v = { .num = (int32_t)value - 8034936: f9b7 3002 ldrsh.w r3, [r7, #2] + 80348a2: f9b7 3002 ldrsh.w r3, [r7, #2] lv_style_value_t v = { - 803493a: 60fb str r3, [r7, #12] + 80348a6: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_HEIGHT, v); - 803493c: 68fa ldr r2, [r7, #12] - 803493e: f241 0104 movw r1, #4100 ; 0x1004 - 8034942: 6878 ldr r0, [r7, #4] - 8034944: f7ff fd93 bl 803446e + 80348a8: 68fa ldr r2, [r7, #12] + 80348aa: f241 0104 movw r1, #4100 ; 0x1004 + 80348ae: 6878 ldr r0, [r7, #4] + 80348b0: f7ff fd93 bl 80343da } - 8034948: bf00 nop - 803494a: 3710 adds r7, #16 - 803494c: 46bd mov sp, r7 - 803494e: bd80 pop {r7, pc} + 80348b4: bf00 nop + 80348b6: 3710 adds r7, #16 + 80348b8: 46bd mov sp, r7 + 80348ba: bd80 pop {r7, pc} -08034950 : +080348bc : }; lv_style_set_prop(style, LV_STYLE_MIN_HEIGHT, v); } void lv_style_set_max_height(lv_style_t * style, lv_coord_t value) { - 8034950: b580 push {r7, lr} - 8034952: b084 sub sp, #16 - 8034954: af00 add r7, sp, #0 - 8034956: 6078 str r0, [r7, #4] - 8034958: 460b mov r3, r1 - 803495a: 807b strh r3, [r7, #2] + 80348bc: b580 push {r7, lr} + 80348be: b084 sub sp, #16 + 80348c0: af00 add r7, sp, #0 + 80348c2: 6078 str r0, [r7, #4] + 80348c4: 460b mov r3, r1 + 80348c6: 807b strh r3, [r7, #2] lv_style_value_t v = { .num = (int32_t)value - 803495c: f9b7 3002 ldrsh.w r3, [r7, #2] + 80348c8: f9b7 3002 ldrsh.w r3, [r7, #2] lv_style_value_t v = { - 8034960: 60fb str r3, [r7, #12] + 80348cc: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_MAX_HEIGHT, v); - 8034962: 68fa ldr r2, [r7, #12] - 8034964: f241 0106 movw r1, #4102 ; 0x1006 - 8034968: 6878 ldr r0, [r7, #4] - 803496a: f7ff fd80 bl 803446e + 80348ce: 68fa ldr r2, [r7, #12] + 80348d0: f241 0106 movw r1, #4102 ; 0x1006 + 80348d4: 6878 ldr r0, [r7, #4] + 80348d6: f7ff fd80 bl 80343da } - 803496e: bf00 nop - 8034970: 3710 adds r7, #16 - 8034972: 46bd mov sp, r7 - 8034974: bd80 pop {r7, pc} + 80348da: bf00 nop + 80348dc: 3710 adds r7, #16 + 80348de: 46bd mov sp, r7 + 80348e0: bd80 pop {r7, pc} -08034976 : +080348e2 : }; lv_style_set_prop(style, LV_STYLE_ALIGN, v); } void lv_style_set_transform_width(lv_style_t * style, lv_coord_t value) { - 8034976: b580 push {r7, lr} - 8034978: b084 sub sp, #16 - 803497a: af00 add r7, sp, #0 - 803497c: 6078 str r0, [r7, #4] - 803497e: 460b mov r3, r1 - 8034980: 807b strh r3, [r7, #2] + 80348e2: b580 push {r7, lr} + 80348e4: b084 sub sp, #16 + 80348e6: af00 add r7, sp, #0 + 80348e8: 6078 str r0, [r7, #4] + 80348ea: 460b mov r3, r1 + 80348ec: 807b strh r3, [r7, #2] lv_style_value_t v = { .num = (int32_t)value - 8034982: f9b7 3002 ldrsh.w r3, [r7, #2] + 80348ee: f9b7 3002 ldrsh.w r3, [r7, #2] lv_style_value_t v = { - 8034986: 60fb str r3, [r7, #12] + 80348f2: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_TRANSFORM_WIDTH, v); - 8034988: 68fa ldr r2, [r7, #12] - 803498a: f640 010a movw r1, #2058 ; 0x80a - 803498e: 6878 ldr r0, [r7, #4] - 8034990: f7ff fd6d bl 803446e + 80348f4: 68fa ldr r2, [r7, #12] + 80348f6: f640 010a movw r1, #2058 ; 0x80a + 80348fa: 6878 ldr r0, [r7, #4] + 80348fc: f7ff fd6d bl 80343da } - 8034994: bf00 nop - 8034996: 3710 adds r7, #16 - 8034998: 46bd mov sp, r7 - 803499a: bd80 pop {r7, pc} + 8034900: bf00 nop + 8034902: 3710 adds r7, #16 + 8034904: 46bd mov sp, r7 + 8034906: bd80 pop {r7, pc} -0803499c : +08034908 : void lv_style_set_transform_height(lv_style_t * style, lv_coord_t value) { - 803499c: b580 push {r7, lr} - 803499e: b084 sub sp, #16 - 80349a0: af00 add r7, sp, #0 - 80349a2: 6078 str r0, [r7, #4] - 80349a4: 460b mov r3, r1 - 80349a6: 807b strh r3, [r7, #2] + 8034908: b580 push {r7, lr} + 803490a: b084 sub sp, #16 + 803490c: af00 add r7, sp, #0 + 803490e: 6078 str r0, [r7, #4] + 8034910: 460b mov r3, r1 + 8034912: 807b strh r3, [r7, #2] lv_style_value_t v = { .num = (int32_t)value - 80349a8: f9b7 3002 ldrsh.w r3, [r7, #2] + 8034914: f9b7 3002 ldrsh.w r3, [r7, #2] lv_style_value_t v = { - 80349ac: 60fb str r3, [r7, #12] + 8034918: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_TRANSFORM_HEIGHT, v); - 80349ae: 68fa ldr r2, [r7, #12] - 80349b0: f640 010b movw r1, #2059 ; 0x80b - 80349b4: 6878 ldr r0, [r7, #4] - 80349b6: f7ff fd5a bl 803446e + 803491a: 68fa ldr r2, [r7, #12] + 803491c: f640 010b movw r1, #2059 ; 0x80b + 8034920: 6878 ldr r0, [r7, #4] + 8034922: f7ff fd5a bl 80343da } - 80349ba: bf00 nop - 80349bc: 3710 adds r7, #16 - 80349be: 46bd mov sp, r7 - 80349c0: bd80 pop {r7, pc} + 8034926: bf00 nop + 8034928: 3710 adds r7, #16 + 803492a: 46bd mov sp, r7 + 803492c: bd80 pop {r7, pc} -080349c2 : +0803492e : }; lv_style_set_prop(style, LV_STYLE_TRANSFORM_ANGLE, v); } void lv_style_set_pad_top(lv_style_t * style, lv_coord_t value) { - 80349c2: b580 push {r7, lr} - 80349c4: b084 sub sp, #16 - 80349c6: af00 add r7, sp, #0 - 80349c8: 6078 str r0, [r7, #4] - 80349ca: 460b mov r3, r1 - 80349cc: 807b strh r3, [r7, #2] + 803492e: b580 push {r7, lr} + 8034930: b084 sub sp, #16 + 8034932: af00 add r7, sp, #0 + 8034934: 6078 str r0, [r7, #4] + 8034936: 460b mov r3, r1 + 8034938: 807b strh r3, [r7, #2] lv_style_value_t v = { .num = (int32_t)value - 80349ce: f9b7 3002 ldrsh.w r3, [r7, #2] + 803493a: f9b7 3002 ldrsh.w r3, [r7, #2] lv_style_value_t v = { - 80349d2: 60fb str r3, [r7, #12] + 803493e: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_PAD_TOP, v); - 80349d4: 68fa ldr r2, [r7, #12] - 80349d6: f641 0110 movw r1, #6160 ; 0x1810 - 80349da: 6878 ldr r0, [r7, #4] - 80349dc: f7ff fd47 bl 803446e + 8034940: 68fa ldr r2, [r7, #12] + 8034942: f641 0110 movw r1, #6160 ; 0x1810 + 8034946: 6878 ldr r0, [r7, #4] + 8034948: f7ff fd47 bl 80343da } - 80349e0: bf00 nop - 80349e2: 3710 adds r7, #16 - 80349e4: 46bd mov sp, r7 - 80349e6: bd80 pop {r7, pc} + 803494c: bf00 nop + 803494e: 3710 adds r7, #16 + 8034950: 46bd mov sp, r7 + 8034952: bd80 pop {r7, pc} -080349e8 : +08034954 : void lv_style_set_pad_bottom(lv_style_t * style, lv_coord_t value) { - 80349e8: b580 push {r7, lr} - 80349ea: b084 sub sp, #16 - 80349ec: af00 add r7, sp, #0 - 80349ee: 6078 str r0, [r7, #4] - 80349f0: 460b mov r3, r1 - 80349f2: 807b strh r3, [r7, #2] + 8034954: b580 push {r7, lr} + 8034956: b084 sub sp, #16 + 8034958: af00 add r7, sp, #0 + 803495a: 6078 str r0, [r7, #4] + 803495c: 460b mov r3, r1 + 803495e: 807b strh r3, [r7, #2] lv_style_value_t v = { .num = (int32_t)value - 80349f4: f9b7 3002 ldrsh.w r3, [r7, #2] + 8034960: f9b7 3002 ldrsh.w r3, [r7, #2] lv_style_value_t v = { - 80349f8: 60fb str r3, [r7, #12] + 8034964: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_PAD_BOTTOM, v); - 80349fa: 68fa ldr r2, [r7, #12] - 80349fc: f641 0111 movw r1, #6161 ; 0x1811 - 8034a00: 6878 ldr r0, [r7, #4] - 8034a02: f7ff fd34 bl 803446e + 8034966: 68fa ldr r2, [r7, #12] + 8034968: f641 0111 movw r1, #6161 ; 0x1811 + 803496c: 6878 ldr r0, [r7, #4] + 803496e: f7ff fd34 bl 80343da } - 8034a06: bf00 nop - 8034a08: 3710 adds r7, #16 - 8034a0a: 46bd mov sp, r7 - 8034a0c: bd80 pop {r7, pc} + 8034972: bf00 nop + 8034974: 3710 adds r7, #16 + 8034976: 46bd mov sp, r7 + 8034978: bd80 pop {r7, pc} -08034a0e : +0803497a : void lv_style_set_pad_left(lv_style_t * style, lv_coord_t value) { - 8034a0e: b580 push {r7, lr} - 8034a10: b084 sub sp, #16 - 8034a12: af00 add r7, sp, #0 - 8034a14: 6078 str r0, [r7, #4] - 8034a16: 460b mov r3, r1 - 8034a18: 807b strh r3, [r7, #2] + 803497a: b580 push {r7, lr} + 803497c: b084 sub sp, #16 + 803497e: af00 add r7, sp, #0 + 8034980: 6078 str r0, [r7, #4] + 8034982: 460b mov r3, r1 + 8034984: 807b strh r3, [r7, #2] lv_style_value_t v = { .num = (int32_t)value - 8034a1a: f9b7 3002 ldrsh.w r3, [r7, #2] + 8034986: f9b7 3002 ldrsh.w r3, [r7, #2] lv_style_value_t v = { - 8034a1e: 60fb str r3, [r7, #12] + 803498a: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_PAD_LEFT, v); - 8034a20: 68fa ldr r2, [r7, #12] - 8034a22: f641 0112 movw r1, #6162 ; 0x1812 - 8034a26: 6878 ldr r0, [r7, #4] - 8034a28: f7ff fd21 bl 803446e + 803498c: 68fa ldr r2, [r7, #12] + 803498e: f641 0112 movw r1, #6162 ; 0x1812 + 8034992: 6878 ldr r0, [r7, #4] + 8034994: f7ff fd21 bl 80343da } - 8034a2c: bf00 nop - 8034a2e: 3710 adds r7, #16 - 8034a30: 46bd mov sp, r7 - 8034a32: bd80 pop {r7, pc} + 8034998: bf00 nop + 803499a: 3710 adds r7, #16 + 803499c: 46bd mov sp, r7 + 803499e: bd80 pop {r7, pc} -08034a34 : +080349a0 : void lv_style_set_pad_right(lv_style_t * style, lv_coord_t value) { - 8034a34: b580 push {r7, lr} - 8034a36: b084 sub sp, #16 - 8034a38: af00 add r7, sp, #0 - 8034a3a: 6078 str r0, [r7, #4] - 8034a3c: 460b mov r3, r1 - 8034a3e: 807b strh r3, [r7, #2] + 80349a0: b580 push {r7, lr} + 80349a2: b084 sub sp, #16 + 80349a4: af00 add r7, sp, #0 + 80349a6: 6078 str r0, [r7, #4] + 80349a8: 460b mov r3, r1 + 80349aa: 807b strh r3, [r7, #2] lv_style_value_t v = { .num = (int32_t)value - 8034a40: f9b7 3002 ldrsh.w r3, [r7, #2] + 80349ac: f9b7 3002 ldrsh.w r3, [r7, #2] lv_style_value_t v = { - 8034a44: 60fb str r3, [r7, #12] + 80349b0: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_PAD_RIGHT, v); - 8034a46: 68fa ldr r2, [r7, #12] - 8034a48: f641 0113 movw r1, #6163 ; 0x1813 - 8034a4c: 6878 ldr r0, [r7, #4] - 8034a4e: f7ff fd0e bl 803446e + 80349b2: 68fa ldr r2, [r7, #12] + 80349b4: f641 0113 movw r1, #6163 ; 0x1813 + 80349b8: 6878 ldr r0, [r7, #4] + 80349ba: f7ff fd0e bl 80343da } - 8034a52: bf00 nop - 8034a54: 3710 adds r7, #16 - 8034a56: 46bd mov sp, r7 - 8034a58: bd80 pop {r7, pc} + 80349be: bf00 nop + 80349c0: 3710 adds r7, #16 + 80349c2: 46bd mov sp, r7 + 80349c4: bd80 pop {r7, pc} -08034a5a : +080349c6 : void lv_style_set_pad_row(lv_style_t * style, lv_coord_t value) { - 8034a5a: b580 push {r7, lr} - 8034a5c: b084 sub sp, #16 - 8034a5e: af00 add r7, sp, #0 - 8034a60: 6078 str r0, [r7, #4] - 8034a62: 460b mov r3, r1 - 8034a64: 807b strh r3, [r7, #2] + 80349c6: b580 push {r7, lr} + 80349c8: b084 sub sp, #16 + 80349ca: af00 add r7, sp, #0 + 80349cc: 6078 str r0, [r7, #4] + 80349ce: 460b mov r3, r1 + 80349d0: 807b strh r3, [r7, #2] lv_style_value_t v = { .num = (int32_t)value - 8034a66: f9b7 3002 ldrsh.w r3, [r7, #2] + 80349d2: f9b7 3002 ldrsh.w r3, [r7, #2] lv_style_value_t v = { - 8034a6a: 60fb str r3, [r7, #12] + 80349d6: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_PAD_ROW, v); - 8034a6c: 68fa ldr r2, [r7, #12] - 8034a6e: f641 0114 movw r1, #6164 ; 0x1814 - 8034a72: 6878 ldr r0, [r7, #4] - 8034a74: f7ff fcfb bl 803446e + 80349d8: 68fa ldr r2, [r7, #12] + 80349da: f641 0114 movw r1, #6164 ; 0x1814 + 80349de: 6878 ldr r0, [r7, #4] + 80349e0: f7ff fcfb bl 80343da } - 8034a78: bf00 nop - 8034a7a: 3710 adds r7, #16 - 8034a7c: 46bd mov sp, r7 - 8034a7e: bd80 pop {r7, pc} + 80349e4: bf00 nop + 80349e6: 3710 adds r7, #16 + 80349e8: 46bd mov sp, r7 + 80349ea: bd80 pop {r7, pc} -08034a80 : +080349ec : void lv_style_set_pad_column(lv_style_t * style, lv_coord_t value) { - 8034a80: b580 push {r7, lr} - 8034a82: b084 sub sp, #16 - 8034a84: af00 add r7, sp, #0 - 8034a86: 6078 str r0, [r7, #4] - 8034a88: 460b mov r3, r1 - 8034a8a: 807b strh r3, [r7, #2] + 80349ec: b580 push {r7, lr} + 80349ee: b084 sub sp, #16 + 80349f0: af00 add r7, sp, #0 + 80349f2: 6078 str r0, [r7, #4] + 80349f4: 460b mov r3, r1 + 80349f6: 807b strh r3, [r7, #2] lv_style_value_t v = { .num = (int32_t)value - 8034a8c: f9b7 3002 ldrsh.w r3, [r7, #2] + 80349f8: f9b7 3002 ldrsh.w r3, [r7, #2] lv_style_value_t v = { - 8034a90: 60fb str r3, [r7, #12] + 80349fc: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_PAD_COLUMN, v); - 8034a92: 68fa ldr r2, [r7, #12] - 8034a94: f641 0115 movw r1, #6165 ; 0x1815 - 8034a98: 6878 ldr r0, [r7, #4] - 8034a9a: f7ff fce8 bl 803446e + 80349fe: 68fa ldr r2, [r7, #12] + 8034a00: f641 0115 movw r1, #6165 ; 0x1815 + 8034a04: 6878 ldr r0, [r7, #4] + 8034a06: f7ff fce8 bl 80343da } - 8034a9e: bf00 nop - 8034aa0: 3710 adds r7, #16 - 8034aa2: 46bd mov sp, r7 - 8034aa4: bd80 pop {r7, pc} + 8034a0a: bf00 nop + 8034a0c: 3710 adds r7, #16 + 8034a0e: 46bd mov sp, r7 + 8034a10: bd80 pop {r7, pc} -08034aa6 : +08034a12 : void lv_style_set_bg_color(lv_style_t * style, lv_color_t value) { - 8034aa6: b580 push {r7, lr} - 8034aa8: b084 sub sp, #16 - 8034aaa: af00 add r7, sp, #0 - 8034aac: 6078 str r0, [r7, #4] - 8034aae: 8039 strh r1, [r7, #0] + 8034a12: b580 push {r7, lr} + 8034a14: b084 sub sp, #16 + 8034a16: af00 add r7, sp, #0 + 8034a18: 6078 str r0, [r7, #4] + 8034a1a: 8039 strh r1, [r7, #0] lv_style_value_t v = { - 8034ab0: 2300 movs r3, #0 - 8034ab2: 60fb str r3, [r7, #12] - 8034ab4: 883b ldrh r3, [r7, #0] - 8034ab6: 81bb strh r3, [r7, #12] + 8034a1c: 2300 movs r3, #0 + 8034a1e: 60fb str r3, [r7, #12] + 8034a20: 883b ldrh r3, [r7, #0] + 8034a22: 81bb strh r3, [r7, #12] .color = value }; lv_style_set_prop(style, LV_STYLE_BG_COLOR, v); - 8034ab8: 68fa ldr r2, [r7, #12] - 8034aba: 2120 movs r1, #32 - 8034abc: 6878 ldr r0, [r7, #4] - 8034abe: f7ff fcd6 bl 803446e + 8034a24: 68fa ldr r2, [r7, #12] + 8034a26: 2120 movs r1, #32 + 8034a28: 6878 ldr r0, [r7, #4] + 8034a2a: f7ff fcd6 bl 80343da } - 8034ac2: bf00 nop - 8034ac4: 3710 adds r7, #16 - 8034ac6: 46bd mov sp, r7 - 8034ac8: bd80 pop {r7, pc} + 8034a2e: bf00 nop + 8034a30: 3710 adds r7, #16 + 8034a32: 46bd mov sp, r7 + 8034a34: bd80 pop {r7, pc} -08034aca : +08034a36 : }; lv_style_set_prop(style, LV_STYLE_BG_COLOR_FILTERED, v); } void lv_style_set_bg_opa(lv_style_t * style, lv_opa_t value) { - 8034aca: b580 push {r7, lr} - 8034acc: b084 sub sp, #16 - 8034ace: af00 add r7, sp, #0 - 8034ad0: 6078 str r0, [r7, #4] - 8034ad2: 460b mov r3, r1 - 8034ad4: 70fb strb r3, [r7, #3] + 8034a36: b580 push {r7, lr} + 8034a38: b084 sub sp, #16 + 8034a3a: af00 add r7, sp, #0 + 8034a3c: 6078 str r0, [r7, #4] + 8034a3e: 460b mov r3, r1 + 8034a40: 70fb strb r3, [r7, #3] lv_style_value_t v = { .num = (int32_t)value - 8034ad6: 78fb ldrb r3, [r7, #3] + 8034a42: 78fb ldrb r3, [r7, #3] lv_style_value_t v = { - 8034ad8: 60fb str r3, [r7, #12] + 8034a44: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_BG_OPA, v); - 8034ada: 68fa ldr r2, [r7, #12] - 8034adc: 2121 movs r1, #33 ; 0x21 - 8034ade: 6878 ldr r0, [r7, #4] - 8034ae0: f7ff fcc5 bl 803446e + 8034a46: 68fa ldr r2, [r7, #12] + 8034a48: 2121 movs r1, #33 ; 0x21 + 8034a4a: 6878 ldr r0, [r7, #4] + 8034a4c: f7ff fcc5 bl 80343da } - 8034ae4: bf00 nop - 8034ae6: 3710 adds r7, #16 - 8034ae8: 46bd mov sp, r7 - 8034aea: bd80 pop {r7, pc} + 8034a50: bf00 nop + 8034a52: 3710 adds r7, #16 + 8034a54: 46bd mov sp, r7 + 8034a56: bd80 pop {r7, pc} -08034aec : +08034a58 : void lv_style_set_bg_grad_color(lv_style_t * style, lv_color_t value) { - 8034aec: b580 push {r7, lr} - 8034aee: b084 sub sp, #16 - 8034af0: af00 add r7, sp, #0 - 8034af2: 6078 str r0, [r7, #4] - 8034af4: 8039 strh r1, [r7, #0] + 8034a58: b580 push {r7, lr} + 8034a5a: b084 sub sp, #16 + 8034a5c: af00 add r7, sp, #0 + 8034a5e: 6078 str r0, [r7, #4] + 8034a60: 8039 strh r1, [r7, #0] lv_style_value_t v = { - 8034af6: 2300 movs r3, #0 - 8034af8: 60fb str r3, [r7, #12] - 8034afa: 883b ldrh r3, [r7, #0] - 8034afc: 81bb strh r3, [r7, #12] + 8034a62: 2300 movs r3, #0 + 8034a64: 60fb str r3, [r7, #12] + 8034a66: 883b ldrh r3, [r7, #0] + 8034a68: 81bb strh r3, [r7, #12] .color = value }; lv_style_set_prop(style, LV_STYLE_BG_GRAD_COLOR, v); - 8034afe: 68fa ldr r2, [r7, #12] - 8034b00: 2122 movs r1, #34 ; 0x22 - 8034b02: 6878 ldr r0, [r7, #4] - 8034b04: f7ff fcb3 bl 803446e + 8034a6a: 68fa ldr r2, [r7, #12] + 8034a6c: 2122 movs r1, #34 ; 0x22 + 8034a6e: 6878 ldr r0, [r7, #4] + 8034a70: f7ff fcb3 bl 80343da } - 8034b08: bf00 nop - 8034b0a: 3710 adds r7, #16 - 8034b0c: 46bd mov sp, r7 - 8034b0e: bd80 pop {r7, pc} + 8034a74: bf00 nop + 8034a76: 3710 adds r7, #16 + 8034a78: 46bd mov sp, r7 + 8034a7a: bd80 pop {r7, pc} -08034b10 : +08034a7c : }; lv_style_set_prop(style, LV_STYLE_BG_DITHER_MODE, v); } void lv_style_set_bg_img_src(lv_style_t * style, const void * value) { - 8034b10: b580 push {r7, lr} - 8034b12: b084 sub sp, #16 - 8034b14: af00 add r7, sp, #0 - 8034b16: 6078 str r0, [r7, #4] - 8034b18: 6039 str r1, [r7, #0] + 8034a7c: b580 push {r7, lr} + 8034a7e: b084 sub sp, #16 + 8034a80: af00 add r7, sp, #0 + 8034a82: 6078 str r0, [r7, #4] + 8034a84: 6039 str r1, [r7, #0] lv_style_value_t v = { - 8034b1a: 683b ldr r3, [r7, #0] - 8034b1c: 60fb str r3, [r7, #12] + 8034a86: 683b ldr r3, [r7, #0] + 8034a88: 60fb str r3, [r7, #12] .ptr = value }; lv_style_set_prop(style, LV_STYLE_BG_IMG_SRC, v); - 8034b1e: 68fa ldr r2, [r7, #12] - 8034b20: f640 0128 movw r1, #2088 ; 0x828 - 8034b24: 6878 ldr r0, [r7, #4] - 8034b26: f7ff fca2 bl 803446e + 8034a8a: 68fa ldr r2, [r7, #12] + 8034a8c: f640 0128 movw r1, #2088 ; 0x828 + 8034a90: 6878 ldr r0, [r7, #4] + 8034a92: f7ff fca2 bl 80343da } - 8034b2a: bf00 nop - 8034b2c: 3710 adds r7, #16 - 8034b2e: 46bd mov sp, r7 - 8034b30: bd80 pop {r7, pc} + 8034a96: bf00 nop + 8034a98: 3710 adds r7, #16 + 8034a9a: 46bd mov sp, r7 + 8034a9c: bd80 pop {r7, pc} -08034b32 : +08034a9e : }; lv_style_set_prop(style, LV_STYLE_BG_IMG_TILED, v); } void lv_style_set_border_color(lv_style_t * style, lv_color_t value) { - 8034b32: b580 push {r7, lr} - 8034b34: b084 sub sp, #16 - 8034b36: af00 add r7, sp, #0 - 8034b38: 6078 str r0, [r7, #4] - 8034b3a: 8039 strh r1, [r7, #0] + 8034a9e: b580 push {r7, lr} + 8034aa0: b084 sub sp, #16 + 8034aa2: af00 add r7, sp, #0 + 8034aa4: 6078 str r0, [r7, #4] + 8034aa6: 8039 strh r1, [r7, #0] lv_style_value_t v = { - 8034b3c: 2300 movs r3, #0 - 8034b3e: 60fb str r3, [r7, #12] - 8034b40: 883b ldrh r3, [r7, #0] - 8034b42: 81bb strh r3, [r7, #12] + 8034aa8: 2300 movs r3, #0 + 8034aaa: 60fb str r3, [r7, #12] + 8034aac: 883b ldrh r3, [r7, #0] + 8034aae: 81bb strh r3, [r7, #12] .color = value }; lv_style_set_prop(style, LV_STYLE_BORDER_COLOR, v); - 8034b44: 68fa ldr r2, [r7, #12] - 8034b46: 2130 movs r1, #48 ; 0x30 - 8034b48: 6878 ldr r0, [r7, #4] - 8034b4a: f7ff fc90 bl 803446e + 8034ab0: 68fa ldr r2, [r7, #12] + 8034ab2: 2130 movs r1, #48 ; 0x30 + 8034ab4: 6878 ldr r0, [r7, #4] + 8034ab6: f7ff fc90 bl 80343da } - 8034b4e: bf00 nop - 8034b50: 3710 adds r7, #16 - 8034b52: 46bd mov sp, r7 - 8034b54: bd80 pop {r7, pc} + 8034aba: bf00 nop + 8034abc: 3710 adds r7, #16 + 8034abe: 46bd mov sp, r7 + 8034ac0: bd80 pop {r7, pc} -08034b56 : +08034ac2 : }; lv_style_set_prop(style, LV_STYLE_BORDER_COLOR_FILTERED, v); } void lv_style_set_border_opa(lv_style_t * style, lv_opa_t value) { - 8034b56: b580 push {r7, lr} - 8034b58: b084 sub sp, #16 - 8034b5a: af00 add r7, sp, #0 - 8034b5c: 6078 str r0, [r7, #4] - 8034b5e: 460b mov r3, r1 - 8034b60: 70fb strb r3, [r7, #3] + 8034ac2: b580 push {r7, lr} + 8034ac4: b084 sub sp, #16 + 8034ac6: af00 add r7, sp, #0 + 8034ac8: 6078 str r0, [r7, #4] + 8034aca: 460b mov r3, r1 + 8034acc: 70fb strb r3, [r7, #3] lv_style_value_t v = { .num = (int32_t)value - 8034b62: 78fb ldrb r3, [r7, #3] + 8034ace: 78fb ldrb r3, [r7, #3] lv_style_value_t v = { - 8034b64: 60fb str r3, [r7, #12] + 8034ad0: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_BORDER_OPA, v); - 8034b66: 68fa ldr r2, [r7, #12] - 8034b68: 2131 movs r1, #49 ; 0x31 - 8034b6a: 6878 ldr r0, [r7, #4] - 8034b6c: f7ff fc7f bl 803446e + 8034ad2: 68fa ldr r2, [r7, #12] + 8034ad4: 2131 movs r1, #49 ; 0x31 + 8034ad6: 6878 ldr r0, [r7, #4] + 8034ad8: f7ff fc7f bl 80343da } - 8034b70: bf00 nop - 8034b72: 3710 adds r7, #16 - 8034b74: 46bd mov sp, r7 - 8034b76: bd80 pop {r7, pc} + 8034adc: bf00 nop + 8034ade: 3710 adds r7, #16 + 8034ae0: 46bd mov sp, r7 + 8034ae2: bd80 pop {r7, pc} -08034b78 : +08034ae4 : void lv_style_set_border_width(lv_style_t * style, lv_coord_t value) { - 8034b78: b580 push {r7, lr} - 8034b7a: b084 sub sp, #16 - 8034b7c: af00 add r7, sp, #0 - 8034b7e: 6078 str r0, [r7, #4] - 8034b80: 460b mov r3, r1 - 8034b82: 807b strh r3, [r7, #2] + 8034ae4: b580 push {r7, lr} + 8034ae6: b084 sub sp, #16 + 8034ae8: af00 add r7, sp, #0 + 8034aea: 6078 str r0, [r7, #4] + 8034aec: 460b mov r3, r1 + 8034aee: 807b strh r3, [r7, #2] lv_style_value_t v = { .num = (int32_t)value - 8034b84: f9b7 3002 ldrsh.w r3, [r7, #2] + 8034af0: f9b7 3002 ldrsh.w r3, [r7, #2] lv_style_value_t v = { - 8034b88: 60fb str r3, [r7, #12] + 8034af4: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_BORDER_WIDTH, v); - 8034b8a: 68fa ldr r2, [r7, #12] - 8034b8c: f241 0132 movw r1, #4146 ; 0x1032 - 8034b90: 6878 ldr r0, [r7, #4] - 8034b92: f7ff fc6c bl 803446e + 8034af6: 68fa ldr r2, [r7, #12] + 8034af8: f241 0132 movw r1, #4146 ; 0x1032 + 8034afc: 6878 ldr r0, [r7, #4] + 8034afe: f7ff fc6c bl 80343da } - 8034b96: bf00 nop - 8034b98: 3710 adds r7, #16 - 8034b9a: 46bd mov sp, r7 - 8034b9c: bd80 pop {r7, pc} + 8034b02: bf00 nop + 8034b04: 3710 adds r7, #16 + 8034b06: 46bd mov sp, r7 + 8034b08: bd80 pop {r7, pc} -08034b9e : +08034b0a : void lv_style_set_border_side(lv_style_t * style, lv_border_side_t value) { - 8034b9e: b580 push {r7, lr} - 8034ba0: b084 sub sp, #16 - 8034ba2: af00 add r7, sp, #0 - 8034ba4: 6078 str r0, [r7, #4] - 8034ba6: 460b mov r3, r1 - 8034ba8: 70fb strb r3, [r7, #3] + 8034b0a: b580 push {r7, lr} + 8034b0c: b084 sub sp, #16 + 8034b0e: af00 add r7, sp, #0 + 8034b10: 6078 str r0, [r7, #4] + 8034b12: 460b mov r3, r1 + 8034b14: 70fb strb r3, [r7, #3] lv_style_value_t v = { .num = (int32_t)value - 8034baa: 78fb ldrb r3, [r7, #3] + 8034b16: 78fb ldrb r3, [r7, #3] lv_style_value_t v = { - 8034bac: 60fb str r3, [r7, #12] + 8034b18: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_BORDER_SIDE, v); - 8034bae: 68fa ldr r2, [r7, #12] - 8034bb0: 2133 movs r1, #51 ; 0x33 - 8034bb2: 6878 ldr r0, [r7, #4] - 8034bb4: f7ff fc5b bl 803446e + 8034b1a: 68fa ldr r2, [r7, #12] + 8034b1c: 2133 movs r1, #51 ; 0x33 + 8034b1e: 6878 ldr r0, [r7, #4] + 8034b20: f7ff fc5b bl 80343da } - 8034bb8: bf00 nop - 8034bba: 3710 adds r7, #16 - 8034bbc: 46bd mov sp, r7 - 8034bbe: bd80 pop {r7, pc} + 8034b24: bf00 nop + 8034b26: 3710 adds r7, #16 + 8034b28: 46bd mov sp, r7 + 8034b2a: bd80 pop {r7, pc} -08034bc0 : +08034b2c : void lv_style_set_border_post(lv_style_t * style, bool value) { - 8034bc0: b580 push {r7, lr} - 8034bc2: b084 sub sp, #16 - 8034bc4: af00 add r7, sp, #0 - 8034bc6: 6078 str r0, [r7, #4] - 8034bc8: 460b mov r3, r1 - 8034bca: 70fb strb r3, [r7, #3] + 8034b2c: b580 push {r7, lr} + 8034b2e: b084 sub sp, #16 + 8034b30: af00 add r7, sp, #0 + 8034b32: 6078 str r0, [r7, #4] + 8034b34: 460b mov r3, r1 + 8034b36: 70fb strb r3, [r7, #3] lv_style_value_t v = { .num = (int32_t)value - 8034bcc: 78fb ldrb r3, [r7, #3] + 8034b38: 78fb ldrb r3, [r7, #3] lv_style_value_t v = { - 8034bce: 60fb str r3, [r7, #12] + 8034b3a: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_BORDER_POST, v); - 8034bd0: 68fa ldr r2, [r7, #12] - 8034bd2: 2134 movs r1, #52 ; 0x34 + 8034b3c: 68fa ldr r2, [r7, #12] + 8034b3e: 2134 movs r1, #52 ; 0x34 + 8034b40: 6878 ldr r0, [r7, #4] + 8034b42: f7ff fc4a bl 80343da +} + 8034b46: bf00 nop + 8034b48: 3710 adds r7, #16 + 8034b4a: 46bd mov sp, r7 + 8034b4c: bd80 pop {r7, pc} + +08034b4e : + +void lv_style_set_outline_width(lv_style_t * style, lv_coord_t value) +{ + 8034b4e: b580 push {r7, lr} + 8034b50: b084 sub sp, #16 + 8034b52: af00 add r7, sp, #0 + 8034b54: 6078 str r0, [r7, #4] + 8034b56: 460b mov r3, r1 + 8034b58: 807b strh r3, [r7, #2] + lv_style_value_t v = { + .num = (int32_t)value + 8034b5a: f9b7 3002 ldrsh.w r3, [r7, #2] + lv_style_value_t v = { + 8034b5e: 60fb str r3, [r7, #12] + }; + lv_style_set_prop(style, LV_STYLE_OUTLINE_WIDTH, v); + 8034b60: 68fa ldr r2, [r7, #12] + 8034b62: f640 013a movw r1, #2106 ; 0x83a + 8034b66: 6878 ldr r0, [r7, #4] + 8034b68: f7ff fc37 bl 80343da +} + 8034b6c: bf00 nop + 8034b6e: 3710 adds r7, #16 + 8034b70: 46bd mov sp, r7 + 8034b72: bd80 pop {r7, pc} + +08034b74 : + +void lv_style_set_outline_color(lv_style_t * style, lv_color_t value) +{ + 8034b74: b580 push {r7, lr} + 8034b76: b084 sub sp, #16 + 8034b78: af00 add r7, sp, #0 + 8034b7a: 6078 str r0, [r7, #4] + 8034b7c: 8039 strh r1, [r7, #0] + lv_style_value_t v = { + 8034b7e: 2300 movs r3, #0 + 8034b80: 60fb str r3, [r7, #12] + 8034b82: 883b ldrh r3, [r7, #0] + 8034b84: 81bb strh r3, [r7, #12] + .color = value + }; + lv_style_set_prop(style, LV_STYLE_OUTLINE_COLOR, v); + 8034b86: 68fa ldr r2, [r7, #12] + 8034b88: 213b movs r1, #59 ; 0x3b + 8034b8a: 6878 ldr r0, [r7, #4] + 8034b8c: f7ff fc25 bl 80343da +} + 8034b90: bf00 nop + 8034b92: 3710 adds r7, #16 + 8034b94: 46bd mov sp, r7 + 8034b96: bd80 pop {r7, pc} + +08034b98 : + }; + lv_style_set_prop(style, LV_STYLE_OUTLINE_COLOR_FILTERED, v); +} + +void lv_style_set_outline_opa(lv_style_t * style, lv_opa_t value) +{ + 8034b98: b580 push {r7, lr} + 8034b9a: b084 sub sp, #16 + 8034b9c: af00 add r7, sp, #0 + 8034b9e: 6078 str r0, [r7, #4] + 8034ba0: 460b mov r3, r1 + 8034ba2: 70fb strb r3, [r7, #3] + lv_style_value_t v = { + .num = (int32_t)value + 8034ba4: 78fb ldrb r3, [r7, #3] + lv_style_value_t v = { + 8034ba6: 60fb str r3, [r7, #12] + }; + lv_style_set_prop(style, LV_STYLE_OUTLINE_OPA, v); + 8034ba8: 68fa ldr r2, [r7, #12] + 8034baa: f640 013c movw r1, #2108 ; 0x83c + 8034bae: 6878 ldr r0, [r7, #4] + 8034bb0: f7ff fc13 bl 80343da +} + 8034bb4: bf00 nop + 8034bb6: 3710 adds r7, #16 + 8034bb8: 46bd mov sp, r7 + 8034bba: bd80 pop {r7, pc} + +08034bbc : + +void lv_style_set_outline_pad(lv_style_t * style, lv_coord_t value) +{ + 8034bbc: b580 push {r7, lr} + 8034bbe: b084 sub sp, #16 + 8034bc0: af00 add r7, sp, #0 + 8034bc2: 6078 str r0, [r7, #4] + 8034bc4: 460b mov r3, r1 + 8034bc6: 807b strh r3, [r7, #2] + lv_style_value_t v = { + .num = (int32_t)value + 8034bc8: f9b7 3002 ldrsh.w r3, [r7, #2] + lv_style_value_t v = { + 8034bcc: 60fb str r3, [r7, #12] + }; + lv_style_set_prop(style, LV_STYLE_OUTLINE_PAD, v); + 8034bce: 68fa ldr r2, [r7, #12] + 8034bd0: f640 013d movw r1, #2109 ; 0x83d 8034bd4: 6878 ldr r0, [r7, #4] - 8034bd6: f7ff fc4a bl 803446e + 8034bd6: f7ff fc00 bl 80343da } 8034bda: bf00 nop 8034bdc: 3710 adds r7, #16 8034bde: 46bd mov sp, r7 8034be0: bd80 pop {r7, pc} -08034be2 : +08034be2 : -void lv_style_set_outline_width(lv_style_t * style, lv_coord_t value) +void lv_style_set_shadow_width(lv_style_t * style, lv_coord_t value) { 8034be2: b580 push {r7, lr} 8034be4: b084 sub sp, #16 @@ -118832,134 +118864,137 @@ void lv_style_set_outline_width(lv_style_t * style, lv_coord_t value) lv_style_value_t v = { 8034bf2: 60fb str r3, [r7, #12] }; - lv_style_set_prop(style, LV_STYLE_OUTLINE_WIDTH, v); + lv_style_set_prop(style, LV_STYLE_SHADOW_WIDTH, v); 8034bf4: 68fa ldr r2, [r7, #12] - 8034bf6: f640 013a movw r1, #2106 ; 0x83a + 8034bf6: f44f 6104 mov.w r1, #2112 ; 0x840 8034bfa: 6878 ldr r0, [r7, #4] - 8034bfc: f7ff fc37 bl 803446e + 8034bfc: f7ff fbed bl 80343da } 8034c00: bf00 nop 8034c02: 3710 adds r7, #16 8034c04: 46bd mov sp, r7 8034c06: bd80 pop {r7, pc} -08034c08 : +08034c08 : + }; + lv_style_set_prop(style, LV_STYLE_SHADOW_OFS_X, v); +} -void lv_style_set_outline_color(lv_style_t * style, lv_color_t value) +void lv_style_set_shadow_ofs_y(lv_style_t * style, lv_coord_t value) { 8034c08: b580 push {r7, lr} 8034c0a: b084 sub sp, #16 8034c0c: af00 add r7, sp, #0 8034c0e: 6078 str r0, [r7, #4] - 8034c10: 8039 strh r1, [r7, #0] + 8034c10: 460b mov r3, r1 + 8034c12: 807b strh r3, [r7, #2] lv_style_value_t v = { - 8034c12: 2300 movs r3, #0 - 8034c14: 60fb str r3, [r7, #12] - 8034c16: 883b ldrh r3, [r7, #0] - 8034c18: 81bb strh r3, [r7, #12] + .num = (int32_t)value + 8034c14: f9b7 3002 ldrsh.w r3, [r7, #2] + lv_style_value_t v = { + 8034c18: 60fb str r3, [r7, #12] + }; + lv_style_set_prop(style, LV_STYLE_SHADOW_OFS_Y, v); + 8034c1a: 68fa ldr r2, [r7, #12] + 8034c1c: f640 0142 movw r1, #2114 ; 0x842 + 8034c20: 6878 ldr r0, [r7, #4] + 8034c22: f7ff fbda bl 80343da +} + 8034c26: bf00 nop + 8034c28: 3710 adds r7, #16 + 8034c2a: 46bd mov sp, r7 + 8034c2c: bd80 pop {r7, pc} + +08034c2e : + +void lv_style_set_shadow_spread(lv_style_t * style, lv_coord_t value) +{ + 8034c2e: b580 push {r7, lr} + 8034c30: b084 sub sp, #16 + 8034c32: af00 add r7, sp, #0 + 8034c34: 6078 str r0, [r7, #4] + 8034c36: 460b mov r3, r1 + 8034c38: 807b strh r3, [r7, #2] + lv_style_value_t v = { + .num = (int32_t)value + 8034c3a: f9b7 3002 ldrsh.w r3, [r7, #2] + lv_style_value_t v = { + 8034c3e: 60fb str r3, [r7, #12] + }; + lv_style_set_prop(style, LV_STYLE_SHADOW_SPREAD, v); + 8034c40: 68fa ldr r2, [r7, #12] + 8034c42: f640 0143 movw r1, #2115 ; 0x843 + 8034c46: 6878 ldr r0, [r7, #4] + 8034c48: f7ff fbc7 bl 80343da +} + 8034c4c: bf00 nop + 8034c4e: 3710 adds r7, #16 + 8034c50: 46bd mov sp, r7 + 8034c52: bd80 pop {r7, pc} + +08034c54 : + +void lv_style_set_shadow_color(lv_style_t * style, lv_color_t value) +{ + 8034c54: b580 push {r7, lr} + 8034c56: b084 sub sp, #16 + 8034c58: af00 add r7, sp, #0 + 8034c5a: 6078 str r0, [r7, #4] + 8034c5c: 8039 strh r1, [r7, #0] + lv_style_value_t v = { + 8034c5e: 2300 movs r3, #0 + 8034c60: 60fb str r3, [r7, #12] + 8034c62: 883b ldrh r3, [r7, #0] + 8034c64: 81bb strh r3, [r7, #12] .color = value }; - lv_style_set_prop(style, LV_STYLE_OUTLINE_COLOR, v); - 8034c1a: 68fa ldr r2, [r7, #12] - 8034c1c: 213b movs r1, #59 ; 0x3b - 8034c1e: 6878 ldr r0, [r7, #4] - 8034c20: f7ff fc25 bl 803446e + lv_style_set_prop(style, LV_STYLE_SHADOW_COLOR, v); + 8034c66: 68fa ldr r2, [r7, #12] + 8034c68: 2144 movs r1, #68 ; 0x44 + 8034c6a: 6878 ldr r0, [r7, #4] + 8034c6c: f7ff fbb5 bl 80343da } - 8034c24: bf00 nop - 8034c26: 3710 adds r7, #16 - 8034c28: 46bd mov sp, r7 - 8034c2a: bd80 pop {r7, pc} + 8034c70: bf00 nop + 8034c72: 3710 adds r7, #16 + 8034c74: 46bd mov sp, r7 + 8034c76: bd80 pop {r7, pc} -08034c2c : +08034c78 : }; - lv_style_set_prop(style, LV_STYLE_OUTLINE_COLOR_FILTERED, v); + lv_style_set_prop(style, LV_STYLE_SHADOW_COLOR_FILTERED, v); } -void lv_style_set_outline_opa(lv_style_t * style, lv_opa_t value) +void lv_style_set_shadow_opa(lv_style_t * style, lv_opa_t value) { - 8034c2c: b580 push {r7, lr} - 8034c2e: b084 sub sp, #16 - 8034c30: af00 add r7, sp, #0 - 8034c32: 6078 str r0, [r7, #4] - 8034c34: 460b mov r3, r1 - 8034c36: 70fb strb r3, [r7, #3] + 8034c78: b580 push {r7, lr} + 8034c7a: b084 sub sp, #16 + 8034c7c: af00 add r7, sp, #0 + 8034c7e: 6078 str r0, [r7, #4] + 8034c80: 460b mov r3, r1 + 8034c82: 70fb strb r3, [r7, #3] lv_style_value_t v = { .num = (int32_t)value - 8034c38: 78fb ldrb r3, [r7, #3] - lv_style_value_t v = { - 8034c3a: 60fb str r3, [r7, #12] - }; - lv_style_set_prop(style, LV_STYLE_OUTLINE_OPA, v); - 8034c3c: 68fa ldr r2, [r7, #12] - 8034c3e: f640 013c movw r1, #2108 ; 0x83c - 8034c42: 6878 ldr r0, [r7, #4] - 8034c44: f7ff fc13 bl 803446e -} - 8034c48: bf00 nop - 8034c4a: 3710 adds r7, #16 - 8034c4c: 46bd mov sp, r7 - 8034c4e: bd80 pop {r7, pc} - -08034c50 : - -void lv_style_set_outline_pad(lv_style_t * style, lv_coord_t value) -{ - 8034c50: b580 push {r7, lr} - 8034c52: b084 sub sp, #16 - 8034c54: af00 add r7, sp, #0 - 8034c56: 6078 str r0, [r7, #4] - 8034c58: 460b mov r3, r1 - 8034c5a: 807b strh r3, [r7, #2] - lv_style_value_t v = { - .num = (int32_t)value - 8034c5c: f9b7 3002 ldrsh.w r3, [r7, #2] - lv_style_value_t v = { - 8034c60: 60fb str r3, [r7, #12] - }; - lv_style_set_prop(style, LV_STYLE_OUTLINE_PAD, v); - 8034c62: 68fa ldr r2, [r7, #12] - 8034c64: f640 013d movw r1, #2109 ; 0x83d - 8034c68: 6878 ldr r0, [r7, #4] - 8034c6a: f7ff fc00 bl 803446e -} - 8034c6e: bf00 nop - 8034c70: 3710 adds r7, #16 - 8034c72: 46bd mov sp, r7 - 8034c74: bd80 pop {r7, pc} - -08034c76 : - -void lv_style_set_shadow_width(lv_style_t * style, lv_coord_t value) -{ - 8034c76: b580 push {r7, lr} - 8034c78: b084 sub sp, #16 - 8034c7a: af00 add r7, sp, #0 - 8034c7c: 6078 str r0, [r7, #4] - 8034c7e: 460b mov r3, r1 - 8034c80: 807b strh r3, [r7, #2] - lv_style_value_t v = { - .num = (int32_t)value - 8034c82: f9b7 3002 ldrsh.w r3, [r7, #2] + 8034c84: 78fb ldrb r3, [r7, #3] lv_style_value_t v = { 8034c86: 60fb str r3, [r7, #12] }; - lv_style_set_prop(style, LV_STYLE_SHADOW_WIDTH, v); + lv_style_set_prop(style, LV_STYLE_SHADOW_OPA, v); 8034c88: 68fa ldr r2, [r7, #12] - 8034c8a: f44f 6104 mov.w r1, #2112 ; 0x840 + 8034c8a: f640 0145 movw r1, #2117 ; 0x845 8034c8e: 6878 ldr r0, [r7, #4] - 8034c90: f7ff fbed bl 803446e + 8034c90: f7ff fba3 bl 80343da } 8034c94: bf00 nop 8034c96: 3710 adds r7, #16 8034c98: 46bd mov sp, r7 8034c9a: bd80 pop {r7, pc} -08034c9c : +08034c9c : }; - lv_style_set_prop(style, LV_STYLE_SHADOW_OFS_X, v); + lv_style_set_prop(style, LV_STYLE_IMG_RECOLOR_OPA, v); } -void lv_style_set_shadow_ofs_y(lv_style_t * style, lv_coord_t value) +void lv_style_set_line_width(lv_style_t * style, lv_coord_t value) { 8034c9c: b580 push {r7, lr} 8034c9e: b084 sub sp, #16 @@ -118973,77 +119008,80 @@ void lv_style_set_shadow_ofs_y(lv_style_t * style, lv_coord_t value) lv_style_value_t v = { 8034cac: 60fb str r3, [r7, #12] }; - lv_style_set_prop(style, LV_STYLE_SHADOW_OFS_Y, v); + lv_style_set_prop(style, LV_STYLE_LINE_WIDTH, v); 8034cae: 68fa ldr r2, [r7, #12] - 8034cb0: f640 0142 movw r1, #2114 ; 0x842 + 8034cb0: f640 0149 movw r1, #2121 ; 0x849 8034cb4: 6878 ldr r0, [r7, #4] - 8034cb6: f7ff fbda bl 803446e + 8034cb6: f7ff fb90 bl 80343da } 8034cba: bf00 nop 8034cbc: 3710 adds r7, #16 8034cbe: 46bd mov sp, r7 8034cc0: bd80 pop {r7, pc} -08034cc2 : +08034cc2 : + }; + lv_style_set_prop(style, LV_STYLE_LINE_ROUNDED, v); +} -void lv_style_set_shadow_spread(lv_style_t * style, lv_coord_t value) +void lv_style_set_line_color(lv_style_t * style, lv_color_t value) { 8034cc2: b580 push {r7, lr} 8034cc4: b084 sub sp, #16 8034cc6: af00 add r7, sp, #0 8034cc8: 6078 str r0, [r7, #4] - 8034cca: 460b mov r3, r1 - 8034ccc: 807b strh r3, [r7, #2] + 8034cca: 8039 strh r1, [r7, #0] lv_style_value_t v = { - .num = (int32_t)value - 8034cce: f9b7 3002 ldrsh.w r3, [r7, #2] - lv_style_value_t v = { - 8034cd2: 60fb str r3, [r7, #12] - }; - lv_style_set_prop(style, LV_STYLE_SHADOW_SPREAD, v); - 8034cd4: 68fa ldr r2, [r7, #12] - 8034cd6: f640 0143 movw r1, #2115 ; 0x843 - 8034cda: 6878 ldr r0, [r7, #4] - 8034cdc: f7ff fbc7 bl 803446e -} - 8034ce0: bf00 nop - 8034ce2: 3710 adds r7, #16 - 8034ce4: 46bd mov sp, r7 - 8034ce6: bd80 pop {r7, pc} - -08034ce8 : - -void lv_style_set_shadow_color(lv_style_t * style, lv_color_t value) -{ - 8034ce8: b580 push {r7, lr} - 8034cea: b084 sub sp, #16 - 8034cec: af00 add r7, sp, #0 - 8034cee: 6078 str r0, [r7, #4] - 8034cf0: 8039 strh r1, [r7, #0] - lv_style_value_t v = { - 8034cf2: 2300 movs r3, #0 - 8034cf4: 60fb str r3, [r7, #12] - 8034cf6: 883b ldrh r3, [r7, #0] - 8034cf8: 81bb strh r3, [r7, #12] + 8034ccc: 2300 movs r3, #0 + 8034cce: 60fb str r3, [r7, #12] + 8034cd0: 883b ldrh r3, [r7, #0] + 8034cd2: 81bb strh r3, [r7, #12] .color = value }; - lv_style_set_prop(style, LV_STYLE_SHADOW_COLOR, v); - 8034cfa: 68fa ldr r2, [r7, #12] - 8034cfc: 2144 movs r1, #68 ; 0x44 + lv_style_set_prop(style, LV_STYLE_LINE_COLOR, v); + 8034cd4: 68fa ldr r2, [r7, #12] + 8034cd6: 214d movs r1, #77 ; 0x4d + 8034cd8: 6878 ldr r0, [r7, #4] + 8034cda: f7ff fb7e bl 80343da +} + 8034cde: bf00 nop + 8034ce0: 3710 adds r7, #16 + 8034ce2: 46bd mov sp, r7 + 8034ce4: bd80 pop {r7, pc} + +08034ce6 : + }; + lv_style_set_prop(style, LV_STYLE_LINE_OPA, v); +} + +void lv_style_set_arc_width(lv_style_t * style, lv_coord_t value) +{ + 8034ce6: b580 push {r7, lr} + 8034ce8: b084 sub sp, #16 + 8034cea: af00 add r7, sp, #0 + 8034cec: 6078 str r0, [r7, #4] + 8034cee: 460b mov r3, r1 + 8034cf0: 807b strh r3, [r7, #2] + lv_style_value_t v = { + .num = (int32_t)value + 8034cf2: f9b7 3002 ldrsh.w r3, [r7, #2] + lv_style_value_t v = { + 8034cf6: 60fb str r3, [r7, #12] + }; + lv_style_set_prop(style, LV_STYLE_ARC_WIDTH, v); + 8034cf8: 68fa ldr r2, [r7, #12] + 8034cfa: f44f 6105 mov.w r1, #2128 ; 0x850 8034cfe: 6878 ldr r0, [r7, #4] - 8034d00: f7ff fbb5 bl 803446e + 8034d00: f7ff fb6b bl 80343da } 8034d04: bf00 nop 8034d06: 3710 adds r7, #16 8034d08: 46bd mov sp, r7 8034d0a: bd80 pop {r7, pc} -08034d0c : - }; - lv_style_set_prop(style, LV_STYLE_SHADOW_COLOR_FILTERED, v); -} +08034d0c : -void lv_style_set_shadow_opa(lv_style_t * style, lv_opa_t value) +void lv_style_set_arc_rounded(lv_style_t * style, bool value) { 8034d0c: b580 push {r7, lr} 8034d0e: b084 sub sp, #16 @@ -119056,1930 +119094,1905 @@ void lv_style_set_shadow_opa(lv_style_t * style, lv_opa_t value) 8034d18: 78fb ldrb r3, [r7, #3] lv_style_value_t v = { 8034d1a: 60fb str r3, [r7, #12] - }; - lv_style_set_prop(style, LV_STYLE_SHADOW_OPA, v); - 8034d1c: 68fa ldr r2, [r7, #12] - 8034d1e: f640 0145 movw r1, #2117 ; 0x845 - 8034d22: 6878 ldr r0, [r7, #4] - 8034d24: f7ff fba3 bl 803446e -} - 8034d28: bf00 nop - 8034d2a: 3710 adds r7, #16 - 8034d2c: 46bd mov sp, r7 - 8034d2e: bd80 pop {r7, pc} - -08034d30 : - }; - lv_style_set_prop(style, LV_STYLE_IMG_RECOLOR_OPA, v); -} - -void lv_style_set_line_width(lv_style_t * style, lv_coord_t value) -{ - 8034d30: b580 push {r7, lr} - 8034d32: b084 sub sp, #16 - 8034d34: af00 add r7, sp, #0 - 8034d36: 6078 str r0, [r7, #4] - 8034d38: 460b mov r3, r1 - 8034d3a: 807b strh r3, [r7, #2] - lv_style_value_t v = { - .num = (int32_t)value - 8034d3c: f9b7 3002 ldrsh.w r3, [r7, #2] - lv_style_value_t v = { - 8034d40: 60fb str r3, [r7, #12] - }; - lv_style_set_prop(style, LV_STYLE_LINE_WIDTH, v); - 8034d42: 68fa ldr r2, [r7, #12] - 8034d44: f640 0149 movw r1, #2121 ; 0x849 - 8034d48: 6878 ldr r0, [r7, #4] - 8034d4a: f7ff fb90 bl 803446e -} - 8034d4e: bf00 nop - 8034d50: 3710 adds r7, #16 - 8034d52: 46bd mov sp, r7 - 8034d54: bd80 pop {r7, pc} - -08034d56 : - }; - lv_style_set_prop(style, LV_STYLE_LINE_ROUNDED, v); -} - -void lv_style_set_line_color(lv_style_t * style, lv_color_t value) -{ - 8034d56: b580 push {r7, lr} - 8034d58: b084 sub sp, #16 - 8034d5a: af00 add r7, sp, #0 - 8034d5c: 6078 str r0, [r7, #4] - 8034d5e: 8039 strh r1, [r7, #0] - lv_style_value_t v = { - 8034d60: 2300 movs r3, #0 - 8034d62: 60fb str r3, [r7, #12] - 8034d64: 883b ldrh r3, [r7, #0] - 8034d66: 81bb strh r3, [r7, #12] - .color = value - }; - lv_style_set_prop(style, LV_STYLE_LINE_COLOR, v); - 8034d68: 68fa ldr r2, [r7, #12] - 8034d6a: 214d movs r1, #77 ; 0x4d - 8034d6c: 6878 ldr r0, [r7, #4] - 8034d6e: f7ff fb7e bl 803446e -} - 8034d72: bf00 nop - 8034d74: 3710 adds r7, #16 - 8034d76: 46bd mov sp, r7 - 8034d78: bd80 pop {r7, pc} - -08034d7a : - }; - lv_style_set_prop(style, LV_STYLE_LINE_OPA, v); -} - -void lv_style_set_arc_width(lv_style_t * style, lv_coord_t value) -{ - 8034d7a: b580 push {r7, lr} - 8034d7c: b084 sub sp, #16 - 8034d7e: af00 add r7, sp, #0 - 8034d80: 6078 str r0, [r7, #4] - 8034d82: 460b mov r3, r1 - 8034d84: 807b strh r3, [r7, #2] - lv_style_value_t v = { - .num = (int32_t)value - 8034d86: f9b7 3002 ldrsh.w r3, [r7, #2] - lv_style_value_t v = { - 8034d8a: 60fb str r3, [r7, #12] - }; - lv_style_set_prop(style, LV_STYLE_ARC_WIDTH, v); - 8034d8c: 68fa ldr r2, [r7, #12] - 8034d8e: f44f 6105 mov.w r1, #2128 ; 0x850 - 8034d92: 6878 ldr r0, [r7, #4] - 8034d94: f7ff fb6b bl 803446e -} - 8034d98: bf00 nop - 8034d9a: 3710 adds r7, #16 - 8034d9c: 46bd mov sp, r7 - 8034d9e: bd80 pop {r7, pc} - -08034da0 : - -void lv_style_set_arc_rounded(lv_style_t * style, bool value) -{ - 8034da0: b580 push {r7, lr} - 8034da2: b084 sub sp, #16 - 8034da4: af00 add r7, sp, #0 - 8034da6: 6078 str r0, [r7, #4] - 8034da8: 460b mov r3, r1 - 8034daa: 70fb strb r3, [r7, #3] - lv_style_value_t v = { - .num = (int32_t)value - 8034dac: 78fb ldrb r3, [r7, #3] - lv_style_value_t v = { - 8034dae: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_ARC_ROUNDED, v); - 8034db0: 68fa ldr r2, [r7, #12] - 8034db2: 2151 movs r1, #81 ; 0x51 - 8034db4: 6878 ldr r0, [r7, #4] - 8034db6: f7ff fb5a bl 803446e + 8034d1c: 68fa ldr r2, [r7, #12] + 8034d1e: 2151 movs r1, #81 ; 0x51 + 8034d20: 6878 ldr r0, [r7, #4] + 8034d22: f7ff fb5a bl 80343da } - 8034dba: bf00 nop - 8034dbc: 3710 adds r7, #16 - 8034dbe: 46bd mov sp, r7 - 8034dc0: bd80 pop {r7, pc} + 8034d26: bf00 nop + 8034d28: 3710 adds r7, #16 + 8034d2a: 46bd mov sp, r7 + 8034d2c: bd80 pop {r7, pc} -08034dc2 : +08034d2e : void lv_style_set_arc_color(lv_style_t * style, lv_color_t value) { - 8034dc2: b580 push {r7, lr} - 8034dc4: b084 sub sp, #16 - 8034dc6: af00 add r7, sp, #0 - 8034dc8: 6078 str r0, [r7, #4] - 8034dca: 8039 strh r1, [r7, #0] + 8034d2e: b580 push {r7, lr} + 8034d30: b084 sub sp, #16 + 8034d32: af00 add r7, sp, #0 + 8034d34: 6078 str r0, [r7, #4] + 8034d36: 8039 strh r1, [r7, #0] lv_style_value_t v = { - 8034dcc: 2300 movs r3, #0 - 8034dce: 60fb str r3, [r7, #12] - 8034dd0: 883b ldrh r3, [r7, #0] - 8034dd2: 81bb strh r3, [r7, #12] + 8034d38: 2300 movs r3, #0 + 8034d3a: 60fb str r3, [r7, #12] + 8034d3c: 883b ldrh r3, [r7, #0] + 8034d3e: 81bb strh r3, [r7, #12] .color = value }; lv_style_set_prop(style, LV_STYLE_ARC_COLOR, v); - 8034dd4: 68fa ldr r2, [r7, #12] - 8034dd6: 2152 movs r1, #82 ; 0x52 - 8034dd8: 6878 ldr r0, [r7, #4] - 8034dda: f7ff fb48 bl 803446e + 8034d40: 68fa ldr r2, [r7, #12] + 8034d42: 2152 movs r1, #82 ; 0x52 + 8034d44: 6878 ldr r0, [r7, #4] + 8034d46: f7ff fb48 bl 80343da } - 8034dde: bf00 nop - 8034de0: 3710 adds r7, #16 - 8034de2: 46bd mov sp, r7 - 8034de4: bd80 pop {r7, pc} + 8034d4a: bf00 nop + 8034d4c: 3710 adds r7, #16 + 8034d4e: 46bd mov sp, r7 + 8034d50: bd80 pop {r7, pc} -08034de6 : +08034d52 : }; lv_style_set_prop(style, LV_STYLE_ARC_IMG_SRC, v); } void lv_style_set_text_color(lv_style_t * style, lv_color_t value) { - 8034de6: b580 push {r7, lr} - 8034de8: b084 sub sp, #16 - 8034dea: af00 add r7, sp, #0 - 8034dec: 6078 str r0, [r7, #4] - 8034dee: 8039 strh r1, [r7, #0] + 8034d52: b580 push {r7, lr} + 8034d54: b084 sub sp, #16 + 8034d56: af00 add r7, sp, #0 + 8034d58: 6078 str r0, [r7, #4] + 8034d5a: 8039 strh r1, [r7, #0] lv_style_value_t v = { - 8034df0: 2300 movs r3, #0 - 8034df2: 60fb str r3, [r7, #12] - 8034df4: 883b ldrh r3, [r7, #0] - 8034df6: 81bb strh r3, [r7, #12] + 8034d5c: 2300 movs r3, #0 + 8034d5e: 60fb str r3, [r7, #12] + 8034d60: 883b ldrh r3, [r7, #0] + 8034d62: 81bb strh r3, [r7, #12] .color = value }; lv_style_set_prop(style, LV_STYLE_TEXT_COLOR, v); - 8034df8: 68fa ldr r2, [r7, #12] - 8034dfa: f240 4157 movw r1, #1111 ; 0x457 - 8034dfe: 6878 ldr r0, [r7, #4] - 8034e00: f7ff fb35 bl 803446e + 8034d64: 68fa ldr r2, [r7, #12] + 8034d66: f240 4157 movw r1, #1111 ; 0x457 + 8034d6a: 6878 ldr r0, [r7, #4] + 8034d6c: f7ff fb35 bl 80343da } - 8034e04: bf00 nop - 8034e06: 3710 adds r7, #16 - 8034e08: 46bd mov sp, r7 - 8034e0a: bd80 pop {r7, pc} + 8034d70: bf00 nop + 8034d72: 3710 adds r7, #16 + 8034d74: 46bd mov sp, r7 + 8034d76: bd80 pop {r7, pc} -08034e0c : +08034d78 : }; lv_style_set_prop(style, LV_STYLE_TEXT_OPA, v); } void lv_style_set_text_font(lv_style_t * style, const lv_font_t * value) { - 8034e0c: b580 push {r7, lr} - 8034e0e: b084 sub sp, #16 - 8034e10: af00 add r7, sp, #0 - 8034e12: 6078 str r0, [r7, #4] - 8034e14: 6039 str r1, [r7, #0] + 8034d78: b580 push {r7, lr} + 8034d7a: b084 sub sp, #16 + 8034d7c: af00 add r7, sp, #0 + 8034d7e: 6078 str r0, [r7, #4] + 8034d80: 6039 str r1, [r7, #0] lv_style_value_t v = { - 8034e16: 683b ldr r3, [r7, #0] - 8034e18: 60fb str r3, [r7, #12] + 8034d82: 683b ldr r3, [r7, #0] + 8034d84: 60fb str r3, [r7, #12] .ptr = value }; lv_style_set_prop(style, LV_STYLE_TEXT_FONT, v); - 8034e1a: 68fa ldr r2, [r7, #12] - 8034e1c: f241 4159 movw r1, #5209 ; 0x1459 - 8034e20: 6878 ldr r0, [r7, #4] - 8034e22: f7ff fb24 bl 803446e + 8034d86: 68fa ldr r2, [r7, #12] + 8034d88: f241 4159 movw r1, #5209 ; 0x1459 + 8034d8c: 6878 ldr r0, [r7, #4] + 8034d8e: f7ff fb24 bl 80343da } - 8034e26: bf00 nop - 8034e28: 3710 adds r7, #16 - 8034e2a: 46bd mov sp, r7 - 8034e2c: bd80 pop {r7, pc} + 8034d92: bf00 nop + 8034d94: 3710 adds r7, #16 + 8034d96: 46bd mov sp, r7 + 8034d98: bd80 pop {r7, pc} -08034e2e : +08034d9a : }; lv_style_set_prop(style, LV_STYLE_TEXT_LETTER_SPACE, v); } void lv_style_set_text_line_space(lv_style_t * style, lv_coord_t value) { - 8034e2e: b580 push {r7, lr} - 8034e30: b084 sub sp, #16 - 8034e32: af00 add r7, sp, #0 - 8034e34: 6078 str r0, [r7, #4] - 8034e36: 460b mov r3, r1 - 8034e38: 807b strh r3, [r7, #2] + 8034d9a: b580 push {r7, lr} + 8034d9c: b084 sub sp, #16 + 8034d9e: af00 add r7, sp, #0 + 8034da0: 6078 str r0, [r7, #4] + 8034da2: 460b mov r3, r1 + 8034da4: 807b strh r3, [r7, #2] lv_style_value_t v = { .num = (int32_t)value - 8034e3a: f9b7 3002 ldrsh.w r3, [r7, #2] + 8034da6: f9b7 3002 ldrsh.w r3, [r7, #2] lv_style_value_t v = { - 8034e3e: 60fb str r3, [r7, #12] + 8034daa: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_TEXT_LINE_SPACE, v); - 8034e40: 68fa ldr r2, [r7, #12] - 8034e42: f241 415b movw r1, #5211 ; 0x145b - 8034e46: 6878 ldr r0, [r7, #4] - 8034e48: f7ff fb11 bl 803446e + 8034dac: 68fa ldr r2, [r7, #12] + 8034dae: f241 415b movw r1, #5211 ; 0x145b + 8034db2: 6878 ldr r0, [r7, #4] + 8034db4: f7ff fb11 bl 80343da } - 8034e4c: bf00 nop - 8034e4e: 3710 adds r7, #16 - 8034e50: 46bd mov sp, r7 - 8034e52: bd80 pop {r7, pc} + 8034db8: bf00 nop + 8034dba: 3710 adds r7, #16 + 8034dbc: 46bd mov sp, r7 + 8034dbe: bd80 pop {r7, pc} -08034e54 : +08034dc0 : }; lv_style_set_prop(style, LV_STYLE_TEXT_DECOR, v); } void lv_style_set_text_align(lv_style_t * style, lv_text_align_t value) { - 8034e54: b580 push {r7, lr} - 8034e56: b084 sub sp, #16 - 8034e58: af00 add r7, sp, #0 - 8034e5a: 6078 str r0, [r7, #4] - 8034e5c: 460b mov r3, r1 - 8034e5e: 70fb strb r3, [r7, #3] + 8034dc0: b580 push {r7, lr} + 8034dc2: b084 sub sp, #16 + 8034dc4: af00 add r7, sp, #0 + 8034dc6: 6078 str r0, [r7, #4] + 8034dc8: 460b mov r3, r1 + 8034dca: 70fb strb r3, [r7, #3] lv_style_value_t v = { .num = (int32_t)value - 8034e60: 78fb ldrb r3, [r7, #3] + 8034dcc: 78fb ldrb r3, [r7, #3] lv_style_value_t v = { - 8034e62: 60fb str r3, [r7, #12] + 8034dce: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_TEXT_ALIGN, v); - 8034e64: 68fa ldr r2, [r7, #12] - 8034e66: f241 415d movw r1, #5213 ; 0x145d - 8034e6a: 6878 ldr r0, [r7, #4] - 8034e6c: f7ff faff bl 803446e + 8034dd0: 68fa ldr r2, [r7, #12] + 8034dd2: f241 415d movw r1, #5213 ; 0x145d + 8034dd6: 6878 ldr r0, [r7, #4] + 8034dd8: f7ff faff bl 80343da } - 8034e70: bf00 nop - 8034e72: 3710 adds r7, #16 - 8034e74: 46bd mov sp, r7 - 8034e76: bd80 pop {r7, pc} + 8034ddc: bf00 nop + 8034dde: 3710 adds r7, #16 + 8034de0: 46bd mov sp, r7 + 8034de2: bd80 pop {r7, pc} -08034e78 : +08034de4 : void lv_style_set_radius(lv_style_t * style, lv_coord_t value) { - 8034e78: b580 push {r7, lr} - 8034e7a: b084 sub sp, #16 - 8034e7c: af00 add r7, sp, #0 - 8034e7e: 6078 str r0, [r7, #4] - 8034e80: 460b mov r3, r1 - 8034e82: 807b strh r3, [r7, #2] + 8034de4: b580 push {r7, lr} + 8034de6: b084 sub sp, #16 + 8034de8: af00 add r7, sp, #0 + 8034dea: 6078 str r0, [r7, #4] + 8034dec: 460b mov r3, r1 + 8034dee: 807b strh r3, [r7, #2] lv_style_value_t v = { .num = (int32_t)value - 8034e84: f9b7 3002 ldrsh.w r3, [r7, #2] + 8034df0: f9b7 3002 ldrsh.w r3, [r7, #2] lv_style_value_t v = { - 8034e88: 60fb str r3, [r7, #12] + 8034df4: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_RADIUS, v); - 8034e8a: 68fa ldr r2, [r7, #12] - 8034e8c: 2160 movs r1, #96 ; 0x60 - 8034e8e: 6878 ldr r0, [r7, #4] - 8034e90: f7ff faed bl 803446e + 8034df6: 68fa ldr r2, [r7, #12] + 8034df8: 2160 movs r1, #96 ; 0x60 + 8034dfa: 6878 ldr r0, [r7, #4] + 8034dfc: f7ff faed bl 80343da } - 8034e94: bf00 nop - 8034e96: 3710 adds r7, #16 - 8034e98: 46bd mov sp, r7 - 8034e9a: bd80 pop {r7, pc} + 8034e00: bf00 nop + 8034e02: 3710 adds r7, #16 + 8034e04: 46bd mov sp, r7 + 8034e06: bd80 pop {r7, pc} -08034e9c : +08034e08 : void lv_style_set_clip_corner(lv_style_t * style, bool value) { - 8034e9c: b580 push {r7, lr} - 8034e9e: b084 sub sp, #16 - 8034ea0: af00 add r7, sp, #0 - 8034ea2: 6078 str r0, [r7, #4] - 8034ea4: 460b mov r3, r1 - 8034ea6: 70fb strb r3, [r7, #3] + 8034e08: b580 push {r7, lr} + 8034e0a: b084 sub sp, #16 + 8034e0c: af00 add r7, sp, #0 + 8034e0e: 6078 str r0, [r7, #4] + 8034e10: 460b mov r3, r1 + 8034e12: 70fb strb r3, [r7, #3] lv_style_value_t v = { .num = (int32_t)value - 8034ea8: 78fb ldrb r3, [r7, #3] + 8034e14: 78fb ldrb r3, [r7, #3] lv_style_value_t v = { - 8034eaa: 60fb str r3, [r7, #12] + 8034e16: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_CLIP_CORNER, v); - 8034eac: 68fa ldr r2, [r7, #12] - 8034eae: 2161 movs r1, #97 ; 0x61 - 8034eb0: 6878 ldr r0, [r7, #4] - 8034eb2: f7ff fadc bl 803446e + 8034e18: 68fa ldr r2, [r7, #12] + 8034e1a: 2161 movs r1, #97 ; 0x61 + 8034e1c: 6878 ldr r0, [r7, #4] + 8034e1e: f7ff fadc bl 80343da } - 8034eb6: bf00 nop - 8034eb8: 3710 adds r7, #16 - 8034eba: 46bd mov sp, r7 - 8034ebc: bd80 pop {r7, pc} + 8034e22: bf00 nop + 8034e24: 3710 adds r7, #16 + 8034e26: 46bd mov sp, r7 + 8034e28: bd80 pop {r7, pc} -08034ebe : +08034e2a : }; lv_style_set_prop(style, LV_STYLE_OPA, v); } void lv_style_set_color_filter_dsc(lv_style_t * style, const lv_color_filter_dsc_t * value) { - 8034ebe: b580 push {r7, lr} - 8034ec0: b084 sub sp, #16 - 8034ec2: af00 add r7, sp, #0 - 8034ec4: 6078 str r0, [r7, #4] - 8034ec6: 6039 str r1, [r7, #0] + 8034e2a: b580 push {r7, lr} + 8034e2c: b084 sub sp, #16 + 8034e2e: af00 add r7, sp, #0 + 8034e30: 6078 str r0, [r7, #4] + 8034e32: 6039 str r1, [r7, #0] lv_style_value_t v = { - 8034ec8: 683b ldr r3, [r7, #0] - 8034eca: 60fb str r3, [r7, #12] + 8034e34: 683b ldr r3, [r7, #0] + 8034e36: 60fb str r3, [r7, #12] .ptr = value }; lv_style_set_prop(style, LV_STYLE_COLOR_FILTER_DSC, v); - 8034ecc: 68fa ldr r2, [r7, #12] - 8034ece: 2163 movs r1, #99 ; 0x63 - 8034ed0: 6878 ldr r0, [r7, #4] - 8034ed2: f7ff facc bl 803446e + 8034e38: 68fa ldr r2, [r7, #12] + 8034e3a: 2163 movs r1, #99 ; 0x63 + 8034e3c: 6878 ldr r0, [r7, #4] + 8034e3e: f7ff facc bl 80343da } - 8034ed6: bf00 nop - 8034ed8: 3710 adds r7, #16 - 8034eda: 46bd mov sp, r7 - 8034edc: bd80 pop {r7, pc} + 8034e42: bf00 nop + 8034e44: 3710 adds r7, #16 + 8034e46: 46bd mov sp, r7 + 8034e48: bd80 pop {r7, pc} -08034ede : +08034e4a : void lv_style_set_color_filter_opa(lv_style_t * style, lv_opa_t value) { - 8034ede: b580 push {r7, lr} - 8034ee0: b084 sub sp, #16 - 8034ee2: af00 add r7, sp, #0 - 8034ee4: 6078 str r0, [r7, #4] - 8034ee6: 460b mov r3, r1 - 8034ee8: 70fb strb r3, [r7, #3] + 8034e4a: b580 push {r7, lr} + 8034e4c: b084 sub sp, #16 + 8034e4e: af00 add r7, sp, #0 + 8034e50: 6078 str r0, [r7, #4] + 8034e52: 460b mov r3, r1 + 8034e54: 70fb strb r3, [r7, #3] lv_style_value_t v = { .num = (int32_t)value - 8034eea: 78fb ldrb r3, [r7, #3] + 8034e56: 78fb ldrb r3, [r7, #3] lv_style_value_t v = { - 8034eec: 60fb str r3, [r7, #12] + 8034e58: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_COLOR_FILTER_OPA, v); - 8034eee: 68fa ldr r2, [r7, #12] - 8034ef0: 2164 movs r1, #100 ; 0x64 - 8034ef2: 6878 ldr r0, [r7, #4] - 8034ef4: f7ff fabb bl 803446e + 8034e5a: 68fa ldr r2, [r7, #12] + 8034e5c: 2164 movs r1, #100 ; 0x64 + 8034e5e: 6878 ldr r0, [r7, #4] + 8034e60: f7ff fabb bl 80343da } - 8034ef8: bf00 nop - 8034efa: 3710 adds r7, #16 - 8034efc: 46bd mov sp, r7 - 8034efe: bd80 pop {r7, pc} + 8034e64: bf00 nop + 8034e66: 3710 adds r7, #16 + 8034e68: 46bd mov sp, r7 + 8034e6a: bd80 pop {r7, pc} -08034f00 : +08034e6c : void lv_style_set_anim_time(lv_style_t * style, uint32_t value) { - 8034f00: b580 push {r7, lr} - 8034f02: b084 sub sp, #16 - 8034f04: af00 add r7, sp, #0 - 8034f06: 6078 str r0, [r7, #4] - 8034f08: 6039 str r1, [r7, #0] + 8034e6c: b580 push {r7, lr} + 8034e6e: b084 sub sp, #16 + 8034e70: af00 add r7, sp, #0 + 8034e72: 6078 str r0, [r7, #4] + 8034e74: 6039 str r1, [r7, #0] lv_style_value_t v = { .num = (int32_t)value - 8034f0a: 683b ldr r3, [r7, #0] + 8034e76: 683b ldr r3, [r7, #0] lv_style_value_t v = { - 8034f0c: 60fb str r3, [r7, #12] + 8034e78: 60fb str r3, [r7, #12] }; lv_style_set_prop(style, LV_STYLE_ANIM_TIME, v); - 8034f0e: 68fa ldr r2, [r7, #12] - 8034f10: 2165 movs r1, #101 ; 0x65 - 8034f12: 6878 ldr r0, [r7, #4] - 8034f14: f7ff faab bl 803446e + 8034e7a: 68fa ldr r2, [r7, #12] + 8034e7c: 2165 movs r1, #101 ; 0x65 + 8034e7e: 6878 ldr r0, [r7, #4] + 8034e80: f7ff faab bl 80343da } - 8034f18: bf00 nop - 8034f1a: 3710 adds r7, #16 - 8034f1c: 46bd mov sp, r7 - 8034f1e: bd80 pop {r7, pc} + 8034e84: bf00 nop + 8034e86: 3710 adds r7, #16 + 8034e88: 46bd mov sp, r7 + 8034e8a: bd80 pop {r7, pc} -08034f20 : +08034e8c : }; lv_style_set_prop(style, LV_STYLE_ANIM_SPEED, v); } void lv_style_set_transition(lv_style_t * style, const lv_style_transition_dsc_t * value) { - 8034f20: b580 push {r7, lr} - 8034f22: b084 sub sp, #16 - 8034f24: af00 add r7, sp, #0 - 8034f26: 6078 str r0, [r7, #4] - 8034f28: 6039 str r1, [r7, #0] + 8034e8c: b580 push {r7, lr} + 8034e8e: b084 sub sp, #16 + 8034e90: af00 add r7, sp, #0 + 8034e92: 6078 str r0, [r7, #4] + 8034e94: 6039 str r1, [r7, #0] lv_style_value_t v = { - 8034f2a: 683b ldr r3, [r7, #0] - 8034f2c: 60fb str r3, [r7, #12] + 8034e96: 683b ldr r3, [r7, #0] + 8034e98: 60fb str r3, [r7, #12] .ptr = value }; lv_style_set_prop(style, LV_STYLE_TRANSITION, v); - 8034f2e: 68fa ldr r2, [r7, #12] - 8034f30: 2167 movs r1, #103 ; 0x67 - 8034f32: 6878 ldr r0, [r7, #4] - 8034f34: f7ff fa9b bl 803446e + 8034e9a: 68fa ldr r2, [r7, #12] + 8034e9c: 2167 movs r1, #103 ; 0x67 + 8034e9e: 6878 ldr r0, [r7, #4] + 8034ea0: f7ff fa9b bl 80343da } - 8034f38: bf00 nop - 8034f3a: 3710 adds r7, #16 - 8034f3c: 46bd mov sp, r7 - 8034f3e: bd80 pop {r7, pc} + 8034ea4: bf00 nop + 8034ea6: 3710 adds r7, #16 + 8034ea8: 46bd mov sp, r7 + 8034eaa: bd80 pop {r7, pc} -08034f40 <_lv_timer_core_init>: +08034eac <_lv_timer_core_init>: /** * Init the lv_timer module */ void _lv_timer_core_init(void) { - 8034f40: b580 push {r7, lr} - 8034f42: af00 add r7, sp, #0 + 8034eac: b580 push {r7, lr} + 8034eae: af00 add r7, sp, #0 _lv_ll_init(&LV_GC_ROOT(_lv_timer_ll), sizeof(lv_timer_t)); - 8034f44: 2118 movs r1, #24 - 8034f46: 4804 ldr r0, [pc, #16] ; (8034f58 <_lv_timer_core_init+0x18>) - 8034f48: f7fd f90a bl 8032160 <_lv_ll_init> + 8034eb0: 2118 movs r1, #24 + 8034eb2: 4804 ldr r0, [pc, #16] ; (8034ec4 <_lv_timer_core_init+0x18>) + 8034eb4: f7fd f90a bl 80320cc <_lv_ll_init> /*Initially enable the lv_timer handling*/ lv_timer_enable(true); - 8034f4c: 2001 movs r0, #1 - 8034f4e: f000 f94b bl 80351e8 + 8034eb8: 2001 movs r0, #1 + 8034eba: f000 f94b bl 8035154 } - 8034f52: bf00 nop - 8034f54: bd80 pop {r7, pc} - 8034f56: bf00 nop - 8034f58: 20001d04 .word 0x20001d04 + 8034ebe: bf00 nop + 8034ec0: bd80 pop {r7, pc} + 8034ec2: bf00 nop + 8034ec4: 20001d04 .word 0x20001d04 -08034f5c : +08034ec8 : /** * Call it periodically to handle lv_timers. * @return the time after which it must be called again */ LV_ATTRIBUTE_TIMER_HANDLER uint32_t lv_timer_handler(void) { - 8034f5c: b580 push {r7, lr} - 8034f5e: b086 sub sp, #24 - 8034f60: af00 add r7, sp, #0 + 8034ec8: b580 push {r7, lr} + 8034eca: b086 sub sp, #24 + 8034ecc: af00 add r7, sp, #0 TIMER_TRACE("begin"); /*Avoid concurrent running of the timer handler*/ static bool already_running = false; if(already_running) { - 8034f62: 4b59 ldr r3, [pc, #356] ; (80350c8 ) - 8034f64: 781b ldrb r3, [r3, #0] - 8034f66: 2b00 cmp r3, #0 - 8034f68: d001 beq.n 8034f6e + 8034ece: 4b59 ldr r3, [pc, #356] ; (8035034 ) + 8034ed0: 781b ldrb r3, [r3, #0] + 8034ed2: 2b00 cmp r3, #0 + 8034ed4: d001 beq.n 8034eda TIMER_TRACE("already running, concurrent calls are not allow, returning"); return 1; - 8034f6a: 2301 movs r3, #1 - 8034f6c: e0a7 b.n 80350be + 8034ed6: 2301 movs r3, #1 + 8034ed8: e0a7 b.n 803502a } already_running = true; - 8034f6e: 4b56 ldr r3, [pc, #344] ; (80350c8 ) - 8034f70: 2201 movs r2, #1 - 8034f72: 701a strb r2, [r3, #0] + 8034eda: 4b56 ldr r3, [pc, #344] ; (8035034 ) + 8034edc: 2201 movs r2, #1 + 8034ede: 701a strb r2, [r3, #0] if(lv_timer_run == false) { - 8034f74: 4b55 ldr r3, [pc, #340] ; (80350cc ) - 8034f76: 781b ldrb r3, [r3, #0] - 8034f78: f083 0301 eor.w r3, r3, #1 - 8034f7c: b2db uxtb r3, r3 - 8034f7e: 2b00 cmp r3, #0 - 8034f80: d004 beq.n 8034f8c + 8034ee0: 4b55 ldr r3, [pc, #340] ; (8035038 ) + 8034ee2: 781b ldrb r3, [r3, #0] + 8034ee4: f083 0301 eor.w r3, r3, #1 + 8034ee8: b2db uxtb r3, r3 + 8034eea: 2b00 cmp r3, #0 + 8034eec: d004 beq.n 8034ef8 already_running = false; /*Release mutex*/ - 8034f82: 4b51 ldr r3, [pc, #324] ; (80350c8 ) - 8034f84: 2200 movs r2, #0 - 8034f86: 701a strb r2, [r3, #0] + 8034eee: 4b51 ldr r3, [pc, #324] ; (8035034 ) + 8034ef0: 2200 movs r2, #0 + 8034ef2: 701a strb r2, [r3, #0] return 1; - 8034f88: 2301 movs r3, #1 - 8034f8a: e098 b.n 80350be + 8034ef4: 2301 movs r3, #1 + 8034ef6: e098 b.n 803502a } static uint32_t idle_period_start = 0; static uint32_t busy_time = 0; uint32_t handler_start = lv_tick_get(); - 8034f8c: f7fb fc0e bl 80307ac - 8034f90: 60f8 str r0, [r7, #12] + 8034ef8: f7fb fc0e bl 8030718 + 8034efc: 60f8 str r0, [r7, #12] if(handler_start == 0) { - 8034f92: 68fb ldr r3, [r7, #12] - 8034f94: 2b00 cmp r3, #0 - 8034f96: d10b bne.n 8034fb0 + 8034efe: 68fb ldr r3, [r7, #12] + 8034f00: 2b00 cmp r3, #0 + 8034f02: d10b bne.n 8034f1c static uint32_t run_cnt = 0; run_cnt++; - 8034f98: 4b4d ldr r3, [pc, #308] ; (80350d0 ) - 8034f9a: 681b ldr r3, [r3, #0] - 8034f9c: 3301 adds r3, #1 - 8034f9e: 4a4c ldr r2, [pc, #304] ; (80350d0 ) - 8034fa0: 6013 str r3, [r2, #0] + 8034f04: 4b4d ldr r3, [pc, #308] ; (803503c ) + 8034f06: 681b ldr r3, [r3, #0] + 8034f08: 3301 adds r3, #1 + 8034f0a: 4a4c ldr r2, [pc, #304] ; (803503c ) + 8034f0c: 6013 str r3, [r2, #0] if(run_cnt > 100) { - 8034fa2: 4b4b ldr r3, [pc, #300] ; (80350d0 ) - 8034fa4: 681b ldr r3, [r3, #0] - 8034fa6: 2b64 cmp r3, #100 ; 0x64 - 8034fa8: d902 bls.n 8034fb0 + 8034f0e: 4b4b ldr r3, [pc, #300] ; (803503c ) + 8034f10: 681b ldr r3, [r3, #0] + 8034f12: 2b64 cmp r3, #100 ; 0x64 + 8034f14: d902 bls.n 8034f1c run_cnt = 0; - 8034faa: 4b49 ldr r3, [pc, #292] ; (80350d0 ) - 8034fac: 2200 movs r2, #0 - 8034fae: 601a str r2, [r3, #0] + 8034f16: 4b49 ldr r3, [pc, #292] ; (803503c ) + 8034f18: 2200 movs r2, #0 + 8034f1a: 601a str r2, [r3, #0] } /*Run all timer from the list*/ lv_timer_t * next; do { timer_deleted = false; - 8034fb0: 4b48 ldr r3, [pc, #288] ; (80350d4 ) - 8034fb2: 2200 movs r2, #0 - 8034fb4: 701a strb r2, [r3, #0] + 8034f1c: 4b48 ldr r3, [pc, #288] ; (8035040 ) + 8034f1e: 2200 movs r2, #0 + 8034f20: 701a strb r2, [r3, #0] timer_created = false; - 8034fb6: 4b48 ldr r3, [pc, #288] ; (80350d8 ) - 8034fb8: 2200 movs r2, #0 - 8034fba: 701a strb r2, [r3, #0] + 8034f22: 4b48 ldr r3, [pc, #288] ; (8035044 ) + 8034f24: 2200 movs r2, #0 + 8034f26: 701a strb r2, [r3, #0] LV_GC_ROOT(_lv_timer_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_timer_ll)); - 8034fbc: 4847 ldr r0, [pc, #284] ; (80350dc ) - 8034fbe: f7fd f9cd bl 803235c <_lv_ll_get_head> - 8034fc2: 4603 mov r3, r0 - 8034fc4: 4a46 ldr r2, [pc, #280] ; (80350e0 ) - 8034fc6: 6013 str r3, [r2, #0] + 8034f28: 4847 ldr r0, [pc, #284] ; (8035048 ) + 8034f2a: f7fd f9cd bl 80322c8 <_lv_ll_get_head> + 8034f2e: 4603 mov r3, r0 + 8034f30: 4a46 ldr r2, [pc, #280] ; (803504c ) + 8034f32: 6013 str r3, [r2, #0] while(LV_GC_ROOT(_lv_timer_act)) { - 8034fc8: e019 b.n 8034ffe + 8034f34: e019 b.n 8034f6a /*The timer might be deleted if it runs only once ('repeat_count = 1') *So get next element until the current is surely valid*/ next = _lv_ll_get_next(&LV_GC_ROOT(_lv_timer_ll), LV_GC_ROOT(_lv_timer_act)); - 8034fca: 4b45 ldr r3, [pc, #276] ; (80350e0 ) - 8034fcc: 681b ldr r3, [r3, #0] - 8034fce: 4619 mov r1, r3 - 8034fd0: 4842 ldr r0, [pc, #264] ; (80350dc ) - 8034fd2: f7fd f9e3 bl 803239c <_lv_ll_get_next> - 8034fd6: 6178 str r0, [r7, #20] + 8034f36: 4b45 ldr r3, [pc, #276] ; (803504c ) + 8034f38: 681b ldr r3, [r3, #0] + 8034f3a: 4619 mov r1, r3 + 8034f3c: 4842 ldr r0, [pc, #264] ; (8035048 ) + 8034f3e: f7fd f9e3 bl 8032308 <_lv_ll_get_next> + 8034f42: 6178 str r0, [r7, #20] if(lv_timer_exec(LV_GC_ROOT(_lv_timer_act))) { - 8034fd8: 4b41 ldr r3, [pc, #260] ; (80350e0 ) - 8034fda: 681b ldr r3, [r3, #0] - 8034fdc: 4618 mov r0, r3 - 8034fde: f000 f913 bl 8035208 - 8034fe2: 4603 mov r3, r0 - 8034fe4: 2b00 cmp r3, #0 - 8034fe6: d007 beq.n 8034ff8 + 8034f44: 4b41 ldr r3, [pc, #260] ; (803504c ) + 8034f46: 681b ldr r3, [r3, #0] + 8034f48: 4618 mov r0, r3 + 8034f4a: f000 f913 bl 8035174 + 8034f4e: 4603 mov r3, r0 + 8034f50: 2b00 cmp r3, #0 + 8034f52: d007 beq.n 8034f64 /*If a timer was created or deleted then this or the next item might be corrupted*/ if(timer_created || timer_deleted) { - 8034fe8: 4b3b ldr r3, [pc, #236] ; (80350d8 ) - 8034fea: 781b ldrb r3, [r3, #0] - 8034fec: 2b00 cmp r3, #0 - 8034fee: d10a bne.n 8035006 - 8034ff0: 4b38 ldr r3, [pc, #224] ; (80350d4 ) - 8034ff2: 781b ldrb r3, [r3, #0] - 8034ff4: 2b00 cmp r3, #0 - 8034ff6: d106 bne.n 8035006 + 8034f54: 4b3b ldr r3, [pc, #236] ; (8035044 ) + 8034f56: 781b ldrb r3, [r3, #0] + 8034f58: 2b00 cmp r3, #0 + 8034f5a: d10a bne.n 8034f72 + 8034f5c: 4b38 ldr r3, [pc, #224] ; (8035040 ) + 8034f5e: 781b ldrb r3, [r3, #0] + 8034f60: 2b00 cmp r3, #0 + 8034f62: d106 bne.n 8034f72 TIMER_TRACE("Start from the first timer again because a timer was created or deleted"); break; } } LV_GC_ROOT(_lv_timer_act) = next; /*Load the next timer*/ - 8034ff8: 4a39 ldr r2, [pc, #228] ; (80350e0 ) - 8034ffa: 697b ldr r3, [r7, #20] - 8034ffc: 6013 str r3, [r2, #0] + 8034f64: 4a39 ldr r2, [pc, #228] ; (803504c ) + 8034f66: 697b ldr r3, [r7, #20] + 8034f68: 6013 str r3, [r2, #0] while(LV_GC_ROOT(_lv_timer_act)) { - 8034ffe: 4b38 ldr r3, [pc, #224] ; (80350e0 ) - 8035000: 681b ldr r3, [r3, #0] - 8035002: 2b00 cmp r3, #0 - 8035004: d1e1 bne.n 8034fca + 8034f6a: 4b38 ldr r3, [pc, #224] ; (803504c ) + 8034f6c: 681b ldr r3, [r3, #0] + 8034f6e: 2b00 cmp r3, #0 + 8034f70: d1e1 bne.n 8034f36 } } while(LV_GC_ROOT(_lv_timer_act)); - 8035006: 4b36 ldr r3, [pc, #216] ; (80350e0 ) - 8035008: 681b ldr r3, [r3, #0] - 803500a: 2b00 cmp r3, #0 - 803500c: d1d0 bne.n 8034fb0 + 8034f72: 4b36 ldr r3, [pc, #216] ; (803504c ) + 8034f74: 681b ldr r3, [r3, #0] + 8034f76: 2b00 cmp r3, #0 + 8034f78: d1d0 bne.n 8034f1c uint32_t time_till_next = LV_NO_TIMER_READY; - 803500e: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 8035012: 613b str r3, [r7, #16] + 8034f7a: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 8034f7e: 613b str r3, [r7, #16] next = _lv_ll_get_head(&LV_GC_ROOT(_lv_timer_ll)); - 8035014: 4831 ldr r0, [pc, #196] ; (80350dc ) - 8035016: f7fd f9a1 bl 803235c <_lv_ll_get_head> - 803501a: 6178 str r0, [r7, #20] + 8034f80: 4831 ldr r0, [pc, #196] ; (8035048 ) + 8034f82: f7fd f9a1 bl 80322c8 <_lv_ll_get_head> + 8034f86: 6178 str r0, [r7, #20] while(next) { - 803501c: e015 b.n 803504a + 8034f88: e015 b.n 8034fb6 if(!next->paused) { - 803501e: 697b ldr r3, [r7, #20] - 8035020: 7d1b ldrb r3, [r3, #20] - 8035022: f003 0301 and.w r3, r3, #1 - 8035026: b2db uxtb r3, r3 - 8035028: 2b00 cmp r3, #0 - 803502a: d109 bne.n 8035040 + 8034f8a: 697b ldr r3, [r7, #20] + 8034f8c: 7d1b ldrb r3, [r3, #20] + 8034f8e: f003 0301 and.w r3, r3, #1 + 8034f92: b2db uxtb r3, r3 + 8034f94: 2b00 cmp r3, #0 + 8034f96: d109 bne.n 8034fac uint32_t delay = lv_timer_time_remaining(next); - 803502c: 6978 ldr r0, [r7, #20] - 803502e: f000 f933 bl 8035298 - 8035032: 6078 str r0, [r7, #4] + 8034f98: 6978 ldr r0, [r7, #20] + 8034f9a: f000 f933 bl 8035204 + 8034f9e: 6078 str r0, [r7, #4] if(delay < time_till_next) - 8035034: 687a ldr r2, [r7, #4] - 8035036: 693b ldr r3, [r7, #16] - 8035038: 429a cmp r2, r3 - 803503a: d201 bcs.n 8035040 + 8034fa0: 687a ldr r2, [r7, #4] + 8034fa2: 693b ldr r3, [r7, #16] + 8034fa4: 429a cmp r2, r3 + 8034fa6: d201 bcs.n 8034fac time_till_next = delay; - 803503c: 687b ldr r3, [r7, #4] - 803503e: 613b str r3, [r7, #16] + 8034fa8: 687b ldr r3, [r7, #4] + 8034faa: 613b str r3, [r7, #16] } next = _lv_ll_get_next(&LV_GC_ROOT(_lv_timer_ll), next); /*Find the next timer*/ - 8035040: 6979 ldr r1, [r7, #20] - 8035042: 4826 ldr r0, [pc, #152] ; (80350dc ) - 8035044: f7fd f9aa bl 803239c <_lv_ll_get_next> - 8035048: 6178 str r0, [r7, #20] + 8034fac: 6979 ldr r1, [r7, #20] + 8034fae: 4826 ldr r0, [pc, #152] ; (8035048 ) + 8034fb0: f7fd f9aa bl 8032308 <_lv_ll_get_next> + 8034fb4: 6178 str r0, [r7, #20] while(next) { - 803504a: 697b ldr r3, [r7, #20] - 803504c: 2b00 cmp r3, #0 - 803504e: d1e6 bne.n 803501e + 8034fb6: 697b ldr r3, [r7, #20] + 8034fb8: 2b00 cmp r3, #0 + 8034fba: d1e6 bne.n 8034f8a } busy_time += lv_tick_elaps(handler_start); - 8035050: 68f8 ldr r0, [r7, #12] - 8035052: f7fb fbc3 bl 80307dc - 8035056: 4602 mov r2, r0 - 8035058: 4b22 ldr r3, [pc, #136] ; (80350e4 ) - 803505a: 681b ldr r3, [r3, #0] - 803505c: 4413 add r3, r2 - 803505e: 4a21 ldr r2, [pc, #132] ; (80350e4 ) - 8035060: 6013 str r3, [r2, #0] + 8034fbc: 68f8 ldr r0, [r7, #12] + 8034fbe: f7fb fbc3 bl 8030748 + 8034fc2: 4602 mov r2, r0 + 8034fc4: 4b22 ldr r3, [pc, #136] ; (8035050 ) + 8034fc6: 681b ldr r3, [r3, #0] + 8034fc8: 4413 add r3, r2 + 8034fca: 4a21 ldr r2, [pc, #132] ; (8035050 ) + 8034fcc: 6013 str r3, [r2, #0] uint32_t idle_period_time = lv_tick_elaps(idle_period_start); - 8035062: 4b21 ldr r3, [pc, #132] ; (80350e8 ) - 8035064: 681b ldr r3, [r3, #0] - 8035066: 4618 mov r0, r3 - 8035068: f7fb fbb8 bl 80307dc - 803506c: 60b8 str r0, [r7, #8] + 8034fce: 4b21 ldr r3, [pc, #132] ; (8035054 ) + 8034fd0: 681b ldr r3, [r3, #0] + 8034fd2: 4618 mov r0, r3 + 8034fd4: f7fb fbb8 bl 8030748 + 8034fd8: 60b8 str r0, [r7, #8] if(idle_period_time >= IDLE_MEAS_PERIOD) { - 803506e: 68bb ldr r3, [r7, #8] - 8035070: f5b3 7ffa cmp.w r3, #500 ; 0x1f4 - 8035074: d31f bcc.n 80350b6 + 8034fda: 68bb ldr r3, [r7, #8] + 8034fdc: f5b3 7ffa cmp.w r3, #500 ; 0x1f4 + 8034fe0: d31f bcc.n 8035022 idle_last = (busy_time * 100) / idle_period_time; /*Calculate the busy percentage*/ - 8035076: 4b1b ldr r3, [pc, #108] ; (80350e4 ) - 8035078: 681b ldr r3, [r3, #0] - 803507a: 2264 movs r2, #100 ; 0x64 - 803507c: fb03 f202 mul.w r2, r3, r2 - 8035080: 68bb ldr r3, [r7, #8] - 8035082: fbb2 f3f3 udiv r3, r2, r3 - 8035086: b2da uxtb r2, r3 - 8035088: 4b18 ldr r3, [pc, #96] ; (80350ec ) - 803508a: 701a strb r2, [r3, #0] + 8034fe2: 4b1b ldr r3, [pc, #108] ; (8035050 ) + 8034fe4: 681b ldr r3, [r3, #0] + 8034fe6: 2264 movs r2, #100 ; 0x64 + 8034fe8: fb03 f202 mul.w r2, r3, r2 + 8034fec: 68bb ldr r3, [r7, #8] + 8034fee: fbb2 f3f3 udiv r3, r2, r3 + 8034ff2: b2da uxtb r2, r3 + 8034ff4: 4b18 ldr r3, [pc, #96] ; (8035058 ) + 8034ff6: 701a strb r2, [r3, #0] idle_last = idle_last > 100 ? 0 : 100 - idle_last; /*But we need idle time*/ - 803508c: 4b17 ldr r3, [pc, #92] ; (80350ec ) - 803508e: 781b ldrb r3, [r3, #0] - 8035090: 2b64 cmp r3, #100 ; 0x64 - 8035092: d805 bhi.n 80350a0 - 8035094: 4b15 ldr r3, [pc, #84] ; (80350ec ) - 8035096: 781b ldrb r3, [r3, #0] - 8035098: f1c3 0364 rsb r3, r3, #100 ; 0x64 - 803509c: b2db uxtb r3, r3 - 803509e: e000 b.n 80350a2 - 80350a0: 2300 movs r3, #0 - 80350a2: 4a12 ldr r2, [pc, #72] ; (80350ec ) - 80350a4: 7013 strb r3, [r2, #0] + 8034ff8: 4b17 ldr r3, [pc, #92] ; (8035058 ) + 8034ffa: 781b ldrb r3, [r3, #0] + 8034ffc: 2b64 cmp r3, #100 ; 0x64 + 8034ffe: d805 bhi.n 803500c + 8035000: 4b15 ldr r3, [pc, #84] ; (8035058 ) + 8035002: 781b ldrb r3, [r3, #0] + 8035004: f1c3 0364 rsb r3, r3, #100 ; 0x64 + 8035008: b2db uxtb r3, r3 + 803500a: e000 b.n 803500e + 803500c: 2300 movs r3, #0 + 803500e: 4a12 ldr r2, [pc, #72] ; (8035058 ) + 8035010: 7013 strb r3, [r2, #0] busy_time = 0; - 80350a6: 4b0f ldr r3, [pc, #60] ; (80350e4 ) - 80350a8: 2200 movs r2, #0 - 80350aa: 601a str r2, [r3, #0] + 8035012: 4b0f ldr r3, [pc, #60] ; (8035050 ) + 8035014: 2200 movs r2, #0 + 8035016: 601a str r2, [r3, #0] idle_period_start = lv_tick_get(); - 80350ac: f7fb fb7e bl 80307ac - 80350b0: 4603 mov r3, r0 - 80350b2: 4a0d ldr r2, [pc, #52] ; (80350e8 ) - 80350b4: 6013 str r3, [r2, #0] + 8035018: f7fb fb7e bl 8030718 + 803501c: 4603 mov r3, r0 + 803501e: 4a0d ldr r2, [pc, #52] ; (8035054 ) + 8035020: 6013 str r3, [r2, #0] } already_running = false; /*Release the mutex*/ - 80350b6: 4b04 ldr r3, [pc, #16] ; (80350c8 ) - 80350b8: 2200 movs r2, #0 - 80350ba: 701a strb r2, [r3, #0] + 8035022: 4b04 ldr r3, [pc, #16] ; (8035034 ) + 8035024: 2200 movs r2, #0 + 8035026: 701a strb r2, [r3, #0] TIMER_TRACE("finished (%d ms until the next timer call)", time_till_next); return time_till_next; - 80350bc: 693b ldr r3, [r7, #16] + 8035028: 693b ldr r3, [r7, #16] } - 80350be: 4618 mov r0, r3 - 80350c0: 3718 adds r7, #24 - 80350c2: 46bd mov sp, r7 - 80350c4: bd80 pop {r7, pc} - 80350c6: bf00 nop - 80350c8: 20005f18 .word 0x20005f18 - 80350cc: 20005f14 .word 0x20005f14 - 80350d0: 20005f1c .word 0x20005f1c - 80350d4: 20005f16 .word 0x20005f16 - 80350d8: 20005f17 .word 0x20005f17 - 80350dc: 20001d04 .word 0x20001d04 - 80350e0: 20001d94 .word 0x20001d94 - 80350e4: 20005f20 .word 0x20005f20 - 80350e8: 20005f24 .word 0x20005f24 - 80350ec: 20005f15 .word 0x20005f15 + 803502a: 4618 mov r0, r3 + 803502c: 3718 adds r7, #24 + 803502e: 46bd mov sp, r7 + 8035030: bd80 pop {r7, pc} + 8035032: bf00 nop + 8035034: 20005f18 .word 0x20005f18 + 8035038: 20005f14 .word 0x20005f14 + 803503c: 20005f1c .word 0x20005f1c + 8035040: 20005f16 .word 0x20005f16 + 8035044: 20005f17 .word 0x20005f17 + 8035048: 20001d04 .word 0x20001d04 + 803504c: 20001d94 .word 0x20001d94 + 8035050: 20005f20 .word 0x20005f20 + 8035054: 20005f24 .word 0x20005f24 + 8035058: 20005f15 .word 0x20005f15 -080350f0 : +0803505c : * @param period call period in ms unit * @param user_data custom parameter * @return pointer to the new timer */ lv_timer_t * lv_timer_create(lv_timer_cb_t timer_xcb, uint32_t period, void * user_data) { - 80350f0: b580 push {r7, lr} - 80350f2: b086 sub sp, #24 - 80350f4: af00 add r7, sp, #0 - 80350f6: 60f8 str r0, [r7, #12] - 80350f8: 60b9 str r1, [r7, #8] - 80350fa: 607a str r2, [r7, #4] + 803505c: b580 push {r7, lr} + 803505e: b086 sub sp, #24 + 8035060: af00 add r7, sp, #0 + 8035062: 60f8 str r0, [r7, #12] + 8035064: 60b9 str r1, [r7, #8] + 8035066: 607a str r2, [r7, #4] lv_timer_t * new_timer = NULL; - 80350fc: 2300 movs r3, #0 - 80350fe: 617b str r3, [r7, #20] + 8035068: 2300 movs r3, #0 + 803506a: 617b str r3, [r7, #20] new_timer = _lv_ll_ins_head(&LV_GC_ROOT(_lv_timer_ll)); - 8035100: 4815 ldr r0, [pc, #84] ; (8035158 ) - 8035102: f7fd f845 bl 8032190 <_lv_ll_ins_head> - 8035106: 6178 str r0, [r7, #20] + 803506c: 4815 ldr r0, [pc, #84] ; (80350c4 ) + 803506e: f7fd f845 bl 80320fc <_lv_ll_ins_head> + 8035072: 6178 str r0, [r7, #20] LV_ASSERT_MALLOC(new_timer); - 8035108: 697b ldr r3, [r7, #20] - 803510a: 2b00 cmp r3, #0 - 803510c: d100 bne.n 8035110 - 803510e: e7fe b.n 803510e + 8035074: 697b ldr r3, [r7, #20] + 8035076: 2b00 cmp r3, #0 + 8035078: d100 bne.n 803507c + 803507a: e7fe b.n 803507a if(new_timer == NULL) return NULL; - 8035110: 697b ldr r3, [r7, #20] - 8035112: 2b00 cmp r3, #0 - 8035114: d101 bne.n 803511a - 8035116: 2300 movs r3, #0 - 8035118: e01a b.n 8035150 + 803507c: 697b ldr r3, [r7, #20] + 803507e: 2b00 cmp r3, #0 + 8035080: d101 bne.n 8035086 + 8035082: 2300 movs r3, #0 + 8035084: e01a b.n 80350bc new_timer->period = period; - 803511a: 697b ldr r3, [r7, #20] - 803511c: 68ba ldr r2, [r7, #8] - 803511e: 601a str r2, [r3, #0] + 8035086: 697b ldr r3, [r7, #20] + 8035088: 68ba ldr r2, [r7, #8] + 803508a: 601a str r2, [r3, #0] new_timer->timer_cb = timer_xcb; - 8035120: 697b ldr r3, [r7, #20] - 8035122: 68fa ldr r2, [r7, #12] - 8035124: 609a str r2, [r3, #8] + 803508c: 697b ldr r3, [r7, #20] + 803508e: 68fa ldr r2, [r7, #12] + 8035090: 609a str r2, [r3, #8] new_timer->repeat_count = -1; - 8035126: 697b ldr r3, [r7, #20] - 8035128: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 803512c: 611a str r2, [r3, #16] + 8035092: 697b ldr r3, [r7, #20] + 8035094: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 8035098: 611a str r2, [r3, #16] new_timer->paused = 0; - 803512e: 697a ldr r2, [r7, #20] - 8035130: 7d13 ldrb r3, [r2, #20] - 8035132: f36f 0300 bfc r3, #0, #1 - 8035136: 7513 strb r3, [r2, #20] + 803509a: 697a ldr r2, [r7, #20] + 803509c: 7d13 ldrb r3, [r2, #20] + 803509e: f36f 0300 bfc r3, #0, #1 + 80350a2: 7513 strb r3, [r2, #20] new_timer->last_run = lv_tick_get(); - 8035138: f7fb fb38 bl 80307ac - 803513c: 4602 mov r2, r0 - 803513e: 697b ldr r3, [r7, #20] - 8035140: 605a str r2, [r3, #4] + 80350a4: f7fb fb38 bl 8030718 + 80350a8: 4602 mov r2, r0 + 80350aa: 697b ldr r3, [r7, #20] + 80350ac: 605a str r2, [r3, #4] new_timer->user_data = user_data; - 8035142: 697b ldr r3, [r7, #20] - 8035144: 687a ldr r2, [r7, #4] - 8035146: 60da str r2, [r3, #12] + 80350ae: 697b ldr r3, [r7, #20] + 80350b0: 687a ldr r2, [r7, #4] + 80350b2: 60da str r2, [r3, #12] timer_created = true; - 8035148: 4b04 ldr r3, [pc, #16] ; (803515c ) - 803514a: 2201 movs r2, #1 - 803514c: 701a strb r2, [r3, #0] + 80350b4: 4b04 ldr r3, [pc, #16] ; (80350c8 ) + 80350b6: 2201 movs r2, #1 + 80350b8: 701a strb r2, [r3, #0] return new_timer; - 803514e: 697b ldr r3, [r7, #20] + 80350ba: 697b ldr r3, [r7, #20] } - 8035150: 4618 mov r0, r3 - 8035152: 3718 adds r7, #24 - 8035154: 46bd mov sp, r7 - 8035156: bd80 pop {r7, pc} - 8035158: 20001d04 .word 0x20001d04 - 803515c: 20005f17 .word 0x20005f17 + 80350bc: 4618 mov r0, r3 + 80350be: 3718 adds r7, #24 + 80350c0: 46bd mov sp, r7 + 80350c2: bd80 pop {r7, pc} + 80350c4: 20001d04 .word 0x20001d04 + 80350c8: 20005f17 .word 0x20005f17 -08035160 : +080350cc : /** * Delete a lv_timer * @param timer pointer to timer created by timer */ void lv_timer_del(lv_timer_t * timer) { - 8035160: b580 push {r7, lr} - 8035162: b082 sub sp, #8 - 8035164: af00 add r7, sp, #0 - 8035166: 6078 str r0, [r7, #4] + 80350cc: b580 push {r7, lr} + 80350ce: b082 sub sp, #8 + 80350d0: af00 add r7, sp, #0 + 80350d2: 6078 str r0, [r7, #4] _lv_ll_remove(&LV_GC_ROOT(_lv_timer_ll), timer); - 8035168: 6879 ldr r1, [r7, #4] - 803516a: 4806 ldr r0, [pc, #24] ; (8035184 ) - 803516c: f7fd f878 bl 8032260 <_lv_ll_remove> + 80350d4: 6879 ldr r1, [r7, #4] + 80350d6: 4806 ldr r0, [pc, #24] ; (80350f0 ) + 80350d8: f7fd f878 bl 80321cc <_lv_ll_remove> timer_deleted = true; - 8035170: 4b05 ldr r3, [pc, #20] ; (8035188 ) - 8035172: 2201 movs r2, #1 - 8035174: 701a strb r2, [r3, #0] + 80350dc: 4b05 ldr r3, [pc, #20] ; (80350f4 ) + 80350de: 2201 movs r2, #1 + 80350e0: 701a strb r2, [r3, #0] lv_mem_free(timer); - 8035176: 6878 ldr r0, [r7, #4] - 8035178: f7fd fbb0 bl 80328dc + 80350e2: 6878 ldr r0, [r7, #4] + 80350e4: f7fd fbb0 bl 8032848 } - 803517c: bf00 nop - 803517e: 3708 adds r7, #8 - 8035180: 46bd mov sp, r7 - 8035182: bd80 pop {r7, pc} - 8035184: 20001d04 .word 0x20001d04 - 8035188: 20005f16 .word 0x20005f16 + 80350e8: bf00 nop + 80350ea: 3708 adds r7, #8 + 80350ec: 46bd mov sp, r7 + 80350ee: bd80 pop {r7, pc} + 80350f0: 20001d04 .word 0x20001d04 + 80350f4: 20005f16 .word 0x20005f16 -0803518c : +080350f8 : /** * Pause/resume a timer. * @param timer pointer to an lv_timer */ void lv_timer_pause(lv_timer_t * timer) { - 803518c: b480 push {r7} - 803518e: b083 sub sp, #12 - 8035190: af00 add r7, sp, #0 - 8035192: 6078 str r0, [r7, #4] + 80350f8: b480 push {r7} + 80350fa: b083 sub sp, #12 + 80350fc: af00 add r7, sp, #0 + 80350fe: 6078 str r0, [r7, #4] timer->paused = true; - 8035194: 687a ldr r2, [r7, #4] - 8035196: 7d13 ldrb r3, [r2, #20] - 8035198: f043 0301 orr.w r3, r3, #1 - 803519c: 7513 strb r3, [r2, #20] + 8035100: 687a ldr r2, [r7, #4] + 8035102: 7d13 ldrb r3, [r2, #20] + 8035104: f043 0301 orr.w r3, r3, #1 + 8035108: 7513 strb r3, [r2, #20] } - 803519e: bf00 nop - 80351a0: 370c adds r7, #12 - 80351a2: 46bd mov sp, r7 - 80351a4: bc80 pop {r7} - 80351a6: 4770 bx lr + 803510a: bf00 nop + 803510c: 370c adds r7, #12 + 803510e: 46bd mov sp, r7 + 8035110: bc80 pop {r7} + 8035112: 4770 bx lr -080351a8 : +08035114 : void lv_timer_resume(lv_timer_t * timer) { - 80351a8: b480 push {r7} - 80351aa: b083 sub sp, #12 - 80351ac: af00 add r7, sp, #0 - 80351ae: 6078 str r0, [r7, #4] + 8035114: b480 push {r7} + 8035116: b083 sub sp, #12 + 8035118: af00 add r7, sp, #0 + 803511a: 6078 str r0, [r7, #4] timer->paused = false; - 80351b0: 687a ldr r2, [r7, #4] - 80351b2: 7d13 ldrb r3, [r2, #20] - 80351b4: f36f 0300 bfc r3, #0, #1 - 80351b8: 7513 strb r3, [r2, #20] + 803511c: 687a ldr r2, [r7, #4] + 803511e: 7d13 ldrb r3, [r2, #20] + 8035120: f36f 0300 bfc r3, #0, #1 + 8035124: 7513 strb r3, [r2, #20] } - 80351ba: bf00 nop - 80351bc: 370c adds r7, #12 - 80351be: 46bd mov sp, r7 - 80351c0: bc80 pop {r7} - 80351c2: 4770 bx lr + 8035126: bf00 nop + 8035128: 370c adds r7, #12 + 803512a: 46bd mov sp, r7 + 803512c: bc80 pop {r7} + 803512e: 4770 bx lr -080351c4 : +08035130 : /** * Make a lv_timer ready. It will not wait its period. * @param timer pointer to a lv_timer. */ void lv_timer_ready(lv_timer_t * timer) { - 80351c4: b580 push {r7, lr} - 80351c6: b082 sub sp, #8 - 80351c8: af00 add r7, sp, #0 - 80351ca: 6078 str r0, [r7, #4] + 8035130: b580 push {r7, lr} + 8035132: b082 sub sp, #8 + 8035134: af00 add r7, sp, #0 + 8035136: 6078 str r0, [r7, #4] timer->last_run = lv_tick_get() - timer->period - 1; - 80351cc: f7fb faee bl 80307ac - 80351d0: 4602 mov r2, r0 - 80351d2: 687b ldr r3, [r7, #4] - 80351d4: 681b ldr r3, [r3, #0] - 80351d6: 1ad3 subs r3, r2, r3 - 80351d8: 1e5a subs r2, r3, #1 - 80351da: 687b ldr r3, [r7, #4] - 80351dc: 605a str r2, [r3, #4] + 8035138: f7fb faee bl 8030718 + 803513c: 4602 mov r2, r0 + 803513e: 687b ldr r3, [r7, #4] + 8035140: 681b ldr r3, [r3, #0] + 8035142: 1ad3 subs r3, r2, r3 + 8035144: 1e5a subs r2, r3, #1 + 8035146: 687b ldr r3, [r7, #4] + 8035148: 605a str r2, [r3, #4] } - 80351de: bf00 nop - 80351e0: 3708 adds r7, #8 - 80351e2: 46bd mov sp, r7 - 80351e4: bd80 pop {r7, pc} + 803514a: bf00 nop + 803514c: 3708 adds r7, #8 + 803514e: 46bd mov sp, r7 + 8035150: bd80 pop {r7, pc} ... -080351e8 : +08035154 : /** * Enable or disable the whole lv_timer handling * @param en true: lv_timer handling is running, false: lv_timer handling is suspended */ void lv_timer_enable(bool en) { - 80351e8: b480 push {r7} - 80351ea: b083 sub sp, #12 - 80351ec: af00 add r7, sp, #0 - 80351ee: 4603 mov r3, r0 - 80351f0: 71fb strb r3, [r7, #7] + 8035154: b480 push {r7} + 8035156: b083 sub sp, #12 + 8035158: af00 add r7, sp, #0 + 803515a: 4603 mov r3, r0 + 803515c: 71fb strb r3, [r7, #7] lv_timer_run = en; - 80351f2: 4a04 ldr r2, [pc, #16] ; (8035204 ) - 80351f4: 79fb ldrb r3, [r7, #7] - 80351f6: 7013 strb r3, [r2, #0] + 803515e: 4a04 ldr r2, [pc, #16] ; (8035170 ) + 8035160: 79fb ldrb r3, [r7, #7] + 8035162: 7013 strb r3, [r2, #0] } - 80351f8: bf00 nop - 80351fa: 370c adds r7, #12 - 80351fc: 46bd mov sp, r7 - 80351fe: bc80 pop {r7} - 8035200: 4770 bx lr - 8035202: bf00 nop - 8035204: 20005f14 .word 0x20005f14 + 8035164: bf00 nop + 8035166: 370c adds r7, #12 + 8035168: 46bd mov sp, r7 + 803516a: bc80 pop {r7} + 803516c: 4770 bx lr + 803516e: bf00 nop + 8035170: 20005f14 .word 0x20005f14 -08035208 : +08035174 : * Execute timer if its remaining time is zero * @param timer pointer to lv_timer * @return true: execute, false: not executed */ static bool lv_timer_exec(lv_timer_t * timer) { - 8035208: b580 push {r7, lr} - 803520a: b084 sub sp, #16 - 803520c: af00 add r7, sp, #0 - 803520e: 6078 str r0, [r7, #4] + 8035174: b580 push {r7, lr} + 8035176: b084 sub sp, #16 + 8035178: af00 add r7, sp, #0 + 803517a: 6078 str r0, [r7, #4] if(timer->paused) return false; - 8035210: 687b ldr r3, [r7, #4] - 8035212: 7d1b ldrb r3, [r3, #20] - 8035214: f003 0301 and.w r3, r3, #1 - 8035218: b2db uxtb r3, r3 - 803521a: 2b00 cmp r3, #0 - 803521c: d001 beq.n 8035222 - 803521e: 2300 movs r3, #0 - 8035220: e034 b.n 803528c + 803517c: 687b ldr r3, [r7, #4] + 803517e: 7d1b ldrb r3, [r3, #20] + 8035180: f003 0301 and.w r3, r3, #1 + 8035184: b2db uxtb r3, r3 + 8035186: 2b00 cmp r3, #0 + 8035188: d001 beq.n 803518e + 803518a: 2300 movs r3, #0 + 803518c: e034 b.n 80351f8 bool exec = false; - 8035222: 2300 movs r3, #0 - 8035224: 73fb strb r3, [r7, #15] + 803518e: 2300 movs r3, #0 + 8035190: 73fb strb r3, [r7, #15] if(lv_timer_time_remaining(timer) == 0) { - 8035226: 6878 ldr r0, [r7, #4] - 8035228: f000 f836 bl 8035298 - 803522c: 4603 mov r3, r0 - 803522e: 2b00 cmp r3, #0 - 8035230: d11d bne.n 803526e + 8035192: 6878 ldr r0, [r7, #4] + 8035194: f000 f836 bl 8035204 + 8035198: 4603 mov r3, r0 + 803519a: 2b00 cmp r3, #0 + 803519c: d11d bne.n 80351da /* Decrement the repeat count before executing the timer_cb. * If any timer is deleted `if(timer->repeat_count == 0)` is not executed below * but at least the repeat count is zero and the timer can be deleted in the next round*/ int32_t original_repeat_count = timer->repeat_count; - 8035232: 687b ldr r3, [r7, #4] - 8035234: 691b ldr r3, [r3, #16] - 8035236: 60bb str r3, [r7, #8] + 803519e: 687b ldr r3, [r7, #4] + 80351a0: 691b ldr r3, [r3, #16] + 80351a2: 60bb str r3, [r7, #8] if(timer->repeat_count > 0) timer->repeat_count--; - 8035238: 687b ldr r3, [r7, #4] - 803523a: 691b ldr r3, [r3, #16] - 803523c: 2b00 cmp r3, #0 - 803523e: dd04 ble.n 803524a - 8035240: 687b ldr r3, [r7, #4] - 8035242: 691b ldr r3, [r3, #16] - 8035244: 1e5a subs r2, r3, #1 - 8035246: 687b ldr r3, [r7, #4] - 8035248: 611a str r2, [r3, #16] + 80351a4: 687b ldr r3, [r7, #4] + 80351a6: 691b ldr r3, [r3, #16] + 80351a8: 2b00 cmp r3, #0 + 80351aa: dd04 ble.n 80351b6 + 80351ac: 687b ldr r3, [r7, #4] + 80351ae: 691b ldr r3, [r3, #16] + 80351b0: 1e5a subs r2, r3, #1 + 80351b2: 687b ldr r3, [r7, #4] + 80351b4: 611a str r2, [r3, #16] timer->last_run = lv_tick_get(); - 803524a: f7fb faaf bl 80307ac - 803524e: 4602 mov r2, r0 - 8035250: 687b ldr r3, [r7, #4] - 8035252: 605a str r2, [r3, #4] + 80351b6: f7fb faaf bl 8030718 + 80351ba: 4602 mov r2, r0 + 80351bc: 687b ldr r3, [r7, #4] + 80351be: 605a str r2, [r3, #4] TIMER_TRACE("calling timer callback: %p", *((void **)&timer->timer_cb)); if(timer->timer_cb && original_repeat_count != 0) timer->timer_cb(timer); - 8035254: 687b ldr r3, [r7, #4] - 8035256: 689b ldr r3, [r3, #8] - 8035258: 2b00 cmp r3, #0 - 803525a: d006 beq.n 803526a - 803525c: 68bb ldr r3, [r7, #8] - 803525e: 2b00 cmp r3, #0 - 8035260: d003 beq.n 803526a - 8035262: 687b ldr r3, [r7, #4] - 8035264: 689b ldr r3, [r3, #8] - 8035266: 6878 ldr r0, [r7, #4] - 8035268: 4798 blx r3 + 80351c0: 687b ldr r3, [r7, #4] + 80351c2: 689b ldr r3, [r3, #8] + 80351c4: 2b00 cmp r3, #0 + 80351c6: d006 beq.n 80351d6 + 80351c8: 68bb ldr r3, [r7, #8] + 80351ca: 2b00 cmp r3, #0 + 80351cc: d003 beq.n 80351d6 + 80351ce: 687b ldr r3, [r7, #4] + 80351d0: 689b ldr r3, [r3, #8] + 80351d2: 6878 ldr r0, [r7, #4] + 80351d4: 4798 blx r3 TIMER_TRACE("timer callback %p finished", *((void **)&timer->timer_cb)); LV_ASSERT_MEM_INTEGRITY(); exec = true; - 803526a: 2301 movs r3, #1 - 803526c: 73fb strb r3, [r7, #15] + 80351d6: 2301 movs r3, #1 + 80351d8: 73fb strb r3, [r7, #15] } if(timer_deleted == false) { /*The timer might be deleted by itself as well*/ - 803526e: 4b09 ldr r3, [pc, #36] ; (8035294 ) - 8035270: 781b ldrb r3, [r3, #0] - 8035272: f083 0301 eor.w r3, r3, #1 - 8035276: b2db uxtb r3, r3 - 8035278: 2b00 cmp r3, #0 - 803527a: d006 beq.n 803528a + 80351da: 4b09 ldr r3, [pc, #36] ; (8035200 ) + 80351dc: 781b ldrb r3, [r3, #0] + 80351de: f083 0301 eor.w r3, r3, #1 + 80351e2: b2db uxtb r3, r3 + 80351e4: 2b00 cmp r3, #0 + 80351e6: d006 beq.n 80351f6 if(timer->repeat_count == 0) { /*The repeat count is over, delete the timer*/ - 803527c: 687b ldr r3, [r7, #4] - 803527e: 691b ldr r3, [r3, #16] - 8035280: 2b00 cmp r3, #0 - 8035282: d102 bne.n 803528a + 80351e8: 687b ldr r3, [r7, #4] + 80351ea: 691b ldr r3, [r3, #16] + 80351ec: 2b00 cmp r3, #0 + 80351ee: d102 bne.n 80351f6 TIMER_TRACE("deleting timer with %p callback because the repeat count is over", *((void **)&timer->timer_cb)); lv_timer_del(timer); - 8035284: 6878 ldr r0, [r7, #4] - 8035286: f7ff ff6b bl 8035160 + 80351f0: 6878 ldr r0, [r7, #4] + 80351f2: f7ff ff6b bl 80350cc } } return exec; - 803528a: 7bfb ldrb r3, [r7, #15] + 80351f6: 7bfb ldrb r3, [r7, #15] } - 803528c: 4618 mov r0, r3 - 803528e: 3710 adds r7, #16 - 8035290: 46bd mov sp, r7 - 8035292: bd80 pop {r7, pc} - 8035294: 20005f16 .word 0x20005f16 + 80351f8: 4618 mov r0, r3 + 80351fa: 3710 adds r7, #16 + 80351fc: 46bd mov sp, r7 + 80351fe: bd80 pop {r7, pc} + 8035200: 20005f16 .word 0x20005f16 -08035298 : +08035204 : * Find out how much time remains before a timer must be run. * @param timer pointer to lv_timer * @return the time remaining, or 0 if it needs to be run again */ static uint32_t lv_timer_time_remaining(lv_timer_t * timer) { - 8035298: b580 push {r7, lr} - 803529a: b084 sub sp, #16 - 803529c: af00 add r7, sp, #0 - 803529e: 6078 str r0, [r7, #4] + 8035204: b580 push {r7, lr} + 8035206: b084 sub sp, #16 + 8035208: af00 add r7, sp, #0 + 803520a: 6078 str r0, [r7, #4] /*Check if at least 'period' time elapsed*/ uint32_t elp = lv_tick_elaps(timer->last_run); - 80352a0: 687b ldr r3, [r7, #4] - 80352a2: 685b ldr r3, [r3, #4] - 80352a4: 4618 mov r0, r3 - 80352a6: f7fb fa99 bl 80307dc - 80352aa: 60f8 str r0, [r7, #12] + 803520c: 687b ldr r3, [r7, #4] + 803520e: 685b ldr r3, [r3, #4] + 8035210: 4618 mov r0, r3 + 8035212: f7fb fa99 bl 8030748 + 8035216: 60f8 str r0, [r7, #12] if(elp >= timer->period) - 80352ac: 687b ldr r3, [r7, #4] - 80352ae: 681b ldr r3, [r3, #0] - 80352b0: 68fa ldr r2, [r7, #12] - 80352b2: 429a cmp r2, r3 - 80352b4: d301 bcc.n 80352ba + 8035218: 687b ldr r3, [r7, #4] + 803521a: 681b ldr r3, [r3, #0] + 803521c: 68fa ldr r2, [r7, #12] + 803521e: 429a cmp r2, r3 + 8035220: d301 bcc.n 8035226 return 0; - 80352b6: 2300 movs r3, #0 - 80352b8: e003 b.n 80352c2 + 8035222: 2300 movs r3, #0 + 8035224: e003 b.n 803522e return timer->period - elp; - 80352ba: 687b ldr r3, [r7, #4] - 80352bc: 681a ldr r2, [r3, #0] - 80352be: 68fb ldr r3, [r7, #12] - 80352c0: 1ad3 subs r3, r2, r3 + 8035226: 687b ldr r3, [r7, #4] + 8035228: 681a ldr r2, [r3, #0] + 803522a: 68fb ldr r3, [r7, #12] + 803522c: 1ad3 subs r3, r2, r3 } - 80352c2: 4618 mov r0, r3 - 80352c4: 3710 adds r7, #16 - 80352c6: 46bd mov sp, r7 - 80352c8: bd80 pop {r7, pc} + 803522e: 4618 mov r0, r3 + 8035230: 3710 adds r7, #16 + 8035232: 46bd mov sp, r7 + 8035234: bd80 pop {r7, pc} -080352ca : +08035236 : } #else tlsf_decl int tlsf_ffs(unsigned int word) { - 80352ca: b480 push {r7} - 80352cc: b083 sub sp, #12 - 80352ce: af00 add r7, sp, #0 - 80352d0: 6078 str r0, [r7, #4] + 8035236: b480 push {r7} + 8035238: b083 sub sp, #12 + 803523a: af00 add r7, sp, #0 + 803523c: 6078 str r0, [r7, #4] return __builtin_ffs(word) - 1; - 80352d2: 687b ldr r3, [r7, #4] - 80352d4: fa93 f2a3 rbit r2, r3 - 80352d8: fab2 f282 clz r2, r2 - 80352dc: 2b00 cmp r3, #0 - 80352de: d101 bne.n 80352e4 - 80352e0: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 80352e4: 1c53 adds r3, r2, #1 - 80352e6: 3b01 subs r3, #1 + 803523e: 687b ldr r3, [r7, #4] + 8035240: fa93 f2a3 rbit r2, r3 + 8035244: fab2 f282 clz r2, r2 + 8035248: 2b00 cmp r3, #0 + 803524a: d101 bne.n 8035250 + 803524c: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 8035250: 1c53 adds r3, r2, #1 + 8035252: 3b01 subs r3, #1 } - 80352e8: 4618 mov r0, r3 - 80352ea: 370c adds r7, #12 - 80352ec: 46bd mov sp, r7 - 80352ee: bc80 pop {r7} - 80352f0: 4770 bx lr + 8035254: 4618 mov r0, r3 + 8035256: 370c adds r7, #12 + 8035258: 46bd mov sp, r7 + 803525a: bc80 pop {r7} + 803525c: 4770 bx lr -080352f2 : +0803525e : #endif tlsf_decl int tlsf_fls(unsigned int word) { - 80352f2: b480 push {r7} - 80352f4: b085 sub sp, #20 - 80352f6: af00 add r7, sp, #0 - 80352f8: 6078 str r0, [r7, #4] + 803525e: b480 push {r7} + 8035260: b085 sub sp, #20 + 8035262: af00 add r7, sp, #0 + 8035264: 6078 str r0, [r7, #4] const int bit = word ? 32 - __builtin_clz(word) : 0; - 80352fa: 687b ldr r3, [r7, #4] - 80352fc: 2b00 cmp r3, #0 - 80352fe: d005 beq.n 803530c - 8035300: 687b ldr r3, [r7, #4] - 8035302: fab3 f383 clz r3, r3 - 8035306: f1c3 0320 rsb r3, r3, #32 - 803530a: e000 b.n 803530e - 803530c: 2300 movs r3, #0 - 803530e: 60fb str r3, [r7, #12] + 8035266: 687b ldr r3, [r7, #4] + 8035268: 2b00 cmp r3, #0 + 803526a: d005 beq.n 8035278 + 803526c: 687b ldr r3, [r7, #4] + 803526e: fab3 f383 clz r3, r3 + 8035272: f1c3 0320 rsb r3, r3, #32 + 8035276: e000 b.n 803527a + 8035278: 2300 movs r3, #0 + 803527a: 60fb str r3, [r7, #12] return bit - 1; - 8035310: 68fb ldr r3, [r7, #12] - 8035312: 3b01 subs r3, #1 + 803527c: 68fb ldr r3, [r7, #12] + 803527e: 3b01 subs r3, #1 } - 8035314: 4618 mov r0, r3 - 8035316: 3714 adds r7, #20 - 8035318: 46bd mov sp, r7 - 803531a: bc80 pop {r7} - 803531c: 4770 bx lr + 8035280: 4618 mov r0, r3 + 8035282: 3714 adds r7, #20 + 8035284: 46bd mov sp, r7 + 8035286: bc80 pop {r7} + 8035288: 4770 bx lr -0803531e : +0803528a : /* ** block_header_t member functions. */ static size_t block_size(const block_header_t * block) { - 803531e: b480 push {r7} - 8035320: b083 sub sp, #12 - 8035322: af00 add r7, sp, #0 - 8035324: 6078 str r0, [r7, #4] + 803528a: b480 push {r7} + 803528c: b083 sub sp, #12 + 803528e: af00 add r7, sp, #0 + 8035290: 6078 str r0, [r7, #4] return block->size & ~(block_header_free_bit | block_header_prev_free_bit); - 8035326: 687b ldr r3, [r7, #4] - 8035328: 685a ldr r2, [r3, #4] - 803532a: 2101 movs r1, #1 - 803532c: 2302 movs r3, #2 - 803532e: 430b orrs r3, r1 - 8035330: 43db mvns r3, r3 - 8035332: 4013 ands r3, r2 + 8035292: 687b ldr r3, [r7, #4] + 8035294: 685a ldr r2, [r3, #4] + 8035296: 2101 movs r1, #1 + 8035298: 2302 movs r3, #2 + 803529a: 430b orrs r3, r1 + 803529c: 43db mvns r3, r3 + 803529e: 4013 ands r3, r2 } - 8035334: 4618 mov r0, r3 - 8035336: 370c adds r7, #12 - 8035338: 46bd mov sp, r7 - 803533a: bc80 pop {r7} - 803533c: 4770 bx lr + 80352a0: 4618 mov r0, r3 + 80352a2: 370c adds r7, #12 + 80352a4: 46bd mov sp, r7 + 80352a6: bc80 pop {r7} + 80352a8: 4770 bx lr -0803533e : +080352aa : static void block_set_size(block_header_t * block, size_t size) { - 803533e: b480 push {r7} - 8035340: b085 sub sp, #20 - 8035342: af00 add r7, sp, #0 - 8035344: 6078 str r0, [r7, #4] - 8035346: 6039 str r1, [r7, #0] + 80352aa: b480 push {r7} + 80352ac: b085 sub sp, #20 + 80352ae: af00 add r7, sp, #0 + 80352b0: 6078 str r0, [r7, #4] + 80352b2: 6039 str r1, [r7, #0] const size_t oldsize = block->size; - 8035348: 687b ldr r3, [r7, #4] - 803534a: 685b ldr r3, [r3, #4] - 803534c: 60fb str r3, [r7, #12] + 80352b4: 687b ldr r3, [r7, #4] + 80352b6: 685b ldr r3, [r3, #4] + 80352b8: 60fb str r3, [r7, #12] block->size = size | (oldsize & (block_header_free_bit | block_header_prev_free_bit)); - 803534e: 2201 movs r2, #1 - 8035350: 2302 movs r3, #2 - 8035352: 431a orrs r2, r3 - 8035354: 68fb ldr r3, [r7, #12] - 8035356: 401a ands r2, r3 - 8035358: 683b ldr r3, [r7, #0] - 803535a: 431a orrs r2, r3 - 803535c: 687b ldr r3, [r7, #4] - 803535e: 605a str r2, [r3, #4] + 80352ba: 2201 movs r2, #1 + 80352bc: 2302 movs r3, #2 + 80352be: 431a orrs r2, r3 + 80352c0: 68fb ldr r3, [r7, #12] + 80352c2: 401a ands r2, r3 + 80352c4: 683b ldr r3, [r7, #0] + 80352c6: 431a orrs r2, r3 + 80352c8: 687b ldr r3, [r7, #4] + 80352ca: 605a str r2, [r3, #4] } - 8035360: bf00 nop - 8035362: 3714 adds r7, #20 + 80352cc: bf00 nop + 80352ce: 3714 adds r7, #20 + 80352d0: 46bd mov sp, r7 + 80352d2: bc80 pop {r7} + 80352d4: 4770 bx lr + +080352d6 : + +static int block_is_last(const block_header_t * block) +{ + 80352d6: b580 push {r7, lr} + 80352d8: b082 sub sp, #8 + 80352da: af00 add r7, sp, #0 + 80352dc: 6078 str r0, [r7, #4] + return block_size(block) == 0; + 80352de: 6878 ldr r0, [r7, #4] + 80352e0: f7ff ffd3 bl 803528a + 80352e4: 4603 mov r3, r0 + 80352e6: 2b00 cmp r3, #0 + 80352e8: bf0c ite eq + 80352ea: 2301 moveq r3, #1 + 80352ec: 2300 movne r3, #0 + 80352ee: b2db uxtb r3, r3 +} + 80352f0: 4618 mov r0, r3 + 80352f2: 3708 adds r7, #8 + 80352f4: 46bd mov sp, r7 + 80352f6: bd80 pop {r7, pc} + +080352f8 : + +static int block_is_free(const block_header_t * block) +{ + 80352f8: b480 push {r7} + 80352fa: b083 sub sp, #12 + 80352fc: af00 add r7, sp, #0 + 80352fe: 6078 str r0, [r7, #4] + return tlsf_cast(int, block->size & block_header_free_bit); + 8035300: 687b ldr r3, [r7, #4] + 8035302: 685b ldr r3, [r3, #4] + 8035304: 2201 movs r2, #1 + 8035306: 4013 ands r3, r2 +} + 8035308: 4618 mov r0, r3 + 803530a: 370c adds r7, #12 + 803530c: 46bd mov sp, r7 + 803530e: bc80 pop {r7} + 8035310: 4770 bx lr + +08035312 : + +static void block_set_free(block_header_t * block) +{ + 8035312: b480 push {r7} + 8035314: b083 sub sp, #12 + 8035316: af00 add r7, sp, #0 + 8035318: 6078 str r0, [r7, #4] + block->size |= block_header_free_bit; + 803531a: 687b ldr r3, [r7, #4] + 803531c: 685b ldr r3, [r3, #4] + 803531e: 2201 movs r2, #1 + 8035320: 431a orrs r2, r3 + 8035322: 687b ldr r3, [r7, #4] + 8035324: 605a str r2, [r3, #4] +} + 8035326: bf00 nop + 8035328: 370c adds r7, #12 + 803532a: 46bd mov sp, r7 + 803532c: bc80 pop {r7} + 803532e: 4770 bx lr + +08035330 : + +static void block_set_used(block_header_t * block) +{ + 8035330: b480 push {r7} + 8035332: b083 sub sp, #12 + 8035334: af00 add r7, sp, #0 + 8035336: 6078 str r0, [r7, #4] + block->size &= ~block_header_free_bit; + 8035338: 687b ldr r3, [r7, #4] + 803533a: 685a ldr r2, [r3, #4] + 803533c: 2301 movs r3, #1 + 803533e: 43db mvns r3, r3 + 8035340: 401a ands r2, r3 + 8035342: 687b ldr r3, [r7, #4] + 8035344: 605a str r2, [r3, #4] +} + 8035346: bf00 nop + 8035348: 370c adds r7, #12 + 803534a: 46bd mov sp, r7 + 803534c: bc80 pop {r7} + 803534e: 4770 bx lr + +08035350 : + +static int block_is_prev_free(const block_header_t * block) +{ + 8035350: b480 push {r7} + 8035352: b083 sub sp, #12 + 8035354: af00 add r7, sp, #0 + 8035356: 6078 str r0, [r7, #4] + return tlsf_cast(int, block->size & block_header_prev_free_bit); + 8035358: 687b ldr r3, [r7, #4] + 803535a: 685b ldr r3, [r3, #4] + 803535c: 2202 movs r2, #2 + 803535e: 4013 ands r3, r2 +} + 8035360: 4618 mov r0, r3 + 8035362: 370c adds r7, #12 8035364: 46bd mov sp, r7 8035366: bc80 pop {r7} 8035368: 4770 bx lr -0803536a : - -static int block_is_last(const block_header_t * block) -{ - 803536a: b580 push {r7, lr} - 803536c: b082 sub sp, #8 - 803536e: af00 add r7, sp, #0 - 8035370: 6078 str r0, [r7, #4] - return block_size(block) == 0; - 8035372: 6878 ldr r0, [r7, #4] - 8035374: f7ff ffd3 bl 803531e - 8035378: 4603 mov r3, r0 - 803537a: 2b00 cmp r3, #0 - 803537c: bf0c ite eq - 803537e: 2301 moveq r3, #1 - 8035380: 2300 movne r3, #0 - 8035382: b2db uxtb r3, r3 -} - 8035384: 4618 mov r0, r3 - 8035386: 3708 adds r7, #8 - 8035388: 46bd mov sp, r7 - 803538a: bd80 pop {r7, pc} - -0803538c : - -static int block_is_free(const block_header_t * block) -{ - 803538c: b480 push {r7} - 803538e: b083 sub sp, #12 - 8035390: af00 add r7, sp, #0 - 8035392: 6078 str r0, [r7, #4] - return tlsf_cast(int, block->size & block_header_free_bit); - 8035394: 687b ldr r3, [r7, #4] - 8035396: 685b ldr r3, [r3, #4] - 8035398: 2201 movs r2, #1 - 803539a: 4013 ands r3, r2 -} - 803539c: 4618 mov r0, r3 - 803539e: 370c adds r7, #12 - 80353a0: 46bd mov sp, r7 - 80353a2: bc80 pop {r7} - 80353a4: 4770 bx lr - -080353a6 : - -static void block_set_free(block_header_t * block) -{ - 80353a6: b480 push {r7} - 80353a8: b083 sub sp, #12 - 80353aa: af00 add r7, sp, #0 - 80353ac: 6078 str r0, [r7, #4] - block->size |= block_header_free_bit; - 80353ae: 687b ldr r3, [r7, #4] - 80353b0: 685b ldr r3, [r3, #4] - 80353b2: 2201 movs r2, #1 - 80353b4: 431a orrs r2, r3 - 80353b6: 687b ldr r3, [r7, #4] - 80353b8: 605a str r2, [r3, #4] -} - 80353ba: bf00 nop - 80353bc: 370c adds r7, #12 - 80353be: 46bd mov sp, r7 - 80353c0: bc80 pop {r7} - 80353c2: 4770 bx lr - -080353c4 : - -static void block_set_used(block_header_t * block) -{ - 80353c4: b480 push {r7} - 80353c6: b083 sub sp, #12 - 80353c8: af00 add r7, sp, #0 - 80353ca: 6078 str r0, [r7, #4] - block->size &= ~block_header_free_bit; - 80353cc: 687b ldr r3, [r7, #4] - 80353ce: 685a ldr r2, [r3, #4] - 80353d0: 2301 movs r3, #1 - 80353d2: 43db mvns r3, r3 - 80353d4: 401a ands r2, r3 - 80353d6: 687b ldr r3, [r7, #4] - 80353d8: 605a str r2, [r3, #4] -} - 80353da: bf00 nop - 80353dc: 370c adds r7, #12 - 80353de: 46bd mov sp, r7 - 80353e0: bc80 pop {r7} - 80353e2: 4770 bx lr - -080353e4 : - -static int block_is_prev_free(const block_header_t * block) -{ - 80353e4: b480 push {r7} - 80353e6: b083 sub sp, #12 - 80353e8: af00 add r7, sp, #0 - 80353ea: 6078 str r0, [r7, #4] - return tlsf_cast(int, block->size & block_header_prev_free_bit); - 80353ec: 687b ldr r3, [r7, #4] - 80353ee: 685b ldr r3, [r3, #4] - 80353f0: 2202 movs r2, #2 - 80353f2: 4013 ands r3, r2 -} - 80353f4: 4618 mov r0, r3 - 80353f6: 370c adds r7, #12 - 80353f8: 46bd mov sp, r7 - 80353fa: bc80 pop {r7} - 80353fc: 4770 bx lr - -080353fe : +0803536a : static void block_set_prev_free(block_header_t * block) { - 80353fe: b480 push {r7} - 8035400: b083 sub sp, #12 - 8035402: af00 add r7, sp, #0 - 8035404: 6078 str r0, [r7, #4] + 803536a: b480 push {r7} + 803536c: b083 sub sp, #12 + 803536e: af00 add r7, sp, #0 + 8035370: 6078 str r0, [r7, #4] block->size |= block_header_prev_free_bit; - 8035406: 687b ldr r3, [r7, #4] - 8035408: 685b ldr r3, [r3, #4] - 803540a: 2202 movs r2, #2 - 803540c: 431a orrs r2, r3 - 803540e: 687b ldr r3, [r7, #4] - 8035410: 605a str r2, [r3, #4] + 8035372: 687b ldr r3, [r7, #4] + 8035374: 685b ldr r3, [r3, #4] + 8035376: 2202 movs r2, #2 + 8035378: 431a orrs r2, r3 + 803537a: 687b ldr r3, [r7, #4] + 803537c: 605a str r2, [r3, #4] } - 8035412: bf00 nop - 8035414: 370c adds r7, #12 - 8035416: 46bd mov sp, r7 - 8035418: bc80 pop {r7} - 803541a: 4770 bx lr + 803537e: bf00 nop + 8035380: 370c adds r7, #12 + 8035382: 46bd mov sp, r7 + 8035384: bc80 pop {r7} + 8035386: 4770 bx lr -0803541c : +08035388 : static void block_set_prev_used(block_header_t * block) { - 803541c: b480 push {r7} - 803541e: b083 sub sp, #12 - 8035420: af00 add r7, sp, #0 - 8035422: 6078 str r0, [r7, #4] + 8035388: b480 push {r7} + 803538a: b083 sub sp, #12 + 803538c: af00 add r7, sp, #0 + 803538e: 6078 str r0, [r7, #4] block->size &= ~block_header_prev_free_bit; - 8035424: 687b ldr r3, [r7, #4] - 8035426: 685a ldr r2, [r3, #4] - 8035428: 2302 movs r3, #2 - 803542a: 43db mvns r3, r3 - 803542c: 401a ands r2, r3 - 803542e: 687b ldr r3, [r7, #4] - 8035430: 605a str r2, [r3, #4] + 8035390: 687b ldr r3, [r7, #4] + 8035392: 685a ldr r2, [r3, #4] + 8035394: 2302 movs r3, #2 + 8035396: 43db mvns r3, r3 + 8035398: 401a ands r2, r3 + 803539a: 687b ldr r3, [r7, #4] + 803539c: 605a str r2, [r3, #4] } - 8035432: bf00 nop - 8035434: 370c adds r7, #12 - 8035436: 46bd mov sp, r7 - 8035438: bc80 pop {r7} - 803543a: 4770 bx lr + 803539e: bf00 nop + 80353a0: 370c adds r7, #12 + 80353a2: 46bd mov sp, r7 + 80353a4: bc80 pop {r7} + 80353a6: 4770 bx lr -0803543c : +080353a8 : static block_header_t * block_from_ptr(const void * ptr) { - 803543c: b480 push {r7} - 803543e: b083 sub sp, #12 - 8035440: af00 add r7, sp, #0 - 8035442: 6078 str r0, [r7, #4] + 80353a8: b480 push {r7} + 80353aa: b083 sub sp, #12 + 80353ac: af00 add r7, sp, #0 + 80353ae: 6078 str r0, [r7, #4] return tlsf_cast(block_header_t *, - 8035444: 2308 movs r3, #8 - 8035446: 425b negs r3, r3 - 8035448: 687a ldr r2, [r7, #4] - 803544a: 4413 add r3, r2 + 80353b0: 2308 movs r3, #8 + 80353b2: 425b negs r3, r3 + 80353b4: 687a ldr r2, [r7, #4] + 80353b6: 4413 add r3, r2 tlsf_cast(unsigned char *, ptr) - block_start_offset); } - 803544c: 4618 mov r0, r3 - 803544e: 370c adds r7, #12 - 8035450: 46bd mov sp, r7 - 8035452: bc80 pop {r7} - 8035454: 4770 bx lr + 80353b8: 4618 mov r0, r3 + 80353ba: 370c adds r7, #12 + 80353bc: 46bd mov sp, r7 + 80353be: bc80 pop {r7} + 80353c0: 4770 bx lr -08035456 : +080353c2 : static void * block_to_ptr(const block_header_t * block) { - 8035456: b480 push {r7} - 8035458: b083 sub sp, #12 - 803545a: af00 add r7, sp, #0 - 803545c: 6078 str r0, [r7, #4] + 80353c2: b480 push {r7} + 80353c4: b083 sub sp, #12 + 80353c6: af00 add r7, sp, #0 + 80353c8: 6078 str r0, [r7, #4] return tlsf_cast(void *, - 803545e: 2208 movs r2, #8 - 8035460: 687b ldr r3, [r7, #4] - 8035462: 4413 add r3, r2 + 80353ca: 2208 movs r2, #8 + 80353cc: 687b ldr r3, [r7, #4] + 80353ce: 4413 add r3, r2 tlsf_cast(unsigned char *, block) + block_start_offset); } - 8035464: 4618 mov r0, r3 - 8035466: 370c adds r7, #12 - 8035468: 46bd mov sp, r7 - 803546a: bc80 pop {r7} - 803546c: 4770 bx lr + 80353d0: 4618 mov r0, r3 + 80353d2: 370c adds r7, #12 + 80353d4: 46bd mov sp, r7 + 80353d6: bc80 pop {r7} + 80353d8: 4770 bx lr -0803546e : +080353da : /* Return location of next block after block of given size. */ static block_header_t * offset_to_block(const void * ptr, size_t size) { - 803546e: b480 push {r7} - 8035470: b083 sub sp, #12 - 8035472: af00 add r7, sp, #0 - 8035474: 6078 str r0, [r7, #4] - 8035476: 6039 str r1, [r7, #0] + 80353da: b480 push {r7} + 80353dc: b083 sub sp, #12 + 80353de: af00 add r7, sp, #0 + 80353e0: 6078 str r0, [r7, #4] + 80353e2: 6039 str r1, [r7, #0] return tlsf_cast(block_header_t *, tlsf_cast(tlsfptr_t, ptr) + size); - 8035478: 687a ldr r2, [r7, #4] - 803547a: 683b ldr r3, [r7, #0] - 803547c: 4413 add r3, r2 + 80353e4: 687a ldr r2, [r7, #4] + 80353e6: 683b ldr r3, [r7, #0] + 80353e8: 4413 add r3, r2 } - 803547e: 4618 mov r0, r3 - 8035480: 370c adds r7, #12 - 8035482: 46bd mov sp, r7 - 8035484: bc80 pop {r7} - 8035486: 4770 bx lr + 80353ea: 4618 mov r0, r3 + 80353ec: 370c adds r7, #12 + 80353ee: 46bd mov sp, r7 + 80353f0: bc80 pop {r7} + 80353f2: 4770 bx lr -08035488 : +080353f4 : /* Return location of previous block. */ static block_header_t * block_prev(const block_header_t * block) { - 8035488: b580 push {r7, lr} - 803548a: b082 sub sp, #8 - 803548c: af00 add r7, sp, #0 - 803548e: 6078 str r0, [r7, #4] + 80353f4: b580 push {r7, lr} + 80353f6: b082 sub sp, #8 + 80353f8: af00 add r7, sp, #0 + 80353fa: 6078 str r0, [r7, #4] tlsf_assert(block_is_prev_free(block) && "previous block must be free"); - 8035490: 6878 ldr r0, [r7, #4] - 8035492: f7ff ffa7 bl 80353e4 - 8035496: 4603 mov r3, r0 - 8035498: 2b00 cmp r3, #0 - 803549a: d100 bne.n 803549e - 803549c: e7fe b.n 803549c + 80353fc: 6878 ldr r0, [r7, #4] + 80353fe: f7ff ffa7 bl 8035350 + 8035402: 4603 mov r3, r0 + 8035404: 2b00 cmp r3, #0 + 8035406: d100 bne.n 803540a + 8035408: e7fe b.n 8035408 return block->prev_phys_block; - 803549e: 687b ldr r3, [r7, #4] - 80354a0: 681b ldr r3, [r3, #0] + 803540a: 687b ldr r3, [r7, #4] + 803540c: 681b ldr r3, [r3, #0] } - 80354a2: 4618 mov r0, r3 - 80354a4: 3708 adds r7, #8 - 80354a6: 46bd mov sp, r7 - 80354a8: bd80 pop {r7, pc} + 803540e: 4618 mov r0, r3 + 8035410: 3708 adds r7, #8 + 8035412: 46bd mov sp, r7 + 8035414: bd80 pop {r7, pc} -080354aa : +08035416 : /* Return location of next existing block. */ static block_header_t * block_next(const block_header_t * block) { - 80354aa: b590 push {r4, r7, lr} - 80354ac: b085 sub sp, #20 - 80354ae: af00 add r7, sp, #0 - 80354b0: 6078 str r0, [r7, #4] + 8035416: b590 push {r4, r7, lr} + 8035418: b085 sub sp, #20 + 803541a: af00 add r7, sp, #0 + 803541c: 6078 str r0, [r7, #4] block_header_t * next = offset_to_block(block_to_ptr(block), - 80354b2: 6878 ldr r0, [r7, #4] - 80354b4: f7ff ffcf bl 8035456 - 80354b8: 4604 mov r4, r0 + 803541e: 6878 ldr r0, [r7, #4] + 8035420: f7ff ffcf bl 80353c2 + 8035424: 4604 mov r4, r0 block_size(block) - block_header_overhead); - 80354ba: 6878 ldr r0, [r7, #4] - 80354bc: f7ff ff2f bl 803531e - 80354c0: 4603 mov r3, r0 + 8035426: 6878 ldr r0, [r7, #4] + 8035428: f7ff ff2f bl 803528a + 803542c: 4603 mov r3, r0 block_header_t * next = offset_to_block(block_to_ptr(block), - 80354c2: 2204 movs r2, #4 - 80354c4: 1a9b subs r3, r3, r2 - 80354c6: 4619 mov r1, r3 - 80354c8: 4620 mov r0, r4 - 80354ca: f7ff ffd0 bl 803546e - 80354ce: 60f8 str r0, [r7, #12] + 803542e: 2204 movs r2, #4 + 8035430: 1a9b subs r3, r3, r2 + 8035432: 4619 mov r1, r3 + 8035434: 4620 mov r0, r4 + 8035436: f7ff ffd0 bl 80353da + 803543a: 60f8 str r0, [r7, #12] tlsf_assert(!block_is_last(block)); - 80354d0: 6878 ldr r0, [r7, #4] - 80354d2: f7ff ff4a bl 803536a - 80354d6: 4603 mov r3, r0 - 80354d8: 2b00 cmp r3, #0 - 80354da: d000 beq.n 80354de - 80354dc: e7fe b.n 80354dc + 803543c: 6878 ldr r0, [r7, #4] + 803543e: f7ff ff4a bl 80352d6 + 8035442: 4603 mov r3, r0 + 8035444: 2b00 cmp r3, #0 + 8035446: d000 beq.n 803544a + 8035448: e7fe b.n 8035448 return next; - 80354de: 68fb ldr r3, [r7, #12] + 803544a: 68fb ldr r3, [r7, #12] } - 80354e0: 4618 mov r0, r3 - 80354e2: 3714 adds r7, #20 - 80354e4: 46bd mov sp, r7 - 80354e6: bd90 pop {r4, r7, pc} + 803544c: 4618 mov r0, r3 + 803544e: 3714 adds r7, #20 + 8035450: 46bd mov sp, r7 + 8035452: bd90 pop {r4, r7, pc} -080354e8 : +08035454 : /* Link a new block with its physical neighbor, return the neighbor. */ static block_header_t * block_link_next(block_header_t * block) { - 80354e8: b580 push {r7, lr} - 80354ea: b084 sub sp, #16 - 80354ec: af00 add r7, sp, #0 - 80354ee: 6078 str r0, [r7, #4] + 8035454: b580 push {r7, lr} + 8035456: b084 sub sp, #16 + 8035458: af00 add r7, sp, #0 + 803545a: 6078 str r0, [r7, #4] block_header_t * next = block_next(block); - 80354f0: 6878 ldr r0, [r7, #4] - 80354f2: f7ff ffda bl 80354aa - 80354f6: 60f8 str r0, [r7, #12] + 803545c: 6878 ldr r0, [r7, #4] + 803545e: f7ff ffda bl 8035416 + 8035462: 60f8 str r0, [r7, #12] next->prev_phys_block = block; - 80354f8: 68fb ldr r3, [r7, #12] - 80354fa: 687a ldr r2, [r7, #4] - 80354fc: 601a str r2, [r3, #0] + 8035464: 68fb ldr r3, [r7, #12] + 8035466: 687a ldr r2, [r7, #4] + 8035468: 601a str r2, [r3, #0] return next; - 80354fe: 68fb ldr r3, [r7, #12] + 803546a: 68fb ldr r3, [r7, #12] } - 8035500: 4618 mov r0, r3 - 8035502: 3710 adds r7, #16 - 8035504: 46bd mov sp, r7 - 8035506: bd80 pop {r7, pc} + 803546c: 4618 mov r0, r3 + 803546e: 3710 adds r7, #16 + 8035470: 46bd mov sp, r7 + 8035472: bd80 pop {r7, pc} -08035508 : +08035474 : static void block_mark_as_free(block_header_t * block) { - 8035508: b580 push {r7, lr} - 803550a: b084 sub sp, #16 - 803550c: af00 add r7, sp, #0 - 803550e: 6078 str r0, [r7, #4] + 8035474: b580 push {r7, lr} + 8035476: b084 sub sp, #16 + 8035478: af00 add r7, sp, #0 + 803547a: 6078 str r0, [r7, #4] /* Link the block to the next block, first. */ block_header_t * next = block_link_next(block); - 8035510: 6878 ldr r0, [r7, #4] - 8035512: f7ff ffe9 bl 80354e8 - 8035516: 60f8 str r0, [r7, #12] + 803547c: 6878 ldr r0, [r7, #4] + 803547e: f7ff ffe9 bl 8035454 + 8035482: 60f8 str r0, [r7, #12] block_set_prev_free(next); - 8035518: 68f8 ldr r0, [r7, #12] - 803551a: f7ff ff70 bl 80353fe + 8035484: 68f8 ldr r0, [r7, #12] + 8035486: f7ff ff70 bl 803536a block_set_free(block); - 803551e: 6878 ldr r0, [r7, #4] - 8035520: f7ff ff41 bl 80353a6 + 803548a: 6878 ldr r0, [r7, #4] + 803548c: f7ff ff41 bl 8035312 } - 8035524: bf00 nop - 8035526: 3710 adds r7, #16 - 8035528: 46bd mov sp, r7 - 803552a: bd80 pop {r7, pc} + 8035490: bf00 nop + 8035492: 3710 adds r7, #16 + 8035494: 46bd mov sp, r7 + 8035496: bd80 pop {r7, pc} -0803552c : +08035498 : static void block_mark_as_used(block_header_t * block) { - 803552c: b580 push {r7, lr} - 803552e: b084 sub sp, #16 - 8035530: af00 add r7, sp, #0 - 8035532: 6078 str r0, [r7, #4] + 8035498: b580 push {r7, lr} + 803549a: b084 sub sp, #16 + 803549c: af00 add r7, sp, #0 + 803549e: 6078 str r0, [r7, #4] block_header_t * next = block_next(block); - 8035534: 6878 ldr r0, [r7, #4] - 8035536: f7ff ffb8 bl 80354aa - 803553a: 60f8 str r0, [r7, #12] + 80354a0: 6878 ldr r0, [r7, #4] + 80354a2: f7ff ffb8 bl 8035416 + 80354a6: 60f8 str r0, [r7, #12] block_set_prev_used(next); - 803553c: 68f8 ldr r0, [r7, #12] - 803553e: f7ff ff6d bl 803541c + 80354a8: 68f8 ldr r0, [r7, #12] + 80354aa: f7ff ff6d bl 8035388 block_set_used(block); - 8035542: 6878 ldr r0, [r7, #4] - 8035544: f7ff ff3e bl 80353c4 + 80354ae: 6878 ldr r0, [r7, #4] + 80354b0: f7ff ff3e bl 8035330 } - 8035548: bf00 nop - 803554a: 3710 adds r7, #16 - 803554c: 46bd mov sp, r7 - 803554e: bd80 pop {r7, pc} + 80354b4: bf00 nop + 80354b6: 3710 adds r7, #16 + 80354b8: 46bd mov sp, r7 + 80354ba: bd80 pop {r7, pc} -08035550 : +080354bc : static size_t align_up(size_t x, size_t align) { - 8035550: b480 push {r7} - 8035552: b083 sub sp, #12 - 8035554: af00 add r7, sp, #0 - 8035556: 6078 str r0, [r7, #4] - 8035558: 6039 str r1, [r7, #0] + 80354bc: b480 push {r7} + 80354be: b083 sub sp, #12 + 80354c0: af00 add r7, sp, #0 + 80354c2: 6078 str r0, [r7, #4] + 80354c4: 6039 str r1, [r7, #0] tlsf_assert(0 == (align & (align - 1)) && "must align to a power of two"); - 803555a: 683b ldr r3, [r7, #0] - 803555c: 1e5a subs r2, r3, #1 - 803555e: 683b ldr r3, [r7, #0] - 8035560: 4013 ands r3, r2 - 8035562: 2b00 cmp r3, #0 - 8035564: d000 beq.n 8035568 - 8035566: e7fe b.n 8035566 + 80354c6: 683b ldr r3, [r7, #0] + 80354c8: 1e5a subs r2, r3, #1 + 80354ca: 683b ldr r3, [r7, #0] + 80354cc: 4013 ands r3, r2 + 80354ce: 2b00 cmp r3, #0 + 80354d0: d000 beq.n 80354d4 + 80354d2: e7fe b.n 80354d2 return (x + (align - 1)) & ~(align - 1); - 8035568: 683a ldr r2, [r7, #0] - 803556a: 687b ldr r3, [r7, #4] - 803556c: 4413 add r3, r2 - 803556e: 1e5a subs r2, r3, #1 - 8035570: 683b ldr r3, [r7, #0] - 8035572: 425b negs r3, r3 - 8035574: 4013 ands r3, r2 + 80354d4: 683a ldr r2, [r7, #0] + 80354d6: 687b ldr r3, [r7, #4] + 80354d8: 4413 add r3, r2 + 80354da: 1e5a subs r2, r3, #1 + 80354dc: 683b ldr r3, [r7, #0] + 80354de: 425b negs r3, r3 + 80354e0: 4013 ands r3, r2 } - 8035576: 4618 mov r0, r3 - 8035578: 370c adds r7, #12 - 803557a: 46bd mov sp, r7 - 803557c: bc80 pop {r7} - 803557e: 4770 bx lr + 80354e2: 4618 mov r0, r3 + 80354e4: 370c adds r7, #12 + 80354e6: 46bd mov sp, r7 + 80354e8: bc80 pop {r7} + 80354ea: 4770 bx lr -08035580 : +080354ec : static size_t align_down(size_t x, size_t align) { - 8035580: b480 push {r7} - 8035582: b083 sub sp, #12 - 8035584: af00 add r7, sp, #0 - 8035586: 6078 str r0, [r7, #4] - 8035588: 6039 str r1, [r7, #0] + 80354ec: b480 push {r7} + 80354ee: b083 sub sp, #12 + 80354f0: af00 add r7, sp, #0 + 80354f2: 6078 str r0, [r7, #4] + 80354f4: 6039 str r1, [r7, #0] tlsf_assert(0 == (align & (align - 1)) && "must align to a power of two"); - 803558a: 683b ldr r3, [r7, #0] - 803558c: 1e5a subs r2, r3, #1 - 803558e: 683b ldr r3, [r7, #0] - 8035590: 4013 ands r3, r2 - 8035592: 2b00 cmp r3, #0 - 8035594: d000 beq.n 8035598 - 8035596: e7fe b.n 8035596 + 80354f6: 683b ldr r3, [r7, #0] + 80354f8: 1e5a subs r2, r3, #1 + 80354fa: 683b ldr r3, [r7, #0] + 80354fc: 4013 ands r3, r2 + 80354fe: 2b00 cmp r3, #0 + 8035500: d000 beq.n 8035504 + 8035502: e7fe b.n 8035502 return x - (x & (align - 1)); - 8035598: 683b ldr r3, [r7, #0] - 803559a: 425a negs r2, r3 - 803559c: 687b ldr r3, [r7, #4] - 803559e: 4013 ands r3, r2 + 8035504: 683b ldr r3, [r7, #0] + 8035506: 425a negs r2, r3 + 8035508: 687b ldr r3, [r7, #4] + 803550a: 4013 ands r3, r2 } - 80355a0: 4618 mov r0, r3 - 80355a2: 370c adds r7, #12 - 80355a4: 46bd mov sp, r7 - 80355a6: bc80 pop {r7} - 80355a8: 4770 bx lr + 803550c: 4618 mov r0, r3 + 803550e: 370c adds r7, #12 + 8035510: 46bd mov sp, r7 + 8035512: bc80 pop {r7} + 8035514: 4770 bx lr -080355aa : +08035516 : static void * align_ptr(const void * ptr, size_t align) { - 80355aa: b480 push {r7} - 80355ac: b085 sub sp, #20 - 80355ae: af00 add r7, sp, #0 - 80355b0: 6078 str r0, [r7, #4] - 80355b2: 6039 str r1, [r7, #0] + 8035516: b480 push {r7} + 8035518: b085 sub sp, #20 + 803551a: af00 add r7, sp, #0 + 803551c: 6078 str r0, [r7, #4] + 803551e: 6039 str r1, [r7, #0] const tlsfptr_t aligned = (tlsf_cast(tlsfptr_t, ptr) + (align - 1)) & ~(align - 1); - 80355b4: 687a ldr r2, [r7, #4] - 80355b6: 683b ldr r3, [r7, #0] - 80355b8: 4413 add r3, r2 - 80355ba: 1e5a subs r2, r3, #1 - 80355bc: 683b ldr r3, [r7, #0] - 80355be: 425b negs r3, r3 - 80355c0: 4013 ands r3, r2 + 8035520: 687a ldr r2, [r7, #4] + 8035522: 683b ldr r3, [r7, #0] + 8035524: 4413 add r3, r2 + 8035526: 1e5a subs r2, r3, #1 + 8035528: 683b ldr r3, [r7, #0] + 803552a: 425b negs r3, r3 + 803552c: 4013 ands r3, r2 const tlsfptr_t aligned = - 80355c2: 60fb str r3, [r7, #12] + 803552e: 60fb str r3, [r7, #12] tlsf_assert(0 == (align & (align - 1)) && "must align to a power of two"); - 80355c4: 683b ldr r3, [r7, #0] - 80355c6: 1e5a subs r2, r3, #1 - 80355c8: 683b ldr r3, [r7, #0] - 80355ca: 4013 ands r3, r2 - 80355cc: 2b00 cmp r3, #0 - 80355ce: d000 beq.n 80355d2 - 80355d0: e7fe b.n 80355d0 + 8035530: 683b ldr r3, [r7, #0] + 8035532: 1e5a subs r2, r3, #1 + 8035534: 683b ldr r3, [r7, #0] + 8035536: 4013 ands r3, r2 + 8035538: 2b00 cmp r3, #0 + 803553a: d000 beq.n 803553e + 803553c: e7fe b.n 803553c return tlsf_cast(void *, aligned); - 80355d2: 68fb ldr r3, [r7, #12] + 803553e: 68fb ldr r3, [r7, #12] } - 80355d4: 4618 mov r0, r3 - 80355d6: 3714 adds r7, #20 - 80355d8: 46bd mov sp, r7 - 80355da: bc80 pop {r7} - 80355dc: 4770 bx lr + 8035540: 4618 mov r0, r3 + 8035542: 3714 adds r7, #20 + 8035544: 46bd mov sp, r7 + 8035546: bc80 pop {r7} + 8035548: 4770 bx lr -080355de : +0803554a : /* ** Adjust an allocation size to be aligned to word size, and no smaller ** than internal minimum. */ static size_t adjust_request_size(size_t size, size_t align) { - 80355de: b580 push {r7, lr} - 80355e0: b084 sub sp, #16 - 80355e2: af00 add r7, sp, #0 - 80355e4: 6078 str r0, [r7, #4] - 80355e6: 6039 str r1, [r7, #0] + 803554a: b580 push {r7, lr} + 803554c: b084 sub sp, #16 + 803554e: af00 add r7, sp, #0 + 8035550: 6078 str r0, [r7, #4] + 8035552: 6039 str r1, [r7, #0] size_t adjust = 0; - 80355e8: 2300 movs r3, #0 - 80355ea: 60fb str r3, [r7, #12] + 8035554: 2300 movs r3, #0 + 8035556: 60fb str r3, [r7, #12] if(size) { - 80355ec: 687b ldr r3, [r7, #4] - 80355ee: 2b00 cmp r3, #0 - 80355f0: d00f beq.n 8035612 + 8035558: 687b ldr r3, [r7, #4] + 803555a: 2b00 cmp r3, #0 + 803555c: d00f beq.n 803557e const size_t aligned = align_up(size, align); - 80355f2: 6839 ldr r1, [r7, #0] - 80355f4: 6878 ldr r0, [r7, #4] - 80355f6: f7ff ffab bl 8035550 - 80355fa: 60b8 str r0, [r7, #8] + 803555e: 6839 ldr r1, [r7, #0] + 8035560: 6878 ldr r0, [r7, #4] + 8035562: f7ff ffab bl 80354bc + 8035566: 60b8 str r0, [r7, #8] /* aligned sized must not exceed block_size_max or we'll go out of bounds on sl_bitmap */ if(aligned < block_size_max) { - 80355fc: f44f 4280 mov.w r2, #16384 ; 0x4000 - 8035600: 68bb ldr r3, [r7, #8] - 8035602: 4293 cmp r3, r2 - 8035604: d205 bcs.n 8035612 + 8035568: f44f 4280 mov.w r2, #16384 ; 0x4000 + 803556c: 68bb ldr r3, [r7, #8] + 803556e: 4293 cmp r3, r2 + 8035570: d205 bcs.n 803557e adjust = tlsf_max(aligned, block_size_min); - 8035606: 220c movs r2, #12 - 8035608: 68bb ldr r3, [r7, #8] - 803560a: 4293 cmp r3, r2 - 803560c: bf38 it cc - 803560e: 4613 movcc r3, r2 - 8035610: 60fb str r3, [r7, #12] + 8035572: 220c movs r2, #12 + 8035574: 68bb ldr r3, [r7, #8] + 8035576: 4293 cmp r3, r2 + 8035578: bf38 it cc + 803557a: 4613 movcc r3, r2 + 803557c: 60fb str r3, [r7, #12] } } return adjust; - 8035612: 68fb ldr r3, [r7, #12] + 803557e: 68fb ldr r3, [r7, #12] } - 8035614: 4618 mov r0, r3 - 8035616: 3710 adds r7, #16 - 8035618: 46bd mov sp, r7 - 803561a: bd80 pop {r7, pc} + 8035580: 4618 mov r0, r3 + 8035582: 3710 adds r7, #16 + 8035584: 46bd mov sp, r7 + 8035586: bd80 pop {r7, pc} -0803561c : +08035588 : ** TLSF utility functions. In most cases, these are direct translations of ** the documentation found in the white paper. */ static void mapping_insert(size_t size, int * fli, int * sli) { - 803561c: b580 push {r7, lr} - 803561e: b086 sub sp, #24 - 8035620: af00 add r7, sp, #0 - 8035622: 60f8 str r0, [r7, #12] - 8035624: 60b9 str r1, [r7, #8] - 8035626: 607a str r2, [r7, #4] + 8035588: b580 push {r7, lr} + 803558a: b086 sub sp, #24 + 803558c: af00 add r7, sp, #0 + 803558e: 60f8 str r0, [r7, #12] + 8035590: 60b9 str r1, [r7, #8] + 8035592: 607a str r2, [r7, #4] int fl, sl; if(size < SMALL_BLOCK_SIZE) { - 8035628: 68fb ldr r3, [r7, #12] - 803562a: 2b7f cmp r3, #127 ; 0x7f - 803562c: d808 bhi.n 8035640 + 8035594: 68fb ldr r3, [r7, #12] + 8035596: 2b7f cmp r3, #127 ; 0x7f + 8035598: d808 bhi.n 80355ac /* Store small blocks in first list. */ fl = 0; - 803562e: 2300 movs r3, #0 - 8035630: 617b str r3, [r7, #20] + 803559a: 2300 movs r3, #0 + 803559c: 617b str r3, [r7, #20] sl = tlsf_cast(int, size) / (SMALL_BLOCK_SIZE / SL_INDEX_COUNT); - 8035632: 68fb ldr r3, [r7, #12] - 8035634: 2b00 cmp r3, #0 - 8035636: da00 bge.n 803563a - 8035638: 3303 adds r3, #3 - 803563a: 109b asrs r3, r3, #2 - 803563c: 613b str r3, [r7, #16] - 803563e: e00e b.n 803565e + 803559e: 68fb ldr r3, [r7, #12] + 80355a0: 2b00 cmp r3, #0 + 80355a2: da00 bge.n 80355a6 + 80355a4: 3303 adds r3, #3 + 80355a6: 109b asrs r3, r3, #2 + 80355a8: 613b str r3, [r7, #16] + 80355aa: e00e b.n 80355ca } else { fl = tlsf_fls_sizet(size); - 8035640: 68f8 ldr r0, [r7, #12] - 8035642: f7ff fe56 bl 80352f2 - 8035646: 6178 str r0, [r7, #20] + 80355ac: 68f8 ldr r0, [r7, #12] + 80355ae: f7ff fe56 bl 803525e + 80355b2: 6178 str r0, [r7, #20] sl = tlsf_cast(int, size >> (fl - SL_INDEX_COUNT_LOG2)) ^ (1 << SL_INDEX_COUNT_LOG2); - 8035648: 697b ldr r3, [r7, #20] - 803564a: 3b05 subs r3, #5 - 803564c: 68fa ldr r2, [r7, #12] - 803564e: fa22 f303 lsr.w r3, r2, r3 - 8035652: f083 0320 eor.w r3, r3, #32 - 8035656: 613b str r3, [r7, #16] + 80355b4: 697b ldr r3, [r7, #20] + 80355b6: 3b05 subs r3, #5 + 80355b8: 68fa ldr r2, [r7, #12] + 80355ba: fa22 f303 lsr.w r3, r2, r3 + 80355be: f083 0320 eor.w r3, r3, #32 + 80355c2: 613b str r3, [r7, #16] fl -= (FL_INDEX_SHIFT - 1); - 8035658: 697b ldr r3, [r7, #20] - 803565a: 3b06 subs r3, #6 - 803565c: 617b str r3, [r7, #20] + 80355c4: 697b ldr r3, [r7, #20] + 80355c6: 3b06 subs r3, #6 + 80355c8: 617b str r3, [r7, #20] } *fli = fl; - 803565e: 68bb ldr r3, [r7, #8] - 8035660: 697a ldr r2, [r7, #20] - 8035662: 601a str r2, [r3, #0] + 80355ca: 68bb ldr r3, [r7, #8] + 80355cc: 697a ldr r2, [r7, #20] + 80355ce: 601a str r2, [r3, #0] *sli = sl; - 8035664: 687b ldr r3, [r7, #4] - 8035666: 693a ldr r2, [r7, #16] - 8035668: 601a str r2, [r3, #0] + 80355d0: 687b ldr r3, [r7, #4] + 80355d2: 693a ldr r2, [r7, #16] + 80355d4: 601a str r2, [r3, #0] } - 803566a: bf00 nop - 803566c: 3718 adds r7, #24 - 803566e: 46bd mov sp, r7 - 8035670: bd80 pop {r7, pc} + 80355d6: bf00 nop + 80355d8: 3718 adds r7, #24 + 80355da: 46bd mov sp, r7 + 80355dc: bd80 pop {r7, pc} -08035672 : +080355de : /* This version rounds up to the next block size (for allocations) */ static void mapping_search(size_t size, int * fli, int * sli) { - 8035672: b580 push {r7, lr} - 8035674: b086 sub sp, #24 - 8035676: af00 add r7, sp, #0 - 8035678: 60f8 str r0, [r7, #12] - 803567a: 60b9 str r1, [r7, #8] - 803567c: 607a str r2, [r7, #4] + 80355de: b580 push {r7, lr} + 80355e0: b086 sub sp, #24 + 80355e2: af00 add r7, sp, #0 + 80355e4: 60f8 str r0, [r7, #12] + 80355e6: 60b9 str r1, [r7, #8] + 80355e8: 607a str r2, [r7, #4] if(size >= SMALL_BLOCK_SIZE) { - 803567e: 68fb ldr r3, [r7, #12] - 8035680: 2b7f cmp r3, #127 ; 0x7f - 8035682: d90d bls.n 80356a0 + 80355ea: 68fb ldr r3, [r7, #12] + 80355ec: 2b7f cmp r3, #127 ; 0x7f + 80355ee: d90d bls.n 803560c const size_t round = (1 << (tlsf_fls_sizet(size) - SL_INDEX_COUNT_LOG2)) - 1; - 8035684: 68f8 ldr r0, [r7, #12] - 8035686: f7ff fe34 bl 80352f2 - 803568a: 4603 mov r3, r0 - 803568c: 3b05 subs r3, #5 - 803568e: 2201 movs r2, #1 - 8035690: fa02 f303 lsl.w r3, r2, r3 - 8035694: 3b01 subs r3, #1 - 8035696: 617b str r3, [r7, #20] + 80355f0: 68f8 ldr r0, [r7, #12] + 80355f2: f7ff fe34 bl 803525e + 80355f6: 4603 mov r3, r0 + 80355f8: 3b05 subs r3, #5 + 80355fa: 2201 movs r2, #1 + 80355fc: fa02 f303 lsl.w r3, r2, r3 + 8035600: 3b01 subs r3, #1 + 8035602: 617b str r3, [r7, #20] size += round; - 8035698: 68fa ldr r2, [r7, #12] - 803569a: 697b ldr r3, [r7, #20] - 803569c: 4413 add r3, r2 - 803569e: 60fb str r3, [r7, #12] + 8035604: 68fa ldr r2, [r7, #12] + 8035606: 697b ldr r3, [r7, #20] + 8035608: 4413 add r3, r2 + 803560a: 60fb str r3, [r7, #12] } mapping_insert(size, fli, sli); - 80356a0: 687a ldr r2, [r7, #4] - 80356a2: 68b9 ldr r1, [r7, #8] - 80356a4: 68f8 ldr r0, [r7, #12] - 80356a6: f7ff ffb9 bl 803561c + 803560c: 687a ldr r2, [r7, #4] + 803560e: 68b9 ldr r1, [r7, #8] + 8035610: 68f8 ldr r0, [r7, #12] + 8035612: f7ff ffb9 bl 8035588 } - 80356aa: bf00 nop - 80356ac: 3718 adds r7, #24 - 80356ae: 46bd mov sp, r7 - 80356b0: bd80 pop {r7, pc} + 8035616: bf00 nop + 8035618: 3718 adds r7, #24 + 803561a: 46bd mov sp, r7 + 803561c: bd80 pop {r7, pc} -080356b2 : +0803561e : static block_header_t * search_suitable_block(control_t * control, int * fli, int * sli) { - 80356b2: b580 push {r7, lr} - 80356b4: b088 sub sp, #32 - 80356b6: af00 add r7, sp, #0 - 80356b8: 60f8 str r0, [r7, #12] - 80356ba: 60b9 str r1, [r7, #8] - 80356bc: 607a str r2, [r7, #4] + 803561e: b580 push {r7, lr} + 8035620: b088 sub sp, #32 + 8035622: af00 add r7, sp, #0 + 8035624: 60f8 str r0, [r7, #12] + 8035626: 60b9 str r1, [r7, #8] + 8035628: 607a str r2, [r7, #4] int fl = *fli; - 80356be: 68bb ldr r3, [r7, #8] - 80356c0: 681b ldr r3, [r3, #0] - 80356c2: 61fb str r3, [r7, #28] + 803562a: 68bb ldr r3, [r7, #8] + 803562c: 681b ldr r3, [r3, #0] + 803562e: 61fb str r3, [r7, #28] int sl = *sli; - 80356c4: 687b ldr r3, [r7, #4] - 80356c6: 681b ldr r3, [r3, #0] - 80356c8: 617b str r3, [r7, #20] + 8035630: 687b ldr r3, [r7, #4] + 8035632: 681b ldr r3, [r3, #0] + 8035634: 617b str r3, [r7, #20] /* ** First, search for a block in the list associated with the given ** fl/sl index. */ unsigned int sl_map = control->sl_bitmap[fl] & (~0U << sl); - 80356ca: 68fa ldr r2, [r7, #12] - 80356cc: 69fb ldr r3, [r7, #28] - 80356ce: 3304 adds r3, #4 - 80356d0: 009b lsls r3, r3, #2 - 80356d2: 4413 add r3, r2 - 80356d4: 685a ldr r2, [r3, #4] - 80356d6: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff - 80356da: 697b ldr r3, [r7, #20] - 80356dc: fa01 f303 lsl.w r3, r1, r3 - 80356e0: 4013 ands r3, r2 - 80356e2: 61bb str r3, [r7, #24] + 8035636: 68fa ldr r2, [r7, #12] + 8035638: 69fb ldr r3, [r7, #28] + 803563a: 3304 adds r3, #4 + 803563c: 009b lsls r3, r3, #2 + 803563e: 4413 add r3, r2 + 8035640: 685a ldr r2, [r3, #4] + 8035642: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff + 8035646: 697b ldr r3, [r7, #20] + 8035648: fa01 f303 lsl.w r3, r1, r3 + 803564c: 4013 ands r3, r2 + 803564e: 61bb str r3, [r7, #24] if(!sl_map) { - 80356e4: 69bb ldr r3, [r7, #24] - 80356e6: 2b00 cmp r3, #0 - 80356e8: d11c bne.n 8035724 + 8035650: 69bb ldr r3, [r7, #24] + 8035652: 2b00 cmp r3, #0 + 8035654: d11c bne.n 8035690 /* No block exists. Search in the next largest first-level list. */ const unsigned int fl_map = control->fl_bitmap & (~0U << (fl + 1)); - 80356ea: 68fb ldr r3, [r7, #12] - 80356ec: 691a ldr r2, [r3, #16] - 80356ee: 69fb ldr r3, [r7, #28] - 80356f0: 3301 adds r3, #1 - 80356f2: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff - 80356f6: fa01 f303 lsl.w r3, r1, r3 - 80356fa: 4013 ands r3, r2 - 80356fc: 613b str r3, [r7, #16] + 8035656: 68fb ldr r3, [r7, #12] + 8035658: 691a ldr r2, [r3, #16] + 803565a: 69fb ldr r3, [r7, #28] + 803565c: 3301 adds r3, #1 + 803565e: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff + 8035662: fa01 f303 lsl.w r3, r1, r3 + 8035666: 4013 ands r3, r2 + 8035668: 613b str r3, [r7, #16] if(!fl_map) { - 80356fe: 693b ldr r3, [r7, #16] - 8035700: 2b00 cmp r3, #0 - 8035702: d101 bne.n 8035708 + 803566a: 693b ldr r3, [r7, #16] + 803566c: 2b00 cmp r3, #0 + 803566e: d101 bne.n 8035674 /* No free blocks available, memory has been exhausted. */ return 0; - 8035704: 2300 movs r3, #0 - 8035706: e021 b.n 803574c + 8035670: 2300 movs r3, #0 + 8035672: e021 b.n 80356b8 } fl = tlsf_ffs(fl_map); - 8035708: 6938 ldr r0, [r7, #16] - 803570a: f7ff fdde bl 80352ca - 803570e: 61f8 str r0, [r7, #28] + 8035674: 6938 ldr r0, [r7, #16] + 8035676: f7ff fdde bl 8035236 + 803567a: 61f8 str r0, [r7, #28] *fli = fl; - 8035710: 68bb ldr r3, [r7, #8] - 8035712: 69fa ldr r2, [r7, #28] - 8035714: 601a str r2, [r3, #0] + 803567c: 68bb ldr r3, [r7, #8] + 803567e: 69fa ldr r2, [r7, #28] + 8035680: 601a str r2, [r3, #0] sl_map = control->sl_bitmap[fl]; - 8035716: 68fa ldr r2, [r7, #12] - 8035718: 69fb ldr r3, [r7, #28] - 803571a: 3304 adds r3, #4 - 803571c: 009b lsls r3, r3, #2 - 803571e: 4413 add r3, r2 - 8035720: 685b ldr r3, [r3, #4] - 8035722: 61bb str r3, [r7, #24] + 8035682: 68fa ldr r2, [r7, #12] + 8035684: 69fb ldr r3, [r7, #28] + 8035686: 3304 adds r3, #4 + 8035688: 009b lsls r3, r3, #2 + 803568a: 4413 add r3, r2 + 803568c: 685b ldr r3, [r3, #4] + 803568e: 61bb str r3, [r7, #24] } tlsf_assert(sl_map && "internal error - second level bitmap is null"); - 8035724: 69bb ldr r3, [r7, #24] - 8035726: 2b00 cmp r3, #0 - 8035728: d100 bne.n 803572c - 803572a: e7fe b.n 803572a + 8035690: 69bb ldr r3, [r7, #24] + 8035692: 2b00 cmp r3, #0 + 8035694: d100 bne.n 8035698 + 8035696: e7fe b.n 8035696 sl = tlsf_ffs(sl_map); - 803572c: 69b8 ldr r0, [r7, #24] - 803572e: f7ff fdcc bl 80352ca - 8035732: 6178 str r0, [r7, #20] + 8035698: 69b8 ldr r0, [r7, #24] + 803569a: f7ff fdcc bl 8035236 + 803569e: 6178 str r0, [r7, #20] *sli = sl; - 8035734: 687b ldr r3, [r7, #4] - 8035736: 697a ldr r2, [r7, #20] - 8035738: 601a str r2, [r3, #0] + 80356a0: 687b ldr r3, [r7, #4] + 80356a2: 697a ldr r2, [r7, #20] + 80356a4: 601a str r2, [r3, #0] /* Return the first block in the free list. */ return control->blocks[fl][sl]; - 803573a: 68fa ldr r2, [r7, #12] - 803573c: 69fb ldr r3, [r7, #28] - 803573e: 0159 lsls r1, r3, #5 - 8035740: 697b ldr r3, [r7, #20] - 8035742: 440b add r3, r1 - 8035744: 330c adds r3, #12 - 8035746: 009b lsls r3, r3, #2 - 8035748: 4413 add r3, r2 - 803574a: 685b ldr r3, [r3, #4] + 80356a6: 68fa ldr r2, [r7, #12] + 80356a8: 69fb ldr r3, [r7, #28] + 80356aa: 0159 lsls r1, r3, #5 + 80356ac: 697b ldr r3, [r7, #20] + 80356ae: 440b add r3, r1 + 80356b0: 330c adds r3, #12 + 80356b2: 009b lsls r3, r3, #2 + 80356b4: 4413 add r3, r2 + 80356b6: 685b ldr r3, [r3, #4] } - 803574c: 4618 mov r0, r3 - 803574e: 3720 adds r7, #32 - 8035750: 46bd mov sp, r7 - 8035752: bd80 pop {r7, pc} + 80356b8: 4618 mov r0, r3 + 80356ba: 3720 adds r7, #32 + 80356bc: 46bd mov sp, r7 + 80356be: bd80 pop {r7, pc} -08035754 : +080356c0 : /* Remove a free block from the free list.*/ static void remove_free_block(control_t * control, block_header_t * block, int fl, int sl) { - 8035754: b480 push {r7} - 8035756: b087 sub sp, #28 - 8035758: af00 add r7, sp, #0 - 803575a: 60f8 str r0, [r7, #12] - 803575c: 60b9 str r1, [r7, #8] - 803575e: 607a str r2, [r7, #4] - 8035760: 603b str r3, [r7, #0] + 80356c0: b480 push {r7} + 80356c2: b087 sub sp, #28 + 80356c4: af00 add r7, sp, #0 + 80356c6: 60f8 str r0, [r7, #12] + 80356c8: 60b9 str r1, [r7, #8] + 80356ca: 607a str r2, [r7, #4] + 80356cc: 603b str r3, [r7, #0] block_header_t * prev = block->prev_free; - 8035762: 68bb ldr r3, [r7, #8] - 8035764: 68db ldr r3, [r3, #12] - 8035766: 617b str r3, [r7, #20] + 80356ce: 68bb ldr r3, [r7, #8] + 80356d0: 68db ldr r3, [r3, #12] + 80356d2: 617b str r3, [r7, #20] block_header_t * next = block->next_free; - 8035768: 68bb ldr r3, [r7, #8] - 803576a: 689b ldr r3, [r3, #8] - 803576c: 613b str r3, [r7, #16] + 80356d4: 68bb ldr r3, [r7, #8] + 80356d6: 689b ldr r3, [r3, #8] + 80356d8: 613b str r3, [r7, #16] tlsf_assert(prev && "prev_free field can not be null"); - 803576e: 697b ldr r3, [r7, #20] - 8035770: 2b00 cmp r3, #0 - 8035772: d100 bne.n 8035776 - 8035774: e7fe b.n 8035774 + 80356da: 697b ldr r3, [r7, #20] + 80356dc: 2b00 cmp r3, #0 + 80356de: d100 bne.n 80356e2 + 80356e0: e7fe b.n 80356e0 tlsf_assert(next && "next_free field can not be null"); - 8035776: 693b ldr r3, [r7, #16] - 8035778: 2b00 cmp r3, #0 - 803577a: d100 bne.n 803577e - 803577c: e7fe b.n 803577c + 80356e2: 693b ldr r3, [r7, #16] + 80356e4: 2b00 cmp r3, #0 + 80356e6: d100 bne.n 80356ea + 80356e8: e7fe b.n 80356e8 next->prev_free = prev; - 803577e: 693b ldr r3, [r7, #16] - 8035780: 697a ldr r2, [r7, #20] - 8035782: 60da str r2, [r3, #12] + 80356ea: 693b ldr r3, [r7, #16] + 80356ec: 697a ldr r2, [r7, #20] + 80356ee: 60da str r2, [r3, #12] prev->next_free = next; - 8035784: 697b ldr r3, [r7, #20] - 8035786: 693a ldr r2, [r7, #16] - 8035788: 609a str r2, [r3, #8] + 80356f0: 697b ldr r3, [r7, #20] + 80356f2: 693a ldr r2, [r7, #16] + 80356f4: 609a str r2, [r3, #8] /* If this block is the head of the free list, set new head. */ if(control->blocks[fl][sl] == block) { + 80356f6: 68fa ldr r2, [r7, #12] + 80356f8: 687b ldr r3, [r7, #4] + 80356fa: 0159 lsls r1, r3, #5 + 80356fc: 683b ldr r3, [r7, #0] + 80356fe: 440b add r3, r1 + 8035700: 330c adds r3, #12 + 8035702: 009b lsls r3, r3, #2 + 8035704: 4413 add r3, r2 + 8035706: 685b ldr r3, [r3, #4] + 8035708: 68ba ldr r2, [r7, #8] + 803570a: 429a cmp r2, r3 + 803570c: d131 bne.n 8035772 + control->blocks[fl][sl] = next; + 803570e: 68fa ldr r2, [r7, #12] + 8035710: 687b ldr r3, [r7, #4] + 8035712: 0159 lsls r1, r3, #5 + 8035714: 683b ldr r3, [r7, #0] + 8035716: 440b add r3, r1 + 8035718: 330c adds r3, #12 + 803571a: 009b lsls r3, r3, #2 + 803571c: 4413 add r3, r2 + 803571e: 693a ldr r2, [r7, #16] + 8035720: 605a str r2, [r3, #4] + + /* If the new head is null, clear the bitmap. */ + if(next == &control->block_null) { + 8035722: 68fb ldr r3, [r7, #12] + 8035724: 693a ldr r2, [r7, #16] + 8035726: 429a cmp r2, r3 + 8035728: d123 bne.n 8035772 + control->sl_bitmap[fl] &= ~(1U << sl); + 803572a: 68fa ldr r2, [r7, #12] + 803572c: 687b ldr r3, [r7, #4] + 803572e: 3304 adds r3, #4 + 8035730: 009b lsls r3, r3, #2 + 8035732: 4413 add r3, r2 + 8035734: 685a ldr r2, [r3, #4] + 8035736: 2101 movs r1, #1 + 8035738: 683b ldr r3, [r7, #0] + 803573a: fa01 f303 lsl.w r3, r1, r3 + 803573e: 43db mvns r3, r3 + 8035740: 401a ands r2, r3 + 8035742: 68f9 ldr r1, [r7, #12] + 8035744: 687b ldr r3, [r7, #4] + 8035746: 3304 adds r3, #4 + 8035748: 009b lsls r3, r3, #2 + 803574a: 440b add r3, r1 + 803574c: 605a str r2, [r3, #4] + + /* If the second bitmap is now empty, clear the fl bitmap. */ + if(!control->sl_bitmap[fl]) { + 803574e: 68fa ldr r2, [r7, #12] + 8035750: 687b ldr r3, [r7, #4] + 8035752: 3304 adds r3, #4 + 8035754: 009b lsls r3, r3, #2 + 8035756: 4413 add r3, r2 + 8035758: 685b ldr r3, [r3, #4] + 803575a: 2b00 cmp r3, #0 + 803575c: d109 bne.n 8035772 + control->fl_bitmap &= ~(1U << fl); + 803575e: 68fb ldr r3, [r7, #12] + 8035760: 691a ldr r2, [r3, #16] + 8035762: 2101 movs r1, #1 + 8035764: 687b ldr r3, [r7, #4] + 8035766: fa01 f303 lsl.w r3, r1, r3 + 803576a: 43db mvns r3, r3 + 803576c: 401a ands r2, r3 + 803576e: 68fb ldr r3, [r7, #12] + 8035770: 611a str r2, [r3, #16] + } + } + } +} + 8035772: bf00 nop + 8035774: 371c adds r7, #28 + 8035776: 46bd mov sp, r7 + 8035778: bc80 pop {r7} + 803577a: 4770 bx lr + +0803577c : + +/* Insert a free block into the free block list. */ +static void insert_free_block(control_t * control, block_header_t * block, int fl, int sl) +{ + 803577c: b590 push {r4, r7, lr} + 803577e: b087 sub sp, #28 + 8035780: af00 add r7, sp, #0 + 8035782: 60f8 str r0, [r7, #12] + 8035784: 60b9 str r1, [r7, #8] + 8035786: 607a str r2, [r7, #4] + 8035788: 603b str r3, [r7, #0] + block_header_t * current = control->blocks[fl][sl]; 803578a: 68fa ldr r2, [r7, #12] 803578c: 687b ldr r3, [r7, #4] 803578e: 0159 lsls r1, r3, #5 @@ -120989,18456 +121002,18455 @@ static void remove_free_block(control_t * control, block_header_t * block, int f 8035796: 009b lsls r3, r3, #2 8035798: 4413 add r3, r2 803579a: 685b ldr r3, [r3, #4] - 803579c: 68ba ldr r2, [r7, #8] - 803579e: 429a cmp r2, r3 - 80357a0: d131 bne.n 8035806 - control->blocks[fl][sl] = next; - 80357a2: 68fa ldr r2, [r7, #12] - 80357a4: 687b ldr r3, [r7, #4] - 80357a6: 0159 lsls r1, r3, #5 - 80357a8: 683b ldr r3, [r7, #0] - 80357aa: 440b add r3, r1 - 80357ac: 330c adds r3, #12 - 80357ae: 009b lsls r3, r3, #2 - 80357b0: 4413 add r3, r2 - 80357b2: 693a ldr r2, [r7, #16] - 80357b4: 605a str r2, [r3, #4] - - /* If the new head is null, clear the bitmap. */ - if(next == &control->block_null) { - 80357b6: 68fb ldr r3, [r7, #12] - 80357b8: 693a ldr r2, [r7, #16] - 80357ba: 429a cmp r2, r3 - 80357bc: d123 bne.n 8035806 - control->sl_bitmap[fl] &= ~(1U << sl); - 80357be: 68fa ldr r2, [r7, #12] - 80357c0: 687b ldr r3, [r7, #4] - 80357c2: 3304 adds r3, #4 - 80357c4: 009b lsls r3, r3, #2 - 80357c6: 4413 add r3, r2 - 80357c8: 685a ldr r2, [r3, #4] - 80357ca: 2101 movs r1, #1 - 80357cc: 683b ldr r3, [r7, #0] - 80357ce: fa01 f303 lsl.w r3, r1, r3 - 80357d2: 43db mvns r3, r3 - 80357d4: 401a ands r2, r3 - 80357d6: 68f9 ldr r1, [r7, #12] - 80357d8: 687b ldr r3, [r7, #4] - 80357da: 3304 adds r3, #4 - 80357dc: 009b lsls r3, r3, #2 - 80357de: 440b add r3, r1 - 80357e0: 605a str r2, [r3, #4] - - /* If the second bitmap is now empty, clear the fl bitmap. */ - if(!control->sl_bitmap[fl]) { - 80357e2: 68fa ldr r2, [r7, #12] - 80357e4: 687b ldr r3, [r7, #4] - 80357e6: 3304 adds r3, #4 - 80357e8: 009b lsls r3, r3, #2 - 80357ea: 4413 add r3, r2 - 80357ec: 685b ldr r3, [r3, #4] - 80357ee: 2b00 cmp r3, #0 - 80357f0: d109 bne.n 8035806 - control->fl_bitmap &= ~(1U << fl); - 80357f2: 68fb ldr r3, [r7, #12] - 80357f4: 691a ldr r2, [r3, #16] - 80357f6: 2101 movs r1, #1 - 80357f8: 687b ldr r3, [r7, #4] - 80357fa: fa01 f303 lsl.w r3, r1, r3 - 80357fe: 43db mvns r3, r3 - 8035800: 401a ands r2, r3 - 8035802: 68fb ldr r3, [r7, #12] - 8035804: 611a str r2, [r3, #16] - } - } - } -} - 8035806: bf00 nop - 8035808: 371c adds r7, #28 - 803580a: 46bd mov sp, r7 - 803580c: bc80 pop {r7} - 803580e: 4770 bx lr - -08035810 : - -/* Insert a free block into the free block list. */ -static void insert_free_block(control_t * control, block_header_t * block, int fl, int sl) -{ - 8035810: b590 push {r4, r7, lr} - 8035812: b087 sub sp, #28 - 8035814: af00 add r7, sp, #0 - 8035816: 60f8 str r0, [r7, #12] - 8035818: 60b9 str r1, [r7, #8] - 803581a: 607a str r2, [r7, #4] - 803581c: 603b str r3, [r7, #0] - block_header_t * current = control->blocks[fl][sl]; - 803581e: 68fa ldr r2, [r7, #12] - 8035820: 687b ldr r3, [r7, #4] - 8035822: 0159 lsls r1, r3, #5 - 8035824: 683b ldr r3, [r7, #0] - 8035826: 440b add r3, r1 - 8035828: 330c adds r3, #12 - 803582a: 009b lsls r3, r3, #2 - 803582c: 4413 add r3, r2 - 803582e: 685b ldr r3, [r3, #4] - 8035830: 617b str r3, [r7, #20] + 803579c: 617b str r3, [r7, #20] tlsf_assert(current && "free list cannot have a null entry"); - 8035832: 697b ldr r3, [r7, #20] - 8035834: 2b00 cmp r3, #0 - 8035836: d100 bne.n 803583a - 8035838: e7fe b.n 8035838 + 803579e: 697b ldr r3, [r7, #20] + 80357a0: 2b00 cmp r3, #0 + 80357a2: d100 bne.n 80357a6 + 80357a4: e7fe b.n 80357a4 tlsf_assert(block && "cannot insert a null entry into the free list"); - 803583a: 68bb ldr r3, [r7, #8] - 803583c: 2b00 cmp r3, #0 - 803583e: d100 bne.n 8035842 - 8035840: e7fe b.n 8035840 + 80357a6: 68bb ldr r3, [r7, #8] + 80357a8: 2b00 cmp r3, #0 + 80357aa: d100 bne.n 80357ae + 80357ac: e7fe b.n 80357ac block->next_free = current; - 8035842: 68bb ldr r3, [r7, #8] - 8035844: 697a ldr r2, [r7, #20] - 8035846: 609a str r2, [r3, #8] + 80357ae: 68bb ldr r3, [r7, #8] + 80357b0: 697a ldr r2, [r7, #20] + 80357b2: 609a str r2, [r3, #8] block->prev_free = &control->block_null; - 8035848: 68fa ldr r2, [r7, #12] - 803584a: 68bb ldr r3, [r7, #8] - 803584c: 60da str r2, [r3, #12] + 80357b4: 68fa ldr r2, [r7, #12] + 80357b6: 68bb ldr r3, [r7, #8] + 80357b8: 60da str r2, [r3, #12] current->prev_free = block; - 803584e: 697b ldr r3, [r7, #20] - 8035850: 68ba ldr r2, [r7, #8] - 8035852: 60da str r2, [r3, #12] + 80357ba: 697b ldr r3, [r7, #20] + 80357bc: 68ba ldr r2, [r7, #8] + 80357be: 60da str r2, [r3, #12] tlsf_assert(block_to_ptr(block) == align_ptr(block_to_ptr(block), ALIGN_SIZE) - 8035854: 68b8 ldr r0, [r7, #8] - 8035856: f7ff fdfe bl 8035456 - 803585a: 4604 mov r4, r0 - 803585c: 68b8 ldr r0, [r7, #8] - 803585e: f7ff fdfa bl 8035456 - 8035862: 4603 mov r3, r0 - 8035864: 2104 movs r1, #4 - 8035866: 4618 mov r0, r3 - 8035868: f7ff fe9f bl 80355aa - 803586c: 4603 mov r3, r0 - 803586e: 429c cmp r4, r3 - 8035870: d000 beq.n 8035874 - 8035872: e7fe b.n 8035872 + 80357c0: 68b8 ldr r0, [r7, #8] + 80357c2: f7ff fdfe bl 80353c2 + 80357c6: 4604 mov r4, r0 + 80357c8: 68b8 ldr r0, [r7, #8] + 80357ca: f7ff fdfa bl 80353c2 + 80357ce: 4603 mov r3, r0 + 80357d0: 2104 movs r1, #4 + 80357d2: 4618 mov r0, r3 + 80357d4: f7ff fe9f bl 8035516 + 80357d8: 4603 mov r3, r0 + 80357da: 429c cmp r4, r3 + 80357dc: d000 beq.n 80357e0 + 80357de: e7fe b.n 80357de && "block not aligned properly"); /* ** Insert the new block at the head of the list, and mark the first- ** and second-level bitmaps appropriately. */ control->blocks[fl][sl] = block; - 8035874: 68fa ldr r2, [r7, #12] - 8035876: 687b ldr r3, [r7, #4] - 8035878: 0159 lsls r1, r3, #5 - 803587a: 683b ldr r3, [r7, #0] - 803587c: 440b add r3, r1 - 803587e: 330c adds r3, #12 - 8035880: 009b lsls r3, r3, #2 - 8035882: 4413 add r3, r2 - 8035884: 68ba ldr r2, [r7, #8] - 8035886: 605a str r2, [r3, #4] + 80357e0: 68fa ldr r2, [r7, #12] + 80357e2: 687b ldr r3, [r7, #4] + 80357e4: 0159 lsls r1, r3, #5 + 80357e6: 683b ldr r3, [r7, #0] + 80357e8: 440b add r3, r1 + 80357ea: 330c adds r3, #12 + 80357ec: 009b lsls r3, r3, #2 + 80357ee: 4413 add r3, r2 + 80357f0: 68ba ldr r2, [r7, #8] + 80357f2: 605a str r2, [r3, #4] control->fl_bitmap |= (1U << fl); - 8035888: 68fb ldr r3, [r7, #12] - 803588a: 691a ldr r2, [r3, #16] - 803588c: 2101 movs r1, #1 - 803588e: 687b ldr r3, [r7, #4] - 8035890: fa01 f303 lsl.w r3, r1, r3 - 8035894: 431a orrs r2, r3 - 8035896: 68fb ldr r3, [r7, #12] - 8035898: 611a str r2, [r3, #16] + 80357f4: 68fb ldr r3, [r7, #12] + 80357f6: 691a ldr r2, [r3, #16] + 80357f8: 2101 movs r1, #1 + 80357fa: 687b ldr r3, [r7, #4] + 80357fc: fa01 f303 lsl.w r3, r1, r3 + 8035800: 431a orrs r2, r3 + 8035802: 68fb ldr r3, [r7, #12] + 8035804: 611a str r2, [r3, #16] control->sl_bitmap[fl] |= (1U << sl); - 803589a: 68fa ldr r2, [r7, #12] - 803589c: 687b ldr r3, [r7, #4] - 803589e: 3304 adds r3, #4 - 80358a0: 009b lsls r3, r3, #2 - 80358a2: 4413 add r3, r2 - 80358a4: 685a ldr r2, [r3, #4] - 80358a6: 2101 movs r1, #1 - 80358a8: 683b ldr r3, [r7, #0] - 80358aa: fa01 f303 lsl.w r3, r1, r3 - 80358ae: 431a orrs r2, r3 - 80358b0: 68f9 ldr r1, [r7, #12] - 80358b2: 687b ldr r3, [r7, #4] - 80358b4: 3304 adds r3, #4 - 80358b6: 009b lsls r3, r3, #2 - 80358b8: 440b add r3, r1 - 80358ba: 605a str r2, [r3, #4] + 8035806: 68fa ldr r2, [r7, #12] + 8035808: 687b ldr r3, [r7, #4] + 803580a: 3304 adds r3, #4 + 803580c: 009b lsls r3, r3, #2 + 803580e: 4413 add r3, r2 + 8035810: 685a ldr r2, [r3, #4] + 8035812: 2101 movs r1, #1 + 8035814: 683b ldr r3, [r7, #0] + 8035816: fa01 f303 lsl.w r3, r1, r3 + 803581a: 431a orrs r2, r3 + 803581c: 68f9 ldr r1, [r7, #12] + 803581e: 687b ldr r3, [r7, #4] + 8035820: 3304 adds r3, #4 + 8035822: 009b lsls r3, r3, #2 + 8035824: 440b add r3, r1 + 8035826: 605a str r2, [r3, #4] } - 80358bc: bf00 nop - 80358be: 371c adds r7, #28 - 80358c0: 46bd mov sp, r7 - 80358c2: bd90 pop {r4, r7, pc} + 8035828: bf00 nop + 803582a: 371c adds r7, #28 + 803582c: 46bd mov sp, r7 + 803582e: bd90 pop {r4, r7, pc} -080358c4 : +08035830 : /* Remove a given block from the free list. */ static void block_remove(control_t * control, block_header_t * block) { - 80358c4: b580 push {r7, lr} - 80358c6: b084 sub sp, #16 - 80358c8: af00 add r7, sp, #0 - 80358ca: 6078 str r0, [r7, #4] - 80358cc: 6039 str r1, [r7, #0] + 8035830: b580 push {r7, lr} + 8035832: b084 sub sp, #16 + 8035834: af00 add r7, sp, #0 + 8035836: 6078 str r0, [r7, #4] + 8035838: 6039 str r1, [r7, #0] int fl, sl; mapping_insert(block_size(block), &fl, &sl); - 80358ce: 6838 ldr r0, [r7, #0] - 80358d0: f7ff fd25 bl 803531e - 80358d4: f107 0208 add.w r2, r7, #8 - 80358d8: f107 030c add.w r3, r7, #12 - 80358dc: 4619 mov r1, r3 - 80358de: f7ff fe9d bl 803561c + 803583a: 6838 ldr r0, [r7, #0] + 803583c: f7ff fd25 bl 803528a + 8035840: f107 0208 add.w r2, r7, #8 + 8035844: f107 030c add.w r3, r7, #12 + 8035848: 4619 mov r1, r3 + 803584a: f7ff fe9d bl 8035588 remove_free_block(control, block, fl, sl); - 80358e2: 68fa ldr r2, [r7, #12] - 80358e4: 68bb ldr r3, [r7, #8] - 80358e6: 6839 ldr r1, [r7, #0] - 80358e8: 6878 ldr r0, [r7, #4] - 80358ea: f7ff ff33 bl 8035754 + 803584e: 68fa ldr r2, [r7, #12] + 8035850: 68bb ldr r3, [r7, #8] + 8035852: 6839 ldr r1, [r7, #0] + 8035854: 6878 ldr r0, [r7, #4] + 8035856: f7ff ff33 bl 80356c0 } - 80358ee: bf00 nop - 80358f0: 3710 adds r7, #16 - 80358f2: 46bd mov sp, r7 - 80358f4: bd80 pop {r7, pc} + 803585a: bf00 nop + 803585c: 3710 adds r7, #16 + 803585e: 46bd mov sp, r7 + 8035860: bd80 pop {r7, pc} -080358f6 : +08035862 : /* Insert a given block into the free list. */ static void block_insert(control_t * control, block_header_t * block) { - 80358f6: b580 push {r7, lr} - 80358f8: b084 sub sp, #16 - 80358fa: af00 add r7, sp, #0 - 80358fc: 6078 str r0, [r7, #4] - 80358fe: 6039 str r1, [r7, #0] + 8035862: b580 push {r7, lr} + 8035864: b084 sub sp, #16 + 8035866: af00 add r7, sp, #0 + 8035868: 6078 str r0, [r7, #4] + 803586a: 6039 str r1, [r7, #0] int fl, sl; mapping_insert(block_size(block), &fl, &sl); - 8035900: 6838 ldr r0, [r7, #0] - 8035902: f7ff fd0c bl 803531e - 8035906: f107 0208 add.w r2, r7, #8 - 803590a: f107 030c add.w r3, r7, #12 - 803590e: 4619 mov r1, r3 - 8035910: f7ff fe84 bl 803561c + 803586c: 6838 ldr r0, [r7, #0] + 803586e: f7ff fd0c bl 803528a + 8035872: f107 0208 add.w r2, r7, #8 + 8035876: f107 030c add.w r3, r7, #12 + 803587a: 4619 mov r1, r3 + 803587c: f7ff fe84 bl 8035588 insert_free_block(control, block, fl, sl); - 8035914: 68fa ldr r2, [r7, #12] - 8035916: 68bb ldr r3, [r7, #8] - 8035918: 6839 ldr r1, [r7, #0] - 803591a: 6878 ldr r0, [r7, #4] - 803591c: f7ff ff78 bl 8035810 + 8035880: 68fa ldr r2, [r7, #12] + 8035882: 68bb ldr r3, [r7, #8] + 8035884: 6839 ldr r1, [r7, #0] + 8035886: 6878 ldr r0, [r7, #4] + 8035888: f7ff ff78 bl 803577c } - 8035920: bf00 nop - 8035922: 3710 adds r7, #16 - 8035924: 46bd mov sp, r7 - 8035926: bd80 pop {r7, pc} + 803588c: bf00 nop + 803588e: 3710 adds r7, #16 + 8035890: 46bd mov sp, r7 + 8035892: bd80 pop {r7, pc} -08035928 : +08035894 : static int block_can_split(block_header_t * block, size_t size) { - 8035928: b580 push {r7, lr} - 803592a: b082 sub sp, #8 - 803592c: af00 add r7, sp, #0 - 803592e: 6078 str r0, [r7, #4] - 8035930: 6039 str r1, [r7, #0] + 8035894: b580 push {r7, lr} + 8035896: b082 sub sp, #8 + 8035898: af00 add r7, sp, #0 + 803589a: 6078 str r0, [r7, #4] + 803589c: 6039 str r1, [r7, #0] return block_size(block) >= sizeof(block_header_t) + size; - 8035932: 6878 ldr r0, [r7, #4] - 8035934: f7ff fcf3 bl 803531e - 8035938: 4602 mov r2, r0 - 803593a: 683b ldr r3, [r7, #0] - 803593c: 3310 adds r3, #16 - 803593e: 429a cmp r2, r3 - 8035940: bf2c ite cs - 8035942: 2301 movcs r3, #1 - 8035944: 2300 movcc r3, #0 - 8035946: b2db uxtb r3, r3 + 803589e: 6878 ldr r0, [r7, #4] + 80358a0: f7ff fcf3 bl 803528a + 80358a4: 4602 mov r2, r0 + 80358a6: 683b ldr r3, [r7, #0] + 80358a8: 3310 adds r3, #16 + 80358aa: 429a cmp r2, r3 + 80358ac: bf2c ite cs + 80358ae: 2301 movcs r3, #1 + 80358b0: 2300 movcc r3, #0 + 80358b2: b2db uxtb r3, r3 } - 8035948: 4618 mov r0, r3 - 803594a: 3708 adds r7, #8 - 803594c: 46bd mov sp, r7 - 803594e: bd80 pop {r7, pc} + 80358b4: 4618 mov r0, r3 + 80358b6: 3708 adds r7, #8 + 80358b8: 46bd mov sp, r7 + 80358ba: bd80 pop {r7, pc} -08035950 : +080358bc : /* Split a block into two, the second of which is free. */ static block_header_t * block_split(block_header_t * block, size_t size) { - 8035950: b590 push {r4, r7, lr} - 8035952: b085 sub sp, #20 - 8035954: af00 add r7, sp, #0 - 8035956: 6078 str r0, [r7, #4] - 8035958: 6039 str r1, [r7, #0] + 80358bc: b590 push {r4, r7, lr} + 80358be: b085 sub sp, #20 + 80358c0: af00 add r7, sp, #0 + 80358c2: 6078 str r0, [r7, #4] + 80358c4: 6039 str r1, [r7, #0] /* Calculate the amount of space left in the remaining block. */ block_header_t * remaining = offset_to_block(block_to_ptr(block), size - block_header_overhead); - 803595a: 6878 ldr r0, [r7, #4] - 803595c: f7ff fd7b bl 8035456 - 8035960: 4602 mov r2, r0 - 8035962: 2104 movs r1, #4 - 8035964: 683b ldr r3, [r7, #0] - 8035966: 1a5b subs r3, r3, r1 - 8035968: 4619 mov r1, r3 - 803596a: 4610 mov r0, r2 - 803596c: f7ff fd7f bl 803546e - 8035970: 60f8 str r0, [r7, #12] + 80358c6: 6878 ldr r0, [r7, #4] + 80358c8: f7ff fd7b bl 80353c2 + 80358cc: 4602 mov r2, r0 + 80358ce: 2104 movs r1, #4 + 80358d0: 683b ldr r3, [r7, #0] + 80358d2: 1a5b subs r3, r3, r1 + 80358d4: 4619 mov r1, r3 + 80358d6: 4610 mov r0, r2 + 80358d8: f7ff fd7f bl 80353da + 80358dc: 60f8 str r0, [r7, #12] const size_t remain_size = block_size(block) - (size + block_header_overhead); - 8035972: 6878 ldr r0, [r7, #4] - 8035974: f7ff fcd3 bl 803531e - 8035978: 4602 mov r2, r0 - 803597a: 2104 movs r1, #4 - 803597c: 683b ldr r3, [r7, #0] - 803597e: 440b add r3, r1 - 8035980: 1ad3 subs r3, r2, r3 - 8035982: 60bb str r3, [r7, #8] + 80358de: 6878 ldr r0, [r7, #4] + 80358e0: f7ff fcd3 bl 803528a + 80358e4: 4602 mov r2, r0 + 80358e6: 2104 movs r1, #4 + 80358e8: 683b ldr r3, [r7, #0] + 80358ea: 440b add r3, r1 + 80358ec: 1ad3 subs r3, r2, r3 + 80358ee: 60bb str r3, [r7, #8] tlsf_assert(block_to_ptr(remaining) == align_ptr(block_to_ptr(remaining), ALIGN_SIZE) - 8035984: 68f8 ldr r0, [r7, #12] - 8035986: f7ff fd66 bl 8035456 - 803598a: 4604 mov r4, r0 - 803598c: 68f8 ldr r0, [r7, #12] - 803598e: f7ff fd62 bl 8035456 - 8035992: 4603 mov r3, r0 - 8035994: 2104 movs r1, #4 - 8035996: 4618 mov r0, r3 - 8035998: f7ff fe07 bl 80355aa - 803599c: 4603 mov r3, r0 - 803599e: 429c cmp r4, r3 - 80359a0: d000 beq.n 80359a4 - 80359a2: e7fe b.n 80359a2 + 80358f0: 68f8 ldr r0, [r7, #12] + 80358f2: f7ff fd66 bl 80353c2 + 80358f6: 4604 mov r4, r0 + 80358f8: 68f8 ldr r0, [r7, #12] + 80358fa: f7ff fd62 bl 80353c2 + 80358fe: 4603 mov r3, r0 + 8035900: 2104 movs r1, #4 + 8035902: 4618 mov r0, r3 + 8035904: f7ff fe07 bl 8035516 + 8035908: 4603 mov r3, r0 + 803590a: 429c cmp r4, r3 + 803590c: d000 beq.n 8035910 + 803590e: e7fe b.n 803590e && "remaining block not aligned properly"); tlsf_assert(block_size(block) == remain_size + size + block_header_overhead); - 80359a4: 6878 ldr r0, [r7, #4] - 80359a6: f7ff fcba bl 803531e - 80359aa: 4601 mov r1, r0 - 80359ac: 68ba ldr r2, [r7, #8] - 80359ae: 683b ldr r3, [r7, #0] - 80359b0: 4413 add r3, r2 - 80359b2: 2204 movs r2, #4 - 80359b4: 4413 add r3, r2 - 80359b6: 4299 cmp r1, r3 - 80359b8: d000 beq.n 80359bc - 80359ba: e7fe b.n 80359ba + 8035910: 6878 ldr r0, [r7, #4] + 8035912: f7ff fcba bl 803528a + 8035916: 4601 mov r1, r0 + 8035918: 68ba ldr r2, [r7, #8] + 803591a: 683b ldr r3, [r7, #0] + 803591c: 4413 add r3, r2 + 803591e: 2204 movs r2, #4 + 8035920: 4413 add r3, r2 + 8035922: 4299 cmp r1, r3 + 8035924: d000 beq.n 8035928 + 8035926: e7fe b.n 8035926 block_set_size(remaining, remain_size); - 80359bc: 68b9 ldr r1, [r7, #8] - 80359be: 68f8 ldr r0, [r7, #12] - 80359c0: f7ff fcbd bl 803533e + 8035928: 68b9 ldr r1, [r7, #8] + 803592a: 68f8 ldr r0, [r7, #12] + 803592c: f7ff fcbd bl 80352aa tlsf_assert(block_size(remaining) >= block_size_min && "block split with invalid size"); - 80359c4: 68f8 ldr r0, [r7, #12] - 80359c6: f7ff fcaa bl 803531e - 80359ca: 4603 mov r3, r0 - 80359cc: 220c movs r2, #12 - 80359ce: 4293 cmp r3, r2 - 80359d0: d200 bcs.n 80359d4 - 80359d2: e7fe b.n 80359d2 + 8035930: 68f8 ldr r0, [r7, #12] + 8035932: f7ff fcaa bl 803528a + 8035936: 4603 mov r3, r0 + 8035938: 220c movs r2, #12 + 803593a: 4293 cmp r3, r2 + 803593c: d200 bcs.n 8035940 + 803593e: e7fe b.n 803593e block_set_size(block, size); - 80359d4: 6839 ldr r1, [r7, #0] - 80359d6: 6878 ldr r0, [r7, #4] - 80359d8: f7ff fcb1 bl 803533e + 8035940: 6839 ldr r1, [r7, #0] + 8035942: 6878 ldr r0, [r7, #4] + 8035944: f7ff fcb1 bl 80352aa block_mark_as_free(remaining); - 80359dc: 68f8 ldr r0, [r7, #12] - 80359de: f7ff fd93 bl 8035508 + 8035948: 68f8 ldr r0, [r7, #12] + 803594a: f7ff fd93 bl 8035474 return remaining; - 80359e2: 68fb ldr r3, [r7, #12] + 803594e: 68fb ldr r3, [r7, #12] } - 80359e4: 4618 mov r0, r3 - 80359e6: 3714 adds r7, #20 - 80359e8: 46bd mov sp, r7 - 80359ea: bd90 pop {r4, r7, pc} + 8035950: 4618 mov r0, r3 + 8035952: 3714 adds r7, #20 + 8035954: 46bd mov sp, r7 + 8035956: bd90 pop {r4, r7, pc} -080359ec : +08035958 : /* Absorb a free block's storage into an adjacent previous free block. */ static block_header_t * block_absorb(block_header_t * prev, block_header_t * block) { - 80359ec: b580 push {r7, lr} - 80359ee: b082 sub sp, #8 - 80359f0: af00 add r7, sp, #0 - 80359f2: 6078 str r0, [r7, #4] - 80359f4: 6039 str r1, [r7, #0] + 8035958: b580 push {r7, lr} + 803595a: b082 sub sp, #8 + 803595c: af00 add r7, sp, #0 + 803595e: 6078 str r0, [r7, #4] + 8035960: 6039 str r1, [r7, #0] tlsf_assert(!block_is_last(prev) && "previous block can't be last"); - 80359f6: 6878 ldr r0, [r7, #4] - 80359f8: f7ff fcb7 bl 803536a - 80359fc: 4603 mov r3, r0 - 80359fe: 2b00 cmp r3, #0 - 8035a00: d000 beq.n 8035a04 - 8035a02: e7fe b.n 8035a02 + 8035962: 6878 ldr r0, [r7, #4] + 8035964: f7ff fcb7 bl 80352d6 + 8035968: 4603 mov r3, r0 + 803596a: 2b00 cmp r3, #0 + 803596c: d000 beq.n 8035970 + 803596e: e7fe b.n 803596e /* Note: Leaves flags untouched. */ prev->size += block_size(block) + block_header_overhead; - 8035a04: 6838 ldr r0, [r7, #0] - 8035a06: f7ff fc8a bl 803531e - 8035a0a: 4603 mov r3, r0 - 8035a0c: 2204 movs r2, #4 - 8035a0e: 441a add r2, r3 - 8035a10: 687b ldr r3, [r7, #4] - 8035a12: 685b ldr r3, [r3, #4] - 8035a14: 441a add r2, r3 - 8035a16: 687b ldr r3, [r7, #4] - 8035a18: 605a str r2, [r3, #4] + 8035970: 6838 ldr r0, [r7, #0] + 8035972: f7ff fc8a bl 803528a + 8035976: 4603 mov r3, r0 + 8035978: 2204 movs r2, #4 + 803597a: 441a add r2, r3 + 803597c: 687b ldr r3, [r7, #4] + 803597e: 685b ldr r3, [r3, #4] + 8035980: 441a add r2, r3 + 8035982: 687b ldr r3, [r7, #4] + 8035984: 605a str r2, [r3, #4] block_link_next(prev); - 8035a1a: 6878 ldr r0, [r7, #4] - 8035a1c: f7ff fd64 bl 80354e8 + 8035986: 6878 ldr r0, [r7, #4] + 8035988: f7ff fd64 bl 8035454 return prev; - 8035a20: 687b ldr r3, [r7, #4] + 803598c: 687b ldr r3, [r7, #4] } - 8035a22: 4618 mov r0, r3 - 8035a24: 3708 adds r7, #8 - 8035a26: 46bd mov sp, r7 - 8035a28: bd80 pop {r7, pc} + 803598e: 4618 mov r0, r3 + 8035990: 3708 adds r7, #8 + 8035992: 46bd mov sp, r7 + 8035994: bd80 pop {r7, pc} -08035a2a : +08035996 : /* Merge a just-freed block with an adjacent previous free block. */ static block_header_t * block_merge_prev(control_t * control, block_header_t * block) { - 8035a2a: b580 push {r7, lr} - 8035a2c: b084 sub sp, #16 - 8035a2e: af00 add r7, sp, #0 - 8035a30: 6078 str r0, [r7, #4] - 8035a32: 6039 str r1, [r7, #0] + 8035996: b580 push {r7, lr} + 8035998: b084 sub sp, #16 + 803599a: af00 add r7, sp, #0 + 803599c: 6078 str r0, [r7, #4] + 803599e: 6039 str r1, [r7, #0] if(block_is_prev_free(block)) { - 8035a34: 6838 ldr r0, [r7, #0] - 8035a36: f7ff fcd5 bl 80353e4 - 8035a3a: 4603 mov r3, r0 - 8035a3c: 2b00 cmp r3, #0 - 8035a3e: d017 beq.n 8035a70 + 80359a0: 6838 ldr r0, [r7, #0] + 80359a2: f7ff fcd5 bl 8035350 + 80359a6: 4603 mov r3, r0 + 80359a8: 2b00 cmp r3, #0 + 80359aa: d017 beq.n 80359dc block_header_t * prev = block_prev(block); - 8035a40: 6838 ldr r0, [r7, #0] - 8035a42: f7ff fd21 bl 8035488 - 8035a46: 60f8 str r0, [r7, #12] + 80359ac: 6838 ldr r0, [r7, #0] + 80359ae: f7ff fd21 bl 80353f4 + 80359b2: 60f8 str r0, [r7, #12] tlsf_assert(prev && "prev physical block can't be null"); - 8035a48: 68fb ldr r3, [r7, #12] - 8035a4a: 2b00 cmp r3, #0 - 8035a4c: d100 bne.n 8035a50 - 8035a4e: e7fe b.n 8035a4e + 80359b4: 68fb ldr r3, [r7, #12] + 80359b6: 2b00 cmp r3, #0 + 80359b8: d100 bne.n 80359bc + 80359ba: e7fe b.n 80359ba tlsf_assert(block_is_free(prev) && "prev block is not free though marked as such"); - 8035a50: 68f8 ldr r0, [r7, #12] - 8035a52: f7ff fc9b bl 803538c - 8035a56: 4603 mov r3, r0 - 8035a58: 2b00 cmp r3, #0 - 8035a5a: d100 bne.n 8035a5e - 8035a5c: e7fe b.n 8035a5c + 80359bc: 68f8 ldr r0, [r7, #12] + 80359be: f7ff fc9b bl 80352f8 + 80359c2: 4603 mov r3, r0 + 80359c4: 2b00 cmp r3, #0 + 80359c6: d100 bne.n 80359ca + 80359c8: e7fe b.n 80359c8 block_remove(control, prev); - 8035a5e: 68f9 ldr r1, [r7, #12] - 8035a60: 6878 ldr r0, [r7, #4] - 8035a62: f7ff ff2f bl 80358c4 + 80359ca: 68f9 ldr r1, [r7, #12] + 80359cc: 6878 ldr r0, [r7, #4] + 80359ce: f7ff ff2f bl 8035830 block = block_absorb(prev, block); - 8035a66: 6839 ldr r1, [r7, #0] - 8035a68: 68f8 ldr r0, [r7, #12] - 8035a6a: f7ff ffbf bl 80359ec - 8035a6e: 6038 str r0, [r7, #0] + 80359d2: 6839 ldr r1, [r7, #0] + 80359d4: 68f8 ldr r0, [r7, #12] + 80359d6: f7ff ffbf bl 8035958 + 80359da: 6038 str r0, [r7, #0] } return block; - 8035a70: 683b ldr r3, [r7, #0] + 80359dc: 683b ldr r3, [r7, #0] } - 8035a72: 4618 mov r0, r3 - 8035a74: 3710 adds r7, #16 - 8035a76: 46bd mov sp, r7 - 8035a78: bd80 pop {r7, pc} + 80359de: 4618 mov r0, r3 + 80359e0: 3710 adds r7, #16 + 80359e2: 46bd mov sp, r7 + 80359e4: bd80 pop {r7, pc} -08035a7a : +080359e6 : /* Merge a just-freed block with an adjacent free block. */ static block_header_t * block_merge_next(control_t * control, block_header_t * block) { - 8035a7a: b580 push {r7, lr} - 8035a7c: b084 sub sp, #16 - 8035a7e: af00 add r7, sp, #0 - 8035a80: 6078 str r0, [r7, #4] - 8035a82: 6039 str r1, [r7, #0] + 80359e6: b580 push {r7, lr} + 80359e8: b084 sub sp, #16 + 80359ea: af00 add r7, sp, #0 + 80359ec: 6078 str r0, [r7, #4] + 80359ee: 6039 str r1, [r7, #0] block_header_t * next = block_next(block); - 8035a84: 6838 ldr r0, [r7, #0] - 8035a86: f7ff fd10 bl 80354aa - 8035a8a: 60f8 str r0, [r7, #12] + 80359f0: 6838 ldr r0, [r7, #0] + 80359f2: f7ff fd10 bl 8035416 + 80359f6: 60f8 str r0, [r7, #12] tlsf_assert(next && "next physical block can't be null"); - 8035a8c: 68fb ldr r3, [r7, #12] - 8035a8e: 2b00 cmp r3, #0 - 8035a90: d100 bne.n 8035a94 - 8035a92: e7fe b.n 8035a92 + 80359f8: 68fb ldr r3, [r7, #12] + 80359fa: 2b00 cmp r3, #0 + 80359fc: d100 bne.n 8035a00 + 80359fe: e7fe b.n 80359fe if(block_is_free(next)) { - 8035a94: 68f8 ldr r0, [r7, #12] - 8035a96: f7ff fc79 bl 803538c - 8035a9a: 4603 mov r3, r0 - 8035a9c: 2b00 cmp r3, #0 - 8035a9e: d00f beq.n 8035ac0 + 8035a00: 68f8 ldr r0, [r7, #12] + 8035a02: f7ff fc79 bl 80352f8 + 8035a06: 4603 mov r3, r0 + 8035a08: 2b00 cmp r3, #0 + 8035a0a: d00f beq.n 8035a2c tlsf_assert(!block_is_last(block) && "previous block can't be last"); - 8035aa0: 6838 ldr r0, [r7, #0] - 8035aa2: f7ff fc62 bl 803536a - 8035aa6: 4603 mov r3, r0 - 8035aa8: 2b00 cmp r3, #0 - 8035aaa: d000 beq.n 8035aae - 8035aac: e7fe b.n 8035aac + 8035a0c: 6838 ldr r0, [r7, #0] + 8035a0e: f7ff fc62 bl 80352d6 + 8035a12: 4603 mov r3, r0 + 8035a14: 2b00 cmp r3, #0 + 8035a16: d000 beq.n 8035a1a + 8035a18: e7fe b.n 8035a18 block_remove(control, next); - 8035aae: 68f9 ldr r1, [r7, #12] - 8035ab0: 6878 ldr r0, [r7, #4] - 8035ab2: f7ff ff07 bl 80358c4 + 8035a1a: 68f9 ldr r1, [r7, #12] + 8035a1c: 6878 ldr r0, [r7, #4] + 8035a1e: f7ff ff07 bl 8035830 block = block_absorb(block, next); - 8035ab6: 68f9 ldr r1, [r7, #12] - 8035ab8: 6838 ldr r0, [r7, #0] - 8035aba: f7ff ff97 bl 80359ec - 8035abe: 6038 str r0, [r7, #0] + 8035a22: 68f9 ldr r1, [r7, #12] + 8035a24: 6838 ldr r0, [r7, #0] + 8035a26: f7ff ff97 bl 8035958 + 8035a2a: 6038 str r0, [r7, #0] } return block; - 8035ac0: 683b ldr r3, [r7, #0] + 8035a2c: 683b ldr r3, [r7, #0] } - 8035ac2: 4618 mov r0, r3 - 8035ac4: 3710 adds r7, #16 - 8035ac6: 46bd mov sp, r7 - 8035ac8: bd80 pop {r7, pc} + 8035a2e: 4618 mov r0, r3 + 8035a30: 3710 adds r7, #16 + 8035a32: 46bd mov sp, r7 + 8035a34: bd80 pop {r7, pc} -08035aca : +08035a36 : /* Trim any trailing block space off the end of a block, return to pool. */ static void block_trim_free(control_t * control, block_header_t * block, size_t size) { - 8035aca: b580 push {r7, lr} - 8035acc: b086 sub sp, #24 - 8035ace: af00 add r7, sp, #0 - 8035ad0: 60f8 str r0, [r7, #12] - 8035ad2: 60b9 str r1, [r7, #8] - 8035ad4: 607a str r2, [r7, #4] + 8035a36: b580 push {r7, lr} + 8035a38: b086 sub sp, #24 + 8035a3a: af00 add r7, sp, #0 + 8035a3c: 60f8 str r0, [r7, #12] + 8035a3e: 60b9 str r1, [r7, #8] + 8035a40: 607a str r2, [r7, #4] tlsf_assert(block_is_free(block) && "block must be free"); - 8035ad6: 68b8 ldr r0, [r7, #8] - 8035ad8: f7ff fc58 bl 803538c - 8035adc: 4603 mov r3, r0 - 8035ade: 2b00 cmp r3, #0 - 8035ae0: d100 bne.n 8035ae4 - 8035ae2: e7fe b.n 8035ae2 + 8035a42: 68b8 ldr r0, [r7, #8] + 8035a44: f7ff fc58 bl 80352f8 + 8035a48: 4603 mov r3, r0 + 8035a4a: 2b00 cmp r3, #0 + 8035a4c: d100 bne.n 8035a50 + 8035a4e: e7fe b.n 8035a4e if(block_can_split(block, size)) { - 8035ae4: 6879 ldr r1, [r7, #4] - 8035ae6: 68b8 ldr r0, [r7, #8] - 8035ae8: f7ff ff1e bl 8035928 - 8035aec: 4603 mov r3, r0 - 8035aee: 2b00 cmp r3, #0 - 8035af0: d00e beq.n 8035b10 + 8035a50: 6879 ldr r1, [r7, #4] + 8035a52: 68b8 ldr r0, [r7, #8] + 8035a54: f7ff ff1e bl 8035894 + 8035a58: 4603 mov r3, r0 + 8035a5a: 2b00 cmp r3, #0 + 8035a5c: d00e beq.n 8035a7c block_header_t * remaining_block = block_split(block, size); - 8035af2: 6879 ldr r1, [r7, #4] - 8035af4: 68b8 ldr r0, [r7, #8] - 8035af6: f7ff ff2b bl 8035950 - 8035afa: 6178 str r0, [r7, #20] + 8035a5e: 6879 ldr r1, [r7, #4] + 8035a60: 68b8 ldr r0, [r7, #8] + 8035a62: f7ff ff2b bl 80358bc + 8035a66: 6178 str r0, [r7, #20] block_link_next(block); - 8035afc: 68b8 ldr r0, [r7, #8] - 8035afe: f7ff fcf3 bl 80354e8 + 8035a68: 68b8 ldr r0, [r7, #8] + 8035a6a: f7ff fcf3 bl 8035454 block_set_prev_free(remaining_block); - 8035b02: 6978 ldr r0, [r7, #20] - 8035b04: f7ff fc7b bl 80353fe + 8035a6e: 6978 ldr r0, [r7, #20] + 8035a70: f7ff fc7b bl 803536a block_insert(control, remaining_block); - 8035b08: 6979 ldr r1, [r7, #20] - 8035b0a: 68f8 ldr r0, [r7, #12] - 8035b0c: f7ff fef3 bl 80358f6 + 8035a74: 6979 ldr r1, [r7, #20] + 8035a76: 68f8 ldr r0, [r7, #12] + 8035a78: f7ff fef3 bl 8035862 } } - 8035b10: bf00 nop - 8035b12: 3718 adds r7, #24 - 8035b14: 46bd mov sp, r7 - 8035b16: bd80 pop {r7, pc} + 8035a7c: bf00 nop + 8035a7e: 3718 adds r7, #24 + 8035a80: 46bd mov sp, r7 + 8035a82: bd80 pop {r7, pc} -08035b18 : +08035a84 : /* Trim any trailing block space off the end of a used block, return to pool. */ static void block_trim_used(control_t * control, block_header_t * block, size_t size) { - 8035b18: b580 push {r7, lr} - 8035b1a: b086 sub sp, #24 - 8035b1c: af00 add r7, sp, #0 - 8035b1e: 60f8 str r0, [r7, #12] - 8035b20: 60b9 str r1, [r7, #8] - 8035b22: 607a str r2, [r7, #4] + 8035a84: b580 push {r7, lr} + 8035a86: b086 sub sp, #24 + 8035a88: af00 add r7, sp, #0 + 8035a8a: 60f8 str r0, [r7, #12] + 8035a8c: 60b9 str r1, [r7, #8] + 8035a8e: 607a str r2, [r7, #4] tlsf_assert(!block_is_free(block) && "block must be used"); - 8035b24: 68b8 ldr r0, [r7, #8] - 8035b26: f7ff fc31 bl 803538c - 8035b2a: 4603 mov r3, r0 - 8035b2c: 2b00 cmp r3, #0 - 8035b2e: d000 beq.n 8035b32 - 8035b30: e7fe b.n 8035b30 + 8035a90: 68b8 ldr r0, [r7, #8] + 8035a92: f7ff fc31 bl 80352f8 + 8035a96: 4603 mov r3, r0 + 8035a98: 2b00 cmp r3, #0 + 8035a9a: d000 beq.n 8035a9e + 8035a9c: e7fe b.n 8035a9c if(block_can_split(block, size)) { - 8035b32: 6879 ldr r1, [r7, #4] - 8035b34: 68b8 ldr r0, [r7, #8] - 8035b36: f7ff fef7 bl 8035928 - 8035b3a: 4603 mov r3, r0 - 8035b3c: 2b00 cmp r3, #0 - 8035b3e: d010 beq.n 8035b62 + 8035a9e: 6879 ldr r1, [r7, #4] + 8035aa0: 68b8 ldr r0, [r7, #8] + 8035aa2: f7ff fef7 bl 8035894 + 8035aa6: 4603 mov r3, r0 + 8035aa8: 2b00 cmp r3, #0 + 8035aaa: d010 beq.n 8035ace /* If the next block is free, we must coalesce. */ block_header_t * remaining_block = block_split(block, size); - 8035b40: 6879 ldr r1, [r7, #4] - 8035b42: 68b8 ldr r0, [r7, #8] - 8035b44: f7ff ff04 bl 8035950 - 8035b48: 6178 str r0, [r7, #20] + 8035aac: 6879 ldr r1, [r7, #4] + 8035aae: 68b8 ldr r0, [r7, #8] + 8035ab0: f7ff ff04 bl 80358bc + 8035ab4: 6178 str r0, [r7, #20] block_set_prev_used(remaining_block); - 8035b4a: 6978 ldr r0, [r7, #20] - 8035b4c: f7ff fc66 bl 803541c + 8035ab6: 6978 ldr r0, [r7, #20] + 8035ab8: f7ff fc66 bl 8035388 remaining_block = block_merge_next(control, remaining_block); - 8035b50: 6979 ldr r1, [r7, #20] - 8035b52: 68f8 ldr r0, [r7, #12] - 8035b54: f7ff ff91 bl 8035a7a - 8035b58: 6178 str r0, [r7, #20] + 8035abc: 6979 ldr r1, [r7, #20] + 8035abe: 68f8 ldr r0, [r7, #12] + 8035ac0: f7ff ff91 bl 80359e6 + 8035ac4: 6178 str r0, [r7, #20] block_insert(control, remaining_block); - 8035b5a: 6979 ldr r1, [r7, #20] - 8035b5c: 68f8 ldr r0, [r7, #12] - 8035b5e: f7ff feca bl 80358f6 + 8035ac6: 6979 ldr r1, [r7, #20] + 8035ac8: 68f8 ldr r0, [r7, #12] + 8035aca: f7ff feca bl 8035862 } } - 8035b62: bf00 nop - 8035b64: 3718 adds r7, #24 - 8035b66: 46bd mov sp, r7 - 8035b68: bd80 pop {r7, pc} + 8035ace: bf00 nop + 8035ad0: 3718 adds r7, #24 + 8035ad2: 46bd mov sp, r7 + 8035ad4: bd80 pop {r7, pc} -08035b6a : +08035ad6 : return remaining_block; } static block_header_t * block_locate_free(control_t * control, size_t size) { - 8035b6a: b580 push {r7, lr} - 8035b6c: b086 sub sp, #24 - 8035b6e: af00 add r7, sp, #0 - 8035b70: 6078 str r0, [r7, #4] - 8035b72: 6039 str r1, [r7, #0] + 8035ad6: b580 push {r7, lr} + 8035ad8: b086 sub sp, #24 + 8035ada: af00 add r7, sp, #0 + 8035adc: 6078 str r0, [r7, #4] + 8035ade: 6039 str r1, [r7, #0] int fl = 0, sl = 0; - 8035b74: 2300 movs r3, #0 - 8035b76: 613b str r3, [r7, #16] - 8035b78: 2300 movs r3, #0 - 8035b7a: 60fb str r3, [r7, #12] + 8035ae0: 2300 movs r3, #0 + 8035ae2: 613b str r3, [r7, #16] + 8035ae4: 2300 movs r3, #0 + 8035ae6: 60fb str r3, [r7, #12] block_header_t * block = 0; - 8035b7c: 2300 movs r3, #0 - 8035b7e: 617b str r3, [r7, #20] + 8035ae8: 2300 movs r3, #0 + 8035aea: 617b str r3, [r7, #20] if(size) { - 8035b80: 683b ldr r3, [r7, #0] - 8035b82: 2b00 cmp r3, #0 - 8035b84: d013 beq.n 8035bae + 8035aec: 683b ldr r3, [r7, #0] + 8035aee: 2b00 cmp r3, #0 + 8035af0: d013 beq.n 8035b1a mapping_search(size, &fl, &sl); - 8035b86: f107 020c add.w r2, r7, #12 - 8035b8a: f107 0310 add.w r3, r7, #16 - 8035b8e: 4619 mov r1, r3 - 8035b90: 6838 ldr r0, [r7, #0] - 8035b92: f7ff fd6e bl 8035672 + 8035af2: f107 020c add.w r2, r7, #12 + 8035af6: f107 0310 add.w r3, r7, #16 + 8035afa: 4619 mov r1, r3 + 8035afc: 6838 ldr r0, [r7, #0] + 8035afe: f7ff fd6e bl 80355de ** mapping_search can futz with the size, so for excessively large sizes it can sometimes wind up ** with indices that are off the end of the block array. ** So, we protect against that here, since this is the only callsite of mapping_search. ** Note that we don't need to check sl, since it comes from a modulo operation that guarantees it's always in range. */ if(fl < FL_INDEX_COUNT) { - 8035b96: 693b ldr r3, [r7, #16] - 8035b98: 2b07 cmp r3, #7 - 8035b9a: dc08 bgt.n 8035bae + 8035b02: 693b ldr r3, [r7, #16] + 8035b04: 2b07 cmp r3, #7 + 8035b06: dc08 bgt.n 8035b1a block = search_suitable_block(control, &fl, &sl); - 8035b9c: f107 020c add.w r2, r7, #12 - 8035ba0: f107 0310 add.w r3, r7, #16 - 8035ba4: 4619 mov r1, r3 - 8035ba6: 6878 ldr r0, [r7, #4] - 8035ba8: f7ff fd83 bl 80356b2 - 8035bac: 6178 str r0, [r7, #20] + 8035b08: f107 020c add.w r2, r7, #12 + 8035b0c: f107 0310 add.w r3, r7, #16 + 8035b10: 4619 mov r1, r3 + 8035b12: 6878 ldr r0, [r7, #4] + 8035b14: f7ff fd83 bl 803561e + 8035b18: 6178 str r0, [r7, #20] } } if(block) { - 8035bae: 697b ldr r3, [r7, #20] - 8035bb0: 2b00 cmp r3, #0 - 8035bb2: d00d beq.n 8035bd0 + 8035b1a: 697b ldr r3, [r7, #20] + 8035b1c: 2b00 cmp r3, #0 + 8035b1e: d00d beq.n 8035b3c tlsf_assert(block_size(block) >= size); - 8035bb4: 6978 ldr r0, [r7, #20] - 8035bb6: f7ff fbb2 bl 803531e - 8035bba: 4602 mov r2, r0 - 8035bbc: 683b ldr r3, [r7, #0] - 8035bbe: 4293 cmp r3, r2 - 8035bc0: d900 bls.n 8035bc4 - 8035bc2: e7fe b.n 8035bc2 + 8035b20: 6978 ldr r0, [r7, #20] + 8035b22: f7ff fbb2 bl 803528a + 8035b26: 4602 mov r2, r0 + 8035b28: 683b ldr r3, [r7, #0] + 8035b2a: 4293 cmp r3, r2 + 8035b2c: d900 bls.n 8035b30 + 8035b2e: e7fe b.n 8035b2e remove_free_block(control, block, fl, sl); - 8035bc4: 693a ldr r2, [r7, #16] - 8035bc6: 68fb ldr r3, [r7, #12] - 8035bc8: 6979 ldr r1, [r7, #20] - 8035bca: 6878 ldr r0, [r7, #4] - 8035bcc: f7ff fdc2 bl 8035754 + 8035b30: 693a ldr r2, [r7, #16] + 8035b32: 68fb ldr r3, [r7, #12] + 8035b34: 6979 ldr r1, [r7, #20] + 8035b36: 6878 ldr r0, [r7, #4] + 8035b38: f7ff fdc2 bl 80356c0 } return block; - 8035bd0: 697b ldr r3, [r7, #20] + 8035b3c: 697b ldr r3, [r7, #20] } - 8035bd2: 4618 mov r0, r3 - 8035bd4: 3718 adds r7, #24 - 8035bd6: 46bd mov sp, r7 - 8035bd8: bd80 pop {r7, pc} + 8035b3e: 4618 mov r0, r3 + 8035b40: 3718 adds r7, #24 + 8035b42: 46bd mov sp, r7 + 8035b44: bd80 pop {r7, pc} -08035bda : +08035b46 : static void * block_prepare_used(control_t * control, block_header_t * block, size_t size) { - 8035bda: b580 push {r7, lr} - 8035bdc: b086 sub sp, #24 - 8035bde: af00 add r7, sp, #0 - 8035be0: 60f8 str r0, [r7, #12] - 8035be2: 60b9 str r1, [r7, #8] - 8035be4: 607a str r2, [r7, #4] + 8035b46: b580 push {r7, lr} + 8035b48: b086 sub sp, #24 + 8035b4a: af00 add r7, sp, #0 + 8035b4c: 60f8 str r0, [r7, #12] + 8035b4e: 60b9 str r1, [r7, #8] + 8035b50: 607a str r2, [r7, #4] void * p = 0; - 8035be6: 2300 movs r3, #0 - 8035be8: 617b str r3, [r7, #20] + 8035b52: 2300 movs r3, #0 + 8035b54: 617b str r3, [r7, #20] if(block) { - 8035bea: 68bb ldr r3, [r7, #8] - 8035bec: 2b00 cmp r3, #0 - 8035bee: d00f beq.n 8035c10 + 8035b56: 68bb ldr r3, [r7, #8] + 8035b58: 2b00 cmp r3, #0 + 8035b5a: d00f beq.n 8035b7c tlsf_assert(size && "size must be non-zero"); - 8035bf0: 687b ldr r3, [r7, #4] - 8035bf2: 2b00 cmp r3, #0 - 8035bf4: d100 bne.n 8035bf8 - 8035bf6: e7fe b.n 8035bf6 + 8035b5c: 687b ldr r3, [r7, #4] + 8035b5e: 2b00 cmp r3, #0 + 8035b60: d100 bne.n 8035b64 + 8035b62: e7fe b.n 8035b62 block_trim_free(control, block, size); - 8035bf8: 687a ldr r2, [r7, #4] - 8035bfa: 68b9 ldr r1, [r7, #8] - 8035bfc: 68f8 ldr r0, [r7, #12] - 8035bfe: f7ff ff64 bl 8035aca + 8035b64: 687a ldr r2, [r7, #4] + 8035b66: 68b9 ldr r1, [r7, #8] + 8035b68: 68f8 ldr r0, [r7, #12] + 8035b6a: f7ff ff64 bl 8035a36 block_mark_as_used(block); - 8035c02: 68b8 ldr r0, [r7, #8] - 8035c04: f7ff fc92 bl 803552c + 8035b6e: 68b8 ldr r0, [r7, #8] + 8035b70: f7ff fc92 bl 8035498 p = block_to_ptr(block); - 8035c08: 68b8 ldr r0, [r7, #8] - 8035c0a: f7ff fc24 bl 8035456 - 8035c0e: 6178 str r0, [r7, #20] + 8035b74: 68b8 ldr r0, [r7, #8] + 8035b76: f7ff fc24 bl 80353c2 + 8035b7a: 6178 str r0, [r7, #20] } return p; - 8035c10: 697b ldr r3, [r7, #20] + 8035b7c: 697b ldr r3, [r7, #20] } - 8035c12: 4618 mov r0, r3 - 8035c14: 3718 adds r7, #24 - 8035c16: 46bd mov sp, r7 - 8035c18: bd80 pop {r7, pc} + 8035b7e: 4618 mov r0, r3 + 8035b80: 3718 adds r7, #24 + 8035b82: 46bd mov sp, r7 + 8035b84: bd80 pop {r7, pc} -08035c1a : +08035b86 : /* Clear structure and point all empty lists at the null block. */ static void control_constructor(control_t * control) { - 8035c1a: b480 push {r7} - 8035c1c: b085 sub sp, #20 - 8035c1e: af00 add r7, sp, #0 - 8035c20: 6078 str r0, [r7, #4] + 8035b86: b480 push {r7} + 8035b88: b085 sub sp, #20 + 8035b8a: af00 add r7, sp, #0 + 8035b8c: 6078 str r0, [r7, #4] int i, j; control->block_null.next_free = &control->block_null; - 8035c22: 687a ldr r2, [r7, #4] - 8035c24: 687b ldr r3, [r7, #4] - 8035c26: 609a str r2, [r3, #8] + 8035b8e: 687a ldr r2, [r7, #4] + 8035b90: 687b ldr r3, [r7, #4] + 8035b92: 609a str r2, [r3, #8] control->block_null.prev_free = &control->block_null; - 8035c28: 687a ldr r2, [r7, #4] - 8035c2a: 687b ldr r3, [r7, #4] - 8035c2c: 60da str r2, [r3, #12] + 8035b94: 687a ldr r2, [r7, #4] + 8035b96: 687b ldr r3, [r7, #4] + 8035b98: 60da str r2, [r3, #12] control->fl_bitmap = 0; - 8035c2e: 687b ldr r3, [r7, #4] - 8035c30: 2200 movs r2, #0 - 8035c32: 611a str r2, [r3, #16] + 8035b9a: 687b ldr r3, [r7, #4] + 8035b9c: 2200 movs r2, #0 + 8035b9e: 611a str r2, [r3, #16] for(i = 0; i < FL_INDEX_COUNT; ++i) { - 8035c34: 2300 movs r3, #0 - 8035c36: 60fb str r3, [r7, #12] - 8035c38: e01c b.n 8035c74 + 8035ba0: 2300 movs r3, #0 + 8035ba2: 60fb str r3, [r7, #12] + 8035ba4: e01c b.n 8035be0 control->sl_bitmap[i] = 0; - 8035c3a: 687a ldr r2, [r7, #4] - 8035c3c: 68fb ldr r3, [r7, #12] - 8035c3e: 3304 adds r3, #4 - 8035c40: 009b lsls r3, r3, #2 - 8035c42: 4413 add r3, r2 - 8035c44: 2200 movs r2, #0 - 8035c46: 605a str r2, [r3, #4] + 8035ba6: 687a ldr r2, [r7, #4] + 8035ba8: 68fb ldr r3, [r7, #12] + 8035baa: 3304 adds r3, #4 + 8035bac: 009b lsls r3, r3, #2 + 8035bae: 4413 add r3, r2 + 8035bb0: 2200 movs r2, #0 + 8035bb2: 605a str r2, [r3, #4] for(j = 0; j < SL_INDEX_COUNT; ++j) { - 8035c48: 2300 movs r3, #0 - 8035c4a: 60bb str r3, [r7, #8] - 8035c4c: e00c b.n 8035c68 + 8035bb4: 2300 movs r3, #0 + 8035bb6: 60bb str r3, [r7, #8] + 8035bb8: e00c b.n 8035bd4 control->blocks[i][j] = &control->block_null; - 8035c4e: 687a ldr r2, [r7, #4] - 8035c50: 6879 ldr r1, [r7, #4] - 8035c52: 68fb ldr r3, [r7, #12] - 8035c54: 0158 lsls r0, r3, #5 - 8035c56: 68bb ldr r3, [r7, #8] - 8035c58: 4403 add r3, r0 - 8035c5a: 330c adds r3, #12 - 8035c5c: 009b lsls r3, r3, #2 - 8035c5e: 440b add r3, r1 - 8035c60: 605a str r2, [r3, #4] + 8035bba: 687a ldr r2, [r7, #4] + 8035bbc: 6879 ldr r1, [r7, #4] + 8035bbe: 68fb ldr r3, [r7, #12] + 8035bc0: 0158 lsls r0, r3, #5 + 8035bc2: 68bb ldr r3, [r7, #8] + 8035bc4: 4403 add r3, r0 + 8035bc6: 330c adds r3, #12 + 8035bc8: 009b lsls r3, r3, #2 + 8035bca: 440b add r3, r1 + 8035bcc: 605a str r2, [r3, #4] for(j = 0; j < SL_INDEX_COUNT; ++j) { - 8035c62: 68bb ldr r3, [r7, #8] - 8035c64: 3301 adds r3, #1 - 8035c66: 60bb str r3, [r7, #8] - 8035c68: 68bb ldr r3, [r7, #8] - 8035c6a: 2b1f cmp r3, #31 - 8035c6c: ddef ble.n 8035c4e + 8035bce: 68bb ldr r3, [r7, #8] + 8035bd0: 3301 adds r3, #1 + 8035bd2: 60bb str r3, [r7, #8] + 8035bd4: 68bb ldr r3, [r7, #8] + 8035bd6: 2b1f cmp r3, #31 + 8035bd8: ddef ble.n 8035bba for(i = 0; i < FL_INDEX_COUNT; ++i) { - 8035c6e: 68fb ldr r3, [r7, #12] - 8035c70: 3301 adds r3, #1 - 8035c72: 60fb str r3, [r7, #12] - 8035c74: 68fb ldr r3, [r7, #12] - 8035c76: 2b07 cmp r3, #7 - 8035c78: dddf ble.n 8035c3a + 8035bda: 68fb ldr r3, [r7, #12] + 8035bdc: 3301 adds r3, #1 + 8035bde: 60fb str r3, [r7, #12] + 8035be0: 68fb ldr r3, [r7, #12] + 8035be2: 2b07 cmp r3, #7 + 8035be4: dddf ble.n 8035ba6 } } } - 8035c7a: bf00 nop - 8035c7c: bf00 nop - 8035c7e: 3714 adds r7, #20 - 8035c80: 46bd mov sp, r7 - 8035c82: bc80 pop {r7} - 8035c84: 4770 bx lr + 8035be6: bf00 nop + 8035be8: bf00 nop + 8035bea: 3714 adds r7, #20 + 8035bec: 46bd mov sp, r7 + 8035bee: bc80 pop {r7} + 8035bf0: 4770 bx lr -08035c86 : +08035bf2 : } #undef tlsf_insist static void default_walker(void * ptr, size_t size, int used, void * user) { - 8035c86: b480 push {r7} - 8035c88: b085 sub sp, #20 - 8035c8a: af00 add r7, sp, #0 - 8035c8c: 60f8 str r0, [r7, #12] - 8035c8e: 60b9 str r1, [r7, #8] - 8035c90: 607a str r2, [r7, #4] - 8035c92: 603b str r3, [r7, #0] + 8035bf2: b480 push {r7} + 8035bf4: b085 sub sp, #20 + 8035bf6: af00 add r7, sp, #0 + 8035bf8: 60f8 str r0, [r7, #12] + 8035bfa: 60b9 str r1, [r7, #8] + 8035bfc: 607a str r2, [r7, #4] + 8035bfe: 603b str r3, [r7, #0] LV_UNUSED(user); printf("\t%p %s size: %x (%p)\n", ptr, used ? "used" : "free", (unsigned int)size, (void *)block_from_ptr(ptr)); } - 8035c94: bf00 nop - 8035c96: 3714 adds r7, #20 - 8035c98: 46bd mov sp, r7 - 8035c9a: bc80 pop {r7} - 8035c9c: 4770 bx lr + 8035c00: bf00 nop + 8035c02: 3714 adds r7, #20 + 8035c04: 46bd mov sp, r7 + 8035c06: bc80 pop {r7} + 8035c08: 4770 bx lr ... -08035ca0 : +08035c0c : void lv_tlsf_walk_pool(lv_pool_t pool, lv_tlsf_walker walker, void * user) { - 8035ca0: b5f0 push {r4, r5, r6, r7, lr} - 8035ca2: b087 sub sp, #28 - 8035ca4: af00 add r7, sp, #0 - 8035ca6: 60f8 str r0, [r7, #12] - 8035ca8: 60b9 str r1, [r7, #8] - 8035caa: 607a str r2, [r7, #4] + 8035c0c: b5f0 push {r4, r5, r6, r7, lr} + 8035c0e: b087 sub sp, #28 + 8035c10: af00 add r7, sp, #0 + 8035c12: 60f8 str r0, [r7, #12] + 8035c14: 60b9 str r1, [r7, #8] + 8035c16: 607a str r2, [r7, #4] lv_tlsf_walker pool_walker = walker ? walker : default_walker; - 8035cac: 68bb ldr r3, [r7, #8] - 8035cae: 2b00 cmp r3, #0 - 8035cb0: d001 beq.n 8035cb6 - 8035cb2: 68bb ldr r3, [r7, #8] - 8035cb4: e000 b.n 8035cb8 - 8035cb6: 4b19 ldr r3, [pc, #100] ; (8035d1c ) - 8035cb8: 613b str r3, [r7, #16] + 8035c18: 68bb ldr r3, [r7, #8] + 8035c1a: 2b00 cmp r3, #0 + 8035c1c: d001 beq.n 8035c22 + 8035c1e: 68bb ldr r3, [r7, #8] + 8035c20: e000 b.n 8035c24 + 8035c22: 4b19 ldr r3, [pc, #100] ; (8035c88 ) + 8035c24: 613b str r3, [r7, #16] block_header_t * block = offset_to_block(pool, -(int)block_header_overhead); - 8035cba: 2304 movs r3, #4 - 8035cbc: 425b negs r3, r3 - 8035cbe: 4619 mov r1, r3 - 8035cc0: 68f8 ldr r0, [r7, #12] - 8035cc2: f7ff fbd4 bl 803546e - 8035cc6: 6178 str r0, [r7, #20] + 8035c26: 2304 movs r3, #4 + 8035c28: 425b negs r3, r3 + 8035c2a: 4619 mov r1, r3 + 8035c2c: 68f8 ldr r0, [r7, #12] + 8035c2e: f7ff fbd4 bl 80353da + 8035c32: 6178 str r0, [r7, #20] while(block && !block_is_last(block)) { - 8035cc8: e01a b.n 8035d00 + 8035c34: e01a b.n 8035c6c pool_walker( - 8035cca: 6978 ldr r0, [r7, #20] - 8035ccc: f7ff fbc3 bl 8035456 - 8035cd0: 4605 mov r5, r0 - 8035cd2: 6978 ldr r0, [r7, #20] - 8035cd4: f7ff fb23 bl 803531e - 8035cd8: 4606 mov r6, r0 + 8035c36: 6978 ldr r0, [r7, #20] + 8035c38: f7ff fbc3 bl 80353c2 + 8035c3c: 4605 mov r5, r0 + 8035c3e: 6978 ldr r0, [r7, #20] + 8035c40: f7ff fb23 bl 803528a + 8035c44: 4606 mov r6, r0 block_to_ptr(block), block_size(block), !block_is_free(block), - 8035cda: 6978 ldr r0, [r7, #20] - 8035cdc: f7ff fb56 bl 803538c - 8035ce0: 4603 mov r3, r0 + 8035c46: 6978 ldr r0, [r7, #20] + 8035c48: f7ff fb56 bl 80352f8 + 8035c4c: 4603 mov r3, r0 pool_walker( - 8035ce2: 2b00 cmp r3, #0 - 8035ce4: bf0c ite eq - 8035ce6: 2301 moveq r3, #1 - 8035ce8: 2300 movne r3, #0 - 8035cea: b2db uxtb r3, r3 - 8035cec: 461a mov r2, r3 - 8035cee: 693c ldr r4, [r7, #16] - 8035cf0: 687b ldr r3, [r7, #4] - 8035cf2: 4631 mov r1, r6 - 8035cf4: 4628 mov r0, r5 - 8035cf6: 47a0 blx r4 + 8035c4e: 2b00 cmp r3, #0 + 8035c50: bf0c ite eq + 8035c52: 2301 moveq r3, #1 + 8035c54: 2300 movne r3, #0 + 8035c56: b2db uxtb r3, r3 + 8035c58: 461a mov r2, r3 + 8035c5a: 693c ldr r4, [r7, #16] + 8035c5c: 687b ldr r3, [r7, #4] + 8035c5e: 4631 mov r1, r6 + 8035c60: 4628 mov r0, r5 + 8035c62: 47a0 blx r4 user); block = block_next(block); - 8035cf8: 6978 ldr r0, [r7, #20] - 8035cfa: f7ff fbd6 bl 80354aa - 8035cfe: 6178 str r0, [r7, #20] + 8035c64: 6978 ldr r0, [r7, #20] + 8035c66: f7ff fbd6 bl 8035416 + 8035c6a: 6178 str r0, [r7, #20] while(block && !block_is_last(block)) { - 8035d00: 697b ldr r3, [r7, #20] - 8035d02: 2b00 cmp r3, #0 - 8035d04: d005 beq.n 8035d12 - 8035d06: 6978 ldr r0, [r7, #20] - 8035d08: f7ff fb2f bl 803536a - 8035d0c: 4603 mov r3, r0 - 8035d0e: 2b00 cmp r3, #0 - 8035d10: d0db beq.n 8035cca + 8035c6c: 697b ldr r3, [r7, #20] + 8035c6e: 2b00 cmp r3, #0 + 8035c70: d005 beq.n 8035c7e + 8035c72: 6978 ldr r0, [r7, #20] + 8035c74: f7ff fb2f bl 80352d6 + 8035c78: 4603 mov r3, r0 + 8035c7a: 2b00 cmp r3, #0 + 8035c7c: d0db beq.n 8035c36 } } - 8035d12: bf00 nop - 8035d14: 371c adds r7, #28 - 8035d16: 46bd mov sp, r7 - 8035d18: bdf0 pop {r4, r5, r6, r7, pc} - 8035d1a: bf00 nop - 8035d1c: 08035c87 .word 0x08035c87 + 8035c7e: bf00 nop + 8035c80: 371c adds r7, #28 + 8035c82: 46bd mov sp, r7 + 8035c84: bdf0 pop {r4, r5, r6, r7, pc} + 8035c86: bf00 nop + 8035c88: 08035bf3 .word 0x08035bf3 -08035d20 : +08035c8c : /* ** Size of the TLSF structures in a given memory block passed to ** lv_tlsf_create, equal to the size of a control_t */ size_t lv_tlsf_size(void) { - 8035d20: b480 push {r7} - 8035d22: af00 add r7, sp, #0 + 8035c8c: b480 push {r7} + 8035c8e: af00 add r7, sp, #0 return sizeof(control_t); - 8035d24: f240 4334 movw r3, #1076 ; 0x434 + 8035c90: f240 4334 movw r3, #1076 ; 0x434 } - 8035d28: 4618 mov r0, r3 - 8035d2a: 46bd mov sp, r7 - 8035d2c: bc80 pop {r7} - 8035d2e: 4770 bx lr + 8035c94: 4618 mov r0, r3 + 8035c96: 46bd mov sp, r7 + 8035c98: bc80 pop {r7} + 8035c9a: 4770 bx lr -08035d30 : +08035c9c : ** Overhead of the TLSF structures in a given memory block passed to ** lv_tlsf_add_pool, equal to the overhead of a free block and the ** sentinel block. */ size_t lv_tlsf_pool_overhead(void) { - 8035d30: b480 push {r7} - 8035d32: af00 add r7, sp, #0 + 8035c9c: b480 push {r7} + 8035c9e: af00 add r7, sp, #0 return 2 * block_header_overhead; - 8035d34: 2304 movs r3, #4 - 8035d36: 005b lsls r3, r3, #1 + 8035ca0: 2304 movs r3, #4 + 8035ca2: 005b lsls r3, r3, #1 } - 8035d38: 4618 mov r0, r3 - 8035d3a: 46bd mov sp, r7 - 8035d3c: bc80 pop {r7} - 8035d3e: 4770 bx lr + 8035ca4: 4618 mov r0, r3 + 8035ca6: 46bd mov sp, r7 + 8035ca8: bc80 pop {r7} + 8035caa: 4770 bx lr -08035d40 : +08035cac : { return block_header_overhead; } lv_pool_t lv_tlsf_add_pool(lv_tlsf_t tlsf, void * mem, size_t bytes) { - 8035d40: b580 push {r7, lr} - 8035d42: b088 sub sp, #32 - 8035d44: af00 add r7, sp, #0 - 8035d46: 60f8 str r0, [r7, #12] - 8035d48: 60b9 str r1, [r7, #8] - 8035d4a: 607a str r2, [r7, #4] + 8035cac: b580 push {r7, lr} + 8035cae: b088 sub sp, #32 + 8035cb0: af00 add r7, sp, #0 + 8035cb2: 60f8 str r0, [r7, #12] + 8035cb4: 60b9 str r1, [r7, #8] + 8035cb6: 607a str r2, [r7, #4] block_header_t * block; block_header_t * next; const size_t pool_overhead = lv_tlsf_pool_overhead(); - 8035d4c: f7ff fff0 bl 8035d30 - 8035d50: 61f8 str r0, [r7, #28] + 8035cb8: f7ff fff0 bl 8035c9c + 8035cbc: 61f8 str r0, [r7, #28] const size_t pool_bytes = align_down(bytes - pool_overhead, ALIGN_SIZE); - 8035d52: 687a ldr r2, [r7, #4] - 8035d54: 69fb ldr r3, [r7, #28] - 8035d56: 1ad3 subs r3, r2, r3 - 8035d58: 2104 movs r1, #4 - 8035d5a: 4618 mov r0, r3 - 8035d5c: f7ff fc10 bl 8035580 - 8035d60: 61b8 str r0, [r7, #24] + 8035cbe: 687a ldr r2, [r7, #4] + 8035cc0: 69fb ldr r3, [r7, #28] + 8035cc2: 1ad3 subs r3, r2, r3 + 8035cc4: 2104 movs r1, #4 + 8035cc6: 4618 mov r0, r3 + 8035cc8: f7ff fc10 bl 80354ec + 8035ccc: 61b8 str r0, [r7, #24] if(((ptrdiff_t)mem % ALIGN_SIZE) != 0) { - 8035d62: 68bb ldr r3, [r7, #8] - 8035d64: f003 0303 and.w r3, r3, #3 - 8035d68: 2b00 cmp r3, #0 - 8035d6a: d001 beq.n 8035d70 + 8035cce: 68bb ldr r3, [r7, #8] + 8035cd0: f003 0303 and.w r3, r3, #3 + 8035cd4: 2b00 cmp r3, #0 + 8035cd6: d001 beq.n 8035cdc printf("lv_tlsf_add_pool: Memory must be aligned by %u bytes.\n", (unsigned int)ALIGN_SIZE); return 0; - 8035d6c: 2300 movs r3, #0 - 8035d6e: e02e b.n 8035dce + 8035cd8: 2300 movs r3, #0 + 8035cda: e02e b.n 8035d3a } if(pool_bytes < block_size_min || pool_bytes > block_size_max) { - 8035d70: 220c movs r2, #12 - 8035d72: 69bb ldr r3, [r7, #24] - 8035d74: 4293 cmp r3, r2 - 8035d76: d304 bcc.n 8035d82 - 8035d78: f44f 4280 mov.w r2, #16384 ; 0x4000 - 8035d7c: 69bb ldr r3, [r7, #24] - 8035d7e: 4293 cmp r3, r2 - 8035d80: d901 bls.n 8035d86 + 8035cdc: 220c movs r2, #12 + 8035cde: 69bb ldr r3, [r7, #24] + 8035ce0: 4293 cmp r3, r2 + 8035ce2: d304 bcc.n 8035cee + 8035ce4: f44f 4280 mov.w r2, #16384 ; 0x4000 + 8035ce8: 69bb ldr r3, [r7, #24] + 8035cea: 4293 cmp r3, r2 + 8035cec: d901 bls.n 8035cf2 #else printf("lv_tlsf_add_pool: Memory size must be between %u and %u bytes.\n", (unsigned int)(pool_overhead + block_size_min), (unsigned int)(pool_overhead + block_size_max)); #endif return 0; - 8035d82: 2300 movs r3, #0 - 8035d84: e023 b.n 8035dce + 8035cee: 2300 movs r3, #0 + 8035cf0: e023 b.n 8035d3a /* ** Create the main free block. Offset the start of the block slightly ** so that the prev_phys_block field falls outside of the pool - ** it will never be used. */ block = offset_to_block(mem, -(tlsfptr_t)block_header_overhead); - 8035d86: 2304 movs r3, #4 - 8035d88: 425b negs r3, r3 - 8035d8a: 4619 mov r1, r3 - 8035d8c: 68b8 ldr r0, [r7, #8] - 8035d8e: f7ff fb6e bl 803546e - 8035d92: 6178 str r0, [r7, #20] + 8035cf2: 2304 movs r3, #4 + 8035cf4: 425b negs r3, r3 + 8035cf6: 4619 mov r1, r3 + 8035cf8: 68b8 ldr r0, [r7, #8] + 8035cfa: f7ff fb6e bl 80353da + 8035cfe: 6178 str r0, [r7, #20] block_set_size(block, pool_bytes); - 8035d94: 69b9 ldr r1, [r7, #24] - 8035d96: 6978 ldr r0, [r7, #20] - 8035d98: f7ff fad1 bl 803533e + 8035d00: 69b9 ldr r1, [r7, #24] + 8035d02: 6978 ldr r0, [r7, #20] + 8035d04: f7ff fad1 bl 80352aa block_set_free(block); - 8035d9c: 6978 ldr r0, [r7, #20] - 8035d9e: f7ff fb02 bl 80353a6 + 8035d08: 6978 ldr r0, [r7, #20] + 8035d0a: f7ff fb02 bl 8035312 block_set_prev_used(block); - 8035da2: 6978 ldr r0, [r7, #20] - 8035da4: f7ff fb3a bl 803541c + 8035d0e: 6978 ldr r0, [r7, #20] + 8035d10: f7ff fb3a bl 8035388 block_insert(tlsf_cast(control_t *, tlsf), block); - 8035da8: 6979 ldr r1, [r7, #20] - 8035daa: 68f8 ldr r0, [r7, #12] - 8035dac: f7ff fda3 bl 80358f6 + 8035d14: 6979 ldr r1, [r7, #20] + 8035d16: 68f8 ldr r0, [r7, #12] + 8035d18: f7ff fda3 bl 8035862 /* Split the block to create a zero-size sentinel block. */ next = block_link_next(block); - 8035db0: 6978 ldr r0, [r7, #20] - 8035db2: f7ff fb99 bl 80354e8 - 8035db6: 6138 str r0, [r7, #16] + 8035d1c: 6978 ldr r0, [r7, #20] + 8035d1e: f7ff fb99 bl 8035454 + 8035d22: 6138 str r0, [r7, #16] block_set_size(next, 0); - 8035db8: 2100 movs r1, #0 - 8035dba: 6938 ldr r0, [r7, #16] - 8035dbc: f7ff fabf bl 803533e + 8035d24: 2100 movs r1, #0 + 8035d26: 6938 ldr r0, [r7, #16] + 8035d28: f7ff fabf bl 80352aa block_set_used(next); - 8035dc0: 6938 ldr r0, [r7, #16] - 8035dc2: f7ff faff bl 80353c4 + 8035d2c: 6938 ldr r0, [r7, #16] + 8035d2e: f7ff faff bl 8035330 block_set_prev_free(next); - 8035dc6: 6938 ldr r0, [r7, #16] - 8035dc8: f7ff fb19 bl 80353fe + 8035d32: 6938 ldr r0, [r7, #16] + 8035d34: f7ff fb19 bl 803536a return mem; - 8035dcc: 68bb ldr r3, [r7, #8] + 8035d38: 68bb ldr r3, [r7, #8] } - 8035dce: 4618 mov r0, r3 - 8035dd0: 3720 adds r7, #32 - 8035dd2: 46bd mov sp, r7 - 8035dd4: bd80 pop {r7, pc} + 8035d3a: 4618 mov r0, r3 + 8035d3c: 3720 adds r7, #32 + 8035d3e: 46bd mov sp, r7 + 8035d40: bd80 pop {r7, pc} -08035dd6 : +08035d42 : return rv; } #endif lv_tlsf_t lv_tlsf_create(void * mem) { - 8035dd6: b580 push {r7, lr} - 8035dd8: b082 sub sp, #8 - 8035dda: af00 add r7, sp, #0 - 8035ddc: 6078 str r0, [r7, #4] + 8035d42: b580 push {r7, lr} + 8035d44: b082 sub sp, #8 + 8035d46: af00 add r7, sp, #0 + 8035d48: 6078 str r0, [r7, #4] if(test_ffs_fls()) { return 0; } #endif if(((tlsfptr_t)mem % ALIGN_SIZE) != 0) { - 8035dde: 687b ldr r3, [r7, #4] - 8035de0: f003 0303 and.w r3, r3, #3 - 8035de4: 2b00 cmp r3, #0 - 8035de6: d001 beq.n 8035dec + 8035d4a: 687b ldr r3, [r7, #4] + 8035d4c: f003 0303 and.w r3, r3, #3 + 8035d50: 2b00 cmp r3, #0 + 8035d52: d001 beq.n 8035d58 printf("lv_tlsf_create: Memory must be aligned to %u bytes.\n", (unsigned int)ALIGN_SIZE); return 0; - 8035de8: 2300 movs r3, #0 - 8035dea: e003 b.n 8035df4 + 8035d54: 2300 movs r3, #0 + 8035d56: e003 b.n 8035d60 } control_constructor(tlsf_cast(control_t *, mem)); - 8035dec: 6878 ldr r0, [r7, #4] - 8035dee: f7ff ff14 bl 8035c1a + 8035d58: 6878 ldr r0, [r7, #4] + 8035d5a: f7ff ff14 bl 8035b86 return tlsf_cast(lv_tlsf_t, mem); - 8035df2: 687b ldr r3, [r7, #4] + 8035d5e: 687b ldr r3, [r7, #4] } - 8035df4: 4618 mov r0, r3 - 8035df6: 3708 adds r7, #8 - 8035df8: 46bd mov sp, r7 - 8035dfa: bd80 pop {r7, pc} + 8035d60: 4618 mov r0, r3 + 8035d62: 3708 adds r7, #8 + 8035d64: 46bd mov sp, r7 + 8035d66: bd80 pop {r7, pc} -08035dfc : +08035d68 : lv_tlsf_t lv_tlsf_create_with_pool(void * mem, size_t bytes) { - 8035dfc: b590 push {r4, r7, lr} - 8035dfe: b085 sub sp, #20 - 8035e00: af00 add r7, sp, #0 - 8035e02: 6078 str r0, [r7, #4] - 8035e04: 6039 str r1, [r7, #0] + 8035d68: b590 push {r4, r7, lr} + 8035d6a: b085 sub sp, #20 + 8035d6c: af00 add r7, sp, #0 + 8035d6e: 6078 str r0, [r7, #4] + 8035d70: 6039 str r1, [r7, #0] lv_tlsf_t tlsf = lv_tlsf_create(mem); - 8035e06: 6878 ldr r0, [r7, #4] - 8035e08: f7ff ffe5 bl 8035dd6 - 8035e0c: 60f8 str r0, [r7, #12] + 8035d72: 6878 ldr r0, [r7, #4] + 8035d74: f7ff ffe5 bl 8035d42 + 8035d78: 60f8 str r0, [r7, #12] lv_tlsf_add_pool(tlsf, (char *)mem + lv_tlsf_size(), bytes - lv_tlsf_size()); - 8035e0e: f7ff ff87 bl 8035d20 - 8035e12: 4602 mov r2, r0 - 8035e14: 687b ldr r3, [r7, #4] - 8035e16: 189c adds r4, r3, r2 - 8035e18: f7ff ff82 bl 8035d20 - 8035e1c: 4602 mov r2, r0 - 8035e1e: 683b ldr r3, [r7, #0] - 8035e20: 1a9b subs r3, r3, r2 - 8035e22: 461a mov r2, r3 - 8035e24: 4621 mov r1, r4 - 8035e26: 68f8 ldr r0, [r7, #12] - 8035e28: f7ff ff8a bl 8035d40 + 8035d7a: f7ff ff87 bl 8035c8c + 8035d7e: 4602 mov r2, r0 + 8035d80: 687b ldr r3, [r7, #4] + 8035d82: 189c adds r4, r3, r2 + 8035d84: f7ff ff82 bl 8035c8c + 8035d88: 4602 mov r2, r0 + 8035d8a: 683b ldr r3, [r7, #0] + 8035d8c: 1a9b subs r3, r3, r2 + 8035d8e: 461a mov r2, r3 + 8035d90: 4621 mov r1, r4 + 8035d92: 68f8 ldr r0, [r7, #12] + 8035d94: f7ff ff8a bl 8035cac return tlsf; - 8035e2c: 68fb ldr r3, [r7, #12] + 8035d98: 68fb ldr r3, [r7, #12] } - 8035e2e: 4618 mov r0, r3 - 8035e30: 3714 adds r7, #20 - 8035e32: 46bd mov sp, r7 - 8035e34: bd90 pop {r4, r7, pc} + 8035d9a: 4618 mov r0, r3 + 8035d9c: 3714 adds r7, #20 + 8035d9e: 46bd mov sp, r7 + 8035da0: bd90 pop {r4, r7, pc} -08035e36 : +08035da2 : /* Nothing to do. */ LV_UNUSED(tlsf); } lv_pool_t lv_tlsf_get_pool(lv_tlsf_t tlsf) { - 8035e36: b580 push {r7, lr} - 8035e38: b082 sub sp, #8 - 8035e3a: af00 add r7, sp, #0 - 8035e3c: 6078 str r0, [r7, #4] + 8035da2: b580 push {r7, lr} + 8035da4: b082 sub sp, #8 + 8035da6: af00 add r7, sp, #0 + 8035da8: 6078 str r0, [r7, #4] return tlsf_cast(lv_pool_t, (char *)tlsf + lv_tlsf_size()); - 8035e3e: f7ff ff6f bl 8035d20 - 8035e42: 4602 mov r2, r0 - 8035e44: 687b ldr r3, [r7, #4] - 8035e46: 4413 add r3, r2 + 8035daa: f7ff ff6f bl 8035c8c + 8035dae: 4602 mov r2, r0 + 8035db0: 687b ldr r3, [r7, #4] + 8035db2: 4413 add r3, r2 } - 8035e48: 4618 mov r0, r3 - 8035e4a: 3708 adds r7, #8 - 8035e4c: 46bd mov sp, r7 - 8035e4e: bd80 pop {r7, pc} + 8035db4: 4618 mov r0, r3 + 8035db6: 3708 adds r7, #8 + 8035db8: 46bd mov sp, r7 + 8035dba: bd80 pop {r7, pc} -08035e50 : +08035dbc : void * lv_tlsf_malloc(lv_tlsf_t tlsf, size_t size) { - 8035e50: b580 push {r7, lr} - 8035e52: b086 sub sp, #24 - 8035e54: af00 add r7, sp, #0 - 8035e56: 6078 str r0, [r7, #4] - 8035e58: 6039 str r1, [r7, #0] + 8035dbc: b580 push {r7, lr} + 8035dbe: b086 sub sp, #24 + 8035dc0: af00 add r7, sp, #0 + 8035dc2: 6078 str r0, [r7, #4] + 8035dc4: 6039 str r1, [r7, #0] control_t * control = tlsf_cast(control_t *, tlsf); - 8035e5a: 687b ldr r3, [r7, #4] - 8035e5c: 617b str r3, [r7, #20] + 8035dc6: 687b ldr r3, [r7, #4] + 8035dc8: 617b str r3, [r7, #20] const size_t adjust = adjust_request_size(size, ALIGN_SIZE); - 8035e5e: 2104 movs r1, #4 - 8035e60: 6838 ldr r0, [r7, #0] - 8035e62: f7ff fbbc bl 80355de - 8035e66: 6138 str r0, [r7, #16] + 8035dca: 2104 movs r1, #4 + 8035dcc: 6838 ldr r0, [r7, #0] + 8035dce: f7ff fbbc bl 803554a + 8035dd2: 6138 str r0, [r7, #16] block_header_t * block = block_locate_free(control, adjust); - 8035e68: 6939 ldr r1, [r7, #16] - 8035e6a: 6978 ldr r0, [r7, #20] - 8035e6c: f7ff fe7d bl 8035b6a - 8035e70: 60f8 str r0, [r7, #12] + 8035dd4: 6939 ldr r1, [r7, #16] + 8035dd6: 6978 ldr r0, [r7, #20] + 8035dd8: f7ff fe7d bl 8035ad6 + 8035ddc: 60f8 str r0, [r7, #12] return block_prepare_used(control, block, adjust); - 8035e72: 693a ldr r2, [r7, #16] - 8035e74: 68f9 ldr r1, [r7, #12] - 8035e76: 6978 ldr r0, [r7, #20] - 8035e78: f7ff feaf bl 8035bda - 8035e7c: 4603 mov r3, r0 + 8035dde: 693a ldr r2, [r7, #16] + 8035de0: 68f9 ldr r1, [r7, #12] + 8035de2: 6978 ldr r0, [r7, #20] + 8035de4: f7ff feaf bl 8035b46 + 8035de8: 4603 mov r3, r0 } - 8035e7e: 4618 mov r0, r3 - 8035e80: 3718 adds r7, #24 - 8035e82: 46bd mov sp, r7 - 8035e84: bd80 pop {r7, pc} + 8035dea: 4618 mov r0, r3 + 8035dec: 3718 adds r7, #24 + 8035dee: 46bd mov sp, r7 + 8035df0: bd80 pop {r7, pc} -08035e86 : +08035df2 : return block_prepare_used(control, block, adjust); } void lv_tlsf_free(lv_tlsf_t tlsf, const void * ptr) { - 8035e86: b580 push {r7, lr} - 8035e88: b084 sub sp, #16 - 8035e8a: af00 add r7, sp, #0 - 8035e8c: 6078 str r0, [r7, #4] - 8035e8e: 6039 str r1, [r7, #0] + 8035df2: b580 push {r7, lr} + 8035df4: b084 sub sp, #16 + 8035df6: af00 add r7, sp, #0 + 8035df8: 6078 str r0, [r7, #4] + 8035dfa: 6039 str r1, [r7, #0] /* Don't attempt to free a NULL pointer. */ if(ptr) { - 8035e90: 683b ldr r3, [r7, #0] - 8035e92: 2b00 cmp r3, #0 - 8035e94: d01d beq.n 8035ed2 + 8035dfc: 683b ldr r3, [r7, #0] + 8035dfe: 2b00 cmp r3, #0 + 8035e00: d01d beq.n 8035e3e control_t * control = tlsf_cast(control_t *, tlsf); - 8035e96: 687b ldr r3, [r7, #4] - 8035e98: 60fb str r3, [r7, #12] + 8035e02: 687b ldr r3, [r7, #4] + 8035e04: 60fb str r3, [r7, #12] block_header_t * block = block_from_ptr(ptr); - 8035e9a: 6838 ldr r0, [r7, #0] - 8035e9c: f7ff face bl 803543c - 8035ea0: 60b8 str r0, [r7, #8] + 8035e06: 6838 ldr r0, [r7, #0] + 8035e08: f7ff face bl 80353a8 + 8035e0c: 60b8 str r0, [r7, #8] tlsf_assert(!block_is_free(block) && "block already marked as free"); - 8035ea2: 68b8 ldr r0, [r7, #8] - 8035ea4: f7ff fa72 bl 803538c - 8035ea8: 4603 mov r3, r0 - 8035eaa: 2b00 cmp r3, #0 - 8035eac: d000 beq.n 8035eb0 - 8035eae: e7fe b.n 8035eae + 8035e0e: 68b8 ldr r0, [r7, #8] + 8035e10: f7ff fa72 bl 80352f8 + 8035e14: 4603 mov r3, r0 + 8035e16: 2b00 cmp r3, #0 + 8035e18: d000 beq.n 8035e1c + 8035e1a: e7fe b.n 8035e1a block_mark_as_free(block); - 8035eb0: 68b8 ldr r0, [r7, #8] - 8035eb2: f7ff fb29 bl 8035508 + 8035e1c: 68b8 ldr r0, [r7, #8] + 8035e1e: f7ff fb29 bl 8035474 block = block_merge_prev(control, block); - 8035eb6: 68b9 ldr r1, [r7, #8] - 8035eb8: 68f8 ldr r0, [r7, #12] - 8035eba: f7ff fdb6 bl 8035a2a - 8035ebe: 60b8 str r0, [r7, #8] + 8035e22: 68b9 ldr r1, [r7, #8] + 8035e24: 68f8 ldr r0, [r7, #12] + 8035e26: f7ff fdb6 bl 8035996 + 8035e2a: 60b8 str r0, [r7, #8] block = block_merge_next(control, block); - 8035ec0: 68b9 ldr r1, [r7, #8] - 8035ec2: 68f8 ldr r0, [r7, #12] - 8035ec4: f7ff fdd9 bl 8035a7a - 8035ec8: 60b8 str r0, [r7, #8] + 8035e2c: 68b9 ldr r1, [r7, #8] + 8035e2e: 68f8 ldr r0, [r7, #12] + 8035e30: f7ff fdd9 bl 80359e6 + 8035e34: 60b8 str r0, [r7, #8] block_insert(control, block); - 8035eca: 68b9 ldr r1, [r7, #8] - 8035ecc: 68f8 ldr r0, [r7, #12] - 8035ece: f7ff fd12 bl 80358f6 + 8035e36: 68b9 ldr r1, [r7, #8] + 8035e38: 68f8 ldr r0, [r7, #12] + 8035e3a: f7ff fd12 bl 8035862 } } - 8035ed2: bf00 nop - 8035ed4: 3710 adds r7, #16 - 8035ed6: 46bd mov sp, r7 - 8035ed8: bd80 pop {r7, pc} + 8035e3e: bf00 nop + 8035e40: 3710 adds r7, #16 + 8035e42: 46bd mov sp, r7 + 8035e44: bd80 pop {r7, pc} -08035eda : +08035e46 : ** untouched ** - an extended buffer size will leave the newly-allocated area with ** contents undefined */ void * lv_tlsf_realloc(lv_tlsf_t tlsf, void * ptr, size_t size) { - 8035eda: b580 push {r7, lr} - 8035edc: b08c sub sp, #48 ; 0x30 - 8035ede: af00 add r7, sp, #0 - 8035ee0: 60f8 str r0, [r7, #12] - 8035ee2: 60b9 str r1, [r7, #8] - 8035ee4: 607a str r2, [r7, #4] + 8035e46: b580 push {r7, lr} + 8035e48: b08c sub sp, #48 ; 0x30 + 8035e4a: af00 add r7, sp, #0 + 8035e4c: 60f8 str r0, [r7, #12] + 8035e4e: 60b9 str r1, [r7, #8] + 8035e50: 607a str r2, [r7, #4] control_t * control = tlsf_cast(control_t *, tlsf); - 8035ee6: 68fb ldr r3, [r7, #12] - 8035ee8: 62bb str r3, [r7, #40] ; 0x28 + 8035e52: 68fb ldr r3, [r7, #12] + 8035e54: 62bb str r3, [r7, #40] ; 0x28 void * p = 0; - 8035eea: 2300 movs r3, #0 - 8035eec: 62fb str r3, [r7, #44] ; 0x2c + 8035e56: 2300 movs r3, #0 + 8035e58: 62fb str r3, [r7, #44] ; 0x2c /* Zero-size requests are treated as free. */ if(ptr && size == 0) { - 8035eee: 68bb ldr r3, [r7, #8] - 8035ef0: 2b00 cmp r3, #0 - 8035ef2: d007 beq.n 8035f04 - 8035ef4: 687b ldr r3, [r7, #4] - 8035ef6: 2b00 cmp r3, #0 - 8035ef8: d104 bne.n 8035f04 + 8035e5a: 68bb ldr r3, [r7, #8] + 8035e5c: 2b00 cmp r3, #0 + 8035e5e: d007 beq.n 8035e70 + 8035e60: 687b ldr r3, [r7, #4] + 8035e62: 2b00 cmp r3, #0 + 8035e64: d104 bne.n 8035e70 lv_tlsf_free(tlsf, ptr); - 8035efa: 68b9 ldr r1, [r7, #8] - 8035efc: 68f8 ldr r0, [r7, #12] - 8035efe: f7ff ffc2 bl 8035e86 - 8035f02: e061 b.n 8035fc8 + 8035e66: 68b9 ldr r1, [r7, #8] + 8035e68: 68f8 ldr r0, [r7, #12] + 8035e6a: f7ff ffc2 bl 8035df2 + 8035e6e: e061 b.n 8035f34 } /* Requests with NULL pointers are treated as malloc. */ else if(!ptr) { - 8035f04: 68bb ldr r3, [r7, #8] - 8035f06: 2b00 cmp r3, #0 - 8035f08: d105 bne.n 8035f16 + 8035e70: 68bb ldr r3, [r7, #8] + 8035e72: 2b00 cmp r3, #0 + 8035e74: d105 bne.n 8035e82 p = lv_tlsf_malloc(tlsf, size); - 8035f0a: 6879 ldr r1, [r7, #4] - 8035f0c: 68f8 ldr r0, [r7, #12] - 8035f0e: f7ff ff9f bl 8035e50 - 8035f12: 62f8 str r0, [r7, #44] ; 0x2c - 8035f14: e058 b.n 8035fc8 + 8035e76: 6879 ldr r1, [r7, #4] + 8035e78: 68f8 ldr r0, [r7, #12] + 8035e7a: f7ff ff9f bl 8035dbc + 8035e7e: 62f8 str r0, [r7, #44] ; 0x2c + 8035e80: e058 b.n 8035f34 } else { block_header_t * block = block_from_ptr(ptr); - 8035f16: 68b8 ldr r0, [r7, #8] - 8035f18: f7ff fa90 bl 803543c - 8035f1c: 6278 str r0, [r7, #36] ; 0x24 + 8035e82: 68b8 ldr r0, [r7, #8] + 8035e84: f7ff fa90 bl 80353a8 + 8035e88: 6278 str r0, [r7, #36] ; 0x24 block_header_t * next = block_next(block); - 8035f1e: 6a78 ldr r0, [r7, #36] ; 0x24 - 8035f20: f7ff fac3 bl 80354aa - 8035f24: 6238 str r0, [r7, #32] + 8035e8a: 6a78 ldr r0, [r7, #36] ; 0x24 + 8035e8c: f7ff fac3 bl 8035416 + 8035e90: 6238 str r0, [r7, #32] const size_t cursize = block_size(block); - 8035f26: 6a78 ldr r0, [r7, #36] ; 0x24 - 8035f28: f7ff f9f9 bl 803531e - 8035f2c: 61f8 str r0, [r7, #28] + 8035e92: 6a78 ldr r0, [r7, #36] ; 0x24 + 8035e94: f7ff f9f9 bl 803528a + 8035e98: 61f8 str r0, [r7, #28] const size_t combined = cursize + block_size(next) + block_header_overhead; - 8035f2e: 6a38 ldr r0, [r7, #32] - 8035f30: f7ff f9f5 bl 803531e - 8035f34: 4602 mov r2, r0 - 8035f36: 69fb ldr r3, [r7, #28] - 8035f38: 4413 add r3, r2 - 8035f3a: 2204 movs r2, #4 - 8035f3c: 4413 add r3, r2 - 8035f3e: 61bb str r3, [r7, #24] + 8035e9a: 6a38 ldr r0, [r7, #32] + 8035e9c: f7ff f9f5 bl 803528a + 8035ea0: 4602 mov r2, r0 + 8035ea2: 69fb ldr r3, [r7, #28] + 8035ea4: 4413 add r3, r2 + 8035ea6: 2204 movs r2, #4 + 8035ea8: 4413 add r3, r2 + 8035eaa: 61bb str r3, [r7, #24] const size_t adjust = adjust_request_size(size, ALIGN_SIZE); - 8035f40: 2104 movs r1, #4 - 8035f42: 6878 ldr r0, [r7, #4] - 8035f44: f7ff fb4b bl 80355de - 8035f48: 6178 str r0, [r7, #20] + 8035eac: 2104 movs r1, #4 + 8035eae: 6878 ldr r0, [r7, #4] + 8035eb0: f7ff fb4b bl 803554a + 8035eb4: 6178 str r0, [r7, #20] tlsf_assert(!block_is_free(block) && "block already marked as free"); - 8035f4a: 6a78 ldr r0, [r7, #36] ; 0x24 - 8035f4c: f7ff fa1e bl 803538c - 8035f50: 4603 mov r3, r0 - 8035f52: 2b00 cmp r3, #0 - 8035f54: d000 beq.n 8035f58 - 8035f56: e7fe b.n 8035f56 + 8035eb6: 6a78 ldr r0, [r7, #36] ; 0x24 + 8035eb8: f7ff fa1e bl 80352f8 + 8035ebc: 4603 mov r3, r0 + 8035ebe: 2b00 cmp r3, #0 + 8035ec0: d000 beq.n 8035ec4 + 8035ec2: e7fe b.n 8035ec2 /* ** If the next block is used, or when combined with the current ** block, does not offer enough space, we must reallocate and copy. */ if(adjust > cursize && (!block_is_free(next) || adjust > combined)) { - 8035f58: 697a ldr r2, [r7, #20] - 8035f5a: 69fb ldr r3, [r7, #28] - 8035f5c: 429a cmp r2, r3 - 8035f5e: d921 bls.n 8035fa4 - 8035f60: 6a38 ldr r0, [r7, #32] - 8035f62: f7ff fa13 bl 803538c - 8035f66: 4603 mov r3, r0 - 8035f68: 2b00 cmp r3, #0 - 8035f6a: d003 beq.n 8035f74 - 8035f6c: 697a ldr r2, [r7, #20] - 8035f6e: 69bb ldr r3, [r7, #24] - 8035f70: 429a cmp r2, r3 - 8035f72: d917 bls.n 8035fa4 + 8035ec4: 697a ldr r2, [r7, #20] + 8035ec6: 69fb ldr r3, [r7, #28] + 8035ec8: 429a cmp r2, r3 + 8035eca: d921 bls.n 8035f10 + 8035ecc: 6a38 ldr r0, [r7, #32] + 8035ece: f7ff fa13 bl 80352f8 + 8035ed2: 4603 mov r3, r0 + 8035ed4: 2b00 cmp r3, #0 + 8035ed6: d003 beq.n 8035ee0 + 8035ed8: 697a ldr r2, [r7, #20] + 8035eda: 69bb ldr r3, [r7, #24] + 8035edc: 429a cmp r2, r3 + 8035ede: d917 bls.n 8035f10 p = lv_tlsf_malloc(tlsf, size); - 8035f74: 6879 ldr r1, [r7, #4] - 8035f76: 68f8 ldr r0, [r7, #12] - 8035f78: f7ff ff6a bl 8035e50 - 8035f7c: 62f8 str r0, [r7, #44] ; 0x2c + 8035ee0: 6879 ldr r1, [r7, #4] + 8035ee2: 68f8 ldr r0, [r7, #12] + 8035ee4: f7ff ff6a bl 8035dbc + 8035ee8: 62f8 str r0, [r7, #44] ; 0x2c if(p) { - 8035f7e: 6afb ldr r3, [r7, #44] ; 0x2c - 8035f80: 2b00 cmp r3, #0 - 8035f82: d021 beq.n 8035fc8 + 8035eea: 6afb ldr r3, [r7, #44] ; 0x2c + 8035eec: 2b00 cmp r3, #0 + 8035eee: d021 beq.n 8035f34 const size_t minsize = tlsf_min(cursize, size); - 8035f84: 687a ldr r2, [r7, #4] - 8035f86: 69fb ldr r3, [r7, #28] - 8035f88: 4293 cmp r3, r2 - 8035f8a: bf28 it cs - 8035f8c: 4613 movcs r3, r2 - 8035f8e: 613b str r3, [r7, #16] + 8035ef0: 687a ldr r2, [r7, #4] + 8035ef2: 69fb ldr r3, [r7, #28] + 8035ef4: 4293 cmp r3, r2 + 8035ef6: bf28 it cs + 8035ef8: 4613 movcs r3, r2 + 8035efa: 613b str r3, [r7, #16] lv_memcpy(p, ptr, minsize); - 8035f90: 693a ldr r2, [r7, #16] - 8035f92: 68b9 ldr r1, [r7, #8] - 8035f94: 6af8 ldr r0, [r7, #44] ; 0x2c - 8035f96: f7fc fe37 bl 8032c08 + 8035efc: 693a ldr r2, [r7, #16] + 8035efe: 68b9 ldr r1, [r7, #8] + 8035f00: 6af8 ldr r0, [r7, #44] ; 0x2c + 8035f02: f7fc fe37 bl 8032b74 lv_tlsf_free(tlsf, ptr); - 8035f9a: 68b9 ldr r1, [r7, #8] - 8035f9c: 68f8 ldr r0, [r7, #12] - 8035f9e: f7ff ff72 bl 8035e86 + 8035f06: 68b9 ldr r1, [r7, #8] + 8035f08: 68f8 ldr r0, [r7, #12] + 8035f0a: f7ff ff72 bl 8035df2 if(p) { - 8035fa2: e011 b.n 8035fc8 + 8035f0e: e011 b.n 8035f34 } } else { /* Do we need to expand to the next block? */ if(adjust > cursize) { - 8035fa4: 697a ldr r2, [r7, #20] - 8035fa6: 69fb ldr r3, [r7, #28] - 8035fa8: 429a cmp r2, r3 - 8035faa: d906 bls.n 8035fba + 8035f10: 697a ldr r2, [r7, #20] + 8035f12: 69fb ldr r3, [r7, #28] + 8035f14: 429a cmp r2, r3 + 8035f16: d906 bls.n 8035f26 block_merge_next(control, block); - 8035fac: 6a79 ldr r1, [r7, #36] ; 0x24 - 8035fae: 6ab8 ldr r0, [r7, #40] ; 0x28 - 8035fb0: f7ff fd63 bl 8035a7a + 8035f18: 6a79 ldr r1, [r7, #36] ; 0x24 + 8035f1a: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8035f1c: f7ff fd63 bl 80359e6 block_mark_as_used(block); - 8035fb4: 6a78 ldr r0, [r7, #36] ; 0x24 - 8035fb6: f7ff fab9 bl 803552c + 8035f20: 6a78 ldr r0, [r7, #36] ; 0x24 + 8035f22: f7ff fab9 bl 8035498 } /* Trim the resulting block and return the original pointer. */ block_trim_used(control, block, adjust); - 8035fba: 697a ldr r2, [r7, #20] - 8035fbc: 6a79 ldr r1, [r7, #36] ; 0x24 - 8035fbe: 6ab8 ldr r0, [r7, #40] ; 0x28 - 8035fc0: f7ff fdaa bl 8035b18 + 8035f26: 697a ldr r2, [r7, #20] + 8035f28: 6a79 ldr r1, [r7, #36] ; 0x24 + 8035f2a: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8035f2c: f7ff fdaa bl 8035a84 p = ptr; - 8035fc4: 68bb ldr r3, [r7, #8] - 8035fc6: 62fb str r3, [r7, #44] ; 0x2c + 8035f30: 68bb ldr r3, [r7, #8] + 8035f32: 62fb str r3, [r7, #44] ; 0x2c } } return p; - 8035fc8: 6afb ldr r3, [r7, #44] ; 0x2c + 8035f34: 6afb ldr r3, [r7, #44] ; 0x2c } - 8035fca: 4618 mov r0, r3 - 8035fcc: 3730 adds r7, #48 ; 0x30 - 8035fce: 46bd mov sp, r7 - 8035fd0: bd80 pop {r7, pc} + 8035f36: 4618 mov r0, r3 + 8035f38: 3730 adds r7, #48 ; 0x30 + 8035f3a: 46bd mov sp, r7 + 8035f3c: bd80 pop {r7, pc} -08035fd2 : +08035f3e : * Get the line height of a font. All characters fit into this height * @param font_p pointer to a font * @return the height of a font */ static inline lv_coord_t lv_font_get_line_height(const lv_font_t * font_p) { - 8035fd2: b480 push {r7} - 8035fd4: b083 sub sp, #12 - 8035fd6: af00 add r7, sp, #0 - 8035fd8: 6078 str r0, [r7, #4] + 8035f3e: b480 push {r7} + 8035f40: b083 sub sp, #12 + 8035f42: af00 add r7, sp, #0 + 8035f44: 6078 str r0, [r7, #4] return font_p->line_height; - 8035fda: 687b ldr r3, [r7, #4] - 8035fdc: f9b3 3008 ldrsh.w r3, [r3, #8] + 8035f46: 687b ldr r3, [r7, #4] + 8035f48: f9b3 3008 ldrsh.w r3, [r3, #8] } - 8035fe0: 4618 mov r0, r3 - 8035fe2: 370c adds r7, #12 - 8035fe4: 46bd mov sp, r7 - 8035fe6: bc80 pop {r7} - 8035fe8: 4770 bx lr + 8035f4c: 4618 mov r0, r3 + 8035f4e: 370c adds r7, #12 + 8035f50: 46bd mov sp, r7 + 8035f52: bc80 pop {r7} + 8035f54: 4770 bx lr ... -08035fec <_lv_txt_is_break_char>: +08035f58 <_lv_txt_is_break_char>: * Test if char is break char or not (a text can broken here or not) * @param letter a letter * @return false: 'letter' is not break char */ static inline bool _lv_txt_is_break_char(uint32_t letter) { - 8035fec: b480 push {r7} - 8035fee: b085 sub sp, #20 - 8035ff0: af00 add r7, sp, #0 - 8035ff2: 6078 str r0, [r7, #4] + 8035f58: b480 push {r7} + 8035f5a: b085 sub sp, #20 + 8035f5c: af00 add r7, sp, #0 + 8035f5e: 6078 str r0, [r7, #4] uint8_t i; bool ret = false; - 8035ff4: 2300 movs r3, #0 - 8035ff6: 73bb strb r3, [r7, #14] + 8035f60: 2300 movs r3, #0 + 8035f62: 73bb strb r3, [r7, #14] /* each chinese character can be break */ if(letter >= 0x4E00 && letter <= 0x9FA5) { - 8035ff8: 687b ldr r3, [r7, #4] - 8035ffa: f5b3 4f9c cmp.w r3, #19968 ; 0x4e00 - 8035ffe: d306 bcc.n 803600e <_lv_txt_is_break_char+0x22> - 8036000: 687b ldr r3, [r7, #4] - 8036002: f649 72a5 movw r2, #40869 ; 0x9fa5 - 8036006: 4293 cmp r3, r2 - 8036008: d801 bhi.n 803600e <_lv_txt_is_break_char+0x22> + 8035f64: 687b ldr r3, [r7, #4] + 8035f66: f5b3 4f9c cmp.w r3, #19968 ; 0x4e00 + 8035f6a: d306 bcc.n 8035f7a <_lv_txt_is_break_char+0x22> + 8035f6c: 687b ldr r3, [r7, #4] + 8035f6e: f649 72a5 movw r2, #40869 ; 0x9fa5 + 8035f72: 4293 cmp r3, r2 + 8035f74: d801 bhi.n 8035f7a <_lv_txt_is_break_char+0x22> return true; - 803600a: 2301 movs r3, #1 - 803600c: e015 b.n 803603a <_lv_txt_is_break_char+0x4e> + 8035f76: 2301 movs r3, #1 + 8035f78: e015 b.n 8035fa6 <_lv_txt_is_break_char+0x4e> } /*Compare the letter to TXT_BREAK_CHARS*/ for(i = 0; LV_TXT_BREAK_CHARS[i] != '\0'; i++) { - 803600e: 2300 movs r3, #0 - 8036010: 73fb strb r3, [r7, #15] - 8036012: e00c b.n 803602e <_lv_txt_is_break_char+0x42> + 8035f7a: 2300 movs r3, #0 + 8035f7c: 73fb strb r3, [r7, #15] + 8035f7e: e00c b.n 8035f9a <_lv_txt_is_break_char+0x42> if(letter == (uint32_t)LV_TXT_BREAK_CHARS[i]) { - 8036014: 7bfb ldrb r3, [r7, #15] - 8036016: 4a0b ldr r2, [pc, #44] ; (8036044 <_lv_txt_is_break_char+0x58>) - 8036018: 5cd3 ldrb r3, [r2, r3] - 803601a: 461a mov r2, r3 - 803601c: 687b ldr r3, [r7, #4] - 803601e: 4293 cmp r3, r2 - 8036020: d102 bne.n 8036028 <_lv_txt_is_break_char+0x3c> + 8035f80: 7bfb ldrb r3, [r7, #15] + 8035f82: 4a0b ldr r2, [pc, #44] ; (8035fb0 <_lv_txt_is_break_char+0x58>) + 8035f84: 5cd3 ldrb r3, [r2, r3] + 8035f86: 461a mov r2, r3 + 8035f88: 687b ldr r3, [r7, #4] + 8035f8a: 4293 cmp r3, r2 + 8035f8c: d102 bne.n 8035f94 <_lv_txt_is_break_char+0x3c> ret = true; /*If match then it is break char*/ - 8036022: 2301 movs r3, #1 - 8036024: 73bb strb r3, [r7, #14] + 8035f8e: 2301 movs r3, #1 + 8035f90: 73bb strb r3, [r7, #14] break; - 8036026: e007 b.n 8036038 <_lv_txt_is_break_char+0x4c> + 8035f92: e007 b.n 8035fa4 <_lv_txt_is_break_char+0x4c> for(i = 0; LV_TXT_BREAK_CHARS[i] != '\0'; i++) { - 8036028: 7bfb ldrb r3, [r7, #15] - 803602a: 3301 adds r3, #1 - 803602c: 73fb strb r3, [r7, #15] - 803602e: 7bfb ldrb r3, [r7, #15] - 8036030: 4a04 ldr r2, [pc, #16] ; (8036044 <_lv_txt_is_break_char+0x58>) - 8036032: 5cd3 ldrb r3, [r2, r3] - 8036034: 2b00 cmp r3, #0 - 8036036: d1ed bne.n 8036014 <_lv_txt_is_break_char+0x28> + 8035f94: 7bfb ldrb r3, [r7, #15] + 8035f96: 3301 adds r3, #1 + 8035f98: 73fb strb r3, [r7, #15] + 8035f9a: 7bfb ldrb r3, [r7, #15] + 8035f9c: 4a04 ldr r2, [pc, #16] ; (8035fb0 <_lv_txt_is_break_char+0x58>) + 8035f9e: 5cd3 ldrb r3, [r2, r3] + 8035fa0: 2b00 cmp r3, #0 + 8035fa2: d1ed bne.n 8035f80 <_lv_txt_is_break_char+0x28> } } return ret; - 8036038: 7bbb ldrb r3, [r7, #14] + 8035fa4: 7bbb ldrb r3, [r7, #14] } - 803603a: 4618 mov r0, r3 - 803603c: 3714 adds r7, #20 - 803603e: 46bd mov sp, r7 - 8036040: bc80 pop {r7} - 8036042: 4770 bx lr - 8036044: 0804714c .word 0x0804714c + 8035fa6: 4618 mov r0, r3 + 8035fa8: 3714 adds r7, #20 + 8035faa: 46bd mov sp, r7 + 8035fac: bc80 pop {r7} + 8035fae: 4770 bx lr + 8035fb0: 080470a4 .word 0x080470a4 -08036048 : +08035fb4 : * @param dst pointer to the destination buffer * @param src pointer to the source buffer * @param len number of byte to copy */ LV_ATTRIBUTE_FAST_MEM static inline void * lv_memcpy_small(void * dst, const void * src, size_t len) { - 8036048: b480 push {r7} - 803604a: b087 sub sp, #28 - 803604c: af00 add r7, sp, #0 - 803604e: 60f8 str r0, [r7, #12] - 8036050: 60b9 str r1, [r7, #8] - 8036052: 607a str r2, [r7, #4] + 8035fb4: b480 push {r7} + 8035fb6: b087 sub sp, #28 + 8035fb8: af00 add r7, sp, #0 + 8035fba: 60f8 str r0, [r7, #12] + 8035fbc: 60b9 str r1, [r7, #8] + 8035fbe: 607a str r2, [r7, #4] uint8_t * d8 = (uint8_t *)dst; - 8036054: 68fb ldr r3, [r7, #12] - 8036056: 617b str r3, [r7, #20] + 8035fc0: 68fb ldr r3, [r7, #12] + 8035fc2: 617b str r3, [r7, #20] const uint8_t * s8 = (const uint8_t *)src; - 8036058: 68bb ldr r3, [r7, #8] - 803605a: 613b str r3, [r7, #16] + 8035fc4: 68bb ldr r3, [r7, #8] + 8035fc6: 613b str r3, [r7, #16] while(len) { - 803605c: e00c b.n 8036078 + 8035fc8: e00c b.n 8035fe4 *d8 = *s8; - 803605e: 693b ldr r3, [r7, #16] - 8036060: 781a ldrb r2, [r3, #0] - 8036062: 697b ldr r3, [r7, #20] - 8036064: 701a strb r2, [r3, #0] + 8035fca: 693b ldr r3, [r7, #16] + 8035fcc: 781a ldrb r2, [r3, #0] + 8035fce: 697b ldr r3, [r7, #20] + 8035fd0: 701a strb r2, [r3, #0] d8++; - 8036066: 697b ldr r3, [r7, #20] - 8036068: 3301 adds r3, #1 - 803606a: 617b str r3, [r7, #20] + 8035fd2: 697b ldr r3, [r7, #20] + 8035fd4: 3301 adds r3, #1 + 8035fd6: 617b str r3, [r7, #20] s8++; - 803606c: 693b ldr r3, [r7, #16] - 803606e: 3301 adds r3, #1 - 8036070: 613b str r3, [r7, #16] + 8035fd8: 693b ldr r3, [r7, #16] + 8035fda: 3301 adds r3, #1 + 8035fdc: 613b str r3, [r7, #16] len--; - 8036072: 687b ldr r3, [r7, #4] - 8036074: 3b01 subs r3, #1 - 8036076: 607b str r3, [r7, #4] + 8035fde: 687b ldr r3, [r7, #4] + 8035fe0: 3b01 subs r3, #1 + 8035fe2: 607b str r3, [r7, #4] while(len) { - 8036078: 687b ldr r3, [r7, #4] - 803607a: 2b00 cmp r3, #0 - 803607c: d1ef bne.n 803605e + 8035fe4: 687b ldr r3, [r7, #4] + 8035fe6: 2b00 cmp r3, #0 + 8035fe8: d1ef bne.n 8035fca } return dst; - 803607e: 68fb ldr r3, [r7, #12] + 8035fea: 68fb ldr r3, [r7, #12] } - 8036080: 4618 mov r0, r3 - 8036082: 371c adds r7, #28 - 8036084: 46bd mov sp, r7 - 8036086: bc80 pop {r7} - 8036088: 4770 bx lr + 8035fec: 4618 mov r0, r3 + 8035fee: 371c adds r7, #28 + 8035ff0: 46bd mov sp, r7 + 8035ff2: bc80 pop {r7} + 8035ff4: 4770 bx lr -0803608a : +08035ff6 : * GLOBAL FUNCTIONS **********************/ void lv_txt_get_size(lv_point_t * size_res, const char * text, const lv_font_t * font, lv_coord_t letter_space, lv_coord_t line_space, lv_coord_t max_width, lv_text_flag_t flag) { - 803608a: b580 push {r7, lr} - 803608c: b08a sub sp, #40 ; 0x28 - 803608e: af02 add r7, sp, #8 - 8036090: 60f8 str r0, [r7, #12] - 8036092: 60b9 str r1, [r7, #8] - 8036094: 607a str r2, [r7, #4] - 8036096: 807b strh r3, [r7, #2] + 8035ff6: b580 push {r7, lr} + 8035ff8: b08a sub sp, #40 ; 0x28 + 8035ffa: af02 add r7, sp, #8 + 8035ffc: 60f8 str r0, [r7, #12] + 8035ffe: 60b9 str r1, [r7, #8] + 8036000: 607a str r2, [r7, #4] + 8036002: 807b strh r3, [r7, #2] size_res->x = 0; - 8036098: 68fb ldr r3, [r7, #12] - 803609a: 2200 movs r2, #0 - 803609c: 801a strh r2, [r3, #0] + 8036004: 68fb ldr r3, [r7, #12] + 8036006: 2200 movs r2, #0 + 8036008: 801a strh r2, [r3, #0] size_res->y = 0; - 803609e: 68fb ldr r3, [r7, #12] - 80360a0: 2200 movs r2, #0 - 80360a2: 805a strh r2, [r3, #2] + 803600a: 68fb ldr r3, [r7, #12] + 803600c: 2200 movs r2, #0 + 803600e: 805a strh r2, [r3, #2] if(text == NULL) return; - 80360a4: 68bb ldr r3, [r7, #8] - 80360a6: 2b00 cmp r3, #0 - 80360a8: f000 80a2 beq.w 80361f0 + 8036010: 68bb ldr r3, [r7, #8] + 8036012: 2b00 cmp r3, #0 + 8036014: f000 80a2 beq.w 803615c if(font == NULL) return; - 80360ac: 687b ldr r3, [r7, #4] - 80360ae: 2b00 cmp r3, #0 - 80360b0: f000 80a0 beq.w 80361f4 + 8036018: 687b ldr r3, [r7, #4] + 803601a: 2b00 cmp r3, #0 + 803601c: f000 80a0 beq.w 8036160 if(flag & LV_TEXT_FLAG_EXPAND) max_width = LV_COORD_MAX; - 80360b4: f897 3030 ldrb.w r3, [r7, #48] ; 0x30 - 80360b8: f003 0302 and.w r3, r3, #2 - 80360bc: 2b00 cmp r3, #0 - 80360be: d002 beq.n 80360c6 - 80360c0: f641 73ff movw r3, #8191 ; 0x1fff - 80360c4: 85bb strh r3, [r7, #44] ; 0x2c + 8036020: f897 3030 ldrb.w r3, [r7, #48] ; 0x30 + 8036024: f003 0302 and.w r3, r3, #2 + 8036028: 2b00 cmp r3, #0 + 803602a: d002 beq.n 8036032 + 803602c: f641 73ff movw r3, #8191 ; 0x1fff + 8036030: 85bb strh r3, [r7, #44] ; 0x2c uint32_t line_start = 0; - 80360c6: 2300 movs r3, #0 - 80360c8: 61fb str r3, [r7, #28] + 8036032: 2300 movs r3, #0 + 8036034: 61fb str r3, [r7, #28] uint32_t new_line_start = 0; - 80360ca: 2300 movs r3, #0 - 80360cc: 61bb str r3, [r7, #24] + 8036036: 2300 movs r3, #0 + 8036038: 61bb str r3, [r7, #24] uint16_t letter_height = lv_font_get_line_height(font); - 80360ce: 6878 ldr r0, [r7, #4] - 80360d0: f7ff ff7f bl 8035fd2 - 80360d4: 4603 mov r3, r0 - 80360d6: 82fb strh r3, [r7, #22] + 803603a: 6878 ldr r0, [r7, #4] + 803603c: f7ff ff7f bl 8035f3e + 8036040: 4603 mov r3, r0 + 8036042: 82fb strh r3, [r7, #22] /*Calc. the height and longest line*/ while(text[line_start] != '\0') { - 80360d8: e051 b.n 803617e + 8036044: e051 b.n 80360ea new_line_start += _lv_txt_get_next_line(&text[line_start], font, letter_space, max_width, NULL, flag); - 80360da: 68ba ldr r2, [r7, #8] - 80360dc: 69fb ldr r3, [r7, #28] - 80360de: 18d0 adds r0, r2, r3 - 80360e0: f9b7 102c ldrsh.w r1, [r7, #44] ; 0x2c - 80360e4: f9b7 2002 ldrsh.w r2, [r7, #2] - 80360e8: f897 3030 ldrb.w r3, [r7, #48] ; 0x30 - 80360ec: 9301 str r3, [sp, #4] - 80360ee: 2300 movs r3, #0 - 80360f0: 9300 str r3, [sp, #0] - 80360f2: 460b mov r3, r1 - 80360f4: 6879 ldr r1, [r7, #4] - 80360f6: f000 f963 bl 80363c0 <_lv_txt_get_next_line> - 80360fa: 4602 mov r2, r0 - 80360fc: 69bb ldr r3, [r7, #24] - 80360fe: 4413 add r3, r2 - 8036100: 61bb str r3, [r7, #24] + 8036046: 68ba ldr r2, [r7, #8] + 8036048: 69fb ldr r3, [r7, #28] + 803604a: 18d0 adds r0, r2, r3 + 803604c: f9b7 102c ldrsh.w r1, [r7, #44] ; 0x2c + 8036050: f9b7 2002 ldrsh.w r2, [r7, #2] + 8036054: f897 3030 ldrb.w r3, [r7, #48] ; 0x30 + 8036058: 9301 str r3, [sp, #4] + 803605a: 2300 movs r3, #0 + 803605c: 9300 str r3, [sp, #0] + 803605e: 460b mov r3, r1 + 8036060: 6879 ldr r1, [r7, #4] + 8036062: f000 f963 bl 803632c <_lv_txt_get_next_line> + 8036066: 4602 mov r2, r0 + 8036068: 69bb ldr r3, [r7, #24] + 803606a: 4413 add r3, r2 + 803606c: 61bb str r3, [r7, #24] if((unsigned long)size_res->y + (unsigned long)letter_height + (unsigned long)line_space > LV_MAX_OF(lv_coord_t)) { - 8036102: 68fb ldr r3, [r7, #12] - 8036104: f9b3 3002 ldrsh.w r3, [r3, #2] - 8036108: 461a mov r2, r3 - 803610a: 8afb ldrh r3, [r7, #22] - 803610c: 441a add r2, r3 - 803610e: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 - 8036112: 4413 add r3, r2 - 8036114: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 - 8036118: d26e bcs.n 80361f8 + 803606e: 68fb ldr r3, [r7, #12] + 8036070: f9b3 3002 ldrsh.w r3, [r3, #2] + 8036074: 461a mov r2, r3 + 8036076: 8afb ldrh r3, [r7, #22] + 8036078: 441a add r2, r3 + 803607a: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 803607e: 4413 add r3, r2 + 8036080: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 + 8036084: d26e bcs.n 8036164 LV_LOG_WARN("lv_txt_get_size: integer overflow while calculating text height"); return; } else { size_res->y += letter_height; - 803611a: 68fb ldr r3, [r7, #12] - 803611c: f9b3 3002 ldrsh.w r3, [r3, #2] - 8036120: b29a uxth r2, r3 - 8036122: 8afb ldrh r3, [r7, #22] - 8036124: 4413 add r3, r2 - 8036126: b29b uxth r3, r3 - 8036128: b21a sxth r2, r3 - 803612a: 68fb ldr r3, [r7, #12] - 803612c: 805a strh r2, [r3, #2] + 8036086: 68fb ldr r3, [r7, #12] + 8036088: f9b3 3002 ldrsh.w r3, [r3, #2] + 803608c: b29a uxth r2, r3 + 803608e: 8afb ldrh r3, [r7, #22] + 8036090: 4413 add r3, r2 + 8036092: b29b uxth r3, r3 + 8036094: b21a sxth r2, r3 + 8036096: 68fb ldr r3, [r7, #12] + 8036098: 805a strh r2, [r3, #2] size_res->y += line_space; - 803612e: 68fb ldr r3, [r7, #12] - 8036130: f9b3 3002 ldrsh.w r3, [r3, #2] - 8036134: b29a uxth r2, r3 - 8036136: 8d3b ldrh r3, [r7, #40] ; 0x28 - 8036138: 4413 add r3, r2 - 803613a: b29b uxth r3, r3 - 803613c: b21a sxth r2, r3 - 803613e: 68fb ldr r3, [r7, #12] - 8036140: 805a strh r2, [r3, #2] + 803609a: 68fb ldr r3, [r7, #12] + 803609c: f9b3 3002 ldrsh.w r3, [r3, #2] + 80360a0: b29a uxth r2, r3 + 80360a2: 8d3b ldrh r3, [r7, #40] ; 0x28 + 80360a4: 4413 add r3, r2 + 80360a6: b29b uxth r3, r3 + 80360a8: b21a sxth r2, r3 + 80360aa: 68fb ldr r3, [r7, #12] + 80360ac: 805a strh r2, [r3, #2] } /*Calculate the longest line*/ lv_coord_t act_line_length = lv_txt_get_width(&text[line_start], new_line_start - line_start, font, letter_space, - 8036142: 68ba ldr r2, [r7, #8] - 8036144: 69fb ldr r3, [r7, #28] - 8036146: 18d0 adds r0, r2, r3 - 8036148: 69ba ldr r2, [r7, #24] - 803614a: 69fb ldr r3, [r7, #28] - 803614c: 1ad1 subs r1, r2, r3 - 803614e: f9b7 2002 ldrsh.w r2, [r7, #2] - 8036152: f897 3030 ldrb.w r3, [r7, #48] ; 0x30 - 8036156: 9300 str r3, [sp, #0] - 8036158: 4613 mov r3, r2 - 803615a: 687a ldr r2, [r7, #4] - 803615c: f000 fa0e bl 803657c - 8036160: 4603 mov r3, r0 - 8036162: 82bb strh r3, [r7, #20] + 80360ae: 68ba ldr r2, [r7, #8] + 80360b0: 69fb ldr r3, [r7, #28] + 80360b2: 18d0 adds r0, r2, r3 + 80360b4: 69ba ldr r2, [r7, #24] + 80360b6: 69fb ldr r3, [r7, #28] + 80360b8: 1ad1 subs r1, r2, r3 + 80360ba: f9b7 2002 ldrsh.w r2, [r7, #2] + 80360be: f897 3030 ldrb.w r3, [r7, #48] ; 0x30 + 80360c2: 9300 str r3, [sp, #0] + 80360c4: 4613 mov r3, r2 + 80360c6: 687a ldr r2, [r7, #4] + 80360c8: f000 fa0e bl 80364e8 + 80360cc: 4603 mov r3, r0 + 80360ce: 82bb strh r3, [r7, #20] flag); size_res->x = LV_MAX(act_line_length, size_res->x); - 8036164: 68fb ldr r3, [r7, #12] - 8036166: f9b3 3000 ldrsh.w r3, [r3] - 803616a: f9b7 2014 ldrsh.w r2, [r7, #20] - 803616e: 4293 cmp r3, r2 - 8036170: bfb8 it lt - 8036172: 4613 movlt r3, r2 - 8036174: b21a sxth r2, r3 - 8036176: 68fb ldr r3, [r7, #12] - 8036178: 801a strh r2, [r3, #0] + 80360d0: 68fb ldr r3, [r7, #12] + 80360d2: f9b3 3000 ldrsh.w r3, [r3] + 80360d6: f9b7 2014 ldrsh.w r2, [r7, #20] + 80360da: 4293 cmp r3, r2 + 80360dc: bfb8 it lt + 80360de: 4613 movlt r3, r2 + 80360e0: b21a sxth r2, r3 + 80360e2: 68fb ldr r3, [r7, #12] + 80360e4: 801a strh r2, [r3, #0] line_start = new_line_start; - 803617a: 69bb ldr r3, [r7, #24] - 803617c: 61fb str r3, [r7, #28] + 80360e6: 69bb ldr r3, [r7, #24] + 80360e8: 61fb str r3, [r7, #28] while(text[line_start] != '\0') { - 803617e: 68ba ldr r2, [r7, #8] - 8036180: 69fb ldr r3, [r7, #28] - 8036182: 4413 add r3, r2 - 8036184: 781b ldrb r3, [r3, #0] - 8036186: 2b00 cmp r3, #0 - 8036188: d1a7 bne.n 80360da + 80360ea: 68ba ldr r2, [r7, #8] + 80360ec: 69fb ldr r3, [r7, #28] + 80360ee: 4413 add r3, r2 + 80360f0: 781b ldrb r3, [r3, #0] + 80360f2: 2b00 cmp r3, #0 + 80360f4: d1a7 bne.n 8036046 } /*Make the text one line taller if the last character is '\n' or '\r'*/ if((line_start != 0) && (text[line_start - 1] == '\n' || text[line_start - 1] == '\r')) { - 803618a: 69fb ldr r3, [r7, #28] - 803618c: 2b00 cmp r3, #0 - 803618e: d01a beq.n 80361c6 - 8036190: 69fb ldr r3, [r7, #28] - 8036192: 3b01 subs r3, #1 - 8036194: 68ba ldr r2, [r7, #8] - 8036196: 4413 add r3, r2 - 8036198: 781b ldrb r3, [r3, #0] - 803619a: 2b0a cmp r3, #10 - 803619c: d006 beq.n 80361ac - 803619e: 69fb ldr r3, [r7, #28] - 80361a0: 3b01 subs r3, #1 - 80361a2: 68ba ldr r2, [r7, #8] - 80361a4: 4413 add r3, r2 - 80361a6: 781b ldrb r3, [r3, #0] - 80361a8: 2b0d cmp r3, #13 - 80361aa: d10c bne.n 80361c6 + 80360f6: 69fb ldr r3, [r7, #28] + 80360f8: 2b00 cmp r3, #0 + 80360fa: d01a beq.n 8036132 + 80360fc: 69fb ldr r3, [r7, #28] + 80360fe: 3b01 subs r3, #1 + 8036100: 68ba ldr r2, [r7, #8] + 8036102: 4413 add r3, r2 + 8036104: 781b ldrb r3, [r3, #0] + 8036106: 2b0a cmp r3, #10 + 8036108: d006 beq.n 8036118 + 803610a: 69fb ldr r3, [r7, #28] + 803610c: 3b01 subs r3, #1 + 803610e: 68ba ldr r2, [r7, #8] + 8036110: 4413 add r3, r2 + 8036112: 781b ldrb r3, [r3, #0] + 8036114: 2b0d cmp r3, #13 + 8036116: d10c bne.n 8036132 size_res->y += letter_height + line_space; - 80361ac: 68fb ldr r3, [r7, #12] - 80361ae: f9b3 3002 ldrsh.w r3, [r3, #2] - 80361b2: b29a uxth r2, r3 - 80361b4: 8d39 ldrh r1, [r7, #40] ; 0x28 - 80361b6: 8afb ldrh r3, [r7, #22] - 80361b8: 440b add r3, r1 - 80361ba: b29b uxth r3, r3 - 80361bc: 4413 add r3, r2 - 80361be: b29b uxth r3, r3 - 80361c0: b21a sxth r2, r3 - 80361c2: 68fb ldr r3, [r7, #12] - 80361c4: 805a strh r2, [r3, #2] + 8036118: 68fb ldr r3, [r7, #12] + 803611a: f9b3 3002 ldrsh.w r3, [r3, #2] + 803611e: b29a uxth r2, r3 + 8036120: 8d39 ldrh r1, [r7, #40] ; 0x28 + 8036122: 8afb ldrh r3, [r7, #22] + 8036124: 440b add r3, r1 + 8036126: b29b uxth r3, r3 + 8036128: 4413 add r3, r2 + 803612a: b29b uxth r3, r3 + 803612c: b21a sxth r2, r3 + 803612e: 68fb ldr r3, [r7, #12] + 8036130: 805a strh r2, [r3, #2] } /*Correction with the last line space or set the height manually if the text is empty*/ if(size_res->y == 0) - 80361c6: 68fb ldr r3, [r7, #12] - 80361c8: f9b3 3002 ldrsh.w r3, [r3, #2] - 80361cc: 2b00 cmp r3, #0 - 80361ce: d104 bne.n 80361da + 8036132: 68fb ldr r3, [r7, #12] + 8036134: f9b3 3002 ldrsh.w r3, [r3, #2] + 8036138: 2b00 cmp r3, #0 + 803613a: d104 bne.n 8036146 size_res->y = letter_height; - 80361d0: f9b7 2016 ldrsh.w r2, [r7, #22] - 80361d4: 68fb ldr r3, [r7, #12] - 80361d6: 805a strh r2, [r3, #2] - 80361d8: e00f b.n 80361fa + 803613c: f9b7 2016 ldrsh.w r2, [r7, #22] + 8036140: 68fb ldr r3, [r7, #12] + 8036142: 805a strh r2, [r3, #2] + 8036144: e00f b.n 8036166 else size_res->y -= line_space; - 80361da: 68fb ldr r3, [r7, #12] - 80361dc: f9b3 3002 ldrsh.w r3, [r3, #2] - 80361e0: b29a uxth r2, r3 - 80361e2: 8d3b ldrh r3, [r7, #40] ; 0x28 - 80361e4: 1ad3 subs r3, r2, r3 - 80361e6: b29b uxth r3, r3 - 80361e8: b21a sxth r2, r3 - 80361ea: 68fb ldr r3, [r7, #12] - 80361ec: 805a strh r2, [r3, #2] - 80361ee: e004 b.n 80361fa + 8036146: 68fb ldr r3, [r7, #12] + 8036148: f9b3 3002 ldrsh.w r3, [r3, #2] + 803614c: b29a uxth r2, r3 + 803614e: 8d3b ldrh r3, [r7, #40] ; 0x28 + 8036150: 1ad3 subs r3, r2, r3 + 8036152: b29b uxth r3, r3 + 8036154: b21a sxth r2, r3 + 8036156: 68fb ldr r3, [r7, #12] + 8036158: 805a strh r2, [r3, #2] + 803615a: e004 b.n 8036166 if(text == NULL) return; - 80361f0: bf00 nop - 80361f2: e002 b.n 80361fa + 803615c: bf00 nop + 803615e: e002 b.n 8036166 if(font == NULL) return; - 80361f4: bf00 nop - 80361f6: e000 b.n 80361fa + 8036160: bf00 nop + 8036162: e000 b.n 8036166 return; - 80361f8: bf00 nop + 8036164: bf00 nop } - 80361fa: 3720 adds r7, #32 - 80361fc: 46bd mov sp, r7 - 80361fe: bd80 pop {r7, pc} + 8036166: 3720 adds r7, #32 + 8036168: 46bd mov sp, r7 + 803616a: bd80 pop {r7, pc} -08036200 : +0803616c : * @return the index of the first char of the next word (in byte index not letter index. With UTF-8 they are different) */ static uint32_t lv_txt_get_next_word(const char * txt, const lv_font_t * font, lv_coord_t letter_space, lv_coord_t max_width, lv_text_flag_t flag, uint32_t * word_w_ptr, lv_text_cmd_state_t * cmd_state, bool force) { - 8036200: b580 push {r7, lr} - 8036202: b08e sub sp, #56 ; 0x38 - 8036204: af00 add r7, sp, #0 - 8036206: 60f8 str r0, [r7, #12] - 8036208: 60b9 str r1, [r7, #8] - 803620a: 4611 mov r1, r2 - 803620c: 461a mov r2, r3 - 803620e: 460b mov r3, r1 - 8036210: 80fb strh r3, [r7, #6] - 8036212: 4613 mov r3, r2 - 8036214: 80bb strh r3, [r7, #4] + 803616c: b580 push {r7, lr} + 803616e: b08e sub sp, #56 ; 0x38 + 8036170: af00 add r7, sp, #0 + 8036172: 60f8 str r0, [r7, #12] + 8036174: 60b9 str r1, [r7, #8] + 8036176: 4611 mov r1, r2 + 8036178: 461a mov r2, r3 + 803617a: 460b mov r3, r1 + 803617c: 80fb strh r3, [r7, #6] + 803617e: 4613 mov r3, r2 + 8036180: 80bb strh r3, [r7, #4] if(txt == NULL || txt[0] == '\0') return 0; - 8036216: 68fb ldr r3, [r7, #12] - 8036218: 2b00 cmp r3, #0 - 803621a: d003 beq.n 8036224 - 803621c: 68fb ldr r3, [r7, #12] - 803621e: 781b ldrb r3, [r3, #0] - 8036220: 2b00 cmp r3, #0 - 8036222: d101 bne.n 8036228 - 8036224: 2300 movs r3, #0 - 8036226: e0c4 b.n 80363b2 + 8036182: 68fb ldr r3, [r7, #12] + 8036184: 2b00 cmp r3, #0 + 8036186: d003 beq.n 8036190 + 8036188: 68fb ldr r3, [r7, #12] + 803618a: 781b ldrb r3, [r3, #0] + 803618c: 2b00 cmp r3, #0 + 803618e: d101 bne.n 8036194 + 8036190: 2300 movs r3, #0 + 8036192: e0c4 b.n 803631e if(font == NULL) return 0; - 8036228: 68bb ldr r3, [r7, #8] - 803622a: 2b00 cmp r3, #0 - 803622c: d101 bne.n 8036232 - 803622e: 2300 movs r3, #0 - 8036230: e0bf b.n 80363b2 + 8036194: 68bb ldr r3, [r7, #8] + 8036196: 2b00 cmp r3, #0 + 8036198: d101 bne.n 803619e + 803619a: 2300 movs r3, #0 + 803619c: e0bf b.n 803631e if(flag & LV_TEXT_FLAG_EXPAND) max_width = LV_COORD_MAX; - 8036232: f897 3040 ldrb.w r3, [r7, #64] ; 0x40 - 8036236: f003 0302 and.w r3, r3, #2 - 803623a: 2b00 cmp r3, #0 - 803623c: d002 beq.n 8036244 - 803623e: f641 73ff movw r3, #8191 ; 0x1fff - 8036242: 80bb strh r3, [r7, #4] + 803619e: f897 3040 ldrb.w r3, [r7, #64] ; 0x40 + 80361a2: f003 0302 and.w r3, r3, #2 + 80361a6: 2b00 cmp r3, #0 + 80361a8: d002 beq.n 80361b0 + 80361aa: f641 73ff movw r3, #8191 ; 0x1fff + 80361ae: 80bb strh r3, [r7, #4] uint32_t i = 0, i_next = 0, i_next_next = 0; /*Iterating index into txt*/ - 8036244: 2300 movs r3, #0 - 8036246: 637b str r3, [r7, #52] ; 0x34 - 8036248: 2300 movs r3, #0 - 803624a: 617b str r3, [r7, #20] - 803624c: 2300 movs r3, #0 - 803624e: 613b str r3, [r7, #16] + 80361b0: 2300 movs r3, #0 + 80361b2: 637b str r3, [r7, #52] ; 0x34 + 80361b4: 2300 movs r3, #0 + 80361b6: 617b str r3, [r7, #20] + 80361b8: 2300 movs r3, #0 + 80361ba: 613b str r3, [r7, #16] uint32_t letter = 0; /*Letter at i*/ - 8036250: 2300 movs r3, #0 - 8036252: 633b str r3, [r7, #48] ; 0x30 + 80361bc: 2300 movs r3, #0 + 80361be: 633b str r3, [r7, #48] ; 0x30 uint32_t letter_next = 0; /*Letter at i_next*/ - 8036254: 2300 movs r3, #0 - 8036256: 62fb str r3, [r7, #44] ; 0x2c + 80361c0: 2300 movs r3, #0 + 80361c2: 62fb str r3, [r7, #44] ; 0x2c lv_coord_t letter_w; lv_coord_t cur_w = 0; /*Pixel Width of transversed string*/ - 8036258: 2300 movs r3, #0 - 803625a: 857b strh r3, [r7, #42] ; 0x2a + 80361c4: 2300 movs r3, #0 + 80361c6: 857b strh r3, [r7, #42] ; 0x2a uint32_t word_len = 0; /*Number of characters in the transversed word*/ - 803625c: 2300 movs r3, #0 - 803625e: 627b str r3, [r7, #36] ; 0x24 + 80361c8: 2300 movs r3, #0 + 80361ca: 627b str r3, [r7, #36] ; 0x24 uint32_t break_index = NO_BREAK_FOUND; /*only used for "long" words*/ - 8036260: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 8036264: 623b str r3, [r7, #32] + 80361cc: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 80361d0: 623b str r3, [r7, #32] uint32_t break_letter_count = 0; /*Number of characters up to the long word break point*/ - 8036266: 2300 movs r3, #0 - 8036268: 61fb str r3, [r7, #28] + 80361d2: 2300 movs r3, #0 + 80361d4: 61fb str r3, [r7, #28] letter = _lv_txt_encoded_next(txt, &i_next); - 803626a: 4b54 ldr r3, [pc, #336] ; (80363bc ) - 803626c: 681b ldr r3, [r3, #0] - 803626e: f107 0214 add.w r2, r7, #20 - 8036272: 4611 mov r1, r2 - 8036274: 68f8 ldr r0, [r7, #12] - 8036276: 4798 blx r3 - 8036278: 6338 str r0, [r7, #48] ; 0x30 + 80361d6: 4b54 ldr r3, [pc, #336] ; (8036328 ) + 80361d8: 681b ldr r3, [r3, #0] + 80361da: f107 0214 add.w r2, r7, #20 + 80361de: 4611 mov r1, r2 + 80361e0: 68f8 ldr r0, [r7, #12] + 80361e2: 4798 blx r3 + 80361e4: 6338 str r0, [r7, #48] ; 0x30 i_next_next = i_next; - 803627a: 697b ldr r3, [r7, #20] - 803627c: 613b str r3, [r7, #16] + 80361e6: 697b ldr r3, [r7, #20] + 80361e8: 613b str r3, [r7, #16] /*Obtain the full word, regardless if it fits or not in max_width*/ while(txt[i] != '\0') { - 803627e: e074 b.n 803636a + 80361ea: e074 b.n 80362d6 letter_next = _lv_txt_encoded_next(txt, &i_next_next); - 8036280: 4b4e ldr r3, [pc, #312] ; (80363bc ) - 8036282: 681b ldr r3, [r3, #0] - 8036284: f107 0210 add.w r2, r7, #16 - 8036288: 4611 mov r1, r2 - 803628a: 68f8 ldr r0, [r7, #12] - 803628c: 4798 blx r3 - 803628e: 62f8 str r0, [r7, #44] ; 0x2c + 80361ec: 4b4e ldr r3, [pc, #312] ; (8036328 ) + 80361ee: 681b ldr r3, [r3, #0] + 80361f0: f107 0210 add.w r2, r7, #16 + 80361f4: 4611 mov r1, r2 + 80361f6: 68f8 ldr r0, [r7, #12] + 80361f8: 4798 blx r3 + 80361fa: 62f8 str r0, [r7, #44] ; 0x2c word_len++; - 8036290: 6a7b ldr r3, [r7, #36] ; 0x24 - 8036292: 3301 adds r3, #1 - 8036294: 627b str r3, [r7, #36] ; 0x24 + 80361fc: 6a7b ldr r3, [r7, #36] ; 0x24 + 80361fe: 3301 adds r3, #1 + 8036200: 627b str r3, [r7, #36] ; 0x24 /*Handle the recolor command*/ if((flag & LV_TEXT_FLAG_RECOLOR) != 0) { - 8036296: f897 3040 ldrb.w r3, [r7, #64] ; 0x40 - 803629a: f003 0301 and.w r3, r3, #1 - 803629e: 2b00 cmp r3, #0 - 80362a0: d00d beq.n 80362be + 8036202: f897 3040 ldrb.w r3, [r7, #64] ; 0x40 + 8036206: f003 0301 and.w r3, r3, #1 + 803620a: 2b00 cmp r3, #0 + 803620c: d00d beq.n 803622a if(_lv_txt_is_cmd(cmd_state, letter) != false) { - 80362a2: 6b39 ldr r1, [r7, #48] ; 0x30 - 80362a4: 6cb8 ldr r0, [r7, #72] ; 0x48 - 80362a6: f000 f9cd bl 8036644 <_lv_txt_is_cmd> - 80362aa: 4603 mov r3, r0 - 80362ac: 2b00 cmp r3, #0 - 80362ae: d006 beq.n 80362be + 803620e: 6b39 ldr r1, [r7, #48] ; 0x30 + 8036210: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8036212: f000 f9cd bl 80365b0 <_lv_txt_is_cmd> + 8036216: 4603 mov r3, r0 + 8036218: 2b00 cmp r3, #0 + 803621a: d006 beq.n 803622a i = i_next; - 80362b0: 697b ldr r3, [r7, #20] - 80362b2: 637b str r3, [r7, #52] ; 0x34 + 803621c: 697b ldr r3, [r7, #20] + 803621e: 637b str r3, [r7, #52] ; 0x34 i_next = i_next_next; - 80362b4: 693b ldr r3, [r7, #16] - 80362b6: 617b str r3, [r7, #20] + 8036220: 693b ldr r3, [r7, #16] + 8036222: 617b str r3, [r7, #20] letter = letter_next; - 80362b8: 6afb ldr r3, [r7, #44] ; 0x2c - 80362ba: 633b str r3, [r7, #48] ; 0x30 + 8036224: 6afb ldr r3, [r7, #44] ; 0x2c + 8036226: 633b str r3, [r7, #48] ; 0x30 continue; /*Skip the letter if it is part of a command*/ - 80362bc: e055 b.n 803636a + 8036228: e055 b.n 80362d6 } } letter_w = lv_font_get_glyph_width(font, letter, letter_next); - 80362be: 6afa ldr r2, [r7, #44] ; 0x2c - 80362c0: 6b39 ldr r1, [r7, #48] ; 0x30 - 80362c2: 68b8 ldr r0, [r7, #8] - 80362c4: f7f9 fc2a bl 802fb1c - 80362c8: 4603 mov r3, r0 - 80362ca: 837b strh r3, [r7, #26] + 803622a: 6afa ldr r2, [r7, #44] ; 0x2c + 803622c: 6b39 ldr r1, [r7, #48] ; 0x30 + 803622e: 68b8 ldr r0, [r7, #8] + 8036230: f7f9 fc2a bl 802fa88 + 8036234: 4603 mov r3, r0 + 8036236: 837b strh r3, [r7, #26] cur_w += letter_w; - 80362cc: 8d7a ldrh r2, [r7, #42] ; 0x2a - 80362ce: 8b7b ldrh r3, [r7, #26] - 80362d0: 4413 add r3, r2 - 80362d2: b29b uxth r3, r3 - 80362d4: 857b strh r3, [r7, #42] ; 0x2a + 8036238: 8d7a ldrh r2, [r7, #42] ; 0x2a + 803623a: 8b7b ldrh r3, [r7, #26] + 803623c: 4413 add r3, r2 + 803623e: b29b uxth r3, r3 + 8036240: 857b strh r3, [r7, #42] ; 0x2a if(letter_w > 0) { - 80362d6: f9b7 301a ldrsh.w r3, [r7, #26] - 80362da: 2b00 cmp r3, #0 - 80362dc: dd04 ble.n 80362e8 + 8036242: f9b7 301a ldrsh.w r3, [r7, #26] + 8036246: 2b00 cmp r3, #0 + 8036248: dd04 ble.n 8036254 cur_w += letter_space; - 80362de: 8d7a ldrh r2, [r7, #42] ; 0x2a - 80362e0: 88fb ldrh r3, [r7, #6] - 80362e2: 4413 add r3, r2 - 80362e4: b29b uxth r3, r3 - 80362e6: 857b strh r3, [r7, #42] ; 0x2a + 803624a: 8d7a ldrh r2, [r7, #42] ; 0x2a + 803624c: 88fb ldrh r3, [r7, #6] + 803624e: 4413 add r3, r2 + 8036250: b29b uxth r3, r3 + 8036252: 857b strh r3, [r7, #42] ; 0x2a } /*Test if this character fits within max_width*/ if(break_index == NO_BREAK_FOUND && (cur_w - letter_space) > max_width) { - 80362e8: 6a3b ldr r3, [r7, #32] - 80362ea: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 80362ee: d10d bne.n 803630c - 80362f0: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a - 80362f4: f9b7 3006 ldrsh.w r3, [r7, #6] - 80362f8: 1ad2 subs r2, r2, r3 - 80362fa: f9b7 3004 ldrsh.w r3, [r7, #4] - 80362fe: 429a cmp r2, r3 - 8036300: dd04 ble.n 803630c + 8036254: 6a3b ldr r3, [r7, #32] + 8036256: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 803625a: d10d bne.n 8036278 + 803625c: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a + 8036260: f9b7 3006 ldrsh.w r3, [r7, #6] + 8036264: 1ad2 subs r2, r2, r3 + 8036266: f9b7 3004 ldrsh.w r3, [r7, #4] + 803626a: 429a cmp r2, r3 + 803626c: dd04 ble.n 8036278 break_index = i; - 8036302: 6b7b ldr r3, [r7, #52] ; 0x34 - 8036304: 623b str r3, [r7, #32] + 803626e: 6b7b ldr r3, [r7, #52] ; 0x34 + 8036270: 623b str r3, [r7, #32] break_letter_count = word_len - 1; - 8036306: 6a7b ldr r3, [r7, #36] ; 0x24 - 8036308: 3b01 subs r3, #1 - 803630a: 61fb str r3, [r7, #28] + 8036272: 6a7b ldr r3, [r7, #36] ; 0x24 + 8036274: 3b01 subs r3, #1 + 8036276: 61fb str r3, [r7, #28] /*break_index is now pointing at the character that doesn't fit*/ } /*Check for new line chars and breakchars*/ if(letter == '\n' || letter == '\r' || _lv_txt_is_break_char(letter)) { - 803630c: 6b3b ldr r3, [r7, #48] ; 0x30 - 803630e: 2b0a cmp r3, #10 - 8036310: d008 beq.n 8036324 - 8036312: 6b3b ldr r3, [r7, #48] ; 0x30 - 8036314: 2b0d cmp r3, #13 - 8036316: d005 beq.n 8036324 - 8036318: 6b38 ldr r0, [r7, #48] ; 0x30 - 803631a: f7ff fe67 bl 8035fec <_lv_txt_is_break_char> - 803631e: 4603 mov r3, r0 - 8036320: 2b00 cmp r3, #0 - 8036322: d011 beq.n 8036348 + 8036278: 6b3b ldr r3, [r7, #48] ; 0x30 + 803627a: 2b0a cmp r3, #10 + 803627c: d008 beq.n 8036290 + 803627e: 6b3b ldr r3, [r7, #48] ; 0x30 + 8036280: 2b0d cmp r3, #13 + 8036282: d005 beq.n 8036290 + 8036284: 6b38 ldr r0, [r7, #48] ; 0x30 + 8036286: f7ff fe67 bl 8035f58 <_lv_txt_is_break_char> + 803628a: 4603 mov r3, r0 + 803628c: 2b00 cmp r3, #0 + 803628e: d011 beq.n 80362b4 /*Update the output width on the first character if it fits. *Must do this here in case first letter is a break character.*/ if(i == 0 && break_index == NO_BREAK_FOUND && word_w_ptr != NULL) *word_w_ptr = cur_w; - 8036324: 6b7b ldr r3, [r7, #52] ; 0x34 - 8036326: 2b00 cmp r3, #0 - 8036328: d10a bne.n 8036340 - 803632a: 6a3b ldr r3, [r7, #32] - 803632c: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 8036330: d106 bne.n 8036340 - 8036332: 6c7b ldr r3, [r7, #68] ; 0x44 - 8036334: 2b00 cmp r3, #0 - 8036336: d003 beq.n 8036340 - 8036338: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a - 803633c: 6c7b ldr r3, [r7, #68] ; 0x44 - 803633e: 601a str r2, [r3, #0] + 8036290: 6b7b ldr r3, [r7, #52] ; 0x34 + 8036292: 2b00 cmp r3, #0 + 8036294: d10a bne.n 80362ac + 8036296: 6a3b ldr r3, [r7, #32] + 8036298: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 803629c: d106 bne.n 80362ac + 803629e: 6c7b ldr r3, [r7, #68] ; 0x44 + 80362a0: 2b00 cmp r3, #0 + 80362a2: d003 beq.n 80362ac + 80362a4: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a + 80362a8: 6c7b ldr r3, [r7, #68] ; 0x44 + 80362aa: 601a str r2, [r3, #0] word_len--; - 8036340: 6a7b ldr r3, [r7, #36] ; 0x24 - 8036342: 3b01 subs r3, #1 - 8036344: 627b str r3, [r7, #36] ; 0x24 + 80362ac: 6a7b ldr r3, [r7, #36] ; 0x24 + 80362ae: 3b01 subs r3, #1 + 80362b0: 627b str r3, [r7, #36] ; 0x24 break; - 8036346: e016 b.n 8036376 + 80362b2: e016 b.n 80362e2 } /*Update the output width*/ if(word_w_ptr != NULL && break_index == NO_BREAK_FOUND) *word_w_ptr = cur_w; - 8036348: 6c7b ldr r3, [r7, #68] ; 0x44 - 803634a: 2b00 cmp r3, #0 - 803634c: d007 beq.n 803635e - 803634e: 6a3b ldr r3, [r7, #32] - 8036350: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 8036354: d103 bne.n 803635e - 8036356: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a - 803635a: 6c7b ldr r3, [r7, #68] ; 0x44 - 803635c: 601a str r2, [r3, #0] + 80362b4: 6c7b ldr r3, [r7, #68] ; 0x44 + 80362b6: 2b00 cmp r3, #0 + 80362b8: d007 beq.n 80362ca + 80362ba: 6a3b ldr r3, [r7, #32] + 80362bc: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 80362c0: d103 bne.n 80362ca + 80362c2: f9b7 202a ldrsh.w r2, [r7, #42] ; 0x2a + 80362c6: 6c7b ldr r3, [r7, #68] ; 0x44 + 80362c8: 601a str r2, [r3, #0] i = i_next; - 803635e: 697b ldr r3, [r7, #20] - 8036360: 637b str r3, [r7, #52] ; 0x34 + 80362ca: 697b ldr r3, [r7, #20] + 80362cc: 637b str r3, [r7, #52] ; 0x34 i_next = i_next_next; - 8036362: 693b ldr r3, [r7, #16] - 8036364: 617b str r3, [r7, #20] + 80362ce: 693b ldr r3, [r7, #16] + 80362d0: 617b str r3, [r7, #20] letter = letter_next; - 8036366: 6afb ldr r3, [r7, #44] ; 0x2c - 8036368: 633b str r3, [r7, #48] ; 0x30 + 80362d2: 6afb ldr r3, [r7, #44] ; 0x2c + 80362d4: 633b str r3, [r7, #48] ; 0x30 while(txt[i] != '\0') { - 803636a: 68fa ldr r2, [r7, #12] - 803636c: 6b7b ldr r3, [r7, #52] ; 0x34 - 803636e: 4413 add r3, r2 - 8036370: 781b ldrb r3, [r3, #0] - 8036372: 2b00 cmp r3, #0 - 8036374: d184 bne.n 8036280 + 80362d6: 68fa ldr r2, [r7, #12] + 80362d8: 6b7b ldr r3, [r7, #52] ; 0x34 + 80362da: 4413 add r3, r2 + 80362dc: 781b ldrb r3, [r3, #0] + 80362de: 2b00 cmp r3, #0 + 80362e0: d184 bne.n 80361ec } /*Entire Word fits in the provided space*/ if(break_index == NO_BREAK_FOUND) { - 8036376: 6a3b ldr r3, [r7, #32] - 8036378: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 803637c: d10c bne.n 8036398 + 80362e2: 6a3b ldr r3, [r7, #32] + 80362e4: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 80362e8: d10c bne.n 8036304 if(word_len == 0 || (letter == '\r' && letter_next == '\n')) i = i_next; - 803637e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8036380: 2b00 cmp r3, #0 - 8036382: d005 beq.n 8036390 - 8036384: 6b3b ldr r3, [r7, #48] ; 0x30 - 8036386: 2b0d cmp r3, #13 - 8036388: d104 bne.n 8036394 - 803638a: 6afb ldr r3, [r7, #44] ; 0x2c - 803638c: 2b0a cmp r3, #10 - 803638e: d101 bne.n 8036394 - 8036390: 697b ldr r3, [r7, #20] - 8036392: 637b str r3, [r7, #52] ; 0x34 + 80362ea: 6a7b ldr r3, [r7, #36] ; 0x24 + 80362ec: 2b00 cmp r3, #0 + 80362ee: d005 beq.n 80362fc + 80362f0: 6b3b ldr r3, [r7, #48] ; 0x30 + 80362f2: 2b0d cmp r3, #13 + 80362f4: d104 bne.n 8036300 + 80362f6: 6afb ldr r3, [r7, #44] ; 0x2c + 80362f8: 2b0a cmp r3, #10 + 80362fa: d101 bne.n 8036300 + 80362fc: 697b ldr r3, [r7, #20] + 80362fe: 637b str r3, [r7, #52] ; 0x34 return i; - 8036394: 6b7b ldr r3, [r7, #52] ; 0x34 - 8036396: e00c b.n 80363b2 + 8036300: 6b7b ldr r3, [r7, #52] ; 0x34 + 8036302: e00c b.n 803631e // However, in current usage, this doesn't impact anything. } } return i; #else if(force) return break_index; - 8036398: f897 304c ldrb.w r3, [r7, #76] ; 0x4c - 803639c: 2b00 cmp r3, #0 - 803639e: d001 beq.n 80363a4 - 80363a0: 6a3b ldr r3, [r7, #32] - 80363a2: e006 b.n 80363b2 + 8036304: f897 304c ldrb.w r3, [r7, #76] ; 0x4c + 8036308: 2b00 cmp r3, #0 + 803630a: d001 beq.n 8036310 + 803630c: 6a3b ldr r3, [r7, #32] + 803630e: e006 b.n 803631e if(word_w_ptr != NULL) *word_w_ptr = 0; /*Return no word*/ - 80363a4: 6c7b ldr r3, [r7, #68] ; 0x44 - 80363a6: 2b00 cmp r3, #0 - 80363a8: d002 beq.n 80363b0 - 80363aa: 6c7b ldr r3, [r7, #68] ; 0x44 - 80363ac: 2200 movs r2, #0 - 80363ae: 601a str r2, [r3, #0] + 8036310: 6c7b ldr r3, [r7, #68] ; 0x44 + 8036312: 2b00 cmp r3, #0 + 8036314: d002 beq.n 803631c + 8036316: 6c7b ldr r3, [r7, #68] ; 0x44 + 8036318: 2200 movs r2, #0 + 803631a: 601a str r2, [r3, #0] (void) break_letter_count; return 0; - 80363b0: 2300 movs r3, #0 + 803631c: 2300 movs r3, #0 #endif } - 80363b2: 4618 mov r0, r3 - 80363b4: 3738 adds r7, #56 ; 0x38 - 80363b6: 46bd mov sp, r7 - 80363b8: bd80 pop {r7, pc} - 80363ba: bf00 nop - 80363bc: 200000ec .word 0x200000ec + 803631e: 4618 mov r0, r3 + 8036320: 3738 adds r7, #56 ; 0x38 + 8036322: 46bd mov sp, r7 + 8036324: bd80 pop {r7, pc} + 8036326: bf00 nop + 8036328: 200000ec .word 0x200000ec -080363c0 <_lv_txt_get_next_line>: +0803632c <_lv_txt_get_next_line>: uint32_t _lv_txt_get_next_line(const char * txt, const lv_font_t * font, lv_coord_t letter_space, lv_coord_t max_width, lv_coord_t * used_width, lv_text_flag_t flag) { - 80363c0: b580 push {r7, lr} - 80363c2: b090 sub sp, #64 ; 0x40 - 80363c4: af04 add r7, sp, #16 - 80363c6: 60f8 str r0, [r7, #12] - 80363c8: 60b9 str r1, [r7, #8] - 80363ca: 4611 mov r1, r2 - 80363cc: 461a mov r2, r3 - 80363ce: 460b mov r3, r1 - 80363d0: 80fb strh r3, [r7, #6] - 80363d2: 4613 mov r3, r2 - 80363d4: 80bb strh r3, [r7, #4] + 803632c: b580 push {r7, lr} + 803632e: b090 sub sp, #64 ; 0x40 + 8036330: af04 add r7, sp, #16 + 8036332: 60f8 str r0, [r7, #12] + 8036334: 60b9 str r1, [r7, #8] + 8036336: 4611 mov r1, r2 + 8036338: 461a mov r2, r3 + 803633a: 460b mov r3, r1 + 803633c: 80fb strh r3, [r7, #6] + 803633e: 4613 mov r3, r2 + 8036340: 80bb strh r3, [r7, #4] if(used_width) *used_width = 0; - 80363d6: 6bbb ldr r3, [r7, #56] ; 0x38 - 80363d8: 2b00 cmp r3, #0 - 80363da: d002 beq.n 80363e2 <_lv_txt_get_next_line+0x22> - 80363dc: 6bbb ldr r3, [r7, #56] ; 0x38 - 80363de: 2200 movs r2, #0 - 80363e0: 801a strh r2, [r3, #0] + 8036342: 6bbb ldr r3, [r7, #56] ; 0x38 + 8036344: 2b00 cmp r3, #0 + 8036346: d002 beq.n 803634e <_lv_txt_get_next_line+0x22> + 8036348: 6bbb ldr r3, [r7, #56] ; 0x38 + 803634a: 2200 movs r2, #0 + 803634c: 801a strh r2, [r3, #0] if(txt == NULL) return 0; - 80363e2: 68fb ldr r3, [r7, #12] - 80363e4: 2b00 cmp r3, #0 - 80363e6: d101 bne.n 80363ec <_lv_txt_get_next_line+0x2c> - 80363e8: 2300 movs r3, #0 - 80363ea: e0c1 b.n 8036570 <_lv_txt_get_next_line+0x1b0> + 803634e: 68fb ldr r3, [r7, #12] + 8036350: 2b00 cmp r3, #0 + 8036352: d101 bne.n 8036358 <_lv_txt_get_next_line+0x2c> + 8036354: 2300 movs r3, #0 + 8036356: e0c1 b.n 80364dc <_lv_txt_get_next_line+0x1b0> if(txt[0] == '\0') return 0; - 80363ec: 68fb ldr r3, [r7, #12] - 80363ee: 781b ldrb r3, [r3, #0] - 80363f0: 2b00 cmp r3, #0 - 80363f2: d101 bne.n 80363f8 <_lv_txt_get_next_line+0x38> - 80363f4: 2300 movs r3, #0 - 80363f6: e0bb b.n 8036570 <_lv_txt_get_next_line+0x1b0> + 8036358: 68fb ldr r3, [r7, #12] + 803635a: 781b ldrb r3, [r3, #0] + 803635c: 2b00 cmp r3, #0 + 803635e: d101 bne.n 8036364 <_lv_txt_get_next_line+0x38> + 8036360: 2300 movs r3, #0 + 8036362: e0bb b.n 80364dc <_lv_txt_get_next_line+0x1b0> if(font == NULL) return 0; - 80363f8: 68bb ldr r3, [r7, #8] - 80363fa: 2b00 cmp r3, #0 - 80363fc: d101 bne.n 8036402 <_lv_txt_get_next_line+0x42> - 80363fe: 2300 movs r3, #0 - 8036400: e0b6 b.n 8036570 <_lv_txt_get_next_line+0x1b0> + 8036364: 68bb ldr r3, [r7, #8] + 8036366: 2b00 cmp r3, #0 + 8036368: d101 bne.n 803636e <_lv_txt_get_next_line+0x42> + 803636a: 2300 movs r3, #0 + 803636c: e0b6 b.n 80364dc <_lv_txt_get_next_line+0x1b0> lv_coord_t line_w = 0; - 8036402: 2300 movs r3, #0 - 8036404: 85fb strh r3, [r7, #46] ; 0x2e + 803636e: 2300 movs r3, #0 + 8036370: 85fb strh r3, [r7, #46] ; 0x2e /*If max_width doesn't mater simply find the new line character *without thinking about word wrapping*/ if((flag & LV_TEXT_FLAG_EXPAND) || (flag & LV_TEXT_FLAG_FIT)) { - 8036406: f897 303c ldrb.w r3, [r7, #60] ; 0x3c - 803640a: f003 0302 and.w r3, r3, #2 - 803640e: 2b00 cmp r3, #0 - 8036410: d105 bne.n 803641e <_lv_txt_get_next_line+0x5e> - 8036412: f897 303c ldrb.w r3, [r7, #60] ; 0x3c - 8036416: f003 0304 and.w r3, r3, #4 - 803641a: 2b00 cmp r3, #0 - 803641c: d029 beq.n 8036472 <_lv_txt_get_next_line+0xb2> + 8036372: f897 303c ldrb.w r3, [r7, #60] ; 0x3c + 8036376: f003 0302 and.w r3, r3, #2 + 803637a: 2b00 cmp r3, #0 + 803637c: d105 bne.n 803638a <_lv_txt_get_next_line+0x5e> + 803637e: f897 303c ldrb.w r3, [r7, #60] ; 0x3c + 8036382: f003 0304 and.w r3, r3, #4 + 8036386: 2b00 cmp r3, #0 + 8036388: d029 beq.n 80363de <_lv_txt_get_next_line+0xb2> uint32_t i; for(i = 0; txt[i] != '\n' && txt[i] != '\r' && txt[i] != '\0'; i++) { - 803641e: 2300 movs r3, #0 - 8036420: 62bb str r3, [r7, #40] ; 0x28 - 8036422: e002 b.n 803642a <_lv_txt_get_next_line+0x6a> - 8036424: 6abb ldr r3, [r7, #40] ; 0x28 - 8036426: 3301 adds r3, #1 - 8036428: 62bb str r3, [r7, #40] ; 0x28 - 803642a: 68fa ldr r2, [r7, #12] - 803642c: 6abb ldr r3, [r7, #40] ; 0x28 - 803642e: 4413 add r3, r2 - 8036430: 781b ldrb r3, [r3, #0] - 8036432: 2b0a cmp r3, #10 - 8036434: d00b beq.n 803644e <_lv_txt_get_next_line+0x8e> - 8036436: 68fa ldr r2, [r7, #12] - 8036438: 6abb ldr r3, [r7, #40] ; 0x28 - 803643a: 4413 add r3, r2 - 803643c: 781b ldrb r3, [r3, #0] - 803643e: 2b0d cmp r3, #13 - 8036440: d005 beq.n 803644e <_lv_txt_get_next_line+0x8e> - 8036442: 68fa ldr r2, [r7, #12] - 8036444: 6abb ldr r3, [r7, #40] ; 0x28 - 8036446: 4413 add r3, r2 - 8036448: 781b ldrb r3, [r3, #0] - 803644a: 2b00 cmp r3, #0 - 803644c: d1ea bne.n 8036424 <_lv_txt_get_next_line+0x64> + 803638a: 2300 movs r3, #0 + 803638c: 62bb str r3, [r7, #40] ; 0x28 + 803638e: e002 b.n 8036396 <_lv_txt_get_next_line+0x6a> + 8036390: 6abb ldr r3, [r7, #40] ; 0x28 + 8036392: 3301 adds r3, #1 + 8036394: 62bb str r3, [r7, #40] ; 0x28 + 8036396: 68fa ldr r2, [r7, #12] + 8036398: 6abb ldr r3, [r7, #40] ; 0x28 + 803639a: 4413 add r3, r2 + 803639c: 781b ldrb r3, [r3, #0] + 803639e: 2b0a cmp r3, #10 + 80363a0: d00b beq.n 80363ba <_lv_txt_get_next_line+0x8e> + 80363a2: 68fa ldr r2, [r7, #12] + 80363a4: 6abb ldr r3, [r7, #40] ; 0x28 + 80363a6: 4413 add r3, r2 + 80363a8: 781b ldrb r3, [r3, #0] + 80363aa: 2b0d cmp r3, #13 + 80363ac: d005 beq.n 80363ba <_lv_txt_get_next_line+0x8e> + 80363ae: 68fa ldr r2, [r7, #12] + 80363b0: 6abb ldr r3, [r7, #40] ; 0x28 + 80363b2: 4413 add r3, r2 + 80363b4: 781b ldrb r3, [r3, #0] + 80363b6: 2b00 cmp r3, #0 + 80363b8: d1ea bne.n 8036390 <_lv_txt_get_next_line+0x64> /*Just find the new line chars or string ends by incrementing `i`*/ } if(txt[i] != '\0') i++; /*To go beyond `\n`*/ - 803644e: 68fa ldr r2, [r7, #12] - 8036450: 6abb ldr r3, [r7, #40] ; 0x28 - 8036452: 4413 add r3, r2 - 8036454: 781b ldrb r3, [r3, #0] - 8036456: 2b00 cmp r3, #0 - 8036458: d002 beq.n 8036460 <_lv_txt_get_next_line+0xa0> - 803645a: 6abb ldr r3, [r7, #40] ; 0x28 - 803645c: 3301 adds r3, #1 - 803645e: 62bb str r3, [r7, #40] ; 0x28 + 80363ba: 68fa ldr r2, [r7, #12] + 80363bc: 6abb ldr r3, [r7, #40] ; 0x28 + 80363be: 4413 add r3, r2 + 80363c0: 781b ldrb r3, [r3, #0] + 80363c2: 2b00 cmp r3, #0 + 80363c4: d002 beq.n 80363cc <_lv_txt_get_next_line+0xa0> + 80363c6: 6abb ldr r3, [r7, #40] ; 0x28 + 80363c8: 3301 adds r3, #1 + 80363ca: 62bb str r3, [r7, #40] ; 0x28 if(used_width) *used_width = -1; - 8036460: 6bbb ldr r3, [r7, #56] ; 0x38 - 8036462: 2b00 cmp r3, #0 - 8036464: d003 beq.n 803646e <_lv_txt_get_next_line+0xae> - 8036466: 6bbb ldr r3, [r7, #56] ; 0x38 - 8036468: f64f 72ff movw r2, #65535 ; 0xffff - 803646c: 801a strh r2, [r3, #0] + 80363cc: 6bbb ldr r3, [r7, #56] ; 0x38 + 80363ce: 2b00 cmp r3, #0 + 80363d0: d003 beq.n 80363da <_lv_txt_get_next_line+0xae> + 80363d2: 6bbb ldr r3, [r7, #56] ; 0x38 + 80363d4: f64f 72ff movw r2, #65535 ; 0xffff + 80363d8: 801a strh r2, [r3, #0] return i; - 803646e: 6abb ldr r3, [r7, #40] ; 0x28 - 8036470: e07e b.n 8036570 <_lv_txt_get_next_line+0x1b0> + 80363da: 6abb ldr r3, [r7, #40] ; 0x28 + 80363dc: e07e b.n 80364dc <_lv_txt_get_next_line+0x1b0> } if(flag & LV_TEXT_FLAG_EXPAND) max_width = LV_COORD_MAX; - 8036472: f897 303c ldrb.w r3, [r7, #60] ; 0x3c - 8036476: f003 0302 and.w r3, r3, #2 - 803647a: 2b00 cmp r3, #0 - 803647c: d002 beq.n 8036484 <_lv_txt_get_next_line+0xc4> - 803647e: f641 73ff movw r3, #8191 ; 0x1fff - 8036482: 80bb strh r3, [r7, #4] + 80363de: f897 303c ldrb.w r3, [r7, #60] ; 0x3c + 80363e2: f003 0302 and.w r3, r3, #2 + 80363e6: 2b00 cmp r3, #0 + 80363e8: d002 beq.n 80363f0 <_lv_txt_get_next_line+0xc4> + 80363ea: f641 73ff movw r3, #8191 ; 0x1fff + 80363ee: 80bb strh r3, [r7, #4] lv_text_cmd_state_t cmd_state = LV_TEXT_CMD_STATE_WAIT; - 8036484: 2300 movs r3, #0 - 8036486: 77fb strb r3, [r7, #31] + 80363f0: 2300 movs r3, #0 + 80363f2: 77fb strb r3, [r7, #31] uint32_t i = 0; /*Iterating index into txt*/ - 8036488: 2300 movs r3, #0 - 803648a: 61bb str r3, [r7, #24] + 80363f4: 2300 movs r3, #0 + 80363f6: 61bb str r3, [r7, #24] while(txt[i] != '\0' && max_width > 0) { - 803648c: e048 b.n 8036520 <_lv_txt_get_next_line+0x160> + 80363f8: e048 b.n 803648c <_lv_txt_get_next_line+0x160> uint32_t word_w = 0; - 803648e: 2300 movs r3, #0 - 8036490: 617b str r3, [r7, #20] + 80363fa: 2300 movs r3, #0 + 80363fc: 617b str r3, [r7, #20] uint32_t advance = lv_txt_get_next_word(&txt[i], font, letter_space, max_width, flag, &word_w, &cmd_state, i == 0); - 8036492: 69bb ldr r3, [r7, #24] - 8036494: 68fa ldr r2, [r7, #12] - 8036496: 18d0 adds r0, r2, r3 - 8036498: 69bb ldr r3, [r7, #24] - 803649a: 2b00 cmp r3, #0 - 803649c: bf0c ite eq - 803649e: 2301 moveq r3, #1 - 80364a0: 2300 movne r3, #0 - 80364a2: b2db uxtb r3, r3 - 80364a4: f9b7 1004 ldrsh.w r1, [r7, #4] - 80364a8: f9b7 2006 ldrsh.w r2, [r7, #6] - 80364ac: 9303 str r3, [sp, #12] - 80364ae: f107 031f add.w r3, r7, #31 - 80364b2: 9302 str r3, [sp, #8] - 80364b4: f107 0314 add.w r3, r7, #20 - 80364b8: 9301 str r3, [sp, #4] - 80364ba: f897 303c ldrb.w r3, [r7, #60] ; 0x3c - 80364be: 9300 str r3, [sp, #0] - 80364c0: 460b mov r3, r1 - 80364c2: 68b9 ldr r1, [r7, #8] - 80364c4: f7ff fe9c bl 8036200 - 80364c8: 6278 str r0, [r7, #36] ; 0x24 + 80363fe: 69bb ldr r3, [r7, #24] + 8036400: 68fa ldr r2, [r7, #12] + 8036402: 18d0 adds r0, r2, r3 + 8036404: 69bb ldr r3, [r7, #24] + 8036406: 2b00 cmp r3, #0 + 8036408: bf0c ite eq + 803640a: 2301 moveq r3, #1 + 803640c: 2300 movne r3, #0 + 803640e: b2db uxtb r3, r3 + 8036410: f9b7 1004 ldrsh.w r1, [r7, #4] + 8036414: f9b7 2006 ldrsh.w r2, [r7, #6] + 8036418: 9303 str r3, [sp, #12] + 803641a: f107 031f add.w r3, r7, #31 + 803641e: 9302 str r3, [sp, #8] + 8036420: f107 0314 add.w r3, r7, #20 + 8036424: 9301 str r3, [sp, #4] + 8036426: f897 303c ldrb.w r3, [r7, #60] ; 0x3c + 803642a: 9300 str r3, [sp, #0] + 803642c: 460b mov r3, r1 + 803642e: 68b9 ldr r1, [r7, #8] + 8036430: f7ff fe9c bl 803616c + 8036434: 6278 str r0, [r7, #36] ; 0x24 max_width -= word_w; - 80364ca: 88ba ldrh r2, [r7, #4] - 80364cc: 697b ldr r3, [r7, #20] - 80364ce: b29b uxth r3, r3 - 80364d0: 1ad3 subs r3, r2, r3 - 80364d2: b29b uxth r3, r3 - 80364d4: 80bb strh r3, [r7, #4] + 8036436: 88ba ldrh r2, [r7, #4] + 8036438: 697b ldr r3, [r7, #20] + 803643a: b29b uxth r3, r3 + 803643c: 1ad3 subs r3, r2, r3 + 803643e: b29b uxth r3, r3 + 8036440: 80bb strh r3, [r7, #4] line_w += word_w; - 80364d6: 697b ldr r3, [r7, #20] - 80364d8: b29a uxth r2, r3 - 80364da: 8dfb ldrh r3, [r7, #46] ; 0x2e - 80364dc: 4413 add r3, r2 - 80364de: b29b uxth r3, r3 - 80364e0: 85fb strh r3, [r7, #46] ; 0x2e + 8036442: 697b ldr r3, [r7, #20] + 8036444: b29a uxth r2, r3 + 8036446: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8036448: 4413 add r3, r2 + 803644a: b29b uxth r3, r3 + 803644c: 85fb strh r3, [r7, #46] ; 0x2e if(advance == 0) { - 80364e2: 6a7b ldr r3, [r7, #36] ; 0x24 - 80364e4: 2b00 cmp r3, #0 - 80364e6: d026 beq.n 8036536 <_lv_txt_get_next_line+0x176> + 803644e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8036450: 2b00 cmp r3, #0 + 8036452: d026 beq.n 80364a2 <_lv_txt_get_next_line+0x176> break; } i += advance; - 80364e8: 69ba ldr r2, [r7, #24] - 80364ea: 6a7b ldr r3, [r7, #36] ; 0x24 - 80364ec: 4413 add r3, r2 - 80364ee: 61bb str r3, [r7, #24] + 8036454: 69ba ldr r2, [r7, #24] + 8036456: 6a7b ldr r3, [r7, #36] ; 0x24 + 8036458: 4413 add r3, r2 + 803645a: 61bb str r3, [r7, #24] if(txt[0] == '\n' || txt[0] == '\r') break; - 80364f0: 68fb ldr r3, [r7, #12] - 80364f2: 781b ldrb r3, [r3, #0] - 80364f4: 2b0a cmp r3, #10 - 80364f6: d01e beq.n 8036536 <_lv_txt_get_next_line+0x176> - 80364f8: 68fb ldr r3, [r7, #12] - 80364fa: 781b ldrb r3, [r3, #0] - 80364fc: 2b0d cmp r3, #13 - 80364fe: d01a beq.n 8036536 <_lv_txt_get_next_line+0x176> + 803645c: 68fb ldr r3, [r7, #12] + 803645e: 781b ldrb r3, [r3, #0] + 8036460: 2b0a cmp r3, #10 + 8036462: d01e beq.n 80364a2 <_lv_txt_get_next_line+0x176> + 8036464: 68fb ldr r3, [r7, #12] + 8036466: 781b ldrb r3, [r3, #0] + 8036468: 2b0d cmp r3, #13 + 803646a: d01a beq.n 80364a2 <_lv_txt_get_next_line+0x176> if(txt[i] == '\n' || txt[i] == '\r') { - 8036500: 69bb ldr r3, [r7, #24] - 8036502: 68fa ldr r2, [r7, #12] - 8036504: 4413 add r3, r2 - 8036506: 781b ldrb r3, [r3, #0] - 8036508: 2b0a cmp r3, #10 - 803650a: d005 beq.n 8036518 <_lv_txt_get_next_line+0x158> - 803650c: 69bb ldr r3, [r7, #24] - 803650e: 68fa ldr r2, [r7, #12] - 8036510: 4413 add r3, r2 - 8036512: 781b ldrb r3, [r3, #0] - 8036514: 2b0d cmp r3, #13 - 8036516: d103 bne.n 8036520 <_lv_txt_get_next_line+0x160> + 803646c: 69bb ldr r3, [r7, #24] + 803646e: 68fa ldr r2, [r7, #12] + 8036470: 4413 add r3, r2 + 8036472: 781b ldrb r3, [r3, #0] + 8036474: 2b0a cmp r3, #10 + 8036476: d005 beq.n 8036484 <_lv_txt_get_next_line+0x158> + 8036478: 69bb ldr r3, [r7, #24] + 803647a: 68fa ldr r2, [r7, #12] + 803647c: 4413 add r3, r2 + 803647e: 781b ldrb r3, [r3, #0] + 8036480: 2b0d cmp r3, #13 + 8036482: d103 bne.n 803648c <_lv_txt_get_next_line+0x160> i++; /*Include the following newline in the current line*/ - 8036518: 69bb ldr r3, [r7, #24] - 803651a: 3301 adds r3, #1 - 803651c: 61bb str r3, [r7, #24] + 8036484: 69bb ldr r3, [r7, #24] + 8036486: 3301 adds r3, #1 + 8036488: 61bb str r3, [r7, #24] break; - 803651e: e00b b.n 8036538 <_lv_txt_get_next_line+0x178> + 803648a: e00b b.n 80364a4 <_lv_txt_get_next_line+0x178> while(txt[i] != '\0' && max_width > 0) { - 8036520: 69bb ldr r3, [r7, #24] - 8036522: 68fa ldr r2, [r7, #12] - 8036524: 4413 add r3, r2 - 8036526: 781b ldrb r3, [r3, #0] - 8036528: 2b00 cmp r3, #0 - 803652a: d005 beq.n 8036538 <_lv_txt_get_next_line+0x178> - 803652c: f9b7 3004 ldrsh.w r3, [r7, #4] - 8036530: 2b00 cmp r3, #0 - 8036532: dcac bgt.n 803648e <_lv_txt_get_next_line+0xce> - 8036534: e000 b.n 8036538 <_lv_txt_get_next_line+0x178> + 803648c: 69bb ldr r3, [r7, #24] + 803648e: 68fa ldr r2, [r7, #12] + 8036490: 4413 add r3, r2 + 8036492: 781b ldrb r3, [r3, #0] + 8036494: 2b00 cmp r3, #0 + 8036496: d005 beq.n 80364a4 <_lv_txt_get_next_line+0x178> + 8036498: f9b7 3004 ldrsh.w r3, [r7, #4] + 803649c: 2b00 cmp r3, #0 + 803649e: dcac bgt.n 80363fa <_lv_txt_get_next_line+0xce> + 80364a0: e000 b.n 80364a4 <_lv_txt_get_next_line+0x178> break; - 8036536: bf00 nop + 80364a2: bf00 nop } } /*Always step at least one to avoid infinite loops*/ if(i == 0) { - 8036538: 69bb ldr r3, [r7, #24] - 803653a: 2b00 cmp r3, #0 - 803653c: d111 bne.n 8036562 <_lv_txt_get_next_line+0x1a2> + 80364a4: 69bb ldr r3, [r7, #24] + 80364a6: 2b00 cmp r3, #0 + 80364a8: d111 bne.n 80364ce <_lv_txt_get_next_line+0x1a2> uint32_t letter = _lv_txt_encoded_next(txt, &i); - 803653e: 4b0e ldr r3, [pc, #56] ; (8036578 <_lv_txt_get_next_line+0x1b8>) - 8036540: 681b ldr r3, [r3, #0] - 8036542: f107 0218 add.w r2, r7, #24 - 8036546: 4611 mov r1, r2 - 8036548: 68f8 ldr r0, [r7, #12] - 803654a: 4798 blx r3 - 803654c: 6238 str r0, [r7, #32] + 80364aa: 4b0e ldr r3, [pc, #56] ; (80364e4 <_lv_txt_get_next_line+0x1b8>) + 80364ac: 681b ldr r3, [r3, #0] + 80364ae: f107 0218 add.w r2, r7, #24 + 80364b2: 4611 mov r1, r2 + 80364b4: 68f8 ldr r0, [r7, #12] + 80364b6: 4798 blx r3 + 80364b8: 6238 str r0, [r7, #32] if(used_width != NULL) { - 803654e: 6bbb ldr r3, [r7, #56] ; 0x38 - 8036550: 2b00 cmp r3, #0 - 8036552: d006 beq.n 8036562 <_lv_txt_get_next_line+0x1a2> + 80364ba: 6bbb ldr r3, [r7, #56] ; 0x38 + 80364bc: 2b00 cmp r3, #0 + 80364be: d006 beq.n 80364ce <_lv_txt_get_next_line+0x1a2> line_w = lv_font_get_glyph_width(font, letter, '\0'); - 8036554: 2200 movs r2, #0 - 8036556: 6a39 ldr r1, [r7, #32] - 8036558: 68b8 ldr r0, [r7, #8] - 803655a: f7f9 fadf bl 802fb1c - 803655e: 4603 mov r3, r0 - 8036560: 85fb strh r3, [r7, #46] ; 0x2e + 80364c0: 2200 movs r2, #0 + 80364c2: 6a39 ldr r1, [r7, #32] + 80364c4: 68b8 ldr r0, [r7, #8] + 80364c6: f7f9 fadf bl 802fa88 + 80364ca: 4603 mov r3, r0 + 80364cc: 85fb strh r3, [r7, #46] ; 0x2e } } if(used_width != NULL) { - 8036562: 6bbb ldr r3, [r7, #56] ; 0x38 - 8036564: 2b00 cmp r3, #0 - 8036566: d002 beq.n 803656e <_lv_txt_get_next_line+0x1ae> + 80364ce: 6bbb ldr r3, [r7, #56] ; 0x38 + 80364d0: 2b00 cmp r3, #0 + 80364d2: d002 beq.n 80364da <_lv_txt_get_next_line+0x1ae> *used_width = line_w; - 8036568: 6bbb ldr r3, [r7, #56] ; 0x38 - 803656a: 8dfa ldrh r2, [r7, #46] ; 0x2e - 803656c: 801a strh r2, [r3, #0] + 80364d4: 6bbb ldr r3, [r7, #56] ; 0x38 + 80364d6: 8dfa ldrh r2, [r7, #46] ; 0x2e + 80364d8: 801a strh r2, [r3, #0] } return i; - 803656e: 69bb ldr r3, [r7, #24] + 80364da: 69bb ldr r3, [r7, #24] } - 8036570: 4618 mov r0, r3 - 8036572: 3730 adds r7, #48 ; 0x30 - 8036574: 46bd mov sp, r7 - 8036576: bd80 pop {r7, pc} - 8036578: 200000ec .word 0x200000ec + 80364dc: 4618 mov r0, r3 + 80364de: 3730 adds r7, #48 ; 0x30 + 80364e0: 46bd mov sp, r7 + 80364e2: bd80 pop {r7, pc} + 80364e4: 200000ec .word 0x200000ec -0803657c : +080364e8 : lv_coord_t lv_txt_get_width(const char * txt, uint32_t length, const lv_font_t * font, lv_coord_t letter_space, lv_text_flag_t flag) { - 803657c: b580 push {r7, lr} - 803657e: b08a sub sp, #40 ; 0x28 - 8036580: af00 add r7, sp, #0 - 8036582: 60f8 str r0, [r7, #12] - 8036584: 60b9 str r1, [r7, #8] - 8036586: 607a str r2, [r7, #4] - 8036588: 807b strh r3, [r7, #2] + 80364e8: b580 push {r7, lr} + 80364ea: b08a sub sp, #40 ; 0x28 + 80364ec: af00 add r7, sp, #0 + 80364ee: 60f8 str r0, [r7, #12] + 80364f0: 60b9 str r1, [r7, #8] + 80364f2: 607a str r2, [r7, #4] + 80364f4: 807b strh r3, [r7, #2] if(txt == NULL) return 0; - 803658a: 68fb ldr r3, [r7, #12] - 803658c: 2b00 cmp r3, #0 - 803658e: d101 bne.n 8036594 - 8036590: 2300 movs r3, #0 - 8036592: e053 b.n 803663c + 80364f6: 68fb ldr r3, [r7, #12] + 80364f8: 2b00 cmp r3, #0 + 80364fa: d101 bne.n 8036500 + 80364fc: 2300 movs r3, #0 + 80364fe: e053 b.n 80365a8 if(font == NULL) return 0; - 8036594: 687b ldr r3, [r7, #4] - 8036596: 2b00 cmp r3, #0 - 8036598: d101 bne.n 803659e - 803659a: 2300 movs r3, #0 - 803659c: e04e b.n 803663c + 8036500: 687b ldr r3, [r7, #4] + 8036502: 2b00 cmp r3, #0 + 8036504: d101 bne.n 803650a + 8036506: 2300 movs r3, #0 + 8036508: e04e b.n 80365a8 if(txt[0] == '\0') return 0; - 803659e: 68fb ldr r3, [r7, #12] - 80365a0: 781b ldrb r3, [r3, #0] - 80365a2: 2b00 cmp r3, #0 - 80365a4: d101 bne.n 80365aa - 80365a6: 2300 movs r3, #0 - 80365a8: e048 b.n 803663c + 803650a: 68fb ldr r3, [r7, #12] + 803650c: 781b ldrb r3, [r3, #0] + 803650e: 2b00 cmp r3, #0 + 8036510: d101 bne.n 8036516 + 8036512: 2300 movs r3, #0 + 8036514: e048 b.n 80365a8 uint32_t i = 0; - 80365aa: 2300 movs r3, #0 - 80365ac: 623b str r3, [r7, #32] + 8036516: 2300 movs r3, #0 + 8036518: 623b str r3, [r7, #32] lv_coord_t width = 0; - 80365ae: 2300 movs r3, #0 - 80365b0: 84fb strh r3, [r7, #38] ; 0x26 + 803651a: 2300 movs r3, #0 + 803651c: 84fb strh r3, [r7, #38] ; 0x26 lv_text_cmd_state_t cmd_state = LV_TEXT_CMD_STATE_WAIT; - 80365b2: 2300 movs r3, #0 - 80365b4: 77fb strb r3, [r7, #31] + 803651e: 2300 movs r3, #0 + 8036520: 77fb strb r3, [r7, #31] if(length != 0) { - 80365b6: 68bb ldr r3, [r7, #8] - 80365b8: 2b00 cmp r3, #0 - 80365ba: d03d beq.n 8036638 + 8036522: 68bb ldr r3, [r7, #8] + 8036524: 2b00 cmp r3, #0 + 8036526: d03d beq.n 80365a4 while(i < length) { - 80365bc: e02f b.n 803661e + 8036528: e02f b.n 803658a uint32_t letter; uint32_t letter_next; _lv_txt_encoded_letter_next_2(txt, &letter, &letter_next, &i); - 80365be: f107 0320 add.w r3, r7, #32 - 80365c2: f107 0214 add.w r2, r7, #20 - 80365c6: f107 0118 add.w r1, r7, #24 - 80365ca: 68f8 ldr r0, [r7, #12] - 80365cc: f000 f928 bl 8036820 <_lv_txt_encoded_letter_next_2> + 803652a: f107 0320 add.w r3, r7, #32 + 803652e: f107 0214 add.w r2, r7, #20 + 8036532: f107 0118 add.w r1, r7, #24 + 8036536: 68f8 ldr r0, [r7, #12] + 8036538: f000 f928 bl 803678c <_lv_txt_encoded_letter_next_2> if((flag & LV_TEXT_FLAG_RECOLOR) != 0) { - 80365d0: f897 3030 ldrb.w r3, [r7, #48] ; 0x30 - 80365d4: f003 0301 and.w r3, r3, #1 - 80365d8: 2b00 cmp r3, #0 - 80365da: d00a beq.n 80365f2 + 803653c: f897 3030 ldrb.w r3, [r7, #48] ; 0x30 + 8036540: f003 0301 and.w r3, r3, #1 + 8036544: 2b00 cmp r3, #0 + 8036546: d00a beq.n 803655e if(_lv_txt_is_cmd(&cmd_state, letter) != false) { - 80365dc: 69ba ldr r2, [r7, #24] - 80365de: f107 031f add.w r3, r7, #31 - 80365e2: 4611 mov r1, r2 - 80365e4: 4618 mov r0, r3 - 80365e6: f000 f82d bl 8036644 <_lv_txt_is_cmd> - 80365ea: 4603 mov r3, r0 - 80365ec: 2b00 cmp r3, #0 - 80365ee: d000 beq.n 80365f2 - 80365f0: e015 b.n 803661e + 8036548: 69ba ldr r2, [r7, #24] + 803654a: f107 031f add.w r3, r7, #31 + 803654e: 4611 mov r1, r2 + 8036550: 4618 mov r0, r3 + 8036552: f000 f82d bl 80365b0 <_lv_txt_is_cmd> + 8036556: 4603 mov r3, r0 + 8036558: 2b00 cmp r3, #0 + 803655a: d000 beq.n 803655e + 803655c: e015 b.n 803658a continue; } } lv_coord_t char_width = lv_font_get_glyph_width(font, letter, letter_next); - 80365f2: 69bb ldr r3, [r7, #24] - 80365f4: 697a ldr r2, [r7, #20] - 80365f6: 4619 mov r1, r3 - 80365f8: 6878 ldr r0, [r7, #4] - 80365fa: f7f9 fa8f bl 802fb1c - 80365fe: 4603 mov r3, r0 - 8036600: 84bb strh r3, [r7, #36] ; 0x24 + 803655e: 69bb ldr r3, [r7, #24] + 8036560: 697a ldr r2, [r7, #20] + 8036562: 4619 mov r1, r3 + 8036564: 6878 ldr r0, [r7, #4] + 8036566: f7f9 fa8f bl 802fa88 + 803656a: 4603 mov r3, r0 + 803656c: 84bb strh r3, [r7, #36] ; 0x24 if(char_width > 0) { - 8036602: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 - 8036606: 2b00 cmp r3, #0 - 8036608: dd09 ble.n 803661e + 803656e: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 + 8036572: 2b00 cmp r3, #0 + 8036574: dd09 ble.n 803658a width += char_width; - 803660a: 8cfa ldrh r2, [r7, #38] ; 0x26 - 803660c: 8cbb ldrh r3, [r7, #36] ; 0x24 - 803660e: 4413 add r3, r2 - 8036610: b29b uxth r3, r3 - 8036612: 84fb strh r3, [r7, #38] ; 0x26 + 8036576: 8cfa ldrh r2, [r7, #38] ; 0x26 + 8036578: 8cbb ldrh r3, [r7, #36] ; 0x24 + 803657a: 4413 add r3, r2 + 803657c: b29b uxth r3, r3 + 803657e: 84fb strh r3, [r7, #38] ; 0x26 width += letter_space; - 8036614: 8cfa ldrh r2, [r7, #38] ; 0x26 - 8036616: 887b ldrh r3, [r7, #2] - 8036618: 4413 add r3, r2 - 803661a: b29b uxth r3, r3 - 803661c: 84fb strh r3, [r7, #38] ; 0x26 + 8036580: 8cfa ldrh r2, [r7, #38] ; 0x26 + 8036582: 887b ldrh r3, [r7, #2] + 8036584: 4413 add r3, r2 + 8036586: b29b uxth r3, r3 + 8036588: 84fb strh r3, [r7, #38] ; 0x26 while(i < length) { - 803661e: 6a3b ldr r3, [r7, #32] - 8036620: 68ba ldr r2, [r7, #8] - 8036622: 429a cmp r2, r3 - 8036624: d8cb bhi.n 80365be + 803658a: 6a3b ldr r3, [r7, #32] + 803658c: 68ba ldr r2, [r7, #8] + 803658e: 429a cmp r2, r3 + 8036590: d8cb bhi.n 803652a } } if(width > 0) { - 8036626: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 803662a: 2b00 cmp r3, #0 - 803662c: dd04 ble.n 8036638 + 8036592: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 8036596: 2b00 cmp r3, #0 + 8036598: dd04 ble.n 80365a4 width -= letter_space; /*Trim the last letter space. Important if the text is center - 803662e: 8cfa ldrh r2, [r7, #38] ; 0x26 - 8036630: 887b ldrh r3, [r7, #2] - 8036632: 1ad3 subs r3, r2, r3 - 8036634: b29b uxth r3, r3 - 8036636: 84fb strh r3, [r7, #38] ; 0x26 + 803659a: 8cfa ldrh r2, [r7, #38] ; 0x26 + 803659c: 887b ldrh r3, [r7, #2] + 803659e: 1ad3 subs r3, r2, r3 + 80365a0: b29b uxth r3, r3 + 80365a2: 84fb strh r3, [r7, #38] ; 0x26 aligned*/ } } return width; - 8036638: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 80365a4: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 } - 803663c: 4618 mov r0, r3 - 803663e: 3728 adds r7, #40 ; 0x28 - 8036640: 46bd mov sp, r7 - 8036642: bd80 pop {r7, pc} + 80365a8: 4618 mov r0, r3 + 80365aa: 3728 adds r7, #40 ; 0x28 + 80365ac: 46bd mov sp, r7 + 80365ae: bd80 pop {r7, pc} -08036644 <_lv_txt_is_cmd>: +080365b0 <_lv_txt_is_cmd>: bool _lv_txt_is_cmd(lv_text_cmd_state_t * state, uint32_t c) { - 8036644: b480 push {r7} - 8036646: b085 sub sp, #20 - 8036648: af00 add r7, sp, #0 - 803664a: 6078 str r0, [r7, #4] - 803664c: 6039 str r1, [r7, #0] + 80365b0: b480 push {r7} + 80365b2: b085 sub sp, #20 + 80365b4: af00 add r7, sp, #0 + 80365b6: 6078 str r0, [r7, #4] + 80365b8: 6039 str r1, [r7, #0] bool ret = false; - 803664e: 2300 movs r3, #0 - 8036650: 73fb strb r3, [r7, #15] + 80365ba: 2300 movs r3, #0 + 80365bc: 73fb strb r3, [r7, #15] if(c == (uint32_t)LV_TXT_COLOR_CMD[0]) { - 8036652: 2323 movs r3, #35 ; 0x23 - 8036654: 461a mov r2, r3 - 8036656: 683b ldr r3, [r7, #0] - 8036658: 4293 cmp r3, r2 - 803665a: d11a bne.n 8036692 <_lv_txt_is_cmd+0x4e> + 80365be: 2323 movs r3, #35 ; 0x23 + 80365c0: 461a mov r2, r3 + 80365c2: 683b ldr r3, [r7, #0] + 80365c4: 4293 cmp r3, r2 + 80365c6: d11a bne.n 80365fe <_lv_txt_is_cmd+0x4e> if(*state == LV_TEXT_CMD_STATE_WAIT) { /*Start char*/ - 803665c: 687b ldr r3, [r7, #4] - 803665e: 781b ldrb r3, [r3, #0] - 8036660: 2b00 cmp r3, #0 - 8036662: d105 bne.n 8036670 <_lv_txt_is_cmd+0x2c> + 80365c8: 687b ldr r3, [r7, #4] + 80365ca: 781b ldrb r3, [r3, #0] + 80365cc: 2b00 cmp r3, #0 + 80365ce: d105 bne.n 80365dc <_lv_txt_is_cmd+0x2c> *state = LV_TEXT_CMD_STATE_PAR; - 8036664: 687b ldr r3, [r7, #4] - 8036666: 2201 movs r2, #1 - 8036668: 701a strb r2, [r3, #0] + 80365d0: 687b ldr r3, [r7, #4] + 80365d2: 2201 movs r2, #1 + 80365d4: 701a strb r2, [r3, #0] ret = true; - 803666a: 2301 movs r3, #1 - 803666c: 73fb strb r3, [r7, #15] - 803666e: e010 b.n 8036692 <_lv_txt_is_cmd+0x4e> + 80365d6: 2301 movs r3, #1 + 80365d8: 73fb strb r3, [r7, #15] + 80365da: e010 b.n 80365fe <_lv_txt_is_cmd+0x4e> } /*Other start char in parameter is escaped cmd. char*/ else if(*state == LV_TEXT_CMD_STATE_PAR) { - 8036670: 687b ldr r3, [r7, #4] - 8036672: 781b ldrb r3, [r3, #0] - 8036674: 2b01 cmp r3, #1 - 8036676: d103 bne.n 8036680 <_lv_txt_is_cmd+0x3c> + 80365dc: 687b ldr r3, [r7, #4] + 80365de: 781b ldrb r3, [r3, #0] + 80365e0: 2b01 cmp r3, #1 + 80365e2: d103 bne.n 80365ec <_lv_txt_is_cmd+0x3c> *state = LV_TEXT_CMD_STATE_WAIT; - 8036678: 687b ldr r3, [r7, #4] - 803667a: 2200 movs r2, #0 - 803667c: 701a strb r2, [r3, #0] - 803667e: e008 b.n 8036692 <_lv_txt_is_cmd+0x4e> + 80365e4: 687b ldr r3, [r7, #4] + 80365e6: 2200 movs r2, #0 + 80365e8: 701a strb r2, [r3, #0] + 80365ea: e008 b.n 80365fe <_lv_txt_is_cmd+0x4e> } /*Command end*/ else if(*state == LV_TEXT_CMD_STATE_IN) { - 8036680: 687b ldr r3, [r7, #4] - 8036682: 781b ldrb r3, [r3, #0] - 8036684: 2b02 cmp r3, #2 - 8036686: d104 bne.n 8036692 <_lv_txt_is_cmd+0x4e> + 80365ec: 687b ldr r3, [r7, #4] + 80365ee: 781b ldrb r3, [r3, #0] + 80365f0: 2b02 cmp r3, #2 + 80365f2: d104 bne.n 80365fe <_lv_txt_is_cmd+0x4e> *state = LV_TEXT_CMD_STATE_WAIT; - 8036688: 687b ldr r3, [r7, #4] - 803668a: 2200 movs r2, #0 - 803668c: 701a strb r2, [r3, #0] + 80365f4: 687b ldr r3, [r7, #4] + 80365f6: 2200 movs r2, #0 + 80365f8: 701a strb r2, [r3, #0] ret = true; - 803668e: 2301 movs r3, #1 - 8036690: 73fb strb r3, [r7, #15] + 80365fa: 2301 movs r3, #1 + 80365fc: 73fb strb r3, [r7, #15] } } /*Skip the color parameter and wait the space after it*/ if(*state == LV_TEXT_CMD_STATE_PAR) { - 8036692: 687b ldr r3, [r7, #4] - 8036694: 781b ldrb r3, [r3, #0] - 8036696: 2b01 cmp r3, #1 - 8036698: d107 bne.n 80366aa <_lv_txt_is_cmd+0x66> + 80365fe: 687b ldr r3, [r7, #4] + 8036600: 781b ldrb r3, [r3, #0] + 8036602: 2b01 cmp r3, #1 + 8036604: d107 bne.n 8036616 <_lv_txt_is_cmd+0x66> if(c == ' ') { - 803669a: 683b ldr r3, [r7, #0] - 803669c: 2b20 cmp r3, #32 - 803669e: d102 bne.n 80366a6 <_lv_txt_is_cmd+0x62> + 8036606: 683b ldr r3, [r7, #0] + 8036608: 2b20 cmp r3, #32 + 803660a: d102 bne.n 8036612 <_lv_txt_is_cmd+0x62> *state = LV_TEXT_CMD_STATE_IN; /*After the parameter the text is in the command*/ - 80366a0: 687b ldr r3, [r7, #4] - 80366a2: 2202 movs r2, #2 - 80366a4: 701a strb r2, [r3, #0] + 803660c: 687b ldr r3, [r7, #4] + 803660e: 2202 movs r2, #2 + 8036610: 701a strb r2, [r3, #0] } ret = true; - 80366a6: 2301 movs r3, #1 - 80366a8: 73fb strb r3, [r7, #15] + 8036612: 2301 movs r3, #1 + 8036614: 73fb strb r3, [r7, #15] } return ret; - 80366aa: 7bfb ldrb r3, [r7, #15] + 8036616: 7bfb ldrb r3, [r7, #15] } - 80366ac: 4618 mov r0, r3 - 80366ae: 3714 adds r7, #20 - 80366b0: 46bd mov sp, r7 - 80366b2: bc80 pop {r7} - 80366b4: 4770 bx lr + 8036618: 4618 mov r0, r3 + 803661a: 3714 adds r7, #20 + 803661c: 46bd mov sp, r7 + 803661e: bc80 pop {r7} + 8036620: 4770 bx lr ... -080366b8 <_lv_txt_ins>: +08036624 <_lv_txt_ins>: void _lv_txt_ins(char * txt_buf, uint32_t pos, const char * ins_txt) { - 80366b8: b580 push {r7, lr} - 80366ba: b088 sub sp, #32 - 80366bc: af00 add r7, sp, #0 - 80366be: 60f8 str r0, [r7, #12] - 80366c0: 60b9 str r1, [r7, #8] - 80366c2: 607a str r2, [r7, #4] + 8036624: b580 push {r7, lr} + 8036626: b088 sub sp, #32 + 8036628: af00 add r7, sp, #0 + 803662a: 60f8 str r0, [r7, #12] + 803662c: 60b9 str r1, [r7, #8] + 803662e: 607a str r2, [r7, #4] if(txt_buf == NULL || ins_txt == NULL) return; - 80366c4: 68fb ldr r3, [r7, #12] - 80366c6: 2b00 cmp r3, #0 - 80366c8: d036 beq.n 8036738 <_lv_txt_ins+0x80> - 80366ca: 687b ldr r3, [r7, #4] - 80366cc: 2b00 cmp r3, #0 - 80366ce: d033 beq.n 8036738 <_lv_txt_ins+0x80> + 8036630: 68fb ldr r3, [r7, #12] + 8036632: 2b00 cmp r3, #0 + 8036634: d036 beq.n 80366a4 <_lv_txt_ins+0x80> + 8036636: 687b ldr r3, [r7, #4] + 8036638: 2b00 cmp r3, #0 + 803663a: d033 beq.n 80366a4 <_lv_txt_ins+0x80> size_t old_len = strlen(txt_buf); - 80366d0: 68f8 ldr r0, [r7, #12] - 80366d2: f7c9 fdb1 bl 8000238 - 80366d6: 61b8 str r0, [r7, #24] + 803663c: 68f8 ldr r0, [r7, #12] + 803663e: f7c9 fdfb bl 8000238 + 8036642: 61b8 str r0, [r7, #24] size_t ins_len = strlen(ins_txt); - 80366d8: 6878 ldr r0, [r7, #4] - 80366da: f7c9 fdad bl 8000238 - 80366de: 6178 str r0, [r7, #20] + 8036644: 6878 ldr r0, [r7, #4] + 8036646: f7c9 fdf7 bl 8000238 + 803664a: 6178 str r0, [r7, #20] if(ins_len == 0) return; - 80366e0: 697b ldr r3, [r7, #20] - 80366e2: 2b00 cmp r3, #0 - 80366e4: d02a beq.n 803673c <_lv_txt_ins+0x84> + 803664c: 697b ldr r3, [r7, #20] + 803664e: 2b00 cmp r3, #0 + 8036650: d02a beq.n 80366a8 <_lv_txt_ins+0x84> size_t new_len = ins_len + old_len; - 80366e6: 697a ldr r2, [r7, #20] - 80366e8: 69bb ldr r3, [r7, #24] - 80366ea: 4413 add r3, r2 - 80366ec: 613b str r3, [r7, #16] + 8036652: 697a ldr r2, [r7, #20] + 8036654: 69bb ldr r3, [r7, #24] + 8036656: 4413 add r3, r2 + 8036658: 613b str r3, [r7, #16] pos = _lv_txt_encoded_get_byte_id(txt_buf, pos); /*Convert to byte index instead of letter index*/ - 80366ee: 4b15 ldr r3, [pc, #84] ; (8036744 <_lv_txt_ins+0x8c>) - 80366f0: 681b ldr r3, [r3, #0] - 80366f2: 68b9 ldr r1, [r7, #8] - 80366f4: 68f8 ldr r0, [r7, #12] - 80366f6: 4798 blx r3 - 80366f8: 60b8 str r0, [r7, #8] + 803665a: 4b15 ldr r3, [pc, #84] ; (80366b0 <_lv_txt_ins+0x8c>) + 803665c: 681b ldr r3, [r3, #0] + 803665e: 68b9 ldr r1, [r7, #8] + 8036660: 68f8 ldr r0, [r7, #12] + 8036662: 4798 blx r3 + 8036664: 60b8 str r0, [r7, #8] /*Copy the second part into the end to make place to text to insert*/ size_t i; for(i = new_len; i >= pos + ins_len; i--) { - 80366fa: 693b ldr r3, [r7, #16] - 80366fc: 61fb str r3, [r7, #28] - 80366fe: e00c b.n 803671a <_lv_txt_ins+0x62> + 8036666: 693b ldr r3, [r7, #16] + 8036668: 61fb str r3, [r7, #28] + 803666a: e00c b.n 8036686 <_lv_txt_ins+0x62> txt_buf[i] = txt_buf[i - ins_len]; - 8036700: 69fa ldr r2, [r7, #28] - 8036702: 697b ldr r3, [r7, #20] - 8036704: 1ad3 subs r3, r2, r3 - 8036706: 68fa ldr r2, [r7, #12] - 8036708: 441a add r2, r3 - 803670a: 68f9 ldr r1, [r7, #12] - 803670c: 69fb ldr r3, [r7, #28] - 803670e: 440b add r3, r1 - 8036710: 7812 ldrb r2, [r2, #0] - 8036712: 701a strb r2, [r3, #0] + 803666c: 69fa ldr r2, [r7, #28] + 803666e: 697b ldr r3, [r7, #20] + 8036670: 1ad3 subs r3, r2, r3 + 8036672: 68fa ldr r2, [r7, #12] + 8036674: 441a add r2, r3 + 8036676: 68f9 ldr r1, [r7, #12] + 8036678: 69fb ldr r3, [r7, #28] + 803667a: 440b add r3, r1 + 803667c: 7812 ldrb r2, [r2, #0] + 803667e: 701a strb r2, [r3, #0] for(i = new_len; i >= pos + ins_len; i--) { - 8036714: 69fb ldr r3, [r7, #28] - 8036716: 3b01 subs r3, #1 - 8036718: 61fb str r3, [r7, #28] - 803671a: 68ba ldr r2, [r7, #8] - 803671c: 697b ldr r3, [r7, #20] - 803671e: 4413 add r3, r2 - 8036720: 69fa ldr r2, [r7, #28] - 8036722: 429a cmp r2, r3 - 8036724: d2ec bcs.n 8036700 <_lv_txt_ins+0x48> + 8036680: 69fb ldr r3, [r7, #28] + 8036682: 3b01 subs r3, #1 + 8036684: 61fb str r3, [r7, #28] + 8036686: 68ba ldr r2, [r7, #8] + 8036688: 697b ldr r3, [r7, #20] + 803668a: 4413 add r3, r2 + 803668c: 69fa ldr r2, [r7, #28] + 803668e: 429a cmp r2, r3 + 8036690: d2ec bcs.n 803666c <_lv_txt_ins+0x48> } /*Copy the text into the new space*/ lv_memcpy_small(txt_buf + pos, ins_txt, ins_len); - 8036726: 68fa ldr r2, [r7, #12] - 8036728: 68bb ldr r3, [r7, #8] - 803672a: 4413 add r3, r2 - 803672c: 697a ldr r2, [r7, #20] - 803672e: 6879 ldr r1, [r7, #4] - 8036730: 4618 mov r0, r3 - 8036732: f7ff fc89 bl 8036048 - 8036736: e002 b.n 803673e <_lv_txt_ins+0x86> + 8036692: 68fa ldr r2, [r7, #12] + 8036694: 68bb ldr r3, [r7, #8] + 8036696: 4413 add r3, r2 + 8036698: 697a ldr r2, [r7, #20] + 803669a: 6879 ldr r1, [r7, #4] + 803669c: 4618 mov r0, r3 + 803669e: f7ff fc89 bl 8035fb4 + 80366a2: e002 b.n 80366aa <_lv_txt_ins+0x86> if(txt_buf == NULL || ins_txt == NULL) return; - 8036738: bf00 nop - 803673a: e000 b.n 803673e <_lv_txt_ins+0x86> + 80366a4: bf00 nop + 80366a6: e000 b.n 80366aa <_lv_txt_ins+0x86> if(ins_len == 0) return; - 803673c: bf00 nop + 80366a8: bf00 nop } - 803673e: 3720 adds r7, #32 - 8036740: 46bd mov sp, r7 - 8036742: bd80 pop {r7, pc} - 8036744: 200000f4 .word 0x200000f4 + 80366aa: 3720 adds r7, #32 + 80366ac: 46bd mov sp, r7 + 80366ae: bd80 pop {r7, pc} + 80366b0: 200000f4 .word 0x200000f4 -08036748 <_lv_txt_cut>: +080366b4 <_lv_txt_cut>: void _lv_txt_cut(char * txt, uint32_t pos, uint32_t len) { - 8036748: b580 push {r7, lr} - 803674a: b086 sub sp, #24 - 803674c: af00 add r7, sp, #0 - 803674e: 60f8 str r0, [r7, #12] - 8036750: 60b9 str r1, [r7, #8] - 8036752: 607a str r2, [r7, #4] + 80366b4: b580 push {r7, lr} + 80366b6: b086 sub sp, #24 + 80366b8: af00 add r7, sp, #0 + 80366ba: 60f8 str r0, [r7, #12] + 80366bc: 60b9 str r1, [r7, #8] + 80366be: 607a str r2, [r7, #4] if(txt == NULL) return; - 8036754: 68fb ldr r3, [r7, #12] - 8036756: 2b00 cmp r3, #0 - 8036758: d029 beq.n 80367ae <_lv_txt_cut+0x66> + 80366c0: 68fb ldr r3, [r7, #12] + 80366c2: 2b00 cmp r3, #0 + 80366c4: d029 beq.n 803671a <_lv_txt_cut+0x66> size_t old_len = strlen(txt); - 803675a: 68f8 ldr r0, [r7, #12] - 803675c: f7c9 fd6c bl 8000238 - 8036760: 6138 str r0, [r7, #16] + 80366c6: 68f8 ldr r0, [r7, #12] + 80366c8: f7c9 fdb6 bl 8000238 + 80366cc: 6138 str r0, [r7, #16] pos = _lv_txt_encoded_get_byte_id(txt, pos); /*Convert to byte index instead of letter index*/ - 8036762: 4b15 ldr r3, [pc, #84] ; (80367b8 <_lv_txt_cut+0x70>) - 8036764: 681b ldr r3, [r3, #0] - 8036766: 68b9 ldr r1, [r7, #8] - 8036768: 68f8 ldr r0, [r7, #12] - 803676a: 4798 blx r3 - 803676c: 60b8 str r0, [r7, #8] + 80366ce: 4b15 ldr r3, [pc, #84] ; (8036724 <_lv_txt_cut+0x70>) + 80366d0: 681b ldr r3, [r3, #0] + 80366d2: 68b9 ldr r1, [r7, #8] + 80366d4: 68f8 ldr r0, [r7, #12] + 80366d6: 4798 blx r3 + 80366d8: 60b8 str r0, [r7, #8] len = _lv_txt_encoded_get_byte_id(&txt[pos], len); - 803676e: 4b12 ldr r3, [pc, #72] ; (80367b8 <_lv_txt_cut+0x70>) - 8036770: 681b ldr r3, [r3, #0] - 8036772: 68f9 ldr r1, [r7, #12] - 8036774: 68ba ldr r2, [r7, #8] - 8036776: 440a add r2, r1 - 8036778: 6879 ldr r1, [r7, #4] - 803677a: 4610 mov r0, r2 - 803677c: 4798 blx r3 - 803677e: 6078 str r0, [r7, #4] + 80366da: 4b12 ldr r3, [pc, #72] ; (8036724 <_lv_txt_cut+0x70>) + 80366dc: 681b ldr r3, [r3, #0] + 80366de: 68f9 ldr r1, [r7, #12] + 80366e0: 68ba ldr r2, [r7, #8] + 80366e2: 440a add r2, r1 + 80366e4: 6879 ldr r1, [r7, #4] + 80366e6: 4610 mov r0, r2 + 80366e8: 4798 blx r3 + 80366ea: 6078 str r0, [r7, #4] /*Copy the second part into the end to make place to text to insert*/ uint32_t i; for(i = pos; i <= old_len - len; i++) { - 8036780: 68bb ldr r3, [r7, #8] - 8036782: 617b str r3, [r7, #20] - 8036784: e00c b.n 80367a0 <_lv_txt_cut+0x58> + 80366ec: 68bb ldr r3, [r7, #8] + 80366ee: 617b str r3, [r7, #20] + 80366f0: e00c b.n 803670c <_lv_txt_cut+0x58> txt[i] = txt[i + len]; - 8036786: 697a ldr r2, [r7, #20] - 8036788: 687b ldr r3, [r7, #4] - 803678a: 4413 add r3, r2 - 803678c: 68fa ldr r2, [r7, #12] - 803678e: 441a add r2, r3 - 8036790: 68f9 ldr r1, [r7, #12] - 8036792: 697b ldr r3, [r7, #20] - 8036794: 440b add r3, r1 - 8036796: 7812 ldrb r2, [r2, #0] - 8036798: 701a strb r2, [r3, #0] + 80366f2: 697a ldr r2, [r7, #20] + 80366f4: 687b ldr r3, [r7, #4] + 80366f6: 4413 add r3, r2 + 80366f8: 68fa ldr r2, [r7, #12] + 80366fa: 441a add r2, r3 + 80366fc: 68f9 ldr r1, [r7, #12] + 80366fe: 697b ldr r3, [r7, #20] + 8036700: 440b add r3, r1 + 8036702: 7812 ldrb r2, [r2, #0] + 8036704: 701a strb r2, [r3, #0] for(i = pos; i <= old_len - len; i++) { - 803679a: 697b ldr r3, [r7, #20] - 803679c: 3301 adds r3, #1 - 803679e: 617b str r3, [r7, #20] - 80367a0: 693a ldr r2, [r7, #16] - 80367a2: 687b ldr r3, [r7, #4] - 80367a4: 1ad3 subs r3, r2, r3 - 80367a6: 697a ldr r2, [r7, #20] - 80367a8: 429a cmp r2, r3 - 80367aa: d9ec bls.n 8036786 <_lv_txt_cut+0x3e> - 80367ac: e000 b.n 80367b0 <_lv_txt_cut+0x68> + 8036706: 697b ldr r3, [r7, #20] + 8036708: 3301 adds r3, #1 + 803670a: 617b str r3, [r7, #20] + 803670c: 693a ldr r2, [r7, #16] + 803670e: 687b ldr r3, [r7, #4] + 8036710: 1ad3 subs r3, r2, r3 + 8036712: 697a ldr r2, [r7, #20] + 8036714: 429a cmp r2, r3 + 8036716: d9ec bls.n 80366f2 <_lv_txt_cut+0x3e> + 8036718: e000 b.n 803671c <_lv_txt_cut+0x68> if(txt == NULL) return; - 80367ae: bf00 nop + 803671a: bf00 nop } } - 80367b0: 3718 adds r7, #24 - 80367b2: 46bd mov sp, r7 - 80367b4: bd80 pop {r7, pc} - 80367b6: bf00 nop - 80367b8: 200000f4 .word 0x200000f4 + 803671c: 3718 adds r7, #24 + 803671e: 46bd mov sp, r7 + 8036720: bd80 pop {r7, pc} + 8036722: bf00 nop + 8036724: 200000f4 .word 0x200000f4 -080367bc <_lv_txt_set_text_vfmt>: +08036728 <_lv_txt_set_text_vfmt>: char * _lv_txt_set_text_vfmt(const char * fmt, va_list ap) { - 80367bc: b580 push {r7, lr} - 80367be: b086 sub sp, #24 - 80367c0: af00 add r7, sp, #0 - 80367c2: 6078 str r0, [r7, #4] - 80367c4: 6039 str r1, [r7, #0] + 8036728: b580 push {r7, lr} + 803672a: b086 sub sp, #24 + 803672c: af00 add r7, sp, #0 + 803672e: 6078 str r0, [r7, #4] + 8036730: 6039 str r1, [r7, #0] /*Allocate space for the new text by using trick from C99 standard section 7.19.6.12*/ va_list ap_copy; va_copy(ap_copy, ap); - 80367c6: 683b ldr r3, [r7, #0] - 80367c8: 60fb str r3, [r7, #12] + 8036732: 683b ldr r3, [r7, #0] + 8036734: 60fb str r3, [r7, #12] uint32_t len = lv_vsnprintf(NULL, 0, fmt, ap_copy); - 80367ca: 68fb ldr r3, [r7, #12] - 80367cc: 687a ldr r2, [r7, #4] - 80367ce: 2100 movs r1, #0 - 80367d0: 2000 movs r0, #0 - 80367d2: f7fd fc7d bl 80340d0 - 80367d6: 4603 mov r3, r0 - 80367d8: 617b str r3, [r7, #20] + 8036736: 68fb ldr r3, [r7, #12] + 8036738: 687a ldr r2, [r7, #4] + 803673a: 2100 movs r1, #0 + 803673c: 2000 movs r0, #0 + 803673e: f7fd fc7d bl 803403c + 8036742: 4603 mov r3, r0 + 8036744: 617b str r3, [r7, #20] va_end(ap_copy); char * text = 0; - 80367da: 2300 movs r3, #0 - 80367dc: 613b str r3, [r7, #16] + 8036746: 2300 movs r3, #0 + 8036748: 613b str r3, [r7, #16] } _lv_txt_ap_proc(raw_txt, text); lv_mem_buf_release(raw_txt); #else text = lv_mem_alloc(len + 1); - 80367de: 697b ldr r3, [r7, #20] - 80367e0: 3301 adds r3, #1 - 80367e2: 4618 mov r0, r3 - 80367e4: f7fc f858 bl 8032898 - 80367e8: 6138 str r0, [r7, #16] + 803674a: 697b ldr r3, [r7, #20] + 803674c: 3301 adds r3, #1 + 803674e: 4618 mov r0, r3 + 8036750: f7fc f858 bl 8032804 + 8036754: 6138 str r0, [r7, #16] LV_ASSERT_MALLOC(text); - 80367ea: 693b ldr r3, [r7, #16] - 80367ec: 2b00 cmp r3, #0 - 80367ee: d100 bne.n 80367f2 <_lv_txt_set_text_vfmt+0x36> - 80367f0: e7fe b.n 80367f0 <_lv_txt_set_text_vfmt+0x34> + 8036756: 693b ldr r3, [r7, #16] + 8036758: 2b00 cmp r3, #0 + 803675a: d100 bne.n 803675e <_lv_txt_set_text_vfmt+0x36> + 803675c: e7fe b.n 803675c <_lv_txt_set_text_vfmt+0x34> if(text == NULL) { - 80367f2: 693b ldr r3, [r7, #16] - 80367f4: 2b00 cmp r3, #0 - 80367f6: d101 bne.n 80367fc <_lv_txt_set_text_vfmt+0x40> + 803675e: 693b ldr r3, [r7, #16] + 8036760: 2b00 cmp r3, #0 + 8036762: d101 bne.n 8036768 <_lv_txt_set_text_vfmt+0x40> return NULL; - 80367f8: 2300 movs r3, #0 - 80367fa: e00c b.n 8036816 <_lv_txt_set_text_vfmt+0x5a> + 8036764: 2300 movs r3, #0 + 8036766: e00c b.n 8036782 <_lv_txt_set_text_vfmt+0x5a> } text[len] = 0; /*Ensure NULL termination*/ - 80367fc: 693a ldr r2, [r7, #16] - 80367fe: 697b ldr r3, [r7, #20] - 8036800: 4413 add r3, r2 - 8036802: 2200 movs r2, #0 - 8036804: 701a strb r2, [r3, #0] + 8036768: 693a ldr r2, [r7, #16] + 803676a: 697b ldr r3, [r7, #20] + 803676c: 4413 add r3, r2 + 803676e: 2200 movs r2, #0 + 8036770: 701a strb r2, [r3, #0] lv_vsnprintf(text, len + 1, fmt, ap); - 8036806: 697b ldr r3, [r7, #20] - 8036808: 1c59 adds r1, r3, #1 - 803680a: 683b ldr r3, [r7, #0] - 803680c: 687a ldr r2, [r7, #4] - 803680e: 6938 ldr r0, [r7, #16] - 8036810: f7fd fc5e bl 80340d0 + 8036772: 697b ldr r3, [r7, #20] + 8036774: 1c59 adds r1, r3, #1 + 8036776: 683b ldr r3, [r7, #0] + 8036778: 687a ldr r2, [r7, #4] + 803677a: 6938 ldr r0, [r7, #16] + 803677c: f7fd fc5e bl 803403c #endif return text; - 8036814: 693b ldr r3, [r7, #16] + 8036780: 693b ldr r3, [r7, #16] } - 8036816: 4618 mov r0, r3 - 8036818: 3718 adds r7, #24 - 803681a: 46bd mov sp, r7 - 803681c: bd80 pop {r7, pc} + 8036782: 4618 mov r0, r3 + 8036784: 3718 adds r7, #24 + 8036786: 46bd mov sp, r7 + 8036788: bd80 pop {r7, pc} ... -08036820 <_lv_txt_encoded_letter_next_2>: +0803678c <_lv_txt_encoded_letter_next_2>: void _lv_txt_encoded_letter_next_2(const char * txt, uint32_t * letter, uint32_t * letter_next, uint32_t * ofs) { - 8036820: b580 push {r7, lr} - 8036822: b084 sub sp, #16 - 8036824: af00 add r7, sp, #0 - 8036826: 60f8 str r0, [r7, #12] - 8036828: 60b9 str r1, [r7, #8] - 803682a: 607a str r2, [r7, #4] - 803682c: 603b str r3, [r7, #0] + 803678c: b580 push {r7, lr} + 803678e: b084 sub sp, #16 + 8036790: af00 add r7, sp, #0 + 8036792: 60f8 str r0, [r7, #12] + 8036794: 60b9 str r1, [r7, #8] + 8036796: 607a str r2, [r7, #4] + 8036798: 603b str r3, [r7, #0] *letter = _lv_txt_encoded_next(txt, ofs); - 803682e: 4b0f ldr r3, [pc, #60] ; (803686c <_lv_txt_encoded_letter_next_2+0x4c>) - 8036830: 681b ldr r3, [r3, #0] - 8036832: 6839 ldr r1, [r7, #0] - 8036834: 68f8 ldr r0, [r7, #12] - 8036836: 4798 blx r3 - 8036838: 4602 mov r2, r0 - 803683a: 68bb ldr r3, [r7, #8] - 803683c: 601a str r2, [r3, #0] + 803679a: 4b0f ldr r3, [pc, #60] ; (80367d8 <_lv_txt_encoded_letter_next_2+0x4c>) + 803679c: 681b ldr r3, [r3, #0] + 803679e: 6839 ldr r1, [r7, #0] + 80367a0: 68f8 ldr r0, [r7, #12] + 80367a2: 4798 blx r3 + 80367a4: 4602 mov r2, r0 + 80367a6: 68bb ldr r3, [r7, #8] + 80367a8: 601a str r2, [r3, #0] *letter_next = *letter != '\0' ? _lv_txt_encoded_next(&txt[*ofs], NULL) : 0; - 803683e: 68bb ldr r3, [r7, #8] - 8036840: 681b ldr r3, [r3, #0] - 8036842: 2b00 cmp r3, #0 - 8036844: d00a beq.n 803685c <_lv_txt_encoded_letter_next_2+0x3c> - 8036846: 4b09 ldr r3, [pc, #36] ; (803686c <_lv_txt_encoded_letter_next_2+0x4c>) - 8036848: 681b ldr r3, [r3, #0] - 803684a: 683a ldr r2, [r7, #0] - 803684c: 6812 ldr r2, [r2, #0] - 803684e: 68f9 ldr r1, [r7, #12] - 8036850: 440a add r2, r1 - 8036852: 2100 movs r1, #0 - 8036854: 4610 mov r0, r2 - 8036856: 4798 blx r3 - 8036858: 4603 mov r3, r0 - 803685a: e000 b.n 803685e <_lv_txt_encoded_letter_next_2+0x3e> - 803685c: 2300 movs r3, #0 - 803685e: 687a ldr r2, [r7, #4] - 8036860: 6013 str r3, [r2, #0] + 80367aa: 68bb ldr r3, [r7, #8] + 80367ac: 681b ldr r3, [r3, #0] + 80367ae: 2b00 cmp r3, #0 + 80367b0: d00a beq.n 80367c8 <_lv_txt_encoded_letter_next_2+0x3c> + 80367b2: 4b09 ldr r3, [pc, #36] ; (80367d8 <_lv_txt_encoded_letter_next_2+0x4c>) + 80367b4: 681b ldr r3, [r3, #0] + 80367b6: 683a ldr r2, [r7, #0] + 80367b8: 6812 ldr r2, [r2, #0] + 80367ba: 68f9 ldr r1, [r7, #12] + 80367bc: 440a add r2, r1 + 80367be: 2100 movs r1, #0 + 80367c0: 4610 mov r0, r2 + 80367c2: 4798 blx r3 + 80367c4: 4603 mov r3, r0 + 80367c6: e000 b.n 80367ca <_lv_txt_encoded_letter_next_2+0x3e> + 80367c8: 2300 movs r3, #0 + 80367ca: 687a ldr r2, [r7, #4] + 80367cc: 6013 str r3, [r2, #0] } - 8036862: bf00 nop - 8036864: 3710 adds r7, #16 - 8036866: 46bd mov sp, r7 - 8036868: bd80 pop {r7, pc} - 803686a: bf00 nop - 803686c: 200000ec .word 0x200000ec + 80367ce: bf00 nop + 80367d0: 3710 adds r7, #16 + 80367d2: 46bd mov sp, r7 + 80367d4: bd80 pop {r7, pc} + 80367d6: bf00 nop + 80367d8: 200000ec .word 0x200000ec -08036870 : +080367dc : * Give the size of an UTF-8 coded character * @param str pointer to a character in a string * @return length of the UTF-8 character (1,2,3 or 4), 0 on invalid code. */ static uint8_t lv_txt_utf8_size(const char * str) { - 8036870: b480 push {r7} - 8036872: b083 sub sp, #12 - 8036874: af00 add r7, sp, #0 - 8036876: 6078 str r0, [r7, #4] + 80367dc: b480 push {r7} + 80367de: b083 sub sp, #12 + 80367e0: af00 add r7, sp, #0 + 80367e2: 6078 str r0, [r7, #4] if(LV_IS_ASCII(str[0])) - 8036878: 687b ldr r3, [r7, #4] - 803687a: 781b ldrb r3, [r3, #0] - 803687c: b25b sxtb r3, r3 - 803687e: 2b00 cmp r3, #0 - 8036880: db01 blt.n 8036886 + 80367e4: 687b ldr r3, [r7, #4] + 80367e6: 781b ldrb r3, [r3, #0] + 80367e8: b25b sxtb r3, r3 + 80367ea: 2b00 cmp r3, #0 + 80367ec: db01 blt.n 80367f2 return 1; - 8036882: 2301 movs r3, #1 - 8036884: e018 b.n 80368b8 + 80367ee: 2301 movs r3, #1 + 80367f0: e018 b.n 8036824 else if(LV_IS_2BYTES_UTF8_CODE(str[0])) - 8036886: 687b ldr r3, [r7, #4] - 8036888: 781b ldrb r3, [r3, #0] - 803688a: f003 03e0 and.w r3, r3, #224 ; 0xe0 - 803688e: 2bc0 cmp r3, #192 ; 0xc0 - 8036890: d101 bne.n 8036896 + 80367f2: 687b ldr r3, [r7, #4] + 80367f4: 781b ldrb r3, [r3, #0] + 80367f6: f003 03e0 and.w r3, r3, #224 ; 0xe0 + 80367fa: 2bc0 cmp r3, #192 ; 0xc0 + 80367fc: d101 bne.n 8036802 return 2; - 8036892: 2302 movs r3, #2 - 8036894: e010 b.n 80368b8 + 80367fe: 2302 movs r3, #2 + 8036800: e010 b.n 8036824 else if(LV_IS_3BYTES_UTF8_CODE(str[0])) - 8036896: 687b ldr r3, [r7, #4] - 8036898: 781b ldrb r3, [r3, #0] - 803689a: f003 03f0 and.w r3, r3, #240 ; 0xf0 - 803689e: 2be0 cmp r3, #224 ; 0xe0 - 80368a0: d101 bne.n 80368a6 + 8036802: 687b ldr r3, [r7, #4] + 8036804: 781b ldrb r3, [r3, #0] + 8036806: f003 03f0 and.w r3, r3, #240 ; 0xf0 + 803680a: 2be0 cmp r3, #224 ; 0xe0 + 803680c: d101 bne.n 8036812 return 3; - 80368a2: 2303 movs r3, #3 - 80368a4: e008 b.n 80368b8 + 803680e: 2303 movs r3, #3 + 8036810: e008 b.n 8036824 else if(LV_IS_4BYTES_UTF8_CODE(str[0])) - 80368a6: 687b ldr r3, [r7, #4] - 80368a8: 781b ldrb r3, [r3, #0] - 80368aa: f003 03f8 and.w r3, r3, #248 ; 0xf8 - 80368ae: 2bf0 cmp r3, #240 ; 0xf0 - 80368b0: d101 bne.n 80368b6 + 8036812: 687b ldr r3, [r7, #4] + 8036814: 781b ldrb r3, [r3, #0] + 8036816: f003 03f8 and.w r3, r3, #248 ; 0xf8 + 803681a: 2bf0 cmp r3, #240 ; 0xf0 + 803681c: d101 bne.n 8036822 return 4; - 80368b2: 2304 movs r3, #4 - 80368b4: e000 b.n 80368b8 + 803681e: 2304 movs r3, #4 + 8036820: e000 b.n 8036824 return 0; - 80368b6: 2300 movs r3, #0 + 8036822: 2300 movs r3, #0 } - 80368b8: 4618 mov r0, r3 - 80368ba: 370c adds r7, #12 - 80368bc: 46bd mov sp, r7 - 80368be: bc80 pop {r7} - 80368c0: 4770 bx lr + 8036824: 4618 mov r0, r3 + 8036826: 370c adds r7, #12 + 8036828: 46bd mov sp, r7 + 803682a: bc80 pop {r7} + 803682c: 4770 bx lr -080368c2 : +0803682e : * Convert an Unicode letter to UTF-8. * @param letter_uni an Unicode letter * @return UTF-8 coded character in Little Endian to be compatible with C chars (e.g. 'Á', 'Ű') */ static uint32_t lv_txt_unicode_to_utf8(uint32_t letter_uni) { - 80368c2: b480 push {r7} - 80368c4: b085 sub sp, #20 - 80368c6: af00 add r7, sp, #0 - 80368c8: 6078 str r0, [r7, #4] + 803682e: b480 push {r7} + 8036830: b085 sub sp, #20 + 8036832: af00 add r7, sp, #0 + 8036834: 6078 str r0, [r7, #4] if(letter_uni < 128) return letter_uni; - 80368ca: 687b ldr r3, [r7, #4] - 80368cc: 2b7f cmp r3, #127 ; 0x7f - 80368ce: d801 bhi.n 80368d4 - 80368d0: 687b ldr r3, [r7, #4] - 80368d2: e06f b.n 80369b4 + 8036836: 687b ldr r3, [r7, #4] + 8036838: 2b7f cmp r3, #127 ; 0x7f + 803683a: d801 bhi.n 8036840 + 803683c: 687b ldr r3, [r7, #4] + 803683e: e06f b.n 8036920 uint8_t bytes[4]; if(letter_uni < 0x0800) { - 80368d4: 687b ldr r3, [r7, #4] - 80368d6: f5b3 6f00 cmp.w r3, #2048 ; 0x800 - 80368da: d217 bcs.n 803690c + 8036840: 687b ldr r3, [r7, #4] + 8036842: f5b3 6f00 cmp.w r3, #2048 ; 0x800 + 8036846: d217 bcs.n 8036878 bytes[0] = ((letter_uni >> 6) & 0x1F) | 0xC0; - 80368dc: 687b ldr r3, [r7, #4] - 80368de: 099b lsrs r3, r3, #6 - 80368e0: b2db uxtb r3, r3 - 80368e2: f003 031f and.w r3, r3, #31 - 80368e6: b2db uxtb r3, r3 - 80368e8: f063 033f orn r3, r3, #63 ; 0x3f - 80368ec: b2db uxtb r3, r3 - 80368ee: 723b strb r3, [r7, #8] + 8036848: 687b ldr r3, [r7, #4] + 803684a: 099b lsrs r3, r3, #6 + 803684c: b2db uxtb r3, r3 + 803684e: f003 031f and.w r3, r3, #31 + 8036852: b2db uxtb r3, r3 + 8036854: f063 033f orn r3, r3, #63 ; 0x3f + 8036858: b2db uxtb r3, r3 + 803685a: 723b strb r3, [r7, #8] bytes[1] = ((letter_uni >> 0) & 0x3F) | 0x80; - 80368f0: 687b ldr r3, [r7, #4] - 80368f2: b2db uxtb r3, r3 - 80368f4: f003 033f and.w r3, r3, #63 ; 0x3f - 80368f8: b2db uxtb r3, r3 - 80368fa: f063 037f orn r3, r3, #127 ; 0x7f - 80368fe: b2db uxtb r3, r3 - 8036900: 727b strb r3, [r7, #9] + 803685c: 687b ldr r3, [r7, #4] + 803685e: b2db uxtb r3, r3 + 8036860: f003 033f and.w r3, r3, #63 ; 0x3f + 8036864: b2db uxtb r3, r3 + 8036866: f063 037f orn r3, r3, #127 ; 0x7f + 803686a: b2db uxtb r3, r3 + 803686c: 727b strb r3, [r7, #9] bytes[2] = 0; - 8036902: 2300 movs r3, #0 - 8036904: 72bb strb r3, [r7, #10] + 803686e: 2300 movs r3, #0 + 8036870: 72bb strb r3, [r7, #10] bytes[3] = 0; - 8036906: 2300 movs r3, #0 - 8036908: 72fb strb r3, [r7, #11] - 803690a: e04e b.n 80369aa + 8036872: 2300 movs r3, #0 + 8036874: 72fb strb r3, [r7, #11] + 8036876: e04e b.n 8036916 } else if(letter_uni < 0x010000) { - 803690c: 687b ldr r3, [r7, #4] - 803690e: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 8036912: d21f bcs.n 8036954 + 8036878: 687b ldr r3, [r7, #4] + 803687a: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 803687e: d21f bcs.n 80368c0 bytes[0] = ((letter_uni >> 12) & 0x0F) | 0xE0; - 8036914: 687b ldr r3, [r7, #4] - 8036916: 0b1b lsrs r3, r3, #12 - 8036918: b2db uxtb r3, r3 - 803691a: f003 030f and.w r3, r3, #15 - 803691e: b2db uxtb r3, r3 - 8036920: f063 031f orn r3, r3, #31 - 8036924: b2db uxtb r3, r3 - 8036926: 723b strb r3, [r7, #8] + 8036880: 687b ldr r3, [r7, #4] + 8036882: 0b1b lsrs r3, r3, #12 + 8036884: b2db uxtb r3, r3 + 8036886: f003 030f and.w r3, r3, #15 + 803688a: b2db uxtb r3, r3 + 803688c: f063 031f orn r3, r3, #31 + 8036890: b2db uxtb r3, r3 + 8036892: 723b strb r3, [r7, #8] bytes[1] = ((letter_uni >> 6) & 0x3F) | 0x80; - 8036928: 687b ldr r3, [r7, #4] - 803692a: 099b lsrs r3, r3, #6 - 803692c: b2db uxtb r3, r3 - 803692e: f003 033f and.w r3, r3, #63 ; 0x3f - 8036932: b2db uxtb r3, r3 - 8036934: f063 037f orn r3, r3, #127 ; 0x7f - 8036938: b2db uxtb r3, r3 - 803693a: 727b strb r3, [r7, #9] + 8036894: 687b ldr r3, [r7, #4] + 8036896: 099b lsrs r3, r3, #6 + 8036898: b2db uxtb r3, r3 + 803689a: f003 033f and.w r3, r3, #63 ; 0x3f + 803689e: b2db uxtb r3, r3 + 80368a0: f063 037f orn r3, r3, #127 ; 0x7f + 80368a4: b2db uxtb r3, r3 + 80368a6: 727b strb r3, [r7, #9] bytes[2] = ((letter_uni >> 0) & 0x3F) | 0x80; - 803693c: 687b ldr r3, [r7, #4] - 803693e: b2db uxtb r3, r3 - 8036940: f003 033f and.w r3, r3, #63 ; 0x3f - 8036944: b2db uxtb r3, r3 - 8036946: f063 037f orn r3, r3, #127 ; 0x7f - 803694a: b2db uxtb r3, r3 - 803694c: 72bb strb r3, [r7, #10] + 80368a8: 687b ldr r3, [r7, #4] + 80368aa: b2db uxtb r3, r3 + 80368ac: f003 033f and.w r3, r3, #63 ; 0x3f + 80368b0: b2db uxtb r3, r3 + 80368b2: f063 037f orn r3, r3, #127 ; 0x7f + 80368b6: b2db uxtb r3, r3 + 80368b8: 72bb strb r3, [r7, #10] bytes[3] = 0; - 803694e: 2300 movs r3, #0 - 8036950: 72fb strb r3, [r7, #11] - 8036952: e02a b.n 80369aa + 80368ba: 2300 movs r3, #0 + 80368bc: 72fb strb r3, [r7, #11] + 80368be: e02a b.n 8036916 } else if(letter_uni < 0x110000) { - 8036954: 687b ldr r3, [r7, #4] - 8036956: f5b3 1f88 cmp.w r3, #1114112 ; 0x110000 - 803695a: d226 bcs.n 80369aa + 80368c0: 687b ldr r3, [r7, #4] + 80368c2: f5b3 1f88 cmp.w r3, #1114112 ; 0x110000 + 80368c6: d226 bcs.n 8036916 bytes[0] = ((letter_uni >> 18) & 0x07) | 0xF0; - 803695c: 687b ldr r3, [r7, #4] - 803695e: 0c9b lsrs r3, r3, #18 - 8036960: b2db uxtb r3, r3 - 8036962: f003 0307 and.w r3, r3, #7 - 8036966: b2db uxtb r3, r3 - 8036968: f063 030f orn r3, r3, #15 - 803696c: b2db uxtb r3, r3 - 803696e: 723b strb r3, [r7, #8] + 80368c8: 687b ldr r3, [r7, #4] + 80368ca: 0c9b lsrs r3, r3, #18 + 80368cc: b2db uxtb r3, r3 + 80368ce: f003 0307 and.w r3, r3, #7 + 80368d2: b2db uxtb r3, r3 + 80368d4: f063 030f orn r3, r3, #15 + 80368d8: b2db uxtb r3, r3 + 80368da: 723b strb r3, [r7, #8] bytes[1] = ((letter_uni >> 12) & 0x3F) | 0x80; - 8036970: 687b ldr r3, [r7, #4] - 8036972: 0b1b lsrs r3, r3, #12 - 8036974: b2db uxtb r3, r3 - 8036976: f003 033f and.w r3, r3, #63 ; 0x3f - 803697a: b2db uxtb r3, r3 - 803697c: f063 037f orn r3, r3, #127 ; 0x7f - 8036980: b2db uxtb r3, r3 - 8036982: 727b strb r3, [r7, #9] + 80368dc: 687b ldr r3, [r7, #4] + 80368de: 0b1b lsrs r3, r3, #12 + 80368e0: b2db uxtb r3, r3 + 80368e2: f003 033f and.w r3, r3, #63 ; 0x3f + 80368e6: b2db uxtb r3, r3 + 80368e8: f063 037f orn r3, r3, #127 ; 0x7f + 80368ec: b2db uxtb r3, r3 + 80368ee: 727b strb r3, [r7, #9] bytes[2] = ((letter_uni >> 6) & 0x3F) | 0x80; - 8036984: 687b ldr r3, [r7, #4] - 8036986: 099b lsrs r3, r3, #6 - 8036988: b2db uxtb r3, r3 - 803698a: f003 033f and.w r3, r3, #63 ; 0x3f - 803698e: b2db uxtb r3, r3 - 8036990: f063 037f orn r3, r3, #127 ; 0x7f - 8036994: b2db uxtb r3, r3 - 8036996: 72bb strb r3, [r7, #10] + 80368f0: 687b ldr r3, [r7, #4] + 80368f2: 099b lsrs r3, r3, #6 + 80368f4: b2db uxtb r3, r3 + 80368f6: f003 033f and.w r3, r3, #63 ; 0x3f + 80368fa: b2db uxtb r3, r3 + 80368fc: f063 037f orn r3, r3, #127 ; 0x7f + 8036900: b2db uxtb r3, r3 + 8036902: 72bb strb r3, [r7, #10] bytes[3] = ((letter_uni >> 0) & 0x3F) | 0x80; - 8036998: 687b ldr r3, [r7, #4] - 803699a: b2db uxtb r3, r3 - 803699c: f003 033f and.w r3, r3, #63 ; 0x3f - 80369a0: b2db uxtb r3, r3 - 80369a2: f063 037f orn r3, r3, #127 ; 0x7f - 80369a6: b2db uxtb r3, r3 - 80369a8: 72fb strb r3, [r7, #11] + 8036904: 687b ldr r3, [r7, #4] + 8036906: b2db uxtb r3, r3 + 8036908: f003 033f and.w r3, r3, #63 ; 0x3f + 803690c: b2db uxtb r3, r3 + 803690e: f063 037f orn r3, r3, #127 ; 0x7f + 8036912: b2db uxtb r3, r3 + 8036914: 72fb strb r3, [r7, #11] } uint32_t * res_p = (uint32_t *)bytes; - 80369aa: f107 0308 add.w r3, r7, #8 - 80369ae: 60fb str r3, [r7, #12] + 8036916: f107 0308 add.w r3, r7, #8 + 803691a: 60fb str r3, [r7, #12] return *res_p; - 80369b0: 68fb ldr r3, [r7, #12] - 80369b2: 681b ldr r3, [r3, #0] + 803691c: 68fb ldr r3, [r7, #12] + 803691e: 681b ldr r3, [r3, #0] } - 80369b4: 4618 mov r0, r3 - 80369b6: 3714 adds r7, #20 - 80369b8: 46bd mov sp, r7 - 80369ba: bc80 pop {r7} - 80369bc: 4770 bx lr + 8036920: 4618 mov r0, r3 + 8036922: 3714 adds r7, #20 + 8036924: 46bd mov sp, r7 + 8036926: bc80 pop {r7} + 8036928: 4770 bx lr -080369be : +0803692a : * After call it will point to the next UTF-8 char in 'txt'. * NULL to use txt[0] as index * @return the decoded Unicode character or 0 on invalid UTF-8 code */ static uint32_t lv_txt_utf8_next(const char * txt, uint32_t * i) { - 80369be: b480 push {r7} - 80369c0: b085 sub sp, #20 - 80369c2: af00 add r7, sp, #0 - 80369c4: 6078 str r0, [r7, #4] - 80369c6: 6039 str r1, [r7, #0] + 803692a: b480 push {r7} + 803692c: b085 sub sp, #20 + 803692e: af00 add r7, sp, #0 + 8036930: 6078 str r0, [r7, #4] + 8036932: 6039 str r1, [r7, #0] * 00000000 00000000 00000yyy yyxxxxxx -> 110yyyyy 10xxxxxx * 00000000 00000000 zzzzyyyy yyxxxxxx -> 1110zzzz 10yyyyyy 10xxxxxx * 00000000 000wwwzz zzzzyyyy yyxxxxxx -> 11110www 10zzzzzz 10yyyyyy 10xxxxxx */ uint32_t result = 0; - 80369c8: 2300 movs r3, #0 - 80369ca: 60fb str r3, [r7, #12] + 8036934: 2300 movs r3, #0 + 8036936: 60fb str r3, [r7, #12] /*Dummy 'i' pointer is required*/ uint32_t i_tmp = 0; - 80369cc: 2300 movs r3, #0 - 80369ce: 60bb str r3, [r7, #8] + 8036938: 2300 movs r3, #0 + 803693a: 60bb str r3, [r7, #8] if(i == NULL) i = &i_tmp; - 80369d0: 683b ldr r3, [r7, #0] - 80369d2: 2b00 cmp r3, #0 - 80369d4: d102 bne.n 80369dc - 80369d6: f107 0308 add.w r3, r7, #8 - 80369da: 603b str r3, [r7, #0] + 803693c: 683b ldr r3, [r7, #0] + 803693e: 2b00 cmp r3, #0 + 8036940: d102 bne.n 8036948 + 8036942: f107 0308 add.w r3, r7, #8 + 8036946: 603b str r3, [r7, #0] /*Normal ASCII*/ if(LV_IS_ASCII(txt[*i])) { - 80369dc: 683b ldr r3, [r7, #0] - 80369de: 681b ldr r3, [r3, #0] - 80369e0: 687a ldr r2, [r7, #4] - 80369e2: 4413 add r3, r2 - 80369e4: 781b ldrb r3, [r3, #0] - 80369e6: b25b sxtb r3, r3 - 80369e8: 2b00 cmp r3, #0 - 80369ea: db0b blt.n 8036a04 + 8036948: 683b ldr r3, [r7, #0] + 803694a: 681b ldr r3, [r3, #0] + 803694c: 687a ldr r2, [r7, #4] + 803694e: 4413 add r3, r2 + 8036950: 781b ldrb r3, [r3, #0] + 8036952: b25b sxtb r3, r3 + 8036954: 2b00 cmp r3, #0 + 8036956: db0b blt.n 8036970 result = txt[*i]; - 80369ec: 683b ldr r3, [r7, #0] - 80369ee: 681b ldr r3, [r3, #0] - 80369f0: 687a ldr r2, [r7, #4] - 80369f2: 4413 add r3, r2 - 80369f4: 781b ldrb r3, [r3, #0] - 80369f6: 60fb str r3, [r7, #12] + 8036958: 683b ldr r3, [r7, #0] + 803695a: 681b ldr r3, [r3, #0] + 803695c: 687a ldr r2, [r7, #4] + 803695e: 4413 add r3, r2 + 8036960: 781b ldrb r3, [r3, #0] + 8036962: 60fb str r3, [r7, #12] (*i)++; - 80369f8: 683b ldr r3, [r7, #0] - 80369fa: 681b ldr r3, [r3, #0] - 80369fc: 1c5a adds r2, r3, #1 - 80369fe: 683b ldr r3, [r7, #0] - 8036a00: 601a str r2, [r3, #0] - 8036a02: e0ea b.n 8036bda + 8036964: 683b ldr r3, [r7, #0] + 8036966: 681b ldr r3, [r3, #0] + 8036968: 1c5a adds r2, r3, #1 + 803696a: 683b ldr r3, [r7, #0] + 803696c: 601a str r2, [r3, #0] + 803696e: e0ea b.n 8036b46 } /*Real UTF-8 decode*/ else { /*2 bytes UTF-8 code*/ if(LV_IS_2BYTES_UTF8_CODE(txt[*i])) { - 8036a04: 683b ldr r3, [r7, #0] - 8036a06: 681b ldr r3, [r3, #0] - 8036a08: 687a ldr r2, [r7, #4] - 8036a0a: 4413 add r3, r2 - 8036a0c: 781b ldrb r3, [r3, #0] - 8036a0e: f003 03e0 and.w r3, r3, #224 ; 0xe0 - 8036a12: 2bc0 cmp r3, #192 ; 0xc0 - 8036a14: d128 bne.n 8036a68 + 8036970: 683b ldr r3, [r7, #0] + 8036972: 681b ldr r3, [r3, #0] + 8036974: 687a ldr r2, [r7, #4] + 8036976: 4413 add r3, r2 + 8036978: 781b ldrb r3, [r3, #0] + 803697a: f003 03e0 and.w r3, r3, #224 ; 0xe0 + 803697e: 2bc0 cmp r3, #192 ; 0xc0 + 8036980: d128 bne.n 80369d4 result = (uint32_t)(txt[*i] & 0x1F) << 6; + 8036982: 683b ldr r3, [r7, #0] + 8036984: 681b ldr r3, [r3, #0] + 8036986: 687a ldr r2, [r7, #4] + 8036988: 4413 add r3, r2 + 803698a: 781b ldrb r3, [r3, #0] + 803698c: 019b lsls r3, r3, #6 + 803698e: f403 63f8 and.w r3, r3, #1984 ; 0x7c0 + 8036992: 60fb str r3, [r7, #12] + (*i)++; + 8036994: 683b ldr r3, [r7, #0] + 8036996: 681b ldr r3, [r3, #0] + 8036998: 1c5a adds r2, r3, #1 + 803699a: 683b ldr r3, [r7, #0] + 803699c: 601a str r2, [r3, #0] + if(LV_IS_INVALID_UTF8_CODE(txt[*i])) return 0; + 803699e: 683b ldr r3, [r7, #0] + 80369a0: 681b ldr r3, [r3, #0] + 80369a2: 687a ldr r2, [r7, #4] + 80369a4: 4413 add r3, r2 + 80369a6: 781b ldrb r3, [r3, #0] + 80369a8: f003 03c0 and.w r3, r3, #192 ; 0xc0 + 80369ac: 2b80 cmp r3, #128 ; 0x80 + 80369ae: d001 beq.n 80369b4 + 80369b0: 2300 movs r3, #0 + 80369b2: e0c9 b.n 8036b48 + result += (txt[*i] & 0x3F); + 80369b4: 683b ldr r3, [r7, #0] + 80369b6: 681b ldr r3, [r3, #0] + 80369b8: 687a ldr r2, [r7, #4] + 80369ba: 4413 add r3, r2 + 80369bc: 781b ldrb r3, [r3, #0] + 80369be: f003 033f and.w r3, r3, #63 ; 0x3f + 80369c2: 68fa ldr r2, [r7, #12] + 80369c4: 4413 add r3, r2 + 80369c6: 60fb str r3, [r7, #12] + (*i)++; + 80369c8: 683b ldr r3, [r7, #0] + 80369ca: 681b ldr r3, [r3, #0] + 80369cc: 1c5a adds r2, r3, #1 + 80369ce: 683b ldr r3, [r7, #0] + 80369d0: 601a str r2, [r3, #0] + 80369d2: e0b8 b.n 8036b46 + } + /*3 bytes UTF-8 code*/ + else if(LV_IS_3BYTES_UTF8_CODE(txt[*i])) { + 80369d4: 683b ldr r3, [r7, #0] + 80369d6: 681b ldr r3, [r3, #0] + 80369d8: 687a ldr r2, [r7, #4] + 80369da: 4413 add r3, r2 + 80369dc: 781b ldrb r3, [r3, #0] + 80369de: f003 03f0 and.w r3, r3, #240 ; 0xf0 + 80369e2: 2be0 cmp r3, #224 ; 0xe0 + 80369e4: d142 bne.n 8036a6c + result = (uint32_t)(txt[*i] & 0x0F) << 12; + 80369e6: 683b ldr r3, [r7, #0] + 80369e8: 681b ldr r3, [r3, #0] + 80369ea: 687a ldr r2, [r7, #4] + 80369ec: 4413 add r3, r2 + 80369ee: 781b ldrb r3, [r3, #0] + 80369f0: 031b lsls r3, r3, #12 + 80369f2: b29b uxth r3, r3 + 80369f4: 60fb str r3, [r7, #12] + (*i)++; + 80369f6: 683b ldr r3, [r7, #0] + 80369f8: 681b ldr r3, [r3, #0] + 80369fa: 1c5a adds r2, r3, #1 + 80369fc: 683b ldr r3, [r7, #0] + 80369fe: 601a str r2, [r3, #0] + + if(LV_IS_INVALID_UTF8_CODE(txt[*i])) return 0; + 8036a00: 683b ldr r3, [r7, #0] + 8036a02: 681b ldr r3, [r3, #0] + 8036a04: 687a ldr r2, [r7, #4] + 8036a06: 4413 add r3, r2 + 8036a08: 781b ldrb r3, [r3, #0] + 8036a0a: f003 03c0 and.w r3, r3, #192 ; 0xc0 + 8036a0e: 2b80 cmp r3, #128 ; 0x80 + 8036a10: d001 beq.n 8036a16 + 8036a12: 2300 movs r3, #0 + 8036a14: e098 b.n 8036b48 + result += (uint32_t)(txt[*i] & 0x3F) << 6; 8036a16: 683b ldr r3, [r7, #0] 8036a18: 681b ldr r3, [r3, #0] 8036a1a: 687a ldr r2, [r7, #4] 8036a1c: 4413 add r3, r2 8036a1e: 781b ldrb r3, [r3, #0] 8036a20: 019b lsls r3, r3, #6 - 8036a22: f403 63f8 and.w r3, r3, #1984 ; 0x7c0 - 8036a26: 60fb str r3, [r7, #12] + 8036a22: f403 637c and.w r3, r3, #4032 ; 0xfc0 + 8036a26: 68fa ldr r2, [r7, #12] + 8036a28: 4413 add r3, r2 + 8036a2a: 60fb str r3, [r7, #12] (*i)++; - 8036a28: 683b ldr r3, [r7, #0] - 8036a2a: 681b ldr r3, [r3, #0] - 8036a2c: 1c5a adds r2, r3, #1 - 8036a2e: 683b ldr r3, [r7, #0] - 8036a30: 601a str r2, [r3, #0] - if(LV_IS_INVALID_UTF8_CODE(txt[*i])) return 0; + 8036a2c: 683b ldr r3, [r7, #0] + 8036a2e: 681b ldr r3, [r3, #0] + 8036a30: 1c5a adds r2, r3, #1 8036a32: 683b ldr r3, [r7, #0] - 8036a34: 681b ldr r3, [r3, #0] - 8036a36: 687a ldr r2, [r7, #4] - 8036a38: 4413 add r3, r2 - 8036a3a: 781b ldrb r3, [r3, #0] - 8036a3c: f003 03c0 and.w r3, r3, #192 ; 0xc0 - 8036a40: 2b80 cmp r3, #128 ; 0x80 - 8036a42: d001 beq.n 8036a48 - 8036a44: 2300 movs r3, #0 - 8036a46: e0c9 b.n 8036bdc - result += (txt[*i] & 0x3F); - 8036a48: 683b ldr r3, [r7, #0] - 8036a4a: 681b ldr r3, [r3, #0] - 8036a4c: 687a ldr r2, [r7, #4] - 8036a4e: 4413 add r3, r2 - 8036a50: 781b ldrb r3, [r3, #0] - 8036a52: f003 033f and.w r3, r3, #63 ; 0x3f - 8036a56: 68fa ldr r2, [r7, #12] - 8036a58: 4413 add r3, r2 - 8036a5a: 60fb str r3, [r7, #12] - (*i)++; - 8036a5c: 683b ldr r3, [r7, #0] - 8036a5e: 681b ldr r3, [r3, #0] - 8036a60: 1c5a adds r2, r3, #1 - 8036a62: 683b ldr r3, [r7, #0] - 8036a64: 601a str r2, [r3, #0] - 8036a66: e0b8 b.n 8036bda - } - /*3 bytes UTF-8 code*/ - else if(LV_IS_3BYTES_UTF8_CODE(txt[*i])) { - 8036a68: 683b ldr r3, [r7, #0] - 8036a6a: 681b ldr r3, [r3, #0] - 8036a6c: 687a ldr r2, [r7, #4] - 8036a6e: 4413 add r3, r2 - 8036a70: 781b ldrb r3, [r3, #0] - 8036a72: f003 03f0 and.w r3, r3, #240 ; 0xf0 - 8036a76: 2be0 cmp r3, #224 ; 0xe0 - 8036a78: d142 bne.n 8036b00 - result = (uint32_t)(txt[*i] & 0x0F) << 12; - 8036a7a: 683b ldr r3, [r7, #0] - 8036a7c: 681b ldr r3, [r3, #0] - 8036a7e: 687a ldr r2, [r7, #4] - 8036a80: 4413 add r3, r2 - 8036a82: 781b ldrb r3, [r3, #0] - 8036a84: 031b lsls r3, r3, #12 - 8036a86: b29b uxth r3, r3 - 8036a88: 60fb str r3, [r7, #12] - (*i)++; - 8036a8a: 683b ldr r3, [r7, #0] - 8036a8c: 681b ldr r3, [r3, #0] - 8036a8e: 1c5a adds r2, r3, #1 - 8036a90: 683b ldr r3, [r7, #0] - 8036a92: 601a str r2, [r3, #0] + 8036a34: 601a str r2, [r3, #0] if(LV_IS_INVALID_UTF8_CODE(txt[*i])) return 0; - 8036a94: 683b ldr r3, [r7, #0] - 8036a96: 681b ldr r3, [r3, #0] - 8036a98: 687a ldr r2, [r7, #4] - 8036a9a: 4413 add r3, r2 - 8036a9c: 781b ldrb r3, [r3, #0] - 8036a9e: f003 03c0 and.w r3, r3, #192 ; 0xc0 - 8036aa2: 2b80 cmp r3, #128 ; 0x80 - 8036aa4: d001 beq.n 8036aaa - 8036aa6: 2300 movs r3, #0 - 8036aa8: e098 b.n 8036bdc - result += (uint32_t)(txt[*i] & 0x3F) << 6; - 8036aaa: 683b ldr r3, [r7, #0] - 8036aac: 681b ldr r3, [r3, #0] - 8036aae: 687a ldr r2, [r7, #4] - 8036ab0: 4413 add r3, r2 - 8036ab2: 781b ldrb r3, [r3, #0] - 8036ab4: 019b lsls r3, r3, #6 - 8036ab6: f403 637c and.w r3, r3, #4032 ; 0xfc0 - 8036aba: 68fa ldr r2, [r7, #12] - 8036abc: 4413 add r3, r2 - 8036abe: 60fb str r3, [r7, #12] - (*i)++; - 8036ac0: 683b ldr r3, [r7, #0] - 8036ac2: 681b ldr r3, [r3, #0] - 8036ac4: 1c5a adds r2, r3, #1 - 8036ac6: 683b ldr r3, [r7, #0] - 8036ac8: 601a str r2, [r3, #0] - - if(LV_IS_INVALID_UTF8_CODE(txt[*i])) return 0; - 8036aca: 683b ldr r3, [r7, #0] - 8036acc: 681b ldr r3, [r3, #0] - 8036ace: 687a ldr r2, [r7, #4] - 8036ad0: 4413 add r3, r2 - 8036ad2: 781b ldrb r3, [r3, #0] - 8036ad4: f003 03c0 and.w r3, r3, #192 ; 0xc0 - 8036ad8: 2b80 cmp r3, #128 ; 0x80 - 8036ada: d001 beq.n 8036ae0 - 8036adc: 2300 movs r3, #0 - 8036ade: e07d b.n 8036bdc + 8036a36: 683b ldr r3, [r7, #0] + 8036a38: 681b ldr r3, [r3, #0] + 8036a3a: 687a ldr r2, [r7, #4] + 8036a3c: 4413 add r3, r2 + 8036a3e: 781b ldrb r3, [r3, #0] + 8036a40: f003 03c0 and.w r3, r3, #192 ; 0xc0 + 8036a44: 2b80 cmp r3, #128 ; 0x80 + 8036a46: d001 beq.n 8036a4c + 8036a48: 2300 movs r3, #0 + 8036a4a: e07d b.n 8036b48 result += (txt[*i] & 0x3F); - 8036ae0: 683b ldr r3, [r7, #0] - 8036ae2: 681b ldr r3, [r3, #0] - 8036ae4: 687a ldr r2, [r7, #4] - 8036ae6: 4413 add r3, r2 - 8036ae8: 781b ldrb r3, [r3, #0] - 8036aea: f003 033f and.w r3, r3, #63 ; 0x3f - 8036aee: 68fa ldr r2, [r7, #12] - 8036af0: 4413 add r3, r2 - 8036af2: 60fb str r3, [r7, #12] + 8036a4c: 683b ldr r3, [r7, #0] + 8036a4e: 681b ldr r3, [r3, #0] + 8036a50: 687a ldr r2, [r7, #4] + 8036a52: 4413 add r3, r2 + 8036a54: 781b ldrb r3, [r3, #0] + 8036a56: f003 033f and.w r3, r3, #63 ; 0x3f + 8036a5a: 68fa ldr r2, [r7, #12] + 8036a5c: 4413 add r3, r2 + 8036a5e: 60fb str r3, [r7, #12] (*i)++; - 8036af4: 683b ldr r3, [r7, #0] - 8036af6: 681b ldr r3, [r3, #0] - 8036af8: 1c5a adds r2, r3, #1 - 8036afa: 683b ldr r3, [r7, #0] - 8036afc: 601a str r2, [r3, #0] - 8036afe: e06c b.n 8036bda + 8036a60: 683b ldr r3, [r7, #0] + 8036a62: 681b ldr r3, [r3, #0] + 8036a64: 1c5a adds r2, r3, #1 + 8036a66: 683b ldr r3, [r7, #0] + 8036a68: 601a str r2, [r3, #0] + 8036a6a: e06c b.n 8036b46 } /*4 bytes UTF-8 code*/ else if(LV_IS_4BYTES_UTF8_CODE(txt[*i])) { - 8036b00: 683b ldr r3, [r7, #0] - 8036b02: 681b ldr r3, [r3, #0] - 8036b04: 687a ldr r2, [r7, #4] - 8036b06: 4413 add r3, r2 - 8036b08: 781b ldrb r3, [r3, #0] - 8036b0a: f003 03f8 and.w r3, r3, #248 ; 0xf8 - 8036b0e: 2bf0 cmp r3, #240 ; 0xf0 - 8036b10: d15e bne.n 8036bd0 + 8036a6c: 683b ldr r3, [r7, #0] + 8036a6e: 681b ldr r3, [r3, #0] + 8036a70: 687a ldr r2, [r7, #4] + 8036a72: 4413 add r3, r2 + 8036a74: 781b ldrb r3, [r3, #0] + 8036a76: f003 03f8 and.w r3, r3, #248 ; 0xf8 + 8036a7a: 2bf0 cmp r3, #240 ; 0xf0 + 8036a7c: d15e bne.n 8036b3c result = (uint32_t)(txt[*i] & 0x07) << 18; - 8036b12: 683b ldr r3, [r7, #0] - 8036b14: 681b ldr r3, [r3, #0] - 8036b16: 687a ldr r2, [r7, #4] - 8036b18: 4413 add r3, r2 - 8036b1a: 781b ldrb r3, [r3, #0] - 8036b1c: 049b lsls r3, r3, #18 - 8036b1e: f403 13e0 and.w r3, r3, #1835008 ; 0x1c0000 - 8036b22: 60fb str r3, [r7, #12] + 8036a7e: 683b ldr r3, [r7, #0] + 8036a80: 681b ldr r3, [r3, #0] + 8036a82: 687a ldr r2, [r7, #4] + 8036a84: 4413 add r3, r2 + 8036a86: 781b ldrb r3, [r3, #0] + 8036a88: 049b lsls r3, r3, #18 + 8036a8a: f403 13e0 and.w r3, r3, #1835008 ; 0x1c0000 + 8036a8e: 60fb str r3, [r7, #12] (*i)++; - 8036b24: 683b ldr r3, [r7, #0] - 8036b26: 681b ldr r3, [r3, #0] - 8036b28: 1c5a adds r2, r3, #1 - 8036b2a: 683b ldr r3, [r7, #0] - 8036b2c: 601a str r2, [r3, #0] + 8036a90: 683b ldr r3, [r7, #0] + 8036a92: 681b ldr r3, [r3, #0] + 8036a94: 1c5a adds r2, r3, #1 + 8036a96: 683b ldr r3, [r7, #0] + 8036a98: 601a str r2, [r3, #0] if(LV_IS_INVALID_UTF8_CODE(txt[*i])) return 0; - 8036b2e: 683b ldr r3, [r7, #0] - 8036b30: 681b ldr r3, [r3, #0] - 8036b32: 687a ldr r2, [r7, #4] - 8036b34: 4413 add r3, r2 - 8036b36: 781b ldrb r3, [r3, #0] - 8036b38: f003 03c0 and.w r3, r3, #192 ; 0xc0 - 8036b3c: 2b80 cmp r3, #128 ; 0x80 - 8036b3e: d001 beq.n 8036b44 - 8036b40: 2300 movs r3, #0 - 8036b42: e04b b.n 8036bdc + 8036a9a: 683b ldr r3, [r7, #0] + 8036a9c: 681b ldr r3, [r3, #0] + 8036a9e: 687a ldr r2, [r7, #4] + 8036aa0: 4413 add r3, r2 + 8036aa2: 781b ldrb r3, [r3, #0] + 8036aa4: f003 03c0 and.w r3, r3, #192 ; 0xc0 + 8036aa8: 2b80 cmp r3, #128 ; 0x80 + 8036aaa: d001 beq.n 8036ab0 + 8036aac: 2300 movs r3, #0 + 8036aae: e04b b.n 8036b48 result += (uint32_t)(txt[*i] & 0x3F) << 12; - 8036b44: 683b ldr r3, [r7, #0] - 8036b46: 681b ldr r3, [r3, #0] - 8036b48: 687a ldr r2, [r7, #4] - 8036b4a: 4413 add r3, r2 - 8036b4c: 781b ldrb r3, [r3, #0] - 8036b4e: 031b lsls r3, r3, #12 - 8036b50: f403 337c and.w r3, r3, #258048 ; 0x3f000 - 8036b54: 68fa ldr r2, [r7, #12] - 8036b56: 4413 add r3, r2 - 8036b58: 60fb str r3, [r7, #12] + 8036ab0: 683b ldr r3, [r7, #0] + 8036ab2: 681b ldr r3, [r3, #0] + 8036ab4: 687a ldr r2, [r7, #4] + 8036ab6: 4413 add r3, r2 + 8036ab8: 781b ldrb r3, [r3, #0] + 8036aba: 031b lsls r3, r3, #12 + 8036abc: f403 337c and.w r3, r3, #258048 ; 0x3f000 + 8036ac0: 68fa ldr r2, [r7, #12] + 8036ac2: 4413 add r3, r2 + 8036ac4: 60fb str r3, [r7, #12] (*i)++; - 8036b5a: 683b ldr r3, [r7, #0] - 8036b5c: 681b ldr r3, [r3, #0] - 8036b5e: 1c5a adds r2, r3, #1 - 8036b60: 683b ldr r3, [r7, #0] - 8036b62: 601a str r2, [r3, #0] + 8036ac6: 683b ldr r3, [r7, #0] + 8036ac8: 681b ldr r3, [r3, #0] + 8036aca: 1c5a adds r2, r3, #1 + 8036acc: 683b ldr r3, [r7, #0] + 8036ace: 601a str r2, [r3, #0] if(LV_IS_INVALID_UTF8_CODE(txt[*i])) return 0; - 8036b64: 683b ldr r3, [r7, #0] - 8036b66: 681b ldr r3, [r3, #0] - 8036b68: 687a ldr r2, [r7, #4] - 8036b6a: 4413 add r3, r2 - 8036b6c: 781b ldrb r3, [r3, #0] - 8036b6e: f003 03c0 and.w r3, r3, #192 ; 0xc0 - 8036b72: 2b80 cmp r3, #128 ; 0x80 - 8036b74: d001 beq.n 8036b7a - 8036b76: 2300 movs r3, #0 - 8036b78: e030 b.n 8036bdc + 8036ad0: 683b ldr r3, [r7, #0] + 8036ad2: 681b ldr r3, [r3, #0] + 8036ad4: 687a ldr r2, [r7, #4] + 8036ad6: 4413 add r3, r2 + 8036ad8: 781b ldrb r3, [r3, #0] + 8036ada: f003 03c0 and.w r3, r3, #192 ; 0xc0 + 8036ade: 2b80 cmp r3, #128 ; 0x80 + 8036ae0: d001 beq.n 8036ae6 + 8036ae2: 2300 movs r3, #0 + 8036ae4: e030 b.n 8036b48 result += (uint32_t)(txt[*i] & 0x3F) << 6; - 8036b7a: 683b ldr r3, [r7, #0] - 8036b7c: 681b ldr r3, [r3, #0] - 8036b7e: 687a ldr r2, [r7, #4] - 8036b80: 4413 add r3, r2 - 8036b82: 781b ldrb r3, [r3, #0] - 8036b84: 019b lsls r3, r3, #6 - 8036b86: f403 637c and.w r3, r3, #4032 ; 0xfc0 - 8036b8a: 68fa ldr r2, [r7, #12] - 8036b8c: 4413 add r3, r2 - 8036b8e: 60fb str r3, [r7, #12] + 8036ae6: 683b ldr r3, [r7, #0] + 8036ae8: 681b ldr r3, [r3, #0] + 8036aea: 687a ldr r2, [r7, #4] + 8036aec: 4413 add r3, r2 + 8036aee: 781b ldrb r3, [r3, #0] + 8036af0: 019b lsls r3, r3, #6 + 8036af2: f403 637c and.w r3, r3, #4032 ; 0xfc0 + 8036af6: 68fa ldr r2, [r7, #12] + 8036af8: 4413 add r3, r2 + 8036afa: 60fb str r3, [r7, #12] (*i)++; - 8036b90: 683b ldr r3, [r7, #0] - 8036b92: 681b ldr r3, [r3, #0] - 8036b94: 1c5a adds r2, r3, #1 - 8036b96: 683b ldr r3, [r7, #0] - 8036b98: 601a str r2, [r3, #0] + 8036afc: 683b ldr r3, [r7, #0] + 8036afe: 681b ldr r3, [r3, #0] + 8036b00: 1c5a adds r2, r3, #1 + 8036b02: 683b ldr r3, [r7, #0] + 8036b04: 601a str r2, [r3, #0] if(LV_IS_INVALID_UTF8_CODE(txt[*i])) return 0; - 8036b9a: 683b ldr r3, [r7, #0] - 8036b9c: 681b ldr r3, [r3, #0] - 8036b9e: 687a ldr r2, [r7, #4] - 8036ba0: 4413 add r3, r2 - 8036ba2: 781b ldrb r3, [r3, #0] - 8036ba4: f003 03c0 and.w r3, r3, #192 ; 0xc0 - 8036ba8: 2b80 cmp r3, #128 ; 0x80 - 8036baa: d001 beq.n 8036bb0 - 8036bac: 2300 movs r3, #0 - 8036bae: e015 b.n 8036bdc + 8036b06: 683b ldr r3, [r7, #0] + 8036b08: 681b ldr r3, [r3, #0] + 8036b0a: 687a ldr r2, [r7, #4] + 8036b0c: 4413 add r3, r2 + 8036b0e: 781b ldrb r3, [r3, #0] + 8036b10: f003 03c0 and.w r3, r3, #192 ; 0xc0 + 8036b14: 2b80 cmp r3, #128 ; 0x80 + 8036b16: d001 beq.n 8036b1c + 8036b18: 2300 movs r3, #0 + 8036b1a: e015 b.n 8036b48 result += txt[*i] & 0x3F; - 8036bb0: 683b ldr r3, [r7, #0] - 8036bb2: 681b ldr r3, [r3, #0] - 8036bb4: 687a ldr r2, [r7, #4] - 8036bb6: 4413 add r3, r2 - 8036bb8: 781b ldrb r3, [r3, #0] - 8036bba: f003 033f and.w r3, r3, #63 ; 0x3f - 8036bbe: 68fa ldr r2, [r7, #12] - 8036bc0: 4413 add r3, r2 - 8036bc2: 60fb str r3, [r7, #12] + 8036b1c: 683b ldr r3, [r7, #0] + 8036b1e: 681b ldr r3, [r3, #0] + 8036b20: 687a ldr r2, [r7, #4] + 8036b22: 4413 add r3, r2 + 8036b24: 781b ldrb r3, [r3, #0] + 8036b26: f003 033f and.w r3, r3, #63 ; 0x3f + 8036b2a: 68fa ldr r2, [r7, #12] + 8036b2c: 4413 add r3, r2 + 8036b2e: 60fb str r3, [r7, #12] (*i)++; - 8036bc4: 683b ldr r3, [r7, #0] - 8036bc6: 681b ldr r3, [r3, #0] - 8036bc8: 1c5a adds r2, r3, #1 - 8036bca: 683b ldr r3, [r7, #0] - 8036bcc: 601a str r2, [r3, #0] - 8036bce: e004 b.n 8036bda + 8036b30: 683b ldr r3, [r7, #0] + 8036b32: 681b ldr r3, [r3, #0] + 8036b34: 1c5a adds r2, r3, #1 + 8036b36: 683b ldr r3, [r7, #0] + 8036b38: 601a str r2, [r3, #0] + 8036b3a: e004 b.n 8036b46 } else { (*i)++; /*Not UTF-8 char. Go the next.*/ - 8036bd0: 683b ldr r3, [r7, #0] - 8036bd2: 681b ldr r3, [r3, #0] - 8036bd4: 1c5a adds r2, r3, #1 - 8036bd6: 683b ldr r3, [r7, #0] - 8036bd8: 601a str r2, [r3, #0] + 8036b3c: 683b ldr r3, [r7, #0] + 8036b3e: 681b ldr r3, [r3, #0] + 8036b40: 1c5a adds r2, r3, #1 + 8036b42: 683b ldr r3, [r7, #0] + 8036b44: 601a str r2, [r3, #0] } } return result; - 8036bda: 68fb ldr r3, [r7, #12] + 8036b46: 68fb ldr r3, [r7, #12] } - 8036bdc: 4618 mov r0, r3 - 8036bde: 3714 adds r7, #20 - 8036be0: 46bd mov sp, r7 - 8036be2: bc80 pop {r7} - 8036be4: 4770 bx lr + 8036b48: 4618 mov r0, r3 + 8036b4a: 3714 adds r7, #20 + 8036b4c: 46bd mov sp, r7 + 8036b4e: bc80 pop {r7} + 8036b50: 4770 bx lr ... -08036be8 : +08036b54 : * @param i start byte index in 'txt' where to start. After the call it will point to the previous * UTF-8 char in 'txt'. * @return the decoded Unicode character or 0 on invalid UTF-8 code */ static uint32_t lv_txt_utf8_prev(const char * txt, uint32_t * i) { - 8036be8: b580 push {r7, lr} - 8036bea: b086 sub sp, #24 - 8036bec: af00 add r7, sp, #0 - 8036bee: 6078 str r0, [r7, #4] - 8036bf0: 6039 str r1, [r7, #0] + 8036b54: b580 push {r7, lr} + 8036b56: b086 sub sp, #24 + 8036b58: af00 add r7, sp, #0 + 8036b5a: 6078 str r0, [r7, #4] + 8036b5c: 6039 str r1, [r7, #0] uint8_t c_size; uint8_t cnt = 0; - 8036bf2: 2300 movs r3, #0 - 8036bf4: 75fb strb r3, [r7, #23] + 8036b5e: 2300 movs r3, #0 + 8036b60: 75fb strb r3, [r7, #23] /*Try to find a !0 long UTF-8 char by stepping one character back*/ (*i)--; - 8036bf6: 683b ldr r3, [r7, #0] - 8036bf8: 681b ldr r3, [r3, #0] - 8036bfa: 1e5a subs r2, r3, #1 - 8036bfc: 683b ldr r3, [r7, #0] - 8036bfe: 601a str r2, [r3, #0] + 8036b62: 683b ldr r3, [r7, #0] + 8036b64: 681b ldr r3, [r3, #0] + 8036b66: 1e5a subs r2, r3, #1 + 8036b68: 683b ldr r3, [r7, #0] + 8036b6a: 601a str r2, [r3, #0] do { if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/ - 8036c00: 7dfb ldrb r3, [r7, #23] - 8036c02: 2b03 cmp r3, #3 - 8036c04: d901 bls.n 8036c0a - 8036c06: 2300 movs r3, #0 - 8036c08: e02a b.n 8036c60 + 8036b6c: 7dfb ldrb r3, [r7, #23] + 8036b6e: 2b03 cmp r3, #3 + 8036b70: d901 bls.n 8036b76 + 8036b72: 2300 movs r3, #0 + 8036b74: e02a b.n 8036bcc c_size = _lv_txt_encoded_size(&txt[*i]); - 8036c0a: 4b17 ldr r3, [pc, #92] ; (8036c68 ) - 8036c0c: 681b ldr r3, [r3, #0] - 8036c0e: 683a ldr r2, [r7, #0] - 8036c10: 6812 ldr r2, [r2, #0] - 8036c12: 6879 ldr r1, [r7, #4] - 8036c14: 440a add r2, r1 - 8036c16: 4610 mov r0, r2 - 8036c18: 4798 blx r3 - 8036c1a: 4603 mov r3, r0 - 8036c1c: 75bb strb r3, [r7, #22] + 8036b76: 4b17 ldr r3, [pc, #92] ; (8036bd4 ) + 8036b78: 681b ldr r3, [r3, #0] + 8036b7a: 683a ldr r2, [r7, #0] + 8036b7c: 6812 ldr r2, [r2, #0] + 8036b7e: 6879 ldr r1, [r7, #4] + 8036b80: 440a add r2, r1 + 8036b82: 4610 mov r0, r2 + 8036b84: 4798 blx r3 + 8036b86: 4603 mov r3, r0 + 8036b88: 75bb strb r3, [r7, #22] if(c_size == 0) { - 8036c1e: 7dbb ldrb r3, [r7, #22] - 8036c20: 2b00 cmp r3, #0 - 8036c22: d10b bne.n 8036c3c + 8036b8a: 7dbb ldrb r3, [r7, #22] + 8036b8c: 2b00 cmp r3, #0 + 8036b8e: d10b bne.n 8036ba8 if(*i != 0) - 8036c24: 683b ldr r3, [r7, #0] - 8036c26: 681b ldr r3, [r3, #0] - 8036c28: 2b00 cmp r3, #0 - 8036c2a: d005 beq.n 8036c38 + 8036b90: 683b ldr r3, [r7, #0] + 8036b92: 681b ldr r3, [r3, #0] + 8036b94: 2b00 cmp r3, #0 + 8036b96: d005 beq.n 8036ba4 (*i)--; - 8036c2c: 683b ldr r3, [r7, #0] - 8036c2e: 681b ldr r3, [r3, #0] - 8036c30: 1e5a subs r2, r3, #1 - 8036c32: 683b ldr r3, [r7, #0] - 8036c34: 601a str r2, [r3, #0] - 8036c36: e001 b.n 8036c3c + 8036b98: 683b ldr r3, [r7, #0] + 8036b9a: 681b ldr r3, [r3, #0] + 8036b9c: 1e5a subs r2, r3, #1 + 8036b9e: 683b ldr r3, [r7, #0] + 8036ba0: 601a str r2, [r3, #0] + 8036ba2: e001 b.n 8036ba8 else return 0; - 8036c38: 2300 movs r3, #0 - 8036c3a: e011 b.n 8036c60 + 8036ba4: 2300 movs r3, #0 + 8036ba6: e011 b.n 8036bcc } cnt++; - 8036c3c: 7dfb ldrb r3, [r7, #23] - 8036c3e: 3301 adds r3, #1 - 8036c40: 75fb strb r3, [r7, #23] + 8036ba8: 7dfb ldrb r3, [r7, #23] + 8036baa: 3301 adds r3, #1 + 8036bac: 75fb strb r3, [r7, #23] } while(c_size == 0); - 8036c42: 7dbb ldrb r3, [r7, #22] - 8036c44: 2b00 cmp r3, #0 - 8036c46: d0db beq.n 8036c00 + 8036bae: 7dbb ldrb r3, [r7, #22] + 8036bb0: 2b00 cmp r3, #0 + 8036bb2: d0db beq.n 8036b6c uint32_t i_tmp = *i; - 8036c48: 683b ldr r3, [r7, #0] - 8036c4a: 681b ldr r3, [r3, #0] - 8036c4c: 60fb str r3, [r7, #12] + 8036bb4: 683b ldr r3, [r7, #0] + 8036bb6: 681b ldr r3, [r3, #0] + 8036bb8: 60fb str r3, [r7, #12] uint32_t letter = _lv_txt_encoded_next(txt, &i_tmp); /*Character found, get it*/ - 8036c4e: 4b07 ldr r3, [pc, #28] ; (8036c6c ) - 8036c50: 681b ldr r3, [r3, #0] - 8036c52: f107 020c add.w r2, r7, #12 - 8036c56: 4611 mov r1, r2 - 8036c58: 6878 ldr r0, [r7, #4] - 8036c5a: 4798 blx r3 - 8036c5c: 6138 str r0, [r7, #16] + 8036bba: 4b07 ldr r3, [pc, #28] ; (8036bd8 ) + 8036bbc: 681b ldr r3, [r3, #0] + 8036bbe: f107 020c add.w r2, r7, #12 + 8036bc2: 4611 mov r1, r2 + 8036bc4: 6878 ldr r0, [r7, #4] + 8036bc6: 4798 blx r3 + 8036bc8: 6138 str r0, [r7, #16] return letter; - 8036c5e: 693b ldr r3, [r7, #16] + 8036bca: 693b ldr r3, [r7, #16] } - 8036c60: 4618 mov r0, r3 - 8036c62: 3718 adds r7, #24 - 8036c64: 46bd mov sp, r7 - 8036c66: bd80 pop {r7, pc} - 8036c68: 200000e4 .word 0x200000e4 - 8036c6c: 200000ec .word 0x200000ec + 8036bcc: 4618 mov r0, r3 + 8036bce: 3718 adds r7, #24 + 8036bd0: 46bd mov sp, r7 + 8036bd2: bd80 pop {r7, pc} + 8036bd4: 200000e4 .word 0x200000e4 + 8036bd8: 200000ec .word 0x200000ec -08036c70 : +08036bdc : * @param txt a '\0' terminated UTF-8 string * @param utf8_id character index * @return byte index of the 'utf8_id'th letter */ static uint32_t lv_txt_utf8_get_byte_id(const char * txt, uint32_t utf8_id) { - 8036c70: b580 push {r7, lr} - 8036c72: b086 sub sp, #24 - 8036c74: af00 add r7, sp, #0 - 8036c76: 6078 str r0, [r7, #4] - 8036c78: 6039 str r1, [r7, #0] + 8036bdc: b580 push {r7, lr} + 8036bde: b086 sub sp, #24 + 8036be0: af00 add r7, sp, #0 + 8036be2: 6078 str r0, [r7, #4] + 8036be4: 6039 str r1, [r7, #0] uint32_t i; uint32_t byte_cnt = 0; - 8036c7a: 2300 movs r3, #0 - 8036c7c: 613b str r3, [r7, #16] + 8036be6: 2300 movs r3, #0 + 8036be8: 613b str r3, [r7, #16] for(i = 0; i < utf8_id && txt[byte_cnt] != '\0'; i++) { - 8036c7e: 2300 movs r3, #0 - 8036c80: 617b str r3, [r7, #20] - 8036c82: e014 b.n 8036cae + 8036bea: 2300 movs r3, #0 + 8036bec: 617b str r3, [r7, #20] + 8036bee: e014 b.n 8036c1a uint8_t c_size = _lv_txt_encoded_size(&txt[byte_cnt]); - 8036c84: 4b11 ldr r3, [pc, #68] ; (8036ccc ) - 8036c86: 681b ldr r3, [r3, #0] - 8036c88: 6879 ldr r1, [r7, #4] - 8036c8a: 693a ldr r2, [r7, #16] - 8036c8c: 440a add r2, r1 - 8036c8e: 4610 mov r0, r2 - 8036c90: 4798 blx r3 - 8036c92: 4603 mov r3, r0 - 8036c94: 73fb strb r3, [r7, #15] + 8036bf0: 4b11 ldr r3, [pc, #68] ; (8036c38 ) + 8036bf2: 681b ldr r3, [r3, #0] + 8036bf4: 6879 ldr r1, [r7, #4] + 8036bf6: 693a ldr r2, [r7, #16] + 8036bf8: 440a add r2, r1 + 8036bfa: 4610 mov r0, r2 + 8036bfc: 4798 blx r3 + 8036bfe: 4603 mov r3, r0 + 8036c00: 73fb strb r3, [r7, #15] /* If the char was invalid tell it's 1 byte long*/ byte_cnt += c_size ? c_size : 1; - 8036c96: 7bfb ldrb r3, [r7, #15] - 8036c98: 2b00 cmp r3, #0 - 8036c9a: d001 beq.n 8036ca0 - 8036c9c: 7bfb ldrb r3, [r7, #15] - 8036c9e: e000 b.n 8036ca2 - 8036ca0: 2301 movs r3, #1 - 8036ca2: 693a ldr r2, [r7, #16] - 8036ca4: 4413 add r3, r2 - 8036ca6: 613b str r3, [r7, #16] + 8036c02: 7bfb ldrb r3, [r7, #15] + 8036c04: 2b00 cmp r3, #0 + 8036c06: d001 beq.n 8036c0c + 8036c08: 7bfb ldrb r3, [r7, #15] + 8036c0a: e000 b.n 8036c0e + 8036c0c: 2301 movs r3, #1 + 8036c0e: 693a ldr r2, [r7, #16] + 8036c10: 4413 add r3, r2 + 8036c12: 613b str r3, [r7, #16] for(i = 0; i < utf8_id && txt[byte_cnt] != '\0'; i++) { - 8036ca8: 697b ldr r3, [r7, #20] - 8036caa: 3301 adds r3, #1 - 8036cac: 617b str r3, [r7, #20] - 8036cae: 697a ldr r2, [r7, #20] - 8036cb0: 683b ldr r3, [r7, #0] - 8036cb2: 429a cmp r2, r3 - 8036cb4: d205 bcs.n 8036cc2 - 8036cb6: 687a ldr r2, [r7, #4] - 8036cb8: 693b ldr r3, [r7, #16] - 8036cba: 4413 add r3, r2 - 8036cbc: 781b ldrb r3, [r3, #0] - 8036cbe: 2b00 cmp r3, #0 - 8036cc0: d1e0 bne.n 8036c84 + 8036c14: 697b ldr r3, [r7, #20] + 8036c16: 3301 adds r3, #1 + 8036c18: 617b str r3, [r7, #20] + 8036c1a: 697a ldr r2, [r7, #20] + 8036c1c: 683b ldr r3, [r7, #0] + 8036c1e: 429a cmp r2, r3 + 8036c20: d205 bcs.n 8036c2e + 8036c22: 687a ldr r2, [r7, #4] + 8036c24: 693b ldr r3, [r7, #16] + 8036c26: 4413 add r3, r2 + 8036c28: 781b ldrb r3, [r3, #0] + 8036c2a: 2b00 cmp r3, #0 + 8036c2c: d1e0 bne.n 8036bf0 } return byte_cnt; - 8036cc2: 693b ldr r3, [r7, #16] + 8036c2e: 693b ldr r3, [r7, #16] } - 8036cc4: 4618 mov r0, r3 - 8036cc6: 3718 adds r7, #24 - 8036cc8: 46bd mov sp, r7 - 8036cca: bd80 pop {r7, pc} - 8036ccc: 200000e4 .word 0x200000e4 + 8036c30: 4618 mov r0, r3 + 8036c32: 3718 adds r7, #24 + 8036c34: 46bd mov sp, r7 + 8036c36: bd80 pop {r7, pc} + 8036c38: 200000e4 .word 0x200000e4 -08036cd0 : +08036c3c : * @param txt a '\0' terminated UTF-8 string * @param byte_id byte index * @return character index of the letter at 'byte_id'th position */ static uint32_t lv_txt_utf8_get_char_id(const char * txt, uint32_t byte_id) { - 8036cd0: b580 push {r7, lr} - 8036cd2: b084 sub sp, #16 - 8036cd4: af00 add r7, sp, #0 - 8036cd6: 6078 str r0, [r7, #4] - 8036cd8: 6039 str r1, [r7, #0] + 8036c3c: b580 push {r7, lr} + 8036c3e: b084 sub sp, #16 + 8036c40: af00 add r7, sp, #0 + 8036c42: 6078 str r0, [r7, #4] + 8036c44: 6039 str r1, [r7, #0] uint32_t i = 0; - 8036cda: 2300 movs r3, #0 - 8036cdc: 60bb str r3, [r7, #8] + 8036c46: 2300 movs r3, #0 + 8036c48: 60bb str r3, [r7, #8] uint32_t char_cnt = 0; - 8036cde: 2300 movs r3, #0 - 8036ce0: 60fb str r3, [r7, #12] + 8036c4a: 2300 movs r3, #0 + 8036c4c: 60fb str r3, [r7, #12] while(i < byte_id) { - 8036ce2: e009 b.n 8036cf8 + 8036c4e: e009 b.n 8036c64 _lv_txt_encoded_next(txt, &i); /*'i' points to the next letter so use the prev. value*/ - 8036ce4: 4b09 ldr r3, [pc, #36] ; (8036d0c ) - 8036ce6: 681b ldr r3, [r3, #0] - 8036ce8: f107 0208 add.w r2, r7, #8 - 8036cec: 4611 mov r1, r2 - 8036cee: 6878 ldr r0, [r7, #4] - 8036cf0: 4798 blx r3 + 8036c50: 4b09 ldr r3, [pc, #36] ; (8036c78 ) + 8036c52: 681b ldr r3, [r3, #0] + 8036c54: f107 0208 add.w r2, r7, #8 + 8036c58: 4611 mov r1, r2 + 8036c5a: 6878 ldr r0, [r7, #4] + 8036c5c: 4798 blx r3 char_cnt++; - 8036cf2: 68fb ldr r3, [r7, #12] - 8036cf4: 3301 adds r3, #1 - 8036cf6: 60fb str r3, [r7, #12] + 8036c5e: 68fb ldr r3, [r7, #12] + 8036c60: 3301 adds r3, #1 + 8036c62: 60fb str r3, [r7, #12] while(i < byte_id) { - 8036cf8: 68bb ldr r3, [r7, #8] - 8036cfa: 683a ldr r2, [r7, #0] - 8036cfc: 429a cmp r2, r3 - 8036cfe: d8f1 bhi.n 8036ce4 + 8036c64: 68bb ldr r3, [r7, #8] + 8036c66: 683a ldr r2, [r7, #0] + 8036c68: 429a cmp r2, r3 + 8036c6a: d8f1 bhi.n 8036c50 } return char_cnt; - 8036d00: 68fb ldr r3, [r7, #12] + 8036c6c: 68fb ldr r3, [r7, #12] } - 8036d02: 4618 mov r0, r3 - 8036d04: 3710 adds r7, #16 - 8036d06: 46bd mov sp, r7 - 8036d08: bd80 pop {r7, pc} - 8036d0a: bf00 nop - 8036d0c: 200000ec .word 0x200000ec + 8036c6e: 4618 mov r0, r3 + 8036c70: 3710 adds r7, #16 + 8036c72: 46bd mov sp, r7 + 8036c74: bd80 pop {r7, pc} + 8036c76: bf00 nop + 8036c78: 200000ec .word 0x200000ec -08036d10 : +08036c7c : * E.g.: "ÁBC" is 3 characters (but 4 bytes) * @param txt a '\0' terminated char string * @return number of characters */ static uint32_t lv_txt_utf8_get_length(const char * txt) { - 8036d10: b580 push {r7, lr} - 8036d12: b084 sub sp, #16 - 8036d14: af00 add r7, sp, #0 - 8036d16: 6078 str r0, [r7, #4] + 8036c7c: b580 push {r7, lr} + 8036c7e: b084 sub sp, #16 + 8036c80: af00 add r7, sp, #0 + 8036c82: 6078 str r0, [r7, #4] uint32_t len = 0; - 8036d18: 2300 movs r3, #0 - 8036d1a: 60fb str r3, [r7, #12] + 8036c84: 2300 movs r3, #0 + 8036c86: 60fb str r3, [r7, #12] uint32_t i = 0; - 8036d1c: 2300 movs r3, #0 - 8036d1e: 60bb str r3, [r7, #8] + 8036c88: 2300 movs r3, #0 + 8036c8a: 60bb str r3, [r7, #8] while(txt[i] != '\0') { - 8036d20: e009 b.n 8036d36 + 8036c8c: e009 b.n 8036ca2 _lv_txt_encoded_next(txt, &i); - 8036d22: 4b0a ldr r3, [pc, #40] ; (8036d4c ) - 8036d24: 681b ldr r3, [r3, #0] - 8036d26: f107 0208 add.w r2, r7, #8 - 8036d2a: 4611 mov r1, r2 - 8036d2c: 6878 ldr r0, [r7, #4] - 8036d2e: 4798 blx r3 + 8036c8e: 4b0a ldr r3, [pc, #40] ; (8036cb8 ) + 8036c90: 681b ldr r3, [r3, #0] + 8036c92: f107 0208 add.w r2, r7, #8 + 8036c96: 4611 mov r1, r2 + 8036c98: 6878 ldr r0, [r7, #4] + 8036c9a: 4798 blx r3 len++; - 8036d30: 68fb ldr r3, [r7, #12] - 8036d32: 3301 adds r3, #1 - 8036d34: 60fb str r3, [r7, #12] + 8036c9c: 68fb ldr r3, [r7, #12] + 8036c9e: 3301 adds r3, #1 + 8036ca0: 60fb str r3, [r7, #12] while(txt[i] != '\0') { - 8036d36: 68bb ldr r3, [r7, #8] - 8036d38: 687a ldr r2, [r7, #4] - 8036d3a: 4413 add r3, r2 - 8036d3c: 781b ldrb r3, [r3, #0] - 8036d3e: 2b00 cmp r3, #0 - 8036d40: d1ef bne.n 8036d22 + 8036ca2: 68bb ldr r3, [r7, #8] + 8036ca4: 687a ldr r2, [r7, #4] + 8036ca6: 4413 add r3, r2 + 8036ca8: 781b ldrb r3, [r3, #0] + 8036caa: 2b00 cmp r3, #0 + 8036cac: d1ef bne.n 8036c8e } return len; - 8036d42: 68fb ldr r3, [r7, #12] + 8036cae: 68fb ldr r3, [r7, #12] } - 8036d44: 4618 mov r0, r3 - 8036d46: 3710 adds r7, #16 - 8036d48: 46bd mov sp, r7 - 8036d4a: bd80 pop {r7, pc} - 8036d4c: 200000ec .word 0x200000ec + 8036cb0: 4618 mov r0, r3 + 8036cb2: 3710 adds r7, #16 + 8036cb4: 46bd mov sp, r7 + 8036cb6: bd80 pop {r7, pc} + 8036cb8: 200000ec .word 0x200000ec -08036d50 <_lv_utils_bsearch>: +08036cbc <_lv_utils_bsearch>: * * @return a pointer to a matching item, or NULL if none exists. */ void * _lv_utils_bsearch(const void * key, const void * base, uint32_t n, uint32_t size, int32_t (*cmp)(const void * pRef, const void * pElement)) { - 8036d50: b580 push {r7, lr} - 8036d52: b086 sub sp, #24 - 8036d54: af00 add r7, sp, #0 - 8036d56: 60f8 str r0, [r7, #12] - 8036d58: 60b9 str r1, [r7, #8] - 8036d5a: 607a str r2, [r7, #4] - 8036d5c: 603b str r3, [r7, #0] + 8036cbc: b580 push {r7, lr} + 8036cbe: b086 sub sp, #24 + 8036cc0: af00 add r7, sp, #0 + 8036cc2: 60f8 str r0, [r7, #12] + 8036cc4: 60b9 str r1, [r7, #8] + 8036cc6: 607a str r2, [r7, #4] + 8036cc8: 603b str r3, [r7, #0] const char * middle; int32_t c; for(middle = base; n != 0;) { - 8036d5e: 68bb ldr r3, [r7, #8] - 8036d60: 617b str r3, [r7, #20] - 8036d62: e02d b.n 8036dc0 <_lv_utils_bsearch+0x70> + 8036cca: 68bb ldr r3, [r7, #8] + 8036ccc: 617b str r3, [r7, #20] + 8036cce: e02d b.n 8036d2c <_lv_utils_bsearch+0x70> middle += (n / 2) * size; - 8036d64: 687b ldr r3, [r7, #4] - 8036d66: 085b lsrs r3, r3, #1 - 8036d68: 683a ldr r2, [r7, #0] - 8036d6a: fb02 f303 mul.w r3, r2, r3 - 8036d6e: 697a ldr r2, [r7, #20] - 8036d70: 4413 add r3, r2 - 8036d72: 617b str r3, [r7, #20] + 8036cd0: 687b ldr r3, [r7, #4] + 8036cd2: 085b lsrs r3, r3, #1 + 8036cd4: 683a ldr r2, [r7, #0] + 8036cd6: fb02 f303 mul.w r3, r2, r3 + 8036cda: 697a ldr r2, [r7, #20] + 8036cdc: 4413 add r3, r2 + 8036cde: 617b str r3, [r7, #20] if((c = (*cmp)(key, middle)) > 0) { - 8036d74: 6a3b ldr r3, [r7, #32] - 8036d76: 6979 ldr r1, [r7, #20] - 8036d78: 68f8 ldr r0, [r7, #12] - 8036d7a: 4798 blx r3 - 8036d7c: 6138 str r0, [r7, #16] - 8036d7e: 693b ldr r3, [r7, #16] - 8036d80: 2b00 cmp r3, #0 - 8036d82: dd12 ble.n 8036daa <_lv_utils_bsearch+0x5a> + 8036ce0: 6a3b ldr r3, [r7, #32] + 8036ce2: 6979 ldr r1, [r7, #20] + 8036ce4: 68f8 ldr r0, [r7, #12] + 8036ce6: 4798 blx r3 + 8036ce8: 6138 str r0, [r7, #16] + 8036cea: 693b ldr r3, [r7, #16] + 8036cec: 2b00 cmp r3, #0 + 8036cee: dd12 ble.n 8036d16 <_lv_utils_bsearch+0x5a> n = (n / 2) - ((n & 1) == 0); - 8036d84: 687b ldr r3, [r7, #4] - 8036d86: 085b lsrs r3, r3, #1 - 8036d88: 687a ldr r2, [r7, #4] - 8036d8a: f002 0201 and.w r2, r2, #1 - 8036d8e: 2a00 cmp r2, #0 - 8036d90: bf0c ite eq - 8036d92: 2201 moveq r2, #1 - 8036d94: 2200 movne r2, #0 - 8036d96: b2d2 uxtb r2, r2 - 8036d98: 1a9b subs r3, r3, r2 - 8036d9a: 607b str r3, [r7, #4] + 8036cf0: 687b ldr r3, [r7, #4] + 8036cf2: 085b lsrs r3, r3, #1 + 8036cf4: 687a ldr r2, [r7, #4] + 8036cf6: f002 0201 and.w r2, r2, #1 + 8036cfa: 2a00 cmp r2, #0 + 8036cfc: bf0c ite eq + 8036cfe: 2201 moveq r2, #1 + 8036d00: 2200 movne r2, #0 + 8036d02: b2d2 uxtb r2, r2 + 8036d04: 1a9b subs r3, r3, r2 + 8036d06: 607b str r3, [r7, #4] base = (middle += size); - 8036d9c: 697a ldr r2, [r7, #20] - 8036d9e: 683b ldr r3, [r7, #0] - 8036da0: 4413 add r3, r2 - 8036da2: 617b str r3, [r7, #20] - 8036da4: 697b ldr r3, [r7, #20] - 8036da6: 60bb str r3, [r7, #8] - 8036da8: e00a b.n 8036dc0 <_lv_utils_bsearch+0x70> + 8036d08: 697a ldr r2, [r7, #20] + 8036d0a: 683b ldr r3, [r7, #0] + 8036d0c: 4413 add r3, r2 + 8036d0e: 617b str r3, [r7, #20] + 8036d10: 697b ldr r3, [r7, #20] + 8036d12: 60bb str r3, [r7, #8] + 8036d14: e00a b.n 8036d2c <_lv_utils_bsearch+0x70> } else if(c < 0) { - 8036daa: 693b ldr r3, [r7, #16] - 8036dac: 2b00 cmp r3, #0 - 8036dae: da05 bge.n 8036dbc <_lv_utils_bsearch+0x6c> + 8036d16: 693b ldr r3, [r7, #16] + 8036d18: 2b00 cmp r3, #0 + 8036d1a: da05 bge.n 8036d28 <_lv_utils_bsearch+0x6c> n /= 2; - 8036db0: 687b ldr r3, [r7, #4] - 8036db2: 085b lsrs r3, r3, #1 - 8036db4: 607b str r3, [r7, #4] + 8036d1c: 687b ldr r3, [r7, #4] + 8036d1e: 085b lsrs r3, r3, #1 + 8036d20: 607b str r3, [r7, #4] middle = base; - 8036db6: 68bb ldr r3, [r7, #8] - 8036db8: 617b str r3, [r7, #20] - 8036dba: e001 b.n 8036dc0 <_lv_utils_bsearch+0x70> + 8036d22: 68bb ldr r3, [r7, #8] + 8036d24: 617b str r3, [r7, #20] + 8036d26: e001 b.n 8036d2c <_lv_utils_bsearch+0x70> } else { return (char *)middle; - 8036dbc: 697b ldr r3, [r7, #20] - 8036dbe: e003 b.n 8036dc8 <_lv_utils_bsearch+0x78> + 8036d28: 697b ldr r3, [r7, #20] + 8036d2a: e003 b.n 8036d34 <_lv_utils_bsearch+0x78> for(middle = base; n != 0;) { - 8036dc0: 687b ldr r3, [r7, #4] - 8036dc2: 2b00 cmp r3, #0 - 8036dc4: d1ce bne.n 8036d64 <_lv_utils_bsearch+0x14> + 8036d2c: 687b ldr r3, [r7, #4] + 8036d2e: 2b00 cmp r3, #0 + 8036d30: d1ce bne.n 8036cd0 <_lv_utils_bsearch+0x14> } } return NULL; - 8036dc6: 2300 movs r3, #0 + 8036d32: 2300 movs r3, #0 } - 8036dc8: 4618 mov r0, r3 - 8036dca: 3718 adds r7, #24 - 8036dcc: 46bd mov sp, r7 - 8036dce: bd80 pop {r7, pc} + 8036d34: 4618 mov r0, r3 + 8036d36: 3718 adds r7, #24 + 8036d38: 46bd mov sp, r7 + 8036d3a: bd80 pop {r7, pc} -08036dd0 : +08036d3c : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_ANGLE); return (lv_coord_t)v.num; } static inline lv_coord_t lv_obj_get_style_pad_top(const struct _lv_obj_t * obj, uint32_t part) { - 8036dd0: b580 push {r7, lr} - 8036dd2: b084 sub sp, #16 - 8036dd4: af00 add r7, sp, #0 - 8036dd6: 6078 str r0, [r7, #4] - 8036dd8: 6039 str r1, [r7, #0] + 8036d3c: b580 push {r7, lr} + 8036d3e: b084 sub sp, #16 + 8036d40: af00 add r7, sp, #0 + 8036d42: 6078 str r0, [r7, #4] + 8036d44: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 8036dda: f641 0210 movw r2, #6160 ; 0x1810 - 8036dde: 6839 ldr r1, [r7, #0] - 8036de0: 6878 ldr r0, [r7, #4] - 8036de2: f7d6 ffe5 bl 800ddb0 - 8036de6: 4603 mov r3, r0 - 8036de8: 60fb str r3, [r7, #12] + 8036d46: f641 0210 movw r2, #6160 ; 0x1810 + 8036d4a: 6839 ldr r1, [r7, #0] + 8036d4c: 6878 ldr r0, [r7, #4] + 8036d4e: f7d6 fff9 bl 800dd44 + 8036d52: 4603 mov r3, r0 + 8036d54: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8036dea: 68fb ldr r3, [r7, #12] - 8036dec: b21b sxth r3, r3 + 8036d56: 68fb ldr r3, [r7, #12] + 8036d58: b21b sxth r3, r3 } - 8036dee: 4618 mov r0, r3 - 8036df0: 3710 adds r7, #16 - 8036df2: 46bd mov sp, r7 - 8036df4: bd80 pop {r7, pc} + 8036d5a: 4618 mov r0, r3 + 8036d5c: 3710 adds r7, #16 + 8036d5e: 46bd mov sp, r7 + 8036d60: bd80 pop {r7, pc} -08036df6 : +08036d62 : static inline lv_coord_t lv_obj_get_style_pad_bottom(const struct _lv_obj_t * obj, uint32_t part) { - 8036df6: b580 push {r7, lr} - 8036df8: b084 sub sp, #16 - 8036dfa: af00 add r7, sp, #0 - 8036dfc: 6078 str r0, [r7, #4] - 8036dfe: 6039 str r1, [r7, #0] + 8036d62: b580 push {r7, lr} + 8036d64: b084 sub sp, #16 + 8036d66: af00 add r7, sp, #0 + 8036d68: 6078 str r0, [r7, #4] + 8036d6a: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); - 8036e00: f641 0211 movw r2, #6161 ; 0x1811 - 8036e04: 6839 ldr r1, [r7, #0] - 8036e06: 6878 ldr r0, [r7, #4] - 8036e08: f7d6 ffd2 bl 800ddb0 - 8036e0c: 4603 mov r3, r0 - 8036e0e: 60fb str r3, [r7, #12] + 8036d6c: f641 0211 movw r2, #6161 ; 0x1811 + 8036d70: 6839 ldr r1, [r7, #0] + 8036d72: 6878 ldr r0, [r7, #4] + 8036d74: f7d6 ffe6 bl 800dd44 + 8036d78: 4603 mov r3, r0 + 8036d7a: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8036e10: 68fb ldr r3, [r7, #12] - 8036e12: b21b sxth r3, r3 + 8036d7c: 68fb ldr r3, [r7, #12] + 8036d7e: b21b sxth r3, r3 } - 8036e14: 4618 mov r0, r3 - 8036e16: 3710 adds r7, #16 - 8036e18: 46bd mov sp, r7 - 8036e1a: bd80 pop {r7, pc} + 8036d80: 4618 mov r0, r3 + 8036d82: 3710 adds r7, #16 + 8036d84: 46bd mov sp, r7 + 8036d86: bd80 pop {r7, pc} -08036e1c : +08036d88 : static inline lv_coord_t lv_obj_get_style_pad_left(const struct _lv_obj_t * obj, uint32_t part) { - 8036e1c: b580 push {r7, lr} - 8036e1e: b084 sub sp, #16 - 8036e20: af00 add r7, sp, #0 - 8036e22: 6078 str r0, [r7, #4] - 8036e24: 6039 str r1, [r7, #0] + 8036d88: b580 push {r7, lr} + 8036d8a: b084 sub sp, #16 + 8036d8c: af00 add r7, sp, #0 + 8036d8e: 6078 str r0, [r7, #4] + 8036d90: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 8036e26: f641 0212 movw r2, #6162 ; 0x1812 - 8036e2a: 6839 ldr r1, [r7, #0] - 8036e2c: 6878 ldr r0, [r7, #4] - 8036e2e: f7d6 ffbf bl 800ddb0 - 8036e32: 4603 mov r3, r0 - 8036e34: 60fb str r3, [r7, #12] + 8036d92: f641 0212 movw r2, #6162 ; 0x1812 + 8036d96: 6839 ldr r1, [r7, #0] + 8036d98: 6878 ldr r0, [r7, #4] + 8036d9a: f7d6 ffd3 bl 800dd44 + 8036d9e: 4603 mov r3, r0 + 8036da0: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8036e36: 68fb ldr r3, [r7, #12] - 8036e38: b21b sxth r3, r3 + 8036da2: 68fb ldr r3, [r7, #12] + 8036da4: b21b sxth r3, r3 } - 8036e3a: 4618 mov r0, r3 - 8036e3c: 3710 adds r7, #16 - 8036e3e: 46bd mov sp, r7 - 8036e40: bd80 pop {r7, pc} + 8036da6: 4618 mov r0, r3 + 8036da8: 3710 adds r7, #16 + 8036daa: 46bd mov sp, r7 + 8036dac: bd80 pop {r7, pc} -08036e42 : +08036dae : static inline lv_coord_t lv_obj_get_style_pad_right(const struct _lv_obj_t * obj, uint32_t part) { - 8036e42: b580 push {r7, lr} - 8036e44: b084 sub sp, #16 - 8036e46: af00 add r7, sp, #0 - 8036e48: 6078 str r0, [r7, #4] - 8036e4a: 6039 str r1, [r7, #0] + 8036dae: b580 push {r7, lr} + 8036db0: b084 sub sp, #16 + 8036db2: af00 add r7, sp, #0 + 8036db4: 6078 str r0, [r7, #4] + 8036db6: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - 8036e4c: f641 0213 movw r2, #6163 ; 0x1813 - 8036e50: 6839 ldr r1, [r7, #0] - 8036e52: 6878 ldr r0, [r7, #4] - 8036e54: f7d6 ffac bl 800ddb0 - 8036e58: 4603 mov r3, r0 - 8036e5a: 60fb str r3, [r7, #12] + 8036db8: f641 0213 movw r2, #6163 ; 0x1813 + 8036dbc: 6839 ldr r1, [r7, #0] + 8036dbe: 6878 ldr r0, [r7, #4] + 8036dc0: f7d6 ffc0 bl 800dd44 + 8036dc4: 4603 mov r3, r0 + 8036dc6: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8036e5c: 68fb ldr r3, [r7, #12] - 8036e5e: b21b sxth r3, r3 + 8036dc8: 68fb ldr r3, [r7, #12] + 8036dca: b21b sxth r3, r3 } - 8036e60: 4618 mov r0, r3 - 8036e62: 3710 adds r7, #16 - 8036e64: 46bd mov sp, r7 - 8036e66: bd80 pop {r7, pc} + 8036dcc: 4618 mov r0, r3 + 8036dce: 3710 adds r7, #16 + 8036dd0: 46bd mov sp, r7 + 8036dd2: bd80 pop {r7, pc} -08036e68 : +08036dd4 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_OPA); return (lv_opa_t)v.num; } static inline lv_coord_t lv_obj_get_style_arc_width(const struct _lv_obj_t * obj, uint32_t part) { - 8036e68: b580 push {r7, lr} - 8036e6a: b084 sub sp, #16 - 8036e6c: af00 add r7, sp, #0 - 8036e6e: 6078 str r0, [r7, #4] - 8036e70: 6039 str r1, [r7, #0] + 8036dd4: b580 push {r7, lr} + 8036dd6: b084 sub sp, #16 + 8036dd8: af00 add r7, sp, #0 + 8036dda: 6078 str r0, [r7, #4] + 8036ddc: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_WIDTH); - 8036e72: f44f 6205 mov.w r2, #2128 ; 0x850 - 8036e76: 6839 ldr r1, [r7, #0] - 8036e78: 6878 ldr r0, [r7, #4] - 8036e7a: f7d6 ff99 bl 800ddb0 - 8036e7e: 4603 mov r3, r0 - 8036e80: 60fb str r3, [r7, #12] + 8036dde: f44f 6205 mov.w r2, #2128 ; 0x850 + 8036de2: 6839 ldr r1, [r7, #0] + 8036de4: 6878 ldr r0, [r7, #4] + 8036de6: f7d6 ffad bl 800dd44 + 8036dea: 4603 mov r3, r0 + 8036dec: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8036e82: 68fb ldr r3, [r7, #12] - 8036e84: b21b sxth r3, r3 + 8036dee: 68fb ldr r3, [r7, #12] + 8036df0: b21b sxth r3, r3 } - 8036e86: 4618 mov r0, r3 - 8036e88: 3710 adds r7, #16 - 8036e8a: 46bd mov sp, r7 - 8036e8c: bd80 pop {r7, pc} + 8036df2: 4618 mov r0, r3 + 8036df4: 3710 adds r7, #16 + 8036df6: 46bd mov sp, r7 + 8036df8: bd80 pop {r7, pc} -08036e8e : +08036dfa : static inline bool lv_obj_get_style_arc_rounded(const struct _lv_obj_t * obj, uint32_t part) { - 8036e8e: b580 push {r7, lr} - 8036e90: b084 sub sp, #16 - 8036e92: af00 add r7, sp, #0 - 8036e94: 6078 str r0, [r7, #4] - 8036e96: 6039 str r1, [r7, #0] + 8036dfa: b580 push {r7, lr} + 8036dfc: b084 sub sp, #16 + 8036dfe: af00 add r7, sp, #0 + 8036e00: 6078 str r0, [r7, #4] + 8036e02: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_ROUNDED); - 8036e98: 2251 movs r2, #81 ; 0x51 - 8036e9a: 6839 ldr r1, [r7, #0] - 8036e9c: 6878 ldr r0, [r7, #4] - 8036e9e: f7d6 ff87 bl 800ddb0 - 8036ea2: 4603 mov r3, r0 - 8036ea4: 60fb str r3, [r7, #12] + 8036e04: 2251 movs r2, #81 ; 0x51 + 8036e06: 6839 ldr r1, [r7, #0] + 8036e08: 6878 ldr r0, [r7, #4] + 8036e0a: f7d6 ff9b bl 800dd44 + 8036e0e: 4603 mov r3, r0 + 8036e10: 60fb str r3, [r7, #12] return (bool)v.num; - 8036ea6: 68fb ldr r3, [r7, #12] - 8036ea8: 2b00 cmp r3, #0 - 8036eaa: bf14 ite ne - 8036eac: 2301 movne r3, #1 - 8036eae: 2300 moveq r3, #0 - 8036eb0: b2db uxtb r3, r3 + 8036e12: 68fb ldr r3, [r7, #12] + 8036e14: 2b00 cmp r3, #0 + 8036e16: bf14 ite ne + 8036e18: 2301 movne r3, #1 + 8036e1a: 2300 moveq r3, #0 + 8036e1c: b2db uxtb r3, r3 } - 8036eb2: 4618 mov r0, r3 - 8036eb4: 3710 adds r7, #16 - 8036eb6: 46bd mov sp, r7 - 8036eb8: bd80 pop {r7, pc} + 8036e1e: 4618 mov r0, r3 + 8036e20: 3710 adds r7, #16 + 8036e22: 46bd mov sp, r7 + 8036e24: bd80 pop {r7, pc} -08036eba : +08036e26 : /*===================== * Setter functions *====================*/ void lv_arc_set_start_angle(lv_obj_t * obj, uint16_t start) { - 8036eba: b580 push {r7, lr} - 8036ebc: b084 sub sp, #16 - 8036ebe: af00 add r7, sp, #0 - 8036ec0: 6078 str r0, [r7, #4] - 8036ec2: 460b mov r3, r1 - 8036ec4: 807b strh r3, [r7, #2] + 8036e26: b580 push {r7, lr} + 8036e28: b084 sub sp, #16 + 8036e2a: af00 add r7, sp, #0 + 8036e2c: 6078 str r0, [r7, #4] + 8036e2e: 460b mov r3, r1 + 8036e30: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_arc_t * arc = (lv_arc_t *)obj; - 8036ec6: 687b ldr r3, [r7, #4] - 8036ec8: 60bb str r3, [r7, #8] + 8036e32: 687b ldr r3, [r7, #4] + 8036e34: 60bb str r3, [r7, #8] if(start > 360) start -= 360; - 8036eca: 887b ldrh r3, [r7, #2] - 8036ecc: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 8036ed0: d903 bls.n 8036eda - 8036ed2: 887b ldrh r3, [r7, #2] - 8036ed4: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 - 8036ed8: 807b strh r3, [r7, #2] + 8036e36: 887b ldrh r3, [r7, #2] + 8036e38: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 8036e3c: d903 bls.n 8036e46 + 8036e3e: 887b ldrh r3, [r7, #2] + 8036e40: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 + 8036e44: 807b strh r3, [r7, #2] int16_t old_delta = arc->indic_angle_end - arc->indic_angle_start; - 8036eda: 68bb ldr r3, [r7, #8] - 8036edc: 8d1a ldrh r2, [r3, #40] ; 0x28 - 8036ede: 68bb ldr r3, [r7, #8] - 8036ee0: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8036ee2: 1ad3 subs r3, r2, r3 - 8036ee4: b29b uxth r3, r3 - 8036ee6: 81fb strh r3, [r7, #14] + 8036e46: 68bb ldr r3, [r7, #8] + 8036e48: 8d1a ldrh r2, [r3, #40] ; 0x28 + 8036e4a: 68bb ldr r3, [r7, #8] + 8036e4c: 8cdb ldrh r3, [r3, #38] ; 0x26 + 8036e4e: 1ad3 subs r3, r2, r3 + 8036e50: b29b uxth r3, r3 + 8036e52: 81fb strh r3, [r7, #14] int16_t new_delta = arc->indic_angle_end - start; - 8036ee8: 68bb ldr r3, [r7, #8] - 8036eea: 8d1a ldrh r2, [r3, #40] ; 0x28 - 8036eec: 887b ldrh r3, [r7, #2] - 8036eee: 1ad3 subs r3, r2, r3 - 8036ef0: b29b uxth r3, r3 - 8036ef2: 81bb strh r3, [r7, #12] + 8036e54: 68bb ldr r3, [r7, #8] + 8036e56: 8d1a ldrh r2, [r3, #40] ; 0x28 + 8036e58: 887b ldrh r3, [r7, #2] + 8036e5a: 1ad3 subs r3, r2, r3 + 8036e5c: b29b uxth r3, r3 + 8036e5e: 81bb strh r3, [r7, #12] if(old_delta < 0) old_delta = 360 + old_delta; - 8036ef4: f9b7 300e ldrsh.w r3, [r7, #14] - 8036ef8: 2b00 cmp r3, #0 - 8036efa: da04 bge.n 8036f06 - 8036efc: 89fb ldrh r3, [r7, #14] - 8036efe: f503 73b4 add.w r3, r3, #360 ; 0x168 - 8036f02: b29b uxth r3, r3 - 8036f04: 81fb strh r3, [r7, #14] + 8036e60: f9b7 300e ldrsh.w r3, [r7, #14] + 8036e64: 2b00 cmp r3, #0 + 8036e66: da04 bge.n 8036e72 + 8036e68: 89fb ldrh r3, [r7, #14] + 8036e6a: f503 73b4 add.w r3, r3, #360 ; 0x168 + 8036e6e: b29b uxth r3, r3 + 8036e70: 81fb strh r3, [r7, #14] if(new_delta < 0) new_delta = 360 + new_delta; - 8036f06: f9b7 300c ldrsh.w r3, [r7, #12] - 8036f0a: 2b00 cmp r3, #0 - 8036f0c: da04 bge.n 8036f18 - 8036f0e: 89bb ldrh r3, [r7, #12] - 8036f10: f503 73b4 add.w r3, r3, #360 ; 0x168 - 8036f14: b29b uxth r3, r3 - 8036f16: 81bb strh r3, [r7, #12] + 8036e72: f9b7 300c ldrsh.w r3, [r7, #12] + 8036e76: 2b00 cmp r3, #0 + 8036e78: da04 bge.n 8036e84 + 8036e7a: 89bb ldrh r3, [r7, #12] + 8036e7c: f503 73b4 add.w r3, r3, #360 ; 0x168 + 8036e80: b29b uxth r3, r3 + 8036e82: 81bb strh r3, [r7, #12] if(LV_ABS(new_delta - old_delta) > 180) lv_obj_invalidate(obj); - 8036f18: f9b7 200c ldrsh.w r2, [r7, #12] - 8036f1c: f9b7 300e ldrsh.w r3, [r7, #14] - 8036f20: 1ad3 subs r3, r2, r3 - 8036f22: 2b00 cmp r3, #0 - 8036f24: bfb8 it lt - 8036f26: 425b neglt r3, r3 - 8036f28: 2bb4 cmp r3, #180 ; 0xb4 - 8036f2a: dd03 ble.n 8036f34 - 8036f2c: 6878 ldr r0, [r7, #4] - 8036f2e: f7d3 fdc0 bl 800aab2 - 8036f32: e01c b.n 8036f6e + 8036e84: f9b7 200c ldrsh.w r2, [r7, #12] + 8036e88: f9b7 300e ldrsh.w r3, [r7, #14] + 8036e8c: 1ad3 subs r3, r2, r3 + 8036e8e: 2b00 cmp r3, #0 + 8036e90: bfb8 it lt + 8036e92: 425b neglt r3, r3 + 8036e94: 2bb4 cmp r3, #180 ; 0xb4 + 8036e96: dd03 ble.n 8036ea0 + 8036e98: 6878 ldr r0, [r7, #4] + 8036e9a: f7d3 fdd4 bl 800aa46 + 8036e9e: e01c b.n 8036eda else if(new_delta < old_delta) inv_arc_area(obj, arc->indic_angle_start, start, LV_PART_INDICATOR); - 8036f34: f9b7 200c ldrsh.w r2, [r7, #12] - 8036f38: f9b7 300e ldrsh.w r3, [r7, #14] - 8036f3c: 429a cmp r2, r3 - 8036f3e: da08 bge.n 8036f52 - 8036f40: 68bb ldr r3, [r7, #8] - 8036f42: 8cd9 ldrh r1, [r3, #38] ; 0x26 - 8036f44: 887a ldrh r2, [r7, #2] - 8036f46: f44f 3300 mov.w r3, #131072 ; 0x20000 - 8036f4a: 6878 ldr r0, [r7, #4] - 8036f4c: f000 ff1a bl 8037d84 - 8036f50: e00d b.n 8036f6e + 8036ea0: f9b7 200c ldrsh.w r2, [r7, #12] + 8036ea4: f9b7 300e ldrsh.w r3, [r7, #14] + 8036ea8: 429a cmp r2, r3 + 8036eaa: da08 bge.n 8036ebe + 8036eac: 68bb ldr r3, [r7, #8] + 8036eae: 8cd9 ldrh r1, [r3, #38] ; 0x26 + 8036eb0: 887a ldrh r2, [r7, #2] + 8036eb2: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8036eb6: 6878 ldr r0, [r7, #4] + 8036eb8: f000 ff1a bl 8037cf0 + 8036ebc: e00d b.n 8036eda else if(old_delta < new_delta) inv_arc_area(obj, start, arc->indic_angle_start, LV_PART_INDICATOR); - 8036f52: f9b7 200e ldrsh.w r2, [r7, #14] - 8036f56: f9b7 300c ldrsh.w r3, [r7, #12] - 8036f5a: 429a cmp r2, r3 - 8036f5c: da07 bge.n 8036f6e - 8036f5e: 68bb ldr r3, [r7, #8] - 8036f60: 8cda ldrh r2, [r3, #38] ; 0x26 - 8036f62: 8879 ldrh r1, [r7, #2] - 8036f64: f44f 3300 mov.w r3, #131072 ; 0x20000 - 8036f68: 6878 ldr r0, [r7, #4] - 8036f6a: f000 ff0b bl 8037d84 + 8036ebe: f9b7 200e ldrsh.w r2, [r7, #14] + 8036ec2: f9b7 300c ldrsh.w r3, [r7, #12] + 8036ec6: 429a cmp r2, r3 + 8036ec8: da07 bge.n 8036eda + 8036eca: 68bb ldr r3, [r7, #8] + 8036ecc: 8cda ldrh r2, [r3, #38] ; 0x26 + 8036ece: 8879 ldrh r1, [r7, #2] + 8036ed0: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8036ed4: 6878 ldr r0, [r7, #4] + 8036ed6: f000 ff0b bl 8037cf0 inv_knob_area(obj); - 8036f6e: 6878 ldr r0, [r7, #4] - 8036f70: f000 ff87 bl 8037e82 + 8036eda: 6878 ldr r0, [r7, #4] + 8036edc: f000 ff87 bl 8037dee arc->indic_angle_start = start; - 8036f74: 68bb ldr r3, [r7, #8] - 8036f76: 887a ldrh r2, [r7, #2] - 8036f78: 84da strh r2, [r3, #38] ; 0x26 + 8036ee0: 68bb ldr r3, [r7, #8] + 8036ee2: 887a ldrh r2, [r7, #2] + 8036ee4: 84da strh r2, [r3, #38] ; 0x26 inv_knob_area(obj); - 8036f7a: 6878 ldr r0, [r7, #4] - 8036f7c: f000 ff81 bl 8037e82 + 8036ee6: 6878 ldr r0, [r7, #4] + 8036ee8: f000 ff81 bl 8037dee } - 8036f80: bf00 nop - 8036f82: 3710 adds r7, #16 - 8036f84: 46bd mov sp, r7 - 8036f86: bd80 pop {r7, pc} + 8036eec: bf00 nop + 8036eee: 3710 adds r7, #16 + 8036ef0: 46bd mov sp, r7 + 8036ef2: bd80 pop {r7, pc} -08036f88 : +08036ef4 : void lv_arc_set_end_angle(lv_obj_t * obj, uint16_t end) { - 8036f88: b580 push {r7, lr} - 8036f8a: b084 sub sp, #16 - 8036f8c: af00 add r7, sp, #0 - 8036f8e: 6078 str r0, [r7, #4] - 8036f90: 460b mov r3, r1 - 8036f92: 807b strh r3, [r7, #2] + 8036ef4: b580 push {r7, lr} + 8036ef6: b084 sub sp, #16 + 8036ef8: af00 add r7, sp, #0 + 8036efa: 6078 str r0, [r7, #4] + 8036efc: 460b mov r3, r1 + 8036efe: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_arc_t * arc = (lv_arc_t *)obj; - 8036f94: 687b ldr r3, [r7, #4] - 8036f96: 60bb str r3, [r7, #8] + 8036f00: 687b ldr r3, [r7, #4] + 8036f02: 60bb str r3, [r7, #8] if(end > 360) end -= 360; - 8036f98: 887b ldrh r3, [r7, #2] - 8036f9a: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 8036f9e: d903 bls.n 8036fa8 - 8036fa0: 887b ldrh r3, [r7, #2] - 8036fa2: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 - 8036fa6: 807b strh r3, [r7, #2] + 8036f04: 887b ldrh r3, [r7, #2] + 8036f06: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 8036f0a: d903 bls.n 8036f14 + 8036f0c: 887b ldrh r3, [r7, #2] + 8036f0e: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 + 8036f12: 807b strh r3, [r7, #2] int16_t old_delta = arc->indic_angle_end - arc->indic_angle_start; - 8036fa8: 68bb ldr r3, [r7, #8] - 8036faa: 8d1a ldrh r2, [r3, #40] ; 0x28 - 8036fac: 68bb ldr r3, [r7, #8] - 8036fae: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8036fb0: 1ad3 subs r3, r2, r3 - 8036fb2: b29b uxth r3, r3 - 8036fb4: 81fb strh r3, [r7, #14] + 8036f14: 68bb ldr r3, [r7, #8] + 8036f16: 8d1a ldrh r2, [r3, #40] ; 0x28 + 8036f18: 68bb ldr r3, [r7, #8] + 8036f1a: 8cdb ldrh r3, [r3, #38] ; 0x26 + 8036f1c: 1ad3 subs r3, r2, r3 + 8036f1e: b29b uxth r3, r3 + 8036f20: 81fb strh r3, [r7, #14] int16_t new_delta = end - arc->indic_angle_start; - 8036fb6: 68bb ldr r3, [r7, #8] - 8036fb8: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8036fba: 887a ldrh r2, [r7, #2] - 8036fbc: 1ad3 subs r3, r2, r3 - 8036fbe: b29b uxth r3, r3 - 8036fc0: 81bb strh r3, [r7, #12] + 8036f22: 68bb ldr r3, [r7, #8] + 8036f24: 8cdb ldrh r3, [r3, #38] ; 0x26 + 8036f26: 887a ldrh r2, [r7, #2] + 8036f28: 1ad3 subs r3, r2, r3 + 8036f2a: b29b uxth r3, r3 + 8036f2c: 81bb strh r3, [r7, #12] if(old_delta < 0) old_delta = 360 + old_delta; - 8036fc2: f9b7 300e ldrsh.w r3, [r7, #14] - 8036fc6: 2b00 cmp r3, #0 - 8036fc8: da04 bge.n 8036fd4 - 8036fca: 89fb ldrh r3, [r7, #14] - 8036fcc: f503 73b4 add.w r3, r3, #360 ; 0x168 - 8036fd0: b29b uxth r3, r3 - 8036fd2: 81fb strh r3, [r7, #14] + 8036f2e: f9b7 300e ldrsh.w r3, [r7, #14] + 8036f32: 2b00 cmp r3, #0 + 8036f34: da04 bge.n 8036f40 + 8036f36: 89fb ldrh r3, [r7, #14] + 8036f38: f503 73b4 add.w r3, r3, #360 ; 0x168 + 8036f3c: b29b uxth r3, r3 + 8036f3e: 81fb strh r3, [r7, #14] if(new_delta < 0) new_delta = 360 + new_delta; - 8036fd4: f9b7 300c ldrsh.w r3, [r7, #12] - 8036fd8: 2b00 cmp r3, #0 - 8036fda: da04 bge.n 8036fe6 - 8036fdc: 89bb ldrh r3, [r7, #12] - 8036fde: f503 73b4 add.w r3, r3, #360 ; 0x168 - 8036fe2: b29b uxth r3, r3 - 8036fe4: 81bb strh r3, [r7, #12] + 8036f40: f9b7 300c ldrsh.w r3, [r7, #12] + 8036f44: 2b00 cmp r3, #0 + 8036f46: da04 bge.n 8036f52 + 8036f48: 89bb ldrh r3, [r7, #12] + 8036f4a: f503 73b4 add.w r3, r3, #360 ; 0x168 + 8036f4e: b29b uxth r3, r3 + 8036f50: 81bb strh r3, [r7, #12] if(LV_ABS(new_delta - old_delta) > 180) lv_obj_invalidate(obj); - 8036fe6: f9b7 200c ldrsh.w r2, [r7, #12] - 8036fea: f9b7 300e ldrsh.w r3, [r7, #14] - 8036fee: 1ad3 subs r3, r2, r3 - 8036ff0: 2b00 cmp r3, #0 - 8036ff2: bfb8 it lt - 8036ff4: 425b neglt r3, r3 - 8036ff6: 2bb4 cmp r3, #180 ; 0xb4 - 8036ff8: dd03 ble.n 8037002 - 8036ffa: 6878 ldr r0, [r7, #4] - 8036ffc: f7d3 fd59 bl 800aab2 - 8037000: e01c b.n 803703c + 8036f52: f9b7 200c ldrsh.w r2, [r7, #12] + 8036f56: f9b7 300e ldrsh.w r3, [r7, #14] + 8036f5a: 1ad3 subs r3, r2, r3 + 8036f5c: 2b00 cmp r3, #0 + 8036f5e: bfb8 it lt + 8036f60: 425b neglt r3, r3 + 8036f62: 2bb4 cmp r3, #180 ; 0xb4 + 8036f64: dd03 ble.n 8036f6e + 8036f66: 6878 ldr r0, [r7, #4] + 8036f68: f7d3 fd6d bl 800aa46 + 8036f6c: e01c b.n 8036fa8 else if(new_delta < old_delta) inv_arc_area(obj, end, arc->indic_angle_end, LV_PART_INDICATOR); - 8037002: f9b7 200c ldrsh.w r2, [r7, #12] - 8037006: f9b7 300e ldrsh.w r3, [r7, #14] - 803700a: 429a cmp r2, r3 - 803700c: da08 bge.n 8037020 - 803700e: 68bb ldr r3, [r7, #8] - 8037010: 8d1a ldrh r2, [r3, #40] ; 0x28 - 8037012: 8879 ldrh r1, [r7, #2] - 8037014: f44f 3300 mov.w r3, #131072 ; 0x20000 - 8037018: 6878 ldr r0, [r7, #4] - 803701a: f000 feb3 bl 8037d84 - 803701e: e00d b.n 803703c + 8036f6e: f9b7 200c ldrsh.w r2, [r7, #12] + 8036f72: f9b7 300e ldrsh.w r3, [r7, #14] + 8036f76: 429a cmp r2, r3 + 8036f78: da08 bge.n 8036f8c + 8036f7a: 68bb ldr r3, [r7, #8] + 8036f7c: 8d1a ldrh r2, [r3, #40] ; 0x28 + 8036f7e: 8879 ldrh r1, [r7, #2] + 8036f80: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8036f84: 6878 ldr r0, [r7, #4] + 8036f86: f000 feb3 bl 8037cf0 + 8036f8a: e00d b.n 8036fa8 else if(old_delta < new_delta) inv_arc_area(obj, arc->indic_angle_end, end, LV_PART_INDICATOR); - 8037020: f9b7 200e ldrsh.w r2, [r7, #14] - 8037024: f9b7 300c ldrsh.w r3, [r7, #12] - 8037028: 429a cmp r2, r3 - 803702a: da07 bge.n 803703c - 803702c: 68bb ldr r3, [r7, #8] - 803702e: 8d19 ldrh r1, [r3, #40] ; 0x28 - 8037030: 887a ldrh r2, [r7, #2] - 8037032: f44f 3300 mov.w r3, #131072 ; 0x20000 - 8037036: 6878 ldr r0, [r7, #4] - 8037038: f000 fea4 bl 8037d84 + 8036f8c: f9b7 200e ldrsh.w r2, [r7, #14] + 8036f90: f9b7 300c ldrsh.w r3, [r7, #12] + 8036f94: 429a cmp r2, r3 + 8036f96: da07 bge.n 8036fa8 + 8036f98: 68bb ldr r3, [r7, #8] + 8036f9a: 8d19 ldrh r1, [r3, #40] ; 0x28 + 8036f9c: 887a ldrh r2, [r7, #2] + 8036f9e: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8036fa2: 6878 ldr r0, [r7, #4] + 8036fa4: f000 fea4 bl 8037cf0 inv_knob_area(obj); - 803703c: 6878 ldr r0, [r7, #4] - 803703e: f000 ff20 bl 8037e82 + 8036fa8: 6878 ldr r0, [r7, #4] + 8036faa: f000 ff20 bl 8037dee arc->indic_angle_end = end; - 8037042: 68bb ldr r3, [r7, #8] - 8037044: 887a ldrh r2, [r7, #2] - 8037046: 851a strh r2, [r3, #40] ; 0x28 + 8036fae: 68bb ldr r3, [r7, #8] + 8036fb0: 887a ldrh r2, [r7, #2] + 8036fb2: 851a strh r2, [r3, #40] ; 0x28 inv_knob_area(obj); - 8037048: 6878 ldr r0, [r7, #4] - 803704a: f000 ff1a bl 8037e82 + 8036fb4: 6878 ldr r0, [r7, #4] + 8036fb6: f000 ff1a bl 8037dee } - 803704e: bf00 nop - 8037050: 3710 adds r7, #16 - 8037052: 46bd mov sp, r7 - 8037054: bd80 pop {r7, pc} + 8036fba: bf00 nop + 8036fbc: 3710 adds r7, #16 + 8036fbe: 46bd mov sp, r7 + 8036fc0: bd80 pop {r7, pc} -08037056 : +08036fc2 : void lv_arc_set_angles(lv_obj_t * obj, uint16_t start, uint16_t end) { - 8037056: b580 push {r7, lr} - 8037058: b082 sub sp, #8 - 803705a: af00 add r7, sp, #0 - 803705c: 6078 str r0, [r7, #4] - 803705e: 460b mov r3, r1 - 8037060: 807b strh r3, [r7, #2] - 8037062: 4613 mov r3, r2 - 8037064: 803b strh r3, [r7, #0] + 8036fc2: b580 push {r7, lr} + 8036fc4: b082 sub sp, #8 + 8036fc6: af00 add r7, sp, #0 + 8036fc8: 6078 str r0, [r7, #4] + 8036fca: 460b mov r3, r1 + 8036fcc: 807b strh r3, [r7, #2] + 8036fce: 4613 mov r3, r2 + 8036fd0: 803b strh r3, [r7, #0] lv_arc_set_end_angle(obj, end); - 8037066: 883b ldrh r3, [r7, #0] - 8037068: 4619 mov r1, r3 - 803706a: 6878 ldr r0, [r7, #4] - 803706c: f7ff ff8c bl 8036f88 + 8036fd2: 883b ldrh r3, [r7, #0] + 8036fd4: 4619 mov r1, r3 + 8036fd6: 6878 ldr r0, [r7, #4] + 8036fd8: f7ff ff8c bl 8036ef4 lv_arc_set_start_angle(obj, start); - 8037070: 887b ldrh r3, [r7, #2] - 8037072: 4619 mov r1, r3 - 8037074: 6878 ldr r0, [r7, #4] - 8037076: f7ff ff20 bl 8036eba + 8036fdc: 887b ldrh r3, [r7, #2] + 8036fde: 4619 mov r1, r3 + 8036fe0: 6878 ldr r0, [r7, #4] + 8036fe2: f7ff ff20 bl 8036e26 } - 803707a: bf00 nop - 803707c: 3708 adds r7, #8 - 803707e: 46bd mov sp, r7 - 8037080: bd80 pop {r7, pc} + 8036fe6: bf00 nop + 8036fe8: 3708 adds r7, #8 + 8036fea: 46bd mov sp, r7 + 8036fec: bd80 pop {r7, pc} -08037082 : +08036fee : void lv_arc_set_bg_start_angle(lv_obj_t * obj, uint16_t start) { - 8037082: b580 push {r7, lr} - 8037084: b084 sub sp, #16 - 8037086: af00 add r7, sp, #0 - 8037088: 6078 str r0, [r7, #4] - 803708a: 460b mov r3, r1 - 803708c: 807b strh r3, [r7, #2] + 8036fee: b580 push {r7, lr} + 8036ff0: b084 sub sp, #16 + 8036ff2: af00 add r7, sp, #0 + 8036ff4: 6078 str r0, [r7, #4] + 8036ff6: 460b mov r3, r1 + 8036ff8: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_arc_t * arc = (lv_arc_t *)obj; - 803708e: 687b ldr r3, [r7, #4] - 8037090: 60bb str r3, [r7, #8] + 8036ffa: 687b ldr r3, [r7, #4] + 8036ffc: 60bb str r3, [r7, #8] if(start > 360) start -= 360; - 8037092: 887b ldrh r3, [r7, #2] - 8037094: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 8037098: d903 bls.n 80370a2 - 803709a: 887b ldrh r3, [r7, #2] - 803709c: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 - 80370a0: 807b strh r3, [r7, #2] + 8036ffe: 887b ldrh r3, [r7, #2] + 8037000: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 8037004: d903 bls.n 803700e + 8037006: 887b ldrh r3, [r7, #2] + 8037008: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 + 803700c: 807b strh r3, [r7, #2] int16_t old_delta = arc->bg_angle_end - arc->bg_angle_start; - 80370a2: 68bb ldr r3, [r7, #8] - 80370a4: 8d9a ldrh r2, [r3, #44] ; 0x2c - 80370a6: 68bb ldr r3, [r7, #8] - 80370a8: 8d5b ldrh r3, [r3, #42] ; 0x2a - 80370aa: 1ad3 subs r3, r2, r3 - 80370ac: b29b uxth r3, r3 - 80370ae: 81fb strh r3, [r7, #14] + 803700e: 68bb ldr r3, [r7, #8] + 8037010: 8d9a ldrh r2, [r3, #44] ; 0x2c + 8037012: 68bb ldr r3, [r7, #8] + 8037014: 8d5b ldrh r3, [r3, #42] ; 0x2a + 8037016: 1ad3 subs r3, r2, r3 + 8037018: b29b uxth r3, r3 + 803701a: 81fb strh r3, [r7, #14] int16_t new_delta = arc->bg_angle_end - start; - 80370b0: 68bb ldr r3, [r7, #8] - 80370b2: 8d9a ldrh r2, [r3, #44] ; 0x2c - 80370b4: 887b ldrh r3, [r7, #2] - 80370b6: 1ad3 subs r3, r2, r3 - 80370b8: b29b uxth r3, r3 - 80370ba: 81bb strh r3, [r7, #12] + 803701c: 68bb ldr r3, [r7, #8] + 803701e: 8d9a ldrh r2, [r3, #44] ; 0x2c + 8037020: 887b ldrh r3, [r7, #2] + 8037022: 1ad3 subs r3, r2, r3 + 8037024: b29b uxth r3, r3 + 8037026: 81bb strh r3, [r7, #12] if(old_delta < 0) old_delta = 360 + old_delta; - 80370bc: f9b7 300e ldrsh.w r3, [r7, #14] - 80370c0: 2b00 cmp r3, #0 - 80370c2: da04 bge.n 80370ce - 80370c4: 89fb ldrh r3, [r7, #14] - 80370c6: f503 73b4 add.w r3, r3, #360 ; 0x168 - 80370ca: b29b uxth r3, r3 - 80370cc: 81fb strh r3, [r7, #14] + 8037028: f9b7 300e ldrsh.w r3, [r7, #14] + 803702c: 2b00 cmp r3, #0 + 803702e: da04 bge.n 803703a + 8037030: 89fb ldrh r3, [r7, #14] + 8037032: f503 73b4 add.w r3, r3, #360 ; 0x168 + 8037036: b29b uxth r3, r3 + 8037038: 81fb strh r3, [r7, #14] if(new_delta < 0) new_delta = 360 + new_delta; - 80370ce: f9b7 300c ldrsh.w r3, [r7, #12] - 80370d2: 2b00 cmp r3, #0 - 80370d4: da04 bge.n 80370e0 - 80370d6: 89bb ldrh r3, [r7, #12] - 80370d8: f503 73b4 add.w r3, r3, #360 ; 0x168 - 80370dc: b29b uxth r3, r3 - 80370de: 81bb strh r3, [r7, #12] + 803703a: f9b7 300c ldrsh.w r3, [r7, #12] + 803703e: 2b00 cmp r3, #0 + 8037040: da04 bge.n 803704c + 8037042: 89bb ldrh r3, [r7, #12] + 8037044: f503 73b4 add.w r3, r3, #360 ; 0x168 + 8037048: b29b uxth r3, r3 + 803704a: 81bb strh r3, [r7, #12] if(LV_ABS(new_delta - old_delta) > 180) lv_obj_invalidate(obj); - 80370e0: f9b7 200c ldrsh.w r2, [r7, #12] - 80370e4: f9b7 300e ldrsh.w r3, [r7, #14] - 80370e8: 1ad3 subs r3, r2, r3 - 80370ea: 2b00 cmp r3, #0 - 80370ec: bfb8 it lt - 80370ee: 425b neglt r3, r3 - 80370f0: 2bb4 cmp r3, #180 ; 0xb4 - 80370f2: dd03 ble.n 80370fc - 80370f4: 6878 ldr r0, [r7, #4] - 80370f6: f7d3 fcdc bl 800aab2 - 80370fa: e01a b.n 8037132 + 803704c: f9b7 200c ldrsh.w r2, [r7, #12] + 8037050: f9b7 300e ldrsh.w r3, [r7, #14] + 8037054: 1ad3 subs r3, r2, r3 + 8037056: 2b00 cmp r3, #0 + 8037058: bfb8 it lt + 803705a: 425b neglt r3, r3 + 803705c: 2bb4 cmp r3, #180 ; 0xb4 + 803705e: dd03 ble.n 8037068 + 8037060: 6878 ldr r0, [r7, #4] + 8037062: f7d3 fcf0 bl 800aa46 + 8037066: e01a b.n 803709e else if(new_delta < old_delta) inv_arc_area(obj, arc->bg_angle_start, start, LV_PART_MAIN); - 80370fc: f9b7 200c ldrsh.w r2, [r7, #12] - 8037100: f9b7 300e ldrsh.w r3, [r7, #14] - 8037104: 429a cmp r2, r3 - 8037106: da07 bge.n 8037118 - 8037108: 68bb ldr r3, [r7, #8] - 803710a: 8d59 ldrh r1, [r3, #42] ; 0x2a - 803710c: 887a ldrh r2, [r7, #2] - 803710e: 2300 movs r3, #0 - 8037110: 6878 ldr r0, [r7, #4] - 8037112: f000 fe37 bl 8037d84 - 8037116: e00c b.n 8037132 + 8037068: f9b7 200c ldrsh.w r2, [r7, #12] + 803706c: f9b7 300e ldrsh.w r3, [r7, #14] + 8037070: 429a cmp r2, r3 + 8037072: da07 bge.n 8037084 + 8037074: 68bb ldr r3, [r7, #8] + 8037076: 8d59 ldrh r1, [r3, #42] ; 0x2a + 8037078: 887a ldrh r2, [r7, #2] + 803707a: 2300 movs r3, #0 + 803707c: 6878 ldr r0, [r7, #4] + 803707e: f000 fe37 bl 8037cf0 + 8037082: e00c b.n 803709e else if(old_delta < new_delta) inv_arc_area(obj, start, arc->bg_angle_start, LV_PART_MAIN); - 8037118: f9b7 200e ldrsh.w r2, [r7, #14] - 803711c: f9b7 300c ldrsh.w r3, [r7, #12] - 8037120: 429a cmp r2, r3 - 8037122: da06 bge.n 8037132 - 8037124: 68bb ldr r3, [r7, #8] - 8037126: 8d5a ldrh r2, [r3, #42] ; 0x2a - 8037128: 8879 ldrh r1, [r7, #2] - 803712a: 2300 movs r3, #0 - 803712c: 6878 ldr r0, [r7, #4] - 803712e: f000 fe29 bl 8037d84 + 8037084: f9b7 200e ldrsh.w r2, [r7, #14] + 8037088: f9b7 300c ldrsh.w r3, [r7, #12] + 803708c: 429a cmp r2, r3 + 803708e: da06 bge.n 803709e + 8037090: 68bb ldr r3, [r7, #8] + 8037092: 8d5a ldrh r2, [r3, #42] ; 0x2a + 8037094: 8879 ldrh r1, [r7, #2] + 8037096: 2300 movs r3, #0 + 8037098: 6878 ldr r0, [r7, #4] + 803709a: f000 fe29 bl 8037cf0 arc->bg_angle_start = start; - 8037132: 68bb ldr r3, [r7, #8] - 8037134: 887a ldrh r2, [r7, #2] - 8037136: 855a strh r2, [r3, #42] ; 0x2a + 803709e: 68bb ldr r3, [r7, #8] + 80370a0: 887a ldrh r2, [r7, #2] + 80370a2: 855a strh r2, [r3, #42] ; 0x2a value_update(obj); - 8037138: 6878 ldr r0, [r7, #4] - 803713a: f001 f816 bl 803816a + 80370a4: 6878 ldr r0, [r7, #4] + 80370a6: f001 f816 bl 80380d6 } - 803713e: bf00 nop - 8037140: 3710 adds r7, #16 - 8037142: 46bd mov sp, r7 - 8037144: bd80 pop {r7, pc} + 80370aa: bf00 nop + 80370ac: 3710 adds r7, #16 + 80370ae: 46bd mov sp, r7 + 80370b0: bd80 pop {r7, pc} -08037146 : +080370b2 : void lv_arc_set_bg_end_angle(lv_obj_t * obj, uint16_t end) { - 8037146: b580 push {r7, lr} - 8037148: b084 sub sp, #16 - 803714a: af00 add r7, sp, #0 - 803714c: 6078 str r0, [r7, #4] - 803714e: 460b mov r3, r1 - 8037150: 807b strh r3, [r7, #2] + 80370b2: b580 push {r7, lr} + 80370b4: b084 sub sp, #16 + 80370b6: af00 add r7, sp, #0 + 80370b8: 6078 str r0, [r7, #4] + 80370ba: 460b mov r3, r1 + 80370bc: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_arc_t * arc = (lv_arc_t *)obj; - 8037152: 687b ldr r3, [r7, #4] - 8037154: 60bb str r3, [r7, #8] + 80370be: 687b ldr r3, [r7, #4] + 80370c0: 60bb str r3, [r7, #8] if(end > 360) end -= 360; - 8037156: 887b ldrh r3, [r7, #2] - 8037158: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 803715c: d903 bls.n 8037166 - 803715e: 887b ldrh r3, [r7, #2] - 8037160: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 - 8037164: 807b strh r3, [r7, #2] + 80370c2: 887b ldrh r3, [r7, #2] + 80370c4: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 80370c8: d903 bls.n 80370d2 + 80370ca: 887b ldrh r3, [r7, #2] + 80370cc: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 + 80370d0: 807b strh r3, [r7, #2] int16_t old_delta = arc->bg_angle_end - arc->bg_angle_start; - 8037166: 68bb ldr r3, [r7, #8] - 8037168: 8d9a ldrh r2, [r3, #44] ; 0x2c - 803716a: 68bb ldr r3, [r7, #8] - 803716c: 8d5b ldrh r3, [r3, #42] ; 0x2a - 803716e: 1ad3 subs r3, r2, r3 - 8037170: b29b uxth r3, r3 - 8037172: 81fb strh r3, [r7, #14] + 80370d2: 68bb ldr r3, [r7, #8] + 80370d4: 8d9a ldrh r2, [r3, #44] ; 0x2c + 80370d6: 68bb ldr r3, [r7, #8] + 80370d8: 8d5b ldrh r3, [r3, #42] ; 0x2a + 80370da: 1ad3 subs r3, r2, r3 + 80370dc: b29b uxth r3, r3 + 80370de: 81fb strh r3, [r7, #14] int16_t new_delta = end - arc->bg_angle_start; - 8037174: 68bb ldr r3, [r7, #8] - 8037176: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8037178: 887a ldrh r2, [r7, #2] - 803717a: 1ad3 subs r3, r2, r3 - 803717c: b29b uxth r3, r3 - 803717e: 81bb strh r3, [r7, #12] + 80370e0: 68bb ldr r3, [r7, #8] + 80370e2: 8d5b ldrh r3, [r3, #42] ; 0x2a + 80370e4: 887a ldrh r2, [r7, #2] + 80370e6: 1ad3 subs r3, r2, r3 + 80370e8: b29b uxth r3, r3 + 80370ea: 81bb strh r3, [r7, #12] if(old_delta < 0) old_delta = 360 + old_delta; - 8037180: f9b7 300e ldrsh.w r3, [r7, #14] - 8037184: 2b00 cmp r3, #0 - 8037186: da04 bge.n 8037192 - 8037188: 89fb ldrh r3, [r7, #14] - 803718a: f503 73b4 add.w r3, r3, #360 ; 0x168 - 803718e: b29b uxth r3, r3 - 8037190: 81fb strh r3, [r7, #14] + 80370ec: f9b7 300e ldrsh.w r3, [r7, #14] + 80370f0: 2b00 cmp r3, #0 + 80370f2: da04 bge.n 80370fe + 80370f4: 89fb ldrh r3, [r7, #14] + 80370f6: f503 73b4 add.w r3, r3, #360 ; 0x168 + 80370fa: b29b uxth r3, r3 + 80370fc: 81fb strh r3, [r7, #14] if(new_delta < 0) new_delta = 360 + new_delta; - 8037192: f9b7 300c ldrsh.w r3, [r7, #12] - 8037196: 2b00 cmp r3, #0 - 8037198: da04 bge.n 80371a4 - 803719a: 89bb ldrh r3, [r7, #12] - 803719c: f503 73b4 add.w r3, r3, #360 ; 0x168 - 80371a0: b29b uxth r3, r3 - 80371a2: 81bb strh r3, [r7, #12] + 80370fe: f9b7 300c ldrsh.w r3, [r7, #12] + 8037102: 2b00 cmp r3, #0 + 8037104: da04 bge.n 8037110 + 8037106: 89bb ldrh r3, [r7, #12] + 8037108: f503 73b4 add.w r3, r3, #360 ; 0x168 + 803710c: b29b uxth r3, r3 + 803710e: 81bb strh r3, [r7, #12] if(LV_ABS(new_delta - old_delta) > 180) lv_obj_invalidate(obj); - 80371a4: f9b7 200c ldrsh.w r2, [r7, #12] - 80371a8: f9b7 300e ldrsh.w r3, [r7, #14] - 80371ac: 1ad3 subs r3, r2, r3 - 80371ae: 2b00 cmp r3, #0 - 80371b0: bfb8 it lt - 80371b2: 425b neglt r3, r3 - 80371b4: 2bb4 cmp r3, #180 ; 0xb4 - 80371b6: dd03 ble.n 80371c0 - 80371b8: 6878 ldr r0, [r7, #4] - 80371ba: f7d3 fc7a bl 800aab2 - 80371be: e01a b.n 80371f6 + 8037110: f9b7 200c ldrsh.w r2, [r7, #12] + 8037114: f9b7 300e ldrsh.w r3, [r7, #14] + 8037118: 1ad3 subs r3, r2, r3 + 803711a: 2b00 cmp r3, #0 + 803711c: bfb8 it lt + 803711e: 425b neglt r3, r3 + 8037120: 2bb4 cmp r3, #180 ; 0xb4 + 8037122: dd03 ble.n 803712c + 8037124: 6878 ldr r0, [r7, #4] + 8037126: f7d3 fc8e bl 800aa46 + 803712a: e01a b.n 8037162 else if(new_delta < old_delta) inv_arc_area(obj, end, arc->bg_angle_end, LV_PART_MAIN); - 80371c0: f9b7 200c ldrsh.w r2, [r7, #12] - 80371c4: f9b7 300e ldrsh.w r3, [r7, #14] - 80371c8: 429a cmp r2, r3 - 80371ca: da07 bge.n 80371dc - 80371cc: 68bb ldr r3, [r7, #8] - 80371ce: 8d9a ldrh r2, [r3, #44] ; 0x2c - 80371d0: 8879 ldrh r1, [r7, #2] - 80371d2: 2300 movs r3, #0 - 80371d4: 6878 ldr r0, [r7, #4] - 80371d6: f000 fdd5 bl 8037d84 - 80371da: e00c b.n 80371f6 + 803712c: f9b7 200c ldrsh.w r2, [r7, #12] + 8037130: f9b7 300e ldrsh.w r3, [r7, #14] + 8037134: 429a cmp r2, r3 + 8037136: da07 bge.n 8037148 + 8037138: 68bb ldr r3, [r7, #8] + 803713a: 8d9a ldrh r2, [r3, #44] ; 0x2c + 803713c: 8879 ldrh r1, [r7, #2] + 803713e: 2300 movs r3, #0 + 8037140: 6878 ldr r0, [r7, #4] + 8037142: f000 fdd5 bl 8037cf0 + 8037146: e00c b.n 8037162 else if(old_delta < new_delta) inv_arc_area(obj, arc->bg_angle_end, end, LV_PART_MAIN); - 80371dc: f9b7 200e ldrsh.w r2, [r7, #14] - 80371e0: f9b7 300c ldrsh.w r3, [r7, #12] - 80371e4: 429a cmp r2, r3 - 80371e6: da06 bge.n 80371f6 - 80371e8: 68bb ldr r3, [r7, #8] - 80371ea: 8d99 ldrh r1, [r3, #44] ; 0x2c - 80371ec: 887a ldrh r2, [r7, #2] - 80371ee: 2300 movs r3, #0 - 80371f0: 6878 ldr r0, [r7, #4] - 80371f2: f000 fdc7 bl 8037d84 + 8037148: f9b7 200e ldrsh.w r2, [r7, #14] + 803714c: f9b7 300c ldrsh.w r3, [r7, #12] + 8037150: 429a cmp r2, r3 + 8037152: da06 bge.n 8037162 + 8037154: 68bb ldr r3, [r7, #8] + 8037156: 8d99 ldrh r1, [r3, #44] ; 0x2c + 8037158: 887a ldrh r2, [r7, #2] + 803715a: 2300 movs r3, #0 + 803715c: 6878 ldr r0, [r7, #4] + 803715e: f000 fdc7 bl 8037cf0 arc->bg_angle_end = end; - 80371f6: 68bb ldr r3, [r7, #8] - 80371f8: 887a ldrh r2, [r7, #2] - 80371fa: 859a strh r2, [r3, #44] ; 0x2c + 8037162: 68bb ldr r3, [r7, #8] + 8037164: 887a ldrh r2, [r7, #2] + 8037166: 859a strh r2, [r3, #44] ; 0x2c value_update(obj); - 80371fc: 6878 ldr r0, [r7, #4] - 80371fe: f000 ffb4 bl 803816a + 8037168: 6878 ldr r0, [r7, #4] + 803716a: f000 ffb4 bl 80380d6 } - 8037202: bf00 nop - 8037204: 3710 adds r7, #16 - 8037206: 46bd mov sp, r7 - 8037208: bd80 pop {r7, pc} + 803716e: bf00 nop + 8037170: 3710 adds r7, #16 + 8037172: 46bd mov sp, r7 + 8037174: bd80 pop {r7, pc} -0803720a : +08037176 : void lv_arc_set_bg_angles(lv_obj_t * obj, uint16_t start, uint16_t end) { - 803720a: b580 push {r7, lr} - 803720c: b082 sub sp, #8 - 803720e: af00 add r7, sp, #0 - 8037210: 6078 str r0, [r7, #4] - 8037212: 460b mov r3, r1 - 8037214: 807b strh r3, [r7, #2] - 8037216: 4613 mov r3, r2 - 8037218: 803b strh r3, [r7, #0] + 8037176: b580 push {r7, lr} + 8037178: b082 sub sp, #8 + 803717a: af00 add r7, sp, #0 + 803717c: 6078 str r0, [r7, #4] + 803717e: 460b mov r3, r1 + 8037180: 807b strh r3, [r7, #2] + 8037182: 4613 mov r3, r2 + 8037184: 803b strh r3, [r7, #0] lv_arc_set_bg_end_angle(obj, end); - 803721a: 883b ldrh r3, [r7, #0] - 803721c: 4619 mov r1, r3 - 803721e: 6878 ldr r0, [r7, #4] - 8037220: f7ff ff91 bl 8037146 + 8037186: 883b ldrh r3, [r7, #0] + 8037188: 4619 mov r1, r3 + 803718a: 6878 ldr r0, [r7, #4] + 803718c: f7ff ff91 bl 80370b2 lv_arc_set_bg_start_angle(obj, start); - 8037224: 887b ldrh r3, [r7, #2] - 8037226: 4619 mov r1, r3 - 8037228: 6878 ldr r0, [r7, #4] - 803722a: f7ff ff2a bl 8037082 + 8037190: 887b ldrh r3, [r7, #2] + 8037192: 4619 mov r1, r3 + 8037194: 6878 ldr r0, [r7, #4] + 8037196: f7ff ff2a bl 8036fee } - 803722e: bf00 nop - 8037230: 3708 adds r7, #8 - 8037232: 46bd mov sp, r7 - 8037234: bd80 pop {r7, pc} + 803719a: bf00 nop + 803719c: 3708 adds r7, #8 + 803719e: 46bd mov sp, r7 + 80371a0: bd80 pop {r7, pc} -08037236 : +080371a2 : void lv_arc_set_rotation(lv_obj_t * obj, uint16_t rotation) { - 8037236: b580 push {r7, lr} - 8037238: b084 sub sp, #16 - 803723a: af00 add r7, sp, #0 - 803723c: 6078 str r0, [r7, #4] - 803723e: 460b mov r3, r1 - 8037240: 807b strh r3, [r7, #2] + 80371a2: b580 push {r7, lr} + 80371a4: b084 sub sp, #16 + 80371a6: af00 add r7, sp, #0 + 80371a8: 6078 str r0, [r7, #4] + 80371aa: 460b mov r3, r1 + 80371ac: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_arc_t * arc = (lv_arc_t *)obj; - 8037242: 687b ldr r3, [r7, #4] - 8037244: 60fb str r3, [r7, #12] + 80371ae: 687b ldr r3, [r7, #4] + 80371b0: 60fb str r3, [r7, #12] arc->rotation = rotation; - 8037246: 68fb ldr r3, [r7, #12] - 8037248: 887a ldrh r2, [r7, #2] - 803724a: 849a strh r2, [r3, #36] ; 0x24 + 80371b2: 68fb ldr r3, [r7, #12] + 80371b4: 887a ldrh r2, [r7, #2] + 80371b6: 849a strh r2, [r3, #36] ; 0x24 lv_obj_invalidate(obj); - 803724c: 6878 ldr r0, [r7, #4] - 803724e: f7d3 fc30 bl 800aab2 + 80371b8: 6878 ldr r0, [r7, #4] + 80371ba: f7d3 fc44 bl 800aa46 } - 8037252: bf00 nop - 8037254: 3710 adds r7, #16 - 8037256: 46bd mov sp, r7 - 8037258: bd80 pop {r7, pc} + 80371be: bf00 nop + 80371c0: 3710 adds r7, #16 + 80371c2: 46bd mov sp, r7 + 80371c4: bd80 pop {r7, pc} -0803725a : +080371c6 : lv_arc_set_value(obj, val); } void lv_arc_set_value(lv_obj_t * obj, int16_t value) { - 803725a: b580 push {r7, lr} - 803725c: b084 sub sp, #16 - 803725e: af00 add r7, sp, #0 - 8037260: 6078 str r0, [r7, #4] - 8037262: 460b mov r3, r1 - 8037264: 807b strh r3, [r7, #2] + 80371c6: b580 push {r7, lr} + 80371c8: b084 sub sp, #16 + 80371ca: af00 add r7, sp, #0 + 80371cc: 6078 str r0, [r7, #4] + 80371ce: 460b mov r3, r1 + 80371d0: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_arc_t * arc = (lv_arc_t *)obj; - 8037266: 687b ldr r3, [r7, #4] - 8037268: 60fb str r3, [r7, #12] + 80371d2: 687b ldr r3, [r7, #4] + 80371d4: 60fb str r3, [r7, #12] if(arc->value == value) return; - 803726a: 68fb ldr r3, [r7, #12] - 803726c: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 8037270: f9b7 2002 ldrsh.w r2, [r7, #2] - 8037274: 429a cmp r2, r3 - 8037276: d01f beq.n 80372b8 + 80371d6: 68fb ldr r3, [r7, #12] + 80371d8: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 80371dc: f9b7 2002 ldrsh.w r2, [r7, #2] + 80371e0: 429a cmp r2, r3 + 80371e2: d01f beq.n 8037224 int16_t new_value; new_value = value > arc->max_value ? arc->max_value : value; - 8037278: 68fb ldr r3, [r7, #12] - 803727a: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 - 803727e: f9b7 2002 ldrsh.w r2, [r7, #2] - 8037282: 4293 cmp r3, r2 - 8037284: bfa8 it ge - 8037286: 4613 movge r3, r2 - 8037288: 817b strh r3, [r7, #10] + 80371e4: 68fb ldr r3, [r7, #12] + 80371e6: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 + 80371ea: f9b7 2002 ldrsh.w r2, [r7, #2] + 80371ee: 4293 cmp r3, r2 + 80371f0: bfa8 it ge + 80371f2: 4613 movge r3, r2 + 80371f4: 817b strh r3, [r7, #10] new_value = new_value < arc->min_value ? arc->min_value : new_value; - 803728a: 68fb ldr r3, [r7, #12] - 803728c: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 - 8037290: f9b7 200a ldrsh.w r2, [r7, #10] - 8037294: 4293 cmp r3, r2 - 8037296: bfb8 it lt - 8037298: 4613 movlt r3, r2 - 803729a: 817b strh r3, [r7, #10] + 80371f6: 68fb ldr r3, [r7, #12] + 80371f8: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 + 80371fc: f9b7 200a ldrsh.w r2, [r7, #10] + 8037200: 4293 cmp r3, r2 + 8037202: bfb8 it lt + 8037204: 4613 movlt r3, r2 + 8037206: 817b strh r3, [r7, #10] if(arc->value == new_value) return; - 803729c: 68fb ldr r3, [r7, #12] - 803729e: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 80372a2: f9b7 200a ldrsh.w r2, [r7, #10] - 80372a6: 429a cmp r2, r3 - 80372a8: d008 beq.n 80372bc + 8037208: 68fb ldr r3, [r7, #12] + 803720a: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 803720e: f9b7 200a ldrsh.w r2, [r7, #10] + 8037212: 429a cmp r2, r3 + 8037214: d008 beq.n 8037228 arc->value = new_value; - 80372aa: 68fb ldr r3, [r7, #12] - 80372ac: 897a ldrh r2, [r7, #10] - 80372ae: 85da strh r2, [r3, #46] ; 0x2e + 8037216: 68fb ldr r3, [r7, #12] + 8037218: 897a ldrh r2, [r7, #10] + 803721a: 85da strh r2, [r3, #46] ; 0x2e value_update(obj); - 80372b0: 6878 ldr r0, [r7, #4] - 80372b2: f000 ff5a bl 803816a - 80372b6: e002 b.n 80372be + 803721c: 6878 ldr r0, [r7, #4] + 803721e: f000 ff5a bl 80380d6 + 8037222: e002 b.n 803722a if(arc->value == value) return; - 80372b8: bf00 nop - 80372ba: e000 b.n 80372be + 8037224: bf00 nop + 8037226: e000 b.n 803722a if(arc->value == new_value) return; - 80372bc: bf00 nop + 8037228: bf00 nop } - 80372be: 3710 adds r7, #16 - 80372c0: 46bd mov sp, r7 - 80372c2: bd80 pop {r7, pc} + 803722a: 3710 adds r7, #16 + 803722c: 46bd mov sp, r7 + 803722e: bd80 pop {r7, pc} -080372c4 : +08037230 : LV_ASSERT_OBJ(obj, MY_CLASS); return ((lv_arc_t *) obj)->bg_angle_end; } int16_t lv_arc_get_value(const lv_obj_t * obj) { - 80372c4: b480 push {r7} - 80372c6: b083 sub sp, #12 - 80372c8: af00 add r7, sp, #0 - 80372ca: 6078 str r0, [r7, #4] + 8037230: b480 push {r7} + 8037232: b083 sub sp, #12 + 8037234: af00 add r7, sp, #0 + 8037236: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); return ((lv_arc_t *) obj)->value; - 80372cc: 687b ldr r3, [r7, #4] - 80372ce: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 8037238: 687b ldr r3, [r7, #4] + 803723a: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e } - 80372d2: 4618 mov r0, r3 - 80372d4: 370c adds r7, #12 - 80372d6: 46bd mov sp, r7 - 80372d8: bc80 pop {r7} - 80372da: 4770 bx lr + 803723e: 4618 mov r0, r3 + 8037240: 370c adds r7, #12 + 8037242: 46bd mov sp, r7 + 8037244: bc80 pop {r7} + 8037246: 4770 bx lr -080372dc : +08037248 : /********************** * STATIC FUNCTIONS **********************/ static void lv_arc_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 80372dc: b580 push {r7, lr} - 80372de: b084 sub sp, #16 - 80372e0: af00 add r7, sp, #0 - 80372e2: 6078 str r0, [r7, #4] - 80372e4: 6039 str r1, [r7, #0] + 8037248: b580 push {r7, lr} + 803724a: b084 sub sp, #16 + 803724c: af00 add r7, sp, #0 + 803724e: 6078 str r0, [r7, #4] + 8037250: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_arc_t * arc = (lv_arc_t *)obj; - 80372e6: 683b ldr r3, [r7, #0] - 80372e8: 60fb str r3, [r7, #12] + 8037252: 683b ldr r3, [r7, #0] + 8037254: 60fb str r3, [r7, #12] /*Initialize the allocated 'ext'*/ arc->rotation = 0; - 80372ea: 68fb ldr r3, [r7, #12] - 80372ec: 2200 movs r2, #0 - 80372ee: 849a strh r2, [r3, #36] ; 0x24 + 8037256: 68fb ldr r3, [r7, #12] + 8037258: 2200 movs r2, #0 + 803725a: 849a strh r2, [r3, #36] ; 0x24 arc->bg_angle_start = 135; - 80372f0: 68fb ldr r3, [r7, #12] - 80372f2: 2287 movs r2, #135 ; 0x87 - 80372f4: 855a strh r2, [r3, #42] ; 0x2a + 803725c: 68fb ldr r3, [r7, #12] + 803725e: 2287 movs r2, #135 ; 0x87 + 8037260: 855a strh r2, [r3, #42] ; 0x2a arc->bg_angle_end = 45; - 80372f6: 68fb ldr r3, [r7, #12] - 80372f8: 222d movs r2, #45 ; 0x2d - 80372fa: 859a strh r2, [r3, #44] ; 0x2c + 8037262: 68fb ldr r3, [r7, #12] + 8037264: 222d movs r2, #45 ; 0x2d + 8037266: 859a strh r2, [r3, #44] ; 0x2c arc->indic_angle_start = 135; - 80372fc: 68fb ldr r3, [r7, #12] - 80372fe: 2287 movs r2, #135 ; 0x87 - 8037300: 84da strh r2, [r3, #38] ; 0x26 + 8037268: 68fb ldr r3, [r7, #12] + 803726a: 2287 movs r2, #135 ; 0x87 + 803726c: 84da strh r2, [r3, #38] ; 0x26 arc->indic_angle_end = 270; - 8037302: 68fb ldr r3, [r7, #12] - 8037304: f44f 7287 mov.w r2, #270 ; 0x10e - 8037308: 851a strh r2, [r3, #40] ; 0x28 + 803726e: 68fb ldr r3, [r7, #12] + 8037270: f44f 7287 mov.w r2, #270 ; 0x10e + 8037274: 851a strh r2, [r3, #40] ; 0x28 arc->type = LV_ARC_MODE_NORMAL; - 803730a: 68fa ldr r2, [r7, #12] - 803730c: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 - 8037310: f36f 0342 bfc r3, #1, #2 - 8037314: f882 3034 strb.w r3, [r2, #52] ; 0x34 + 8037276: 68fa ldr r2, [r7, #12] + 8037278: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 + 803727c: f36f 0342 bfc r3, #1, #2 + 8037280: f882 3034 strb.w r3, [r2, #52] ; 0x34 arc->value = VALUE_UNSET; - 8037318: 68fb ldr r3, [r7, #12] - 803731a: f44f 4200 mov.w r2, #32768 ; 0x8000 - 803731e: 85da strh r2, [r3, #46] ; 0x2e + 8037284: 68fb ldr r3, [r7, #12] + 8037286: f44f 4200 mov.w r2, #32768 ; 0x8000 + 803728a: 85da strh r2, [r3, #46] ; 0x2e arc->min_close = 1; - 8037320: 68fa ldr r2, [r7, #12] - 8037322: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 - 8037326: f043 0308 orr.w r3, r3, #8 - 803732a: f882 3034 strb.w r3, [r2, #52] ; 0x34 + 803728c: 68fa ldr r2, [r7, #12] + 803728e: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 + 8037292: f043 0308 orr.w r3, r3, #8 + 8037296: f882 3034 strb.w r3, [r2, #52] ; 0x34 arc->min_value = 0; - 803732e: 68fb ldr r3, [r7, #12] - 8037330: 2200 movs r2, #0 - 8037332: 861a strh r2, [r3, #48] ; 0x30 + 803729a: 68fb ldr r3, [r7, #12] + 803729c: 2200 movs r2, #0 + 803729e: 861a strh r2, [r3, #48] ; 0x30 arc->max_value = 100; - 8037334: 68fb ldr r3, [r7, #12] - 8037336: 2264 movs r2, #100 ; 0x64 - 8037338: 865a strh r2, [r3, #50] ; 0x32 + 80372a0: 68fb ldr r3, [r7, #12] + 80372a2: 2264 movs r2, #100 ; 0x64 + 80372a4: 865a strh r2, [r3, #50] ; 0x32 arc->dragging = false; - 803733a: 68fa ldr r2, [r7, #12] - 803733c: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 - 8037340: f36f 0300 bfc r3, #0, #1 - 8037344: f882 3034 strb.w r3, [r2, #52] ; 0x34 + 80372a6: 68fa ldr r2, [r7, #12] + 80372a8: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 + 80372ac: f36f 0300 bfc r3, #0, #1 + 80372b0: f882 3034 strb.w r3, [r2, #52] ; 0x34 arc->chg_rate = 720; - 8037348: 68fb ldr r3, [r7, #12] - 803734a: f44f 7234 mov.w r2, #720 ; 0x2d0 - 803734e: 86da strh r2, [r3, #54] ; 0x36 + 80372b4: 68fb ldr r3, [r7, #12] + 80372b6: f44f 7234 mov.w r2, #720 ; 0x2d0 + 80372ba: 86da strh r2, [r3, #54] ; 0x36 arc->last_tick = lv_tick_get(); - 8037350: f7f9 fa2c bl 80307ac - 8037354: 4602 mov r2, r0 - 8037356: 68fb ldr r3, [r7, #12] - 8037358: 639a str r2, [r3, #56] ; 0x38 + 80372bc: f7f9 fa2c bl 8030718 + 80372c0: 4602 mov r2, r0 + 80372c2: 68fb ldr r3, [r7, #12] + 80372c4: 639a str r2, [r3, #56] ; 0x38 arc->last_angle = arc->indic_angle_end; - 803735a: 68fb ldr r3, [r7, #12] - 803735c: 8d1b ldrh r3, [r3, #40] ; 0x28 - 803735e: b21a sxth r2, r3 - 8037360: 68fb ldr r3, [r7, #12] - 8037362: 879a strh r2, [r3, #60] ; 0x3c + 80372c6: 68fb ldr r3, [r7, #12] + 80372c8: 8d1b ldrh r3, [r3, #40] ; 0x28 + 80372ca: b21a sxth r2, r3 + 80372cc: 68fb ldr r3, [r7, #12] + 80372ce: 879a strh r2, [r3, #60] ; 0x3c lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); - 8037364: 2102 movs r1, #2 - 8037366: 6838 ldr r0, [r7, #0] - 8037368: f7cf f926 bl 80065b8 + 80372d0: 2102 movs r1, #2 + 80372d2: 6838 ldr r0, [r7, #0] + 80372d4: f7cf f93a bl 800654c lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN); - 803736c: f44f 7140 mov.w r1, #768 ; 0x300 - 8037370: 6838 ldr r0, [r7, #0] - 8037372: f7cf f975 bl 8006660 + 80372d8: f44f 7140 mov.w r1, #768 ; 0x300 + 80372dc: 6838 ldr r0, [r7, #0] + 80372de: f7cf f989 bl 80065f4 lv_obj_set_ext_click_area(obj, LV_DPI_DEF / 10); - 8037376: 210d movs r1, #13 - 8037378: 6838 ldr r0, [r7, #0] - 803737a: f7d3 fcd6 bl 800ad2a + 80372e2: 210d movs r1, #13 + 80372e4: 6838 ldr r0, [r7, #0] + 80372e6: f7d3 fcea bl 800acbe LV_TRACE_OBJ_CREATE("finished"); } - 803737e: bf00 nop - 8037380: 3710 adds r7, #16 - 8037382: 46bd mov sp, r7 - 8037384: bd80 pop {r7, pc} + 80372ea: bf00 nop + 80372ec: 3710 adds r7, #16 + 80372ee: 46bd mov sp, r7 + 80372f0: bd80 pop {r7, pc} ... -08037388 : +080372f4 : static void lv_arc_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 8037388: b5b0 push {r4, r5, r7, lr} - 803738a: b0a2 sub sp, #136 ; 0x88 - 803738c: af02 add r7, sp, #8 - 803738e: 6078 str r0, [r7, #4] - 8037390: 6039 str r1, [r7, #0] + 80372f4: b5b0 push {r4, r5, r7, lr} + 80372f6: b0a2 sub sp, #136 ; 0x88 + 80372f8: af02 add r7, sp, #8 + 80372fa: 6078 str r0, [r7, #4] + 80372fc: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res; /*Call the ancestor's event handler*/ res = lv_obj_event_base(MY_CLASS, e); - 8037392: 6839 ldr r1, [r7, #0] - 8037394: 48b5 ldr r0, [pc, #724] ; (803766c ) - 8037396: f7cb f8b5 bl 8002504 - 803739a: 4603 mov r3, r0 - 803739c: f887 3077 strb.w r3, [r7, #119] ; 0x77 + 80372fe: 6839 ldr r1, [r7, #0] + 8037300: 48b5 ldr r0, [pc, #724] ; (80375d8 ) + 8037302: f7cb f8c9 bl 8002498 + 8037306: 4603 mov r3, r0 + 8037308: f887 3077 strb.w r3, [r7, #119] ; 0x77 if(res != LV_RES_OK) return; - 80373a0: f897 3077 ldrb.w r3, [r7, #119] ; 0x77 - 80373a4: 2b01 cmp r3, #1 - 80373a6: f040 8387 bne.w 8037ab8 + 803730c: f897 3077 ldrb.w r3, [r7, #119] ; 0x77 + 8037310: 2b01 cmp r3, #1 + 8037312: f040 8387 bne.w 8037a24 lv_event_code_t code = lv_event_get_code(e); - 80373aa: 6838 ldr r0, [r7, #0] - 80373ac: f7cb f8fe bl 80025ac - 80373b0: 4603 mov r3, r0 - 80373b2: f887 3076 strb.w r3, [r7, #118] ; 0x76 + 8037316: 6838 ldr r0, [r7, #0] + 8037318: f7cb f912 bl 8002540 + 803731c: 4603 mov r3, r0 + 803731e: f887 3076 strb.w r3, [r7, #118] ; 0x76 lv_obj_t * obj = lv_event_get_target(e); - 80373b6: 6838 ldr r0, [r7, #0] - 80373b8: f7cb f8e2 bl 8002580 - 80373bc: 6738 str r0, [r7, #112] ; 0x70 + 8037322: 6838 ldr r0, [r7, #0] + 8037324: f7cb f8f6 bl 8002514 + 8037328: 6738 str r0, [r7, #112] ; 0x70 lv_arc_t * arc = (lv_arc_t *)lv_event_get_target(e); - 80373be: 6838 ldr r0, [r7, #0] - 80373c0: f7cb f8de bl 8002580 - 80373c4: 66f8 str r0, [r7, #108] ; 0x6c + 803732a: 6838 ldr r0, [r7, #0] + 803732c: f7cb f8f2 bl 8002514 + 8037330: 66f8 str r0, [r7, #108] ; 0x6c if(code == LV_EVENT_PRESSING) { - 80373c6: f897 3076 ldrb.w r3, [r7, #118] ; 0x76 - 80373ca: 2b02 cmp r3, #2 - 80373cc: f040 81dd bne.w 803778a + 8037332: f897 3076 ldrb.w r3, [r7, #118] ; 0x76 + 8037336: 2b02 cmp r3, #2 + 8037338: f040 81dd bne.w 80376f6 lv_indev_t * indev = lv_indev_get_act(); - 80373d0: f7cb ffa2 bl 8003318 - 80373d4: 63f8 str r0, [r7, #60] ; 0x3c + 803733c: f7cb ffb6 bl 80032ac + 8037340: 63f8 str r0, [r7, #60] ; 0x3c if(indev == NULL) return; - 80373d6: 6bfb ldr r3, [r7, #60] ; 0x3c - 80373d8: 2b00 cmp r3, #0 - 80373da: f000 836f beq.w 8037abc + 8037342: 6bfb ldr r3, [r7, #60] ; 0x3c + 8037344: 2b00 cmp r3, #0 + 8037346: f000 836f beq.w 8037a28 /*Handle only pointers here*/ lv_indev_type_t indev_type = lv_indev_get_type(indev); - 80373de: 6bf8 ldr r0, [r7, #60] ; 0x3c - 80373e0: f7cb ffa4 bl 800332c - 80373e4: 4603 mov r3, r0 - 80373e6: f887 303b strb.w r3, [r7, #59] ; 0x3b + 803734a: 6bf8 ldr r0, [r7, #60] ; 0x3c + 803734c: f7cb ffb8 bl 80032c0 + 8037350: 4603 mov r3, r0 + 8037352: f887 303b strb.w r3, [r7, #59] ; 0x3b if(indev_type != LV_INDEV_TYPE_POINTER) return; - 80373ea: f897 303b ldrb.w r3, [r7, #59] ; 0x3b - 80373ee: 2b01 cmp r3, #1 - 80373f0: f040 8366 bne.w 8037ac0 + 8037356: f897 303b ldrb.w r3, [r7, #59] ; 0x3b + 803735a: 2b01 cmp r3, #1 + 803735c: f040 8366 bne.w 8037a2c lv_point_t p; lv_indev_get_point(indev, &p); - 80373f4: f107 0320 add.w r3, r7, #32 - 80373f8: 4619 mov r1, r3 - 80373fa: 6bf8 ldr r0, [r7, #60] ; 0x3c - 80373fc: f7cc f87e bl 80034fc + 8037360: f107 0320 add.w r3, r7, #32 + 8037364: 4619 mov r1, r3 + 8037366: 6bf8 ldr r0, [r7, #60] ; 0x3c + 8037368: f7cc f892 bl 8003490 /*Make point relative to the arc's center*/ lv_point_t center; lv_coord_t r; get_center(obj, ¢er, &r); - 8037400: f107 021a add.w r2, r7, #26 - 8037404: f107 031c add.w r3, r7, #28 - 8037408: 4619 mov r1, r3 - 803740a: 6f38 ldr r0, [r7, #112] ; 0x70 - 803740c: f000 fd58 bl 8037ec0 + 803736c: f107 021a add.w r2, r7, #26 + 8037370: f107 031c add.w r3, r7, #28 + 8037374: 4619 mov r1, r3 + 8037376: 6f38 ldr r0, [r7, #112] ; 0x70 + 8037378: f000 fd58 bl 8037e2c p.x -= center.x; - 8037410: f9b7 3020 ldrsh.w r3, [r7, #32] - 8037414: b29a uxth r2, r3 - 8037416: f9b7 301c ldrsh.w r3, [r7, #28] - 803741a: b29b uxth r3, r3 - 803741c: 1ad3 subs r3, r2, r3 - 803741e: b29b uxth r3, r3 - 8037420: b21b sxth r3, r3 - 8037422: 843b strh r3, [r7, #32] + 803737c: f9b7 3020 ldrsh.w r3, [r7, #32] + 8037380: b29a uxth r2, r3 + 8037382: f9b7 301c ldrsh.w r3, [r7, #28] + 8037386: b29b uxth r3, r3 + 8037388: 1ad3 subs r3, r2, r3 + 803738a: b29b uxth r3, r3 + 803738c: b21b sxth r3, r3 + 803738e: 843b strh r3, [r7, #32] p.y -= center.y; - 8037424: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 8037428: b29a uxth r2, r3 - 803742a: f9b7 301e ldrsh.w r3, [r7, #30] - 803742e: b29b uxth r3, r3 - 8037430: 1ad3 subs r3, r2, r3 - 8037432: b29b uxth r3, r3 - 8037434: b21b sxth r3, r3 - 8037436: 847b strh r3, [r7, #34] ; 0x22 + 8037390: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 8037394: b29a uxth r2, r3 + 8037396: f9b7 301e ldrsh.w r3, [r7, #30] + 803739a: b29b uxth r3, r3 + 803739c: 1ad3 subs r3, r2, r3 + 803739e: b29b uxth r3, r3 + 80373a0: b21b sxth r3, r3 + 80373a2: 847b strh r3, [r7, #34] ; 0x22 /*Enter dragging mode if pressed out of the knob*/ if(arc->dragging == false) { - 8037438: 6efb ldr r3, [r7, #108] ; 0x6c - 803743a: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 - 803743e: f003 0301 and.w r3, r3, #1 - 8037442: b2db uxtb r3, r3 - 8037444: 2b00 cmp r3, #0 - 8037446: d15b bne.n 8037500 + 80373a4: 6efb ldr r3, [r7, #108] ; 0x6c + 80373a6: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 + 80373aa: f003 0301 and.w r3, r3, #1 + 80373ae: b2db uxtb r3, r3 + 80373b0: 2b00 cmp r3, #0 + 80373b2: d15b bne.n 803746c lv_coord_t indic_width = lv_obj_get_style_arc_width(obj, LV_PART_INDICATOR); - 8037448: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803744c: 6f38 ldr r0, [r7, #112] ; 0x70 - 803744e: f7ff fd0b bl 8036e68 - 8037452: 4603 mov r3, r0 - 8037454: 873b strh r3, [r7, #56] ; 0x38 + 80373b4: f44f 3100 mov.w r1, #131072 ; 0x20000 + 80373b8: 6f38 ldr r0, [r7, #112] ; 0x70 + 80373ba: f7ff fd0b bl 8036dd4 + 80373be: 4603 mov r3, r0 + 80373c0: 873b strh r3, [r7, #56] ; 0x38 r -= indic_width; - 8037456: f9b7 301a ldrsh.w r3, [r7, #26] - 803745a: b29a uxth r2, r3 - 803745c: 8f3b ldrh r3, [r7, #56] ; 0x38 - 803745e: 1ad3 subs r3, r2, r3 - 8037460: b29b uxth r3, r3 - 8037462: b21b sxth r3, r3 - 8037464: 837b strh r3, [r7, #26] + 80373c2: f9b7 301a ldrsh.w r3, [r7, #26] + 80373c6: b29a uxth r2, r3 + 80373c8: 8f3b ldrh r3, [r7, #56] ; 0x38 + 80373ca: 1ad3 subs r3, r2, r3 + 80373cc: b29b uxth r3, r3 + 80373ce: b21b sxth r3, r3 + 80373d0: 837b strh r3, [r7, #26] /*Add some more sensitive area if there is no advanced git testing. * (Advanced hit testing is more precise)*/ if(lv_obj_has_flag(obj, LV_OBJ_FLAG_ADV_HITTEST)) { - 8037466: f44f 3180 mov.w r1, #65536 ; 0x10000 - 803746a: 6f38 ldr r0, [r7, #112] ; 0x70 - 803746c: f7cf f989 bl 8006782 - 8037470: 4603 mov r3, r0 - 8037472: 2b00 cmp r3, #0 - 8037474: d008 beq.n 8037488 + 80373d2: f44f 3180 mov.w r1, #65536 ; 0x10000 + 80373d6: 6f38 ldr r0, [r7, #112] ; 0x70 + 80373d8: f7cf f99d bl 8006716 + 80373dc: 4603 mov r3, r0 + 80373de: 2b00 cmp r3, #0 + 80373e0: d008 beq.n 80373f4 r -= indic_width; - 8037476: f9b7 301a ldrsh.w r3, [r7, #26] - 803747a: b29a uxth r2, r3 - 803747c: 8f3b ldrh r3, [r7, #56] ; 0x38 - 803747e: 1ad3 subs r3, r2, r3 - 8037480: b29b uxth r3, r3 - 8037482: b21b sxth r3, r3 - 8037484: 837b strh r3, [r7, #26] - 8037486: e014 b.n 80374b2 + 80373e2: f9b7 301a ldrsh.w r3, [r7, #26] + 80373e6: b29a uxth r2, r3 + 80373e8: 8f3b ldrh r3, [r7, #56] ; 0x38 + 80373ea: 1ad3 subs r3, r2, r3 + 80373ec: b29b uxth r3, r3 + 80373ee: b21b sxth r3, r3 + 80373f0: 837b strh r3, [r7, #26] + 80373f2: e014 b.n 803741e } else { r -= LV_MAX(r / 4, indic_width); - 8037488: f9b7 301a ldrsh.w r3, [r7, #26] - 803748c: b29a uxth r2, r3 - 803748e: f9b7 301a ldrsh.w r3, [r7, #26] - 8037492: 2b00 cmp r3, #0 - 8037494: da00 bge.n 8037498 - 8037496: 3303 adds r3, #3 - 8037498: 109b asrs r3, r3, #2 - 803749a: b21b sxth r3, r3 - 803749c: f9b7 1038 ldrsh.w r1, [r7, #56] ; 0x38 - 80374a0: 428b cmp r3, r1 - 80374a2: bfb8 it lt - 80374a4: 460b movlt r3, r1 - 80374a6: b21b sxth r3, r3 - 80374a8: b29b uxth r3, r3 - 80374aa: 1ad3 subs r3, r2, r3 - 80374ac: b29b uxth r3, r3 - 80374ae: b21b sxth r3, r3 - 80374b0: 837b strh r3, [r7, #26] + 80373f4: f9b7 301a ldrsh.w r3, [r7, #26] + 80373f8: b29a uxth r2, r3 + 80373fa: f9b7 301a ldrsh.w r3, [r7, #26] + 80373fe: 2b00 cmp r3, #0 + 8037400: da00 bge.n 8037404 + 8037402: 3303 adds r3, #3 + 8037404: 109b asrs r3, r3, #2 + 8037406: b21b sxth r3, r3 + 8037408: f9b7 1038 ldrsh.w r1, [r7, #56] ; 0x38 + 803740c: 428b cmp r3, r1 + 803740e: bfb8 it lt + 8037410: 460b movlt r3, r1 + 8037412: b21b sxth r3, r3 + 8037414: b29b uxth r3, r3 + 8037416: 1ad3 subs r3, r2, r3 + 8037418: b29b uxth r3, r3 + 803741a: b21b sxth r3, r3 + 803741c: 837b strh r3, [r7, #26] } if(r < 1) r = 1; - 80374b2: f9b7 301a ldrsh.w r3, [r7, #26] - 80374b6: 2b00 cmp r3, #0 - 80374b8: dc01 bgt.n 80374be - 80374ba: 2301 movs r3, #1 - 80374bc: 837b strh r3, [r7, #26] + 803741e: f9b7 301a ldrsh.w r3, [r7, #26] + 8037422: 2b00 cmp r3, #0 + 8037424: dc01 bgt.n 803742a + 8037426: 2301 movs r3, #1 + 8037428: 837b strh r3, [r7, #26] if(p.x * p.x + p.y * p.y > r * r) { - 80374be: f9b7 3020 ldrsh.w r3, [r7, #32] - 80374c2: f9b7 2020 ldrsh.w r2, [r7, #32] - 80374c6: fb03 f202 mul.w r2, r3, r2 - 80374ca: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 80374ce: f9b7 1022 ldrsh.w r1, [r7, #34] ; 0x22 - 80374d2: fb01 f303 mul.w r3, r1, r3 - 80374d6: 441a add r2, r3 - 80374d8: f9b7 301a ldrsh.w r3, [r7, #26] - 80374dc: f9b7 101a ldrsh.w r1, [r7, #26] - 80374e0: fb01 f303 mul.w r3, r1, r3 - 80374e4: 429a cmp r2, r3 - 80374e6: dd0b ble.n 8037500 + 803742a: f9b7 3020 ldrsh.w r3, [r7, #32] + 803742e: f9b7 2020 ldrsh.w r2, [r7, #32] + 8037432: fb03 f202 mul.w r2, r3, r2 + 8037436: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 803743a: f9b7 1022 ldrsh.w r1, [r7, #34] ; 0x22 + 803743e: fb01 f303 mul.w r3, r1, r3 + 8037442: 441a add r2, r3 + 8037444: f9b7 301a ldrsh.w r3, [r7, #26] + 8037448: f9b7 101a ldrsh.w r1, [r7, #26] + 803744c: fb01 f303 mul.w r3, r1, r3 + 8037450: 429a cmp r2, r3 + 8037452: dd0b ble.n 803746c arc->dragging = true; - 80374e8: 6efa ldr r2, [r7, #108] ; 0x6c - 80374ea: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 - 80374ee: f043 0301 orr.w r3, r3, #1 - 80374f2: f882 3034 strb.w r3, [r2, #52] ; 0x34 + 8037454: 6efa ldr r2, [r7, #108] ; 0x6c + 8037456: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 + 803745a: f043 0301 orr.w r3, r3, #1 + 803745e: f882 3034 strb.w r3, [r2, #52] ; 0x34 arc->last_tick = lv_tick_get(); /*Capture timestamp at dragging start*/ - 80374f6: f7f9 f959 bl 80307ac - 80374fa: 4602 mov r2, r0 - 80374fc: 6efb ldr r3, [r7, #108] ; 0x6c - 80374fe: 639a str r2, [r3, #56] ; 0x38 + 8037462: f7f9 f959 bl 8030718 + 8037466: 4602 mov r2, r0 + 8037468: 6efb ldr r3, [r7, #108] ; 0x6c + 803746a: 639a str r2, [r3, #56] ; 0x38 } } /*It must be in "dragging" mode to turn the arc*/ if(arc->dragging == false) return; - 8037500: 6efb ldr r3, [r7, #108] ; 0x6c - 8037502: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 - 8037506: f003 0301 and.w r3, r3, #1 - 803750a: b2db uxtb r3, r3 - 803750c: 2b00 cmp r3, #0 - 803750e: f000 82d9 beq.w 8037ac4 + 803746c: 6efb ldr r3, [r7, #108] ; 0x6c + 803746e: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 + 8037472: f003 0301 and.w r3, r3, #1 + 8037476: b2db uxtb r3, r3 + 8037478: 2b00 cmp r3, #0 + 803747a: f000 82d9 beq.w 8037a30 /*No angle can be determined if exactly the middle of the arc is being pressed*/ if(p.x == 0 && p.y == 0) return; - 8037512: f9b7 3020 ldrsh.w r3, [r7, #32] - 8037516: 2b00 cmp r3, #0 - 8037518: d104 bne.n 8037524 - 803751a: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 803751e: 2b00 cmp r3, #0 - 8037520: f000 82d2 beq.w 8037ac8 + 803747e: f9b7 3020 ldrsh.w r3, [r7, #32] + 8037482: 2b00 cmp r3, #0 + 8037484: d104 bne.n 8037490 + 8037486: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 803748a: 2b00 cmp r3, #0 + 803748c: f000 82d2 beq.w 8037a34 /*Calculate the angle of the pressed point*/ int16_t angle; int16_t bg_end = arc->bg_angle_end; - 8037524: 6efb ldr r3, [r7, #108] ; 0x6c - 8037526: 8d9b ldrh r3, [r3, #44] ; 0x2c - 8037528: f8a7 307c strh.w r3, [r7, #124] ; 0x7c + 8037490: 6efb ldr r3, [r7, #108] ; 0x6c + 8037492: 8d9b ldrh r3, [r3, #44] ; 0x2c + 8037494: f8a7 307c strh.w r3, [r7, #124] ; 0x7c if(arc->bg_angle_end < arc->bg_angle_start) { - 803752c: 6efb ldr r3, [r7, #108] ; 0x6c - 803752e: 8d9a ldrh r2, [r3, #44] ; 0x2c - 8037530: 6efb ldr r3, [r7, #108] ; 0x6c - 8037532: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8037534: 429a cmp r2, r3 - 8037536: d206 bcs.n 8037546 + 8037498: 6efb ldr r3, [r7, #108] ; 0x6c + 803749a: 8d9a ldrh r2, [r3, #44] ; 0x2c + 803749c: 6efb ldr r3, [r7, #108] ; 0x6c + 803749e: 8d5b ldrh r3, [r3, #42] ; 0x2a + 80374a0: 429a cmp r2, r3 + 80374a2: d206 bcs.n 80374b2 bg_end = arc->bg_angle_end + 360; - 8037538: 6efb ldr r3, [r7, #108] ; 0x6c - 803753a: 8d9b ldrh r3, [r3, #44] ; 0x2c - 803753c: f503 73b4 add.w r3, r3, #360 ; 0x168 - 8037540: b29b uxth r3, r3 - 8037542: f8a7 307c strh.w r3, [r7, #124] ; 0x7c + 80374a4: 6efb ldr r3, [r7, #108] ; 0x6c + 80374a6: 8d9b ldrh r3, [r3, #44] ; 0x2c + 80374a8: f503 73b4 add.w r3, r3, #360 ; 0x168 + 80374ac: b29b uxth r3, r3 + 80374ae: f8a7 307c strh.w r3, [r7, #124] ; 0x7c } angle = lv_atan2(p.y, p.x); - 8037546: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 803754a: 461a mov r2, r3 - 803754c: f9b7 3020 ldrsh.w r3, [r7, #32] - 8037550: 4619 mov r1, r3 - 8037552: 4610 mov r0, r2 - 8037554: f7fb f879 bl 803264a - 8037558: 4603 mov r3, r0 - 803755a: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 80374b2: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 80374b6: 461a mov r2, r3 + 80374b8: f9b7 3020 ldrsh.w r3, [r7, #32] + 80374bc: 4619 mov r1, r3 + 80374be: 4610 mov r0, r2 + 80374c0: f7fb f879 bl 80325b6 + 80374c4: 4603 mov r3, r0 + 80374c6: f8a7 307e strh.w r3, [r7, #126] ; 0x7e angle -= arc->rotation; - 803755e: f8b7 207e ldrh.w r2, [r7, #126] ; 0x7e - 8037562: 6efb ldr r3, [r7, #108] ; 0x6c - 8037564: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8037566: 1ad3 subs r3, r2, r3 - 8037568: b29b uxth r3, r3 - 803756a: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 80374ca: f8b7 207e ldrh.w r2, [r7, #126] ; 0x7e + 80374ce: 6efb ldr r3, [r7, #108] ; 0x6c + 80374d0: 8c9b ldrh r3, [r3, #36] ; 0x24 + 80374d2: 1ad3 subs r3, r2, r3 + 80374d4: b29b uxth r3, r3 + 80374d6: f8a7 307e strh.w r3, [r7, #126] ; 0x7e angle -= arc->bg_angle_start; /*Make the angle relative to the start angle*/ - 803756e: f8b7 207e ldrh.w r2, [r7, #126] ; 0x7e - 8037572: 6efb ldr r3, [r7, #108] ; 0x6c - 8037574: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8037576: 1ad3 subs r3, r2, r3 - 8037578: b29b uxth r3, r3 - 803757a: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 80374da: f8b7 207e ldrh.w r2, [r7, #126] ; 0x7e + 80374de: 6efb ldr r3, [r7, #108] ; 0x6c + 80374e0: 8d5b ldrh r3, [r3, #42] ; 0x2a + 80374e2: 1ad3 subs r3, r2, r3 + 80374e4: b29b uxth r3, r3 + 80374e6: f8a7 307e strh.w r3, [r7, #126] ; 0x7e if(angle < 0) angle += 360; - 803757e: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e - 8037582: 2b00 cmp r3, #0 - 8037584: da06 bge.n 8037594 - 8037586: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e - 803758a: f503 73b4 add.w r3, r3, #360 ; 0x168 - 803758e: b29b uxth r3, r3 - 8037590: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 80374ea: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e + 80374ee: 2b00 cmp r3, #0 + 80374f0: da06 bge.n 8037500 + 80374f2: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e + 80374f6: f503 73b4 add.w r3, r3, #360 ; 0x168 + 80374fa: b29b uxth r3, r3 + 80374fc: f8a7 307e strh.w r3, [r7, #126] ; 0x7e int16_t deg_range = bg_end - arc->bg_angle_start; - 8037594: f8b7 207c ldrh.w r2, [r7, #124] ; 0x7c - 8037598: 6efb ldr r3, [r7, #108] ; 0x6c - 803759a: 8d5b ldrh r3, [r3, #42] ; 0x2a - 803759c: 1ad3 subs r3, r2, r3 - 803759e: b29b uxth r3, r3 - 80375a0: 86fb strh r3, [r7, #54] ; 0x36 + 8037500: f8b7 207c ldrh.w r2, [r7, #124] ; 0x7c + 8037504: 6efb ldr r3, [r7, #108] ; 0x6c + 8037506: 8d5b ldrh r3, [r3, #42] ; 0x2a + 8037508: 1ad3 subs r3, r2, r3 + 803750a: b29b uxth r3, r3 + 803750c: 86fb strh r3, [r7, #54] ; 0x36 int16_t last_angle_rel = arc->last_angle - arc->bg_angle_start; - 80375a2: 6efb ldr r3, [r7, #108] ; 0x6c - 80375a4: f9b3 303c ldrsh.w r3, [r3, #60] ; 0x3c - 80375a8: b29a uxth r2, r3 - 80375aa: 6efb ldr r3, [r7, #108] ; 0x6c - 80375ac: 8d5b ldrh r3, [r3, #42] ; 0x2a - 80375ae: 1ad3 subs r3, r2, r3 - 80375b0: b29b uxth r3, r3 - 80375b2: 86bb strh r3, [r7, #52] ; 0x34 + 803750e: 6efb ldr r3, [r7, #108] ; 0x6c + 8037510: f9b3 303c ldrsh.w r3, [r3, #60] ; 0x3c + 8037514: b29a uxth r2, r3 + 8037516: 6efb ldr r3, [r7, #108] ; 0x6c + 8037518: 8d5b ldrh r3, [r3, #42] ; 0x2a + 803751a: 1ad3 subs r3, r2, r3 + 803751c: b29b uxth r3, r3 + 803751e: 86bb strh r3, [r7, #52] ; 0x34 int16_t delta_angle = angle - last_angle_rel; - 80375b4: f8b7 207e ldrh.w r2, [r7, #126] ; 0x7e - 80375b8: 8ebb ldrh r3, [r7, #52] ; 0x34 - 80375ba: 1ad3 subs r3, r2, r3 - 80375bc: b29b uxth r3, r3 - 80375be: f8a7 307a strh.w r3, [r7, #122] ; 0x7a + 8037520: f8b7 207e ldrh.w r2, [r7, #126] ; 0x7e + 8037524: 8ebb ldrh r3, [r7, #52] ; 0x34 + 8037526: 1ad3 subs r3, r2, r3 + 8037528: b29b uxth r3, r3 + 803752a: f8a7 307a strh.w r3, [r7, #122] ; 0x7a /*Do not allow big jumps. *It's mainly to avoid jumping to the opposite end if the "dead" range between min. and max. is crossed. *Check which end was closer on the last valid press (arc->min_close) and prefer that end*/ if(LV_ABS(delta_angle) > 280) { - 80375c2: f9b7 307a ldrsh.w r3, [r7, #122] ; 0x7a - 80375c6: 2b00 cmp r3, #0 - 80375c8: bfb8 it lt - 80375ca: 425b neglt r3, r3 - 80375cc: b29b uxth r3, r3 - 80375ce: f5b3 7f8c cmp.w r3, #280 ; 0x118 - 80375d2: d90f bls.n 80375f4 + 803752e: f9b7 307a ldrsh.w r3, [r7, #122] ; 0x7a + 8037532: 2b00 cmp r3, #0 + 8037534: bfb8 it lt + 8037536: 425b neglt r3, r3 + 8037538: b29b uxth r3, r3 + 803753a: f5b3 7f8c cmp.w r3, #280 ; 0x118 + 803753e: d90f bls.n 8037560 if(arc->min_close) angle = 0; - 80375d4: 6efb ldr r3, [r7, #108] ; 0x6c - 80375d6: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 - 80375da: f003 0308 and.w r3, r3, #8 - 80375de: b2db uxtb r3, r3 - 80375e0: 2b00 cmp r3, #0 - 80375e2: d003 beq.n 80375ec - 80375e4: 2300 movs r3, #0 - 80375e6: f8a7 307e strh.w r3, [r7, #126] ; 0x7e - 80375ea: e01c b.n 8037626 + 8037540: 6efb ldr r3, [r7, #108] ; 0x6c + 8037542: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 + 8037546: f003 0308 and.w r3, r3, #8 + 803754a: b2db uxtb r3, r3 + 803754c: 2b00 cmp r3, #0 + 803754e: d003 beq.n 8037558 + 8037550: 2300 movs r3, #0 + 8037552: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 8037556: e01c b.n 8037592 else angle = deg_range; - 80375ec: 8efb ldrh r3, [r7, #54] ; 0x36 - 80375ee: f8a7 307e strh.w r3, [r7, #126] ; 0x7e - 80375f2: e018 b.n 8037626 + 8037558: 8efb ldrh r3, [r7, #54] ; 0x36 + 803755a: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 803755e: e018 b.n 8037592 } else { if(angle < deg_range / 2)arc->min_close = 1; - 80375f4: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 80375f8: 0fda lsrs r2, r3, #31 - 80375fa: 4413 add r3, r2 - 80375fc: 105b asrs r3, r3, #1 - 80375fe: b21b sxth r3, r3 - 8037600: f9b7 207e ldrsh.w r2, [r7, #126] ; 0x7e - 8037604: 429a cmp r2, r3 - 8037606: da07 bge.n 8037618 - 8037608: 6efa ldr r2, [r7, #108] ; 0x6c - 803760a: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 - 803760e: f043 0308 orr.w r3, r3, #8 - 8037612: f882 3034 strb.w r3, [r2, #52] ; 0x34 - 8037616: e006 b.n 8037626 + 8037560: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 8037564: 0fda lsrs r2, r3, #31 + 8037566: 4413 add r3, r2 + 8037568: 105b asrs r3, r3, #1 + 803756a: b21b sxth r3, r3 + 803756c: f9b7 207e ldrsh.w r2, [r7, #126] ; 0x7e + 8037570: 429a cmp r2, r3 + 8037572: da07 bge.n 8037584 + 8037574: 6efa ldr r2, [r7, #108] ; 0x6c + 8037576: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 + 803757a: f043 0308 orr.w r3, r3, #8 + 803757e: f882 3034 strb.w r3, [r2, #52] ; 0x34 + 8037582: e006 b.n 8037592 else arc->min_close = 0; - 8037618: 6efa ldr r2, [r7, #108] ; 0x6c - 803761a: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 - 803761e: f36f 03c3 bfc r3, #3, #1 - 8037622: f882 3034 strb.w r3, [r2, #52] ; 0x34 + 8037584: 6efa ldr r2, [r7, #108] ; 0x6c + 8037586: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 + 803758a: f36f 03c3 bfc r3, #3, #1 + 803758e: f882 3034 strb.w r3, [r2, #52] ; 0x34 } /*Calculate the slew rate limited angle based on change rate (degrees/sec)*/ delta_angle = angle - last_angle_rel; - 8037626: f8b7 207e ldrh.w r2, [r7, #126] ; 0x7e - 803762a: 8ebb ldrh r3, [r7, #52] ; 0x34 - 803762c: 1ad3 subs r3, r2, r3 - 803762e: b29b uxth r3, r3 - 8037630: f8a7 307a strh.w r3, [r7, #122] ; 0x7a + 8037592: f8b7 207e ldrh.w r2, [r7, #126] ; 0x7e + 8037596: 8ebb ldrh r3, [r7, #52] ; 0x34 + 8037598: 1ad3 subs r3, r2, r3 + 803759a: b29b uxth r3, r3 + 803759c: f8a7 307a strh.w r3, [r7, #122] ; 0x7a uint32_t delta_tick = lv_tick_elaps(arc->last_tick); - 8037634: 6efb ldr r3, [r7, #108] ; 0x6c - 8037636: 6b9b ldr r3, [r3, #56] ; 0x38 - 8037638: 4618 mov r0, r3 - 803763a: f7f9 f8cf bl 80307dc - 803763e: 6338 str r0, [r7, #48] ; 0x30 + 80375a0: 6efb ldr r3, [r7, #108] ; 0x6c + 80375a2: 6b9b ldr r3, [r3, #56] ; 0x38 + 80375a4: 4618 mov r0, r3 + 80375a6: f7f9 f8cf bl 8030748 + 80375aa: 6338 str r0, [r7, #48] ; 0x30 int16_t delta_angle_max = (arc->chg_rate * delta_tick) / 1000; - 8037640: 6efb ldr r3, [r7, #108] ; 0x6c - 8037642: 8edb ldrh r3, [r3, #54] ; 0x36 - 8037644: 461a mov r2, r3 - 8037646: 6b3b ldr r3, [r7, #48] ; 0x30 - 8037648: fb02 f303 mul.w r3, r2, r3 - 803764c: 4a08 ldr r2, [pc, #32] ; (8037670 ) - 803764e: fba2 2303 umull r2, r3, r2, r3 - 8037652: 099b lsrs r3, r3, #6 - 8037654: 85fb strh r3, [r7, #46] ; 0x2e + 80375ac: 6efb ldr r3, [r7, #108] ; 0x6c + 80375ae: 8edb ldrh r3, [r3, #54] ; 0x36 + 80375b0: 461a mov r2, r3 + 80375b2: 6b3b ldr r3, [r7, #48] ; 0x30 + 80375b4: fb02 f303 mul.w r3, r2, r3 + 80375b8: 4a08 ldr r2, [pc, #32] ; (80375dc ) + 80375ba: fba2 2303 umull r2, r3, r2, r3 + 80375be: 099b lsrs r3, r3, #6 + 80375c0: 85fb strh r3, [r7, #46] ; 0x2e if(delta_angle > delta_angle_max) { - 8037656: f9b7 207a ldrsh.w r2, [r7, #122] ; 0x7a - 803765a: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 803765e: 429a cmp r2, r3 - 8037660: dd08 ble.n 8037674 + 80375c2: f9b7 207a ldrsh.w r2, [r7, #122] ; 0x7a + 80375c6: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 80375ca: 429a cmp r2, r3 + 80375cc: dd08 ble.n 80375e0 delta_angle = delta_angle_max; - 8037662: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8037664: f8a7 307a strh.w r3, [r7, #122] ; 0x7a - 8037668: e010 b.n 803768c - 803766a: bf00 nop - 803766c: 080709ac .word 0x080709ac - 8037670: 10624dd3 .word 0x10624dd3 + 80375ce: 8dfb ldrh r3, [r7, #46] ; 0x2e + 80375d0: f8a7 307a strh.w r3, [r7, #122] ; 0x7a + 80375d4: e010 b.n 80375f8 + 80375d6: bf00 nop + 80375d8: 08070904 .word 0x08070904 + 80375dc: 10624dd3 .word 0x10624dd3 } else if(delta_angle < -delta_angle_max) { - 8037674: f9b7 207a ldrsh.w r2, [r7, #122] ; 0x7a - 8037678: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 803767c: 425b negs r3, r3 - 803767e: 429a cmp r2, r3 - 8037680: da04 bge.n 803768c + 80375e0: f9b7 207a ldrsh.w r2, [r7, #122] ; 0x7a + 80375e4: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 80375e8: 425b negs r3, r3 + 80375ea: 429a cmp r2, r3 + 80375ec: da04 bge.n 80375f8 delta_angle = -delta_angle_max; - 8037682: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8037684: 425b negs r3, r3 - 8037686: b29b uxth r3, r3 - 8037688: f8a7 307a strh.w r3, [r7, #122] ; 0x7a + 80375ee: 8dfb ldrh r3, [r7, #46] ; 0x2e + 80375f0: 425b negs r3, r3 + 80375f2: b29b uxth r3, r3 + 80375f4: f8a7 307a strh.w r3, [r7, #122] ; 0x7a } angle = last_angle_rel + delta_angle; /*Apply the limited angle change*/ - 803768c: 8eba ldrh r2, [r7, #52] ; 0x34 - 803768e: f8b7 307a ldrh.w r3, [r7, #122] ; 0x7a - 8037692: 4413 add r3, r2 - 8037694: b29b uxth r3, r3 - 8037696: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 80375f8: 8eba ldrh r2, [r7, #52] ; 0x34 + 80375fa: f8b7 307a ldrh.w r3, [r7, #122] ; 0x7a + 80375fe: 4413 add r3, r2 + 8037600: b29b uxth r3, r3 + 8037602: f8a7 307e strh.w r3, [r7, #126] ; 0x7e /*Rounding for symmetry*/ int32_t round = ((bg_end - arc->bg_angle_start) * 8) / (arc->max_value - arc->min_value); - 803769a: f9b7 307c ldrsh.w r3, [r7, #124] ; 0x7c - 803769e: 6efa ldr r2, [r7, #108] ; 0x6c - 80376a0: 8d52 ldrh r2, [r2, #42] ; 0x2a - 80376a2: 1a9b subs r3, r3, r2 - 80376a4: 00da lsls r2, r3, #3 - 80376a6: 6efb ldr r3, [r7, #108] ; 0x6c - 80376a8: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 - 80376ac: 4619 mov r1, r3 - 80376ae: 6efb ldr r3, [r7, #108] ; 0x6c - 80376b0: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 - 80376b4: 1acb subs r3, r1, r3 - 80376b6: fb92 f3f3 sdiv r3, r2, r3 - 80376ba: 62bb str r3, [r7, #40] ; 0x28 + 8037606: f9b7 307c ldrsh.w r3, [r7, #124] ; 0x7c + 803760a: 6efa ldr r2, [r7, #108] ; 0x6c + 803760c: 8d52 ldrh r2, [r2, #42] ; 0x2a + 803760e: 1a9b subs r3, r3, r2 + 8037610: 00da lsls r2, r3, #3 + 8037612: 6efb ldr r3, [r7, #108] ; 0x6c + 8037614: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 + 8037618: 4619 mov r1, r3 + 803761a: 6efb ldr r3, [r7, #108] ; 0x6c + 803761c: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 + 8037620: 1acb subs r3, r1, r3 + 8037622: fb92 f3f3 sdiv r3, r2, r3 + 8037626: 62bb str r3, [r7, #40] ; 0x28 round = (round + 4) >> 4; - 80376bc: 6abb ldr r3, [r7, #40] ; 0x28 - 80376be: 3304 adds r3, #4 - 80376c0: 111b asrs r3, r3, #4 - 80376c2: 62bb str r3, [r7, #40] ; 0x28 + 8037628: 6abb ldr r3, [r7, #40] ; 0x28 + 803762a: 3304 adds r3, #4 + 803762c: 111b asrs r3, r3, #4 + 803762e: 62bb str r3, [r7, #40] ; 0x28 angle += round; - 80376c4: 6abb ldr r3, [r7, #40] ; 0x28 - 80376c6: b29a uxth r2, r3 - 80376c8: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e - 80376cc: 4413 add r3, r2 - 80376ce: b29b uxth r3, r3 - 80376d0: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 8037630: 6abb ldr r3, [r7, #40] ; 0x28 + 8037632: b29a uxth r2, r3 + 8037634: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e + 8037638: 4413 add r3, r2 + 803763a: b29b uxth r3, r3 + 803763c: f8a7 307e strh.w r3, [r7, #126] ; 0x7e angle += arc->bg_angle_start; /*Make the angle absolute again*/ - 80376d4: 6efb ldr r3, [r7, #108] ; 0x6c - 80376d6: 8d5a ldrh r2, [r3, #42] ; 0x2a - 80376d8: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e - 80376dc: 4413 add r3, r2 - 80376de: b29b uxth r3, r3 - 80376e0: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 8037640: 6efb ldr r3, [r7, #108] ; 0x6c + 8037642: 8d5a ldrh r2, [r3, #42] ; 0x2a + 8037644: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e + 8037648: 4413 add r3, r2 + 803764a: b29b uxth r3, r3 + 803764c: f8a7 307e strh.w r3, [r7, #126] ; 0x7e /*Set the new value*/ int16_t old_value = arc->value; - 80376e4: 6efb ldr r3, [r7, #108] ; 0x6c - 80376e6: 8ddb ldrh r3, [r3, #46] ; 0x2e - 80376e8: 84fb strh r3, [r7, #38] ; 0x26 + 8037650: 6efb ldr r3, [r7, #108] ; 0x6c + 8037652: 8ddb ldrh r3, [r3, #46] ; 0x2e + 8037654: 84fb strh r3, [r7, #38] ; 0x26 int16_t new_value = lv_map(angle, arc->bg_angle_start, bg_end, arc->min_value, arc->max_value); - 80376ea: f9b7 007e ldrsh.w r0, [r7, #126] ; 0x7e - 80376ee: 6efb ldr r3, [r7, #108] ; 0x6c - 80376f0: 8d5b ldrh r3, [r3, #42] ; 0x2a - 80376f2: 4619 mov r1, r3 - 80376f4: f9b7 207c ldrsh.w r2, [r7, #124] ; 0x7c - 80376f8: 6efb ldr r3, [r7, #108] ; 0x6c - 80376fa: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 - 80376fe: 461c mov r4, r3 - 8037700: 6efb ldr r3, [r7, #108] ; 0x6c - 8037702: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 - 8037706: 9300 str r3, [sp, #0] - 8037708: 4623 mov r3, r4 - 803770a: f7fb f88a bl 8032822 - 803770e: 4603 mov r3, r0 - 8037710: 84bb strh r3, [r7, #36] ; 0x24 + 8037656: f9b7 007e ldrsh.w r0, [r7, #126] ; 0x7e + 803765a: 6efb ldr r3, [r7, #108] ; 0x6c + 803765c: 8d5b ldrh r3, [r3, #42] ; 0x2a + 803765e: 4619 mov r1, r3 + 8037660: f9b7 207c ldrsh.w r2, [r7, #124] ; 0x7c + 8037664: 6efb ldr r3, [r7, #108] ; 0x6c + 8037666: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 + 803766a: 461c mov r4, r3 + 803766c: 6efb ldr r3, [r7, #108] ; 0x6c + 803766e: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 + 8037672: 9300 str r3, [sp, #0] + 8037674: 4623 mov r3, r4 + 8037676: f7fb f88a bl 803278e + 803767a: 4603 mov r3, r0 + 803767c: 84bb strh r3, [r7, #36] ; 0x24 if(new_value != lv_arc_get_value(obj)) { - 8037712: 6f38 ldr r0, [r7, #112] ; 0x70 - 8037714: f7ff fdd6 bl 80372c4 - 8037718: 4603 mov r3, r0 - 803771a: 461a mov r2, r3 - 803771c: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 - 8037720: 4293 cmp r3, r2 - 8037722: d01d beq.n 8037760 + 803767e: 6f38 ldr r0, [r7, #112] ; 0x70 + 8037680: f7ff fdd6 bl 8037230 + 8037684: 4603 mov r3, r0 + 8037686: 461a mov r2, r3 + 8037688: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 + 803768c: 4293 cmp r3, r2 + 803768e: d01d beq.n 80376cc arc->last_tick = lv_tick_get(); /*Cache timestamp for the next iteration*/ - 8037724: f7f9 f842 bl 80307ac - 8037728: 4602 mov r2, r0 - 803772a: 6efb ldr r3, [r7, #108] ; 0x6c - 803772c: 639a str r2, [r3, #56] ; 0x38 + 8037690: f7f9 f842 bl 8030718 + 8037694: 4602 mov r2, r0 + 8037696: 6efb ldr r3, [r7, #108] ; 0x6c + 8037698: 639a str r2, [r3, #56] ; 0x38 lv_arc_set_value(obj, new_value); /*set_value caches the last_angle for the next iteration*/ - 803772e: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 - 8037732: 4619 mov r1, r3 - 8037734: 6f38 ldr r0, [r7, #112] ; 0x70 - 8037736: f7ff fd90 bl 803725a + 803769a: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 + 803769e: 4619 mov r1, r3 + 80376a0: 6f38 ldr r0, [r7, #112] ; 0x70 + 80376a2: f7ff fd90 bl 80371c6 if(new_value != old_value) { - 803773a: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 - 803773e: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 8037742: 429a cmp r2, r3 - 8037744: d00c beq.n 8037760 + 80376a6: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 + 80376aa: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 80376ae: 429a cmp r2, r3 + 80376b0: d00c beq.n 80376cc res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 8037746: 2200 movs r2, #0 - 8037748: 211c movs r1, #28 - 803774a: 6f38 ldr r0, [r7, #112] ; 0x70 - 803774c: f7ca fe98 bl 8002480 - 8037750: 4603 mov r3, r0 - 8037752: f887 3077 strb.w r3, [r7, #119] ; 0x77 + 80376b2: 2200 movs r2, #0 + 80376b4: 211c movs r1, #28 + 80376b6: 6f38 ldr r0, [r7, #112] ; 0x70 + 80376b8: f7ca feac bl 8002414 + 80376bc: 4603 mov r3, r0 + 80376be: f887 3077 strb.w r3, [r7, #119] ; 0x77 if(res != LV_RES_OK) return; - 8037756: f897 3077 ldrb.w r3, [r7, #119] ; 0x77 - 803775a: 2b01 cmp r3, #1 - 803775c: f040 81b6 bne.w 8037acc + 80376c2: f897 3077 ldrb.w r3, [r7, #119] ; 0x77 + 80376c6: 2b01 cmp r3, #1 + 80376c8: f040 81b6 bne.w 8037a38 } } /*Don't let the elapsed time become too big while sitting on an end point*/ if(new_value == arc->min_value || new_value == arc->max_value) { - 8037760: 6efb ldr r3, [r7, #108] ; 0x6c - 8037762: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 - 8037766: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 - 803776a: 429a cmp r2, r3 - 803776c: d007 beq.n 803777e - 803776e: 6efb ldr r3, [r7, #108] ; 0x6c - 8037770: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 - 8037774: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 - 8037778: 429a cmp r2, r3 - 803777a: f040 81aa bne.w 8037ad2 + 80376cc: 6efb ldr r3, [r7, #108] ; 0x6c + 80376ce: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 + 80376d2: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 + 80376d6: 429a cmp r2, r3 + 80376d8: d007 beq.n 80376ea + 80376da: 6efb ldr r3, [r7, #108] ; 0x6c + 80376dc: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 + 80376e0: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 + 80376e4: 429a cmp r2, r3 + 80376e6: f040 81aa bne.w 8037a3e arc->last_tick = lv_tick_get(); /*Cache timestamp for the next iteration*/ - 803777e: f7f9 f815 bl 80307ac - 8037782: 4602 mov r2, r0 - 8037784: 6efb ldr r3, [r7, #108] ; 0x6c - 8037786: 639a str r2, [r3, #56] ; 0x38 - 8037788: e1a3 b.n 8037ad2 + 80376ea: f7f9 f815 bl 8030718 + 80376ee: 4602 mov r2, r0 + 80376f0: 6efb ldr r3, [r7, #108] ; 0x6c + 80376f2: 639a str r2, [r3, #56] ; 0x38 + 80376f4: e1a3 b.n 8037a3e } } else if(code == LV_EVENT_RELEASED || code == LV_EVENT_PRESS_LOST) { - 803778a: f897 3076 ldrb.w r3, [r7, #118] ; 0x76 - 803778e: 2b08 cmp r3, #8 - 8037790: d003 beq.n 803779a - 8037792: f897 3076 ldrb.w r3, [r7, #118] ; 0x76 - 8037796: 2b03 cmp r3, #3 - 8037798: d128 bne.n 80377ec + 80376f6: f897 3076 ldrb.w r3, [r7, #118] ; 0x76 + 80376fa: 2b08 cmp r3, #8 + 80376fc: d003 beq.n 8037706 + 80376fe: f897 3076 ldrb.w r3, [r7, #118] ; 0x76 + 8037702: 2b03 cmp r3, #3 + 8037704: d128 bne.n 8037758 arc->dragging = false; - 803779a: 6efa ldr r2, [r7, #108] ; 0x6c - 803779c: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 - 80377a0: f36f 0300 bfc r3, #0, #1 - 80377a4: f882 3034 strb.w r3, [r2, #52] ; 0x34 + 8037706: 6efa ldr r2, [r7, #108] ; 0x6c + 8037708: f892 3034 ldrb.w r3, [r2, #52] ; 0x34 + 803770c: f36f 0300 bfc r3, #0, #1 + 8037710: f882 3034 strb.w r3, [r2, #52] ; 0x34 /*Leave edit mode if released. (No need to wait for LONG_PRESS)*/ lv_group_t * g = lv_obj_get_group(obj); - 80377a8: 6f38 ldr r0, [r7, #112] ; 0x70 - 80377aa: f7cf f831 bl 8006810 - 80377ae: 6478 str r0, [r7, #68] ; 0x44 + 8037714: 6f38 ldr r0, [r7, #112] ; 0x70 + 8037716: f7cf f845 bl 80067a4 + 803771a: 6478 str r0, [r7, #68] ; 0x44 bool editing = lv_group_get_editing(g); - 80377b0: 6c78 ldr r0, [r7, #68] ; 0x44 - 80377b2: f7cb fba0 bl 8002ef6 - 80377b6: 4603 mov r3, r0 - 80377b8: f887 3043 strb.w r3, [r7, #67] ; 0x43 + 803771c: 6c78 ldr r0, [r7, #68] ; 0x44 + 803771e: f7cb fbb4 bl 8002e8a + 8037722: 4603 mov r3, r0 + 8037724: f887 3043 strb.w r3, [r7, #67] ; 0x43 lv_indev_type_t indev_type = lv_indev_get_type(lv_indev_get_act()); - 80377bc: f7cb fdac bl 8003318 - 80377c0: 4603 mov r3, r0 - 80377c2: 4618 mov r0, r3 - 80377c4: f7cb fdb2 bl 800332c - 80377c8: 4603 mov r3, r0 - 80377ca: f887 3042 strb.w r3, [r7, #66] ; 0x42 + 8037728: f7cb fdc0 bl 80032ac + 803772c: 4603 mov r3, r0 + 803772e: 4618 mov r0, r3 + 8037730: f7cb fdc6 bl 80032c0 + 8037734: 4603 mov r3, r0 + 8037736: f887 3042 strb.w r3, [r7, #66] ; 0x42 if(indev_type == LV_INDEV_TYPE_ENCODER) { - 80377ce: f897 3042 ldrb.w r3, [r7, #66] ; 0x42 - 80377d2: 2b04 cmp r3, #4 - 80377d4: f040 817c bne.w 8037ad0 + 803773a: f897 3042 ldrb.w r3, [r7, #66] ; 0x42 + 803773e: 2b04 cmp r3, #4 + 8037740: f040 817c bne.w 8037a3c if(editing) lv_group_set_editing(g, false); - 80377d8: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 - 80377dc: 2b00 cmp r3, #0 - 80377de: f000 8177 beq.w 8037ad0 - 80377e2: 2100 movs r1, #0 - 80377e4: 6c78 ldr r0, [r7, #68] ; 0x44 - 80377e6: f7cb fb2e bl 8002e46 + 8037744: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 + 8037748: 2b00 cmp r3, #0 + 803774a: f000 8177 beq.w 8037a3c + 803774e: 2100 movs r1, #0 + 8037750: 6c78 ldr r0, [r7, #68] ; 0x44 + 8037752: f7cb fb42 bl 8002dda else if(code == LV_EVENT_RELEASED || code == LV_EVENT_PRESS_LOST) { - 80377ea: e171 b.n 8037ad0 + 8037756: e171 b.n 8037a3c } } else if(code == LV_EVENT_KEY) { - 80377ec: f897 3076 ldrb.w r3, [r7, #118] ; 0x76 - 80377f0: 2b0d cmp r3, #13 - 80377f2: d147 bne.n 8037884 + 8037758: f897 3076 ldrb.w r3, [r7, #118] ; 0x76 + 803775c: 2b0d cmp r3, #13 + 803775e: d147 bne.n 80377f0 char c = *((char *)lv_event_get_param(e)); - 80377f4: 6838 ldr r0, [r7, #0] - 80377f6: f7ca fee7 bl 80025c8 - 80377fa: 4603 mov r3, r0 - 80377fc: 781b ldrb r3, [r3, #0] - 80377fe: f887 304d strb.w r3, [r7, #77] ; 0x4d + 8037760: 6838 ldr r0, [r7, #0] + 8037762: f7ca fefb bl 800255c + 8037766: 4603 mov r3, r0 + 8037768: 781b ldrb r3, [r3, #0] + 803776a: f887 304d strb.w r3, [r7, #77] ; 0x4d int16_t old_value = arc->value; - 8037802: 6efb ldr r3, [r7, #108] ; 0x6c - 8037804: 8ddb ldrh r3, [r3, #46] ; 0x2e - 8037806: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 803776e: 6efb ldr r3, [r7, #108] ; 0x6c + 8037770: 8ddb ldrh r3, [r3, #46] ; 0x2e + 8037772: f8a7 304a strh.w r3, [r7, #74] ; 0x4a if(c == LV_KEY_RIGHT || c == LV_KEY_UP) { - 803780a: f897 304d ldrb.w r3, [r7, #77] ; 0x4d - 803780e: 2b13 cmp r3, #19 - 8037810: d003 beq.n 803781a - 8037812: f897 304d ldrb.w r3, [r7, #77] ; 0x4d - 8037816: 2b11 cmp r3, #17 - 8037818: d10c bne.n 8037834 + 8037776: f897 304d ldrb.w r3, [r7, #77] ; 0x4d + 803777a: 2b13 cmp r3, #19 + 803777c: d003 beq.n 8037786 + 803777e: f897 304d ldrb.w r3, [r7, #77] ; 0x4d + 8037782: 2b11 cmp r3, #17 + 8037784: d10c bne.n 80377a0 lv_arc_set_value(obj, lv_arc_get_value(obj) + 1); - 803781a: 6f38 ldr r0, [r7, #112] ; 0x70 - 803781c: f7ff fd52 bl 80372c4 - 8037820: 4603 mov r3, r0 - 8037822: b29b uxth r3, r3 - 8037824: 3301 adds r3, #1 - 8037826: b29b uxth r3, r3 - 8037828: b21b sxth r3, r3 - 803782a: 4619 mov r1, r3 - 803782c: 6f38 ldr r0, [r7, #112] ; 0x70 - 803782e: f7ff fd14 bl 803725a - 8037832: e013 b.n 803785c + 8037786: 6f38 ldr r0, [r7, #112] ; 0x70 + 8037788: f7ff fd52 bl 8037230 + 803778c: 4603 mov r3, r0 + 803778e: b29b uxth r3, r3 + 8037790: 3301 adds r3, #1 + 8037792: b29b uxth r3, r3 + 8037794: b21b sxth r3, r3 + 8037796: 4619 mov r1, r3 + 8037798: 6f38 ldr r0, [r7, #112] ; 0x70 + 803779a: f7ff fd14 bl 80371c6 + 803779e: e013 b.n 80377c8 } else if(c == LV_KEY_LEFT || c == LV_KEY_DOWN) { - 8037834: f897 304d ldrb.w r3, [r7, #77] ; 0x4d - 8037838: 2b14 cmp r3, #20 - 803783a: d003 beq.n 8037844 - 803783c: f897 304d ldrb.w r3, [r7, #77] ; 0x4d - 8037840: 2b12 cmp r3, #18 - 8037842: d10b bne.n 803785c + 80377a0: f897 304d ldrb.w r3, [r7, #77] ; 0x4d + 80377a4: 2b14 cmp r3, #20 + 80377a6: d003 beq.n 80377b0 + 80377a8: f897 304d ldrb.w r3, [r7, #77] ; 0x4d + 80377ac: 2b12 cmp r3, #18 + 80377ae: d10b bne.n 80377c8 lv_arc_set_value(obj, lv_arc_get_value(obj) - 1); - 8037844: 6f38 ldr r0, [r7, #112] ; 0x70 - 8037846: f7ff fd3d bl 80372c4 - 803784a: 4603 mov r3, r0 - 803784c: b29b uxth r3, r3 - 803784e: 3b01 subs r3, #1 - 8037850: b29b uxth r3, r3 - 8037852: b21b sxth r3, r3 - 8037854: 4619 mov r1, r3 - 8037856: 6f38 ldr r0, [r7, #112] ; 0x70 - 8037858: f7ff fcff bl 803725a + 80377b0: 6f38 ldr r0, [r7, #112] ; 0x70 + 80377b2: f7ff fd3d bl 8037230 + 80377b6: 4603 mov r3, r0 + 80377b8: b29b uxth r3, r3 + 80377ba: 3b01 subs r3, #1 + 80377bc: b29b uxth r3, r3 + 80377be: b21b sxth r3, r3 + 80377c0: 4619 mov r1, r3 + 80377c2: 6f38 ldr r0, [r7, #112] ; 0x70 + 80377c4: f7ff fcff bl 80371c6 } if(old_value != arc->value) { - 803785c: 6efb ldr r3, [r7, #108] ; 0x6c - 803785e: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 8037862: f9b7 204a ldrsh.w r2, [r7, #74] ; 0x4a - 8037866: 429a cmp r2, r3 - 8037868: f000 8133 beq.w 8037ad2 + 80377c8: 6efb ldr r3, [r7, #108] ; 0x6c + 80377ca: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 80377ce: f9b7 204a ldrsh.w r2, [r7, #74] ; 0x4a + 80377d2: 429a cmp r2, r3 + 80377d4: f000 8133 beq.w 8037a3e res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 803786c: 2200 movs r2, #0 - 803786e: 211c movs r1, #28 - 8037870: 6f38 ldr r0, [r7, #112] ; 0x70 - 8037872: f7ca fe05 bl 8002480 - 8037876: 4603 mov r3, r0 - 8037878: f887 3077 strb.w r3, [r7, #119] ; 0x77 + 80377d8: 2200 movs r2, #0 + 80377da: 211c movs r1, #28 + 80377dc: 6f38 ldr r0, [r7, #112] ; 0x70 + 80377de: f7ca fe19 bl 8002414 + 80377e2: 4603 mov r3, r0 + 80377e4: f887 3077 strb.w r3, [r7, #119] ; 0x77 if(res != LV_RES_OK) return; - 803787c: f897 3077 ldrb.w r3, [r7, #119] ; 0x77 - 8037880: 2b01 cmp r3, #1 - 8037882: e126 b.n 8037ad2 + 80377e8: f897 3077 ldrb.w r3, [r7, #119] ; 0x77 + 80377ec: 2b01 cmp r3, #1 + 80377ee: e126 b.n 8037a3e } } else if(code == LV_EVENT_HIT_TEST) { - 8037884: f897 3076 ldrb.w r3, [r7, #118] ; 0x76 - 8037888: 2b11 cmp r3, #17 - 803788a: f040 808c bne.w 80379a6 + 80377f0: f897 3076 ldrb.w r3, [r7, #118] ; 0x76 + 80377f4: 2b11 cmp r3, #17 + 80377f6: f040 808c bne.w 8037912 lv_hit_test_info_t * info = lv_event_get_param(e);; - 803788e: 6838 ldr r0, [r7, #0] - 8037890: f7ca fe9a bl 80025c8 - 8037894: 6538 str r0, [r7, #80] ; 0x50 + 80377fa: 6838 ldr r0, [r7, #0] + 80377fc: f7ca feae bl 800255c + 8037800: 6538 str r0, [r7, #80] ; 0x50 lv_point_t p; lv_coord_t r; get_center(obj, &p, &r); - 8037896: f107 0212 add.w r2, r7, #18 - 803789a: f107 0314 add.w r3, r7, #20 - 803789e: 4619 mov r1, r3 - 80378a0: 6f38 ldr r0, [r7, #112] ; 0x70 - 80378a2: f000 fb0d bl 8037ec0 + 8037802: f107 0212 add.w r2, r7, #18 + 8037806: f107 0314 add.w r3, r7, #20 + 803780a: 4619 mov r1, r3 + 803780c: 6f38 ldr r0, [r7, #112] ; 0x70 + 803780e: f000 fb0d bl 8037e2c lv_coord_t ext_click_area = 0; - 80378a6: 2300 movs r3, #0 - 80378a8: f8a7 3078 strh.w r3, [r7, #120] ; 0x78 + 8037812: 2300 movs r3, #0 + 8037814: f8a7 3078 strh.w r3, [r7, #120] ; 0x78 if(obj->spec_attr) ext_click_area = obj->spec_attr->ext_click_pad; - 80378ac: 6f3b ldr r3, [r7, #112] ; 0x70 - 80378ae: 689b ldr r3, [r3, #8] - 80378b0: 2b00 cmp r3, #0 - 80378b2: d004 beq.n 80378be - 80378b4: 6f3b ldr r3, [r7, #112] ; 0x70 - 80378b6: 689b ldr r3, [r3, #8] - 80378b8: 8a9b ldrh r3, [r3, #20] - 80378ba: f8a7 3078 strh.w r3, [r7, #120] ; 0x78 + 8037818: 6f3b ldr r3, [r7, #112] ; 0x70 + 803781a: 689b ldr r3, [r3, #8] + 803781c: 2b00 cmp r3, #0 + 803781e: d004 beq.n 803782a + 8037820: 6f3b ldr r3, [r7, #112] ; 0x70 + 8037822: 689b ldr r3, [r3, #8] + 8037824: 8a9b ldrh r3, [r3, #20] + 8037826: f8a7 3078 strh.w r3, [r7, #120] ; 0x78 lv_coord_t w = lv_obj_get_style_arc_width(obj, LV_PART_MAIN); - 80378be: 2100 movs r1, #0 - 80378c0: 6f38 ldr r0, [r7, #112] ; 0x70 - 80378c2: f7ff fad1 bl 8036e68 - 80378c6: 4603 mov r3, r0 - 80378c8: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 803782a: 2100 movs r1, #0 + 803782c: 6f38 ldr r0, [r7, #112] ; 0x70 + 803782e: f7ff fad1 bl 8036dd4 + 8037832: 4603 mov r3, r0 + 8037834: f8a7 304e strh.w r3, [r7, #78] ; 0x4e r -= w + ext_click_area; - 80378cc: f9b7 3012 ldrsh.w r3, [r7, #18] - 80378d0: b29a uxth r2, r3 - 80378d2: f8b7 104e ldrh.w r1, [r7, #78] ; 0x4e - 80378d6: f8b7 3078 ldrh.w r3, [r7, #120] ; 0x78 - 80378da: 440b add r3, r1 - 80378dc: b29b uxth r3, r3 - 80378de: 1ad3 subs r3, r2, r3 - 80378e0: b29b uxth r3, r3 - 80378e2: b21b sxth r3, r3 - 80378e4: 827b strh r3, [r7, #18] + 8037838: f9b7 3012 ldrsh.w r3, [r7, #18] + 803783c: b29a uxth r2, r3 + 803783e: f8b7 104e ldrh.w r1, [r7, #78] ; 0x4e + 8037842: f8b7 3078 ldrh.w r3, [r7, #120] ; 0x78 + 8037846: 440b add r3, r1 + 8037848: b29b uxth r3, r3 + 803784a: 1ad3 subs r3, r2, r3 + 803784c: b29b uxth r3, r3 + 803784e: b21b sxth r3, r3 + 8037850: 827b strh r3, [r7, #18] lv_area_t a; /*Invalid if clicked inside*/ lv_area_set(&a, p.x - r, p.y - r, p.x + r, p.y + r); - 80378e6: f9b7 3014 ldrsh.w r3, [r7, #20] - 80378ea: b29a uxth r2, r3 - 80378ec: f9b7 3012 ldrsh.w r3, [r7, #18] - 80378f0: b29b uxth r3, r3 - 80378f2: 1ad3 subs r3, r2, r3 - 80378f4: b29b uxth r3, r3 - 80378f6: b219 sxth r1, r3 - 80378f8: f9b7 3016 ldrsh.w r3, [r7, #22] - 80378fc: b29a uxth r2, r3 - 80378fe: f9b7 3012 ldrsh.w r3, [r7, #18] - 8037902: b29b uxth r3, r3 - 8037904: 1ad3 subs r3, r2, r3 - 8037906: b29b uxth r3, r3 - 8037908: b21c sxth r4, r3 - 803790a: f9b7 3014 ldrsh.w r3, [r7, #20] - 803790e: b29a uxth r2, r3 - 8037910: f9b7 3012 ldrsh.w r3, [r7, #18] - 8037914: b29b uxth r3, r3 - 8037916: 4413 add r3, r2 - 8037918: b29b uxth r3, r3 - 803791a: b21d sxth r5, r3 - 803791c: f9b7 3016 ldrsh.w r3, [r7, #22] - 8037920: b29a uxth r2, r3 - 8037922: f9b7 3012 ldrsh.w r3, [r7, #18] - 8037926: b29b uxth r3, r3 - 8037928: 4413 add r3, r2 - 803792a: b29b uxth r3, r3 - 803792c: b21b sxth r3, r3 - 803792e: f107 0008 add.w r0, r7, #8 - 8037932: 9300 str r3, [sp, #0] - 8037934: 462b mov r3, r5 - 8037936: 4622 mov r2, r4 - 8037938: f7f9 fae0 bl 8030efc + 8037852: f9b7 3014 ldrsh.w r3, [r7, #20] + 8037856: b29a uxth r2, r3 + 8037858: f9b7 3012 ldrsh.w r3, [r7, #18] + 803785c: b29b uxth r3, r3 + 803785e: 1ad3 subs r3, r2, r3 + 8037860: b29b uxth r3, r3 + 8037862: b219 sxth r1, r3 + 8037864: f9b7 3016 ldrsh.w r3, [r7, #22] + 8037868: b29a uxth r2, r3 + 803786a: f9b7 3012 ldrsh.w r3, [r7, #18] + 803786e: b29b uxth r3, r3 + 8037870: 1ad3 subs r3, r2, r3 + 8037872: b29b uxth r3, r3 + 8037874: b21c sxth r4, r3 + 8037876: f9b7 3014 ldrsh.w r3, [r7, #20] + 803787a: b29a uxth r2, r3 + 803787c: f9b7 3012 ldrsh.w r3, [r7, #18] + 8037880: b29b uxth r3, r3 + 8037882: 4413 add r3, r2 + 8037884: b29b uxth r3, r3 + 8037886: b21d sxth r5, r3 + 8037888: f9b7 3016 ldrsh.w r3, [r7, #22] + 803788c: b29a uxth r2, r3 + 803788e: f9b7 3012 ldrsh.w r3, [r7, #18] + 8037892: b29b uxth r3, r3 + 8037894: 4413 add r3, r2 + 8037896: b29b uxth r3, r3 + 8037898: b21b sxth r3, r3 + 803789a: f107 0008 add.w r0, r7, #8 + 803789e: 9300 str r3, [sp, #0] + 80378a0: 462b mov r3, r5 + 80378a2: 4622 mov r2, r4 + 80378a4: f7f9 fae0 bl 8030e68 if(_lv_area_is_point_on(&a, info->point, LV_RADIUS_CIRCLE)) { - 803793c: 6d3b ldr r3, [r7, #80] ; 0x50 - 803793e: 6819 ldr r1, [r3, #0] - 8037940: f107 0308 add.w r3, r7, #8 - 8037944: f647 72ff movw r2, #32767 ; 0x7fff - 8037948: 4618 mov r0, r3 - 803794a: f7f9 fc38 bl 80311be <_lv_area_is_point_on> - 803794e: 4603 mov r3, r0 - 8037950: 2b00 cmp r3, #0 - 8037952: d003 beq.n 803795c + 80378a8: 6d3b ldr r3, [r7, #80] ; 0x50 + 80378aa: 6819 ldr r1, [r3, #0] + 80378ac: f107 0308 add.w r3, r7, #8 + 80378b0: f647 72ff movw r2, #32767 ; 0x7fff + 80378b4: 4618 mov r0, r3 + 80378b6: f7f9 fc38 bl 803112a <_lv_area_is_point_on> + 80378ba: 4603 mov r3, r0 + 80378bc: 2b00 cmp r3, #0 + 80378be: d003 beq.n 80378c8 info->res = false; - 8037954: 6d3b ldr r3, [r7, #80] ; 0x50 - 8037956: 2200 movs r2, #0 - 8037958: 711a strb r2, [r3, #4] - 803795a: e0ba b.n 8037ad2 + 80378c0: 6d3b ldr r3, [r7, #80] ; 0x50 + 80378c2: 2200 movs r2, #0 + 80378c4: 711a strb r2, [r3, #4] + 80378c6: e0ba b.n 8037a3e return; } /*Valid if no clicked outside*/ lv_area_increase(&a, w + ext_click_area * 2, w + ext_click_area * 2); - 803795c: f8b7 3078 ldrh.w r3, [r7, #120] ; 0x78 - 8037960: 005b lsls r3, r3, #1 - 8037962: b29a uxth r2, r3 - 8037964: f8b7 304e ldrh.w r3, [r7, #78] ; 0x4e - 8037968: 4413 add r3, r2 - 803796a: b29b uxth r3, r3 - 803796c: b219 sxth r1, r3 - 803796e: f8b7 3078 ldrh.w r3, [r7, #120] ; 0x78 - 8037972: 005b lsls r3, r3, #1 - 8037974: b29a uxth r2, r3 - 8037976: f8b7 304e ldrh.w r3, [r7, #78] ; 0x4e - 803797a: 4413 add r3, r2 - 803797c: b29b uxth r3, r3 - 803797e: b21a sxth r2, r3 - 8037980: f107 0308 add.w r3, r7, #8 - 8037984: 4618 mov r0, r3 - 8037986: f7f9 fb25 bl 8030fd4 + 80378c8: f8b7 3078 ldrh.w r3, [r7, #120] ; 0x78 + 80378cc: 005b lsls r3, r3, #1 + 80378ce: b29a uxth r2, r3 + 80378d0: f8b7 304e ldrh.w r3, [r7, #78] ; 0x4e + 80378d4: 4413 add r3, r2 + 80378d6: b29b uxth r3, r3 + 80378d8: b219 sxth r1, r3 + 80378da: f8b7 3078 ldrh.w r3, [r7, #120] ; 0x78 + 80378de: 005b lsls r3, r3, #1 + 80378e0: b29a uxth r2, r3 + 80378e2: f8b7 304e ldrh.w r3, [r7, #78] ; 0x4e + 80378e6: 4413 add r3, r2 + 80378e8: b29b uxth r3, r3 + 80378ea: b21a sxth r2, r3 + 80378ec: f107 0308 add.w r3, r7, #8 + 80378f0: 4618 mov r0, r3 + 80378f2: f7f9 fb25 bl 8030f40 info->res = _lv_area_is_point_on(&a, info->point, LV_RADIUS_CIRCLE); - 803798a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803798c: 6819 ldr r1, [r3, #0] - 803798e: f107 0308 add.w r3, r7, #8 - 8037992: f647 72ff movw r2, #32767 ; 0x7fff - 8037996: 4618 mov r0, r3 - 8037998: f7f9 fc11 bl 80311be <_lv_area_is_point_on> - 803799c: 4603 mov r3, r0 - 803799e: 461a mov r2, r3 - 80379a0: 6d3b ldr r3, [r7, #80] ; 0x50 - 80379a2: 711a strb r2, [r3, #4] - 80379a4: e095 b.n 8037ad2 + 80378f6: 6d3b ldr r3, [r7, #80] ; 0x50 + 80378f8: 6819 ldr r1, [r3, #0] + 80378fa: f107 0308 add.w r3, r7, #8 + 80378fe: f647 72ff movw r2, #32767 ; 0x7fff + 8037902: 4618 mov r0, r3 + 8037904: f7f9 fc11 bl 803112a <_lv_area_is_point_on> + 8037908: 4603 mov r3, r0 + 803790a: 461a mov r2, r3 + 803790c: 6d3b ldr r3, [r7, #80] ; 0x50 + 803790e: 711a strb r2, [r3, #4] + 8037910: e095 b.n 8037a3e } else if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) { - 80379a6: f897 3076 ldrb.w r3, [r7, #118] ; 0x76 - 80379aa: 2b13 cmp r3, #19 - 80379ac: d17c bne.n 8037aa8 + 8037912: f897 3076 ldrb.w r3, [r7, #118] ; 0x76 + 8037916: 2b13 cmp r3, #19 + 8037918: d17c bne.n 8037a14 lv_coord_t bg_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 80379ae: 2100 movs r1, #0 - 80379b0: 6f38 ldr r0, [r7, #112] ; 0x70 - 80379b2: f7ff fa33 bl 8036e1c - 80379b6: 4603 mov r3, r0 - 80379b8: f8a7 306a strh.w r3, [r7, #106] ; 0x6a + 803791a: 2100 movs r1, #0 + 803791c: 6f38 ldr r0, [r7, #112] ; 0x70 + 803791e: f7ff fa33 bl 8036d88 + 8037922: 4603 mov r3, r0 + 8037924: f8a7 306a strh.w r3, [r7, #106] ; 0x6a lv_coord_t bg_right = lv_obj_get_style_pad_right(obj, LV_PART_MAIN); - 80379bc: 2100 movs r1, #0 - 80379be: 6f38 ldr r0, [r7, #112] ; 0x70 - 80379c0: f7ff fa3f bl 8036e42 - 80379c4: 4603 mov r3, r0 - 80379c6: f8a7 3068 strh.w r3, [r7, #104] ; 0x68 + 8037928: 2100 movs r1, #0 + 803792a: 6f38 ldr r0, [r7, #112] ; 0x70 + 803792c: f7ff fa3f bl 8036dae + 8037930: 4603 mov r3, r0 + 8037932: f8a7 3068 strh.w r3, [r7, #104] ; 0x68 lv_coord_t bg_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 80379ca: 2100 movs r1, #0 - 80379cc: 6f38 ldr r0, [r7, #112] ; 0x70 - 80379ce: f7ff f9ff bl 8036dd0 - 80379d2: 4603 mov r3, r0 - 80379d4: f8a7 3066 strh.w r3, [r7, #102] ; 0x66 + 8037936: 2100 movs r1, #0 + 8037938: 6f38 ldr r0, [r7, #112] ; 0x70 + 803793a: f7ff f9ff bl 8036d3c + 803793e: 4603 mov r3, r0 + 8037940: f8a7 3066 strh.w r3, [r7, #102] ; 0x66 lv_coord_t bg_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN); - 80379d8: 2100 movs r1, #0 - 80379da: 6f38 ldr r0, [r7, #112] ; 0x70 - 80379dc: f7ff fa0b bl 8036df6 - 80379e0: 4603 mov r3, r0 - 80379e2: f8a7 3064 strh.w r3, [r7, #100] ; 0x64 + 8037944: 2100 movs r1, #0 + 8037946: 6f38 ldr r0, [r7, #112] ; 0x70 + 8037948: f7ff fa0b bl 8036d62 + 803794c: 4603 mov r3, r0 + 803794e: f8a7 3064 strh.w r3, [r7, #100] ; 0x64 lv_coord_t bg_pad = LV_MAX4(bg_left, bg_right, bg_top, bg_bottom); - 80379e6: f9b7 2064 ldrsh.w r2, [r7, #100] ; 0x64 - 80379ea: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 - 80379ee: 4293 cmp r3, r2 - 80379f0: bfb8 it lt - 80379f2: 4613 movlt r3, r2 - 80379f4: b21a sxth r2, r3 - 80379f6: f9b7 1068 ldrsh.w r1, [r7, #104] ; 0x68 - 80379fa: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 80379fe: 428b cmp r3, r1 - 8037a00: bfb8 it lt - 8037a02: 460b movlt r3, r1 - 8037a04: b21b sxth r3, r3 + 8037952: f9b7 2064 ldrsh.w r2, [r7, #100] ; 0x64 + 8037956: f9b7 3066 ldrsh.w r3, [r7, #102] ; 0x66 + 803795a: 4293 cmp r3, r2 + 803795c: bfb8 it lt + 803795e: 4613 movlt r3, r2 + 8037960: b21a sxth r2, r3 + 8037962: f9b7 1068 ldrsh.w r1, [r7, #104] ; 0x68 + 8037966: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 803796a: 428b cmp r3, r1 + 803796c: bfb8 it lt + 803796e: 460b movlt r3, r1 + 8037970: b21b sxth r3, r3 + 8037972: 4293 cmp r3, r2 + 8037974: bfb8 it lt + 8037976: 4613 movlt r3, r2 + 8037978: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 + + lv_coord_t knob_left = lv_obj_get_style_pad_left(obj, LV_PART_KNOB); + 803797c: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8037980: 6f38 ldr r0, [r7, #112] ; 0x70 + 8037982: f7ff fa01 bl 8036d88 + 8037986: 4603 mov r3, r0 + 8037988: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 + lv_coord_t knob_right = lv_obj_get_style_pad_right(obj, LV_PART_KNOB); + 803798c: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8037990: 6f38 ldr r0, [r7, #112] ; 0x70 + 8037992: f7ff fa0c bl 8036dae + 8037996: 4603 mov r3, r0 + 8037998: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + lv_coord_t knob_top = lv_obj_get_style_pad_top(obj, LV_PART_KNOB); + 803799c: f44f 3140 mov.w r1, #196608 ; 0x30000 + 80379a0: 6f38 ldr r0, [r7, #112] ; 0x70 + 80379a2: f7ff f9cb bl 8036d3c + 80379a6: 4603 mov r3, r0 + 80379a8: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + lv_coord_t knob_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_KNOB); + 80379ac: f44f 3140 mov.w r1, #196608 ; 0x30000 + 80379b0: 6f38 ldr r0, [r7, #112] ; 0x70 + 80379b2: f7ff f9d6 bl 8036d62 + 80379b6: 4603 mov r3, r0 + 80379b8: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + lv_coord_t knob_pad = LV_MAX4(knob_left, knob_right, knob_top, knob_bottom) + 2; + 80379bc: f9b7 205a ldrsh.w r2, [r7, #90] ; 0x5a + 80379c0: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c + 80379c4: 4293 cmp r3, r2 + 80379c6: bfb8 it lt + 80379c8: 4613 movlt r3, r2 + 80379ca: b21a sxth r2, r3 + 80379cc: f9b7 105e ldrsh.w r1, [r7, #94] ; 0x5e + 80379d0: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 + 80379d4: 428b cmp r3, r1 + 80379d6: bfb8 it lt + 80379d8: 460b movlt r3, r1 + 80379da: b21b sxth r3, r3 + 80379dc: 4293 cmp r3, r2 + 80379de: bfb8 it lt + 80379e0: 4613 movlt r3, r2 + 80379e2: b21b sxth r3, r3 + 80379e4: b29b uxth r3, r3 + 80379e6: 3302 adds r3, #2 + 80379e8: b29b uxth r3, r3 + 80379ea: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 + + lv_coord_t * s = lv_event_get_param(e); + 80379ee: 6838 ldr r0, [r7, #0] + 80379f0: f7ca fdb4 bl 800255c + 80379f4: 6578 str r0, [r7, #84] ; 0x54 + *s = LV_MAX(*s, knob_pad - bg_pad); + 80379f6: f9b7 2058 ldrsh.w r2, [r7, #88] ; 0x58 + 80379fa: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 + 80379fe: 1ad3 subs r3, r2, r3 + 8037a00: 6d7a ldr r2, [r7, #84] ; 0x54 + 8037a02: f9b2 2000 ldrsh.w r2, [r2] 8037a06: 4293 cmp r3, r2 8037a08: bfb8 it lt 8037a0a: 4613 movlt r3, r2 - 8037a0c: f8a7 3062 strh.w r3, [r7, #98] ; 0x62 - - lv_coord_t knob_left = lv_obj_get_style_pad_left(obj, LV_PART_KNOB); - 8037a10: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8037a14: 6f38 ldr r0, [r7, #112] ; 0x70 - 8037a16: f7ff fa01 bl 8036e1c - 8037a1a: 4603 mov r3, r0 - 8037a1c: f8a7 3060 strh.w r3, [r7, #96] ; 0x60 - lv_coord_t knob_right = lv_obj_get_style_pad_right(obj, LV_PART_KNOB); - 8037a20: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8037a24: 6f38 ldr r0, [r7, #112] ; 0x70 - 8037a26: f7ff fa0c bl 8036e42 - 8037a2a: 4603 mov r3, r0 - 8037a2c: f8a7 305e strh.w r3, [r7, #94] ; 0x5e - lv_coord_t knob_top = lv_obj_get_style_pad_top(obj, LV_PART_KNOB); - 8037a30: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8037a34: 6f38 ldr r0, [r7, #112] ; 0x70 - 8037a36: f7ff f9cb bl 8036dd0 - 8037a3a: 4603 mov r3, r0 - 8037a3c: f8a7 305c strh.w r3, [r7, #92] ; 0x5c - lv_coord_t knob_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_KNOB); - 8037a40: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8037a44: 6f38 ldr r0, [r7, #112] ; 0x70 - 8037a46: f7ff f9d6 bl 8036df6 - 8037a4a: 4603 mov r3, r0 - 8037a4c: f8a7 305a strh.w r3, [r7, #90] ; 0x5a - lv_coord_t knob_pad = LV_MAX4(knob_left, knob_right, knob_top, knob_bottom) + 2; - 8037a50: f9b7 205a ldrsh.w r2, [r7, #90] ; 0x5a - 8037a54: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c - 8037a58: 4293 cmp r3, r2 - 8037a5a: bfb8 it lt - 8037a5c: 4613 movlt r3, r2 - 8037a5e: b21a sxth r2, r3 - 8037a60: f9b7 105e ldrsh.w r1, [r7, #94] ; 0x5e - 8037a64: f9b7 3060 ldrsh.w r3, [r7, #96] ; 0x60 - 8037a68: 428b cmp r3, r1 - 8037a6a: bfb8 it lt - 8037a6c: 460b movlt r3, r1 - 8037a6e: b21b sxth r3, r3 - 8037a70: 4293 cmp r3, r2 - 8037a72: bfb8 it lt - 8037a74: 4613 movlt r3, r2 - 8037a76: b21b sxth r3, r3 - 8037a78: b29b uxth r3, r3 - 8037a7a: 3302 adds r3, #2 - 8037a7c: b29b uxth r3, r3 - 8037a7e: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 - - lv_coord_t * s = lv_event_get_param(e); - 8037a82: 6838 ldr r0, [r7, #0] - 8037a84: f7ca fda0 bl 80025c8 - 8037a88: 6578 str r0, [r7, #84] ; 0x54 - *s = LV_MAX(*s, knob_pad - bg_pad); - 8037a8a: f9b7 2058 ldrsh.w r2, [r7, #88] ; 0x58 - 8037a8e: f9b7 3062 ldrsh.w r3, [r7, #98] ; 0x62 - 8037a92: 1ad3 subs r3, r2, r3 - 8037a94: 6d7a ldr r2, [r7, #84] ; 0x54 - 8037a96: f9b2 2000 ldrsh.w r2, [r2] - 8037a9a: 4293 cmp r3, r2 - 8037a9c: bfb8 it lt - 8037a9e: 4613 movlt r3, r2 - 8037aa0: b21a sxth r2, r3 - 8037aa2: 6d7b ldr r3, [r7, #84] ; 0x54 - 8037aa4: 801a strh r2, [r3, #0] - 8037aa6: e014 b.n 8037ad2 + 8037a0c: b21a sxth r2, r3 + 8037a0e: 6d7b ldr r3, [r7, #84] ; 0x54 + 8037a10: 801a strh r2, [r3, #0] + 8037a12: e014 b.n 8037a3e } else if(code == LV_EVENT_DRAW_MAIN) { - 8037aa8: f897 3076 ldrb.w r3, [r7, #118] ; 0x76 - 8037aac: 2b15 cmp r3, #21 - 8037aae: d110 bne.n 8037ad2 + 8037a14: f897 3076 ldrb.w r3, [r7, #118] ; 0x76 + 8037a18: 2b15 cmp r3, #21 + 8037a1a: d110 bne.n 8037a3e lv_arc_draw(e); - 8037ab0: 6838 ldr r0, [r7, #0] - 8037ab2: f000 f811 bl 8037ad8 - 8037ab6: e00c b.n 8037ad2 + 8037a1c: 6838 ldr r0, [r7, #0] + 8037a1e: f000 f811 bl 8037a44 + 8037a22: e00c b.n 8037a3e if(res != LV_RES_OK) return; - 8037ab8: bf00 nop - 8037aba: e00a b.n 8037ad2 + 8037a24: bf00 nop + 8037a26: e00a b.n 8037a3e if(indev == NULL) return; - 8037abc: bf00 nop - 8037abe: e008 b.n 8037ad2 + 8037a28: bf00 nop + 8037a2a: e008 b.n 8037a3e if(indev_type != LV_INDEV_TYPE_POINTER) return; - 8037ac0: bf00 nop - 8037ac2: e006 b.n 8037ad2 + 8037a2c: bf00 nop + 8037a2e: e006 b.n 8037a3e if(arc->dragging == false) return; - 8037ac4: bf00 nop - 8037ac6: e004 b.n 8037ad2 + 8037a30: bf00 nop + 8037a32: e004 b.n 8037a3e if(p.x == 0 && p.y == 0) return; - 8037ac8: bf00 nop - 8037aca: e002 b.n 8037ad2 + 8037a34: bf00 nop + 8037a36: e002 b.n 8037a3e if(res != LV_RES_OK) return; - 8037acc: bf00 nop - 8037ace: e000 b.n 8037ad2 + 8037a38: bf00 nop + 8037a3a: e000 b.n 8037a3e else if(code == LV_EVENT_RELEASED || code == LV_EVENT_PRESS_LOST) { - 8037ad0: bf00 nop + 8037a3c: bf00 nop } } - 8037ad2: 3780 adds r7, #128 ; 0x80 - 8037ad4: 46bd mov sp, r7 - 8037ad6: bdb0 pop {r4, r5, r7, pc} + 8037a3e: 3780 adds r7, #128 ; 0x80 + 8037a40: 46bd mov sp, r7 + 8037a42: bdb0 pop {r4, r5, r7, pc} -08037ad8 : +08037a44 : static void lv_arc_draw(lv_event_t * e) { - 8037ad8: b590 push {r4, r7, lr} - 8037ada: b0b3 sub sp, #204 ; 0xcc - 8037adc: af02 add r7, sp, #8 - 8037ade: 6078 str r0, [r7, #4] + 8037a44: b590 push {r4, r7, lr} + 8037a46: b0b3 sub sp, #204 ; 0xcc + 8037a48: af02 add r7, sp, #8 + 8037a4a: 6078 str r0, [r7, #4] lv_obj_t * obj = lv_event_get_target(e); - 8037ae0: 6878 ldr r0, [r7, #4] - 8037ae2: f7ca fd4d bl 8002580 - 8037ae6: f8c7 00bc str.w r0, [r7, #188] ; 0xbc + 8037a4c: 6878 ldr r0, [r7, #4] + 8037a4e: f7ca fd61 bl 8002514 + 8037a52: f8c7 00bc str.w r0, [r7, #188] ; 0xbc lv_arc_t * arc = (lv_arc_t *)obj; - 8037aea: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc - 8037aee: f8c7 30b8 str.w r3, [r7, #184] ; 0xb8 + 8037a56: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc + 8037a5a: f8c7 30b8 str.w r3, [r7, #184] ; 0xb8 lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 8037af2: 6878 ldr r0, [r7, #4] - 8037af4: f7ca fe5a bl 80027ac - 8037af8: f8c7 00b4 str.w r0, [r7, #180] ; 0xb4 + 8037a5e: 6878 ldr r0, [r7, #4] + 8037a60: f7ca fe6e bl 8002740 + 8037a64: f8c7 00b4 str.w r0, [r7, #180] ; 0xb4 lv_point_t center; lv_coord_t arc_r; get_center(obj, ¢er, &arc_r); - 8037afc: f107 02a2 add.w r2, r7, #162 ; 0xa2 - 8037b00: f107 03a4 add.w r3, r7, #164 ; 0xa4 - 8037b04: 4619 mov r1, r3 - 8037b06: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc - 8037b0a: f000 f9d9 bl 8037ec0 + 8037a68: f107 02a2 add.w r2, r7, #162 ; 0xa2 + 8037a6c: f107 03a4 add.w r3, r7, #164 ; 0xa4 + 8037a70: 4619 mov r1, r3 + 8037a72: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc + 8037a76: f000 f9d9 bl 8037e2c lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 8037b0e: f107 0358 add.w r3, r7, #88 ; 0x58 - 8037b12: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 - 8037b16: 4618 mov r0, r3 - 8037b18: f7d1 f9a9 bl 8008e6e + 8037a7a: f107 0358 add.w r3, r7, #88 ; 0x58 + 8037a7e: f8d7 10b4 ldr.w r1, [r7, #180] ; 0xb4 + 8037a82: 4618 mov r0, r3 + 8037a84: f7d1 f9bd bl 8008e02 /*Draw the background arc*/ lv_draw_arc_dsc_t arc_dsc; if(arc_r > 0) { - 8037b1c: f9b7 30a2 ldrsh.w r3, [r7, #162] ; 0xa2 - 8037b20: 2b00 cmp r3, #0 - 8037b22: dd4c ble.n 8037bbe + 8037a88: f9b7 30a2 ldrsh.w r3, [r7, #162] ; 0xa2 + 8037a8c: 2b00 cmp r3, #0 + 8037a8e: dd4c ble.n 8037b2a lv_draw_arc_dsc_init(&arc_dsc); - 8037b24: f107 0348 add.w r3, r7, #72 ; 0x48 - 8037b28: 4618 mov r0, r3 - 8037b2a: f7d9 fb07 bl 801113c + 8037a90: f107 0348 add.w r3, r7, #72 ; 0x48 + 8037a94: 4618 mov r0, r3 + 8037a96: f7d9 fb07 bl 80110a8 lv_obj_init_draw_arc_dsc(obj, LV_PART_MAIN, &arc_dsc); - 8037b2e: f107 0348 add.w r3, r7, #72 ; 0x48 - 8037b32: 461a mov r2, r3 - 8037b34: 2100 movs r1, #0 - 8037b36: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc - 8037b3a: f7d1 f894 bl 8008c66 + 8037a9a: f107 0348 add.w r3, r7, #72 ; 0x48 + 8037a9e: 461a mov r2, r3 + 8037aa0: 2100 movs r1, #0 + 8037aa2: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc + 8037aa6: f7d1 f8a8 bl 8008bfa part_draw_dsc.part = LV_PART_MAIN; - 8037b3e: 2300 movs r3, #0 - 8037b40: f8c7 308c str.w r3, [r7, #140] ; 0x8c + 8037aaa: 2300 movs r3, #0 + 8037aac: f8c7 308c str.w r3, [r7, #140] ; 0x8c part_draw_dsc.class_p = MY_CLASS; - 8037b44: 4b8e ldr r3, [pc, #568] ; (8037d80 ) - 8037b46: 65fb str r3, [r7, #92] ; 0x5c + 8037ab0: 4b8e ldr r3, [pc, #568] ; (8037cec ) + 8037ab2: 65fb str r3, [r7, #92] ; 0x5c part_draw_dsc.type = LV_ARC_DRAW_PART_BACKGROUND; - 8037b48: 2300 movs r3, #0 - 8037b4a: 663b str r3, [r7, #96] ; 0x60 + 8037ab4: 2300 movs r3, #0 + 8037ab6: 663b str r3, [r7, #96] ; 0x60 part_draw_dsc.p1 = ¢er; - 8037b4c: f107 03a4 add.w r3, r7, #164 ; 0xa4 - 8037b50: 67fb str r3, [r7, #124] ; 0x7c + 8037ab8: f107 03a4 add.w r3, r7, #164 ; 0xa4 + 8037abc: 67fb str r3, [r7, #124] ; 0x7c part_draw_dsc.radius = arc_r; - 8037b52: f9b7 30a2 ldrsh.w r3, [r7, #162] ; 0xa2 - 8037b56: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 + 8037abe: f9b7 30a2 ldrsh.w r3, [r7, #162] ; 0xa2 + 8037ac2: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 part_draw_dsc.arc_dsc = &arc_dsc; - 8037b5a: f107 0348 add.w r3, r7, #72 ; 0x48 - 8037b5e: 67bb str r3, [r7, #120] ; 0x78 + 8037ac6: f107 0348 add.w r3, r7, #72 ; 0x48 + 8037aca: 67bb str r3, [r7, #120] ; 0x78 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 8037b60: f107 0358 add.w r3, r7, #88 ; 0x58 - 8037b64: 461a mov r2, r3 - 8037b66: 211a movs r1, #26 - 8037b68: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc - 8037b6c: f7ca fc88 bl 8002480 + 8037acc: f107 0358 add.w r3, r7, #88 ; 0x58 + 8037ad0: 461a mov r2, r3 + 8037ad2: 211a movs r1, #26 + 8037ad4: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc + 8037ad8: f7ca fc9c bl 8002414 lv_draw_arc(draw_ctx, &arc_dsc, ¢er, part_draw_dsc.radius, arc->bg_angle_start + arc->rotation, - 8037b70: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 - 8037b74: b29c uxth r4, r3 - 8037b76: f8d7 30b8 ldr.w r3, [r7, #184] ; 0xb8 - 8037b7a: 8d5a ldrh r2, [r3, #42] ; 0x2a - 8037b7c: f8d7 30b8 ldr.w r3, [r7, #184] ; 0xb8 - 8037b80: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8037b82: 4413 add r3, r2 - 8037b84: b29b uxth r3, r3 + 8037adc: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 + 8037ae0: b29c uxth r4, r3 + 8037ae2: f8d7 30b8 ldr.w r3, [r7, #184] ; 0xb8 + 8037ae6: 8d5a ldrh r2, [r3, #42] ; 0x2a + 8037ae8: f8d7 30b8 ldr.w r3, [r7, #184] ; 0xb8 + 8037aec: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8037aee: 4413 add r3, r2 + 8037af0: b29b uxth r3, r3 arc->bg_angle_end + arc->rotation); - 8037b86: f8d7 20b8 ldr.w r2, [r7, #184] ; 0xb8 - 8037b8a: 8d91 ldrh r1, [r2, #44] ; 0x2c - 8037b8c: f8d7 20b8 ldr.w r2, [r7, #184] ; 0xb8 - 8037b90: 8c92 ldrh r2, [r2, #36] ; 0x24 + 8037af2: f8d7 20b8 ldr.w r2, [r7, #184] ; 0xb8 + 8037af6: 8d91 ldrh r1, [r2, #44] ; 0x2c + 8037af8: f8d7 20b8 ldr.w r2, [r7, #184] ; 0xb8 + 8037afc: 8c92 ldrh r2, [r2, #36] ; 0x24 lv_draw_arc(draw_ctx, &arc_dsc, ¢er, part_draw_dsc.radius, arc->bg_angle_start + arc->rotation, - 8037b92: 440a add r2, r1 - 8037b94: b292 uxth r2, r2 - 8037b96: f107 00a4 add.w r0, r7, #164 ; 0xa4 - 8037b9a: f107 0148 add.w r1, r7, #72 ; 0x48 - 8037b9e: 9201 str r2, [sp, #4] - 8037ba0: 9300 str r3, [sp, #0] - 8037ba2: 4623 mov r3, r4 - 8037ba4: 4602 mov r2, r0 - 8037ba6: f8d7 00b4 ldr.w r0, [r7, #180] ; 0xb4 - 8037baa: f7d9 fadd bl 8011168 + 8037afe: 440a add r2, r1 + 8037b00: b292 uxth r2, r2 + 8037b02: f107 00a4 add.w r0, r7, #164 ; 0xa4 + 8037b06: f107 0148 add.w r1, r7, #72 ; 0x48 + 8037b0a: 9201 str r2, [sp, #4] + 8037b0c: 9300 str r3, [sp, #0] + 8037b0e: 4623 mov r3, r4 + 8037b10: 4602 mov r2, r0 + 8037b12: f8d7 00b4 ldr.w r0, [r7, #180] ; 0xb4 + 8037b16: f7d9 fadd bl 80110d4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 8037bae: f107 0358 add.w r3, r7, #88 ; 0x58 - 8037bb2: 461a mov r2, r3 - 8037bb4: 211b movs r1, #27 - 8037bb6: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc - 8037bba: f7ca fc61 bl 8002480 + 8037b1a: f107 0358 add.w r3, r7, #88 ; 0x58 + 8037b1e: 461a mov r2, r3 + 8037b20: 211b movs r1, #27 + 8037b22: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc + 8037b26: f7ca fc75 bl 8002414 } /*Make the indicator arc smaller or larger according to its greatest padding value*/ lv_coord_t left_indic = lv_obj_get_style_pad_left(obj, LV_PART_INDICATOR); - 8037bbe: f44f 3100 mov.w r1, #131072 ; 0x20000 - 8037bc2: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc - 8037bc6: f7ff f929 bl 8036e1c - 8037bca: 4603 mov r3, r0 - 8037bcc: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 + 8037b2a: f44f 3100 mov.w r1, #131072 ; 0x20000 + 8037b2e: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc + 8037b32: f7ff f929 bl 8036d88 + 8037b36: 4603 mov r3, r0 + 8037b38: f8a7 30b2 strh.w r3, [r7, #178] ; 0xb2 lv_coord_t right_indic = lv_obj_get_style_pad_right(obj, LV_PART_INDICATOR); - 8037bd0: f44f 3100 mov.w r1, #131072 ; 0x20000 - 8037bd4: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc - 8037bd8: f7ff f933 bl 8036e42 - 8037bdc: 4603 mov r3, r0 - 8037bde: f8a7 30b0 strh.w r3, [r7, #176] ; 0xb0 + 8037b3c: f44f 3100 mov.w r1, #131072 ; 0x20000 + 8037b40: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc + 8037b44: f7ff f933 bl 8036dae + 8037b48: 4603 mov r3, r0 + 8037b4a: f8a7 30b0 strh.w r3, [r7, #176] ; 0xb0 lv_coord_t top_indic = lv_obj_get_style_pad_top(obj, LV_PART_INDICATOR); - 8037be2: f44f 3100 mov.w r1, #131072 ; 0x20000 - 8037be6: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc - 8037bea: f7ff f8f1 bl 8036dd0 - 8037bee: 4603 mov r3, r0 - 8037bf0: f8a7 30ae strh.w r3, [r7, #174] ; 0xae + 8037b4e: f44f 3100 mov.w r1, #131072 ; 0x20000 + 8037b52: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc + 8037b56: f7ff f8f1 bl 8036d3c + 8037b5a: 4603 mov r3, r0 + 8037b5c: f8a7 30ae strh.w r3, [r7, #174] ; 0xae lv_coord_t bottom_indic = lv_obj_get_style_pad_bottom(obj, LV_PART_INDICATOR); - 8037bf4: f44f 3100 mov.w r1, #131072 ; 0x20000 - 8037bf8: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc - 8037bfc: f7ff f8fb bl 8036df6 - 8037c00: 4603 mov r3, r0 - 8037c02: f8a7 30ac strh.w r3, [r7, #172] ; 0xac + 8037b60: f44f 3100 mov.w r1, #131072 ; 0x20000 + 8037b64: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc + 8037b68: f7ff f8fb bl 8036d62 + 8037b6c: 4603 mov r3, r0 + 8037b6e: f8a7 30ac strh.w r3, [r7, #172] ; 0xac lv_coord_t indic_r = arc_r - LV_MAX4(left_indic, right_indic, top_indic, bottom_indic); - 8037c06: f9b7 30a2 ldrsh.w r3, [r7, #162] ; 0xa2 - 8037c0a: b29a uxth r2, r3 - 8037c0c: f9b7 10ac ldrsh.w r1, [r7, #172] ; 0xac - 8037c10: f9b7 30ae ldrsh.w r3, [r7, #174] ; 0xae - 8037c14: 428b cmp r3, r1 - 8037c16: bfb8 it lt - 8037c18: 460b movlt r3, r1 - 8037c1a: b219 sxth r1, r3 - 8037c1c: f9b7 00b0 ldrsh.w r0, [r7, #176] ; 0xb0 - 8037c20: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 - 8037c24: 4283 cmp r3, r0 - 8037c26: bfb8 it lt - 8037c28: 4603 movlt r3, r0 - 8037c2a: b21b sxth r3, r3 - 8037c2c: 428b cmp r3, r1 - 8037c2e: bfb8 it lt - 8037c30: 460b movlt r3, r1 - 8037c32: b21b sxth r3, r3 - 8037c34: b29b uxth r3, r3 - 8037c36: 1ad3 subs r3, r2, r3 - 8037c38: b29b uxth r3, r3 - 8037c3a: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa + 8037b72: f9b7 30a2 ldrsh.w r3, [r7, #162] ; 0xa2 + 8037b76: b29a uxth r2, r3 + 8037b78: f9b7 10ac ldrsh.w r1, [r7, #172] ; 0xac + 8037b7c: f9b7 30ae ldrsh.w r3, [r7, #174] ; 0xae + 8037b80: 428b cmp r3, r1 + 8037b82: bfb8 it lt + 8037b84: 460b movlt r3, r1 + 8037b86: b219 sxth r1, r3 + 8037b88: f9b7 00b0 ldrsh.w r0, [r7, #176] ; 0xb0 + 8037b8c: f9b7 30b2 ldrsh.w r3, [r7, #178] ; 0xb2 + 8037b90: 4283 cmp r3, r0 + 8037b92: bfb8 it lt + 8037b94: 4603 movlt r3, r0 + 8037b96: b21b sxth r3, r3 + 8037b98: 428b cmp r3, r1 + 8037b9a: bfb8 it lt + 8037b9c: 460b movlt r3, r1 + 8037b9e: b21b sxth r3, r3 + 8037ba0: b29b uxth r3, r3 + 8037ba2: 1ad3 subs r3, r2, r3 + 8037ba4: b29b uxth r3, r3 + 8037ba6: f8a7 30aa strh.w r3, [r7, #170] ; 0xaa if(indic_r > 0) { - 8037c3e: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa - 8037c42: 2b00 cmp r3, #0 - 8037c44: dd58 ble.n 8037cf8 + 8037baa: f9b7 30aa ldrsh.w r3, [r7, #170] ; 0xaa + 8037bae: 2b00 cmp r3, #0 + 8037bb0: dd58 ble.n 8037c64 lv_draw_arc_dsc_init(&arc_dsc); - 8037c46: f107 0348 add.w r3, r7, #72 ; 0x48 - 8037c4a: 4618 mov r0, r3 - 8037c4c: f7d9 fa76 bl 801113c + 8037bb2: f107 0348 add.w r3, r7, #72 ; 0x48 + 8037bb6: 4618 mov r0, r3 + 8037bb8: f7d9 fa76 bl 80110a8 lv_obj_init_draw_arc_dsc(obj, LV_PART_INDICATOR, &arc_dsc); - 8037c50: f107 0348 add.w r3, r7, #72 ; 0x48 - 8037c54: 461a mov r2, r3 - 8037c56: f44f 3100 mov.w r1, #131072 ; 0x20000 - 8037c5a: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc - 8037c5e: f7d1 f802 bl 8008c66 + 8037bbc: f107 0348 add.w r3, r7, #72 ; 0x48 + 8037bc0: 461a mov r2, r3 + 8037bc2: f44f 3100 mov.w r1, #131072 ; 0x20000 + 8037bc6: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc + 8037bca: f7d1 f816 bl 8008bfa part_draw_dsc.part = LV_PART_INDICATOR; - 8037c62: f44f 3300 mov.w r3, #131072 ; 0x20000 - 8037c66: f8c7 308c str.w r3, [r7, #140] ; 0x8c + 8037bce: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8037bd2: f8c7 308c str.w r3, [r7, #140] ; 0x8c part_draw_dsc.class_p = MY_CLASS; - 8037c6a: 4b45 ldr r3, [pc, #276] ; (8037d80 ) - 8037c6c: 65fb str r3, [r7, #92] ; 0x5c + 8037bd6: 4b45 ldr r3, [pc, #276] ; (8037cec ) + 8037bd8: 65fb str r3, [r7, #92] ; 0x5c part_draw_dsc.type = LV_ARC_DRAW_PART_FOREGROUND; - 8037c6e: 2301 movs r3, #1 - 8037c70: 663b str r3, [r7, #96] ; 0x60 + 8037bda: 2301 movs r3, #1 + 8037bdc: 663b str r3, [r7, #96] ; 0x60 part_draw_dsc.p1 = ¢er; - 8037c72: f107 03a4 add.w r3, r7, #164 ; 0xa4 - 8037c76: 67fb str r3, [r7, #124] ; 0x7c + 8037bde: f107 03a4 add.w r3, r7, #164 ; 0xa4 + 8037be2: 67fb str r3, [r7, #124] ; 0x7c part_draw_dsc.radius = indic_r; - 8037c78: f8b7 30aa ldrh.w r3, [r7, #170] ; 0xaa - 8037c7c: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 + 8037be4: f8b7 30aa ldrh.w r3, [r7, #170] ; 0xaa + 8037be8: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 part_draw_dsc.arc_dsc = &arc_dsc; - 8037c80: f107 0348 add.w r3, r7, #72 ; 0x48 - 8037c84: 67bb str r3, [r7, #120] ; 0x78 + 8037bec: f107 0348 add.w r3, r7, #72 ; 0x48 + 8037bf0: 67bb str r3, [r7, #120] ; 0x78 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 8037c86: f107 0358 add.w r3, r7, #88 ; 0x58 - 8037c8a: 461a mov r2, r3 - 8037c8c: 211a movs r1, #26 - 8037c8e: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc - 8037c92: f7ca fbf5 bl 8002480 + 8037bf2: f107 0358 add.w r3, r7, #88 ; 0x58 + 8037bf6: 461a mov r2, r3 + 8037bf8: 211a movs r1, #26 + 8037bfa: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc + 8037bfe: f7ca fc09 bl 8002414 if(arc_dsc.width > part_draw_dsc.radius) arc_dsc.width = part_draw_dsc.radius; - 8037c96: f9b7 204a ldrsh.w r2, [r7, #74] ; 0x4a - 8037c9a: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 - 8037c9e: 429a cmp r2, r3 - 8037ca0: dd03 ble.n 8037caa - 8037ca2: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 - 8037ca6: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 8037c02: f9b7 204a ldrsh.w r2, [r7, #74] ; 0x4a + 8037c06: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 + 8037c0a: 429a cmp r2, r3 + 8037c0c: dd03 ble.n 8037c16 + 8037c0e: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 + 8037c12: f8a7 304a strh.w r3, [r7, #74] ; 0x4a lv_draw_arc(draw_ctx, &arc_dsc, ¢er, part_draw_dsc.radius, arc->indic_angle_start + arc->rotation, - 8037caa: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 - 8037cae: b29c uxth r4, r3 - 8037cb0: f8d7 30b8 ldr.w r3, [r7, #184] ; 0xb8 - 8037cb4: 8cda ldrh r2, [r3, #38] ; 0x26 - 8037cb6: f8d7 30b8 ldr.w r3, [r7, #184] ; 0xb8 - 8037cba: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8037cbc: 4413 add r3, r2 - 8037cbe: b29b uxth r3, r3 + 8037c16: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 + 8037c1a: b29c uxth r4, r3 + 8037c1c: f8d7 30b8 ldr.w r3, [r7, #184] ; 0xb8 + 8037c20: 8cda ldrh r2, [r3, #38] ; 0x26 + 8037c22: f8d7 30b8 ldr.w r3, [r7, #184] ; 0xb8 + 8037c26: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8037c28: 4413 add r3, r2 + 8037c2a: b29b uxth r3, r3 arc->indic_angle_end + arc->rotation); - 8037cc0: f8d7 20b8 ldr.w r2, [r7, #184] ; 0xb8 - 8037cc4: 8d11 ldrh r1, [r2, #40] ; 0x28 - 8037cc6: f8d7 20b8 ldr.w r2, [r7, #184] ; 0xb8 - 8037cca: 8c92 ldrh r2, [r2, #36] ; 0x24 + 8037c2c: f8d7 20b8 ldr.w r2, [r7, #184] ; 0xb8 + 8037c30: 8d11 ldrh r1, [r2, #40] ; 0x28 + 8037c32: f8d7 20b8 ldr.w r2, [r7, #184] ; 0xb8 + 8037c36: 8c92 ldrh r2, [r2, #36] ; 0x24 lv_draw_arc(draw_ctx, &arc_dsc, ¢er, part_draw_dsc.radius, arc->indic_angle_start + arc->rotation, - 8037ccc: 440a add r2, r1 - 8037cce: b292 uxth r2, r2 - 8037cd0: f107 00a4 add.w r0, r7, #164 ; 0xa4 - 8037cd4: f107 0148 add.w r1, r7, #72 ; 0x48 - 8037cd8: 9201 str r2, [sp, #4] - 8037cda: 9300 str r3, [sp, #0] - 8037cdc: 4623 mov r3, r4 - 8037cde: 4602 mov r2, r0 - 8037ce0: f8d7 00b4 ldr.w r0, [r7, #180] ; 0xb4 - 8037ce4: f7d9 fa40 bl 8011168 + 8037c38: 440a add r2, r1 + 8037c3a: b292 uxth r2, r2 + 8037c3c: f107 00a4 add.w r0, r7, #164 ; 0xa4 + 8037c40: f107 0148 add.w r1, r7, #72 ; 0x48 + 8037c44: 9201 str r2, [sp, #4] + 8037c46: 9300 str r3, [sp, #0] + 8037c48: 4623 mov r3, r4 + 8037c4a: 4602 mov r2, r0 + 8037c4c: f8d7 00b4 ldr.w r0, [r7, #180] ; 0xb4 + 8037c50: f7d9 fa40 bl 80110d4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 8037ce8: f107 0358 add.w r3, r7, #88 ; 0x58 - 8037cec: 461a mov r2, r3 - 8037cee: 211b movs r1, #27 - 8037cf0: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc - 8037cf4: f7ca fbc4 bl 8002480 + 8037c54: f107 0358 add.w r3, r7, #88 ; 0x58 + 8037c58: 461a mov r2, r3 + 8037c5a: 211b movs r1, #27 + 8037c5c: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc + 8037c60: f7ca fbd8 bl 8002414 } lv_area_t knob_area; get_knob_area(obj, ¢er, arc_r, &knob_area); - 8037cf8: f9b7 20a2 ldrsh.w r2, [r7, #162] ; 0xa2 - 8037cfc: f107 0340 add.w r3, r7, #64 ; 0x40 - 8037d00: f107 01a4 add.w r1, r7, #164 ; 0xa4 - 8037d04: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc - 8037d08: f000 f954 bl 8037fb4 + 8037c64: f9b7 20a2 ldrsh.w r2, [r7, #162] ; 0xa2 + 8037c68: f107 0340 add.w r3, r7, #64 ; 0x40 + 8037c6c: f107 01a4 add.w r1, r7, #164 ; 0xa4 + 8037c70: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc + 8037c74: f000 f954 bl 8037f20 lv_draw_rect_dsc_t knob_rect_dsc; lv_draw_rect_dsc_init(&knob_rect_dsc); - 8037d0c: f107 0308 add.w r3, r7, #8 - 8037d10: 4618 mov r0, r3 - 8037d12: f7dd fd6f bl 80157f4 + 8037c78: f107 0308 add.w r3, r7, #8 + 8037c7c: 4618 mov r0, r3 + 8037c7e: f7dd fd6f bl 8015760 lv_obj_init_draw_rect_dsc(obj, LV_PART_KNOB, &knob_rect_dsc); - 8037d16: f107 0308 add.w r3, r7, #8 - 8037d1a: 461a mov r2, r3 - 8037d1c: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8037d20: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc - 8037d24: f7d0 fc4f bl 80085c6 + 8037c82: f107 0308 add.w r3, r7, #8 + 8037c86: 461a mov r2, r3 + 8037c88: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8037c8c: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc + 8037c90: f7d0 fc63 bl 800855a part_draw_dsc.part = LV_PART_KNOB; - 8037d28: f44f 3340 mov.w r3, #196608 ; 0x30000 - 8037d2c: f8c7 308c str.w r3, [r7, #140] ; 0x8c + 8037c94: f44f 3340 mov.w r3, #196608 ; 0x30000 + 8037c98: f8c7 308c str.w r3, [r7, #140] ; 0x8c part_draw_dsc.class_p = MY_CLASS; - 8037d30: 4b13 ldr r3, [pc, #76] ; (8037d80 ) - 8037d32: 65fb str r3, [r7, #92] ; 0x5c + 8037c9c: 4b13 ldr r3, [pc, #76] ; (8037cec ) + 8037c9e: 65fb str r3, [r7, #92] ; 0x5c part_draw_dsc.type = LV_ARC_DRAW_PART_KNOB; - 8037d34: 2302 movs r3, #2 - 8037d36: 663b str r3, [r7, #96] ; 0x60 + 8037ca0: 2302 movs r3, #2 + 8037ca2: 663b str r3, [r7, #96] ; 0x60 part_draw_dsc.draw_area = &knob_area; - 8037d38: f107 0340 add.w r3, r7, #64 ; 0x40 - 8037d3c: 667b str r3, [r7, #100] ; 0x64 + 8037ca4: f107 0340 add.w r3, r7, #64 ; 0x40 + 8037ca8: 667b str r3, [r7, #100] ; 0x64 part_draw_dsc.rect_dsc = &knob_rect_dsc; - 8037d3e: f107 0308 add.w r3, r7, #8 - 8037d42: 66bb str r3, [r7, #104] ; 0x68 + 8037caa: f107 0308 add.w r3, r7, #8 + 8037cae: 66bb str r3, [r7, #104] ; 0x68 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 8037d44: f107 0358 add.w r3, r7, #88 ; 0x58 - 8037d48: 461a mov r2, r3 - 8037d4a: 211a movs r1, #26 - 8037d4c: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc - 8037d50: f7ca fb96 bl 8002480 + 8037cb0: f107 0358 add.w r3, r7, #88 ; 0x58 + 8037cb4: 461a mov r2, r3 + 8037cb6: 211a movs r1, #26 + 8037cb8: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc + 8037cbc: f7ca fbaa bl 8002414 lv_draw_rect(draw_ctx, &knob_rect_dsc, &knob_area); - 8037d54: f107 0240 add.w r2, r7, #64 ; 0x40 - 8037d58: f107 0308 add.w r3, r7, #8 - 8037d5c: 4619 mov r1, r3 - 8037d5e: f8d7 00b4 ldr.w r0, [r7, #180] ; 0xb4 - 8037d62: f7dd fd89 bl 8015878 + 8037cc0: f107 0240 add.w r2, r7, #64 ; 0x40 + 8037cc4: f107 0308 add.w r3, r7, #8 + 8037cc8: 4619 mov r1, r3 + 8037cca: f8d7 00b4 ldr.w r0, [r7, #180] ; 0xb4 + 8037cce: f7dd fd89 bl 80157e4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 8037d66: f107 0358 add.w r3, r7, #88 ; 0x58 - 8037d6a: 461a mov r2, r3 - 8037d6c: 211b movs r1, #27 - 8037d6e: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc - 8037d72: f7ca fb85 bl 8002480 + 8037cd2: f107 0358 add.w r3, r7, #88 ; 0x58 + 8037cd6: 461a mov r2, r3 + 8037cd8: 211b movs r1, #27 + 8037cda: f8d7 00bc ldr.w r0, [r7, #188] ; 0xbc + 8037cde: f7ca fb99 bl 8002414 } - 8037d76: bf00 nop - 8037d78: 37c4 adds r7, #196 ; 0xc4 - 8037d7a: 46bd mov sp, r7 - 8037d7c: bd90 pop {r4, r7, pc} - 8037d7e: bf00 nop - 8037d80: 080709ac .word 0x080709ac + 8037ce2: bf00 nop + 8037ce4: 37c4 adds r7, #196 ; 0xc4 + 8037ce6: 46bd mov sp, r7 + 8037ce8: bd90 pop {r4, r7, pc} + 8037cea: bf00 nop + 8037cec: 08070904 .word 0x08070904 -08037d84 : +08037cf0 : static void inv_arc_area(lv_obj_t * obj, uint16_t start_angle, uint16_t end_angle, lv_part_t part) { - 8037d84: b5b0 push {r4, r5, r7, lr} - 8037d86: b08e sub sp, #56 ; 0x38 - 8037d88: af04 add r7, sp, #16 - 8037d8a: 60f8 str r0, [r7, #12] - 8037d8c: 607b str r3, [r7, #4] - 8037d8e: 460b mov r3, r1 - 8037d90: 817b strh r3, [r7, #10] - 8037d92: 4613 mov r3, r2 - 8037d94: 813b strh r3, [r7, #8] + 8037cf0: b5b0 push {r4, r5, r7, lr} + 8037cf2: b08e sub sp, #56 ; 0x38 + 8037cf4: af04 add r7, sp, #16 + 8037cf6: 60f8 str r0, [r7, #12] + 8037cf8: 607b str r3, [r7, #4] + 8037cfa: 460b mov r3, r1 + 8037cfc: 817b strh r3, [r7, #10] + 8037cfe: 4613 mov r3, r2 + 8037d00: 813b strh r3, [r7, #8] LV_ASSERT_OBJ(obj, MY_CLASS); /*Skip this complicated invalidation if the arc is not visible*/ if(lv_obj_is_visible(obj) == false) return; - 8037d96: 68f8 ldr r0, [r7, #12] - 8037d98: f7d2 ff8a bl 800acb0 - 8037d9c: 4603 mov r3, r0 - 8037d9e: f083 0301 eor.w r3, r3, #1 - 8037da2: b2db uxtb r3, r3 - 8037da4: 2b00 cmp r3, #0 - 8037da6: d166 bne.n 8037e76 + 8037d02: 68f8 ldr r0, [r7, #12] + 8037d04: f7d2 ff9e bl 800ac44 + 8037d08: 4603 mov r3, r0 + 8037d0a: f083 0301 eor.w r3, r3, #1 + 8037d0e: b2db uxtb r3, r3 + 8037d10: 2b00 cmp r3, #0 + 8037d12: d166 bne.n 8037de2 lv_arc_t * arc = (lv_arc_t *)obj; - 8037da8: 68fb ldr r3, [r7, #12] - 8037daa: 627b str r3, [r7, #36] ; 0x24 + 8037d14: 68fb ldr r3, [r7, #12] + 8037d16: 627b str r3, [r7, #36] ; 0x24 if(start_angle == end_angle) return; - 8037dac: 897a ldrh r2, [r7, #10] - 8037dae: 893b ldrh r3, [r7, #8] - 8037db0: 429a cmp r2, r3 - 8037db2: d062 beq.n 8037e7a + 8037d18: 897a ldrh r2, [r7, #10] + 8037d1a: 893b ldrh r3, [r7, #8] + 8037d1c: 429a cmp r2, r3 + 8037d1e: d062 beq.n 8037de6 if(start_angle > 360) start_angle -= 360; - 8037db4: 897b ldrh r3, [r7, #10] - 8037db6: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 8037dba: d903 bls.n 8037dc4 - 8037dbc: 897b ldrh r3, [r7, #10] - 8037dbe: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 - 8037dc2: 817b strh r3, [r7, #10] + 8037d20: 897b ldrh r3, [r7, #10] + 8037d22: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 8037d26: d903 bls.n 8037d30 + 8037d28: 897b ldrh r3, [r7, #10] + 8037d2a: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 + 8037d2e: 817b strh r3, [r7, #10] if(end_angle > 360) end_angle -= 360; - 8037dc4: 893b ldrh r3, [r7, #8] - 8037dc6: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 8037dca: d903 bls.n 8037dd4 - 8037dcc: 893b ldrh r3, [r7, #8] - 8037dce: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 - 8037dd2: 813b strh r3, [r7, #8] + 8037d30: 893b ldrh r3, [r7, #8] + 8037d32: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 8037d36: d903 bls.n 8037d40 + 8037d38: 893b ldrh r3, [r7, #8] + 8037d3a: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 + 8037d3e: 813b strh r3, [r7, #8] start_angle += arc->rotation; - 8037dd4: 6a7b ldr r3, [r7, #36] ; 0x24 - 8037dd6: 8c9a ldrh r2, [r3, #36] ; 0x24 - 8037dd8: 897b ldrh r3, [r7, #10] - 8037dda: 4413 add r3, r2 - 8037ddc: 817b strh r3, [r7, #10] + 8037d40: 6a7b ldr r3, [r7, #36] ; 0x24 + 8037d42: 8c9a ldrh r2, [r3, #36] ; 0x24 + 8037d44: 897b ldrh r3, [r7, #10] + 8037d46: 4413 add r3, r2 + 8037d48: 817b strh r3, [r7, #10] end_angle += arc->rotation; - 8037dde: 6a7b ldr r3, [r7, #36] ; 0x24 - 8037de0: 8c9a ldrh r2, [r3, #36] ; 0x24 - 8037de2: 893b ldrh r3, [r7, #8] - 8037de4: 4413 add r3, r2 - 8037de6: 813b strh r3, [r7, #8] + 8037d4a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8037d4c: 8c9a ldrh r2, [r3, #36] ; 0x24 + 8037d4e: 893b ldrh r3, [r7, #8] + 8037d50: 4413 add r3, r2 + 8037d52: 813b strh r3, [r7, #8] if(start_angle > 360) start_angle -= 360; - 8037de8: 897b ldrh r3, [r7, #10] - 8037dea: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 8037dee: d903 bls.n 8037df8 - 8037df0: 897b ldrh r3, [r7, #10] - 8037df2: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 - 8037df6: 817b strh r3, [r7, #10] + 8037d54: 897b ldrh r3, [r7, #10] + 8037d56: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 8037d5a: d903 bls.n 8037d64 + 8037d5c: 897b ldrh r3, [r7, #10] + 8037d5e: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 + 8037d62: 817b strh r3, [r7, #10] if(end_angle > 360) end_angle -= 360; - 8037df8: 893b ldrh r3, [r7, #8] - 8037dfa: f5b3 7fb4 cmp.w r3, #360 ; 0x168 - 8037dfe: d903 bls.n 8037e08 - 8037e00: 893b ldrh r3, [r7, #8] - 8037e02: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 - 8037e06: 813b strh r3, [r7, #8] + 8037d64: 893b ldrh r3, [r7, #8] + 8037d66: f5b3 7fb4 cmp.w r3, #360 ; 0x168 + 8037d6a: d903 bls.n 8037d74 + 8037d6c: 893b ldrh r3, [r7, #8] + 8037d6e: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 + 8037d72: 813b strh r3, [r7, #8] lv_coord_t r; lv_point_t c; get_center(obj, &c, &r); - 8037e08: f107 021e add.w r2, r7, #30 - 8037e0c: f107 0318 add.w r3, r7, #24 - 8037e10: 4619 mov r1, r3 - 8037e12: 68f8 ldr r0, [r7, #12] - 8037e14: f000 f854 bl 8037ec0 + 8037d74: f107 021e add.w r2, r7, #30 + 8037d78: f107 0318 add.w r3, r7, #24 + 8037d7c: 4619 mov r1, r3 + 8037d7e: 68f8 ldr r0, [r7, #12] + 8037d80: f000 f854 bl 8037e2c lv_coord_t w = lv_obj_get_style_arc_width(obj, part); - 8037e18: 6879 ldr r1, [r7, #4] - 8037e1a: 68f8 ldr r0, [r7, #12] - 8037e1c: f7ff f824 bl 8036e68 - 8037e20: 4603 mov r3, r0 - 8037e22: 847b strh r3, [r7, #34] ; 0x22 + 8037d84: 6879 ldr r1, [r7, #4] + 8037d86: 68f8 ldr r0, [r7, #12] + 8037d88: f7ff f824 bl 8036dd4 + 8037d8c: 4603 mov r3, r0 + 8037d8e: 847b strh r3, [r7, #34] ; 0x22 lv_coord_t rounded = lv_obj_get_style_arc_rounded(obj, part); - 8037e24: 6879 ldr r1, [r7, #4] - 8037e26: 68f8 ldr r0, [r7, #12] - 8037e28: f7ff f831 bl 8036e8e - 8037e2c: 4603 mov r3, r0 - 8037e2e: 843b strh r3, [r7, #32] + 8037d90: 6879 ldr r1, [r7, #4] + 8037d92: 68f8 ldr r0, [r7, #12] + 8037d94: f7ff f831 bl 8036dfa + 8037d98: 4603 mov r3, r0 + 8037d9a: 843b strh r3, [r7, #32] lv_area_t inv_area; lv_draw_arc_get_area(c.x, c.y, r, start_angle, end_angle, w, rounded, &inv_area); - 8037e30: f9b7 0018 ldrsh.w r0, [r7, #24] - 8037e34: f9b7 101a ldrsh.w r1, [r7, #26] - 8037e38: f9b7 301e ldrsh.w r3, [r7, #30] - 8037e3c: b29c uxth r4, r3 - 8037e3e: f9b7 3020 ldrsh.w r3, [r7, #32] - 8037e42: 2b00 cmp r3, #0 - 8037e44: bf14 ite ne - 8037e46: 2301 movne r3, #1 - 8037e48: 2300 moveq r3, #0 - 8037e4a: b2db uxtb r3, r3 - 8037e4c: 897d ldrh r5, [r7, #10] - 8037e4e: f107 0210 add.w r2, r7, #16 - 8037e52: 9203 str r2, [sp, #12] - 8037e54: 9302 str r3, [sp, #8] - 8037e56: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 8037e5a: 9301 str r3, [sp, #4] - 8037e5c: 893b ldrh r3, [r7, #8] - 8037e5e: 9300 str r3, [sp, #0] - 8037e60: 462b mov r3, r5 - 8037e62: 4622 mov r2, r4 - 8037e64: f7d9 f9aa bl 80111bc + 8037d9c: f9b7 0018 ldrsh.w r0, [r7, #24] + 8037da0: f9b7 101a ldrsh.w r1, [r7, #26] + 8037da4: f9b7 301e ldrsh.w r3, [r7, #30] + 8037da8: b29c uxth r4, r3 + 8037daa: f9b7 3020 ldrsh.w r3, [r7, #32] + 8037dae: 2b00 cmp r3, #0 + 8037db0: bf14 ite ne + 8037db2: 2301 movne r3, #1 + 8037db4: 2300 moveq r3, #0 + 8037db6: b2db uxtb r3, r3 + 8037db8: 897d ldrh r5, [r7, #10] + 8037dba: f107 0210 add.w r2, r7, #16 + 8037dbe: 9203 str r2, [sp, #12] + 8037dc0: 9302 str r3, [sp, #8] + 8037dc2: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 8037dc6: 9301 str r3, [sp, #4] + 8037dc8: 893b ldrh r3, [r7, #8] + 8037dca: 9300 str r3, [sp, #0] + 8037dcc: 462b mov r3, r5 + 8037dce: 4622 mov r2, r4 + 8037dd0: f7d9 f9aa bl 8011128 lv_obj_invalidate_area(obj, &inv_area); - 8037e68: f107 0310 add.w r3, r7, #16 - 8037e6c: 4619 mov r1, r3 - 8037e6e: 68f8 ldr r0, [r7, #12] - 8037e70: f7d2 fdfb bl 800aa6a - 8037e74: e002 b.n 8037e7c + 8037dd4: f107 0310 add.w r3, r7, #16 + 8037dd8: 4619 mov r1, r3 + 8037dda: 68f8 ldr r0, [r7, #12] + 8037ddc: f7d2 fe0f bl 800a9fe + 8037de0: e002 b.n 8037de8 if(lv_obj_is_visible(obj) == false) return; - 8037e76: bf00 nop - 8037e78: e000 b.n 8037e7c + 8037de2: bf00 nop + 8037de4: e000 b.n 8037de8 if(start_angle == end_angle) return; - 8037e7a: bf00 nop + 8037de6: bf00 nop } - 8037e7c: 3728 adds r7, #40 ; 0x28 - 8037e7e: 46bd mov sp, r7 - 8037e80: bdb0 pop {r4, r5, r7, pc} + 8037de8: 3728 adds r7, #40 ; 0x28 + 8037dea: 46bd mov sp, r7 + 8037dec: bdb0 pop {r4, r5, r7, pc} -08037e82 : +08037dee : static void inv_knob_area(lv_obj_t * obj) { - 8037e82: b580 push {r7, lr} - 8037e84: b086 sub sp, #24 - 8037e86: af00 add r7, sp, #0 - 8037e88: 6078 str r0, [r7, #4] + 8037dee: b580 push {r7, lr} + 8037df0: b086 sub sp, #24 + 8037df2: af00 add r7, sp, #0 + 8037df4: 6078 str r0, [r7, #4] lv_point_t c; lv_coord_t r; get_center(obj, &c, &r); - 8037e8a: f107 0212 add.w r2, r7, #18 - 8037e8e: f107 0314 add.w r3, r7, #20 - 8037e92: 4619 mov r1, r3 - 8037e94: 6878 ldr r0, [r7, #4] - 8037e96: f000 f813 bl 8037ec0 + 8037df6: f107 0212 add.w r2, r7, #18 + 8037dfa: f107 0314 add.w r3, r7, #20 + 8037dfe: 4619 mov r1, r3 + 8037e00: 6878 ldr r0, [r7, #4] + 8037e02: f000 f813 bl 8037e2c lv_area_t a; get_knob_area(obj, &c, r, &a); - 8037e9a: f9b7 2012 ldrsh.w r2, [r7, #18] - 8037e9e: f107 0308 add.w r3, r7, #8 - 8037ea2: f107 0114 add.w r1, r7, #20 - 8037ea6: 6878 ldr r0, [r7, #4] - 8037ea8: f000 f884 bl 8037fb4 + 8037e06: f9b7 2012 ldrsh.w r2, [r7, #18] + 8037e0a: f107 0308 add.w r3, r7, #8 + 8037e0e: f107 0114 add.w r1, r7, #20 + 8037e12: 6878 ldr r0, [r7, #4] + 8037e14: f000 f884 bl 8037f20 lv_obj_invalidate_area(obj, &a); - 8037eac: f107 0308 add.w r3, r7, #8 - 8037eb0: 4619 mov r1, r3 - 8037eb2: 6878 ldr r0, [r7, #4] - 8037eb4: f7d2 fdd9 bl 800aa6a + 8037e18: f107 0308 add.w r3, r7, #8 + 8037e1c: 4619 mov r1, r3 + 8037e1e: 6878 ldr r0, [r7, #4] + 8037e20: f7d2 fded bl 800a9fe } - 8037eb8: bf00 nop - 8037eba: 3718 adds r7, #24 - 8037ebc: 46bd mov sp, r7 - 8037ebe: bd80 pop {r7, pc} + 8037e24: bf00 nop + 8037e26: 3718 adds r7, #24 + 8037e28: 46bd mov sp, r7 + 8037e2a: bd80 pop {r7, pc} -08037ec0 : +08037e2c : static void get_center(lv_obj_t * obj, lv_point_t * center, lv_coord_t * arc_r) { - 8037ec0: b590 push {r4, r7, lr} - 8037ec2: b089 sub sp, #36 ; 0x24 - 8037ec4: af00 add r7, sp, #0 - 8037ec6: 60f8 str r0, [r7, #12] - 8037ec8: 60b9 str r1, [r7, #8] - 8037eca: 607a str r2, [r7, #4] + 8037e2c: b590 push {r4, r7, lr} + 8037e2e: b089 sub sp, #36 ; 0x24 + 8037e30: af00 add r7, sp, #0 + 8037e32: 60f8 str r0, [r7, #12] + 8037e34: 60b9 str r1, [r7, #8] + 8037e36: 607a str r2, [r7, #4] lv_coord_t left_bg = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 8037ecc: 2100 movs r1, #0 - 8037ece: 68f8 ldr r0, [r7, #12] - 8037ed0: f7fe ffa4 bl 8036e1c - 8037ed4: 4603 mov r3, r0 - 8037ed6: 83fb strh r3, [r7, #30] + 8037e38: 2100 movs r1, #0 + 8037e3a: 68f8 ldr r0, [r7, #12] + 8037e3c: f7fe ffa4 bl 8036d88 + 8037e40: 4603 mov r3, r0 + 8037e42: 83fb strh r3, [r7, #30] lv_coord_t right_bg = lv_obj_get_style_pad_right(obj, LV_PART_MAIN); - 8037ed8: 2100 movs r1, #0 - 8037eda: 68f8 ldr r0, [r7, #12] - 8037edc: f7fe ffb1 bl 8036e42 - 8037ee0: 4603 mov r3, r0 - 8037ee2: 83bb strh r3, [r7, #28] + 8037e44: 2100 movs r1, #0 + 8037e46: 68f8 ldr r0, [r7, #12] + 8037e48: f7fe ffb1 bl 8036dae + 8037e4c: 4603 mov r3, r0 + 8037e4e: 83bb strh r3, [r7, #28] lv_coord_t top_bg = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 8037ee4: 2100 movs r1, #0 - 8037ee6: 68f8 ldr r0, [r7, #12] - 8037ee8: f7fe ff72 bl 8036dd0 - 8037eec: 4603 mov r3, r0 - 8037eee: 837b strh r3, [r7, #26] + 8037e50: 2100 movs r1, #0 + 8037e52: 68f8 ldr r0, [r7, #12] + 8037e54: f7fe ff72 bl 8036d3c + 8037e58: 4603 mov r3, r0 + 8037e5a: 837b strh r3, [r7, #26] lv_coord_t bottom_bg = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN); - 8037ef0: 2100 movs r1, #0 - 8037ef2: 68f8 ldr r0, [r7, #12] - 8037ef4: f7fe ff7f bl 8036df6 - 8037ef8: 4603 mov r3, r0 - 8037efa: 833b strh r3, [r7, #24] + 8037e5c: 2100 movs r1, #0 + 8037e5e: 68f8 ldr r0, [r7, #12] + 8037e60: f7fe ff7f bl 8036d62 + 8037e64: 4603 mov r3, r0 + 8037e66: 833b strh r3, [r7, #24] lv_coord_t r = (LV_MIN(lv_obj_get_width(obj) - left_bg - right_bg, - 8037efc: 68f8 ldr r0, [r7, #12] - 8037efe: f7d2 f923 bl 800a148 - 8037f02: 4603 mov r3, r0 - 8037f04: 461a mov r2, r3 - 8037f06: f9b7 301e ldrsh.w r3, [r7, #30] - 8037f0a: 1ad2 subs r2, r2, r3 - 8037f0c: f9b7 301c ldrsh.w r3, [r7, #28] - 8037f10: 1ad4 subs r4, r2, r3 - 8037f12: 68f8 ldr r0, [r7, #12] - 8037f14: f7d2 f926 bl 800a164 - 8037f18: 4603 mov r3, r0 - 8037f1a: 461a mov r2, r3 - 8037f1c: f9b7 301a ldrsh.w r3, [r7, #26] - 8037f20: 1ad2 subs r2, r2, r3 - 8037f22: f9b7 3018 ldrsh.w r3, [r7, #24] - 8037f26: 1ad3 subs r3, r2, r3 - 8037f28: 429c cmp r4, r3 - 8037f2a: da0f bge.n 8037f4c - 8037f2c: 68f8 ldr r0, [r7, #12] - 8037f2e: f7d2 f90b bl 800a148 - 8037f32: 4603 mov r3, r0 - 8037f34: 461a mov r2, r3 - 8037f36: f9b7 301e ldrsh.w r3, [r7, #30] - 8037f3a: 1ad2 subs r2, r2, r3 - 8037f3c: f9b7 301c ldrsh.w r3, [r7, #28] - 8037f40: 1ad3 subs r3, r2, r3 + 8037e68: 68f8 ldr r0, [r7, #12] + 8037e6a: f7d2 f937 bl 800a0dc + 8037e6e: 4603 mov r3, r0 + 8037e70: 461a mov r2, r3 + 8037e72: f9b7 301e ldrsh.w r3, [r7, #30] + 8037e76: 1ad2 subs r2, r2, r3 + 8037e78: f9b7 301c ldrsh.w r3, [r7, #28] + 8037e7c: 1ad4 subs r4, r2, r3 + 8037e7e: 68f8 ldr r0, [r7, #12] + 8037e80: f7d2 f93a bl 800a0f8 + 8037e84: 4603 mov r3, r0 + 8037e86: 461a mov r2, r3 + 8037e88: f9b7 301a ldrsh.w r3, [r7, #26] + 8037e8c: 1ad2 subs r2, r2, r3 + 8037e8e: f9b7 3018 ldrsh.w r3, [r7, #24] + 8037e92: 1ad3 subs r3, r2, r3 + 8037e94: 429c cmp r4, r3 + 8037e96: da0f bge.n 8037eb8 + 8037e98: 68f8 ldr r0, [r7, #12] + 8037e9a: f7d2 f91f bl 800a0dc + 8037e9e: 4603 mov r3, r0 + 8037ea0: 461a mov r2, r3 + 8037ea2: f9b7 301e ldrsh.w r3, [r7, #30] + 8037ea6: 1ad2 subs r2, r2, r3 + 8037ea8: f9b7 301c ldrsh.w r3, [r7, #28] + 8037eac: 1ad3 subs r3, r2, r3 lv_obj_get_height(obj) - top_bg - bottom_bg)) / 2; - 8037f42: 0fda lsrs r2, r3, #31 - 8037f44: 4413 add r3, r2 - 8037f46: 105b asrs r3, r3, #1 + 8037eae: 0fda lsrs r2, r3, #31 + 8037eb0: 4413 add r3, r2 + 8037eb2: 105b asrs r3, r3, #1 lv_coord_t r = (LV_MIN(lv_obj_get_width(obj) - left_bg - right_bg, - 8037f48: b21b sxth r3, r3 - 8037f4a: e00e b.n 8037f6a - 8037f4c: 68f8 ldr r0, [r7, #12] - 8037f4e: f7d2 f909 bl 800a164 - 8037f52: 4603 mov r3, r0 - 8037f54: 461a mov r2, r3 - 8037f56: f9b7 301a ldrsh.w r3, [r7, #26] - 8037f5a: 1ad2 subs r2, r2, r3 - 8037f5c: f9b7 3018 ldrsh.w r3, [r7, #24] - 8037f60: 1ad3 subs r3, r2, r3 + 8037eb4: b21b sxth r3, r3 + 8037eb6: e00e b.n 8037ed6 + 8037eb8: 68f8 ldr r0, [r7, #12] + 8037eba: f7d2 f91d bl 800a0f8 + 8037ebe: 4603 mov r3, r0 + 8037ec0: 461a mov r2, r3 + 8037ec2: f9b7 301a ldrsh.w r3, [r7, #26] + 8037ec6: 1ad2 subs r2, r2, r3 + 8037ec8: f9b7 3018 ldrsh.w r3, [r7, #24] + 8037ecc: 1ad3 subs r3, r2, r3 lv_obj_get_height(obj) - top_bg - bottom_bg)) / 2; - 8037f62: 0fda lsrs r2, r3, #31 - 8037f64: 4413 add r3, r2 - 8037f66: 105b asrs r3, r3, #1 + 8037ece: 0fda lsrs r2, r3, #31 + 8037ed0: 4413 add r3, r2 + 8037ed2: 105b asrs r3, r3, #1 lv_coord_t r = (LV_MIN(lv_obj_get_width(obj) - left_bg - right_bg, - 8037f68: b21b sxth r3, r3 - 8037f6a: 82fb strh r3, [r7, #22] + 8037ed4: b21b sxth r3, r3 + 8037ed6: 82fb strh r3, [r7, #22] center->x = obj->coords.x1 + r + left_bg; - 8037f6c: 68fb ldr r3, [r7, #12] - 8037f6e: f9b3 3014 ldrsh.w r3, [r3, #20] - 8037f72: b29a uxth r2, r3 - 8037f74: 8afb ldrh r3, [r7, #22] - 8037f76: 4413 add r3, r2 - 8037f78: b29a uxth r2, r3 - 8037f7a: 8bfb ldrh r3, [r7, #30] - 8037f7c: 4413 add r3, r2 - 8037f7e: b29b uxth r3, r3 - 8037f80: b21a sxth r2, r3 - 8037f82: 68bb ldr r3, [r7, #8] - 8037f84: 801a strh r2, [r3, #0] + 8037ed8: 68fb ldr r3, [r7, #12] + 8037eda: f9b3 3014 ldrsh.w r3, [r3, #20] + 8037ede: b29a uxth r2, r3 + 8037ee0: 8afb ldrh r3, [r7, #22] + 8037ee2: 4413 add r3, r2 + 8037ee4: b29a uxth r2, r3 + 8037ee6: 8bfb ldrh r3, [r7, #30] + 8037ee8: 4413 add r3, r2 + 8037eea: b29b uxth r3, r3 + 8037eec: b21a sxth r2, r3 + 8037eee: 68bb ldr r3, [r7, #8] + 8037ef0: 801a strh r2, [r3, #0] center->y = obj->coords.y1 + r + top_bg; - 8037f86: 68fb ldr r3, [r7, #12] - 8037f88: f9b3 3016 ldrsh.w r3, [r3, #22] - 8037f8c: b29a uxth r2, r3 - 8037f8e: 8afb ldrh r3, [r7, #22] - 8037f90: 4413 add r3, r2 - 8037f92: b29a uxth r2, r3 - 8037f94: 8b7b ldrh r3, [r7, #26] - 8037f96: 4413 add r3, r2 - 8037f98: b29b uxth r3, r3 - 8037f9a: b21a sxth r2, r3 - 8037f9c: 68bb ldr r3, [r7, #8] - 8037f9e: 805a strh r2, [r3, #2] + 8037ef2: 68fb ldr r3, [r7, #12] + 8037ef4: f9b3 3016 ldrsh.w r3, [r3, #22] + 8037ef8: b29a uxth r2, r3 + 8037efa: 8afb ldrh r3, [r7, #22] + 8037efc: 4413 add r3, r2 + 8037efe: b29a uxth r2, r3 + 8037f00: 8b7b ldrh r3, [r7, #26] + 8037f02: 4413 add r3, r2 + 8037f04: b29b uxth r3, r3 + 8037f06: b21a sxth r2, r3 + 8037f08: 68bb ldr r3, [r7, #8] + 8037f0a: 805a strh r2, [r3, #2] if(arc_r) *arc_r = r; - 8037fa0: 687b ldr r3, [r7, #4] - 8037fa2: 2b00 cmp r3, #0 - 8037fa4: d002 beq.n 8037fac - 8037fa6: 687b ldr r3, [r7, #4] - 8037fa8: 8afa ldrh r2, [r7, #22] - 8037faa: 801a strh r2, [r3, #0] + 8037f0c: 687b ldr r3, [r7, #4] + 8037f0e: 2b00 cmp r3, #0 + 8037f10: d002 beq.n 8037f18 + 8037f12: 687b ldr r3, [r7, #4] + 8037f14: 8afa ldrh r2, [r7, #22] + 8037f16: 801a strh r2, [r3, #0] } - 8037fac: bf00 nop - 8037fae: 3724 adds r7, #36 ; 0x24 - 8037fb0: 46bd mov sp, r7 - 8037fb2: bd90 pop {r4, r7, pc} + 8037f18: bf00 nop + 8037f1a: 3724 adds r7, #36 ; 0x24 + 8037f1c: 46bd mov sp, r7 + 8037f1e: bd90 pop {r4, r7, pc} -08037fb4 : +08037f20 : static void get_knob_area(lv_obj_t * obj, const lv_point_t * center, lv_coord_t r, lv_area_t * knob_area) { - 8037fb4: b590 push {r4, r7, lr} - 8037fb6: b08d sub sp, #52 ; 0x34 - 8037fb8: af00 add r7, sp, #0 - 8037fba: 60f8 str r0, [r7, #12] - 8037fbc: 60b9 str r1, [r7, #8] - 8037fbe: 603b str r3, [r7, #0] - 8037fc0: 4613 mov r3, r2 - 8037fc2: 80fb strh r3, [r7, #6] + 8037f20: b590 push {r4, r7, lr} + 8037f22: b08d sub sp, #52 ; 0x34 + 8037f24: af00 add r7, sp, #0 + 8037f26: 60f8 str r0, [r7, #12] + 8037f28: 60b9 str r1, [r7, #8] + 8037f2a: 603b str r3, [r7, #0] + 8037f2c: 4613 mov r3, r2 + 8037f2e: 80fb strh r3, [r7, #6] LV_ASSERT_OBJ(obj, MY_CLASS); lv_arc_t * arc = (lv_arc_t *)obj; - 8037fc4: 68fb ldr r3, [r7, #12] - 8037fc6: 62bb str r3, [r7, #40] ; 0x28 + 8037f30: 68fb ldr r3, [r7, #12] + 8037f32: 62bb str r3, [r7, #40] ; 0x28 lv_coord_t indic_width = lv_obj_get_style_arc_width(obj, LV_PART_INDICATOR); - 8037fc8: f44f 3100 mov.w r1, #131072 ; 0x20000 - 8037fcc: 68f8 ldr r0, [r7, #12] - 8037fce: f7fe ff4b bl 8036e68 - 8037fd2: 4603 mov r3, r0 - 8037fd4: 84fb strh r3, [r7, #38] ; 0x26 + 8037f34: f44f 3100 mov.w r1, #131072 ; 0x20000 + 8037f38: 68f8 ldr r0, [r7, #12] + 8037f3a: f7fe ff4b bl 8036dd4 + 8037f3e: 4603 mov r3, r0 + 8037f40: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t indic_width_half = indic_width / 2; - 8037fd6: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 8037fda: 0fda lsrs r2, r3, #31 - 8037fdc: 4413 add r3, r2 - 8037fde: 105b asrs r3, r3, #1 - 8037fe0: 84bb strh r3, [r7, #36] ; 0x24 + 8037f42: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 8037f46: 0fda lsrs r2, r3, #31 + 8037f48: 4413 add r3, r2 + 8037f4a: 105b asrs r3, r3, #1 + 8037f4c: 84bb strh r3, [r7, #36] ; 0x24 r -= indic_width_half; - 8037fe2: 88fa ldrh r2, [r7, #6] - 8037fe4: 8cbb ldrh r3, [r7, #36] ; 0x24 - 8037fe6: 1ad3 subs r3, r2, r3 - 8037fe8: b29b uxth r3, r3 - 8037fea: 80fb strh r3, [r7, #6] + 8037f4e: 88fa ldrh r2, [r7, #6] + 8037f50: 8cbb ldrh r3, [r7, #36] ; 0x24 + 8037f52: 1ad3 subs r3, r2, r3 + 8037f54: b29b uxth r3, r3 + 8037f56: 80fb strh r3, [r7, #6] uint16_t angle = arc->rotation; - 8037fec: 6abb ldr r3, [r7, #40] ; 0x28 - 8037fee: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8037ff0: 85fb strh r3, [r7, #46] ; 0x2e + 8037f58: 6abb ldr r3, [r7, #40] ; 0x28 + 8037f5a: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8037f5c: 85fb strh r3, [r7, #46] ; 0x2e if(arc->type == LV_ARC_MODE_NORMAL) { - 8037ff2: 6abb ldr r3, [r7, #40] ; 0x28 - 8037ff4: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 - 8037ff8: f003 0306 and.w r3, r3, #6 - 8037ffc: b2db uxtb r3, r3 - 8037ffe: 2b00 cmp r3, #0 - 8038000: d105 bne.n 803800e + 8037f5e: 6abb ldr r3, [r7, #40] ; 0x28 + 8037f60: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 + 8037f64: f003 0306 and.w r3, r3, #6 + 8037f68: b2db uxtb r3, r3 + 8037f6a: 2b00 cmp r3, #0 + 8037f6c: d105 bne.n 8037f7a angle += arc->indic_angle_end; - 8038002: 6abb ldr r3, [r7, #40] ; 0x28 - 8038004: 8d1a ldrh r2, [r3, #40] ; 0x28 - 8038006: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8038008: 4413 add r3, r2 - 803800a: 85fb strh r3, [r7, #46] ; 0x2e - 803800c: e033 b.n 8038076 + 8037f6e: 6abb ldr r3, [r7, #40] ; 0x28 + 8037f70: 8d1a ldrh r2, [r3, #40] ; 0x28 + 8037f72: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8037f74: 4413 add r3, r2 + 8037f76: 85fb strh r3, [r7, #46] ; 0x2e + 8037f78: e033 b.n 8037fe2 } else if(arc->type == LV_ARC_MODE_REVERSE) { - 803800e: 6abb ldr r3, [r7, #40] ; 0x28 - 8038010: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 - 8038014: f003 0306 and.w r3, r3, #6 - 8038018: b2db uxtb r3, r3 - 803801a: 2b04 cmp r3, #4 - 803801c: d105 bne.n 803802a + 8037f7a: 6abb ldr r3, [r7, #40] ; 0x28 + 8037f7c: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 + 8037f80: f003 0306 and.w r3, r3, #6 + 8037f84: b2db uxtb r3, r3 + 8037f86: 2b04 cmp r3, #4 + 8037f88: d105 bne.n 8037f96 angle += arc->indic_angle_start; - 803801e: 6abb ldr r3, [r7, #40] ; 0x28 - 8038020: 8cda ldrh r2, [r3, #38] ; 0x26 - 8038022: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8038024: 4413 add r3, r2 - 8038026: 85fb strh r3, [r7, #46] ; 0x2e - 8038028: e025 b.n 8038076 + 8037f8a: 6abb ldr r3, [r7, #40] ; 0x28 + 8037f8c: 8cda ldrh r2, [r3, #38] ; 0x26 + 8037f8e: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8037f90: 4413 add r3, r2 + 8037f92: 85fb strh r3, [r7, #46] ; 0x2e + 8037f94: e025 b.n 8037fe2 } else if(arc->type == LV_ARC_MODE_SYMMETRICAL) { - 803802a: 6abb ldr r3, [r7, #40] ; 0x28 - 803802c: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 - 8038030: f003 0306 and.w r3, r3, #6 - 8038034: b2db uxtb r3, r3 - 8038036: 2b02 cmp r3, #2 - 8038038: d11d bne.n 8038076 + 8037f96: 6abb ldr r3, [r7, #40] ; 0x28 + 8037f98: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 + 8037f9c: f003 0306 and.w r3, r3, #6 + 8037fa0: b2db uxtb r3, r3 + 8037fa2: 2b02 cmp r3, #2 + 8037fa4: d11d bne.n 8037fe2 int32_t range_midpoint = (int32_t)(arc->min_value + arc->max_value) / 2; - 803803a: 6abb ldr r3, [r7, #40] ; 0x28 - 803803c: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 - 8038040: 461a mov r2, r3 - 8038042: 6abb ldr r3, [r7, #40] ; 0x28 - 8038044: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 - 8038048: 4413 add r3, r2 - 803804a: 0fda lsrs r2, r3, #31 - 803804c: 4413 add r3, r2 - 803804e: 105b asrs r3, r3, #1 - 8038050: 623b str r3, [r7, #32] + 8037fa6: 6abb ldr r3, [r7, #40] ; 0x28 + 8037fa8: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 + 8037fac: 461a mov r2, r3 + 8037fae: 6abb ldr r3, [r7, #40] ; 0x28 + 8037fb0: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 + 8037fb4: 4413 add r3, r2 + 8037fb6: 0fda lsrs r2, r3, #31 + 8037fb8: 4413 add r3, r2 + 8037fba: 105b asrs r3, r3, #1 + 8037fbc: 623b str r3, [r7, #32] if(arc->value < range_midpoint) angle += arc->indic_angle_start; - 8038052: 6abb ldr r3, [r7, #40] ; 0x28 - 8038054: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 8038058: 461a mov r2, r3 - 803805a: 6a3b ldr r3, [r7, #32] - 803805c: 4293 cmp r3, r2 - 803805e: dd05 ble.n 803806c - 8038060: 6abb ldr r3, [r7, #40] ; 0x28 - 8038062: 8cda ldrh r2, [r3, #38] ; 0x26 - 8038064: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8038066: 4413 add r3, r2 - 8038068: 85fb strh r3, [r7, #46] ; 0x2e - 803806a: e004 b.n 8038076 + 8037fbe: 6abb ldr r3, [r7, #40] ; 0x28 + 8037fc0: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 8037fc4: 461a mov r2, r3 + 8037fc6: 6a3b ldr r3, [r7, #32] + 8037fc8: 4293 cmp r3, r2 + 8037fca: dd05 ble.n 8037fd8 + 8037fcc: 6abb ldr r3, [r7, #40] ; 0x28 + 8037fce: 8cda ldrh r2, [r3, #38] ; 0x26 + 8037fd0: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8037fd2: 4413 add r3, r2 + 8037fd4: 85fb strh r3, [r7, #46] ; 0x2e + 8037fd6: e004 b.n 8037fe2 else angle += arc->indic_angle_end; - 803806c: 6abb ldr r3, [r7, #40] ; 0x28 - 803806e: 8d1a ldrh r2, [r3, #40] ; 0x28 - 8038070: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8038072: 4413 add r3, r2 - 8038074: 85fb strh r3, [r7, #46] ; 0x2e + 8037fd8: 6abb ldr r3, [r7, #40] ; 0x28 + 8037fda: 8d1a ldrh r2, [r3, #40] ; 0x28 + 8037fdc: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8037fde: 4413 add r3, r2 + 8037fe0: 85fb strh r3, [r7, #46] ; 0x2e } lv_coord_t knob_x = (r * lv_trigo_sin(angle + 90)) >> LV_TRIGO_SHIFT; - 8038076: f9b7 4006 ldrsh.w r4, [r7, #6] - 803807a: 8dfb ldrh r3, [r7, #46] ; 0x2e - 803807c: 335a adds r3, #90 ; 0x5a - 803807e: b29b uxth r3, r3 - 8038080: b21b sxth r3, r3 - 8038082: 4618 mov r0, r3 - 8038084: f7fa fa22 bl 80324cc - 8038088: 4603 mov r3, r0 - 803808a: fb04 f303 mul.w r3, r4, r3 - 803808e: 13db asrs r3, r3, #15 - 8038090: 83fb strh r3, [r7, #30] + 8037fe2: f9b7 4006 ldrsh.w r4, [r7, #6] + 8037fe6: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8037fe8: 335a adds r3, #90 ; 0x5a + 8037fea: b29b uxth r3, r3 + 8037fec: b21b sxth r3, r3 + 8037fee: 4618 mov r0, r3 + 8037ff0: f7fa fa22 bl 8032438 + 8037ff4: 4603 mov r3, r0 + 8037ff6: fb04 f303 mul.w r3, r4, r3 + 8037ffa: 13db asrs r3, r3, #15 + 8037ffc: 83fb strh r3, [r7, #30] lv_coord_t knob_y = (r * lv_trigo_sin(angle)) >> LV_TRIGO_SHIFT; - 8038092: f9b7 4006 ldrsh.w r4, [r7, #6] - 8038096: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 803809a: 4618 mov r0, r3 - 803809c: f7fa fa16 bl 80324cc - 80380a0: 4603 mov r3, r0 - 80380a2: fb04 f303 mul.w r3, r4, r3 - 80380a6: 13db asrs r3, r3, #15 - 80380a8: 83bb strh r3, [r7, #28] + 8037ffe: f9b7 4006 ldrsh.w r4, [r7, #6] + 8038002: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 8038006: 4618 mov r0, r3 + 8038008: f7fa fa16 bl 8032438 + 803800c: 4603 mov r3, r0 + 803800e: fb04 f303 mul.w r3, r4, r3 + 8038012: 13db asrs r3, r3, #15 + 8038014: 83bb strh r3, [r7, #28] lv_coord_t left_knob = lv_obj_get_style_pad_left(obj, LV_PART_KNOB); - 80380aa: f44f 3140 mov.w r1, #196608 ; 0x30000 - 80380ae: 68f8 ldr r0, [r7, #12] - 80380b0: f7fe feb4 bl 8036e1c - 80380b4: 4603 mov r3, r0 - 80380b6: 837b strh r3, [r7, #26] + 8038016: f44f 3140 mov.w r1, #196608 ; 0x30000 + 803801a: 68f8 ldr r0, [r7, #12] + 803801c: f7fe feb4 bl 8036d88 + 8038020: 4603 mov r3, r0 + 8038022: 837b strh r3, [r7, #26] lv_coord_t right_knob = lv_obj_get_style_pad_right(obj, LV_PART_KNOB); - 80380b8: f44f 3140 mov.w r1, #196608 ; 0x30000 - 80380bc: 68f8 ldr r0, [r7, #12] - 80380be: f7fe fec0 bl 8036e42 - 80380c2: 4603 mov r3, r0 - 80380c4: 833b strh r3, [r7, #24] + 8038024: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8038028: 68f8 ldr r0, [r7, #12] + 803802a: f7fe fec0 bl 8036dae + 803802e: 4603 mov r3, r0 + 8038030: 833b strh r3, [r7, #24] lv_coord_t top_knob = lv_obj_get_style_pad_top(obj, LV_PART_KNOB); - 80380c6: f44f 3140 mov.w r1, #196608 ; 0x30000 - 80380ca: 68f8 ldr r0, [r7, #12] - 80380cc: f7fe fe80 bl 8036dd0 - 80380d0: 4603 mov r3, r0 - 80380d2: 82fb strh r3, [r7, #22] + 8038032: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8038036: 68f8 ldr r0, [r7, #12] + 8038038: f7fe fe80 bl 8036d3c + 803803c: 4603 mov r3, r0 + 803803e: 82fb strh r3, [r7, #22] lv_coord_t bottom_knob = lv_obj_get_style_pad_bottom(obj, LV_PART_KNOB); - 80380d4: f44f 3140 mov.w r1, #196608 ; 0x30000 - 80380d8: 68f8 ldr r0, [r7, #12] - 80380da: f7fe fe8c bl 8036df6 - 80380de: 4603 mov r3, r0 - 80380e0: 82bb strh r3, [r7, #20] + 8038040: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8038044: 68f8 ldr r0, [r7, #12] + 8038046: f7fe fe8c bl 8036d62 + 803804a: 4603 mov r3, r0 + 803804c: 82bb strh r3, [r7, #20] knob_area->x1 = center->x + knob_x - left_knob - indic_width_half; - 80380e2: 68bb ldr r3, [r7, #8] - 80380e4: f9b3 3000 ldrsh.w r3, [r3] - 80380e8: b29a uxth r2, r3 - 80380ea: 8bfb ldrh r3, [r7, #30] - 80380ec: 4413 add r3, r2 - 80380ee: b29a uxth r2, r3 - 80380f0: 8b7b ldrh r3, [r7, #26] - 80380f2: 1ad3 subs r3, r2, r3 - 80380f4: b29a uxth r2, r3 - 80380f6: 8cbb ldrh r3, [r7, #36] ; 0x24 - 80380f8: 1ad3 subs r3, r2, r3 - 80380fa: b29b uxth r3, r3 - 80380fc: b21a sxth r2, r3 - 80380fe: 683b ldr r3, [r7, #0] - 8038100: 801a strh r2, [r3, #0] + 803804e: 68bb ldr r3, [r7, #8] + 8038050: f9b3 3000 ldrsh.w r3, [r3] + 8038054: b29a uxth r2, r3 + 8038056: 8bfb ldrh r3, [r7, #30] + 8038058: 4413 add r3, r2 + 803805a: b29a uxth r2, r3 + 803805c: 8b7b ldrh r3, [r7, #26] + 803805e: 1ad3 subs r3, r2, r3 + 8038060: b29a uxth r2, r3 + 8038062: 8cbb ldrh r3, [r7, #36] ; 0x24 + 8038064: 1ad3 subs r3, r2, r3 + 8038066: b29b uxth r3, r3 + 8038068: b21a sxth r2, r3 + 803806a: 683b ldr r3, [r7, #0] + 803806c: 801a strh r2, [r3, #0] knob_area->x2 = center->x + knob_x + right_knob + indic_width_half; - 8038102: 68bb ldr r3, [r7, #8] - 8038104: f9b3 3000 ldrsh.w r3, [r3] - 8038108: b29a uxth r2, r3 - 803810a: 8bfb ldrh r3, [r7, #30] - 803810c: 4413 add r3, r2 - 803810e: b29a uxth r2, r3 - 8038110: 8b3b ldrh r3, [r7, #24] - 8038112: 4413 add r3, r2 - 8038114: b29a uxth r2, r3 - 8038116: 8cbb ldrh r3, [r7, #36] ; 0x24 - 8038118: 4413 add r3, r2 - 803811a: b29b uxth r3, r3 - 803811c: b21a sxth r2, r3 - 803811e: 683b ldr r3, [r7, #0] - 8038120: 809a strh r2, [r3, #4] + 803806e: 68bb ldr r3, [r7, #8] + 8038070: f9b3 3000 ldrsh.w r3, [r3] + 8038074: b29a uxth r2, r3 + 8038076: 8bfb ldrh r3, [r7, #30] + 8038078: 4413 add r3, r2 + 803807a: b29a uxth r2, r3 + 803807c: 8b3b ldrh r3, [r7, #24] + 803807e: 4413 add r3, r2 + 8038080: b29a uxth r2, r3 + 8038082: 8cbb ldrh r3, [r7, #36] ; 0x24 + 8038084: 4413 add r3, r2 + 8038086: b29b uxth r3, r3 + 8038088: b21a sxth r2, r3 + 803808a: 683b ldr r3, [r7, #0] + 803808c: 809a strh r2, [r3, #4] knob_area->y1 = center->y + knob_y - top_knob - indic_width_half; - 8038122: 68bb ldr r3, [r7, #8] - 8038124: f9b3 3002 ldrsh.w r3, [r3, #2] - 8038128: b29a uxth r2, r3 - 803812a: 8bbb ldrh r3, [r7, #28] - 803812c: 4413 add r3, r2 - 803812e: b29a uxth r2, r3 - 8038130: 8afb ldrh r3, [r7, #22] - 8038132: 1ad3 subs r3, r2, r3 - 8038134: b29a uxth r2, r3 - 8038136: 8cbb ldrh r3, [r7, #36] ; 0x24 - 8038138: 1ad3 subs r3, r2, r3 - 803813a: b29b uxth r3, r3 - 803813c: b21a sxth r2, r3 - 803813e: 683b ldr r3, [r7, #0] - 8038140: 805a strh r2, [r3, #2] + 803808e: 68bb ldr r3, [r7, #8] + 8038090: f9b3 3002 ldrsh.w r3, [r3, #2] + 8038094: b29a uxth r2, r3 + 8038096: 8bbb ldrh r3, [r7, #28] + 8038098: 4413 add r3, r2 + 803809a: b29a uxth r2, r3 + 803809c: 8afb ldrh r3, [r7, #22] + 803809e: 1ad3 subs r3, r2, r3 + 80380a0: b29a uxth r2, r3 + 80380a2: 8cbb ldrh r3, [r7, #36] ; 0x24 + 80380a4: 1ad3 subs r3, r2, r3 + 80380a6: b29b uxth r3, r3 + 80380a8: b21a sxth r2, r3 + 80380aa: 683b ldr r3, [r7, #0] + 80380ac: 805a strh r2, [r3, #2] knob_area->y2 = center->y + knob_y + bottom_knob + indic_width_half; - 8038142: 68bb ldr r3, [r7, #8] - 8038144: f9b3 3002 ldrsh.w r3, [r3, #2] - 8038148: b29a uxth r2, r3 - 803814a: 8bbb ldrh r3, [r7, #28] - 803814c: 4413 add r3, r2 - 803814e: b29a uxth r2, r3 - 8038150: 8abb ldrh r3, [r7, #20] - 8038152: 4413 add r3, r2 - 8038154: b29a uxth r2, r3 - 8038156: 8cbb ldrh r3, [r7, #36] ; 0x24 - 8038158: 4413 add r3, r2 - 803815a: b29b uxth r3, r3 - 803815c: b21a sxth r2, r3 - 803815e: 683b ldr r3, [r7, #0] - 8038160: 80da strh r2, [r3, #6] + 80380ae: 68bb ldr r3, [r7, #8] + 80380b0: f9b3 3002 ldrsh.w r3, [r3, #2] + 80380b4: b29a uxth r2, r3 + 80380b6: 8bbb ldrh r3, [r7, #28] + 80380b8: 4413 add r3, r2 + 80380ba: b29a uxth r2, r3 + 80380bc: 8abb ldrh r3, [r7, #20] + 80380be: 4413 add r3, r2 + 80380c0: b29a uxth r2, r3 + 80380c2: 8cbb ldrh r3, [r7, #36] ; 0x24 + 80380c4: 4413 add r3, r2 + 80380c6: b29b uxth r3, r3 + 80380c8: b21a sxth r2, r3 + 80380ca: 683b ldr r3, [r7, #0] + 80380cc: 80da strh r2, [r3, #6] } - 8038162: bf00 nop - 8038164: 3734 adds r7, #52 ; 0x34 - 8038166: 46bd mov sp, r7 - 8038168: bd90 pop {r4, r7, pc} + 80380ce: bf00 nop + 80380d0: 3734 adds r7, #52 ; 0x34 + 80380d2: 46bd mov sp, r7 + 80380d4: bd90 pop {r4, r7, pc} -0803816a : +080380d6 : /** * Used internally to update arc angles after a value change * @param arc pointer to an arc object */ static void value_update(lv_obj_t * obj) { - 803816a: b590 push {r4, r7, lr} - 803816c: b089 sub sp, #36 ; 0x24 - 803816e: af02 add r7, sp, #8 - 8038170: 6078 str r0, [r7, #4] + 80380d6: b590 push {r4, r7, lr} + 80380d8: b089 sub sp, #36 ; 0x24 + 80380da: af02 add r7, sp, #8 + 80380dc: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_arc_t * arc = (lv_arc_t *)obj; - 8038172: 687b ldr r3, [r7, #4] - 8038174: 613b str r3, [r7, #16] + 80380de: 687b ldr r3, [r7, #4] + 80380e0: 613b str r3, [r7, #16] /*If the value is still not set to any value do not update*/ if(arc->value == VALUE_UNSET) return; - 8038176: 693b ldr r3, [r7, #16] - 8038178: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 803817c: f513 4f00 cmn.w r3, #32768 ; 0x8000 - 8038180: f000 80be beq.w 8038300 + 80380e2: 693b ldr r3, [r7, #16] + 80380e4: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 80380e8: f513 4f00 cmn.w r3, #32768 ; 0x8000 + 80380ec: f000 80be beq.w 803826c int16_t bg_midpoint, range_midpoint, bg_end = arc->bg_angle_end; - 8038184: 693b ldr r3, [r7, #16] - 8038186: 8d9b ldrh r3, [r3, #44] ; 0x2c - 8038188: 82fb strh r3, [r7, #22] + 80380f0: 693b ldr r3, [r7, #16] + 80380f2: 8d9b ldrh r3, [r3, #44] ; 0x2c + 80380f4: 82fb strh r3, [r7, #22] if(arc->bg_angle_end < arc->bg_angle_start) bg_end = arc->bg_angle_end + 360; - 803818a: 693b ldr r3, [r7, #16] - 803818c: 8d9a ldrh r2, [r3, #44] ; 0x2c - 803818e: 693b ldr r3, [r7, #16] - 8038190: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8038192: 429a cmp r2, r3 - 8038194: d205 bcs.n 80381a2 - 8038196: 693b ldr r3, [r7, #16] - 8038198: 8d9b ldrh r3, [r3, #44] ; 0x2c - 803819a: f503 73b4 add.w r3, r3, #360 ; 0x168 - 803819e: b29b uxth r3, r3 - 80381a0: 82fb strh r3, [r7, #22] + 80380f6: 693b ldr r3, [r7, #16] + 80380f8: 8d9a ldrh r2, [r3, #44] ; 0x2c + 80380fa: 693b ldr r3, [r7, #16] + 80380fc: 8d5b ldrh r3, [r3, #42] ; 0x2a + 80380fe: 429a cmp r2, r3 + 8038100: d205 bcs.n 803810e + 8038102: 693b ldr r3, [r7, #16] + 8038104: 8d9b ldrh r3, [r3, #44] ; 0x2c + 8038106: f503 73b4 add.w r3, r3, #360 ; 0x168 + 803810a: b29b uxth r3, r3 + 803810c: 82fb strh r3, [r7, #22] int16_t angle; switch(arc->type) { - 80381a2: 693b ldr r3, [r7, #16] - 80381a4: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 - 80381a8: f3c3 0341 ubfx r3, r3, #1, #2 - 80381ac: b2db uxtb r3, r3 - 80381ae: 2b02 cmp r3, #2 - 80381b0: d064 beq.n 803827c - 80381b2: 2b02 cmp r3, #2 - 80381b4: f300 80a6 bgt.w 8038304 - 80381b8: 2b00 cmp r3, #0 - 80381ba: d07e beq.n 80382ba - 80381bc: 2b01 cmp r3, #1 - 80381be: f040 80a1 bne.w 8038304 + 803810e: 693b ldr r3, [r7, #16] + 8038110: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 + 8038114: f3c3 0341 ubfx r3, r3, #1, #2 + 8038118: b2db uxtb r3, r3 + 803811a: 2b02 cmp r3, #2 + 803811c: d064 beq.n 80381e8 + 803811e: 2b02 cmp r3, #2 + 8038120: f300 80a6 bgt.w 8038270 + 8038124: 2b00 cmp r3, #0 + 8038126: d07e beq.n 8038226 + 8038128: 2b01 cmp r3, #1 + 803812a: f040 80a1 bne.w 8038270 case LV_ARC_MODE_SYMMETRICAL: bg_midpoint = (arc->bg_angle_start + bg_end) / 2; - 80381c2: 693b ldr r3, [r7, #16] - 80381c4: 8d5b ldrh r3, [r3, #42] ; 0x2a - 80381c6: 461a mov r2, r3 - 80381c8: f9b7 3016 ldrsh.w r3, [r7, #22] - 80381cc: 4413 add r3, r2 - 80381ce: 0fda lsrs r2, r3, #31 - 80381d0: 4413 add r3, r2 - 80381d2: 105b asrs r3, r3, #1 - 80381d4: 81fb strh r3, [r7, #14] + 803812e: 693b ldr r3, [r7, #16] + 8038130: 8d5b ldrh r3, [r3, #42] ; 0x2a + 8038132: 461a mov r2, r3 + 8038134: f9b7 3016 ldrsh.w r3, [r7, #22] + 8038138: 4413 add r3, r2 + 803813a: 0fda lsrs r2, r3, #31 + 803813c: 4413 add r3, r2 + 803813e: 105b asrs r3, r3, #1 + 8038140: 81fb strh r3, [r7, #14] range_midpoint = (int32_t)(arc->min_value + arc->max_value) / 2; - 80381d6: 693b ldr r3, [r7, #16] - 80381d8: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 - 80381dc: 461a mov r2, r3 - 80381de: 693b ldr r3, [r7, #16] - 80381e0: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 - 80381e4: 4413 add r3, r2 - 80381e6: 0fda lsrs r2, r3, #31 - 80381e8: 4413 add r3, r2 - 80381ea: 105b asrs r3, r3, #1 - 80381ec: 81bb strh r3, [r7, #12] + 8038142: 693b ldr r3, [r7, #16] + 8038144: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 + 8038148: 461a mov r2, r3 + 803814a: 693b ldr r3, [r7, #16] + 803814c: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 + 8038150: 4413 add r3, r2 + 8038152: 0fda lsrs r2, r3, #31 + 8038154: 4413 add r3, r2 + 8038156: 105b asrs r3, r3, #1 + 8038158: 81bb strh r3, [r7, #12] if(arc->value < range_midpoint) { - 80381ee: 693b ldr r3, [r7, #16] - 80381f0: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 80381f4: f9b7 200c ldrsh.w r2, [r7, #12] - 80381f8: 429a cmp r2, r3 - 80381fa: dd1f ble.n 803823c + 803815a: 693b ldr r3, [r7, #16] + 803815c: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 8038160: f9b7 200c ldrsh.w r2, [r7, #12] + 8038164: 429a cmp r2, r3 + 8038166: dd1f ble.n 80381a8 angle = lv_map(arc->value, arc->min_value, range_midpoint, arc->bg_angle_start, bg_midpoint); - 80381fc: 693b ldr r3, [r7, #16] - 80381fe: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 8038202: 4618 mov r0, r3 - 8038204: 693b ldr r3, [r7, #16] - 8038206: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 - 803820a: 4619 mov r1, r3 - 803820c: f9b7 200c ldrsh.w r2, [r7, #12] - 8038210: 693b ldr r3, [r7, #16] - 8038212: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8038214: 461c mov r4, r3 - 8038216: f9b7 300e ldrsh.w r3, [r7, #14] - 803821a: 9300 str r3, [sp, #0] - 803821c: 4623 mov r3, r4 - 803821e: f7fa fb00 bl 8032822 - 8038222: 4603 mov r3, r0 - 8038224: 82bb strh r3, [r7, #20] + 8038168: 693b ldr r3, [r7, #16] + 803816a: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 803816e: 4618 mov r0, r3 + 8038170: 693b ldr r3, [r7, #16] + 8038172: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 + 8038176: 4619 mov r1, r3 + 8038178: f9b7 200c ldrsh.w r2, [r7, #12] + 803817c: 693b ldr r3, [r7, #16] + 803817e: 8d5b ldrh r3, [r3, #42] ; 0x2a + 8038180: 461c mov r4, r3 + 8038182: f9b7 300e ldrsh.w r3, [r7, #14] + 8038186: 9300 str r3, [sp, #0] + 8038188: 4623 mov r3, r4 + 803818a: f7fa fb00 bl 803278e + 803818e: 4603 mov r3, r0 + 8038190: 82bb strh r3, [r7, #20] lv_arc_set_start_angle(obj, angle); - 8038226: 8abb ldrh r3, [r7, #20] - 8038228: 4619 mov r1, r3 - 803822a: 6878 ldr r0, [r7, #4] - 803822c: f7fe fe45 bl 8036eba + 8038192: 8abb ldrh r3, [r7, #20] + 8038194: 4619 mov r1, r3 + 8038196: 6878 ldr r0, [r7, #4] + 8038198: f7fe fe45 bl 8036e26 lv_arc_set_end_angle(obj, bg_midpoint); - 8038230: 89fb ldrh r3, [r7, #14] - 8038232: 4619 mov r1, r3 - 8038234: 6878 ldr r0, [r7, #4] - 8038236: f7fe fea7 bl 8036f88 + 803819c: 89fb ldrh r3, [r7, #14] + 803819e: 4619 mov r1, r3 + 80381a0: 6878 ldr r0, [r7, #4] + 80381a2: f7fe fea7 bl 8036ef4 else { angle = lv_map(arc->value, range_midpoint, arc->max_value, bg_midpoint, bg_end); lv_arc_set_start_angle(obj, bg_midpoint); lv_arc_set_end_angle(obj, angle); } break; - 803823a: e05d b.n 80382f8 + 80381a6: e05d b.n 8038264 angle = lv_map(arc->value, range_midpoint, arc->max_value, bg_midpoint, bg_end); - 803823c: 693b ldr r3, [r7, #16] - 803823e: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 8038242: 4618 mov r0, r3 - 8038244: f9b7 100c ldrsh.w r1, [r7, #12] - 8038248: 693b ldr r3, [r7, #16] - 803824a: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 - 803824e: 461c mov r4, r3 - 8038250: f9b7 200e ldrsh.w r2, [r7, #14] - 8038254: f9b7 3016 ldrsh.w r3, [r7, #22] - 8038258: 9300 str r3, [sp, #0] - 803825a: 4613 mov r3, r2 - 803825c: 4622 mov r2, r4 - 803825e: f7fa fae0 bl 8032822 - 8038262: 4603 mov r3, r0 - 8038264: 82bb strh r3, [r7, #20] + 80381a8: 693b ldr r3, [r7, #16] + 80381aa: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 80381ae: 4618 mov r0, r3 + 80381b0: f9b7 100c ldrsh.w r1, [r7, #12] + 80381b4: 693b ldr r3, [r7, #16] + 80381b6: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 + 80381ba: 461c mov r4, r3 + 80381bc: f9b7 200e ldrsh.w r2, [r7, #14] + 80381c0: f9b7 3016 ldrsh.w r3, [r7, #22] + 80381c4: 9300 str r3, [sp, #0] + 80381c6: 4613 mov r3, r2 + 80381c8: 4622 mov r2, r4 + 80381ca: f7fa fae0 bl 803278e + 80381ce: 4603 mov r3, r0 + 80381d0: 82bb strh r3, [r7, #20] lv_arc_set_start_angle(obj, bg_midpoint); - 8038266: 89fb ldrh r3, [r7, #14] - 8038268: 4619 mov r1, r3 - 803826a: 6878 ldr r0, [r7, #4] - 803826c: f7fe fe25 bl 8036eba + 80381d2: 89fb ldrh r3, [r7, #14] + 80381d4: 4619 mov r1, r3 + 80381d6: 6878 ldr r0, [r7, #4] + 80381d8: f7fe fe25 bl 8036e26 lv_arc_set_end_angle(obj, angle); - 8038270: 8abb ldrh r3, [r7, #20] - 8038272: 4619 mov r1, r3 - 8038274: 6878 ldr r0, [r7, #4] - 8038276: f7fe fe87 bl 8036f88 + 80381dc: 8abb ldrh r3, [r7, #20] + 80381de: 4619 mov r1, r3 + 80381e0: 6878 ldr r0, [r7, #4] + 80381e2: f7fe fe87 bl 8036ef4 break; - 803827a: e03d b.n 80382f8 + 80381e6: e03d b.n 8038264 case LV_ARC_MODE_REVERSE: angle = lv_map(arc->value, arc->min_value, arc->max_value, arc->bg_angle_start, bg_end); - 803827c: 693b ldr r3, [r7, #16] - 803827e: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 8038282: 4618 mov r0, r3 - 8038284: 693b ldr r3, [r7, #16] - 8038286: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 - 803828a: 4619 mov r1, r3 - 803828c: 693b ldr r3, [r7, #16] - 803828e: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 - 8038292: 461a mov r2, r3 - 8038294: 693b ldr r3, [r7, #16] - 8038296: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8038298: 461c mov r4, r3 - 803829a: f9b7 3016 ldrsh.w r3, [r7, #22] - 803829e: 9300 str r3, [sp, #0] - 80382a0: 4623 mov r3, r4 - 80382a2: f7fa fabe bl 8032822 - 80382a6: 4603 mov r3, r0 - 80382a8: 82bb strh r3, [r7, #20] + 80381e8: 693b ldr r3, [r7, #16] + 80381ea: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 80381ee: 4618 mov r0, r3 + 80381f0: 693b ldr r3, [r7, #16] + 80381f2: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 + 80381f6: 4619 mov r1, r3 + 80381f8: 693b ldr r3, [r7, #16] + 80381fa: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 + 80381fe: 461a mov r2, r3 + 8038200: 693b ldr r3, [r7, #16] + 8038202: 8d5b ldrh r3, [r3, #42] ; 0x2a + 8038204: 461c mov r4, r3 + 8038206: f9b7 3016 ldrsh.w r3, [r7, #22] + 803820a: 9300 str r3, [sp, #0] + 803820c: 4623 mov r3, r4 + 803820e: f7fa fabe bl 803278e + 8038212: 4603 mov r3, r0 + 8038214: 82bb strh r3, [r7, #20] lv_arc_set_angles(obj, angle, arc->bg_angle_end); - 80382aa: 8ab9 ldrh r1, [r7, #20] - 80382ac: 693b ldr r3, [r7, #16] - 80382ae: 8d9b ldrh r3, [r3, #44] ; 0x2c - 80382b0: 461a mov r2, r3 - 80382b2: 6878 ldr r0, [r7, #4] - 80382b4: f7fe fecf bl 8037056 + 8038216: 8ab9 ldrh r1, [r7, #20] + 8038218: 693b ldr r3, [r7, #16] + 803821a: 8d9b ldrh r3, [r3, #44] ; 0x2c + 803821c: 461a mov r2, r3 + 803821e: 6878 ldr r0, [r7, #4] + 8038220: f7fe fecf bl 8036fc2 break; - 80382b8: e01e b.n 80382f8 + 8038224: e01e b.n 8038264 case LV_ARC_MODE_NORMAL: angle = lv_map(arc->value, arc->min_value, arc->max_value, arc->bg_angle_start, bg_end); - 80382ba: 693b ldr r3, [r7, #16] - 80382bc: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 80382c0: 4618 mov r0, r3 - 80382c2: 693b ldr r3, [r7, #16] - 80382c4: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 - 80382c8: 4619 mov r1, r3 - 80382ca: 693b ldr r3, [r7, #16] - 80382cc: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 - 80382d0: 461a mov r2, r3 - 80382d2: 693b ldr r3, [r7, #16] - 80382d4: 8d5b ldrh r3, [r3, #42] ; 0x2a - 80382d6: 461c mov r4, r3 - 80382d8: f9b7 3016 ldrsh.w r3, [r7, #22] - 80382dc: 9300 str r3, [sp, #0] - 80382de: 4623 mov r3, r4 - 80382e0: f7fa fa9f bl 8032822 - 80382e4: 4603 mov r3, r0 - 80382e6: 82bb strh r3, [r7, #20] + 8038226: 693b ldr r3, [r7, #16] + 8038228: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 803822c: 4618 mov r0, r3 + 803822e: 693b ldr r3, [r7, #16] + 8038230: f9b3 3030 ldrsh.w r3, [r3, #48] ; 0x30 + 8038234: 4619 mov r1, r3 + 8038236: 693b ldr r3, [r7, #16] + 8038238: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 + 803823c: 461a mov r2, r3 + 803823e: 693b ldr r3, [r7, #16] + 8038240: 8d5b ldrh r3, [r3, #42] ; 0x2a + 8038242: 461c mov r4, r3 + 8038244: f9b7 3016 ldrsh.w r3, [r7, #22] + 8038248: 9300 str r3, [sp, #0] + 803824a: 4623 mov r3, r4 + 803824c: f7fa fa9f bl 803278e + 8038250: 4603 mov r3, r0 + 8038252: 82bb strh r3, [r7, #20] lv_arc_set_angles(obj, arc->bg_angle_start, angle); - 80382e8: 693b ldr r3, [r7, #16] - 80382ea: 8d5b ldrh r3, [r3, #42] ; 0x2a - 80382ec: 8aba ldrh r2, [r7, #20] - 80382ee: 4619 mov r1, r3 - 80382f0: 6878 ldr r0, [r7, #4] - 80382f2: f7fe feb0 bl 8037056 + 8038254: 693b ldr r3, [r7, #16] + 8038256: 8d5b ldrh r3, [r3, #42] ; 0x2a + 8038258: 8aba ldrh r2, [r7, #20] + 803825a: 4619 mov r1, r3 + 803825c: 6878 ldr r0, [r7, #4] + 803825e: f7fe feb0 bl 8036fc2 break; - 80382f6: bf00 nop + 8038262: bf00 nop default: LV_LOG_WARN("Invalid mode: %d", arc->type); return; } arc->last_angle = angle; /*Cache angle for slew rate limiting*/ - 80382f8: 693b ldr r3, [r7, #16] - 80382fa: 8aba ldrh r2, [r7, #20] - 80382fc: 879a strh r2, [r3, #60] ; 0x3c - 80382fe: e002 b.n 8038306 + 8038264: 693b ldr r3, [r7, #16] + 8038266: 8aba ldrh r2, [r7, #20] + 8038268: 879a strh r2, [r3, #60] ; 0x3c + 803826a: e002 b.n 8038272 if(arc->value == VALUE_UNSET) return; - 8038300: bf00 nop - 8038302: e000 b.n 8038306 + 803826c: bf00 nop + 803826e: e000 b.n 8038272 return; - 8038304: bf00 nop + 8038270: bf00 nop } - 8038306: 371c adds r7, #28 - 8038308: 46bd mov sp, r7 - 803830a: bd90 pop {r4, r7, pc} + 8038272: 371c adds r7, #28 + 8038274: 46bd mov sp, r7 + 8038276: bd90 pop {r4, r7, pc} -0803830c : +08038278 : * Copy an area * @param dest pointer to the destination area * @param src pointer to the source area */ inline static void lv_area_copy(lv_area_t * dest, const lv_area_t * src) { - 803830c: b480 push {r7} - 803830e: b083 sub sp, #12 - 8038310: af00 add r7, sp, #0 - 8038312: 6078 str r0, [r7, #4] - 8038314: 6039 str r1, [r7, #0] + 8038278: b480 push {r7} + 803827a: b083 sub sp, #12 + 803827c: af00 add r7, sp, #0 + 803827e: 6078 str r0, [r7, #4] + 8038280: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 8038316: 683b ldr r3, [r7, #0] - 8038318: f9b3 2000 ldrsh.w r2, [r3] - 803831c: 687b ldr r3, [r7, #4] - 803831e: 801a strh r2, [r3, #0] + 8038282: 683b ldr r3, [r7, #0] + 8038284: f9b3 2000 ldrsh.w r2, [r3] + 8038288: 687b ldr r3, [r7, #4] + 803828a: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 8038320: 683b ldr r3, [r7, #0] - 8038322: f9b3 2002 ldrsh.w r2, [r3, #2] - 8038326: 687b ldr r3, [r7, #4] - 8038328: 805a strh r2, [r3, #2] + 803828c: 683b ldr r3, [r7, #0] + 803828e: f9b3 2002 ldrsh.w r2, [r3, #2] + 8038292: 687b ldr r3, [r7, #4] + 8038294: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 803832a: 683b ldr r3, [r7, #0] - 803832c: f9b3 2004 ldrsh.w r2, [r3, #4] - 8038330: 687b ldr r3, [r7, #4] - 8038332: 809a strh r2, [r3, #4] + 8038296: 683b ldr r3, [r7, #0] + 8038298: f9b3 2004 ldrsh.w r2, [r3, #4] + 803829c: 687b ldr r3, [r7, #4] + 803829e: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 8038334: 683b ldr r3, [r7, #0] - 8038336: f9b3 2006 ldrsh.w r2, [r3, #6] - 803833a: 687b ldr r3, [r7, #4] - 803833c: 80da strh r2, [r3, #6] + 80382a0: 683b ldr r3, [r7, #0] + 80382a2: f9b3 2006 ldrsh.w r2, [r3, #6] + 80382a6: 687b ldr r3, [r7, #4] + 80382a8: 80da strh r2, [r3, #6] } - 803833e: bf00 nop - 8038340: 370c adds r7, #12 - 8038342: 46bd mov sp, r7 - 8038344: bc80 pop {r7} - 8038346: 4770 bx lr + 80382aa: bf00 nop + 80382ac: 370c adds r7, #12 + 80382ae: 46bd mov sp, r7 + 80382b0: bc80 pop {r7} + 80382b2: 4770 bx lr -08038348 : +080382b4 : * Get the width of an area * @param area_p pointer to an area * @return the width of the area (if x1 == x2 -> width = 1) */ static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p) { - 8038348: b480 push {r7} - 803834a: b083 sub sp, #12 - 803834c: af00 add r7, sp, #0 - 803834e: 6078 str r0, [r7, #4] + 80382b4: b480 push {r7} + 80382b6: b083 sub sp, #12 + 80382b8: af00 add r7, sp, #0 + 80382ba: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 8038350: 687b ldr r3, [r7, #4] - 8038352: f9b3 3004 ldrsh.w r3, [r3, #4] - 8038356: b29a uxth r2, r3 - 8038358: 687b ldr r3, [r7, #4] - 803835a: f9b3 3000 ldrsh.w r3, [r3] - 803835e: b29b uxth r3, r3 - 8038360: 1ad3 subs r3, r2, r3 - 8038362: b29b uxth r3, r3 - 8038364: 3301 adds r3, #1 - 8038366: b29b uxth r3, r3 - 8038368: b21b sxth r3, r3 + 80382bc: 687b ldr r3, [r7, #4] + 80382be: f9b3 3004 ldrsh.w r3, [r3, #4] + 80382c2: b29a uxth r2, r3 + 80382c4: 687b ldr r3, [r7, #4] + 80382c6: f9b3 3000 ldrsh.w r3, [r3] + 80382ca: b29b uxth r3, r3 + 80382cc: 1ad3 subs r3, r2, r3 + 80382ce: b29b uxth r3, r3 + 80382d0: 3301 adds r3, #1 + 80382d2: b29b uxth r3, r3 + 80382d4: b21b sxth r3, r3 } - 803836a: 4618 mov r0, r3 - 803836c: 370c adds r7, #12 - 803836e: 46bd mov sp, r7 - 8038370: bc80 pop {r7} - 8038372: 4770 bx lr + 80382d6: 4618 mov r0, r3 + 80382d8: 370c adds r7, #12 + 80382da: 46bd mov sp, r7 + 80382dc: bc80 pop {r7} + 80382de: 4770 bx lr -08038374 : +080382e0 : * Get the height of an area * @param area_p pointer to an area * @return the height of the area (if y1 == y2 -> height = 1) */ static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) { - 8038374: b480 push {r7} - 8038376: b083 sub sp, #12 - 8038378: af00 add r7, sp, #0 - 803837a: 6078 str r0, [r7, #4] + 80382e0: b480 push {r7} + 80382e2: b083 sub sp, #12 + 80382e4: af00 add r7, sp, #0 + 80382e6: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 803837c: 687b ldr r3, [r7, #4] - 803837e: f9b3 3006 ldrsh.w r3, [r3, #6] - 8038382: b29a uxth r2, r3 - 8038384: 687b ldr r3, [r7, #4] - 8038386: f9b3 3002 ldrsh.w r3, [r3, #2] - 803838a: b29b uxth r3, r3 - 803838c: 1ad3 subs r3, r2, r3 - 803838e: b29b uxth r3, r3 - 8038390: 3301 adds r3, #1 - 8038392: b29b uxth r3, r3 - 8038394: b21b sxth r3, r3 + 80382e8: 687b ldr r3, [r7, #4] + 80382ea: f9b3 3006 ldrsh.w r3, [r3, #6] + 80382ee: b29a uxth r2, r3 + 80382f0: 687b ldr r3, [r7, #4] + 80382f2: f9b3 3002 ldrsh.w r3, [r3, #2] + 80382f6: b29b uxth r3, r3 + 80382f8: 1ad3 subs r3, r2, r3 + 80382fa: b29b uxth r3, r3 + 80382fc: 3301 adds r3, #1 + 80382fe: b29b uxth r3, r3 + 8038300: b21b sxth r3, r3 } - 8038396: 4618 mov r0, r3 - 8038398: 370c adds r7, #12 - 803839a: 46bd mov sp, r7 - 803839c: bc80 pop {r7} - 803839e: 4770 bx lr + 8038302: 4618 mov r0, r3 + 8038304: 370c adds r7, #12 + 8038306: 46bd mov sp, r7 + 8038308: bc80 pop {r7} + 803830a: 4770 bx lr -080383a0 : +0803830c : * Set a variable to animate * @param a pointer to an initialized `lv_anim_t` variable * @param var pointer to a variable to animate */ static inline void lv_anim_set_var(lv_anim_t * a, void * var) { - 80383a0: b480 push {r7} - 80383a2: b083 sub sp, #12 - 80383a4: af00 add r7, sp, #0 - 80383a6: 6078 str r0, [r7, #4] - 80383a8: 6039 str r1, [r7, #0] + 803830c: b480 push {r7} + 803830e: b083 sub sp, #12 + 8038310: af00 add r7, sp, #0 + 8038312: 6078 str r0, [r7, #4] + 8038314: 6039 str r1, [r7, #0] a->var = var; - 80383aa: 687b ldr r3, [r7, #4] - 80383ac: 683a ldr r2, [r7, #0] - 80383ae: 601a str r2, [r3, #0] + 8038316: 687b ldr r3, [r7, #4] + 8038318: 683a ldr r2, [r7, #0] + 803831a: 601a str r2, [r3, #0] } - 80383b0: bf00 nop - 80383b2: 370c adds r7, #12 - 80383b4: 46bd mov sp, r7 - 80383b6: bc80 pop {r7} - 80383b8: 4770 bx lr + 803831c: bf00 nop + 803831e: 370c adds r7, #12 + 8038320: 46bd mov sp, r7 + 8038322: bc80 pop {r7} + 8038324: 4770 bx lr -080383ba : +08038326 : * @param exec_cb a function to execute during animation * LVGL's built-in functions can be used. * E.g. lv_obj_set_x */ static inline void lv_anim_set_exec_cb(lv_anim_t * a, lv_anim_exec_xcb_t exec_cb) { - 80383ba: b480 push {r7} - 80383bc: b083 sub sp, #12 - 80383be: af00 add r7, sp, #0 - 80383c0: 6078 str r0, [r7, #4] - 80383c2: 6039 str r1, [r7, #0] + 8038326: b480 push {r7} + 8038328: b083 sub sp, #12 + 803832a: af00 add r7, sp, #0 + 803832c: 6078 str r0, [r7, #4] + 803832e: 6039 str r1, [r7, #0] a->exec_cb = exec_cb; - 80383c4: 687b ldr r3, [r7, #4] - 80383c6: 683a ldr r2, [r7, #0] - 80383c8: 605a str r2, [r3, #4] + 8038330: 687b ldr r3, [r7, #4] + 8038332: 683a ldr r2, [r7, #0] + 8038334: 605a str r2, [r3, #4] } - 80383ca: bf00 nop - 80383cc: 370c adds r7, #12 - 80383ce: 46bd mov sp, r7 - 80383d0: bc80 pop {r7} - 80383d2: 4770 bx lr + 8038336: bf00 nop + 8038338: 370c adds r7, #12 + 803833a: 46bd mov sp, r7 + 803833c: bc80 pop {r7} + 803833e: 4770 bx lr -080383d4 : +08038340 : * Set the duration of an animation * @param a pointer to an initialized `lv_anim_t` variable * @param duration duration of the animation in milliseconds */ static inline void lv_anim_set_time(lv_anim_t * a, uint32_t duration) { - 80383d4: b480 push {r7} - 80383d6: b083 sub sp, #12 - 80383d8: af00 add r7, sp, #0 - 80383da: 6078 str r0, [r7, #4] - 80383dc: 6039 str r1, [r7, #0] + 8038340: b480 push {r7} + 8038342: b083 sub sp, #12 + 8038344: af00 add r7, sp, #0 + 8038346: 6078 str r0, [r7, #4] + 8038348: 6039 str r1, [r7, #0] a->time = duration; - 80383de: 683a ldr r2, [r7, #0] - 80383e0: 687b ldr r3, [r7, #4] - 80383e2: 629a str r2, [r3, #40] ; 0x28 + 803834a: 683a ldr r2, [r7, #0] + 803834c: 687b ldr r3, [r7, #4] + 803834e: 629a str r2, [r3, #40] ; 0x28 } - 80383e4: bf00 nop - 80383e6: 370c adds r7, #12 - 80383e8: 46bd mov sp, r7 - 80383ea: bc80 pop {r7} - 80383ec: 4770 bx lr + 8038350: bf00 nop + 8038352: 370c adds r7, #12 + 8038354: 46bd mov sp, r7 + 8038356: bc80 pop {r7} + 8038358: 4770 bx lr -080383ee : +0803835a : * @param a pointer to an initialized `lv_anim_t` variable * @param start the start value * @param end the end value */ static inline void lv_anim_set_values(lv_anim_t * a, int32_t start, int32_t end) { - 80383ee: b480 push {r7} - 80383f0: b085 sub sp, #20 - 80383f2: af00 add r7, sp, #0 - 80383f4: 60f8 str r0, [r7, #12] - 80383f6: 60b9 str r1, [r7, #8] - 80383f8: 607a str r2, [r7, #4] + 803835a: b480 push {r7} + 803835c: b085 sub sp, #20 + 803835e: af00 add r7, sp, #0 + 8038360: 60f8 str r0, [r7, #12] + 8038362: 60b9 str r1, [r7, #8] + 8038364: 607a str r2, [r7, #4] a->start_value = start; - 80383fa: 68fb ldr r3, [r7, #12] - 80383fc: 68ba ldr r2, [r7, #8] - 80383fe: 61da str r2, [r3, #28] + 8038366: 68fb ldr r3, [r7, #12] + 8038368: 68ba ldr r2, [r7, #8] + 803836a: 61da str r2, [r3, #28] a->current_value = start; - 8038400: 68fb ldr r3, [r7, #12] - 8038402: 68ba ldr r2, [r7, #8] - 8038404: 621a str r2, [r3, #32] + 803836c: 68fb ldr r3, [r7, #12] + 803836e: 68ba ldr r2, [r7, #8] + 8038370: 621a str r2, [r3, #32] a->end_value = end; - 8038406: 68fb ldr r3, [r7, #12] - 8038408: 687a ldr r2, [r7, #4] - 803840a: 625a str r2, [r3, #36] ; 0x24 + 8038372: 68fb ldr r3, [r7, #12] + 8038374: 687a ldr r2, [r7, #4] + 8038376: 625a str r2, [r3, #36] ; 0x24 } - 803840c: bf00 nop - 803840e: 3714 adds r7, #20 - 8038410: 46bd mov sp, r7 - 8038412: bc80 pop {r7} - 8038414: 4770 bx lr + 8038378: bf00 nop + 803837a: 3714 adds r7, #20 + 803837c: 46bd mov sp, r7 + 803837e: bc80 pop {r7} + 8038380: 4770 bx lr -08038416 : +08038382 : * Set a function call when the animation is ready * @param a pointer to an initialized `lv_anim_t` variable * @param ready_cb a function call when the animation is ready */ static inline void lv_anim_set_ready_cb(lv_anim_t * a, lv_anim_ready_cb_t ready_cb) { - 8038416: b480 push {r7} - 8038418: b083 sub sp, #12 - 803841a: af00 add r7, sp, #0 - 803841c: 6078 str r0, [r7, #4] - 803841e: 6039 str r1, [r7, #0] + 8038382: b480 push {r7} + 8038384: b083 sub sp, #12 + 8038386: af00 add r7, sp, #0 + 8038388: 6078 str r0, [r7, #4] + 803838a: 6039 str r1, [r7, #0] a->ready_cb = ready_cb; - 8038420: 687b ldr r3, [r7, #4] - 8038422: 683a ldr r2, [r7, #0] - 8038424: 60da str r2, [r3, #12] + 803838c: 687b ldr r3, [r7, #4] + 803838e: 683a ldr r2, [r7, #0] + 8038390: 60da str r2, [r3, #12] } - 8038426: bf00 nop - 8038428: 370c adds r7, #12 - 803842a: 46bd mov sp, r7 - 803842c: bc80 pop {r7} - 803842e: 4770 bx lr + 8038392: bf00 nop + 8038394: 370c adds r7, #12 + 8038396: 46bd mov sp, r7 + 8038398: bc80 pop {r7} + 803839a: 4770 bx lr -08038430 : +0803839c : { - 8038430: b580 push {r7, lr} - 8038432: b084 sub sp, #16 - 8038434: af00 add r7, sp, #0 - 8038436: 6078 str r0, [r7, #4] - 8038438: 6039 str r1, [r7, #0] + 803839c: b580 push {r7, lr} + 803839e: b084 sub sp, #16 + 80383a0: af00 add r7, sp, #0 + 80383a2: 6078 str r0, [r7, #4] + 80383a4: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_WIDTH); - 803843a: f640 020a movw r2, #2058 ; 0x80a - 803843e: 6839 ldr r1, [r7, #0] - 8038440: 6878 ldr r0, [r7, #4] - 8038442: f7d5 fcb5 bl 800ddb0 - 8038446: 4603 mov r3, r0 - 8038448: 60fb str r3, [r7, #12] + 80383a6: f640 020a movw r2, #2058 ; 0x80a + 80383aa: 6839 ldr r1, [r7, #0] + 80383ac: 6878 ldr r0, [r7, #4] + 80383ae: f7d5 fcc9 bl 800dd44 + 80383b2: 4603 mov r3, r0 + 80383b4: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803844a: 68fb ldr r3, [r7, #12] - 803844c: b21b sxth r3, r3 + 80383b6: 68fb ldr r3, [r7, #12] + 80383b8: b21b sxth r3, r3 } - 803844e: 4618 mov r0, r3 - 8038450: 3710 adds r7, #16 - 8038452: 46bd mov sp, r7 - 8038454: bd80 pop {r7, pc} + 80383ba: 4618 mov r0, r3 + 80383bc: 3710 adds r7, #16 + 80383be: 46bd mov sp, r7 + 80383c0: bd80 pop {r7, pc} -08038456 : +080383c2 : { - 8038456: b580 push {r7, lr} - 8038458: b084 sub sp, #16 - 803845a: af00 add r7, sp, #0 - 803845c: 6078 str r0, [r7, #4] - 803845e: 6039 str r1, [r7, #0] + 80383c2: b580 push {r7, lr} + 80383c4: b084 sub sp, #16 + 80383c6: af00 add r7, sp, #0 + 80383c8: 6078 str r0, [r7, #4] + 80383ca: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_HEIGHT); - 8038460: f640 020b movw r2, #2059 ; 0x80b - 8038464: 6839 ldr r1, [r7, #0] - 8038466: 6878 ldr r0, [r7, #4] - 8038468: f7d5 fca2 bl 800ddb0 - 803846c: 4603 mov r3, r0 - 803846e: 60fb str r3, [r7, #12] + 80383cc: f640 020b movw r2, #2059 ; 0x80b + 80383d0: 6839 ldr r1, [r7, #0] + 80383d2: 6878 ldr r0, [r7, #4] + 80383d4: f7d5 fcb6 bl 800dd44 + 80383d8: 4603 mov r3, r0 + 80383da: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8038470: 68fb ldr r3, [r7, #12] - 8038472: b21b sxth r3, r3 + 80383dc: 68fb ldr r3, [r7, #12] + 80383de: b21b sxth r3, r3 } - 8038474: 4618 mov r0, r3 - 8038476: 3710 adds r7, #16 - 8038478: 46bd mov sp, r7 - 803847a: bd80 pop {r7, pc} + 80383e0: 4618 mov r0, r3 + 80383e2: 3710 adds r7, #16 + 80383e4: 46bd mov sp, r7 + 80383e6: bd80 pop {r7, pc} -0803847c : +080383e8 : { - 803847c: b580 push {r7, lr} - 803847e: b084 sub sp, #16 - 8038480: af00 add r7, sp, #0 - 8038482: 6078 str r0, [r7, #4] - 8038484: 6039 str r1, [r7, #0] + 80383e8: b580 push {r7, lr} + 80383ea: b084 sub sp, #16 + 80383ec: af00 add r7, sp, #0 + 80383ee: 6078 str r0, [r7, #4] + 80383f0: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 8038486: f641 0210 movw r2, #6160 ; 0x1810 - 803848a: 6839 ldr r1, [r7, #0] - 803848c: 6878 ldr r0, [r7, #4] - 803848e: f7d5 fc8f bl 800ddb0 - 8038492: 4603 mov r3, r0 - 8038494: 60fb str r3, [r7, #12] + 80383f2: f641 0210 movw r2, #6160 ; 0x1810 + 80383f6: 6839 ldr r1, [r7, #0] + 80383f8: 6878 ldr r0, [r7, #4] + 80383fa: f7d5 fca3 bl 800dd44 + 80383fe: 4603 mov r3, r0 + 8038400: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8038496: 68fb ldr r3, [r7, #12] - 8038498: b21b sxth r3, r3 + 8038402: 68fb ldr r3, [r7, #12] + 8038404: b21b sxth r3, r3 } - 803849a: 4618 mov r0, r3 - 803849c: 3710 adds r7, #16 - 803849e: 46bd mov sp, r7 - 80384a0: bd80 pop {r7, pc} + 8038406: 4618 mov r0, r3 + 8038408: 3710 adds r7, #16 + 803840a: 46bd mov sp, r7 + 803840c: bd80 pop {r7, pc} -080384a2 : +0803840e : { - 80384a2: b580 push {r7, lr} - 80384a4: b084 sub sp, #16 - 80384a6: af00 add r7, sp, #0 - 80384a8: 6078 str r0, [r7, #4] - 80384aa: 6039 str r1, [r7, #0] + 803840e: b580 push {r7, lr} + 8038410: b084 sub sp, #16 + 8038412: af00 add r7, sp, #0 + 8038414: 6078 str r0, [r7, #4] + 8038416: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); - 80384ac: f641 0211 movw r2, #6161 ; 0x1811 - 80384b0: 6839 ldr r1, [r7, #0] - 80384b2: 6878 ldr r0, [r7, #4] - 80384b4: f7d5 fc7c bl 800ddb0 - 80384b8: 4603 mov r3, r0 - 80384ba: 60fb str r3, [r7, #12] + 8038418: f641 0211 movw r2, #6161 ; 0x1811 + 803841c: 6839 ldr r1, [r7, #0] + 803841e: 6878 ldr r0, [r7, #4] + 8038420: f7d5 fc90 bl 800dd44 + 8038424: 4603 mov r3, r0 + 8038426: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80384bc: 68fb ldr r3, [r7, #12] - 80384be: b21b sxth r3, r3 + 8038428: 68fb ldr r3, [r7, #12] + 803842a: b21b sxth r3, r3 } - 80384c0: 4618 mov r0, r3 - 80384c2: 3710 adds r7, #16 - 80384c4: 46bd mov sp, r7 - 80384c6: bd80 pop {r7, pc} + 803842c: 4618 mov r0, r3 + 803842e: 3710 adds r7, #16 + 8038430: 46bd mov sp, r7 + 8038432: bd80 pop {r7, pc} -080384c8 : +08038434 : { - 80384c8: b580 push {r7, lr} - 80384ca: b084 sub sp, #16 - 80384cc: af00 add r7, sp, #0 - 80384ce: 6078 str r0, [r7, #4] - 80384d0: 6039 str r1, [r7, #0] + 8038434: b580 push {r7, lr} + 8038436: b084 sub sp, #16 + 8038438: af00 add r7, sp, #0 + 803843a: 6078 str r0, [r7, #4] + 803843c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 80384d2: f641 0212 movw r2, #6162 ; 0x1812 - 80384d6: 6839 ldr r1, [r7, #0] - 80384d8: 6878 ldr r0, [r7, #4] - 80384da: f7d5 fc69 bl 800ddb0 - 80384de: 4603 mov r3, r0 - 80384e0: 60fb str r3, [r7, #12] + 803843e: f641 0212 movw r2, #6162 ; 0x1812 + 8038442: 6839 ldr r1, [r7, #0] + 8038444: 6878 ldr r0, [r7, #4] + 8038446: f7d5 fc7d bl 800dd44 + 803844a: 4603 mov r3, r0 + 803844c: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80384e2: 68fb ldr r3, [r7, #12] - 80384e4: b21b sxth r3, r3 + 803844e: 68fb ldr r3, [r7, #12] + 8038450: b21b sxth r3, r3 } - 80384e6: 4618 mov r0, r3 - 80384e8: 3710 adds r7, #16 - 80384ea: 46bd mov sp, r7 - 80384ec: bd80 pop {r7, pc} + 8038452: 4618 mov r0, r3 + 8038454: 3710 adds r7, #16 + 8038456: 46bd mov sp, r7 + 8038458: bd80 pop {r7, pc} -080384ee : +0803845a : { - 80384ee: b580 push {r7, lr} - 80384f0: b084 sub sp, #16 - 80384f2: af00 add r7, sp, #0 - 80384f4: 6078 str r0, [r7, #4] - 80384f6: 6039 str r1, [r7, #0] + 803845a: b580 push {r7, lr} + 803845c: b084 sub sp, #16 + 803845e: af00 add r7, sp, #0 + 8038460: 6078 str r0, [r7, #4] + 8038462: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - 80384f8: f641 0213 movw r2, #6163 ; 0x1813 - 80384fc: 6839 ldr r1, [r7, #0] - 80384fe: 6878 ldr r0, [r7, #4] - 8038500: f7d5 fc56 bl 800ddb0 - 8038504: 4603 mov r3, r0 - 8038506: 60fb str r3, [r7, #12] + 8038464: f641 0213 movw r2, #6163 ; 0x1813 + 8038468: 6839 ldr r1, [r7, #0] + 803846a: 6878 ldr r0, [r7, #4] + 803846c: f7d5 fc6a bl 800dd44 + 8038470: 4603 mov r3, r0 + 8038472: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8038508: 68fb ldr r3, [r7, #12] - 803850a: b21b sxth r3, r3 + 8038474: 68fb ldr r3, [r7, #12] + 8038476: b21b sxth r3, r3 } - 803850c: 4618 mov r0, r3 - 803850e: 3710 adds r7, #16 - 8038510: 46bd mov sp, r7 - 8038512: bd80 pop {r7, pc} + 8038478: 4618 mov r0, r3 + 803847a: 3710 adds r7, #16 + 803847c: 46bd mov sp, r7 + 803847e: bd80 pop {r7, pc} -08038514 : +08038480 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_ALIGN); return (lv_text_align_t)v.num; } static inline lv_coord_t lv_obj_get_style_radius(const struct _lv_obj_t * obj, uint32_t part) { - 8038514: b580 push {r7, lr} - 8038516: b084 sub sp, #16 - 8038518: af00 add r7, sp, #0 - 803851a: 6078 str r0, [r7, #4] - 803851c: 6039 str r1, [r7, #0] + 8038480: b580 push {r7, lr} + 8038482: b084 sub sp, #16 + 8038484: af00 add r7, sp, #0 + 8038486: 6078 str r0, [r7, #4] + 8038488: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_RADIUS); - 803851e: 2260 movs r2, #96 ; 0x60 - 8038520: 6839 ldr r1, [r7, #0] - 8038522: 6878 ldr r0, [r7, #4] - 8038524: f7d5 fc44 bl 800ddb0 - 8038528: 4603 mov r3, r0 - 803852a: 60fb str r3, [r7, #12] + 803848a: 2260 movs r2, #96 ; 0x60 + 803848c: 6839 ldr r1, [r7, #0] + 803848e: 6878 ldr r0, [r7, #4] + 8038490: f7d5 fc58 bl 800dd44 + 8038494: 4603 mov r3, r0 + 8038496: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803852c: 68fb ldr r3, [r7, #12] - 803852e: b21b sxth r3, r3 + 8038498: 68fb ldr r3, [r7, #12] + 803849a: b21b sxth r3, r3 } - 8038530: 4618 mov r0, r3 - 8038532: 3710 adds r7, #16 - 8038534: 46bd mov sp, r7 - 8038536: bd80 pop {r7, pc} + 803849c: 4618 mov r0, r3 + 803849e: 3710 adds r7, #16 + 80384a0: 46bd mov sp, r7 + 80384a2: bd80 pop {r7, pc} -08038538 : +080384a4 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_COLOR_FILTER_OPA); return (lv_opa_t)v.num; } static inline uint32_t lv_obj_get_style_anim_time(const struct _lv_obj_t * obj, uint32_t part) { - 8038538: b580 push {r7, lr} - 803853a: b084 sub sp, #16 - 803853c: af00 add r7, sp, #0 - 803853e: 6078 str r0, [r7, #4] - 8038540: 6039 str r1, [r7, #0] + 80384a4: b580 push {r7, lr} + 80384a6: b084 sub sp, #16 + 80384a8: af00 add r7, sp, #0 + 80384aa: 6078 str r0, [r7, #4] + 80384ac: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ANIM_TIME); - 8038542: 2265 movs r2, #101 ; 0x65 - 8038544: 6839 ldr r1, [r7, #0] - 8038546: 6878 ldr r0, [r7, #4] - 8038548: f7d5 fc32 bl 800ddb0 - 803854c: 4603 mov r3, r0 - 803854e: 60fb str r3, [r7, #12] + 80384ae: 2265 movs r2, #101 ; 0x65 + 80384b0: 6839 ldr r1, [r7, #0] + 80384b2: 6878 ldr r0, [r7, #4] + 80384b4: f7d5 fc46 bl 800dd44 + 80384b8: 4603 mov r3, r0 + 80384ba: 60fb str r3, [r7, #12] return (uint32_t)v.num; - 8038550: 68fb ldr r3, [r7, #12] + 80384bc: 68fb ldr r3, [r7, #12] } - 8038552: 4618 mov r0, r3 - 8038554: 3710 adds r7, #16 - 8038556: 46bd mov sp, r7 - 8038558: bd80 pop {r7, pc} + 80384be: 4618 mov r0, r3 + 80384c0: 3710 adds r7, #16 + 80384c2: 46bd mov sp, r7 + 80384c4: bd80 pop {r7, pc} -0803855a : +080384c6 : lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LAYOUT); return (uint16_t)v.num; } static inline lv_base_dir_t lv_obj_get_style_base_dir(const struct _lv_obj_t * obj, uint32_t part) { - 803855a: b580 push {r7, lr} - 803855c: b084 sub sp, #16 - 803855e: af00 add r7, sp, #0 - 8038560: 6078 str r0, [r7, #4] - 8038562: 6039 str r1, [r7, #0] + 80384c6: b580 push {r7, lr} + 80384c8: b084 sub sp, #16 + 80384ca: af00 add r7, sp, #0 + 80384cc: 6078 str r0, [r7, #4] + 80384ce: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BASE_DIR); - 8038564: f241 426a movw r2, #5226 ; 0x146a - 8038568: 6839 ldr r1, [r7, #0] - 803856a: 6878 ldr r0, [r7, #4] - 803856c: f7d5 fc20 bl 800ddb0 - 8038570: 4603 mov r3, r0 - 8038572: 60fb str r3, [r7, #12] + 80384d0: f241 426a movw r2, #5226 ; 0x146a + 80384d4: 6839 ldr r1, [r7, #0] + 80384d6: 6878 ldr r0, [r7, #4] + 80384d8: f7d5 fc34 bl 800dd44 + 80384dc: 4603 mov r3, r0 + 80384de: 60fb str r3, [r7, #12] return (lv_base_dir_t)v.num; - 8038574: 68fb ldr r3, [r7, #12] - 8038576: b2db uxtb r3, r3 + 80384e0: 68fb ldr r3, [r7, #12] + 80384e2: b2db uxtb r3, r3 } - 8038578: 4618 mov r0, r3 - 803857a: 3710 adds r7, #16 - 803857c: 46bd mov sp, r7 - 803857e: bd80 pop {r7, pc} + 80384e4: 4618 mov r0, r3 + 80384e6: 3710 adds r7, #16 + 80384e8: 46bd mov sp, r7 + 80384ea: bd80 pop {r7, pc} -08038580 : +080384ec : /*===================== * Setter functions *====================*/ void lv_bar_set_value(lv_obj_t * obj, int32_t value, lv_anim_enable_t anim) { - 8038580: b580 push {r7, lr} - 8038582: b088 sub sp, #32 - 8038584: af02 add r7, sp, #8 - 8038586: 60f8 str r0, [r7, #12] - 8038588: 60b9 str r1, [r7, #8] - 803858a: 4613 mov r3, r2 - 803858c: 71fb strb r3, [r7, #7] + 80384ec: b580 push {r7, lr} + 80384ee: b088 sub sp, #32 + 80384f0: af02 add r7, sp, #8 + 80384f2: 60f8 str r0, [r7, #12] + 80384f4: 60b9 str r1, [r7, #8] + 80384f6: 4613 mov r3, r2 + 80384f8: 71fb strb r3, [r7, #7] LV_ASSERT_OBJ(obj, MY_CLASS); lv_bar_t * bar = (lv_bar_t *)obj; - 803858e: 68fb ldr r3, [r7, #12] - 8038590: 617b str r3, [r7, #20] + 80384fa: 68fb ldr r3, [r7, #12] + 80384fc: 617b str r3, [r7, #20] if(bar->cur_value == value) return; - 8038592: 697b ldr r3, [r7, #20] - 8038594: 6a5b ldr r3, [r3, #36] ; 0x24 - 8038596: 68ba ldr r2, [r7, #8] - 8038598: 429a cmp r2, r3 - 803859a: d025 beq.n 80385e8 + 80384fe: 697b ldr r3, [r7, #20] + 8038500: 6a5b ldr r3, [r3, #36] ; 0x24 + 8038502: 68ba ldr r2, [r7, #8] + 8038504: 429a cmp r2, r3 + 8038506: d025 beq.n 8038554 value = LV_CLAMP(bar->min_value, value, bar->max_value); - 803859c: 697b ldr r3, [r7, #20] - 803859e: 6ada ldr r2, [r3, #44] ; 0x2c - 80385a0: 68bb ldr r3, [r7, #8] - 80385a2: 429a cmp r2, r3 - 80385a4: bfa8 it ge - 80385a6: 461a movge r2, r3 - 80385a8: 697b ldr r3, [r7, #20] - 80385aa: 6a9b ldr r3, [r3, #40] ; 0x28 - 80385ac: 4293 cmp r3, r2 - 80385ae: bfb8 it lt - 80385b0: 4613 movlt r3, r2 - 80385b2: 60bb str r3, [r7, #8] + 8038508: 697b ldr r3, [r7, #20] + 803850a: 6ada ldr r2, [r3, #44] ; 0x2c + 803850c: 68bb ldr r3, [r7, #8] + 803850e: 429a cmp r2, r3 + 8038510: bfa8 it ge + 8038512: 461a movge r2, r3 + 8038514: 697b ldr r3, [r7, #20] + 8038516: 6a9b ldr r3, [r3, #40] ; 0x28 + 8038518: 4293 cmp r3, r2 + 803851a: bfb8 it lt + 803851c: 4613 movlt r3, r2 + 803851e: 60bb str r3, [r7, #8] value = value < bar->start_value ? bar->start_value : value; /*Can't be smaller than the left value*/ - 80385b4: 697b ldr r3, [r7, #20] - 80385b6: 6b1b ldr r3, [r3, #48] ; 0x30 - 80385b8: 68ba ldr r2, [r7, #8] - 80385ba: 4293 cmp r3, r2 - 80385bc: bfb8 it lt - 80385be: 4613 movlt r3, r2 - 80385c0: 60bb str r3, [r7, #8] + 8038520: 697b ldr r3, [r7, #20] + 8038522: 6b1b ldr r3, [r3, #48] ; 0x30 + 8038524: 68ba ldr r2, [r7, #8] + 8038526: 4293 cmp r3, r2 + 8038528: bfb8 it lt + 803852a: 4613 movlt r3, r2 + 803852c: 60bb str r3, [r7, #8] if(bar->cur_value == value) return; - 80385c2: 697b ldr r3, [r7, #20] - 80385c4: 6a5b ldr r3, [r3, #36] ; 0x24 - 80385c6: 68ba ldr r2, [r7, #8] - 80385c8: 429a cmp r2, r3 - 80385ca: d00f beq.n 80385ec + 803852e: 697b ldr r3, [r7, #20] + 8038530: 6a5b ldr r3, [r3, #36] ; 0x24 + 8038532: 68ba ldr r2, [r7, #8] + 8038534: 429a cmp r2, r3 + 8038536: d00f beq.n 8038558 lv_bar_set_value_with_anim(obj, value, &bar->cur_value, &bar->cur_value_anim, anim); - 80385cc: 697b ldr r3, [r7, #20] - 80385ce: f103 0224 add.w r2, r3, #36 ; 0x24 - 80385d2: 697b ldr r3, [r7, #20] - 80385d4: f103 013c add.w r1, r3, #60 ; 0x3c - 80385d8: 79fb ldrb r3, [r7, #7] - 80385da: 9300 str r3, [sp, #0] - 80385dc: 460b mov r3, r1 - 80385de: 68b9 ldr r1, [r7, #8] - 80385e0: 68f8 ldr r0, [r7, #12] - 80385e2: f000 ff49 bl 8039478 - 80385e6: e002 b.n 80385ee + 8038538: 697b ldr r3, [r7, #20] + 803853a: f103 0224 add.w r2, r3, #36 ; 0x24 + 803853e: 697b ldr r3, [r7, #20] + 8038540: f103 013c add.w r1, r3, #60 ; 0x3c + 8038544: 79fb ldrb r3, [r7, #7] + 8038546: 9300 str r3, [sp, #0] + 8038548: 460b mov r3, r1 + 803854a: 68b9 ldr r1, [r7, #8] + 803854c: 68f8 ldr r0, [r7, #12] + 803854e: f000 ff49 bl 80393e4 + 8038552: e002 b.n 803855a if(bar->cur_value == value) return; - 80385e8: bf00 nop - 80385ea: e000 b.n 80385ee + 8038554: bf00 nop + 8038556: e000 b.n 803855a if(bar->cur_value == value) return; - 80385ec: bf00 nop + 8038558: bf00 nop } - 80385ee: 3718 adds r7, #24 - 80385f0: 46bd mov sp, r7 - 80385f2: bd80 pop {r7, pc} + 803855a: 3718 adds r7, #24 + 803855c: 46bd mov sp, r7 + 803855e: bd80 pop {r7, pc} -080385f4 : +08038560 : void lv_bar_set_start_value(lv_obj_t * obj, int32_t value, lv_anim_enable_t anim) { - 80385f4: b580 push {r7, lr} - 80385f6: b088 sub sp, #32 - 80385f8: af02 add r7, sp, #8 - 80385fa: 60f8 str r0, [r7, #12] - 80385fc: 60b9 str r1, [r7, #8] - 80385fe: 4613 mov r3, r2 - 8038600: 71fb strb r3, [r7, #7] + 8038560: b580 push {r7, lr} + 8038562: b088 sub sp, #32 + 8038564: af02 add r7, sp, #8 + 8038566: 60f8 str r0, [r7, #12] + 8038568: 60b9 str r1, [r7, #8] + 803856a: 4613 mov r3, r2 + 803856c: 71fb strb r3, [r7, #7] LV_ASSERT_OBJ(obj, MY_CLASS); lv_bar_t * bar = (lv_bar_t *)obj; - 8038602: 68fb ldr r3, [r7, #12] - 8038604: 617b str r3, [r7, #20] + 803856e: 68fb ldr r3, [r7, #12] + 8038570: 617b str r3, [r7, #20] if(bar->mode != LV_BAR_MODE_RANGE) { - 8038606: 697b ldr r3, [r7, #20] - 8038608: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 803860c: f003 0303 and.w r3, r3, #3 - 8038610: b2db uxtb r3, r3 - 8038612: 2b02 cmp r3, #2 - 8038614: d125 bne.n 8038662 + 8038572: 697b ldr r3, [r7, #20] + 8038574: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 8038578: f003 0303 and.w r3, r3, #3 + 803857c: b2db uxtb r3, r3 + 803857e: 2b02 cmp r3, #2 + 8038580: d125 bne.n 80385ce return; } value = LV_CLAMP(bar->min_value, value, bar->max_value); - 8038616: 697b ldr r3, [r7, #20] - 8038618: 6ada ldr r2, [r3, #44] ; 0x2c - 803861a: 68bb ldr r3, [r7, #8] - 803861c: 429a cmp r2, r3 - 803861e: bfa8 it ge - 8038620: 461a movge r2, r3 - 8038622: 697b ldr r3, [r7, #20] - 8038624: 6a9b ldr r3, [r3, #40] ; 0x28 - 8038626: 4293 cmp r3, r2 - 8038628: bfb8 it lt - 803862a: 4613 movlt r3, r2 - 803862c: 60bb str r3, [r7, #8] + 8038582: 697b ldr r3, [r7, #20] + 8038584: 6ada ldr r2, [r3, #44] ; 0x2c + 8038586: 68bb ldr r3, [r7, #8] + 8038588: 429a cmp r2, r3 + 803858a: bfa8 it ge + 803858c: 461a movge r2, r3 + 803858e: 697b ldr r3, [r7, #20] + 8038590: 6a9b ldr r3, [r3, #40] ; 0x28 + 8038592: 4293 cmp r3, r2 + 8038594: bfb8 it lt + 8038596: 4613 movlt r3, r2 + 8038598: 60bb str r3, [r7, #8] value = value > bar->cur_value ? bar->cur_value : value; /*Can't be greater than the right value*/ - 803862e: 697b ldr r3, [r7, #20] - 8038630: 6a5b ldr r3, [r3, #36] ; 0x24 - 8038632: 68ba ldr r2, [r7, #8] - 8038634: 4293 cmp r3, r2 - 8038636: bfa8 it ge - 8038638: 4613 movge r3, r2 - 803863a: 60bb str r3, [r7, #8] + 803859a: 697b ldr r3, [r7, #20] + 803859c: 6a5b ldr r3, [r3, #36] ; 0x24 + 803859e: 68ba ldr r2, [r7, #8] + 80385a0: 4293 cmp r3, r2 + 80385a2: bfa8 it ge + 80385a4: 4613 movge r3, r2 + 80385a6: 60bb str r3, [r7, #8] if(bar->start_value == value) return; - 803863c: 697b ldr r3, [r7, #20] - 803863e: 6b1b ldr r3, [r3, #48] ; 0x30 - 8038640: 68ba ldr r2, [r7, #8] - 8038642: 429a cmp r2, r3 - 8038644: d00f beq.n 8038666 + 80385a8: 697b ldr r3, [r7, #20] + 80385aa: 6b1b ldr r3, [r3, #48] ; 0x30 + 80385ac: 68ba ldr r2, [r7, #8] + 80385ae: 429a cmp r2, r3 + 80385b0: d00f beq.n 80385d2 lv_bar_set_value_with_anim(obj, value, &bar->start_value, &bar->start_value_anim, anim); - 8038646: 697b ldr r3, [r7, #20] - 8038648: f103 0230 add.w r2, r3, #48 ; 0x30 - 803864c: 697b ldr r3, [r7, #20] - 803864e: f103 014c add.w r1, r3, #76 ; 0x4c - 8038652: 79fb ldrb r3, [r7, #7] - 8038654: 9300 str r3, [sp, #0] - 8038656: 460b mov r3, r1 - 8038658: 68b9 ldr r1, [r7, #8] - 803865a: 68f8 ldr r0, [r7, #12] - 803865c: f000 ff0c bl 8039478 - 8038660: e002 b.n 8038668 + 80385b2: 697b ldr r3, [r7, #20] + 80385b4: f103 0230 add.w r2, r3, #48 ; 0x30 + 80385b8: 697b ldr r3, [r7, #20] + 80385ba: f103 014c add.w r1, r3, #76 ; 0x4c + 80385be: 79fb ldrb r3, [r7, #7] + 80385c0: 9300 str r3, [sp, #0] + 80385c2: 460b mov r3, r1 + 80385c4: 68b9 ldr r1, [r7, #8] + 80385c6: 68f8 ldr r0, [r7, #12] + 80385c8: f000 ff0c bl 80393e4 + 80385cc: e002 b.n 80385d4 return; - 8038662: bf00 nop - 8038664: e000 b.n 8038668 + 80385ce: bf00 nop + 80385d0: e000 b.n 80385d4 if(bar->start_value == value) return; - 8038666: bf00 nop + 80385d2: bf00 nop } - 8038668: 3718 adds r7, #24 - 803866a: 46bd mov sp, r7 - 803866c: bd80 pop {r7, pc} + 80385d4: 3718 adds r7, #24 + 80385d6: 46bd mov sp, r7 + 80385d8: bd80 pop {r7, pc} -0803866e : +080385da : /*===================== * Getter functions *====================*/ int32_t lv_bar_get_value(const lv_obj_t * obj) { - 803866e: b480 push {r7} - 8038670: b085 sub sp, #20 - 8038672: af00 add r7, sp, #0 - 8038674: 6078 str r0, [r7, #4] + 80385da: b480 push {r7} + 80385dc: b085 sub sp, #20 + 80385de: af00 add r7, sp, #0 + 80385e0: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_bar_t * bar = (lv_bar_t *)obj; - 8038676: 687b ldr r3, [r7, #4] - 8038678: 60fb str r3, [r7, #12] + 80385e2: 687b ldr r3, [r7, #4] + 80385e4: 60fb str r3, [r7, #12] return LV_BAR_GET_ANIM_VALUE(bar->cur_value, bar->cur_value_anim); - 803867a: 68fb ldr r3, [r7, #12] - 803867c: 6c9b ldr r3, [r3, #72] ; 0x48 - 803867e: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 8038682: d002 beq.n 803868a - 8038684: 68fb ldr r3, [r7, #12] - 8038686: 6c5b ldr r3, [r3, #68] ; 0x44 - 8038688: e001 b.n 803868e - 803868a: 68fb ldr r3, [r7, #12] - 803868c: 6a5b ldr r3, [r3, #36] ; 0x24 + 80385e6: 68fb ldr r3, [r7, #12] + 80385e8: 6c9b ldr r3, [r3, #72] ; 0x48 + 80385ea: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 80385ee: d002 beq.n 80385f6 + 80385f0: 68fb ldr r3, [r7, #12] + 80385f2: 6c5b ldr r3, [r3, #68] ; 0x44 + 80385f4: e001 b.n 80385fa + 80385f6: 68fb ldr r3, [r7, #12] + 80385f8: 6a5b ldr r3, [r3, #36] ; 0x24 } - 803868e: 4618 mov r0, r3 - 8038690: 3714 adds r7, #20 - 8038692: 46bd mov sp, r7 - 8038694: bc80 pop {r7} - 8038696: 4770 bx lr + 80385fa: 4618 mov r0, r3 + 80385fc: 3714 adds r7, #20 + 80385fe: 46bd mov sp, r7 + 8038600: bc80 pop {r7} + 8038602: 4770 bx lr -08038698 : +08038604 : int32_t lv_bar_get_start_value(const lv_obj_t * obj) { - 8038698: b480 push {r7} - 803869a: b085 sub sp, #20 - 803869c: af00 add r7, sp, #0 - 803869e: 6078 str r0, [r7, #4] + 8038604: b480 push {r7} + 8038606: b085 sub sp, #20 + 8038608: af00 add r7, sp, #0 + 803860a: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_bar_t * bar = (lv_bar_t *)obj; - 80386a0: 687b ldr r3, [r7, #4] - 80386a2: 60fb str r3, [r7, #12] + 803860c: 687b ldr r3, [r7, #4] + 803860e: 60fb str r3, [r7, #12] if(bar->mode != LV_BAR_MODE_RANGE) return bar->min_value; - 80386a4: 68fb ldr r3, [r7, #12] - 80386a6: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 80386aa: f003 0303 and.w r3, r3, #3 - 80386ae: b2db uxtb r3, r3 - 80386b0: 2b02 cmp r3, #2 - 80386b2: d002 beq.n 80386ba - 80386b4: 68fb ldr r3, [r7, #12] - 80386b6: 6a9b ldr r3, [r3, #40] ; 0x28 - 80386b8: e009 b.n 80386ce + 8038610: 68fb ldr r3, [r7, #12] + 8038612: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 8038616: f003 0303 and.w r3, r3, #3 + 803861a: b2db uxtb r3, r3 + 803861c: 2b02 cmp r3, #2 + 803861e: d002 beq.n 8038626 + 8038620: 68fb ldr r3, [r7, #12] + 8038622: 6a9b ldr r3, [r3, #40] ; 0x28 + 8038624: e009 b.n 803863a return LV_BAR_GET_ANIM_VALUE(bar->start_value, bar->start_value_anim); - 80386ba: 68fb ldr r3, [r7, #12] - 80386bc: 6d9b ldr r3, [r3, #88] ; 0x58 - 80386be: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 80386c2: d002 beq.n 80386ca - 80386c4: 68fb ldr r3, [r7, #12] - 80386c6: 6d5b ldr r3, [r3, #84] ; 0x54 - 80386c8: e001 b.n 80386ce - 80386ca: 68fb ldr r3, [r7, #12] - 80386cc: 6b1b ldr r3, [r3, #48] ; 0x30 + 8038626: 68fb ldr r3, [r7, #12] + 8038628: 6d9b ldr r3, [r3, #88] ; 0x58 + 803862a: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 803862e: d002 beq.n 8038636 + 8038630: 68fb ldr r3, [r7, #12] + 8038632: 6d5b ldr r3, [r3, #84] ; 0x54 + 8038634: e001 b.n 803863a + 8038636: 68fb ldr r3, [r7, #12] + 8038638: 6b1b ldr r3, [r3, #48] ; 0x30 } - 80386ce: 4618 mov r0, r3 - 80386d0: 3714 adds r7, #20 - 80386d2: 46bd mov sp, r7 - 80386d4: bc80 pop {r7} - 80386d6: 4770 bx lr + 803863a: 4618 mov r0, r3 + 803863c: 3714 adds r7, #20 + 803863e: 46bd mov sp, r7 + 8038640: bc80 pop {r7} + 8038642: 4770 bx lr -080386d8 : +08038644 : return bar->max_value; } lv_bar_mode_t lv_bar_get_mode(lv_obj_t * obj) { - 80386d8: b480 push {r7} - 80386da: b085 sub sp, #20 - 80386dc: af00 add r7, sp, #0 - 80386de: 6078 str r0, [r7, #4] + 8038644: b480 push {r7} + 8038646: b085 sub sp, #20 + 8038648: af00 add r7, sp, #0 + 803864a: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_bar_t * bar = (lv_bar_t *)obj; - 80386e0: 687b ldr r3, [r7, #4] - 80386e2: 60fb str r3, [r7, #12] + 803864c: 687b ldr r3, [r7, #4] + 803864e: 60fb str r3, [r7, #12] return bar->mode; - 80386e4: 68fb ldr r3, [r7, #12] - 80386e6: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 80386ea: f3c3 0301 ubfx r3, r3, #0, #2 - 80386ee: b2db uxtb r3, r3 + 8038650: 68fb ldr r3, [r7, #12] + 8038652: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 8038656: f3c3 0301 ubfx r3, r3, #0, #2 + 803865a: b2db uxtb r3, r3 } - 80386f0: 4618 mov r0, r3 - 80386f2: 3714 adds r7, #20 - 80386f4: 46bd mov sp, r7 - 80386f6: bc80 pop {r7} - 80386f8: 4770 bx lr + 803865c: 4618 mov r0, r3 + 803865e: 3714 adds r7, #20 + 8038660: 46bd mov sp, r7 + 8038662: bc80 pop {r7} + 8038664: 4770 bx lr -080386fa : +08038666 : /********************** * STATIC FUNCTIONS **********************/ static void lv_bar_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 80386fa: b580 push {r7, lr} - 80386fc: b084 sub sp, #16 - 80386fe: af00 add r7, sp, #0 - 8038700: 6078 str r0, [r7, #4] - 8038702: 6039 str r1, [r7, #0] + 8038666: b580 push {r7, lr} + 8038668: b084 sub sp, #16 + 803866a: af00 add r7, sp, #0 + 803866c: 6078 str r0, [r7, #4] + 803866e: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_bar_t * bar = (lv_bar_t *)obj; - 8038704: 683b ldr r3, [r7, #0] - 8038706: 60fb str r3, [r7, #12] + 8038670: 683b ldr r3, [r7, #0] + 8038672: 60fb str r3, [r7, #12] bar->min_value = 0; - 8038708: 68fb ldr r3, [r7, #12] - 803870a: 2200 movs r2, #0 - 803870c: 629a str r2, [r3, #40] ; 0x28 + 8038674: 68fb ldr r3, [r7, #12] + 8038676: 2200 movs r2, #0 + 8038678: 629a str r2, [r3, #40] ; 0x28 bar->max_value = 100; - 803870e: 68fb ldr r3, [r7, #12] - 8038710: 2264 movs r2, #100 ; 0x64 - 8038712: 62da str r2, [r3, #44] ; 0x2c + 803867a: 68fb ldr r3, [r7, #12] + 803867c: 2264 movs r2, #100 ; 0x64 + 803867e: 62da str r2, [r3, #44] ; 0x2c bar->start_value = 0; - 8038714: 68fb ldr r3, [r7, #12] - 8038716: 2200 movs r2, #0 - 8038718: 631a str r2, [r3, #48] ; 0x30 + 8038680: 68fb ldr r3, [r7, #12] + 8038682: 2200 movs r2, #0 + 8038684: 631a str r2, [r3, #48] ; 0x30 bar->cur_value = 0; - 803871a: 68fb ldr r3, [r7, #12] - 803871c: 2200 movs r2, #0 - 803871e: 625a str r2, [r3, #36] ; 0x24 + 8038686: 68fb ldr r3, [r7, #12] + 8038688: 2200 movs r2, #0 + 803868a: 625a str r2, [r3, #36] ; 0x24 bar->indic_area.x1 = 0; - 8038720: 68fb ldr r3, [r7, #12] - 8038722: 2200 movs r2, #0 - 8038724: 869a strh r2, [r3, #52] ; 0x34 + 803868c: 68fb ldr r3, [r7, #12] + 803868e: 2200 movs r2, #0 + 8038690: 869a strh r2, [r3, #52] ; 0x34 bar->indic_area.x2 = 0; - 8038726: 68fb ldr r3, [r7, #12] - 8038728: 2200 movs r2, #0 - 803872a: 871a strh r2, [r3, #56] ; 0x38 + 8038692: 68fb ldr r3, [r7, #12] + 8038694: 2200 movs r2, #0 + 8038696: 871a strh r2, [r3, #56] ; 0x38 bar->indic_area.y1 = 0; - 803872c: 68fb ldr r3, [r7, #12] - 803872e: 2200 movs r2, #0 - 8038730: 86da strh r2, [r3, #54] ; 0x36 + 8038698: 68fb ldr r3, [r7, #12] + 803869a: 2200 movs r2, #0 + 803869c: 86da strh r2, [r3, #54] ; 0x36 bar->indic_area.y2 = 0; - 8038732: 68fb ldr r3, [r7, #12] - 8038734: 2200 movs r2, #0 - 8038736: 875a strh r2, [r3, #58] ; 0x3a + 803869e: 68fb ldr r3, [r7, #12] + 80386a0: 2200 movs r2, #0 + 80386a2: 875a strh r2, [r3, #58] ; 0x3a bar->mode = LV_BAR_MODE_NORMAL; - 8038738: 68fa ldr r2, [r7, #12] - 803873a: f892 305c ldrb.w r3, [r2, #92] ; 0x5c - 803873e: f36f 0301 bfc r3, #0, #2 - 8038742: f882 305c strb.w r3, [r2, #92] ; 0x5c + 80386a4: 68fa ldr r2, [r7, #12] + 80386a6: f892 305c ldrb.w r3, [r2, #92] ; 0x5c + 80386aa: f36f 0301 bfc r3, #0, #2 + 80386ae: f882 305c strb.w r3, [r2, #92] ; 0x5c lv_bar_init_anim(obj, &bar->cur_value_anim); - 8038746: 68fb ldr r3, [r7, #12] - 8038748: 333c adds r3, #60 ; 0x3c - 803874a: 4619 mov r1, r3 - 803874c: 6838 ldr r0, [r7, #0] - 803874e: f000 fef7 bl 8039540 + 80386b2: 68fb ldr r3, [r7, #12] + 80386b4: 333c adds r3, #60 ; 0x3c + 80386b6: 4619 mov r1, r3 + 80386b8: 6838 ldr r0, [r7, #0] + 80386ba: f000 fef7 bl 80394ac lv_bar_init_anim(obj, &bar->start_value_anim); - 8038752: 68fb ldr r3, [r7, #12] - 8038754: 334c adds r3, #76 ; 0x4c - 8038756: 4619 mov r1, r3 - 8038758: 6838 ldr r0, [r7, #0] - 803875a: f000 fef1 bl 8039540 + 80386be: 68fb ldr r3, [r7, #12] + 80386c0: 334c adds r3, #76 ; 0x4c + 80386c2: 4619 mov r1, r3 + 80386c4: 6838 ldr r0, [r7, #0] + 80386c6: f000 fef1 bl 80394ac lv_obj_clear_flag(obj, LV_OBJ_FLAG_CHECKABLE); - 803875e: 2108 movs r1, #8 - 8038760: 6838 ldr r0, [r7, #0] - 8038762: f7cd ff7d bl 8006660 + 80386ca: 2108 movs r1, #8 + 80386cc: 6838 ldr r0, [r7, #0] + 80386ce: f7cd ff91 bl 80065f4 lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); - 8038766: 2110 movs r1, #16 - 8038768: 6838 ldr r0, [r7, #0] - 803876a: f7cd ff79 bl 8006660 + 80386d2: 2110 movs r1, #16 + 80386d4: 6838 ldr r0, [r7, #0] + 80386d6: f7cd ff8d bl 80065f4 lv_bar_set_value(obj, 0, LV_ANIM_OFF); - 803876e: 2200 movs r2, #0 - 8038770: 2100 movs r1, #0 - 8038772: 6838 ldr r0, [r7, #0] - 8038774: f7ff ff04 bl 8038580 + 80386da: 2200 movs r2, #0 + 80386dc: 2100 movs r1, #0 + 80386de: 6838 ldr r0, [r7, #0] + 80386e0: f7ff ff04 bl 80384ec LV_TRACE_OBJ_CREATE("finished"); } - 8038778: bf00 nop - 803877a: 3710 adds r7, #16 - 803877c: 46bd mov sp, r7 - 803877e: bd80 pop {r7, pc} + 80386e4: bf00 nop + 80386e6: 3710 adds r7, #16 + 80386e8: 46bd mov sp, r7 + 80386ea: bd80 pop {r7, pc} -08038780 : +080386ec : static void lv_bar_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 8038780: b580 push {r7, lr} - 8038782: b084 sub sp, #16 - 8038784: af00 add r7, sp, #0 - 8038786: 6078 str r0, [r7, #4] - 8038788: 6039 str r1, [r7, #0] + 80386ec: b580 push {r7, lr} + 80386ee: b084 sub sp, #16 + 80386f0: af00 add r7, sp, #0 + 80386f2: 6078 str r0, [r7, #4] + 80386f4: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_bar_t * bar = (lv_bar_t *)obj; - 803878a: 683b ldr r3, [r7, #0] - 803878c: 60fb str r3, [r7, #12] + 80386f6: 683b ldr r3, [r7, #0] + 80386f8: 60fb str r3, [r7, #12] lv_anim_del(&bar->cur_value_anim, NULL); - 803878e: 68fb ldr r3, [r7, #12] - 8038790: 333c adds r3, #60 ; 0x3c - 8038792: 2100 movs r1, #0 - 8038794: 4618 mov r0, r3 - 8038796: f7f8 f8f9 bl 803098c + 80386fa: 68fb ldr r3, [r7, #12] + 80386fc: 333c adds r3, #60 ; 0x3c + 80386fe: 2100 movs r1, #0 + 8038700: 4618 mov r0, r3 + 8038702: f7f8 f8f9 bl 80308f8 lv_anim_del(&bar->start_value_anim, NULL); - 803879a: 68fb ldr r3, [r7, #12] - 803879c: 334c adds r3, #76 ; 0x4c - 803879e: 2100 movs r1, #0 - 80387a0: 4618 mov r0, r3 - 80387a2: f7f8 f8f3 bl 803098c + 8038706: 68fb ldr r3, [r7, #12] + 8038708: 334c adds r3, #76 ; 0x4c + 803870a: 2100 movs r1, #0 + 803870c: 4618 mov r0, r3 + 803870e: f7f8 f8f3 bl 80308f8 } - 80387a6: bf00 nop - 80387a8: 3710 adds r7, #16 - 80387aa: 46bd mov sp, r7 - 80387ac: bd80 pop {r7, pc} + 8038712: bf00 nop + 8038714: 3710 adds r7, #16 + 8038716: 46bd mov sp, r7 + 8038718: bd80 pop {r7, pc} ... -080387b0 : +0803871c : static void draw_indic(lv_event_t * e) { - 80387b0: b580 push {r7, lr} - 80387b2: b0e0 sub sp, #384 ; 0x180 - 80387b4: af00 add r7, sp, #0 - 80387b6: f507 73c0 add.w r3, r7, #384 ; 0x180 - 80387ba: f5a3 73be sub.w r3, r3, #380 ; 0x17c - 80387be: 6018 str r0, [r3, #0] + 803871c: b580 push {r7, lr} + 803871e: b0e0 sub sp, #384 ; 0x180 + 8038720: af00 add r7, sp, #0 + 8038722: f507 73c0 add.w r3, r7, #384 ; 0x180 + 8038726: f5a3 73be sub.w r3, r3, #380 ; 0x17c + 803872a: 6018 str r0, [r3, #0] lv_obj_t * obj = lv_event_get_target(e); - 80387c0: f507 73c0 add.w r3, r7, #384 ; 0x180 - 80387c4: f5a3 73be sub.w r3, r3, #380 ; 0x17c - 80387c8: 6818 ldr r0, [r3, #0] - 80387ca: f7c9 fed9 bl 8002580 - 80387ce: f8c7 0164 str.w r0, [r7, #356] ; 0x164 + 803872c: f507 73c0 add.w r3, r7, #384 ; 0x180 + 8038730: f5a3 73be sub.w r3, r3, #380 ; 0x17c + 8038734: 6818 ldr r0, [r3, #0] + 8038736: f7c9 feed bl 8002514 + 803873a: f8c7 0164 str.w r0, [r7, #356] ; 0x164 lv_bar_t * bar = (lv_bar_t *)obj; - 80387d2: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 - 80387d6: f8c7 3160 str.w r3, [r7, #352] ; 0x160 + 803873e: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 + 8038742: f8c7 3160 str.w r3, [r7, #352] ; 0x160 lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 80387da: f507 73c0 add.w r3, r7, #384 ; 0x180 - 80387de: f5a3 73be sub.w r3, r3, #380 ; 0x17c - 80387e2: 6818 ldr r0, [r3, #0] - 80387e4: f7c9 ffe2 bl 80027ac - 80387e8: f8c7 015c str.w r0, [r7, #348] ; 0x15c + 8038746: f507 73c0 add.w r3, r7, #384 ; 0x180 + 803874a: f5a3 73be sub.w r3, r3, #380 ; 0x17c + 803874e: 6818 ldr r0, [r3, #0] + 8038750: f7c9 fff6 bl 8002740 + 8038754: f8c7 015c str.w r0, [r7, #348] ; 0x15c lv_area_t bar_coords; lv_obj_get_coords(obj, &bar_coords); - 80387ec: f507 738c add.w r3, r7, #280 ; 0x118 - 80387f0: 4619 mov r1, r3 - 80387f2: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 - 80387f6: f7d1 fc09 bl 800a00c + 8038758: f507 738c add.w r3, r7, #280 ; 0x118 + 803875c: 4619 mov r1, r3 + 803875e: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 + 8038762: f7d1 fc1d bl 8009fa0 lv_coord_t transf_w = lv_obj_get_style_transform_width(obj, LV_PART_MAIN); - 80387fa: 2100 movs r1, #0 - 80387fc: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 - 8038800: f7ff fe16 bl 8038430 - 8038804: 4603 mov r3, r0 - 8038806: f8a7 315a strh.w r3, [r7, #346] ; 0x15a + 8038766: 2100 movs r1, #0 + 8038768: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 + 803876c: f7ff fe16 bl 803839c + 8038770: 4603 mov r3, r0 + 8038772: f8a7 315a strh.w r3, [r7, #346] ; 0x15a lv_coord_t transf_h = lv_obj_get_style_transform_height(obj, LV_PART_MAIN); - 803880a: 2100 movs r1, #0 - 803880c: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 - 8038810: f7ff fe21 bl 8038456 - 8038814: 4603 mov r3, r0 - 8038816: f8a7 3158 strh.w r3, [r7, #344] ; 0x158 + 8038776: 2100 movs r1, #0 + 8038778: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 + 803877c: f7ff fe21 bl 80383c2 + 8038780: 4603 mov r3, r0 + 8038782: f8a7 3158 strh.w r3, [r7, #344] ; 0x158 bar_coords.x1 -= transf_w; - 803881a: f9b7 3118 ldrsh.w r3, [r7, #280] ; 0x118 - 803881e: b29a uxth r2, r3 - 8038820: f8b7 315a ldrh.w r3, [r7, #346] ; 0x15a - 8038824: 1ad3 subs r3, r2, r3 - 8038826: b29b uxth r3, r3 - 8038828: b21b sxth r3, r3 - 803882a: f8a7 3118 strh.w r3, [r7, #280] ; 0x118 + 8038786: f9b7 3118 ldrsh.w r3, [r7, #280] ; 0x118 + 803878a: b29a uxth r2, r3 + 803878c: f8b7 315a ldrh.w r3, [r7, #346] ; 0x15a + 8038790: 1ad3 subs r3, r2, r3 + 8038792: b29b uxth r3, r3 + 8038794: b21b sxth r3, r3 + 8038796: f8a7 3118 strh.w r3, [r7, #280] ; 0x118 bar_coords.x2 += transf_w; - 803882e: f9b7 311c ldrsh.w r3, [r7, #284] ; 0x11c - 8038832: b29a uxth r2, r3 - 8038834: f8b7 315a ldrh.w r3, [r7, #346] ; 0x15a - 8038838: 4413 add r3, r2 - 803883a: b29b uxth r3, r3 - 803883c: b21b sxth r3, r3 - 803883e: f8a7 311c strh.w r3, [r7, #284] ; 0x11c + 803879a: f9b7 311c ldrsh.w r3, [r7, #284] ; 0x11c + 803879e: b29a uxth r2, r3 + 80387a0: f8b7 315a ldrh.w r3, [r7, #346] ; 0x15a + 80387a4: 4413 add r3, r2 + 80387a6: b29b uxth r3, r3 + 80387a8: b21b sxth r3, r3 + 80387aa: f8a7 311c strh.w r3, [r7, #284] ; 0x11c bar_coords.y1 -= transf_h; - 8038842: f9b7 311a ldrsh.w r3, [r7, #282] ; 0x11a - 8038846: b29a uxth r2, r3 - 8038848: f8b7 3158 ldrh.w r3, [r7, #344] ; 0x158 - 803884c: 1ad3 subs r3, r2, r3 - 803884e: b29b uxth r3, r3 - 8038850: b21b sxth r3, r3 - 8038852: f8a7 311a strh.w r3, [r7, #282] ; 0x11a + 80387ae: f9b7 311a ldrsh.w r3, [r7, #282] ; 0x11a + 80387b2: b29a uxth r2, r3 + 80387b4: f8b7 3158 ldrh.w r3, [r7, #344] ; 0x158 + 80387b8: 1ad3 subs r3, r2, r3 + 80387ba: b29b uxth r3, r3 + 80387bc: b21b sxth r3, r3 + 80387be: f8a7 311a strh.w r3, [r7, #282] ; 0x11a bar_coords.y2 += transf_h; - 8038856: f9b7 311e ldrsh.w r3, [r7, #286] ; 0x11e - 803885a: b29a uxth r2, r3 - 803885c: f8b7 3158 ldrh.w r3, [r7, #344] ; 0x158 - 8038860: 4413 add r3, r2 - 8038862: b29b uxth r3, r3 - 8038864: b21b sxth r3, r3 - 8038866: f8a7 311e strh.w r3, [r7, #286] ; 0x11e + 80387c2: f9b7 311e ldrsh.w r3, [r7, #286] ; 0x11e + 80387c6: b29a uxth r2, r3 + 80387c8: f8b7 3158 ldrh.w r3, [r7, #344] ; 0x158 + 80387cc: 4413 add r3, r2 + 80387ce: b29b uxth r3, r3 + 80387d0: b21b sxth r3, r3 + 80387d2: f8a7 311e strh.w r3, [r7, #286] ; 0x11e lv_coord_t barw = lv_area_get_width(&bar_coords); - 803886a: f507 738c add.w r3, r7, #280 ; 0x118 - 803886e: 4618 mov r0, r3 - 8038870: f7ff fd6a bl 8038348 - 8038874: 4603 mov r3, r0 - 8038876: f8a7 3156 strh.w r3, [r7, #342] ; 0x156 + 80387d6: f507 738c add.w r3, r7, #280 ; 0x118 + 80387da: 4618 mov r0, r3 + 80387dc: f7ff fd6a bl 80382b4 + 80387e0: 4603 mov r3, r0 + 80387e2: f8a7 3156 strh.w r3, [r7, #342] ; 0x156 lv_coord_t barh = lv_area_get_height(&bar_coords); - 803887a: f507 738c add.w r3, r7, #280 ; 0x118 - 803887e: 4618 mov r0, r3 - 8038880: f7ff fd78 bl 8038374 - 8038884: 4603 mov r3, r0 - 8038886: f8a7 3154 strh.w r3, [r7, #340] ; 0x154 + 80387e6: f507 738c add.w r3, r7, #280 ; 0x118 + 80387ea: 4618 mov r0, r3 + 80387ec: f7ff fd78 bl 80382e0 + 80387f0: 4603 mov r3, r0 + 80387f2: f8a7 3154 strh.w r3, [r7, #340] ; 0x154 int32_t range = bar->max_value - bar->min_value; - 803888a: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 803888e: 6ada ldr r2, [r3, #44] ; 0x2c - 8038890: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038894: 6a9b ldr r3, [r3, #40] ; 0x28 - 8038896: 1ad3 subs r3, r2, r3 - 8038898: f8c7 3150 str.w r3, [r7, #336] ; 0x150 + 80387f6: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 80387fa: 6ada ldr r2, [r3, #44] ; 0x2c + 80387fc: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038800: 6a9b ldr r3, [r3, #40] ; 0x28 + 8038802: 1ad3 subs r3, r2, r3 + 8038804: f8c7 3150 str.w r3, [r7, #336] ; 0x150 bool hor = barw >= barh ? true : false; - 803889c: f9b7 2156 ldrsh.w r2, [r7, #342] ; 0x156 - 80388a0: f9b7 3154 ldrsh.w r3, [r7, #340] ; 0x154 - 80388a4: 429a cmp r2, r3 - 80388a6: bfac ite ge - 80388a8: 2301 movge r3, #1 - 80388aa: 2300 movlt r3, #0 - 80388ac: f887 314f strb.w r3, [r7, #335] ; 0x14f + 8038808: f9b7 2156 ldrsh.w r2, [r7, #342] ; 0x156 + 803880c: f9b7 3154 ldrsh.w r3, [r7, #340] ; 0x154 + 8038810: 429a cmp r2, r3 + 8038812: bfac ite ge + 8038814: 2301 movge r3, #1 + 8038816: 2300 movlt r3, #0 + 8038818: f887 314f strb.w r3, [r7, #335] ; 0x14f bool sym = false; - 80388b0: 2300 movs r3, #0 - 80388b2: f887 317f strb.w r3, [r7, #383] ; 0x17f + 803881c: 2300 movs r3, #0 + 803881e: f887 317f strb.w r3, [r7, #383] ; 0x17f if(bar->mode == LV_BAR_MODE_SYMMETRICAL && bar->min_value < 0 && bar->max_value > 0 && - 80388b6: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 80388ba: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 80388be: f003 0303 and.w r3, r3, #3 - 80388c2: b2db uxtb r3, r3 - 80388c4: 2b01 cmp r3, #1 - 80388c6: d114 bne.n 80388f2 - 80388c8: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 80388cc: 6a9b ldr r3, [r3, #40] ; 0x28 - 80388ce: 2b00 cmp r3, #0 - 80388d0: da0f bge.n 80388f2 - 80388d2: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 80388d6: 6adb ldr r3, [r3, #44] ; 0x2c - 80388d8: 2b00 cmp r3, #0 - 80388da: dd0a ble.n 80388f2 + 8038822: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038826: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 803882a: f003 0303 and.w r3, r3, #3 + 803882e: b2db uxtb r3, r3 + 8038830: 2b01 cmp r3, #1 + 8038832: d114 bne.n 803885e + 8038834: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038838: 6a9b ldr r3, [r3, #40] ; 0x28 + 803883a: 2b00 cmp r3, #0 + 803883c: da0f bge.n 803885e + 803883e: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038842: 6adb ldr r3, [r3, #44] ; 0x2c + 8038844: 2b00 cmp r3, #0 + 8038846: dd0a ble.n 803885e bar->start_value == bar->min_value) sym = true; - 80388dc: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 80388e0: 6b1a ldr r2, [r3, #48] ; 0x30 - 80388e2: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 80388e6: 6a9b ldr r3, [r3, #40] ; 0x28 + 8038848: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 803884c: 6b1a ldr r2, [r3, #48] ; 0x30 + 803884e: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038852: 6a9b ldr r3, [r3, #40] ; 0x28 if(bar->mode == LV_BAR_MODE_SYMMETRICAL && bar->min_value < 0 && bar->max_value > 0 && - 80388e8: 429a cmp r2, r3 - 80388ea: d102 bne.n 80388f2 + 8038854: 429a cmp r2, r3 + 8038856: d102 bne.n 803885e bar->start_value == bar->min_value) sym = true; - 80388ec: 2301 movs r3, #1 - 80388ee: f887 317f strb.w r3, [r7, #383] ; 0x17f + 8038858: 2301 movs r3, #1 + 803885a: f887 317f strb.w r3, [r7, #383] ; 0x17f /*Calculate the indicator area*/ lv_coord_t bg_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 80388f2: 2100 movs r1, #0 - 80388f4: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 - 80388f8: f7ff fde6 bl 80384c8 - 80388fc: 4603 mov r3, r0 - 80388fe: f8a7 314c strh.w r3, [r7, #332] ; 0x14c + 803885e: 2100 movs r1, #0 + 8038860: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 + 8038864: f7ff fde6 bl 8038434 + 8038868: 4603 mov r3, r0 + 803886a: f8a7 314c strh.w r3, [r7, #332] ; 0x14c lv_coord_t bg_right = lv_obj_get_style_pad_right(obj, LV_PART_MAIN); - 8038902: 2100 movs r1, #0 - 8038904: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 - 8038908: f7ff fdf1 bl 80384ee - 803890c: 4603 mov r3, r0 - 803890e: f8a7 314a strh.w r3, [r7, #330] ; 0x14a + 803886e: 2100 movs r1, #0 + 8038870: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 + 8038874: f7ff fdf1 bl 803845a + 8038878: 4603 mov r3, r0 + 803887a: f8a7 314a strh.w r3, [r7, #330] ; 0x14a lv_coord_t bg_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 8038912: 2100 movs r1, #0 - 8038914: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 - 8038918: f7ff fdb0 bl 803847c - 803891c: 4603 mov r3, r0 - 803891e: f8a7 3148 strh.w r3, [r7, #328] ; 0x148 + 803887e: 2100 movs r1, #0 + 8038880: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 + 8038884: f7ff fdb0 bl 80383e8 + 8038888: 4603 mov r3, r0 + 803888a: f8a7 3148 strh.w r3, [r7, #328] ; 0x148 lv_coord_t bg_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN); - 8038922: 2100 movs r1, #0 - 8038924: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 - 8038928: f7ff fdbb bl 80384a2 - 803892c: 4603 mov r3, r0 - 803892e: f8a7 3146 strh.w r3, [r7, #326] ; 0x146 + 803888e: 2100 movs r1, #0 + 8038890: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 + 8038894: f7ff fdbb bl 803840e + 8038898: 4603 mov r3, r0 + 803889a: f8a7 3146 strh.w r3, [r7, #326] ; 0x146 /*Respect padding and minimum width/height too*/ lv_area_copy(&bar->indic_area, &bar_coords); - 8038932: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038936: 3334 adds r3, #52 ; 0x34 - 8038938: f507 728c add.w r2, r7, #280 ; 0x118 - 803893c: 4611 mov r1, r2 - 803893e: 4618 mov r0, r3 - 8038940: f7ff fce4 bl 803830c + 803889e: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 80388a2: 3334 adds r3, #52 ; 0x34 + 80388a4: f507 728c add.w r2, r7, #280 ; 0x118 + 80388a8: 4611 mov r1, r2 + 80388aa: 4618 mov r0, r3 + 80388ac: f7ff fce4 bl 8038278 bar->indic_area.x1 += bg_left; - 8038944: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038948: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 - 803894c: b29a uxth r2, r3 - 803894e: f8b7 314c ldrh.w r3, [r7, #332] ; 0x14c - 8038952: 4413 add r3, r2 - 8038954: b29b uxth r3, r3 - 8038956: b21a sxth r2, r3 - 8038958: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 803895c: 869a strh r2, [r3, #52] ; 0x34 + 80388b0: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 80388b4: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 + 80388b8: b29a uxth r2, r3 + 80388ba: f8b7 314c ldrh.w r3, [r7, #332] ; 0x14c + 80388be: 4413 add r3, r2 + 80388c0: b29b uxth r3, r3 + 80388c2: b21a sxth r2, r3 + 80388c4: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 80388c8: 869a strh r2, [r3, #52] ; 0x34 bar->indic_area.x2 -= bg_right; - 803895e: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038962: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 - 8038966: b29a uxth r2, r3 - 8038968: f8b7 314a ldrh.w r3, [r7, #330] ; 0x14a - 803896c: 1ad3 subs r3, r2, r3 - 803896e: b29b uxth r3, r3 - 8038970: b21a sxth r2, r3 - 8038972: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038976: 871a strh r2, [r3, #56] ; 0x38 + 80388ca: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 80388ce: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 + 80388d2: b29a uxth r2, r3 + 80388d4: f8b7 314a ldrh.w r3, [r7, #330] ; 0x14a + 80388d8: 1ad3 subs r3, r2, r3 + 80388da: b29b uxth r3, r3 + 80388dc: b21a sxth r2, r3 + 80388de: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 80388e2: 871a strh r2, [r3, #56] ; 0x38 bar->indic_area.y1 += bg_top; - 8038978: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 803897c: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 - 8038980: b29a uxth r2, r3 - 8038982: f8b7 3148 ldrh.w r3, [r7, #328] ; 0x148 - 8038986: 4413 add r3, r2 - 8038988: b29b uxth r3, r3 - 803898a: b21a sxth r2, r3 - 803898c: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038990: 86da strh r2, [r3, #54] ; 0x36 + 80388e4: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 80388e8: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 + 80388ec: b29a uxth r2, r3 + 80388ee: f8b7 3148 ldrh.w r3, [r7, #328] ; 0x148 + 80388f2: 4413 add r3, r2 + 80388f4: b29b uxth r3, r3 + 80388f6: b21a sxth r2, r3 + 80388f8: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 80388fc: 86da strh r2, [r3, #54] ; 0x36 bar->indic_area.y2 -= bg_bottom; - 8038992: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038996: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a - 803899a: b29a uxth r2, r3 - 803899c: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 - 80389a0: 1ad3 subs r3, r2, r3 - 80389a2: b29b uxth r3, r3 - 80389a4: b21a sxth r2, r3 - 80389a6: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 80389aa: 875a strh r2, [r3, #58] ; 0x3a + 80388fe: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038902: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a + 8038906: b29a uxth r2, r3 + 8038908: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 + 803890c: 1ad3 subs r3, r2, r3 + 803890e: b29b uxth r3, r3 + 8038910: b21a sxth r2, r3 + 8038912: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038916: 875a strh r2, [r3, #58] ; 0x3a if(hor && lv_area_get_height(&bar->indic_area) < LV_BAR_SIZE_MIN) { - 80389ac: f897 314f ldrb.w r3, [r7, #335] ; 0x14f - 80389b0: 2b00 cmp r3, #0 - 80389b2: d028 beq.n 8038a06 - 80389b4: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 80389b8: 3334 adds r3, #52 ; 0x34 - 80389ba: 4618 mov r0, r3 - 80389bc: f7ff fcda bl 8038374 - 80389c0: 4603 mov r3, r0 - 80389c2: 2b03 cmp r3, #3 - 80389c4: dc1f bgt.n 8038a06 + 8038918: f897 314f ldrb.w r3, [r7, #335] ; 0x14f + 803891c: 2b00 cmp r3, #0 + 803891e: d028 beq.n 8038972 + 8038920: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038924: 3334 adds r3, #52 ; 0x34 + 8038926: 4618 mov r0, r3 + 8038928: f7ff fcda bl 80382e0 + 803892c: 4603 mov r3, r0 + 803892e: 2b03 cmp r3, #3 + 8038930: dc1f bgt.n 8038972 bar->indic_area.y1 = obj->coords.y1 + (barh / 2) - (LV_BAR_SIZE_MIN / 2); - 80389c6: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 - 80389ca: f9b3 3016 ldrsh.w r3, [r3, #22] - 80389ce: b29a uxth r2, r3 - 80389d0: f9b7 3154 ldrsh.w r3, [r7, #340] ; 0x154 - 80389d4: 0fd9 lsrs r1, r3, #31 - 80389d6: 440b add r3, r1 - 80389d8: 105b asrs r3, r3, #1 - 80389da: b21b sxth r3, r3 - 80389dc: b29b uxth r3, r3 - 80389de: 4413 add r3, r2 - 80389e0: b29b uxth r3, r3 - 80389e2: 3b02 subs r3, #2 - 80389e4: b29b uxth r3, r3 - 80389e6: b21a sxth r2, r3 - 80389e8: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 80389ec: 86da strh r2, [r3, #54] ; 0x36 + 8038932: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 + 8038936: f9b3 3016 ldrsh.w r3, [r3, #22] + 803893a: b29a uxth r2, r3 + 803893c: f9b7 3154 ldrsh.w r3, [r7, #340] ; 0x154 + 8038940: 0fd9 lsrs r1, r3, #31 + 8038942: 440b add r3, r1 + 8038944: 105b asrs r3, r3, #1 + 8038946: b21b sxth r3, r3 + 8038948: b29b uxth r3, r3 + 803894a: 4413 add r3, r2 + 803894c: b29b uxth r3, r3 + 803894e: 3b02 subs r3, #2 + 8038950: b29b uxth r3, r3 + 8038952: b21a sxth r2, r3 + 8038954: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038958: 86da strh r2, [r3, #54] ; 0x36 bar->indic_area.y2 = bar->indic_area.y1 + LV_BAR_SIZE_MIN; - 80389ee: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 80389f2: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 - 80389f6: b29b uxth r3, r3 - 80389f8: 3304 adds r3, #4 - 80389fa: b29b uxth r3, r3 - 80389fc: b21a sxth r2, r3 - 80389fe: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038a02: 875a strh r2, [r3, #58] ; 0x3a - 8038a04: e02e b.n 8038a64 + 803895a: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 803895e: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 + 8038962: b29b uxth r3, r3 + 8038964: 3304 adds r3, #4 + 8038966: b29b uxth r3, r3 + 8038968: b21a sxth r2, r3 + 803896a: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 803896e: 875a strh r2, [r3, #58] ; 0x3a + 8038970: e02e b.n 80389d0 } else if(!hor && lv_area_get_width(&bar->indic_area) < LV_BAR_SIZE_MIN) { - 8038a06: f897 314f ldrb.w r3, [r7, #335] ; 0x14f - 8038a0a: f083 0301 eor.w r3, r3, #1 - 8038a0e: b2db uxtb r3, r3 - 8038a10: 2b00 cmp r3, #0 - 8038a12: d027 beq.n 8038a64 - 8038a14: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038a18: 3334 adds r3, #52 ; 0x34 - 8038a1a: 4618 mov r0, r3 - 8038a1c: f7ff fc94 bl 8038348 - 8038a20: 4603 mov r3, r0 - 8038a22: 2b03 cmp r3, #3 - 8038a24: dc1e bgt.n 8038a64 + 8038972: f897 314f ldrb.w r3, [r7, #335] ; 0x14f + 8038976: f083 0301 eor.w r3, r3, #1 + 803897a: b2db uxtb r3, r3 + 803897c: 2b00 cmp r3, #0 + 803897e: d027 beq.n 80389d0 + 8038980: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038984: 3334 adds r3, #52 ; 0x34 + 8038986: 4618 mov r0, r3 + 8038988: f7ff fc94 bl 80382b4 + 803898c: 4603 mov r3, r0 + 803898e: 2b03 cmp r3, #3 + 8038990: dc1e bgt.n 80389d0 bar->indic_area.x1 = obj->coords.x1 + (barw / 2) - (LV_BAR_SIZE_MIN / 2); - 8038a26: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 - 8038a2a: f9b3 3014 ldrsh.w r3, [r3, #20] - 8038a2e: b29a uxth r2, r3 - 8038a30: f9b7 3156 ldrsh.w r3, [r7, #342] ; 0x156 - 8038a34: 0fd9 lsrs r1, r3, #31 - 8038a36: 440b add r3, r1 - 8038a38: 105b asrs r3, r3, #1 - 8038a3a: b21b sxth r3, r3 - 8038a3c: b29b uxth r3, r3 - 8038a3e: 4413 add r3, r2 - 8038a40: b29b uxth r3, r3 - 8038a42: 3b02 subs r3, #2 - 8038a44: b29b uxth r3, r3 - 8038a46: b21a sxth r2, r3 - 8038a48: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038a4c: 869a strh r2, [r3, #52] ; 0x34 + 8038992: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 + 8038996: f9b3 3014 ldrsh.w r3, [r3, #20] + 803899a: b29a uxth r2, r3 + 803899c: f9b7 3156 ldrsh.w r3, [r7, #342] ; 0x156 + 80389a0: 0fd9 lsrs r1, r3, #31 + 80389a2: 440b add r3, r1 + 80389a4: 105b asrs r3, r3, #1 + 80389a6: b21b sxth r3, r3 + 80389a8: b29b uxth r3, r3 + 80389aa: 4413 add r3, r2 + 80389ac: b29b uxth r3, r3 + 80389ae: 3b02 subs r3, #2 + 80389b0: b29b uxth r3, r3 + 80389b2: b21a sxth r2, r3 + 80389b4: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 80389b8: 869a strh r2, [r3, #52] ; 0x34 bar->indic_area.x2 = bar->indic_area.x1 + LV_BAR_SIZE_MIN; - 8038a4e: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038a52: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 - 8038a56: b29b uxth r3, r3 - 8038a58: 3304 adds r3, #4 - 8038a5a: b29b uxth r3, r3 - 8038a5c: b21a sxth r2, r3 - 8038a5e: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038a62: 871a strh r2, [r3, #56] ; 0x38 + 80389ba: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 80389be: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 + 80389c2: b29b uxth r3, r3 + 80389c4: 3304 adds r3, #4 + 80389c6: b29b uxth r3, r3 + 80389c8: b21a sxth r2, r3 + 80389ca: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 80389ce: 871a strh r2, [r3, #56] ; 0x38 } lv_coord_t indicw = lv_area_get_width(&bar->indic_area); - 8038a64: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038a68: 3334 adds r3, #52 ; 0x34 - 8038a6a: 4618 mov r0, r3 - 8038a6c: f7ff fc6c bl 8038348 - 8038a70: 4603 mov r3, r0 - 8038a72: f8a7 3144 strh.w r3, [r7, #324] ; 0x144 + 80389d0: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 80389d4: 3334 adds r3, #52 ; 0x34 + 80389d6: 4618 mov r0, r3 + 80389d8: f7ff fc6c bl 80382b4 + 80389dc: 4603 mov r3, r0 + 80389de: f8a7 3144 strh.w r3, [r7, #324] ; 0x144 lv_coord_t indich = lv_area_get_height(&bar->indic_area); - 8038a76: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038a7a: 3334 adds r3, #52 ; 0x34 - 8038a7c: 4618 mov r0, r3 - 8038a7e: f7ff fc79 bl 8038374 - 8038a82: 4603 mov r3, r0 - 8038a84: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 + 80389e2: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 80389e6: 3334 adds r3, #52 ; 0x34 + 80389e8: 4618 mov r0, r3 + 80389ea: f7ff fc79 bl 80382e0 + 80389ee: 4603 mov r3, r0 + 80389f0: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 /*Calculate the indicator length*/ lv_coord_t anim_length = hor ? indicw : indich; - 8038a88: f897 314f ldrb.w r3, [r7, #335] ; 0x14f - 8038a8c: 2b00 cmp r3, #0 - 8038a8e: d002 beq.n 8038a96 - 8038a90: f9b7 3144 ldrsh.w r3, [r7, #324] ; 0x144 - 8038a94: e001 b.n 8038a9a - 8038a96: f9b7 3142 ldrsh.w r3, [r7, #322] ; 0x142 - 8038a9a: f8a7 3140 strh.w r3, [r7, #320] ; 0x140 + 80389f4: f897 314f ldrb.w r3, [r7, #335] ; 0x14f + 80389f8: 2b00 cmp r3, #0 + 80389fa: d002 beq.n 8038a02 + 80389fc: f9b7 3144 ldrsh.w r3, [r7, #324] ; 0x144 + 8038a00: e001 b.n 8038a06 + 8038a02: f9b7 3142 ldrsh.w r3, [r7, #322] ; 0x142 + 8038a06: f8a7 3140 strh.w r3, [r7, #320] ; 0x140 lv_coord_t anim_cur_value_x, anim_start_value_x; lv_coord_t * axis1, * axis2; lv_coord_t (*indic_length_calc)(const lv_area_t * area); if(hor) { - 8038a9e: f897 314f ldrb.w r3, [r7, #335] ; 0x14f - 8038aa2: 2b00 cmp r3, #0 - 8038aa4: d00d beq.n 8038ac2 + 8038a0a: f897 314f ldrb.w r3, [r7, #335] ; 0x14f + 8038a0e: 2b00 cmp r3, #0 + 8038a10: d00d beq.n 8038a2e axis1 = &bar->indic_area.x1; - 8038aa6: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038aaa: 3334 adds r3, #52 ; 0x34 - 8038aac: f8c7 3174 str.w r3, [r7, #372] ; 0x174 + 8038a12: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038a16: 3334 adds r3, #52 ; 0x34 + 8038a18: f8c7 3174 str.w r3, [r7, #372] ; 0x174 axis2 = &bar->indic_area.x2; - 8038ab0: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038ab4: 3338 adds r3, #56 ; 0x38 - 8038ab6: f8c7 3170 str.w r3, [r7, #368] ; 0x170 + 8038a1c: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038a20: 3338 adds r3, #56 ; 0x38 + 8038a22: f8c7 3170 str.w r3, [r7, #368] ; 0x170 indic_length_calc = lv_area_get_width; - 8038aba: 4bb6 ldr r3, [pc, #728] ; (8038d94 ) - 8038abc: f8c7 316c str.w r3, [r7, #364] ; 0x16c - 8038ac0: e00c b.n 8038adc + 8038a26: 4bb6 ldr r3, [pc, #728] ; (8038d00 ) + 8038a28: f8c7 316c str.w r3, [r7, #364] ; 0x16c + 8038a2c: e00c b.n 8038a48 } else { axis1 = &bar->indic_area.y1; - 8038ac2: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038ac6: 3336 adds r3, #54 ; 0x36 - 8038ac8: f8c7 3174 str.w r3, [r7, #372] ; 0x174 + 8038a2e: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038a32: 3336 adds r3, #54 ; 0x36 + 8038a34: f8c7 3174 str.w r3, [r7, #372] ; 0x174 axis2 = &bar->indic_area.y2; - 8038acc: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038ad0: 333a adds r3, #58 ; 0x3a - 8038ad2: f8c7 3170 str.w r3, [r7, #368] ; 0x170 + 8038a38: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038a3c: 333a adds r3, #58 ; 0x3a + 8038a3e: f8c7 3170 str.w r3, [r7, #368] ; 0x170 indic_length_calc = lv_area_get_height; - 8038ad6: 4bb0 ldr r3, [pc, #704] ; (8038d98 ) - 8038ad8: f8c7 316c str.w r3, [r7, #364] ; 0x16c + 8038a42: 4bb0 ldr r3, [pc, #704] ; (8038d04 ) + 8038a44: f8c7 316c str.w r3, [r7, #364] ; 0x16c } if(LV_BAR_IS_ANIMATING(bar->start_value_anim)) { - 8038adc: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038ae0: 6d9b ldr r3, [r3, #88] ; 0x58 - 8038ae2: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 8038ae6: d03a beq.n 8038b5e + 8038a48: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038a4c: 6d9b ldr r3, [r3, #88] ; 0x58 + 8038a4e: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 8038a52: d03a beq.n 8038aca lv_coord_t anim_start_value_start_x = (int32_t)((int32_t)anim_length * (bar->start_value_anim.anim_start - bar->min_value)) / range; - 8038ae8: f9b7 3140 ldrsh.w r3, [r7, #320] ; 0x140 - 8038aec: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 - 8038af0: 6d11 ldr r1, [r2, #80] ; 0x50 - 8038af2: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 - 8038af6: 6a92 ldr r2, [r2, #40] ; 0x28 - 8038af8: 1a8a subs r2, r1, r2 - 8038afa: fb03 f202 mul.w r2, r3, r2 - 8038afe: f8d7 3150 ldr.w r3, [r7, #336] ; 0x150 - 8038b02: fb92 f3f3 sdiv r3, r2, r3 + 8038a54: f9b7 3140 ldrsh.w r3, [r7, #320] ; 0x140 + 8038a58: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 + 8038a5c: 6d11 ldr r1, [r2, #80] ; 0x50 + 8038a5e: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 + 8038a62: 6a92 ldr r2, [r2, #40] ; 0x28 + 8038a64: 1a8a subs r2, r1, r2 + 8038a66: fb03 f202 mul.w r2, r3, r2 + 8038a6a: f8d7 3150 ldr.w r3, [r7, #336] ; 0x150 + 8038a6e: fb92 f3f3 sdiv r3, r2, r3 lv_coord_t anim_start_value_start_x = - 8038b06: f8a7 313e strh.w r3, [r7, #318] ; 0x13e + 8038a72: f8a7 313e strh.w r3, [r7, #318] ; 0x13e lv_coord_t anim_start_value_end_x = (int32_t)((int32_t)anim_length * (bar->start_value_anim.anim_end - bar->min_value)) / range; - 8038b0a: f9b7 3140 ldrsh.w r3, [r7, #320] ; 0x140 - 8038b0e: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 - 8038b12: 6d51 ldr r1, [r2, #84] ; 0x54 - 8038b14: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 - 8038b18: 6a92 ldr r2, [r2, #40] ; 0x28 - 8038b1a: 1a8a subs r2, r1, r2 - 8038b1c: fb03 f202 mul.w r2, r3, r2 - 8038b20: f8d7 3150 ldr.w r3, [r7, #336] ; 0x150 - 8038b24: fb92 f3f3 sdiv r3, r2, r3 + 8038a76: f9b7 3140 ldrsh.w r3, [r7, #320] ; 0x140 + 8038a7a: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 + 8038a7e: 6d51 ldr r1, [r2, #84] ; 0x54 + 8038a80: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 + 8038a84: 6a92 ldr r2, [r2, #40] ; 0x28 + 8038a86: 1a8a subs r2, r1, r2 + 8038a88: fb03 f202 mul.w r2, r3, r2 + 8038a8c: f8d7 3150 ldr.w r3, [r7, #336] ; 0x150 + 8038a90: fb92 f3f3 sdiv r3, r2, r3 lv_coord_t anim_start_value_end_x = - 8038b28: f8a7 313c strh.w r3, [r7, #316] ; 0x13c + 8038a94: f8a7 313c strh.w r3, [r7, #316] ; 0x13c anim_start_value_x = (((anim_start_value_end_x - anim_start_value_start_x) * bar->start_value_anim.anim_state) / - 8038b2c: f9b7 213c ldrsh.w r2, [r7, #316] ; 0x13c - 8038b30: f9b7 313e ldrsh.w r3, [r7, #318] ; 0x13e - 8038b34: 1ad3 subs r3, r2, r3 - 8038b36: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 - 8038b3a: 6d92 ldr r2, [r2, #88] ; 0x58 - 8038b3c: fb02 f303 mul.w r3, r2, r3 - 8038b40: 2b00 cmp r3, #0 - 8038b42: da00 bge.n 8038b46 - 8038b44: 33ff adds r3, #255 ; 0xff - 8038b46: 121b asrs r3, r3, #8 - 8038b48: f8a7 317a strh.w r3, [r7, #378] ; 0x17a + 8038a98: f9b7 213c ldrsh.w r2, [r7, #316] ; 0x13c + 8038a9c: f9b7 313e ldrsh.w r3, [r7, #318] ; 0x13e + 8038aa0: 1ad3 subs r3, r2, r3 + 8038aa2: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 + 8038aa6: 6d92 ldr r2, [r2, #88] ; 0x58 + 8038aa8: fb02 f303 mul.w r3, r2, r3 + 8038aac: 2b00 cmp r3, #0 + 8038aae: da00 bge.n 8038ab2 + 8038ab0: 33ff adds r3, #255 ; 0xff + 8038ab2: 121b asrs r3, r3, #8 + 8038ab4: f8a7 317a strh.w r3, [r7, #378] ; 0x17a LV_BAR_ANIM_STATE_END); anim_start_value_x += anim_start_value_start_x; - 8038b4c: f8b7 217a ldrh.w r2, [r7, #378] ; 0x17a - 8038b50: f8b7 313e ldrh.w r3, [r7, #318] ; 0x13e - 8038b54: 4413 add r3, r2 - 8038b56: b29b uxth r3, r3 - 8038b58: f8a7 317a strh.w r3, [r7, #378] ; 0x17a - 8038b5c: e010 b.n 8038b80 + 8038ab8: f8b7 217a ldrh.w r2, [r7, #378] ; 0x17a + 8038abc: f8b7 313e ldrh.w r3, [r7, #318] ; 0x13e + 8038ac0: 4413 add r3, r2 + 8038ac2: b29b uxth r3, r3 + 8038ac4: f8a7 317a strh.w r3, [r7, #378] ; 0x17a + 8038ac8: e010 b.n 8038aec } else { anim_start_value_x = (int32_t)((int32_t)anim_length * (bar->start_value - bar->min_value)) / range; - 8038b5e: f9b7 3140 ldrsh.w r3, [r7, #320] ; 0x140 - 8038b62: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 - 8038b66: 6b11 ldr r1, [r2, #48] ; 0x30 - 8038b68: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 - 8038b6c: 6a92 ldr r2, [r2, #40] ; 0x28 - 8038b6e: 1a8a subs r2, r1, r2 - 8038b70: fb03 f202 mul.w r2, r3, r2 - 8038b74: f8d7 3150 ldr.w r3, [r7, #336] ; 0x150 - 8038b78: fb92 f3f3 sdiv r3, r2, r3 - 8038b7c: f8a7 317a strh.w r3, [r7, #378] ; 0x17a + 8038aca: f9b7 3140 ldrsh.w r3, [r7, #320] ; 0x140 + 8038ace: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 + 8038ad2: 6b11 ldr r1, [r2, #48] ; 0x30 + 8038ad4: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 + 8038ad8: 6a92 ldr r2, [r2, #40] ; 0x28 + 8038ada: 1a8a subs r2, r1, r2 + 8038adc: fb03 f202 mul.w r2, r3, r2 + 8038ae0: f8d7 3150 ldr.w r3, [r7, #336] ; 0x150 + 8038ae4: fb92 f3f3 sdiv r3, r2, r3 + 8038ae8: f8a7 317a strh.w r3, [r7, #378] ; 0x17a } if(LV_BAR_IS_ANIMATING(bar->cur_value_anim)) { - 8038b80: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038b84: 6c9b ldr r3, [r3, #72] ; 0x48 - 8038b86: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 8038b8a: d037 beq.n 8038bfc + 8038aec: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038af0: 6c9b ldr r3, [r3, #72] ; 0x48 + 8038af2: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 8038af6: d037 beq.n 8038b68 lv_coord_t anim_cur_value_start_x = (int32_t)((int32_t)anim_length * (bar->cur_value_anim.anim_start - bar->min_value)) / range; - 8038b8c: f9b7 3140 ldrsh.w r3, [r7, #320] ; 0x140 - 8038b90: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 - 8038b94: 6c11 ldr r1, [r2, #64] ; 0x40 - 8038b96: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 - 8038b9a: 6a92 ldr r2, [r2, #40] ; 0x28 - 8038b9c: 1a8a subs r2, r1, r2 - 8038b9e: fb03 f202 mul.w r2, r3, r2 - 8038ba2: f8d7 3150 ldr.w r3, [r7, #336] ; 0x150 - 8038ba6: fb92 f3f3 sdiv r3, r2, r3 + 8038af8: f9b7 3140 ldrsh.w r3, [r7, #320] ; 0x140 + 8038afc: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 + 8038b00: 6c11 ldr r1, [r2, #64] ; 0x40 + 8038b02: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 + 8038b06: 6a92 ldr r2, [r2, #40] ; 0x28 + 8038b08: 1a8a subs r2, r1, r2 + 8038b0a: fb03 f202 mul.w r2, r3, r2 + 8038b0e: f8d7 3150 ldr.w r3, [r7, #336] ; 0x150 + 8038b12: fb92 f3f3 sdiv r3, r2, r3 lv_coord_t anim_cur_value_start_x = - 8038baa: f8a7 313a strh.w r3, [r7, #314] ; 0x13a + 8038b16: f8a7 313a strh.w r3, [r7, #314] ; 0x13a lv_coord_t anim_cur_value_end_x = (int32_t)((int32_t)anim_length * (bar->cur_value_anim.anim_end - bar->min_value)) / range; - 8038bae: f9b7 3140 ldrsh.w r3, [r7, #320] ; 0x140 - 8038bb2: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 - 8038bb6: 6c51 ldr r1, [r2, #68] ; 0x44 - 8038bb8: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 - 8038bbc: 6a92 ldr r2, [r2, #40] ; 0x28 - 8038bbe: 1a8a subs r2, r1, r2 - 8038bc0: fb03 f202 mul.w r2, r3, r2 - 8038bc4: f8d7 3150 ldr.w r3, [r7, #336] ; 0x150 - 8038bc8: fb92 f3f3 sdiv r3, r2, r3 + 8038b1a: f9b7 3140 ldrsh.w r3, [r7, #320] ; 0x140 + 8038b1e: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 + 8038b22: 6c51 ldr r1, [r2, #68] ; 0x44 + 8038b24: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 + 8038b28: 6a92 ldr r2, [r2, #40] ; 0x28 + 8038b2a: 1a8a subs r2, r1, r2 + 8038b2c: fb03 f202 mul.w r2, r3, r2 + 8038b30: f8d7 3150 ldr.w r3, [r7, #336] ; 0x150 + 8038b34: fb92 f3f3 sdiv r3, r2, r3 lv_coord_t anim_cur_value_end_x = - 8038bcc: f8a7 3138 strh.w r3, [r7, #312] ; 0x138 + 8038b38: f8a7 3138 strh.w r3, [r7, #312] ; 0x138 anim_cur_value_x = anim_cur_value_start_x + (((anim_cur_value_end_x - anim_cur_value_start_x) * - 8038bd0: f9b7 2138 ldrsh.w r2, [r7, #312] ; 0x138 - 8038bd4: f9b7 313a ldrsh.w r3, [r7, #314] ; 0x13a - 8038bd8: 1ad3 subs r3, r2, r3 + 8038b3c: f9b7 2138 ldrsh.w r2, [r7, #312] ; 0x138 + 8038b40: f9b7 313a ldrsh.w r3, [r7, #314] ; 0x13a + 8038b44: 1ad3 subs r3, r2, r3 bar->cur_value_anim.anim_state) / - 8038bda: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 - 8038bde: 6c92 ldr r2, [r2, #72] ; 0x48 + 8038b46: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 + 8038b4a: 6c92 ldr r2, [r2, #72] ; 0x48 anim_cur_value_x = anim_cur_value_start_x + (((anim_cur_value_end_x - anim_cur_value_start_x) * - 8038be0: fb02 f303 mul.w r3, r2, r3 + 8038b4c: fb02 f303 mul.w r3, r2, r3 bar->cur_value_anim.anim_state) / - 8038be4: 2b00 cmp r3, #0 - 8038be6: da00 bge.n 8038bea - 8038be8: 33ff adds r3, #255 ; 0xff - 8038bea: 121b asrs r3, r3, #8 + 8038b50: 2b00 cmp r3, #0 + 8038b52: da00 bge.n 8038b56 + 8038b54: 33ff adds r3, #255 ; 0xff + 8038b56: 121b asrs r3, r3, #8 anim_cur_value_x = anim_cur_value_start_x + (((anim_cur_value_end_x - anim_cur_value_start_x) * - 8038bec: b29a uxth r2, r3 - 8038bee: f8b7 313a ldrh.w r3, [r7, #314] ; 0x13a - 8038bf2: 4413 add r3, r2 - 8038bf4: b29b uxth r3, r3 - 8038bf6: f8a7 317c strh.w r3, [r7, #380] ; 0x17c - 8038bfa: e010 b.n 8038c1e + 8038b58: b29a uxth r2, r3 + 8038b5a: f8b7 313a ldrh.w r3, [r7, #314] ; 0x13a + 8038b5e: 4413 add r3, r2 + 8038b60: b29b uxth r3, r3 + 8038b62: f8a7 317c strh.w r3, [r7, #380] ; 0x17c + 8038b66: e010 b.n 8038b8a LV_BAR_ANIM_STATE_END); } else { anim_cur_value_x = (int32_t)((int32_t)anim_length * (bar->cur_value - bar->min_value)) / range; - 8038bfc: f9b7 3140 ldrsh.w r3, [r7, #320] ; 0x140 - 8038c00: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 - 8038c04: 6a51 ldr r1, [r2, #36] ; 0x24 - 8038c06: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 - 8038c0a: 6a92 ldr r2, [r2, #40] ; 0x28 - 8038c0c: 1a8a subs r2, r1, r2 - 8038c0e: fb03 f202 mul.w r2, r3, r2 - 8038c12: f8d7 3150 ldr.w r3, [r7, #336] ; 0x150 - 8038c16: fb92 f3f3 sdiv r3, r2, r3 - 8038c1a: f8a7 317c strh.w r3, [r7, #380] ; 0x17c + 8038b68: f9b7 3140 ldrsh.w r3, [r7, #320] ; 0x140 + 8038b6c: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 + 8038b70: 6a51 ldr r1, [r2, #36] ; 0x24 + 8038b72: f8d7 2160 ldr.w r2, [r7, #352] ; 0x160 + 8038b76: 6a92 ldr r2, [r2, #40] ; 0x28 + 8038b78: 1a8a subs r2, r1, r2 + 8038b7a: fb03 f202 mul.w r2, r3, r2 + 8038b7e: f8d7 3150 ldr.w r3, [r7, #336] ; 0x150 + 8038b82: fb92 f3f3 sdiv r3, r2, r3 + 8038b86: f8a7 317c strh.w r3, [r7, #380] ; 0x17c } lv_base_dir_t base_dir = lv_obj_get_style_base_dir(obj, LV_PART_MAIN); - 8038c1e: 2100 movs r1, #0 - 8038c20: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 - 8038c24: f7ff fc99 bl 803855a - 8038c28: 4603 mov r3, r0 - 8038c2a: f887 3137 strb.w r3, [r7, #311] ; 0x137 + 8038b8a: 2100 movs r1, #0 + 8038b8c: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 + 8038b90: f7ff fc99 bl 80384c6 + 8038b94: 4603 mov r3, r0 + 8038b96: f887 3137 strb.w r3, [r7, #311] ; 0x137 if(hor && base_dir == LV_BASE_DIR_RTL) { - 8038c2e: f897 314f ldrb.w r3, [r7, #335] ; 0x14f - 8038c32: 2b00 cmp r3, #0 - 8038c34: d01b beq.n 8038c6e - 8038c36: f897 3137 ldrb.w r3, [r7, #311] ; 0x137 - 8038c3a: 2b01 cmp r3, #1 - 8038c3c: d117 bne.n 8038c6e + 8038b9a: f897 314f ldrb.w r3, [r7, #335] ; 0x14f + 8038b9e: 2b00 cmp r3, #0 + 8038ba0: d01b beq.n 8038bda + 8038ba2: f897 3137 ldrb.w r3, [r7, #311] ; 0x137 + 8038ba6: 2b01 cmp r3, #1 + 8038ba8: d117 bne.n 8038bda /*Swap axes*/ lv_coord_t * tmp; tmp = axis1; - 8038c3e: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 - 8038c42: f8c7 3130 str.w r3, [r7, #304] ; 0x130 + 8038baa: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 + 8038bae: f8c7 3130 str.w r3, [r7, #304] ; 0x130 axis1 = axis2; - 8038c46: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 - 8038c4a: f8c7 3174 str.w r3, [r7, #372] ; 0x174 + 8038bb2: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 + 8038bb6: f8c7 3174 str.w r3, [r7, #372] ; 0x174 axis2 = tmp; - 8038c4e: f8d7 3130 ldr.w r3, [r7, #304] ; 0x130 - 8038c52: f8c7 3170 str.w r3, [r7, #368] ; 0x170 + 8038bba: f8d7 3130 ldr.w r3, [r7, #304] ; 0x130 + 8038bbe: f8c7 3170 str.w r3, [r7, #368] ; 0x170 anim_cur_value_x = -anim_cur_value_x; - 8038c56: f8b7 317c ldrh.w r3, [r7, #380] ; 0x17c - 8038c5a: 425b negs r3, r3 - 8038c5c: b29b uxth r3, r3 - 8038c5e: f8a7 317c strh.w r3, [r7, #380] ; 0x17c + 8038bc2: f8b7 317c ldrh.w r3, [r7, #380] ; 0x17c + 8038bc6: 425b negs r3, r3 + 8038bc8: b29b uxth r3, r3 + 8038bca: f8a7 317c strh.w r3, [r7, #380] ; 0x17c anim_start_value_x = -anim_start_value_x; - 8038c62: f8b7 317a ldrh.w r3, [r7, #378] ; 0x17a - 8038c66: 425b negs r3, r3 - 8038c68: b29b uxth r3, r3 - 8038c6a: f8a7 317a strh.w r3, [r7, #378] ; 0x17a + 8038bce: f8b7 317a ldrh.w r3, [r7, #378] ; 0x17a + 8038bd2: 425b negs r3, r3 + 8038bd4: b29b uxth r3, r3 + 8038bd6: f8a7 317a strh.w r3, [r7, #378] ; 0x17a } /*Set the indicator length*/ if(hor) { - 8038c6e: f897 314f ldrb.w r3, [r7, #335] ; 0x14f - 8038c72: 2b00 cmp r3, #0 - 8038c74: d01a beq.n 8038cac + 8038bda: f897 314f ldrb.w r3, [r7, #335] ; 0x14f + 8038bde: 2b00 cmp r3, #0 + 8038be0: d01a beq.n 8038c18 *axis2 = *axis1 + anim_cur_value_x; - 8038c76: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 - 8038c7a: f9b3 3000 ldrsh.w r3, [r3] - 8038c7e: b29a uxth r2, r3 - 8038c80: f8b7 317c ldrh.w r3, [r7, #380] ; 0x17c - 8038c84: 4413 add r3, r2 - 8038c86: b29b uxth r3, r3 - 8038c88: b21a sxth r2, r3 - 8038c8a: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 - 8038c8e: 801a strh r2, [r3, #0] + 8038be2: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 + 8038be6: f9b3 3000 ldrsh.w r3, [r3] + 8038bea: b29a uxth r2, r3 + 8038bec: f8b7 317c ldrh.w r3, [r7, #380] ; 0x17c + 8038bf0: 4413 add r3, r2 + 8038bf2: b29b uxth r3, r3 + 8038bf4: b21a sxth r2, r3 + 8038bf6: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 + 8038bfa: 801a strh r2, [r3, #0] *axis1 += anim_start_value_x; - 8038c90: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 - 8038c94: f9b3 3000 ldrsh.w r3, [r3] - 8038c98: b29a uxth r2, r3 - 8038c9a: f8b7 317a ldrh.w r3, [r7, #378] ; 0x17a - 8038c9e: 4413 add r3, r2 - 8038ca0: b29b uxth r3, r3 - 8038ca2: b21a sxth r2, r3 - 8038ca4: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 - 8038ca8: 801a strh r2, [r3, #0] - 8038caa: e01b b.n 8038ce4 + 8038bfc: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 + 8038c00: f9b3 3000 ldrsh.w r3, [r3] + 8038c04: b29a uxth r2, r3 + 8038c06: f8b7 317a ldrh.w r3, [r7, #378] ; 0x17a + 8038c0a: 4413 add r3, r2 + 8038c0c: b29b uxth r3, r3 + 8038c0e: b21a sxth r2, r3 + 8038c10: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 + 8038c14: 801a strh r2, [r3, #0] + 8038c16: e01b b.n 8038c50 } else { *axis1 = *axis2 - anim_cur_value_x + 1; - 8038cac: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 - 8038cb0: f9b3 3000 ldrsh.w r3, [r3] - 8038cb4: b29a uxth r2, r3 - 8038cb6: f8b7 317c ldrh.w r3, [r7, #380] ; 0x17c - 8038cba: 1ad3 subs r3, r2, r3 - 8038cbc: b29b uxth r3, r3 - 8038cbe: 3301 adds r3, #1 - 8038cc0: b29b uxth r3, r3 - 8038cc2: b21a sxth r2, r3 - 8038cc4: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 - 8038cc8: 801a strh r2, [r3, #0] + 8038c18: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 + 8038c1c: f9b3 3000 ldrsh.w r3, [r3] + 8038c20: b29a uxth r2, r3 + 8038c22: f8b7 317c ldrh.w r3, [r7, #380] ; 0x17c + 8038c26: 1ad3 subs r3, r2, r3 + 8038c28: b29b uxth r3, r3 + 8038c2a: 3301 adds r3, #1 + 8038c2c: b29b uxth r3, r3 + 8038c2e: b21a sxth r2, r3 + 8038c30: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 + 8038c34: 801a strh r2, [r3, #0] *axis2 -= anim_start_value_x; - 8038cca: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 - 8038cce: f9b3 3000 ldrsh.w r3, [r3] - 8038cd2: b29a uxth r2, r3 - 8038cd4: f8b7 317a ldrh.w r3, [r7, #378] ; 0x17a - 8038cd8: 1ad3 subs r3, r2, r3 - 8038cda: b29b uxth r3, r3 - 8038cdc: b21a sxth r2, r3 - 8038cde: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 - 8038ce2: 801a strh r2, [r3, #0] + 8038c36: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 + 8038c3a: f9b3 3000 ldrsh.w r3, [r3] + 8038c3e: b29a uxth r2, r3 + 8038c40: f8b7 317a ldrh.w r3, [r7, #378] ; 0x17a + 8038c44: 1ad3 subs r3, r2, r3 + 8038c46: b29b uxth r3, r3 + 8038c48: b21a sxth r2, r3 + 8038c4a: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 + 8038c4e: 801a strh r2, [r3, #0] } if(sym) { - 8038ce4: f897 317f ldrb.w r3, [r7, #383] ; 0x17f - 8038ce8: 2b00 cmp r3, #0 - 8038cea: d07e beq.n 8038dea + 8038c50: f897 317f ldrb.w r3, [r7, #383] ; 0x17f + 8038c54: 2b00 cmp r3, #0 + 8038c56: d07e beq.n 8038d56 lv_coord_t zero, shift; shift = (-bar->min_value * anim_length) / range; - 8038cec: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038cf0: 6a9b ldr r3, [r3, #40] ; 0x28 - 8038cf2: 425b negs r3, r3 - 8038cf4: f9b7 2140 ldrsh.w r2, [r7, #320] ; 0x140 - 8038cf8: fb03 f202 mul.w r2, r3, r2 - 8038cfc: f8d7 3150 ldr.w r3, [r7, #336] ; 0x150 - 8038d00: fb92 f3f3 sdiv r3, r2, r3 - 8038d04: f8a7 312e strh.w r3, [r7, #302] ; 0x12e + 8038c58: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038c5c: 6a9b ldr r3, [r3, #40] ; 0x28 + 8038c5e: 425b negs r3, r3 + 8038c60: f9b7 2140 ldrsh.w r2, [r7, #320] ; 0x140 + 8038c64: fb03 f202 mul.w r2, r3, r2 + 8038c68: f8d7 3150 ldr.w r3, [r7, #336] ; 0x150 + 8038c6c: fb92 f3f3 sdiv r3, r2, r3 + 8038c70: f8a7 312e strh.w r3, [r7, #302] ; 0x12e if(hor) { - 8038d08: f897 314f ldrb.w r3, [r7, #335] ; 0x14f - 8038d0c: 2b00 cmp r3, #0 - 8038d0e: d025 beq.n 8038d5c + 8038c74: f897 314f ldrb.w r3, [r7, #335] ; 0x14f + 8038c78: 2b00 cmp r3, #0 + 8038c7a: d025 beq.n 8038cc8 zero = *axis1 + shift; - 8038d10: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 - 8038d14: f9b3 3000 ldrsh.w r3, [r3] - 8038d18: b29a uxth r2, r3 - 8038d1a: f8b7 312e ldrh.w r3, [r7, #302] ; 0x12e - 8038d1e: 4413 add r3, r2 - 8038d20: b29b uxth r3, r3 - 8038d22: f8a7 312c strh.w r3, [r7, #300] ; 0x12c + 8038c7c: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 + 8038c80: f9b3 3000 ldrsh.w r3, [r3] + 8038c84: b29a uxth r2, r3 + 8038c86: f8b7 312e ldrh.w r3, [r7, #302] ; 0x12e + 8038c8a: 4413 add r3, r2 + 8038c8c: b29b uxth r3, r3 + 8038c8e: f8a7 312c strh.w r3, [r7, #300] ; 0x12c if(*axis2 > zero) - 8038d26: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 - 8038d2a: f9b3 3000 ldrsh.w r3, [r3] - 8038d2e: f9b7 212c ldrsh.w r2, [r7, #300] ; 0x12c - 8038d32: 429a cmp r2, r3 - 8038d34: da05 bge.n 8038d42 + 8038c92: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 + 8038c96: f9b3 3000 ldrsh.w r3, [r3] + 8038c9a: f9b7 212c ldrsh.w r2, [r7, #300] ; 0x12c + 8038c9e: 429a cmp r2, r3 + 8038ca0: da05 bge.n 8038cae *axis1 = zero; - 8038d36: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 - 8038d3a: f8b7 212c ldrh.w r2, [r7, #300] ; 0x12c - 8038d3e: 801a strh r2, [r3, #0] - 8038d40: e053 b.n 8038dea + 8038ca2: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 + 8038ca6: f8b7 212c ldrh.w r2, [r7, #300] ; 0x12c + 8038caa: 801a strh r2, [r3, #0] + 8038cac: e053 b.n 8038d56 else { *axis1 = *axis2; - 8038d42: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 - 8038d46: f9b3 2000 ldrsh.w r2, [r3] - 8038d4a: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 - 8038d4e: 801a strh r2, [r3, #0] + 8038cae: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 + 8038cb2: f9b3 2000 ldrsh.w r2, [r3] + 8038cb6: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 + 8038cba: 801a strh r2, [r3, #0] *axis2 = zero; - 8038d50: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 - 8038d54: f8b7 212c ldrh.w r2, [r7, #300] ; 0x12c - 8038d58: 801a strh r2, [r3, #0] - 8038d5a: e046 b.n 8038dea + 8038cbc: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 + 8038cc0: f8b7 212c ldrh.w r2, [r7, #300] ; 0x12c + 8038cc4: 801a strh r2, [r3, #0] + 8038cc6: e046 b.n 8038d56 } } else { zero = *axis2 - shift + 1; - 8038d5c: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 - 8038d60: f9b3 3000 ldrsh.w r3, [r3] - 8038d64: b29a uxth r2, r3 - 8038d66: f8b7 312e ldrh.w r3, [r7, #302] ; 0x12e - 8038d6a: 1ad3 subs r3, r2, r3 - 8038d6c: b29b uxth r3, r3 - 8038d6e: 3301 adds r3, #1 - 8038d70: b29b uxth r3, r3 - 8038d72: f8a7 312c strh.w r3, [r7, #300] ; 0x12c + 8038cc8: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 + 8038ccc: f9b3 3000 ldrsh.w r3, [r3] + 8038cd0: b29a uxth r2, r3 + 8038cd2: f8b7 312e ldrh.w r3, [r7, #302] ; 0x12e + 8038cd6: 1ad3 subs r3, r2, r3 + 8038cd8: b29b uxth r3, r3 + 8038cda: 3301 adds r3, #1 + 8038cdc: b29b uxth r3, r3 + 8038cde: f8a7 312c strh.w r3, [r7, #300] ; 0x12c if(*axis1 > zero) - 8038d76: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 - 8038d7a: f9b3 3000 ldrsh.w r3, [r3] - 8038d7e: f9b7 212c ldrsh.w r2, [r7, #300] ; 0x12c - 8038d82: 429a cmp r2, r3 - 8038d84: da0a bge.n 8038d9c + 8038ce2: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 + 8038ce6: f9b3 3000 ldrsh.w r3, [r3] + 8038cea: f9b7 212c ldrsh.w r2, [r7, #300] ; 0x12c + 8038cee: 429a cmp r2, r3 + 8038cf0: da0a bge.n 8038d08 *axis2 = zero; - 8038d86: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 - 8038d8a: f8b7 212c ldrh.w r2, [r7, #300] ; 0x12c - 8038d8e: 801a strh r2, [r3, #0] - 8038d90: e010 b.n 8038db4 - 8038d92: bf00 nop - 8038d94: 08038349 .word 0x08038349 - 8038d98: 08038375 .word 0x08038375 + 8038cf2: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 + 8038cf6: f8b7 212c ldrh.w r2, [r7, #300] ; 0x12c + 8038cfa: 801a strh r2, [r3, #0] + 8038cfc: e010 b.n 8038d20 + 8038cfe: bf00 nop + 8038d00: 080382b5 .word 0x080382b5 + 8038d04: 080382e1 .word 0x080382e1 else { *axis2 = *axis1; - 8038d9c: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 - 8038da0: f9b3 2000 ldrsh.w r2, [r3] - 8038da4: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 - 8038da8: 801a strh r2, [r3, #0] + 8038d08: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 + 8038d0c: f9b3 2000 ldrsh.w r2, [r3] + 8038d10: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 + 8038d14: 801a strh r2, [r3, #0] *axis1 = zero; - 8038daa: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 - 8038dae: f8b7 212c ldrh.w r2, [r7, #300] ; 0x12c - 8038db2: 801a strh r2, [r3, #0] + 8038d16: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 + 8038d1a: f8b7 212c ldrh.w r2, [r7, #300] ; 0x12c + 8038d1e: 801a strh r2, [r3, #0] } if(*axis2 < *axis1) { - 8038db4: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 - 8038db8: f9b3 2000 ldrsh.w r2, [r3] - 8038dbc: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 - 8038dc0: f9b3 3000 ldrsh.w r3, [r3] - 8038dc4: 429a cmp r2, r3 - 8038dc6: da10 bge.n 8038dea + 8038d20: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 + 8038d24: f9b3 2000 ldrsh.w r2, [r3] + 8038d28: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 + 8038d2c: f9b3 3000 ldrsh.w r3, [r3] + 8038d30: 429a cmp r2, r3 + 8038d32: da10 bge.n 8038d56 /*swap*/ zero = *axis1; - 8038dc8: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 - 8038dcc: 881b ldrh r3, [r3, #0] - 8038dce: f8a7 312c strh.w r3, [r7, #300] ; 0x12c + 8038d34: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 + 8038d38: 881b ldrh r3, [r3, #0] + 8038d3a: f8a7 312c strh.w r3, [r7, #300] ; 0x12c *axis1 = *axis2; - 8038dd2: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 - 8038dd6: f9b3 2000 ldrsh.w r2, [r3] - 8038dda: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 - 8038dde: 801a strh r2, [r3, #0] + 8038d3e: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 + 8038d42: f9b3 2000 ldrsh.w r2, [r3] + 8038d46: f8d7 3174 ldr.w r3, [r7, #372] ; 0x174 + 8038d4a: 801a strh r2, [r3, #0] *axis2 = zero; - 8038de0: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 - 8038de4: f8b7 212c ldrh.w r2, [r7, #300] ; 0x12c - 8038de8: 801a strh r2, [r3, #0] + 8038d4c: f8d7 3170 ldr.w r3, [r7, #368] ; 0x170 + 8038d50: f8b7 212c ldrh.w r2, [r7, #300] ; 0x12c + 8038d54: 801a strh r2, [r3, #0] } } } /*Do not draw a zero length indicator but at least call the draw part events*/ if(!sym && indic_length_calc(&bar->indic_area) <= 1) { - 8038dea: f897 317f ldrb.w r3, [r7, #383] ; 0x17f - 8038dee: f083 0301 eor.w r3, r3, #1 - 8038df2: b2db uxtb r3, r3 - 8038df4: 2b00 cmp r3, #0 - 8038df6: d041 beq.n 8038e7c - 8038df8: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038dfc: f103 0234 add.w r2, r3, #52 ; 0x34 - 8038e00: f8d7 316c ldr.w r3, [r7, #364] ; 0x16c - 8038e04: 4610 mov r0, r2 - 8038e06: 4798 blx r3 - 8038e08: 4603 mov r3, r0 - 8038e0a: 2b01 cmp r3, #1 - 8038e0c: dc36 bgt.n 8038e7c + 8038d56: f897 317f ldrb.w r3, [r7, #383] ; 0x17f + 8038d5a: f083 0301 eor.w r3, r3, #1 + 8038d5e: b2db uxtb r3, r3 + 8038d60: 2b00 cmp r3, #0 + 8038d62: d041 beq.n 8038de8 + 8038d64: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038d68: f103 0234 add.w r2, r3, #52 ; 0x34 + 8038d6c: f8d7 316c ldr.w r3, [r7, #364] ; 0x16c + 8038d70: 4610 mov r0, r2 + 8038d72: 4798 blx r3 + 8038d74: 4603 mov r3, r0 + 8038d76: 2b01 cmp r3, #1 + 8038d78: dc36 bgt.n 8038de8 lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 8038e0e: f107 0308 add.w r3, r7, #8 - 8038e12: f8d7 115c ldr.w r1, [r7, #348] ; 0x15c - 8038e16: 4618 mov r0, r3 - 8038e18: f7d0 f829 bl 8008e6e + 8038d7a: f107 0308 add.w r3, r7, #8 + 8038d7e: f8d7 115c ldr.w r1, [r7, #348] ; 0x15c + 8038d82: 4618 mov r0, r3 + 8038d84: f7d0 f83d bl 8008e02 part_draw_dsc.part = LV_PART_INDICATOR; - 8038e1c: f507 73c0 add.w r3, r7, #384 ; 0x180 - 8038e20: f5a3 73bc sub.w r3, r3, #376 ; 0x178 - 8038e24: f44f 3200 mov.w r2, #131072 ; 0x20000 - 8038e28: 635a str r2, [r3, #52] ; 0x34 + 8038d88: f507 73c0 add.w r3, r7, #384 ; 0x180 + 8038d8c: f5a3 73bc sub.w r3, r3, #376 ; 0x178 + 8038d90: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8038d94: 635a str r2, [r3, #52] ; 0x34 part_draw_dsc.class_p = MY_CLASS; - 8038e2a: f507 73c0 add.w r3, r7, #384 ; 0x180 - 8038e2e: f5a3 73bc sub.w r3, r3, #376 ; 0x178 - 8038e32: 4a11 ldr r2, [pc, #68] ; (8038e78 ) - 8038e34: 605a str r2, [r3, #4] + 8038d96: f507 73c0 add.w r3, r7, #384 ; 0x180 + 8038d9a: f5a3 73bc sub.w r3, r3, #376 ; 0x178 + 8038d9e: 4a11 ldr r2, [pc, #68] ; (8038de4 ) + 8038da0: 605a str r2, [r3, #4] part_draw_dsc.type = LV_BAR_DRAW_PART_INDICATOR; - 8038e36: f507 73c0 add.w r3, r7, #384 ; 0x180 - 8038e3a: f5a3 73bc sub.w r3, r3, #376 ; 0x178 - 8038e3e: 2200 movs r2, #0 - 8038e40: 609a str r2, [r3, #8] + 8038da2: f507 73c0 add.w r3, r7, #384 ; 0x180 + 8038da6: f5a3 73bc sub.w r3, r3, #376 ; 0x178 + 8038daa: 2200 movs r2, #0 + 8038dac: 609a str r2, [r3, #8] part_draw_dsc.draw_area = &bar->indic_area; - 8038e42: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038e46: f103 0234 add.w r2, r3, #52 ; 0x34 - 8038e4a: f507 73c0 add.w r3, r7, #384 ; 0x180 - 8038e4e: f5a3 73bc sub.w r3, r3, #376 ; 0x178 - 8038e52: 60da str r2, [r3, #12] + 8038dae: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038db2: f103 0234 add.w r2, r3, #52 ; 0x34 + 8038db6: f507 73c0 add.w r3, r7, #384 ; 0x180 + 8038dba: f5a3 73bc sub.w r3, r3, #376 ; 0x178 + 8038dbe: 60da str r2, [r3, #12] lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 8038e54: f107 0308 add.w r3, r7, #8 - 8038e58: 461a mov r2, r3 - 8038e5a: 211a movs r1, #26 - 8038e5c: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 - 8038e60: f7c9 fb0e bl 8002480 + 8038dc0: f107 0308 add.w r3, r7, #8 + 8038dc4: 461a mov r2, r3 + 8038dc6: 211a movs r1, #26 + 8038dc8: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 + 8038dcc: f7c9 fb22 bl 8002414 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 8038e64: f107 0308 add.w r3, r7, #8 - 8038e68: 461a mov r2, r3 - 8038e6a: 211b movs r1, #27 - 8038e6c: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 - 8038e70: f7c9 fb06 bl 8002480 - 8038e74: e22b b.n 80392ce - 8038e76: bf00 nop - 8038e78: 080709c8 .word 0x080709c8 + 8038dd0: f107 0308 add.w r3, r7, #8 + 8038dd4: 461a mov r2, r3 + 8038dd6: 211b movs r1, #27 + 8038dd8: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 + 8038ddc: f7c9 fb1a bl 8002414 + 8038de0: e22b b.n 803923a + 8038de2: bf00 nop + 8038de4: 08070920 .word 0x08070920 return; } lv_area_t indic_area; lv_area_copy(&indic_area, &bar->indic_area); - 8038e7c: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038e80: f103 0234 add.w r2, r3, #52 ; 0x34 - 8038e84: f507 7388 add.w r3, r7, #272 ; 0x110 - 8038e88: 4611 mov r1, r2 - 8038e8a: 4618 mov r0, r3 - 8038e8c: f7ff fa3e bl 803830c + 8038de8: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038dec: f103 0234 add.w r2, r3, #52 ; 0x34 + 8038df0: f507 7388 add.w r3, r7, #272 ; 0x110 + 8038df4: 4611 mov r1, r2 + 8038df6: 4618 mov r0, r3 + 8038df8: f7ff fa3e bl 8038278 lv_draw_rect_dsc_t draw_rect_dsc; lv_draw_rect_dsc_init(&draw_rect_dsc); - 8038e90: f107 03d8 add.w r3, r7, #216 ; 0xd8 - 8038e94: 4618 mov r0, r3 - 8038e96: f7dc fcad bl 80157f4 + 8038dfc: f107 03d8 add.w r3, r7, #216 ; 0xd8 + 8038e00: 4618 mov r0, r3 + 8038e02: f7dc fcad bl 8015760 lv_obj_init_draw_rect_dsc(obj, LV_PART_INDICATOR, &draw_rect_dsc); - 8038e9a: f107 03d8 add.w r3, r7, #216 ; 0xd8 - 8038e9e: 461a mov r2, r3 - 8038ea0: f44f 3100 mov.w r1, #131072 ; 0x20000 - 8038ea4: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 - 8038ea8: f7cf fb8d bl 80085c6 + 8038e06: f107 03d8 add.w r3, r7, #216 ; 0xd8 + 8038e0a: 461a mov r2, r3 + 8038e0c: f44f 3100 mov.w r1, #131072 ; 0x20000 + 8038e10: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 + 8038e14: f7cf fba1 bl 800855a lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 8038eac: f107 0390 add.w r3, r7, #144 ; 0x90 - 8038eb0: f8d7 115c ldr.w r1, [r7, #348] ; 0x15c - 8038eb4: 4618 mov r0, r3 - 8038eb6: f7cf ffda bl 8008e6e + 8038e18: f107 0390 add.w r3, r7, #144 ; 0x90 + 8038e1c: f8d7 115c ldr.w r1, [r7, #348] ; 0x15c + 8038e20: 4618 mov r0, r3 + 8038e22: f7cf ffee bl 8008e02 part_draw_dsc.part = LV_PART_INDICATOR; - 8038eba: f44f 3300 mov.w r3, #131072 ; 0x20000 - 8038ebe: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 + 8038e26: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8038e2a: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 part_draw_dsc.class_p = MY_CLASS; - 8038ec2: 4bbd ldr r3, [pc, #756] ; (80391b8 ) - 8038ec4: f8c7 3094 str.w r3, [r7, #148] ; 0x94 + 8038e2e: 4bbd ldr r3, [pc, #756] ; (8039124 ) + 8038e30: f8c7 3094 str.w r3, [r7, #148] ; 0x94 part_draw_dsc.type = LV_BAR_DRAW_PART_INDICATOR; - 8038ec8: 2300 movs r3, #0 - 8038eca: f8c7 3098 str.w r3, [r7, #152] ; 0x98 + 8038e34: 2300 movs r3, #0 + 8038e36: f8c7 3098 str.w r3, [r7, #152] ; 0x98 part_draw_dsc.rect_dsc = &draw_rect_dsc; - 8038ece: f107 03d8 add.w r3, r7, #216 ; 0xd8 - 8038ed2: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 + 8038e3a: f107 03d8 add.w r3, r7, #216 ; 0xd8 + 8038e3e: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 part_draw_dsc.draw_area = &bar->indic_area; - 8038ed6: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038eda: 3334 adds r3, #52 ; 0x34 - 8038edc: f8c7 309c str.w r3, [r7, #156] ; 0x9c + 8038e42: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038e46: 3334 adds r3, #52 ; 0x34 + 8038e48: f8c7 309c str.w r3, [r7, #156] ; 0x9c lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 8038ee0: f107 0390 add.w r3, r7, #144 ; 0x90 - 8038ee4: 461a mov r2, r3 - 8038ee6: 211a movs r1, #26 - 8038ee8: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 - 8038eec: f7c9 fac8 bl 8002480 + 8038e4c: f107 0390 add.w r3, r7, #144 ; 0x90 + 8038e50: 461a mov r2, r3 + 8038e52: 211a movs r1, #26 + 8038e54: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 + 8038e58: f7c9 fadc bl 8002414 lv_coord_t bg_radius = lv_obj_get_style_radius(obj, LV_PART_MAIN); - 8038ef0: 2100 movs r1, #0 - 8038ef2: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 - 8038ef6: f7ff fb0d bl 8038514 - 8038efa: 4603 mov r3, r0 - 8038efc: f8a7 316a strh.w r3, [r7, #362] ; 0x16a + 8038e5c: 2100 movs r1, #0 + 8038e5e: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 + 8038e62: f7ff fb0d bl 8038480 + 8038e66: 4603 mov r3, r0 + 8038e68: f8a7 316a strh.w r3, [r7, #362] ; 0x16a lv_coord_t short_side = LV_MIN(barw, barh); - 8038f00: f9b7 2154 ldrsh.w r2, [r7, #340] ; 0x154 - 8038f04: f9b7 3156 ldrsh.w r3, [r7, #342] ; 0x156 - 8038f08: 4293 cmp r3, r2 - 8038f0a: bfa8 it ge - 8038f0c: 4613 movge r3, r2 - 8038f0e: f8a7 312a strh.w r3, [r7, #298] ; 0x12a + 8038e6c: f9b7 2154 ldrsh.w r2, [r7, #340] ; 0x154 + 8038e70: f9b7 3156 ldrsh.w r3, [r7, #342] ; 0x156 + 8038e74: 4293 cmp r3, r2 + 8038e76: bfa8 it ge + 8038e78: 4613 movge r3, r2 + 8038e7a: f8a7 312a strh.w r3, [r7, #298] ; 0x12a if(bg_radius > short_side >> 1) bg_radius = short_side >> 1; - 8038f12: f9b7 312a ldrsh.w r3, [r7, #298] ; 0x12a - 8038f16: 105b asrs r3, r3, #1 - 8038f18: b21b sxth r3, r3 - 8038f1a: f9b7 216a ldrsh.w r2, [r7, #362] ; 0x16a - 8038f1e: 429a cmp r2, r3 - 8038f20: dd04 ble.n 8038f2c - 8038f22: f9b7 312a ldrsh.w r3, [r7, #298] ; 0x12a - 8038f26: 105b asrs r3, r3, #1 - 8038f28: f8a7 316a strh.w r3, [r7, #362] ; 0x16a + 8038e7e: f9b7 312a ldrsh.w r3, [r7, #298] ; 0x12a + 8038e82: 105b asrs r3, r3, #1 + 8038e84: b21b sxth r3, r3 + 8038e86: f9b7 216a ldrsh.w r2, [r7, #362] ; 0x16a + 8038e8a: 429a cmp r2, r3 + 8038e8c: dd04 ble.n 8038e98 + 8038e8e: f9b7 312a ldrsh.w r3, [r7, #298] ; 0x12a + 8038e92: 105b asrs r3, r3, #1 + 8038e94: f8a7 316a strh.w r3, [r7, #362] ; 0x16a lv_coord_t indic_radius = draw_rect_dsc.radius; - 8038f2c: f8b7 30d8 ldrh.w r3, [r7, #216] ; 0xd8 - 8038f30: f8a7 3168 strh.w r3, [r7, #360] ; 0x168 + 8038e98: f8b7 30d8 ldrh.w r3, [r7, #216] ; 0xd8 + 8038e9c: f8a7 3168 strh.w r3, [r7, #360] ; 0x168 short_side = LV_MIN(indicw, indich); - 8038f34: f9b7 2142 ldrsh.w r2, [r7, #322] ; 0x142 - 8038f38: f9b7 3144 ldrsh.w r3, [r7, #324] ; 0x144 - 8038f3c: 4293 cmp r3, r2 - 8038f3e: bfa8 it ge - 8038f40: 4613 movge r3, r2 - 8038f42: f8a7 312a strh.w r3, [r7, #298] ; 0x12a + 8038ea0: f9b7 2142 ldrsh.w r2, [r7, #322] ; 0x142 + 8038ea4: f9b7 3144 ldrsh.w r3, [r7, #324] ; 0x144 + 8038ea8: 4293 cmp r3, r2 + 8038eaa: bfa8 it ge + 8038eac: 4613 movge r3, r2 + 8038eae: f8a7 312a strh.w r3, [r7, #298] ; 0x12a if(indic_radius > short_side >> 1) indic_radius = short_side >> 1; - 8038f46: f9b7 312a ldrsh.w r3, [r7, #298] ; 0x12a - 8038f4a: 105b asrs r3, r3, #1 - 8038f4c: b21b sxth r3, r3 - 8038f4e: f9b7 2168 ldrsh.w r2, [r7, #360] ; 0x168 - 8038f52: 429a cmp r2, r3 - 8038f54: dd04 ble.n 8038f60 - 8038f56: f9b7 312a ldrsh.w r3, [r7, #298] ; 0x12a - 8038f5a: 105b asrs r3, r3, #1 - 8038f5c: f8a7 3168 strh.w r3, [r7, #360] ; 0x168 + 8038eb2: f9b7 312a ldrsh.w r3, [r7, #298] ; 0x12a + 8038eb6: 105b asrs r3, r3, #1 + 8038eb8: b21b sxth r3, r3 + 8038eba: f9b7 2168 ldrsh.w r2, [r7, #360] ; 0x168 + 8038ebe: 429a cmp r2, r3 + 8038ec0: dd04 ble.n 8038ecc + 8038ec2: f9b7 312a ldrsh.w r3, [r7, #298] ; 0x12a + 8038ec6: 105b asrs r3, r3, #1 + 8038ec8: f8a7 3168 strh.w r3, [r7, #360] ; 0x168 /*Draw only the shadow and outline only if the indicator is long enough. *The radius of the bg and the indicator can make a strange shape where *it'd be very difficult to draw shadow.*/ if((hor && lv_area_get_width(&bar->indic_area) > indic_radius * 2) || - 8038f60: f897 314f ldrb.w r3, [r7, #335] ; 0x14f - 8038f64: 2b00 cmp r3, #0 - 8038f66: d00c beq.n 8038f82 - 8038f68: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038f6c: 3334 adds r3, #52 ; 0x34 - 8038f6e: 4618 mov r0, r3 - 8038f70: f7ff f9ea bl 8038348 - 8038f74: 4603 mov r3, r0 - 8038f76: 461a mov r2, r3 - 8038f78: f9b7 3168 ldrsh.w r3, [r7, #360] ; 0x168 - 8038f7c: 005b lsls r3, r3, #1 - 8038f7e: 429a cmp r2, r3 - 8038f80: dc13 bgt.n 8038faa + 8038ecc: f897 314f ldrb.w r3, [r7, #335] ; 0x14f + 8038ed0: 2b00 cmp r3, #0 + 8038ed2: d00c beq.n 8038eee + 8038ed4: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038ed8: 3334 adds r3, #52 ; 0x34 + 8038eda: 4618 mov r0, r3 + 8038edc: f7ff f9ea bl 80382b4 + 8038ee0: 4603 mov r3, r0 + 8038ee2: 461a mov r2, r3 + 8038ee4: f9b7 3168 ldrsh.w r3, [r7, #360] ; 0x168 + 8038ee8: 005b lsls r3, r3, #1 + 8038eea: 429a cmp r2, r3 + 8038eec: dc13 bgt.n 8038f16 (!hor && lv_area_get_height(&bar->indic_area) > indic_radius * 2)) { - 8038f82: f897 314f ldrb.w r3, [r7, #335] ; 0x14f - 8038f86: f083 0301 eor.w r3, r3, #1 - 8038f8a: b2db uxtb r3, r3 + 8038eee: f897 314f ldrb.w r3, [r7, #335] ; 0x14f + 8038ef2: f083 0301 eor.w r3, r3, #1 + 8038ef6: b2db uxtb r3, r3 if((hor && lv_area_get_width(&bar->indic_area) > indic_radius * 2) || - 8038f8c: 2b00 cmp r3, #0 - 8038f8e: d038 beq.n 8039002 + 8038ef8: 2b00 cmp r3, #0 + 8038efa: d038 beq.n 8038f6e (!hor && lv_area_get_height(&bar->indic_area) > indic_radius * 2)) { - 8038f90: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038f94: 3334 adds r3, #52 ; 0x34 - 8038f96: 4618 mov r0, r3 - 8038f98: f7ff f9ec bl 8038374 - 8038f9c: 4603 mov r3, r0 - 8038f9e: 461a mov r2, r3 - 8038fa0: f9b7 3168 ldrsh.w r3, [r7, #360] ; 0x168 - 8038fa4: 005b lsls r3, r3, #1 - 8038fa6: 429a cmp r2, r3 - 8038fa8: dd2b ble.n 8039002 + 8038efc: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038f00: 3334 adds r3, #52 ; 0x34 + 8038f02: 4618 mov r0, r3 + 8038f04: f7ff f9ec bl 80382e0 + 8038f08: 4603 mov r3, r0 + 8038f0a: 461a mov r2, r3 + 8038f0c: f9b7 3168 ldrsh.w r3, [r7, #360] ; 0x168 + 8038f10: 005b lsls r3, r3, #1 + 8038f12: 429a cmp r2, r3 + 8038f14: dd2b ble.n 8038f6e lv_opa_t bg_opa = draw_rect_dsc.bg_opa; - 8038faa: f897 30db ldrb.w r3, [r7, #219] ; 0xdb - 8038fae: f887 3129 strb.w r3, [r7, #297] ; 0x129 + 8038f16: f897 30db ldrb.w r3, [r7, #219] ; 0xdb + 8038f1a: f887 3129 strb.w r3, [r7, #297] ; 0x129 lv_opa_t bg_img_opa = draw_rect_dsc.bg_img_opa; - 8038fb2: f897 30f2 ldrb.w r3, [r7, #242] ; 0xf2 - 8038fb6: f887 3128 strb.w r3, [r7, #296] ; 0x128 + 8038f1e: f897 30f2 ldrb.w r3, [r7, #242] ; 0xf2 + 8038f22: f887 3128 strb.w r3, [r7, #296] ; 0x128 lv_opa_t border_opa = draw_rect_dsc.border_opa; - 8038fba: f897 30fa ldrb.w r3, [r7, #250] ; 0xfa - 8038fbe: f887 3127 strb.w r3, [r7, #295] ; 0x127 + 8038f26: f897 30fa ldrb.w r3, [r7, #250] ; 0xfa + 8038f2a: f887 3127 strb.w r3, [r7, #295] ; 0x127 draw_rect_dsc.bg_opa = LV_OPA_TRANSP; - 8038fc2: 2300 movs r3, #0 - 8038fc4: f887 30db strb.w r3, [r7, #219] ; 0xdb + 8038f2e: 2300 movs r3, #0 + 8038f30: f887 30db strb.w r3, [r7, #219] ; 0xdb draw_rect_dsc.bg_img_opa = LV_OPA_TRANSP; - 8038fc8: 2300 movs r3, #0 - 8038fca: f887 30f2 strb.w r3, [r7, #242] ; 0xf2 + 8038f34: 2300 movs r3, #0 + 8038f36: f887 30f2 strb.w r3, [r7, #242] ; 0xf2 draw_rect_dsc.border_opa = LV_OPA_TRANSP; - 8038fce: 2300 movs r3, #0 - 8038fd0: f887 30fa strb.w r3, [r7, #250] ; 0xfa + 8038f3a: 2300 movs r3, #0 + 8038f3c: f887 30fa strb.w r3, [r7, #250] ; 0xfa lv_draw_rect(draw_ctx, &draw_rect_dsc, &bar->indic_area); - 8038fd4: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8038fd8: f103 0234 add.w r2, r3, #52 ; 0x34 - 8038fdc: f107 03d8 add.w r3, r7, #216 ; 0xd8 - 8038fe0: 4619 mov r1, r3 - 8038fe2: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8038fe6: f7dc fc47 bl 8015878 + 8038f40: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8038f44: f103 0234 add.w r2, r3, #52 ; 0x34 + 8038f48: f107 03d8 add.w r3, r7, #216 ; 0xd8 + 8038f4c: 4619 mov r1, r3 + 8038f4e: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 8038f52: f7dc fc47 bl 80157e4 draw_rect_dsc.bg_opa = bg_opa; - 8038fea: f897 3129 ldrb.w r3, [r7, #297] ; 0x129 - 8038fee: f887 30db strb.w r3, [r7, #219] ; 0xdb + 8038f56: f897 3129 ldrb.w r3, [r7, #297] ; 0x129 + 8038f5a: f887 30db strb.w r3, [r7, #219] ; 0xdb draw_rect_dsc.bg_img_opa = bg_img_opa; - 8038ff2: f897 3128 ldrb.w r3, [r7, #296] ; 0x128 - 8038ff6: f887 30f2 strb.w r3, [r7, #242] ; 0xf2 + 8038f5e: f897 3128 ldrb.w r3, [r7, #296] ; 0x128 + 8038f62: f887 30f2 strb.w r3, [r7, #242] ; 0xf2 draw_rect_dsc.border_opa = border_opa; - 8038ffa: f897 3127 ldrb.w r3, [r7, #295] ; 0x127 - 8038ffe: f887 30fa strb.w r3, [r7, #250] ; 0xfa + 8038f66: f897 3127 ldrb.w r3, [r7, #295] ; 0x127 + 8038f6a: f887 30fa strb.w r3, [r7, #250] ; 0xfa } #if LV_DRAW_COMPLEX lv_draw_mask_radius_param_t mask_bg_param; lv_area_t bg_mask_area; bg_mask_area.x1 = obj->coords.x1 + bg_left; - 8039002: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 - 8039006: f9b3 3014 ldrsh.w r3, [r3, #20] - 803900a: b29a uxth r2, r3 - 803900c: f8b7 314c ldrh.w r3, [r7, #332] ; 0x14c - 8039010: 4413 add r3, r2 - 8039012: b29b uxth r3, r3 - 8039014: b21a sxth r2, r3 - 8039016: f507 73c0 add.w r3, r7, #384 ; 0x180 - 803901a: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 803901e: 801a strh r2, [r3, #0] + 8038f6e: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 + 8038f72: f9b3 3014 ldrsh.w r3, [r3, #20] + 8038f76: b29a uxth r2, r3 + 8038f78: f8b7 314c ldrh.w r3, [r7, #332] ; 0x14c + 8038f7c: 4413 add r3, r2 + 8038f7e: b29b uxth r3, r3 + 8038f80: b21a sxth r2, r3 + 8038f82: f507 73c0 add.w r3, r7, #384 ; 0x180 + 8038f86: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8038f8a: 801a strh r2, [r3, #0] bg_mask_area.x2 = obj->coords.x2 - bg_right; - 8039020: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 - 8039024: f9b3 3018 ldrsh.w r3, [r3, #24] - 8039028: b29a uxth r2, r3 - 803902a: f8b7 314a ldrh.w r3, [r7, #330] ; 0x14a - 803902e: 1ad3 subs r3, r2, r3 - 8039030: b29b uxth r3, r3 - 8039032: b21a sxth r2, r3 - 8039034: f507 73c0 add.w r3, r7, #384 ; 0x180 - 8039038: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 803903c: 809a strh r2, [r3, #4] + 8038f8c: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 + 8038f90: f9b3 3018 ldrsh.w r3, [r3, #24] + 8038f94: b29a uxth r2, r3 + 8038f96: f8b7 314a ldrh.w r3, [r7, #330] ; 0x14a + 8038f9a: 1ad3 subs r3, r2, r3 + 8038f9c: b29b uxth r3, r3 + 8038f9e: b21a sxth r2, r3 + 8038fa0: f507 73c0 add.w r3, r7, #384 ; 0x180 + 8038fa4: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8038fa8: 809a strh r2, [r3, #4] bg_mask_area.y1 = obj->coords.y1 + bg_top; - 803903e: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 - 8039042: f9b3 3016 ldrsh.w r3, [r3, #22] - 8039046: b29a uxth r2, r3 - 8039048: f8b7 3148 ldrh.w r3, [r7, #328] ; 0x148 - 803904c: 4413 add r3, r2 - 803904e: b29b uxth r3, r3 - 8039050: b21a sxth r2, r3 - 8039052: f507 73c0 add.w r3, r7, #384 ; 0x180 - 8039056: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 803905a: 805a strh r2, [r3, #2] + 8038faa: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 + 8038fae: f9b3 3016 ldrsh.w r3, [r3, #22] + 8038fb2: b29a uxth r2, r3 + 8038fb4: f8b7 3148 ldrh.w r3, [r7, #328] ; 0x148 + 8038fb8: 4413 add r3, r2 + 8038fba: b29b uxth r3, r3 + 8038fbc: b21a sxth r2, r3 + 8038fbe: f507 73c0 add.w r3, r7, #384 ; 0x180 + 8038fc2: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8038fc6: 805a strh r2, [r3, #2] bg_mask_area.y2 = obj->coords.y2 - bg_bottom; - 803905c: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 - 8039060: f9b3 301a ldrsh.w r3, [r3, #26] - 8039064: b29a uxth r2, r3 - 8039066: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 - 803906a: 1ad3 subs r3, r2, r3 - 803906c: b29b uxth r3, r3 - 803906e: b21a sxth r2, r3 - 8039070: f507 73c0 add.w r3, r7, #384 ; 0x180 - 8039074: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 8039078: 80da strh r2, [r3, #6] + 8038fc8: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 + 8038fcc: f9b3 301a ldrsh.w r3, [r3, #26] + 8038fd0: b29a uxth r2, r3 + 8038fd2: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 + 8038fd6: 1ad3 subs r3, r2, r3 + 8038fd8: b29b uxth r3, r3 + 8038fda: b21a sxth r2, r3 + 8038fdc: f507 73c0 add.w r3, r7, #384 ; 0x180 + 8038fe0: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8038fe4: 80da strh r2, [r3, #6] lv_draw_mask_radius_init(&mask_bg_param, &bg_mask_area, bg_radius, false); - 803907a: f9b7 216a ldrsh.w r2, [r7, #362] ; 0x16a - 803907e: f107 0170 add.w r1, r7, #112 ; 0x70 - 8039082: f107 0078 add.w r0, r7, #120 ; 0x78 - 8039086: 2300 movs r3, #0 - 8039088: f7da fbb2 bl 80137f0 + 8038fe6: f9b7 216a ldrsh.w r2, [r7, #362] ; 0x16a + 8038fea: f107 0170 add.w r1, r7, #112 ; 0x70 + 8038fee: f107 0078 add.w r0, r7, #120 ; 0x78 + 8038ff2: 2300 movs r3, #0 + 8038ff4: f7da fbb2 bl 801375c lv_coord_t mask_bg_id = lv_draw_mask_add(&mask_bg_param, NULL); - 803908c: f107 0378 add.w r3, r7, #120 ; 0x78 - 8039090: 2100 movs r1, #0 - 8039092: 4618 mov r0, r3 - 8039094: f7d9 ffd6 bl 8013044 - 8039098: 4603 mov r3, r0 - 803909a: f8a7 3124 strh.w r3, [r7, #292] ; 0x124 + 8038ff8: f107 0378 add.w r3, r7, #120 ; 0x78 + 8038ffc: 2100 movs r1, #0 + 8038ffe: 4618 mov r0, r3 + 8039000: f7d9 ffd6 bl 8012fb0 + 8039004: 4603 mov r3, r0 + 8039006: f8a7 3124 strh.w r3, [r7, #292] ; 0x124 #endif /*Draw_only the background and background image*/ lv_opa_t shadow_opa = draw_rect_dsc.shadow_opa; - 803909e: f897 310e ldrb.w r3, [r7, #270] ; 0x10e - 80390a2: f887 3123 strb.w r3, [r7, #291] ; 0x123 + 803900a: f897 310e ldrb.w r3, [r7, #270] ; 0x10e + 803900e: f887 3123 strb.w r3, [r7, #291] ; 0x123 lv_opa_t border_opa = draw_rect_dsc.border_opa; - 80390a6: f897 30fa ldrb.w r3, [r7, #250] ; 0xfa - 80390aa: f887 3122 strb.w r3, [r7, #290] ; 0x122 + 8039012: f897 30fa ldrb.w r3, [r7, #250] ; 0xfa + 8039016: f887 3122 strb.w r3, [r7, #290] ; 0x122 draw_rect_dsc.border_opa = LV_OPA_TRANSP; - 80390ae: 2300 movs r3, #0 - 80390b0: f887 30fa strb.w r3, [r7, #250] ; 0xfa + 803901a: 2300 movs r3, #0 + 803901c: f887 30fa strb.w r3, [r7, #250] ; 0xfa draw_rect_dsc.shadow_opa = LV_OPA_TRANSP; - 80390b4: 2300 movs r3, #0 - 80390b6: f887 310e strb.w r3, [r7, #270] ; 0x10e + 8039020: 2300 movs r3, #0 + 8039022: f887 310e strb.w r3, [r7, #270] ; 0x10e /*Get the max possible indicator area. The gradient should be applied on this*/ lv_area_t mask_indic_max_area; lv_area_copy(&mask_indic_max_area, &bar_coords); - 80390ba: f507 728c add.w r2, r7, #280 ; 0x118 - 80390be: f107 0368 add.w r3, r7, #104 ; 0x68 - 80390c2: 4611 mov r1, r2 - 80390c4: 4618 mov r0, r3 - 80390c6: f7ff f921 bl 803830c + 8039026: f507 728c add.w r2, r7, #280 ; 0x118 + 803902a: f107 0368 add.w r3, r7, #104 ; 0x68 + 803902e: 4611 mov r1, r2 + 8039030: 4618 mov r0, r3 + 8039032: f7ff f921 bl 8038278 mask_indic_max_area.x1 += bg_left; - 80390ca: f507 73c0 add.w r3, r7, #384 ; 0x180 - 80390ce: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 80390d2: f9b3 3000 ldrsh.w r3, [r3] - 80390d6: b29a uxth r2, r3 - 80390d8: f8b7 314c ldrh.w r3, [r7, #332] ; 0x14c - 80390dc: 4413 add r3, r2 - 80390de: b29b uxth r3, r3 - 80390e0: b21a sxth r2, r3 - 80390e2: f507 73c0 add.w r3, r7, #384 ; 0x180 - 80390e6: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 80390ea: 801a strh r2, [r3, #0] + 8039036: f507 73c0 add.w r3, r7, #384 ; 0x180 + 803903a: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 803903e: f9b3 3000 ldrsh.w r3, [r3] + 8039042: b29a uxth r2, r3 + 8039044: f8b7 314c ldrh.w r3, [r7, #332] ; 0x14c + 8039048: 4413 add r3, r2 + 803904a: b29b uxth r3, r3 + 803904c: b21a sxth r2, r3 + 803904e: f507 73c0 add.w r3, r7, #384 ; 0x180 + 8039052: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8039056: 801a strh r2, [r3, #0] mask_indic_max_area.y1 += bg_top; - 80390ec: f507 73c0 add.w r3, r7, #384 ; 0x180 - 80390f0: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 80390f4: f9b3 3002 ldrsh.w r3, [r3, #2] - 80390f8: b29a uxth r2, r3 - 80390fa: f8b7 3148 ldrh.w r3, [r7, #328] ; 0x148 - 80390fe: 4413 add r3, r2 - 8039100: b29b uxth r3, r3 - 8039102: b21a sxth r2, r3 - 8039104: f507 73c0 add.w r3, r7, #384 ; 0x180 - 8039108: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 803910c: 805a strh r2, [r3, #2] + 8039058: f507 73c0 add.w r3, r7, #384 ; 0x180 + 803905c: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8039060: f9b3 3002 ldrsh.w r3, [r3, #2] + 8039064: b29a uxth r2, r3 + 8039066: f8b7 3148 ldrh.w r3, [r7, #328] ; 0x148 + 803906a: 4413 add r3, r2 + 803906c: b29b uxth r3, r3 + 803906e: b21a sxth r2, r3 + 8039070: f507 73c0 add.w r3, r7, #384 ; 0x180 + 8039074: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8039078: 805a strh r2, [r3, #2] mask_indic_max_area.x2 -= bg_right; - 803910e: f507 73c0 add.w r3, r7, #384 ; 0x180 - 8039112: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 8039116: f9b3 3004 ldrsh.w r3, [r3, #4] - 803911a: b29a uxth r2, r3 - 803911c: f8b7 314a ldrh.w r3, [r7, #330] ; 0x14a - 8039120: 1ad3 subs r3, r2, r3 - 8039122: b29b uxth r3, r3 - 8039124: b21a sxth r2, r3 - 8039126: f507 73c0 add.w r3, r7, #384 ; 0x180 - 803912a: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 803912e: 809a strh r2, [r3, #4] + 803907a: f507 73c0 add.w r3, r7, #384 ; 0x180 + 803907e: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8039082: f9b3 3004 ldrsh.w r3, [r3, #4] + 8039086: b29a uxth r2, r3 + 8039088: f8b7 314a ldrh.w r3, [r7, #330] ; 0x14a + 803908c: 1ad3 subs r3, r2, r3 + 803908e: b29b uxth r3, r3 + 8039090: b21a sxth r2, r3 + 8039092: f507 73c0 add.w r3, r7, #384 ; 0x180 + 8039096: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 803909a: 809a strh r2, [r3, #4] mask_indic_max_area.y2 -= bg_bottom; - 8039130: f507 73c0 add.w r3, r7, #384 ; 0x180 - 8039134: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 8039138: f9b3 3006 ldrsh.w r3, [r3, #6] - 803913c: b29a uxth r2, r3 - 803913e: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 - 8039142: 1ad3 subs r3, r2, r3 - 8039144: b29b uxth r3, r3 - 8039146: b21a sxth r2, r3 - 8039148: f507 73c0 add.w r3, r7, #384 ; 0x180 - 803914c: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 8039150: 80da strh r2, [r3, #6] + 803909c: f507 73c0 add.w r3, r7, #384 ; 0x180 + 80390a0: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 80390a4: f9b3 3006 ldrsh.w r3, [r3, #6] + 80390a8: b29a uxth r2, r3 + 80390aa: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 + 80390ae: 1ad3 subs r3, r2, r3 + 80390b0: b29b uxth r3, r3 + 80390b2: b21a sxth r2, r3 + 80390b4: f507 73c0 add.w r3, r7, #384 ; 0x180 + 80390b8: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 80390bc: 80da strh r2, [r3, #6] if(hor && lv_area_get_height(&mask_indic_max_area) < LV_BAR_SIZE_MIN) { - 8039152: f897 314f ldrb.w r3, [r7, #335] ; 0x14f - 8039156: 2b00 cmp r3, #0 - 8039158: d030 beq.n 80391bc - 803915a: f107 0368 add.w r3, r7, #104 ; 0x68 - 803915e: 4618 mov r0, r3 - 8039160: f7ff f908 bl 8038374 - 8039164: 4603 mov r3, r0 - 8039166: 2b03 cmp r3, #3 - 8039168: dc28 bgt.n 80391bc + 80390be: f897 314f ldrb.w r3, [r7, #335] ; 0x14f + 80390c2: 2b00 cmp r3, #0 + 80390c4: d030 beq.n 8039128 + 80390c6: f107 0368 add.w r3, r7, #104 ; 0x68 + 80390ca: 4618 mov r0, r3 + 80390cc: f7ff f908 bl 80382e0 + 80390d0: 4603 mov r3, r0 + 80390d2: 2b03 cmp r3, #3 + 80390d4: dc28 bgt.n 8039128 mask_indic_max_area.y1 = obj->coords.y1 + (barh / 2) - (LV_BAR_SIZE_MIN / 2); - 803916a: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 - 803916e: f9b3 3016 ldrsh.w r3, [r3, #22] - 8039172: b29a uxth r2, r3 - 8039174: f9b7 3154 ldrsh.w r3, [r7, #340] ; 0x154 - 8039178: 0fd9 lsrs r1, r3, #31 - 803917a: 440b add r3, r1 - 803917c: 105b asrs r3, r3, #1 - 803917e: b21b sxth r3, r3 - 8039180: b29b uxth r3, r3 - 8039182: 4413 add r3, r2 - 8039184: b29b uxth r3, r3 - 8039186: 3b02 subs r3, #2 - 8039188: b29b uxth r3, r3 - 803918a: b21a sxth r2, r3 - 803918c: f507 73c0 add.w r3, r7, #384 ; 0x180 - 8039190: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 8039194: 805a strh r2, [r3, #2] + 80390d6: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 + 80390da: f9b3 3016 ldrsh.w r3, [r3, #22] + 80390de: b29a uxth r2, r3 + 80390e0: f9b7 3154 ldrsh.w r3, [r7, #340] ; 0x154 + 80390e4: 0fd9 lsrs r1, r3, #31 + 80390e6: 440b add r3, r1 + 80390e8: 105b asrs r3, r3, #1 + 80390ea: b21b sxth r3, r3 + 80390ec: b29b uxth r3, r3 + 80390ee: 4413 add r3, r2 + 80390f0: b29b uxth r3, r3 + 80390f2: 3b02 subs r3, #2 + 80390f4: b29b uxth r3, r3 + 80390f6: b21a sxth r2, r3 + 80390f8: f507 73c0 add.w r3, r7, #384 ; 0x180 + 80390fc: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8039100: 805a strh r2, [r3, #2] mask_indic_max_area.y2 = mask_indic_max_area.y1 + LV_BAR_SIZE_MIN; - 8039196: f507 73c0 add.w r3, r7, #384 ; 0x180 - 803919a: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 803919e: f9b3 3002 ldrsh.w r3, [r3, #2] - 80391a2: b29b uxth r3, r3 - 80391a4: 3304 adds r3, #4 - 80391a6: b29b uxth r3, r3 - 80391a8: b21a sxth r2, r3 - 80391aa: f507 73c0 add.w r3, r7, #384 ; 0x180 - 80391ae: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 80391b2: 80da strh r2, [r3, #6] - 80391b4: e036 b.n 8039224 - 80391b6: bf00 nop - 80391b8: 080709c8 .word 0x080709c8 + 8039102: f507 73c0 add.w r3, r7, #384 ; 0x180 + 8039106: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 803910a: f9b3 3002 ldrsh.w r3, [r3, #2] + 803910e: b29b uxth r3, r3 + 8039110: 3304 adds r3, #4 + 8039112: b29b uxth r3, r3 + 8039114: b21a sxth r2, r3 + 8039116: f507 73c0 add.w r3, r7, #384 ; 0x180 + 803911a: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 803911e: 80da strh r2, [r3, #6] + 8039120: e036 b.n 8039190 + 8039122: bf00 nop + 8039124: 08070920 .word 0x08070920 } else if(!hor && lv_area_get_width(&mask_indic_max_area) < LV_BAR_SIZE_MIN) { - 80391bc: f897 314f ldrb.w r3, [r7, #335] ; 0x14f - 80391c0: f083 0301 eor.w r3, r3, #1 - 80391c4: b2db uxtb r3, r3 - 80391c6: 2b00 cmp r3, #0 - 80391c8: d02c beq.n 8039224 - 80391ca: f107 0368 add.w r3, r7, #104 ; 0x68 - 80391ce: 4618 mov r0, r3 - 80391d0: f7ff f8ba bl 8038348 - 80391d4: 4603 mov r3, r0 - 80391d6: 2b03 cmp r3, #3 - 80391d8: dc24 bgt.n 8039224 + 8039128: f897 314f ldrb.w r3, [r7, #335] ; 0x14f + 803912c: f083 0301 eor.w r3, r3, #1 + 8039130: b2db uxtb r3, r3 + 8039132: 2b00 cmp r3, #0 + 8039134: d02c beq.n 8039190 + 8039136: f107 0368 add.w r3, r7, #104 ; 0x68 + 803913a: 4618 mov r0, r3 + 803913c: f7ff f8ba bl 80382b4 + 8039140: 4603 mov r3, r0 + 8039142: 2b03 cmp r3, #3 + 8039144: dc24 bgt.n 8039190 mask_indic_max_area.x1 = obj->coords.x1 + (barw / 2) - (LV_BAR_SIZE_MIN / 2); - 80391da: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 - 80391de: f9b3 3014 ldrsh.w r3, [r3, #20] - 80391e2: b29a uxth r2, r3 - 80391e4: f9b7 3156 ldrsh.w r3, [r7, #342] ; 0x156 - 80391e8: 0fd9 lsrs r1, r3, #31 - 80391ea: 440b add r3, r1 - 80391ec: 105b asrs r3, r3, #1 - 80391ee: b21b sxth r3, r3 - 80391f0: b29b uxth r3, r3 - 80391f2: 4413 add r3, r2 - 80391f4: b29b uxth r3, r3 - 80391f6: 3b02 subs r3, #2 - 80391f8: b29b uxth r3, r3 - 80391fa: b21a sxth r2, r3 - 80391fc: f507 73c0 add.w r3, r7, #384 ; 0x180 - 8039200: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 8039204: 801a strh r2, [r3, #0] + 8039146: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 + 803914a: f9b3 3014 ldrsh.w r3, [r3, #20] + 803914e: b29a uxth r2, r3 + 8039150: f9b7 3156 ldrsh.w r3, [r7, #342] ; 0x156 + 8039154: 0fd9 lsrs r1, r3, #31 + 8039156: 440b add r3, r1 + 8039158: 105b asrs r3, r3, #1 + 803915a: b21b sxth r3, r3 + 803915c: b29b uxth r3, r3 + 803915e: 4413 add r3, r2 + 8039160: b29b uxth r3, r3 + 8039162: 3b02 subs r3, #2 + 8039164: b29b uxth r3, r3 + 8039166: b21a sxth r2, r3 + 8039168: f507 73c0 add.w r3, r7, #384 ; 0x180 + 803916c: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8039170: 801a strh r2, [r3, #0] mask_indic_max_area.x2 = mask_indic_max_area.x1 + LV_BAR_SIZE_MIN; - 8039206: f507 73c0 add.w r3, r7, #384 ; 0x180 - 803920a: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 803920e: f9b3 3000 ldrsh.w r3, [r3] - 8039212: b29b uxth r3, r3 - 8039214: 3304 adds r3, #4 - 8039216: b29b uxth r3, r3 - 8039218: b21a sxth r2, r3 - 803921a: f507 73c0 add.w r3, r7, #384 ; 0x180 - 803921e: f5a3 738c sub.w r3, r3, #280 ; 0x118 - 8039222: 809a strh r2, [r3, #4] + 8039172: f507 73c0 add.w r3, r7, #384 ; 0x180 + 8039176: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 803917a: f9b3 3000 ldrsh.w r3, [r3] + 803917e: b29b uxth r3, r3 + 8039180: 3304 adds r3, #4 + 8039182: b29b uxth r3, r3 + 8039184: b21a sxth r2, r3 + 8039186: f507 73c0 add.w r3, r7, #384 ; 0x180 + 803918a: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 803918e: 809a strh r2, [r3, #4] } #if LV_DRAW_COMPLEX /*Create a mask to the current indicator area to see only this part from the whole gradient.*/ lv_draw_mask_radius_param_t mask_indic_param; lv_draw_mask_radius_init(&mask_indic_param, &bar->indic_area, draw_rect_dsc.radius, false); - 8039224: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8039228: f103 0134 add.w r1, r3, #52 ; 0x34 - 803922c: f9b7 20d8 ldrsh.w r2, [r7, #216] ; 0xd8 - 8039230: f107 0050 add.w r0, r7, #80 ; 0x50 - 8039234: 2300 movs r3, #0 - 8039236: f7da fadb bl 80137f0 + 8039190: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 8039194: f103 0134 add.w r1, r3, #52 ; 0x34 + 8039198: f9b7 20d8 ldrsh.w r2, [r7, #216] ; 0xd8 + 803919c: f107 0050 add.w r0, r7, #80 ; 0x50 + 80391a0: 2300 movs r3, #0 + 80391a2: f7da fadb bl 801375c int16_t mask_indic_id = lv_draw_mask_add(&mask_indic_param, NULL); - 803923a: f107 0350 add.w r3, r7, #80 ; 0x50 - 803923e: 2100 movs r1, #0 - 8039240: 4618 mov r0, r3 - 8039242: f7d9 feff bl 8013044 - 8039246: 4603 mov r3, r0 - 8039248: f8a7 3120 strh.w r3, [r7, #288] ; 0x120 + 80391a6: f107 0350 add.w r3, r7, #80 ; 0x50 + 80391aa: 2100 movs r1, #0 + 80391ac: 4618 mov r0, r3 + 80391ae: f7d9 feff bl 8012fb0 + 80391b2: 4603 mov r3, r0 + 80391b4: f8a7 3120 strh.w r3, [r7, #288] ; 0x120 #endif lv_draw_rect(draw_ctx, &draw_rect_dsc, &mask_indic_max_area); - 803924c: f107 0268 add.w r2, r7, #104 ; 0x68 - 8039250: f107 03d8 add.w r3, r7, #216 ; 0xd8 - 8039254: 4619 mov r1, r3 - 8039256: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 803925a: f7dc fb0d bl 8015878 + 80391b8: f107 0268 add.w r2, r7, #104 ; 0x68 + 80391bc: f107 03d8 add.w r3, r7, #216 ; 0xd8 + 80391c0: 4619 mov r1, r3 + 80391c2: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 80391c6: f7dc fb0d bl 80157e4 draw_rect_dsc.border_opa = border_opa; - 803925e: f897 3122 ldrb.w r3, [r7, #290] ; 0x122 - 8039262: f887 30fa strb.w r3, [r7, #250] ; 0xfa + 80391ca: f897 3122 ldrb.w r3, [r7, #290] ; 0x122 + 80391ce: f887 30fa strb.w r3, [r7, #250] ; 0xfa draw_rect_dsc.shadow_opa = shadow_opa; - 8039266: f897 3123 ldrb.w r3, [r7, #291] ; 0x123 - 803926a: f887 310e strb.w r3, [r7, #270] ; 0x10e + 80391d2: f897 3123 ldrb.w r3, [r7, #291] ; 0x123 + 80391d6: f887 310e strb.w r3, [r7, #270] ; 0x10e /*Draw the border*/ draw_rect_dsc.bg_opa = LV_OPA_TRANSP; - 803926e: 2300 movs r3, #0 - 8039270: f887 30db strb.w r3, [r7, #219] ; 0xdb + 80391da: 2300 movs r3, #0 + 80391dc: f887 30db strb.w r3, [r7, #219] ; 0xdb draw_rect_dsc.bg_img_opa = LV_OPA_TRANSP; - 8039274: 2300 movs r3, #0 - 8039276: f887 30f2 strb.w r3, [r7, #242] ; 0xf2 + 80391e0: 2300 movs r3, #0 + 80391e2: f887 30f2 strb.w r3, [r7, #242] ; 0xf2 draw_rect_dsc.shadow_opa = LV_OPA_TRANSP; - 803927a: 2300 movs r3, #0 - 803927c: f887 310e strb.w r3, [r7, #270] ; 0x10e + 80391e6: 2300 movs r3, #0 + 80391e8: f887 310e strb.w r3, [r7, #270] ; 0x10e lv_draw_rect(draw_ctx, &draw_rect_dsc, &bar->indic_area); - 8039280: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 - 8039284: f103 0234 add.w r2, r3, #52 ; 0x34 - 8039288: f107 03d8 add.w r3, r7, #216 ; 0xd8 - 803928c: 4619 mov r1, r3 - 803928e: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8039292: f7dc faf1 bl 8015878 + 80391ec: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 80391f0: f103 0234 add.w r2, r3, #52 ; 0x34 + 80391f4: f107 03d8 add.w r3, r7, #216 ; 0xd8 + 80391f8: 4619 mov r1, r3 + 80391fa: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 80391fe: f7dc faf1 bl 80157e4 #if LV_DRAW_COMPLEX lv_draw_mask_free_param(&mask_indic_param); - 8039296: f107 0350 add.w r3, r7, #80 ; 0x50 - 803929a: 4618 mov r0, r3 - 803929c: f7d9 ff96 bl 80131cc + 8039202: f107 0350 add.w r3, r7, #80 ; 0x50 + 8039206: 4618 mov r0, r3 + 8039208: f7d9 ff96 bl 8013138 lv_draw_mask_free_param(&mask_bg_param); - 80392a0: f107 0378 add.w r3, r7, #120 ; 0x78 - 80392a4: 4618 mov r0, r3 - 80392a6: f7d9 ff91 bl 80131cc + 803920c: f107 0378 add.w r3, r7, #120 ; 0x78 + 8039210: 4618 mov r0, r3 + 8039212: f7d9 ff91 bl 8013138 lv_draw_mask_remove_id(mask_indic_id); - 80392aa: f9b7 3120 ldrsh.w r3, [r7, #288] ; 0x120 - 80392ae: 4618 mov r0, r3 - 80392b0: f7d9 ff3c bl 801312c + 8039216: f9b7 3120 ldrsh.w r3, [r7, #288] ; 0x120 + 803921a: 4618 mov r0, r3 + 803921c: f7d9 ff3c bl 8013098 lv_draw_mask_remove_id(mask_bg_id); - 80392b4: f9b7 3124 ldrsh.w r3, [r7, #292] ; 0x124 - 80392b8: 4618 mov r0, r3 - 80392ba: f7d9 ff37 bl 801312c + 8039220: f9b7 3124 ldrsh.w r3, [r7, #292] ; 0x124 + 8039224: 4618 mov r0, r3 + 8039226: f7d9 ff37 bl 8013098 #endif lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 80392be: f107 0390 add.w r3, r7, #144 ; 0x90 - 80392c2: 461a mov r2, r3 - 80392c4: 211b movs r1, #27 - 80392c6: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 - 80392ca: f7c9 f8d9 bl 8002480 + 803922a: f107 0390 add.w r3, r7, #144 ; 0x90 + 803922e: 461a mov r2, r3 + 8039230: 211b movs r1, #27 + 8039232: f8d7 0164 ldr.w r0, [r7, #356] ; 0x164 + 8039236: f7c9 f8ed bl 8002414 } - 80392ce: f507 77c0 add.w r7, r7, #384 ; 0x180 - 80392d2: 46bd mov sp, r7 - 80392d4: bd80 pop {r7, pc} - 80392d6: bf00 nop + 803923a: f507 77c0 add.w r7, r7, #384 ; 0x180 + 803923e: 46bd mov sp, r7 + 8039240: bd80 pop {r7, pc} + 8039242: bf00 nop -080392d8 : +08039244 : static void lv_bar_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 80392d8: b580 push {r7, lr} - 80392da: b08a sub sp, #40 ; 0x28 - 80392dc: af00 add r7, sp, #0 - 80392de: 6078 str r0, [r7, #4] - 80392e0: 6039 str r1, [r7, #0] + 8039244: b580 push {r7, lr} + 8039246: b08a sub sp, #40 ; 0x28 + 8039248: af00 add r7, sp, #0 + 803924a: 6078 str r0, [r7, #4] + 803924c: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res; /*Call the ancestor's event handler*/ res = lv_obj_event_base(MY_CLASS, e); - 80392e2: 6839 ldr r1, [r7, #0] - 80392e4: 4843 ldr r0, [pc, #268] ; (80393f4 ) - 80392e6: f7c9 f90d bl 8002504 - 80392ea: 4603 mov r3, r0 - 80392ec: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 803924e: 6839 ldr r1, [r7, #0] + 8039250: 4843 ldr r0, [pc, #268] ; (8039360 ) + 8039252: f7c9 f921 bl 8002498 + 8039256: 4603 mov r3, r0 + 8039258: f887 3027 strb.w r3, [r7, #39] ; 0x27 if(res != LV_RES_OK) return; - 80392f0: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80392f4: 2b01 cmp r3, #1 - 80392f6: d179 bne.n 80393ec + 803925c: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8039260: 2b01 cmp r3, #1 + 8039262: d179 bne.n 8039358 lv_event_code_t code = lv_event_get_code(e); - 80392f8: 6838 ldr r0, [r7, #0] - 80392fa: f7c9 f957 bl 80025ac - 80392fe: 4603 mov r3, r0 - 8039300: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 8039264: 6838 ldr r0, [r7, #0] + 8039266: f7c9 f96b bl 8002540 + 803926a: 4603 mov r3, r0 + 803926c: f887 3026 strb.w r3, [r7, #38] ; 0x26 lv_obj_t * obj = lv_event_get_target(e); - 8039304: 6838 ldr r0, [r7, #0] - 8039306: f7c9 f93b bl 8002580 - 803930a: 6238 str r0, [r7, #32] + 8039270: 6838 ldr r0, [r7, #0] + 8039272: f7c9 f94f bl 8002514 + 8039276: 6238 str r0, [r7, #32] if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) { - 803930c: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 8039310: 2b13 cmp r3, #19 - 8039312: d152 bne.n 80393ba + 8039278: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 803927c: 2b13 cmp r3, #19 + 803927e: d152 bne.n 8039326 lv_coord_t indic_size; indic_size = lv_obj_calculate_ext_draw_size(obj, LV_PART_INDICATOR); - 8039314: f44f 3100 mov.w r1, #131072 ; 0x20000 - 8039318: 6a38 ldr r0, [r7, #32] - 803931a: f7cf fd0b bl 8008d34 - 803931e: 4603 mov r3, r0 - 8039320: 837b strh r3, [r7, #26] + 8039280: f44f 3100 mov.w r1, #131072 ; 0x20000 + 8039284: 6a38 ldr r0, [r7, #32] + 8039286: f7cf fd1f bl 8008cc8 + 803928a: 4603 mov r3, r0 + 803928c: 837b strh r3, [r7, #26] /*Bg size is handled by lv_obj*/ lv_coord_t * s = lv_event_get_param(e); - 8039322: 6838 ldr r0, [r7, #0] - 8039324: f7c9 f950 bl 80025c8 - 8039328: 6178 str r0, [r7, #20] + 803928e: 6838 ldr r0, [r7, #0] + 8039290: f7c9 f964 bl 800255c + 8039294: 6178 str r0, [r7, #20] *s = LV_MAX(*s, indic_size); - 803932a: 697b ldr r3, [r7, #20] - 803932c: f9b3 3000 ldrsh.w r3, [r3] - 8039330: f9b7 201a ldrsh.w r2, [r7, #26] - 8039334: 4293 cmp r3, r2 - 8039336: bfb8 it lt - 8039338: 4613 movlt r3, r2 - 803933a: b21a sxth r2, r3 - 803933c: 697b ldr r3, [r7, #20] - 803933e: 801a strh r2, [r3, #0] + 8039296: 697b ldr r3, [r7, #20] + 8039298: f9b3 3000 ldrsh.w r3, [r3] + 803929c: f9b7 201a ldrsh.w r2, [r7, #26] + 80392a0: 4293 cmp r3, r2 + 80392a2: bfb8 it lt + 80392a4: 4613 movlt r3, r2 + 80392a6: b21a sxth r2, r3 + 80392a8: 697b ldr r3, [r7, #20] + 80392aa: 801a strh r2, [r3, #0] /*Calculate the indicator area*/ lv_coord_t bg_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 8039340: 2100 movs r1, #0 - 8039342: 6a38 ldr r0, [r7, #32] - 8039344: f7ff f8c0 bl 80384c8 - 8039348: 4603 mov r3, r0 - 803934a: 827b strh r3, [r7, #18] + 80392ac: 2100 movs r1, #0 + 80392ae: 6a38 ldr r0, [r7, #32] + 80392b0: f7ff f8c0 bl 8038434 + 80392b4: 4603 mov r3, r0 + 80392b6: 827b strh r3, [r7, #18] lv_coord_t bg_right = lv_obj_get_style_pad_right(obj, LV_PART_MAIN); - 803934c: 2100 movs r1, #0 - 803934e: 6a38 ldr r0, [r7, #32] - 8039350: f7ff f8cd bl 80384ee - 8039354: 4603 mov r3, r0 - 8039356: 823b strh r3, [r7, #16] + 80392b8: 2100 movs r1, #0 + 80392ba: 6a38 ldr r0, [r7, #32] + 80392bc: f7ff f8cd bl 803845a + 80392c0: 4603 mov r3, r0 + 80392c2: 823b strh r3, [r7, #16] lv_coord_t bg_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 8039358: 2100 movs r1, #0 - 803935a: 6a38 ldr r0, [r7, #32] - 803935c: f7ff f88e bl 803847c - 8039360: 4603 mov r3, r0 - 8039362: 81fb strh r3, [r7, #14] + 80392c4: 2100 movs r1, #0 + 80392c6: 6a38 ldr r0, [r7, #32] + 80392c8: f7ff f88e bl 80383e8 + 80392cc: 4603 mov r3, r0 + 80392ce: 81fb strh r3, [r7, #14] lv_coord_t bg_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN); - 8039364: 2100 movs r1, #0 - 8039366: 6a38 ldr r0, [r7, #32] - 8039368: f7ff f89b bl 80384a2 - 803936c: 4603 mov r3, r0 - 803936e: 81bb strh r3, [r7, #12] + 80392d0: 2100 movs r1, #0 + 80392d2: 6a38 ldr r0, [r7, #32] + 80392d4: f7ff f89b bl 803840e + 80392d8: 4603 mov r3, r0 + 80392da: 81bb strh r3, [r7, #12] lv_coord_t pad = LV_MIN4(bg_left, bg_right, bg_top, bg_bottom); - 8039370: f9b7 200c ldrsh.w r2, [r7, #12] - 8039374: f9b7 300e ldrsh.w r3, [r7, #14] - 8039378: 4293 cmp r3, r2 - 803937a: bfa8 it ge - 803937c: 4613 movge r3, r2 - 803937e: b21a sxth r2, r3 - 8039380: f9b7 1010 ldrsh.w r1, [r7, #16] - 8039384: f9b7 3012 ldrsh.w r3, [r7, #18] - 8039388: 428b cmp r3, r1 - 803938a: bfa8 it ge - 803938c: 460b movge r3, r1 - 803938e: b21b sxth r3, r3 - 8039390: 4293 cmp r3, r2 - 8039392: bfa8 it ge - 8039394: 4613 movge r3, r2 - 8039396: 817b strh r3, [r7, #10] + 80392dc: f9b7 200c ldrsh.w r2, [r7, #12] + 80392e0: f9b7 300e ldrsh.w r3, [r7, #14] + 80392e4: 4293 cmp r3, r2 + 80392e6: bfa8 it ge + 80392e8: 4613 movge r3, r2 + 80392ea: b21a sxth r2, r3 + 80392ec: f9b7 1010 ldrsh.w r1, [r7, #16] + 80392f0: f9b7 3012 ldrsh.w r3, [r7, #18] + 80392f4: 428b cmp r3, r1 + 80392f6: bfa8 it ge + 80392f8: 460b movge r3, r1 + 80392fa: b21b sxth r3, r3 + 80392fc: 4293 cmp r3, r2 + 80392fe: bfa8 it ge + 8039300: 4613 movge r3, r2 + 8039302: 817b strh r3, [r7, #10] if(pad < 0) { - 8039398: f9b7 300a ldrsh.w r3, [r7, #10] - 803939c: 2b00 cmp r3, #0 - 803939e: da26 bge.n 80393ee + 8039304: f9b7 300a ldrsh.w r3, [r7, #10] + 8039308: 2b00 cmp r3, #0 + 803930a: da26 bge.n 803935a *s = LV_MAX(*s, -pad); - 80393a0: f9b7 300a ldrsh.w r3, [r7, #10] - 80393a4: 425b negs r3, r3 - 80393a6: 697a ldr r2, [r7, #20] - 80393a8: f9b2 2000 ldrsh.w r2, [r2] - 80393ac: 4293 cmp r3, r2 - 80393ae: bfb8 it lt - 80393b0: 4613 movlt r3, r2 - 80393b2: b21a sxth r2, r3 - 80393b4: 697b ldr r3, [r7, #20] - 80393b6: 801a strh r2, [r3, #0] - 80393b8: e019 b.n 80393ee + 803930c: f9b7 300a ldrsh.w r3, [r7, #10] + 8039310: 425b negs r3, r3 + 8039312: 697a ldr r2, [r7, #20] + 8039314: f9b2 2000 ldrsh.w r2, [r2] + 8039318: 4293 cmp r3, r2 + 803931a: bfb8 it lt + 803931c: 4613 movlt r3, r2 + 803931e: b21a sxth r2, r3 + 8039320: 697b ldr r3, [r7, #20] + 8039322: 801a strh r2, [r3, #0] + 8039324: e019 b.n 803935a } } else if(code == LV_EVENT_PRESSED || code == LV_EVENT_RELEASED) { - 80393ba: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 80393be: 2b01 cmp r3, #1 - 80393c0: d003 beq.n 80393ca - 80393c2: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 80393c6: 2b08 cmp r3, #8 - 80393c8: d108 bne.n 80393dc + 8039326: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 803932a: 2b01 cmp r3, #1 + 803932c: d003 beq.n 8039336 + 803932e: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 8039332: 2b08 cmp r3, #8 + 8039334: d108 bne.n 8039348 lv_bar_t * bar = (lv_bar_t *)obj; - 80393ca: 6a3b ldr r3, [r7, #32] - 80393cc: 61fb str r3, [r7, #28] + 8039336: 6a3b ldr r3, [r7, #32] + 8039338: 61fb str r3, [r7, #28] lv_obj_invalidate_area(obj, &bar->indic_area); - 80393ce: 69fb ldr r3, [r7, #28] - 80393d0: 3334 adds r3, #52 ; 0x34 - 80393d2: 4619 mov r1, r3 - 80393d4: 6a38 ldr r0, [r7, #32] - 80393d6: f7d1 fb48 bl 800aa6a + 803933a: 69fb ldr r3, [r7, #28] + 803933c: 3334 adds r3, #52 ; 0x34 + 803933e: 4619 mov r1, r3 + 8039340: 6a38 ldr r0, [r7, #32] + 8039342: f7d1 fb5c bl 800a9fe else if(code == LV_EVENT_PRESSED || code == LV_EVENT_RELEASED) { - 80393da: e008 b.n 80393ee + 8039346: e008 b.n 803935a } else if(code == LV_EVENT_DRAW_MAIN) { - 80393dc: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 80393e0: 2b15 cmp r3, #21 - 80393e2: d104 bne.n 80393ee + 8039348: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 803934c: 2b15 cmp r3, #21 + 803934e: d104 bne.n 803935a draw_indic(e); - 80393e4: 6838 ldr r0, [r7, #0] - 80393e6: f7ff f9e3 bl 80387b0 - 80393ea: e000 b.n 80393ee + 8039350: 6838 ldr r0, [r7, #0] + 8039352: f7ff f9e3 bl 803871c + 8039356: e000 b.n 803935a if(res != LV_RES_OK) return; - 80393ec: bf00 nop + 8039358: bf00 nop } } - 80393ee: 3728 adds r7, #40 ; 0x28 - 80393f0: 46bd mov sp, r7 - 80393f2: bd80 pop {r7, pc} - 80393f4: 080709c8 .word 0x080709c8 + 803935a: 3728 adds r7, #40 ; 0x28 + 803935c: 46bd mov sp, r7 + 803935e: bd80 pop {r7, pc} + 8039360: 08070920 .word 0x08070920 -080393f8 : +08039364 : static void lv_bar_anim(void * var, int32_t value) { - 80393f8: b580 push {r7, lr} - 80393fa: b084 sub sp, #16 - 80393fc: af00 add r7, sp, #0 - 80393fe: 6078 str r0, [r7, #4] - 8039400: 6039 str r1, [r7, #0] + 8039364: b580 push {r7, lr} + 8039366: b084 sub sp, #16 + 8039368: af00 add r7, sp, #0 + 803936a: 6078 str r0, [r7, #4] + 803936c: 6039 str r1, [r7, #0] _lv_bar_anim_t * bar_anim = var; - 8039402: 687b ldr r3, [r7, #4] - 8039404: 60fb str r3, [r7, #12] + 803936e: 687b ldr r3, [r7, #4] + 8039370: 60fb str r3, [r7, #12] bar_anim->anim_state = value; - 8039406: 68fb ldr r3, [r7, #12] - 8039408: 683a ldr r2, [r7, #0] - 803940a: 60da str r2, [r3, #12] + 8039372: 68fb ldr r3, [r7, #12] + 8039374: 683a ldr r2, [r7, #0] + 8039376: 60da str r2, [r3, #12] lv_obj_invalidate(bar_anim->bar); - 803940c: 68fb ldr r3, [r7, #12] - 803940e: 681b ldr r3, [r3, #0] - 8039410: 4618 mov r0, r3 - 8039412: f7d1 fb4e bl 800aab2 + 8039378: 68fb ldr r3, [r7, #12] + 803937a: 681b ldr r3, [r3, #0] + 803937c: 4618 mov r0, r3 + 803937e: f7d1 fb62 bl 800aa46 } - 8039416: bf00 nop - 8039418: 3710 adds r7, #16 - 803941a: 46bd mov sp, r7 - 803941c: bd80 pop {r7, pc} + 8039382: bf00 nop + 8039384: 3710 adds r7, #16 + 8039386: 46bd mov sp, r7 + 8039388: bd80 pop {r7, pc} -0803941e : +0803938a : static void lv_bar_anim_ready(lv_anim_t * a) { - 803941e: b580 push {r7, lr} - 8039420: b086 sub sp, #24 - 8039422: af00 add r7, sp, #0 - 8039424: 6078 str r0, [r7, #4] + 803938a: b580 push {r7, lr} + 803938c: b086 sub sp, #24 + 803938e: af00 add r7, sp, #0 + 8039390: 6078 str r0, [r7, #4] _lv_bar_anim_t * var = a->var; - 8039426: 687b ldr r3, [r7, #4] - 8039428: 681b ldr r3, [r3, #0] - 803942a: 617b str r3, [r7, #20] + 8039392: 687b ldr r3, [r7, #4] + 8039394: 681b ldr r3, [r3, #0] + 8039396: 617b str r3, [r7, #20] lv_obj_t * obj = (lv_obj_t *)var->bar; - 803942c: 697b ldr r3, [r7, #20] - 803942e: 681b ldr r3, [r3, #0] - 8039430: 613b str r3, [r7, #16] + 8039398: 697b ldr r3, [r7, #20] + 803939a: 681b ldr r3, [r3, #0] + 803939c: 613b str r3, [r7, #16] lv_bar_t * bar = (lv_bar_t *)obj; - 8039432: 693b ldr r3, [r7, #16] - 8039434: 60fb str r3, [r7, #12] + 803939e: 693b ldr r3, [r7, #16] + 80393a0: 60fb str r3, [r7, #12] var->anim_state = LV_BAR_ANIM_STATE_INV; - 8039436: 697b ldr r3, [r7, #20] - 8039438: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 803943c: 60da str r2, [r3, #12] + 80393a2: 697b ldr r3, [r7, #20] + 80393a4: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 80393a8: 60da str r2, [r3, #12] if(var == &bar->cur_value_anim) - 803943e: 68fb ldr r3, [r7, #12] - 8039440: 333c adds r3, #60 ; 0x3c - 8039442: 697a ldr r2, [r7, #20] - 8039444: 429a cmp r2, r3 - 8039446: d104 bne.n 8039452 + 80393aa: 68fb ldr r3, [r7, #12] + 80393ac: 333c adds r3, #60 ; 0x3c + 80393ae: 697a ldr r2, [r7, #20] + 80393b0: 429a cmp r2, r3 + 80393b2: d104 bne.n 80393be bar->cur_value = var->anim_end; - 8039448: 697b ldr r3, [r7, #20] - 803944a: 689a ldr r2, [r3, #8] - 803944c: 68fb ldr r3, [r7, #12] - 803944e: 625a str r2, [r3, #36] ; 0x24 - 8039450: e008 b.n 8039464 + 80393b4: 697b ldr r3, [r7, #20] + 80393b6: 689a ldr r2, [r3, #8] + 80393b8: 68fb ldr r3, [r7, #12] + 80393ba: 625a str r2, [r3, #36] ; 0x24 + 80393bc: e008 b.n 80393d0 else if(var == &bar->start_value_anim) - 8039452: 68fb ldr r3, [r7, #12] - 8039454: 334c adds r3, #76 ; 0x4c - 8039456: 697a ldr r2, [r7, #20] - 8039458: 429a cmp r2, r3 - 803945a: d103 bne.n 8039464 + 80393be: 68fb ldr r3, [r7, #12] + 80393c0: 334c adds r3, #76 ; 0x4c + 80393c2: 697a ldr r2, [r7, #20] + 80393c4: 429a cmp r2, r3 + 80393c6: d103 bne.n 80393d0 bar->start_value = var->anim_end; - 803945c: 697b ldr r3, [r7, #20] - 803945e: 689a ldr r2, [r3, #8] - 8039460: 68fb ldr r3, [r7, #12] - 8039462: 631a str r2, [r3, #48] ; 0x30 + 80393c8: 697b ldr r3, [r7, #20] + 80393ca: 689a ldr r2, [r3, #8] + 80393cc: 68fb ldr r3, [r7, #12] + 80393ce: 631a str r2, [r3, #48] ; 0x30 lv_obj_invalidate(var->bar); - 8039464: 697b ldr r3, [r7, #20] - 8039466: 681b ldr r3, [r3, #0] - 8039468: 4618 mov r0, r3 - 803946a: f7d1 fb22 bl 800aab2 + 80393d0: 697b ldr r3, [r7, #20] + 80393d2: 681b ldr r3, [r3, #0] + 80393d4: 4618 mov r0, r3 + 80393d6: f7d1 fb36 bl 800aa46 } - 803946e: bf00 nop - 8039470: 3718 adds r7, #24 - 8039472: 46bd mov sp, r7 - 8039474: bd80 pop {r7, pc} + 80393da: bf00 nop + 80393dc: 3718 adds r7, #24 + 80393de: 46bd mov sp, r7 + 80393e0: bd80 pop {r7, pc} ... -08039478 : +080393e4 : static void lv_bar_set_value_with_anim(lv_obj_t * obj, int32_t new_value, int32_t * value_ptr, _lv_bar_anim_t * anim_info, lv_anim_enable_t en) { - 8039478: b580 push {r7, lr} - 803947a: b094 sub sp, #80 ; 0x50 - 803947c: af00 add r7, sp, #0 - 803947e: 60f8 str r0, [r7, #12] - 8039480: 60b9 str r1, [r7, #8] - 8039482: 607a str r2, [r7, #4] - 8039484: 603b str r3, [r7, #0] + 80393e4: b580 push {r7, lr} + 80393e6: b094 sub sp, #80 ; 0x50 + 80393e8: af00 add r7, sp, #0 + 80393ea: 60f8 str r0, [r7, #12] + 80393ec: 60b9 str r1, [r7, #8] + 80393ee: 607a str r2, [r7, #4] + 80393f0: 603b str r3, [r7, #0] if(en == LV_ANIM_OFF) { - 8039486: f897 3058 ldrb.w r3, [r7, #88] ; 0x58 - 803948a: 2b00 cmp r3, #0 - 803948c: d106 bne.n 803949c + 80393f2: f897 3058 ldrb.w r3, [r7, #88] ; 0x58 + 80393f6: 2b00 cmp r3, #0 + 80393f8: d106 bne.n 8039408 *value_ptr = new_value; - 803948e: 687b ldr r3, [r7, #4] - 8039490: 68ba ldr r2, [r7, #8] - 8039492: 601a str r2, [r3, #0] + 80393fa: 687b ldr r3, [r7, #4] + 80393fc: 68ba ldr r2, [r7, #8] + 80393fe: 601a str r2, [r3, #0] lv_obj_invalidate((lv_obj_t *)obj); - 8039494: 68f8 ldr r0, [r7, #12] - 8039496: f7d1 fb0c bl 800aab2 + 8039400: 68f8 ldr r0, [r7, #12] + 8039402: f7d1 fb20 bl 800aa46 lv_anim_set_values(&a, LV_BAR_ANIM_STATE_START, LV_BAR_ANIM_STATE_END); lv_anim_set_ready_cb(&a, lv_bar_anim_ready); lv_anim_set_time(&a, lv_obj_get_style_anim_time(obj, LV_PART_MAIN)); lv_anim_start(&a); } } - 803949a: e049 b.n 8039530 + 8039406: e049 b.n 803949c if(anim_info->anim_state == LV_BAR_ANIM_STATE_INV) { - 803949c: 683b ldr r3, [r7, #0] - 803949e: 68db ldr r3, [r3, #12] - 80394a0: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 80394a4: d107 bne.n 80394b6 + 8039408: 683b ldr r3, [r7, #0] + 803940a: 68db ldr r3, [r3, #12] + 803940c: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 8039410: d107 bne.n 8039422 anim_info->anim_start = *value_ptr; - 80394a6: 687b ldr r3, [r7, #4] - 80394a8: 681a ldr r2, [r3, #0] - 80394aa: 683b ldr r3, [r7, #0] - 80394ac: 605a str r2, [r3, #4] + 8039412: 687b ldr r3, [r7, #4] + 8039414: 681a ldr r2, [r3, #0] + 8039416: 683b ldr r3, [r7, #0] + 8039418: 605a str r2, [r3, #4] anim_info->anim_end = new_value; - 80394ae: 683b ldr r3, [r7, #0] - 80394b0: 68ba ldr r2, [r7, #8] - 80394b2: 609a str r2, [r3, #8] - 80394b4: e006 b.n 80394c4 + 803941a: 683b ldr r3, [r7, #0] + 803941c: 68ba ldr r2, [r7, #8] + 803941e: 609a str r2, [r3, #8] + 8039420: e006 b.n 8039430 anim_info->anim_start = anim_info->anim_end; - 80394b6: 683b ldr r3, [r7, #0] - 80394b8: 689a ldr r2, [r3, #8] - 80394ba: 683b ldr r3, [r7, #0] - 80394bc: 605a str r2, [r3, #4] + 8039422: 683b ldr r3, [r7, #0] + 8039424: 689a ldr r2, [r3, #8] + 8039426: 683b ldr r3, [r7, #0] + 8039428: 605a str r2, [r3, #4] anim_info->anim_end = new_value; - 80394be: 683b ldr r3, [r7, #0] - 80394c0: 68ba ldr r2, [r7, #8] - 80394c2: 609a str r2, [r3, #8] + 803942a: 683b ldr r3, [r7, #0] + 803942c: 68ba ldr r2, [r7, #8] + 803942e: 609a str r2, [r3, #8] *value_ptr = new_value; - 80394c4: 687b ldr r3, [r7, #4] - 80394c6: 68ba ldr r2, [r7, #8] - 80394c8: 601a str r2, [r3, #0] + 8039430: 687b ldr r3, [r7, #4] + 8039432: 68ba ldr r2, [r7, #8] + 8039434: 601a str r2, [r3, #0] lv_anim_del(anim_info, NULL); - 80394ca: 2100 movs r1, #0 - 80394cc: 6838 ldr r0, [r7, #0] - 80394ce: f7f7 fa5d bl 803098c + 8039436: 2100 movs r1, #0 + 8039438: 6838 ldr r0, [r7, #0] + 803943a: f7f7 fa5d bl 80308f8 lv_anim_init(&a); - 80394d2: f107 0310 add.w r3, r7, #16 - 80394d6: 4618 mov r0, r3 - 80394d8: f7f7 f9ba bl 8030850 + 803943e: f107 0310 add.w r3, r7, #16 + 8039442: 4618 mov r0, r3 + 8039444: f7f7 f9ba bl 80307bc lv_anim_set_var(&a, anim_info); - 80394dc: f107 0310 add.w r3, r7, #16 - 80394e0: 6839 ldr r1, [r7, #0] - 80394e2: 4618 mov r0, r3 - 80394e4: f7fe ff5c bl 80383a0 + 8039448: f107 0310 add.w r3, r7, #16 + 803944c: 6839 ldr r1, [r7, #0] + 803944e: 4618 mov r0, r3 + 8039450: f7fe ff5c bl 803830c lv_anim_set_exec_cb(&a, lv_bar_anim); - 80394e8: f107 0310 add.w r3, r7, #16 - 80394ec: 4912 ldr r1, [pc, #72] ; (8039538 ) - 80394ee: 4618 mov r0, r3 - 80394f0: f7fe ff63 bl 80383ba + 8039454: f107 0310 add.w r3, r7, #16 + 8039458: 4912 ldr r1, [pc, #72] ; (80394a4 ) + 803945a: 4618 mov r0, r3 + 803945c: f7fe ff63 bl 8038326 lv_anim_set_values(&a, LV_BAR_ANIM_STATE_START, LV_BAR_ANIM_STATE_END); - 80394f4: f107 0310 add.w r3, r7, #16 - 80394f8: f44f 7280 mov.w r2, #256 ; 0x100 - 80394fc: 2100 movs r1, #0 - 80394fe: 4618 mov r0, r3 - 8039500: f7fe ff75 bl 80383ee + 8039460: f107 0310 add.w r3, r7, #16 + 8039464: f44f 7280 mov.w r2, #256 ; 0x100 + 8039468: 2100 movs r1, #0 + 803946a: 4618 mov r0, r3 + 803946c: f7fe ff75 bl 803835a lv_anim_set_ready_cb(&a, lv_bar_anim_ready); - 8039504: f107 0310 add.w r3, r7, #16 - 8039508: 490c ldr r1, [pc, #48] ; (803953c ) - 803950a: 4618 mov r0, r3 - 803950c: f7fe ff83 bl 8038416 + 8039470: f107 0310 add.w r3, r7, #16 + 8039474: 490c ldr r1, [pc, #48] ; (80394a8 ) + 8039476: 4618 mov r0, r3 + 8039478: f7fe ff83 bl 8038382 lv_anim_set_time(&a, lv_obj_get_style_anim_time(obj, LV_PART_MAIN)); - 8039510: 2100 movs r1, #0 - 8039512: 68f8 ldr r0, [r7, #12] - 8039514: f7ff f810 bl 8038538 - 8039518: 4602 mov r2, r0 - 803951a: f107 0310 add.w r3, r7, #16 - 803951e: 4611 mov r1, r2 - 8039520: 4618 mov r0, r3 - 8039522: f7fe ff57 bl 80383d4 + 803947c: 2100 movs r1, #0 + 803947e: 68f8 ldr r0, [r7, #12] + 8039480: f7ff f810 bl 80384a4 + 8039484: 4602 mov r2, r0 + 8039486: f107 0310 add.w r3, r7, #16 + 803948a: 4611 mov r1, r2 + 803948c: 4618 mov r0, r3 + 803948e: f7fe ff57 bl 8038340 lv_anim_start(&a); - 8039526: f107 0310 add.w r3, r7, #16 - 803952a: 4618 mov r0, r3 - 803952c: f7f7 f9b6 bl 803089c + 8039492: f107 0310 add.w r3, r7, #16 + 8039496: 4618 mov r0, r3 + 8039498: f7f7 f9b6 bl 8030808 } - 8039530: bf00 nop - 8039532: 3750 adds r7, #80 ; 0x50 - 8039534: 46bd mov sp, r7 - 8039536: bd80 pop {r7, pc} - 8039538: 080393f9 .word 0x080393f9 - 803953c: 0803941f .word 0x0803941f + 803949c: bf00 nop + 803949e: 3750 adds r7, #80 ; 0x50 + 80394a0: 46bd mov sp, r7 + 80394a2: bd80 pop {r7, pc} + 80394a4: 08039365 .word 0x08039365 + 80394a8: 0803938b .word 0x0803938b -08039540 : +080394ac : static void lv_bar_init_anim(lv_obj_t * obj, _lv_bar_anim_t * bar_anim) { - 8039540: b480 push {r7} - 8039542: b083 sub sp, #12 - 8039544: af00 add r7, sp, #0 - 8039546: 6078 str r0, [r7, #4] - 8039548: 6039 str r1, [r7, #0] + 80394ac: b480 push {r7} + 80394ae: b083 sub sp, #12 + 80394b0: af00 add r7, sp, #0 + 80394b2: 6078 str r0, [r7, #4] + 80394b4: 6039 str r1, [r7, #0] bar_anim->bar = obj; - 803954a: 683b ldr r3, [r7, #0] - 803954c: 687a ldr r2, [r7, #4] - 803954e: 601a str r2, [r3, #0] + 80394b6: 683b ldr r3, [r7, #0] + 80394b8: 687a ldr r2, [r7, #4] + 80394ba: 601a str r2, [r3, #0] bar_anim->anim_start = 0; - 8039550: 683b ldr r3, [r7, #0] - 8039552: 2200 movs r2, #0 - 8039554: 605a str r2, [r3, #4] + 80394bc: 683b ldr r3, [r7, #0] + 80394be: 2200 movs r2, #0 + 80394c0: 605a str r2, [r3, #4] bar_anim->anim_end = 0; - 8039556: 683b ldr r3, [r7, #0] - 8039558: 2200 movs r2, #0 - 803955a: 609a str r2, [r3, #8] + 80394c2: 683b ldr r3, [r7, #0] + 80394c4: 2200 movs r2, #0 + 80394c6: 609a str r2, [r3, #8] bar_anim->anim_state = LV_BAR_ANIM_STATE_INV; - 803955c: 683b ldr r3, [r7, #0] - 803955e: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 8039562: 60da str r2, [r3, #12] + 80394c8: 683b ldr r3, [r7, #0] + 80394ca: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 80394ce: 60da str r2, [r3, #12] } - 8039564: bf00 nop - 8039566: 370c adds r7, #12 - 8039568: 46bd mov sp, r7 - 803956a: bc80 pop {r7} - 803956c: 4770 bx lr + 80394d0: bf00 nop + 80394d2: 370c adds r7, #12 + 80394d4: 46bd mov sp, r7 + 80394d6: bc80 pop {r7} + 80394d8: 4770 bx lr ... -08039570 : +080394dc : /********************** * GLOBAL FUNCTIONS **********************/ lv_obj_t * lv_btn_create(lv_obj_t * parent) { - 8039570: b580 push {r7, lr} - 8039572: b084 sub sp, #16 - 8039574: af00 add r7, sp, #0 - 8039576: 6078 str r0, [r7, #4] + 80394dc: b580 push {r7, lr} + 80394de: b084 sub sp, #16 + 80394e0: af00 add r7, sp, #0 + 80394e2: 6078 str r0, [r7, #4] LV_LOG_INFO("begin"); lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); - 8039578: 6879 ldr r1, [r7, #4] - 803957a: 4806 ldr r0, [pc, #24] ; (8039594 ) - 803957c: f7ce fa69 bl 8007a52 - 8039580: 60f8 str r0, [r7, #12] + 80394e4: 6879 ldr r1, [r7, #4] + 80394e6: 4806 ldr r0, [pc, #24] ; (8039500 ) + 80394e8: f7ce fa7d bl 80079e6 + 80394ec: 60f8 str r0, [r7, #12] lv_obj_class_init_obj(obj); - 8039582: 68f8 ldr r0, [r7, #12] - 8039584: f7ce fb17 bl 8007bb6 + 80394ee: 68f8 ldr r0, [r7, #12] + 80394f0: f7ce fb2b bl 8007b4a return obj; - 8039588: 68fb ldr r3, [r7, #12] + 80394f4: 68fb ldr r3, [r7, #12] } - 803958a: 4618 mov r0, r3 - 803958c: 3710 adds r7, #16 - 803958e: 46bd mov sp, r7 - 8039590: bd80 pop {r7, pc} - 8039592: bf00 nop - 8039594: 080709e4 .word 0x080709e4 + 80394f6: 4618 mov r0, r3 + 80394f8: 3710 adds r7, #16 + 80394fa: 46bd mov sp, r7 + 80394fc: bd80 pop {r7, pc} + 80394fe: bf00 nop + 8039500: 0807093c .word 0x0807093c -08039598 : +08039504 : /********************** * STATIC FUNCTIONS **********************/ static void lv_btn_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 8039598: b580 push {r7, lr} - 803959a: b082 sub sp, #8 - 803959c: af00 add r7, sp, #0 - 803959e: 6078 str r0, [r7, #4] - 80395a0: 6039 str r1, [r7, #0] + 8039504: b580 push {r7, lr} + 8039506: b082 sub sp, #8 + 8039508: af00 add r7, sp, #0 + 803950a: 6078 str r0, [r7, #4] + 803950c: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); - 80395a2: 2110 movs r1, #16 - 80395a4: 6838 ldr r0, [r7, #0] - 80395a6: f7cd f85b bl 8006660 + 803950e: 2110 movs r1, #16 + 8039510: 6838 ldr r0, [r7, #0] + 8039512: f7cd f86f bl 80065f4 lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS); - 80395aa: f44f 6180 mov.w r1, #1024 ; 0x400 - 80395ae: 6838 ldr r0, [r7, #0] - 80395b0: f7cd f802 bl 80065b8 + 8039516: f44f 6180 mov.w r1, #1024 ; 0x400 + 803951a: 6838 ldr r0, [r7, #0] + 803951c: f7cd f816 bl 800654c LV_TRACE_OBJ_CREATE("finished"); } - 80395b4: bf00 nop - 80395b6: 3708 adds r7, #8 - 80395b8: 46bd mov sp, r7 - 80395ba: bd80 pop {r7, pc} + 8039520: bf00 nop + 8039522: 3708 adds r7, #8 + 8039524: 46bd mov sp, r7 + 8039526: bd80 pop {r7, pc} -080395bc : +08039528 : { - 80395bc: b480 push {r7} - 80395be: b083 sub sp, #12 + 8039528: b480 push {r7} + 803952a: b083 sub sp, #12 + 803952c: af00 add r7, sp, #0 + 803952e: 6078 str r0, [r7, #4] + 8039530: 6039 str r1, [r7, #0] + dest->x1 = src->x1; + 8039532: 683b ldr r3, [r7, #0] + 8039534: f9b3 2000 ldrsh.w r2, [r3] + 8039538: 687b ldr r3, [r7, #4] + 803953a: 801a strh r2, [r3, #0] + dest->y1 = src->y1; + 803953c: 683b ldr r3, [r7, #0] + 803953e: f9b3 2002 ldrsh.w r2, [r3, #2] + 8039542: 687b ldr r3, [r7, #4] + 8039544: 805a strh r2, [r3, #2] + dest->x2 = src->x2; + 8039546: 683b ldr r3, [r7, #0] + 8039548: f9b3 2004 ldrsh.w r2, [r3, #4] + 803954c: 687b ldr r3, [r7, #4] + 803954e: 809a strh r2, [r3, #4] + dest->y2 = src->y2; + 8039550: 683b ldr r3, [r7, #0] + 8039552: f9b3 2006 ldrsh.w r2, [r3, #6] + 8039556: 687b ldr r3, [r7, #4] + 8039558: 80da strh r2, [r3, #6] +} + 803955a: bf00 nop + 803955c: 370c adds r7, #12 + 803955e: 46bd mov sp, r7 + 8039560: bc80 pop {r7} + 8039562: 4770 bx lr + +08039564 : +{ + 8039564: b480 push {r7} + 8039566: b083 sub sp, #12 + 8039568: af00 add r7, sp, #0 + 803956a: 6078 str r0, [r7, #4] + return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); + 803956c: 687b ldr r3, [r7, #4] + 803956e: f9b3 3004 ldrsh.w r3, [r3, #4] + 8039572: b29a uxth r2, r3 + 8039574: 687b ldr r3, [r7, #4] + 8039576: f9b3 3000 ldrsh.w r3, [r3] + 803957a: b29b uxth r3, r3 + 803957c: 1ad3 subs r3, r2, r3 + 803957e: b29b uxth r3, r3 + 8039580: 3301 adds r3, #1 + 8039582: b29b uxth r3, r3 + 8039584: b21b sxth r3, r3 +} + 8039586: 4618 mov r0, r3 + 8039588: 370c adds r7, #12 + 803958a: 46bd mov sp, r7 + 803958c: bc80 pop {r7} + 803958e: 4770 bx lr + +08039590 : +{ + 8039590: b480 push {r7} + 8039592: b083 sub sp, #12 + 8039594: af00 add r7, sp, #0 + 8039596: 6078 str r0, [r7, #4] + return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); + 8039598: 687b ldr r3, [r7, #4] + 803959a: f9b3 3006 ldrsh.w r3, [r3, #6] + 803959e: b29a uxth r2, r3 + 80395a0: 687b ldr r3, [r7, #4] + 80395a2: f9b3 3002 ldrsh.w r3, [r3, #2] + 80395a6: b29b uxth r3, r3 + 80395a8: 1ad3 subs r3, r2, r3 + 80395aa: b29b uxth r3, r3 + 80395ac: 3301 adds r3, #1 + 80395ae: b29b uxth r3, r3 + 80395b0: b21b sxth r3, r3 +} + 80395b2: 4618 mov r0, r3 + 80395b4: 370c adds r7, #12 + 80395b6: 46bd mov sp, r7 + 80395b8: bc80 pop {r7} + 80395ba: 4770 bx lr + +080395bc : +{ + 80395bc: b580 push {r7, lr} + 80395be: b084 sub sp, #16 80395c0: af00 add r7, sp, #0 80395c2: 6078 str r0, [r7, #4] 80395c4: 6039 str r1, [r7, #0] - dest->x1 = src->x1; - 80395c6: 683b ldr r3, [r7, #0] - 80395c8: f9b3 2000 ldrsh.w r2, [r3] - 80395cc: 687b ldr r3, [r7, #4] - 80395ce: 801a strh r2, [r3, #0] - dest->y1 = src->y1; - 80395d0: 683b ldr r3, [r7, #0] - 80395d2: f9b3 2002 ldrsh.w r2, [r3, #2] - 80395d6: 687b ldr r3, [r7, #4] - 80395d8: 805a strh r2, [r3, #2] - dest->x2 = src->x2; - 80395da: 683b ldr r3, [r7, #0] - 80395dc: f9b3 2004 ldrsh.w r2, [r3, #4] - 80395e0: 687b ldr r3, [r7, #4] - 80395e2: 809a strh r2, [r3, #4] - dest->y2 = src->y2; - 80395e4: 683b ldr r3, [r7, #0] - 80395e6: f9b3 2006 ldrsh.w r2, [r3, #6] - 80395ea: 687b ldr r3, [r7, #4] - 80395ec: 80da strh r2, [r3, #6] -} - 80395ee: bf00 nop - 80395f0: 370c adds r7, #12 - 80395f2: 46bd mov sp, r7 - 80395f4: bc80 pop {r7} - 80395f6: 4770 bx lr - -080395f8 : -{ - 80395f8: b480 push {r7} - 80395fa: b083 sub sp, #12 - 80395fc: af00 add r7, sp, #0 - 80395fe: 6078 str r0, [r7, #4] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 8039600: 687b ldr r3, [r7, #4] - 8039602: f9b3 3004 ldrsh.w r3, [r3, #4] - 8039606: b29a uxth r2, r3 - 8039608: 687b ldr r3, [r7, #4] - 803960a: f9b3 3000 ldrsh.w r3, [r3] - 803960e: b29b uxth r3, r3 - 8039610: 1ad3 subs r3, r2, r3 - 8039612: b29b uxth r3, r3 - 8039614: 3301 adds r3, #1 - 8039616: b29b uxth r3, r3 - 8039618: b21b sxth r3, r3 -} - 803961a: 4618 mov r0, r3 - 803961c: 370c adds r7, #12 - 803961e: 46bd mov sp, r7 - 8039620: bc80 pop {r7} - 8039622: 4770 bx lr - -08039624 : -{ - 8039624: b480 push {r7} - 8039626: b083 sub sp, #12 - 8039628: af00 add r7, sp, #0 - 803962a: 6078 str r0, [r7, #4] - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 803962c: 687b ldr r3, [r7, #4] - 803962e: f9b3 3006 ldrsh.w r3, [r3, #6] - 8039632: b29a uxth r2, r3 - 8039634: 687b ldr r3, [r7, #4] - 8039636: f9b3 3002 ldrsh.w r3, [r3, #2] - 803963a: b29b uxth r3, r3 - 803963c: 1ad3 subs r3, r2, r3 - 803963e: b29b uxth r3, r3 - 8039640: 3301 adds r3, #1 - 8039642: b29b uxth r3, r3 - 8039644: b21b sxth r3, r3 -} - 8039646: 4618 mov r0, r3 - 8039648: 370c adds r7, #12 - 803964a: 46bd mov sp, r7 - 803964c: bc80 pop {r7} - 803964e: 4770 bx lr - -08039650 : -{ - 8039650: b580 push {r7, lr} - 8039652: b084 sub sp, #16 - 8039654: af00 add r7, sp, #0 - 8039656: 6078 str r0, [r7, #4] - 8039658: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 803965a: f641 0210 movw r2, #6160 ; 0x1810 - 803965e: 6839 ldr r1, [r7, #0] - 8039660: 6878 ldr r0, [r7, #4] - 8039662: f7d4 fba5 bl 800ddb0 - 8039666: 4603 mov r3, r0 - 8039668: 60fb str r3, [r7, #12] + 80395c6: f641 0210 movw r2, #6160 ; 0x1810 + 80395ca: 6839 ldr r1, [r7, #0] + 80395cc: 6878 ldr r0, [r7, #4] + 80395ce: f7d4 fbb9 bl 800dd44 + 80395d2: 4603 mov r3, r0 + 80395d4: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803966a: 68fb ldr r3, [r7, #12] - 803966c: b21b sxth r3, r3 + 80395d6: 68fb ldr r3, [r7, #12] + 80395d8: b21b sxth r3, r3 } - 803966e: 4618 mov r0, r3 - 8039670: 3710 adds r7, #16 - 8039672: 46bd mov sp, r7 - 8039674: bd80 pop {r7, pc} + 80395da: 4618 mov r0, r3 + 80395dc: 3710 adds r7, #16 + 80395de: 46bd mov sp, r7 + 80395e0: bd80 pop {r7, pc} -08039676 : +080395e2 : { - 8039676: b580 push {r7, lr} - 8039678: b084 sub sp, #16 - 803967a: af00 add r7, sp, #0 - 803967c: 6078 str r0, [r7, #4] - 803967e: 6039 str r1, [r7, #0] + 80395e2: b580 push {r7, lr} + 80395e4: b084 sub sp, #16 + 80395e6: af00 add r7, sp, #0 + 80395e8: 6078 str r0, [r7, #4] + 80395ea: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); - 8039680: f641 0211 movw r2, #6161 ; 0x1811 - 8039684: 6839 ldr r1, [r7, #0] - 8039686: 6878 ldr r0, [r7, #4] - 8039688: f7d4 fb92 bl 800ddb0 - 803968c: 4603 mov r3, r0 - 803968e: 60fb str r3, [r7, #12] + 80395ec: f641 0211 movw r2, #6161 ; 0x1811 + 80395f0: 6839 ldr r1, [r7, #0] + 80395f2: 6878 ldr r0, [r7, #4] + 80395f4: f7d4 fba6 bl 800dd44 + 80395f8: 4603 mov r3, r0 + 80395fa: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8039690: 68fb ldr r3, [r7, #12] - 8039692: b21b sxth r3, r3 + 80395fc: 68fb ldr r3, [r7, #12] + 80395fe: b21b sxth r3, r3 } - 8039694: 4618 mov r0, r3 - 8039696: 3710 adds r7, #16 - 8039698: 46bd mov sp, r7 - 803969a: bd80 pop {r7, pc} + 8039600: 4618 mov r0, r3 + 8039602: 3710 adds r7, #16 + 8039604: 46bd mov sp, r7 + 8039606: bd80 pop {r7, pc} -0803969c : +08039608 : { - 803969c: b580 push {r7, lr} - 803969e: b084 sub sp, #16 - 80396a0: af00 add r7, sp, #0 - 80396a2: 6078 str r0, [r7, #4] - 80396a4: 6039 str r1, [r7, #0] + 8039608: b580 push {r7, lr} + 803960a: b084 sub sp, #16 + 803960c: af00 add r7, sp, #0 + 803960e: 6078 str r0, [r7, #4] + 8039610: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 80396a6: f641 0212 movw r2, #6162 ; 0x1812 - 80396aa: 6839 ldr r1, [r7, #0] - 80396ac: 6878 ldr r0, [r7, #4] - 80396ae: f7d4 fb7f bl 800ddb0 - 80396b2: 4603 mov r3, r0 - 80396b4: 60fb str r3, [r7, #12] + 8039612: f641 0212 movw r2, #6162 ; 0x1812 + 8039616: 6839 ldr r1, [r7, #0] + 8039618: 6878 ldr r0, [r7, #4] + 803961a: f7d4 fb93 bl 800dd44 + 803961e: 4603 mov r3, r0 + 8039620: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80396b6: 68fb ldr r3, [r7, #12] - 80396b8: b21b sxth r3, r3 + 8039622: 68fb ldr r3, [r7, #12] + 8039624: b21b sxth r3, r3 } - 80396ba: 4618 mov r0, r3 - 80396bc: 3710 adds r7, #16 - 80396be: 46bd mov sp, r7 - 80396c0: bd80 pop {r7, pc} + 8039626: 4618 mov r0, r3 + 8039628: 3710 adds r7, #16 + 803962a: 46bd mov sp, r7 + 803962c: bd80 pop {r7, pc} -080396c2 : +0803962e : { - 80396c2: b580 push {r7, lr} - 80396c4: b084 sub sp, #16 - 80396c6: af00 add r7, sp, #0 - 80396c8: 6078 str r0, [r7, #4] - 80396ca: 6039 str r1, [r7, #0] + 803962e: b580 push {r7, lr} + 8039630: b084 sub sp, #16 + 8039632: af00 add r7, sp, #0 + 8039634: 6078 str r0, [r7, #4] + 8039636: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - 80396cc: f641 0213 movw r2, #6163 ; 0x1813 - 80396d0: 6839 ldr r1, [r7, #0] - 80396d2: 6878 ldr r0, [r7, #4] - 80396d4: f7d4 fb6c bl 800ddb0 - 80396d8: 4603 mov r3, r0 - 80396da: 60fb str r3, [r7, #12] + 8039638: f641 0213 movw r2, #6163 ; 0x1813 + 803963c: 6839 ldr r1, [r7, #0] + 803963e: 6878 ldr r0, [r7, #4] + 8039640: f7d4 fb80 bl 800dd44 + 8039644: 4603 mov r3, r0 + 8039646: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80396dc: 68fb ldr r3, [r7, #12] - 80396de: b21b sxth r3, r3 + 8039648: 68fb ldr r3, [r7, #12] + 803964a: b21b sxth r3, r3 } - 80396e0: 4618 mov r0, r3 - 80396e2: 3710 adds r7, #16 - 80396e4: 46bd mov sp, r7 - 80396e6: bd80 pop {r7, pc} + 803964c: 4618 mov r0, r3 + 803964e: 3710 adds r7, #16 + 8039650: 46bd mov sp, r7 + 8039652: bd80 pop {r7, pc} -080396e8 : +08039654 : { - 80396e8: b580 push {r7, lr} - 80396ea: b084 sub sp, #16 - 80396ec: af00 add r7, sp, #0 - 80396ee: 6078 str r0, [r7, #4] - 80396f0: 6039 str r1, [r7, #0] + 8039654: b580 push {r7, lr} + 8039656: b084 sub sp, #16 + 8039658: af00 add r7, sp, #0 + 803965a: 6078 str r0, [r7, #4] + 803965c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_ROW); - 80396f2: f641 0214 movw r2, #6164 ; 0x1814 - 80396f6: 6839 ldr r1, [r7, #0] - 80396f8: 6878 ldr r0, [r7, #4] - 80396fa: f7d4 fb59 bl 800ddb0 - 80396fe: 4603 mov r3, r0 - 8039700: 60fb str r3, [r7, #12] + 803965e: f641 0214 movw r2, #6164 ; 0x1814 + 8039662: 6839 ldr r1, [r7, #0] + 8039664: 6878 ldr r0, [r7, #4] + 8039666: f7d4 fb6d bl 800dd44 + 803966a: 4603 mov r3, r0 + 803966c: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8039702: 68fb ldr r3, [r7, #12] - 8039704: b21b sxth r3, r3 + 803966e: 68fb ldr r3, [r7, #12] + 8039670: b21b sxth r3, r3 } - 8039706: 4618 mov r0, r3 - 8039708: 3710 adds r7, #16 - 803970a: 46bd mov sp, r7 - 803970c: bd80 pop {r7, pc} + 8039672: 4618 mov r0, r3 + 8039674: 3710 adds r7, #16 + 8039676: 46bd mov sp, r7 + 8039678: bd80 pop {r7, pc} -0803970e : +0803967a : { - 803970e: b580 push {r7, lr} - 8039710: b084 sub sp, #16 - 8039712: af00 add r7, sp, #0 - 8039714: 6078 str r0, [r7, #4] - 8039716: 6039 str r1, [r7, #0] + 803967a: b580 push {r7, lr} + 803967c: b084 sub sp, #16 + 803967e: af00 add r7, sp, #0 + 8039680: 6078 str r0, [r7, #4] + 8039682: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_COLUMN); - 8039718: f641 0215 movw r2, #6165 ; 0x1815 - 803971c: 6839 ldr r1, [r7, #0] - 803971e: 6878 ldr r0, [r7, #4] - 8039720: f7d4 fb46 bl 800ddb0 - 8039724: 4603 mov r3, r0 - 8039726: 60fb str r3, [r7, #12] + 8039684: f641 0215 movw r2, #6165 ; 0x1815 + 8039688: 6839 ldr r1, [r7, #0] + 803968a: 6878 ldr r0, [r7, #4] + 803968c: f7d4 fb5a bl 800dd44 + 8039690: 4603 mov r3, r0 + 8039692: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8039728: 68fb ldr r3, [r7, #12] - 803972a: b21b sxth r3, r3 + 8039694: 68fb ldr r3, [r7, #12] + 8039696: b21b sxth r3, r3 } - 803972c: 4618 mov r0, r3 - 803972e: 3710 adds r7, #16 - 8039730: 46bd mov sp, r7 - 8039732: bd80 pop {r7, pc} + 8039698: 4618 mov r0, r3 + 803969a: 3710 adds r7, #16 + 803969c: 46bd mov sp, r7 + 803969e: bd80 pop {r7, pc} -08039734 : +080396a0 : { - 8039734: b580 push {r7, lr} - 8039736: b084 sub sp, #16 - 8039738: af00 add r7, sp, #0 - 803973a: 6078 str r0, [r7, #4] - 803973c: 6039 str r1, [r7, #0] + 80396a0: b580 push {r7, lr} + 80396a2: b084 sub sp, #16 + 80396a4: af00 add r7, sp, #0 + 80396a6: 6078 str r0, [r7, #4] + 80396a8: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BASE_DIR); - 803973e: f241 426a movw r2, #5226 ; 0x146a - 8039742: 6839 ldr r1, [r7, #0] - 8039744: 6878 ldr r0, [r7, #4] - 8039746: f7d4 fb33 bl 800ddb0 - 803974a: 4603 mov r3, r0 - 803974c: 60fb str r3, [r7, #12] + 80396aa: f241 426a movw r2, #5226 ; 0x146a + 80396ae: 6839 ldr r1, [r7, #0] + 80396b0: 6878 ldr r0, [r7, #4] + 80396b2: f7d4 fb47 bl 800dd44 + 80396b6: 4603 mov r3, r0 + 80396b8: 60fb str r3, [r7, #12] return (lv_base_dir_t)v.num; - 803974e: 68fb ldr r3, [r7, #12] - 8039750: b2db uxtb r3, r3 + 80396ba: 68fb ldr r3, [r7, #12] + 80396bc: b2db uxtb r3, r3 } - 8039752: 4618 mov r0, r3 - 8039754: 3710 adds r7, #16 - 8039756: 46bd mov sp, r7 - 8039758: bd80 pop {r7, pc} + 80396be: 4618 mov r0, r3 + 80396c0: 3710 adds r7, #16 + 80396c2: 46bd mov sp, r7 + 80396c4: bd80 pop {r7, pc} ... -0803975c : +080396c8 : /********************** * GLOBAL FUNCTIONS **********************/ lv_obj_t * lv_btnmatrix_create(lv_obj_t * parent) { - 803975c: b580 push {r7, lr} - 803975e: b084 sub sp, #16 - 8039760: af00 add r7, sp, #0 - 8039762: 6078 str r0, [r7, #4] + 80396c8: b580 push {r7, lr} + 80396ca: b084 sub sp, #16 + 80396cc: af00 add r7, sp, #0 + 80396ce: 6078 str r0, [r7, #4] LV_LOG_INFO("begin"); lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); - 8039764: 6879 ldr r1, [r7, #4] - 8039766: 4806 ldr r0, [pc, #24] ; (8039780 ) - 8039768: f7ce f973 bl 8007a52 - 803976c: 60f8 str r0, [r7, #12] + 80396d0: 6879 ldr r1, [r7, #4] + 80396d2: 4806 ldr r0, [pc, #24] ; (80396ec ) + 80396d4: f7ce f987 bl 80079e6 + 80396d8: 60f8 str r0, [r7, #12] lv_obj_class_init_obj(obj); - 803976e: 68f8 ldr r0, [r7, #12] - 8039770: f7ce fa21 bl 8007bb6 + 80396da: 68f8 ldr r0, [r7, #12] + 80396dc: f7ce fa35 bl 8007b4a return obj; - 8039774: 68fb ldr r3, [r7, #12] + 80396e0: 68fb ldr r3, [r7, #12] } - 8039776: 4618 mov r0, r3 - 8039778: 3710 adds r7, #16 - 803977a: 46bd mov sp, r7 - 803977c: bd80 pop {r7, pc} - 803977e: bf00 nop - 8039780: 08070a00 .word 0x08070a00 + 80396e2: 4618 mov r0, r3 + 80396e4: 3710 adds r7, #16 + 80396e6: 46bd mov sp, r7 + 80396e8: bd80 pop {r7, pc} + 80396ea: bf00 nop + 80396ec: 08070958 .word 0x08070958 -08039784 : +080396f0 : /*===================== * Setter functions *====================*/ void lv_btnmatrix_set_map(lv_obj_t * obj, const char * map[]) { - 8039784: b590 push {r4, r7, lr} - 8039786: b097 sub sp, #92 ; 0x5c - 8039788: af02 add r7, sp, #8 - 803978a: 6078 str r0, [r7, #4] - 803978c: 6039 str r1, [r7, #0] + 80396f0: b590 push {r4, r7, lr} + 80396f2: b097 sub sp, #92 ; 0x5c + 80396f4: af02 add r7, sp, #8 + 80396f6: 6078 str r0, [r7, #4] + 80396f8: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); if(map == NULL) return; - 803978e: 683b ldr r3, [r7, #0] - 8039790: 2b00 cmp r3, #0 - 8039792: f000 815b beq.w 8039a4c + 80396fa: 683b ldr r3, [r7, #0] + 80396fc: 2b00 cmp r3, #0 + 80396fe: f000 815b beq.w 80399b8 lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj; - 8039796: 687b ldr r3, [r7, #4] - 8039798: 62bb str r3, [r7, #40] ; 0x28 + 8039702: 687b ldr r3, [r7, #4] + 8039704: 62bb str r3, [r7, #40] ; 0x28 /*Analyze the map and create the required number of buttons*/ allocate_btn_areas_and_controls(obj, map); - 803979a: 6839 ldr r1, [r7, #0] - 803979c: 6878 ldr r0, [r7, #4] - 803979e: f001 fc89 bl 803b0b4 + 8039706: 6839 ldr r1, [r7, #0] + 8039708: 6878 ldr r0, [r7, #4] + 803970a: f001 fc89 bl 803b020 btnm->map_p = map; - 80397a2: 6abb ldr r3, [r7, #40] ; 0x28 - 80397a4: 683a ldr r2, [r7, #0] - 80397a6: 625a str r2, [r3, #36] ; 0x24 + 803970e: 6abb ldr r3, [r7, #40] ; 0x28 + 8039710: 683a ldr r2, [r7, #0] + 8039712: 625a str r2, [r3, #36] ; 0x24 lv_base_dir_t base_dir = lv_obj_get_style_base_dir(obj, LV_PART_MAIN); - 80397a8: 2100 movs r1, #0 - 80397aa: 6878 ldr r0, [r7, #4] - 80397ac: f7ff ffc2 bl 8039734 - 80397b0: 4603 mov r3, r0 - 80397b2: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8039714: 2100 movs r1, #0 + 8039716: 6878 ldr r0, [r7, #4] + 8039718: f7ff ffc2 bl 80396a0 + 803971c: 4603 mov r3, r0 + 803971e: f887 3027 strb.w r3, [r7, #39] ; 0x27 /*Set size and positions of the buttons*/ lv_coord_t pleft = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 80397b6: 2100 movs r1, #0 - 80397b8: 6878 ldr r0, [r7, #4] - 80397ba: f7ff ff6f bl 803969c - 80397be: 4603 mov r3, r0 - 80397c0: 84bb strh r3, [r7, #36] ; 0x24 + 8039722: 2100 movs r1, #0 + 8039724: 6878 ldr r0, [r7, #4] + 8039726: f7ff ff6f bl 8039608 + 803972a: 4603 mov r3, r0 + 803972c: 84bb strh r3, [r7, #36] ; 0x24 lv_coord_t ptop = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 80397c2: 2100 movs r1, #0 - 80397c4: 6878 ldr r0, [r7, #4] - 80397c6: f7ff ff43 bl 8039650 - 80397ca: 4603 mov r3, r0 - 80397cc: 847b strh r3, [r7, #34] ; 0x22 + 803972e: 2100 movs r1, #0 + 8039730: 6878 ldr r0, [r7, #4] + 8039732: f7ff ff43 bl 80395bc + 8039736: 4603 mov r3, r0 + 8039738: 847b strh r3, [r7, #34] ; 0x22 lv_coord_t prow = lv_obj_get_style_pad_row(obj, LV_PART_MAIN); - 80397ce: 2100 movs r1, #0 - 80397d0: 6878 ldr r0, [r7, #4] - 80397d2: f7ff ff89 bl 80396e8 - 80397d6: 4603 mov r3, r0 - 80397d8: 843b strh r3, [r7, #32] + 803973a: 2100 movs r1, #0 + 803973c: 6878 ldr r0, [r7, #4] + 803973e: f7ff ff89 bl 8039654 + 8039742: 4603 mov r3, r0 + 8039744: 843b strh r3, [r7, #32] lv_coord_t pcol = lv_obj_get_style_pad_column(obj, LV_PART_MAIN); - 80397da: 2100 movs r1, #0 - 80397dc: 6878 ldr r0, [r7, #4] - 80397de: f7ff ff96 bl 803970e - 80397e2: 4603 mov r3, r0 - 80397e4: 83fb strh r3, [r7, #30] + 8039746: 2100 movs r1, #0 + 8039748: 6878 ldr r0, [r7, #4] + 803974a: f7ff ff96 bl 803967a + 803974e: 4603 mov r3, r0 + 8039750: 83fb strh r3, [r7, #30] lv_coord_t max_w = lv_obj_get_content_width(obj); - 80397e6: 6878 ldr r0, [r7, #4] - 80397e8: f7d0 fcca bl 800a180 - 80397ec: 4603 mov r3, r0 - 80397ee: 83bb strh r3, [r7, #28] + 8039752: 6878 ldr r0, [r7, #4] + 8039754: f7d0 fcde bl 800a114 + 8039758: 4603 mov r3, r0 + 803975a: 83bb strh r3, [r7, #28] lv_coord_t max_h = lv_obj_get_content_height(obj); - 80397f0: 6878 ldr r0, [r7, #4] - 80397f2: f7d0 fcf0 bl 800a1d6 - 80397f6: 4603 mov r3, r0 - 80397f8: 837b strh r3, [r7, #26] + 803975c: 6878 ldr r0, [r7, #4] + 803975e: f7d0 fd04 bl 800a16a + 8039762: 4603 mov r3, r0 + 8039764: 837b strh r3, [r7, #26] /*Calculate the position of each row*/ lv_coord_t max_h_no_gap = max_h - (prow * (btnm->row_cnt - 1)); - 80397fa: 8b7a ldrh r2, [r7, #26] - 80397fc: 6abb ldr r3, [r7, #40] ; 0x28 - 80397fe: 8e5b ldrh r3, [r3, #50] ; 0x32 - 8039800: 3b01 subs r3, #1 - 8039802: b29b uxth r3, r3 - 8039804: 8c39 ldrh r1, [r7, #32] - 8039806: fb01 f303 mul.w r3, r1, r3 - 803980a: b29b uxth r3, r3 - 803980c: 1ad3 subs r3, r2, r3 - 803980e: b29b uxth r3, r3 - 8039810: 833b strh r3, [r7, #24] + 8039766: 8b7a ldrh r2, [r7, #26] + 8039768: 6abb ldr r3, [r7, #40] ; 0x28 + 803976a: 8e5b ldrh r3, [r3, #50] ; 0x32 + 803976c: 3b01 subs r3, #1 + 803976e: b29b uxth r3, r3 + 8039770: 8c39 ldrh r1, [r7, #32] + 8039772: fb01 f303 mul.w r3, r1, r3 + 8039776: b29b uxth r3, r3 + 8039778: 1ad3 subs r3, r2, r3 + 803977a: b29b uxth r3, r3 + 803977c: 833b strh r3, [r7, #24] /*Count the units and the buttons in a line *(A button can be 1,2,3... unit wide)*/ uint32_t txt_tot_i = 0; /*Act. index in the str map*/ - 8039812: 2300 movs r3, #0 - 8039814: 64fb str r3, [r7, #76] ; 0x4c + 803977e: 2300 movs r3, #0 + 8039780: 64fb str r3, [r7, #76] ; 0x4c uint32_t btn_tot_i = 0; /*Act. index of button areas*/ - 8039816: 2300 movs r3, #0 - 8039818: 64bb str r3, [r7, #72] ; 0x48 + 8039782: 2300 movs r3, #0 + 8039784: 64bb str r3, [r7, #72] ; 0x48 const char ** map_row = map; - 803981a: 683b ldr r3, [r7, #0] - 803981c: 647b str r3, [r7, #68] ; 0x44 + 8039786: 683b ldr r3, [r7, #0] + 8039788: 647b str r3, [r7, #68] ; 0x44 /*Count the units and the buttons in a line*/ uint32_t row; for(row = 0; row < btnm->row_cnt; row++) { - 803981e: 2300 movs r3, #0 - 8039820: 643b str r3, [r7, #64] ; 0x40 - 8039822: e105 b.n 8039a30 + 803978a: 2300 movs r3, #0 + 803978c: 643b str r3, [r7, #64] ; 0x40 + 803978e: e105 b.n 803999c uint16_t unit_cnt = 0; /*Number of units in a row*/ - 8039824: 2300 movs r3, #0 - 8039826: 87fb strh r3, [r7, #62] ; 0x3e + 8039790: 2300 movs r3, #0 + 8039792: 87fb strh r3, [r7, #62] ; 0x3e uint16_t btn_cnt = 0; /*Number of buttons in a row*/ - 8039828: 2300 movs r3, #0 - 803982a: 87bb strh r3, [r7, #60] ; 0x3c + 8039794: 2300 movs r3, #0 + 8039796: 87bb strh r3, [r7, #60] ; 0x3c /*Count the buttons and units in this row*/ while(map_row[btn_cnt] && strcmp(map_row[btn_cnt], "\n") != 0 && map_row[btn_cnt][0] != '\0') { - 803982c: e012 b.n 8039854 + 8039798: e012 b.n 80397c0 unit_cnt += get_button_width(btnm->ctrl_bits[btn_tot_i + btn_cnt]); - 803982e: 6abb ldr r3, [r7, #40] ; 0x28 - 8039830: 6ada ldr r2, [r3, #44] ; 0x2c - 8039832: 8fb9 ldrh r1, [r7, #60] ; 0x3c - 8039834: 6cbb ldr r3, [r7, #72] ; 0x48 - 8039836: 440b add r3, r1 - 8039838: 005b lsls r3, r3, #1 - 803983a: 4413 add r3, r2 - 803983c: 881b ldrh r3, [r3, #0] - 803983e: 4618 mov r0, r3 - 8039840: f001 fcc2 bl 803b1c8 - 8039844: 4603 mov r3, r0 - 8039846: b29a uxth r2, r3 - 8039848: 8ffb ldrh r3, [r7, #62] ; 0x3e - 803984a: 4413 add r3, r2 - 803984c: 87fb strh r3, [r7, #62] ; 0x3e + 803979a: 6abb ldr r3, [r7, #40] ; 0x28 + 803979c: 6ada ldr r2, [r3, #44] ; 0x2c + 803979e: 8fb9 ldrh r1, [r7, #60] ; 0x3c + 80397a0: 6cbb ldr r3, [r7, #72] ; 0x48 + 80397a2: 440b add r3, r1 + 80397a4: 005b lsls r3, r3, #1 + 80397a6: 4413 add r3, r2 + 80397a8: 881b ldrh r3, [r3, #0] + 80397aa: 4618 mov r0, r3 + 80397ac: f001 fcc2 bl 803b134 + 80397b0: 4603 mov r3, r0 + 80397b2: b29a uxth r2, r3 + 80397b4: 8ffb ldrh r3, [r7, #62] ; 0x3e + 80397b6: 4413 add r3, r2 + 80397b8: 87fb strh r3, [r7, #62] ; 0x3e btn_cnt++; - 803984e: 8fbb ldrh r3, [r7, #60] ; 0x3c - 8039850: 3301 adds r3, #1 - 8039852: 87bb strh r3, [r7, #60] ; 0x3c + 80397ba: 8fbb ldrh r3, [r7, #60] ; 0x3c + 80397bc: 3301 adds r3, #1 + 80397be: 87bb strh r3, [r7, #60] ; 0x3c while(map_row[btn_cnt] && strcmp(map_row[btn_cnt], "\n") != 0 && map_row[btn_cnt][0] != '\0') { - 8039854: 8fbb ldrh r3, [r7, #60] ; 0x3c - 8039856: 009b lsls r3, r3, #2 - 8039858: 6c7a ldr r2, [r7, #68] ; 0x44 - 803985a: 4413 add r3, r2 - 803985c: 681b ldr r3, [r3, #0] - 803985e: 2b00 cmp r3, #0 - 8039860: d013 beq.n 803988a - 8039862: 8fbb ldrh r3, [r7, #60] ; 0x3c - 8039864: 009b lsls r3, r3, #2 - 8039866: 6c7a ldr r2, [r7, #68] ; 0x44 - 8039868: 4413 add r3, r2 - 803986a: 681b ldr r3, [r3, #0] - 803986c: 4979 ldr r1, [pc, #484] ; (8039a54 ) - 803986e: 4618 mov r0, r3 - 8039870: f7c6 fcd8 bl 8000224 - 8039874: 4603 mov r3, r0 - 8039876: 2b00 cmp r3, #0 - 8039878: d007 beq.n 803988a - 803987a: 8fbb ldrh r3, [r7, #60] ; 0x3c - 803987c: 009b lsls r3, r3, #2 - 803987e: 6c7a ldr r2, [r7, #68] ; 0x44 - 8039880: 4413 add r3, r2 - 8039882: 681b ldr r3, [r3, #0] - 8039884: 781b ldrb r3, [r3, #0] - 8039886: 2b00 cmp r3, #0 - 8039888: d1d1 bne.n 803982e + 80397c0: 8fbb ldrh r3, [r7, #60] ; 0x3c + 80397c2: 009b lsls r3, r3, #2 + 80397c4: 6c7a ldr r2, [r7, #68] ; 0x44 + 80397c6: 4413 add r3, r2 + 80397c8: 681b ldr r3, [r3, #0] + 80397ca: 2b00 cmp r3, #0 + 80397cc: d013 beq.n 80397f6 + 80397ce: 8fbb ldrh r3, [r7, #60] ; 0x3c + 80397d0: 009b lsls r3, r3, #2 + 80397d2: 6c7a ldr r2, [r7, #68] ; 0x44 + 80397d4: 4413 add r3, r2 + 80397d6: 681b ldr r3, [r3, #0] + 80397d8: 4979 ldr r1, [pc, #484] ; (80399c0 ) + 80397da: 4618 mov r0, r3 + 80397dc: f7c6 fd22 bl 8000224 + 80397e0: 4603 mov r3, r0 + 80397e2: 2b00 cmp r3, #0 + 80397e4: d007 beq.n 80397f6 + 80397e6: 8fbb ldrh r3, [r7, #60] ; 0x3c + 80397e8: 009b lsls r3, r3, #2 + 80397ea: 6c7a ldr r2, [r7, #68] ; 0x44 + 80397ec: 4413 add r3, r2 + 80397ee: 681b ldr r3, [r3, #0] + 80397f0: 781b ldrb r3, [r3, #0] + 80397f2: 2b00 cmp r3, #0 + 80397f4: d1d1 bne.n 803979a } /*Only deal with the non empty lines*/ if(btn_cnt == 0) { - 803988a: 8fbb ldrh r3, [r7, #60] ; 0x3c - 803988c: 2b00 cmp r3, #0 - 803988e: d106 bne.n 803989e + 80397f6: 8fbb ldrh r3, [r7, #60] ; 0x3c + 80397f8: 2b00 cmp r3, #0 + 80397fa: d106 bne.n 803980a map_row = &map_row[btn_cnt + 1]; /*Set the map to the next row*/ - 8039890: 8fbb ldrh r3, [r7, #60] ; 0x3c - 8039892: 3301 adds r3, #1 - 8039894: 009b lsls r3, r3, #2 - 8039896: 6c7a ldr r2, [r7, #68] ; 0x44 - 8039898: 4413 add r3, r2 - 803989a: 647b str r3, [r7, #68] ; 0x44 + 80397fc: 8fbb ldrh r3, [r7, #60] ; 0x3c + 80397fe: 3301 adds r3, #1 + 8039800: 009b lsls r3, r3, #2 + 8039802: 6c7a ldr r2, [r7, #68] ; 0x44 + 8039804: 4413 add r3, r2 + 8039806: 647b str r3, [r7, #68] ; 0x44 continue; - 803989c: e0c5 b.n 8039a2a + 8039808: e0c5 b.n 8039996 } lv_coord_t row_y1 = ptop + (max_h_no_gap * row) / btnm->row_cnt + row * prow; - 803989e: f9b7 3018 ldrsh.w r3, [r7, #24] - 80398a2: 6c3a ldr r2, [r7, #64] ; 0x40 - 80398a4: fb02 f303 mul.w r3, r2, r3 - 80398a8: 6aba ldr r2, [r7, #40] ; 0x28 - 80398aa: 8e52 ldrh r2, [r2, #50] ; 0x32 - 80398ac: fbb3 f3f2 udiv r3, r3, r2 - 80398b0: b29a uxth r2, r3 - 80398b2: 8c7b ldrh r3, [r7, #34] ; 0x22 - 80398b4: 4413 add r3, r2 - 80398b6: b29a uxth r2, r3 - 80398b8: f9b7 3020 ldrsh.w r3, [r7, #32] - 80398bc: b29b uxth r3, r3 - 80398be: 6c39 ldr r1, [r7, #64] ; 0x40 - 80398c0: b289 uxth r1, r1 - 80398c2: fb01 f303 mul.w r3, r1, r3 - 80398c6: b29b uxth r3, r3 - 80398c8: 4413 add r3, r2 - 80398ca: b29b uxth r3, r3 - 80398cc: 82fb strh r3, [r7, #22] + 803980a: f9b7 3018 ldrsh.w r3, [r7, #24] + 803980e: 6c3a ldr r2, [r7, #64] ; 0x40 + 8039810: fb02 f303 mul.w r3, r2, r3 + 8039814: 6aba ldr r2, [r7, #40] ; 0x28 + 8039816: 8e52 ldrh r2, [r2, #50] ; 0x32 + 8039818: fbb3 f3f2 udiv r3, r3, r2 + 803981c: b29a uxth r2, r3 + 803981e: 8c7b ldrh r3, [r7, #34] ; 0x22 + 8039820: 4413 add r3, r2 + 8039822: b29a uxth r2, r3 + 8039824: f9b7 3020 ldrsh.w r3, [r7, #32] + 8039828: b29b uxth r3, r3 + 803982a: 6c39 ldr r1, [r7, #64] ; 0x40 + 803982c: b289 uxth r1, r1 + 803982e: fb01 f303 mul.w r3, r1, r3 + 8039832: b29b uxth r3, r3 + 8039834: 4413 add r3, r2 + 8039836: b29b uxth r3, r3 + 8039838: 82fb strh r3, [r7, #22] lv_coord_t row_y2 = ptop + (max_h_no_gap * (row + 1)) / btnm->row_cnt + row * prow - 1; - 80398ce: f9b7 3018 ldrsh.w r3, [r7, #24] - 80398d2: 6c3a ldr r2, [r7, #64] ; 0x40 - 80398d4: 3201 adds r2, #1 - 80398d6: fb02 f303 mul.w r3, r2, r3 - 80398da: 6aba ldr r2, [r7, #40] ; 0x28 - 80398dc: 8e52 ldrh r2, [r2, #50] ; 0x32 - 80398de: fbb3 f3f2 udiv r3, r3, r2 - 80398e2: b29a uxth r2, r3 - 80398e4: 8c7b ldrh r3, [r7, #34] ; 0x22 - 80398e6: 4413 add r3, r2 - 80398e8: b29a uxth r2, r3 - 80398ea: f9b7 3020 ldrsh.w r3, [r7, #32] - 80398ee: b29b uxth r3, r3 - 80398f0: 6c39 ldr r1, [r7, #64] ; 0x40 - 80398f2: b289 uxth r1, r1 - 80398f4: fb01 f303 mul.w r3, r1, r3 - 80398f8: b29b uxth r3, r3 - 80398fa: 4413 add r3, r2 - 80398fc: b29b uxth r3, r3 - 80398fe: 3b01 subs r3, #1 - 8039900: b29b uxth r3, r3 - 8039902: 82bb strh r3, [r7, #20] + 803983a: f9b7 3018 ldrsh.w r3, [r7, #24] + 803983e: 6c3a ldr r2, [r7, #64] ; 0x40 + 8039840: 3201 adds r2, #1 + 8039842: fb02 f303 mul.w r3, r2, r3 + 8039846: 6aba ldr r2, [r7, #40] ; 0x28 + 8039848: 8e52 ldrh r2, [r2, #50] ; 0x32 + 803984a: fbb3 f3f2 udiv r3, r3, r2 + 803984e: b29a uxth r2, r3 + 8039850: 8c7b ldrh r3, [r7, #34] ; 0x22 + 8039852: 4413 add r3, r2 + 8039854: b29a uxth r2, r3 + 8039856: f9b7 3020 ldrsh.w r3, [r7, #32] + 803985a: b29b uxth r3, r3 + 803985c: 6c39 ldr r1, [r7, #64] ; 0x40 + 803985e: b289 uxth r1, r1 + 8039860: fb01 f303 mul.w r3, r1, r3 + 8039864: b29b uxth r3, r3 + 8039866: 4413 add r3, r2 + 8039868: b29b uxth r3, r3 + 803986a: 3b01 subs r3, #1 + 803986c: b29b uxth r3, r3 + 803986e: 82bb strh r3, [r7, #20] /*Set the button size and positions*/ lv_coord_t max_w_no_gap = max_w - (pcol * (btn_cnt - 1)); - 8039904: 8bba ldrh r2, [r7, #28] - 8039906: 8fbb ldrh r3, [r7, #60] ; 0x3c - 8039908: 3b01 subs r3, #1 - 803990a: b29b uxth r3, r3 - 803990c: 8bf9 ldrh r1, [r7, #30] - 803990e: fb01 f303 mul.w r3, r1, r3 - 8039912: b29b uxth r3, r3 - 8039914: 1ad3 subs r3, r2, r3 - 8039916: b29b uxth r3, r3 - 8039918: 877b strh r3, [r7, #58] ; 0x3a + 8039870: 8bba ldrh r2, [r7, #28] + 8039872: 8fbb ldrh r3, [r7, #60] ; 0x3c + 8039874: 3b01 subs r3, #1 + 8039876: b29b uxth r3, r3 + 8039878: 8bf9 ldrh r1, [r7, #30] + 803987a: fb01 f303 mul.w r3, r1, r3 + 803987e: b29b uxth r3, r3 + 8039880: 1ad3 subs r3, r2, r3 + 8039882: b29b uxth r3, r3 + 8039884: 877b strh r3, [r7, #58] ; 0x3a if(max_w_no_gap < 0) max_w_no_gap = 0; - 803991a: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 803991e: 2b00 cmp r3, #0 - 8039920: da01 bge.n 8039926 - 8039922: 2300 movs r3, #0 - 8039924: 877b strh r3, [r7, #58] ; 0x3a + 8039886: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 803988a: 2b00 cmp r3, #0 + 803988c: da01 bge.n 8039892 + 803988e: 2300 movs r3, #0 + 8039890: 877b strh r3, [r7, #58] ; 0x3a uint32_t row_unit_cnt = 0; /*The current unit position in the row*/ - 8039926: 2300 movs r3, #0 - 8039928: 637b str r3, [r7, #52] ; 0x34 + 8039892: 2300 movs r3, #0 + 8039894: 637b str r3, [r7, #52] ; 0x34 uint32_t btn; for(btn = 0; btn < btn_cnt; btn++, btn_tot_i++, txt_tot_i++) { - 803992a: 2300 movs r3, #0 - 803992c: 633b str r3, [r7, #48] ; 0x30 - 803992e: e072 b.n 8039a16 + 8039896: 2300 movs r3, #0 + 8039898: 633b str r3, [r7, #48] ; 0x30 + 803989a: e072 b.n 8039982 uint32_t btn_u = get_button_width(btnm->ctrl_bits[btn_tot_i]); - 8039930: 6abb ldr r3, [r7, #40] ; 0x28 - 8039932: 6ada ldr r2, [r3, #44] ; 0x2c - 8039934: 6cbb ldr r3, [r7, #72] ; 0x48 - 8039936: 005b lsls r3, r3, #1 - 8039938: 4413 add r3, r2 - 803993a: 881b ldrh r3, [r3, #0] - 803993c: 4618 mov r0, r3 - 803993e: f001 fc43 bl 803b1c8 - 8039942: 4603 mov r3, r0 - 8039944: 613b str r3, [r7, #16] + 803989c: 6abb ldr r3, [r7, #40] ; 0x28 + 803989e: 6ada ldr r2, [r3, #44] ; 0x2c + 80398a0: 6cbb ldr r3, [r7, #72] ; 0x48 + 80398a2: 005b lsls r3, r3, #1 + 80398a4: 4413 add r3, r2 + 80398a6: 881b ldrh r3, [r3, #0] + 80398a8: 4618 mov r0, r3 + 80398aa: f001 fc43 bl 803b134 + 80398ae: 4603 mov r3, r0 + 80398b0: 613b str r3, [r7, #16] lv_coord_t btn_x1 = (max_w_no_gap * row_unit_cnt) / unit_cnt + btn * pcol; - 8039946: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 803994a: 6b7a ldr r2, [r7, #52] ; 0x34 - 803994c: fb03 f202 mul.w r2, r3, r2 - 8039950: 8ffb ldrh r3, [r7, #62] ; 0x3e - 8039952: fbb2 f3f3 udiv r3, r2, r3 - 8039956: b29a uxth r2, r3 - 8039958: f9b7 301e ldrsh.w r3, [r7, #30] - 803995c: b29b uxth r3, r3 - 803995e: 6b39 ldr r1, [r7, #48] ; 0x30 - 8039960: b289 uxth r1, r1 - 8039962: fb01 f303 mul.w r3, r1, r3 - 8039966: b29b uxth r3, r3 - 8039968: 4413 add r3, r2 - 803996a: b29b uxth r3, r3 - 803996c: 85fb strh r3, [r7, #46] ; 0x2e + 80398b2: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 80398b6: 6b7a ldr r2, [r7, #52] ; 0x34 + 80398b8: fb03 f202 mul.w r2, r3, r2 + 80398bc: 8ffb ldrh r3, [r7, #62] ; 0x3e + 80398be: fbb2 f3f3 udiv r3, r2, r3 + 80398c2: b29a uxth r2, r3 + 80398c4: f9b7 301e ldrsh.w r3, [r7, #30] + 80398c8: b29b uxth r3, r3 + 80398ca: 6b39 ldr r1, [r7, #48] ; 0x30 + 80398cc: b289 uxth r1, r1 + 80398ce: fb01 f303 mul.w r3, r1, r3 + 80398d2: b29b uxth r3, r3 + 80398d4: 4413 add r3, r2 + 80398d6: b29b uxth r3, r3 + 80398d8: 85fb strh r3, [r7, #46] ; 0x2e lv_coord_t btn_x2 = (max_w_no_gap * (row_unit_cnt + btn_u)) / unit_cnt + btn * pcol - 1; - 803996e: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 8039972: 6b79 ldr r1, [r7, #52] ; 0x34 - 8039974: 693a ldr r2, [r7, #16] - 8039976: 440a add r2, r1 - 8039978: fb03 f202 mul.w r2, r3, r2 - 803997c: 8ffb ldrh r3, [r7, #62] ; 0x3e - 803997e: fbb2 f3f3 udiv r3, r2, r3 - 8039982: b29a uxth r2, r3 - 8039984: f9b7 301e ldrsh.w r3, [r7, #30] - 8039988: b29b uxth r3, r3 - 803998a: 6b39 ldr r1, [r7, #48] ; 0x30 - 803998c: b289 uxth r1, r1 - 803998e: fb01 f303 mul.w r3, r1, r3 - 8039992: b29b uxth r3, r3 - 8039994: 4413 add r3, r2 - 8039996: b29b uxth r3, r3 - 8039998: 3b01 subs r3, #1 - 803999a: b29b uxth r3, r3 - 803999c: 85bb strh r3, [r7, #44] ; 0x2c + 80398da: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 80398de: 6b79 ldr r1, [r7, #52] ; 0x34 + 80398e0: 693a ldr r2, [r7, #16] + 80398e2: 440a add r2, r1 + 80398e4: fb03 f202 mul.w r2, r3, r2 + 80398e8: 8ffb ldrh r3, [r7, #62] ; 0x3e + 80398ea: fbb2 f3f3 udiv r3, r2, r3 + 80398ee: b29a uxth r2, r3 + 80398f0: f9b7 301e ldrsh.w r3, [r7, #30] + 80398f4: b29b uxth r3, r3 + 80398f6: 6b39 ldr r1, [r7, #48] ; 0x30 + 80398f8: b289 uxth r1, r1 + 80398fa: fb01 f303 mul.w r3, r1, r3 + 80398fe: b29b uxth r3, r3 + 8039900: 4413 add r3, r2 + 8039902: b29b uxth r3, r3 + 8039904: 3b01 subs r3, #1 + 8039906: b29b uxth r3, r3 + 8039908: 85bb strh r3, [r7, #44] ; 0x2c /*If RTL start from the right*/ if(base_dir == LV_BASE_DIR_RTL) { - 803999e: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 80399a2: 2b01 cmp r3, #1 - 80399a4: d10f bne.n 80399c6 + 803990a: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 803990e: 2b01 cmp r3, #1 + 8039910: d10f bne.n 8039932 lv_coord_t tmp = btn_x1; - 80399a6: 8dfb ldrh r3, [r7, #46] ; 0x2e - 80399a8: 81fb strh r3, [r7, #14] + 8039912: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8039914: 81fb strh r3, [r7, #14] btn_x1 = btn_x2; - 80399aa: 8dbb ldrh r3, [r7, #44] ; 0x2c - 80399ac: 85fb strh r3, [r7, #46] ; 0x2e + 8039916: 8dbb ldrh r3, [r7, #44] ; 0x2c + 8039918: 85fb strh r3, [r7, #46] ; 0x2e btn_x2 = tmp; - 80399ae: 89fb ldrh r3, [r7, #14] - 80399b0: 85bb strh r3, [r7, #44] ; 0x2c + 803991a: 89fb ldrh r3, [r7, #14] + 803991c: 85bb strh r3, [r7, #44] ; 0x2c btn_x1 = max_w - btn_x1; - 80399b2: 8bba ldrh r2, [r7, #28] - 80399b4: 8dfb ldrh r3, [r7, #46] ; 0x2e - 80399b6: 1ad3 subs r3, r2, r3 - 80399b8: b29b uxth r3, r3 - 80399ba: 85fb strh r3, [r7, #46] ; 0x2e + 803991e: 8bba ldrh r2, [r7, #28] + 8039920: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8039922: 1ad3 subs r3, r2, r3 + 8039924: b29b uxth r3, r3 + 8039926: 85fb strh r3, [r7, #46] ; 0x2e btn_x2 = max_w - btn_x2; - 80399bc: 8bba ldrh r2, [r7, #28] - 80399be: 8dbb ldrh r3, [r7, #44] ; 0x2c - 80399c0: 1ad3 subs r3, r2, r3 - 80399c2: b29b uxth r3, r3 - 80399c4: 85bb strh r3, [r7, #44] ; 0x2c + 8039928: 8bba ldrh r2, [r7, #28] + 803992a: 8dbb ldrh r3, [r7, #44] ; 0x2c + 803992c: 1ad3 subs r3, r2, r3 + 803992e: b29b uxth r3, r3 + 8039930: 85bb strh r3, [r7, #44] ; 0x2c } btn_x1 += pleft; - 80399c6: 8dfa ldrh r2, [r7, #46] ; 0x2e - 80399c8: 8cbb ldrh r3, [r7, #36] ; 0x24 - 80399ca: 4413 add r3, r2 - 80399cc: b29b uxth r3, r3 - 80399ce: 85fb strh r3, [r7, #46] ; 0x2e + 8039932: 8dfa ldrh r2, [r7, #46] ; 0x2e + 8039934: 8cbb ldrh r3, [r7, #36] ; 0x24 + 8039936: 4413 add r3, r2 + 8039938: b29b uxth r3, r3 + 803993a: 85fb strh r3, [r7, #46] ; 0x2e btn_x2 += pleft; - 80399d0: 8dba ldrh r2, [r7, #44] ; 0x2c - 80399d2: 8cbb ldrh r3, [r7, #36] ; 0x24 - 80399d4: 4413 add r3, r2 - 80399d6: b29b uxth r3, r3 - 80399d8: 85bb strh r3, [r7, #44] ; 0x2c + 803993c: 8dba ldrh r2, [r7, #44] ; 0x2c + 803993e: 8cbb ldrh r3, [r7, #36] ; 0x24 + 8039940: 4413 add r3, r2 + 8039942: b29b uxth r3, r3 + 8039944: 85bb strh r3, [r7, #44] ; 0x2c lv_area_set(&btnm->button_areas[btn_tot_i], btn_x1, row_y1, btn_x2, row_y2); - 80399da: 6abb ldr r3, [r7, #40] ; 0x28 - 80399dc: 6a9a ldr r2, [r3, #40] ; 0x28 - 80399de: 6cbb ldr r3, [r7, #72] ; 0x48 - 80399e0: 00db lsls r3, r3, #3 - 80399e2: 18d0 adds r0, r2, r3 - 80399e4: f9b7 402c ldrsh.w r4, [r7, #44] ; 0x2c - 80399e8: f9b7 2016 ldrsh.w r2, [r7, #22] - 80399ec: f9b7 102e ldrsh.w r1, [r7, #46] ; 0x2e - 80399f0: f9b7 3014 ldrsh.w r3, [r7, #20] - 80399f4: 9300 str r3, [sp, #0] - 80399f6: 4623 mov r3, r4 - 80399f8: f7f7 fa80 bl 8030efc + 8039946: 6abb ldr r3, [r7, #40] ; 0x28 + 8039948: 6a9a ldr r2, [r3, #40] ; 0x28 + 803994a: 6cbb ldr r3, [r7, #72] ; 0x48 + 803994c: 00db lsls r3, r3, #3 + 803994e: 18d0 adds r0, r2, r3 + 8039950: f9b7 402c ldrsh.w r4, [r7, #44] ; 0x2c + 8039954: f9b7 2016 ldrsh.w r2, [r7, #22] + 8039958: f9b7 102e ldrsh.w r1, [r7, #46] ; 0x2e + 803995c: f9b7 3014 ldrsh.w r3, [r7, #20] + 8039960: 9300 str r3, [sp, #0] + 8039962: 4623 mov r3, r4 + 8039964: f7f7 fa80 bl 8030e68 row_unit_cnt += btn_u; - 80399fc: 6b7a ldr r2, [r7, #52] ; 0x34 - 80399fe: 693b ldr r3, [r7, #16] - 8039a00: 4413 add r3, r2 - 8039a02: 637b str r3, [r7, #52] ; 0x34 + 8039968: 6b7a ldr r2, [r7, #52] ; 0x34 + 803996a: 693b ldr r3, [r7, #16] + 803996c: 4413 add r3, r2 + 803996e: 637b str r3, [r7, #52] ; 0x34 for(btn = 0; btn < btn_cnt; btn++, btn_tot_i++, txt_tot_i++) { - 8039a04: 6b3b ldr r3, [r7, #48] ; 0x30 - 8039a06: 3301 adds r3, #1 - 8039a08: 633b str r3, [r7, #48] ; 0x30 - 8039a0a: 6cbb ldr r3, [r7, #72] ; 0x48 - 8039a0c: 3301 adds r3, #1 - 8039a0e: 64bb str r3, [r7, #72] ; 0x48 - 8039a10: 6cfb ldr r3, [r7, #76] ; 0x4c - 8039a12: 3301 adds r3, #1 - 8039a14: 64fb str r3, [r7, #76] ; 0x4c - 8039a16: 8fbb ldrh r3, [r7, #60] ; 0x3c - 8039a18: 6b3a ldr r2, [r7, #48] ; 0x30 - 8039a1a: 429a cmp r2, r3 - 8039a1c: d388 bcc.n 8039930 + 8039970: 6b3b ldr r3, [r7, #48] ; 0x30 + 8039972: 3301 adds r3, #1 + 8039974: 633b str r3, [r7, #48] ; 0x30 + 8039976: 6cbb ldr r3, [r7, #72] ; 0x48 + 8039978: 3301 adds r3, #1 + 803997a: 64bb str r3, [r7, #72] ; 0x48 + 803997c: 6cfb ldr r3, [r7, #76] ; 0x4c + 803997e: 3301 adds r3, #1 + 8039980: 64fb str r3, [r7, #76] ; 0x4c + 8039982: 8fbb ldrh r3, [r7, #60] ; 0x3c + 8039984: 6b3a ldr r2, [r7, #48] ; 0x30 + 8039986: 429a cmp r2, r3 + 8039988: d388 bcc.n 803989c } map_row = &map_row[btn_cnt + 1]; /*Set the map to the next line*/ - 8039a1e: 8fbb ldrh r3, [r7, #60] ; 0x3c - 8039a20: 3301 adds r3, #1 - 8039a22: 009b lsls r3, r3, #2 - 8039a24: 6c7a ldr r2, [r7, #68] ; 0x44 - 8039a26: 4413 add r3, r2 - 8039a28: 647b str r3, [r7, #68] ; 0x44 + 803998a: 8fbb ldrh r3, [r7, #60] ; 0x3c + 803998c: 3301 adds r3, #1 + 803998e: 009b lsls r3, r3, #2 + 8039990: 6c7a ldr r2, [r7, #68] ; 0x44 + 8039992: 4413 add r3, r2 + 8039994: 647b str r3, [r7, #68] ; 0x44 for(row = 0; row < btnm->row_cnt; row++) { - 8039a2a: 6c3b ldr r3, [r7, #64] ; 0x40 - 8039a2c: 3301 adds r3, #1 - 8039a2e: 643b str r3, [r7, #64] ; 0x40 - 8039a30: 6abb ldr r3, [r7, #40] ; 0x28 - 8039a32: 8e5b ldrh r3, [r3, #50] ; 0x32 - 8039a34: 461a mov r2, r3 - 8039a36: 6c3b ldr r3, [r7, #64] ; 0x40 - 8039a38: 4293 cmp r3, r2 - 8039a3a: f4ff aef3 bcc.w 8039824 + 8039996: 6c3b ldr r3, [r7, #64] ; 0x40 + 8039998: 3301 adds r3, #1 + 803999a: 643b str r3, [r7, #64] ; 0x40 + 803999c: 6abb ldr r3, [r7, #40] ; 0x28 + 803999e: 8e5b ldrh r3, [r3, #50] ; 0x32 + 80399a0: 461a mov r2, r3 + 80399a2: 6c3b ldr r3, [r7, #64] ; 0x40 + 80399a4: 4293 cmp r3, r2 + 80399a6: f4ff aef3 bcc.w 8039790 } /*Popovers in the top row will draw outside the widget and the extended draw size depends on *the row height which may have changed when setting the new map*/ lv_obj_refresh_ext_draw_size(obj); - 8039a3e: 6878 ldr r0, [r7, #4] - 8039a40: f7cf fa25 bl 8008e8e + 80399aa: 6878 ldr r0, [r7, #4] + 80399ac: f7cf fa39 bl 8008e22 lv_obj_invalidate(obj); - 8039a44: 6878 ldr r0, [r7, #4] - 8039a46: f7d1 f834 bl 800aab2 - 8039a4a: e000 b.n 8039a4e + 80399b0: 6878 ldr r0, [r7, #4] + 80399b2: f7d1 f848 bl 800aa46 + 80399b6: e000 b.n 80399ba if(map == NULL) return; - 8039a4c: bf00 nop + 80399b8: bf00 nop } - 8039a4e: 3754 adds r7, #84 ; 0x54 - 8039a50: 46bd mov sp, r7 - 8039a52: bd90 pop {r4, r7, pc} - 8039a54: 0804716c .word 0x0804716c + 80399ba: 3754 adds r7, #84 ; 0x54 + 80399bc: 46bd mov sp, r7 + 80399be: bd90 pop {r4, r7, pc} + 80399c0: 080470c4 .word 0x080470c4 -08039a58 : +080399c4 : void lv_btnmatrix_set_ctrl_map(lv_obj_t * obj, const lv_btnmatrix_ctrl_t ctrl_map[]) { - 8039a58: b580 push {r7, lr} - 8039a5a: b084 sub sp, #16 - 8039a5c: af00 add r7, sp, #0 - 8039a5e: 6078 str r0, [r7, #4] - 8039a60: 6039 str r1, [r7, #0] + 80399c4: b580 push {r7, lr} + 80399c6: b084 sub sp, #16 + 80399c8: af00 add r7, sp, #0 + 80399ca: 6078 str r0, [r7, #4] + 80399cc: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj; - 8039a62: 687b ldr r3, [r7, #4] - 8039a64: 60fb str r3, [r7, #12] + 80399ce: 687b ldr r3, [r7, #4] + 80399d0: 60fb str r3, [r7, #12] lv_memcpy(btnm->ctrl_bits, ctrl_map, sizeof(lv_btnmatrix_ctrl_t) * btnm->btn_cnt); - 8039a66: 68fb ldr r3, [r7, #12] - 8039a68: 6ad8 ldr r0, [r3, #44] ; 0x2c - 8039a6a: 68fb ldr r3, [r7, #12] - 8039a6c: 8e1b ldrh r3, [r3, #48] ; 0x30 - 8039a6e: 005b lsls r3, r3, #1 - 8039a70: 461a mov r2, r3 - 8039a72: 6839 ldr r1, [r7, #0] - 8039a74: f7f9 f8c8 bl 8032c08 + 80399d2: 68fb ldr r3, [r7, #12] + 80399d4: 6ad8 ldr r0, [r3, #44] ; 0x2c + 80399d6: 68fb ldr r3, [r7, #12] + 80399d8: 8e1b ldrh r3, [r3, #48] ; 0x30 + 80399da: 005b lsls r3, r3, #1 + 80399dc: 461a mov r2, r3 + 80399de: 6839 ldr r1, [r7, #0] + 80399e0: f7f9 f8c8 bl 8032b74 lv_btnmatrix_set_map(obj, btnm->map_p); - 8039a78: 68fb ldr r3, [r7, #12] - 8039a7a: 6a5b ldr r3, [r3, #36] ; 0x24 - 8039a7c: 4619 mov r1, r3 - 8039a7e: 6878 ldr r0, [r7, #4] - 8039a80: f7ff fe80 bl 8039784 + 80399e4: 68fb ldr r3, [r7, #12] + 80399e6: 6a5b ldr r3, [r3, #36] ; 0x24 + 80399e8: 4619 mov r1, r3 + 80399ea: 6878 ldr r0, [r7, #4] + 80399ec: f7ff fe80 bl 80396f0 } - 8039a84: bf00 nop - 8039a86: 3710 adds r7, #16 - 8039a88: 46bd mov sp, r7 - 8039a8a: bd80 pop {r7, pc} + 80399f0: bf00 nop + 80399f2: 3710 adds r7, #16 + 80399f4: 46bd mov sp, r7 + 80399f6: bd80 pop {r7, pc} -08039a8c : +080399f8 : void lv_btnmatrix_set_selected_btn(lv_obj_t * obj, uint16_t btn_id) { - 8039a8c: b580 push {r7, lr} - 8039a8e: b084 sub sp, #16 - 8039a90: af00 add r7, sp, #0 - 8039a92: 6078 str r0, [r7, #4] - 8039a94: 460b mov r3, r1 - 8039a96: 807b strh r3, [r7, #2] + 80399f8: b580 push {r7, lr} + 80399fa: b084 sub sp, #16 + 80399fc: af00 add r7, sp, #0 + 80399fe: 6078 str r0, [r7, #4] + 8039a00: 460b mov r3, r1 + 8039a02: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj; - 8039a98: 687b ldr r3, [r7, #4] - 8039a9a: 60fb str r3, [r7, #12] + 8039a04: 687b ldr r3, [r7, #4] + 8039a06: 60fb str r3, [r7, #12] if(btn_id >= btnm->btn_cnt && btn_id != LV_BTNMATRIX_BTN_NONE) return; - 8039a9c: 68fb ldr r3, [r7, #12] - 8039a9e: 8e1b ldrh r3, [r3, #48] ; 0x30 - 8039aa0: 887a ldrh r2, [r7, #2] - 8039aa2: 429a cmp r2, r3 - 8039aa4: d304 bcc.n 8039ab0 - 8039aa6: 887b ldrh r3, [r7, #2] - 8039aa8: f64f 72ff movw r2, #65535 ; 0xffff - 8039aac: 4293 cmp r3, r2 - 8039aae: d10e bne.n 8039ace + 8039a08: 68fb ldr r3, [r7, #12] + 8039a0a: 8e1b ldrh r3, [r3, #48] ; 0x30 + 8039a0c: 887a ldrh r2, [r7, #2] + 8039a0e: 429a cmp r2, r3 + 8039a10: d304 bcc.n 8039a1c + 8039a12: 887b ldrh r3, [r7, #2] + 8039a14: f64f 72ff movw r2, #65535 ; 0xffff + 8039a18: 4293 cmp r3, r2 + 8039a1a: d10e bne.n 8039a3a invalidate_button_area(obj, btnm->btn_id_sel); - 8039ab0: 68fb ldr r3, [r7, #12] - 8039ab2: 8e9b ldrh r3, [r3, #52] ; 0x34 - 8039ab4: 4619 mov r1, r3 - 8039ab6: 6878 ldr r0, [r7, #4] - 8039ab8: f001 fd96 bl 803b5e8 + 8039a1c: 68fb ldr r3, [r7, #12] + 8039a1e: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8039a20: 4619 mov r1, r3 + 8039a22: 6878 ldr r0, [r7, #4] + 8039a24: f001 fd96 bl 803b554 btnm->btn_id_sel = btn_id; - 8039abc: 68fb ldr r3, [r7, #12] - 8039abe: 887a ldrh r2, [r7, #2] - 8039ac0: 869a strh r2, [r3, #52] ; 0x34 + 8039a28: 68fb ldr r3, [r7, #12] + 8039a2a: 887a ldrh r2, [r7, #2] + 8039a2c: 869a strh r2, [r3, #52] ; 0x34 invalidate_button_area(obj, btn_id); - 8039ac2: 887b ldrh r3, [r7, #2] - 8039ac4: 4619 mov r1, r3 - 8039ac6: 6878 ldr r0, [r7, #4] - 8039ac8: f001 fd8e bl 803b5e8 - 8039acc: e000 b.n 8039ad0 + 8039a2e: 887b ldrh r3, [r7, #2] + 8039a30: 4619 mov r1, r3 + 8039a32: 6878 ldr r0, [r7, #4] + 8039a34: f001 fd8e bl 803b554 + 8039a38: e000 b.n 8039a3c if(btn_id >= btnm->btn_cnt && btn_id != LV_BTNMATRIX_BTN_NONE) return; - 8039ace: bf00 nop + 8039a3a: bf00 nop } - 8039ad0: 3710 adds r7, #16 - 8039ad2: 46bd mov sp, r7 - 8039ad4: bd80 pop {r7, pc} + 8039a3c: 3710 adds r7, #16 + 8039a3e: 46bd mov sp, r7 + 8039a40: bd80 pop {r7, pc} -08039ad6 : +08039a42 : void lv_btnmatrix_set_btn_ctrl(lv_obj_t * obj, uint16_t btn_id, lv_btnmatrix_ctrl_t ctrl) { - 8039ad6: b580 push {r7, lr} - 8039ad8: b084 sub sp, #16 - 8039ada: af00 add r7, sp, #0 - 8039adc: 6078 str r0, [r7, #4] - 8039ade: 460b mov r3, r1 - 8039ae0: 807b strh r3, [r7, #2] - 8039ae2: 4613 mov r3, r2 - 8039ae4: 803b strh r3, [r7, #0] + 8039a42: b580 push {r7, lr} + 8039a44: b084 sub sp, #16 + 8039a46: af00 add r7, sp, #0 + 8039a48: 6078 str r0, [r7, #4] + 8039a4a: 460b mov r3, r1 + 8039a4c: 807b strh r3, [r7, #2] + 8039a4e: 4613 mov r3, r2 + 8039a50: 803b strh r3, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj;; - 8039ae6: 687b ldr r3, [r7, #4] - 8039ae8: 60fb str r3, [r7, #12] + 8039a52: 687b ldr r3, [r7, #4] + 8039a54: 60fb str r3, [r7, #12] if(btn_id >= btnm->btn_cnt) return; - 8039aea: 68fb ldr r3, [r7, #12] - 8039aec: 8e1b ldrh r3, [r3, #48] ; 0x30 - 8039aee: 887a ldrh r2, [r7, #2] - 8039af0: 429a cmp r2, r3 - 8039af2: d22d bcs.n 8039b50 + 8039a56: 68fb ldr r3, [r7, #12] + 8039a58: 8e1b ldrh r3, [r3, #48] ; 0x30 + 8039a5a: 887a ldrh r2, [r7, #2] + 8039a5c: 429a cmp r2, r3 + 8039a5e: d22d bcs.n 8039abc if(btnm->one_check && (ctrl & LV_BTNMATRIX_CTRL_CHECKED)) { - 8039af4: 68fb ldr r3, [r7, #12] - 8039af6: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 8039afa: f003 0301 and.w r3, r3, #1 - 8039afe: b2db uxtb r3, r3 - 8039b00: 2b00 cmp r3, #0 - 8039b02: d008 beq.n 8039b16 - 8039b04: 883b ldrh r3, [r7, #0] - 8039b06: f003 0380 and.w r3, r3, #128 ; 0x80 - 8039b0a: 2b00 cmp r3, #0 - 8039b0c: d003 beq.n 8039b16 + 8039a60: 68fb ldr r3, [r7, #12] + 8039a62: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 8039a66: f003 0301 and.w r3, r3, #1 + 8039a6a: b2db uxtb r3, r3 + 8039a6c: 2b00 cmp r3, #0 + 8039a6e: d008 beq.n 8039a82 + 8039a70: 883b ldrh r3, [r7, #0] + 8039a72: f003 0380 and.w r3, r3, #128 ; 0x80 + 8039a76: 2b00 cmp r3, #0 + 8039a78: d003 beq.n 8039a82 lv_btnmatrix_clear_btn_ctrl_all(obj, LV_BTNMATRIX_CTRL_CHECKED); - 8039b0e: 2180 movs r1, #128 ; 0x80 - 8039b10: 6878 ldr r0, [r7, #4] - 8039b12: f000 f874 bl 8039bfe + 8039a7a: 2180 movs r1, #128 ; 0x80 + 8039a7c: 6878 ldr r0, [r7, #4] + 8039a7e: f000 f874 bl 8039b6a } btnm->ctrl_bits[btn_id] |= ctrl; - 8039b16: 68fb ldr r3, [r7, #12] - 8039b18: 6ada ldr r2, [r3, #44] ; 0x2c - 8039b1a: 887b ldrh r3, [r7, #2] - 8039b1c: 005b lsls r3, r3, #1 - 8039b1e: 4413 add r3, r2 - 8039b20: 8819 ldrh r1, [r3, #0] - 8039b22: 68fb ldr r3, [r7, #12] - 8039b24: 6ada ldr r2, [r3, #44] ; 0x2c - 8039b26: 887b ldrh r3, [r7, #2] - 8039b28: 005b lsls r3, r3, #1 - 8039b2a: 4413 add r3, r2 - 8039b2c: 883a ldrh r2, [r7, #0] - 8039b2e: 430a orrs r2, r1 - 8039b30: b292 uxth r2, r2 - 8039b32: 801a strh r2, [r3, #0] + 8039a82: 68fb ldr r3, [r7, #12] + 8039a84: 6ada ldr r2, [r3, #44] ; 0x2c + 8039a86: 887b ldrh r3, [r7, #2] + 8039a88: 005b lsls r3, r3, #1 + 8039a8a: 4413 add r3, r2 + 8039a8c: 8819 ldrh r1, [r3, #0] + 8039a8e: 68fb ldr r3, [r7, #12] + 8039a90: 6ada ldr r2, [r3, #44] ; 0x2c + 8039a92: 887b ldrh r3, [r7, #2] + 8039a94: 005b lsls r3, r3, #1 + 8039a96: 4413 add r3, r2 + 8039a98: 883a ldrh r2, [r7, #0] + 8039a9a: 430a orrs r2, r1 + 8039a9c: b292 uxth r2, r2 + 8039a9e: 801a strh r2, [r3, #0] invalidate_button_area(obj, btn_id); - 8039b34: 887b ldrh r3, [r7, #2] - 8039b36: 4619 mov r1, r3 - 8039b38: 6878 ldr r0, [r7, #4] - 8039b3a: f001 fd55 bl 803b5e8 + 8039aa0: 887b ldrh r3, [r7, #2] + 8039aa2: 4619 mov r1, r3 + 8039aa4: 6878 ldr r0, [r7, #4] + 8039aa6: f001 fd55 bl 803b554 if(ctrl & LV_BTNMATRIX_CTRL_POPOVER) { - 8039b3e: 883b ldrh r3, [r7, #0] - 8039b40: f403 7300 and.w r3, r3, #512 ; 0x200 - 8039b44: 2b00 cmp r3, #0 - 8039b46: d004 beq.n 8039b52 + 8039aaa: 883b ldrh r3, [r7, #0] + 8039aac: f403 7300 and.w r3, r3, #512 ; 0x200 + 8039ab0: 2b00 cmp r3, #0 + 8039ab2: d004 beq.n 8039abe lv_obj_refresh_ext_draw_size(obj); - 8039b48: 6878 ldr r0, [r7, #4] - 8039b4a: f7cf f9a0 bl 8008e8e - 8039b4e: e000 b.n 8039b52 + 8039ab4: 6878 ldr r0, [r7, #4] + 8039ab6: f7cf f9b4 bl 8008e22 + 8039aba: e000 b.n 8039abe if(btn_id >= btnm->btn_cnt) return; - 8039b50: bf00 nop + 8039abc: bf00 nop } } - 8039b52: 3710 adds r7, #16 - 8039b54: 46bd mov sp, r7 - 8039b56: bd80 pop {r7, pc} + 8039abe: 3710 adds r7, #16 + 8039ac0: 46bd mov sp, r7 + 8039ac2: bd80 pop {r7, pc} -08039b58 : +08039ac4 : void lv_btnmatrix_clear_btn_ctrl(lv_obj_t * obj, uint16_t btn_id, lv_btnmatrix_ctrl_t ctrl) { - 8039b58: b580 push {r7, lr} - 8039b5a: b084 sub sp, #16 - 8039b5c: af00 add r7, sp, #0 - 8039b5e: 6078 str r0, [r7, #4] - 8039b60: 460b mov r3, r1 - 8039b62: 807b strh r3, [r7, #2] - 8039b64: 4613 mov r3, r2 - 8039b66: 803b strh r3, [r7, #0] + 8039ac4: b580 push {r7, lr} + 8039ac6: b084 sub sp, #16 + 8039ac8: af00 add r7, sp, #0 + 8039aca: 6078 str r0, [r7, #4] + 8039acc: 460b mov r3, r1 + 8039ace: 807b strh r3, [r7, #2] + 8039ad0: 4613 mov r3, r2 + 8039ad2: 803b strh r3, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj;; - 8039b68: 687b ldr r3, [r7, #4] - 8039b6a: 60fb str r3, [r7, #12] + 8039ad4: 687b ldr r3, [r7, #4] + 8039ad6: 60fb str r3, [r7, #12] if(btn_id >= btnm->btn_cnt) return; - 8039b6c: 68fb ldr r3, [r7, #12] - 8039b6e: 8e1b ldrh r3, [r3, #48] ; 0x30 - 8039b70: 887a ldrh r2, [r7, #2] - 8039b72: 429a cmp r2, r3 - 8039b74: d221 bcs.n 8039bba + 8039ad8: 68fb ldr r3, [r7, #12] + 8039ada: 8e1b ldrh r3, [r3, #48] ; 0x30 + 8039adc: 887a ldrh r2, [r7, #2] + 8039ade: 429a cmp r2, r3 + 8039ae0: d221 bcs.n 8039b26 btnm->ctrl_bits[btn_id] &= (~ctrl); - 8039b76: 68fb ldr r3, [r7, #12] - 8039b78: 6ada ldr r2, [r3, #44] ; 0x2c - 8039b7a: 887b ldrh r3, [r7, #2] - 8039b7c: 005b lsls r3, r3, #1 - 8039b7e: 4413 add r3, r2 - 8039b80: 881b ldrh r3, [r3, #0] - 8039b82: b21a sxth r2, r3 - 8039b84: f9b7 3000 ldrsh.w r3, [r7] - 8039b88: 43db mvns r3, r3 - 8039b8a: b21b sxth r3, r3 - 8039b8c: 4013 ands r3, r2 - 8039b8e: b219 sxth r1, r3 - 8039b90: 68fb ldr r3, [r7, #12] - 8039b92: 6ada ldr r2, [r3, #44] ; 0x2c - 8039b94: 887b ldrh r3, [r7, #2] - 8039b96: 005b lsls r3, r3, #1 - 8039b98: 4413 add r3, r2 - 8039b9a: b28a uxth r2, r1 - 8039b9c: 801a strh r2, [r3, #0] + 8039ae2: 68fb ldr r3, [r7, #12] + 8039ae4: 6ada ldr r2, [r3, #44] ; 0x2c + 8039ae6: 887b ldrh r3, [r7, #2] + 8039ae8: 005b lsls r3, r3, #1 + 8039aea: 4413 add r3, r2 + 8039aec: 881b ldrh r3, [r3, #0] + 8039aee: b21a sxth r2, r3 + 8039af0: f9b7 3000 ldrsh.w r3, [r7] + 8039af4: 43db mvns r3, r3 + 8039af6: b21b sxth r3, r3 + 8039af8: 4013 ands r3, r2 + 8039afa: b219 sxth r1, r3 + 8039afc: 68fb ldr r3, [r7, #12] + 8039afe: 6ada ldr r2, [r3, #44] ; 0x2c + 8039b00: 887b ldrh r3, [r7, #2] + 8039b02: 005b lsls r3, r3, #1 + 8039b04: 4413 add r3, r2 + 8039b06: b28a uxth r2, r1 + 8039b08: 801a strh r2, [r3, #0] invalidate_button_area(obj, btn_id); - 8039b9e: 887b ldrh r3, [r7, #2] - 8039ba0: 4619 mov r1, r3 - 8039ba2: 6878 ldr r0, [r7, #4] - 8039ba4: f001 fd20 bl 803b5e8 + 8039b0a: 887b ldrh r3, [r7, #2] + 8039b0c: 4619 mov r1, r3 + 8039b0e: 6878 ldr r0, [r7, #4] + 8039b10: f001 fd20 bl 803b554 if(ctrl & LV_BTNMATRIX_CTRL_POPOVER) { - 8039ba8: 883b ldrh r3, [r7, #0] - 8039baa: f403 7300 and.w r3, r3, #512 ; 0x200 - 8039bae: 2b00 cmp r3, #0 - 8039bb0: d004 beq.n 8039bbc + 8039b14: 883b ldrh r3, [r7, #0] + 8039b16: f403 7300 and.w r3, r3, #512 ; 0x200 + 8039b1a: 2b00 cmp r3, #0 + 8039b1c: d004 beq.n 8039b28 lv_obj_refresh_ext_draw_size(obj); - 8039bb2: 6878 ldr r0, [r7, #4] - 8039bb4: f7cf f96b bl 8008e8e - 8039bb8: e000 b.n 8039bbc + 8039b1e: 6878 ldr r0, [r7, #4] + 8039b20: f7cf f97f bl 8008e22 + 8039b24: e000 b.n 8039b28 if(btn_id >= btnm->btn_cnt) return; - 8039bba: bf00 nop + 8039b26: bf00 nop } } - 8039bbc: 3710 adds r7, #16 - 8039bbe: 46bd mov sp, r7 - 8039bc0: bd80 pop {r7, pc} + 8039b28: 3710 adds r7, #16 + 8039b2a: 46bd mov sp, r7 + 8039b2c: bd80 pop {r7, pc} -08039bc2 : +08039b2e : void lv_btnmatrix_set_btn_ctrl_all(lv_obj_t * obj, lv_btnmatrix_ctrl_t ctrl) { - 8039bc2: b580 push {r7, lr} - 8039bc4: b084 sub sp, #16 - 8039bc6: af00 add r7, sp, #0 - 8039bc8: 6078 str r0, [r7, #4] - 8039bca: 460b mov r3, r1 - 8039bcc: 807b strh r3, [r7, #2] + 8039b2e: b580 push {r7, lr} + 8039b30: b084 sub sp, #16 + 8039b32: af00 add r7, sp, #0 + 8039b34: 6078 str r0, [r7, #4] + 8039b36: 460b mov r3, r1 + 8039b38: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj;; - 8039bce: 687b ldr r3, [r7, #4] - 8039bd0: 60bb str r3, [r7, #8] + 8039b3a: 687b ldr r3, [r7, #4] + 8039b3c: 60bb str r3, [r7, #8] uint16_t i; for(i = 0; i < btnm->btn_cnt; i++) { - 8039bd2: 2300 movs r3, #0 - 8039bd4: 81fb strh r3, [r7, #14] - 8039bd6: e008 b.n 8039bea + 8039b3e: 2300 movs r3, #0 + 8039b40: 81fb strh r3, [r7, #14] + 8039b42: e008 b.n 8039b56 lv_btnmatrix_set_btn_ctrl(obj, i, ctrl); - 8039bd8: 887a ldrh r2, [r7, #2] - 8039bda: 89fb ldrh r3, [r7, #14] - 8039bdc: 4619 mov r1, r3 - 8039bde: 6878 ldr r0, [r7, #4] - 8039be0: f7ff ff79 bl 8039ad6 + 8039b44: 887a ldrh r2, [r7, #2] + 8039b46: 89fb ldrh r3, [r7, #14] + 8039b48: 4619 mov r1, r3 + 8039b4a: 6878 ldr r0, [r7, #4] + 8039b4c: f7ff ff79 bl 8039a42 for(i = 0; i < btnm->btn_cnt; i++) { - 8039be4: 89fb ldrh r3, [r7, #14] - 8039be6: 3301 adds r3, #1 - 8039be8: 81fb strh r3, [r7, #14] - 8039bea: 68bb ldr r3, [r7, #8] - 8039bec: 8e1b ldrh r3, [r3, #48] ; 0x30 - 8039bee: 89fa ldrh r2, [r7, #14] - 8039bf0: 429a cmp r2, r3 - 8039bf2: d3f1 bcc.n 8039bd8 + 8039b50: 89fb ldrh r3, [r7, #14] + 8039b52: 3301 adds r3, #1 + 8039b54: 81fb strh r3, [r7, #14] + 8039b56: 68bb ldr r3, [r7, #8] + 8039b58: 8e1b ldrh r3, [r3, #48] ; 0x30 + 8039b5a: 89fa ldrh r2, [r7, #14] + 8039b5c: 429a cmp r2, r3 + 8039b5e: d3f1 bcc.n 8039b44 } } - 8039bf4: bf00 nop - 8039bf6: bf00 nop - 8039bf8: 3710 adds r7, #16 - 8039bfa: 46bd mov sp, r7 - 8039bfc: bd80 pop {r7, pc} + 8039b60: bf00 nop + 8039b62: bf00 nop + 8039b64: 3710 adds r7, #16 + 8039b66: 46bd mov sp, r7 + 8039b68: bd80 pop {r7, pc} -08039bfe : +08039b6a : void lv_btnmatrix_clear_btn_ctrl_all(lv_obj_t * obj, lv_btnmatrix_ctrl_t ctrl) { - 8039bfe: b580 push {r7, lr} - 8039c00: b084 sub sp, #16 - 8039c02: af00 add r7, sp, #0 - 8039c04: 6078 str r0, [r7, #4] - 8039c06: 460b mov r3, r1 - 8039c08: 807b strh r3, [r7, #2] + 8039b6a: b580 push {r7, lr} + 8039b6c: b084 sub sp, #16 + 8039b6e: af00 add r7, sp, #0 + 8039b70: 6078 str r0, [r7, #4] + 8039b72: 460b mov r3, r1 + 8039b74: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj;; - 8039c0a: 687b ldr r3, [r7, #4] - 8039c0c: 60bb str r3, [r7, #8] + 8039b76: 687b ldr r3, [r7, #4] + 8039b78: 60bb str r3, [r7, #8] uint16_t i; for(i = 0; i < btnm->btn_cnt; i++) { - 8039c0e: 2300 movs r3, #0 - 8039c10: 81fb strh r3, [r7, #14] - 8039c12: e008 b.n 8039c26 + 8039b7a: 2300 movs r3, #0 + 8039b7c: 81fb strh r3, [r7, #14] + 8039b7e: e008 b.n 8039b92 lv_btnmatrix_clear_btn_ctrl(obj, i, ctrl); - 8039c14: 887a ldrh r2, [r7, #2] - 8039c16: 89fb ldrh r3, [r7, #14] - 8039c18: 4619 mov r1, r3 - 8039c1a: 6878 ldr r0, [r7, #4] - 8039c1c: f7ff ff9c bl 8039b58 + 8039b80: 887a ldrh r2, [r7, #2] + 8039b82: 89fb ldrh r3, [r7, #14] + 8039b84: 4619 mov r1, r3 + 8039b86: 6878 ldr r0, [r7, #4] + 8039b88: f7ff ff9c bl 8039ac4 for(i = 0; i < btnm->btn_cnt; i++) { - 8039c20: 89fb ldrh r3, [r7, #14] - 8039c22: 3301 adds r3, #1 - 8039c24: 81fb strh r3, [r7, #14] - 8039c26: 68bb ldr r3, [r7, #8] - 8039c28: 8e1b ldrh r3, [r3, #48] ; 0x30 - 8039c2a: 89fa ldrh r2, [r7, #14] - 8039c2c: 429a cmp r2, r3 - 8039c2e: d3f1 bcc.n 8039c14 + 8039b8c: 89fb ldrh r3, [r7, #14] + 8039b8e: 3301 adds r3, #1 + 8039b90: 81fb strh r3, [r7, #14] + 8039b92: 68bb ldr r3, [r7, #8] + 8039b94: 8e1b ldrh r3, [r3, #48] ; 0x30 + 8039b96: 89fa ldrh r2, [r7, #14] + 8039b98: 429a cmp r2, r3 + 8039b9a: d3f1 bcc.n 8039b80 } } - 8039c30: bf00 nop - 8039c32: bf00 nop - 8039c34: 3710 adds r7, #16 - 8039c36: 46bd mov sp, r7 - 8039c38: bd80 pop {r7, pc} + 8039b9c: bf00 nop + 8039b9e: bf00 nop + 8039ba0: 3710 adds r7, #16 + 8039ba2: 46bd mov sp, r7 + 8039ba4: bd80 pop {r7, pc} -08039c3a : +08039ba6 : lv_btnmatrix_set_map(obj, btnm->map_p); } void lv_btnmatrix_set_one_checked(lv_obj_t * obj, bool en) { - 8039c3a: b580 push {r7, lr} - 8039c3c: b084 sub sp, #16 - 8039c3e: af00 add r7, sp, #0 - 8039c40: 6078 str r0, [r7, #4] - 8039c42: 460b mov r3, r1 - 8039c44: 70fb strb r3, [r7, #3] + 8039ba6: b580 push {r7, lr} + 8039ba8: b084 sub sp, #16 + 8039baa: af00 add r7, sp, #0 + 8039bac: 6078 str r0, [r7, #4] + 8039bae: 460b mov r3, r1 + 8039bb0: 70fb strb r3, [r7, #3] LV_ASSERT_OBJ(obj, MY_CLASS); lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj;; - 8039c46: 687b ldr r3, [r7, #4] - 8039c48: 60fb str r3, [r7, #12] + 8039bb2: 687b ldr r3, [r7, #4] + 8039bb4: 60fb str r3, [r7, #12] btnm->one_check = en; - 8039c4a: 68fa ldr r2, [r7, #12] - 8039c4c: f892 3036 ldrb.w r3, [r2, #54] ; 0x36 - 8039c50: 78f9 ldrb r1, [r7, #3] - 8039c52: f361 0300 bfi r3, r1, #0, #1 - 8039c56: f882 3036 strb.w r3, [r2, #54] ; 0x36 + 8039bb6: 68fa ldr r2, [r7, #12] + 8039bb8: f892 3036 ldrb.w r3, [r2, #54] ; 0x36 + 8039bbc: 78f9 ldrb r1, [r7, #3] + 8039bbe: f361 0300 bfi r3, r1, #0, #1 + 8039bc2: f882 3036 strb.w r3, [r2, #54] ; 0x36 /*If more than one button is toggled only the first one should be*/ make_one_button_checked(obj, 0); - 8039c5a: 2100 movs r1, #0 - 8039c5c: 6878 ldr r0, [r7, #4] - 8039c5e: f001 fd7d bl 803b75c + 8039bc6: 2100 movs r1, #0 + 8039bc8: 6878 ldr r0, [r7, #4] + 8039bca: f001 fd7d bl 803b6c8 } - 8039c62: bf00 nop - 8039c64: 3710 adds r7, #16 - 8039c66: 46bd mov sp, r7 - 8039c68: bd80 pop {r7, pc} + 8039bce: bf00 nop + 8039bd0: 3710 adds r7, #16 + 8039bd2: 46bd mov sp, r7 + 8039bd4: bd80 pop {r7, pc} -08039c6a : +08039bd6 : lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj;; return btnm->map_p; } uint16_t lv_btnmatrix_get_selected_btn(const lv_obj_t * obj) { - 8039c6a: b480 push {r7} - 8039c6c: b085 sub sp, #20 - 8039c6e: af00 add r7, sp, #0 - 8039c70: 6078 str r0, [r7, #4] + 8039bd6: b480 push {r7} + 8039bd8: b085 sub sp, #20 + 8039bda: af00 add r7, sp, #0 + 8039bdc: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj;; - 8039c72: 687b ldr r3, [r7, #4] - 8039c74: 60fb str r3, [r7, #12] + 8039bde: 687b ldr r3, [r7, #4] + 8039be0: 60fb str r3, [r7, #12] return btnm->btn_id_sel; - 8039c76: 68fb ldr r3, [r7, #12] - 8039c78: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8039be2: 68fb ldr r3, [r7, #12] + 8039be4: 8e9b ldrh r3, [r3, #52] ; 0x34 } - 8039c7a: 4618 mov r0, r3 - 8039c7c: 3714 adds r7, #20 - 8039c7e: 46bd mov sp, r7 - 8039c80: bc80 pop {r7} - 8039c82: 4770 bx lr + 8039be6: 4618 mov r0, r3 + 8039be8: 3714 adds r7, #20 + 8039bea: 46bd mov sp, r7 + 8039bec: bc80 pop {r7} + 8039bee: 4770 bx lr -08039c84 : +08039bf0 : const char * lv_btnmatrix_get_btn_text(const lv_obj_t * obj, uint16_t btn_id) { - 8039c84: b580 push {r7, lr} - 8039c86: b084 sub sp, #16 - 8039c88: af00 add r7, sp, #0 - 8039c8a: 6078 str r0, [r7, #4] - 8039c8c: 460b mov r3, r1 - 8039c8e: 807b strh r3, [r7, #2] + 8039bf0: b580 push {r7, lr} + 8039bf2: b084 sub sp, #16 + 8039bf4: af00 add r7, sp, #0 + 8039bf6: 6078 str r0, [r7, #4] + 8039bf8: 460b mov r3, r1 + 8039bfa: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); if(btn_id == LV_BTNMATRIX_BTN_NONE) return NULL; - 8039c90: 887b ldrh r3, [r7, #2] - 8039c92: f64f 72ff movw r2, #65535 ; 0xffff - 8039c96: 4293 cmp r3, r2 - 8039c98: d101 bne.n 8039c9e - 8039c9a: 2300 movs r3, #0 - 8039c9c: e034 b.n 8039d08 + 8039bfc: 887b ldrh r3, [r7, #2] + 8039bfe: f64f 72ff movw r2, #65535 ; 0xffff + 8039c02: 4293 cmp r3, r2 + 8039c04: d101 bne.n 8039c0a + 8039c06: 2300 movs r3, #0 + 8039c08: e034 b.n 8039c74 lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj; - 8039c9e: 687b ldr r3, [r7, #4] - 8039ca0: 60bb str r3, [r7, #8] + 8039c0a: 687b ldr r3, [r7, #4] + 8039c0c: 60bb str r3, [r7, #8] if(btn_id > btnm->btn_cnt) return NULL; - 8039ca2: 68bb ldr r3, [r7, #8] - 8039ca4: 8e1b ldrh r3, [r3, #48] ; 0x30 - 8039ca6: 887a ldrh r2, [r7, #2] - 8039ca8: 429a cmp r2, r3 - 8039caa: d901 bls.n 8039cb0 - 8039cac: 2300 movs r3, #0 - 8039cae: e02b b.n 8039d08 + 8039c0e: 68bb ldr r3, [r7, #8] + 8039c10: 8e1b ldrh r3, [r3, #48] ; 0x30 + 8039c12: 887a ldrh r2, [r7, #2] + 8039c14: 429a cmp r2, r3 + 8039c16: d901 bls.n 8039c1c + 8039c18: 2300 movs r3, #0 + 8039c1a: e02b b.n 8039c74 uint16_t txt_i = 0; - 8039cb0: 2300 movs r3, #0 - 8039cb2: 81fb strh r3, [r7, #14] + 8039c1c: 2300 movs r3, #0 + 8039c1e: 81fb strh r3, [r7, #14] uint16_t btn_i = 0; - 8039cb4: 2300 movs r3, #0 - 8039cb6: 81bb strh r3, [r7, #12] + 8039c20: 2300 movs r3, #0 + 8039c22: 81bb strh r3, [r7, #12] /*Search the text of btnm->btn_pr the buttons text in the map *Skip "\n"-s*/ while(btn_i != btn_id) { - 8039cb8: e015 b.n 8039ce6 + 8039c24: e015 b.n 8039c52 btn_i++; - 8039cba: 89bb ldrh r3, [r7, #12] - 8039cbc: 3301 adds r3, #1 - 8039cbe: 81bb strh r3, [r7, #12] + 8039c26: 89bb ldrh r3, [r7, #12] + 8039c28: 3301 adds r3, #1 + 8039c2a: 81bb strh r3, [r7, #12] txt_i++; - 8039cc0: 89fb ldrh r3, [r7, #14] - 8039cc2: 3301 adds r3, #1 - 8039cc4: 81fb strh r3, [r7, #14] + 8039c2c: 89fb ldrh r3, [r7, #14] + 8039c2e: 3301 adds r3, #1 + 8039c30: 81fb strh r3, [r7, #14] if(strcmp(btnm->map_p[txt_i], "\n") == 0) txt_i++; - 8039cc6: 68bb ldr r3, [r7, #8] - 8039cc8: 6a5a ldr r2, [r3, #36] ; 0x24 - 8039cca: 89fb ldrh r3, [r7, #14] - 8039ccc: 009b lsls r3, r3, #2 - 8039cce: 4413 add r3, r2 - 8039cd0: 681b ldr r3, [r3, #0] - 8039cd2: 490f ldr r1, [pc, #60] ; (8039d10 ) - 8039cd4: 4618 mov r0, r3 - 8039cd6: f7c6 faa5 bl 8000224 - 8039cda: 4603 mov r3, r0 - 8039cdc: 2b00 cmp r3, #0 - 8039cde: d102 bne.n 8039ce6 - 8039ce0: 89fb ldrh r3, [r7, #14] - 8039ce2: 3301 adds r3, #1 - 8039ce4: 81fb strh r3, [r7, #14] + 8039c32: 68bb ldr r3, [r7, #8] + 8039c34: 6a5a ldr r2, [r3, #36] ; 0x24 + 8039c36: 89fb ldrh r3, [r7, #14] + 8039c38: 009b lsls r3, r3, #2 + 8039c3a: 4413 add r3, r2 + 8039c3c: 681b ldr r3, [r3, #0] + 8039c3e: 490f ldr r1, [pc, #60] ; (8039c7c ) + 8039c40: 4618 mov r0, r3 + 8039c42: f7c6 faef bl 8000224 + 8039c46: 4603 mov r3, r0 + 8039c48: 2b00 cmp r3, #0 + 8039c4a: d102 bne.n 8039c52 + 8039c4c: 89fb ldrh r3, [r7, #14] + 8039c4e: 3301 adds r3, #1 + 8039c50: 81fb strh r3, [r7, #14] while(btn_i != btn_id) { - 8039ce6: 89ba ldrh r2, [r7, #12] - 8039ce8: 887b ldrh r3, [r7, #2] - 8039cea: 429a cmp r2, r3 - 8039cec: d1e5 bne.n 8039cba + 8039c52: 89ba ldrh r2, [r7, #12] + 8039c54: 887b ldrh r3, [r7, #2] + 8039c56: 429a cmp r2, r3 + 8039c58: d1e5 bne.n 8039c26 } if(btn_i == btnm->btn_cnt) return NULL; - 8039cee: 68bb ldr r3, [r7, #8] - 8039cf0: 8e1b ldrh r3, [r3, #48] ; 0x30 - 8039cf2: 89ba ldrh r2, [r7, #12] - 8039cf4: 429a cmp r2, r3 - 8039cf6: d101 bne.n 8039cfc - 8039cf8: 2300 movs r3, #0 - 8039cfa: e005 b.n 8039d08 + 8039c5a: 68bb ldr r3, [r7, #8] + 8039c5c: 8e1b ldrh r3, [r3, #48] ; 0x30 + 8039c5e: 89ba ldrh r2, [r7, #12] + 8039c60: 429a cmp r2, r3 + 8039c62: d101 bne.n 8039c68 + 8039c64: 2300 movs r3, #0 + 8039c66: e005 b.n 8039c74 return btnm->map_p[txt_i]; - 8039cfc: 68bb ldr r3, [r7, #8] - 8039cfe: 6a5a ldr r2, [r3, #36] ; 0x24 - 8039d00: 89fb ldrh r3, [r7, #14] - 8039d02: 009b lsls r3, r3, #2 - 8039d04: 4413 add r3, r2 - 8039d06: 681b ldr r3, [r3, #0] + 8039c68: 68bb ldr r3, [r7, #8] + 8039c6a: 6a5a ldr r2, [r3, #36] ; 0x24 + 8039c6c: 89fb ldrh r3, [r7, #14] + 8039c6e: 009b lsls r3, r3, #2 + 8039c70: 4413 add r3, r2 + 8039c72: 681b ldr r3, [r3, #0] } - 8039d08: 4618 mov r0, r3 - 8039d0a: 3710 adds r7, #16 - 8039d0c: 46bd mov sp, r7 - 8039d0e: bd80 pop {r7, pc} - 8039d10: 0804716c .word 0x0804716c + 8039c74: 4618 mov r0, r3 + 8039c76: 3710 adds r7, #16 + 8039c78: 46bd mov sp, r7 + 8039c7a: bd80 pop {r7, pc} + 8039c7c: 080470c4 .word 0x080470c4 -08039d14 : +08039c80 : bool lv_btnmatrix_has_btn_ctrl(lv_obj_t * obj, uint16_t btn_id, lv_btnmatrix_ctrl_t ctrl) { - 8039d14: b480 push {r7} - 8039d16: b085 sub sp, #20 - 8039d18: af00 add r7, sp, #0 - 8039d1a: 6078 str r0, [r7, #4] - 8039d1c: 460b mov r3, r1 - 8039d1e: 807b strh r3, [r7, #2] - 8039d20: 4613 mov r3, r2 - 8039d22: 803b strh r3, [r7, #0] + 8039c80: b480 push {r7} + 8039c82: b085 sub sp, #20 + 8039c84: af00 add r7, sp, #0 + 8039c86: 6078 str r0, [r7, #4] + 8039c88: 460b mov r3, r1 + 8039c8a: 807b strh r3, [r7, #2] + 8039c8c: 4613 mov r3, r2 + 8039c8e: 803b strh r3, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj;; - 8039d24: 687b ldr r3, [r7, #4] - 8039d26: 60fb str r3, [r7, #12] + 8039c90: 687b ldr r3, [r7, #4] + 8039c92: 60fb str r3, [r7, #12] if(btn_id >= btnm->btn_cnt) return false; - 8039d28: 68fb ldr r3, [r7, #12] - 8039d2a: 8e1b ldrh r3, [r3, #48] ; 0x30 - 8039d2c: 887a ldrh r2, [r7, #2] - 8039d2e: 429a cmp r2, r3 - 8039d30: d301 bcc.n 8039d36 - 8039d32: 2300 movs r3, #0 - 8039d34: e00e b.n 8039d54 + 8039c94: 68fb ldr r3, [r7, #12] + 8039c96: 8e1b ldrh r3, [r3, #48] ; 0x30 + 8039c98: 887a ldrh r2, [r7, #2] + 8039c9a: 429a cmp r2, r3 + 8039c9c: d301 bcc.n 8039ca2 + 8039c9e: 2300 movs r3, #0 + 8039ca0: e00e b.n 8039cc0 return ((btnm->ctrl_bits[btn_id] & ctrl) == ctrl) ? true : false; - 8039d36: 68fb ldr r3, [r7, #12] - 8039d38: 6ada ldr r2, [r3, #44] ; 0x2c - 8039d3a: 887b ldrh r3, [r7, #2] - 8039d3c: 005b lsls r3, r3, #1 - 8039d3e: 4413 add r3, r2 - 8039d40: 881a ldrh r2, [r3, #0] - 8039d42: 883b ldrh r3, [r7, #0] - 8039d44: 4013 ands r3, r2 - 8039d46: b29b uxth r3, r3 - 8039d48: 883a ldrh r2, [r7, #0] - 8039d4a: 429a cmp r2, r3 - 8039d4c: bf0c ite eq - 8039d4e: 2301 moveq r3, #1 - 8039d50: 2300 movne r3, #0 - 8039d52: b2db uxtb r3, r3 + 8039ca2: 68fb ldr r3, [r7, #12] + 8039ca4: 6ada ldr r2, [r3, #44] ; 0x2c + 8039ca6: 887b ldrh r3, [r7, #2] + 8039ca8: 005b lsls r3, r3, #1 + 8039caa: 4413 add r3, r2 + 8039cac: 881a ldrh r2, [r3, #0] + 8039cae: 883b ldrh r3, [r7, #0] + 8039cb0: 4013 ands r3, r2 + 8039cb2: b29b uxth r3, r3 + 8039cb4: 883a ldrh r2, [r7, #0] + 8039cb6: 429a cmp r2, r3 + 8039cb8: bf0c ite eq + 8039cba: 2301 moveq r3, #1 + 8039cbc: 2300 movne r3, #0 + 8039cbe: b2db uxtb r3, r3 } - 8039d54: 4618 mov r0, r3 - 8039d56: 3714 adds r7, #20 - 8039d58: 46bd mov sp, r7 - 8039d5a: bc80 pop {r7} - 8039d5c: 4770 bx lr + 8039cc0: 4618 mov r0, r3 + 8039cc2: 3714 adds r7, #20 + 8039cc4: 46bd mov sp, r7 + 8039cc6: bc80 pop {r7} + 8039cc8: 4770 bx lr ... -08039d60 : +08039ccc : /********************** * STATIC FUNCTIONS **********************/ static void lv_btnmatrix_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 8039d60: b580 push {r7, lr} - 8039d62: b084 sub sp, #16 - 8039d64: af00 add r7, sp, #0 - 8039d66: 6078 str r0, [r7, #4] - 8039d68: 6039 str r1, [r7, #0] + 8039ccc: b580 push {r7, lr} + 8039cce: b084 sub sp, #16 + 8039cd0: af00 add r7, sp, #0 + 8039cd2: 6078 str r0, [r7, #4] + 8039cd4: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj; - 8039d6a: 683b ldr r3, [r7, #0] - 8039d6c: 60fb str r3, [r7, #12] + 8039cd6: 683b ldr r3, [r7, #0] + 8039cd8: 60fb str r3, [r7, #12] btnm->btn_cnt = 0; - 8039d6e: 68fb ldr r3, [r7, #12] - 8039d70: 2200 movs r2, #0 - 8039d72: 861a strh r2, [r3, #48] ; 0x30 + 8039cda: 68fb ldr r3, [r7, #12] + 8039cdc: 2200 movs r2, #0 + 8039cde: 861a strh r2, [r3, #48] ; 0x30 btnm->row_cnt = 0; - 8039d74: 68fb ldr r3, [r7, #12] - 8039d76: 2200 movs r2, #0 - 8039d78: 865a strh r2, [r3, #50] ; 0x32 + 8039ce0: 68fb ldr r3, [r7, #12] + 8039ce2: 2200 movs r2, #0 + 8039ce4: 865a strh r2, [r3, #50] ; 0x32 btnm->btn_id_sel = LV_BTNMATRIX_BTN_NONE; - 8039d7a: 68fb ldr r3, [r7, #12] - 8039d7c: f64f 72ff movw r2, #65535 ; 0xffff - 8039d80: 869a strh r2, [r3, #52] ; 0x34 + 8039ce6: 68fb ldr r3, [r7, #12] + 8039ce8: f64f 72ff movw r2, #65535 ; 0xffff + 8039cec: 869a strh r2, [r3, #52] ; 0x34 btnm->button_areas = NULL; - 8039d82: 68fb ldr r3, [r7, #12] - 8039d84: 2200 movs r2, #0 - 8039d86: 629a str r2, [r3, #40] ; 0x28 + 8039cee: 68fb ldr r3, [r7, #12] + 8039cf0: 2200 movs r2, #0 + 8039cf2: 629a str r2, [r3, #40] ; 0x28 btnm->ctrl_bits = NULL; - 8039d88: 68fb ldr r3, [r7, #12] - 8039d8a: 2200 movs r2, #0 - 8039d8c: 62da str r2, [r3, #44] ; 0x2c + 8039cf4: 68fb ldr r3, [r7, #12] + 8039cf6: 2200 movs r2, #0 + 8039cf8: 62da str r2, [r3, #44] ; 0x2c btnm->map_p = NULL; - 8039d8e: 68fb ldr r3, [r7, #12] - 8039d90: 2200 movs r2, #0 - 8039d92: 625a str r2, [r3, #36] ; 0x24 + 8039cfa: 68fb ldr r3, [r7, #12] + 8039cfc: 2200 movs r2, #0 + 8039cfe: 625a str r2, [r3, #36] ; 0x24 btnm->one_check = 0; - 8039d94: 68fa ldr r2, [r7, #12] - 8039d96: f892 3036 ldrb.w r3, [r2, #54] ; 0x36 - 8039d9a: f36f 0300 bfc r3, #0, #1 - 8039d9e: f882 3036 strb.w r3, [r2, #54] ; 0x36 + 8039d00: 68fa ldr r2, [r7, #12] + 8039d02: f892 3036 ldrb.w r3, [r2, #54] ; 0x36 + 8039d06: f36f 0300 bfc r3, #0, #1 + 8039d0a: f882 3036 strb.w r3, [r2, #54] ; 0x36 lv_btnmatrix_set_map(obj, lv_btnmatrix_def_map); - 8039da2: 4904 ldr r1, [pc, #16] ; (8039db4 ) - 8039da4: 6838 ldr r0, [r7, #0] - 8039da6: f7ff fced bl 8039784 + 8039d0e: 4904 ldr r1, [pc, #16] ; (8039d20 ) + 8039d10: 6838 ldr r0, [r7, #0] + 8039d12: f7ff fced bl 80396f0 LV_TRACE_OBJ_CREATE("finished"); } - 8039daa: bf00 nop - 8039dac: 3710 adds r7, #16 - 8039dae: 46bd mov sp, r7 - 8039db0: bd80 pop {r7, pc} - 8039db2: bf00 nop - 8039db4: 20000100 .word 0x20000100 + 8039d16: bf00 nop + 8039d18: 3710 adds r7, #16 + 8039d1a: 46bd mov sp, r7 + 8039d1c: bd80 pop {r7, pc} + 8039d1e: bf00 nop + 8039d20: 20000100 .word 0x20000100 -08039db8 : +08039d24 : static void lv_btnmatrix_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 8039db8: b580 push {r7, lr} - 8039dba: b084 sub sp, #16 - 8039dbc: af00 add r7, sp, #0 - 8039dbe: 6078 str r0, [r7, #4] - 8039dc0: 6039 str r1, [r7, #0] + 8039d24: b580 push {r7, lr} + 8039d26: b084 sub sp, #16 + 8039d28: af00 add r7, sp, #0 + 8039d2a: 6078 str r0, [r7, #4] + 8039d2c: 6039 str r1, [r7, #0] LV_TRACE_OBJ_CREATE("begin"); LV_UNUSED(class_p); lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj; - 8039dc2: 683b ldr r3, [r7, #0] - 8039dc4: 60fb str r3, [r7, #12] + 8039d2e: 683b ldr r3, [r7, #0] + 8039d30: 60fb str r3, [r7, #12] lv_mem_free(btnm->button_areas); - 8039dc6: 68fb ldr r3, [r7, #12] - 8039dc8: 6a9b ldr r3, [r3, #40] ; 0x28 - 8039dca: 4618 mov r0, r3 - 8039dcc: f7f8 fd86 bl 80328dc + 8039d32: 68fb ldr r3, [r7, #12] + 8039d34: 6a9b ldr r3, [r3, #40] ; 0x28 + 8039d36: 4618 mov r0, r3 + 8039d38: f7f8 fd86 bl 8032848 lv_mem_free(btnm->ctrl_bits); - 8039dd0: 68fb ldr r3, [r7, #12] - 8039dd2: 6adb ldr r3, [r3, #44] ; 0x2c - 8039dd4: 4618 mov r0, r3 - 8039dd6: f7f8 fd81 bl 80328dc + 8039d3c: 68fb ldr r3, [r7, #12] + 8039d3e: 6adb ldr r3, [r3, #44] ; 0x2c + 8039d40: 4618 mov r0, r3 + 8039d42: f7f8 fd81 bl 8032848 btnm->button_areas = NULL; - 8039dda: 68fb ldr r3, [r7, #12] - 8039ddc: 2200 movs r2, #0 - 8039dde: 629a str r2, [r3, #40] ; 0x28 + 8039d46: 68fb ldr r3, [r7, #12] + 8039d48: 2200 movs r2, #0 + 8039d4a: 629a str r2, [r3, #40] ; 0x28 btnm->ctrl_bits = NULL; - 8039de0: 68fb ldr r3, [r7, #12] - 8039de2: 2200 movs r2, #0 - 8039de4: 62da str r2, [r3, #44] ; 0x2c + 8039d4c: 68fb ldr r3, [r7, #12] + 8039d4e: 2200 movs r2, #0 + 8039d50: 62da str r2, [r3, #44] ; 0x2c LV_TRACE_OBJ_CREATE("finished"); } - 8039de6: bf00 nop - 8039de8: 3710 adds r7, #16 - 8039dea: 46bd mov sp, r7 - 8039dec: bd80 pop {r7, pc} + 8039d52: bf00 nop + 8039d54: 3710 adds r7, #16 + 8039d56: 46bd mov sp, r7 + 8039d58: bd80 pop {r7, pc} ... -08039df0 : +08039d5c : static void lv_btnmatrix_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 8039df0: b590 push {r4, r7, lr} - 8039df2: b09b sub sp, #108 ; 0x6c - 8039df4: af00 add r7, sp, #0 - 8039df6: 6078 str r0, [r7, #4] - 8039df8: 6039 str r1, [r7, #0] + 8039d5c: b590 push {r4, r7, lr} + 8039d5e: b09b sub sp, #108 ; 0x6c + 8039d60: af00 add r7, sp, #0 + 8039d62: 6078 str r0, [r7, #4] + 8039d64: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res; /*Call the ancestor's event handler*/ res = lv_obj_event_base(MY_CLASS, e); - 8039dfa: 6839 ldr r1, [r7, #0] - 8039dfc: 4884 ldr r0, [pc, #528] ; (803a010 ) - 8039dfe: f7c8 fb81 bl 8002504 - 8039e02: 4603 mov r3, r0 - 8039e04: f887 305b strb.w r3, [r7, #91] ; 0x5b + 8039d66: 6839 ldr r1, [r7, #0] + 8039d68: 4884 ldr r0, [pc, #528] ; (8039f7c ) + 8039d6a: f7c8 fb95 bl 8002498 + 8039d6e: 4603 mov r3, r0 + 8039d70: f887 305b strb.w r3, [r7, #91] ; 0x5b if(res != LV_RES_OK) return; - 8039e08: f897 305b ldrb.w r3, [r7, #91] ; 0x5b - 8039e0c: 2b01 cmp r3, #1 - 8039e0e: f040 85b0 bne.w 803a972 + 8039d74: f897 305b ldrb.w r3, [r7, #91] ; 0x5b + 8039d78: 2b01 cmp r3, #1 + 8039d7a: f040 85b0 bne.w 803a8de lv_event_code_t code = lv_event_get_code(e); - 8039e12: 6838 ldr r0, [r7, #0] - 8039e14: f7c8 fbca bl 80025ac - 8039e18: 4603 mov r3, r0 - 8039e1a: f887 305a strb.w r3, [r7, #90] ; 0x5a + 8039d7e: 6838 ldr r0, [r7, #0] + 8039d80: f7c8 fbde bl 8002540 + 8039d84: 4603 mov r3, r0 + 8039d86: f887 305a strb.w r3, [r7, #90] ; 0x5a lv_obj_t * obj = lv_event_get_target(e); - 8039e1e: 6838 ldr r0, [r7, #0] - 8039e20: f7c8 fbae bl 8002580 - 8039e24: 6578 str r0, [r7, #84] ; 0x54 + 8039d8a: 6838 ldr r0, [r7, #0] + 8039d8c: f7c8 fbc2 bl 8002514 + 8039d90: 6578 str r0, [r7, #84] ; 0x54 lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj; - 8039e26: 6d7b ldr r3, [r7, #84] ; 0x54 - 8039e28: 653b str r3, [r7, #80] ; 0x50 + 8039d92: 6d7b ldr r3, [r7, #84] ; 0x54 + 8039d94: 653b str r3, [r7, #80] ; 0x50 lv_point_t p; if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) { - 8039e2a: f897 305a ldrb.w r3, [r7, #90] ; 0x5a - 8039e2e: 2b13 cmp r3, #19 - 8039e30: d11f bne.n 8039e72 + 8039d96: f897 305a ldrb.w r3, [r7, #90] ; 0x5a + 8039d9a: 2b13 cmp r3, #19 + 8039d9c: d11f bne.n 8039dde lv_coord_t * s = lv_event_get_param(e); - 8039e32: 6838 ldr r0, [r7, #0] - 8039e34: f7c8 fbc8 bl 80025c8 - 8039e38: 64f8 str r0, [r7, #76] ; 0x4c + 8039d9e: 6838 ldr r0, [r7, #0] + 8039da0: f7c8 fbdc bl 800255c + 8039da4: 64f8 str r0, [r7, #76] ; 0x4c if(has_popovers_in_top_row(obj)) { - 8039e3a: 6d78 ldr r0, [r7, #84] ; 0x54 - 8039e3c: f001 fcae bl 803b79c - 8039e40: 4603 mov r3, r0 - 8039e42: 2b00 cmp r3, #0 - 8039e44: d012 beq.n 8039e6c + 8039da6: 6d78 ldr r0, [r7, #84] ; 0x54 + 8039da8: f001 fcae bl 803b708 + 8039dac: 4603 mov r3, r0 + 8039dae: 2b00 cmp r3, #0 + 8039db0: d012 beq.n 8039dd8 /*reserve one row worth of extra space to account for popovers in the top row*/ *s = btnm->row_cnt > 0 ? lv_obj_get_content_height(obj) / btnm->row_cnt : 0; - 8039e46: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039e48: 8e5b ldrh r3, [r3, #50] ; 0x32 - 8039e4a: 2b00 cmp r3, #0 - 8039e4c: d00a beq.n 8039e64 - 8039e4e: 6d78 ldr r0, [r7, #84] ; 0x54 - 8039e50: f7d0 f9c1 bl 800a1d6 - 8039e54: 4603 mov r3, r0 - 8039e56: 461a mov r2, r3 - 8039e58: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039e5a: 8e5b ldrh r3, [r3, #50] ; 0x32 - 8039e5c: fb92 f3f3 sdiv r3, r2, r3 - 8039e60: b21a sxth r2, r3 - 8039e62: e000 b.n 8039e66 - 8039e64: 2200 movs r2, #0 - 8039e66: 6cfb ldr r3, [r7, #76] ; 0x4c - 8039e68: 801a strh r2, [r3, #0] - 8039e6a: e002 b.n 8039e72 + 8039db2: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039db4: 8e5b ldrh r3, [r3, #50] ; 0x32 + 8039db6: 2b00 cmp r3, #0 + 8039db8: d00a beq.n 8039dd0 + 8039dba: 6d78 ldr r0, [r7, #84] ; 0x54 + 8039dbc: f7d0 f9d5 bl 800a16a + 8039dc0: 4603 mov r3, r0 + 8039dc2: 461a mov r2, r3 + 8039dc4: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039dc6: 8e5b ldrh r3, [r3, #50] ; 0x32 + 8039dc8: fb92 f3f3 sdiv r3, r2, r3 + 8039dcc: b21a sxth r2, r3 + 8039dce: e000 b.n 8039dd2 + 8039dd0: 2200 movs r2, #0 + 8039dd2: 6cfb ldr r3, [r7, #76] ; 0x4c + 8039dd4: 801a strh r2, [r3, #0] + 8039dd6: e002 b.n 8039dde } else { *s = 0; - 8039e6c: 6cfb ldr r3, [r7, #76] ; 0x4c - 8039e6e: 2200 movs r2, #0 - 8039e70: 801a strh r2, [r3, #0] + 8039dd8: 6cfb ldr r3, [r7, #76] ; 0x4c + 8039dda: 2200 movs r2, #0 + 8039ddc: 801a strh r2, [r3, #0] } } if(code == LV_EVENT_STYLE_CHANGED) { - 8039e72: f897 305a ldrb.w r3, [r7, #90] ; 0x5a - 8039e76: 2b2a cmp r3, #42 ; 0x2a - 8039e78: d107 bne.n 8039e8a + 8039dde: f897 305a ldrb.w r3, [r7, #90] ; 0x5a + 8039de2: 2b2a cmp r3, #42 ; 0x2a + 8039de4: d107 bne.n 8039df6 lv_btnmatrix_set_map(obj, btnm->map_p); - 8039e7a: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039e7c: 6a5b ldr r3, [r3, #36] ; 0x24 - 8039e7e: 4619 mov r1, r3 - 8039e80: 6d78 ldr r0, [r7, #84] ; 0x54 - 8039e82: f7ff fc7f bl 8039784 - 8039e86: f000 bd79 b.w 803a97c + 8039de6: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039de8: 6a5b ldr r3, [r3, #36] ; 0x24 + 8039dea: 4619 mov r1, r3 + 8039dec: 6d78 ldr r0, [r7, #84] ; 0x54 + 8039dee: f7ff fc7f bl 80396f0 + 8039df2: f000 bd79 b.w 803a8e8 } else if(code == LV_EVENT_SIZE_CHANGED) { - 8039e8a: f897 305a ldrb.w r3, [r7, #90] ; 0x5a - 8039e8e: 2b29 cmp r3, #41 ; 0x29 - 8039e90: d107 bne.n 8039ea2 + 8039df6: f897 305a ldrb.w r3, [r7, #90] ; 0x5a + 8039dfa: 2b29 cmp r3, #41 ; 0x29 + 8039dfc: d107 bne.n 8039e0e lv_btnmatrix_set_map(obj, btnm->map_p); - 8039e92: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039e94: 6a5b ldr r3, [r3, #36] ; 0x24 - 8039e96: 4619 mov r1, r3 - 8039e98: 6d78 ldr r0, [r7, #84] ; 0x54 - 8039e9a: f7ff fc73 bl 8039784 - 8039e9e: f000 bd6d b.w 803a97c + 8039dfe: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039e00: 6a5b ldr r3, [r3, #36] ; 0x24 + 8039e02: 4619 mov r1, r3 + 8039e04: 6d78 ldr r0, [r7, #84] ; 0x54 + 8039e06: f7ff fc73 bl 80396f0 + 8039e0a: f000 bd6d b.w 803a8e8 } else if(code == LV_EVENT_PRESSED) { - 8039ea2: f897 305a ldrb.w r3, [r7, #90] ; 0x5a - 8039ea6: 2b01 cmp r3, #1 - 8039ea8: f040 80b4 bne.w 803a014 + 8039e0e: f897 305a ldrb.w r3, [r7, #90] ; 0x5a + 8039e12: 2b01 cmp r3, #1 + 8039e14: f040 80b4 bne.w 8039f80 void * param = lv_event_get_param(e); - 8039eac: 6838 ldr r0, [r7, #0] - 8039eae: f7c8 fb8b bl 80025c8 - 8039eb2: 6278 str r0, [r7, #36] ; 0x24 + 8039e18: 6838 ldr r0, [r7, #0] + 8039e1a: f7c8 fb9f bl 800255c + 8039e1e: 6278 str r0, [r7, #36] ; 0x24 invalidate_button_area(obj, btnm->btn_id_sel); - 8039eb4: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039eb6: 8e9b ldrh r3, [r3, #52] ; 0x34 - 8039eb8: 4619 mov r1, r3 - 8039eba: 6d78 ldr r0, [r7, #84] ; 0x54 - 8039ebc: f001 fb94 bl 803b5e8 + 8039e20: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039e22: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8039e24: 4619 mov r1, r3 + 8039e26: 6d78 ldr r0, [r7, #84] ; 0x54 + 8039e28: f001 fb94 bl 803b554 lv_indev_type_t indev_type = lv_indev_get_type(lv_indev_get_act()); - 8039ec0: f7c9 fa2a bl 8003318 - 8039ec4: 4603 mov r3, r0 - 8039ec6: 4618 mov r0, r3 - 8039ec8: f7c9 fa30 bl 800332c - 8039ecc: 4603 mov r3, r0 - 8039ece: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 8039e2c: f7c9 fa3e bl 80032ac + 8039e30: 4603 mov r3, r0 + 8039e32: 4618 mov r0, r3 + 8039e34: f7c9 fa44 bl 80032c0 + 8039e38: 4603 mov r3, r0 + 8039e3a: f887 3023 strb.w r3, [r7, #35] ; 0x23 if(indev_type == LV_INDEV_TYPE_POINTER || indev_type == LV_INDEV_TYPE_BUTTON) { - 8039ed2: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8039ed6: 2b01 cmp r3, #1 - 8039ed8: d003 beq.n 8039ee2 - 8039eda: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8039ede: 2b03 cmp r3, #3 - 8039ee0: d139 bne.n 8039f56 + 8039e3e: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8039e42: 2b01 cmp r3, #1 + 8039e44: d003 beq.n 8039e4e + 8039e46: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8039e4a: 2b03 cmp r3, #3 + 8039e4c: d139 bne.n 8039ec2 uint16_t btn_pr; /*Search the pressed area*/ lv_indev_get_point(param, &p); - 8039ee2: f107 031c add.w r3, r7, #28 - 8039ee6: 4619 mov r1, r3 - 8039ee8: 6a78 ldr r0, [r7, #36] ; 0x24 - 8039eea: f7c9 fb07 bl 80034fc + 8039e4e: f107 031c add.w r3, r7, #28 + 8039e52: 4619 mov r1, r3 + 8039e54: 6a78 ldr r0, [r7, #36] ; 0x24 + 8039e56: f7c9 fb1b bl 8003490 btn_pr = get_button_from_point(obj, &p); - 8039eee: f107 031c add.w r3, r7, #28 - 8039ef2: 4619 mov r1, r3 - 8039ef4: 6d78 ldr r0, [r7, #84] ; 0x54 - 8039ef6: f001 fa27 bl 803b348 - 8039efa: 4603 mov r3, r0 - 8039efc: 843b strh r3, [r7, #32] + 8039e5a: f107 031c add.w r3, r7, #28 + 8039e5e: 4619 mov r1, r3 + 8039e60: 6d78 ldr r0, [r7, #84] ; 0x54 + 8039e62: f001 fa27 bl 803b2b4 + 8039e66: 4603 mov r3, r0 + 8039e68: 843b strh r3, [r7, #32] /*Handle the case where there is no button there*/ if(btn_pr != LV_BTNMATRIX_BTN_NONE) { - 8039efe: 8c3b ldrh r3, [r7, #32] - 8039f00: f64f 72ff movw r2, #65535 ; 0xffff - 8039f04: 4293 cmp r3, r2 - 8039f06: d026 beq.n 8039f56 + 8039e6a: 8c3b ldrh r3, [r7, #32] + 8039e6c: f64f 72ff movw r2, #65535 ; 0xffff + 8039e70: 4293 cmp r3, r2 + 8039e72: d026 beq.n 8039ec2 if(button_is_inactive(btnm->ctrl_bits[btn_pr]) == false && - 8039f08: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039f0a: 6ada ldr r2, [r3, #44] ; 0x2c - 8039f0c: 8c3b ldrh r3, [r7, #32] - 8039f0e: 005b lsls r3, r3, #1 - 8039f10: 4413 add r3, r2 - 8039f12: 881b ldrh r3, [r3, #0] - 8039f14: 4618 mov r0, r3 - 8039f16: f001 f9a5 bl 803b264 - 8039f1a: 4603 mov r3, r0 - 8039f1c: f083 0301 eor.w r3, r3, #1 - 8039f20: b2db uxtb r3, r3 - 8039f22: 2b00 cmp r3, #0 - 8039f24: d017 beq.n 8039f56 + 8039e74: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039e76: 6ada ldr r2, [r3, #44] ; 0x2c + 8039e78: 8c3b ldrh r3, [r7, #32] + 8039e7a: 005b lsls r3, r3, #1 + 8039e7c: 4413 add r3, r2 + 8039e7e: 881b ldrh r3, [r3, #0] + 8039e80: 4618 mov r0, r3 + 8039e82: f001 f9a5 bl 803b1d0 + 8039e86: 4603 mov r3, r0 + 8039e88: f083 0301 eor.w r3, r3, #1 + 8039e8c: b2db uxtb r3, r3 + 8039e8e: 2b00 cmp r3, #0 + 8039e90: d017 beq.n 8039ec2 button_is_hidden(btnm->ctrl_bits[btn_pr]) == false) { - 8039f26: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039f28: 6ada ldr r2, [r3, #44] ; 0x2c - 8039f2a: 8c3b ldrh r3, [r7, #32] - 8039f2c: 005b lsls r3, r3, #1 - 8039f2e: 4413 add r3, r2 - 8039f30: 881b ldrh r3, [r3, #0] - 8039f32: 4618 mov r0, r3 - 8039f34: f001 f95d bl 803b1f2 - 8039f38: 4603 mov r3, r0 - 8039f3a: f083 0301 eor.w r3, r3, #1 - 8039f3e: b2db uxtb r3, r3 + 8039e92: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039e94: 6ada ldr r2, [r3, #44] ; 0x2c + 8039e96: 8c3b ldrh r3, [r7, #32] + 8039e98: 005b lsls r3, r3, #1 + 8039e9a: 4413 add r3, r2 + 8039e9c: 881b ldrh r3, [r3, #0] + 8039e9e: 4618 mov r0, r3 + 8039ea0: f001 f95d bl 803b15e + 8039ea4: 4603 mov r3, r0 + 8039ea6: f083 0301 eor.w r3, r3, #1 + 8039eaa: b2db uxtb r3, r3 if(button_is_inactive(btnm->ctrl_bits[btn_pr]) == false && - 8039f40: 2b00 cmp r3, #0 - 8039f42: d008 beq.n 8039f56 + 8039eac: 2b00 cmp r3, #0 + 8039eae: d008 beq.n 8039ec2 btnm->btn_id_sel = btn_pr; - 8039f44: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039f46: 8c3a ldrh r2, [r7, #32] - 8039f48: 869a strh r2, [r3, #52] ; 0x34 + 8039eb0: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039eb2: 8c3a ldrh r2, [r7, #32] + 8039eb4: 869a strh r2, [r3, #52] ; 0x34 invalidate_button_area(obj, btnm->btn_id_sel); /*Invalidate the new area*/ - 8039f4a: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039f4c: 8e9b ldrh r3, [r3, #52] ; 0x34 - 8039f4e: 4619 mov r1, r3 - 8039f50: 6d78 ldr r0, [r7, #84] ; 0x54 - 8039f52: f001 fb49 bl 803b5e8 + 8039eb6: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039eb8: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8039eba: 4619 mov r1, r3 + 8039ebc: 6d78 ldr r0, [r7, #84] ; 0x54 + 8039ebe: f001 fb49 bl 803b554 } } } if(btnm->btn_id_sel != LV_BTNMATRIX_BTN_NONE) { - 8039f56: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039f58: 8e9b ldrh r3, [r3, #52] ; 0x34 - 8039f5a: f64f 72ff movw r2, #65535 ; 0xffff - 8039f5e: 4293 cmp r3, r2 - 8039f60: f000 850c beq.w 803a97c + 8039ec2: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039ec4: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8039ec6: f64f 72ff movw r2, #65535 ; 0xffff + 8039eca: 4293 cmp r3, r2 + 8039ecc: f000 850c beq.w 803a8e8 if(button_is_click_trig(btnm->ctrl_bits[btnm->btn_id_sel]) == false && - 8039f64: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039f66: 6ada ldr r2, [r3, #44] ; 0x2c - 8039f68: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039f6a: 8e9b ldrh r3, [r3, #52] ; 0x34 - 8039f6c: 005b lsls r3, r3, #1 - 8039f6e: 4413 add r3, r2 - 8039f70: 881b ldrh r3, [r3, #0] - 8039f72: 4618 mov r0, r3 - 8039f74: f001 f989 bl 803b28a - 8039f78: 4603 mov r3, r0 - 8039f7a: f083 0301 eor.w r3, r3, #1 - 8039f7e: b2db uxtb r3, r3 - 8039f80: 2b00 cmp r3, #0 - 8039f82: f000 84fb beq.w 803a97c + 8039ed0: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039ed2: 6ada ldr r2, [r3, #44] ; 0x2c + 8039ed4: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039ed6: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8039ed8: 005b lsls r3, r3, #1 + 8039eda: 4413 add r3, r2 + 8039edc: 881b ldrh r3, [r3, #0] + 8039ede: 4618 mov r0, r3 + 8039ee0: f001 f989 bl 803b1f6 + 8039ee4: 4603 mov r3, r0 + 8039ee6: f083 0301 eor.w r3, r3, #1 + 8039eea: b2db uxtb r3, r3 + 8039eec: 2b00 cmp r3, #0 + 8039eee: f000 84fb beq.w 803a8e8 button_is_popover(btnm->ctrl_bits[btnm->btn_id_sel]) == false && - 8039f86: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039f88: 6ada ldr r2, [r3, #44] ; 0x2c - 8039f8a: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039f8c: 8e9b ldrh r3, [r3, #52] ; 0x34 - 8039f8e: 005b lsls r3, r3, #1 - 8039f90: 4413 add r3, r2 - 8039f92: 881b ldrh r3, [r3, #0] - 8039f94: 4618 mov r0, r3 - 8039f96: f001 f98b bl 803b2b0 - 8039f9a: 4603 mov r3, r0 - 8039f9c: f083 0301 eor.w r3, r3, #1 - 8039fa0: b2db uxtb r3, r3 + 8039ef2: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039ef4: 6ada ldr r2, [r3, #44] ; 0x2c + 8039ef6: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039ef8: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8039efa: 005b lsls r3, r3, #1 + 8039efc: 4413 add r3, r2 + 8039efe: 881b ldrh r3, [r3, #0] + 8039f00: 4618 mov r0, r3 + 8039f02: f001 f98b bl 803b21c + 8039f06: 4603 mov r3, r0 + 8039f08: f083 0301 eor.w r3, r3, #1 + 8039f0c: b2db uxtb r3, r3 if(button_is_click_trig(btnm->ctrl_bits[btnm->btn_id_sel]) == false && - 8039fa2: 2b00 cmp r3, #0 - 8039fa4: f000 84ea beq.w 803a97c + 8039f0e: 2b00 cmp r3, #0 + 8039f10: f000 84ea beq.w 803a8e8 button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel]) == false && - 8039fa8: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039faa: 6ada ldr r2, [r3, #44] ; 0x2c - 8039fac: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039fae: 8e9b ldrh r3, [r3, #52] ; 0x34 - 8039fb0: 005b lsls r3, r3, #1 - 8039fb2: 4413 add r3, r2 - 8039fb4: 881b ldrh r3, [r3, #0] - 8039fb6: 4618 mov r0, r3 - 8039fb8: f001 f954 bl 803b264 - 8039fbc: 4603 mov r3, r0 - 8039fbe: f083 0301 eor.w r3, r3, #1 - 8039fc2: b2db uxtb r3, r3 + 8039f14: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039f16: 6ada ldr r2, [r3, #44] ; 0x2c + 8039f18: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039f1a: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8039f1c: 005b lsls r3, r3, #1 + 8039f1e: 4413 add r3, r2 + 8039f20: 881b ldrh r3, [r3, #0] + 8039f22: 4618 mov r0, r3 + 8039f24: f001 f954 bl 803b1d0 + 8039f28: 4603 mov r3, r0 + 8039f2a: f083 0301 eor.w r3, r3, #1 + 8039f2e: b2db uxtb r3, r3 button_is_popover(btnm->ctrl_bits[btnm->btn_id_sel]) == false && - 8039fc4: 2b00 cmp r3, #0 - 8039fc6: f000 84d9 beq.w 803a97c + 8039f30: 2b00 cmp r3, #0 + 8039f32: f000 84d9 beq.w 803a8e8 button_is_hidden(btnm->ctrl_bits[btnm->btn_id_sel]) == false) { - 8039fca: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039fcc: 6ada ldr r2, [r3, #44] ; 0x2c - 8039fce: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039fd0: 8e9b ldrh r3, [r3, #52] ; 0x34 - 8039fd2: 005b lsls r3, r3, #1 - 8039fd4: 4413 add r3, r2 - 8039fd6: 881b ldrh r3, [r3, #0] - 8039fd8: 4618 mov r0, r3 - 8039fda: f001 f90a bl 803b1f2 - 8039fde: 4603 mov r3, r0 - 8039fe0: f083 0301 eor.w r3, r3, #1 - 8039fe4: b2db uxtb r3, r3 + 8039f36: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039f38: 6ada ldr r2, [r3, #44] ; 0x2c + 8039f3a: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039f3c: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8039f3e: 005b lsls r3, r3, #1 + 8039f40: 4413 add r3, r2 + 8039f42: 881b ldrh r3, [r3, #0] + 8039f44: 4618 mov r0, r3 + 8039f46: f001 f90a bl 803b15e + 8039f4a: 4603 mov r3, r0 + 8039f4c: f083 0301 eor.w r3, r3, #1 + 8039f50: b2db uxtb r3, r3 button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel]) == false && - 8039fe6: 2b00 cmp r3, #0 - 8039fe8: f000 84c8 beq.w 803a97c + 8039f52: 2b00 cmp r3, #0 + 8039f54: f000 84c8 beq.w 803a8e8 uint32_t b = btnm->btn_id_sel; - 8039fec: 6d3b ldr r3, [r7, #80] ; 0x50 - 8039fee: 8e9b ldrh r3, [r3, #52] ; 0x34 - 8039ff0: 61bb str r3, [r7, #24] + 8039f58: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039f5a: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8039f5c: 61bb str r3, [r7, #24] res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, &b); - 8039ff2: f107 0318 add.w r3, r7, #24 - 8039ff6: 461a mov r2, r3 - 8039ff8: 211c movs r1, #28 - 8039ffa: 6d78 ldr r0, [r7, #84] ; 0x54 - 8039ffc: f7c8 fa40 bl 8002480 - 803a000: 4603 mov r3, r0 - 803a002: f887 305b strb.w r3, [r7, #91] ; 0x5b + 8039f5e: f107 0318 add.w r3, r7, #24 + 8039f62: 461a mov r2, r3 + 8039f64: 211c movs r1, #28 + 8039f66: 6d78 ldr r0, [r7, #84] ; 0x54 + 8039f68: f7c8 fa54 bl 8002414 + 8039f6c: 4603 mov r3, r0 + 8039f6e: f887 305b strb.w r3, [r7, #91] ; 0x5b if(res != LV_RES_OK) return; - 803a006: f897 305b ldrb.w r3, [r7, #91] ; 0x5b - 803a00a: 2b01 cmp r3, #1 - 803a00c: f000 bcb6 b.w 803a97c - 803a010: 08070a00 .word 0x08070a00 + 8039f72: f897 305b ldrb.w r3, [r7, #91] ; 0x5b + 8039f76: 2b01 cmp r3, #1 + 8039f78: f000 bcb6 b.w 803a8e8 + 8039f7c: 08070958 .word 0x08070958 } } } else if(code == LV_EVENT_PRESSING) { - 803a014: f897 305a ldrb.w r3, [r7, #90] ; 0x5a - 803a018: 2b02 cmp r3, #2 - 803a01a: f040 809d bne.w 803a158 + 8039f80: f897 305a ldrb.w r3, [r7, #90] ; 0x5a + 8039f84: 2b02 cmp r3, #2 + 8039f86: f040 809d bne.w 803a0c4 void * param = lv_event_get_param(e); - 803a01e: 6838 ldr r0, [r7, #0] - 803a020: f7c8 fad2 bl 80025c8 - 803a024: 6378 str r0, [r7, #52] ; 0x34 + 8039f8a: 6838 ldr r0, [r7, #0] + 8039f8c: f7c8 fae6 bl 800255c + 8039f90: 6378 str r0, [r7, #52] ; 0x34 uint16_t btn_pr = LV_BTNMATRIX_BTN_NONE; - 803a026: f64f 73ff movw r3, #65535 ; 0xffff - 803a02a: 867b strh r3, [r7, #50] ; 0x32 + 8039f92: f64f 73ff movw r3, #65535 ; 0xffff + 8039f96: 867b strh r3, [r7, #50] ; 0x32 /*Search the pressed area*/ lv_indev_t * indev = lv_indev_get_act(); - 803a02c: f7c9 f974 bl 8003318 - 803a030: 62f8 str r0, [r7, #44] ; 0x2c + 8039f98: f7c9 f988 bl 80032ac + 8039f9c: 62f8 str r0, [r7, #44] ; 0x2c lv_indev_type_t indev_type = lv_indev_get_type(indev); - 803a032: 6af8 ldr r0, [r7, #44] ; 0x2c - 803a034: f7c9 f97a bl 800332c - 803a038: 4603 mov r3, r0 - 803a03a: f887 302b strb.w r3, [r7, #43] ; 0x2b + 8039f9e: 6af8 ldr r0, [r7, #44] ; 0x2c + 8039fa0: f7c9 f98e bl 80032c0 + 8039fa4: 4603 mov r3, r0 + 8039fa6: f887 302b strb.w r3, [r7, #43] ; 0x2b if(indev_type == LV_INDEV_TYPE_ENCODER || indev_type == LV_INDEV_TYPE_KEYPAD) return; - 803a03e: f897 302b ldrb.w r3, [r7, #43] ; 0x2b - 803a042: 2b04 cmp r3, #4 - 803a044: f000 8497 beq.w 803a976 - 803a048: f897 302b ldrb.w r3, [r7, #43] ; 0x2b - 803a04c: 2b02 cmp r3, #2 - 803a04e: f000 8492 beq.w 803a976 + 8039faa: f897 302b ldrb.w r3, [r7, #43] ; 0x2b + 8039fae: 2b04 cmp r3, #4 + 8039fb0: f000 8497 beq.w 803a8e2 + 8039fb4: f897 302b ldrb.w r3, [r7, #43] ; 0x2b + 8039fb8: 2b02 cmp r3, #2 + 8039fba: f000 8492 beq.w 803a8e2 lv_indev_get_point(indev, &p); - 803a052: f107 031c add.w r3, r7, #28 - 803a056: 4619 mov r1, r3 - 803a058: 6af8 ldr r0, [r7, #44] ; 0x2c - 803a05a: f7c9 fa4f bl 80034fc + 8039fbe: f107 031c add.w r3, r7, #28 + 8039fc2: 4619 mov r1, r3 + 8039fc4: 6af8 ldr r0, [r7, #44] ; 0x2c + 8039fc6: f7c9 fa63 bl 8003490 btn_pr = get_button_from_point(obj, &p); - 803a05e: f107 031c add.w r3, r7, #28 - 803a062: 4619 mov r1, r3 - 803a064: 6d78 ldr r0, [r7, #84] ; 0x54 - 803a066: f001 f96f bl 803b348 - 803a06a: 4603 mov r3, r0 - 803a06c: 867b strh r3, [r7, #50] ; 0x32 + 8039fca: f107 031c add.w r3, r7, #28 + 8039fce: 4619 mov r1, r3 + 8039fd0: 6d78 ldr r0, [r7, #84] ; 0x54 + 8039fd2: f001 f96f bl 803b2b4 + 8039fd6: 4603 mov r3, r0 + 8039fd8: 867b strh r3, [r7, #50] ; 0x32 /*Invalidate to old and the new areas*/ if(btn_pr != btnm->btn_id_sel) { - 803a06e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a070: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a072: 8e7a ldrh r2, [r7, #50] ; 0x32 - 803a074: 429a cmp r2, r3 - 803a076: f000 8481 beq.w 803a97c + 8039fda: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039fdc: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8039fde: 8e7a ldrh r2, [r7, #50] ; 0x32 + 8039fe0: 429a cmp r2, r3 + 8039fe2: f000 8481 beq.w 803a8e8 if(btnm->btn_id_sel != LV_BTNMATRIX_BTN_NONE) { - 803a07a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a07c: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a07e: f64f 72ff movw r2, #65535 ; 0xffff - 803a082: 4293 cmp r3, r2 - 803a084: d005 beq.n 803a092 + 8039fe6: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039fe8: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8039fea: f64f 72ff movw r2, #65535 ; 0xffff + 8039fee: 4293 cmp r3, r2 + 8039ff0: d005 beq.n 8039ffe invalidate_button_area(obj, btnm->btn_id_sel); - 803a086: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a088: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a08a: 4619 mov r1, r3 - 803a08c: 6d78 ldr r0, [r7, #84] ; 0x54 - 803a08e: f001 faab bl 803b5e8 + 8039ff2: 6d3b ldr r3, [r7, #80] ; 0x50 + 8039ff4: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8039ff6: 4619 mov r1, r3 + 8039ff8: 6d78 ldr r0, [r7, #84] ; 0x54 + 8039ffa: f001 faab bl 803b554 } btnm->btn_id_sel = btn_pr; - 803a092: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a094: 8e7a ldrh r2, [r7, #50] ; 0x32 - 803a096: 869a strh r2, [r3, #52] ; 0x34 + 8039ffe: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a000: 8e7a ldrh r2, [r7, #50] ; 0x32 + 803a002: 869a strh r2, [r3, #52] ; 0x34 lv_indev_reset_long_press(param); /*Start the log press time again on the new button*/ - 803a098: 6b78 ldr r0, [r7, #52] ; 0x34 - 803a09a: f7c9 f9e1 bl 8003460 + 803a004: 6b78 ldr r0, [r7, #52] ; 0x34 + 803a006: f7c9 f9f5 bl 80033f4 if(btn_pr != LV_BTNMATRIX_BTN_NONE && - 803a09e: 8e7b ldrh r3, [r7, #50] ; 0x32 - 803a0a0: f64f 72ff movw r2, #65535 ; 0xffff - 803a0a4: 4293 cmp r3, r2 - 803a0a6: f000 8469 beq.w 803a97c + 803a00a: 8e7b ldrh r3, [r7, #50] ; 0x32 + 803a00c: f64f 72ff movw r2, #65535 ; 0xffff + 803a010: 4293 cmp r3, r2 + 803a012: f000 8469 beq.w 803a8e8 button_is_inactive(btnm->ctrl_bits[btn_pr]) == false && - 803a0aa: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a0ac: 6ada ldr r2, [r3, #44] ; 0x2c - 803a0ae: 8e7b ldrh r3, [r7, #50] ; 0x32 - 803a0b0: 005b lsls r3, r3, #1 - 803a0b2: 4413 add r3, r2 - 803a0b4: 881b ldrh r3, [r3, #0] - 803a0b6: 4618 mov r0, r3 - 803a0b8: f001 f8d4 bl 803b264 - 803a0bc: 4603 mov r3, r0 - 803a0be: f083 0301 eor.w r3, r3, #1 - 803a0c2: b2db uxtb r3, r3 + 803a016: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a018: 6ada ldr r2, [r3, #44] ; 0x2c + 803a01a: 8e7b ldrh r3, [r7, #50] ; 0x32 + 803a01c: 005b lsls r3, r3, #1 + 803a01e: 4413 add r3, r2 + 803a020: 881b ldrh r3, [r3, #0] + 803a022: 4618 mov r0, r3 + 803a024: f001 f8d4 bl 803b1d0 + 803a028: 4603 mov r3, r0 + 803a02a: f083 0301 eor.w r3, r3, #1 + 803a02e: b2db uxtb r3, r3 if(btn_pr != LV_BTNMATRIX_BTN_NONE && - 803a0c4: 2b00 cmp r3, #0 - 803a0c6: f000 8459 beq.w 803a97c + 803a030: 2b00 cmp r3, #0 + 803a032: f000 8459 beq.w 803a8e8 button_is_hidden(btnm->ctrl_bits[btn_pr]) == false) { - 803a0ca: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a0cc: 6ada ldr r2, [r3, #44] ; 0x2c - 803a0ce: 8e7b ldrh r3, [r7, #50] ; 0x32 - 803a0d0: 005b lsls r3, r3, #1 - 803a0d2: 4413 add r3, r2 - 803a0d4: 881b ldrh r3, [r3, #0] - 803a0d6: 4618 mov r0, r3 - 803a0d8: f001 f88b bl 803b1f2 - 803a0dc: 4603 mov r3, r0 - 803a0de: f083 0301 eor.w r3, r3, #1 - 803a0e2: b2db uxtb r3, r3 + 803a036: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a038: 6ada ldr r2, [r3, #44] ; 0x2c + 803a03a: 8e7b ldrh r3, [r7, #50] ; 0x32 + 803a03c: 005b lsls r3, r3, #1 + 803a03e: 4413 add r3, r2 + 803a040: 881b ldrh r3, [r3, #0] + 803a042: 4618 mov r0, r3 + 803a044: f001 f88b bl 803b15e + 803a048: 4603 mov r3, r0 + 803a04a: f083 0301 eor.w r3, r3, #1 + 803a04e: b2db uxtb r3, r3 button_is_inactive(btnm->ctrl_bits[btn_pr]) == false && - 803a0e4: 2b00 cmp r3, #0 - 803a0e6: f000 8449 beq.w 803a97c + 803a050: 2b00 cmp r3, #0 + 803a052: f000 8449 beq.w 803a8e8 invalidate_button_area(obj, btn_pr); - 803a0ea: 8e7b ldrh r3, [r7, #50] ; 0x32 - 803a0ec: 4619 mov r1, r3 - 803a0ee: 6d78 ldr r0, [r7, #84] ; 0x54 - 803a0f0: f001 fa7a bl 803b5e8 + 803a056: 8e7b ldrh r3, [r7, #50] ; 0x32 + 803a058: 4619 mov r1, r3 + 803a05a: 6d78 ldr r0, [r7, #84] ; 0x54 + 803a05c: f001 fa7a bl 803b554 /*Send VALUE_CHANGED for the newly pressed button*/ if(button_is_click_trig(btnm->ctrl_bits[btn_pr]) == false && - 803a0f4: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a0f6: 6ada ldr r2, [r3, #44] ; 0x2c - 803a0f8: 8e7b ldrh r3, [r7, #50] ; 0x32 - 803a0fa: 005b lsls r3, r3, #1 - 803a0fc: 4413 add r3, r2 - 803a0fe: 881b ldrh r3, [r3, #0] - 803a100: 4618 mov r0, r3 - 803a102: f001 f8c2 bl 803b28a - 803a106: 4603 mov r3, r0 - 803a108: f083 0301 eor.w r3, r3, #1 - 803a10c: b2db uxtb r3, r3 - 803a10e: 2b00 cmp r3, #0 - 803a110: f000 8434 beq.w 803a97c + 803a060: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a062: 6ada ldr r2, [r3, #44] ; 0x2c + 803a064: 8e7b ldrh r3, [r7, #50] ; 0x32 + 803a066: 005b lsls r3, r3, #1 + 803a068: 4413 add r3, r2 + 803a06a: 881b ldrh r3, [r3, #0] + 803a06c: 4618 mov r0, r3 + 803a06e: f001 f8c2 bl 803b1f6 + 803a072: 4603 mov r3, r0 + 803a074: f083 0301 eor.w r3, r3, #1 + 803a078: b2db uxtb r3, r3 + 803a07a: 2b00 cmp r3, #0 + 803a07c: f000 8434 beq.w 803a8e8 button_is_popover(btnm->ctrl_bits[btnm->btn_id_sel]) == false) { - 803a114: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a116: 6ada ldr r2, [r3, #44] ; 0x2c - 803a118: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a11a: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a11c: 005b lsls r3, r3, #1 - 803a11e: 4413 add r3, r2 - 803a120: 881b ldrh r3, [r3, #0] - 803a122: 4618 mov r0, r3 - 803a124: f001 f8c4 bl 803b2b0 - 803a128: 4603 mov r3, r0 - 803a12a: f083 0301 eor.w r3, r3, #1 - 803a12e: b2db uxtb r3, r3 + 803a080: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a082: 6ada ldr r2, [r3, #44] ; 0x2c + 803a084: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a086: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a088: 005b lsls r3, r3, #1 + 803a08a: 4413 add r3, r2 + 803a08c: 881b ldrh r3, [r3, #0] + 803a08e: 4618 mov r0, r3 + 803a090: f001 f8c4 bl 803b21c + 803a094: 4603 mov r3, r0 + 803a096: f083 0301 eor.w r3, r3, #1 + 803a09a: b2db uxtb r3, r3 if(button_is_click_trig(btnm->ctrl_bits[btn_pr]) == false && - 803a130: 2b00 cmp r3, #0 - 803a132: f000 8423 beq.w 803a97c + 803a09c: 2b00 cmp r3, #0 + 803a09e: f000 8423 beq.w 803a8e8 uint32_t b = btn_pr; - 803a136: 8e7b ldrh r3, [r7, #50] ; 0x32 - 803a138: 617b str r3, [r7, #20] + 803a0a2: 8e7b ldrh r3, [r7, #50] ; 0x32 + 803a0a4: 617b str r3, [r7, #20] res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, &b); - 803a13a: f107 0314 add.w r3, r7, #20 - 803a13e: 461a mov r2, r3 - 803a140: 211c movs r1, #28 - 803a142: 6d78 ldr r0, [r7, #84] ; 0x54 - 803a144: f7c8 f99c bl 8002480 - 803a148: 4603 mov r3, r0 - 803a14a: f887 305b strb.w r3, [r7, #91] ; 0x5b + 803a0a6: f107 0314 add.w r3, r7, #20 + 803a0aa: 461a mov r2, r3 + 803a0ac: 211c movs r1, #28 + 803a0ae: 6d78 ldr r0, [r7, #84] ; 0x54 + 803a0b0: f7c8 f9b0 bl 8002414 + 803a0b4: 4603 mov r3, r0 + 803a0b6: f887 305b strb.w r3, [r7, #91] ; 0x5b if(res != LV_RES_OK) return; - 803a14e: f897 305b ldrb.w r3, [r7, #91] ; 0x5b - 803a152: 2b01 cmp r3, #1 - 803a154: f000 bc12 b.w 803a97c + 803a0ba: f897 305b ldrb.w r3, [r7, #91] ; 0x5b + 803a0be: 2b01 cmp r3, #1 + 803a0c0: f000 bc12 b.w 803a8e8 } } } } else if(code == LV_EVENT_RELEASED) { - 803a158: f897 305a ldrb.w r3, [r7, #90] ; 0x5a - 803a15c: 2b08 cmp r3, #8 - 803a15e: f040 80bd bne.w 803a2dc + 803a0c4: f897 305a ldrb.w r3, [r7, #90] ; 0x5a + 803a0c8: 2b08 cmp r3, #8 + 803a0ca: f040 80bd bne.w 803a248 if(btnm->btn_id_sel != LV_BTNMATRIX_BTN_NONE) { - 803a162: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a164: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a166: f64f 72ff movw r2, #65535 ; 0xffff - 803a16a: 4293 cmp r3, r2 - 803a16c: f000 80af beq.w 803a2ce + 803a0ce: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a0d0: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a0d2: f64f 72ff movw r2, #65535 ; 0xffff + 803a0d6: 4293 cmp r3, r2 + 803a0d8: f000 80af beq.w 803a23a /*Toggle the button if enabled*/ if(button_is_checkable(btnm->ctrl_bits[btnm->btn_id_sel]) && - 803a170: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a172: 6ada ldr r2, [r3, #44] ; 0x2c - 803a174: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a176: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a178: 005b lsls r3, r3, #1 - 803a17a: 4413 add r3, r2 - 803a17c: 881b ldrh r3, [r3, #0] - 803a17e: 4618 mov r0, r3 - 803a180: f001 f8a9 bl 803b2d6 - 803a184: 4603 mov r3, r0 - 803a186: 2b00 cmp r3, #0 - 803a188: d055 beq.n 803a236 + 803a0dc: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a0de: 6ada ldr r2, [r3, #44] ; 0x2c + 803a0e0: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a0e2: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a0e4: 005b lsls r3, r3, #1 + 803a0e6: 4413 add r3, r2 + 803a0e8: 881b ldrh r3, [r3, #0] + 803a0ea: 4618 mov r0, r3 + 803a0ec: f001 f8a9 bl 803b242 + 803a0f0: 4603 mov r3, r0 + 803a0f2: 2b00 cmp r3, #0 + 803a0f4: d055 beq.n 803a1a2 !button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel])) { - 803a18a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a18c: 6ada ldr r2, [r3, #44] ; 0x2c - 803a18e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a190: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a192: 005b lsls r3, r3, #1 - 803a194: 4413 add r3, r2 - 803a196: 881b ldrh r3, [r3, #0] - 803a198: 4618 mov r0, r3 - 803a19a: f001 f863 bl 803b264 - 803a19e: 4603 mov r3, r0 - 803a1a0: f083 0301 eor.w r3, r3, #1 - 803a1a4: b2db uxtb r3, r3 + 803a0f6: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a0f8: 6ada ldr r2, [r3, #44] ; 0x2c + 803a0fa: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a0fc: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a0fe: 005b lsls r3, r3, #1 + 803a100: 4413 add r3, r2 + 803a102: 881b ldrh r3, [r3, #0] + 803a104: 4618 mov r0, r3 + 803a106: f001 f863 bl 803b1d0 + 803a10a: 4603 mov r3, r0 + 803a10c: f083 0301 eor.w r3, r3, #1 + 803a110: b2db uxtb r3, r3 if(button_is_checkable(btnm->ctrl_bits[btnm->btn_id_sel]) && - 803a1a6: 2b00 cmp r3, #0 - 803a1a8: d045 beq.n 803a236 + 803a112: 2b00 cmp r3, #0 + 803a114: d045 beq.n 803a1a2 if(button_get_checked(btnm->ctrl_bits[btnm->btn_id_sel]) && !btnm->one_check) { - 803a1aa: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a1ac: 6ada ldr r2, [r3, #44] ; 0x2c - 803a1ae: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a1b0: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a1b2: 005b lsls r3, r3, #1 - 803a1b4: 4413 add r3, r2 - 803a1b6: 881b ldrh r3, [r3, #0] - 803a1b8: 4618 mov r0, r3 - 803a1ba: f001 f89f bl 803b2fc - 803a1be: 4603 mov r3, r0 - 803a1c0: 2b00 cmp r3, #0 - 803a1c2: d019 beq.n 803a1f8 - 803a1c4: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a1c6: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 803a1ca: f003 0301 and.w r3, r3, #1 - 803a1ce: b2db uxtb r3, r3 - 803a1d0: 2b00 cmp r3, #0 - 803a1d2: d111 bne.n 803a1f8 + 803a116: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a118: 6ada ldr r2, [r3, #44] ; 0x2c + 803a11a: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a11c: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a11e: 005b lsls r3, r3, #1 + 803a120: 4413 add r3, r2 + 803a122: 881b ldrh r3, [r3, #0] + 803a124: 4618 mov r0, r3 + 803a126: f001 f89f bl 803b268 + 803a12a: 4603 mov r3, r0 + 803a12c: 2b00 cmp r3, #0 + 803a12e: d019 beq.n 803a164 + 803a130: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a132: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 803a136: f003 0301 and.w r3, r3, #1 + 803a13a: b2db uxtb r3, r3 + 803a13c: 2b00 cmp r3, #0 + 803a13e: d111 bne.n 803a164 btnm->ctrl_bits[btnm->btn_id_sel] &= (~LV_BTNMATRIX_CTRL_CHECKED); - 803a1d4: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a1d6: 6ada ldr r2, [r3, #44] ; 0x2c - 803a1d8: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a1da: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a1dc: 005b lsls r3, r3, #1 - 803a1de: 4413 add r3, r2 - 803a1e0: 881a ldrh r2, [r3, #0] - 803a1e2: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a1e4: 6ad9 ldr r1, [r3, #44] ; 0x2c - 803a1e6: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a1e8: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a1ea: 005b lsls r3, r3, #1 - 803a1ec: 440b add r3, r1 - 803a1ee: f022 0280 bic.w r2, r2, #128 ; 0x80 - 803a1f2: b292 uxth r2, r2 - 803a1f4: 801a strh r2, [r3, #0] - 803a1f6: e010 b.n 803a21a + 803a140: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a142: 6ada ldr r2, [r3, #44] ; 0x2c + 803a144: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a146: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a148: 005b lsls r3, r3, #1 + 803a14a: 4413 add r3, r2 + 803a14c: 881a ldrh r2, [r3, #0] + 803a14e: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a150: 6ad9 ldr r1, [r3, #44] ; 0x2c + 803a152: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a154: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a156: 005b lsls r3, r3, #1 + 803a158: 440b add r3, r1 + 803a15a: f022 0280 bic.w r2, r2, #128 ; 0x80 + 803a15e: b292 uxth r2, r2 + 803a160: 801a strh r2, [r3, #0] + 803a162: e010 b.n 803a186 } else { btnm->ctrl_bits[btnm->btn_id_sel] |= LV_BTNMATRIX_CTRL_CHECKED; - 803a1f8: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a1fa: 6ada ldr r2, [r3, #44] ; 0x2c - 803a1fc: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a1fe: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a200: 005b lsls r3, r3, #1 - 803a202: 4413 add r3, r2 - 803a204: 881a ldrh r2, [r3, #0] - 803a206: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a208: 6ad9 ldr r1, [r3, #44] ; 0x2c - 803a20a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a20c: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a20e: 005b lsls r3, r3, #1 - 803a210: 440b add r3, r1 - 803a212: f042 0280 orr.w r2, r2, #128 ; 0x80 - 803a216: b292 uxth r2, r2 - 803a218: 801a strh r2, [r3, #0] + 803a164: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a166: 6ada ldr r2, [r3, #44] ; 0x2c + 803a168: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a16a: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a16c: 005b lsls r3, r3, #1 + 803a16e: 4413 add r3, r2 + 803a170: 881a ldrh r2, [r3, #0] + 803a172: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a174: 6ad9 ldr r1, [r3, #44] ; 0x2c + 803a176: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a178: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a17a: 005b lsls r3, r3, #1 + 803a17c: 440b add r3, r1 + 803a17e: f042 0280 orr.w r2, r2, #128 ; 0x80 + 803a182: b292 uxth r2, r2 + 803a184: 801a strh r2, [r3, #0] } if(btnm->one_check) make_one_button_checked(obj, btnm->btn_id_sel); - 803a21a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a21c: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 803a220: f003 0301 and.w r3, r3, #1 - 803a224: b2db uxtb r3, r3 - 803a226: 2b00 cmp r3, #0 - 803a228: d005 beq.n 803a236 - 803a22a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a22c: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a22e: 4619 mov r1, r3 - 803a230: 6d78 ldr r0, [r7, #84] ; 0x54 - 803a232: f001 fa93 bl 803b75c + 803a186: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a188: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 803a18c: f003 0301 and.w r3, r3, #1 + 803a190: b2db uxtb r3, r3 + 803a192: 2b00 cmp r3, #0 + 803a194: d005 beq.n 803a1a2 + 803a196: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a198: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a19a: 4619 mov r1, r3 + 803a19c: 6d78 ldr r0, [r7, #84] ; 0x54 + 803a19e: f001 fa93 bl 803b6c8 } if((button_is_click_trig(btnm->ctrl_bits[btnm->btn_id_sel]) == true || - 803a236: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a238: 6ada ldr r2, [r3, #44] ; 0x2c - 803a23a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a23c: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a23e: 005b lsls r3, r3, #1 - 803a240: 4413 add r3, r2 - 803a242: 881b ldrh r3, [r3, #0] - 803a244: 4618 mov r0, r3 - 803a246: f001 f820 bl 803b28a - 803a24a: 4603 mov r3, r0 - 803a24c: 2b00 cmp r3, #0 - 803a24e: d10c bne.n 803a26a + 803a1a2: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a1a4: 6ada ldr r2, [r3, #44] ; 0x2c + 803a1a6: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a1a8: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a1aa: 005b lsls r3, r3, #1 + 803a1ac: 4413 add r3, r2 + 803a1ae: 881b ldrh r3, [r3, #0] + 803a1b0: 4618 mov r0, r3 + 803a1b2: f001 f820 bl 803b1f6 + 803a1b6: 4603 mov r3, r0 + 803a1b8: 2b00 cmp r3, #0 + 803a1ba: d10c bne.n 803a1d6 button_is_popover(btnm->ctrl_bits[btnm->btn_id_sel]) == true) && - 803a250: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a252: 6ada ldr r2, [r3, #44] ; 0x2c - 803a254: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a256: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a258: 005b lsls r3, r3, #1 - 803a25a: 4413 add r3, r2 - 803a25c: 881b ldrh r3, [r3, #0] - 803a25e: 4618 mov r0, r3 - 803a260: f001 f826 bl 803b2b0 - 803a264: 4603 mov r3, r0 + 803a1bc: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a1be: 6ada ldr r2, [r3, #44] ; 0x2c + 803a1c0: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a1c2: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a1c4: 005b lsls r3, r3, #1 + 803a1c6: 4413 add r3, r2 + 803a1c8: 881b ldrh r3, [r3, #0] + 803a1ca: 4618 mov r0, r3 + 803a1cc: f001 f826 bl 803b21c + 803a1d0: 4603 mov r3, r0 if((button_is_click_trig(btnm->ctrl_bits[btnm->btn_id_sel]) == true || - 803a266: 2b00 cmp r3, #0 - 803a268: d031 beq.n 803a2ce + 803a1d2: 2b00 cmp r3, #0 + 803a1d4: d031 beq.n 803a23a button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel]) == false && - 803a26a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a26c: 6ada ldr r2, [r3, #44] ; 0x2c - 803a26e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a270: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a272: 005b lsls r3, r3, #1 - 803a274: 4413 add r3, r2 - 803a276: 881b ldrh r3, [r3, #0] - 803a278: 4618 mov r0, r3 - 803a27a: f000 fff3 bl 803b264 - 803a27e: 4603 mov r3, r0 - 803a280: f083 0301 eor.w r3, r3, #1 - 803a284: b2db uxtb r3, r3 + 803a1d6: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a1d8: 6ada ldr r2, [r3, #44] ; 0x2c + 803a1da: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a1dc: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a1de: 005b lsls r3, r3, #1 + 803a1e0: 4413 add r3, r2 + 803a1e2: 881b ldrh r3, [r3, #0] + 803a1e4: 4618 mov r0, r3 + 803a1e6: f000 fff3 bl 803b1d0 + 803a1ea: 4603 mov r3, r0 + 803a1ec: f083 0301 eor.w r3, r3, #1 + 803a1f0: b2db uxtb r3, r3 button_is_popover(btnm->ctrl_bits[btnm->btn_id_sel]) == true) && - 803a286: 2b00 cmp r3, #0 - 803a288: d021 beq.n 803a2ce + 803a1f2: 2b00 cmp r3, #0 + 803a1f4: d021 beq.n 803a23a button_is_hidden(btnm->ctrl_bits[btnm->btn_id_sel]) == false) { - 803a28a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a28c: 6ada ldr r2, [r3, #44] ; 0x2c - 803a28e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a290: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a292: 005b lsls r3, r3, #1 - 803a294: 4413 add r3, r2 - 803a296: 881b ldrh r3, [r3, #0] - 803a298: 4618 mov r0, r3 - 803a29a: f000 ffaa bl 803b1f2 - 803a29e: 4603 mov r3, r0 - 803a2a0: f083 0301 eor.w r3, r3, #1 - 803a2a4: b2db uxtb r3, r3 + 803a1f6: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a1f8: 6ada ldr r2, [r3, #44] ; 0x2c + 803a1fa: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a1fc: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a1fe: 005b lsls r3, r3, #1 + 803a200: 4413 add r3, r2 + 803a202: 881b ldrh r3, [r3, #0] + 803a204: 4618 mov r0, r3 + 803a206: f000 ffaa bl 803b15e + 803a20a: 4603 mov r3, r0 + 803a20c: f083 0301 eor.w r3, r3, #1 + 803a210: b2db uxtb r3, r3 button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel]) == false && - 803a2a6: 2b00 cmp r3, #0 - 803a2a8: d011 beq.n 803a2ce + 803a212: 2b00 cmp r3, #0 + 803a214: d011 beq.n 803a23a uint32_t b = btnm->btn_id_sel; - 803a2aa: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a2ac: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a2ae: 613b str r3, [r7, #16] + 803a216: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a218: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a21a: 613b str r3, [r7, #16] res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, &b); - 803a2b0: f107 0310 add.w r3, r7, #16 - 803a2b4: 461a mov r2, r3 - 803a2b6: 211c movs r1, #28 - 803a2b8: 6d78 ldr r0, [r7, #84] ; 0x54 - 803a2ba: f7c8 f8e1 bl 8002480 - 803a2be: 4603 mov r3, r0 - 803a2c0: f887 305b strb.w r3, [r7, #91] ; 0x5b + 803a21c: f107 0310 add.w r3, r7, #16 + 803a220: 461a mov r2, r3 + 803a222: 211c movs r1, #28 + 803a224: 6d78 ldr r0, [r7, #84] ; 0x54 + 803a226: f7c8 f8f5 bl 8002414 + 803a22a: 4603 mov r3, r0 + 803a22c: f887 305b strb.w r3, [r7, #91] ; 0x5b if(res != LV_RES_OK) return; - 803a2c4: f897 305b ldrb.w r3, [r7, #91] ; 0x5b - 803a2c8: 2b01 cmp r3, #1 - 803a2ca: f040 8356 bne.w 803a97a + 803a230: f897 305b ldrb.w r3, [r7, #91] ; 0x5b + 803a234: 2b01 cmp r3, #1 + 803a236: f040 8356 bne.w 803a8e6 } } /*Invalidate to old pressed area*/; invalidate_button_area(obj, btnm->btn_id_sel); - 803a2ce: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a2d0: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a2d2: 4619 mov r1, r3 - 803a2d4: 6d78 ldr r0, [r7, #84] ; 0x54 - 803a2d6: f001 f987 bl 803b5e8 - 803a2da: e34f b.n 803a97c + 803a23a: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a23c: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a23e: 4619 mov r1, r3 + 803a240: 6d78 ldr r0, [r7, #84] ; 0x54 + 803a242: f001 f987 bl 803b554 + 803a246: e34f b.n 803a8e8 } else if(code == LV_EVENT_LONG_PRESSED_REPEAT) { - 803a2dc: f897 305a ldrb.w r3, [r7, #90] ; 0x5a - 803a2e0: 2b06 cmp r3, #6 - 803a2e2: d14a bne.n 803a37a + 803a248: f897 305a ldrb.w r3, [r7, #90] ; 0x5a + 803a24c: 2b06 cmp r3, #6 + 803a24e: d14a bne.n 803a2e6 if(btnm->btn_id_sel != LV_BTNMATRIX_BTN_NONE) { - 803a2e4: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a2e6: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a2e8: f64f 72ff movw r2, #65535 ; 0xffff - 803a2ec: 4293 cmp r3, r2 - 803a2ee: f000 8345 beq.w 803a97c + 803a250: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a252: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a254: f64f 72ff movw r2, #65535 ; 0xffff + 803a258: 4293 cmp r3, r2 + 803a25a: f000 8345 beq.w 803a8e8 if(button_is_repeat_disabled(btnm->ctrl_bits[btnm->btn_id_sel]) == false && - 803a2f2: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a2f4: 6ada ldr r2, [r3, #44] ; 0x2c - 803a2f6: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a2f8: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a2fa: 005b lsls r3, r3, #1 - 803a2fc: 4413 add r3, r2 - 803a2fe: 881b ldrh r3, [r3, #0] - 803a300: 4618 mov r0, r3 - 803a302: f000 ff9c bl 803b23e - 803a306: 4603 mov r3, r0 - 803a308: f083 0301 eor.w r3, r3, #1 - 803a30c: b2db uxtb r3, r3 - 803a30e: 2b00 cmp r3, #0 - 803a310: f000 8334 beq.w 803a97c + 803a25e: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a260: 6ada ldr r2, [r3, #44] ; 0x2c + 803a262: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a264: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a266: 005b lsls r3, r3, #1 + 803a268: 4413 add r3, r2 + 803a26a: 881b ldrh r3, [r3, #0] + 803a26c: 4618 mov r0, r3 + 803a26e: f000 ff9c bl 803b1aa + 803a272: 4603 mov r3, r0 + 803a274: f083 0301 eor.w r3, r3, #1 + 803a278: b2db uxtb r3, r3 + 803a27a: 2b00 cmp r3, #0 + 803a27c: f000 8334 beq.w 803a8e8 button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel]) == false && - 803a314: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a316: 6ada ldr r2, [r3, #44] ; 0x2c - 803a318: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a31a: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a31c: 005b lsls r3, r3, #1 - 803a31e: 4413 add r3, r2 - 803a320: 881b ldrh r3, [r3, #0] - 803a322: 4618 mov r0, r3 - 803a324: f000 ff9e bl 803b264 - 803a328: 4603 mov r3, r0 - 803a32a: f083 0301 eor.w r3, r3, #1 - 803a32e: b2db uxtb r3, r3 + 803a280: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a282: 6ada ldr r2, [r3, #44] ; 0x2c + 803a284: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a286: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a288: 005b lsls r3, r3, #1 + 803a28a: 4413 add r3, r2 + 803a28c: 881b ldrh r3, [r3, #0] + 803a28e: 4618 mov r0, r3 + 803a290: f000 ff9e bl 803b1d0 + 803a294: 4603 mov r3, r0 + 803a296: f083 0301 eor.w r3, r3, #1 + 803a29a: b2db uxtb r3, r3 if(button_is_repeat_disabled(btnm->ctrl_bits[btnm->btn_id_sel]) == false && - 803a330: 2b00 cmp r3, #0 - 803a332: f000 8323 beq.w 803a97c + 803a29c: 2b00 cmp r3, #0 + 803a29e: f000 8323 beq.w 803a8e8 button_is_hidden(btnm->ctrl_bits[btnm->btn_id_sel]) == false) { - 803a336: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a338: 6ada ldr r2, [r3, #44] ; 0x2c - 803a33a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a33c: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a33e: 005b lsls r3, r3, #1 - 803a340: 4413 add r3, r2 - 803a342: 881b ldrh r3, [r3, #0] - 803a344: 4618 mov r0, r3 - 803a346: f000 ff54 bl 803b1f2 - 803a34a: 4603 mov r3, r0 - 803a34c: f083 0301 eor.w r3, r3, #1 - 803a350: b2db uxtb r3, r3 + 803a2a2: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a2a4: 6ada ldr r2, [r3, #44] ; 0x2c + 803a2a6: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a2a8: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a2aa: 005b lsls r3, r3, #1 + 803a2ac: 4413 add r3, r2 + 803a2ae: 881b ldrh r3, [r3, #0] + 803a2b0: 4618 mov r0, r3 + 803a2b2: f000 ff54 bl 803b15e + 803a2b6: 4603 mov r3, r0 + 803a2b8: f083 0301 eor.w r3, r3, #1 + 803a2bc: b2db uxtb r3, r3 button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel]) == false && - 803a352: 2b00 cmp r3, #0 - 803a354: f000 8312 beq.w 803a97c + 803a2be: 2b00 cmp r3, #0 + 803a2c0: f000 8312 beq.w 803a8e8 uint32_t b = btnm->btn_id_sel; - 803a358: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a35a: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a35c: 60fb str r3, [r7, #12] + 803a2c4: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a2c6: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a2c8: 60fb str r3, [r7, #12] res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, &b); - 803a35e: f107 030c add.w r3, r7, #12 - 803a362: 461a mov r2, r3 - 803a364: 211c movs r1, #28 - 803a366: 6d78 ldr r0, [r7, #84] ; 0x54 - 803a368: f7c8 f88a bl 8002480 - 803a36c: 4603 mov r3, r0 - 803a36e: f887 305b strb.w r3, [r7, #91] ; 0x5b + 803a2ca: f107 030c add.w r3, r7, #12 + 803a2ce: 461a mov r2, r3 + 803a2d0: 211c movs r1, #28 + 803a2d2: 6d78 ldr r0, [r7, #84] ; 0x54 + 803a2d4: f7c8 f89e bl 8002414 + 803a2d8: 4603 mov r3, r0 + 803a2da: f887 305b strb.w r3, [r7, #91] ; 0x5b if(res != LV_RES_OK) return; - 803a372: f897 305b ldrb.w r3, [r7, #91] ; 0x5b - 803a376: 2b01 cmp r3, #1 - 803a378: e300 b.n 803a97c + 803a2de: f897 305b ldrb.w r3, [r7, #91] ; 0x5b + 803a2e2: 2b01 cmp r3, #1 + 803a2e4: e300 b.n 803a8e8 } } } else if(code == LV_EVENT_PRESS_LOST) { - 803a37a: f897 305a ldrb.w r3, [r7, #90] ; 0x5a - 803a37e: 2b03 cmp r3, #3 - 803a380: d10a bne.n 803a398 + 803a2e6: f897 305a ldrb.w r3, [r7, #90] ; 0x5a + 803a2ea: 2b03 cmp r3, #3 + 803a2ec: d10a bne.n 803a304 invalidate_button_area(obj, btnm->btn_id_sel); - 803a382: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a384: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a386: 4619 mov r1, r3 - 803a388: 6d78 ldr r0, [r7, #84] ; 0x54 - 803a38a: f001 f92d bl 803b5e8 + 803a2ee: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a2f0: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a2f2: 4619 mov r1, r3 + 803a2f4: 6d78 ldr r0, [r7, #84] ; 0x54 + 803a2f6: f001 f92d bl 803b554 btnm->btn_id_sel = LV_BTNMATRIX_BTN_NONE; - 803a38e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a390: f64f 72ff movw r2, #65535 ; 0xffff - 803a394: 869a strh r2, [r3, #52] ; 0x34 - 803a396: e2f1 b.n 803a97c + 803a2fa: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a2fc: f64f 72ff movw r2, #65535 ; 0xffff + 803a300: 869a strh r2, [r3, #52] ; 0x34 + 803a302: e2f1 b.n 803a8e8 } else if(code == LV_EVENT_FOCUSED) { - 803a398: f897 305a ldrb.w r3, [r7, #90] ; 0x5a - 803a39c: 2b0e cmp r3, #14 - 803a39e: f040 808f bne.w 803a4c0 + 803a304: f897 305a ldrb.w r3, [r7, #90] ; 0x5a + 803a308: 2b0e cmp r3, #14 + 803a30a: f040 808f bne.w 803a42c lv_indev_t * indev = lv_event_get_param(e); - 803a3a2: 6838 ldr r0, [r7, #0] - 803a3a4: f7c8 f910 bl 80025c8 - 803a3a8: 63f8 str r0, [r7, #60] ; 0x3c + 803a30e: 6838 ldr r0, [r7, #0] + 803a310: f7c8 f924 bl 800255c + 803a314: 63f8 str r0, [r7, #60] ; 0x3c lv_indev_type_t indev_type = lv_indev_get_type(indev); - 803a3aa: 6bf8 ldr r0, [r7, #60] ; 0x3c - 803a3ac: f7c8 ffbe bl 800332c - 803a3b0: 4603 mov r3, r0 - 803a3b2: f887 3067 strb.w r3, [r7, #103] ; 0x67 + 803a316: 6bf8 ldr r0, [r7, #60] ; 0x3c + 803a318: f7c8 ffd2 bl 80032c0 + 803a31c: 4603 mov r3, r0 + 803a31e: f887 3067 strb.w r3, [r7, #103] ; 0x67 /*If not focused by an input device assume the last input device*/ if(indev == NULL) { - 803a3b6: 6bfb ldr r3, [r7, #60] ; 0x3c - 803a3b8: 2b00 cmp r3, #0 - 803a3ba: d109 bne.n 803a3d0 + 803a322: 6bfb ldr r3, [r7, #60] ; 0x3c + 803a324: 2b00 cmp r3, #0 + 803a326: d109 bne.n 803a33c indev = lv_indev_get_next(NULL); - 803a3bc: 2000 movs r0, #0 - 803a3be: f7f6 f98b bl 80306d8 - 803a3c2: 63f8 str r0, [r7, #60] ; 0x3c + 803a328: 2000 movs r0, #0 + 803a32a: f7f6 f98b bl 8030644 + 803a32e: 63f8 str r0, [r7, #60] ; 0x3c indev_type = lv_indev_get_type(indev); - 803a3c4: 6bf8 ldr r0, [r7, #60] ; 0x3c - 803a3c6: f7c8 ffb1 bl 800332c - 803a3ca: 4603 mov r3, r0 - 803a3cc: f887 3067 strb.w r3, [r7, #103] ; 0x67 + 803a330: 6bf8 ldr r0, [r7, #60] ; 0x3c + 803a332: f7c8 ffc5 bl 80032c0 + 803a336: 4603 mov r3, r0 + 803a338: f887 3067 strb.w r3, [r7, #103] ; 0x67 } bool editing = lv_group_get_editing(lv_obj_get_group(obj)); - 803a3d0: 6d78 ldr r0, [r7, #84] ; 0x54 - 803a3d2: f7cc fa1d bl 8006810 - 803a3d6: 4603 mov r3, r0 - 803a3d8: 4618 mov r0, r3 - 803a3da: f7c8 fd8c bl 8002ef6 - 803a3de: 4603 mov r3, r0 - 803a3e0: f887 303b strb.w r3, [r7, #59] ; 0x3b + 803a33c: 6d78 ldr r0, [r7, #84] ; 0x54 + 803a33e: f7cc fa31 bl 80067a4 + 803a342: 4603 mov r3, r0 + 803a344: 4618 mov r0, r3 + 803a346: f7c8 fda0 bl 8002e8a + 803a34a: 4603 mov r3, r0 + 803a34c: f887 303b strb.w r3, [r7, #59] ; 0x3b /*Focus the first button if there is not selected button*/ if(btnm->btn_id_sel == LV_BTNMATRIX_BTN_NONE) { - 803a3e4: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a3e6: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a3e8: f64f 72ff movw r2, #65535 ; 0xffff - 803a3ec: 4293 cmp r3, r2 - 803a3ee: f040 82c5 bne.w 803a97c + 803a350: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a352: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a354: f64f 72ff movw r2, #65535 ; 0xffff + 803a358: 4293 cmp r3, r2 + 803a35a: f040 82c5 bne.w 803a8e8 if(indev_type == LV_INDEV_TYPE_KEYPAD || (indev_type == LV_INDEV_TYPE_ENCODER && editing)) { - 803a3f2: f897 3067 ldrb.w r3, [r7, #103] ; 0x67 - 803a3f6: 2b02 cmp r3, #2 - 803a3f8: d007 beq.n 803a40a - 803a3fa: f897 3067 ldrb.w r3, [r7, #103] ; 0x67 - 803a3fe: 2b04 cmp r3, #4 - 803a400: d159 bne.n 803a4b6 - 803a402: f897 303b ldrb.w r3, [r7, #59] ; 0x3b - 803a406: 2b00 cmp r3, #0 - 803a408: d055 beq.n 803a4b6 + 803a35e: f897 3067 ldrb.w r3, [r7, #103] ; 0x67 + 803a362: 2b02 cmp r3, #2 + 803a364: d007 beq.n 803a376 + 803a366: f897 3067 ldrb.w r3, [r7, #103] ; 0x67 + 803a36a: 2b04 cmp r3, #4 + 803a36c: d159 bne.n 803a422 + 803a36e: f897 303b ldrb.w r3, [r7, #59] ; 0x3b + 803a372: 2b00 cmp r3, #0 + 803a374: d055 beq.n 803a422 uint32_t b = 0; - 803a40a: 2300 movs r3, #0 - 803a40c: 663b str r3, [r7, #96] ; 0x60 + 803a376: 2300 movs r3, #0 + 803a378: 663b str r3, [r7, #96] ; 0x60 if(btnm->one_check) { - 803a40e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a410: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 - 803a414: f003 0301 and.w r3, r3, #1 - 803a418: b2db uxtb r3, r3 - 803a41a: 2b00 cmp r3, #0 - 803a41c: d02e beq.n 803a47c + 803a37a: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a37c: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 + 803a380: f003 0301 and.w r3, r3, #1 + 803a384: b2db uxtb r3, r3 + 803a386: 2b00 cmp r3, #0 + 803a388: d02e beq.n 803a3e8 while(button_is_hidden(btnm->ctrl_bits[b]) || button_is_inactive(btnm->ctrl_bits[b]) || - 803a41e: e002 b.n 803a426 + 803a38a: e002 b.n 803a392 button_is_checked(btnm->ctrl_bits[b]) == false) b++; - 803a420: 6e3b ldr r3, [r7, #96] ; 0x60 - 803a422: 3301 adds r3, #1 - 803a424: 663b str r3, [r7, #96] ; 0x60 + 803a38c: 6e3b ldr r3, [r7, #96] ; 0x60 + 803a38e: 3301 adds r3, #1 + 803a390: 663b str r3, [r7, #96] ; 0x60 while(button_is_hidden(btnm->ctrl_bits[b]) || button_is_inactive(btnm->ctrl_bits[b]) || - 803a426: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a428: 6ada ldr r2, [r3, #44] ; 0x2c - 803a42a: 6e3b ldr r3, [r7, #96] ; 0x60 - 803a42c: 005b lsls r3, r3, #1 - 803a42e: 4413 add r3, r2 - 803a430: 881b ldrh r3, [r3, #0] - 803a432: 4618 mov r0, r3 - 803a434: f000 fedd bl 803b1f2 - 803a438: 4603 mov r3, r0 - 803a43a: 2b00 cmp r3, #0 - 803a43c: d1f0 bne.n 803a420 - 803a43e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a440: 6ada ldr r2, [r3, #44] ; 0x2c - 803a442: 6e3b ldr r3, [r7, #96] ; 0x60 - 803a444: 005b lsls r3, r3, #1 - 803a446: 4413 add r3, r2 - 803a448: 881b ldrh r3, [r3, #0] - 803a44a: 4618 mov r0, r3 - 803a44c: f000 ff0a bl 803b264 - 803a450: 4603 mov r3, r0 - 803a452: 2b00 cmp r3, #0 - 803a454: d1e4 bne.n 803a420 + 803a392: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a394: 6ada ldr r2, [r3, #44] ; 0x2c + 803a396: 6e3b ldr r3, [r7, #96] ; 0x60 + 803a398: 005b lsls r3, r3, #1 + 803a39a: 4413 add r3, r2 + 803a39c: 881b ldrh r3, [r3, #0] + 803a39e: 4618 mov r0, r3 + 803a3a0: f000 fedd bl 803b15e + 803a3a4: 4603 mov r3, r0 + 803a3a6: 2b00 cmp r3, #0 + 803a3a8: d1f0 bne.n 803a38c + 803a3aa: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a3ac: 6ada ldr r2, [r3, #44] ; 0x2c + 803a3ae: 6e3b ldr r3, [r7, #96] ; 0x60 + 803a3b0: 005b lsls r3, r3, #1 + 803a3b2: 4413 add r3, r2 + 803a3b4: 881b ldrh r3, [r3, #0] + 803a3b6: 4618 mov r0, r3 + 803a3b8: f000 ff0a bl 803b1d0 + 803a3bc: 4603 mov r3, r0 + 803a3be: 2b00 cmp r3, #0 + 803a3c0: d1e4 bne.n 803a38c button_is_checked(btnm->ctrl_bits[b]) == false) b++; - 803a456: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a458: 6ada ldr r2, [r3, #44] ; 0x2c - 803a45a: 6e3b ldr r3, [r7, #96] ; 0x60 - 803a45c: 005b lsls r3, r3, #1 - 803a45e: 4413 add r3, r2 - 803a460: 881b ldrh r3, [r3, #0] - 803a462: 4618 mov r0, r3 - 803a464: f000 fed8 bl 803b218 - 803a468: 4603 mov r3, r0 - 803a46a: f083 0301 eor.w r3, r3, #1 - 803a46e: b2db uxtb r3, r3 + 803a3c2: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a3c4: 6ada ldr r2, [r3, #44] ; 0x2c + 803a3c6: 6e3b ldr r3, [r7, #96] ; 0x60 + 803a3c8: 005b lsls r3, r3, #1 + 803a3ca: 4413 add r3, r2 + 803a3cc: 881b ldrh r3, [r3, #0] + 803a3ce: 4618 mov r0, r3 + 803a3d0: f000 fed8 bl 803b184 + 803a3d4: 4603 mov r3, r0 + 803a3d6: f083 0301 eor.w r3, r3, #1 + 803a3da: b2db uxtb r3, r3 while(button_is_hidden(btnm->ctrl_bits[b]) || button_is_inactive(btnm->ctrl_bits[b]) || - 803a470: 2b00 cmp r3, #0 - 803a472: d1d5 bne.n 803a420 - 803a474: e01a b.n 803a4ac + 803a3dc: 2b00 cmp r3, #0 + 803a3de: d1d5 bne.n 803a38c + 803a3e0: e01a b.n 803a418 } else { while(button_is_hidden(btnm->ctrl_bits[b]) || button_is_inactive(btnm->ctrl_bits[b])) b++; - 803a476: 6e3b ldr r3, [r7, #96] ; 0x60 - 803a478: 3301 adds r3, #1 - 803a47a: 663b str r3, [r7, #96] ; 0x60 - 803a47c: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a47e: 6ada ldr r2, [r3, #44] ; 0x2c - 803a480: 6e3b ldr r3, [r7, #96] ; 0x60 - 803a482: 005b lsls r3, r3, #1 - 803a484: 4413 add r3, r2 - 803a486: 881b ldrh r3, [r3, #0] - 803a488: 4618 mov r0, r3 - 803a48a: f000 feb2 bl 803b1f2 - 803a48e: 4603 mov r3, r0 - 803a490: 2b00 cmp r3, #0 - 803a492: d1f0 bne.n 803a476 - 803a494: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a496: 6ada ldr r2, [r3, #44] ; 0x2c - 803a498: 6e3b ldr r3, [r7, #96] ; 0x60 - 803a49a: 005b lsls r3, r3, #1 - 803a49c: 4413 add r3, r2 - 803a49e: 881b ldrh r3, [r3, #0] - 803a4a0: 4618 mov r0, r3 - 803a4a2: f000 fedf bl 803b264 - 803a4a6: 4603 mov r3, r0 - 803a4a8: 2b00 cmp r3, #0 - 803a4aa: d1e4 bne.n 803a476 + 803a3e2: 6e3b ldr r3, [r7, #96] ; 0x60 + 803a3e4: 3301 adds r3, #1 + 803a3e6: 663b str r3, [r7, #96] ; 0x60 + 803a3e8: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a3ea: 6ada ldr r2, [r3, #44] ; 0x2c + 803a3ec: 6e3b ldr r3, [r7, #96] ; 0x60 + 803a3ee: 005b lsls r3, r3, #1 + 803a3f0: 4413 add r3, r2 + 803a3f2: 881b ldrh r3, [r3, #0] + 803a3f4: 4618 mov r0, r3 + 803a3f6: f000 feb2 bl 803b15e + 803a3fa: 4603 mov r3, r0 + 803a3fc: 2b00 cmp r3, #0 + 803a3fe: d1f0 bne.n 803a3e2 + 803a400: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a402: 6ada ldr r2, [r3, #44] ; 0x2c + 803a404: 6e3b ldr r3, [r7, #96] ; 0x60 + 803a406: 005b lsls r3, r3, #1 + 803a408: 4413 add r3, r2 + 803a40a: 881b ldrh r3, [r3, #0] + 803a40c: 4618 mov r0, r3 + 803a40e: f000 fedf bl 803b1d0 + 803a412: 4603 mov r3, r0 + 803a414: 2b00 cmp r3, #0 + 803a416: d1e4 bne.n 803a3e2 } btnm->btn_id_sel = b; - 803a4ac: 6e3b ldr r3, [r7, #96] ; 0x60 - 803a4ae: b29a uxth r2, r3 - 803a4b0: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a4b2: 869a strh r2, [r3, #52] ; 0x34 + 803a418: 6e3b ldr r3, [r7, #96] ; 0x60 + 803a41a: b29a uxth r2, r3 + 803a41c: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a41e: 869a strh r2, [r3, #52] ; 0x34 if(indev_type == LV_INDEV_TYPE_KEYPAD || (indev_type == LV_INDEV_TYPE_ENCODER && editing)) { - 803a4b4: e262 b.n 803a97c + 803a420: e262 b.n 803a8e8 } else { btnm->btn_id_sel = LV_BTNMATRIX_BTN_NONE; - 803a4b6: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a4b8: f64f 72ff movw r2, #65535 ; 0xffff - 803a4bc: 869a strh r2, [r3, #52] ; 0x34 - 803a4be: e25d b.n 803a97c + 803a422: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a424: f64f 72ff movw r2, #65535 ; 0xffff + 803a428: 869a strh r2, [r3, #52] ; 0x34 + 803a42a: e25d b.n 803a8e8 } } } else if(code == LV_EVENT_DEFOCUSED || code == LV_EVENT_LEAVE) { - 803a4c0: f897 305a ldrb.w r3, [r7, #90] ; 0x5a - 803a4c4: 2b0f cmp r3, #15 - 803a4c6: d003 beq.n 803a4d0 - 803a4c8: f897 305a ldrb.w r3, [r7, #90] ; 0x5a - 803a4cc: 2b10 cmp r3, #16 - 803a4ce: d110 bne.n 803a4f2 + 803a42c: f897 305a ldrb.w r3, [r7, #90] ; 0x5a + 803a430: 2b0f cmp r3, #15 + 803a432: d003 beq.n 803a43c + 803a434: f897 305a ldrb.w r3, [r7, #90] ; 0x5a + 803a438: 2b10 cmp r3, #16 + 803a43a: d110 bne.n 803a45e if(btnm->btn_id_sel != LV_BTNMATRIX_BTN_NONE) invalidate_button_area(obj, btnm->btn_id_sel); - 803a4d0: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a4d2: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a4d4: f64f 72ff movw r2, #65535 ; 0xffff - 803a4d8: 4293 cmp r3, r2 - 803a4da: d005 beq.n 803a4e8 - 803a4dc: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a4de: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a4e0: 4619 mov r1, r3 - 803a4e2: 6d78 ldr r0, [r7, #84] ; 0x54 - 803a4e4: f001 f880 bl 803b5e8 + 803a43c: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a43e: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a440: f64f 72ff movw r2, #65535 ; 0xffff + 803a444: 4293 cmp r3, r2 + 803a446: d005 beq.n 803a454 + 803a448: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a44a: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a44c: 4619 mov r1, r3 + 803a44e: 6d78 ldr r0, [r7, #84] ; 0x54 + 803a450: f001 f880 bl 803b554 btnm->btn_id_sel = LV_BTNMATRIX_BTN_NONE; - 803a4e8: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a4ea: f64f 72ff movw r2, #65535 ; 0xffff - 803a4ee: 869a strh r2, [r3, #52] ; 0x34 - 803a4f0: e244 b.n 803a97c + 803a454: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a456: f64f 72ff movw r2, #65535 ; 0xffff + 803a45a: 869a strh r2, [r3, #52] ; 0x34 + 803a45c: e244 b.n 803a8e8 } else if(code == LV_EVENT_KEY) { - 803a4f2: f897 305a ldrb.w r3, [r7, #90] ; 0x5a - 803a4f6: 2b0d cmp r3, #13 - 803a4f8: f040 8233 bne.w 803a962 + 803a45e: f897 305a ldrb.w r3, [r7, #90] ; 0x5a + 803a462: 2b0d cmp r3, #13 + 803a464: f040 8233 bne.w 803a8ce invalidate_button_area(obj, btnm->btn_id_sel); - 803a4fc: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a4fe: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a500: 4619 mov r1, r3 - 803a502: 6d78 ldr r0, [r7, #84] ; 0x54 - 803a504: f001 f870 bl 803b5e8 + 803a468: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a46a: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a46c: 4619 mov r1, r3 + 803a46e: 6d78 ldr r0, [r7, #84] ; 0x54 + 803a470: f001 f870 bl 803b554 char c = *((char *)lv_event_get_param(e)); - 803a508: 6838 ldr r0, [r7, #0] - 803a50a: f7c8 f85d bl 80025c8 - 803a50e: 4603 mov r3, r0 - 803a510: 781b ldrb r3, [r3, #0] - 803a512: f887 304b strb.w r3, [r7, #75] ; 0x4b + 803a474: 6838 ldr r0, [r7, #0] + 803a476: f7c8 f871 bl 800255c + 803a47a: 4603 mov r3, r0 + 803a47c: 781b ldrb r3, [r3, #0] + 803a47e: f887 304b strb.w r3, [r7, #75] ; 0x4b if(c == LV_KEY_RIGHT) { - 803a516: f897 304b ldrb.w r3, [r7, #75] ; 0x4b - 803a51a: 2b13 cmp r3, #19 - 803a51c: d143 bne.n 803a5a6 + 803a482: f897 304b ldrb.w r3, [r7, #75] ; 0x4b + 803a486: 2b13 cmp r3, #19 + 803a488: d143 bne.n 803a512 if(btnm->btn_id_sel == LV_BTNMATRIX_BTN_NONE) btnm->btn_id_sel = 0; - 803a51e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a520: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a522: f64f 72ff movw r2, #65535 ; 0xffff - 803a526: 4293 cmp r3, r2 - 803a528: d103 bne.n 803a532 - 803a52a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a52c: 2200 movs r2, #0 - 803a52e: 869a strh r2, [r3, #52] ; 0x34 - 803a530: e005 b.n 803a53e + 803a48a: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a48c: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a48e: f64f 72ff movw r2, #65535 ; 0xffff + 803a492: 4293 cmp r3, r2 + 803a494: d103 bne.n 803a49e + 803a496: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a498: 2200 movs r2, #0 + 803a49a: 869a strh r2, [r3, #52] ; 0x34 + 803a49c: e005 b.n 803a4aa else btnm->btn_id_sel++; - 803a532: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a534: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a536: 3301 adds r3, #1 - 803a538: b29a uxth r2, r3 - 803a53a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a53c: 869a strh r2, [r3, #52] ; 0x34 + 803a49e: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a4a0: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a4a2: 3301 adds r3, #1 + 803a4a4: b29a uxth r2, r3 + 803a4a6: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a4a8: 869a strh r2, [r3, #52] ; 0x34 if(btnm->btn_id_sel >= btnm->btn_cnt) btnm->btn_id_sel = 0; - 803a53e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a540: 8e9a ldrh r2, [r3, #52] ; 0x34 - 803a542: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a544: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803a546: 429a cmp r2, r3 - 803a548: d312 bcc.n 803a570 - 803a54a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a54c: 2200 movs r2, #0 - 803a54e: 869a strh r2, [r3, #52] ; 0x34 + 803a4aa: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a4ac: 8e9a ldrh r2, [r3, #52] ; 0x34 + 803a4ae: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a4b0: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803a4b2: 429a cmp r2, r3 + 803a4b4: d312 bcc.n 803a4dc + 803a4b6: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a4b8: 2200 movs r2, #0 + 803a4ba: 869a strh r2, [r3, #52] ; 0x34 while(button_is_hidden(btnm->ctrl_bits[btnm->btn_id_sel]) || button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel])) { - 803a550: e00e b.n 803a570 + 803a4bc: e00e b.n 803a4dc btnm->btn_id_sel++; - 803a552: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a554: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a556: 3301 adds r3, #1 - 803a558: b29a uxth r2, r3 - 803a55a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a55c: 869a strh r2, [r3, #52] ; 0x34 + 803a4be: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a4c0: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a4c2: 3301 adds r3, #1 + 803a4c4: b29a uxth r2, r3 + 803a4c6: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a4c8: 869a strh r2, [r3, #52] ; 0x34 if(btnm->btn_id_sel >= btnm->btn_cnt) btnm->btn_id_sel = 0; - 803a55e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a560: 8e9a ldrh r2, [r3, #52] ; 0x34 - 803a562: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a564: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803a566: 429a cmp r2, r3 - 803a568: d302 bcc.n 803a570 - 803a56a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a56c: 2200 movs r2, #0 - 803a56e: 869a strh r2, [r3, #52] ; 0x34 + 803a4ca: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a4cc: 8e9a ldrh r2, [r3, #52] ; 0x34 + 803a4ce: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a4d0: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803a4d2: 429a cmp r2, r3 + 803a4d4: d302 bcc.n 803a4dc + 803a4d6: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a4d8: 2200 movs r2, #0 + 803a4da: 869a strh r2, [r3, #52] ; 0x34 while(button_is_hidden(btnm->ctrl_bits[btnm->btn_id_sel]) || button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel])) { - 803a570: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a572: 6ada ldr r2, [r3, #44] ; 0x2c - 803a574: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a576: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a578: 005b lsls r3, r3, #1 - 803a57a: 4413 add r3, r2 - 803a57c: 881b ldrh r3, [r3, #0] - 803a57e: 4618 mov r0, r3 - 803a580: f000 fe37 bl 803b1f2 - 803a584: 4603 mov r3, r0 - 803a586: 2b00 cmp r3, #0 - 803a588: d1e3 bne.n 803a552 - 803a58a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a58c: 6ada ldr r2, [r3, #44] ; 0x2c - 803a58e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a590: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a592: 005b lsls r3, r3, #1 - 803a594: 4413 add r3, r2 - 803a596: 881b ldrh r3, [r3, #0] - 803a598: 4618 mov r0, r3 - 803a59a: f000 fe63 bl 803b264 - 803a59e: 4603 mov r3, r0 - 803a5a0: 2b00 cmp r3, #0 - 803a5a2: d1d6 bne.n 803a552 - 803a5a4: e1d6 b.n 803a954 + 803a4dc: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a4de: 6ada ldr r2, [r3, #44] ; 0x2c + 803a4e0: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a4e2: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a4e4: 005b lsls r3, r3, #1 + 803a4e6: 4413 add r3, r2 + 803a4e8: 881b ldrh r3, [r3, #0] + 803a4ea: 4618 mov r0, r3 + 803a4ec: f000 fe37 bl 803b15e + 803a4f0: 4603 mov r3, r0 + 803a4f2: 2b00 cmp r3, #0 + 803a4f4: d1e3 bne.n 803a4be + 803a4f6: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a4f8: 6ada ldr r2, [r3, #44] ; 0x2c + 803a4fa: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a4fc: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a4fe: 005b lsls r3, r3, #1 + 803a500: 4413 add r3, r2 + 803a502: 881b ldrh r3, [r3, #0] + 803a504: 4618 mov r0, r3 + 803a506: f000 fe63 bl 803b1d0 + 803a50a: 4603 mov r3, r0 + 803a50c: 2b00 cmp r3, #0 + 803a50e: d1d6 bne.n 803a4be + 803a510: e1d6 b.n 803a8c0 } } else if(c == LV_KEY_LEFT) { - 803a5a6: f897 304b ldrb.w r3, [r7, #75] ; 0x4b - 803a5aa: 2b14 cmp r3, #20 - 803a5ac: d14a bne.n 803a644 + 803a512: f897 304b ldrb.w r3, [r7, #75] ; 0x4b + 803a516: 2b14 cmp r3, #20 + 803a518: d14a bne.n 803a5b0 if(btnm->btn_id_sel == LV_BTNMATRIX_BTN_NONE) btnm->btn_id_sel = 0; - 803a5ae: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a5b0: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a5b2: f64f 72ff movw r2, #65535 ; 0xffff - 803a5b6: 4293 cmp r3, r2 - 803a5b8: d102 bne.n 803a5c0 - 803a5ba: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a5bc: 2200 movs r2, #0 - 803a5be: 869a strh r2, [r3, #52] ; 0x34 + 803a51a: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a51c: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a51e: f64f 72ff movw r2, #65535 ; 0xffff + 803a522: 4293 cmp r3, r2 + 803a524: d102 bne.n 803a52c + 803a526: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a528: 2200 movs r2, #0 + 803a52a: 869a strh r2, [r3, #52] ; 0x34 if(btnm->btn_id_sel == 0) btnm->btn_id_sel = btnm->btn_cnt - 1; - 803a5c0: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a5c2: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a5c4: 2b00 cmp r3, #0 - 803a5c6: d106 bne.n 803a5d6 - 803a5c8: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a5ca: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803a5cc: 3b01 subs r3, #1 - 803a5ce: b29a uxth r2, r3 - 803a5d0: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a5d2: 869a strh r2, [r3, #52] ; 0x34 - 803a5d4: e01b b.n 803a60e + 803a52c: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a52e: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a530: 2b00 cmp r3, #0 + 803a532: d106 bne.n 803a542 + 803a534: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a536: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803a538: 3b01 subs r3, #1 + 803a53a: b29a uxth r2, r3 + 803a53c: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a53e: 869a strh r2, [r3, #52] ; 0x34 + 803a540: e01b b.n 803a57a else if(btnm->btn_id_sel > 0) btnm->btn_id_sel--; - 803a5d6: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a5d8: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a5da: 2b00 cmp r3, #0 - 803a5dc: d017 beq.n 803a60e - 803a5de: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a5e0: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a5e2: 3b01 subs r3, #1 - 803a5e4: b29a uxth r2, r3 - 803a5e6: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a5e8: 869a strh r2, [r3, #52] ; 0x34 + 803a542: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a544: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a546: 2b00 cmp r3, #0 + 803a548: d017 beq.n 803a57a + 803a54a: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a54c: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a54e: 3b01 subs r3, #1 + 803a550: b29a uxth r2, r3 + 803a552: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a554: 869a strh r2, [r3, #52] ; 0x34 while(button_is_hidden(btnm->ctrl_bits[btnm->btn_id_sel]) || button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel])) { - 803a5ea: e010 b.n 803a60e + 803a556: e010 b.n 803a57a if(btnm->btn_id_sel > 0) btnm->btn_id_sel--; - 803a5ec: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a5ee: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a5f0: 2b00 cmp r3, #0 - 803a5f2: d006 beq.n 803a602 - 803a5f4: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a5f6: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a5f8: 3b01 subs r3, #1 - 803a5fa: b29a uxth r2, r3 - 803a5fc: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a5fe: 869a strh r2, [r3, #52] ; 0x34 - 803a600: e005 b.n 803a60e + 803a558: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a55a: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a55c: 2b00 cmp r3, #0 + 803a55e: d006 beq.n 803a56e + 803a560: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a562: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a564: 3b01 subs r3, #1 + 803a566: b29a uxth r2, r3 + 803a568: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a56a: 869a strh r2, [r3, #52] ; 0x34 + 803a56c: e005 b.n 803a57a else btnm->btn_id_sel = btnm->btn_cnt - 1; - 803a602: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a604: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803a606: 3b01 subs r3, #1 - 803a608: b29a uxth r2, r3 - 803a60a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a60c: 869a strh r2, [r3, #52] ; 0x34 + 803a56e: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a570: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803a572: 3b01 subs r3, #1 + 803a574: b29a uxth r2, r3 + 803a576: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a578: 869a strh r2, [r3, #52] ; 0x34 while(button_is_hidden(btnm->ctrl_bits[btnm->btn_id_sel]) || button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel])) { - 803a60e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a610: 6ada ldr r2, [r3, #44] ; 0x2c - 803a612: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a614: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a616: 005b lsls r3, r3, #1 - 803a618: 4413 add r3, r2 - 803a61a: 881b ldrh r3, [r3, #0] - 803a61c: 4618 mov r0, r3 - 803a61e: f000 fde8 bl 803b1f2 - 803a622: 4603 mov r3, r0 - 803a624: 2b00 cmp r3, #0 - 803a626: d1e1 bne.n 803a5ec - 803a628: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a62a: 6ada ldr r2, [r3, #44] ; 0x2c - 803a62c: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a62e: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a630: 005b lsls r3, r3, #1 - 803a632: 4413 add r3, r2 - 803a634: 881b ldrh r3, [r3, #0] - 803a636: 4618 mov r0, r3 - 803a638: f000 fe14 bl 803b264 - 803a63c: 4603 mov r3, r0 - 803a63e: 2b00 cmp r3, #0 - 803a640: d1d4 bne.n 803a5ec - 803a642: e187 b.n 803a954 + 803a57a: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a57c: 6ada ldr r2, [r3, #44] ; 0x2c + 803a57e: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a580: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a582: 005b lsls r3, r3, #1 + 803a584: 4413 add r3, r2 + 803a586: 881b ldrh r3, [r3, #0] + 803a588: 4618 mov r0, r3 + 803a58a: f000 fde8 bl 803b15e + 803a58e: 4603 mov r3, r0 + 803a590: 2b00 cmp r3, #0 + 803a592: d1e1 bne.n 803a558 + 803a594: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a596: 6ada ldr r2, [r3, #44] ; 0x2c + 803a598: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a59a: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a59c: 005b lsls r3, r3, #1 + 803a59e: 4413 add r3, r2 + 803a5a0: 881b ldrh r3, [r3, #0] + 803a5a2: 4618 mov r0, r3 + 803a5a4: f000 fe14 bl 803b1d0 + 803a5a8: 4603 mov r3, r0 + 803a5aa: 2b00 cmp r3, #0 + 803a5ac: d1d4 bne.n 803a558 + 803a5ae: e187 b.n 803a8c0 } } else if(c == LV_KEY_DOWN) { - 803a644: f897 304b ldrb.w r3, [r7, #75] ; 0x4b - 803a648: 2b12 cmp r3, #18 - 803a64a: f040 80c1 bne.w 803a7d0 + 803a5b0: f897 304b ldrb.w r3, [r7, #75] ; 0x4b + 803a5b4: 2b12 cmp r3, #18 + 803a5b6: f040 80c1 bne.w 803a73c lv_coord_t col_gap = lv_obj_get_style_pad_column(obj, LV_PART_MAIN); - 803a64e: 2100 movs r1, #0 - 803a650: 6d78 ldr r0, [r7, #84] ; 0x54 - 803a652: f7ff f85c bl 803970e - 803a656: 4603 mov r3, r0 - 803a658: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 + 803a5ba: 2100 movs r1, #0 + 803a5bc: 6d78 ldr r0, [r7, #84] ; 0x54 + 803a5be: f7ff f85c bl 803967a + 803a5c2: 4603 mov r3, r0 + 803a5c4: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 /*Find the area below the current*/ if(btnm->btn_id_sel == LV_BTNMATRIX_BTN_NONE) { - 803a65c: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a65e: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a660: f64f 72ff movw r2, #65535 ; 0xffff - 803a664: 4293 cmp r3, r2 - 803a666: d12d bne.n 803a6c4 + 803a5c8: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a5ca: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a5cc: f64f 72ff movw r2, #65535 ; 0xffff + 803a5d0: 4293 cmp r3, r2 + 803a5d2: d12d bne.n 803a630 btnm->btn_id_sel = 0; - 803a668: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a66a: 2200 movs r2, #0 - 803a66c: 869a strh r2, [r3, #52] ; 0x34 + 803a5d4: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a5d6: 2200 movs r2, #0 + 803a5d8: 869a strh r2, [r3, #52] ; 0x34 while(button_is_hidden(btnm->ctrl_bits[btnm->btn_id_sel]) || button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel])) { - 803a66e: e00e b.n 803a68e + 803a5da: e00e b.n 803a5fa btnm->btn_id_sel++; - 803a670: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a672: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a674: 3301 adds r3, #1 - 803a676: b29a uxth r2, r3 - 803a678: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a67a: 869a strh r2, [r3, #52] ; 0x34 + 803a5dc: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a5de: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a5e0: 3301 adds r3, #1 + 803a5e2: b29a uxth r2, r3 + 803a5e4: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a5e6: 869a strh r2, [r3, #52] ; 0x34 if(btnm->btn_id_sel >= btnm->btn_cnt) btnm->btn_id_sel = 0; - 803a67c: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a67e: 8e9a ldrh r2, [r3, #52] ; 0x34 - 803a680: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a682: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803a684: 429a cmp r2, r3 - 803a686: d302 bcc.n 803a68e - 803a688: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a68a: 2200 movs r2, #0 - 803a68c: 869a strh r2, [r3, #52] ; 0x34 + 803a5e8: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a5ea: 8e9a ldrh r2, [r3, #52] ; 0x34 + 803a5ec: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a5ee: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803a5f0: 429a cmp r2, r3 + 803a5f2: d302 bcc.n 803a5fa + 803a5f4: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a5f6: 2200 movs r2, #0 + 803a5f8: 869a strh r2, [r3, #52] ; 0x34 while(button_is_hidden(btnm->ctrl_bits[btnm->btn_id_sel]) || button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel])) { - 803a68e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a690: 6ada ldr r2, [r3, #44] ; 0x2c - 803a692: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a694: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a696: 005b lsls r3, r3, #1 - 803a698: 4413 add r3, r2 - 803a69a: 881b ldrh r3, [r3, #0] - 803a69c: 4618 mov r0, r3 - 803a69e: f000 fda8 bl 803b1f2 - 803a6a2: 4603 mov r3, r0 - 803a6a4: 2b00 cmp r3, #0 - 803a6a6: d1e3 bne.n 803a670 - 803a6a8: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a6aa: 6ada ldr r2, [r3, #44] ; 0x2c - 803a6ac: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a6ae: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a6b0: 005b lsls r3, r3, #1 - 803a6b2: 4413 add r3, r2 - 803a6b4: 881b ldrh r3, [r3, #0] - 803a6b6: 4618 mov r0, r3 - 803a6b8: f000 fdd4 bl 803b264 - 803a6bc: 4603 mov r3, r0 - 803a6be: 2b00 cmp r3, #0 - 803a6c0: d1d6 bne.n 803a670 - 803a6c2: e147 b.n 803a954 + 803a5fa: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a5fc: 6ada ldr r2, [r3, #44] ; 0x2c + 803a5fe: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a600: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a602: 005b lsls r3, r3, #1 + 803a604: 4413 add r3, r2 + 803a606: 881b ldrh r3, [r3, #0] + 803a608: 4618 mov r0, r3 + 803a60a: f000 fda8 bl 803b15e + 803a60e: 4603 mov r3, r0 + 803a610: 2b00 cmp r3, #0 + 803a612: d1e3 bne.n 803a5dc + 803a614: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a616: 6ada ldr r2, [r3, #44] ; 0x2c + 803a618: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a61a: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a61c: 005b lsls r3, r3, #1 + 803a61e: 4413 add r3, r2 + 803a620: 881b ldrh r3, [r3, #0] + 803a622: 4618 mov r0, r3 + 803a624: f000 fdd4 bl 803b1d0 + 803a628: 4603 mov r3, r0 + 803a62a: 2b00 cmp r3, #0 + 803a62c: d1d6 bne.n 803a5dc + 803a62e: e147 b.n 803a8c0 } } else { uint16_t area_below; lv_coord_t pr_center = btnm->button_areas[btnm->btn_id_sel].x1 + (lv_area_get_width(&btnm->button_areas[btnm->btn_id_sel]) >> 1); - 803a6c4: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a6c6: 6a9a ldr r2, [r3, #40] ; 0x28 - 803a6c8: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a6ca: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a6cc: 00db lsls r3, r3, #3 - 803a6ce: 4413 add r3, r2 - 803a6d0: f9b3 3000 ldrsh.w r3, [r3] - 803a6d4: b29c uxth r4, r3 - 803a6d6: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a6d8: 6a9a ldr r2, [r3, #40] ; 0x28 - 803a6da: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a6dc: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a6de: 00db lsls r3, r3, #3 - 803a6e0: 4413 add r3, r2 - 803a6e2: 4618 mov r0, r3 - 803a6e4: f7fe ff88 bl 80395f8 - 803a6e8: 4603 mov r3, r0 - 803a6ea: 105b asrs r3, r3, #1 - 803a6ec: b21b sxth r3, r3 - 803a6ee: b29b uxth r3, r3 - 803a6f0: 4423 add r3, r4 - 803a6f2: b29b uxth r3, r3 + 803a630: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a632: 6a9a ldr r2, [r3, #40] ; 0x28 + 803a634: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a636: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a638: 00db lsls r3, r3, #3 + 803a63a: 4413 add r3, r2 + 803a63c: f9b3 3000 ldrsh.w r3, [r3] + 803a640: b29c uxth r4, r3 + 803a642: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a644: 6a9a ldr r2, [r3, #40] ; 0x28 + 803a646: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a648: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a64a: 00db lsls r3, r3, #3 + 803a64c: 4413 add r3, r2 + 803a64e: 4618 mov r0, r3 + 803a650: f7fe ff88 bl 8039564 + 803a654: 4603 mov r3, r0 + 803a656: 105b asrs r3, r3, #1 + 803a658: b21b sxth r3, r3 + 803a65a: b29b uxth r3, r3 + 803a65c: 4423 add r3, r4 + 803a65e: b29b uxth r3, r3 lv_coord_t pr_center = - 803a6f4: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 803a660: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 for(area_below = btnm->btn_id_sel; area_below < btnm->btn_cnt; area_below++) { - 803a6f8: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a6fa: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a6fc: f8a7 305e strh.w r3, [r7, #94] ; 0x5e - 803a700: e052 b.n 803a7a8 + 803a664: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a666: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a668: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 803a66c: e052 b.n 803a714 if(btnm->button_areas[area_below].y1 > btnm->button_areas[btnm->btn_id_sel].y1 && - 803a702: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a704: 6a9a ldr r2, [r3, #40] ; 0x28 - 803a706: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 803a70a: 00db lsls r3, r3, #3 - 803a70c: 4413 add r3, r2 - 803a70e: f9b3 2002 ldrsh.w r2, [r3, #2] - 803a712: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a714: 6a99 ldr r1, [r3, #40] ; 0x28 - 803a716: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a718: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a71a: 00db lsls r3, r3, #3 - 803a71c: 440b add r3, r1 - 803a71e: f9b3 3002 ldrsh.w r3, [r3, #2] - 803a722: 429a cmp r2, r3 - 803a724: dd3b ble.n 803a79e + 803a66e: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a670: 6a9a ldr r2, [r3, #40] ; 0x28 + 803a672: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 803a676: 00db lsls r3, r3, #3 + 803a678: 4413 add r3, r2 + 803a67a: f9b3 2002 ldrsh.w r2, [r3, #2] + 803a67e: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a680: 6a99 ldr r1, [r3, #40] ; 0x28 + 803a682: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a684: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a686: 00db lsls r3, r3, #3 + 803a688: 440b add r3, r1 + 803a68a: f9b3 3002 ldrsh.w r3, [r3, #2] + 803a68e: 429a cmp r2, r3 + 803a690: dd3b ble.n 803a70a pr_center >= btnm->button_areas[area_below].x1 && - 803a726: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a728: 6a9a ldr r2, [r3, #40] ; 0x28 - 803a72a: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 803a72e: 00db lsls r3, r3, #3 - 803a730: 4413 add r3, r2 - 803a732: f9b3 3000 ldrsh.w r3, [r3] + 803a692: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a694: 6a9a ldr r2, [r3, #40] ; 0x28 + 803a696: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 803a69a: 00db lsls r3, r3, #3 + 803a69c: 4413 add r3, r2 + 803a69e: f9b3 3000 ldrsh.w r3, [r3] if(btnm->button_areas[area_below].y1 > btnm->button_areas[btnm->btn_id_sel].y1 && - 803a736: f9b7 2042 ldrsh.w r2, [r7, #66] ; 0x42 - 803a73a: 429a cmp r2, r3 - 803a73c: db2f blt.n 803a79e + 803a6a2: f9b7 2042 ldrsh.w r2, [r7, #66] ; 0x42 + 803a6a6: 429a cmp r2, r3 + 803a6a8: db2f blt.n 803a70a pr_center <= btnm->button_areas[area_below].x2 + col_gap && - 803a73e: f9b7 2042 ldrsh.w r2, [r7, #66] ; 0x42 - 803a742: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a744: 6a99 ldr r1, [r3, #40] ; 0x28 - 803a746: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 803a74a: 00db lsls r3, r3, #3 - 803a74c: 440b add r3, r1 - 803a74e: f9b3 3004 ldrsh.w r3, [r3, #4] - 803a752: 4619 mov r1, r3 - 803a754: f9b7 3044 ldrsh.w r3, [r7, #68] ; 0x44 - 803a758: 440b add r3, r1 + 803a6aa: f9b7 2042 ldrsh.w r2, [r7, #66] ; 0x42 + 803a6ae: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a6b0: 6a99 ldr r1, [r3, #40] ; 0x28 + 803a6b2: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 803a6b6: 00db lsls r3, r3, #3 + 803a6b8: 440b add r3, r1 + 803a6ba: f9b3 3004 ldrsh.w r3, [r3, #4] + 803a6be: 4619 mov r1, r3 + 803a6c0: f9b7 3044 ldrsh.w r3, [r7, #68] ; 0x44 + 803a6c4: 440b add r3, r1 pr_center >= btnm->button_areas[area_below].x1 && - 803a75a: 429a cmp r2, r3 - 803a75c: dc1f bgt.n 803a79e + 803a6c6: 429a cmp r2, r3 + 803a6c8: dc1f bgt.n 803a70a button_is_inactive(btnm->ctrl_bits[area_below]) == false && - 803a75e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a760: 6ada ldr r2, [r3, #44] ; 0x2c - 803a762: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 803a766: 005b lsls r3, r3, #1 - 803a768: 4413 add r3, r2 - 803a76a: 881b ldrh r3, [r3, #0] - 803a76c: 4618 mov r0, r3 - 803a76e: f000 fd79 bl 803b264 - 803a772: 4603 mov r3, r0 - 803a774: f083 0301 eor.w r3, r3, #1 - 803a778: b2db uxtb r3, r3 + 803a6ca: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a6cc: 6ada ldr r2, [r3, #44] ; 0x2c + 803a6ce: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 803a6d2: 005b lsls r3, r3, #1 + 803a6d4: 4413 add r3, r2 + 803a6d6: 881b ldrh r3, [r3, #0] + 803a6d8: 4618 mov r0, r3 + 803a6da: f000 fd79 bl 803b1d0 + 803a6de: 4603 mov r3, r0 + 803a6e0: f083 0301 eor.w r3, r3, #1 + 803a6e4: b2db uxtb r3, r3 pr_center <= btnm->button_areas[area_below].x2 + col_gap && - 803a77a: 2b00 cmp r3, #0 - 803a77c: d00f beq.n 803a79e + 803a6e6: 2b00 cmp r3, #0 + 803a6e8: d00f beq.n 803a70a button_is_hidden(btnm->ctrl_bits[area_below]) == false) { - 803a77e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a780: 6ada ldr r2, [r3, #44] ; 0x2c - 803a782: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 803a786: 005b lsls r3, r3, #1 - 803a788: 4413 add r3, r2 - 803a78a: 881b ldrh r3, [r3, #0] - 803a78c: 4618 mov r0, r3 - 803a78e: f000 fd30 bl 803b1f2 - 803a792: 4603 mov r3, r0 - 803a794: f083 0301 eor.w r3, r3, #1 - 803a798: b2db uxtb r3, r3 + 803a6ea: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a6ec: 6ada ldr r2, [r3, #44] ; 0x2c + 803a6ee: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 803a6f2: 005b lsls r3, r3, #1 + 803a6f4: 4413 add r3, r2 + 803a6f6: 881b ldrh r3, [r3, #0] + 803a6f8: 4618 mov r0, r3 + 803a6fa: f000 fd30 bl 803b15e + 803a6fe: 4603 mov r3, r0 + 803a700: f083 0301 eor.w r3, r3, #1 + 803a704: b2db uxtb r3, r3 button_is_inactive(btnm->ctrl_bits[area_below]) == false && - 803a79a: 2b00 cmp r3, #0 - 803a79c: d10b bne.n 803a7b6 + 803a706: 2b00 cmp r3, #0 + 803a708: d10b bne.n 803a722 for(area_below = btnm->btn_id_sel; area_below < btnm->btn_cnt; area_below++) { - 803a79e: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 803a7a2: 3301 adds r3, #1 - 803a7a4: f8a7 305e strh.w r3, [r7, #94] ; 0x5e - 803a7a8: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a7aa: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803a7ac: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e - 803a7b0: 429a cmp r2, r3 - 803a7b2: d3a6 bcc.n 803a702 - 803a7b4: e000 b.n 803a7b8 + 803a70a: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 803a70e: 3301 adds r3, #1 + 803a710: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 803a714: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a716: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803a718: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e + 803a71c: 429a cmp r2, r3 + 803a71e: d3a6 bcc.n 803a66e + 803a720: e000 b.n 803a724 break; - 803a7b6: bf00 nop + 803a722: bf00 nop } } if(area_below < btnm->btn_cnt) btnm->btn_id_sel = area_below; - 803a7b8: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a7ba: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803a7bc: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e - 803a7c0: 429a cmp r2, r3 - 803a7c2: f080 80c7 bcs.w 803a954 - 803a7c6: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a7c8: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e - 803a7cc: 869a strh r2, [r3, #52] ; 0x34 - 803a7ce: e0c1 b.n 803a954 + 803a724: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a726: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803a728: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e + 803a72c: 429a cmp r2, r3 + 803a72e: f080 80c7 bcs.w 803a8c0 + 803a732: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a734: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e + 803a738: 869a strh r2, [r3, #52] ; 0x34 + 803a73a: e0c1 b.n 803a8c0 } } else if(c == LV_KEY_UP) { - 803a7d0: f897 304b ldrb.w r3, [r7, #75] ; 0x4b - 803a7d4: 2b11 cmp r3, #17 - 803a7d6: f040 80bd bne.w 803a954 + 803a73c: f897 304b ldrb.w r3, [r7, #75] ; 0x4b + 803a740: 2b11 cmp r3, #17 + 803a742: f040 80bd bne.w 803a8c0 lv_coord_t col_gap = lv_obj_get_style_pad_column(obj, LV_PART_MAIN); - 803a7da: 2100 movs r1, #0 - 803a7dc: 6d78 ldr r0, [r7, #84] ; 0x54 - 803a7de: f7fe ff96 bl 803970e - 803a7e2: 4603 mov r3, r0 - 803a7e4: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 + 803a746: 2100 movs r1, #0 + 803a748: 6d78 ldr r0, [r7, #84] ; 0x54 + 803a74a: f7fe ff96 bl 803967a + 803a74e: 4603 mov r3, r0 + 803a750: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 /*Find the area below the current*/ if(btnm->btn_id_sel == LV_BTNMATRIX_BTN_NONE) { - 803a7e8: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a7ea: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a7ec: f64f 72ff movw r2, #65535 ; 0xffff - 803a7f0: 4293 cmp r3, r2 - 803a7f2: d12d bne.n 803a850 + 803a754: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a756: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a758: f64f 72ff movw r2, #65535 ; 0xffff + 803a75c: 4293 cmp r3, r2 + 803a75e: d12d bne.n 803a7bc btnm->btn_id_sel = 0; - 803a7f4: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a7f6: 2200 movs r2, #0 - 803a7f8: 869a strh r2, [r3, #52] ; 0x34 + 803a760: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a762: 2200 movs r2, #0 + 803a764: 869a strh r2, [r3, #52] ; 0x34 while(button_is_hidden(btnm->ctrl_bits[btnm->btn_id_sel]) || button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel])) { - 803a7fa: e00e b.n 803a81a + 803a766: e00e b.n 803a786 btnm->btn_id_sel++; - 803a7fc: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a7fe: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a800: 3301 adds r3, #1 - 803a802: b29a uxth r2, r3 - 803a804: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a806: 869a strh r2, [r3, #52] ; 0x34 + 803a768: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a76a: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a76c: 3301 adds r3, #1 + 803a76e: b29a uxth r2, r3 + 803a770: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a772: 869a strh r2, [r3, #52] ; 0x34 if(btnm->btn_id_sel >= btnm->btn_cnt) btnm->btn_id_sel = 0; - 803a808: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a80a: 8e9a ldrh r2, [r3, #52] ; 0x34 - 803a80c: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a80e: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803a810: 429a cmp r2, r3 - 803a812: d302 bcc.n 803a81a - 803a814: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a816: 2200 movs r2, #0 - 803a818: 869a strh r2, [r3, #52] ; 0x34 + 803a774: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a776: 8e9a ldrh r2, [r3, #52] ; 0x34 + 803a778: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a77a: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803a77c: 429a cmp r2, r3 + 803a77e: d302 bcc.n 803a786 + 803a780: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a782: 2200 movs r2, #0 + 803a784: 869a strh r2, [r3, #52] ; 0x34 while(button_is_hidden(btnm->ctrl_bits[btnm->btn_id_sel]) || button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel])) { - 803a81a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a81c: 6ada ldr r2, [r3, #44] ; 0x2c - 803a81e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a820: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a822: 005b lsls r3, r3, #1 - 803a824: 4413 add r3, r2 - 803a826: 881b ldrh r3, [r3, #0] - 803a828: 4618 mov r0, r3 - 803a82a: f000 fce2 bl 803b1f2 - 803a82e: 4603 mov r3, r0 - 803a830: 2b00 cmp r3, #0 - 803a832: d1e3 bne.n 803a7fc - 803a834: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a836: 6ada ldr r2, [r3, #44] ; 0x2c - 803a838: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a83a: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a83c: 005b lsls r3, r3, #1 - 803a83e: 4413 add r3, r2 - 803a840: 881b ldrh r3, [r3, #0] - 803a842: 4618 mov r0, r3 - 803a844: f000 fd0e bl 803b264 - 803a848: 4603 mov r3, r0 - 803a84a: 2b00 cmp r3, #0 - 803a84c: d1d6 bne.n 803a7fc - 803a84e: e081 b.n 803a954 + 803a786: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a788: 6ada ldr r2, [r3, #44] ; 0x2c + 803a78a: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a78c: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a78e: 005b lsls r3, r3, #1 + 803a790: 4413 add r3, r2 + 803a792: 881b ldrh r3, [r3, #0] + 803a794: 4618 mov r0, r3 + 803a796: f000 fce2 bl 803b15e + 803a79a: 4603 mov r3, r0 + 803a79c: 2b00 cmp r3, #0 + 803a79e: d1e3 bne.n 803a768 + 803a7a0: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a7a2: 6ada ldr r2, [r3, #44] ; 0x2c + 803a7a4: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a7a6: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a7a8: 005b lsls r3, r3, #1 + 803a7aa: 4413 add r3, r2 + 803a7ac: 881b ldrh r3, [r3, #0] + 803a7ae: 4618 mov r0, r3 + 803a7b0: f000 fd0e bl 803b1d0 + 803a7b4: 4603 mov r3, r0 + 803a7b6: 2b00 cmp r3, #0 + 803a7b8: d1d6 bne.n 803a768 + 803a7ba: e081 b.n 803a8c0 } } else { int16_t area_above; lv_coord_t pr_center = btnm->button_areas[btnm->btn_id_sel].x1 + (lv_area_get_width(&btnm->button_areas[btnm->btn_id_sel]) >> 1); - 803a850: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a852: 6a9a ldr r2, [r3, #40] ; 0x28 - 803a854: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a856: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a858: 00db lsls r3, r3, #3 - 803a85a: 4413 add r3, r2 - 803a85c: f9b3 3000 ldrsh.w r3, [r3] - 803a860: b29c uxth r4, r3 - 803a862: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a864: 6a9a ldr r2, [r3, #40] ; 0x28 - 803a866: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a868: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a86a: 00db lsls r3, r3, #3 - 803a86c: 4413 add r3, r2 - 803a86e: 4618 mov r0, r3 - 803a870: f7fe fec2 bl 80395f8 - 803a874: 4603 mov r3, r0 - 803a876: 105b asrs r3, r3, #1 - 803a878: b21b sxth r3, r3 - 803a87a: b29b uxth r3, r3 - 803a87c: 4423 add r3, r4 - 803a87e: b29b uxth r3, r3 + 803a7bc: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a7be: 6a9a ldr r2, [r3, #40] ; 0x28 + 803a7c0: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a7c2: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a7c4: 00db lsls r3, r3, #3 + 803a7c6: 4413 add r3, r2 + 803a7c8: f9b3 3000 ldrsh.w r3, [r3] + 803a7cc: b29c uxth r4, r3 + 803a7ce: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a7d0: 6a9a ldr r2, [r3, #40] ; 0x28 + 803a7d2: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a7d4: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a7d6: 00db lsls r3, r3, #3 + 803a7d8: 4413 add r3, r2 + 803a7da: 4618 mov r0, r3 + 803a7dc: f7fe fec2 bl 8039564 + 803a7e0: 4603 mov r3, r0 + 803a7e2: 105b asrs r3, r3, #1 + 803a7e4: b21b sxth r3, r3 + 803a7e6: b29b uxth r3, r3 + 803a7e8: 4423 add r3, r4 + 803a7ea: b29b uxth r3, r3 lv_coord_t pr_center = - 803a880: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 803a7ec: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 for(area_above = btnm->btn_id_sel; area_above >= 0; area_above--) { - 803a884: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a886: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a888: f8a7 305c strh.w r3, [r7, #92] ; 0x5c - 803a88c: e054 b.n 803a938 + 803a7f0: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a7f2: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a7f4: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 803a7f8: e054 b.n 803a8a4 if(btnm->button_areas[area_above].y1 < btnm->button_areas[btnm->btn_id_sel].y1 && - 803a88e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a890: 6a9a ldr r2, [r3, #40] ; 0x28 - 803a892: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c - 803a896: 00db lsls r3, r3, #3 - 803a898: 4413 add r3, r2 - 803a89a: f9b3 2002 ldrsh.w r2, [r3, #2] - 803a89e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a8a0: 6a99 ldr r1, [r3, #40] ; 0x28 - 803a8a2: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a8a4: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a8a6: 00db lsls r3, r3, #3 - 803a8a8: 440b add r3, r1 - 803a8aa: f9b3 3002 ldrsh.w r3, [r3, #2] - 803a8ae: 429a cmp r2, r3 - 803a8b0: da3b bge.n 803a92a + 803a7fa: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a7fc: 6a9a ldr r2, [r3, #40] ; 0x28 + 803a7fe: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c + 803a802: 00db lsls r3, r3, #3 + 803a804: 4413 add r3, r2 + 803a806: f9b3 2002 ldrsh.w r2, [r3, #2] + 803a80a: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a80c: 6a99 ldr r1, [r3, #40] ; 0x28 + 803a80e: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a810: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a812: 00db lsls r3, r3, #3 + 803a814: 440b add r3, r1 + 803a816: f9b3 3002 ldrsh.w r3, [r3, #2] + 803a81a: 429a cmp r2, r3 + 803a81c: da3b bge.n 803a896 pr_center >= btnm->button_areas[area_above].x1 - col_gap && - 803a8b2: f9b7 2046 ldrsh.w r2, [r7, #70] ; 0x46 - 803a8b6: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a8b8: 6a99 ldr r1, [r3, #40] ; 0x28 - 803a8ba: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c - 803a8be: 00db lsls r3, r3, #3 - 803a8c0: 440b add r3, r1 - 803a8c2: f9b3 3000 ldrsh.w r3, [r3] - 803a8c6: 4619 mov r1, r3 - 803a8c8: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 - 803a8cc: 1acb subs r3, r1, r3 + 803a81e: f9b7 2046 ldrsh.w r2, [r7, #70] ; 0x46 + 803a822: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a824: 6a99 ldr r1, [r3, #40] ; 0x28 + 803a826: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c + 803a82a: 00db lsls r3, r3, #3 + 803a82c: 440b add r3, r1 + 803a82e: f9b3 3000 ldrsh.w r3, [r3] + 803a832: 4619 mov r1, r3 + 803a834: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 + 803a838: 1acb subs r3, r1, r3 if(btnm->button_areas[area_above].y1 < btnm->button_areas[btnm->btn_id_sel].y1 && - 803a8ce: 429a cmp r2, r3 - 803a8d0: db2b blt.n 803a92a + 803a83a: 429a cmp r2, r3 + 803a83c: db2b blt.n 803a896 pr_center <= btnm->button_areas[area_above].x2 && - 803a8d2: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a8d4: 6a9a ldr r2, [r3, #40] ; 0x28 - 803a8d6: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c - 803a8da: 00db lsls r3, r3, #3 - 803a8dc: 4413 add r3, r2 - 803a8de: f9b3 3004 ldrsh.w r3, [r3, #4] + 803a83e: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a840: 6a9a ldr r2, [r3, #40] ; 0x28 + 803a842: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c + 803a846: 00db lsls r3, r3, #3 + 803a848: 4413 add r3, r2 + 803a84a: f9b3 3004 ldrsh.w r3, [r3, #4] pr_center >= btnm->button_areas[area_above].x1 - col_gap && - 803a8e2: f9b7 2046 ldrsh.w r2, [r7, #70] ; 0x46 - 803a8e6: 429a cmp r2, r3 - 803a8e8: dc1f bgt.n 803a92a + 803a84e: f9b7 2046 ldrsh.w r2, [r7, #70] ; 0x46 + 803a852: 429a cmp r2, r3 + 803a854: dc1f bgt.n 803a896 button_is_inactive(btnm->ctrl_bits[area_above]) == false && - 803a8ea: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a8ec: 6ada ldr r2, [r3, #44] ; 0x2c - 803a8ee: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c - 803a8f2: 005b lsls r3, r3, #1 - 803a8f4: 4413 add r3, r2 - 803a8f6: 881b ldrh r3, [r3, #0] - 803a8f8: 4618 mov r0, r3 - 803a8fa: f000 fcb3 bl 803b264 - 803a8fe: 4603 mov r3, r0 - 803a900: f083 0301 eor.w r3, r3, #1 - 803a904: b2db uxtb r3, r3 + 803a856: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a858: 6ada ldr r2, [r3, #44] ; 0x2c + 803a85a: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c + 803a85e: 005b lsls r3, r3, #1 + 803a860: 4413 add r3, r2 + 803a862: 881b ldrh r3, [r3, #0] + 803a864: 4618 mov r0, r3 + 803a866: f000 fcb3 bl 803b1d0 + 803a86a: 4603 mov r3, r0 + 803a86c: f083 0301 eor.w r3, r3, #1 + 803a870: b2db uxtb r3, r3 pr_center <= btnm->button_areas[area_above].x2 && - 803a906: 2b00 cmp r3, #0 - 803a908: d00f beq.n 803a92a + 803a872: 2b00 cmp r3, #0 + 803a874: d00f beq.n 803a896 button_is_hidden(btnm->ctrl_bits[area_above]) == false) { - 803a90a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a90c: 6ada ldr r2, [r3, #44] ; 0x2c - 803a90e: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c - 803a912: 005b lsls r3, r3, #1 - 803a914: 4413 add r3, r2 - 803a916: 881b ldrh r3, [r3, #0] - 803a918: 4618 mov r0, r3 - 803a91a: f000 fc6a bl 803b1f2 - 803a91e: 4603 mov r3, r0 - 803a920: f083 0301 eor.w r3, r3, #1 - 803a924: b2db uxtb r3, r3 + 803a876: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a878: 6ada ldr r2, [r3, #44] ; 0x2c + 803a87a: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c + 803a87e: 005b lsls r3, r3, #1 + 803a880: 4413 add r3, r2 + 803a882: 881b ldrh r3, [r3, #0] + 803a884: 4618 mov r0, r3 + 803a886: f000 fc6a bl 803b15e + 803a88a: 4603 mov r3, r0 + 803a88c: f083 0301 eor.w r3, r3, #1 + 803a890: b2db uxtb r3, r3 button_is_inactive(btnm->ctrl_bits[area_above]) == false && - 803a926: 2b00 cmp r3, #0 - 803a928: d10b bne.n 803a942 + 803a892: 2b00 cmp r3, #0 + 803a894: d10b bne.n 803a8ae for(area_above = btnm->btn_id_sel; area_above >= 0; area_above--) { - 803a92a: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c - 803a92e: b29b uxth r3, r3 - 803a930: 3b01 subs r3, #1 - 803a932: b29b uxth r3, r3 - 803a934: f8a7 305c strh.w r3, [r7, #92] ; 0x5c - 803a938: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c - 803a93c: 2b00 cmp r3, #0 - 803a93e: daa6 bge.n 803a88e - 803a940: e000 b.n 803a944 + 803a896: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c + 803a89a: b29b uxth r3, r3 + 803a89c: 3b01 subs r3, #1 + 803a89e: b29b uxth r3, r3 + 803a8a0: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 803a8a4: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c + 803a8a8: 2b00 cmp r3, #0 + 803a8aa: daa6 bge.n 803a7fa + 803a8ac: e000 b.n 803a8b0 break; - 803a942: bf00 nop + 803a8ae: bf00 nop } } if(area_above >= 0) btnm->btn_id_sel = area_above; - 803a944: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c - 803a948: 2b00 cmp r3, #0 - 803a94a: db03 blt.n 803a954 - 803a94c: f8b7 205c ldrh.w r2, [r7, #92] ; 0x5c - 803a950: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a952: 869a strh r2, [r3, #52] ; 0x34 + 803a8b0: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c + 803a8b4: 2b00 cmp r3, #0 + 803a8b6: db03 blt.n 803a8c0 + 803a8b8: f8b7 205c ldrh.w r2, [r7, #92] ; 0x5c + 803a8bc: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a8be: 869a strh r2, [r3, #52] ; 0x34 } } invalidate_button_area(obj, btnm->btn_id_sel); - 803a954: 6d3b ldr r3, [r7, #80] ; 0x50 - 803a956: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803a958: 4619 mov r1, r3 - 803a95a: 6d78 ldr r0, [r7, #84] ; 0x54 - 803a95c: f000 fe44 bl 803b5e8 - 803a960: e00c b.n 803a97c + 803a8c0: 6d3b ldr r3, [r7, #80] ; 0x50 + 803a8c2: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803a8c4: 4619 mov r1, r3 + 803a8c6: 6d78 ldr r0, [r7, #84] ; 0x54 + 803a8c8: f000 fe44 bl 803b554 + 803a8cc: e00c b.n 803a8e8 } else if(code == LV_EVENT_DRAW_MAIN) { - 803a962: f897 305a ldrb.w r3, [r7, #90] ; 0x5a - 803a966: 2b15 cmp r3, #21 - 803a968: d108 bne.n 803a97c + 803a8ce: f897 305a ldrb.w r3, [r7, #90] ; 0x5a + 803a8d2: 2b15 cmp r3, #21 + 803a8d4: d108 bne.n 803a8e8 draw_main(e); - 803a96a: 6838 ldr r0, [r7, #0] - 803a96c: f000 f80a bl 803a984 - 803a970: e004 b.n 803a97c + 803a8d6: 6838 ldr r0, [r7, #0] + 803a8d8: f000 f80a bl 803a8f0 + 803a8dc: e004 b.n 803a8e8 if(res != LV_RES_OK) return; - 803a972: bf00 nop - 803a974: e002 b.n 803a97c + 803a8de: bf00 nop + 803a8e0: e002 b.n 803a8e8 if(indev_type == LV_INDEV_TYPE_ENCODER || indev_type == LV_INDEV_TYPE_KEYPAD) return; - 803a976: bf00 nop - 803a978: e000 b.n 803a97c + 803a8e2: bf00 nop + 803a8e4: e000 b.n 803a8e8 if(res != LV_RES_OK) return; - 803a97a: bf00 nop + 803a8e6: bf00 nop } } - 803a97c: 376c adds r7, #108 ; 0x6c - 803a97e: 46bd mov sp, r7 - 803a980: bd90 pop {r4, r7, pc} - 803a982: bf00 nop + 803a8e8: 376c adds r7, #108 ; 0x6c + 803a8ea: 46bd mov sp, r7 + 803a8ec: bd90 pop {r4, r7, pc} + 803a8ee: bf00 nop -0803a984 : +0803a8f0 : static void draw_main(lv_event_t * e) { - 803a984: b580 push {r7, lr} - 803a986: b0d6 sub sp, #344 ; 0x158 - 803a988: af04 add r7, sp, #16 - 803a98a: f507 73a4 add.w r3, r7, #328 ; 0x148 - 803a98e: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 - 803a992: 6018 str r0, [r3, #0] + 803a8f0: b580 push {r7, lr} + 803a8f2: b0d6 sub sp, #344 ; 0x158 + 803a8f4: af04 add r7, sp, #16 + 803a8f6: f507 73a4 add.w r3, r7, #328 ; 0x148 + 803a8fa: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 + 803a8fe: 6018 str r0, [r3, #0] lv_obj_t * obj = lv_event_get_target(e); - 803a994: f507 73a4 add.w r3, r7, #328 ; 0x148 - 803a998: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 - 803a99c: 6818 ldr r0, [r3, #0] - 803a99e: f7c7 fdef bl 8002580 - 803a9a2: f8c7 013c str.w r0, [r7, #316] ; 0x13c + 803a900: f507 73a4 add.w r3, r7, #328 ; 0x148 + 803a904: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 + 803a908: 6818 ldr r0, [r3, #0] + 803a90a: f7c7 fe03 bl 8002514 + 803a90e: f8c7 013c str.w r0, [r7, #316] ; 0x13c lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj; - 803a9a6: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c - 803a9aa: f8c7 3138 str.w r3, [r7, #312] ; 0x138 + 803a912: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c + 803a916: f8c7 3138 str.w r3, [r7, #312] ; 0x138 if(btnm->btn_cnt == 0) return; - 803a9ae: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 - 803a9b2: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803a9b4: 2b00 cmp r3, #0 - 803a9b6: f000 8377 beq.w 803b0a8 + 803a91a: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 + 803a91e: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803a920: 2b00 cmp r3, #0 + 803a922: f000 8377 beq.w 803b014 lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 803a9ba: f507 73a4 add.w r3, r7, #328 ; 0x148 - 803a9be: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 - 803a9c2: 6818 ldr r0, [r3, #0] - 803a9c4: f7c7 fef2 bl 80027ac - 803a9c8: f8c7 0134 str.w r0, [r7, #308] ; 0x134 + 803a926: f507 73a4 add.w r3, r7, #328 ; 0x148 + 803a92a: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 + 803a92e: 6818 ldr r0, [r3, #0] + 803a930: f7c7 ff06 bl 8002740 + 803a934: f8c7 0134 str.w r0, [r7, #308] ; 0x134 obj->skip_trans = 1; - 803a9cc: f8d7 213c ldr.w r2, [r7, #316] ; 0x13c - 803a9d0: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 803a9d4: f043 0304 orr.w r3, r3, #4 - 803a9d8: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 803a938: f8d7 213c ldr.w r2, [r7, #316] ; 0x13c + 803a93c: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 803a940: f043 0304 orr.w r3, r3, #4 + 803a944: f882 3022 strb.w r3, [r2, #34] ; 0x22 lv_area_t area_obj; lv_obj_get_coords(obj, &area_obj); - 803a9dc: f507 7388 add.w r3, r7, #272 ; 0x110 - 803a9e0: 4619 mov r1, r3 - 803a9e2: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c - 803a9e6: f7cf fb11 bl 800a00c + 803a948: f507 7388 add.w r3, r7, #272 ; 0x110 + 803a94c: 4619 mov r1, r3 + 803a94e: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c + 803a952: f7cf fb25 bl 8009fa0 lv_area_t btn_area; uint16_t btn_i = 0; - 803a9ea: 2300 movs r3, #0 - 803a9ec: f8a7 3146 strh.w r3, [r7, #326] ; 0x146 + 803a956: 2300 movs r3, #0 + 803a958: f8a7 3146 strh.w r3, [r7, #326] ; 0x146 uint16_t txt_i = 0; - 803a9f0: 2300 movs r3, #0 - 803a9f2: f8a7 3144 strh.w r3, [r7, #324] ; 0x144 + 803a95c: 2300 movs r3, #0 + 803a95e: f8a7 3144 strh.w r3, [r7, #324] ; 0x144 lv_draw_label_dsc_t draw_label_dsc_act; lv_draw_rect_dsc_t draw_rect_dsc_def; lv_draw_label_dsc_t draw_label_dsc_def; lv_state_t state_ori = obj->state; - 803a9f6: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c - 803a9fa: 8c1b ldrh r3, [r3, #32] - 803a9fc: f8a7 3132 strh.w r3, [r7, #306] ; 0x132 + 803a962: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c + 803a966: 8c1b ldrh r3, [r3, #32] + 803a968: f8a7 3132 strh.w r3, [r7, #306] ; 0x132 obj->state = LV_STATE_DEFAULT; - 803aa00: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c - 803aa04: 2200 movs r2, #0 - 803aa06: 841a strh r2, [r3, #32] + 803a96c: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c + 803a970: 2200 movs r2, #0 + 803a972: 841a strh r2, [r3, #32] obj->skip_trans = 1; - 803aa08: f8d7 213c ldr.w r2, [r7, #316] ; 0x13c - 803aa0c: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 803aa10: f043 0304 orr.w r3, r3, #4 - 803aa14: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 803a974: f8d7 213c ldr.w r2, [r7, #316] ; 0x13c + 803a978: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 803a97c: f043 0304 orr.w r3, r3, #4 + 803a980: f882 3022 strb.w r3, [r2, #34] ; 0x22 lv_draw_rect_dsc_init(&draw_rect_dsc_def); - 803aa18: f107 0378 add.w r3, r7, #120 ; 0x78 - 803aa1c: 4618 mov r0, r3 - 803aa1e: f7da fee9 bl 80157f4 + 803a984: f107 0378 add.w r3, r7, #120 ; 0x78 + 803a988: 4618 mov r0, r3 + 803a98a: f7da fee9 bl 8015760 lv_draw_label_dsc_init(&draw_label_dsc_def); - 803aa22: f107 0358 add.w r3, r7, #88 ; 0x58 - 803aa26: 4618 mov r0, r3 - 803aa28: f7d7 fbb0 bl 801218c + 803a98e: f107 0358 add.w r3, r7, #88 ; 0x58 + 803a992: 4618 mov r0, r3 + 803a994: f7d7 fbb0 bl 80120f8 lv_obj_init_draw_rect_dsc(obj, LV_PART_ITEMS, &draw_rect_dsc_def); - 803aa2c: f107 0378 add.w r3, r7, #120 ; 0x78 - 803aa30: 461a mov r2, r3 - 803aa32: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 803aa36: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c - 803aa3a: f7cd fdc4 bl 80085c6 + 803a998: f107 0378 add.w r3, r7, #120 ; 0x78 + 803a99c: 461a mov r2, r3 + 803a99e: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 803a9a2: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c + 803a9a6: f7cd fdd8 bl 800855a lv_obj_init_draw_label_dsc(obj, LV_PART_ITEMS, &draw_label_dsc_def); - 803aa3e: f107 0358 add.w r3, r7, #88 ; 0x58 - 803aa42: 461a mov r2, r3 - 803aa44: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 803aa48: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c - 803aa4c: f7cd ffa9 bl 80089a2 + 803a9aa: f107 0358 add.w r3, r7, #88 ; 0x58 + 803a9ae: 461a mov r2, r3 + 803a9b0: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 803a9b4: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c + 803a9b8: f7cd ffbd bl 8008936 obj->skip_trans = 0; - 803aa50: f8d7 213c ldr.w r2, [r7, #316] ; 0x13c - 803aa54: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 803aa58: f36f 0382 bfc r3, #2, #1 - 803aa5c: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 803a9bc: f8d7 213c ldr.w r2, [r7, #316] ; 0x13c + 803a9c0: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 803a9c4: f36f 0382 bfc r3, #2, #1 + 803a9c8: f882 3022 strb.w r3, [r2, #34] ; 0x22 obj->state = state_ori; - 803aa60: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c - 803aa64: f8b7 2132 ldrh.w r2, [r7, #306] ; 0x132 - 803aa68: 841a strh r2, [r3, #32] + 803a9cc: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c + 803a9d0: f8b7 2132 ldrh.w r2, [r7, #306] ; 0x132 + 803a9d4: 841a strh r2, [r3, #32] lv_coord_t ptop = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 803aa6a: 2100 movs r1, #0 - 803aa6c: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c - 803aa70: f7fe fdee bl 8039650 - 803aa74: 4603 mov r3, r0 - 803aa76: f8a7 3130 strh.w r3, [r7, #304] ; 0x130 + 803a9d6: 2100 movs r1, #0 + 803a9d8: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c + 803a9dc: f7fe fdee bl 80395bc + 803a9e0: 4603 mov r3, r0 + 803a9e2: f8a7 3130 strh.w r3, [r7, #304] ; 0x130 lv_coord_t pbottom = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN); - 803aa7a: 2100 movs r1, #0 - 803aa7c: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c - 803aa80: f7fe fdf9 bl 8039676 - 803aa84: 4603 mov r3, r0 - 803aa86: f8a7 312e strh.w r3, [r7, #302] ; 0x12e + 803a9e6: 2100 movs r1, #0 + 803a9e8: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c + 803a9ec: f7fe fdf9 bl 80395e2 + 803a9f0: 4603 mov r3, r0 + 803a9f2: f8a7 312e strh.w r3, [r7, #302] ; 0x12e lv_coord_t pleft = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 803aa8a: 2100 movs r1, #0 - 803aa8c: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c - 803aa90: f7fe fe04 bl 803969c - 803aa94: 4603 mov r3, r0 - 803aa96: f8a7 312c strh.w r3, [r7, #300] ; 0x12c + 803a9f6: 2100 movs r1, #0 + 803a9f8: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c + 803a9fc: f7fe fe04 bl 8039608 + 803aa00: 4603 mov r3, r0 + 803aa02: f8a7 312c strh.w r3, [r7, #300] ; 0x12c lv_coord_t pright = lv_obj_get_style_pad_right(obj, LV_PART_MAIN); - 803aa9a: 2100 movs r1, #0 - 803aa9c: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c - 803aaa0: f7fe fe0f bl 80396c2 - 803aaa4: 4603 mov r3, r0 - 803aaa6: f8a7 312a strh.w r3, [r7, #298] ; 0x12a + 803aa06: 2100 movs r1, #0 + 803aa08: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c + 803aa0c: f7fe fe0f bl 803962e + 803aa10: 4603 mov r3, r0 + 803aa12: f8a7 312a strh.w r3, [r7, #298] ; 0x12a const size_t txt_ap_size = 256 ; char * txt_ap = lv_mem_buf_get(txt_ap_size); #endif lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 803aaaa: f107 0310 add.w r3, r7, #16 - 803aaae: f8d7 1134 ldr.w r1, [r7, #308] ; 0x134 - 803aab2: 4618 mov r0, r3 - 803aab4: f7ce f9db bl 8008e6e + 803aa16: f107 0310 add.w r3, r7, #16 + 803aa1a: f8d7 1134 ldr.w r1, [r7, #308] ; 0x134 + 803aa1e: 4618 mov r0, r3 + 803aa20: f7ce f9ef bl 8008e02 part_draw_dsc.part = LV_PART_ITEMS; - 803aab8: f507 73a4 add.w r3, r7, #328 ; 0x148 - 803aabc: f5a3 739c sub.w r3, r3, #312 ; 0x138 - 803aac0: f44f 22a0 mov.w r2, #327680 ; 0x50000 - 803aac4: 635a str r2, [r3, #52] ; 0x34 + 803aa24: f507 73a4 add.w r3, r7, #328 ; 0x148 + 803aa28: f5a3 739c sub.w r3, r3, #312 ; 0x138 + 803aa2c: f44f 22a0 mov.w r2, #327680 ; 0x50000 + 803aa30: 635a str r2, [r3, #52] ; 0x34 part_draw_dsc.class_p = MY_CLASS; - 803aac6: f507 73a4 add.w r3, r7, #328 ; 0x148 - 803aaca: f5a3 739c sub.w r3, r3, #312 ; 0x138 - 803aace: 4a9f ldr r2, [pc, #636] ; (803ad4c ) - 803aad0: 605a str r2, [r3, #4] + 803aa32: f507 73a4 add.w r3, r7, #328 ; 0x148 + 803aa36: f5a3 739c sub.w r3, r3, #312 ; 0x138 + 803aa3a: 4a9f ldr r2, [pc, #636] ; (803acb8 ) + 803aa3c: 605a str r2, [r3, #4] part_draw_dsc.type = LV_BTNMATRIX_DRAW_PART_BTN; - 803aad2: f507 73a4 add.w r3, r7, #328 ; 0x148 - 803aad6: f5a3 739c sub.w r3, r3, #312 ; 0x138 - 803aada: 2200 movs r2, #0 - 803aadc: 609a str r2, [r3, #8] + 803aa3e: f507 73a4 add.w r3, r7, #328 ; 0x148 + 803aa42: f5a3 739c sub.w r3, r3, #312 ; 0x138 + 803aa46: 2200 movs r2, #0 + 803aa48: 609a str r2, [r3, #8] part_draw_dsc.rect_dsc = &draw_rect_dsc_act; - 803aade: f507 73a4 add.w r3, r7, #328 ; 0x148 - 803aae2: f5a3 739c sub.w r3, r3, #312 ; 0x138 - 803aae6: f107 02d0 add.w r2, r7, #208 ; 0xd0 - 803aaea: 611a str r2, [r3, #16] + 803aa4a: f507 73a4 add.w r3, r7, #328 ; 0x148 + 803aa4e: f5a3 739c sub.w r3, r3, #312 ; 0x138 + 803aa52: f107 02d0 add.w r2, r7, #208 ; 0xd0 + 803aa56: 611a str r2, [r3, #16] part_draw_dsc.label_dsc = &draw_label_dsc_act; - 803aaec: f507 73a4 add.w r3, r7, #328 ; 0x148 - 803aaf0: f5a3 739c sub.w r3, r3, #312 ; 0x138 - 803aaf4: f107 02b0 add.w r2, r7, #176 ; 0xb0 - 803aaf8: 615a str r2, [r3, #20] + 803aa58: f507 73a4 add.w r3, r7, #328 ; 0x148 + 803aa5c: f5a3 739c sub.w r3, r3, #312 ; 0x138 + 803aa60: f107 02b0 add.w r2, r7, #176 ; 0xb0 + 803aa64: 615a str r2, [r3, #20] for(btn_i = 0; btn_i < btnm->btn_cnt; btn_i++, txt_i++) { - 803aafa: 2300 movs r3, #0 - 803aafc: f8a7 3146 strh.w r3, [r7, #326] ; 0x146 - 803ab00: e2c1 b.n 803b086 + 803aa66: 2300 movs r3, #0 + 803aa68: f8a7 3146 strh.w r3, [r7, #326] ; 0x146 + 803aa6c: e2c1 b.n 803aff2 /*Search the next valid text in the map*/ while(strcmp(btnm->map_p[txt_i], "\n") == 0) { txt_i++; - 803ab02: f8b7 3144 ldrh.w r3, [r7, #324] ; 0x144 - 803ab06: 3301 adds r3, #1 - 803ab08: f8a7 3144 strh.w r3, [r7, #324] ; 0x144 + 803aa6e: f8b7 3144 ldrh.w r3, [r7, #324] ; 0x144 + 803aa72: 3301 adds r3, #1 + 803aa74: f8a7 3144 strh.w r3, [r7, #324] ; 0x144 while(strcmp(btnm->map_p[txt_i], "\n") == 0) { - 803ab0c: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 - 803ab10: 6a5a ldr r2, [r3, #36] ; 0x24 - 803ab12: f8b7 3144 ldrh.w r3, [r7, #324] ; 0x144 - 803ab16: 009b lsls r3, r3, #2 - 803ab18: 4413 add r3, r2 - 803ab1a: 681b ldr r3, [r3, #0] - 803ab1c: 498c ldr r1, [pc, #560] ; (803ad50 ) - 803ab1e: 4618 mov r0, r3 - 803ab20: f7c5 fb80 bl 8000224 - 803ab24: 4603 mov r3, r0 - 803ab26: 2b00 cmp r3, #0 - 803ab28: d0eb beq.n 803ab02 + 803aa78: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 + 803aa7c: 6a5a ldr r2, [r3, #36] ; 0x24 + 803aa7e: f8b7 3144 ldrh.w r3, [r7, #324] ; 0x144 + 803aa82: 009b lsls r3, r3, #2 + 803aa84: 4413 add r3, r2 + 803aa86: 681b ldr r3, [r3, #0] + 803aa88: 498c ldr r1, [pc, #560] ; (803acbc ) + 803aa8a: 4618 mov r0, r3 + 803aa8c: f7c5 fbca bl 8000224 + 803aa90: 4603 mov r3, r0 + 803aa92: 2b00 cmp r3, #0 + 803aa94: d0eb beq.n 803aa6e } /*Skip hidden buttons*/ if(button_is_hidden(btnm->ctrl_bits[btn_i])) continue; - 803ab2a: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 - 803ab2e: 6ada ldr r2, [r3, #44] ; 0x2c - 803ab30: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 - 803ab34: 005b lsls r3, r3, #1 - 803ab36: 4413 add r3, r2 - 803ab38: 881b ldrh r3, [r3, #0] - 803ab3a: 4618 mov r0, r3 - 803ab3c: f000 fb59 bl 803b1f2 - 803ab40: 4603 mov r3, r0 - 803ab42: 2b00 cmp r3, #0 - 803ab44: f040 8294 bne.w 803b070 + 803aa96: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 + 803aa9a: 6ada ldr r2, [r3, #44] ; 0x2c + 803aa9c: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 + 803aaa0: 005b lsls r3, r3, #1 + 803aaa2: 4413 add r3, r2 + 803aaa4: 881b ldrh r3, [r3, #0] + 803aaa6: 4618 mov r0, r3 + 803aaa8: f000 fb59 bl 803b15e + 803aaac: 4603 mov r3, r0 + 803aaae: 2b00 cmp r3, #0 + 803aab0: f040 8294 bne.w 803afdc /*Get the state of the button*/ lv_state_t btn_state = LV_STATE_DEFAULT; - 803ab48: 2300 movs r3, #0 - 803ab4a: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 + 803aab4: 2300 movs r3, #0 + 803aab6: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 if(button_get_checked(btnm->ctrl_bits[btn_i])) btn_state |= LV_STATE_CHECKED; - 803ab4e: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 - 803ab52: 6ada ldr r2, [r3, #44] ; 0x2c - 803ab54: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 - 803ab58: 005b lsls r3, r3, #1 - 803ab5a: 4413 add r3, r2 - 803ab5c: 881b ldrh r3, [r3, #0] - 803ab5e: 4618 mov r0, r3 - 803ab60: f000 fbcc bl 803b2fc - 803ab64: 4603 mov r3, r0 - 803ab66: 2b00 cmp r3, #0 - 803ab68: d005 beq.n 803ab76 - 803ab6a: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 - 803ab6e: f043 0301 orr.w r3, r3, #1 - 803ab72: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 + 803aaba: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 + 803aabe: 6ada ldr r2, [r3, #44] ; 0x2c + 803aac0: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 + 803aac4: 005b lsls r3, r3, #1 + 803aac6: 4413 add r3, r2 + 803aac8: 881b ldrh r3, [r3, #0] + 803aaca: 4618 mov r0, r3 + 803aacc: f000 fbcc bl 803b268 + 803aad0: 4603 mov r3, r0 + 803aad2: 2b00 cmp r3, #0 + 803aad4: d005 beq.n 803aae2 + 803aad6: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 + 803aada: f043 0301 orr.w r3, r3, #1 + 803aade: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 if(button_is_inactive(btnm->ctrl_bits[btn_i])) btn_state |= LV_STATE_DISABLED; - 803ab76: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 - 803ab7a: 6ada ldr r2, [r3, #44] ; 0x2c - 803ab7c: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 - 803ab80: 005b lsls r3, r3, #1 - 803ab82: 4413 add r3, r2 - 803ab84: 881b ldrh r3, [r3, #0] - 803ab86: 4618 mov r0, r3 - 803ab88: f000 fb6c bl 803b264 - 803ab8c: 4603 mov r3, r0 - 803ab8e: 2b00 cmp r3, #0 - 803ab90: d006 beq.n 803aba0 - 803ab92: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 - 803ab96: f043 0380 orr.w r3, r3, #128 ; 0x80 - 803ab9a: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 - 803ab9e: e036 b.n 803ac0e + 803aae2: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 + 803aae6: 6ada ldr r2, [r3, #44] ; 0x2c + 803aae8: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 + 803aaec: 005b lsls r3, r3, #1 + 803aaee: 4413 add r3, r2 + 803aaf0: 881b ldrh r3, [r3, #0] + 803aaf2: 4618 mov r0, r3 + 803aaf4: f000 fb6c bl 803b1d0 + 803aaf8: 4603 mov r3, r0 + 803aafa: 2b00 cmp r3, #0 + 803aafc: d006 beq.n 803ab0c + 803aafe: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 + 803ab02: f043 0380 orr.w r3, r3, #128 ; 0x80 + 803ab06: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 + 803ab0a: e036 b.n 803ab7a else if(btn_i == btnm->btn_id_sel) { - 803aba0: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 - 803aba4: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803aba6: f8b7 2146 ldrh.w r2, [r7, #326] ; 0x146 - 803abaa: 429a cmp r2, r3 - 803abac: d12f bne.n 803ac0e + 803ab0c: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 + 803ab10: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803ab12: f8b7 2146 ldrh.w r2, [r7, #326] ; 0x146 + 803ab16: 429a cmp r2, r3 + 803ab18: d12f bne.n 803ab7a if(state_ori & LV_STATE_PRESSED) btn_state |= LV_STATE_PRESSED; - 803abae: f8b7 3132 ldrh.w r3, [r7, #306] ; 0x132 - 803abb2: f003 0320 and.w r3, r3, #32 - 803abb6: 2b00 cmp r3, #0 - 803abb8: d005 beq.n 803abc6 - 803abba: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 - 803abbe: f043 0320 orr.w r3, r3, #32 - 803abc2: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 + 803ab1a: f8b7 3132 ldrh.w r3, [r7, #306] ; 0x132 + 803ab1e: f003 0320 and.w r3, r3, #32 + 803ab22: 2b00 cmp r3, #0 + 803ab24: d005 beq.n 803ab32 + 803ab26: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 + 803ab2a: f043 0320 orr.w r3, r3, #32 + 803ab2e: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 if(state_ori & LV_STATE_FOCUSED) btn_state |= LV_STATE_FOCUSED; - 803abc6: f8b7 3132 ldrh.w r3, [r7, #306] ; 0x132 - 803abca: f003 0302 and.w r3, r3, #2 - 803abce: 2b00 cmp r3, #0 - 803abd0: d005 beq.n 803abde - 803abd2: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 - 803abd6: f043 0302 orr.w r3, r3, #2 - 803abda: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 + 803ab32: f8b7 3132 ldrh.w r3, [r7, #306] ; 0x132 + 803ab36: f003 0302 and.w r3, r3, #2 + 803ab3a: 2b00 cmp r3, #0 + 803ab3c: d005 beq.n 803ab4a + 803ab3e: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 + 803ab42: f043 0302 orr.w r3, r3, #2 + 803ab46: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 if(state_ori & LV_STATE_FOCUS_KEY) btn_state |= LV_STATE_FOCUS_KEY; - 803abde: f8b7 3132 ldrh.w r3, [r7, #306] ; 0x132 - 803abe2: f003 0304 and.w r3, r3, #4 - 803abe6: 2b00 cmp r3, #0 - 803abe8: d005 beq.n 803abf6 - 803abea: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 - 803abee: f043 0304 orr.w r3, r3, #4 - 803abf2: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 + 803ab4a: f8b7 3132 ldrh.w r3, [r7, #306] ; 0x132 + 803ab4e: f003 0304 and.w r3, r3, #4 + 803ab52: 2b00 cmp r3, #0 + 803ab54: d005 beq.n 803ab62 + 803ab56: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 + 803ab5a: f043 0304 orr.w r3, r3, #4 + 803ab5e: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 if(state_ori & LV_STATE_EDITED) btn_state |= LV_STATE_EDITED; - 803abf6: f8b7 3132 ldrh.w r3, [r7, #306] ; 0x132 - 803abfa: f003 0308 and.w r3, r3, #8 - 803abfe: 2b00 cmp r3, #0 - 803ac00: d005 beq.n 803ac0e - 803ac02: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 - 803ac06: f043 0308 orr.w r3, r3, #8 - 803ac0a: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 + 803ab62: f8b7 3132 ldrh.w r3, [r7, #306] ; 0x132 + 803ab66: f003 0308 and.w r3, r3, #8 + 803ab6a: 2b00 cmp r3, #0 + 803ab6c: d005 beq.n 803ab7a + 803ab6e: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 + 803ab72: f043 0308 orr.w r3, r3, #8 + 803ab76: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 } /*Get the button's area*/ lv_area_copy(&btn_area, &btnm->button_areas[btn_i]); - 803ac0e: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 - 803ac12: 6a9a ldr r2, [r3, #40] ; 0x28 - 803ac14: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 - 803ac18: 00db lsls r3, r3, #3 - 803ac1a: 441a add r2, r3 - 803ac1c: f507 7384 add.w r3, r7, #264 ; 0x108 - 803ac20: 4611 mov r1, r2 - 803ac22: 4618 mov r0, r3 - 803ac24: f7fe fcca bl 80395bc + 803ab7a: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 + 803ab7e: 6a9a ldr r2, [r3, #40] ; 0x28 + 803ab80: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 + 803ab84: 00db lsls r3, r3, #3 + 803ab86: 441a add r2, r3 + 803ab88: f507 7384 add.w r3, r7, #264 ; 0x108 + 803ab8c: 4611 mov r1, r2 + 803ab8e: 4618 mov r0, r3 + 803ab90: f7fe fcca bl 8039528 btn_area.x1 += area_obj.x1; - 803ac28: f9b7 3108 ldrsh.w r3, [r7, #264] ; 0x108 - 803ac2c: b29a uxth r2, r3 - 803ac2e: f9b7 3110 ldrsh.w r3, [r7, #272] ; 0x110 - 803ac32: b29b uxth r3, r3 - 803ac34: 4413 add r3, r2 - 803ac36: b29b uxth r3, r3 - 803ac38: b21b sxth r3, r3 - 803ac3a: f8a7 3108 strh.w r3, [r7, #264] ; 0x108 + 803ab94: f9b7 3108 ldrsh.w r3, [r7, #264] ; 0x108 + 803ab98: b29a uxth r2, r3 + 803ab9a: f9b7 3110 ldrsh.w r3, [r7, #272] ; 0x110 + 803ab9e: b29b uxth r3, r3 + 803aba0: 4413 add r3, r2 + 803aba2: b29b uxth r3, r3 + 803aba4: b21b sxth r3, r3 + 803aba6: f8a7 3108 strh.w r3, [r7, #264] ; 0x108 btn_area.y1 += area_obj.y1; - 803ac3e: f9b7 310a ldrsh.w r3, [r7, #266] ; 0x10a - 803ac42: b29a uxth r2, r3 - 803ac44: f9b7 3112 ldrsh.w r3, [r7, #274] ; 0x112 - 803ac48: b29b uxth r3, r3 - 803ac4a: 4413 add r3, r2 - 803ac4c: b29b uxth r3, r3 - 803ac4e: b21b sxth r3, r3 - 803ac50: f8a7 310a strh.w r3, [r7, #266] ; 0x10a + 803abaa: f9b7 310a ldrsh.w r3, [r7, #266] ; 0x10a + 803abae: b29a uxth r2, r3 + 803abb0: f9b7 3112 ldrsh.w r3, [r7, #274] ; 0x112 + 803abb4: b29b uxth r3, r3 + 803abb6: 4413 add r3, r2 + 803abb8: b29b uxth r3, r3 + 803abba: b21b sxth r3, r3 + 803abbc: f8a7 310a strh.w r3, [r7, #266] ; 0x10a btn_area.x2 += area_obj.x1; - 803ac54: f9b7 310c ldrsh.w r3, [r7, #268] ; 0x10c - 803ac58: b29a uxth r2, r3 - 803ac5a: f9b7 3110 ldrsh.w r3, [r7, #272] ; 0x110 - 803ac5e: b29b uxth r3, r3 - 803ac60: 4413 add r3, r2 - 803ac62: b29b uxth r3, r3 - 803ac64: b21b sxth r3, r3 - 803ac66: f8a7 310c strh.w r3, [r7, #268] ; 0x10c + 803abc0: f9b7 310c ldrsh.w r3, [r7, #268] ; 0x10c + 803abc4: b29a uxth r2, r3 + 803abc6: f9b7 3110 ldrsh.w r3, [r7, #272] ; 0x110 + 803abca: b29b uxth r3, r3 + 803abcc: 4413 add r3, r2 + 803abce: b29b uxth r3, r3 + 803abd0: b21b sxth r3, r3 + 803abd2: f8a7 310c strh.w r3, [r7, #268] ; 0x10c btn_area.y2 += area_obj.y1; - 803ac6a: f9b7 310e ldrsh.w r3, [r7, #270] ; 0x10e - 803ac6e: b29a uxth r2, r3 - 803ac70: f9b7 3112 ldrsh.w r3, [r7, #274] ; 0x112 - 803ac74: b29b uxth r3, r3 - 803ac76: 4413 add r3, r2 - 803ac78: b29b uxth r3, r3 - 803ac7a: b21b sxth r3, r3 - 803ac7c: f8a7 310e strh.w r3, [r7, #270] ; 0x10e + 803abd6: f9b7 310e ldrsh.w r3, [r7, #270] ; 0x10e + 803abda: b29a uxth r2, r3 + 803abdc: f9b7 3112 ldrsh.w r3, [r7, #274] ; 0x112 + 803abe0: b29b uxth r3, r3 + 803abe2: 4413 add r3, r2 + 803abe4: b29b uxth r3, r3 + 803abe6: b21b sxth r3, r3 + 803abe8: f8a7 310e strh.w r3, [r7, #270] ; 0x10e /*Set up the draw descriptors*/ if(btn_state == LV_STATE_DEFAULT) { - 803ac80: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 - 803ac84: 2b00 cmp r3, #0 - 803ac86: d110 bne.n 803acaa + 803abec: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 + 803abf0: 2b00 cmp r3, #0 + 803abf2: d110 bne.n 803ac16 lv_memcpy(&draw_rect_dsc_act, &draw_rect_dsc_def, sizeof(lv_draw_rect_dsc_t)); - 803ac88: f107 0178 add.w r1, r7, #120 ; 0x78 - 803ac8c: f107 03d0 add.w r3, r7, #208 ; 0xd0 - 803ac90: 2238 movs r2, #56 ; 0x38 - 803ac92: 4618 mov r0, r3 - 803ac94: f7f7 ffb8 bl 8032c08 + 803abf4: f107 0178 add.w r1, r7, #120 ; 0x78 + 803abf8: f107 03d0 add.w r3, r7, #208 ; 0xd0 + 803abfc: 2238 movs r2, #56 ; 0x38 + 803abfe: 4618 mov r0, r3 + 803ac00: f7f7 ffb8 bl 8032b74 lv_memcpy(&draw_label_dsc_act, &draw_label_dsc_def, sizeof(lv_draw_label_dsc_t)); - 803ac98: f107 0158 add.w r1, r7, #88 ; 0x58 - 803ac9c: f107 03b0 add.w r3, r7, #176 ; 0xb0 - 803aca0: 2220 movs r2, #32 - 803aca2: 4618 mov r0, r3 - 803aca4: f7f7 ffb0 bl 8032c08 - 803aca8: e035 b.n 803ad16 + 803ac04: f107 0158 add.w r1, r7, #88 ; 0x58 + 803ac08: f107 03b0 add.w r3, r7, #176 ; 0xb0 + 803ac0c: 2220 movs r2, #32 + 803ac0e: 4618 mov r0, r3 + 803ac10: f7f7 ffb0 bl 8032b74 + 803ac14: e035 b.n 803ac82 } /*In other cases get the styles directly without caching them*/ else { obj->state = btn_state; - 803acaa: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c - 803acae: f8b7 2142 ldrh.w r2, [r7, #322] ; 0x142 - 803acb2: 841a strh r2, [r3, #32] + 803ac16: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c + 803ac1a: f8b7 2142 ldrh.w r2, [r7, #322] ; 0x142 + 803ac1e: 841a strh r2, [r3, #32] obj->skip_trans = 1; - 803acb4: f8d7 213c ldr.w r2, [r7, #316] ; 0x13c - 803acb8: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 803acbc: f043 0304 orr.w r3, r3, #4 - 803acc0: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 803ac20: f8d7 213c ldr.w r2, [r7, #316] ; 0x13c + 803ac24: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 803ac28: f043 0304 orr.w r3, r3, #4 + 803ac2c: f882 3022 strb.w r3, [r2, #34] ; 0x22 lv_draw_rect_dsc_init(&draw_rect_dsc_act); - 803acc4: f107 03d0 add.w r3, r7, #208 ; 0xd0 - 803acc8: 4618 mov r0, r3 - 803acca: f7da fd93 bl 80157f4 + 803ac30: f107 03d0 add.w r3, r7, #208 ; 0xd0 + 803ac34: 4618 mov r0, r3 + 803ac36: f7da fd93 bl 8015760 lv_draw_label_dsc_init(&draw_label_dsc_act); - 803acce: f107 03b0 add.w r3, r7, #176 ; 0xb0 - 803acd2: 4618 mov r0, r3 - 803acd4: f7d7 fa5a bl 801218c + 803ac3a: f107 03b0 add.w r3, r7, #176 ; 0xb0 + 803ac3e: 4618 mov r0, r3 + 803ac40: f7d7 fa5a bl 80120f8 lv_obj_init_draw_rect_dsc(obj, LV_PART_ITEMS, &draw_rect_dsc_act); - 803acd8: f107 03d0 add.w r3, r7, #208 ; 0xd0 - 803acdc: 461a mov r2, r3 - 803acde: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 803ace2: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c - 803ace6: f7cd fc6e bl 80085c6 + 803ac44: f107 03d0 add.w r3, r7, #208 ; 0xd0 + 803ac48: 461a mov r2, r3 + 803ac4a: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 803ac4e: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c + 803ac52: f7cd fc82 bl 800855a lv_obj_init_draw_label_dsc(obj, LV_PART_ITEMS, &draw_label_dsc_act); - 803acea: f107 03b0 add.w r3, r7, #176 ; 0xb0 - 803acee: 461a mov r2, r3 - 803acf0: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 803acf4: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c - 803acf8: f7cd fe53 bl 80089a2 + 803ac56: f107 03b0 add.w r3, r7, #176 ; 0xb0 + 803ac5a: 461a mov r2, r3 + 803ac5c: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 803ac60: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c + 803ac64: f7cd fe67 bl 8008936 obj->state = state_ori; - 803acfc: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c - 803ad00: f8b7 2132 ldrh.w r2, [r7, #306] ; 0x132 - 803ad04: 841a strh r2, [r3, #32] + 803ac68: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c + 803ac6c: f8b7 2132 ldrh.w r2, [r7, #306] ; 0x132 + 803ac70: 841a strh r2, [r3, #32] obj->skip_trans = 0; - 803ad06: f8d7 213c ldr.w r2, [r7, #316] ; 0x13c - 803ad0a: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 803ad0e: f36f 0382 bfc r3, #2, #1 - 803ad12: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 803ac72: f8d7 213c ldr.w r2, [r7, #316] ; 0x13c + 803ac76: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 803ac7a: f36f 0382 bfc r3, #2, #1 + 803ac7e: f882 3022 strb.w r3, [r2, #34] ; 0x22 } bool recolor = button_is_recolor(btnm->ctrl_bits[btn_i]); - 803ad16: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 - 803ad1a: 6ada ldr r2, [r3, #44] ; 0x2c - 803ad1c: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 - 803ad20: 005b lsls r3, r3, #1 - 803ad22: 4413 add r3, r2 - 803ad24: 881b ldrh r3, [r3, #0] - 803ad26: 4618 mov r0, r3 - 803ad28: f000 fafb bl 803b322 - 803ad2c: 4603 mov r3, r0 - 803ad2e: f887 3129 strb.w r3, [r7, #297] ; 0x129 + 803ac82: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 + 803ac86: 6ada ldr r2, [r3, #44] ; 0x2c + 803ac88: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 + 803ac8c: 005b lsls r3, r3, #1 + 803ac8e: 4413 add r3, r2 + 803ac90: 881b ldrh r3, [r3, #0] + 803ac92: 4618 mov r0, r3 + 803ac94: f000 fafb bl 803b28e + 803ac98: 4603 mov r3, r0 + 803ac9a: f887 3129 strb.w r3, [r7, #297] ; 0x129 if(recolor) draw_label_dsc_act.flag |= LV_TEXT_FLAG_RECOLOR; - 803ad32: f897 3129 ldrb.w r3, [r7, #297] ; 0x129 - 803ad36: 2b00 cmp r3, #0 - 803ad38: d00c beq.n 803ad54 - 803ad3a: f897 30cd ldrb.w r3, [r7, #205] ; 0xcd - 803ad3e: f043 0301 orr.w r3, r3, #1 - 803ad42: b2db uxtb r3, r3 - 803ad44: f887 30cd strb.w r3, [r7, #205] ; 0xcd - 803ad48: e00b b.n 803ad62 - 803ad4a: bf00 nop - 803ad4c: 08070a00 .word 0x08070a00 - 803ad50: 0804716c .word 0x0804716c + 803ac9e: f897 3129 ldrb.w r3, [r7, #297] ; 0x129 + 803aca2: 2b00 cmp r3, #0 + 803aca4: d00c beq.n 803acc0 + 803aca6: f897 30cd ldrb.w r3, [r7, #205] ; 0xcd + 803acaa: f043 0301 orr.w r3, r3, #1 + 803acae: b2db uxtb r3, r3 + 803acb0: f887 30cd strb.w r3, [r7, #205] ; 0xcd + 803acb4: e00b b.n 803acce + 803acb6: bf00 nop + 803acb8: 08070958 .word 0x08070958 + 803acbc: 080470c4 .word 0x080470c4 else draw_label_dsc_act.flag &= ~LV_TEXT_FLAG_RECOLOR; - 803ad54: f897 30cd ldrb.w r3, [r7, #205] ; 0xcd - 803ad58: f023 0301 bic.w r3, r3, #1 - 803ad5c: b2db uxtb r3, r3 - 803ad5e: f887 30cd strb.w r3, [r7, #205] ; 0xcd + 803acc0: f897 30cd ldrb.w r3, [r7, #205] ; 0xcd + 803acc4: f023 0301 bic.w r3, r3, #1 + 803acc8: b2db uxtb r3, r3 + 803acca: f887 30cd strb.w r3, [r7, #205] ; 0xcd part_draw_dsc.draw_area = &btn_area; - 803ad62: f507 73a4 add.w r3, r7, #328 ; 0x148 - 803ad66: f5a3 739c sub.w r3, r3, #312 ; 0x138 - 803ad6a: f507 7284 add.w r2, r7, #264 ; 0x108 - 803ad6e: 60da str r2, [r3, #12] + 803acce: f507 73a4 add.w r3, r7, #328 ; 0x148 + 803acd2: f5a3 739c sub.w r3, r3, #312 ; 0x138 + 803acd6: f507 7284 add.w r2, r7, #264 ; 0x108 + 803acda: 60da str r2, [r3, #12] part_draw_dsc.id = btn_i; - 803ad70: f8b7 2146 ldrh.w r2, [r7, #326] ; 0x146 - 803ad74: f507 73a4 add.w r3, r7, #328 ; 0x148 - 803ad78: f5a3 739c sub.w r3, r3, #312 ; 0x138 - 803ad7c: 639a str r2, [r3, #56] ; 0x38 + 803acdc: f8b7 2146 ldrh.w r2, [r7, #326] ; 0x146 + 803ace0: f507 73a4 add.w r3, r7, #328 ; 0x148 + 803ace4: f5a3 739c sub.w r3, r3, #312 ; 0x138 + 803ace8: 639a str r2, [r3, #56] ; 0x38 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 803ad7e: f107 0310 add.w r3, r7, #16 - 803ad82: 461a mov r2, r3 - 803ad84: 211a movs r1, #26 - 803ad86: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c - 803ad8a: f7c7 fb79 bl 8002480 + 803acea: f107 0310 add.w r3, r7, #16 + 803acee: 461a mov r2, r3 + 803acf0: 211a movs r1, #26 + 803acf2: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c + 803acf6: f7c7 fb8d bl 8002414 /*Remove borders on the edges if `LV_BORDER_SIDE_INTERNAL`*/ if(draw_rect_dsc_act.border_side & LV_BORDER_SIDE_INTERNAL) { - 803ad8e: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 - 803ad92: f3c3 0344 ubfx r3, r3, #1, #5 - 803ad96: b2db uxtb r3, r3 - 803ad98: f003 0310 and.w r3, r3, #16 - 803ad9c: 2b00 cmp r3, #0 - 803ad9e: d072 beq.n 803ae86 + 803acfa: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 + 803acfe: f3c3 0344 ubfx r3, r3, #1, #5 + 803ad02: b2db uxtb r3, r3 + 803ad04: f003 0310 and.w r3, r3, #16 + 803ad08: 2b00 cmp r3, #0 + 803ad0a: d072 beq.n 803adf2 draw_rect_dsc_act.border_side = LV_BORDER_SIDE_FULL; - 803ada0: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 - 803ada4: 220f movs r2, #15 - 803ada6: f362 0345 bfi r3, r2, #1, #5 - 803adaa: f887 30f3 strb.w r3, [r7, #243] ; 0xf3 + 803ad0c: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 + 803ad10: 220f movs r2, #15 + 803ad12: f362 0345 bfi r3, r2, #1, #5 + 803ad16: f887 30f3 strb.w r3, [r7, #243] ; 0xf3 if(btn_area.x1 == obj->coords.x1 + pleft) draw_rect_dsc_act.border_side &= ~LV_BORDER_SIDE_LEFT; - 803adae: f9b7 3108 ldrsh.w r3, [r7, #264] ; 0x108 - 803adb2: 461a mov r2, r3 - 803adb4: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c - 803adb8: f9b3 3014 ldrsh.w r3, [r3, #20] - 803adbc: 4619 mov r1, r3 - 803adbe: f9b7 312c ldrsh.w r3, [r7, #300] ; 0x12c - 803adc2: 440b add r3, r1 - 803adc4: 429a cmp r2, r3 - 803adc6: d10d bne.n 803ade4 - 803adc8: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 - 803adcc: f3c3 0344 ubfx r3, r3, #1, #5 - 803add0: b2db uxtb r3, r3 - 803add2: f003 031b and.w r3, r3, #27 - 803add6: b2da uxtb r2, r3 - 803add8: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 - 803addc: f362 0345 bfi r3, r2, #1, #5 - 803ade0: f887 30f3 strb.w r3, [r7, #243] ; 0xf3 + 803ad1a: f9b7 3108 ldrsh.w r3, [r7, #264] ; 0x108 + 803ad1e: 461a mov r2, r3 + 803ad20: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c + 803ad24: f9b3 3014 ldrsh.w r3, [r3, #20] + 803ad28: 4619 mov r1, r3 + 803ad2a: f9b7 312c ldrsh.w r3, [r7, #300] ; 0x12c + 803ad2e: 440b add r3, r1 + 803ad30: 429a cmp r2, r3 + 803ad32: d10d bne.n 803ad50 + 803ad34: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 + 803ad38: f3c3 0344 ubfx r3, r3, #1, #5 + 803ad3c: b2db uxtb r3, r3 + 803ad3e: f003 031b and.w r3, r3, #27 + 803ad42: b2da uxtb r2, r3 + 803ad44: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 + 803ad48: f362 0345 bfi r3, r2, #1, #5 + 803ad4c: f887 30f3 strb.w r3, [r7, #243] ; 0xf3 if(btn_area.x2 == obj->coords.x2 - pright) draw_rect_dsc_act.border_side &= ~LV_BORDER_SIDE_RIGHT; - 803ade4: f9b7 310c ldrsh.w r3, [r7, #268] ; 0x10c - 803ade8: 461a mov r2, r3 - 803adea: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c - 803adee: f9b3 3018 ldrsh.w r3, [r3, #24] - 803adf2: 4619 mov r1, r3 - 803adf4: f9b7 312a ldrsh.w r3, [r7, #298] ; 0x12a - 803adf8: 1acb subs r3, r1, r3 - 803adfa: 429a cmp r2, r3 - 803adfc: d10d bne.n 803ae1a - 803adfe: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 - 803ae02: f3c3 0344 ubfx r3, r3, #1, #5 - 803ae06: b2db uxtb r3, r3 - 803ae08: f003 0317 and.w r3, r3, #23 - 803ae0c: b2da uxtb r2, r3 - 803ae0e: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 - 803ae12: f362 0345 bfi r3, r2, #1, #5 - 803ae16: f887 30f3 strb.w r3, [r7, #243] ; 0xf3 + 803ad50: f9b7 310c ldrsh.w r3, [r7, #268] ; 0x10c + 803ad54: 461a mov r2, r3 + 803ad56: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c + 803ad5a: f9b3 3018 ldrsh.w r3, [r3, #24] + 803ad5e: 4619 mov r1, r3 + 803ad60: f9b7 312a ldrsh.w r3, [r7, #298] ; 0x12a + 803ad64: 1acb subs r3, r1, r3 + 803ad66: 429a cmp r2, r3 + 803ad68: d10d bne.n 803ad86 + 803ad6a: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 + 803ad6e: f3c3 0344 ubfx r3, r3, #1, #5 + 803ad72: b2db uxtb r3, r3 + 803ad74: f003 0317 and.w r3, r3, #23 + 803ad78: b2da uxtb r2, r3 + 803ad7a: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 + 803ad7e: f362 0345 bfi r3, r2, #1, #5 + 803ad82: f887 30f3 strb.w r3, [r7, #243] ; 0xf3 if(btn_area.y1 == obj->coords.y1 + ptop) draw_rect_dsc_act.border_side &= ~LV_BORDER_SIDE_TOP; - 803ae1a: f9b7 310a ldrsh.w r3, [r7, #266] ; 0x10a - 803ae1e: 461a mov r2, r3 - 803ae20: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c - 803ae24: f9b3 3016 ldrsh.w r3, [r3, #22] - 803ae28: 4619 mov r1, r3 - 803ae2a: f9b7 3130 ldrsh.w r3, [r7, #304] ; 0x130 - 803ae2e: 440b add r3, r1 - 803ae30: 429a cmp r2, r3 - 803ae32: d10d bne.n 803ae50 - 803ae34: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 - 803ae38: f3c3 0344 ubfx r3, r3, #1, #5 - 803ae3c: b2db uxtb r3, r3 - 803ae3e: f003 031d and.w r3, r3, #29 - 803ae42: b2da uxtb r2, r3 - 803ae44: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 - 803ae48: f362 0345 bfi r3, r2, #1, #5 - 803ae4c: f887 30f3 strb.w r3, [r7, #243] ; 0xf3 + 803ad86: f9b7 310a ldrsh.w r3, [r7, #266] ; 0x10a + 803ad8a: 461a mov r2, r3 + 803ad8c: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c + 803ad90: f9b3 3016 ldrsh.w r3, [r3, #22] + 803ad94: 4619 mov r1, r3 + 803ad96: f9b7 3130 ldrsh.w r3, [r7, #304] ; 0x130 + 803ad9a: 440b add r3, r1 + 803ad9c: 429a cmp r2, r3 + 803ad9e: d10d bne.n 803adbc + 803ada0: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 + 803ada4: f3c3 0344 ubfx r3, r3, #1, #5 + 803ada8: b2db uxtb r3, r3 + 803adaa: f003 031d and.w r3, r3, #29 + 803adae: b2da uxtb r2, r3 + 803adb0: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 + 803adb4: f362 0345 bfi r3, r2, #1, #5 + 803adb8: f887 30f3 strb.w r3, [r7, #243] ; 0xf3 if(btn_area.y2 == obj->coords.y2 - pbottom) draw_rect_dsc_act.border_side &= ~LV_BORDER_SIDE_BOTTOM; - 803ae50: f9b7 310e ldrsh.w r3, [r7, #270] ; 0x10e - 803ae54: 461a mov r2, r3 - 803ae56: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c - 803ae5a: f9b3 301a ldrsh.w r3, [r3, #26] - 803ae5e: 4619 mov r1, r3 - 803ae60: f9b7 312e ldrsh.w r3, [r7, #302] ; 0x12e - 803ae64: 1acb subs r3, r1, r3 - 803ae66: 429a cmp r2, r3 - 803ae68: d10d bne.n 803ae86 - 803ae6a: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 - 803ae6e: f3c3 0344 ubfx r3, r3, #1, #5 - 803ae72: b2db uxtb r3, r3 - 803ae74: f003 031e and.w r3, r3, #30 - 803ae78: b2da uxtb r2, r3 - 803ae7a: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 - 803ae7e: f362 0345 bfi r3, r2, #1, #5 - 803ae82: f887 30f3 strb.w r3, [r7, #243] ; 0xf3 + 803adbc: f9b7 310e ldrsh.w r3, [r7, #270] ; 0x10e + 803adc0: 461a mov r2, r3 + 803adc2: f8d7 313c ldr.w r3, [r7, #316] ; 0x13c + 803adc6: f9b3 301a ldrsh.w r3, [r3, #26] + 803adca: 4619 mov r1, r3 + 803adcc: f9b7 312e ldrsh.w r3, [r7, #302] ; 0x12e + 803add0: 1acb subs r3, r1, r3 + 803add2: 429a cmp r2, r3 + 803add4: d10d bne.n 803adf2 + 803add6: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 + 803adda: f3c3 0344 ubfx r3, r3, #1, #5 + 803adde: b2db uxtb r3, r3 + 803ade0: f003 031e and.w r3, r3, #30 + 803ade4: b2da uxtb r2, r3 + 803ade6: f897 30f3 ldrb.w r3, [r7, #243] ; 0xf3 + 803adea: f362 0345 bfi r3, r2, #1, #5 + 803adee: f887 30f3 strb.w r3, [r7, #243] ; 0xf3 } lv_coord_t btn_height = lv_area_get_height(&btn_area); - 803ae86: f507 7384 add.w r3, r7, #264 ; 0x108 - 803ae8a: 4618 mov r0, r3 - 803ae8c: f7fe fbca bl 8039624 - 803ae90: 4603 mov r3, r0 - 803ae92: f8a7 3126 strh.w r3, [r7, #294] ; 0x126 + 803adf2: f507 7384 add.w r3, r7, #264 ; 0x108 + 803adf6: 4618 mov r0, r3 + 803adf8: f7fe fbca bl 8039590 + 803adfc: 4603 mov r3, r0 + 803adfe: f8a7 3126 strh.w r3, [r7, #294] ; 0x126 if((btn_state & LV_STATE_PRESSED) && (btnm->ctrl_bits[btn_i] & LV_BTNMATRIX_CTRL_POPOVER)) { - 803ae96: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 - 803ae9a: f003 0320 and.w r3, r3, #32 - 803ae9e: 2b00 cmp r3, #0 - 803aea0: d015 beq.n 803aece - 803aea2: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 - 803aea6: 6ada ldr r2, [r3, #44] ; 0x2c - 803aea8: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 - 803aeac: 005b lsls r3, r3, #1 - 803aeae: 4413 add r3, r2 - 803aeb0: 881b ldrh r3, [r3, #0] - 803aeb2: f403 7300 and.w r3, r3, #512 ; 0x200 - 803aeb6: 2b00 cmp r3, #0 - 803aeb8: d009 beq.n 803aece + 803ae02: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 + 803ae06: f003 0320 and.w r3, r3, #32 + 803ae0a: 2b00 cmp r3, #0 + 803ae0c: d015 beq.n 803ae3a + 803ae0e: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 + 803ae12: 6ada ldr r2, [r3, #44] ; 0x2c + 803ae14: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 + 803ae18: 005b lsls r3, r3, #1 + 803ae1a: 4413 add r3, r2 + 803ae1c: 881b ldrh r3, [r3, #0] + 803ae1e: f403 7300 and.w r3, r3, #512 ; 0x200 + 803ae22: 2b00 cmp r3, #0 + 803ae24: d009 beq.n 803ae3a /*Push up the upper boundary of the btn area to create the popover*/ btn_area.y1 -= btn_height; - 803aeba: f9b7 310a ldrsh.w r3, [r7, #266] ; 0x10a - 803aebe: b29a uxth r2, r3 - 803aec0: f8b7 3126 ldrh.w r3, [r7, #294] ; 0x126 - 803aec4: 1ad3 subs r3, r2, r3 - 803aec6: b29b uxth r3, r3 - 803aec8: b21b sxth r3, r3 - 803aeca: f8a7 310a strh.w r3, [r7, #266] ; 0x10a + 803ae26: f9b7 310a ldrsh.w r3, [r7, #266] ; 0x10a + 803ae2a: b29a uxth r2, r3 + 803ae2c: f8b7 3126 ldrh.w r3, [r7, #294] ; 0x126 + 803ae30: 1ad3 subs r3, r2, r3 + 803ae32: b29b uxth r3, r3 + 803ae34: b21b sxth r3, r3 + 803ae36: f8a7 310a strh.w r3, [r7, #266] ; 0x10a } /*Draw the background*/ lv_draw_rect(draw_ctx, &draw_rect_dsc_act, &btn_area); - 803aece: f507 7284 add.w r2, r7, #264 ; 0x108 - 803aed2: f107 03d0 add.w r3, r7, #208 ; 0xd0 - 803aed6: 4619 mov r1, r3 - 803aed8: f8d7 0134 ldr.w r0, [r7, #308] ; 0x134 - 803aedc: f7da fccc bl 8015878 + 803ae3a: f507 7284 add.w r2, r7, #264 ; 0x108 + 803ae3e: f107 03d0 add.w r3, r7, #208 ; 0xd0 + 803ae42: 4619 mov r1, r3 + 803ae44: f8d7 0134 ldr.w r0, [r7, #308] ; 0x134 + 803ae48: f7da fccc bl 80157e4 /*Calculate the size of the text*/ const lv_font_t * font = draw_label_dsc_act.font; - 803aee0: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803aee4: f8c7 3120 str.w r3, [r7, #288] ; 0x120 + 803ae4c: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803ae50: f8c7 3120 str.w r3, [r7, #288] ; 0x120 lv_coord_t letter_space = draw_label_dsc_act.letter_space; - 803aee8: f8b7 30c4 ldrh.w r3, [r7, #196] ; 0xc4 - 803aeec: f8a7 311e strh.w r3, [r7, #286] ; 0x11e + 803ae54: f8b7 30c4 ldrh.w r3, [r7, #196] ; 0xc4 + 803ae58: f8a7 311e strh.w r3, [r7, #286] ; 0x11e lv_coord_t line_space = draw_label_dsc_act.line_space; - 803aef0: f8b7 30c2 ldrh.w r3, [r7, #194] ; 0xc2 - 803aef4: f8a7 311c strh.w r3, [r7, #284] ; 0x11c + 803ae5c: f8b7 30c2 ldrh.w r3, [r7, #194] ; 0xc2 + 803ae60: f8a7 311c strh.w r3, [r7, #284] ; 0x11c const char * txt = btnm->map_p[txt_i]; - 803aef8: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 - 803aefc: 6a5a ldr r2, [r3, #36] ; 0x24 - 803aefe: f8b7 3144 ldrh.w r3, [r7, #324] ; 0x144 - 803af02: 009b lsls r3, r3, #2 - 803af04: 4413 add r3, r2 - 803af06: 681b ldr r3, [r3, #0] - 803af08: f8c7 3118 str.w r3, [r7, #280] ; 0x118 + 803ae64: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 + 803ae68: 6a5a ldr r2, [r3, #36] ; 0x24 + 803ae6a: f8b7 3144 ldrh.w r3, [r7, #324] ; 0x144 + 803ae6e: 009b lsls r3, r3, #2 + 803ae70: 4413 add r3, r2 + 803ae72: 681b ldr r3, [r3, #0] + 803ae74: f8c7 3118 str.w r3, [r7, #280] ; 0x118 _lv_txt_ap_proc(txt, txt_ap); txt = txt_ap; } #endif lv_point_t txt_size; lv_txt_get_size(&txt_size, txt, font, letter_space, - 803af0c: f507 7388 add.w r3, r7, #272 ; 0x110 - 803af10: 4618 mov r0, r3 - 803af12: f7fe fb71 bl 80395f8 - 803af16: 4603 mov r3, r0 - 803af18: 4619 mov r1, r3 - 803af1a: f897 30cd ldrb.w r3, [r7, #205] ; 0xcd - 803af1e: f9b7 211e ldrsh.w r2, [r7, #286] ; 0x11e - 803af22: f107 000c add.w r0, r7, #12 - 803af26: 9302 str r3, [sp, #8] - 803af28: 9101 str r1, [sp, #4] - 803af2a: f9b7 311c ldrsh.w r3, [r7, #284] ; 0x11c - 803af2e: 9300 str r3, [sp, #0] - 803af30: 4613 mov r3, r2 - 803af32: f8d7 2120 ldr.w r2, [r7, #288] ; 0x120 - 803af36: f8d7 1118 ldr.w r1, [r7, #280] ; 0x118 - 803af3a: f7fb f8a6 bl 803608a + 803ae78: f507 7388 add.w r3, r7, #272 ; 0x110 + 803ae7c: 4618 mov r0, r3 + 803ae7e: f7fe fb71 bl 8039564 + 803ae82: 4603 mov r3, r0 + 803ae84: 4619 mov r1, r3 + 803ae86: f897 30cd ldrb.w r3, [r7, #205] ; 0xcd + 803ae8a: f9b7 211e ldrsh.w r2, [r7, #286] ; 0x11e + 803ae8e: f107 000c add.w r0, r7, #12 + 803ae92: 9302 str r3, [sp, #8] + 803ae94: 9101 str r1, [sp, #4] + 803ae96: f9b7 311c ldrsh.w r3, [r7, #284] ; 0x11c + 803ae9a: 9300 str r3, [sp, #0] + 803ae9c: 4613 mov r3, r2 + 803ae9e: f8d7 2120 ldr.w r2, [r7, #288] ; 0x120 + 803aea2: f8d7 1118 ldr.w r1, [r7, #280] ; 0x118 + 803aea6: f7fb f8a6 bl 8035ff6 line_space, lv_area_get_width(&area_obj), draw_label_dsc_act.flag); btn_area.x1 += (lv_area_get_width(&btn_area) - txt_size.x) / 2; - 803af3e: f507 7384 add.w r3, r7, #264 ; 0x108 - 803af42: 4618 mov r0, r3 - 803af44: f7fe fb58 bl 80395f8 - 803af48: 4603 mov r3, r0 - 803af4a: 461a mov r2, r3 - 803af4c: f507 73a4 add.w r3, r7, #328 ; 0x148 - 803af50: f5a3 739e sub.w r3, r3, #316 ; 0x13c - 803af54: f9b3 3000 ldrsh.w r3, [r3] - 803af58: 1ad3 subs r3, r2, r3 - 803af5a: 0fda lsrs r2, r3, #31 - 803af5c: 4413 add r3, r2 - 803af5e: 105b asrs r3, r3, #1 - 803af60: 4619 mov r1, r3 - 803af62: f9b7 3108 ldrsh.w r3, [r7, #264] ; 0x108 - 803af66: b29a uxth r2, r3 - 803af68: b28b uxth r3, r1 - 803af6a: 4413 add r3, r2 - 803af6c: b29b uxth r3, r3 - 803af6e: b21b sxth r3, r3 - 803af70: f8a7 3108 strh.w r3, [r7, #264] ; 0x108 + 803aeaa: f507 7384 add.w r3, r7, #264 ; 0x108 + 803aeae: 4618 mov r0, r3 + 803aeb0: f7fe fb58 bl 8039564 + 803aeb4: 4603 mov r3, r0 + 803aeb6: 461a mov r2, r3 + 803aeb8: f507 73a4 add.w r3, r7, #328 ; 0x148 + 803aebc: f5a3 739e sub.w r3, r3, #316 ; 0x13c + 803aec0: f9b3 3000 ldrsh.w r3, [r3] + 803aec4: 1ad3 subs r3, r2, r3 + 803aec6: 0fda lsrs r2, r3, #31 + 803aec8: 4413 add r3, r2 + 803aeca: 105b asrs r3, r3, #1 + 803aecc: 4619 mov r1, r3 + 803aece: f9b7 3108 ldrsh.w r3, [r7, #264] ; 0x108 + 803aed2: b29a uxth r2, r3 + 803aed4: b28b uxth r3, r1 + 803aed6: 4413 add r3, r2 + 803aed8: b29b uxth r3, r3 + 803aeda: b21b sxth r3, r3 + 803aedc: f8a7 3108 strh.w r3, [r7, #264] ; 0x108 btn_area.y1 += (lv_area_get_height(&btn_area) - txt_size.y) / 2; - 803af74: f507 7384 add.w r3, r7, #264 ; 0x108 - 803af78: 4618 mov r0, r3 - 803af7a: f7fe fb53 bl 8039624 - 803af7e: 4603 mov r3, r0 - 803af80: 461a mov r2, r3 - 803af82: f507 73a4 add.w r3, r7, #328 ; 0x148 - 803af86: f5a3 739e sub.w r3, r3, #316 ; 0x13c - 803af8a: f9b3 3002 ldrsh.w r3, [r3, #2] - 803af8e: 1ad3 subs r3, r2, r3 - 803af90: 0fda lsrs r2, r3, #31 - 803af92: 4413 add r3, r2 - 803af94: 105b asrs r3, r3, #1 - 803af96: 4619 mov r1, r3 - 803af98: f9b7 310a ldrsh.w r3, [r7, #266] ; 0x10a - 803af9c: b29a uxth r2, r3 - 803af9e: b28b uxth r3, r1 - 803afa0: 4413 add r3, r2 - 803afa2: b29b uxth r3, r3 - 803afa4: b21b sxth r3, r3 - 803afa6: f8a7 310a strh.w r3, [r7, #266] ; 0x10a + 803aee0: f507 7384 add.w r3, r7, #264 ; 0x108 + 803aee4: 4618 mov r0, r3 + 803aee6: f7fe fb53 bl 8039590 + 803aeea: 4603 mov r3, r0 + 803aeec: 461a mov r2, r3 + 803aeee: f507 73a4 add.w r3, r7, #328 ; 0x148 + 803aef2: f5a3 739e sub.w r3, r3, #316 ; 0x13c + 803aef6: f9b3 3002 ldrsh.w r3, [r3, #2] + 803aefa: 1ad3 subs r3, r2, r3 + 803aefc: 0fda lsrs r2, r3, #31 + 803aefe: 4413 add r3, r2 + 803af00: 105b asrs r3, r3, #1 + 803af02: 4619 mov r1, r3 + 803af04: f9b7 310a ldrsh.w r3, [r7, #266] ; 0x10a + 803af08: b29a uxth r2, r3 + 803af0a: b28b uxth r3, r1 + 803af0c: 4413 add r3, r2 + 803af0e: b29b uxth r3, r3 + 803af10: b21b sxth r3, r3 + 803af12: f8a7 310a strh.w r3, [r7, #266] ; 0x10a btn_area.x2 = btn_area.x1 + txt_size.x; - 803afaa: f9b7 3108 ldrsh.w r3, [r7, #264] ; 0x108 - 803afae: b29a uxth r2, r3 - 803afb0: f507 73a4 add.w r3, r7, #328 ; 0x148 - 803afb4: f5a3 739e sub.w r3, r3, #316 ; 0x13c - 803afb8: f9b3 3000 ldrsh.w r3, [r3] - 803afbc: b29b uxth r3, r3 - 803afbe: 4413 add r3, r2 - 803afc0: b29b uxth r3, r3 - 803afc2: b21b sxth r3, r3 - 803afc4: f8a7 310c strh.w r3, [r7, #268] ; 0x10c + 803af16: f9b7 3108 ldrsh.w r3, [r7, #264] ; 0x108 + 803af1a: b29a uxth r2, r3 + 803af1c: f507 73a4 add.w r3, r7, #328 ; 0x148 + 803af20: f5a3 739e sub.w r3, r3, #316 ; 0x13c + 803af24: f9b3 3000 ldrsh.w r3, [r3] + 803af28: b29b uxth r3, r3 + 803af2a: 4413 add r3, r2 + 803af2c: b29b uxth r3, r3 + 803af2e: b21b sxth r3, r3 + 803af30: f8a7 310c strh.w r3, [r7, #268] ; 0x10c btn_area.y2 = btn_area.y1 + txt_size.y; - 803afc8: f9b7 310a ldrsh.w r3, [r7, #266] ; 0x10a - 803afcc: b29a uxth r2, r3 - 803afce: f507 73a4 add.w r3, r7, #328 ; 0x148 - 803afd2: f5a3 739e sub.w r3, r3, #316 ; 0x13c - 803afd6: f9b3 3002 ldrsh.w r3, [r3, #2] - 803afda: b29b uxth r3, r3 - 803afdc: 4413 add r3, r2 - 803afde: b29b uxth r3, r3 - 803afe0: b21b sxth r3, r3 - 803afe2: f8a7 310e strh.w r3, [r7, #270] ; 0x10e + 803af34: f9b7 310a ldrsh.w r3, [r7, #266] ; 0x10a + 803af38: b29a uxth r2, r3 + 803af3a: f507 73a4 add.w r3, r7, #328 ; 0x148 + 803af3e: f5a3 739e sub.w r3, r3, #316 ; 0x13c + 803af42: f9b3 3002 ldrsh.w r3, [r3, #2] + 803af46: b29b uxth r3, r3 + 803af48: 4413 add r3, r2 + 803af4a: b29b uxth r3, r3 + 803af4c: b21b sxth r3, r3 + 803af4e: f8a7 310e strh.w r3, [r7, #270] ; 0x10e if((btn_state & LV_STATE_PRESSED) && (btnm->ctrl_bits[btn_i] & LV_BTNMATRIX_CTRL_POPOVER)) { - 803afe6: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 - 803afea: f003 0320 and.w r3, r3, #32 - 803afee: 2b00 cmp r3, #0 - 803aff0: d029 beq.n 803b046 - 803aff2: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 - 803aff6: 6ada ldr r2, [r3, #44] ; 0x2c - 803aff8: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 - 803affc: 005b lsls r3, r3, #1 - 803affe: 4413 add r3, r2 - 803b000: 881b ldrh r3, [r3, #0] - 803b002: f403 7300 and.w r3, r3, #512 ; 0x200 - 803b006: 2b00 cmp r3, #0 - 803b008: d01d beq.n 803b046 + 803af52: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 + 803af56: f003 0320 and.w r3, r3, #32 + 803af5a: 2b00 cmp r3, #0 + 803af5c: d029 beq.n 803afb2 + 803af5e: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 + 803af62: 6ada ldr r2, [r3, #44] ; 0x2c + 803af64: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 + 803af68: 005b lsls r3, r3, #1 + 803af6a: 4413 add r3, r2 + 803af6c: 881b ldrh r3, [r3, #0] + 803af6e: f403 7300 and.w r3, r3, #512 ; 0x200 + 803af72: 2b00 cmp r3, #0 + 803af74: d01d beq.n 803afb2 /*Push up the button text into the popover*/ btn_area.y1 -= btn_height / 2; - 803b00a: f9b7 310a ldrsh.w r3, [r7, #266] ; 0x10a - 803b00e: b29a uxth r2, r3 - 803b010: f9b7 3126 ldrsh.w r3, [r7, #294] ; 0x126 - 803b014: 0fd9 lsrs r1, r3, #31 - 803b016: 440b add r3, r1 - 803b018: 105b asrs r3, r3, #1 - 803b01a: b21b sxth r3, r3 - 803b01c: b29b uxth r3, r3 - 803b01e: 1ad3 subs r3, r2, r3 - 803b020: b29b uxth r3, r3 - 803b022: b21b sxth r3, r3 - 803b024: f8a7 310a strh.w r3, [r7, #266] ; 0x10a + 803af76: f9b7 310a ldrsh.w r3, [r7, #266] ; 0x10a + 803af7a: b29a uxth r2, r3 + 803af7c: f9b7 3126 ldrsh.w r3, [r7, #294] ; 0x126 + 803af80: 0fd9 lsrs r1, r3, #31 + 803af82: 440b add r3, r1 + 803af84: 105b asrs r3, r3, #1 + 803af86: b21b sxth r3, r3 + 803af88: b29b uxth r3, r3 + 803af8a: 1ad3 subs r3, r2, r3 + 803af8c: b29b uxth r3, r3 + 803af8e: b21b sxth r3, r3 + 803af90: f8a7 310a strh.w r3, [r7, #266] ; 0x10a btn_area.y2 -= btn_height / 2; - 803b028: f9b7 310e ldrsh.w r3, [r7, #270] ; 0x10e - 803b02c: b29a uxth r2, r3 - 803b02e: f9b7 3126 ldrsh.w r3, [r7, #294] ; 0x126 - 803b032: 0fd9 lsrs r1, r3, #31 - 803b034: 440b add r3, r1 - 803b036: 105b asrs r3, r3, #1 - 803b038: b21b sxth r3, r3 - 803b03a: b29b uxth r3, r3 - 803b03c: 1ad3 subs r3, r2, r3 - 803b03e: b29b uxth r3, r3 - 803b040: b21b sxth r3, r3 - 803b042: f8a7 310e strh.w r3, [r7, #270] ; 0x10e + 803af94: f9b7 310e ldrsh.w r3, [r7, #270] ; 0x10e + 803af98: b29a uxth r2, r3 + 803af9a: f9b7 3126 ldrsh.w r3, [r7, #294] ; 0x126 + 803af9e: 0fd9 lsrs r1, r3, #31 + 803afa0: 440b add r3, r1 + 803afa2: 105b asrs r3, r3, #1 + 803afa4: b21b sxth r3, r3 + 803afa6: b29b uxth r3, r3 + 803afa8: 1ad3 subs r3, r2, r3 + 803afaa: b29b uxth r3, r3 + 803afac: b21b sxth r3, r3 + 803afae: f8a7 310e strh.w r3, [r7, #270] ; 0x10e } /*Draw the text*/ lv_draw_label(draw_ctx, &draw_label_dsc_act, &btn_area, txt, NULL); - 803b046: f507 7284 add.w r2, r7, #264 ; 0x108 - 803b04a: f107 01b0 add.w r1, r7, #176 ; 0xb0 - 803b04e: 2300 movs r3, #0 - 803b050: 9300 str r3, [sp, #0] - 803b052: f8d7 3118 ldr.w r3, [r7, #280] ; 0x118 - 803b056: f8d7 0134 ldr.w r0, [r7, #308] ; 0x134 - 803b05a: f7d7 f8c3 bl 80121e4 + 803afb2: f507 7284 add.w r2, r7, #264 ; 0x108 + 803afb6: f107 01b0 add.w r1, r7, #176 ; 0xb0 + 803afba: 2300 movs r3, #0 + 803afbc: 9300 str r3, [sp, #0] + 803afbe: f8d7 3118 ldr.w r3, [r7, #280] ; 0x118 + 803afc2: f8d7 0134 ldr.w r0, [r7, #308] ; 0x134 + 803afc6: f7d7 f8c3 bl 8012150 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 803b05e: f107 0310 add.w r3, r7, #16 - 803b062: 461a mov r2, r3 - 803b064: 211b movs r1, #27 - 803b066: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c - 803b06a: f7c7 fa09 bl 8002480 - 803b06e: e000 b.n 803b072 + 803afca: f107 0310 add.w r3, r7, #16 + 803afce: 461a mov r2, r3 + 803afd0: 211b movs r1, #27 + 803afd2: f8d7 013c ldr.w r0, [r7, #316] ; 0x13c + 803afd6: f7c7 fa1d bl 8002414 + 803afda: e000 b.n 803afde if(button_is_hidden(btnm->ctrl_bits[btn_i])) continue; - 803b070: bf00 nop + 803afdc: bf00 nop for(btn_i = 0; btn_i < btnm->btn_cnt; btn_i++, txt_i++) { - 803b072: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 - 803b076: 3301 adds r3, #1 - 803b078: f8a7 3146 strh.w r3, [r7, #326] ; 0x146 - 803b07c: f8b7 3144 ldrh.w r3, [r7, #324] ; 0x144 - 803b080: 3301 adds r3, #1 - 803b082: f8a7 3144 strh.w r3, [r7, #324] ; 0x144 - 803b086: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 - 803b08a: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803b08c: f8b7 2146 ldrh.w r2, [r7, #326] ; 0x146 - 803b090: 429a cmp r2, r3 - 803b092: f4ff ad3b bcc.w 803ab0c + 803afde: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 + 803afe2: 3301 adds r3, #1 + 803afe4: f8a7 3146 strh.w r3, [r7, #326] ; 0x146 + 803afe8: f8b7 3144 ldrh.w r3, [r7, #324] ; 0x144 + 803afec: 3301 adds r3, #1 + 803afee: f8a7 3144 strh.w r3, [r7, #324] ; 0x144 + 803aff2: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 + 803aff6: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803aff8: f8b7 2146 ldrh.w r2, [r7, #326] ; 0x146 + 803affc: 429a cmp r2, r3 + 803affe: f4ff ad3b bcc.w 803aa78 } obj->skip_trans = 0; - 803b096: f8d7 213c ldr.w r2, [r7, #316] ; 0x13c - 803b09a: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 803b09e: f36f 0382 bfc r3, #2, #1 - 803b0a2: f882 3022 strb.w r3, [r2, #34] ; 0x22 - 803b0a6: e000 b.n 803b0aa + 803b002: f8d7 213c ldr.w r2, [r7, #316] ; 0x13c + 803b006: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 803b00a: f36f 0382 bfc r3, #2, #1 + 803b00e: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 803b012: e000 b.n 803b016 if(btnm->btn_cnt == 0) return; - 803b0a8: bf00 nop + 803b014: bf00 nop #if LV_USE_ARABIC_PERSIAN_CHARS lv_mem_buf_release(txt_ap); #endif } - 803b0aa: f507 77a4 add.w r7, r7, #328 ; 0x148 - 803b0ae: 46bd mov sp, r7 - 803b0b0: bd80 pop {r7, pc} - 803b0b2: bf00 nop + 803b016: f507 77a4 add.w r7, r7, #328 ; 0x148 + 803b01a: 46bd mov sp, r7 + 803b01c: bd80 pop {r7, pc} + 803b01e: bf00 nop -0803b0b4 : +0803b020 : * Create the required number of buttons and control bytes according to a map * @param obj pointer to button matrix object * @param map_p pointer to a string array */ static void allocate_btn_areas_and_controls(const lv_obj_t * obj, const char ** map) { - 803b0b4: b580 push {r7, lr} - 803b0b6: b084 sub sp, #16 - 803b0b8: af00 add r7, sp, #0 - 803b0ba: 6078 str r0, [r7, #4] - 803b0bc: 6039 str r1, [r7, #0] + 803b020: b580 push {r7, lr} + 803b022: b084 sub sp, #16 + 803b024: af00 add r7, sp, #0 + 803b026: 6078 str r0, [r7, #4] + 803b028: 6039 str r1, [r7, #0] lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj; - 803b0be: 687b ldr r3, [r7, #4] - 803b0c0: 60bb str r3, [r7, #8] + 803b02a: 687b ldr r3, [r7, #4] + 803b02c: 60bb str r3, [r7, #8] btnm->row_cnt = 1; - 803b0c2: 68bb ldr r3, [r7, #8] - 803b0c4: 2201 movs r2, #1 - 803b0c6: 865a strh r2, [r3, #50] ; 0x32 + 803b02e: 68bb ldr r3, [r7, #8] + 803b030: 2201 movs r2, #1 + 803b032: 865a strh r2, [r3, #50] ; 0x32 /*Count the buttons in the map*/ uint16_t btn_cnt = 0; - 803b0c8: 2300 movs r3, #0 - 803b0ca: 81fb strh r3, [r7, #14] + 803b034: 2300 movs r3, #0 + 803b036: 81fb strh r3, [r7, #14] uint16_t i = 0; - 803b0cc: 2300 movs r3, #0 - 803b0ce: 81bb strh r3, [r7, #12] + 803b038: 2300 movs r3, #0 + 803b03a: 81bb strh r3, [r7, #12] while(map[i] && map[i][0] != '\0') { - 803b0d0: e018 b.n 803b104 + 803b03c: e018 b.n 803b070 if(strcmp(map[i], "\n") != 0) { /*Do not count line breaks*/ - 803b0d2: 89bb ldrh r3, [r7, #12] - 803b0d4: 009b lsls r3, r3, #2 - 803b0d6: 683a ldr r2, [r7, #0] - 803b0d8: 4413 add r3, r2 - 803b0da: 681b ldr r3, [r3, #0] - 803b0dc: 4939 ldr r1, [pc, #228] ; (803b1c4 ) - 803b0de: 4618 mov r0, r3 - 803b0e0: f7c5 f8a0 bl 8000224 - 803b0e4: 4603 mov r3, r0 - 803b0e6: 2b00 cmp r3, #0 - 803b0e8: d003 beq.n 803b0f2 + 803b03e: 89bb ldrh r3, [r7, #12] + 803b040: 009b lsls r3, r3, #2 + 803b042: 683a ldr r2, [r7, #0] + 803b044: 4413 add r3, r2 + 803b046: 681b ldr r3, [r3, #0] + 803b048: 4939 ldr r1, [pc, #228] ; (803b130 ) + 803b04a: 4618 mov r0, r3 + 803b04c: f7c5 f8ea bl 8000224 + 803b050: 4603 mov r3, r0 + 803b052: 2b00 cmp r3, #0 + 803b054: d003 beq.n 803b05e btn_cnt++; - 803b0ea: 89fb ldrh r3, [r7, #14] - 803b0ec: 3301 adds r3, #1 - 803b0ee: 81fb strh r3, [r7, #14] - 803b0f0: e005 b.n 803b0fe + 803b056: 89fb ldrh r3, [r7, #14] + 803b058: 3301 adds r3, #1 + 803b05a: 81fb strh r3, [r7, #14] + 803b05c: e005 b.n 803b06a } else { btnm->row_cnt++; - 803b0f2: 68bb ldr r3, [r7, #8] - 803b0f4: 8e5b ldrh r3, [r3, #50] ; 0x32 - 803b0f6: 3301 adds r3, #1 - 803b0f8: b29a uxth r2, r3 - 803b0fa: 68bb ldr r3, [r7, #8] - 803b0fc: 865a strh r2, [r3, #50] ; 0x32 + 803b05e: 68bb ldr r3, [r7, #8] + 803b060: 8e5b ldrh r3, [r3, #50] ; 0x32 + 803b062: 3301 adds r3, #1 + 803b064: b29a uxth r2, r3 + 803b066: 68bb ldr r3, [r7, #8] + 803b068: 865a strh r2, [r3, #50] ; 0x32 } i++; - 803b0fe: 89bb ldrh r3, [r7, #12] - 803b100: 3301 adds r3, #1 - 803b102: 81bb strh r3, [r7, #12] + 803b06a: 89bb ldrh r3, [r7, #12] + 803b06c: 3301 adds r3, #1 + 803b06e: 81bb strh r3, [r7, #12] while(map[i] && map[i][0] != '\0') { - 803b104: 89bb ldrh r3, [r7, #12] - 803b106: 009b lsls r3, r3, #2 - 803b108: 683a ldr r2, [r7, #0] - 803b10a: 4413 add r3, r2 - 803b10c: 681b ldr r3, [r3, #0] - 803b10e: 2b00 cmp r3, #0 - 803b110: d007 beq.n 803b122 - 803b112: 89bb ldrh r3, [r7, #12] - 803b114: 009b lsls r3, r3, #2 - 803b116: 683a ldr r2, [r7, #0] - 803b118: 4413 add r3, r2 - 803b11a: 681b ldr r3, [r3, #0] - 803b11c: 781b ldrb r3, [r3, #0] - 803b11e: 2b00 cmp r3, #0 - 803b120: d1d7 bne.n 803b0d2 + 803b070: 89bb ldrh r3, [r7, #12] + 803b072: 009b lsls r3, r3, #2 + 803b074: 683a ldr r2, [r7, #0] + 803b076: 4413 add r3, r2 + 803b078: 681b ldr r3, [r3, #0] + 803b07a: 2b00 cmp r3, #0 + 803b07c: d007 beq.n 803b08e + 803b07e: 89bb ldrh r3, [r7, #12] + 803b080: 009b lsls r3, r3, #2 + 803b082: 683a ldr r2, [r7, #0] + 803b084: 4413 add r3, r2 + 803b086: 681b ldr r3, [r3, #0] + 803b088: 781b ldrb r3, [r3, #0] + 803b08a: 2b00 cmp r3, #0 + 803b08c: d1d7 bne.n 803b03e } /*Do not allocate memory for the same amount of buttons*/ if(btn_cnt == btnm->btn_cnt) return; - 803b122: 68bb ldr r3, [r7, #8] - 803b124: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803b126: 89fa ldrh r2, [r7, #14] - 803b128: 429a cmp r2, r3 - 803b12a: d047 beq.n 803b1bc + 803b08e: 68bb ldr r3, [r7, #8] + 803b090: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803b092: 89fa ldrh r2, [r7, #14] + 803b094: 429a cmp r2, r3 + 803b096: d047 beq.n 803b128 if(btnm->button_areas != NULL) { - 803b12c: 68bb ldr r3, [r7, #8] - 803b12e: 6a9b ldr r3, [r3, #40] ; 0x28 - 803b130: 2b00 cmp r3, #0 - 803b132: d007 beq.n 803b144 + 803b098: 68bb ldr r3, [r7, #8] + 803b09a: 6a9b ldr r3, [r3, #40] ; 0x28 + 803b09c: 2b00 cmp r3, #0 + 803b09e: d007 beq.n 803b0b0 lv_mem_free(btnm->button_areas); - 803b134: 68bb ldr r3, [r7, #8] - 803b136: 6a9b ldr r3, [r3, #40] ; 0x28 - 803b138: 4618 mov r0, r3 - 803b13a: f7f7 fbcf bl 80328dc + 803b0a0: 68bb ldr r3, [r7, #8] + 803b0a2: 6a9b ldr r3, [r3, #40] ; 0x28 + 803b0a4: 4618 mov r0, r3 + 803b0a6: f7f7 fbcf bl 8032848 btnm->button_areas = NULL; - 803b13e: 68bb ldr r3, [r7, #8] - 803b140: 2200 movs r2, #0 - 803b142: 629a str r2, [r3, #40] ; 0x28 + 803b0aa: 68bb ldr r3, [r7, #8] + 803b0ac: 2200 movs r2, #0 + 803b0ae: 629a str r2, [r3, #40] ; 0x28 } if(btnm->ctrl_bits != NULL) { - 803b144: 68bb ldr r3, [r7, #8] - 803b146: 6adb ldr r3, [r3, #44] ; 0x2c - 803b148: 2b00 cmp r3, #0 - 803b14a: d007 beq.n 803b15c + 803b0b0: 68bb ldr r3, [r7, #8] + 803b0b2: 6adb ldr r3, [r3, #44] ; 0x2c + 803b0b4: 2b00 cmp r3, #0 + 803b0b6: d007 beq.n 803b0c8 lv_mem_free(btnm->ctrl_bits); - 803b14c: 68bb ldr r3, [r7, #8] - 803b14e: 6adb ldr r3, [r3, #44] ; 0x2c - 803b150: 4618 mov r0, r3 - 803b152: f7f7 fbc3 bl 80328dc + 803b0b8: 68bb ldr r3, [r7, #8] + 803b0ba: 6adb ldr r3, [r3, #44] ; 0x2c + 803b0bc: 4618 mov r0, r3 + 803b0be: f7f7 fbc3 bl 8032848 btnm->ctrl_bits = NULL; - 803b156: 68bb ldr r3, [r7, #8] - 803b158: 2200 movs r2, #0 - 803b15a: 62da str r2, [r3, #44] ; 0x2c + 803b0c2: 68bb ldr r3, [r7, #8] + 803b0c4: 2200 movs r2, #0 + 803b0c6: 62da str r2, [r3, #44] ; 0x2c } btnm->button_areas = lv_mem_alloc(sizeof(lv_area_t) * btn_cnt); - 803b15c: 89fb ldrh r3, [r7, #14] - 803b15e: 00db lsls r3, r3, #3 - 803b160: 4618 mov r0, r3 - 803b162: f7f7 fb99 bl 8032898 - 803b166: 4602 mov r2, r0 - 803b168: 68bb ldr r3, [r7, #8] - 803b16a: 629a str r2, [r3, #40] ; 0x28 + 803b0c8: 89fb ldrh r3, [r7, #14] + 803b0ca: 00db lsls r3, r3, #3 + 803b0cc: 4618 mov r0, r3 + 803b0ce: f7f7 fb99 bl 8032804 + 803b0d2: 4602 mov r2, r0 + 803b0d4: 68bb ldr r3, [r7, #8] + 803b0d6: 629a str r2, [r3, #40] ; 0x28 LV_ASSERT_MALLOC(btnm->button_areas); - 803b16c: 68bb ldr r3, [r7, #8] - 803b16e: 6a9b ldr r3, [r3, #40] ; 0x28 - 803b170: 2b00 cmp r3, #0 - 803b172: d100 bne.n 803b176 - 803b174: e7fe b.n 803b174 + 803b0d8: 68bb ldr r3, [r7, #8] + 803b0da: 6a9b ldr r3, [r3, #40] ; 0x28 + 803b0dc: 2b00 cmp r3, #0 + 803b0de: d100 bne.n 803b0e2 + 803b0e0: e7fe b.n 803b0e0 btnm->ctrl_bits = lv_mem_alloc(sizeof(lv_btnmatrix_ctrl_t) * btn_cnt); - 803b176: 89fb ldrh r3, [r7, #14] - 803b178: 005b lsls r3, r3, #1 - 803b17a: 4618 mov r0, r3 - 803b17c: f7f7 fb8c bl 8032898 - 803b180: 4602 mov r2, r0 - 803b182: 68bb ldr r3, [r7, #8] - 803b184: 62da str r2, [r3, #44] ; 0x2c + 803b0e2: 89fb ldrh r3, [r7, #14] + 803b0e4: 005b lsls r3, r3, #1 + 803b0e6: 4618 mov r0, r3 + 803b0e8: f7f7 fb8c bl 8032804 + 803b0ec: 4602 mov r2, r0 + 803b0ee: 68bb ldr r3, [r7, #8] + 803b0f0: 62da str r2, [r3, #44] ; 0x2c LV_ASSERT_MALLOC(btnm->ctrl_bits); - 803b186: 68bb ldr r3, [r7, #8] - 803b188: 6adb ldr r3, [r3, #44] ; 0x2c - 803b18a: 2b00 cmp r3, #0 - 803b18c: d100 bne.n 803b190 - 803b18e: e7fe b.n 803b18e + 803b0f2: 68bb ldr r3, [r7, #8] + 803b0f4: 6adb ldr r3, [r3, #44] ; 0x2c + 803b0f6: 2b00 cmp r3, #0 + 803b0f8: d100 bne.n 803b0fc + 803b0fa: e7fe b.n 803b0fa if(btnm->button_areas == NULL || btnm->ctrl_bits == NULL) btn_cnt = 0; - 803b190: 68bb ldr r3, [r7, #8] - 803b192: 6a9b ldr r3, [r3, #40] ; 0x28 - 803b194: 2b00 cmp r3, #0 - 803b196: d003 beq.n 803b1a0 - 803b198: 68bb ldr r3, [r7, #8] - 803b19a: 6adb ldr r3, [r3, #44] ; 0x2c - 803b19c: 2b00 cmp r3, #0 - 803b19e: d101 bne.n 803b1a4 - 803b1a0: 2300 movs r3, #0 - 803b1a2: 81fb strh r3, [r7, #14] + 803b0fc: 68bb ldr r3, [r7, #8] + 803b0fe: 6a9b ldr r3, [r3, #40] ; 0x28 + 803b100: 2b00 cmp r3, #0 + 803b102: d003 beq.n 803b10c + 803b104: 68bb ldr r3, [r7, #8] + 803b106: 6adb ldr r3, [r3, #44] ; 0x2c + 803b108: 2b00 cmp r3, #0 + 803b10a: d101 bne.n 803b110 + 803b10c: 2300 movs r3, #0 + 803b10e: 81fb strh r3, [r7, #14] lv_memset_00(btnm->ctrl_bits, sizeof(lv_btnmatrix_ctrl_t) * btn_cnt); - 803b1a4: 68bb ldr r3, [r7, #8] - 803b1a6: 6ada ldr r2, [r3, #44] ; 0x2c - 803b1a8: 89fb ldrh r3, [r7, #14] - 803b1aa: 005b lsls r3, r3, #1 - 803b1ac: 4619 mov r1, r3 - 803b1ae: 4610 mov r0, r2 - 803b1b0: f7f7 ffce bl 8033150 + 803b110: 68bb ldr r3, [r7, #8] + 803b112: 6ada ldr r2, [r3, #44] ; 0x2c + 803b114: 89fb ldrh r3, [r7, #14] + 803b116: 005b lsls r3, r3, #1 + 803b118: 4619 mov r1, r3 + 803b11a: 4610 mov r0, r2 + 803b11c: f7f7 ffce bl 80330bc btnm->btn_cnt = btn_cnt; - 803b1b4: 68bb ldr r3, [r7, #8] - 803b1b6: 89fa ldrh r2, [r7, #14] - 803b1b8: 861a strh r2, [r3, #48] ; 0x30 - 803b1ba: e000 b.n 803b1be + 803b120: 68bb ldr r3, [r7, #8] + 803b122: 89fa ldrh r2, [r7, #14] + 803b124: 861a strh r2, [r3, #48] ; 0x30 + 803b126: e000 b.n 803b12a if(btn_cnt == btnm->btn_cnt) return; - 803b1bc: bf00 nop + 803b128: bf00 nop } - 803b1be: 3710 adds r7, #16 - 803b1c0: 46bd mov sp, r7 - 803b1c2: bd80 pop {r7, pc} - 803b1c4: 0804716c .word 0x0804716c + 803b12a: 3710 adds r7, #16 + 803b12c: 46bd mov sp, r7 + 803b12e: bd80 pop {r7, pc} + 803b130: 080470c4 .word 0x080470c4 -0803b1c8 : +0803b134 : * Get the width of a button in units (default is 1). * @param ctrl_bits least significant 3 bits used (1..7 valid values) * @return the width of the button in units */ static uint8_t get_button_width(lv_btnmatrix_ctrl_t ctrl_bits) { - 803b1c8: b480 push {r7} - 803b1ca: b085 sub sp, #20 - 803b1cc: af00 add r7, sp, #0 - 803b1ce: 4603 mov r3, r0 - 803b1d0: 80fb strh r3, [r7, #6] + 803b134: b480 push {r7} + 803b136: b085 sub sp, #20 + 803b138: af00 add r7, sp, #0 + 803b13a: 4603 mov r3, r0 + 803b13c: 80fb strh r3, [r7, #6] uint8_t w = ctrl_bits & LV_BTNMATRIX_WIDTH_MASK; - 803b1d2: 88fb ldrh r3, [r7, #6] - 803b1d4: b2db uxtb r3, r3 - 803b1d6: f003 0307 and.w r3, r3, #7 - 803b1da: 73fb strb r3, [r7, #15] + 803b13e: 88fb ldrh r3, [r7, #6] + 803b140: b2db uxtb r3, r3 + 803b142: f003 0307 and.w r3, r3, #7 + 803b146: 73fb strb r3, [r7, #15] return w != 0 ? w : 1; - 803b1dc: 7bfb ldrb r3, [r7, #15] - 803b1de: 2b00 cmp r3, #0 - 803b1e0: d001 beq.n 803b1e6 - 803b1e2: 7bfb ldrb r3, [r7, #15] - 803b1e4: e000 b.n 803b1e8 - 803b1e6: 2301 movs r3, #1 + 803b148: 7bfb ldrb r3, [r7, #15] + 803b14a: 2b00 cmp r3, #0 + 803b14c: d001 beq.n 803b152 + 803b14e: 7bfb ldrb r3, [r7, #15] + 803b150: e000 b.n 803b154 + 803b152: 2301 movs r3, #1 } - 803b1e8: 4618 mov r0, r3 - 803b1ea: 3714 adds r7, #20 - 803b1ec: 46bd mov sp, r7 - 803b1ee: bc80 pop {r7} - 803b1f0: 4770 bx lr + 803b154: 4618 mov r0, r3 + 803b156: 3714 adds r7, #20 + 803b158: 46bd mov sp, r7 + 803b15a: bc80 pop {r7} + 803b15c: 4770 bx lr -0803b1f2 : +0803b15e : static bool button_is_hidden(lv_btnmatrix_ctrl_t ctrl_bits) { - 803b1f2: b480 push {r7} - 803b1f4: b083 sub sp, #12 - 803b1f6: af00 add r7, sp, #0 - 803b1f8: 4603 mov r3, r0 - 803b1fa: 80fb strh r3, [r7, #6] + 803b15e: b480 push {r7} + 803b160: b083 sub sp, #12 + 803b162: af00 add r7, sp, #0 + 803b164: 4603 mov r3, r0 + 803b166: 80fb strh r3, [r7, #6] return (ctrl_bits & LV_BTNMATRIX_CTRL_HIDDEN) ? true : false; - 803b1fc: 88fb ldrh r3, [r7, #6] - 803b1fe: 10db asrs r3, r3, #3 - 803b200: f003 0301 and.w r3, r3, #1 - 803b204: 2b00 cmp r3, #0 - 803b206: bf14 ite ne - 803b208: 2301 movne r3, #1 - 803b20a: 2300 moveq r3, #0 - 803b20c: b2db uxtb r3, r3 + 803b168: 88fb ldrh r3, [r7, #6] + 803b16a: 10db asrs r3, r3, #3 + 803b16c: f003 0301 and.w r3, r3, #1 + 803b170: 2b00 cmp r3, #0 + 803b172: bf14 ite ne + 803b174: 2301 movne r3, #1 + 803b176: 2300 moveq r3, #0 + 803b178: b2db uxtb r3, r3 } - 803b20e: 4618 mov r0, r3 - 803b210: 370c adds r7, #12 - 803b212: 46bd mov sp, r7 - 803b214: bc80 pop {r7} - 803b216: 4770 bx lr + 803b17a: 4618 mov r0, r3 + 803b17c: 370c adds r7, #12 + 803b17e: 46bd mov sp, r7 + 803b180: bc80 pop {r7} + 803b182: 4770 bx lr -0803b218 : +0803b184 : static bool button_is_checked(lv_btnmatrix_ctrl_t ctrl_bits) { - 803b218: b480 push {r7} - 803b21a: b083 sub sp, #12 - 803b21c: af00 add r7, sp, #0 - 803b21e: 4603 mov r3, r0 - 803b220: 80fb strh r3, [r7, #6] + 803b184: b480 push {r7} + 803b186: b083 sub sp, #12 + 803b188: af00 add r7, sp, #0 + 803b18a: 4603 mov r3, r0 + 803b18c: 80fb strh r3, [r7, #6] return (ctrl_bits & LV_BTNMATRIX_CTRL_CHECKED) ? true : false; - 803b222: 88fb ldrh r3, [r7, #6] - 803b224: 11db asrs r3, r3, #7 - 803b226: f003 0301 and.w r3, r3, #1 - 803b22a: 2b00 cmp r3, #0 - 803b22c: bf14 ite ne - 803b22e: 2301 movne r3, #1 - 803b230: 2300 moveq r3, #0 - 803b232: b2db uxtb r3, r3 + 803b18e: 88fb ldrh r3, [r7, #6] + 803b190: 11db asrs r3, r3, #7 + 803b192: f003 0301 and.w r3, r3, #1 + 803b196: 2b00 cmp r3, #0 + 803b198: bf14 ite ne + 803b19a: 2301 movne r3, #1 + 803b19c: 2300 moveq r3, #0 + 803b19e: b2db uxtb r3, r3 } - 803b234: 4618 mov r0, r3 - 803b236: 370c adds r7, #12 - 803b238: 46bd mov sp, r7 - 803b23a: bc80 pop {r7} - 803b23c: 4770 bx lr + 803b1a0: 4618 mov r0, r3 + 803b1a2: 370c adds r7, #12 + 803b1a4: 46bd mov sp, r7 + 803b1a6: bc80 pop {r7} + 803b1a8: 4770 bx lr -0803b23e : +0803b1aa : static bool button_is_repeat_disabled(lv_btnmatrix_ctrl_t ctrl_bits) { - 803b23e: b480 push {r7} - 803b240: b083 sub sp, #12 - 803b242: af00 add r7, sp, #0 - 803b244: 4603 mov r3, r0 - 803b246: 80fb strh r3, [r7, #6] + 803b1aa: b480 push {r7} + 803b1ac: b083 sub sp, #12 + 803b1ae: af00 add r7, sp, #0 + 803b1b0: 4603 mov r3, r0 + 803b1b2: 80fb strh r3, [r7, #6] return (ctrl_bits & LV_BTNMATRIX_CTRL_NO_REPEAT) ? true : false; - 803b248: 88fb ldrh r3, [r7, #6] - 803b24a: 111b asrs r3, r3, #4 - 803b24c: f003 0301 and.w r3, r3, #1 - 803b250: 2b00 cmp r3, #0 - 803b252: bf14 ite ne - 803b254: 2301 movne r3, #1 - 803b256: 2300 moveq r3, #0 - 803b258: b2db uxtb r3, r3 + 803b1b4: 88fb ldrh r3, [r7, #6] + 803b1b6: 111b asrs r3, r3, #4 + 803b1b8: f003 0301 and.w r3, r3, #1 + 803b1bc: 2b00 cmp r3, #0 + 803b1be: bf14 ite ne + 803b1c0: 2301 movne r3, #1 + 803b1c2: 2300 moveq r3, #0 + 803b1c4: b2db uxtb r3, r3 } - 803b25a: 4618 mov r0, r3 - 803b25c: 370c adds r7, #12 - 803b25e: 46bd mov sp, r7 - 803b260: bc80 pop {r7} - 803b262: 4770 bx lr + 803b1c6: 4618 mov r0, r3 + 803b1c8: 370c adds r7, #12 + 803b1ca: 46bd mov sp, r7 + 803b1cc: bc80 pop {r7} + 803b1ce: 4770 bx lr -0803b264 : +0803b1d0 : static bool button_is_inactive(lv_btnmatrix_ctrl_t ctrl_bits) { - 803b264: b480 push {r7} - 803b266: b083 sub sp, #12 - 803b268: af00 add r7, sp, #0 - 803b26a: 4603 mov r3, r0 - 803b26c: 80fb strh r3, [r7, #6] + 803b1d0: b480 push {r7} + 803b1d2: b083 sub sp, #12 + 803b1d4: af00 add r7, sp, #0 + 803b1d6: 4603 mov r3, r0 + 803b1d8: 80fb strh r3, [r7, #6] return (ctrl_bits & LV_BTNMATRIX_CTRL_DISABLED) ? true : false; - 803b26e: 88fb ldrh r3, [r7, #6] - 803b270: 115b asrs r3, r3, #5 - 803b272: f003 0301 and.w r3, r3, #1 - 803b276: 2b00 cmp r3, #0 - 803b278: bf14 ite ne - 803b27a: 2301 movne r3, #1 - 803b27c: 2300 moveq r3, #0 - 803b27e: b2db uxtb r3, r3 + 803b1da: 88fb ldrh r3, [r7, #6] + 803b1dc: 115b asrs r3, r3, #5 + 803b1de: f003 0301 and.w r3, r3, #1 + 803b1e2: 2b00 cmp r3, #0 + 803b1e4: bf14 ite ne + 803b1e6: 2301 movne r3, #1 + 803b1e8: 2300 moveq r3, #0 + 803b1ea: b2db uxtb r3, r3 } - 803b280: 4618 mov r0, r3 - 803b282: 370c adds r7, #12 - 803b284: 46bd mov sp, r7 - 803b286: bc80 pop {r7} - 803b288: 4770 bx lr + 803b1ec: 4618 mov r0, r3 + 803b1ee: 370c adds r7, #12 + 803b1f0: 46bd mov sp, r7 + 803b1f2: bc80 pop {r7} + 803b1f4: 4770 bx lr -0803b28a : +0803b1f6 : static bool button_is_click_trig(lv_btnmatrix_ctrl_t ctrl_bits) { - 803b28a: b480 push {r7} - 803b28c: b083 sub sp, #12 - 803b28e: af00 add r7, sp, #0 - 803b290: 4603 mov r3, r0 - 803b292: 80fb strh r3, [r7, #6] + 803b1f6: b480 push {r7} + 803b1f8: b083 sub sp, #12 + 803b1fa: af00 add r7, sp, #0 + 803b1fc: 4603 mov r3, r0 + 803b1fe: 80fb strh r3, [r7, #6] return (ctrl_bits & LV_BTNMATRIX_CTRL_CLICK_TRIG) ? true : false; - 803b294: 88fb ldrh r3, [r7, #6] - 803b296: 121b asrs r3, r3, #8 - 803b298: f003 0301 and.w r3, r3, #1 - 803b29c: 2b00 cmp r3, #0 - 803b29e: bf14 ite ne - 803b2a0: 2301 movne r3, #1 - 803b2a2: 2300 moveq r3, #0 - 803b2a4: b2db uxtb r3, r3 + 803b200: 88fb ldrh r3, [r7, #6] + 803b202: 121b asrs r3, r3, #8 + 803b204: f003 0301 and.w r3, r3, #1 + 803b208: 2b00 cmp r3, #0 + 803b20a: bf14 ite ne + 803b20c: 2301 movne r3, #1 + 803b20e: 2300 moveq r3, #0 + 803b210: b2db uxtb r3, r3 } - 803b2a6: 4618 mov r0, r3 - 803b2a8: 370c adds r7, #12 - 803b2aa: 46bd mov sp, r7 - 803b2ac: bc80 pop {r7} - 803b2ae: 4770 bx lr + 803b212: 4618 mov r0, r3 + 803b214: 370c adds r7, #12 + 803b216: 46bd mov sp, r7 + 803b218: bc80 pop {r7} + 803b21a: 4770 bx lr -0803b2b0 : +0803b21c : static bool button_is_popover(lv_btnmatrix_ctrl_t ctrl_bits) { - 803b2b0: b480 push {r7} - 803b2b2: b083 sub sp, #12 - 803b2b4: af00 add r7, sp, #0 - 803b2b6: 4603 mov r3, r0 - 803b2b8: 80fb strh r3, [r7, #6] + 803b21c: b480 push {r7} + 803b21e: b083 sub sp, #12 + 803b220: af00 add r7, sp, #0 + 803b222: 4603 mov r3, r0 + 803b224: 80fb strh r3, [r7, #6] return (ctrl_bits & LV_BTNMATRIX_CTRL_POPOVER) ? true : false; - 803b2ba: 88fb ldrh r3, [r7, #6] - 803b2bc: 125b asrs r3, r3, #9 - 803b2be: f003 0301 and.w r3, r3, #1 - 803b2c2: 2b00 cmp r3, #0 - 803b2c4: bf14 ite ne - 803b2c6: 2301 movne r3, #1 - 803b2c8: 2300 moveq r3, #0 - 803b2ca: b2db uxtb r3, r3 + 803b226: 88fb ldrh r3, [r7, #6] + 803b228: 125b asrs r3, r3, #9 + 803b22a: f003 0301 and.w r3, r3, #1 + 803b22e: 2b00 cmp r3, #0 + 803b230: bf14 ite ne + 803b232: 2301 movne r3, #1 + 803b234: 2300 moveq r3, #0 + 803b236: b2db uxtb r3, r3 } - 803b2cc: 4618 mov r0, r3 - 803b2ce: 370c adds r7, #12 - 803b2d0: 46bd mov sp, r7 - 803b2d2: bc80 pop {r7} - 803b2d4: 4770 bx lr + 803b238: 4618 mov r0, r3 + 803b23a: 370c adds r7, #12 + 803b23c: 46bd mov sp, r7 + 803b23e: bc80 pop {r7} + 803b240: 4770 bx lr -0803b2d6 : +0803b242 : static bool button_is_checkable(lv_btnmatrix_ctrl_t ctrl_bits) { - 803b2d6: b480 push {r7} - 803b2d8: b083 sub sp, #12 - 803b2da: af00 add r7, sp, #0 - 803b2dc: 4603 mov r3, r0 - 803b2de: 80fb strh r3, [r7, #6] + 803b242: b480 push {r7} + 803b244: b083 sub sp, #12 + 803b246: af00 add r7, sp, #0 + 803b248: 4603 mov r3, r0 + 803b24a: 80fb strh r3, [r7, #6] return (ctrl_bits & LV_BTNMATRIX_CTRL_CHECKABLE) ? true : false; - 803b2e0: 88fb ldrh r3, [r7, #6] - 803b2e2: 119b asrs r3, r3, #6 - 803b2e4: f003 0301 and.w r3, r3, #1 - 803b2e8: 2b00 cmp r3, #0 - 803b2ea: bf14 ite ne - 803b2ec: 2301 movne r3, #1 - 803b2ee: 2300 moveq r3, #0 - 803b2f0: b2db uxtb r3, r3 + 803b24c: 88fb ldrh r3, [r7, #6] + 803b24e: 119b asrs r3, r3, #6 + 803b250: f003 0301 and.w r3, r3, #1 + 803b254: 2b00 cmp r3, #0 + 803b256: bf14 ite ne + 803b258: 2301 movne r3, #1 + 803b25a: 2300 moveq r3, #0 + 803b25c: b2db uxtb r3, r3 } - 803b2f2: 4618 mov r0, r3 - 803b2f4: 370c adds r7, #12 - 803b2f6: 46bd mov sp, r7 - 803b2f8: bc80 pop {r7} - 803b2fa: 4770 bx lr + 803b25e: 4618 mov r0, r3 + 803b260: 370c adds r7, #12 + 803b262: 46bd mov sp, r7 + 803b264: bc80 pop {r7} + 803b266: 4770 bx lr -0803b2fc : +0803b268 : static bool button_get_checked(lv_btnmatrix_ctrl_t ctrl_bits) { - 803b2fc: b480 push {r7} - 803b2fe: b083 sub sp, #12 - 803b300: af00 add r7, sp, #0 - 803b302: 4603 mov r3, r0 - 803b304: 80fb strh r3, [r7, #6] + 803b268: b480 push {r7} + 803b26a: b083 sub sp, #12 + 803b26c: af00 add r7, sp, #0 + 803b26e: 4603 mov r3, r0 + 803b270: 80fb strh r3, [r7, #6] return (ctrl_bits & LV_BTNMATRIX_CTRL_CHECKED) ? true : false; - 803b306: 88fb ldrh r3, [r7, #6] - 803b308: 11db asrs r3, r3, #7 - 803b30a: f003 0301 and.w r3, r3, #1 - 803b30e: 2b00 cmp r3, #0 - 803b310: bf14 ite ne - 803b312: 2301 movne r3, #1 - 803b314: 2300 moveq r3, #0 - 803b316: b2db uxtb r3, r3 + 803b272: 88fb ldrh r3, [r7, #6] + 803b274: 11db asrs r3, r3, #7 + 803b276: f003 0301 and.w r3, r3, #1 + 803b27a: 2b00 cmp r3, #0 + 803b27c: bf14 ite ne + 803b27e: 2301 movne r3, #1 + 803b280: 2300 moveq r3, #0 + 803b282: b2db uxtb r3, r3 } - 803b318: 4618 mov r0, r3 - 803b31a: 370c adds r7, #12 - 803b31c: 46bd mov sp, r7 - 803b31e: bc80 pop {r7} - 803b320: 4770 bx lr + 803b284: 4618 mov r0, r3 + 803b286: 370c adds r7, #12 + 803b288: 46bd mov sp, r7 + 803b28a: bc80 pop {r7} + 803b28c: 4770 bx lr -0803b322 : +0803b28e : static bool button_is_recolor(lv_btnmatrix_ctrl_t ctrl_bits) { - 803b322: b480 push {r7} - 803b324: b083 sub sp, #12 - 803b326: af00 add r7, sp, #0 - 803b328: 4603 mov r3, r0 - 803b32a: 80fb strh r3, [r7, #6] + 803b28e: b480 push {r7} + 803b290: b083 sub sp, #12 + 803b292: af00 add r7, sp, #0 + 803b294: 4603 mov r3, r0 + 803b296: 80fb strh r3, [r7, #6] return (ctrl_bits & LV_BTNMATRIX_CTRL_RECOLOR) ? true : false; - 803b32c: 88fb ldrh r3, [r7, #6] - 803b32e: 131b asrs r3, r3, #12 - 803b330: f003 0301 and.w r3, r3, #1 - 803b334: 2b00 cmp r3, #0 - 803b336: bf14 ite ne - 803b338: 2301 movne r3, #1 - 803b33a: 2300 moveq r3, #0 - 803b33c: b2db uxtb r3, r3 + 803b298: 88fb ldrh r3, [r7, #6] + 803b29a: 131b asrs r3, r3, #12 + 803b29c: f003 0301 and.w r3, r3, #1 + 803b2a0: 2b00 cmp r3, #0 + 803b2a2: bf14 ite ne + 803b2a4: 2301 movne r3, #1 + 803b2a6: 2300 moveq r3, #0 + 803b2a8: b2db uxtb r3, r3 } - 803b33e: 4618 mov r0, r3 - 803b340: 370c adds r7, #12 - 803b342: 46bd mov sp, r7 - 803b344: bc80 pop {r7} - 803b346: 4770 bx lr + 803b2aa: 4618 mov r0, r3 + 803b2ac: 370c adds r7, #12 + 803b2ae: 46bd mov sp, r7 + 803b2b0: bc80 pop {r7} + 803b2b2: 4770 bx lr -0803b348 : +0803b2b4 : * @param obj pointer to a button matrix object * @param p a point with absolute coordinates * @return the id of the button or LV_BTNMATRIX_BTN_NONE. */ static uint16_t get_button_from_point(lv_obj_t * obj, lv_point_t * p) { - 803b348: b580 push {r7, lr} - 803b34a: b08c sub sp, #48 ; 0x30 - 803b34c: af00 add r7, sp, #0 - 803b34e: 6078 str r0, [r7, #4] - 803b350: 6039 str r1, [r7, #0] + 803b2b4: b580 push {r7, lr} + 803b2b6: b08c sub sp, #48 ; 0x30 + 803b2b8: af00 add r7, sp, #0 + 803b2ba: 6078 str r0, [r7, #4] + 803b2bc: 6039 str r1, [r7, #0] lv_area_t obj_cords; lv_area_t btn_area; lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj;; - 803b352: 687b ldr r3, [r7, #4] - 803b354: 62bb str r3, [r7, #40] ; 0x28 + 803b2be: 687b ldr r3, [r7, #4] + 803b2c0: 62bb str r3, [r7, #40] ; 0x28 uint16_t i; lv_obj_get_coords(obj, &obj_cords); - 803b356: f107 0310 add.w r3, r7, #16 - 803b35a: 4619 mov r1, r3 - 803b35c: 6878 ldr r0, [r7, #4] - 803b35e: f7ce fe55 bl 800a00c + 803b2c2: f107 0310 add.w r3, r7, #16 + 803b2c6: 4619 mov r1, r3 + 803b2c8: 6878 ldr r0, [r7, #4] + 803b2ca: f7ce fe69 bl 8009fa0 lv_coord_t w = lv_obj_get_width(obj); - 803b362: 6878 ldr r0, [r7, #4] - 803b364: f7ce fef0 bl 800a148 - 803b368: 4603 mov r3, r0 - 803b36a: 84fb strh r3, [r7, #38] ; 0x26 + 803b2ce: 6878 ldr r0, [r7, #4] + 803b2d0: f7ce ff04 bl 800a0dc + 803b2d4: 4603 mov r3, r0 + 803b2d6: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t h = lv_obj_get_height(obj); - 803b36c: 6878 ldr r0, [r7, #4] - 803b36e: f7ce fef9 bl 800a164 - 803b372: 4603 mov r3, r0 - 803b374: 84bb strh r3, [r7, #36] ; 0x24 + 803b2d8: 6878 ldr r0, [r7, #4] + 803b2da: f7ce ff0d bl 800a0f8 + 803b2de: 4603 mov r3, r0 + 803b2e0: 84bb strh r3, [r7, #36] ; 0x24 lv_coord_t pleft = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 803b376: 2100 movs r1, #0 - 803b378: 6878 ldr r0, [r7, #4] - 803b37a: f7fe f98f bl 803969c - 803b37e: 4603 mov r3, r0 - 803b380: 847b strh r3, [r7, #34] ; 0x22 + 803b2e2: 2100 movs r1, #0 + 803b2e4: 6878 ldr r0, [r7, #4] + 803b2e6: f7fe f98f bl 8039608 + 803b2ea: 4603 mov r3, r0 + 803b2ec: 847b strh r3, [r7, #34] ; 0x22 lv_coord_t pright = lv_obj_get_style_pad_right(obj, LV_PART_MAIN); - 803b382: 2100 movs r1, #0 - 803b384: 6878 ldr r0, [r7, #4] - 803b386: f7fe f99c bl 80396c2 - 803b38a: 4603 mov r3, r0 - 803b38c: 843b strh r3, [r7, #32] + 803b2ee: 2100 movs r1, #0 + 803b2f0: 6878 ldr r0, [r7, #4] + 803b2f2: f7fe f99c bl 803962e + 803b2f6: 4603 mov r3, r0 + 803b2f8: 843b strh r3, [r7, #32] lv_coord_t ptop = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 803b38e: 2100 movs r1, #0 - 803b390: 6878 ldr r0, [r7, #4] - 803b392: f7fe f95d bl 8039650 - 803b396: 4603 mov r3, r0 - 803b398: 83fb strh r3, [r7, #30] + 803b2fa: 2100 movs r1, #0 + 803b2fc: 6878 ldr r0, [r7, #4] + 803b2fe: f7fe f95d bl 80395bc + 803b302: 4603 mov r3, r0 + 803b304: 83fb strh r3, [r7, #30] lv_coord_t pbottom = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN); - 803b39a: 2100 movs r1, #0 - 803b39c: 6878 ldr r0, [r7, #4] - 803b39e: f7fe f96a bl 8039676 - 803b3a2: 4603 mov r3, r0 - 803b3a4: 83bb strh r3, [r7, #28] + 803b306: 2100 movs r1, #0 + 803b308: 6878 ldr r0, [r7, #4] + 803b30a: f7fe f96a bl 80395e2 + 803b30e: 4603 mov r3, r0 + 803b310: 83bb strh r3, [r7, #28] lv_coord_t prow = lv_obj_get_style_pad_row(obj, LV_PART_MAIN); - 803b3a6: 2100 movs r1, #0 - 803b3a8: 6878 ldr r0, [r7, #4] - 803b3aa: f7fe f99d bl 80396e8 - 803b3ae: 4603 mov r3, r0 - 803b3b0: 837b strh r3, [r7, #26] + 803b312: 2100 movs r1, #0 + 803b314: 6878 ldr r0, [r7, #4] + 803b316: f7fe f99d bl 8039654 + 803b31a: 4603 mov r3, r0 + 803b31c: 837b strh r3, [r7, #26] lv_coord_t pcol = lv_obj_get_style_pad_column(obj, LV_PART_MAIN); - 803b3b2: 2100 movs r1, #0 - 803b3b4: 6878 ldr r0, [r7, #4] - 803b3b6: f7fe f9aa bl 803970e - 803b3ba: 4603 mov r3, r0 - 803b3bc: 833b strh r3, [r7, #24] + 803b31e: 2100 movs r1, #0 + 803b320: 6878 ldr r0, [r7, #4] + 803b322: f7fe f9aa bl 803967a + 803b326: 4603 mov r3, r0 + 803b328: 833b strh r3, [r7, #24] /*Get the half gap. Button look larger with this value. (+1 for rounding error)*/ prow = (prow / 2) + 1 + (prow & 1); - 803b3be: f9b7 301a ldrsh.w r3, [r7, #26] - 803b3c2: 0fda lsrs r2, r3, #31 - 803b3c4: 4413 add r3, r2 - 803b3c6: 105b asrs r3, r3, #1 - 803b3c8: b21b sxth r3, r3 - 803b3ca: b29a uxth r2, r3 - 803b3cc: 8b7b ldrh r3, [r7, #26] - 803b3ce: f003 0301 and.w r3, r3, #1 - 803b3d2: b29b uxth r3, r3 - 803b3d4: 4413 add r3, r2 - 803b3d6: b29b uxth r3, r3 - 803b3d8: 3301 adds r3, #1 - 803b3da: b29b uxth r3, r3 - 803b3dc: 837b strh r3, [r7, #26] + 803b32a: f9b7 301a ldrsh.w r3, [r7, #26] + 803b32e: 0fda lsrs r2, r3, #31 + 803b330: 4413 add r3, r2 + 803b332: 105b asrs r3, r3, #1 + 803b334: b21b sxth r3, r3 + 803b336: b29a uxth r2, r3 + 803b338: 8b7b ldrh r3, [r7, #26] + 803b33a: f003 0301 and.w r3, r3, #1 + 803b33e: b29b uxth r3, r3 + 803b340: 4413 add r3, r2 + 803b342: b29b uxth r3, r3 + 803b344: 3301 adds r3, #1 + 803b346: b29b uxth r3, r3 + 803b348: 837b strh r3, [r7, #26] pcol = (pcol / 2) + 1 + (pcol & 1); - 803b3de: f9b7 3018 ldrsh.w r3, [r7, #24] - 803b3e2: 0fda lsrs r2, r3, #31 - 803b3e4: 4413 add r3, r2 - 803b3e6: 105b asrs r3, r3, #1 - 803b3e8: b21b sxth r3, r3 - 803b3ea: b29a uxth r2, r3 - 803b3ec: 8b3b ldrh r3, [r7, #24] - 803b3ee: f003 0301 and.w r3, r3, #1 - 803b3f2: b29b uxth r3, r3 - 803b3f4: 4413 add r3, r2 - 803b3f6: b29b uxth r3, r3 - 803b3f8: 3301 adds r3, #1 - 803b3fa: b29b uxth r3, r3 - 803b3fc: 833b strh r3, [r7, #24] + 803b34a: f9b7 3018 ldrsh.w r3, [r7, #24] + 803b34e: 0fda lsrs r2, r3, #31 + 803b350: 4413 add r3, r2 + 803b352: 105b asrs r3, r3, #1 + 803b354: b21b sxth r3, r3 + 803b356: b29a uxth r2, r3 + 803b358: 8b3b ldrh r3, [r7, #24] + 803b35a: f003 0301 and.w r3, r3, #1 + 803b35e: b29b uxth r3, r3 + 803b360: 4413 add r3, r2 + 803b362: b29b uxth r3, r3 + 803b364: 3301 adds r3, #1 + 803b366: b29b uxth r3, r3 + 803b368: 833b strh r3, [r7, #24] prow = LV_MIN(prow, BTN_EXTRA_CLICK_AREA_MAX); - 803b3fe: f9b7 301a ldrsh.w r3, [r7, #26] - 803b402: 2b0d cmp r3, #13 - 803b404: bfa8 it ge - 803b406: 230d movge r3, #13 - 803b408: 837b strh r3, [r7, #26] + 803b36a: f9b7 301a ldrsh.w r3, [r7, #26] + 803b36e: 2b0d cmp r3, #13 + 803b370: bfa8 it ge + 803b372: 230d movge r3, #13 + 803b374: 837b strh r3, [r7, #26] pcol = LV_MIN(pcol, BTN_EXTRA_CLICK_AREA_MAX); - 803b40a: f9b7 3018 ldrsh.w r3, [r7, #24] - 803b40e: 2b0d cmp r3, #13 - 803b410: bfa8 it ge - 803b412: 230d movge r3, #13 - 803b414: 833b strh r3, [r7, #24] + 803b376: f9b7 3018 ldrsh.w r3, [r7, #24] + 803b37a: 2b0d cmp r3, #13 + 803b37c: bfa8 it ge + 803b37e: 230d movge r3, #13 + 803b380: 833b strh r3, [r7, #24] pright = LV_MIN(pright, BTN_EXTRA_CLICK_AREA_MAX); - 803b416: f9b7 3020 ldrsh.w r3, [r7, #32] - 803b41a: 2b0d cmp r3, #13 - 803b41c: bfa8 it ge - 803b41e: 230d movge r3, #13 - 803b420: 843b strh r3, [r7, #32] + 803b382: f9b7 3020 ldrsh.w r3, [r7, #32] + 803b386: 2b0d cmp r3, #13 + 803b388: bfa8 it ge + 803b38a: 230d movge r3, #13 + 803b38c: 843b strh r3, [r7, #32] ptop = LV_MIN(ptop, BTN_EXTRA_CLICK_AREA_MAX); - 803b422: f9b7 301e ldrsh.w r3, [r7, #30] - 803b426: 2b0d cmp r3, #13 - 803b428: bfa8 it ge - 803b42a: 230d movge r3, #13 - 803b42c: 83fb strh r3, [r7, #30] + 803b38e: f9b7 301e ldrsh.w r3, [r7, #30] + 803b392: 2b0d cmp r3, #13 + 803b394: bfa8 it ge + 803b396: 230d movge r3, #13 + 803b398: 83fb strh r3, [r7, #30] pbottom = LV_MIN(pbottom, BTN_EXTRA_CLICK_AREA_MAX); - 803b42e: f9b7 301c ldrsh.w r3, [r7, #28] - 803b432: 2b0d cmp r3, #13 - 803b434: bfa8 it ge - 803b436: 230d movge r3, #13 - 803b438: 83bb strh r3, [r7, #28] + 803b39a: f9b7 301c ldrsh.w r3, [r7, #28] + 803b39e: 2b0d cmp r3, #13 + 803b3a0: bfa8 it ge + 803b3a2: 230d movge r3, #13 + 803b3a4: 83bb strh r3, [r7, #28] for(i = 0; i < btnm->btn_cnt; i++) { - 803b43a: 2300 movs r3, #0 - 803b43c: 85fb strh r3, [r7, #46] ; 0x2e - 803b43e: e0bd b.n 803b5bc + 803b3a6: 2300 movs r3, #0 + 803b3a8: 85fb strh r3, [r7, #46] ; 0x2e + 803b3aa: e0bd b.n 803b528 lv_area_copy(&btn_area, &btnm->button_areas[i]); - 803b440: 6abb ldr r3, [r7, #40] ; 0x28 - 803b442: 6a9a ldr r2, [r3, #40] ; 0x28 - 803b444: 8dfb ldrh r3, [r7, #46] ; 0x2e - 803b446: 00db lsls r3, r3, #3 - 803b448: 441a add r2, r3 - 803b44a: f107 0308 add.w r3, r7, #8 - 803b44e: 4611 mov r1, r2 - 803b450: 4618 mov r0, r3 - 803b452: f7fe f8b3 bl 80395bc + 803b3ac: 6abb ldr r3, [r7, #40] ; 0x28 + 803b3ae: 6a9a ldr r2, [r3, #40] ; 0x28 + 803b3b0: 8dfb ldrh r3, [r7, #46] ; 0x2e + 803b3b2: 00db lsls r3, r3, #3 + 803b3b4: 441a add r2, r3 + 803b3b6: f107 0308 add.w r3, r7, #8 + 803b3ba: 4611 mov r1, r2 + 803b3bc: 4618 mov r0, r3 + 803b3be: f7fe f8b3 bl 8039528 if(btn_area.x1 <= pleft) btn_area.x1 += obj_cords.x1 - LV_MIN(pleft, BTN_EXTRA_CLICK_AREA_MAX); - 803b456: f9b7 3008 ldrsh.w r3, [r7, #8] - 803b45a: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 - 803b45e: 429a cmp r2, r3 - 803b460: db13 blt.n 803b48a - 803b462: f9b7 3008 ldrsh.w r3, [r7, #8] - 803b466: b29a uxth r2, r3 - 803b468: f9b7 3010 ldrsh.w r3, [r7, #16] - 803b46c: b299 uxth r1, r3 - 803b46e: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 803b472: 2b0d cmp r3, #13 - 803b474: bfa8 it ge - 803b476: 230d movge r3, #13 - 803b478: b21b sxth r3, r3 - 803b47a: b29b uxth r3, r3 - 803b47c: 1acb subs r3, r1, r3 - 803b47e: b29b uxth r3, r3 - 803b480: 4413 add r3, r2 - 803b482: b29b uxth r3, r3 - 803b484: b21b sxth r3, r3 - 803b486: 813b strh r3, [r7, #8] - 803b488: e00c b.n 803b4a4 + 803b3c2: f9b7 3008 ldrsh.w r3, [r7, #8] + 803b3c6: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 + 803b3ca: 429a cmp r2, r3 + 803b3cc: db13 blt.n 803b3f6 + 803b3ce: f9b7 3008 ldrsh.w r3, [r7, #8] + 803b3d2: b29a uxth r2, r3 + 803b3d4: f9b7 3010 ldrsh.w r3, [r7, #16] + 803b3d8: b299 uxth r1, r3 + 803b3da: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 803b3de: 2b0d cmp r3, #13 + 803b3e0: bfa8 it ge + 803b3e2: 230d movge r3, #13 + 803b3e4: b21b sxth r3, r3 + 803b3e6: b29b uxth r3, r3 + 803b3e8: 1acb subs r3, r1, r3 + 803b3ea: b29b uxth r3, r3 + 803b3ec: 4413 add r3, r2 + 803b3ee: b29b uxth r3, r3 + 803b3f0: b21b sxth r3, r3 + 803b3f2: 813b strh r3, [r7, #8] + 803b3f4: e00c b.n 803b410 else btn_area.x1 += obj_cords.x1 - pcol; - 803b48a: f9b7 3008 ldrsh.w r3, [r7, #8] - 803b48e: b29a uxth r2, r3 - 803b490: f9b7 3010 ldrsh.w r3, [r7, #16] - 803b494: b299 uxth r1, r3 - 803b496: 8b3b ldrh r3, [r7, #24] - 803b498: 1acb subs r3, r1, r3 - 803b49a: b29b uxth r3, r3 - 803b49c: 4413 add r3, r2 - 803b49e: b29b uxth r3, r3 - 803b4a0: b21b sxth r3, r3 - 803b4a2: 813b strh r3, [r7, #8] + 803b3f6: f9b7 3008 ldrsh.w r3, [r7, #8] + 803b3fa: b29a uxth r2, r3 + 803b3fc: f9b7 3010 ldrsh.w r3, [r7, #16] + 803b400: b299 uxth r1, r3 + 803b402: 8b3b ldrh r3, [r7, #24] + 803b404: 1acb subs r3, r1, r3 + 803b406: b29b uxth r3, r3 + 803b408: 4413 add r3, r2 + 803b40a: b29b uxth r3, r3 + 803b40c: b21b sxth r3, r3 + 803b40e: 813b strh r3, [r7, #8] if(btn_area.y1 <= ptop) btn_area.y1 += obj_cords.y1 - LV_MIN(ptop, BTN_EXTRA_CLICK_AREA_MAX); - 803b4a4: f9b7 300a ldrsh.w r3, [r7, #10] - 803b4a8: f9b7 201e ldrsh.w r2, [r7, #30] - 803b4ac: 429a cmp r2, r3 - 803b4ae: db13 blt.n 803b4d8 - 803b4b0: f9b7 300a ldrsh.w r3, [r7, #10] - 803b4b4: b29a uxth r2, r3 - 803b4b6: f9b7 3012 ldrsh.w r3, [r7, #18] - 803b4ba: b299 uxth r1, r3 - 803b4bc: f9b7 301e ldrsh.w r3, [r7, #30] - 803b4c0: 2b0d cmp r3, #13 - 803b4c2: bfa8 it ge - 803b4c4: 230d movge r3, #13 - 803b4c6: b21b sxth r3, r3 - 803b4c8: b29b uxth r3, r3 - 803b4ca: 1acb subs r3, r1, r3 - 803b4cc: b29b uxth r3, r3 - 803b4ce: 4413 add r3, r2 - 803b4d0: b29b uxth r3, r3 - 803b4d2: b21b sxth r3, r3 - 803b4d4: 817b strh r3, [r7, #10] - 803b4d6: e00c b.n 803b4f2 + 803b410: f9b7 300a ldrsh.w r3, [r7, #10] + 803b414: f9b7 201e ldrsh.w r2, [r7, #30] + 803b418: 429a cmp r2, r3 + 803b41a: db13 blt.n 803b444 + 803b41c: f9b7 300a ldrsh.w r3, [r7, #10] + 803b420: b29a uxth r2, r3 + 803b422: f9b7 3012 ldrsh.w r3, [r7, #18] + 803b426: b299 uxth r1, r3 + 803b428: f9b7 301e ldrsh.w r3, [r7, #30] + 803b42c: 2b0d cmp r3, #13 + 803b42e: bfa8 it ge + 803b430: 230d movge r3, #13 + 803b432: b21b sxth r3, r3 + 803b434: b29b uxth r3, r3 + 803b436: 1acb subs r3, r1, r3 + 803b438: b29b uxth r3, r3 + 803b43a: 4413 add r3, r2 + 803b43c: b29b uxth r3, r3 + 803b43e: b21b sxth r3, r3 + 803b440: 817b strh r3, [r7, #10] + 803b442: e00c b.n 803b45e else btn_area.y1 += obj_cords.y1 - prow; - 803b4d8: f9b7 300a ldrsh.w r3, [r7, #10] - 803b4dc: b29a uxth r2, r3 - 803b4de: f9b7 3012 ldrsh.w r3, [r7, #18] - 803b4e2: b299 uxth r1, r3 - 803b4e4: 8b7b ldrh r3, [r7, #26] - 803b4e6: 1acb subs r3, r1, r3 + 803b444: f9b7 300a ldrsh.w r3, [r7, #10] + 803b448: b29a uxth r2, r3 + 803b44a: f9b7 3012 ldrsh.w r3, [r7, #18] + 803b44e: b299 uxth r1, r3 + 803b450: 8b7b ldrh r3, [r7, #26] + 803b452: 1acb subs r3, r1, r3 + 803b454: b29b uxth r3, r3 + 803b456: 4413 add r3, r2 + 803b458: b29b uxth r3, r3 + 803b45a: b21b sxth r3, r3 + 803b45c: 817b strh r3, [r7, #10] + + if(btn_area.x2 >= w - pright - 2) btn_area.x2 += obj_cords.x1 + LV_MIN(pright, + 803b45e: f9b7 300c ldrsh.w r3, [r7, #12] + 803b462: 4619 mov r1, r3 + 803b464: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 + 803b468: f9b7 3020 ldrsh.w r3, [r7, #32] + 803b46c: 1ad3 subs r3, r2, r3 + 803b46e: 3b02 subs r3, #2 + 803b470: 4299 cmp r1, r3 + 803b472: db13 blt.n 803b49c + 803b474: f9b7 300c ldrsh.w r3, [r7, #12] + 803b478: b29a uxth r2, r3 + 803b47a: f9b7 3010 ldrsh.w r3, [r7, #16] + 803b47e: b299 uxth r1, r3 + 803b480: f9b7 3020 ldrsh.w r3, [r7, #32] + 803b484: 2b0d cmp r3, #13 + 803b486: bfa8 it ge + 803b488: 230d movge r3, #13 + 803b48a: b21b sxth r3, r3 + 803b48c: b29b uxth r3, r3 + 803b48e: 440b add r3, r1 + 803b490: b29b uxth r3, r3 + 803b492: 4413 add r3, r2 + 803b494: b29b uxth r3, r3 + 803b496: b21b sxth r3, r3 + 803b498: 81bb strh r3, [r7, #12] + 803b49a: e00c b.n 803b4b6 + BTN_EXTRA_CLICK_AREA_MAX); /*-2 for rounding error*/ + else btn_area.x2 += obj_cords.x1 + pcol; + 803b49c: f9b7 300c ldrsh.w r3, [r7, #12] + 803b4a0: b29a uxth r2, r3 + 803b4a2: f9b7 3010 ldrsh.w r3, [r7, #16] + 803b4a6: b299 uxth r1, r3 + 803b4a8: 8b3b ldrh r3, [r7, #24] + 803b4aa: 440b add r3, r1 + 803b4ac: b29b uxth r3, r3 + 803b4ae: 4413 add r3, r2 + 803b4b0: b29b uxth r3, r3 + 803b4b2: b21b sxth r3, r3 + 803b4b4: 81bb strh r3, [r7, #12] + + if(btn_area.y2 >= h - pbottom - 2) btn_area.y2 += obj_cords.y1 + LV_MIN(pbottom, + 803b4b6: f9b7 300e ldrsh.w r3, [r7, #14] + 803b4ba: 4619 mov r1, r3 + 803b4bc: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 + 803b4c0: f9b7 301c ldrsh.w r3, [r7, #28] + 803b4c4: 1ad3 subs r3, r2, r3 + 803b4c6: 3b02 subs r3, #2 + 803b4c8: 4299 cmp r1, r3 + 803b4ca: db13 blt.n 803b4f4 + 803b4cc: f9b7 300e ldrsh.w r3, [r7, #14] + 803b4d0: b29a uxth r2, r3 + 803b4d2: f9b7 3012 ldrsh.w r3, [r7, #18] + 803b4d6: b299 uxth r1, r3 + 803b4d8: f9b7 301c ldrsh.w r3, [r7, #28] + 803b4dc: 2b0d cmp r3, #13 + 803b4de: bfa8 it ge + 803b4e0: 230d movge r3, #13 + 803b4e2: b21b sxth r3, r3 + 803b4e4: b29b uxth r3, r3 + 803b4e6: 440b add r3, r1 803b4e8: b29b uxth r3, r3 803b4ea: 4413 add r3, r2 803b4ec: b29b uxth r3, r3 803b4ee: b21b sxth r3, r3 - 803b4f0: 817b strh r3, [r7, #10] - - if(btn_area.x2 >= w - pright - 2) btn_area.x2 += obj_cords.x1 + LV_MIN(pright, - 803b4f2: f9b7 300c ldrsh.w r3, [r7, #12] - 803b4f6: 4619 mov r1, r3 - 803b4f8: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 - 803b4fc: f9b7 3020 ldrsh.w r3, [r7, #32] - 803b500: 1ad3 subs r3, r2, r3 - 803b502: 3b02 subs r3, #2 - 803b504: 4299 cmp r1, r3 - 803b506: db13 blt.n 803b530 - 803b508: f9b7 300c ldrsh.w r3, [r7, #12] - 803b50c: b29a uxth r2, r3 - 803b50e: f9b7 3010 ldrsh.w r3, [r7, #16] - 803b512: b299 uxth r1, r3 - 803b514: f9b7 3020 ldrsh.w r3, [r7, #32] - 803b518: 2b0d cmp r3, #13 - 803b51a: bfa8 it ge - 803b51c: 230d movge r3, #13 - 803b51e: b21b sxth r3, r3 - 803b520: b29b uxth r3, r3 - 803b522: 440b add r3, r1 - 803b524: b29b uxth r3, r3 - 803b526: 4413 add r3, r2 - 803b528: b29b uxth r3, r3 - 803b52a: b21b sxth r3, r3 - 803b52c: 81bb strh r3, [r7, #12] - 803b52e: e00c b.n 803b54a - BTN_EXTRA_CLICK_AREA_MAX); /*-2 for rounding error*/ - else btn_area.x2 += obj_cords.x1 + pcol; - 803b530: f9b7 300c ldrsh.w r3, [r7, #12] - 803b534: b29a uxth r2, r3 - 803b536: f9b7 3010 ldrsh.w r3, [r7, #16] - 803b53a: b299 uxth r1, r3 - 803b53c: 8b3b ldrh r3, [r7, #24] - 803b53e: 440b add r3, r1 - 803b540: b29b uxth r3, r3 - 803b542: 4413 add r3, r2 - 803b544: b29b uxth r3, r3 - 803b546: b21b sxth r3, r3 - 803b548: 81bb strh r3, [r7, #12] - - if(btn_area.y2 >= h - pbottom - 2) btn_area.y2 += obj_cords.y1 + LV_MIN(pbottom, - 803b54a: f9b7 300e ldrsh.w r3, [r7, #14] - 803b54e: 4619 mov r1, r3 - 803b550: f9b7 2024 ldrsh.w r2, [r7, #36] ; 0x24 - 803b554: f9b7 301c ldrsh.w r3, [r7, #28] - 803b558: 1ad3 subs r3, r2, r3 - 803b55a: 3b02 subs r3, #2 - 803b55c: 4299 cmp r1, r3 - 803b55e: db13 blt.n 803b588 - 803b560: f9b7 300e ldrsh.w r3, [r7, #14] - 803b564: b29a uxth r2, r3 - 803b566: f9b7 3012 ldrsh.w r3, [r7, #18] - 803b56a: b299 uxth r1, r3 - 803b56c: f9b7 301c ldrsh.w r3, [r7, #28] - 803b570: 2b0d cmp r3, #13 - 803b572: bfa8 it ge - 803b574: 230d movge r3, #13 - 803b576: b21b sxth r3, r3 - 803b578: b29b uxth r3, r3 - 803b57a: 440b add r3, r1 - 803b57c: b29b uxth r3, r3 - 803b57e: 4413 add r3, r2 - 803b580: b29b uxth r3, r3 - 803b582: b21b sxth r3, r3 - 803b584: 81fb strh r3, [r7, #14] - 803b586: e00c b.n 803b5a2 + 803b4f0: 81fb strh r3, [r7, #14] + 803b4f2: e00c b.n 803b50e BTN_EXTRA_CLICK_AREA_MAX); /*-2 for rounding error*/ else btn_area.y2 += obj_cords.y1 + prow; - 803b588: f9b7 300e ldrsh.w r3, [r7, #14] - 803b58c: b29a uxth r2, r3 - 803b58e: f9b7 3012 ldrsh.w r3, [r7, #18] - 803b592: b299 uxth r1, r3 - 803b594: 8b7b ldrh r3, [r7, #26] - 803b596: 440b add r3, r1 - 803b598: b29b uxth r3, r3 - 803b59a: 4413 add r3, r2 - 803b59c: b29b uxth r3, r3 - 803b59e: b21b sxth r3, r3 - 803b5a0: 81fb strh r3, [r7, #14] + 803b4f4: f9b7 300e ldrsh.w r3, [r7, #14] + 803b4f8: b29a uxth r2, r3 + 803b4fa: f9b7 3012 ldrsh.w r3, [r7, #18] + 803b4fe: b299 uxth r1, r3 + 803b500: 8b7b ldrh r3, [r7, #26] + 803b502: 440b add r3, r1 + 803b504: b29b uxth r3, r3 + 803b506: 4413 add r3, r2 + 803b508: b29b uxth r3, r3 + 803b50a: b21b sxth r3, r3 + 803b50c: 81fb strh r3, [r7, #14] if(_lv_area_is_point_on(&btn_area, p, 0) != false) { - 803b5a2: f107 0308 add.w r3, r7, #8 - 803b5a6: 2200 movs r2, #0 - 803b5a8: 6839 ldr r1, [r7, #0] - 803b5aa: 4618 mov r0, r3 - 803b5ac: f7f5 fe07 bl 80311be <_lv_area_is_point_on> - 803b5b0: 4603 mov r3, r0 - 803b5b2: 2b00 cmp r3, #0 - 803b5b4: d109 bne.n 803b5ca + 803b50e: f107 0308 add.w r3, r7, #8 + 803b512: 2200 movs r2, #0 + 803b514: 6839 ldr r1, [r7, #0] + 803b516: 4618 mov r0, r3 + 803b518: f7f5 fe07 bl 803112a <_lv_area_is_point_on> + 803b51c: 4603 mov r3, r0 + 803b51e: 2b00 cmp r3, #0 + 803b520: d109 bne.n 803b536 for(i = 0; i < btnm->btn_cnt; i++) { - 803b5b6: 8dfb ldrh r3, [r7, #46] ; 0x2e - 803b5b8: 3301 adds r3, #1 - 803b5ba: 85fb strh r3, [r7, #46] ; 0x2e - 803b5bc: 6abb ldr r3, [r7, #40] ; 0x28 - 803b5be: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803b5c0: 8dfa ldrh r2, [r7, #46] ; 0x2e - 803b5c2: 429a cmp r2, r3 - 803b5c4: f4ff af3c bcc.w 803b440 - 803b5c8: e000 b.n 803b5cc + 803b522: 8dfb ldrh r3, [r7, #46] ; 0x2e + 803b524: 3301 adds r3, #1 + 803b526: 85fb strh r3, [r7, #46] ; 0x2e + 803b528: 6abb ldr r3, [r7, #40] ; 0x28 + 803b52a: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803b52c: 8dfa ldrh r2, [r7, #46] ; 0x2e + 803b52e: 429a cmp r2, r3 + 803b530: f4ff af3c bcc.w 803b3ac + 803b534: e000 b.n 803b538 break; - 803b5ca: bf00 nop + 803b536: bf00 nop } } if(i == btnm->btn_cnt) i = LV_BTNMATRIX_BTN_NONE; - 803b5cc: 6abb ldr r3, [r7, #40] ; 0x28 - 803b5ce: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803b5d0: 8dfa ldrh r2, [r7, #46] ; 0x2e - 803b5d2: 429a cmp r2, r3 - 803b5d4: d102 bne.n 803b5dc - 803b5d6: f64f 73ff movw r3, #65535 ; 0xffff - 803b5da: 85fb strh r3, [r7, #46] ; 0x2e + 803b538: 6abb ldr r3, [r7, #40] ; 0x28 + 803b53a: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803b53c: 8dfa ldrh r2, [r7, #46] ; 0x2e + 803b53e: 429a cmp r2, r3 + 803b540: d102 bne.n 803b548 + 803b542: f64f 73ff movw r3, #65535 ; 0xffff + 803b546: 85fb strh r3, [r7, #46] ; 0x2e return i; - 803b5dc: 8dfb ldrh r3, [r7, #46] ; 0x2e + 803b548: 8dfb ldrh r3, [r7, #46] ; 0x2e } - 803b5de: 4618 mov r0, r3 - 803b5e0: 3730 adds r7, #48 ; 0x30 - 803b5e2: 46bd mov sp, r7 - 803b5e4: bd80 pop {r7, pc} + 803b54a: 4618 mov r0, r3 + 803b54c: 3730 adds r7, #48 ; 0x30 + 803b54e: 46bd mov sp, r7 + 803b550: bd80 pop {r7, pc} ... -0803b5e8 : +0803b554 : static void invalidate_button_area(const lv_obj_t * obj, uint16_t btn_idx) { - 803b5e8: b580 push {r7, lr} - 803b5ea: b08a sub sp, #40 ; 0x28 - 803b5ec: af00 add r7, sp, #0 - 803b5ee: 6078 str r0, [r7, #4] - 803b5f0: 460b mov r3, r1 - 803b5f2: 807b strh r3, [r7, #2] + 803b554: b580 push {r7, lr} + 803b556: b08a sub sp, #40 ; 0x28 + 803b558: af00 add r7, sp, #0 + 803b55a: 6078 str r0, [r7, #4] + 803b55c: 460b mov r3, r1 + 803b55e: 807b strh r3, [r7, #2] if(btn_idx == LV_BTNMATRIX_BTN_NONE) return; - 803b5f4: 887b ldrh r3, [r7, #2] - 803b5f6: f64f 72ff movw r2, #65535 ; 0xffff - 803b5fa: 4293 cmp r3, r2 - 803b5fc: f000 80a5 beq.w 803b74a + 803b560: 887b ldrh r3, [r7, #2] + 803b562: f64f 72ff movw r2, #65535 ; 0xffff + 803b566: 4293 cmp r3, r2 + 803b568: f000 80a5 beq.w 803b6b6 lv_area_t btn_area; lv_area_t obj_area; lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj;; - 803b600: 687b ldr r3, [r7, #4] - 803b602: 627b str r3, [r7, #36] ; 0x24 + 803b56c: 687b ldr r3, [r7, #4] + 803b56e: 627b str r3, [r7, #36] ; 0x24 if(btn_idx >= btnm->btn_cnt) return; - 803b604: 6a7b ldr r3, [r7, #36] ; 0x24 - 803b606: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803b608: 887a ldrh r2, [r7, #2] - 803b60a: 429a cmp r2, r3 - 803b60c: f080 809f bcs.w 803b74e + 803b570: 6a7b ldr r3, [r7, #36] ; 0x24 + 803b572: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803b574: 887a ldrh r2, [r7, #2] + 803b576: 429a cmp r2, r3 + 803b578: f080 809f bcs.w 803b6ba lv_area_copy(&btn_area, &btnm->button_areas[btn_idx]); - 803b610: 6a7b ldr r3, [r7, #36] ; 0x24 - 803b612: 6a9a ldr r2, [r3, #40] ; 0x28 - 803b614: 887b ldrh r3, [r7, #2] - 803b616: 00db lsls r3, r3, #3 - 803b618: 441a add r2, r3 - 803b61a: f107 0314 add.w r3, r7, #20 - 803b61e: 4611 mov r1, r2 - 803b620: 4618 mov r0, r3 - 803b622: f7fd ffcb bl 80395bc + 803b57c: 6a7b ldr r3, [r7, #36] ; 0x24 + 803b57e: 6a9a ldr r2, [r3, #40] ; 0x28 + 803b580: 887b ldrh r3, [r7, #2] + 803b582: 00db lsls r3, r3, #3 + 803b584: 441a add r2, r3 + 803b586: f107 0314 add.w r3, r7, #20 + 803b58a: 4611 mov r1, r2 + 803b58c: 4618 mov r0, r3 + 803b58e: f7fd ffcb bl 8039528 lv_obj_get_coords(obj, &obj_area); - 803b626: f107 030c add.w r3, r7, #12 - 803b62a: 4619 mov r1, r3 - 803b62c: 6878 ldr r0, [r7, #4] - 803b62e: f7ce fced bl 800a00c + 803b592: f107 030c add.w r3, r7, #12 + 803b596: 4619 mov r1, r3 + 803b598: 6878 ldr r0, [r7, #4] + 803b59a: f7ce fd01 bl 8009fa0 /*The buttons might have outline and shadow so make the invalidation larger with the gaps between the buttons. *It assumes that the outline or shadow is smaller than the gaps*/ lv_coord_t row_gap = lv_obj_get_style_pad_row(obj, LV_PART_MAIN); - 803b632: 2100 movs r1, #0 - 803b634: 6878 ldr r0, [r7, #4] - 803b636: f7fe f857 bl 80396e8 - 803b63a: 4603 mov r3, r0 - 803b63c: 847b strh r3, [r7, #34] ; 0x22 + 803b59e: 2100 movs r1, #0 + 803b5a0: 6878 ldr r0, [r7, #4] + 803b5a2: f7fe f857 bl 8039654 + 803b5a6: 4603 mov r3, r0 + 803b5a8: 847b strh r3, [r7, #34] ; 0x22 lv_coord_t col_gap = lv_obj_get_style_pad_column(obj, LV_PART_MAIN); - 803b63e: 2100 movs r1, #0 - 803b640: 6878 ldr r0, [r7, #4] - 803b642: f7fe f864 bl 803970e - 803b646: 4603 mov r3, r0 - 803b648: 843b strh r3, [r7, #32] + 803b5aa: 2100 movs r1, #0 + 803b5ac: 6878 ldr r0, [r7, #4] + 803b5ae: f7fe f864 bl 803967a + 803b5b2: 4603 mov r3, r0 + 803b5b4: 843b strh r3, [r7, #32] /*Be sure to have a minimal extra space if row/col_gap is small*/ lv_coord_t dpi = lv_disp_get_dpi(lv_obj_get_disp(obj)); - 803b64a: 6878 ldr r0, [r7, #4] - 803b64c: f7d4 f824 bl 800f698 - 803b650: 4603 mov r3, r0 - 803b652: 4618 mov r0, r3 - 803b654: f7f4 ff90 bl 8030578 - 803b658: 4603 mov r3, r0 - 803b65a: 83fb strh r3, [r7, #30] + 803b5b6: 6878 ldr r0, [r7, #4] + 803b5b8: f7d4 f824 bl 800f604 + 803b5bc: 4603 mov r3, r0 + 803b5be: 4618 mov r0, r3 + 803b5c0: f7f4 ff90 bl 80304e4 + 803b5c4: 4603 mov r3, r0 + 803b5c6: 83fb strh r3, [r7, #30] row_gap = LV_MAX(row_gap, dpi / 10); - 803b65c: f9b7 301e ldrsh.w r3, [r7, #30] - 803b660: 4a3d ldr r2, [pc, #244] ; (803b758 ) - 803b662: fb82 1203 smull r1, r2, r2, r3 - 803b666: 1092 asrs r2, r2, #2 - 803b668: 17db asrs r3, r3, #31 - 803b66a: 1ad3 subs r3, r2, r3 - 803b66c: b21b sxth r3, r3 - 803b66e: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 - 803b672: 4293 cmp r3, r2 - 803b674: bfb8 it lt - 803b676: 4613 movlt r3, r2 - 803b678: 847b strh r3, [r7, #34] ; 0x22 + 803b5c8: f9b7 301e ldrsh.w r3, [r7, #30] + 803b5cc: 4a3d ldr r2, [pc, #244] ; (803b6c4 ) + 803b5ce: fb82 1203 smull r1, r2, r2, r3 + 803b5d2: 1092 asrs r2, r2, #2 + 803b5d4: 17db asrs r3, r3, #31 + 803b5d6: 1ad3 subs r3, r2, r3 + 803b5d8: b21b sxth r3, r3 + 803b5da: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 + 803b5de: 4293 cmp r3, r2 + 803b5e0: bfb8 it lt + 803b5e2: 4613 movlt r3, r2 + 803b5e4: 847b strh r3, [r7, #34] ; 0x22 col_gap = LV_MAX(col_gap, dpi / 10); - 803b67a: f9b7 301e ldrsh.w r3, [r7, #30] - 803b67e: 4a36 ldr r2, [pc, #216] ; (803b758 ) - 803b680: fb82 1203 smull r1, r2, r2, r3 - 803b684: 1092 asrs r2, r2, #2 - 803b686: 17db asrs r3, r3, #31 - 803b688: 1ad3 subs r3, r2, r3 - 803b68a: b21b sxth r3, r3 - 803b68c: f9b7 2020 ldrsh.w r2, [r7, #32] - 803b690: 4293 cmp r3, r2 - 803b692: bfb8 it lt - 803b694: 4613 movlt r3, r2 - 803b696: 843b strh r3, [r7, #32] + 803b5e6: f9b7 301e ldrsh.w r3, [r7, #30] + 803b5ea: 4a36 ldr r2, [pc, #216] ; (803b6c4 ) + 803b5ec: fb82 1203 smull r1, r2, r2, r3 + 803b5f0: 1092 asrs r2, r2, #2 + 803b5f2: 17db asrs r3, r3, #31 + 803b5f4: 1ad3 subs r3, r2, r3 + 803b5f6: b21b sxth r3, r3 + 803b5f8: f9b7 2020 ldrsh.w r2, [r7, #32] + 803b5fc: 4293 cmp r3, r2 + 803b5fe: bfb8 it lt + 803b600: 4613 movlt r3, r2 + 803b602: 843b strh r3, [r7, #32] /*Convert relative coordinates to absolute*/ btn_area.x1 += obj_area.x1 - row_gap; - 803b698: f9b7 3014 ldrsh.w r3, [r7, #20] - 803b69c: b29a uxth r2, r3 - 803b69e: f9b7 300c ldrsh.w r3, [r7, #12] - 803b6a2: b299 uxth r1, r3 - 803b6a4: 8c7b ldrh r3, [r7, #34] ; 0x22 - 803b6a6: 1acb subs r3, r1, r3 - 803b6a8: b29b uxth r3, r3 - 803b6aa: 4413 add r3, r2 - 803b6ac: b29b uxth r3, r3 - 803b6ae: b21b sxth r3, r3 - 803b6b0: 82bb strh r3, [r7, #20] + 803b604: f9b7 3014 ldrsh.w r3, [r7, #20] + 803b608: b29a uxth r2, r3 + 803b60a: f9b7 300c ldrsh.w r3, [r7, #12] + 803b60e: b299 uxth r1, r3 + 803b610: 8c7b ldrh r3, [r7, #34] ; 0x22 + 803b612: 1acb subs r3, r1, r3 + 803b614: b29b uxth r3, r3 + 803b616: 4413 add r3, r2 + 803b618: b29b uxth r3, r3 + 803b61a: b21b sxth r3, r3 + 803b61c: 82bb strh r3, [r7, #20] btn_area.y1 += obj_area.y1 - col_gap; - 803b6b2: f9b7 3016 ldrsh.w r3, [r7, #22] - 803b6b6: b29a uxth r2, r3 - 803b6b8: f9b7 300e ldrsh.w r3, [r7, #14] - 803b6bc: b299 uxth r1, r3 - 803b6be: 8c3b ldrh r3, [r7, #32] - 803b6c0: 1acb subs r3, r1, r3 - 803b6c2: b29b uxth r3, r3 - 803b6c4: 4413 add r3, r2 - 803b6c6: b29b uxth r3, r3 - 803b6c8: b21b sxth r3, r3 - 803b6ca: 82fb strh r3, [r7, #22] + 803b61e: f9b7 3016 ldrsh.w r3, [r7, #22] + 803b622: b29a uxth r2, r3 + 803b624: f9b7 300e ldrsh.w r3, [r7, #14] + 803b628: b299 uxth r1, r3 + 803b62a: 8c3b ldrh r3, [r7, #32] + 803b62c: 1acb subs r3, r1, r3 + 803b62e: b29b uxth r3, r3 + 803b630: 4413 add r3, r2 + 803b632: b29b uxth r3, r3 + 803b634: b21b sxth r3, r3 + 803b636: 82fb strh r3, [r7, #22] btn_area.x2 += obj_area.x1 + row_gap; - 803b6cc: f9b7 3018 ldrsh.w r3, [r7, #24] - 803b6d0: b29a uxth r2, r3 - 803b6d2: f9b7 300c ldrsh.w r3, [r7, #12] - 803b6d6: b299 uxth r1, r3 - 803b6d8: 8c7b ldrh r3, [r7, #34] ; 0x22 - 803b6da: 440b add r3, r1 - 803b6dc: b29b uxth r3, r3 - 803b6de: 4413 add r3, r2 - 803b6e0: b29b uxth r3, r3 - 803b6e2: b21b sxth r3, r3 - 803b6e4: 833b strh r3, [r7, #24] + 803b638: f9b7 3018 ldrsh.w r3, [r7, #24] + 803b63c: b29a uxth r2, r3 + 803b63e: f9b7 300c ldrsh.w r3, [r7, #12] + 803b642: b299 uxth r1, r3 + 803b644: 8c7b ldrh r3, [r7, #34] ; 0x22 + 803b646: 440b add r3, r1 + 803b648: b29b uxth r3, r3 + 803b64a: 4413 add r3, r2 + 803b64c: b29b uxth r3, r3 + 803b64e: b21b sxth r3, r3 + 803b650: 833b strh r3, [r7, #24] btn_area.y2 += obj_area.y1 + col_gap; - 803b6e6: f9b7 301a ldrsh.w r3, [r7, #26] - 803b6ea: b29a uxth r2, r3 - 803b6ec: f9b7 300e ldrsh.w r3, [r7, #14] - 803b6f0: b299 uxth r1, r3 - 803b6f2: 8c3b ldrh r3, [r7, #32] - 803b6f4: 440b add r3, r1 - 803b6f6: b29b uxth r3, r3 - 803b6f8: 4413 add r3, r2 - 803b6fa: b29b uxth r3, r3 - 803b6fc: b21b sxth r3, r3 - 803b6fe: 837b strh r3, [r7, #26] + 803b652: f9b7 301a ldrsh.w r3, [r7, #26] + 803b656: b29a uxth r2, r3 + 803b658: f9b7 300e ldrsh.w r3, [r7, #14] + 803b65c: b299 uxth r1, r3 + 803b65e: 8c3b ldrh r3, [r7, #32] + 803b660: 440b add r3, r1 + 803b662: b29b uxth r3, r3 + 803b664: 4413 add r3, r2 + 803b666: b29b uxth r3, r3 + 803b668: b21b sxth r3, r3 + 803b66a: 837b strh r3, [r7, #26] if((btn_idx == btnm->btn_id_sel) && (btnm->ctrl_bits[btn_idx] & LV_BTNMATRIX_CTRL_POPOVER)) { - 803b700: 6a7b ldr r3, [r7, #36] ; 0x24 - 803b702: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803b704: 887a ldrh r2, [r7, #2] - 803b706: 429a cmp r2, r3 - 803b708: d118 bne.n 803b73c - 803b70a: 6a7b ldr r3, [r7, #36] ; 0x24 - 803b70c: 6ada ldr r2, [r3, #44] ; 0x2c - 803b70e: 887b ldrh r3, [r7, #2] - 803b710: 005b lsls r3, r3, #1 - 803b712: 4413 add r3, r2 - 803b714: 881b ldrh r3, [r3, #0] - 803b716: f403 7300 and.w r3, r3, #512 ; 0x200 - 803b71a: 2b00 cmp r3, #0 - 803b71c: d00e beq.n 803b73c + 803b66c: 6a7b ldr r3, [r7, #36] ; 0x24 + 803b66e: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803b670: 887a ldrh r2, [r7, #2] + 803b672: 429a cmp r2, r3 + 803b674: d118 bne.n 803b6a8 + 803b676: 6a7b ldr r3, [r7, #36] ; 0x24 + 803b678: 6ada ldr r2, [r3, #44] ; 0x2c + 803b67a: 887b ldrh r3, [r7, #2] + 803b67c: 005b lsls r3, r3, #1 + 803b67e: 4413 add r3, r2 + 803b680: 881b ldrh r3, [r3, #0] + 803b682: f403 7300 and.w r3, r3, #512 ; 0x200 + 803b686: 2b00 cmp r3, #0 + 803b688: d00e beq.n 803b6a8 /*Push up the upper boundary of the btn area to also invalidate the popover*/ btn_area.y1 -= lv_area_get_height(&btn_area); - 803b71e: f107 0314 add.w r3, r7, #20 - 803b722: 4618 mov r0, r3 - 803b724: f7fd ff7e bl 8039624 - 803b728: 4603 mov r3, r0 - 803b72a: 4619 mov r1, r3 - 803b72c: f9b7 3016 ldrsh.w r3, [r7, #22] - 803b730: b29a uxth r2, r3 - 803b732: b28b uxth r3, r1 - 803b734: 1ad3 subs r3, r2, r3 - 803b736: b29b uxth r3, r3 - 803b738: b21b sxth r3, r3 - 803b73a: 82fb strh r3, [r7, #22] + 803b68a: f107 0314 add.w r3, r7, #20 + 803b68e: 4618 mov r0, r3 + 803b690: f7fd ff7e bl 8039590 + 803b694: 4603 mov r3, r0 + 803b696: 4619 mov r1, r3 + 803b698: f9b7 3016 ldrsh.w r3, [r7, #22] + 803b69c: b29a uxth r2, r3 + 803b69e: b28b uxth r3, r1 + 803b6a0: 1ad3 subs r3, r2, r3 + 803b6a2: b29b uxth r3, r3 + 803b6a4: b21b sxth r3, r3 + 803b6a6: 82fb strh r3, [r7, #22] } lv_obj_invalidate_area(obj, &btn_area); - 803b73c: f107 0314 add.w r3, r7, #20 - 803b740: 4619 mov r1, r3 - 803b742: 6878 ldr r0, [r7, #4] - 803b744: f7cf f991 bl 800aa6a - 803b748: e002 b.n 803b750 + 803b6a8: f107 0314 add.w r3, r7, #20 + 803b6ac: 4619 mov r1, r3 + 803b6ae: 6878 ldr r0, [r7, #4] + 803b6b0: f7cf f9a5 bl 800a9fe + 803b6b4: e002 b.n 803b6bc if(btn_idx == LV_BTNMATRIX_BTN_NONE) return; - 803b74a: bf00 nop - 803b74c: e000 b.n 803b750 + 803b6b6: bf00 nop + 803b6b8: e000 b.n 803b6bc if(btn_idx >= btnm->btn_cnt) return; - 803b74e: bf00 nop + 803b6ba: bf00 nop } - 803b750: 3728 adds r7, #40 ; 0x28 - 803b752: 46bd mov sp, r7 - 803b754: bd80 pop {r7, pc} - 803b756: bf00 nop - 803b758: 66666667 .word 0x66666667 + 803b6bc: 3728 adds r7, #40 ; 0x28 + 803b6be: 46bd mov sp, r7 + 803b6c0: bd80 pop {r7, pc} + 803b6c2: bf00 nop + 803b6c4: 66666667 .word 0x66666667 -0803b75c : +0803b6c8 : * It simply clears the toggle flag on other buttons. * @param obj Button matrix object * @param btn_idx Button that should remain toggled */ static void make_one_button_checked(lv_obj_t * obj, uint16_t btn_idx) { - 803b75c: b580 push {r7, lr} - 803b75e: b084 sub sp, #16 - 803b760: af00 add r7, sp, #0 - 803b762: 6078 str r0, [r7, #4] - 803b764: 460b mov r3, r1 - 803b766: 807b strh r3, [r7, #2] + 803b6c8: b580 push {r7, lr} + 803b6ca: b084 sub sp, #16 + 803b6cc: af00 add r7, sp, #0 + 803b6ce: 6078 str r0, [r7, #4] + 803b6d0: 460b mov r3, r1 + 803b6d2: 807b strh r3, [r7, #2] /*Save whether the button was toggled*/ bool was_toggled = lv_btnmatrix_has_btn_ctrl(obj, btn_idx, LV_BTNMATRIX_CTRL_CHECKED); - 803b768: 887b ldrh r3, [r7, #2] - 803b76a: 2280 movs r2, #128 ; 0x80 - 803b76c: 4619 mov r1, r3 - 803b76e: 6878 ldr r0, [r7, #4] - 803b770: f7fe fad0 bl 8039d14 - 803b774: 4603 mov r3, r0 - 803b776: 73fb strb r3, [r7, #15] + 803b6d4: 887b ldrh r3, [r7, #2] + 803b6d6: 2280 movs r2, #128 ; 0x80 + 803b6d8: 4619 mov r1, r3 + 803b6da: 6878 ldr r0, [r7, #4] + 803b6dc: f7fe fad0 bl 8039c80 + 803b6e0: 4603 mov r3, r0 + 803b6e2: 73fb strb r3, [r7, #15] lv_btnmatrix_clear_btn_ctrl_all(obj, LV_BTNMATRIX_CTRL_CHECKED); - 803b778: 2180 movs r1, #128 ; 0x80 - 803b77a: 6878 ldr r0, [r7, #4] - 803b77c: f7fe fa3f bl 8039bfe + 803b6e4: 2180 movs r1, #128 ; 0x80 + 803b6e6: 6878 ldr r0, [r7, #4] + 803b6e8: f7fe fa3f bl 8039b6a if(was_toggled) lv_btnmatrix_set_btn_ctrl(obj, btn_idx, LV_BTNMATRIX_CTRL_CHECKED); - 803b780: 7bfb ldrb r3, [r7, #15] - 803b782: 2b00 cmp r3, #0 - 803b784: d005 beq.n 803b792 - 803b786: 887b ldrh r3, [r7, #2] - 803b788: 2280 movs r2, #128 ; 0x80 - 803b78a: 4619 mov r1, r3 - 803b78c: 6878 ldr r0, [r7, #4] - 803b78e: f7fe f9a2 bl 8039ad6 + 803b6ec: 7bfb ldrb r3, [r7, #15] + 803b6ee: 2b00 cmp r3, #0 + 803b6f0: d005 beq.n 803b6fe + 803b6f2: 887b ldrh r3, [r7, #2] + 803b6f4: 2280 movs r2, #128 ; 0x80 + 803b6f6: 4619 mov r1, r3 + 803b6f8: 6878 ldr r0, [r7, #4] + 803b6fa: f7fe f9a2 bl 8039a42 } - 803b792: bf00 nop - 803b794: 3710 adds r7, #16 - 803b796: 46bd mov sp, r7 - 803b798: bd80 pop {r7, pc} + 803b6fe: bf00 nop + 803b700: 3710 adds r7, #16 + 803b702: 46bd mov sp, r7 + 803b704: bd80 pop {r7, pc} ... -0803b79c : +0803b708 : * Check if any of the buttons in the first row has the LV_BTNMATRIX_CTRL_POPOVER control flag set. * @param obj Button matrix object * @return true if at least one button has the flag, false otherwise */ static bool has_popovers_in_top_row(lv_obj_t * obj) { - 803b79c: b580 push {r7, lr} - 803b79e: b086 sub sp, #24 - 803b7a0: af00 add r7, sp, #0 - 803b7a2: 6078 str r0, [r7, #4] + 803b708: b580 push {r7, lr} + 803b70a: b086 sub sp, #24 + 803b70c: af00 add r7, sp, #0 + 803b70e: 6078 str r0, [r7, #4] lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj; - 803b7a4: 687b ldr r3, [r7, #4] - 803b7a6: 613b str r3, [r7, #16] + 803b710: 687b ldr r3, [r7, #4] + 803b712: 613b str r3, [r7, #16] if(btnm->row_cnt <= 0) { - 803b7a8: 693b ldr r3, [r7, #16] - 803b7aa: 8e5b ldrh r3, [r3, #50] ; 0x32 - 803b7ac: 2b00 cmp r3, #0 - 803b7ae: d101 bne.n 803b7b4 + 803b714: 693b ldr r3, [r7, #16] + 803b716: 8e5b ldrh r3, [r3, #50] ; 0x32 + 803b718: 2b00 cmp r3, #0 + 803b71a: d101 bne.n 803b720 return false; - 803b7b0: 2300 movs r3, #0 - 803b7b2: e032 b.n 803b81a + 803b71c: 2300 movs r3, #0 + 803b71e: e032 b.n 803b786 } const char ** map_row = btnm->map_p; - 803b7b4: 693b ldr r3, [r7, #16] - 803b7b6: 6a5b ldr r3, [r3, #36] ; 0x24 - 803b7b8: 60fb str r3, [r7, #12] + 803b720: 693b ldr r3, [r7, #16] + 803b722: 6a5b ldr r3, [r3, #36] ; 0x24 + 803b724: 60fb str r3, [r7, #12] uint16_t btn_cnt = 0; - 803b7ba: 2300 movs r3, #0 - 803b7bc: 82fb strh r3, [r7, #22] + 803b726: 2300 movs r3, #0 + 803b728: 82fb strh r3, [r7, #22] while(map_row[btn_cnt] && strcmp(map_row[btn_cnt], "\n") != 0 && map_row[btn_cnt][0] != '\0') { - 803b7be: e010 b.n 803b7e2 + 803b72a: e010 b.n 803b74e if(button_is_popover(btnm->ctrl_bits[btn_cnt])) { - 803b7c0: 693b ldr r3, [r7, #16] - 803b7c2: 6ada ldr r2, [r3, #44] ; 0x2c - 803b7c4: 8afb ldrh r3, [r7, #22] - 803b7c6: 005b lsls r3, r3, #1 - 803b7c8: 4413 add r3, r2 - 803b7ca: 881b ldrh r3, [r3, #0] - 803b7cc: 4618 mov r0, r3 - 803b7ce: f7ff fd6f bl 803b2b0 - 803b7d2: 4603 mov r3, r0 - 803b7d4: 2b00 cmp r3, #0 - 803b7d6: d001 beq.n 803b7dc + 803b72c: 693b ldr r3, [r7, #16] + 803b72e: 6ada ldr r2, [r3, #44] ; 0x2c + 803b730: 8afb ldrh r3, [r7, #22] + 803b732: 005b lsls r3, r3, #1 + 803b734: 4413 add r3, r2 + 803b736: 881b ldrh r3, [r3, #0] + 803b738: 4618 mov r0, r3 + 803b73a: f7ff fd6f bl 803b21c + 803b73e: 4603 mov r3, r0 + 803b740: 2b00 cmp r3, #0 + 803b742: d001 beq.n 803b748 return true; - 803b7d8: 2301 movs r3, #1 - 803b7da: e01e b.n 803b81a + 803b744: 2301 movs r3, #1 + 803b746: e01e b.n 803b786 } btn_cnt++; - 803b7dc: 8afb ldrh r3, [r7, #22] - 803b7de: 3301 adds r3, #1 - 803b7e0: 82fb strh r3, [r7, #22] + 803b748: 8afb ldrh r3, [r7, #22] + 803b74a: 3301 adds r3, #1 + 803b74c: 82fb strh r3, [r7, #22] while(map_row[btn_cnt] && strcmp(map_row[btn_cnt], "\n") != 0 && map_row[btn_cnt][0] != '\0') { - 803b7e2: 8afb ldrh r3, [r7, #22] - 803b7e4: 009b lsls r3, r3, #2 - 803b7e6: 68fa ldr r2, [r7, #12] - 803b7e8: 4413 add r3, r2 - 803b7ea: 681b ldr r3, [r3, #0] - 803b7ec: 2b00 cmp r3, #0 - 803b7ee: d013 beq.n 803b818 - 803b7f0: 8afb ldrh r3, [r7, #22] - 803b7f2: 009b lsls r3, r3, #2 - 803b7f4: 68fa ldr r2, [r7, #12] - 803b7f6: 4413 add r3, r2 - 803b7f8: 681b ldr r3, [r3, #0] - 803b7fa: 490a ldr r1, [pc, #40] ; (803b824 ) - 803b7fc: 4618 mov r0, r3 - 803b7fe: f7c4 fd11 bl 8000224 - 803b802: 4603 mov r3, r0 - 803b804: 2b00 cmp r3, #0 - 803b806: d007 beq.n 803b818 - 803b808: 8afb ldrh r3, [r7, #22] - 803b80a: 009b lsls r3, r3, #2 - 803b80c: 68fa ldr r2, [r7, #12] - 803b80e: 4413 add r3, r2 - 803b810: 681b ldr r3, [r3, #0] - 803b812: 781b ldrb r3, [r3, #0] - 803b814: 2b00 cmp r3, #0 - 803b816: d1d3 bne.n 803b7c0 + 803b74e: 8afb ldrh r3, [r7, #22] + 803b750: 009b lsls r3, r3, #2 + 803b752: 68fa ldr r2, [r7, #12] + 803b754: 4413 add r3, r2 + 803b756: 681b ldr r3, [r3, #0] + 803b758: 2b00 cmp r3, #0 + 803b75a: d013 beq.n 803b784 + 803b75c: 8afb ldrh r3, [r7, #22] + 803b75e: 009b lsls r3, r3, #2 + 803b760: 68fa ldr r2, [r7, #12] + 803b762: 4413 add r3, r2 + 803b764: 681b ldr r3, [r3, #0] + 803b766: 490a ldr r1, [pc, #40] ; (803b790 ) + 803b768: 4618 mov r0, r3 + 803b76a: f7c4 fd5b bl 8000224 + 803b76e: 4603 mov r3, r0 + 803b770: 2b00 cmp r3, #0 + 803b772: d007 beq.n 803b784 + 803b774: 8afb ldrh r3, [r7, #22] + 803b776: 009b lsls r3, r3, #2 + 803b778: 68fa ldr r2, [r7, #12] + 803b77a: 4413 add r3, r2 + 803b77c: 681b ldr r3, [r3, #0] + 803b77e: 781b ldrb r3, [r3, #0] + 803b780: 2b00 cmp r3, #0 + 803b782: d1d3 bne.n 803b72c } return false; - 803b818: 2300 movs r3, #0 + 803b784: 2300 movs r3, #0 } - 803b81a: 4618 mov r0, r3 - 803b81c: 3718 adds r7, #24 - 803b81e: 46bd mov sp, r7 - 803b820: bd80 pop {r7, pc} - 803b822: bf00 nop - 803b824: 0804716c .word 0x0804716c + 803b786: 4618 mov r0, r3 + 803b788: 3718 adds r7, #24 + 803b78a: 46bd mov sp, r7 + 803b78c: bd80 pop {r7, pc} + 803b78e: bf00 nop + 803b790: 080470c4 .word 0x080470c4 -0803b828 : +0803b794 : { - 803b828: b480 push {r7} - 803b82a: b083 sub sp, #12 - 803b82c: af00 add r7, sp, #0 - 803b82e: 6078 str r0, [r7, #4] - 803b830: 6039 str r1, [r7, #0] + 803b794: b480 push {r7} + 803b796: b083 sub sp, #12 + 803b798: af00 add r7, sp, #0 + 803b79a: 6078 str r0, [r7, #4] + 803b79c: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 803b832: 683b ldr r3, [r7, #0] - 803b834: f9b3 2000 ldrsh.w r2, [r3] - 803b838: 687b ldr r3, [r7, #4] - 803b83a: 801a strh r2, [r3, #0] + 803b79e: 683b ldr r3, [r7, #0] + 803b7a0: f9b3 2000 ldrsh.w r2, [r3] + 803b7a4: 687b ldr r3, [r7, #4] + 803b7a6: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 803b83c: 683b ldr r3, [r7, #0] - 803b83e: f9b3 2002 ldrsh.w r2, [r3, #2] - 803b842: 687b ldr r3, [r7, #4] - 803b844: 805a strh r2, [r3, #2] + 803b7a8: 683b ldr r3, [r7, #0] + 803b7aa: f9b3 2002 ldrsh.w r2, [r3, #2] + 803b7ae: 687b ldr r3, [r7, #4] + 803b7b0: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 803b846: 683b ldr r3, [r7, #0] - 803b848: f9b3 2004 ldrsh.w r2, [r3, #4] - 803b84c: 687b ldr r3, [r7, #4] - 803b84e: 809a strh r2, [r3, #4] + 803b7b2: 683b ldr r3, [r7, #0] + 803b7b4: f9b3 2004 ldrsh.w r2, [r3, #4] + 803b7b8: 687b ldr r3, [r7, #4] + 803b7ba: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 803b850: 683b ldr r3, [r7, #0] - 803b852: f9b3 2006 ldrsh.w r2, [r3, #6] - 803b856: 687b ldr r3, [r7, #4] - 803b858: 80da strh r2, [r3, #6] + 803b7bc: 683b ldr r3, [r7, #0] + 803b7be: f9b3 2006 ldrsh.w r2, [r3, #6] + 803b7c2: 687b ldr r3, [r7, #4] + 803b7c4: 80da strh r2, [r3, #6] } - 803b85a: bf00 nop - 803b85c: 370c adds r7, #12 - 803b85e: 46bd mov sp, r7 - 803b860: bc80 pop {r7} - 803b862: 4770 bx lr + 803b7c6: bf00 nop + 803b7c8: 370c adds r7, #12 + 803b7ca: 46bd mov sp, r7 + 803b7cc: bc80 pop {r7} + 803b7ce: 4770 bx lr -0803b864 : +0803b7d0 : { - 803b864: b480 push {r7} - 803b866: b083 sub sp, #12 - 803b868: af00 add r7, sp, #0 - 803b86a: 6078 str r0, [r7, #4] + 803b7d0: b480 push {r7} + 803b7d2: b083 sub sp, #12 + 803b7d4: af00 add r7, sp, #0 + 803b7d6: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 803b86c: 687b ldr r3, [r7, #4] - 803b86e: f9b3 3006 ldrsh.w r3, [r3, #6] - 803b872: b29a uxth r2, r3 - 803b874: 687b ldr r3, [r7, #4] - 803b876: f9b3 3002 ldrsh.w r3, [r3, #2] - 803b87a: b29b uxth r3, r3 - 803b87c: 1ad3 subs r3, r2, r3 - 803b87e: b29b uxth r3, r3 - 803b880: 3301 adds r3, #1 - 803b882: b29b uxth r3, r3 - 803b884: b21b sxth r3, r3 + 803b7d8: 687b ldr r3, [r7, #4] + 803b7da: f9b3 3006 ldrsh.w r3, [r3, #6] + 803b7de: b29a uxth r2, r3 + 803b7e0: 687b ldr r3, [r7, #4] + 803b7e2: f9b3 3002 ldrsh.w r3, [r3, #2] + 803b7e6: b29b uxth r3, r3 + 803b7e8: 1ad3 subs r3, r2, r3 + 803b7ea: b29b uxth r3, r3 + 803b7ec: 3301 adds r3, #1 + 803b7ee: b29b uxth r3, r3 + 803b7f0: b21b sxth r3, r3 } - 803b886: 4618 mov r0, r3 - 803b888: 370c adds r7, #12 - 803b88a: 46bd mov sp, r7 - 803b88c: bc80 pop {r7} - 803b88e: 4770 bx lr + 803b7f2: 4618 mov r0, r3 + 803b7f4: 370c adds r7, #12 + 803b7f6: 46bd mov sp, r7 + 803b7f8: bc80 pop {r7} + 803b7fa: 4770 bx lr -0803b890 : +0803b7fc : * Get the line height of a font. All characters fit into this height * @param font_p pointer to a font * @return the height of a font */ static inline lv_coord_t lv_font_get_line_height(const lv_font_t * font_p) { - 803b890: b480 push {r7} - 803b892: b083 sub sp, #12 - 803b894: af00 add r7, sp, #0 - 803b896: 6078 str r0, [r7, #4] + 803b7fc: b480 push {r7} + 803b7fe: b083 sub sp, #12 + 803b800: af00 add r7, sp, #0 + 803b802: 6078 str r0, [r7, #4] return font_p->line_height; - 803b898: 687b ldr r3, [r7, #4] - 803b89a: f9b3 3008 ldrsh.w r3, [r3, #8] + 803b804: 687b ldr r3, [r7, #4] + 803b806: f9b3 3008 ldrsh.w r3, [r3, #8] } - 803b89e: 4618 mov r0, r3 - 803b8a0: 370c adds r7, #12 - 803b8a2: 46bd mov sp, r7 - 803b8a4: bc80 pop {r7} - 803b8a6: 4770 bx lr + 803b80a: 4618 mov r0, r3 + 803b80c: 370c adds r7, #12 + 803b80e: 46bd mov sp, r7 + 803b810: bc80 pop {r7} + 803b812: 4770 bx lr -0803b8a8 : +0803b814 : { - 803b8a8: b580 push {r7, lr} - 803b8aa: b084 sub sp, #16 - 803b8ac: af00 add r7, sp, #0 - 803b8ae: 6078 str r0, [r7, #4] - 803b8b0: 6039 str r1, [r7, #0] + 803b814: b580 push {r7, lr} + 803b816: b084 sub sp, #16 + 803b818: af00 add r7, sp, #0 + 803b81a: 6078 str r0, [r7, #4] + 803b81c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_WIDTH); - 803b8b2: f640 020a movw r2, #2058 ; 0x80a - 803b8b6: 6839 ldr r1, [r7, #0] - 803b8b8: 6878 ldr r0, [r7, #4] - 803b8ba: f7d2 fa79 bl 800ddb0 - 803b8be: 4603 mov r3, r0 - 803b8c0: 60fb str r3, [r7, #12] + 803b81e: f640 020a movw r2, #2058 ; 0x80a + 803b822: 6839 ldr r1, [r7, #0] + 803b824: 6878 ldr r0, [r7, #4] + 803b826: f7d2 fa8d bl 800dd44 + 803b82a: 4603 mov r3, r0 + 803b82c: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803b8c2: 68fb ldr r3, [r7, #12] - 803b8c4: b21b sxth r3, r3 + 803b82e: 68fb ldr r3, [r7, #12] + 803b830: b21b sxth r3, r3 } - 803b8c6: 4618 mov r0, r3 - 803b8c8: 3710 adds r7, #16 - 803b8ca: 46bd mov sp, r7 - 803b8cc: bd80 pop {r7, pc} + 803b832: 4618 mov r0, r3 + 803b834: 3710 adds r7, #16 + 803b836: 46bd mov sp, r7 + 803b838: bd80 pop {r7, pc} -0803b8ce : +0803b83a : { - 803b8ce: b580 push {r7, lr} - 803b8d0: b084 sub sp, #16 - 803b8d2: af00 add r7, sp, #0 - 803b8d4: 6078 str r0, [r7, #4] - 803b8d6: 6039 str r1, [r7, #0] + 803b83a: b580 push {r7, lr} + 803b83c: b084 sub sp, #16 + 803b83e: af00 add r7, sp, #0 + 803b840: 6078 str r0, [r7, #4] + 803b842: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_HEIGHT); - 803b8d8: f640 020b movw r2, #2059 ; 0x80b - 803b8dc: 6839 ldr r1, [r7, #0] - 803b8de: 6878 ldr r0, [r7, #4] - 803b8e0: f7d2 fa66 bl 800ddb0 - 803b8e4: 4603 mov r3, r0 - 803b8e6: 60fb str r3, [r7, #12] + 803b844: f640 020b movw r2, #2059 ; 0x80b + 803b848: 6839 ldr r1, [r7, #0] + 803b84a: 6878 ldr r0, [r7, #4] + 803b84c: f7d2 fa7a bl 800dd44 + 803b850: 4603 mov r3, r0 + 803b852: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803b8e8: 68fb ldr r3, [r7, #12] - 803b8ea: b21b sxth r3, r3 + 803b854: 68fb ldr r3, [r7, #12] + 803b856: b21b sxth r3, r3 } - 803b8ec: 4618 mov r0, r3 - 803b8ee: 3710 adds r7, #16 - 803b8f0: 46bd mov sp, r7 - 803b8f2: bd80 pop {r7, pc} + 803b858: 4618 mov r0, r3 + 803b85a: 3710 adds r7, #16 + 803b85c: 46bd mov sp, r7 + 803b85e: bd80 pop {r7, pc} -0803b8f4 : +0803b860 : { - 803b8f4: b580 push {r7, lr} - 803b8f6: b084 sub sp, #16 - 803b8f8: af00 add r7, sp, #0 - 803b8fa: 6078 str r0, [r7, #4] - 803b8fc: 6039 str r1, [r7, #0] + 803b860: b580 push {r7, lr} + 803b862: b084 sub sp, #16 + 803b864: af00 add r7, sp, #0 + 803b866: 6078 str r0, [r7, #4] + 803b868: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 803b8fe: f641 0210 movw r2, #6160 ; 0x1810 - 803b902: 6839 ldr r1, [r7, #0] - 803b904: 6878 ldr r0, [r7, #4] - 803b906: f7d2 fa53 bl 800ddb0 - 803b90a: 4603 mov r3, r0 - 803b90c: 60fb str r3, [r7, #12] + 803b86a: f641 0210 movw r2, #6160 ; 0x1810 + 803b86e: 6839 ldr r1, [r7, #0] + 803b870: 6878 ldr r0, [r7, #4] + 803b872: f7d2 fa67 bl 800dd44 + 803b876: 4603 mov r3, r0 + 803b878: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803b90e: 68fb ldr r3, [r7, #12] - 803b910: b21b sxth r3, r3 + 803b87a: 68fb ldr r3, [r7, #12] + 803b87c: b21b sxth r3, r3 } - 803b912: 4618 mov r0, r3 - 803b914: 3710 adds r7, #16 - 803b916: 46bd mov sp, r7 - 803b918: bd80 pop {r7, pc} + 803b87e: 4618 mov r0, r3 + 803b880: 3710 adds r7, #16 + 803b882: 46bd mov sp, r7 + 803b884: bd80 pop {r7, pc} -0803b91a : +0803b886 : { - 803b91a: b580 push {r7, lr} - 803b91c: b084 sub sp, #16 - 803b91e: af00 add r7, sp, #0 - 803b920: 6078 str r0, [r7, #4] - 803b922: 6039 str r1, [r7, #0] + 803b886: b580 push {r7, lr} + 803b888: b084 sub sp, #16 + 803b88a: af00 add r7, sp, #0 + 803b88c: 6078 str r0, [r7, #4] + 803b88e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); - 803b924: f641 0211 movw r2, #6161 ; 0x1811 - 803b928: 6839 ldr r1, [r7, #0] - 803b92a: 6878 ldr r0, [r7, #4] - 803b92c: f7d2 fa40 bl 800ddb0 - 803b930: 4603 mov r3, r0 - 803b932: 60fb str r3, [r7, #12] + 803b890: f641 0211 movw r2, #6161 ; 0x1811 + 803b894: 6839 ldr r1, [r7, #0] + 803b896: 6878 ldr r0, [r7, #4] + 803b898: f7d2 fa54 bl 800dd44 + 803b89c: 4603 mov r3, r0 + 803b89e: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803b934: 68fb ldr r3, [r7, #12] - 803b936: b21b sxth r3, r3 + 803b8a0: 68fb ldr r3, [r7, #12] + 803b8a2: b21b sxth r3, r3 } - 803b938: 4618 mov r0, r3 - 803b93a: 3710 adds r7, #16 - 803b93c: 46bd mov sp, r7 - 803b93e: bd80 pop {r7, pc} + 803b8a4: 4618 mov r0, r3 + 803b8a6: 3710 adds r7, #16 + 803b8a8: 46bd mov sp, r7 + 803b8aa: bd80 pop {r7, pc} -0803b940 : +0803b8ac : { - 803b940: b580 push {r7, lr} - 803b942: b084 sub sp, #16 - 803b944: af00 add r7, sp, #0 - 803b946: 6078 str r0, [r7, #4] - 803b948: 6039 str r1, [r7, #0] + 803b8ac: b580 push {r7, lr} + 803b8ae: b084 sub sp, #16 + 803b8b0: af00 add r7, sp, #0 + 803b8b2: 6078 str r0, [r7, #4] + 803b8b4: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 803b94a: f641 0212 movw r2, #6162 ; 0x1812 - 803b94e: 6839 ldr r1, [r7, #0] - 803b950: 6878 ldr r0, [r7, #4] - 803b952: f7d2 fa2d bl 800ddb0 - 803b956: 4603 mov r3, r0 - 803b958: 60fb str r3, [r7, #12] + 803b8b6: f641 0212 movw r2, #6162 ; 0x1812 + 803b8ba: 6839 ldr r1, [r7, #0] + 803b8bc: 6878 ldr r0, [r7, #4] + 803b8be: f7d2 fa41 bl 800dd44 + 803b8c2: 4603 mov r3, r0 + 803b8c4: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803b95a: 68fb ldr r3, [r7, #12] - 803b95c: b21b sxth r3, r3 + 803b8c6: 68fb ldr r3, [r7, #12] + 803b8c8: b21b sxth r3, r3 } - 803b95e: 4618 mov r0, r3 - 803b960: 3710 adds r7, #16 - 803b962: 46bd mov sp, r7 - 803b964: bd80 pop {r7, pc} + 803b8ca: 4618 mov r0, r3 + 803b8cc: 3710 adds r7, #16 + 803b8ce: 46bd mov sp, r7 + 803b8d0: bd80 pop {r7, pc} -0803b966 : +0803b8d2 : { - 803b966: b580 push {r7, lr} - 803b968: b084 sub sp, #16 - 803b96a: af00 add r7, sp, #0 - 803b96c: 6078 str r0, [r7, #4] - 803b96e: 6039 str r1, [r7, #0] + 803b8d2: b580 push {r7, lr} + 803b8d4: b084 sub sp, #16 + 803b8d6: af00 add r7, sp, #0 + 803b8d8: 6078 str r0, [r7, #4] + 803b8da: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - 803b970: f641 0213 movw r2, #6163 ; 0x1813 - 803b974: 6839 ldr r1, [r7, #0] - 803b976: 6878 ldr r0, [r7, #4] - 803b978: f7d2 fa1a bl 800ddb0 - 803b97c: 4603 mov r3, r0 - 803b97e: 60fb str r3, [r7, #12] + 803b8dc: f641 0213 movw r2, #6163 ; 0x1813 + 803b8e0: 6839 ldr r1, [r7, #0] + 803b8e2: 6878 ldr r0, [r7, #4] + 803b8e4: f7d2 fa2e bl 800dd44 + 803b8e8: 4603 mov r3, r0 + 803b8ea: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803b980: 68fb ldr r3, [r7, #12] - 803b982: b21b sxth r3, r3 + 803b8ec: 68fb ldr r3, [r7, #12] + 803b8ee: b21b sxth r3, r3 } - 803b984: 4618 mov r0, r3 - 803b986: 3710 adds r7, #16 - 803b988: 46bd mov sp, r7 - 803b98a: bd80 pop {r7, pc} + 803b8f0: 4618 mov r0, r3 + 803b8f2: 3710 adds r7, #16 + 803b8f4: 46bd mov sp, r7 + 803b8f6: bd80 pop {r7, pc} -0803b98c : +0803b8f8 : { - 803b98c: b580 push {r7, lr} - 803b98e: b084 sub sp, #16 - 803b990: af00 add r7, sp, #0 - 803b992: 6078 str r0, [r7, #4] - 803b994: 6039 str r1, [r7, #0] + 803b8f8: b580 push {r7, lr} + 803b8fa: b084 sub sp, #16 + 803b8fc: af00 add r7, sp, #0 + 803b8fe: 6078 str r0, [r7, #4] + 803b900: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_COLUMN); - 803b996: f641 0215 movw r2, #6165 ; 0x1815 - 803b99a: 6839 ldr r1, [r7, #0] - 803b99c: 6878 ldr r0, [r7, #4] - 803b99e: f7d2 fa07 bl 800ddb0 - 803b9a2: 4603 mov r3, r0 - 803b9a4: 60fb str r3, [r7, #12] + 803b902: f641 0215 movw r2, #6165 ; 0x1815 + 803b906: 6839 ldr r1, [r7, #0] + 803b908: 6878 ldr r0, [r7, #4] + 803b90a: f7d2 fa1b bl 800dd44 + 803b90e: 4603 mov r3, r0 + 803b910: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803b9a6: 68fb ldr r3, [r7, #12] - 803b9a8: b21b sxth r3, r3 + 803b912: 68fb ldr r3, [r7, #12] + 803b914: b21b sxth r3, r3 } - 803b9aa: 4618 mov r0, r3 - 803b9ac: 3710 adds r7, #16 - 803b9ae: 46bd mov sp, r7 - 803b9b0: bd80 pop {r7, pc} + 803b916: 4618 mov r0, r3 + 803b918: 3710 adds r7, #16 + 803b91a: 46bd mov sp, r7 + 803b91c: bd80 pop {r7, pc} -0803b9b2 : +0803b91e : { - 803b9b2: b580 push {r7, lr} - 803b9b4: b084 sub sp, #16 - 803b9b6: af00 add r7, sp, #0 - 803b9b8: 6078 str r0, [r7, #4] - 803b9ba: 6039 str r1, [r7, #0] + 803b91e: b580 push {r7, lr} + 803b920: b084 sub sp, #16 + 803b922: af00 add r7, sp, #0 + 803b924: 6078 str r0, [r7, #4] + 803b926: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); - 803b9bc: f241 0232 movw r2, #4146 ; 0x1032 - 803b9c0: 6839 ldr r1, [r7, #0] - 803b9c2: 6878 ldr r0, [r7, #4] - 803b9c4: f7d2 f9f4 bl 800ddb0 - 803b9c8: 4603 mov r3, r0 - 803b9ca: 60fb str r3, [r7, #12] + 803b928: f241 0232 movw r2, #4146 ; 0x1032 + 803b92c: 6839 ldr r1, [r7, #0] + 803b92e: 6878 ldr r0, [r7, #4] + 803b930: f7d2 fa08 bl 800dd44 + 803b934: 4603 mov r3, r0 + 803b936: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803b9cc: 68fb ldr r3, [r7, #12] - 803b9ce: b21b sxth r3, r3 + 803b938: 68fb ldr r3, [r7, #12] + 803b93a: b21b sxth r3, r3 } - 803b9d0: 4618 mov r0, r3 - 803b9d2: 3710 adds r7, #16 - 803b9d4: 46bd mov sp, r7 - 803b9d6: bd80 pop {r7, pc} + 803b93c: 4618 mov r0, r3 + 803b93e: 3710 adds r7, #16 + 803b940: 46bd mov sp, r7 + 803b942: bd80 pop {r7, pc} -0803b9d8 : +0803b944 : { - 803b9d8: b580 push {r7, lr} - 803b9da: b084 sub sp, #16 - 803b9dc: af00 add r7, sp, #0 - 803b9de: 6078 str r0, [r7, #4] - 803b9e0: 6039 str r1, [r7, #0] + 803b944: b580 push {r7, lr} + 803b946: b084 sub sp, #16 + 803b948: af00 add r7, sp, #0 + 803b94a: 6078 str r0, [r7, #4] + 803b94c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_FONT); - 803b9e2: f241 4259 movw r2, #5209 ; 0x1459 - 803b9e6: 6839 ldr r1, [r7, #0] - 803b9e8: 6878 ldr r0, [r7, #4] - 803b9ea: f7d2 f9e1 bl 800ddb0 - 803b9ee: 4603 mov r3, r0 - 803b9f0: 60fb str r3, [r7, #12] + 803b94e: f241 4259 movw r2, #5209 ; 0x1459 + 803b952: 6839 ldr r1, [r7, #0] + 803b954: 6878 ldr r0, [r7, #4] + 803b956: f7d2 f9f5 bl 800dd44 + 803b95a: 4603 mov r3, r0 + 803b95c: 60fb str r3, [r7, #12] return (const lv_font_t *)v.ptr; - 803b9f2: 68fb ldr r3, [r7, #12] + 803b95e: 68fb ldr r3, [r7, #12] } - 803b9f4: 4618 mov r0, r3 - 803b9f6: 3710 adds r7, #16 - 803b9f8: 46bd mov sp, r7 - 803b9fa: bd80 pop {r7, pc} + 803b960: 4618 mov r0, r3 + 803b962: 3710 adds r7, #16 + 803b964: 46bd mov sp, r7 + 803b966: bd80 pop {r7, pc} -0803b9fc : +0803b968 : { - 803b9fc: b580 push {r7, lr} - 803b9fe: b084 sub sp, #16 - 803ba00: af00 add r7, sp, #0 - 803ba02: 6078 str r0, [r7, #4] - 803ba04: 6039 str r1, [r7, #0] + 803b968: b580 push {r7, lr} + 803b96a: b084 sub sp, #16 + 803b96c: af00 add r7, sp, #0 + 803b96e: 6078 str r0, [r7, #4] + 803b970: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LETTER_SPACE); - 803ba06: f241 425a movw r2, #5210 ; 0x145a - 803ba0a: 6839 ldr r1, [r7, #0] - 803ba0c: 6878 ldr r0, [r7, #4] - 803ba0e: f7d2 f9cf bl 800ddb0 - 803ba12: 4603 mov r3, r0 - 803ba14: 60fb str r3, [r7, #12] + 803b972: f241 425a movw r2, #5210 ; 0x145a + 803b976: 6839 ldr r1, [r7, #0] + 803b978: 6878 ldr r0, [r7, #4] + 803b97a: f7d2 f9e3 bl 800dd44 + 803b97e: 4603 mov r3, r0 + 803b980: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803ba16: 68fb ldr r3, [r7, #12] - 803ba18: b21b sxth r3, r3 + 803b982: 68fb ldr r3, [r7, #12] + 803b984: b21b sxth r3, r3 } - 803ba1a: 4618 mov r0, r3 - 803ba1c: 3710 adds r7, #16 - 803ba1e: 46bd mov sp, r7 - 803ba20: bd80 pop {r7, pc} + 803b986: 4618 mov r0, r3 + 803b988: 3710 adds r7, #16 + 803b98a: 46bd mov sp, r7 + 803b98c: bd80 pop {r7, pc} -0803ba22 : +0803b98e : { - 803ba22: b580 push {r7, lr} - 803ba24: b084 sub sp, #16 - 803ba26: af00 add r7, sp, #0 - 803ba28: 6078 str r0, [r7, #4] - 803ba2a: 6039 str r1, [r7, #0] + 803b98e: b580 push {r7, lr} + 803b990: b084 sub sp, #16 + 803b992: af00 add r7, sp, #0 + 803b994: 6078 str r0, [r7, #4] + 803b996: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LINE_SPACE); - 803ba2c: f241 425b movw r2, #5211 ; 0x145b - 803ba30: 6839 ldr r1, [r7, #0] - 803ba32: 6878 ldr r0, [r7, #4] - 803ba34: f7d2 f9bc bl 800ddb0 - 803ba38: 4603 mov r3, r0 - 803ba3a: 60fb str r3, [r7, #12] + 803b998: f241 425b movw r2, #5211 ; 0x145b + 803b99c: 6839 ldr r1, [r7, #0] + 803b99e: 6878 ldr r0, [r7, #4] + 803b9a0: f7d2 f9d0 bl 800dd44 + 803b9a4: 4603 mov r3, r0 + 803b9a6: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803ba3c: 68fb ldr r3, [r7, #12] - 803ba3e: b21b sxth r3, r3 + 803b9a8: 68fb ldr r3, [r7, #12] + 803b9aa: b21b sxth r3, r3 } - 803ba40: 4618 mov r0, r3 - 803ba42: 3710 adds r7, #16 - 803ba44: 46bd mov sp, r7 - 803ba46: bd80 pop {r7, pc} + 803b9ac: 4618 mov r0, r3 + 803b9ae: 3710 adds r7, #16 + 803b9b0: 46bd mov sp, r7 + 803b9b2: bd80 pop {r7, pc} -0803ba48 : +0803b9b4 : /********************** * STATIC FUNCTIONS **********************/ static void lv_checkbox_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 803ba48: b580 push {r7, lr} - 803ba4a: b084 sub sp, #16 - 803ba4c: af00 add r7, sp, #0 - 803ba4e: 6078 str r0, [r7, #4] - 803ba50: 6039 str r1, [r7, #0] + 803b9b4: b580 push {r7, lr} + 803b9b6: b084 sub sp, #16 + 803b9b8: af00 add r7, sp, #0 + 803b9ba: 6078 str r0, [r7, #4] + 803b9bc: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_checkbox_t * cb = (lv_checkbox_t *)obj; - 803ba52: 683b ldr r3, [r7, #0] - 803ba54: 60fb str r3, [r7, #12] + 803b9be: 683b ldr r3, [r7, #0] + 803b9c0: 60fb str r3, [r7, #12] cb->txt = "Check box"; - 803ba56: 68fb ldr r3, [r7, #12] - 803ba58: 4a0c ldr r2, [pc, #48] ; (803ba8c ) - 803ba5a: 625a str r2, [r3, #36] ; 0x24 + 803b9c2: 68fb ldr r3, [r7, #12] + 803b9c4: 4a0c ldr r2, [pc, #48] ; (803b9f8 ) + 803b9c6: 625a str r2, [r3, #36] ; 0x24 cb->static_txt = 1; - 803ba5c: 68fa ldr r2, [r7, #12] - 803ba5e: f892 3028 ldrb.w r3, [r2, #40] ; 0x28 - 803ba62: f043 0301 orr.w r3, r3, #1 - 803ba66: f882 3028 strb.w r3, [r2, #40] ; 0x28 + 803b9c8: 68fa ldr r2, [r7, #12] + 803b9ca: f892 3028 ldrb.w r3, [r2, #40] ; 0x28 + 803b9ce: f043 0301 orr.w r3, r3, #1 + 803b9d2: f882 3028 strb.w r3, [r2, #40] ; 0x28 lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); - 803ba6a: 2102 movs r1, #2 - 803ba6c: 6838 ldr r0, [r7, #0] - 803ba6e: f7ca fda3 bl 80065b8 + 803b9d6: 2102 movs r1, #2 + 803b9d8: 6838 ldr r0, [r7, #0] + 803b9da: f7ca fdb7 bl 800654c lv_obj_add_flag(obj, LV_OBJ_FLAG_CHECKABLE); - 803ba72: 2108 movs r1, #8 - 803ba74: 6838 ldr r0, [r7, #0] - 803ba76: f7ca fd9f bl 80065b8 + 803b9de: 2108 movs r1, #8 + 803b9e0: 6838 ldr r0, [r7, #0] + 803b9e2: f7ca fdb3 bl 800654c lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS); - 803ba7a: f44f 6180 mov.w r1, #1024 ; 0x400 - 803ba7e: 6838 ldr r0, [r7, #0] - 803ba80: f7ca fd9a bl 80065b8 + 803b9e6: f44f 6180 mov.w r1, #1024 ; 0x400 + 803b9ea: 6838 ldr r0, [r7, #0] + 803b9ec: f7ca fdae bl 800654c LV_TRACE_OBJ_CREATE("finished"); } - 803ba84: bf00 nop - 803ba86: 3710 adds r7, #16 - 803ba88: 46bd mov sp, r7 - 803ba8a: bd80 pop {r7, pc} - 803ba8c: 08047184 .word 0x08047184 + 803b9f0: bf00 nop + 803b9f2: 3710 adds r7, #16 + 803b9f4: 46bd mov sp, r7 + 803b9f6: bd80 pop {r7, pc} + 803b9f8: 080470dc .word 0x080470dc -0803ba90 : +0803b9fc : static void lv_checkbox_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 803ba90: b580 push {r7, lr} - 803ba92: b084 sub sp, #16 - 803ba94: af00 add r7, sp, #0 - 803ba96: 6078 str r0, [r7, #4] - 803ba98: 6039 str r1, [r7, #0] + 803b9fc: b580 push {r7, lr} + 803b9fe: b084 sub sp, #16 + 803ba00: af00 add r7, sp, #0 + 803ba02: 6078 str r0, [r7, #4] + 803ba04: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_checkbox_t * cb = (lv_checkbox_t *)obj; - 803ba9a: 683b ldr r3, [r7, #0] - 803ba9c: 60fb str r3, [r7, #12] + 803ba06: 683b ldr r3, [r7, #0] + 803ba08: 60fb str r3, [r7, #12] if(!cb->static_txt) { - 803ba9e: 68fb ldr r3, [r7, #12] - 803baa0: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 - 803baa4: f003 0301 and.w r3, r3, #1 - 803baa8: b2db uxtb r3, r3 - 803baaa: 2b00 cmp r3, #0 - 803baac: d107 bne.n 803babe + 803ba0a: 68fb ldr r3, [r7, #12] + 803ba0c: f893 3028 ldrb.w r3, [r3, #40] ; 0x28 + 803ba10: f003 0301 and.w r3, r3, #1 + 803ba14: b2db uxtb r3, r3 + 803ba16: 2b00 cmp r3, #0 + 803ba18: d107 bne.n 803ba2a lv_mem_free(cb->txt); - 803baae: 68fb ldr r3, [r7, #12] - 803bab0: 6a5b ldr r3, [r3, #36] ; 0x24 - 803bab2: 4618 mov r0, r3 - 803bab4: f7f6 ff12 bl 80328dc + 803ba1a: 68fb ldr r3, [r7, #12] + 803ba1c: 6a5b ldr r3, [r3, #36] ; 0x24 + 803ba1e: 4618 mov r0, r3 + 803ba20: f7f6 ff12 bl 8032848 cb->txt = NULL; - 803bab8: 68fb ldr r3, [r7, #12] - 803baba: 2200 movs r2, #0 - 803babc: 625a str r2, [r3, #36] ; 0x24 + 803ba24: 68fb ldr r3, [r7, #12] + 803ba26: 2200 movs r2, #0 + 803ba28: 625a str r2, [r3, #36] ; 0x24 } LV_TRACE_OBJ_CREATE("finished"); } - 803babe: bf00 nop - 803bac0: 3710 adds r7, #16 - 803bac2: 46bd mov sp, r7 - 803bac4: bd80 pop {r7, pc} + 803ba2a: bf00 nop + 803ba2c: 3710 adds r7, #16 + 803ba2e: 46bd mov sp, r7 + 803ba30: bd80 pop {r7, pc} ... -0803bac8 : +0803ba34 : static void lv_checkbox_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 803bac8: b580 push {r7, lr} - 803baca: b094 sub sp, #80 ; 0x50 - 803bacc: af04 add r7, sp, #16 - 803bace: 6078 str r0, [r7, #4] - 803bad0: 6039 str r1, [r7, #0] + 803ba34: b580 push {r7, lr} + 803ba36: b094 sub sp, #80 ; 0x50 + 803ba38: af04 add r7, sp, #16 + 803ba3a: 6078 str r0, [r7, #4] + 803ba3c: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res; /*Call the ancestor's event handler*/ res = lv_obj_event_base(MY_CLASS, e); - 803bad2: 6839 ldr r1, [r7, #0] - 803bad4: 485d ldr r0, [pc, #372] ; (803bc4c ) - 803bad6: f7c6 fd15 bl 8002504 - 803bada: 4603 mov r3, r0 - 803badc: f887 303f strb.w r3, [r7, #63] ; 0x3f + 803ba3e: 6839 ldr r1, [r7, #0] + 803ba40: 485d ldr r0, [pc, #372] ; (803bbb8 ) + 803ba42: f7c6 fd29 bl 8002498 + 803ba46: 4603 mov r3, r0 + 803ba48: f887 303f strb.w r3, [r7, #63] ; 0x3f if(res != LV_RES_OK) return; - 803bae0: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 803bae4: 2b01 cmp r3, #1 - 803bae6: f040 80ac bne.w 803bc42 + 803ba4c: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 803ba50: 2b01 cmp r3, #1 + 803ba52: f040 80ac bne.w 803bbae lv_event_code_t code = lv_event_get_code(e); - 803baea: 6838 ldr r0, [r7, #0] - 803baec: f7c6 fd5e bl 80025ac - 803baf0: 4603 mov r3, r0 - 803baf2: f887 303e strb.w r3, [r7, #62] ; 0x3e + 803ba56: 6838 ldr r0, [r7, #0] + 803ba58: f7c6 fd72 bl 8002540 + 803ba5c: 4603 mov r3, r0 + 803ba5e: f887 303e strb.w r3, [r7, #62] ; 0x3e lv_obj_t * obj = lv_event_get_target(e); - 803baf6: 6838 ldr r0, [r7, #0] - 803baf8: f7c6 fd42 bl 8002580 - 803bafc: 63b8 str r0, [r7, #56] ; 0x38 + 803ba62: 6838 ldr r0, [r7, #0] + 803ba64: f7c6 fd56 bl 8002514 + 803ba68: 63b8 str r0, [r7, #56] ; 0x38 if(code == LV_EVENT_GET_SELF_SIZE) { - 803bafe: f897 303e ldrb.w r3, [r7, #62] ; 0x3e - 803bb02: 2b2c cmp r3, #44 ; 0x2c - 803bb04: d17a bne.n 803bbfc + 803ba6a: f897 303e ldrb.w r3, [r7, #62] ; 0x3e + 803ba6e: 2b2c cmp r3, #44 ; 0x2c + 803ba70: d17a bne.n 803bb68 lv_point_t * p = lv_event_get_param(e); - 803bb06: 6838 ldr r0, [r7, #0] - 803bb08: f7c6 fd5e bl 80025c8 - 803bb0c: 62f8 str r0, [r7, #44] ; 0x2c + 803ba72: 6838 ldr r0, [r7, #0] + 803ba74: f7c6 fd72 bl 800255c + 803ba78: 62f8 str r0, [r7, #44] ; 0x2c lv_checkbox_t * cb = (lv_checkbox_t *)obj; - 803bb0e: 6bbb ldr r3, [r7, #56] ; 0x38 - 803bb10: 62bb str r3, [r7, #40] ; 0x28 + 803ba7a: 6bbb ldr r3, [r7, #56] ; 0x38 + 803ba7c: 62bb str r3, [r7, #40] ; 0x28 const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 803bb12: 2100 movs r1, #0 - 803bb14: 6bb8 ldr r0, [r7, #56] ; 0x38 - 803bb16: f7ff ff5f bl 803b9d8 - 803bb1a: 6278 str r0, [r7, #36] ; 0x24 + 803ba7e: 2100 movs r1, #0 + 803ba80: 6bb8 ldr r0, [r7, #56] ; 0x38 + 803ba82: f7ff ff5f bl 803b944 + 803ba86: 6278 str r0, [r7, #36] ; 0x24 lv_coord_t font_h = lv_font_get_line_height(font); - 803bb1c: 6a78 ldr r0, [r7, #36] ; 0x24 - 803bb1e: f7ff feb7 bl 803b890 - 803bb22: 4603 mov r3, r0 - 803bb24: 847b strh r3, [r7, #34] ; 0x22 + 803ba88: 6a78 ldr r0, [r7, #36] ; 0x24 + 803ba8a: f7ff feb7 bl 803b7fc + 803ba8e: 4603 mov r3, r0 + 803ba90: 847b strh r3, [r7, #34] ; 0x22 lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN); - 803bb26: 2100 movs r1, #0 - 803bb28: 6bb8 ldr r0, [r7, #56] ; 0x38 - 803bb2a: f7ff ff7a bl 803ba22 - 803bb2e: 4603 mov r3, r0 - 803bb30: 843b strh r3, [r7, #32] + 803ba92: 2100 movs r1, #0 + 803ba94: 6bb8 ldr r0, [r7, #56] ; 0x38 + 803ba96: f7ff ff7a bl 803b98e + 803ba9a: 4603 mov r3, r0 + 803ba9c: 843b strh r3, [r7, #32] lv_coord_t letter_space = lv_obj_get_style_text_letter_space(obj, LV_PART_MAIN); - 803bb32: 2100 movs r1, #0 - 803bb34: 6bb8 ldr r0, [r7, #56] ; 0x38 - 803bb36: f7ff ff61 bl 803b9fc - 803bb3a: 4603 mov r3, r0 - 803bb3c: 83fb strh r3, [r7, #30] + 803ba9e: 2100 movs r1, #0 + 803baa0: 6bb8 ldr r0, [r7, #56] ; 0x38 + 803baa2: f7ff ff61 bl 803b968 + 803baa6: 4603 mov r3, r0 + 803baa8: 83fb strh r3, [r7, #30] lv_point_t txt_size; lv_txt_get_size(&txt_size, cb->txt, font, letter_space, line_space, LV_COORD_MAX, LV_TEXT_FLAG_NONE); - 803bb3e: 6abb ldr r3, [r7, #40] ; 0x28 - 803bb40: 6a59 ldr r1, [r3, #36] ; 0x24 - 803bb42: f9b7 201e ldrsh.w r2, [r7, #30] - 803bb46: f107 0010 add.w r0, r7, #16 - 803bb4a: 2300 movs r3, #0 - 803bb4c: 9302 str r3, [sp, #8] - 803bb4e: f641 73ff movw r3, #8191 ; 0x1fff - 803bb52: 9301 str r3, [sp, #4] - 803bb54: f9b7 3020 ldrsh.w r3, [r7, #32] - 803bb58: 9300 str r3, [sp, #0] - 803bb5a: 4613 mov r3, r2 - 803bb5c: 6a7a ldr r2, [r7, #36] ; 0x24 - 803bb5e: f7fa fa94 bl 803608a + 803baaa: 6abb ldr r3, [r7, #40] ; 0x28 + 803baac: 6a59 ldr r1, [r3, #36] ; 0x24 + 803baae: f9b7 201e ldrsh.w r2, [r7, #30] + 803bab2: f107 0010 add.w r0, r7, #16 + 803bab6: 2300 movs r3, #0 + 803bab8: 9302 str r3, [sp, #8] + 803baba: f641 73ff movw r3, #8191 ; 0x1fff + 803babe: 9301 str r3, [sp, #4] + 803bac0: f9b7 3020 ldrsh.w r3, [r7, #32] + 803bac4: 9300 str r3, [sp, #0] + 803bac6: 4613 mov r3, r2 + 803bac8: 6a7a ldr r2, [r7, #36] ; 0x24 + 803baca: f7fa fa94 bl 8035ff6 lv_coord_t bg_colp = lv_obj_get_style_pad_column(obj, LV_PART_MAIN); - 803bb62: 2100 movs r1, #0 - 803bb64: 6bb8 ldr r0, [r7, #56] ; 0x38 - 803bb66: f7ff ff11 bl 803b98c - 803bb6a: 4603 mov r3, r0 - 803bb6c: 83bb strh r3, [r7, #28] + 803bace: 2100 movs r1, #0 + 803bad0: 6bb8 ldr r0, [r7, #56] ; 0x38 + 803bad2: f7ff ff11 bl 803b8f8 + 803bad6: 4603 mov r3, r0 + 803bad8: 83bb strh r3, [r7, #28] lv_coord_t marker_leftp = lv_obj_get_style_pad_left(obj, LV_PART_INDICATOR); - 803bb6e: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803bb72: 6bb8 ldr r0, [r7, #56] ; 0x38 - 803bb74: f7ff fee4 bl 803b940 - 803bb78: 4603 mov r3, r0 - 803bb7a: 837b strh r3, [r7, #26] + 803bada: f44f 3100 mov.w r1, #131072 ; 0x20000 + 803bade: 6bb8 ldr r0, [r7, #56] ; 0x38 + 803bae0: f7ff fee4 bl 803b8ac + 803bae4: 4603 mov r3, r0 + 803bae6: 837b strh r3, [r7, #26] lv_coord_t marker_rightp = lv_obj_get_style_pad_right(obj, LV_PART_INDICATOR); - 803bb7c: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803bb80: 6bb8 ldr r0, [r7, #56] ; 0x38 - 803bb82: f7ff fef0 bl 803b966 - 803bb86: 4603 mov r3, r0 - 803bb88: 833b strh r3, [r7, #24] + 803bae8: f44f 3100 mov.w r1, #131072 ; 0x20000 + 803baec: 6bb8 ldr r0, [r7, #56] ; 0x38 + 803baee: f7ff fef0 bl 803b8d2 + 803baf2: 4603 mov r3, r0 + 803baf4: 833b strh r3, [r7, #24] lv_coord_t marker_topp = lv_obj_get_style_pad_top(obj, LV_PART_INDICATOR); - 803bb8a: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803bb8e: 6bb8 ldr r0, [r7, #56] ; 0x38 - 803bb90: f7ff feb0 bl 803b8f4 - 803bb94: 4603 mov r3, r0 - 803bb96: 82fb strh r3, [r7, #22] + 803baf6: f44f 3100 mov.w r1, #131072 ; 0x20000 + 803bafa: 6bb8 ldr r0, [r7, #56] ; 0x38 + 803bafc: f7ff feb0 bl 803b860 + 803bb00: 4603 mov r3, r0 + 803bb02: 82fb strh r3, [r7, #22] lv_coord_t marker_bottomp = lv_obj_get_style_pad_bottom(obj, LV_PART_INDICATOR); - 803bb98: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803bb9c: 6bb8 ldr r0, [r7, #56] ; 0x38 - 803bb9e: f7ff febc bl 803b91a - 803bba2: 4603 mov r3, r0 - 803bba4: 82bb strh r3, [r7, #20] + 803bb04: f44f 3100 mov.w r1, #131072 ; 0x20000 + 803bb08: 6bb8 ldr r0, [r7, #56] ; 0x38 + 803bb0a: f7ff febc bl 803b886 + 803bb0e: 4603 mov r3, r0 + 803bb10: 82bb strh r3, [r7, #20] lv_point_t marker_size; marker_size.x = font_h + marker_leftp + marker_rightp; - 803bba6: 8c7a ldrh r2, [r7, #34] ; 0x22 - 803bba8: 8b7b ldrh r3, [r7, #26] - 803bbaa: 4413 add r3, r2 - 803bbac: b29a uxth r2, r3 - 803bbae: 8b3b ldrh r3, [r7, #24] - 803bbb0: 4413 add r3, r2 - 803bbb2: b29b uxth r3, r3 - 803bbb4: b21b sxth r3, r3 - 803bbb6: 81bb strh r3, [r7, #12] + 803bb12: 8c7a ldrh r2, [r7, #34] ; 0x22 + 803bb14: 8b7b ldrh r3, [r7, #26] + 803bb16: 4413 add r3, r2 + 803bb18: b29a uxth r2, r3 + 803bb1a: 8b3b ldrh r3, [r7, #24] + 803bb1c: 4413 add r3, r2 + 803bb1e: b29b uxth r3, r3 + 803bb20: b21b sxth r3, r3 + 803bb22: 81bb strh r3, [r7, #12] marker_size.y = font_h + marker_topp + marker_bottomp; - 803bbb8: 8c7a ldrh r2, [r7, #34] ; 0x22 - 803bbba: 8afb ldrh r3, [r7, #22] - 803bbbc: 4413 add r3, r2 - 803bbbe: b29a uxth r2, r3 - 803bbc0: 8abb ldrh r3, [r7, #20] - 803bbc2: 4413 add r3, r2 - 803bbc4: b29b uxth r3, r3 - 803bbc6: b21b sxth r3, r3 - 803bbc8: 81fb strh r3, [r7, #14] + 803bb24: 8c7a ldrh r2, [r7, #34] ; 0x22 + 803bb26: 8afb ldrh r3, [r7, #22] + 803bb28: 4413 add r3, r2 + 803bb2a: b29a uxth r2, r3 + 803bb2c: 8abb ldrh r3, [r7, #20] + 803bb2e: 4413 add r3, r2 + 803bb30: b29b uxth r3, r3 + 803bb32: b21b sxth r3, r3 + 803bb34: 81fb strh r3, [r7, #14] p->x = marker_size.x + txt_size.x + bg_colp; - 803bbca: f9b7 300c ldrsh.w r3, [r7, #12] - 803bbce: b29a uxth r2, r3 - 803bbd0: f9b7 3010 ldrsh.w r3, [r7, #16] - 803bbd4: b29b uxth r3, r3 - 803bbd6: 4413 add r3, r2 - 803bbd8: b29a uxth r2, r3 - 803bbda: 8bbb ldrh r3, [r7, #28] - 803bbdc: 4413 add r3, r2 - 803bbde: b29b uxth r3, r3 - 803bbe0: b21a sxth r2, r3 - 803bbe2: 6afb ldr r3, [r7, #44] ; 0x2c - 803bbe4: 801a strh r2, [r3, #0] + 803bb36: f9b7 300c ldrsh.w r3, [r7, #12] + 803bb3a: b29a uxth r2, r3 + 803bb3c: f9b7 3010 ldrsh.w r3, [r7, #16] + 803bb40: b29b uxth r3, r3 + 803bb42: 4413 add r3, r2 + 803bb44: b29a uxth r2, r3 + 803bb46: 8bbb ldrh r3, [r7, #28] + 803bb48: 4413 add r3, r2 + 803bb4a: b29b uxth r3, r3 + 803bb4c: b21a sxth r2, r3 + 803bb4e: 6afb ldr r3, [r7, #44] ; 0x2c + 803bb50: 801a strh r2, [r3, #0] p->y = LV_MAX(marker_size.y, txt_size.y); - 803bbe6: f9b7 2012 ldrsh.w r2, [r7, #18] - 803bbea: f9b7 300e ldrsh.w r3, [r7, #14] - 803bbee: 4293 cmp r3, r2 - 803bbf0: bfb8 it lt - 803bbf2: 4613 movlt r3, r2 - 803bbf4: b21a sxth r2, r3 - 803bbf6: 6afb ldr r3, [r7, #44] ; 0x2c - 803bbf8: 805a strh r2, [r3, #2] - 803bbfa: e023 b.n 803bc44 + 803bb52: f9b7 2012 ldrsh.w r2, [r7, #18] + 803bb56: f9b7 300e ldrsh.w r3, [r7, #14] + 803bb5a: 4293 cmp r3, r2 + 803bb5c: bfb8 it lt + 803bb5e: 4613 movlt r3, r2 + 803bb60: b21a sxth r2, r3 + 803bb62: 6afb ldr r3, [r7, #44] ; 0x2c + 803bb64: 805a strh r2, [r3, #2] + 803bb66: e023 b.n 803bbb0 } else if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) { - 803bbfc: f897 303e ldrb.w r3, [r7, #62] ; 0x3e - 803bc00: 2b13 cmp r3, #19 - 803bc02: d116 bne.n 803bc32 + 803bb68: f897 303e ldrb.w r3, [r7, #62] ; 0x3e + 803bb6c: 2b13 cmp r3, #19 + 803bb6e: d116 bne.n 803bb9e lv_coord_t * s = lv_event_get_param(e); - 803bc04: 6838 ldr r0, [r7, #0] - 803bc06: f7c6 fcdf bl 80025c8 - 803bc0a: 6378 str r0, [r7, #52] ; 0x34 + 803bb70: 6838 ldr r0, [r7, #0] + 803bb72: f7c6 fcf3 bl 800255c + 803bb76: 6378 str r0, [r7, #52] ; 0x34 lv_coord_t m = lv_obj_calculate_ext_draw_size(obj, LV_PART_INDICATOR); - 803bc0c: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803bc10: 6bb8 ldr r0, [r7, #56] ; 0x38 - 803bc12: f7cd f88f bl 8008d34 - 803bc16: 4603 mov r3, r0 - 803bc18: 867b strh r3, [r7, #50] ; 0x32 + 803bb78: f44f 3100 mov.w r1, #131072 ; 0x20000 + 803bb7c: 6bb8 ldr r0, [r7, #56] ; 0x38 + 803bb7e: f7cd f8a3 bl 8008cc8 + 803bb82: 4603 mov r3, r0 + 803bb84: 867b strh r3, [r7, #50] ; 0x32 *s = LV_MAX(*s, m); - 803bc1a: 6b7b ldr r3, [r7, #52] ; 0x34 - 803bc1c: f9b3 3000 ldrsh.w r3, [r3] - 803bc20: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 - 803bc24: 4293 cmp r3, r2 - 803bc26: bfb8 it lt - 803bc28: 4613 movlt r3, r2 - 803bc2a: b21a sxth r2, r3 - 803bc2c: 6b7b ldr r3, [r7, #52] ; 0x34 - 803bc2e: 801a strh r2, [r3, #0] - 803bc30: e008 b.n 803bc44 + 803bb86: 6b7b ldr r3, [r7, #52] ; 0x34 + 803bb88: f9b3 3000 ldrsh.w r3, [r3] + 803bb8c: f9b7 2032 ldrsh.w r2, [r7, #50] ; 0x32 + 803bb90: 4293 cmp r3, r2 + 803bb92: bfb8 it lt + 803bb94: 4613 movlt r3, r2 + 803bb96: b21a sxth r2, r3 + 803bb98: 6b7b ldr r3, [r7, #52] ; 0x34 + 803bb9a: 801a strh r2, [r3, #0] + 803bb9c: e008 b.n 803bbb0 } else if(code == LV_EVENT_DRAW_MAIN) { - 803bc32: f897 303e ldrb.w r3, [r7, #62] ; 0x3e - 803bc36: 2b15 cmp r3, #21 - 803bc38: d104 bne.n 803bc44 + 803bb9e: f897 303e ldrb.w r3, [r7, #62] ; 0x3e + 803bba2: 2b15 cmp r3, #21 + 803bba4: d104 bne.n 803bbb0 lv_checkbox_draw(e); - 803bc3a: 6838 ldr r0, [r7, #0] - 803bc3c: f000 f808 bl 803bc50 - 803bc40: e000 b.n 803bc44 + 803bba6: 6838 ldr r0, [r7, #0] + 803bba8: f000 f808 bl 803bbbc + 803bbac: e000 b.n 803bbb0 if(res != LV_RES_OK) return; - 803bc42: bf00 nop + 803bbae: bf00 nop } } - 803bc44: 3740 adds r7, #64 ; 0x40 - 803bc46: 46bd mov sp, r7 - 803bc48: bd80 pop {r7, pc} - 803bc4a: bf00 nop - 803bc4c: 08070a1c .word 0x08070a1c + 803bbb0: 3740 adds r7, #64 ; 0x40 + 803bbb2: 46bd mov sp, r7 + 803bbb4: bd80 pop {r7, pc} + 803bbb6: bf00 nop + 803bbb8: 08070974 .word 0x08070974 -0803bc50 : +0803bbbc : static void lv_checkbox_draw(lv_event_t * e) { - 803bc50: b580 push {r7, lr} - 803bc52: b0c0 sub sp, #256 ; 0x100 - 803bc54: af04 add r7, sp, #16 - 803bc56: 6078 str r0, [r7, #4] + 803bbbc: b580 push {r7, lr} + 803bbbe: b0c0 sub sp, #256 ; 0x100 + 803bbc0: af04 add r7, sp, #16 + 803bbc2: 6078 str r0, [r7, #4] lv_obj_t * obj = lv_event_get_target(e); - 803bc58: 6878 ldr r0, [r7, #4] - 803bc5a: f7c6 fc91 bl 8002580 - 803bc5e: f8c7 00ec str.w r0, [r7, #236] ; 0xec + 803bbc4: 6878 ldr r0, [r7, #4] + 803bbc6: f7c6 fca5 bl 8002514 + 803bbca: f8c7 00ec str.w r0, [r7, #236] ; 0xec lv_checkbox_t * cb = (lv_checkbox_t *)obj; - 803bc62: f8d7 30ec ldr.w r3, [r7, #236] ; 0xec - 803bc66: f8c7 30e8 str.w r3, [r7, #232] ; 0xe8 + 803bbce: f8d7 30ec ldr.w r3, [r7, #236] ; 0xec + 803bbd2: f8c7 30e8 str.w r3, [r7, #232] ; 0xe8 lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 803bc6a: 6878 ldr r0, [r7, #4] - 803bc6c: f7c6 fd9e bl 80027ac - 803bc70: f8c7 00e4 str.w r0, [r7, #228] ; 0xe4 + 803bbd6: 6878 ldr r0, [r7, #4] + 803bbd8: f7c6 fdb2 bl 8002740 + 803bbdc: f8c7 00e4 str.w r0, [r7, #228] ; 0xe4 const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 803bc74: 2100 movs r1, #0 - 803bc76: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803bc7a: f7ff fead bl 803b9d8 - 803bc7e: f8c7 00e0 str.w r0, [r7, #224] ; 0xe0 + 803bbe0: 2100 movs r1, #0 + 803bbe2: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803bbe6: f7ff fead bl 803b944 + 803bbea: f8c7 00e0 str.w r0, [r7, #224] ; 0xe0 lv_coord_t font_h = lv_font_get_line_height(font); - 803bc82: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 - 803bc86: f7ff fe03 bl 803b890 - 803bc8a: 4603 mov r3, r0 - 803bc8c: f8a7 30de strh.w r3, [r7, #222] ; 0xde + 803bbee: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 + 803bbf2: f7ff fe03 bl 803b7fc + 803bbf6: 4603 mov r3, r0 + 803bbf8: f8a7 30de strh.w r3, [r7, #222] ; 0xde lv_coord_t bg_border = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 803bc90: 2100 movs r1, #0 - 803bc92: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803bc96: f7ff fe8c bl 803b9b2 - 803bc9a: 4603 mov r3, r0 - 803bc9c: f8a7 30dc strh.w r3, [r7, #220] ; 0xdc + 803bbfc: 2100 movs r1, #0 + 803bbfe: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803bc02: f7ff fe8c bl 803b91e + 803bc06: 4603 mov r3, r0 + 803bc08: f8a7 30dc strh.w r3, [r7, #220] ; 0xdc lv_coord_t bg_topp = lv_obj_get_style_pad_top(obj, LV_PART_MAIN) + bg_border; - 803bca0: 2100 movs r1, #0 - 803bca2: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803bca6: f7ff fe25 bl 803b8f4 - 803bcaa: 4603 mov r3, r0 - 803bcac: b29a uxth r2, r3 - 803bcae: f8b7 30dc ldrh.w r3, [r7, #220] ; 0xdc - 803bcb2: 4413 add r3, r2 - 803bcb4: b29b uxth r3, r3 - 803bcb6: f8a7 30da strh.w r3, [r7, #218] ; 0xda + 803bc0c: 2100 movs r1, #0 + 803bc0e: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803bc12: f7ff fe25 bl 803b860 + 803bc16: 4603 mov r3, r0 + 803bc18: b29a uxth r2, r3 + 803bc1a: f8b7 30dc ldrh.w r3, [r7, #220] ; 0xdc + 803bc1e: 4413 add r3, r2 + 803bc20: b29b uxth r3, r3 + 803bc22: f8a7 30da strh.w r3, [r7, #218] ; 0xda lv_coord_t bg_leftp = lv_obj_get_style_pad_left(obj, LV_PART_MAIN) + bg_border; - 803bcba: 2100 movs r1, #0 - 803bcbc: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803bcc0: f7ff fe3e bl 803b940 - 803bcc4: 4603 mov r3, r0 - 803bcc6: b29a uxth r2, r3 - 803bcc8: f8b7 30dc ldrh.w r3, [r7, #220] ; 0xdc - 803bccc: 4413 add r3, r2 - 803bcce: b29b uxth r3, r3 - 803bcd0: f8a7 30d8 strh.w r3, [r7, #216] ; 0xd8 + 803bc26: 2100 movs r1, #0 + 803bc28: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803bc2c: f7ff fe3e bl 803b8ac + 803bc30: 4603 mov r3, r0 + 803bc32: b29a uxth r2, r3 + 803bc34: f8b7 30dc ldrh.w r3, [r7, #220] ; 0xdc + 803bc38: 4413 add r3, r2 + 803bc3a: b29b uxth r3, r3 + 803bc3c: f8a7 30d8 strh.w r3, [r7, #216] ; 0xd8 lv_coord_t bg_colp = lv_obj_get_style_pad_column(obj, LV_PART_MAIN); - 803bcd4: 2100 movs r1, #0 - 803bcd6: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803bcda: f7ff fe57 bl 803b98c - 803bcde: 4603 mov r3, r0 - 803bce0: f8a7 30d6 strh.w r3, [r7, #214] ; 0xd6 + 803bc40: 2100 movs r1, #0 + 803bc42: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803bc46: f7ff fe57 bl 803b8f8 + 803bc4a: 4603 mov r3, r0 + 803bc4c: f8a7 30d6 strh.w r3, [r7, #214] ; 0xd6 lv_coord_t marker_leftp = lv_obj_get_style_pad_left(obj, LV_PART_INDICATOR); - 803bce4: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803bce8: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803bcec: f7ff fe28 bl 803b940 - 803bcf0: 4603 mov r3, r0 - 803bcf2: f8a7 30d4 strh.w r3, [r7, #212] ; 0xd4 + 803bc50: f44f 3100 mov.w r1, #131072 ; 0x20000 + 803bc54: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803bc58: f7ff fe28 bl 803b8ac + 803bc5c: 4603 mov r3, r0 + 803bc5e: f8a7 30d4 strh.w r3, [r7, #212] ; 0xd4 lv_coord_t marker_rightp = lv_obj_get_style_pad_right(obj, LV_PART_INDICATOR); - 803bcf6: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803bcfa: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803bcfe: f7ff fe32 bl 803b966 - 803bd02: 4603 mov r3, r0 - 803bd04: f8a7 30d2 strh.w r3, [r7, #210] ; 0xd2 + 803bc62: f44f 3100 mov.w r1, #131072 ; 0x20000 + 803bc66: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803bc6a: f7ff fe32 bl 803b8d2 + 803bc6e: 4603 mov r3, r0 + 803bc70: f8a7 30d2 strh.w r3, [r7, #210] ; 0xd2 lv_coord_t marker_topp = lv_obj_get_style_pad_top(obj, LV_PART_INDICATOR); - 803bd08: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803bd0c: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803bd10: f7ff fdf0 bl 803b8f4 - 803bd14: 4603 mov r3, r0 - 803bd16: f8a7 30d0 strh.w r3, [r7, #208] ; 0xd0 + 803bc74: f44f 3100 mov.w r1, #131072 ; 0x20000 + 803bc78: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803bc7c: f7ff fdf0 bl 803b860 + 803bc80: 4603 mov r3, r0 + 803bc82: f8a7 30d0 strh.w r3, [r7, #208] ; 0xd0 lv_coord_t marker_bottomp = lv_obj_get_style_pad_bottom(obj, LV_PART_INDICATOR); - 803bd1a: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803bd1e: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803bd22: f7ff fdfa bl 803b91a - 803bd26: 4603 mov r3, r0 - 803bd28: f8a7 30ce strh.w r3, [r7, #206] ; 0xce + 803bc86: f44f 3100 mov.w r1, #131072 ; 0x20000 + 803bc8a: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803bc8e: f7ff fdfa bl 803b886 + 803bc92: 4603 mov r3, r0 + 803bc94: f8a7 30ce strh.w r3, [r7, #206] ; 0xce lv_coord_t transf_w = lv_obj_get_style_transform_width(obj, LV_PART_INDICATOR); - 803bd2c: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803bd30: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803bd34: f7ff fdb8 bl 803b8a8 - 803bd38: 4603 mov r3, r0 - 803bd3a: f8a7 30cc strh.w r3, [r7, #204] ; 0xcc + 803bc98: f44f 3100 mov.w r1, #131072 ; 0x20000 + 803bc9c: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803bca0: f7ff fdb8 bl 803b814 + 803bca4: 4603 mov r3, r0 + 803bca6: f8a7 30cc strh.w r3, [r7, #204] ; 0xcc lv_coord_t transf_h = lv_obj_get_style_transform_height(obj, LV_PART_INDICATOR); - 803bd3e: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803bd42: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803bd46: f7ff fdc2 bl 803b8ce - 803bd4a: 4603 mov r3, r0 - 803bd4c: f8a7 30ca strh.w r3, [r7, #202] ; 0xca + 803bcaa: f44f 3100 mov.w r1, #131072 ; 0x20000 + 803bcae: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803bcb2: f7ff fdc2 bl 803b83a + 803bcb6: 4603 mov r3, r0 + 803bcb8: f8a7 30ca strh.w r3, [r7, #202] ; 0xca lv_draw_rect_dsc_t indic_dsc; lv_draw_rect_dsc_init(&indic_dsc); - 803bd50: f107 038c add.w r3, r7, #140 ; 0x8c - 803bd54: 4618 mov r0, r3 - 803bd56: f7d9 fd4d bl 80157f4 + 803bcbc: f107 038c add.w r3, r7, #140 ; 0x8c + 803bcc0: 4618 mov r0, r3 + 803bcc2: f7d9 fd4d bl 8015760 lv_obj_init_draw_rect_dsc(obj, LV_PART_INDICATOR, &indic_dsc); - 803bd5a: f107 038c add.w r3, r7, #140 ; 0x8c - 803bd5e: 461a mov r2, r3 - 803bd60: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803bd64: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803bd68: f7cc fc2d bl 80085c6 + 803bcc6: f107 038c add.w r3, r7, #140 ; 0x8c + 803bcca: 461a mov r2, r3 + 803bccc: f44f 3100 mov.w r1, #131072 ; 0x20000 + 803bcd0: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803bcd4: f7cc fc41 bl 800855a lv_area_t marker_area; marker_area.x1 = obj->coords.x1 + bg_leftp; - 803bd6c: f8d7 30ec ldr.w r3, [r7, #236] ; 0xec - 803bd70: f9b3 3014 ldrsh.w r3, [r3, #20] - 803bd74: b29a uxth r2, r3 - 803bd76: f8b7 30d8 ldrh.w r3, [r7, #216] ; 0xd8 - 803bd7a: 4413 add r3, r2 - 803bd7c: b29b uxth r3, r3 - 803bd7e: b21b sxth r3, r3 - 803bd80: f8a7 3084 strh.w r3, [r7, #132] ; 0x84 + 803bcd8: f8d7 30ec ldr.w r3, [r7, #236] ; 0xec + 803bcdc: f9b3 3014 ldrsh.w r3, [r3, #20] + 803bce0: b29a uxth r2, r3 + 803bce2: f8b7 30d8 ldrh.w r3, [r7, #216] ; 0xd8 + 803bce6: 4413 add r3, r2 + 803bce8: b29b uxth r3, r3 + 803bcea: b21b sxth r3, r3 + 803bcec: f8a7 3084 strh.w r3, [r7, #132] ; 0x84 marker_area.x2 = marker_area.x1 + font_h + marker_leftp + marker_rightp - 1; - 803bd84: f9b7 3084 ldrsh.w r3, [r7, #132] ; 0x84 - 803bd88: b29a uxth r2, r3 - 803bd8a: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde - 803bd8e: 4413 add r3, r2 - 803bd90: b29a uxth r2, r3 - 803bd92: f8b7 30d4 ldrh.w r3, [r7, #212] ; 0xd4 - 803bd96: 4413 add r3, r2 - 803bd98: b29a uxth r2, r3 - 803bd9a: f8b7 30d2 ldrh.w r3, [r7, #210] ; 0xd2 - 803bd9e: 4413 add r3, r2 - 803bda0: b29b uxth r3, r3 - 803bda2: 3b01 subs r3, #1 - 803bda4: b29b uxth r3, r3 - 803bda6: b21b sxth r3, r3 - 803bda8: f8a7 3088 strh.w r3, [r7, #136] ; 0x88 + 803bcf0: f9b7 3084 ldrsh.w r3, [r7, #132] ; 0x84 + 803bcf4: b29a uxth r2, r3 + 803bcf6: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde + 803bcfa: 4413 add r3, r2 + 803bcfc: b29a uxth r2, r3 + 803bcfe: f8b7 30d4 ldrh.w r3, [r7, #212] ; 0xd4 + 803bd02: 4413 add r3, r2 + 803bd04: b29a uxth r2, r3 + 803bd06: f8b7 30d2 ldrh.w r3, [r7, #210] ; 0xd2 + 803bd0a: 4413 add r3, r2 + 803bd0c: b29b uxth r3, r3 + 803bd0e: 3b01 subs r3, #1 + 803bd10: b29b uxth r3, r3 + 803bd12: b21b sxth r3, r3 + 803bd14: f8a7 3088 strh.w r3, [r7, #136] ; 0x88 marker_area.y1 = obj->coords.y1 + bg_topp; - 803bdac: f8d7 30ec ldr.w r3, [r7, #236] ; 0xec - 803bdb0: f9b3 3016 ldrsh.w r3, [r3, #22] - 803bdb4: b29a uxth r2, r3 - 803bdb6: f8b7 30da ldrh.w r3, [r7, #218] ; 0xda - 803bdba: 4413 add r3, r2 - 803bdbc: b29b uxth r3, r3 - 803bdbe: b21b sxth r3, r3 - 803bdc0: f8a7 3086 strh.w r3, [r7, #134] ; 0x86 + 803bd18: f8d7 30ec ldr.w r3, [r7, #236] ; 0xec + 803bd1c: f9b3 3016 ldrsh.w r3, [r3, #22] + 803bd20: b29a uxth r2, r3 + 803bd22: f8b7 30da ldrh.w r3, [r7, #218] ; 0xda + 803bd26: 4413 add r3, r2 + 803bd28: b29b uxth r3, r3 + 803bd2a: b21b sxth r3, r3 + 803bd2c: f8a7 3086 strh.w r3, [r7, #134] ; 0x86 marker_area.y2 = marker_area.y1 + font_h + marker_topp + marker_bottomp - 1; - 803bdc4: f9b7 3086 ldrsh.w r3, [r7, #134] ; 0x86 - 803bdc8: b29a uxth r2, r3 - 803bdca: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde - 803bdce: 4413 add r3, r2 - 803bdd0: b29a uxth r2, r3 - 803bdd2: f8b7 30d0 ldrh.w r3, [r7, #208] ; 0xd0 - 803bdd6: 4413 add r3, r2 - 803bdd8: b29a uxth r2, r3 - 803bdda: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce - 803bdde: 4413 add r3, r2 - 803bde0: b29b uxth r3, r3 - 803bde2: 3b01 subs r3, #1 - 803bde4: b29b uxth r3, r3 - 803bde6: b21b sxth r3, r3 - 803bde8: f8a7 308a strh.w r3, [r7, #138] ; 0x8a + 803bd30: f9b7 3086 ldrsh.w r3, [r7, #134] ; 0x86 + 803bd34: b29a uxth r2, r3 + 803bd36: f8b7 30de ldrh.w r3, [r7, #222] ; 0xde + 803bd3a: 4413 add r3, r2 + 803bd3c: b29a uxth r2, r3 + 803bd3e: f8b7 30d0 ldrh.w r3, [r7, #208] ; 0xd0 + 803bd42: 4413 add r3, r2 + 803bd44: b29a uxth r2, r3 + 803bd46: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce + 803bd4a: 4413 add r3, r2 + 803bd4c: b29b uxth r3, r3 + 803bd4e: 3b01 subs r3, #1 + 803bd50: b29b uxth r3, r3 + 803bd52: b21b sxth r3, r3 + 803bd54: f8a7 308a strh.w r3, [r7, #138] ; 0x8a lv_area_t marker_area_transf; lv_area_copy(&marker_area_transf, &marker_area); - 803bdec: f107 0284 add.w r2, r7, #132 ; 0x84 - 803bdf0: f107 037c add.w r3, r7, #124 ; 0x7c - 803bdf4: 4611 mov r1, r2 - 803bdf6: 4618 mov r0, r3 - 803bdf8: f7ff fd16 bl 803b828 + 803bd58: f107 0284 add.w r2, r7, #132 ; 0x84 + 803bd5c: f107 037c add.w r3, r7, #124 ; 0x7c + 803bd60: 4611 mov r1, r2 + 803bd62: 4618 mov r0, r3 + 803bd64: f7ff fd16 bl 803b794 marker_area_transf.x1 -= transf_w; - 803bdfc: f9b7 307c ldrsh.w r3, [r7, #124] ; 0x7c - 803be00: b29a uxth r2, r3 - 803be02: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc - 803be06: 1ad3 subs r3, r2, r3 - 803be08: b29b uxth r3, r3 - 803be0a: b21b sxth r3, r3 - 803be0c: f8a7 307c strh.w r3, [r7, #124] ; 0x7c + 803bd68: f9b7 307c ldrsh.w r3, [r7, #124] ; 0x7c + 803bd6c: b29a uxth r2, r3 + 803bd6e: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc + 803bd72: 1ad3 subs r3, r2, r3 + 803bd74: b29b uxth r3, r3 + 803bd76: b21b sxth r3, r3 + 803bd78: f8a7 307c strh.w r3, [r7, #124] ; 0x7c marker_area_transf.x2 += transf_w; - 803be10: f9b7 3080 ldrsh.w r3, [r7, #128] ; 0x80 - 803be14: b29a uxth r2, r3 - 803be16: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc - 803be1a: 4413 add r3, r2 - 803be1c: b29b uxth r3, r3 - 803be1e: b21b sxth r3, r3 - 803be20: f8a7 3080 strh.w r3, [r7, #128] ; 0x80 + 803bd7c: f9b7 3080 ldrsh.w r3, [r7, #128] ; 0x80 + 803bd80: b29a uxth r2, r3 + 803bd82: f8b7 30cc ldrh.w r3, [r7, #204] ; 0xcc + 803bd86: 4413 add r3, r2 + 803bd88: b29b uxth r3, r3 + 803bd8a: b21b sxth r3, r3 + 803bd8c: f8a7 3080 strh.w r3, [r7, #128] ; 0x80 marker_area_transf.y1 -= transf_h; - 803be24: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e - 803be28: b29a uxth r2, r3 - 803be2a: f8b7 30ca ldrh.w r3, [r7, #202] ; 0xca - 803be2e: 1ad3 subs r3, r2, r3 - 803be30: b29b uxth r3, r3 - 803be32: b21b sxth r3, r3 - 803be34: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 803bd90: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e + 803bd94: b29a uxth r2, r3 + 803bd96: f8b7 30ca ldrh.w r3, [r7, #202] ; 0xca + 803bd9a: 1ad3 subs r3, r2, r3 + 803bd9c: b29b uxth r3, r3 + 803bd9e: b21b sxth r3, r3 + 803bda0: f8a7 307e strh.w r3, [r7, #126] ; 0x7e marker_area_transf.y2 += transf_h; - 803be38: f9b7 3082 ldrsh.w r3, [r7, #130] ; 0x82 - 803be3c: b29a uxth r2, r3 - 803be3e: f8b7 30ca ldrh.w r3, [r7, #202] ; 0xca - 803be42: 4413 add r3, r2 - 803be44: b29b uxth r3, r3 - 803be46: b21b sxth r3, r3 - 803be48: f8a7 3082 strh.w r3, [r7, #130] ; 0x82 + 803bda4: f9b7 3082 ldrsh.w r3, [r7, #130] ; 0x82 + 803bda8: b29a uxth r2, r3 + 803bdaa: f8b7 30ca ldrh.w r3, [r7, #202] ; 0xca + 803bdae: 4413 add r3, r2 + 803bdb0: b29b uxth r3, r3 + 803bdb2: b21b sxth r3, r3 + 803bdb4: f8a7 3082 strh.w r3, [r7, #130] ; 0x82 lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 803be4c: f107 0334 add.w r3, r7, #52 ; 0x34 - 803be50: f8d7 10e4 ldr.w r1, [r7, #228] ; 0xe4 - 803be54: 4618 mov r0, r3 - 803be56: f7cd f80a bl 8008e6e + 803bdb8: f107 0334 add.w r3, r7, #52 ; 0x34 + 803bdbc: f8d7 10e4 ldr.w r1, [r7, #228] ; 0xe4 + 803bdc0: 4618 mov r0, r3 + 803bdc2: f7cd f81e bl 8008e02 part_draw_dsc.rect_dsc = &indic_dsc; - 803be5a: f107 038c add.w r3, r7, #140 ; 0x8c - 803be5e: 647b str r3, [r7, #68] ; 0x44 + 803bdc6: f107 038c add.w r3, r7, #140 ; 0x8c + 803bdca: 647b str r3, [r7, #68] ; 0x44 part_draw_dsc.class_p = MY_CLASS; - 803be60: 4b4f ldr r3, [pc, #316] ; (803bfa0 ) - 803be62: 63bb str r3, [r7, #56] ; 0x38 + 803bdcc: 4b4f ldr r3, [pc, #316] ; (803bf0c ) + 803bdce: 63bb str r3, [r7, #56] ; 0x38 part_draw_dsc.type = LV_CHECKBOX_DRAW_PART_BOX; - 803be64: 2300 movs r3, #0 - 803be66: 63fb str r3, [r7, #60] ; 0x3c + 803bdd0: 2300 movs r3, #0 + 803bdd2: 63fb str r3, [r7, #60] ; 0x3c part_draw_dsc.draw_area = &marker_area_transf; - 803be68: f107 037c add.w r3, r7, #124 ; 0x7c - 803be6c: 643b str r3, [r7, #64] ; 0x40 + 803bdd4: f107 037c add.w r3, r7, #124 ; 0x7c + 803bdd8: 643b str r3, [r7, #64] ; 0x40 part_draw_dsc.part = LV_PART_INDICATOR; - 803be6e: f44f 3300 mov.w r3, #131072 ; 0x20000 - 803be72: 66bb str r3, [r7, #104] ; 0x68 + 803bdda: f44f 3300 mov.w r3, #131072 ; 0x20000 + 803bdde: 66bb str r3, [r7, #104] ; 0x68 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 803be74: f107 0334 add.w r3, r7, #52 ; 0x34 - 803be78: 461a mov r2, r3 - 803be7a: 211a movs r1, #26 - 803be7c: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803be80: f7c6 fafe bl 8002480 + 803bde0: f107 0334 add.w r3, r7, #52 ; 0x34 + 803bde4: 461a mov r2, r3 + 803bde6: 211a movs r1, #26 + 803bde8: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803bdec: f7c6 fb12 bl 8002414 lv_draw_rect(draw_ctx, &indic_dsc, &marker_area_transf); - 803be84: f107 027c add.w r2, r7, #124 ; 0x7c - 803be88: f107 038c add.w r3, r7, #140 ; 0x8c - 803be8c: 4619 mov r1, r3 - 803be8e: f8d7 00e4 ldr.w r0, [r7, #228] ; 0xe4 - 803be92: f7d9 fcf1 bl 8015878 + 803bdf0: f107 027c add.w r2, r7, #124 ; 0x7c + 803bdf4: f107 038c add.w r3, r7, #140 ; 0x8c + 803bdf8: 4619 mov r1, r3 + 803bdfa: f8d7 00e4 ldr.w r0, [r7, #228] ; 0xe4 + 803bdfe: f7d9 fcf1 bl 80157e4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 803be96: f107 0334 add.w r3, r7, #52 ; 0x34 - 803be9a: 461a mov r2, r3 - 803be9c: 211b movs r1, #27 - 803be9e: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803bea2: f7c6 faed bl 8002480 + 803be02: f107 0334 add.w r3, r7, #52 ; 0x34 + 803be06: 461a mov r2, r3 + 803be08: 211b movs r1, #27 + 803be0a: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803be0e: f7c6 fb01 bl 8002414 lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN); - 803bea6: 2100 movs r1, #0 - 803bea8: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803beac: f7ff fdb9 bl 803ba22 - 803beb0: 4603 mov r3, r0 - 803beb2: f8a7 30c8 strh.w r3, [r7, #200] ; 0xc8 + 803be12: 2100 movs r1, #0 + 803be14: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803be18: f7ff fdb9 bl 803b98e + 803be1c: 4603 mov r3, r0 + 803be1e: f8a7 30c8 strh.w r3, [r7, #200] ; 0xc8 lv_coord_t letter_space = lv_obj_get_style_text_letter_space(obj, LV_PART_MAIN); - 803beb6: 2100 movs r1, #0 - 803beb8: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803bebc: f7ff fd9e bl 803b9fc - 803bec0: 4603 mov r3, r0 - 803bec2: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 + 803be22: 2100 movs r1, #0 + 803be24: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803be28: f7ff fd9e bl 803b968 + 803be2c: 4603 mov r3, r0 + 803be2e: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 lv_point_t txt_size; lv_txt_get_size(&txt_size, cb->txt, font, letter_space, line_space, LV_COORD_MAX, LV_TEXT_FLAG_NONE); - 803bec6: f8d7 30e8 ldr.w r3, [r7, #232] ; 0xe8 - 803beca: 6a59 ldr r1, [r3, #36] ; 0x24 - 803becc: f9b7 20c6 ldrsh.w r2, [r7, #198] ; 0xc6 - 803bed0: f107 0030 add.w r0, r7, #48 ; 0x30 - 803bed4: 2300 movs r3, #0 - 803bed6: 9302 str r3, [sp, #8] - 803bed8: f641 73ff movw r3, #8191 ; 0x1fff - 803bedc: 9301 str r3, [sp, #4] - 803bede: f9b7 30c8 ldrsh.w r3, [r7, #200] ; 0xc8 - 803bee2: 9300 str r3, [sp, #0] - 803bee4: 4613 mov r3, r2 - 803bee6: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 - 803beea: f7fa f8ce bl 803608a + 803be32: f8d7 30e8 ldr.w r3, [r7, #232] ; 0xe8 + 803be36: 6a59 ldr r1, [r3, #36] ; 0x24 + 803be38: f9b7 20c6 ldrsh.w r2, [r7, #198] ; 0xc6 + 803be3c: f107 0030 add.w r0, r7, #48 ; 0x30 + 803be40: 2300 movs r3, #0 + 803be42: 9302 str r3, [sp, #8] + 803be44: f641 73ff movw r3, #8191 ; 0x1fff + 803be48: 9301 str r3, [sp, #4] + 803be4a: f9b7 30c8 ldrsh.w r3, [r7, #200] ; 0xc8 + 803be4e: 9300 str r3, [sp, #0] + 803be50: 4613 mov r3, r2 + 803be52: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 + 803be56: f7fa f8ce bl 8035ff6 lv_draw_label_dsc_t txt_dsc; lv_draw_label_dsc_init(&txt_dsc); - 803beee: f107 0310 add.w r3, r7, #16 - 803bef2: 4618 mov r0, r3 - 803bef4: f7d6 f94a bl 801218c + 803be5a: f107 0310 add.w r3, r7, #16 + 803be5e: 4618 mov r0, r3 + 803be60: f7d6 f94a bl 80120f8 lv_obj_init_draw_label_dsc(obj, LV_PART_MAIN, &txt_dsc); - 803bef8: f107 0310 add.w r3, r7, #16 - 803befc: 461a mov r2, r3 - 803befe: 2100 movs r1, #0 - 803bf00: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec - 803bf04: f7cc fd4d bl 80089a2 + 803be64: f107 0310 add.w r3, r7, #16 + 803be68: 461a mov r2, r3 + 803be6a: 2100 movs r1, #0 + 803be6c: f8d7 00ec ldr.w r0, [r7, #236] ; 0xec + 803be70: f7cc fd61 bl 8008936 lv_coord_t y_ofs = (lv_area_get_height(&marker_area) - font_h) / 2; - 803bf08: f107 0384 add.w r3, r7, #132 ; 0x84 - 803bf0c: 4618 mov r0, r3 - 803bf0e: f7ff fca9 bl 803b864 - 803bf12: 4603 mov r3, r0 - 803bf14: 461a mov r2, r3 - 803bf16: f9b7 30de ldrsh.w r3, [r7, #222] ; 0xde - 803bf1a: 1ad3 subs r3, r2, r3 - 803bf1c: 0fda lsrs r2, r3, #31 - 803bf1e: 4413 add r3, r2 - 803bf20: 105b asrs r3, r3, #1 - 803bf22: f8a7 30c4 strh.w r3, [r7, #196] ; 0xc4 + 803be74: f107 0384 add.w r3, r7, #132 ; 0x84 + 803be78: 4618 mov r0, r3 + 803be7a: f7ff fca9 bl 803b7d0 + 803be7e: 4603 mov r3, r0 + 803be80: 461a mov r2, r3 + 803be82: f9b7 30de ldrsh.w r3, [r7, #222] ; 0xde + 803be86: 1ad3 subs r3, r2, r3 + 803be88: 0fda lsrs r2, r3, #31 + 803be8a: 4413 add r3, r2 + 803be8c: 105b asrs r3, r3, #1 + 803be8e: f8a7 30c4 strh.w r3, [r7, #196] ; 0xc4 lv_area_t txt_area; txt_area.x1 = marker_area.x2 + bg_colp; - 803bf26: f9b7 3088 ldrsh.w r3, [r7, #136] ; 0x88 - 803bf2a: b29a uxth r2, r3 - 803bf2c: f8b7 30d6 ldrh.w r3, [r7, #214] ; 0xd6 - 803bf30: 4413 add r3, r2 - 803bf32: b29b uxth r3, r3 - 803bf34: b21b sxth r3, r3 - 803bf36: 813b strh r3, [r7, #8] + 803be92: f9b7 3088 ldrsh.w r3, [r7, #136] ; 0x88 + 803be96: b29a uxth r2, r3 + 803be98: f8b7 30d6 ldrh.w r3, [r7, #214] ; 0xd6 + 803be9c: 4413 add r3, r2 + 803be9e: b29b uxth r3, r3 + 803bea0: b21b sxth r3, r3 + 803bea2: 813b strh r3, [r7, #8] txt_area.x2 = txt_area.x1 + txt_size.x; - 803bf38: f9b7 3008 ldrsh.w r3, [r7, #8] - 803bf3c: b29a uxth r2, r3 - 803bf3e: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 803bf42: b29b uxth r3, r3 - 803bf44: 4413 add r3, r2 - 803bf46: b29b uxth r3, r3 - 803bf48: b21b sxth r3, r3 - 803bf4a: 81bb strh r3, [r7, #12] + 803bea4: f9b7 3008 ldrsh.w r3, [r7, #8] + 803bea8: b29a uxth r2, r3 + 803beaa: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 803beae: b29b uxth r3, r3 + 803beb0: 4413 add r3, r2 + 803beb2: b29b uxth r3, r3 + 803beb4: b21b sxth r3, r3 + 803beb6: 81bb strh r3, [r7, #12] txt_area.y1 = obj->coords.y1 + bg_topp + y_ofs; - 803bf4c: f8d7 30ec ldr.w r3, [r7, #236] ; 0xec - 803bf50: f9b3 3016 ldrsh.w r3, [r3, #22] - 803bf54: b29a uxth r2, r3 - 803bf56: f8b7 30da ldrh.w r3, [r7, #218] ; 0xda - 803bf5a: 4413 add r3, r2 - 803bf5c: b29a uxth r2, r3 - 803bf5e: f8b7 30c4 ldrh.w r3, [r7, #196] ; 0xc4 - 803bf62: 4413 add r3, r2 - 803bf64: b29b uxth r3, r3 - 803bf66: b21b sxth r3, r3 - 803bf68: 817b strh r3, [r7, #10] + 803beb8: f8d7 30ec ldr.w r3, [r7, #236] ; 0xec + 803bebc: f9b3 3016 ldrsh.w r3, [r3, #22] + 803bec0: b29a uxth r2, r3 + 803bec2: f8b7 30da ldrh.w r3, [r7, #218] ; 0xda + 803bec6: 4413 add r3, r2 + 803bec8: b29a uxth r2, r3 + 803beca: f8b7 30c4 ldrh.w r3, [r7, #196] ; 0xc4 + 803bece: 4413 add r3, r2 + 803bed0: b29b uxth r3, r3 + 803bed2: b21b sxth r3, r3 + 803bed4: 817b strh r3, [r7, #10] txt_area.y2 = txt_area.y1 + txt_size.y; - 803bf6a: f9b7 300a ldrsh.w r3, [r7, #10] - 803bf6e: b29a uxth r2, r3 - 803bf70: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 803bf74: b29b uxth r3, r3 - 803bf76: 4413 add r3, r2 - 803bf78: b29b uxth r3, r3 - 803bf7a: b21b sxth r3, r3 - 803bf7c: 81fb strh r3, [r7, #14] + 803bed6: f9b7 300a ldrsh.w r3, [r7, #10] + 803beda: b29a uxth r2, r3 + 803bedc: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 803bee0: b29b uxth r3, r3 + 803bee2: 4413 add r3, r2 + 803bee4: b29b uxth r3, r3 + 803bee6: b21b sxth r3, r3 + 803bee8: 81fb strh r3, [r7, #14] lv_draw_label(draw_ctx, &txt_dsc, &txt_area, cb->txt, NULL); - 803bf7e: f8d7 30e8 ldr.w r3, [r7, #232] ; 0xe8 - 803bf82: 6a5b ldr r3, [r3, #36] ; 0x24 - 803bf84: f107 0208 add.w r2, r7, #8 - 803bf88: f107 0110 add.w r1, r7, #16 - 803bf8c: 2000 movs r0, #0 - 803bf8e: 9000 str r0, [sp, #0] - 803bf90: f8d7 00e4 ldr.w r0, [r7, #228] ; 0xe4 - 803bf94: f7d6 f926 bl 80121e4 + 803beea: f8d7 30e8 ldr.w r3, [r7, #232] ; 0xe8 + 803beee: 6a5b ldr r3, [r3, #36] ; 0x24 + 803bef0: f107 0208 add.w r2, r7, #8 + 803bef4: f107 0110 add.w r1, r7, #16 + 803bef8: 2000 movs r0, #0 + 803befa: 9000 str r0, [sp, #0] + 803befc: f8d7 00e4 ldr.w r0, [r7, #228] ; 0xe4 + 803bf00: f7d6 f926 bl 8012150 } - 803bf98: bf00 nop - 803bf9a: 37f0 adds r7, #240 ; 0xf0 - 803bf9c: 46bd mov sp, r7 - 803bf9e: bd80 pop {r7, pc} - 803bfa0: 08070a1c .word 0x08070a1c + 803bf04: bf00 nop + 803bf06: 37f0 adds r7, #240 ; 0xf0 + 803bf08: 46bd mov sp, r7 + 803bf0a: bd80 pop {r7, pc} + 803bf0c: 08070974 .word 0x08070974 -0803bfa4 : +0803bf10 : { - 803bfa4: b480 push {r7} - 803bfa6: b083 sub sp, #12 - 803bfa8: af00 add r7, sp, #0 - 803bfaa: 6078 str r0, [r7, #4] + 803bf10: b480 push {r7} + 803bf12: b083 sub sp, #12 + 803bf14: af00 add r7, sp, #0 + 803bf16: 6078 str r0, [r7, #4] return font_p->line_height; - 803bfac: 687b ldr r3, [r7, #4] - 803bfae: f9b3 3008 ldrsh.w r3, [r3, #8] + 803bf18: 687b ldr r3, [r7, #4] + 803bf1a: f9b3 3008 ldrsh.w r3, [r3, #8] } - 803bfb2: 4618 mov r0, r3 - 803bfb4: 370c adds r7, #12 - 803bfb6: 46bd mov sp, r7 - 803bfb8: bc80 pop {r7} - 803bfba: 4770 bx lr + 803bf1e: 4618 mov r0, r3 + 803bf20: 370c adds r7, #12 + 803bf22: 46bd mov sp, r7 + 803bf24: bc80 pop {r7} + 803bf26: 4770 bx lr -0803bfbc : +0803bf28 : { - 803bfbc: b580 push {r7, lr} - 803bfbe: b084 sub sp, #16 - 803bfc0: af00 add r7, sp, #0 - 803bfc2: 6078 str r0, [r7, #4] - 803bfc4: 6039 str r1, [r7, #0] + 803bf28: b580 push {r7, lr} + 803bf2a: b084 sub sp, #16 + 803bf2c: af00 add r7, sp, #0 + 803bf2e: 6078 str r0, [r7, #4] + 803bf30: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_ANGLE); - 803bfc6: f643 020f movw r2, #14351 ; 0x380f - 803bfca: 6839 ldr r1, [r7, #0] - 803bfcc: 6878 ldr r0, [r7, #4] - 803bfce: f7d1 feef bl 800ddb0 - 803bfd2: 4603 mov r3, r0 - 803bfd4: 60fb str r3, [r7, #12] + 803bf32: f643 020f movw r2, #14351 ; 0x380f + 803bf36: 6839 ldr r1, [r7, #0] + 803bf38: 6878 ldr r0, [r7, #4] + 803bf3a: f7d1 ff03 bl 800dd44 + 803bf3e: 4603 mov r3, r0 + 803bf40: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803bfd6: 68fb ldr r3, [r7, #12] - 803bfd8: b21b sxth r3, r3 + 803bf42: 68fb ldr r3, [r7, #12] + 803bf44: b21b sxth r3, r3 } - 803bfda: 4618 mov r0, r3 - 803bfdc: 3710 adds r7, #16 - 803bfde: 46bd mov sp, r7 - 803bfe0: bd80 pop {r7, pc} + 803bf46: 4618 mov r0, r3 + 803bf48: 3710 adds r7, #16 + 803bf4a: 46bd mov sp, r7 + 803bf4c: bd80 pop {r7, pc} -0803bfe2 : +0803bf4e : { - 803bfe2: b580 push {r7, lr} - 803bfe4: b084 sub sp, #16 - 803bfe6: af00 add r7, sp, #0 - 803bfe8: 6078 str r0, [r7, #4] - 803bfea: 6039 str r1, [r7, #0] + 803bf4e: b580 push {r7, lr} + 803bf50: b084 sub sp, #16 + 803bf52: af00 add r7, sp, #0 + 803bf54: 6078 str r0, [r7, #4] + 803bf56: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 803bfec: f641 0210 movw r2, #6160 ; 0x1810 - 803bff0: 6839 ldr r1, [r7, #0] - 803bff2: 6878 ldr r0, [r7, #4] - 803bff4: f7d1 fedc bl 800ddb0 - 803bff8: 4603 mov r3, r0 - 803bffa: 60fb str r3, [r7, #12] + 803bf58: f641 0210 movw r2, #6160 ; 0x1810 + 803bf5c: 6839 ldr r1, [r7, #0] + 803bf5e: 6878 ldr r0, [r7, #4] + 803bf60: f7d1 fef0 bl 800dd44 + 803bf64: 4603 mov r3, r0 + 803bf66: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803bffc: 68fb ldr r3, [r7, #12] - 803bffe: b21b sxth r3, r3 + 803bf68: 68fb ldr r3, [r7, #12] + 803bf6a: b21b sxth r3, r3 } - 803c000: 4618 mov r0, r3 - 803c002: 3710 adds r7, #16 - 803c004: 46bd mov sp, r7 - 803c006: bd80 pop {r7, pc} + 803bf6c: 4618 mov r0, r3 + 803bf6e: 3710 adds r7, #16 + 803bf70: 46bd mov sp, r7 + 803bf72: bd80 pop {r7, pc} -0803c008 : +0803bf74 : { - 803c008: b580 push {r7, lr} - 803c00a: b084 sub sp, #16 - 803c00c: af00 add r7, sp, #0 - 803c00e: 6078 str r0, [r7, #4] - 803c010: 6039 str r1, [r7, #0] + 803bf74: b580 push {r7, lr} + 803bf76: b084 sub sp, #16 + 803bf78: af00 add r7, sp, #0 + 803bf7a: 6078 str r0, [r7, #4] + 803bf7c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); - 803c012: f641 0211 movw r2, #6161 ; 0x1811 - 803c016: 6839 ldr r1, [r7, #0] - 803c018: 6878 ldr r0, [r7, #4] - 803c01a: f7d1 fec9 bl 800ddb0 - 803c01e: 4603 mov r3, r0 - 803c020: 60fb str r3, [r7, #12] + 803bf7e: f641 0211 movw r2, #6161 ; 0x1811 + 803bf82: 6839 ldr r1, [r7, #0] + 803bf84: 6878 ldr r0, [r7, #4] + 803bf86: f7d1 fedd bl 800dd44 + 803bf8a: 4603 mov r3, r0 + 803bf8c: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803c022: 68fb ldr r3, [r7, #12] - 803c024: b21b sxth r3, r3 + 803bf8e: 68fb ldr r3, [r7, #12] + 803bf90: b21b sxth r3, r3 } - 803c026: 4618 mov r0, r3 - 803c028: 3710 adds r7, #16 - 803c02a: 46bd mov sp, r7 - 803c02c: bd80 pop {r7, pc} + 803bf92: 4618 mov r0, r3 + 803bf94: 3710 adds r7, #16 + 803bf96: 46bd mov sp, r7 + 803bf98: bd80 pop {r7, pc} -0803c02e : +0803bf9a : { - 803c02e: b580 push {r7, lr} - 803c030: b084 sub sp, #16 - 803c032: af00 add r7, sp, #0 - 803c034: 6078 str r0, [r7, #4] - 803c036: 6039 str r1, [r7, #0] + 803bf9a: b580 push {r7, lr} + 803bf9c: b084 sub sp, #16 + 803bf9e: af00 add r7, sp, #0 + 803bfa0: 6078 str r0, [r7, #4] + 803bfa2: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 803c038: f641 0212 movw r2, #6162 ; 0x1812 - 803c03c: 6839 ldr r1, [r7, #0] - 803c03e: 6878 ldr r0, [r7, #4] - 803c040: f7d1 feb6 bl 800ddb0 - 803c044: 4603 mov r3, r0 - 803c046: 60fb str r3, [r7, #12] + 803bfa4: f641 0212 movw r2, #6162 ; 0x1812 + 803bfa8: 6839 ldr r1, [r7, #0] + 803bfaa: 6878 ldr r0, [r7, #4] + 803bfac: f7d1 feca bl 800dd44 + 803bfb0: 4603 mov r3, r0 + 803bfb2: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803c048: 68fb ldr r3, [r7, #12] - 803c04a: b21b sxth r3, r3 + 803bfb4: 68fb ldr r3, [r7, #12] + 803bfb6: b21b sxth r3, r3 } - 803c04c: 4618 mov r0, r3 - 803c04e: 3710 adds r7, #16 - 803c050: 46bd mov sp, r7 - 803c052: bd80 pop {r7, pc} + 803bfb8: 4618 mov r0, r3 + 803bfba: 3710 adds r7, #16 + 803bfbc: 46bd mov sp, r7 + 803bfbe: bd80 pop {r7, pc} -0803c054 : +0803bfc0 : { - 803c054: b580 push {r7, lr} - 803c056: b084 sub sp, #16 - 803c058: af00 add r7, sp, #0 - 803c05a: 6078 str r0, [r7, #4] - 803c05c: 6039 str r1, [r7, #0] + 803bfc0: b580 push {r7, lr} + 803bfc2: b084 sub sp, #16 + 803bfc4: af00 add r7, sp, #0 + 803bfc6: 6078 str r0, [r7, #4] + 803bfc8: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - 803c05e: f641 0213 movw r2, #6163 ; 0x1813 - 803c062: 6839 ldr r1, [r7, #0] - 803c064: 6878 ldr r0, [r7, #4] - 803c066: f7d1 fea3 bl 800ddb0 - 803c06a: 4603 mov r3, r0 - 803c06c: 60fb str r3, [r7, #12] + 803bfca: f641 0213 movw r2, #6163 ; 0x1813 + 803bfce: 6839 ldr r1, [r7, #0] + 803bfd0: 6878 ldr r0, [r7, #4] + 803bfd2: f7d1 feb7 bl 800dd44 + 803bfd6: 4603 mov r3, r0 + 803bfd8: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803c06e: 68fb ldr r3, [r7, #12] - 803c070: b21b sxth r3, r3 + 803bfda: 68fb ldr r3, [r7, #12] + 803bfdc: b21b sxth r3, r3 } - 803c072: 4618 mov r0, r3 - 803c074: 3710 adds r7, #16 - 803c076: 46bd mov sp, r7 - 803c078: bd80 pop {r7, pc} + 803bfde: 4618 mov r0, r3 + 803bfe0: 3710 adds r7, #16 + 803bfe2: 46bd mov sp, r7 + 803bfe4: bd80 pop {r7, pc} -0803c07a : +0803bfe6 : { - 803c07a: b580 push {r7, lr} - 803c07c: b084 sub sp, #16 - 803c07e: af00 add r7, sp, #0 - 803c080: 6078 str r0, [r7, #4] - 803c082: 6039 str r1, [r7, #0] + 803bfe6: b580 push {r7, lr} + 803bfe8: b084 sub sp, #16 + 803bfea: af00 add r7, sp, #0 + 803bfec: 6078 str r0, [r7, #4] + 803bfee: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); - 803c084: f241 0232 movw r2, #4146 ; 0x1032 - 803c088: 6839 ldr r1, [r7, #0] - 803c08a: 6878 ldr r0, [r7, #4] - 803c08c: f7d1 fe90 bl 800ddb0 - 803c090: 4603 mov r3, r0 - 803c092: 60fb str r3, [r7, #12] + 803bff0: f241 0232 movw r2, #4146 ; 0x1032 + 803bff4: 6839 ldr r1, [r7, #0] + 803bff6: 6878 ldr r0, [r7, #4] + 803bff8: f7d1 fea4 bl 800dd44 + 803bffc: 4603 mov r3, r0 + 803bffe: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803c094: 68fb ldr r3, [r7, #12] - 803c096: b21b sxth r3, r3 + 803c000: 68fb ldr r3, [r7, #12] + 803c002: b21b sxth r3, r3 } - 803c098: 4618 mov r0, r3 - 803c09a: 3710 adds r7, #16 - 803c09c: 46bd mov sp, r7 - 803c09e: bd80 pop {r7, pc} + 803c004: 4618 mov r0, r3 + 803c006: 3710 adds r7, #16 + 803c008: 46bd mov sp, r7 + 803c00a: bd80 pop {r7, pc} -0803c0a0 : +0803c00c : { - 803c0a0: b580 push {r7, lr} - 803c0a2: b084 sub sp, #16 - 803c0a4: af00 add r7, sp, #0 - 803c0a6: 6078 str r0, [r7, #4] - 803c0a8: 6039 str r1, [r7, #0] + 803c00c: b580 push {r7, lr} + 803c00e: b084 sub sp, #16 + 803c010: af00 add r7, sp, #0 + 803c012: 6078 str r0, [r7, #4] + 803c014: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_FONT); - 803c0aa: f241 4259 movw r2, #5209 ; 0x1459 - 803c0ae: 6839 ldr r1, [r7, #0] - 803c0b0: 6878 ldr r0, [r7, #4] - 803c0b2: f7d1 fe7d bl 800ddb0 - 803c0b6: 4603 mov r3, r0 - 803c0b8: 60fb str r3, [r7, #12] + 803c016: f241 4259 movw r2, #5209 ; 0x1459 + 803c01a: 6839 ldr r1, [r7, #0] + 803c01c: 6878 ldr r0, [r7, #4] + 803c01e: f7d1 fe91 bl 800dd44 + 803c022: 4603 mov r3, r0 + 803c024: 60fb str r3, [r7, #12] return (const lv_font_t *)v.ptr; - 803c0ba: 68fb ldr r3, [r7, #12] + 803c026: 68fb ldr r3, [r7, #12] } - 803c0bc: 4618 mov r0, r3 - 803c0be: 3710 adds r7, #16 - 803c0c0: 46bd mov sp, r7 - 803c0c2: bd80 pop {r7, pc} + 803c028: 4618 mov r0, r3 + 803c02a: 3710 adds r7, #16 + 803c02c: 46bd mov sp, r7 + 803c02e: bd80 pop {r7, pc} -0803c0c4 : +0803c030 : { - 803c0c4: b580 push {r7, lr} - 803c0c6: b084 sub sp, #16 - 803c0c8: af00 add r7, sp, #0 - 803c0ca: 6078 str r0, [r7, #4] - 803c0cc: 6039 str r1, [r7, #0] + 803c030: b580 push {r7, lr} + 803c032: b084 sub sp, #16 + 803c034: af00 add r7, sp, #0 + 803c036: 6078 str r0, [r7, #4] + 803c038: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LINE_SPACE); - 803c0ce: f241 425b movw r2, #5211 ; 0x145b - 803c0d2: 6839 ldr r1, [r7, #0] - 803c0d4: 6878 ldr r0, [r7, #4] - 803c0d6: f7d1 fe6b bl 800ddb0 - 803c0da: 4603 mov r3, r0 - 803c0dc: 60fb str r3, [r7, #12] + 803c03a: f241 425b movw r2, #5211 ; 0x145b + 803c03e: 6839 ldr r1, [r7, #0] + 803c040: 6878 ldr r0, [r7, #4] + 803c042: f7d1 fe7f bl 800dd44 + 803c046: 4603 mov r3, r0 + 803c048: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803c0de: 68fb ldr r3, [r7, #12] - 803c0e0: b21b sxth r3, r3 + 803c04a: 68fb ldr r3, [r7, #12] + 803c04c: b21b sxth r3, r3 } - 803c0e2: 4618 mov r0, r3 - 803c0e4: 3710 adds r7, #16 - 803c0e6: 46bd mov sp, r7 - 803c0e8: bd80 pop {r7, pc} + 803c04e: 4618 mov r0, r3 + 803c050: 3710 adds r7, #16 + 803c052: 46bd mov sp, r7 + 803c054: bd80 pop {r7, pc} -0803c0ea : +0803c056 : { - 803c0ea: b580 push {r7, lr} - 803c0ec: b084 sub sp, #16 - 803c0ee: af00 add r7, sp, #0 - 803c0f0: 6078 str r0, [r7, #4] - 803c0f2: 6039 str r1, [r7, #0] + 803c056: b580 push {r7, lr} + 803c058: b084 sub sp, #16 + 803c05a: af00 add r7, sp, #0 + 803c05c: 6078 str r0, [r7, #4] + 803c05e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BASE_DIR); - 803c0f4: f241 426a movw r2, #5226 ; 0x146a - 803c0f8: 6839 ldr r1, [r7, #0] - 803c0fa: 6878 ldr r0, [r7, #4] - 803c0fc: f7d1 fe58 bl 800ddb0 - 803c100: 4603 mov r3, r0 - 803c102: 60fb str r3, [r7, #12] + 803c060: f241 426a movw r2, #5226 ; 0x146a + 803c064: 6839 ldr r1, [r7, #0] + 803c066: 6878 ldr r0, [r7, #4] + 803c068: f7d1 fe6c bl 800dd44 + 803c06c: 4603 mov r3, r0 + 803c06e: 60fb str r3, [r7, #12] return (lv_base_dir_t)v.num; - 803c104: 68fb ldr r3, [r7, #12] - 803c106: b2db uxtb r3, r3 + 803c070: 68fb ldr r3, [r7, #12] + 803c072: b2db uxtb r3, r3 } - 803c108: 4618 mov r0, r3 - 803c10a: 3710 adds r7, #16 - 803c10c: 46bd mov sp, r7 - 803c10e: bd80 pop {r7, pc} + 803c074: 4618 mov r0, r3 + 803c076: 3710 adds r7, #16 + 803c078: 46bd mov sp, r7 + 803c07a: bd80 pop {r7, pc} -0803c110 : +0803c07c : /********************** * GLOBAL FUNCTIONS **********************/ lv_obj_t * lv_dropdown_create(lv_obj_t * parent) { - 803c110: b580 push {r7, lr} - 803c112: b084 sub sp, #16 - 803c114: af00 add r7, sp, #0 - 803c116: 6078 str r0, [r7, #4] + 803c07c: b580 push {r7, lr} + 803c07e: b084 sub sp, #16 + 803c080: af00 add r7, sp, #0 + 803c082: 6078 str r0, [r7, #4] LV_LOG_INFO("begin"); lv_obj_t * obj = lv_obj_class_create_obj(&lv_dropdown_class, parent); - 803c118: 6879 ldr r1, [r7, #4] - 803c11a: 4806 ldr r0, [pc, #24] ; (803c134 ) - 803c11c: f7cb fc99 bl 8007a52 - 803c120: 60f8 str r0, [r7, #12] + 803c084: 6879 ldr r1, [r7, #4] + 803c086: 4806 ldr r0, [pc, #24] ; (803c0a0 ) + 803c088: f7cb fcad bl 80079e6 + 803c08c: 60f8 str r0, [r7, #12] lv_obj_class_init_obj(obj); - 803c122: 68f8 ldr r0, [r7, #12] - 803c124: f7cb fd47 bl 8007bb6 + 803c08e: 68f8 ldr r0, [r7, #12] + 803c090: f7cb fd5b bl 8007b4a return obj; - 803c128: 68fb ldr r3, [r7, #12] + 803c094: 68fb ldr r3, [r7, #12] } - 803c12a: 4618 mov r0, r3 - 803c12c: 3710 adds r7, #16 - 803c12e: 46bd mov sp, r7 - 803c130: bd80 pop {r7, pc} - 803c132: bf00 nop - 803c134: 08070a38 .word 0x08070a38 + 803c096: 4618 mov r0, r3 + 803c098: 3710 adds r7, #16 + 803c09a: 46bd mov sp, r7 + 803c09c: bd80 pop {r7, pc} + 803c09e: bf00 nop + 803c0a0: 08070990 .word 0x08070990 -0803c138 : +0803c0a4 : lv_obj_invalidate(obj); } void lv_dropdown_set_options(lv_obj_t * obj, const char * options) { - 803c138: b580 push {r7, lr} - 803c13a: b086 sub sp, #24 - 803c13c: af00 add r7, sp, #0 - 803c13e: 6078 str r0, [r7, #4] - 803c140: 6039 str r1, [r7, #0] + 803c0a4: b580 push {r7, lr} + 803c0a6: b086 sub sp, #24 + 803c0a8: af00 add r7, sp, #0 + 803c0aa: 6078 str r0, [r7, #4] + 803c0ac: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); LV_ASSERT_NULL(options); - 803c142: 683b ldr r3, [r7, #0] - 803c144: 2b00 cmp r3, #0 - 803c146: d100 bne.n 803c14a - 803c148: e7fe b.n 803c148 + 803c0ae: 683b ldr r3, [r7, #0] + 803c0b0: 2b00 cmp r3, #0 + 803c0b2: d100 bne.n 803c0b6 + 803c0b4: e7fe b.n 803c0b4 lv_dropdown_t * dropdown = (lv_dropdown_t *)obj; - 803c14a: 687b ldr r3, [r7, #4] - 803c14c: 613b str r3, [r7, #16] + 803c0b6: 687b ldr r3, [r7, #4] + 803c0b8: 613b str r3, [r7, #16] /*Count the '\n'-s to determine the number of options*/ dropdown->option_cnt = 0; - 803c14e: 693b ldr r3, [r7, #16] - 803c150: 2200 movs r2, #0 - 803c152: 869a strh r2, [r3, #52] ; 0x34 + 803c0ba: 693b ldr r3, [r7, #16] + 803c0bc: 2200 movs r2, #0 + 803c0be: 869a strh r2, [r3, #52] ; 0x34 uint32_t i; for(i = 0; options[i] != '\0'; i++) { - 803c154: 2300 movs r3, #0 - 803c156: 617b str r3, [r7, #20] - 803c158: e00e b.n 803c178 + 803c0c0: 2300 movs r3, #0 + 803c0c2: 617b str r3, [r7, #20] + 803c0c4: e00e b.n 803c0e4 if(options[i] == '\n') dropdown->option_cnt++; - 803c15a: 683a ldr r2, [r7, #0] - 803c15c: 697b ldr r3, [r7, #20] - 803c15e: 4413 add r3, r2 - 803c160: 781b ldrb r3, [r3, #0] - 803c162: 2b0a cmp r3, #10 - 803c164: d105 bne.n 803c172 - 803c166: 693b ldr r3, [r7, #16] - 803c168: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803c16a: 3301 adds r3, #1 - 803c16c: b29a uxth r2, r3 - 803c16e: 693b ldr r3, [r7, #16] - 803c170: 869a strh r2, [r3, #52] ; 0x34 + 803c0c6: 683a ldr r2, [r7, #0] + 803c0c8: 697b ldr r3, [r7, #20] + 803c0ca: 4413 add r3, r2 + 803c0cc: 781b ldrb r3, [r3, #0] + 803c0ce: 2b0a cmp r3, #10 + 803c0d0: d105 bne.n 803c0de + 803c0d2: 693b ldr r3, [r7, #16] + 803c0d4: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803c0d6: 3301 adds r3, #1 + 803c0d8: b29a uxth r2, r3 + 803c0da: 693b ldr r3, [r7, #16] + 803c0dc: 869a strh r2, [r3, #52] ; 0x34 for(i = 0; options[i] != '\0'; i++) { - 803c172: 697b ldr r3, [r7, #20] - 803c174: 3301 adds r3, #1 - 803c176: 617b str r3, [r7, #20] - 803c178: 683a ldr r2, [r7, #0] - 803c17a: 697b ldr r3, [r7, #20] - 803c17c: 4413 add r3, r2 - 803c17e: 781b ldrb r3, [r3, #0] - 803c180: 2b00 cmp r3, #0 - 803c182: d1ea bne.n 803c15a + 803c0de: 697b ldr r3, [r7, #20] + 803c0e0: 3301 adds r3, #1 + 803c0e2: 617b str r3, [r7, #20] + 803c0e4: 683a ldr r2, [r7, #0] + 803c0e6: 697b ldr r3, [r7, #20] + 803c0e8: 4413 add r3, r2 + 803c0ea: 781b ldrb r3, [r3, #0] + 803c0ec: 2b00 cmp r3, #0 + 803c0ee: d1ea bne.n 803c0c6 } dropdown->option_cnt++; /*Last option has no `\n`*/ - 803c184: 693b ldr r3, [r7, #16] - 803c186: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803c188: 3301 adds r3, #1 - 803c18a: b29a uxth r2, r3 - 803c18c: 693b ldr r3, [r7, #16] - 803c18e: 869a strh r2, [r3, #52] ; 0x34 + 803c0f0: 693b ldr r3, [r7, #16] + 803c0f2: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803c0f4: 3301 adds r3, #1 + 803c0f6: b29a uxth r2, r3 + 803c0f8: 693b ldr r3, [r7, #16] + 803c0fa: 869a strh r2, [r3, #52] ; 0x34 dropdown->sel_opt_id = 0; - 803c190: 693b ldr r3, [r7, #16] - 803c192: 2200 movs r2, #0 - 803c194: 86da strh r2, [r3, #54] ; 0x36 + 803c0fc: 693b ldr r3, [r7, #16] + 803c0fe: 2200 movs r2, #0 + 803c100: 86da strh r2, [r3, #54] ; 0x36 dropdown->sel_opt_id_orig = 0; - 803c196: 693b ldr r3, [r7, #16] - 803c198: 2200 movs r2, #0 - 803c19a: 871a strh r2, [r3, #56] ; 0x38 + 803c102: 693b ldr r3, [r7, #16] + 803c104: 2200 movs r2, #0 + 803c106: 871a strh r2, [r3, #56] ; 0x38 /*Allocate space for the new text*/ #if LV_USE_ARABIC_PERSIAN_CHARS == 0 size_t len = strlen(options) + 1; - 803c19c: 6838 ldr r0, [r7, #0] - 803c19e: f7c4 f84b bl 8000238 - 803c1a2: 4603 mov r3, r0 - 803c1a4: 3301 adds r3, #1 - 803c1a6: 60fb str r3, [r7, #12] + 803c108: 6838 ldr r0, [r7, #0] + 803c10a: f7c4 f895 bl 8000238 + 803c10e: 4603 mov r3, r0 + 803c110: 3301 adds r3, #1 + 803c112: 60fb str r3, [r7, #12] #else size_t len = _lv_txt_ap_calc_bytes_cnt(options) + 1; #endif if(dropdown->options != NULL && dropdown->static_txt == 0) { - 803c1a8: 693b ldr r3, [r7, #16] - 803c1aa: 6b1b ldr r3, [r3, #48] ; 0x30 - 803c1ac: 2b00 cmp r3, #0 - 803c1ae: d00f beq.n 803c1d0 - 803c1b0: 693b ldr r3, [r7, #16] - 803c1b2: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 803c1b6: f003 0310 and.w r3, r3, #16 - 803c1ba: b2db uxtb r3, r3 - 803c1bc: 2b00 cmp r3, #0 - 803c1be: d107 bne.n 803c1d0 + 803c114: 693b ldr r3, [r7, #16] + 803c116: 6b1b ldr r3, [r3, #48] ; 0x30 + 803c118: 2b00 cmp r3, #0 + 803c11a: d00f beq.n 803c13c + 803c11c: 693b ldr r3, [r7, #16] + 803c11e: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 803c122: f003 0310 and.w r3, r3, #16 + 803c126: b2db uxtb r3, r3 + 803c128: 2b00 cmp r3, #0 + 803c12a: d107 bne.n 803c13c lv_mem_free(dropdown->options); - 803c1c0: 693b ldr r3, [r7, #16] - 803c1c2: 6b1b ldr r3, [r3, #48] ; 0x30 - 803c1c4: 4618 mov r0, r3 - 803c1c6: f7f6 fb89 bl 80328dc + 803c12c: 693b ldr r3, [r7, #16] + 803c12e: 6b1b ldr r3, [r3, #48] ; 0x30 + 803c130: 4618 mov r0, r3 + 803c132: f7f6 fb89 bl 8032848 dropdown->options = NULL; - 803c1ca: 693b ldr r3, [r7, #16] - 803c1cc: 2200 movs r2, #0 - 803c1ce: 631a str r2, [r3, #48] ; 0x30 + 803c136: 693b ldr r3, [r7, #16] + 803c138: 2200 movs r2, #0 + 803c13a: 631a str r2, [r3, #48] ; 0x30 } dropdown->options = lv_mem_alloc(len); - 803c1d0: 68f8 ldr r0, [r7, #12] - 803c1d2: f7f6 fb61 bl 8032898 - 803c1d6: 4602 mov r2, r0 - 803c1d8: 693b ldr r3, [r7, #16] - 803c1da: 631a str r2, [r3, #48] ; 0x30 + 803c13c: 68f8 ldr r0, [r7, #12] + 803c13e: f7f6 fb61 bl 8032804 + 803c142: 4602 mov r2, r0 + 803c144: 693b ldr r3, [r7, #16] + 803c146: 631a str r2, [r3, #48] ; 0x30 LV_ASSERT_MALLOC(dropdown->options); - 803c1dc: 693b ldr r3, [r7, #16] - 803c1de: 6b1b ldr r3, [r3, #48] ; 0x30 - 803c1e0: 2b00 cmp r3, #0 - 803c1e2: d100 bne.n 803c1e6 - 803c1e4: e7fe b.n 803c1e4 + 803c148: 693b ldr r3, [r7, #16] + 803c14a: 6b1b ldr r3, [r3, #48] ; 0x30 + 803c14c: 2b00 cmp r3, #0 + 803c14e: d100 bne.n 803c152 + 803c150: e7fe b.n 803c150 if(dropdown->options == NULL) return; - 803c1e6: 693b ldr r3, [r7, #16] - 803c1e8: 6b1b ldr r3, [r3, #48] ; 0x30 - 803c1ea: 2b00 cmp r3, #0 - 803c1ec: d019 beq.n 803c222 + 803c152: 693b ldr r3, [r7, #16] + 803c154: 6b1b ldr r3, [r3, #48] ; 0x30 + 803c156: 2b00 cmp r3, #0 + 803c158: d019 beq.n 803c18e #if LV_USE_ARABIC_PERSIAN_CHARS == 0 strcpy(dropdown->options, options); - 803c1ee: 693b ldr r3, [r7, #16] - 803c1f0: 6b1b ldr r3, [r3, #48] ; 0x30 - 803c1f2: 6839 ldr r1, [r7, #0] - 803c1f4: 4618 mov r0, r3 - 803c1f6: f00a fce5 bl 8046bc4 + 803c15a: 693b ldr r3, [r7, #16] + 803c15c: 6b1b ldr r3, [r3, #48] ; 0x30 + 803c15e: 6839 ldr r1, [r7, #0] + 803c160: 4618 mov r0, r3 + 803c162: f00a fce5 bl 8046b30 #else _lv_txt_ap_proc(options, dropdown->options); #endif /*Now the text is dynamically allocated*/ dropdown->static_txt = 0; - 803c1fa: 693a ldr r2, [r7, #16] - 803c1fc: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 803c200: f36f 1304 bfc r3, #4, #1 - 803c204: f882 303c strb.w r3, [r2, #60] ; 0x3c + 803c166: 693a ldr r2, [r7, #16] + 803c168: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 803c16c: f36f 1304 bfc r3, #4, #1 + 803c170: f882 303c strb.w r3, [r2, #60] ; 0x3c lv_obj_invalidate(obj); - 803c208: 6878 ldr r0, [r7, #4] - 803c20a: f7ce fc52 bl 800aab2 + 803c174: 6878 ldr r0, [r7, #4] + 803c176: f7ce fc66 bl 800aa46 if(dropdown->list) lv_obj_invalidate(dropdown->list); - 803c20e: 693b ldr r3, [r7, #16] - 803c210: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c212: 2b00 cmp r3, #0 - 803c214: d006 beq.n 803c224 - 803c216: 693b ldr r3, [r7, #16] - 803c218: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c21a: 4618 mov r0, r3 - 803c21c: f7ce fc49 bl 800aab2 - 803c220: e000 b.n 803c224 + 803c17a: 693b ldr r3, [r7, #16] + 803c17c: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c17e: 2b00 cmp r3, #0 + 803c180: d006 beq.n 803c190 + 803c182: 693b ldr r3, [r7, #16] + 803c184: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c186: 4618 mov r0, r3 + 803c188: f7ce fc5d bl 800aa46 + 803c18c: e000 b.n 803c190 if(dropdown->options == NULL) return; - 803c222: bf00 nop + 803c18e: bf00 nop } - 803c224: 3718 adds r7, #24 - 803c226: 46bd mov sp, r7 - 803c228: bd80 pop {r7, pc} + 803c190: 3718 adds r7, #24 + 803c192: 46bd mov sp, r7 + 803c194: bd80 pop {r7, pc} -0803c22a : +0803c196 : void lv_dropdown_set_options_static(lv_obj_t * obj, const char * options) { - 803c22a: b580 push {r7, lr} - 803c22c: b084 sub sp, #16 - 803c22e: af00 add r7, sp, #0 - 803c230: 6078 str r0, [r7, #4] - 803c232: 6039 str r1, [r7, #0] + 803c196: b580 push {r7, lr} + 803c198: b084 sub sp, #16 + 803c19a: af00 add r7, sp, #0 + 803c19c: 6078 str r0, [r7, #4] + 803c19e: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); LV_ASSERT_NULL(options); - 803c234: 683b ldr r3, [r7, #0] - 803c236: 2b00 cmp r3, #0 - 803c238: d100 bne.n 803c23c - 803c23a: e7fe b.n 803c23a + 803c1a0: 683b ldr r3, [r7, #0] + 803c1a2: 2b00 cmp r3, #0 + 803c1a4: d100 bne.n 803c1a8 + 803c1a6: e7fe b.n 803c1a6 lv_dropdown_t * dropdown = (lv_dropdown_t *)obj; - 803c23c: 687b ldr r3, [r7, #4] - 803c23e: 60bb str r3, [r7, #8] + 803c1a8: 687b ldr r3, [r7, #4] + 803c1aa: 60bb str r3, [r7, #8] /*Count the '\n'-s to determine the number of options*/ dropdown->option_cnt = 0; - 803c240: 68bb ldr r3, [r7, #8] - 803c242: 2200 movs r2, #0 - 803c244: 869a strh r2, [r3, #52] ; 0x34 + 803c1ac: 68bb ldr r3, [r7, #8] + 803c1ae: 2200 movs r2, #0 + 803c1b0: 869a strh r2, [r3, #52] ; 0x34 uint32_t i; for(i = 0; options[i] != '\0'; i++) { - 803c246: 2300 movs r3, #0 - 803c248: 60fb str r3, [r7, #12] - 803c24a: e00e b.n 803c26a + 803c1b2: 2300 movs r3, #0 + 803c1b4: 60fb str r3, [r7, #12] + 803c1b6: e00e b.n 803c1d6 if(options[i] == '\n') dropdown->option_cnt++; - 803c24c: 683a ldr r2, [r7, #0] - 803c24e: 68fb ldr r3, [r7, #12] - 803c250: 4413 add r3, r2 - 803c252: 781b ldrb r3, [r3, #0] - 803c254: 2b0a cmp r3, #10 - 803c256: d105 bne.n 803c264 - 803c258: 68bb ldr r3, [r7, #8] - 803c25a: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803c25c: 3301 adds r3, #1 - 803c25e: b29a uxth r2, r3 - 803c260: 68bb ldr r3, [r7, #8] - 803c262: 869a strh r2, [r3, #52] ; 0x34 + 803c1b8: 683a ldr r2, [r7, #0] + 803c1ba: 68fb ldr r3, [r7, #12] + 803c1bc: 4413 add r3, r2 + 803c1be: 781b ldrb r3, [r3, #0] + 803c1c0: 2b0a cmp r3, #10 + 803c1c2: d105 bne.n 803c1d0 + 803c1c4: 68bb ldr r3, [r7, #8] + 803c1c6: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803c1c8: 3301 adds r3, #1 + 803c1ca: b29a uxth r2, r3 + 803c1cc: 68bb ldr r3, [r7, #8] + 803c1ce: 869a strh r2, [r3, #52] ; 0x34 for(i = 0; options[i] != '\0'; i++) { - 803c264: 68fb ldr r3, [r7, #12] - 803c266: 3301 adds r3, #1 - 803c268: 60fb str r3, [r7, #12] - 803c26a: 683a ldr r2, [r7, #0] - 803c26c: 68fb ldr r3, [r7, #12] - 803c26e: 4413 add r3, r2 - 803c270: 781b ldrb r3, [r3, #0] - 803c272: 2b00 cmp r3, #0 - 803c274: d1ea bne.n 803c24c + 803c1d0: 68fb ldr r3, [r7, #12] + 803c1d2: 3301 adds r3, #1 + 803c1d4: 60fb str r3, [r7, #12] + 803c1d6: 683a ldr r2, [r7, #0] + 803c1d8: 68fb ldr r3, [r7, #12] + 803c1da: 4413 add r3, r2 + 803c1dc: 781b ldrb r3, [r3, #0] + 803c1de: 2b00 cmp r3, #0 + 803c1e0: d1ea bne.n 803c1b8 } dropdown->option_cnt++; /*Last option has no `\n`*/ - 803c276: 68bb ldr r3, [r7, #8] - 803c278: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803c27a: 3301 adds r3, #1 - 803c27c: b29a uxth r2, r3 - 803c27e: 68bb ldr r3, [r7, #8] - 803c280: 869a strh r2, [r3, #52] ; 0x34 + 803c1e2: 68bb ldr r3, [r7, #8] + 803c1e4: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803c1e6: 3301 adds r3, #1 + 803c1e8: b29a uxth r2, r3 + 803c1ea: 68bb ldr r3, [r7, #8] + 803c1ec: 869a strh r2, [r3, #52] ; 0x34 dropdown->sel_opt_id = 0; - 803c282: 68bb ldr r3, [r7, #8] - 803c284: 2200 movs r2, #0 - 803c286: 86da strh r2, [r3, #54] ; 0x36 + 803c1ee: 68bb ldr r3, [r7, #8] + 803c1f0: 2200 movs r2, #0 + 803c1f2: 86da strh r2, [r3, #54] ; 0x36 dropdown->sel_opt_id_orig = 0; - 803c288: 68bb ldr r3, [r7, #8] - 803c28a: 2200 movs r2, #0 - 803c28c: 871a strh r2, [r3, #56] ; 0x38 + 803c1f4: 68bb ldr r3, [r7, #8] + 803c1f6: 2200 movs r2, #0 + 803c1f8: 871a strh r2, [r3, #56] ; 0x38 if(dropdown->static_txt == 0 && dropdown->options != NULL) { - 803c28e: 68bb ldr r3, [r7, #8] - 803c290: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 803c294: f003 0310 and.w r3, r3, #16 - 803c298: b2db uxtb r3, r3 - 803c29a: 2b00 cmp r3, #0 - 803c29c: d10b bne.n 803c2b6 - 803c29e: 68bb ldr r3, [r7, #8] - 803c2a0: 6b1b ldr r3, [r3, #48] ; 0x30 - 803c2a2: 2b00 cmp r3, #0 - 803c2a4: d007 beq.n 803c2b6 + 803c1fa: 68bb ldr r3, [r7, #8] + 803c1fc: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 803c200: f003 0310 and.w r3, r3, #16 + 803c204: b2db uxtb r3, r3 + 803c206: 2b00 cmp r3, #0 + 803c208: d10b bne.n 803c222 + 803c20a: 68bb ldr r3, [r7, #8] + 803c20c: 6b1b ldr r3, [r3, #48] ; 0x30 + 803c20e: 2b00 cmp r3, #0 + 803c210: d007 beq.n 803c222 lv_mem_free(dropdown->options); - 803c2a6: 68bb ldr r3, [r7, #8] - 803c2a8: 6b1b ldr r3, [r3, #48] ; 0x30 - 803c2aa: 4618 mov r0, r3 - 803c2ac: f7f6 fb16 bl 80328dc + 803c212: 68bb ldr r3, [r7, #8] + 803c214: 6b1b ldr r3, [r3, #48] ; 0x30 + 803c216: 4618 mov r0, r3 + 803c218: f7f6 fb16 bl 8032848 dropdown->options = NULL; - 803c2b0: 68bb ldr r3, [r7, #8] - 803c2b2: 2200 movs r2, #0 - 803c2b4: 631a str r2, [r3, #48] ; 0x30 + 803c21c: 68bb ldr r3, [r7, #8] + 803c21e: 2200 movs r2, #0 + 803c220: 631a str r2, [r3, #48] ; 0x30 } dropdown->static_txt = 1; - 803c2b6: 68ba ldr r2, [r7, #8] - 803c2b8: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 803c2bc: f043 0310 orr.w r3, r3, #16 - 803c2c0: f882 303c strb.w r3, [r2, #60] ; 0x3c + 803c222: 68ba ldr r2, [r7, #8] + 803c224: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 803c228: f043 0310 orr.w r3, r3, #16 + 803c22c: f882 303c strb.w r3, [r2, #60] ; 0x3c dropdown->options = (char *)options; - 803c2c4: 68bb ldr r3, [r7, #8] - 803c2c6: 683a ldr r2, [r7, #0] - 803c2c8: 631a str r2, [r3, #48] ; 0x30 + 803c230: 68bb ldr r3, [r7, #8] + 803c232: 683a ldr r2, [r7, #0] + 803c234: 631a str r2, [r3, #48] ; 0x30 lv_obj_invalidate(obj); - 803c2ca: 6878 ldr r0, [r7, #4] - 803c2cc: f7ce fbf1 bl 800aab2 + 803c236: 6878 ldr r0, [r7, #4] + 803c238: f7ce fc05 bl 800aa46 if(dropdown->list) lv_obj_invalidate(dropdown->list); - 803c2d0: 68bb ldr r3, [r7, #8] - 803c2d2: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c2d4: 2b00 cmp r3, #0 - 803c2d6: d004 beq.n 803c2e2 - 803c2d8: 68bb ldr r3, [r7, #8] - 803c2da: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c2dc: 4618 mov r0, r3 - 803c2de: f7ce fbe8 bl 800aab2 + 803c23c: 68bb ldr r3, [r7, #8] + 803c23e: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c240: 2b00 cmp r3, #0 + 803c242: d004 beq.n 803c24e + 803c244: 68bb ldr r3, [r7, #8] + 803c246: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c248: 4618 mov r0, r3 + 803c24a: f7ce fbfc bl 800aa46 } - 803c2e2: bf00 nop - 803c2e4: 3710 adds r7, #16 - 803c2e6: 46bd mov sp, r7 - 803c2e8: bd80 pop {r7, pc} + 803c24e: bf00 nop + 803c250: 3710 adds r7, #16 + 803c252: 46bd mov sp, r7 + 803c254: bd80 pop {r7, pc} -0803c2ea : +0803c256 : lv_obj_invalidate(obj); if(dropdown->list) lv_obj_invalidate(dropdown->list); } void lv_dropdown_set_selected(lv_obj_t * obj, uint16_t sel_opt) { - 803c2ea: b580 push {r7, lr} - 803c2ec: b084 sub sp, #16 - 803c2ee: af00 add r7, sp, #0 - 803c2f0: 6078 str r0, [r7, #4] - 803c2f2: 460b mov r3, r1 - 803c2f4: 807b strh r3, [r7, #2] + 803c256: b580 push {r7, lr} + 803c258: b084 sub sp, #16 + 803c25a: af00 add r7, sp, #0 + 803c25c: 6078 str r0, [r7, #4] + 803c25e: 460b mov r3, r1 + 803c260: 807b strh r3, [r7, #2] LV_ASSERT_OBJ(obj, MY_CLASS); lv_dropdown_t * dropdown = (lv_dropdown_t *)obj; - 803c2f6: 687b ldr r3, [r7, #4] - 803c2f8: 60fb str r3, [r7, #12] + 803c262: 687b ldr r3, [r7, #4] + 803c264: 60fb str r3, [r7, #12] if(dropdown->sel_opt_id == sel_opt) return; - 803c2fa: 68fb ldr r3, [r7, #12] - 803c2fc: 8edb ldrh r3, [r3, #54] ; 0x36 - 803c2fe: 887a ldrh r2, [r7, #2] - 803c300: 429a cmp r2, r3 - 803c302: d014 beq.n 803c32e + 803c266: 68fb ldr r3, [r7, #12] + 803c268: 8edb ldrh r3, [r3, #54] ; 0x36 + 803c26a: 887a ldrh r2, [r7, #2] + 803c26c: 429a cmp r2, r3 + 803c26e: d014 beq.n 803c29a dropdown->sel_opt_id = sel_opt < dropdown->option_cnt ? sel_opt : dropdown->option_cnt - 1; - 803c304: 68fb ldr r3, [r7, #12] - 803c306: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803c308: 887a ldrh r2, [r7, #2] - 803c30a: 429a cmp r2, r3 - 803c30c: d304 bcc.n 803c318 - 803c30e: 68fb ldr r3, [r7, #12] - 803c310: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803c312: 3b01 subs r3, #1 - 803c314: b29b uxth r3, r3 - 803c316: e000 b.n 803c31a - 803c318: 887b ldrh r3, [r7, #2] - 803c31a: 68fa ldr r2, [r7, #12] - 803c31c: 86d3 strh r3, [r2, #54] ; 0x36 + 803c270: 68fb ldr r3, [r7, #12] + 803c272: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803c274: 887a ldrh r2, [r7, #2] + 803c276: 429a cmp r2, r3 + 803c278: d304 bcc.n 803c284 + 803c27a: 68fb ldr r3, [r7, #12] + 803c27c: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803c27e: 3b01 subs r3, #1 + 803c280: b29b uxth r3, r3 + 803c282: e000 b.n 803c286 + 803c284: 887b ldrh r3, [r7, #2] + 803c286: 68fa ldr r2, [r7, #12] + 803c288: 86d3 strh r3, [r2, #54] ; 0x36 dropdown->sel_opt_id_orig = dropdown->sel_opt_id; - 803c31e: 68fb ldr r3, [r7, #12] - 803c320: 8eda ldrh r2, [r3, #54] ; 0x36 - 803c322: 68fb ldr r3, [r7, #12] - 803c324: 871a strh r2, [r3, #56] ; 0x38 + 803c28a: 68fb ldr r3, [r7, #12] + 803c28c: 8eda ldrh r2, [r3, #54] ; 0x36 + 803c28e: 68fb ldr r3, [r7, #12] + 803c290: 871a strh r2, [r3, #56] ; 0x38 lv_obj_invalidate(obj); - 803c326: 6878 ldr r0, [r7, #4] - 803c328: f7ce fbc3 bl 800aab2 - 803c32c: e000 b.n 803c330 + 803c292: 6878 ldr r0, [r7, #4] + 803c294: f7ce fbd7 bl 800aa46 + 803c298: e000 b.n 803c29c if(dropdown->sel_opt_id == sel_opt) return; - 803c32e: bf00 nop + 803c29a: bf00 nop } - 803c330: 3710 adds r7, #16 - 803c332: 46bd mov sp, r7 - 803c334: bd80 pop {r7, pc} + 803c29c: 3710 adds r7, #16 + 803c29e: 46bd mov sp, r7 + 803c2a0: bd80 pop {r7, pc} -0803c336 : +0803c2a2 : lv_dropdown_t * dropdown = (lv_dropdown_t *)obj; return dropdown->options == NULL ? "" : dropdown->options; } uint16_t lv_dropdown_get_selected(const lv_obj_t * obj) { - 803c336: b480 push {r7} - 803c338: b085 sub sp, #20 - 803c33a: af00 add r7, sp, #0 - 803c33c: 6078 str r0, [r7, #4] + 803c2a2: b480 push {r7} + 803c2a4: b085 sub sp, #20 + 803c2a6: af00 add r7, sp, #0 + 803c2a8: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_dropdown_t * dropdown = (lv_dropdown_t *)obj; - 803c33e: 687b ldr r3, [r7, #4] - 803c340: 60fb str r3, [r7, #12] + 803c2aa: 687b ldr r3, [r7, #4] + 803c2ac: 60fb str r3, [r7, #12] return dropdown->sel_opt_id; - 803c342: 68fb ldr r3, [r7, #12] - 803c344: 8edb ldrh r3, [r3, #54] ; 0x36 + 803c2ae: 68fb ldr r3, [r7, #12] + 803c2b0: 8edb ldrh r3, [r3, #54] ; 0x36 } - 803c346: 4618 mov r0, r3 - 803c348: 3714 adds r7, #20 - 803c34a: 46bd mov sp, r7 - 803c34c: bc80 pop {r7} - 803c34e: 4770 bx lr + 803c2b2: 4618 mov r0, r3 + 803c2b4: 3714 adds r7, #20 + 803c2b6: 46bd mov sp, r7 + 803c2b8: bc80 pop {r7} + 803c2ba: 4770 bx lr -0803c350 : +0803c2bc : return dropdown->option_cnt; } void lv_dropdown_get_selected_str(const lv_obj_t * obj, char * buf, uint32_t buf_size) { - 803c350: b580 push {r7, lr} - 803c352: b08a sub sp, #40 ; 0x28 - 803c354: af00 add r7, sp, #0 - 803c356: 60f8 str r0, [r7, #12] - 803c358: 60b9 str r1, [r7, #8] - 803c35a: 607a str r2, [r7, #4] + 803c2bc: b580 push {r7, lr} + 803c2be: b08a sub sp, #40 ; 0x28 + 803c2c0: af00 add r7, sp, #0 + 803c2c2: 60f8 str r0, [r7, #12] + 803c2c4: 60b9 str r1, [r7, #8] + 803c2c6: 607a str r2, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_dropdown_t * dropdown = (lv_dropdown_t *)obj; - 803c35c: 68fb ldr r3, [r7, #12] - 803c35e: 61bb str r3, [r7, #24] + 803c2c8: 68fb ldr r3, [r7, #12] + 803c2ca: 61bb str r3, [r7, #24] uint32_t i; uint32_t line = 0; - 803c360: 2300 movs r3, #0 - 803c362: 623b str r3, [r7, #32] + 803c2cc: 2300 movs r3, #0 + 803c2ce: 623b str r3, [r7, #32] size_t txt_len; if(dropdown->options) { - 803c364: 69bb ldr r3, [r7, #24] - 803c366: 6b1b ldr r3, [r3, #48] ; 0x30 - 803c368: 2b00 cmp r3, #0 - 803c36a: d008 beq.n 803c37e + 803c2d0: 69bb ldr r3, [r7, #24] + 803c2d2: 6b1b ldr r3, [r3, #48] ; 0x30 + 803c2d4: 2b00 cmp r3, #0 + 803c2d6: d008 beq.n 803c2ea txt_len = strlen(dropdown->options); - 803c36c: 69bb ldr r3, [r7, #24] - 803c36e: 6b1b ldr r3, [r3, #48] ; 0x30 - 803c370: 4618 mov r0, r3 - 803c372: f7c3 ff61 bl 8000238 - 803c376: 6178 str r0, [r7, #20] + 803c2d8: 69bb ldr r3, [r7, #24] + 803c2da: 6b1b ldr r3, [r3, #48] ; 0x30 + 803c2dc: 4618 mov r0, r3 + 803c2de: f7c3 ffab bl 8000238 + 803c2e2: 6178 str r0, [r7, #20] else { buf[0] = '\0'; return; } for(i = 0; i < txt_len && line != dropdown->sel_opt_id_orig; i++) { - 803c378: 2300 movs r3, #0 - 803c37a: 627b str r3, [r7, #36] ; 0x24 - 803c37c: e010 b.n 803c3a0 + 803c2e4: 2300 movs r3, #0 + 803c2e6: 627b str r3, [r7, #36] ; 0x24 + 803c2e8: e010 b.n 803c30c buf[0] = '\0'; - 803c37e: 68bb ldr r3, [r7, #8] - 803c380: 2200 movs r2, #0 - 803c382: 701a strb r2, [r3, #0] + 803c2ea: 68bb ldr r3, [r7, #8] + 803c2ec: 2200 movs r2, #0 + 803c2ee: 701a strb r2, [r3, #0] return; - 803c384: e042 b.n 803c40c + 803c2f0: e042 b.n 803c378 if(dropdown->options[i] == '\n') line++; - 803c386: 69bb ldr r3, [r7, #24] - 803c388: 6b1a ldr r2, [r3, #48] ; 0x30 - 803c38a: 6a7b ldr r3, [r7, #36] ; 0x24 - 803c38c: 4413 add r3, r2 - 803c38e: 781b ldrb r3, [r3, #0] - 803c390: 2b0a cmp r3, #10 - 803c392: d102 bne.n 803c39a - 803c394: 6a3b ldr r3, [r7, #32] - 803c396: 3301 adds r3, #1 - 803c398: 623b str r3, [r7, #32] + 803c2f2: 69bb ldr r3, [r7, #24] + 803c2f4: 6b1a ldr r2, [r3, #48] ; 0x30 + 803c2f6: 6a7b ldr r3, [r7, #36] ; 0x24 + 803c2f8: 4413 add r3, r2 + 803c2fa: 781b ldrb r3, [r3, #0] + 803c2fc: 2b0a cmp r3, #10 + 803c2fe: d102 bne.n 803c306 + 803c300: 6a3b ldr r3, [r7, #32] + 803c302: 3301 adds r3, #1 + 803c304: 623b str r3, [r7, #32] for(i = 0; i < txt_len && line != dropdown->sel_opt_id_orig; i++) { - 803c39a: 6a7b ldr r3, [r7, #36] ; 0x24 - 803c39c: 3301 adds r3, #1 - 803c39e: 627b str r3, [r7, #36] ; 0x24 - 803c3a0: 6a7a ldr r2, [r7, #36] ; 0x24 - 803c3a2: 697b ldr r3, [r7, #20] - 803c3a4: 429a cmp r2, r3 - 803c3a6: d205 bcs.n 803c3b4 - 803c3a8: 69bb ldr r3, [r7, #24] - 803c3aa: 8f1b ldrh r3, [r3, #56] ; 0x38 - 803c3ac: 461a mov r2, r3 - 803c3ae: 6a3b ldr r3, [r7, #32] - 803c3b0: 4293 cmp r3, r2 - 803c3b2: d1e8 bne.n 803c386 + 803c306: 6a7b ldr r3, [r7, #36] ; 0x24 + 803c308: 3301 adds r3, #1 + 803c30a: 627b str r3, [r7, #36] ; 0x24 + 803c30c: 6a7a ldr r2, [r7, #36] ; 0x24 + 803c30e: 697b ldr r3, [r7, #20] + 803c310: 429a cmp r2, r3 + 803c312: d205 bcs.n 803c320 + 803c314: 69bb ldr r3, [r7, #24] + 803c316: 8f1b ldrh r3, [r3, #56] ; 0x38 + 803c318: 461a mov r2, r3 + 803c31a: 6a3b ldr r3, [r7, #32] + 803c31c: 4293 cmp r3, r2 + 803c31e: d1e8 bne.n 803c2f2 } uint32_t c; for(c = 0; i < txt_len && dropdown->options[i] != '\n'; c++, i++) { - 803c3b4: 2300 movs r3, #0 - 803c3b6: 61fb str r3, [r7, #28] - 803c3b8: e016 b.n 803c3e8 + 803c320: 2300 movs r3, #0 + 803c322: 61fb str r3, [r7, #28] + 803c324: e016 b.n 803c354 if(buf_size && c >= buf_size - 1) { - 803c3ba: 687b ldr r3, [r7, #4] - 803c3bc: 2b00 cmp r3, #0 - 803c3be: d004 beq.n 803c3ca - 803c3c0: 687b ldr r3, [r7, #4] - 803c3c2: 3b01 subs r3, #1 - 803c3c4: 69fa ldr r2, [r7, #28] - 803c3c6: 429a cmp r2, r3 - 803c3c8: d21a bcs.n 803c400 + 803c326: 687b ldr r3, [r7, #4] + 803c328: 2b00 cmp r3, #0 + 803c32a: d004 beq.n 803c336 + 803c32c: 687b ldr r3, [r7, #4] + 803c32e: 3b01 subs r3, #1 + 803c330: 69fa ldr r2, [r7, #28] + 803c332: 429a cmp r2, r3 + 803c334: d21a bcs.n 803c36c LV_LOG_WARN("lv_dropdown_get_selected_str: the buffer was too small"); break; } buf[c] = dropdown->options[i]; - 803c3ca: 69bb ldr r3, [r7, #24] - 803c3cc: 6b1a ldr r2, [r3, #48] ; 0x30 - 803c3ce: 6a7b ldr r3, [r7, #36] ; 0x24 - 803c3d0: 441a add r2, r3 - 803c3d2: 68b9 ldr r1, [r7, #8] - 803c3d4: 69fb ldr r3, [r7, #28] - 803c3d6: 440b add r3, r1 - 803c3d8: 7812 ldrb r2, [r2, #0] - 803c3da: 701a strb r2, [r3, #0] + 803c336: 69bb ldr r3, [r7, #24] + 803c338: 6b1a ldr r2, [r3, #48] ; 0x30 + 803c33a: 6a7b ldr r3, [r7, #36] ; 0x24 + 803c33c: 441a add r2, r3 + 803c33e: 68b9 ldr r1, [r7, #8] + 803c340: 69fb ldr r3, [r7, #28] + 803c342: 440b add r3, r1 + 803c344: 7812 ldrb r2, [r2, #0] + 803c346: 701a strb r2, [r3, #0] for(c = 0; i < txt_len && dropdown->options[i] != '\n'; c++, i++) { - 803c3dc: 69fb ldr r3, [r7, #28] - 803c3de: 3301 adds r3, #1 - 803c3e0: 61fb str r3, [r7, #28] - 803c3e2: 6a7b ldr r3, [r7, #36] ; 0x24 - 803c3e4: 3301 adds r3, #1 - 803c3e6: 627b str r3, [r7, #36] ; 0x24 - 803c3e8: 6a7a ldr r2, [r7, #36] ; 0x24 - 803c3ea: 697b ldr r3, [r7, #20] - 803c3ec: 429a cmp r2, r3 - 803c3ee: d208 bcs.n 803c402 - 803c3f0: 69bb ldr r3, [r7, #24] - 803c3f2: 6b1a ldr r2, [r3, #48] ; 0x30 - 803c3f4: 6a7b ldr r3, [r7, #36] ; 0x24 - 803c3f6: 4413 add r3, r2 - 803c3f8: 781b ldrb r3, [r3, #0] - 803c3fa: 2b0a cmp r3, #10 - 803c3fc: d1dd bne.n 803c3ba - 803c3fe: e000 b.n 803c402 + 803c348: 69fb ldr r3, [r7, #28] + 803c34a: 3301 adds r3, #1 + 803c34c: 61fb str r3, [r7, #28] + 803c34e: 6a7b ldr r3, [r7, #36] ; 0x24 + 803c350: 3301 adds r3, #1 + 803c352: 627b str r3, [r7, #36] ; 0x24 + 803c354: 6a7a ldr r2, [r7, #36] ; 0x24 + 803c356: 697b ldr r3, [r7, #20] + 803c358: 429a cmp r2, r3 + 803c35a: d208 bcs.n 803c36e + 803c35c: 69bb ldr r3, [r7, #24] + 803c35e: 6b1a ldr r2, [r3, #48] ; 0x30 + 803c360: 6a7b ldr r3, [r7, #36] ; 0x24 + 803c362: 4413 add r3, r2 + 803c364: 781b ldrb r3, [r3, #0] + 803c366: 2b0a cmp r3, #10 + 803c368: d1dd bne.n 803c326 + 803c36a: e000 b.n 803c36e break; - 803c400: bf00 nop + 803c36c: bf00 nop } buf[c] = '\0'; - 803c402: 68ba ldr r2, [r7, #8] - 803c404: 69fb ldr r3, [r7, #28] - 803c406: 4413 add r3, r2 - 803c408: 2200 movs r2, #0 - 803c40a: 701a strb r2, [r3, #0] + 803c36e: 68ba ldr r2, [r7, #8] + 803c370: 69fb ldr r3, [r7, #28] + 803c372: 4413 add r3, r2 + 803c374: 2200 movs r2, #0 + 803c376: 701a strb r2, [r3, #0] } - 803c40c: 3728 adds r7, #40 ; 0x28 - 803c40e: 46bd mov sp, r7 - 803c410: bd80 pop {r7, pc} + 803c378: 3728 adds r7, #40 ; 0x28 + 803c37a: 46bd mov sp, r7 + 803c37c: bd80 pop {r7, pc} -0803c412 : +0803c37e : /*===================== * Other functions *====================*/ void lv_dropdown_open(lv_obj_t * dropdown_obj) { - 803c412: b590 push {r4, r7, lr} - 803c414: b08d sub sp, #52 ; 0x34 - 803c416: af02 add r7, sp, #8 - 803c418: 6078 str r0, [r7, #4] + 803c37e: b590 push {r4, r7, lr} + 803c380: b08d sub sp, #52 ; 0x34 + 803c382: af02 add r7, sp, #8 + 803c384: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(dropdown_obj, MY_CLASS); lv_dropdown_t * dropdown = (lv_dropdown_t *)dropdown_obj; - 803c41a: 687b ldr r3, [r7, #4] - 803c41c: 623b str r3, [r7, #32] + 803c386: 687b ldr r3, [r7, #4] + 803c388: 623b str r3, [r7, #32] lv_obj_add_state(dropdown_obj, LV_STATE_CHECKED); - 803c41e: 2101 movs r1, #1 - 803c420: 6878 ldr r0, [r7, #4] - 803c422: f7ca f977 bl 8006714 + 803c38a: 2101 movs r1, #1 + 803c38c: 6878 ldr r0, [r7, #4] + 803c38e: f7ca f98b bl 80066a8 lv_obj_set_parent(dropdown->list, lv_obj_get_screen(dropdown_obj)); - 803c426: 6a3b ldr r3, [r7, #32] - 803c428: 6a5c ldr r4, [r3, #36] ; 0x24 - 803c42a: 6878 ldr r0, [r7, #4] - 803c42c: f7d3 f920 bl 800f670 - 803c430: 4603 mov r3, r0 - 803c432: 4619 mov r1, r3 - 803c434: 4620 mov r0, r4 - 803c436: f7d2 fffb bl 800f430 + 803c392: 6a3b ldr r3, [r7, #32] + 803c394: 6a5c ldr r4, [r3, #36] ; 0x24 + 803c396: 6878 ldr r0, [r7, #4] + 803c398: f7d3 f920 bl 800f5dc + 803c39c: 4603 mov r3, r0 + 803c39e: 4619 mov r1, r3 + 803c3a0: 4620 mov r0, r4 + 803c3a2: f7d2 fffb bl 800f39c lv_obj_move_to_index(dropdown->list, -1); - 803c43a: 6a3b ldr r3, [r7, #32] - 803c43c: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c43e: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff - 803c442: 4618 mov r0, r3 - 803c444: f7d3 f89a bl 800f57c + 803c3a6: 6a3b ldr r3, [r7, #32] + 803c3a8: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c3aa: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff + 803c3ae: 4618 mov r0, r3 + 803c3b0: f7d3 f89a bl 800f4e8 lv_obj_clear_flag(dropdown->list, LV_OBJ_FLAG_HIDDEN); - 803c448: 6a3b ldr r3, [r7, #32] - 803c44a: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c44c: 2101 movs r1, #1 - 803c44e: 4618 mov r0, r3 - 803c450: f7ca f906 bl 8006660 + 803c3b4: 6a3b ldr r3, [r7, #32] + 803c3b6: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c3b8: 2101 movs r1, #1 + 803c3ba: 4618 mov r0, r3 + 803c3bc: f7ca f91a bl 80065f4 /*To allow styling the list*/ lv_event_send(dropdown_obj, LV_EVENT_READY, NULL); - 803c454: 2200 movs r2, #0 - 803c456: 211f movs r1, #31 - 803c458: 6878 ldr r0, [r7, #4] - 803c45a: f7c6 f811 bl 8002480 + 803c3c0: 2200 movs r2, #0 + 803c3c2: 211f movs r1, #31 + 803c3c4: 6878 ldr r0, [r7, #4] + 803c3c6: f7c6 f825 bl 8002414 lv_obj_t * label = get_label(dropdown_obj); - 803c45e: 6878 ldr r0, [r7, #4] - 803c460: f001 f998 bl 803d794 - 803c464: 61f8 str r0, [r7, #28] + 803c3ca: 6878 ldr r0, [r7, #4] + 803c3cc: f001 f998 bl 803d700 + 803c3d0: 61f8 str r0, [r7, #28] lv_label_set_text_static(label, dropdown->options); - 803c466: 6a3b ldr r3, [r7, #32] - 803c468: 6b1b ldr r3, [r3, #48] ; 0x30 - 803c46a: 4619 mov r1, r3 - 803c46c: 69f8 ldr r0, [r7, #28] - 803c46e: f002 fd01 bl 803ee74 + 803c3d2: 6a3b ldr r3, [r7, #32] + 803c3d4: 6b1b ldr r3, [r3, #48] ; 0x30 + 803c3d6: 4619 mov r1, r3 + 803c3d8: 69f8 ldr r0, [r7, #28] + 803c3da: f002 fd01 bl 803ede0 lv_obj_set_width(dropdown->list, LV_SIZE_CONTENT); - 803c472: 6a3b ldr r3, [r7, #32] - 803c474: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c476: f242 71d1 movw r1, #10193 ; 0x27d1 - 803c47a: 4618 mov r0, r3 - 803c47c: f7cd f9ae bl 80097dc + 803c3de: 6a3b ldr r3, [r7, #32] + 803c3e0: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c3e2: f242 71d1 movw r1, #10193 ; 0x27d1 + 803c3e6: 4618 mov r0, r3 + 803c3e8: f7cd f9c2 bl 8009770 lv_obj_update_layout(label); - 803c480: 69f8 ldr r0, [r7, #28] - 803c482: f7cd fa5b bl 800993c + 803c3ec: 69f8 ldr r0, [r7, #28] + 803c3ee: f7cd fa6f bl 80098d0 /*Set smaller width to the width of the button*/ if(lv_obj_get_width(dropdown->list) <= lv_obj_get_width(dropdown_obj) && - 803c486: 6a3b ldr r3, [r7, #32] - 803c488: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c48a: 4618 mov r0, r3 - 803c48c: f7cd fe5c bl 800a148 - 803c490: 4603 mov r3, r0 - 803c492: 461c mov r4, r3 - 803c494: 6878 ldr r0, [r7, #4] - 803c496: f7cd fe57 bl 800a148 - 803c49a: 4603 mov r3, r0 - 803c49c: 429c cmp r4, r3 - 803c49e: dc19 bgt.n 803c4d4 + 803c3f2: 6a3b ldr r3, [r7, #32] + 803c3f4: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c3f6: 4618 mov r0, r3 + 803c3f8: f7cd fe70 bl 800a0dc + 803c3fc: 4603 mov r3, r0 + 803c3fe: 461c mov r4, r3 + 803c400: 6878 ldr r0, [r7, #4] + 803c402: f7cd fe6b bl 800a0dc + 803c406: 4603 mov r3, r0 + 803c408: 429c cmp r4, r3 + 803c40a: dc19 bgt.n 803c440 (dropdown->dir == LV_DIR_TOP || dropdown->dir == LV_DIR_BOTTOM)) { - 803c4a0: 6a3b ldr r3, [r7, #32] - 803c4a2: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 803c4a6: f003 030f and.w r3, r3, #15 - 803c4aa: b2db uxtb r3, r3 + 803c40c: 6a3b ldr r3, [r7, #32] + 803c40e: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 803c412: f003 030f and.w r3, r3, #15 + 803c416: b2db uxtb r3, r3 if(lv_obj_get_width(dropdown->list) <= lv_obj_get_width(dropdown_obj) && - 803c4ac: 2b04 cmp r3, #4 - 803c4ae: d007 beq.n 803c4c0 + 803c418: 2b04 cmp r3, #4 + 803c41a: d007 beq.n 803c42c (dropdown->dir == LV_DIR_TOP || dropdown->dir == LV_DIR_BOTTOM)) { - 803c4b0: 6a3b ldr r3, [r7, #32] - 803c4b2: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 803c4b6: f003 030f and.w r3, r3, #15 - 803c4ba: b2db uxtb r3, r3 - 803c4bc: 2b08 cmp r3, #8 - 803c4be: d109 bne.n 803c4d4 + 803c41c: 6a3b ldr r3, [r7, #32] + 803c41e: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 803c422: f003 030f and.w r3, r3, #15 + 803c426: b2db uxtb r3, r3 + 803c428: 2b08 cmp r3, #8 + 803c42a: d109 bne.n 803c440 lv_obj_set_width(dropdown->list, lv_obj_get_width(dropdown_obj)); - 803c4c0: 6a3b ldr r3, [r7, #32] - 803c4c2: 6a5c ldr r4, [r3, #36] ; 0x24 - 803c4c4: 6878 ldr r0, [r7, #4] - 803c4c6: f7cd fe3f bl 800a148 - 803c4ca: 4603 mov r3, r0 - 803c4cc: 4619 mov r1, r3 - 803c4ce: 4620 mov r0, r4 - 803c4d0: f7cd f984 bl 80097dc + 803c42c: 6a3b ldr r3, [r7, #32] + 803c42e: 6a5c ldr r4, [r3, #36] ; 0x24 + 803c430: 6878 ldr r0, [r7, #4] + 803c432: f7cd fe53 bl 800a0dc + 803c436: 4603 mov r3, r0 + 803c438: 4619 mov r1, r3 + 803c43a: 4620 mov r0, r4 + 803c43c: f7cd f998 bl 8009770 } lv_coord_t label_h = lv_obj_get_height(label); - 803c4d4: 69f8 ldr r0, [r7, #28] - 803c4d6: f7cd fe45 bl 800a164 - 803c4da: 4603 mov r3, r0 - 803c4dc: 837b strh r3, [r7, #26] + 803c440: 69f8 ldr r0, [r7, #28] + 803c442: f7cd fe59 bl 800a0f8 + 803c446: 4603 mov r3, r0 + 803c448: 837b strh r3, [r7, #26] lv_coord_t border_width = lv_obj_get_style_border_width(dropdown->list, LV_PART_MAIN); - 803c4de: 6a3b ldr r3, [r7, #32] - 803c4e0: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c4e2: 2100 movs r1, #0 - 803c4e4: 4618 mov r0, r3 - 803c4e6: f7ff fdc8 bl 803c07a - 803c4ea: 4603 mov r3, r0 - 803c4ec: 833b strh r3, [r7, #24] + 803c44a: 6a3b ldr r3, [r7, #32] + 803c44c: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c44e: 2100 movs r1, #0 + 803c450: 4618 mov r0, r3 + 803c452: f7ff fdc8 bl 803bfe6 + 803c456: 4603 mov r3, r0 + 803c458: 833b strh r3, [r7, #24] lv_coord_t top = lv_obj_get_style_pad_top(dropdown->list, LV_PART_MAIN) + border_width; - 803c4ee: 6a3b ldr r3, [r7, #32] - 803c4f0: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c4f2: 2100 movs r1, #0 - 803c4f4: 4618 mov r0, r3 - 803c4f6: f7ff fd74 bl 803bfe2 - 803c4fa: 4603 mov r3, r0 - 803c4fc: b29a uxth r2, r3 - 803c4fe: 8b3b ldrh r3, [r7, #24] - 803c500: 4413 add r3, r2 - 803c502: b29b uxth r3, r3 - 803c504: 82fb strh r3, [r7, #22] + 803c45a: 6a3b ldr r3, [r7, #32] + 803c45c: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c45e: 2100 movs r1, #0 + 803c460: 4618 mov r0, r3 + 803c462: f7ff fd74 bl 803bf4e + 803c466: 4603 mov r3, r0 + 803c468: b29a uxth r2, r3 + 803c46a: 8b3b ldrh r3, [r7, #24] + 803c46c: 4413 add r3, r2 + 803c46e: b29b uxth r3, r3 + 803c470: 82fb strh r3, [r7, #22] lv_coord_t bottom = lv_obj_get_style_pad_bottom(dropdown->list, LV_PART_MAIN) + border_width; - 803c506: 6a3b ldr r3, [r7, #32] - 803c508: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c50a: 2100 movs r1, #0 - 803c50c: 4618 mov r0, r3 - 803c50e: f7ff fd7b bl 803c008 - 803c512: 4603 mov r3, r0 - 803c514: b29a uxth r2, r3 - 803c516: 8b3b ldrh r3, [r7, #24] - 803c518: 4413 add r3, r2 - 803c51a: b29b uxth r3, r3 - 803c51c: 82bb strh r3, [r7, #20] + 803c472: 6a3b ldr r3, [r7, #32] + 803c474: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c476: 2100 movs r1, #0 + 803c478: 4618 mov r0, r3 + 803c47a: f7ff fd7b bl 803bf74 + 803c47e: 4603 mov r3, r0 + 803c480: b29a uxth r2, r3 + 803c482: 8b3b ldrh r3, [r7, #24] + 803c484: 4413 add r3, r2 + 803c486: b29b uxth r3, r3 + 803c488: 82bb strh r3, [r7, #20] lv_coord_t list_fit_h = label_h + top + bottom; - 803c51e: 8b7a ldrh r2, [r7, #26] - 803c520: 8afb ldrh r3, [r7, #22] - 803c522: 4413 add r3, r2 - 803c524: b29a uxth r2, r3 - 803c526: 8abb ldrh r3, [r7, #20] - 803c528: 4413 add r3, r2 - 803c52a: b29b uxth r3, r3 - 803c52c: 827b strh r3, [r7, #18] + 803c48a: 8b7a ldrh r2, [r7, #26] + 803c48c: 8afb ldrh r3, [r7, #22] + 803c48e: 4413 add r3, r2 + 803c490: b29a uxth r2, r3 + 803c492: 8abb ldrh r3, [r7, #20] + 803c494: 4413 add r3, r2 + 803c496: b29b uxth r3, r3 + 803c498: 827b strh r3, [r7, #18] lv_coord_t list_h = list_fit_h; - 803c52e: 8a7b ldrh r3, [r7, #18] - 803c530: 84fb strh r3, [r7, #38] ; 0x26 + 803c49a: 8a7b ldrh r3, [r7, #18] + 803c49c: 84fb strh r3, [r7, #38] ; 0x26 lv_dir_t dir = dropdown->dir; - 803c532: 6a3b ldr r3, [r7, #32] - 803c534: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 803c538: f3c3 0303 ubfx r3, r3, #0, #4 - 803c53c: b2db uxtb r3, r3 - 803c53e: f887 3025 strb.w r3, [r7, #37] ; 0x25 + 803c49e: 6a3b ldr r3, [r7, #32] + 803c4a0: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 803c4a4: f3c3 0303 ubfx r3, r3, #0, #4 + 803c4a8: b2db uxtb r3, r3 + 803c4aa: f887 3025 strb.w r3, [r7, #37] ; 0x25 /*No space on the bottom? See if top is better.*/ if(dropdown->dir == LV_DIR_BOTTOM) { - 803c542: 6a3b ldr r3, [r7, #32] - 803c544: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 803c548: f003 030f and.w r3, r3, #15 - 803c54c: b2db uxtb r3, r3 - 803c54e: 2b08 cmp r3, #8 - 803c550: d13e bne.n 803c5d0 + 803c4ae: 6a3b ldr r3, [r7, #32] + 803c4b0: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 803c4b4: f003 030f and.w r3, r3, #15 + 803c4b8: b2db uxtb r3, r3 + 803c4ba: 2b08 cmp r3, #8 + 803c4bc: d13e bne.n 803c53c if(dropdown_obj->coords.y2 + list_h > LV_VER_RES) { - 803c552: 687b ldr r3, [r7, #4] - 803c554: f9b3 301a ldrsh.w r3, [r3, #26] - 803c558: 461a mov r2, r3 - 803c55a: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 803c55e: 18d4 adds r4, r2, r3 - 803c560: f7f3 ffb4 bl 80304cc - 803c564: 4603 mov r3, r0 - 803c566: 4618 mov r0, r3 - 803c568: f7f3 ffe0 bl 803052c - 803c56c: 4603 mov r3, r0 - 803c56e: 429c cmp r4, r3 - 803c570: dd67 ble.n 803c642 + 803c4be: 687b ldr r3, [r7, #4] + 803c4c0: f9b3 301a ldrsh.w r3, [r3, #26] + 803c4c4: 461a mov r2, r3 + 803c4c6: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 803c4ca: 18d4 adds r4, r2, r3 + 803c4cc: f7f3 ffb4 bl 8030438 + 803c4d0: 4603 mov r3, r0 + 803c4d2: 4618 mov r0, r3 + 803c4d4: f7f3 ffe0 bl 8030498 + 803c4d8: 4603 mov r3, r0 + 803c4da: 429c cmp r4, r3 + 803c4dc: dd67 ble.n 803c5ae if(dropdown_obj->coords.y1 > LV_VER_RES - dropdown_obj->coords.y2) { - 803c572: 687b ldr r3, [r7, #4] - 803c574: f9b3 3016 ldrsh.w r3, [r3, #22] - 803c578: 461c mov r4, r3 - 803c57a: f7f3 ffa7 bl 80304cc - 803c57e: 4603 mov r3, r0 - 803c580: 4618 mov r0, r3 - 803c582: f7f3 ffd3 bl 803052c - 803c586: 4603 mov r3, r0 - 803c588: 461a mov r2, r3 - 803c58a: 687b ldr r3, [r7, #4] - 803c58c: f9b3 301a ldrsh.w r3, [r3, #26] - 803c590: 1ad3 subs r3, r2, r3 - 803c592: 429c cmp r4, r3 - 803c594: dd0a ble.n 803c5ac + 803c4de: 687b ldr r3, [r7, #4] + 803c4e0: f9b3 3016 ldrsh.w r3, [r3, #22] + 803c4e4: 461c mov r4, r3 + 803c4e6: f7f3 ffa7 bl 8030438 + 803c4ea: 4603 mov r3, r0 + 803c4ec: 4618 mov r0, r3 + 803c4ee: f7f3 ffd3 bl 8030498 + 803c4f2: 4603 mov r3, r0 + 803c4f4: 461a mov r2, r3 + 803c4f6: 687b ldr r3, [r7, #4] + 803c4f8: f9b3 301a ldrsh.w r3, [r3, #26] + 803c4fc: 1ad3 subs r3, r2, r3 + 803c4fe: 429c cmp r4, r3 + 803c500: dd0a ble.n 803c518 /*There is more space on the top, so make it drop up*/ dir = LV_DIR_TOP; - 803c596: 2304 movs r3, #4 - 803c598: f887 3025 strb.w r3, [r7, #37] ; 0x25 + 803c502: 2304 movs r3, #4 + 803c504: f887 3025 strb.w r3, [r7, #37] ; 0x25 list_h = dropdown_obj->coords.y1 - 1; - 803c59c: 687b ldr r3, [r7, #4] - 803c59e: f9b3 3016 ldrsh.w r3, [r3, #22] - 803c5a2: b29b uxth r3, r3 - 803c5a4: 3b01 subs r3, #1 - 803c5a6: b29b uxth r3, r3 - 803c5a8: 84fb strh r3, [r7, #38] ; 0x26 - 803c5aa: e04a b.n 803c642 + 803c508: 687b ldr r3, [r7, #4] + 803c50a: f9b3 3016 ldrsh.w r3, [r3, #22] + 803c50e: b29b uxth r3, r3 + 803c510: 3b01 subs r3, #1 + 803c512: b29b uxth r3, r3 + 803c514: 84fb strh r3, [r7, #38] ; 0x26 + 803c516: e04a b.n 803c5ae } else { list_h = LV_VER_RES - dropdown_obj->coords.y2 - 1 ; - 803c5ac: f7f3 ff8e bl 80304cc - 803c5b0: 4603 mov r3, r0 - 803c5b2: 4618 mov r0, r3 - 803c5b4: f7f3 ffba bl 803052c - 803c5b8: 4603 mov r3, r0 - 803c5ba: b29a uxth r2, r3 - 803c5bc: 687b ldr r3, [r7, #4] - 803c5be: f9b3 301a ldrsh.w r3, [r3, #26] - 803c5c2: b29b uxth r3, r3 - 803c5c4: 1ad3 subs r3, r2, r3 - 803c5c6: b29b uxth r3, r3 - 803c5c8: 3b01 subs r3, #1 - 803c5ca: b29b uxth r3, r3 - 803c5cc: 84fb strh r3, [r7, #38] ; 0x26 - 803c5ce: e038 b.n 803c642 + 803c518: f7f3 ff8e bl 8030438 + 803c51c: 4603 mov r3, r0 + 803c51e: 4618 mov r0, r3 + 803c520: f7f3 ffba bl 8030498 + 803c524: 4603 mov r3, r0 + 803c526: b29a uxth r2, r3 + 803c528: 687b ldr r3, [r7, #4] + 803c52a: f9b3 301a ldrsh.w r3, [r3, #26] + 803c52e: b29b uxth r3, r3 + 803c530: 1ad3 subs r3, r2, r3 + 803c532: b29b uxth r3, r3 + 803c534: 3b01 subs r3, #1 + 803c536: b29b uxth r3, r3 + 803c538: 84fb strh r3, [r7, #38] ; 0x26 + 803c53a: e038 b.n 803c5ae } } } /*No space on the top? See if bottom is better.*/ else if(dropdown->dir == LV_DIR_TOP) { - 803c5d0: 6a3b ldr r3, [r7, #32] - 803c5d2: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 803c5d6: f003 030f and.w r3, r3, #15 - 803c5da: b2db uxtb r3, r3 - 803c5dc: 2b04 cmp r3, #4 - 803c5de: d130 bne.n 803c642 + 803c53c: 6a3b ldr r3, [r7, #32] + 803c53e: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 803c542: f003 030f and.w r3, r3, #15 + 803c546: b2db uxtb r3, r3 + 803c548: 2b04 cmp r3, #4 + 803c54a: d130 bne.n 803c5ae if(dropdown_obj->coords.y1 - list_h < 0) { - 803c5e0: 687b ldr r3, [r7, #4] - 803c5e2: f9b3 3016 ldrsh.w r3, [r3, #22] - 803c5e6: 461a mov r2, r3 - 803c5e8: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 803c5ec: 1ad3 subs r3, r2, r3 - 803c5ee: 2b00 cmp r3, #0 - 803c5f0: da27 bge.n 803c642 + 803c54c: 687b ldr r3, [r7, #4] + 803c54e: f9b3 3016 ldrsh.w r3, [r3, #22] + 803c552: 461a mov r2, r3 + 803c554: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 803c558: 1ad3 subs r3, r2, r3 + 803c55a: 2b00 cmp r3, #0 + 803c55c: da27 bge.n 803c5ae if(dropdown_obj->coords.y1 < LV_VER_RES - dropdown_obj->coords.y2) { - 803c5f2: 687b ldr r3, [r7, #4] - 803c5f4: f9b3 3016 ldrsh.w r3, [r3, #22] - 803c5f8: 461c mov r4, r3 - 803c5fa: f7f3 ff67 bl 80304cc - 803c5fe: 4603 mov r3, r0 - 803c600: 4618 mov r0, r3 - 803c602: f7f3 ff93 bl 803052c - 803c606: 4603 mov r3, r0 - 803c608: 461a mov r2, r3 - 803c60a: 687b ldr r3, [r7, #4] - 803c60c: f9b3 301a ldrsh.w r3, [r3, #26] - 803c610: 1ad3 subs r3, r2, r3 - 803c612: 429c cmp r4, r3 - 803c614: da12 bge.n 803c63c + 803c55e: 687b ldr r3, [r7, #4] + 803c560: f9b3 3016 ldrsh.w r3, [r3, #22] + 803c564: 461c mov r4, r3 + 803c566: f7f3 ff67 bl 8030438 + 803c56a: 4603 mov r3, r0 + 803c56c: 4618 mov r0, r3 + 803c56e: f7f3 ff93 bl 8030498 + 803c572: 4603 mov r3, r0 + 803c574: 461a mov r2, r3 + 803c576: 687b ldr r3, [r7, #4] + 803c578: f9b3 301a ldrsh.w r3, [r3, #26] + 803c57c: 1ad3 subs r3, r2, r3 + 803c57e: 429c cmp r4, r3 + 803c580: da12 bge.n 803c5a8 /*There is more space on the top, so make it drop up*/ dir = LV_DIR_BOTTOM; - 803c616: 2308 movs r3, #8 - 803c618: f887 3025 strb.w r3, [r7, #37] ; 0x25 + 803c582: 2308 movs r3, #8 + 803c584: f887 3025 strb.w r3, [r7, #37] ; 0x25 list_h = LV_VER_RES - dropdown_obj->coords.y2; - 803c61c: f7f3 ff56 bl 80304cc - 803c620: 4603 mov r3, r0 - 803c622: 4618 mov r0, r3 - 803c624: f7f3 ff82 bl 803052c - 803c628: 4603 mov r3, r0 - 803c62a: b29a uxth r2, r3 - 803c62c: 687b ldr r3, [r7, #4] - 803c62e: f9b3 301a ldrsh.w r3, [r3, #26] - 803c632: b29b uxth r3, r3 - 803c634: 1ad3 subs r3, r2, r3 - 803c636: b29b uxth r3, r3 - 803c638: 84fb strh r3, [r7, #38] ; 0x26 - 803c63a: e002 b.n 803c642 + 803c588: f7f3 ff56 bl 8030438 + 803c58c: 4603 mov r3, r0 + 803c58e: 4618 mov r0, r3 + 803c590: f7f3 ff82 bl 8030498 + 803c594: 4603 mov r3, r0 + 803c596: b29a uxth r2, r3 + 803c598: 687b ldr r3, [r7, #4] + 803c59a: f9b3 301a ldrsh.w r3, [r3, #26] + 803c59e: b29b uxth r3, r3 + 803c5a0: 1ad3 subs r3, r2, r3 + 803c5a2: b29b uxth r3, r3 + 803c5a4: 84fb strh r3, [r7, #38] ; 0x26 + 803c5a6: e002 b.n 803c5ae } else { list_h = dropdown_obj->coords.y1; - 803c63c: 687b ldr r3, [r7, #4] - 803c63e: 8adb ldrh r3, [r3, #22] - 803c640: 84fb strh r3, [r7, #38] ; 0x26 + 803c5a8: 687b ldr r3, [r7, #4] + 803c5aa: 8adb ldrh r3, [r3, #22] + 803c5ac: 84fb strh r3, [r7, #38] ; 0x26 } } } if(list_h > list_fit_h) list_h = list_fit_h; - 803c642: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 - 803c646: f9b7 3012 ldrsh.w r3, [r7, #18] - 803c64a: 429a cmp r2, r3 - 803c64c: dd01 ble.n 803c652 - 803c64e: 8a7b ldrh r3, [r7, #18] - 803c650: 84fb strh r3, [r7, #38] ; 0x26 + 803c5ae: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 + 803c5b2: f9b7 3012 ldrsh.w r3, [r7, #18] + 803c5b6: 429a cmp r2, r3 + 803c5b8: dd01 ble.n 803c5be + 803c5ba: 8a7b ldrh r3, [r7, #18] + 803c5bc: 84fb strh r3, [r7, #38] ; 0x26 lv_obj_set_height(dropdown->list, list_h); - 803c652: 6a3b ldr r3, [r7, #32] - 803c654: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c656: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 - 803c65a: 4611 mov r1, r2 - 803c65c: 4618 mov r0, r3 - 803c65e: f7cd f8e3 bl 8009828 + 803c5be: 6a3b ldr r3, [r7, #32] + 803c5c0: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c5c2: f9b7 2026 ldrsh.w r2, [r7, #38] ; 0x26 + 803c5c6: 4611 mov r1, r2 + 803c5c8: 4618 mov r0, r3 + 803c5ca: f7cd f8f7 bl 80097bc position_to_selected(dropdown_obj); - 803c662: 6878 ldr r0, [r7, #4] - 803c664: f001 f84e bl 803d704 + 803c5ce: 6878 ldr r0, [r7, #4] + 803c5d0: f001 f84e bl 803d670 if(dir == LV_DIR_BOTTOM) lv_obj_align_to(dropdown->list, dropdown_obj, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 0); - 803c668: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 - 803c66c: 2b08 cmp r3, #8 - 803c66e: d109 bne.n 803c684 - 803c670: 6a3b ldr r3, [r7, #32] - 803c672: 6a58 ldr r0, [r3, #36] ; 0x24 - 803c674: 2300 movs r3, #0 - 803c676: 9300 str r3, [sp, #0] - 803c678: 2300 movs r3, #0 - 803c67a: 220d movs r2, #13 - 803c67c: 6879 ldr r1, [r7, #4] - 803c67e: f7cd f9e5 bl 8009a4c - 803c682: e028 b.n 803c6d6 + 803c5d4: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 + 803c5d8: 2b08 cmp r3, #8 + 803c5da: d109 bne.n 803c5f0 + 803c5dc: 6a3b ldr r3, [r7, #32] + 803c5de: 6a58 ldr r0, [r3, #36] ; 0x24 + 803c5e0: 2300 movs r3, #0 + 803c5e2: 9300 str r3, [sp, #0] + 803c5e4: 2300 movs r3, #0 + 803c5e6: 220d movs r2, #13 + 803c5e8: 6879 ldr r1, [r7, #4] + 803c5ea: f7cd f9f9 bl 80099e0 + 803c5ee: e028 b.n 803c642 else if(dir == LV_DIR_TOP) lv_obj_align_to(dropdown->list, dropdown_obj, LV_ALIGN_OUT_TOP_LEFT, 0, 0); - 803c684: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 - 803c688: 2b04 cmp r3, #4 - 803c68a: d109 bne.n 803c6a0 - 803c68c: 6a3b ldr r3, [r7, #32] - 803c68e: 6a58 ldr r0, [r3, #36] ; 0x24 - 803c690: 2300 movs r3, #0 - 803c692: 9300 str r3, [sp, #0] - 803c694: 2300 movs r3, #0 - 803c696: 220a movs r2, #10 - 803c698: 6879 ldr r1, [r7, #4] - 803c69a: f7cd f9d7 bl 8009a4c - 803c69e: e01a b.n 803c6d6 + 803c5f0: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 + 803c5f4: 2b04 cmp r3, #4 + 803c5f6: d109 bne.n 803c60c + 803c5f8: 6a3b ldr r3, [r7, #32] + 803c5fa: 6a58 ldr r0, [r3, #36] ; 0x24 + 803c5fc: 2300 movs r3, #0 + 803c5fe: 9300 str r3, [sp, #0] + 803c600: 2300 movs r3, #0 + 803c602: 220a movs r2, #10 + 803c604: 6879 ldr r1, [r7, #4] + 803c606: f7cd f9eb bl 80099e0 + 803c60a: e01a b.n 803c642 else if(dir == LV_DIR_LEFT) lv_obj_align_to(dropdown->list, dropdown_obj, LV_ALIGN_OUT_LEFT_TOP, 0, 0); - 803c6a0: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 - 803c6a4: 2b01 cmp r3, #1 - 803c6a6: d109 bne.n 803c6bc - 803c6a8: 6a3b ldr r3, [r7, #32] - 803c6aa: 6a58 ldr r0, [r3, #36] ; 0x24 - 803c6ac: 2300 movs r3, #0 - 803c6ae: 9300 str r3, [sp, #0] - 803c6b0: 2300 movs r3, #0 - 803c6b2: 2210 movs r2, #16 - 803c6b4: 6879 ldr r1, [r7, #4] - 803c6b6: f7cd f9c9 bl 8009a4c - 803c6ba: e00c b.n 803c6d6 + 803c60c: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 + 803c610: 2b01 cmp r3, #1 + 803c612: d109 bne.n 803c628 + 803c614: 6a3b ldr r3, [r7, #32] + 803c616: 6a58 ldr r0, [r3, #36] ; 0x24 + 803c618: 2300 movs r3, #0 + 803c61a: 9300 str r3, [sp, #0] + 803c61c: 2300 movs r3, #0 + 803c61e: 2210 movs r2, #16 + 803c620: 6879 ldr r1, [r7, #4] + 803c622: f7cd f9dd bl 80099e0 + 803c626: e00c b.n 803c642 else if(dir == LV_DIR_RIGHT) lv_obj_align_to(dropdown->list, dropdown_obj, LV_ALIGN_OUT_RIGHT_TOP, 0, 0); - 803c6bc: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 - 803c6c0: 2b02 cmp r3, #2 - 803c6c2: d108 bne.n 803c6d6 - 803c6c4: 6a3b ldr r3, [r7, #32] - 803c6c6: 6a58 ldr r0, [r3, #36] ; 0x24 - 803c6c8: 2300 movs r3, #0 - 803c6ca: 9300 str r3, [sp, #0] - 803c6cc: 2300 movs r3, #0 - 803c6ce: 2213 movs r2, #19 - 803c6d0: 6879 ldr r1, [r7, #4] - 803c6d2: f7cd f9bb bl 8009a4c + 803c628: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 + 803c62c: 2b02 cmp r3, #2 + 803c62e: d108 bne.n 803c642 + 803c630: 6a3b ldr r3, [r7, #32] + 803c632: 6a58 ldr r0, [r3, #36] ; 0x24 + 803c634: 2300 movs r3, #0 + 803c636: 9300 str r3, [sp, #0] + 803c638: 2300 movs r3, #0 + 803c63a: 2213 movs r2, #19 + 803c63c: 6879 ldr r1, [r7, #4] + 803c63e: f7cd f9cf bl 80099e0 lv_obj_update_layout(dropdown->list); - 803c6d6: 6a3b ldr r3, [r7, #32] - 803c6d8: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c6da: 4618 mov r0, r3 - 803c6dc: f7cd f92e bl 800993c + 803c642: 6a3b ldr r3, [r7, #32] + 803c644: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c646: 4618 mov r0, r3 + 803c648: f7cd f942 bl 80098d0 if(dropdown->dir == LV_DIR_LEFT || dropdown->dir == LV_DIR_RIGHT) { - 803c6e0: 6a3b ldr r3, [r7, #32] - 803c6e2: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 803c6e6: f003 030f and.w r3, r3, #15 - 803c6ea: b2db uxtb r3, r3 - 803c6ec: 2b01 cmp r3, #1 - 803c6ee: d007 beq.n 803c700 - 803c6f0: 6a3b ldr r3, [r7, #32] - 803c6f2: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 803c6f6: f003 030f and.w r3, r3, #15 - 803c6fa: b2db uxtb r3, r3 - 803c6fc: 2b02 cmp r3, #2 - 803c6fe: d130 bne.n 803c762 + 803c64c: 6a3b ldr r3, [r7, #32] + 803c64e: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 803c652: f003 030f and.w r3, r3, #15 + 803c656: b2db uxtb r3, r3 + 803c658: 2b01 cmp r3, #1 + 803c65a: d007 beq.n 803c66c + 803c65c: 6a3b ldr r3, [r7, #32] + 803c65e: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 803c662: f003 030f and.w r3, r3, #15 + 803c666: b2db uxtb r3, r3 + 803c668: 2b02 cmp r3, #2 + 803c66a: d130 bne.n 803c6ce lv_coord_t y1 = lv_obj_get_y(dropdown->list); - 803c700: 6a3b ldr r3, [r7, #32] - 803c702: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c704: 4618 mov r0, r3 - 803c706: f7cd fccd bl 800a0a4 - 803c70a: 4603 mov r3, r0 - 803c70c: 823b strh r3, [r7, #16] + 803c66c: 6a3b ldr r3, [r7, #32] + 803c66e: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c670: 4618 mov r0, r3 + 803c672: f7cd fce1 bl 800a038 + 803c676: 4603 mov r3, r0 + 803c678: 823b strh r3, [r7, #16] lv_coord_t y2 = lv_obj_get_y2(dropdown->list); - 803c70e: 6a3b ldr r3, [r7, #32] - 803c710: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c712: 4618 mov r0, r3 - 803c714: f7cd fd03 bl 800a11e - 803c718: 4603 mov r3, r0 - 803c71a: 81fb strh r3, [r7, #14] + 803c67a: 6a3b ldr r3, [r7, #32] + 803c67c: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c67e: 4618 mov r0, r3 + 803c680: f7cd fd17 bl 800a0b2 + 803c684: 4603 mov r3, r0 + 803c686: 81fb strh r3, [r7, #14] if(y2 >= LV_VER_RES) { - 803c71c: f7f3 fed6 bl 80304cc - 803c720: 4603 mov r3, r0 - 803c722: 4618 mov r0, r3 - 803c724: f7f3 ff02 bl 803052c - 803c728: 4603 mov r3, r0 - 803c72a: 461a mov r2, r3 - 803c72c: f9b7 300e ldrsh.w r3, [r7, #14] - 803c730: 4293 cmp r3, r2 - 803c732: db16 blt.n 803c762 + 803c688: f7f3 fed6 bl 8030438 + 803c68c: 4603 mov r3, r0 + 803c68e: 4618 mov r0, r3 + 803c690: f7f3 ff02 bl 8030498 + 803c694: 4603 mov r3, r0 + 803c696: 461a mov r2, r3 + 803c698: f9b7 300e ldrsh.w r3, [r7, #14] + 803c69c: 4293 cmp r3, r2 + 803c69e: db16 blt.n 803c6ce lv_obj_set_y(dropdown->list, y1 - (y2 - LV_VER_RES) - 1); - 803c734: 6a3b ldr r3, [r7, #32] - 803c736: 6a5c ldr r4, [r3, #36] ; 0x24 - 803c738: f7f3 fec8 bl 80304cc - 803c73c: 4603 mov r3, r0 - 803c73e: 4618 mov r0, r3 - 803c740: f7f3 fef4 bl 803052c - 803c744: 4603 mov r3, r0 - 803c746: b29a uxth r2, r3 - 803c748: 89fb ldrh r3, [r7, #14] - 803c74a: 1ad3 subs r3, r2, r3 - 803c74c: b29a uxth r2, r3 - 803c74e: 8a3b ldrh r3, [r7, #16] - 803c750: 4413 add r3, r2 - 803c752: b29b uxth r3, r3 - 803c754: 3b01 subs r3, #1 - 803c756: b29b uxth r3, r3 - 803c758: b21b sxth r3, r3 - 803c75a: 4619 mov r1, r3 - 803c75c: 4620 mov r0, r4 - 803c75e: f7cc fdc5 bl 80092ec + 803c6a0: 6a3b ldr r3, [r7, #32] + 803c6a2: 6a5c ldr r4, [r3, #36] ; 0x24 + 803c6a4: f7f3 fec8 bl 8030438 + 803c6a8: 4603 mov r3, r0 + 803c6aa: 4618 mov r0, r3 + 803c6ac: f7f3 fef4 bl 8030498 + 803c6b0: 4603 mov r3, r0 + 803c6b2: b29a uxth r2, r3 + 803c6b4: 89fb ldrh r3, [r7, #14] + 803c6b6: 1ad3 subs r3, r2, r3 + 803c6b8: b29a uxth r2, r3 + 803c6ba: 8a3b ldrh r3, [r7, #16] + 803c6bc: 4413 add r3, r2 + 803c6be: b29b uxth r3, r3 + 803c6c0: 3b01 subs r3, #1 + 803c6c2: b29b uxth r3, r3 + 803c6c4: b21b sxth r3, r3 + 803c6c6: 4619 mov r1, r3 + 803c6c8: 4620 mov r0, r4 + 803c6ca: f7cc fdd9 bl 8009280 } } lv_text_align_t align = lv_obj_calculate_style_text_align(label, LV_PART_MAIN, dropdown->options); - 803c762: 6a3b ldr r3, [r7, #32] - 803c764: 6b1b ldr r3, [r3, #48] ; 0x30 - 803c766: 461a mov r2, r3 - 803c768: 2100 movs r1, #0 - 803c76a: 69f8 ldr r0, [r7, #28] - 803c76c: f7d1 ffa8 bl 800e6c0 - 803c770: 4603 mov r3, r0 - 803c772: 737b strb r3, [r7, #13] + 803c6ce: 6a3b ldr r3, [r7, #32] + 803c6d0: 6b1b ldr r3, [r3, #48] ; 0x30 + 803c6d2: 461a mov r2, r3 + 803c6d4: 2100 movs r1, #0 + 803c6d6: 69f8 ldr r0, [r7, #28] + 803c6d8: f7d1 ffbc bl 800e654 + 803c6dc: 4603 mov r3, r0 + 803c6de: 737b strb r3, [r7, #13] switch(align) { - 803c774: 7b7b ldrb r3, [r7, #13] - 803c776: 2b02 cmp r3, #2 - 803c778: d00f beq.n 803c79a - 803c77a: 2b03 cmp r3, #3 - 803c77c: d006 beq.n 803c78c + 803c6e0: 7b7b ldrb r3, [r7, #13] + 803c6e2: 2b02 cmp r3, #2 + 803c6e4: d00f beq.n 803c706 + 803c6e6: 2b03 cmp r3, #3 + 803c6e8: d006 beq.n 803c6f8 default: case LV_TEXT_ALIGN_LEFT: lv_obj_align(label, LV_ALIGN_TOP_LEFT, 0, 0); - 803c77e: 2300 movs r3, #0 - 803c780: 2200 movs r2, #0 - 803c782: 2101 movs r1, #1 - 803c784: 69f8 ldr r0, [r7, #28] - 803c786: f7cd f941 bl 8009a0c + 803c6ea: 2300 movs r3, #0 + 803c6ec: 2200 movs r2, #0 + 803c6ee: 2101 movs r1, #1 + 803c6f0: 69f8 ldr r0, [r7, #28] + 803c6f2: f7cd f955 bl 80099a0 break; - 803c78a: e00d b.n 803c7a8 + 803c6f6: e00d b.n 803c714 case LV_TEXT_ALIGN_RIGHT: lv_obj_align(label, LV_ALIGN_TOP_RIGHT, 0, 0); - 803c78c: 2300 movs r3, #0 - 803c78e: 2200 movs r2, #0 - 803c790: 2103 movs r1, #3 - 803c792: 69f8 ldr r0, [r7, #28] - 803c794: f7cd f93a bl 8009a0c + 803c6f8: 2300 movs r3, #0 + 803c6fa: 2200 movs r2, #0 + 803c6fc: 2103 movs r1, #3 + 803c6fe: 69f8 ldr r0, [r7, #28] + 803c700: f7cd f94e bl 80099a0 break; - 803c798: e006 b.n 803c7a8 + 803c704: e006 b.n 803c714 case LV_TEXT_ALIGN_CENTER: lv_obj_align(label, LV_ALIGN_CENTER, 0, 0); - 803c79a: 2300 movs r3, #0 - 803c79c: 2200 movs r2, #0 - 803c79e: 2109 movs r1, #9 - 803c7a0: 69f8 ldr r0, [r7, #28] - 803c7a2: f7cd f933 bl 8009a0c + 803c706: 2300 movs r3, #0 + 803c708: 2200 movs r2, #0 + 803c70a: 2109 movs r1, #9 + 803c70c: 69f8 ldr r0, [r7, #28] + 803c70e: f7cd f947 bl 80099a0 break; - 803c7a6: bf00 nop + 803c712: bf00 nop } } - 803c7a8: bf00 nop - 803c7aa: 372c adds r7, #44 ; 0x2c - 803c7ac: 46bd mov sp, r7 - 803c7ae: bd90 pop {r4, r7, pc} + 803c714: bf00 nop + 803c716: 372c adds r7, #44 ; 0x2c + 803c718: 46bd mov sp, r7 + 803c71a: bd90 pop {r4, r7, pc} -0803c7b0 : +0803c71c : void lv_dropdown_close(lv_obj_t * obj) { - 803c7b0: b580 push {r7, lr} - 803c7b2: b084 sub sp, #16 - 803c7b4: af00 add r7, sp, #0 - 803c7b6: 6078 str r0, [r7, #4] + 803c71c: b580 push {r7, lr} + 803c71e: b084 sub sp, #16 + 803c720: af00 add r7, sp, #0 + 803c722: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_obj_clear_state(obj, LV_STATE_CHECKED); - 803c7b8: 2101 movs r1, #1 - 803c7ba: 6878 ldr r0, [r7, #4] - 803c7bc: f7c9 ffc3 bl 8006746 + 803c724: 2101 movs r1, #1 + 803c726: 6878 ldr r0, [r7, #4] + 803c728: f7c9 ffd7 bl 80066da lv_dropdown_t * dropdown = (lv_dropdown_t *)obj; - 803c7c0: 687b ldr r3, [r7, #4] - 803c7c2: 60fb str r3, [r7, #12] + 803c72c: 687b ldr r3, [r7, #4] + 803c72e: 60fb str r3, [r7, #12] dropdown->pr_opt_id = LV_DROPDOWN_PR_NONE; - 803c7c4: 68fb ldr r3, [r7, #12] - 803c7c6: f64f 72ff movw r2, #65535 ; 0xffff - 803c7ca: 875a strh r2, [r3, #58] ; 0x3a + 803c730: 68fb ldr r3, [r7, #12] + 803c732: f64f 72ff movw r2, #65535 ; 0xffff + 803c736: 875a strh r2, [r3, #58] ; 0x3a lv_obj_add_flag(dropdown->list, LV_OBJ_FLAG_HIDDEN); - 803c7cc: 68fb ldr r3, [r7, #12] - 803c7ce: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c7d0: 2101 movs r1, #1 - 803c7d2: 4618 mov r0, r3 - 803c7d4: f7c9 fef0 bl 80065b8 + 803c738: 68fb ldr r3, [r7, #12] + 803c73a: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c73c: 2101 movs r1, #1 + 803c73e: 4618 mov r0, r3 + 803c740: f7c9 ff04 bl 800654c lv_event_send(obj, LV_EVENT_CANCEL, NULL); - 803c7d8: 2200 movs r2, #0 - 803c7da: 2120 movs r1, #32 - 803c7dc: 6878 ldr r0, [r7, #4] - 803c7de: f7c5 fe4f bl 8002480 + 803c744: 2200 movs r2, #0 + 803c746: 2120 movs r1, #32 + 803c748: 6878 ldr r0, [r7, #4] + 803c74a: f7c5 fe63 bl 8002414 } - 803c7e2: bf00 nop - 803c7e4: 3710 adds r7, #16 - 803c7e6: 46bd mov sp, r7 - 803c7e8: bd80 pop {r7, pc} + 803c74e: bf00 nop + 803c750: 3710 adds r7, #16 + 803c752: 46bd mov sp, r7 + 803c754: bd80 pop {r7, pc} -0803c7ea : +0803c756 : bool lv_dropdown_is_open(lv_obj_t * obj) { - 803c7ea: b580 push {r7, lr} - 803c7ec: b084 sub sp, #16 - 803c7ee: af00 add r7, sp, #0 - 803c7f0: 6078 str r0, [r7, #4] + 803c756: b580 push {r7, lr} + 803c758: b084 sub sp, #16 + 803c75a: af00 add r7, sp, #0 + 803c75c: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_dropdown_t * dropdown = (lv_dropdown_t *)obj; - 803c7f2: 687b ldr r3, [r7, #4] - 803c7f4: 60fb str r3, [r7, #12] + 803c75e: 687b ldr r3, [r7, #4] + 803c760: 60fb str r3, [r7, #12] return lv_obj_has_flag(dropdown->list, LV_OBJ_FLAG_HIDDEN) ? false : true; - 803c7f6: 68fb ldr r3, [r7, #12] - 803c7f8: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c7fa: 2101 movs r1, #1 - 803c7fc: 4618 mov r0, r3 - 803c7fe: f7c9 ffc0 bl 8006782 - 803c802: 4603 mov r3, r0 - 803c804: f083 0301 eor.w r3, r3, #1 - 803c808: b2db uxtb r3, r3 + 803c762: 68fb ldr r3, [r7, #12] + 803c764: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c766: 2101 movs r1, #1 + 803c768: 4618 mov r0, r3 + 803c76a: f7c9 ffd4 bl 8006716 + 803c76e: 4603 mov r3, r0 + 803c770: f083 0301 eor.w r3, r3, #1 + 803c774: b2db uxtb r3, r3 } - 803c80a: 4618 mov r0, r3 - 803c80c: 3710 adds r7, #16 - 803c80e: 46bd mov sp, r7 - 803c810: bd80 pop {r7, pc} + 803c776: 4618 mov r0, r3 + 803c778: 3710 adds r7, #16 + 803c77a: 46bd mov sp, r7 + 803c77c: bd80 pop {r7, pc} ... -0803c814 : +0803c780 : /********************** * STATIC FUNCTIONS **********************/ static lv_obj_t * lv_dropdown_list_create(lv_obj_t * parent) { - 803c814: b580 push {r7, lr} - 803c816: b084 sub sp, #16 - 803c818: af00 add r7, sp, #0 - 803c81a: 6078 str r0, [r7, #4] + 803c780: b580 push {r7, lr} + 803c782: b084 sub sp, #16 + 803c784: af00 add r7, sp, #0 + 803c786: 6078 str r0, [r7, #4] LV_LOG_INFO("begin"); lv_obj_t * obj = lv_obj_class_create_obj(&lv_dropdownlist_class, parent); - 803c81c: 6879 ldr r1, [r7, #4] - 803c81e: 4806 ldr r0, [pc, #24] ; (803c838 ) - 803c820: f7cb f917 bl 8007a52 - 803c824: 60f8 str r0, [r7, #12] + 803c788: 6879 ldr r1, [r7, #4] + 803c78a: 4806 ldr r0, [pc, #24] ; (803c7a4 ) + 803c78c: f7cb f92b bl 80079e6 + 803c790: 60f8 str r0, [r7, #12] lv_obj_class_init_obj(obj); - 803c826: 68f8 ldr r0, [r7, #12] - 803c828: f7cb f9c5 bl 8007bb6 + 803c792: 68f8 ldr r0, [r7, #12] + 803c794: f7cb f9d9 bl 8007b4a return obj; - 803c82c: 68fb ldr r3, [r7, #12] + 803c798: 68fb ldr r3, [r7, #12] } - 803c82e: 4618 mov r0, r3 - 803c830: 3710 adds r7, #16 - 803c832: 46bd mov sp, r7 - 803c834: bd80 pop {r7, pc} - 803c836: bf00 nop - 803c838: 08070a54 .word 0x08070a54 + 803c79a: 4618 mov r0, r3 + 803c79c: 3710 adds r7, #16 + 803c79e: 46bd mov sp, r7 + 803c7a0: bd80 pop {r7, pc} + 803c7a2: bf00 nop + 803c7a4: 080709ac .word 0x080709ac -0803c83c : +0803c7a8 : static void lv_dropdown_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 803c83c: b580 push {r7, lr} - 803c83e: b084 sub sp, #16 - 803c840: af00 add r7, sp, #0 - 803c842: 6078 str r0, [r7, #4] - 803c844: 6039 str r1, [r7, #0] + 803c7a8: b580 push {r7, lr} + 803c7aa: b084 sub sp, #16 + 803c7ac: af00 add r7, sp, #0 + 803c7ae: 6078 str r0, [r7, #4] + 803c7b0: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_dropdown_t * dropdown = (lv_dropdown_t *)obj; - 803c846: 683b ldr r3, [r7, #0] - 803c848: 60fb str r3, [r7, #12] + 803c7b2: 683b ldr r3, [r7, #0] + 803c7b4: 60fb str r3, [r7, #12] /*Initialize the allocated 'ext'*/ dropdown->list = NULL; - 803c84a: 68fb ldr r3, [r7, #12] - 803c84c: 2200 movs r2, #0 - 803c84e: 625a str r2, [r3, #36] ; 0x24 + 803c7b6: 68fb ldr r3, [r7, #12] + 803c7b8: 2200 movs r2, #0 + 803c7ba: 625a str r2, [r3, #36] ; 0x24 dropdown->options = NULL; - 803c850: 68fb ldr r3, [r7, #12] - 803c852: 2200 movs r2, #0 - 803c854: 631a str r2, [r3, #48] ; 0x30 + 803c7bc: 68fb ldr r3, [r7, #12] + 803c7be: 2200 movs r2, #0 + 803c7c0: 631a str r2, [r3, #48] ; 0x30 dropdown->symbol = LV_SYMBOL_DOWN; - 803c856: 68fb ldr r3, [r7, #12] - 803c858: 4a22 ldr r2, [pc, #136] ; (803c8e4 ) - 803c85a: 62da str r2, [r3, #44] ; 0x2c + 803c7c2: 68fb ldr r3, [r7, #12] + 803c7c4: 4a22 ldr r2, [pc, #136] ; (803c850 ) + 803c7c6: 62da str r2, [r3, #44] ; 0x2c dropdown->text = NULL; - 803c85c: 68fb ldr r3, [r7, #12] - 803c85e: 2200 movs r2, #0 - 803c860: 629a str r2, [r3, #40] ; 0x28 + 803c7c8: 68fb ldr r3, [r7, #12] + 803c7ca: 2200 movs r2, #0 + 803c7cc: 629a str r2, [r3, #40] ; 0x28 dropdown->static_txt = 1; - 803c862: 68fa ldr r2, [r7, #12] - 803c864: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 803c868: f043 0310 orr.w r3, r3, #16 - 803c86c: f882 303c strb.w r3, [r2, #60] ; 0x3c + 803c7ce: 68fa ldr r2, [r7, #12] + 803c7d0: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 803c7d4: f043 0310 orr.w r3, r3, #16 + 803c7d8: f882 303c strb.w r3, [r2, #60] ; 0x3c dropdown->selected_highlight = 1; - 803c870: 68fa ldr r2, [r7, #12] - 803c872: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 803c876: f043 0320 orr.w r3, r3, #32 - 803c87a: f882 303c strb.w r3, [r2, #60] ; 0x3c + 803c7dc: 68fa ldr r2, [r7, #12] + 803c7de: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 803c7e2: f043 0320 orr.w r3, r3, #32 + 803c7e6: f882 303c strb.w r3, [r2, #60] ; 0x3c dropdown->sel_opt_id = 0; - 803c87e: 68fb ldr r3, [r7, #12] - 803c880: 2200 movs r2, #0 - 803c882: 86da strh r2, [r3, #54] ; 0x36 + 803c7ea: 68fb ldr r3, [r7, #12] + 803c7ec: 2200 movs r2, #0 + 803c7ee: 86da strh r2, [r3, #54] ; 0x36 dropdown->sel_opt_id_orig = 0; - 803c884: 68fb ldr r3, [r7, #12] - 803c886: 2200 movs r2, #0 - 803c888: 871a strh r2, [r3, #56] ; 0x38 + 803c7f0: 68fb ldr r3, [r7, #12] + 803c7f2: 2200 movs r2, #0 + 803c7f4: 871a strh r2, [r3, #56] ; 0x38 dropdown->pr_opt_id = LV_DROPDOWN_PR_NONE; - 803c88a: 68fb ldr r3, [r7, #12] - 803c88c: f64f 72ff movw r2, #65535 ; 0xffff - 803c890: 875a strh r2, [r3, #58] ; 0x3a + 803c7f6: 68fb ldr r3, [r7, #12] + 803c7f8: f64f 72ff movw r2, #65535 ; 0xffff + 803c7fc: 875a strh r2, [r3, #58] ; 0x3a dropdown->option_cnt = 0; - 803c892: 68fb ldr r3, [r7, #12] - 803c894: 2200 movs r2, #0 - 803c896: 869a strh r2, [r3, #52] ; 0x34 + 803c7fe: 68fb ldr r3, [r7, #12] + 803c800: 2200 movs r2, #0 + 803c802: 869a strh r2, [r3, #52] ; 0x34 dropdown->dir = LV_DIR_BOTTOM; - 803c898: 68fa ldr r2, [r7, #12] - 803c89a: f892 303c ldrb.w r3, [r2, #60] ; 0x3c - 803c89e: 2108 movs r1, #8 - 803c8a0: f361 0303 bfi r3, r1, #0, #4 - 803c8a4: f882 303c strb.w r3, [r2, #60] ; 0x3c + 803c804: 68fa ldr r2, [r7, #12] + 803c806: f892 303c ldrb.w r3, [r2, #60] ; 0x3c + 803c80a: 2108 movs r1, #8 + 803c80c: f361 0303 bfi r3, r1, #0, #4 + 803c810: f882 303c strb.w r3, [r2, #60] ; 0x3c lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS); - 803c8a8: f44f 6180 mov.w r1, #1024 ; 0x400 - 803c8ac: 6838 ldr r0, [r7, #0] - 803c8ae: f7c9 fe83 bl 80065b8 + 803c814: f44f 6180 mov.w r1, #1024 ; 0x400 + 803c818: 6838 ldr r0, [r7, #0] + 803c81a: f7c9 fe97 bl 800654c lv_dropdown_set_options_static(obj, "Option 1\nOption 2\nOption 3"); - 803c8b2: 490d ldr r1, [pc, #52] ; (803c8e8 ) - 803c8b4: 6838 ldr r0, [r7, #0] - 803c8b6: f7ff fcb8 bl 803c22a + 803c81e: 490d ldr r1, [pc, #52] ; (803c854 ) + 803c820: 6838 ldr r0, [r7, #0] + 803c822: f7ff fcb8 bl 803c196 dropdown->list = lv_dropdown_list_create(lv_obj_get_screen(obj)); - 803c8ba: 6838 ldr r0, [r7, #0] - 803c8bc: f7d2 fed8 bl 800f670 - 803c8c0: 4603 mov r3, r0 - 803c8c2: 4618 mov r0, r3 - 803c8c4: f7ff ffa6 bl 803c814 - 803c8c8: 4602 mov r2, r0 - 803c8ca: 68fb ldr r3, [r7, #12] - 803c8cc: 625a str r2, [r3, #36] ; 0x24 + 803c826: 6838 ldr r0, [r7, #0] + 803c828: f7d2 fed8 bl 800f5dc + 803c82c: 4603 mov r3, r0 + 803c82e: 4618 mov r0, r3 + 803c830: f7ff ffa6 bl 803c780 + 803c834: 4602 mov r2, r0 + 803c836: 68fb ldr r3, [r7, #12] + 803c838: 625a str r2, [r3, #36] ; 0x24 lv_dropdown_list_t * list = (lv_dropdown_list_t *)dropdown->list; - 803c8ce: 68fb ldr r3, [r7, #12] - 803c8d0: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c8d2: 60bb str r3, [r7, #8] + 803c83a: 68fb ldr r3, [r7, #12] + 803c83c: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c83e: 60bb str r3, [r7, #8] list->dropdown = obj; - 803c8d4: 68bb ldr r3, [r7, #8] - 803c8d6: 683a ldr r2, [r7, #0] - 803c8d8: 625a str r2, [r3, #36] ; 0x24 + 803c840: 68bb ldr r3, [r7, #8] + 803c842: 683a ldr r2, [r7, #0] + 803c844: 625a str r2, [r3, #36] ; 0x24 LV_TRACE_OBJ_CREATE("finished"); } - 803c8da: bf00 nop - 803c8dc: 3710 adds r7, #16 - 803c8de: 46bd mov sp, r7 - 803c8e0: bd80 pop {r7, pc} - 803c8e2: bf00 nop - 803c8e4: 08047198 .word 0x08047198 - 803c8e8: 0804719c .word 0x0804719c + 803c846: bf00 nop + 803c848: 3710 adds r7, #16 + 803c84a: 46bd mov sp, r7 + 803c84c: bd80 pop {r7, pc} + 803c84e: bf00 nop + 803c850: 080470f0 .word 0x080470f0 + 803c854: 080470f4 .word 0x080470f4 -0803c8ec : +0803c858 : static void lv_dropdown_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 803c8ec: b580 push {r7, lr} - 803c8ee: b084 sub sp, #16 - 803c8f0: af00 add r7, sp, #0 - 803c8f2: 6078 str r0, [r7, #4] - 803c8f4: 6039 str r1, [r7, #0] + 803c858: b580 push {r7, lr} + 803c85a: b084 sub sp, #16 + 803c85c: af00 add r7, sp, #0 + 803c85e: 6078 str r0, [r7, #4] + 803c860: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_dropdown_t * dropdown = (lv_dropdown_t *)obj; - 803c8f6: 683b ldr r3, [r7, #0] - 803c8f8: 60fb str r3, [r7, #12] + 803c862: 683b ldr r3, [r7, #0] + 803c864: 60fb str r3, [r7, #12] if(dropdown->list) { - 803c8fa: 68fb ldr r3, [r7, #12] - 803c8fc: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c8fe: 2b00 cmp r3, #0 - 803c900: d007 beq.n 803c912 + 803c866: 68fb ldr r3, [r7, #12] + 803c868: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c86a: 2b00 cmp r3, #0 + 803c86c: d007 beq.n 803c87e lv_obj_del(dropdown->list); - 803c902: 68fb ldr r3, [r7, #12] - 803c904: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c906: 4618 mov r0, r3 - 803c908: f7d2 fd4a bl 800f3a0 + 803c86e: 68fb ldr r3, [r7, #12] + 803c870: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c872: 4618 mov r0, r3 + 803c874: f7d2 fd4a bl 800f30c dropdown->list = NULL; - 803c90c: 68fb ldr r3, [r7, #12] - 803c90e: 2200 movs r2, #0 - 803c910: 625a str r2, [r3, #36] ; 0x24 + 803c878: 68fb ldr r3, [r7, #12] + 803c87a: 2200 movs r2, #0 + 803c87c: 625a str r2, [r3, #36] ; 0x24 } if(!dropdown->static_txt) { - 803c912: 68fb ldr r3, [r7, #12] - 803c914: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 803c918: f003 0310 and.w r3, r3, #16 - 803c91c: b2db uxtb r3, r3 - 803c91e: 2b00 cmp r3, #0 - 803c920: d107 bne.n 803c932 + 803c87e: 68fb ldr r3, [r7, #12] + 803c880: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 803c884: f003 0310 and.w r3, r3, #16 + 803c888: b2db uxtb r3, r3 + 803c88a: 2b00 cmp r3, #0 + 803c88c: d107 bne.n 803c89e lv_mem_free(dropdown->options); - 803c922: 68fb ldr r3, [r7, #12] - 803c924: 6b1b ldr r3, [r3, #48] ; 0x30 - 803c926: 4618 mov r0, r3 - 803c928: f7f5 ffd8 bl 80328dc + 803c88e: 68fb ldr r3, [r7, #12] + 803c890: 6b1b ldr r3, [r3, #48] ; 0x30 + 803c892: 4618 mov r0, r3 + 803c894: f7f5 ffd8 bl 8032848 dropdown->options = NULL; - 803c92c: 68fb ldr r3, [r7, #12] - 803c92e: 2200 movs r2, #0 - 803c930: 631a str r2, [r3, #48] ; 0x30 + 803c898: 68fb ldr r3, [r7, #12] + 803c89a: 2200 movs r2, #0 + 803c89c: 631a str r2, [r3, #48] ; 0x30 } } - 803c932: bf00 nop - 803c934: 3710 adds r7, #16 - 803c936: 46bd mov sp, r7 - 803c938: bd80 pop {r7, pc} + 803c89e: bf00 nop + 803c8a0: 3710 adds r7, #16 + 803c8a2: 46bd mov sp, r7 + 803c8a4: bd80 pop {r7, pc} -0803c93a : +0803c8a6 : static void lv_dropdownlist_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 803c93a: b580 push {r7, lr} - 803c93c: b082 sub sp, #8 - 803c93e: af00 add r7, sp, #0 - 803c940: 6078 str r0, [r7, #4] - 803c942: 6039 str r1, [r7, #0] + 803c8a6: b580 push {r7, lr} + 803c8a8: b082 sub sp, #8 + 803c8aa: af00 add r7, sp, #0 + 803c8ac: 6078 str r0, [r7, #4] + 803c8ae: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS); - 803c944: f44f 6180 mov.w r1, #1024 ; 0x400 - 803c948: 6838 ldr r0, [r7, #0] - 803c94a: f7c9 fe89 bl 8006660 + 803c8b0: f44f 6180 mov.w r1, #1024 ; 0x400 + 803c8b4: 6838 ldr r0, [r7, #0] + 803c8b6: f7c9 fe9d bl 80065f4 lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICK_FOCUSABLE); - 803c94e: 2104 movs r1, #4 - 803c950: 6838 ldr r0, [r7, #0] - 803c952: f7c9 fe85 bl 8006660 + 803c8ba: 2104 movs r1, #4 + 803c8bc: 6838 ldr r0, [r7, #0] + 803c8be: f7c9 fe99 bl 80065f4 lv_obj_add_flag(obj, LV_OBJ_FLAG_IGNORE_LAYOUT); - 803c956: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803c95a: 6838 ldr r0, [r7, #0] - 803c95c: f7c9 fe2c bl 80065b8 + 803c8c2: f44f 3100 mov.w r1, #131072 ; 0x20000 + 803c8c6: 6838 ldr r0, [r7, #0] + 803c8c8: f7c9 fe40 bl 800654c lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN); - 803c960: 2101 movs r1, #1 - 803c962: 6838 ldr r0, [r7, #0] - 803c964: f7c9 fe28 bl 80065b8 + 803c8cc: 2101 movs r1, #1 + 803c8ce: 6838 ldr r0, [r7, #0] + 803c8d0: f7c9 fe3c bl 800654c lv_label_create(obj); - 803c968: 6838 ldr r0, [r7, #0] - 803c96a: f002 f9b7 bl 803ecdc + 803c8d4: 6838 ldr r0, [r7, #0] + 803c8d6: f002 f9b7 bl 803ec48 LV_TRACE_OBJ_CREATE("finished"); } - 803c96e: bf00 nop - 803c970: 3708 adds r7, #8 - 803c972: 46bd mov sp, r7 - 803c974: bd80 pop {r7, pc} + 803c8da: bf00 nop + 803c8dc: 3708 adds r7, #8 + 803c8de: 46bd mov sp, r7 + 803c8e0: bd80 pop {r7, pc} -0803c976 : +0803c8e2 : static void lv_dropdownlist_destructor(const lv_obj_class_t * class_p, lv_obj_t * list_obj) { - 803c976: b480 push {r7} - 803c978: b087 sub sp, #28 - 803c97a: af00 add r7, sp, #0 - 803c97c: 6078 str r0, [r7, #4] - 803c97e: 6039 str r1, [r7, #0] + 803c8e2: b480 push {r7} + 803c8e4: b087 sub sp, #28 + 803c8e6: af00 add r7, sp, #0 + 803c8e8: 6078 str r0, [r7, #4] + 803c8ea: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_dropdown_list_t * list = (lv_dropdown_list_t *)list_obj; - 803c980: 683b ldr r3, [r7, #0] - 803c982: 617b str r3, [r7, #20] + 803c8ec: 683b ldr r3, [r7, #0] + 803c8ee: 617b str r3, [r7, #20] lv_obj_t * dropdown_obj = list->dropdown; - 803c984: 697b ldr r3, [r7, #20] - 803c986: 6a5b ldr r3, [r3, #36] ; 0x24 - 803c988: 613b str r3, [r7, #16] + 803c8f0: 697b ldr r3, [r7, #20] + 803c8f2: 6a5b ldr r3, [r3, #36] ; 0x24 + 803c8f4: 613b str r3, [r7, #16] lv_dropdown_t * dropdown = (lv_dropdown_t *)dropdown_obj; - 803c98a: 693b ldr r3, [r7, #16] - 803c98c: 60fb str r3, [r7, #12] + 803c8f6: 693b ldr r3, [r7, #16] + 803c8f8: 60fb str r3, [r7, #12] dropdown->list = NULL; - 803c98e: 68fb ldr r3, [r7, #12] - 803c990: 2200 movs r2, #0 - 803c992: 625a str r2, [r3, #36] ; 0x24 + 803c8fa: 68fb ldr r3, [r7, #12] + 803c8fc: 2200 movs r2, #0 + 803c8fe: 625a str r2, [r3, #36] ; 0x24 } - 803c994: bf00 nop - 803c996: 371c adds r7, #28 - 803c998: 46bd mov sp, r7 - 803c99a: bc80 pop {r7} - 803c99c: 4770 bx lr + 803c900: bf00 nop + 803c902: 371c adds r7, #28 + 803c904: 46bd mov sp, r7 + 803c906: bc80 pop {r7} + 803c908: 4770 bx lr ... -0803c9a0 : +0803c90c : static void lv_dropdown_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 803c9a0: b580 push {r7, lr} - 803c9a2: b08c sub sp, #48 ; 0x30 - 803c9a4: af00 add r7, sp, #0 - 803c9a6: 6078 str r0, [r7, #4] - 803c9a8: 6039 str r1, [r7, #0] + 803c90c: b580 push {r7, lr} + 803c90e: b08c sub sp, #48 ; 0x30 + 803c910: af00 add r7, sp, #0 + 803c912: 6078 str r0, [r7, #4] + 803c914: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res; /*Call the ancestor's event handler*/ res = lv_obj_event_base(MY_CLASS, e); - 803c9aa: 6839 ldr r1, [r7, #0] - 803c9ac: 4881 ldr r0, [pc, #516] ; (803cbb4 ) - 803c9ae: f7c5 fda9 bl 8002504 - 803c9b2: 4603 mov r3, r0 - 803c9b4: f887 302f strb.w r3, [r7, #47] ; 0x2f + 803c916: 6839 ldr r1, [r7, #0] + 803c918: 4881 ldr r0, [pc, #516] ; (803cb20 ) + 803c91a: f7c5 fdbd bl 8002498 + 803c91e: 4603 mov r3, r0 + 803c920: f887 302f strb.w r3, [r7, #47] ; 0x2f if(res != LV_RES_OK) return; - 803c9b8: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 803c9bc: 2b01 cmp r3, #1 - 803c9be: f040 80f0 bne.w 803cba2 + 803c924: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 803c928: 2b01 cmp r3, #1 + 803c92a: f040 80f0 bne.w 803cb0e lv_event_code_t code = lv_event_get_code(e); - 803c9c2: 6838 ldr r0, [r7, #0] - 803c9c4: f7c5 fdf2 bl 80025ac - 803c9c8: 4603 mov r3, r0 - 803c9ca: f887 302e strb.w r3, [r7, #46] ; 0x2e + 803c92e: 6838 ldr r0, [r7, #0] + 803c930: f7c5 fe06 bl 8002540 + 803c934: 4603 mov r3, r0 + 803c936: f887 302e strb.w r3, [r7, #46] ; 0x2e lv_obj_t * obj = lv_event_get_target(e); - 803c9ce: 6838 ldr r0, [r7, #0] - 803c9d0: f7c5 fdd6 bl 8002580 - 803c9d4: 62b8 str r0, [r7, #40] ; 0x28 + 803c93a: 6838 ldr r0, [r7, #0] + 803c93c: f7c5 fdea bl 8002514 + 803c940: 62b8 str r0, [r7, #40] ; 0x28 lv_dropdown_t * dropdown = (lv_dropdown_t *)obj; - 803c9d6: 6abb ldr r3, [r7, #40] ; 0x28 - 803c9d8: 627b str r3, [r7, #36] ; 0x24 + 803c942: 6abb ldr r3, [r7, #40] ; 0x28 + 803c944: 627b str r3, [r7, #36] ; 0x24 if(code == LV_EVENT_FOCUSED) { - 803c9da: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 803c9de: 2b0e cmp r3, #14 - 803c9e0: d123 bne.n 803ca2a + 803c946: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 803c94a: 2b0e cmp r3, #14 + 803c94c: d123 bne.n 803c996 lv_group_t * g = lv_obj_get_group(obj); - 803c9e2: 6ab8 ldr r0, [r7, #40] ; 0x28 - 803c9e4: f7c9 ff14 bl 8006810 - 803c9e8: 6138 str r0, [r7, #16] + 803c94e: 6ab8 ldr r0, [r7, #40] ; 0x28 + 803c950: f7c9 ff28 bl 80067a4 + 803c954: 6138 str r0, [r7, #16] bool editing = lv_group_get_editing(g); - 803c9ea: 6938 ldr r0, [r7, #16] - 803c9ec: f7c6 fa83 bl 8002ef6 - 803c9f0: 4603 mov r3, r0 - 803c9f2: 73fb strb r3, [r7, #15] + 803c956: 6938 ldr r0, [r7, #16] + 803c958: f7c6 fa97 bl 8002e8a + 803c95c: 4603 mov r3, r0 + 803c95e: 73fb strb r3, [r7, #15] lv_indev_type_t indev_type = lv_indev_get_type(lv_indev_get_act()); - 803c9f4: f7c6 fc90 bl 8003318 - 803c9f8: 4603 mov r3, r0 - 803c9fa: 4618 mov r0, r3 - 803c9fc: f7c6 fc96 bl 800332c - 803ca00: 4603 mov r3, r0 - 803ca02: 73bb strb r3, [r7, #14] + 803c960: f7c6 fca4 bl 80032ac + 803c964: 4603 mov r3, r0 + 803c966: 4618 mov r0, r3 + 803c968: f7c6 fcaa bl 80032c0 + 803c96c: 4603 mov r3, r0 + 803c96e: 73bb strb r3, [r7, #14] /*Encoders need special handling*/ if(indev_type == LV_INDEV_TYPE_ENCODER) { - 803ca04: 7bbb ldrb r3, [r7, #14] - 803ca06: 2b04 cmp r3, #4 - 803ca08: f040 80d0 bne.w 803cbac + 803c970: 7bbb ldrb r3, [r7, #14] + 803c972: 2b04 cmp r3, #4 + 803c974: f040 80d0 bne.w 803cb18 /*Open the list if editing*/ if(editing) { - 803ca0c: 7bfb ldrb r3, [r7, #15] - 803ca0e: 2b00 cmp r3, #0 - 803ca10: d003 beq.n 803ca1a + 803c978: 7bfb ldrb r3, [r7, #15] + 803c97a: 2b00 cmp r3, #0 + 803c97c: d003 beq.n 803c986 lv_dropdown_open(obj); - 803ca12: 6ab8 ldr r0, [r7, #40] ; 0x28 - 803ca14: f7ff fcfd bl 803c412 - 803ca18: e0c8 b.n 803cbac + 803c97e: 6ab8 ldr r0, [r7, #40] ; 0x28 + 803c980: f7ff fcfd bl 803c37e + 803c984: e0c8 b.n 803cb18 } /*Close the list if navigating*/ else { dropdown->sel_opt_id = dropdown->sel_opt_id_orig; - 803ca1a: 6a7b ldr r3, [r7, #36] ; 0x24 - 803ca1c: 8f1a ldrh r2, [r3, #56] ; 0x38 - 803ca1e: 6a7b ldr r3, [r7, #36] ; 0x24 - 803ca20: 86da strh r2, [r3, #54] ; 0x36 + 803c986: 6a7b ldr r3, [r7, #36] ; 0x24 + 803c988: 8f1a ldrh r2, [r3, #56] ; 0x38 + 803c98a: 6a7b ldr r3, [r7, #36] ; 0x24 + 803c98c: 86da strh r2, [r3, #54] ; 0x36 lv_dropdown_close(obj); - 803ca22: 6ab8 ldr r0, [r7, #40] ; 0x28 - 803ca24: f7ff fec4 bl 803c7b0 - 803ca28: e0c0 b.n 803cbac + 803c98e: 6ab8 ldr r0, [r7, #40] ; 0x28 + 803c990: f7ff fec4 bl 803c71c + 803c994: e0c0 b.n 803cb18 } } } else if(code == LV_EVENT_DEFOCUSED || code == LV_EVENT_LEAVE) { - 803ca2a: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 803ca2e: 2b0f cmp r3, #15 - 803ca30: d003 beq.n 803ca3a - 803ca32: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 803ca36: 2b10 cmp r3, #16 - 803ca38: d103 bne.n 803ca42 + 803c996: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 803c99a: 2b0f cmp r3, #15 + 803c99c: d003 beq.n 803c9a6 + 803c99e: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 803c9a2: 2b10 cmp r3, #16 + 803c9a4: d103 bne.n 803c9ae lv_dropdown_close(obj); - 803ca3a: 6ab8 ldr r0, [r7, #40] ; 0x28 - 803ca3c: f7ff feb8 bl 803c7b0 - 803ca40: e0b4 b.n 803cbac + 803c9a6: 6ab8 ldr r0, [r7, #40] ; 0x28 + 803c9a8: f7ff feb8 bl 803c71c + 803c9ac: e0b4 b.n 803cb18 } else if(code == LV_EVENT_RELEASED) { - 803ca42: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 803ca46: 2b08 cmp r3, #8 - 803ca48: d109 bne.n 803ca5e + 803c9ae: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 803c9b2: 2b08 cmp r3, #8 + 803c9b4: d109 bne.n 803c9ca res = btn_release_handler(obj); - 803ca4a: 6ab8 ldr r0, [r7, #40] ; 0x28 - 803ca4c: f000 fd1b bl 803d486 - 803ca50: 4603 mov r3, r0 - 803ca52: f887 302f strb.w r3, [r7, #47] ; 0x2f + 803c9b6: 6ab8 ldr r0, [r7, #40] ; 0x28 + 803c9b8: f000 fd1b bl 803d3f2 + 803c9bc: 4603 mov r3, r0 + 803c9be: f887 302f strb.w r3, [r7, #47] ; 0x2f if(res != LV_RES_OK) return; - 803ca56: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 803ca5a: 2b01 cmp r3, #1 - 803ca5c: e0a6 b.n 803cbac + 803c9c2: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 803c9c6: 2b01 cmp r3, #1 + 803c9c8: e0a6 b.n 803cb18 } else if(code == LV_EVENT_STYLE_CHANGED) { - 803ca5e: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 803ca62: 2b2a cmp r3, #42 ; 0x2a - 803ca64: d103 bne.n 803ca6e + 803c9ca: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 803c9ce: 2b2a cmp r3, #42 ; 0x2a + 803c9d0: d103 bne.n 803c9da lv_obj_refresh_self_size(obj); - 803ca66: 6ab8 ldr r0, [r7, #40] ; 0x28 - 803ca68: f7cd fc6b bl 800a342 - 803ca6c: e09e b.n 803cbac + 803c9d2: 6ab8 ldr r0, [r7, #40] ; 0x28 + 803c9d4: f7cd fc7f bl 800a2d6 + 803c9d8: e09e b.n 803cb18 } else if(code == LV_EVENT_SIZE_CHANGED) { - 803ca6e: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 803ca72: 2b29 cmp r3, #41 ; 0x29 - 803ca74: d103 bne.n 803ca7e + 803c9da: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 803c9de: 2b29 cmp r3, #41 ; 0x29 + 803c9e0: d103 bne.n 803c9ea lv_obj_refresh_self_size(obj); - 803ca76: 6ab8 ldr r0, [r7, #40] ; 0x28 - 803ca78: f7cd fc63 bl 800a342 - 803ca7c: e096 b.n 803cbac + 803c9e2: 6ab8 ldr r0, [r7, #40] ; 0x28 + 803c9e4: f7cd fc77 bl 800a2d6 + 803c9e8: e096 b.n 803cb18 } else if(code == LV_EVENT_GET_SELF_SIZE) { - 803ca7e: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 803ca82: 2b2c cmp r3, #44 ; 0x2c - 803ca84: d110 bne.n 803caa8 + 803c9ea: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 803c9ee: 2b2c cmp r3, #44 ; 0x2c + 803c9f0: d110 bne.n 803ca14 lv_point_t * p = lv_event_get_param(e); - 803ca86: 6838 ldr r0, [r7, #0] - 803ca88: f7c5 fd9e bl 80025c8 - 803ca8c: 61b8 str r0, [r7, #24] + 803c9f2: 6838 ldr r0, [r7, #0] + 803c9f4: f7c5 fdb2 bl 800255c + 803c9f8: 61b8 str r0, [r7, #24] const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 803ca8e: 2100 movs r1, #0 - 803ca90: 6ab8 ldr r0, [r7, #40] ; 0x28 - 803ca92: f7ff fb05 bl 803c0a0 - 803ca96: 6178 str r0, [r7, #20] + 803c9fa: 2100 movs r1, #0 + 803c9fc: 6ab8 ldr r0, [r7, #40] ; 0x28 + 803c9fe: f7ff fb05 bl 803c00c + 803ca02: 6178 str r0, [r7, #20] p->y = lv_font_get_line_height(font); - 803ca98: 6978 ldr r0, [r7, #20] - 803ca9a: f7ff fa83 bl 803bfa4 - 803ca9e: 4603 mov r3, r0 - 803caa0: 461a mov r2, r3 - 803caa2: 69bb ldr r3, [r7, #24] - 803caa4: 805a strh r2, [r3, #2] - 803caa6: e081 b.n 803cbac + 803ca04: 6978 ldr r0, [r7, #20] + 803ca06: f7ff fa83 bl 803bf10 + 803ca0a: 4603 mov r3, r0 + 803ca0c: 461a mov r2, r3 + 803ca0e: 69bb ldr r3, [r7, #24] + 803ca10: 805a strh r2, [r3, #2] + 803ca12: e081 b.n 803cb18 } else if(code == LV_EVENT_KEY) { - 803caa8: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 803caac: 2b0d cmp r3, #13 - 803caae: d170 bne.n 803cb92 + 803ca14: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 803ca18: 2b0d cmp r3, #13 + 803ca1a: d170 bne.n 803cafe char c = *((char *)lv_event_get_param(e)); - 803cab0: 6838 ldr r0, [r7, #0] - 803cab2: f7c5 fd89 bl 80025c8 - 803cab6: 4603 mov r3, r0 - 803cab8: 781b ldrb r3, [r3, #0] - 803caba: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 803ca1c: 6838 ldr r0, [r7, #0] + 803ca1e: f7c5 fd9d bl 800255c + 803ca22: 4603 mov r3, r0 + 803ca24: 781b ldrb r3, [r3, #0] + 803ca26: f887 3023 strb.w r3, [r7, #35] ; 0x23 if(c == LV_KEY_RIGHT || c == LV_KEY_DOWN) { - 803cabe: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 803cac2: 2b13 cmp r3, #19 - 803cac4: d003 beq.n 803cace - 803cac6: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 803caca: 2b12 cmp r3, #18 - 803cacc: d11d bne.n 803cb0a + 803ca2a: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 803ca2e: 2b13 cmp r3, #19 + 803ca30: d003 beq.n 803ca3a + 803ca32: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 803ca36: 2b12 cmp r3, #18 + 803ca38: d11d bne.n 803ca76 if(!lv_dropdown_is_open(obj)) { - 803cace: 6ab8 ldr r0, [r7, #40] ; 0x28 - 803cad0: f7ff fe8b bl 803c7ea - 803cad4: 4603 mov r3, r0 - 803cad6: f083 0301 eor.w r3, r3, #1 - 803cada: b2db uxtb r3, r3 - 803cadc: 2b00 cmp r3, #0 - 803cade: d003 beq.n 803cae8 + 803ca3a: 6ab8 ldr r0, [r7, #40] ; 0x28 + 803ca3c: f7ff fe8b bl 803c756 + 803ca40: 4603 mov r3, r0 + 803ca42: f083 0301 eor.w r3, r3, #1 + 803ca46: b2db uxtb r3, r3 + 803ca48: 2b00 cmp r3, #0 + 803ca4a: d003 beq.n 803ca54 lv_dropdown_open(obj); - 803cae0: 6ab8 ldr r0, [r7, #40] ; 0x28 - 803cae2: f7ff fc96 bl 803c412 + 803ca4c: 6ab8 ldr r0, [r7, #40] ; 0x28 + 803ca4e: f7ff fc96 bl 803c37e if(!lv_dropdown_is_open(obj)) { - 803cae6: e05e b.n 803cba6 + 803ca52: e05e b.n 803cb12 } else if(dropdown->sel_opt_id + 1 < dropdown->option_cnt) { - 803cae8: 6a7b ldr r3, [r7, #36] ; 0x24 - 803caea: 8edb ldrh r3, [r3, #54] ; 0x36 - 803caec: 3301 adds r3, #1 - 803caee: 6a7a ldr r2, [r7, #36] ; 0x24 - 803caf0: 8e92 ldrh r2, [r2, #52] ; 0x34 - 803caf2: 4293 cmp r3, r2 - 803caf4: da57 bge.n 803cba6 + 803ca54: 6a7b ldr r3, [r7, #36] ; 0x24 + 803ca56: 8edb ldrh r3, [r3, #54] ; 0x36 + 803ca58: 3301 adds r3, #1 + 803ca5a: 6a7a ldr r2, [r7, #36] ; 0x24 + 803ca5c: 8e92 ldrh r2, [r2, #52] ; 0x34 + 803ca5e: 4293 cmp r3, r2 + 803ca60: da57 bge.n 803cb12 dropdown->sel_opt_id++; - 803caf6: 6a7b ldr r3, [r7, #36] ; 0x24 - 803caf8: 8edb ldrh r3, [r3, #54] ; 0x36 - 803cafa: 3301 adds r3, #1 - 803cafc: b29a uxth r2, r3 - 803cafe: 6a7b ldr r3, [r7, #36] ; 0x24 - 803cb00: 86da strh r2, [r3, #54] ; 0x36 + 803ca62: 6a7b ldr r3, [r7, #36] ; 0x24 + 803ca64: 8edb ldrh r3, [r3, #54] ; 0x36 + 803ca66: 3301 adds r3, #1 + 803ca68: b29a uxth r2, r3 + 803ca6a: 6a7b ldr r3, [r7, #36] ; 0x24 + 803ca6c: 86da strh r2, [r3, #54] ; 0x36 position_to_selected(obj); - 803cb02: 6ab8 ldr r0, [r7, #40] ; 0x28 - 803cb04: f000 fdfe bl 803d704 + 803ca6e: 6ab8 ldr r0, [r7, #40] ; 0x28 + 803ca70: f000 fdfe bl 803d670 if(!lv_dropdown_is_open(obj)) { - 803cb08: e04d b.n 803cba6 + 803ca74: e04d b.n 803cb12 } } else if(c == LV_KEY_LEFT || c == LV_KEY_UP) { - 803cb0a: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 803cb0e: 2b14 cmp r3, #20 - 803cb10: d003 beq.n 803cb1a - 803cb12: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 803cb16: 2b11 cmp r3, #17 - 803cb18: d11a bne.n 803cb50 + 803ca76: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 803ca7a: 2b14 cmp r3, #20 + 803ca7c: d003 beq.n 803ca86 + 803ca7e: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 803ca82: 2b11 cmp r3, #17 + 803ca84: d11a bne.n 803cabc if(!lv_dropdown_is_open(obj)) { - 803cb1a: 6ab8 ldr r0, [r7, #40] ; 0x28 - 803cb1c: f7ff fe65 bl 803c7ea - 803cb20: 4603 mov r3, r0 - 803cb22: f083 0301 eor.w r3, r3, #1 - 803cb26: b2db uxtb r3, r3 - 803cb28: 2b00 cmp r3, #0 - 803cb2a: d003 beq.n 803cb34 + 803ca86: 6ab8 ldr r0, [r7, #40] ; 0x28 + 803ca88: f7ff fe65 bl 803c756 + 803ca8c: 4603 mov r3, r0 + 803ca8e: f083 0301 eor.w r3, r3, #1 + 803ca92: b2db uxtb r3, r3 + 803ca94: 2b00 cmp r3, #0 + 803ca96: d003 beq.n 803caa0 lv_dropdown_open(obj); - 803cb2c: 6ab8 ldr r0, [r7, #40] ; 0x28 - 803cb2e: f7ff fc70 bl 803c412 + 803ca98: 6ab8 ldr r0, [r7, #40] ; 0x28 + 803ca9a: f7ff fc70 bl 803c37e if(!lv_dropdown_is_open(obj)) { - 803cb32: e03a b.n 803cbaa + 803ca9e: e03a b.n 803cb16 } else if(dropdown->sel_opt_id > 0) { - 803cb34: 6a7b ldr r3, [r7, #36] ; 0x24 - 803cb36: 8edb ldrh r3, [r3, #54] ; 0x36 - 803cb38: 2b00 cmp r3, #0 - 803cb3a: d036 beq.n 803cbaa + 803caa0: 6a7b ldr r3, [r7, #36] ; 0x24 + 803caa2: 8edb ldrh r3, [r3, #54] ; 0x36 + 803caa4: 2b00 cmp r3, #0 + 803caa6: d036 beq.n 803cb16 dropdown->sel_opt_id--; - 803cb3c: 6a7b ldr r3, [r7, #36] ; 0x24 - 803cb3e: 8edb ldrh r3, [r3, #54] ; 0x36 - 803cb40: 3b01 subs r3, #1 - 803cb42: b29a uxth r2, r3 - 803cb44: 6a7b ldr r3, [r7, #36] ; 0x24 - 803cb46: 86da strh r2, [r3, #54] ; 0x36 + 803caa8: 6a7b ldr r3, [r7, #36] ; 0x24 + 803caaa: 8edb ldrh r3, [r3, #54] ; 0x36 + 803caac: 3b01 subs r3, #1 + 803caae: b29a uxth r2, r3 + 803cab0: 6a7b ldr r3, [r7, #36] ; 0x24 + 803cab2: 86da strh r2, [r3, #54] ; 0x36 position_to_selected(obj); - 803cb48: 6ab8 ldr r0, [r7, #40] ; 0x28 - 803cb4a: f000 fddb bl 803d704 + 803cab4: 6ab8 ldr r0, [r7, #40] ; 0x28 + 803cab6: f000 fddb bl 803d670 if(!lv_dropdown_is_open(obj)) { - 803cb4e: e02c b.n 803cbaa + 803caba: e02c b.n 803cb16 } } else if(c == LV_KEY_ESC) { - 803cb50: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 803cb54: 2b1b cmp r3, #27 - 803cb56: d107 bne.n 803cb68 + 803cabc: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 803cac0: 2b1b cmp r3, #27 + 803cac2: d107 bne.n 803cad4 dropdown->sel_opt_id = dropdown->sel_opt_id_orig; - 803cb58: 6a7b ldr r3, [r7, #36] ; 0x24 - 803cb5a: 8f1a ldrh r2, [r3, #56] ; 0x38 - 803cb5c: 6a7b ldr r3, [r7, #36] ; 0x24 - 803cb5e: 86da strh r2, [r3, #54] ; 0x36 + 803cac4: 6a7b ldr r3, [r7, #36] ; 0x24 + 803cac6: 8f1a ldrh r2, [r3, #56] ; 0x38 + 803cac8: 6a7b ldr r3, [r7, #36] ; 0x24 + 803caca: 86da strh r2, [r3, #54] ; 0x36 lv_dropdown_close(obj); - 803cb60: 6ab8 ldr r0, [r7, #40] ; 0x28 - 803cb62: f7ff fe25 bl 803c7b0 - 803cb66: e021 b.n 803cbac + 803cacc: 6ab8 ldr r0, [r7, #40] ; 0x28 + 803cace: f7ff fe25 bl 803c71c + 803cad2: e021 b.n 803cb18 } else if(c == LV_KEY_ENTER) { - 803cb68: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 803cb6c: 2b0a cmp r3, #10 - 803cb6e: d11d bne.n 803cbac + 803cad4: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 803cad8: 2b0a cmp r3, #10 + 803cada: d11d bne.n 803cb18 /* Handle the ENTER key only if it was send by an other object. * Do no process it if ENTER is sent by the dropdown because it's handled in LV_EVENT_RELEASED */ lv_obj_t * indev_obj = lv_indev_get_obj_act(); - 803cb70: f7c6 fd6a bl 8003648 - 803cb74: 61f8 str r0, [r7, #28] + 803cadc: f7c6 fd7e bl 80035dc + 803cae0: 61f8 str r0, [r7, #28] if(indev_obj != obj) { - 803cb76: 69fa ldr r2, [r7, #28] - 803cb78: 6abb ldr r3, [r7, #40] ; 0x28 - 803cb7a: 429a cmp r2, r3 - 803cb7c: d016 beq.n 803cbac + 803cae2: 69fa ldr r2, [r7, #28] + 803cae4: 6abb ldr r3, [r7, #40] ; 0x28 + 803cae6: 429a cmp r2, r3 + 803cae8: d016 beq.n 803cb18 res = btn_release_handler(obj); - 803cb7e: 6ab8 ldr r0, [r7, #40] ; 0x28 - 803cb80: f000 fc81 bl 803d486 - 803cb84: 4603 mov r3, r0 - 803cb86: f887 302f strb.w r3, [r7, #47] ; 0x2f + 803caea: 6ab8 ldr r0, [r7, #40] ; 0x28 + 803caec: f000 fc81 bl 803d3f2 + 803caf0: 4603 mov r3, r0 + 803caf2: f887 302f strb.w r3, [r7, #47] ; 0x2f if(res != LV_RES_OK) return; - 803cb8a: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 803cb8e: 2b01 cmp r3, #1 - 803cb90: e00c b.n 803cbac + 803caf6: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 803cafa: 2b01 cmp r3, #1 + 803cafc: e00c b.n 803cb18 } } } else if(code == LV_EVENT_DRAW_MAIN) { - 803cb92: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 803cb96: 2b15 cmp r3, #21 - 803cb98: d108 bne.n 803cbac + 803cafe: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 803cb02: 2b15 cmp r3, #21 + 803cb04: d108 bne.n 803cb18 draw_main(e); - 803cb9a: 6838 ldr r0, [r7, #0] - 803cb9c: f000 f862 bl 803cc64 - 803cba0: e004 b.n 803cbac + 803cb06: 6838 ldr r0, [r7, #0] + 803cb08: f000 f862 bl 803cbd0 + 803cb0c: e004 b.n 803cb18 if(res != LV_RES_OK) return; - 803cba2: bf00 nop - 803cba4: e002 b.n 803cbac + 803cb0e: bf00 nop + 803cb10: e002 b.n 803cb18 if(!lv_dropdown_is_open(obj)) { - 803cba6: bf00 nop - 803cba8: e000 b.n 803cbac + 803cb12: bf00 nop + 803cb14: e000 b.n 803cb18 if(!lv_dropdown_is_open(obj)) { - 803cbaa: bf00 nop + 803cb16: bf00 nop } } - 803cbac: 3730 adds r7, #48 ; 0x30 - 803cbae: 46bd mov sp, r7 - 803cbb0: bd80 pop {r7, pc} - 803cbb2: bf00 nop - 803cbb4: 08070a38 .word 0x08070a38 + 803cb18: 3730 adds r7, #48 ; 0x30 + 803cb1a: 46bd mov sp, r7 + 803cb1c: bd80 pop {r7, pc} + 803cb1e: bf00 nop + 803cb20: 08070990 .word 0x08070990 -0803cbb8 : +0803cb24 : static void lv_dropdown_list_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 803cbb8: b580 push {r7, lr} - 803cbba: b086 sub sp, #24 - 803cbbc: af00 add r7, sp, #0 - 803cbbe: 6078 str r0, [r7, #4] - 803cbc0: 6039 str r1, [r7, #0] + 803cb24: b580 push {r7, lr} + 803cb26: b086 sub sp, #24 + 803cb28: af00 add r7, sp, #0 + 803cb2a: 6078 str r0, [r7, #4] + 803cb2c: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res; /*Call the ancestor's event handler*/ lv_event_code_t code = lv_event_get_code(e); - 803cbc2: 6838 ldr r0, [r7, #0] - 803cbc4: f7c5 fcf2 bl 80025ac - 803cbc8: 4603 mov r3, r0 - 803cbca: 75fb strb r3, [r7, #23] + 803cb2e: 6838 ldr r0, [r7, #0] + 803cb30: f7c5 fd06 bl 8002540 + 803cb34: 4603 mov r3, r0 + 803cb36: 75fb strb r3, [r7, #23] if(code != LV_EVENT_DRAW_POST) { - 803cbcc: 7dfb ldrb r3, [r7, #23] - 803cbce: 2b18 cmp r3, #24 - 803cbd0: d008 beq.n 803cbe4 + 803cb38: 7dfb ldrb r3, [r7, #23] + 803cb3a: 2b18 cmp r3, #24 + 803cb3c: d008 beq.n 803cb50 res = lv_obj_event_base(MY_CLASS_LIST, e); - 803cbd2: 6839 ldr r1, [r7, #0] - 803cbd4: 4822 ldr r0, [pc, #136] ; (803cc60 ) - 803cbd6: f7c5 fc95 bl 8002504 - 803cbda: 4603 mov r3, r0 - 803cbdc: 75bb strb r3, [r7, #22] + 803cb3e: 6839 ldr r1, [r7, #0] + 803cb40: 4822 ldr r0, [pc, #136] ; (803cbcc ) + 803cb42: f7c5 fca9 bl 8002498 + 803cb46: 4603 mov r3, r0 + 803cb48: 75bb strb r3, [r7, #22] if(res != LV_RES_OK) return; - 803cbde: 7dbb ldrb r3, [r7, #22] - 803cbe0: 2b01 cmp r3, #1 - 803cbe2: d139 bne.n 803cc58 + 803cb4a: 7dbb ldrb r3, [r7, #22] + 803cb4c: 2b01 cmp r3, #1 + 803cb4e: d139 bne.n 803cbc4 } lv_obj_t * list = lv_event_get_target(e); - 803cbe4: 6838 ldr r0, [r7, #0] - 803cbe6: f7c5 fccb bl 8002580 - 803cbea: 6138 str r0, [r7, #16] + 803cb50: 6838 ldr r0, [r7, #0] + 803cb52: f7c5 fcdf bl 8002514 + 803cb56: 6138 str r0, [r7, #16] lv_obj_t * dropdown_obj = ((lv_dropdown_list_t *)list)->dropdown; - 803cbec: 693b ldr r3, [r7, #16] - 803cbee: 6a5b ldr r3, [r3, #36] ; 0x24 - 803cbf0: 60fb str r3, [r7, #12] + 803cb58: 693b ldr r3, [r7, #16] + 803cb5a: 6a5b ldr r3, [r3, #36] ; 0x24 + 803cb5c: 60fb str r3, [r7, #12] lv_dropdown_t * dropdown = (lv_dropdown_t *)dropdown_obj; - 803cbf2: 68fb ldr r3, [r7, #12] - 803cbf4: 60bb str r3, [r7, #8] + 803cb5e: 68fb ldr r3, [r7, #12] + 803cb60: 60bb str r3, [r7, #8] if(code == LV_EVENT_RELEASED) { - 803cbf6: 7dfb ldrb r3, [r7, #23] - 803cbf8: 2b08 cmp r3, #8 - 803cbfa: d10c bne.n 803cc16 + 803cb62: 7dfb ldrb r3, [r7, #23] + 803cb64: 2b08 cmp r3, #8 + 803cb66: d10c bne.n 803cb82 if(lv_indev_get_scroll_obj(lv_indev_get_act()) == NULL) { - 803cbfc: f7c6 fb8c bl 8003318 - 803cc00: 4603 mov r3, r0 - 803cc02: 4618 mov r0, r3 - 803cc04: f7c6 fcca bl 800359c - 803cc08: 4603 mov r3, r0 - 803cc0a: 2b00 cmp r3, #0 - 803cc0c: d125 bne.n 803cc5a + 803cb68: f7c6 fba0 bl 80032ac + 803cb6c: 4603 mov r3, r0 + 803cb6e: 4618 mov r0, r3 + 803cb70: f7c6 fcde bl 8003530 + 803cb74: 4603 mov r3, r0 + 803cb76: 2b00 cmp r3, #0 + 803cb78: d125 bne.n 803cbc6 list_release_handler(list); - 803cc0e: 6938 ldr r0, [r7, #16] - 803cc10: f000 fc90 bl 803d534 - 803cc14: e021 b.n 803cc5a + 803cb7a: 6938 ldr r0, [r7, #16] + 803cb7c: f000 fc90 bl 803d4a0 + 803cb80: e021 b.n 803cbc6 } } else if(code == LV_EVENT_PRESSED) { - 803cc16: 7dfb ldrb r3, [r7, #23] - 803cc18: 2b01 cmp r3, #1 - 803cc1a: d103 bne.n 803cc24 + 803cb82: 7dfb ldrb r3, [r7, #23] + 803cb84: 2b01 cmp r3, #1 + 803cb86: d103 bne.n 803cb90 list_press_handler(list); - 803cc1c: 6938 ldr r0, [r7, #16] - 803cc1e: f000 fcef bl 803d600 - 803cc22: e01a b.n 803cc5a + 803cb88: 6938 ldr r0, [r7, #16] + 803cb8a: f000 fcef bl 803d56c + 803cb8e: e01a b.n 803cbc6 } else if(code == LV_EVENT_SCROLL_BEGIN) { - 803cc24: 7dfb ldrb r3, [r7, #23] - 803cc26: 2b09 cmp r3, #9 - 803cc28: d107 bne.n 803cc3a + 803cb90: 7dfb ldrb r3, [r7, #23] + 803cb92: 2b09 cmp r3, #9 + 803cb94: d107 bne.n 803cba6 dropdown->pr_opt_id = LV_DROPDOWN_PR_NONE; - 803cc2a: 68bb ldr r3, [r7, #8] - 803cc2c: f64f 72ff movw r2, #65535 ; 0xffff - 803cc30: 875a strh r2, [r3, #58] ; 0x3a + 803cb96: 68bb ldr r3, [r7, #8] + 803cb98: f64f 72ff movw r2, #65535 ; 0xffff + 803cb9c: 875a strh r2, [r3, #58] ; 0x3a lv_obj_invalidate(list); - 803cc32: 6938 ldr r0, [r7, #16] - 803cc34: f7cd ff3d bl 800aab2 - 803cc38: e00f b.n 803cc5a + 803cb9e: 6938 ldr r0, [r7, #16] + 803cba0: f7cd ff51 bl 800aa46 + 803cba4: e00f b.n 803cbc6 } else if(code == LV_EVENT_DRAW_POST) { - 803cc3a: 7dfb ldrb r3, [r7, #23] - 803cc3c: 2b18 cmp r3, #24 - 803cc3e: d10c bne.n 803cc5a + 803cba6: 7dfb ldrb r3, [r7, #23] + 803cba8: 2b18 cmp r3, #24 + 803cbaa: d10c bne.n 803cbc6 draw_list(e); - 803cc40: 6838 ldr r0, [r7, #0] - 803cc42: f000 fa3e bl 803d0c2 + 803cbac: 6838 ldr r0, [r7, #0] + 803cbae: f000 fa3e bl 803d02e res = lv_obj_event_base(MY_CLASS_LIST, e); - 803cc46: 6839 ldr r1, [r7, #0] - 803cc48: 4805 ldr r0, [pc, #20] ; (803cc60 ) - 803cc4a: f7c5 fc5b bl 8002504 - 803cc4e: 4603 mov r3, r0 - 803cc50: 75bb strb r3, [r7, #22] + 803cbb2: 6839 ldr r1, [r7, #0] + 803cbb4: 4805 ldr r0, [pc, #20] ; (803cbcc ) + 803cbb6: f7c5 fc6f bl 8002498 + 803cbba: 4603 mov r3, r0 + 803cbbc: 75bb strb r3, [r7, #22] if(res != LV_RES_OK) return; - 803cc52: 7dbb ldrb r3, [r7, #22] - 803cc54: 2b01 cmp r3, #1 - 803cc56: e000 b.n 803cc5a + 803cbbe: 7dbb ldrb r3, [r7, #22] + 803cbc0: 2b01 cmp r3, #1 + 803cbc2: e000 b.n 803cbc6 if(res != LV_RES_OK) return; - 803cc58: bf00 nop + 803cbc4: bf00 nop } } - 803cc5a: 3718 adds r7, #24 - 803cc5c: 46bd mov sp, r7 - 803cc5e: bd80 pop {r7, pc} - 803cc60: 08070a54 .word 0x08070a54 + 803cbc6: 3718 adds r7, #24 + 803cbc8: 46bd mov sp, r7 + 803cbca: bd80 pop {r7, pc} + 803cbcc: 080709ac .word 0x080709ac -0803cc64 : +0803cbd0 : static void draw_main(lv_event_t * e) { - 803cc64: b5b0 push {r4, r5, r7, lr} - 803cc66: b0ae sub sp, #184 ; 0xb8 - 803cc68: af04 add r7, sp, #16 - 803cc6a: 6078 str r0, [r7, #4] + 803cbd0: b5b0 push {r4, r5, r7, lr} + 803cbd2: b0ae sub sp, #184 ; 0xb8 + 803cbd4: af04 add r7, sp, #16 + 803cbd6: 6078 str r0, [r7, #4] lv_obj_t * obj = lv_event_get_target(e); - 803cc6c: 6878 ldr r0, [r7, #4] - 803cc6e: f7c5 fc87 bl 8002580 - 803cc72: f8c7 0098 str.w r0, [r7, #152] ; 0x98 + 803cbd8: 6878 ldr r0, [r7, #4] + 803cbda: f7c5 fc9b bl 8002514 + 803cbde: f8c7 0098 str.w r0, [r7, #152] ; 0x98 lv_dropdown_t * dropdown = (lv_dropdown_t *)obj; - 803cc76: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 803cc7a: f8c7 3094 str.w r3, [r7, #148] ; 0x94 + 803cbe2: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 803cbe6: f8c7 3094 str.w r3, [r7, #148] ; 0x94 lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 803cc7e: 6878 ldr r0, [r7, #4] - 803cc80: f7c5 fd94 bl 80027ac - 803cc84: f8c7 0090 str.w r0, [r7, #144] ; 0x90 + 803cbea: 6878 ldr r0, [r7, #4] + 803cbec: f7c5 fda8 bl 8002740 + 803cbf0: f8c7 0090 str.w r0, [r7, #144] ; 0x90 lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 803cc88: 2100 movs r1, #0 - 803cc8a: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 803cc8e: f7ff f9f4 bl 803c07a - 803cc92: 4603 mov r3, r0 - 803cc94: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 803cbf4: 2100 movs r1, #0 + 803cbf6: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 803cbfa: f7ff f9f4 bl 803bfe6 + 803cbfe: 4603 mov r3, r0 + 803cc00: f8a7 308e strh.w r3, [r7, #142] ; 0x8e lv_coord_t left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN) + border_width; - 803cc98: 2100 movs r1, #0 - 803cc9a: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 803cc9e: f7ff f9c6 bl 803c02e - 803cca2: 4603 mov r3, r0 - 803cca4: b29a uxth r2, r3 - 803cca6: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 803ccaa: 4413 add r3, r2 - 803ccac: b29b uxth r3, r3 - 803ccae: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 803cc04: 2100 movs r1, #0 + 803cc06: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 803cc0a: f7ff f9c6 bl 803bf9a + 803cc0e: 4603 mov r3, r0 + 803cc10: b29a uxth r2, r3 + 803cc12: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 803cc16: 4413 add r3, r2 + 803cc18: b29b uxth r3, r3 + 803cc1a: f8a7 308c strh.w r3, [r7, #140] ; 0x8c lv_coord_t right = lv_obj_get_style_pad_right(obj, LV_PART_MAIN) + border_width; - 803ccb2: 2100 movs r1, #0 - 803ccb4: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 803ccb8: f7ff f9cc bl 803c054 - 803ccbc: 4603 mov r3, r0 - 803ccbe: b29a uxth r2, r3 - 803ccc0: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 803ccc4: 4413 add r3, r2 - 803ccc6: b29b uxth r3, r3 - 803ccc8: f8a7 308a strh.w r3, [r7, #138] ; 0x8a + 803cc1e: 2100 movs r1, #0 + 803cc20: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 803cc24: f7ff f9cc bl 803bfc0 + 803cc28: 4603 mov r3, r0 + 803cc2a: b29a uxth r2, r3 + 803cc2c: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 803cc30: 4413 add r3, r2 + 803cc32: b29b uxth r3, r3 + 803cc34: f8a7 308a strh.w r3, [r7, #138] ; 0x8a lv_coord_t top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN) + border_width; - 803cccc: 2100 movs r1, #0 - 803ccce: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 803ccd2: f7ff f986 bl 803bfe2 - 803ccd6: 4603 mov r3, r0 - 803ccd8: b29a uxth r2, r3 - 803ccda: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 803ccde: 4413 add r3, r2 - 803cce0: b29b uxth r3, r3 - 803cce2: f8a7 3088 strh.w r3, [r7, #136] ; 0x88 + 803cc38: 2100 movs r1, #0 + 803cc3a: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 803cc3e: f7ff f986 bl 803bf4e + 803cc42: 4603 mov r3, r0 + 803cc44: b29a uxth r2, r3 + 803cc46: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 803cc4a: 4413 add r3, r2 + 803cc4c: b29b uxth r3, r3 + 803cc4e: f8a7 3088 strh.w r3, [r7, #136] ; 0x88 lv_draw_label_dsc_t symbol_dsc; lv_draw_label_dsc_init(&symbol_dsc); - 803cce6: f107 0360 add.w r3, r7, #96 ; 0x60 - 803ccea: 4618 mov r0, r3 - 803ccec: f7d5 fa4e bl 801218c + 803cc52: f107 0360 add.w r3, r7, #96 ; 0x60 + 803cc56: 4618 mov r0, r3 + 803cc58: f7d5 fa4e bl 80120f8 lv_obj_init_draw_label_dsc(obj, LV_PART_INDICATOR, &symbol_dsc); - 803ccf0: f107 0360 add.w r3, r7, #96 ; 0x60 - 803ccf4: 461a mov r2, r3 - 803ccf6: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803ccfa: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 803ccfe: f7cb fe50 bl 80089a2 + 803cc5c: f107 0360 add.w r3, r7, #96 ; 0x60 + 803cc60: 461a mov r2, r3 + 803cc62: f44f 3100 mov.w r1, #131072 ; 0x20000 + 803cc66: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 803cc6a: f7cb fe64 bl 8008936 /*If no text specified use the selected option*/ const char * opt_txt; if(dropdown->text) opt_txt = dropdown->text; - 803cd02: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 803cd06: 6a9b ldr r3, [r3, #40] ; 0x28 - 803cd08: 2b00 cmp r3, #0 - 803cd0a: d005 beq.n 803cd18 - 803cd0c: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 803cd10: 6a9b ldr r3, [r3, #40] ; 0x28 - 803cd12: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 - 803cd16: e00f b.n 803cd38 + 803cc6e: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 803cc72: 6a9b ldr r3, [r3, #40] ; 0x28 + 803cc74: 2b00 cmp r3, #0 + 803cc76: d005 beq.n 803cc84 + 803cc78: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 803cc7c: 6a9b ldr r3, [r3, #40] ; 0x28 + 803cc7e: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + 803cc82: e00f b.n 803cca4 else { char * buf = lv_mem_buf_get(128); - 803cd18: 2080 movs r0, #128 ; 0x80 - 803cd1a: f7f5 fe71 bl 8032a00 - 803cd1e: f8c7 0084 str.w r0, [r7, #132] ; 0x84 + 803cc84: 2080 movs r0, #128 ; 0x80 + 803cc86: f7f5 fe71 bl 803296c + 803cc8a: f8c7 0084 str.w r0, [r7, #132] ; 0x84 lv_dropdown_get_selected_str(obj, buf, 128); - 803cd22: 2280 movs r2, #128 ; 0x80 - 803cd24: f8d7 1084 ldr.w r1, [r7, #132] ; 0x84 - 803cd28: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 803cd2c: f7ff fb10 bl 803c350 + 803cc8e: 2280 movs r2, #128 ; 0x80 + 803cc90: f8d7 1084 ldr.w r1, [r7, #132] ; 0x84 + 803cc94: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 803cc98: f7ff fb10 bl 803c2bc opt_txt = buf; - 803cd30: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 803cd34: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + 803cc9c: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 803cca0: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 } bool symbol_to_left = false; - 803cd38: 2300 movs r3, #0 - 803cd3a: f887 30a3 strb.w r3, [r7, #163] ; 0xa3 + 803cca4: 2300 movs r3, #0 + 803cca6: f887 30a3 strb.w r3, [r7, #163] ; 0xa3 if(dropdown->dir == LV_DIR_LEFT) symbol_to_left = true; - 803cd3e: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 803cd42: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 803cd46: f003 030f and.w r3, r3, #15 - 803cd4a: b2db uxtb r3, r3 - 803cd4c: 2b01 cmp r3, #1 - 803cd4e: d102 bne.n 803cd56 - 803cd50: 2301 movs r3, #1 - 803cd52: f887 30a3 strb.w r3, [r7, #163] ; 0xa3 + 803ccaa: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 803ccae: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 803ccb2: f003 030f and.w r3, r3, #15 + 803ccb6: b2db uxtb r3, r3 + 803ccb8: 2b01 cmp r3, #1 + 803ccba: d102 bne.n 803ccc2 + 803ccbc: 2301 movs r3, #1 + 803ccbe: f887 30a3 strb.w r3, [r7, #163] ; 0xa3 if(lv_obj_get_style_base_dir(obj, LV_PART_MAIN) == LV_BASE_DIR_RTL) symbol_to_left = true; - 803cd56: 2100 movs r1, #0 - 803cd58: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 803cd5c: f7ff f9c5 bl 803c0ea - 803cd60: 4603 mov r3, r0 - 803cd62: 2b01 cmp r3, #1 - 803cd64: d102 bne.n 803cd6c - 803cd66: 2301 movs r3, #1 - 803cd68: f887 30a3 strb.w r3, [r7, #163] ; 0xa3 + 803ccc2: 2100 movs r1, #0 + 803ccc4: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 803ccc8: f7ff f9c5 bl 803c056 + 803cccc: 4603 mov r3, r0 + 803ccce: 2b01 cmp r3, #1 + 803ccd0: d102 bne.n 803ccd8 + 803ccd2: 2301 movs r3, #1 + 803ccd4: f887 30a3 strb.w r3, [r7, #163] ; 0xa3 if(dropdown->symbol) { - 803cd6c: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 803cd70: 6adb ldr r3, [r3, #44] ; 0x2c - 803cd72: 2b00 cmp r3, #0 - 803cd74: f000 80fc beq.w 803cf70 + 803ccd8: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 803ccdc: 6adb ldr r3, [r3, #44] ; 0x2c + 803ccde: 2b00 cmp r3, #0 + 803cce0: f000 80fc beq.w 803cedc lv_img_src_t symbol_type = lv_img_src_get_type(dropdown->symbol); - 803cd78: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 803cd7c: 6adb ldr r3, [r3, #44] ; 0x2c - 803cd7e: 4618 mov r0, r3 - 803cd80: f7d4 ff76 bl 8011c70 - 803cd84: 4603 mov r3, r0 - 803cd86: f887 3083 strb.w r3, [r7, #131] ; 0x83 + 803cce4: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 803cce8: 6adb ldr r3, [r3, #44] ; 0x2c + 803ccea: 4618 mov r0, r3 + 803ccec: f7d4 ff76 bl 8011bdc + 803ccf0: 4603 mov r3, r0 + 803ccf2: f887 3083 strb.w r3, [r7, #131] ; 0x83 lv_coord_t symbol_w; lv_coord_t symbol_h; if(symbol_type == LV_IMG_SRC_SYMBOL) { - 803cd8a: f897 3083 ldrb.w r3, [r7, #131] ; 0x83 - 803cd8e: 2b02 cmp r3, #2 - 803cd90: d11b bne.n 803cdca + 803ccf6: f897 3083 ldrb.w r3, [r7, #131] ; 0x83 + 803ccfa: 2b02 cmp r3, #2 + 803ccfc: d11b bne.n 803cd36 lv_point_t size; lv_txt_get_size(&size, dropdown->symbol, symbol_dsc.font, symbol_dsc.letter_space, symbol_dsc.line_space, LV_COORD_MAX, - 803cd92: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 803cd96: 6ad9 ldr r1, [r3, #44] ; 0x2c - 803cd98: 6e3c ldr r4, [r7, #96] ; 0x60 - 803cd9a: f9b7 5074 ldrsh.w r5, [r7, #116] ; 0x74 - 803cd9e: f9b7 3072 ldrsh.w r3, [r7, #114] ; 0x72 - 803cda2: f897 207d ldrb.w r2, [r7, #125] ; 0x7d - 803cda6: f107 0028 add.w r0, r7, #40 ; 0x28 - 803cdaa: 9202 str r2, [sp, #8] - 803cdac: f641 72ff movw r2, #8191 ; 0x1fff - 803cdb0: 9201 str r2, [sp, #4] - 803cdb2: 9300 str r3, [sp, #0] - 803cdb4: 462b mov r3, r5 - 803cdb6: 4622 mov r2, r4 - 803cdb8: f7f9 f967 bl 803608a + 803ccfe: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 803cd02: 6ad9 ldr r1, [r3, #44] ; 0x2c + 803cd04: 6e3c ldr r4, [r7, #96] ; 0x60 + 803cd06: f9b7 5074 ldrsh.w r5, [r7, #116] ; 0x74 + 803cd0a: f9b7 3072 ldrsh.w r3, [r7, #114] ; 0x72 + 803cd0e: f897 207d ldrb.w r2, [r7, #125] ; 0x7d + 803cd12: f107 0028 add.w r0, r7, #40 ; 0x28 + 803cd16: 9202 str r2, [sp, #8] + 803cd18: f641 72ff movw r2, #8191 ; 0x1fff + 803cd1c: 9201 str r2, [sp, #4] + 803cd1e: 9300 str r3, [sp, #0] + 803cd20: 462b mov r3, r5 + 803cd22: 4622 mov r2, r4 + 803cd24: f7f9 f967 bl 8035ff6 symbol_dsc.flag); symbol_w = size.x; - 803cdbc: 8d3b ldrh r3, [r7, #40] ; 0x28 - 803cdbe: f8a7 30a0 strh.w r3, [r7, #160] ; 0xa0 + 803cd28: 8d3b ldrh r3, [r7, #40] ; 0x28 + 803cd2a: f8a7 30a0 strh.w r3, [r7, #160] ; 0xa0 symbol_h = size.y; - 803cdc2: 8d7b ldrh r3, [r7, #42] ; 0x2a - 803cdc4: f8a7 309e strh.w r3, [r7, #158] ; 0x9e - 803cdc8: e024 b.n 803ce14 + 803cd2e: 8d7b ldrh r3, [r7, #42] ; 0x2a + 803cd30: f8a7 309e strh.w r3, [r7, #158] ; 0x9e + 803cd34: e024 b.n 803cd80 } else { lv_img_header_t header; lv_res_t res = lv_img_decoder_get_info(dropdown->symbol, &header); - 803cdca: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 803cdce: 6adb ldr r3, [r3, #44] ; 0x2c - 803cdd0: f107 0224 add.w r2, r7, #36 ; 0x24 - 803cdd4: 4611 mov r1, r2 - 803cdd6: 4618 mov r0, r3 - 803cdd8: f7da f850 bl 8016e7c - 803cddc: 4603 mov r3, r0 - 803cdde: f887 3082 strb.w r3, [r7, #130] ; 0x82 + 803cd36: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 803cd3a: 6adb ldr r3, [r3, #44] ; 0x2c + 803cd3c: f107 0224 add.w r2, r7, #36 ; 0x24 + 803cd40: 4611 mov r1, r2 + 803cd42: 4618 mov r0, r3 + 803cd44: f7da f850 bl 8016de8 + 803cd48: 4603 mov r3, r0 + 803cd4a: f887 3082 strb.w r3, [r7, #130] ; 0x82 if(res == LV_RES_OK) { - 803cde2: f897 3082 ldrb.w r3, [r7, #130] ; 0x82 - 803cde6: 2b01 cmp r3, #1 - 803cde8: d10c bne.n 803ce04 + 803cd4e: f897 3082 ldrb.w r3, [r7, #130] ; 0x82 + 803cd52: 2b01 cmp r3, #1 + 803cd54: d10c bne.n 803cd70 symbol_w = header.w; - 803cdea: 6a7b ldr r3, [r7, #36] ; 0x24 - 803cdec: f3c3 238a ubfx r3, r3, #10, #11 - 803cdf0: b29b uxth r3, r3 - 803cdf2: f8a7 30a0 strh.w r3, [r7, #160] ; 0xa0 + 803cd56: 6a7b ldr r3, [r7, #36] ; 0x24 + 803cd58: f3c3 238a ubfx r3, r3, #10, #11 + 803cd5c: b29b uxth r3, r3 + 803cd5e: f8a7 30a0 strh.w r3, [r7, #160] ; 0xa0 symbol_h = header.h; - 803cdf6: 8cfb ldrh r3, [r7, #38] ; 0x26 - 803cdf8: f3c3 134a ubfx r3, r3, #5, #11 - 803cdfc: b29b uxth r3, r3 - 803cdfe: f8a7 309e strh.w r3, [r7, #158] ; 0x9e - 803ce02: e007 b.n 803ce14 + 803cd62: 8cfb ldrh r3, [r7, #38] ; 0x26 + 803cd64: f3c3 134a ubfx r3, r3, #5, #11 + 803cd68: b29b uxth r3, r3 + 803cd6a: f8a7 309e strh.w r3, [r7, #158] ; 0x9e + 803cd6e: e007 b.n 803cd80 } else { symbol_w = -1; - 803ce04: f64f 73ff movw r3, #65535 ; 0xffff - 803ce08: f8a7 30a0 strh.w r3, [r7, #160] ; 0xa0 + 803cd70: f64f 73ff movw r3, #65535 ; 0xffff + 803cd74: f8a7 30a0 strh.w r3, [r7, #160] ; 0xa0 symbol_h = -1; - 803ce0c: f64f 73ff movw r3, #65535 ; 0xffff - 803ce10: f8a7 309e strh.w r3, [r7, #158] ; 0x9e + 803cd78: f64f 73ff movw r3, #65535 ; 0xffff + 803cd7c: f8a7 309e strh.w r3, [r7, #158] ; 0x9e } } lv_area_t symbol_area; if(symbol_to_left) { - 803ce14: f897 30a3 ldrb.w r3, [r7, #163] ; 0xa3 - 803ce18: 2b00 cmp r3, #0 - 803ce1a: d016 beq.n 803ce4a + 803cd80: f897 30a3 ldrb.w r3, [r7, #163] ; 0xa3 + 803cd84: 2b00 cmp r3, #0 + 803cd86: d016 beq.n 803cdb6 symbol_area.x1 = obj->coords.x1 + left; - 803ce1c: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 803ce20: f9b3 3014 ldrsh.w r3, [r3, #20] - 803ce24: b29a uxth r2, r3 - 803ce26: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c - 803ce2a: 4413 add r3, r2 - 803ce2c: b29b uxth r3, r3 - 803ce2e: b21b sxth r3, r3 - 803ce30: 85bb strh r3, [r7, #44] ; 0x2c + 803cd88: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 803cd8c: f9b3 3014 ldrsh.w r3, [r3, #20] + 803cd90: b29a uxth r2, r3 + 803cd92: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c + 803cd96: 4413 add r3, r2 + 803cd98: b29b uxth r3, r3 + 803cd9a: b21b sxth r3, r3 + 803cd9c: 85bb strh r3, [r7, #44] ; 0x2c symbol_area.x2 = symbol_area.x1 + symbol_w - 1; - 803ce32: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 803ce36: b29a uxth r2, r3 - 803ce38: f8b7 30a0 ldrh.w r3, [r7, #160] ; 0xa0 - 803ce3c: 4413 add r3, r2 - 803ce3e: b29b uxth r3, r3 - 803ce40: 3b01 subs r3, #1 - 803ce42: b29b uxth r3, r3 - 803ce44: b21b sxth r3, r3 - 803ce46: 863b strh r3, [r7, #48] ; 0x30 - 803ce48: e019 b.n 803ce7e + 803cd9e: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 803cda2: b29a uxth r2, r3 + 803cda4: f8b7 30a0 ldrh.w r3, [r7, #160] ; 0xa0 + 803cda8: 4413 add r3, r2 + 803cdaa: b29b uxth r3, r3 + 803cdac: 3b01 subs r3, #1 + 803cdae: b29b uxth r3, r3 + 803cdb0: b21b sxth r3, r3 + 803cdb2: 863b strh r3, [r7, #48] ; 0x30 + 803cdb4: e019 b.n 803cdea } else { symbol_area.x1 = obj->coords.x2 - right - symbol_w; - 803ce4a: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 803ce4e: f9b3 3018 ldrsh.w r3, [r3, #24] - 803ce52: b29a uxth r2, r3 - 803ce54: f8b7 308a ldrh.w r3, [r7, #138] ; 0x8a - 803ce58: 1ad3 subs r3, r2, r3 - 803ce5a: b29a uxth r2, r3 - 803ce5c: f8b7 30a0 ldrh.w r3, [r7, #160] ; 0xa0 - 803ce60: 1ad3 subs r3, r2, r3 - 803ce62: b29b uxth r3, r3 - 803ce64: b21b sxth r3, r3 - 803ce66: 85bb strh r3, [r7, #44] ; 0x2c + 803cdb6: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 803cdba: f9b3 3018 ldrsh.w r3, [r3, #24] + 803cdbe: b29a uxth r2, r3 + 803cdc0: f8b7 308a ldrh.w r3, [r7, #138] ; 0x8a + 803cdc4: 1ad3 subs r3, r2, r3 + 803cdc6: b29a uxth r2, r3 + 803cdc8: f8b7 30a0 ldrh.w r3, [r7, #160] ; 0xa0 + 803cdcc: 1ad3 subs r3, r2, r3 + 803cdce: b29b uxth r3, r3 + 803cdd0: b21b sxth r3, r3 + 803cdd2: 85bb strh r3, [r7, #44] ; 0x2c symbol_area.x2 = symbol_area.x1 + symbol_w - 1; - 803ce68: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 803ce6c: b29a uxth r2, r3 - 803ce6e: f8b7 30a0 ldrh.w r3, [r7, #160] ; 0xa0 - 803ce72: 4413 add r3, r2 - 803ce74: b29b uxth r3, r3 - 803ce76: 3b01 subs r3, #1 - 803ce78: b29b uxth r3, r3 - 803ce7a: b21b sxth r3, r3 - 803ce7c: 863b strh r3, [r7, #48] ; 0x30 + 803cdd4: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 803cdd8: b29a uxth r2, r3 + 803cdda: f8b7 30a0 ldrh.w r3, [r7, #160] ; 0xa0 + 803cdde: 4413 add r3, r2 + 803cde0: b29b uxth r3, r3 + 803cde2: 3b01 subs r3, #1 + 803cde4: b29b uxth r3, r3 + 803cde6: b21b sxth r3, r3 + 803cde8: 863b strh r3, [r7, #48] ; 0x30 } if(symbol_type == LV_IMG_SRC_SYMBOL) { - 803ce7e: f897 3083 ldrb.w r3, [r7, #131] ; 0x83 - 803ce82: 2b02 cmp r3, #2 - 803ce84: d123 bne.n 803cece + 803cdea: f897 3083 ldrb.w r3, [r7, #131] ; 0x83 + 803cdee: 2b02 cmp r3, #2 + 803cdf0: d123 bne.n 803ce3a symbol_area.y1 = obj->coords.y1 + top; - 803ce86: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 803ce8a: f9b3 3016 ldrsh.w r3, [r3, #22] - 803ce8e: b29a uxth r2, r3 - 803ce90: f8b7 3088 ldrh.w r3, [r7, #136] ; 0x88 - 803ce94: 4413 add r3, r2 - 803ce96: b29b uxth r3, r3 - 803ce98: b21b sxth r3, r3 - 803ce9a: 85fb strh r3, [r7, #46] ; 0x2e + 803cdf2: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 803cdf6: f9b3 3016 ldrsh.w r3, [r3, #22] + 803cdfa: b29a uxth r2, r3 + 803cdfc: f8b7 3088 ldrh.w r3, [r7, #136] ; 0x88 + 803ce00: 4413 add r3, r2 + 803ce02: b29b uxth r3, r3 + 803ce04: b21b sxth r3, r3 + 803ce06: 85fb strh r3, [r7, #46] ; 0x2e symbol_area.y2 = symbol_area.y1 + symbol_h - 1; - 803ce9c: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 803cea0: b29a uxth r2, r3 - 803cea2: f8b7 309e ldrh.w r3, [r7, #158] ; 0x9e - 803cea6: 4413 add r3, r2 - 803cea8: b29b uxth r3, r3 - 803ceaa: 3b01 subs r3, #1 - 803ceac: b29b uxth r3, r3 - 803ceae: b21b sxth r3, r3 - 803ceb0: 867b strh r3, [r7, #50] ; 0x32 + 803ce08: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 803ce0c: b29a uxth r2, r3 + 803ce0e: f8b7 309e ldrh.w r3, [r7, #158] ; 0x9e + 803ce12: 4413 add r3, r2 + 803ce14: b29b uxth r3, r3 + 803ce16: 3b01 subs r3, #1 + 803ce18: b29b uxth r3, r3 + 803ce1a: b21b sxth r3, r3 + 803ce1c: 867b strh r3, [r7, #50] ; 0x32 lv_draw_label(draw_ctx, &symbol_dsc, &symbol_area, dropdown->symbol, NULL); - 803ceb2: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 803ceb6: 6adb ldr r3, [r3, #44] ; 0x2c - 803ceb8: f107 022c add.w r2, r7, #44 ; 0x2c - 803cebc: f107 0160 add.w r1, r7, #96 ; 0x60 - 803cec0: 2000 movs r0, #0 - 803cec2: 9000 str r0, [sp, #0] - 803cec4: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 803cec8: f7d5 f98c bl 80121e4 - 803cecc: e050 b.n 803cf70 + 803ce1e: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 803ce22: 6adb ldr r3, [r3, #44] ; 0x2c + 803ce24: f107 022c add.w r2, r7, #44 ; 0x2c + 803ce28: f107 0160 add.w r1, r7, #96 ; 0x60 + 803ce2c: 2000 movs r0, #0 + 803ce2e: 9000 str r0, [sp, #0] + 803ce30: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 803ce34: f7d5 f98c bl 8012150 + 803ce38: e050 b.n 803cedc } else { symbol_area.y1 = obj->coords.y1 + (lv_obj_get_height(obj) - symbol_h) / 2; - 803cece: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 803ced2: f9b3 3016 ldrsh.w r3, [r3, #22] - 803ced6: b29c uxth r4, r3 - 803ced8: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 803cedc: f7cd f942 bl 800a164 - 803cee0: 4603 mov r3, r0 - 803cee2: 461a mov r2, r3 - 803cee4: f9b7 309e ldrsh.w r3, [r7, #158] ; 0x9e - 803cee8: 1ad3 subs r3, r2, r3 - 803ceea: 0fda lsrs r2, r3, #31 - 803ceec: 4413 add r3, r2 - 803ceee: 105b asrs r3, r3, #1 - 803cef0: b29b uxth r3, r3 - 803cef2: 4423 add r3, r4 - 803cef4: b29b uxth r3, r3 - 803cef6: b21b sxth r3, r3 - 803cef8: 85fb strh r3, [r7, #46] ; 0x2e + 803ce3a: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 803ce3e: f9b3 3016 ldrsh.w r3, [r3, #22] + 803ce42: b29c uxth r4, r3 + 803ce44: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 803ce48: f7cd f956 bl 800a0f8 + 803ce4c: 4603 mov r3, r0 + 803ce4e: 461a mov r2, r3 + 803ce50: f9b7 309e ldrsh.w r3, [r7, #158] ; 0x9e + 803ce54: 1ad3 subs r3, r2, r3 + 803ce56: 0fda lsrs r2, r3, #31 + 803ce58: 4413 add r3, r2 + 803ce5a: 105b asrs r3, r3, #1 + 803ce5c: b29b uxth r3, r3 + 803ce5e: 4423 add r3, r4 + 803ce60: b29b uxth r3, r3 + 803ce62: b21b sxth r3, r3 + 803ce64: 85fb strh r3, [r7, #46] ; 0x2e symbol_area.y2 = symbol_area.y1 + symbol_h - 1; - 803cefa: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 803cefe: b29a uxth r2, r3 - 803cf00: f8b7 309e ldrh.w r3, [r7, #158] ; 0x9e - 803cf04: 4413 add r3, r2 - 803cf06: b29b uxth r3, r3 - 803cf08: 3b01 subs r3, #1 - 803cf0a: b29b uxth r3, r3 - 803cf0c: b21b sxth r3, r3 - 803cf0e: 867b strh r3, [r7, #50] ; 0x32 + 803ce66: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 803ce6a: b29a uxth r2, r3 + 803ce6c: f8b7 309e ldrh.w r3, [r7, #158] ; 0x9e + 803ce70: 4413 add r3, r2 + 803ce72: b29b uxth r3, r3 + 803ce74: 3b01 subs r3, #1 + 803ce76: b29b uxth r3, r3 + 803ce78: b21b sxth r3, r3 + 803ce7a: 867b strh r3, [r7, #50] ; 0x32 lv_draw_img_dsc_t img_dsc; lv_draw_img_dsc_init(&img_dsc); - 803cf10: f107 030c add.w r3, r7, #12 - 803cf14: 4618 mov r0, r3 - 803cf16: f7d4 fdca bl 8011aae + 803ce7c: f107 030c add.w r3, r7, #12 + 803ce80: 4618 mov r0, r3 + 803ce82: f7d4 fdca bl 8011a1a lv_obj_init_draw_img_dsc(obj, LV_PART_INDICATOR, &img_dsc); - 803cf1a: f107 030c add.w r3, r7, #12 - 803cf1e: 461a mov r2, r3 - 803cf20: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803cf24: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 803cf28: f7cb fdad bl 8008a86 + 803ce86: f107 030c add.w r3, r7, #12 + 803ce8a: 461a mov r2, r3 + 803ce8c: f44f 3100 mov.w r1, #131072 ; 0x20000 + 803ce90: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 803ce94: f7cb fdc1 bl 8008a1a img_dsc.pivot.x = symbol_w / 2; - 803cf2c: f9b7 30a0 ldrsh.w r3, [r7, #160] ; 0xa0 - 803cf30: 0fda lsrs r2, r3, #31 - 803cf32: 4413 add r3, r2 - 803cf34: 105b asrs r3, r3, #1 - 803cf36: b21b sxth r3, r3 - 803cf38: 823b strh r3, [r7, #16] + 803ce98: f9b7 30a0 ldrsh.w r3, [r7, #160] ; 0xa0 + 803ce9c: 0fda lsrs r2, r3, #31 + 803ce9e: 4413 add r3, r2 + 803cea0: 105b asrs r3, r3, #1 + 803cea2: b21b sxth r3, r3 + 803cea4: 823b strh r3, [r7, #16] img_dsc.pivot.y = symbol_h / 2; - 803cf3a: f9b7 309e ldrsh.w r3, [r7, #158] ; 0x9e - 803cf3e: 0fda lsrs r2, r3, #31 - 803cf40: 4413 add r3, r2 - 803cf42: 105b asrs r3, r3, #1 - 803cf44: b21b sxth r3, r3 - 803cf46: 827b strh r3, [r7, #18] + 803cea6: f9b7 309e ldrsh.w r3, [r7, #158] ; 0x9e + 803ceaa: 0fda lsrs r2, r3, #31 + 803ceac: 4413 add r3, r2 + 803ceae: 105b asrs r3, r3, #1 + 803ceb0: b21b sxth r3, r3 + 803ceb2: 827b strh r3, [r7, #18] img_dsc.angle = lv_obj_get_style_transform_angle(obj, LV_PART_INDICATOR); - 803cf48: f44f 3100 mov.w r1, #131072 ; 0x20000 - 803cf4c: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 803cf50: f7ff f834 bl 803bfbc - 803cf54: 4603 mov r3, r0 - 803cf56: b29b uxth r3, r3 - 803cf58: 81bb strh r3, [r7, #12] + 803ceb4: f44f 3100 mov.w r1, #131072 ; 0x20000 + 803ceb8: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 803cebc: f7ff f834 bl 803bf28 + 803cec0: 4603 mov r3, r0 + 803cec2: b29b uxth r3, r3 + 803cec4: 81bb strh r3, [r7, #12] lv_draw_img(draw_ctx, &img_dsc, &symbol_area, dropdown->symbol); - 803cf5a: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 803cf5e: 6adb ldr r3, [r3, #44] ; 0x2c - 803cf60: f107 022c add.w r2, r7, #44 ; 0x2c - 803cf64: f107 010c add.w r1, r7, #12 - 803cf68: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 803cf6c: f7d4 fdbc bl 8011ae8 + 803cec6: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 803ceca: 6adb ldr r3, [r3, #44] ; 0x2c + 803cecc: f107 022c add.w r2, r7, #44 ; 0x2c + 803ced0: f107 010c add.w r1, r7, #12 + 803ced4: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 803ced8: f7d4 fdbc bl 8011a54 } } lv_draw_label_dsc_t label_dsc; lv_draw_label_dsc_init(&label_dsc); - 803cf70: f107 0340 add.w r3, r7, #64 ; 0x40 - 803cf74: 4618 mov r0, r3 - 803cf76: f7d5 f909 bl 801218c + 803cedc: f107 0340 add.w r3, r7, #64 ; 0x40 + 803cee0: 4618 mov r0, r3 + 803cee2: f7d5 f909 bl 80120f8 lv_obj_init_draw_label_dsc(obj, LV_PART_MAIN, &label_dsc); - 803cf7a: f107 0340 add.w r3, r7, #64 ; 0x40 - 803cf7e: 461a mov r2, r3 - 803cf80: 2100 movs r1, #0 - 803cf82: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 803cf86: f7cb fd0c bl 80089a2 + 803cee6: f107 0340 add.w r3, r7, #64 ; 0x40 + 803ceea: 461a mov r2, r3 + 803ceec: 2100 movs r1, #0 + 803ceee: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 803cef2: f7cb fd20 bl 8008936 lv_point_t size; lv_txt_get_size(&size, opt_txt, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX, - 803cf8a: 6c39 ldr r1, [r7, #64] ; 0x40 - 803cf8c: f9b7 4054 ldrsh.w r4, [r7, #84] ; 0x54 - 803cf90: f9b7 3052 ldrsh.w r3, [r7, #82] ; 0x52 - 803cf94: f897 205d ldrb.w r2, [r7, #93] ; 0x5d - 803cf98: f107 003c add.w r0, r7, #60 ; 0x3c - 803cf9c: 9202 str r2, [sp, #8] - 803cf9e: f641 72ff movw r2, #8191 ; 0x1fff - 803cfa2: 9201 str r2, [sp, #4] - 803cfa4: 9300 str r3, [sp, #0] - 803cfa6: 4623 mov r3, r4 - 803cfa8: 460a mov r2, r1 - 803cfaa: f8d7 10a4 ldr.w r1, [r7, #164] ; 0xa4 - 803cfae: f7f9 f86c bl 803608a + 803cef6: 6c39 ldr r1, [r7, #64] ; 0x40 + 803cef8: f9b7 4054 ldrsh.w r4, [r7, #84] ; 0x54 + 803cefc: f9b7 3052 ldrsh.w r3, [r7, #82] ; 0x52 + 803cf00: f897 205d ldrb.w r2, [r7, #93] ; 0x5d + 803cf04: f107 003c add.w r0, r7, #60 ; 0x3c + 803cf08: 9202 str r2, [sp, #8] + 803cf0a: f641 72ff movw r2, #8191 ; 0x1fff + 803cf0e: 9201 str r2, [sp, #4] + 803cf10: 9300 str r3, [sp, #0] + 803cf12: 4623 mov r3, r4 + 803cf14: 460a mov r2, r1 + 803cf16: f8d7 10a4 ldr.w r1, [r7, #164] ; 0xa4 + 803cf1a: f7f9 f86c bl 8035ff6 label_dsc.flag); lv_area_t txt_area; txt_area.y1 = obj->coords.y1 + top; - 803cfb2: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 803cfb6: f9b3 3016 ldrsh.w r3, [r3, #22] - 803cfba: b29a uxth r2, r3 - 803cfbc: f8b7 3088 ldrh.w r3, [r7, #136] ; 0x88 - 803cfc0: 4413 add r3, r2 - 803cfc2: b29b uxth r3, r3 - 803cfc4: b21b sxth r3, r3 - 803cfc6: 86fb strh r3, [r7, #54] ; 0x36 + 803cf1e: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 803cf22: f9b3 3016 ldrsh.w r3, [r3, #22] + 803cf26: b29a uxth r2, r3 + 803cf28: f8b7 3088 ldrh.w r3, [r7, #136] ; 0x88 + 803cf2c: 4413 add r3, r2 + 803cf2e: b29b uxth r3, r3 + 803cf30: b21b sxth r3, r3 + 803cf32: 86fb strh r3, [r7, #54] ; 0x36 txt_area.y2 = txt_area.y1 + size.y; - 803cfc8: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 803cfcc: b29a uxth r2, r3 - 803cfce: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 803cfd2: b29b uxth r3, r3 - 803cfd4: 4413 add r3, r2 - 803cfd6: b29b uxth r3, r3 - 803cfd8: b21b sxth r3, r3 - 803cfda: 877b strh r3, [r7, #58] ; 0x3a + 803cf34: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 803cf38: b29a uxth r2, r3 + 803cf3a: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 803cf3e: b29b uxth r3, r3 + 803cf40: 4413 add r3, r2 + 803cf42: b29b uxth r3, r3 + 803cf44: b21b sxth r3, r3 + 803cf46: 877b strh r3, [r7, #58] ; 0x3a /*Center align the text if no symbol*/ if(dropdown->symbol == NULL) { - 803cfdc: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 803cfe0: 6adb ldr r3, [r3, #44] ; 0x2c - 803cfe2: 2b00 cmp r3, #0 - 803cfe4: d120 bne.n 803d028 + 803cf48: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 803cf4c: 6adb ldr r3, [r3, #44] ; 0x2c + 803cf4e: 2b00 cmp r3, #0 + 803cf50: d120 bne.n 803cf94 txt_area.x1 = obj->coords.x1 + (lv_obj_get_width(obj) - size.x) / 2; - 803cfe6: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 803cfea: f9b3 3014 ldrsh.w r3, [r3, #20] - 803cfee: b29c uxth r4, r3 - 803cff0: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 803cff4: f7cd f8a8 bl 800a148 - 803cff8: 4603 mov r3, r0 - 803cffa: 461a mov r2, r3 - 803cffc: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c - 803d000: 1ad3 subs r3, r2, r3 - 803d002: 0fda lsrs r2, r3, #31 - 803d004: 4413 add r3, r2 - 803d006: 105b asrs r3, r3, #1 - 803d008: b29b uxth r3, r3 - 803d00a: 4423 add r3, r4 - 803d00c: b29b uxth r3, r3 - 803d00e: b21b sxth r3, r3 - 803d010: 86bb strh r3, [r7, #52] ; 0x34 + 803cf52: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 803cf56: f9b3 3014 ldrsh.w r3, [r3, #20] + 803cf5a: b29c uxth r4, r3 + 803cf5c: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 803cf60: f7cd f8bc bl 800a0dc + 803cf64: 4603 mov r3, r0 + 803cf66: 461a mov r2, r3 + 803cf68: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c + 803cf6c: 1ad3 subs r3, r2, r3 + 803cf6e: 0fda lsrs r2, r3, #31 + 803cf70: 4413 add r3, r2 + 803cf72: 105b asrs r3, r3, #1 + 803cf74: b29b uxth r3, r3 + 803cf76: 4423 add r3, r4 + 803cf78: b29b uxth r3, r3 + 803cf7a: b21b sxth r3, r3 + 803cf7c: 86bb strh r3, [r7, #52] ; 0x34 txt_area.x2 = txt_area.x1 + size.x; - 803d012: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 803d016: b29a uxth r2, r3 - 803d018: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c - 803d01c: b29b uxth r3, r3 - 803d01e: 4413 add r3, r2 - 803d020: b29b uxth r3, r3 - 803d022: b21b sxth r3, r3 - 803d024: 873b strh r3, [r7, #56] ; 0x38 - 803d026: e033 b.n 803d090 + 803cf7e: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 803cf82: b29a uxth r2, r3 + 803cf84: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c + 803cf88: b29b uxth r3, r3 + 803cf8a: 4413 add r3, r2 + 803cf8c: b29b uxth r3, r3 + 803cf8e: b21b sxth r3, r3 + 803cf90: 873b strh r3, [r7, #56] ; 0x38 + 803cf92: e033 b.n 803cffc } else { /*Text to the right*/ if(symbol_to_left) { - 803d028: f897 30a3 ldrb.w r3, [r7, #163] ; 0xa3 - 803d02c: 2b00 cmp r3, #0 - 803d02e: d01a beq.n 803d066 + 803cf94: f897 30a3 ldrb.w r3, [r7, #163] ; 0xa3 + 803cf98: 2b00 cmp r3, #0 + 803cf9a: d01a beq.n 803cfd2 txt_area.x1 = obj->coords.x2 - right - size.x; - 803d030: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 803d034: f9b3 3018 ldrsh.w r3, [r3, #24] - 803d038: b29a uxth r2, r3 - 803d03a: f8b7 308a ldrh.w r3, [r7, #138] ; 0x8a - 803d03e: 1ad3 subs r3, r2, r3 - 803d040: b29a uxth r2, r3 - 803d042: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c - 803d046: b29b uxth r3, r3 - 803d048: 1ad3 subs r3, r2, r3 - 803d04a: b29b uxth r3, r3 - 803d04c: b21b sxth r3, r3 - 803d04e: 86bb strh r3, [r7, #52] ; 0x34 + 803cf9c: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 803cfa0: f9b3 3018 ldrsh.w r3, [r3, #24] + 803cfa4: b29a uxth r2, r3 + 803cfa6: f8b7 308a ldrh.w r3, [r7, #138] ; 0x8a + 803cfaa: 1ad3 subs r3, r2, r3 + 803cfac: b29a uxth r2, r3 + 803cfae: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c + 803cfb2: b29b uxth r3, r3 + 803cfb4: 1ad3 subs r3, r2, r3 + 803cfb6: b29b uxth r3, r3 + 803cfb8: b21b sxth r3, r3 + 803cfba: 86bb strh r3, [r7, #52] ; 0x34 txt_area.x2 = txt_area.x1 + size.x; - 803d050: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 803d054: b29a uxth r2, r3 - 803d056: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c - 803d05a: b29b uxth r3, r3 - 803d05c: 4413 add r3, r2 - 803d05e: b29b uxth r3, r3 - 803d060: b21b sxth r3, r3 - 803d062: 873b strh r3, [r7, #56] ; 0x38 - 803d064: e014 b.n 803d090 + 803cfbc: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 803cfc0: b29a uxth r2, r3 + 803cfc2: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c + 803cfc6: b29b uxth r3, r3 + 803cfc8: 4413 add r3, r2 + 803cfca: b29b uxth r3, r3 + 803cfcc: b21b sxth r3, r3 + 803cfce: 873b strh r3, [r7, #56] ; 0x38 + 803cfd0: e014 b.n 803cffc } else { txt_area.x1 = obj->coords.x1 + left; - 803d066: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 803d06a: f9b3 3014 ldrsh.w r3, [r3, #20] - 803d06e: b29a uxth r2, r3 - 803d070: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c - 803d074: 4413 add r3, r2 - 803d076: b29b uxth r3, r3 - 803d078: b21b sxth r3, r3 - 803d07a: 86bb strh r3, [r7, #52] ; 0x34 + 803cfd2: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 803cfd6: f9b3 3014 ldrsh.w r3, [r3, #20] + 803cfda: b29a uxth r2, r3 + 803cfdc: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c + 803cfe0: 4413 add r3, r2 + 803cfe2: b29b uxth r3, r3 + 803cfe4: b21b sxth r3, r3 + 803cfe6: 86bb strh r3, [r7, #52] ; 0x34 txt_area.x2 = txt_area.x1 + size.x; - 803d07c: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 - 803d080: b29a uxth r2, r3 - 803d082: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c - 803d086: b29b uxth r3, r3 - 803d088: 4413 add r3, r2 - 803d08a: b29b uxth r3, r3 - 803d08c: b21b sxth r3, r3 - 803d08e: 873b strh r3, [r7, #56] ; 0x38 + 803cfe8: f9b7 3034 ldrsh.w r3, [r7, #52] ; 0x34 + 803cfec: b29a uxth r2, r3 + 803cfee: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c + 803cff2: b29b uxth r3, r3 + 803cff4: 4413 add r3, r2 + 803cff6: b29b uxth r3, r3 + 803cff8: b21b sxth r3, r3 + 803cffa: 873b strh r3, [r7, #56] ; 0x38 } } lv_draw_label(draw_ctx, &label_dsc, &txt_area, opt_txt, NULL); - 803d090: f107 0234 add.w r2, r7, #52 ; 0x34 - 803d094: f107 0140 add.w r1, r7, #64 ; 0x40 - 803d098: 2300 movs r3, #0 - 803d09a: 9300 str r3, [sp, #0] - 803d09c: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 - 803d0a0: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 803d0a4: f7d5 f89e bl 80121e4 + 803cffc: f107 0234 add.w r2, r7, #52 ; 0x34 + 803d000: f107 0140 add.w r1, r7, #64 ; 0x40 + 803d004: 2300 movs r3, #0 + 803d006: 9300 str r3, [sp, #0] + 803d008: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 + 803d00c: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 803d010: f7d5 f89e bl 8012150 if(dropdown->text == NULL) { - 803d0a8: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 803d0ac: 6a9b ldr r3, [r3, #40] ; 0x28 - 803d0ae: 2b00 cmp r3, #0 - 803d0b0: d103 bne.n 803d0ba + 803d014: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 803d018: 6a9b ldr r3, [r3, #40] ; 0x28 + 803d01a: 2b00 cmp r3, #0 + 803d01c: d103 bne.n 803d026 lv_mem_buf_release((char *)opt_txt); - 803d0b2: f8d7 00a4 ldr.w r0, [r7, #164] ; 0xa4 - 803d0b6: f7f5 fd4f bl 8032b58 + 803d01e: f8d7 00a4 ldr.w r0, [r7, #164] ; 0xa4 + 803d022: f7f5 fd4f bl 8032ac4 } } - 803d0ba: bf00 nop - 803d0bc: 37a8 adds r7, #168 ; 0xa8 - 803d0be: 46bd mov sp, r7 - 803d0c0: bdb0 pop {r4, r5, r7, pc} + 803d026: bf00 nop + 803d028: 37a8 adds r7, #168 ; 0xa8 + 803d02a: 46bd mov sp, r7 + 803d02c: bdb0 pop {r4, r5, r7, pc} -0803d0c2 : +0803d02e : static void draw_list(lv_event_t * e) { - 803d0c2: b580 push {r7, lr} - 803d0c4: b08c sub sp, #48 ; 0x30 - 803d0c6: af00 add r7, sp, #0 - 803d0c8: 6078 str r0, [r7, #4] + 803d02e: b580 push {r7, lr} + 803d030: b08c sub sp, #48 ; 0x30 + 803d032: af00 add r7, sp, #0 + 803d034: 6078 str r0, [r7, #4] lv_obj_t * list_obj = lv_event_get_target(e); - 803d0ca: 6878 ldr r0, [r7, #4] - 803d0cc: f7c5 fa58 bl 8002580 - 803d0d0: 62f8 str r0, [r7, #44] ; 0x2c + 803d036: 6878 ldr r0, [r7, #4] + 803d038: f7c5 fa6c bl 8002514 + 803d03c: 62f8 str r0, [r7, #44] ; 0x2c lv_dropdown_list_t * list = (lv_dropdown_list_t *)list_obj; - 803d0d2: 6afb ldr r3, [r7, #44] ; 0x2c - 803d0d4: 62bb str r3, [r7, #40] ; 0x28 + 803d03e: 6afb ldr r3, [r7, #44] ; 0x2c + 803d040: 62bb str r3, [r7, #40] ; 0x28 lv_obj_t * dropdown_obj = list->dropdown; - 803d0d6: 6abb ldr r3, [r7, #40] ; 0x28 - 803d0d8: 6a5b ldr r3, [r3, #36] ; 0x24 - 803d0da: 627b str r3, [r7, #36] ; 0x24 + 803d042: 6abb ldr r3, [r7, #40] ; 0x28 + 803d044: 6a5b ldr r3, [r3, #36] ; 0x24 + 803d046: 627b str r3, [r7, #36] ; 0x24 lv_dropdown_t * dropdown = (lv_dropdown_t *)dropdown_obj; - 803d0dc: 6a7b ldr r3, [r7, #36] ; 0x24 - 803d0de: 623b str r3, [r7, #32] + 803d048: 6a7b ldr r3, [r7, #36] ; 0x24 + 803d04a: 623b str r3, [r7, #32] lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 803d0e0: 6878 ldr r0, [r7, #4] - 803d0e2: f7c5 fb63 bl 80027ac - 803d0e6: 61f8 str r0, [r7, #28] + 803d04c: 6878 ldr r0, [r7, #4] + 803d04e: f7c5 fb77 bl 8002740 + 803d052: 61f8 str r0, [r7, #28] /* Clip area might be too large too to shadow but * the selected option can be drawn on only the background*/ lv_area_t clip_area_core; bool has_common; has_common = _lv_area_intersect(&clip_area_core, draw_ctx->clip_area, &dropdown->list->coords); - 803d0e8: 69fb ldr r3, [r7, #28] - 803d0ea: 6899 ldr r1, [r3, #8] - 803d0ec: 6a3b ldr r3, [r7, #32] - 803d0ee: 6a5b ldr r3, [r3, #36] ; 0x24 - 803d0f0: f103 0214 add.w r2, r3, #20 - 803d0f4: f107 030c add.w r3, r7, #12 - 803d0f8: 4618 mov r0, r3 - 803d0fa: f7f3 ffd5 bl 80310a8 <_lv_area_intersect> - 803d0fe: 4603 mov r3, r0 - 803d100: 76fb strb r3, [r7, #27] + 803d054: 69fb ldr r3, [r7, #28] + 803d056: 6899 ldr r1, [r3, #8] + 803d058: 6a3b ldr r3, [r7, #32] + 803d05a: 6a5b ldr r3, [r3, #36] ; 0x24 + 803d05c: f103 0214 add.w r2, r3, #20 + 803d060: f107 030c add.w r3, r7, #12 + 803d064: 4618 mov r0, r3 + 803d066: f7f3 ffd5 bl 8031014 <_lv_area_intersect> + 803d06a: 4603 mov r3, r0 + 803d06c: 76fb strb r3, [r7, #27] if(has_common) { - 803d102: 7efb ldrb r3, [r7, #27] - 803d104: 2b00 cmp r3, #0 - 803d106: d051 beq.n 803d1ac + 803d06e: 7efb ldrb r3, [r7, #27] + 803d070: 2b00 cmp r3, #0 + 803d072: d051 beq.n 803d118 const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 803d108: 69fb ldr r3, [r7, #28] - 803d10a: 689b ldr r3, [r3, #8] - 803d10c: 617b str r3, [r7, #20] + 803d074: 69fb ldr r3, [r7, #28] + 803d076: 689b ldr r3, [r3, #8] + 803d078: 617b str r3, [r7, #20] draw_ctx->clip_area = &clip_area_core; - 803d10e: 69fb ldr r3, [r7, #28] - 803d110: f107 020c add.w r2, r7, #12 - 803d114: 609a str r2, [r3, #8] + 803d07a: 69fb ldr r3, [r7, #28] + 803d07c: f107 020c add.w r2, r7, #12 + 803d080: 609a str r2, [r3, #8] if(dropdown->selected_highlight) { - 803d116: 6a3b ldr r3, [r7, #32] - 803d118: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 803d11c: f003 0320 and.w r3, r3, #32 - 803d120: b2db uxtb r3, r3 - 803d122: 2b00 cmp r3, #0 - 803d124: d031 beq.n 803d18a + 803d082: 6a3b ldr r3, [r7, #32] + 803d084: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 803d088: f003 0320 and.w r3, r3, #32 + 803d08c: b2db uxtb r3, r3 + 803d08e: 2b00 cmp r3, #0 + 803d090: d031 beq.n 803d0f6 if(dropdown->pr_opt_id == dropdown->sel_opt_id) { - 803d126: 6a3b ldr r3, [r7, #32] - 803d128: 8f5a ldrh r2, [r3, #58] ; 0x3a - 803d12a: 6a3b ldr r3, [r7, #32] - 803d12c: 8edb ldrh r3, [r3, #54] ; 0x36 - 803d12e: 429a cmp r2, r3 - 803d130: d10e bne.n 803d150 + 803d092: 6a3b ldr r3, [r7, #32] + 803d094: 8f5a ldrh r2, [r3, #58] ; 0x3a + 803d096: 6a3b ldr r3, [r7, #32] + 803d098: 8edb ldrh r3, [r3, #54] ; 0x36 + 803d09a: 429a cmp r2, r3 + 803d09c: d10e bne.n 803d0bc draw_box(dropdown_obj, draw_ctx, dropdown->pr_opt_id, LV_STATE_CHECKED | LV_STATE_PRESSED); - 803d132: 6a3b ldr r3, [r7, #32] - 803d134: 8f5a ldrh r2, [r3, #58] ; 0x3a - 803d136: 2321 movs r3, #33 ; 0x21 - 803d138: 69f9 ldr r1, [r7, #28] - 803d13a: 6a78 ldr r0, [r7, #36] ; 0x24 - 803d13c: f000 f83a bl 803d1b4 + 803d09e: 6a3b ldr r3, [r7, #32] + 803d0a0: 8f5a ldrh r2, [r3, #58] ; 0x3a + 803d0a2: 2321 movs r3, #33 ; 0x21 + 803d0a4: 69f9 ldr r1, [r7, #28] + 803d0a6: 6a78 ldr r0, [r7, #36] ; 0x24 + 803d0a8: f000 f83a bl 803d120 draw_box_label(dropdown_obj, draw_ctx, dropdown->pr_opt_id, LV_STATE_CHECKED | LV_STATE_PRESSED); - 803d140: 6a3b ldr r3, [r7, #32] - 803d142: 8f5a ldrh r2, [r3, #58] ; 0x3a - 803d144: 2321 movs r3, #33 ; 0x21 - 803d146: 69f9 ldr r1, [r7, #28] - 803d148: 6a78 ldr r0, [r7, #36] ; 0x24 - 803d14a: f000 f8db bl 803d304 - 803d14e: e02a b.n 803d1a6 + 803d0ac: 6a3b ldr r3, [r7, #32] + 803d0ae: 8f5a ldrh r2, [r3, #58] ; 0x3a + 803d0b0: 2321 movs r3, #33 ; 0x21 + 803d0b2: 69f9 ldr r1, [r7, #28] + 803d0b4: 6a78 ldr r0, [r7, #36] ; 0x24 + 803d0b6: f000 f8db bl 803d270 + 803d0ba: e02a b.n 803d112 } else { draw_box(dropdown_obj, draw_ctx, dropdown->pr_opt_id, LV_STATE_PRESSED); - 803d150: 6a3b ldr r3, [r7, #32] - 803d152: 8f5a ldrh r2, [r3, #58] ; 0x3a - 803d154: 2320 movs r3, #32 - 803d156: 69f9 ldr r1, [r7, #28] - 803d158: 6a78 ldr r0, [r7, #36] ; 0x24 - 803d15a: f000 f82b bl 803d1b4 + 803d0bc: 6a3b ldr r3, [r7, #32] + 803d0be: 8f5a ldrh r2, [r3, #58] ; 0x3a + 803d0c0: 2320 movs r3, #32 + 803d0c2: 69f9 ldr r1, [r7, #28] + 803d0c4: 6a78 ldr r0, [r7, #36] ; 0x24 + 803d0c6: f000 f82b bl 803d120 draw_box_label(dropdown_obj, draw_ctx, dropdown->pr_opt_id, LV_STATE_PRESSED); - 803d15e: 6a3b ldr r3, [r7, #32] - 803d160: 8f5a ldrh r2, [r3, #58] ; 0x3a - 803d162: 2320 movs r3, #32 - 803d164: 69f9 ldr r1, [r7, #28] - 803d166: 6a78 ldr r0, [r7, #36] ; 0x24 - 803d168: f000 f8cc bl 803d304 + 803d0ca: 6a3b ldr r3, [r7, #32] + 803d0cc: 8f5a ldrh r2, [r3, #58] ; 0x3a + 803d0ce: 2320 movs r3, #32 + 803d0d0: 69f9 ldr r1, [r7, #28] + 803d0d2: 6a78 ldr r0, [r7, #36] ; 0x24 + 803d0d4: f000 f8cc bl 803d270 draw_box(dropdown_obj, draw_ctx, dropdown->sel_opt_id, LV_STATE_CHECKED); - 803d16c: 6a3b ldr r3, [r7, #32] - 803d16e: 8eda ldrh r2, [r3, #54] ; 0x36 - 803d170: 2301 movs r3, #1 - 803d172: 69f9 ldr r1, [r7, #28] - 803d174: 6a78 ldr r0, [r7, #36] ; 0x24 - 803d176: f000 f81d bl 803d1b4 + 803d0d8: 6a3b ldr r3, [r7, #32] + 803d0da: 8eda ldrh r2, [r3, #54] ; 0x36 + 803d0dc: 2301 movs r3, #1 + 803d0de: 69f9 ldr r1, [r7, #28] + 803d0e0: 6a78 ldr r0, [r7, #36] ; 0x24 + 803d0e2: f000 f81d bl 803d120 draw_box_label(dropdown_obj, draw_ctx, dropdown->sel_opt_id, LV_STATE_CHECKED); - 803d17a: 6a3b ldr r3, [r7, #32] - 803d17c: 8eda ldrh r2, [r3, #54] ; 0x36 - 803d17e: 2301 movs r3, #1 - 803d180: 69f9 ldr r1, [r7, #28] - 803d182: 6a78 ldr r0, [r7, #36] ; 0x24 - 803d184: f000 f8be bl 803d304 - 803d188: e00d b.n 803d1a6 + 803d0e6: 6a3b ldr r3, [r7, #32] + 803d0e8: 8eda ldrh r2, [r3, #54] ; 0x36 + 803d0ea: 2301 movs r3, #1 + 803d0ec: 69f9 ldr r1, [r7, #28] + 803d0ee: 6a78 ldr r0, [r7, #36] ; 0x24 + 803d0f0: f000 f8be bl 803d270 + 803d0f4: e00d b.n 803d112 } } else { draw_box(dropdown_obj, draw_ctx, dropdown->pr_opt_id, LV_STATE_PRESSED); - 803d18a: 6a3b ldr r3, [r7, #32] - 803d18c: 8f5a ldrh r2, [r3, #58] ; 0x3a - 803d18e: 2320 movs r3, #32 - 803d190: 69f9 ldr r1, [r7, #28] - 803d192: 6a78 ldr r0, [r7, #36] ; 0x24 - 803d194: f000 f80e bl 803d1b4 + 803d0f6: 6a3b ldr r3, [r7, #32] + 803d0f8: 8f5a ldrh r2, [r3, #58] ; 0x3a + 803d0fa: 2320 movs r3, #32 + 803d0fc: 69f9 ldr r1, [r7, #28] + 803d0fe: 6a78 ldr r0, [r7, #36] ; 0x24 + 803d100: f000 f80e bl 803d120 draw_box_label(dropdown_obj, draw_ctx, dropdown->pr_opt_id, LV_STATE_PRESSED); - 803d198: 6a3b ldr r3, [r7, #32] - 803d19a: 8f5a ldrh r2, [r3, #58] ; 0x3a - 803d19c: 2320 movs r3, #32 - 803d19e: 69f9 ldr r1, [r7, #28] - 803d1a0: 6a78 ldr r0, [r7, #36] ; 0x24 - 803d1a2: f000 f8af bl 803d304 + 803d104: 6a3b ldr r3, [r7, #32] + 803d106: 8f5a ldrh r2, [r3, #58] ; 0x3a + 803d108: 2320 movs r3, #32 + 803d10a: 69f9 ldr r1, [r7, #28] + 803d10c: 6a78 ldr r0, [r7, #36] ; 0x24 + 803d10e: f000 f8af bl 803d270 } draw_ctx->clip_area = clip_area_ori; - 803d1a6: 69fb ldr r3, [r7, #28] - 803d1a8: 697a ldr r2, [r7, #20] - 803d1aa: 609a str r2, [r3, #8] + 803d112: 69fb ldr r3, [r7, #28] + 803d114: 697a ldr r2, [r7, #20] + 803d116: 609a str r2, [r3, #8] } } - 803d1ac: bf00 nop - 803d1ae: 3730 adds r7, #48 ; 0x30 - 803d1b0: 46bd mov sp, r7 - 803d1b2: bd80 pop {r7, pc} + 803d118: bf00 nop + 803d11a: 3730 adds r7, #48 ; 0x30 + 803d11c: 46bd mov sp, r7 + 803d11e: bd80 pop {r7, pc} -0803d1b4 : +0803d120 : static void draw_box(lv_obj_t * dropdown_obj, lv_draw_ctx_t * draw_ctx, uint16_t id, lv_state_t state) { - 803d1b4: b580 push {r7, lr} - 803d1b6: b09a sub sp, #104 ; 0x68 - 803d1b8: af00 add r7, sp, #0 - 803d1ba: 60f8 str r0, [r7, #12] - 803d1bc: 60b9 str r1, [r7, #8] - 803d1be: 4611 mov r1, r2 - 803d1c0: 461a mov r2, r3 - 803d1c2: 460b mov r3, r1 - 803d1c4: 80fb strh r3, [r7, #6] - 803d1c6: 4613 mov r3, r2 - 803d1c8: 80bb strh r3, [r7, #4] + 803d120: b580 push {r7, lr} + 803d122: b09a sub sp, #104 ; 0x68 + 803d124: af00 add r7, sp, #0 + 803d126: 60f8 str r0, [r7, #12] + 803d128: 60b9 str r1, [r7, #8] + 803d12a: 4611 mov r1, r2 + 803d12c: 461a mov r2, r3 + 803d12e: 460b mov r3, r1 + 803d130: 80fb strh r3, [r7, #6] + 803d132: 4613 mov r3, r2 + 803d134: 80bb strh r3, [r7, #4] if(id == LV_DROPDOWN_PR_NONE) return; - 803d1ca: 88fb ldrh r3, [r7, #6] - 803d1cc: f64f 72ff movw r2, #65535 ; 0xffff - 803d1d0: 4293 cmp r3, r2 - 803d1d2: f000 8093 beq.w 803d2fc + 803d136: 88fb ldrh r3, [r7, #6] + 803d138: f64f 72ff movw r2, #65535 ; 0xffff + 803d13c: 4293 cmp r3, r2 + 803d13e: f000 8093 beq.w 803d268 lv_dropdown_t * dropdown = (lv_dropdown_t *)dropdown_obj; - 803d1d6: 68fb ldr r3, [r7, #12] - 803d1d8: 667b str r3, [r7, #100] ; 0x64 + 803d142: 68fb ldr r3, [r7, #12] + 803d144: 667b str r3, [r7, #100] ; 0x64 lv_obj_t * list_obj = dropdown->list; - 803d1da: 6e7b ldr r3, [r7, #100] ; 0x64 - 803d1dc: 6a5b ldr r3, [r3, #36] ; 0x24 - 803d1de: 663b str r3, [r7, #96] ; 0x60 + 803d146: 6e7b ldr r3, [r7, #100] ; 0x64 + 803d148: 6a5b ldr r3, [r3, #36] ; 0x24 + 803d14a: 663b str r3, [r7, #96] ; 0x60 lv_state_t state_ori = list_obj->state; - 803d1e0: 6e3b ldr r3, [r7, #96] ; 0x60 - 803d1e2: 8c1b ldrh r3, [r3, #32] - 803d1e4: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 803d14c: 6e3b ldr r3, [r7, #96] ; 0x60 + 803d14e: 8c1b ldrh r3, [r3, #32] + 803d150: f8a7 305e strh.w r3, [r7, #94] ; 0x5e if(state != list_obj->state) { - 803d1e8: 6e3b ldr r3, [r7, #96] ; 0x60 - 803d1ea: 8c1b ldrh r3, [r3, #32] - 803d1ec: 88ba ldrh r2, [r7, #4] - 803d1ee: 429a cmp r2, r3 - 803d1f0: d009 beq.n 803d206 + 803d154: 6e3b ldr r3, [r7, #96] ; 0x60 + 803d156: 8c1b ldrh r3, [r3, #32] + 803d158: 88ba ldrh r2, [r7, #4] + 803d15a: 429a cmp r2, r3 + 803d15c: d009 beq.n 803d172 list_obj->state = state; - 803d1f2: 6e3b ldr r3, [r7, #96] ; 0x60 - 803d1f4: 88ba ldrh r2, [r7, #4] - 803d1f6: 841a strh r2, [r3, #32] + 803d15e: 6e3b ldr r3, [r7, #96] ; 0x60 + 803d160: 88ba ldrh r2, [r7, #4] + 803d162: 841a strh r2, [r3, #32] list_obj->skip_trans = 1; - 803d1f8: 6e3a ldr r2, [r7, #96] ; 0x60 - 803d1fa: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 803d1fe: f043 0304 orr.w r3, r3, #4 - 803d202: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 803d164: 6e3a ldr r2, [r7, #96] ; 0x60 + 803d166: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 803d16a: f043 0304 orr.w r3, r3, #4 + 803d16e: f882 3022 strb.w r3, [r2, #34] ; 0x22 } /*Draw a rectangle under the selected item*/ const lv_font_t * font = lv_obj_get_style_text_font(list_obj, LV_PART_SELECTED); - 803d206: f44f 2180 mov.w r1, #262144 ; 0x40000 - 803d20a: 6e38 ldr r0, [r7, #96] ; 0x60 - 803d20c: f7fe ff48 bl 803c0a0 - 803d210: 65b8 str r0, [r7, #88] ; 0x58 + 803d172: f44f 2180 mov.w r1, #262144 ; 0x40000 + 803d176: 6e38 ldr r0, [r7, #96] ; 0x60 + 803d178: f7fe ff48 bl 803c00c + 803d17c: 65b8 str r0, [r7, #88] ; 0x58 lv_coord_t line_space = lv_obj_get_style_text_line_space(list_obj, LV_PART_SELECTED); - 803d212: f44f 2180 mov.w r1, #262144 ; 0x40000 - 803d216: 6e38 ldr r0, [r7, #96] ; 0x60 - 803d218: f7fe ff54 bl 803c0c4 - 803d21c: 4603 mov r3, r0 - 803d21e: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 803d17e: f44f 2180 mov.w r1, #262144 ; 0x40000 + 803d182: 6e38 ldr r0, [r7, #96] ; 0x60 + 803d184: f7fe ff54 bl 803c030 + 803d188: 4603 mov r3, r0 + 803d18a: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 lv_coord_t font_h = lv_font_get_line_height(font); - 803d222: 6db8 ldr r0, [r7, #88] ; 0x58 - 803d224: f7fe febe bl 803bfa4 - 803d228: 4603 mov r3, r0 - 803d22a: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 + 803d18e: 6db8 ldr r0, [r7, #88] ; 0x58 + 803d190: f7fe febe bl 803bf10 + 803d194: 4603 mov r3, r0 + 803d196: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 /*Draw the selected*/ lv_obj_t * label = get_label(dropdown_obj); - 803d22e: 68f8 ldr r0, [r7, #12] - 803d230: f000 fab0 bl 803d794 - 803d234: 6538 str r0, [r7, #80] ; 0x50 + 803d19a: 68f8 ldr r0, [r7, #12] + 803d19c: f000 fab0 bl 803d700 + 803d1a0: 6538 str r0, [r7, #80] ; 0x50 lv_area_t rect_area; rect_area.y1 = label->coords.y1; - 803d236: 6d3b ldr r3, [r7, #80] ; 0x50 - 803d238: f9b3 3016 ldrsh.w r3, [r3, #22] - 803d23c: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 803d1a2: 6d3b ldr r3, [r7, #80] ; 0x50 + 803d1a4: f9b3 3016 ldrsh.w r3, [r3, #22] + 803d1a8: f8a7 304a strh.w r3, [r7, #74] ; 0x4a rect_area.y1 += id * (font_h + line_space); - 803d240: f9b7 304a ldrsh.w r3, [r7, #74] ; 0x4a - 803d244: b29a uxth r2, r3 - 803d246: f9b7 1054 ldrsh.w r1, [r7, #84] ; 0x54 - 803d24a: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 803d24e: 440b add r3, r1 - 803d250: b29b uxth r3, r3 - 803d252: 88f9 ldrh r1, [r7, #6] - 803d254: fb01 f303 mul.w r3, r1, r3 - 803d258: b29b uxth r3, r3 - 803d25a: 4413 add r3, r2 - 803d25c: b29b uxth r3, r3 - 803d25e: b21b sxth r3, r3 - 803d260: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 803d1ac: f9b7 304a ldrsh.w r3, [r7, #74] ; 0x4a + 803d1b0: b29a uxth r2, r3 + 803d1b2: f9b7 1054 ldrsh.w r1, [r7, #84] ; 0x54 + 803d1b6: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 803d1ba: 440b add r3, r1 + 803d1bc: b29b uxth r3, r3 + 803d1be: 88f9 ldrh r1, [r7, #6] + 803d1c0: fb01 f303 mul.w r3, r1, r3 + 803d1c4: b29b uxth r3, r3 + 803d1c6: 4413 add r3, r2 + 803d1c8: b29b uxth r3, r3 + 803d1ca: b21b sxth r3, r3 + 803d1cc: f8a7 304a strh.w r3, [r7, #74] ; 0x4a rect_area.y1 -= line_space / 2; - 803d264: f9b7 304a ldrsh.w r3, [r7, #74] ; 0x4a - 803d268: b29a uxth r2, r3 - 803d26a: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 803d26e: 0fd9 lsrs r1, r3, #31 - 803d270: 440b add r3, r1 - 803d272: 105b asrs r3, r3, #1 - 803d274: b21b sxth r3, r3 - 803d276: b29b uxth r3, r3 - 803d278: 1ad3 subs r3, r2, r3 - 803d27a: b29b uxth r3, r3 - 803d27c: b21b sxth r3, r3 - 803d27e: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 803d1d0: f9b7 304a ldrsh.w r3, [r7, #74] ; 0x4a + 803d1d4: b29a uxth r2, r3 + 803d1d6: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 803d1da: 0fd9 lsrs r1, r3, #31 + 803d1dc: 440b add r3, r1 + 803d1de: 105b asrs r3, r3, #1 + 803d1e0: b21b sxth r3, r3 + 803d1e2: b29b uxth r3, r3 + 803d1e4: 1ad3 subs r3, r2, r3 + 803d1e6: b29b uxth r3, r3 + 803d1e8: b21b sxth r3, r3 + 803d1ea: f8a7 304a strh.w r3, [r7, #74] ; 0x4a rect_area.y2 = rect_area.y1 + font_h + line_space - 1; - 803d282: f9b7 304a ldrsh.w r3, [r7, #74] ; 0x4a - 803d286: b29a uxth r2, r3 - 803d288: f8b7 3054 ldrh.w r3, [r7, #84] ; 0x54 - 803d28c: 4413 add r3, r2 - 803d28e: b29a uxth r2, r3 - 803d290: f8b7 3056 ldrh.w r3, [r7, #86] ; 0x56 - 803d294: 4413 add r3, r2 - 803d296: b29b uxth r3, r3 - 803d298: 3b01 subs r3, #1 - 803d29a: b29b uxth r3, r3 - 803d29c: b21b sxth r3, r3 - 803d29e: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 803d1ee: f9b7 304a ldrsh.w r3, [r7, #74] ; 0x4a + 803d1f2: b29a uxth r2, r3 + 803d1f4: f8b7 3054 ldrh.w r3, [r7, #84] ; 0x54 + 803d1f8: 4413 add r3, r2 + 803d1fa: b29a uxth r2, r3 + 803d1fc: f8b7 3056 ldrh.w r3, [r7, #86] ; 0x56 + 803d200: 4413 add r3, r2 + 803d202: b29b uxth r3, r3 + 803d204: 3b01 subs r3, #1 + 803d206: b29b uxth r3, r3 + 803d208: b21b sxth r3, r3 + 803d20a: f8a7 304e strh.w r3, [r7, #78] ; 0x4e rect_area.x1 = dropdown->list->coords.x1; - 803d2a2: 6e7b ldr r3, [r7, #100] ; 0x64 - 803d2a4: 6a5b ldr r3, [r3, #36] ; 0x24 - 803d2a6: f9b3 3014 ldrsh.w r3, [r3, #20] - 803d2aa: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 + 803d20e: 6e7b ldr r3, [r7, #100] ; 0x64 + 803d210: 6a5b ldr r3, [r3, #36] ; 0x24 + 803d212: f9b3 3014 ldrsh.w r3, [r3, #20] + 803d216: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 rect_area.x2 = dropdown->list->coords.x2; - 803d2ae: 6e7b ldr r3, [r7, #100] ; 0x64 - 803d2b0: 6a5b ldr r3, [r3, #36] ; 0x24 - 803d2b2: f9b3 3018 ldrsh.w r3, [r3, #24] - 803d2b6: f8a7 304c strh.w r3, [r7, #76] ; 0x4c + 803d21a: 6e7b ldr r3, [r7, #100] ; 0x64 + 803d21c: 6a5b ldr r3, [r3, #36] ; 0x24 + 803d21e: f9b3 3018 ldrsh.w r3, [r3, #24] + 803d222: f8a7 304c strh.w r3, [r7, #76] ; 0x4c lv_draw_rect_dsc_t sel_rect; lv_draw_rect_dsc_init(&sel_rect); - 803d2ba: f107 0310 add.w r3, r7, #16 - 803d2be: 4618 mov r0, r3 - 803d2c0: f7d8 fa98 bl 80157f4 + 803d226: f107 0310 add.w r3, r7, #16 + 803d22a: 4618 mov r0, r3 + 803d22c: f7d8 fa98 bl 8015760 lv_obj_init_draw_rect_dsc(list_obj, LV_PART_SELECTED, &sel_rect); - 803d2c4: f107 0310 add.w r3, r7, #16 - 803d2c8: 461a mov r2, r3 - 803d2ca: f44f 2180 mov.w r1, #262144 ; 0x40000 - 803d2ce: 6e38 ldr r0, [r7, #96] ; 0x60 - 803d2d0: f7cb f979 bl 80085c6 + 803d230: f107 0310 add.w r3, r7, #16 + 803d234: 461a mov r2, r3 + 803d236: f44f 2180 mov.w r1, #262144 ; 0x40000 + 803d23a: 6e38 ldr r0, [r7, #96] ; 0x60 + 803d23c: f7cb f98d bl 800855a lv_draw_rect(draw_ctx, &sel_rect, &rect_area); - 803d2d4: f107 0248 add.w r2, r7, #72 ; 0x48 - 803d2d8: f107 0310 add.w r3, r7, #16 - 803d2dc: 4619 mov r1, r3 - 803d2de: 68b8 ldr r0, [r7, #8] - 803d2e0: f7d8 faca bl 8015878 + 803d240: f107 0248 add.w r2, r7, #72 ; 0x48 + 803d244: f107 0310 add.w r3, r7, #16 + 803d248: 4619 mov r1, r3 + 803d24a: 68b8 ldr r0, [r7, #8] + 803d24c: f7d8 faca bl 80157e4 list_obj->state = state_ori; - 803d2e4: 6e3b ldr r3, [r7, #96] ; 0x60 - 803d2e6: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e - 803d2ea: 841a strh r2, [r3, #32] + 803d250: 6e3b ldr r3, [r7, #96] ; 0x60 + 803d252: f8b7 205e ldrh.w r2, [r7, #94] ; 0x5e + 803d256: 841a strh r2, [r3, #32] list_obj->skip_trans = 0; - 803d2ec: 6e3a ldr r2, [r7, #96] ; 0x60 - 803d2ee: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 803d2f2: f36f 0382 bfc r3, #2, #1 - 803d2f6: f882 3022 strb.w r3, [r2, #34] ; 0x22 - 803d2fa: e000 b.n 803d2fe + 803d258: 6e3a ldr r2, [r7, #96] ; 0x60 + 803d25a: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 803d25e: f36f 0382 bfc r3, #2, #1 + 803d262: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 803d266: e000 b.n 803d26a if(id == LV_DROPDOWN_PR_NONE) return; - 803d2fc: bf00 nop + 803d268: bf00 nop } - 803d2fe: 3768 adds r7, #104 ; 0x68 - 803d300: 46bd mov sp, r7 - 803d302: bd80 pop {r7, pc} + 803d26a: 3768 adds r7, #104 ; 0x68 + 803d26c: 46bd mov sp, r7 + 803d26e: bd80 pop {r7, pc} -0803d304 : +0803d270 : static void draw_box_label(lv_obj_t * dropdown_obj, lv_draw_ctx_t * draw_ctx, uint16_t id, lv_state_t state) { - 803d304: b590 push {r4, r7, lr} - 803d306: b099 sub sp, #100 ; 0x64 - 803d308: af02 add r7, sp, #8 - 803d30a: 60f8 str r0, [r7, #12] - 803d30c: 60b9 str r1, [r7, #8] - 803d30e: 4611 mov r1, r2 - 803d310: 461a mov r2, r3 - 803d312: 460b mov r3, r1 - 803d314: 80fb strh r3, [r7, #6] - 803d316: 4613 mov r3, r2 - 803d318: 80bb strh r3, [r7, #4] + 803d270: b590 push {r4, r7, lr} + 803d272: b099 sub sp, #100 ; 0x64 + 803d274: af02 add r7, sp, #8 + 803d276: 60f8 str r0, [r7, #12] + 803d278: 60b9 str r1, [r7, #8] + 803d27a: 4611 mov r1, r2 + 803d27c: 461a mov r2, r3 + 803d27e: 460b mov r3, r1 + 803d280: 80fb strh r3, [r7, #6] + 803d282: 4613 mov r3, r2 + 803d284: 80bb strh r3, [r7, #4] if(id == LV_DROPDOWN_PR_NONE) return; - 803d31a: 88fb ldrh r3, [r7, #6] - 803d31c: f64f 72ff movw r2, #65535 ; 0xffff - 803d320: 4293 cmp r3, r2 - 803d322: f000 80aa beq.w 803d47a + 803d286: 88fb ldrh r3, [r7, #6] + 803d288: f64f 72ff movw r2, #65535 ; 0xffff + 803d28c: 4293 cmp r3, r2 + 803d28e: f000 80aa beq.w 803d3e6 lv_dropdown_t * dropdown = (lv_dropdown_t *)dropdown_obj; - 803d326: 68fb ldr r3, [r7, #12] - 803d328: 657b str r3, [r7, #84] ; 0x54 + 803d292: 68fb ldr r3, [r7, #12] + 803d294: 657b str r3, [r7, #84] ; 0x54 lv_obj_t * list_obj = dropdown->list; - 803d32a: 6d7b ldr r3, [r7, #84] ; 0x54 - 803d32c: 6a5b ldr r3, [r3, #36] ; 0x24 - 803d32e: 653b str r3, [r7, #80] ; 0x50 + 803d296: 6d7b ldr r3, [r7, #84] ; 0x54 + 803d298: 6a5b ldr r3, [r3, #36] ; 0x24 + 803d29a: 653b str r3, [r7, #80] ; 0x50 lv_state_t state_orig = list_obj->state; - 803d330: 6d3b ldr r3, [r7, #80] ; 0x50 - 803d332: 8c1b ldrh r3, [r3, #32] - 803d334: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 803d29c: 6d3b ldr r3, [r7, #80] ; 0x50 + 803d29e: 8c1b ldrh r3, [r3, #32] + 803d2a0: f8a7 304e strh.w r3, [r7, #78] ; 0x4e if(state != list_obj->state) { - 803d338: 6d3b ldr r3, [r7, #80] ; 0x50 - 803d33a: 8c1b ldrh r3, [r3, #32] - 803d33c: 88ba ldrh r2, [r7, #4] - 803d33e: 429a cmp r2, r3 - 803d340: d009 beq.n 803d356 + 803d2a4: 6d3b ldr r3, [r7, #80] ; 0x50 + 803d2a6: 8c1b ldrh r3, [r3, #32] + 803d2a8: 88ba ldrh r2, [r7, #4] + 803d2aa: 429a cmp r2, r3 + 803d2ac: d009 beq.n 803d2c2 list_obj->state = state; - 803d342: 6d3b ldr r3, [r7, #80] ; 0x50 - 803d344: 88ba ldrh r2, [r7, #4] - 803d346: 841a strh r2, [r3, #32] + 803d2ae: 6d3b ldr r3, [r7, #80] ; 0x50 + 803d2b0: 88ba ldrh r2, [r7, #4] + 803d2b2: 841a strh r2, [r3, #32] list_obj->skip_trans = 1; - 803d348: 6d3a ldr r2, [r7, #80] ; 0x50 - 803d34a: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 803d34e: f043 0304 orr.w r3, r3, #4 - 803d352: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 803d2b4: 6d3a ldr r2, [r7, #80] ; 0x50 + 803d2b6: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 803d2ba: f043 0304 orr.w r3, r3, #4 + 803d2be: f882 3022 strb.w r3, [r2, #34] ; 0x22 } lv_draw_label_dsc_t label_dsc; lv_draw_label_dsc_init(&label_dsc); - 803d356: f107 0320 add.w r3, r7, #32 - 803d35a: 4618 mov r0, r3 - 803d35c: f7d4 ff16 bl 801218c + 803d2c2: f107 0320 add.w r3, r7, #32 + 803d2c6: 4618 mov r0, r3 + 803d2c8: f7d4 ff16 bl 80120f8 lv_obj_init_draw_label_dsc(list_obj, LV_PART_SELECTED, &label_dsc); - 803d360: f107 0320 add.w r3, r7, #32 - 803d364: 461a mov r2, r3 - 803d366: f44f 2180 mov.w r1, #262144 ; 0x40000 - 803d36a: 6d38 ldr r0, [r7, #80] ; 0x50 - 803d36c: f7cb fb19 bl 80089a2 + 803d2cc: f107 0320 add.w r3, r7, #32 + 803d2d0: 461a mov r2, r3 + 803d2d2: f44f 2180 mov.w r1, #262144 ; 0x40000 + 803d2d6: 6d38 ldr r0, [r7, #80] ; 0x50 + 803d2d8: f7cb fb2d bl 8008936 label_dsc.line_space = lv_obj_get_style_text_line_space(list_obj, - 803d370: f44f 2180 mov.w r1, #262144 ; 0x40000 - 803d374: 6d38 ldr r0, [r7, #80] ; 0x50 - 803d376: f7fe fea5 bl 803c0c4 - 803d37a: 4603 mov r3, r0 - 803d37c: 867b strh r3, [r7, #50] ; 0x32 + 803d2dc: f44f 2180 mov.w r1, #262144 ; 0x40000 + 803d2e0: 6d38 ldr r0, [r7, #80] ; 0x50 + 803d2e2: f7fe fea5 bl 803c030 + 803d2e6: 4603 mov r3, r0 + 803d2e8: 867b strh r3, [r7, #50] ; 0x32 LV_PART_SELECTED); /*Line space should come from the list*/ lv_obj_t * label = get_label(dropdown_obj); - 803d37e: 68f8 ldr r0, [r7, #12] - 803d380: f000 fa08 bl 803d794 - 803d384: 64b8 str r0, [r7, #72] ; 0x48 + 803d2ea: 68f8 ldr r0, [r7, #12] + 803d2ec: f000 fa08 bl 803d700 + 803d2f0: 64b8 str r0, [r7, #72] ; 0x48 if(label == NULL) return; - 803d386: 6cbb ldr r3, [r7, #72] ; 0x48 - 803d388: 2b00 cmp r3, #0 - 803d38a: d078 beq.n 803d47e + 803d2f2: 6cbb ldr r3, [r7, #72] ; 0x48 + 803d2f4: 2b00 cmp r3, #0 + 803d2f6: d078 beq.n 803d3ea lv_coord_t font_h = lv_font_get_line_height(label_dsc.font); - 803d38c: 6a3b ldr r3, [r7, #32] - 803d38e: 4618 mov r0, r3 - 803d390: f7fe fe08 bl 803bfa4 - 803d394: 4603 mov r3, r0 - 803d396: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 803d2f8: 6a3b ldr r3, [r7, #32] + 803d2fa: 4618 mov r0, r3 + 803d2fc: f7fe fe08 bl 803bf10 + 803d300: 4603 mov r3, r0 + 803d302: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 lv_area_t area_sel; area_sel.y1 = label->coords.y1; - 803d39a: 6cbb ldr r3, [r7, #72] ; 0x48 - 803d39c: f9b3 3016 ldrsh.w r3, [r3, #22] - 803d3a0: 837b strh r3, [r7, #26] + 803d306: 6cbb ldr r3, [r7, #72] ; 0x48 + 803d308: f9b3 3016 ldrsh.w r3, [r3, #22] + 803d30c: 837b strh r3, [r7, #26] area_sel.y1 += id * (font_h + label_dsc.line_space); - 803d3a2: f9b7 301a ldrsh.w r3, [r7, #26] - 803d3a6: b29a uxth r2, r3 - 803d3a8: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 - 803d3ac: f9b7 1032 ldrsh.w r1, [r7, #50] ; 0x32 - 803d3b0: 440b add r3, r1 - 803d3b2: b29b uxth r3, r3 - 803d3b4: 88f9 ldrh r1, [r7, #6] - 803d3b6: fb01 f303 mul.w r3, r1, r3 - 803d3ba: b29b uxth r3, r3 - 803d3bc: 4413 add r3, r2 - 803d3be: b29b uxth r3, r3 - 803d3c0: b21b sxth r3, r3 - 803d3c2: 837b strh r3, [r7, #26] + 803d30e: f9b7 301a ldrsh.w r3, [r7, #26] + 803d312: b29a uxth r2, r3 + 803d314: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 + 803d318: f9b7 1032 ldrsh.w r1, [r7, #50] ; 0x32 + 803d31c: 440b add r3, r1 + 803d31e: b29b uxth r3, r3 + 803d320: 88f9 ldrh r1, [r7, #6] + 803d322: fb01 f303 mul.w r3, r1, r3 + 803d326: b29b uxth r3, r3 + 803d328: 4413 add r3, r2 + 803d32a: b29b uxth r3, r3 + 803d32c: b21b sxth r3, r3 + 803d32e: 837b strh r3, [r7, #26] area_sel.y1 -= label_dsc.line_space / 2; - 803d3c4: f9b7 301a ldrsh.w r3, [r7, #26] - 803d3c8: b29a uxth r2, r3 - 803d3ca: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 803d3ce: 0fd9 lsrs r1, r3, #31 - 803d3d0: 440b add r3, r1 - 803d3d2: 105b asrs r3, r3, #1 - 803d3d4: b21b sxth r3, r3 - 803d3d6: b29b uxth r3, r3 - 803d3d8: 1ad3 subs r3, r2, r3 - 803d3da: b29b uxth r3, r3 - 803d3dc: b21b sxth r3, r3 - 803d3de: 837b strh r3, [r7, #26] + 803d330: f9b7 301a ldrsh.w r3, [r7, #26] + 803d334: b29a uxth r2, r3 + 803d336: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 803d33a: 0fd9 lsrs r1, r3, #31 + 803d33c: 440b add r3, r1 + 803d33e: 105b asrs r3, r3, #1 + 803d340: b21b sxth r3, r3 + 803d342: b29b uxth r3, r3 + 803d344: 1ad3 subs r3, r2, r3 + 803d346: b29b uxth r3, r3 + 803d348: b21b sxth r3, r3 + 803d34a: 837b strh r3, [r7, #26] area_sel.y2 = area_sel.y1 + font_h + label_dsc.line_space - 1; - 803d3e0: f9b7 301a ldrsh.w r3, [r7, #26] - 803d3e4: b29a uxth r2, r3 - 803d3e6: f8b7 3046 ldrh.w r3, [r7, #70] ; 0x46 - 803d3ea: 4413 add r3, r2 - 803d3ec: b29a uxth r2, r3 - 803d3ee: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 803d3f2: b29b uxth r3, r3 - 803d3f4: 4413 add r3, r2 - 803d3f6: b29b uxth r3, r3 - 803d3f8: 3b01 subs r3, #1 - 803d3fa: b29b uxth r3, r3 - 803d3fc: b21b sxth r3, r3 - 803d3fe: 83fb strh r3, [r7, #30] + 803d34c: f9b7 301a ldrsh.w r3, [r7, #26] + 803d350: b29a uxth r2, r3 + 803d352: f8b7 3046 ldrh.w r3, [r7, #70] ; 0x46 + 803d356: 4413 add r3, r2 + 803d358: b29a uxth r2, r3 + 803d35a: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 803d35e: b29b uxth r3, r3 + 803d360: 4413 add r3, r2 + 803d362: b29b uxth r3, r3 + 803d364: 3b01 subs r3, #1 + 803d366: b29b uxth r3, r3 + 803d368: b21b sxth r3, r3 + 803d36a: 83fb strh r3, [r7, #30] area_sel.x1 = list_obj->coords.x1; - 803d400: 6d3b ldr r3, [r7, #80] ; 0x50 - 803d402: f9b3 3014 ldrsh.w r3, [r3, #20] - 803d406: 833b strh r3, [r7, #24] + 803d36c: 6d3b ldr r3, [r7, #80] ; 0x50 + 803d36e: f9b3 3014 ldrsh.w r3, [r3, #20] + 803d372: 833b strh r3, [r7, #24] area_sel.x2 = list_obj->coords.x2; - 803d408: 6d3b ldr r3, [r7, #80] ; 0x50 - 803d40a: f9b3 3018 ldrsh.w r3, [r3, #24] - 803d40e: 83bb strh r3, [r7, #28] + 803d374: 6d3b ldr r3, [r7, #80] ; 0x50 + 803d376: f9b3 3018 ldrsh.w r3, [r3, #24] + 803d37a: 83bb strh r3, [r7, #28] lv_area_t mask_sel; bool area_ok; area_ok = _lv_area_intersect(&mask_sel, draw_ctx->clip_area, &area_sel); - 803d410: 68bb ldr r3, [r7, #8] - 803d412: 6899 ldr r1, [r3, #8] - 803d414: f107 0218 add.w r2, r7, #24 - 803d418: f107 0310 add.w r3, r7, #16 - 803d41c: 4618 mov r0, r3 - 803d41e: f7f3 fe43 bl 80310a8 <_lv_area_intersect> - 803d422: 4603 mov r3, r0 - 803d424: f887 3045 strb.w r3, [r7, #69] ; 0x45 + 803d37c: 68bb ldr r3, [r7, #8] + 803d37e: 6899 ldr r1, [r3, #8] + 803d380: f107 0218 add.w r2, r7, #24 + 803d384: f107 0310 add.w r3, r7, #16 + 803d388: 4618 mov r0, r3 + 803d38a: f7f3 fe43 bl 8031014 <_lv_area_intersect> + 803d38e: 4603 mov r3, r0 + 803d390: f887 3045 strb.w r3, [r7, #69] ; 0x45 if(area_ok) { - 803d428: f897 3045 ldrb.w r3, [r7, #69] ; 0x45 - 803d42c: 2b00 cmp r3, #0 - 803d42e: d018 beq.n 803d462 + 803d394: f897 3045 ldrb.w r3, [r7, #69] ; 0x45 + 803d398: 2b00 cmp r3, #0 + 803d39a: d018 beq.n 803d3ce const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 803d430: 68bb ldr r3, [r7, #8] - 803d432: 689b ldr r3, [r3, #8] - 803d434: 643b str r3, [r7, #64] ; 0x40 + 803d39c: 68bb ldr r3, [r7, #8] + 803d39e: 689b ldr r3, [r3, #8] + 803d3a0: 643b str r3, [r7, #64] ; 0x40 draw_ctx->clip_area = &mask_sel; - 803d436: 68bb ldr r3, [r7, #8] - 803d438: f107 0210 add.w r2, r7, #16 - 803d43c: 609a str r2, [r3, #8] + 803d3a2: 68bb ldr r3, [r7, #8] + 803d3a4: f107 0210 add.w r2, r7, #16 + 803d3a8: 609a str r2, [r3, #8] lv_draw_label(draw_ctx, &label_dsc, &label->coords, lv_label_get_text(label), NULL); - 803d43e: 6cbb ldr r3, [r7, #72] ; 0x48 - 803d440: f103 0414 add.w r4, r3, #20 - 803d444: 6cb8 ldr r0, [r7, #72] ; 0x48 - 803d446: f001 fdbd bl 803efc4 - 803d44a: 4603 mov r3, r0 - 803d44c: f107 0120 add.w r1, r7, #32 - 803d450: 2200 movs r2, #0 - 803d452: 9200 str r2, [sp, #0] - 803d454: 4622 mov r2, r4 - 803d456: 68b8 ldr r0, [r7, #8] - 803d458: f7d4 fec4 bl 80121e4 + 803d3aa: 6cbb ldr r3, [r7, #72] ; 0x48 + 803d3ac: f103 0414 add.w r4, r3, #20 + 803d3b0: 6cb8 ldr r0, [r7, #72] ; 0x48 + 803d3b2: f001 fdbd bl 803ef30 + 803d3b6: 4603 mov r3, r0 + 803d3b8: f107 0120 add.w r1, r7, #32 + 803d3bc: 2200 movs r2, #0 + 803d3be: 9200 str r2, [sp, #0] + 803d3c0: 4622 mov r2, r4 + 803d3c2: 68b8 ldr r0, [r7, #8] + 803d3c4: f7d4 fec4 bl 8012150 draw_ctx->clip_area = clip_area_ori; - 803d45c: 68bb ldr r3, [r7, #8] - 803d45e: 6c3a ldr r2, [r7, #64] ; 0x40 - 803d460: 609a str r2, [r3, #8] + 803d3c8: 68bb ldr r3, [r7, #8] + 803d3ca: 6c3a ldr r2, [r7, #64] ; 0x40 + 803d3cc: 609a str r2, [r3, #8] } list_obj->state = state_orig; - 803d462: 6d3b ldr r3, [r7, #80] ; 0x50 - 803d464: f8b7 204e ldrh.w r2, [r7, #78] ; 0x4e - 803d468: 841a strh r2, [r3, #32] + 803d3ce: 6d3b ldr r3, [r7, #80] ; 0x50 + 803d3d0: f8b7 204e ldrh.w r2, [r7, #78] ; 0x4e + 803d3d4: 841a strh r2, [r3, #32] list_obj->skip_trans = 0; - 803d46a: 6d3a ldr r2, [r7, #80] ; 0x50 - 803d46c: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 803d470: f36f 0382 bfc r3, #2, #1 - 803d474: f882 3022 strb.w r3, [r2, #34] ; 0x22 - 803d478: e002 b.n 803d480 + 803d3d6: 6d3a ldr r2, [r7, #80] ; 0x50 + 803d3d8: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 803d3dc: f36f 0382 bfc r3, #2, #1 + 803d3e0: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 803d3e4: e002 b.n 803d3ec if(id == LV_DROPDOWN_PR_NONE) return; - 803d47a: bf00 nop - 803d47c: e000 b.n 803d480 + 803d3e6: bf00 nop + 803d3e8: e000 b.n 803d3ec if(label == NULL) return; - 803d47e: bf00 nop + 803d3ea: bf00 nop } - 803d480: 375c adds r7, #92 ; 0x5c - 803d482: 46bd mov sp, r7 - 803d484: bd90 pop {r4, r7, pc} + 803d3ec: 375c adds r7, #92 ; 0x5c + 803d3ee: 46bd mov sp, r7 + 803d3f0: bd90 pop {r4, r7, pc} -0803d486 : +0803d3f2 : static lv_res_t btn_release_handler(lv_obj_t * obj) { - 803d486: b580 push {r7, lr} - 803d488: b086 sub sp, #24 - 803d48a: af00 add r7, sp, #0 - 803d48c: 6078 str r0, [r7, #4] + 803d3f2: b580 push {r7, lr} + 803d3f4: b086 sub sp, #24 + 803d3f6: af00 add r7, sp, #0 + 803d3f8: 6078 str r0, [r7, #4] lv_dropdown_t * dropdown = (lv_dropdown_t *)obj; - 803d48e: 687b ldr r3, [r7, #4] - 803d490: 617b str r3, [r7, #20] + 803d3fa: 687b ldr r3, [r7, #4] + 803d3fc: 617b str r3, [r7, #20] lv_indev_t * indev = lv_indev_get_act(); - 803d492: f7c5 ff41 bl 8003318 - 803d496: 6138 str r0, [r7, #16] + 803d3fe: f7c5 ff55 bl 80032ac + 803d402: 6138 str r0, [r7, #16] if(lv_indev_get_scroll_obj(indev) == NULL) { - 803d498: 6938 ldr r0, [r7, #16] - 803d49a: f7c6 f87f bl 800359c - 803d49e: 4603 mov r3, r0 - 803d4a0: 2b00 cmp r3, #0 - 803d4a2: d13b bne.n 803d51c + 803d404: 6938 ldr r0, [r7, #16] + 803d406: f7c6 f893 bl 8003530 + 803d40a: 4603 mov r3, r0 + 803d40c: 2b00 cmp r3, #0 + 803d40e: d13b bne.n 803d488 if(lv_dropdown_is_open(obj)) { - 803d4a4: 6878 ldr r0, [r7, #4] - 803d4a6: f7ff f9a0 bl 803c7ea - 803d4aa: 4603 mov r3, r0 - 803d4ac: 2b00 cmp r3, #0 - 803d4ae: d031 beq.n 803d514 + 803d410: 6878 ldr r0, [r7, #4] + 803d412: f7ff f9a0 bl 803c756 + 803d416: 4603 mov r3, r0 + 803d418: 2b00 cmp r3, #0 + 803d41a: d031 beq.n 803d480 lv_dropdown_close(obj); - 803d4b0: 6878 ldr r0, [r7, #4] - 803d4b2: f7ff f97d bl 803c7b0 + 803d41c: 6878 ldr r0, [r7, #4] + 803d41e: f7ff f97d bl 803c71c if(dropdown->sel_opt_id_orig != dropdown->sel_opt_id) { - 803d4b6: 697b ldr r3, [r7, #20] - 803d4b8: 8f1a ldrh r2, [r3, #56] ; 0x38 - 803d4ba: 697b ldr r3, [r7, #20] - 803d4bc: 8edb ldrh r3, [r3, #54] ; 0x36 - 803d4be: 429a cmp r2, r3 - 803d4c0: d017 beq.n 803d4f2 + 803d422: 697b ldr r3, [r7, #20] + 803d424: 8f1a ldrh r2, [r3, #56] ; 0x38 + 803d426: 697b ldr r3, [r7, #20] + 803d428: 8edb ldrh r3, [r3, #54] ; 0x36 + 803d42a: 429a cmp r2, r3 + 803d42c: d017 beq.n 803d45e dropdown->sel_opt_id_orig = dropdown->sel_opt_id; - 803d4c2: 697b ldr r3, [r7, #20] - 803d4c4: 8eda ldrh r2, [r3, #54] ; 0x36 - 803d4c6: 697b ldr r3, [r7, #20] - 803d4c8: 871a strh r2, [r3, #56] ; 0x38 + 803d42e: 697b ldr r3, [r7, #20] + 803d430: 8eda ldrh r2, [r3, #54] ; 0x36 + 803d432: 697b ldr r3, [r7, #20] + 803d434: 871a strh r2, [r3, #56] ; 0x38 lv_res_t res; uint32_t id = dropdown->sel_opt_id; /*Just to use uint32_t in event data*/ - 803d4ca: 697b ldr r3, [r7, #20] - 803d4cc: 8edb ldrh r3, [r3, #54] ; 0x36 - 803d4ce: 60bb str r3, [r7, #8] + 803d436: 697b ldr r3, [r7, #20] + 803d438: 8edb ldrh r3, [r3, #54] ; 0x36 + 803d43a: 60bb str r3, [r7, #8] res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, &id); - 803d4d0: f107 0308 add.w r3, r7, #8 - 803d4d4: 461a mov r2, r3 - 803d4d6: 211c movs r1, #28 - 803d4d8: 6878 ldr r0, [r7, #4] - 803d4da: f7c4 ffd1 bl 8002480 - 803d4de: 4603 mov r3, r0 - 803d4e0: 73fb strb r3, [r7, #15] + 803d43c: f107 0308 add.w r3, r7, #8 + 803d440: 461a mov r2, r3 + 803d442: 211c movs r1, #28 + 803d444: 6878 ldr r0, [r7, #4] + 803d446: f7c4 ffe5 bl 8002414 + 803d44a: 4603 mov r3, r0 + 803d44c: 73fb strb r3, [r7, #15] if(res != LV_RES_OK) return res; - 803d4e2: 7bfb ldrb r3, [r7, #15] - 803d4e4: 2b01 cmp r3, #1 - 803d4e6: d001 beq.n 803d4ec - 803d4e8: 7bfb ldrb r3, [r7, #15] - 803d4ea: e01f b.n 803d52c + 803d44e: 7bfb ldrb r3, [r7, #15] + 803d450: 2b01 cmp r3, #1 + 803d452: d001 beq.n 803d458 + 803d454: 7bfb ldrb r3, [r7, #15] + 803d456: e01f b.n 803d498 lv_obj_invalidate(obj); - 803d4ec: 6878 ldr r0, [r7, #4] - 803d4ee: f7cd fae0 bl 800aab2 + 803d458: 6878 ldr r0, [r7, #4] + 803d45a: f7cd faf4 bl 800aa46 } lv_indev_type_t indev_type = lv_indev_get_type(indev); - 803d4f2: 6938 ldr r0, [r7, #16] - 803d4f4: f7c5 ff1a bl 800332c - 803d4f8: 4603 mov r3, r0 - 803d4fa: 73bb strb r3, [r7, #14] + 803d45e: 6938 ldr r0, [r7, #16] + 803d460: f7c5 ff2e bl 80032c0 + 803d464: 4603 mov r3, r0 + 803d466: 73bb strb r3, [r7, #14] if(indev_type == LV_INDEV_TYPE_ENCODER) { - 803d4fc: 7bbb ldrb r3, [r7, #14] - 803d4fe: 2b04 cmp r3, #4 - 803d500: d113 bne.n 803d52a + 803d468: 7bbb ldrb r3, [r7, #14] + 803d46a: 2b04 cmp r3, #4 + 803d46c: d113 bne.n 803d496 lv_group_set_editing(lv_obj_get_group(obj), false); - 803d502: 6878 ldr r0, [r7, #4] - 803d504: f7c9 f984 bl 8006810 - 803d508: 4603 mov r3, r0 - 803d50a: 2100 movs r1, #0 - 803d50c: 4618 mov r0, r3 - 803d50e: f7c5 fc9a bl 8002e46 - 803d512: e00a b.n 803d52a + 803d46e: 6878 ldr r0, [r7, #4] + 803d470: f7c9 f998 bl 80067a4 + 803d474: 4603 mov r3, r0 + 803d476: 2100 movs r1, #0 + 803d478: 4618 mov r0, r3 + 803d47a: f7c5 fcae bl 8002dda + 803d47e: e00a b.n 803d496 } } else { lv_dropdown_open(obj); - 803d514: 6878 ldr r0, [r7, #4] - 803d516: f7fe ff7c bl 803c412 - 803d51a: e006 b.n 803d52a + 803d480: 6878 ldr r0, [r7, #4] + 803d482: f7fe ff7c bl 803c37e + 803d486: e006 b.n 803d496 } } else { dropdown->sel_opt_id = dropdown->sel_opt_id_orig; - 803d51c: 697b ldr r3, [r7, #20] - 803d51e: 8f1a ldrh r2, [r3, #56] ; 0x38 - 803d520: 697b ldr r3, [r7, #20] - 803d522: 86da strh r2, [r3, #54] ; 0x36 + 803d488: 697b ldr r3, [r7, #20] + 803d48a: 8f1a ldrh r2, [r3, #56] ; 0x38 + 803d48c: 697b ldr r3, [r7, #20] + 803d48e: 86da strh r2, [r3, #54] ; 0x36 lv_obj_invalidate(obj); - 803d524: 6878 ldr r0, [r7, #4] - 803d526: f7cd fac4 bl 800aab2 + 803d490: 6878 ldr r0, [r7, #4] + 803d492: f7cd fad8 bl 800aa46 } return LV_RES_OK; - 803d52a: 2301 movs r3, #1 + 803d496: 2301 movs r3, #1 } - 803d52c: 4618 mov r0, r3 - 803d52e: 3718 adds r7, #24 - 803d530: 46bd mov sp, r7 - 803d532: bd80 pop {r7, pc} + 803d498: 4618 mov r0, r3 + 803d49a: 3718 adds r7, #24 + 803d49c: 46bd mov sp, r7 + 803d49e: bd80 pop {r7, pc} -0803d534 : +0803d4a0 : * Called when a drop down list is released to open it or set new option * @param list pointer to the drop down list's list * @return LV_RES_INV if the list is not being deleted in the user callback. Else LV_RES_OK */ static lv_res_t list_release_handler(lv_obj_t * list_obj) { - 803d534: b580 push {r7, lr} - 803d536: b08a sub sp, #40 ; 0x28 - 803d538: af00 add r7, sp, #0 - 803d53a: 6078 str r0, [r7, #4] + 803d4a0: b580 push {r7, lr} + 803d4a2: b08a sub sp, #40 ; 0x28 + 803d4a4: af00 add r7, sp, #0 + 803d4a6: 6078 str r0, [r7, #4] lv_dropdown_list_t * list = (lv_dropdown_list_t *) list_obj; - 803d53c: 687b ldr r3, [r7, #4] - 803d53e: 627b str r3, [r7, #36] ; 0x24 + 803d4a8: 687b ldr r3, [r7, #4] + 803d4aa: 627b str r3, [r7, #36] ; 0x24 lv_obj_t * dropdown_obj = list->dropdown; - 803d540: 6a7b ldr r3, [r7, #36] ; 0x24 - 803d542: 6a5b ldr r3, [r3, #36] ; 0x24 - 803d544: 623b str r3, [r7, #32] + 803d4ac: 6a7b ldr r3, [r7, #36] ; 0x24 + 803d4ae: 6a5b ldr r3, [r3, #36] ; 0x24 + 803d4b0: 623b str r3, [r7, #32] lv_dropdown_t * dropdown = (lv_dropdown_t *)dropdown_obj; - 803d546: 6a3b ldr r3, [r7, #32] - 803d548: 61fb str r3, [r7, #28] + 803d4b2: 6a3b ldr r3, [r7, #32] + 803d4b4: 61fb str r3, [r7, #28] lv_indev_t * indev = lv_indev_get_act(); - 803d54a: f7c5 fee5 bl 8003318 - 803d54e: 61b8 str r0, [r7, #24] + 803d4b6: f7c5 fef9 bl 80032ac + 803d4ba: 61b8 str r0, [r7, #24] /*Leave edit mode once a new item is selected*/ if(lv_indev_get_type(indev) == LV_INDEV_TYPE_ENCODER) { - 803d550: 69b8 ldr r0, [r7, #24] - 803d552: f7c5 feeb bl 800332c - 803d556: 4603 mov r3, r0 - 803d558: 2b04 cmp r3, #4 - 803d55a: d111 bne.n 803d580 + 803d4bc: 69b8 ldr r0, [r7, #24] + 803d4be: f7c5 feff bl 80032c0 + 803d4c2: 4603 mov r3, r0 + 803d4c4: 2b04 cmp r3, #4 + 803d4c6: d111 bne.n 803d4ec dropdown->sel_opt_id_orig = dropdown->sel_opt_id; - 803d55c: 69fb ldr r3, [r7, #28] - 803d55e: 8eda ldrh r2, [r3, #54] ; 0x36 - 803d560: 69fb ldr r3, [r7, #28] - 803d562: 871a strh r2, [r3, #56] ; 0x38 + 803d4c8: 69fb ldr r3, [r7, #28] + 803d4ca: 8eda ldrh r2, [r3, #54] ; 0x36 + 803d4cc: 69fb ldr r3, [r7, #28] + 803d4ce: 871a strh r2, [r3, #56] ; 0x38 lv_group_t * g = lv_obj_get_group(dropdown_obj); - 803d564: 6a38 ldr r0, [r7, #32] - 803d566: f7c9 f953 bl 8006810 - 803d56a: 6178 str r0, [r7, #20] + 803d4d0: 6a38 ldr r0, [r7, #32] + 803d4d2: f7c9 f967 bl 80067a4 + 803d4d6: 6178 str r0, [r7, #20] if(lv_group_get_editing(g)) { - 803d56c: 6978 ldr r0, [r7, #20] - 803d56e: f7c5 fcc2 bl 8002ef6 - 803d572: 4603 mov r3, r0 - 803d574: 2b00 cmp r3, #0 - 803d576: d003 beq.n 803d580 + 803d4d8: 6978 ldr r0, [r7, #20] + 803d4da: f7c5 fcd6 bl 8002e8a + 803d4de: 4603 mov r3, r0 + 803d4e0: 2b00 cmp r3, #0 + 803d4e2: d003 beq.n 803d4ec lv_group_set_editing(g, false); - 803d578: 2100 movs r1, #0 - 803d57a: 6978 ldr r0, [r7, #20] - 803d57c: f7c5 fc63 bl 8002e46 + 803d4e4: 2100 movs r1, #0 + 803d4e6: 6978 ldr r0, [r7, #20] + 803d4e8: f7c5 fc77 bl 8002dda } } /*Search the clicked option (For KEYPAD and ENCODER the new value should be already set)*/ if(lv_indev_get_type(indev) == LV_INDEV_TYPE_POINTER || lv_indev_get_type(indev) == LV_INDEV_TYPE_BUTTON) { - 803d580: 69b8 ldr r0, [r7, #24] - 803d582: f7c5 fed3 bl 800332c - 803d586: 4603 mov r3, r0 - 803d588: 2b01 cmp r3, #1 - 803d58a: d005 beq.n 803d598 - 803d58c: 69b8 ldr r0, [r7, #24] - 803d58e: f7c5 fecd bl 800332c - 803d592: 4603 mov r3, r0 - 803d594: 2b03 cmp r3, #3 - 803d596: d113 bne.n 803d5c0 + 803d4ec: 69b8 ldr r0, [r7, #24] + 803d4ee: f7c5 fee7 bl 80032c0 + 803d4f2: 4603 mov r3, r0 + 803d4f4: 2b01 cmp r3, #1 + 803d4f6: d005 beq.n 803d504 + 803d4f8: 69b8 ldr r0, [r7, #24] + 803d4fa: f7c5 fee1 bl 80032c0 + 803d4fe: 4603 mov r3, r0 + 803d500: 2b03 cmp r3, #3 + 803d502: d113 bne.n 803d52c lv_point_t p; lv_indev_get_point(indev, &p); - 803d598: f107 0308 add.w r3, r7, #8 - 803d59c: 4619 mov r1, r3 - 803d59e: 69b8 ldr r0, [r7, #24] - 803d5a0: f7c5 ffac bl 80034fc + 803d504: f107 0308 add.w r3, r7, #8 + 803d508: 4619 mov r1, r3 + 803d50a: 69b8 ldr r0, [r7, #24] + 803d50c: f7c5 ffc0 bl 8003490 dropdown->sel_opt_id = get_id_on_point(dropdown_obj, p.y); - 803d5a4: f9b7 300a ldrsh.w r3, [r7, #10] - 803d5a8: 4619 mov r1, r3 - 803d5aa: 6a38 ldr r0, [r7, #32] - 803d5ac: f000 f85c bl 803d668 - 803d5b0: 4603 mov r3, r0 - 803d5b2: 461a mov r2, r3 - 803d5b4: 69fb ldr r3, [r7, #28] - 803d5b6: 86da strh r2, [r3, #54] ; 0x36 + 803d510: f9b7 300a ldrsh.w r3, [r7, #10] + 803d514: 4619 mov r1, r3 + 803d516: 6a38 ldr r0, [r7, #32] + 803d518: f000 f85c bl 803d5d4 + 803d51c: 4603 mov r3, r0 + 803d51e: 461a mov r2, r3 + 803d520: 69fb ldr r3, [r7, #28] + 803d522: 86da strh r2, [r3, #54] ; 0x36 dropdown->sel_opt_id_orig = dropdown->sel_opt_id; - 803d5b8: 69fb ldr r3, [r7, #28] - 803d5ba: 8eda ldrh r2, [r3, #54] ; 0x36 - 803d5bc: 69fb ldr r3, [r7, #28] - 803d5be: 871a strh r2, [r3, #56] ; 0x38 + 803d524: 69fb ldr r3, [r7, #28] + 803d526: 8eda ldrh r2, [r3, #54] ; 0x36 + 803d528: 69fb ldr r3, [r7, #28] + 803d52a: 871a strh r2, [r3, #56] ; 0x38 } lv_dropdown_close(dropdown_obj); - 803d5c0: 6a38 ldr r0, [r7, #32] - 803d5c2: f7ff f8f5 bl 803c7b0 + 803d52c: 6a38 ldr r0, [r7, #32] + 803d52e: f7ff f8f5 bl 803c71c /*Invalidate to refresh the text*/ if(dropdown->text == NULL) lv_obj_invalidate(dropdown_obj); - 803d5c6: 69fb ldr r3, [r7, #28] - 803d5c8: 6a9b ldr r3, [r3, #40] ; 0x28 - 803d5ca: 2b00 cmp r3, #0 - 803d5cc: d102 bne.n 803d5d4 - 803d5ce: 6a38 ldr r0, [r7, #32] - 803d5d0: f7cd fa6f bl 800aab2 + 803d532: 69fb ldr r3, [r7, #28] + 803d534: 6a9b ldr r3, [r3, #40] ; 0x28 + 803d536: 2b00 cmp r3, #0 + 803d538: d102 bne.n 803d540 + 803d53a: 6a38 ldr r0, [r7, #32] + 803d53c: f7cd fa83 bl 800aa46 uint32_t id = dropdown->sel_opt_id; /*Just to use uint32_t in event data*/ - 803d5d4: 69fb ldr r3, [r7, #28] - 803d5d6: 8edb ldrh r3, [r3, #54] ; 0x36 - 803d5d8: 60fb str r3, [r7, #12] + 803d540: 69fb ldr r3, [r7, #28] + 803d542: 8edb ldrh r3, [r3, #54] ; 0x36 + 803d544: 60fb str r3, [r7, #12] lv_res_t res = lv_event_send(dropdown_obj, LV_EVENT_VALUE_CHANGED, &id); - 803d5da: f107 030c add.w r3, r7, #12 - 803d5de: 461a mov r2, r3 - 803d5e0: 211c movs r1, #28 - 803d5e2: 6a38 ldr r0, [r7, #32] - 803d5e4: f7c4 ff4c bl 8002480 - 803d5e8: 4603 mov r3, r0 - 803d5ea: 74fb strb r3, [r7, #19] + 803d546: f107 030c add.w r3, r7, #12 + 803d54a: 461a mov r2, r3 + 803d54c: 211c movs r1, #28 + 803d54e: 6a38 ldr r0, [r7, #32] + 803d550: f7c4 ff60 bl 8002414 + 803d554: 4603 mov r3, r0 + 803d556: 74fb strb r3, [r7, #19] if(res != LV_RES_OK) return res; - 803d5ec: 7cfb ldrb r3, [r7, #19] - 803d5ee: 2b01 cmp r3, #1 - 803d5f0: d001 beq.n 803d5f6 - 803d5f2: 7cfb ldrb r3, [r7, #19] - 803d5f4: e000 b.n 803d5f8 + 803d558: 7cfb ldrb r3, [r7, #19] + 803d55a: 2b01 cmp r3, #1 + 803d55c: d001 beq.n 803d562 + 803d55e: 7cfb ldrb r3, [r7, #19] + 803d560: e000 b.n 803d564 return LV_RES_OK; - 803d5f6: 2301 movs r3, #1 + 803d562: 2301 movs r3, #1 } - 803d5f8: 4618 mov r0, r3 - 803d5fa: 3728 adds r7, #40 ; 0x28 - 803d5fc: 46bd mov sp, r7 - 803d5fe: bd80 pop {r7, pc} + 803d564: 4618 mov r0, r3 + 803d566: 3728 adds r7, #40 ; 0x28 + 803d568: 46bd mov sp, r7 + 803d56a: bd80 pop {r7, pc} -0803d600 : +0803d56c : static void list_press_handler(lv_obj_t * list_obj) { - 803d600: b580 push {r7, lr} - 803d602: b088 sub sp, #32 - 803d604: af00 add r7, sp, #0 - 803d606: 6078 str r0, [r7, #4] + 803d56c: b580 push {r7, lr} + 803d56e: b088 sub sp, #32 + 803d570: af00 add r7, sp, #0 + 803d572: 6078 str r0, [r7, #4] lv_dropdown_list_t * list = (lv_dropdown_list_t *) list_obj; - 803d608: 687b ldr r3, [r7, #4] - 803d60a: 61fb str r3, [r7, #28] + 803d574: 687b ldr r3, [r7, #4] + 803d576: 61fb str r3, [r7, #28] lv_obj_t * dropdown_obj = list->dropdown; - 803d60c: 69fb ldr r3, [r7, #28] - 803d60e: 6a5b ldr r3, [r3, #36] ; 0x24 - 803d610: 61bb str r3, [r7, #24] + 803d578: 69fb ldr r3, [r7, #28] + 803d57a: 6a5b ldr r3, [r3, #36] ; 0x24 + 803d57c: 61bb str r3, [r7, #24] lv_dropdown_t * dropdown = (lv_dropdown_t *)dropdown_obj; - 803d612: 69bb ldr r3, [r7, #24] - 803d614: 617b str r3, [r7, #20] + 803d57e: 69bb ldr r3, [r7, #24] + 803d580: 617b str r3, [r7, #20] lv_indev_t * indev = lv_indev_get_act(); - 803d616: f7c5 fe7f bl 8003318 - 803d61a: 6138 str r0, [r7, #16] + 803d582: f7c5 fe93 bl 80032ac + 803d586: 6138 str r0, [r7, #16] if(indev && (lv_indev_get_type(indev) == LV_INDEV_TYPE_POINTER || lv_indev_get_type(indev) == LV_INDEV_TYPE_BUTTON)) { - 803d61c: 693b ldr r3, [r7, #16] - 803d61e: 2b00 cmp r3, #0 - 803d620: d01e beq.n 803d660 - 803d622: 6938 ldr r0, [r7, #16] - 803d624: f7c5 fe82 bl 800332c - 803d628: 4603 mov r3, r0 - 803d62a: 2b01 cmp r3, #1 - 803d62c: d005 beq.n 803d63a - 803d62e: 6938 ldr r0, [r7, #16] - 803d630: f7c5 fe7c bl 800332c - 803d634: 4603 mov r3, r0 - 803d636: 2b03 cmp r3, #3 - 803d638: d112 bne.n 803d660 + 803d588: 693b ldr r3, [r7, #16] + 803d58a: 2b00 cmp r3, #0 + 803d58c: d01e beq.n 803d5cc + 803d58e: 6938 ldr r0, [r7, #16] + 803d590: f7c5 fe96 bl 80032c0 + 803d594: 4603 mov r3, r0 + 803d596: 2b01 cmp r3, #1 + 803d598: d005 beq.n 803d5a6 + 803d59a: 6938 ldr r0, [r7, #16] + 803d59c: f7c5 fe90 bl 80032c0 + 803d5a0: 4603 mov r3, r0 + 803d5a2: 2b03 cmp r3, #3 + 803d5a4: d112 bne.n 803d5cc lv_point_t p; lv_indev_get_point(indev, &p); - 803d63a: f107 030c add.w r3, r7, #12 - 803d63e: 4619 mov r1, r3 - 803d640: 6938 ldr r0, [r7, #16] - 803d642: f7c5 ff5b bl 80034fc + 803d5a6: f107 030c add.w r3, r7, #12 + 803d5aa: 4619 mov r1, r3 + 803d5ac: 6938 ldr r0, [r7, #16] + 803d5ae: f7c5 ff6f bl 8003490 dropdown->pr_opt_id = get_id_on_point(dropdown_obj, p.y); - 803d646: f9b7 300e ldrsh.w r3, [r7, #14] - 803d64a: 4619 mov r1, r3 - 803d64c: 69b8 ldr r0, [r7, #24] - 803d64e: f000 f80b bl 803d668 - 803d652: 4603 mov r3, r0 - 803d654: 461a mov r2, r3 - 803d656: 697b ldr r3, [r7, #20] - 803d658: 875a strh r2, [r3, #58] ; 0x3a + 803d5b2: f9b7 300e ldrsh.w r3, [r7, #14] + 803d5b6: 4619 mov r1, r3 + 803d5b8: 69b8 ldr r0, [r7, #24] + 803d5ba: f000 f80b bl 803d5d4 + 803d5be: 4603 mov r3, r0 + 803d5c0: 461a mov r2, r3 + 803d5c2: 697b ldr r3, [r7, #20] + 803d5c4: 875a strh r2, [r3, #58] ; 0x3a lv_obj_invalidate(list_obj); - 803d65a: 6878 ldr r0, [r7, #4] - 803d65c: f7cd fa29 bl 800aab2 + 803d5c6: 6878 ldr r0, [r7, #4] + 803d5c8: f7cd fa3d bl 800aa46 } } - 803d660: bf00 nop - 803d662: 3720 adds r7, #32 - 803d664: 46bd mov sp, r7 - 803d666: bd80 pop {r7, pc} + 803d5cc: bf00 nop + 803d5ce: 3720 adds r7, #32 + 803d5d0: 46bd mov sp, r7 + 803d5d2: bd80 pop {r7, pc} -0803d668 : +0803d5d4 : static uint16_t get_id_on_point(lv_obj_t * dropdown_obj, lv_coord_t y) { - 803d668: b580 push {r7, lr} - 803d66a: b088 sub sp, #32 - 803d66c: af00 add r7, sp, #0 - 803d66e: 6078 str r0, [r7, #4] - 803d670: 460b mov r3, r1 - 803d672: 807b strh r3, [r7, #2] + 803d5d4: b580 push {r7, lr} + 803d5d6: b088 sub sp, #32 + 803d5d8: af00 add r7, sp, #0 + 803d5da: 6078 str r0, [r7, #4] + 803d5dc: 460b mov r3, r1 + 803d5de: 807b strh r3, [r7, #2] lv_dropdown_t * dropdown = (lv_dropdown_t *)dropdown_obj; - 803d674: 687b ldr r3, [r7, #4] - 803d676: 61bb str r3, [r7, #24] + 803d5e0: 687b ldr r3, [r7, #4] + 803d5e2: 61bb str r3, [r7, #24] lv_obj_t * label = get_label(dropdown_obj); - 803d678: 6878 ldr r0, [r7, #4] - 803d67a: f000 f88b bl 803d794 - 803d67e: 6178 str r0, [r7, #20] + 803d5e4: 6878 ldr r0, [r7, #4] + 803d5e6: f000 f88b bl 803d700 + 803d5ea: 6178 str r0, [r7, #20] if(label == NULL) return 0; - 803d680: 697b ldr r3, [r7, #20] - 803d682: 2b00 cmp r3, #0 - 803d684: d101 bne.n 803d68a - 803d686: 2300 movs r3, #0 - 803d688: e038 b.n 803d6fc + 803d5ec: 697b ldr r3, [r7, #20] + 803d5ee: 2b00 cmp r3, #0 + 803d5f0: d101 bne.n 803d5f6 + 803d5f2: 2300 movs r3, #0 + 803d5f4: e038 b.n 803d668 y -= label->coords.y1; - 803d68a: 887a ldrh r2, [r7, #2] - 803d68c: 697b ldr r3, [r7, #20] - 803d68e: f9b3 3016 ldrsh.w r3, [r3, #22] - 803d692: b29b uxth r3, r3 - 803d694: 1ad3 subs r3, r2, r3 - 803d696: b29b uxth r3, r3 - 803d698: 807b strh r3, [r7, #2] + 803d5f6: 887a ldrh r2, [r7, #2] + 803d5f8: 697b ldr r3, [r7, #20] + 803d5fa: f9b3 3016 ldrsh.w r3, [r3, #22] + 803d5fe: b29b uxth r3, r3 + 803d600: 1ad3 subs r3, r2, r3 + 803d602: b29b uxth r3, r3 + 803d604: 807b strh r3, [r7, #2] const lv_font_t * font = lv_obj_get_style_text_font(label, LV_PART_MAIN); - 803d69a: 2100 movs r1, #0 - 803d69c: 6978 ldr r0, [r7, #20] - 803d69e: f7fe fcff bl 803c0a0 - 803d6a2: 6138 str r0, [r7, #16] + 803d606: 2100 movs r1, #0 + 803d608: 6978 ldr r0, [r7, #20] + 803d60a: f7fe fcff bl 803c00c + 803d60e: 6138 str r0, [r7, #16] lv_coord_t font_h = lv_font_get_line_height(font); - 803d6a4: 6938 ldr r0, [r7, #16] - 803d6a6: f7fe fc7d bl 803bfa4 - 803d6aa: 4603 mov r3, r0 - 803d6ac: 81fb strh r3, [r7, #14] + 803d610: 6938 ldr r0, [r7, #16] + 803d612: f7fe fc7d bl 803bf10 + 803d616: 4603 mov r3, r0 + 803d618: 81fb strh r3, [r7, #14] lv_coord_t line_space = lv_obj_get_style_text_line_space(label, LV_PART_MAIN); - 803d6ae: 2100 movs r1, #0 - 803d6b0: 6978 ldr r0, [r7, #20] - 803d6b2: f7fe fd07 bl 803c0c4 - 803d6b6: 4603 mov r3, r0 - 803d6b8: 81bb strh r3, [r7, #12] + 803d61a: 2100 movs r1, #0 + 803d61c: 6978 ldr r0, [r7, #20] + 803d61e: f7fe fd07 bl 803c030 + 803d622: 4603 mov r3, r0 + 803d624: 81bb strh r3, [r7, #12] y += line_space / 2; - 803d6ba: f9b7 300c ldrsh.w r3, [r7, #12] - 803d6be: 0fda lsrs r2, r3, #31 - 803d6c0: 4413 add r3, r2 - 803d6c2: 105b asrs r3, r3, #1 - 803d6c4: b21b sxth r3, r3 - 803d6c6: b29a uxth r2, r3 - 803d6c8: 887b ldrh r3, [r7, #2] - 803d6ca: 4413 add r3, r2 - 803d6cc: b29b uxth r3, r3 - 803d6ce: 807b strh r3, [r7, #2] + 803d626: f9b7 300c ldrsh.w r3, [r7, #12] + 803d62a: 0fda lsrs r2, r3, #31 + 803d62c: 4413 add r3, r2 + 803d62e: 105b asrs r3, r3, #1 + 803d630: b21b sxth r3, r3 + 803d632: b29a uxth r2, r3 + 803d634: 887b ldrh r3, [r7, #2] + 803d636: 4413 add r3, r2 + 803d638: b29b uxth r3, r3 + 803d63a: 807b strh r3, [r7, #2] lv_coord_t h = font_h + line_space; - 803d6d0: 89fa ldrh r2, [r7, #14] - 803d6d2: 89bb ldrh r3, [r7, #12] - 803d6d4: 4413 add r3, r2 - 803d6d6: b29b uxth r3, r3 - 803d6d8: 817b strh r3, [r7, #10] + 803d63c: 89fa ldrh r2, [r7, #14] + 803d63e: 89bb ldrh r3, [r7, #12] + 803d640: 4413 add r3, r2 + 803d642: b29b uxth r3, r3 + 803d644: 817b strh r3, [r7, #10] uint16_t opt = y / h; - 803d6da: f9b7 2002 ldrsh.w r2, [r7, #2] - 803d6de: f9b7 300a ldrsh.w r3, [r7, #10] - 803d6e2: fb92 f3f3 sdiv r3, r2, r3 - 803d6e6: 83fb strh r3, [r7, #30] + 803d646: f9b7 2002 ldrsh.w r2, [r7, #2] + 803d64a: f9b7 300a ldrsh.w r3, [r7, #10] + 803d64e: fb92 f3f3 sdiv r3, r2, r3 + 803d652: 83fb strh r3, [r7, #30] if(opt >= dropdown->option_cnt) opt = dropdown->option_cnt - 1; - 803d6e8: 69bb ldr r3, [r7, #24] - 803d6ea: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803d6ec: 8bfa ldrh r2, [r7, #30] - 803d6ee: 429a cmp r2, r3 - 803d6f0: d303 bcc.n 803d6fa - 803d6f2: 69bb ldr r3, [r7, #24] - 803d6f4: 8e9b ldrh r3, [r3, #52] ; 0x34 - 803d6f6: 3b01 subs r3, #1 - 803d6f8: 83fb strh r3, [r7, #30] + 803d654: 69bb ldr r3, [r7, #24] + 803d656: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803d658: 8bfa ldrh r2, [r7, #30] + 803d65a: 429a cmp r2, r3 + 803d65c: d303 bcc.n 803d666 + 803d65e: 69bb ldr r3, [r7, #24] + 803d660: 8e9b ldrh r3, [r3, #52] ; 0x34 + 803d662: 3b01 subs r3, #1 + 803d664: 83fb strh r3, [r7, #30] return opt; - 803d6fa: 8bfb ldrh r3, [r7, #30] + 803d666: 8bfb ldrh r3, [r7, #30] } - 803d6fc: 4618 mov r0, r3 - 803d6fe: 3720 adds r7, #32 - 803d700: 46bd mov sp, r7 - 803d702: bd80 pop {r7, pc} + 803d668: 4618 mov r0, r3 + 803d66a: 3720 adds r7, #32 + 803d66c: 46bd mov sp, r7 + 803d66e: bd80 pop {r7, pc} -0803d704 : +0803d670 : /** * Set the position of list when it is closed to show the selected item * @param ddlist pointer to a drop down list */ static void position_to_selected(lv_obj_t * dropdown_obj) { - 803d704: b590 push {r4, r7, lr} - 803d706: b089 sub sp, #36 ; 0x24 - 803d708: af00 add r7, sp, #0 - 803d70a: 6078 str r0, [r7, #4] + 803d670: b590 push {r4, r7, lr} + 803d672: b089 sub sp, #36 ; 0x24 + 803d674: af00 add r7, sp, #0 + 803d676: 6078 str r0, [r7, #4] lv_dropdown_t * dropdown = (lv_dropdown_t *)dropdown_obj; - 803d70c: 687b ldr r3, [r7, #4] - 803d70e: 61fb str r3, [r7, #28] + 803d678: 687b ldr r3, [r7, #4] + 803d67a: 61fb str r3, [r7, #28] lv_obj_t * label = get_label(dropdown_obj); - 803d710: 6878 ldr r0, [r7, #4] - 803d712: f000 f83f bl 803d794 - 803d716: 61b8 str r0, [r7, #24] + 803d67c: 6878 ldr r0, [r7, #4] + 803d67e: f000 f83f bl 803d700 + 803d682: 61b8 str r0, [r7, #24] if(label == NULL) return; - 803d718: 69bb ldr r3, [r7, #24] - 803d71a: 2b00 cmp r3, #0 - 803d71c: d034 beq.n 803d788 + 803d684: 69bb ldr r3, [r7, #24] + 803d686: 2b00 cmp r3, #0 + 803d688: d034 beq.n 803d6f4 if(lv_obj_get_height(label) <= lv_obj_get_content_height(dropdown_obj)) return; - 803d71e: 69b8 ldr r0, [r7, #24] - 803d720: f7cc fd20 bl 800a164 - 803d724: 4603 mov r3, r0 - 803d726: 461c mov r4, r3 - 803d728: 6878 ldr r0, [r7, #4] - 803d72a: f7cc fd54 bl 800a1d6 - 803d72e: 4603 mov r3, r0 - 803d730: 429c cmp r4, r3 - 803d732: dd2b ble.n 803d78c + 803d68a: 69b8 ldr r0, [r7, #24] + 803d68c: f7cc fd34 bl 800a0f8 + 803d690: 4603 mov r3, r0 + 803d692: 461c mov r4, r3 + 803d694: 6878 ldr r0, [r7, #4] + 803d696: f7cc fd68 bl 800a16a + 803d69a: 4603 mov r3, r0 + 803d69c: 429c cmp r4, r3 + 803d69e: dd2b ble.n 803d6f8 const lv_font_t * font = lv_obj_get_style_text_font(label, LV_PART_MAIN); - 803d734: 2100 movs r1, #0 - 803d736: 69b8 ldr r0, [r7, #24] - 803d738: f7fe fcb2 bl 803c0a0 - 803d73c: 6178 str r0, [r7, #20] + 803d6a0: 2100 movs r1, #0 + 803d6a2: 69b8 ldr r0, [r7, #24] + 803d6a4: f7fe fcb2 bl 803c00c + 803d6a8: 6178 str r0, [r7, #20] lv_coord_t font_h = lv_font_get_line_height(font); - 803d73e: 6978 ldr r0, [r7, #20] - 803d740: f7fe fc30 bl 803bfa4 - 803d744: 4603 mov r3, r0 - 803d746: 827b strh r3, [r7, #18] + 803d6aa: 6978 ldr r0, [r7, #20] + 803d6ac: f7fe fc30 bl 803bf10 + 803d6b0: 4603 mov r3, r0 + 803d6b2: 827b strh r3, [r7, #18] lv_coord_t line_space = lv_obj_get_style_text_line_space(label, LV_PART_MAIN); - 803d748: 2100 movs r1, #0 - 803d74a: 69b8 ldr r0, [r7, #24] - 803d74c: f7fe fcba bl 803c0c4 - 803d750: 4603 mov r3, r0 - 803d752: 823b strh r3, [r7, #16] + 803d6b4: 2100 movs r1, #0 + 803d6b6: 69b8 ldr r0, [r7, #24] + 803d6b8: f7fe fcba bl 803c030 + 803d6bc: 4603 mov r3, r0 + 803d6be: 823b strh r3, [r7, #16] lv_coord_t unit_h = font_h + line_space; - 803d754: 8a7a ldrh r2, [r7, #18] - 803d756: 8a3b ldrh r3, [r7, #16] - 803d758: 4413 add r3, r2 - 803d75a: b29b uxth r3, r3 - 803d75c: 81fb strh r3, [r7, #14] + 803d6c0: 8a7a ldrh r2, [r7, #18] + 803d6c2: 8a3b ldrh r3, [r7, #16] + 803d6c4: 4413 add r3, r2 + 803d6c6: b29b uxth r3, r3 + 803d6c8: 81fb strh r3, [r7, #14] lv_coord_t line_y1 = dropdown->sel_opt_id * unit_h; - 803d75e: 69fb ldr r3, [r7, #28] - 803d760: 8edb ldrh r3, [r3, #54] ; 0x36 - 803d762: 89fa ldrh r2, [r7, #14] - 803d764: fb02 f303 mul.w r3, r2, r3 - 803d768: b29b uxth r3, r3 - 803d76a: 81bb strh r3, [r7, #12] + 803d6ca: 69fb ldr r3, [r7, #28] + 803d6cc: 8edb ldrh r3, [r3, #54] ; 0x36 + 803d6ce: 89fa ldrh r2, [r7, #14] + 803d6d0: fb02 f303 mul.w r3, r2, r3 + 803d6d4: b29b uxth r3, r3 + 803d6d6: 81bb strh r3, [r7, #12] /*Scroll to the selected option*/ lv_obj_scroll_to_y(dropdown->list, line_y1, LV_ANIM_OFF); - 803d76c: 69fb ldr r3, [r7, #28] - 803d76e: 6a5b ldr r3, [r3, #36] ; 0x24 - 803d770: f9b7 100c ldrsh.w r1, [r7, #12] - 803d774: 2200 movs r2, #0 - 803d776: 4618 mov r0, r3 - 803d778: f7ce fd68 bl 800c24c + 803d6d8: 69fb ldr r3, [r7, #28] + 803d6da: 6a5b ldr r3, [r3, #36] ; 0x24 + 803d6dc: f9b7 100c ldrsh.w r1, [r7, #12] + 803d6e0: 2200 movs r2, #0 + 803d6e2: 4618 mov r0, r3 + 803d6e4: f7ce fd7c bl 800c1e0 lv_obj_invalidate(dropdown->list); - 803d77c: 69fb ldr r3, [r7, #28] - 803d77e: 6a5b ldr r3, [r3, #36] ; 0x24 - 803d780: 4618 mov r0, r3 - 803d782: f7cd f996 bl 800aab2 - 803d786: e002 b.n 803d78e + 803d6e8: 69fb ldr r3, [r7, #28] + 803d6ea: 6a5b ldr r3, [r3, #36] ; 0x24 + 803d6ec: 4618 mov r0, r3 + 803d6ee: f7cd f9aa bl 800aa46 + 803d6f2: e002 b.n 803d6fa if(label == NULL) return; - 803d788: bf00 nop - 803d78a: e000 b.n 803d78e + 803d6f4: bf00 nop + 803d6f6: e000 b.n 803d6fa if(lv_obj_get_height(label) <= lv_obj_get_content_height(dropdown_obj)) return; - 803d78c: bf00 nop + 803d6f8: bf00 nop } - 803d78e: 3724 adds r7, #36 ; 0x24 - 803d790: 46bd mov sp, r7 - 803d792: bd90 pop {r4, r7, pc} + 803d6fa: 3724 adds r7, #36 ; 0x24 + 803d6fc: 46bd mov sp, r7 + 803d6fe: bd90 pop {r4, r7, pc} -0803d794 : +0803d700 : static lv_obj_t * get_label(const lv_obj_t * obj) { - 803d794: b580 push {r7, lr} - 803d796: b084 sub sp, #16 - 803d798: af00 add r7, sp, #0 - 803d79a: 6078 str r0, [r7, #4] + 803d700: b580 push {r7, lr} + 803d702: b084 sub sp, #16 + 803d704: af00 add r7, sp, #0 + 803d706: 6078 str r0, [r7, #4] lv_dropdown_t * dropdown = (lv_dropdown_t *)obj; - 803d79c: 687b ldr r3, [r7, #4] - 803d79e: 60fb str r3, [r7, #12] + 803d708: 687b ldr r3, [r7, #4] + 803d70a: 60fb str r3, [r7, #12] if(dropdown->list == NULL) return NULL; - 803d7a0: 68fb ldr r3, [r7, #12] - 803d7a2: 6a5b ldr r3, [r3, #36] ; 0x24 - 803d7a4: 2b00 cmp r3, #0 - 803d7a6: d101 bne.n 803d7ac - 803d7a8: 2300 movs r3, #0 - 803d7aa: e006 b.n 803d7ba + 803d70c: 68fb ldr r3, [r7, #12] + 803d70e: 6a5b ldr r3, [r3, #36] ; 0x24 + 803d710: 2b00 cmp r3, #0 + 803d712: d101 bne.n 803d718 + 803d714: 2300 movs r3, #0 + 803d716: e006 b.n 803d726 return lv_obj_get_child(dropdown->list, 0); - 803d7ac: 68fb ldr r3, [r7, #12] - 803d7ae: 6a5b ldr r3, [r3, #36] ; 0x24 - 803d7b0: 2100 movs r1, #0 - 803d7b2: 4618 mov r0, r3 - 803d7b4: f7d1 ffba bl 800f72c - 803d7b8: 4603 mov r3, r0 + 803d718: 68fb ldr r3, [r7, #12] + 803d71a: 6a5b ldr r3, [r3, #36] ; 0x24 + 803d71c: 2100 movs r1, #0 + 803d71e: 4618 mov r0, r3 + 803d720: f7d1 ffba bl 800f698 + 803d724: 4603 mov r3, r0 } - 803d7ba: 4618 mov r0, r3 - 803d7bc: 3710 adds r7, #16 - 803d7be: 46bd mov sp, r7 - 803d7c0: bd80 pop {r7, pc} + 803d726: 4618 mov r0, r3 + 803d728: 3710 adds r7, #16 + 803d72a: 46bd mov sp, r7 + 803d72c: bd80 pop {r7, pc} -0803d7c2 : +0803d72e : { - 803d7c2: b480 push {r7} - 803d7c4: b083 sub sp, #12 + 803d72e: b480 push {r7} + 803d730: b083 sub sp, #12 + 803d732: af00 add r7, sp, #0 + 803d734: 6078 str r0, [r7, #4] + 803d736: 6039 str r1, [r7, #0] + dest->x1 = src->x1; + 803d738: 683b ldr r3, [r7, #0] + 803d73a: f9b3 2000 ldrsh.w r2, [r3] + 803d73e: 687b ldr r3, [r7, #4] + 803d740: 801a strh r2, [r3, #0] + dest->y1 = src->y1; + 803d742: 683b ldr r3, [r7, #0] + 803d744: f9b3 2002 ldrsh.w r2, [r3, #2] + 803d748: 687b ldr r3, [r7, #4] + 803d74a: 805a strh r2, [r3, #2] + dest->x2 = src->x2; + 803d74c: 683b ldr r3, [r7, #0] + 803d74e: f9b3 2004 ldrsh.w r2, [r3, #4] + 803d752: 687b ldr r3, [r7, #4] + 803d754: 809a strh r2, [r3, #4] + dest->y2 = src->y2; + 803d756: 683b ldr r3, [r7, #0] + 803d758: f9b3 2006 ldrsh.w r2, [r3, #6] + 803d75c: 687b ldr r3, [r7, #4] + 803d75e: 80da strh r2, [r3, #6] +} + 803d760: bf00 nop + 803d762: 370c adds r7, #12 + 803d764: 46bd mov sp, r7 + 803d766: bc80 pop {r7} + 803d768: 4770 bx lr + +0803d76a : +{ + 803d76a: b480 push {r7} + 803d76c: b083 sub sp, #12 + 803d76e: af00 add r7, sp, #0 + 803d770: 6078 str r0, [r7, #4] + return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); + 803d772: 687b ldr r3, [r7, #4] + 803d774: f9b3 3004 ldrsh.w r3, [r3, #4] + 803d778: b29a uxth r2, r3 + 803d77a: 687b ldr r3, [r7, #4] + 803d77c: f9b3 3000 ldrsh.w r3, [r3] + 803d780: b29b uxth r3, r3 + 803d782: 1ad3 subs r3, r2, r3 + 803d784: b29b uxth r3, r3 + 803d786: 3301 adds r3, #1 + 803d788: b29b uxth r3, r3 + 803d78a: b21b sxth r3, r3 +} + 803d78c: 4618 mov r0, r3 + 803d78e: 370c adds r7, #12 + 803d790: 46bd mov sp, r7 + 803d792: bc80 pop {r7} + 803d794: 4770 bx lr + +0803d796 : +{ + 803d796: b480 push {r7} + 803d798: b083 sub sp, #12 + 803d79a: af00 add r7, sp, #0 + 803d79c: 6078 str r0, [r7, #4] + return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); + 803d79e: 687b ldr r3, [r7, #4] + 803d7a0: f9b3 3006 ldrsh.w r3, [r3, #6] + 803d7a4: b29a uxth r2, r3 + 803d7a6: 687b ldr r3, [r7, #4] + 803d7a8: f9b3 3002 ldrsh.w r3, [r3, #2] + 803d7ac: b29b uxth r3, r3 + 803d7ae: 1ad3 subs r3, r2, r3 + 803d7b0: b29b uxth r3, r3 + 803d7b2: 3301 adds r3, #1 + 803d7b4: b29b uxth r3, r3 + 803d7b6: b21b sxth r3, r3 +} + 803d7b8: 4618 mov r0, r3 + 803d7ba: 370c adds r7, #12 + 803d7bc: 46bd mov sp, r7 + 803d7be: bc80 pop {r7} + 803d7c0: 4770 bx lr + +0803d7c2 : +{ + 803d7c2: b580 push {r7, lr} + 803d7c4: b084 sub sp, #16 803d7c6: af00 add r7, sp, #0 803d7c8: 6078 str r0, [r7, #4] 803d7ca: 6039 str r1, [r7, #0] - dest->x1 = src->x1; - 803d7cc: 683b ldr r3, [r7, #0] - 803d7ce: f9b3 2000 ldrsh.w r2, [r3] - 803d7d2: 687b ldr r3, [r7, #4] - 803d7d4: 801a strh r2, [r3, #0] - dest->y1 = src->y1; - 803d7d6: 683b ldr r3, [r7, #0] - 803d7d8: f9b3 2002 ldrsh.w r2, [r3, #2] - 803d7dc: 687b ldr r3, [r7, #4] - 803d7de: 805a strh r2, [r3, #2] - dest->x2 = src->x2; - 803d7e0: 683b ldr r3, [r7, #0] - 803d7e2: f9b3 2004 ldrsh.w r2, [r3, #4] - 803d7e6: 687b ldr r3, [r7, #4] - 803d7e8: 809a strh r2, [r3, #4] - dest->y2 = src->y2; - 803d7ea: 683b ldr r3, [r7, #0] - 803d7ec: f9b3 2006 ldrsh.w r2, [r3, #6] - 803d7f0: 687b ldr r3, [r7, #4] - 803d7f2: 80da strh r2, [r3, #6] -} - 803d7f4: bf00 nop - 803d7f6: 370c adds r7, #12 - 803d7f8: 46bd mov sp, r7 - 803d7fa: bc80 pop {r7} - 803d7fc: 4770 bx lr - -0803d7fe : -{ - 803d7fe: b480 push {r7} - 803d800: b083 sub sp, #12 - 803d802: af00 add r7, sp, #0 - 803d804: 6078 str r0, [r7, #4] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 803d806: 687b ldr r3, [r7, #4] - 803d808: f9b3 3004 ldrsh.w r3, [r3, #4] - 803d80c: b29a uxth r2, r3 - 803d80e: 687b ldr r3, [r7, #4] - 803d810: f9b3 3000 ldrsh.w r3, [r3] - 803d814: b29b uxth r3, r3 - 803d816: 1ad3 subs r3, r2, r3 - 803d818: b29b uxth r3, r3 - 803d81a: 3301 adds r3, #1 - 803d81c: b29b uxth r3, r3 - 803d81e: b21b sxth r3, r3 -} - 803d820: 4618 mov r0, r3 - 803d822: 370c adds r7, #12 - 803d824: 46bd mov sp, r7 - 803d826: bc80 pop {r7} - 803d828: 4770 bx lr - -0803d82a : -{ - 803d82a: b480 push {r7} - 803d82c: b083 sub sp, #12 - 803d82e: af00 add r7, sp, #0 - 803d830: 6078 str r0, [r7, #4] - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 803d832: 687b ldr r3, [r7, #4] - 803d834: f9b3 3006 ldrsh.w r3, [r3, #6] - 803d838: b29a uxth r2, r3 - 803d83a: 687b ldr r3, [r7, #4] - 803d83c: f9b3 3002 ldrsh.w r3, [r3, #2] - 803d840: b29b uxth r3, r3 - 803d842: 1ad3 subs r3, r2, r3 - 803d844: b29b uxth r3, r3 - 803d846: 3301 adds r3, #1 - 803d848: b29b uxth r3, r3 - 803d84a: b21b sxth r3, r3 -} - 803d84c: 4618 mov r0, r3 - 803d84e: 370c adds r7, #12 - 803d850: 46bd mov sp, r7 - 803d852: bc80 pop {r7} - 803d854: 4770 bx lr - -0803d856 : -{ - 803d856: b580 push {r7, lr} - 803d858: b084 sub sp, #16 - 803d85a: af00 add r7, sp, #0 - 803d85c: 6078 str r0, [r7, #4] - 803d85e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_ZOOM); - 803d860: f643 020e movw r2, #14350 ; 0x380e - 803d864: 6839 ldr r1, [r7, #0] - 803d866: 6878 ldr r0, [r7, #4] - 803d868: f7d0 faa2 bl 800ddb0 - 803d86c: 4603 mov r3, r0 - 803d86e: 60fb str r3, [r7, #12] + 803d7cc: f643 020e movw r2, #14350 ; 0x380e + 803d7d0: 6839 ldr r1, [r7, #0] + 803d7d2: 6878 ldr r0, [r7, #4] + 803d7d4: f7d0 fab6 bl 800dd44 + 803d7d8: 4603 mov r3, r0 + 803d7da: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803d870: 68fb ldr r3, [r7, #12] - 803d872: b21b sxth r3, r3 + 803d7dc: 68fb ldr r3, [r7, #12] + 803d7de: b21b sxth r3, r3 } - 803d874: 4618 mov r0, r3 - 803d876: 3710 adds r7, #16 - 803d878: 46bd mov sp, r7 - 803d87a: bd80 pop {r7, pc} + 803d7e0: 4618 mov r0, r3 + 803d7e2: 3710 adds r7, #16 + 803d7e4: 46bd mov sp, r7 + 803d7e6: bd80 pop {r7, pc} -0803d87c : +0803d7e8 : { - 803d87c: b580 push {r7, lr} - 803d87e: b084 sub sp, #16 - 803d880: af00 add r7, sp, #0 - 803d882: 6078 str r0, [r7, #4] - 803d884: 6039 str r1, [r7, #0] + 803d7e8: b580 push {r7, lr} + 803d7ea: b084 sub sp, #16 + 803d7ec: af00 add r7, sp, #0 + 803d7ee: 6078 str r0, [r7, #4] + 803d7f0: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_ANGLE); - 803d886: f643 020f movw r2, #14351 ; 0x380f - 803d88a: 6839 ldr r1, [r7, #0] - 803d88c: 6878 ldr r0, [r7, #4] - 803d88e: f7d0 fa8f bl 800ddb0 - 803d892: 4603 mov r3, r0 - 803d894: 60fb str r3, [r7, #12] + 803d7f2: f643 020f movw r2, #14351 ; 0x380f + 803d7f6: 6839 ldr r1, [r7, #0] + 803d7f8: 6878 ldr r0, [r7, #4] + 803d7fa: f7d0 faa3 bl 800dd44 + 803d7fe: 4603 mov r3, r0 + 803d800: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803d896: 68fb ldr r3, [r7, #12] - 803d898: b21b sxth r3, r3 + 803d802: 68fb ldr r3, [r7, #12] + 803d804: b21b sxth r3, r3 } - 803d89a: 4618 mov r0, r3 - 803d89c: 3710 adds r7, #16 - 803d89e: 46bd mov sp, r7 - 803d8a0: bd80 pop {r7, pc} + 803d806: 4618 mov r0, r3 + 803d808: 3710 adds r7, #16 + 803d80a: 46bd mov sp, r7 + 803d80c: bd80 pop {r7, pc} -0803d8a2 : +0803d80e : { - 803d8a2: b580 push {r7, lr} - 803d8a4: b084 sub sp, #16 - 803d8a6: af00 add r7, sp, #0 - 803d8a8: 6078 str r0, [r7, #4] - 803d8aa: 6039 str r1, [r7, #0] + 803d80e: b580 push {r7, lr} + 803d810: b084 sub sp, #16 + 803d812: af00 add r7, sp, #0 + 803d814: 6078 str r0, [r7, #4] + 803d816: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 803d8ac: f641 0210 movw r2, #6160 ; 0x1810 - 803d8b0: 6839 ldr r1, [r7, #0] - 803d8b2: 6878 ldr r0, [r7, #4] - 803d8b4: f7d0 fa7c bl 800ddb0 - 803d8b8: 4603 mov r3, r0 - 803d8ba: 60fb str r3, [r7, #12] + 803d818: f641 0210 movw r2, #6160 ; 0x1810 + 803d81c: 6839 ldr r1, [r7, #0] + 803d81e: 6878 ldr r0, [r7, #4] + 803d820: f7d0 fa90 bl 800dd44 + 803d824: 4603 mov r3, r0 + 803d826: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803d8bc: 68fb ldr r3, [r7, #12] - 803d8be: b21b sxth r3, r3 + 803d828: 68fb ldr r3, [r7, #12] + 803d82a: b21b sxth r3, r3 } - 803d8c0: 4618 mov r0, r3 - 803d8c2: 3710 adds r7, #16 - 803d8c4: 46bd mov sp, r7 - 803d8c6: bd80 pop {r7, pc} + 803d82c: 4618 mov r0, r3 + 803d82e: 3710 adds r7, #16 + 803d830: 46bd mov sp, r7 + 803d832: bd80 pop {r7, pc} -0803d8c8 : +0803d834 : { - 803d8c8: b580 push {r7, lr} - 803d8ca: b084 sub sp, #16 - 803d8cc: af00 add r7, sp, #0 - 803d8ce: 6078 str r0, [r7, #4] - 803d8d0: 6039 str r1, [r7, #0] + 803d834: b580 push {r7, lr} + 803d836: b084 sub sp, #16 + 803d838: af00 add r7, sp, #0 + 803d83a: 6078 str r0, [r7, #4] + 803d83c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); - 803d8d2: f641 0211 movw r2, #6161 ; 0x1811 - 803d8d6: 6839 ldr r1, [r7, #0] - 803d8d8: 6878 ldr r0, [r7, #4] - 803d8da: f7d0 fa69 bl 800ddb0 - 803d8de: 4603 mov r3, r0 - 803d8e0: 60fb str r3, [r7, #12] + 803d83e: f641 0211 movw r2, #6161 ; 0x1811 + 803d842: 6839 ldr r1, [r7, #0] + 803d844: 6878 ldr r0, [r7, #4] + 803d846: f7d0 fa7d bl 800dd44 + 803d84a: 4603 mov r3, r0 + 803d84c: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803d8e2: 68fb ldr r3, [r7, #12] - 803d8e4: b21b sxth r3, r3 + 803d84e: 68fb ldr r3, [r7, #12] + 803d850: b21b sxth r3, r3 } - 803d8e6: 4618 mov r0, r3 - 803d8e8: 3710 adds r7, #16 - 803d8ea: 46bd mov sp, r7 - 803d8ec: bd80 pop {r7, pc} + 803d852: 4618 mov r0, r3 + 803d854: 3710 adds r7, #16 + 803d856: 46bd mov sp, r7 + 803d858: bd80 pop {r7, pc} -0803d8ee : +0803d85a : { - 803d8ee: b580 push {r7, lr} - 803d8f0: b084 sub sp, #16 - 803d8f2: af00 add r7, sp, #0 - 803d8f4: 6078 str r0, [r7, #4] - 803d8f6: 6039 str r1, [r7, #0] + 803d85a: b580 push {r7, lr} + 803d85c: b084 sub sp, #16 + 803d85e: af00 add r7, sp, #0 + 803d860: 6078 str r0, [r7, #4] + 803d862: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 803d8f8: f641 0212 movw r2, #6162 ; 0x1812 - 803d8fc: 6839 ldr r1, [r7, #0] - 803d8fe: 6878 ldr r0, [r7, #4] - 803d900: f7d0 fa56 bl 800ddb0 - 803d904: 4603 mov r3, r0 - 803d906: 60fb str r3, [r7, #12] + 803d864: f641 0212 movw r2, #6162 ; 0x1812 + 803d868: 6839 ldr r1, [r7, #0] + 803d86a: 6878 ldr r0, [r7, #4] + 803d86c: f7d0 fa6a bl 800dd44 + 803d870: 4603 mov r3, r0 + 803d872: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 803d908: 68fb ldr r3, [r7, #12] - 803d90a: b21b sxth r3, r3 + 803d874: 68fb ldr r3, [r7, #12] + 803d876: b21b sxth r3, r3 +} + 803d878: 4618 mov r0, r3 + 803d87a: 3710 adds r7, #16 + 803d87c: 46bd mov sp, r7 + 803d87e: bd80 pop {r7, pc} + +0803d880 : +{ + 803d880: b580 push {r7, lr} + 803d882: b084 sub sp, #16 + 803d884: af00 add r7, sp, #0 + 803d886: 6078 str r0, [r7, #4] + 803d888: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); + 803d88a: f641 0213 movw r2, #6163 ; 0x1813 + 803d88e: 6839 ldr r1, [r7, #0] + 803d890: 6878 ldr r0, [r7, #4] + 803d892: f7d0 fa57 bl 800dd44 + 803d896: 4603 mov r3, r0 + 803d898: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 803d89a: 68fb ldr r3, [r7, #12] + 803d89c: b21b sxth r3, r3 +} + 803d89e: 4618 mov r0, r3 + 803d8a0: 3710 adds r7, #16 + 803d8a2: 46bd mov sp, r7 + 803d8a4: bd80 pop {r7, pc} + +0803d8a6 : +{ + 803d8a6: b580 push {r7, lr} + 803d8a8: b084 sub sp, #16 + 803d8aa: af00 add r7, sp, #0 + 803d8ac: 6078 str r0, [r7, #4] + 803d8ae: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); + 803d8b0: f241 0232 movw r2, #4146 ; 0x1032 + 803d8b4: 6839 ldr r1, [r7, #0] + 803d8b6: 6878 ldr r0, [r7, #4] + 803d8b8: f7d0 fa44 bl 800dd44 + 803d8bc: 4603 mov r3, r0 + 803d8be: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 803d8c0: 68fb ldr r3, [r7, #12] + 803d8c2: b21b sxth r3, r3 +} + 803d8c4: 4618 mov r0, r3 + 803d8c6: 3710 adds r7, #16 + 803d8c8: 46bd mov sp, r7 + 803d8ca: bd80 pop {r7, pc} + +0803d8cc : +{ + 803d8cc: b580 push {r7, lr} + 803d8ce: b084 sub sp, #16 + 803d8d0: af00 add r7, sp, #0 + 803d8d2: 6078 str r0, [r7, #4] + 803d8d4: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_IMG_OPA); + 803d8d6: 2246 movs r2, #70 ; 0x46 + 803d8d8: 6839 ldr r1, [r7, #0] + 803d8da: 6878 ldr r0, [r7, #4] + 803d8dc: f7d0 fa32 bl 800dd44 + 803d8e0: 4603 mov r3, r0 + 803d8e2: 60fb str r3, [r7, #12] + return (lv_opa_t)v.num; + 803d8e4: 68fb ldr r3, [r7, #12] + 803d8e6: b2db uxtb r3, r3 +} + 803d8e8: 4618 mov r0, r3 + 803d8ea: 3710 adds r7, #16 + 803d8ec: 46bd mov sp, r7 + 803d8ee: bd80 pop {r7, pc} + +0803d8f0 : +{ + 803d8f0: b580 push {r7, lr} + 803d8f2: b084 sub sp, #16 + 803d8f4: af00 add r7, sp, #0 + 803d8f6: 6078 str r0, [r7, #4] + 803d8f8: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_FONT); + 803d8fa: f241 4259 movw r2, #5209 ; 0x1459 + 803d8fe: 6839 ldr r1, [r7, #0] + 803d900: 6878 ldr r0, [r7, #4] + 803d902: f7d0 fa1f bl 800dd44 + 803d906: 4603 mov r3, r0 + 803d908: 60fb str r3, [r7, #12] + return (const lv_font_t *)v.ptr; + 803d90a: 68fb ldr r3, [r7, #12] } 803d90c: 4618 mov r0, r3 803d90e: 3710 adds r7, #16 803d910: 46bd mov sp, r7 803d912: bd80 pop {r7, pc} -0803d914 : +0803d914 : { 803d914: b580 push {r7, lr} 803d916: b084 sub sp, #16 803d918: af00 add r7, sp, #0 803d91a: 6078 str r0, [r7, #4] 803d91c: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - 803d91e: f641 0213 movw r2, #6163 ; 0x1813 + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LETTER_SPACE); + 803d91e: f241 425a movw r2, #5210 ; 0x145a 803d922: 6839 ldr r1, [r7, #0] 803d924: 6878 ldr r0, [r7, #4] - 803d926: f7d0 fa43 bl 800ddb0 + 803d926: f7d0 fa0d bl 800dd44 803d92a: 4603 mov r3, r0 803d92c: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; @@ -139450,18 +139462,18 @@ static lv_obj_t * get_label(const lv_obj_t * obj) 803d936: 46bd mov sp, r7 803d938: bd80 pop {r7, pc} -0803d93a : +0803d93a : { 803d93a: b580 push {r7, lr} 803d93c: b084 sub sp, #16 803d93e: af00 add r7, sp, #0 803d940: 6078 str r0, [r7, #4] 803d942: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); - 803d944: f241 0232 movw r2, #4146 ; 0x1032 + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LINE_SPACE); + 803d944: f241 425b movw r2, #5211 ; 0x145b 803d948: 6839 ldr r1, [r7, #0] 803d94a: 6878 ldr r0, [r7, #4] - 803d94c: f7d0 fa30 bl 800ddb0 + 803d94c: f7d0 f9fa bl 800dd44 803d950: 4603 mov r3, r0 803d952: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; @@ -139473,15407 +139485,15399 @@ static lv_obj_t * get_label(const lv_obj_t * obj) 803d95c: 46bd mov sp, r7 803d95e: bd80 pop {r7, pc} -0803d960 : -{ - 803d960: b580 push {r7, lr} - 803d962: b084 sub sp, #16 - 803d964: af00 add r7, sp, #0 - 803d966: 6078 str r0, [r7, #4] - 803d968: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_IMG_OPA); - 803d96a: 2246 movs r2, #70 ; 0x46 - 803d96c: 6839 ldr r1, [r7, #0] - 803d96e: 6878 ldr r0, [r7, #4] - 803d970: f7d0 fa1e bl 800ddb0 - 803d974: 4603 mov r3, r0 - 803d976: 60fb str r3, [r7, #12] - return (lv_opa_t)v.num; - 803d978: 68fb ldr r3, [r7, #12] - 803d97a: b2db uxtb r3, r3 -} - 803d97c: 4618 mov r0, r3 - 803d97e: 3710 adds r7, #16 - 803d980: 46bd mov sp, r7 - 803d982: bd80 pop {r7, pc} - -0803d984 : -{ - 803d984: b580 push {r7, lr} - 803d986: b084 sub sp, #16 - 803d988: af00 add r7, sp, #0 - 803d98a: 6078 str r0, [r7, #4] - 803d98c: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_FONT); - 803d98e: f241 4259 movw r2, #5209 ; 0x1459 - 803d992: 6839 ldr r1, [r7, #0] - 803d994: 6878 ldr r0, [r7, #4] - 803d996: f7d0 fa0b bl 800ddb0 - 803d99a: 4603 mov r3, r0 - 803d99c: 60fb str r3, [r7, #12] - return (const lv_font_t *)v.ptr; - 803d99e: 68fb ldr r3, [r7, #12] -} - 803d9a0: 4618 mov r0, r3 - 803d9a2: 3710 adds r7, #16 - 803d9a4: 46bd mov sp, r7 - 803d9a6: bd80 pop {r7, pc} - -0803d9a8 : -{ - 803d9a8: b580 push {r7, lr} - 803d9aa: b084 sub sp, #16 - 803d9ac: af00 add r7, sp, #0 - 803d9ae: 6078 str r0, [r7, #4] - 803d9b0: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LETTER_SPACE); - 803d9b2: f241 425a movw r2, #5210 ; 0x145a - 803d9b6: 6839 ldr r1, [r7, #0] - 803d9b8: 6878 ldr r0, [r7, #4] - 803d9ba: f7d0 f9f9 bl 800ddb0 - 803d9be: 4603 mov r3, r0 - 803d9c0: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 803d9c2: 68fb ldr r3, [r7, #12] - 803d9c4: b21b sxth r3, r3 -} - 803d9c6: 4618 mov r0, r3 - 803d9c8: 3710 adds r7, #16 - 803d9ca: 46bd mov sp, r7 - 803d9cc: bd80 pop {r7, pc} - -0803d9ce : -{ - 803d9ce: b580 push {r7, lr} - 803d9d0: b084 sub sp, #16 - 803d9d2: af00 add r7, sp, #0 - 803d9d4: 6078 str r0, [r7, #4] - 803d9d6: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LINE_SPACE); - 803d9d8: f241 425b movw r2, #5211 ; 0x145b - 803d9dc: 6839 ldr r1, [r7, #0] - 803d9de: 6878 ldr r0, [r7, #4] - 803d9e0: f7d0 f9e6 bl 800ddb0 - 803d9e4: 4603 mov r3, r0 - 803d9e6: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 803d9e8: 68fb ldr r3, [r7, #12] - 803d9ea: b21b sxth r3, r3 -} - 803d9ec: 4618 mov r0, r3 - 803d9ee: 3710 adds r7, #16 - 803d9f0: 46bd mov sp, r7 - 803d9f2: bd80 pop {r7, pc} - -0803d9f4 : +0803d960 : /********************** * GLOBAL FUNCTIONS **********************/ lv_obj_t * lv_img_create(lv_obj_t * parent) { - 803d9f4: b580 push {r7, lr} - 803d9f6: b084 sub sp, #16 - 803d9f8: af00 add r7, sp, #0 - 803d9fa: 6078 str r0, [r7, #4] + 803d960: b580 push {r7, lr} + 803d962: b084 sub sp, #16 + 803d964: af00 add r7, sp, #0 + 803d966: 6078 str r0, [r7, #4] LV_LOG_INFO("begin"); lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); - 803d9fc: 6879 ldr r1, [r7, #4] - 803d9fe: 4806 ldr r0, [pc, #24] ; (803da18 ) - 803da00: f7ca f827 bl 8007a52 - 803da04: 60f8 str r0, [r7, #12] + 803d968: 6879 ldr r1, [r7, #4] + 803d96a: 4806 ldr r0, [pc, #24] ; (803d984 ) + 803d96c: f7ca f83b bl 80079e6 + 803d970: 60f8 str r0, [r7, #12] lv_obj_class_init_obj(obj); - 803da06: 68f8 ldr r0, [r7, #12] - 803da08: f7ca f8d5 bl 8007bb6 + 803d972: 68f8 ldr r0, [r7, #12] + 803d974: f7ca f8e9 bl 8007b4a return obj; - 803da0c: 68fb ldr r3, [r7, #12] + 803d978: 68fb ldr r3, [r7, #12] } - 803da0e: 4618 mov r0, r3 - 803da10: 3710 adds r7, #16 - 803da12: 46bd mov sp, r7 - 803da14: bd80 pop {r7, pc} - 803da16: bf00 nop - 803da18: 08070a70 .word 0x08070a70 + 803d97a: 4618 mov r0, r3 + 803d97c: 3710 adds r7, #16 + 803d97e: 46bd mov sp, r7 + 803d980: bd80 pop {r7, pc} + 803d982: bf00 nop + 803d984: 080709c8 .word 0x080709c8 -0803da1c : +0803d988 : /*===================== * Setter functions *====================*/ void lv_img_set_src(lv_obj_t * obj, const void * src) { - 803da1c: b580 push {r7, lr} - 803da1e: b08e sub sp, #56 ; 0x38 - 803da20: af04 add r7, sp, #16 - 803da22: 6078 str r0, [r7, #4] - 803da24: 6039 str r1, [r7, #0] + 803d988: b580 push {r7, lr} + 803d98a: b08e sub sp, #56 ; 0x38 + 803d98c: af04 add r7, sp, #16 + 803d98e: 6078 str r0, [r7, #4] + 803d990: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_obj_invalidate(obj); - 803da26: 6878 ldr r0, [r7, #4] - 803da28: f7cd f843 bl 800aab2 + 803d992: 6878 ldr r0, [r7, #4] + 803d994: f7cd f857 bl 800aa46 lv_img_src_t src_type = lv_img_src_get_type(src); - 803da2c: 6838 ldr r0, [r7, #0] - 803da2e: f7d4 f91f bl 8011c70 - 803da32: 4603 mov r3, r0 - 803da34: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 803d998: 6838 ldr r0, [r7, #0] + 803d99a: f7d4 f91f bl 8011bdc + 803d99e: 4603 mov r3, r0 + 803d9a0: f887 3023 strb.w r3, [r7, #35] ; 0x23 lv_img_t * img = (lv_img_t *)obj; - 803da38: 687b ldr r3, [r7, #4] - 803da3a: 61fb str r3, [r7, #28] + 803d9a4: 687b ldr r3, [r7, #4] + 803d9a6: 61fb str r3, [r7, #28] LV_LOG_WARN("lv_img_set_src: unknown type"); } #endif /*If the new source type is unknown free the memories of the old source*/ if(src_type == LV_IMG_SRC_UNKNOWN) { - 803da3c: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 803da40: 2b03 cmp r3, #3 - 803da42: d11f bne.n 803da84 + 803d9a8: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 803d9ac: 2b03 cmp r3, #3 + 803d9ae: d11f bne.n 803d9f0 LV_LOG_WARN("lv_img_set_src: unknown image type"); if(img->src_type == LV_IMG_SRC_SYMBOL || img->src_type == LV_IMG_SRC_FILE) { - 803da44: 69fb ldr r3, [r7, #28] - 803da46: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 - 803da4a: f003 0303 and.w r3, r3, #3 - 803da4e: b2db uxtb r3, r3 - 803da50: 2b02 cmp r3, #2 - 803da52: d007 beq.n 803da64 + 803d9b0: 69fb ldr r3, [r7, #28] + 803d9b2: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 + 803d9b6: f003 0303 and.w r3, r3, #3 + 803d9ba: b2db uxtb r3, r3 + 803d9bc: 2b02 cmp r3, #2 + 803d9be: d007 beq.n 803d9d0 + 803d9c0: 69fb ldr r3, [r7, #28] + 803d9c2: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 + 803d9c6: f003 0303 and.w r3, r3, #3 + 803d9ca: b2db uxtb r3, r3 + 803d9cc: 2b01 cmp r3, #1 + 803d9ce: d104 bne.n 803d9da + lv_mem_free((void *)img->src); + 803d9d0: 69fb ldr r3, [r7, #28] + 803d9d2: 6a5b ldr r3, [r3, #36] ; 0x24 + 803d9d4: 4618 mov r0, r3 + 803d9d6: f7f4 ff37 bl 8032848 + } + img->src = NULL; + 803d9da: 69fb ldr r3, [r7, #28] + 803d9dc: 2200 movs r2, #0 + 803d9de: 625a str r2, [r3, #36] ; 0x24 + img->src_type = LV_IMG_SRC_UNKNOWN; + 803d9e0: 69fa ldr r2, [r7, #28] + 803d9e2: f892 3038 ldrb.w r3, [r2, #56] ; 0x38 + 803d9e6: f043 0303 orr.w r3, r3, #3 + 803d9ea: f882 3038 strb.w r3, [r2, #56] ; 0x38 + return; + 803d9ee: e0e7 b.n 803dbc0 + } + + lv_img_header_t header; + lv_img_decoder_get_info(src, &header); + 803d9f0: f107 030c add.w r3, r7, #12 + 803d9f4: 4619 mov r1, r3 + 803d9f6: 6838 ldr r0, [r7, #0] + 803d9f8: f7d9 f9f6 bl 8016de8 + + /*Save the source*/ + if(src_type == LV_IMG_SRC_VARIABLE) { + 803d9fc: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 803da00: 2b00 cmp r3, #0 + 803da02: d118 bne.n 803da36 + /*If memory was allocated because of the previous `src_type` then free it*/ + if(img->src_type == LV_IMG_SRC_FILE || img->src_type == LV_IMG_SRC_SYMBOL) { + 803da04: 69fb ldr r3, [r7, #28] + 803da06: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 + 803da0a: f003 0303 and.w r3, r3, #3 + 803da0e: b2db uxtb r3, r3 + 803da10: 2b01 cmp r3, #1 + 803da12: d007 beq.n 803da24 + 803da14: 69fb ldr r3, [r7, #28] + 803da16: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 + 803da1a: f003 0303 and.w r3, r3, #3 + 803da1e: b2db uxtb r3, r3 + 803da20: 2b02 cmp r3, #2 + 803da22: d104 bne.n 803da2e + lv_mem_free((void *)img->src); + 803da24: 69fb ldr r3, [r7, #28] + 803da26: 6a5b ldr r3, [r3, #36] ; 0x24 + 803da28: 4618 mov r0, r3 + 803da2a: f7f4 ff0d bl 8032848 + } + img->src = src; + 803da2e: 69fb ldr r3, [r7, #28] + 803da30: 683a ldr r2, [r7, #0] + 803da32: 625a str r2, [r3, #36] ; 0x24 + 803da34: e03f b.n 803dab6 + } + else if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_SYMBOL) { + 803da36: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 803da3a: 2b01 cmp r3, #1 + 803da3c: d003 beq.n 803da46 + 803da3e: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 803da42: 2b02 cmp r3, #2 + 803da44: d137 bne.n 803dab6 + /*If the new and the old src are the same then it was only a refresh.*/ + if(img->src != src) { + 803da46: 69fb ldr r3, [r7, #28] + 803da48: 6a5b ldr r3, [r3, #36] ; 0x24 + 803da4a: 683a ldr r2, [r7, #0] + 803da4c: 429a cmp r2, r3 + 803da4e: d032 beq.n 803dab6 + const void * old_src = NULL; + 803da50: 2300 movs r3, #0 + 803da52: 627b str r3, [r7, #36] ; 0x24 + /*If memory was allocated because of the previous `src_type` then save its pointer and free after allocation. + *It's important to allocate first to be sure the new data will be on a new address. + *Else `img_cache` wouldn't see the change in source.*/ + if(img->src_type == LV_IMG_SRC_FILE || img->src_type == LV_IMG_SRC_SYMBOL) { 803da54: 69fb ldr r3, [r7, #28] 803da56: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 803da5a: f003 0303 and.w r3, r3, #3 803da5e: b2db uxtb r3, r3 803da60: 2b01 cmp r3, #1 - 803da62: d104 bne.n 803da6e - lv_mem_free((void *)img->src); + 803da62: d007 beq.n 803da74 803da64: 69fb ldr r3, [r7, #28] - 803da66: 6a5b ldr r3, [r3, #36] ; 0x24 - 803da68: 4618 mov r0, r3 - 803da6a: f7f4 ff37 bl 80328dc - } - img->src = NULL; - 803da6e: 69fb ldr r3, [r7, #28] - 803da70: 2200 movs r2, #0 - 803da72: 625a str r2, [r3, #36] ; 0x24 - img->src_type = LV_IMG_SRC_UNKNOWN; - 803da74: 69fa ldr r2, [r7, #28] - 803da76: f892 3038 ldrb.w r3, [r2, #56] ; 0x38 - 803da7a: f043 0303 orr.w r3, r3, #3 - 803da7e: f882 3038 strb.w r3, [r2, #56] ; 0x38 - return; - 803da82: e0e7 b.n 803dc54 - } - - lv_img_header_t header; - lv_img_decoder_get_info(src, &header); - 803da84: f107 030c add.w r3, r7, #12 - 803da88: 4619 mov r1, r3 - 803da8a: 6838 ldr r0, [r7, #0] - 803da8c: f7d9 f9f6 bl 8016e7c - - /*Save the source*/ - if(src_type == LV_IMG_SRC_VARIABLE) { - 803da90: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 803da94: 2b00 cmp r3, #0 - 803da96: d118 bne.n 803daca - /*If memory was allocated because of the previous `src_type` then free it*/ - if(img->src_type == LV_IMG_SRC_FILE || img->src_type == LV_IMG_SRC_SYMBOL) { - 803da98: 69fb ldr r3, [r7, #28] - 803da9a: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 - 803da9e: f003 0303 and.w r3, r3, #3 - 803daa2: b2db uxtb r3, r3 - 803daa4: 2b01 cmp r3, #1 - 803daa6: d007 beq.n 803dab8 - 803daa8: 69fb ldr r3, [r7, #28] - 803daaa: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 - 803daae: f003 0303 and.w r3, r3, #3 - 803dab2: b2db uxtb r3, r3 - 803dab4: 2b02 cmp r3, #2 - 803dab6: d104 bne.n 803dac2 - lv_mem_free((void *)img->src); - 803dab8: 69fb ldr r3, [r7, #28] - 803daba: 6a5b ldr r3, [r3, #36] ; 0x24 - 803dabc: 4618 mov r0, r3 - 803dabe: f7f4 ff0d bl 80328dc - } - img->src = src; - 803dac2: 69fb ldr r3, [r7, #28] - 803dac4: 683a ldr r2, [r7, #0] - 803dac6: 625a str r2, [r3, #36] ; 0x24 - 803dac8: e03f b.n 803db4a - } - else if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_SYMBOL) { - 803daca: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 803dace: 2b01 cmp r3, #1 - 803dad0: d003 beq.n 803dada - 803dad2: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 803dad6: 2b02 cmp r3, #2 - 803dad8: d137 bne.n 803db4a - /*If the new and the old src are the same then it was only a refresh.*/ - if(img->src != src) { - 803dada: 69fb ldr r3, [r7, #28] - 803dadc: 6a5b ldr r3, [r3, #36] ; 0x24 - 803dade: 683a ldr r2, [r7, #0] - 803dae0: 429a cmp r2, r3 - 803dae2: d032 beq.n 803db4a - const void * old_src = NULL; - 803dae4: 2300 movs r3, #0 - 803dae6: 627b str r3, [r7, #36] ; 0x24 - /*If memory was allocated because of the previous `src_type` then save its pointer and free after allocation. - *It's important to allocate first to be sure the new data will be on a new address. - *Else `img_cache` wouldn't see the change in source.*/ - if(img->src_type == LV_IMG_SRC_FILE || img->src_type == LV_IMG_SRC_SYMBOL) { - 803dae8: 69fb ldr r3, [r7, #28] - 803daea: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 - 803daee: f003 0303 and.w r3, r3, #3 - 803daf2: b2db uxtb r3, r3 - 803daf4: 2b01 cmp r3, #1 - 803daf6: d007 beq.n 803db08 - 803daf8: 69fb ldr r3, [r7, #28] - 803dafa: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 - 803dafe: f003 0303 and.w r3, r3, #3 - 803db02: b2db uxtb r3, r3 - 803db04: 2b02 cmp r3, #2 - 803db06: d102 bne.n 803db0e + 803da66: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 + 803da6a: f003 0303 and.w r3, r3, #3 + 803da6e: b2db uxtb r3, r3 + 803da70: 2b02 cmp r3, #2 + 803da72: d102 bne.n 803da7a old_src = img->src; - 803db08: 69fb ldr r3, [r7, #28] - 803db0a: 6a5b ldr r3, [r3, #36] ; 0x24 - 803db0c: 627b str r3, [r7, #36] ; 0x24 + 803da74: 69fb ldr r3, [r7, #28] + 803da76: 6a5b ldr r3, [r3, #36] ; 0x24 + 803da78: 627b str r3, [r7, #36] ; 0x24 } char * new_str = lv_mem_alloc(strlen(src) + 1); - 803db0e: 6838 ldr r0, [r7, #0] - 803db10: f7c2 fb92 bl 8000238 - 803db14: 4603 mov r3, r0 - 803db16: 3301 adds r3, #1 - 803db18: 4618 mov r0, r3 - 803db1a: f7f4 febd bl 8032898 - 803db1e: 61b8 str r0, [r7, #24] + 803da7a: 6838 ldr r0, [r7, #0] + 803da7c: f7c2 fbdc bl 8000238 + 803da80: 4603 mov r3, r0 + 803da82: 3301 adds r3, #1 + 803da84: 4618 mov r0, r3 + 803da86: f7f4 febd bl 8032804 + 803da8a: 61b8 str r0, [r7, #24] LV_ASSERT_MALLOC(new_str); - 803db20: 69bb ldr r3, [r7, #24] - 803db22: 2b00 cmp r3, #0 - 803db24: d100 bne.n 803db28 - 803db26: e7fe b.n 803db26 + 803da8c: 69bb ldr r3, [r7, #24] + 803da8e: 2b00 cmp r3, #0 + 803da90: d100 bne.n 803da94 + 803da92: e7fe b.n 803da92 if(new_str == NULL) return; - 803db28: 69bb ldr r3, [r7, #24] - 803db2a: 2b00 cmp r3, #0 - 803db2c: f000 8091 beq.w 803dc52 + 803da94: 69bb ldr r3, [r7, #24] + 803da96: 2b00 cmp r3, #0 + 803da98: f000 8091 beq.w 803dbbe strcpy(new_str, src); - 803db30: 6839 ldr r1, [r7, #0] - 803db32: 69b8 ldr r0, [r7, #24] - 803db34: f009 f846 bl 8046bc4 + 803da9c: 6839 ldr r1, [r7, #0] + 803da9e: 69b8 ldr r0, [r7, #24] + 803daa0: f009 f846 bl 8046b30 img->src = new_str; - 803db38: 69fb ldr r3, [r7, #28] - 803db3a: 69ba ldr r2, [r7, #24] - 803db3c: 625a str r2, [r3, #36] ; 0x24 + 803daa4: 69fb ldr r3, [r7, #28] + 803daa6: 69ba ldr r2, [r7, #24] + 803daa8: 625a str r2, [r3, #36] ; 0x24 if(old_src) lv_mem_free((void *)old_src); - 803db3e: 6a7b ldr r3, [r7, #36] ; 0x24 - 803db40: 2b00 cmp r3, #0 - 803db42: d002 beq.n 803db4a - 803db44: 6a78 ldr r0, [r7, #36] ; 0x24 - 803db46: f7f4 fec9 bl 80328dc + 803daaa: 6a7b ldr r3, [r7, #36] ; 0x24 + 803daac: 2b00 cmp r3, #0 + 803daae: d002 beq.n 803dab6 + 803dab0: 6a78 ldr r0, [r7, #36] ; 0x24 + 803dab2: f7f4 fec9 bl 8032848 } } if(src_type == LV_IMG_SRC_SYMBOL) { - 803db4a: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 803db4e: 2b02 cmp r3, #2 - 803db50: d133 bne.n 803dbba + 803dab6: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 803daba: 2b02 cmp r3, #2 + 803dabc: d133 bne.n 803db26 /*`lv_img_dsc_get_info` couldn't set the with and height of a font so set it here*/ const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 803db52: 2100 movs r1, #0 - 803db54: 6878 ldr r0, [r7, #4] - 803db56: f7ff ff15 bl 803d984 - 803db5a: 6178 str r0, [r7, #20] + 803dabe: 2100 movs r1, #0 + 803dac0: 6878 ldr r0, [r7, #4] + 803dac2: f7ff ff15 bl 803d8f0 + 803dac6: 6178 str r0, [r7, #20] lv_coord_t letter_space = lv_obj_get_style_text_letter_space(obj, LV_PART_MAIN); - 803db5c: 2100 movs r1, #0 - 803db5e: 6878 ldr r0, [r7, #4] - 803db60: f7ff ff22 bl 803d9a8 - 803db64: 4603 mov r3, r0 - 803db66: 827b strh r3, [r7, #18] + 803dac8: 2100 movs r1, #0 + 803daca: 6878 ldr r0, [r7, #4] + 803dacc: f7ff ff22 bl 803d914 + 803dad0: 4603 mov r3, r0 + 803dad2: 827b strh r3, [r7, #18] lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN); - 803db68: 2100 movs r1, #0 - 803db6a: 6878 ldr r0, [r7, #4] - 803db6c: f7ff ff2f bl 803d9ce - 803db70: 4603 mov r3, r0 - 803db72: 823b strh r3, [r7, #16] + 803dad4: 2100 movs r1, #0 + 803dad6: 6878 ldr r0, [r7, #4] + 803dad8: f7ff ff2f bl 803d93a + 803dadc: 4603 mov r3, r0 + 803dade: 823b strh r3, [r7, #16] lv_point_t size; lv_txt_get_size(&size, src, font, letter_space, line_space, LV_COORD_MAX, LV_TEXT_FLAG_NONE); - 803db74: f9b7 2012 ldrsh.w r2, [r7, #18] - 803db78: f107 0008 add.w r0, r7, #8 - 803db7c: 2300 movs r3, #0 - 803db7e: 9302 str r3, [sp, #8] - 803db80: f641 73ff movw r3, #8191 ; 0x1fff - 803db84: 9301 str r3, [sp, #4] - 803db86: f9b7 3010 ldrsh.w r3, [r7, #16] - 803db8a: 9300 str r3, [sp, #0] - 803db8c: 4613 mov r3, r2 - 803db8e: 697a ldr r2, [r7, #20] - 803db90: 6839 ldr r1, [r7, #0] - 803db92: f7f8 fa7a bl 803608a + 803dae0: f9b7 2012 ldrsh.w r2, [r7, #18] + 803dae4: f107 0008 add.w r0, r7, #8 + 803dae8: 2300 movs r3, #0 + 803daea: 9302 str r3, [sp, #8] + 803daec: f641 73ff movw r3, #8191 ; 0x1fff + 803daf0: 9301 str r3, [sp, #4] + 803daf2: f9b7 3010 ldrsh.w r3, [r7, #16] + 803daf6: 9300 str r3, [sp, #0] + 803daf8: 4613 mov r3, r2 + 803dafa: 697a ldr r2, [r7, #20] + 803dafc: 6839 ldr r1, [r7, #0] + 803dafe: f7f8 fa7a bl 8035ff6 header.w = size.x; - 803db96: f9b7 3008 ldrsh.w r3, [r7, #8] - 803db9a: f3c3 030a ubfx r3, r3, #0, #11 - 803db9e: b29a uxth r2, r3 - 803dba0: 68fb ldr r3, [r7, #12] - 803dba2: f362 2394 bfi r3, r2, #10, #11 - 803dba6: 60fb str r3, [r7, #12] + 803db02: f9b7 3008 ldrsh.w r3, [r7, #8] + 803db06: f3c3 030a ubfx r3, r3, #0, #11 + 803db0a: b29a uxth r2, r3 + 803db0c: 68fb ldr r3, [r7, #12] + 803db0e: f362 2394 bfi r3, r2, #10, #11 + 803db12: 60fb str r3, [r7, #12] header.h = size.y; - 803dba8: f9b7 300a ldrsh.w r3, [r7, #10] - 803dbac: f3c3 030a ubfx r3, r3, #0, #11 - 803dbb0: b29a uxth r2, r3 - 803dbb2: 89fb ldrh r3, [r7, #14] - 803dbb4: f362 134f bfi r3, r2, #5, #11 - 803dbb8: 81fb strh r3, [r7, #14] + 803db14: f9b7 300a ldrsh.w r3, [r7, #10] + 803db18: f3c3 030a ubfx r3, r3, #0, #11 + 803db1c: b29a uxth r2, r3 + 803db1e: 89fb ldrh r3, [r7, #14] + 803db20: f362 134f bfi r3, r2, #5, #11 + 803db24: 81fb strh r3, [r7, #14] } img->src_type = src_type; - 803dbba: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 803dbbe: f003 0303 and.w r3, r3, #3 - 803dbc2: b2d9 uxtb r1, r3 - 803dbc4: 69fa ldr r2, [r7, #28] - 803dbc6: f892 3038 ldrb.w r3, [r2, #56] ; 0x38 - 803dbca: f361 0301 bfi r3, r1, #0, #2 - 803dbce: f882 3038 strb.w r3, [r2, #56] ; 0x38 + 803db26: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 803db2a: f003 0303 and.w r3, r3, #3 + 803db2e: b2d9 uxtb r1, r3 + 803db30: 69fa ldr r2, [r7, #28] + 803db32: f892 3038 ldrb.w r3, [r2, #56] ; 0x38 + 803db36: f361 0301 bfi r3, r1, #0, #2 + 803db3a: f882 3038 strb.w r3, [r2, #56] ; 0x38 img->w = header.w; - 803dbd2: 68fb ldr r3, [r7, #12] - 803dbd4: f3c3 238a ubfx r3, r3, #10, #11 - 803dbd8: b29b uxth r3, r3 - 803dbda: b21a sxth r2, r3 - 803dbdc: 69fb ldr r3, [r7, #28] - 803dbde: 859a strh r2, [r3, #44] ; 0x2c + 803db3e: 68fb ldr r3, [r7, #12] + 803db40: f3c3 238a ubfx r3, r3, #10, #11 + 803db44: b29b uxth r3, r3 + 803db46: b21a sxth r2, r3 + 803db48: 69fb ldr r3, [r7, #28] + 803db4a: 859a strh r2, [r3, #44] ; 0x2c img->h = header.h; - 803dbe0: 89fb ldrh r3, [r7, #14] - 803dbe2: f3c3 134a ubfx r3, r3, #5, #11 - 803dbe6: b29b uxth r3, r3 - 803dbe8: b21a sxth r2, r3 - 803dbea: 69fb ldr r3, [r7, #28] - 803dbec: 85da strh r2, [r3, #46] ; 0x2e + 803db4c: 89fb ldrh r3, [r7, #14] + 803db4e: f3c3 134a ubfx r3, r3, #5, #11 + 803db52: b29b uxth r3, r3 + 803db54: b21a sxth r2, r3 + 803db56: 69fb ldr r3, [r7, #28] + 803db58: 85da strh r2, [r3, #46] ; 0x2e img->cf = header.cf; - 803dbee: 7b3b ldrb r3, [r7, #12] - 803dbf0: f3c3 0304 ubfx r3, r3, #0, #5 - 803dbf4: b2d9 uxtb r1, r3 - 803dbf6: 69fa ldr r2, [r7, #28] - 803dbf8: f892 3038 ldrb.w r3, [r2, #56] ; 0x38 - 803dbfc: f361 0386 bfi r3, r1, #2, #5 - 803dc00: f882 3038 strb.w r3, [r2, #56] ; 0x38 + 803db5a: 7b3b ldrb r3, [r7, #12] + 803db5c: f3c3 0304 ubfx r3, r3, #0, #5 + 803db60: b2d9 uxtb r1, r3 + 803db62: 69fa ldr r2, [r7, #28] + 803db64: f892 3038 ldrb.w r3, [r2, #56] ; 0x38 + 803db68: f361 0386 bfi r3, r1, #2, #5 + 803db6c: f882 3038 strb.w r3, [r2, #56] ; 0x38 img->pivot.x = header.w / 2; - 803dc04: 68fb ldr r3, [r7, #12] - 803dc06: f3c3 238a ubfx r3, r3, #10, #11 - 803dc0a: b29b uxth r3, r3 - 803dc0c: 0fda lsrs r2, r3, #31 - 803dc0e: 4413 add r3, r2 - 803dc10: 105b asrs r3, r3, #1 - 803dc12: b21a sxth r2, r3 - 803dc14: 69fb ldr r3, [r7, #28] - 803dc16: 865a strh r2, [r3, #50] ; 0x32 + 803db70: 68fb ldr r3, [r7, #12] + 803db72: f3c3 238a ubfx r3, r3, #10, #11 + 803db76: b29b uxth r3, r3 + 803db78: 0fda lsrs r2, r3, #31 + 803db7a: 4413 add r3, r2 + 803db7c: 105b asrs r3, r3, #1 + 803db7e: b21a sxth r2, r3 + 803db80: 69fb ldr r3, [r7, #28] + 803db82: 865a strh r2, [r3, #50] ; 0x32 img->pivot.y = header.h / 2; - 803dc18: 89fb ldrh r3, [r7, #14] - 803dc1a: f3c3 134a ubfx r3, r3, #5, #11 - 803dc1e: b29b uxth r3, r3 - 803dc20: 0fda lsrs r2, r3, #31 - 803dc22: 4413 add r3, r2 - 803dc24: 105b asrs r3, r3, #1 - 803dc26: b21a sxth r2, r3 - 803dc28: 69fb ldr r3, [r7, #28] - 803dc2a: 869a strh r2, [r3, #52] ; 0x34 + 803db84: 89fb ldrh r3, [r7, #14] + 803db86: f3c3 134a ubfx r3, r3, #5, #11 + 803db8a: b29b uxth r3, r3 + 803db8c: 0fda lsrs r2, r3, #31 + 803db8e: 4413 add r3, r2 + 803db90: 105b asrs r3, r3, #1 + 803db92: b21a sxth r2, r3 + 803db94: 69fb ldr r3, [r7, #28] + 803db96: 869a strh r2, [r3, #52] ; 0x34 lv_obj_refresh_self_size(obj); - 803dc2c: 6878 ldr r0, [r7, #4] - 803dc2e: f7cc fb88 bl 800a342 + 803db98: 6878 ldr r0, [r7, #4] + 803db9a: f7cc fb9c bl 800a2d6 /*Provide enough room for the rotated corners*/ if(img->angle || img->zoom != LV_IMG_ZOOM_NONE) lv_obj_refresh_ext_draw_size(obj); - 803dc32: 69fb ldr r3, [r7, #28] - 803dc34: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803dc36: 2b00 cmp r3, #0 - 803dc38: d104 bne.n 803dc44 - 803dc3a: 69fb ldr r3, [r7, #28] - 803dc3c: 8edb ldrh r3, [r3, #54] ; 0x36 - 803dc3e: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 803dc42: d002 beq.n 803dc4a - 803dc44: 6878 ldr r0, [r7, #4] - 803dc46: f7cb f922 bl 8008e8e + 803db9e: 69fb ldr r3, [r7, #28] + 803dba0: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803dba2: 2b00 cmp r3, #0 + 803dba4: d104 bne.n 803dbb0 + 803dba6: 69fb ldr r3, [r7, #28] + 803dba8: 8edb ldrh r3, [r3, #54] ; 0x36 + 803dbaa: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 803dbae: d002 beq.n 803dbb6 + 803dbb0: 6878 ldr r0, [r7, #4] + 803dbb2: f7cb f936 bl 8008e22 lv_obj_invalidate(obj); - 803dc4a: 6878 ldr r0, [r7, #4] - 803dc4c: f7cc ff31 bl 800aab2 - 803dc50: e000 b.n 803dc54 + 803dbb6: 6878 ldr r0, [r7, #4] + 803dbb8: f7cc ff45 bl 800aa46 + 803dbbc: e000 b.n 803dbc0 if(new_str == NULL) return; - 803dc52: bf00 nop + 803dbbe: bf00 nop } - 803dc54: 3728 adds r7, #40 ; 0x28 - 803dc56: 46bd mov sp, r7 - 803dc58: bd80 pop {r7, pc} + 803dbc0: 3728 adds r7, #40 ; 0x28 + 803dbc2: 46bd mov sp, r7 + 803dbc4: bd80 pop {r7, pc} -0803dc5a : +0803dbc6 : /********************** * STATIC FUNCTIONS **********************/ static void lv_img_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 803dc5a: b580 push {r7, lr} - 803dc5c: b084 sub sp, #16 - 803dc5e: af00 add r7, sp, #0 - 803dc60: 6078 str r0, [r7, #4] - 803dc62: 6039 str r1, [r7, #0] + 803dbc6: b580 push {r7, lr} + 803dbc8: b084 sub sp, #16 + 803dbca: af00 add r7, sp, #0 + 803dbcc: 6078 str r0, [r7, #4] + 803dbce: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_img_t * img = (lv_img_t *)obj; - 803dc64: 683b ldr r3, [r7, #0] - 803dc66: 60fb str r3, [r7, #12] + 803dbd0: 683b ldr r3, [r7, #0] + 803dbd2: 60fb str r3, [r7, #12] img->src = NULL; - 803dc68: 68fb ldr r3, [r7, #12] - 803dc6a: 2200 movs r2, #0 - 803dc6c: 625a str r2, [r3, #36] ; 0x24 + 803dbd4: 68fb ldr r3, [r7, #12] + 803dbd6: 2200 movs r2, #0 + 803dbd8: 625a str r2, [r3, #36] ; 0x24 img->src_type = LV_IMG_SRC_UNKNOWN; - 803dc6e: 68fa ldr r2, [r7, #12] - 803dc70: f892 3038 ldrb.w r3, [r2, #56] ; 0x38 - 803dc74: f043 0303 orr.w r3, r3, #3 - 803dc78: f882 3038 strb.w r3, [r2, #56] ; 0x38 + 803dbda: 68fa ldr r2, [r7, #12] + 803dbdc: f892 3038 ldrb.w r3, [r2, #56] ; 0x38 + 803dbe0: f043 0303 orr.w r3, r3, #3 + 803dbe4: f882 3038 strb.w r3, [r2, #56] ; 0x38 img->cf = LV_IMG_CF_UNKNOWN; - 803dc7c: 68fa ldr r2, [r7, #12] - 803dc7e: f892 3038 ldrb.w r3, [r2, #56] ; 0x38 - 803dc82: f36f 0386 bfc r3, #2, #5 - 803dc86: f882 3038 strb.w r3, [r2, #56] ; 0x38 + 803dbe8: 68fa ldr r2, [r7, #12] + 803dbea: f892 3038 ldrb.w r3, [r2, #56] ; 0x38 + 803dbee: f36f 0386 bfc r3, #2, #5 + 803dbf2: f882 3038 strb.w r3, [r2, #56] ; 0x38 img->w = lv_obj_get_width(obj); - 803dc8a: 6838 ldr r0, [r7, #0] - 803dc8c: f7cc fa5c bl 800a148 - 803dc90: 4603 mov r3, r0 - 803dc92: 461a mov r2, r3 - 803dc94: 68fb ldr r3, [r7, #12] - 803dc96: 859a strh r2, [r3, #44] ; 0x2c + 803dbf6: 6838 ldr r0, [r7, #0] + 803dbf8: f7cc fa70 bl 800a0dc + 803dbfc: 4603 mov r3, r0 + 803dbfe: 461a mov r2, r3 + 803dc00: 68fb ldr r3, [r7, #12] + 803dc02: 859a strh r2, [r3, #44] ; 0x2c img->h = lv_obj_get_height(obj); - 803dc98: 6838 ldr r0, [r7, #0] - 803dc9a: f7cc fa63 bl 800a164 - 803dc9e: 4603 mov r3, r0 - 803dca0: 461a mov r2, r3 - 803dca2: 68fb ldr r3, [r7, #12] - 803dca4: 85da strh r2, [r3, #46] ; 0x2e + 803dc04: 6838 ldr r0, [r7, #0] + 803dc06: f7cc fa77 bl 800a0f8 + 803dc0a: 4603 mov r3, r0 + 803dc0c: 461a mov r2, r3 + 803dc0e: 68fb ldr r3, [r7, #12] + 803dc10: 85da strh r2, [r3, #46] ; 0x2e img->angle = 0; - 803dca6: 68fb ldr r3, [r7, #12] - 803dca8: 2200 movs r2, #0 - 803dcaa: 861a strh r2, [r3, #48] ; 0x30 + 803dc12: 68fb ldr r3, [r7, #12] + 803dc14: 2200 movs r2, #0 + 803dc16: 861a strh r2, [r3, #48] ; 0x30 img->zoom = LV_IMG_ZOOM_NONE; - 803dcac: 68fb ldr r3, [r7, #12] - 803dcae: f44f 7280 mov.w r2, #256 ; 0x100 - 803dcb2: 86da strh r2, [r3, #54] ; 0x36 + 803dc18: 68fb ldr r3, [r7, #12] + 803dc1a: f44f 7280 mov.w r2, #256 ; 0x100 + 803dc1e: 86da strh r2, [r3, #54] ; 0x36 img->antialias = LV_COLOR_DEPTH > 8 ? 1 : 0; - 803dcb4: 68fa ldr r2, [r7, #12] - 803dcb6: f892 3038 ldrb.w r3, [r2, #56] ; 0x38 - 803dcba: f043 0380 orr.w r3, r3, #128 ; 0x80 - 803dcbe: f882 3038 strb.w r3, [r2, #56] ; 0x38 + 803dc20: 68fa ldr r2, [r7, #12] + 803dc22: f892 3038 ldrb.w r3, [r2, #56] ; 0x38 + 803dc26: f043 0380 orr.w r3, r3, #128 ; 0x80 + 803dc2a: f882 3038 strb.w r3, [r2, #56] ; 0x38 img->offset.x = 0; - 803dcc2: 68fb ldr r3, [r7, #12] - 803dcc4: 2200 movs r2, #0 - 803dcc6: 851a strh r2, [r3, #40] ; 0x28 + 803dc2e: 68fb ldr r3, [r7, #12] + 803dc30: 2200 movs r2, #0 + 803dc32: 851a strh r2, [r3, #40] ; 0x28 img->offset.y = 0; - 803dcc8: 68fb ldr r3, [r7, #12] - 803dcca: 2200 movs r2, #0 - 803dccc: 855a strh r2, [r3, #42] ; 0x2a + 803dc34: 68fb ldr r3, [r7, #12] + 803dc36: 2200 movs r2, #0 + 803dc38: 855a strh r2, [r3, #42] ; 0x2a img->pivot.x = 0; - 803dcce: 68fb ldr r3, [r7, #12] - 803dcd0: 2200 movs r2, #0 - 803dcd2: 865a strh r2, [r3, #50] ; 0x32 + 803dc3a: 68fb ldr r3, [r7, #12] + 803dc3c: 2200 movs r2, #0 + 803dc3e: 865a strh r2, [r3, #50] ; 0x32 img->pivot.y = 0; - 803dcd4: 68fb ldr r3, [r7, #12] - 803dcd6: 2200 movs r2, #0 - 803dcd8: 869a strh r2, [r3, #52] ; 0x34 + 803dc40: 68fb ldr r3, [r7, #12] + 803dc42: 2200 movs r2, #0 + 803dc44: 869a strh r2, [r3, #52] ; 0x34 img->obj_size_mode = LV_IMG_SIZE_MODE_VIRTUAL; - 803dcda: 68fa ldr r2, [r7, #12] - 803dcdc: f892 3039 ldrb.w r3, [r2, #57] ; 0x39 - 803dce0: f36f 0301 bfc r3, #0, #2 - 803dce4: f882 3039 strb.w r3, [r2, #57] ; 0x39 + 803dc46: 68fa ldr r2, [r7, #12] + 803dc48: f892 3039 ldrb.w r3, [r2, #57] ; 0x39 + 803dc4c: f36f 0301 bfc r3, #0, #2 + 803dc50: f882 3039 strb.w r3, [r2, #57] ; 0x39 lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE); - 803dce8: 2102 movs r1, #2 - 803dcea: 6838 ldr r0, [r7, #0] - 803dcec: f7c8 fcb8 bl 8006660 + 803dc54: 2102 movs r1, #2 + 803dc56: 6838 ldr r0, [r7, #0] + 803dc58: f7c8 fccc bl 80065f4 lv_obj_add_flag(obj, LV_OBJ_FLAG_ADV_HITTEST); - 803dcf0: f44f 3180 mov.w r1, #65536 ; 0x10000 - 803dcf4: 6838 ldr r0, [r7, #0] - 803dcf6: f7c8 fc5f bl 80065b8 + 803dc5c: f44f 3180 mov.w r1, #65536 ; 0x10000 + 803dc60: 6838 ldr r0, [r7, #0] + 803dc62: f7c8 fc73 bl 800654c LV_TRACE_OBJ_CREATE("finished"); } - 803dcfa: bf00 nop - 803dcfc: 3710 adds r7, #16 - 803dcfe: 46bd mov sp, r7 - 803dd00: bd80 pop {r7, pc} + 803dc66: bf00 nop + 803dc68: 3710 adds r7, #16 + 803dc6a: 46bd mov sp, r7 + 803dc6c: bd80 pop {r7, pc} -0803dd02 : +0803dc6e : static void lv_img_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 803dd02: b580 push {r7, lr} - 803dd04: b084 sub sp, #16 - 803dd06: af00 add r7, sp, #0 - 803dd08: 6078 str r0, [r7, #4] - 803dd0a: 6039 str r1, [r7, #0] + 803dc6e: b580 push {r7, lr} + 803dc70: b084 sub sp, #16 + 803dc72: af00 add r7, sp, #0 + 803dc74: 6078 str r0, [r7, #4] + 803dc76: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_img_t * img = (lv_img_t *)obj; - 803dd0c: 683b ldr r3, [r7, #0] - 803dd0e: 60fb str r3, [r7, #12] + 803dc78: 683b ldr r3, [r7, #0] + 803dc7a: 60fb str r3, [r7, #12] if(img->src_type == LV_IMG_SRC_FILE || img->src_type == LV_IMG_SRC_SYMBOL) { - 803dd10: 68fb ldr r3, [r7, #12] - 803dd12: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 - 803dd16: f003 0303 and.w r3, r3, #3 - 803dd1a: b2db uxtb r3, r3 - 803dd1c: 2b01 cmp r3, #1 - 803dd1e: d007 beq.n 803dd30 - 803dd20: 68fb ldr r3, [r7, #12] - 803dd22: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 - 803dd26: f003 0303 and.w r3, r3, #3 - 803dd2a: b2db uxtb r3, r3 - 803dd2c: 2b02 cmp r3, #2 - 803dd2e: d10e bne.n 803dd4e + 803dc7c: 68fb ldr r3, [r7, #12] + 803dc7e: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 + 803dc82: f003 0303 and.w r3, r3, #3 + 803dc86: b2db uxtb r3, r3 + 803dc88: 2b01 cmp r3, #1 + 803dc8a: d007 beq.n 803dc9c + 803dc8c: 68fb ldr r3, [r7, #12] + 803dc8e: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 + 803dc92: f003 0303 and.w r3, r3, #3 + 803dc96: b2db uxtb r3, r3 + 803dc98: 2b02 cmp r3, #2 + 803dc9a: d10e bne.n 803dcba lv_mem_free((void *)img->src); - 803dd30: 68fb ldr r3, [r7, #12] - 803dd32: 6a5b ldr r3, [r3, #36] ; 0x24 - 803dd34: 4618 mov r0, r3 - 803dd36: f7f4 fdd1 bl 80328dc + 803dc9c: 68fb ldr r3, [r7, #12] + 803dc9e: 6a5b ldr r3, [r3, #36] ; 0x24 + 803dca0: 4618 mov r0, r3 + 803dca2: f7f4 fdd1 bl 8032848 img->src = NULL; - 803dd3a: 68fb ldr r3, [r7, #12] - 803dd3c: 2200 movs r2, #0 - 803dd3e: 625a str r2, [r3, #36] ; 0x24 + 803dca6: 68fb ldr r3, [r7, #12] + 803dca8: 2200 movs r2, #0 + 803dcaa: 625a str r2, [r3, #36] ; 0x24 img->src_type = LV_IMG_SRC_UNKNOWN; - 803dd40: 68fa ldr r2, [r7, #12] - 803dd42: f892 3038 ldrb.w r3, [r2, #56] ; 0x38 - 803dd46: f043 0303 orr.w r3, r3, #3 - 803dd4a: f882 3038 strb.w r3, [r2, #56] ; 0x38 + 803dcac: 68fa ldr r2, [r7, #12] + 803dcae: f892 3038 ldrb.w r3, [r2, #56] ; 0x38 + 803dcb2: f043 0303 orr.w r3, r3, #3 + 803dcb6: f882 3038 strb.w r3, [r2, #56] ; 0x38 } } - 803dd4e: bf00 nop - 803dd50: 3710 adds r7, #16 - 803dd52: 46bd mov sp, r7 - 803dd54: bd80 pop {r7, pc} + 803dcba: bf00 nop + 803dcbc: 3710 adds r7, #16 + 803dcbe: 46bd mov sp, r7 + 803dcc0: bd80 pop {r7, pc} -0803dd56 : +0803dcc2 : static lv_point_t lv_img_get_transformed_size(lv_obj_t * obj) { - 803dd56: b5b0 push {r4, r5, r7, lr} - 803dd58: b08c sub sp, #48 ; 0x30 - 803dd5a: af02 add r7, sp, #8 - 803dd5c: 6078 str r0, [r7, #4] + 803dcc2: b5b0 push {r4, r5, r7, lr} + 803dcc4: b08c sub sp, #48 ; 0x30 + 803dcc6: af02 add r7, sp, #8 + 803dcc8: 6078 str r0, [r7, #4] lv_img_t * img = (lv_img_t *)obj; - 803dd5e: 687b ldr r3, [r7, #4] - 803dd60: 627b str r3, [r7, #36] ; 0x24 + 803dcca: 687b ldr r3, [r7, #4] + 803dccc: 627b str r3, [r7, #36] ; 0x24 int32_t zoom_final = lv_obj_get_style_transform_zoom(obj, LV_PART_MAIN); - 803dd62: 2100 movs r1, #0 - 803dd64: 6878 ldr r0, [r7, #4] - 803dd66: f7ff fd76 bl 803d856 - 803dd6a: 4603 mov r3, r0 - 803dd6c: 623b str r3, [r7, #32] + 803dcce: 2100 movs r1, #0 + 803dcd0: 6878 ldr r0, [r7, #4] + 803dcd2: f7ff fd76 bl 803d7c2 + 803dcd6: 4603 mov r3, r0 + 803dcd8: 623b str r3, [r7, #32] zoom_final = (zoom_final * img->zoom) >> 8; - 803dd6e: 6a7b ldr r3, [r7, #36] ; 0x24 - 803dd70: 8edb ldrh r3, [r3, #54] ; 0x36 - 803dd72: 461a mov r2, r3 - 803dd74: 6a3b ldr r3, [r7, #32] - 803dd76: fb02 f303 mul.w r3, r2, r3 - 803dd7a: 121b asrs r3, r3, #8 - 803dd7c: 623b str r3, [r7, #32] + 803dcda: 6a7b ldr r3, [r7, #36] ; 0x24 + 803dcdc: 8edb ldrh r3, [r3, #54] ; 0x36 + 803dcde: 461a mov r2, r3 + 803dce0: 6a3b ldr r3, [r7, #32] + 803dce2: fb02 f303 mul.w r3, r2, r3 + 803dce6: 121b asrs r3, r3, #8 + 803dce8: 623b str r3, [r7, #32] int32_t angle_final = lv_obj_get_style_transform_angle(obj, LV_PART_MAIN); - 803dd7e: 2100 movs r1, #0 - 803dd80: 6878 ldr r0, [r7, #4] - 803dd82: f7ff fd7b bl 803d87c - 803dd86: 4603 mov r3, r0 - 803dd88: 61fb str r3, [r7, #28] + 803dcea: 2100 movs r1, #0 + 803dcec: 6878 ldr r0, [r7, #4] + 803dcee: f7ff fd7b bl 803d7e8 + 803dcf2: 4603 mov r3, r0 + 803dcf4: 61fb str r3, [r7, #28] angle_final += img->angle; - 803dd8a: 6a7b ldr r3, [r7, #36] ; 0x24 - 803dd8c: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803dd8e: 461a mov r2, r3 - 803dd90: 69fb ldr r3, [r7, #28] - 803dd92: 4413 add r3, r2 - 803dd94: 61fb str r3, [r7, #28] + 803dcf6: 6a7b ldr r3, [r7, #36] ; 0x24 + 803dcf8: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803dcfa: 461a mov r2, r3 + 803dcfc: 69fb ldr r3, [r7, #28] + 803dcfe: 4413 add r3, r2 + 803dd00: 61fb str r3, [r7, #28] lv_area_t area_transform; _lv_img_buf_get_transformed_area(&area_transform, img->w, img->h, - 803dd96: 6a7b ldr r3, [r7, #36] ; 0x24 - 803dd98: f9b3 102c ldrsh.w r1, [r3, #44] ; 0x2c - 803dd9c: 6a7b ldr r3, [r7, #36] ; 0x24 - 803dd9e: f9b3 402e ldrsh.w r4, [r3, #46] ; 0x2e - 803dda2: 69fb ldr r3, [r7, #28] - 803dda4: b21d sxth r5, r3 - 803dda6: 6a3b ldr r3, [r7, #32] - 803dda8: b29b uxth r3, r3 + 803dd02: 6a7b ldr r3, [r7, #36] ; 0x24 + 803dd04: f9b3 102c ldrsh.w r1, [r3, #44] ; 0x2c + 803dd08: 6a7b ldr r3, [r7, #36] ; 0x24 + 803dd0a: f9b3 402e ldrsh.w r4, [r3, #46] ; 0x2e + 803dd0e: 69fb ldr r3, [r7, #28] + 803dd10: b21d sxth r5, r3 + 803dd12: 6a3b ldr r3, [r7, #32] + 803dd14: b29b uxth r3, r3 angle_final, zoom_final, &img->pivot); - 803ddaa: 6a7a ldr r2, [r7, #36] ; 0x24 - 803ddac: 3232 adds r2, #50 ; 0x32 + 803dd16: 6a7a ldr r2, [r7, #36] ; 0x24 + 803dd18: 3232 adds r2, #50 ; 0x32 _lv_img_buf_get_transformed_area(&area_transform, img->w, img->h, - 803ddae: f107 0010 add.w r0, r7, #16 - 803ddb2: 9201 str r2, [sp, #4] - 803ddb4: 9300 str r3, [sp, #0] - 803ddb6: 462b mov r3, r5 - 803ddb8: 4622 mov r2, r4 - 803ddba: f7d8 f97d bl 80160b8 <_lv_img_buf_get_transformed_area> + 803dd1a: f107 0010 add.w r0, r7, #16 + 803dd1e: 9201 str r2, [sp, #4] + 803dd20: 9300 str r3, [sp, #0] + 803dd22: 462b mov r3, r5 + 803dd24: 4622 mov r2, r4 + 803dd26: f7d8 f97d bl 8016024 <_lv_img_buf_get_transformed_area> return (lv_point_t) { lv_area_get_width(&area_transform), lv_area_get_height(&area_transform) - 803ddbe: f107 0310 add.w r3, r7, #16 - 803ddc2: 4618 mov r0, r3 - 803ddc4: f7ff fd1b bl 803d7fe - 803ddc8: 4603 mov r3, r0 - 803ddca: 461c mov r4, r3 - 803ddcc: f107 0310 add.w r3, r7, #16 - 803ddd0: 4618 mov r0, r3 - 803ddd2: f7ff fd2a bl 803d82a - 803ddd6: 4603 mov r3, r0 - 803ddd8: 461a mov r2, r3 + 803dd2a: f107 0310 add.w r3, r7, #16 + 803dd2e: 4618 mov r0, r3 + 803dd30: f7ff fd1b bl 803d76a + 803dd34: 4603 mov r3, r0 + 803dd36: 461c mov r4, r3 + 803dd38: f107 0310 add.w r3, r7, #16 + 803dd3c: 4618 mov r0, r3 + 803dd3e: f7ff fd2a bl 803d796 + 803dd42: 4603 mov r3, r0 + 803dd44: 461a mov r2, r3 return (lv_point_t) { - 803ddda: 4623 mov r3, r4 - 803dddc: 833b strh r3, [r7, #24] - 803ddde: 4613 mov r3, r2 - 803dde0: 837b strh r3, [r7, #26] - 803dde2: 2300 movs r3, #0 - 803dde4: 8b3a ldrh r2, [r7, #24] - 803dde6: f362 030f bfi r3, r2, #0, #16 - 803ddea: 8b7a ldrh r2, [r7, #26] - 803ddec: f362 431f bfi r3, r2, #16, #16 + 803dd46: 4623 mov r3, r4 + 803dd48: 833b strh r3, [r7, #24] + 803dd4a: 4613 mov r3, r2 + 803dd4c: 837b strh r3, [r7, #26] + 803dd4e: 2300 movs r3, #0 + 803dd50: 8b3a ldrh r2, [r7, #24] + 803dd52: f362 030f bfi r3, r2, #0, #16 + 803dd56: 8b7a ldrh r2, [r7, #26] + 803dd58: f362 431f bfi r3, r2, #16, #16 }; } - 803ddf0: 4618 mov r0, r3 - 803ddf2: 3728 adds r7, #40 ; 0x28 - 803ddf4: 46bd mov sp, r7 - 803ddf6: bdb0 pop {r4, r5, r7, pc} + 803dd5c: 4618 mov r0, r3 + 803dd5e: 3728 adds r7, #40 ; 0x28 + 803dd60: 46bd mov sp, r7 + 803dd62: bdb0 pop {r4, r5, r7, pc} -0803ddf8 : +0803dd64 : static void lv_img_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 803ddf8: b5b0 push {r4, r5, r7, lr} - 803ddfa: b096 sub sp, #88 ; 0x58 - 803ddfc: af02 add r7, sp, #8 - 803ddfe: 6078 str r0, [r7, #4] - 803de00: 6039 str r1, [r7, #0] + 803dd64: b5b0 push {r4, r5, r7, lr} + 803dd66: b096 sub sp, #88 ; 0x58 + 803dd68: af02 add r7, sp, #8 + 803dd6a: 6078 str r0, [r7, #4] + 803dd6c: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_event_code_t code = lv_event_get_code(e); - 803de02: 6838 ldr r0, [r7, #0] - 803de04: f7c4 fbd2 bl 80025ac - 803de08: 4603 mov r3, r0 - 803de0a: f887 304f strb.w r3, [r7, #79] ; 0x4f + 803dd6e: 6838 ldr r0, [r7, #0] + 803dd70: f7c4 fbe6 bl 8002540 + 803dd74: 4603 mov r3, r0 + 803dd76: f887 304f strb.w r3, [r7, #79] ; 0x4f /*Ancestor events will be called during drawing*/ if(code != LV_EVENT_DRAW_MAIN && code != LV_EVENT_DRAW_POST) { - 803de0e: f897 304f ldrb.w r3, [r7, #79] ; 0x4f - 803de12: 2b15 cmp r3, #21 - 803de14: d00f beq.n 803de36 - 803de16: f897 304f ldrb.w r3, [r7, #79] ; 0x4f - 803de1a: 2b18 cmp r3, #24 - 803de1c: d00b beq.n 803de36 + 803dd7a: f897 304f ldrb.w r3, [r7, #79] ; 0x4f + 803dd7e: 2b15 cmp r3, #21 + 803dd80: d00f beq.n 803dda2 + 803dd82: f897 304f ldrb.w r3, [r7, #79] ; 0x4f + 803dd86: 2b18 cmp r3, #24 + 803dd88: d00b beq.n 803dda2 /*Call the ancestor's event handler*/ lv_res_t res = lv_obj_event_base(MY_CLASS, e); - 803de1e: 6839 ldr r1, [r7, #0] - 803de20: 48ad ldr r0, [pc, #692] ; (803e0d8 ) - 803de22: f7c4 fb6f bl 8002504 - 803de26: 4603 mov r3, r0 - 803de28: f887 304e strb.w r3, [r7, #78] ; 0x4e + 803dd8a: 6839 ldr r1, [r7, #0] + 803dd8c: 48ad ldr r0, [pc, #692] ; (803e044 ) + 803dd8e: f7c4 fb83 bl 8002498 + 803dd92: 4603 mov r3, r0 + 803dd94: f887 304e strb.w r3, [r7, #78] ; 0x4e if(res != LV_RES_OK) return; - 803de2c: f897 304e ldrb.w r3, [r7, #78] ; 0x4e - 803de30: 2b01 cmp r3, #1 - 803de32: f040 819c bne.w 803e16e + 803dd98: f897 304e ldrb.w r3, [r7, #78] ; 0x4e + 803dd9c: 2b01 cmp r3, #1 + 803dd9e: f040 819c bne.w 803e0da } lv_obj_t * obj = lv_event_get_target(e); - 803de36: 6838 ldr r0, [r7, #0] - 803de38: f7c4 fba2 bl 8002580 - 803de3c: 64b8 str r0, [r7, #72] ; 0x48 + 803dda2: 6838 ldr r0, [r7, #0] + 803dda4: f7c4 fbb6 bl 8002514 + 803dda8: 64b8 str r0, [r7, #72] ; 0x48 lv_img_t * img = (lv_img_t *)obj; - 803de3e: 6cbb ldr r3, [r7, #72] ; 0x48 - 803de40: 647b str r3, [r7, #68] ; 0x44 + 803ddaa: 6cbb ldr r3, [r7, #72] ; 0x48 + 803ddac: 647b str r3, [r7, #68] ; 0x44 if(code == LV_EVENT_STYLE_CHANGED) { - 803de42: f897 304f ldrb.w r3, [r7, #79] ; 0x4f - 803de46: 2b2a cmp r3, #42 ; 0x2a - 803de48: d112 bne.n 803de70 + 803ddae: f897 304f ldrb.w r3, [r7, #79] ; 0x4f + 803ddb2: 2b2a cmp r3, #42 ; 0x2a + 803ddb4: d112 bne.n 803dddc /*Refresh the file name to refresh the symbol text size*/ if(img->src_type == LV_IMG_SRC_SYMBOL) { - 803de4a: 6c7b ldr r3, [r7, #68] ; 0x44 - 803de4c: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 - 803de50: f003 0303 and.w r3, r3, #3 - 803de54: b2db uxtb r3, r3 - 803de56: 2b02 cmp r3, #2 - 803de58: d106 bne.n 803de68 + 803ddb6: 6c7b ldr r3, [r7, #68] ; 0x44 + 803ddb8: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 + 803ddbc: f003 0303 and.w r3, r3, #3 + 803ddc0: b2db uxtb r3, r3 + 803ddc2: 2b02 cmp r3, #2 + 803ddc4: d106 bne.n 803ddd4 lv_img_set_src(obj, img->src); - 803de5a: 6c7b ldr r3, [r7, #68] ; 0x44 - 803de5c: 6a5b ldr r3, [r3, #36] ; 0x24 - 803de5e: 4619 mov r1, r3 - 803de60: 6cb8 ldr r0, [r7, #72] ; 0x48 - 803de62: f7ff fddb bl 803da1c - 803de66: e183 b.n 803e170 + 803ddc6: 6c7b ldr r3, [r7, #68] ; 0x44 + 803ddc8: 6a5b ldr r3, [r3, #36] ; 0x24 + 803ddca: 4619 mov r1, r3 + 803ddcc: 6cb8 ldr r0, [r7, #72] ; 0x48 + 803ddce: f7ff fddb bl 803d988 + 803ddd2: e183 b.n 803e0dc } else { /*With transformation it might change*/ lv_obj_refresh_ext_draw_size(obj); - 803de68: 6cb8 ldr r0, [r7, #72] ; 0x48 - 803de6a: f7cb f810 bl 8008e8e - 803de6e: e17f b.n 803e170 + 803ddd4: 6cb8 ldr r0, [r7, #72] ; 0x48 + 803ddd6: f7cb f824 bl 8008e22 + 803ddda: e17f b.n 803e0dc } } else if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) { - 803de70: f897 304f ldrb.w r3, [r7, #79] ; 0x4f - 803de74: 2b13 cmp r3, #19 - 803de76: f040 8085 bne.w 803df84 + 803dddc: f897 304f ldrb.w r3, [r7, #79] ; 0x4f + 803dde0: 2b13 cmp r3, #19 + 803dde2: f040 8085 bne.w 803def0 lv_coord_t * s = lv_event_get_param(e); - 803de7a: 6838 ldr r0, [r7, #0] - 803de7c: f7c4 fba4 bl 80025c8 - 803de80: 6338 str r0, [r7, #48] ; 0x30 + 803dde6: 6838 ldr r0, [r7, #0] + 803dde8: f7c4 fbb8 bl 800255c + 803ddec: 6338 str r0, [r7, #48] ; 0x30 lv_coord_t transf_zoom = lv_obj_get_style_transform_zoom(obj, LV_PART_MAIN); - 803de82: 2100 movs r1, #0 - 803de84: 6cb8 ldr r0, [r7, #72] ; 0x48 - 803de86: f7ff fce6 bl 803d856 - 803de8a: 4603 mov r3, r0 - 803de8c: 85fb strh r3, [r7, #46] ; 0x2e + 803ddee: 2100 movs r1, #0 + 803ddf0: 6cb8 ldr r0, [r7, #72] ; 0x48 + 803ddf2: f7ff fce6 bl 803d7c2 + 803ddf6: 4603 mov r3, r0 + 803ddf8: 85fb strh r3, [r7, #46] ; 0x2e transf_zoom = ((int32_t)transf_zoom * img->zoom) >> 8; - 803de8e: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 803de92: 6c7a ldr r2, [r7, #68] ; 0x44 - 803de94: 8ed2 ldrh r2, [r2, #54] ; 0x36 - 803de96: fb02 f303 mul.w r3, r2, r3 - 803de9a: 121b asrs r3, r3, #8 - 803de9c: 85fb strh r3, [r7, #46] ; 0x2e + 803ddfa: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 803ddfe: 6c7a ldr r2, [r7, #68] ; 0x44 + 803de00: 8ed2 ldrh r2, [r2, #54] ; 0x36 + 803de02: fb02 f303 mul.w r3, r2, r3 + 803de06: 121b asrs r3, r3, #8 + 803de08: 85fb strh r3, [r7, #46] ; 0x2e lv_coord_t transf_angle = lv_obj_get_style_transform_angle(obj, LV_PART_MAIN); - 803de9e: 2100 movs r1, #0 - 803dea0: 6cb8 ldr r0, [r7, #72] ; 0x48 - 803dea2: f7ff fceb bl 803d87c - 803dea6: 4603 mov r3, r0 - 803dea8: 85bb strh r3, [r7, #44] ; 0x2c + 803de0a: 2100 movs r1, #0 + 803de0c: 6cb8 ldr r0, [r7, #72] ; 0x48 + 803de0e: f7ff fceb bl 803d7e8 + 803de12: 4603 mov r3, r0 + 803de14: 85bb strh r3, [r7, #44] ; 0x2c transf_angle += img->angle; - 803deaa: 6c7b ldr r3, [r7, #68] ; 0x44 - 803deac: 8e1a ldrh r2, [r3, #48] ; 0x30 - 803deae: 8dbb ldrh r3, [r7, #44] ; 0x2c - 803deb0: 4413 add r3, r2 - 803deb2: b29b uxth r3, r3 - 803deb4: 85bb strh r3, [r7, #44] ; 0x2c + 803de16: 6c7b ldr r3, [r7, #68] ; 0x44 + 803de18: 8e1a ldrh r2, [r3, #48] ; 0x30 + 803de1a: 8dbb ldrh r3, [r7, #44] ; 0x2c + 803de1c: 4413 add r3, r2 + 803de1e: b29b uxth r3, r3 + 803de20: 85bb strh r3, [r7, #44] ; 0x2c /*If the image has angle provide enough room for the rotated corners*/ if(transf_angle || transf_zoom != LV_IMG_ZOOM_NONE) { - 803deb6: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 803deba: 2b00 cmp r3, #0 - 803debc: d105 bne.n 803deca - 803debe: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 803dec2: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 803dec6: f000 8153 beq.w 803e170 + 803de22: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 803de26: 2b00 cmp r3, #0 + 803de28: d105 bne.n 803de36 + 803de2a: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 803de2e: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 803de32: f000 8153 beq.w 803e0dc lv_area_t a; lv_coord_t w = lv_obj_get_width(obj); - 803deca: 6cb8 ldr r0, [r7, #72] ; 0x48 - 803decc: f7cc f93c bl 800a148 - 803ded0: 4603 mov r3, r0 - 803ded2: 857b strh r3, [r7, #42] ; 0x2a + 803de36: 6cb8 ldr r0, [r7, #72] ; 0x48 + 803de38: f7cc f950 bl 800a0dc + 803de3c: 4603 mov r3, r0 + 803de3e: 857b strh r3, [r7, #42] ; 0x2a lv_coord_t h = lv_obj_get_height(obj); - 803ded4: 6cb8 ldr r0, [r7, #72] ; 0x48 - 803ded6: f7cc f945 bl 800a164 - 803deda: 4603 mov r3, r0 - 803dedc: 853b strh r3, [r7, #40] ; 0x28 + 803de40: 6cb8 ldr r0, [r7, #72] ; 0x48 + 803de42: f7cc f959 bl 800a0f8 + 803de46: 4603 mov r3, r0 + 803de48: 853b strh r3, [r7, #40] ; 0x28 _lv_img_buf_get_transformed_area(&a, w, h, transf_angle, transf_zoom, &img->pivot); - 803dede: 8dfb ldrh r3, [r7, #46] ; 0x2e - 803dee0: 6c7a ldr r2, [r7, #68] ; 0x44 - 803dee2: 3232 adds r2, #50 ; 0x32 - 803dee4: f9b7 502c ldrsh.w r5, [r7, #44] ; 0x2c - 803dee8: f9b7 4028 ldrsh.w r4, [r7, #40] ; 0x28 - 803deec: f9b7 102a ldrsh.w r1, [r7, #42] ; 0x2a - 803def0: f107 001c add.w r0, r7, #28 - 803def4: 9201 str r2, [sp, #4] - 803def6: 9300 str r3, [sp, #0] - 803def8: 462b mov r3, r5 - 803defa: 4622 mov r2, r4 - 803defc: f7d8 f8dc bl 80160b8 <_lv_img_buf_get_transformed_area> + 803de4a: 8dfb ldrh r3, [r7, #46] ; 0x2e + 803de4c: 6c7a ldr r2, [r7, #68] ; 0x44 + 803de4e: 3232 adds r2, #50 ; 0x32 + 803de50: f9b7 502c ldrsh.w r5, [r7, #44] ; 0x2c + 803de54: f9b7 4028 ldrsh.w r4, [r7, #40] ; 0x28 + 803de58: f9b7 102a ldrsh.w r1, [r7, #42] ; 0x2a + 803de5c: f107 001c add.w r0, r7, #28 + 803de60: 9201 str r2, [sp, #4] + 803de62: 9300 str r3, [sp, #0] + 803de64: 462b mov r3, r5 + 803de66: 4622 mov r2, r4 + 803de68: f7d8 f8dc bl 8016024 <_lv_img_buf_get_transformed_area> lv_coord_t pad_ori = *s; - 803df00: 6b3b ldr r3, [r7, #48] ; 0x30 - 803df02: 881b ldrh r3, [r3, #0] - 803df04: 84fb strh r3, [r7, #38] ; 0x26 + 803de6c: 6b3b ldr r3, [r7, #48] ; 0x30 + 803de6e: 881b ldrh r3, [r3, #0] + 803de70: 84fb strh r3, [r7, #38] ; 0x26 *s = LV_MAX(*s, pad_ori - a.x1); - 803df06: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 803df0a: f9b7 201c ldrsh.w r2, [r7, #28] - 803df0e: 1a9b subs r3, r3, r2 - 803df10: 6b3a ldr r2, [r7, #48] ; 0x30 - 803df12: f9b2 2000 ldrsh.w r2, [r2] - 803df16: 4293 cmp r3, r2 - 803df18: bfb8 it lt - 803df1a: 4613 movlt r3, r2 - 803df1c: b21a sxth r2, r3 - 803df1e: 6b3b ldr r3, [r7, #48] ; 0x30 - 803df20: 801a strh r2, [r3, #0] + 803de72: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 803de76: f9b7 201c ldrsh.w r2, [r7, #28] + 803de7a: 1a9b subs r3, r3, r2 + 803de7c: 6b3a ldr r2, [r7, #48] ; 0x30 + 803de7e: f9b2 2000 ldrsh.w r2, [r2] + 803de82: 4293 cmp r3, r2 + 803de84: bfb8 it lt + 803de86: 4613 movlt r3, r2 + 803de88: b21a sxth r2, r3 + 803de8a: 6b3b ldr r3, [r7, #48] ; 0x30 + 803de8c: 801a strh r2, [r3, #0] *s = LV_MAX(*s, pad_ori - a.y1); - 803df22: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 803df26: f9b7 201e ldrsh.w r2, [r7, #30] - 803df2a: 1a9b subs r3, r3, r2 - 803df2c: 6b3a ldr r2, [r7, #48] ; 0x30 - 803df2e: f9b2 2000 ldrsh.w r2, [r2] - 803df32: 4293 cmp r3, r2 - 803df34: bfb8 it lt - 803df36: 4613 movlt r3, r2 - 803df38: b21a sxth r2, r3 - 803df3a: 6b3b ldr r3, [r7, #48] ; 0x30 - 803df3c: 801a strh r2, [r3, #0] + 803de8e: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 803de92: f9b7 201e ldrsh.w r2, [r7, #30] + 803de96: 1a9b subs r3, r3, r2 + 803de98: 6b3a ldr r2, [r7, #48] ; 0x30 + 803de9a: f9b2 2000 ldrsh.w r2, [r2] + 803de9e: 4293 cmp r3, r2 + 803dea0: bfb8 it lt + 803dea2: 4613 movlt r3, r2 + 803dea4: b21a sxth r2, r3 + 803dea6: 6b3b ldr r3, [r7, #48] ; 0x30 + 803dea8: 801a strh r2, [r3, #0] *s = LV_MAX(*s, pad_ori + a.x2 - w); - 803df3e: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 803df42: f9b7 2020 ldrsh.w r2, [r7, #32] - 803df46: 441a add r2, r3 - 803df48: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a - 803df4c: 1ad3 subs r3, r2, r3 - 803df4e: 6b3a ldr r2, [r7, #48] ; 0x30 - 803df50: f9b2 2000 ldrsh.w r2, [r2] - 803df54: 4293 cmp r3, r2 - 803df56: bfb8 it lt - 803df58: 4613 movlt r3, r2 - 803df5a: b21a sxth r2, r3 - 803df5c: 6b3b ldr r3, [r7, #48] ; 0x30 - 803df5e: 801a strh r2, [r3, #0] + 803deaa: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 803deae: f9b7 2020 ldrsh.w r2, [r7, #32] + 803deb2: 441a add r2, r3 + 803deb4: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a + 803deb8: 1ad3 subs r3, r2, r3 + 803deba: 6b3a ldr r2, [r7, #48] ; 0x30 + 803debc: f9b2 2000 ldrsh.w r2, [r2] + 803dec0: 4293 cmp r3, r2 + 803dec2: bfb8 it lt + 803dec4: 4613 movlt r3, r2 + 803dec6: b21a sxth r2, r3 + 803dec8: 6b3b ldr r3, [r7, #48] ; 0x30 + 803deca: 801a strh r2, [r3, #0] *s = LV_MAX(*s, pad_ori + a.y2 - h); - 803df60: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 803df64: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 - 803df68: 441a add r2, r3 - 803df6a: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 - 803df6e: 1ad3 subs r3, r2, r3 - 803df70: 6b3a ldr r2, [r7, #48] ; 0x30 - 803df72: f9b2 2000 ldrsh.w r2, [r2] - 803df76: 4293 cmp r3, r2 - 803df78: bfb8 it lt - 803df7a: 4613 movlt r3, r2 - 803df7c: b21a sxth r2, r3 - 803df7e: 6b3b ldr r3, [r7, #48] ; 0x30 - 803df80: 801a strh r2, [r3, #0] - 803df82: e0f5 b.n 803e170 + 803decc: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 803ded0: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 + 803ded4: 441a add r2, r3 + 803ded6: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 803deda: 1ad3 subs r3, r2, r3 + 803dedc: 6b3a ldr r2, [r7, #48] ; 0x30 + 803dede: f9b2 2000 ldrsh.w r2, [r2] + 803dee2: 4293 cmp r3, r2 + 803dee4: bfb8 it lt + 803dee6: 4613 movlt r3, r2 + 803dee8: b21a sxth r2, r3 + 803deea: 6b3b ldr r3, [r7, #48] ; 0x30 + 803deec: 801a strh r2, [r3, #0] + 803deee: e0f5 b.n 803e0dc } } else if(code == LV_EVENT_HIT_TEST) { - 803df84: f897 304f ldrb.w r3, [r7, #79] ; 0x4f - 803df88: 2b11 cmp r3, #17 - 803df8a: f040 80ba bne.w 803e102 + 803def0: f897 304f ldrb.w r3, [r7, #79] ; 0x4f + 803def4: 2b11 cmp r3, #17 + 803def6: f040 80ba bne.w 803e06e lv_hit_test_info_t * info = lv_event_get_param(e); - 803df8e: 6838 ldr r0, [r7, #0] - 803df90: f7c4 fb1a bl 80025c8 - 803df94: 63f8 str r0, [r7, #60] ; 0x3c + 803defa: 6838 ldr r0, [r7, #0] + 803defc: f7c4 fb2e bl 800255c + 803df00: 63f8 str r0, [r7, #60] ; 0x3c lv_coord_t zoom = lv_obj_get_style_transform_zoom(obj, LV_PART_MAIN); - 803df96: 2100 movs r1, #0 - 803df98: 6cb8 ldr r0, [r7, #72] ; 0x48 - 803df9a: f7ff fc5c bl 803d856 - 803df9e: 4603 mov r3, r0 - 803dfa0: 877b strh r3, [r7, #58] ; 0x3a + 803df02: 2100 movs r1, #0 + 803df04: 6cb8 ldr r0, [r7, #72] ; 0x48 + 803df06: f7ff fc5c bl 803d7c2 + 803df0a: 4603 mov r3, r0 + 803df0c: 877b strh r3, [r7, #58] ; 0x3a zoom = (zoom * img->zoom) >> 8; - 803dfa2: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 803dfa6: 6c7a ldr r2, [r7, #68] ; 0x44 - 803dfa8: 8ed2 ldrh r2, [r2, #54] ; 0x36 - 803dfaa: fb02 f303 mul.w r3, r2, r3 - 803dfae: 121b asrs r3, r3, #8 - 803dfb0: 877b strh r3, [r7, #58] ; 0x3a + 803df0e: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 803df12: 6c7a ldr r2, [r7, #68] ; 0x44 + 803df14: 8ed2 ldrh r2, [r2, #54] ; 0x36 + 803df16: fb02 f303 mul.w r3, r2, r3 + 803df1a: 121b asrs r3, r3, #8 + 803df1c: 877b strh r3, [r7, #58] ; 0x3a lv_coord_t angle = lv_obj_get_style_transform_angle(obj, LV_PART_MAIN); - 803dfb2: 2100 movs r1, #0 - 803dfb4: 6cb8 ldr r0, [r7, #72] ; 0x48 - 803dfb6: f7ff fc61 bl 803d87c - 803dfba: 4603 mov r3, r0 - 803dfbc: 873b strh r3, [r7, #56] ; 0x38 + 803df1e: 2100 movs r1, #0 + 803df20: 6cb8 ldr r0, [r7, #72] ; 0x48 + 803df22: f7ff fc61 bl 803d7e8 + 803df26: 4603 mov r3, r0 + 803df28: 873b strh r3, [r7, #56] ; 0x38 angle += img->angle; - 803dfbe: 6c7b ldr r3, [r7, #68] ; 0x44 - 803dfc0: 8e1a ldrh r2, [r3, #48] ; 0x30 - 803dfc2: 8f3b ldrh r3, [r7, #56] ; 0x38 - 803dfc4: 4413 add r3, r2 - 803dfc6: b29b uxth r3, r3 - 803dfc8: 873b strh r3, [r7, #56] ; 0x38 + 803df2a: 6c7b ldr r3, [r7, #68] ; 0x44 + 803df2c: 8e1a ldrh r2, [r3, #48] ; 0x30 + 803df2e: 8f3b ldrh r3, [r7, #56] ; 0x38 + 803df30: 4413 add r3, r2 + 803df32: b29b uxth r3, r3 + 803df34: 873b strh r3, [r7, #56] ; 0x38 /*If the object is exactly image sized (not cropped, not mosaic) and transformed *perform hit test on its transformed area*/ if(img->w == lv_obj_get_width(obj) && img->h == lv_obj_get_height(obj) && - 803dfca: 6c7b ldr r3, [r7, #68] ; 0x44 - 803dfcc: f9b3 402c ldrsh.w r4, [r3, #44] ; 0x2c - 803dfd0: 6cb8 ldr r0, [r7, #72] ; 0x48 - 803dfd2: f7cc f8b9 bl 800a148 - 803dfd6: 4603 mov r3, r0 - 803dfd8: 429c cmp r4, r3 - 803dfda: d17f bne.n 803e0dc - 803dfdc: 6c7b ldr r3, [r7, #68] ; 0x44 - 803dfde: f9b3 402e ldrsh.w r4, [r3, #46] ; 0x2e - 803dfe2: 6cb8 ldr r0, [r7, #72] ; 0x48 - 803dfe4: f7cc f8be bl 800a164 - 803dfe8: 4603 mov r3, r0 - 803dfea: 429c cmp r4, r3 - 803dfec: d176 bne.n 803e0dc - 803dfee: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 803dff2: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 803dff6: d11b bne.n 803e030 + 803df36: 6c7b ldr r3, [r7, #68] ; 0x44 + 803df38: f9b3 402c ldrsh.w r4, [r3, #44] ; 0x2c + 803df3c: 6cb8 ldr r0, [r7, #72] ; 0x48 + 803df3e: f7cc f8cd bl 800a0dc + 803df42: 4603 mov r3, r0 + 803df44: 429c cmp r4, r3 + 803df46: d17f bne.n 803e048 + 803df48: 6c7b ldr r3, [r7, #68] ; 0x44 + 803df4a: f9b3 402e ldrsh.w r4, [r3, #46] ; 0x2e + 803df4e: 6cb8 ldr r0, [r7, #72] ; 0x48 + 803df50: f7cc f8d2 bl 800a0f8 + 803df54: 4603 mov r3, r0 + 803df56: 429c cmp r4, r3 + 803df58: d176 bne.n 803e048 + 803df5a: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 803df5e: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 803df62: d11b bne.n 803df9c (zoom != LV_IMG_ZOOM_NONE || angle != 0 || img->pivot.x != img->w / 2 || img->pivot.y != img->h / 2)) { - 803dff8: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 803dffc: 2b00 cmp r3, #0 - 803dffe: d117 bne.n 803e030 - 803e000: 6c7b ldr r3, [r7, #68] ; 0x44 - 803e002: f9b3 2032 ldrsh.w r2, [r3, #50] ; 0x32 - 803e006: 6c7b ldr r3, [r7, #68] ; 0x44 - 803e008: f9b3 302c ldrsh.w r3, [r3, #44] ; 0x2c - 803e00c: 0fd9 lsrs r1, r3, #31 - 803e00e: 440b add r3, r1 - 803e010: 105b asrs r3, r3, #1 - 803e012: b21b sxth r3, r3 - 803e014: 429a cmp r2, r3 - 803e016: d10b bne.n 803e030 - 803e018: 6c7b ldr r3, [r7, #68] ; 0x44 - 803e01a: f9b3 2034 ldrsh.w r2, [r3, #52] ; 0x34 - 803e01e: 6c7b ldr r3, [r7, #68] ; 0x44 - 803e020: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 803e024: 0fd9 lsrs r1, r3, #31 - 803e026: 440b add r3, r1 - 803e028: 105b asrs r3, r3, #1 - 803e02a: b21b sxth r3, r3 - 803e02c: 429a cmp r2, r3 - 803e02e: d055 beq.n 803e0dc + 803df64: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 803df68: 2b00 cmp r3, #0 + 803df6a: d117 bne.n 803df9c + 803df6c: 6c7b ldr r3, [r7, #68] ; 0x44 + 803df6e: f9b3 2032 ldrsh.w r2, [r3, #50] ; 0x32 + 803df72: 6c7b ldr r3, [r7, #68] ; 0x44 + 803df74: f9b3 302c ldrsh.w r3, [r3, #44] ; 0x2c + 803df78: 0fd9 lsrs r1, r3, #31 + 803df7a: 440b add r3, r1 + 803df7c: 105b asrs r3, r3, #1 + 803df7e: b21b sxth r3, r3 + 803df80: 429a cmp r2, r3 + 803df82: d10b bne.n 803df9c + 803df84: 6c7b ldr r3, [r7, #68] ; 0x44 + 803df86: f9b3 2034 ldrsh.w r2, [r3, #52] ; 0x34 + 803df8a: 6c7b ldr r3, [r7, #68] ; 0x44 + 803df8c: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 803df90: 0fd9 lsrs r1, r3, #31 + 803df92: 440b add r3, r1 + 803df94: 105b asrs r3, r3, #1 + 803df96: b21b sxth r3, r3 + 803df98: 429a cmp r2, r3 + 803df9a: d055 beq.n 803e048 lv_coord_t w = lv_obj_get_width(obj); - 803e030: 6cb8 ldr r0, [r7, #72] ; 0x48 - 803e032: f7cc f889 bl 800a148 - 803e036: 4603 mov r3, r0 - 803e038: 86fb strh r3, [r7, #54] ; 0x36 + 803df9c: 6cb8 ldr r0, [r7, #72] ; 0x48 + 803df9e: f7cc f89d bl 800a0dc + 803dfa2: 4603 mov r3, r0 + 803dfa4: 86fb strh r3, [r7, #54] ; 0x36 lv_coord_t h = lv_obj_get_height(obj); - 803e03a: 6cb8 ldr r0, [r7, #72] ; 0x48 - 803e03c: f7cc f892 bl 800a164 - 803e040: 4603 mov r3, r0 - 803e042: 86bb strh r3, [r7, #52] ; 0x34 + 803dfa6: 6cb8 ldr r0, [r7, #72] ; 0x48 + 803dfa8: f7cc f8a6 bl 800a0f8 + 803dfac: 4603 mov r3, r0 + 803dfae: 86bb strh r3, [r7, #52] ; 0x34 lv_area_t coords; _lv_img_buf_get_transformed_area(&coords, w, h, angle, zoom, &img->pivot); - 803e044: 8f7b ldrh r3, [r7, #58] ; 0x3a - 803e046: 6c7a ldr r2, [r7, #68] ; 0x44 - 803e048: 3232 adds r2, #50 ; 0x32 - 803e04a: f9b7 5038 ldrsh.w r5, [r7, #56] ; 0x38 - 803e04e: f9b7 4034 ldrsh.w r4, [r7, #52] ; 0x34 - 803e052: f9b7 1036 ldrsh.w r1, [r7, #54] ; 0x36 - 803e056: f107 0014 add.w r0, r7, #20 - 803e05a: 9201 str r2, [sp, #4] - 803e05c: 9300 str r3, [sp, #0] - 803e05e: 462b mov r3, r5 - 803e060: 4622 mov r2, r4 - 803e062: f7d8 f829 bl 80160b8 <_lv_img_buf_get_transformed_area> + 803dfb0: 8f7b ldrh r3, [r7, #58] ; 0x3a + 803dfb2: 6c7a ldr r2, [r7, #68] ; 0x44 + 803dfb4: 3232 adds r2, #50 ; 0x32 + 803dfb6: f9b7 5038 ldrsh.w r5, [r7, #56] ; 0x38 + 803dfba: f9b7 4034 ldrsh.w r4, [r7, #52] ; 0x34 + 803dfbe: f9b7 1036 ldrsh.w r1, [r7, #54] ; 0x36 + 803dfc2: f107 0014 add.w r0, r7, #20 + 803dfc6: 9201 str r2, [sp, #4] + 803dfc8: 9300 str r3, [sp, #0] + 803dfca: 462b mov r3, r5 + 803dfcc: 4622 mov r2, r4 + 803dfce: f7d8 f829 bl 8016024 <_lv_img_buf_get_transformed_area> coords.x1 += obj->coords.x1; - 803e066: f9b7 3014 ldrsh.w r3, [r7, #20] - 803e06a: b29a uxth r2, r3 - 803e06c: 6cbb ldr r3, [r7, #72] ; 0x48 - 803e06e: f9b3 3014 ldrsh.w r3, [r3, #20] - 803e072: b29b uxth r3, r3 - 803e074: 4413 add r3, r2 - 803e076: b29b uxth r3, r3 - 803e078: b21b sxth r3, r3 - 803e07a: 82bb strh r3, [r7, #20] + 803dfd2: f9b7 3014 ldrsh.w r3, [r7, #20] + 803dfd6: b29a uxth r2, r3 + 803dfd8: 6cbb ldr r3, [r7, #72] ; 0x48 + 803dfda: f9b3 3014 ldrsh.w r3, [r3, #20] + 803dfde: b29b uxth r3, r3 + 803dfe0: 4413 add r3, r2 + 803dfe2: b29b uxth r3, r3 + 803dfe4: b21b sxth r3, r3 + 803dfe6: 82bb strh r3, [r7, #20] coords.y1 += obj->coords.y1; - 803e07c: f9b7 3016 ldrsh.w r3, [r7, #22] - 803e080: b29a uxth r2, r3 - 803e082: 6cbb ldr r3, [r7, #72] ; 0x48 - 803e084: f9b3 3016 ldrsh.w r3, [r3, #22] - 803e088: b29b uxth r3, r3 - 803e08a: 4413 add r3, r2 - 803e08c: b29b uxth r3, r3 - 803e08e: b21b sxth r3, r3 - 803e090: 82fb strh r3, [r7, #22] + 803dfe8: f9b7 3016 ldrsh.w r3, [r7, #22] + 803dfec: b29a uxth r2, r3 + 803dfee: 6cbb ldr r3, [r7, #72] ; 0x48 + 803dff0: f9b3 3016 ldrsh.w r3, [r3, #22] + 803dff4: b29b uxth r3, r3 + 803dff6: 4413 add r3, r2 + 803dff8: b29b uxth r3, r3 + 803dffa: b21b sxth r3, r3 + 803dffc: 82fb strh r3, [r7, #22] coords.x2 += obj->coords.x1; - 803e092: f9b7 3018 ldrsh.w r3, [r7, #24] - 803e096: b29a uxth r2, r3 - 803e098: 6cbb ldr r3, [r7, #72] ; 0x48 - 803e09a: f9b3 3014 ldrsh.w r3, [r3, #20] - 803e09e: b29b uxth r3, r3 - 803e0a0: 4413 add r3, r2 - 803e0a2: b29b uxth r3, r3 - 803e0a4: b21b sxth r3, r3 - 803e0a6: 833b strh r3, [r7, #24] + 803dffe: f9b7 3018 ldrsh.w r3, [r7, #24] + 803e002: b29a uxth r2, r3 + 803e004: 6cbb ldr r3, [r7, #72] ; 0x48 + 803e006: f9b3 3014 ldrsh.w r3, [r3, #20] + 803e00a: b29b uxth r3, r3 + 803e00c: 4413 add r3, r2 + 803e00e: b29b uxth r3, r3 + 803e010: b21b sxth r3, r3 + 803e012: 833b strh r3, [r7, #24] coords.y2 += obj->coords.y1; - 803e0a8: f9b7 301a ldrsh.w r3, [r7, #26] - 803e0ac: b29a uxth r2, r3 - 803e0ae: 6cbb ldr r3, [r7, #72] ; 0x48 - 803e0b0: f9b3 3016 ldrsh.w r3, [r3, #22] - 803e0b4: b29b uxth r3, r3 - 803e0b6: 4413 add r3, r2 - 803e0b8: b29b uxth r3, r3 - 803e0ba: b21b sxth r3, r3 - 803e0bc: 837b strh r3, [r7, #26] + 803e014: f9b7 301a ldrsh.w r3, [r7, #26] + 803e018: b29a uxth r2, r3 + 803e01a: 6cbb ldr r3, [r7, #72] ; 0x48 + 803e01c: f9b3 3016 ldrsh.w r3, [r3, #22] + 803e020: b29b uxth r3, r3 + 803e022: 4413 add r3, r2 + 803e024: b29b uxth r3, r3 + 803e026: b21b sxth r3, r3 + 803e028: 837b strh r3, [r7, #26] info->res = _lv_area_is_point_on(&coords, info->point, 0); - 803e0be: 6bfb ldr r3, [r7, #60] ; 0x3c - 803e0c0: 6819 ldr r1, [r3, #0] - 803e0c2: f107 0314 add.w r3, r7, #20 - 803e0c6: 2200 movs r2, #0 - 803e0c8: 4618 mov r0, r3 - 803e0ca: f7f3 f878 bl 80311be <_lv_area_is_point_on> - 803e0ce: 4603 mov r3, r0 - 803e0d0: 461a mov r2, r3 - 803e0d2: 6bfb ldr r3, [r7, #60] ; 0x3c - 803e0d4: 711a strb r2, [r3, #4] + 803e02a: 6bfb ldr r3, [r7, #60] ; 0x3c + 803e02c: 6819 ldr r1, [r3, #0] + 803e02e: f107 0314 add.w r3, r7, #20 + 803e032: 2200 movs r2, #0 + 803e034: 4618 mov r0, r3 + 803e036: f7f3 f878 bl 803112a <_lv_area_is_point_on> + 803e03a: 4603 mov r3, r0 + 803e03c: 461a mov r2, r3 + 803e03e: 6bfb ldr r3, [r7, #60] ; 0x3c + 803e040: 711a strb r2, [r3, #4] (zoom != LV_IMG_ZOOM_NONE || angle != 0 || img->pivot.x != img->w / 2 || img->pivot.y != img->h / 2)) { - 803e0d6: e04b b.n 803e170 - 803e0d8: 08070a70 .word 0x08070a70 + 803e042: e04b b.n 803e0dc + 803e044: 080709c8 .word 0x080709c8 } else { lv_area_t a; lv_obj_get_click_area(obj, &a); - 803e0dc: f107 030c add.w r3, r7, #12 - 803e0e0: 4619 mov r1, r3 - 803e0e2: 6cb8 ldr r0, [r7, #72] ; 0x48 - 803e0e4: f7cc fe32 bl 800ad4c + 803e048: f107 030c add.w r3, r7, #12 + 803e04c: 4619 mov r1, r3 + 803e04e: 6cb8 ldr r0, [r7, #72] ; 0x48 + 803e050: f7cc fe46 bl 800ace0 info->res = _lv_area_is_point_on(&a, info->point, 0); - 803e0e8: 6bfb ldr r3, [r7, #60] ; 0x3c - 803e0ea: 6819 ldr r1, [r3, #0] - 803e0ec: f107 030c add.w r3, r7, #12 - 803e0f0: 2200 movs r2, #0 - 803e0f2: 4618 mov r0, r3 - 803e0f4: f7f3 f863 bl 80311be <_lv_area_is_point_on> - 803e0f8: 4603 mov r3, r0 - 803e0fa: 461a mov r2, r3 - 803e0fc: 6bfb ldr r3, [r7, #60] ; 0x3c - 803e0fe: 711a strb r2, [r3, #4] - 803e100: e036 b.n 803e170 + 803e054: 6bfb ldr r3, [r7, #60] ; 0x3c + 803e056: 6819 ldr r1, [r3, #0] + 803e058: f107 030c add.w r3, r7, #12 + 803e05c: 2200 movs r2, #0 + 803e05e: 4618 mov r0, r3 + 803e060: f7f3 f863 bl 803112a <_lv_area_is_point_on> + 803e064: 4603 mov r3, r0 + 803e066: 461a mov r2, r3 + 803e068: 6bfb ldr r3, [r7, #60] ; 0x3c + 803e06a: 711a strb r2, [r3, #4] + 803e06c: e036 b.n 803e0dc } } else if(code == LV_EVENT_GET_SELF_SIZE) { - 803e102: f897 304f ldrb.w r3, [r7, #79] ; 0x4f - 803e106: 2b2c cmp r3, #44 ; 0x2c - 803e108: d121 bne.n 803e14e + 803e06e: f897 304f ldrb.w r3, [r7, #79] ; 0x4f + 803e072: 2b2c cmp r3, #44 ; 0x2c + 803e074: d121 bne.n 803e0ba lv_point_t * p = lv_event_get_param(e); - 803e10a: 6838 ldr r0, [r7, #0] - 803e10c: f7c4 fa5c bl 80025c8 - 803e110: 6438 str r0, [r7, #64] ; 0x40 + 803e076: 6838 ldr r0, [r7, #0] + 803e078: f7c4 fa70 bl 800255c + 803e07c: 6438 str r0, [r7, #64] ; 0x40 if(img->obj_size_mode == LV_IMG_SIZE_MODE_REAL) { - 803e112: 6c7b ldr r3, [r7, #68] ; 0x44 - 803e114: f893 3039 ldrb.w r3, [r3, #57] ; 0x39 - 803e118: f003 0303 and.w r3, r3, #3 - 803e11c: b2db uxtb r3, r3 - 803e11e: 2b01 cmp r3, #1 - 803e120: d10a bne.n 803e138 + 803e07e: 6c7b ldr r3, [r7, #68] ; 0x44 + 803e080: f893 3039 ldrb.w r3, [r3, #57] ; 0x39 + 803e084: f003 0303 and.w r3, r3, #3 + 803e088: b2db uxtb r3, r3 + 803e08a: 2b01 cmp r3, #1 + 803e08c: d10a bne.n 803e0a4 *p = lv_img_get_transformed_size(obj); - 803e122: 6cb8 ldr r0, [r7, #72] ; 0x48 - 803e124: f7ff fe17 bl 803dd56 - 803e128: 4602 mov r2, r0 - 803e12a: 6c3b ldr r3, [r7, #64] ; 0x40 - 803e12c: 4611 mov r1, r2 - 803e12e: 8019 strh r1, [r3, #0] - 803e130: f3c2 420f ubfx r2, r2, #16, #16 - 803e134: 805a strh r2, [r3, #2] - 803e136: e01b b.n 803e170 + 803e08e: 6cb8 ldr r0, [r7, #72] ; 0x48 + 803e090: f7ff fe17 bl 803dcc2 + 803e094: 4602 mov r2, r0 + 803e096: 6c3b ldr r3, [r7, #64] ; 0x40 + 803e098: 4611 mov r1, r2 + 803e09a: 8019 strh r1, [r3, #0] + 803e09c: f3c2 420f ubfx r2, r2, #16, #16 + 803e0a0: 805a strh r2, [r3, #2] + 803e0a2: e01b b.n 803e0dc } else { p->x = img->w; - 803e138: 6c7b ldr r3, [r7, #68] ; 0x44 - 803e13a: f9b3 202c ldrsh.w r2, [r3, #44] ; 0x2c - 803e13e: 6c3b ldr r3, [r7, #64] ; 0x40 - 803e140: 801a strh r2, [r3, #0] + 803e0a4: 6c7b ldr r3, [r7, #68] ; 0x44 + 803e0a6: f9b3 202c ldrsh.w r2, [r3, #44] ; 0x2c + 803e0aa: 6c3b ldr r3, [r7, #64] ; 0x40 + 803e0ac: 801a strh r2, [r3, #0] p->y = img->h; - 803e142: 6c7b ldr r3, [r7, #68] ; 0x44 - 803e144: f9b3 202e ldrsh.w r2, [r3, #46] ; 0x2e - 803e148: 6c3b ldr r3, [r7, #64] ; 0x40 - 803e14a: 805a strh r2, [r3, #2] - 803e14c: e010 b.n 803e170 + 803e0ae: 6c7b ldr r3, [r7, #68] ; 0x44 + 803e0b0: f9b3 202e ldrsh.w r2, [r3, #46] ; 0x2e + 803e0b4: 6c3b ldr r3, [r7, #64] ; 0x40 + 803e0b6: 805a strh r2, [r3, #2] + 803e0b8: e010 b.n 803e0dc } } else if(code == LV_EVENT_DRAW_MAIN || code == LV_EVENT_DRAW_POST || code == LV_EVENT_COVER_CHECK) { - 803e14e: f897 304f ldrb.w r3, [r7, #79] ; 0x4f - 803e152: 2b15 cmp r3, #21 - 803e154: d007 beq.n 803e166 - 803e156: f897 304f ldrb.w r3, [r7, #79] ; 0x4f - 803e15a: 2b18 cmp r3, #24 - 803e15c: d003 beq.n 803e166 - 803e15e: f897 304f ldrb.w r3, [r7, #79] ; 0x4f - 803e162: 2b12 cmp r3, #18 - 803e164: d104 bne.n 803e170 + 803e0ba: f897 304f ldrb.w r3, [r7, #79] ; 0x4f + 803e0be: 2b15 cmp r3, #21 + 803e0c0: d007 beq.n 803e0d2 + 803e0c2: f897 304f ldrb.w r3, [r7, #79] ; 0x4f + 803e0c6: 2b18 cmp r3, #24 + 803e0c8: d003 beq.n 803e0d2 + 803e0ca: f897 304f ldrb.w r3, [r7, #79] ; 0x4f + 803e0ce: 2b12 cmp r3, #18 + 803e0d0: d104 bne.n 803e0dc draw_img(e); - 803e166: 6838 ldr r0, [r7, #0] - 803e168: f000 f806 bl 803e178 - 803e16c: e000 b.n 803e170 + 803e0d2: 6838 ldr r0, [r7, #0] + 803e0d4: f000 f806 bl 803e0e4 + 803e0d8: e000 b.n 803e0dc if(res != LV_RES_OK) return; - 803e16e: bf00 nop + 803e0da: bf00 nop } } - 803e170: 3750 adds r7, #80 ; 0x50 - 803e172: 46bd mov sp, r7 - 803e174: bdb0 pop {r4, r5, r7, pc} - 803e176: bf00 nop + 803e0dc: 3750 adds r7, #80 ; 0x50 + 803e0de: 46bd mov sp, r7 + 803e0e0: bdb0 pop {r4, r5, r7, pc} + 803e0e2: bf00 nop -0803e178 : +0803e0e4 : static void draw_img(lv_event_t * e) { - 803e178: b5b0 push {r4, r5, r7, lr} - 803e17a: b0b0 sub sp, #192 ; 0xc0 - 803e17c: af02 add r7, sp, #8 - 803e17e: 6078 str r0, [r7, #4] + 803e0e4: b5b0 push {r4, r5, r7, lr} + 803e0e6: b0b0 sub sp, #192 ; 0xc0 + 803e0e8: af02 add r7, sp, #8 + 803e0ea: 6078 str r0, [r7, #4] lv_event_code_t code = lv_event_get_code(e); - 803e180: 6878 ldr r0, [r7, #4] - 803e182: f7c4 fa13 bl 80025ac - 803e186: 4603 mov r3, r0 - 803e188: f887 30b7 strb.w r3, [r7, #183] ; 0xb7 + 803e0ec: 6878 ldr r0, [r7, #4] + 803e0ee: f7c4 fa27 bl 8002540 + 803e0f2: 4603 mov r3, r0 + 803e0f4: f887 30b7 strb.w r3, [r7, #183] ; 0xb7 lv_obj_t * obj = lv_event_get_target(e); - 803e18c: 6878 ldr r0, [r7, #4] - 803e18e: f7c4 f9f7 bl 8002580 - 803e192: f8c7 00b0 str.w r0, [r7, #176] ; 0xb0 + 803e0f8: 6878 ldr r0, [r7, #4] + 803e0fa: f7c4 fa0b bl 8002514 + 803e0fe: f8c7 00b0 str.w r0, [r7, #176] ; 0xb0 lv_img_t * img = (lv_img_t *)obj; - 803e196: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803e19a: f8c7 30ac str.w r3, [r7, #172] ; 0xac + 803e102: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803e106: f8c7 30ac str.w r3, [r7, #172] ; 0xac if(code == LV_EVENT_COVER_CHECK) { - 803e19e: f897 30b7 ldrb.w r3, [r7, #183] ; 0xb7 - 803e1a2: 2b12 cmp r3, #18 - 803e1a4: f040 80f3 bne.w 803e38e + 803e10a: f897 30b7 ldrb.w r3, [r7, #183] ; 0xb7 + 803e10e: 2b12 cmp r3, #18 + 803e110: f040 80f3 bne.w 803e2fa lv_cover_check_info_t * info = lv_event_get_param(e); - 803e1a8: 6878 ldr r0, [r7, #4] - 803e1aa: f7c4 fa0d bl 80025c8 - 803e1ae: f8c7 0088 str.w r0, [r7, #136] ; 0x88 + 803e114: 6878 ldr r0, [r7, #4] + 803e116: f7c4 fa21 bl 800255c + 803e11a: f8c7 0088 str.w r0, [r7, #136] ; 0x88 if(info->res == LV_COVER_RES_MASKED) return; - 803e1b2: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 803e1b6: 781b ldrb r3, [r3, #0] - 803e1b8: 2b02 cmp r3, #2 - 803e1ba: f000 8424 beq.w 803ea06 + 803e11e: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 803e122: 781b ldrb r3, [r3, #0] + 803e124: 2b02 cmp r3, #2 + 803e126: f000 8424 beq.w 803e972 if(img->src_type == LV_IMG_SRC_UNKNOWN || img->src_type == LV_IMG_SRC_SYMBOL) { - 803e1be: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e1c2: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 - 803e1c6: f003 0303 and.w r3, r3, #3 - 803e1ca: b2db uxtb r3, r3 - 803e1cc: 2b03 cmp r3, #3 - 803e1ce: d008 beq.n 803e1e2 - 803e1d0: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e1d4: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 - 803e1d8: f003 0303 and.w r3, r3, #3 - 803e1dc: b2db uxtb r3, r3 - 803e1de: 2b02 cmp r3, #2 - 803e1e0: d105 bne.n 803e1ee + 803e12a: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e12e: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 + 803e132: f003 0303 and.w r3, r3, #3 + 803e136: b2db uxtb r3, r3 + 803e138: 2b03 cmp r3, #3 + 803e13a: d008 beq.n 803e14e + 803e13c: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e140: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 + 803e144: f003 0303 and.w r3, r3, #3 + 803e148: b2db uxtb r3, r3 + 803e14a: 2b02 cmp r3, #2 + 803e14c: d105 bne.n 803e15a info->res = LV_COVER_RES_NOT_COVER; - 803e1e2: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 803e1e6: 2201 movs r2, #1 - 803e1e8: 701a strb r2, [r3, #0] + 803e14e: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 803e152: 2201 movs r2, #1 + 803e154: 701a strb r2, [r3, #0] return; - 803e1ea: f000 bc13 b.w 803ea14 + 803e156: f000 bc13 b.w 803e980 } /*Non true color format might have "holes"*/ if(img->cf != LV_IMG_CF_TRUE_COLOR && img->cf != LV_IMG_CF_RAW) { - 803e1ee: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e1f2: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 - 803e1f6: f003 037c and.w r3, r3, #124 ; 0x7c - 803e1fa: b2db uxtb r3, r3 - 803e1fc: 2b10 cmp r3, #16 - 803e1fe: d00d beq.n 803e21c - 803e200: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e204: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 - 803e208: f003 037c and.w r3, r3, #124 ; 0x7c - 803e20c: b2db uxtb r3, r3 - 803e20e: 2b04 cmp r3, #4 - 803e210: d004 beq.n 803e21c + 803e15a: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e15e: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 + 803e162: f003 037c and.w r3, r3, #124 ; 0x7c + 803e166: b2db uxtb r3, r3 + 803e168: 2b10 cmp r3, #16 + 803e16a: d00d beq.n 803e188 + 803e16c: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e170: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 + 803e174: f003 037c and.w r3, r3, #124 ; 0x7c + 803e178: b2db uxtb r3, r3 + 803e17a: 2b04 cmp r3, #4 + 803e17c: d004 beq.n 803e188 info->res = LV_COVER_RES_NOT_COVER; - 803e212: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 803e216: 2201 movs r2, #1 - 803e218: 701a strb r2, [r3, #0] + 803e17e: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 803e182: 2201 movs r2, #1 + 803e184: 701a strb r2, [r3, #0] return; - 803e21a: e3fb b.n 803ea14 + 803e186: e3fb b.n 803e980 } /*With not LV_OPA_COVER images can't cover an area */ if(lv_obj_get_style_img_opa(obj, LV_PART_MAIN) != LV_OPA_COVER) { - 803e21c: 2100 movs r1, #0 - 803e21e: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e222: f7ff fb9d bl 803d960 - 803e226: 4603 mov r3, r0 - 803e228: 2bff cmp r3, #255 ; 0xff - 803e22a: d004 beq.n 803e236 + 803e188: 2100 movs r1, #0 + 803e18a: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e18e: f7ff fb9d bl 803d8cc + 803e192: 4603 mov r3, r0 + 803e194: 2bff cmp r3, #255 ; 0xff + 803e196: d004 beq.n 803e1a2 info->res = LV_COVER_RES_NOT_COVER; - 803e22c: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 803e230: 2201 movs r2, #1 - 803e232: 701a strb r2, [r3, #0] + 803e198: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 803e19c: 2201 movs r2, #1 + 803e19e: 701a strb r2, [r3, #0] return; - 803e234: e3ee b.n 803ea14 + 803e1a0: e3ee b.n 803e980 } int32_t angle_final = lv_obj_get_style_transform_angle(obj, LV_PART_MAIN); - 803e236: 2100 movs r1, #0 - 803e238: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e23c: f7ff fb1e bl 803d87c - 803e240: 4603 mov r3, r0 - 803e242: f8c7 3084 str.w r3, [r7, #132] ; 0x84 + 803e1a2: 2100 movs r1, #0 + 803e1a4: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e1a8: f7ff fb1e bl 803d7e8 + 803e1ac: 4603 mov r3, r0 + 803e1ae: f8c7 3084 str.w r3, [r7, #132] ; 0x84 angle_final += img->angle; - 803e246: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e24a: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803e24c: 461a mov r2, r3 - 803e24e: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 803e252: 4413 add r3, r2 - 803e254: f8c7 3084 str.w r3, [r7, #132] ; 0x84 + 803e1b2: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e1b6: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803e1b8: 461a mov r2, r3 + 803e1ba: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 803e1be: 4413 add r3, r2 + 803e1c0: f8c7 3084 str.w r3, [r7, #132] ; 0x84 if(angle_final != 0) { - 803e258: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 803e25c: 2b00 cmp r3, #0 - 803e25e: d004 beq.n 803e26a + 803e1c4: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 803e1c8: 2b00 cmp r3, #0 + 803e1ca: d004 beq.n 803e1d6 info->res = LV_COVER_RES_NOT_COVER; - 803e260: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 803e264: 2201 movs r2, #1 - 803e266: 701a strb r2, [r3, #0] + 803e1cc: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 803e1d0: 2201 movs r2, #1 + 803e1d2: 701a strb r2, [r3, #0] return; - 803e268: e3d4 b.n 803ea14 + 803e1d4: e3d4 b.n 803e980 } int32_t zoom_final = lv_obj_get_style_transform_zoom(obj, LV_PART_MAIN); - 803e26a: 2100 movs r1, #0 - 803e26c: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e270: f7ff faf1 bl 803d856 - 803e274: 4603 mov r3, r0 - 803e276: f8c7 3080 str.w r3, [r7, #128] ; 0x80 + 803e1d6: 2100 movs r1, #0 + 803e1d8: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e1dc: f7ff faf1 bl 803d7c2 + 803e1e0: 4603 mov r3, r0 + 803e1e2: f8c7 3080 str.w r3, [r7, #128] ; 0x80 zoom_final = (zoom_final * img->zoom) >> 8; - 803e27a: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e27e: 8edb ldrh r3, [r3, #54] ; 0x36 - 803e280: 461a mov r2, r3 - 803e282: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 - 803e286: fb02 f303 mul.w r3, r2, r3 - 803e28a: 121b asrs r3, r3, #8 - 803e28c: f8c7 3080 str.w r3, [r7, #128] ; 0x80 + 803e1e6: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e1ea: 8edb ldrh r3, [r3, #54] ; 0x36 + 803e1ec: 461a mov r2, r3 + 803e1ee: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 + 803e1f2: fb02 f303 mul.w r3, r2, r3 + 803e1f6: 121b asrs r3, r3, #8 + 803e1f8: f8c7 3080 str.w r3, [r7, #128] ; 0x80 const lv_area_t * clip_area = lv_event_get_param(e); - 803e290: 6878 ldr r0, [r7, #4] - 803e292: f7c4 f999 bl 80025c8 - 803e296: 67f8 str r0, [r7, #124] ; 0x7c + 803e1fc: 6878 ldr r0, [r7, #4] + 803e1fe: f7c4 f9ad bl 800255c + 803e202: 67f8 str r0, [r7, #124] ; 0x7c if(zoom_final == LV_IMG_ZOOM_NONE) { - 803e298: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 - 803e29c: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 803e2a0: d113 bne.n 803e2ca + 803e204: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 + 803e208: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 803e20c: d113 bne.n 803e236 if(_lv_area_is_in(clip_area, &obj->coords, 0) == false) { - 803e2a2: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803e2a6: 3314 adds r3, #20 - 803e2a8: 2200 movs r2, #0 - 803e2aa: 4619 mov r1, r3 - 803e2ac: 6ff8 ldr r0, [r7, #124] ; 0x7c - 803e2ae: f7f3 f8da bl 8031466 <_lv_area_is_in> - 803e2b2: 4603 mov r3, r0 - 803e2b4: f083 0301 eor.w r3, r3, #1 - 803e2b8: b2db uxtb r3, r3 - 803e2ba: 2b00 cmp r3, #0 - 803e2bc: f000 83aa beq.w 803ea14 + 803e20e: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803e212: 3314 adds r3, #20 + 803e214: 2200 movs r2, #0 + 803e216: 4619 mov r1, r3 + 803e218: 6ff8 ldr r0, [r7, #124] ; 0x7c + 803e21a: f7f3 f8da bl 80313d2 <_lv_area_is_in> + 803e21e: 4603 mov r3, r0 + 803e220: f083 0301 eor.w r3, r3, #1 + 803e224: b2db uxtb r3, r3 + 803e226: 2b00 cmp r3, #0 + 803e228: f000 83aa beq.w 803e980 info->res = LV_COVER_RES_NOT_COVER; - 803e2c0: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 803e2c4: 2201 movs r2, #1 - 803e2c6: 701a strb r2, [r3, #0] + 803e22c: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 803e230: 2201 movs r2, #1 + 803e232: 701a strb r2, [r3, #0] return; - 803e2c8: e3a4 b.n 803ea14 + 803e234: e3a4 b.n 803e980 } } else { lv_area_t a; _lv_img_buf_get_transformed_area(&a, lv_obj_get_width(obj), lv_obj_get_height(obj), 0, zoom_final, &img->pivot); - 803e2ca: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e2ce: f7cb ff3b bl 800a148 - 803e2d2: 4603 mov r3, r0 - 803e2d4: 461c mov r4, r3 - 803e2d6: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e2da: f7cb ff43 bl 800a164 - 803e2de: 4603 mov r3, r0 - 803e2e0: 4619 mov r1, r3 - 803e2e2: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 - 803e2e6: b29b uxth r3, r3 - 803e2e8: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac - 803e2ec: 3232 adds r2, #50 ; 0x32 - 803e2ee: f107 0074 add.w r0, r7, #116 ; 0x74 - 803e2f2: 9201 str r2, [sp, #4] - 803e2f4: 9300 str r3, [sp, #0] - 803e2f6: 2300 movs r3, #0 - 803e2f8: 460a mov r2, r1 - 803e2fa: 4621 mov r1, r4 - 803e2fc: f7d7 fedc bl 80160b8 <_lv_img_buf_get_transformed_area> + 803e236: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e23a: f7cb ff4f bl 800a0dc + 803e23e: 4603 mov r3, r0 + 803e240: 461c mov r4, r3 + 803e242: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e246: f7cb ff57 bl 800a0f8 + 803e24a: 4603 mov r3, r0 + 803e24c: 4619 mov r1, r3 + 803e24e: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 + 803e252: b29b uxth r3, r3 + 803e254: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac + 803e258: 3232 adds r2, #50 ; 0x32 + 803e25a: f107 0074 add.w r0, r7, #116 ; 0x74 + 803e25e: 9201 str r2, [sp, #4] + 803e260: 9300 str r3, [sp, #0] + 803e262: 2300 movs r3, #0 + 803e264: 460a mov r2, r1 + 803e266: 4621 mov r1, r4 + 803e268: f7d7 fedc bl 8016024 <_lv_img_buf_get_transformed_area> a.x1 += obj->coords.x1; - 803e300: f9b7 3074 ldrsh.w r3, [r7, #116] ; 0x74 - 803e304: b29a uxth r2, r3 - 803e306: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803e30a: f9b3 3014 ldrsh.w r3, [r3, #20] - 803e30e: b29b uxth r3, r3 - 803e310: 4413 add r3, r2 - 803e312: b29b uxth r3, r3 - 803e314: b21b sxth r3, r3 - 803e316: f8a7 3074 strh.w r3, [r7, #116] ; 0x74 + 803e26c: f9b7 3074 ldrsh.w r3, [r7, #116] ; 0x74 + 803e270: b29a uxth r2, r3 + 803e272: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803e276: f9b3 3014 ldrsh.w r3, [r3, #20] + 803e27a: b29b uxth r3, r3 + 803e27c: 4413 add r3, r2 + 803e27e: b29b uxth r3, r3 + 803e280: b21b sxth r3, r3 + 803e282: f8a7 3074 strh.w r3, [r7, #116] ; 0x74 a.y1 += obj->coords.y1; - 803e31a: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 - 803e31e: b29a uxth r2, r3 - 803e320: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803e324: f9b3 3016 ldrsh.w r3, [r3, #22] - 803e328: b29b uxth r3, r3 - 803e32a: 4413 add r3, r2 - 803e32c: b29b uxth r3, r3 - 803e32e: b21b sxth r3, r3 - 803e330: f8a7 3076 strh.w r3, [r7, #118] ; 0x76 + 803e286: f9b7 3076 ldrsh.w r3, [r7, #118] ; 0x76 + 803e28a: b29a uxth r2, r3 + 803e28c: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803e290: f9b3 3016 ldrsh.w r3, [r3, #22] + 803e294: b29b uxth r3, r3 + 803e296: 4413 add r3, r2 + 803e298: b29b uxth r3, r3 + 803e29a: b21b sxth r3, r3 + 803e29c: f8a7 3076 strh.w r3, [r7, #118] ; 0x76 a.x2 += obj->coords.x1; - 803e334: f9b7 3078 ldrsh.w r3, [r7, #120] ; 0x78 - 803e338: b29a uxth r2, r3 - 803e33a: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803e33e: f9b3 3014 ldrsh.w r3, [r3, #20] - 803e342: b29b uxth r3, r3 - 803e344: 4413 add r3, r2 - 803e346: b29b uxth r3, r3 - 803e348: b21b sxth r3, r3 - 803e34a: f8a7 3078 strh.w r3, [r7, #120] ; 0x78 + 803e2a0: f9b7 3078 ldrsh.w r3, [r7, #120] ; 0x78 + 803e2a4: b29a uxth r2, r3 + 803e2a6: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803e2aa: f9b3 3014 ldrsh.w r3, [r3, #20] + 803e2ae: b29b uxth r3, r3 + 803e2b0: 4413 add r3, r2 + 803e2b2: b29b uxth r3, r3 + 803e2b4: b21b sxth r3, r3 + 803e2b6: f8a7 3078 strh.w r3, [r7, #120] ; 0x78 a.y2 += obj->coords.y1; - 803e34e: f9b7 307a ldrsh.w r3, [r7, #122] ; 0x7a - 803e352: b29a uxth r2, r3 - 803e354: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803e358: f9b3 3016 ldrsh.w r3, [r3, #22] - 803e35c: b29b uxth r3, r3 - 803e35e: 4413 add r3, r2 - 803e360: b29b uxth r3, r3 - 803e362: b21b sxth r3, r3 - 803e364: f8a7 307a strh.w r3, [r7, #122] ; 0x7a + 803e2ba: f9b7 307a ldrsh.w r3, [r7, #122] ; 0x7a + 803e2be: b29a uxth r2, r3 + 803e2c0: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803e2c4: f9b3 3016 ldrsh.w r3, [r3, #22] + 803e2c8: b29b uxth r3, r3 + 803e2ca: 4413 add r3, r2 + 803e2cc: b29b uxth r3, r3 + 803e2ce: b21b sxth r3, r3 + 803e2d0: f8a7 307a strh.w r3, [r7, #122] ; 0x7a if(_lv_area_is_in(clip_area, &a, 0) == false) { - 803e368: f107 0374 add.w r3, r7, #116 ; 0x74 - 803e36c: 2200 movs r2, #0 - 803e36e: 4619 mov r1, r3 - 803e370: 6ff8 ldr r0, [r7, #124] ; 0x7c - 803e372: f7f3 f878 bl 8031466 <_lv_area_is_in> - 803e376: 4603 mov r3, r0 - 803e378: f083 0301 eor.w r3, r3, #1 - 803e37c: b2db uxtb r3, r3 - 803e37e: 2b00 cmp r3, #0 - 803e380: f000 8348 beq.w 803ea14 + 803e2d4: f107 0374 add.w r3, r7, #116 ; 0x74 + 803e2d8: 2200 movs r2, #0 + 803e2da: 4619 mov r1, r3 + 803e2dc: 6ff8 ldr r0, [r7, #124] ; 0x7c + 803e2de: f7f3 f878 bl 80313d2 <_lv_area_is_in> + 803e2e2: 4603 mov r3, r0 + 803e2e4: f083 0301 eor.w r3, r3, #1 + 803e2e8: b2db uxtb r3, r3 + 803e2ea: 2b00 cmp r3, #0 + 803e2ec: f000 8348 beq.w 803e980 info->res = LV_COVER_RES_NOT_COVER; - 803e384: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 803e388: 2201 movs r2, #1 - 803e38a: 701a strb r2, [r3, #0] - 803e38c: e342 b.n 803ea14 + 803e2f0: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 803e2f4: 2201 movs r2, #1 + 803e2f6: 701a strb r2, [r3, #0] + 803e2f8: e342 b.n 803e980 return; } } } else if(code == LV_EVENT_DRAW_MAIN || code == LV_EVENT_DRAW_POST) { - 803e38e: f897 30b7 ldrb.w r3, [r7, #183] ; 0xb7 - 803e392: 2b15 cmp r3, #21 - 803e394: d004 beq.n 803e3a0 - 803e396: f897 30b7 ldrb.w r3, [r7, #183] ; 0xb7 - 803e39a: 2b18 cmp r3, #24 - 803e39c: f040 833a bne.w 803ea14 + 803e2fa: f897 30b7 ldrb.w r3, [r7, #183] ; 0xb7 + 803e2fe: 2b15 cmp r3, #21 + 803e300: d004 beq.n 803e30c + 803e302: f897 30b7 ldrb.w r3, [r7, #183] ; 0xb7 + 803e306: 2b18 cmp r3, #24 + 803e308: f040 833a bne.w 803e980 int32_t zoom_final = lv_obj_get_style_transform_zoom(obj, LV_PART_MAIN); - 803e3a0: 2100 movs r1, #0 - 803e3a2: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e3a6: f7ff fa56 bl 803d856 - 803e3aa: 4603 mov r3, r0 - 803e3ac: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 + 803e30c: 2100 movs r1, #0 + 803e30e: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e312: f7ff fa56 bl 803d7c2 + 803e316: 4603 mov r3, r0 + 803e318: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 zoom_final = (zoom_final * img->zoom) >> 8; - 803e3b0: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e3b4: 8edb ldrh r3, [r3, #54] ; 0x36 - 803e3b6: 461a mov r2, r3 - 803e3b8: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 - 803e3bc: fb02 f303 mul.w r3, r2, r3 - 803e3c0: 121b asrs r3, r3, #8 - 803e3c2: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 + 803e31c: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e320: 8edb ldrh r3, [r3, #54] ; 0x36 + 803e322: 461a mov r2, r3 + 803e324: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 + 803e328: fb02 f303 mul.w r3, r2, r3 + 803e32c: 121b asrs r3, r3, #8 + 803e32e: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 int32_t angle_final = lv_obj_get_style_transform_angle(obj, LV_PART_MAIN); - 803e3c6: 2100 movs r1, #0 - 803e3c8: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e3cc: f7ff fa56 bl 803d87c - 803e3d0: 4603 mov r3, r0 - 803e3d2: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + 803e332: 2100 movs r1, #0 + 803e334: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e338: f7ff fa56 bl 803d7e8 + 803e33c: 4603 mov r3, r0 + 803e33e: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 angle_final += img->angle; - 803e3d6: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e3da: 8e1b ldrh r3, [r3, #48] ; 0x30 - 803e3dc: 461a mov r2, r3 - 803e3de: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 - 803e3e2: 4413 add r3, r2 - 803e3e4: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + 803e342: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e346: 8e1b ldrh r3, [r3, #48] ; 0x30 + 803e348: 461a mov r2, r3 + 803e34a: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 + 803e34e: 4413 add r3, r2 + 803e350: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 lv_coord_t obj_w = lv_obj_get_width(obj); - 803e3e8: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e3ec: f7cb feac bl 800a148 - 803e3f0: 4603 mov r3, r0 - 803e3f2: f8a7 30a2 strh.w r3, [r7, #162] ; 0xa2 + 803e354: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e358: f7cb fec0 bl 800a0dc + 803e35c: 4603 mov r3, r0 + 803e35e: f8a7 30a2 strh.w r3, [r7, #162] ; 0xa2 lv_coord_t obj_h = lv_obj_get_height(obj); - 803e3f6: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e3fa: f7cb feb3 bl 800a164 - 803e3fe: 4603 mov r3, r0 - 803e400: f8a7 30a0 strh.w r3, [r7, #160] ; 0xa0 + 803e362: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e366: f7cb fec7 bl 800a0f8 + 803e36a: 4603 mov r3, r0 + 803e36c: f8a7 30a0 strh.w r3, [r7, #160] ; 0xa0 lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 803e404: 2100 movs r1, #0 - 803e406: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e40a: f7ff fa96 bl 803d93a - 803e40e: 4603 mov r3, r0 - 803e410: f8a7 309e strh.w r3, [r7, #158] ; 0x9e + 803e370: 2100 movs r1, #0 + 803e372: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e376: f7ff fa96 bl 803d8a6 + 803e37a: 4603 mov r3, r0 + 803e37c: f8a7 309e strh.w r3, [r7, #158] ; 0x9e lv_coord_t pleft = lv_obj_get_style_pad_left(obj, LV_PART_MAIN) + border_width; - 803e414: 2100 movs r1, #0 - 803e416: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e41a: f7ff fa68 bl 803d8ee - 803e41e: 4603 mov r3, r0 - 803e420: b29a uxth r2, r3 - 803e422: f8b7 309e ldrh.w r3, [r7, #158] ; 0x9e - 803e426: 4413 add r3, r2 - 803e428: b29b uxth r3, r3 - 803e42a: f8a7 309c strh.w r3, [r7, #156] ; 0x9c + 803e380: 2100 movs r1, #0 + 803e382: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e386: f7ff fa68 bl 803d85a + 803e38a: 4603 mov r3, r0 + 803e38c: b29a uxth r2, r3 + 803e38e: f8b7 309e ldrh.w r3, [r7, #158] ; 0x9e + 803e392: 4413 add r3, r2 + 803e394: b29b uxth r3, r3 + 803e396: f8a7 309c strh.w r3, [r7, #156] ; 0x9c lv_coord_t pright = lv_obj_get_style_pad_right(obj, LV_PART_MAIN) + border_width; - 803e42e: 2100 movs r1, #0 - 803e430: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e434: f7ff fa6e bl 803d914 - 803e438: 4603 mov r3, r0 - 803e43a: b29a uxth r2, r3 - 803e43c: f8b7 309e ldrh.w r3, [r7, #158] ; 0x9e - 803e440: 4413 add r3, r2 - 803e442: b29b uxth r3, r3 - 803e444: f8a7 309a strh.w r3, [r7, #154] ; 0x9a + 803e39a: 2100 movs r1, #0 + 803e39c: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e3a0: f7ff fa6e bl 803d880 + 803e3a4: 4603 mov r3, r0 + 803e3a6: b29a uxth r2, r3 + 803e3a8: f8b7 309e ldrh.w r3, [r7, #158] ; 0x9e + 803e3ac: 4413 add r3, r2 + 803e3ae: b29b uxth r3, r3 + 803e3b0: f8a7 309a strh.w r3, [r7, #154] ; 0x9a lv_coord_t ptop = lv_obj_get_style_pad_top(obj, LV_PART_MAIN) + border_width; - 803e448: 2100 movs r1, #0 - 803e44a: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e44e: f7ff fa28 bl 803d8a2 - 803e452: 4603 mov r3, r0 - 803e454: b29a uxth r2, r3 - 803e456: f8b7 309e ldrh.w r3, [r7, #158] ; 0x9e - 803e45a: 4413 add r3, r2 - 803e45c: b29b uxth r3, r3 - 803e45e: f8a7 3098 strh.w r3, [r7, #152] ; 0x98 + 803e3b4: 2100 movs r1, #0 + 803e3b6: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e3ba: f7ff fa28 bl 803d80e + 803e3be: 4603 mov r3, r0 + 803e3c0: b29a uxth r2, r3 + 803e3c2: f8b7 309e ldrh.w r3, [r7, #158] ; 0x9e + 803e3c6: 4413 add r3, r2 + 803e3c8: b29b uxth r3, r3 + 803e3ca: f8a7 3098 strh.w r3, [r7, #152] ; 0x98 lv_coord_t pbottom = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN) + border_width; - 803e462: 2100 movs r1, #0 - 803e464: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e468: f7ff fa2e bl 803d8c8 - 803e46c: 4603 mov r3, r0 - 803e46e: b29a uxth r2, r3 - 803e470: f8b7 309e ldrh.w r3, [r7, #158] ; 0x9e - 803e474: 4413 add r3, r2 - 803e476: b29b uxth r3, r3 - 803e478: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 + 803e3ce: 2100 movs r1, #0 + 803e3d0: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e3d4: f7ff fa2e bl 803d834 + 803e3d8: 4603 mov r3, r0 + 803e3da: b29a uxth r2, r3 + 803e3dc: f8b7 309e ldrh.w r3, [r7, #158] ; 0x9e + 803e3e0: 4413 add r3, r2 + 803e3e2: b29b uxth r3, r3 + 803e3e4: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 lv_point_t bg_pivot; bg_pivot.x = img->pivot.x + pleft; - 803e47c: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e480: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 - 803e484: b29a uxth r2, r3 - 803e486: f8b7 309c ldrh.w r3, [r7, #156] ; 0x9c - 803e48a: 4413 add r3, r2 - 803e48c: b29b uxth r3, r3 - 803e48e: b21b sxth r3, r3 - 803e490: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 + 803e3e8: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e3ec: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 + 803e3f0: b29a uxth r2, r3 + 803e3f2: f8b7 309c ldrh.w r3, [r7, #156] ; 0x9c + 803e3f6: 4413 add r3, r2 + 803e3f8: b29b uxth r3, r3 + 803e3fa: b21b sxth r3, r3 + 803e3fc: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 bg_pivot.y = img->pivot.y + ptop; - 803e494: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e498: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 - 803e49c: b29a uxth r2, r3 - 803e49e: f8b7 3098 ldrh.w r3, [r7, #152] ; 0x98 - 803e4a2: 4413 add r3, r2 - 803e4a4: b29b uxth r3, r3 - 803e4a6: b21b sxth r3, r3 - 803e4a8: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 + 803e400: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e404: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 + 803e408: b29a uxth r2, r3 + 803e40a: f8b7 3098 ldrh.w r3, [r7, #152] ; 0x98 + 803e40e: 4413 add r3, r2 + 803e410: b29b uxth r3, r3 + 803e412: b21b sxth r3, r3 + 803e414: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 lv_area_t bg_coords; if(img->obj_size_mode == LV_IMG_SIZE_MODE_REAL) { - 803e4ac: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e4b0: f893 3039 ldrb.w r3, [r3, #57] ; 0x39 - 803e4b4: f003 0303 and.w r3, r3, #3 - 803e4b8: b2db uxtb r3, r3 - 803e4ba: 2b01 cmp r3, #1 - 803e4bc: d107 bne.n 803e4ce + 803e418: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e41c: f893 3039 ldrb.w r3, [r3, #57] ; 0x39 + 803e420: f003 0303 and.w r3, r3, #3 + 803e424: b2db uxtb r3, r3 + 803e426: 2b01 cmp r3, #1 + 803e428: d107 bne.n 803e43a /*Object size equals to transformed image size*/ lv_obj_get_coords(obj, &bg_coords); - 803e4be: f107 0368 add.w r3, r7, #104 ; 0x68 - 803e4c2: 4619 mov r1, r3 - 803e4c4: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e4c8: f7cb fda0 bl 800a00c - 803e4cc: e047 b.n 803e55e + 803e42a: f107 0368 add.w r3, r7, #104 ; 0x68 + 803e42e: 4619 mov r1, r3 + 803e430: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e434: f7cb fdb4 bl 8009fa0 + 803e438: e047 b.n 803e4ca } else { _lv_img_buf_get_transformed_area(&bg_coords, obj_w, obj_h, - 803e4ce: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 - 803e4d2: b21d sxth r5, r3 - 803e4d4: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 - 803e4d8: b29b uxth r3, r3 - 803e4da: f9b7 40a0 ldrsh.w r4, [r7, #160] ; 0xa0 - 803e4de: f9b7 10a2 ldrsh.w r1, [r7, #162] ; 0xa2 - 803e4e2: f107 0068 add.w r0, r7, #104 ; 0x68 - 803e4e6: f107 0270 add.w r2, r7, #112 ; 0x70 - 803e4ea: 9201 str r2, [sp, #4] - 803e4ec: 9300 str r3, [sp, #0] - 803e4ee: 462b mov r3, r5 - 803e4f0: 4622 mov r2, r4 - 803e4f2: f7d7 fde1 bl 80160b8 <_lv_img_buf_get_transformed_area> + 803e43a: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 + 803e43e: b21d sxth r5, r3 + 803e440: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 + 803e444: b29b uxth r3, r3 + 803e446: f9b7 40a0 ldrsh.w r4, [r7, #160] ; 0xa0 + 803e44a: f9b7 10a2 ldrsh.w r1, [r7, #162] ; 0xa2 + 803e44e: f107 0068 add.w r0, r7, #104 ; 0x68 + 803e452: f107 0270 add.w r2, r7, #112 ; 0x70 + 803e456: 9201 str r2, [sp, #4] + 803e458: 9300 str r3, [sp, #0] + 803e45a: 462b mov r3, r5 + 803e45c: 4622 mov r2, r4 + 803e45e: f7d7 fde1 bl 8016024 <_lv_img_buf_get_transformed_area> angle_final, zoom_final, &bg_pivot); /*Modify the coordinates to draw the background for the rotated and scaled coordinates*/ bg_coords.x1 += obj->coords.x1; - 803e4f6: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 - 803e4fa: b29a uxth r2, r3 - 803e4fc: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803e500: f9b3 3014 ldrsh.w r3, [r3, #20] - 803e504: b29b uxth r3, r3 - 803e506: 4413 add r3, r2 - 803e508: b29b uxth r3, r3 - 803e50a: b21b sxth r3, r3 - 803e50c: f8a7 3068 strh.w r3, [r7, #104] ; 0x68 + 803e462: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 + 803e466: b29a uxth r2, r3 + 803e468: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803e46c: f9b3 3014 ldrsh.w r3, [r3, #20] + 803e470: b29b uxth r3, r3 + 803e472: 4413 add r3, r2 + 803e474: b29b uxth r3, r3 + 803e476: b21b sxth r3, r3 + 803e478: f8a7 3068 strh.w r3, [r7, #104] ; 0x68 bg_coords.y1 += obj->coords.y1; - 803e510: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 803e514: b29a uxth r2, r3 - 803e516: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803e51a: f9b3 3016 ldrsh.w r3, [r3, #22] - 803e51e: b29b uxth r3, r3 - 803e520: 4413 add r3, r2 - 803e522: b29b uxth r3, r3 - 803e524: b21b sxth r3, r3 - 803e526: f8a7 306a strh.w r3, [r7, #106] ; 0x6a + 803e47c: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 803e480: b29a uxth r2, r3 + 803e482: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803e486: f9b3 3016 ldrsh.w r3, [r3, #22] + 803e48a: b29b uxth r3, r3 + 803e48c: 4413 add r3, r2 + 803e48e: b29b uxth r3, r3 + 803e490: b21b sxth r3, r3 + 803e492: f8a7 306a strh.w r3, [r7, #106] ; 0x6a bg_coords.x2 += obj->coords.x1; - 803e52a: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c - 803e52e: b29a uxth r2, r3 - 803e530: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803e534: f9b3 3014 ldrsh.w r3, [r3, #20] - 803e538: b29b uxth r3, r3 - 803e53a: 4413 add r3, r2 - 803e53c: b29b uxth r3, r3 - 803e53e: b21b sxth r3, r3 - 803e540: f8a7 306c strh.w r3, [r7, #108] ; 0x6c + 803e496: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c + 803e49a: b29a uxth r2, r3 + 803e49c: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803e4a0: f9b3 3014 ldrsh.w r3, [r3, #20] + 803e4a4: b29b uxth r3, r3 + 803e4a6: 4413 add r3, r2 + 803e4a8: b29b uxth r3, r3 + 803e4aa: b21b sxth r3, r3 + 803e4ac: f8a7 306c strh.w r3, [r7, #108] ; 0x6c bg_coords.y2 += obj->coords.y1; - 803e544: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e - 803e548: b29a uxth r2, r3 - 803e54a: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803e54e: f9b3 3016 ldrsh.w r3, [r3, #22] - 803e552: b29b uxth r3, r3 - 803e554: 4413 add r3, r2 - 803e556: b29b uxth r3, r3 - 803e558: b21b sxth r3, r3 - 803e55a: f8a7 306e strh.w r3, [r7, #110] ; 0x6e + 803e4b0: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e + 803e4b4: b29a uxth r2, r3 + 803e4b6: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803e4ba: f9b3 3016 ldrsh.w r3, [r3, #22] + 803e4be: b29b uxth r3, r3 + 803e4c0: 4413 add r3, r2 + 803e4c2: b29b uxth r3, r3 + 803e4c4: b21b sxth r3, r3 + 803e4c6: f8a7 306e strh.w r3, [r7, #110] ; 0x6e } lv_area_t ori_coords; lv_area_copy(&ori_coords, &obj->coords); - 803e55e: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803e562: f103 0214 add.w r2, r3, #20 - 803e566: f107 0360 add.w r3, r7, #96 ; 0x60 - 803e56a: 4611 mov r1, r2 - 803e56c: 4618 mov r0, r3 - 803e56e: f7ff f928 bl 803d7c2 + 803e4ca: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803e4ce: f103 0214 add.w r2, r3, #20 + 803e4d2: f107 0360 add.w r3, r7, #96 ; 0x60 + 803e4d6: 4611 mov r1, r2 + 803e4d8: 4618 mov r0, r3 + 803e4da: f7ff f928 bl 803d72e lv_area_copy(&obj->coords, &bg_coords); - 803e572: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803e576: 3314 adds r3, #20 - 803e578: f107 0268 add.w r2, r7, #104 ; 0x68 - 803e57c: 4611 mov r1, r2 - 803e57e: 4618 mov r0, r3 - 803e580: f7ff f91f bl 803d7c2 + 803e4de: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803e4e2: 3314 adds r3, #20 + 803e4e4: f107 0268 add.w r2, r7, #104 ; 0x68 + 803e4e8: 4611 mov r1, r2 + 803e4ea: 4618 mov r0, r3 + 803e4ec: f7ff f91f bl 803d72e lv_res_t res = lv_obj_event_base(MY_CLASS, e); - 803e584: 6879 ldr r1, [r7, #4] - 803e586: 48b4 ldr r0, [pc, #720] ; (803e858 ) - 803e588: f7c3 ffbc bl 8002504 - 803e58c: 4603 mov r3, r0 - 803e58e: f887 3095 strb.w r3, [r7, #149] ; 0x95 + 803e4f0: 6879 ldr r1, [r7, #4] + 803e4f2: 48b4 ldr r0, [pc, #720] ; (803e7c4 ) + 803e4f4: f7c3 ffd0 bl 8002498 + 803e4f8: 4603 mov r3, r0 + 803e4fa: f887 3095 strb.w r3, [r7, #149] ; 0x95 if(res != LV_RES_OK) return; - 803e592: f897 3095 ldrb.w r3, [r7, #149] ; 0x95 - 803e596: 2b01 cmp r3, #1 - 803e598: f040 8237 bne.w 803ea0a + 803e4fe: f897 3095 ldrb.w r3, [r7, #149] ; 0x95 + 803e502: 2b01 cmp r3, #1 + 803e504: f040 8237 bne.w 803e976 lv_area_copy(&obj->coords, &ori_coords); - 803e59c: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803e5a0: 3314 adds r3, #20 - 803e5a2: f107 0260 add.w r2, r7, #96 ; 0x60 - 803e5a6: 4611 mov r1, r2 - 803e5a8: 4618 mov r0, r3 - 803e5aa: f7ff f90a bl 803d7c2 + 803e508: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803e50c: 3314 adds r3, #20 + 803e50e: f107 0260 add.w r2, r7, #96 ; 0x60 + 803e512: 4611 mov r1, r2 + 803e514: 4618 mov r0, r3 + 803e516: f7ff f90a bl 803d72e if(code == LV_EVENT_DRAW_MAIN) { - 803e5ae: f897 30b7 ldrb.w r3, [r7, #183] ; 0xb7 - 803e5b2: 2b15 cmp r3, #21 - 803e5b4: f040 822e bne.w 803ea14 + 803e51a: f897 30b7 ldrb.w r3, [r7, #183] ; 0xb7 + 803e51e: 2b15 cmp r3, #21 + 803e520: f040 822e bne.w 803e980 if(img->h == 0 || img->w == 0) return; - 803e5b8: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e5bc: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 803e5c0: 2b00 cmp r3, #0 - 803e5c2: f000 8224 beq.w 803ea0e - 803e5c6: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e5ca: f9b3 302c ldrsh.w r3, [r3, #44] ; 0x2c - 803e5ce: 2b00 cmp r3, #0 - 803e5d0: f000 821d beq.w 803ea0e + 803e524: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e528: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 803e52c: 2b00 cmp r3, #0 + 803e52e: f000 8224 beq.w 803e97a + 803e532: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e536: f9b3 302c ldrsh.w r3, [r3, #44] ; 0x2c + 803e53a: 2b00 cmp r3, #0 + 803e53c: f000 821d beq.w 803e97a if(zoom_final == 0) return; - 803e5d4: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 - 803e5d8: 2b00 cmp r3, #0 - 803e5da: f000 821a beq.w 803ea12 + 803e540: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 + 803e544: 2b00 cmp r3, #0 + 803e546: f000 821a beq.w 803e97e lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 803e5de: 6878 ldr r0, [r7, #4] - 803e5e0: f7c4 f8e4 bl 80027ac - 803e5e4: f8c7 0090 str.w r0, [r7, #144] ; 0x90 + 803e54a: 6878 ldr r0, [r7, #4] + 803e54c: f7c4 f8f8 bl 8002740 + 803e550: f8c7 0090 str.w r0, [r7, #144] ; 0x90 lv_area_t img_max_area; lv_area_copy(&img_max_area, &obj->coords); - 803e5e8: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803e5ec: f103 0214 add.w r2, r3, #20 - 803e5f0: f107 0358 add.w r3, r7, #88 ; 0x58 - 803e5f4: 4611 mov r1, r2 - 803e5f6: 4618 mov r0, r3 - 803e5f8: f7ff f8e3 bl 803d7c2 + 803e554: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803e558: f103 0214 add.w r2, r3, #20 + 803e55c: f107 0358 add.w r3, r7, #88 ; 0x58 + 803e560: 4611 mov r1, r2 + 803e562: 4618 mov r0, r3 + 803e564: f7ff f8e3 bl 803d72e lv_point_t img_size_final = lv_img_get_transformed_size(obj); - 803e5fc: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e600: f7ff fba9 bl 803dd56 - 803e604: 4603 mov r3, r0 - 803e606: 657b str r3, [r7, #84] ; 0x54 + 803e568: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e56c: f7ff fba9 bl 803dcc2 + 803e570: 4603 mov r3, r0 + 803e572: 657b str r3, [r7, #84] ; 0x54 if(img->obj_size_mode == LV_IMG_SIZE_MODE_REAL) { - 803e608: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e60c: f893 3039 ldrb.w r3, [r3, #57] ; 0x39 - 803e610: f003 0303 and.w r3, r3, #3 - 803e614: b2db uxtb r3, r3 - 803e616: 2b01 cmp r3, #1 - 803e618: d158 bne.n 803e6cc + 803e574: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e578: f893 3039 ldrb.w r3, [r3, #57] ; 0x39 + 803e57c: f003 0303 and.w r3, r3, #3 + 803e580: b2db uxtb r3, r3 + 803e582: 2b01 cmp r3, #1 + 803e584: d158 bne.n 803e638 img_max_area.x1 -= ((img->w - img_size_final.x) + 1) / 2; - 803e61a: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 803e61e: b29a uxth r2, r3 - 803e620: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e624: f9b3 302c ldrsh.w r3, [r3, #44] ; 0x2c - 803e628: 4619 mov r1, r3 - 803e62a: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 - 803e62e: 1acb subs r3, r1, r3 - 803e630: 3301 adds r3, #1 - 803e632: 0fd9 lsrs r1, r3, #31 - 803e634: 440b add r3, r1 - 803e636: 105b asrs r3, r3, #1 - 803e638: 425b negs r3, r3 - 803e63a: b29b uxth r3, r3 - 803e63c: 4413 add r3, r2 - 803e63e: b29b uxth r3, r3 - 803e640: b21b sxth r3, r3 - 803e642: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 + 803e586: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 803e58a: b29a uxth r2, r3 + 803e58c: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e590: f9b3 302c ldrsh.w r3, [r3, #44] ; 0x2c + 803e594: 4619 mov r1, r3 + 803e596: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 + 803e59a: 1acb subs r3, r1, r3 + 803e59c: 3301 adds r3, #1 + 803e59e: 0fd9 lsrs r1, r3, #31 + 803e5a0: 440b add r3, r1 + 803e5a2: 105b asrs r3, r3, #1 + 803e5a4: 425b negs r3, r3 + 803e5a6: b29b uxth r3, r3 + 803e5a8: 4413 add r3, r2 + 803e5aa: b29b uxth r3, r3 + 803e5ac: b21b sxth r3, r3 + 803e5ae: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 img_max_area.x2 -= ((img->w - img_size_final.x) + 1) / 2; - 803e646: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c - 803e64a: b29a uxth r2, r3 - 803e64c: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e650: f9b3 302c ldrsh.w r3, [r3, #44] ; 0x2c - 803e654: 4619 mov r1, r3 - 803e656: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 - 803e65a: 1acb subs r3, r1, r3 - 803e65c: 3301 adds r3, #1 - 803e65e: 0fd9 lsrs r1, r3, #31 - 803e660: 440b add r3, r1 - 803e662: 105b asrs r3, r3, #1 - 803e664: 425b negs r3, r3 - 803e666: b29b uxth r3, r3 - 803e668: 4413 add r3, r2 - 803e66a: b29b uxth r3, r3 - 803e66c: b21b sxth r3, r3 - 803e66e: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 803e5b2: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c + 803e5b6: b29a uxth r2, r3 + 803e5b8: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e5bc: f9b3 302c ldrsh.w r3, [r3, #44] ; 0x2c + 803e5c0: 4619 mov r1, r3 + 803e5c2: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 + 803e5c6: 1acb subs r3, r1, r3 + 803e5c8: 3301 adds r3, #1 + 803e5ca: 0fd9 lsrs r1, r3, #31 + 803e5cc: 440b add r3, r1 + 803e5ce: 105b asrs r3, r3, #1 + 803e5d0: 425b negs r3, r3 + 803e5d2: b29b uxth r3, r3 + 803e5d4: 4413 add r3, r2 + 803e5d6: b29b uxth r3, r3 + 803e5d8: b21b sxth r3, r3 + 803e5da: f8a7 305c strh.w r3, [r7, #92] ; 0x5c img_max_area.y1 -= ((img->h - img_size_final.y) + 1) / 2; - 803e672: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a - 803e676: b29a uxth r2, r3 - 803e678: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e67c: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 803e680: 4619 mov r1, r3 - 803e682: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 803e686: 1acb subs r3, r1, r3 - 803e688: 3301 adds r3, #1 - 803e68a: 0fd9 lsrs r1, r3, #31 - 803e68c: 440b add r3, r1 - 803e68e: 105b asrs r3, r3, #1 - 803e690: 425b negs r3, r3 - 803e692: b29b uxth r3, r3 - 803e694: 4413 add r3, r2 - 803e696: b29b uxth r3, r3 - 803e698: b21b sxth r3, r3 - 803e69a: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 803e5de: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a + 803e5e2: b29a uxth r2, r3 + 803e5e4: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e5e8: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 803e5ec: 4619 mov r1, r3 + 803e5ee: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 803e5f2: 1acb subs r3, r1, r3 + 803e5f4: 3301 adds r3, #1 + 803e5f6: 0fd9 lsrs r1, r3, #31 + 803e5f8: 440b add r3, r1 + 803e5fa: 105b asrs r3, r3, #1 + 803e5fc: 425b negs r3, r3 + 803e5fe: b29b uxth r3, r3 + 803e600: 4413 add r3, r2 + 803e602: b29b uxth r3, r3 + 803e604: b21b sxth r3, r3 + 803e606: f8a7 305a strh.w r3, [r7, #90] ; 0x5a img_max_area.y2 -= ((img->h - img_size_final.y) + 1) / 2; - 803e69e: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e - 803e6a2: b29a uxth r2, r3 - 803e6a4: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e6a8: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 803e6ac: 4619 mov r1, r3 - 803e6ae: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 803e6b2: 1acb subs r3, r1, r3 - 803e6b4: 3301 adds r3, #1 - 803e6b6: 0fd9 lsrs r1, r3, #31 - 803e6b8: 440b add r3, r1 - 803e6ba: 105b asrs r3, r3, #1 - 803e6bc: 425b negs r3, r3 - 803e6be: b29b uxth r3, r3 - 803e6c0: 4413 add r3, r2 - 803e6c2: b29b uxth r3, r3 - 803e6c4: b21b sxth r3, r3 - 803e6c6: f8a7 305e strh.w r3, [r7, #94] ; 0x5e - 803e6ca: e021 b.n 803e710 + 803e60a: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e + 803e60e: b29a uxth r2, r3 + 803e610: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e614: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 803e618: 4619 mov r1, r3 + 803e61a: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 803e61e: 1acb subs r3, r1, r3 + 803e620: 3301 adds r3, #1 + 803e622: 0fd9 lsrs r1, r3, #31 + 803e624: 440b add r3, r1 + 803e626: 105b asrs r3, r3, #1 + 803e628: 425b negs r3, r3 + 803e62a: b29b uxth r3, r3 + 803e62c: 4413 add r3, r2 + 803e62e: b29b uxth r3, r3 + 803e630: b21b sxth r3, r3 + 803e632: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 803e636: e021 b.n 803e67c } else { img_max_area.x2 = img_max_area.x1 + lv_area_get_width(&bg_coords) - 1; - 803e6cc: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 803e6d0: b29c uxth r4, r3 - 803e6d2: f107 0368 add.w r3, r7, #104 ; 0x68 - 803e6d6: 4618 mov r0, r3 - 803e6d8: f7ff f891 bl 803d7fe - 803e6dc: 4603 mov r3, r0 - 803e6de: b29b uxth r3, r3 - 803e6e0: 4423 add r3, r4 - 803e6e2: b29b uxth r3, r3 - 803e6e4: 3b01 subs r3, #1 - 803e6e6: b29b uxth r3, r3 - 803e6e8: b21b sxth r3, r3 - 803e6ea: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 803e638: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 803e63c: b29c uxth r4, r3 + 803e63e: f107 0368 add.w r3, r7, #104 ; 0x68 + 803e642: 4618 mov r0, r3 + 803e644: f7ff f891 bl 803d76a + 803e648: 4603 mov r3, r0 + 803e64a: b29b uxth r3, r3 + 803e64c: 4423 add r3, r4 + 803e64e: b29b uxth r3, r3 + 803e650: 3b01 subs r3, #1 + 803e652: b29b uxth r3, r3 + 803e654: b21b sxth r3, r3 + 803e656: f8a7 305c strh.w r3, [r7, #92] ; 0x5c img_max_area.y2 = img_max_area.y1 + lv_area_get_height(&bg_coords) - 1; - 803e6ee: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a - 803e6f2: b29c uxth r4, r3 - 803e6f4: f107 0368 add.w r3, r7, #104 ; 0x68 - 803e6f8: 4618 mov r0, r3 - 803e6fa: f7ff f896 bl 803d82a - 803e6fe: 4603 mov r3, r0 - 803e700: b29b uxth r3, r3 - 803e702: 4423 add r3, r4 - 803e704: b29b uxth r3, r3 - 803e706: 3b01 subs r3, #1 - 803e708: b29b uxth r3, r3 - 803e70a: b21b sxth r3, r3 - 803e70c: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 803e65a: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a + 803e65e: b29c uxth r4, r3 + 803e660: f107 0368 add.w r3, r7, #104 ; 0x68 + 803e664: 4618 mov r0, r3 + 803e666: f7ff f896 bl 803d796 + 803e66a: 4603 mov r3, r0 + 803e66c: b29b uxth r3, r3 + 803e66e: 4423 add r3, r4 + 803e670: b29b uxth r3, r3 + 803e672: 3b01 subs r3, #1 + 803e674: b29b uxth r3, r3 + 803e676: b21b sxth r3, r3 + 803e678: f8a7 305e strh.w r3, [r7, #94] ; 0x5e } img_max_area.x1 += pleft; - 803e710: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 803e714: b29a uxth r2, r3 - 803e716: f8b7 309c ldrh.w r3, [r7, #156] ; 0x9c - 803e71a: 4413 add r3, r2 - 803e71c: b29b uxth r3, r3 - 803e71e: b21b sxth r3, r3 - 803e720: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 + 803e67c: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 803e680: b29a uxth r2, r3 + 803e682: f8b7 309c ldrh.w r3, [r7, #156] ; 0x9c + 803e686: 4413 add r3, r2 + 803e688: b29b uxth r3, r3 + 803e68a: b21b sxth r3, r3 + 803e68c: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 img_max_area.y1 += ptop; - 803e724: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a - 803e728: b29a uxth r2, r3 - 803e72a: f8b7 3098 ldrh.w r3, [r7, #152] ; 0x98 - 803e72e: 4413 add r3, r2 - 803e730: b29b uxth r3, r3 - 803e732: b21b sxth r3, r3 - 803e734: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 803e690: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a + 803e694: b29a uxth r2, r3 + 803e696: f8b7 3098 ldrh.w r3, [r7, #152] ; 0x98 + 803e69a: 4413 add r3, r2 + 803e69c: b29b uxth r3, r3 + 803e69e: b21b sxth r3, r3 + 803e6a0: f8a7 305a strh.w r3, [r7, #90] ; 0x5a img_max_area.x2 -= pright; - 803e738: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c - 803e73c: b29a uxth r2, r3 - 803e73e: f8b7 309a ldrh.w r3, [r7, #154] ; 0x9a - 803e742: 1ad3 subs r3, r2, r3 - 803e744: b29b uxth r3, r3 - 803e746: b21b sxth r3, r3 - 803e748: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 803e6a4: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c + 803e6a8: b29a uxth r2, r3 + 803e6aa: f8b7 309a ldrh.w r3, [r7, #154] ; 0x9a + 803e6ae: 1ad3 subs r3, r2, r3 + 803e6b0: b29b uxth r3, r3 + 803e6b2: b21b sxth r3, r3 + 803e6b4: f8a7 305c strh.w r3, [r7, #92] ; 0x5c img_max_area.y2 -= pbottom; - 803e74c: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e - 803e750: b29a uxth r2, r3 - 803e752: f8b7 3096 ldrh.w r3, [r7, #150] ; 0x96 - 803e756: 1ad3 subs r3, r2, r3 - 803e758: b29b uxth r3, r3 - 803e75a: b21b sxth r3, r3 - 803e75c: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 803e6b8: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e + 803e6bc: b29a uxth r2, r3 + 803e6be: f8b7 3096 ldrh.w r3, [r7, #150] ; 0x96 + 803e6c2: 1ad3 subs r3, r2, r3 + 803e6c4: b29b uxth r3, r3 + 803e6c6: b21b sxth r3, r3 + 803e6c8: f8a7 305e strh.w r3, [r7, #94] ; 0x5e if(img->src_type == LV_IMG_SRC_FILE || img->src_type == LV_IMG_SRC_VARIABLE) { - 803e760: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e764: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 - 803e768: f003 0303 and.w r3, r3, #3 - 803e76c: b2db uxtb r3, r3 - 803e76e: 2b01 cmp r3, #1 - 803e770: d009 beq.n 803e786 - 803e772: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e776: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 - 803e77a: f003 0303 and.w r3, r3, #3 - 803e77e: b2db uxtb r3, r3 - 803e780: 2b00 cmp r3, #0 - 803e782: f040 810f bne.w 803e9a4 + 803e6cc: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e6d0: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 + 803e6d4: f003 0303 and.w r3, r3, #3 + 803e6d8: b2db uxtb r3, r3 + 803e6da: 2b01 cmp r3, #1 + 803e6dc: d009 beq.n 803e6f2 + 803e6de: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e6e2: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 + 803e6e6: f003 0303 and.w r3, r3, #3 + 803e6ea: b2db uxtb r3, r3 + 803e6ec: 2b00 cmp r3, #0 + 803e6ee: f040 810f bne.w 803e910 lv_draw_img_dsc_t img_dsc; lv_draw_img_dsc_init(&img_dsc); - 803e786: f107 033c add.w r3, r7, #60 ; 0x3c - 803e78a: 4618 mov r0, r3 - 803e78c: f7d3 f98f bl 8011aae + 803e6f2: f107 033c add.w r3, r7, #60 ; 0x3c + 803e6f6: 4618 mov r0, r3 + 803e6f8: f7d3 f98f bl 8011a1a lv_obj_init_draw_img_dsc(obj, LV_PART_MAIN, &img_dsc); - 803e790: f107 033c add.w r3, r7, #60 ; 0x3c - 803e794: 461a mov r2, r3 - 803e796: 2100 movs r1, #0 - 803e798: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e79c: f7ca f973 bl 8008a86 + 803e6fc: f107 033c add.w r3, r7, #60 ; 0x3c + 803e700: 461a mov r2, r3 + 803e702: 2100 movs r1, #0 + 803e704: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e708: f7ca f987 bl 8008a1a img_dsc.zoom = zoom_final; - 803e7a0: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 - 803e7a4: b29b uxth r3, r3 - 803e7a6: 87fb strh r3, [r7, #62] ; 0x3e + 803e70c: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 + 803e710: b29b uxth r3, r3 + 803e712: 87fb strh r3, [r7, #62] ; 0x3e img_dsc.angle = angle_final; - 803e7a8: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 - 803e7ac: b29b uxth r3, r3 - 803e7ae: 87bb strh r3, [r7, #60] ; 0x3c + 803e714: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 + 803e718: b29b uxth r3, r3 + 803e71a: 87bb strh r3, [r7, #60] ; 0x3c img_dsc.pivot.x = img->pivot.x; - 803e7b0: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e7b4: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 - 803e7b8: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 803e71c: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e720: f9b3 3032 ldrsh.w r3, [r3, #50] ; 0x32 + 803e724: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 img_dsc.pivot.y = img->pivot.y; - 803e7bc: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e7c0: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 - 803e7c4: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 803e728: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e72c: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 + 803e730: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 img_dsc.antialias = img->antialias; - 803e7c8: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e7cc: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 - 803e7d0: f3c3 13c0 ubfx r3, r3, #7, #1 - 803e7d4: b2da uxtb r2, r3 - 803e7d6: f897 3050 ldrb.w r3, [r7, #80] ; 0x50 - 803e7da: f362 0300 bfi r3, r2, #0, #1 - 803e7de: f887 3050 strb.w r3, [r7, #80] ; 0x50 + 803e734: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e738: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 + 803e73c: f3c3 13c0 ubfx r3, r3, #7, #1 + 803e740: b2da uxtb r2, r3 + 803e742: f897 3050 ldrb.w r3, [r7, #80] ; 0x50 + 803e746: f362 0300 bfi r3, r2, #0, #1 + 803e74a: f887 3050 strb.w r3, [r7, #80] ; 0x50 lv_area_t img_clip_area; img_clip_area.x1 = bg_coords.x1 + pleft; - 803e7e2: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 - 803e7e6: b29a uxth r2, r3 - 803e7e8: f8b7 309c ldrh.w r3, [r7, #156] ; 0x9c - 803e7ec: 4413 add r3, r2 - 803e7ee: b29b uxth r3, r3 - 803e7f0: b21b sxth r3, r3 - 803e7f2: 86bb strh r3, [r7, #52] ; 0x34 + 803e74e: f9b7 3068 ldrsh.w r3, [r7, #104] ; 0x68 + 803e752: b29a uxth r2, r3 + 803e754: f8b7 309c ldrh.w r3, [r7, #156] ; 0x9c + 803e758: 4413 add r3, r2 + 803e75a: b29b uxth r3, r3 + 803e75c: b21b sxth r3, r3 + 803e75e: 86bb strh r3, [r7, #52] ; 0x34 img_clip_area.y1 = bg_coords.y1 + ptop; - 803e7f4: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a - 803e7f8: b29a uxth r2, r3 - 803e7fa: f8b7 3098 ldrh.w r3, [r7, #152] ; 0x98 - 803e7fe: 4413 add r3, r2 - 803e800: b29b uxth r3, r3 - 803e802: b21b sxth r3, r3 - 803e804: 86fb strh r3, [r7, #54] ; 0x36 + 803e760: f9b7 306a ldrsh.w r3, [r7, #106] ; 0x6a + 803e764: b29a uxth r2, r3 + 803e766: f8b7 3098 ldrh.w r3, [r7, #152] ; 0x98 + 803e76a: 4413 add r3, r2 + 803e76c: b29b uxth r3, r3 + 803e76e: b21b sxth r3, r3 + 803e770: 86fb strh r3, [r7, #54] ; 0x36 img_clip_area.x2 = bg_coords.x2 - pright; - 803e806: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c - 803e80a: b29a uxth r2, r3 - 803e80c: f8b7 309a ldrh.w r3, [r7, #154] ; 0x9a - 803e810: 1ad3 subs r3, r2, r3 - 803e812: b29b uxth r3, r3 - 803e814: b21b sxth r3, r3 - 803e816: 873b strh r3, [r7, #56] ; 0x38 + 803e772: f9b7 306c ldrsh.w r3, [r7, #108] ; 0x6c + 803e776: b29a uxth r2, r3 + 803e778: f8b7 309a ldrh.w r3, [r7, #154] ; 0x9a + 803e77c: 1ad3 subs r3, r2, r3 + 803e77e: b29b uxth r3, r3 + 803e780: b21b sxth r3, r3 + 803e782: 873b strh r3, [r7, #56] ; 0x38 img_clip_area.y2 = bg_coords.y2 - pbottom; - 803e818: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e - 803e81c: b29a uxth r2, r3 - 803e81e: f8b7 3096 ldrh.w r3, [r7, #150] ; 0x96 - 803e822: 1ad3 subs r3, r2, r3 - 803e824: b29b uxth r3, r3 - 803e826: b21b sxth r3, r3 - 803e828: 877b strh r3, [r7, #58] ; 0x3a + 803e784: f9b7 306e ldrsh.w r3, [r7, #110] ; 0x6e + 803e788: b29a uxth r2, r3 + 803e78a: f8b7 3096 ldrh.w r3, [r7, #150] ; 0x96 + 803e78e: 1ad3 subs r3, r2, r3 + 803e790: b29b uxth r3, r3 + 803e792: b21b sxth r3, r3 + 803e794: 877b strh r3, [r7, #58] ; 0x3a const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 803e82a: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 803e82e: 689b ldr r3, [r3, #8] - 803e830: f8c7 308c str.w r3, [r7, #140] ; 0x8c + 803e796: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 803e79a: 689b ldr r3, [r3, #8] + 803e79c: f8c7 308c str.w r3, [r7, #140] ; 0x8c if(!_lv_area_intersect(&img_clip_area, draw_ctx->clip_area, &img_clip_area)) return; - 803e834: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 803e838: 6899 ldr r1, [r3, #8] - 803e83a: f107 0234 add.w r2, r7, #52 ; 0x34 - 803e83e: f107 0334 add.w r3, r7, #52 ; 0x34 - 803e842: 4618 mov r0, r3 - 803e844: f7f2 fc30 bl 80310a8 <_lv_area_intersect> - 803e848: 4603 mov r3, r0 - 803e84a: f083 0301 eor.w r3, r3, #1 - 803e84e: b2db uxtb r3, r3 - 803e850: 2b00 cmp r3, #0 - 803e852: d003 beq.n 803e85c - 803e854: bf00 nop + 803e7a0: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 803e7a4: 6899 ldr r1, [r3, #8] + 803e7a6: f107 0234 add.w r2, r7, #52 ; 0x34 + 803e7aa: f107 0334 add.w r3, r7, #52 ; 0x34 + 803e7ae: 4618 mov r0, r3 + 803e7b0: f7f2 fc30 bl 8031014 <_lv_area_intersect> + 803e7b4: 4603 mov r3, r0 + 803e7b6: f083 0301 eor.w r3, r3, #1 + 803e7ba: b2db uxtb r3, r3 + 803e7bc: 2b00 cmp r3, #0 + 803e7be: d003 beq.n 803e7c8 + 803e7c0: bf00 nop if(img->h == 0 || img->w == 0) return; - 803e856: e0da b.n 803ea0e - 803e858: 08070a70 .word 0x08070a70 + 803e7c2: e0da b.n 803e97a + 803e7c4: 080709c8 .word 0x080709c8 draw_ctx->clip_area = &img_clip_area; - 803e85c: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 803e860: f107 0234 add.w r2, r7, #52 ; 0x34 - 803e864: 609a str r2, [r3, #8] + 803e7c8: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 803e7cc: f107 0234 add.w r2, r7, #52 ; 0x34 + 803e7d0: 609a str r2, [r3, #8] lv_area_t coords_tmp; coords_tmp.y1 = img_max_area.y1 + img->offset.y; - 803e866: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a - 803e86a: b29a uxth r2, r3 - 803e86c: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e870: f9b3 302a ldrsh.w r3, [r3, #42] ; 0x2a - 803e874: b29b uxth r3, r3 - 803e876: 4413 add r3, r2 - 803e878: b29b uxth r3, r3 - 803e87a: b21b sxth r3, r3 - 803e87c: 85fb strh r3, [r7, #46] ; 0x2e + 803e7d2: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a + 803e7d6: b29a uxth r2, r3 + 803e7d8: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e7dc: f9b3 302a ldrsh.w r3, [r3, #42] ; 0x2a + 803e7e0: b29b uxth r3, r3 + 803e7e2: 4413 add r3, r2 + 803e7e4: b29b uxth r3, r3 + 803e7e6: b21b sxth r3, r3 + 803e7e8: 85fb strh r3, [r7, #46] ; 0x2e if(coords_tmp.y1 > img_max_area.y1) coords_tmp.y1 -= img->h; - 803e87e: f9b7 202e ldrsh.w r2, [r7, #46] ; 0x2e - 803e882: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a - 803e886: 429a cmp r2, r3 - 803e888: dd0b ble.n 803e8a2 - 803e88a: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 803e88e: b29a uxth r2, r3 - 803e890: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e894: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 803e898: b29b uxth r3, r3 - 803e89a: 1ad3 subs r3, r2, r3 - 803e89c: b29b uxth r3, r3 - 803e89e: b21b sxth r3, r3 - 803e8a0: 85fb strh r3, [r7, #46] ; 0x2e + 803e7ea: f9b7 202e ldrsh.w r2, [r7, #46] ; 0x2e + 803e7ee: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a + 803e7f2: 429a cmp r2, r3 + 803e7f4: dd0b ble.n 803e80e + 803e7f6: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 803e7fa: b29a uxth r2, r3 + 803e7fc: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e800: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 803e804: b29b uxth r3, r3 + 803e806: 1ad3 subs r3, r2, r3 + 803e808: b29b uxth r3, r3 + 803e80a: b21b sxth r3, r3 + 803e80c: 85fb strh r3, [r7, #46] ; 0x2e coords_tmp.y2 = coords_tmp.y1 + img->h - 1; - 803e8a2: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 803e8a6: b29a uxth r2, r3 - 803e8a8: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e8ac: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e - 803e8b0: b29b uxth r3, r3 - 803e8b2: 4413 add r3, r2 - 803e8b4: b29b uxth r3, r3 - 803e8b6: 3b01 subs r3, #1 - 803e8b8: b29b uxth r3, r3 - 803e8ba: b21b sxth r3, r3 - 803e8bc: 867b strh r3, [r7, #50] ; 0x32 + 803e80e: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 803e812: b29a uxth r2, r3 + 803e814: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e818: f9b3 302e ldrsh.w r3, [r3, #46] ; 0x2e + 803e81c: b29b uxth r3, r3 + 803e81e: 4413 add r3, r2 + 803e820: b29b uxth r3, r3 + 803e822: 3b01 subs r3, #1 + 803e824: b29b uxth r3, r3 + 803e826: b21b sxth r3, r3 + 803e828: 867b strh r3, [r7, #50] ; 0x32 for(; coords_tmp.y1 < img_max_area.y2; coords_tmp.y1 += img_size_final.y, coords_tmp.y2 += img_size_final.y) { - 803e8be: e065 b.n 803e98c + 803e82a: e065 b.n 803e8f8 coords_tmp.x1 = img_max_area.x1 + img->offset.x; - 803e8c0: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 803e8c4: b29a uxth r2, r3 - 803e8c6: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e8ca: f9b3 3028 ldrsh.w r3, [r3, #40] ; 0x28 - 803e8ce: b29b uxth r3, r3 - 803e8d0: 4413 add r3, r2 - 803e8d2: b29b uxth r3, r3 - 803e8d4: b21b sxth r3, r3 - 803e8d6: 85bb strh r3, [r7, #44] ; 0x2c + 803e82c: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 803e830: b29a uxth r2, r3 + 803e832: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e836: f9b3 3028 ldrsh.w r3, [r3, #40] ; 0x28 + 803e83a: b29b uxth r3, r3 + 803e83c: 4413 add r3, r2 + 803e83e: b29b uxth r3, r3 + 803e840: b21b sxth r3, r3 + 803e842: 85bb strh r3, [r7, #44] ; 0x2c if(coords_tmp.x1 > img_max_area.x1) coords_tmp.x1 -= img->w; - 803e8d8: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c - 803e8dc: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 803e8e0: 429a cmp r2, r3 - 803e8e2: dd0b ble.n 803e8fc - 803e8e4: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 803e8e8: b29a uxth r2, r3 - 803e8ea: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e8ee: f9b3 302c ldrsh.w r3, [r3, #44] ; 0x2c - 803e8f2: b29b uxth r3, r3 - 803e8f4: 1ad3 subs r3, r2, r3 - 803e8f6: b29b uxth r3, r3 - 803e8f8: b21b sxth r3, r3 - 803e8fa: 85bb strh r3, [r7, #44] ; 0x2c + 803e844: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c + 803e848: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 803e84c: 429a cmp r2, r3 + 803e84e: dd0b ble.n 803e868 + 803e850: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 803e854: b29a uxth r2, r3 + 803e856: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e85a: f9b3 302c ldrsh.w r3, [r3, #44] ; 0x2c + 803e85e: b29b uxth r3, r3 + 803e860: 1ad3 subs r3, r2, r3 + 803e862: b29b uxth r3, r3 + 803e864: b21b sxth r3, r3 + 803e866: 85bb strh r3, [r7, #44] ; 0x2c coords_tmp.x2 = coords_tmp.x1 + img->w - 1; - 803e8fc: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 803e900: b29a uxth r2, r3 - 803e902: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e906: f9b3 302c ldrsh.w r3, [r3, #44] ; 0x2c - 803e90a: b29b uxth r3, r3 - 803e90c: 4413 add r3, r2 - 803e90e: b29b uxth r3, r3 - 803e910: 3b01 subs r3, #1 - 803e912: b29b uxth r3, r3 - 803e914: b21b sxth r3, r3 - 803e916: 863b strh r3, [r7, #48] ; 0x30 + 803e868: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 803e86c: b29a uxth r2, r3 + 803e86e: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e872: f9b3 302c ldrsh.w r3, [r3, #44] ; 0x2c + 803e876: b29b uxth r3, r3 + 803e878: 4413 add r3, r2 + 803e87a: b29b uxth r3, r3 + 803e87c: 3b01 subs r3, #1 + 803e87e: b29b uxth r3, r3 + 803e880: b21b sxth r3, r3 + 803e882: 863b strh r3, [r7, #48] ; 0x30 for(; coords_tmp.x1 < img_max_area.x2; coords_tmp.x1 += img_size_final.x, coords_tmp.x2 += img_size_final.x) { - 803e918: e01e b.n 803e958 + 803e884: e01e b.n 803e8c4 lv_draw_img(draw_ctx, &img_dsc, &coords_tmp, img->src); - 803e91a: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e91e: 6a5b ldr r3, [r3, #36] ; 0x24 - 803e920: f107 022c add.w r2, r7, #44 ; 0x2c - 803e924: f107 013c add.w r1, r7, #60 ; 0x3c - 803e928: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 803e92c: f7d3 f8dc bl 8011ae8 + 803e886: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e88a: 6a5b ldr r3, [r3, #36] ; 0x24 + 803e88c: f107 022c add.w r2, r7, #44 ; 0x2c + 803e890: f107 013c add.w r1, r7, #60 ; 0x3c + 803e894: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 803e898: f7d3 f8dc bl 8011a54 for(; coords_tmp.x1 < img_max_area.x2; coords_tmp.x1 += img_size_final.x, coords_tmp.x2 += img_size_final.x) { - 803e930: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 803e934: b29a uxth r2, r3 - 803e936: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 - 803e93a: b29b uxth r3, r3 - 803e93c: 4413 add r3, r2 - 803e93e: b29b uxth r3, r3 - 803e940: b21b sxth r3, r3 - 803e942: 85bb strh r3, [r7, #44] ; 0x2c - 803e944: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 803e948: b29a uxth r2, r3 - 803e94a: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 - 803e94e: b29b uxth r3, r3 - 803e950: 4413 add r3, r2 - 803e952: b29b uxth r3, r3 - 803e954: b21b sxth r3, r3 - 803e956: 863b strh r3, [r7, #48] ; 0x30 - 803e958: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c - 803e95c: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c - 803e960: 429a cmp r2, r3 - 803e962: dbda blt.n 803e91a + 803e89c: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 803e8a0: b29a uxth r2, r3 + 803e8a2: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 + 803e8a6: b29b uxth r3, r3 + 803e8a8: 4413 add r3, r2 + 803e8aa: b29b uxth r3, r3 + 803e8ac: b21b sxth r3, r3 + 803e8ae: 85bb strh r3, [r7, #44] ; 0x2c + 803e8b0: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 803e8b4: b29a uxth r2, r3 + 803e8b6: f9b7 3054 ldrsh.w r3, [r7, #84] ; 0x54 + 803e8ba: b29b uxth r3, r3 + 803e8bc: 4413 add r3, r2 + 803e8be: b29b uxth r3, r3 + 803e8c0: b21b sxth r3, r3 + 803e8c2: 863b strh r3, [r7, #48] ; 0x30 + 803e8c4: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c + 803e8c8: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c + 803e8cc: 429a cmp r2, r3 + 803e8ce: dbda blt.n 803e886 for(; coords_tmp.y1 < img_max_area.y2; coords_tmp.y1 += img_size_final.y, coords_tmp.y2 += img_size_final.y) { - 803e964: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 803e968: b29a uxth r2, r3 - 803e96a: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 803e96e: b29b uxth r3, r3 - 803e970: 4413 add r3, r2 - 803e972: b29b uxth r3, r3 - 803e974: b21b sxth r3, r3 - 803e976: 85fb strh r3, [r7, #46] ; 0x2e - 803e978: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 803e97c: b29a uxth r2, r3 - 803e97e: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 803e982: b29b uxth r3, r3 - 803e984: 4413 add r3, r2 - 803e986: b29b uxth r3, r3 - 803e988: b21b sxth r3, r3 - 803e98a: 867b strh r3, [r7, #50] ; 0x32 - 803e98c: f9b7 202e ldrsh.w r2, [r7, #46] ; 0x2e - 803e990: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e - 803e994: 429a cmp r2, r3 - 803e996: db93 blt.n 803e8c0 + 803e8d0: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 803e8d4: b29a uxth r2, r3 + 803e8d6: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 803e8da: b29b uxth r3, r3 + 803e8dc: 4413 add r3, r2 + 803e8de: b29b uxth r3, r3 + 803e8e0: b21b sxth r3, r3 + 803e8e2: 85fb strh r3, [r7, #46] ; 0x2e + 803e8e4: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 803e8e8: b29a uxth r2, r3 + 803e8ea: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 803e8ee: b29b uxth r3, r3 + 803e8f0: 4413 add r3, r2 + 803e8f2: b29b uxth r3, r3 + 803e8f4: b21b sxth r3, r3 + 803e8f6: 867b strh r3, [r7, #50] ; 0x32 + 803e8f8: f9b7 202e ldrsh.w r2, [r7, #46] ; 0x2e + 803e8fc: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e + 803e900: 429a cmp r2, r3 + 803e902: db93 blt.n 803e82c } } draw_ctx->clip_area = clip_area_ori; - 803e998: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 - 803e99c: f8d7 208c ldr.w r2, [r7, #140] ; 0x8c - 803e9a0: 609a str r2, [r3, #8] + 803e904: f8d7 3090 ldr.w r3, [r7, #144] ; 0x90 + 803e908: f8d7 208c ldr.w r2, [r7, #140] ; 0x8c + 803e90c: 609a str r2, [r3, #8] if(img->src_type == LV_IMG_SRC_FILE || img->src_type == LV_IMG_SRC_VARIABLE) { - 803e9a2: e037 b.n 803ea14 + 803e90e: e037 b.n 803e980 } else if(img->src_type == LV_IMG_SRC_SYMBOL) { - 803e9a4: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e9a8: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 - 803e9ac: f003 0303 and.w r3, r3, #3 - 803e9b0: b2db uxtb r3, r3 - 803e9b2: 2b02 cmp r3, #2 - 803e9b4: d11c bne.n 803e9f0 + 803e910: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e914: f893 3038 ldrb.w r3, [r3, #56] ; 0x38 + 803e918: f003 0303 and.w r3, r3, #3 + 803e91c: b2db uxtb r3, r3 + 803e91e: 2b02 cmp r3, #2 + 803e920: d11c bne.n 803e95c lv_draw_label_dsc_t label_dsc; lv_draw_label_dsc_init(&label_dsc); - 803e9b6: f107 030c add.w r3, r7, #12 - 803e9ba: 4618 mov r0, r3 - 803e9bc: f7d3 fbe6 bl 801218c + 803e922: f107 030c add.w r3, r7, #12 + 803e926: 4618 mov r0, r3 + 803e928: f7d3 fbe6 bl 80120f8 lv_obj_init_draw_label_dsc(obj, LV_PART_MAIN, &label_dsc); - 803e9c0: f107 030c add.w r3, r7, #12 - 803e9c4: 461a mov r2, r3 - 803e9c6: 2100 movs r1, #0 - 803e9c8: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 - 803e9cc: f7c9 ffe9 bl 80089a2 + 803e92c: f107 030c add.w r3, r7, #12 + 803e930: 461a mov r2, r3 + 803e932: 2100 movs r1, #0 + 803e934: f8d7 00b0 ldr.w r0, [r7, #176] ; 0xb0 + 803e938: f7c9 fffd bl 8008936 lv_draw_label(draw_ctx, &label_dsc, &obj->coords, img->src, NULL); - 803e9d0: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803e9d4: f103 0214 add.w r2, r3, #20 - 803e9d8: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 803e9dc: 6a5b ldr r3, [r3, #36] ; 0x24 - 803e9de: f107 010c add.w r1, r7, #12 - 803e9e2: 2000 movs r0, #0 - 803e9e4: 9000 str r0, [sp, #0] - 803e9e6: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 803e9ea: f7d3 fbfb bl 80121e4 - 803e9ee: e011 b.n 803ea14 + 803e93c: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803e940: f103 0214 add.w r2, r3, #20 + 803e944: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 803e948: 6a5b ldr r3, [r3, #36] ; 0x24 + 803e94a: f107 010c add.w r1, r7, #12 + 803e94e: 2000 movs r0, #0 + 803e950: 9000 str r0, [sp, #0] + 803e952: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 803e956: f7d3 fbfb bl 8012150 + 803e95a: e011 b.n 803e980 } else { /*Trigger the error handler of image draw*/ LV_LOG_WARN("draw_img: image source type is unknown"); lv_draw_img(draw_ctx, NULL, &obj->coords, NULL); - 803e9f0: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 - 803e9f4: f103 0214 add.w r2, r3, #20 - 803e9f8: 2300 movs r3, #0 - 803e9fa: 2100 movs r1, #0 - 803e9fc: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 - 803ea00: f7d3 f872 bl 8011ae8 - 803ea04: e006 b.n 803ea14 + 803e95c: f8d7 30b0 ldr.w r3, [r7, #176] ; 0xb0 + 803e960: f103 0214 add.w r2, r3, #20 + 803e964: 2300 movs r3, #0 + 803e966: 2100 movs r1, #0 + 803e968: f8d7 0090 ldr.w r0, [r7, #144] ; 0x90 + 803e96c: f7d3 f872 bl 8011a54 + 803e970: e006 b.n 803e980 if(info->res == LV_COVER_RES_MASKED) return; - 803ea06: bf00 nop - 803ea08: e004 b.n 803ea14 + 803e972: bf00 nop + 803e974: e004 b.n 803e980 if(res != LV_RES_OK) return; - 803ea0a: bf00 nop - 803ea0c: e002 b.n 803ea14 + 803e976: bf00 nop + 803e978: e002 b.n 803e980 if(img->h == 0 || img->w == 0) return; - 803ea0e: bf00 nop - 803ea10: e000 b.n 803ea14 + 803e97a: bf00 nop + 803e97c: e000 b.n 803e980 if(zoom_final == 0) return; - 803ea12: bf00 nop + 803e97e: bf00 nop } } } } - 803ea14: 37b8 adds r7, #184 ; 0xb8 - 803ea16: 46bd mov sp, r7 - 803ea18: bdb0 pop {r4, r5, r7, pc} - 803ea1a: bf00 nop + 803e980: 37b8 adds r7, #184 ; 0xb8 + 803e982: 46bd mov sp, r7 + 803e984: bdb0 pop {r4, r5, r7, pc} + 803e986: bf00 nop -0803ea1c : +0803e988 : { - 803ea1c: b480 push {r7} - 803ea1e: b083 sub sp, #12 - 803ea20: af00 add r7, sp, #0 - 803ea22: 6078 str r0, [r7, #4] + 803e988: b480 push {r7} + 803e98a: b083 sub sp, #12 + 803e98c: af00 add r7, sp, #0 + 803e98e: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 803ea24: 687b ldr r3, [r7, #4] - 803ea26: f9b3 3004 ldrsh.w r3, [r3, #4] - 803ea2a: b29a uxth r2, r3 - 803ea2c: 687b ldr r3, [r7, #4] - 803ea2e: f9b3 3000 ldrsh.w r3, [r3] - 803ea32: b29b uxth r3, r3 - 803ea34: 1ad3 subs r3, r2, r3 - 803ea36: b29b uxth r3, r3 - 803ea38: 3301 adds r3, #1 - 803ea3a: b29b uxth r3, r3 - 803ea3c: b21b sxth r3, r3 + 803e990: 687b ldr r3, [r7, #4] + 803e992: f9b3 3004 ldrsh.w r3, [r3, #4] + 803e996: b29a uxth r2, r3 + 803e998: 687b ldr r3, [r7, #4] + 803e99a: f9b3 3000 ldrsh.w r3, [r3] + 803e99e: b29b uxth r3, r3 + 803e9a0: 1ad3 subs r3, r2, r3 + 803e9a2: b29b uxth r3, r3 + 803e9a4: 3301 adds r3, #1 + 803e9a6: b29b uxth r3, r3 + 803e9a8: b21b sxth r3, r3 } - 803ea3e: 4618 mov r0, r3 - 803ea40: 370c adds r7, #12 - 803ea42: 46bd mov sp, r7 - 803ea44: bc80 pop {r7} - 803ea46: 4770 bx lr + 803e9aa: 4618 mov r0, r3 + 803e9ac: 370c adds r7, #12 + 803e9ae: 46bd mov sp, r7 + 803e9b0: bc80 pop {r7} + 803e9b2: 4770 bx lr -0803ea48 : +0803e9b4 : { - 803ea48: b480 push {r7} - 803ea4a: b083 sub sp, #12 - 803ea4c: af00 add r7, sp, #0 - 803ea4e: 6078 str r0, [r7, #4] + 803e9b4: b480 push {r7} + 803e9b6: b083 sub sp, #12 + 803e9b8: af00 add r7, sp, #0 + 803e9ba: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 803ea50: 687b ldr r3, [r7, #4] - 803ea52: f9b3 3006 ldrsh.w r3, [r3, #6] - 803ea56: b29a uxth r2, r3 - 803ea58: 687b ldr r3, [r7, #4] - 803ea5a: f9b3 3002 ldrsh.w r3, [r3, #2] - 803ea5e: b29b uxth r3, r3 - 803ea60: 1ad3 subs r3, r2, r3 - 803ea62: b29b uxth r3, r3 - 803ea64: 3301 adds r3, #1 - 803ea66: b29b uxth r3, r3 - 803ea68: b21b sxth r3, r3 + 803e9bc: 687b ldr r3, [r7, #4] + 803e9be: f9b3 3006 ldrsh.w r3, [r3, #6] + 803e9c2: b29a uxth r2, r3 + 803e9c4: 687b ldr r3, [r7, #4] + 803e9c6: f9b3 3002 ldrsh.w r3, [r3, #2] + 803e9ca: b29b uxth r3, r3 + 803e9cc: 1ad3 subs r3, r2, r3 + 803e9ce: b29b uxth r3, r3 + 803e9d0: 3301 adds r3, #1 + 803e9d2: b29b uxth r3, r3 + 803e9d4: b21b sxth r3, r3 } - 803ea6a: 4618 mov r0, r3 - 803ea6c: 370c adds r7, #12 - 803ea6e: 46bd mov sp, r7 - 803ea70: bc80 pop {r7} - 803ea72: 4770 bx lr + 803e9d6: 4618 mov r0, r3 + 803e9d8: 370c adds r7, #12 + 803e9da: 46bd mov sp, r7 + 803e9dc: bc80 pop {r7} + 803e9de: 4770 bx lr -0803ea74 : +0803e9e0 : { - 803ea74: b480 push {r7} - 803ea76: b083 sub sp, #12 - 803ea78: af00 add r7, sp, #0 - 803ea7a: 6078 str r0, [r7, #4] + 803e9e0: b480 push {r7} + 803e9e2: b083 sub sp, #12 + 803e9e4: af00 add r7, sp, #0 + 803e9e6: 6078 str r0, [r7, #4] return font_p->line_height; - 803ea7c: 687b ldr r3, [r7, #4] - 803ea7e: f9b3 3008 ldrsh.w r3, [r3, #8] + 803e9e8: 687b ldr r3, [r7, #4] + 803e9ea: f9b3 3008 ldrsh.w r3, [r3, #8] } - 803ea82: 4618 mov r0, r3 - 803ea84: 370c adds r7, #12 - 803ea86: 46bd mov sp, r7 - 803ea88: bc80 pop {r7} - 803ea8a: 4770 bx lr + 803e9ee: 4618 mov r0, r3 + 803e9f0: 370c adds r7, #12 + 803e9f2: 46bd mov sp, r7 + 803e9f4: bc80 pop {r7} + 803e9f6: 4770 bx lr -0803ea8c : +0803e9f8 : { - 803ea8c: b480 push {r7} - 803ea8e: b083 sub sp, #12 - 803ea90: af00 add r7, sp, #0 - 803ea92: 6078 str r0, [r7, #4] - 803ea94: 6039 str r1, [r7, #0] + 803e9f8: b480 push {r7} + 803e9fa: b083 sub sp, #12 + 803e9fc: af00 add r7, sp, #0 + 803e9fe: 6078 str r0, [r7, #4] + 803ea00: 6039 str r1, [r7, #0] a->var = var; - 803ea96: 687b ldr r3, [r7, #4] - 803ea98: 683a ldr r2, [r7, #0] - 803ea9a: 601a str r2, [r3, #0] + 803ea02: 687b ldr r3, [r7, #4] + 803ea04: 683a ldr r2, [r7, #0] + 803ea06: 601a str r2, [r3, #0] } - 803ea9c: bf00 nop - 803ea9e: 370c adds r7, #12 - 803eaa0: 46bd mov sp, r7 - 803eaa2: bc80 pop {r7} - 803eaa4: 4770 bx lr + 803ea08: bf00 nop + 803ea0a: 370c adds r7, #12 + 803ea0c: 46bd mov sp, r7 + 803ea0e: bc80 pop {r7} + 803ea10: 4770 bx lr -0803eaa6 : +0803ea12 : { - 803eaa6: b480 push {r7} - 803eaa8: b083 sub sp, #12 - 803eaaa: af00 add r7, sp, #0 - 803eaac: 6078 str r0, [r7, #4] - 803eaae: 6039 str r1, [r7, #0] + 803ea12: b480 push {r7} + 803ea14: b083 sub sp, #12 + 803ea16: af00 add r7, sp, #0 + 803ea18: 6078 str r0, [r7, #4] + 803ea1a: 6039 str r1, [r7, #0] a->exec_cb = exec_cb; - 803eab0: 687b ldr r3, [r7, #4] - 803eab2: 683a ldr r2, [r7, #0] - 803eab4: 605a str r2, [r3, #4] + 803ea1c: 687b ldr r3, [r7, #4] + 803ea1e: 683a ldr r2, [r7, #0] + 803ea20: 605a str r2, [r3, #4] } - 803eab6: bf00 nop - 803eab8: 370c adds r7, #12 - 803eaba: 46bd mov sp, r7 - 803eabc: bc80 pop {r7} - 803eabe: 4770 bx lr + 803ea22: bf00 nop + 803ea24: 370c adds r7, #12 + 803ea26: 46bd mov sp, r7 + 803ea28: bc80 pop {r7} + 803ea2a: 4770 bx lr -0803eac0 : +0803ea2c : { - 803eac0: b480 push {r7} - 803eac2: b083 sub sp, #12 - 803eac4: af00 add r7, sp, #0 - 803eac6: 6078 str r0, [r7, #4] - 803eac8: 6039 str r1, [r7, #0] + 803ea2c: b480 push {r7} + 803ea2e: b083 sub sp, #12 + 803ea30: af00 add r7, sp, #0 + 803ea32: 6078 str r0, [r7, #4] + 803ea34: 6039 str r1, [r7, #0] a->time = duration; - 803eaca: 683a ldr r2, [r7, #0] - 803eacc: 687b ldr r3, [r7, #4] - 803eace: 629a str r2, [r3, #40] ; 0x28 + 803ea36: 683a ldr r2, [r7, #0] + 803ea38: 687b ldr r3, [r7, #4] + 803ea3a: 629a str r2, [r3, #40] ; 0x28 } - 803ead0: bf00 nop - 803ead2: 370c adds r7, #12 - 803ead4: 46bd mov sp, r7 - 803ead6: bc80 pop {r7} - 803ead8: 4770 bx lr + 803ea3c: bf00 nop + 803ea3e: 370c adds r7, #12 + 803ea40: 46bd mov sp, r7 + 803ea42: bc80 pop {r7} + 803ea44: 4770 bx lr -0803eada : +0803ea46 : { - 803eada: b480 push {r7} - 803eadc: b085 sub sp, #20 - 803eade: af00 add r7, sp, #0 - 803eae0: 60f8 str r0, [r7, #12] - 803eae2: 60b9 str r1, [r7, #8] - 803eae4: 607a str r2, [r7, #4] + 803ea46: b480 push {r7} + 803ea48: b085 sub sp, #20 + 803ea4a: af00 add r7, sp, #0 + 803ea4c: 60f8 str r0, [r7, #12] + 803ea4e: 60b9 str r1, [r7, #8] + 803ea50: 607a str r2, [r7, #4] a->start_value = start; - 803eae6: 68fb ldr r3, [r7, #12] - 803eae8: 68ba ldr r2, [r7, #8] - 803eaea: 61da str r2, [r3, #28] + 803ea52: 68fb ldr r3, [r7, #12] + 803ea54: 68ba ldr r2, [r7, #8] + 803ea56: 61da str r2, [r3, #28] a->current_value = start; - 803eaec: 68fb ldr r3, [r7, #12] - 803eaee: 68ba ldr r2, [r7, #8] - 803eaf0: 621a str r2, [r3, #32] + 803ea58: 68fb ldr r3, [r7, #12] + 803ea5a: 68ba ldr r2, [r7, #8] + 803ea5c: 621a str r2, [r3, #32] a->end_value = end; - 803eaf2: 68fb ldr r3, [r7, #12] - 803eaf4: 687a ldr r2, [r7, #4] - 803eaf6: 625a str r2, [r3, #36] ; 0x24 + 803ea5e: 68fb ldr r3, [r7, #12] + 803ea60: 687a ldr r2, [r7, #4] + 803ea62: 625a str r2, [r3, #36] ; 0x24 } - 803eaf8: bf00 nop - 803eafa: 3714 adds r7, #20 - 803eafc: 46bd mov sp, r7 - 803eafe: bc80 pop {r7} - 803eb00: 4770 bx lr + 803ea64: bf00 nop + 803ea66: 3714 adds r7, #20 + 803ea68: 46bd mov sp, r7 + 803ea6a: bc80 pop {r7} + 803ea6c: 4770 bx lr -0803eb02 : +0803ea6e : * Make the animation to play back to when the forward direction is ready * @param a pointer to an initialized `lv_anim_t` variable * @param time the duration of the playback animation in milliseconds. 0: disable playback */ static inline void lv_anim_set_playback_time(lv_anim_t * a, uint32_t time) { - 803eb02: b480 push {r7} - 803eb04: b083 sub sp, #12 - 803eb06: af00 add r7, sp, #0 - 803eb08: 6078 str r0, [r7, #4] - 803eb0a: 6039 str r1, [r7, #0] + 803ea6e: b480 push {r7} + 803ea70: b083 sub sp, #12 + 803ea72: af00 add r7, sp, #0 + 803ea74: 6078 str r0, [r7, #4] + 803ea76: 6039 str r1, [r7, #0] a->playback_time = time; - 803eb0c: 687b ldr r3, [r7, #4] - 803eb0e: 683a ldr r2, [r7, #0] - 803eb10: 635a str r2, [r3, #52] ; 0x34 + 803ea78: 687b ldr r3, [r7, #4] + 803ea7a: 683a ldr r2, [r7, #0] + 803ea7c: 635a str r2, [r3, #52] ; 0x34 } - 803eb12: bf00 nop - 803eb14: 370c adds r7, #12 - 803eb16: 46bd mov sp, r7 - 803eb18: bc80 pop {r7} - 803eb1a: 4770 bx lr + 803ea7e: bf00 nop + 803ea80: 370c adds r7, #12 + 803ea82: 46bd mov sp, r7 + 803ea84: bc80 pop {r7} + 803ea86: 4770 bx lr -0803eb1c : +0803ea88 : * Make the animation to play back to when the forward direction is ready * @param a pointer to an initialized `lv_anim_t` variable * @param delay delay in milliseconds before starting the playback animation. */ static inline void lv_anim_set_playback_delay(lv_anim_t * a, uint32_t delay) { - 803eb1c: b480 push {r7} - 803eb1e: b083 sub sp, #12 - 803eb20: af00 add r7, sp, #0 - 803eb22: 6078 str r0, [r7, #4] - 803eb24: 6039 str r1, [r7, #0] + 803ea88: b480 push {r7} + 803ea8a: b083 sub sp, #12 + 803ea8c: af00 add r7, sp, #0 + 803ea8e: 6078 str r0, [r7, #4] + 803ea90: 6039 str r1, [r7, #0] a->playback_delay = delay; - 803eb26: 687b ldr r3, [r7, #4] - 803eb28: 683a ldr r2, [r7, #0] - 803eb2a: 631a str r2, [r3, #48] ; 0x30 + 803ea92: 687b ldr r3, [r7, #4] + 803ea94: 683a ldr r2, [r7, #0] + 803ea96: 631a str r2, [r3, #48] ; 0x30 } - 803eb2c: bf00 nop - 803eb2e: 370c adds r7, #12 - 803eb30: 46bd mov sp, r7 - 803eb32: bc80 pop {r7} - 803eb34: 4770 bx lr + 803ea98: bf00 nop + 803ea9a: 370c adds r7, #12 + 803ea9c: 46bd mov sp, r7 + 803ea9e: bc80 pop {r7} + 803eaa0: 4770 bx lr -0803eb36 : +0803eaa2 : * Make the animation repeat itself. * @param a pointer to an initialized `lv_anim_t` variable * @param cnt repeat count or `LV_ANIM_REPEAT_INFINITE` for infinite repetition. 0: to disable repetition. */ static inline void lv_anim_set_repeat_count(lv_anim_t * a, uint16_t cnt) { - 803eb36: b480 push {r7} - 803eb38: b083 sub sp, #12 - 803eb3a: af00 add r7, sp, #0 - 803eb3c: 6078 str r0, [r7, #4] - 803eb3e: 460b mov r3, r1 - 803eb40: 807b strh r3, [r7, #2] + 803eaa2: b480 push {r7} + 803eaa4: b083 sub sp, #12 + 803eaa6: af00 add r7, sp, #0 + 803eaa8: 6078 str r0, [r7, #4] + 803eaaa: 460b mov r3, r1 + 803eaac: 807b strh r3, [r7, #2] a->repeat_cnt = cnt; - 803eb42: 687b ldr r3, [r7, #4] - 803eb44: 887a ldrh r2, [r7, #2] - 803eb46: 879a strh r2, [r3, #60] ; 0x3c + 803eaae: 687b ldr r3, [r7, #4] + 803eab0: 887a ldrh r2, [r7, #2] + 803eab2: 879a strh r2, [r3, #60] ; 0x3c } - 803eb48: bf00 nop - 803eb4a: 370c adds r7, #12 - 803eb4c: 46bd mov sp, r7 - 803eb4e: bc80 pop {r7} - 803eb50: 4770 bx lr + 803eab4: bf00 nop + 803eab6: 370c adds r7, #12 + 803eab8: 46bd mov sp, r7 + 803eaba: bc80 pop {r7} + 803eabc: 4770 bx lr -0803eb52 : +0803eabe : * Set a delay before repeating the animation. * @param a pointer to an initialized `lv_anim_t` variable * @param delay delay in milliseconds before repeating the animation. */ static inline void lv_anim_set_repeat_delay(lv_anim_t * a, uint32_t delay) { - 803eb52: b480 push {r7} - 803eb54: b083 sub sp, #12 - 803eb56: af00 add r7, sp, #0 - 803eb58: 6078 str r0, [r7, #4] - 803eb5a: 6039 str r1, [r7, #0] + 803eabe: b480 push {r7} + 803eac0: b083 sub sp, #12 + 803eac2: af00 add r7, sp, #0 + 803eac4: 6078 str r0, [r7, #4] + 803eac6: 6039 str r1, [r7, #0] a->repeat_delay = delay; - 803eb5c: 687b ldr r3, [r7, #4] - 803eb5e: 683a ldr r2, [r7, #0] - 803eb60: 639a str r2, [r3, #56] ; 0x38 + 803eac8: 687b ldr r3, [r7, #4] + 803eaca: 683a ldr r2, [r7, #0] + 803eacc: 639a str r2, [r3, #56] ; 0x38 } - 803eb62: bf00 nop - 803eb64: 370c adds r7, #12 - 803eb66: 46bd mov sp, r7 - 803eb68: bc80 pop {r7} - 803eb6a: 4770 bx lr + 803eace: bf00 nop + 803ead0: 370c adds r7, #12 + 803ead2: 46bd mov sp, r7 + 803ead4: bc80 pop {r7} + 803ead6: 4770 bx lr -0803eb6c : +0803ead8 : * @param align For LV_TEXT_ALIGN_AUTO give LV_TEXT_ALIGN_LEFT else leave unchanged, write back the calculated align here * @param base_dir Unused * @param txt Unused */ static inline void lv_bidi_calculate_align(lv_text_align_t * align, lv_base_dir_t * base_dir, const char * txt) { - 803eb6c: b480 push {r7} - 803eb6e: b085 sub sp, #20 - 803eb70: af00 add r7, sp, #0 - 803eb72: 60f8 str r0, [r7, #12] - 803eb74: 60b9 str r1, [r7, #8] - 803eb76: 607a str r2, [r7, #4] + 803ead8: b480 push {r7} + 803eada: b085 sub sp, #20 + 803eadc: af00 add r7, sp, #0 + 803eade: 60f8 str r0, [r7, #12] + 803eae0: 60b9 str r1, [r7, #8] + 803eae2: 607a str r2, [r7, #4] LV_UNUSED(txt); LV_UNUSED(base_dir); if(*align == LV_TEXT_ALIGN_AUTO) * align = LV_TEXT_ALIGN_LEFT; - 803eb78: 68fb ldr r3, [r7, #12] - 803eb7a: 781b ldrb r3, [r3, #0] - 803eb7c: 2b00 cmp r3, #0 - 803eb7e: d102 bne.n 803eb86 - 803eb80: 68fb ldr r3, [r7, #12] - 803eb82: 2201 movs r2, #1 - 803eb84: 701a strb r2, [r3, #0] + 803eae4: 68fb ldr r3, [r7, #12] + 803eae6: 781b ldrb r3, [r3, #0] + 803eae8: 2b00 cmp r3, #0 + 803eaea: d102 bne.n 803eaf2 + 803eaec: 68fb ldr r3, [r7, #12] + 803eaee: 2201 movs r2, #1 + 803eaf0: 701a strb r2, [r3, #0] } - 803eb86: bf00 nop - 803eb88: 3714 adds r7, #20 - 803eb8a: 46bd mov sp, r7 - 803eb8c: bc80 pop {r7} - 803eb8e: 4770 bx lr + 803eaf2: bf00 nop + 803eaf4: 3714 adds r7, #20 + 803eaf6: 46bd mov sp, r7 + 803eaf8: bc80 pop {r7} + 803eafa: 4770 bx lr -0803eb90 : +0803eafc : +{ + 803eafc: b580 push {r7, lr} + 803eafe: b084 sub sp, #16 + 803eb00: af00 add r7, sp, #0 + 803eb02: 6078 str r0, [r7, #4] + 803eb04: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_WIDTH); + 803eb06: f241 0201 movw r2, #4097 ; 0x1001 + 803eb0a: 6839 ldr r1, [r7, #0] + 803eb0c: 6878 ldr r0, [r7, #4] + 803eb0e: f7cf f919 bl 800dd44 + 803eb12: 4603 mov r3, r0 + 803eb14: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 803eb16: 68fb ldr r3, [r7, #12] + 803eb18: b21b sxth r3, r3 +} + 803eb1a: 4618 mov r0, r3 + 803eb1c: 3710 adds r7, #16 + 803eb1e: 46bd mov sp, r7 + 803eb20: bd80 pop {r7, pc} + +0803eb22 : +{ + 803eb22: b580 push {r7, lr} + 803eb24: b084 sub sp, #16 + 803eb26: af00 add r7, sp, #0 + 803eb28: 6078 str r0, [r7, #4] + 803eb2a: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); + 803eb2c: f641 0210 movw r2, #6160 ; 0x1810 + 803eb30: 6839 ldr r1, [r7, #0] + 803eb32: 6878 ldr r0, [r7, #4] + 803eb34: f7cf f906 bl 800dd44 + 803eb38: 4603 mov r3, r0 + 803eb3a: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 803eb3c: 68fb ldr r3, [r7, #12] + 803eb3e: b21b sxth r3, r3 +} + 803eb40: 4618 mov r0, r3 + 803eb42: 3710 adds r7, #16 + 803eb44: 46bd mov sp, r7 + 803eb46: bd80 pop {r7, pc} + +0803eb48 : +{ + 803eb48: b580 push {r7, lr} + 803eb4a: b084 sub sp, #16 + 803eb4c: af00 add r7, sp, #0 + 803eb4e: 6078 str r0, [r7, #4] + 803eb50: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); + 803eb52: f641 0212 movw r2, #6162 ; 0x1812 + 803eb56: 6839 ldr r1, [r7, #0] + 803eb58: 6878 ldr r0, [r7, #4] + 803eb5a: f7cf f8f3 bl 800dd44 + 803eb5e: 4603 mov r3, r0 + 803eb60: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 803eb62: 68fb ldr r3, [r7, #12] + 803eb64: b21b sxth r3, r3 +} + 803eb66: 4618 mov r0, r3 + 803eb68: 3710 adds r7, #16 + 803eb6a: 46bd mov sp, r7 + 803eb6c: bd80 pop {r7, pc} + +0803eb6e : +{ + 803eb6e: b580 push {r7, lr} + 803eb70: b084 sub sp, #16 + 803eb72: af00 add r7, sp, #0 + 803eb74: 6078 str r0, [r7, #4] + 803eb76: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_COLOR); + 803eb78: 2220 movs r2, #32 + 803eb7a: 6839 ldr r1, [r7, #0] + 803eb7c: 6878 ldr r0, [r7, #4] + 803eb7e: f7cf f8e1 bl 800dd44 + 803eb82: 4603 mov r3, r0 + 803eb84: 60fb str r3, [r7, #12] + return v.color; + 803eb86: 89bb ldrh r3, [r7, #12] +} + 803eb88: 4618 mov r0, r3 + 803eb8a: 3710 adds r7, #16 + 803eb8c: 46bd mov sp, r7 + 803eb8e: bd80 pop {r7, pc} + +0803eb90 : { 803eb90: b580 push {r7, lr} 803eb92: b084 sub sp, #16 803eb94: af00 add r7, sp, #0 803eb96: 6078 str r0, [r7, #4] 803eb98: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_WIDTH); - 803eb9a: f241 0201 movw r2, #4097 ; 0x1001 + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_COLOR_FILTERED); + 803eb9a: f244 4257 movw r2, #17495 ; 0x4457 803eb9e: 6839 ldr r1, [r7, #0] 803eba0: 6878 ldr r0, [r7, #4] - 803eba2: f7cf f905 bl 800ddb0 + 803eba2: f7cf f8cf bl 800dd44 803eba6: 4603 mov r3, r0 803eba8: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 803ebaa: 68fb ldr r3, [r7, #12] - 803ebac: b21b sxth r3, r3 -} - 803ebae: 4618 mov r0, r3 - 803ebb0: 3710 adds r7, #16 - 803ebb2: 46bd mov sp, r7 - 803ebb4: bd80 pop {r7, pc} - -0803ebb6 : -{ - 803ebb6: b580 push {r7, lr} - 803ebb8: b084 sub sp, #16 - 803ebba: af00 add r7, sp, #0 - 803ebbc: 6078 str r0, [r7, #4] - 803ebbe: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 803ebc0: f641 0210 movw r2, #6160 ; 0x1810 - 803ebc4: 6839 ldr r1, [r7, #0] - 803ebc6: 6878 ldr r0, [r7, #4] - 803ebc8: f7cf f8f2 bl 800ddb0 - 803ebcc: 4603 mov r3, r0 - 803ebce: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 803ebd0: 68fb ldr r3, [r7, #12] - 803ebd2: b21b sxth r3, r3 -} - 803ebd4: 4618 mov r0, r3 - 803ebd6: 3710 adds r7, #16 - 803ebd8: 46bd mov sp, r7 - 803ebda: bd80 pop {r7, pc} - -0803ebdc : -{ - 803ebdc: b580 push {r7, lr} - 803ebde: b084 sub sp, #16 - 803ebe0: af00 add r7, sp, #0 - 803ebe2: 6078 str r0, [r7, #4] - 803ebe4: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 803ebe6: f641 0212 movw r2, #6162 ; 0x1812 - 803ebea: 6839 ldr r1, [r7, #0] - 803ebec: 6878 ldr r0, [r7, #4] - 803ebee: f7cf f8df bl 800ddb0 - 803ebf2: 4603 mov r3, r0 - 803ebf4: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 803ebf6: 68fb ldr r3, [r7, #12] - 803ebf8: b21b sxth r3, r3 -} - 803ebfa: 4618 mov r0, r3 - 803ebfc: 3710 adds r7, #16 - 803ebfe: 46bd mov sp, r7 - 803ec00: bd80 pop {r7, pc} - -0803ec02 : -{ - 803ec02: b580 push {r7, lr} - 803ec04: b084 sub sp, #16 - 803ec06: af00 add r7, sp, #0 - 803ec08: 6078 str r0, [r7, #4] - 803ec0a: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_COLOR); - 803ec0c: 2220 movs r2, #32 - 803ec0e: 6839 ldr r1, [r7, #0] - 803ec10: 6878 ldr r0, [r7, #4] - 803ec12: f7cf f8cd bl 800ddb0 - 803ec16: 4603 mov r3, r0 - 803ec18: 60fb str r3, [r7, #12] return v.color; - 803ec1a: 89bb ldrh r3, [r7, #12] + 803ebaa: 89bb ldrh r3, [r7, #12] +} + 803ebac: 4618 mov r0, r3 + 803ebae: 3710 adds r7, #16 + 803ebb0: 46bd mov sp, r7 + 803ebb2: bd80 pop {r7, pc} + +0803ebb4 : +{ + 803ebb4: b580 push {r7, lr} + 803ebb6: b084 sub sp, #16 + 803ebb8: af00 add r7, sp, #0 + 803ebba: 6078 str r0, [r7, #4] + 803ebbc: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_FONT); + 803ebbe: f241 4259 movw r2, #5209 ; 0x1459 + 803ebc2: 6839 ldr r1, [r7, #0] + 803ebc4: 6878 ldr r0, [r7, #4] + 803ebc6: f7cf f8bd bl 800dd44 + 803ebca: 4603 mov r3, r0 + 803ebcc: 60fb str r3, [r7, #12] + return (const lv_font_t *)v.ptr; + 803ebce: 68fb ldr r3, [r7, #12] +} + 803ebd0: 4618 mov r0, r3 + 803ebd2: 3710 adds r7, #16 + 803ebd4: 46bd mov sp, r7 + 803ebd6: bd80 pop {r7, pc} + +0803ebd8 : +{ + 803ebd8: b580 push {r7, lr} + 803ebda: b084 sub sp, #16 + 803ebdc: af00 add r7, sp, #0 + 803ebde: 6078 str r0, [r7, #4] + 803ebe0: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LETTER_SPACE); + 803ebe2: f241 425a movw r2, #5210 ; 0x145a + 803ebe6: 6839 ldr r1, [r7, #0] + 803ebe8: 6878 ldr r0, [r7, #4] + 803ebea: f7cf f8ab bl 800dd44 + 803ebee: 4603 mov r3, r0 + 803ebf0: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 803ebf2: 68fb ldr r3, [r7, #12] + 803ebf4: b21b sxth r3, r3 +} + 803ebf6: 4618 mov r0, r3 + 803ebf8: 3710 adds r7, #16 + 803ebfa: 46bd mov sp, r7 + 803ebfc: bd80 pop {r7, pc} + +0803ebfe : +{ + 803ebfe: b580 push {r7, lr} + 803ec00: b084 sub sp, #16 + 803ec02: af00 add r7, sp, #0 + 803ec04: 6078 str r0, [r7, #4] + 803ec06: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LINE_SPACE); + 803ec08: f241 425b movw r2, #5211 ; 0x145b + 803ec0c: 6839 ldr r1, [r7, #0] + 803ec0e: 6878 ldr r0, [r7, #4] + 803ec10: f7cf f898 bl 800dd44 + 803ec14: 4603 mov r3, r0 + 803ec16: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 803ec18: 68fb ldr r3, [r7, #12] + 803ec1a: b21b sxth r3, r3 } 803ec1c: 4618 mov r0, r3 803ec1e: 3710 adds r7, #16 803ec20: 46bd mov sp, r7 803ec22: bd80 pop {r7, pc} -0803ec24 : +0803ec24 : { 803ec24: b580 push {r7, lr} 803ec26: b084 sub sp, #16 803ec28: af00 add r7, sp, #0 803ec2a: 6078 str r0, [r7, #4] 803ec2c: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_COLOR_FILTERED); - 803ec2e: f244 4257 movw r2, #17495 ; 0x4457 - 803ec32: 6839 ldr r1, [r7, #0] - 803ec34: 6878 ldr r0, [r7, #4] - 803ec36: f7cf f8bb bl 800ddb0 - 803ec3a: 4603 mov r3, r0 - 803ec3c: 60fb str r3, [r7, #12] - return v.color; - 803ec3e: 89bb ldrh r3, [r7, #12] -} - 803ec40: 4618 mov r0, r3 - 803ec42: 3710 adds r7, #16 - 803ec44: 46bd mov sp, r7 - 803ec46: bd80 pop {r7, pc} - -0803ec48 : -{ - 803ec48: b580 push {r7, lr} - 803ec4a: b084 sub sp, #16 - 803ec4c: af00 add r7, sp, #0 - 803ec4e: 6078 str r0, [r7, #4] - 803ec50: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_FONT); - 803ec52: f241 4259 movw r2, #5209 ; 0x1459 - 803ec56: 6839 ldr r1, [r7, #0] - 803ec58: 6878 ldr r0, [r7, #4] - 803ec5a: f7cf f8a9 bl 800ddb0 - 803ec5e: 4603 mov r3, r0 - 803ec60: 60fb str r3, [r7, #12] - return (const lv_font_t *)v.ptr; - 803ec62: 68fb ldr r3, [r7, #12] -} - 803ec64: 4618 mov r0, r3 - 803ec66: 3710 adds r7, #16 - 803ec68: 46bd mov sp, r7 - 803ec6a: bd80 pop {r7, pc} - -0803ec6c : -{ - 803ec6c: b580 push {r7, lr} - 803ec6e: b084 sub sp, #16 - 803ec70: af00 add r7, sp, #0 - 803ec72: 6078 str r0, [r7, #4] - 803ec74: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LETTER_SPACE); - 803ec76: f241 425a movw r2, #5210 ; 0x145a - 803ec7a: 6839 ldr r1, [r7, #0] - 803ec7c: 6878 ldr r0, [r7, #4] - 803ec7e: f7cf f897 bl 800ddb0 - 803ec82: 4603 mov r3, r0 - 803ec84: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 803ec86: 68fb ldr r3, [r7, #12] - 803ec88: b21b sxth r3, r3 -} - 803ec8a: 4618 mov r0, r3 - 803ec8c: 3710 adds r7, #16 - 803ec8e: 46bd mov sp, r7 - 803ec90: bd80 pop {r7, pc} - -0803ec92 : -{ - 803ec92: b580 push {r7, lr} - 803ec94: b084 sub sp, #16 - 803ec96: af00 add r7, sp, #0 - 803ec98: 6078 str r0, [r7, #4] - 803ec9a: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LINE_SPACE); - 803ec9c: f241 425b movw r2, #5211 ; 0x145b - 803eca0: 6839 ldr r1, [r7, #0] - 803eca2: 6878 ldr r0, [r7, #4] - 803eca4: f7cf f884 bl 800ddb0 - 803eca8: 4603 mov r3, r0 - 803ecaa: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 803ecac: 68fb ldr r3, [r7, #12] - 803ecae: b21b sxth r3, r3 -} - 803ecb0: 4618 mov r0, r3 - 803ecb2: 3710 adds r7, #16 - 803ecb4: 46bd mov sp, r7 - 803ecb6: bd80 pop {r7, pc} - -0803ecb8 : -{ - 803ecb8: b580 push {r7, lr} - 803ecba: b084 sub sp, #16 - 803ecbc: af00 add r7, sp, #0 - 803ecbe: 6078 str r0, [r7, #4] - 803ecc0: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ANIM_SPEED); - 803ecc2: 2266 movs r2, #102 ; 0x66 - 803ecc4: 6839 ldr r1, [r7, #0] - 803ecc6: 6878 ldr r0, [r7, #4] - 803ecc8: f7cf f872 bl 800ddb0 - 803eccc: 4603 mov r3, r0 - 803ecce: 60fb str r3, [r7, #12] + 803ec2e: 2266 movs r2, #102 ; 0x66 + 803ec30: 6839 ldr r1, [r7, #0] + 803ec32: 6878 ldr r0, [r7, #4] + 803ec34: f7cf f886 bl 800dd44 + 803ec38: 4603 mov r3, r0 + 803ec3a: 60fb str r3, [r7, #12] return (uint32_t)v.num; - 803ecd0: 68fb ldr r3, [r7, #12] + 803ec3c: 68fb ldr r3, [r7, #12] } - 803ecd2: 4618 mov r0, r3 - 803ecd4: 3710 adds r7, #16 - 803ecd6: 46bd mov sp, r7 - 803ecd8: bd80 pop {r7, pc} + 803ec3e: 4618 mov r0, r3 + 803ec40: 3710 adds r7, #16 + 803ec42: 46bd mov sp, r7 + 803ec44: bd80 pop {r7, pc} ... -0803ecdc : +0803ec48 : /********************** * GLOBAL FUNCTIONS **********************/ lv_obj_t * lv_label_create(lv_obj_t * parent) { - 803ecdc: b580 push {r7, lr} - 803ecde: b084 sub sp, #16 - 803ece0: af00 add r7, sp, #0 - 803ece2: 6078 str r0, [r7, #4] + 803ec48: b580 push {r7, lr} + 803ec4a: b084 sub sp, #16 + 803ec4c: af00 add r7, sp, #0 + 803ec4e: 6078 str r0, [r7, #4] LV_LOG_INFO("begin"); lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); - 803ece4: 6879 ldr r1, [r7, #4] - 803ece6: 4806 ldr r0, [pc, #24] ; (803ed00 ) - 803ece8: f7c8 feb3 bl 8007a52 - 803ecec: 60f8 str r0, [r7, #12] + 803ec50: 6879 ldr r1, [r7, #4] + 803ec52: 4806 ldr r0, [pc, #24] ; (803ec6c ) + 803ec54: f7c8 fec7 bl 80079e6 + 803ec58: 60f8 str r0, [r7, #12] lv_obj_class_init_obj(obj); - 803ecee: 68f8 ldr r0, [r7, #12] - 803ecf0: f7c8 ff61 bl 8007bb6 + 803ec5a: 68f8 ldr r0, [r7, #12] + 803ec5c: f7c8 ff75 bl 8007b4a return obj; - 803ecf4: 68fb ldr r3, [r7, #12] + 803ec60: 68fb ldr r3, [r7, #12] } - 803ecf6: 4618 mov r0, r3 - 803ecf8: 3710 adds r7, #16 - 803ecfa: 46bd mov sp, r7 - 803ecfc: bd80 pop {r7, pc} - 803ecfe: bf00 nop - 803ed00: 08070a8c .word 0x08070a8c + 803ec62: 4618 mov r0, r3 + 803ec64: 3710 adds r7, #16 + 803ec66: 46bd mov sp, r7 + 803ec68: bd80 pop {r7, pc} + 803ec6a: bf00 nop + 803ec6c: 080709e4 .word 0x080709e4 -0803ed04 : +0803ec70 : /*===================== * Setter functions *====================*/ void lv_label_set_text(lv_obj_t * obj, const char * text) { - 803ed04: b590 push {r4, r7, lr} - 803ed06: b085 sub sp, #20 - 803ed08: af00 add r7, sp, #0 - 803ed0a: 6078 str r0, [r7, #4] - 803ed0c: 6039 str r1, [r7, #0] + 803ec70: b590 push {r4, r7, lr} + 803ec72: b085 sub sp, #20 + 803ec74: af00 add r7, sp, #0 + 803ec76: 6078 str r0, [r7, #4] + 803ec78: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_label_t * label = (lv_label_t *)obj; - 803ed0e: 687b ldr r3, [r7, #4] - 803ed10: 60fb str r3, [r7, #12] + 803ec7a: 687b ldr r3, [r7, #4] + 803ec7c: 60fb str r3, [r7, #12] lv_obj_invalidate(obj); - 803ed12: 6878 ldr r0, [r7, #4] - 803ed14: f7cb fecd bl 800aab2 + 803ec7e: 6878 ldr r0, [r7, #4] + 803ec80: f7cb fee1 bl 800aa46 /*If text is NULL then just refresh with the current text*/ if(text == NULL) text = label->text; - 803ed18: 683b ldr r3, [r7, #0] - 803ed1a: 2b00 cmp r3, #0 - 803ed1c: d102 bne.n 803ed24 - 803ed1e: 68fb ldr r3, [r7, #12] - 803ed20: 6a5b ldr r3, [r3, #36] ; 0x24 - 803ed22: 603b str r3, [r7, #0] + 803ec84: 683b ldr r3, [r7, #0] + 803ec86: 2b00 cmp r3, #0 + 803ec88: d102 bne.n 803ec90 + 803ec8a: 68fb ldr r3, [r7, #12] + 803ec8c: 6a5b ldr r3, [r3, #36] ; 0x24 + 803ec8e: 603b str r3, [r7, #0] if(label->text == text && label->static_txt == 0) { - 803ed24: 68fb ldr r3, [r7, #12] - 803ed26: 6a5b ldr r3, [r3, #36] ; 0x24 - 803ed28: 683a ldr r2, [r7, #0] - 803ed2a: 429a cmp r2, r3 - 803ed2c: d121 bne.n 803ed72 - 803ed2e: 68fb ldr r3, [r7, #12] - 803ed30: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803ed34: f003 0308 and.w r3, r3, #8 - 803ed38: b2db uxtb r3, r3 - 803ed3a: 2b00 cmp r3, #0 - 803ed3c: d119 bne.n 803ed72 + 803ec90: 68fb ldr r3, [r7, #12] + 803ec92: 6a5b ldr r3, [r3, #36] ; 0x24 + 803ec94: 683a ldr r2, [r7, #0] + 803ec96: 429a cmp r2, r3 + 803ec98: d121 bne.n 803ecde + 803ec9a: 68fb ldr r3, [r7, #12] + 803ec9c: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803eca0: f003 0308 and.w r3, r3, #8 + 803eca4: b2db uxtb r3, r3 + 803eca6: 2b00 cmp r3, #0 + 803eca8: d119 bne.n 803ecde LV_ASSERT_MALLOC(label->text); if(label->text == NULL) return; _lv_txt_ap_proc(label->text, label->text); #else label->text = lv_mem_realloc(label->text, strlen(label->text) + 1); - 803ed3e: 68fb ldr r3, [r7, #12] - 803ed40: 6a5c ldr r4, [r3, #36] ; 0x24 - 803ed42: 68fb ldr r3, [r7, #12] - 803ed44: 6a5b ldr r3, [r3, #36] ; 0x24 - 803ed46: 4618 mov r0, r3 - 803ed48: f7c1 fa76 bl 8000238 - 803ed4c: 4603 mov r3, r0 - 803ed4e: 3301 adds r3, #1 - 803ed50: 4619 mov r1, r3 - 803ed52: 4620 mov r0, r4 - 803ed54: f7f3 fdde bl 8032914 - 803ed58: 4602 mov r2, r0 - 803ed5a: 68fb ldr r3, [r7, #12] - 803ed5c: 625a str r2, [r3, #36] ; 0x24 + 803ecaa: 68fb ldr r3, [r7, #12] + 803ecac: 6a5c ldr r4, [r3, #36] ; 0x24 + 803ecae: 68fb ldr r3, [r7, #12] + 803ecb0: 6a5b ldr r3, [r3, #36] ; 0x24 + 803ecb2: 4618 mov r0, r3 + 803ecb4: f7c1 fac0 bl 8000238 + 803ecb8: 4603 mov r3, r0 + 803ecba: 3301 adds r3, #1 + 803ecbc: 4619 mov r1, r3 + 803ecbe: 4620 mov r0, r4 + 803ecc0: f7f3 fdde bl 8032880 + 803ecc4: 4602 mov r2, r0 + 803ecc6: 68fb ldr r3, [r7, #12] + 803ecc8: 625a str r2, [r3, #36] ; 0x24 #endif LV_ASSERT_MALLOC(label->text); - 803ed5e: 68fb ldr r3, [r7, #12] - 803ed60: 6a5b ldr r3, [r3, #36] ; 0x24 - 803ed62: 2b00 cmp r3, #0 - 803ed64: d100 bne.n 803ed68 - 803ed66: e7fe b.n 803ed66 + 803ecca: 68fb ldr r3, [r7, #12] + 803eccc: 6a5b ldr r3, [r3, #36] ; 0x24 + 803ecce: 2b00 cmp r3, #0 + 803ecd0: d100 bne.n 803ecd4 + 803ecd2: e7fe b.n 803ecd2 if(label->text == NULL) return; - 803ed68: 68fb ldr r3, [r7, #12] - 803ed6a: 6a5b ldr r3, [r3, #36] ; 0x24 - 803ed6c: 2b00 cmp r3, #0 - 803ed6e: d136 bne.n 803edde - 803ed70: e03a b.n 803ede8 + 803ecd4: 68fb ldr r3, [r7, #12] + 803ecd6: 6a5b ldr r3, [r3, #36] ; 0x24 + 803ecd8: 2b00 cmp r3, #0 + 803ecda: d136 bne.n 803ed4a + 803ecdc: e03a b.n 803ed54 } else { /*Free the old text*/ if(label->text != NULL && label->static_txt == 0) { - 803ed72: 68fb ldr r3, [r7, #12] - 803ed74: 6a5b ldr r3, [r3, #36] ; 0x24 - 803ed76: 2b00 cmp r3, #0 - 803ed78: d00f beq.n 803ed9a - 803ed7a: 68fb ldr r3, [r7, #12] - 803ed7c: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803ed80: f003 0308 and.w r3, r3, #8 - 803ed84: b2db uxtb r3, r3 - 803ed86: 2b00 cmp r3, #0 - 803ed88: d107 bne.n 803ed9a + 803ecde: 68fb ldr r3, [r7, #12] + 803ece0: 6a5b ldr r3, [r3, #36] ; 0x24 + 803ece2: 2b00 cmp r3, #0 + 803ece4: d00f beq.n 803ed06 + 803ece6: 68fb ldr r3, [r7, #12] + 803ece8: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803ecec: f003 0308 and.w r3, r3, #8 + 803ecf0: b2db uxtb r3, r3 + 803ecf2: 2b00 cmp r3, #0 + 803ecf4: d107 bne.n 803ed06 lv_mem_free(label->text); - 803ed8a: 68fb ldr r3, [r7, #12] - 803ed8c: 6a5b ldr r3, [r3, #36] ; 0x24 - 803ed8e: 4618 mov r0, r3 - 803ed90: f7f3 fda4 bl 80328dc + 803ecf6: 68fb ldr r3, [r7, #12] + 803ecf8: 6a5b ldr r3, [r3, #36] ; 0x24 + 803ecfa: 4618 mov r0, r3 + 803ecfc: f7f3 fda4 bl 8032848 label->text = NULL; - 803ed94: 68fb ldr r3, [r7, #12] - 803ed96: 2200 movs r2, #0 - 803ed98: 625a str r2, [r3, #36] ; 0x24 + 803ed00: 68fb ldr r3, [r7, #12] + 803ed02: 2200 movs r2, #0 + 803ed04: 625a str r2, [r3, #36] ; 0x24 if(label->text == NULL) return; _lv_txt_ap_proc(text, label->text); #else /*Get the size of the text*/ size_t len = strlen(text) + 1; - 803ed9a: 6838 ldr r0, [r7, #0] - 803ed9c: f7c1 fa4c bl 8000238 - 803eda0: 4603 mov r3, r0 - 803eda2: 3301 adds r3, #1 - 803eda4: 60bb str r3, [r7, #8] + 803ed06: 6838 ldr r0, [r7, #0] + 803ed08: f7c1 fa96 bl 8000238 + 803ed0c: 4603 mov r3, r0 + 803ed0e: 3301 adds r3, #1 + 803ed10: 60bb str r3, [r7, #8] /*Allocate space for the new text*/ label->text = lv_mem_alloc(len); - 803eda6: 68b8 ldr r0, [r7, #8] - 803eda8: f7f3 fd76 bl 8032898 - 803edac: 4602 mov r2, r0 - 803edae: 68fb ldr r3, [r7, #12] - 803edb0: 625a str r2, [r3, #36] ; 0x24 + 803ed12: 68b8 ldr r0, [r7, #8] + 803ed14: f7f3 fd76 bl 8032804 + 803ed18: 4602 mov r2, r0 + 803ed1a: 68fb ldr r3, [r7, #12] + 803ed1c: 625a str r2, [r3, #36] ; 0x24 LV_ASSERT_MALLOC(label->text); - 803edb2: 68fb ldr r3, [r7, #12] - 803edb4: 6a5b ldr r3, [r3, #36] ; 0x24 - 803edb6: 2b00 cmp r3, #0 - 803edb8: d100 bne.n 803edbc - 803edba: e7fe b.n 803edba + 803ed1e: 68fb ldr r3, [r7, #12] + 803ed20: 6a5b ldr r3, [r3, #36] ; 0x24 + 803ed22: 2b00 cmp r3, #0 + 803ed24: d100 bne.n 803ed28 + 803ed26: e7fe b.n 803ed26 if(label->text == NULL) return; - 803edbc: 68fb ldr r3, [r7, #12] - 803edbe: 6a5b ldr r3, [r3, #36] ; 0x24 - 803edc0: 2b00 cmp r3, #0 - 803edc2: d010 beq.n 803ede6 + 803ed28: 68fb ldr r3, [r7, #12] + 803ed2a: 6a5b ldr r3, [r3, #36] ; 0x24 + 803ed2c: 2b00 cmp r3, #0 + 803ed2e: d010 beq.n 803ed52 strcpy(label->text, text); - 803edc4: 68fb ldr r3, [r7, #12] - 803edc6: 6a5b ldr r3, [r3, #36] ; 0x24 - 803edc8: 6839 ldr r1, [r7, #0] - 803edca: 4618 mov r0, r3 - 803edcc: f007 fefa bl 8046bc4 + 803ed30: 68fb ldr r3, [r7, #12] + 803ed32: 6a5b ldr r3, [r3, #36] ; 0x24 + 803ed34: 6839 ldr r1, [r7, #0] + 803ed36: 4618 mov r0, r3 + 803ed38: f007 fefa bl 8046b30 #endif /*Now the text is dynamically allocated*/ label->static_txt = 0; - 803edd0: 68fa ldr r2, [r7, #12] - 803edd2: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 - 803edd6: f36f 03c3 bfc r3, #3, #1 - 803edda: f882 3048 strb.w r3, [r2, #72] ; 0x48 + 803ed3c: 68fa ldr r2, [r7, #12] + 803ed3e: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 + 803ed42: f36f 03c3 bfc r3, #3, #1 + 803ed46: f882 3048 strb.w r3, [r2, #72] ; 0x48 } lv_label_refr_text(obj); - 803edde: 6878 ldr r0, [r7, #4] - 803ede0: f001 f954 bl 804008c - 803ede4: e000 b.n 803ede8 + 803ed4a: 6878 ldr r0, [r7, #4] + 803ed4c: f001 f954 bl 803fff8 + 803ed50: e000 b.n 803ed54 if(label->text == NULL) return; - 803ede6: bf00 nop + 803ed52: bf00 nop } - 803ede8: 3714 adds r7, #20 - 803edea: 46bd mov sp, r7 - 803edec: bd90 pop {r4, r7, pc} + 803ed54: 3714 adds r7, #20 + 803ed56: 46bd mov sp, r7 + 803ed58: bd90 pop {r4, r7, pc} -0803edee : +0803ed5a : void lv_label_set_text_fmt(lv_obj_t * obj, const char * fmt, ...) { - 803edee: b40e push {r1, r2, r3} - 803edf0: b580 push {r7, lr} - 803edf2: b085 sub sp, #20 - 803edf4: af00 add r7, sp, #0 - 803edf6: 6078 str r0, [r7, #4] + 803ed5a: b40e push {r1, r2, r3} + 803ed5c: b580 push {r7, lr} + 803ed5e: b085 sub sp, #20 + 803ed60: af00 add r7, sp, #0 + 803ed62: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); LV_ASSERT_NULL(fmt); - 803edf8: 69fb ldr r3, [r7, #28] - 803edfa: 2b00 cmp r3, #0 - 803edfc: d100 bne.n 803ee00 - 803edfe: e7fe b.n 803edfe + 803ed64: 69fb ldr r3, [r7, #28] + 803ed66: 2b00 cmp r3, #0 + 803ed68: d100 bne.n 803ed6c + 803ed6a: e7fe b.n 803ed6a lv_obj_invalidate(obj); - 803ee00: 6878 ldr r0, [r7, #4] - 803ee02: f7cb fe56 bl 800aab2 + 803ed6c: 6878 ldr r0, [r7, #4] + 803ed6e: f7cb fe6a bl 800aa46 lv_label_t * label = (lv_label_t *)obj; - 803ee06: 687b ldr r3, [r7, #4] - 803ee08: 60fb str r3, [r7, #12] + 803ed72: 687b ldr r3, [r7, #4] + 803ed74: 60fb str r3, [r7, #12] /*If text is NULL then refresh*/ if(fmt == NULL) { - 803ee0a: 69fb ldr r3, [r7, #28] - 803ee0c: 2b00 cmp r3, #0 - 803ee0e: d103 bne.n 803ee18 + 803ed76: 69fb ldr r3, [r7, #28] + 803ed78: 2b00 cmp r3, #0 + 803ed7a: d103 bne.n 803ed84 lv_label_refr_text(obj); - 803ee10: 6878 ldr r0, [r7, #4] - 803ee12: f001 f93b bl 804008c - 803ee16: e027 b.n 803ee68 + 803ed7c: 6878 ldr r0, [r7, #4] + 803ed7e: f001 f93b bl 803fff8 + 803ed82: e027 b.n 803edd4 return; } if(label->text != NULL && label->static_txt == 0) { - 803ee18: 68fb ldr r3, [r7, #12] - 803ee1a: 6a5b ldr r3, [r3, #36] ; 0x24 - 803ee1c: 2b00 cmp r3, #0 - 803ee1e: d00f beq.n 803ee40 - 803ee20: 68fb ldr r3, [r7, #12] - 803ee22: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803ee26: f003 0308 and.w r3, r3, #8 - 803ee2a: b2db uxtb r3, r3 - 803ee2c: 2b00 cmp r3, #0 - 803ee2e: d107 bne.n 803ee40 + 803ed84: 68fb ldr r3, [r7, #12] + 803ed86: 6a5b ldr r3, [r3, #36] ; 0x24 + 803ed88: 2b00 cmp r3, #0 + 803ed8a: d00f beq.n 803edac + 803ed8c: 68fb ldr r3, [r7, #12] + 803ed8e: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803ed92: f003 0308 and.w r3, r3, #8 + 803ed96: b2db uxtb r3, r3 + 803ed98: 2b00 cmp r3, #0 + 803ed9a: d107 bne.n 803edac lv_mem_free(label->text); - 803ee30: 68fb ldr r3, [r7, #12] - 803ee32: 6a5b ldr r3, [r3, #36] ; 0x24 - 803ee34: 4618 mov r0, r3 - 803ee36: f7f3 fd51 bl 80328dc + 803ed9c: 68fb ldr r3, [r7, #12] + 803ed9e: 6a5b ldr r3, [r3, #36] ; 0x24 + 803eda0: 4618 mov r0, r3 + 803eda2: f7f3 fd51 bl 8032848 label->text = NULL; - 803ee3a: 68fb ldr r3, [r7, #12] - 803ee3c: 2200 movs r2, #0 - 803ee3e: 625a str r2, [r3, #36] ; 0x24 + 803eda6: 68fb ldr r3, [r7, #12] + 803eda8: 2200 movs r2, #0 + 803edaa: 625a str r2, [r3, #36] ; 0x24 } va_list args; va_start(args, fmt); - 803ee40: f107 0320 add.w r3, r7, #32 - 803ee44: 60bb str r3, [r7, #8] + 803edac: f107 0320 add.w r3, r7, #32 + 803edb0: 60bb str r3, [r7, #8] label->text = _lv_txt_set_text_vfmt(fmt, args); - 803ee46: 68b9 ldr r1, [r7, #8] - 803ee48: 69f8 ldr r0, [r7, #28] - 803ee4a: f7f7 fcb7 bl 80367bc <_lv_txt_set_text_vfmt> - 803ee4e: 4602 mov r2, r0 - 803ee50: 68fb ldr r3, [r7, #12] - 803ee52: 625a str r2, [r3, #36] ; 0x24 + 803edb2: 68b9 ldr r1, [r7, #8] + 803edb4: 69f8 ldr r0, [r7, #28] + 803edb6: f7f7 fcb7 bl 8036728 <_lv_txt_set_text_vfmt> + 803edba: 4602 mov r2, r0 + 803edbc: 68fb ldr r3, [r7, #12] + 803edbe: 625a str r2, [r3, #36] ; 0x24 va_end(args); label->static_txt = 0; /*Now the text is dynamically allocated*/ - 803ee54: 68fa ldr r2, [r7, #12] - 803ee56: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 - 803ee5a: f36f 03c3 bfc r3, #3, #1 - 803ee5e: f882 3048 strb.w r3, [r2, #72] ; 0x48 + 803edc0: 68fa ldr r2, [r7, #12] + 803edc2: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 + 803edc6: f36f 03c3 bfc r3, #3, #1 + 803edca: f882 3048 strb.w r3, [r2, #72] ; 0x48 lv_label_refr_text(obj); - 803ee62: 6878 ldr r0, [r7, #4] - 803ee64: f001 f912 bl 804008c + 803edce: 6878 ldr r0, [r7, #4] + 803edd0: f001 f912 bl 803fff8 } - 803ee68: 3714 adds r7, #20 - 803ee6a: 46bd mov sp, r7 - 803ee6c: e8bd 4080 ldmia.w sp!, {r7, lr} - 803ee70: b003 add sp, #12 - 803ee72: 4770 bx lr + 803edd4: 3714 adds r7, #20 + 803edd6: 46bd mov sp, r7 + 803edd8: e8bd 4080 ldmia.w sp!, {r7, lr} + 803eddc: b003 add sp, #12 + 803edde: 4770 bx lr -0803ee74 : +0803ede0 : void lv_label_set_text_static(lv_obj_t * obj, const char * text) { - 803ee74: b580 push {r7, lr} - 803ee76: b084 sub sp, #16 - 803ee78: af00 add r7, sp, #0 - 803ee7a: 6078 str r0, [r7, #4] - 803ee7c: 6039 str r1, [r7, #0] + 803ede0: b580 push {r7, lr} + 803ede2: b084 sub sp, #16 + 803ede4: af00 add r7, sp, #0 + 803ede6: 6078 str r0, [r7, #4] + 803ede8: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_label_t * label = (lv_label_t *)obj; - 803ee7e: 687b ldr r3, [r7, #4] - 803ee80: 60fb str r3, [r7, #12] + 803edea: 687b ldr r3, [r7, #4] + 803edec: 60fb str r3, [r7, #12] if(label->static_txt == 0 && label->text != NULL) { - 803ee82: 68fb ldr r3, [r7, #12] - 803ee84: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803ee88: f003 0308 and.w r3, r3, #8 - 803ee8c: b2db uxtb r3, r3 - 803ee8e: 2b00 cmp r3, #0 - 803ee90: d10b bne.n 803eeaa - 803ee92: 68fb ldr r3, [r7, #12] - 803ee94: 6a5b ldr r3, [r3, #36] ; 0x24 - 803ee96: 2b00 cmp r3, #0 - 803ee98: d007 beq.n 803eeaa + 803edee: 68fb ldr r3, [r7, #12] + 803edf0: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803edf4: f003 0308 and.w r3, r3, #8 + 803edf8: b2db uxtb r3, r3 + 803edfa: 2b00 cmp r3, #0 + 803edfc: d10b bne.n 803ee16 + 803edfe: 68fb ldr r3, [r7, #12] + 803ee00: 6a5b ldr r3, [r3, #36] ; 0x24 + 803ee02: 2b00 cmp r3, #0 + 803ee04: d007 beq.n 803ee16 lv_mem_free(label->text); - 803ee9a: 68fb ldr r3, [r7, #12] - 803ee9c: 6a5b ldr r3, [r3, #36] ; 0x24 - 803ee9e: 4618 mov r0, r3 - 803eea0: f7f3 fd1c bl 80328dc + 803ee06: 68fb ldr r3, [r7, #12] + 803ee08: 6a5b ldr r3, [r3, #36] ; 0x24 + 803ee0a: 4618 mov r0, r3 + 803ee0c: f7f3 fd1c bl 8032848 label->text = NULL; - 803eea4: 68fb ldr r3, [r7, #12] - 803eea6: 2200 movs r2, #0 - 803eea8: 625a str r2, [r3, #36] ; 0x24 + 803ee10: 68fb ldr r3, [r7, #12] + 803ee12: 2200 movs r2, #0 + 803ee14: 625a str r2, [r3, #36] ; 0x24 } if(text != NULL) { - 803eeaa: 683b ldr r3, [r7, #0] - 803eeac: 2b00 cmp r3, #0 - 803eeae: d009 beq.n 803eec4 + 803ee16: 683b ldr r3, [r7, #0] + 803ee18: 2b00 cmp r3, #0 + 803ee1a: d009 beq.n 803ee30 label->static_txt = 1; - 803eeb0: 68fa ldr r2, [r7, #12] - 803eeb2: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 - 803eeb6: f043 0308 orr.w r3, r3, #8 - 803eeba: f882 3048 strb.w r3, [r2, #72] ; 0x48 + 803ee1c: 68fa ldr r2, [r7, #12] + 803ee1e: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 + 803ee22: f043 0308 orr.w r3, r3, #8 + 803ee26: f882 3048 strb.w r3, [r2, #72] ; 0x48 label->text = (char *)text; - 803eebe: 68fb ldr r3, [r7, #12] - 803eec0: 683a ldr r2, [r7, #0] - 803eec2: 625a str r2, [r3, #36] ; 0x24 + 803ee2a: 68fb ldr r3, [r7, #12] + 803ee2c: 683a ldr r2, [r7, #0] + 803ee2e: 625a str r2, [r3, #36] ; 0x24 } lv_label_refr_text(obj); - 803eec4: 6878 ldr r0, [r7, #4] - 803eec6: f001 f8e1 bl 804008c + 803ee30: 6878 ldr r0, [r7, #4] + 803ee32: f001 f8e1 bl 803fff8 } - 803eeca: bf00 nop - 803eecc: 3710 adds r7, #16 - 803eece: 46bd mov sp, r7 - 803eed0: bd80 pop {r7, pc} + 803ee36: bf00 nop + 803ee38: 3710 adds r7, #16 + 803ee3a: 46bd mov sp, r7 + 803ee3c: bd80 pop {r7, pc} ... -0803eed4 : +0803ee40 : void lv_label_set_long_mode(lv_obj_t * obj, lv_label_long_mode_t long_mode) { - 803eed4: b580 push {r7, lr} - 803eed6: b084 sub sp, #16 - 803eed8: af00 add r7, sp, #0 - 803eeda: 6078 str r0, [r7, #4] - 803eedc: 460b mov r3, r1 - 803eede: 70fb strb r3, [r7, #3] + 803ee40: b580 push {r7, lr} + 803ee42: b084 sub sp, #16 + 803ee44: af00 add r7, sp, #0 + 803ee46: 6078 str r0, [r7, #4] + 803ee48: 460b mov r3, r1 + 803ee4a: 70fb strb r3, [r7, #3] LV_ASSERT_OBJ(obj, MY_CLASS); lv_label_t * label = (lv_label_t *)obj; - 803eee0: 687b ldr r3, [r7, #4] - 803eee2: 60fb str r3, [r7, #12] + 803ee4c: 687b ldr r3, [r7, #4] + 803ee4e: 60fb str r3, [r7, #12] /*Delete the old animation (if exists)*/ lv_anim_del(obj, set_ofs_x_anim); - 803eee4: 4924 ldr r1, [pc, #144] ; (803ef78 ) - 803eee6: 6878 ldr r0, [r7, #4] - 803eee8: f7f1 fd50 bl 803098c + 803ee50: 4924 ldr r1, [pc, #144] ; (803eee4 ) + 803ee52: 6878 ldr r0, [r7, #4] + 803ee54: f7f1 fd50 bl 80308f8 lv_anim_del(obj, set_ofs_y_anim); - 803eeec: 4923 ldr r1, [pc, #140] ; (803ef7c ) - 803eeee: 6878 ldr r0, [r7, #4] - 803eef0: f7f1 fd4c bl 803098c + 803ee58: 4923 ldr r1, [pc, #140] ; (803eee8 ) + 803ee5a: 6878 ldr r0, [r7, #4] + 803ee5c: f7f1 fd4c bl 80308f8 label->offset.x = 0; - 803eef4: 68fb ldr r3, [r7, #12] - 803eef6: 2200 movs r2, #0 - 803eef8: f8a3 2044 strh.w r2, [r3, #68] ; 0x44 + 803ee60: 68fb ldr r3, [r7, #12] + 803ee62: 2200 movs r2, #0 + 803ee64: f8a3 2044 strh.w r2, [r3, #68] ; 0x44 label->offset.y = 0; - 803eefc: 68fb ldr r3, [r7, #12] - 803eefe: 2200 movs r2, #0 - 803ef00: f8a3 2046 strh.w r2, [r3, #70] ; 0x46 + 803ee68: 68fb ldr r3, [r7, #12] + 803ee6a: 2200 movs r2, #0 + 803ee6c: f8a3 2046 strh.w r2, [r3, #70] ; 0x46 if(long_mode == LV_LABEL_LONG_SCROLL || long_mode == LV_LABEL_LONG_SCROLL_CIRCULAR || long_mode == LV_LABEL_LONG_CLIP) - 803ef04: 78fb ldrb r3, [r7, #3] - 803ef06: 2b02 cmp r3, #2 - 803ef08: d005 beq.n 803ef16 - 803ef0a: 78fb ldrb r3, [r7, #3] - 803ef0c: 2b03 cmp r3, #3 - 803ef0e: d002 beq.n 803ef16 - 803ef10: 78fb ldrb r3, [r7, #3] - 803ef12: 2b04 cmp r3, #4 - 803ef14: d107 bne.n 803ef26 + 803ee70: 78fb ldrb r3, [r7, #3] + 803ee72: 2b02 cmp r3, #2 + 803ee74: d005 beq.n 803ee82 + 803ee76: 78fb ldrb r3, [r7, #3] + 803ee78: 2b03 cmp r3, #3 + 803ee7a: d002 beq.n 803ee82 + 803ee7c: 78fb ldrb r3, [r7, #3] + 803ee7e: 2b04 cmp r3, #4 + 803ee80: d107 bne.n 803ee92 label->expand = 1; - 803ef16: 68fa ldr r2, [r7, #12] - 803ef18: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 - 803ef1c: f043 0320 orr.w r3, r3, #32 - 803ef20: f882 3048 strb.w r3, [r2, #72] ; 0x48 - 803ef24: e006 b.n 803ef34 + 803ee82: 68fa ldr r2, [r7, #12] + 803ee84: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 + 803ee88: f043 0320 orr.w r3, r3, #32 + 803ee8c: f882 3048 strb.w r3, [r2, #72] ; 0x48 + 803ee90: e006 b.n 803eea0 else label->expand = 0; - 803ef26: 68fa ldr r2, [r7, #12] - 803ef28: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 - 803ef2c: f36f 1345 bfc r3, #5, #1 - 803ef30: f882 3048 strb.w r3, [r2, #72] ; 0x48 + 803ee92: 68fa ldr r2, [r7, #12] + 803ee94: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 + 803ee98: f36f 1345 bfc r3, #5, #1 + 803ee9c: f882 3048 strb.w r3, [r2, #72] ; 0x48 /*Restore the character under the dots*/ if(label->long_mode == LV_LABEL_LONG_DOT && label->dot_end != LV_LABEL_DOT_END_INV) { - 803ef34: 68fb ldr r3, [r7, #12] - 803ef36: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803ef3a: f003 0307 and.w r3, r3, #7 - 803ef3e: b2db uxtb r3, r3 - 803ef40: 2b01 cmp r3, #1 - 803ef42: d107 bne.n 803ef54 - 803ef44: 68fb ldr r3, [r7, #12] - 803ef46: 6adb ldr r3, [r3, #44] ; 0x2c - 803ef48: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 803ef4c: d002 beq.n 803ef54 + 803eea0: 68fb ldr r3, [r7, #12] + 803eea2: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803eea6: f003 0307 and.w r3, r3, #7 + 803eeaa: b2db uxtb r3, r3 + 803eeac: 2b01 cmp r3, #1 + 803eeae: d107 bne.n 803eec0 + 803eeb0: 68fb ldr r3, [r7, #12] + 803eeb2: 6adb ldr r3, [r3, #44] ; 0x2c + 803eeb4: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 803eeb8: d002 beq.n 803eec0 lv_label_revert_dots(obj); - 803ef4e: 6878 ldr r0, [r7, #4] - 803ef50: f001 fcd4 bl 80408fc + 803eeba: 6878 ldr r0, [r7, #4] + 803eebc: f001 fcd4 bl 8040868 } label->long_mode = long_mode; - 803ef54: 78fb ldrb r3, [r7, #3] - 803ef56: f003 0307 and.w r3, r3, #7 - 803ef5a: b2d9 uxtb r1, r3 - 803ef5c: 68fa ldr r2, [r7, #12] - 803ef5e: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 - 803ef62: f361 0302 bfi r3, r1, #0, #3 - 803ef66: f882 3048 strb.w r3, [r2, #72] ; 0x48 + 803eec0: 78fb ldrb r3, [r7, #3] + 803eec2: f003 0307 and.w r3, r3, #7 + 803eec6: b2d9 uxtb r1, r3 + 803eec8: 68fa ldr r2, [r7, #12] + 803eeca: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 + 803eece: f361 0302 bfi r3, r1, #0, #3 + 803eed2: f882 3048 strb.w r3, [r2, #72] ; 0x48 lv_label_refr_text(obj); - 803ef6a: 6878 ldr r0, [r7, #4] - 803ef6c: f001 f88e bl 804008c + 803eed6: 6878 ldr r0, [r7, #4] + 803eed8: f001 f88e bl 803fff8 } - 803ef70: bf00 nop - 803ef72: 3710 adds r7, #16 - 803ef74: 46bd mov sp, r7 - 803ef76: bd80 pop {r7, pc} - 803ef78: 08040aaf .word 0x08040aaf - 803ef7c: 08040ad5 .word 0x08040ad5 + 803eedc: bf00 nop + 803eede: 3710 adds r7, #16 + 803eee0: 46bd mov sp, r7 + 803eee2: bd80 pop {r7, pc} + 803eee4: 08040a1b .word 0x08040a1b + 803eee8: 08040a41 .word 0x08040a41 -0803ef80 : +0803eeec : /*Refresh the text because the potential color codes in text needs to be hidden or revealed*/ lv_label_refr_text(obj); } void lv_label_set_text_sel_start(lv_obj_t * obj, uint32_t index) { - 803ef80: b580 push {r7, lr} - 803ef82: b084 sub sp, #16 - 803ef84: af00 add r7, sp, #0 - 803ef86: 6078 str r0, [r7, #4] - 803ef88: 6039 str r1, [r7, #0] + 803eeec: b580 push {r7, lr} + 803eeee: b084 sub sp, #16 + 803eef0: af00 add r7, sp, #0 + 803eef2: 6078 str r0, [r7, #4] + 803eef4: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); #if LV_LABEL_TEXT_SELECTION lv_label_t * label = (lv_label_t *)obj; - 803ef8a: 687b ldr r3, [r7, #4] - 803ef8c: 60fb str r3, [r7, #12] + 803eef6: 687b ldr r3, [r7, #4] + 803eef8: 60fb str r3, [r7, #12] label->sel_start = index; - 803ef8e: 68fb ldr r3, [r7, #12] - 803ef90: 683a ldr r2, [r7, #0] - 803ef92: 63da str r2, [r3, #60] ; 0x3c + 803eefa: 68fb ldr r3, [r7, #12] + 803eefc: 683a ldr r2, [r7, #0] + 803eefe: 63da str r2, [r3, #60] ; 0x3c lv_obj_invalidate(obj); - 803ef94: 6878 ldr r0, [r7, #4] - 803ef96: f7cb fd8c bl 800aab2 + 803ef00: 6878 ldr r0, [r7, #4] + 803ef02: f7cb fda0 bl 800aa46 #else LV_UNUSED(obj); /*Unused*/ LV_UNUSED(index); /*Unused*/ #endif } - 803ef9a: bf00 nop - 803ef9c: 3710 adds r7, #16 - 803ef9e: 46bd mov sp, r7 - 803efa0: bd80 pop {r7, pc} + 803ef06: bf00 nop + 803ef08: 3710 adds r7, #16 + 803ef0a: 46bd mov sp, r7 + 803ef0c: bd80 pop {r7, pc} -0803efa2 : +0803ef0e : void lv_label_set_text_sel_end(lv_obj_t * obj, uint32_t index) { - 803efa2: b580 push {r7, lr} - 803efa4: b084 sub sp, #16 - 803efa6: af00 add r7, sp, #0 - 803efa8: 6078 str r0, [r7, #4] - 803efaa: 6039 str r1, [r7, #0] + 803ef0e: b580 push {r7, lr} + 803ef10: b084 sub sp, #16 + 803ef12: af00 add r7, sp, #0 + 803ef14: 6078 str r0, [r7, #4] + 803ef16: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); #if LV_LABEL_TEXT_SELECTION lv_label_t * label = (lv_label_t *)obj; - 803efac: 687b ldr r3, [r7, #4] - 803efae: 60fb str r3, [r7, #12] + 803ef18: 687b ldr r3, [r7, #4] + 803ef1a: 60fb str r3, [r7, #12] label->sel_end = index; - 803efb0: 68fb ldr r3, [r7, #12] - 803efb2: 683a ldr r2, [r7, #0] - 803efb4: 641a str r2, [r3, #64] ; 0x40 + 803ef1c: 68fb ldr r3, [r7, #12] + 803ef1e: 683a ldr r2, [r7, #0] + 803ef20: 641a str r2, [r3, #64] ; 0x40 lv_obj_invalidate(obj); - 803efb6: 6878 ldr r0, [r7, #4] - 803efb8: f7cb fd7b bl 800aab2 + 803ef22: 6878 ldr r0, [r7, #4] + 803ef24: f7cb fd8f bl 800aa46 #else LV_UNUSED(obj); /*Unused*/ LV_UNUSED(index); /*Unused*/ #endif } - 803efbc: bf00 nop - 803efbe: 3710 adds r7, #16 - 803efc0: 46bd mov sp, r7 - 803efc2: bd80 pop {r7, pc} + 803ef28: bf00 nop + 803ef2a: 3710 adds r7, #16 + 803ef2c: 46bd mov sp, r7 + 803ef2e: bd80 pop {r7, pc} -0803efc4 : +0803ef30 : /*===================== * Getter functions *====================*/ char * lv_label_get_text(const lv_obj_t * obj) { - 803efc4: b480 push {r7} - 803efc6: b085 sub sp, #20 - 803efc8: af00 add r7, sp, #0 - 803efca: 6078 str r0, [r7, #4] + 803ef30: b480 push {r7} + 803ef32: b085 sub sp, #20 + 803ef34: af00 add r7, sp, #0 + 803ef36: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_label_t * label = (lv_label_t *)obj; - 803efcc: 687b ldr r3, [r7, #4] - 803efce: 60fb str r3, [r7, #12] + 803ef38: 687b ldr r3, [r7, #4] + 803ef3a: 60fb str r3, [r7, #12] return label->text; - 803efd0: 68fb ldr r3, [r7, #12] - 803efd2: 6a5b ldr r3, [r3, #36] ; 0x24 + 803ef3c: 68fb ldr r3, [r7, #12] + 803ef3e: 6a5b ldr r3, [r3, #36] ; 0x24 } - 803efd4: 4618 mov r0, r3 - 803efd6: 3714 adds r7, #20 - 803efd8: 46bd mov sp, r7 - 803efda: bc80 pop {r7} - 803efdc: 4770 bx lr + 803ef40: 4618 mov r0, r3 + 803ef42: 3714 adds r7, #20 + 803ef44: 46bd mov sp, r7 + 803ef46: bc80 pop {r7} + 803ef48: 4770 bx lr ... -0803efe0 : +0803ef4c : lv_label_t * label = (lv_label_t *)obj; return label->recolor == 0 ? false : true; } void lv_label_get_letter_pos(const lv_obj_t * obj, uint32_t char_id, lv_point_t * pos) { - 803efe0: b580 push {r7, lr} - 803efe2: b096 sub sp, #88 ; 0x58 - 803efe4: af02 add r7, sp, #8 - 803efe6: 60f8 str r0, [r7, #12] - 803efe8: 60b9 str r1, [r7, #8] - 803efea: 607a str r2, [r7, #4] + 803ef4c: b580 push {r7, lr} + 803ef4e: b096 sub sp, #88 ; 0x58 + 803ef50: af02 add r7, sp, #8 + 803ef52: 60f8 str r0, [r7, #12] + 803ef54: 60b9 str r1, [r7, #8] + 803ef56: 607a str r2, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); LV_ASSERT_NULL(pos); - 803efec: 687b ldr r3, [r7, #4] - 803efee: 2b00 cmp r3, #0 - 803eff0: d100 bne.n 803eff4 - 803eff2: e7fe b.n 803eff2 + 803ef58: 687b ldr r3, [r7, #4] + 803ef5a: 2b00 cmp r3, #0 + 803ef5c: d100 bne.n 803ef60 + 803ef5e: e7fe b.n 803ef5e lv_label_t * label = (lv_label_t *)obj; - 803eff4: 68fb ldr r3, [r7, #12] - 803eff6: 63fb str r3, [r7, #60] ; 0x3c + 803ef60: 68fb ldr r3, [r7, #12] + 803ef62: 63fb str r3, [r7, #60] ; 0x3c const char * txt = lv_label_get_text(obj); - 803eff8: 68f8 ldr r0, [r7, #12] - 803effa: f7ff ffe3 bl 803efc4 - 803effe: 63b8 str r0, [r7, #56] ; 0x38 + 803ef64: 68f8 ldr r0, [r7, #12] + 803ef66: f7ff ffe3 bl 803ef30 + 803ef6a: 63b8 str r0, [r7, #56] ; 0x38 lv_text_align_t align = lv_obj_calculate_style_text_align(obj, LV_PART_MAIN, txt); - 803f000: 6bba ldr r2, [r7, #56] ; 0x38 - 803f002: 2100 movs r1, #0 - 803f004: 68f8 ldr r0, [r7, #12] - 803f006: f7cf fb5b bl 800e6c0 - 803f00a: 4603 mov r3, r0 - 803f00c: f887 3037 strb.w r3, [r7, #55] ; 0x37 + 803ef6c: 6bba ldr r2, [r7, #56] ; 0x38 + 803ef6e: 2100 movs r1, #0 + 803ef70: 68f8 ldr r0, [r7, #12] + 803ef72: f7cf fb6f bl 800e654 + 803ef76: 4603 mov r3, r0 + 803ef78: f887 3037 strb.w r3, [r7, #55] ; 0x37 if(txt[0] == '\0') { - 803f010: 6bbb ldr r3, [r7, #56] ; 0x38 - 803f012: 781b ldrb r3, [r3, #0] - 803f014: 2b00 cmp r3, #0 - 803f016: d125 bne.n 803f064 + 803ef7c: 6bbb ldr r3, [r7, #56] ; 0x38 + 803ef7e: 781b ldrb r3, [r3, #0] + 803ef80: 2b00 cmp r3, #0 + 803ef82: d125 bne.n 803efd0 pos->y = 0; - 803f018: 687b ldr r3, [r7, #4] - 803f01a: 2200 movs r2, #0 - 803f01c: 805a strh r2, [r3, #2] + 803ef84: 687b ldr r3, [r7, #4] + 803ef86: 2200 movs r2, #0 + 803ef88: 805a strh r2, [r3, #2] switch(align) { - 803f01e: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 803f022: 2b03 cmp r3, #3 - 803f024: d00b beq.n 803f03e - 803f026: 2b03 cmp r3, #3 - 803f028: f300 8152 bgt.w 803f2d0 - 803f02c: 2b01 cmp r3, #1 - 803f02e: d002 beq.n 803f036 - 803f030: 2b02 cmp r3, #2 - 803f032: d00c beq.n 803f04e + 803ef8a: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 803ef8e: 2b03 cmp r3, #3 + 803ef90: d00b beq.n 803efaa + 803ef92: 2b03 cmp r3, #3 + 803ef94: f300 8152 bgt.w 803f23c + 803ef98: 2b01 cmp r3, #1 + 803ef9a: d002 beq.n 803efa2 + 803ef9c: 2b02 cmp r3, #2 + 803ef9e: d00c beq.n 803efba break; case LV_TEXT_ALIGN_CENTER: pos->x = lv_obj_get_content_width(obj) / 2; break; } return; - 803f034: e14c b.n 803f2d0 + 803efa0: e14c b.n 803f23c pos->x = 0; - 803f036: 687b ldr r3, [r7, #4] - 803f038: 2200 movs r2, #0 - 803f03a: 801a strh r2, [r3, #0] + 803efa2: 687b ldr r3, [r7, #4] + 803efa4: 2200 movs r2, #0 + 803efa6: 801a strh r2, [r3, #0] break; - 803f03c: e149 b.n 803f2d2 + 803efa8: e149 b.n 803f23e pos->x = lv_obj_get_content_width(obj); - 803f03e: 68f8 ldr r0, [r7, #12] - 803f040: f7cb f89e bl 800a180 - 803f044: 4603 mov r3, r0 - 803f046: 461a mov r2, r3 - 803f048: 687b ldr r3, [r7, #4] - 803f04a: 801a strh r2, [r3, #0] + 803efaa: 68f8 ldr r0, [r7, #12] + 803efac: f7cb f8b2 bl 800a114 + 803efb0: 4603 mov r3, r0 + 803efb2: 461a mov r2, r3 + 803efb4: 687b ldr r3, [r7, #4] + 803efb6: 801a strh r2, [r3, #0] break; - 803f04c: e141 b.n 803f2d2 + 803efb8: e141 b.n 803f23e pos->x = lv_obj_get_content_width(obj) / 2; - 803f04e: 68f8 ldr r0, [r7, #12] - 803f050: f7cb f896 bl 800a180 - 803f054: 4603 mov r3, r0 - 803f056: 0fda lsrs r2, r3, #31 - 803f058: 4413 add r3, r2 - 803f05a: 105b asrs r3, r3, #1 - 803f05c: b21a sxth r2, r3 - 803f05e: 687b ldr r3, [r7, #4] - 803f060: 801a strh r2, [r3, #0] + 803efba: 68f8 ldr r0, [r7, #12] + 803efbc: f7cb f8aa bl 800a114 + 803efc0: 4603 mov r3, r0 + 803efc2: 0fda lsrs r2, r3, #31 + 803efc4: 4413 add r3, r2 + 803efc6: 105b asrs r3, r3, #1 + 803efc8: b21a sxth r2, r3 + 803efca: 687b ldr r3, [r7, #4] + 803efcc: 801a strh r2, [r3, #0] break; - 803f062: e136 b.n 803f2d2 + 803efce: e136 b.n 803f23e } lv_area_t txt_coords; lv_obj_get_content_coords(obj, &txt_coords); - 803f064: f107 0310 add.w r3, r7, #16 - 803f068: 4619 mov r1, r3 - 803f06a: 68f8 ldr r0, [r7, #12] - 803f06c: f7cb f8de bl 800a22c + 803efd0: f107 0310 add.w r3, r7, #16 + 803efd4: 4619 mov r1, r3 + 803efd6: 68f8 ldr r0, [r7, #12] + 803efd8: f7cb f8f2 bl 800a1c0 uint32_t line_start = 0; - 803f070: 2300 movs r3, #0 - 803f072: 64fb str r3, [r7, #76] ; 0x4c + 803efdc: 2300 movs r3, #0 + 803efde: 64fb str r3, [r7, #76] ; 0x4c uint32_t new_line_start = 0; - 803f074: 2300 movs r3, #0 - 803f076: 64bb str r3, [r7, #72] ; 0x48 + 803efe0: 2300 movs r3, #0 + 803efe2: 64bb str r3, [r7, #72] ; 0x48 lv_coord_t max_w = lv_area_get_width(&txt_coords); - 803f078: f107 0310 add.w r3, r7, #16 - 803f07c: 4618 mov r0, r3 - 803f07e: f7ff fccd bl 803ea1c - 803f082: 4603 mov r3, r0 - 803f084: 86bb strh r3, [r7, #52] ; 0x34 + 803efe4: f107 0310 add.w r3, r7, #16 + 803efe8: 4618 mov r0, r3 + 803efea: f7ff fccd bl 803e988 + 803efee: 4603 mov r3, r0 + 803eff0: 86bb strh r3, [r7, #52] ; 0x34 const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 803f086: 2100 movs r1, #0 - 803f088: 68f8 ldr r0, [r7, #12] - 803f08a: f7ff fddd bl 803ec48 - 803f08e: 6338 str r0, [r7, #48] ; 0x30 + 803eff2: 2100 movs r1, #0 + 803eff4: 68f8 ldr r0, [r7, #12] + 803eff6: f7ff fddd bl 803ebb4 + 803effa: 6338 str r0, [r7, #48] ; 0x30 lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN); - 803f090: 2100 movs r1, #0 - 803f092: 68f8 ldr r0, [r7, #12] - 803f094: f7ff fdfd bl 803ec92 - 803f098: 4603 mov r3, r0 - 803f09a: 85fb strh r3, [r7, #46] ; 0x2e + 803effc: 2100 movs r1, #0 + 803effe: 68f8 ldr r0, [r7, #12] + 803f000: f7ff fdfd bl 803ebfe + 803f004: 4603 mov r3, r0 + 803f006: 85fb strh r3, [r7, #46] ; 0x2e lv_coord_t letter_space = lv_obj_get_style_text_letter_space(obj, LV_PART_MAIN); - 803f09c: 2100 movs r1, #0 - 803f09e: 68f8 ldr r0, [r7, #12] - 803f0a0: f7ff fde4 bl 803ec6c - 803f0a4: 4603 mov r3, r0 - 803f0a6: 85bb strh r3, [r7, #44] ; 0x2c + 803f008: 2100 movs r1, #0 + 803f00a: 68f8 ldr r0, [r7, #12] + 803f00c: f7ff fde4 bl 803ebd8 + 803f010: 4603 mov r3, r0 + 803f012: 85bb strh r3, [r7, #44] ; 0x2c lv_coord_t letter_height = lv_font_get_line_height(font); - 803f0a8: 6b38 ldr r0, [r7, #48] ; 0x30 - 803f0aa: f7ff fce3 bl 803ea74 - 803f0ae: 4603 mov r3, r0 - 803f0b0: 857b strh r3, [r7, #42] ; 0x2a + 803f014: 6b38 ldr r0, [r7, #48] ; 0x30 + 803f016: f7ff fce3 bl 803e9e0 + 803f01a: 4603 mov r3, r0 + 803f01c: 857b strh r3, [r7, #42] ; 0x2a lv_coord_t y = 0; - 803f0b2: 2300 movs r3, #0 - 803f0b4: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 803f01e: 2300 movs r3, #0 + 803f020: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 lv_text_flag_t flag = LV_TEXT_FLAG_NONE; - 803f0b8: 2300 movs r3, #0 - 803f0ba: f887 3045 strb.w r3, [r7, #69] ; 0x45 + 803f024: 2300 movs r3, #0 + 803f026: f887 3045 strb.w r3, [r7, #69] ; 0x45 if(label->recolor != 0) flag |= LV_TEXT_FLAG_RECOLOR; - 803f0be: 6bfb ldr r3, [r7, #60] ; 0x3c - 803f0c0: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803f0c4: f003 0310 and.w r3, r3, #16 - 803f0c8: b2db uxtb r3, r3 - 803f0ca: 2b00 cmp r3, #0 - 803f0cc: d005 beq.n 803f0da - 803f0ce: f897 3045 ldrb.w r3, [r7, #69] ; 0x45 - 803f0d2: f043 0301 orr.w r3, r3, #1 - 803f0d6: f887 3045 strb.w r3, [r7, #69] ; 0x45 + 803f02a: 6bfb ldr r3, [r7, #60] ; 0x3c + 803f02c: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803f030: f003 0310 and.w r3, r3, #16 + 803f034: b2db uxtb r3, r3 + 803f036: 2b00 cmp r3, #0 + 803f038: d005 beq.n 803f046 + 803f03a: f897 3045 ldrb.w r3, [r7, #69] ; 0x45 + 803f03e: f043 0301 orr.w r3, r3, #1 + 803f042: f887 3045 strb.w r3, [r7, #69] ; 0x45 if(label->expand != 0) flag |= LV_TEXT_FLAG_EXPAND; - 803f0da: 6bfb ldr r3, [r7, #60] ; 0x3c - 803f0dc: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803f0e0: f003 0320 and.w r3, r3, #32 - 803f0e4: b2db uxtb r3, r3 - 803f0e6: 2b00 cmp r3, #0 - 803f0e8: d005 beq.n 803f0f6 - 803f0ea: f897 3045 ldrb.w r3, [r7, #69] ; 0x45 - 803f0ee: f043 0302 orr.w r3, r3, #2 - 803f0f2: f887 3045 strb.w r3, [r7, #69] ; 0x45 + 803f046: 6bfb ldr r3, [r7, #60] ; 0x3c + 803f048: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803f04c: f003 0320 and.w r3, r3, #32 + 803f050: b2db uxtb r3, r3 + 803f052: 2b00 cmp r3, #0 + 803f054: d005 beq.n 803f062 + 803f056: f897 3045 ldrb.w r3, [r7, #69] ; 0x45 + 803f05a: f043 0302 orr.w r3, r3, #2 + 803f05e: f887 3045 strb.w r3, [r7, #69] ; 0x45 if(lv_obj_get_style_width(obj, LV_PART_MAIN) == LV_SIZE_CONTENT && !obj->w_layout) flag |= LV_TEXT_FLAG_FIT; - 803f0f6: 2100 movs r1, #0 - 803f0f8: 68f8 ldr r0, [r7, #12] - 803f0fa: f7ff fd49 bl 803eb90 - 803f0fe: 4603 mov r3, r0 - 803f100: 461a mov r2, r3 - 803f102: f242 73d1 movw r3, #10193 ; 0x27d1 - 803f106: 429a cmp r2, r3 - 803f108: d10d bne.n 803f126 - 803f10a: 68fb ldr r3, [r7, #12] - 803f10c: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 803f110: f003 0304 and.w r3, r3, #4 - 803f114: b2db uxtb r3, r3 - 803f116: 2b00 cmp r3, #0 - 803f118: d105 bne.n 803f126 - 803f11a: f897 3045 ldrb.w r3, [r7, #69] ; 0x45 - 803f11e: f043 0304 orr.w r3, r3, #4 - 803f122: f887 3045 strb.w r3, [r7, #69] ; 0x45 + 803f062: 2100 movs r1, #0 + 803f064: 68f8 ldr r0, [r7, #12] + 803f066: f7ff fd49 bl 803eafc + 803f06a: 4603 mov r3, r0 + 803f06c: 461a mov r2, r3 + 803f06e: f242 73d1 movw r3, #10193 ; 0x27d1 + 803f072: 429a cmp r2, r3 + 803f074: d10d bne.n 803f092 + 803f076: 68fb ldr r3, [r7, #12] + 803f078: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 803f07c: f003 0304 and.w r3, r3, #4 + 803f080: b2db uxtb r3, r3 + 803f082: 2b00 cmp r3, #0 + 803f084: d105 bne.n 803f092 + 803f086: f897 3045 ldrb.w r3, [r7, #69] ; 0x45 + 803f08a: f043 0304 orr.w r3, r3, #4 + 803f08e: f887 3045 strb.w r3, [r7, #69] ; 0x45 uint32_t byte_id = _lv_txt_encoded_get_byte_id(txt, char_id); - 803f126: 4b6c ldr r3, [pc, #432] ; (803f2d8 ) - 803f128: 681b ldr r3, [r3, #0] - 803f12a: 68b9 ldr r1, [r7, #8] - 803f12c: 6bb8 ldr r0, [r7, #56] ; 0x38 - 803f12e: 4798 blx r3 - 803f130: 6278 str r0, [r7, #36] ; 0x24 + 803f092: 4b6c ldr r3, [pc, #432] ; (803f244 ) + 803f094: 681b ldr r3, [r3, #0] + 803f096: 68b9 ldr r1, [r7, #8] + 803f098: 6bb8 ldr r0, [r7, #56] ; 0x38 + 803f09a: 4798 blx r3 + 803f09c: 6278 str r0, [r7, #36] ; 0x24 /*Search the line of the index letter*/; while(txt[new_line_start] != '\0') { - 803f132: e029 b.n 803f188 + 803f09e: e029 b.n 803f0f4 new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, NULL, flag); - 803f134: 6bba ldr r2, [r7, #56] ; 0x38 - 803f136: 6cfb ldr r3, [r7, #76] ; 0x4c - 803f138: 18d0 adds r0, r2, r3 - 803f13a: f9b7 1034 ldrsh.w r1, [r7, #52] ; 0x34 - 803f13e: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c - 803f142: f897 3045 ldrb.w r3, [r7, #69] ; 0x45 - 803f146: 9301 str r3, [sp, #4] - 803f148: 2300 movs r3, #0 - 803f14a: 9300 str r3, [sp, #0] - 803f14c: 460b mov r3, r1 - 803f14e: 6b39 ldr r1, [r7, #48] ; 0x30 - 803f150: f7f7 f936 bl 80363c0 <_lv_txt_get_next_line> - 803f154: 4602 mov r2, r0 - 803f156: 6cbb ldr r3, [r7, #72] ; 0x48 - 803f158: 4413 add r3, r2 - 803f15a: 64bb str r3, [r7, #72] ; 0x48 + 803f0a0: 6bba ldr r2, [r7, #56] ; 0x38 + 803f0a2: 6cfb ldr r3, [r7, #76] ; 0x4c + 803f0a4: 18d0 adds r0, r2, r3 + 803f0a6: f9b7 1034 ldrsh.w r1, [r7, #52] ; 0x34 + 803f0aa: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c + 803f0ae: f897 3045 ldrb.w r3, [r7, #69] ; 0x45 + 803f0b2: 9301 str r3, [sp, #4] + 803f0b4: 2300 movs r3, #0 + 803f0b6: 9300 str r3, [sp, #0] + 803f0b8: 460b mov r3, r1 + 803f0ba: 6b39 ldr r1, [r7, #48] ; 0x30 + 803f0bc: f7f7 f936 bl 803632c <_lv_txt_get_next_line> + 803f0c0: 4602 mov r2, r0 + 803f0c2: 6cbb ldr r3, [r7, #72] ; 0x48 + 803f0c4: 4413 add r3, r2 + 803f0c6: 64bb str r3, [r7, #72] ; 0x48 if(byte_id < new_line_start || txt[new_line_start] == '\0') - 803f15c: 6a7a ldr r2, [r7, #36] ; 0x24 - 803f15e: 6cbb ldr r3, [r7, #72] ; 0x48 - 803f160: 429a cmp r2, r3 - 803f162: d317 bcc.n 803f194 - 803f164: 6bba ldr r2, [r7, #56] ; 0x38 - 803f166: 6cbb ldr r3, [r7, #72] ; 0x48 - 803f168: 4413 add r3, r2 - 803f16a: 781b ldrb r3, [r3, #0] - 803f16c: 2b00 cmp r3, #0 - 803f16e: d011 beq.n 803f194 + 803f0c8: 6a7a ldr r2, [r7, #36] ; 0x24 + 803f0ca: 6cbb ldr r3, [r7, #72] ; 0x48 + 803f0cc: 429a cmp r2, r3 + 803f0ce: d317 bcc.n 803f100 + 803f0d0: 6bba ldr r2, [r7, #56] ; 0x38 + 803f0d2: 6cbb ldr r3, [r7, #72] ; 0x48 + 803f0d4: 4413 add r3, r2 + 803f0d6: 781b ldrb r3, [r3, #0] + 803f0d8: 2b00 cmp r3, #0 + 803f0da: d011 beq.n 803f100 break; /*The line of 'index' letter begins at 'line_start'*/ y += letter_height + line_space; - 803f170: 8d7a ldrh r2, [r7, #42] ; 0x2a - 803f172: 8dfb ldrh r3, [r7, #46] ; 0x2e - 803f174: 4413 add r3, r2 - 803f176: b29a uxth r2, r3 - 803f178: f8b7 3046 ldrh.w r3, [r7, #70] ; 0x46 - 803f17c: 4413 add r3, r2 - 803f17e: b29b uxth r3, r3 - 803f180: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 803f0dc: 8d7a ldrh r2, [r7, #42] ; 0x2a + 803f0de: 8dfb ldrh r3, [r7, #46] ; 0x2e + 803f0e0: 4413 add r3, r2 + 803f0e2: b29a uxth r2, r3 + 803f0e4: f8b7 3046 ldrh.w r3, [r7, #70] ; 0x46 + 803f0e8: 4413 add r3, r2 + 803f0ea: b29b uxth r3, r3 + 803f0ec: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 line_start = new_line_start; - 803f184: 6cbb ldr r3, [r7, #72] ; 0x48 - 803f186: 64fb str r3, [r7, #76] ; 0x4c + 803f0f0: 6cbb ldr r3, [r7, #72] ; 0x48 + 803f0f2: 64fb str r3, [r7, #76] ; 0x4c while(txt[new_line_start] != '\0') { - 803f188: 6bba ldr r2, [r7, #56] ; 0x38 - 803f18a: 6cbb ldr r3, [r7, #72] ; 0x48 - 803f18c: 4413 add r3, r2 - 803f18e: 781b ldrb r3, [r3, #0] - 803f190: 2b00 cmp r3, #0 - 803f192: d1cf bne.n 803f134 + 803f0f4: 6bba ldr r2, [r7, #56] ; 0x38 + 803f0f6: 6cbb ldr r3, [r7, #72] ; 0x48 + 803f0f8: 4413 add r3, r2 + 803f0fa: 781b ldrb r3, [r3, #0] + 803f0fc: 2b00 cmp r3, #0 + 803f0fe: d1cf bne.n 803f0a0 } /*If the last character is line break then go to the next line*/ if(byte_id > 0) { - 803f194: 6a7b ldr r3, [r7, #36] ; 0x24 - 803f196: 2b00 cmp r3, #0 - 803f198: d01f beq.n 803f1da + 803f100: 6a7b ldr r3, [r7, #36] ; 0x24 + 803f102: 2b00 cmp r3, #0 + 803f104: d01f beq.n 803f146 if((txt[byte_id - 1] == '\n' || txt[byte_id - 1] == '\r') && txt[byte_id] == '\0') { - 803f19a: 6a7b ldr r3, [r7, #36] ; 0x24 - 803f19c: 3b01 subs r3, #1 - 803f19e: 6bba ldr r2, [r7, #56] ; 0x38 - 803f1a0: 4413 add r3, r2 - 803f1a2: 781b ldrb r3, [r3, #0] - 803f1a4: 2b0a cmp r3, #10 - 803f1a6: d006 beq.n 803f1b6 - 803f1a8: 6a7b ldr r3, [r7, #36] ; 0x24 - 803f1aa: 3b01 subs r3, #1 - 803f1ac: 6bba ldr r2, [r7, #56] ; 0x38 - 803f1ae: 4413 add r3, r2 - 803f1b0: 781b ldrb r3, [r3, #0] - 803f1b2: 2b0d cmp r3, #13 - 803f1b4: d111 bne.n 803f1da - 803f1b6: 6bba ldr r2, [r7, #56] ; 0x38 - 803f1b8: 6a7b ldr r3, [r7, #36] ; 0x24 - 803f1ba: 4413 add r3, r2 - 803f1bc: 781b ldrb r3, [r3, #0] - 803f1be: 2b00 cmp r3, #0 - 803f1c0: d10b bne.n 803f1da + 803f106: 6a7b ldr r3, [r7, #36] ; 0x24 + 803f108: 3b01 subs r3, #1 + 803f10a: 6bba ldr r2, [r7, #56] ; 0x38 + 803f10c: 4413 add r3, r2 + 803f10e: 781b ldrb r3, [r3, #0] + 803f110: 2b0a cmp r3, #10 + 803f112: d006 beq.n 803f122 + 803f114: 6a7b ldr r3, [r7, #36] ; 0x24 + 803f116: 3b01 subs r3, #1 + 803f118: 6bba ldr r2, [r7, #56] ; 0x38 + 803f11a: 4413 add r3, r2 + 803f11c: 781b ldrb r3, [r3, #0] + 803f11e: 2b0d cmp r3, #13 + 803f120: d111 bne.n 803f146 + 803f122: 6bba ldr r2, [r7, #56] ; 0x38 + 803f124: 6a7b ldr r3, [r7, #36] ; 0x24 + 803f126: 4413 add r3, r2 + 803f128: 781b ldrb r3, [r3, #0] + 803f12a: 2b00 cmp r3, #0 + 803f12c: d10b bne.n 803f146 y += letter_height + line_space; - 803f1c2: 8d7a ldrh r2, [r7, #42] ; 0x2a - 803f1c4: 8dfb ldrh r3, [r7, #46] ; 0x2e - 803f1c6: 4413 add r3, r2 - 803f1c8: b29a uxth r2, r3 - 803f1ca: f8b7 3046 ldrh.w r3, [r7, #70] ; 0x46 - 803f1ce: 4413 add r3, r2 - 803f1d0: b29b uxth r3, r3 - 803f1d2: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 803f12e: 8d7a ldrh r2, [r7, #42] ; 0x2a + 803f130: 8dfb ldrh r3, [r7, #46] ; 0x2e + 803f132: 4413 add r3, r2 + 803f134: b29a uxth r2, r3 + 803f136: f8b7 3046 ldrh.w r3, [r7, #70] ; 0x46 + 803f13a: 4413 add r3, r2 + 803f13c: b29b uxth r3, r3 + 803f13e: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 line_start = byte_id; - 803f1d6: 6a7b ldr r3, [r7, #36] ; 0x24 - 803f1d8: 64fb str r3, [r7, #76] ; 0x4c + 803f142: 6a7b ldr r3, [r7, #36] ; 0x24 + 803f144: 64fb str r3, [r7, #76] ; 0x4c if(is_rtl) visual_char_pos++; visual_byte_pos = _lv_txt_encoded_get_byte_id(bidi_txt, visual_char_pos); } #else bidi_txt = &txt[line_start]; - 803f1da: 6bba ldr r2, [r7, #56] ; 0x38 - 803f1dc: 6cfb ldr r3, [r7, #76] ; 0x4c - 803f1de: 4413 add r3, r2 - 803f1e0: 623b str r3, [r7, #32] + 803f146: 6bba ldr r2, [r7, #56] ; 0x38 + 803f148: 6cfb ldr r3, [r7, #76] ; 0x4c + 803f14a: 4413 add r3, r2 + 803f14c: 623b str r3, [r7, #32] visual_byte_pos = byte_id - line_start; - 803f1e2: 6a7a ldr r2, [r7, #36] ; 0x24 - 803f1e4: 6cfb ldr r3, [r7, #76] ; 0x4c - 803f1e6: 1ad3 subs r3, r2, r3 - 803f1e8: 61fb str r3, [r7, #28] + 803f14e: 6a7a ldr r2, [r7, #36] ; 0x24 + 803f150: 6cfb ldr r3, [r7, #76] ; 0x4c + 803f152: 1ad3 subs r3, r2, r3 + 803f154: 61fb str r3, [r7, #28] #endif /*Calculate the x coordinate*/ lv_coord_t x = lv_txt_get_width(bidi_txt, visual_byte_pos, font, letter_space, flag); - 803f1ea: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c - 803f1ee: f897 3045 ldrb.w r3, [r7, #69] ; 0x45 - 803f1f2: 9300 str r3, [sp, #0] - 803f1f4: 4613 mov r3, r2 - 803f1f6: 6b3a ldr r2, [r7, #48] ; 0x30 - 803f1f8: 69f9 ldr r1, [r7, #28] - 803f1fa: 6a38 ldr r0, [r7, #32] - 803f1fc: f7f7 f9be bl 803657c - 803f200: 4603 mov r3, r0 - 803f202: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 803f156: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c + 803f15a: f897 3045 ldrb.w r3, [r7, #69] ; 0x45 + 803f15e: 9300 str r3, [sp, #0] + 803f160: 4613 mov r3, r2 + 803f162: 6b3a ldr r2, [r7, #48] ; 0x30 + 803f164: 69f9 ldr r1, [r7, #28] + 803f166: 6a38 ldr r0, [r7, #32] + 803f168: f7f7 f9be bl 80364e8 + 803f16c: 4603 mov r3, r0 + 803f16e: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 if(char_id != line_start) x += letter_space; - 803f206: 68ba ldr r2, [r7, #8] - 803f208: 6cfb ldr r3, [r7, #76] ; 0x4c - 803f20a: 429a cmp r2, r3 - 803f20c: d006 beq.n 803f21c - 803f20e: f8b7 2042 ldrh.w r2, [r7, #66] ; 0x42 - 803f212: 8dbb ldrh r3, [r7, #44] ; 0x2c - 803f214: 4413 add r3, r2 - 803f216: b29b uxth r3, r3 - 803f218: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 803f172: 68ba ldr r2, [r7, #8] + 803f174: 6cfb ldr r3, [r7, #76] ; 0x4c + 803f176: 429a cmp r2, r3 + 803f178: d006 beq.n 803f188 + 803f17a: f8b7 2042 ldrh.w r2, [r7, #66] ; 0x42 + 803f17e: 8dbb ldrh r3, [r7, #44] ; 0x2c + 803f180: 4413 add r3, r2 + 803f182: b29b uxth r3, r3 + 803f184: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 if(align == LV_TEXT_ALIGN_CENTER) { - 803f21c: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 803f220: 2b02 cmp r3, #2 - 803f222: d128 bne.n 803f276 + 803f188: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 803f18c: 2b02 cmp r3, #2 + 803f18e: d128 bne.n 803f1e2 lv_coord_t line_w; line_w = lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag); - 803f224: 6cba ldr r2, [r7, #72] ; 0x48 - 803f226: 6cfb ldr r3, [r7, #76] ; 0x4c - 803f228: 1ad1 subs r1, r2, r3 - 803f22a: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c - 803f22e: f897 3045 ldrb.w r3, [r7, #69] ; 0x45 - 803f232: 9300 str r3, [sp, #0] - 803f234: 4613 mov r3, r2 - 803f236: 6b3a ldr r2, [r7, #48] ; 0x30 - 803f238: 6a38 ldr r0, [r7, #32] - 803f23a: f7f7 f99f bl 803657c - 803f23e: 4603 mov r3, r0 - 803f240: 833b strh r3, [r7, #24] + 803f190: 6cba ldr r2, [r7, #72] ; 0x48 + 803f192: 6cfb ldr r3, [r7, #76] ; 0x4c + 803f194: 1ad1 subs r1, r2, r3 + 803f196: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c + 803f19a: f897 3045 ldrb.w r3, [r7, #69] ; 0x45 + 803f19e: 9300 str r3, [sp, #0] + 803f1a0: 4613 mov r3, r2 + 803f1a2: 6b3a ldr r2, [r7, #48] ; 0x30 + 803f1a4: 6a38 ldr r0, [r7, #32] + 803f1a6: f7f7 f99f bl 80364e8 + 803f1aa: 4603 mov r3, r0 + 803f1ac: 833b strh r3, [r7, #24] x += lv_area_get_width(&txt_coords) / 2 - line_w / 2; - 803f242: f107 0310 add.w r3, r7, #16 - 803f246: 4618 mov r0, r3 - 803f248: f7ff fbe8 bl 803ea1c - 803f24c: 4603 mov r3, r0 - 803f24e: 0fda lsrs r2, r3, #31 - 803f250: 4413 add r3, r2 - 803f252: 105b asrs r3, r3, #1 - 803f254: b21b sxth r3, r3 - 803f256: 4619 mov r1, r3 - 803f258: f9b7 3018 ldrsh.w r3, [r7, #24] - 803f25c: 0fda lsrs r2, r3, #31 - 803f25e: 4413 add r3, r2 - 803f260: 105b asrs r3, r3, #1 - 803f262: b21b sxth r3, r3 - 803f264: 1acb subs r3, r1, r3 - 803f266: b29a uxth r2, r3 - 803f268: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 803f26c: 4413 add r3, r2 - 803f26e: b29b uxth r3, r3 - 803f270: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 - 803f274: e023 b.n 803f2be + 803f1ae: f107 0310 add.w r3, r7, #16 + 803f1b2: 4618 mov r0, r3 + 803f1b4: f7ff fbe8 bl 803e988 + 803f1b8: 4603 mov r3, r0 + 803f1ba: 0fda lsrs r2, r3, #31 + 803f1bc: 4413 add r3, r2 + 803f1be: 105b asrs r3, r3, #1 + 803f1c0: b21b sxth r3, r3 + 803f1c2: 4619 mov r1, r3 + 803f1c4: f9b7 3018 ldrsh.w r3, [r7, #24] + 803f1c8: 0fda lsrs r2, r3, #31 + 803f1ca: 4413 add r3, r2 + 803f1cc: 105b asrs r3, r3, #1 + 803f1ce: b21b sxth r3, r3 + 803f1d0: 1acb subs r3, r1, r3 + 803f1d2: b29a uxth r2, r3 + 803f1d4: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 803f1d8: 4413 add r3, r2 + 803f1da: b29b uxth r3, r3 + 803f1dc: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 803f1e0: e023 b.n 803f22a } else if(align == LV_TEXT_ALIGN_RIGHT) { - 803f276: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 - 803f27a: 2b03 cmp r3, #3 - 803f27c: d11f bne.n 803f2be + 803f1e2: f897 3037 ldrb.w r3, [r7, #55] ; 0x37 + 803f1e6: 2b03 cmp r3, #3 + 803f1e8: d11f bne.n 803f22a lv_coord_t line_w; line_w = lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag); - 803f27e: 6cba ldr r2, [r7, #72] ; 0x48 - 803f280: 6cfb ldr r3, [r7, #76] ; 0x4c - 803f282: 1ad1 subs r1, r2, r3 - 803f284: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c - 803f288: f897 3045 ldrb.w r3, [r7, #69] ; 0x45 - 803f28c: 9300 str r3, [sp, #0] - 803f28e: 4613 mov r3, r2 - 803f290: 6b3a ldr r2, [r7, #48] ; 0x30 - 803f292: 6a38 ldr r0, [r7, #32] - 803f294: f7f7 f972 bl 803657c - 803f298: 4603 mov r3, r0 - 803f29a: 837b strh r3, [r7, #26] + 803f1ea: 6cba ldr r2, [r7, #72] ; 0x48 + 803f1ec: 6cfb ldr r3, [r7, #76] ; 0x4c + 803f1ee: 1ad1 subs r1, r2, r3 + 803f1f0: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c + 803f1f4: f897 3045 ldrb.w r3, [r7, #69] ; 0x45 + 803f1f8: 9300 str r3, [sp, #0] + 803f1fa: 4613 mov r3, r2 + 803f1fc: 6b3a ldr r2, [r7, #48] ; 0x30 + 803f1fe: 6a38 ldr r0, [r7, #32] + 803f200: f7f7 f972 bl 80364e8 + 803f204: 4603 mov r3, r0 + 803f206: 837b strh r3, [r7, #26] x += lv_area_get_width(&txt_coords) - line_w; - 803f29c: f107 0310 add.w r3, r7, #16 - 803f2a0: 4618 mov r0, r3 - 803f2a2: f7ff fbbb bl 803ea1c - 803f2a6: 4603 mov r3, r0 - 803f2a8: 461a mov r2, r3 - 803f2aa: f9b7 301a ldrsh.w r3, [r7, #26] - 803f2ae: 1ad3 subs r3, r2, r3 - 803f2b0: b29a uxth r2, r3 - 803f2b2: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 803f2b6: 4413 add r3, r2 - 803f2b8: b29b uxth r3, r3 - 803f2ba: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 803f208: f107 0310 add.w r3, r7, #16 + 803f20c: 4618 mov r0, r3 + 803f20e: f7ff fbbb bl 803e988 + 803f212: 4603 mov r3, r0 + 803f214: 461a mov r2, r3 + 803f216: f9b7 301a ldrsh.w r3, [r7, #26] + 803f21a: 1ad3 subs r3, r2, r3 + 803f21c: b29a uxth r2, r3 + 803f21e: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 803f222: 4413 add r3, r2 + 803f224: b29b uxth r3, r3 + 803f226: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 } pos->x = x; - 803f2be: 687b ldr r3, [r7, #4] - 803f2c0: f8b7 2042 ldrh.w r2, [r7, #66] ; 0x42 - 803f2c4: 801a strh r2, [r3, #0] + 803f22a: 687b ldr r3, [r7, #4] + 803f22c: f8b7 2042 ldrh.w r2, [r7, #66] ; 0x42 + 803f230: 801a strh r2, [r3, #0] pos->y = y; - 803f2c6: 687b ldr r3, [r7, #4] - 803f2c8: f8b7 2046 ldrh.w r2, [r7, #70] ; 0x46 - 803f2cc: 805a strh r2, [r3, #2] - 803f2ce: e000 b.n 803f2d2 + 803f232: 687b ldr r3, [r7, #4] + 803f234: f8b7 2046 ldrh.w r2, [r7, #70] ; 0x46 + 803f238: 805a strh r2, [r3, #2] + 803f23a: e000 b.n 803f23e return; - 803f2d0: bf00 nop + 803f23c: bf00 nop #if LV_USE_BIDI if(mutable_bidi_txt) lv_mem_buf_release(mutable_bidi_txt); #endif } - 803f2d2: 3750 adds r7, #80 ; 0x50 - 803f2d4: 46bd mov sp, r7 - 803f2d6: bd80 pop {r7, pc} - 803f2d8: 200000f4 .word 0x200000f4 + 803f23e: 3750 adds r7, #80 ; 0x50 + 803f240: 46bd mov sp, r7 + 803f242: bd80 pop {r7, pc} + 803f244: 200000f4 .word 0x200000f4 -0803f2dc : +0803f248 : uint32_t lv_label_get_letter_on(const lv_obj_t * obj, lv_point_t * pos_in) { - 803f2dc: b590 push {r4, r7, lr} - 803f2de: b09d sub sp, #116 ; 0x74 - 803f2e0: af02 add r7, sp, #8 - 803f2e2: 6078 str r0, [r7, #4] - 803f2e4: 6039 str r1, [r7, #0] + 803f248: b590 push {r4, r7, lr} + 803f24a: b09d sub sp, #116 ; 0x74 + 803f24c: af02 add r7, sp, #8 + 803f24e: 6078 str r0, [r7, #4] + 803f250: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); LV_ASSERT_NULL(pos_in); - 803f2e6: 683b ldr r3, [r7, #0] - 803f2e8: 2b00 cmp r3, #0 - 803f2ea: d100 bne.n 803f2ee - 803f2ec: e7fe b.n 803f2ec + 803f252: 683b ldr r3, [r7, #0] + 803f254: 2b00 cmp r3, #0 + 803f256: d100 bne.n 803f25a + 803f258: e7fe b.n 803f258 lv_label_t * label = (lv_label_t *)obj; - 803f2ee: 687b ldr r3, [r7, #4] - 803f2f0: 653b str r3, [r7, #80] ; 0x50 + 803f25a: 687b ldr r3, [r7, #4] + 803f25c: 653b str r3, [r7, #80] ; 0x50 lv_point_t pos; pos.x = pos_in->x - lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 803f2f2: 683b ldr r3, [r7, #0] - 803f2f4: f9b3 3000 ldrsh.w r3, [r3] - 803f2f8: b29c uxth r4, r3 - 803f2fa: 2100 movs r1, #0 - 803f2fc: 6878 ldr r0, [r7, #4] - 803f2fe: f7ff fc6d bl 803ebdc - 803f302: 4603 mov r3, r0 - 803f304: b29b uxth r3, r3 - 803f306: 1ae3 subs r3, r4, r3 - 803f308: b29b uxth r3, r3 - 803f30a: b21b sxth r3, r3 - 803f30c: 84bb strh r3, [r7, #36] ; 0x24 + 803f25e: 683b ldr r3, [r7, #0] + 803f260: f9b3 3000 ldrsh.w r3, [r3] + 803f264: b29c uxth r4, r3 + 803f266: 2100 movs r1, #0 + 803f268: 6878 ldr r0, [r7, #4] + 803f26a: f7ff fc6d bl 803eb48 + 803f26e: 4603 mov r3, r0 + 803f270: b29b uxth r3, r3 + 803f272: 1ae3 subs r3, r4, r3 + 803f274: b29b uxth r3, r3 + 803f276: b21b sxth r3, r3 + 803f278: 84bb strh r3, [r7, #36] ; 0x24 pos.y = pos_in->y - lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 803f30e: 683b ldr r3, [r7, #0] - 803f310: f9b3 3002 ldrsh.w r3, [r3, #2] - 803f314: b29c uxth r4, r3 - 803f316: 2100 movs r1, #0 - 803f318: 6878 ldr r0, [r7, #4] - 803f31a: f7ff fc4c bl 803ebb6 - 803f31e: 4603 mov r3, r0 - 803f320: b29b uxth r3, r3 - 803f322: 1ae3 subs r3, r4, r3 - 803f324: b29b uxth r3, r3 - 803f326: b21b sxth r3, r3 - 803f328: 84fb strh r3, [r7, #38] ; 0x26 + 803f27a: 683b ldr r3, [r7, #0] + 803f27c: f9b3 3002 ldrsh.w r3, [r3, #2] + 803f280: b29c uxth r4, r3 + 803f282: 2100 movs r1, #0 + 803f284: 6878 ldr r0, [r7, #4] + 803f286: f7ff fc4c bl 803eb22 + 803f28a: 4603 mov r3, r0 + 803f28c: b29b uxth r3, r3 + 803f28e: 1ae3 subs r3, r4, r3 + 803f290: b29b uxth r3, r3 + 803f292: b21b sxth r3, r3 + 803f294: 84fb strh r3, [r7, #38] ; 0x26 lv_area_t txt_coords; lv_obj_get_content_coords(obj, &txt_coords); - 803f32a: f107 031c add.w r3, r7, #28 - 803f32e: 4619 mov r1, r3 - 803f330: 6878 ldr r0, [r7, #4] - 803f332: f7ca ff7b bl 800a22c + 803f296: f107 031c add.w r3, r7, #28 + 803f29a: 4619 mov r1, r3 + 803f29c: 6878 ldr r0, [r7, #4] + 803f29e: f7ca ff8f bl 800a1c0 const char * txt = lv_label_get_text(obj); - 803f336: 6878 ldr r0, [r7, #4] - 803f338: f7ff fe44 bl 803efc4 - 803f33c: 64f8 str r0, [r7, #76] ; 0x4c + 803f2a2: 6878 ldr r0, [r7, #4] + 803f2a4: f7ff fe44 bl 803ef30 + 803f2a8: 64f8 str r0, [r7, #76] ; 0x4c uint32_t line_start = 0; - 803f33e: 2300 movs r3, #0 - 803f340: 667b str r3, [r7, #100] ; 0x64 + 803f2aa: 2300 movs r3, #0 + 803f2ac: 667b str r3, [r7, #100] ; 0x64 uint32_t new_line_start = 0; - 803f342: 2300 movs r3, #0 - 803f344: 663b str r3, [r7, #96] ; 0x60 + 803f2ae: 2300 movs r3, #0 + 803f2b0: 663b str r3, [r7, #96] ; 0x60 lv_coord_t max_w = lv_area_get_width(&txt_coords); - 803f346: f107 031c add.w r3, r7, #28 - 803f34a: 4618 mov r0, r3 - 803f34c: f7ff fb66 bl 803ea1c - 803f350: 4603 mov r3, r0 - 803f352: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 803f2b2: f107 031c add.w r3, r7, #28 + 803f2b6: 4618 mov r0, r3 + 803f2b8: f7ff fb66 bl 803e988 + 803f2bc: 4603 mov r3, r0 + 803f2be: f8a7 304a strh.w r3, [r7, #74] ; 0x4a const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 803f356: 2100 movs r1, #0 - 803f358: 6878 ldr r0, [r7, #4] - 803f35a: f7ff fc75 bl 803ec48 - 803f35e: 6478 str r0, [r7, #68] ; 0x44 + 803f2c2: 2100 movs r1, #0 + 803f2c4: 6878 ldr r0, [r7, #4] + 803f2c6: f7ff fc75 bl 803ebb4 + 803f2ca: 6478 str r0, [r7, #68] ; 0x44 lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN); - 803f360: 2100 movs r1, #0 - 803f362: 6878 ldr r0, [r7, #4] - 803f364: f7ff fc95 bl 803ec92 - 803f368: 4603 mov r3, r0 - 803f36a: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 803f2cc: 2100 movs r1, #0 + 803f2ce: 6878 ldr r0, [r7, #4] + 803f2d0: f7ff fc95 bl 803ebfe + 803f2d4: 4603 mov r3, r0 + 803f2d6: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 lv_coord_t letter_space = lv_obj_get_style_text_letter_space(obj, LV_PART_MAIN); - 803f36e: 2100 movs r1, #0 - 803f370: 6878 ldr r0, [r7, #4] - 803f372: f7ff fc7b bl 803ec6c - 803f376: 4603 mov r3, r0 - 803f378: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 803f2da: 2100 movs r1, #0 + 803f2dc: 6878 ldr r0, [r7, #4] + 803f2de: f7ff fc7b bl 803ebd8 + 803f2e2: 4603 mov r3, r0 + 803f2e4: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 lv_coord_t letter_height = lv_font_get_line_height(font); - 803f37c: 6c78 ldr r0, [r7, #68] ; 0x44 - 803f37e: f7ff fb79 bl 803ea74 - 803f382: 4603 mov r3, r0 - 803f384: 87fb strh r3, [r7, #62] ; 0x3e + 803f2e8: 6c78 ldr r0, [r7, #68] ; 0x44 + 803f2ea: f7ff fb79 bl 803e9e0 + 803f2ee: 4603 mov r3, r0 + 803f2f0: 87fb strh r3, [r7, #62] ; 0x3e lv_coord_t y = 0; - 803f386: 2300 movs r3, #0 - 803f388: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 803f2f2: 2300 movs r3, #0 + 803f2f4: f8a7 305e strh.w r3, [r7, #94] ; 0x5e lv_text_flag_t flag = LV_TEXT_FLAG_NONE; - 803f38c: 2300 movs r3, #0 - 803f38e: f887 305d strb.w r3, [r7, #93] ; 0x5d + 803f2f8: 2300 movs r3, #0 + 803f2fa: f887 305d strb.w r3, [r7, #93] ; 0x5d uint32_t logical_pos; char * bidi_txt; if(label->recolor != 0) flag |= LV_TEXT_FLAG_RECOLOR; - 803f392: 6d3b ldr r3, [r7, #80] ; 0x50 - 803f394: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803f398: f003 0310 and.w r3, r3, #16 - 803f39c: b2db uxtb r3, r3 - 803f39e: 2b00 cmp r3, #0 - 803f3a0: d005 beq.n 803f3ae - 803f3a2: f897 305d ldrb.w r3, [r7, #93] ; 0x5d - 803f3a6: f043 0301 orr.w r3, r3, #1 - 803f3aa: f887 305d strb.w r3, [r7, #93] ; 0x5d + 803f2fe: 6d3b ldr r3, [r7, #80] ; 0x50 + 803f300: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803f304: f003 0310 and.w r3, r3, #16 + 803f308: b2db uxtb r3, r3 + 803f30a: 2b00 cmp r3, #0 + 803f30c: d005 beq.n 803f31a + 803f30e: f897 305d ldrb.w r3, [r7, #93] ; 0x5d + 803f312: f043 0301 orr.w r3, r3, #1 + 803f316: f887 305d strb.w r3, [r7, #93] ; 0x5d if(label->expand != 0) flag |= LV_TEXT_FLAG_EXPAND; - 803f3ae: 6d3b ldr r3, [r7, #80] ; 0x50 - 803f3b0: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803f3b4: f003 0320 and.w r3, r3, #32 - 803f3b8: b2db uxtb r3, r3 - 803f3ba: 2b00 cmp r3, #0 - 803f3bc: d005 beq.n 803f3ca - 803f3be: f897 305d ldrb.w r3, [r7, #93] ; 0x5d - 803f3c2: f043 0302 orr.w r3, r3, #2 - 803f3c6: f887 305d strb.w r3, [r7, #93] ; 0x5d + 803f31a: 6d3b ldr r3, [r7, #80] ; 0x50 + 803f31c: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803f320: f003 0320 and.w r3, r3, #32 + 803f324: b2db uxtb r3, r3 + 803f326: 2b00 cmp r3, #0 + 803f328: d005 beq.n 803f336 + 803f32a: f897 305d ldrb.w r3, [r7, #93] ; 0x5d + 803f32e: f043 0302 orr.w r3, r3, #2 + 803f332: f887 305d strb.w r3, [r7, #93] ; 0x5d if(lv_obj_get_style_width(obj, LV_PART_MAIN) == LV_SIZE_CONTENT && !obj->w_layout) flag |= LV_TEXT_FLAG_FIT; - 803f3ca: 2100 movs r1, #0 - 803f3cc: 6878 ldr r0, [r7, #4] - 803f3ce: f7ff fbdf bl 803eb90 - 803f3d2: 4603 mov r3, r0 - 803f3d4: 461a mov r2, r3 - 803f3d6: f242 73d1 movw r3, #10193 ; 0x27d1 - 803f3da: 429a cmp r2, r3 - 803f3dc: d10d bne.n 803f3fa - 803f3de: 687b ldr r3, [r7, #4] - 803f3e0: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 803f3e4: f003 0304 and.w r3, r3, #4 - 803f3e8: b2db uxtb r3, r3 - 803f3ea: 2b00 cmp r3, #0 - 803f3ec: d105 bne.n 803f3fa - 803f3ee: f897 305d ldrb.w r3, [r7, #93] ; 0x5d - 803f3f2: f043 0304 orr.w r3, r3, #4 - 803f3f6: f887 305d strb.w r3, [r7, #93] ; 0x5d + 803f336: 2100 movs r1, #0 + 803f338: 6878 ldr r0, [r7, #4] + 803f33a: f7ff fbdf bl 803eafc + 803f33e: 4603 mov r3, r0 + 803f340: 461a mov r2, r3 + 803f342: f242 73d1 movw r3, #10193 ; 0x27d1 + 803f346: 429a cmp r2, r3 + 803f348: d10d bne.n 803f366 + 803f34a: 687b ldr r3, [r7, #4] + 803f34c: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 803f350: f003 0304 and.w r3, r3, #4 + 803f354: b2db uxtb r3, r3 + 803f356: 2b00 cmp r3, #0 + 803f358: d105 bne.n 803f366 + 803f35a: f897 305d ldrb.w r3, [r7, #93] ; 0x5d + 803f35e: f043 0304 orr.w r3, r3, #4 + 803f362: f887 305d strb.w r3, [r7, #93] ; 0x5d lv_text_align_t align = lv_obj_calculate_style_text_align(obj, LV_PART_MAIN, label->text); - 803f3fa: 6d3b ldr r3, [r7, #80] ; 0x50 - 803f3fc: 6a5b ldr r3, [r3, #36] ; 0x24 - 803f3fe: 461a mov r2, r3 - 803f400: 2100 movs r1, #0 - 803f402: 6878 ldr r0, [r7, #4] - 803f404: f7cf f95c bl 800e6c0 - 803f408: 4603 mov r3, r0 - 803f40a: f887 303d strb.w r3, [r7, #61] ; 0x3d + 803f366: 6d3b ldr r3, [r7, #80] ; 0x50 + 803f368: 6a5b ldr r3, [r3, #36] ; 0x24 + 803f36a: 461a mov r2, r3 + 803f36c: 2100 movs r1, #0 + 803f36e: 6878 ldr r0, [r7, #4] + 803f370: f7cf f970 bl 800e654 + 803f374: 4603 mov r3, r0 + 803f376: f887 303d strb.w r3, [r7, #61] ; 0x3d /*Search the line of the index letter*/; while(txt[line_start] != '\0') { - 803f40e: e041 b.n 803f494 + 803f37a: e041 b.n 803f400 new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, NULL, flag); - 803f410: 6cfa ldr r2, [r7, #76] ; 0x4c - 803f412: 6e7b ldr r3, [r7, #100] ; 0x64 - 803f414: 18d0 adds r0, r2, r3 - 803f416: f9b7 104a ldrsh.w r1, [r7, #74] ; 0x4a - 803f41a: f9b7 2040 ldrsh.w r2, [r7, #64] ; 0x40 - 803f41e: f897 305d ldrb.w r3, [r7, #93] ; 0x5d - 803f422: 9301 str r3, [sp, #4] - 803f424: 2300 movs r3, #0 - 803f426: 9300 str r3, [sp, #0] - 803f428: 460b mov r3, r1 - 803f42a: 6c79 ldr r1, [r7, #68] ; 0x44 - 803f42c: f7f6 ffc8 bl 80363c0 <_lv_txt_get_next_line> - 803f430: 4602 mov r2, r0 - 803f432: 6e3b ldr r3, [r7, #96] ; 0x60 - 803f434: 4413 add r3, r2 - 803f436: 663b str r3, [r7, #96] ; 0x60 + 803f37c: 6cfa ldr r2, [r7, #76] ; 0x4c + 803f37e: 6e7b ldr r3, [r7, #100] ; 0x64 + 803f380: 18d0 adds r0, r2, r3 + 803f382: f9b7 104a ldrsh.w r1, [r7, #74] ; 0x4a + 803f386: f9b7 2040 ldrsh.w r2, [r7, #64] ; 0x40 + 803f38a: f897 305d ldrb.w r3, [r7, #93] ; 0x5d + 803f38e: 9301 str r3, [sp, #4] + 803f390: 2300 movs r3, #0 + 803f392: 9300 str r3, [sp, #0] + 803f394: 460b mov r3, r1 + 803f396: 6c79 ldr r1, [r7, #68] ; 0x44 + 803f398: f7f6 ffc8 bl 803632c <_lv_txt_get_next_line> + 803f39c: 4602 mov r2, r0 + 803f39e: 6e3b ldr r3, [r7, #96] ; 0x60 + 803f3a0: 4413 add r3, r2 + 803f3a2: 663b str r3, [r7, #96] ; 0x60 if(pos.y <= y + letter_height) { - 803f438: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 803f43c: 4619 mov r1, r3 - 803f43e: f9b7 205e ldrsh.w r2, [r7, #94] ; 0x5e - 803f442: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 803f446: 4413 add r3, r2 - 803f448: 4299 cmp r1, r3 - 803f44a: dc16 bgt.n 803f47a + 803f3a4: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 803f3a8: 4619 mov r1, r3 + 803f3aa: f9b7 205e ldrsh.w r2, [r7, #94] ; 0x5e + 803f3ae: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 803f3b2: 4413 add r3, r2 + 803f3b4: 4299 cmp r1, r3 + 803f3b6: dc16 bgt.n 803f3e6 /*The line is found (stored in 'line_start')*/ /*Include the NULL terminator in the last line*/ uint32_t tmp = new_line_start; - 803f44c: 6e3b ldr r3, [r7, #96] ; 0x60 - 803f44e: 613b str r3, [r7, #16] + 803f3b8: 6e3b ldr r3, [r7, #96] ; 0x60 + 803f3ba: 613b str r3, [r7, #16] uint32_t letter; letter = _lv_txt_encoded_prev(txt, &tmp); - 803f450: 4b7b ldr r3, [pc, #492] ; (803f640 ) - 803f452: 681b ldr r3, [r3, #0] - 803f454: f107 0210 add.w r2, r7, #16 - 803f458: 4611 mov r1, r2 - 803f45a: 6cf8 ldr r0, [r7, #76] ; 0x4c - 803f45c: 4798 blx r3 - 803f45e: 63b8 str r0, [r7, #56] ; 0x38 + 803f3bc: 4b7b ldr r3, [pc, #492] ; (803f5ac ) + 803f3be: 681b ldr r3, [r3, #0] + 803f3c0: f107 0210 add.w r2, r7, #16 + 803f3c4: 4611 mov r1, r2 + 803f3c6: 6cf8 ldr r0, [r7, #76] ; 0x4c + 803f3c8: 4798 blx r3 + 803f3ca: 63b8 str r0, [r7, #56] ; 0x38 if(letter != '\n' && txt[new_line_start] == '\0') new_line_start++; - 803f460: 6bbb ldr r3, [r7, #56] ; 0x38 - 803f462: 2b0a cmp r3, #10 - 803f464: d01d beq.n 803f4a2 - 803f466: 6cfa ldr r2, [r7, #76] ; 0x4c - 803f468: 6e3b ldr r3, [r7, #96] ; 0x60 - 803f46a: 4413 add r3, r2 - 803f46c: 781b ldrb r3, [r3, #0] - 803f46e: 2b00 cmp r3, #0 - 803f470: d117 bne.n 803f4a2 - 803f472: 6e3b ldr r3, [r7, #96] ; 0x60 - 803f474: 3301 adds r3, #1 - 803f476: 663b str r3, [r7, #96] ; 0x60 + 803f3cc: 6bbb ldr r3, [r7, #56] ; 0x38 + 803f3ce: 2b0a cmp r3, #10 + 803f3d0: d01d beq.n 803f40e + 803f3d2: 6cfa ldr r2, [r7, #76] ; 0x4c + 803f3d4: 6e3b ldr r3, [r7, #96] ; 0x60 + 803f3d6: 4413 add r3, r2 + 803f3d8: 781b ldrb r3, [r3, #0] + 803f3da: 2b00 cmp r3, #0 + 803f3dc: d117 bne.n 803f40e + 803f3de: 6e3b ldr r3, [r7, #96] ; 0x60 + 803f3e0: 3301 adds r3, #1 + 803f3e2: 663b str r3, [r7, #96] ; 0x60 break; - 803f478: e013 b.n 803f4a2 + 803f3e4: e013 b.n 803f40e } y += letter_height + line_space; - 803f47a: 8ffa ldrh r2, [r7, #62] ; 0x3e - 803f47c: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 - 803f480: 4413 add r3, r2 - 803f482: b29a uxth r2, r3 - 803f484: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e - 803f488: 4413 add r3, r2 - 803f48a: b29b uxth r3, r3 - 803f48c: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 803f3e6: 8ffa ldrh r2, [r7, #62] ; 0x3e + 803f3e8: f8b7 3042 ldrh.w r3, [r7, #66] ; 0x42 + 803f3ec: 4413 add r3, r2 + 803f3ee: b29a uxth r2, r3 + 803f3f0: f8b7 305e ldrh.w r3, [r7, #94] ; 0x5e + 803f3f4: 4413 add r3, r2 + 803f3f6: b29b uxth r3, r3 + 803f3f8: f8a7 305e strh.w r3, [r7, #94] ; 0x5e line_start = new_line_start; - 803f490: 6e3b ldr r3, [r7, #96] ; 0x60 - 803f492: 667b str r3, [r7, #100] ; 0x64 + 803f3fc: 6e3b ldr r3, [r7, #96] ; 0x60 + 803f3fe: 667b str r3, [r7, #100] ; 0x64 while(txt[line_start] != '\0') { - 803f494: 6cfa ldr r2, [r7, #76] ; 0x4c - 803f496: 6e7b ldr r3, [r7, #100] ; 0x64 - 803f498: 4413 add r3, r2 - 803f49a: 781b ldrb r3, [r3, #0] - 803f49c: 2b00 cmp r3, #0 - 803f49e: d1b7 bne.n 803f410 - 803f4a0: e000 b.n 803f4a4 + 803f400: 6cfa ldr r2, [r7, #76] ; 0x4c + 803f402: 6e7b ldr r3, [r7, #100] ; 0x64 + 803f404: 4413 add r3, r2 + 803f406: 781b ldrb r3, [r3, #0] + 803f408: 2b00 cmp r3, #0 + 803f40a: d1b7 bne.n 803f37c + 803f40c: e000 b.n 803f410 break; - 803f4a2: bf00 nop + 803f40e: bf00 nop bidi_txt = lv_mem_buf_get(new_line_start - line_start + 1); uint32_t txt_len = new_line_start - line_start; if(new_line_start > 0 && txt[new_line_start - 1] == '\0' && txt_len > 0) txt_len--; _lv_bidi_process_paragraph(txt + line_start, bidi_txt, txt_len, lv_obj_get_style_base_dir(obj, LV_PART_MAIN), NULL, 0); #else bidi_txt = (char *)txt + line_start; - 803f4a4: 6cfa ldr r2, [r7, #76] ; 0x4c - 803f4a6: 6e7b ldr r3, [r7, #100] ; 0x64 - 803f4a8: 4413 add r3, r2 - 803f4aa: 637b str r3, [r7, #52] ; 0x34 + 803f410: 6cfa ldr r2, [r7, #76] ; 0x4c + 803f412: 6e7b ldr r3, [r7, #100] ; 0x64 + 803f414: 4413 add r3, r2 + 803f416: 637b str r3, [r7, #52] ; 0x34 #endif /*Calculate the x coordinate*/ lv_coord_t x = 0; - 803f4ac: 2300 movs r3, #0 - 803f4ae: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 803f418: 2300 movs r3, #0 + 803f41a: f8a7 305a strh.w r3, [r7, #90] ; 0x5a if(align == LV_TEXT_ALIGN_CENTER) { - 803f4b2: f897 303d ldrb.w r3, [r7, #61] ; 0x3d - 803f4b6: 2b02 cmp r3, #2 - 803f4b8: d128 bne.n 803f50c + 803f41e: f897 303d ldrb.w r3, [r7, #61] ; 0x3d + 803f422: 2b02 cmp r3, #2 + 803f424: d128 bne.n 803f478 lv_coord_t line_w; line_w = lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag); - 803f4ba: 6e3a ldr r2, [r7, #96] ; 0x60 - 803f4bc: 6e7b ldr r3, [r7, #100] ; 0x64 - 803f4be: 1ad1 subs r1, r2, r3 - 803f4c0: f9b7 2040 ldrsh.w r2, [r7, #64] ; 0x40 - 803f4c4: f897 305d ldrb.w r3, [r7, #93] ; 0x5d - 803f4c8: 9300 str r3, [sp, #0] - 803f4ca: 4613 mov r3, r2 - 803f4cc: 6c7a ldr r2, [r7, #68] ; 0x44 - 803f4ce: 6b78 ldr r0, [r7, #52] ; 0x34 - 803f4d0: f7f7 f854 bl 803657c - 803f4d4: 4603 mov r3, r0 - 803f4d6: 863b strh r3, [r7, #48] ; 0x30 + 803f426: 6e3a ldr r2, [r7, #96] ; 0x60 + 803f428: 6e7b ldr r3, [r7, #100] ; 0x64 + 803f42a: 1ad1 subs r1, r2, r3 + 803f42c: f9b7 2040 ldrsh.w r2, [r7, #64] ; 0x40 + 803f430: f897 305d ldrb.w r3, [r7, #93] ; 0x5d + 803f434: 9300 str r3, [sp, #0] + 803f436: 4613 mov r3, r2 + 803f438: 6c7a ldr r2, [r7, #68] ; 0x44 + 803f43a: 6b78 ldr r0, [r7, #52] ; 0x34 + 803f43c: f7f7 f854 bl 80364e8 + 803f440: 4603 mov r3, r0 + 803f442: 863b strh r3, [r7, #48] ; 0x30 x += lv_area_get_width(&txt_coords) / 2 - line_w / 2; - 803f4d8: f107 031c add.w r3, r7, #28 - 803f4dc: 4618 mov r0, r3 - 803f4de: f7ff fa9d bl 803ea1c - 803f4e2: 4603 mov r3, r0 - 803f4e4: 0fda lsrs r2, r3, #31 - 803f4e6: 4413 add r3, r2 - 803f4e8: 105b asrs r3, r3, #1 - 803f4ea: b21b sxth r3, r3 - 803f4ec: 4619 mov r1, r3 - 803f4ee: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 803f4f2: 0fda lsrs r2, r3, #31 - 803f4f4: 4413 add r3, r2 - 803f4f6: 105b asrs r3, r3, #1 - 803f4f8: b21b sxth r3, r3 - 803f4fa: 1acb subs r3, r1, r3 - 803f4fc: b29a uxth r2, r3 - 803f4fe: f8b7 305a ldrh.w r3, [r7, #90] ; 0x5a - 803f502: 4413 add r3, r2 - 803f504: b29b uxth r3, r3 - 803f506: f8a7 305a strh.w r3, [r7, #90] ; 0x5a - 803f50a: e023 b.n 803f554 + 803f444: f107 031c add.w r3, r7, #28 + 803f448: 4618 mov r0, r3 + 803f44a: f7ff fa9d bl 803e988 + 803f44e: 4603 mov r3, r0 + 803f450: 0fda lsrs r2, r3, #31 + 803f452: 4413 add r3, r2 + 803f454: 105b asrs r3, r3, #1 + 803f456: b21b sxth r3, r3 + 803f458: 4619 mov r1, r3 + 803f45a: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 803f45e: 0fda lsrs r2, r3, #31 + 803f460: 4413 add r3, r2 + 803f462: 105b asrs r3, r3, #1 + 803f464: b21b sxth r3, r3 + 803f466: 1acb subs r3, r1, r3 + 803f468: b29a uxth r2, r3 + 803f46a: f8b7 305a ldrh.w r3, [r7, #90] ; 0x5a + 803f46e: 4413 add r3, r2 + 803f470: b29b uxth r3, r3 + 803f472: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 803f476: e023 b.n 803f4c0 } else if(align == LV_TEXT_ALIGN_RIGHT) { - 803f50c: f897 303d ldrb.w r3, [r7, #61] ; 0x3d - 803f510: 2b03 cmp r3, #3 - 803f512: d11f bne.n 803f554 + 803f478: f897 303d ldrb.w r3, [r7, #61] ; 0x3d + 803f47c: 2b03 cmp r3, #3 + 803f47e: d11f bne.n 803f4c0 lv_coord_t line_w; line_w = lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag); - 803f514: 6e3a ldr r2, [r7, #96] ; 0x60 - 803f516: 6e7b ldr r3, [r7, #100] ; 0x64 - 803f518: 1ad1 subs r1, r2, r3 - 803f51a: f9b7 2040 ldrsh.w r2, [r7, #64] ; 0x40 - 803f51e: f897 305d ldrb.w r3, [r7, #93] ; 0x5d - 803f522: 9300 str r3, [sp, #0] - 803f524: 4613 mov r3, r2 - 803f526: 6c7a ldr r2, [r7, #68] ; 0x44 - 803f528: 6b78 ldr r0, [r7, #52] ; 0x34 - 803f52a: f7f7 f827 bl 803657c - 803f52e: 4603 mov r3, r0 - 803f530: 867b strh r3, [r7, #50] ; 0x32 + 803f480: 6e3a ldr r2, [r7, #96] ; 0x60 + 803f482: 6e7b ldr r3, [r7, #100] ; 0x64 + 803f484: 1ad1 subs r1, r2, r3 + 803f486: f9b7 2040 ldrsh.w r2, [r7, #64] ; 0x40 + 803f48a: f897 305d ldrb.w r3, [r7, #93] ; 0x5d + 803f48e: 9300 str r3, [sp, #0] + 803f490: 4613 mov r3, r2 + 803f492: 6c7a ldr r2, [r7, #68] ; 0x44 + 803f494: 6b78 ldr r0, [r7, #52] ; 0x34 + 803f496: f7f7 f827 bl 80364e8 + 803f49a: 4603 mov r3, r0 + 803f49c: 867b strh r3, [r7, #50] ; 0x32 x += lv_area_get_width(&txt_coords) - line_w; - 803f532: f107 031c add.w r3, r7, #28 - 803f536: 4618 mov r0, r3 - 803f538: f7ff fa70 bl 803ea1c - 803f53c: 4603 mov r3, r0 - 803f53e: 461a mov r2, r3 - 803f540: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 - 803f544: 1ad3 subs r3, r2, r3 - 803f546: b29a uxth r2, r3 - 803f548: f8b7 305a ldrh.w r3, [r7, #90] ; 0x5a - 803f54c: 4413 add r3, r2 - 803f54e: b29b uxth r3, r3 - 803f550: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 803f49e: f107 031c add.w r3, r7, #28 + 803f4a2: 4618 mov r0, r3 + 803f4a4: f7ff fa70 bl 803e988 + 803f4a8: 4603 mov r3, r0 + 803f4aa: 461a mov r2, r3 + 803f4ac: f9b7 3032 ldrsh.w r3, [r7, #50] ; 0x32 + 803f4b0: 1ad3 subs r3, r2, r3 + 803f4b2: b29a uxth r2, r3 + 803f4b4: f8b7 305a ldrh.w r3, [r7, #90] ; 0x5a + 803f4b8: 4413 add r3, r2 + 803f4ba: b29b uxth r3, r3 + 803f4bc: f8a7 305a strh.w r3, [r7, #90] ; 0x5a } lv_text_cmd_state_t cmd_state = LV_TEXT_CMD_STATE_WAIT; - 803f554: 2300 movs r3, #0 - 803f556: 76fb strb r3, [r7, #27] + 803f4c0: 2300 movs r3, #0 + 803f4c2: 76fb strb r3, [r7, #27] uint32_t i = 0; - 803f558: 2300 movs r3, #0 - 803f55a: 617b str r3, [r7, #20] + 803f4c4: 2300 movs r3, #0 + 803f4c6: 617b str r3, [r7, #20] uint32_t i_act = i; - 803f55c: 697b ldr r3, [r7, #20] - 803f55e: 657b str r3, [r7, #84] ; 0x54 + 803f4c8: 697b ldr r3, [r7, #20] + 803f4ca: 657b str r3, [r7, #84] ; 0x54 if(new_line_start > 0) { - 803f560: 6e3b ldr r3, [r7, #96] ; 0x60 - 803f562: 2b00 cmp r3, #0 - 803f564: d058 beq.n 803f618 + 803f4cc: 6e3b ldr r3, [r7, #96] ; 0x60 + 803f4ce: 2b00 cmp r3, #0 + 803f4d0: d058 beq.n 803f584 while(i + line_start < new_line_start) { - 803f566: e051 b.n 803f60c + 803f4d2: e051 b.n 803f578 /*Get the current letter and the next letter for kerning*/ /*Be careful 'i' already points to the next character*/ uint32_t letter; uint32_t letter_next; _lv_txt_encoded_letter_next_2(bidi_txt, &letter, &letter_next, &i); - 803f568: f107 0314 add.w r3, r7, #20 - 803f56c: f107 0208 add.w r2, r7, #8 - 803f570: f107 010c add.w r1, r7, #12 - 803f574: 6b78 ldr r0, [r7, #52] ; 0x34 - 803f576: f7f7 f953 bl 8036820 <_lv_txt_encoded_letter_next_2> + 803f4d4: f107 0314 add.w r3, r7, #20 + 803f4d8: f107 0208 add.w r2, r7, #8 + 803f4dc: f107 010c add.w r1, r7, #12 + 803f4e0: 6b78 ldr r0, [r7, #52] ; 0x34 + 803f4e2: f7f7 f953 bl 803678c <_lv_txt_encoded_letter_next_2> /*Handle the recolor command*/ if((flag & LV_TEXT_FLAG_RECOLOR) != 0) { - 803f57a: f897 305d ldrb.w r3, [r7, #93] ; 0x5d - 803f57e: f003 0301 and.w r3, r3, #1 - 803f582: 2b00 cmp r3, #0 - 803f584: d00e beq.n 803f5a4 + 803f4e6: f897 305d ldrb.w r3, [r7, #93] ; 0x5d + 803f4ea: f003 0301 and.w r3, r3, #1 + 803f4ee: 2b00 cmp r3, #0 + 803f4f0: d00e beq.n 803f510 if(_lv_txt_is_cmd(&cmd_state, bidi_txt[i]) != false) { - 803f586: 697b ldr r3, [r7, #20] - 803f588: 6b7a ldr r2, [r7, #52] ; 0x34 - 803f58a: 4413 add r3, r2 - 803f58c: 781b ldrb r3, [r3, #0] - 803f58e: 461a mov r2, r3 - 803f590: f107 031b add.w r3, r7, #27 - 803f594: 4611 mov r1, r2 - 803f596: 4618 mov r0, r3 - 803f598: f7f7 f854 bl 8036644 <_lv_txt_is_cmd> - 803f59c: 4603 mov r3, r0 - 803f59e: 2b00 cmp r3, #0 - 803f5a0: d000 beq.n 803f5a4 - 803f5a2: e033 b.n 803f60c + 803f4f2: 697b ldr r3, [r7, #20] + 803f4f4: 6b7a ldr r2, [r7, #52] ; 0x34 + 803f4f6: 4413 add r3, r2 + 803f4f8: 781b ldrb r3, [r3, #0] + 803f4fa: 461a mov r2, r3 + 803f4fc: f107 031b add.w r3, r7, #27 + 803f500: 4611 mov r1, r2 + 803f502: 4618 mov r0, r3 + 803f504: f7f7 f854 bl 80365b0 <_lv_txt_is_cmd> + 803f508: 4603 mov r3, r0 + 803f50a: 2b00 cmp r3, #0 + 803f50c: d000 beq.n 803f510 + 803f50e: e033 b.n 803f578 continue; /*Skip the letter if it is part of a command*/ } } lv_coord_t gw = lv_font_get_glyph_width(font, letter, letter_next); - 803f5a4: 68fb ldr r3, [r7, #12] - 803f5a6: 68ba ldr r2, [r7, #8] - 803f5a8: 4619 mov r1, r3 - 803f5aa: 6c78 ldr r0, [r7, #68] ; 0x44 - 803f5ac: f7f0 fab6 bl 802fb1c - 803f5b0: 4603 mov r3, r0 - 803f5b2: 85fb strh r3, [r7, #46] ; 0x2e + 803f510: 68fb ldr r3, [r7, #12] + 803f512: 68ba ldr r2, [r7, #8] + 803f514: 4619 mov r1, r3 + 803f516: 6c78 ldr r0, [r7, #68] ; 0x44 + 803f518: f7f0 fab6 bl 802fa88 + 803f51c: 4603 mov r3, r0 + 803f51e: 85fb strh r3, [r7, #46] ; 0x2e /*Finish if the x position or the last char of the next line is reached*/ if(pos.x < x + gw || i + line_start == new_line_start || txt[i_act + line_start] == '\0') { - 803f5b4: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 - 803f5b8: 4619 mov r1, r3 - 803f5ba: f9b7 205a ldrsh.w r2, [r7, #90] ; 0x5a - 803f5be: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 803f5c2: 4413 add r3, r2 - 803f5c4: 4299 cmp r1, r3 - 803f5c6: db0d blt.n 803f5e4 - 803f5c8: 697a ldr r2, [r7, #20] - 803f5ca: 6e7b ldr r3, [r7, #100] ; 0x64 - 803f5cc: 4413 add r3, r2 - 803f5ce: 6e3a ldr r2, [r7, #96] ; 0x60 - 803f5d0: 429a cmp r2, r3 - 803f5d2: d007 beq.n 803f5e4 - 803f5d4: 6d7a ldr r2, [r7, #84] ; 0x54 - 803f5d6: 6e7b ldr r3, [r7, #100] ; 0x64 - 803f5d8: 4413 add r3, r2 - 803f5da: 6cfa ldr r2, [r7, #76] ; 0x4c - 803f5dc: 4413 add r3, r2 - 803f5de: 781b ldrb r3, [r3, #0] - 803f5e0: 2b00 cmp r3, #0 - 803f5e2: d102 bne.n 803f5ea + 803f520: f9b7 3024 ldrsh.w r3, [r7, #36] ; 0x24 + 803f524: 4619 mov r1, r3 + 803f526: f9b7 205a ldrsh.w r2, [r7, #90] ; 0x5a + 803f52a: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 803f52e: 4413 add r3, r2 + 803f530: 4299 cmp r1, r3 + 803f532: db0d blt.n 803f550 + 803f534: 697a ldr r2, [r7, #20] + 803f536: 6e7b ldr r3, [r7, #100] ; 0x64 + 803f538: 4413 add r3, r2 + 803f53a: 6e3a ldr r2, [r7, #96] ; 0x60 + 803f53c: 429a cmp r2, r3 + 803f53e: d007 beq.n 803f550 + 803f540: 6d7a ldr r2, [r7, #84] ; 0x54 + 803f542: 6e7b ldr r3, [r7, #100] ; 0x64 + 803f544: 4413 add r3, r2 + 803f546: 6cfa ldr r2, [r7, #76] ; 0x4c + 803f548: 4413 add r3, r2 + 803f54a: 781b ldrb r3, [r3, #0] + 803f54c: 2b00 cmp r3, #0 + 803f54e: d102 bne.n 803f556 i = i_act; - 803f5e4: 6d7b ldr r3, [r7, #84] ; 0x54 - 803f5e6: 617b str r3, [r7, #20] - 803f5e8: e016 b.n 803f618 + 803f550: 6d7b ldr r3, [r7, #84] ; 0x54 + 803f552: 617b str r3, [r7, #20] + 803f554: e016 b.n 803f584 break; } x += gw; - 803f5ea: f8b7 205a ldrh.w r2, [r7, #90] ; 0x5a - 803f5ee: 8dfb ldrh r3, [r7, #46] ; 0x2e - 803f5f0: 4413 add r3, r2 - 803f5f2: b29b uxth r3, r3 - 803f5f4: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 803f556: f8b7 205a ldrh.w r2, [r7, #90] ; 0x5a + 803f55a: 8dfb ldrh r3, [r7, #46] ; 0x2e + 803f55c: 4413 add r3, r2 + 803f55e: b29b uxth r3, r3 + 803f560: f8a7 305a strh.w r3, [r7, #90] ; 0x5a x += letter_space; - 803f5f8: f8b7 205a ldrh.w r2, [r7, #90] ; 0x5a - 803f5fc: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 - 803f600: 4413 add r3, r2 - 803f602: b29b uxth r3, r3 - 803f604: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 803f564: f8b7 205a ldrh.w r2, [r7, #90] ; 0x5a + 803f568: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 + 803f56c: 4413 add r3, r2 + 803f56e: b29b uxth r3, r3 + 803f570: f8a7 305a strh.w r3, [r7, #90] ; 0x5a i_act = i; - 803f608: 697b ldr r3, [r7, #20] - 803f60a: 657b str r3, [r7, #84] ; 0x54 + 803f574: 697b ldr r3, [r7, #20] + 803f576: 657b str r3, [r7, #84] ; 0x54 while(i + line_start < new_line_start) { - 803f60c: 697a ldr r2, [r7, #20] - 803f60e: 6e7b ldr r3, [r7, #100] ; 0x64 - 803f610: 4413 add r3, r2 - 803f612: 6e3a ldr r2, [r7, #96] ; 0x60 - 803f614: 429a cmp r2, r3 - 803f616: d8a7 bhi.n 803f568 + 803f578: 697a ldr r2, [r7, #20] + 803f57a: 6e7b ldr r3, [r7, #100] ; 0x64 + 803f57c: 4413 add r3, r2 + 803f57e: 6e3a ldr r2, [r7, #96] ; 0x60 + 803f580: 429a cmp r2, r3 + 803f582: d8a7 bhi.n 803f4d4 txt_len, lv_obj_get_style_base_dir(obj, LV_PART_MAIN), cid, &is_rtl); if(is_rtl) logical_pos++; } lv_mem_buf_release(bidi_txt); #else logical_pos = _lv_txt_encoded_get_char_id(bidi_txt, i); - 803f618: 4b0a ldr r3, [pc, #40] ; (803f644 ) - 803f61a: 681b ldr r3, [r3, #0] - 803f61c: 697a ldr r2, [r7, #20] - 803f61e: 4611 mov r1, r2 - 803f620: 6b78 ldr r0, [r7, #52] ; 0x34 - 803f622: 4798 blx r3 - 803f624: 62b8 str r0, [r7, #40] ; 0x28 + 803f584: 4b0a ldr r3, [pc, #40] ; (803f5b0 ) + 803f586: 681b ldr r3, [r3, #0] + 803f588: 697a ldr r2, [r7, #20] + 803f58a: 4611 mov r1, r2 + 803f58c: 6b78 ldr r0, [r7, #52] ; 0x34 + 803f58e: 4798 blx r3 + 803f590: 62b8 str r0, [r7, #40] ; 0x28 #endif return logical_pos + _lv_txt_encoded_get_char_id(txt, line_start); - 803f626: 4b07 ldr r3, [pc, #28] ; (803f644 ) - 803f628: 681b ldr r3, [r3, #0] - 803f62a: 6e79 ldr r1, [r7, #100] ; 0x64 - 803f62c: 6cf8 ldr r0, [r7, #76] ; 0x4c - 803f62e: 4798 blx r3 - 803f630: 4602 mov r2, r0 - 803f632: 6abb ldr r3, [r7, #40] ; 0x28 - 803f634: 4413 add r3, r2 + 803f592: 4b07 ldr r3, [pc, #28] ; (803f5b0 ) + 803f594: 681b ldr r3, [r3, #0] + 803f596: 6e79 ldr r1, [r7, #100] ; 0x64 + 803f598: 6cf8 ldr r0, [r7, #76] ; 0x4c + 803f59a: 4798 blx r3 + 803f59c: 4602 mov r2, r0 + 803f59e: 6abb ldr r3, [r7, #40] ; 0x28 + 803f5a0: 4413 add r3, r2 } - 803f636: 4618 mov r0, r3 - 803f638: 376c adds r7, #108 ; 0x6c - 803f63a: 46bd mov sp, r7 - 803f63c: bd90 pop {r4, r7, pc} - 803f63e: bf00 nop - 803f640: 200000f0 .word 0x200000f0 - 803f644: 200000f8 .word 0x200000f8 + 803f5a2: 4618 mov r0, r3 + 803f5a4: 376c adds r7, #108 ; 0x6c + 803f5a6: 46bd mov sp, r7 + 803f5a8: bd90 pop {r4, r7, pc} + 803f5aa: bf00 nop + 803f5ac: 200000f0 .word 0x200000f0 + 803f5b0: 200000f8 .word 0x200000f8 -0803f648 : +0803f5b4 : bool lv_label_is_char_under_pos(const lv_obj_t * obj, lv_point_t * pos) { - 803f648: b580 push {r7, lr} - 803f64a: b098 sub sp, #96 ; 0x60 - 803f64c: af02 add r7, sp, #8 - 803f64e: 6078 str r0, [r7, #4] - 803f650: 6039 str r1, [r7, #0] + 803f5b4: b580 push {r7, lr} + 803f5b6: b098 sub sp, #96 ; 0x60 + 803f5b8: af02 add r7, sp, #8 + 803f5ba: 6078 str r0, [r7, #4] + 803f5bc: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); LV_ASSERT_NULL(pos); - 803f652: 683b ldr r3, [r7, #0] - 803f654: 2b00 cmp r3, #0 - 803f656: d100 bne.n 803f65a - 803f658: e7fe b.n 803f658 + 803f5be: 683b ldr r3, [r7, #0] + 803f5c0: 2b00 cmp r3, #0 + 803f5c2: d100 bne.n 803f5c6 + 803f5c4: e7fe b.n 803f5c4 lv_area_t txt_coords; lv_obj_get_content_coords(obj, &txt_coords); - 803f65a: f107 031c add.w r3, r7, #28 - 803f65e: 4619 mov r1, r3 - 803f660: 6878 ldr r0, [r7, #4] - 803f662: f7ca fde3 bl 800a22c + 803f5c6: f107 031c add.w r3, r7, #28 + 803f5ca: 4619 mov r1, r3 + 803f5cc: 6878 ldr r0, [r7, #4] + 803f5ce: f7ca fdf7 bl 800a1c0 const char * txt = lv_label_get_text(obj); - 803f666: 6878 ldr r0, [r7, #4] - 803f668: f7ff fcac bl 803efc4 - 803f66c: 6438 str r0, [r7, #64] ; 0x40 + 803f5d2: 6878 ldr r0, [r7, #4] + 803f5d4: f7ff fcac bl 803ef30 + 803f5d8: 6438 str r0, [r7, #64] ; 0x40 lv_label_t * label = (lv_label_t *)obj; - 803f66e: 687b ldr r3, [r7, #4] - 803f670: 63fb str r3, [r7, #60] ; 0x3c + 803f5da: 687b ldr r3, [r7, #4] + 803f5dc: 63fb str r3, [r7, #60] ; 0x3c uint32_t line_start = 0; - 803f672: 2300 movs r3, #0 - 803f674: 657b str r3, [r7, #84] ; 0x54 + 803f5de: 2300 movs r3, #0 + 803f5e0: 657b str r3, [r7, #84] ; 0x54 uint32_t new_line_start = 0; - 803f676: 2300 movs r3, #0 - 803f678: 653b str r3, [r7, #80] ; 0x50 + 803f5e2: 2300 movs r3, #0 + 803f5e4: 653b str r3, [r7, #80] ; 0x50 lv_coord_t max_w = lv_area_get_width(&txt_coords); - 803f67a: f107 031c add.w r3, r7, #28 - 803f67e: 4618 mov r0, r3 - 803f680: f7ff f9cc bl 803ea1c - 803f684: 4603 mov r3, r0 - 803f686: 877b strh r3, [r7, #58] ; 0x3a + 803f5e6: f107 031c add.w r3, r7, #28 + 803f5ea: 4618 mov r0, r3 + 803f5ec: f7ff f9cc bl 803e988 + 803f5f0: 4603 mov r3, r0 + 803f5f2: 877b strh r3, [r7, #58] ; 0x3a const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 803f688: 2100 movs r1, #0 - 803f68a: 6878 ldr r0, [r7, #4] - 803f68c: f7ff fadc bl 803ec48 - 803f690: 6378 str r0, [r7, #52] ; 0x34 + 803f5f4: 2100 movs r1, #0 + 803f5f6: 6878 ldr r0, [r7, #4] + 803f5f8: f7ff fadc bl 803ebb4 + 803f5fc: 6378 str r0, [r7, #52] ; 0x34 lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN); - 803f692: 2100 movs r1, #0 - 803f694: 6878 ldr r0, [r7, #4] - 803f696: f7ff fafc bl 803ec92 - 803f69a: 4603 mov r3, r0 - 803f69c: 867b strh r3, [r7, #50] ; 0x32 + 803f5fe: 2100 movs r1, #0 + 803f600: 6878 ldr r0, [r7, #4] + 803f602: f7ff fafc bl 803ebfe + 803f606: 4603 mov r3, r0 + 803f608: 867b strh r3, [r7, #50] ; 0x32 lv_coord_t letter_space = lv_obj_get_style_text_letter_space(obj, LV_PART_MAIN); - 803f69e: 2100 movs r1, #0 - 803f6a0: 6878 ldr r0, [r7, #4] - 803f6a2: f7ff fae3 bl 803ec6c - 803f6a6: 4603 mov r3, r0 - 803f6a8: 863b strh r3, [r7, #48] ; 0x30 + 803f60a: 2100 movs r1, #0 + 803f60c: 6878 ldr r0, [r7, #4] + 803f60e: f7ff fae3 bl 803ebd8 + 803f612: 4603 mov r3, r0 + 803f614: 863b strh r3, [r7, #48] ; 0x30 lv_coord_t letter_height = lv_font_get_line_height(font); - 803f6aa: 6b78 ldr r0, [r7, #52] ; 0x34 - 803f6ac: f7ff f9e2 bl 803ea74 - 803f6b0: 4603 mov r3, r0 - 803f6b2: 85fb strh r3, [r7, #46] ; 0x2e + 803f616: 6b78 ldr r0, [r7, #52] ; 0x34 + 803f618: f7ff f9e2 bl 803e9e0 + 803f61c: 4603 mov r3, r0 + 803f61e: 85fb strh r3, [r7, #46] ; 0x2e lv_text_align_t align = lv_obj_calculate_style_text_align(obj, LV_PART_MAIN, label->text); - 803f6b4: 6bfb ldr r3, [r7, #60] ; 0x3c - 803f6b6: 6a5b ldr r3, [r3, #36] ; 0x24 - 803f6b8: 461a mov r2, r3 - 803f6ba: 2100 movs r1, #0 - 803f6bc: 6878 ldr r0, [r7, #4] - 803f6be: f7ce ffff bl 800e6c0 - 803f6c2: 4603 mov r3, r0 - 803f6c4: f887 302d strb.w r3, [r7, #45] ; 0x2d + 803f620: 6bfb ldr r3, [r7, #60] ; 0x3c + 803f622: 6a5b ldr r3, [r3, #36] ; 0x24 + 803f624: 461a mov r2, r3 + 803f626: 2100 movs r1, #0 + 803f628: 6878 ldr r0, [r7, #4] + 803f62a: f7cf f813 bl 800e654 + 803f62e: 4603 mov r3, r0 + 803f630: f887 302d strb.w r3, [r7, #45] ; 0x2d lv_coord_t y = 0; - 803f6c8: 2300 movs r3, #0 - 803f6ca: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 803f634: 2300 movs r3, #0 + 803f636: f8a7 304e strh.w r3, [r7, #78] ; 0x4e lv_text_flag_t flag = LV_TEXT_FLAG_NONE; - 803f6ce: 2300 movs r3, #0 - 803f6d0: f887 304d strb.w r3, [r7, #77] ; 0x4d + 803f63a: 2300 movs r3, #0 + 803f63c: f887 304d strb.w r3, [r7, #77] ; 0x4d if(label->recolor != 0) flag |= LV_TEXT_FLAG_RECOLOR; - 803f6d4: 6bfb ldr r3, [r7, #60] ; 0x3c - 803f6d6: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803f6da: f003 0310 and.w r3, r3, #16 - 803f6de: b2db uxtb r3, r3 - 803f6e0: 2b00 cmp r3, #0 - 803f6e2: d005 beq.n 803f6f0 - 803f6e4: f897 304d ldrb.w r3, [r7, #77] ; 0x4d - 803f6e8: f043 0301 orr.w r3, r3, #1 - 803f6ec: f887 304d strb.w r3, [r7, #77] ; 0x4d + 803f640: 6bfb ldr r3, [r7, #60] ; 0x3c + 803f642: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803f646: f003 0310 and.w r3, r3, #16 + 803f64a: b2db uxtb r3, r3 + 803f64c: 2b00 cmp r3, #0 + 803f64e: d005 beq.n 803f65c + 803f650: f897 304d ldrb.w r3, [r7, #77] ; 0x4d + 803f654: f043 0301 orr.w r3, r3, #1 + 803f658: f887 304d strb.w r3, [r7, #77] ; 0x4d if(label->expand != 0) flag |= LV_TEXT_FLAG_EXPAND; - 803f6f0: 6bfb ldr r3, [r7, #60] ; 0x3c - 803f6f2: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803f6f6: f003 0320 and.w r3, r3, #32 - 803f6fa: b2db uxtb r3, r3 - 803f6fc: 2b00 cmp r3, #0 - 803f6fe: d005 beq.n 803f70c - 803f700: f897 304d ldrb.w r3, [r7, #77] ; 0x4d - 803f704: f043 0302 orr.w r3, r3, #2 - 803f708: f887 304d strb.w r3, [r7, #77] ; 0x4d + 803f65c: 6bfb ldr r3, [r7, #60] ; 0x3c + 803f65e: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803f662: f003 0320 and.w r3, r3, #32 + 803f666: b2db uxtb r3, r3 + 803f668: 2b00 cmp r3, #0 + 803f66a: d005 beq.n 803f678 + 803f66c: f897 304d ldrb.w r3, [r7, #77] ; 0x4d + 803f670: f043 0302 orr.w r3, r3, #2 + 803f674: f887 304d strb.w r3, [r7, #77] ; 0x4d if(lv_obj_get_style_width(obj, LV_PART_MAIN) == LV_SIZE_CONTENT && !obj->w_layout) flag |= LV_TEXT_FLAG_FIT; - 803f70c: 2100 movs r1, #0 - 803f70e: 6878 ldr r0, [r7, #4] - 803f710: f7ff fa3e bl 803eb90 - 803f714: 4603 mov r3, r0 - 803f716: 461a mov r2, r3 - 803f718: f242 73d1 movw r3, #10193 ; 0x27d1 - 803f71c: 429a cmp r2, r3 - 803f71e: d139 bne.n 803f794 - 803f720: 687b ldr r3, [r7, #4] - 803f722: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 803f726: f003 0304 and.w r3, r3, #4 - 803f72a: b2db uxtb r3, r3 - 803f72c: 2b00 cmp r3, #0 - 803f72e: d131 bne.n 803f794 - 803f730: f897 304d ldrb.w r3, [r7, #77] ; 0x4d - 803f734: f043 0304 orr.w r3, r3, #4 - 803f738: f887 304d strb.w r3, [r7, #77] ; 0x4d + 803f678: 2100 movs r1, #0 + 803f67a: 6878 ldr r0, [r7, #4] + 803f67c: f7ff fa3e bl 803eafc + 803f680: 4603 mov r3, r0 + 803f682: 461a mov r2, r3 + 803f684: f242 73d1 movw r3, #10193 ; 0x27d1 + 803f688: 429a cmp r2, r3 + 803f68a: d139 bne.n 803f700 + 803f68c: 687b ldr r3, [r7, #4] + 803f68e: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 803f692: f003 0304 and.w r3, r3, #4 + 803f696: b2db uxtb r3, r3 + 803f698: 2b00 cmp r3, #0 + 803f69a: d131 bne.n 803f700 + 803f69c: f897 304d ldrb.w r3, [r7, #77] ; 0x4d + 803f6a0: f043 0304 orr.w r3, r3, #4 + 803f6a4: f887 304d strb.w r3, [r7, #77] ; 0x4d /*Search the line of the index letter*/; while(txt[line_start] != '\0') { - 803f73c: e02a b.n 803f794 + 803f6a8: e02a b.n 803f700 new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, NULL, flag); - 803f73e: 6c3a ldr r2, [r7, #64] ; 0x40 - 803f740: 6d7b ldr r3, [r7, #84] ; 0x54 - 803f742: 18d0 adds r0, r2, r3 - 803f744: f9b7 103a ldrsh.w r1, [r7, #58] ; 0x3a - 803f748: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 - 803f74c: f897 304d ldrb.w r3, [r7, #77] ; 0x4d - 803f750: 9301 str r3, [sp, #4] - 803f752: 2300 movs r3, #0 - 803f754: 9300 str r3, [sp, #0] - 803f756: 460b mov r3, r1 - 803f758: 6b79 ldr r1, [r7, #52] ; 0x34 - 803f75a: f7f6 fe31 bl 80363c0 <_lv_txt_get_next_line> - 803f75e: 4602 mov r2, r0 - 803f760: 6d3b ldr r3, [r7, #80] ; 0x50 - 803f762: 4413 add r3, r2 - 803f764: 653b str r3, [r7, #80] ; 0x50 + 803f6aa: 6c3a ldr r2, [r7, #64] ; 0x40 + 803f6ac: 6d7b ldr r3, [r7, #84] ; 0x54 + 803f6ae: 18d0 adds r0, r2, r3 + 803f6b0: f9b7 103a ldrsh.w r1, [r7, #58] ; 0x3a + 803f6b4: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 + 803f6b8: f897 304d ldrb.w r3, [r7, #77] ; 0x4d + 803f6bc: 9301 str r3, [sp, #4] + 803f6be: 2300 movs r3, #0 + 803f6c0: 9300 str r3, [sp, #0] + 803f6c2: 460b mov r3, r1 + 803f6c4: 6b79 ldr r1, [r7, #52] ; 0x34 + 803f6c6: f7f6 fe31 bl 803632c <_lv_txt_get_next_line> + 803f6ca: 4602 mov r2, r0 + 803f6cc: 6d3b ldr r3, [r7, #80] ; 0x50 + 803f6ce: 4413 add r3, r2 + 803f6d0: 653b str r3, [r7, #80] ; 0x50 if(pos->y <= y + letter_height) break; /*The line is found (stored in 'line_start')*/ - 803f766: 683b ldr r3, [r7, #0] - 803f768: f9b3 3002 ldrsh.w r3, [r3, #2] - 803f76c: 4619 mov r1, r3 - 803f76e: f9b7 204e ldrsh.w r2, [r7, #78] ; 0x4e - 803f772: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 803f776: 4413 add r3, r2 - 803f778: 4299 cmp r1, r3 - 803f77a: dd12 ble.n 803f7a2 + 803f6d2: 683b ldr r3, [r7, #0] + 803f6d4: f9b3 3002 ldrsh.w r3, [r3, #2] + 803f6d8: 4619 mov r1, r3 + 803f6da: f9b7 204e ldrsh.w r2, [r7, #78] ; 0x4e + 803f6de: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 803f6e2: 4413 add r3, r2 + 803f6e4: 4299 cmp r1, r3 + 803f6e6: dd12 ble.n 803f70e y += letter_height + line_space; - 803f77c: 8dfa ldrh r2, [r7, #46] ; 0x2e - 803f77e: 8e7b ldrh r3, [r7, #50] ; 0x32 - 803f780: 4413 add r3, r2 - 803f782: b29a uxth r2, r3 - 803f784: f8b7 304e ldrh.w r3, [r7, #78] ; 0x4e - 803f788: 4413 add r3, r2 - 803f78a: b29b uxth r3, r3 - 803f78c: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 803f6e8: 8dfa ldrh r2, [r7, #46] ; 0x2e + 803f6ea: 8e7b ldrh r3, [r7, #50] ; 0x32 + 803f6ec: 4413 add r3, r2 + 803f6ee: b29a uxth r2, r3 + 803f6f0: f8b7 304e ldrh.w r3, [r7, #78] ; 0x4e + 803f6f4: 4413 add r3, r2 + 803f6f6: b29b uxth r3, r3 + 803f6f8: f8a7 304e strh.w r3, [r7, #78] ; 0x4e line_start = new_line_start; - 803f790: 6d3b ldr r3, [r7, #80] ; 0x50 - 803f792: 657b str r3, [r7, #84] ; 0x54 + 803f6fc: 6d3b ldr r3, [r7, #80] ; 0x50 + 803f6fe: 657b str r3, [r7, #84] ; 0x54 while(txt[line_start] != '\0') { - 803f794: 6c3a ldr r2, [r7, #64] ; 0x40 - 803f796: 6d7b ldr r3, [r7, #84] ; 0x54 - 803f798: 4413 add r3, r2 - 803f79a: 781b ldrb r3, [r3, #0] - 803f79c: 2b00 cmp r3, #0 - 803f79e: d1ce bne.n 803f73e - 803f7a0: e000 b.n 803f7a4 + 803f700: 6c3a ldr r2, [r7, #64] ; 0x40 + 803f702: 6d7b ldr r3, [r7, #84] ; 0x54 + 803f704: 4413 add r3, r2 + 803f706: 781b ldrb r3, [r3, #0] + 803f708: 2b00 cmp r3, #0 + 803f70a: d1ce bne.n 803f6aa + 803f70c: e000 b.n 803f710 if(pos->y <= y + letter_height) break; /*The line is found (stored in 'line_start')*/ - 803f7a2: bf00 nop + 803f70e: bf00 nop } /*Calculate the x coordinate*/ lv_coord_t x = 0; - 803f7a4: 2300 movs r3, #0 - 803f7a6: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 803f710: 2300 movs r3, #0 + 803f712: f8a7 304a strh.w r3, [r7, #74] ; 0x4a lv_coord_t last_x = 0; - 803f7aa: 2300 movs r3, #0 - 803f7ac: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 + 803f716: 2300 movs r3, #0 + 803f718: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 if(align == LV_TEXT_ALIGN_CENTER) { - 803f7b0: f897 302d ldrb.w r3, [r7, #45] ; 0x2d - 803f7b4: 2b02 cmp r3, #2 - 803f7b6: d12a bne.n 803f80e + 803f71c: f897 302d ldrb.w r3, [r7, #45] ; 0x2d + 803f720: 2b02 cmp r3, #2 + 803f722: d12a bne.n 803f77a lv_coord_t line_w; line_w = lv_txt_get_width(&txt[line_start], new_line_start - line_start, font, letter_space, flag); - 803f7b8: 6c3a ldr r2, [r7, #64] ; 0x40 - 803f7ba: 6d7b ldr r3, [r7, #84] ; 0x54 - 803f7bc: 18d0 adds r0, r2, r3 - 803f7be: 6d3a ldr r2, [r7, #80] ; 0x50 - 803f7c0: 6d7b ldr r3, [r7, #84] ; 0x54 - 803f7c2: 1ad1 subs r1, r2, r3 - 803f7c4: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 - 803f7c8: f897 304d ldrb.w r3, [r7, #77] ; 0x4d - 803f7cc: 9300 str r3, [sp, #0] - 803f7ce: 4613 mov r3, r2 - 803f7d0: 6b7a ldr r2, [r7, #52] ; 0x34 - 803f7d2: f7f6 fed3 bl 803657c - 803f7d6: 4603 mov r3, r0 - 803f7d8: 853b strh r3, [r7, #40] ; 0x28 + 803f724: 6c3a ldr r2, [r7, #64] ; 0x40 + 803f726: 6d7b ldr r3, [r7, #84] ; 0x54 + 803f728: 18d0 adds r0, r2, r3 + 803f72a: 6d3a ldr r2, [r7, #80] ; 0x50 + 803f72c: 6d7b ldr r3, [r7, #84] ; 0x54 + 803f72e: 1ad1 subs r1, r2, r3 + 803f730: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 + 803f734: f897 304d ldrb.w r3, [r7, #77] ; 0x4d + 803f738: 9300 str r3, [sp, #0] + 803f73a: 4613 mov r3, r2 + 803f73c: 6b7a ldr r2, [r7, #52] ; 0x34 + 803f73e: f7f6 fed3 bl 80364e8 + 803f742: 4603 mov r3, r0 + 803f744: 853b strh r3, [r7, #40] ; 0x28 x += lv_area_get_width(&txt_coords) / 2 - line_w / 2; - 803f7da: f107 031c add.w r3, r7, #28 - 803f7de: 4618 mov r0, r3 - 803f7e0: f7ff f91c bl 803ea1c - 803f7e4: 4603 mov r3, r0 - 803f7e6: 0fda lsrs r2, r3, #31 - 803f7e8: 4413 add r3, r2 - 803f7ea: 105b asrs r3, r3, #1 - 803f7ec: b21b sxth r3, r3 - 803f7ee: 4619 mov r1, r3 - 803f7f0: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 - 803f7f4: 0fda lsrs r2, r3, #31 - 803f7f6: 4413 add r3, r2 - 803f7f8: 105b asrs r3, r3, #1 - 803f7fa: b21b sxth r3, r3 - 803f7fc: 1acb subs r3, r1, r3 - 803f7fe: b29a uxth r2, r3 - 803f800: f8b7 304a ldrh.w r3, [r7, #74] ; 0x4a - 803f804: 4413 add r3, r2 - 803f806: b29b uxth r3, r3 - 803f808: f8a7 304a strh.w r3, [r7, #74] ; 0x4a - 803f80c: e025 b.n 803f85a + 803f746: f107 031c add.w r3, r7, #28 + 803f74a: 4618 mov r0, r3 + 803f74c: f7ff f91c bl 803e988 + 803f750: 4603 mov r3, r0 + 803f752: 0fda lsrs r2, r3, #31 + 803f754: 4413 add r3, r2 + 803f756: 105b asrs r3, r3, #1 + 803f758: b21b sxth r3, r3 + 803f75a: 4619 mov r1, r3 + 803f75c: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 803f760: 0fda lsrs r2, r3, #31 + 803f762: 4413 add r3, r2 + 803f764: 105b asrs r3, r3, #1 + 803f766: b21b sxth r3, r3 + 803f768: 1acb subs r3, r1, r3 + 803f76a: b29a uxth r2, r3 + 803f76c: f8b7 304a ldrh.w r3, [r7, #74] ; 0x4a + 803f770: 4413 add r3, r2 + 803f772: b29b uxth r3, r3 + 803f774: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 803f778: e025 b.n 803f7c6 } else if(align == LV_TEXT_ALIGN_RIGHT) { - 803f80e: f897 302d ldrb.w r3, [r7, #45] ; 0x2d - 803f812: 2b03 cmp r3, #3 - 803f814: d121 bne.n 803f85a + 803f77a: f897 302d ldrb.w r3, [r7, #45] ; 0x2d + 803f77e: 2b03 cmp r3, #3 + 803f780: d121 bne.n 803f7c6 lv_coord_t line_w; line_w = lv_txt_get_width(&txt[line_start], new_line_start - line_start, font, letter_space, flag); - 803f816: 6c3a ldr r2, [r7, #64] ; 0x40 - 803f818: 6d7b ldr r3, [r7, #84] ; 0x54 - 803f81a: 18d0 adds r0, r2, r3 - 803f81c: 6d3a ldr r2, [r7, #80] ; 0x50 - 803f81e: 6d7b ldr r3, [r7, #84] ; 0x54 - 803f820: 1ad1 subs r1, r2, r3 - 803f822: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 - 803f826: f897 304d ldrb.w r3, [r7, #77] ; 0x4d - 803f82a: 9300 str r3, [sp, #0] - 803f82c: 4613 mov r3, r2 - 803f82e: 6b7a ldr r2, [r7, #52] ; 0x34 - 803f830: f7f6 fea4 bl 803657c - 803f834: 4603 mov r3, r0 - 803f836: 857b strh r3, [r7, #42] ; 0x2a + 803f782: 6c3a ldr r2, [r7, #64] ; 0x40 + 803f784: 6d7b ldr r3, [r7, #84] ; 0x54 + 803f786: 18d0 adds r0, r2, r3 + 803f788: 6d3a ldr r2, [r7, #80] ; 0x50 + 803f78a: 6d7b ldr r3, [r7, #84] ; 0x54 + 803f78c: 1ad1 subs r1, r2, r3 + 803f78e: f9b7 2030 ldrsh.w r2, [r7, #48] ; 0x30 + 803f792: f897 304d ldrb.w r3, [r7, #77] ; 0x4d + 803f796: 9300 str r3, [sp, #0] + 803f798: 4613 mov r3, r2 + 803f79a: 6b7a ldr r2, [r7, #52] ; 0x34 + 803f79c: f7f6 fea4 bl 80364e8 + 803f7a0: 4603 mov r3, r0 + 803f7a2: 857b strh r3, [r7, #42] ; 0x2a x += lv_area_get_width(&txt_coords) - line_w; - 803f838: f107 031c add.w r3, r7, #28 - 803f83c: 4618 mov r0, r3 - 803f83e: f7ff f8ed bl 803ea1c - 803f842: 4603 mov r3, r0 - 803f844: 461a mov r2, r3 - 803f846: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a - 803f84a: 1ad3 subs r3, r2, r3 - 803f84c: b29a uxth r2, r3 - 803f84e: f8b7 304a ldrh.w r3, [r7, #74] ; 0x4a - 803f852: 4413 add r3, r2 - 803f854: b29b uxth r3, r3 - 803f856: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 803f7a4: f107 031c add.w r3, r7, #28 + 803f7a8: 4618 mov r0, r3 + 803f7aa: f7ff f8ed bl 803e988 + 803f7ae: 4603 mov r3, r0 + 803f7b0: 461a mov r2, r3 + 803f7b2: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a + 803f7b6: 1ad3 subs r3, r2, r3 + 803f7b8: b29a uxth r2, r3 + 803f7ba: f8b7 304a ldrh.w r3, [r7, #74] ; 0x4a + 803f7be: 4413 add r3, r2 + 803f7c0: b29b uxth r3, r3 + 803f7c2: f8a7 304a strh.w r3, [r7, #74] ; 0x4a } lv_text_cmd_state_t cmd_state = LV_TEXT_CMD_STATE_WAIT; - 803f85a: 2300 movs r3, #0 - 803f85c: 76fb strb r3, [r7, #27] + 803f7c6: 2300 movs r3, #0 + 803f7c8: 76fb strb r3, [r7, #27] uint32_t i = line_start; - 803f85e: 6d7b ldr r3, [r7, #84] ; 0x54 - 803f860: 617b str r3, [r7, #20] + 803f7ca: 6d7b ldr r3, [r7, #84] ; 0x54 + 803f7cc: 617b str r3, [r7, #20] uint32_t i_current = i; - 803f862: 697b ldr r3, [r7, #20] - 803f864: 647b str r3, [r7, #68] ; 0x44 + 803f7ce: 697b ldr r3, [r7, #20] + 803f7d0: 647b str r3, [r7, #68] ; 0x44 uint32_t letter = '\0'; - 803f866: 2300 movs r3, #0 - 803f868: 613b str r3, [r7, #16] + 803f7d2: 2300 movs r3, #0 + 803f7d4: 613b str r3, [r7, #16] uint32_t letter_next = '\0'; - 803f86a: 2300 movs r3, #0 - 803f86c: 60fb str r3, [r7, #12] + 803f7d6: 2300 movs r3, #0 + 803f7d8: 60fb str r3, [r7, #12] if(new_line_start > 0) { - 803f86e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803f870: 2b00 cmp r3, #0 - 803f872: d048 beq.n 803f906 + 803f7da: 6d3b ldr r3, [r7, #80] ; 0x50 + 803f7dc: 2b00 cmp r3, #0 + 803f7de: d048 beq.n 803f872 while(i <= new_line_start - 1) { - 803f874: e042 b.n 803f8fc + 803f7e0: e042 b.n 803f868 /*Get the current letter and the next letter for kerning*/ /*Be careful 'i' already points to the next character*/ _lv_txt_encoded_letter_next_2(txt, &letter, &letter_next, &i); - 803f876: f107 0314 add.w r3, r7, #20 - 803f87a: f107 020c add.w r2, r7, #12 - 803f87e: f107 0110 add.w r1, r7, #16 - 803f882: 6c38 ldr r0, [r7, #64] ; 0x40 - 803f884: f7f6 ffcc bl 8036820 <_lv_txt_encoded_letter_next_2> + 803f7e2: f107 0314 add.w r3, r7, #20 + 803f7e6: f107 020c add.w r2, r7, #12 + 803f7ea: f107 0110 add.w r1, r7, #16 + 803f7ee: 6c38 ldr r0, [r7, #64] ; 0x40 + 803f7f0: f7f6 ffcc bl 803678c <_lv_txt_encoded_letter_next_2> /*Handle the recolor command*/ if((flag & LV_TEXT_FLAG_RECOLOR) != 0) { - 803f888: f897 304d ldrb.w r3, [r7, #77] ; 0x4d - 803f88c: f003 0301 and.w r3, r3, #1 - 803f890: 2b00 cmp r3, #0 - 803f892: d00e beq.n 803f8b2 + 803f7f4: f897 304d ldrb.w r3, [r7, #77] ; 0x4d + 803f7f8: f003 0301 and.w r3, r3, #1 + 803f7fc: 2b00 cmp r3, #0 + 803f7fe: d00e beq.n 803f81e if(_lv_txt_is_cmd(&cmd_state, txt[i]) != false) { - 803f894: 697b ldr r3, [r7, #20] - 803f896: 6c3a ldr r2, [r7, #64] ; 0x40 - 803f898: 4413 add r3, r2 - 803f89a: 781b ldrb r3, [r3, #0] - 803f89c: 461a mov r2, r3 - 803f89e: f107 031b add.w r3, r7, #27 - 803f8a2: 4611 mov r1, r2 - 803f8a4: 4618 mov r0, r3 - 803f8a6: f7f6 fecd bl 8036644 <_lv_txt_is_cmd> - 803f8aa: 4603 mov r3, r0 - 803f8ac: 2b00 cmp r3, #0 - 803f8ae: d000 beq.n 803f8b2 + 803f800: 697b ldr r3, [r7, #20] + 803f802: 6c3a ldr r2, [r7, #64] ; 0x40 + 803f804: 4413 add r3, r2 + 803f806: 781b ldrb r3, [r3, #0] + 803f808: 461a mov r2, r3 + 803f80a: f107 031b add.w r3, r7, #27 + 803f80e: 4611 mov r1, r2 + 803f810: 4618 mov r0, r3 + 803f812: f7f6 fecd bl 80365b0 <_lv_txt_is_cmd> + 803f816: 4603 mov r3, r0 + 803f818: 2b00 cmp r3, #0 + 803f81a: d000 beq.n 803f81e continue; /*Skip the letter if it is part of a command*/ - 803f8b0: e024 b.n 803f8fc + 803f81c: e024 b.n 803f868 } } last_x = x; - 803f8b2: f8b7 304a ldrh.w r3, [r7, #74] ; 0x4a - 803f8b6: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 + 803f81e: f8b7 304a ldrh.w r3, [r7, #74] ; 0x4a + 803f822: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 x += lv_font_get_glyph_width(font, letter, letter_next); - 803f8ba: 693b ldr r3, [r7, #16] - 803f8bc: 68fa ldr r2, [r7, #12] - 803f8be: 4619 mov r1, r3 - 803f8c0: 6b78 ldr r0, [r7, #52] ; 0x34 - 803f8c2: f7f0 f92b bl 802fb1c - 803f8c6: 4603 mov r3, r0 - 803f8c8: 461a mov r2, r3 - 803f8ca: f8b7 304a ldrh.w r3, [r7, #74] ; 0x4a - 803f8ce: 4413 add r3, r2 - 803f8d0: b29b uxth r3, r3 - 803f8d2: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 803f826: 693b ldr r3, [r7, #16] + 803f828: 68fa ldr r2, [r7, #12] + 803f82a: 4619 mov r1, r3 + 803f82c: 6b78 ldr r0, [r7, #52] ; 0x34 + 803f82e: f7f0 f92b bl 802fa88 + 803f832: 4603 mov r3, r0 + 803f834: 461a mov r2, r3 + 803f836: f8b7 304a ldrh.w r3, [r7, #74] ; 0x4a + 803f83a: 4413 add r3, r2 + 803f83c: b29b uxth r3, r3 + 803f83e: f8a7 304a strh.w r3, [r7, #74] ; 0x4a if(pos->x < x) { - 803f8d6: 683b ldr r3, [r7, #0] - 803f8d8: f9b3 3000 ldrsh.w r3, [r3] - 803f8dc: f9b7 204a ldrsh.w r2, [r7, #74] ; 0x4a - 803f8e0: 429a cmp r2, r3 - 803f8e2: dd02 ble.n 803f8ea + 803f842: 683b ldr r3, [r7, #0] + 803f844: f9b3 3000 ldrsh.w r3, [r3] + 803f848: f9b7 204a ldrsh.w r2, [r7, #74] ; 0x4a + 803f84c: 429a cmp r2, r3 + 803f84e: dd02 ble.n 803f856 i = i_current; - 803f8e4: 6c7b ldr r3, [r7, #68] ; 0x44 - 803f8e6: 617b str r3, [r7, #20] + 803f850: 6c7b ldr r3, [r7, #68] ; 0x44 + 803f852: 617b str r3, [r7, #20] break; - 803f8e8: e00d b.n 803f906 + 803f854: e00d b.n 803f872 } x += letter_space; - 803f8ea: f8b7 204a ldrh.w r2, [r7, #74] ; 0x4a - 803f8ee: 8e3b ldrh r3, [r7, #48] ; 0x30 - 803f8f0: 4413 add r3, r2 - 803f8f2: b29b uxth r3, r3 - 803f8f4: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 803f856: f8b7 204a ldrh.w r2, [r7, #74] ; 0x4a + 803f85a: 8e3b ldrh r3, [r7, #48] ; 0x30 + 803f85c: 4413 add r3, r2 + 803f85e: b29b uxth r3, r3 + 803f860: f8a7 304a strh.w r3, [r7, #74] ; 0x4a i_current = i; - 803f8f8: 697b ldr r3, [r7, #20] - 803f8fa: 647b str r3, [r7, #68] ; 0x44 + 803f864: 697b ldr r3, [r7, #20] + 803f866: 647b str r3, [r7, #68] ; 0x44 while(i <= new_line_start - 1) { - 803f8fc: 6d3b ldr r3, [r7, #80] ; 0x50 - 803f8fe: 1e5a subs r2, r3, #1 - 803f900: 697b ldr r3, [r7, #20] - 803f902: 429a cmp r2, r3 - 803f904: d2b7 bcs.n 803f876 + 803f868: 6d3b ldr r3, [r7, #80] ; 0x50 + 803f86a: 1e5a subs r2, r3, #1 + 803f86c: 697b ldr r3, [r7, #20] + 803f86e: 429a cmp r2, r3 + 803f870: d2b7 bcs.n 803f7e2 } } int32_t max_diff = lv_font_get_glyph_width(font, letter, letter_next) + letter_space + 1; - 803f906: 693b ldr r3, [r7, #16] - 803f908: 68fa ldr r2, [r7, #12] - 803f90a: 4619 mov r1, r3 - 803f90c: 6b78 ldr r0, [r7, #52] ; 0x34 - 803f90e: f7f0 f905 bl 802fb1c - 803f912: 4603 mov r3, r0 - 803f914: 461a mov r2, r3 - 803f916: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 803f91a: 4413 add r3, r2 - 803f91c: 3301 adds r3, #1 - 803f91e: 627b str r3, [r7, #36] ; 0x24 + 803f872: 693b ldr r3, [r7, #16] + 803f874: 68fa ldr r2, [r7, #12] + 803f876: 4619 mov r1, r3 + 803f878: 6b78 ldr r0, [r7, #52] ; 0x34 + 803f87a: f7f0 f905 bl 802fa88 + 803f87e: 4603 mov r3, r0 + 803f880: 461a mov r2, r3 + 803f882: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 803f886: 4413 add r3, r2 + 803f888: 3301 adds r3, #1 + 803f88a: 627b str r3, [r7, #36] ; 0x24 return (pos->x >= (last_x - letter_space) && pos->x <= (last_x + max_diff)); - 803f920: 683b ldr r3, [r7, #0] - 803f922: f9b3 3000 ldrsh.w r3, [r3] - 803f926: 4619 mov r1, r3 - 803f928: f9b7 2048 ldrsh.w r2, [r7, #72] ; 0x48 - 803f92c: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 - 803f930: 1ad3 subs r3, r2, r3 - 803f932: 4299 cmp r1, r3 - 803f934: db0b blt.n 803f94e - 803f936: 683b ldr r3, [r7, #0] - 803f938: f9b3 3000 ldrsh.w r3, [r3] - 803f93c: 4619 mov r1, r3 - 803f93e: f9b7 2048 ldrsh.w r2, [r7, #72] ; 0x48 - 803f942: 6a7b ldr r3, [r7, #36] ; 0x24 - 803f944: 4413 add r3, r2 - 803f946: 4299 cmp r1, r3 - 803f948: dc01 bgt.n 803f94e - 803f94a: 2301 movs r3, #1 - 803f94c: e000 b.n 803f950 - 803f94e: 2300 movs r3, #0 - 803f950: f003 0301 and.w r3, r3, #1 - 803f954: b2db uxtb r3, r3 + 803f88c: 683b ldr r3, [r7, #0] + 803f88e: f9b3 3000 ldrsh.w r3, [r3] + 803f892: 4619 mov r1, r3 + 803f894: f9b7 2048 ldrsh.w r2, [r7, #72] ; 0x48 + 803f898: f9b7 3030 ldrsh.w r3, [r7, #48] ; 0x30 + 803f89c: 1ad3 subs r3, r2, r3 + 803f89e: 4299 cmp r1, r3 + 803f8a0: db0b blt.n 803f8ba + 803f8a2: 683b ldr r3, [r7, #0] + 803f8a4: f9b3 3000 ldrsh.w r3, [r3] + 803f8a8: 4619 mov r1, r3 + 803f8aa: f9b7 2048 ldrsh.w r2, [r7, #72] ; 0x48 + 803f8ae: 6a7b ldr r3, [r7, #36] ; 0x24 + 803f8b0: 4413 add r3, r2 + 803f8b2: 4299 cmp r1, r3 + 803f8b4: dc01 bgt.n 803f8ba + 803f8b6: 2301 movs r3, #1 + 803f8b8: e000 b.n 803f8bc + 803f8ba: 2300 movs r3, #0 + 803f8bc: f003 0301 and.w r3, r3, #1 + 803f8c0: b2db uxtb r3, r3 } - 803f956: 4618 mov r0, r3 - 803f958: 3758 adds r7, #88 ; 0x58 - 803f95a: 46bd mov sp, r7 - 803f95c: bd80 pop {r7, pc} + 803f8c2: 4618 mov r0, r3 + 803f8c4: 3758 adds r7, #88 ; 0x58 + 803f8c6: 46bd mov sp, r7 + 803f8c8: bd80 pop {r7, pc} -0803f95e : +0803f8ca : uint32_t lv_label_get_text_selection_start(const lv_obj_t * obj) { - 803f95e: b480 push {r7} - 803f960: b085 sub sp, #20 - 803f962: af00 add r7, sp, #0 - 803f964: 6078 str r0, [r7, #4] + 803f8ca: b480 push {r7} + 803f8cc: b085 sub sp, #20 + 803f8ce: af00 add r7, sp, #0 + 803f8d0: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); #if LV_LABEL_TEXT_SELECTION lv_label_t * label = (lv_label_t *)obj; - 803f966: 687b ldr r3, [r7, #4] - 803f968: 60fb str r3, [r7, #12] + 803f8d2: 687b ldr r3, [r7, #4] + 803f8d4: 60fb str r3, [r7, #12] return label->sel_start; - 803f96a: 68fb ldr r3, [r7, #12] - 803f96c: 6bdb ldr r3, [r3, #60] ; 0x3c + 803f8d6: 68fb ldr r3, [r7, #12] + 803f8d8: 6bdb ldr r3, [r3, #60] ; 0x3c #else LV_UNUSED(obj); /*Unused*/ return LV_LABEL_TEXT_SELECTION_OFF; #endif } - 803f96e: 4618 mov r0, r3 - 803f970: 3714 adds r7, #20 - 803f972: 46bd mov sp, r7 - 803f974: bc80 pop {r7} - 803f976: 4770 bx lr + 803f8da: 4618 mov r0, r3 + 803f8dc: 3714 adds r7, #20 + 803f8de: 46bd mov sp, r7 + 803f8e0: bc80 pop {r7} + 803f8e2: 4770 bx lr -0803f978 : +0803f8e4 : uint32_t lv_label_get_text_selection_end(const lv_obj_t * obj) { - 803f978: b480 push {r7} - 803f97a: b085 sub sp, #20 - 803f97c: af00 add r7, sp, #0 - 803f97e: 6078 str r0, [r7, #4] + 803f8e4: b480 push {r7} + 803f8e6: b085 sub sp, #20 + 803f8e8: af00 add r7, sp, #0 + 803f8ea: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); #if LV_LABEL_TEXT_SELECTION lv_label_t * label = (lv_label_t *)obj; - 803f980: 687b ldr r3, [r7, #4] - 803f982: 60fb str r3, [r7, #12] + 803f8ec: 687b ldr r3, [r7, #4] + 803f8ee: 60fb str r3, [r7, #12] return label->sel_end; - 803f984: 68fb ldr r3, [r7, #12] - 803f986: 6c1b ldr r3, [r3, #64] ; 0x40 + 803f8f0: 68fb ldr r3, [r7, #12] + 803f8f2: 6c1b ldr r3, [r3, #64] ; 0x40 #else LV_UNUSED(obj); /*Unused*/ return LV_LABEL_TEXT_SELECTION_OFF; #endif } - 803f988: 4618 mov r0, r3 - 803f98a: 3714 adds r7, #20 - 803f98c: 46bd mov sp, r7 - 803f98e: bc80 pop {r7} - 803f990: 4770 bx lr + 803f8f4: 4618 mov r0, r3 + 803f8f6: 3714 adds r7, #20 + 803f8f8: 46bd mov sp, r7 + 803f8fa: bc80 pop {r7} + 803f8fc: 4770 bx lr ... -0803f994 : +0803f900 : /*===================== * Other functions *====================*/ void lv_label_ins_text(lv_obj_t * obj, uint32_t pos, const char * txt) { - 803f994: b580 push {r7, lr} - 803f996: b088 sub sp, #32 - 803f998: af00 add r7, sp, #0 - 803f99a: 60f8 str r0, [r7, #12] - 803f99c: 60b9 str r1, [r7, #8] - 803f99e: 607a str r2, [r7, #4] + 803f900: b580 push {r7, lr} + 803f902: b088 sub sp, #32 + 803f904: af00 add r7, sp, #0 + 803f906: 60f8 str r0, [r7, #12] + 803f908: 60b9 str r1, [r7, #8] + 803f90a: 607a str r2, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); LV_ASSERT_NULL(txt); - 803f9a0: 687b ldr r3, [r7, #4] - 803f9a2: 2b00 cmp r3, #0 - 803f9a4: d100 bne.n 803f9a8 - 803f9a6: e7fe b.n 803f9a6 + 803f90c: 687b ldr r3, [r7, #4] + 803f90e: 2b00 cmp r3, #0 + 803f910: d100 bne.n 803f914 + 803f912: e7fe b.n 803f912 lv_label_t * label = (lv_label_t *)obj; - 803f9a8: 68fb ldr r3, [r7, #12] - 803f9aa: 61fb str r3, [r7, #28] + 803f914: 68fb ldr r3, [r7, #12] + 803f916: 61fb str r3, [r7, #28] /*Can not append to static text*/ if(label->static_txt != 0) return; - 803f9ac: 69fb ldr r3, [r7, #28] - 803f9ae: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803f9b2: f003 0308 and.w r3, r3, #8 - 803f9b6: b2db uxtb r3, r3 - 803f9b8: 2b00 cmp r3, #0 - 803f9ba: d13c bne.n 803fa36 + 803f918: 69fb ldr r3, [r7, #28] + 803f91a: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803f91e: f003 0308 and.w r3, r3, #8 + 803f922: b2db uxtb r3, r3 + 803f924: 2b00 cmp r3, #0 + 803f926: d13c bne.n 803f9a2 lv_obj_invalidate(obj); - 803f9bc: 68f8 ldr r0, [r7, #12] - 803f9be: f7cb f878 bl 800aab2 + 803f928: 68f8 ldr r0, [r7, #12] + 803f92a: f7cb f88c bl 800aa46 /*Allocate space for the new text*/ size_t old_len = strlen(label->text); - 803f9c2: 69fb ldr r3, [r7, #28] - 803f9c4: 6a5b ldr r3, [r3, #36] ; 0x24 - 803f9c6: 4618 mov r0, r3 - 803f9c8: f7c0 fc36 bl 8000238 - 803f9cc: 61b8 str r0, [r7, #24] + 803f92e: 69fb ldr r3, [r7, #28] + 803f930: 6a5b ldr r3, [r3, #36] ; 0x24 + 803f932: 4618 mov r0, r3 + 803f934: f7c0 fc80 bl 8000238 + 803f938: 61b8 str r0, [r7, #24] size_t ins_len = strlen(txt); - 803f9ce: 6878 ldr r0, [r7, #4] - 803f9d0: f7c0 fc32 bl 8000238 - 803f9d4: 6178 str r0, [r7, #20] + 803f93a: 6878 ldr r0, [r7, #4] + 803f93c: f7c0 fc7c bl 8000238 + 803f940: 6178 str r0, [r7, #20] size_t new_len = ins_len + old_len; - 803f9d6: 697a ldr r2, [r7, #20] - 803f9d8: 69bb ldr r3, [r7, #24] - 803f9da: 4413 add r3, r2 - 803f9dc: 613b str r3, [r7, #16] + 803f942: 697a ldr r2, [r7, #20] + 803f944: 69bb ldr r3, [r7, #24] + 803f946: 4413 add r3, r2 + 803f948: 613b str r3, [r7, #16] label->text = lv_mem_realloc(label->text, new_len + 1); - 803f9de: 69fb ldr r3, [r7, #28] - 803f9e0: 6a5a ldr r2, [r3, #36] ; 0x24 - 803f9e2: 693b ldr r3, [r7, #16] - 803f9e4: 3301 adds r3, #1 - 803f9e6: 4619 mov r1, r3 - 803f9e8: 4610 mov r0, r2 - 803f9ea: f7f2 ff93 bl 8032914 - 803f9ee: 4602 mov r2, r0 - 803f9f0: 69fb ldr r3, [r7, #28] - 803f9f2: 625a str r2, [r3, #36] ; 0x24 + 803f94a: 69fb ldr r3, [r7, #28] + 803f94c: 6a5a ldr r2, [r3, #36] ; 0x24 + 803f94e: 693b ldr r3, [r7, #16] + 803f950: 3301 adds r3, #1 + 803f952: 4619 mov r1, r3 + 803f954: 4610 mov r0, r2 + 803f956: f7f2 ff93 bl 8032880 + 803f95a: 4602 mov r2, r0 + 803f95c: 69fb ldr r3, [r7, #28] + 803f95e: 625a str r2, [r3, #36] ; 0x24 LV_ASSERT_MALLOC(label->text); - 803f9f4: 69fb ldr r3, [r7, #28] - 803f9f6: 6a5b ldr r3, [r3, #36] ; 0x24 - 803f9f8: 2b00 cmp r3, #0 - 803f9fa: d100 bne.n 803f9fe - 803f9fc: e7fe b.n 803f9fc + 803f960: 69fb ldr r3, [r7, #28] + 803f962: 6a5b ldr r3, [r3, #36] ; 0x24 + 803f964: 2b00 cmp r3, #0 + 803f966: d100 bne.n 803f96a + 803f968: e7fe b.n 803f968 if(label->text == NULL) return; - 803f9fe: 69fb ldr r3, [r7, #28] - 803fa00: 6a5b ldr r3, [r3, #36] ; 0x24 - 803fa02: 2b00 cmp r3, #0 - 803fa04: d019 beq.n 803fa3a + 803f96a: 69fb ldr r3, [r7, #28] + 803f96c: 6a5b ldr r3, [r3, #36] ; 0x24 + 803f96e: 2b00 cmp r3, #0 + 803f970: d019 beq.n 803f9a6 if(pos == LV_LABEL_POS_LAST) { - 803fa06: 68bb ldr r3, [r7, #8] - 803fa08: f64f 72ff movw r2, #65535 ; 0xffff - 803fa0c: 4293 cmp r3, r2 - 803fa0e: d106 bne.n 803fa1e + 803f972: 68bb ldr r3, [r7, #8] + 803f974: f64f 72ff movw r2, #65535 ; 0xffff + 803f978: 4293 cmp r3, r2 + 803f97a: d106 bne.n 803f98a pos = _lv_txt_get_encoded_length(label->text); - 803fa10: 4b0c ldr r3, [pc, #48] ; (803fa44 ) - 803fa12: 681b ldr r3, [r3, #0] - 803fa14: 69fa ldr r2, [r7, #28] - 803fa16: 6a52 ldr r2, [r2, #36] ; 0x24 - 803fa18: 4610 mov r0, r2 - 803fa1a: 4798 blx r3 - 803fa1c: 60b8 str r0, [r7, #8] + 803f97c: 4b0c ldr r3, [pc, #48] ; (803f9b0 ) + 803f97e: 681b ldr r3, [r3, #0] + 803f980: 69fa ldr r2, [r7, #28] + 803f982: 6a52 ldr r2, [r2, #36] ; 0x24 + 803f984: 4610 mov r0, r2 + 803f986: 4798 blx r3 + 803f988: 60b8 str r0, [r7, #8] } _lv_txt_ins(label->text, pos, txt); - 803fa1e: 69fb ldr r3, [r7, #28] - 803fa20: 6a5b ldr r3, [r3, #36] ; 0x24 - 803fa22: 687a ldr r2, [r7, #4] - 803fa24: 68b9 ldr r1, [r7, #8] - 803fa26: 4618 mov r0, r3 - 803fa28: f7f6 fe46 bl 80366b8 <_lv_txt_ins> + 803f98a: 69fb ldr r3, [r7, #28] + 803f98c: 6a5b ldr r3, [r3, #36] ; 0x24 + 803f98e: 687a ldr r2, [r7, #4] + 803f990: 68b9 ldr r1, [r7, #8] + 803f992: 4618 mov r0, r3 + 803f994: f7f6 fe46 bl 8036624 <_lv_txt_ins> lv_label_set_text(obj, NULL); - 803fa2c: 2100 movs r1, #0 - 803fa2e: 68f8 ldr r0, [r7, #12] - 803fa30: f7ff f968 bl 803ed04 - 803fa34: e002 b.n 803fa3c + 803f998: 2100 movs r1, #0 + 803f99a: 68f8 ldr r0, [r7, #12] + 803f99c: f7ff f968 bl 803ec70 + 803f9a0: e002 b.n 803f9a8 if(label->static_txt != 0) return; - 803fa36: bf00 nop - 803fa38: e000 b.n 803fa3c + 803f9a2: bf00 nop + 803f9a4: e000 b.n 803f9a8 if(label->text == NULL) return; - 803fa3a: bf00 nop + 803f9a6: bf00 nop } - 803fa3c: 3720 adds r7, #32 - 803fa3e: 46bd mov sp, r7 - 803fa40: bd80 pop {r7, pc} - 803fa42: bf00 nop - 803fa44: 200000fc .word 0x200000fc + 803f9a8: 3720 adds r7, #32 + 803f9aa: 46bd mov sp, r7 + 803f9ac: bd80 pop {r7, pc} + 803f9ae: bf00 nop + 803f9b0: 200000fc .word 0x200000fc -0803fa48 : +0803f9b4 : /********************** * STATIC FUNCTIONS **********************/ static void lv_label_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 803fa48: b580 push {r7, lr} - 803fa4a: b084 sub sp, #16 - 803fa4c: af00 add r7, sp, #0 - 803fa4e: 6078 str r0, [r7, #4] - 803fa50: 6039 str r1, [r7, #0] + 803f9b4: b580 push {r7, lr} + 803f9b6: b084 sub sp, #16 + 803f9b8: af00 add r7, sp, #0 + 803f9ba: 6078 str r0, [r7, #4] + 803f9bc: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_label_t * label = (lv_label_t *)obj; - 803fa52: 683b ldr r3, [r7, #0] - 803fa54: 60fb str r3, [r7, #12] + 803f9be: 683b ldr r3, [r7, #0] + 803f9c0: 60fb str r3, [r7, #12] label->text = NULL; - 803fa56: 68fb ldr r3, [r7, #12] - 803fa58: 2200 movs r2, #0 - 803fa5a: 625a str r2, [r3, #36] ; 0x24 + 803f9c2: 68fb ldr r3, [r7, #12] + 803f9c4: 2200 movs r2, #0 + 803f9c6: 625a str r2, [r3, #36] ; 0x24 label->static_txt = 0; - 803fa5c: 68fa ldr r2, [r7, #12] - 803fa5e: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 - 803fa62: f36f 03c3 bfc r3, #3, #1 - 803fa66: f882 3048 strb.w r3, [r2, #72] ; 0x48 + 803f9c8: 68fa ldr r2, [r7, #12] + 803f9ca: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 + 803f9ce: f36f 03c3 bfc r3, #3, #1 + 803f9d2: f882 3048 strb.w r3, [r2, #72] ; 0x48 label->recolor = 0; - 803fa6a: 68fa ldr r2, [r7, #12] - 803fa6c: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 - 803fa70: f36f 1304 bfc r3, #4, #1 - 803fa74: f882 3048 strb.w r3, [r2, #72] ; 0x48 + 803f9d6: 68fa ldr r2, [r7, #12] + 803f9d8: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 + 803f9dc: f36f 1304 bfc r3, #4, #1 + 803f9e0: f882 3048 strb.w r3, [r2, #72] ; 0x48 label->dot_end = LV_LABEL_DOT_END_INV; - 803fa78: 68fb ldr r3, [r7, #12] - 803fa7a: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 803fa7e: 62da str r2, [r3, #44] ; 0x2c + 803f9e4: 68fb ldr r3, [r7, #12] + 803f9e6: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 803f9ea: 62da str r2, [r3, #44] ; 0x2c label->long_mode = LV_LABEL_LONG_WRAP; - 803fa80: 68fa ldr r2, [r7, #12] - 803fa82: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 - 803fa86: f36f 0302 bfc r3, #0, #3 - 803fa8a: f882 3048 strb.w r3, [r2, #72] ; 0x48 + 803f9ec: 68fa ldr r2, [r7, #12] + 803f9ee: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 + 803f9f2: f36f 0302 bfc r3, #0, #3 + 803f9f6: f882 3048 strb.w r3, [r2, #72] ; 0x48 label->offset.x = 0; - 803fa8e: 68fb ldr r3, [r7, #12] - 803fa90: 2200 movs r2, #0 - 803fa92: f8a3 2044 strh.w r2, [r3, #68] ; 0x44 + 803f9fa: 68fb ldr r3, [r7, #12] + 803f9fc: 2200 movs r2, #0 + 803f9fe: f8a3 2044 strh.w r2, [r3, #68] ; 0x44 label->offset.y = 0; - 803fa96: 68fb ldr r3, [r7, #12] - 803fa98: 2200 movs r2, #0 - 803fa9a: f8a3 2046 strh.w r2, [r3, #70] ; 0x46 + 803fa02: 68fb ldr r3, [r7, #12] + 803fa04: 2200 movs r2, #0 + 803fa06: f8a3 2046 strh.w r2, [r3, #70] ; 0x46 #if LV_LABEL_LONG_TXT_HINT label->hint.line_start = -1; - 803fa9e: 68fb ldr r3, [r7, #12] - 803faa0: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 803faa4: 631a str r2, [r3, #48] ; 0x30 + 803fa0a: 68fb ldr r3, [r7, #12] + 803fa0c: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 803fa10: 631a str r2, [r3, #48] ; 0x30 label->hint.coord_y = 0; - 803faa6: 68fb ldr r3, [r7, #12] - 803faa8: 2200 movs r2, #0 - 803faaa: 639a str r2, [r3, #56] ; 0x38 + 803fa12: 68fb ldr r3, [r7, #12] + 803fa14: 2200 movs r2, #0 + 803fa16: 639a str r2, [r3, #56] ; 0x38 label->hint.y = 0; - 803faac: 68fb ldr r3, [r7, #12] - 803faae: 2200 movs r2, #0 - 803fab0: 635a str r2, [r3, #52] ; 0x34 + 803fa18: 68fb ldr r3, [r7, #12] + 803fa1a: 2200 movs r2, #0 + 803fa1c: 635a str r2, [r3, #52] ; 0x34 #endif #if LV_LABEL_TEXT_SELECTION label->sel_start = LV_DRAW_LABEL_NO_TXT_SEL; - 803fab2: 68fb ldr r3, [r7, #12] - 803fab4: f64f 72ff movw r2, #65535 ; 0xffff - 803fab8: 63da str r2, [r3, #60] ; 0x3c + 803fa1e: 68fb ldr r3, [r7, #12] + 803fa20: f64f 72ff movw r2, #65535 ; 0xffff + 803fa24: 63da str r2, [r3, #60] ; 0x3c label->sel_end = LV_DRAW_LABEL_NO_TXT_SEL; - 803faba: 68fb ldr r3, [r7, #12] - 803fabc: f64f 72ff movw r2, #65535 ; 0xffff - 803fac0: 641a str r2, [r3, #64] ; 0x40 + 803fa26: 68fb ldr r3, [r7, #12] + 803fa28: f64f 72ff movw r2, #65535 ; 0xffff + 803fa2c: 641a str r2, [r3, #64] ; 0x40 #endif label->dot.tmp_ptr = NULL; - 803fac2: 68fb ldr r3, [r7, #12] - 803fac4: 2200 movs r2, #0 - 803fac6: 629a str r2, [r3, #40] ; 0x28 + 803fa2e: 68fb ldr r3, [r7, #12] + 803fa30: 2200 movs r2, #0 + 803fa32: 629a str r2, [r3, #40] ; 0x28 label->dot_tmp_alloc = 0; - 803fac8: 68fa ldr r2, [r7, #12] - 803faca: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 - 803face: f36f 1386 bfc r3, #6, #1 - 803fad2: f882 3048 strb.w r3, [r2, #72] ; 0x48 + 803fa34: 68fa ldr r2, [r7, #12] + 803fa36: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 + 803fa3a: f36f 1386 bfc r3, #6, #1 + 803fa3e: f882 3048 strb.w r3, [r2, #72] ; 0x48 lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE); - 803fad6: 2102 movs r1, #2 - 803fad8: 6838 ldr r0, [r7, #0] - 803fada: f7c6 fdc1 bl 8006660 + 803fa42: 2102 movs r1, #2 + 803fa44: 6838 ldr r0, [r7, #0] + 803fa46: f7c6 fdd5 bl 80065f4 lv_label_set_long_mode(obj, LV_LABEL_LONG_WRAP); - 803fade: 2100 movs r1, #0 - 803fae0: 6838 ldr r0, [r7, #0] - 803fae2: f7ff f9f7 bl 803eed4 + 803fa4a: 2100 movs r1, #0 + 803fa4c: 6838 ldr r0, [r7, #0] + 803fa4e: f7ff f9f7 bl 803ee40 lv_label_set_text(obj, "Text"); - 803fae6: 4904 ldr r1, [pc, #16] ; (803faf8 ) - 803fae8: 6838 ldr r0, [r7, #0] - 803faea: f7ff f90b bl 803ed04 + 803fa52: 4904 ldr r1, [pc, #16] ; (803fa64 ) + 803fa54: 6838 ldr r0, [r7, #0] + 803fa56: f7ff f90b bl 803ec70 LV_TRACE_OBJ_CREATE("finished"); } - 803faee: bf00 nop - 803faf0: 3710 adds r7, #16 - 803faf2: 46bd mov sp, r7 - 803faf4: bd80 pop {r7, pc} - 803faf6: bf00 nop - 803faf8: 080471b8 .word 0x080471b8 + 803fa5a: bf00 nop + 803fa5c: 3710 adds r7, #16 + 803fa5e: 46bd mov sp, r7 + 803fa60: bd80 pop {r7, pc} + 803fa62: bf00 nop + 803fa64: 08047110 .word 0x08047110 -0803fafc : +0803fa68 : static void lv_label_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 803fafc: b580 push {r7, lr} - 803fafe: b084 sub sp, #16 - 803fb00: af00 add r7, sp, #0 - 803fb02: 6078 str r0, [r7, #4] - 803fb04: 6039 str r1, [r7, #0] + 803fa68: b580 push {r7, lr} + 803fa6a: b084 sub sp, #16 + 803fa6c: af00 add r7, sp, #0 + 803fa6e: 6078 str r0, [r7, #4] + 803fa70: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_label_t * label = (lv_label_t *)obj; - 803fb06: 683b ldr r3, [r7, #0] - 803fb08: 60fb str r3, [r7, #12] + 803fa72: 683b ldr r3, [r7, #0] + 803fa74: 60fb str r3, [r7, #12] lv_label_dot_tmp_free(obj); - 803fb0a: 6838 ldr r0, [r7, #0] - 803fb0c: f000 ffaa bl 8040a64 + 803fa76: 6838 ldr r0, [r7, #0] + 803fa78: f000 ffaa bl 80409d0 if(!label->static_txt) lv_mem_free(label->text); - 803fb10: 68fb ldr r3, [r7, #12] - 803fb12: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803fb16: f003 0308 and.w r3, r3, #8 - 803fb1a: b2db uxtb r3, r3 - 803fb1c: 2b00 cmp r3, #0 - 803fb1e: d104 bne.n 803fb2a - 803fb20: 68fb ldr r3, [r7, #12] - 803fb22: 6a5b ldr r3, [r3, #36] ; 0x24 - 803fb24: 4618 mov r0, r3 - 803fb26: f7f2 fed9 bl 80328dc + 803fa7c: 68fb ldr r3, [r7, #12] + 803fa7e: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803fa82: f003 0308 and.w r3, r3, #8 + 803fa86: b2db uxtb r3, r3 + 803fa88: 2b00 cmp r3, #0 + 803fa8a: d104 bne.n 803fa96 + 803fa8c: 68fb ldr r3, [r7, #12] + 803fa8e: 6a5b ldr r3, [r3, #36] ; 0x24 + 803fa90: 4618 mov r0, r3 + 803fa92: f7f2 fed9 bl 8032848 label->text = NULL; - 803fb2a: 68fb ldr r3, [r7, #12] - 803fb2c: 2200 movs r2, #0 - 803fb2e: 625a str r2, [r3, #36] ; 0x24 + 803fa96: 68fb ldr r3, [r7, #12] + 803fa98: 2200 movs r2, #0 + 803fa9a: 625a str r2, [r3, #36] ; 0x24 } - 803fb30: bf00 nop - 803fb32: 3710 adds r7, #16 - 803fb34: 46bd mov sp, r7 - 803fb36: bd80 pop {r7, pc} + 803fa9c: bf00 nop + 803fa9e: 3710 adds r7, #16 + 803faa0: 46bd mov sp, r7 + 803faa2: bd80 pop {r7, pc} -0803fb38 : +0803faa4 : static void lv_label_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 803fb38: b580 push {r7, lr} - 803fb3a: b090 sub sp, #64 ; 0x40 - 803fb3c: af04 add r7, sp, #16 - 803fb3e: 6078 str r0, [r7, #4] - 803fb40: 6039 str r1, [r7, #0] + 803faa4: b580 push {r7, lr} + 803faa6: b090 sub sp, #64 ; 0x40 + 803faa8: af04 add r7, sp, #16 + 803faaa: 6078 str r0, [r7, #4] + 803faac: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res; /*Call the ancestor's event handler*/ res = lv_obj_event_base(MY_CLASS, e); - 803fb42: 6839 ldr r1, [r7, #0] - 803fb44: 486a ldr r0, [pc, #424] ; (803fcf0 ) - 803fb46: f7c2 fcdd bl 8002504 - 803fb4a: 4603 mov r3, r0 - 803fb4c: f887 302b strb.w r3, [r7, #43] ; 0x2b + 803faae: 6839 ldr r1, [r7, #0] + 803fab0: 486a ldr r0, [pc, #424] ; (803fc5c ) + 803fab2: f7c2 fcf1 bl 8002498 + 803fab6: 4603 mov r3, r0 + 803fab8: f887 302b strb.w r3, [r7, #43] ; 0x2b if(res != LV_RES_OK) return; - 803fb50: f897 302b ldrb.w r3, [r7, #43] ; 0x2b - 803fb54: 2b01 cmp r3, #1 - 803fb56: f040 80c6 bne.w 803fce6 + 803fabc: f897 302b ldrb.w r3, [r7, #43] ; 0x2b + 803fac0: 2b01 cmp r3, #1 + 803fac2: f040 80c6 bne.w 803fc52 lv_event_code_t code = lv_event_get_code(e); - 803fb5a: 6838 ldr r0, [r7, #0] - 803fb5c: f7c2 fd26 bl 80025ac - 803fb60: 4603 mov r3, r0 - 803fb62: f887 302a strb.w r3, [r7, #42] ; 0x2a + 803fac6: 6838 ldr r0, [r7, #0] + 803fac8: f7c2 fd3a bl 8002540 + 803facc: 4603 mov r3, r0 + 803face: f887 302a strb.w r3, [r7, #42] ; 0x2a lv_obj_t * obj = lv_event_get_target(e); - 803fb66: 6838 ldr r0, [r7, #0] - 803fb68: f7c2 fd0a bl 8002580 - 803fb6c: 6278 str r0, [r7, #36] ; 0x24 + 803fad2: 6838 ldr r0, [r7, #0] + 803fad4: f7c2 fd1e bl 8002514 + 803fad8: 6278 str r0, [r7, #36] ; 0x24 if(code == LV_EVENT_STYLE_CHANGED) { - 803fb6e: f897 302a ldrb.w r3, [r7, #42] ; 0x2a - 803fb72: 2b2a cmp r3, #42 ; 0x2a - 803fb74: d106 bne.n 803fb84 + 803fada: f897 302a ldrb.w r3, [r7, #42] ; 0x2a + 803fade: 2b2a cmp r3, #42 ; 0x2a + 803fae0: d106 bne.n 803faf0 /*Revert dots for proper refresh*/ lv_label_revert_dots(obj); - 803fb76: 6a78 ldr r0, [r7, #36] ; 0x24 - 803fb78: f000 fec0 bl 80408fc + 803fae2: 6a78 ldr r0, [r7, #36] ; 0x24 + 803fae4: f000 fec0 bl 8040868 lv_label_refr_text(obj); - 803fb7c: 6a78 ldr r0, [r7, #36] ; 0x24 - 803fb7e: f000 fa85 bl 804008c - 803fb82: e0b1 b.n 803fce8 + 803fae8: 6a78 ldr r0, [r7, #36] ; 0x24 + 803faea: f000 fa85 bl 803fff8 + 803faee: e0b1 b.n 803fc54 } else if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) { - 803fb84: f897 302a ldrb.w r3, [r7, #42] ; 0x2a - 803fb88: 2b13 cmp r3, #19 - 803fb8a: d115 bne.n 803fbb8 + 803faf0: f897 302a ldrb.w r3, [r7, #42] ; 0x2a + 803faf4: 2b13 cmp r3, #19 + 803faf6: d115 bne.n 803fb24 /* Italic or other non-typical letters can be drawn of out of the object. * It happens if box_w + ofs_x > adw_w in the glyph. * To avoid this add some extra draw area. * font_h / 4 is an empirical value. */ const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 803fb8c: 2100 movs r1, #0 - 803fb8e: 6a78 ldr r0, [r7, #36] ; 0x24 - 803fb90: f7ff f85a bl 803ec48 - 803fb94: 6138 str r0, [r7, #16] + 803faf8: 2100 movs r1, #0 + 803fafa: 6a78 ldr r0, [r7, #36] ; 0x24 + 803fafc: f7ff f85a bl 803ebb4 + 803fb00: 6138 str r0, [r7, #16] lv_coord_t font_h = lv_font_get_line_height(font); - 803fb96: 6938 ldr r0, [r7, #16] - 803fb98: f7fe ff6c bl 803ea74 - 803fb9c: 4603 mov r3, r0 - 803fb9e: 81fb strh r3, [r7, #14] + 803fb02: 6938 ldr r0, [r7, #16] + 803fb04: f7fe ff6c bl 803e9e0 + 803fb08: 4603 mov r3, r0 + 803fb0a: 81fb strh r3, [r7, #14] lv_event_set_ext_draw_size(e, font_h / 4); - 803fba0: f9b7 300e ldrsh.w r3, [r7, #14] - 803fba4: 2b00 cmp r3, #0 - 803fba6: da00 bge.n 803fbaa - 803fba8: 3303 adds r3, #3 - 803fbaa: 109b asrs r3, r3, #2 - 803fbac: b21b sxth r3, r3 - 803fbae: 4619 mov r1, r3 - 803fbb0: 6838 ldr r0, [r7, #0] - 803fbb2: f7c2 fe21 bl 80027f8 - 803fbb6: e097 b.n 803fce8 + 803fb0c: f9b7 300e ldrsh.w r3, [r7, #14] + 803fb10: 2b00 cmp r3, #0 + 803fb12: da00 bge.n 803fb16 + 803fb14: 3303 adds r3, #3 + 803fb16: 109b asrs r3, r3, #2 + 803fb18: b21b sxth r3, r3 + 803fb1a: 4619 mov r1, r3 + 803fb1c: 6838 ldr r0, [r7, #0] + 803fb1e: f7c2 fe35 bl 800278c + 803fb22: e097 b.n 803fc54 } else if(code == LV_EVENT_SIZE_CHANGED) { - 803fbb8: f897 302a ldrb.w r3, [r7, #42] ; 0x2a - 803fbbc: 2b29 cmp r3, #41 ; 0x29 - 803fbbe: d106 bne.n 803fbce + 803fb24: f897 302a ldrb.w r3, [r7, #42] ; 0x2a + 803fb28: 2b29 cmp r3, #41 ; 0x29 + 803fb2a: d106 bne.n 803fb3a lv_label_revert_dots(obj); - 803fbc0: 6a78 ldr r0, [r7, #36] ; 0x24 - 803fbc2: f000 fe9b bl 80408fc + 803fb2c: 6a78 ldr r0, [r7, #36] ; 0x24 + 803fb2e: f000 fe9b bl 8040868 lv_label_refr_text(obj); - 803fbc6: 6a78 ldr r0, [r7, #36] ; 0x24 - 803fbc8: f000 fa60 bl 804008c - 803fbcc: e08c b.n 803fce8 + 803fb32: 6a78 ldr r0, [r7, #36] ; 0x24 + 803fb34: f000 fa60 bl 803fff8 + 803fb38: e08c b.n 803fc54 } else if(code == LV_EVENT_GET_SELF_SIZE) { - 803fbce: f897 302a ldrb.w r3, [r7, #42] ; 0x2a - 803fbd2: 2b2c cmp r3, #44 ; 0x2c - 803fbd4: d17f bne.n 803fcd6 + 803fb3a: f897 302a ldrb.w r3, [r7, #42] ; 0x2a + 803fb3e: 2b2c cmp r3, #44 ; 0x2c + 803fb40: d17f bne.n 803fc42 lv_point_t size; lv_label_t * label = (lv_label_t *)obj; - 803fbd6: 6a7b ldr r3, [r7, #36] ; 0x24 - 803fbd8: 623b str r3, [r7, #32] + 803fb42: 6a7b ldr r3, [r7, #36] ; 0x24 + 803fb44: 623b str r3, [r7, #32] const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 803fbda: 2100 movs r1, #0 - 803fbdc: 6a78 ldr r0, [r7, #36] ; 0x24 - 803fbde: f7ff f833 bl 803ec48 - 803fbe2: 61f8 str r0, [r7, #28] + 803fb46: 2100 movs r1, #0 + 803fb48: 6a78 ldr r0, [r7, #36] ; 0x24 + 803fb4a: f7ff f833 bl 803ebb4 + 803fb4e: 61f8 str r0, [r7, #28] lv_coord_t letter_space = lv_obj_get_style_text_letter_space(obj, LV_PART_MAIN); - 803fbe4: 2100 movs r1, #0 - 803fbe6: 6a78 ldr r0, [r7, #36] ; 0x24 - 803fbe8: f7ff f840 bl 803ec6c - 803fbec: 4603 mov r3, r0 - 803fbee: 837b strh r3, [r7, #26] + 803fb50: 2100 movs r1, #0 + 803fb52: 6a78 ldr r0, [r7, #36] ; 0x24 + 803fb54: f7ff f840 bl 803ebd8 + 803fb58: 4603 mov r3, r0 + 803fb5a: 837b strh r3, [r7, #26] lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN); - 803fbf0: 2100 movs r1, #0 - 803fbf2: 6a78 ldr r0, [r7, #36] ; 0x24 - 803fbf4: f7ff f84d bl 803ec92 - 803fbf8: 4603 mov r3, r0 - 803fbfa: 833b strh r3, [r7, #24] + 803fb5c: 2100 movs r1, #0 + 803fb5e: 6a78 ldr r0, [r7, #36] ; 0x24 + 803fb60: f7ff f84d bl 803ebfe + 803fb64: 4603 mov r3, r0 + 803fb66: 833b strh r3, [r7, #24] lv_text_flag_t flag = LV_TEXT_FLAG_NONE; - 803fbfc: 2300 movs r3, #0 - 803fbfe: f887 302f strb.w r3, [r7, #47] ; 0x2f + 803fb68: 2300 movs r3, #0 + 803fb6a: f887 302f strb.w r3, [r7, #47] ; 0x2f if(label->recolor != 0) flag |= LV_TEXT_FLAG_RECOLOR; - 803fc02: 6a3b ldr r3, [r7, #32] - 803fc04: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803fc08: f003 0310 and.w r3, r3, #16 - 803fc0c: b2db uxtb r3, r3 - 803fc0e: 2b00 cmp r3, #0 - 803fc10: d005 beq.n 803fc1e - 803fc12: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 803fc16: f043 0301 orr.w r3, r3, #1 - 803fc1a: f887 302f strb.w r3, [r7, #47] ; 0x2f + 803fb6e: 6a3b ldr r3, [r7, #32] + 803fb70: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803fb74: f003 0310 and.w r3, r3, #16 + 803fb78: b2db uxtb r3, r3 + 803fb7a: 2b00 cmp r3, #0 + 803fb7c: d005 beq.n 803fb8a + 803fb7e: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 803fb82: f043 0301 orr.w r3, r3, #1 + 803fb86: f887 302f strb.w r3, [r7, #47] ; 0x2f if(label->expand != 0) flag |= LV_TEXT_FLAG_EXPAND; - 803fc1e: 6a3b ldr r3, [r7, #32] - 803fc20: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803fc24: f003 0320 and.w r3, r3, #32 - 803fc28: b2db uxtb r3, r3 - 803fc2a: 2b00 cmp r3, #0 - 803fc2c: d005 beq.n 803fc3a - 803fc2e: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 803fc32: f043 0302 orr.w r3, r3, #2 - 803fc36: f887 302f strb.w r3, [r7, #47] ; 0x2f + 803fb8a: 6a3b ldr r3, [r7, #32] + 803fb8c: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803fb90: f003 0320 and.w r3, r3, #32 + 803fb94: b2db uxtb r3, r3 + 803fb96: 2b00 cmp r3, #0 + 803fb98: d005 beq.n 803fba6 + 803fb9a: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 803fb9e: f043 0302 orr.w r3, r3, #2 + 803fba2: f887 302f strb.w r3, [r7, #47] ; 0x2f lv_coord_t w = lv_obj_get_content_width(obj); - 803fc3a: 6a78 ldr r0, [r7, #36] ; 0x24 - 803fc3c: f7ca faa0 bl 800a180 - 803fc40: 4603 mov r3, r0 - 803fc42: 85bb strh r3, [r7, #44] ; 0x2c + 803fba6: 6a78 ldr r0, [r7, #36] ; 0x24 + 803fba8: f7ca fab4 bl 800a114 + 803fbac: 4603 mov r3, r0 + 803fbae: 85bb strh r3, [r7, #44] ; 0x2c if(lv_obj_get_style_width(obj, LV_PART_MAIN) == LV_SIZE_CONTENT && !obj->w_layout) w = LV_COORD_MAX; - 803fc44: 2100 movs r1, #0 - 803fc46: 6a78 ldr r0, [r7, #36] ; 0x24 - 803fc48: f7fe ffa2 bl 803eb90 - 803fc4c: 4603 mov r3, r0 - 803fc4e: 461a mov r2, r3 - 803fc50: f242 73d1 movw r3, #10193 ; 0x27d1 - 803fc54: 429a cmp r2, r3 - 803fc56: d10b bne.n 803fc70 - 803fc58: 6a7b ldr r3, [r7, #36] ; 0x24 - 803fc5a: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 803fc5e: f003 0304 and.w r3, r3, #4 - 803fc62: b2db uxtb r3, r3 - 803fc64: 2b00 cmp r3, #0 - 803fc66: d103 bne.n 803fc70 - 803fc68: f641 73ff movw r3, #8191 ; 0x1fff - 803fc6c: 85bb strh r3, [r7, #44] ; 0x2c - 803fc6e: e004 b.n 803fc7a + 803fbb0: 2100 movs r1, #0 + 803fbb2: 6a78 ldr r0, [r7, #36] ; 0x24 + 803fbb4: f7fe ffa2 bl 803eafc + 803fbb8: 4603 mov r3, r0 + 803fbba: 461a mov r2, r3 + 803fbbc: f242 73d1 movw r3, #10193 ; 0x27d1 + 803fbc0: 429a cmp r2, r3 + 803fbc2: d10b bne.n 803fbdc + 803fbc4: 6a7b ldr r3, [r7, #36] ; 0x24 + 803fbc6: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 803fbca: f003 0304 and.w r3, r3, #4 + 803fbce: b2db uxtb r3, r3 + 803fbd0: 2b00 cmp r3, #0 + 803fbd2: d103 bne.n 803fbdc + 803fbd4: f641 73ff movw r3, #8191 ; 0x1fff + 803fbd8: 85bb strh r3, [r7, #44] ; 0x2c + 803fbda: e004 b.n 803fbe6 else w = lv_obj_get_content_width(obj); - 803fc70: 6a78 ldr r0, [r7, #36] ; 0x24 - 803fc72: f7ca fa85 bl 800a180 - 803fc76: 4603 mov r3, r0 - 803fc78: 85bb strh r3, [r7, #44] ; 0x2c + 803fbdc: 6a78 ldr r0, [r7, #36] ; 0x24 + 803fbde: f7ca fa99 bl 800a114 + 803fbe2: 4603 mov r3, r0 + 803fbe4: 85bb strh r3, [r7, #44] ; 0x2c lv_txt_get_size(&size, label->text, font, letter_space, line_space, w, flag); - 803fc7a: 6a3b ldr r3, [r7, #32] - 803fc7c: 6a59 ldr r1, [r3, #36] ; 0x24 - 803fc7e: f9b7 201a ldrsh.w r2, [r7, #26] - 803fc82: f107 0008 add.w r0, r7, #8 - 803fc86: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 803fc8a: 9302 str r3, [sp, #8] - 803fc8c: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c - 803fc90: 9301 str r3, [sp, #4] - 803fc92: f9b7 3018 ldrsh.w r3, [r7, #24] - 803fc96: 9300 str r3, [sp, #0] - 803fc98: 4613 mov r3, r2 - 803fc9a: 69fa ldr r2, [r7, #28] - 803fc9c: f7f6 f9f5 bl 803608a + 803fbe6: 6a3b ldr r3, [r7, #32] + 803fbe8: 6a59 ldr r1, [r3, #36] ; 0x24 + 803fbea: f9b7 201a ldrsh.w r2, [r7, #26] + 803fbee: f107 0008 add.w r0, r7, #8 + 803fbf2: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 803fbf6: 9302 str r3, [sp, #8] + 803fbf8: f9b7 302c ldrsh.w r3, [r7, #44] ; 0x2c + 803fbfc: 9301 str r3, [sp, #4] + 803fbfe: f9b7 3018 ldrsh.w r3, [r7, #24] + 803fc02: 9300 str r3, [sp, #0] + 803fc04: 4613 mov r3, r2 + 803fc06: 69fa ldr r2, [r7, #28] + 803fc08: f7f6 f9f5 bl 8035ff6 lv_point_t * self_size = lv_event_get_param(e); - 803fca0: 6838 ldr r0, [r7, #0] - 803fca2: f7c2 fc91 bl 80025c8 - 803fca6: 6178 str r0, [r7, #20] + 803fc0c: 6838 ldr r0, [r7, #0] + 803fc0e: f7c2 fca5 bl 800255c + 803fc12: 6178 str r0, [r7, #20] self_size->x = LV_MAX(self_size->x, size.x); - 803fca8: f9b7 2008 ldrsh.w r2, [r7, #8] - 803fcac: 697b ldr r3, [r7, #20] - 803fcae: f9b3 3000 ldrsh.w r3, [r3] - 803fcb2: 4293 cmp r3, r2 - 803fcb4: bfb8 it lt - 803fcb6: 4613 movlt r3, r2 - 803fcb8: b21a sxth r2, r3 - 803fcba: 697b ldr r3, [r7, #20] - 803fcbc: 801a strh r2, [r3, #0] + 803fc14: f9b7 2008 ldrsh.w r2, [r7, #8] + 803fc18: 697b ldr r3, [r7, #20] + 803fc1a: f9b3 3000 ldrsh.w r3, [r3] + 803fc1e: 4293 cmp r3, r2 + 803fc20: bfb8 it lt + 803fc22: 4613 movlt r3, r2 + 803fc24: b21a sxth r2, r3 + 803fc26: 697b ldr r3, [r7, #20] + 803fc28: 801a strh r2, [r3, #0] self_size->y = LV_MAX(self_size->y, size.y); - 803fcbe: f9b7 200a ldrsh.w r2, [r7, #10] - 803fcc2: 697b ldr r3, [r7, #20] - 803fcc4: f9b3 3002 ldrsh.w r3, [r3, #2] - 803fcc8: 4293 cmp r3, r2 - 803fcca: bfb8 it lt - 803fccc: 4613 movlt r3, r2 - 803fcce: b21a sxth r2, r3 - 803fcd0: 697b ldr r3, [r7, #20] - 803fcd2: 805a strh r2, [r3, #2] - 803fcd4: e008 b.n 803fce8 + 803fc2a: f9b7 200a ldrsh.w r2, [r7, #10] + 803fc2e: 697b ldr r3, [r7, #20] + 803fc30: f9b3 3002 ldrsh.w r3, [r3, #2] + 803fc34: 4293 cmp r3, r2 + 803fc36: bfb8 it lt + 803fc38: 4613 movlt r3, r2 + 803fc3a: b21a sxth r2, r3 + 803fc3c: 697b ldr r3, [r7, #20] + 803fc3e: 805a strh r2, [r3, #2] + 803fc40: e008 b.n 803fc54 } else if(code == LV_EVENT_DRAW_MAIN) { - 803fcd6: f897 302a ldrb.w r3, [r7, #42] ; 0x2a - 803fcda: 2b15 cmp r3, #21 - 803fcdc: d104 bne.n 803fce8 + 803fc42: f897 302a ldrb.w r3, [r7, #42] ; 0x2a + 803fc46: 2b15 cmp r3, #21 + 803fc48: d104 bne.n 803fc54 draw_main(e); - 803fcde: 6838 ldr r0, [r7, #0] - 803fce0: f000 f808 bl 803fcf4 - 803fce4: e000 b.n 803fce8 + 803fc4a: 6838 ldr r0, [r7, #0] + 803fc4c: f000 f808 bl 803fc60 + 803fc50: e000 b.n 803fc54 if(res != LV_RES_OK) return; - 803fce6: bf00 nop + 803fc52: bf00 nop } } - 803fce8: 3730 adds r7, #48 ; 0x30 - 803fcea: 46bd mov sp, r7 - 803fcec: bd80 pop {r7, pc} - 803fcee: bf00 nop - 803fcf0: 08070a8c .word 0x08070a8c + 803fc54: 3730 adds r7, #48 ; 0x30 + 803fc56: 46bd mov sp, r7 + 803fc58: bd80 pop {r7, pc} + 803fc5a: bf00 nop + 803fc5c: 080709e4 .word 0x080709e4 -0803fcf4 : +0803fc60 : static void draw_main(lv_event_t * e) { - 803fcf4: b5b0 push {r4, r5, r7, lr} - 803fcf6: b09c sub sp, #112 ; 0x70 - 803fcf8: af04 add r7, sp, #16 - 803fcfa: 6078 str r0, [r7, #4] + 803fc60: b5b0 push {r4, r5, r7, lr} + 803fc62: b09c sub sp, #112 ; 0x70 + 803fc64: af04 add r7, sp, #16 + 803fc66: 6078 str r0, [r7, #4] lv_obj_t * obj = lv_event_get_target(e); - 803fcfc: 6878 ldr r0, [r7, #4] - 803fcfe: f7c2 fc3f bl 8002580 - 803fd02: 6578 str r0, [r7, #84] ; 0x54 + 803fc68: 6878 ldr r0, [r7, #4] + 803fc6a: f7c2 fc53 bl 8002514 + 803fc6e: 6578 str r0, [r7, #84] ; 0x54 lv_label_t * label = (lv_label_t *)obj; - 803fd04: 6d7b ldr r3, [r7, #84] ; 0x54 - 803fd06: 653b str r3, [r7, #80] ; 0x50 + 803fc70: 6d7b ldr r3, [r7, #84] ; 0x54 + 803fc72: 653b str r3, [r7, #80] ; 0x50 lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 803fd08: 6878 ldr r0, [r7, #4] - 803fd0a: f7c2 fd4f bl 80027ac - 803fd0e: 64f8 str r0, [r7, #76] ; 0x4c + 803fc74: 6878 ldr r0, [r7, #4] + 803fc76: f7c2 fd63 bl 8002740 + 803fc7a: 64f8 str r0, [r7, #76] ; 0x4c lv_area_t txt_coords; lv_obj_get_content_coords(obj, &txt_coords); - 803fd10: f107 0338 add.w r3, r7, #56 ; 0x38 - 803fd14: 4619 mov r1, r3 - 803fd16: 6d78 ldr r0, [r7, #84] ; 0x54 - 803fd18: f7ca fa88 bl 800a22c + 803fc7c: f107 0338 add.w r3, r7, #56 ; 0x38 + 803fc80: 4619 mov r1, r3 + 803fc82: 6d78 ldr r0, [r7, #84] ; 0x54 + 803fc84: f7ca fa9c bl 800a1c0 lv_text_flag_t flag = LV_TEXT_FLAG_NONE; - 803fd1c: 2300 movs r3, #0 - 803fd1e: f887 305f strb.w r3, [r7, #95] ; 0x5f + 803fc88: 2300 movs r3, #0 + 803fc8a: f887 305f strb.w r3, [r7, #95] ; 0x5f if(label->recolor != 0) flag |= LV_TEXT_FLAG_RECOLOR; - 803fd22: 6d3b ldr r3, [r7, #80] ; 0x50 - 803fd24: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803fd28: f003 0310 and.w r3, r3, #16 - 803fd2c: b2db uxtb r3, r3 - 803fd2e: 2b00 cmp r3, #0 - 803fd30: d005 beq.n 803fd3e - 803fd32: f897 305f ldrb.w r3, [r7, #95] ; 0x5f - 803fd36: f043 0301 orr.w r3, r3, #1 - 803fd3a: f887 305f strb.w r3, [r7, #95] ; 0x5f + 803fc8e: 6d3b ldr r3, [r7, #80] ; 0x50 + 803fc90: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803fc94: f003 0310 and.w r3, r3, #16 + 803fc98: b2db uxtb r3, r3 + 803fc9a: 2b00 cmp r3, #0 + 803fc9c: d005 beq.n 803fcaa + 803fc9e: f897 305f ldrb.w r3, [r7, #95] ; 0x5f + 803fca2: f043 0301 orr.w r3, r3, #1 + 803fca6: f887 305f strb.w r3, [r7, #95] ; 0x5f if(label->expand != 0) flag |= LV_TEXT_FLAG_EXPAND; - 803fd3e: 6d3b ldr r3, [r7, #80] ; 0x50 - 803fd40: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803fd44: f003 0320 and.w r3, r3, #32 - 803fd48: b2db uxtb r3, r3 - 803fd4a: 2b00 cmp r3, #0 - 803fd4c: d005 beq.n 803fd5a - 803fd4e: f897 305f ldrb.w r3, [r7, #95] ; 0x5f - 803fd52: f043 0302 orr.w r3, r3, #2 - 803fd56: f887 305f strb.w r3, [r7, #95] ; 0x5f + 803fcaa: 6d3b ldr r3, [r7, #80] ; 0x50 + 803fcac: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803fcb0: f003 0320 and.w r3, r3, #32 + 803fcb4: b2db uxtb r3, r3 + 803fcb6: 2b00 cmp r3, #0 + 803fcb8: d005 beq.n 803fcc6 + 803fcba: f897 305f ldrb.w r3, [r7, #95] ; 0x5f + 803fcbe: f043 0302 orr.w r3, r3, #2 + 803fcc2: f887 305f strb.w r3, [r7, #95] ; 0x5f if(lv_obj_get_style_width(obj, LV_PART_MAIN) == LV_SIZE_CONTENT && !obj->w_layout) flag |= LV_TEXT_FLAG_FIT; - 803fd5a: 2100 movs r1, #0 - 803fd5c: 6d78 ldr r0, [r7, #84] ; 0x54 - 803fd5e: f7fe ff17 bl 803eb90 - 803fd62: 4603 mov r3, r0 - 803fd64: 461a mov r2, r3 - 803fd66: f242 73d1 movw r3, #10193 ; 0x27d1 - 803fd6a: 429a cmp r2, r3 - 803fd6c: d10d bne.n 803fd8a - 803fd6e: 6d7b ldr r3, [r7, #84] ; 0x54 - 803fd70: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 803fd74: f003 0304 and.w r3, r3, #4 - 803fd78: b2db uxtb r3, r3 - 803fd7a: 2b00 cmp r3, #0 - 803fd7c: d105 bne.n 803fd8a - 803fd7e: f897 305f ldrb.w r3, [r7, #95] ; 0x5f - 803fd82: f043 0304 orr.w r3, r3, #4 - 803fd86: f887 305f strb.w r3, [r7, #95] ; 0x5f + 803fcc6: 2100 movs r1, #0 + 803fcc8: 6d78 ldr r0, [r7, #84] ; 0x54 + 803fcca: f7fe ff17 bl 803eafc + 803fcce: 4603 mov r3, r0 + 803fcd0: 461a mov r2, r3 + 803fcd2: f242 73d1 movw r3, #10193 ; 0x27d1 + 803fcd6: 429a cmp r2, r3 + 803fcd8: d10d bne.n 803fcf6 + 803fcda: 6d7b ldr r3, [r7, #84] ; 0x54 + 803fcdc: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 803fce0: f003 0304 and.w r3, r3, #4 + 803fce4: b2db uxtb r3, r3 + 803fce6: 2b00 cmp r3, #0 + 803fce8: d105 bne.n 803fcf6 + 803fcea: f897 305f ldrb.w r3, [r7, #95] ; 0x5f + 803fcee: f043 0304 orr.w r3, r3, #4 + 803fcf2: f887 305f strb.w r3, [r7, #95] ; 0x5f lv_draw_label_dsc_t label_draw_dsc; lv_draw_label_dsc_init(&label_draw_dsc); - 803fd8a: f107 0318 add.w r3, r7, #24 - 803fd8e: 4618 mov r0, r3 - 803fd90: f7d2 f9fc bl 801218c + 803fcf6: f107 0318 add.w r3, r7, #24 + 803fcfa: 4618 mov r0, r3 + 803fcfc: f7d2 f9fc bl 80120f8 label_draw_dsc.ofs_x = label->offset.x; - 803fd94: 6d3b ldr r3, [r7, #80] ; 0x50 - 803fd96: f9b3 3044 ldrsh.w r3, [r3, #68] ; 0x44 - 803fd9a: 85fb strh r3, [r7, #46] ; 0x2e + 803fd00: 6d3b ldr r3, [r7, #80] ; 0x50 + 803fd02: f9b3 3044 ldrsh.w r3, [r3, #68] ; 0x44 + 803fd06: 85fb strh r3, [r7, #46] ; 0x2e label_draw_dsc.ofs_y = label->offset.y; - 803fd9c: 6d3b ldr r3, [r7, #80] ; 0x50 - 803fd9e: f9b3 3046 ldrsh.w r3, [r3, #70] ; 0x46 - 803fda2: 863b strh r3, [r7, #48] ; 0x30 + 803fd08: 6d3b ldr r3, [r7, #80] ; 0x50 + 803fd0a: f9b3 3046 ldrsh.w r3, [r3, #70] ; 0x46 + 803fd0e: 863b strh r3, [r7, #48] ; 0x30 label_draw_dsc.flag = flag; - 803fda4: f897 305f ldrb.w r3, [r7, #95] ; 0x5f - 803fda8: f887 3035 strb.w r3, [r7, #53] ; 0x35 + 803fd10: f897 305f ldrb.w r3, [r7, #95] ; 0x5f + 803fd14: f887 3035 strb.w r3, [r7, #53] ; 0x35 lv_obj_init_draw_label_dsc(obj, LV_PART_MAIN, &label_draw_dsc); - 803fdac: f107 0318 add.w r3, r7, #24 - 803fdb0: 461a mov r2, r3 - 803fdb2: 2100 movs r1, #0 - 803fdb4: 6d78 ldr r0, [r7, #84] ; 0x54 - 803fdb6: f7c8 fdf4 bl 80089a2 + 803fd18: f107 0318 add.w r3, r7, #24 + 803fd1c: 461a mov r2, r3 + 803fd1e: 2100 movs r1, #0 + 803fd20: 6d78 ldr r0, [r7, #84] ; 0x54 + 803fd22: f7c8 fe08 bl 8008936 lv_bidi_calculate_align(&label_draw_dsc.align, &label_draw_dsc.bidi_dir, label->text); - 803fdba: 6d3b ldr r3, [r7, #80] ; 0x50 - 803fdbc: 6a5a ldr r2, [r3, #36] ; 0x24 - 803fdbe: f107 0318 add.w r3, r7, #24 - 803fdc2: f103 011b add.w r1, r3, #27 - 803fdc6: f107 0318 add.w r3, r7, #24 - 803fdca: 331c adds r3, #28 - 803fdcc: 4618 mov r0, r3 - 803fdce: f7fe fecd bl 803eb6c + 803fd26: 6d3b ldr r3, [r7, #80] ; 0x50 + 803fd28: 6a5a ldr r2, [r3, #36] ; 0x24 + 803fd2a: f107 0318 add.w r3, r7, #24 + 803fd2e: f103 011b add.w r1, r3, #27 + 803fd32: f107 0318 add.w r3, r7, #24 + 803fd36: 331c adds r3, #28 + 803fd38: 4618 mov r0, r3 + 803fd3a: f7fe fecd bl 803ead8 label_draw_dsc.sel_start = lv_label_get_text_selection_start(obj); - 803fdd2: 6d78 ldr r0, [r7, #84] ; 0x54 - 803fdd4: f7ff fdc3 bl 803f95e - 803fdd8: 4603 mov r3, r0 - 803fdda: 61fb str r3, [r7, #28] + 803fd3e: 6d78 ldr r0, [r7, #84] ; 0x54 + 803fd40: f7ff fdc3 bl 803f8ca + 803fd44: 4603 mov r3, r0 + 803fd46: 61fb str r3, [r7, #28] label_draw_dsc.sel_end = lv_label_get_text_selection_end(obj); - 803fddc: 6d78 ldr r0, [r7, #84] ; 0x54 - 803fdde: f7ff fdcb bl 803f978 - 803fde2: 4603 mov r3, r0 - 803fde4: 623b str r3, [r7, #32] + 803fd48: 6d78 ldr r0, [r7, #84] ; 0x54 + 803fd4a: f7ff fdcb bl 803f8e4 + 803fd4e: 4603 mov r3, r0 + 803fd50: 623b str r3, [r7, #32] if(label_draw_dsc.sel_start != LV_DRAW_LABEL_NO_TXT_SEL && label_draw_dsc.sel_end != LV_DRAW_LABEL_NO_TXT_SEL) { - 803fde6: 69fb ldr r3, [r7, #28] - 803fde8: f64f 72ff movw r2, #65535 ; 0xffff - 803fdec: 4293 cmp r3, r2 - 803fdee: d010 beq.n 803fe12 - 803fdf0: 6a3b ldr r3, [r7, #32] - 803fdf2: f64f 72ff movw r2, #65535 ; 0xffff - 803fdf6: 4293 cmp r3, r2 - 803fdf8: d00b beq.n 803fe12 + 803fd52: 69fb ldr r3, [r7, #28] + 803fd54: f64f 72ff movw r2, #65535 ; 0xffff + 803fd58: 4293 cmp r3, r2 + 803fd5a: d010 beq.n 803fd7e + 803fd5c: 6a3b ldr r3, [r7, #32] + 803fd5e: f64f 72ff movw r2, #65535 ; 0xffff + 803fd62: 4293 cmp r3, r2 + 803fd64: d00b beq.n 803fd7e label_draw_dsc.sel_color = lv_obj_get_style_text_color_filtered(obj, LV_PART_SELECTED); - 803fdfa: f44f 2180 mov.w r1, #262144 ; 0x40000 - 803fdfe: 6d78 ldr r0, [r7, #84] ; 0x54 - 803fe00: f7fe ff10 bl 803ec24 - 803fe04: 84f8 strh r0, [r7, #38] ; 0x26 + 803fd66: f44f 2180 mov.w r1, #262144 ; 0x40000 + 803fd6a: 6d78 ldr r0, [r7, #84] ; 0x54 + 803fd6c: f7fe ff10 bl 803eb90 + 803fd70: 84f8 strh r0, [r7, #38] ; 0x26 label_draw_dsc.sel_bg_color = lv_obj_get_style_bg_color(obj, LV_PART_SELECTED); - 803fe06: f44f 2180 mov.w r1, #262144 ; 0x40000 - 803fe0a: 6d78 ldr r0, [r7, #84] ; 0x54 - 803fe0c: f7fe fef9 bl 803ec02 - 803fe10: 8538 strh r0, [r7, #40] ; 0x28 + 803fd72: f44f 2180 mov.w r1, #262144 ; 0x40000 + 803fd76: 6d78 ldr r0, [r7, #84] ; 0x54 + 803fd78: f7fe fef9 bl 803eb6e + 803fd7c: 8538 strh r0, [r7, #40] ; 0x28 } /* In SCROLL and SCROLL_CIRCULAR mode the CENTER and RIGHT are pointless, so remove them. * (In addition, they will create misalignment in this situation)*/ if((label->long_mode == LV_LABEL_LONG_SCROLL || label->long_mode == LV_LABEL_LONG_SCROLL_CIRCULAR) && - 803fe12: 6d3b ldr r3, [r7, #80] ; 0x50 - 803fe14: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803fe18: f003 0307 and.w r3, r3, #7 - 803fe1c: b2db uxtb r3, r3 - 803fe1e: 2b02 cmp r3, #2 - 803fe20: d007 beq.n 803fe32 - 803fe22: 6d3b ldr r3, [r7, #80] ; 0x50 - 803fe24: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803fe28: f003 0307 and.w r3, r3, #7 - 803fe2c: b2db uxtb r3, r3 - 803fe2e: 2b03 cmp r3, #3 - 803fe30: d128 bne.n 803fe84 + 803fd7e: 6d3b ldr r3, [r7, #80] ; 0x50 + 803fd80: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803fd84: f003 0307 and.w r3, r3, #7 + 803fd88: b2db uxtb r3, r3 + 803fd8a: 2b02 cmp r3, #2 + 803fd8c: d007 beq.n 803fd9e + 803fd8e: 6d3b ldr r3, [r7, #80] ; 0x50 + 803fd90: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803fd94: f003 0307 and.w r3, r3, #7 + 803fd98: b2db uxtb r3, r3 + 803fd9a: 2b03 cmp r3, #3 + 803fd9c: d128 bne.n 803fdf0 (label_draw_dsc.align == LV_TEXT_ALIGN_CENTER || label_draw_dsc.align == LV_TEXT_ALIGN_RIGHT)) { - 803fe32: f897 3034 ldrb.w r3, [r7, #52] ; 0x34 + 803fd9e: f897 3034 ldrb.w r3, [r7, #52] ; 0x34 if((label->long_mode == LV_LABEL_LONG_SCROLL || label->long_mode == LV_LABEL_LONG_SCROLL_CIRCULAR) && - 803fe36: 2b02 cmp r3, #2 - 803fe38: d003 beq.n 803fe42 + 803fda2: 2b02 cmp r3, #2 + 803fda4: d003 beq.n 803fdae (label_draw_dsc.align == LV_TEXT_ALIGN_CENTER || label_draw_dsc.align == LV_TEXT_ALIGN_RIGHT)) { - 803fe3a: f897 3034 ldrb.w r3, [r7, #52] ; 0x34 - 803fe3e: 2b03 cmp r3, #3 - 803fe40: d120 bne.n 803fe84 + 803fda6: f897 3034 ldrb.w r3, [r7, #52] ; 0x34 + 803fdaa: 2b03 cmp r3, #3 + 803fdac: d120 bne.n 803fdf0 lv_point_t size; lv_txt_get_size(&size, label->text, label_draw_dsc.font, label_draw_dsc.letter_space, label_draw_dsc.line_space, - 803fe42: 6d3b ldr r3, [r7, #80] ; 0x50 - 803fe44: 6a59 ldr r1, [r3, #36] ; 0x24 - 803fe46: 69bc ldr r4, [r7, #24] - 803fe48: f9b7 502c ldrsh.w r5, [r7, #44] ; 0x2c - 803fe4c: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a - 803fe50: f107 000c add.w r0, r7, #12 - 803fe54: f897 205f ldrb.w r2, [r7, #95] ; 0x5f - 803fe58: 9202 str r2, [sp, #8] - 803fe5a: f641 72ff movw r2, #8191 ; 0x1fff - 803fe5e: 9201 str r2, [sp, #4] - 803fe60: 9300 str r3, [sp, #0] - 803fe62: 462b mov r3, r5 - 803fe64: 4622 mov r2, r4 - 803fe66: f7f6 f910 bl 803608a + 803fdae: 6d3b ldr r3, [r7, #80] ; 0x50 + 803fdb0: 6a59 ldr r1, [r3, #36] ; 0x24 + 803fdb2: 69bc ldr r4, [r7, #24] + 803fdb4: f9b7 502c ldrsh.w r5, [r7, #44] ; 0x2c + 803fdb8: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a + 803fdbc: f107 000c add.w r0, r7, #12 + 803fdc0: f897 205f ldrb.w r2, [r7, #95] ; 0x5f + 803fdc4: 9202 str r2, [sp, #8] + 803fdc6: f641 72ff movw r2, #8191 ; 0x1fff + 803fdca: 9201 str r2, [sp, #4] + 803fdcc: 9300 str r3, [sp, #0] + 803fdce: 462b mov r3, r5 + 803fdd0: 4622 mov r2, r4 + 803fdd2: f7f6 f910 bl 8035ff6 LV_COORD_MAX, flag); if(size.x > lv_area_get_width(&txt_coords)) { - 803fe6a: f9b7 400c ldrsh.w r4, [r7, #12] - 803fe6e: f107 0338 add.w r3, r7, #56 ; 0x38 - 803fe72: 4618 mov r0, r3 - 803fe74: f7fe fdd2 bl 803ea1c - 803fe78: 4603 mov r3, r0 - 803fe7a: 429c cmp r4, r3 - 803fe7c: dd02 ble.n 803fe84 + 803fdd6: f9b7 400c ldrsh.w r4, [r7, #12] + 803fdda: f107 0338 add.w r3, r7, #56 ; 0x38 + 803fdde: 4618 mov r0, r3 + 803fde0: f7fe fdd2 bl 803e988 + 803fde4: 4603 mov r3, r0 + 803fde6: 429c cmp r4, r3 + 803fde8: dd02 ble.n 803fdf0 label_draw_dsc.align = LV_TEXT_ALIGN_LEFT; - 803fe7e: 2301 movs r3, #1 - 803fe80: f887 3034 strb.w r3, [r7, #52] ; 0x34 + 803fdea: 2301 movs r3, #1 + 803fdec: f887 3034 strb.w r3, [r7, #52] ; 0x34 } } #if LV_LABEL_LONG_TXT_HINT lv_draw_label_hint_t * hint = &label->hint; - 803fe84: 6d3b ldr r3, [r7, #80] ; 0x50 - 803fe86: 3330 adds r3, #48 ; 0x30 - 803fe88: 65bb str r3, [r7, #88] ; 0x58 + 803fdf0: 6d3b ldr r3, [r7, #80] ; 0x50 + 803fdf2: 3330 adds r3, #48 ; 0x30 + 803fdf4: 65bb str r3, [r7, #88] ; 0x58 if(label->long_mode == LV_LABEL_LONG_SCROLL_CIRCULAR || lv_area_get_height(&txt_coords) < LV_LABEL_HINT_HEIGHT_LIMIT) - 803fe8a: 6d3b ldr r3, [r7, #80] ; 0x50 - 803fe8c: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803fe90: f003 0307 and.w r3, r3, #7 - 803fe94: b2db uxtb r3, r3 - 803fe96: 2b03 cmp r3, #3 - 803fe98: d008 beq.n 803feac - 803fe9a: f107 0338 add.w r3, r7, #56 ; 0x38 - 803fe9e: 4618 mov r0, r3 - 803fea0: f7fe fdd2 bl 803ea48 - 803fea4: 4603 mov r3, r0 - 803fea6: f5b3 6f80 cmp.w r3, #1024 ; 0x400 - 803feaa: da01 bge.n 803feb0 + 803fdf6: 6d3b ldr r3, [r7, #80] ; 0x50 + 803fdf8: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803fdfc: f003 0307 and.w r3, r3, #7 + 803fe00: b2db uxtb r3, r3 + 803fe02: 2b03 cmp r3, #3 + 803fe04: d008 beq.n 803fe18 + 803fe06: f107 0338 add.w r3, r7, #56 ; 0x38 + 803fe0a: 4618 mov r0, r3 + 803fe0c: f7fe fdd2 bl 803e9b4 + 803fe10: 4603 mov r3, r0 + 803fe12: f5b3 6f80 cmp.w r3, #1024 ; 0x400 + 803fe16: da01 bge.n 803fe1c hint = NULL; - 803feac: 2300 movs r3, #0 - 803feae: 65bb str r3, [r7, #88] ; 0x58 + 803fe18: 2300 movs r3, #0 + 803fe1a: 65bb str r3, [r7, #88] ; 0x58 /*Just for compatibility*/ lv_draw_label_hint_t * hint = NULL; #endif lv_area_t txt_clip; bool is_common = _lv_area_intersect(&txt_clip, &txt_coords, draw_ctx->clip_area); - 803feb0: 6cfb ldr r3, [r7, #76] ; 0x4c - 803feb2: 689a ldr r2, [r3, #8] - 803feb4: f107 0138 add.w r1, r7, #56 ; 0x38 - 803feb8: f107 0310 add.w r3, r7, #16 - 803febc: 4618 mov r0, r3 - 803febe: f7f1 f8f3 bl 80310a8 <_lv_area_intersect> - 803fec2: 4603 mov r3, r0 - 803fec4: f887 304b strb.w r3, [r7, #75] ; 0x4b + 803fe1c: 6cfb ldr r3, [r7, #76] ; 0x4c + 803fe1e: 689a ldr r2, [r3, #8] + 803fe20: f107 0138 add.w r1, r7, #56 ; 0x38 + 803fe24: f107 0310 add.w r3, r7, #16 + 803fe28: 4618 mov r0, r3 + 803fe2a: f7f1 f8f3 bl 8031014 <_lv_area_intersect> + 803fe2e: 4603 mov r3, r0 + 803fe30: f887 304b strb.w r3, [r7, #75] ; 0x4b if(!is_common) return; - 803fec8: f897 304b ldrb.w r3, [r7, #75] ; 0x4b - 803fecc: f083 0301 eor.w r3, r3, #1 - 803fed0: b2db uxtb r3, r3 - 803fed2: 2b00 cmp r3, #0 - 803fed4: f040 80d6 bne.w 8040084 + 803fe34: f897 304b ldrb.w r3, [r7, #75] ; 0x4b + 803fe38: f083 0301 eor.w r3, r3, #1 + 803fe3c: b2db uxtb r3, r3 + 803fe3e: 2b00 cmp r3, #0 + 803fe40: f040 80d6 bne.w 803fff0 if(label->long_mode == LV_LABEL_LONG_WRAP) { - 803fed8: 6d3b ldr r3, [r7, #80] ; 0x50 - 803feda: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803fede: f003 0307 and.w r3, r3, #7 - 803fee2: b2db uxtb r3, r3 - 803fee4: 2b00 cmp r3, #0 - 803fee6: d114 bne.n 803ff12 + 803fe44: 6d3b ldr r3, [r7, #80] ; 0x50 + 803fe46: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803fe4a: f003 0307 and.w r3, r3, #7 + 803fe4e: b2db uxtb r3, r3 + 803fe50: 2b00 cmp r3, #0 + 803fe52: d114 bne.n 803fe7e lv_coord_t s = lv_obj_get_scroll_top(obj); - 803fee8: 6d78 ldr r0, [r7, #84] ; 0x54 - 803feea: f7cb fd6f bl 800b9cc - 803feee: 4603 mov r3, r0 - 803fef0: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 + 803fe54: 6d78 ldr r0, [r7, #84] ; 0x54 + 803fe56: f7cb fd83 bl 800b960 + 803fe5a: 4603 mov r3, r0 + 803fe5c: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 lv_area_move(&txt_coords, 0, -s); - 803fef4: f8b7 3048 ldrh.w r3, [r7, #72] ; 0x48 - 803fef8: 425b negs r3, r3 - 803fefa: b29b uxth r3, r3 - 803fefc: b21a sxth r2, r3 - 803fefe: f107 0338 add.w r3, r7, #56 ; 0x38 - 803ff02: 2100 movs r1, #0 - 803ff04: 4618 mov r0, r3 - 803ff06: f7f1 f89a bl 803103e + 803fe60: f8b7 3048 ldrh.w r3, [r7, #72] ; 0x48 + 803fe64: 425b negs r3, r3 + 803fe66: b29b uxth r3, r3 + 803fe68: b21a sxth r2, r3 + 803fe6a: f107 0338 add.w r3, r7, #56 ; 0x38 + 803fe6e: 2100 movs r1, #0 + 803fe70: 4618 mov r0, r3 + 803fe72: f7f1 f89a bl 8030faa txt_coords.y2 = obj->coords.y2; - 803ff0a: 6d7b ldr r3, [r7, #84] ; 0x54 - 803ff0c: f9b3 301a ldrsh.w r3, [r3, #26] - 803ff10: 87fb strh r3, [r7, #62] ; 0x3e + 803fe76: 6d7b ldr r3, [r7, #84] ; 0x54 + 803fe78: f9b3 301a ldrsh.w r3, [r3, #26] + 803fe7c: 87fb strh r3, [r7, #62] ; 0x3e } if(label->long_mode == LV_LABEL_LONG_SCROLL || label->long_mode == LV_LABEL_LONG_SCROLL_CIRCULAR) { - 803ff12: 6d3b ldr r3, [r7, #80] ; 0x50 - 803ff14: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803ff18: f003 0307 and.w r3, r3, #7 - 803ff1c: b2db uxtb r3, r3 - 803ff1e: 2b02 cmp r3, #2 - 803ff20: d007 beq.n 803ff32 - 803ff22: 6d3b ldr r3, [r7, #80] ; 0x50 - 803ff24: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803ff28: f003 0307 and.w r3, r3, #7 - 803ff2c: b2db uxtb r3, r3 - 803ff2e: 2b03 cmp r3, #3 - 803ff30: d116 bne.n 803ff60 + 803fe7e: 6d3b ldr r3, [r7, #80] ; 0x50 + 803fe80: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803fe84: f003 0307 and.w r3, r3, #7 + 803fe88: b2db uxtb r3, r3 + 803fe8a: 2b02 cmp r3, #2 + 803fe8c: d007 beq.n 803fe9e + 803fe8e: 6d3b ldr r3, [r7, #80] ; 0x50 + 803fe90: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803fe94: f003 0307 and.w r3, r3, #7 + 803fe98: b2db uxtb r3, r3 + 803fe9a: 2b03 cmp r3, #3 + 803fe9c: d116 bne.n 803fecc const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 803ff32: 6cfb ldr r3, [r7, #76] ; 0x4c - 803ff34: 689b ldr r3, [r3, #8] - 803ff36: 647b str r3, [r7, #68] ; 0x44 + 803fe9e: 6cfb ldr r3, [r7, #76] ; 0x4c + 803fea0: 689b ldr r3, [r3, #8] + 803fea2: 647b str r3, [r7, #68] ; 0x44 draw_ctx->clip_area = &txt_clip; - 803ff38: 6cfb ldr r3, [r7, #76] ; 0x4c - 803ff3a: f107 0210 add.w r2, r7, #16 - 803ff3e: 609a str r2, [r3, #8] + 803fea4: 6cfb ldr r3, [r7, #76] ; 0x4c + 803fea6: f107 0210 add.w r2, r7, #16 + 803feaa: 609a str r2, [r3, #8] lv_draw_label(draw_ctx, &label_draw_dsc, &txt_coords, label->text, hint); - 803ff40: 6d3b ldr r3, [r7, #80] ; 0x50 - 803ff42: 6a58 ldr r0, [r3, #36] ; 0x24 - 803ff44: f107 0238 add.w r2, r7, #56 ; 0x38 - 803ff48: f107 0118 add.w r1, r7, #24 - 803ff4c: 6dbb ldr r3, [r7, #88] ; 0x58 - 803ff4e: 9300 str r3, [sp, #0] - 803ff50: 4603 mov r3, r0 - 803ff52: 6cf8 ldr r0, [r7, #76] ; 0x4c - 803ff54: f7d2 f946 bl 80121e4 + 803feac: 6d3b ldr r3, [r7, #80] ; 0x50 + 803feae: 6a58 ldr r0, [r3, #36] ; 0x24 + 803feb0: f107 0238 add.w r2, r7, #56 ; 0x38 + 803feb4: f107 0118 add.w r1, r7, #24 + 803feb8: 6dbb ldr r3, [r7, #88] ; 0x58 + 803feba: 9300 str r3, [sp, #0] + 803febc: 4603 mov r3, r0 + 803febe: 6cf8 ldr r0, [r7, #76] ; 0x4c + 803fec0: f7d2 f946 bl 8012150 draw_ctx->clip_area = clip_area_ori; - 803ff58: 6cfb ldr r3, [r7, #76] ; 0x4c - 803ff5a: 6c7a ldr r2, [r7, #68] ; 0x44 - 803ff5c: 609a str r2, [r3, #8] + 803fec4: 6cfb ldr r3, [r7, #76] ; 0x4c + 803fec6: 6c7a ldr r2, [r7, #68] ; 0x44 + 803fec8: 609a str r2, [r3, #8] if(label->long_mode == LV_LABEL_LONG_SCROLL || label->long_mode == LV_LABEL_LONG_SCROLL_CIRCULAR) { - 803ff5e: e00b b.n 803ff78 + 803feca: e00b b.n 803fee4 } else { lv_draw_label(draw_ctx, &label_draw_dsc, &txt_coords, label->text, hint); - 803ff60: 6d3b ldr r3, [r7, #80] ; 0x50 - 803ff62: 6a58 ldr r0, [r3, #36] ; 0x24 - 803ff64: f107 0238 add.w r2, r7, #56 ; 0x38 - 803ff68: f107 0118 add.w r1, r7, #24 - 803ff6c: 6dbb ldr r3, [r7, #88] ; 0x58 - 803ff6e: 9300 str r3, [sp, #0] - 803ff70: 4603 mov r3, r0 - 803ff72: 6cf8 ldr r0, [r7, #76] ; 0x4c - 803ff74: f7d2 f936 bl 80121e4 + 803fecc: 6d3b ldr r3, [r7, #80] ; 0x50 + 803fece: 6a58 ldr r0, [r3, #36] ; 0x24 + 803fed0: f107 0238 add.w r2, r7, #56 ; 0x38 + 803fed4: f107 0118 add.w r1, r7, #24 + 803fed8: 6dbb ldr r3, [r7, #88] ; 0x58 + 803feda: 9300 str r3, [sp, #0] + 803fedc: 4603 mov r3, r0 + 803fede: 6cf8 ldr r0, [r7, #76] ; 0x4c + 803fee0: f7d2 f936 bl 8012150 } const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 803ff78: 6cfb ldr r3, [r7, #76] ; 0x4c - 803ff7a: 689b ldr r3, [r3, #8] - 803ff7c: 643b str r3, [r7, #64] ; 0x40 + 803fee4: 6cfb ldr r3, [r7, #76] ; 0x4c + 803fee6: 689b ldr r3, [r3, #8] + 803fee8: 643b str r3, [r7, #64] ; 0x40 draw_ctx->clip_area = &txt_clip; - 803ff7e: 6cfb ldr r3, [r7, #76] ; 0x4c - 803ff80: f107 0210 add.w r2, r7, #16 - 803ff84: 609a str r2, [r3, #8] + 803feea: 6cfb ldr r3, [r7, #76] ; 0x4c + 803feec: f107 0210 add.w r2, r7, #16 + 803fef0: 609a str r2, [r3, #8] if(label->long_mode == LV_LABEL_LONG_SCROLL_CIRCULAR) { - 803ff86: 6d3b ldr r3, [r7, #80] ; 0x50 - 803ff88: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 803ff8c: f003 0307 and.w r3, r3, #7 - 803ff90: b2db uxtb r3, r3 - 803ff92: 2b03 cmp r3, #3 - 803ff94: d172 bne.n 804007c + 803fef2: 6d3b ldr r3, [r7, #80] ; 0x50 + 803fef4: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 803fef8: f003 0307 and.w r3, r3, #7 + 803fefc: b2db uxtb r3, r3 + 803fefe: 2b03 cmp r3, #3 + 803ff00: d172 bne.n 803ffe8 lv_point_t size; lv_txt_get_size(&size, label->text, label_draw_dsc.font, label_draw_dsc.letter_space, label_draw_dsc.line_space, - 803ff96: 6d3b ldr r3, [r7, #80] ; 0x50 - 803ff98: 6a59 ldr r1, [r3, #36] ; 0x24 - 803ff9a: 69bc ldr r4, [r7, #24] - 803ff9c: f9b7 502c ldrsh.w r5, [r7, #44] ; 0x2c - 803ffa0: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a - 803ffa4: f107 0008 add.w r0, r7, #8 - 803ffa8: f897 205f ldrb.w r2, [r7, #95] ; 0x5f - 803ffac: 9202 str r2, [sp, #8] - 803ffae: f641 72ff movw r2, #8191 ; 0x1fff - 803ffb2: 9201 str r2, [sp, #4] - 803ffb4: 9300 str r3, [sp, #0] - 803ffb6: 462b mov r3, r5 - 803ffb8: 4622 mov r2, r4 - 803ffba: f7f6 f866 bl 803608a + 803ff02: 6d3b ldr r3, [r7, #80] ; 0x50 + 803ff04: 6a59 ldr r1, [r3, #36] ; 0x24 + 803ff06: 69bc ldr r4, [r7, #24] + 803ff08: f9b7 502c ldrsh.w r5, [r7, #44] ; 0x2c + 803ff0c: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a + 803ff10: f107 0008 add.w r0, r7, #8 + 803ff14: f897 205f ldrb.w r2, [r7, #95] ; 0x5f + 803ff18: 9202 str r2, [sp, #8] + 803ff1a: f641 72ff movw r2, #8191 ; 0x1fff + 803ff1e: 9201 str r2, [sp, #4] + 803ff20: 9300 str r3, [sp, #0] + 803ff22: 462b mov r3, r5 + 803ff24: 4622 mov r2, r4 + 803ff26: f7f6 f866 bl 8035ff6 LV_COORD_MAX, flag); /*Draw the text again on label to the original to make a circular effect */ if(size.x > lv_area_get_width(&txt_coords)) { - 803ffbe: f9b7 4008 ldrsh.w r4, [r7, #8] - 803ffc2: f107 0338 add.w r3, r7, #56 ; 0x38 - 803ffc6: 4618 mov r0, r3 - 803ffc8: f7fe fd28 bl 803ea1c - 803ffcc: 4603 mov r3, r0 - 803ffce: 429c cmp r4, r3 - 803ffd0: dd27 ble.n 8040022 + 803ff2a: f9b7 4008 ldrsh.w r4, [r7, #8] + 803ff2e: f107 0338 add.w r3, r7, #56 ; 0x38 + 803ff32: 4618 mov r0, r3 + 803ff34: f7fe fd28 bl 803e988 + 803ff38: 4603 mov r3, r0 + 803ff3a: 429c cmp r4, r3 + 803ff3c: dd27 ble.n 803ff8e label_draw_dsc.ofs_x = label->offset.x + size.x + - 803ffd2: 6d3b ldr r3, [r7, #80] ; 0x50 - 803ffd4: f9b3 3044 ldrsh.w r3, [r3, #68] ; 0x44 - 803ffd8: b29a uxth r2, r3 - 803ffda: f9b7 3008 ldrsh.w r3, [r7, #8] - 803ffde: b29b uxth r3, r3 - 803ffe0: 4413 add r3, r2 - 803ffe2: b29c uxth r4, r3 + 803ff3e: 6d3b ldr r3, [r7, #80] ; 0x50 + 803ff40: f9b3 3044 ldrsh.w r3, [r3, #68] ; 0x44 + 803ff44: b29a uxth r2, r3 + 803ff46: f9b7 3008 ldrsh.w r3, [r7, #8] + 803ff4a: b29b uxth r3, r3 + 803ff4c: 4413 add r3, r2 + 803ff4e: b29c uxth r4, r3 lv_font_get_glyph_width(label_draw_dsc.font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT; - 803ffe4: 69bb ldr r3, [r7, #24] - 803ffe6: 2220 movs r2, #32 - 803ffe8: 2120 movs r1, #32 - 803ffea: 4618 mov r0, r3 - 803ffec: f7ef fd96 bl 802fb1c - 803fff0: 4603 mov r3, r0 + 803ff50: 69bb ldr r3, [r7, #24] + 803ff52: 2220 movs r2, #32 + 803ff54: 2120 movs r1, #32 + 803ff56: 4618 mov r0, r3 + 803ff58: f7ef fd96 bl 802fa88 + 803ff5c: 4603 mov r3, r0 label_draw_dsc.ofs_x = label->offset.x + size.x + - 803fff2: 461a mov r2, r3 - 803fff4: 0052 lsls r2, r2, #1 - 803fff6: 4413 add r3, r2 - 803fff8: b29b uxth r3, r3 - 803fffa: 4423 add r3, r4 - 803fffc: b29b uxth r3, r3 - 803fffe: b21b sxth r3, r3 - 8040000: 85fb strh r3, [r7, #46] ; 0x2e + 803ff5e: 461a mov r2, r3 + 803ff60: 0052 lsls r2, r2, #1 + 803ff62: 4413 add r3, r2 + 803ff64: b29b uxth r3, r3 + 803ff66: 4423 add r3, r4 + 803ff68: b29b uxth r3, r3 + 803ff6a: b21b sxth r3, r3 + 803ff6c: 85fb strh r3, [r7, #46] ; 0x2e label_draw_dsc.ofs_y = label->offset.y; - 8040002: 6d3b ldr r3, [r7, #80] ; 0x50 - 8040004: f9b3 3046 ldrsh.w r3, [r3, #70] ; 0x46 - 8040008: 863b strh r3, [r7, #48] ; 0x30 + 803ff6e: 6d3b ldr r3, [r7, #80] ; 0x50 + 803ff70: f9b3 3046 ldrsh.w r3, [r3, #70] ; 0x46 + 803ff74: 863b strh r3, [r7, #48] ; 0x30 lv_draw_label(draw_ctx, &label_draw_dsc, &txt_coords, label->text, hint); - 804000a: 6d3b ldr r3, [r7, #80] ; 0x50 - 804000c: 6a58 ldr r0, [r3, #36] ; 0x24 - 804000e: f107 0238 add.w r2, r7, #56 ; 0x38 - 8040012: f107 0118 add.w r1, r7, #24 - 8040016: 6dbb ldr r3, [r7, #88] ; 0x58 - 8040018: 9300 str r3, [sp, #0] - 804001a: 4603 mov r3, r0 - 804001c: 6cf8 ldr r0, [r7, #76] ; 0x4c - 804001e: f7d2 f8e1 bl 80121e4 + 803ff76: 6d3b ldr r3, [r7, #80] ; 0x50 + 803ff78: 6a58 ldr r0, [r3, #36] ; 0x24 + 803ff7a: f107 0238 add.w r2, r7, #56 ; 0x38 + 803ff7e: f107 0118 add.w r1, r7, #24 + 803ff82: 6dbb ldr r3, [r7, #88] ; 0x58 + 803ff84: 9300 str r3, [sp, #0] + 803ff86: 4603 mov r3, r0 + 803ff88: 6cf8 ldr r0, [r7, #76] ; 0x4c + 803ff8a: f7d2 f8e1 bl 8012150 } /*Draw the text again below the original to make a circular effect */ if(size.y > lv_area_get_height(&txt_coords)) { - 8040022: f9b7 400a ldrsh.w r4, [r7, #10] - 8040026: f107 0338 add.w r3, r7, #56 ; 0x38 - 804002a: 4618 mov r0, r3 - 804002c: f7fe fd0c bl 803ea48 - 8040030: 4603 mov r3, r0 - 8040032: 429c cmp r4, r3 - 8040034: dd22 ble.n 804007c + 803ff8e: f9b7 400a ldrsh.w r4, [r7, #10] + 803ff92: f107 0338 add.w r3, r7, #56 ; 0x38 + 803ff96: 4618 mov r0, r3 + 803ff98: f7fe fd0c bl 803e9b4 + 803ff9c: 4603 mov r3, r0 + 803ff9e: 429c cmp r4, r3 + 803ffa0: dd22 ble.n 803ffe8 label_draw_dsc.ofs_x = label->offset.x; - 8040036: 6d3b ldr r3, [r7, #80] ; 0x50 - 8040038: f9b3 3044 ldrsh.w r3, [r3, #68] ; 0x44 - 804003c: 85fb strh r3, [r7, #46] ; 0x2e + 803ffa2: 6d3b ldr r3, [r7, #80] ; 0x50 + 803ffa4: f9b3 3044 ldrsh.w r3, [r3, #68] ; 0x44 + 803ffa8: 85fb strh r3, [r7, #46] ; 0x2e label_draw_dsc.ofs_y = label->offset.y + size.y + lv_font_get_line_height(label_draw_dsc.font); - 804003e: 6d3b ldr r3, [r7, #80] ; 0x50 - 8040040: f9b3 3046 ldrsh.w r3, [r3, #70] ; 0x46 - 8040044: b29a uxth r2, r3 - 8040046: f9b7 300a ldrsh.w r3, [r7, #10] - 804004a: b29b uxth r3, r3 - 804004c: 4413 add r3, r2 - 804004e: b29c uxth r4, r3 - 8040050: 69bb ldr r3, [r7, #24] - 8040052: 4618 mov r0, r3 - 8040054: f7fe fd0e bl 803ea74 - 8040058: 4603 mov r3, r0 - 804005a: b29b uxth r3, r3 - 804005c: 4423 add r3, r4 - 804005e: b29b uxth r3, r3 - 8040060: b21b sxth r3, r3 - 8040062: 863b strh r3, [r7, #48] ; 0x30 + 803ffaa: 6d3b ldr r3, [r7, #80] ; 0x50 + 803ffac: f9b3 3046 ldrsh.w r3, [r3, #70] ; 0x46 + 803ffb0: b29a uxth r2, r3 + 803ffb2: f9b7 300a ldrsh.w r3, [r7, #10] + 803ffb6: b29b uxth r3, r3 + 803ffb8: 4413 add r3, r2 + 803ffba: b29c uxth r4, r3 + 803ffbc: 69bb ldr r3, [r7, #24] + 803ffbe: 4618 mov r0, r3 + 803ffc0: f7fe fd0e bl 803e9e0 + 803ffc4: 4603 mov r3, r0 + 803ffc6: b29b uxth r3, r3 + 803ffc8: 4423 add r3, r4 + 803ffca: b29b uxth r3, r3 + 803ffcc: b21b sxth r3, r3 + 803ffce: 863b strh r3, [r7, #48] ; 0x30 lv_draw_label(draw_ctx, &label_draw_dsc, &txt_coords, label->text, hint); - 8040064: 6d3b ldr r3, [r7, #80] ; 0x50 - 8040066: 6a58 ldr r0, [r3, #36] ; 0x24 - 8040068: f107 0238 add.w r2, r7, #56 ; 0x38 - 804006c: f107 0118 add.w r1, r7, #24 - 8040070: 6dbb ldr r3, [r7, #88] ; 0x58 - 8040072: 9300 str r3, [sp, #0] - 8040074: 4603 mov r3, r0 - 8040076: 6cf8 ldr r0, [r7, #76] ; 0x4c - 8040078: f7d2 f8b4 bl 80121e4 + 803ffd0: 6d3b ldr r3, [r7, #80] ; 0x50 + 803ffd2: 6a58 ldr r0, [r3, #36] ; 0x24 + 803ffd4: f107 0238 add.w r2, r7, #56 ; 0x38 + 803ffd8: f107 0118 add.w r1, r7, #24 + 803ffdc: 6dbb ldr r3, [r7, #88] ; 0x58 + 803ffde: 9300 str r3, [sp, #0] + 803ffe0: 4603 mov r3, r0 + 803ffe2: 6cf8 ldr r0, [r7, #76] ; 0x4c + 803ffe4: f7d2 f8b4 bl 8012150 } } draw_ctx->clip_area = clip_area_ori; - 804007c: 6cfb ldr r3, [r7, #76] ; 0x4c - 804007e: 6c3a ldr r2, [r7, #64] ; 0x40 - 8040080: 609a str r2, [r3, #8] - 8040082: e000 b.n 8040086 + 803ffe8: 6cfb ldr r3, [r7, #76] ; 0x4c + 803ffea: 6c3a ldr r2, [r7, #64] ; 0x40 + 803ffec: 609a str r2, [r3, #8] + 803ffee: e000 b.n 803fff2 if(!is_common) return; - 8040084: bf00 nop + 803fff0: bf00 nop } - 8040086: 3760 adds r7, #96 ; 0x60 - 8040088: 46bd mov sp, r7 - 804008a: bdb0 pop {r4, r5, r7, pc} + 803fff2: 3760 adds r7, #96 ; 0x60 + 803fff4: 46bd mov sp, r7 + 803fff6: bdb0 pop {r4, r5, r7, pc} -0804008c : +0803fff8 : /** * Refresh the label with its text stored in its extended data * @param label pointer to a label object */ static void lv_label_refr_text(lv_obj_t * obj) { - 804008c: b590 push {r4, r7, lr} - 804008e: b0b5 sub sp, #212 ; 0xd4 - 8040090: af04 add r7, sp, #16 - 8040092: 6078 str r0, [r7, #4] + 803fff8: b590 push {r4, r7, lr} + 803fffa: b0b5 sub sp, #212 ; 0xd4 + 803fffc: af04 add r7, sp, #16 + 803fffe: 6078 str r0, [r7, #4] lv_label_t * label = (lv_label_t *)obj; - 8040094: 687b ldr r3, [r7, #4] - 8040096: f8c7 3094 str.w r3, [r7, #148] ; 0x94 + 8040000: 687b ldr r3, [r7, #4] + 8040002: f8c7 3094 str.w r3, [r7, #148] ; 0x94 if(label->text == NULL) return; - 804009a: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 804009e: 6a5b ldr r3, [r3, #36] ; 0x24 - 80400a0: 2b00 cmp r3, #0 - 80400a2: f000 841e beq.w 80408e2 + 8040006: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 804000a: 6a5b ldr r3, [r3, #36] ; 0x24 + 804000c: 2b00 cmp r3, #0 + 804000e: f000 841e beq.w 804084e #if LV_LABEL_LONG_TXT_HINT label->hint.line_start = -1; /*The hint is invalid if the text changes*/ - 80400a6: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 80400aa: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 80400ae: 631a str r2, [r3, #48] ; 0x30 + 8040012: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 8040016: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 804001a: 631a str r2, [r3, #48] ; 0x30 #endif lv_area_t txt_coords; lv_obj_get_content_coords(obj, &txt_coords); - 80400b0: f107 0354 add.w r3, r7, #84 ; 0x54 - 80400b4: 4619 mov r1, r3 - 80400b6: 6878 ldr r0, [r7, #4] - 80400b8: f7ca f8b8 bl 800a22c + 804001c: f107 0354 add.w r3, r7, #84 ; 0x54 + 8040020: 4619 mov r1, r3 + 8040022: 6878 ldr r0, [r7, #4] + 8040024: f7ca f8cc bl 800a1c0 lv_coord_t max_w = lv_area_get_width(&txt_coords); - 80400bc: f107 0354 add.w r3, r7, #84 ; 0x54 - 80400c0: 4618 mov r0, r3 - 80400c2: f7fe fcab bl 803ea1c - 80400c6: 4603 mov r3, r0 - 80400c8: f8a7 3092 strh.w r3, [r7, #146] ; 0x92 + 8040028: f107 0354 add.w r3, r7, #84 ; 0x54 + 804002c: 4618 mov r0, r3 + 804002e: f7fe fcab bl 803e988 + 8040032: 4603 mov r3, r0 + 8040034: f8a7 3092 strh.w r3, [r7, #146] ; 0x92 const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 80400cc: 2100 movs r1, #0 - 80400ce: 6878 ldr r0, [r7, #4] - 80400d0: f7fe fdba bl 803ec48 - 80400d4: f8c7 008c str.w r0, [r7, #140] ; 0x8c + 8040038: 2100 movs r1, #0 + 804003a: 6878 ldr r0, [r7, #4] + 804003c: f7fe fdba bl 803ebb4 + 8040040: f8c7 008c str.w r0, [r7, #140] ; 0x8c lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN); - 80400d8: 2100 movs r1, #0 - 80400da: 6878 ldr r0, [r7, #4] - 80400dc: f7fe fdd9 bl 803ec92 - 80400e0: 4603 mov r3, r0 - 80400e2: f8a7 308a strh.w r3, [r7, #138] ; 0x8a + 8040044: 2100 movs r1, #0 + 8040046: 6878 ldr r0, [r7, #4] + 8040048: f7fe fdd9 bl 803ebfe + 804004c: 4603 mov r3, r0 + 804004e: f8a7 308a strh.w r3, [r7, #138] ; 0x8a lv_coord_t letter_space = lv_obj_get_style_text_letter_space(obj, LV_PART_MAIN); - 80400e6: 2100 movs r1, #0 - 80400e8: 6878 ldr r0, [r7, #4] - 80400ea: f7fe fdbf bl 803ec6c - 80400ee: 4603 mov r3, r0 - 80400f0: f8a7 3088 strh.w r3, [r7, #136] ; 0x88 + 8040052: 2100 movs r1, #0 + 8040054: 6878 ldr r0, [r7, #4] + 8040056: f7fe fdbf bl 803ebd8 + 804005a: 4603 mov r3, r0 + 804005c: f8a7 3088 strh.w r3, [r7, #136] ; 0x88 /*Calc. the height and longest line*/ lv_point_t size; lv_text_flag_t flag = LV_TEXT_FLAG_NONE; - 80400f4: 2300 movs r3, #0 - 80400f6: f887 30bf strb.w r3, [r7, #191] ; 0xbf + 8040060: 2300 movs r3, #0 + 8040062: f887 30bf strb.w r3, [r7, #191] ; 0xbf if(label->recolor != 0) flag |= LV_TEXT_FLAG_RECOLOR; - 80400fa: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 80400fe: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 8040102: f003 0310 and.w r3, r3, #16 - 8040106: b2db uxtb r3, r3 - 8040108: 2b00 cmp r3, #0 - 804010a: d005 beq.n 8040118 - 804010c: f897 30bf ldrb.w r3, [r7, #191] ; 0xbf - 8040110: f043 0301 orr.w r3, r3, #1 - 8040114: f887 30bf strb.w r3, [r7, #191] ; 0xbf + 8040066: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 804006a: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 804006e: f003 0310 and.w r3, r3, #16 + 8040072: b2db uxtb r3, r3 + 8040074: 2b00 cmp r3, #0 + 8040076: d005 beq.n 8040084 + 8040078: f897 30bf ldrb.w r3, [r7, #191] ; 0xbf + 804007c: f043 0301 orr.w r3, r3, #1 + 8040080: f887 30bf strb.w r3, [r7, #191] ; 0xbf if(label->expand != 0) flag |= LV_TEXT_FLAG_EXPAND; - 8040118: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 804011c: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 8040120: f003 0320 and.w r3, r3, #32 - 8040124: b2db uxtb r3, r3 - 8040126: 2b00 cmp r3, #0 - 8040128: d005 beq.n 8040136 - 804012a: f897 30bf ldrb.w r3, [r7, #191] ; 0xbf - 804012e: f043 0302 orr.w r3, r3, #2 - 8040132: f887 30bf strb.w r3, [r7, #191] ; 0xbf + 8040084: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 8040088: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 804008c: f003 0320 and.w r3, r3, #32 + 8040090: b2db uxtb r3, r3 + 8040092: 2b00 cmp r3, #0 + 8040094: d005 beq.n 80400a2 + 8040096: f897 30bf ldrb.w r3, [r7, #191] ; 0xbf + 804009a: f043 0302 orr.w r3, r3, #2 + 804009e: f887 30bf strb.w r3, [r7, #191] ; 0xbf if(lv_obj_get_style_width(obj, LV_PART_MAIN) == LV_SIZE_CONTENT && !obj->w_layout) flag |= LV_TEXT_FLAG_FIT; - 8040136: 2100 movs r1, #0 - 8040138: 6878 ldr r0, [r7, #4] - 804013a: f7fe fd29 bl 803eb90 - 804013e: 4603 mov r3, r0 - 8040140: 461a mov r2, r3 - 8040142: f242 73d1 movw r3, #10193 ; 0x27d1 - 8040146: 429a cmp r2, r3 - 8040148: d10d bne.n 8040166 - 804014a: 687b ldr r3, [r7, #4] - 804014c: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 - 8040150: f003 0304 and.w r3, r3, #4 - 8040154: b2db uxtb r3, r3 - 8040156: 2b00 cmp r3, #0 - 8040158: d105 bne.n 8040166 - 804015a: f897 30bf ldrb.w r3, [r7, #191] ; 0xbf - 804015e: f043 0304 orr.w r3, r3, #4 - 8040162: f887 30bf strb.w r3, [r7, #191] ; 0xbf + 80400a2: 2100 movs r1, #0 + 80400a4: 6878 ldr r0, [r7, #4] + 80400a6: f7fe fd29 bl 803eafc + 80400aa: 4603 mov r3, r0 + 80400ac: 461a mov r2, r3 + 80400ae: f242 73d1 movw r3, #10193 ; 0x27d1 + 80400b2: 429a cmp r2, r3 + 80400b4: d10d bne.n 80400d2 + 80400b6: 687b ldr r3, [r7, #4] + 80400b8: f893 3023 ldrb.w r3, [r3, #35] ; 0x23 + 80400bc: f003 0304 and.w r3, r3, #4 + 80400c0: b2db uxtb r3, r3 + 80400c2: 2b00 cmp r3, #0 + 80400c4: d105 bne.n 80400d2 + 80400c6: f897 30bf ldrb.w r3, [r7, #191] ; 0xbf + 80400ca: f043 0304 orr.w r3, r3, #4 + 80400ce: f887 30bf strb.w r3, [r7, #191] ; 0xbf lv_txt_get_size(&size, label->text, font, letter_space, line_space, max_w, flag); - 8040166: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 804016a: 6a59 ldr r1, [r3, #36] ; 0x24 - 804016c: f9b7 2088 ldrsh.w r2, [r7, #136] ; 0x88 - 8040170: f107 0050 add.w r0, r7, #80 ; 0x50 - 8040174: f897 30bf ldrb.w r3, [r7, #191] ; 0xbf - 8040178: 9302 str r3, [sp, #8] - 804017a: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 - 804017e: 9301 str r3, [sp, #4] - 8040180: f9b7 308a ldrsh.w r3, [r7, #138] ; 0x8a - 8040184: 9300 str r3, [sp, #0] - 8040186: 4613 mov r3, r2 - 8040188: f8d7 208c ldr.w r2, [r7, #140] ; 0x8c - 804018c: f7f5 ff7d bl 803608a + 80400d2: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 80400d6: 6a59 ldr r1, [r3, #36] ; 0x24 + 80400d8: f9b7 2088 ldrsh.w r2, [r7, #136] ; 0x88 + 80400dc: f107 0050 add.w r0, r7, #80 ; 0x50 + 80400e0: f897 30bf ldrb.w r3, [r7, #191] ; 0xbf + 80400e4: 9302 str r3, [sp, #8] + 80400e6: f9b7 3092 ldrsh.w r3, [r7, #146] ; 0x92 + 80400ea: 9301 str r3, [sp, #4] + 80400ec: f9b7 308a ldrsh.w r3, [r7, #138] ; 0x8a + 80400f0: 9300 str r3, [sp, #0] + 80400f2: 4613 mov r3, r2 + 80400f4: f8d7 208c ldr.w r2, [r7, #140] ; 0x8c + 80400f8: f7f5 ff7d bl 8035ff6 lv_obj_refresh_self_size(obj); - 8040190: 6878 ldr r0, [r7, #4] - 8040192: f7ca f8d6 bl 800a342 + 80400fc: 6878 ldr r0, [r7, #4] + 80400fe: f7ca f8ea bl 800a2d6 /*In scroll mode start an offset animation*/ if(label->long_mode == LV_LABEL_LONG_SCROLL) { - 8040196: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 804019a: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 804019e: f003 0307 and.w r3, r3, #7 - 80401a2: b2db uxtb r3, r3 - 80401a4: 2b02 cmp r3, #2 - 80401a6: f040 815d bne.w 8040464 + 8040102: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 8040106: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 804010a: f003 0307 and.w r3, r3, #7 + 804010e: b2db uxtb r3, r3 + 8040110: 2b02 cmp r3, #2 + 8040112: f040 815d bne.w 80403d0 uint16_t anim_speed = lv_obj_get_style_anim_speed(obj, LV_PART_MAIN); - 80401aa: 2100 movs r1, #0 - 80401ac: 6878 ldr r0, [r7, #4] - 80401ae: f7fe fd83 bl 803ecb8 - 80401b2: 4603 mov r3, r0 - 80401b4: f8a7 30bc strh.w r3, [r7, #188] ; 0xbc + 8040116: 2100 movs r1, #0 + 8040118: 6878 ldr r0, [r7, #4] + 804011a: f7fe fd83 bl 803ec24 + 804011e: 4603 mov r3, r0 + 8040120: f8a7 30bc strh.w r3, [r7, #188] ; 0xbc if(anim_speed == 0) anim_speed = LV_LABEL_DEF_SCROLL_SPEED; - 80401b8: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc - 80401bc: 2b00 cmp r3, #0 - 80401be: d10f bne.n 80401e0 - 80401c0: 6878 ldr r0, [r7, #4] - 80401c2: f7cf fa69 bl 800f698 - 80401c6: 4603 mov r3, r0 - 80401c8: 4618 mov r0, r3 - 80401ca: f7f0 f9d5 bl 8030578 - 80401ce: 4603 mov r3, r0 - 80401d0: 4aa1 ldr r2, [pc, #644] ; (8040458 ) - 80401d2: fb82 1203 smull r1, r2, r2, r3 - 80401d6: 17db asrs r3, r3, #31 - 80401d8: 1ad3 subs r3, r2, r3 - 80401da: b21b sxth r3, r3 - 80401dc: f8a7 30bc strh.w r3, [r7, #188] ; 0xbc + 8040124: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc + 8040128: 2b00 cmp r3, #0 + 804012a: d10f bne.n 804014c + 804012c: 6878 ldr r0, [r7, #4] + 804012e: f7cf fa69 bl 800f604 + 8040132: 4603 mov r3, r0 + 8040134: 4618 mov r0, r3 + 8040136: f7f0 f9d5 bl 80304e4 + 804013a: 4603 mov r3, r0 + 804013c: 4aa1 ldr r2, [pc, #644] ; (80403c4 ) + 804013e: fb82 1203 smull r1, r2, r2, r3 + 8040142: 17db asrs r3, r3, #31 + 8040144: 1ad3 subs r3, r2, r3 + 8040146: b21b sxth r3, r3 + 8040148: f8a7 30bc strh.w r3, [r7, #188] ; 0xbc lv_anim_t a; lv_anim_init(&a); - 80401e0: f107 0308 add.w r3, r7, #8 - 80401e4: 4618 mov r0, r3 - 80401e6: f7f0 fb33 bl 8030850 + 804014c: f107 0308 add.w r3, r7, #8 + 8040150: 4618 mov r0, r3 + 8040152: f7f0 fb33 bl 80307bc lv_anim_set_var(&a, obj); - 80401ea: f107 0308 add.w r3, r7, #8 - 80401ee: 6879 ldr r1, [r7, #4] - 80401f0: 4618 mov r0, r3 - 80401f2: f7fe fc4b bl 803ea8c + 8040156: f107 0308 add.w r3, r7, #8 + 804015a: 6879 ldr r1, [r7, #4] + 804015c: 4618 mov r0, r3 + 804015e: f7fe fc4b bl 803e9f8 lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE); - 80401f6: f107 0308 add.w r3, r7, #8 - 80401fa: f64f 71ff movw r1, #65535 ; 0xffff - 80401fe: 4618 mov r0, r3 - 8040200: f7fe fc99 bl 803eb36 + 8040162: f107 0308 add.w r3, r7, #8 + 8040166: f64f 71ff movw r1, #65535 ; 0xffff + 804016a: 4618 mov r0, r3 + 804016c: f7fe fc99 bl 803eaa2 lv_anim_set_playback_delay(&a, LV_LABEL_SCROLL_DELAY); - 8040204: f107 0308 add.w r3, r7, #8 - 8040208: f44f 7196 mov.w r1, #300 ; 0x12c - 804020c: 4618 mov r0, r3 - 804020e: f7fe fc85 bl 803eb1c + 8040170: f107 0308 add.w r3, r7, #8 + 8040174: f44f 7196 mov.w r1, #300 ; 0x12c + 8040178: 4618 mov r0, r3 + 804017a: f7fe fc85 bl 803ea88 lv_anim_set_repeat_delay(&a, a.playback_delay); - 8040212: 6bba ldr r2, [r7, #56] ; 0x38 - 8040214: f107 0308 add.w r3, r7, #8 - 8040218: 4611 mov r1, r2 - 804021a: 4618 mov r0, r3 - 804021c: f7fe fc99 bl 803eb52 + 804017e: 6bba ldr r2, [r7, #56] ; 0x38 + 8040180: f107 0308 add.w r3, r7, #8 + 8040184: 4611 mov r1, r2 + 8040186: 4618 mov r0, r3 + 8040188: f7fe fc99 bl 803eabe bool hor_anim = false; - 8040220: 2300 movs r3, #0 - 8040222: f887 30bb strb.w r3, [r7, #187] ; 0xbb + 804018c: 2300 movs r3, #0 + 804018e: f887 30bb strb.w r3, [r7, #187] ; 0xbb if(size.x > lv_area_get_width(&txt_coords)) { - 8040226: f9b7 4050 ldrsh.w r4, [r7, #80] ; 0x50 - 804022a: f107 0354 add.w r3, r7, #84 ; 0x54 - 804022e: 4618 mov r0, r3 - 8040230: f7fe fbf4 bl 803ea1c - 8040234: 4603 mov r3, r0 - 8040236: 429c cmp r4, r3 - 8040238: dd76 ble.n 8040328 + 8040192: f9b7 4050 ldrsh.w r4, [r7, #80] ; 0x50 + 8040196: f107 0354 add.w r3, r7, #84 ; 0x54 + 804019a: 4618 mov r0, r3 + 804019c: f7fe fbf4 bl 803e988 + 80401a0: 4603 mov r3, r0 + 80401a2: 429c cmp r4, r3 + 80401a4: dd76 ble.n 8040294 end = lv_area_get_width(&txt_coords) - size.x; } lv_anim_set_values(&a, start, end); #else lv_anim_set_values(&a, 0, lv_area_get_width(&txt_coords) - size.x); - 804023a: f107 0354 add.w r3, r7, #84 ; 0x54 - 804023e: 4618 mov r0, r3 - 8040240: f7fe fbec bl 803ea1c - 8040244: 4603 mov r3, r0 - 8040246: 461a mov r2, r3 - 8040248: f9b7 3050 ldrsh.w r3, [r7, #80] ; 0x50 - 804024c: 1ad2 subs r2, r2, r3 - 804024e: f107 0308 add.w r3, r7, #8 - 8040252: 2100 movs r1, #0 - 8040254: 4618 mov r0, r3 - 8040256: f7fe fc40 bl 803eada + 80401a6: f107 0354 add.w r3, r7, #84 ; 0x54 + 80401aa: 4618 mov r0, r3 + 80401ac: f7fe fbec bl 803e988 + 80401b0: 4603 mov r3, r0 + 80401b2: 461a mov r2, r3 + 80401b4: f9b7 3050 ldrsh.w r3, [r7, #80] ; 0x50 + 80401b8: 1ad2 subs r2, r2, r3 + 80401ba: f107 0308 add.w r3, r7, #8 + 80401be: 2100 movs r1, #0 + 80401c0: 4618 mov r0, r3 + 80401c2: f7fe fc40 bl 803ea46 lv_anim_set_exec_cb(&a, set_ofs_x_anim); - 804025a: f107 0308 add.w r3, r7, #8 - 804025e: 497f ldr r1, [pc, #508] ; (804045c ) - 8040260: 4618 mov r0, r3 - 8040262: f7fe fc20 bl 803eaa6 + 80401c6: f107 0308 add.w r3, r7, #8 + 80401ca: 497f ldr r1, [pc, #508] ; (80403c8 ) + 80401cc: 4618 mov r0, r3 + 80401ce: f7fe fc20 bl 803ea12 #endif lv_anim_set_exec_cb(&a, set_ofs_x_anim); - 8040266: f107 0308 add.w r3, r7, #8 - 804026a: 497c ldr r1, [pc, #496] ; (804045c ) - 804026c: 4618 mov r0, r3 - 804026e: f7fe fc1a bl 803eaa6 + 80401d2: f107 0308 add.w r3, r7, #8 + 80401d6: 497c ldr r1, [pc, #496] ; (80403c8 ) + 80401d8: 4618 mov r0, r3 + 80401da: f7fe fc1a bl 803ea12 lv_anim_t * anim_cur = lv_anim_get(obj, set_ofs_x_anim); - 8040272: 497a ldr r1, [pc, #488] ; (804045c ) - 8040274: 6878 ldr r0, [r7, #4] - 8040276: f7f0 fbc1 bl 80309fc - 804027a: 66b8 str r0, [r7, #104] ; 0x68 + 80401de: 497a ldr r1, [pc, #488] ; (80403c8 ) + 80401e0: 6878 ldr r0, [r7, #4] + 80401e2: f7f0 fbc1 bl 8030968 + 80401e6: 66b8 str r0, [r7, #104] ; 0x68 int32_t act_time = 0; - 804027c: 2300 movs r3, #0 - 804027e: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 80401e8: 2300 movs r3, #0 + 80401ea: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 bool playback_now = false; - 8040282: 2300 movs r3, #0 - 8040284: f887 30b3 strb.w r3, [r7, #179] ; 0xb3 + 80401ee: 2300 movs r3, #0 + 80401f0: f887 30b3 strb.w r3, [r7, #179] ; 0xb3 if(anim_cur) { - 8040288: 6ebb ldr r3, [r7, #104] ; 0x68 - 804028a: 2b00 cmp r3, #0 - 804028c: d00f beq.n 80402ae + 80401f4: 6ebb ldr r3, [r7, #104] ; 0x68 + 80401f6: 2b00 cmp r3, #0 + 80401f8: d00f beq.n 804021a act_time = anim_cur->act_time; - 804028e: 6ebb ldr r3, [r7, #104] ; 0x68 - 8040290: 6adb ldr r3, [r3, #44] ; 0x2c - 8040292: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 + 80401fa: 6ebb ldr r3, [r7, #104] ; 0x68 + 80401fc: 6adb ldr r3, [r3, #44] ; 0x2c + 80401fe: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 playback_now = anim_cur->playback_now; - 8040296: 6ebb ldr r3, [r7, #104] ; 0x68 - 8040298: f893 303e ldrb.w r3, [r3, #62] ; 0x3e - 804029c: f3c3 0340 ubfx r3, r3, #1, #1 - 80402a0: b2db uxtb r3, r3 - 80402a2: 2b00 cmp r3, #0 - 80402a4: bf14 ite ne - 80402a6: 2301 movne r3, #1 - 80402a8: 2300 moveq r3, #0 - 80402aa: f887 30b3 strb.w r3, [r7, #179] ; 0xb3 + 8040202: 6ebb ldr r3, [r7, #104] ; 0x68 + 8040204: f893 303e ldrb.w r3, [r3, #62] ; 0x3e + 8040208: f3c3 0340 ubfx r3, r3, #1, #1 + 804020c: b2db uxtb r3, r3 + 804020e: 2b00 cmp r3, #0 + 8040210: bf14 ite ne + 8040212: 2301 movne r3, #1 + 8040214: 2300 moveq r3, #0 + 8040216: f887 30b3 strb.w r3, [r7, #179] ; 0xb3 } if(act_time < a.time) { - 80402ae: 6b3b ldr r3, [r7, #48] ; 0x30 - 80402b0: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 - 80402b4: 429a cmp r2, r3 - 80402b6: da18 bge.n 80402ea + 804021a: 6b3b ldr r3, [r7, #48] ; 0x30 + 804021c: f8d7 20b4 ldr.w r2, [r7, #180] ; 0xb4 + 8040220: 429a cmp r2, r3 + 8040222: da18 bge.n 8040256 a.act_time = act_time; /*To keep the old position*/ - 80402b8: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 - 80402bc: 637b str r3, [r7, #52] ; 0x34 + 8040224: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 + 8040228: 637b str r3, [r7, #52] ; 0x34 a.early_apply = 0; - 80402be: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 - 80402c2: f36f 0300 bfc r3, #0, #1 - 80402c6: f887 3046 strb.w r3, [r7, #70] ; 0x46 + 804022a: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 + 804022e: f36f 0300 bfc r3, #0, #1 + 8040232: f887 3046 strb.w r3, [r7, #70] ; 0x46 if(playback_now) { - 80402ca: f897 30b3 ldrb.w r3, [r7, #179] ; 0xb3 - 80402ce: 2b00 cmp r3, #0 - 80402d0: d00b beq.n 80402ea + 8040236: f897 30b3 ldrb.w r3, [r7, #179] ; 0xb3 + 804023a: 2b00 cmp r3, #0 + 804023c: d00b beq.n 8040256 a.playback_now = 1; - 80402d2: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 - 80402d6: f043 0302 orr.w r3, r3, #2 - 80402da: f887 3046 strb.w r3, [r7, #70] ; 0x46 + 804023e: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 + 8040242: f043 0302 orr.w r3, r3, #2 + 8040246: f887 3046 strb.w r3, [r7, #70] ; 0x46 /*Swap the start and end values*/ int32_t tmp; tmp = a.start_value; - 80402de: 6a7b ldr r3, [r7, #36] ; 0x24 - 80402e0: 667b str r3, [r7, #100] ; 0x64 + 804024a: 6a7b ldr r3, [r7, #36] ; 0x24 + 804024c: 667b str r3, [r7, #100] ; 0x64 a.start_value = a.end_value; - 80402e2: 6afb ldr r3, [r7, #44] ; 0x2c - 80402e4: 627b str r3, [r7, #36] ; 0x24 + 804024e: 6afb ldr r3, [r7, #44] ; 0x2c + 8040250: 627b str r3, [r7, #36] ; 0x24 a.end_value = tmp; - 80402e6: 6e7b ldr r3, [r7, #100] ; 0x64 - 80402e8: 62fb str r3, [r7, #44] ; 0x2c + 8040252: 6e7b ldr r3, [r7, #100] ; 0x64 + 8040254: 62fb str r3, [r7, #44] ; 0x2c } } lv_anim_set_time(&a, lv_anim_speed_to_time(anim_speed, a.start_value, a.end_value)); - 80402ea: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc - 80402ee: 6a79 ldr r1, [r7, #36] ; 0x24 - 80402f0: 6afa ldr r2, [r7, #44] ; 0x2c - 80402f2: 4618 mov r0, r3 - 80402f4: f7f0 fbaa bl 8030a4c - 80402f8: 4602 mov r2, r0 - 80402fa: f107 0308 add.w r3, r7, #8 - 80402fe: 4611 mov r1, r2 - 8040300: 4618 mov r0, r3 - 8040302: f7fe fbdd bl 803eac0 + 8040256: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc + 804025a: 6a79 ldr r1, [r7, #36] ; 0x24 + 804025c: 6afa ldr r2, [r7, #44] ; 0x2c + 804025e: 4618 mov r0, r3 + 8040260: f7f0 fbaa bl 80309b8 + 8040264: 4602 mov r2, r0 + 8040266: f107 0308 add.w r3, r7, #8 + 804026a: 4611 mov r1, r2 + 804026c: 4618 mov r0, r3 + 804026e: f7fe fbdd bl 803ea2c lv_anim_set_playback_time(&a, a.time); - 8040306: 6b3b ldr r3, [r7, #48] ; 0x30 - 8040308: 461a mov r2, r3 - 804030a: f107 0308 add.w r3, r7, #8 - 804030e: 4611 mov r1, r2 - 8040310: 4618 mov r0, r3 - 8040312: f7fe fbf6 bl 803eb02 + 8040272: 6b3b ldr r3, [r7, #48] ; 0x30 + 8040274: 461a mov r2, r3 + 8040276: f107 0308 add.w r3, r7, #8 + 804027a: 4611 mov r1, r2 + 804027c: 4618 mov r0, r3 + 804027e: f7fe fbf6 bl 803ea6e lv_anim_start(&a); - 8040316: f107 0308 add.w r3, r7, #8 - 804031a: 4618 mov r0, r3 - 804031c: f7f0 fabe bl 803089c + 8040282: f107 0308 add.w r3, r7, #8 + 8040286: 4618 mov r0, r3 + 8040288: f7f0 fabe bl 8030808 hor_anim = true; - 8040320: 2301 movs r3, #1 - 8040322: f887 30bb strb.w r3, [r7, #187] ; 0xbb - 8040326: e008 b.n 804033a + 804028c: 2301 movs r3, #1 + 804028e: f887 30bb strb.w r3, [r7, #187] ; 0xbb + 8040292: e008 b.n 80402a6 } else { /*Delete the offset animation if not required*/ lv_anim_del(obj, set_ofs_x_anim); - 8040328: 494c ldr r1, [pc, #304] ; (804045c ) - 804032a: 6878 ldr r0, [r7, #4] - 804032c: f7f0 fb2e bl 803098c + 8040294: 494c ldr r1, [pc, #304] ; (80403c8 ) + 8040296: 6878 ldr r0, [r7, #4] + 8040298: f7f0 fb2e bl 80308f8 label->offset.x = 0; - 8040330: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 8040334: 2200 movs r2, #0 - 8040336: f8a3 2044 strh.w r2, [r3, #68] ; 0x44 + 804029c: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 80402a0: 2200 movs r2, #0 + 80402a2: f8a3 2044 strh.w r2, [r3, #68] ; 0x44 } if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) { - 804033a: f9b7 4052 ldrsh.w r4, [r7, #82] ; 0x52 - 804033e: f107 0354 add.w r3, r7, #84 ; 0x54 - 8040342: 4618 mov r0, r3 - 8040344: f7fe fb80 bl 803ea48 - 8040348: 4603 mov r3, r0 - 804034a: 429c cmp r4, r3 - 804034c: dd7a ble.n 8040444 - 804034e: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb - 8040352: f083 0301 eor.w r3, r3, #1 - 8040356: b2db uxtb r3, r3 - 8040358: 2b00 cmp r3, #0 - 804035a: d073 beq.n 8040444 + 80402a6: f9b7 4052 ldrsh.w r4, [r7, #82] ; 0x52 + 80402aa: f107 0354 add.w r3, r7, #84 ; 0x54 + 80402ae: 4618 mov r0, r3 + 80402b0: f7fe fb80 bl 803e9b4 + 80402b4: 4603 mov r3, r0 + 80402b6: 429c cmp r4, r3 + 80402b8: dd7a ble.n 80403b0 + 80402ba: f897 30bb ldrb.w r3, [r7, #187] ; 0xbb + 80402be: f083 0301 eor.w r3, r3, #1 + 80402c2: b2db uxtb r3, r3 + 80402c4: 2b00 cmp r3, #0 + 80402c6: d073 beq.n 80403b0 lv_anim_set_values(&a, 0, lv_area_get_height(&txt_coords) - size.y - (lv_font_get_line_height(font))); - 804035c: f107 0354 add.w r3, r7, #84 ; 0x54 - 8040360: 4618 mov r0, r3 - 8040362: f7fe fb71 bl 803ea48 - 8040366: 4603 mov r3, r0 - 8040368: 461a mov r2, r3 - 804036a: f9b7 3052 ldrsh.w r3, [r7, #82] ; 0x52 - 804036e: 1ad4 subs r4, r2, r3 - 8040370: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c - 8040374: f7fe fb7e bl 803ea74 - 8040378: 4603 mov r3, r0 - 804037a: 1ae2 subs r2, r4, r3 - 804037c: f107 0308 add.w r3, r7, #8 - 8040380: 2100 movs r1, #0 - 8040382: 4618 mov r0, r3 - 8040384: f7fe fba9 bl 803eada + 80402c8: f107 0354 add.w r3, r7, #84 ; 0x54 + 80402cc: 4618 mov r0, r3 + 80402ce: f7fe fb71 bl 803e9b4 + 80402d2: 4603 mov r3, r0 + 80402d4: 461a mov r2, r3 + 80402d6: f9b7 3052 ldrsh.w r3, [r7, #82] ; 0x52 + 80402da: 1ad4 subs r4, r2, r3 + 80402dc: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c + 80402e0: f7fe fb7e bl 803e9e0 + 80402e4: 4603 mov r3, r0 + 80402e6: 1ae2 subs r2, r4, r3 + 80402e8: f107 0308 add.w r3, r7, #8 + 80402ec: 2100 movs r1, #0 + 80402ee: 4618 mov r0, r3 + 80402f0: f7fe fba9 bl 803ea46 lv_anim_set_exec_cb(&a, set_ofs_y_anim); - 8040388: f107 0308 add.w r3, r7, #8 - 804038c: 4934 ldr r1, [pc, #208] ; (8040460 ) - 804038e: 4618 mov r0, r3 - 8040390: f7fe fb89 bl 803eaa6 + 80402f4: f107 0308 add.w r3, r7, #8 + 80402f8: 4934 ldr r1, [pc, #208] ; (80403cc ) + 80402fa: 4618 mov r0, r3 + 80402fc: f7fe fb89 bl 803ea12 lv_anim_t * anim_cur = lv_anim_get(obj, set_ofs_y_anim); - 8040394: 4932 ldr r1, [pc, #200] ; (8040460 ) - 8040396: 6878 ldr r0, [r7, #4] - 8040398: f7f0 fb30 bl 80309fc - 804039c: 6638 str r0, [r7, #96] ; 0x60 + 8040300: 4932 ldr r1, [pc, #200] ; (80403cc ) + 8040302: 6878 ldr r0, [r7, #4] + 8040304: f7f0 fb30 bl 8030968 + 8040308: 6638 str r0, [r7, #96] ; 0x60 int32_t act_time = 0; - 804039e: 2300 movs r3, #0 - 80403a0: f8c7 30ac str.w r3, [r7, #172] ; 0xac + 804030a: 2300 movs r3, #0 + 804030c: f8c7 30ac str.w r3, [r7, #172] ; 0xac bool playback_now = false; - 80403a4: 2300 movs r3, #0 - 80403a6: f887 30ab strb.w r3, [r7, #171] ; 0xab + 8040310: 2300 movs r3, #0 + 8040312: f887 30ab strb.w r3, [r7, #171] ; 0xab if(anim_cur) { - 80403aa: 6e3b ldr r3, [r7, #96] ; 0x60 - 80403ac: 2b00 cmp r3, #0 - 80403ae: d00f beq.n 80403d0 + 8040316: 6e3b ldr r3, [r7, #96] ; 0x60 + 8040318: 2b00 cmp r3, #0 + 804031a: d00f beq.n 804033c act_time = anim_cur->act_time; - 80403b0: 6e3b ldr r3, [r7, #96] ; 0x60 - 80403b2: 6adb ldr r3, [r3, #44] ; 0x2c - 80403b4: f8c7 30ac str.w r3, [r7, #172] ; 0xac + 804031c: 6e3b ldr r3, [r7, #96] ; 0x60 + 804031e: 6adb ldr r3, [r3, #44] ; 0x2c + 8040320: f8c7 30ac str.w r3, [r7, #172] ; 0xac playback_now = anim_cur->playback_now; - 80403b8: 6e3b ldr r3, [r7, #96] ; 0x60 - 80403ba: f893 303e ldrb.w r3, [r3, #62] ; 0x3e - 80403be: f3c3 0340 ubfx r3, r3, #1, #1 - 80403c2: b2db uxtb r3, r3 - 80403c4: 2b00 cmp r3, #0 - 80403c6: bf14 ite ne - 80403c8: 2301 movne r3, #1 - 80403ca: 2300 moveq r3, #0 - 80403cc: f887 30ab strb.w r3, [r7, #171] ; 0xab + 8040324: 6e3b ldr r3, [r7, #96] ; 0x60 + 8040326: f893 303e ldrb.w r3, [r3, #62] ; 0x3e + 804032a: f3c3 0340 ubfx r3, r3, #1, #1 + 804032e: b2db uxtb r3, r3 + 8040330: 2b00 cmp r3, #0 + 8040332: bf14 ite ne + 8040334: 2301 movne r3, #1 + 8040336: 2300 moveq r3, #0 + 8040338: f887 30ab strb.w r3, [r7, #171] ; 0xab } if(act_time < a.time) { - 80403d0: 6b3b ldr r3, [r7, #48] ; 0x30 - 80403d2: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac - 80403d6: 429a cmp r2, r3 - 80403d8: da18 bge.n 804040c + 804033c: 6b3b ldr r3, [r7, #48] ; 0x30 + 804033e: f8d7 20ac ldr.w r2, [r7, #172] ; 0xac + 8040342: 429a cmp r2, r3 + 8040344: da18 bge.n 8040378 a.act_time = act_time; /*To keep the old position*/ - 80403da: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac - 80403de: 637b str r3, [r7, #52] ; 0x34 + 8040346: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac + 804034a: 637b str r3, [r7, #52] ; 0x34 a.early_apply = 0; - 80403e0: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 - 80403e4: f36f 0300 bfc r3, #0, #1 - 80403e8: f887 3046 strb.w r3, [r7, #70] ; 0x46 + 804034c: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 + 8040350: f36f 0300 bfc r3, #0, #1 + 8040354: f887 3046 strb.w r3, [r7, #70] ; 0x46 if(playback_now) { - 80403ec: f897 30ab ldrb.w r3, [r7, #171] ; 0xab - 80403f0: 2b00 cmp r3, #0 - 80403f2: d00b beq.n 804040c + 8040358: f897 30ab ldrb.w r3, [r7, #171] ; 0xab + 804035c: 2b00 cmp r3, #0 + 804035e: d00b beq.n 8040378 a.playback_now = 1; - 80403f4: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 - 80403f8: f043 0302 orr.w r3, r3, #2 - 80403fc: f887 3046 strb.w r3, [r7, #70] ; 0x46 + 8040360: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 + 8040364: f043 0302 orr.w r3, r3, #2 + 8040368: f887 3046 strb.w r3, [r7, #70] ; 0x46 /*Swap the start and end values*/ int32_t tmp; tmp = a.start_value; - 8040400: 6a7b ldr r3, [r7, #36] ; 0x24 - 8040402: 65fb str r3, [r7, #92] ; 0x5c + 804036c: 6a7b ldr r3, [r7, #36] ; 0x24 + 804036e: 65fb str r3, [r7, #92] ; 0x5c a.start_value = a.end_value; - 8040404: 6afb ldr r3, [r7, #44] ; 0x2c - 8040406: 627b str r3, [r7, #36] ; 0x24 + 8040370: 6afb ldr r3, [r7, #44] ; 0x2c + 8040372: 627b str r3, [r7, #36] ; 0x24 a.end_value = tmp; - 8040408: 6dfb ldr r3, [r7, #92] ; 0x5c - 804040a: 62fb str r3, [r7, #44] ; 0x2c + 8040374: 6dfb ldr r3, [r7, #92] ; 0x5c + 8040376: 62fb str r3, [r7, #44] ; 0x2c } } lv_anim_set_time(&a, lv_anim_speed_to_time(anim_speed, a.start_value, a.end_value)); - 804040c: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc - 8040410: 6a79 ldr r1, [r7, #36] ; 0x24 - 8040412: 6afa ldr r2, [r7, #44] ; 0x2c - 8040414: 4618 mov r0, r3 - 8040416: f7f0 fb19 bl 8030a4c - 804041a: 4602 mov r2, r0 - 804041c: f107 0308 add.w r3, r7, #8 - 8040420: 4611 mov r1, r2 - 8040422: 4618 mov r0, r3 - 8040424: f7fe fb4c bl 803eac0 + 8040378: f8b7 30bc ldrh.w r3, [r7, #188] ; 0xbc + 804037c: 6a79 ldr r1, [r7, #36] ; 0x24 + 804037e: 6afa ldr r2, [r7, #44] ; 0x2c + 8040380: 4618 mov r0, r3 + 8040382: f7f0 fb19 bl 80309b8 + 8040386: 4602 mov r2, r0 + 8040388: f107 0308 add.w r3, r7, #8 + 804038c: 4611 mov r1, r2 + 804038e: 4618 mov r0, r3 + 8040390: f7fe fb4c bl 803ea2c lv_anim_set_playback_time(&a, a.time); - 8040428: 6b3b ldr r3, [r7, #48] ; 0x30 - 804042a: 461a mov r2, r3 - 804042c: f107 0308 add.w r3, r7, #8 - 8040430: 4611 mov r1, r2 - 8040432: 4618 mov r0, r3 - 8040434: f7fe fb65 bl 803eb02 + 8040394: 6b3b ldr r3, [r7, #48] ; 0x30 + 8040396: 461a mov r2, r3 + 8040398: f107 0308 add.w r3, r7, #8 + 804039c: 4611 mov r1, r2 + 804039e: 4618 mov r0, r3 + 80403a0: f7fe fb65 bl 803ea6e lv_anim_start(&a); - 8040438: f107 0308 add.w r3, r7, #8 - 804043c: 4618 mov r0, r3 - 804043e: f7f0 fa2d bl 803089c + 80403a4: f107 0308 add.w r3, r7, #8 + 80403a8: 4618 mov r0, r3 + 80403aa: f7f0 fa2d bl 8030808 if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) { - 8040442: e24a b.n 80408da + 80403ae: e24a b.n 8040846 } else { /*Delete the offset animation if not required*/ lv_anim_del(obj, set_ofs_y_anim); - 8040444: 4906 ldr r1, [pc, #24] ; (8040460 ) - 8040446: 6878 ldr r0, [r7, #4] - 8040448: f7f0 faa0 bl 803098c + 80403b0: 4906 ldr r1, [pc, #24] ; (80403cc ) + 80403b2: 6878 ldr r0, [r7, #4] + 80403b4: f7f0 faa0 bl 80308f8 label->offset.y = 0; - 804044c: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 8040450: 2200 movs r2, #0 - 8040452: f8a3 2046 strh.w r2, [r3, #70] ; 0x46 - 8040456: e240 b.n 80408da - 8040458: 55555556 .word 0x55555556 - 804045c: 08040aaf .word 0x08040aaf - 8040460: 08040ad5 .word 0x08040ad5 + 80403b8: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 80403bc: 2200 movs r2, #0 + 80403be: f8a3 2046 strh.w r2, [r3, #70] ; 0x46 + 80403c2: e240 b.n 8040846 + 80403c4: 55555556 .word 0x55555556 + 80403c8: 08040a1b .word 0x08040a1b + 80403cc: 08040a41 .word 0x08040a41 } } /*In roll inf. mode keep the size but start offset animations*/ else if(label->long_mode == LV_LABEL_LONG_SCROLL_CIRCULAR) { - 8040464: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 8040468: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 804046c: f003 0307 and.w r3, r3, #7 - 8040470: b2db uxtb r3, r3 - 8040472: 2b03 cmp r3, #3 - 8040474: f040 80e9 bne.w 804064a + 80403d0: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 80403d4: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 80403d8: f003 0307 and.w r3, r3, #7 + 80403dc: b2db uxtb r3, r3 + 80403de: 2b03 cmp r3, #3 + 80403e0: f040 80e9 bne.w 80405b6 uint16_t anim_speed = lv_obj_get_style_anim_speed(obj, LV_PART_MAIN); - 8040478: 2100 movs r1, #0 - 804047a: 6878 ldr r0, [r7, #4] - 804047c: f7fe fc1c bl 803ecb8 - 8040480: 4603 mov r3, r0 - 8040482: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 + 80403e4: 2100 movs r1, #0 + 80403e6: 6878 ldr r0, [r7, #4] + 80403e8: f7fe fc1c bl 803ec24 + 80403ec: 4603 mov r3, r0 + 80403ee: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 if(anim_speed == 0) anim_speed = LV_LABEL_DEF_SCROLL_SPEED; - 8040486: f8b7 30a8 ldrh.w r3, [r7, #168] ; 0xa8 - 804048a: 2b00 cmp r3, #0 - 804048c: d10f bne.n 80404ae - 804048e: 6878 ldr r0, [r7, #4] - 8040490: f7cf f902 bl 800f698 - 8040494: 4603 mov r3, r0 - 8040496: 4618 mov r0, r3 - 8040498: f7f0 f86e bl 8030578 - 804049c: 4603 mov r3, r0 - 804049e: 4ab5 ldr r2, [pc, #724] ; (8040774 ) - 80404a0: fb82 1203 smull r1, r2, r2, r3 - 80404a4: 17db asrs r3, r3, #31 - 80404a6: 1ad3 subs r3, r2, r3 - 80404a8: b21b sxth r3, r3 - 80404aa: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 + 80403f2: f8b7 30a8 ldrh.w r3, [r7, #168] ; 0xa8 + 80403f6: 2b00 cmp r3, #0 + 80403f8: d10f bne.n 804041a + 80403fa: 6878 ldr r0, [r7, #4] + 80403fc: f7cf f902 bl 800f604 + 8040400: 4603 mov r3, r0 + 8040402: 4618 mov r0, r3 + 8040404: f7f0 f86e bl 80304e4 + 8040408: 4603 mov r3, r0 + 804040a: 4ab5 ldr r2, [pc, #724] ; (80406e0 ) + 804040c: fb82 1203 smull r1, r2, r2, r3 + 8040410: 17db asrs r3, r3, #31 + 8040412: 1ad3 subs r3, r2, r3 + 8040414: b21b sxth r3, r3 + 8040416: f8a7 30a8 strh.w r3, [r7, #168] ; 0xa8 lv_anim_t a; lv_anim_init(&a); - 80404ae: f107 0308 add.w r3, r7, #8 - 80404b2: 4618 mov r0, r3 - 80404b4: f7f0 f9cc bl 8030850 + 804041a: f107 0308 add.w r3, r7, #8 + 804041e: 4618 mov r0, r3 + 8040420: f7f0 f9cc bl 80307bc lv_anim_set_var(&a, obj); - 80404b8: f107 0308 add.w r3, r7, #8 - 80404bc: 6879 ldr r1, [r7, #4] - 80404be: 4618 mov r0, r3 - 80404c0: f7fe fae4 bl 803ea8c + 8040424: f107 0308 add.w r3, r7, #8 + 8040428: 6879 ldr r1, [r7, #4] + 804042a: 4618 mov r0, r3 + 804042c: f7fe fae4 bl 803e9f8 lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE); - 80404c4: f107 0308 add.w r3, r7, #8 - 80404c8: f64f 71ff movw r1, #65535 ; 0xffff - 80404cc: 4618 mov r0, r3 - 80404ce: f7fe fb32 bl 803eb36 + 8040430: f107 0308 add.w r3, r7, #8 + 8040434: f64f 71ff movw r1, #65535 ; 0xffff + 8040438: 4618 mov r0, r3 + 804043a: f7fe fb32 bl 803eaa2 bool hor_anim = false; - 80404d2: 2300 movs r3, #0 - 80404d4: f887 30a7 strb.w r3, [r7, #167] ; 0xa7 + 804043e: 2300 movs r3, #0 + 8040440: f887 30a7 strb.w r3, [r7, #167] ; 0xa7 if(size.x > lv_area_get_width(&txt_coords)) { - 80404d8: f9b7 4050 ldrsh.w r4, [r7, #80] ; 0x50 - 80404dc: f107 0354 add.w r3, r7, #84 ; 0x54 - 80404e0: 4618 mov r0, r3 - 80404e2: f7fe fa9b bl 803ea1c - 80404e6: 4603 mov r3, r0 - 80404e8: 429c cmp r4, r3 - 80404ea: dd48 ble.n 804057e + 8040444: f9b7 4050 ldrsh.w r4, [r7, #80] ; 0x50 + 8040448: f107 0354 add.w r3, r7, #84 ; 0x54 + 804044c: 4618 mov r0, r3 + 804044e: f7fe fa9b bl 803e988 + 8040452: 4603 mov r3, r0 + 8040454: 429c cmp r4, r3 + 8040456: dd48 ble.n 80404ea end = -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT; } lv_anim_set_values(&a, start, end); #else lv_anim_set_values(&a, 0, -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT); - 80404ec: 2220 movs r2, #32 - 80404ee: 2120 movs r1, #32 - 80404f0: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c - 80404f4: f7ef fb12 bl 802fb1c - 80404f8: 4603 mov r3, r0 - 80404fa: 461a mov r2, r3 - 80404fc: 009b lsls r3, r3, #2 - 80404fe: 1ad3 subs r3, r2, r3 - 8040500: f9b7 2050 ldrsh.w r2, [r7, #80] ; 0x50 - 8040504: 1a9a subs r2, r3, r2 - 8040506: f107 0308 add.w r3, r7, #8 - 804050a: 2100 movs r1, #0 - 804050c: 4618 mov r0, r3 - 804050e: f7fe fae4 bl 803eada + 8040458: 2220 movs r2, #32 + 804045a: 2120 movs r1, #32 + 804045c: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c + 8040460: f7ef fb12 bl 802fa88 + 8040464: 4603 mov r3, r0 + 8040466: 461a mov r2, r3 + 8040468: 009b lsls r3, r3, #2 + 804046a: 1ad3 subs r3, r2, r3 + 804046c: f9b7 2050 ldrsh.w r2, [r7, #80] ; 0x50 + 8040470: 1a9a subs r2, r3, r2 + 8040472: f107 0308 add.w r3, r7, #8 + 8040476: 2100 movs r1, #0 + 8040478: 4618 mov r0, r3 + 804047a: f7fe fae4 bl 803ea46 #endif lv_anim_set_exec_cb(&a, set_ofs_x_anim); - 8040512: f107 0308 add.w r3, r7, #8 - 8040516: 4998 ldr r1, [pc, #608] ; (8040778 ) - 8040518: 4618 mov r0, r3 - 804051a: f7fe fac4 bl 803eaa6 + 804047e: f107 0308 add.w r3, r7, #8 + 8040482: 4998 ldr r1, [pc, #608] ; (80406e4 ) + 8040484: 4618 mov r0, r3 + 8040486: f7fe fac4 bl 803ea12 lv_anim_set_time(&a, lv_anim_speed_to_time(anim_speed, a.start_value, a.end_value)); - 804051e: f8b7 30a8 ldrh.w r3, [r7, #168] ; 0xa8 - 8040522: 6a79 ldr r1, [r7, #36] ; 0x24 - 8040524: 6afa ldr r2, [r7, #44] ; 0x2c - 8040526: 4618 mov r0, r3 - 8040528: f7f0 fa90 bl 8030a4c - 804052c: 4602 mov r2, r0 - 804052e: f107 0308 add.w r3, r7, #8 - 8040532: 4611 mov r1, r2 - 8040534: 4618 mov r0, r3 - 8040536: f7fe fac3 bl 803eac0 + 804048a: f8b7 30a8 ldrh.w r3, [r7, #168] ; 0xa8 + 804048e: 6a79 ldr r1, [r7, #36] ; 0x24 + 8040490: 6afa ldr r2, [r7, #44] ; 0x2c + 8040492: 4618 mov r0, r3 + 8040494: f7f0 fa90 bl 80309b8 + 8040498: 4602 mov r2, r0 + 804049a: f107 0308 add.w r3, r7, #8 + 804049e: 4611 mov r1, r2 + 80404a0: 4618 mov r0, r3 + 80404a2: f7fe fac3 bl 803ea2c lv_anim_t * anim_cur = lv_anim_get(obj, set_ofs_x_anim); - 804053a: 498f ldr r1, [pc, #572] ; (8040778 ) - 804053c: 6878 ldr r0, [r7, #4] - 804053e: f7f0 fa5d bl 80309fc - 8040542: 67b8 str r0, [r7, #120] ; 0x78 + 80404a6: 498f ldr r1, [pc, #572] ; (80406e4 ) + 80404a8: 6878 ldr r0, [r7, #4] + 80404aa: f7f0 fa5d bl 8030968 + 80404ae: 67b8 str r0, [r7, #120] ; 0x78 int32_t act_time = anim_cur ? anim_cur->act_time : 0; - 8040544: 6fbb ldr r3, [r7, #120] ; 0x78 - 8040546: 2b00 cmp r3, #0 - 8040548: d002 beq.n 8040550 - 804054a: 6fbb ldr r3, [r7, #120] ; 0x78 - 804054c: 6adb ldr r3, [r3, #44] ; 0x2c - 804054e: e000 b.n 8040552 - 8040550: 2300 movs r3, #0 - 8040552: 677b str r3, [r7, #116] ; 0x74 + 80404b0: 6fbb ldr r3, [r7, #120] ; 0x78 + 80404b2: 2b00 cmp r3, #0 + 80404b4: d002 beq.n 80404bc + 80404b6: 6fbb ldr r3, [r7, #120] ; 0x78 + 80404b8: 6adb ldr r3, [r3, #44] ; 0x2c + 80404ba: e000 b.n 80404be + 80404bc: 2300 movs r3, #0 + 80404be: 677b str r3, [r7, #116] ; 0x74 if(act_time < a.time) { - 8040554: 6b3b ldr r3, [r7, #48] ; 0x30 - 8040556: 6f7a ldr r2, [r7, #116] ; 0x74 - 8040558: 429a cmp r2, r3 - 804055a: da07 bge.n 804056c + 80404c0: 6b3b ldr r3, [r7, #48] ; 0x30 + 80404c2: 6f7a ldr r2, [r7, #116] ; 0x74 + 80404c4: 429a cmp r2, r3 + 80404c6: da07 bge.n 80404d8 a.act_time = act_time; /*To keep the old position*/ - 804055c: 6f7b ldr r3, [r7, #116] ; 0x74 - 804055e: 637b str r3, [r7, #52] ; 0x34 + 80404c8: 6f7b ldr r3, [r7, #116] ; 0x74 + 80404ca: 637b str r3, [r7, #52] ; 0x34 a.early_apply = 0; - 8040560: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 - 8040564: f36f 0300 bfc r3, #0, #1 - 8040568: f887 3046 strb.w r3, [r7, #70] ; 0x46 + 80404cc: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 + 80404d0: f36f 0300 bfc r3, #0, #1 + 80404d4: f887 3046 strb.w r3, [r7, #70] ; 0x46 } lv_anim_start(&a); - 804056c: f107 0308 add.w r3, r7, #8 - 8040570: 4618 mov r0, r3 - 8040572: f7f0 f993 bl 803089c + 80404d8: f107 0308 add.w r3, r7, #8 + 80404dc: 4618 mov r0, r3 + 80404de: f7f0 f993 bl 8030808 hor_anim = true; - 8040576: 2301 movs r3, #1 - 8040578: f887 30a7 strb.w r3, [r7, #167] ; 0xa7 - 804057c: e008 b.n 8040590 + 80404e2: 2301 movs r3, #1 + 80404e4: f887 30a7 strb.w r3, [r7, #167] ; 0xa7 + 80404e8: e008 b.n 80404fc } else { /*Delete the offset animation if not required*/ lv_anim_del(obj, set_ofs_x_anim); - 804057e: 497e ldr r1, [pc, #504] ; (8040778 ) - 8040580: 6878 ldr r0, [r7, #4] - 8040582: f7f0 fa03 bl 803098c + 80404ea: 497e ldr r1, [pc, #504] ; (80406e4 ) + 80404ec: 6878 ldr r0, [r7, #4] + 80404ee: f7f0 fa03 bl 80308f8 label->offset.x = 0; - 8040586: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 804058a: 2200 movs r2, #0 - 804058c: f8a3 2044 strh.w r2, [r3, #68] ; 0x44 + 80404f2: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 80404f6: 2200 movs r2, #0 + 80404f8: f8a3 2044 strh.w r2, [r3, #68] ; 0x44 } if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) { - 8040590: f9b7 4052 ldrsh.w r4, [r7, #82] ; 0x52 - 8040594: f107 0354 add.w r3, r7, #84 ; 0x54 - 8040598: 4618 mov r0, r3 - 804059a: f7fe fa55 bl 803ea48 - 804059e: 4603 mov r3, r0 - 80405a0: 429c cmp r4, r3 - 80405a2: dd48 ble.n 8040636 - 80405a4: f897 30a7 ldrb.w r3, [r7, #167] ; 0xa7 - 80405a8: f083 0301 eor.w r3, r3, #1 - 80405ac: b2db uxtb r3, r3 - 80405ae: 2b00 cmp r3, #0 - 80405b0: d041 beq.n 8040636 + 80404fc: f9b7 4052 ldrsh.w r4, [r7, #82] ; 0x52 + 8040500: f107 0354 add.w r3, r7, #84 ; 0x54 + 8040504: 4618 mov r0, r3 + 8040506: f7fe fa55 bl 803e9b4 + 804050a: 4603 mov r3, r0 + 804050c: 429c cmp r4, r3 + 804050e: dd48 ble.n 80405a2 + 8040510: f897 30a7 ldrb.w r3, [r7, #167] ; 0xa7 + 8040514: f083 0301 eor.w r3, r3, #1 + 8040518: b2db uxtb r3, r3 + 804051a: 2b00 cmp r3, #0 + 804051c: d041 beq.n 80405a2 lv_anim_set_values(&a, 0, -size.y - (lv_font_get_line_height(font))); - 80405b2: f9b7 3052 ldrsh.w r3, [r7, #82] ; 0x52 - 80405b6: 425c negs r4, r3 - 80405b8: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c - 80405bc: f7fe fa5a bl 803ea74 - 80405c0: 4603 mov r3, r0 - 80405c2: 1ae2 subs r2, r4, r3 - 80405c4: f107 0308 add.w r3, r7, #8 - 80405c8: 2100 movs r1, #0 - 80405ca: 4618 mov r0, r3 - 80405cc: f7fe fa85 bl 803eada + 804051e: f9b7 3052 ldrsh.w r3, [r7, #82] ; 0x52 + 8040522: 425c negs r4, r3 + 8040524: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c + 8040528: f7fe fa5a bl 803e9e0 + 804052c: 4603 mov r3, r0 + 804052e: 1ae2 subs r2, r4, r3 + 8040530: f107 0308 add.w r3, r7, #8 + 8040534: 2100 movs r1, #0 + 8040536: 4618 mov r0, r3 + 8040538: f7fe fa85 bl 803ea46 lv_anim_set_exec_cb(&a, set_ofs_y_anim); - 80405d0: f107 0308 add.w r3, r7, #8 - 80405d4: 4969 ldr r1, [pc, #420] ; (804077c ) - 80405d6: 4618 mov r0, r3 - 80405d8: f7fe fa65 bl 803eaa6 + 804053c: f107 0308 add.w r3, r7, #8 + 8040540: 4969 ldr r1, [pc, #420] ; (80406e8 ) + 8040542: 4618 mov r0, r3 + 8040544: f7fe fa65 bl 803ea12 lv_anim_set_time(&a, lv_anim_speed_to_time(anim_speed, a.start_value, a.end_value)); - 80405dc: f8b7 30a8 ldrh.w r3, [r7, #168] ; 0xa8 - 80405e0: 6a79 ldr r1, [r7, #36] ; 0x24 - 80405e2: 6afa ldr r2, [r7, #44] ; 0x2c - 80405e4: 4618 mov r0, r3 - 80405e6: f7f0 fa31 bl 8030a4c - 80405ea: 4602 mov r2, r0 - 80405ec: f107 0308 add.w r3, r7, #8 - 80405f0: 4611 mov r1, r2 - 80405f2: 4618 mov r0, r3 - 80405f4: f7fe fa64 bl 803eac0 + 8040548: f8b7 30a8 ldrh.w r3, [r7, #168] ; 0xa8 + 804054c: 6a79 ldr r1, [r7, #36] ; 0x24 + 804054e: 6afa ldr r2, [r7, #44] ; 0x2c + 8040550: 4618 mov r0, r3 + 8040552: f7f0 fa31 bl 80309b8 + 8040556: 4602 mov r2, r0 + 8040558: f107 0308 add.w r3, r7, #8 + 804055c: 4611 mov r1, r2 + 804055e: 4618 mov r0, r3 + 8040560: f7fe fa64 bl 803ea2c lv_anim_t * anim_cur = lv_anim_get(obj, set_ofs_y_anim); - 80405f8: 4960 ldr r1, [pc, #384] ; (804077c ) - 80405fa: 6878 ldr r0, [r7, #4] - 80405fc: f7f0 f9fe bl 80309fc - 8040600: 6738 str r0, [r7, #112] ; 0x70 + 8040564: 4960 ldr r1, [pc, #384] ; (80406e8 ) + 8040566: 6878 ldr r0, [r7, #4] + 8040568: f7f0 f9fe bl 8030968 + 804056c: 6738 str r0, [r7, #112] ; 0x70 int32_t act_time = anim_cur ? anim_cur->act_time : 0; - 8040602: 6f3b ldr r3, [r7, #112] ; 0x70 - 8040604: 2b00 cmp r3, #0 - 8040606: d002 beq.n 804060e - 8040608: 6f3b ldr r3, [r7, #112] ; 0x70 - 804060a: 6adb ldr r3, [r3, #44] ; 0x2c - 804060c: e000 b.n 8040610 - 804060e: 2300 movs r3, #0 - 8040610: 66fb str r3, [r7, #108] ; 0x6c + 804056e: 6f3b ldr r3, [r7, #112] ; 0x70 + 8040570: 2b00 cmp r3, #0 + 8040572: d002 beq.n 804057a + 8040574: 6f3b ldr r3, [r7, #112] ; 0x70 + 8040576: 6adb ldr r3, [r3, #44] ; 0x2c + 8040578: e000 b.n 804057c + 804057a: 2300 movs r3, #0 + 804057c: 66fb str r3, [r7, #108] ; 0x6c if(act_time < a.time) { - 8040612: 6b3b ldr r3, [r7, #48] ; 0x30 - 8040614: 6efa ldr r2, [r7, #108] ; 0x6c - 8040616: 429a cmp r2, r3 - 8040618: da07 bge.n 804062a + 804057e: 6b3b ldr r3, [r7, #48] ; 0x30 + 8040580: 6efa ldr r2, [r7, #108] ; 0x6c + 8040582: 429a cmp r2, r3 + 8040584: da07 bge.n 8040596 a.act_time = act_time; /*To keep the old position*/ - 804061a: 6efb ldr r3, [r7, #108] ; 0x6c - 804061c: 637b str r3, [r7, #52] ; 0x34 + 8040586: 6efb ldr r3, [r7, #108] ; 0x6c + 8040588: 637b str r3, [r7, #52] ; 0x34 a.early_apply = 0; - 804061e: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 - 8040622: f36f 0300 bfc r3, #0, #1 - 8040626: f887 3046 strb.w r3, [r7, #70] ; 0x46 + 804058a: f897 3046 ldrb.w r3, [r7, #70] ; 0x46 + 804058e: f36f 0300 bfc r3, #0, #1 + 8040592: f887 3046 strb.w r3, [r7, #70] ; 0x46 } lv_anim_start(&a); - 804062a: f107 0308 add.w r3, r7, #8 - 804062e: 4618 mov r0, r3 - 8040630: f7f0 f934 bl 803089c + 8040596: f107 0308 add.w r3, r7, #8 + 804059a: 4618 mov r0, r3 + 804059c: f7f0 f934 bl 8030808 if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) { - 8040634: e151 b.n 80408da + 80405a0: e151 b.n 8040846 } else { /*Delete the offset animation if not required*/ lv_anim_del(obj, set_ofs_y_anim); - 8040636: 4951 ldr r1, [pc, #324] ; (804077c ) - 8040638: 6878 ldr r0, [r7, #4] - 804063a: f7f0 f9a7 bl 803098c + 80405a2: 4951 ldr r1, [pc, #324] ; (80406e8 ) + 80405a4: 6878 ldr r0, [r7, #4] + 80405a6: f7f0 f9a7 bl 80308f8 label->offset.y = 0; - 804063e: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 8040642: 2200 movs r2, #0 - 8040644: f8a3 2046 strh.w r2, [r3, #70] ; 0x46 - 8040648: e147 b.n 80408da + 80405aa: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 80405ae: 2200 movs r2, #0 + 80405b0: f8a3 2046 strh.w r2, [r3, #70] ; 0x46 + 80405b4: e147 b.n 8040846 } } else if(label->long_mode == LV_LABEL_LONG_DOT) { - 804064a: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 804064e: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 8040652: f003 0307 and.w r3, r3, #7 - 8040656: b2db uxtb r3, r3 - 8040658: 2b01 cmp r3, #1 - 804065a: f040 813e bne.w 80408da + 80405b6: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 80405ba: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 80405be: f003 0307 and.w r3, r3, #7 + 80405c2: b2db uxtb r3, r3 + 80405c4: 2b01 cmp r3, #1 + 80405c6: f040 813e bne.w 8040846 if(size.y <= lv_area_get_height(&txt_coords)) { /*No dots are required, the text is short enough*/ - 804065e: f9b7 4052 ldrsh.w r4, [r7, #82] ; 0x52 - 8040662: f107 0354 add.w r3, r7, #84 ; 0x54 - 8040666: 4618 mov r0, r3 - 8040668: f7fe f9ee bl 803ea48 - 804066c: 4603 mov r3, r0 - 804066e: 429c cmp r4, r3 - 8040670: dc05 bgt.n 804067e + 80405ca: f9b7 4052 ldrsh.w r4, [r7, #82] ; 0x52 + 80405ce: f107 0354 add.w r3, r7, #84 ; 0x54 + 80405d2: 4618 mov r0, r3 + 80405d4: f7fe f9ee bl 803e9b4 + 80405d8: 4603 mov r3, r0 + 80405da: 429c cmp r4, r3 + 80405dc: dc05 bgt.n 80405ea label->dot_end = LV_LABEL_DOT_END_INV; - 8040672: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 8040676: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 804067a: 62da str r2, [r3, #44] ; 0x2c - 804067c: e12d b.n 80408da + 80405de: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 80405e2: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 80405e6: 62da str r2, [r3, #44] ; 0x2c + 80405e8: e12d b.n 8040846 } else if(size.y <= lv_font_get_line_height(font)) { /*No dots are required for one-line texts*/ - 804067e: f9b7 4052 ldrsh.w r4, [r7, #82] ; 0x52 - 8040682: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c - 8040686: f7fe f9f5 bl 803ea74 - 804068a: 4603 mov r3, r0 - 804068c: 429c cmp r4, r3 - 804068e: dc05 bgt.n 804069c + 80405ea: f9b7 4052 ldrsh.w r4, [r7, #82] ; 0x52 + 80405ee: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c + 80405f2: f7fe f9f5 bl 803e9e0 + 80405f6: 4603 mov r3, r0 + 80405f8: 429c cmp r4, r3 + 80405fa: dc05 bgt.n 8040608 label->dot_end = LV_LABEL_DOT_END_INV; - 8040690: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 8040694: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 8040698: 62da str r2, [r3, #44] ; 0x2c - 804069a: e11e b.n 80408da + 80405fc: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 8040600: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 8040604: 62da str r2, [r3, #44] ; 0x2c + 8040606: e11e b.n 8040846 } else if(_lv_txt_get_encoded_length(label->text) <= LV_LABEL_DOT_NUM) { /*Don't turn to dots all the characters*/ - 804069c: 4b38 ldr r3, [pc, #224] ; (8040780 ) - 804069e: 681b ldr r3, [r3, #0] - 80406a0: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94 - 80406a4: 6a52 ldr r2, [r2, #36] ; 0x24 - 80406a6: 4610 mov r0, r2 - 80406a8: 4798 blx r3 - 80406aa: 4603 mov r3, r0 - 80406ac: 2b03 cmp r3, #3 - 80406ae: d805 bhi.n 80406bc + 8040608: 4b38 ldr r3, [pc, #224] ; (80406ec ) + 804060a: 681b ldr r3, [r3, #0] + 804060c: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94 + 8040610: 6a52 ldr r2, [r2, #36] ; 0x24 + 8040612: 4610 mov r0, r2 + 8040614: 4798 blx r3 + 8040616: 4603 mov r3, r0 + 8040618: 2b03 cmp r3, #3 + 804061a: d805 bhi.n 8040628 label->dot_end = LV_LABEL_DOT_END_INV; - 80406b0: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 80406b4: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 80406b8: 62da str r2, [r3, #44] ; 0x2c - 80406ba: e10e b.n 80408da + 804061c: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 8040620: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 8040624: 62da str r2, [r3, #44] ; 0x2c + 8040626: e10e b.n 8040846 } else { lv_point_t p; lv_coord_t y_overed; p.x = lv_area_get_width(&txt_coords) - - 80406bc: f107 0354 add.w r3, r7, #84 ; 0x54 - 80406c0: 4618 mov r0, r3 - 80406c2: f7fe f9ab bl 803ea1c - 80406c6: 4603 mov r3, r0 - 80406c8: b29c uxth r4, r3 + 8040628: f107 0354 add.w r3, r7, #84 ; 0x54 + 804062c: 4618 mov r0, r3 + 804062e: f7fe f9ab bl 803e988 + 8040632: 4603 mov r3, r0 + 8040634: b29c uxth r4, r3 (lv_font_get_glyph_width(font, '.', '.') + letter_space) * - 80406ca: 222e movs r2, #46 ; 0x2e - 80406cc: 212e movs r1, #46 ; 0x2e - 80406ce: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c - 80406d2: f7ef fa23 bl 802fb1c - 80406d6: 4603 mov r3, r0 - 80406d8: 461a mov r2, r3 - 80406da: f9b7 3088 ldrsh.w r3, [r7, #136] ; 0x88 - 80406de: 4413 add r3, r2 + 8040636: 222e movs r2, #46 ; 0x2e + 8040638: 212e movs r1, #46 ; 0x2e + 804063a: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c + 804063e: f7ef fa23 bl 802fa88 + 8040642: 4603 mov r3, r0 + 8040644: 461a mov r2, r3 + 8040646: f9b7 3088 ldrsh.w r3, [r7, #136] ; 0x88 + 804064a: 4413 add r3, r2 p.x = lv_area_get_width(&txt_coords) - - 80406e0: b29b uxth r3, r3 - 80406e2: 461a mov r2, r3 - 80406e4: 009b lsls r3, r3, #2 - 80406e6: 1ad3 subs r3, r2, r3 - 80406e8: b29b uxth r3, r3 - 80406ea: 4423 add r3, r4 - 80406ec: b29b uxth r3, r3 - 80406ee: b21b sxth r3, r3 - 80406f0: f8a7 304c strh.w r3, [r7, #76] ; 0x4c + 804064c: b29b uxth r3, r3 + 804064e: 461a mov r2, r3 + 8040650: 009b lsls r3, r3, #2 + 8040652: 1ad3 subs r3, r2, r3 + 8040654: b29b uxth r3, r3 + 8040656: 4423 add r3, r4 + 8040658: b29b uxth r3, r3 + 804065a: b21b sxth r3, r3 + 804065c: f8a7 304c strh.w r3, [r7, #76] ; 0x4c LV_LABEL_DOT_NUM; /*Shrink with dots*/ p.y = lv_area_get_height(&txt_coords); - 80406f4: f107 0354 add.w r3, r7, #84 ; 0x54 - 80406f8: 4618 mov r0, r3 - 80406fa: f7fe f9a5 bl 803ea48 - 80406fe: 4603 mov r3, r0 - 8040700: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 8040660: f107 0354 add.w r3, r7, #84 ; 0x54 + 8040664: 4618 mov r0, r3 + 8040666: f7fe f9a5 bl 803e9b4 + 804066a: 4603 mov r3, r0 + 804066c: f8a7 304e strh.w r3, [r7, #78] ; 0x4e y_overed = p.y % - 8040704: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8040708: 461c mov r4, r3 + 8040670: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8040674: 461c mov r4, r3 (lv_font_get_line_height(font) + line_space); /*Round down to the last line*/ - 804070a: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c - 804070e: f7fe f9b1 bl 803ea74 - 8040712: 4603 mov r3, r0 - 8040714: 461a mov r2, r3 - 8040716: f9b7 308a ldrsh.w r3, [r7, #138] ; 0x8a - 804071a: 4413 add r3, r2 + 8040676: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c + 804067a: f7fe f9b1 bl 803e9e0 + 804067e: 4603 mov r3, r0 + 8040680: 461a mov r2, r3 + 8040682: f9b7 308a ldrsh.w r3, [r7, #138] ; 0x8a + 8040686: 4413 add r3, r2 y_overed = p.y % - 804071c: fb94 f2f3 sdiv r2, r4, r3 - 8040720: fb02 f303 mul.w r3, r2, r3 - 8040724: 1ae3 subs r3, r4, r3 - 8040726: f8a7 3086 strh.w r3, [r7, #134] ; 0x86 + 8040688: fb94 f2f3 sdiv r2, r4, r3 + 804068c: fb02 f303 mul.w r3, r2, r3 + 8040690: 1ae3 subs r3, r4, r3 + 8040692: f8a7 3086 strh.w r3, [r7, #134] ; 0x86 if(y_overed >= lv_font_get_line_height(font)) { - 804072a: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c - 804072e: f7fe f9a1 bl 803ea74 - 8040732: 4603 mov r3, r0 - 8040734: 461a mov r2, r3 - 8040736: f9b7 3086 ldrsh.w r3, [r7, #134] ; 0x86 - 804073a: 4293 cmp r3, r2 - 804073c: db22 blt.n 8040784 + 8040696: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c + 804069a: f7fe f9a1 bl 803e9e0 + 804069e: 4603 mov r3, r0 + 80406a0: 461a mov r2, r3 + 80406a2: f9b7 3086 ldrsh.w r3, [r7, #134] ; 0x86 + 80406a6: 4293 cmp r3, r2 + 80406a8: db22 blt.n 80406f0 p.y -= y_overed; - 804073e: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8040742: b29a uxth r2, r3 - 8040744: f8b7 3086 ldrh.w r3, [r7, #134] ; 0x86 - 8040748: 1ad3 subs r3, r2, r3 - 804074a: b29b uxth r3, r3 - 804074c: b21b sxth r3, r3 - 804074e: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 80406aa: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80406ae: b29a uxth r2, r3 + 80406b0: f8b7 3086 ldrh.w r3, [r7, #134] ; 0x86 + 80406b4: 1ad3 subs r3, r2, r3 + 80406b6: b29b uxth r3, r3 + 80406b8: b21b sxth r3, r3 + 80406ba: f8a7 304e strh.w r3, [r7, #78] ; 0x4e p.y += lv_font_get_line_height(font); - 8040752: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c - 8040756: f7fe f98d bl 803ea74 - 804075a: 4603 mov r3, r0 - 804075c: 4619 mov r1, r3 - 804075e: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8040762: b29a uxth r2, r3 - 8040764: b28b uxth r3, r1 - 8040766: 4413 add r3, r2 - 8040768: b29b uxth r3, r3 - 804076a: b21b sxth r3, r3 - 804076c: f8a7 304e strh.w r3, [r7, #78] ; 0x4e - 8040770: e01c b.n 80407ac - 8040772: bf00 nop - 8040774: 55555556 .word 0x55555556 - 8040778: 08040aaf .word 0x08040aaf - 804077c: 08040ad5 .word 0x08040ad5 - 8040780: 200000fc .word 0x200000fc + 80406be: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c + 80406c2: f7fe f98d bl 803e9e0 + 80406c6: 4603 mov r3, r0 + 80406c8: 4619 mov r1, r3 + 80406ca: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80406ce: b29a uxth r2, r3 + 80406d0: b28b uxth r3, r1 + 80406d2: 4413 add r3, r2 + 80406d4: b29b uxth r3, r3 + 80406d6: b21b sxth r3, r3 + 80406d8: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 80406dc: e01c b.n 8040718 + 80406de: bf00 nop + 80406e0: 55555556 .word 0x55555556 + 80406e4: 08040a1b .word 0x08040a1b + 80406e8: 08040a41 .word 0x08040a41 + 80406ec: 200000fc .word 0x200000fc } else { p.y -= y_overed; - 8040784: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8040788: b29a uxth r2, r3 - 804078a: f8b7 3086 ldrh.w r3, [r7, #134] ; 0x86 - 804078e: 1ad3 subs r3, r2, r3 - 8040790: b29b uxth r3, r3 - 8040792: b21b sxth r3, r3 - 8040794: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 80406f0: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80406f4: b29a uxth r2, r3 + 80406f6: f8b7 3086 ldrh.w r3, [r7, #134] ; 0x86 + 80406fa: 1ad3 subs r3, r2, r3 + 80406fc: b29b uxth r3, r3 + 80406fe: b21b sxth r3, r3 + 8040700: f8a7 304e strh.w r3, [r7, #78] ; 0x4e p.y -= line_space; - 8040798: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 804079c: b29a uxth r2, r3 - 804079e: f8b7 308a ldrh.w r3, [r7, #138] ; 0x8a - 80407a2: 1ad3 subs r3, r2, r3 - 80407a4: b29b uxth r3, r3 - 80407a6: b21b sxth r3, r3 - 80407a8: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 8040704: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8040708: b29a uxth r2, r3 + 804070a: f8b7 308a ldrh.w r3, [r7, #138] ; 0x8a + 804070e: 1ad3 subs r3, r2, r3 + 8040710: b29b uxth r3, r3 + 8040712: b21b sxth r3, r3 + 8040714: f8a7 304e strh.w r3, [r7, #78] ; 0x4e } uint32_t letter_id = lv_label_get_letter_on(obj, &p); - 80407ac: f107 034c add.w r3, r7, #76 ; 0x4c - 80407b0: 4619 mov r1, r3 - 80407b2: 6878 ldr r0, [r7, #4] - 80407b4: f7fe fd92 bl 803f2dc - 80407b8: f8c7 00a0 str.w r0, [r7, #160] ; 0xa0 + 8040718: f107 034c add.w r3, r7, #76 ; 0x4c + 804071c: 4619 mov r1, r3 + 804071e: 6878 ldr r0, [r7, #4] + 8040720: f7fe fd92 bl 803f248 + 8040724: f8c7 00a0 str.w r0, [r7, #160] ; 0xa0 /*Be sure there is space for the dots*/ size_t txt_len = strlen(label->text); - 80407bc: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 80407c0: 6a5b ldr r3, [r3, #36] ; 0x24 - 80407c2: 4618 mov r0, r3 - 80407c4: f7bf fd38 bl 8000238 - 80407c8: f8c7 0080 str.w r0, [r7, #128] ; 0x80 + 8040728: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 804072c: 6a5b ldr r3, [r3, #36] ; 0x24 + 804072e: 4618 mov r0, r3 + 8040730: f7bf fd82 bl 8000238 + 8040734: f8c7 0080 str.w r0, [r7, #128] ; 0x80 uint32_t byte_id = _lv_txt_encoded_get_byte_id(label->text, letter_id); - 80407cc: 4b47 ldr r3, [pc, #284] ; (80408ec ) - 80407ce: 681b ldr r3, [r3, #0] - 80407d0: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94 - 80407d4: 6a52 ldr r2, [r2, #36] ; 0x24 - 80407d6: f8d7 10a0 ldr.w r1, [r7, #160] ; 0xa0 - 80407da: 4610 mov r0, r2 - 80407dc: 4798 blx r3 - 80407de: 4603 mov r3, r0 - 80407e0: 64bb str r3, [r7, #72] ; 0x48 + 8040738: 4b47 ldr r3, [pc, #284] ; (8040858 ) + 804073a: 681b ldr r3, [r3, #0] + 804073c: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94 + 8040740: 6a52 ldr r2, [r2, #36] ; 0x24 + 8040742: f8d7 10a0 ldr.w r1, [r7, #160] ; 0xa0 + 8040746: 4610 mov r0, r2 + 8040748: 4798 blx r3 + 804074a: 4603 mov r3, r0 + 804074c: 64bb str r3, [r7, #72] ; 0x48 while(byte_id + LV_LABEL_DOT_NUM > txt_len) { - 80407e2: e00d b.n 8040800 + 804074e: e00d b.n 804076c _lv_txt_encoded_prev(label->text, &byte_id); - 80407e4: 4b42 ldr r3, [pc, #264] ; (80408f0 ) - 80407e6: 681b ldr r3, [r3, #0] - 80407e8: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94 - 80407ec: 6a52 ldr r2, [r2, #36] ; 0x24 - 80407ee: f107 0148 add.w r1, r7, #72 ; 0x48 - 80407f2: 4610 mov r0, r2 - 80407f4: 4798 blx r3 + 8040750: 4b42 ldr r3, [pc, #264] ; (804085c ) + 8040752: 681b ldr r3, [r3, #0] + 8040754: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94 + 8040758: 6a52 ldr r2, [r2, #36] ; 0x24 + 804075a: f107 0148 add.w r1, r7, #72 ; 0x48 + 804075e: 4610 mov r0, r2 + 8040760: 4798 blx r3 letter_id--; - 80407f6: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0 - 80407fa: 3b01 subs r3, #1 - 80407fc: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 + 8040762: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0 + 8040766: 3b01 subs r3, #1 + 8040768: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 while(byte_id + LV_LABEL_DOT_NUM > txt_len) { - 8040800: 6cbb ldr r3, [r7, #72] ; 0x48 - 8040802: 3303 adds r3, #3 - 8040804: f8d7 2080 ldr.w r2, [r7, #128] ; 0x80 - 8040808: 429a cmp r2, r3 - 804080a: d3eb bcc.n 80407e4 + 804076c: 6cbb ldr r3, [r7, #72] ; 0x48 + 804076e: 3303 adds r3, #3 + 8040770: f8d7 2080 ldr.w r2, [r7, #128] ; 0x80 + 8040774: 429a cmp r2, r3 + 8040776: d3eb bcc.n 8040750 } /*Save letters under the dots and replace them with dots*/ uint32_t byte_id_ori = byte_id; - 804080c: 6cbb ldr r3, [r7, #72] ; 0x48 - 804080e: 67fb str r3, [r7, #124] ; 0x7c + 8040778: 6cbb ldr r3, [r7, #72] ; 0x48 + 804077a: 67fb str r3, [r7, #124] ; 0x7c uint32_t i; uint8_t len = 0; - 8040810: 2300 movs r3, #0 - 8040812: f887 309b strb.w r3, [r7, #155] ; 0x9b + 804077c: 2300 movs r3, #0 + 804077e: f887 309b strb.w r3, [r7, #155] ; 0x9b for(i = 0; i <= LV_LABEL_DOT_NUM; i++) { - 8040816: 2300 movs r3, #0 - 8040818: f8c7 309c str.w r3, [r7, #156] ; 0x9c - 804081c: e026 b.n 804086c + 8040782: 2300 movs r3, #0 + 8040784: f8c7 309c str.w r3, [r7, #156] ; 0x9c + 8040788: e026 b.n 80407d8 len += _lv_txt_encoded_size(&label->text[byte_id]); - 804081e: 4b35 ldr r3, [pc, #212] ; (80408f4 ) - 8040820: 681b ldr r3, [r3, #0] - 8040822: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94 - 8040826: 6a51 ldr r1, [r2, #36] ; 0x24 - 8040828: 6cba ldr r2, [r7, #72] ; 0x48 - 804082a: 440a add r2, r1 - 804082c: 4610 mov r0, r2 - 804082e: 4798 blx r3 - 8040830: 4603 mov r3, r0 - 8040832: 461a mov r2, r3 - 8040834: f897 309b ldrb.w r3, [r7, #155] ; 0x9b - 8040838: 4413 add r3, r2 - 804083a: f887 309b strb.w r3, [r7, #155] ; 0x9b + 804078a: 4b35 ldr r3, [pc, #212] ; (8040860 ) + 804078c: 681b ldr r3, [r3, #0] + 804078e: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94 + 8040792: 6a51 ldr r1, [r2, #36] ; 0x24 + 8040794: 6cba ldr r2, [r7, #72] ; 0x48 + 8040796: 440a add r2, r1 + 8040798: 4610 mov r0, r2 + 804079a: 4798 blx r3 + 804079c: 4603 mov r3, r0 + 804079e: 461a mov r2, r3 + 80407a0: f897 309b ldrb.w r3, [r7, #155] ; 0x9b + 80407a4: 4413 add r3, r2 + 80407a6: f887 309b strb.w r3, [r7, #155] ; 0x9b _lv_txt_encoded_next(label->text, &byte_id); - 804083e: 4b2e ldr r3, [pc, #184] ; (80408f8 ) - 8040840: 681b ldr r3, [r3, #0] - 8040842: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94 - 8040846: 6a52 ldr r2, [r2, #36] ; 0x24 - 8040848: f107 0148 add.w r1, r7, #72 ; 0x48 - 804084c: 4610 mov r0, r2 - 804084e: 4798 blx r3 + 80407aa: 4b2e ldr r3, [pc, #184] ; (8040864 ) + 80407ac: 681b ldr r3, [r3, #0] + 80407ae: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94 + 80407b2: 6a52 ldr r2, [r2, #36] ; 0x24 + 80407b4: f107 0148 add.w r1, r7, #72 ; 0x48 + 80407b8: 4610 mov r0, r2 + 80407ba: 4798 blx r3 if(len > LV_LABEL_DOT_NUM || byte_id > txt_len) { - 8040850: f897 309b ldrb.w r3, [r7, #155] ; 0x9b - 8040854: 2b03 cmp r3, #3 - 8040856: d80d bhi.n 8040874 - 8040858: 6cbb ldr r3, [r7, #72] ; 0x48 - 804085a: f8d7 2080 ldr.w r2, [r7, #128] ; 0x80 - 804085e: 429a cmp r2, r3 - 8040860: d308 bcc.n 8040874 + 80407bc: f897 309b ldrb.w r3, [r7, #155] ; 0x9b + 80407c0: 2b03 cmp r3, #3 + 80407c2: d80d bhi.n 80407e0 + 80407c4: 6cbb ldr r3, [r7, #72] ; 0x48 + 80407c6: f8d7 2080 ldr.w r2, [r7, #128] ; 0x80 + 80407ca: 429a cmp r2, r3 + 80407cc: d308 bcc.n 80407e0 for(i = 0; i <= LV_LABEL_DOT_NUM; i++) { - 8040862: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 8040866: 3301 adds r3, #1 - 8040868: f8c7 309c str.w r3, [r7, #156] ; 0x9c - 804086c: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 8040870: 2b03 cmp r3, #3 - 8040872: d9d4 bls.n 804081e + 80407ce: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 80407d2: 3301 adds r3, #1 + 80407d4: f8c7 309c str.w r3, [r7, #156] ; 0x9c + 80407d8: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 80407dc: 2b03 cmp r3, #3 + 80407de: d9d4 bls.n 804078a break; } } if(lv_label_set_dot_tmp(obj, &label->text[byte_id_ori], len)) { - 8040874: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 8040878: 6a5a ldr r2, [r3, #36] ; 0x24 - 804087a: 6ffb ldr r3, [r7, #124] ; 0x7c - 804087c: 4413 add r3, r2 - 804087e: f897 209b ldrb.w r2, [r7, #155] ; 0x9b - 8040882: 4619 mov r1, r3 - 8040884: 6878 ldr r0, [r7, #4] - 8040886: f000 f891 bl 80409ac - 804088a: 4603 mov r3, r0 - 804088c: 2b00 cmp r3, #0 - 804088e: d024 beq.n 80408da + 80407e0: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 80407e4: 6a5a ldr r2, [r3, #36] ; 0x24 + 80407e6: 6ffb ldr r3, [r7, #124] ; 0x7c + 80407e8: 4413 add r3, r2 + 80407ea: f897 209b ldrb.w r2, [r7, #155] ; 0x9b + 80407ee: 4619 mov r1, r3 + 80407f0: 6878 ldr r0, [r7, #4] + 80407f2: f000 f891 bl 8040918 + 80407f6: 4603 mov r3, r0 + 80407f8: 2b00 cmp r3, #0 + 80407fa: d024 beq.n 8040846 for(i = 0; i < LV_LABEL_DOT_NUM; i++) { - 8040890: 2300 movs r3, #0 - 8040892: f8c7 309c str.w r3, [r7, #156] ; 0x9c - 8040896: e00e b.n 80408b6 + 80407fc: 2300 movs r3, #0 + 80407fe: f8c7 309c str.w r3, [r7, #156] ; 0x9c + 8040802: e00e b.n 8040822 label->text[byte_id_ori + i] = '.'; - 8040898: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 804089c: 6a5a ldr r2, [r3, #36] ; 0x24 - 804089e: 6ff9 ldr r1, [r7, #124] ; 0x7c - 80408a0: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 80408a4: 440b add r3, r1 - 80408a6: 4413 add r3, r2 - 80408a8: 222e movs r2, #46 ; 0x2e - 80408aa: 701a strb r2, [r3, #0] + 8040804: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 8040808: 6a5a ldr r2, [r3, #36] ; 0x24 + 804080a: 6ff9 ldr r1, [r7, #124] ; 0x7c + 804080c: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 8040810: 440b add r3, r1 + 8040812: 4413 add r3, r2 + 8040814: 222e movs r2, #46 ; 0x2e + 8040816: 701a strb r2, [r3, #0] for(i = 0; i < LV_LABEL_DOT_NUM; i++) { - 80408ac: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 80408b0: 3301 adds r3, #1 - 80408b2: f8c7 309c str.w r3, [r7, #156] ; 0x9c - 80408b6: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c - 80408ba: 2b02 cmp r3, #2 - 80408bc: d9ec bls.n 8040898 + 8040818: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 804081c: 3301 adds r3, #1 + 804081e: f8c7 309c str.w r3, [r7, #156] ; 0x9c + 8040822: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c + 8040826: 2b02 cmp r3, #2 + 8040828: d9ec bls.n 8040804 } label->text[byte_id_ori + LV_LABEL_DOT_NUM] = '\0'; - 80408be: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 80408c2: 6a5a ldr r2, [r3, #36] ; 0x24 - 80408c4: 6ffb ldr r3, [r7, #124] ; 0x7c - 80408c6: 3303 adds r3, #3 - 80408c8: 4413 add r3, r2 - 80408ca: 2200 movs r2, #0 - 80408cc: 701a strb r2, [r3, #0] + 804082a: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 804082e: 6a5a ldr r2, [r3, #36] ; 0x24 + 8040830: 6ffb ldr r3, [r7, #124] ; 0x7c + 8040832: 3303 adds r3, #3 + 8040834: 4413 add r3, r2 + 8040836: 2200 movs r2, #0 + 8040838: 701a strb r2, [r3, #0] label->dot_end = letter_id + LV_LABEL_DOT_NUM; - 80408ce: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0 - 80408d2: 1cda adds r2, r3, #3 - 80408d4: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 80408d8: 62da str r2, [r3, #44] ; 0x2c + 804083a: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0 + 804083e: 1cda adds r2, r3, #3 + 8040840: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 8040844: 62da str r2, [r3, #44] ; 0x2c } else if(label->long_mode == LV_LABEL_LONG_CLIP) { /*Do nothing*/ } lv_obj_invalidate(obj); - 80408da: 6878 ldr r0, [r7, #4] - 80408dc: f7ca f8e9 bl 800aab2 - 80408e0: e000 b.n 80408e4 + 8040846: 6878 ldr r0, [r7, #4] + 8040848: f7ca f8fd bl 800aa46 + 804084c: e000 b.n 8040850 if(label->text == NULL) return; - 80408e2: bf00 nop + 804084e: bf00 nop } - 80408e4: 37c4 adds r7, #196 ; 0xc4 - 80408e6: 46bd mov sp, r7 - 80408e8: bd90 pop {r4, r7, pc} - 80408ea: bf00 nop - 80408ec: 200000f4 .word 0x200000f4 - 80408f0: 200000f0 .word 0x200000f0 - 80408f4: 200000e4 .word 0x200000e4 - 80408f8: 200000ec .word 0x200000ec + 8040850: 37c4 adds r7, #196 ; 0xc4 + 8040852: 46bd mov sp, r7 + 8040854: bd90 pop {r4, r7, pc} + 8040856: bf00 nop + 8040858: 200000f4 .word 0x200000f4 + 804085c: 200000f0 .word 0x200000f0 + 8040860: 200000e4 .word 0x200000e4 + 8040864: 200000ec .word 0x200000ec -080408fc : +08040868 : static void lv_label_revert_dots(lv_obj_t * obj) { - 80408fc: b580 push {r7, lr} - 80408fe: b088 sub sp, #32 - 8040900: af00 add r7, sp, #0 - 8040902: 6078 str r0, [r7, #4] + 8040868: b580 push {r7, lr} + 804086a: b088 sub sp, #32 + 804086c: af00 add r7, sp, #0 + 804086e: 6078 str r0, [r7, #4] lv_label_t * label = (lv_label_t *)obj; - 8040904: 687b ldr r3, [r7, #4] - 8040906: 61bb str r3, [r7, #24] + 8040870: 687b ldr r3, [r7, #4] + 8040872: 61bb str r3, [r7, #24] if(label->long_mode != LV_LABEL_LONG_DOT) return; - 8040908: 69bb ldr r3, [r7, #24] - 804090a: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 804090e: f003 0307 and.w r3, r3, #7 - 8040912: b2db uxtb r3, r3 - 8040914: 2b01 cmp r3, #1 - 8040916: d141 bne.n 804099c + 8040874: 69bb ldr r3, [r7, #24] + 8040876: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 804087a: f003 0307 and.w r3, r3, #7 + 804087e: b2db uxtb r3, r3 + 8040880: 2b01 cmp r3, #1 + 8040882: d141 bne.n 8040908 if(label->dot_end == LV_LABEL_DOT_END_INV) return; - 8040918: 69bb ldr r3, [r7, #24] - 804091a: 6adb ldr r3, [r3, #44] ; 0x2c - 804091c: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 8040920: d03e beq.n 80409a0 + 8040884: 69bb ldr r3, [r7, #24] + 8040886: 6adb ldr r3, [r3, #44] ; 0x2c + 8040888: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 804088c: d03e beq.n 804090c uint32_t letter_i = label->dot_end - LV_LABEL_DOT_NUM; - 8040922: 69bb ldr r3, [r7, #24] - 8040924: 6adb ldr r3, [r3, #44] ; 0x2c - 8040926: 3b03 subs r3, #3 - 8040928: 617b str r3, [r7, #20] + 804088e: 69bb ldr r3, [r7, #24] + 8040890: 6adb ldr r3, [r3, #44] ; 0x2c + 8040892: 3b03 subs r3, #3 + 8040894: 617b str r3, [r7, #20] uint32_t byte_i = _lv_txt_encoded_get_byte_id(label->text, letter_i); - 804092a: 4b1f ldr r3, [pc, #124] ; (80409a8 ) - 804092c: 681b ldr r3, [r3, #0] - 804092e: 69ba ldr r2, [r7, #24] - 8040930: 6a52 ldr r2, [r2, #36] ; 0x24 - 8040932: 6979 ldr r1, [r7, #20] - 8040934: 4610 mov r0, r2 - 8040936: 4798 blx r3 - 8040938: 6138 str r0, [r7, #16] + 8040896: 4b1f ldr r3, [pc, #124] ; (8040914 ) + 8040898: 681b ldr r3, [r3, #0] + 804089a: 69ba ldr r2, [r7, #24] + 804089c: 6a52 ldr r2, [r2, #36] ; 0x24 + 804089e: 6979 ldr r1, [r7, #20] + 80408a0: 4610 mov r0, r2 + 80408a2: 4798 blx r3 + 80408a4: 6138 str r0, [r7, #16] /*Restore the characters*/ uint8_t i = 0; - 804093a: 2300 movs r3, #0 - 804093c: 77fb strb r3, [r7, #31] + 80408a6: 2300 movs r3, #0 + 80408a8: 77fb strb r3, [r7, #31] char * dot_tmp = lv_label_get_dot_tmp(obj); - 804093e: 6878 ldr r0, [r7, #4] - 8040940: f000 f878 bl 8040a34 - 8040944: 60f8 str r0, [r7, #12] + 80408aa: 6878 ldr r0, [r7, #4] + 80408ac: f000 f878 bl 80409a0 + 80408b0: 60f8 str r0, [r7, #12] while(label->text[byte_i + i] != '\0') { - 8040946: e00d b.n 8040964 + 80408b2: e00d b.n 80408d0 label->text[byte_i + i] = dot_tmp[i]; - 8040948: 7ffb ldrb r3, [r7, #31] - 804094a: 68fa ldr r2, [r7, #12] - 804094c: 441a add r2, r3 - 804094e: 69bb ldr r3, [r7, #24] - 8040950: 6a59 ldr r1, [r3, #36] ; 0x24 - 8040952: 7ff8 ldrb r0, [r7, #31] - 8040954: 693b ldr r3, [r7, #16] - 8040956: 4403 add r3, r0 - 8040958: 440b add r3, r1 - 804095a: 7812 ldrb r2, [r2, #0] - 804095c: 701a strb r2, [r3, #0] + 80408b4: 7ffb ldrb r3, [r7, #31] + 80408b6: 68fa ldr r2, [r7, #12] + 80408b8: 441a add r2, r3 + 80408ba: 69bb ldr r3, [r7, #24] + 80408bc: 6a59 ldr r1, [r3, #36] ; 0x24 + 80408be: 7ff8 ldrb r0, [r7, #31] + 80408c0: 693b ldr r3, [r7, #16] + 80408c2: 4403 add r3, r0 + 80408c4: 440b add r3, r1 + 80408c6: 7812 ldrb r2, [r2, #0] + 80408c8: 701a strb r2, [r3, #0] i++; - 804095e: 7ffb ldrb r3, [r7, #31] - 8040960: 3301 adds r3, #1 - 8040962: 77fb strb r3, [r7, #31] + 80408ca: 7ffb ldrb r3, [r7, #31] + 80408cc: 3301 adds r3, #1 + 80408ce: 77fb strb r3, [r7, #31] while(label->text[byte_i + i] != '\0') { - 8040964: 69bb ldr r3, [r7, #24] - 8040966: 6a5a ldr r2, [r3, #36] ; 0x24 - 8040968: 7ff9 ldrb r1, [r7, #31] - 804096a: 693b ldr r3, [r7, #16] - 804096c: 440b add r3, r1 - 804096e: 4413 add r3, r2 - 8040970: 781b ldrb r3, [r3, #0] - 8040972: 2b00 cmp r3, #0 - 8040974: d1e8 bne.n 8040948 + 80408d0: 69bb ldr r3, [r7, #24] + 80408d2: 6a5a ldr r2, [r3, #36] ; 0x24 + 80408d4: 7ff9 ldrb r1, [r7, #31] + 80408d6: 693b ldr r3, [r7, #16] + 80408d8: 440b add r3, r1 + 80408da: 4413 add r3, r2 + 80408dc: 781b ldrb r3, [r3, #0] + 80408de: 2b00 cmp r3, #0 + 80408e0: d1e8 bne.n 80408b4 } label->text[byte_i + i] = dot_tmp[i]; - 8040976: 7ffb ldrb r3, [r7, #31] - 8040978: 68fa ldr r2, [r7, #12] - 804097a: 441a add r2, r3 - 804097c: 69bb ldr r3, [r7, #24] - 804097e: 6a59 ldr r1, [r3, #36] ; 0x24 - 8040980: 7ff8 ldrb r0, [r7, #31] - 8040982: 693b ldr r3, [r7, #16] - 8040984: 4403 add r3, r0 - 8040986: 440b add r3, r1 - 8040988: 7812 ldrb r2, [r2, #0] - 804098a: 701a strb r2, [r3, #0] + 80408e2: 7ffb ldrb r3, [r7, #31] + 80408e4: 68fa ldr r2, [r7, #12] + 80408e6: 441a add r2, r3 + 80408e8: 69bb ldr r3, [r7, #24] + 80408ea: 6a59 ldr r1, [r3, #36] ; 0x24 + 80408ec: 7ff8 ldrb r0, [r7, #31] + 80408ee: 693b ldr r3, [r7, #16] + 80408f0: 4403 add r3, r0 + 80408f2: 440b add r3, r1 + 80408f4: 7812 ldrb r2, [r2, #0] + 80408f6: 701a strb r2, [r3, #0] lv_label_dot_tmp_free(obj); - 804098c: 6878 ldr r0, [r7, #4] - 804098e: f000 f869 bl 8040a64 + 80408f8: 6878 ldr r0, [r7, #4] + 80408fa: f000 f869 bl 80409d0 label->dot_end = LV_LABEL_DOT_END_INV; - 8040992: 69bb ldr r3, [r7, #24] - 8040994: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 8040998: 62da str r2, [r3, #44] ; 0x2c - 804099a: e002 b.n 80409a2 + 80408fe: 69bb ldr r3, [r7, #24] + 8040900: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 8040904: 62da str r2, [r3, #44] ; 0x2c + 8040906: e002 b.n 804090e if(label->long_mode != LV_LABEL_LONG_DOT) return; - 804099c: bf00 nop - 804099e: e000 b.n 80409a2 + 8040908: bf00 nop + 804090a: e000 b.n 804090e if(label->dot_end == LV_LABEL_DOT_END_INV) return; - 80409a0: bf00 nop + 804090c: bf00 nop } - 80409a2: 3720 adds r7, #32 - 80409a4: 46bd mov sp, r7 - 80409a6: bd80 pop {r7, pc} - 80409a8: 200000f4 .word 0x200000f4 + 804090e: 3720 adds r7, #32 + 8040910: 46bd mov sp, r7 + 8040912: bd80 pop {r7, pc} + 8040914: 200000f4 .word 0x200000f4 -080409ac : +08040918 : * @param label pointer to label object * @param len Number of characters to store. * @return true on success. */ static bool lv_label_set_dot_tmp(lv_obj_t * obj, char * data, uint32_t len) { - 80409ac: b580 push {r7, lr} - 80409ae: b086 sub sp, #24 - 80409b0: af00 add r7, sp, #0 - 80409b2: 60f8 str r0, [r7, #12] - 80409b4: 60b9 str r1, [r7, #8] - 80409b6: 607a str r2, [r7, #4] + 8040918: b580 push {r7, lr} + 804091a: b086 sub sp, #24 + 804091c: af00 add r7, sp, #0 + 804091e: 60f8 str r0, [r7, #12] + 8040920: 60b9 str r1, [r7, #8] + 8040922: 607a str r2, [r7, #4] lv_label_t * label = (lv_label_t *)obj; - 80409b8: 68fb ldr r3, [r7, #12] - 80409ba: 617b str r3, [r7, #20] + 8040924: 68fb ldr r3, [r7, #12] + 8040926: 617b str r3, [r7, #20] lv_label_dot_tmp_free(obj); /*Deallocate any existing space*/ - 80409bc: 68f8 ldr r0, [r7, #12] - 80409be: f000 f851 bl 8040a64 + 8040928: 68f8 ldr r0, [r7, #12] + 804092a: f000 f851 bl 80409d0 if(len > sizeof(char *)) { - 80409c2: 687b ldr r3, [r7, #4] - 80409c4: 2b04 cmp r3, #4 - 80409c6: d922 bls.n 8040a0e + 804092e: 687b ldr r3, [r7, #4] + 8040930: 2b04 cmp r3, #4 + 8040932: d922 bls.n 804097a /*Memory needs to be allocated. Allocates an additional byte *for a NULL-terminator so it can be copied.*/ label->dot.tmp_ptr = lv_mem_alloc(len + 1); - 80409c8: 687b ldr r3, [r7, #4] - 80409ca: 3301 adds r3, #1 - 80409cc: 4618 mov r0, r3 - 80409ce: f7f1 ff63 bl 8032898 - 80409d2: 4602 mov r2, r0 - 80409d4: 697b ldr r3, [r7, #20] - 80409d6: 629a str r2, [r3, #40] ; 0x28 + 8040934: 687b ldr r3, [r7, #4] + 8040936: 3301 adds r3, #1 + 8040938: 4618 mov r0, r3 + 804093a: f7f1 ff63 bl 8032804 + 804093e: 4602 mov r2, r0 + 8040940: 697b ldr r3, [r7, #20] + 8040942: 629a str r2, [r3, #40] ; 0x28 if(label->dot.tmp_ptr == NULL) { - 80409d8: 697b ldr r3, [r7, #20] - 80409da: 6a9b ldr r3, [r3, #40] ; 0x28 - 80409dc: 2b00 cmp r3, #0 - 80409de: d101 bne.n 80409e4 + 8040944: 697b ldr r3, [r7, #20] + 8040946: 6a9b ldr r3, [r3, #40] ; 0x28 + 8040948: 2b00 cmp r3, #0 + 804094a: d101 bne.n 8040950 LV_LOG_ERROR("Failed to allocate memory for dot_tmp_ptr"); return false; - 80409e0: 2300 movs r3, #0 - 80409e2: e023 b.n 8040a2c + 804094c: 2300 movs r3, #0 + 804094e: e023 b.n 8040998 } lv_memcpy(label->dot.tmp_ptr, data, len); - 80409e4: 697b ldr r3, [r7, #20] - 80409e6: 6a9b ldr r3, [r3, #40] ; 0x28 - 80409e8: 687a ldr r2, [r7, #4] - 80409ea: 68b9 ldr r1, [r7, #8] - 80409ec: 4618 mov r0, r3 - 80409ee: f7f2 f90b bl 8032c08 + 8040950: 697b ldr r3, [r7, #20] + 8040952: 6a9b ldr r3, [r3, #40] ; 0x28 + 8040954: 687a ldr r2, [r7, #4] + 8040956: 68b9 ldr r1, [r7, #8] + 8040958: 4618 mov r0, r3 + 804095a: f7f2 f90b bl 8032b74 label->dot.tmp_ptr[len] = '\0'; - 80409f2: 697b ldr r3, [r7, #20] - 80409f4: 6a9a ldr r2, [r3, #40] ; 0x28 - 80409f6: 687b ldr r3, [r7, #4] - 80409f8: 4413 add r3, r2 - 80409fa: 2200 movs r2, #0 - 80409fc: 701a strb r2, [r3, #0] + 804095e: 697b ldr r3, [r7, #20] + 8040960: 6a9a ldr r2, [r3, #40] ; 0x28 + 8040962: 687b ldr r3, [r7, #4] + 8040964: 4413 add r3, r2 + 8040966: 2200 movs r2, #0 + 8040968: 701a strb r2, [r3, #0] label->dot_tmp_alloc = true; - 80409fe: 697a ldr r2, [r7, #20] - 8040a00: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 - 8040a04: f043 0340 orr.w r3, r3, #64 ; 0x40 - 8040a08: f882 3048 strb.w r3, [r2, #72] ; 0x48 - 8040a0c: e00d b.n 8040a2a + 804096a: 697a ldr r2, [r7, #20] + 804096c: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 + 8040970: f043 0340 orr.w r3, r3, #64 ; 0x40 + 8040974: f882 3048 strb.w r3, [r2, #72] ; 0x48 + 8040978: e00d b.n 8040996 } else { /*Characters can be directly stored in object*/ label->dot_tmp_alloc = false; - 8040a0e: 697a ldr r2, [r7, #20] - 8040a10: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 - 8040a14: f36f 1386 bfc r3, #6, #1 - 8040a18: f882 3048 strb.w r3, [r2, #72] ; 0x48 + 804097a: 697a ldr r2, [r7, #20] + 804097c: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 + 8040980: f36f 1386 bfc r3, #6, #1 + 8040984: f882 3048 strb.w r3, [r2, #72] ; 0x48 lv_memcpy(label->dot.tmp, data, len); - 8040a1c: 697b ldr r3, [r7, #20] - 8040a1e: 3328 adds r3, #40 ; 0x28 - 8040a20: 687a ldr r2, [r7, #4] - 8040a22: 68b9 ldr r1, [r7, #8] - 8040a24: 4618 mov r0, r3 - 8040a26: f7f2 f8ef bl 8032c08 + 8040988: 697b ldr r3, [r7, #20] + 804098a: 3328 adds r3, #40 ; 0x28 + 804098c: 687a ldr r2, [r7, #4] + 804098e: 68b9 ldr r1, [r7, #8] + 8040990: 4618 mov r0, r3 + 8040992: f7f2 f8ef bl 8032b74 } return true; - 8040a2a: 2301 movs r3, #1 + 8040996: 2301 movs r3, #1 } - 8040a2c: 4618 mov r0, r3 - 8040a2e: 3718 adds r7, #24 - 8040a30: 46bd mov sp, r7 - 8040a32: bd80 pop {r7, pc} + 8040998: 4618 mov r0, r3 + 804099a: 3718 adds r7, #24 + 804099c: 46bd mov sp, r7 + 804099e: bd80 pop {r7, pc} -08040a34 : +080409a0 : * Get the stored dot_tmp characters * @param label pointer to label object * @return char pointer to a stored characters. Is *not* necessarily NULL-terminated. */ static char * lv_label_get_dot_tmp(lv_obj_t * obj) { - 8040a34: b480 push {r7} - 8040a36: b085 sub sp, #20 - 8040a38: af00 add r7, sp, #0 - 8040a3a: 6078 str r0, [r7, #4] + 80409a0: b480 push {r7} + 80409a2: b085 sub sp, #20 + 80409a4: af00 add r7, sp, #0 + 80409a6: 6078 str r0, [r7, #4] lv_label_t * label = (lv_label_t *)obj; - 8040a3c: 687b ldr r3, [r7, #4] - 8040a3e: 60fb str r3, [r7, #12] + 80409a8: 687b ldr r3, [r7, #4] + 80409aa: 60fb str r3, [r7, #12] if(label->dot_tmp_alloc) { - 8040a40: 68fb ldr r3, [r7, #12] - 8040a42: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 8040a46: f003 0340 and.w r3, r3, #64 ; 0x40 - 8040a4a: b2db uxtb r3, r3 - 8040a4c: 2b00 cmp r3, #0 - 8040a4e: d002 beq.n 8040a56 + 80409ac: 68fb ldr r3, [r7, #12] + 80409ae: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 80409b2: f003 0340 and.w r3, r3, #64 ; 0x40 + 80409b6: b2db uxtb r3, r3 + 80409b8: 2b00 cmp r3, #0 + 80409ba: d002 beq.n 80409c2 return label->dot.tmp_ptr; - 8040a50: 68fb ldr r3, [r7, #12] - 8040a52: 6a9b ldr r3, [r3, #40] ; 0x28 - 8040a54: e001 b.n 8040a5a + 80409bc: 68fb ldr r3, [r7, #12] + 80409be: 6a9b ldr r3, [r3, #40] ; 0x28 + 80409c0: e001 b.n 80409c6 } else { return label->dot.tmp; - 8040a56: 68fb ldr r3, [r7, #12] - 8040a58: 3328 adds r3, #40 ; 0x28 + 80409c2: 68fb ldr r3, [r7, #12] + 80409c4: 3328 adds r3, #40 ; 0x28 } } - 8040a5a: 4618 mov r0, r3 - 8040a5c: 3714 adds r7, #20 - 8040a5e: 46bd mov sp, r7 - 8040a60: bc80 pop {r7} - 8040a62: 4770 bx lr + 80409c6: 4618 mov r0, r3 + 80409c8: 3714 adds r7, #20 + 80409ca: 46bd mov sp, r7 + 80409cc: bc80 pop {r7} + 80409ce: 4770 bx lr -08040a64 : +080409d0 : * Free the dot_tmp_ptr field if it was previously allocated. * Always clears the field * @param label pointer to label object. */ static void lv_label_dot_tmp_free(lv_obj_t * obj) { - 8040a64: b580 push {r7, lr} - 8040a66: b084 sub sp, #16 - 8040a68: af00 add r7, sp, #0 - 8040a6a: 6078 str r0, [r7, #4] + 80409d0: b580 push {r7, lr} + 80409d2: b084 sub sp, #16 + 80409d4: af00 add r7, sp, #0 + 80409d6: 6078 str r0, [r7, #4] lv_label_t * label = (lv_label_t *)obj; - 8040a6c: 687b ldr r3, [r7, #4] - 8040a6e: 60fb str r3, [r7, #12] + 80409d8: 687b ldr r3, [r7, #4] + 80409da: 60fb str r3, [r7, #12] if(label->dot_tmp_alloc && label->dot.tmp_ptr) { - 8040a70: 68fb ldr r3, [r7, #12] - 8040a72: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 - 8040a76: f003 0340 and.w r3, r3, #64 ; 0x40 - 8040a7a: b2db uxtb r3, r3 - 8040a7c: 2b00 cmp r3, #0 - 8040a7e: d008 beq.n 8040a92 - 8040a80: 68fb ldr r3, [r7, #12] - 8040a82: 6a9b ldr r3, [r3, #40] ; 0x28 - 8040a84: 2b00 cmp r3, #0 - 8040a86: d004 beq.n 8040a92 + 80409dc: 68fb ldr r3, [r7, #12] + 80409de: f893 3048 ldrb.w r3, [r3, #72] ; 0x48 + 80409e2: f003 0340 and.w r3, r3, #64 ; 0x40 + 80409e6: b2db uxtb r3, r3 + 80409e8: 2b00 cmp r3, #0 + 80409ea: d008 beq.n 80409fe + 80409ec: 68fb ldr r3, [r7, #12] + 80409ee: 6a9b ldr r3, [r3, #40] ; 0x28 + 80409f0: 2b00 cmp r3, #0 + 80409f2: d004 beq.n 80409fe lv_mem_free(label->dot.tmp_ptr); - 8040a88: 68fb ldr r3, [r7, #12] - 8040a8a: 6a9b ldr r3, [r3, #40] ; 0x28 - 8040a8c: 4618 mov r0, r3 - 8040a8e: f7f1 ff25 bl 80328dc + 80409f4: 68fb ldr r3, [r7, #12] + 80409f6: 6a9b ldr r3, [r3, #40] ; 0x28 + 80409f8: 4618 mov r0, r3 + 80409fa: f7f1 ff25 bl 8032848 } label->dot_tmp_alloc = false; - 8040a92: 68fa ldr r2, [r7, #12] - 8040a94: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 - 8040a98: f36f 1386 bfc r3, #6, #1 - 8040a9c: f882 3048 strb.w r3, [r2, #72] ; 0x48 + 80409fe: 68fa ldr r2, [r7, #12] + 8040a00: f892 3048 ldrb.w r3, [r2, #72] ; 0x48 + 8040a04: f36f 1386 bfc r3, #6, #1 + 8040a08: f882 3048 strb.w r3, [r2, #72] ; 0x48 label->dot.tmp_ptr = NULL; - 8040aa0: 68fb ldr r3, [r7, #12] - 8040aa2: 2200 movs r2, #0 - 8040aa4: 629a str r2, [r3, #40] ; 0x28 + 8040a0c: 68fb ldr r3, [r7, #12] + 8040a0e: 2200 movs r2, #0 + 8040a10: 629a str r2, [r3, #40] ; 0x28 } - 8040aa6: bf00 nop - 8040aa8: 3710 adds r7, #16 - 8040aaa: 46bd mov sp, r7 - 8040aac: bd80 pop {r7, pc} + 8040a12: bf00 nop + 8040a14: 3710 adds r7, #16 + 8040a16: 46bd mov sp, r7 + 8040a18: bd80 pop {r7, pc} -08040aae : +08040a1a : static void set_ofs_x_anim(void * obj, int32_t v) { - 8040aae: b580 push {r7, lr} - 8040ab0: b084 sub sp, #16 - 8040ab2: af00 add r7, sp, #0 - 8040ab4: 6078 str r0, [r7, #4] - 8040ab6: 6039 str r1, [r7, #0] + 8040a1a: b580 push {r7, lr} + 8040a1c: b084 sub sp, #16 + 8040a1e: af00 add r7, sp, #0 + 8040a20: 6078 str r0, [r7, #4] + 8040a22: 6039 str r1, [r7, #0] lv_label_t * label = (lv_label_t *)obj; - 8040ab8: 687b ldr r3, [r7, #4] - 8040aba: 60fb str r3, [r7, #12] + 8040a24: 687b ldr r3, [r7, #4] + 8040a26: 60fb str r3, [r7, #12] label->offset.x = v; - 8040abc: 683b ldr r3, [r7, #0] - 8040abe: b21a sxth r2, r3 - 8040ac0: 68fb ldr r3, [r7, #12] - 8040ac2: f8a3 2044 strh.w r2, [r3, #68] ; 0x44 + 8040a28: 683b ldr r3, [r7, #0] + 8040a2a: b21a sxth r2, r3 + 8040a2c: 68fb ldr r3, [r7, #12] + 8040a2e: f8a3 2044 strh.w r2, [r3, #68] ; 0x44 lv_obj_invalidate(obj); - 8040ac6: 6878 ldr r0, [r7, #4] - 8040ac8: f7c9 fff3 bl 800aab2 + 8040a32: 6878 ldr r0, [r7, #4] + 8040a34: f7ca f807 bl 800aa46 } - 8040acc: bf00 nop - 8040ace: 3710 adds r7, #16 - 8040ad0: 46bd mov sp, r7 - 8040ad2: bd80 pop {r7, pc} + 8040a38: bf00 nop + 8040a3a: 3710 adds r7, #16 + 8040a3c: 46bd mov sp, r7 + 8040a3e: bd80 pop {r7, pc} -08040ad4 : +08040a40 : static void set_ofs_y_anim(void * obj, int32_t v) { - 8040ad4: b580 push {r7, lr} - 8040ad6: b084 sub sp, #16 - 8040ad8: af00 add r7, sp, #0 - 8040ada: 6078 str r0, [r7, #4] - 8040adc: 6039 str r1, [r7, #0] + 8040a40: b580 push {r7, lr} + 8040a42: b084 sub sp, #16 + 8040a44: af00 add r7, sp, #0 + 8040a46: 6078 str r0, [r7, #4] + 8040a48: 6039 str r1, [r7, #0] lv_label_t * label = (lv_label_t *)obj; - 8040ade: 687b ldr r3, [r7, #4] - 8040ae0: 60fb str r3, [r7, #12] + 8040a4a: 687b ldr r3, [r7, #4] + 8040a4c: 60fb str r3, [r7, #12] label->offset.y = v; - 8040ae2: 683b ldr r3, [r7, #0] - 8040ae4: b21a sxth r2, r3 - 8040ae6: 68fb ldr r3, [r7, #12] - 8040ae8: f8a3 2046 strh.w r2, [r3, #70] ; 0x46 + 8040a4e: 683b ldr r3, [r7, #0] + 8040a50: b21a sxth r2, r3 + 8040a52: 68fb ldr r3, [r7, #12] + 8040a54: f8a3 2046 strh.w r2, [r3, #70] ; 0x46 lv_obj_invalidate(obj); - 8040aec: 6878 ldr r0, [r7, #4] - 8040aee: f7c9 ffe0 bl 800aab2 + 8040a58: 6878 ldr r0, [r7, #4] + 8040a5a: f7c9 fff4 bl 800aa46 } - 8040af2: bf00 nop - 8040af4: 3710 adds r7, #16 - 8040af6: 46bd mov sp, r7 - 8040af8: bd80 pop {r7, pc} + 8040a5e: bf00 nop + 8040a60: 3710 adds r7, #16 + 8040a62: 46bd mov sp, r7 + 8040a64: bd80 pop {r7, pc} -08040afa : +08040a66 : { - 8040afa: b580 push {r7, lr} - 8040afc: b084 sub sp, #16 - 8040afe: af00 add r7, sp, #0 - 8040b00: 6078 str r0, [r7, #4] - 8040b02: 6039 str r1, [r7, #0] + 8040a66: b580 push {r7, lr} + 8040a68: b084 sub sp, #16 + 8040a6a: af00 add r7, sp, #0 + 8040a6c: 6078 str r0, [r7, #4] + 8040a6e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_WIDTH); - 8040b04: f640 0249 movw r2, #2121 ; 0x849 - 8040b08: 6839 ldr r1, [r7, #0] - 8040b0a: 6878 ldr r0, [r7, #4] - 8040b0c: f7cd f950 bl 800ddb0 - 8040b10: 4603 mov r3, r0 - 8040b12: 60fb str r3, [r7, #12] + 8040a70: f640 0249 movw r2, #2121 ; 0x849 + 8040a74: 6839 ldr r1, [r7, #0] + 8040a76: 6878 ldr r0, [r7, #4] + 8040a78: f7cd f964 bl 800dd44 + 8040a7c: 4603 mov r3, r0 + 8040a7e: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8040b14: 68fb ldr r3, [r7, #12] - 8040b16: b21b sxth r3, r3 + 8040a80: 68fb ldr r3, [r7, #12] + 8040a82: b21b sxth r3, r3 } - 8040b18: 4618 mov r0, r3 - 8040b1a: 3710 adds r7, #16 - 8040b1c: 46bd mov sp, r7 - 8040b1e: bd80 pop {r7, pc} + 8040a84: 4618 mov r0, r3 + 8040a86: 3710 adds r7, #16 + 8040a88: 46bd mov sp, r7 + 8040a8a: bd80 pop {r7, pc} -08040b20 : +08040a8c : /********************** * STATIC FUNCTIONS **********************/ static void lv_line_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 8040b20: b580 push {r7, lr} - 8040b22: b084 sub sp, #16 - 8040b24: af00 add r7, sp, #0 - 8040b26: 6078 str r0, [r7, #4] - 8040b28: 6039 str r1, [r7, #0] + 8040a8c: b580 push {r7, lr} + 8040a8e: b084 sub sp, #16 + 8040a90: af00 add r7, sp, #0 + 8040a92: 6078 str r0, [r7, #4] + 8040a94: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_line_t * line = (lv_line_t *)obj; - 8040b2a: 683b ldr r3, [r7, #0] - 8040b2c: 60fb str r3, [r7, #12] + 8040a96: 683b ldr r3, [r7, #0] + 8040a98: 60fb str r3, [r7, #12] line->point_num = 0; - 8040b2e: 68fb ldr r3, [r7, #12] - 8040b30: 2200 movs r2, #0 - 8040b32: 851a strh r2, [r3, #40] ; 0x28 + 8040a9a: 68fb ldr r3, [r7, #12] + 8040a9c: 2200 movs r2, #0 + 8040a9e: 851a strh r2, [r3, #40] ; 0x28 line->point_array = NULL; - 8040b34: 68fb ldr r3, [r7, #12] - 8040b36: 2200 movs r2, #0 - 8040b38: 625a str r2, [r3, #36] ; 0x24 + 8040aa0: 68fb ldr r3, [r7, #12] + 8040aa2: 2200 movs r2, #0 + 8040aa4: 625a str r2, [r3, #36] ; 0x24 line->y_inv = 0; - 8040b3a: 68fa ldr r2, [r7, #12] - 8040b3c: f892 302a ldrb.w r3, [r2, #42] ; 0x2a - 8040b40: f36f 0300 bfc r3, #0, #1 - 8040b44: f882 302a strb.w r3, [r2, #42] ; 0x2a + 8040aa6: 68fa ldr r2, [r7, #12] + 8040aa8: f892 302a ldrb.w r3, [r2, #42] ; 0x2a + 8040aac: f36f 0300 bfc r3, #0, #1 + 8040ab0: f882 302a strb.w r3, [r2, #42] ; 0x2a lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE); - 8040b48: 2102 movs r1, #2 - 8040b4a: 6838 ldr r0, [r7, #0] - 8040b4c: f7c5 fd88 bl 8006660 + 8040ab4: 2102 movs r1, #2 + 8040ab6: 6838 ldr r0, [r7, #0] + 8040ab8: f7c5 fd9c bl 80065f4 LV_TRACE_OBJ_CREATE("finished"); } - 8040b50: bf00 nop - 8040b52: 3710 adds r7, #16 - 8040b54: 46bd mov sp, r7 - 8040b56: bd80 pop {r7, pc} + 8040abc: bf00 nop + 8040abe: 3710 adds r7, #16 + 8040ac0: 46bd mov sp, r7 + 8040ac2: bd80 pop {r7, pc} -08040b58 : +08040ac4 : static void lv_line_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 8040b58: b590 push {r4, r7, lr} - 8040b5a: b097 sub sp, #92 ; 0x5c - 8040b5c: af00 add r7, sp, #0 - 8040b5e: 6078 str r0, [r7, #4] - 8040b60: 6039 str r1, [r7, #0] + 8040ac4: b590 push {r4, r7, lr} + 8040ac6: b097 sub sp, #92 ; 0x5c + 8040ac8: af00 add r7, sp, #0 + 8040aca: 6078 str r0, [r7, #4] + 8040acc: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res; /*Call the ancestor's event handler*/ res = lv_obj_event_base(MY_CLASS, e); - 8040b62: 6839 ldr r1, [r7, #0] - 8040b64: 48ac ldr r0, [pc, #688] ; (8040e18 ) - 8040b66: f7c1 fccd bl 8002504 - 8040b6a: 4603 mov r3, r0 - 8040b6c: f887 304f strb.w r3, [r7, #79] ; 0x4f + 8040ace: 6839 ldr r1, [r7, #0] + 8040ad0: 48ac ldr r0, [pc, #688] ; (8040d84 ) + 8040ad2: f7c1 fce1 bl 8002498 + 8040ad6: 4603 mov r3, r0 + 8040ad8: f887 304f strb.w r3, [r7, #79] ; 0x4f if(res != LV_RES_OK) return; - 8040b70: f897 304f ldrb.w r3, [r7, #79] ; 0x4f - 8040b74: 2b01 cmp r3, #1 - 8040b76: f040 8149 bne.w 8040e0c + 8040adc: f897 304f ldrb.w r3, [r7, #79] ; 0x4f + 8040ae0: 2b01 cmp r3, #1 + 8040ae2: f040 8149 bne.w 8040d78 lv_event_code_t code = lv_event_get_code(e); - 8040b7a: 6838 ldr r0, [r7, #0] - 8040b7c: f7c1 fd16 bl 80025ac - 8040b80: 4603 mov r3, r0 - 8040b82: f887 304e strb.w r3, [r7, #78] ; 0x4e + 8040ae6: 6838 ldr r0, [r7, #0] + 8040ae8: f7c1 fd2a bl 8002540 + 8040aec: 4603 mov r3, r0 + 8040aee: f887 304e strb.w r3, [r7, #78] ; 0x4e lv_obj_t * obj = lv_event_get_target(e); - 8040b86: 6838 ldr r0, [r7, #0] - 8040b88: f7c1 fcfa bl 8002580 - 8040b8c: 64b8 str r0, [r7, #72] ; 0x48 + 8040af2: 6838 ldr r0, [r7, #0] + 8040af4: f7c1 fd0e bl 8002514 + 8040af8: 64b8 str r0, [r7, #72] ; 0x48 if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) { - 8040b8e: f897 304e ldrb.w r3, [r7, #78] ; 0x4e - 8040b92: 2b13 cmp r3, #19 - 8040b94: d115 bne.n 8040bc2 + 8040afa: f897 304e ldrb.w r3, [r7, #78] ; 0x4e + 8040afe: 2b13 cmp r3, #19 + 8040b00: d115 bne.n 8040b2e /*The corner of the skew lines is out of the intended area*/ lv_coord_t line_width = lv_obj_get_style_line_width(obj, LV_PART_MAIN); - 8040b96: 2100 movs r1, #0 - 8040b98: 6cb8 ldr r0, [r7, #72] ; 0x48 - 8040b9a: f7ff ffae bl 8040afa - 8040b9e: 4603 mov r3, r0 - 8040ba0: 85bb strh r3, [r7, #44] ; 0x2c + 8040b02: 2100 movs r1, #0 + 8040b04: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8040b06: f7ff ffae bl 8040a66 + 8040b0a: 4603 mov r3, r0 + 8040b0c: 85bb strh r3, [r7, #44] ; 0x2c lv_coord_t * s = lv_event_get_param(e); - 8040ba2: 6838 ldr r0, [r7, #0] - 8040ba4: f7c1 fd10 bl 80025c8 - 8040ba8: 62b8 str r0, [r7, #40] ; 0x28 + 8040b0e: 6838 ldr r0, [r7, #0] + 8040b10: f7c1 fd24 bl 800255c + 8040b14: 62b8 str r0, [r7, #40] ; 0x28 if(*s < line_width) *s = line_width; - 8040baa: 6abb ldr r3, [r7, #40] ; 0x28 - 8040bac: f9b3 3000 ldrsh.w r3, [r3] - 8040bb0: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c - 8040bb4: 429a cmp r2, r3 - 8040bb6: f340 812c ble.w 8040e12 - 8040bba: 6abb ldr r3, [r7, #40] ; 0x28 - 8040bbc: 8dba ldrh r2, [r7, #44] ; 0x2c - 8040bbe: 801a strh r2, [r3, #0] - 8040bc0: e127 b.n 8040e12 + 8040b16: 6abb ldr r3, [r7, #40] ; 0x28 + 8040b18: f9b3 3000 ldrsh.w r3, [r3] + 8040b1c: f9b7 202c ldrsh.w r2, [r7, #44] ; 0x2c + 8040b20: 429a cmp r2, r3 + 8040b22: f340 812c ble.w 8040d7e + 8040b26: 6abb ldr r3, [r7, #40] ; 0x28 + 8040b28: 8dba ldrh r2, [r7, #44] ; 0x2c + 8040b2a: 801a strh r2, [r3, #0] + 8040b2c: e127 b.n 8040d7e } else if(code == LV_EVENT_GET_SELF_SIZE) { - 8040bc2: f897 304e ldrb.w r3, [r7, #78] ; 0x4e - 8040bc6: 2b2c cmp r3, #44 ; 0x2c - 8040bc8: d15a bne.n 8040c80 + 8040b2e: f897 304e ldrb.w r3, [r7, #78] ; 0x4e + 8040b32: 2b2c cmp r3, #44 ; 0x2c + 8040b34: d15a bne.n 8040bec lv_line_t * line = (lv_line_t *)obj; - 8040bca: 6cbb ldr r3, [r7, #72] ; 0x48 - 8040bcc: 637b str r3, [r7, #52] ; 0x34 + 8040b36: 6cbb ldr r3, [r7, #72] ; 0x48 + 8040b38: 637b str r3, [r7, #52] ; 0x34 lv_point_t * p = lv_event_get_param(e); - 8040bce: 6838 ldr r0, [r7, #0] - 8040bd0: f7c1 fcfa bl 80025c8 - 8040bd4: 6338 str r0, [r7, #48] ; 0x30 + 8040b3a: 6838 ldr r0, [r7, #0] + 8040b3c: f7c1 fd0e bl 800255c + 8040b40: 6338 str r0, [r7, #48] ; 0x30 lv_coord_t w = 0; - 8040bd6: 2300 movs r3, #0 - 8040bd8: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 8040b42: 2300 movs r3, #0 + 8040b44: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 lv_coord_t h = 0; - 8040bdc: 2300 movs r3, #0 - 8040bde: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 + 8040b48: 2300 movs r3, #0 + 8040b4a: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 if(line->point_num > 0) { - 8040be2: 6b7b ldr r3, [r7, #52] ; 0x34 - 8040be4: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8040be6: 2b00 cmp r3, #0 - 8040be8: f000 8113 beq.w 8040e12 + 8040b4e: 6b7b ldr r3, [r7, #52] ; 0x34 + 8040b50: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8040b52: 2b00 cmp r3, #0 + 8040b54: f000 8113 beq.w 8040d7e uint16_t i; for(i = 0; i < line->point_num; i++) { - 8040bec: 2300 movs r3, #0 - 8040bee: f8a7 3052 strh.w r3, [r7, #82] ; 0x52 - 8040bf2: e022 b.n 8040c3a + 8040b58: 2300 movs r3, #0 + 8040b5a: f8a7 3052 strh.w r3, [r7, #82] ; 0x52 + 8040b5e: e022 b.n 8040ba6 w = LV_MAX(line->point_array[i].x, w); - 8040bf4: 6b7b ldr r3, [r7, #52] ; 0x34 - 8040bf6: 6a5a ldr r2, [r3, #36] ; 0x24 - 8040bf8: f8b7 3052 ldrh.w r3, [r7, #82] ; 0x52 - 8040bfc: 009b lsls r3, r3, #2 - 8040bfe: 4413 add r3, r2 - 8040c00: f9b3 3000 ldrsh.w r3, [r3] - 8040c04: f9b7 2056 ldrsh.w r2, [r7, #86] ; 0x56 - 8040c08: 4293 cmp r3, r2 - 8040c0a: bfb8 it lt - 8040c0c: 4613 movlt r3, r2 - 8040c0e: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 8040b60: 6b7b ldr r3, [r7, #52] ; 0x34 + 8040b62: 6a5a ldr r2, [r3, #36] ; 0x24 + 8040b64: f8b7 3052 ldrh.w r3, [r7, #82] ; 0x52 + 8040b68: 009b lsls r3, r3, #2 + 8040b6a: 4413 add r3, r2 + 8040b6c: f9b3 3000 ldrsh.w r3, [r3] + 8040b70: f9b7 2056 ldrsh.w r2, [r7, #86] ; 0x56 + 8040b74: 4293 cmp r3, r2 + 8040b76: bfb8 it lt + 8040b78: 4613 movlt r3, r2 + 8040b7a: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 h = LV_MAX(line->point_array[i].y, h); - 8040c12: 6b7b ldr r3, [r7, #52] ; 0x34 - 8040c14: 6a5a ldr r2, [r3, #36] ; 0x24 - 8040c16: f8b7 3052 ldrh.w r3, [r7, #82] ; 0x52 - 8040c1a: 009b lsls r3, r3, #2 - 8040c1c: 4413 add r3, r2 - 8040c1e: f9b3 3002 ldrsh.w r3, [r3, #2] - 8040c22: f9b7 2054 ldrsh.w r2, [r7, #84] ; 0x54 - 8040c26: 4293 cmp r3, r2 - 8040c28: bfb8 it lt - 8040c2a: 4613 movlt r3, r2 - 8040c2c: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 + 8040b7e: 6b7b ldr r3, [r7, #52] ; 0x34 + 8040b80: 6a5a ldr r2, [r3, #36] ; 0x24 + 8040b82: f8b7 3052 ldrh.w r3, [r7, #82] ; 0x52 + 8040b86: 009b lsls r3, r3, #2 + 8040b88: 4413 add r3, r2 + 8040b8a: f9b3 3002 ldrsh.w r3, [r3, #2] + 8040b8e: f9b7 2054 ldrsh.w r2, [r7, #84] ; 0x54 + 8040b92: 4293 cmp r3, r2 + 8040b94: bfb8 it lt + 8040b96: 4613 movlt r3, r2 + 8040b98: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 for(i = 0; i < line->point_num; i++) { - 8040c30: f8b7 3052 ldrh.w r3, [r7, #82] ; 0x52 - 8040c34: 3301 adds r3, #1 - 8040c36: f8a7 3052 strh.w r3, [r7, #82] ; 0x52 - 8040c3a: 6b7b ldr r3, [r7, #52] ; 0x34 - 8040c3c: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8040c3e: f8b7 2052 ldrh.w r2, [r7, #82] ; 0x52 - 8040c42: 429a cmp r2, r3 - 8040c44: d3d6 bcc.n 8040bf4 + 8040b9c: f8b7 3052 ldrh.w r3, [r7, #82] ; 0x52 + 8040ba0: 3301 adds r3, #1 + 8040ba2: f8a7 3052 strh.w r3, [r7, #82] ; 0x52 + 8040ba6: 6b7b ldr r3, [r7, #52] ; 0x34 + 8040ba8: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8040baa: f8b7 2052 ldrh.w r2, [r7, #82] ; 0x52 + 8040bae: 429a cmp r2, r3 + 8040bb0: d3d6 bcc.n 8040b60 } lv_coord_t line_width = lv_obj_get_style_line_width(obj, LV_PART_MAIN); - 8040c46: 2100 movs r1, #0 - 8040c48: 6cb8 ldr r0, [r7, #72] ; 0x48 - 8040c4a: f7ff ff56 bl 8040afa - 8040c4e: 4603 mov r3, r0 - 8040c50: 85fb strh r3, [r7, #46] ; 0x2e + 8040bb2: 2100 movs r1, #0 + 8040bb4: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8040bb6: f7ff ff56 bl 8040a66 + 8040bba: 4603 mov r3, r0 + 8040bbc: 85fb strh r3, [r7, #46] ; 0x2e w += line_width; - 8040c52: f8b7 2056 ldrh.w r2, [r7, #86] ; 0x56 - 8040c56: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8040c58: 4413 add r3, r2 - 8040c5a: b29b uxth r3, r3 - 8040c5c: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 8040bbe: f8b7 2056 ldrh.w r2, [r7, #86] ; 0x56 + 8040bc2: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8040bc4: 4413 add r3, r2 + 8040bc6: b29b uxth r3, r3 + 8040bc8: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 h += line_width; - 8040c60: f8b7 2054 ldrh.w r2, [r7, #84] ; 0x54 - 8040c64: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8040c66: 4413 add r3, r2 - 8040c68: b29b uxth r3, r3 - 8040c6a: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 + 8040bcc: f8b7 2054 ldrh.w r2, [r7, #84] ; 0x54 + 8040bd0: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8040bd2: 4413 add r3, r2 + 8040bd4: b29b uxth r3, r3 + 8040bd6: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 p->x = w; - 8040c6e: 6b3b ldr r3, [r7, #48] ; 0x30 - 8040c70: f8b7 2056 ldrh.w r2, [r7, #86] ; 0x56 - 8040c74: 801a strh r2, [r3, #0] + 8040bda: 6b3b ldr r3, [r7, #48] ; 0x30 + 8040bdc: f8b7 2056 ldrh.w r2, [r7, #86] ; 0x56 + 8040be0: 801a strh r2, [r3, #0] p->y = h; - 8040c76: 6b3b ldr r3, [r7, #48] ; 0x30 - 8040c78: f8b7 2054 ldrh.w r2, [r7, #84] ; 0x54 - 8040c7c: 805a strh r2, [r3, #2] - 8040c7e: e0c8 b.n 8040e12 + 8040be2: 6b3b ldr r3, [r7, #48] ; 0x30 + 8040be4: f8b7 2054 ldrh.w r2, [r7, #84] ; 0x54 + 8040be8: 805a strh r2, [r3, #2] + 8040bea: e0c8 b.n 8040d7e } } else if(code == LV_EVENT_DRAW_MAIN) { - 8040c80: f897 304e ldrb.w r3, [r7, #78] ; 0x4e - 8040c84: 2b15 cmp r3, #21 - 8040c86: f040 80c4 bne.w 8040e12 + 8040bec: f897 304e ldrb.w r3, [r7, #78] ; 0x4e + 8040bf0: 2b15 cmp r3, #21 + 8040bf2: f040 80c4 bne.w 8040d7e lv_line_t * line = (lv_line_t *)obj; - 8040c8a: 6cbb ldr r3, [r7, #72] ; 0x48 - 8040c8c: 647b str r3, [r7, #68] ; 0x44 + 8040bf6: 6cbb ldr r3, [r7, #72] ; 0x48 + 8040bf8: 647b str r3, [r7, #68] ; 0x44 lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 8040c8e: 6838 ldr r0, [r7, #0] - 8040c90: f7c1 fd8c bl 80027ac - 8040c94: 6438 str r0, [r7, #64] ; 0x40 + 8040bfa: 6838 ldr r0, [r7, #0] + 8040bfc: f7c1 fda0 bl 8002740 + 8040c00: 6438 str r0, [r7, #64] ; 0x40 if(line->point_num == 0 || line->point_array == NULL) return; - 8040c96: 6c7b ldr r3, [r7, #68] ; 0x44 - 8040c98: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8040c9a: 2b00 cmp r3, #0 - 8040c9c: f000 80b8 beq.w 8040e10 - 8040ca0: 6c7b ldr r3, [r7, #68] ; 0x44 - 8040ca2: 6a5b ldr r3, [r3, #36] ; 0x24 - 8040ca4: 2b00 cmp r3, #0 - 8040ca6: f000 80b3 beq.w 8040e10 + 8040c02: 6c7b ldr r3, [r7, #68] ; 0x44 + 8040c04: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8040c06: 2b00 cmp r3, #0 + 8040c08: f000 80b8 beq.w 8040d7c + 8040c0c: 6c7b ldr r3, [r7, #68] ; 0x44 + 8040c0e: 6a5b ldr r3, [r3, #36] ; 0x24 + 8040c10: 2b00 cmp r3, #0 + 8040c12: f000 80b3 beq.w 8040d7c lv_area_t area; lv_obj_get_coords(obj, &area); - 8040caa: f107 0320 add.w r3, r7, #32 - 8040cae: 4619 mov r1, r3 - 8040cb0: 6cb8 ldr r0, [r7, #72] ; 0x48 - 8040cb2: f7c9 f9ab bl 800a00c + 8040c16: f107 0320 add.w r3, r7, #32 + 8040c1a: 4619 mov r1, r3 + 8040c1c: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8040c1e: f7c9 f9bf bl 8009fa0 lv_coord_t x_ofs = area.x1 - lv_obj_get_scroll_x(obj); - 8040cb6: f9b7 3020 ldrsh.w r3, [r7, #32] - 8040cba: b29c uxth r4, r3 - 8040cbc: 6cb8 ldr r0, [r7, #72] ; 0x48 - 8040cbe: f7ca fe57 bl 800b970 - 8040cc2: 4603 mov r3, r0 - 8040cc4: b29b uxth r3, r3 - 8040cc6: 1ae3 subs r3, r4, r3 - 8040cc8: b29b uxth r3, r3 - 8040cca: 87fb strh r3, [r7, #62] ; 0x3e + 8040c22: f9b7 3020 ldrsh.w r3, [r7, #32] + 8040c26: b29c uxth r4, r3 + 8040c28: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8040c2a: f7ca fe6b bl 800b904 + 8040c2e: 4603 mov r3, r0 + 8040c30: b29b uxth r3, r3 + 8040c32: 1ae3 subs r3, r4, r3 + 8040c34: b29b uxth r3, r3 + 8040c36: 87fb strh r3, [r7, #62] ; 0x3e lv_coord_t y_ofs = area.y1 - lv_obj_get_scroll_y(obj); - 8040ccc: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 8040cd0: b29c uxth r4, r3 - 8040cd2: 6cb8 ldr r0, [r7, #72] ; 0x48 - 8040cd4: f7ca fe63 bl 800b99e - 8040cd8: 4603 mov r3, r0 - 8040cda: b29b uxth r3, r3 - 8040cdc: 1ae3 subs r3, r4, r3 - 8040cde: b29b uxth r3, r3 - 8040ce0: 87bb strh r3, [r7, #60] ; 0x3c + 8040c38: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 8040c3c: b29c uxth r4, r3 + 8040c3e: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8040c40: f7ca fe77 bl 800b932 + 8040c44: 4603 mov r3, r0 + 8040c46: b29b uxth r3, r3 + 8040c48: 1ae3 subs r3, r4, r3 + 8040c4a: b29b uxth r3, r3 + 8040c4c: 87bb strh r3, [r7, #60] ; 0x3c lv_point_t p1; lv_point_t p2; lv_coord_t h = lv_obj_get_height(obj); - 8040ce2: 6cb8 ldr r0, [r7, #72] ; 0x48 - 8040ce4: f7c9 fa3e bl 800a164 - 8040ce8: 4603 mov r3, r0 - 8040cea: 877b strh r3, [r7, #58] ; 0x3a + 8040c4e: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8040c50: f7c9 fa52 bl 800a0f8 + 8040c54: 4603 mov r3, r0 + 8040c56: 877b strh r3, [r7, #58] ; 0x3a uint16_t i; lv_draw_line_dsc_t line_dsc; lv_draw_line_dsc_init(&line_dsc); - 8040cec: f107 030c add.w r3, r7, #12 - 8040cf0: 4618 mov r0, r3 - 8040cf2: f7d2 f928 bl 8012f46 + 8040c58: f107 030c add.w r3, r7, #12 + 8040c5c: 4618 mov r0, r3 + 8040c5e: f7d2 f928 bl 8012eb2 lv_obj_init_draw_line_dsc(obj, LV_PART_MAIN, &line_dsc); - 8040cf6: f107 030c add.w r3, r7, #12 - 8040cfa: 461a mov r2, r3 - 8040cfc: 2100 movs r1, #0 - 8040cfe: 6cb8 ldr r0, [r7, #72] ; 0x48 - 8040d00: f7c7 ff32 bl 8008b68 + 8040c62: f107 030c add.w r3, r7, #12 + 8040c66: 461a mov r2, r3 + 8040c68: 2100 movs r1, #0 + 8040c6a: 6cb8 ldr r0, [r7, #72] ; 0x48 + 8040c6c: f7c7 ff46 bl 8008afc /*Read all points and draw the lines*/ for(i = 0; i < line->point_num - 1; i++) { - 8040d04: 2300 movs r3, #0 - 8040d06: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 - 8040d0a: e077 b.n 8040dfc + 8040c70: 2300 movs r3, #0 + 8040c72: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 + 8040c76: e077 b.n 8040d68 p1.x = line->point_array[i].x + x_ofs; - 8040d0c: 6c7b ldr r3, [r7, #68] ; 0x44 - 8040d0e: 6a5a ldr r2, [r3, #36] ; 0x24 - 8040d10: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 - 8040d14: 009b lsls r3, r3, #2 - 8040d16: 4413 add r3, r2 - 8040d18: f9b3 3000 ldrsh.w r3, [r3] - 8040d1c: b29a uxth r2, r3 - 8040d1e: 8ffb ldrh r3, [r7, #62] ; 0x3e - 8040d20: 4413 add r3, r2 - 8040d22: b29b uxth r3, r3 - 8040d24: b21b sxth r3, r3 - 8040d26: 83bb strh r3, [r7, #28] + 8040c78: 6c7b ldr r3, [r7, #68] ; 0x44 + 8040c7a: 6a5a ldr r2, [r3, #36] ; 0x24 + 8040c7c: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 + 8040c80: 009b lsls r3, r3, #2 + 8040c82: 4413 add r3, r2 + 8040c84: f9b3 3000 ldrsh.w r3, [r3] + 8040c88: b29a uxth r2, r3 + 8040c8a: 8ffb ldrh r3, [r7, #62] ; 0x3e + 8040c8c: 4413 add r3, r2 + 8040c8e: b29b uxth r3, r3 + 8040c90: b21b sxth r3, r3 + 8040c92: 83bb strh r3, [r7, #28] p2.x = line->point_array[i + 1].x + x_ofs; - 8040d28: 6c7b ldr r3, [r7, #68] ; 0x44 - 8040d2a: 6a5a ldr r2, [r3, #36] ; 0x24 - 8040d2c: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 - 8040d30: 3301 adds r3, #1 - 8040d32: 009b lsls r3, r3, #2 - 8040d34: 4413 add r3, r2 - 8040d36: f9b3 3000 ldrsh.w r3, [r3] - 8040d3a: b29a uxth r2, r3 - 8040d3c: 8ffb ldrh r3, [r7, #62] ; 0x3e - 8040d3e: 4413 add r3, r2 - 8040d40: b29b uxth r3, r3 - 8040d42: b21b sxth r3, r3 - 8040d44: 833b strh r3, [r7, #24] + 8040c94: 6c7b ldr r3, [r7, #68] ; 0x44 + 8040c96: 6a5a ldr r2, [r3, #36] ; 0x24 + 8040c98: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 + 8040c9c: 3301 adds r3, #1 + 8040c9e: 009b lsls r3, r3, #2 + 8040ca0: 4413 add r3, r2 + 8040ca2: f9b3 3000 ldrsh.w r3, [r3] + 8040ca6: b29a uxth r2, r3 + 8040ca8: 8ffb ldrh r3, [r7, #62] ; 0x3e + 8040caa: 4413 add r3, r2 + 8040cac: b29b uxth r3, r3 + 8040cae: b21b sxth r3, r3 + 8040cb0: 833b strh r3, [r7, #24] if(line->y_inv == 0) { - 8040d46: 6c7b ldr r3, [r7, #68] ; 0x44 - 8040d48: f893 302a ldrb.w r3, [r3, #42] ; 0x2a - 8040d4c: f003 0301 and.w r3, r3, #1 - 8040d50: b2db uxtb r3, r3 - 8040d52: 2b00 cmp r3, #0 - 8040d54: d11d bne.n 8040d92 + 8040cb2: 6c7b ldr r3, [r7, #68] ; 0x44 + 8040cb4: f893 302a ldrb.w r3, [r3, #42] ; 0x2a + 8040cb8: f003 0301 and.w r3, r3, #1 + 8040cbc: b2db uxtb r3, r3 + 8040cbe: 2b00 cmp r3, #0 + 8040cc0: d11d bne.n 8040cfe p1.y = line->point_array[i].y + y_ofs; - 8040d56: 6c7b ldr r3, [r7, #68] ; 0x44 - 8040d58: 6a5a ldr r2, [r3, #36] ; 0x24 - 8040d5a: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 - 8040d5e: 009b lsls r3, r3, #2 - 8040d60: 4413 add r3, r2 - 8040d62: f9b3 3002 ldrsh.w r3, [r3, #2] - 8040d66: b29a uxth r2, r3 - 8040d68: 8fbb ldrh r3, [r7, #60] ; 0x3c - 8040d6a: 4413 add r3, r2 - 8040d6c: b29b uxth r3, r3 - 8040d6e: b21b sxth r3, r3 - 8040d70: 83fb strh r3, [r7, #30] + 8040cc2: 6c7b ldr r3, [r7, #68] ; 0x44 + 8040cc4: 6a5a ldr r2, [r3, #36] ; 0x24 + 8040cc6: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 + 8040cca: 009b lsls r3, r3, #2 + 8040ccc: 4413 add r3, r2 + 8040cce: f9b3 3002 ldrsh.w r3, [r3, #2] + 8040cd2: b29a uxth r2, r3 + 8040cd4: 8fbb ldrh r3, [r7, #60] ; 0x3c + 8040cd6: 4413 add r3, r2 + 8040cd8: b29b uxth r3, r3 + 8040cda: b21b sxth r3, r3 + 8040cdc: 83fb strh r3, [r7, #30] p2.y = line->point_array[i + 1].y + y_ofs; - 8040d72: 6c7b ldr r3, [r7, #68] ; 0x44 - 8040d74: 6a5a ldr r2, [r3, #36] ; 0x24 - 8040d76: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 - 8040d7a: 3301 adds r3, #1 - 8040d7c: 009b lsls r3, r3, #2 - 8040d7e: 4413 add r3, r2 - 8040d80: f9b3 3002 ldrsh.w r3, [r3, #2] - 8040d84: b29a uxth r2, r3 - 8040d86: 8fbb ldrh r3, [r7, #60] ; 0x3c - 8040d88: 4413 add r3, r2 - 8040d8a: b29b uxth r3, r3 - 8040d8c: b21b sxth r3, r3 - 8040d8e: 837b strh r3, [r7, #26] - 8040d90: e022 b.n 8040dd8 + 8040cde: 6c7b ldr r3, [r7, #68] ; 0x44 + 8040ce0: 6a5a ldr r2, [r3, #36] ; 0x24 + 8040ce2: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 + 8040ce6: 3301 adds r3, #1 + 8040ce8: 009b lsls r3, r3, #2 + 8040cea: 4413 add r3, r2 + 8040cec: f9b3 3002 ldrsh.w r3, [r3, #2] + 8040cf0: b29a uxth r2, r3 + 8040cf2: 8fbb ldrh r3, [r7, #60] ; 0x3c + 8040cf4: 4413 add r3, r2 + 8040cf6: b29b uxth r3, r3 + 8040cf8: b21b sxth r3, r3 + 8040cfa: 837b strh r3, [r7, #26] + 8040cfc: e022 b.n 8040d44 } else { p1.y = h - line->point_array[i].y + y_ofs; - 8040d92: 8f7a ldrh r2, [r7, #58] ; 0x3a - 8040d94: 6c7b ldr r3, [r7, #68] ; 0x44 - 8040d96: 6a59 ldr r1, [r3, #36] ; 0x24 - 8040d98: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 - 8040d9c: 009b lsls r3, r3, #2 - 8040d9e: 440b add r3, r1 - 8040da0: f9b3 3002 ldrsh.w r3, [r3, #2] - 8040da4: b29b uxth r3, r3 - 8040da6: 1ad3 subs r3, r2, r3 - 8040da8: b29a uxth r2, r3 - 8040daa: 8fbb ldrh r3, [r7, #60] ; 0x3c - 8040dac: 4413 add r3, r2 - 8040dae: b29b uxth r3, r3 - 8040db0: b21b sxth r3, r3 - 8040db2: 83fb strh r3, [r7, #30] + 8040cfe: 8f7a ldrh r2, [r7, #58] ; 0x3a + 8040d00: 6c7b ldr r3, [r7, #68] ; 0x44 + 8040d02: 6a59 ldr r1, [r3, #36] ; 0x24 + 8040d04: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 + 8040d08: 009b lsls r3, r3, #2 + 8040d0a: 440b add r3, r1 + 8040d0c: f9b3 3002 ldrsh.w r3, [r3, #2] + 8040d10: b29b uxth r3, r3 + 8040d12: 1ad3 subs r3, r2, r3 + 8040d14: b29a uxth r2, r3 + 8040d16: 8fbb ldrh r3, [r7, #60] ; 0x3c + 8040d18: 4413 add r3, r2 + 8040d1a: b29b uxth r3, r3 + 8040d1c: b21b sxth r3, r3 + 8040d1e: 83fb strh r3, [r7, #30] p2.y = h - line->point_array[i + 1].y + y_ofs; - 8040db4: 8f7a ldrh r2, [r7, #58] ; 0x3a - 8040db6: 6c7b ldr r3, [r7, #68] ; 0x44 - 8040db8: 6a59 ldr r1, [r3, #36] ; 0x24 - 8040dba: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 - 8040dbe: 3301 adds r3, #1 - 8040dc0: 009b lsls r3, r3, #2 - 8040dc2: 440b add r3, r1 - 8040dc4: f9b3 3002 ldrsh.w r3, [r3, #2] - 8040dc8: b29b uxth r3, r3 - 8040dca: 1ad3 subs r3, r2, r3 - 8040dcc: b29a uxth r2, r3 - 8040dce: 8fbb ldrh r3, [r7, #60] ; 0x3c - 8040dd0: 4413 add r3, r2 - 8040dd2: b29b uxth r3, r3 - 8040dd4: b21b sxth r3, r3 - 8040dd6: 837b strh r3, [r7, #26] + 8040d20: 8f7a ldrh r2, [r7, #58] ; 0x3a + 8040d22: 6c7b ldr r3, [r7, #68] ; 0x44 + 8040d24: 6a59 ldr r1, [r3, #36] ; 0x24 + 8040d26: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 + 8040d2a: 3301 adds r3, #1 + 8040d2c: 009b lsls r3, r3, #2 + 8040d2e: 440b add r3, r1 + 8040d30: f9b3 3002 ldrsh.w r3, [r3, #2] + 8040d34: b29b uxth r3, r3 + 8040d36: 1ad3 subs r3, r2, r3 + 8040d38: b29a uxth r2, r3 + 8040d3a: 8fbb ldrh r3, [r7, #60] ; 0x3c + 8040d3c: 4413 add r3, r2 + 8040d3e: b29b uxth r3, r3 + 8040d40: b21b sxth r3, r3 + 8040d42: 837b strh r3, [r7, #26] } lv_draw_line(draw_ctx, &line_dsc, &p1, &p2); - 8040dd8: f107 0318 add.w r3, r7, #24 - 8040ddc: f107 021c add.w r2, r7, #28 - 8040de0: f107 010c add.w r1, r7, #12 - 8040de4: 6c38 ldr r0, [r7, #64] ; 0x40 - 8040de6: f7d2 f8c4 bl 8012f72 + 8040d44: f107 0318 add.w r3, r7, #24 + 8040d48: f107 021c add.w r2, r7, #28 + 8040d4c: f107 010c add.w r1, r7, #12 + 8040d50: 6c38 ldr r0, [r7, #64] ; 0x40 + 8040d52: f7d2 f8c4 bl 8012ede line_dsc.round_start = 0; /*Draw the rounding only on the end points after the first line*/ - 8040dea: 7d7b ldrb r3, [r7, #21] - 8040dec: f36f 0382 bfc r3, #2, #1 - 8040df0: 757b strb r3, [r7, #21] + 8040d56: 7d7b ldrb r3, [r7, #21] + 8040d58: f36f 0382 bfc r3, #2, #1 + 8040d5c: 757b strb r3, [r7, #21] for(i = 0; i < line->point_num - 1; i++) { - 8040df2: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 - 8040df6: 3301 adds r3, #1 - 8040df8: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 - 8040dfc: f8b7 2050 ldrh.w r2, [r7, #80] ; 0x50 - 8040e00: 6c7b ldr r3, [r7, #68] ; 0x44 - 8040e02: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8040e04: 3b01 subs r3, #1 - 8040e06: 429a cmp r2, r3 - 8040e08: db80 blt.n 8040d0c - 8040e0a: e002 b.n 8040e12 + 8040d5e: f8b7 3050 ldrh.w r3, [r7, #80] ; 0x50 + 8040d62: 3301 adds r3, #1 + 8040d64: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 + 8040d68: f8b7 2050 ldrh.w r2, [r7, #80] ; 0x50 + 8040d6c: 6c7b ldr r3, [r7, #68] ; 0x44 + 8040d6e: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8040d70: 3b01 subs r3, #1 + 8040d72: 429a cmp r2, r3 + 8040d74: db80 blt.n 8040c78 + 8040d76: e002 b.n 8040d7e if(res != LV_RES_OK) return; - 8040e0c: bf00 nop - 8040e0e: e000 b.n 8040e12 + 8040d78: bf00 nop + 8040d7a: e000 b.n 8040d7e if(line->point_num == 0 || line->point_array == NULL) return; - 8040e10: bf00 nop + 8040d7c: bf00 nop } } } - 8040e12: 375c adds r7, #92 ; 0x5c - 8040e14: 46bd mov sp, r7 - 8040e16: bd90 pop {r4, r7, pc} - 8040e18: 08070aa8 .word 0x08070aa8 + 8040d7e: 375c adds r7, #92 ; 0x5c + 8040d80: 46bd mov sp, r7 + 8040d82: bd90 pop {r4, r7, pc} + 8040d84: 08070a00 .word 0x08070a00 -08040e1c : +08040d88 : { - 8040e1c: b480 push {r7} - 8040e1e: b083 sub sp, #12 - 8040e20: af00 add r7, sp, #0 - 8040e22: 6078 str r0, [r7, #4] + 8040d88: b480 push {r7} + 8040d8a: b083 sub sp, #12 + 8040d8c: af00 add r7, sp, #0 + 8040d8e: 6078 str r0, [r7, #4] return font_p->line_height; - 8040e24: 687b ldr r3, [r7, #4] - 8040e26: f9b3 3008 ldrsh.w r3, [r3, #8] + 8040d90: 687b ldr r3, [r7, #4] + 8040d92: f9b3 3008 ldrsh.w r3, [r3, #8] } - 8040e2a: 4618 mov r0, r3 - 8040e2c: 370c adds r7, #12 - 8040e2e: 46bd mov sp, r7 - 8040e30: bc80 pop {r7} - 8040e32: 4770 bx lr + 8040d96: 4618 mov r0, r3 + 8040d98: 370c adds r7, #12 + 8040d9a: 46bd mov sp, r7 + 8040d9c: bc80 pop {r7} + 8040d9e: 4770 bx lr -08040e34 : +08040da0 : { - 8040e34: b480 push {r7} - 8040e36: b083 sub sp, #12 - 8040e38: af00 add r7, sp, #0 - 8040e3a: 6078 str r0, [r7, #4] - 8040e3c: 6039 str r1, [r7, #0] + 8040da0: b480 push {r7} + 8040da2: b083 sub sp, #12 + 8040da4: af00 add r7, sp, #0 + 8040da6: 6078 str r0, [r7, #4] + 8040da8: 6039 str r1, [r7, #0] a->var = var; - 8040e3e: 687b ldr r3, [r7, #4] - 8040e40: 683a ldr r2, [r7, #0] - 8040e42: 601a str r2, [r3, #0] + 8040daa: 687b ldr r3, [r7, #4] + 8040dac: 683a ldr r2, [r7, #0] + 8040dae: 601a str r2, [r3, #0] } - 8040e44: bf00 nop - 8040e46: 370c adds r7, #12 - 8040e48: 46bd mov sp, r7 - 8040e4a: bc80 pop {r7} - 8040e4c: 4770 bx lr + 8040db0: bf00 nop + 8040db2: 370c adds r7, #12 + 8040db4: 46bd mov sp, r7 + 8040db6: bc80 pop {r7} + 8040db8: 4770 bx lr -08040e4e : +08040dba : { - 8040e4e: b480 push {r7} - 8040e50: b083 sub sp, #12 - 8040e52: af00 add r7, sp, #0 - 8040e54: 6078 str r0, [r7, #4] - 8040e56: 6039 str r1, [r7, #0] + 8040dba: b480 push {r7} + 8040dbc: b083 sub sp, #12 + 8040dbe: af00 add r7, sp, #0 + 8040dc0: 6078 str r0, [r7, #4] + 8040dc2: 6039 str r1, [r7, #0] a->exec_cb = exec_cb; - 8040e58: 687b ldr r3, [r7, #4] - 8040e5a: 683a ldr r2, [r7, #0] - 8040e5c: 605a str r2, [r3, #4] + 8040dc4: 687b ldr r3, [r7, #4] + 8040dc6: 683a ldr r2, [r7, #0] + 8040dc8: 605a str r2, [r3, #4] } - 8040e5e: bf00 nop - 8040e60: 370c adds r7, #12 - 8040e62: 46bd mov sp, r7 - 8040e64: bc80 pop {r7} - 8040e66: 4770 bx lr + 8040dca: bf00 nop + 8040dcc: 370c adds r7, #12 + 8040dce: 46bd mov sp, r7 + 8040dd0: bc80 pop {r7} + 8040dd2: 4770 bx lr -08040e68 : +08040dd4 : { - 8040e68: b480 push {r7} - 8040e6a: b083 sub sp, #12 - 8040e6c: af00 add r7, sp, #0 - 8040e6e: 6078 str r0, [r7, #4] - 8040e70: 6039 str r1, [r7, #0] + 8040dd4: b480 push {r7} + 8040dd6: b083 sub sp, #12 + 8040dd8: af00 add r7, sp, #0 + 8040dda: 6078 str r0, [r7, #4] + 8040ddc: 6039 str r1, [r7, #0] a->time = duration; - 8040e72: 683a ldr r2, [r7, #0] - 8040e74: 687b ldr r3, [r7, #4] - 8040e76: 629a str r2, [r3, #40] ; 0x28 + 8040dde: 683a ldr r2, [r7, #0] + 8040de0: 687b ldr r3, [r7, #4] + 8040de2: 629a str r2, [r3, #40] ; 0x28 } - 8040e78: bf00 nop - 8040e7a: 370c adds r7, #12 - 8040e7c: 46bd mov sp, r7 - 8040e7e: bc80 pop {r7} - 8040e80: 4770 bx lr + 8040de4: bf00 nop + 8040de6: 370c adds r7, #12 + 8040de8: 46bd mov sp, r7 + 8040dea: bc80 pop {r7} + 8040dec: 4770 bx lr -08040e82 : +08040dee : { - 8040e82: b480 push {r7} - 8040e84: b085 sub sp, #20 - 8040e86: af00 add r7, sp, #0 - 8040e88: 60f8 str r0, [r7, #12] - 8040e8a: 60b9 str r1, [r7, #8] - 8040e8c: 607a str r2, [r7, #4] + 8040dee: b480 push {r7} + 8040df0: b085 sub sp, #20 + 8040df2: af00 add r7, sp, #0 + 8040df4: 60f8 str r0, [r7, #12] + 8040df6: 60b9 str r1, [r7, #8] + 8040df8: 607a str r2, [r7, #4] a->start_value = start; - 8040e8e: 68fb ldr r3, [r7, #12] - 8040e90: 68ba ldr r2, [r7, #8] - 8040e92: 61da str r2, [r3, #28] + 8040dfa: 68fb ldr r3, [r7, #12] + 8040dfc: 68ba ldr r2, [r7, #8] + 8040dfe: 61da str r2, [r3, #28] a->current_value = start; - 8040e94: 68fb ldr r3, [r7, #12] - 8040e96: 68ba ldr r2, [r7, #8] - 8040e98: 621a str r2, [r3, #32] + 8040e00: 68fb ldr r3, [r7, #12] + 8040e02: 68ba ldr r2, [r7, #8] + 8040e04: 621a str r2, [r3, #32] a->end_value = end; - 8040e9a: 68fb ldr r3, [r7, #12] - 8040e9c: 687a ldr r2, [r7, #4] - 8040e9e: 625a str r2, [r3, #36] ; 0x24 + 8040e06: 68fb ldr r3, [r7, #12] + 8040e08: 687a ldr r2, [r7, #4] + 8040e0a: 625a str r2, [r3, #36] ; 0x24 } - 8040ea0: bf00 nop - 8040ea2: 3714 adds r7, #20 - 8040ea4: 46bd mov sp, r7 - 8040ea6: bc80 pop {r7} - 8040ea8: 4770 bx lr + 8040e0c: bf00 nop + 8040e0e: 3714 adds r7, #20 + 8040e10: 46bd mov sp, r7 + 8040e12: bc80 pop {r7} + 8040e14: 4770 bx lr -08040eaa : +08040e16 : { - 8040eaa: b480 push {r7} - 8040eac: b083 sub sp, #12 - 8040eae: af00 add r7, sp, #0 - 8040eb0: 6078 str r0, [r7, #4] - 8040eb2: 6039 str r1, [r7, #0] + 8040e16: b480 push {r7} + 8040e18: b083 sub sp, #12 + 8040e1a: af00 add r7, sp, #0 + 8040e1c: 6078 str r0, [r7, #4] + 8040e1e: 6039 str r1, [r7, #0] a->path_cb = path_cb; - 8040eb4: 687b ldr r3, [r7, #4] - 8040eb6: 683a ldr r2, [r7, #0] - 8040eb8: 619a str r2, [r3, #24] + 8040e20: 687b ldr r3, [r7, #4] + 8040e22: 683a ldr r2, [r7, #0] + 8040e24: 619a str r2, [r3, #24] } - 8040eba: bf00 nop - 8040ebc: 370c adds r7, #12 - 8040ebe: 46bd mov sp, r7 - 8040ec0: bc80 pop {r7} - 8040ec2: 4770 bx lr + 8040e26: bf00 nop + 8040e28: 370c adds r7, #12 + 8040e2a: 46bd mov sp, r7 + 8040e2c: bc80 pop {r7} + 8040e2e: 4770 bx lr -08040ec4 : +08040e30 : { - 8040ec4: b480 push {r7} - 8040ec6: b083 sub sp, #12 - 8040ec8: af00 add r7, sp, #0 - 8040eca: 6078 str r0, [r7, #4] - 8040ecc: 6039 str r1, [r7, #0] + 8040e30: b480 push {r7} + 8040e32: b083 sub sp, #12 + 8040e34: af00 add r7, sp, #0 + 8040e36: 6078 str r0, [r7, #4] + 8040e38: 6039 str r1, [r7, #0] a->ready_cb = ready_cb; - 8040ece: 687b ldr r3, [r7, #4] - 8040ed0: 683a ldr r2, [r7, #0] - 8040ed2: 60da str r2, [r3, #12] + 8040e3a: 687b ldr r3, [r7, #4] + 8040e3c: 683a ldr r2, [r7, #0] + 8040e3e: 60da str r2, [r3, #12] } - 8040ed4: bf00 nop - 8040ed6: 370c adds r7, #12 - 8040ed8: 46bd mov sp, r7 - 8040eda: bc80 pop {r7} - 8040edc: 4770 bx lr + 8040e40: bf00 nop + 8040e42: 370c adds r7, #12 + 8040e44: 46bd mov sp, r7 + 8040e46: bc80 pop {r7} + 8040e48: 4770 bx lr -08040ede : +08040e4a : { - 8040ede: b580 push {r7, lr} - 8040ee0: b084 sub sp, #16 - 8040ee2: af00 add r7, sp, #0 - 8040ee4: 6078 str r0, [r7, #4] - 8040ee6: 6039 str r1, [r7, #0] + 8040e4a: b580 push {r7, lr} + 8040e4c: b084 sub sp, #16 + 8040e4e: af00 add r7, sp, #0 + 8040e50: 6078 str r0, [r7, #4] + 8040e52: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 8040ee8: f641 0212 movw r2, #6162 ; 0x1812 - 8040eec: 6839 ldr r1, [r7, #0] - 8040eee: 6878 ldr r0, [r7, #4] - 8040ef0: f7cc ff5e bl 800ddb0 - 8040ef4: 4603 mov r3, r0 - 8040ef6: 60fb str r3, [r7, #12] + 8040e54: f641 0212 movw r2, #6162 ; 0x1812 + 8040e58: 6839 ldr r1, [r7, #0] + 8040e5a: 6878 ldr r0, [r7, #4] + 8040e5c: f7cc ff72 bl 800dd44 + 8040e60: 4603 mov r3, r0 + 8040e62: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8040ef8: 68fb ldr r3, [r7, #12] - 8040efa: b21b sxth r3, r3 + 8040e64: 68fb ldr r3, [r7, #12] + 8040e66: b21b sxth r3, r3 } - 8040efc: 4618 mov r0, r3 - 8040efe: 3710 adds r7, #16 - 8040f00: 46bd mov sp, r7 - 8040f02: bd80 pop {r7, pc} + 8040e68: 4618 mov r0, r3 + 8040e6a: 3710 adds r7, #16 + 8040e6c: 46bd mov sp, r7 + 8040e6e: bd80 pop {r7, pc} -08040f04 : +08040e70 : { - 8040f04: b580 push {r7, lr} - 8040f06: b084 sub sp, #16 - 8040f08: af00 add r7, sp, #0 - 8040f0a: 6078 str r0, [r7, #4] - 8040f0c: 6039 str r1, [r7, #0] + 8040e70: b580 push {r7, lr} + 8040e72: b084 sub sp, #16 + 8040e74: af00 add r7, sp, #0 + 8040e76: 6078 str r0, [r7, #4] + 8040e78: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - 8040f0e: f641 0213 movw r2, #6163 ; 0x1813 - 8040f12: 6839 ldr r1, [r7, #0] - 8040f14: 6878 ldr r0, [r7, #4] - 8040f16: f7cc ff4b bl 800ddb0 - 8040f1a: 4603 mov r3, r0 - 8040f1c: 60fb str r3, [r7, #12] + 8040e7a: f641 0213 movw r2, #6163 ; 0x1813 + 8040e7e: 6839 ldr r1, [r7, #0] + 8040e80: 6878 ldr r0, [r7, #4] + 8040e82: f7cc ff5f bl 800dd44 + 8040e86: 4603 mov r3, r0 + 8040e88: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8040f1e: 68fb ldr r3, [r7, #12] - 8040f20: b21b sxth r3, r3 + 8040e8a: 68fb ldr r3, [r7, #12] + 8040e8c: b21b sxth r3, r3 } - 8040f22: 4618 mov r0, r3 - 8040f24: 3710 adds r7, #16 - 8040f26: 46bd mov sp, r7 - 8040f28: bd80 pop {r7, pc} + 8040e8e: 4618 mov r0, r3 + 8040e90: 3710 adds r7, #16 + 8040e92: 46bd mov sp, r7 + 8040e94: bd80 pop {r7, pc} -08040f2a : +08040e96 : { - 8040f2a: b580 push {r7, lr} - 8040f2c: b084 sub sp, #16 - 8040f2e: af00 add r7, sp, #0 - 8040f30: 6078 str r0, [r7, #4] - 8040f32: 6039 str r1, [r7, #0] + 8040e96: b580 push {r7, lr} + 8040e98: b084 sub sp, #16 + 8040e9a: af00 add r7, sp, #0 + 8040e9c: 6078 str r0, [r7, #4] + 8040e9e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); - 8040f34: f241 0232 movw r2, #4146 ; 0x1032 + 8040ea0: f241 0232 movw r2, #4146 ; 0x1032 + 8040ea4: 6839 ldr r1, [r7, #0] + 8040ea6: 6878 ldr r0, [r7, #4] + 8040ea8: f7cc ff4c bl 800dd44 + 8040eac: 4603 mov r3, r0 + 8040eae: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 8040eb0: 68fb ldr r3, [r7, #12] + 8040eb2: b21b sxth r3, r3 +} + 8040eb4: 4618 mov r0, r3 + 8040eb6: 3710 adds r7, #16 + 8040eb8: 46bd mov sp, r7 + 8040eba: bd80 pop {r7, pc} + +08040ebc : +{ + 8040ebc: b580 push {r7, lr} + 8040ebe: b084 sub sp, #16 + 8040ec0: af00 add r7, sp, #0 + 8040ec2: 6078 str r0, [r7, #4] + 8040ec4: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_FONT); + 8040ec6: f241 4259 movw r2, #5209 ; 0x1459 + 8040eca: 6839 ldr r1, [r7, #0] + 8040ecc: 6878 ldr r0, [r7, #4] + 8040ece: f7cc ff39 bl 800dd44 + 8040ed2: 4603 mov r3, r0 + 8040ed4: 60fb str r3, [r7, #12] + return (const lv_font_t *)v.ptr; + 8040ed6: 68fb ldr r3, [r7, #12] +} + 8040ed8: 4618 mov r0, r3 + 8040eda: 3710 adds r7, #16 + 8040edc: 46bd mov sp, r7 + 8040ede: bd80 pop {r7, pc} + +08040ee0 : +{ + 8040ee0: b580 push {r7, lr} + 8040ee2: b084 sub sp, #16 + 8040ee4: af00 add r7, sp, #0 + 8040ee6: 6078 str r0, [r7, #4] + 8040ee8: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LETTER_SPACE); + 8040eea: f241 425a movw r2, #5210 ; 0x145a + 8040eee: 6839 ldr r1, [r7, #0] + 8040ef0: 6878 ldr r0, [r7, #4] + 8040ef2: f7cc ff27 bl 800dd44 + 8040ef6: 4603 mov r3, r0 + 8040ef8: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 8040efa: 68fb ldr r3, [r7, #12] + 8040efc: b21b sxth r3, r3 +} + 8040efe: 4618 mov r0, r3 + 8040f00: 3710 adds r7, #16 + 8040f02: 46bd mov sp, r7 + 8040f04: bd80 pop {r7, pc} + +08040f06 : +{ + 8040f06: b580 push {r7, lr} + 8040f08: b084 sub sp, #16 + 8040f0a: af00 add r7, sp, #0 + 8040f0c: 6078 str r0, [r7, #4] + 8040f0e: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LINE_SPACE); + 8040f10: f241 425b movw r2, #5211 ; 0x145b + 8040f14: 6839 ldr r1, [r7, #0] + 8040f16: 6878 ldr r0, [r7, #4] + 8040f18: f7cc ff14 bl 800dd44 + 8040f1c: 4603 mov r3, r0 + 8040f1e: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 8040f20: 68fb ldr r3, [r7, #12] + 8040f22: b21b sxth r3, r3 +} + 8040f24: 4618 mov r0, r3 + 8040f26: 3710 adds r7, #16 + 8040f28: 46bd mov sp, r7 + 8040f2a: bd80 pop {r7, pc} + +08040f2c : +{ + 8040f2c: b580 push {r7, lr} + 8040f2e: b084 sub sp, #16 + 8040f30: af00 add r7, sp, #0 + 8040f32: 6078 str r0, [r7, #4] + 8040f34: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ANIM_TIME); + 8040f36: 2265 movs r2, #101 ; 0x65 8040f38: 6839 ldr r1, [r7, #0] 8040f3a: 6878 ldr r0, [r7, #4] - 8040f3c: f7cc ff38 bl 800ddb0 + 8040f3c: f7cc ff02 bl 800dd44 8040f40: 4603 mov r3, r0 8040f42: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 8040f44: 68fb ldr r3, [r7, #12] - 8040f46: b21b sxth r3, r3 -} - 8040f48: 4618 mov r0, r3 - 8040f4a: 3710 adds r7, #16 - 8040f4c: 46bd mov sp, r7 - 8040f4e: bd80 pop {r7, pc} - -08040f50 : -{ - 8040f50: b580 push {r7, lr} - 8040f52: b084 sub sp, #16 - 8040f54: af00 add r7, sp, #0 - 8040f56: 6078 str r0, [r7, #4] - 8040f58: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_FONT); - 8040f5a: f241 4259 movw r2, #5209 ; 0x1459 - 8040f5e: 6839 ldr r1, [r7, #0] - 8040f60: 6878 ldr r0, [r7, #4] - 8040f62: f7cc ff25 bl 800ddb0 - 8040f66: 4603 mov r3, r0 - 8040f68: 60fb str r3, [r7, #12] - return (const lv_font_t *)v.ptr; - 8040f6a: 68fb ldr r3, [r7, #12] -} - 8040f6c: 4618 mov r0, r3 - 8040f6e: 3710 adds r7, #16 - 8040f70: 46bd mov sp, r7 - 8040f72: bd80 pop {r7, pc} - -08040f74 : -{ - 8040f74: b580 push {r7, lr} - 8040f76: b084 sub sp, #16 - 8040f78: af00 add r7, sp, #0 - 8040f7a: 6078 str r0, [r7, #4] - 8040f7c: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LETTER_SPACE); - 8040f7e: f241 425a movw r2, #5210 ; 0x145a - 8040f82: 6839 ldr r1, [r7, #0] - 8040f84: 6878 ldr r0, [r7, #4] - 8040f86: f7cc ff13 bl 800ddb0 - 8040f8a: 4603 mov r3, r0 - 8040f8c: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 8040f8e: 68fb ldr r3, [r7, #12] - 8040f90: b21b sxth r3, r3 -} - 8040f92: 4618 mov r0, r3 - 8040f94: 3710 adds r7, #16 - 8040f96: 46bd mov sp, r7 - 8040f98: bd80 pop {r7, pc} - -08040f9a : -{ - 8040f9a: b580 push {r7, lr} - 8040f9c: b084 sub sp, #16 - 8040f9e: af00 add r7, sp, #0 - 8040fa0: 6078 str r0, [r7, #4] - 8040fa2: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LINE_SPACE); - 8040fa4: f241 425b movw r2, #5211 ; 0x145b - 8040fa8: 6839 ldr r1, [r7, #0] - 8040faa: 6878 ldr r0, [r7, #4] - 8040fac: f7cc ff00 bl 800ddb0 - 8040fb0: 4603 mov r3, r0 - 8040fb2: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 8040fb4: 68fb ldr r3, [r7, #12] - 8040fb6: b21b sxth r3, r3 -} - 8040fb8: 4618 mov r0, r3 - 8040fba: 3710 adds r7, #16 - 8040fbc: 46bd mov sp, r7 - 8040fbe: bd80 pop {r7, pc} - -08040fc0 : -{ - 8040fc0: b580 push {r7, lr} - 8040fc2: b084 sub sp, #16 - 8040fc4: af00 add r7, sp, #0 - 8040fc6: 6078 str r0, [r7, #4] - 8040fc8: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ANIM_TIME); - 8040fca: 2265 movs r2, #101 ; 0x65 - 8040fcc: 6839 ldr r1, [r7, #0] - 8040fce: 6878 ldr r0, [r7, #4] - 8040fd0: f7cc feee bl 800ddb0 - 8040fd4: 4603 mov r3, r0 - 8040fd6: 60fb str r3, [r7, #12] return (uint32_t)v.num; - 8040fd8: 68fb ldr r3, [r7, #12] + 8040f44: 68fb ldr r3, [r7, #12] } - 8040fda: 4618 mov r0, r3 - 8040fdc: 3710 adds r7, #16 - 8040fde: 46bd mov sp, r7 - 8040fe0: bd80 pop {r7, pc} + 8040f46: 4618 mov r0, r3 + 8040f48: 3710 adds r7, #16 + 8040f4a: 46bd mov sp, r7 + 8040f4c: bd80 pop {r7, pc} -08040fe2 : +08040f4e : * @param roller pointer to roller object * @param options a string with '\n' separated options. E.g. "One\nTwo\nThree" * @param mode `LV_ROLLER_MODE_NORMAL` or `LV_ROLLER_MODE_INFINITE` */ void lv_roller_set_options(lv_obj_t * obj, const char * options, lv_roller_mode_t mode) { - 8040fe2: b580 push {r7, lr} - 8040fe4: b08a sub sp, #40 ; 0x28 - 8040fe6: af00 add r7, sp, #0 - 8040fe8: 60f8 str r0, [r7, #12] - 8040fea: 60b9 str r1, [r7, #8] - 8040fec: 4613 mov r3, r2 - 8040fee: 71fb strb r3, [r7, #7] + 8040f4e: b580 push {r7, lr} + 8040f50: b08a sub sp, #40 ; 0x28 + 8040f52: af00 add r7, sp, #0 + 8040f54: 60f8 str r0, [r7, #12] + 8040f56: 60b9 str r1, [r7, #8] + 8040f58: 4613 mov r3, r2 + 8040f5a: 71fb strb r3, [r7, #7] LV_ASSERT_OBJ(obj, MY_CLASS); LV_ASSERT_NULL(options); - 8040ff0: 68bb ldr r3, [r7, #8] - 8040ff2: 2b00 cmp r3, #0 - 8040ff4: d100 bne.n 8040ff8 - 8040ff6: e7fe b.n 8040ff6 + 8040f5c: 68bb ldr r3, [r7, #8] + 8040f5e: 2b00 cmp r3, #0 + 8040f60: d100 bne.n 8040f64 + 8040f62: e7fe b.n 8040f62 lv_roller_t * roller = (lv_roller_t *)obj; - 8040ff8: 68fb ldr r3, [r7, #12] - 8040ffa: 61fb str r3, [r7, #28] + 8040f64: 68fb ldr r3, [r7, #12] + 8040f66: 61fb str r3, [r7, #28] lv_obj_t * label = get_label(obj); - 8040ffc: 68f8 ldr r0, [r7, #12] - 8040ffe: f000 ffc7 bl 8041f90 - 8041002: 61b8 str r0, [r7, #24] + 8040f68: 68f8 ldr r0, [r7, #12] + 8040f6a: f000 ffc7 bl 8041efc + 8040f6e: 61b8 str r0, [r7, #24] roller->sel_opt_id = 0; - 8041004: 69fb ldr r3, [r7, #28] - 8041006: 2200 movs r2, #0 - 8041008: 84da strh r2, [r3, #38] ; 0x26 + 8040f70: 69fb ldr r3, [r7, #28] + 8040f72: 2200 movs r2, #0 + 8040f74: 84da strh r2, [r3, #38] ; 0x26 roller->sel_opt_id_ori = 0; - 804100a: 69fb ldr r3, [r7, #28] - 804100c: 2200 movs r2, #0 - 804100e: 851a strh r2, [r3, #40] ; 0x28 + 8040f76: 69fb ldr r3, [r7, #28] + 8040f78: 2200 movs r2, #0 + 8040f7a: 851a strh r2, [r3, #40] ; 0x28 /*Count the '\n'-s to determine the number of options*/ roller->option_cnt = 0; - 8041010: 69fb ldr r3, [r7, #28] - 8041012: 2200 movs r2, #0 - 8041014: 849a strh r2, [r3, #36] ; 0x24 + 8040f7c: 69fb ldr r3, [r7, #28] + 8040f7e: 2200 movs r2, #0 + 8040f80: 849a strh r2, [r3, #36] ; 0x24 uint32_t cnt; for(cnt = 0; options[cnt] != '\0'; cnt++) { - 8041016: 2300 movs r3, #0 - 8041018: 627b str r3, [r7, #36] ; 0x24 - 804101a: e00e b.n 804103a + 8040f82: 2300 movs r3, #0 + 8040f84: 627b str r3, [r7, #36] ; 0x24 + 8040f86: e00e b.n 8040fa6 if(options[cnt] == '\n') roller->option_cnt++; - 804101c: 68ba ldr r2, [r7, #8] - 804101e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8041020: 4413 add r3, r2 - 8041022: 781b ldrb r3, [r3, #0] - 8041024: 2b0a cmp r3, #10 - 8041026: d105 bne.n 8041034 - 8041028: 69fb ldr r3, [r7, #28] - 804102a: 8c9b ldrh r3, [r3, #36] ; 0x24 - 804102c: 3301 adds r3, #1 - 804102e: b29a uxth r2, r3 - 8041030: 69fb ldr r3, [r7, #28] - 8041032: 849a strh r2, [r3, #36] ; 0x24 + 8040f88: 68ba ldr r2, [r7, #8] + 8040f8a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8040f8c: 4413 add r3, r2 + 8040f8e: 781b ldrb r3, [r3, #0] + 8040f90: 2b0a cmp r3, #10 + 8040f92: d105 bne.n 8040fa0 + 8040f94: 69fb ldr r3, [r7, #28] + 8040f96: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8040f98: 3301 adds r3, #1 + 8040f9a: b29a uxth r2, r3 + 8040f9c: 69fb ldr r3, [r7, #28] + 8040f9e: 849a strh r2, [r3, #36] ; 0x24 for(cnt = 0; options[cnt] != '\0'; cnt++) { - 8041034: 6a7b ldr r3, [r7, #36] ; 0x24 - 8041036: 3301 adds r3, #1 - 8041038: 627b str r3, [r7, #36] ; 0x24 - 804103a: 68ba ldr r2, [r7, #8] - 804103c: 6a7b ldr r3, [r7, #36] ; 0x24 - 804103e: 4413 add r3, r2 - 8041040: 781b ldrb r3, [r3, #0] - 8041042: 2b00 cmp r3, #0 - 8041044: d1ea bne.n 804101c + 8040fa0: 6a7b ldr r3, [r7, #36] ; 0x24 + 8040fa2: 3301 adds r3, #1 + 8040fa4: 627b str r3, [r7, #36] ; 0x24 + 8040fa6: 68ba ldr r2, [r7, #8] + 8040fa8: 6a7b ldr r3, [r7, #36] ; 0x24 + 8040faa: 4413 add r3, r2 + 8040fac: 781b ldrb r3, [r3, #0] + 8040fae: 2b00 cmp r3, #0 + 8040fb0: d1ea bne.n 8040f88 } roller->option_cnt++; /*Last option has no `\n`*/ - 8041046: 69fb ldr r3, [r7, #28] - 8041048: 8c9b ldrh r3, [r3, #36] ; 0x24 - 804104a: 3301 adds r3, #1 - 804104c: b29a uxth r2, r3 - 804104e: 69fb ldr r3, [r7, #28] - 8041050: 849a strh r2, [r3, #36] ; 0x24 + 8040fb2: 69fb ldr r3, [r7, #28] + 8040fb4: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8040fb6: 3301 adds r3, #1 + 8040fb8: b29a uxth r2, r3 + 8040fba: 69fb ldr r3, [r7, #28] + 8040fbc: 849a strh r2, [r3, #36] ; 0x24 if(mode == LV_ROLLER_MODE_NORMAL) { - 8041052: 79fb ldrb r3, [r7, #7] - 8041054: 2b00 cmp r3, #0 - 8041056: d10b bne.n 8041070 + 8040fbe: 79fb ldrb r3, [r7, #7] + 8040fc0: 2b00 cmp r3, #0 + 8040fc2: d10b bne.n 8040fdc roller->mode = LV_ROLLER_MODE_NORMAL; - 8041058: 69fa ldr r2, [r7, #28] - 804105a: f892 302a ldrb.w r3, [r2, #42] ; 0x2a - 804105e: f36f 0300 bfc r3, #0, #1 - 8041062: f882 302a strb.w r3, [r2, #42] ; 0x2a + 8040fc4: 69fa ldr r2, [r7, #28] + 8040fc6: f892 302a ldrb.w r3, [r2, #42] ; 0x2a + 8040fca: f36f 0300 bfc r3, #0, #1 + 8040fce: f882 302a strb.w r3, [r2, #42] ; 0x2a lv_label_set_text(label, options); - 8041066: 68b9 ldr r1, [r7, #8] - 8041068: 69b8 ldr r0, [r7, #24] - 804106a: f7fd fe4b bl 803ed04 - 804106e: e05b b.n 8041128 + 8040fd2: 68b9 ldr r1, [r7, #8] + 8040fd4: 69b8 ldr r0, [r7, #24] + 8040fd6: f7fd fe4b bl 803ec70 + 8040fda: e05b b.n 8041094 } else { roller->mode = LV_ROLLER_MODE_INFINITE; - 8041070: 69fa ldr r2, [r7, #28] - 8041072: f892 302a ldrb.w r3, [r2, #42] ; 0x2a - 8041076: f043 0301 orr.w r3, r3, #1 - 804107a: f882 302a strb.w r3, [r2, #42] ; 0x2a + 8040fdc: 69fa ldr r2, [r7, #28] + 8040fde: f892 302a ldrb.w r3, [r2, #42] ; 0x2a + 8040fe2: f043 0301 orr.w r3, r3, #1 + 8040fe6: f882 302a strb.w r3, [r2, #42] ; 0x2a size_t opt_len = strlen(options) + 1; /*+1 to add '\n' after option lists*/ - 804107e: 68b8 ldr r0, [r7, #8] - 8041080: f7bf f8da bl 8000238 - 8041084: 4603 mov r3, r0 - 8041086: 3301 adds r3, #1 - 8041088: 617b str r3, [r7, #20] + 8040fea: 68b8 ldr r0, [r7, #8] + 8040fec: f7bf f924 bl 8000238 + 8040ff0: 4603 mov r3, r0 + 8040ff2: 3301 adds r3, #1 + 8040ff4: 617b str r3, [r7, #20] char * opt_extra = lv_mem_buf_get(opt_len * LV_ROLLER_INF_PAGES); - 804108a: 697a ldr r2, [r7, #20] - 804108c: 4613 mov r3, r2 - 804108e: 00db lsls r3, r3, #3 - 8041090: 1a9b subs r3, r3, r2 - 8041092: 4618 mov r0, r3 - 8041094: f7f1 fcb4 bl 8032a00 - 8041098: 6138 str r0, [r7, #16] + 8040ff6: 697a ldr r2, [r7, #20] + 8040ff8: 4613 mov r3, r2 + 8040ffa: 00db lsls r3, r3, #3 + 8040ffc: 1a9b subs r3, r3, r2 + 8040ffe: 4618 mov r0, r3 + 8041000: f7f1 fcb4 bl 803296c + 8041004: 6138 str r0, [r7, #16] uint8_t i; for(i = 0; i < LV_ROLLER_INF_PAGES; i++) { - 804109a: 2300 movs r3, #0 - 804109c: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80410a0: e01b b.n 80410da + 8041006: 2300 movs r3, #0 + 8041008: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 804100c: e01b b.n 8041046 strcpy(&opt_extra[opt_len * i], options); - 80410a2: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 80410a6: 697a ldr r2, [r7, #20] - 80410a8: fb02 f303 mul.w r3, r2, r3 - 80410ac: 693a ldr r2, [r7, #16] - 80410ae: 4413 add r3, r2 - 80410b0: 68b9 ldr r1, [r7, #8] - 80410b2: 4618 mov r0, r3 - 80410b4: f005 fd86 bl 8046bc4 + 804100e: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8041012: 697a ldr r2, [r7, #20] + 8041014: fb02 f303 mul.w r3, r2, r3 + 8041018: 693a ldr r2, [r7, #16] + 804101a: 4413 add r3, r2 + 804101c: 68b9 ldr r1, [r7, #8] + 804101e: 4618 mov r0, r3 + 8041020: f005 fd86 bl 8046b30 opt_extra[opt_len * (i + 1) - 1] = '\n'; - 80410b8: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 80410bc: 3301 adds r3, #1 - 80410be: 461a mov r2, r3 - 80410c0: 697b ldr r3, [r7, #20] - 80410c2: fb02 f303 mul.w r3, r2, r3 - 80410c6: 3b01 subs r3, #1 - 80410c8: 693a ldr r2, [r7, #16] - 80410ca: 4413 add r3, r2 - 80410cc: 220a movs r2, #10 - 80410ce: 701a strb r2, [r3, #0] + 8041024: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8041028: 3301 adds r3, #1 + 804102a: 461a mov r2, r3 + 804102c: 697b ldr r3, [r7, #20] + 804102e: fb02 f303 mul.w r3, r2, r3 + 8041032: 3b01 subs r3, #1 + 8041034: 693a ldr r2, [r7, #16] + 8041036: 4413 add r3, r2 + 8041038: 220a movs r2, #10 + 804103a: 701a strb r2, [r3, #0] for(i = 0; i < LV_ROLLER_INF_PAGES; i++) { - 80410d0: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 80410d4: 3301 adds r3, #1 - 80410d6: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80410da: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 80410de: 2b06 cmp r3, #6 - 80410e0: d9df bls.n 80410a2 + 804103c: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8041040: 3301 adds r3, #1 + 8041042: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 8041046: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 804104a: 2b06 cmp r3, #6 + 804104c: d9df bls.n 804100e } opt_extra[opt_len * LV_ROLLER_INF_PAGES - 1] = '\0'; - 80410e2: 697a ldr r2, [r7, #20] - 80410e4: 4613 mov r3, r2 - 80410e6: 00db lsls r3, r3, #3 - 80410e8: 1a9b subs r3, r3, r2 - 80410ea: 3b01 subs r3, #1 - 80410ec: 693a ldr r2, [r7, #16] - 80410ee: 4413 add r3, r2 - 80410f0: 2200 movs r2, #0 - 80410f2: 701a strb r2, [r3, #0] + 804104e: 697a ldr r2, [r7, #20] + 8041050: 4613 mov r3, r2 + 8041052: 00db lsls r3, r3, #3 + 8041054: 1a9b subs r3, r3, r2 + 8041056: 3b01 subs r3, #1 + 8041058: 693a ldr r2, [r7, #16] + 804105a: 4413 add r3, r2 + 804105c: 2200 movs r2, #0 + 804105e: 701a strb r2, [r3, #0] lv_label_set_text(label, opt_extra); - 80410f4: 6939 ldr r1, [r7, #16] - 80410f6: 69b8 ldr r0, [r7, #24] - 80410f8: f7fd fe04 bl 803ed04 + 8041060: 6939 ldr r1, [r7, #16] + 8041062: 69b8 ldr r0, [r7, #24] + 8041064: f7fd fe04 bl 803ec70 lv_mem_buf_release(opt_extra); - 80410fc: 6938 ldr r0, [r7, #16] - 80410fe: f7f1 fd2b bl 8032b58 + 8041068: 6938 ldr r0, [r7, #16] + 804106a: f7f1 fd2b bl 8032ac4 roller->sel_opt_id = ((LV_ROLLER_INF_PAGES / 2) + 0) * roller->option_cnt; - 8041102: 69fb ldr r3, [r7, #28] - 8041104: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8041106: 461a mov r2, r3 - 8041108: 0052 lsls r2, r2, #1 - 804110a: 4413 add r3, r2 - 804110c: b29a uxth r2, r3 - 804110e: 69fb ldr r3, [r7, #28] - 8041110: 84da strh r2, [r3, #38] ; 0x26 + 804106e: 69fb ldr r3, [r7, #28] + 8041070: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8041072: 461a mov r2, r3 + 8041074: 0052 lsls r2, r2, #1 + 8041076: 4413 add r3, r2 + 8041078: b29a uxth r2, r3 + 804107a: 69fb ldr r3, [r7, #28] + 804107c: 84da strh r2, [r3, #38] ; 0x26 roller->option_cnt = roller->option_cnt * LV_ROLLER_INF_PAGES; - 8041112: 69fb ldr r3, [r7, #28] - 8041114: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8041116: 461a mov r2, r3 - 8041118: 00d2 lsls r2, r2, #3 - 804111a: 1ad3 subs r3, r2, r3 - 804111c: b29a uxth r2, r3 - 804111e: 69fb ldr r3, [r7, #28] - 8041120: 849a strh r2, [r3, #36] ; 0x24 + 804107e: 69fb ldr r3, [r7, #28] + 8041080: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8041082: 461a mov r2, r3 + 8041084: 00d2 lsls r2, r2, #3 + 8041086: 1ad3 subs r3, r2, r3 + 8041088: b29a uxth r2, r3 + 804108a: 69fb ldr r3, [r7, #28] + 804108c: 849a strh r2, [r3, #36] ; 0x24 inf_normalize(obj); - 8041122: 68f8 ldr r0, [r7, #12] - 8041124: f000 fea8 bl 8041e78 + 804108e: 68f8 ldr r0, [r7, #12] + 8041090: f000 fea8 bl 8041de4 } roller->sel_opt_id_ori = roller->sel_opt_id; - 8041128: 69fb ldr r3, [r7, #28] - 804112a: 8cda ldrh r2, [r3, #38] ; 0x26 - 804112c: 69fb ldr r3, [r7, #28] - 804112e: 851a strh r2, [r3, #40] ; 0x28 + 8041094: 69fb ldr r3, [r7, #28] + 8041096: 8cda ldrh r2, [r3, #38] ; 0x26 + 8041098: 69fb ldr r3, [r7, #28] + 804109a: 851a strh r2, [r3, #40] ; 0x28 /*If the selected text has larger font the label needs some extra draw padding to draw it.*/ lv_obj_refresh_ext_draw_size(label); - 8041130: 69b8 ldr r0, [r7, #24] - 8041132: f7c7 feac bl 8008e8e + 804109c: 69b8 ldr r0, [r7, #24] + 804109e: f7c7 fec0 bl 8008e22 } - 8041136: bf00 nop - 8041138: 3728 adds r7, #40 ; 0x28 - 804113a: 46bd mov sp, r7 - 804113c: bd80 pop {r7, pc} + 80410a2: bf00 nop + 80410a4: 3728 adds r7, #40 ; 0x28 + 80410a6: 46bd mov sp, r7 + 80410a8: bd80 pop {r7, pc} ... -08041140 : +080410ac : * @param roller pointer to a roller object * @param sel_opt id of the selected option (0 ... number of option - 1); * @param anim_en LV_ANIM_ON: set with animation; LV_ANOM_OFF set immediately */ void lv_roller_set_selected(lv_obj_t * obj, uint16_t sel_opt, lv_anim_enable_t anim) { - 8041140: b580 push {r7, lr} - 8041142: b086 sub sp, #24 - 8041144: af00 add r7, sp, #0 - 8041146: 6078 str r0, [r7, #4] - 8041148: 460b mov r3, r1 - 804114a: 807b strh r3, [r7, #2] - 804114c: 4613 mov r3, r2 - 804114e: 707b strb r3, [r7, #1] + 80410ac: b580 push {r7, lr} + 80410ae: b086 sub sp, #24 + 80410b0: af00 add r7, sp, #0 + 80410b2: 6078 str r0, [r7, #4] + 80410b4: 460b mov r3, r1 + 80410b6: 807b strh r3, [r7, #2] + 80410b8: 4613 mov r3, r2 + 80410ba: 707b strb r3, [r7, #1] /*Set the value even if it's the same as the current value because *if moving to the next option with an animation which was just deleted in the PRESS Call the ancestor's event handler *nothing will continue the animation.*/ lv_roller_t * roller = (lv_roller_t *)obj; - 8041150: 687b ldr r3, [r7, #4] - 8041152: 613b str r3, [r7, #16] + 80410bc: 687b ldr r3, [r7, #4] + 80410be: 613b str r3, [r7, #16] /*In infinite mode interpret the new ID relative to the currently visible "page"*/ if(roller->mode == LV_ROLLER_MODE_INFINITE) { - 8041154: 693b ldr r3, [r7, #16] - 8041156: f893 302a ldrb.w r3, [r3, #42] ; 0x2a - 804115a: f003 0301 and.w r3, r3, #1 - 804115e: b2db uxtb r3, r3 - 8041160: 2b00 cmp r3, #0 - 8041162: d01e beq.n 80411a2 + 80410c0: 693b ldr r3, [r7, #16] + 80410c2: f893 302a ldrb.w r3, [r3, #42] ; 0x2a + 80410c6: f003 0301 and.w r3, r3, #1 + 80410ca: b2db uxtb r3, r3 + 80410cc: 2b00 cmp r3, #0 + 80410ce: d01e beq.n 804110e int32_t sel_opt_signed = sel_opt; - 8041164: 887b ldrh r3, [r7, #2] - 8041166: 617b str r3, [r7, #20] + 80410d0: 887b ldrh r3, [r7, #2] + 80410d2: 617b str r3, [r7, #20] uint16_t page = roller->sel_opt_id / LV_ROLLER_INF_PAGES; - 8041168: 693b ldr r3, [r7, #16] - 804116a: 8cda ldrh r2, [r3, #38] ; 0x26 - 804116c: 4b1a ldr r3, [pc, #104] ; (80411d8 ) - 804116e: fba3 1302 umull r1, r3, r3, r2 - 8041172: 1ad2 subs r2, r2, r3 - 8041174: 0852 lsrs r2, r2, #1 - 8041176: 4413 add r3, r2 - 8041178: 089b lsrs r3, r3, #2 - 804117a: 81fb strh r3, [r7, #14] + 80410d4: 693b ldr r3, [r7, #16] + 80410d6: 8cda ldrh r2, [r3, #38] ; 0x26 + 80410d8: 4b1a ldr r3, [pc, #104] ; (8041144 ) + 80410da: fba3 1302 umull r1, r3, r3, r2 + 80410de: 1ad2 subs r2, r2, r3 + 80410e0: 0852 lsrs r2, r2, #1 + 80410e2: 4413 add r3, r2 + 80410e4: 089b lsrs r3, r3, #2 + 80410e6: 81fb strh r3, [r7, #14] /*`sel_opt` should be less than the number of options set by the user. *If it's more then probably it's a reference from not the first page *so normalize `sel_opt`*/ if(page != 0) { - 804117c: 89fb ldrh r3, [r7, #14] - 804117e: 2b00 cmp r3, #0 - 8041180: d006 beq.n 8041190 + 80410e8: 89fb ldrh r3, [r7, #14] + 80410ea: 2b00 cmp r3, #0 + 80410ec: d006 beq.n 80410fc sel_opt_signed -= page * LV_ROLLER_INF_PAGES; - 8041182: 89fb ldrh r3, [r7, #14] - 8041184: 461a mov r2, r3 - 8041186: 00db lsls r3, r3, #3 - 8041188: 1ad3 subs r3, r2, r3 - 804118a: 697a ldr r2, [r7, #20] - 804118c: 4413 add r3, r2 - 804118e: 617b str r3, [r7, #20] + 80410ee: 89fb ldrh r3, [r7, #14] + 80410f0: 461a mov r2, r3 + 80410f2: 00db lsls r3, r3, #3 + 80410f4: 1ad3 subs r3, r2, r3 + 80410f6: 697a ldr r2, [r7, #20] + 80410f8: 4413 add r3, r2 + 80410fa: 617b str r3, [r7, #20] } sel_opt = page * LV_ROLLER_INF_PAGES + sel_opt_signed; - 8041190: 89fb ldrh r3, [r7, #14] - 8041192: 461a mov r2, r3 - 8041194: 00d2 lsls r2, r2, #3 - 8041196: 1ad3 subs r3, r2, r3 - 8041198: b29a uxth r2, r3 - 804119a: 697b ldr r3, [r7, #20] - 804119c: b29b uxth r3, r3 - 804119e: 4413 add r3, r2 - 80411a0: 807b strh r3, [r7, #2] + 80410fc: 89fb ldrh r3, [r7, #14] + 80410fe: 461a mov r2, r3 + 8041100: 00d2 lsls r2, r2, #3 + 8041102: 1ad3 subs r3, r2, r3 + 8041104: b29a uxth r2, r3 + 8041106: 697b ldr r3, [r7, #20] + 8041108: b29b uxth r3, r3 + 804110a: 4413 add r3, r2 + 804110c: 807b strh r3, [r7, #2] } roller->sel_opt_id = sel_opt < roller->option_cnt ? sel_opt : roller->option_cnt - 1; - 80411a2: 693b ldr r3, [r7, #16] - 80411a4: 8c9b ldrh r3, [r3, #36] ; 0x24 - 80411a6: 887a ldrh r2, [r7, #2] - 80411a8: 429a cmp r2, r3 - 80411aa: d304 bcc.n 80411b6 - 80411ac: 693b ldr r3, [r7, #16] - 80411ae: 8c9b ldrh r3, [r3, #36] ; 0x24 - 80411b0: 3b01 subs r3, #1 - 80411b2: b29b uxth r3, r3 - 80411b4: e000 b.n 80411b8 - 80411b6: 887b ldrh r3, [r7, #2] - 80411b8: 693a ldr r2, [r7, #16] - 80411ba: 84d3 strh r3, [r2, #38] ; 0x26 + 804110e: 693b ldr r3, [r7, #16] + 8041110: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8041112: 887a ldrh r2, [r7, #2] + 8041114: 429a cmp r2, r3 + 8041116: d304 bcc.n 8041122 + 8041118: 693b ldr r3, [r7, #16] + 804111a: 8c9b ldrh r3, [r3, #36] ; 0x24 + 804111c: 3b01 subs r3, #1 + 804111e: b29b uxth r3, r3 + 8041120: e000 b.n 8041124 + 8041122: 887b ldrh r3, [r7, #2] + 8041124: 693a ldr r2, [r7, #16] + 8041126: 84d3 strh r3, [r2, #38] ; 0x26 roller->sel_opt_id_ori = roller->sel_opt_id; - 80411bc: 693b ldr r3, [r7, #16] - 80411be: 8cda ldrh r2, [r3, #38] ; 0x26 - 80411c0: 693b ldr r3, [r7, #16] - 80411c2: 851a strh r2, [r3, #40] ; 0x28 + 8041128: 693b ldr r3, [r7, #16] + 804112a: 8cda ldrh r2, [r3, #38] ; 0x26 + 804112c: 693b ldr r3, [r7, #16] + 804112e: 851a strh r2, [r3, #40] ; 0x28 refr_position(obj, anim); - 80411c4: 787b ldrb r3, [r7, #1] - 80411c6: 4619 mov r1, r3 - 80411c8: 6878 ldr r0, [r7, #4] - 80411ca: f000 fc4d bl 8041a68 + 8041130: 787b ldrb r3, [r7, #1] + 8041132: 4619 mov r1, r3 + 8041134: 6878 ldr r0, [r7, #4] + 8041136: f000 fc4d bl 80419d4 } - 80411ce: bf00 nop - 80411d0: 3718 adds r7, #24 - 80411d2: 46bd mov sp, r7 - 80411d4: bd80 pop {r7, pc} - 80411d6: bf00 nop - 80411d8: 24924925 .word 0x24924925 + 804113a: bf00 nop + 804113c: 3718 adds r7, #24 + 804113e: 46bd mov sp, r7 + 8041140: bd80 pop {r7, pc} + 8041142: bf00 nop + 8041144: 24924925 .word 0x24924925 -080411dc : +08041148 : * STATIC FUNCTIONS **********************/ static void lv_roller_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 80411dc: b580 push {r7, lr} - 80411de: b084 sub sp, #16 - 80411e0: af00 add r7, sp, #0 - 80411e2: 6078 str r0, [r7, #4] - 80411e4: 6039 str r1, [r7, #0] + 8041148: b580 push {r7, lr} + 804114a: b084 sub sp, #16 + 804114c: af00 add r7, sp, #0 + 804114e: 6078 str r0, [r7, #4] + 8041150: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_roller_t * roller = (lv_roller_t *)obj; - 80411e6: 683b ldr r3, [r7, #0] - 80411e8: 60fb str r3, [r7, #12] + 8041152: 683b ldr r3, [r7, #0] + 8041154: 60fb str r3, [r7, #12] roller->mode = LV_ROLLER_MODE_NORMAL; - 80411ea: 68fa ldr r2, [r7, #12] - 80411ec: f892 302a ldrb.w r3, [r2, #42] ; 0x2a - 80411f0: f36f 0300 bfc r3, #0, #1 - 80411f4: f882 302a strb.w r3, [r2, #42] ; 0x2a + 8041156: 68fa ldr r2, [r7, #12] + 8041158: f892 302a ldrb.w r3, [r2, #42] ; 0x2a + 804115c: f36f 0300 bfc r3, #0, #1 + 8041160: f882 302a strb.w r3, [r2, #42] ; 0x2a roller->option_cnt = 0; - 80411f8: 68fb ldr r3, [r7, #12] - 80411fa: 2200 movs r2, #0 - 80411fc: 849a strh r2, [r3, #36] ; 0x24 + 8041164: 68fb ldr r3, [r7, #12] + 8041166: 2200 movs r2, #0 + 8041168: 849a strh r2, [r3, #36] ; 0x24 roller->sel_opt_id = 0; - 80411fe: 68fb ldr r3, [r7, #12] - 8041200: 2200 movs r2, #0 - 8041202: 84da strh r2, [r3, #38] ; 0x26 + 804116a: 68fb ldr r3, [r7, #12] + 804116c: 2200 movs r2, #0 + 804116e: 84da strh r2, [r3, #38] ; 0x26 roller->sel_opt_id_ori = 0; - 8041204: 68fb ldr r3, [r7, #12] - 8041206: 2200 movs r2, #0 - 8041208: 851a strh r2, [r3, #40] ; 0x28 + 8041170: 68fb ldr r3, [r7, #12] + 8041172: 2200 movs r2, #0 + 8041174: 851a strh r2, [r3, #40] ; 0x28 lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); - 804120a: 2110 movs r1, #16 - 804120c: 6838 ldr r0, [r7, #0] - 804120e: f7c5 fa27 bl 8006660 + 8041176: 2110 movs r1, #16 + 8041178: 6838 ldr r0, [r7, #0] + 804117a: f7c5 fa3b bl 80065f4 lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN_VER); - 8041212: f44f 7100 mov.w r1, #512 ; 0x200 - 8041216: 6838 ldr r0, [r7, #0] - 8041218: f7c5 fa22 bl 8006660 + 804117e: f44f 7100 mov.w r1, #512 ; 0x200 + 8041182: 6838 ldr r0, [r7, #0] + 8041184: f7c5 fa36 bl 80065f4 LV_LOG_INFO("begin"); lv_obj_t * label = lv_obj_class_create_obj(&lv_roller_label_class, obj); - 804121c: 6839 ldr r1, [r7, #0] - 804121e: 4808 ldr r0, [pc, #32] ; (8041240 ) - 8041220: f7c6 fc17 bl 8007a52 - 8041224: 60b8 str r0, [r7, #8] + 8041188: 6839 ldr r1, [r7, #0] + 804118a: 4808 ldr r0, [pc, #32] ; (80411ac ) + 804118c: f7c6 fc2b bl 80079e6 + 8041190: 60b8 str r0, [r7, #8] lv_obj_class_init_obj(label); - 8041226: 68b8 ldr r0, [r7, #8] - 8041228: f7c6 fcc5 bl 8007bb6 + 8041192: 68b8 ldr r0, [r7, #8] + 8041194: f7c6 fcd9 bl 8007b4a lv_roller_set_options(obj, "Option 1\nOption 2\nOption 3\nOption 4\nOption 5", LV_ROLLER_MODE_NORMAL); - 804122c: 2200 movs r2, #0 - 804122e: 4905 ldr r1, [pc, #20] ; (8041244 ) - 8041230: 6838 ldr r0, [r7, #0] - 8041232: f7ff fed6 bl 8040fe2 + 8041198: 2200 movs r2, #0 + 804119a: 4905 ldr r1, [pc, #20] ; (80411b0 ) + 804119c: 6838 ldr r0, [r7, #0] + 804119e: f7ff fed6 bl 8040f4e LV_LOG_TRACE("finshed"); } - 8041236: bf00 nop - 8041238: 3710 adds r7, #16 - 804123a: 46bd mov sp, r7 - 804123c: bd80 pop {r7, pc} - 804123e: bf00 nop - 8041240: 08070ae0 .word 0x08070ae0 - 8041244: 080471c0 .word 0x080471c0 + 80411a2: bf00 nop + 80411a4: 3710 adds r7, #16 + 80411a6: 46bd mov sp, r7 + 80411a8: bd80 pop {r7, pc} + 80411aa: bf00 nop + 80411ac: 08070a38 .word 0x08070a38 + 80411b0: 08047118 .word 0x08047118 -08041248 : +080411b4 : static void lv_roller_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 8041248: b580 push {r7, lr} - 804124a: b090 sub sp, #64 ; 0x40 - 804124c: af00 add r7, sp, #0 - 804124e: 6078 str r0, [r7, #4] - 8041250: 6039 str r1, [r7, #0] + 80411b4: b580 push {r7, lr} + 80411b6: b090 sub sp, #64 ; 0x40 + 80411b8: af00 add r7, sp, #0 + 80411ba: 6078 str r0, [r7, #4] + 80411bc: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res; /*Call the ancestor's event handler*/ res = lv_obj_event_base(MY_CLASS, e); - 8041252: 6839 ldr r1, [r7, #0] - 8041254: 48a2 ldr r0, [pc, #648] ; (80414e0 ) - 8041256: f7c1 f955 bl 8002504 - 804125a: 4603 mov r3, r0 - 804125c: f887 303f strb.w r3, [r7, #63] ; 0x3f + 80411be: 6839 ldr r1, [r7, #0] + 80411c0: 48a2 ldr r0, [pc, #648] ; (804144c ) + 80411c2: f7c1 f969 bl 8002498 + 80411c6: 4603 mov r3, r0 + 80411c8: f887 303f strb.w r3, [r7, #63] ; 0x3f if(res != LV_RES_OK) return; - 8041260: f897 303f ldrb.w r3, [r7, #63] ; 0x3f - 8041264: 2b01 cmp r3, #1 - 8041266: f040 8137 bne.w 80414d8 + 80411cc: f897 303f ldrb.w r3, [r7, #63] ; 0x3f + 80411d0: 2b01 cmp r3, #1 + 80411d2: f040 8137 bne.w 8041444 lv_event_code_t code = lv_event_get_code(e); - 804126a: 6838 ldr r0, [r7, #0] - 804126c: f7c1 f99e bl 80025ac - 8041270: 4603 mov r3, r0 - 8041272: f887 303e strb.w r3, [r7, #62] ; 0x3e + 80411d6: 6838 ldr r0, [r7, #0] + 80411d8: f7c1 f9b2 bl 8002540 + 80411dc: 4603 mov r3, r0 + 80411de: f887 303e strb.w r3, [r7, #62] ; 0x3e lv_obj_t * obj = lv_event_get_target(e); - 8041276: 6838 ldr r0, [r7, #0] - 8041278: f7c1 f982 bl 8002580 - 804127c: 63b8 str r0, [r7, #56] ; 0x38 + 80411e2: 6838 ldr r0, [r7, #0] + 80411e4: f7c1 f996 bl 8002514 + 80411e8: 63b8 str r0, [r7, #56] ; 0x38 lv_roller_t * roller = (lv_roller_t *)obj; - 804127e: 6bbb ldr r3, [r7, #56] ; 0x38 - 8041280: 637b str r3, [r7, #52] ; 0x34 + 80411ea: 6bbb ldr r3, [r7, #56] ; 0x38 + 80411ec: 637b str r3, [r7, #52] ; 0x34 if(code == LV_EVENT_GET_SELF_SIZE) { - 8041282: f897 303e ldrb.w r3, [r7, #62] ; 0x3e - 8041286: 2b2c cmp r3, #44 ; 0x2c - 8041288: d10b bne.n 80412a2 + 80411ee: f897 303e ldrb.w r3, [r7, #62] ; 0x3e + 80411f2: 2b2c cmp r3, #44 ; 0x2c + 80411f4: d10b bne.n 804120e lv_point_t * p = lv_event_get_param(e); - 804128a: 6838 ldr r0, [r7, #0] - 804128c: f7c1 f99c bl 80025c8 - 8041290: 6138 str r0, [r7, #16] + 80411f6: 6838 ldr r0, [r7, #0] + 80411f8: f7c1 f9b0 bl 800255c + 80411fc: 6138 str r0, [r7, #16] p->x = get_selected_label_width(obj); - 8041292: 6bb8 ldr r0, [r7, #56] ; 0x38 - 8041294: f000 fe89 bl 8041faa - 8041298: 4603 mov r3, r0 - 804129a: 461a mov r2, r3 - 804129c: 693b ldr r3, [r7, #16] - 804129e: 801a strh r2, [r3, #0] - 80412a0: e11b b.n 80414da + 80411fe: 6bb8 ldr r0, [r7, #56] ; 0x38 + 8041200: f000 fe89 bl 8041f16 + 8041204: 4603 mov r3, r0 + 8041206: 461a mov r2, r3 + 8041208: 693b ldr r3, [r7, #16] + 804120a: 801a strh r2, [r3, #0] + 804120c: e11b b.n 8041446 } else if(code == LV_EVENT_STYLE_CHANGED) { - 80412a2: f897 303e ldrb.w r3, [r7, #62] ; 0x3e - 80412a6: 2b2a cmp r3, #42 ; 0x2a - 80412a8: d113 bne.n 80412d2 + 804120e: f897 303e ldrb.w r3, [r7, #62] ; 0x3e + 8041212: 2b2a cmp r3, #42 ; 0x2a + 8041214: d113 bne.n 804123e lv_obj_t * label = get_label(obj); - 80412aa: 6bb8 ldr r0, [r7, #56] ; 0x38 - 80412ac: f000 fe70 bl 8041f90 - 80412b0: 6178 str r0, [r7, #20] + 8041216: 6bb8 ldr r0, [r7, #56] ; 0x38 + 8041218: f000 fe70 bl 8041efc + 804121c: 6178 str r0, [r7, #20] /*Be sure the label's style is updated before processing the roller*/ if(label) lv_event_send(label, LV_EVENT_STYLE_CHANGED, NULL); - 80412b2: 697b ldr r3, [r7, #20] - 80412b4: 2b00 cmp r3, #0 - 80412b6: d004 beq.n 80412c2 - 80412b8: 2200 movs r2, #0 - 80412ba: 212a movs r1, #42 ; 0x2a - 80412bc: 6978 ldr r0, [r7, #20] - 80412be: f7c1 f8df bl 8002480 + 804121e: 697b ldr r3, [r7, #20] + 8041220: 2b00 cmp r3, #0 + 8041222: d004 beq.n 804122e + 8041224: 2200 movs r2, #0 + 8041226: 212a movs r1, #42 ; 0x2a + 8041228: 6978 ldr r0, [r7, #20] + 804122a: f7c1 f8f3 bl 8002414 lv_obj_refresh_self_size(obj); - 80412c2: 6bb8 ldr r0, [r7, #56] ; 0x38 - 80412c4: f7c9 f83d bl 800a342 + 804122e: 6bb8 ldr r0, [r7, #56] ; 0x38 + 8041230: f7c9 f851 bl 800a2d6 refr_position(obj, LV_ANIM_OFF); - 80412c8: 2100 movs r1, #0 - 80412ca: 6bb8 ldr r0, [r7, #56] ; 0x38 - 80412cc: f000 fbcc bl 8041a68 - 80412d0: e103 b.n 80414da + 8041234: 2100 movs r1, #0 + 8041236: 6bb8 ldr r0, [r7, #56] ; 0x38 + 8041238: f000 fbcc bl 80419d4 + 804123c: e103 b.n 8041446 } else if(code == LV_EVENT_SIZE_CHANGED) { - 80412d2: f897 303e ldrb.w r3, [r7, #62] ; 0x3e - 80412d6: 2b29 cmp r3, #41 ; 0x29 - 80412d8: d104 bne.n 80412e4 + 804123e: f897 303e ldrb.w r3, [r7, #62] ; 0x3e + 8041242: 2b29 cmp r3, #41 ; 0x29 + 8041244: d104 bne.n 8041250 refr_position(obj, LV_ANIM_OFF); - 80412da: 2100 movs r1, #0 - 80412dc: 6bb8 ldr r0, [r7, #56] ; 0x38 - 80412de: f000 fbc3 bl 8041a68 - 80412e2: e0fa b.n 80414da + 8041246: 2100 movs r1, #0 + 8041248: 6bb8 ldr r0, [r7, #56] ; 0x38 + 804124a: f000 fbc3 bl 80419d4 + 804124e: e0fa b.n 8041446 } else if(code == LV_EVENT_PRESSED) { - 80412e4: f897 303e ldrb.w r3, [r7, #62] ; 0x3e - 80412e8: 2b01 cmp r3, #1 - 80412ea: d10f bne.n 804130c + 8041250: f897 303e ldrb.w r3, [r7, #62] ; 0x3e + 8041254: 2b01 cmp r3, #1 + 8041256: d10f bne.n 8041278 roller->moved = 0; - 80412ec: 6b7a ldr r2, [r7, #52] ; 0x34 - 80412ee: f892 302a ldrb.w r3, [r2, #42] ; 0x2a - 80412f2: f36f 0341 bfc r3, #1, #1 - 80412f6: f882 302a strb.w r3, [r2, #42] ; 0x2a + 8041258: 6b7a ldr r2, [r7, #52] ; 0x34 + 804125a: f892 302a ldrb.w r3, [r2, #42] ; 0x2a + 804125e: f36f 0341 bfc r3, #1, #1 + 8041262: f882 302a strb.w r3, [r2, #42] ; 0x2a lv_anim_del(get_label(obj), set_y_anim); - 80412fa: 6bb8 ldr r0, [r7, #56] ; 0x38 - 80412fc: f000 fe48 bl 8041f90 - 8041300: 4603 mov r3, r0 - 8041302: 4978 ldr r1, [pc, #480] ; (80414e4 ) - 8041304: 4618 mov r0, r3 - 8041306: f7ef fb41 bl 803098c - 804130a: e0e6 b.n 80414da + 8041266: 6bb8 ldr r0, [r7, #56] ; 0x38 + 8041268: f000 fe48 bl 8041efc + 804126c: 4603 mov r3, r0 + 804126e: 4978 ldr r1, [pc, #480] ; (8041450 ) + 8041270: 4618 mov r0, r3 + 8041272: f7ef fb41 bl 80308f8 + 8041276: e0e6 b.n 8041446 } else if(code == LV_EVENT_PRESSING) { - 804130c: f897 303e ldrb.w r3, [r7, #62] ; 0x3e - 8041310: 2b02 cmp r3, #2 - 8041312: d128 bne.n 8041366 + 8041278: f897 303e ldrb.w r3, [r7, #62] ; 0x3e + 804127c: 2b02 cmp r3, #2 + 804127e: d128 bne.n 80412d2 lv_indev_t * indev = lv_indev_get_act(); - 8041314: f7c2 f800 bl 8003318 - 8041318: 61f8 str r0, [r7, #28] + 8041280: f7c2 f814 bl 80032ac + 8041284: 61f8 str r0, [r7, #28] lv_point_t p; lv_indev_get_vect(indev, &p); - 804131a: f107 030c add.w r3, r7, #12 - 804131e: 4619 mov r1, r3 - 8041320: 69f8 ldr r0, [r7, #28] - 8041322: f7c2 f957 bl 80035d4 + 8041286: f107 030c add.w r3, r7, #12 + 804128a: 4619 mov r1, r3 + 804128c: 69f8 ldr r0, [r7, #28] + 804128e: f7c2 f96b bl 8003568 if(p.y) { - 8041326: f9b7 300e ldrsh.w r3, [r7, #14] - 804132a: 2b00 cmp r3, #0 - 804132c: f000 80d5 beq.w 80414da + 8041292: f9b7 300e ldrsh.w r3, [r7, #14] + 8041296: 2b00 cmp r3, #0 + 8041298: f000 80d5 beq.w 8041446 lv_obj_t * label = get_label(obj); - 8041330: 6bb8 ldr r0, [r7, #56] ; 0x38 - 8041332: f000 fe2d bl 8041f90 - 8041336: 61b8 str r0, [r7, #24] + 804129c: 6bb8 ldr r0, [r7, #56] ; 0x38 + 804129e: f000 fe2d bl 8041efc + 80412a2: 61b8 str r0, [r7, #24] lv_obj_set_y(label, lv_obj_get_y(label) + p.y); - 8041338: 69b8 ldr r0, [r7, #24] - 804133a: f7c8 feb3 bl 800a0a4 - 804133e: 4603 mov r3, r0 - 8041340: b29a uxth r2, r3 - 8041342: f9b7 300e ldrsh.w r3, [r7, #14] - 8041346: b29b uxth r3, r3 - 8041348: 4413 add r3, r2 - 804134a: b29b uxth r3, r3 - 804134c: b21b sxth r3, r3 - 804134e: 4619 mov r1, r3 - 8041350: 69b8 ldr r0, [r7, #24] - 8041352: f7c7 ffcb bl 80092ec + 80412a4: 69b8 ldr r0, [r7, #24] + 80412a6: f7c8 fec7 bl 800a038 + 80412aa: 4603 mov r3, r0 + 80412ac: b29a uxth r2, r3 + 80412ae: f9b7 300e ldrsh.w r3, [r7, #14] + 80412b2: b29b uxth r3, r3 + 80412b4: 4413 add r3, r2 + 80412b6: b29b uxth r3, r3 + 80412b8: b21b sxth r3, r3 + 80412ba: 4619 mov r1, r3 + 80412bc: 69b8 ldr r0, [r7, #24] + 80412be: f7c7 ffdf bl 8009280 roller->moved = 1; - 8041356: 6b7a ldr r2, [r7, #52] ; 0x34 - 8041358: f892 302a ldrb.w r3, [r2, #42] ; 0x2a - 804135c: f043 0302 orr.w r3, r3, #2 - 8041360: f882 302a strb.w r3, [r2, #42] ; 0x2a - 8041364: e0b9 b.n 80414da + 80412c2: 6b7a ldr r2, [r7, #52] ; 0x34 + 80412c4: f892 302a ldrb.w r3, [r2, #42] ; 0x2a + 80412c8: f043 0302 orr.w r3, r3, #2 + 80412cc: f882 302a strb.w r3, [r2, #42] ; 0x2a + 80412d0: e0b9 b.n 8041446 } } else if(code == LV_EVENT_RELEASED || code == LV_EVENT_PRESS_LOST) { - 8041366: f897 303e ldrb.w r3, [r7, #62] ; 0x3e - 804136a: 2b08 cmp r3, #8 - 804136c: d003 beq.n 8041376 - 804136e: f897 303e ldrb.w r3, [r7, #62] ; 0x3e - 8041372: 2b03 cmp r3, #3 - 8041374: d103 bne.n 804137e + 80412d2: f897 303e ldrb.w r3, [r7, #62] ; 0x3e + 80412d6: 2b08 cmp r3, #8 + 80412d8: d003 beq.n 80412e2 + 80412da: f897 303e ldrb.w r3, [r7, #62] ; 0x3e + 80412de: 2b03 cmp r3, #3 + 80412e0: d103 bne.n 80412ea release_handler(obj); - 8041376: 6bb8 ldr r0, [r7, #56] ; 0x38 - 8041378: f000 fc6c bl 8041c54 - 804137c: e0ad b.n 80414da + 80412e2: 6bb8 ldr r0, [r7, #56] ; 0x38 + 80412e4: f000 fc6c bl 8041bc0 + 80412e8: e0ad b.n 8041446 } else if(code == LV_EVENT_FOCUSED) { - 804137e: f897 303e ldrb.w r3, [r7, #62] ; 0x3e - 8041382: 2b0e cmp r3, #14 - 8041384: d137 bne.n 80413f6 + 80412ea: f897 303e ldrb.w r3, [r7, #62] ; 0x3e + 80412ee: 2b0e cmp r3, #14 + 80412f0: d137 bne.n 8041362 lv_group_t * g = lv_obj_get_group(obj); - 8041386: 6bb8 ldr r0, [r7, #56] ; 0x38 - 8041388: f7c5 fa42 bl 8006810 - 804138c: 6278 str r0, [r7, #36] ; 0x24 + 80412f2: 6bb8 ldr r0, [r7, #56] ; 0x38 + 80412f4: f7c5 fa56 bl 80067a4 + 80412f8: 6278 str r0, [r7, #36] ; 0x24 bool editing = lv_group_get_editing(g); - 804138e: 6a78 ldr r0, [r7, #36] ; 0x24 - 8041390: f7c1 fdb1 bl 8002ef6 - 8041394: 4603 mov r3, r0 - 8041396: f887 3023 strb.w r3, [r7, #35] ; 0x23 + 80412fa: 6a78 ldr r0, [r7, #36] ; 0x24 + 80412fc: f7c1 fdc5 bl 8002e8a + 8041300: 4603 mov r3, r0 + 8041302: f887 3023 strb.w r3, [r7, #35] ; 0x23 lv_indev_type_t indev_type = lv_indev_get_type(lv_indev_get_act()); - 804139a: f7c1 ffbd bl 8003318 - 804139e: 4603 mov r3, r0 - 80413a0: 4618 mov r0, r3 - 80413a2: f7c1 ffc3 bl 800332c - 80413a6: 4603 mov r3, r0 - 80413a8: f887 3022 strb.w r3, [r7, #34] ; 0x22 + 8041306: f7c1 ffd1 bl 80032ac + 804130a: 4603 mov r3, r0 + 804130c: 4618 mov r0, r3 + 804130e: f7c1 ffd7 bl 80032c0 + 8041312: 4603 mov r3, r0 + 8041314: f887 3022 strb.w r3, [r7, #34] ; 0x22 /*Encoders need special handling*/ if(indev_type == LV_INDEV_TYPE_ENCODER) { - 80413ac: f897 3022 ldrb.w r3, [r7, #34] ; 0x22 - 80413b0: 2b04 cmp r3, #4 - 80413b2: d11b bne.n 80413ec + 8041318: f897 3022 ldrb.w r3, [r7, #34] ; 0x22 + 804131c: 2b04 cmp r3, #4 + 804131e: d11b bne.n 8041358 /*In navigate mode revert the original value*/ if(!editing) { - 80413b4: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 80413b8: f083 0301 eor.w r3, r3, #1 - 80413bc: b2db uxtb r3, r3 - 80413be: 2b00 cmp r3, #0 - 80413c0: d00f beq.n 80413e2 + 8041320: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 + 8041324: f083 0301 eor.w r3, r3, #1 + 8041328: b2db uxtb r3, r3 + 804132a: 2b00 cmp r3, #0 + 804132c: d00f beq.n 804134e if(roller->sel_opt_id != roller->sel_opt_id_ori) { - 80413c2: 6b7b ldr r3, [r7, #52] ; 0x34 - 80413c4: 8cda ldrh r2, [r3, #38] ; 0x26 - 80413c6: 6b7b ldr r3, [r7, #52] ; 0x34 - 80413c8: 8d1b ldrh r3, [r3, #40] ; 0x28 - 80413ca: 429a cmp r2, r3 - 80413cc: f000 8085 beq.w 80414da + 804132e: 6b7b ldr r3, [r7, #52] ; 0x34 + 8041330: 8cda ldrh r2, [r3, #38] ; 0x26 + 8041332: 6b7b ldr r3, [r7, #52] ; 0x34 + 8041334: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8041336: 429a cmp r2, r3 + 8041338: f000 8085 beq.w 8041446 roller->sel_opt_id = roller->sel_opt_id_ori; - 80413d0: 6b7b ldr r3, [r7, #52] ; 0x34 - 80413d2: 8d1a ldrh r2, [r3, #40] ; 0x28 - 80413d4: 6b7b ldr r3, [r7, #52] ; 0x34 - 80413d6: 84da strh r2, [r3, #38] ; 0x26 + 804133c: 6b7b ldr r3, [r7, #52] ; 0x34 + 804133e: 8d1a ldrh r2, [r3, #40] ; 0x28 + 8041340: 6b7b ldr r3, [r7, #52] ; 0x34 + 8041342: 84da strh r2, [r3, #38] ; 0x26 refr_position(obj, LV_ANIM_ON); - 80413d8: 2101 movs r1, #1 - 80413da: 6bb8 ldr r0, [r7, #56] ; 0x38 - 80413dc: f000 fb44 bl 8041a68 - 80413e0: e07b b.n 80414da + 8041344: 2101 movs r1, #1 + 8041346: 6bb8 ldr r0, [r7, #56] ; 0x38 + 8041348: f000 fb44 bl 80419d4 + 804134c: e07b b.n 8041446 } } /*Save the current state when entered to edit mode*/ else { roller->sel_opt_id_ori = roller->sel_opt_id; - 80413e2: 6b7b ldr r3, [r7, #52] ; 0x34 - 80413e4: 8cda ldrh r2, [r3, #38] ; 0x26 - 80413e6: 6b7b ldr r3, [r7, #52] ; 0x34 - 80413e8: 851a strh r2, [r3, #40] ; 0x28 - 80413ea: e076 b.n 80414da + 804134e: 6b7b ldr r3, [r7, #52] ; 0x34 + 8041350: 8cda ldrh r2, [r3, #38] ; 0x26 + 8041352: 6b7b ldr r3, [r7, #52] ; 0x34 + 8041354: 851a strh r2, [r3, #40] ; 0x28 + 8041356: e076 b.n 8041446 } } else { roller->sel_opt_id_ori = roller->sel_opt_id; /*Save the current value. Used to revert this state if - 80413ec: 6b7b ldr r3, [r7, #52] ; 0x34 - 80413ee: 8cda ldrh r2, [r3, #38] ; 0x26 - 80413f0: 6b7b ldr r3, [r7, #52] ; 0x34 - 80413f2: 851a strh r2, [r3, #40] ; 0x28 - 80413f4: e071 b.n 80414da + 8041358: 6b7b ldr r3, [r7, #52] ; 0x34 + 804135a: 8cda ldrh r2, [r3, #38] ; 0x26 + 804135c: 6b7b ldr r3, [r7, #52] ; 0x34 + 804135e: 851a strh r2, [r3, #40] ; 0x28 + 8041360: e071 b.n 8041446 ENTER won't be pressed*/ } } else if(code == LV_EVENT_DEFOCUSED) { - 80413f6: f897 303e ldrb.w r3, [r7, #62] ; 0x3e - 80413fa: 2b0f cmp r3, #15 - 80413fc: d10e bne.n 804141c + 8041362: f897 303e ldrb.w r3, [r7, #62] ; 0x3e + 8041366: 2b0f cmp r3, #15 + 8041368: d10e bne.n 8041388 /*Revert the original state*/ if(roller->sel_opt_id != roller->sel_opt_id_ori) { - 80413fe: 6b7b ldr r3, [r7, #52] ; 0x34 - 8041400: 8cda ldrh r2, [r3, #38] ; 0x26 - 8041402: 6b7b ldr r3, [r7, #52] ; 0x34 - 8041404: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8041406: 429a cmp r2, r3 - 8041408: d067 beq.n 80414da + 804136a: 6b7b ldr r3, [r7, #52] ; 0x34 + 804136c: 8cda ldrh r2, [r3, #38] ; 0x26 + 804136e: 6b7b ldr r3, [r7, #52] ; 0x34 + 8041370: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8041372: 429a cmp r2, r3 + 8041374: d067 beq.n 8041446 roller->sel_opt_id = roller->sel_opt_id_ori; - 804140a: 6b7b ldr r3, [r7, #52] ; 0x34 - 804140c: 8d1a ldrh r2, [r3, #40] ; 0x28 - 804140e: 6b7b ldr r3, [r7, #52] ; 0x34 - 8041410: 84da strh r2, [r3, #38] ; 0x26 + 8041376: 6b7b ldr r3, [r7, #52] ; 0x34 + 8041378: 8d1a ldrh r2, [r3, #40] ; 0x28 + 804137a: 6b7b ldr r3, [r7, #52] ; 0x34 + 804137c: 84da strh r2, [r3, #38] ; 0x26 refr_position(obj, LV_ANIM_ON); - 8041412: 2101 movs r1, #1 - 8041414: 6bb8 ldr r0, [r7, #56] ; 0x38 - 8041416: f000 fb27 bl 8041a68 - 804141a: e05e b.n 80414da + 804137e: 2101 movs r1, #1 + 8041380: 6bb8 ldr r0, [r7, #56] ; 0x38 + 8041382: f000 fb27 bl 80419d4 + 8041386: e05e b.n 8041446 } } else if(code == LV_EVENT_KEY) { - 804141c: f897 303e ldrb.w r3, [r7, #62] ; 0x3e - 8041420: 2b0d cmp r3, #13 - 8041422: d141 bne.n 80414a8 + 8041388: f897 303e ldrb.w r3, [r7, #62] ; 0x3e + 804138c: 2b0d cmp r3, #13 + 804138e: d141 bne.n 8041414 char c = *((char *)lv_event_get_param(e)); - 8041424: 6838 ldr r0, [r7, #0] - 8041426: f7c1 f8cf bl 80025c8 - 804142a: 4603 mov r3, r0 - 804142c: 781b ldrb r3, [r3, #0] - 804142e: f887 302f strb.w r3, [r7, #47] ; 0x2f + 8041390: 6838 ldr r0, [r7, #0] + 8041392: f7c1 f8e3 bl 800255c + 8041396: 4603 mov r3, r0 + 8041398: 781b ldrb r3, [r3, #0] + 804139a: f887 302f strb.w r3, [r7, #47] ; 0x2f if(c == LV_KEY_RIGHT || c == LV_KEY_DOWN) { - 8041432: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8041436: 2b13 cmp r3, #19 - 8041438: d003 beq.n 8041442 - 804143a: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 804143e: 2b12 cmp r3, #18 - 8041440: d116 bne.n 8041470 + 804139e: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 80413a2: 2b13 cmp r3, #19 + 80413a4: d003 beq.n 80413ae + 80413a6: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 80413aa: 2b12 cmp r3, #18 + 80413ac: d116 bne.n 80413dc if(roller->sel_opt_id + 1 < roller->option_cnt) { - 8041442: 6b7b ldr r3, [r7, #52] ; 0x34 - 8041444: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8041446: 3301 adds r3, #1 - 8041448: 6b7a ldr r2, [r7, #52] ; 0x34 - 804144a: 8c92 ldrh r2, [r2, #36] ; 0x24 - 804144c: 4293 cmp r3, r2 - 804144e: da44 bge.n 80414da + 80413ae: 6b7b ldr r3, [r7, #52] ; 0x34 + 80413b0: 8cdb ldrh r3, [r3, #38] ; 0x26 + 80413b2: 3301 adds r3, #1 + 80413b4: 6b7a ldr r2, [r7, #52] ; 0x34 + 80413b6: 8c92 ldrh r2, [r2, #36] ; 0x24 + 80413b8: 4293 cmp r3, r2 + 80413ba: da44 bge.n 8041446 uint16_t ori_id = roller->sel_opt_id_ori; /*lv_roller_set_selected will overwrite this*/ - 8041450: 6b7b ldr r3, [r7, #52] ; 0x34 - 8041452: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8041454: 857b strh r3, [r7, #42] ; 0x2a + 80413bc: 6b7b ldr r3, [r7, #52] ; 0x34 + 80413be: 8d1b ldrh r3, [r3, #40] ; 0x28 + 80413c0: 857b strh r3, [r7, #42] ; 0x2a lv_roller_set_selected(obj, roller->sel_opt_id + 1, LV_ANIM_ON); - 8041456: 6b7b ldr r3, [r7, #52] ; 0x34 - 8041458: 8cdb ldrh r3, [r3, #38] ; 0x26 - 804145a: 3301 adds r3, #1 - 804145c: b29b uxth r3, r3 - 804145e: 2201 movs r2, #1 - 8041460: 4619 mov r1, r3 - 8041462: 6bb8 ldr r0, [r7, #56] ; 0x38 - 8041464: f7ff fe6c bl 8041140 + 80413c2: 6b7b ldr r3, [r7, #52] ; 0x34 + 80413c4: 8cdb ldrh r3, [r3, #38] ; 0x26 + 80413c6: 3301 adds r3, #1 + 80413c8: b29b uxth r3, r3 + 80413ca: 2201 movs r2, #1 + 80413cc: 4619 mov r1, r3 + 80413ce: 6bb8 ldr r0, [r7, #56] ; 0x38 + 80413d0: f7ff fe6c bl 80410ac roller->sel_opt_id_ori = ori_id; - 8041468: 6b7b ldr r3, [r7, #52] ; 0x34 - 804146a: 8d7a ldrh r2, [r7, #42] ; 0x2a - 804146c: 851a strh r2, [r3, #40] ; 0x28 + 80413d4: 6b7b ldr r3, [r7, #52] ; 0x34 + 80413d6: 8d7a ldrh r2, [r7, #42] ; 0x2a + 80413d8: 851a strh r2, [r3, #40] ; 0x28 if(roller->sel_opt_id + 1 < roller->option_cnt) { - 804146e: e034 b.n 80414da + 80413da: e034 b.n 8041446 } } else if(c == LV_KEY_LEFT || c == LV_KEY_UP) { - 8041470: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8041474: 2b14 cmp r3, #20 - 8041476: d003 beq.n 8041480 - 8041478: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 804147c: 2b11 cmp r3, #17 - 804147e: d12c bne.n 80414da + 80413dc: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 80413e0: 2b14 cmp r3, #20 + 80413e2: d003 beq.n 80413ec + 80413e4: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 80413e8: 2b11 cmp r3, #17 + 80413ea: d12c bne.n 8041446 if(roller->sel_opt_id > 0) { - 8041480: 6b7b ldr r3, [r7, #52] ; 0x34 - 8041482: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8041484: 2b00 cmp r3, #0 - 8041486: d028 beq.n 80414da + 80413ec: 6b7b ldr r3, [r7, #52] ; 0x34 + 80413ee: 8cdb ldrh r3, [r3, #38] ; 0x26 + 80413f0: 2b00 cmp r3, #0 + 80413f2: d028 beq.n 8041446 uint16_t ori_id = roller->sel_opt_id_ori; /*lv_roller_set_selected will overwrite this*/ - 8041488: 6b7b ldr r3, [r7, #52] ; 0x34 - 804148a: 8d1b ldrh r3, [r3, #40] ; 0x28 - 804148c: 85bb strh r3, [r7, #44] ; 0x2c + 80413f4: 6b7b ldr r3, [r7, #52] ; 0x34 + 80413f6: 8d1b ldrh r3, [r3, #40] ; 0x28 + 80413f8: 85bb strh r3, [r7, #44] ; 0x2c lv_roller_set_selected(obj, roller->sel_opt_id - 1, LV_ANIM_ON); - 804148e: 6b7b ldr r3, [r7, #52] ; 0x34 - 8041490: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8041492: 3b01 subs r3, #1 - 8041494: b29b uxth r3, r3 - 8041496: 2201 movs r2, #1 - 8041498: 4619 mov r1, r3 - 804149a: 6bb8 ldr r0, [r7, #56] ; 0x38 - 804149c: f7ff fe50 bl 8041140 + 80413fa: 6b7b ldr r3, [r7, #52] ; 0x34 + 80413fc: 8cdb ldrh r3, [r3, #38] ; 0x26 + 80413fe: 3b01 subs r3, #1 + 8041400: b29b uxth r3, r3 + 8041402: 2201 movs r2, #1 + 8041404: 4619 mov r1, r3 + 8041406: 6bb8 ldr r0, [r7, #56] ; 0x38 + 8041408: f7ff fe50 bl 80410ac roller->sel_opt_id_ori = ori_id; - 80414a0: 6b7b ldr r3, [r7, #52] ; 0x34 - 80414a2: 8dba ldrh r2, [r7, #44] ; 0x2c - 80414a4: 851a strh r2, [r3, #40] ; 0x28 - 80414a6: e018 b.n 80414da + 804140c: 6b7b ldr r3, [r7, #52] ; 0x34 + 804140e: 8dba ldrh r2, [r7, #44] ; 0x2c + 8041410: 851a strh r2, [r3, #40] ; 0x28 + 8041412: e018 b.n 8041446 } } } else if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) { - 80414a8: f897 303e ldrb.w r3, [r7, #62] ; 0x3e - 80414ac: 2b13 cmp r3, #19 - 80414ae: d107 bne.n 80414c0 + 8041414: f897 303e ldrb.w r3, [r7, #62] ; 0x3e + 8041418: 2b13 cmp r3, #19 + 804141a: d107 bne.n 804142c lv_obj_t * label = get_label(obj); - 80414b0: 6bb8 ldr r0, [r7, #56] ; 0x38 - 80414b2: f000 fd6d bl 8041f90 - 80414b6: 6338 str r0, [r7, #48] ; 0x30 + 804141c: 6bb8 ldr r0, [r7, #56] ; 0x38 + 804141e: f000 fd6d bl 8041efc + 8041422: 6338 str r0, [r7, #48] ; 0x30 lv_obj_refresh_ext_draw_size(label); - 80414b8: 6b38 ldr r0, [r7, #48] ; 0x30 - 80414ba: f7c7 fce8 bl 8008e8e - 80414be: e00c b.n 80414da + 8041424: 6b38 ldr r0, [r7, #48] ; 0x30 + 8041426: f7c7 fcfc bl 8008e22 + 804142a: e00c b.n 8041446 } else if(code == LV_EVENT_DRAW_MAIN || code == LV_EVENT_DRAW_POST) { - 80414c0: f897 303e ldrb.w r3, [r7, #62] ; 0x3e - 80414c4: 2b15 cmp r3, #21 - 80414c6: d003 beq.n 80414d0 - 80414c8: f897 303e ldrb.w r3, [r7, #62] ; 0x3e - 80414cc: 2b18 cmp r3, #24 - 80414ce: d104 bne.n 80414da + 804142c: f897 303e ldrb.w r3, [r7, #62] ; 0x3e + 8041430: 2b15 cmp r3, #21 + 8041432: d003 beq.n 804143c + 8041434: f897 303e ldrb.w r3, [r7, #62] ; 0x3e + 8041438: 2b18 cmp r3, #24 + 804143a: d104 bne.n 8041446 draw_main(e); - 80414d0: 6838 ldr r0, [r7, #0] - 80414d2: f000 f861 bl 8041598 - 80414d6: e000 b.n 80414da + 804143c: 6838 ldr r0, [r7, #0] + 804143e: f000 f861 bl 8041504 + 8041442: e000 b.n 8041446 if(res != LV_RES_OK) return; - 80414d8: bf00 nop + 8041444: bf00 nop } } - 80414da: 3740 adds r7, #64 ; 0x40 - 80414dc: 46bd mov sp, r7 - 80414de: bd80 pop {r7, pc} - 80414e0: 08070ac4 .word 0x08070ac4 - 80414e4: 08042033 .word 0x08042033 + 8041446: 3740 adds r7, #64 ; 0x40 + 8041448: 46bd mov sp, r7 + 804144a: bd80 pop {r7, pc} + 804144c: 08070a1c .word 0x08070a1c + 8041450: 08041f9f .word 0x08041f9f -080414e8 : +08041454 : static void lv_roller_label_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 80414e8: b580 push {r7, lr} - 80414ea: b088 sub sp, #32 - 80414ec: af00 add r7, sp, #0 - 80414ee: 6078 str r0, [r7, #4] - 80414f0: 6039 str r1, [r7, #0] + 8041454: b580 push {r7, lr} + 8041456: b088 sub sp, #32 + 8041458: af00 add r7, sp, #0 + 804145a: 6078 str r0, [r7, #4] + 804145c: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res; lv_event_code_t code = lv_event_get_code(e); - 80414f2: 6838 ldr r0, [r7, #0] - 80414f4: f7c1 f85a bl 80025ac - 80414f8: 4603 mov r3, r0 - 80414fa: 77fb strb r3, [r7, #31] + 804145e: 6838 ldr r0, [r7, #0] + 8041460: f7c1 f86e bl 8002540 + 8041464: 4603 mov r3, r0 + 8041466: 77fb strb r3, [r7, #31] /*LV_EVENT_DRAW_MAIN will be called in the draw function*/ if(code != LV_EVENT_DRAW_MAIN) { - 80414fc: 7ffb ldrb r3, [r7, #31] - 80414fe: 2b15 cmp r3, #21 - 8041500: d008 beq.n 8041514 + 8041468: 7ffb ldrb r3, [r7, #31] + 804146a: 2b15 cmp r3, #21 + 804146c: d008 beq.n 8041480 /* Call the ancestor's event handler */ res = lv_obj_event_base(MY_CLASS_LABEL, e); - 8041502: 6839 ldr r1, [r7, #0] - 8041504: 4823 ldr r0, [pc, #140] ; (8041594 ) - 8041506: f7c0 fffd bl 8002504 - 804150a: 4603 mov r3, r0 - 804150c: 77bb strb r3, [r7, #30] + 804146e: 6839 ldr r1, [r7, #0] + 8041470: 4823 ldr r0, [pc, #140] ; (8041500 ) + 8041472: f7c1 f811 bl 8002498 + 8041476: 4603 mov r3, r0 + 8041478: 77bb strb r3, [r7, #30] if(res != LV_RES_OK) return; - 804150e: 7fbb ldrb r3, [r7, #30] - 8041510: 2b01 cmp r3, #1 - 8041512: d13a bne.n 804158a + 804147a: 7fbb ldrb r3, [r7, #30] + 804147c: 2b01 cmp r3, #1 + 804147e: d13a bne.n 80414f6 } lv_obj_t * label = lv_event_get_target(e); - 8041514: 6838 ldr r0, [r7, #0] - 8041516: f7c1 f833 bl 8002580 - 804151a: 61b8 str r0, [r7, #24] + 8041480: 6838 ldr r0, [r7, #0] + 8041482: f7c1 f847 bl 8002514 + 8041486: 61b8 str r0, [r7, #24] if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) { - 804151c: 7ffb ldrb r3, [r7, #31] - 804151e: 2b13 cmp r3, #19 - 8041520: d120 bne.n 8041564 + 8041488: 7ffb ldrb r3, [r7, #31] + 804148a: 2b13 cmp r3, #19 + 804148c: d120 bne.n 80414d0 /*If the selected text has a larger font it needs some extra space to draw it*/ lv_coord_t * s = lv_event_get_param(e); - 8041522: 6838 ldr r0, [r7, #0] - 8041524: f7c1 f850 bl 80025c8 - 8041528: 6178 str r0, [r7, #20] + 804148e: 6838 ldr r0, [r7, #0] + 8041490: f7c1 f864 bl 800255c + 8041494: 6178 str r0, [r7, #20] lv_obj_t * obj = lv_obj_get_parent(label); - 804152a: 69b8 ldr r0, [r7, #24] - 804152c: f7ce f8ee bl 800f70c - 8041530: 6138 str r0, [r7, #16] + 8041496: 69b8 ldr r0, [r7, #24] + 8041498: f7ce f8ee bl 800f678 + 804149c: 6138 str r0, [r7, #16] lv_coord_t sel_w = get_selected_label_width(obj); - 8041532: 6938 ldr r0, [r7, #16] - 8041534: f000 fd39 bl 8041faa - 8041538: 4603 mov r3, r0 - 804153a: 81fb strh r3, [r7, #14] + 804149e: 6938 ldr r0, [r7, #16] + 80414a0: f000 fd39 bl 8041f16 + 80414a4: 4603 mov r3, r0 + 80414a6: 81fb strh r3, [r7, #14] lv_coord_t label_w = lv_obj_get_width(label); - 804153c: 69b8 ldr r0, [r7, #24] - 804153e: f7c8 fe03 bl 800a148 - 8041542: 4603 mov r3, r0 - 8041544: 81bb strh r3, [r7, #12] + 80414a8: 69b8 ldr r0, [r7, #24] + 80414aa: f7c8 fe17 bl 800a0dc + 80414ae: 4603 mov r3, r0 + 80414b0: 81bb strh r3, [r7, #12] *s = LV_MAX(*s, sel_w - label_w); - 8041546: f9b7 200e ldrsh.w r2, [r7, #14] - 804154a: f9b7 300c ldrsh.w r3, [r7, #12] - 804154e: 1ad3 subs r3, r2, r3 - 8041550: 697a ldr r2, [r7, #20] - 8041552: f9b2 2000 ldrsh.w r2, [r2] - 8041556: 4293 cmp r3, r2 - 8041558: bfb8 it lt - 804155a: 4613 movlt r3, r2 - 804155c: b21a sxth r2, r3 - 804155e: 697b ldr r3, [r7, #20] - 8041560: 801a strh r2, [r3, #0] - 8041562: e013 b.n 804158c + 80414b2: f9b7 200e ldrsh.w r2, [r7, #14] + 80414b6: f9b7 300c ldrsh.w r3, [r7, #12] + 80414ba: 1ad3 subs r3, r2, r3 + 80414bc: 697a ldr r2, [r7, #20] + 80414be: f9b2 2000 ldrsh.w r2, [r2] + 80414c2: 4293 cmp r3, r2 + 80414c4: bfb8 it lt + 80414c6: 4613 movlt r3, r2 + 80414c8: b21a sxth r2, r3 + 80414ca: 697b ldr r3, [r7, #20] + 80414cc: 801a strh r2, [r3, #0] + 80414ce: e013 b.n 80414f8 } else if(code == LV_EVENT_SIZE_CHANGED) { - 8041564: 7ffb ldrb r3, [r7, #31] - 8041566: 2b29 cmp r3, #41 ; 0x29 - 8041568: d108 bne.n 804157c + 80414d0: 7ffb ldrb r3, [r7, #31] + 80414d2: 2b29 cmp r3, #41 ; 0x29 + 80414d4: d108 bne.n 80414e8 refr_position(lv_obj_get_parent(label), LV_ANIM_OFF); - 804156a: 69b8 ldr r0, [r7, #24] - 804156c: f7ce f8ce bl 800f70c - 8041570: 4603 mov r3, r0 - 8041572: 2100 movs r1, #0 - 8041574: 4618 mov r0, r3 - 8041576: f000 fa77 bl 8041a68 - 804157a: e007 b.n 804158c + 80414d6: 69b8 ldr r0, [r7, #24] + 80414d8: f7ce f8ce bl 800f678 + 80414dc: 4603 mov r3, r0 + 80414de: 2100 movs r1, #0 + 80414e0: 4618 mov r0, r3 + 80414e2: f000 fa77 bl 80419d4 + 80414e6: e007 b.n 80414f8 } else if(code == LV_EVENT_DRAW_MAIN) { - 804157c: 7ffb ldrb r3, [r7, #31] - 804157e: 2b15 cmp r3, #21 - 8041580: d104 bne.n 804158c + 80414e8: 7ffb ldrb r3, [r7, #31] + 80414ea: 2b15 cmp r3, #21 + 80414ec: d104 bne.n 80414f8 draw_label(e); - 8041582: 6838 ldr r0, [r7, #0] - 8041584: f000 f962 bl 804184c - 8041588: e000 b.n 804158c + 80414ee: 6838 ldr r0, [r7, #0] + 80414f0: f000 f962 bl 80417b8 + 80414f4: e000 b.n 80414f8 if(res != LV_RES_OK) return; - 804158a: bf00 nop + 80414f6: bf00 nop } } - 804158c: 3720 adds r7, #32 - 804158e: 46bd mov sp, r7 - 8041590: bd80 pop {r7, pc} - 8041592: bf00 nop - 8041594: 08070ae0 .word 0x08070ae0 + 80414f8: 3720 adds r7, #32 + 80414fa: 46bd mov sp, r7 + 80414fc: bd80 pop {r7, pc} + 80414fe: bf00 nop + 8041500: 08070a38 .word 0x08070a38 -08041598 : +08041504 : static void draw_main(lv_event_t * e) { - 8041598: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 804159c: b0ac sub sp, #176 ; 0xb0 - 804159e: af04 add r7, sp, #16 - 80415a0: 6078 str r0, [r7, #4] + 8041504: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} + 8041508: b0ac sub sp, #176 ; 0xb0 + 804150a: af04 add r7, sp, #16 + 804150c: 6078 str r0, [r7, #4] lv_event_code_t code = lv_event_get_code(e); - 80415a2: 6878 ldr r0, [r7, #4] - 80415a4: f7c1 f802 bl 80025ac - 80415a8: 4603 mov r3, r0 - 80415aa: f887 309f strb.w r3, [r7, #159] ; 0x9f + 804150e: 6878 ldr r0, [r7, #4] + 8041510: f7c1 f816 bl 8002540 + 8041514: 4603 mov r3, r0 + 8041516: f887 309f strb.w r3, [r7, #159] ; 0x9f lv_obj_t * obj = lv_event_get_target(e); - 80415ae: 6878 ldr r0, [r7, #4] - 80415b0: f7c0 ffe6 bl 8002580 - 80415b4: f8c7 0098 str.w r0, [r7, #152] ; 0x98 + 804151a: 6878 ldr r0, [r7, #4] + 804151c: f7c0 fffa bl 8002514 + 8041520: f8c7 0098 str.w r0, [r7, #152] ; 0x98 if(code == LV_EVENT_DRAW_MAIN) { - 80415b8: f897 309f ldrb.w r3, [r7, #159] ; 0x9f - 80415bc: 2b15 cmp r3, #21 - 80415be: d121 bne.n 8041604 + 8041524: f897 309f ldrb.w r3, [r7, #159] ; 0x9f + 8041528: 2b15 cmp r3, #21 + 804152a: d121 bne.n 8041570 /*Draw the selected rectangle*/ lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 80415c0: 6878 ldr r0, [r7, #4] - 80415c2: f7c1 f8f3 bl 80027ac - 80415c6: 66b8 str r0, [r7, #104] ; 0x68 + 804152c: 6878 ldr r0, [r7, #4] + 804152e: f7c1 f907 bl 8002740 + 8041532: 66b8 str r0, [r7, #104] ; 0x68 lv_area_t sel_area; get_sel_area(obj, &sel_area); - 80415c8: f107 0360 add.w r3, r7, #96 ; 0x60 - 80415cc: 4619 mov r1, r3 - 80415ce: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 80415d2: f000 f9e4 bl 804199e + 8041534: f107 0360 add.w r3, r7, #96 ; 0x60 + 8041538: 4619 mov r1, r3 + 804153a: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 804153e: f000 f9e4 bl 804190a lv_draw_rect_dsc_t sel_dsc; lv_draw_rect_dsc_init(&sel_dsc); - 80415d6: f107 030c add.w r3, r7, #12 - 80415da: 4618 mov r0, r3 - 80415dc: f7d4 f90a bl 80157f4 + 8041542: f107 030c add.w r3, r7, #12 + 8041546: 4618 mov r0, r3 + 8041548: f7d4 f90a bl 8015760 lv_obj_init_draw_rect_dsc(obj, LV_PART_SELECTED, &sel_dsc); - 80415e0: f107 030c add.w r3, r7, #12 - 80415e4: 461a mov r2, r3 - 80415e6: f44f 2180 mov.w r1, #262144 ; 0x40000 - 80415ea: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 80415ee: f7c6 ffea bl 80085c6 + 804154c: f107 030c add.w r3, r7, #12 + 8041550: 461a mov r2, r3 + 8041552: f44f 2180 mov.w r1, #262144 ; 0x40000 + 8041556: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 804155a: f7c6 fffe bl 800855a lv_draw_rect(draw_ctx, &sel_dsc, &sel_area); - 80415f2: f107 0260 add.w r2, r7, #96 ; 0x60 - 80415f6: f107 030c add.w r3, r7, #12 - 80415fa: 4619 mov r1, r3 - 80415fc: 6eb8 ldr r0, [r7, #104] ; 0x68 - 80415fe: f7d4 f93b bl 8015878 + 804155e: f107 0260 add.w r2, r7, #96 ; 0x60 + 8041562: f107 030c add.w r3, r7, #12 + 8041566: 4619 mov r1, r3 + 8041568: 6eb8 ldr r0, [r7, #104] ; 0x68 + 804156a: f7d4 f93b bl 80157e4 draw_ctx->clip_area = &mask_sel; lv_draw_label(draw_ctx, &label_dsc, &label_sel_area, lv_label_get_text(label), NULL); draw_ctx->clip_area = clip_area_ori; } } } - 8041602: e11e b.n 8041842 + 804156e: e11e b.n 80417ae else if(code == LV_EVENT_DRAW_POST) { - 8041604: f897 309f ldrb.w r3, [r7, #159] ; 0x9f - 8041608: 2b18 cmp r3, #24 - 804160a: f040 811a bne.w 8041842 + 8041570: f897 309f ldrb.w r3, [r7, #159] ; 0x9f + 8041574: 2b18 cmp r3, #24 + 8041576: f040 811a bne.w 80417ae lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 804160e: 6878 ldr r0, [r7, #4] - 8041610: f7c1 f8cc bl 80027ac - 8041614: f8c7 0094 str.w r0, [r7, #148] ; 0x94 + 804157a: 6878 ldr r0, [r7, #4] + 804157c: f7c1 f8e0 bl 8002740 + 8041580: f8c7 0094 str.w r0, [r7, #148] ; 0x94 lv_draw_label_dsc_init(&label_dsc); - 8041618: f107 030c add.w r3, r7, #12 - 804161c: 4618 mov r0, r3 - 804161e: f7d0 fdb5 bl 801218c + 8041584: f107 030c add.w r3, r7, #12 + 8041588: 4618 mov r0, r3 + 804158a: f7d0 fdb5 bl 80120f8 lv_obj_init_draw_label_dsc(obj, LV_PART_SELECTED, &label_dsc); - 8041622: f107 030c add.w r3, r7, #12 - 8041626: 461a mov r2, r3 - 8041628: f44f 2180 mov.w r1, #262144 ; 0x40000 - 804162c: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 8041630: f7c7 f9b7 bl 80089a2 + 804158e: f107 030c add.w r3, r7, #12 + 8041592: 461a mov r2, r3 + 8041594: f44f 2180 mov.w r1, #262144 ; 0x40000 + 8041598: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 804159c: f7c7 f9cb bl 8008936 get_sel_area(obj, &sel_area); - 8041634: f107 0358 add.w r3, r7, #88 ; 0x58 - 8041638: 4619 mov r1, r3 - 804163a: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 804163e: f000 f9ae bl 804199e + 80415a0: f107 0358 add.w r3, r7, #88 ; 0x58 + 80415a4: 4619 mov r1, r3 + 80415a6: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 80415aa: f000 f9ae bl 804190a area_ok = _lv_area_intersect(&mask_sel, draw_ctx->clip_area, &sel_area); - 8041642: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 8041646: 6899 ldr r1, [r3, #8] - 8041648: f107 0258 add.w r2, r7, #88 ; 0x58 - 804164c: f107 0350 add.w r3, r7, #80 ; 0x50 - 8041650: 4618 mov r0, r3 - 8041652: f7ef fd29 bl 80310a8 <_lv_area_intersect> - 8041656: 4603 mov r3, r0 - 8041658: f887 3093 strb.w r3, [r7, #147] ; 0x93 + 80415ae: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 80415b2: 6899 ldr r1, [r3, #8] + 80415b4: f107 0258 add.w r2, r7, #88 ; 0x58 + 80415b8: f107 0350 add.w r3, r7, #80 ; 0x50 + 80415bc: 4618 mov r0, r3 + 80415be: f7ef fd29 bl 8031014 <_lv_area_intersect> + 80415c2: 4603 mov r3, r0 + 80415c4: f887 3093 strb.w r3, [r7, #147] ; 0x93 if(area_ok) { - 804165c: f897 3093 ldrb.w r3, [r7, #147] ; 0x93 - 8041660: 2b00 cmp r3, #0 - 8041662: f000 80ee beq.w 8041842 + 80415c8: f897 3093 ldrb.w r3, [r7, #147] ; 0x93 + 80415cc: 2b00 cmp r3, #0 + 80415ce: f000 80ee beq.w 80417ae lv_obj_t * label = get_label(obj); - 8041666: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 804166a: f000 fc91 bl 8041f90 - 804166e: f8c7 008c str.w r0, [r7, #140] ; 0x8c + 80415d2: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 80415d6: f000 fc91 bl 8041efc + 80415da: f8c7 008c str.w r0, [r7, #140] ; 0x8c lv_txt_get_size(&res_p, lv_label_get_text(label), label_dsc.font, label_dsc.letter_space, label_dsc.line_space, - 8041672: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c - 8041676: f7fd fca5 bl 803efc4 - 804167a: 4680 mov r8, r0 - 804167c: 68fd ldr r5, [r7, #12] - 804167e: f9b7 6020 ldrsh.w r6, [r7, #32] - 8041682: f9b7 401e ldrsh.w r4, [r7, #30] - 8041686: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 804168a: f7c8 fd5d bl 800a148 - 804168e: 4603 mov r3, r0 - 8041690: 461a mov r2, r3 - 8041692: f107 004c add.w r0, r7, #76 ; 0x4c - 8041696: 2302 movs r3, #2 - 8041698: 9302 str r3, [sp, #8] - 804169a: 9201 str r2, [sp, #4] - 804169c: 9400 str r4, [sp, #0] - 804169e: 4633 mov r3, r6 - 80416a0: 462a mov r2, r5 - 80416a2: 4641 mov r1, r8 - 80416a4: f7f4 fcf1 bl 803608a + 80415de: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c + 80415e2: f7fd fca5 bl 803ef30 + 80415e6: 4680 mov r8, r0 + 80415e8: 68fd ldr r5, [r7, #12] + 80415ea: f9b7 6020 ldrsh.w r6, [r7, #32] + 80415ee: f9b7 401e ldrsh.w r4, [r7, #30] + 80415f2: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 80415f6: f7c8 fd71 bl 800a0dc + 80415fa: 4603 mov r3, r0 + 80415fc: 461a mov r2, r3 + 80415fe: f107 004c add.w r0, r7, #76 ; 0x4c + 8041602: 2302 movs r3, #2 + 8041604: 9302 str r3, [sp, #8] + 8041606: 9201 str r2, [sp, #4] + 8041608: 9400 str r4, [sp, #0] + 804160a: 4633 mov r3, r6 + 804160c: 462a mov r2, r5 + 804160e: 4641 mov r1, r8 + 8041610: f7f4 fcf1 bl 8035ff6 lv_coord_t roller_h = lv_obj_get_height(obj); - 80416a8: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 80416ac: f7c8 fd5a bl 800a164 - 80416b0: 4603 mov r3, r0 - 80416b2: f8a7 308a strh.w r3, [r7, #138] ; 0x8a + 8041614: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 8041618: f7c8 fd6e bl 800a0f8 + 804161c: 4603 mov r3, r0 + 804161e: f8a7 308a strh.w r3, [r7, #138] ; 0x8a int32_t label_y_prop = label->coords.y1 - (roller_h / 2 + - 80416b6: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 80416ba: f9b3 3016 ldrsh.w r3, [r3, #22] - 80416be: 4619 mov r1, r3 - 80416c0: f9b7 308a ldrsh.w r3, [r7, #138] ; 0x8a - 80416c4: 0fda lsrs r2, r3, #31 - 80416c6: 4413 add r3, r2 - 80416c8: 105b asrs r3, r3, #1 - 80416ca: b21b sxth r3, r3 - 80416cc: 461a mov r2, r3 + 8041622: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 8041626: f9b3 3016 ldrsh.w r3, [r3, #22] + 804162a: 4619 mov r1, r3 + 804162c: f9b7 308a ldrsh.w r3, [r7, #138] ; 0x8a + 8041630: 0fda lsrs r2, r3, #31 + 8041632: 4413 add r3, r2 + 8041634: 105b asrs r3, r3, #1 + 8041636: b21b sxth r3, r3 + 8041638: 461a mov r2, r3 obj->coords.y1); /*label offset from the middle line of the roller*/ - 80416ce: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 80416d2: f9b3 3016 ldrsh.w r3, [r3, #22] + 804163a: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 804163e: f9b3 3016 ldrsh.w r3, [r3, #22] int32_t label_y_prop = label->coords.y1 - (roller_h / 2 + - 80416d6: 4413 add r3, r2 - 80416d8: 1acb subs r3, r1, r3 - 80416da: f8c7 3084 str.w r3, [r7, #132] ; 0x84 + 8041642: 4413 add r3, r2 + 8041644: 1acb subs r3, r1, r3 + 8041646: f8c7 3084 str.w r3, [r7, #132] ; 0x84 label_y_prop = (label_y_prop * 16384) / lv_obj_get_height( - 80416de: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 80416e2: 039c lsls r4, r3, #14 - 80416e4: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c - 80416e8: f7c8 fd3c bl 800a164 - 80416ec: 4603 mov r3, r0 - 80416ee: fb94 f3f3 sdiv r3, r4, r3 - 80416f2: f8c7 3084 str.w r3, [r7, #132] ; 0x84 + 804164a: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 804164e: 039c lsls r4, r3, #14 + 8041650: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c + 8041654: f7c8 fd50 bl 800a0f8 + 8041658: 4603 mov r3, r0 + 804165a: fb94 f3f3 sdiv r3, r4, r3 + 804165e: f8c7 3084 str.w r3, [r7, #132] ; 0x84 const lv_font_t * normal_label_font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 80416f6: 2100 movs r1, #0 - 80416f8: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 80416fc: f7ff fc28 bl 8040f50 - 8041700: f8c7 0080 str.w r0, [r7, #128] ; 0x80 + 8041662: 2100 movs r1, #0 + 8041664: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 8041668: f7ff fc28 bl 8040ebc + 804166c: f8c7 0080 str.w r0, [r7, #128] ; 0x80 lv_coord_t corr = (label_dsc.font->line_height - normal_label_font->line_height) / 2; - 8041704: 68fb ldr r3, [r7, #12] - 8041706: f9b3 3008 ldrsh.w r3, [r3, #8] - 804170a: 461a mov r2, r3 - 804170c: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 - 8041710: f9b3 3008 ldrsh.w r3, [r3, #8] - 8041714: 1ad3 subs r3, r2, r3 - 8041716: 0fda lsrs r2, r3, #31 - 8041718: 4413 add r3, r2 - 804171a: 105b asrs r3, r3, #1 - 804171c: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 8041670: 68fb ldr r3, [r7, #12] + 8041672: f9b3 3008 ldrsh.w r3, [r3, #8] + 8041676: 461a mov r2, r3 + 8041678: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 + 804167c: f9b3 3008 ldrsh.w r3, [r3, #8] + 8041680: 1ad3 subs r3, r2, r3 + 8041682: 0fda lsrs r2, r3, #31 + 8041684: 4413 add r3, r2 + 8041686: 105b asrs r3, r3, #1 + 8041688: f8a7 307e strh.w r3, [r7, #126] ; 0x7e res_p.y -= corr; - 8041720: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8041724: b29a uxth r2, r3 - 8041726: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e - 804172a: 1ad3 subs r3, r2, r3 - 804172c: b29b uxth r3, r3 - 804172e: b21b sxth r3, r3 - 8041730: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 804168c: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8041690: b29a uxth r2, r3 + 8041692: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e + 8041696: 1ad3 subs r3, r2, r3 + 8041698: b29b uxth r3, r3 + 804169a: b21b sxth r3, r3 + 804169c: f8a7 304e strh.w r3, [r7, #78] ; 0x4e int32_t label_sel_y = roller_h / 2 + obj->coords.y1; - 8041734: f9b7 308a ldrsh.w r3, [r7, #138] ; 0x8a - 8041738: 0fda lsrs r2, r3, #31 - 804173a: 4413 add r3, r2 - 804173c: 105b asrs r3, r3, #1 - 804173e: b21b sxth r3, r3 - 8041740: 461a mov r2, r3 - 8041742: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 8041746: f9b3 3016 ldrsh.w r3, [r3, #22] - 804174a: 4413 add r3, r2 - 804174c: 67bb str r3, [r7, #120] ; 0x78 + 80416a0: f9b7 308a ldrsh.w r3, [r7, #138] ; 0x8a + 80416a4: 0fda lsrs r2, r3, #31 + 80416a6: 4413 add r3, r2 + 80416a8: 105b asrs r3, r3, #1 + 80416aa: b21b sxth r3, r3 + 80416ac: 461a mov r2, r3 + 80416ae: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 80416b2: f9b3 3016 ldrsh.w r3, [r3, #22] + 80416b6: 4413 add r3, r2 + 80416b8: 67bb str r3, [r7, #120] ; 0x78 label_sel_y += (label_y_prop * res_p.y) >> 14; - 804174e: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8041752: 461a mov r2, r3 - 8041754: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 - 8041758: fb02 f303 mul.w r3, r2, r3 - 804175c: 139b asrs r3, r3, #14 - 804175e: 6fba ldr r2, [r7, #120] ; 0x78 - 8041760: 4413 add r3, r2 - 8041762: 67bb str r3, [r7, #120] ; 0x78 + 80416ba: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 80416be: 461a mov r2, r3 + 80416c0: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 + 80416c4: fb02 f303 mul.w r3, r2, r3 + 80416c8: 139b asrs r3, r3, #14 + 80416ca: 6fba ldr r2, [r7, #120] ; 0x78 + 80416cc: 4413 add r3, r2 + 80416ce: 67bb str r3, [r7, #120] ; 0x78 label_sel_y -= corr; - 8041764: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e - 8041768: 6fba ldr r2, [r7, #120] ; 0x78 - 804176a: 1ad3 subs r3, r2, r3 - 804176c: 67bb str r3, [r7, #120] ; 0x78 + 80416d0: f9b7 307e ldrsh.w r3, [r7, #126] ; 0x7e + 80416d4: 6fba ldr r2, [r7, #120] ; 0x78 + 80416d6: 1ad3 subs r3, r2, r3 + 80416d8: 67bb str r3, [r7, #120] ; 0x78 lv_coord_t bwidth = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 804176e: 2100 movs r1, #0 - 8041770: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 8041774: f7ff fbd9 bl 8040f2a - 8041778: 4603 mov r3, r0 - 804177a: f8a7 3076 strh.w r3, [r7, #118] ; 0x76 + 80416da: 2100 movs r1, #0 + 80416dc: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 80416e0: f7ff fbd9 bl 8040e96 + 80416e4: 4603 mov r3, r0 + 80416e6: f8a7 3076 strh.w r3, [r7, #118] ; 0x76 lv_coord_t pleft = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 804177e: 2100 movs r1, #0 - 8041780: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 8041784: f7ff fbab bl 8040ede - 8041788: 4603 mov r3, r0 - 804178a: f8a7 3074 strh.w r3, [r7, #116] ; 0x74 + 80416ea: 2100 movs r1, #0 + 80416ec: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 80416f0: f7ff fbab bl 8040e4a + 80416f4: 4603 mov r3, r0 + 80416f6: f8a7 3074 strh.w r3, [r7, #116] ; 0x74 lv_coord_t pright = lv_obj_get_style_pad_right(obj, LV_PART_MAIN); - 804178e: 2100 movs r1, #0 - 8041790: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 - 8041794: f7ff fbb6 bl 8040f04 - 8041798: 4603 mov r3, r0 - 804179a: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 + 80416fa: 2100 movs r1, #0 + 80416fc: f8d7 0098 ldr.w r0, [r7, #152] ; 0x98 + 8041700: f7ff fbb6 bl 8040e70 + 8041704: 4603 mov r3, r0 + 8041706: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 label_sel_area.x1 = obj->coords.x1 + pleft + bwidth; - 804179e: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 80417a2: f9b3 3014 ldrsh.w r3, [r3, #20] - 80417a6: b29a uxth r2, r3 - 80417a8: f8b7 3074 ldrh.w r3, [r7, #116] ; 0x74 - 80417ac: 4413 add r3, r2 - 80417ae: b29a uxth r2, r3 - 80417b0: f8b7 3076 ldrh.w r3, [r7, #118] ; 0x76 - 80417b4: 4413 add r3, r2 - 80417b6: b29b uxth r3, r3 - 80417b8: b21b sxth r3, r3 - 80417ba: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 + 804170a: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 804170e: f9b3 3014 ldrsh.w r3, [r3, #20] + 8041712: b29a uxth r2, r3 + 8041714: f8b7 3074 ldrh.w r3, [r7, #116] ; 0x74 + 8041718: 4413 add r3, r2 + 804171a: b29a uxth r2, r3 + 804171c: f8b7 3076 ldrh.w r3, [r7, #118] ; 0x76 + 8041720: 4413 add r3, r2 + 8041722: b29b uxth r3, r3 + 8041724: b21b sxth r3, r3 + 8041726: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 label_sel_area.y1 = label_sel_y; - 80417be: 6fbb ldr r3, [r7, #120] ; 0x78 - 80417c0: b21b sxth r3, r3 - 80417c2: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 804172a: 6fbb ldr r3, [r7, #120] ; 0x78 + 804172c: b21b sxth r3, r3 + 804172e: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 label_sel_area.x2 = obj->coords.x2 - pright - bwidth; - 80417c6: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 - 80417ca: f9b3 3018 ldrsh.w r3, [r3, #24] - 80417ce: b29a uxth r2, r3 - 80417d0: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72 - 80417d4: 1ad3 subs r3, r2, r3 - 80417d6: b29a uxth r2, r3 - 80417d8: f8b7 3076 ldrh.w r3, [r7, #118] ; 0x76 - 80417dc: 1ad3 subs r3, r2, r3 - 80417de: b29b uxth r3, r3 - 80417e0: b21b sxth r3, r3 - 80417e2: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 + 8041732: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 + 8041736: f9b3 3018 ldrsh.w r3, [r3, #24] + 804173a: b29a uxth r2, r3 + 804173c: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72 + 8041740: 1ad3 subs r3, r2, r3 + 8041742: b29a uxth r2, r3 + 8041744: f8b7 3076 ldrh.w r3, [r7, #118] ; 0x76 + 8041748: 1ad3 subs r3, r2, r3 + 804174a: b29b uxth r3, r3 + 804174c: b21b sxth r3, r3 + 804174e: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 label_sel_area.y2 = label_sel_area.y1 + res_p.y; - 80417e6: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 - 80417ea: b29a uxth r2, r3 - 80417ec: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 80417f0: b29b uxth r3, r3 - 80417f2: 4413 add r3, r2 - 80417f4: b29b uxth r3, r3 - 80417f6: b21b sxth r3, r3 - 80417f8: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 8041752: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 + 8041756: b29a uxth r2, r3 + 8041758: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 804175c: b29b uxth r3, r3 + 804175e: 4413 add r3, r2 + 8041760: b29b uxth r3, r3 + 8041762: b21b sxth r3, r3 + 8041764: f8a7 304a strh.w r3, [r7, #74] ; 0x4a label_dsc.flag |= LV_TEXT_FLAG_EXPAND; - 80417fc: f897 3029 ldrb.w r3, [r7, #41] ; 0x29 - 8041800: f043 0302 orr.w r3, r3, #2 - 8041804: b2db uxtb r3, r3 - 8041806: f887 3029 strb.w r3, [r7, #41] ; 0x29 + 8041768: f897 3029 ldrb.w r3, [r7, #41] ; 0x29 + 804176c: f043 0302 orr.w r3, r3, #2 + 8041770: b2db uxtb r3, r3 + 8041772: f887 3029 strb.w r3, [r7, #41] ; 0x29 const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 804180a: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 804180e: 689b ldr r3, [r3, #8] - 8041810: 66fb str r3, [r7, #108] ; 0x6c + 8041776: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 804177a: 689b ldr r3, [r3, #8] + 804177c: 66fb str r3, [r7, #108] ; 0x6c draw_ctx->clip_area = &mask_sel; - 8041812: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 8041816: f107 0250 add.w r2, r7, #80 ; 0x50 - 804181a: 609a str r2, [r3, #8] + 804177e: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 8041782: f107 0250 add.w r2, r7, #80 ; 0x50 + 8041786: 609a str r2, [r3, #8] lv_draw_label(draw_ctx, &label_dsc, &label_sel_area, lv_label_get_text(label), NULL); - 804181c: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c - 8041820: f7fd fbd0 bl 803efc4 - 8041824: 4603 mov r3, r0 - 8041826: f107 0244 add.w r2, r7, #68 ; 0x44 - 804182a: f107 010c add.w r1, r7, #12 - 804182e: 2000 movs r0, #0 - 8041830: 9000 str r0, [sp, #0] - 8041832: f8d7 0094 ldr.w r0, [r7, #148] ; 0x94 - 8041836: f7d0 fcd5 bl 80121e4 + 8041788: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c + 804178c: f7fd fbd0 bl 803ef30 + 8041790: 4603 mov r3, r0 + 8041792: f107 0244 add.w r2, r7, #68 ; 0x44 + 8041796: f107 010c add.w r1, r7, #12 + 804179a: 2000 movs r0, #0 + 804179c: 9000 str r0, [sp, #0] + 804179e: f8d7 0094 ldr.w r0, [r7, #148] ; 0x94 + 80417a2: f7d0 fcd5 bl 8012150 draw_ctx->clip_area = clip_area_ori; - 804183a: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 - 804183e: 6efa ldr r2, [r7, #108] ; 0x6c - 8041840: 609a str r2, [r3, #8] + 80417a6: f8d7 3094 ldr.w r3, [r7, #148] ; 0x94 + 80417aa: 6efa ldr r2, [r7, #108] ; 0x6c + 80417ac: 609a str r2, [r3, #8] } - 8041842: bf00 nop - 8041844: 37a0 adds r7, #160 ; 0xa0 - 8041846: 46bd mov sp, r7 - 8041848: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} + 80417ae: bf00 nop + 80417b0: 37a0 adds r7, #160 ; 0xa0 + 80417b2: 46bd mov sp, r7 + 80417b4: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} -0804184c : +080417b8 : static void draw_label(lv_event_t * e) { - 804184c: b590 push {r4, r7, lr} - 804184e: b099 sub sp, #100 ; 0x64 - 8041850: af02 add r7, sp, #8 - 8041852: 6078 str r0, [r7, #4] + 80417b8: b590 push {r4, r7, lr} + 80417ba: b099 sub sp, #100 ; 0x64 + 80417bc: af02 add r7, sp, #8 + 80417be: 6078 str r0, [r7, #4] /* Split the drawing of the label into an upper (above the selected area) * and a lower (below the selected area)*/ lv_obj_t * label_obj = lv_event_get_target(e); - 8041854: 6878 ldr r0, [r7, #4] - 8041856: f7c0 fe93 bl 8002580 - 804185a: 6578 str r0, [r7, #84] ; 0x54 + 80417c0: 6878 ldr r0, [r7, #4] + 80417c2: f7c0 fea7 bl 8002514 + 80417c6: 6578 str r0, [r7, #84] ; 0x54 lv_obj_t * roller = lv_obj_get_parent(label_obj); - 804185c: 6d78 ldr r0, [r7, #84] ; 0x54 - 804185e: f7cd ff55 bl 800f70c - 8041862: 6538 str r0, [r7, #80] ; 0x50 + 80417c8: 6d78 ldr r0, [r7, #84] ; 0x54 + 80417ca: f7cd ff55 bl 800f678 + 80417ce: 6538 str r0, [r7, #80] ; 0x50 lv_draw_label_dsc_t label_draw_dsc; lv_draw_label_dsc_init(&label_draw_dsc); - 8041864: f107 0320 add.w r3, r7, #32 - 8041868: 4618 mov r0, r3 - 804186a: f7d0 fc8f bl 801218c + 80417d0: f107 0320 add.w r3, r7, #32 + 80417d4: 4618 mov r0, r3 + 80417d6: f7d0 fc8f bl 80120f8 lv_obj_init_draw_label_dsc(roller, LV_PART_MAIN, &label_draw_dsc); - 804186e: f107 0320 add.w r3, r7, #32 - 8041872: 461a mov r2, r3 - 8041874: 2100 movs r1, #0 - 8041876: 6d38 ldr r0, [r7, #80] ; 0x50 - 8041878: f7c7 f893 bl 80089a2 + 80417da: f107 0320 add.w r3, r7, #32 + 80417de: 461a mov r2, r3 + 80417e0: 2100 movs r1, #0 + 80417e2: 6d38 ldr r0, [r7, #80] ; 0x50 + 80417e4: f7c7 f8a7 bl 8008936 lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 804187c: 6878 ldr r0, [r7, #4] - 804187e: f7c0 ff95 bl 80027ac - 8041882: 64f8 str r0, [r7, #76] ; 0x4c + 80417e8: 6878 ldr r0, [r7, #4] + 80417ea: f7c0 ffa9 bl 8002740 + 80417ee: 64f8 str r0, [r7, #76] ; 0x4c /*If the roller has shadow or outline it has some ext. draw size *therefore the label can overflow the roller's boundaries. *To solve this limit the clip area to the "plain" roller.*/ const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 8041884: 6cfb ldr r3, [r7, #76] ; 0x4c - 8041886: 689b ldr r3, [r3, #8] - 8041888: 64bb str r3, [r7, #72] ; 0x48 + 80417f0: 6cfb ldr r3, [r7, #76] ; 0x4c + 80417f2: 689b ldr r3, [r3, #8] + 80417f4: 64bb str r3, [r7, #72] ; 0x48 lv_area_t roller_clip_area; if(!_lv_area_intersect(&roller_clip_area, draw_ctx->clip_area, &roller->coords)) return; - 804188a: 6cfb ldr r3, [r7, #76] ; 0x4c - 804188c: 6899 ldr r1, [r3, #8] - 804188e: 6d3b ldr r3, [r7, #80] ; 0x50 - 8041890: f103 0214 add.w r2, r3, #20 - 8041894: f107 0318 add.w r3, r7, #24 - 8041898: 4618 mov r0, r3 - 804189a: f7ef fc05 bl 80310a8 <_lv_area_intersect> - 804189e: 4603 mov r3, r0 - 80418a0: f083 0301 eor.w r3, r3, #1 - 80418a4: b2db uxtb r3, r3 - 80418a6: 2b00 cmp r3, #0 - 80418a8: d175 bne.n 8041996 + 80417f6: 6cfb ldr r3, [r7, #76] ; 0x4c + 80417f8: 6899 ldr r1, [r3, #8] + 80417fa: 6d3b ldr r3, [r7, #80] ; 0x50 + 80417fc: f103 0214 add.w r2, r3, #20 + 8041800: f107 0318 add.w r3, r7, #24 + 8041804: 4618 mov r0, r3 + 8041806: f7ef fc05 bl 8031014 <_lv_area_intersect> + 804180a: 4603 mov r3, r0 + 804180c: f083 0301 eor.w r3, r3, #1 + 8041810: b2db uxtb r3, r3 + 8041812: 2b00 cmp r3, #0 + 8041814: d175 bne.n 8041902 draw_ctx->clip_area = &roller_clip_area; - 80418aa: 6cfb ldr r3, [r7, #76] ; 0x4c - 80418ac: f107 0218 add.w r2, r7, #24 - 80418b0: 609a str r2, [r3, #8] + 8041816: 6cfb ldr r3, [r7, #76] ; 0x4c + 8041818: f107 0218 add.w r2, r7, #24 + 804181c: 609a str r2, [r3, #8] lv_area_t sel_area; get_sel_area(roller, &sel_area); - 80418b2: f107 0310 add.w r3, r7, #16 - 80418b6: 4619 mov r1, r3 - 80418b8: 6d38 ldr r0, [r7, #80] ; 0x50 - 80418ba: f000 f870 bl 804199e + 804181e: f107 0310 add.w r3, r7, #16 + 8041822: 4619 mov r1, r3 + 8041824: 6d38 ldr r0, [r7, #80] ; 0x50 + 8041826: f000 f870 bl 804190a lv_area_t clip2; clip2.x1 = label_obj->coords.x1; - 80418be: 6d7b ldr r3, [r7, #84] ; 0x54 - 80418c0: f9b3 3014 ldrsh.w r3, [r3, #20] - 80418c4: 813b strh r3, [r7, #8] + 804182a: 6d7b ldr r3, [r7, #84] ; 0x54 + 804182c: f9b3 3014 ldrsh.w r3, [r3, #20] + 8041830: 813b strh r3, [r7, #8] clip2.y1 = label_obj->coords.y1; - 80418c6: 6d7b ldr r3, [r7, #84] ; 0x54 - 80418c8: f9b3 3016 ldrsh.w r3, [r3, #22] - 80418cc: 817b strh r3, [r7, #10] + 8041832: 6d7b ldr r3, [r7, #84] ; 0x54 + 8041834: f9b3 3016 ldrsh.w r3, [r3, #22] + 8041838: 817b strh r3, [r7, #10] clip2.x2 = label_obj->coords.x2; - 80418ce: 6d7b ldr r3, [r7, #84] ; 0x54 - 80418d0: f9b3 3018 ldrsh.w r3, [r3, #24] - 80418d4: 81bb strh r3, [r7, #12] + 804183a: 6d7b ldr r3, [r7, #84] ; 0x54 + 804183c: f9b3 3018 ldrsh.w r3, [r3, #24] + 8041840: 81bb strh r3, [r7, #12] clip2.y2 = sel_area.y1; - 80418d6: f9b7 3012 ldrsh.w r3, [r7, #18] - 80418da: 81fb strh r3, [r7, #14] + 8041842: f9b7 3012 ldrsh.w r3, [r7, #18] + 8041846: 81fb strh r3, [r7, #14] if(_lv_area_intersect(&clip2, draw_ctx->clip_area, &clip2)) { - 80418dc: 6cfb ldr r3, [r7, #76] ; 0x4c - 80418de: 6899 ldr r1, [r3, #8] - 80418e0: f107 0208 add.w r2, r7, #8 - 80418e4: f107 0308 add.w r3, r7, #8 - 80418e8: 4618 mov r0, r3 - 80418ea: f7ef fbdd bl 80310a8 <_lv_area_intersect> - 80418ee: 4603 mov r3, r0 - 80418f0: 2b00 cmp r3, #0 - 80418f2: d018 beq.n 8041926 + 8041848: 6cfb ldr r3, [r7, #76] ; 0x4c + 804184a: 6899 ldr r1, [r3, #8] + 804184c: f107 0208 add.w r2, r7, #8 + 8041850: f107 0308 add.w r3, r7, #8 + 8041854: 4618 mov r0, r3 + 8041856: f7ef fbdd bl 8031014 <_lv_area_intersect> + 804185a: 4603 mov r3, r0 + 804185c: 2b00 cmp r3, #0 + 804185e: d018 beq.n 8041892 const lv_area_t * clip_area_ori2 = draw_ctx->clip_area; - 80418f4: 6cfb ldr r3, [r7, #76] ; 0x4c - 80418f6: 689b ldr r3, [r3, #8] - 80418f8: 647b str r3, [r7, #68] ; 0x44 + 8041860: 6cfb ldr r3, [r7, #76] ; 0x4c + 8041862: 689b ldr r3, [r3, #8] + 8041864: 647b str r3, [r7, #68] ; 0x44 draw_ctx->clip_area = &clip2; - 80418fa: 6cfb ldr r3, [r7, #76] ; 0x4c - 80418fc: f107 0208 add.w r2, r7, #8 - 8041900: 609a str r2, [r3, #8] + 8041866: 6cfb ldr r3, [r7, #76] ; 0x4c + 8041868: f107 0208 add.w r2, r7, #8 + 804186c: 609a str r2, [r3, #8] lv_draw_label(draw_ctx, &label_draw_dsc, &label_obj->coords, lv_label_get_text(label_obj), NULL); - 8041902: 6d7b ldr r3, [r7, #84] ; 0x54 - 8041904: f103 0414 add.w r4, r3, #20 - 8041908: 6d78 ldr r0, [r7, #84] ; 0x54 - 804190a: f7fd fb5b bl 803efc4 - 804190e: 4603 mov r3, r0 - 8041910: f107 0120 add.w r1, r7, #32 - 8041914: 2200 movs r2, #0 - 8041916: 9200 str r2, [sp, #0] - 8041918: 4622 mov r2, r4 - 804191a: 6cf8 ldr r0, [r7, #76] ; 0x4c - 804191c: f7d0 fc62 bl 80121e4 + 804186e: 6d7b ldr r3, [r7, #84] ; 0x54 + 8041870: f103 0414 add.w r4, r3, #20 + 8041874: 6d78 ldr r0, [r7, #84] ; 0x54 + 8041876: f7fd fb5b bl 803ef30 + 804187a: 4603 mov r3, r0 + 804187c: f107 0120 add.w r1, r7, #32 + 8041880: 2200 movs r2, #0 + 8041882: 9200 str r2, [sp, #0] + 8041884: 4622 mov r2, r4 + 8041886: 6cf8 ldr r0, [r7, #76] ; 0x4c + 8041888: f7d0 fc62 bl 8012150 draw_ctx->clip_area = clip_area_ori2; - 8041920: 6cfb ldr r3, [r7, #76] ; 0x4c - 8041922: 6c7a ldr r2, [r7, #68] ; 0x44 - 8041924: 609a str r2, [r3, #8] + 804188c: 6cfb ldr r3, [r7, #76] ; 0x4c + 804188e: 6c7a ldr r2, [r7, #68] ; 0x44 + 8041890: 609a str r2, [r3, #8] } clip2.x1 = label_obj->coords.x1; - 8041926: 6d7b ldr r3, [r7, #84] ; 0x54 - 8041928: f9b3 3014 ldrsh.w r3, [r3, #20] - 804192c: 813b strh r3, [r7, #8] + 8041892: 6d7b ldr r3, [r7, #84] ; 0x54 + 8041894: f9b3 3014 ldrsh.w r3, [r3, #20] + 8041898: 813b strh r3, [r7, #8] clip2.y1 = sel_area.y2; - 804192e: f9b7 3016 ldrsh.w r3, [r7, #22] - 8041932: 817b strh r3, [r7, #10] + 804189a: f9b7 3016 ldrsh.w r3, [r7, #22] + 804189e: 817b strh r3, [r7, #10] clip2.x2 = label_obj->coords.x2; - 8041934: 6d7b ldr r3, [r7, #84] ; 0x54 - 8041936: f9b3 3018 ldrsh.w r3, [r3, #24] - 804193a: 81bb strh r3, [r7, #12] + 80418a0: 6d7b ldr r3, [r7, #84] ; 0x54 + 80418a2: f9b3 3018 ldrsh.w r3, [r3, #24] + 80418a6: 81bb strh r3, [r7, #12] clip2.y2 = label_obj->coords.y2; - 804193c: 6d7b ldr r3, [r7, #84] ; 0x54 - 804193e: f9b3 301a ldrsh.w r3, [r3, #26] - 8041942: 81fb strh r3, [r7, #14] + 80418a8: 6d7b ldr r3, [r7, #84] ; 0x54 + 80418aa: f9b3 301a ldrsh.w r3, [r3, #26] + 80418ae: 81fb strh r3, [r7, #14] if(_lv_area_intersect(&clip2, draw_ctx->clip_area, &clip2)) { - 8041944: 6cfb ldr r3, [r7, #76] ; 0x4c - 8041946: 6899 ldr r1, [r3, #8] - 8041948: f107 0208 add.w r2, r7, #8 - 804194c: f107 0308 add.w r3, r7, #8 - 8041950: 4618 mov r0, r3 - 8041952: f7ef fba9 bl 80310a8 <_lv_area_intersect> - 8041956: 4603 mov r3, r0 - 8041958: 2b00 cmp r3, #0 - 804195a: d018 beq.n 804198e + 80418b0: 6cfb ldr r3, [r7, #76] ; 0x4c + 80418b2: 6899 ldr r1, [r3, #8] + 80418b4: f107 0208 add.w r2, r7, #8 + 80418b8: f107 0308 add.w r3, r7, #8 + 80418bc: 4618 mov r0, r3 + 80418be: f7ef fba9 bl 8031014 <_lv_area_intersect> + 80418c2: 4603 mov r3, r0 + 80418c4: 2b00 cmp r3, #0 + 80418c6: d018 beq.n 80418fa const lv_area_t * clip_area_ori2 = draw_ctx->clip_area; - 804195c: 6cfb ldr r3, [r7, #76] ; 0x4c - 804195e: 689b ldr r3, [r3, #8] - 8041960: 643b str r3, [r7, #64] ; 0x40 + 80418c8: 6cfb ldr r3, [r7, #76] ; 0x4c + 80418ca: 689b ldr r3, [r3, #8] + 80418cc: 643b str r3, [r7, #64] ; 0x40 draw_ctx->clip_area = &clip2; - 8041962: 6cfb ldr r3, [r7, #76] ; 0x4c - 8041964: f107 0208 add.w r2, r7, #8 - 8041968: 609a str r2, [r3, #8] + 80418ce: 6cfb ldr r3, [r7, #76] ; 0x4c + 80418d0: f107 0208 add.w r2, r7, #8 + 80418d4: 609a str r2, [r3, #8] lv_draw_label(draw_ctx, &label_draw_dsc, &label_obj->coords, lv_label_get_text(label_obj), NULL); - 804196a: 6d7b ldr r3, [r7, #84] ; 0x54 - 804196c: f103 0414 add.w r4, r3, #20 - 8041970: 6d78 ldr r0, [r7, #84] ; 0x54 - 8041972: f7fd fb27 bl 803efc4 - 8041976: 4603 mov r3, r0 - 8041978: f107 0120 add.w r1, r7, #32 - 804197c: 2200 movs r2, #0 - 804197e: 9200 str r2, [sp, #0] - 8041980: 4622 mov r2, r4 - 8041982: 6cf8 ldr r0, [r7, #76] ; 0x4c - 8041984: f7d0 fc2e bl 80121e4 + 80418d6: 6d7b ldr r3, [r7, #84] ; 0x54 + 80418d8: f103 0414 add.w r4, r3, #20 + 80418dc: 6d78 ldr r0, [r7, #84] ; 0x54 + 80418de: f7fd fb27 bl 803ef30 + 80418e2: 4603 mov r3, r0 + 80418e4: f107 0120 add.w r1, r7, #32 + 80418e8: 2200 movs r2, #0 + 80418ea: 9200 str r2, [sp, #0] + 80418ec: 4622 mov r2, r4 + 80418ee: 6cf8 ldr r0, [r7, #76] ; 0x4c + 80418f0: f7d0 fc2e bl 8012150 draw_ctx->clip_area = clip_area_ori2; - 8041988: 6cfb ldr r3, [r7, #76] ; 0x4c - 804198a: 6c3a ldr r2, [r7, #64] ; 0x40 - 804198c: 609a str r2, [r3, #8] + 80418f4: 6cfb ldr r3, [r7, #76] ; 0x4c + 80418f6: 6c3a ldr r2, [r7, #64] ; 0x40 + 80418f8: 609a str r2, [r3, #8] } draw_ctx->clip_area = clip_area_ori; - 804198e: 6cfb ldr r3, [r7, #76] ; 0x4c - 8041990: 6cba ldr r2, [r7, #72] ; 0x48 - 8041992: 609a str r2, [r3, #8] - 8041994: e000 b.n 8041998 + 80418fa: 6cfb ldr r3, [r7, #76] ; 0x4c + 80418fc: 6cba ldr r2, [r7, #72] ; 0x48 + 80418fe: 609a str r2, [r3, #8] + 8041900: e000 b.n 8041904 if(!_lv_area_intersect(&roller_clip_area, draw_ctx->clip_area, &roller->coords)) return; - 8041996: bf00 nop + 8041902: bf00 nop } - 8041998: 375c adds r7, #92 ; 0x5c - 804199a: 46bd mov sp, r7 - 804199c: bd90 pop {r4, r7, pc} + 8041904: 375c adds r7, #92 ; 0x5c + 8041906: 46bd mov sp, r7 + 8041908: bd90 pop {r4, r7, pc} -0804199e : +0804190a : static void get_sel_area(lv_obj_t * obj, lv_area_t * sel_area) { - 804199e: b590 push {r4, r7, lr} - 80419a0: b089 sub sp, #36 ; 0x24 - 80419a2: af00 add r7, sp, #0 - 80419a4: 6078 str r0, [r7, #4] - 80419a6: 6039 str r1, [r7, #0] + 804190a: b590 push {r4, r7, lr} + 804190c: b089 sub sp, #36 ; 0x24 + 804190e: af00 add r7, sp, #0 + 8041910: 6078 str r0, [r7, #4] + 8041912: 6039 str r1, [r7, #0] const lv_font_t * font_main = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 80419a8: 2100 movs r1, #0 - 80419aa: 6878 ldr r0, [r7, #4] - 80419ac: f7ff fad0 bl 8040f50 - 80419b0: 61f8 str r0, [r7, #28] + 8041914: 2100 movs r1, #0 + 8041916: 6878 ldr r0, [r7, #4] + 8041918: f7ff fad0 bl 8040ebc + 804191c: 61f8 str r0, [r7, #28] const lv_font_t * font_sel = lv_obj_get_style_text_font(obj, LV_PART_SELECTED); - 80419b2: f44f 2180 mov.w r1, #262144 ; 0x40000 - 80419b6: 6878 ldr r0, [r7, #4] - 80419b8: f7ff faca bl 8040f50 - 80419bc: 61b8 str r0, [r7, #24] + 804191e: f44f 2180 mov.w r1, #262144 ; 0x40000 + 8041922: 6878 ldr r0, [r7, #4] + 8041924: f7ff faca bl 8040ebc + 8041928: 61b8 str r0, [r7, #24] lv_coord_t font_main_h = lv_font_get_line_height(font_main); - 80419be: 69f8 ldr r0, [r7, #28] - 80419c0: f7ff fa2c bl 8040e1c - 80419c4: 4603 mov r3, r0 - 80419c6: 82fb strh r3, [r7, #22] + 804192a: 69f8 ldr r0, [r7, #28] + 804192c: f7ff fa2c bl 8040d88 + 8041930: 4603 mov r3, r0 + 8041932: 82fb strh r3, [r7, #22] lv_coord_t font_sel_h = lv_font_get_line_height(font_sel); - 80419c8: 69b8 ldr r0, [r7, #24] - 80419ca: f7ff fa27 bl 8040e1c - 80419ce: 4603 mov r3, r0 - 80419d0: 82bb strh r3, [r7, #20] + 8041934: 69b8 ldr r0, [r7, #24] + 8041936: f7ff fa27 bl 8040d88 + 804193a: 4603 mov r3, r0 + 804193c: 82bb strh r3, [r7, #20] lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN); - 80419d2: 2100 movs r1, #0 - 80419d4: 6878 ldr r0, [r7, #4] - 80419d6: f7ff fae0 bl 8040f9a - 80419da: 4603 mov r3, r0 - 80419dc: 827b strh r3, [r7, #18] + 804193e: 2100 movs r1, #0 + 8041940: 6878 ldr r0, [r7, #4] + 8041942: f7ff fae0 bl 8040f06 + 8041946: 4603 mov r3, r0 + 8041948: 827b strh r3, [r7, #18] lv_coord_t d = (font_sel_h + font_main_h) / 2 + line_space; - 80419de: f9b7 2014 ldrsh.w r2, [r7, #20] - 80419e2: f9b7 3016 ldrsh.w r3, [r7, #22] - 80419e6: 4413 add r3, r2 - 80419e8: 0fda lsrs r2, r3, #31 - 80419ea: 4413 add r3, r2 - 80419ec: 105b asrs r3, r3, #1 - 80419ee: b29a uxth r2, r3 - 80419f0: 8a7b ldrh r3, [r7, #18] - 80419f2: 4413 add r3, r2 - 80419f4: b29b uxth r3, r3 - 80419f6: 823b strh r3, [r7, #16] + 804194a: f9b7 2014 ldrsh.w r2, [r7, #20] + 804194e: f9b7 3016 ldrsh.w r3, [r7, #22] + 8041952: 4413 add r3, r2 + 8041954: 0fda lsrs r2, r3, #31 + 8041956: 4413 add r3, r2 + 8041958: 105b asrs r3, r3, #1 + 804195a: b29a uxth r2, r3 + 804195c: 8a7b ldrh r3, [r7, #18] + 804195e: 4413 add r3, r2 + 8041960: b29b uxth r3, r3 + 8041962: 823b strh r3, [r7, #16] sel_area->y1 = obj->coords.y1 + lv_obj_get_height(obj) / 2 - d / 2; - 80419f8: 687b ldr r3, [r7, #4] - 80419fa: f9b3 3016 ldrsh.w r3, [r3, #22] - 80419fe: b29c uxth r4, r3 - 8041a00: 6878 ldr r0, [r7, #4] - 8041a02: f7c8 fbaf bl 800a164 - 8041a06: 4603 mov r3, r0 - 8041a08: 0fda lsrs r2, r3, #31 - 8041a0a: 4413 add r3, r2 - 8041a0c: 105b asrs r3, r3, #1 - 8041a0e: b21b sxth r3, r3 - 8041a10: b29b uxth r3, r3 - 8041a12: 4423 add r3, r4 - 8041a14: b29a uxth r2, r3 - 8041a16: f9b7 3010 ldrsh.w r3, [r7, #16] - 8041a1a: 0fd9 lsrs r1, r3, #31 - 8041a1c: 440b add r3, r1 - 8041a1e: 105b asrs r3, r3, #1 - 8041a20: b21b sxth r3, r3 - 8041a22: b29b uxth r3, r3 - 8041a24: 1ad3 subs r3, r2, r3 - 8041a26: b29b uxth r3, r3 - 8041a28: b21a sxth r2, r3 - 8041a2a: 683b ldr r3, [r7, #0] - 8041a2c: 805a strh r2, [r3, #2] + 8041964: 687b ldr r3, [r7, #4] + 8041966: f9b3 3016 ldrsh.w r3, [r3, #22] + 804196a: b29c uxth r4, r3 + 804196c: 6878 ldr r0, [r7, #4] + 804196e: f7c8 fbc3 bl 800a0f8 + 8041972: 4603 mov r3, r0 + 8041974: 0fda lsrs r2, r3, #31 + 8041976: 4413 add r3, r2 + 8041978: 105b asrs r3, r3, #1 + 804197a: b21b sxth r3, r3 + 804197c: b29b uxth r3, r3 + 804197e: 4423 add r3, r4 + 8041980: b29a uxth r2, r3 + 8041982: f9b7 3010 ldrsh.w r3, [r7, #16] + 8041986: 0fd9 lsrs r1, r3, #31 + 8041988: 440b add r3, r1 + 804198a: 105b asrs r3, r3, #1 + 804198c: b21b sxth r3, r3 + 804198e: b29b uxth r3, r3 + 8041990: 1ad3 subs r3, r2, r3 + 8041992: b29b uxth r3, r3 + 8041994: b21a sxth r2, r3 + 8041996: 683b ldr r3, [r7, #0] + 8041998: 805a strh r2, [r3, #2] sel_area->y2 = sel_area->y1 + d; - 8041a2e: 683b ldr r3, [r7, #0] - 8041a30: f9b3 3002 ldrsh.w r3, [r3, #2] - 8041a34: b29a uxth r2, r3 - 8041a36: 8a3b ldrh r3, [r7, #16] - 8041a38: 4413 add r3, r2 - 8041a3a: b29b uxth r3, r3 - 8041a3c: b21a sxth r2, r3 - 8041a3e: 683b ldr r3, [r7, #0] - 8041a40: 80da strh r2, [r3, #6] + 804199a: 683b ldr r3, [r7, #0] + 804199c: f9b3 3002 ldrsh.w r3, [r3, #2] + 80419a0: b29a uxth r2, r3 + 80419a2: 8a3b ldrh r3, [r7, #16] + 80419a4: 4413 add r3, r2 + 80419a6: b29b uxth r3, r3 + 80419a8: b21a sxth r2, r3 + 80419aa: 683b ldr r3, [r7, #0] + 80419ac: 80da strh r2, [r3, #6] lv_area_t roller_coords; lv_obj_get_coords(obj, &roller_coords); - 8041a42: f107 0308 add.w r3, r7, #8 - 8041a46: 4619 mov r1, r3 - 8041a48: 6878 ldr r0, [r7, #4] - 8041a4a: f7c8 fadf bl 800a00c + 80419ae: f107 0308 add.w r3, r7, #8 + 80419b2: 4619 mov r1, r3 + 80419b4: 6878 ldr r0, [r7, #4] + 80419b6: f7c8 faf3 bl 8009fa0 sel_area->x1 = roller_coords.x1; - 8041a4e: f9b7 2008 ldrsh.w r2, [r7, #8] - 8041a52: 683b ldr r3, [r7, #0] - 8041a54: 801a strh r2, [r3, #0] + 80419ba: f9b7 2008 ldrsh.w r2, [r7, #8] + 80419be: 683b ldr r3, [r7, #0] + 80419c0: 801a strh r2, [r3, #0] sel_area->x2 = roller_coords.x2; - 8041a56: f9b7 200c ldrsh.w r2, [r7, #12] - 8041a5a: 683b ldr r3, [r7, #0] - 8041a5c: 809a strh r2, [r3, #4] + 80419c2: f9b7 200c ldrsh.w r2, [r7, #12] + 80419c6: 683b ldr r3, [r7, #0] + 80419c8: 809a strh r2, [r3, #4] } - 8041a5e: bf00 nop - 8041a60: 3724 adds r7, #36 ; 0x24 - 8041a62: 46bd mov sp, r7 - 8041a64: bd90 pop {r4, r7, pc} + 80419ca: bf00 nop + 80419cc: 3724 adds r7, #36 ; 0x24 + 80419ce: 46bd mov sp, r7 + 80419d0: bd90 pop {r4, r7, pc} ... -08041a68 : +080419d4 : * Refresh the position of the roller. It uses the id stored in: roller->ddlist.selected_option_id * @param roller pointer to a roller object * @param anim_en LV_ANIM_ON: refresh with animation; LV_ANOM_OFF: without animation */ static void refr_position(lv_obj_t * obj, lv_anim_enable_t anim_en) { - 8041a68: b590 push {r4, r7, lr} - 8041a6a: b09d sub sp, #116 ; 0x74 - 8041a6c: af00 add r7, sp, #0 - 8041a6e: 6078 str r0, [r7, #4] - 8041a70: 460b mov r3, r1 - 8041a72: 70fb strb r3, [r7, #3] + 80419d4: b590 push {r4, r7, lr} + 80419d6: b09d sub sp, #116 ; 0x74 + 80419d8: af00 add r7, sp, #0 + 80419da: 6078 str r0, [r7, #4] + 80419dc: 460b mov r3, r1 + 80419de: 70fb strb r3, [r7, #3] lv_obj_t * label = get_label(obj); - 8041a74: 6878 ldr r0, [r7, #4] - 8041a76: f000 fa8b bl 8041f90 - 8041a7a: 66f8 str r0, [r7, #108] ; 0x6c + 80419e0: 6878 ldr r0, [r7, #4] + 80419e2: f000 fa8b bl 8041efc + 80419e6: 66f8 str r0, [r7, #108] ; 0x6c if(label == NULL) return; - 8041a7c: 6efb ldr r3, [r7, #108] ; 0x6c - 8041a7e: 2b00 cmp r3, #0 - 8041a80: f000 80de beq.w 8041c40 + 80419e8: 6efb ldr r3, [r7, #108] ; 0x6c + 80419ea: 2b00 cmp r3, #0 + 80419ec: f000 80de beq.w 8041bac lv_text_align_t align = lv_obj_calculate_style_text_align(label, LV_PART_MAIN, lv_label_get_text(label)); - 8041a84: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8041a86: f7fd fa9d bl 803efc4 - 8041a8a: 4603 mov r3, r0 - 8041a8c: 461a mov r2, r3 - 8041a8e: 2100 movs r1, #0 - 8041a90: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8041a92: f7cc fe15 bl 800e6c0 - 8041a96: 4603 mov r3, r0 - 8041a98: f887 306b strb.w r3, [r7, #107] ; 0x6b + 80419f0: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80419f2: f7fd fa9d bl 803ef30 + 80419f6: 4603 mov r3, r0 + 80419f8: 461a mov r2, r3 + 80419fa: 2100 movs r1, #0 + 80419fc: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80419fe: f7cc fe29 bl 800e654 + 8041a02: 4603 mov r3, r0 + 8041a04: f887 306b strb.w r3, [r7, #107] ; 0x6b switch(align) { - 8041a9c: f897 306b ldrb.w r3, [r7, #107] ; 0x6b - 8041aa0: 2b03 cmp r3, #3 - 8041aa2: d018 beq.n 8041ad6 - 8041aa4: 2b03 cmp r3, #3 - 8041aa6: dc2d bgt.n 8041b04 - 8041aa8: 2b01 cmp r3, #1 - 8041aaa: d026 beq.n 8041afa - 8041aac: 2b02 cmp r3, #2 - 8041aae: d129 bne.n 8041b04 + 8041a08: f897 306b ldrb.w r3, [r7, #107] ; 0x6b + 8041a0c: 2b03 cmp r3, #3 + 8041a0e: d018 beq.n 8041a42 + 8041a10: 2b03 cmp r3, #3 + 8041a12: dc2d bgt.n 8041a70 + 8041a14: 2b01 cmp r3, #1 + 8041a16: d026 beq.n 8041a66 + 8041a18: 2b02 cmp r3, #2 + 8041a1a: d129 bne.n 8041a70 case LV_TEXT_ALIGN_CENTER: lv_obj_set_x(label, (lv_obj_get_content_width(obj) - lv_obj_get_width(label)) / 2); - 8041ab0: 6878 ldr r0, [r7, #4] - 8041ab2: f7c8 fb65 bl 800a180 - 8041ab6: 4603 mov r3, r0 - 8041ab8: 461c mov r4, r3 - 8041aba: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8041abc: f7c8 fb44 bl 800a148 - 8041ac0: 4603 mov r3, r0 - 8041ac2: 1ae3 subs r3, r4, r3 - 8041ac4: 0fda lsrs r2, r3, #31 - 8041ac6: 4413 add r3, r2 - 8041ac8: 105b asrs r3, r3, #1 - 8041aca: b21b sxth r3, r3 - 8041acc: 4619 mov r1, r3 - 8041ace: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8041ad0: f7c7 fbe6 bl 80092a0 + 8041a1c: 6878 ldr r0, [r7, #4] + 8041a1e: f7c8 fb79 bl 800a114 + 8041a22: 4603 mov r3, r0 + 8041a24: 461c mov r4, r3 + 8041a26: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8041a28: f7c8 fb58 bl 800a0dc + 8041a2c: 4603 mov r3, r0 + 8041a2e: 1ae3 subs r3, r4, r3 + 8041a30: 0fda lsrs r2, r3, #31 + 8041a32: 4413 add r3, r2 + 8041a34: 105b asrs r3, r3, #1 + 8041a36: b21b sxth r3, r3 + 8041a38: 4619 mov r1, r3 + 8041a3a: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8041a3c: f7c7 fbfa bl 8009234 break; - 8041ad4: e016 b.n 8041b04 + 8041a40: e016 b.n 8041a70 case LV_TEXT_ALIGN_RIGHT: lv_obj_set_x(label, lv_obj_get_content_width(obj) - lv_obj_get_width(label)); - 8041ad6: 6878 ldr r0, [r7, #4] - 8041ad8: f7c8 fb52 bl 800a180 - 8041adc: 4603 mov r3, r0 - 8041ade: b29c uxth r4, r3 - 8041ae0: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8041ae2: f7c8 fb31 bl 800a148 - 8041ae6: 4603 mov r3, r0 - 8041ae8: b29b uxth r3, r3 - 8041aea: 1ae3 subs r3, r4, r3 - 8041aec: b29b uxth r3, r3 - 8041aee: b21b sxth r3, r3 - 8041af0: 4619 mov r1, r3 - 8041af2: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8041af4: f7c7 fbd4 bl 80092a0 + 8041a42: 6878 ldr r0, [r7, #4] + 8041a44: f7c8 fb66 bl 800a114 + 8041a48: 4603 mov r3, r0 + 8041a4a: b29c uxth r4, r3 + 8041a4c: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8041a4e: f7c8 fb45 bl 800a0dc + 8041a52: 4603 mov r3, r0 + 8041a54: b29b uxth r3, r3 + 8041a56: 1ae3 subs r3, r4, r3 + 8041a58: b29b uxth r3, r3 + 8041a5a: b21b sxth r3, r3 + 8041a5c: 4619 mov r1, r3 + 8041a5e: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8041a60: f7c7 fbe8 bl 8009234 break; - 8041af8: e004 b.n 8041b04 + 8041a64: e004 b.n 8041a70 case LV_TEXT_ALIGN_LEFT: lv_obj_set_x(label, 0); - 8041afa: 2100 movs r1, #0 - 8041afc: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8041afe: f7c7 fbcf bl 80092a0 + 8041a66: 2100 movs r1, #0 + 8041a68: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8041a6a: f7c7 fbe3 bl 8009234 break; - 8041b02: bf00 nop + 8041a6e: bf00 nop } lv_roller_t * roller = (lv_roller_t *)obj; - 8041b04: 687b ldr r3, [r7, #4] - 8041b06: 667b str r3, [r7, #100] ; 0x64 + 8041a70: 687b ldr r3, [r7, #4] + 8041a72: 667b str r3, [r7, #100] ; 0x64 const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 8041b08: 2100 movs r1, #0 - 8041b0a: 6878 ldr r0, [r7, #4] - 8041b0c: f7ff fa20 bl 8040f50 - 8041b10: 6638 str r0, [r7, #96] ; 0x60 + 8041a74: 2100 movs r1, #0 + 8041a76: 6878 ldr r0, [r7, #4] + 8041a78: f7ff fa20 bl 8040ebc + 8041a7c: 6638 str r0, [r7, #96] ; 0x60 lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN); - 8041b12: 2100 movs r1, #0 - 8041b14: 6878 ldr r0, [r7, #4] - 8041b16: f7ff fa40 bl 8040f9a - 8041b1a: 4603 mov r3, r0 - 8041b1c: f8a7 305e strh.w r3, [r7, #94] ; 0x5e + 8041a7e: 2100 movs r1, #0 + 8041a80: 6878 ldr r0, [r7, #4] + 8041a82: f7ff fa40 bl 8040f06 + 8041a86: 4603 mov r3, r0 + 8041a88: f8a7 305e strh.w r3, [r7, #94] ; 0x5e lv_coord_t font_h = lv_font_get_line_height(font); - 8041b20: 6e38 ldr r0, [r7, #96] ; 0x60 - 8041b22: f7ff f97b bl 8040e1c - 8041b26: 4603 mov r3, r0 - 8041b28: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 8041a8c: 6e38 ldr r0, [r7, #96] ; 0x60 + 8041a8e: f7ff f97b bl 8040d88 + 8041a92: 4603 mov r3, r0 + 8041a94: f8a7 305c strh.w r3, [r7, #92] ; 0x5c lv_coord_t h = lv_obj_get_content_height(obj); - 8041b2c: 6878 ldr r0, [r7, #4] - 8041b2e: f7c8 fb52 bl 800a1d6 - 8041b32: 4603 mov r3, r0 - 8041b34: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 8041a98: 6878 ldr r0, [r7, #4] + 8041a9a: f7c8 fb66 bl 800a16a + 8041a9e: 4603 mov r3, r0 + 8041aa0: f8a7 305a strh.w r3, [r7, #90] ; 0x5a uint16_t anim_time = lv_obj_get_style_anim_time(obj, LV_PART_MAIN); - 8041b38: 2100 movs r1, #0 - 8041b3a: 6878 ldr r0, [r7, #4] - 8041b3c: f7ff fa40 bl 8040fc0 - 8041b40: 4603 mov r3, r0 - 8041b42: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 + 8041aa4: 2100 movs r1, #0 + 8041aa6: 6878 ldr r0, [r7, #4] + 8041aa8: f7ff fa40 bl 8040f2c + 8041aac: 4603 mov r3, r0 + 8041aae: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 /*Normally the animation's `end_cb` sets correct position of the roller if infinite. *But without animations do it manually*/ if(anim_en == LV_ANIM_OFF || anim_time == 0) { - 8041b46: 78fb ldrb r3, [r7, #3] - 8041b48: 2b00 cmp r3, #0 - 8041b4a: d003 beq.n 8041b54 - 8041b4c: f8b7 3058 ldrh.w r3, [r7, #88] ; 0x58 - 8041b50: 2b00 cmp r3, #0 - 8041b52: d102 bne.n 8041b5a + 8041ab2: 78fb ldrb r3, [r7, #3] + 8041ab4: 2b00 cmp r3, #0 + 8041ab6: d003 beq.n 8041ac0 + 8041ab8: f8b7 3058 ldrh.w r3, [r7, #88] ; 0x58 + 8041abc: 2b00 cmp r3, #0 + 8041abe: d102 bne.n 8041ac6 inf_normalize(obj); - 8041b54: 6878 ldr r0, [r7, #4] - 8041b56: f000 f98f bl 8041e78 + 8041ac0: 6878 ldr r0, [r7, #4] + 8041ac2: f000 f98f bl 8041de4 } int32_t id = roller->sel_opt_id; - 8041b5a: 6e7b ldr r3, [r7, #100] ; 0x64 - 8041b5c: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8041b5e: 657b str r3, [r7, #84] ; 0x54 + 8041ac6: 6e7b ldr r3, [r7, #100] ; 0x64 + 8041ac8: 8cdb ldrh r3, [r3, #38] ; 0x26 + 8041aca: 657b str r3, [r7, #84] ; 0x54 lv_coord_t sel_y1 = id * (font_h + line_space); - 8041b60: f9b7 205c ldrsh.w r2, [r7, #92] ; 0x5c - 8041b64: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e - 8041b68: 4413 add r3, r2 - 8041b6a: b29b uxth r3, r3 - 8041b6c: 6d7a ldr r2, [r7, #84] ; 0x54 - 8041b6e: b292 uxth r2, r2 - 8041b70: fb02 f303 mul.w r3, r2, r3 - 8041b74: b29b uxth r3, r3 - 8041b76: f8a7 3052 strh.w r3, [r7, #82] ; 0x52 + 8041acc: f9b7 205c ldrsh.w r2, [r7, #92] ; 0x5c + 8041ad0: f9b7 305e ldrsh.w r3, [r7, #94] ; 0x5e + 8041ad4: 4413 add r3, r2 + 8041ad6: b29b uxth r3, r3 + 8041ad8: 6d7a ldr r2, [r7, #84] ; 0x54 + 8041ada: b292 uxth r2, r2 + 8041adc: fb02 f303 mul.w r3, r2, r3 + 8041ae0: b29b uxth r3, r3 + 8041ae2: f8a7 3052 strh.w r3, [r7, #82] ; 0x52 lv_coord_t mid_y1 = h / 2 - font_h / 2; - 8041b7a: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a - 8041b7e: 0fda lsrs r2, r3, #31 - 8041b80: 4413 add r3, r2 - 8041b82: 105b asrs r3, r3, #1 - 8041b84: b21b sxth r3, r3 - 8041b86: b29a uxth r2, r3 - 8041b88: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c - 8041b8c: 0fd9 lsrs r1, r3, #31 - 8041b8e: 440b add r3, r1 - 8041b90: 105b asrs r3, r3, #1 - 8041b92: b21b sxth r3, r3 - 8041b94: b29b uxth r3, r3 - 8041b96: 1ad3 subs r3, r2, r3 - 8041b98: b29b uxth r3, r3 - 8041b9a: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 + 8041ae6: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a + 8041aea: 0fda lsrs r2, r3, #31 + 8041aec: 4413 add r3, r2 + 8041aee: 105b asrs r3, r3, #1 + 8041af0: b21b sxth r3, r3 + 8041af2: b29a uxth r2, r3 + 8041af4: f9b7 305c ldrsh.w r3, [r7, #92] ; 0x5c + 8041af8: 0fd9 lsrs r1, r3, #31 + 8041afa: 440b add r3, r1 + 8041afc: 105b asrs r3, r3, #1 + 8041afe: b21b sxth r3, r3 + 8041b00: b29b uxth r3, r3 + 8041b02: 1ad3 subs r3, r2, r3 + 8041b04: b29b uxth r3, r3 + 8041b06: f8a7 3050 strh.w r3, [r7, #80] ; 0x50 lv_coord_t new_y = mid_y1 - sel_y1; - 8041b9e: f8b7 2050 ldrh.w r2, [r7, #80] ; 0x50 - 8041ba2: f8b7 3052 ldrh.w r3, [r7, #82] ; 0x52 - 8041ba6: 1ad3 subs r3, r2, r3 - 8041ba8: b29b uxth r3, r3 - 8041baa: f8a7 304e strh.w r3, [r7, #78] ; 0x4e + 8041b0a: f8b7 2050 ldrh.w r2, [r7, #80] ; 0x50 + 8041b0e: f8b7 3052 ldrh.w r3, [r7, #82] ; 0x52 + 8041b12: 1ad3 subs r3, r2, r3 + 8041b14: b29b uxth r3, r3 + 8041b16: f8a7 304e strh.w r3, [r7, #78] ; 0x4e if(anim_en == LV_ANIM_OFF || anim_time == 0) { - 8041bae: 78fb ldrb r3, [r7, #3] - 8041bb0: 2b00 cmp r3, #0 - 8041bb2: d003 beq.n 8041bbc - 8041bb4: f8b7 3058 ldrh.w r3, [r7, #88] ; 0x58 - 8041bb8: 2b00 cmp r3, #0 - 8041bba: d10a bne.n 8041bd2 + 8041b1a: 78fb ldrb r3, [r7, #3] + 8041b1c: 2b00 cmp r3, #0 + 8041b1e: d003 beq.n 8041b28 + 8041b20: f8b7 3058 ldrh.w r3, [r7, #88] ; 0x58 + 8041b24: 2b00 cmp r3, #0 + 8041b26: d10a bne.n 8041b3e lv_anim_del(label, set_y_anim); - 8041bbc: 4922 ldr r1, [pc, #136] ; (8041c48 ) - 8041bbe: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8041bc0: f7ee fee4 bl 803098c + 8041b28: 4922 ldr r1, [pc, #136] ; (8041bb4 ) + 8041b2a: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8041b2c: f7ee fee4 bl 80308f8 lv_obj_set_y(label, new_y); - 8041bc4: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e - 8041bc8: 4619 mov r1, r3 - 8041bca: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8041bcc: f7c7 fb8e bl 80092ec - 8041bd0: e037 b.n 8041c42 + 8041b30: f9b7 304e ldrsh.w r3, [r7, #78] ; 0x4e + 8041b34: 4619 mov r1, r3 + 8041b36: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8041b38: f7c7 fba2 bl 8009280 + 8041b3c: e037 b.n 8041bae } else { lv_anim_t a; lv_anim_init(&a); - 8041bd2: f107 030c add.w r3, r7, #12 - 8041bd6: 4618 mov r0, r3 - 8041bd8: f7ee fe3a bl 8030850 + 8041b3e: f107 030c add.w r3, r7, #12 + 8041b42: 4618 mov r0, r3 + 8041b44: f7ee fe3a bl 80307bc lv_anim_set_var(&a, label); - 8041bdc: f107 030c add.w r3, r7, #12 - 8041be0: 6ef9 ldr r1, [r7, #108] ; 0x6c - 8041be2: 4618 mov r0, r3 - 8041be4: f7ff f926 bl 8040e34 + 8041b48: f107 030c add.w r3, r7, #12 + 8041b4c: 6ef9 ldr r1, [r7, #108] ; 0x6c + 8041b4e: 4618 mov r0, r3 + 8041b50: f7ff f926 bl 8040da0 lv_anim_set_exec_cb(&a, set_y_anim); - 8041be8: f107 030c add.w r3, r7, #12 - 8041bec: 4916 ldr r1, [pc, #88] ; (8041c48 ) - 8041bee: 4618 mov r0, r3 - 8041bf0: f7ff f92d bl 8040e4e + 8041b54: f107 030c add.w r3, r7, #12 + 8041b58: 4916 ldr r1, [pc, #88] ; (8041bb4 ) + 8041b5a: 4618 mov r0, r3 + 8041b5c: f7ff f92d bl 8040dba lv_anim_set_values(&a, lv_obj_get_y(label), new_y); - 8041bf4: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8041bf6: f7c8 fa55 bl 800a0a4 - 8041bfa: 4603 mov r3, r0 - 8041bfc: 4619 mov r1, r3 - 8041bfe: f9b7 204e ldrsh.w r2, [r7, #78] ; 0x4e - 8041c02: f107 030c add.w r3, r7, #12 - 8041c06: 4618 mov r0, r3 - 8041c08: f7ff f93b bl 8040e82 + 8041b60: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8041b62: f7c8 fa69 bl 800a038 + 8041b66: 4603 mov r3, r0 + 8041b68: 4619 mov r1, r3 + 8041b6a: f9b7 204e ldrsh.w r2, [r7, #78] ; 0x4e + 8041b6e: f107 030c add.w r3, r7, #12 + 8041b72: 4618 mov r0, r3 + 8041b74: f7ff f93b bl 8040dee lv_anim_set_time(&a, anim_time); - 8041c0c: f8b7 2058 ldrh.w r2, [r7, #88] ; 0x58 - 8041c10: f107 030c add.w r3, r7, #12 - 8041c14: 4611 mov r1, r2 - 8041c16: 4618 mov r0, r3 - 8041c18: f7ff f926 bl 8040e68 + 8041b78: f8b7 2058 ldrh.w r2, [r7, #88] ; 0x58 + 8041b7c: f107 030c add.w r3, r7, #12 + 8041b80: 4611 mov r1, r2 + 8041b82: 4618 mov r0, r3 + 8041b84: f7ff f926 bl 8040dd4 lv_anim_set_ready_cb(&a, scroll_anim_ready_cb); - 8041c1c: f107 030c add.w r3, r7, #12 - 8041c20: 490a ldr r1, [pc, #40] ; (8041c4c ) - 8041c22: 4618 mov r0, r3 - 8041c24: f7ff f94e bl 8040ec4 + 8041b88: f107 030c add.w r3, r7, #12 + 8041b8c: 490a ldr r1, [pc, #40] ; (8041bb8 ) + 8041b8e: 4618 mov r0, r3 + 8041b90: f7ff f94e bl 8040e30 lv_anim_set_path_cb(&a, lv_anim_path_ease_out); - 8041c28: f107 030c add.w r3, r7, #12 - 8041c2c: 4908 ldr r1, [pc, #32] ; (8041c50 ) - 8041c2e: 4618 mov r0, r3 - 8041c30: f7ff f93b bl 8040eaa + 8041b94: f107 030c add.w r3, r7, #12 + 8041b98: 4908 ldr r1, [pc, #32] ; (8041bbc ) + 8041b9a: 4618 mov r0, r3 + 8041b9c: f7ff f93b bl 8040e16 lv_anim_start(&a); - 8041c34: f107 030c add.w r3, r7, #12 - 8041c38: 4618 mov r0, r3 - 8041c3a: f7ee fe2f bl 803089c - 8041c3e: e000 b.n 8041c42 + 8041ba0: f107 030c add.w r3, r7, #12 + 8041ba4: 4618 mov r0, r3 + 8041ba6: f7ee fe2f bl 8030808 + 8041baa: e000 b.n 8041bae if(label == NULL) return; - 8041c40: bf00 nop + 8041bac: bf00 nop } } - 8041c42: 3774 adds r7, #116 ; 0x74 - 8041c44: 46bd mov sp, r7 - 8041c46: bd90 pop {r4, r7, pc} - 8041c48: 08042033 .word 0x08042033 - 8041c4c: 08042011 .word 0x08042011 - 8041c50: 08030add .word 0x08030add + 8041bae: 3774 adds r7, #116 ; 0x74 + 8041bb0: 46bd mov sp, r7 + 8041bb2: bd90 pop {r4, r7, pc} + 8041bb4: 08041f9f .word 0x08041f9f + 8041bb8: 08041f7d .word 0x08041f7d + 8041bbc: 08030a49 .word 0x08030a49 -08041c54 : +08041bc0 : static lv_res_t release_handler(lv_obj_t * obj) { - 8041c54: b590 push {r4, r7, lr} - 8041c56: b097 sub sp, #92 ; 0x5c - 8041c58: af00 add r7, sp, #0 - 8041c5a: 6078 str r0, [r7, #4] + 8041bc0: b590 push {r4, r7, lr} + 8041bc2: b097 sub sp, #92 ; 0x5c + 8041bc4: af00 add r7, sp, #0 + 8041bc6: 6078 str r0, [r7, #4] lv_obj_t * label = get_label(obj); - 8041c5c: 6878 ldr r0, [r7, #4] - 8041c5e: f000 f997 bl 8041f90 - 8041c62: 6478 str r0, [r7, #68] ; 0x44 + 8041bc8: 6878 ldr r0, [r7, #4] + 8041bca: f000 f997 bl 8041efc + 8041bce: 6478 str r0, [r7, #68] ; 0x44 if(label == NULL) return LV_RES_OK; - 8041c64: 6c7b ldr r3, [r7, #68] ; 0x44 - 8041c66: 2b00 cmp r3, #0 - 8041c68: d101 bne.n 8041c6e - 8041c6a: 2301 movs r3, #1 - 8041c6c: e0fd b.n 8041e6a + 8041bd0: 6c7b ldr r3, [r7, #68] ; 0x44 + 8041bd2: 2b00 cmp r3, #0 + 8041bd4: d101 bne.n 8041bda + 8041bd6: 2301 movs r3, #1 + 8041bd8: e0fd b.n 8041dd6 lv_indev_t * indev = lv_indev_get_act(); - 8041c6e: f7c1 fb53 bl 8003318 - 8041c72: 6438 str r0, [r7, #64] ; 0x40 + 8041bda: f7c1 fb67 bl 80032ac + 8041bde: 6438 str r0, [r7, #64] ; 0x40 lv_roller_t * roller = (lv_roller_t *)obj; - 8041c74: 687b ldr r3, [r7, #4] - 8041c76: 63fb str r3, [r7, #60] ; 0x3c + 8041be0: 687b ldr r3, [r7, #4] + 8041be2: 63fb str r3, [r7, #60] ; 0x3c /*Leave edit mode once a new option is selected*/ lv_indev_type_t indev_type = lv_indev_get_type(indev); - 8041c78: 6c38 ldr r0, [r7, #64] ; 0x40 - 8041c7a: f7c1 fb57 bl 800332c - 8041c7e: 4603 mov r3, r0 - 8041c80: f887 303b strb.w r3, [r7, #59] ; 0x3b + 8041be4: 6c38 ldr r0, [r7, #64] ; 0x40 + 8041be6: f7c1 fb6b bl 80032c0 + 8041bea: 4603 mov r3, r0 + 8041bec: f887 303b strb.w r3, [r7, #59] ; 0x3b if(indev_type == LV_INDEV_TYPE_ENCODER || indev_type == LV_INDEV_TYPE_KEYPAD) { - 8041c84: f897 303b ldrb.w r3, [r7, #59] ; 0x3b - 8041c88: 2b04 cmp r3, #4 - 8041c8a: d003 beq.n 8041c94 - 8041c8c: f897 303b ldrb.w r3, [r7, #59] ; 0x3b - 8041c90: 2b02 cmp r3, #2 - 8041c92: d115 bne.n 8041cc0 + 8041bf0: f897 303b ldrb.w r3, [r7, #59] ; 0x3b + 8041bf4: 2b04 cmp r3, #4 + 8041bf6: d003 beq.n 8041c00 + 8041bf8: f897 303b ldrb.w r3, [r7, #59] ; 0x3b + 8041bfc: 2b02 cmp r3, #2 + 8041bfe: d115 bne.n 8041c2c roller->sel_opt_id_ori = roller->sel_opt_id; - 8041c94: 6bfb ldr r3, [r7, #60] ; 0x3c - 8041c96: 8cda ldrh r2, [r3, #38] ; 0x26 - 8041c98: 6bfb ldr r3, [r7, #60] ; 0x3c - 8041c9a: 851a strh r2, [r3, #40] ; 0x28 + 8041c00: 6bfb ldr r3, [r7, #60] ; 0x3c + 8041c02: 8cda ldrh r2, [r3, #38] ; 0x26 + 8041c04: 6bfb ldr r3, [r7, #60] ; 0x3c + 8041c06: 851a strh r2, [r3, #40] ; 0x28 if(indev_type == LV_INDEV_TYPE_ENCODER) { - 8041c9c: f897 303b ldrb.w r3, [r7, #59] ; 0x3b - 8041ca0: 2b04 cmp r3, #4 - 8041ca2: d10d bne.n 8041cc0 + 8041c08: f897 303b ldrb.w r3, [r7, #59] ; 0x3b + 8041c0c: 2b04 cmp r3, #4 + 8041c0e: d10d bne.n 8041c2c lv_group_t * g = lv_obj_get_group(obj); - 8041ca4: 6878 ldr r0, [r7, #4] - 8041ca6: f7c4 fdb3 bl 8006810 - 8041caa: 6378 str r0, [r7, #52] ; 0x34 + 8041c10: 6878 ldr r0, [r7, #4] + 8041c12: f7c4 fdc7 bl 80067a4 + 8041c16: 6378 str r0, [r7, #52] ; 0x34 if(lv_group_get_editing(g)) { - 8041cac: 6b78 ldr r0, [r7, #52] ; 0x34 - 8041cae: f7c1 f922 bl 8002ef6 - 8041cb2: 4603 mov r3, r0 - 8041cb4: 2b00 cmp r3, #0 - 8041cb6: d003 beq.n 8041cc0 + 8041c18: 6b78 ldr r0, [r7, #52] ; 0x34 + 8041c1a: f7c1 f936 bl 8002e8a + 8041c1e: 4603 mov r3, r0 + 8041c20: 2b00 cmp r3, #0 + 8041c22: d003 beq.n 8041c2c lv_group_set_editing(g, false); - 8041cb8: 2100 movs r1, #0 - 8041cba: 6b78 ldr r0, [r7, #52] ; 0x34 - 8041cbc: f7c1 f8c3 bl 8002e46 + 8041c24: 2100 movs r1, #0 + 8041c26: 6b78 ldr r0, [r7, #52] ; 0x34 + 8041c28: f7c1 f8d7 bl 8002dda } } } if(lv_indev_get_type(indev) == LV_INDEV_TYPE_POINTER || lv_indev_get_type(indev) == LV_INDEV_TYPE_BUTTON) { - 8041cc0: 6c38 ldr r0, [r7, #64] ; 0x40 - 8041cc2: f7c1 fb33 bl 800332c - 8041cc6: 4603 mov r3, r0 - 8041cc8: 2b01 cmp r3, #1 - 8041cca: d006 beq.n 8041cda - 8041ccc: 6c38 ldr r0, [r7, #64] ; 0x40 - 8041cce: f7c1 fb2d bl 800332c - 8041cd2: 4603 mov r3, r0 - 8041cd4: 2b03 cmp r3, #3 - 8041cd6: f040 80bb bne.w 8041e50 + 8041c2c: 6c38 ldr r0, [r7, #64] ; 0x40 + 8041c2e: f7c1 fb47 bl 80032c0 + 8041c32: 4603 mov r3, r0 + 8041c34: 2b01 cmp r3, #1 + 8041c36: d006 beq.n 8041c46 + 8041c38: 6c38 ldr r0, [r7, #64] ; 0x40 + 8041c3a: f7c1 fb41 bl 80032c0 + 8041c3e: 4603 mov r3, r0 + 8041c40: 2b03 cmp r3, #3 + 8041c42: f040 80bb bne.w 8041dbc /*Search the clicked option (For KEYPAD and ENCODER the new value should be already set)*/ int16_t new_opt = -1; - 8041cda: f64f 73ff movw r3, #65535 ; 0xffff - 8041cde: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 8041c46: f64f 73ff movw r3, #65535 ; 0xffff + 8041c4a: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 if(roller->moved == 0) { - 8041ce2: 6bfb ldr r3, [r7, #60] ; 0x3c - 8041ce4: f893 302a ldrb.w r3, [r3, #42] ; 0x2a - 8041ce8: f003 0302 and.w r3, r3, #2 - 8041cec: b2db uxtb r3, r3 - 8041cee: 2b00 cmp r3, #0 - 8041cf0: d152 bne.n 8041d98 + 8041c4e: 6bfb ldr r3, [r7, #60] ; 0x3c + 8041c50: f893 302a ldrb.w r3, [r3, #42] ; 0x2a + 8041c54: f003 0302 and.w r3, r3, #2 + 8041c58: b2db uxtb r3, r3 + 8041c5a: 2b00 cmp r3, #0 + 8041c5c: d152 bne.n 8041d04 new_opt = 0; - 8041cf2: 2300 movs r3, #0 - 8041cf4: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 8041c5e: 2300 movs r3, #0 + 8041c60: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 lv_point_t p; lv_indev_get_point(indev, &p); - 8041cf8: f107 030c add.w r3, r7, #12 - 8041cfc: 4619 mov r1, r3 - 8041cfe: 6c38 ldr r0, [r7, #64] ; 0x40 - 8041d00: f7c1 fbfc bl 80034fc + 8041c64: f107 030c add.w r3, r7, #12 + 8041c68: 4619 mov r1, r3 + 8041c6a: 6c38 ldr r0, [r7, #64] ; 0x40 + 8041c6c: f7c1 fc10 bl 8003490 p.y -= label->coords.y1; - 8041d04: f9b7 300e ldrsh.w r3, [r7, #14] - 8041d08: b29a uxth r2, r3 - 8041d0a: 6c7b ldr r3, [r7, #68] ; 0x44 - 8041d0c: f9b3 3016 ldrsh.w r3, [r3, #22] - 8041d10: b29b uxth r3, r3 - 8041d12: 1ad3 subs r3, r2, r3 - 8041d14: b29b uxth r3, r3 - 8041d16: b21b sxth r3, r3 - 8041d18: 81fb strh r3, [r7, #14] + 8041c70: f9b7 300e ldrsh.w r3, [r7, #14] + 8041c74: b29a uxth r2, r3 + 8041c76: 6c7b ldr r3, [r7, #68] ; 0x44 + 8041c78: f9b3 3016 ldrsh.w r3, [r3, #22] + 8041c7c: b29b uxth r3, r3 + 8041c7e: 1ad3 subs r3, r2, r3 + 8041c80: b29b uxth r3, r3 + 8041c82: b21b sxth r3, r3 + 8041c84: 81fb strh r3, [r7, #14] p.x -= label->coords.x1; - 8041d1a: f9b7 300c ldrsh.w r3, [r7, #12] - 8041d1e: b29a uxth r2, r3 - 8041d20: 6c7b ldr r3, [r7, #68] ; 0x44 - 8041d22: f9b3 3014 ldrsh.w r3, [r3, #20] - 8041d26: b29b uxth r3, r3 - 8041d28: 1ad3 subs r3, r2, r3 - 8041d2a: b29b uxth r3, r3 - 8041d2c: b21b sxth r3, r3 - 8041d2e: 81bb strh r3, [r7, #12] + 8041c86: f9b7 300c ldrsh.w r3, [r7, #12] + 8041c8a: b29a uxth r2, r3 + 8041c8c: 6c7b ldr r3, [r7, #68] ; 0x44 + 8041c8e: f9b3 3014 ldrsh.w r3, [r3, #20] + 8041c92: b29b uxth r3, r3 + 8041c94: 1ad3 subs r3, r2, r3 + 8041c96: b29b uxth r3, r3 + 8041c98: b21b sxth r3, r3 + 8041c9a: 81bb strh r3, [r7, #12] uint32_t letter_i; letter_i = lv_label_get_letter_on(label, &p); - 8041d30: f107 030c add.w r3, r7, #12 - 8041d34: 4619 mov r1, r3 - 8041d36: 6c78 ldr r0, [r7, #68] ; 0x44 - 8041d38: f7fd fad0 bl 803f2dc - 8041d3c: 6238 str r0, [r7, #32] + 8041c9c: f107 030c add.w r3, r7, #12 + 8041ca0: 4619 mov r1, r3 + 8041ca2: 6c78 ldr r0, [r7, #68] ; 0x44 + 8041ca4: f7fd fad0 bl 803f248 + 8041ca8: 6238 str r0, [r7, #32] const char * txt = lv_label_get_text(label); - 8041d3e: 6c78 ldr r0, [r7, #68] ; 0x44 - 8041d40: f7fd f940 bl 803efc4 - 8041d44: 61f8 str r0, [r7, #28] + 8041caa: 6c78 ldr r0, [r7, #68] ; 0x44 + 8041cac: f7fd f940 bl 803ef30 + 8041cb0: 61f8 str r0, [r7, #28] uint32_t i = 0; - 8041d46: 2300 movs r3, #0 - 8041d48: 60bb str r3, [r7, #8] + 8041cb2: 2300 movs r3, #0 + 8041cb4: 60bb str r3, [r7, #8] uint32_t i_prev = 0; - 8041d4a: 2300 movs r3, #0 - 8041d4c: 653b str r3, [r7, #80] ; 0x50 + 8041cb6: 2300 movs r3, #0 + 8041cb8: 653b str r3, [r7, #80] ; 0x50 uint32_t letter_cnt = 0; - 8041d4e: 2300 movs r3, #0 - 8041d50: 64fb str r3, [r7, #76] ; 0x4c + 8041cba: 2300 movs r3, #0 + 8041cbc: 64fb str r3, [r7, #76] ; 0x4c for(letter_cnt = 0; letter_cnt < letter_i; letter_cnt++) { - 8041d52: 2300 movs r3, #0 - 8041d54: 64fb str r3, [r7, #76] ; 0x4c - 8041d56: e01a b.n 8041d8e + 8041cbe: 2300 movs r3, #0 + 8041cc0: 64fb str r3, [r7, #76] ; 0x4c + 8041cc2: e01a b.n 8041cfa uint32_t letter = _lv_txt_encoded_next(txt, &i); - 8041d58: 4b46 ldr r3, [pc, #280] ; (8041e74 ) - 8041d5a: 681b ldr r3, [r3, #0] - 8041d5c: f107 0208 add.w r2, r7, #8 - 8041d60: 4611 mov r1, r2 - 8041d62: 69f8 ldr r0, [r7, #28] - 8041d64: 4798 blx r3 - 8041d66: 61b8 str r0, [r7, #24] + 8041cc4: 4b46 ldr r3, [pc, #280] ; (8041de0 ) + 8041cc6: 681b ldr r3, [r3, #0] + 8041cc8: f107 0208 add.w r2, r7, #8 + 8041ccc: 4611 mov r1, r2 + 8041cce: 69f8 ldr r0, [r7, #28] + 8041cd0: 4798 blx r3 + 8041cd2: 61b8 str r0, [r7, #24] /*Count he lines to reach the clicked letter. But ignore the last '\n' because it * still belongs to the clicked line*/ if(letter == '\n' && i_prev != letter_i) new_opt++; - 8041d68: 69bb ldr r3, [r7, #24] - 8041d6a: 2b0a cmp r3, #10 - 8041d6c: d10a bne.n 8041d84 - 8041d6e: 6d3a ldr r2, [r7, #80] ; 0x50 - 8041d70: 6a3b ldr r3, [r7, #32] - 8041d72: 429a cmp r2, r3 - 8041d74: d006 beq.n 8041d84 - 8041d76: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 8041d7a: b29b uxth r3, r3 - 8041d7c: 3301 adds r3, #1 - 8041d7e: b29b uxth r3, r3 - 8041d80: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 8041cd4: 69bb ldr r3, [r7, #24] + 8041cd6: 2b0a cmp r3, #10 + 8041cd8: d10a bne.n 8041cf0 + 8041cda: 6d3a ldr r2, [r7, #80] ; 0x50 + 8041cdc: 6a3b ldr r3, [r7, #32] + 8041cde: 429a cmp r2, r3 + 8041ce0: d006 beq.n 8041cf0 + 8041ce2: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 8041ce6: b29b uxth r3, r3 + 8041ce8: 3301 adds r3, #1 + 8041cea: b29b uxth r3, r3 + 8041cec: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 i_prev = i; - 8041d84: 68bb ldr r3, [r7, #8] - 8041d86: 653b str r3, [r7, #80] ; 0x50 + 8041cf0: 68bb ldr r3, [r7, #8] + 8041cf2: 653b str r3, [r7, #80] ; 0x50 for(letter_cnt = 0; letter_cnt < letter_i; letter_cnt++) { - 8041d88: 6cfb ldr r3, [r7, #76] ; 0x4c - 8041d8a: 3301 adds r3, #1 - 8041d8c: 64fb str r3, [r7, #76] ; 0x4c - 8041d8e: 6cfa ldr r2, [r7, #76] ; 0x4c - 8041d90: 6a3b ldr r3, [r7, #32] - 8041d92: 429a cmp r2, r3 - 8041d94: d3e0 bcc.n 8041d58 - 8041d96: e050 b.n 8041e3a + 8041cf4: 6cfb ldr r3, [r7, #76] ; 0x4c + 8041cf6: 3301 adds r3, #1 + 8041cf8: 64fb str r3, [r7, #76] ; 0x4c + 8041cfa: 6cfa ldr r2, [r7, #76] ; 0x4c + 8041cfc: 6a3b ldr r3, [r7, #32] + 8041cfe: 429a cmp r2, r3 + 8041d00: d3e0 bcc.n 8041cc4 + 8041d02: e050 b.n 8041da6 } } else { /*If dragged then align the list to have an element in the middle*/ const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 8041d98: 2100 movs r1, #0 - 8041d9a: 6878 ldr r0, [r7, #4] - 8041d9c: f7ff f8d8 bl 8040f50 - 8041da0: 6338 str r0, [r7, #48] ; 0x30 + 8041d04: 2100 movs r1, #0 + 8041d06: 6878 ldr r0, [r7, #4] + 8041d08: f7ff f8d8 bl 8040ebc + 8041d0c: 6338 str r0, [r7, #48] ; 0x30 lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN); - 8041da2: 2100 movs r1, #0 - 8041da4: 6878 ldr r0, [r7, #4] - 8041da6: f7ff f8f8 bl 8040f9a - 8041daa: 4603 mov r3, r0 - 8041dac: 85fb strh r3, [r7, #46] ; 0x2e + 8041d0e: 2100 movs r1, #0 + 8041d10: 6878 ldr r0, [r7, #4] + 8041d12: f7ff f8f8 bl 8040f06 + 8041d16: 4603 mov r3, r0 + 8041d18: 85fb strh r3, [r7, #46] ; 0x2e lv_coord_t font_h = lv_font_get_line_height(font); - 8041dae: 6b38 ldr r0, [r7, #48] ; 0x30 - 8041db0: f7ff f834 bl 8040e1c - 8041db4: 4603 mov r3, r0 - 8041db6: 85bb strh r3, [r7, #44] ; 0x2c + 8041d1a: 6b38 ldr r0, [r7, #48] ; 0x30 + 8041d1c: f7ff f834 bl 8040d88 + 8041d20: 4603 mov r3, r0 + 8041d22: 85bb strh r3, [r7, #44] ; 0x2c lv_coord_t label_unit = font_h + line_space; - 8041db8: 8dba ldrh r2, [r7, #44] ; 0x2c - 8041dba: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8041dbc: 4413 add r3, r2 - 8041dbe: b29b uxth r3, r3 - 8041dc0: 857b strh r3, [r7, #42] ; 0x2a + 8041d24: 8dba ldrh r2, [r7, #44] ; 0x2c + 8041d26: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8041d28: 4413 add r3, r2 + 8041d2a: b29b uxth r3, r3 + 8041d2c: 857b strh r3, [r7, #42] ; 0x2a lv_coord_t mid = obj->coords.y1 + (obj->coords.y2 - obj->coords.y1) / 2; - 8041dc2: 687b ldr r3, [r7, #4] - 8041dc4: f9b3 3016 ldrsh.w r3, [r3, #22] - 8041dc8: b29a uxth r2, r3 - 8041dca: 687b ldr r3, [r7, #4] - 8041dcc: f9b3 301a ldrsh.w r3, [r3, #26] - 8041dd0: 4619 mov r1, r3 - 8041dd2: 687b ldr r3, [r7, #4] - 8041dd4: f9b3 3016 ldrsh.w r3, [r3, #22] - 8041dd8: 1acb subs r3, r1, r3 - 8041dda: 0fd9 lsrs r1, r3, #31 - 8041ddc: 440b add r3, r1 - 8041dde: 105b asrs r3, r3, #1 - 8041de0: b29b uxth r3, r3 - 8041de2: 4413 add r3, r2 - 8041de4: b29b uxth r3, r3 - 8041de6: 853b strh r3, [r7, #40] ; 0x28 + 8041d2e: 687b ldr r3, [r7, #4] + 8041d30: f9b3 3016 ldrsh.w r3, [r3, #22] + 8041d34: b29a uxth r2, r3 + 8041d36: 687b ldr r3, [r7, #4] + 8041d38: f9b3 301a ldrsh.w r3, [r3, #26] + 8041d3c: 4619 mov r1, r3 + 8041d3e: 687b ldr r3, [r7, #4] + 8041d40: f9b3 3016 ldrsh.w r3, [r3, #22] + 8041d44: 1acb subs r3, r1, r3 + 8041d46: 0fd9 lsrs r1, r3, #31 + 8041d48: 440b add r3, r1 + 8041d4a: 105b asrs r3, r3, #1 + 8041d4c: b29b uxth r3, r3 + 8041d4e: 4413 add r3, r2 + 8041d50: b29b uxth r3, r3 + 8041d52: 853b strh r3, [r7, #40] ; 0x28 lv_coord_t label_y1 = label->coords.y1 + lv_indev_scroll_throw_predict(indev, LV_DIR_VER); - 8041de8: 6c7b ldr r3, [r7, #68] ; 0x44 - 8041dea: f9b3 3016 ldrsh.w r3, [r3, #22] - 8041dee: b29c uxth r4, r3 - 8041df0: 210c movs r1, #12 - 8041df2: 6c38 ldr r0, [r7, #64] ; 0x40 - 8041df4: f7c3 fa38 bl 8005268 - 8041df8: 4603 mov r3, r0 - 8041dfa: b29b uxth r3, r3 - 8041dfc: 4423 add r3, r4 - 8041dfe: b29b uxth r3, r3 - 8041e00: 84fb strh r3, [r7, #38] ; 0x26 + 8041d54: 6c7b ldr r3, [r7, #68] ; 0x44 + 8041d56: f9b3 3016 ldrsh.w r3, [r3, #22] + 8041d5a: b29c uxth r4, r3 + 8041d5c: 210c movs r1, #12 + 8041d5e: 6c38 ldr r0, [r7, #64] ; 0x40 + 8041d60: f7c3 fa4c bl 80051fc + 8041d64: 4603 mov r3, r0 + 8041d66: b29b uxth r3, r3 + 8041d68: 4423 add r3, r4 + 8041d6a: b29b uxth r3, r3 + 8041d6c: 84fb strh r3, [r7, #38] ; 0x26 int32_t id = (mid - label_y1) / label_unit; - 8041e02: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 - 8041e06: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 - 8041e0a: 1ad2 subs r2, r2, r3 - 8041e0c: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a - 8041e10: fb92 f3f3 sdiv r3, r2, r3 - 8041e14: 64bb str r3, [r7, #72] ; 0x48 + 8041d6e: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 + 8041d72: f9b7 3026 ldrsh.w r3, [r7, #38] ; 0x26 + 8041d76: 1ad2 subs r2, r2, r3 + 8041d78: f9b7 302a ldrsh.w r3, [r7, #42] ; 0x2a + 8041d7c: fb92 f3f3 sdiv r3, r2, r3 + 8041d80: 64bb str r3, [r7, #72] ; 0x48 if(id < 0) id = 0; - 8041e16: 6cbb ldr r3, [r7, #72] ; 0x48 - 8041e18: 2b00 cmp r3, #0 - 8041e1a: da01 bge.n 8041e20 - 8041e1c: 2300 movs r3, #0 - 8041e1e: 64bb str r3, [r7, #72] ; 0x48 + 8041d82: 6cbb ldr r3, [r7, #72] ; 0x48 + 8041d84: 2b00 cmp r3, #0 + 8041d86: da01 bge.n 8041d8c + 8041d88: 2300 movs r3, #0 + 8041d8a: 64bb str r3, [r7, #72] ; 0x48 if(id >= roller->option_cnt) id = roller->option_cnt - 1; - 8041e20: 6bfb ldr r3, [r7, #60] ; 0x3c - 8041e22: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8041e24: 461a mov r2, r3 - 8041e26: 6cbb ldr r3, [r7, #72] ; 0x48 - 8041e28: 4293 cmp r3, r2 - 8041e2a: db03 blt.n 8041e34 - 8041e2c: 6bfb ldr r3, [r7, #60] ; 0x3c - 8041e2e: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8041e30: 3b01 subs r3, #1 - 8041e32: 64bb str r3, [r7, #72] ; 0x48 + 8041d8c: 6bfb ldr r3, [r7, #60] ; 0x3c + 8041d8e: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8041d90: 461a mov r2, r3 + 8041d92: 6cbb ldr r3, [r7, #72] ; 0x48 + 8041d94: 4293 cmp r3, r2 + 8041d96: db03 blt.n 8041da0 + 8041d98: 6bfb ldr r3, [r7, #60] ; 0x3c + 8041d9a: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8041d9c: 3b01 subs r3, #1 + 8041d9e: 64bb str r3, [r7, #72] ; 0x48 new_opt = id; - 8041e34: 6cbb ldr r3, [r7, #72] ; 0x48 - 8041e36: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 8041da0: 6cbb ldr r3, [r7, #72] ; 0x48 + 8041da2: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 } if(new_opt >= 0) { - 8041e3a: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 8041e3e: 2b00 cmp r3, #0 - 8041e40: db06 blt.n 8041e50 + 8041da6: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 8041daa: 2b00 cmp r3, #0 + 8041dac: db06 blt.n 8041dbc lv_roller_set_selected(obj, new_opt, LV_ANIM_ON); - 8041e42: f8b7 3056 ldrh.w r3, [r7, #86] ; 0x56 - 8041e46: 2201 movs r2, #1 - 8041e48: 4619 mov r1, r3 - 8041e4a: 6878 ldr r0, [r7, #4] - 8041e4c: f7ff f978 bl 8041140 + 8041dae: f8b7 3056 ldrh.w r3, [r7, #86] ; 0x56 + 8041db2: 2201 movs r2, #1 + 8041db4: 4619 mov r1, r3 + 8041db6: 6878 ldr r0, [r7, #4] + 8041db8: f7ff f978 bl 80410ac } } uint32_t id = roller->sel_opt_id; /*Just to use uint32_t in event data*/ - 8041e50: 6bfb ldr r3, [r7, #60] ; 0x3c - 8041e52: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8041e54: 613b str r3, [r7, #16] + 8041dbc: 6bfb ldr r3, [r7, #60] ; 0x3c + 8041dbe: 8cdb ldrh r3, [r3, #38] ; 0x26 + 8041dc0: 613b str r3, [r7, #16] lv_res_t res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, &id); - 8041e56: f107 0310 add.w r3, r7, #16 - 8041e5a: 461a mov r2, r3 - 8041e5c: 211c movs r1, #28 - 8041e5e: 6878 ldr r0, [r7, #4] - 8041e60: f7c0 fb0e bl 8002480 - 8041e64: 4603 mov r3, r0 - 8041e66: 75fb strb r3, [r7, #23] + 8041dc2: f107 0310 add.w r3, r7, #16 + 8041dc6: 461a mov r2, r3 + 8041dc8: 211c movs r1, #28 + 8041dca: 6878 ldr r0, [r7, #4] + 8041dcc: f7c0 fb22 bl 8002414 + 8041dd0: 4603 mov r3, r0 + 8041dd2: 75fb strb r3, [r7, #23] return res; - 8041e68: 7dfb ldrb r3, [r7, #23] + 8041dd4: 7dfb ldrb r3, [r7, #23] } - 8041e6a: 4618 mov r0, r3 - 8041e6c: 375c adds r7, #92 ; 0x5c - 8041e6e: 46bd mov sp, r7 - 8041e70: bd90 pop {r4, r7, pc} - 8041e72: bf00 nop - 8041e74: 200000ec .word 0x200000ec + 8041dd6: 4618 mov r0, r3 + 8041dd8: 375c adds r7, #92 ; 0x5c + 8041dda: 46bd mov sp, r7 + 8041ddc: bd90 pop {r4, r7, pc} + 8041dde: bf00 nop + 8041de0: 200000ec .word 0x200000ec -08041e78 : +08041de4 : /** * Set the middle page for the roller if infinite is enabled * @param roller pointer to a roller object */ static void inf_normalize(lv_obj_t * obj) { - 8041e78: b580 push {r7, lr} - 8041e7a: b08a sub sp, #40 ; 0x28 - 8041e7c: af00 add r7, sp, #0 - 8041e7e: 6078 str r0, [r7, #4] + 8041de4: b580 push {r7, lr} + 8041de6: b08a sub sp, #40 ; 0x28 + 8041de8: af00 add r7, sp, #0 + 8041dea: 6078 str r0, [r7, #4] lv_roller_t * roller = (lv_roller_t *)obj; - 8041e80: 687b ldr r3, [r7, #4] - 8041e82: 627b str r3, [r7, #36] ; 0x24 + 8041dec: 687b ldr r3, [r7, #4] + 8041dee: 627b str r3, [r7, #36] ; 0x24 if(roller->mode == LV_ROLLER_MODE_INFINITE) { - 8041e84: 6a7b ldr r3, [r7, #36] ; 0x24 - 8041e86: f893 302a ldrb.w r3, [r3, #42] ; 0x2a - 8041e8a: f003 0301 and.w r3, r3, #1 - 8041e8e: b2db uxtb r3, r3 - 8041e90: 2b00 cmp r3, #0 - 8041e92: d076 beq.n 8041f82 + 8041df0: 6a7b ldr r3, [r7, #36] ; 0x24 + 8041df2: f893 302a ldrb.w r3, [r3, #42] ; 0x2a + 8041df6: f003 0301 and.w r3, r3, #1 + 8041dfa: b2db uxtb r3, r3 + 8041dfc: 2b00 cmp r3, #0 + 8041dfe: d076 beq.n 8041eee uint16_t real_id_cnt = roller->option_cnt / LV_ROLLER_INF_PAGES; - 8041e94: 6a7b ldr r3, [r7, #36] ; 0x24 - 8041e96: 8c9a ldrh r2, [r3, #36] ; 0x24 - 8041e98: 4b3c ldr r3, [pc, #240] ; (8041f8c ) - 8041e9a: fba3 1302 umull r1, r3, r3, r2 - 8041e9e: 1ad2 subs r2, r2, r3 - 8041ea0: 0852 lsrs r2, r2, #1 - 8041ea2: 4413 add r3, r2 - 8041ea4: 089b lsrs r3, r3, #2 - 8041ea6: 847b strh r3, [r7, #34] ; 0x22 + 8041e00: 6a7b ldr r3, [r7, #36] ; 0x24 + 8041e02: 8c9a ldrh r2, [r3, #36] ; 0x24 + 8041e04: 4b3c ldr r3, [pc, #240] ; (8041ef8 ) + 8041e06: fba3 1302 umull r1, r3, r3, r2 + 8041e0a: 1ad2 subs r2, r2, r3 + 8041e0c: 0852 lsrs r2, r2, #1 + 8041e0e: 4413 add r3, r2 + 8041e10: 089b lsrs r3, r3, #2 + 8041e12: 847b strh r3, [r7, #34] ; 0x22 roller->sel_opt_id = roller->sel_opt_id % real_id_cnt; - 8041ea8: 6a7b ldr r3, [r7, #36] ; 0x24 - 8041eaa: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8041eac: 8c7a ldrh r2, [r7, #34] ; 0x22 - 8041eae: fbb3 f1f2 udiv r1, r3, r2 - 8041eb2: fb01 f202 mul.w r2, r1, r2 - 8041eb6: 1a9b subs r3, r3, r2 - 8041eb8: b29a uxth r2, r3 - 8041eba: 6a7b ldr r3, [r7, #36] ; 0x24 - 8041ebc: 84da strh r2, [r3, #38] ; 0x26 + 8041e14: 6a7b ldr r3, [r7, #36] ; 0x24 + 8041e16: 8cdb ldrh r3, [r3, #38] ; 0x26 + 8041e18: 8c7a ldrh r2, [r7, #34] ; 0x22 + 8041e1a: fbb3 f1f2 udiv r1, r3, r2 + 8041e1e: fb01 f202 mul.w r2, r1, r2 + 8041e22: 1a9b subs r3, r3, r2 + 8041e24: b29a uxth r2, r3 + 8041e26: 6a7b ldr r3, [r7, #36] ; 0x24 + 8041e28: 84da strh r2, [r3, #38] ; 0x26 roller->sel_opt_id += (LV_ROLLER_INF_PAGES / 2) * real_id_cnt; /*Select the middle page*/ - 8041ebe: 6a7b ldr r3, [r7, #36] ; 0x24 - 8041ec0: 8cda ldrh r2, [r3, #38] ; 0x26 - 8041ec2: 8c7b ldrh r3, [r7, #34] ; 0x22 - 8041ec4: 4619 mov r1, r3 - 8041ec6: 0049 lsls r1, r1, #1 - 8041ec8: 440b add r3, r1 - 8041eca: b29b uxth r3, r3 - 8041ecc: 4413 add r3, r2 - 8041ece: b29a uxth r2, r3 - 8041ed0: 6a7b ldr r3, [r7, #36] ; 0x24 - 8041ed2: 84da strh r2, [r3, #38] ; 0x26 + 8041e2a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8041e2c: 8cda ldrh r2, [r3, #38] ; 0x26 + 8041e2e: 8c7b ldrh r3, [r7, #34] ; 0x22 + 8041e30: 4619 mov r1, r3 + 8041e32: 0049 lsls r1, r1, #1 + 8041e34: 440b add r3, r1 + 8041e36: b29b uxth r3, r3 + 8041e38: 4413 add r3, r2 + 8041e3a: b29a uxth r2, r3 + 8041e3c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8041e3e: 84da strh r2, [r3, #38] ; 0x26 roller->sel_opt_id_ori = roller->sel_opt_id % real_id_cnt; - 8041ed4: 6a7b ldr r3, [r7, #36] ; 0x24 - 8041ed6: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8041ed8: 8c7a ldrh r2, [r7, #34] ; 0x22 - 8041eda: fbb3 f1f2 udiv r1, r3, r2 - 8041ede: fb01 f202 mul.w r2, r1, r2 - 8041ee2: 1a9b subs r3, r3, r2 - 8041ee4: b29a uxth r2, r3 - 8041ee6: 6a7b ldr r3, [r7, #36] ; 0x24 - 8041ee8: 851a strh r2, [r3, #40] ; 0x28 + 8041e40: 6a7b ldr r3, [r7, #36] ; 0x24 + 8041e42: 8cdb ldrh r3, [r3, #38] ; 0x26 + 8041e44: 8c7a ldrh r2, [r7, #34] ; 0x22 + 8041e46: fbb3 f1f2 udiv r1, r3, r2 + 8041e4a: fb01 f202 mul.w r2, r1, r2 + 8041e4e: 1a9b subs r3, r3, r2 + 8041e50: b29a uxth r2, r3 + 8041e52: 6a7b ldr r3, [r7, #36] ; 0x24 + 8041e54: 851a strh r2, [r3, #40] ; 0x28 roller->sel_opt_id_ori += (LV_ROLLER_INF_PAGES / 2) * real_id_cnt; /*Select the middle page*/ - 8041eea: 6a7b ldr r3, [r7, #36] ; 0x24 - 8041eec: 8d1a ldrh r2, [r3, #40] ; 0x28 - 8041eee: 8c7b ldrh r3, [r7, #34] ; 0x22 - 8041ef0: 4619 mov r1, r3 - 8041ef2: 0049 lsls r1, r1, #1 - 8041ef4: 440b add r3, r1 - 8041ef6: b29b uxth r3, r3 - 8041ef8: 4413 add r3, r2 - 8041efa: b29a uxth r2, r3 - 8041efc: 6a7b ldr r3, [r7, #36] ; 0x24 - 8041efe: 851a strh r2, [r3, #40] ; 0x28 + 8041e56: 6a7b ldr r3, [r7, #36] ; 0x24 + 8041e58: 8d1a ldrh r2, [r3, #40] ; 0x28 + 8041e5a: 8c7b ldrh r3, [r7, #34] ; 0x22 + 8041e5c: 4619 mov r1, r3 + 8041e5e: 0049 lsls r1, r1, #1 + 8041e60: 440b add r3, r1 + 8041e62: b29b uxth r3, r3 + 8041e64: 4413 add r3, r2 + 8041e66: b29a uxth r2, r3 + 8041e68: 6a7b ldr r3, [r7, #36] ; 0x24 + 8041e6a: 851a strh r2, [r3, #40] ; 0x28 /*Move to the new id*/ const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 8041f00: 2100 movs r1, #0 - 8041f02: 6878 ldr r0, [r7, #4] - 8041f04: f7ff f824 bl 8040f50 - 8041f08: 61f8 str r0, [r7, #28] + 8041e6c: 2100 movs r1, #0 + 8041e6e: 6878 ldr r0, [r7, #4] + 8041e70: f7ff f824 bl 8040ebc + 8041e74: 61f8 str r0, [r7, #28] lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN); - 8041f0a: 2100 movs r1, #0 - 8041f0c: 6878 ldr r0, [r7, #4] - 8041f0e: f7ff f844 bl 8040f9a - 8041f12: 4603 mov r3, r0 - 8041f14: 837b strh r3, [r7, #26] + 8041e76: 2100 movs r1, #0 + 8041e78: 6878 ldr r0, [r7, #4] + 8041e7a: f7ff f844 bl 8040f06 + 8041e7e: 4603 mov r3, r0 + 8041e80: 837b strh r3, [r7, #26] lv_coord_t font_h = lv_font_get_line_height(font); - 8041f16: 69f8 ldr r0, [r7, #28] - 8041f18: f7fe ff80 bl 8040e1c - 8041f1c: 4603 mov r3, r0 - 8041f1e: 833b strh r3, [r7, #24] + 8041e82: 69f8 ldr r0, [r7, #28] + 8041e84: f7fe ff80 bl 8040d88 + 8041e88: 4603 mov r3, r0 + 8041e8a: 833b strh r3, [r7, #24] lv_coord_t h = lv_obj_get_content_height(obj); - 8041f20: 6878 ldr r0, [r7, #4] - 8041f22: f7c8 f958 bl 800a1d6 - 8041f26: 4603 mov r3, r0 - 8041f28: 82fb strh r3, [r7, #22] + 8041e8c: 6878 ldr r0, [r7, #4] + 8041e8e: f7c8 f96c bl 800a16a + 8041e92: 4603 mov r3, r0 + 8041e94: 82fb strh r3, [r7, #22] lv_obj_t * label = get_label(obj); - 8041f2a: 6878 ldr r0, [r7, #4] - 8041f2c: f000 f830 bl 8041f90 - 8041f30: 6138 str r0, [r7, #16] + 8041e96: 6878 ldr r0, [r7, #4] + 8041e98: f000 f830 bl 8041efc + 8041e9c: 6138 str r0, [r7, #16] lv_coord_t sel_y1 = roller->sel_opt_id * (font_h + line_space); - 8041f32: 6a7b ldr r3, [r7, #36] ; 0x24 - 8041f34: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8041f36: f9b7 1018 ldrsh.w r1, [r7, #24] - 8041f3a: f9b7 201a ldrsh.w r2, [r7, #26] - 8041f3e: 440a add r2, r1 - 8041f40: b292 uxth r2, r2 - 8041f42: fb02 f303 mul.w r3, r2, r3 - 8041f46: b29b uxth r3, r3 - 8041f48: 81fb strh r3, [r7, #14] + 8041e9e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8041ea0: 8cdb ldrh r3, [r3, #38] ; 0x26 + 8041ea2: f9b7 1018 ldrsh.w r1, [r7, #24] + 8041ea6: f9b7 201a ldrsh.w r2, [r7, #26] + 8041eaa: 440a add r2, r1 + 8041eac: b292 uxth r2, r2 + 8041eae: fb02 f303 mul.w r3, r2, r3 + 8041eb2: b29b uxth r3, r3 + 8041eb4: 81fb strh r3, [r7, #14] lv_coord_t mid_y1 = h / 2 - font_h / 2; - 8041f4a: f9b7 3016 ldrsh.w r3, [r7, #22] - 8041f4e: 0fda lsrs r2, r3, #31 - 8041f50: 4413 add r3, r2 - 8041f52: 105b asrs r3, r3, #1 - 8041f54: b21b sxth r3, r3 - 8041f56: b29a uxth r2, r3 - 8041f58: f9b7 3018 ldrsh.w r3, [r7, #24] - 8041f5c: 0fd9 lsrs r1, r3, #31 - 8041f5e: 440b add r3, r1 - 8041f60: 105b asrs r3, r3, #1 - 8041f62: b21b sxth r3, r3 - 8041f64: b29b uxth r3, r3 - 8041f66: 1ad3 subs r3, r2, r3 - 8041f68: b29b uxth r3, r3 - 8041f6a: 81bb strh r3, [r7, #12] + 8041eb6: f9b7 3016 ldrsh.w r3, [r7, #22] + 8041eba: 0fda lsrs r2, r3, #31 + 8041ebc: 4413 add r3, r2 + 8041ebe: 105b asrs r3, r3, #1 + 8041ec0: b21b sxth r3, r3 + 8041ec2: b29a uxth r2, r3 + 8041ec4: f9b7 3018 ldrsh.w r3, [r7, #24] + 8041ec8: 0fd9 lsrs r1, r3, #31 + 8041eca: 440b add r3, r1 + 8041ecc: 105b asrs r3, r3, #1 + 8041ece: b21b sxth r3, r3 + 8041ed0: b29b uxth r3, r3 + 8041ed2: 1ad3 subs r3, r2, r3 + 8041ed4: b29b uxth r3, r3 + 8041ed6: 81bb strh r3, [r7, #12] lv_coord_t new_y = mid_y1 - sel_y1; - 8041f6c: 89ba ldrh r2, [r7, #12] - 8041f6e: 89fb ldrh r3, [r7, #14] - 8041f70: 1ad3 subs r3, r2, r3 - 8041f72: b29b uxth r3, r3 - 8041f74: 817b strh r3, [r7, #10] + 8041ed8: 89ba ldrh r2, [r7, #12] + 8041eda: 89fb ldrh r3, [r7, #14] + 8041edc: 1ad3 subs r3, r2, r3 + 8041ede: b29b uxth r3, r3 + 8041ee0: 817b strh r3, [r7, #10] lv_obj_set_y(label, new_y); - 8041f76: f9b7 300a ldrsh.w r3, [r7, #10] - 8041f7a: 4619 mov r1, r3 - 8041f7c: 6938 ldr r0, [r7, #16] - 8041f7e: f7c7 f9b5 bl 80092ec + 8041ee2: f9b7 300a ldrsh.w r3, [r7, #10] + 8041ee6: 4619 mov r1, r3 + 8041ee8: 6938 ldr r0, [r7, #16] + 8041eea: f7c7 f9c9 bl 8009280 } } - 8041f82: bf00 nop - 8041f84: 3728 adds r7, #40 ; 0x28 - 8041f86: 46bd mov sp, r7 - 8041f88: bd80 pop {r7, pc} - 8041f8a: bf00 nop - 8041f8c: 24924925 .word 0x24924925 + 8041eee: bf00 nop + 8041ef0: 3728 adds r7, #40 ; 0x28 + 8041ef2: 46bd mov sp, r7 + 8041ef4: bd80 pop {r7, pc} + 8041ef6: bf00 nop + 8041ef8: 24924925 .word 0x24924925 -08041f90 : +08041efc : static lv_obj_t * get_label(const lv_obj_t * obj) { - 8041f90: b580 push {r7, lr} - 8041f92: b082 sub sp, #8 - 8041f94: af00 add r7, sp, #0 - 8041f96: 6078 str r0, [r7, #4] + 8041efc: b580 push {r7, lr} + 8041efe: b082 sub sp, #8 + 8041f00: af00 add r7, sp, #0 + 8041f02: 6078 str r0, [r7, #4] return lv_obj_get_child(obj, 0); - 8041f98: 2100 movs r1, #0 - 8041f9a: 6878 ldr r0, [r7, #4] - 8041f9c: f7cd fbc6 bl 800f72c - 8041fa0: 4603 mov r3, r0 + 8041f04: 2100 movs r1, #0 + 8041f06: 6878 ldr r0, [r7, #4] + 8041f08: f7cd fbc6 bl 800f698 + 8041f0c: 4603 mov r3, r0 } - 8041fa2: 4618 mov r0, r3 - 8041fa4: 3708 adds r7, #8 - 8041fa6: 46bd mov sp, r7 - 8041fa8: bd80 pop {r7, pc} + 8041f0e: 4618 mov r0, r3 + 8041f10: 3708 adds r7, #8 + 8041f12: 46bd mov sp, r7 + 8041f14: bd80 pop {r7, pc} -08041faa : +08041f16 : static lv_coord_t get_selected_label_width(const lv_obj_t * obj) { - 8041faa: b580 push {r7, lr} - 8041fac: b08c sub sp, #48 ; 0x30 - 8041fae: af04 add r7, sp, #16 - 8041fb0: 6078 str r0, [r7, #4] + 8041f16: b580 push {r7, lr} + 8041f18: b08c sub sp, #48 ; 0x30 + 8041f1a: af04 add r7, sp, #16 + 8041f1c: 6078 str r0, [r7, #4] lv_obj_t * label = get_label(obj); - 8041fb2: 6878 ldr r0, [r7, #4] - 8041fb4: f7ff ffec bl 8041f90 - 8041fb8: 61f8 str r0, [r7, #28] + 8041f1e: 6878 ldr r0, [r7, #4] + 8041f20: f7ff ffec bl 8041efc + 8041f24: 61f8 str r0, [r7, #28] if(label == NULL) return 0; - 8041fba: 69fb ldr r3, [r7, #28] - 8041fbc: 2b00 cmp r3, #0 - 8041fbe: d101 bne.n 8041fc4 - 8041fc0: 2300 movs r3, #0 - 8041fc2: e021 b.n 8042008 + 8041f26: 69fb ldr r3, [r7, #28] + 8041f28: 2b00 cmp r3, #0 + 8041f2a: d101 bne.n 8041f30 + 8041f2c: 2300 movs r3, #0 + 8041f2e: e021 b.n 8041f74 const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_SELECTED); - 8041fc4: f44f 2180 mov.w r1, #262144 ; 0x40000 - 8041fc8: 6878 ldr r0, [r7, #4] - 8041fca: f7fe ffc1 bl 8040f50 - 8041fce: 61b8 str r0, [r7, #24] + 8041f30: f44f 2180 mov.w r1, #262144 ; 0x40000 + 8041f34: 6878 ldr r0, [r7, #4] + 8041f36: f7fe ffc1 bl 8040ebc + 8041f3a: 61b8 str r0, [r7, #24] lv_coord_t letter_space = lv_obj_get_style_text_letter_space(obj, LV_PART_SELECTED); - 8041fd0: f44f 2180 mov.w r1, #262144 ; 0x40000 - 8041fd4: 6878 ldr r0, [r7, #4] - 8041fd6: f7fe ffcd bl 8040f74 - 8041fda: 4603 mov r3, r0 - 8041fdc: 82fb strh r3, [r7, #22] + 8041f3c: f44f 2180 mov.w r1, #262144 ; 0x40000 + 8041f40: 6878 ldr r0, [r7, #4] + 8041f42: f7fe ffcd bl 8040ee0 + 8041f46: 4603 mov r3, r0 + 8041f48: 82fb strh r3, [r7, #22] const char * txt = lv_label_get_text(label); - 8041fde: 69f8 ldr r0, [r7, #28] - 8041fe0: f7fc fff0 bl 803efc4 - 8041fe4: 6138 str r0, [r7, #16] + 8041f4a: 69f8 ldr r0, [r7, #28] + 8041f4c: f7fc fff0 bl 803ef30 + 8041f50: 6138 str r0, [r7, #16] lv_point_t size; lv_txt_get_size(&size, txt, font, letter_space, 0, LV_COORD_MAX, LV_TEXT_FLAG_NONE); - 8041fe6: f9b7 3016 ldrsh.w r3, [r7, #22] - 8041fea: f107 000c add.w r0, r7, #12 - 8041fee: 2200 movs r2, #0 - 8041ff0: 9202 str r2, [sp, #8] - 8041ff2: f641 72ff movw r2, #8191 ; 0x1fff - 8041ff6: 9201 str r2, [sp, #4] - 8041ff8: 2200 movs r2, #0 - 8041ffa: 9200 str r2, [sp, #0] - 8041ffc: 69ba ldr r2, [r7, #24] - 8041ffe: 6939 ldr r1, [r7, #16] - 8042000: f7f4 f843 bl 803608a + 8041f52: f9b7 3016 ldrsh.w r3, [r7, #22] + 8041f56: f107 000c add.w r0, r7, #12 + 8041f5a: 2200 movs r2, #0 + 8041f5c: 9202 str r2, [sp, #8] + 8041f5e: f641 72ff movw r2, #8191 ; 0x1fff + 8041f62: 9201 str r2, [sp, #4] + 8041f64: 2200 movs r2, #0 + 8041f66: 9200 str r2, [sp, #0] + 8041f68: 69ba ldr r2, [r7, #24] + 8041f6a: 6939 ldr r1, [r7, #16] + 8041f6c: f7f4 f843 bl 8035ff6 return size.x; - 8042004: f9b7 300c ldrsh.w r3, [r7, #12] + 8041f70: f9b7 300c ldrsh.w r3, [r7, #12] } - 8042008: 4618 mov r0, r3 - 804200a: 3720 adds r7, #32 - 804200c: 46bd mov sp, r7 - 804200e: bd80 pop {r7, pc} + 8041f74: 4618 mov r0, r3 + 8041f76: 3720 adds r7, #32 + 8041f78: 46bd mov sp, r7 + 8041f7a: bd80 pop {r7, pc} -08042010 : +08041f7c : static void scroll_anim_ready_cb(lv_anim_t * a) { - 8042010: b580 push {r7, lr} - 8042012: b084 sub sp, #16 - 8042014: af00 add r7, sp, #0 - 8042016: 6078 str r0, [r7, #4] + 8041f7c: b580 push {r7, lr} + 8041f7e: b084 sub sp, #16 + 8041f80: af00 add r7, sp, #0 + 8041f82: 6078 str r0, [r7, #4] lv_obj_t * obj = lv_obj_get_parent(a->var); /*The label is animated*/ - 8042018: 687b ldr r3, [r7, #4] - 804201a: 681b ldr r3, [r3, #0] - 804201c: 4618 mov r0, r3 - 804201e: f7cd fb75 bl 800f70c - 8042022: 60f8 str r0, [r7, #12] + 8041f84: 687b ldr r3, [r7, #4] + 8041f86: 681b ldr r3, [r3, #0] + 8041f88: 4618 mov r0, r3 + 8041f8a: f7cd fb75 bl 800f678 + 8041f8e: 60f8 str r0, [r7, #12] inf_normalize(obj); - 8042024: 68f8 ldr r0, [r7, #12] - 8042026: f7ff ff27 bl 8041e78 + 8041f90: 68f8 ldr r0, [r7, #12] + 8041f92: f7ff ff27 bl 8041de4 } - 804202a: bf00 nop - 804202c: 3710 adds r7, #16 - 804202e: 46bd mov sp, r7 - 8042030: bd80 pop {r7, pc} + 8041f96: bf00 nop + 8041f98: 3710 adds r7, #16 + 8041f9a: 46bd mov sp, r7 + 8041f9c: bd80 pop {r7, pc} -08042032 : +08041f9e : static void set_y_anim(void * obj, int32_t v) { - 8042032: b580 push {r7, lr} - 8042034: b082 sub sp, #8 - 8042036: af00 add r7, sp, #0 - 8042038: 6078 str r0, [r7, #4] - 804203a: 6039 str r1, [r7, #0] + 8041f9e: b580 push {r7, lr} + 8041fa0: b082 sub sp, #8 + 8041fa2: af00 add r7, sp, #0 + 8041fa4: 6078 str r0, [r7, #4] + 8041fa6: 6039 str r1, [r7, #0] lv_obj_set_y(obj, v); - 804203c: 683b ldr r3, [r7, #0] - 804203e: b21b sxth r3, r3 - 8042040: 4619 mov r1, r3 - 8042042: 6878 ldr r0, [r7, #4] - 8042044: f7c7 f952 bl 80092ec + 8041fa8: 683b ldr r3, [r7, #0] + 8041faa: b21b sxth r3, r3 + 8041fac: 4619 mov r1, r3 + 8041fae: 6878 ldr r0, [r7, #4] + 8041fb0: f7c7 f966 bl 8009280 } - 8042048: bf00 nop - 804204a: 3708 adds r7, #8 - 804204c: 46bd mov sp, r7 - 804204e: bd80 pop {r7, pc} + 8041fb4: bf00 nop + 8041fb6: 3708 adds r7, #8 + 8041fb8: 46bd mov sp, r7 + 8041fba: bd80 pop {r7, pc} -08042050 : +08041fbc : { - 8042050: b480 push {r7} - 8042052: b083 sub sp, #12 - 8042054: af00 add r7, sp, #0 - 8042056: 6078 str r0, [r7, #4] - 8042058: 6039 str r1, [r7, #0] + 8041fbc: b480 push {r7} + 8041fbe: b083 sub sp, #12 + 8041fc0: af00 add r7, sp, #0 + 8041fc2: 6078 str r0, [r7, #4] + 8041fc4: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 804205a: 683b ldr r3, [r7, #0] - 804205c: f9b3 2000 ldrsh.w r2, [r3] - 8042060: 687b ldr r3, [r7, #4] - 8042062: 801a strh r2, [r3, #0] + 8041fc6: 683b ldr r3, [r7, #0] + 8041fc8: f9b3 2000 ldrsh.w r2, [r3] + 8041fcc: 687b ldr r3, [r7, #4] + 8041fce: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 8042064: 683b ldr r3, [r7, #0] - 8042066: f9b3 2002 ldrsh.w r2, [r3, #2] - 804206a: 687b ldr r3, [r7, #4] - 804206c: 805a strh r2, [r3, #2] + 8041fd0: 683b ldr r3, [r7, #0] + 8041fd2: f9b3 2002 ldrsh.w r2, [r3, #2] + 8041fd6: 687b ldr r3, [r7, #4] + 8041fd8: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 804206e: 683b ldr r3, [r7, #0] - 8042070: f9b3 2004 ldrsh.w r2, [r3, #4] - 8042074: 687b ldr r3, [r7, #4] - 8042076: 809a strh r2, [r3, #4] + 8041fda: 683b ldr r3, [r7, #0] + 8041fdc: f9b3 2004 ldrsh.w r2, [r3, #4] + 8041fe0: 687b ldr r3, [r7, #4] + 8041fe2: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 8042078: 683b ldr r3, [r7, #0] - 804207a: f9b3 2006 ldrsh.w r2, [r3, #6] - 804207e: 687b ldr r3, [r7, #4] - 8042080: 80da strh r2, [r3, #6] + 8041fe4: 683b ldr r3, [r7, #0] + 8041fe6: f9b3 2006 ldrsh.w r2, [r3, #6] + 8041fea: 687b ldr r3, [r7, #4] + 8041fec: 80da strh r2, [r3, #6] } - 8042082: bf00 nop - 8042084: 370c adds r7, #12 - 8042086: 46bd mov sp, r7 - 8042088: bc80 pop {r7} - 804208a: 4770 bx lr + 8041fee: bf00 nop + 8041ff0: 370c adds r7, #12 + 8041ff2: 46bd mov sp, r7 + 8041ff4: bc80 pop {r7} + 8041ff6: 4770 bx lr -0804208c : +08041ff8 : { - 804208c: b580 push {r7, lr} - 804208e: b084 sub sp, #16 - 8042090: af00 add r7, sp, #0 - 8042092: 6078 str r0, [r7, #4] - 8042094: 6039 str r1, [r7, #0] + 8041ff8: b580 push {r7, lr} + 8041ffa: b084 sub sp, #16 + 8041ffc: af00 add r7, sp, #0 + 8041ffe: 6078 str r0, [r7, #4] + 8042000: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_WIDTH); - 8042096: f640 020a movw r2, #2058 ; 0x80a - 804209a: 6839 ldr r1, [r7, #0] - 804209c: 6878 ldr r0, [r7, #4] - 804209e: f7cb fe87 bl 800ddb0 - 80420a2: 4603 mov r3, r0 - 80420a4: 60fb str r3, [r7, #12] + 8042002: f640 020a movw r2, #2058 ; 0x80a + 8042006: 6839 ldr r1, [r7, #0] + 8042008: 6878 ldr r0, [r7, #4] + 804200a: f7cb fe9b bl 800dd44 + 804200e: 4603 mov r3, r0 + 8042010: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80420a6: 68fb ldr r3, [r7, #12] - 80420a8: b21b sxth r3, r3 + 8042012: 68fb ldr r3, [r7, #12] + 8042014: b21b sxth r3, r3 } - 80420aa: 4618 mov r0, r3 - 80420ac: 3710 adds r7, #16 - 80420ae: 46bd mov sp, r7 - 80420b0: bd80 pop {r7, pc} + 8042016: 4618 mov r0, r3 + 8042018: 3710 adds r7, #16 + 804201a: 46bd mov sp, r7 + 804201c: bd80 pop {r7, pc} -080420b2 : +0804201e : { - 80420b2: b580 push {r7, lr} - 80420b4: b084 sub sp, #16 - 80420b6: af00 add r7, sp, #0 - 80420b8: 6078 str r0, [r7, #4] - 80420ba: 6039 str r1, [r7, #0] + 804201e: b580 push {r7, lr} + 8042020: b084 sub sp, #16 + 8042022: af00 add r7, sp, #0 + 8042024: 6078 str r0, [r7, #4] + 8042026: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_HEIGHT); - 80420bc: f640 020b movw r2, #2059 ; 0x80b - 80420c0: 6839 ldr r1, [r7, #0] - 80420c2: 6878 ldr r0, [r7, #4] - 80420c4: f7cb fe74 bl 800ddb0 - 80420c8: 4603 mov r3, r0 - 80420ca: 60fb str r3, [r7, #12] + 8042028: f640 020b movw r2, #2059 ; 0x80b + 804202c: 6839 ldr r1, [r7, #0] + 804202e: 6878 ldr r0, [r7, #4] + 8042030: f7cb fe88 bl 800dd44 + 8042034: 4603 mov r3, r0 + 8042036: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80420cc: 68fb ldr r3, [r7, #12] - 80420ce: b21b sxth r3, r3 + 8042038: 68fb ldr r3, [r7, #12] + 804203a: b21b sxth r3, r3 } - 80420d0: 4618 mov r0, r3 - 80420d2: 3710 adds r7, #16 - 80420d4: 46bd mov sp, r7 - 80420d6: bd80 pop {r7, pc} + 804203c: 4618 mov r0, r3 + 804203e: 3710 adds r7, #16 + 8042040: 46bd mov sp, r7 + 8042042: bd80 pop {r7, pc} -080420d8 : +08042044 : { - 80420d8: b580 push {r7, lr} - 80420da: b084 sub sp, #16 - 80420dc: af00 add r7, sp, #0 - 80420de: 6078 str r0, [r7, #4] - 80420e0: 6039 str r1, [r7, #0] + 8042044: b580 push {r7, lr} + 8042046: b084 sub sp, #16 + 8042048: af00 add r7, sp, #0 + 804204a: 6078 str r0, [r7, #4] + 804204c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_ZOOM); - 80420e2: f643 020e movw r2, #14350 ; 0x380e - 80420e6: 6839 ldr r1, [r7, #0] - 80420e8: 6878 ldr r0, [r7, #4] - 80420ea: f7cb fe61 bl 800ddb0 - 80420ee: 4603 mov r3, r0 - 80420f0: 60fb str r3, [r7, #12] + 804204e: f643 020e movw r2, #14350 ; 0x380e + 8042052: 6839 ldr r1, [r7, #0] + 8042054: 6878 ldr r0, [r7, #4] + 8042056: f7cb fe75 bl 800dd44 + 804205a: 4603 mov r3, r0 + 804205c: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80420f2: 68fb ldr r3, [r7, #12] - 80420f4: b21b sxth r3, r3 + 804205e: 68fb ldr r3, [r7, #12] + 8042060: b21b sxth r3, r3 } - 80420f6: 4618 mov r0, r3 - 80420f8: 3710 adds r7, #16 - 80420fa: 46bd mov sp, r7 - 80420fc: bd80 pop {r7, pc} + 8042062: 4618 mov r0, r3 + 8042064: 3710 adds r7, #16 + 8042066: 46bd mov sp, r7 + 8042068: bd80 pop {r7, pc} -080420fe : +0804206a : { - 80420fe: b580 push {r7, lr} - 8042100: b084 sub sp, #16 - 8042102: af00 add r7, sp, #0 - 8042104: 6078 str r0, [r7, #4] - 8042106: 6039 str r1, [r7, #0] + 804206a: b580 push {r7, lr} + 804206c: b084 sub sp, #16 + 804206e: af00 add r7, sp, #0 + 8042070: 6078 str r0, [r7, #4] + 8042072: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 8042108: f641 0210 movw r2, #6160 ; 0x1810 - 804210c: 6839 ldr r1, [r7, #0] - 804210e: 6878 ldr r0, [r7, #4] - 8042110: f7cb fe4e bl 800ddb0 - 8042114: 4603 mov r3, r0 - 8042116: 60fb str r3, [r7, #12] + 8042074: f641 0210 movw r2, #6160 ; 0x1810 + 8042078: 6839 ldr r1, [r7, #0] + 804207a: 6878 ldr r0, [r7, #4] + 804207c: f7cb fe62 bl 800dd44 + 8042080: 4603 mov r3, r0 + 8042082: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8042118: 68fb ldr r3, [r7, #12] - 804211a: b21b sxth r3, r3 + 8042084: 68fb ldr r3, [r7, #12] + 8042086: b21b sxth r3, r3 } - 804211c: 4618 mov r0, r3 - 804211e: 3710 adds r7, #16 - 8042120: 46bd mov sp, r7 - 8042122: bd80 pop {r7, pc} + 8042088: 4618 mov r0, r3 + 804208a: 3710 adds r7, #16 + 804208c: 46bd mov sp, r7 + 804208e: bd80 pop {r7, pc} -08042124 : +08042090 : { - 8042124: b580 push {r7, lr} - 8042126: b084 sub sp, #16 - 8042128: af00 add r7, sp, #0 - 804212a: 6078 str r0, [r7, #4] - 804212c: 6039 str r1, [r7, #0] + 8042090: b580 push {r7, lr} + 8042092: b084 sub sp, #16 + 8042094: af00 add r7, sp, #0 + 8042096: 6078 str r0, [r7, #4] + 8042098: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); - 804212e: f641 0211 movw r2, #6161 ; 0x1811 - 8042132: 6839 ldr r1, [r7, #0] - 8042134: 6878 ldr r0, [r7, #4] - 8042136: f7cb fe3b bl 800ddb0 - 804213a: 4603 mov r3, r0 - 804213c: 60fb str r3, [r7, #12] + 804209a: f641 0211 movw r2, #6161 ; 0x1811 + 804209e: 6839 ldr r1, [r7, #0] + 80420a0: 6878 ldr r0, [r7, #4] + 80420a2: f7cb fe4f bl 800dd44 + 80420a6: 4603 mov r3, r0 + 80420a8: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 804213e: 68fb ldr r3, [r7, #12] - 8042140: b21b sxth r3, r3 + 80420aa: 68fb ldr r3, [r7, #12] + 80420ac: b21b sxth r3, r3 } - 8042142: 4618 mov r0, r3 - 8042144: 3710 adds r7, #16 - 8042146: 46bd mov sp, r7 - 8042148: bd80 pop {r7, pc} + 80420ae: 4618 mov r0, r3 + 80420b0: 3710 adds r7, #16 + 80420b2: 46bd mov sp, r7 + 80420b4: bd80 pop {r7, pc} -0804214a : +080420b6 : { - 804214a: b580 push {r7, lr} - 804214c: b084 sub sp, #16 - 804214e: af00 add r7, sp, #0 - 8042150: 6078 str r0, [r7, #4] - 8042152: 6039 str r1, [r7, #0] + 80420b6: b580 push {r7, lr} + 80420b8: b084 sub sp, #16 + 80420ba: af00 add r7, sp, #0 + 80420bc: 6078 str r0, [r7, #4] + 80420be: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 8042154: f641 0212 movw r2, #6162 ; 0x1812 - 8042158: 6839 ldr r1, [r7, #0] - 804215a: 6878 ldr r0, [r7, #4] - 804215c: f7cb fe28 bl 800ddb0 - 8042160: 4603 mov r3, r0 - 8042162: 60fb str r3, [r7, #12] + 80420c0: f641 0212 movw r2, #6162 ; 0x1812 + 80420c4: 6839 ldr r1, [r7, #0] + 80420c6: 6878 ldr r0, [r7, #4] + 80420c8: f7cb fe3c bl 800dd44 + 80420cc: 4603 mov r3, r0 + 80420ce: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8042164: 68fb ldr r3, [r7, #12] - 8042166: b21b sxth r3, r3 + 80420d0: 68fb ldr r3, [r7, #12] + 80420d2: b21b sxth r3, r3 } - 8042168: 4618 mov r0, r3 - 804216a: 3710 adds r7, #16 - 804216c: 46bd mov sp, r7 - 804216e: bd80 pop {r7, pc} + 80420d4: 4618 mov r0, r3 + 80420d6: 3710 adds r7, #16 + 80420d8: 46bd mov sp, r7 + 80420da: bd80 pop {r7, pc} -08042170 : +080420dc : { - 8042170: b580 push {r7, lr} - 8042172: b084 sub sp, #16 - 8042174: af00 add r7, sp, #0 - 8042176: 6078 str r0, [r7, #4] - 8042178: 6039 str r1, [r7, #0] + 80420dc: b580 push {r7, lr} + 80420de: b084 sub sp, #16 + 80420e0: af00 add r7, sp, #0 + 80420e2: 6078 str r0, [r7, #4] + 80420e4: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - 804217a: f641 0213 movw r2, #6163 ; 0x1813 - 804217e: 6839 ldr r1, [r7, #0] - 8042180: 6878 ldr r0, [r7, #4] - 8042182: f7cb fe15 bl 800ddb0 - 8042186: 4603 mov r3, r0 - 8042188: 60fb str r3, [r7, #12] + 80420e6: f641 0213 movw r2, #6163 ; 0x1813 + 80420ea: 6839 ldr r1, [r7, #0] + 80420ec: 6878 ldr r0, [r7, #4] + 80420ee: f7cb fe29 bl 800dd44 + 80420f2: 4603 mov r3, r0 + 80420f4: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 804218a: 68fb ldr r3, [r7, #12] - 804218c: b21b sxth r3, r3 + 80420f6: 68fb ldr r3, [r7, #12] + 80420f8: b21b sxth r3, r3 } - 804218e: 4618 mov r0, r3 - 8042190: 3710 adds r7, #16 - 8042192: 46bd mov sp, r7 - 8042194: bd80 pop {r7, pc} + 80420fa: 4618 mov r0, r3 + 80420fc: 3710 adds r7, #16 + 80420fe: 46bd mov sp, r7 + 8042100: bd80 pop {r7, pc} -08042196 : +08042102 : { - 8042196: b580 push {r7, lr} - 8042198: b084 sub sp, #16 - 804219a: af00 add r7, sp, #0 - 804219c: 6078 str r0, [r7, #4] - 804219e: 6039 str r1, [r7, #0] + 8042102: b580 push {r7, lr} + 8042104: b084 sub sp, #16 + 8042106: af00 add r7, sp, #0 + 8042108: 6078 str r0, [r7, #4] + 804210a: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BASE_DIR); - 80421a0: f241 426a movw r2, #5226 ; 0x146a - 80421a4: 6839 ldr r1, [r7, #0] - 80421a6: 6878 ldr r0, [r7, #4] - 80421a8: f7cb fe02 bl 800ddb0 - 80421ac: 4603 mov r3, r0 - 80421ae: 60fb str r3, [r7, #12] + 804210c: f241 426a movw r2, #5226 ; 0x146a + 8042110: 6839 ldr r1, [r7, #0] + 8042112: 6878 ldr r0, [r7, #4] + 8042114: f7cb fe16 bl 800dd44 + 8042118: 4603 mov r3, r0 + 804211a: 60fb str r3, [r7, #12] return (lv_base_dir_t)v.num; - 80421b0: 68fb ldr r3, [r7, #12] - 80421b2: b2db uxtb r3, r3 + 804211c: 68fb ldr r3, [r7, #12] + 804211e: b2db uxtb r3, r3 } - 80421b4: 4618 mov r0, r3 - 80421b6: 3710 adds r7, #16 - 80421b8: 46bd mov sp, r7 - 80421ba: bd80 pop {r7, pc} + 8042120: 4618 mov r0, r3 + 8042122: 3710 adds r7, #16 + 8042124: 46bd mov sp, r7 + 8042126: bd80 pop {r7, pc} -080421bc : +08042128 : * @param obj pointer to a slider object * @param value the new value * @param anim LV_ANIM_ON: set the value with an animation; LV_ANIM_OFF: change the value immediately */ static inline void lv_slider_set_value(lv_obj_t * obj, int32_t value, lv_anim_enable_t anim) { - 80421bc: b580 push {r7, lr} - 80421be: b084 sub sp, #16 - 80421c0: af00 add r7, sp, #0 - 80421c2: 60f8 str r0, [r7, #12] - 80421c4: 60b9 str r1, [r7, #8] - 80421c6: 4613 mov r3, r2 - 80421c8: 71fb strb r3, [r7, #7] + 8042128: b580 push {r7, lr} + 804212a: b084 sub sp, #16 + 804212c: af00 add r7, sp, #0 + 804212e: 60f8 str r0, [r7, #12] + 8042130: 60b9 str r1, [r7, #8] + 8042132: 4613 mov r3, r2 + 8042134: 71fb strb r3, [r7, #7] lv_bar_set_value(obj, value, anim); - 80421ca: 79fb ldrb r3, [r7, #7] - 80421cc: 461a mov r2, r3 - 80421ce: 68b9 ldr r1, [r7, #8] - 80421d0: 68f8 ldr r0, [r7, #12] - 80421d2: f7f6 f9d5 bl 8038580 + 8042136: 79fb ldrb r3, [r7, #7] + 8042138: 461a mov r2, r3 + 804213a: 68b9 ldr r1, [r7, #8] + 804213c: 68f8 ldr r0, [r7, #12] + 804213e: f7f6 f9d5 bl 80384ec } - 80421d6: bf00 nop - 80421d8: 3710 adds r7, #16 - 80421da: 46bd mov sp, r7 - 80421dc: bd80 pop {r7, pc} + 8042142: bf00 nop + 8042144: 3710 adds r7, #16 + 8042146: 46bd mov sp, r7 + 8042148: bd80 pop {r7, pc} -080421de : +0804214a : * @param obj pointer to a slider object * @param value new value * @param anim LV_ANIM_ON: set the value with an animation; LV_ANIM_OFF: change the value immediately */ static inline void lv_slider_set_left_value(lv_obj_t * obj, int32_t value, lv_anim_enable_t anim) { - 80421de: b580 push {r7, lr} - 80421e0: b084 sub sp, #16 - 80421e2: af00 add r7, sp, #0 - 80421e4: 60f8 str r0, [r7, #12] - 80421e6: 60b9 str r1, [r7, #8] - 80421e8: 4613 mov r3, r2 - 80421ea: 71fb strb r3, [r7, #7] + 804214a: b580 push {r7, lr} + 804214c: b084 sub sp, #16 + 804214e: af00 add r7, sp, #0 + 8042150: 60f8 str r0, [r7, #12] + 8042152: 60b9 str r1, [r7, #8] + 8042154: 4613 mov r3, r2 + 8042156: 71fb strb r3, [r7, #7] lv_bar_set_start_value(obj, value, anim); - 80421ec: 79fb ldrb r3, [r7, #7] - 80421ee: 461a mov r2, r3 - 80421f0: 68b9 ldr r1, [r7, #8] - 80421f2: 68f8 ldr r0, [r7, #12] - 80421f4: f7f6 f9fe bl 80385f4 + 8042158: 79fb ldrb r3, [r7, #7] + 804215a: 461a mov r2, r3 + 804215c: 68b9 ldr r1, [r7, #8] + 804215e: 68f8 ldr r0, [r7, #12] + 8042160: f7f6 f9fe bl 8038560 } - 80421f8: bf00 nop - 80421fa: 3710 adds r7, #16 - 80421fc: 46bd mov sp, r7 - 80421fe: bd80 pop {r7, pc} + 8042164: bf00 nop + 8042166: 3710 adds r7, #16 + 8042168: 46bd mov sp, r7 + 804216a: bd80 pop {r7, pc} -08042200 : +0804216c : * Get the value of the main knob of a slider * @param obj pointer to a slider object * @return the value of the main knob of the slider */ static inline int32_t lv_slider_get_value(const lv_obj_t * obj) { - 8042200: b580 push {r7, lr} - 8042202: b082 sub sp, #8 - 8042204: af00 add r7, sp, #0 - 8042206: 6078 str r0, [r7, #4] + 804216c: b580 push {r7, lr} + 804216e: b082 sub sp, #8 + 8042170: af00 add r7, sp, #0 + 8042172: 6078 str r0, [r7, #4] return lv_bar_get_value(obj); - 8042208: 6878 ldr r0, [r7, #4] - 804220a: f7f6 fa30 bl 803866e - 804220e: 4603 mov r3, r0 + 8042174: 6878 ldr r0, [r7, #4] + 8042176: f7f6 fa30 bl 80385da + 804217a: 4603 mov r3, r0 } - 8042210: 4618 mov r0, r3 - 8042212: 3708 adds r7, #8 - 8042214: 46bd mov sp, r7 - 8042216: bd80 pop {r7, pc} + 804217c: 4618 mov r0, r3 + 804217e: 3708 adds r7, #8 + 8042180: 46bd mov sp, r7 + 8042182: bd80 pop {r7, pc} -08042218 : +08042184 : * Get the value of the left knob of a slider * @param obj pointer to a slider object * @return the value of the left knob of the slider */ static inline int32_t lv_slider_get_left_value(const lv_obj_t * obj) { - 8042218: b580 push {r7, lr} - 804221a: b082 sub sp, #8 - 804221c: af00 add r7, sp, #0 - 804221e: 6078 str r0, [r7, #4] + 8042184: b580 push {r7, lr} + 8042186: b082 sub sp, #8 + 8042188: af00 add r7, sp, #0 + 804218a: 6078 str r0, [r7, #4] return lv_bar_get_start_value(obj); - 8042220: 6878 ldr r0, [r7, #4] - 8042222: f7f6 fa39 bl 8038698 - 8042226: 4603 mov r3, r0 + 804218c: 6878 ldr r0, [r7, #4] + 804218e: f7f6 fa39 bl 8038604 + 8042192: 4603 mov r3, r0 } - 8042228: 4618 mov r0, r3 - 804222a: 3708 adds r7, #8 - 804222c: 46bd mov sp, r7 - 804222e: bd80 pop {r7, pc} + 8042194: 4618 mov r0, r3 + 8042196: 3708 adds r7, #8 + 8042198: 46bd mov sp, r7 + 804219a: bd80 pop {r7, pc} -08042230 : +0804219c : * Get the mode of the slider. * @param obj pointer to a bar object * @return see ::lv_slider_mode_t */ static inline lv_slider_mode_t lv_slider_get_mode(lv_obj_t * slider) { - 8042230: b580 push {r7, lr} - 8042232: b084 sub sp, #16 - 8042234: af00 add r7, sp, #0 - 8042236: 6078 str r0, [r7, #4] + 804219c: b580 push {r7, lr} + 804219e: b084 sub sp, #16 + 80421a0: af00 add r7, sp, #0 + 80421a2: 6078 str r0, [r7, #4] lv_bar_mode_t mode = lv_bar_get_mode(slider); - 8042238: 6878 ldr r0, [r7, #4] - 804223a: f7f6 fa4d bl 80386d8 - 804223e: 4603 mov r3, r0 - 8042240: 73fb strb r3, [r7, #15] + 80421a4: 6878 ldr r0, [r7, #4] + 80421a6: f7f6 fa4d bl 8038644 + 80421aa: 4603 mov r3, r0 + 80421ac: 73fb strb r3, [r7, #15] if(mode == LV_BAR_MODE_SYMMETRICAL) return LV_SLIDER_MODE_SYMMETRICAL; - 8042242: 7bfb ldrb r3, [r7, #15] - 8042244: 2b01 cmp r3, #1 - 8042246: d101 bne.n 804224c - 8042248: 2301 movs r3, #1 - 804224a: e005 b.n 8042258 + 80421ae: 7bfb ldrb r3, [r7, #15] + 80421b0: 2b01 cmp r3, #1 + 80421b2: d101 bne.n 80421b8 + 80421b4: 2301 movs r3, #1 + 80421b6: e005 b.n 80421c4 else if(mode == LV_BAR_MODE_RANGE) return LV_SLIDER_MODE_RANGE; - 804224c: 7bfb ldrb r3, [r7, #15] - 804224e: 2b02 cmp r3, #2 - 8042250: d101 bne.n 8042256 - 8042252: 2302 movs r3, #2 - 8042254: e000 b.n 8042258 + 80421b8: 7bfb ldrb r3, [r7, #15] + 80421ba: 2b02 cmp r3, #2 + 80421bc: d101 bne.n 80421c2 + 80421be: 2302 movs r3, #2 + 80421c0: e000 b.n 80421c4 else return LV_SLIDER_MODE_NORMAL; - 8042256: 2300 movs r3, #0 + 80421c2: 2300 movs r3, #0 } - 8042258: 4618 mov r0, r3 - 804225a: 3710 adds r7, #16 - 804225c: 46bd mov sp, r7 - 804225e: bd80 pop {r7, pc} + 80421c4: 4618 mov r0, r3 + 80421c6: 3710 adds r7, #16 + 80421c8: 46bd mov sp, r7 + 80421ca: bd80 pop {r7, pc} -08042260 : +080421cc : /********************** * STATIC FUNCTIONS **********************/ static void lv_slider_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 8042260: b580 push {r7, lr} - 8042262: b084 sub sp, #16 - 8042264: af00 add r7, sp, #0 - 8042266: 6078 str r0, [r7, #4] - 8042268: 6039 str r1, [r7, #0] + 80421cc: b580 push {r7, lr} + 80421ce: b084 sub sp, #16 + 80421d0: af00 add r7, sp, #0 + 80421d2: 6078 str r0, [r7, #4] + 80421d4: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_slider_t * slider = (lv_slider_t *)obj; - 804226a: 683b ldr r3, [r7, #0] - 804226c: 60fb str r3, [r7, #12] + 80421d6: 683b ldr r3, [r7, #0] + 80421d8: 60fb str r3, [r7, #12] /*Initialize the allocated 'slider'*/ slider->value_to_set = NULL; - 804226e: 68fb ldr r3, [r7, #12] - 8042270: 2200 movs r2, #0 - 8042272: 671a str r2, [r3, #112] ; 0x70 + 80421da: 68fb ldr r3, [r7, #12] + 80421dc: 2200 movs r2, #0 + 80421de: 671a str r2, [r3, #112] ; 0x70 slider->dragging = 0; - 8042274: 68fa ldr r2, [r7, #12] - 8042276: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 - 804227a: f36f 0300 bfc r3, #0, #1 - 804227e: f882 3074 strb.w r3, [r2, #116] ; 0x74 + 80421e0: 68fa ldr r2, [r7, #12] + 80421e2: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 + 80421e6: f36f 0300 bfc r3, #0, #1 + 80421ea: f882 3074 strb.w r3, [r2, #116] ; 0x74 slider->left_knob_focus = 0; - 8042282: 68fa ldr r2, [r7, #12] - 8042284: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 - 8042288: f36f 0341 bfc r3, #1, #1 - 804228c: f882 3074 strb.w r3, [r2, #116] ; 0x74 + 80421ee: 68fa ldr r2, [r7, #12] + 80421f0: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 + 80421f4: f36f 0341 bfc r3, #1, #1 + 80421f8: f882 3074 strb.w r3, [r2, #116] ; 0x74 lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN); - 8042290: f44f 7140 mov.w r1, #768 ; 0x300 - 8042294: 6838 ldr r0, [r7, #0] - 8042296: f7c4 f9e3 bl 8006660 + 80421fc: f44f 7140 mov.w r1, #768 ; 0x300 + 8042200: 6838 ldr r0, [r7, #0] + 8042202: f7c4 f9f7 bl 80065f4 lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); - 804229a: 2110 movs r1, #16 - 804229c: 6838 ldr r0, [r7, #0] - 804229e: f7c4 f9df bl 8006660 + 8042206: 2110 movs r1, #16 + 8042208: 6838 ldr r0, [r7, #0] + 804220a: f7c4 f9f3 bl 80065f4 lv_obj_set_ext_click_area(obj, LV_DPX(8)); - 80422a2: 2000 movs r0, #0 - 80422a4: f7ee f968 bl 8030578 - 80422a8: 4603 mov r3, r0 - 80422aa: 2b1d cmp r3, #29 - 80422ac: dd0c ble.n 80422c8 - 80422ae: 2000 movs r0, #0 - 80422b0: f7ee f962 bl 8030578 - 80422b4: 4603 mov r3, r0 - 80422b6: 330a adds r3, #10 - 80422b8: 4a08 ldr r2, [pc, #32] ; (80422dc ) - 80422ba: fb82 1203 smull r1, r2, r2, r3 - 80422be: 10d2 asrs r2, r2, #3 - 80422c0: 17db asrs r3, r3, #31 - 80422c2: 1ad3 subs r3, r2, r3 - 80422c4: b21b sxth r3, r3 - 80422c6: e000 b.n 80422ca - 80422c8: 2301 movs r3, #1 - 80422ca: 4619 mov r1, r3 - 80422cc: 6838 ldr r0, [r7, #0] - 80422ce: f7c8 fd2c bl 800ad2a + 804220e: 2000 movs r0, #0 + 8042210: f7ee f968 bl 80304e4 + 8042214: 4603 mov r3, r0 + 8042216: 2b1d cmp r3, #29 + 8042218: dd0c ble.n 8042234 + 804221a: 2000 movs r0, #0 + 804221c: f7ee f962 bl 80304e4 + 8042220: 4603 mov r3, r0 + 8042222: 330a adds r3, #10 + 8042224: 4a08 ldr r2, [pc, #32] ; (8042248 ) + 8042226: fb82 1203 smull r1, r2, r2, r3 + 804222a: 10d2 asrs r2, r2, #3 + 804222c: 17db asrs r3, r3, #31 + 804222e: 1ad3 subs r3, r2, r3 + 8042230: b21b sxth r3, r3 + 8042232: e000 b.n 8042236 + 8042234: 2301 movs r3, #1 + 8042236: 4619 mov r1, r3 + 8042238: 6838 ldr r0, [r7, #0] + 804223a: f7c8 fd40 bl 800acbe } - 80422d2: bf00 nop - 80422d4: 3710 adds r7, #16 - 80422d6: 46bd mov sp, r7 - 80422d8: bd80 pop {r7, pc} - 80422da: bf00 nop - 80422dc: 66666667 .word 0x66666667 + 804223e: bf00 nop + 8042240: 3710 adds r7, #16 + 8042242: 46bd mov sp, r7 + 8042244: bd80 pop {r7, pc} + 8042246: bf00 nop + 8042248: 66666667 .word 0x66666667 -080422e0 : +0804224c : static void lv_slider_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 80422e0: b590 push {r4, r7, lr} - 80422e2: b0a1 sub sp, #132 ; 0x84 - 80422e4: af00 add r7, sp, #0 - 80422e6: 6078 str r0, [r7, #4] - 80422e8: 6039 str r1, [r7, #0] + 804224c: b590 push {r4, r7, lr} + 804224e: b0a1 sub sp, #132 ; 0x84 + 8042250: af00 add r7, sp, #0 + 8042252: 6078 str r0, [r7, #4] + 8042254: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res; /*Call the ancestor's event handler*/ res = lv_obj_event_base(MY_CLASS, e); - 80422ea: 6839 ldr r1, [r7, #0] - 80422ec: 48af ldr r0, [pc, #700] ; (80425ac ) - 80422ee: f7c0 f909 bl 8002504 - 80422f2: 4603 mov r3, r0 - 80422f4: f887 3073 strb.w r3, [r7, #115] ; 0x73 + 8042256: 6839 ldr r1, [r7, #0] + 8042258: 48af ldr r0, [pc, #700] ; (8042518 ) + 804225a: f7c0 f91d bl 8002498 + 804225e: 4603 mov r3, r0 + 8042260: f887 3073 strb.w r3, [r7, #115] ; 0x73 if(res != LV_RES_OK) return; - 80422f8: f897 3073 ldrb.w r3, [r7, #115] ; 0x73 - 80422fc: 2b01 cmp r3, #1 - 80422fe: f040 842d bne.w 8042b5c + 8042264: f897 3073 ldrb.w r3, [r7, #115] ; 0x73 + 8042268: 2b01 cmp r3, #1 + 804226a: f040 842d bne.w 8042ac8 lv_event_code_t code = lv_event_get_code(e); - 8042302: 6838 ldr r0, [r7, #0] - 8042304: f7c0 f952 bl 80025ac - 8042308: 4603 mov r3, r0 - 804230a: f887 3072 strb.w r3, [r7, #114] ; 0x72 + 804226e: 6838 ldr r0, [r7, #0] + 8042270: f7c0 f966 bl 8002540 + 8042274: 4603 mov r3, r0 + 8042276: f887 3072 strb.w r3, [r7, #114] ; 0x72 lv_obj_t * obj = lv_event_get_target(e); - 804230e: 6838 ldr r0, [r7, #0] - 8042310: f7c0 f936 bl 8002580 - 8042314: 66f8 str r0, [r7, #108] ; 0x6c + 804227a: 6838 ldr r0, [r7, #0] + 804227c: f7c0 f94a bl 8002514 + 8042280: 66f8 str r0, [r7, #108] ; 0x6c lv_slider_t * slider = (lv_slider_t *)obj; - 8042316: 6efb ldr r3, [r7, #108] ; 0x6c - 8042318: 66bb str r3, [r7, #104] ; 0x68 + 8042282: 6efb ldr r3, [r7, #108] ; 0x6c + 8042284: 66bb str r3, [r7, #104] ; 0x68 lv_slider_mode_t type = lv_slider_get_mode(obj); - 804231a: 6ef8 ldr r0, [r7, #108] ; 0x6c - 804231c: f7ff ff88 bl 8042230 - 8042320: 4603 mov r3, r0 - 8042322: f887 3067 strb.w r3, [r7, #103] ; 0x67 + 8042286: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042288: f7ff ff88 bl 804219c + 804228c: 4603 mov r3, r0 + 804228e: f887 3067 strb.w r3, [r7, #103] ; 0x67 /*Advanced hit testing: react only on dragging the knob(s)*/ if(code == LV_EVENT_HIT_TEST) { - 8042326: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 - 804232a: 2b11 cmp r3, #17 - 804232c: d158 bne.n 80423e0 + 8042292: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 + 8042296: 2b11 cmp r3, #17 + 8042298: d158 bne.n 804234c lv_hit_test_info_t * info = lv_event_get_param(e); - 804232e: 6838 ldr r0, [r7, #0] - 8042330: f7c0 f94a bl 80025c8 - 8042334: 61f8 str r0, [r7, #28] + 804229a: 6838 ldr r0, [r7, #0] + 804229c: f7c0 f95e bl 800255c + 80422a0: 61f8 str r0, [r7, #28] lv_coord_t ext_click_area = obj->spec_attr ? obj->spec_attr->ext_click_pad : 0; - 8042336: 6efb ldr r3, [r7, #108] ; 0x6c - 8042338: 689b ldr r3, [r3, #8] - 804233a: 2b00 cmp r3, #0 - 804233c: d004 beq.n 8042348 - 804233e: 6efb ldr r3, [r7, #108] ; 0x6c - 8042340: 689b ldr r3, [r3, #8] - 8042342: f9b3 3014 ldrsh.w r3, [r3, #20] - 8042346: e000 b.n 804234a - 8042348: 2300 movs r3, #0 - 804234a: 837b strh r3, [r7, #26] + 80422a2: 6efb ldr r3, [r7, #108] ; 0x6c + 80422a4: 689b ldr r3, [r3, #8] + 80422a6: 2b00 cmp r3, #0 + 80422a8: d004 beq.n 80422b4 + 80422aa: 6efb ldr r3, [r7, #108] ; 0x6c + 80422ac: 689b ldr r3, [r3, #8] + 80422ae: f9b3 3014 ldrsh.w r3, [r3, #20] + 80422b2: e000 b.n 80422b6 + 80422b4: 2300 movs r3, #0 + 80422b6: 837b strh r3, [r7, #26] /*Ordinary slider: was the knob area hit?*/ lv_area_t a; lv_area_copy(&a, &slider->right_knob_area); - 804234c: 6ebb ldr r3, [r7, #104] ; 0x68 - 804234e: f103 0268 add.w r2, r3, #104 ; 0x68 - 8042352: f107 0310 add.w r3, r7, #16 - 8042356: 4611 mov r1, r2 - 8042358: 4618 mov r0, r3 - 804235a: f7ff fe79 bl 8042050 + 80422b8: 6ebb ldr r3, [r7, #104] ; 0x68 + 80422ba: f103 0268 add.w r2, r3, #104 ; 0x68 + 80422be: f107 0310 add.w r3, r7, #16 + 80422c2: 4611 mov r1, r2 + 80422c4: 4618 mov r0, r3 + 80422c6: f7ff fe79 bl 8041fbc lv_area_increase(&a, ext_click_area, ext_click_area); - 804235e: f9b7 201a ldrsh.w r2, [r7, #26] - 8042362: f9b7 101a ldrsh.w r1, [r7, #26] - 8042366: f107 0310 add.w r3, r7, #16 - 804236a: 4618 mov r0, r3 - 804236c: f7ee fe32 bl 8030fd4 + 80422ca: f9b7 201a ldrsh.w r2, [r7, #26] + 80422ce: f9b7 101a ldrsh.w r1, [r7, #26] + 80422d2: f107 0310 add.w r3, r7, #16 + 80422d6: 4618 mov r0, r3 + 80422d8: f7ee fe32 bl 8030f40 info->res = _lv_area_is_point_on(&a, info->point, 0); - 8042370: 69fb ldr r3, [r7, #28] - 8042372: 6819 ldr r1, [r3, #0] - 8042374: f107 0310 add.w r3, r7, #16 - 8042378: 2200 movs r2, #0 - 804237a: 4618 mov r0, r3 - 804237c: f7ee ff1f bl 80311be <_lv_area_is_point_on> - 8042380: 4603 mov r3, r0 - 8042382: 461a mov r2, r3 - 8042384: 69fb ldr r3, [r7, #28] - 8042386: 711a strb r2, [r3, #4] + 80422dc: 69fb ldr r3, [r7, #28] + 80422de: 6819 ldr r1, [r3, #0] + 80422e0: f107 0310 add.w r3, r7, #16 + 80422e4: 2200 movs r2, #0 + 80422e6: 4618 mov r0, r3 + 80422e8: f7ee ff1f bl 803112a <_lv_area_is_point_on> + 80422ec: 4603 mov r3, r0 + 80422ee: 461a mov r2, r3 + 80422f0: 69fb ldr r3, [r7, #28] + 80422f2: 711a strb r2, [r3, #4] /*There's still a chance that there is a hit if there is another knob*/ if((info->res == false) && (type == LV_SLIDER_MODE_RANGE)) { - 8042388: 69fb ldr r3, [r7, #28] - 804238a: 791b ldrb r3, [r3, #4] - 804238c: f083 0301 eor.w r3, r3, #1 - 8042390: b2db uxtb r3, r3 - 8042392: 2b00 cmp r3, #0 - 8042394: f000 83e9 beq.w 8042b6a - 8042398: f897 3067 ldrb.w r3, [r7, #103] ; 0x67 - 804239c: 2b02 cmp r3, #2 - 804239e: f040 83e4 bne.w 8042b6a + 80422f4: 69fb ldr r3, [r7, #28] + 80422f6: 791b ldrb r3, [r3, #4] + 80422f8: f083 0301 eor.w r3, r3, #1 + 80422fc: b2db uxtb r3, r3 + 80422fe: 2b00 cmp r3, #0 + 8042300: f000 83e9 beq.w 8042ad6 + 8042304: f897 3067 ldrb.w r3, [r7, #103] ; 0x67 + 8042308: 2b02 cmp r3, #2 + 804230a: f040 83e4 bne.w 8042ad6 lv_area_copy(&a, &slider->left_knob_area); - 80423a2: 6ebb ldr r3, [r7, #104] ; 0x68 - 80423a4: f103 0260 add.w r2, r3, #96 ; 0x60 - 80423a8: f107 0310 add.w r3, r7, #16 - 80423ac: 4611 mov r1, r2 - 80423ae: 4618 mov r0, r3 - 80423b0: f7ff fe4e bl 8042050 + 804230e: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042310: f103 0260 add.w r2, r3, #96 ; 0x60 + 8042314: f107 0310 add.w r3, r7, #16 + 8042318: 4611 mov r1, r2 + 804231a: 4618 mov r0, r3 + 804231c: f7ff fe4e bl 8041fbc lv_area_increase(&a, ext_click_area, ext_click_area); - 80423b4: f9b7 201a ldrsh.w r2, [r7, #26] - 80423b8: f9b7 101a ldrsh.w r1, [r7, #26] - 80423bc: f107 0310 add.w r3, r7, #16 - 80423c0: 4618 mov r0, r3 - 80423c2: f7ee fe07 bl 8030fd4 + 8042320: f9b7 201a ldrsh.w r2, [r7, #26] + 8042324: f9b7 101a ldrsh.w r1, [r7, #26] + 8042328: f107 0310 add.w r3, r7, #16 + 804232c: 4618 mov r0, r3 + 804232e: f7ee fe07 bl 8030f40 info->res = _lv_area_is_point_on(&a, info->point, 0); - 80423c6: 69fb ldr r3, [r7, #28] - 80423c8: 6819 ldr r1, [r3, #0] - 80423ca: f107 0310 add.w r3, r7, #16 - 80423ce: 2200 movs r2, #0 - 80423d0: 4618 mov r0, r3 - 80423d2: f7ee fef4 bl 80311be <_lv_area_is_point_on> - 80423d6: 4603 mov r3, r0 - 80423d8: 461a mov r2, r3 - 80423da: 69fb ldr r3, [r7, #28] - 80423dc: 711a strb r2, [r3, #4] - 80423de: e3c4 b.n 8042b6a + 8042332: 69fb ldr r3, [r7, #28] + 8042334: 6819 ldr r1, [r3, #0] + 8042336: f107 0310 add.w r3, r7, #16 + 804233a: 2200 movs r2, #0 + 804233c: 4618 mov r0, r3 + 804233e: f7ee fef4 bl 803112a <_lv_area_is_point_on> + 8042342: 4603 mov r3, r0 + 8042344: 461a mov r2, r3 + 8042346: 69fb ldr r3, [r7, #28] + 8042348: 711a strb r2, [r3, #4] + 804234a: e3c4 b.n 8042ad6 } } else if(code == LV_EVENT_PRESSED) { - 80423e0: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 - 80423e4: 2b01 cmp r3, #1 - 80423e6: f040 8131 bne.w 804264c + 804234c: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 + 8042350: 2b01 cmp r3, #1 + 8042352: f040 8131 bne.w 80425b8 lv_obj_invalidate(obj); - 80423ea: 6ef8 ldr r0, [r7, #108] ; 0x6c - 80423ec: f7c8 fb61 bl 800aab2 + 8042356: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042358: f7c8 fb75 bl 800aa46 lv_point_t p; slider->dragging = true; - 80423f0: 6eba ldr r2, [r7, #104] ; 0x68 - 80423f2: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 - 80423f6: f043 0301 orr.w r3, r3, #1 - 80423fa: f882 3074 strb.w r3, [r2, #116] ; 0x74 + 804235c: 6eba ldr r2, [r7, #104] ; 0x68 + 804235e: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 + 8042362: f043 0301 orr.w r3, r3, #1 + 8042366: f882 3074 strb.w r3, [r2, #116] ; 0x74 if(type == LV_SLIDER_MODE_NORMAL || type == LV_SLIDER_MODE_SYMMETRICAL) { - 80423fe: f897 3067 ldrb.w r3, [r7, #103] ; 0x67 - 8042402: 2b00 cmp r3, #0 - 8042404: d003 beq.n 804240e - 8042406: f897 3067 ldrb.w r3, [r7, #103] ; 0x67 - 804240a: 2b01 cmp r3, #1 - 804240c: d105 bne.n 804241a + 804236a: f897 3067 ldrb.w r3, [r7, #103] ; 0x67 + 804236e: 2b00 cmp r3, #0 + 8042370: d003 beq.n 804237a + 8042372: f897 3067 ldrb.w r3, [r7, #103] ; 0x67 + 8042376: 2b01 cmp r3, #1 + 8042378: d105 bne.n 8042386 slider->value_to_set = &slider->bar.cur_value; - 804240e: 6ebb ldr r3, [r7, #104] ; 0x68 - 8042410: f103 0224 add.w r2, r3, #36 ; 0x24 - 8042414: 6ebb ldr r3, [r7, #104] ; 0x68 - 8042416: 671a str r2, [r3, #112] ; 0x70 - 8042418: e3a7 b.n 8042b6a + 804237a: 6ebb ldr r3, [r7, #104] ; 0x68 + 804237c: f103 0224 add.w r2, r3, #36 ; 0x24 + 8042380: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042382: 671a str r2, [r3, #112] ; 0x70 + 8042384: e3a7 b.n 8042ad6 } else if(type == LV_SLIDER_MODE_RANGE) { - 804241a: f897 3067 ldrb.w r3, [r7, #103] ; 0x67 - 804241e: 2b02 cmp r3, #2 - 8042420: f040 83a3 bne.w 8042b6a + 8042386: f897 3067 ldrb.w r3, [r7, #103] ; 0x67 + 804238a: 2b02 cmp r3, #2 + 804238c: f040 83a3 bne.w 8042ad6 lv_indev_get_point(lv_indev_get_act(), &p); - 8042424: f7c0 ff78 bl 8003318 - 8042428: 4602 mov r2, r0 - 804242a: f107 030c add.w r3, r7, #12 - 804242e: 4619 mov r1, r3 - 8042430: 4610 mov r0, r2 - 8042432: f7c1 f863 bl 80034fc + 8042390: f7c0 ff8c bl 80032ac + 8042394: 4602 mov r2, r0 + 8042396: f107 030c add.w r3, r7, #12 + 804239a: 4619 mov r1, r3 + 804239c: 4610 mov r0, r2 + 804239e: f7c1 f877 bl 8003490 bool hor = lv_obj_get_width(obj) >= lv_obj_get_height(obj); - 8042436: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042438: f7c7 fe86 bl 800a148 - 804243c: 4603 mov r3, r0 - 804243e: 461c mov r4, r3 - 8042440: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042442: f7c7 fe8f bl 800a164 - 8042446: 4603 mov r3, r0 - 8042448: 429c cmp r4, r3 - 804244a: bfac ite ge - 804244c: 2301 movge r3, #1 - 804244e: 2300 movlt r3, #0 - 8042450: f887 3025 strb.w r3, [r7, #37] ; 0x25 + 80423a2: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80423a4: f7c7 fe9a bl 800a0dc + 80423a8: 4603 mov r3, r0 + 80423aa: 461c mov r4, r3 + 80423ac: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80423ae: f7c7 fea3 bl 800a0f8 + 80423b2: 4603 mov r3, r0 + 80423b4: 429c cmp r4, r3 + 80423b6: bfac ite ge + 80423b8: 2301 movge r3, #1 + 80423ba: 2300 movlt r3, #0 + 80423bc: f887 3025 strb.w r3, [r7, #37] ; 0x25 lv_base_dir_t base_dir = lv_obj_get_style_base_dir(obj, LV_PART_MAIN); - 8042454: 2100 movs r1, #0 - 8042456: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042458: f7ff fe9d bl 8042196 - 804245c: 4603 mov r3, r0 - 804245e: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 80423c0: 2100 movs r1, #0 + 80423c2: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80423c4: f7ff fe9d bl 8042102 + 80423c8: 4603 mov r3, r0 + 80423ca: f887 3024 strb.w r3, [r7, #36] ; 0x24 lv_coord_t dist_left, dist_right; if(hor) { - 8042462: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 - 8042466: 2b00 cmp r3, #0 - 8042468: f000 8086 beq.w 8042578 + 80423ce: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 + 80423d2: 2b00 cmp r3, #0 + 80423d4: f000 8086 beq.w 80424e4 if((base_dir != LV_BASE_DIR_RTL && p.x > slider->right_knob_area.x2) || (base_dir == LV_BASE_DIR_RTL && - 804246c: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 8042470: 2b01 cmp r3, #1 - 8042472: d006 beq.n 8042482 - 8042474: f9b7 200c ldrsh.w r2, [r7, #12] - 8042478: 6ebb ldr r3, [r7, #104] ; 0x68 - 804247a: f9b3 306c ldrsh.w r3, [r3, #108] ; 0x6c - 804247e: 429a cmp r2, r3 - 8042480: dc0a bgt.n 8042498 - 8042482: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 8042486: 2b01 cmp r3, #1 - 8042488: d10c bne.n 80424a4 + 80423d8: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 + 80423dc: 2b01 cmp r3, #1 + 80423de: d006 beq.n 80423ee + 80423e0: f9b7 200c ldrsh.w r2, [r7, #12] + 80423e4: 6ebb ldr r3, [r7, #104] ; 0x68 + 80423e6: f9b3 306c ldrsh.w r3, [r3, #108] ; 0x6c + 80423ea: 429a cmp r2, r3 + 80423ec: dc0a bgt.n 8042404 + 80423ee: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 + 80423f2: 2b01 cmp r3, #1 + 80423f4: d10c bne.n 8042410 p.x < slider->right_knob_area.x1)) { - 804248a: f9b7 200c ldrsh.w r2, [r7, #12] - 804248e: 6ebb ldr r3, [r7, #104] ; 0x68 - 8042490: f9b3 3068 ldrsh.w r3, [r3, #104] ; 0x68 + 80423f6: f9b7 200c ldrsh.w r2, [r7, #12] + 80423fa: 6ebb ldr r3, [r7, #104] ; 0x68 + 80423fc: f9b3 3068 ldrsh.w r3, [r3, #104] ; 0x68 if((base_dir != LV_BASE_DIR_RTL && p.x > slider->right_knob_area.x2) || (base_dir == LV_BASE_DIR_RTL && - 8042494: 429a cmp r2, r3 - 8042496: da05 bge.n 80424a4 + 8042400: 429a cmp r2, r3 + 8042402: da05 bge.n 8042410 slider->value_to_set = &slider->bar.cur_value; - 8042498: 6ebb ldr r3, [r7, #104] ; 0x68 - 804249a: f103 0224 add.w r2, r3, #36 ; 0x24 - 804249e: 6ebb ldr r3, [r7, #104] ; 0x68 - 80424a0: 671a str r2, [r3, #112] ; 0x70 - 80424a2: e362 b.n 8042b6a + 8042404: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042406: f103 0224 add.w r2, r3, #36 ; 0x24 + 804240a: 6ebb ldr r3, [r7, #104] ; 0x68 + 804240c: 671a str r2, [r3, #112] ; 0x70 + 804240e: e362 b.n 8042ad6 } else if((base_dir != LV_BASE_DIR_RTL && p.x < slider->left_knob_area.x1) || (base_dir == LV_BASE_DIR_RTL && - 80424a4: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 80424a8: 2b01 cmp r3, #1 - 80424aa: d006 beq.n 80424ba - 80424ac: f9b7 200c ldrsh.w r2, [r7, #12] - 80424b0: 6ebb ldr r3, [r7, #104] ; 0x68 - 80424b2: f9b3 3060 ldrsh.w r3, [r3, #96] ; 0x60 - 80424b6: 429a cmp r2, r3 - 80424b8: db0a blt.n 80424d0 - 80424ba: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 80424be: 2b01 cmp r3, #1 - 80424c0: d10c bne.n 80424dc + 8042410: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 + 8042414: 2b01 cmp r3, #1 + 8042416: d006 beq.n 8042426 + 8042418: f9b7 200c ldrsh.w r2, [r7, #12] + 804241c: 6ebb ldr r3, [r7, #104] ; 0x68 + 804241e: f9b3 3060 ldrsh.w r3, [r3, #96] ; 0x60 + 8042422: 429a cmp r2, r3 + 8042424: db0a blt.n 804243c + 8042426: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 + 804242a: 2b01 cmp r3, #1 + 804242c: d10c bne.n 8042448 p.x > slider->left_knob_area.x2)) { - 80424c2: f9b7 200c ldrsh.w r2, [r7, #12] - 80424c6: 6ebb ldr r3, [r7, #104] ; 0x68 - 80424c8: f9b3 3064 ldrsh.w r3, [r3, #100] ; 0x64 + 804242e: f9b7 200c ldrsh.w r2, [r7, #12] + 8042432: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042434: f9b3 3064 ldrsh.w r3, [r3, #100] ; 0x64 else if((base_dir != LV_BASE_DIR_RTL && p.x < slider->left_knob_area.x1) || (base_dir == LV_BASE_DIR_RTL && - 80424cc: 429a cmp r2, r3 - 80424ce: dd05 ble.n 80424dc + 8042438: 429a cmp r2, r3 + 804243a: dd05 ble.n 8042448 slider->value_to_set = &slider->bar.start_value; - 80424d0: 6ebb ldr r3, [r7, #104] ; 0x68 - 80424d2: f103 0230 add.w r2, r3, #48 ; 0x30 - 80424d6: 6ebb ldr r3, [r7, #104] ; 0x68 - 80424d8: 671a str r2, [r3, #112] ; 0x70 - 80424da: e346 b.n 8042b6a + 804243c: 6ebb ldr r3, [r7, #104] ; 0x68 + 804243e: f103 0230 add.w r2, r3, #48 ; 0x30 + 8042442: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042444: 671a str r2, [r3, #112] ; 0x70 + 8042446: e346 b.n 8042ad6 } else { /*Calculate the distance from each knob*/ dist_left = LV_ABS((slider->left_knob_area.x1 + (slider->left_knob_area.x2 - slider->left_knob_area.x1) / 2) - p.x); - 80424dc: 6ebb ldr r3, [r7, #104] ; 0x68 - 80424de: f9b3 3060 ldrsh.w r3, [r3, #96] ; 0x60 - 80424e2: 4619 mov r1, r3 - 80424e4: 6ebb ldr r3, [r7, #104] ; 0x68 - 80424e6: f9b3 3064 ldrsh.w r3, [r3, #100] ; 0x64 - 80424ea: 461a mov r2, r3 - 80424ec: 6ebb ldr r3, [r7, #104] ; 0x68 - 80424ee: f9b3 3060 ldrsh.w r3, [r3, #96] ; 0x60 - 80424f2: 1ad3 subs r3, r2, r3 - 80424f4: 0fda lsrs r2, r3, #31 - 80424f6: 4413 add r3, r2 - 80424f8: 105b asrs r3, r3, #1 - 80424fa: 440b add r3, r1 - 80424fc: f9b7 200c ldrsh.w r2, [r7, #12] - 8042500: 1a9b subs r3, r3, r2 - 8042502: 2b00 cmp r3, #0 - 8042504: bfb8 it lt - 8042506: 425b neglt r3, r3 - 8042508: 847b strh r3, [r7, #34] ; 0x22 + 8042448: 6ebb ldr r3, [r7, #104] ; 0x68 + 804244a: f9b3 3060 ldrsh.w r3, [r3, #96] ; 0x60 + 804244e: 4619 mov r1, r3 + 8042450: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042452: f9b3 3064 ldrsh.w r3, [r3, #100] ; 0x64 + 8042456: 461a mov r2, r3 + 8042458: 6ebb ldr r3, [r7, #104] ; 0x68 + 804245a: f9b3 3060 ldrsh.w r3, [r3, #96] ; 0x60 + 804245e: 1ad3 subs r3, r2, r3 + 8042460: 0fda lsrs r2, r3, #31 + 8042462: 4413 add r3, r2 + 8042464: 105b asrs r3, r3, #1 + 8042466: 440b add r3, r1 + 8042468: f9b7 200c ldrsh.w r2, [r7, #12] + 804246c: 1a9b subs r3, r3, r2 + 804246e: 2b00 cmp r3, #0 + 8042470: bfb8 it lt + 8042472: 425b neglt r3, r3 + 8042474: 847b strh r3, [r7, #34] ; 0x22 dist_right = LV_ABS((slider->right_knob_area.x1 + (slider->right_knob_area.x2 - slider->right_knob_area.x1) / 2) - p.x); - 804250a: 6ebb ldr r3, [r7, #104] ; 0x68 - 804250c: f9b3 3068 ldrsh.w r3, [r3, #104] ; 0x68 - 8042510: 4619 mov r1, r3 - 8042512: 6ebb ldr r3, [r7, #104] ; 0x68 - 8042514: f9b3 306c ldrsh.w r3, [r3, #108] ; 0x6c - 8042518: 461a mov r2, r3 - 804251a: 6ebb ldr r3, [r7, #104] ; 0x68 - 804251c: f9b3 3068 ldrsh.w r3, [r3, #104] ; 0x68 - 8042520: 1ad3 subs r3, r2, r3 - 8042522: 0fda lsrs r2, r3, #31 - 8042524: 4413 add r3, r2 - 8042526: 105b asrs r3, r3, #1 - 8042528: 440b add r3, r1 - 804252a: f9b7 200c ldrsh.w r2, [r7, #12] - 804252e: 1a9b subs r3, r3, r2 - 8042530: 2b00 cmp r3, #0 - 8042532: bfb8 it lt - 8042534: 425b neglt r3, r3 - 8042536: 843b strh r3, [r7, #32] + 8042476: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042478: f9b3 3068 ldrsh.w r3, [r3, #104] ; 0x68 + 804247c: 4619 mov r1, r3 + 804247e: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042480: f9b3 306c ldrsh.w r3, [r3, #108] ; 0x6c + 8042484: 461a mov r2, r3 + 8042486: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042488: f9b3 3068 ldrsh.w r3, [r3, #104] ; 0x68 + 804248c: 1ad3 subs r3, r2, r3 + 804248e: 0fda lsrs r2, r3, #31 + 8042490: 4413 add r3, r2 + 8042492: 105b asrs r3, r3, #1 + 8042494: 440b add r3, r1 + 8042496: f9b7 200c ldrsh.w r2, [r7, #12] + 804249a: 1a9b subs r3, r3, r2 + 804249c: 2b00 cmp r3, #0 + 804249e: bfb8 it lt + 80424a0: 425b neglt r3, r3 + 80424a2: 843b strh r3, [r7, #32] /*Use whichever one is closer*/ if(dist_right < dist_left) { - 8042538: f9b7 2020 ldrsh.w r2, [r7, #32] - 804253c: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 8042540: 429a cmp r2, r3 - 8042542: da0c bge.n 804255e + 80424a4: f9b7 2020 ldrsh.w r2, [r7, #32] + 80424a8: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 80424ac: 429a cmp r2, r3 + 80424ae: da0c bge.n 80424ca slider->value_to_set = &slider->bar.cur_value; - 8042544: 6ebb ldr r3, [r7, #104] ; 0x68 - 8042546: f103 0224 add.w r2, r3, #36 ; 0x24 - 804254a: 6ebb ldr r3, [r7, #104] ; 0x68 - 804254c: 671a str r2, [r3, #112] ; 0x70 + 80424b0: 6ebb ldr r3, [r7, #104] ; 0x68 + 80424b2: f103 0224 add.w r2, r3, #36 ; 0x24 + 80424b6: 6ebb ldr r3, [r7, #104] ; 0x68 + 80424b8: 671a str r2, [r3, #112] ; 0x70 slider->left_knob_focus = 0; - 804254e: 6eba ldr r2, [r7, #104] ; 0x68 - 8042550: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 - 8042554: f36f 0341 bfc r3, #1, #1 - 8042558: f882 3074 strb.w r3, [r2, #116] ; 0x74 - 804255c: e305 b.n 8042b6a + 80424ba: 6eba ldr r2, [r7, #104] ; 0x68 + 80424bc: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 + 80424c0: f36f 0341 bfc r3, #1, #1 + 80424c4: f882 3074 strb.w r3, [r2, #116] ; 0x74 + 80424c8: e305 b.n 8042ad6 } else { slider->value_to_set = &slider->bar.start_value; - 804255e: 6ebb ldr r3, [r7, #104] ; 0x68 - 8042560: f103 0230 add.w r2, r3, #48 ; 0x30 - 8042564: 6ebb ldr r3, [r7, #104] ; 0x68 - 8042566: 671a str r2, [r3, #112] ; 0x70 + 80424ca: 6ebb ldr r3, [r7, #104] ; 0x68 + 80424cc: f103 0230 add.w r2, r3, #48 ; 0x30 + 80424d0: 6ebb ldr r3, [r7, #104] ; 0x68 + 80424d2: 671a str r2, [r3, #112] ; 0x70 slider->left_knob_focus = 1; - 8042568: 6eba ldr r2, [r7, #104] ; 0x68 - 804256a: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 - 804256e: f043 0302 orr.w r3, r3, #2 - 8042572: f882 3074 strb.w r3, [r2, #116] ; 0x74 - 8042576: e2f8 b.n 8042b6a + 80424d4: 6eba ldr r2, [r7, #104] ; 0x68 + 80424d6: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 + 80424da: f043 0302 orr.w r3, r3, #2 + 80424de: f882 3074 strb.w r3, [r2, #116] ; 0x74 + 80424e2: e2f8 b.n 8042ad6 } } } else { if(p.y < slider->right_knob_area.y1) { - 8042578: f9b7 200e ldrsh.w r2, [r7, #14] - 804257c: 6ebb ldr r3, [r7, #104] ; 0x68 - 804257e: f9b3 306a ldrsh.w r3, [r3, #106] ; 0x6a - 8042582: 429a cmp r2, r3 - 8042584: da05 bge.n 8042592 + 80424e4: f9b7 200e ldrsh.w r2, [r7, #14] + 80424e8: 6ebb ldr r3, [r7, #104] ; 0x68 + 80424ea: f9b3 306a ldrsh.w r3, [r3, #106] ; 0x6a + 80424ee: 429a cmp r2, r3 + 80424f0: da05 bge.n 80424fe slider->value_to_set = &slider->bar.cur_value; - 8042586: 6ebb ldr r3, [r7, #104] ; 0x68 - 8042588: f103 0224 add.w r2, r3, #36 ; 0x24 - 804258c: 6ebb ldr r3, [r7, #104] ; 0x68 - 804258e: 671a str r2, [r3, #112] ; 0x70 - 8042590: e2eb b.n 8042b6a + 80424f2: 6ebb ldr r3, [r7, #104] ; 0x68 + 80424f4: f103 0224 add.w r2, r3, #36 ; 0x24 + 80424f8: 6ebb ldr r3, [r7, #104] ; 0x68 + 80424fa: 671a str r2, [r3, #112] ; 0x70 + 80424fc: e2eb b.n 8042ad6 } else if(p.y > slider->left_knob_area.y2) { - 8042592: f9b7 200e ldrsh.w r2, [r7, #14] - 8042596: 6ebb ldr r3, [r7, #104] ; 0x68 - 8042598: f9b3 3066 ldrsh.w r3, [r3, #102] ; 0x66 - 804259c: 429a cmp r2, r3 - 804259e: dd07 ble.n 80425b0 + 80424fe: f9b7 200e ldrsh.w r2, [r7, #14] + 8042502: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042504: f9b3 3066 ldrsh.w r3, [r3, #102] ; 0x66 + 8042508: 429a cmp r2, r3 + 804250a: dd07 ble.n 804251c slider->value_to_set = &slider->bar.start_value; - 80425a0: 6ebb ldr r3, [r7, #104] ; 0x68 - 80425a2: f103 0230 add.w r2, r3, #48 ; 0x30 - 80425a6: 6ebb ldr r3, [r7, #104] ; 0x68 - 80425a8: 671a str r2, [r3, #112] ; 0x70 - 80425aa: e2de b.n 8042b6a - 80425ac: 08070afc .word 0x08070afc + 804250c: 6ebb ldr r3, [r7, #104] ; 0x68 + 804250e: f103 0230 add.w r2, r3, #48 ; 0x30 + 8042512: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042514: 671a str r2, [r3, #112] ; 0x70 + 8042516: e2de b.n 8042ad6 + 8042518: 08070a54 .word 0x08070a54 } else { /*Calculate the distance from each knob*/ dist_left = LV_ABS((slider->left_knob_area.y1 + (slider->left_knob_area.y2 - slider->left_knob_area.y1) / 2) - p.y); - 80425b0: 6ebb ldr r3, [r7, #104] ; 0x68 - 80425b2: f9b3 3062 ldrsh.w r3, [r3, #98] ; 0x62 - 80425b6: 4619 mov r1, r3 - 80425b8: 6ebb ldr r3, [r7, #104] ; 0x68 - 80425ba: f9b3 3066 ldrsh.w r3, [r3, #102] ; 0x66 - 80425be: 461a mov r2, r3 - 80425c0: 6ebb ldr r3, [r7, #104] ; 0x68 - 80425c2: f9b3 3062 ldrsh.w r3, [r3, #98] ; 0x62 - 80425c6: 1ad3 subs r3, r2, r3 - 80425c8: 0fda lsrs r2, r3, #31 - 80425ca: 4413 add r3, r2 - 80425cc: 105b asrs r3, r3, #1 - 80425ce: 440b add r3, r1 - 80425d0: f9b7 200e ldrsh.w r2, [r7, #14] - 80425d4: 1a9b subs r3, r3, r2 - 80425d6: 2b00 cmp r3, #0 - 80425d8: bfb8 it lt - 80425da: 425b neglt r3, r3 - 80425dc: 847b strh r3, [r7, #34] ; 0x22 + 804251c: 6ebb ldr r3, [r7, #104] ; 0x68 + 804251e: f9b3 3062 ldrsh.w r3, [r3, #98] ; 0x62 + 8042522: 4619 mov r1, r3 + 8042524: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042526: f9b3 3066 ldrsh.w r3, [r3, #102] ; 0x66 + 804252a: 461a mov r2, r3 + 804252c: 6ebb ldr r3, [r7, #104] ; 0x68 + 804252e: f9b3 3062 ldrsh.w r3, [r3, #98] ; 0x62 + 8042532: 1ad3 subs r3, r2, r3 + 8042534: 0fda lsrs r2, r3, #31 + 8042536: 4413 add r3, r2 + 8042538: 105b asrs r3, r3, #1 + 804253a: 440b add r3, r1 + 804253c: f9b7 200e ldrsh.w r2, [r7, #14] + 8042540: 1a9b subs r3, r3, r2 + 8042542: 2b00 cmp r3, #0 + 8042544: bfb8 it lt + 8042546: 425b neglt r3, r3 + 8042548: 847b strh r3, [r7, #34] ; 0x22 dist_right = LV_ABS((slider->right_knob_area.y1 + (slider->right_knob_area.y2 - slider->right_knob_area.y1) / 2) - p.y); - 80425de: 6ebb ldr r3, [r7, #104] ; 0x68 - 80425e0: f9b3 306a ldrsh.w r3, [r3, #106] ; 0x6a - 80425e4: 4619 mov r1, r3 - 80425e6: 6ebb ldr r3, [r7, #104] ; 0x68 - 80425e8: f9b3 306e ldrsh.w r3, [r3, #110] ; 0x6e - 80425ec: 461a mov r2, r3 - 80425ee: 6ebb ldr r3, [r7, #104] ; 0x68 - 80425f0: f9b3 306a ldrsh.w r3, [r3, #106] ; 0x6a - 80425f4: 1ad3 subs r3, r2, r3 - 80425f6: 0fda lsrs r2, r3, #31 - 80425f8: 4413 add r3, r2 - 80425fa: 105b asrs r3, r3, #1 - 80425fc: 440b add r3, r1 - 80425fe: f9b7 200e ldrsh.w r2, [r7, #14] - 8042602: 1a9b subs r3, r3, r2 - 8042604: 2b00 cmp r3, #0 - 8042606: bfb8 it lt - 8042608: 425b neglt r3, r3 - 804260a: 843b strh r3, [r7, #32] + 804254a: 6ebb ldr r3, [r7, #104] ; 0x68 + 804254c: f9b3 306a ldrsh.w r3, [r3, #106] ; 0x6a + 8042550: 4619 mov r1, r3 + 8042552: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042554: f9b3 306e ldrsh.w r3, [r3, #110] ; 0x6e + 8042558: 461a mov r2, r3 + 804255a: 6ebb ldr r3, [r7, #104] ; 0x68 + 804255c: f9b3 306a ldrsh.w r3, [r3, #106] ; 0x6a + 8042560: 1ad3 subs r3, r2, r3 + 8042562: 0fda lsrs r2, r3, #31 + 8042564: 4413 add r3, r2 + 8042566: 105b asrs r3, r3, #1 + 8042568: 440b add r3, r1 + 804256a: f9b7 200e ldrsh.w r2, [r7, #14] + 804256e: 1a9b subs r3, r3, r2 + 8042570: 2b00 cmp r3, #0 + 8042572: bfb8 it lt + 8042574: 425b neglt r3, r3 + 8042576: 843b strh r3, [r7, #32] /*Use whichever one is closer*/ if(dist_right < dist_left) { - 804260c: f9b7 2020 ldrsh.w r2, [r7, #32] - 8042610: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 - 8042614: 429a cmp r2, r3 - 8042616: da0c bge.n 8042632 + 8042578: f9b7 2020 ldrsh.w r2, [r7, #32] + 804257c: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22 + 8042580: 429a cmp r2, r3 + 8042582: da0c bge.n 804259e slider->value_to_set = &slider->bar.cur_value; - 8042618: 6ebb ldr r3, [r7, #104] ; 0x68 - 804261a: f103 0224 add.w r2, r3, #36 ; 0x24 - 804261e: 6ebb ldr r3, [r7, #104] ; 0x68 - 8042620: 671a str r2, [r3, #112] ; 0x70 + 8042584: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042586: f103 0224 add.w r2, r3, #36 ; 0x24 + 804258a: 6ebb ldr r3, [r7, #104] ; 0x68 + 804258c: 671a str r2, [r3, #112] ; 0x70 slider->left_knob_focus = 0; - 8042622: 6eba ldr r2, [r7, #104] ; 0x68 - 8042624: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 - 8042628: f36f 0341 bfc r3, #1, #1 - 804262c: f882 3074 strb.w r3, [r2, #116] ; 0x74 - 8042630: e29b b.n 8042b6a + 804258e: 6eba ldr r2, [r7, #104] ; 0x68 + 8042590: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 + 8042594: f36f 0341 bfc r3, #1, #1 + 8042598: f882 3074 strb.w r3, [r2, #116] ; 0x74 + 804259c: e29b b.n 8042ad6 } else { slider->value_to_set = &slider->bar.start_value; - 8042632: 6ebb ldr r3, [r7, #104] ; 0x68 - 8042634: f103 0230 add.w r2, r3, #48 ; 0x30 - 8042638: 6ebb ldr r3, [r7, #104] ; 0x68 - 804263a: 671a str r2, [r3, #112] ; 0x70 + 804259e: 6ebb ldr r3, [r7, #104] ; 0x68 + 80425a0: f103 0230 add.w r2, r3, #48 ; 0x30 + 80425a4: 6ebb ldr r3, [r7, #104] ; 0x68 + 80425a6: 671a str r2, [r3, #112] ; 0x70 slider->left_knob_focus = 1; - 804263c: 6eba ldr r2, [r7, #104] ; 0x68 - 804263e: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 - 8042642: f043 0302 orr.w r3, r3, #2 - 8042646: f882 3074 strb.w r3, [r2, #116] ; 0x74 - 804264a: e28e b.n 8042b6a + 80425a8: 6eba ldr r2, [r7, #104] ; 0x68 + 80425aa: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 + 80425ae: f043 0302 orr.w r3, r3, #2 + 80425b2: f882 3074 strb.w r3, [r2, #116] ; 0x74 + 80425b6: e28e b.n 8042ad6 } } } } } else if(code == LV_EVENT_PRESSING && slider->value_to_set != NULL) { - 804264c: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 - 8042650: 2b02 cmp r3, #2 - 8042652: f040 80ea bne.w 804282a - 8042656: 6ebb ldr r3, [r7, #104] ; 0x68 - 8042658: 6f1b ldr r3, [r3, #112] ; 0x70 - 804265a: 2b00 cmp r3, #0 - 804265c: f000 80e5 beq.w 804282a + 80425b8: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 + 80425bc: 2b02 cmp r3, #2 + 80425be: f040 80ea bne.w 8042796 + 80425c2: 6ebb ldr r3, [r7, #104] ; 0x68 + 80425c4: 6f1b ldr r3, [r3, #112] ; 0x70 + 80425c6: 2b00 cmp r3, #0 + 80425c8: f000 80e5 beq.w 8042796 lv_indev_t * indev = lv_indev_get_act(); - 8042660: f7c0 fe5a bl 8003318 - 8042664: 6638 str r0, [r7, #96] ; 0x60 + 80425cc: f7c0 fe6e bl 80032ac + 80425d0: 6638 str r0, [r7, #96] ; 0x60 if(lv_indev_get_type(indev) != LV_INDEV_TYPE_POINTER) return; - 8042666: 6e38 ldr r0, [r7, #96] ; 0x60 - 8042668: f7c0 fe60 bl 800332c - 804266c: 4603 mov r3, r0 - 804266e: 2b01 cmp r3, #1 - 8042670: f040 8276 bne.w 8042b60 + 80425d2: 6e38 ldr r0, [r7, #96] ; 0x60 + 80425d4: f7c0 fe74 bl 80032c0 + 80425d8: 4603 mov r3, r0 + 80425da: 2b01 cmp r3, #1 + 80425dc: f040 8276 bne.w 8042acc lv_point_t p; lv_indev_get_point(indev, &p); - 8042674: f107 0308 add.w r3, r7, #8 - 8042678: 4619 mov r1, r3 - 804267a: 6e38 ldr r0, [r7, #96] ; 0x60 - 804267c: f7c0 ff3e bl 80034fc + 80425e0: f107 0308 add.w r3, r7, #8 + 80425e4: 4619 mov r1, r3 + 80425e6: 6e38 ldr r0, [r7, #96] ; 0x60 + 80425e8: f7c0 ff52 bl 8003490 lv_base_dir_t base_dir = lv_obj_get_style_base_dir(obj, LV_PART_MAIN); - 8042680: 2100 movs r1, #0 - 8042682: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042684: f7ff fd87 bl 8042196 - 8042688: 4603 mov r3, r0 - 804268a: f887 305f strb.w r3, [r7, #95] ; 0x5f + 80425ec: 2100 movs r1, #0 + 80425ee: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80425f0: f7ff fd87 bl 8042102 + 80425f4: 4603 mov r3, r0 + 80425f6: f887 305f strb.w r3, [r7, #95] ; 0x5f lv_coord_t w = lv_obj_get_width(obj); - 804268e: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042690: f7c7 fd5a bl 800a148 - 8042694: 4603 mov r3, r0 - 8042696: f8a7 305c strh.w r3, [r7, #92] ; 0x5c + 80425fa: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80425fc: f7c7 fd6e bl 800a0dc + 8042600: 4603 mov r3, r0 + 8042602: f8a7 305c strh.w r3, [r7, #92] ; 0x5c lv_coord_t h = lv_obj_get_height(obj); - 804269a: 6ef8 ldr r0, [r7, #108] ; 0x6c - 804269c: f7c7 fd62 bl 800a164 - 80426a0: 4603 mov r3, r0 - 80426a2: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 8042606: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042608: f7c7 fd76 bl 800a0f8 + 804260c: 4603 mov r3, r0 + 804260e: f8a7 305a strh.w r3, [r7, #90] ; 0x5a lv_coord_t bg_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 80426a6: 2100 movs r1, #0 - 80426a8: 6ef8 ldr r0, [r7, #108] ; 0x6c - 80426aa: f7ff fd4e bl 804214a - 80426ae: 4603 mov r3, r0 - 80426b0: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 + 8042612: 2100 movs r1, #0 + 8042614: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042616: f7ff fd4e bl 80420b6 + 804261a: 4603 mov r3, r0 + 804261c: f8a7 3058 strh.w r3, [r7, #88] ; 0x58 lv_coord_t bg_right = lv_obj_get_style_pad_right(obj, LV_PART_MAIN); - 80426b4: 2100 movs r1, #0 - 80426b6: 6ef8 ldr r0, [r7, #108] ; 0x6c - 80426b8: f7ff fd5a bl 8042170 - 80426bc: 4603 mov r3, r0 - 80426be: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 + 8042620: 2100 movs r1, #0 + 8042622: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042624: f7ff fd5a bl 80420dc + 8042628: 4603 mov r3, r0 + 804262a: f8a7 3056 strh.w r3, [r7, #86] ; 0x56 lv_coord_t bg_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 80426c2: 2100 movs r1, #0 - 80426c4: 6ef8 ldr r0, [r7, #108] ; 0x6c - 80426c6: f7ff fd1a bl 80420fe - 80426ca: 4603 mov r3, r0 - 80426cc: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 + 804262e: 2100 movs r1, #0 + 8042630: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042632: f7ff fd1a bl 804206a + 8042636: 4603 mov r3, r0 + 8042638: f8a7 3054 strh.w r3, [r7, #84] ; 0x54 lv_coord_t bg_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN); - 80426d0: 2100 movs r1, #0 - 80426d2: 6ef8 ldr r0, [r7, #108] ; 0x6c - 80426d4: f7ff fd26 bl 8042124 - 80426d8: 4603 mov r3, r0 - 80426da: f8a7 3052 strh.w r3, [r7, #82] ; 0x52 + 804263c: 2100 movs r1, #0 + 804263e: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042640: f7ff fd26 bl 8042090 + 8042644: 4603 mov r3, r0 + 8042646: f8a7 3052 strh.w r3, [r7, #82] ; 0x52 int32_t range = slider->bar.max_value - slider->bar.min_value; - 80426de: 6ebb ldr r3, [r7, #104] ; 0x68 - 80426e0: 6ada ldr r2, [r3, #44] ; 0x2c - 80426e2: 6ebb ldr r3, [r7, #104] ; 0x68 - 80426e4: 6a9b ldr r3, [r3, #40] ; 0x28 - 80426e6: 1ad3 subs r3, r2, r3 - 80426e8: 64fb str r3, [r7, #76] ; 0x4c + 804264a: 6ebb ldr r3, [r7, #104] ; 0x68 + 804264c: 6ada ldr r2, [r3, #44] ; 0x2c + 804264e: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042650: 6a9b ldr r3, [r3, #40] ; 0x28 + 8042652: 1ad3 subs r3, r2, r3 + 8042654: 64fb str r3, [r7, #76] ; 0x4c int32_t new_value = 0; - 80426ea: 2300 movs r3, #0 - 80426ec: 67fb str r3, [r7, #124] ; 0x7c + 8042656: 2300 movs r3, #0 + 8042658: 67fb str r3, [r7, #124] ; 0x7c int32_t real_max_value = slider->bar.max_value; - 80426ee: 6ebb ldr r3, [r7, #104] ; 0x68 - 80426f0: 6adb ldr r3, [r3, #44] ; 0x2c - 80426f2: 67bb str r3, [r7, #120] ; 0x78 + 804265a: 6ebb ldr r3, [r7, #104] ; 0x68 + 804265c: 6adb ldr r3, [r3, #44] ; 0x2c + 804265e: 67bb str r3, [r7, #120] ; 0x78 int32_t real_min_value = slider->bar.min_value; - 80426f4: 6ebb ldr r3, [r7, #104] ; 0x68 - 80426f6: 6a9b ldr r3, [r3, #40] ; 0x28 - 80426f8: 677b str r3, [r7, #116] ; 0x74 + 8042660: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042662: 6a9b ldr r3, [r3, #40] ; 0x28 + 8042664: 677b str r3, [r7, #116] ; 0x74 if(w >= h) { - 80426fa: f9b7 205c ldrsh.w r2, [r7, #92] ; 0x5c - 80426fe: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a - 8042702: 429a cmp r2, r3 - 8042704: db36 blt.n 8042774 + 8042666: f9b7 205c ldrsh.w r2, [r7, #92] ; 0x5c + 804266a: f9b7 305a ldrsh.w r3, [r7, #90] ; 0x5a + 804266e: 429a cmp r2, r3 + 8042670: db36 blt.n 80426e0 lv_coord_t indic_w = w - bg_left - bg_right; - 8042706: f8b7 205c ldrh.w r2, [r7, #92] ; 0x5c - 804270a: f8b7 3058 ldrh.w r3, [r7, #88] ; 0x58 - 804270e: 1ad3 subs r3, r2, r3 - 8042710: b29a uxth r2, r3 - 8042712: f8b7 3056 ldrh.w r3, [r7, #86] ; 0x56 - 8042716: 1ad3 subs r3, r2, r3 - 8042718: b29b uxth r3, r3 - 804271a: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 + 8042672: f8b7 205c ldrh.w r2, [r7, #92] ; 0x5c + 8042676: f8b7 3058 ldrh.w r3, [r7, #88] ; 0x58 + 804267a: 1ad3 subs r3, r2, r3 + 804267c: b29a uxth r2, r3 + 804267e: f8b7 3056 ldrh.w r3, [r7, #86] ; 0x56 + 8042682: 1ad3 subs r3, r2, r3 + 8042684: b29b uxth r3, r3 + 8042686: f8a7 3048 strh.w r3, [r7, #72] ; 0x48 if(base_dir == LV_BASE_DIR_RTL) { - 804271e: f897 305f ldrb.w r3, [r7, #95] ; 0x5f - 8042722: 2b01 cmp r3, #1 - 8042724: d10b bne.n 804273e + 804268a: f897 305f ldrb.w r3, [r7, #95] ; 0x5f + 804268e: 2b01 cmp r3, #1 + 8042690: d10b bne.n 80426aa new_value = (obj->coords.x2 - bg_right) - p.x; /*Make the point relative to the indicator*/ - 8042726: 6efb ldr r3, [r7, #108] ; 0x6c - 8042728: f9b3 3018 ldrsh.w r3, [r3, #24] - 804272c: 461a mov r2, r3 - 804272e: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 - 8042732: 1ad3 subs r3, r2, r3 - 8042734: f9b7 2008 ldrsh.w r2, [r7, #8] - 8042738: 1a9b subs r3, r3, r2 - 804273a: 67fb str r3, [r7, #124] ; 0x7c - 804273c: e00b b.n 8042756 + 8042692: 6efb ldr r3, [r7, #108] ; 0x6c + 8042694: f9b3 3018 ldrsh.w r3, [r3, #24] + 8042698: 461a mov r2, r3 + 804269a: f9b7 3056 ldrsh.w r3, [r7, #86] ; 0x56 + 804269e: 1ad3 subs r3, r2, r3 + 80426a0: f9b7 2008 ldrsh.w r2, [r7, #8] + 80426a4: 1a9b subs r3, r3, r2 + 80426a6: 67fb str r3, [r7, #124] ; 0x7c + 80426a8: e00b b.n 80426c2 } else { new_value = p.x - (obj->coords.x1 + bg_left); /*Make the point relative to the indicator*/ - 804273e: f9b7 3008 ldrsh.w r3, [r7, #8] - 8042742: 461a mov r2, r3 - 8042744: 6efb ldr r3, [r7, #108] ; 0x6c - 8042746: f9b3 3014 ldrsh.w r3, [r3, #20] - 804274a: 4619 mov r1, r3 - 804274c: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 - 8042750: 440b add r3, r1 - 8042752: 1ad3 subs r3, r2, r3 - 8042754: 67fb str r3, [r7, #124] ; 0x7c + 80426aa: f9b7 3008 ldrsh.w r3, [r7, #8] + 80426ae: 461a mov r2, r3 + 80426b0: 6efb ldr r3, [r7, #108] ; 0x6c + 80426b2: f9b3 3014 ldrsh.w r3, [r3, #20] + 80426b6: 4619 mov r1, r3 + 80426b8: f9b7 3058 ldrsh.w r3, [r7, #88] ; 0x58 + 80426bc: 440b add r3, r1 + 80426be: 1ad3 subs r3, r2, r3 + 80426c0: 67fb str r3, [r7, #124] ; 0x7c } new_value = (new_value * range) / indic_w; - 8042756: 6ffb ldr r3, [r7, #124] ; 0x7c - 8042758: 6cfa ldr r2, [r7, #76] ; 0x4c - 804275a: fb03 f202 mul.w r2, r3, r2 - 804275e: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 - 8042762: fb92 f3f3 sdiv r3, r2, r3 - 8042766: 67fb str r3, [r7, #124] ; 0x7c + 80426c2: 6ffb ldr r3, [r7, #124] ; 0x7c + 80426c4: 6cfa ldr r2, [r7, #76] ; 0x4c + 80426c6: fb03 f202 mul.w r2, r3, r2 + 80426ca: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 + 80426ce: fb92 f3f3 sdiv r3, r2, r3 + 80426d2: 67fb str r3, [r7, #124] ; 0x7c new_value += slider->bar.min_value; - 8042768: 6ebb ldr r3, [r7, #104] ; 0x68 - 804276a: 6a9b ldr r3, [r3, #40] ; 0x28 - 804276c: 6ffa ldr r2, [r7, #124] ; 0x7c - 804276e: 4413 add r3, r2 - 8042770: 67fb str r3, [r7, #124] ; 0x7c - 8042772: e026 b.n 80427c2 + 80426d4: 6ebb ldr r3, [r7, #104] ; 0x68 + 80426d6: 6a9b ldr r3, [r3, #40] ; 0x28 + 80426d8: 6ffa ldr r2, [r7, #124] ; 0x7c + 80426da: 4413 add r3, r2 + 80426dc: 67fb str r3, [r7, #124] ; 0x7c + 80426de: e026 b.n 804272e } else { lv_coord_t indic_h = h - bg_bottom - bg_top; - 8042774: f8b7 205a ldrh.w r2, [r7, #90] ; 0x5a - 8042778: f8b7 3052 ldrh.w r3, [r7, #82] ; 0x52 - 804277c: 1ad3 subs r3, r2, r3 - 804277e: b29a uxth r2, r3 - 8042780: f8b7 3054 ldrh.w r3, [r7, #84] ; 0x54 - 8042784: 1ad3 subs r3, r2, r3 - 8042786: b29b uxth r3, r3 - 8042788: f8a7 304a strh.w r3, [r7, #74] ; 0x4a + 80426e0: f8b7 205a ldrh.w r2, [r7, #90] ; 0x5a + 80426e4: f8b7 3052 ldrh.w r3, [r7, #82] ; 0x52 + 80426e8: 1ad3 subs r3, r2, r3 + 80426ea: b29a uxth r2, r3 + 80426ec: f8b7 3054 ldrh.w r3, [r7, #84] ; 0x54 + 80426f0: 1ad3 subs r3, r2, r3 + 80426f2: b29b uxth r3, r3 + 80426f4: f8a7 304a strh.w r3, [r7, #74] ; 0x4a new_value = p.y - (obj->coords.y2 + bg_bottom); /*Make the point relative to the indicator*/ - 804278c: f9b7 300a ldrsh.w r3, [r7, #10] - 8042790: 461a mov r2, r3 - 8042792: 6efb ldr r3, [r7, #108] ; 0x6c - 8042794: f9b3 301a ldrsh.w r3, [r3, #26] - 8042798: 4619 mov r1, r3 - 804279a: f9b7 3052 ldrsh.w r3, [r7, #82] ; 0x52 - 804279e: 440b add r3, r1 - 80427a0: 1ad3 subs r3, r2, r3 - 80427a2: 67fb str r3, [r7, #124] ; 0x7c + 80426f8: f9b7 300a ldrsh.w r3, [r7, #10] + 80426fc: 461a mov r2, r3 + 80426fe: 6efb ldr r3, [r7, #108] ; 0x6c + 8042700: f9b3 301a ldrsh.w r3, [r3, #26] + 8042704: 4619 mov r1, r3 + 8042706: f9b7 3052 ldrsh.w r3, [r7, #82] ; 0x52 + 804270a: 440b add r3, r1 + 804270c: 1ad3 subs r3, r2, r3 + 804270e: 67fb str r3, [r7, #124] ; 0x7c new_value = (-new_value * range) / indic_h; - 80427a4: 6ffb ldr r3, [r7, #124] ; 0x7c - 80427a6: 425b negs r3, r3 - 80427a8: 6cfa ldr r2, [r7, #76] ; 0x4c - 80427aa: fb03 f202 mul.w r2, r3, r2 - 80427ae: f9b7 304a ldrsh.w r3, [r7, #74] ; 0x4a - 80427b2: fb92 f3f3 sdiv r3, r2, r3 - 80427b6: 67fb str r3, [r7, #124] ; 0x7c + 8042710: 6ffb ldr r3, [r7, #124] ; 0x7c + 8042712: 425b negs r3, r3 + 8042714: 6cfa ldr r2, [r7, #76] ; 0x4c + 8042716: fb03 f202 mul.w r2, r3, r2 + 804271a: f9b7 304a ldrsh.w r3, [r7, #74] ; 0x4a + 804271e: fb92 f3f3 sdiv r3, r2, r3 + 8042722: 67fb str r3, [r7, #124] ; 0x7c new_value += slider->bar.min_value; - 80427b8: 6ebb ldr r3, [r7, #104] ; 0x68 - 80427ba: 6a9b ldr r3, [r3, #40] ; 0x28 - 80427bc: 6ffa ldr r2, [r7, #124] ; 0x7c - 80427be: 4413 add r3, r2 - 80427c0: 67fb str r3, [r7, #124] ; 0x7c + 8042724: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042726: 6a9b ldr r3, [r3, #40] ; 0x28 + 8042728: 6ffa ldr r2, [r7, #124] ; 0x7c + 804272a: 4413 add r3, r2 + 804272c: 67fb str r3, [r7, #124] ; 0x7c } /*Figure out the min. and max. for this mode*/ if(slider->value_to_set == &slider->bar.start_value) { - 80427c2: 6ebb ldr r3, [r7, #104] ; 0x68 - 80427c4: 6f1a ldr r2, [r3, #112] ; 0x70 - 80427c6: 6ebb ldr r3, [r7, #104] ; 0x68 - 80427c8: 3330 adds r3, #48 ; 0x30 - 80427ca: 429a cmp r2, r3 - 80427cc: d103 bne.n 80427d6 + 804272e: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042730: 6f1a ldr r2, [r3, #112] ; 0x70 + 8042732: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042734: 3330 adds r3, #48 ; 0x30 + 8042736: 429a cmp r2, r3 + 8042738: d103 bne.n 8042742 real_max_value = slider->bar.cur_value; - 80427ce: 6ebb ldr r3, [r7, #104] ; 0x68 - 80427d0: 6a5b ldr r3, [r3, #36] ; 0x24 - 80427d2: 67bb str r3, [r7, #120] ; 0x78 - 80427d4: e002 b.n 80427dc + 804273a: 6ebb ldr r3, [r7, #104] ; 0x68 + 804273c: 6a5b ldr r3, [r3, #36] ; 0x24 + 804273e: 67bb str r3, [r7, #120] ; 0x78 + 8042740: e002 b.n 8042748 } else { real_min_value = slider->bar.start_value; - 80427d6: 6ebb ldr r3, [r7, #104] ; 0x68 - 80427d8: 6b1b ldr r3, [r3, #48] ; 0x30 - 80427da: 677b str r3, [r7, #116] ; 0x74 + 8042742: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042744: 6b1b ldr r3, [r3, #48] ; 0x30 + 8042746: 677b str r3, [r7, #116] ; 0x74 } if(new_value < real_min_value) new_value = real_min_value; - 80427dc: 6ffa ldr r2, [r7, #124] ; 0x7c - 80427de: 6f7b ldr r3, [r7, #116] ; 0x74 - 80427e0: 429a cmp r2, r3 - 80427e2: da02 bge.n 80427ea - 80427e4: 6f7b ldr r3, [r7, #116] ; 0x74 - 80427e6: 67fb str r3, [r7, #124] ; 0x7c - 80427e8: e005 b.n 80427f6 + 8042748: 6ffa ldr r2, [r7, #124] ; 0x7c + 804274a: 6f7b ldr r3, [r7, #116] ; 0x74 + 804274c: 429a cmp r2, r3 + 804274e: da02 bge.n 8042756 + 8042750: 6f7b ldr r3, [r7, #116] ; 0x74 + 8042752: 67fb str r3, [r7, #124] ; 0x7c + 8042754: e005 b.n 8042762 else if(new_value > real_max_value) new_value = real_max_value; - 80427ea: 6ffa ldr r2, [r7, #124] ; 0x7c - 80427ec: 6fbb ldr r3, [r7, #120] ; 0x78 - 80427ee: 429a cmp r2, r3 - 80427f0: dd01 ble.n 80427f6 - 80427f2: 6fbb ldr r3, [r7, #120] ; 0x78 - 80427f4: 67fb str r3, [r7, #124] ; 0x7c + 8042756: 6ffa ldr r2, [r7, #124] ; 0x7c + 8042758: 6fbb ldr r3, [r7, #120] ; 0x78 + 804275a: 429a cmp r2, r3 + 804275c: dd01 ble.n 8042762 + 804275e: 6fbb ldr r3, [r7, #120] ; 0x78 + 8042760: 67fb str r3, [r7, #124] ; 0x7c if(*slider->value_to_set != new_value) { - 80427f6: 6ebb ldr r3, [r7, #104] ; 0x68 - 80427f8: 6f1b ldr r3, [r3, #112] ; 0x70 - 80427fa: 681b ldr r3, [r3, #0] - 80427fc: 6ffa ldr r2, [r7, #124] ; 0x7c - 80427fe: 429a cmp r2, r3 - 8042800: f000 81b0 beq.w 8042b64 + 8042762: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042764: 6f1b ldr r3, [r3, #112] ; 0x70 + 8042766: 681b ldr r3, [r3, #0] + 8042768: 6ffa ldr r2, [r7, #124] ; 0x7c + 804276a: 429a cmp r2, r3 + 804276c: f000 81b0 beq.w 8042ad0 *slider->value_to_set = new_value; - 8042804: 6ebb ldr r3, [r7, #104] ; 0x68 - 8042806: 6f1b ldr r3, [r3, #112] ; 0x70 - 8042808: 6ffa ldr r2, [r7, #124] ; 0x7c - 804280a: 601a str r2, [r3, #0] + 8042770: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042772: 6f1b ldr r3, [r3, #112] ; 0x70 + 8042774: 6ffa ldr r2, [r7, #124] ; 0x7c + 8042776: 601a str r2, [r3, #0] lv_obj_invalidate(obj); - 804280c: 6ef8 ldr r0, [r7, #108] ; 0x6c - 804280e: f7c8 f950 bl 800aab2 + 8042778: 6ef8 ldr r0, [r7, #108] ; 0x6c + 804277a: f7c8 f964 bl 800aa46 res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 8042812: 2200 movs r2, #0 - 8042814: 211c movs r1, #28 - 8042816: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042818: f7bf fe32 bl 8002480 - 804281c: 4603 mov r3, r0 - 804281e: f887 3073 strb.w r3, [r7, #115] ; 0x73 + 804277e: 2200 movs r2, #0 + 8042780: 211c movs r1, #28 + 8042782: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042784: f7bf fe46 bl 8002414 + 8042788: 4603 mov r3, r0 + 804278a: f887 3073 strb.w r3, [r7, #115] ; 0x73 if(res != LV_RES_OK) return; - 8042822: f897 3073 ldrb.w r3, [r7, #115] ; 0x73 - 8042826: 2b01 cmp r3, #1 + 804278e: f897 3073 ldrb.w r3, [r7, #115] ; 0x73 + 8042792: 2b01 cmp r3, #1 else if(code == LV_EVENT_PRESSING && slider->value_to_set != NULL) { - 8042828: e19c b.n 8042b64 + 8042794: e19c b.n 8042ad0 } } else if(code == LV_EVENT_RELEASED || code == LV_EVENT_PRESS_LOST) { - 804282a: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 - 804282e: 2b08 cmp r3, #8 - 8042830: d003 beq.n 804283a - 8042832: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 - 8042836: 2b03 cmp r3, #3 - 8042838: d150 bne.n 80428dc + 8042796: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 + 804279a: 2b08 cmp r3, #8 + 804279c: d003 beq.n 80427a6 + 804279e: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 + 80427a2: 2b03 cmp r3, #3 + 80427a4: d150 bne.n 8042848 slider->dragging = false; - 804283a: 6eba ldr r2, [r7, #104] ; 0x68 - 804283c: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 - 8042840: f36f 0300 bfc r3, #0, #1 - 8042844: f882 3074 strb.w r3, [r2, #116] ; 0x74 + 80427a6: 6eba ldr r2, [r7, #104] ; 0x68 + 80427a8: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 + 80427ac: f36f 0300 bfc r3, #0, #1 + 80427b0: f882 3074 strb.w r3, [r2, #116] ; 0x74 slider->value_to_set = NULL; - 8042848: 6ebb ldr r3, [r7, #104] ; 0x68 - 804284a: 2200 movs r2, #0 - 804284c: 671a str r2, [r3, #112] ; 0x70 + 80427b4: 6ebb ldr r3, [r7, #104] ; 0x68 + 80427b6: 2200 movs r2, #0 + 80427b8: 671a str r2, [r3, #112] ; 0x70 lv_obj_invalidate(obj); - 804284e: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042850: f7c8 f92f bl 800aab2 + 80427ba: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80427bc: f7c8 f943 bl 800aa46 /*Leave edit mode if released. (No need to wait for LONG_PRESS)*/ lv_group_t * g = lv_obj_get_group(obj); - 8042854: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042856: f7c3 ffdb bl 8006810 - 804285a: 62b8 str r0, [r7, #40] ; 0x28 + 80427c0: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80427c2: f7c3 ffef bl 80067a4 + 80427c6: 62b8 str r0, [r7, #40] ; 0x28 bool editing = lv_group_get_editing(g); - 804285c: 6ab8 ldr r0, [r7, #40] ; 0x28 - 804285e: f7c0 fb4a bl 8002ef6 - 8042862: 4603 mov r3, r0 - 8042864: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 80427c8: 6ab8 ldr r0, [r7, #40] ; 0x28 + 80427ca: f7c0 fb5e bl 8002e8a + 80427ce: 4603 mov r3, r0 + 80427d0: f887 3027 strb.w r3, [r7, #39] ; 0x27 lv_indev_type_t indev_type = lv_indev_get_type(lv_indev_get_act()); - 8042868: f7c0 fd56 bl 8003318 - 804286c: 4603 mov r3, r0 - 804286e: 4618 mov r0, r3 - 8042870: f7c0 fd5c bl 800332c - 8042874: 4603 mov r3, r0 - 8042876: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 80427d4: f7c0 fd6a bl 80032ac + 80427d8: 4603 mov r3, r0 + 80427da: 4618 mov r0, r3 + 80427dc: f7c0 fd70 bl 80032c0 + 80427e0: 4603 mov r3, r0 + 80427e2: f887 3026 strb.w r3, [r7, #38] ; 0x26 if(indev_type == LV_INDEV_TYPE_ENCODER) { - 804287a: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 804287e: 2b04 cmp r3, #4 - 8042880: f040 8172 bne.w 8042b68 + 80427e6: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 80427ea: 2b04 cmp r3, #4 + 80427ec: f040 8172 bne.w 8042ad4 if(editing) { - 8042884: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8042888: 2b00 cmp r3, #0 - 804288a: f000 816d beq.w 8042b68 + 80427f0: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 80427f4: 2b00 cmp r3, #0 + 80427f6: f000 816d beq.w 8042ad4 if(lv_slider_get_mode(obj) == LV_SLIDER_MODE_RANGE) { - 804288e: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042890: f7ff fcce bl 8042230 - 8042894: 4603 mov r3, r0 - 8042896: 2b02 cmp r3, #2 - 8042898: d11b bne.n 80428d2 + 80427fa: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80427fc: f7ff fcce bl 804219c + 8042800: 4603 mov r3, r0 + 8042802: 2b02 cmp r3, #2 + 8042804: d11b bne.n 804283e if(slider->left_knob_focus == 0) slider->left_knob_focus = 1; - 804289a: 6ebb ldr r3, [r7, #104] ; 0x68 - 804289c: f893 3074 ldrb.w r3, [r3, #116] ; 0x74 - 80428a0: f003 0302 and.w r3, r3, #2 - 80428a4: b2db uxtb r3, r3 - 80428a6: 2b00 cmp r3, #0 - 80428a8: d107 bne.n 80428ba - 80428aa: 6eba ldr r2, [r7, #104] ; 0x68 - 80428ac: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 - 80428b0: f043 0302 orr.w r3, r3, #2 - 80428b4: f882 3074 strb.w r3, [r2, #116] ; 0x74 + 8042806: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042808: f893 3074 ldrb.w r3, [r3, #116] ; 0x74 + 804280c: f003 0302 and.w r3, r3, #2 + 8042810: b2db uxtb r3, r3 + 8042812: 2b00 cmp r3, #0 + 8042814: d107 bne.n 8042826 + 8042816: 6eba ldr r2, [r7, #104] ; 0x68 + 8042818: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 + 804281c: f043 0302 orr.w r3, r3, #2 + 8042820: f882 3074 strb.w r3, [r2, #116] ; 0x74 else if(code == LV_EVENT_RELEASED || code == LV_EVENT_PRESS_LOST) { - 80428b8: e156 b.n 8042b68 + 8042824: e156 b.n 8042ad4 else { slider->left_knob_focus = 0; - 80428ba: 6eba ldr r2, [r7, #104] ; 0x68 - 80428bc: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 - 80428c0: f36f 0341 bfc r3, #1, #1 - 80428c4: f882 3074 strb.w r3, [r2, #116] ; 0x74 + 8042826: 6eba ldr r2, [r7, #104] ; 0x68 + 8042828: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 + 804282c: f36f 0341 bfc r3, #1, #1 + 8042830: f882 3074 strb.w r3, [r2, #116] ; 0x74 lv_group_set_editing(g, false); - 80428c8: 2100 movs r1, #0 - 80428ca: 6ab8 ldr r0, [r7, #40] ; 0x28 - 80428cc: f7c0 fabb bl 8002e46 + 8042834: 2100 movs r1, #0 + 8042836: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8042838: f7c0 facf bl 8002dda else if(code == LV_EVENT_RELEASED || code == LV_EVENT_PRESS_LOST) { - 80428d0: e14a b.n 8042b68 + 804283c: e14a b.n 8042ad4 } } else { lv_group_set_editing(g, false); - 80428d2: 2100 movs r1, #0 - 80428d4: 6ab8 ldr r0, [r7, #40] ; 0x28 - 80428d6: f7c0 fab6 bl 8002e46 + 804283e: 2100 movs r1, #0 + 8042840: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8042842: f7c0 faca bl 8002dda else if(code == LV_EVENT_RELEASED || code == LV_EVENT_PRESS_LOST) { - 80428da: e145 b.n 8042b68 + 8042846: e145 b.n 8042ad4 } } } } else if(code == LV_EVENT_FOCUSED) { - 80428dc: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 - 80428e0: 2b0e cmp r3, #14 - 80428e2: d119 bne.n 8042918 + 8042848: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 + 804284c: 2b0e cmp r3, #14 + 804284e: d119 bne.n 8042884 lv_indev_type_t indev_type = lv_indev_get_type(lv_indev_get_act()); - 80428e4: f7c0 fd18 bl 8003318 - 80428e8: 4603 mov r3, r0 - 80428ea: 4618 mov r0, r3 - 80428ec: f7c0 fd1e bl 800332c - 80428f0: 4603 mov r3, r0 - 80428f2: f887 302f strb.w r3, [r7, #47] ; 0x2f + 8042850: f7c0 fd2c bl 80032ac + 8042854: 4603 mov r3, r0 + 8042856: 4618 mov r0, r3 + 8042858: f7c0 fd32 bl 80032c0 + 804285c: 4603 mov r3, r0 + 804285e: f887 302f strb.w r3, [r7, #47] ; 0x2f if(indev_type == LV_INDEV_TYPE_ENCODER || indev_type == LV_INDEV_TYPE_KEYPAD) { - 80428f6: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 80428fa: 2b04 cmp r3, #4 - 80428fc: d004 beq.n 8042908 - 80428fe: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8042902: 2b02 cmp r3, #2 - 8042904: f040 8131 bne.w 8042b6a + 8042862: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8042866: 2b04 cmp r3, #4 + 8042868: d004 beq.n 8042874 + 804286a: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 804286e: 2b02 cmp r3, #2 + 8042870: f040 8131 bne.w 8042ad6 slider->left_knob_focus = 0; - 8042908: 6eba ldr r2, [r7, #104] ; 0x68 - 804290a: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 - 804290e: f36f 0341 bfc r3, #1, #1 - 8042912: f882 3074 strb.w r3, [r2, #116] ; 0x74 - 8042916: e128 b.n 8042b6a + 8042874: 6eba ldr r2, [r7, #104] ; 0x68 + 8042876: f892 3074 ldrb.w r3, [r2, #116] ; 0x74 + 804287a: f36f 0341 bfc r3, #1, #1 + 804287e: f882 3074 strb.w r3, [r2, #116] ; 0x74 + 8042882: e128 b.n 8042ad6 } } else if(code == LV_EVENT_SIZE_CHANGED) { - 8042918: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 - 804291c: 2b29 cmp r3, #41 ; 0x29 - 804291e: d103 bne.n 8042928 + 8042884: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 + 8042888: 2b29 cmp r3, #41 ; 0x29 + 804288a: d103 bne.n 8042894 lv_obj_refresh_ext_draw_size(obj); - 8042920: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042922: f7c6 fab4 bl 8008e8e - 8042926: e120 b.n 8042b6a + 804288c: 6ef8 ldr r0, [r7, #108] ; 0x6c + 804288e: f7c6 fac8 bl 8008e22 + 8042892: e120 b.n 8042ad6 } else if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) { - 8042928: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 - 804292c: 2b13 cmp r3, #19 - 804292e: f040 80a0 bne.w 8042a72 + 8042894: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 + 8042898: 2b13 cmp r3, #19 + 804289a: f040 80a0 bne.w 80429de lv_coord_t knob_left = lv_obj_get_style_pad_left(obj, LV_PART_KNOB); - 8042932: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8042936: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042938: f7ff fc07 bl 804214a - 804293c: 4603 mov r3, r0 - 804293e: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 + 804289e: f44f 3140 mov.w r1, #196608 ; 0x30000 + 80428a2: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80428a4: f7ff fc07 bl 80420b6 + 80428a8: 4603 mov r3, r0 + 80428aa: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 lv_coord_t knob_right = lv_obj_get_style_pad_right(obj, LV_PART_KNOB); - 8042942: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8042946: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042948: f7ff fc12 bl 8042170 - 804294c: 4603 mov r3, r0 - 804294e: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 80428ae: f44f 3140 mov.w r1, #196608 ; 0x30000 + 80428b2: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80428b4: f7ff fc12 bl 80420dc + 80428b8: 4603 mov r3, r0 + 80428ba: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 lv_coord_t knob_top = lv_obj_get_style_pad_top(obj, LV_PART_KNOB); - 8042952: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8042956: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042958: f7ff fbd1 bl 80420fe - 804295c: 4603 mov r3, r0 - 804295e: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 80428be: f44f 3140 mov.w r1, #196608 ; 0x30000 + 80428c2: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80428c4: f7ff fbd1 bl 804206a + 80428c8: 4603 mov r3, r0 + 80428ca: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 lv_coord_t knob_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_KNOB); - 8042962: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8042966: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042968: f7ff fbdc bl 8042124 - 804296c: 4603 mov r3, r0 - 804296e: 87fb strh r3, [r7, #62] ; 0x3e + 80428ce: f44f 3140 mov.w r1, #196608 ; 0x30000 + 80428d2: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80428d4: f7ff fbdc bl 8042090 + 80428d8: 4603 mov r3, r0 + 80428da: 87fb strh r3, [r7, #62] ; 0x3e /*The smaller size is the knob diameter*/ lv_coord_t zoom = lv_obj_get_style_transform_zoom(obj, LV_PART_KNOB); - 8042970: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8042974: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042976: f7ff fbaf bl 80420d8 - 804297a: 4603 mov r3, r0 - 804297c: 87bb strh r3, [r7, #60] ; 0x3c + 80428dc: f44f 3140 mov.w r1, #196608 ; 0x30000 + 80428e0: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80428e2: f7ff fbaf bl 8042044 + 80428e6: 4603 mov r3, r0 + 80428e8: 87bb strh r3, [r7, #60] ; 0x3c lv_coord_t trans_w = lv_obj_get_style_transform_width(obj, LV_PART_KNOB); - 804297e: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8042982: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042984: f7ff fb82 bl 804208c - 8042988: 4603 mov r3, r0 - 804298a: 877b strh r3, [r7, #58] ; 0x3a + 80428ea: f44f 3140 mov.w r1, #196608 ; 0x30000 + 80428ee: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80428f0: f7ff fb82 bl 8041ff8 + 80428f4: 4603 mov r3, r0 + 80428f6: 877b strh r3, [r7, #58] ; 0x3a lv_coord_t trans_h = lv_obj_get_style_transform_height(obj, LV_PART_KNOB); - 804298c: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8042990: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042992: f7ff fb8e bl 80420b2 - 8042996: 4603 mov r3, r0 - 8042998: 873b strh r3, [r7, #56] ; 0x38 + 80428f8: f44f 3140 mov.w r1, #196608 ; 0x30000 + 80428fc: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80428fe: f7ff fb8e bl 804201e + 8042902: 4603 mov r3, r0 + 8042904: 873b strh r3, [r7, #56] ; 0x38 lv_coord_t knob_size = LV_MIN(lv_obj_get_width(obj) + 2 * trans_w, lv_obj_get_height(obj) + 2 * trans_h) >> 1; - 804299a: 6ef8 ldr r0, [r7, #108] ; 0x6c - 804299c: f7c7 fbd4 bl 800a148 - 80429a0: 4603 mov r3, r0 - 80429a2: 461a mov r2, r3 - 80429a4: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 80429a8: 005b lsls r3, r3, #1 - 80429aa: 18d4 adds r4, r2, r3 - 80429ac: 6ef8 ldr r0, [r7, #108] ; 0x6c - 80429ae: f7c7 fbd9 bl 800a164 - 80429b2: 4603 mov r3, r0 - 80429b4: 461a mov r2, r3 - 80429b6: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 80429ba: 005b lsls r3, r3, #1 - 80429bc: 4413 add r3, r2 - 80429be: 429c cmp r4, r3 - 80429c0: da0b bge.n 80429da - 80429c2: 6ef8 ldr r0, [r7, #108] ; 0x6c - 80429c4: f7c7 fbc0 bl 800a148 - 80429c8: 4603 mov r3, r0 - 80429ca: 461a mov r2, r3 - 80429cc: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 80429d0: 005b lsls r3, r3, #1 - 80429d2: 4413 add r3, r2 - 80429d4: 105b asrs r3, r3, #1 - 80429d6: b21b sxth r3, r3 - 80429d8: e00a b.n 80429f0 - 80429da: 6ef8 ldr r0, [r7, #108] ; 0x6c - 80429dc: f7c7 fbc2 bl 800a164 - 80429e0: 4603 mov r3, r0 - 80429e2: 461a mov r2, r3 - 80429e4: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 80429e8: 005b lsls r3, r3, #1 - 80429ea: 4413 add r3, r2 - 80429ec: 105b asrs r3, r3, #1 - 80429ee: b21b sxth r3, r3 - 80429f0: 86fb strh r3, [r7, #54] ; 0x36 + 8042906: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042908: f7c7 fbe8 bl 800a0dc + 804290c: 4603 mov r3, r0 + 804290e: 461a mov r2, r3 + 8042910: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 8042914: 005b lsls r3, r3, #1 + 8042916: 18d4 adds r4, r2, r3 + 8042918: 6ef8 ldr r0, [r7, #108] ; 0x6c + 804291a: f7c7 fbed bl 800a0f8 + 804291e: 4603 mov r3, r0 + 8042920: 461a mov r2, r3 + 8042922: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 8042926: 005b lsls r3, r3, #1 + 8042928: 4413 add r3, r2 + 804292a: 429c cmp r4, r3 + 804292c: da0b bge.n 8042946 + 804292e: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042930: f7c7 fbd4 bl 800a0dc + 8042934: 4603 mov r3, r0 + 8042936: 461a mov r2, r3 + 8042938: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 804293c: 005b lsls r3, r3, #1 + 804293e: 4413 add r3, r2 + 8042940: 105b asrs r3, r3, #1 + 8042942: b21b sxth r3, r3 + 8042944: e00a b.n 804295c + 8042946: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042948: f7c7 fbd6 bl 800a0f8 + 804294c: 4603 mov r3, r0 + 804294e: 461a mov r2, r3 + 8042950: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 8042954: 005b lsls r3, r3, #1 + 8042956: 4413 add r3, r2 + 8042958: 105b asrs r3, r3, #1 + 804295a: b21b sxth r3, r3 + 804295c: 86fb strh r3, [r7, #54] ; 0x36 knob_size = (knob_size * zoom) >> 8; - 80429f2: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 - 80429f6: f9b7 203c ldrsh.w r2, [r7, #60] ; 0x3c - 80429fa: fb02 f303 mul.w r3, r2, r3 - 80429fe: 121b asrs r3, r3, #8 - 8042a00: 86fb strh r3, [r7, #54] ; 0x36 + 804295e: f9b7 3036 ldrsh.w r3, [r7, #54] ; 0x36 + 8042962: f9b7 203c ldrsh.w r2, [r7, #60] ; 0x3c + 8042966: fb02 f303 mul.w r3, r2, r3 + 804296a: 121b asrs r3, r3, #8 + 804296c: 86fb strh r3, [r7, #54] ; 0x36 knob_size += LV_MAX(LV_MAX(knob_left, knob_right), LV_MAX(knob_bottom, knob_top)); - 8042a02: f9b7 2040 ldrsh.w r2, [r7, #64] ; 0x40 - 8042a06: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 8042a0a: 4293 cmp r3, r2 - 8042a0c: bfb8 it lt - 8042a0e: 4613 movlt r3, r2 - 8042a10: b21a sxth r2, r3 - 8042a12: f9b7 1042 ldrsh.w r1, [r7, #66] ; 0x42 - 8042a16: f9b7 3044 ldrsh.w r3, [r7, #68] ; 0x44 - 8042a1a: 428b cmp r3, r1 - 8042a1c: bfb8 it lt - 8042a1e: 460b movlt r3, r1 - 8042a20: b21b sxth r3, r3 - 8042a22: 4293 cmp r3, r2 - 8042a24: bfb8 it lt - 8042a26: 4613 movlt r3, r2 - 8042a28: b21b sxth r3, r3 - 8042a2a: b29a uxth r2, r3 - 8042a2c: 8efb ldrh r3, [r7, #54] ; 0x36 - 8042a2e: 4413 add r3, r2 - 8042a30: b29b uxth r3, r3 - 8042a32: 86fb strh r3, [r7, #54] ; 0x36 + 804296e: f9b7 2040 ldrsh.w r2, [r7, #64] ; 0x40 + 8042972: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 8042976: 4293 cmp r3, r2 + 8042978: bfb8 it lt + 804297a: 4613 movlt r3, r2 + 804297c: b21a sxth r2, r3 + 804297e: f9b7 1042 ldrsh.w r1, [r7, #66] ; 0x42 + 8042982: f9b7 3044 ldrsh.w r3, [r7, #68] ; 0x44 + 8042986: 428b cmp r3, r1 + 8042988: bfb8 it lt + 804298a: 460b movlt r3, r1 + 804298c: b21b sxth r3, r3 + 804298e: 4293 cmp r3, r2 + 8042990: bfb8 it lt + 8042992: 4613 movlt r3, r2 + 8042994: b21b sxth r3, r3 + 8042996: b29a uxth r2, r3 + 8042998: 8efb ldrh r3, [r7, #54] ; 0x36 + 804299a: 4413 add r3, r2 + 804299c: b29b uxth r3, r3 + 804299e: 86fb strh r3, [r7, #54] ; 0x36 knob_size += 2; /*For rounding error*/ - 8042a34: 8efb ldrh r3, [r7, #54] ; 0x36 - 8042a36: 3302 adds r3, #2 - 8042a38: b29b uxth r3, r3 - 8042a3a: 86fb strh r3, [r7, #54] ; 0x36 + 80429a0: 8efb ldrh r3, [r7, #54] ; 0x36 + 80429a2: 3302 adds r3, #2 + 80429a4: b29b uxth r3, r3 + 80429a6: 86fb strh r3, [r7, #54] ; 0x36 knob_size += lv_obj_calculate_ext_draw_size(obj, LV_PART_KNOB); - 8042a3c: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8042a40: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042a42: f7c6 f977 bl 8008d34 - 8042a46: 4603 mov r3, r0 - 8042a48: b29a uxth r2, r3 - 8042a4a: 8efb ldrh r3, [r7, #54] ; 0x36 - 8042a4c: 4413 add r3, r2 - 8042a4e: b29b uxth r3, r3 - 8042a50: 86fb strh r3, [r7, #54] ; 0x36 + 80429a8: f44f 3140 mov.w r1, #196608 ; 0x30000 + 80429ac: 6ef8 ldr r0, [r7, #108] ; 0x6c + 80429ae: f7c6 f98b bl 8008cc8 + 80429b2: 4603 mov r3, r0 + 80429b4: b29a uxth r2, r3 + 80429b6: 8efb ldrh r3, [r7, #54] ; 0x36 + 80429b8: 4413 add r3, r2 + 80429ba: b29b uxth r3, r3 + 80429bc: 86fb strh r3, [r7, #54] ; 0x36 /*Indic. size is handled by bar*/ lv_coord_t * s = lv_event_get_param(e); - 8042a52: 6838 ldr r0, [r7, #0] - 8042a54: f7bf fdb8 bl 80025c8 - 8042a58: 6338 str r0, [r7, #48] ; 0x30 + 80429be: 6838 ldr r0, [r7, #0] + 80429c0: f7bf fdcc bl 800255c + 80429c4: 6338 str r0, [r7, #48] ; 0x30 *s = LV_MAX(*s, knob_size); - 8042a5a: 6b3b ldr r3, [r7, #48] ; 0x30 - 8042a5c: f9b3 3000 ldrsh.w r3, [r3] - 8042a60: f9b7 2036 ldrsh.w r2, [r7, #54] ; 0x36 - 8042a64: 4293 cmp r3, r2 - 8042a66: bfb8 it lt - 8042a68: 4613 movlt r3, r2 - 8042a6a: b21a sxth r2, r3 - 8042a6c: 6b3b ldr r3, [r7, #48] ; 0x30 - 8042a6e: 801a strh r2, [r3, #0] - 8042a70: e07b b.n 8042b6a + 80429c6: 6b3b ldr r3, [r7, #48] ; 0x30 + 80429c8: f9b3 3000 ldrsh.w r3, [r3] + 80429cc: f9b7 2036 ldrsh.w r2, [r7, #54] ; 0x36 + 80429d0: 4293 cmp r3, r2 + 80429d2: bfb8 it lt + 80429d4: 4613 movlt r3, r2 + 80429d6: b21a sxth r2, r3 + 80429d8: 6b3b ldr r3, [r7, #48] ; 0x30 + 80429da: 801a strh r2, [r3, #0] + 80429dc: e07b b.n 8042ad6 } else if(code == LV_EVENT_KEY) { - 8042a72: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 - 8042a76: 2b0d cmp r3, #13 - 8042a78: d168 bne.n 8042b4c + 80429de: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 + 80429e2: 2b0d cmp r3, #13 + 80429e4: d168 bne.n 8042ab8 char c = *((char *)lv_event_get_param(e)); - 8042a7a: 6838 ldr r0, [r7, #0] - 8042a7c: f7bf fda4 bl 80025c8 - 8042a80: 4603 mov r3, r0 - 8042a82: 781b ldrb r3, [r3, #0] - 8042a84: f887 3047 strb.w r3, [r7, #71] ; 0x47 + 80429e6: 6838 ldr r0, [r7, #0] + 80429e8: f7bf fdb8 bl 800255c + 80429ec: 4603 mov r3, r0 + 80429ee: 781b ldrb r3, [r3, #0] + 80429f0: f887 3047 strb.w r3, [r7, #71] ; 0x47 if(c == LV_KEY_RIGHT || c == LV_KEY_UP) { - 8042a88: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 8042a8c: 2b13 cmp r3, #19 - 8042a8e: d003 beq.n 8042a98 - 8042a90: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 8042a94: 2b11 cmp r3, #17 - 8042a96: d128 bne.n 8042aea + 80429f4: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 80429f8: 2b13 cmp r3, #19 + 80429fa: d003 beq.n 8042a04 + 80429fc: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 8042a00: 2b11 cmp r3, #17 + 8042a02: d128 bne.n 8042a56 if(!slider->left_knob_focus) lv_slider_set_value(obj, lv_slider_get_value(obj) + 1, LV_ANIM_ON); - 8042a98: 6ebb ldr r3, [r7, #104] ; 0x68 - 8042a9a: f893 3074 ldrb.w r3, [r3, #116] ; 0x74 - 8042a9e: f003 0302 and.w r3, r3, #2 - 8042aa2: b2db uxtb r3, r3 - 8042aa4: 2b00 cmp r3, #0 - 8042aa6: d10a bne.n 8042abe - 8042aa8: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042aaa: f7ff fba9 bl 8042200 - 8042aae: 4603 mov r3, r0 - 8042ab0: 3301 adds r3, #1 - 8042ab2: 2201 movs r2, #1 - 8042ab4: 4619 mov r1, r3 - 8042ab6: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042ab8: f7ff fb80 bl 80421bc - 8042abc: e009 b.n 8042ad2 + 8042a04: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042a06: f893 3074 ldrb.w r3, [r3, #116] ; 0x74 + 8042a0a: f003 0302 and.w r3, r3, #2 + 8042a0e: b2db uxtb r3, r3 + 8042a10: 2b00 cmp r3, #0 + 8042a12: d10a bne.n 8042a2a + 8042a14: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042a16: f7ff fba9 bl 804216c + 8042a1a: 4603 mov r3, r0 + 8042a1c: 3301 adds r3, #1 + 8042a1e: 2201 movs r2, #1 + 8042a20: 4619 mov r1, r3 + 8042a22: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042a24: f7ff fb80 bl 8042128 + 8042a28: e009 b.n 8042a3e else lv_slider_set_left_value(obj, lv_slider_get_left_value(obj) + 1, LV_ANIM_ON); - 8042abe: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042ac0: f7ff fbaa bl 8042218 - 8042ac4: 4603 mov r3, r0 - 8042ac6: 3301 adds r3, #1 - 8042ac8: 2201 movs r2, #1 - 8042aca: 4619 mov r1, r3 - 8042acc: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042ace: f7ff fb86 bl 80421de + 8042a2a: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042a2c: f7ff fbaa bl 8042184 + 8042a30: 4603 mov r3, r0 + 8042a32: 3301 adds r3, #1 + 8042a34: 2201 movs r2, #1 + 8042a36: 4619 mov r1, r3 + 8042a38: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042a3a: f7ff fb86 bl 804214a res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 8042ad2: 2200 movs r2, #0 - 8042ad4: 211c movs r1, #28 - 8042ad6: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042ad8: f7bf fcd2 bl 8002480 - 8042adc: 4603 mov r3, r0 - 8042ade: f887 3073 strb.w r3, [r7, #115] ; 0x73 + 8042a3e: 2200 movs r2, #0 + 8042a40: 211c movs r1, #28 + 8042a42: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042a44: f7bf fce6 bl 8002414 + 8042a48: 4603 mov r3, r0 + 8042a4a: f887 3073 strb.w r3, [r7, #115] ; 0x73 if(res != LV_RES_OK) return; - 8042ae2: f897 3073 ldrb.w r3, [r7, #115] ; 0x73 - 8042ae6: 2b01 cmp r3, #1 - 8042ae8: e03f b.n 8042b6a + 8042a4e: f897 3073 ldrb.w r3, [r7, #115] ; 0x73 + 8042a52: 2b01 cmp r3, #1 + 8042a54: e03f b.n 8042ad6 } else if(c == LV_KEY_LEFT || c == LV_KEY_DOWN) { - 8042aea: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 8042aee: 2b14 cmp r3, #20 - 8042af0: d003 beq.n 8042afa - 8042af2: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 - 8042af6: 2b12 cmp r3, #18 - 8042af8: d137 bne.n 8042b6a + 8042a56: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 8042a5a: 2b14 cmp r3, #20 + 8042a5c: d003 beq.n 8042a66 + 8042a5e: f897 3047 ldrb.w r3, [r7, #71] ; 0x47 + 8042a62: 2b12 cmp r3, #18 + 8042a64: d137 bne.n 8042ad6 if(!slider->left_knob_focus) lv_slider_set_value(obj, lv_slider_get_value(obj) - 1, LV_ANIM_ON); - 8042afa: 6ebb ldr r3, [r7, #104] ; 0x68 - 8042afc: f893 3074 ldrb.w r3, [r3, #116] ; 0x74 - 8042b00: f003 0302 and.w r3, r3, #2 - 8042b04: b2db uxtb r3, r3 - 8042b06: 2b00 cmp r3, #0 - 8042b08: d10a bne.n 8042b20 - 8042b0a: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042b0c: f7ff fb78 bl 8042200 - 8042b10: 4603 mov r3, r0 - 8042b12: 3b01 subs r3, #1 - 8042b14: 2201 movs r2, #1 - 8042b16: 4619 mov r1, r3 - 8042b18: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042b1a: f7ff fb4f bl 80421bc - 8042b1e: e009 b.n 8042b34 + 8042a66: 6ebb ldr r3, [r7, #104] ; 0x68 + 8042a68: f893 3074 ldrb.w r3, [r3, #116] ; 0x74 + 8042a6c: f003 0302 and.w r3, r3, #2 + 8042a70: b2db uxtb r3, r3 + 8042a72: 2b00 cmp r3, #0 + 8042a74: d10a bne.n 8042a8c + 8042a76: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042a78: f7ff fb78 bl 804216c + 8042a7c: 4603 mov r3, r0 + 8042a7e: 3b01 subs r3, #1 + 8042a80: 2201 movs r2, #1 + 8042a82: 4619 mov r1, r3 + 8042a84: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042a86: f7ff fb4f bl 8042128 + 8042a8a: e009 b.n 8042aa0 else lv_slider_set_left_value(obj, lv_slider_get_left_value(obj) - 1, LV_ANIM_ON); - 8042b20: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042b22: f7ff fb79 bl 8042218 - 8042b26: 4603 mov r3, r0 - 8042b28: 3b01 subs r3, #1 - 8042b2a: 2201 movs r2, #1 - 8042b2c: 4619 mov r1, r3 - 8042b2e: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042b30: f7ff fb55 bl 80421de + 8042a8c: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042a8e: f7ff fb79 bl 8042184 + 8042a92: 4603 mov r3, r0 + 8042a94: 3b01 subs r3, #1 + 8042a96: 2201 movs r2, #1 + 8042a98: 4619 mov r1, r3 + 8042a9a: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042a9c: f7ff fb55 bl 804214a res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 8042b34: 2200 movs r2, #0 - 8042b36: 211c movs r1, #28 - 8042b38: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8042b3a: f7bf fca1 bl 8002480 - 8042b3e: 4603 mov r3, r0 - 8042b40: f887 3073 strb.w r3, [r7, #115] ; 0x73 + 8042aa0: 2200 movs r2, #0 + 8042aa2: 211c movs r1, #28 + 8042aa4: 6ef8 ldr r0, [r7, #108] ; 0x6c + 8042aa6: f7bf fcb5 bl 8002414 + 8042aaa: 4603 mov r3, r0 + 8042aac: f887 3073 strb.w r3, [r7, #115] ; 0x73 if(res != LV_RES_OK) return; - 8042b44: f897 3073 ldrb.w r3, [r7, #115] ; 0x73 - 8042b48: 2b01 cmp r3, #1 - 8042b4a: e00e b.n 8042b6a + 8042ab0: f897 3073 ldrb.w r3, [r7, #115] ; 0x73 + 8042ab4: 2b01 cmp r3, #1 + 8042ab6: e00e b.n 8042ad6 } } else if(code == LV_EVENT_DRAW_MAIN) { - 8042b4c: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 - 8042b50: 2b15 cmp r3, #21 - 8042b52: d10a bne.n 8042b6a + 8042ab8: f897 3072 ldrb.w r3, [r7, #114] ; 0x72 + 8042abc: 2b15 cmp r3, #21 + 8042abe: d10a bne.n 8042ad6 draw_knob(e); - 8042b54: 6838 ldr r0, [r7, #0] - 8042b56: f000 f80b bl 8042b70 - 8042b5a: e006 b.n 8042b6a + 8042ac0: 6838 ldr r0, [r7, #0] + 8042ac2: f000 f80b bl 8042adc + 8042ac6: e006 b.n 8042ad6 if(res != LV_RES_OK) return; - 8042b5c: bf00 nop - 8042b5e: e004 b.n 8042b6a + 8042ac8: bf00 nop + 8042aca: e004 b.n 8042ad6 if(lv_indev_get_type(indev) != LV_INDEV_TYPE_POINTER) return; - 8042b60: bf00 nop - 8042b62: e002 b.n 8042b6a + 8042acc: bf00 nop + 8042ace: e002 b.n 8042ad6 else if(code == LV_EVENT_PRESSING && slider->value_to_set != NULL) { - 8042b64: bf00 nop - 8042b66: e000 b.n 8042b6a + 8042ad0: bf00 nop + 8042ad2: e000 b.n 8042ad6 else if(code == LV_EVENT_RELEASED || code == LV_EVENT_PRESS_LOST) { - 8042b68: bf00 nop + 8042ad4: bf00 nop } } - 8042b6a: 3784 adds r7, #132 ; 0x84 - 8042b6c: 46bd mov sp, r7 - 8042b6e: bd90 pop {r4, r7, pc} + 8042ad6: 3784 adds r7, #132 ; 0x84 + 8042ad8: 46bd mov sp, r7 + 8042ada: bd90 pop {r4, r7, pc} -08042b70 : +08042adc : static void draw_knob(lv_event_t * e) { - 8042b70: b580 push {r7, lr} - 8042b72: b0ba sub sp, #232 ; 0xe8 - 8042b74: af00 add r7, sp, #0 - 8042b76: 6078 str r0, [r7, #4] + 8042adc: b580 push {r7, lr} + 8042ade: b0ba sub sp, #232 ; 0xe8 + 8042ae0: af00 add r7, sp, #0 + 8042ae2: 6078 str r0, [r7, #4] lv_obj_t * obj = lv_event_get_target(e); - 8042b78: 6878 ldr r0, [r7, #4] - 8042b7a: f7bf fd01 bl 8002580 - 8042b7e: f8c7 00e0 str.w r0, [r7, #224] ; 0xe0 + 8042ae4: 6878 ldr r0, [r7, #4] + 8042ae6: f7bf fd15 bl 8002514 + 8042aea: f8c7 00e0 str.w r0, [r7, #224] ; 0xe0 lv_slider_t * slider = (lv_slider_t *)obj; - 8042b82: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 - 8042b86: f8c7 30dc str.w r3, [r7, #220] ; 0xdc + 8042aee: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 + 8042af2: f8c7 30dc str.w r3, [r7, #220] ; 0xdc lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 8042b8a: 6878 ldr r0, [r7, #4] - 8042b8c: f7bf fe0e bl 80027ac - 8042b90: f8c7 00d8 str.w r0, [r7, #216] ; 0xd8 + 8042af6: 6878 ldr r0, [r7, #4] + 8042af8: f7bf fe22 bl 8002740 + 8042afc: f8c7 00d8 str.w r0, [r7, #216] ; 0xd8 lv_base_dir_t base_dir = lv_obj_get_style_base_dir(obj, LV_PART_MAIN); - 8042b94: 2100 movs r1, #0 - 8042b96: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 - 8042b9a: f7ff fafc bl 8042196 - 8042b9e: 4603 mov r3, r0 - 8042ba0: f887 30d7 strb.w r3, [r7, #215] ; 0xd7 + 8042b00: 2100 movs r1, #0 + 8042b02: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 + 8042b06: f7ff fafc bl 8042102 + 8042b0a: 4603 mov r3, r0 + 8042b0c: f887 30d7 strb.w r3, [r7, #215] ; 0xd7 lv_coord_t objw = lv_obj_get_width(obj); - 8042ba4: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 - 8042ba8: f7c7 face bl 800a148 - 8042bac: 4603 mov r3, r0 - 8042bae: f8a7 30d4 strh.w r3, [r7, #212] ; 0xd4 + 8042b10: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 + 8042b14: f7c7 fae2 bl 800a0dc + 8042b18: 4603 mov r3, r0 + 8042b1a: f8a7 30d4 strh.w r3, [r7, #212] ; 0xd4 lv_coord_t objh = lv_obj_get_height(obj); - 8042bb2: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 - 8042bb6: f7c7 fad5 bl 800a164 - 8042bba: 4603 mov r3, r0 - 8042bbc: f8a7 30d2 strh.w r3, [r7, #210] ; 0xd2 + 8042b1e: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 + 8042b22: f7c7 fae9 bl 800a0f8 + 8042b26: 4603 mov r3, r0 + 8042b28: f8a7 30d2 strh.w r3, [r7, #210] ; 0xd2 bool hor = objw >= objh ? true : false; - 8042bc0: f9b7 20d4 ldrsh.w r2, [r7, #212] ; 0xd4 - 8042bc4: f9b7 30d2 ldrsh.w r3, [r7, #210] ; 0xd2 - 8042bc8: 429a cmp r2, r3 - 8042bca: bfac ite ge - 8042bcc: 2301 movge r3, #1 - 8042bce: 2300 movlt r3, #0 - 8042bd0: f887 30d1 strb.w r3, [r7, #209] ; 0xd1 + 8042b2c: f9b7 20d4 ldrsh.w r2, [r7, #212] ; 0xd4 + 8042b30: f9b7 30d2 ldrsh.w r3, [r7, #210] ; 0xd2 + 8042b34: 429a cmp r2, r3 + 8042b36: bfac ite ge + 8042b38: 2301 movge r3, #1 + 8042b3a: 2300 movlt r3, #0 + 8042b3c: f887 30d1 strb.w r3, [r7, #209] ; 0xd1 lv_coord_t knob_size = hor ? objh : objw; - 8042bd4: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 - 8042bd8: 2b00 cmp r3, #0 - 8042bda: d002 beq.n 8042be2 - 8042bdc: f9b7 30d2 ldrsh.w r3, [r7, #210] ; 0xd2 - 8042be0: e001 b.n 8042be6 - 8042be2: f9b7 30d4 ldrsh.w r3, [r7, #212] ; 0xd4 - 8042be6: f8a7 30ce strh.w r3, [r7, #206] ; 0xce + 8042b40: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 + 8042b44: 2b00 cmp r3, #0 + 8042b46: d002 beq.n 8042b4e + 8042b48: f9b7 30d2 ldrsh.w r3, [r7, #210] ; 0xd2 + 8042b4c: e001 b.n 8042b52 + 8042b4e: f9b7 30d4 ldrsh.w r3, [r7, #212] ; 0xd4 + 8042b52: f8a7 30ce strh.w r3, [r7, #206] ; 0xce bool sym = false; - 8042bea: 2300 movs r3, #0 - 8042bec: f887 30e7 strb.w r3, [r7, #231] ; 0xe7 + 8042b56: 2300 movs r3, #0 + 8042b58: f887 30e7 strb.w r3, [r7, #231] ; 0xe7 if(slider->bar.mode == LV_BAR_MODE_SYMMETRICAL && slider->bar.min_value < 0 && slider->bar.max_value > 0) sym = true; - 8042bf0: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042bf4: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 8042bf8: f003 0303 and.w r3, r3, #3 - 8042bfc: b2db uxtb r3, r3 - 8042bfe: 2b01 cmp r3, #1 - 8042c00: d10c bne.n 8042c1c - 8042c02: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042c06: 6a9b ldr r3, [r3, #40] ; 0x28 - 8042c08: 2b00 cmp r3, #0 - 8042c0a: da07 bge.n 8042c1c - 8042c0c: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042c10: 6adb ldr r3, [r3, #44] ; 0x2c - 8042c12: 2b00 cmp r3, #0 - 8042c14: dd02 ble.n 8042c1c - 8042c16: 2301 movs r3, #1 - 8042c18: f887 30e7 strb.w r3, [r7, #231] ; 0xe7 + 8042b5c: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042b60: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 8042b64: f003 0303 and.w r3, r3, #3 + 8042b68: b2db uxtb r3, r3 + 8042b6a: 2b01 cmp r3, #1 + 8042b6c: d10c bne.n 8042b88 + 8042b6e: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042b72: 6a9b ldr r3, [r3, #40] ; 0x28 + 8042b74: 2b00 cmp r3, #0 + 8042b76: da07 bge.n 8042b88 + 8042b78: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042b7c: 6adb ldr r3, [r3, #44] ; 0x2c + 8042b7e: 2b00 cmp r3, #0 + 8042b80: dd02 ble.n 8042b88 + 8042b82: 2301 movs r3, #1 + 8042b84: f887 30e7 strb.w r3, [r7, #231] ; 0xe7 lv_area_t knob_area; /*Horizontal*/ if(hor) { - 8042c1c: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 - 8042c20: 2b00 cmp r3, #0 - 8042c22: d071 beq.n 8042d08 + 8042b88: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 + 8042b8c: 2b00 cmp r3, #0 + 8042b8e: d071 beq.n 8042c74 if(!sym) { - 8042c24: f897 30e7 ldrb.w r3, [r7, #231] ; 0xe7 - 8042c28: f083 0301 eor.w r3, r3, #1 - 8042c2c: b2db uxtb r3, r3 - 8042c2e: 2b00 cmp r3, #0 - 8042c30: d021 beq.n 8042c76 + 8042b90: f897 30e7 ldrb.w r3, [r7, #231] ; 0xe7 + 8042b94: f083 0301 eor.w r3, r3, #1 + 8042b98: b2db uxtb r3, r3 + 8042b9a: 2b00 cmp r3, #0 + 8042b9c: d021 beq.n 8042be2 knob_area.x1 = LV_SLIDER_KNOB_COORD(hor, base_dir == LV_BASE_DIR_RTL, slider->bar.indic_area); - 8042c32: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 - 8042c36: 2b00 cmp r3, #0 - 8042c38: d00d beq.n 8042c56 - 8042c3a: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 - 8042c3e: 2b01 cmp r3, #1 - 8042c40: d104 bne.n 8042c4c - 8042c42: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042c46: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 - 8042c4a: e011 b.n 8042c70 - 8042c4c: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042c50: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 - 8042c54: e00c b.n 8042c70 - 8042c56: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 - 8042c5a: 2b01 cmp r3, #1 - 8042c5c: d104 bne.n 8042c68 - 8042c5e: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042c62: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 - 8042c66: e003 b.n 8042c70 - 8042c68: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042c6c: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a - 8042c70: f8a7 30c4 strh.w r3, [r7, #196] ; 0xc4 - 8042c74: e068 b.n 8042d48 + 8042b9e: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 + 8042ba2: 2b00 cmp r3, #0 + 8042ba4: d00d beq.n 8042bc2 + 8042ba6: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 + 8042baa: 2b01 cmp r3, #1 + 8042bac: d104 bne.n 8042bb8 + 8042bae: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042bb2: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 + 8042bb6: e011 b.n 8042bdc + 8042bb8: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042bbc: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 + 8042bc0: e00c b.n 8042bdc + 8042bc2: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 + 8042bc6: 2b01 cmp r3, #1 + 8042bc8: d104 bne.n 8042bd4 + 8042bca: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042bce: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 + 8042bd2: e003 b.n 8042bdc + 8042bd4: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042bd8: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a + 8042bdc: f8a7 30c4 strh.w r3, [r7, #196] ; 0xc4 + 8042be0: e068 b.n 8042cb4 } else { if(slider->bar.cur_value >= 0) { - 8042c76: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042c7a: 6a5b ldr r3, [r3, #36] ; 0x24 - 8042c7c: 2b00 cmp r3, #0 - 8042c7e: db21 blt.n 8042cc4 + 8042be2: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042be6: 6a5b ldr r3, [r3, #36] ; 0x24 + 8042be8: 2b00 cmp r3, #0 + 8042bea: db21 blt.n 8042c30 knob_area.x1 = LV_SLIDER_KNOB_COORD(hor, base_dir == LV_BASE_DIR_RTL, slider->bar.indic_area); - 8042c80: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 - 8042c84: 2b00 cmp r3, #0 - 8042c86: d00d beq.n 8042ca4 - 8042c88: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 - 8042c8c: 2b01 cmp r3, #1 - 8042c8e: d104 bne.n 8042c9a - 8042c90: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042c94: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 - 8042c98: e011 b.n 8042cbe - 8042c9a: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042c9e: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 - 8042ca2: e00c b.n 8042cbe - 8042ca4: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 - 8042ca8: 2b01 cmp r3, #1 - 8042caa: d104 bne.n 8042cb6 - 8042cac: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042cb0: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 - 8042cb4: e003 b.n 8042cbe - 8042cb6: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042cba: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a - 8042cbe: f8a7 30c4 strh.w r3, [r7, #196] ; 0xc4 - 8042cc2: e041 b.n 8042d48 + 8042bec: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 + 8042bf0: 2b00 cmp r3, #0 + 8042bf2: d00d beq.n 8042c10 + 8042bf4: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 + 8042bf8: 2b01 cmp r3, #1 + 8042bfa: d104 bne.n 8042c06 + 8042bfc: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042c00: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 + 8042c04: e011 b.n 8042c2a + 8042c06: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042c0a: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 + 8042c0e: e00c b.n 8042c2a + 8042c10: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 + 8042c14: 2b01 cmp r3, #1 + 8042c16: d104 bne.n 8042c22 + 8042c18: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042c1c: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 + 8042c20: e003 b.n 8042c2a + 8042c22: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042c26: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a + 8042c2a: f8a7 30c4 strh.w r3, [r7, #196] ; 0xc4 + 8042c2e: e041 b.n 8042cb4 } else { knob_area.x1 = LV_SLIDER_KNOB_COORD(hor, base_dir != LV_BASE_DIR_RTL, slider->bar.indic_area); - 8042cc4: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 - 8042cc8: 2b00 cmp r3, #0 - 8042cca: d00d beq.n 8042ce8 - 8042ccc: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 - 8042cd0: 2b01 cmp r3, #1 - 8042cd2: d004 beq.n 8042cde - 8042cd4: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042cd8: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 - 8042cdc: e011 b.n 8042d02 - 8042cde: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042ce2: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 - 8042ce6: e00c b.n 8042d02 - 8042ce8: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 - 8042cec: 2b01 cmp r3, #1 - 8042cee: d004 beq.n 8042cfa - 8042cf0: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042cf4: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 - 8042cf8: e003 b.n 8042d02 - 8042cfa: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042cfe: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a - 8042d02: f8a7 30c4 strh.w r3, [r7, #196] ; 0xc4 - 8042d06: e01f b.n 8042d48 + 8042c30: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 + 8042c34: 2b00 cmp r3, #0 + 8042c36: d00d beq.n 8042c54 + 8042c38: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 + 8042c3c: 2b01 cmp r3, #1 + 8042c3e: d004 beq.n 8042c4a + 8042c40: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042c44: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 + 8042c48: e011 b.n 8042c6e + 8042c4a: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042c4e: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 + 8042c52: e00c b.n 8042c6e + 8042c54: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 + 8042c58: 2b01 cmp r3, #1 + 8042c5a: d004 beq.n 8042c66 + 8042c5c: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042c60: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 + 8042c64: e003 b.n 8042c6e + 8042c66: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042c6a: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a + 8042c6e: f8a7 30c4 strh.w r3, [r7, #196] ; 0xc4 + 8042c72: e01f b.n 8042cb4 } } } /*Vertical*/ else { if(!sym) { - 8042d08: f897 30e7 ldrb.w r3, [r7, #231] ; 0xe7 - 8042d0c: f083 0301 eor.w r3, r3, #1 - 8042d10: b2db uxtb r3, r3 - 8042d12: 2b00 cmp r3, #0 - 8042d14: d006 beq.n 8042d24 + 8042c74: f897 30e7 ldrb.w r3, [r7, #231] ; 0xe7 + 8042c78: f083 0301 eor.w r3, r3, #1 + 8042c7c: b2db uxtb r3, r3 + 8042c7e: 2b00 cmp r3, #0 + 8042c80: d006 beq.n 8042c90 knob_area.y1 = slider->bar.indic_area.y1; - 8042d16: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042d1a: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 - 8042d1e: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 - 8042d22: e011 b.n 8042d48 + 8042c82: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042c86: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 + 8042c8a: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 + 8042c8e: e011 b.n 8042cb4 } else { if(slider->bar.cur_value >= 0) { - 8042d24: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042d28: 6a5b ldr r3, [r3, #36] ; 0x24 - 8042d2a: 2b00 cmp r3, #0 - 8042d2c: db06 blt.n 8042d3c + 8042c90: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042c94: 6a5b ldr r3, [r3, #36] ; 0x24 + 8042c96: 2b00 cmp r3, #0 + 8042c98: db06 blt.n 8042ca8 knob_area.y1 = slider->bar.indic_area.y1; - 8042d2e: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042d32: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 - 8042d36: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 - 8042d3a: e005 b.n 8042d48 + 8042c9a: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042c9e: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 + 8042ca2: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 + 8042ca6: e005 b.n 8042cb4 } else { knob_area.y1 = slider->bar.indic_area.y2; - 8042d3c: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042d40: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a - 8042d44: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 + 8042ca8: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042cac: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a + 8042cb0: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 } } } lv_draw_rect_dsc_t knob_rect_dsc; lv_draw_rect_dsc_init(&knob_rect_dsc); - 8042d48: f107 038c add.w r3, r7, #140 ; 0x8c - 8042d4c: 4618 mov r0, r3 - 8042d4e: f7d2 fd51 bl 80157f4 + 8042cb4: f107 038c add.w r3, r7, #140 ; 0x8c + 8042cb8: 4618 mov r0, r3 + 8042cba: f7d2 fd51 bl 8015760 lv_obj_init_draw_rect_dsc(obj, LV_PART_KNOB, &knob_rect_dsc); - 8042d52: f107 038c add.w r3, r7, #140 ; 0x8c - 8042d56: 461a mov r2, r3 - 8042d58: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8042d5c: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 - 8042d60: f7c5 fc31 bl 80085c6 + 8042cbe: f107 038c add.w r3, r7, #140 ; 0x8c + 8042cc2: 461a mov r2, r3 + 8042cc4: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8042cc8: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 + 8042ccc: f7c5 fc45 bl 800855a position_knob(obj, &knob_area, knob_size, hor); - 8042d64: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 - 8042d68: f9b7 20ce ldrsh.w r2, [r7, #206] ; 0xce - 8042d6c: f107 01c4 add.w r1, r7, #196 ; 0xc4 - 8042d70: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 - 8042d74: f000 f8da bl 8042f2c + 8042cd0: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 + 8042cd4: f9b7 20ce ldrsh.w r2, [r7, #206] ; 0xce + 8042cd8: f107 01c4 add.w r1, r7, #196 ; 0xc4 + 8042cdc: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 + 8042ce0: f000 f8da bl 8042e98 lv_area_copy(&slider->right_knob_area, &knob_area); - 8042d78: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042d7c: 3368 adds r3, #104 ; 0x68 - 8042d7e: f107 02c4 add.w r2, r7, #196 ; 0xc4 - 8042d82: 4611 mov r1, r2 - 8042d84: 4618 mov r0, r3 - 8042d86: f7ff f963 bl 8042050 + 8042ce4: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042ce8: 3368 adds r3, #104 ; 0x68 + 8042cea: f107 02c4 add.w r2, r7, #196 ; 0xc4 + 8042cee: 4611 mov r1, r2 + 8042cf0: 4618 mov r0, r3 + 8042cf2: f7ff f963 bl 8041fbc lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 8042d8a: f107 0344 add.w r3, r7, #68 ; 0x44 - 8042d8e: f8d7 10d8 ldr.w r1, [r7, #216] ; 0xd8 - 8042d92: 4618 mov r0, r3 - 8042d94: f7c6 f86b bl 8008e6e + 8042cf6: f107 0344 add.w r3, r7, #68 ; 0x44 + 8042cfa: f8d7 10d8 ldr.w r1, [r7, #216] ; 0xd8 + 8042cfe: 4618 mov r0, r3 + 8042d00: f7c6 f87f bl 8008e02 part_draw_dsc.part = LV_PART_KNOB; - 8042d98: f44f 3340 mov.w r3, #196608 ; 0x30000 - 8042d9c: 67bb str r3, [r7, #120] ; 0x78 + 8042d04: f44f 3340 mov.w r3, #196608 ; 0x30000 + 8042d08: 67bb str r3, [r7, #120] ; 0x78 part_draw_dsc.class_p = MY_CLASS; - 8042d9e: 4b62 ldr r3, [pc, #392] ; (8042f28 ) - 8042da0: 64bb str r3, [r7, #72] ; 0x48 + 8042d0a: 4b62 ldr r3, [pc, #392] ; (8042e94 ) + 8042d0c: 64bb str r3, [r7, #72] ; 0x48 part_draw_dsc.type = LV_SLIDER_DRAW_PART_KNOB; - 8042da2: 2300 movs r3, #0 - 8042da4: 64fb str r3, [r7, #76] ; 0x4c + 8042d0e: 2300 movs r3, #0 + 8042d10: 64fb str r3, [r7, #76] ; 0x4c part_draw_dsc.id = 0; - 8042da6: 2300 movs r3, #0 - 8042da8: 67fb str r3, [r7, #124] ; 0x7c + 8042d12: 2300 movs r3, #0 + 8042d14: 67fb str r3, [r7, #124] ; 0x7c part_draw_dsc.draw_area = &slider->right_knob_area; - 8042daa: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042dae: 3368 adds r3, #104 ; 0x68 - 8042db0: 653b str r3, [r7, #80] ; 0x50 + 8042d16: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042d1a: 3368 adds r3, #104 ; 0x68 + 8042d1c: 653b str r3, [r7, #80] ; 0x50 part_draw_dsc.rect_dsc = &knob_rect_dsc; - 8042db2: f107 038c add.w r3, r7, #140 ; 0x8c - 8042db6: 657b str r3, [r7, #84] ; 0x54 + 8042d1e: f107 038c add.w r3, r7, #140 ; 0x8c + 8042d22: 657b str r3, [r7, #84] ; 0x54 if(lv_slider_get_mode(obj) != LV_SLIDER_MODE_RANGE) { - 8042db8: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 - 8042dbc: f7ff fa38 bl 8042230 - 8042dc0: 4603 mov r3, r0 - 8042dc2: 2b02 cmp r3, #2 - 8042dc4: d01b beq.n 8042dfe + 8042d24: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 + 8042d28: f7ff fa38 bl 804219c + 8042d2c: 4603 mov r3, r0 + 8042d2e: 2b02 cmp r3, #2 + 8042d30: d01b beq.n 8042d6a lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 8042dc6: f107 0344 add.w r3, r7, #68 ; 0x44 - 8042dca: 461a mov r2, r3 - 8042dcc: 211a movs r1, #26 - 8042dce: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 - 8042dd2: f7bf fb55 bl 8002480 + 8042d32: f107 0344 add.w r3, r7, #68 ; 0x44 + 8042d36: 461a mov r2, r3 + 8042d38: 211a movs r1, #26 + 8042d3a: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 + 8042d3e: f7bf fb69 bl 8002414 lv_draw_rect(draw_ctx, &knob_rect_dsc, &slider->right_knob_area); - 8042dd6: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042dda: f103 0268 add.w r2, r3, #104 ; 0x68 - 8042dde: f107 038c add.w r3, r7, #140 ; 0x8c - 8042de2: 4619 mov r1, r3 - 8042de4: f8d7 00d8 ldr.w r0, [r7, #216] ; 0xd8 - 8042de8: f7d2 fd46 bl 8015878 + 8042d42: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042d46: f103 0268 add.w r2, r3, #104 ; 0x68 + 8042d4a: f107 038c add.w r3, r7, #140 ; 0x8c + 8042d4e: 4619 mov r1, r3 + 8042d50: f8d7 00d8 ldr.w r0, [r7, #216] ; 0xd8 + 8042d54: f7d2 fd46 bl 80157e4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 8042dec: f107 0344 add.w r3, r7, #68 ; 0x44 - 8042df0: 461a mov r2, r3 - 8042df2: 211b movs r1, #27 - 8042df4: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 - 8042df8: f7bf fb42 bl 8002480 + 8042d58: f107 0344 add.w r3, r7, #68 ; 0x44 + 8042d5c: 461a mov r2, r3 + 8042d5e: 211b movs r1, #27 + 8042d60: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 + 8042d64: f7bf fb56 bl 8002414 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); lv_draw_rect(draw_ctx, &knob_rect_dsc, &slider->left_knob_area); lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); } } - 8042dfc: e08f b.n 8042f1e + 8042d68: e08f b.n 8042e8a lv_memcpy(&knob_rect_dsc_tmp, &knob_rect_dsc, sizeof(lv_draw_rect_dsc_t)); - 8042dfe: f107 018c add.w r1, r7, #140 ; 0x8c - 8042e02: f107 030c add.w r3, r7, #12 - 8042e06: 2238 movs r2, #56 ; 0x38 - 8042e08: 4618 mov r0, r3 - 8042e0a: f7ef fefd bl 8032c08 + 8042d6a: f107 018c add.w r1, r7, #140 ; 0x8c + 8042d6e: f107 030c add.w r3, r7, #12 + 8042d72: 2238 movs r2, #56 ; 0x38 + 8042d74: 4618 mov r0, r3 + 8042d76: f7ef fefd bl 8032b74 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 8042e0e: f107 0344 add.w r3, r7, #68 ; 0x44 - 8042e12: 461a mov r2, r3 - 8042e14: 211a movs r1, #26 - 8042e16: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 - 8042e1a: f7bf fb31 bl 8002480 + 8042d7a: f107 0344 add.w r3, r7, #68 ; 0x44 + 8042d7e: 461a mov r2, r3 + 8042d80: 211a movs r1, #26 + 8042d82: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 + 8042d86: f7bf fb45 bl 8002414 lv_draw_rect(draw_ctx, &knob_rect_dsc, &slider->right_knob_area); - 8042e1e: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042e22: f103 0268 add.w r2, r3, #104 ; 0x68 - 8042e26: f107 038c add.w r3, r7, #140 ; 0x8c - 8042e2a: 4619 mov r1, r3 - 8042e2c: f8d7 00d8 ldr.w r0, [r7, #216] ; 0xd8 - 8042e30: f7d2 fd22 bl 8015878 + 8042d8a: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042d8e: f103 0268 add.w r2, r3, #104 ; 0x68 + 8042d92: f107 038c add.w r3, r7, #140 ; 0x8c + 8042d96: 4619 mov r1, r3 + 8042d98: f8d7 00d8 ldr.w r0, [r7, #216] ; 0xd8 + 8042d9c: f7d2 fd22 bl 80157e4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 8042e34: f107 0344 add.w r3, r7, #68 ; 0x44 - 8042e38: 461a mov r2, r3 - 8042e3a: 211b movs r1, #27 - 8042e3c: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 - 8042e40: f7bf fb1e bl 8002480 + 8042da0: f107 0344 add.w r3, r7, #68 ; 0x44 + 8042da4: 461a mov r2, r3 + 8042da6: 211b movs r1, #27 + 8042da8: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 + 8042dac: f7bf fb32 bl 8002414 if(hor) { - 8042e44: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 - 8042e48: 2b00 cmp r3, #0 - 8042e4a: d021 beq.n 8042e90 + 8042db0: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 + 8042db4: 2b00 cmp r3, #0 + 8042db6: d021 beq.n 8042dfc knob_area.x1 = LV_SLIDER_KNOB_COORD(hor, base_dir != LV_BASE_DIR_RTL, slider->bar.indic_area); - 8042e4c: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 - 8042e50: 2b00 cmp r3, #0 - 8042e52: d00d beq.n 8042e70 - 8042e54: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 - 8042e58: 2b01 cmp r3, #1 - 8042e5a: d004 beq.n 8042e66 - 8042e5c: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042e60: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 - 8042e64: e011 b.n 8042e8a - 8042e66: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042e6a: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 - 8042e6e: e00c b.n 8042e8a - 8042e70: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 - 8042e74: 2b01 cmp r3, #1 - 8042e76: d004 beq.n 8042e82 - 8042e78: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042e7c: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 - 8042e80: e003 b.n 8042e8a - 8042e82: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042e86: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a - 8042e8a: f8a7 30c4 strh.w r3, [r7, #196] ; 0xc4 - 8042e8e: e005 b.n 8042e9c + 8042db8: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 + 8042dbc: 2b00 cmp r3, #0 + 8042dbe: d00d beq.n 8042ddc + 8042dc0: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 + 8042dc4: 2b01 cmp r3, #1 + 8042dc6: d004 beq.n 8042dd2 + 8042dc8: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042dcc: f9b3 3034 ldrsh.w r3, [r3, #52] ; 0x34 + 8042dd0: e011 b.n 8042df6 + 8042dd2: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042dd6: f9b3 3038 ldrsh.w r3, [r3, #56] ; 0x38 + 8042dda: e00c b.n 8042df6 + 8042ddc: f897 30d7 ldrb.w r3, [r7, #215] ; 0xd7 + 8042de0: 2b01 cmp r3, #1 + 8042de2: d004 beq.n 8042dee + 8042de4: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042de8: f9b3 3036 ldrsh.w r3, [r3, #54] ; 0x36 + 8042dec: e003 b.n 8042df6 + 8042dee: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042df2: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a + 8042df6: f8a7 30c4 strh.w r3, [r7, #196] ; 0xc4 + 8042dfa: e005 b.n 8042e08 knob_area.y1 = slider->bar.indic_area.y2; - 8042e90: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042e94: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a - 8042e98: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 + 8042dfc: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042e00: f9b3 303a ldrsh.w r3, [r3, #58] ; 0x3a + 8042e04: f8a7 30c6 strh.w r3, [r7, #198] ; 0xc6 position_knob(obj, &knob_area, knob_size, hor); - 8042e9c: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 - 8042ea0: f9b7 20ce ldrsh.w r2, [r7, #206] ; 0xce - 8042ea4: f107 01c4 add.w r1, r7, #196 ; 0xc4 - 8042ea8: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 - 8042eac: f000 f83e bl 8042f2c + 8042e08: f897 30d1 ldrb.w r3, [r7, #209] ; 0xd1 + 8042e0c: f9b7 20ce ldrsh.w r2, [r7, #206] ; 0xce + 8042e10: f107 01c4 add.w r1, r7, #196 ; 0xc4 + 8042e14: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 + 8042e18: f000 f83e bl 8042e98 lv_area_copy(&slider->left_knob_area, &knob_area); - 8042eb0: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042eb4: 3360 adds r3, #96 ; 0x60 - 8042eb6: f107 02c4 add.w r2, r7, #196 ; 0xc4 - 8042eba: 4611 mov r1, r2 - 8042ebc: 4618 mov r0, r3 - 8042ebe: f7ff f8c7 bl 8042050 + 8042e1c: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042e20: 3360 adds r3, #96 ; 0x60 + 8042e22: f107 02c4 add.w r2, r7, #196 ; 0xc4 + 8042e26: 4611 mov r1, r2 + 8042e28: 4618 mov r0, r3 + 8042e2a: f7ff f8c7 bl 8041fbc lv_memcpy(&knob_rect_dsc, &knob_rect_dsc_tmp, sizeof(lv_draw_rect_dsc_t)); - 8042ec2: f107 010c add.w r1, r7, #12 - 8042ec6: f107 038c add.w r3, r7, #140 ; 0x8c - 8042eca: 2238 movs r2, #56 ; 0x38 - 8042ecc: 4618 mov r0, r3 - 8042ece: f7ef fe9b bl 8032c08 + 8042e2e: f107 010c add.w r1, r7, #12 + 8042e32: f107 038c add.w r3, r7, #140 ; 0x8c + 8042e36: 2238 movs r2, #56 ; 0x38 + 8042e38: 4618 mov r0, r3 + 8042e3a: f7ef fe9b bl 8032b74 part_draw_dsc.type = LV_SLIDER_DRAW_PART_KNOB_LEFT; - 8042ed2: 2301 movs r3, #1 - 8042ed4: 64fb str r3, [r7, #76] ; 0x4c + 8042e3e: 2301 movs r3, #1 + 8042e40: 64fb str r3, [r7, #76] ; 0x4c part_draw_dsc.draw_area = &slider->left_knob_area; - 8042ed6: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042eda: 3360 adds r3, #96 ; 0x60 - 8042edc: 653b str r3, [r7, #80] ; 0x50 + 8042e42: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042e46: 3360 adds r3, #96 ; 0x60 + 8042e48: 653b str r3, [r7, #80] ; 0x50 part_draw_dsc.rect_dsc = &knob_rect_dsc; - 8042ede: f107 038c add.w r3, r7, #140 ; 0x8c - 8042ee2: 657b str r3, [r7, #84] ; 0x54 + 8042e4a: f107 038c add.w r3, r7, #140 ; 0x8c + 8042e4e: 657b str r3, [r7, #84] ; 0x54 part_draw_dsc.id = 1; - 8042ee4: 2301 movs r3, #1 - 8042ee6: 67fb str r3, [r7, #124] ; 0x7c + 8042e50: 2301 movs r3, #1 + 8042e52: 67fb str r3, [r7, #124] ; 0x7c lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 8042ee8: f107 0344 add.w r3, r7, #68 ; 0x44 - 8042eec: 461a mov r2, r3 - 8042eee: 211a movs r1, #26 - 8042ef0: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 - 8042ef4: f7bf fac4 bl 8002480 + 8042e54: f107 0344 add.w r3, r7, #68 ; 0x44 + 8042e58: 461a mov r2, r3 + 8042e5a: 211a movs r1, #26 + 8042e5c: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 + 8042e60: f7bf fad8 bl 8002414 lv_draw_rect(draw_ctx, &knob_rect_dsc, &slider->left_knob_area); - 8042ef8: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc - 8042efc: f103 0260 add.w r2, r3, #96 ; 0x60 - 8042f00: f107 038c add.w r3, r7, #140 ; 0x8c - 8042f04: 4619 mov r1, r3 - 8042f06: f8d7 00d8 ldr.w r0, [r7, #216] ; 0xd8 - 8042f0a: f7d2 fcb5 bl 8015878 + 8042e64: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc + 8042e68: f103 0260 add.w r2, r3, #96 ; 0x60 + 8042e6c: f107 038c add.w r3, r7, #140 ; 0x8c + 8042e70: 4619 mov r1, r3 + 8042e72: f8d7 00d8 ldr.w r0, [r7, #216] ; 0xd8 + 8042e76: f7d2 fcb5 bl 80157e4 lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 8042f0e: f107 0344 add.w r3, r7, #68 ; 0x44 - 8042f12: 461a mov r2, r3 - 8042f14: 211b movs r1, #27 - 8042f16: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 - 8042f1a: f7bf fab1 bl 8002480 + 8042e7a: f107 0344 add.w r3, r7, #68 ; 0x44 + 8042e7e: 461a mov r2, r3 + 8042e80: 211b movs r1, #27 + 8042e82: f8d7 00e0 ldr.w r0, [r7, #224] ; 0xe0 + 8042e86: f7bf fac5 bl 8002414 } - 8042f1e: bf00 nop - 8042f20: 37e8 adds r7, #232 ; 0xe8 - 8042f22: 46bd mov sp, r7 - 8042f24: bd80 pop {r7, pc} - 8042f26: bf00 nop - 8042f28: 08070afc .word 0x08070afc + 8042e8a: bf00 nop + 8042e8c: 37e8 adds r7, #232 ; 0xe8 + 8042e8e: 46bd mov sp, r7 + 8042e90: bd80 pop {r7, pc} + 8042e92: bf00 nop + 8042e94: 08070a54 .word 0x08070a54 -08042f2c : +08042e98 : static void position_knob(lv_obj_t * obj, lv_area_t * knob_area, lv_coord_t knob_size, bool hor) { - 8042f2c: b580 push {r7, lr} - 8042f2e: b088 sub sp, #32 - 8042f30: af00 add r7, sp, #0 - 8042f32: 60f8 str r0, [r7, #12] - 8042f34: 60b9 str r1, [r7, #8] - 8042f36: 4611 mov r1, r2 - 8042f38: 461a mov r2, r3 - 8042f3a: 460b mov r3, r1 - 8042f3c: 80fb strh r3, [r7, #6] - 8042f3e: 4613 mov r3, r2 - 8042f40: 717b strb r3, [r7, #5] + 8042e98: b580 push {r7, lr} + 8042e9a: b088 sub sp, #32 + 8042e9c: af00 add r7, sp, #0 + 8042e9e: 60f8 str r0, [r7, #12] + 8042ea0: 60b9 str r1, [r7, #8] + 8042ea2: 4611 mov r1, r2 + 8042ea4: 461a mov r2, r3 + 8042ea6: 460b mov r3, r1 + 8042ea8: 80fb strh r3, [r7, #6] + 8042eaa: 4613 mov r3, r2 + 8042eac: 717b strb r3, [r7, #5] if(hor) { - 8042f42: 797b ldrb r3, [r7, #5] - 8042f44: 2b00 cmp r3, #0 - 8042f46: d024 beq.n 8042f92 + 8042eae: 797b ldrb r3, [r7, #5] + 8042eb0: 2b00 cmp r3, #0 + 8042eb2: d024 beq.n 8042efe knob_area->x1 -= (knob_size >> 1); - 8042f48: 68bb ldr r3, [r7, #8] - 8042f4a: f9b3 3000 ldrsh.w r3, [r3] - 8042f4e: b29a uxth r2, r3 - 8042f50: f9b7 3006 ldrsh.w r3, [r7, #6] - 8042f54: 105b asrs r3, r3, #1 - 8042f56: b21b sxth r3, r3 - 8042f58: b29b uxth r3, r3 - 8042f5a: 1ad3 subs r3, r2, r3 - 8042f5c: b29b uxth r3, r3 - 8042f5e: b21a sxth r2, r3 - 8042f60: 68bb ldr r3, [r7, #8] - 8042f62: 801a strh r2, [r3, #0] + 8042eb4: 68bb ldr r3, [r7, #8] + 8042eb6: f9b3 3000 ldrsh.w r3, [r3] + 8042eba: b29a uxth r2, r3 + 8042ebc: f9b7 3006 ldrsh.w r3, [r7, #6] + 8042ec0: 105b asrs r3, r3, #1 + 8042ec2: b21b sxth r3, r3 + 8042ec4: b29b uxth r3, r3 + 8042ec6: 1ad3 subs r3, r2, r3 + 8042ec8: b29b uxth r3, r3 + 8042eca: b21a sxth r2, r3 + 8042ecc: 68bb ldr r3, [r7, #8] + 8042ece: 801a strh r2, [r3, #0] knob_area->x2 = knob_area->x1 + knob_size - 1; - 8042f64: 68bb ldr r3, [r7, #8] - 8042f66: f9b3 3000 ldrsh.w r3, [r3] - 8042f6a: b29a uxth r2, r3 - 8042f6c: 88fb ldrh r3, [r7, #6] - 8042f6e: 4413 add r3, r2 - 8042f70: b29b uxth r3, r3 - 8042f72: 3b01 subs r3, #1 - 8042f74: b29b uxth r3, r3 - 8042f76: b21a sxth r2, r3 - 8042f78: 68bb ldr r3, [r7, #8] - 8042f7a: 809a strh r2, [r3, #4] + 8042ed0: 68bb ldr r3, [r7, #8] + 8042ed2: f9b3 3000 ldrsh.w r3, [r3] + 8042ed6: b29a uxth r2, r3 + 8042ed8: 88fb ldrh r3, [r7, #6] + 8042eda: 4413 add r3, r2 + 8042edc: b29b uxth r3, r3 + 8042ede: 3b01 subs r3, #1 + 8042ee0: b29b uxth r3, r3 + 8042ee2: b21a sxth r2, r3 + 8042ee4: 68bb ldr r3, [r7, #8] + 8042ee6: 809a strh r2, [r3, #4] knob_area->y1 = obj->coords.y1; - 8042f7c: 68fb ldr r3, [r7, #12] - 8042f7e: f9b3 2016 ldrsh.w r2, [r3, #22] - 8042f82: 68bb ldr r3, [r7, #8] - 8042f84: 805a strh r2, [r3, #2] + 8042ee8: 68fb ldr r3, [r7, #12] + 8042eea: f9b3 2016 ldrsh.w r2, [r3, #22] + 8042eee: 68bb ldr r3, [r7, #8] + 8042ef0: 805a strh r2, [r3, #2] knob_area->y2 = obj->coords.y2; - 8042f86: 68fb ldr r3, [r7, #12] - 8042f88: f9b3 201a ldrsh.w r2, [r3, #26] - 8042f8c: 68bb ldr r3, [r7, #8] - 8042f8e: 80da strh r2, [r3, #6] - 8042f90: e023 b.n 8042fda + 8042ef2: 68fb ldr r3, [r7, #12] + 8042ef4: f9b3 201a ldrsh.w r2, [r3, #26] + 8042ef8: 68bb ldr r3, [r7, #8] + 8042efa: 80da strh r2, [r3, #6] + 8042efc: e023 b.n 8042f46 } else { knob_area->y1 -= (knob_size >> 1); - 8042f92: 68bb ldr r3, [r7, #8] - 8042f94: f9b3 3002 ldrsh.w r3, [r3, #2] - 8042f98: b29a uxth r2, r3 - 8042f9a: f9b7 3006 ldrsh.w r3, [r7, #6] - 8042f9e: 105b asrs r3, r3, #1 - 8042fa0: b21b sxth r3, r3 - 8042fa2: b29b uxth r3, r3 - 8042fa4: 1ad3 subs r3, r2, r3 - 8042fa6: b29b uxth r3, r3 - 8042fa8: b21a sxth r2, r3 - 8042faa: 68bb ldr r3, [r7, #8] - 8042fac: 805a strh r2, [r3, #2] + 8042efe: 68bb ldr r3, [r7, #8] + 8042f00: f9b3 3002 ldrsh.w r3, [r3, #2] + 8042f04: b29a uxth r2, r3 + 8042f06: f9b7 3006 ldrsh.w r3, [r7, #6] + 8042f0a: 105b asrs r3, r3, #1 + 8042f0c: b21b sxth r3, r3 + 8042f0e: b29b uxth r3, r3 + 8042f10: 1ad3 subs r3, r2, r3 + 8042f12: b29b uxth r3, r3 + 8042f14: b21a sxth r2, r3 + 8042f16: 68bb ldr r3, [r7, #8] + 8042f18: 805a strh r2, [r3, #2] knob_area->y2 = knob_area->y1 + knob_size - 1; - 8042fae: 68bb ldr r3, [r7, #8] - 8042fb0: f9b3 3002 ldrsh.w r3, [r3, #2] - 8042fb4: b29a uxth r2, r3 - 8042fb6: 88fb ldrh r3, [r7, #6] - 8042fb8: 4413 add r3, r2 - 8042fba: b29b uxth r3, r3 - 8042fbc: 3b01 subs r3, #1 - 8042fbe: b29b uxth r3, r3 - 8042fc0: b21a sxth r2, r3 - 8042fc2: 68bb ldr r3, [r7, #8] - 8042fc4: 80da strh r2, [r3, #6] + 8042f1a: 68bb ldr r3, [r7, #8] + 8042f1c: f9b3 3002 ldrsh.w r3, [r3, #2] + 8042f20: b29a uxth r2, r3 + 8042f22: 88fb ldrh r3, [r7, #6] + 8042f24: 4413 add r3, r2 + 8042f26: b29b uxth r3, r3 + 8042f28: 3b01 subs r3, #1 + 8042f2a: b29b uxth r3, r3 + 8042f2c: b21a sxth r2, r3 + 8042f2e: 68bb ldr r3, [r7, #8] + 8042f30: 80da strh r2, [r3, #6] knob_area->x1 = obj->coords.x1; - 8042fc6: 68fb ldr r3, [r7, #12] - 8042fc8: f9b3 2014 ldrsh.w r2, [r3, #20] - 8042fcc: 68bb ldr r3, [r7, #8] - 8042fce: 801a strh r2, [r3, #0] + 8042f32: 68fb ldr r3, [r7, #12] + 8042f34: f9b3 2014 ldrsh.w r2, [r3, #20] + 8042f38: 68bb ldr r3, [r7, #8] + 8042f3a: 801a strh r2, [r3, #0] knob_area->x2 = obj->coords.x2; - 8042fd0: 68fb ldr r3, [r7, #12] - 8042fd2: f9b3 2018 ldrsh.w r2, [r3, #24] - 8042fd6: 68bb ldr r3, [r7, #8] - 8042fd8: 809a strh r2, [r3, #4] + 8042f3c: 68fb ldr r3, [r7, #12] + 8042f3e: f9b3 2018 ldrsh.w r2, [r3, #24] + 8042f42: 68bb ldr r3, [r7, #8] + 8042f44: 809a strh r2, [r3, #4] } lv_coord_t knob_left = lv_obj_get_style_pad_left(obj, LV_PART_KNOB); - 8042fda: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8042fde: 68f8 ldr r0, [r7, #12] - 8042fe0: f7ff f8b3 bl 804214a - 8042fe4: 4603 mov r3, r0 - 8042fe6: 83fb strh r3, [r7, #30] + 8042f46: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8042f4a: 68f8 ldr r0, [r7, #12] + 8042f4c: f7ff f8b3 bl 80420b6 + 8042f50: 4603 mov r3, r0 + 8042f52: 83fb strh r3, [r7, #30] lv_coord_t knob_right = lv_obj_get_style_pad_right(obj, LV_PART_KNOB); - 8042fe8: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8042fec: 68f8 ldr r0, [r7, #12] - 8042fee: f7ff f8bf bl 8042170 - 8042ff2: 4603 mov r3, r0 - 8042ff4: 83bb strh r3, [r7, #28] + 8042f54: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8042f58: 68f8 ldr r0, [r7, #12] + 8042f5a: f7ff f8bf bl 80420dc + 8042f5e: 4603 mov r3, r0 + 8042f60: 83bb strh r3, [r7, #28] lv_coord_t knob_top = lv_obj_get_style_pad_top(obj, LV_PART_KNOB); - 8042ff6: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8042ffa: 68f8 ldr r0, [r7, #12] - 8042ffc: f7ff f87f bl 80420fe - 8043000: 4603 mov r3, r0 - 8043002: 837b strh r3, [r7, #26] + 8042f62: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8042f66: 68f8 ldr r0, [r7, #12] + 8042f68: f7ff f87f bl 804206a + 8042f6c: 4603 mov r3, r0 + 8042f6e: 837b strh r3, [r7, #26] lv_coord_t knob_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_KNOB); - 8043004: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8043008: 68f8 ldr r0, [r7, #12] - 804300a: f7ff f88b bl 8042124 - 804300e: 4603 mov r3, r0 - 8043010: 833b strh r3, [r7, #24] + 8042f70: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8042f74: 68f8 ldr r0, [r7, #12] + 8042f76: f7ff f88b bl 8042090 + 8042f7a: 4603 mov r3, r0 + 8042f7c: 833b strh r3, [r7, #24] lv_coord_t transf_w = lv_obj_get_style_transform_width(obj, LV_PART_KNOB); - 8043012: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8043016: 68f8 ldr r0, [r7, #12] - 8043018: f7ff f838 bl 804208c - 804301c: 4603 mov r3, r0 - 804301e: 82fb strh r3, [r7, #22] + 8042f7e: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8042f82: 68f8 ldr r0, [r7, #12] + 8042f84: f7ff f838 bl 8041ff8 + 8042f88: 4603 mov r3, r0 + 8042f8a: 82fb strh r3, [r7, #22] lv_coord_t transf_h = lv_obj_get_style_transform_height(obj, LV_PART_KNOB); - 8043020: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8043024: 68f8 ldr r0, [r7, #12] - 8043026: f7ff f844 bl 80420b2 - 804302a: 4603 mov r3, r0 - 804302c: 82bb strh r3, [r7, #20] + 8042f8c: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8042f90: 68f8 ldr r0, [r7, #12] + 8042f92: f7ff f844 bl 804201e + 8042f96: 4603 mov r3, r0 + 8042f98: 82bb strh r3, [r7, #20] /*Apply the paddings on the knob area*/ knob_area->x1 -= knob_left + transf_w; - 804302e: 68bb ldr r3, [r7, #8] - 8043030: f9b3 3000 ldrsh.w r3, [r3] - 8043034: b29a uxth r2, r3 - 8043036: 8bf9 ldrh r1, [r7, #30] - 8043038: 8afb ldrh r3, [r7, #22] - 804303a: 440b add r3, r1 - 804303c: b29b uxth r3, r3 - 804303e: 1ad3 subs r3, r2, r3 - 8043040: b29b uxth r3, r3 - 8043042: b21a sxth r2, r3 - 8043044: 68bb ldr r3, [r7, #8] - 8043046: 801a strh r2, [r3, #0] + 8042f9a: 68bb ldr r3, [r7, #8] + 8042f9c: f9b3 3000 ldrsh.w r3, [r3] + 8042fa0: b29a uxth r2, r3 + 8042fa2: 8bf9 ldrh r1, [r7, #30] + 8042fa4: 8afb ldrh r3, [r7, #22] + 8042fa6: 440b add r3, r1 + 8042fa8: b29b uxth r3, r3 + 8042faa: 1ad3 subs r3, r2, r3 + 8042fac: b29b uxth r3, r3 + 8042fae: b21a sxth r2, r3 + 8042fb0: 68bb ldr r3, [r7, #8] + 8042fb2: 801a strh r2, [r3, #0] knob_area->x2 += knob_right + transf_w; - 8043048: 68bb ldr r3, [r7, #8] - 804304a: f9b3 3004 ldrsh.w r3, [r3, #4] - 804304e: b29a uxth r2, r3 - 8043050: 8bb9 ldrh r1, [r7, #28] - 8043052: 8afb ldrh r3, [r7, #22] - 8043054: 440b add r3, r1 - 8043056: b29b uxth r3, r3 - 8043058: 4413 add r3, r2 - 804305a: b29b uxth r3, r3 - 804305c: b21a sxth r2, r3 - 804305e: 68bb ldr r3, [r7, #8] - 8043060: 809a strh r2, [r3, #4] + 8042fb4: 68bb ldr r3, [r7, #8] + 8042fb6: f9b3 3004 ldrsh.w r3, [r3, #4] + 8042fba: b29a uxth r2, r3 + 8042fbc: 8bb9 ldrh r1, [r7, #28] + 8042fbe: 8afb ldrh r3, [r7, #22] + 8042fc0: 440b add r3, r1 + 8042fc2: b29b uxth r3, r3 + 8042fc4: 4413 add r3, r2 + 8042fc6: b29b uxth r3, r3 + 8042fc8: b21a sxth r2, r3 + 8042fca: 68bb ldr r3, [r7, #8] + 8042fcc: 809a strh r2, [r3, #4] knob_area->y1 -= knob_top + transf_h; - 8043062: 68bb ldr r3, [r7, #8] - 8043064: f9b3 3002 ldrsh.w r3, [r3, #2] - 8043068: b29a uxth r2, r3 - 804306a: 8b79 ldrh r1, [r7, #26] - 804306c: 8abb ldrh r3, [r7, #20] - 804306e: 440b add r3, r1 - 8043070: b29b uxth r3, r3 - 8043072: 1ad3 subs r3, r2, r3 - 8043074: b29b uxth r3, r3 - 8043076: b21a sxth r2, r3 - 8043078: 68bb ldr r3, [r7, #8] - 804307a: 805a strh r2, [r3, #2] + 8042fce: 68bb ldr r3, [r7, #8] + 8042fd0: f9b3 3002 ldrsh.w r3, [r3, #2] + 8042fd4: b29a uxth r2, r3 + 8042fd6: 8b79 ldrh r1, [r7, #26] + 8042fd8: 8abb ldrh r3, [r7, #20] + 8042fda: 440b add r3, r1 + 8042fdc: b29b uxth r3, r3 + 8042fde: 1ad3 subs r3, r2, r3 + 8042fe0: b29b uxth r3, r3 + 8042fe2: b21a sxth r2, r3 + 8042fe4: 68bb ldr r3, [r7, #8] + 8042fe6: 805a strh r2, [r3, #2] knob_area->y2 += knob_bottom + transf_h; - 804307c: 68bb ldr r3, [r7, #8] - 804307e: f9b3 3006 ldrsh.w r3, [r3, #6] - 8043082: b29a uxth r2, r3 - 8043084: 8b39 ldrh r1, [r7, #24] - 8043086: 8abb ldrh r3, [r7, #20] - 8043088: 440b add r3, r1 - 804308a: b29b uxth r3, r3 - 804308c: 4413 add r3, r2 - 804308e: b29b uxth r3, r3 - 8043090: b21a sxth r2, r3 - 8043092: 68bb ldr r3, [r7, #8] - 8043094: 80da strh r2, [r3, #6] + 8042fe8: 68bb ldr r3, [r7, #8] + 8042fea: f9b3 3006 ldrsh.w r3, [r3, #6] + 8042fee: b29a uxth r2, r3 + 8042ff0: 8b39 ldrh r1, [r7, #24] + 8042ff2: 8abb ldrh r3, [r7, #20] + 8042ff4: 440b add r3, r1 + 8042ff6: b29b uxth r3, r3 + 8042ff8: 4413 add r3, r2 + 8042ffa: b29b uxth r3, r3 + 8042ffc: b21a sxth r2, r3 + 8042ffe: 68bb ldr r3, [r7, #8] + 8043000: 80da strh r2, [r3, #6] } - 8043096: bf00 nop - 8043098: 3720 adds r7, #32 - 804309a: 46bd mov sp, r7 - 804309c: bd80 pop {r7, pc} + 8043002: bf00 nop + 8043004: 3720 adds r7, #32 + 8043006: 46bd mov sp, r7 + 8043008: bd80 pop {r7, pc} -0804309e : +0804300a : { - 804309e: b480 push {r7} - 80430a0: b083 sub sp, #12 - 80430a2: af00 add r7, sp, #0 - 80430a4: 6078 str r0, [r7, #4] - 80430a6: 6039 str r1, [r7, #0] + 804300a: b480 push {r7} + 804300c: b083 sub sp, #12 + 804300e: af00 add r7, sp, #0 + 8043010: 6078 str r0, [r7, #4] + 8043012: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 80430a8: 683b ldr r3, [r7, #0] - 80430aa: f9b3 2000 ldrsh.w r2, [r3] - 80430ae: 687b ldr r3, [r7, #4] - 80430b0: 801a strh r2, [r3, #0] + 8043014: 683b ldr r3, [r7, #0] + 8043016: f9b3 2000 ldrsh.w r2, [r3] + 804301a: 687b ldr r3, [r7, #4] + 804301c: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 80430b2: 683b ldr r3, [r7, #0] - 80430b4: f9b3 2002 ldrsh.w r2, [r3, #2] - 80430b8: 687b ldr r3, [r7, #4] - 80430ba: 805a strh r2, [r3, #2] + 804301e: 683b ldr r3, [r7, #0] + 8043020: f9b3 2002 ldrsh.w r2, [r3, #2] + 8043024: 687b ldr r3, [r7, #4] + 8043026: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 80430bc: 683b ldr r3, [r7, #0] - 80430be: f9b3 2004 ldrsh.w r2, [r3, #4] - 80430c2: 687b ldr r3, [r7, #4] - 80430c4: 809a strh r2, [r3, #4] + 8043028: 683b ldr r3, [r7, #0] + 804302a: f9b3 2004 ldrsh.w r2, [r3, #4] + 804302e: 687b ldr r3, [r7, #4] + 8043030: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 80430c6: 683b ldr r3, [r7, #0] - 80430c8: f9b3 2006 ldrsh.w r2, [r3, #6] - 80430cc: 687b ldr r3, [r7, #4] - 80430ce: 80da strh r2, [r3, #6] + 8043032: 683b ldr r3, [r7, #0] + 8043034: f9b3 2006 ldrsh.w r2, [r3, #6] + 8043038: 687b ldr r3, [r7, #4] + 804303a: 80da strh r2, [r3, #6] } - 80430d0: bf00 nop - 80430d2: 370c adds r7, #12 - 80430d4: 46bd mov sp, r7 - 80430d6: bc80 pop {r7} - 80430d8: 4770 bx lr + 804303c: bf00 nop + 804303e: 370c adds r7, #12 + 8043040: 46bd mov sp, r7 + 8043042: bc80 pop {r7} + 8043044: 4770 bx lr -080430da : +08043046 : { - 80430da: b480 push {r7} - 80430dc: b083 sub sp, #12 - 80430de: af00 add r7, sp, #0 - 80430e0: 6078 str r0, [r7, #4] + 8043046: b480 push {r7} + 8043048: b083 sub sp, #12 + 804304a: af00 add r7, sp, #0 + 804304c: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 80430e2: 687b ldr r3, [r7, #4] - 80430e4: f9b3 3004 ldrsh.w r3, [r3, #4] - 80430e8: b29a uxth r2, r3 - 80430ea: 687b ldr r3, [r7, #4] - 80430ec: f9b3 3000 ldrsh.w r3, [r3] - 80430f0: b29b uxth r3, r3 - 80430f2: 1ad3 subs r3, r2, r3 - 80430f4: b29b uxth r3, r3 - 80430f6: 3301 adds r3, #1 - 80430f8: b29b uxth r3, r3 - 80430fa: b21b sxth r3, r3 + 804304e: 687b ldr r3, [r7, #4] + 8043050: f9b3 3004 ldrsh.w r3, [r3, #4] + 8043054: b29a uxth r2, r3 + 8043056: 687b ldr r3, [r7, #4] + 8043058: f9b3 3000 ldrsh.w r3, [r3] + 804305c: b29b uxth r3, r3 + 804305e: 1ad3 subs r3, r2, r3 + 8043060: b29b uxth r3, r3 + 8043062: 3301 adds r3, #1 + 8043064: b29b uxth r3, r3 + 8043066: b21b sxth r3, r3 } - 80430fc: 4618 mov r0, r3 - 80430fe: 370c adds r7, #12 - 8043100: 46bd mov sp, r7 - 8043102: bc80 pop {r7} - 8043104: 4770 bx lr + 8043068: 4618 mov r0, r3 + 804306a: 370c adds r7, #12 + 804306c: 46bd mov sp, r7 + 804306e: bc80 pop {r7} + 8043070: 4770 bx lr -08043106 : +08043072 : { - 8043106: b480 push {r7} - 8043108: b083 sub sp, #12 - 804310a: af00 add r7, sp, #0 - 804310c: 6078 str r0, [r7, #4] - 804310e: 6039 str r1, [r7, #0] + 8043072: b480 push {r7} + 8043074: b083 sub sp, #12 + 8043076: af00 add r7, sp, #0 + 8043078: 6078 str r0, [r7, #4] + 804307a: 6039 str r1, [r7, #0] a->var = var; - 8043110: 687b ldr r3, [r7, #4] - 8043112: 683a ldr r2, [r7, #0] - 8043114: 601a str r2, [r3, #0] + 804307c: 687b ldr r3, [r7, #4] + 804307e: 683a ldr r2, [r7, #0] + 8043080: 601a str r2, [r3, #0] } - 8043116: bf00 nop - 8043118: 370c adds r7, #12 - 804311a: 46bd mov sp, r7 - 804311c: bc80 pop {r7} - 804311e: 4770 bx lr + 8043082: bf00 nop + 8043084: 370c adds r7, #12 + 8043086: 46bd mov sp, r7 + 8043088: bc80 pop {r7} + 804308a: 4770 bx lr -08043120 : +0804308c : { - 8043120: b480 push {r7} - 8043122: b083 sub sp, #12 - 8043124: af00 add r7, sp, #0 - 8043126: 6078 str r0, [r7, #4] - 8043128: 6039 str r1, [r7, #0] + 804308c: b480 push {r7} + 804308e: b083 sub sp, #12 + 8043090: af00 add r7, sp, #0 + 8043092: 6078 str r0, [r7, #4] + 8043094: 6039 str r1, [r7, #0] a->exec_cb = exec_cb; - 804312a: 687b ldr r3, [r7, #4] - 804312c: 683a ldr r2, [r7, #0] - 804312e: 605a str r2, [r3, #4] + 8043096: 687b ldr r3, [r7, #4] + 8043098: 683a ldr r2, [r7, #0] + 804309a: 605a str r2, [r3, #4] } - 8043130: bf00 nop - 8043132: 370c adds r7, #12 - 8043134: 46bd mov sp, r7 - 8043136: bc80 pop {r7} - 8043138: 4770 bx lr + 804309c: bf00 nop + 804309e: 370c adds r7, #12 + 80430a0: 46bd mov sp, r7 + 80430a2: bc80 pop {r7} + 80430a4: 4770 bx lr -0804313a : +080430a6 : { - 804313a: b480 push {r7} - 804313c: b083 sub sp, #12 - 804313e: af00 add r7, sp, #0 - 8043140: 6078 str r0, [r7, #4] - 8043142: 6039 str r1, [r7, #0] + 80430a6: b480 push {r7} + 80430a8: b083 sub sp, #12 + 80430aa: af00 add r7, sp, #0 + 80430ac: 6078 str r0, [r7, #4] + 80430ae: 6039 str r1, [r7, #0] a->time = duration; - 8043144: 683a ldr r2, [r7, #0] - 8043146: 687b ldr r3, [r7, #4] - 8043148: 629a str r2, [r3, #40] ; 0x28 + 80430b0: 683a ldr r2, [r7, #0] + 80430b2: 687b ldr r3, [r7, #4] + 80430b4: 629a str r2, [r3, #40] ; 0x28 } - 804314a: bf00 nop - 804314c: 370c adds r7, #12 - 804314e: 46bd mov sp, r7 - 8043150: bc80 pop {r7} - 8043152: 4770 bx lr + 80430b6: bf00 nop + 80430b8: 370c adds r7, #12 + 80430ba: 46bd mov sp, r7 + 80430bc: bc80 pop {r7} + 80430be: 4770 bx lr -08043154 : +080430c0 : { - 8043154: b480 push {r7} - 8043156: b085 sub sp, #20 - 8043158: af00 add r7, sp, #0 - 804315a: 60f8 str r0, [r7, #12] - 804315c: 60b9 str r1, [r7, #8] - 804315e: 607a str r2, [r7, #4] + 80430c0: b480 push {r7} + 80430c2: b085 sub sp, #20 + 80430c4: af00 add r7, sp, #0 + 80430c6: 60f8 str r0, [r7, #12] + 80430c8: 60b9 str r1, [r7, #8] + 80430ca: 607a str r2, [r7, #4] a->start_value = start; - 8043160: 68fb ldr r3, [r7, #12] - 8043162: 68ba ldr r2, [r7, #8] - 8043164: 61da str r2, [r3, #28] + 80430cc: 68fb ldr r3, [r7, #12] + 80430ce: 68ba ldr r2, [r7, #8] + 80430d0: 61da str r2, [r3, #28] a->current_value = start; - 8043166: 68fb ldr r3, [r7, #12] - 8043168: 68ba ldr r2, [r7, #8] - 804316a: 621a str r2, [r3, #32] + 80430d2: 68fb ldr r3, [r7, #12] + 80430d4: 68ba ldr r2, [r7, #8] + 80430d6: 621a str r2, [r3, #32] a->end_value = end; - 804316c: 68fb ldr r3, [r7, #12] - 804316e: 687a ldr r2, [r7, #4] - 8043170: 625a str r2, [r3, #36] ; 0x24 + 80430d8: 68fb ldr r3, [r7, #12] + 80430da: 687a ldr r2, [r7, #4] + 80430dc: 625a str r2, [r3, #36] ; 0x24 } - 8043172: bf00 nop - 8043174: 3714 adds r7, #20 - 8043176: 46bd mov sp, r7 - 8043178: bc80 pop {r7} - 804317a: 4770 bx lr + 80430de: bf00 nop + 80430e0: 3714 adds r7, #20 + 80430e2: 46bd mov sp, r7 + 80430e4: bc80 pop {r7} + 80430e6: 4770 bx lr -0804317c : +080430e8 : { - 804317c: b480 push {r7} - 804317e: b083 sub sp, #12 - 8043180: af00 add r7, sp, #0 - 8043182: 6078 str r0, [r7, #4] - 8043184: 6039 str r1, [r7, #0] + 80430e8: b480 push {r7} + 80430ea: b083 sub sp, #12 + 80430ec: af00 add r7, sp, #0 + 80430ee: 6078 str r0, [r7, #4] + 80430f0: 6039 str r1, [r7, #0] a->ready_cb = ready_cb; - 8043186: 687b ldr r3, [r7, #4] - 8043188: 683a ldr r2, [r7, #0] - 804318a: 60da str r2, [r3, #12] + 80430f2: 687b ldr r3, [r7, #4] + 80430f4: 683a ldr r2, [r7, #0] + 80430f6: 60da str r2, [r3, #12] } - 804318c: bf00 nop - 804318e: 370c adds r7, #12 - 8043190: 46bd mov sp, r7 - 8043192: bc80 pop {r7} - 8043194: 4770 bx lr + 80430f8: bf00 nop + 80430fa: 370c adds r7, #12 + 80430fc: 46bd mov sp, r7 + 80430fe: bc80 pop {r7} + 8043100: 4770 bx lr -08043196 : +08043102 : { - 8043196: b580 push {r7, lr} - 8043198: b084 sub sp, #16 - 804319a: af00 add r7, sp, #0 - 804319c: 6078 str r0, [r7, #4] - 804319e: 6039 str r1, [r7, #0] + 8043102: b580 push {r7, lr} + 8043104: b084 sub sp, #16 + 8043106: af00 add r7, sp, #0 + 8043108: 6078 str r0, [r7, #4] + 804310a: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 80431a0: f641 0210 movw r2, #6160 ; 0x1810 - 80431a4: 6839 ldr r1, [r7, #0] - 80431a6: 6878 ldr r0, [r7, #4] - 80431a8: f7ca fe02 bl 800ddb0 - 80431ac: 4603 mov r3, r0 - 80431ae: 60fb str r3, [r7, #12] + 804310c: f641 0210 movw r2, #6160 ; 0x1810 + 8043110: 6839 ldr r1, [r7, #0] + 8043112: 6878 ldr r0, [r7, #4] + 8043114: f7ca fe16 bl 800dd44 + 8043118: 4603 mov r3, r0 + 804311a: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80431b0: 68fb ldr r3, [r7, #12] - 80431b2: b21b sxth r3, r3 + 804311c: 68fb ldr r3, [r7, #12] + 804311e: b21b sxth r3, r3 +} + 8043120: 4618 mov r0, r3 + 8043122: 3710 adds r7, #16 + 8043124: 46bd mov sp, r7 + 8043126: bd80 pop {r7, pc} + +08043128 : +{ + 8043128: b580 push {r7, lr} + 804312a: b084 sub sp, #16 + 804312c: af00 add r7, sp, #0 + 804312e: 6078 str r0, [r7, #4] + 8043130: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); + 8043132: f641 0211 movw r2, #6161 ; 0x1811 + 8043136: 6839 ldr r1, [r7, #0] + 8043138: 6878 ldr r0, [r7, #4] + 804313a: f7ca fe03 bl 800dd44 + 804313e: 4603 mov r3, r0 + 8043140: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 8043142: 68fb ldr r3, [r7, #12] + 8043144: b21b sxth r3, r3 +} + 8043146: 4618 mov r0, r3 + 8043148: 3710 adds r7, #16 + 804314a: 46bd mov sp, r7 + 804314c: bd80 pop {r7, pc} + +0804314e : +{ + 804314e: b580 push {r7, lr} + 8043150: b084 sub sp, #16 + 8043152: af00 add r7, sp, #0 + 8043154: 6078 str r0, [r7, #4] + 8043156: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); + 8043158: f641 0212 movw r2, #6162 ; 0x1812 + 804315c: 6839 ldr r1, [r7, #0] + 804315e: 6878 ldr r0, [r7, #4] + 8043160: f7ca fdf0 bl 800dd44 + 8043164: 4603 mov r3, r0 + 8043166: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 8043168: 68fb ldr r3, [r7, #12] + 804316a: b21b sxth r3, r3 +} + 804316c: 4618 mov r0, r3 + 804316e: 3710 adds r7, #16 + 8043170: 46bd mov sp, r7 + 8043172: bd80 pop {r7, pc} + +08043174 : +{ + 8043174: b580 push {r7, lr} + 8043176: b084 sub sp, #16 + 8043178: af00 add r7, sp, #0 + 804317a: 6078 str r0, [r7, #4] + 804317c: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); + 804317e: f641 0213 movw r2, #6163 ; 0x1813 + 8043182: 6839 ldr r1, [r7, #0] + 8043184: 6878 ldr r0, [r7, #4] + 8043186: f7ca fddd bl 800dd44 + 804318a: 4603 mov r3, r0 + 804318c: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 804318e: 68fb ldr r3, [r7, #12] + 8043190: b21b sxth r3, r3 +} + 8043192: 4618 mov r0, r3 + 8043194: 3710 adds r7, #16 + 8043196: 46bd mov sp, r7 + 8043198: bd80 pop {r7, pc} + +0804319a : +{ + 804319a: b580 push {r7, lr} + 804319c: b084 sub sp, #16 + 804319e: af00 add r7, sp, #0 + 80431a0: 6078 str r0, [r7, #4] + 80431a2: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ANIM_TIME); + 80431a4: 2265 movs r2, #101 ; 0x65 + 80431a6: 6839 ldr r1, [r7, #0] + 80431a8: 6878 ldr r0, [r7, #4] + 80431aa: f7ca fdcb bl 800dd44 + 80431ae: 4603 mov r3, r0 + 80431b0: 60fb str r3, [r7, #12] + return (uint32_t)v.num; + 80431b2: 68fb ldr r3, [r7, #12] } 80431b4: 4618 mov r0, r3 80431b6: 3710 adds r7, #16 80431b8: 46bd mov sp, r7 80431ba: bd80 pop {r7, pc} -080431bc : +080431bc : { 80431bc: b580 push {r7, lr} 80431be: b084 sub sp, #16 80431c0: af00 add r7, sp, #0 80431c2: 6078 str r0, [r7, #4] 80431c4: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); - 80431c6: f641 0211 movw r2, #6161 ; 0x1811 + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BASE_DIR); + 80431c6: f241 426a movw r2, #5226 ; 0x146a 80431ca: 6839 ldr r1, [r7, #0] 80431cc: 6878 ldr r0, [r7, #4] - 80431ce: f7ca fdef bl 800ddb0 + 80431ce: f7ca fdb9 bl 800dd44 80431d2: 4603 mov r3, r0 80431d4: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; + return (lv_base_dir_t)v.num; 80431d6: 68fb ldr r3, [r7, #12] - 80431d8: b21b sxth r3, r3 + 80431d8: b2db uxtb r3, r3 } 80431da: 4618 mov r0, r3 80431dc: 3710 adds r7, #16 80431de: 46bd mov sp, r7 80431e0: bd80 pop {r7, pc} -080431e2 : -{ - 80431e2: b580 push {r7, lr} - 80431e4: b084 sub sp, #16 - 80431e6: af00 add r7, sp, #0 - 80431e8: 6078 str r0, [r7, #4] - 80431ea: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 80431ec: f641 0212 movw r2, #6162 ; 0x1812 - 80431f0: 6839 ldr r1, [r7, #0] - 80431f2: 6878 ldr r0, [r7, #4] - 80431f4: f7ca fddc bl 800ddb0 - 80431f8: 4603 mov r3, r0 - 80431fa: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 80431fc: 68fb ldr r3, [r7, #12] - 80431fe: b21b sxth r3, r3 -} - 8043200: 4618 mov r0, r3 - 8043202: 3710 adds r7, #16 - 8043204: 46bd mov sp, r7 - 8043206: bd80 pop {r7, pc} - -08043208 : -{ - 8043208: b580 push {r7, lr} - 804320a: b084 sub sp, #16 - 804320c: af00 add r7, sp, #0 - 804320e: 6078 str r0, [r7, #4] - 8043210: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - 8043212: f641 0213 movw r2, #6163 ; 0x1813 - 8043216: 6839 ldr r1, [r7, #0] - 8043218: 6878 ldr r0, [r7, #4] - 804321a: f7ca fdc9 bl 800ddb0 - 804321e: 4603 mov r3, r0 - 8043220: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 8043222: 68fb ldr r3, [r7, #12] - 8043224: b21b sxth r3, r3 -} - 8043226: 4618 mov r0, r3 - 8043228: 3710 adds r7, #16 - 804322a: 46bd mov sp, r7 - 804322c: bd80 pop {r7, pc} - -0804322e : -{ - 804322e: b580 push {r7, lr} - 8043230: b084 sub sp, #16 - 8043232: af00 add r7, sp, #0 - 8043234: 6078 str r0, [r7, #4] - 8043236: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ANIM_TIME); - 8043238: 2265 movs r2, #101 ; 0x65 - 804323a: 6839 ldr r1, [r7, #0] - 804323c: 6878 ldr r0, [r7, #4] - 804323e: f7ca fdb7 bl 800ddb0 - 8043242: 4603 mov r3, r0 - 8043244: 60fb str r3, [r7, #12] - return (uint32_t)v.num; - 8043246: 68fb ldr r3, [r7, #12] -} - 8043248: 4618 mov r0, r3 - 804324a: 3710 adds r7, #16 - 804324c: 46bd mov sp, r7 - 804324e: bd80 pop {r7, pc} - -08043250 : -{ - 8043250: b580 push {r7, lr} - 8043252: b084 sub sp, #16 - 8043254: af00 add r7, sp, #0 - 8043256: 6078 str r0, [r7, #4] - 8043258: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BASE_DIR); - 804325a: f241 426a movw r2, #5226 ; 0x146a - 804325e: 6839 ldr r1, [r7, #0] - 8043260: 6878 ldr r0, [r7, #4] - 8043262: f7ca fda5 bl 800ddb0 - 8043266: 4603 mov r3, r0 - 8043268: 60fb str r3, [r7, #12] - return (lv_base_dir_t)v.num; - 804326a: 68fb ldr r3, [r7, #12] - 804326c: b2db uxtb r3, r3 -} - 804326e: 4618 mov r0, r3 - 8043270: 3710 adds r7, #16 - 8043272: 46bd mov sp, r7 - 8043274: bd80 pop {r7, pc} - -08043276 : +080431e2 : /********************** * STATIC FUNCTIONS **********************/ static void lv_switch_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 8043276: b580 push {r7, lr} - 8043278: b084 sub sp, #16 - 804327a: af00 add r7, sp, #0 - 804327c: 6078 str r0, [r7, #4] - 804327e: 6039 str r1, [r7, #0] + 80431e2: b580 push {r7, lr} + 80431e4: b084 sub sp, #16 + 80431e6: af00 add r7, sp, #0 + 80431e8: 6078 str r0, [r7, #4] + 80431ea: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_switch_t * sw = (lv_switch_t *)obj; - 8043280: 683b ldr r3, [r7, #0] - 8043282: 60fb str r3, [r7, #12] + 80431ec: 683b ldr r3, [r7, #0] + 80431ee: 60fb str r3, [r7, #12] sw->anim_state = LV_SWITCH_ANIM_STATE_INV; - 8043284: 68fb ldr r3, [r7, #12] - 8043286: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 804328a: 625a str r2, [r3, #36] ; 0x24 + 80431f0: 68fb ldr r3, [r7, #12] + 80431f2: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 80431f6: 625a str r2, [r3, #36] ; 0x24 lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); - 804328c: 2110 movs r1, #16 - 804328e: 6838 ldr r0, [r7, #0] - 8043290: f7c3 f9e6 bl 8006660 + 80431f8: 2110 movs r1, #16 + 80431fa: 6838 ldr r0, [r7, #0] + 80431fc: f7c3 f9fa bl 80065f4 lv_obj_add_flag(obj, LV_OBJ_FLAG_CHECKABLE); - 8043294: 2108 movs r1, #8 - 8043296: 6838 ldr r0, [r7, #0] - 8043298: f7c3 f98e bl 80065b8 + 8043200: 2108 movs r1, #8 + 8043202: 6838 ldr r0, [r7, #0] + 8043204: f7c3 f9a2 bl 800654c lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS); - 804329c: f44f 6180 mov.w r1, #1024 ; 0x400 - 80432a0: 6838 ldr r0, [r7, #0] - 80432a2: f7c3 f989 bl 80065b8 + 8043208: f44f 6180 mov.w r1, #1024 ; 0x400 + 804320c: 6838 ldr r0, [r7, #0] + 804320e: f7c3 f99d bl 800654c LV_TRACE_OBJ_CREATE("finished"); } - 80432a6: bf00 nop - 80432a8: 3710 adds r7, #16 - 80432aa: 46bd mov sp, r7 - 80432ac: bd80 pop {r7, pc} + 8043212: bf00 nop + 8043214: 3710 adds r7, #16 + 8043216: 46bd mov sp, r7 + 8043218: bd80 pop {r7, pc} -080432ae : +0804321a : static void lv_switch_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 80432ae: b580 push {r7, lr} - 80432b0: b084 sub sp, #16 - 80432b2: af00 add r7, sp, #0 - 80432b4: 6078 str r0, [r7, #4] - 80432b6: 6039 str r1, [r7, #0] + 804321a: b580 push {r7, lr} + 804321c: b084 sub sp, #16 + 804321e: af00 add r7, sp, #0 + 8043220: 6078 str r0, [r7, #4] + 8043222: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_switch_t * sw = (lv_switch_t *)obj; - 80432b8: 683b ldr r3, [r7, #0] - 80432ba: 60fb str r3, [r7, #12] + 8043224: 683b ldr r3, [r7, #0] + 8043226: 60fb str r3, [r7, #12] lv_anim_del(sw, NULL); - 80432bc: 2100 movs r1, #0 - 80432be: 68f8 ldr r0, [r7, #12] - 80432c0: f7ed fb64 bl 803098c + 8043228: 2100 movs r1, #0 + 804322a: 68f8 ldr r0, [r7, #12] + 804322c: f7ed fb64 bl 80308f8 } - 80432c4: bf00 nop - 80432c6: 3710 adds r7, #16 - 80432c8: 46bd mov sp, r7 - 80432ca: bd80 pop {r7, pc} + 8043230: bf00 nop + 8043232: 3710 adds r7, #16 + 8043234: 46bd mov sp, r7 + 8043236: bd80 pop {r7, pc} -080432cc : +08043238 : static void lv_switch_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 80432cc: b590 push {r4, r7, lr} - 80432ce: b089 sub sp, #36 ; 0x24 - 80432d0: af00 add r7, sp, #0 - 80432d2: 6078 str r0, [r7, #4] - 80432d4: 6039 str r1, [r7, #0] + 8043238: b590 push {r4, r7, lr} + 804323a: b089 sub sp, #36 ; 0x24 + 804323c: af00 add r7, sp, #0 + 804323e: 6078 str r0, [r7, #4] + 8043240: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res; /*Call the ancestor's event handler*/ res = lv_obj_event_base(MY_CLASS, e); - 80432d6: 6839 ldr r1, [r7, #0] - 80432d8: 4848 ldr r0, [pc, #288] ; (80433fc ) - 80432da: f7bf f913 bl 8002504 - 80432de: 4603 mov r3, r0 - 80432e0: 77fb strb r3, [r7, #31] + 8043242: 6839 ldr r1, [r7, #0] + 8043244: 4848 ldr r0, [pc, #288] ; (8043368 ) + 8043246: f7bf f927 bl 8002498 + 804324a: 4603 mov r3, r0 + 804324c: 77fb strb r3, [r7, #31] if(res != LV_RES_OK) return; - 80432e2: 7ffb ldrb r3, [r7, #31] - 80432e4: 2b01 cmp r3, #1 - 80432e6: f040 8084 bne.w 80433f2 + 804324e: 7ffb ldrb r3, [r7, #31] + 8043250: 2b01 cmp r3, #1 + 8043252: f040 8084 bne.w 804335e lv_event_code_t code = lv_event_get_code(e); - 80432ea: 6838 ldr r0, [r7, #0] - 80432ec: f7bf f95e bl 80025ac - 80432f0: 4603 mov r3, r0 - 80432f2: 77bb strb r3, [r7, #30] + 8043256: 6838 ldr r0, [r7, #0] + 8043258: f7bf f972 bl 8002540 + 804325c: 4603 mov r3, r0 + 804325e: 77bb strb r3, [r7, #30] lv_obj_t * obj = lv_event_get_target(e); - 80432f4: 6838 ldr r0, [r7, #0] - 80432f6: f7bf f943 bl 8002580 - 80432fa: 61b8 str r0, [r7, #24] + 8043260: 6838 ldr r0, [r7, #0] + 8043262: f7bf f957 bl 8002514 + 8043266: 61b8 str r0, [r7, #24] if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) { - 80432fc: 7fbb ldrb r3, [r7, #30] - 80432fe: 2b13 cmp r3, #19 - 8043300: d166 bne.n 80433d0 + 8043268: 7fbb ldrb r3, [r7, #30] + 804326a: 2b13 cmp r3, #19 + 804326c: d166 bne.n 804333c lv_coord_t knob_left = lv_obj_get_style_pad_left(obj, LV_PART_KNOB); - 8043302: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8043306: 69b8 ldr r0, [r7, #24] - 8043308: f7ff ff6b bl 80431e2 - 804330c: 4603 mov r3, r0 - 804330e: 82fb strh r3, [r7, #22] + 804326e: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8043272: 69b8 ldr r0, [r7, #24] + 8043274: f7ff ff6b bl 804314e + 8043278: 4603 mov r3, r0 + 804327a: 82fb strh r3, [r7, #22] lv_coord_t knob_right = lv_obj_get_style_pad_right(obj, LV_PART_KNOB); - 8043310: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8043314: 69b8 ldr r0, [r7, #24] - 8043316: f7ff ff77 bl 8043208 - 804331a: 4603 mov r3, r0 - 804331c: 82bb strh r3, [r7, #20] + 804327c: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8043280: 69b8 ldr r0, [r7, #24] + 8043282: f7ff ff77 bl 8043174 + 8043286: 4603 mov r3, r0 + 8043288: 82bb strh r3, [r7, #20] lv_coord_t knob_top = lv_obj_get_style_pad_top(obj, LV_PART_KNOB); - 804331e: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8043322: 69b8 ldr r0, [r7, #24] - 8043324: f7ff ff37 bl 8043196 - 8043328: 4603 mov r3, r0 - 804332a: 827b strh r3, [r7, #18] + 804328a: f44f 3140 mov.w r1, #196608 ; 0x30000 + 804328e: 69b8 ldr r0, [r7, #24] + 8043290: f7ff ff37 bl 8043102 + 8043294: 4603 mov r3, r0 + 8043296: 827b strh r3, [r7, #18] lv_coord_t knob_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_KNOB); - 804332c: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8043330: 69b8 ldr r0, [r7, #24] - 8043332: f7ff ff43 bl 80431bc - 8043336: 4603 mov r3, r0 - 8043338: 823b strh r3, [r7, #16] + 8043298: f44f 3140 mov.w r1, #196608 ; 0x30000 + 804329c: 69b8 ldr r0, [r7, #24] + 804329e: f7ff ff43 bl 8043128 + 80432a2: 4603 mov r3, r0 + 80432a4: 823b strh r3, [r7, #16] /*The smaller size is the knob diameter*/ lv_coord_t knob_size = LV_MAX4(knob_left, knob_right, knob_bottom, knob_top); - 804333a: f9b7 2012 ldrsh.w r2, [r7, #18] - 804333e: f9b7 3010 ldrsh.w r3, [r7, #16] - 8043342: 4293 cmp r3, r2 - 8043344: bfb8 it lt - 8043346: 4613 movlt r3, r2 - 8043348: b21a sxth r2, r3 - 804334a: f9b7 1014 ldrsh.w r1, [r7, #20] - 804334e: f9b7 3016 ldrsh.w r3, [r7, #22] - 8043352: 428b cmp r3, r1 - 8043354: bfb8 it lt - 8043356: 460b movlt r3, r1 - 8043358: b21b sxth r3, r3 - 804335a: 4293 cmp r3, r2 - 804335c: bfb8 it lt - 804335e: 4613 movlt r3, r2 - 8043360: 81fb strh r3, [r7, #14] + 80432a6: f9b7 2012 ldrsh.w r2, [r7, #18] + 80432aa: f9b7 3010 ldrsh.w r3, [r7, #16] + 80432ae: 4293 cmp r3, r2 + 80432b0: bfb8 it lt + 80432b2: 4613 movlt r3, r2 + 80432b4: b21a sxth r2, r3 + 80432b6: f9b7 1014 ldrsh.w r1, [r7, #20] + 80432ba: f9b7 3016 ldrsh.w r3, [r7, #22] + 80432be: 428b cmp r3, r1 + 80432c0: bfb8 it lt + 80432c2: 460b movlt r3, r1 + 80432c4: b21b sxth r3, r3 + 80432c6: 4293 cmp r3, r2 + 80432c8: bfb8 it lt + 80432ca: 4613 movlt r3, r2 + 80432cc: 81fb strh r3, [r7, #14] knob_size += _LV_SWITCH_KNOB_EXT_AREA_CORRECTION; - 8043362: 89fb ldrh r3, [r7, #14] - 8043364: 3302 adds r3, #2 - 8043366: b29b uxth r3, r3 - 8043368: 81fb strh r3, [r7, #14] + 80432ce: 89fb ldrh r3, [r7, #14] + 80432d0: 3302 adds r3, #2 + 80432d2: b29b uxth r3, r3 + 80432d4: 81fb strh r3, [r7, #14] knob_size += lv_obj_calculate_ext_draw_size(obj, LV_PART_KNOB); - 804336a: f44f 3140 mov.w r1, #196608 ; 0x30000 - 804336e: 69b8 ldr r0, [r7, #24] - 8043370: f7c5 fce0 bl 8008d34 - 8043374: 4603 mov r3, r0 - 8043376: b29a uxth r2, r3 - 8043378: 89fb ldrh r3, [r7, #14] - 804337a: 4413 add r3, r2 - 804337c: b29b uxth r3, r3 - 804337e: 81fb strh r3, [r7, #14] + 80432d6: f44f 3140 mov.w r1, #196608 ; 0x30000 + 80432da: 69b8 ldr r0, [r7, #24] + 80432dc: f7c5 fcf4 bl 8008cc8 + 80432e0: 4603 mov r3, r0 + 80432e2: b29a uxth r2, r3 + 80432e4: 89fb ldrh r3, [r7, #14] + 80432e6: 4413 add r3, r2 + 80432e8: b29b uxth r3, r3 + 80432ea: 81fb strh r3, [r7, #14] lv_coord_t * s = lv_event_get_param(e); - 8043380: 6838 ldr r0, [r7, #0] - 8043382: f7bf f921 bl 80025c8 - 8043386: 60b8 str r0, [r7, #8] + 80432ec: 6838 ldr r0, [r7, #0] + 80432ee: f7bf f935 bl 800255c + 80432f2: 60b8 str r0, [r7, #8] *s = LV_MAX(*s, knob_size); - 8043388: 68bb ldr r3, [r7, #8] - 804338a: f9b3 3000 ldrsh.w r3, [r3] - 804338e: f9b7 200e ldrsh.w r2, [r7, #14] - 8043392: 4293 cmp r3, r2 - 8043394: bfb8 it lt - 8043396: 4613 movlt r3, r2 - 8043398: b21a sxth r2, r3 - 804339a: 68bb ldr r3, [r7, #8] - 804339c: 801a strh r2, [r3, #0] + 80432f4: 68bb ldr r3, [r7, #8] + 80432f6: f9b3 3000 ldrsh.w r3, [r3] + 80432fa: f9b7 200e ldrsh.w r2, [r7, #14] + 80432fe: 4293 cmp r3, r2 + 8043300: bfb8 it lt + 8043302: 4613 movlt r3, r2 + 8043304: b21a sxth r2, r3 + 8043306: 68bb ldr r3, [r7, #8] + 8043308: 801a strh r2, [r3, #0] *s = LV_MAX(*s, lv_obj_calculate_ext_draw_size(obj, LV_PART_INDICATOR)); - 804339e: 68bb ldr r3, [r7, #8] - 80433a0: f9b3 4000 ldrsh.w r4, [r3] - 80433a4: f44f 3100 mov.w r1, #131072 ; 0x20000 - 80433a8: 69b8 ldr r0, [r7, #24] - 80433aa: f7c5 fcc3 bl 8008d34 - 80433ae: 4603 mov r3, r0 - 80433b0: 429c cmp r4, r3 - 80433b2: dd03 ble.n 80433bc - 80433b4: 68bb ldr r3, [r7, #8] - 80433b6: f9b3 2000 ldrsh.w r2, [r3] - 80433ba: e006 b.n 80433ca - 80433bc: f44f 3100 mov.w r1, #131072 ; 0x20000 - 80433c0: 69b8 ldr r0, [r7, #24] - 80433c2: f7c5 fcb7 bl 8008d34 - 80433c6: 4603 mov r3, r0 - 80433c8: 461a mov r2, r3 - 80433ca: 68bb ldr r3, [r7, #8] - 80433cc: 801a strh r2, [r3, #0] - 80433ce: e011 b.n 80433f4 + 804330a: 68bb ldr r3, [r7, #8] + 804330c: f9b3 4000 ldrsh.w r4, [r3] + 8043310: f44f 3100 mov.w r1, #131072 ; 0x20000 + 8043314: 69b8 ldr r0, [r7, #24] + 8043316: f7c5 fcd7 bl 8008cc8 + 804331a: 4603 mov r3, r0 + 804331c: 429c cmp r4, r3 + 804331e: dd03 ble.n 8043328 + 8043320: 68bb ldr r3, [r7, #8] + 8043322: f9b3 2000 ldrsh.w r2, [r3] + 8043326: e006 b.n 8043336 + 8043328: f44f 3100 mov.w r1, #131072 ; 0x20000 + 804332c: 69b8 ldr r0, [r7, #24] + 804332e: f7c5 fccb bl 8008cc8 + 8043332: 4603 mov r3, r0 + 8043334: 461a mov r2, r3 + 8043336: 68bb ldr r3, [r7, #8] + 8043338: 801a strh r2, [r3, #0] + 804333a: e011 b.n 8043360 } else if(code == LV_EVENT_VALUE_CHANGED) { - 80433d0: 7fbb ldrb r3, [r7, #30] - 80433d2: 2b1c cmp r3, #28 - 80433d4: d106 bne.n 80433e4 + 804333c: 7fbb ldrb r3, [r7, #30] + 804333e: 2b1c cmp r3, #28 + 8043340: d106 bne.n 8043350 lv_switch_trigger_anim(obj); - 80433d6: 69b8 ldr r0, [r7, #24] - 80433d8: f000 f98c bl 80436f4 + 8043342: 69b8 ldr r0, [r7, #24] + 8043344: f000 f98c bl 8043660 lv_obj_invalidate(obj); - 80433dc: 69b8 ldr r0, [r7, #24] - 80433de: f7c7 fb68 bl 800aab2 - 80433e2: e007 b.n 80433f4 + 8043348: 69b8 ldr r0, [r7, #24] + 804334a: f7c7 fb7c bl 800aa46 + 804334e: e007 b.n 8043360 } else if(code == LV_EVENT_DRAW_MAIN) { - 80433e4: 7fbb ldrb r3, [r7, #30] - 80433e6: 2b15 cmp r3, #21 - 80433e8: d104 bne.n 80433f4 + 8043350: 7fbb ldrb r3, [r7, #30] + 8043352: 2b15 cmp r3, #21 + 8043354: d104 bne.n 8043360 draw_main(e); - 80433ea: 6838 ldr r0, [r7, #0] - 80433ec: f000 f808 bl 8043400 - 80433f0: e000 b.n 80433f4 + 8043356: 6838 ldr r0, [r7, #0] + 8043358: f000 f808 bl 804336c + 804335c: e000 b.n 8043360 if(res != LV_RES_OK) return; - 80433f2: bf00 nop + 804335e: bf00 nop } } - 80433f4: 3724 adds r7, #36 ; 0x24 - 80433f6: 46bd mov sp, r7 - 80433f8: bd90 pop {r4, r7, pc} - 80433fa: bf00 nop - 80433fc: 08070b18 .word 0x08070b18 + 8043360: 3724 adds r7, #36 ; 0x24 + 8043362: 46bd mov sp, r7 + 8043364: bd90 pop {r4, r7, pc} + 8043366: bf00 nop + 8043368: 08070a70 .word 0x08070a70 -08043400 : +0804336c : static void draw_main(lv_event_t * e) { - 8043400: b580 push {r7, lr} - 8043402: b0ac sub sp, #176 ; 0xb0 - 8043404: af00 add r7, sp, #0 - 8043406: 6078 str r0, [r7, #4] + 804336c: b580 push {r7, lr} + 804336e: b0ac sub sp, #176 ; 0xb0 + 8043370: af00 add r7, sp, #0 + 8043372: 6078 str r0, [r7, #4] lv_obj_t * obj = lv_event_get_target(e); - 8043408: 6878 ldr r0, [r7, #4] - 804340a: f7bf f8b9 bl 8002580 - 804340e: f8c7 00a8 str.w r0, [r7, #168] ; 0xa8 + 8043374: 6878 ldr r0, [r7, #4] + 8043376: f7bf f8cd bl 8002514 + 804337a: f8c7 00a8 str.w r0, [r7, #168] ; 0xa8 lv_switch_t * sw = (lv_switch_t *)obj; - 8043412: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 - 8043416: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + 804337e: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 + 8043382: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 804341a: 6878 ldr r0, [r7, #4] - 804341c: f7bf f9c6 bl 80027ac - 8043420: f8c7 00a0 str.w r0, [r7, #160] ; 0xa0 + 8043386: 6878 ldr r0, [r7, #4] + 8043388: f7bf f9da bl 8002740 + 804338c: f8c7 00a0 str.w r0, [r7, #160] ; 0xa0 /*Calculate the indicator area*/ lv_coord_t bg_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 8043424: 2100 movs r1, #0 - 8043426: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 - 804342a: f7ff feda bl 80431e2 - 804342e: 4603 mov r3, r0 - 8043430: f8a7 309e strh.w r3, [r7, #158] ; 0x9e + 8043390: 2100 movs r1, #0 + 8043392: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 + 8043396: f7ff feda bl 804314e + 804339a: 4603 mov r3, r0 + 804339c: f8a7 309e strh.w r3, [r7, #158] ; 0x9e lv_coord_t bg_right = lv_obj_get_style_pad_right(obj, LV_PART_MAIN); - 8043434: 2100 movs r1, #0 - 8043436: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 - 804343a: f7ff fee5 bl 8043208 - 804343e: 4603 mov r3, r0 - 8043440: f8a7 309c strh.w r3, [r7, #156] ; 0x9c + 80433a0: 2100 movs r1, #0 + 80433a2: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 + 80433a6: f7ff fee5 bl 8043174 + 80433aa: 4603 mov r3, r0 + 80433ac: f8a7 309c strh.w r3, [r7, #156] ; 0x9c lv_coord_t bg_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 8043444: 2100 movs r1, #0 - 8043446: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 - 804344a: f7ff fea4 bl 8043196 - 804344e: 4603 mov r3, r0 - 8043450: f8a7 309a strh.w r3, [r7, #154] ; 0x9a + 80433b0: 2100 movs r1, #0 + 80433b2: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 + 80433b6: f7ff fea4 bl 8043102 + 80433ba: 4603 mov r3, r0 + 80433bc: f8a7 309a strh.w r3, [r7, #154] ; 0x9a lv_coord_t bg_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN); - 8043454: 2100 movs r1, #0 - 8043456: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 - 804345a: f7ff feaf bl 80431bc - 804345e: 4603 mov r3, r0 - 8043460: f8a7 3098 strh.w r3, [r7, #152] ; 0x98 + 80433c0: 2100 movs r1, #0 + 80433c2: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 + 80433c6: f7ff feaf bl 8043128 + 80433ca: 4603 mov r3, r0 + 80433cc: f8a7 3098 strh.w r3, [r7, #152] ; 0x98 /*Draw the indicator*/ /*Respect the background's padding*/ lv_area_t indic_area; lv_area_copy(&indic_area, &obj->coords); - 8043464: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 - 8043468: f103 0214 add.w r2, r3, #20 - 804346c: f107 0380 add.w r3, r7, #128 ; 0x80 - 8043470: 4611 mov r1, r2 - 8043472: 4618 mov r0, r3 - 8043474: f7ff fe13 bl 804309e + 80433d0: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 + 80433d4: f103 0214 add.w r2, r3, #20 + 80433d8: f107 0380 add.w r3, r7, #128 ; 0x80 + 80433dc: 4611 mov r1, r2 + 80433de: 4618 mov r0, r3 + 80433e0: f7ff fe13 bl 804300a indic_area.x1 += bg_left; - 8043478: f9b7 3080 ldrsh.w r3, [r7, #128] ; 0x80 - 804347c: b29a uxth r2, r3 - 804347e: f8b7 309e ldrh.w r3, [r7, #158] ; 0x9e - 8043482: 4413 add r3, r2 - 8043484: b29b uxth r3, r3 - 8043486: b21b sxth r3, r3 - 8043488: f8a7 3080 strh.w r3, [r7, #128] ; 0x80 + 80433e4: f9b7 3080 ldrsh.w r3, [r7, #128] ; 0x80 + 80433e8: b29a uxth r2, r3 + 80433ea: f8b7 309e ldrh.w r3, [r7, #158] ; 0x9e + 80433ee: 4413 add r3, r2 + 80433f0: b29b uxth r3, r3 + 80433f2: b21b sxth r3, r3 + 80433f4: f8a7 3080 strh.w r3, [r7, #128] ; 0x80 indic_area.x2 -= bg_right; - 804348c: f9b7 3084 ldrsh.w r3, [r7, #132] ; 0x84 - 8043490: b29a uxth r2, r3 - 8043492: f8b7 309c ldrh.w r3, [r7, #156] ; 0x9c - 8043496: 1ad3 subs r3, r2, r3 - 8043498: b29b uxth r3, r3 - 804349a: b21b sxth r3, r3 - 804349c: f8a7 3084 strh.w r3, [r7, #132] ; 0x84 + 80433f8: f9b7 3084 ldrsh.w r3, [r7, #132] ; 0x84 + 80433fc: b29a uxth r2, r3 + 80433fe: f8b7 309c ldrh.w r3, [r7, #156] ; 0x9c + 8043402: 1ad3 subs r3, r2, r3 + 8043404: b29b uxth r3, r3 + 8043406: b21b sxth r3, r3 + 8043408: f8a7 3084 strh.w r3, [r7, #132] ; 0x84 indic_area.y1 += bg_top; - 80434a0: f9b7 3082 ldrsh.w r3, [r7, #130] ; 0x82 - 80434a4: b29a uxth r2, r3 - 80434a6: f8b7 309a ldrh.w r3, [r7, #154] ; 0x9a - 80434aa: 4413 add r3, r2 - 80434ac: b29b uxth r3, r3 - 80434ae: b21b sxth r3, r3 - 80434b0: f8a7 3082 strh.w r3, [r7, #130] ; 0x82 + 804340c: f9b7 3082 ldrsh.w r3, [r7, #130] ; 0x82 + 8043410: b29a uxth r2, r3 + 8043412: f8b7 309a ldrh.w r3, [r7, #154] ; 0x9a + 8043416: 4413 add r3, r2 + 8043418: b29b uxth r3, r3 + 804341a: b21b sxth r3, r3 + 804341c: f8a7 3082 strh.w r3, [r7, #130] ; 0x82 indic_area.y2 -= bg_bottom; - 80434b4: f9b7 3086 ldrsh.w r3, [r7, #134] ; 0x86 - 80434b8: b29a uxth r2, r3 - 80434ba: f8b7 3098 ldrh.w r3, [r7, #152] ; 0x98 - 80434be: 1ad3 subs r3, r2, r3 - 80434c0: b29b uxth r3, r3 - 80434c2: b21b sxth r3, r3 - 80434c4: f8a7 3086 strh.w r3, [r7, #134] ; 0x86 + 8043420: f9b7 3086 ldrsh.w r3, [r7, #134] ; 0x86 + 8043424: b29a uxth r2, r3 + 8043426: f8b7 3098 ldrh.w r3, [r7, #152] ; 0x98 + 804342a: 1ad3 subs r3, r2, r3 + 804342c: b29b uxth r3, r3 + 804342e: b21b sxth r3, r3 + 8043430: f8a7 3086 strh.w r3, [r7, #134] ; 0x86 lv_draw_rect_dsc_t draw_indic_dsc; lv_draw_rect_dsc_init(&draw_indic_dsc); - 80434c8: f107 0348 add.w r3, r7, #72 ; 0x48 - 80434cc: 4618 mov r0, r3 - 80434ce: f7d2 f991 bl 80157f4 + 8043434: f107 0348 add.w r3, r7, #72 ; 0x48 + 8043438: 4618 mov r0, r3 + 804343a: f7d2 f991 bl 8015760 lv_obj_init_draw_rect_dsc(obj, LV_PART_INDICATOR, &draw_indic_dsc); - 80434d2: f107 0348 add.w r3, r7, #72 ; 0x48 - 80434d6: 461a mov r2, r3 - 80434d8: f44f 3100 mov.w r1, #131072 ; 0x20000 - 80434dc: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 - 80434e0: f7c5 f871 bl 80085c6 + 804343e: f107 0348 add.w r3, r7, #72 ; 0x48 + 8043442: 461a mov r2, r3 + 8043444: f44f 3100 mov.w r1, #131072 ; 0x20000 + 8043448: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 + 804344c: f7c5 f885 bl 800855a lv_draw_rect(draw_ctx, &draw_indic_dsc, &indic_area); - 80434e4: f107 0280 add.w r2, r7, #128 ; 0x80 - 80434e8: f107 0348 add.w r3, r7, #72 ; 0x48 - 80434ec: 4619 mov r1, r3 - 80434ee: f8d7 00a0 ldr.w r0, [r7, #160] ; 0xa0 - 80434f2: f7d2 f9c1 bl 8015878 + 8043450: f107 0280 add.w r2, r7, #128 ; 0x80 + 8043454: f107 0348 add.w r3, r7, #72 ; 0x48 + 8043458: 4619 mov r1, r3 + 804345a: f8d7 00a0 ldr.w r0, [r7, #160] ; 0xa0 + 804345e: f7d2 f9c1 bl 80157e4 /*Draw the knob*/ lv_coord_t anim_value_x = 0; - 80434f6: 2300 movs r3, #0 - 80434f8: f8a7 30ae strh.w r3, [r7, #174] ; 0xae + 8043462: 2300 movs r3, #0 + 8043464: f8a7 30ae strh.w r3, [r7, #174] ; 0xae lv_coord_t knob_size = lv_obj_get_height(obj); - 80434fc: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 - 8043500: f7c6 fe30 bl 800a164 - 8043504: 4603 mov r3, r0 - 8043506: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 + 8043468: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 + 804346c: f7c6 fe44 bl 800a0f8 + 8043470: 4603 mov r3, r0 + 8043472: f8a7 3096 strh.w r3, [r7, #150] ; 0x96 lv_coord_t anim_length = lv_area_get_width(&obj->coords) - knob_size; - 804350a: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 - 804350e: 3314 adds r3, #20 - 8043510: 4618 mov r0, r3 - 8043512: f7ff fde2 bl 80430da - 8043516: 4603 mov r3, r0 - 8043518: b29a uxth r2, r3 - 804351a: f8b7 3096 ldrh.w r3, [r7, #150] ; 0x96 - 804351e: 1ad3 subs r3, r2, r3 - 8043520: b29b uxth r3, r3 - 8043522: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 + 8043476: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 + 804347a: 3314 adds r3, #20 + 804347c: 4618 mov r0, r3 + 804347e: f7ff fde2 bl 8043046 + 8043482: 4603 mov r3, r0 + 8043484: b29a uxth r2, r3 + 8043486: f8b7 3096 ldrh.w r3, [r7, #150] ; 0x96 + 804348a: 1ad3 subs r3, r2, r3 + 804348c: b29b uxth r3, r3 + 804348e: f8a7 3094 strh.w r3, [r7, #148] ; 0x94 if(LV_SWITCH_IS_ANIMATING(sw)) { - 8043526: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 - 804352a: 6a5b ldr r3, [r3, #36] ; 0x24 - 804352c: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 8043530: d00d beq.n 804354e + 8043492: f8d7 30a4 ldr.w r3, [r7, #164] ; 0xa4 + 8043496: 6a5b ldr r3, [r3, #36] ; 0x24 + 8043498: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 804349c: d00d beq.n 80434ba /* Use the animation's coordinate */ anim_value_x = (anim_length * sw->anim_state) / LV_SWITCH_ANIM_STATE_END; - 8043532: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 - 8043536: f8d7 20a4 ldr.w r2, [r7, #164] ; 0xa4 - 804353a: 6a52 ldr r2, [r2, #36] ; 0x24 - 804353c: fb02 f303 mul.w r3, r2, r3 - 8043540: 2b00 cmp r3, #0 - 8043542: da00 bge.n 8043546 - 8043544: 33ff adds r3, #255 ; 0xff - 8043546: 121b asrs r3, r3, #8 - 8043548: f8a7 30ae strh.w r3, [r7, #174] ; 0xae - 804354c: e016 b.n 804357c + 804349e: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 + 80434a2: f8d7 20a4 ldr.w r2, [r7, #164] ; 0xa4 + 80434a6: 6a52 ldr r2, [r2, #36] ; 0x24 + 80434a8: fb02 f303 mul.w r3, r2, r3 + 80434ac: 2b00 cmp r3, #0 + 80434ae: da00 bge.n 80434b2 + 80434b0: 33ff adds r3, #255 ; 0xff + 80434b2: 121b asrs r3, r3, #8 + 80434b4: f8a7 30ae strh.w r3, [r7, #174] ; 0xae + 80434b8: e016 b.n 80434e8 } else { /* Use LV_STATE_CHECKED to decide the coordinate */ bool chk = lv_obj_get_state(obj) & LV_STATE_CHECKED; - 804354e: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 - 8043552: f7c3 f93d bl 80067d0 - 8043556: 4603 mov r3, r0 - 8043558: f003 0301 and.w r3, r3, #1 - 804355c: 2b00 cmp r3, #0 - 804355e: bf14 ite ne - 8043560: 2301 movne r3, #1 - 8043562: 2300 moveq r3, #0 - 8043564: f887 3093 strb.w r3, [r7, #147] ; 0x93 + 80434ba: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 + 80434be: f7c3 f951 bl 8006764 + 80434c2: 4603 mov r3, r0 + 80434c4: f003 0301 and.w r3, r3, #1 + 80434c8: 2b00 cmp r3, #0 + 80434ca: bf14 ite ne + 80434cc: 2301 movne r3, #1 + 80434ce: 2300 moveq r3, #0 + 80434d0: f887 3093 strb.w r3, [r7, #147] ; 0x93 anim_value_x = chk ? anim_length : 0; - 8043568: f897 3093 ldrb.w r3, [r7, #147] ; 0x93 - 804356c: 2b00 cmp r3, #0 - 804356e: d002 beq.n 8043576 - 8043570: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 - 8043574: e000 b.n 8043578 - 8043576: 2300 movs r3, #0 - 8043578: f8a7 30ae strh.w r3, [r7, #174] ; 0xae + 80434d4: f897 3093 ldrb.w r3, [r7, #147] ; 0x93 + 80434d8: 2b00 cmp r3, #0 + 80434da: d002 beq.n 80434e2 + 80434dc: f9b7 3094 ldrsh.w r3, [r7, #148] ; 0x94 + 80434e0: e000 b.n 80434e4 + 80434e2: 2300 movs r3, #0 + 80434e4: f8a7 30ae strh.w r3, [r7, #174] ; 0xae } if(LV_BASE_DIR_RTL == lv_obj_get_style_base_dir(obj, LV_PART_MAIN)) { - 804357c: 2100 movs r1, #0 - 804357e: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 - 8043582: f7ff fe65 bl 8043250 - 8043586: 4603 mov r3, r0 - 8043588: 2b01 cmp r3, #1 - 804358a: d107 bne.n 804359c + 80434e8: 2100 movs r1, #0 + 80434ea: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 + 80434ee: f7ff fe65 bl 80431bc + 80434f2: 4603 mov r3, r0 + 80434f4: 2b01 cmp r3, #1 + 80434f6: d107 bne.n 8043508 anim_value_x = anim_length - anim_value_x; - 804358c: f8b7 2094 ldrh.w r2, [r7, #148] ; 0x94 - 8043590: f8b7 30ae ldrh.w r3, [r7, #174] ; 0xae - 8043594: 1ad3 subs r3, r2, r3 - 8043596: b29b uxth r3, r3 - 8043598: f8a7 30ae strh.w r3, [r7, #174] ; 0xae + 80434f8: f8b7 2094 ldrh.w r2, [r7, #148] ; 0x94 + 80434fc: f8b7 30ae ldrh.w r3, [r7, #174] ; 0xae + 8043500: 1ad3 subs r3, r2, r3 + 8043502: b29b uxth r3, r3 + 8043504: f8a7 30ae strh.w r3, [r7, #174] ; 0xae } lv_area_t knob_area; knob_area.x1 = obj->coords.x1 + anim_value_x; - 804359c: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 - 80435a0: f9b3 3014 ldrsh.w r3, [r3, #20] - 80435a4: b29a uxth r2, r3 - 80435a6: f8b7 30ae ldrh.w r3, [r7, #174] ; 0xae - 80435aa: 4413 add r3, r2 - 80435ac: b29b uxth r3, r3 - 80435ae: b21b sxth r3, r3 - 80435b0: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 8043508: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 + 804350c: f9b3 3014 ldrsh.w r3, [r3, #20] + 8043510: b29a uxth r2, r3 + 8043512: f8b7 30ae ldrh.w r3, [r7, #174] ; 0xae + 8043516: 4413 add r3, r2 + 8043518: b29b uxth r3, r3 + 804351a: b21b sxth r3, r3 + 804351c: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 knob_area.x2 = knob_area.x1 + knob_size; - 80435b4: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 - 80435b8: b29a uxth r2, r3 - 80435ba: f8b7 3096 ldrh.w r3, [r7, #150] ; 0x96 - 80435be: 4413 add r3, r2 - 80435c0: b29b uxth r3, r3 - 80435c2: b21b sxth r3, r3 - 80435c4: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 + 8043520: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 + 8043524: b29a uxth r2, r3 + 8043526: f8b7 3096 ldrh.w r3, [r7, #150] ; 0x96 + 804352a: 4413 add r3, r2 + 804352c: b29b uxth r3, r3 + 804352e: b21b sxth r3, r3 + 8043530: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 knob_area.y1 = obj->coords.y1; - 80435c8: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 - 80435cc: f9b3 3016 ldrsh.w r3, [r3, #22] - 80435d0: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 8043534: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 + 8043538: f9b3 3016 ldrsh.w r3, [r3, #22] + 804353c: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 knob_area.y2 = obj->coords.y2; - 80435d4: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 - 80435d8: f9b3 301a ldrsh.w r3, [r3, #26] - 80435dc: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 8043540: f8d7 30a8 ldr.w r3, [r7, #168] ; 0xa8 + 8043544: f9b3 301a ldrsh.w r3, [r3, #26] + 8043548: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 lv_coord_t knob_left = lv_obj_get_style_pad_left(obj, LV_PART_KNOB); - 80435e0: f44f 3140 mov.w r1, #196608 ; 0x30000 - 80435e4: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 - 80435e8: f7ff fdfb bl 80431e2 - 80435ec: 4603 mov r3, r0 - 80435ee: f8a7 3090 strh.w r3, [r7, #144] ; 0x90 + 804354c: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8043550: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 + 8043554: f7ff fdfb bl 804314e + 8043558: 4603 mov r3, r0 + 804355a: f8a7 3090 strh.w r3, [r7, #144] ; 0x90 lv_coord_t knob_right = lv_obj_get_style_pad_right(obj, LV_PART_KNOB); - 80435f2: f44f 3140 mov.w r1, #196608 ; 0x30000 - 80435f6: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 - 80435fa: f7ff fe05 bl 8043208 - 80435fe: 4603 mov r3, r0 - 8043600: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 804355e: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8043562: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 + 8043566: f7ff fe05 bl 8043174 + 804356a: 4603 mov r3, r0 + 804356c: f8a7 308e strh.w r3, [r7, #142] ; 0x8e lv_coord_t knob_top = lv_obj_get_style_pad_top(obj, LV_PART_KNOB); - 8043604: f44f 3140 mov.w r1, #196608 ; 0x30000 - 8043608: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 - 804360c: f7ff fdc3 bl 8043196 - 8043610: 4603 mov r3, r0 - 8043612: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 8043570: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8043574: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 + 8043578: f7ff fdc3 bl 8043102 + 804357c: 4603 mov r3, r0 + 804357e: f8a7 308c strh.w r3, [r7, #140] ; 0x8c lv_coord_t knob_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_KNOB); - 8043616: f44f 3140 mov.w r1, #196608 ; 0x30000 - 804361a: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 - 804361e: f7ff fdcd bl 80431bc - 8043622: 4603 mov r3, r0 - 8043624: f8a7 308a strh.w r3, [r7, #138] ; 0x8a + 8043582: f44f 3140 mov.w r1, #196608 ; 0x30000 + 8043586: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 + 804358a: f7ff fdcd bl 8043128 + 804358e: 4603 mov r3, r0 + 8043590: f8a7 308a strh.w r3, [r7, #138] ; 0x8a /*Apply the paddings on the knob area*/ knob_area.x1 -= knob_left; - 8043628: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 - 804362c: b29a uxth r2, r3 - 804362e: f8b7 3090 ldrh.w r3, [r7, #144] ; 0x90 - 8043632: 1ad3 subs r3, r2, r3 - 8043634: b29b uxth r3, r3 - 8043636: b21b sxth r3, r3 - 8043638: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 + 8043594: f9b7 3040 ldrsh.w r3, [r7, #64] ; 0x40 + 8043598: b29a uxth r2, r3 + 804359a: f8b7 3090 ldrh.w r3, [r7, #144] ; 0x90 + 804359e: 1ad3 subs r3, r2, r3 + 80435a0: b29b uxth r3, r3 + 80435a2: b21b sxth r3, r3 + 80435a4: f8a7 3040 strh.w r3, [r7, #64] ; 0x40 knob_area.x2 += knob_right; - 804363c: f9b7 3044 ldrsh.w r3, [r7, #68] ; 0x44 - 8043640: b29a uxth r2, r3 - 8043642: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 8043646: 4413 add r3, r2 - 8043648: b29b uxth r3, r3 - 804364a: b21b sxth r3, r3 - 804364c: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 + 80435a8: f9b7 3044 ldrsh.w r3, [r7, #68] ; 0x44 + 80435ac: b29a uxth r2, r3 + 80435ae: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 80435b2: 4413 add r3, r2 + 80435b4: b29b uxth r3, r3 + 80435b6: b21b sxth r3, r3 + 80435b8: f8a7 3044 strh.w r3, [r7, #68] ; 0x44 knob_area.y1 -= knob_top; - 8043650: f9b7 3042 ldrsh.w r3, [r7, #66] ; 0x42 - 8043654: b29a uxth r2, r3 - 8043656: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c - 804365a: 1ad3 subs r3, r2, r3 - 804365c: b29b uxth r3, r3 - 804365e: b21b sxth r3, r3 - 8043660: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 + 80435bc: f9b7 3042 ldrsh.w r3, [r7, #66] ; 0x42 + 80435c0: b29a uxth r2, r3 + 80435c2: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c + 80435c6: 1ad3 subs r3, r2, r3 + 80435c8: b29b uxth r3, r3 + 80435ca: b21b sxth r3, r3 + 80435cc: f8a7 3042 strh.w r3, [r7, #66] ; 0x42 knob_area.y2 += knob_bottom; - 8043664: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 - 8043668: b29a uxth r2, r3 - 804366a: f8b7 308a ldrh.w r3, [r7, #138] ; 0x8a - 804366e: 4413 add r3, r2 - 8043670: b29b uxth r3, r3 - 8043672: b21b sxth r3, r3 - 8043674: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 80435d0: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 + 80435d4: b29a uxth r2, r3 + 80435d6: f8b7 308a ldrh.w r3, [r7, #138] ; 0x8a + 80435da: 4413 add r3, r2 + 80435dc: b29b uxth r3, r3 + 80435de: b21b sxth r3, r3 + 80435e0: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 lv_draw_rect_dsc_t knob_rect_dsc; lv_draw_rect_dsc_init(&knob_rect_dsc); - 8043678: f107 0308 add.w r3, r7, #8 - 804367c: 4618 mov r0, r3 - 804367e: f7d2 f8b9 bl 80157f4 + 80435e4: f107 0308 add.w r3, r7, #8 + 80435e8: 4618 mov r0, r3 + 80435ea: f7d2 f8b9 bl 8015760 lv_obj_init_draw_rect_dsc(obj, LV_PART_KNOB, &knob_rect_dsc); - 8043682: f107 0308 add.w r3, r7, #8 - 8043686: 461a mov r2, r3 - 8043688: f44f 3140 mov.w r1, #196608 ; 0x30000 - 804368c: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 - 8043690: f7c4 ff99 bl 80085c6 + 80435ee: f107 0308 add.w r3, r7, #8 + 80435f2: 461a mov r2, r3 + 80435f4: f44f 3140 mov.w r1, #196608 ; 0x30000 + 80435f8: f8d7 00a8 ldr.w r0, [r7, #168] ; 0xa8 + 80435fc: f7c4 ffad bl 800855a lv_draw_rect(draw_ctx, &knob_rect_dsc, &knob_area); - 8043694: f107 0240 add.w r2, r7, #64 ; 0x40 - 8043698: f107 0308 add.w r3, r7, #8 - 804369c: 4619 mov r1, r3 - 804369e: f8d7 00a0 ldr.w r0, [r7, #160] ; 0xa0 - 80436a2: f7d2 f8e9 bl 8015878 + 8043600: f107 0240 add.w r2, r7, #64 ; 0x40 + 8043604: f107 0308 add.w r3, r7, #8 + 8043608: 4619 mov r1, r3 + 804360a: f8d7 00a0 ldr.w r0, [r7, #160] ; 0xa0 + 804360e: f7d2 f8e9 bl 80157e4 } - 80436a6: bf00 nop - 80436a8: 37b0 adds r7, #176 ; 0xb0 - 80436aa: 46bd mov sp, r7 - 80436ac: bd80 pop {r7, pc} + 8043612: bf00 nop + 8043614: 37b0 adds r7, #176 ; 0xb0 + 8043616: 46bd mov sp, r7 + 8043618: bd80 pop {r7, pc} -080436ae : +0804361a : static void lv_switch_anim_exec_cb(void * var, int32_t value) { - 80436ae: b580 push {r7, lr} - 80436b0: b084 sub sp, #16 - 80436b2: af00 add r7, sp, #0 - 80436b4: 6078 str r0, [r7, #4] - 80436b6: 6039 str r1, [r7, #0] + 804361a: b580 push {r7, lr} + 804361c: b084 sub sp, #16 + 804361e: af00 add r7, sp, #0 + 8043620: 6078 str r0, [r7, #4] + 8043622: 6039 str r1, [r7, #0] lv_switch_t * sw = var; - 80436b8: 687b ldr r3, [r7, #4] - 80436ba: 60fb str r3, [r7, #12] + 8043624: 687b ldr r3, [r7, #4] + 8043626: 60fb str r3, [r7, #12] sw->anim_state = value; - 80436bc: 68fb ldr r3, [r7, #12] - 80436be: 683a ldr r2, [r7, #0] - 80436c0: 625a str r2, [r3, #36] ; 0x24 + 8043628: 68fb ldr r3, [r7, #12] + 804362a: 683a ldr r2, [r7, #0] + 804362c: 625a str r2, [r3, #36] ; 0x24 lv_obj_invalidate((lv_obj_t *)sw); - 80436c2: 68f8 ldr r0, [r7, #12] - 80436c4: f7c7 f9f5 bl 800aab2 + 804362e: 68f8 ldr r0, [r7, #12] + 8043630: f7c7 fa09 bl 800aa46 } - 80436c8: bf00 nop - 80436ca: 3710 adds r7, #16 - 80436cc: 46bd mov sp, r7 - 80436ce: bd80 pop {r7, pc} + 8043634: bf00 nop + 8043636: 3710 adds r7, #16 + 8043638: 46bd mov sp, r7 + 804363a: bd80 pop {r7, pc} -080436d0 : +0804363c : /** * Resets the switch's animation state to "no animation in progress". */ static void lv_switch_anim_ready(lv_anim_t * a) { - 80436d0: b580 push {r7, lr} - 80436d2: b084 sub sp, #16 - 80436d4: af00 add r7, sp, #0 - 80436d6: 6078 str r0, [r7, #4] + 804363c: b580 push {r7, lr} + 804363e: b084 sub sp, #16 + 8043640: af00 add r7, sp, #0 + 8043642: 6078 str r0, [r7, #4] lv_switch_t * sw = a->var; - 80436d8: 687b ldr r3, [r7, #4] - 80436da: 681b ldr r3, [r3, #0] - 80436dc: 60fb str r3, [r7, #12] + 8043644: 687b ldr r3, [r7, #4] + 8043646: 681b ldr r3, [r3, #0] + 8043648: 60fb str r3, [r7, #12] sw->anim_state = LV_SWITCH_ANIM_STATE_INV; - 80436de: 68fb ldr r3, [r7, #12] - 80436e0: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 80436e4: 625a str r2, [r3, #36] ; 0x24 + 804364a: 68fb ldr r3, [r7, #12] + 804364c: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 8043650: 625a str r2, [r3, #36] ; 0x24 lv_obj_invalidate((lv_obj_t *)sw); - 80436e6: 68f8 ldr r0, [r7, #12] - 80436e8: f7c7 f9e3 bl 800aab2 + 8043652: 68f8 ldr r0, [r7, #12] + 8043654: f7c7 f9f7 bl 800aa46 } - 80436ec: bf00 nop - 80436ee: 3710 adds r7, #16 - 80436f0: 46bd mov sp, r7 - 80436f2: bd80 pop {r7, pc} + 8043658: bf00 nop + 804365a: 3710 adds r7, #16 + 804365c: 46bd mov sp, r7 + 804365e: bd80 pop {r7, pc} -080436f4 : +08043660 : /** * Starts an animation for the switch knob. if the anim_time style property is greater than 0 * @param obj the switch to animate */ static void lv_switch_trigger_anim(lv_obj_t * obj) { - 80436f4: b580 push {r7, lr} - 80436f6: b098 sub sp, #96 ; 0x60 - 80436f8: af00 add r7, sp, #0 - 80436fa: 6078 str r0, [r7, #4] + 8043660: b580 push {r7, lr} + 8043662: b098 sub sp, #96 ; 0x60 + 8043664: af00 add r7, sp, #0 + 8043666: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_switch_t * sw = (lv_switch_t *)obj; - 80436fc: 687b ldr r3, [r7, #4] - 80436fe: 657b str r3, [r7, #84] ; 0x54 + 8043668: 687b ldr r3, [r7, #4] + 804366a: 657b str r3, [r7, #84] ; 0x54 uint32_t anim_dur_full = lv_obj_get_style_anim_time(obj, LV_PART_MAIN); - 8043700: 2100 movs r1, #0 - 8043702: 6878 ldr r0, [r7, #4] - 8043704: f7ff fd93 bl 804322e - 8043708: 6538 str r0, [r7, #80] ; 0x50 + 804366c: 2100 movs r1, #0 + 804366e: 6878 ldr r0, [r7, #4] + 8043670: f7ff fd93 bl 804319a + 8043674: 6538 str r0, [r7, #80] ; 0x50 if(anim_dur_full > 0) { - 804370a: 6d3b ldr r3, [r7, #80] ; 0x50 - 804370c: 2b00 cmp r3, #0 - 804370e: d068 beq.n 80437e2 + 8043676: 6d3b ldr r3, [r7, #80] ; 0x50 + 8043678: 2b00 cmp r3, #0 + 804367a: d068 beq.n 804374e bool chk = lv_obj_get_state(obj) & LV_STATE_CHECKED; - 8043710: 6878 ldr r0, [r7, #4] - 8043712: f7c3 f85d bl 80067d0 - 8043716: 4603 mov r3, r0 - 8043718: f003 0301 and.w r3, r3, #1 - 804371c: 2b00 cmp r3, #0 - 804371e: bf14 ite ne - 8043720: 2301 movne r3, #1 - 8043722: 2300 moveq r3, #0 - 8043724: f887 304f strb.w r3, [r7, #79] ; 0x4f + 804367c: 6878 ldr r0, [r7, #4] + 804367e: f7c3 f871 bl 8006764 + 8043682: 4603 mov r3, r0 + 8043684: f003 0301 and.w r3, r3, #1 + 8043688: 2b00 cmp r3, #0 + 804368a: bf14 ite ne + 804368c: 2301 movne r3, #1 + 804368e: 2300 moveq r3, #0 + 8043690: f887 304f strb.w r3, [r7, #79] ; 0x4f int32_t anim_start; int32_t anim_end; /*No animation in progress -> simply set the values*/ if(sw->anim_state == LV_SWITCH_ANIM_STATE_INV) { - 8043728: 6d7b ldr r3, [r7, #84] ; 0x54 - 804372a: 6a5b ldr r3, [r3, #36] ; 0x24 - 804372c: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 8043730: d112 bne.n 8043758 + 8043694: 6d7b ldr r3, [r7, #84] ; 0x54 + 8043696: 6a5b ldr r3, [r3, #36] ; 0x24 + 8043698: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 804369c: d112 bne.n 80436c4 anim_start = chk ? LV_SWITCH_ANIM_STATE_START : LV_SWITCH_ANIM_STATE_END; - 8043732: f897 304f ldrb.w r3, [r7, #79] ; 0x4f - 8043736: 2b00 cmp r3, #0 - 8043738: d001 beq.n 804373e - 804373a: 2300 movs r3, #0 - 804373c: e001 b.n 8043742 - 804373e: f44f 7380 mov.w r3, #256 ; 0x100 - 8043742: 65fb str r3, [r7, #92] ; 0x5c + 804369e: f897 304f ldrb.w r3, [r7, #79] ; 0x4f + 80436a2: 2b00 cmp r3, #0 + 80436a4: d001 beq.n 80436aa + 80436a6: 2300 movs r3, #0 + 80436a8: e001 b.n 80436ae + 80436aa: f44f 7380 mov.w r3, #256 ; 0x100 + 80436ae: 65fb str r3, [r7, #92] ; 0x5c anim_end = chk ? LV_SWITCH_ANIM_STATE_END : LV_SWITCH_ANIM_STATE_START; - 8043744: f897 304f ldrb.w r3, [r7, #79] ; 0x4f - 8043748: 2b00 cmp r3, #0 - 804374a: d002 beq.n 8043752 - 804374c: f44f 7380 mov.w r3, #256 ; 0x100 - 8043750: e000 b.n 8043754 - 8043752: 2300 movs r3, #0 - 8043754: 65bb str r3, [r7, #88] ; 0x58 - 8043756: e00b b.n 8043770 + 80436b0: f897 304f ldrb.w r3, [r7, #79] ; 0x4f + 80436b4: 2b00 cmp r3, #0 + 80436b6: d002 beq.n 80436be + 80436b8: f44f 7380 mov.w r3, #256 ; 0x100 + 80436bc: e000 b.n 80436c0 + 80436be: 2300 movs r3, #0 + 80436c0: 65bb str r3, [r7, #88] ; 0x58 + 80436c2: e00b b.n 80436dc } /*Animation in progress. Start from the animation end value*/ else { anim_start = sw->anim_state; - 8043758: 6d7b ldr r3, [r7, #84] ; 0x54 - 804375a: 6a5b ldr r3, [r3, #36] ; 0x24 - 804375c: 65fb str r3, [r7, #92] ; 0x5c + 80436c4: 6d7b ldr r3, [r7, #84] ; 0x54 + 80436c6: 6a5b ldr r3, [r3, #36] ; 0x24 + 80436c8: 65fb str r3, [r7, #92] ; 0x5c anim_end = chk ? LV_SWITCH_ANIM_STATE_END : LV_SWITCH_ANIM_STATE_START; - 804375e: f897 304f ldrb.w r3, [r7, #79] ; 0x4f - 8043762: 2b00 cmp r3, #0 - 8043764: d002 beq.n 804376c - 8043766: f44f 7380 mov.w r3, #256 ; 0x100 - 804376a: e000 b.n 804376e - 804376c: 2300 movs r3, #0 - 804376e: 65bb str r3, [r7, #88] ; 0x58 + 80436ca: f897 304f ldrb.w r3, [r7, #79] ; 0x4f + 80436ce: 2b00 cmp r3, #0 + 80436d0: d002 beq.n 80436d8 + 80436d2: f44f 7380 mov.w r3, #256 ; 0x100 + 80436d6: e000 b.n 80436da + 80436d8: 2300 movs r3, #0 + 80436da: 65bb str r3, [r7, #88] ; 0x58 } /*Calculate actual animation duration*/ uint32_t anim_dur = (anim_dur_full * LV_ABS(anim_start - anim_end)) / LV_SWITCH_ANIM_STATE_END; - 8043770: 6dfa ldr r2, [r7, #92] ; 0x5c - 8043772: 6dbb ldr r3, [r7, #88] ; 0x58 - 8043774: 1ad3 subs r3, r2, r3 - 8043776: 2b00 cmp r3, #0 - 8043778: bfb8 it lt - 804377a: 425b neglt r3, r3 - 804377c: 461a mov r2, r3 - 804377e: 6d3b ldr r3, [r7, #80] ; 0x50 - 8043780: fb02 f303 mul.w r3, r2, r3 - 8043784: 0a1b lsrs r3, r3, #8 - 8043786: 64bb str r3, [r7, #72] ; 0x48 + 80436dc: 6dfa ldr r2, [r7, #92] ; 0x5c + 80436de: 6dbb ldr r3, [r7, #88] ; 0x58 + 80436e0: 1ad3 subs r3, r2, r3 + 80436e2: 2b00 cmp r3, #0 + 80436e4: bfb8 it lt + 80436e6: 425b neglt r3, r3 + 80436e8: 461a mov r2, r3 + 80436ea: 6d3b ldr r3, [r7, #80] ; 0x50 + 80436ec: fb02 f303 mul.w r3, r2, r3 + 80436f0: 0a1b lsrs r3, r3, #8 + 80436f2: 64bb str r3, [r7, #72] ; 0x48 /*Stop the previous animation if it exists*/ lv_anim_del(sw, NULL); - 8043788: 2100 movs r1, #0 - 804378a: 6d78 ldr r0, [r7, #84] ; 0x54 - 804378c: f7ed f8fe bl 803098c + 80436f4: 2100 movs r1, #0 + 80436f6: 6d78 ldr r0, [r7, #84] ; 0x54 + 80436f8: f7ed f8fe bl 80308f8 lv_anim_t a; lv_anim_init(&a); - 8043790: f107 0308 add.w r3, r7, #8 - 8043794: 4618 mov r0, r3 - 8043796: f7ed f85b bl 8030850 + 80436fc: f107 0308 add.w r3, r7, #8 + 8043700: 4618 mov r0, r3 + 8043702: f7ed f85b bl 80307bc lv_anim_set_var(&a, sw); - 804379a: f107 0308 add.w r3, r7, #8 - 804379e: 6d79 ldr r1, [r7, #84] ; 0x54 - 80437a0: 4618 mov r0, r3 - 80437a2: f7ff fcb0 bl 8043106 + 8043706: f107 0308 add.w r3, r7, #8 + 804370a: 6d79 ldr r1, [r7, #84] ; 0x54 + 804370c: 4618 mov r0, r3 + 804370e: f7ff fcb0 bl 8043072 lv_anim_set_exec_cb(&a, lv_switch_anim_exec_cb); - 80437a6: f107 0308 add.w r3, r7, #8 - 80437aa: 4910 ldr r1, [pc, #64] ; (80437ec ) - 80437ac: 4618 mov r0, r3 - 80437ae: f7ff fcb7 bl 8043120 + 8043712: f107 0308 add.w r3, r7, #8 + 8043716: 4910 ldr r1, [pc, #64] ; (8043758 ) + 8043718: 4618 mov r0, r3 + 804371a: f7ff fcb7 bl 804308c lv_anim_set_values(&a, anim_start, anim_end); - 80437b2: f107 0308 add.w r3, r7, #8 - 80437b6: 6dba ldr r2, [r7, #88] ; 0x58 - 80437b8: 6df9 ldr r1, [r7, #92] ; 0x5c - 80437ba: 4618 mov r0, r3 - 80437bc: f7ff fcca bl 8043154 + 804371e: f107 0308 add.w r3, r7, #8 + 8043722: 6dba ldr r2, [r7, #88] ; 0x58 + 8043724: 6df9 ldr r1, [r7, #92] ; 0x5c + 8043726: 4618 mov r0, r3 + 8043728: f7ff fcca bl 80430c0 lv_anim_set_ready_cb(&a, lv_switch_anim_ready); - 80437c0: f107 0308 add.w r3, r7, #8 - 80437c4: 490a ldr r1, [pc, #40] ; (80437f0 ) - 80437c6: 4618 mov r0, r3 - 80437c8: f7ff fcd8 bl 804317c + 804372c: f107 0308 add.w r3, r7, #8 + 8043730: 490a ldr r1, [pc, #40] ; (804375c ) + 8043732: 4618 mov r0, r3 + 8043734: f7ff fcd8 bl 80430e8 lv_anim_set_time(&a, anim_dur); - 80437cc: f107 0308 add.w r3, r7, #8 - 80437d0: 6cb9 ldr r1, [r7, #72] ; 0x48 - 80437d2: 4618 mov r0, r3 - 80437d4: f7ff fcb1 bl 804313a + 8043738: f107 0308 add.w r3, r7, #8 + 804373c: 6cb9 ldr r1, [r7, #72] ; 0x48 + 804373e: 4618 mov r0, r3 + 8043740: f7ff fcb1 bl 80430a6 lv_anim_start(&a); - 80437d8: f107 0308 add.w r3, r7, #8 - 80437dc: 4618 mov r0, r3 - 80437de: f7ed f85d bl 803089c + 8043744: f107 0308 add.w r3, r7, #8 + 8043748: 4618 mov r0, r3 + 804374a: f7ed f85d bl 8030808 } } - 80437e2: bf00 nop - 80437e4: 3760 adds r7, #96 ; 0x60 - 80437e6: 46bd mov sp, r7 - 80437e8: bd80 pop {r7, pc} - 80437ea: bf00 nop - 80437ec: 080436af .word 0x080436af - 80437f0: 080436d1 .word 0x080436d1 + 804374e: bf00 nop + 8043750: 3760 adds r7, #96 ; 0x60 + 8043752: 46bd mov sp, r7 + 8043754: bd80 pop {r7, pc} + 8043756: bf00 nop + 8043758: 0804361b .word 0x0804361b + 804375c: 0804363d .word 0x0804363d -080437f4 : +08043760 : { - 80437f4: b480 push {r7} - 80437f6: b083 sub sp, #12 - 80437f8: af00 add r7, sp, #0 - 80437fa: 6078 str r0, [r7, #4] - 80437fc: 6039 str r1, [r7, #0] + 8043760: b480 push {r7} + 8043762: b083 sub sp, #12 + 8043764: af00 add r7, sp, #0 + 8043766: 6078 str r0, [r7, #4] + 8043768: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 80437fe: 683b ldr r3, [r7, #0] - 8043800: f9b3 2000 ldrsh.w r2, [r3] - 8043804: 687b ldr r3, [r7, #4] - 8043806: 801a strh r2, [r3, #0] + 804376a: 683b ldr r3, [r7, #0] + 804376c: f9b3 2000 ldrsh.w r2, [r3] + 8043770: 687b ldr r3, [r7, #4] + 8043772: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 8043808: 683b ldr r3, [r7, #0] - 804380a: f9b3 2002 ldrsh.w r2, [r3, #2] - 804380e: 687b ldr r3, [r7, #4] - 8043810: 805a strh r2, [r3, #2] + 8043774: 683b ldr r3, [r7, #0] + 8043776: f9b3 2002 ldrsh.w r2, [r3, #2] + 804377a: 687b ldr r3, [r7, #4] + 804377c: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 8043812: 683b ldr r3, [r7, #0] - 8043814: f9b3 2004 ldrsh.w r2, [r3, #4] - 8043818: 687b ldr r3, [r7, #4] - 804381a: 809a strh r2, [r3, #4] + 804377e: 683b ldr r3, [r7, #0] + 8043780: f9b3 2004 ldrsh.w r2, [r3, #4] + 8043784: 687b ldr r3, [r7, #4] + 8043786: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 804381c: 683b ldr r3, [r7, #0] - 804381e: f9b3 2006 ldrsh.w r2, [r3, #6] - 8043822: 687b ldr r3, [r7, #4] - 8043824: 80da strh r2, [r3, #6] + 8043788: 683b ldr r3, [r7, #0] + 804378a: f9b3 2006 ldrsh.w r2, [r3, #6] + 804378e: 687b ldr r3, [r7, #4] + 8043790: 80da strh r2, [r3, #6] } - 8043826: bf00 nop - 8043828: 370c adds r7, #12 - 804382a: 46bd mov sp, r7 - 804382c: bc80 pop {r7} - 804382e: 4770 bx lr + 8043792: bf00 nop + 8043794: 370c adds r7, #12 + 8043796: 46bd mov sp, r7 + 8043798: bc80 pop {r7} + 804379a: 4770 bx lr -08043830 : +0804379c : { - 8043830: b480 push {r7} - 8043832: b083 sub sp, #12 - 8043834: af00 add r7, sp, #0 - 8043836: 6078 str r0, [r7, #4] + 804379c: b480 push {r7} + 804379e: b083 sub sp, #12 + 80437a0: af00 add r7, sp, #0 + 80437a2: 6078 str r0, [r7, #4] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 8043838: 687b ldr r3, [r7, #4] - 804383a: f9b3 3004 ldrsh.w r3, [r3, #4] - 804383e: b29a uxth r2, r3 - 8043840: 687b ldr r3, [r7, #4] - 8043842: f9b3 3000 ldrsh.w r3, [r3] - 8043846: b29b uxth r3, r3 - 8043848: 1ad3 subs r3, r2, r3 - 804384a: b29b uxth r3, r3 - 804384c: 3301 adds r3, #1 - 804384e: b29b uxth r3, r3 - 8043850: b21b sxth r3, r3 + 80437a4: 687b ldr r3, [r7, #4] + 80437a6: f9b3 3004 ldrsh.w r3, [r3, #4] + 80437aa: b29a uxth r2, r3 + 80437ac: 687b ldr r3, [r7, #4] + 80437ae: f9b3 3000 ldrsh.w r3, [r3] + 80437b2: b29b uxth r3, r3 + 80437b4: 1ad3 subs r3, r2, r3 + 80437b6: b29b uxth r3, r3 + 80437b8: 3301 adds r3, #1 + 80437ba: b29b uxth r3, r3 + 80437bc: b21b sxth r3, r3 } - 8043852: 4618 mov r0, r3 - 8043854: 370c adds r7, #12 - 8043856: 46bd mov sp, r7 - 8043858: bc80 pop {r7} - 804385a: 4770 bx lr + 80437be: 4618 mov r0, r3 + 80437c0: 370c adds r7, #12 + 80437c2: 46bd mov sp, r7 + 80437c4: bc80 pop {r7} + 80437c6: 4770 bx lr -0804385c : +080437c8 : { - 804385c: b480 push {r7} - 804385e: b083 sub sp, #12 - 8043860: af00 add r7, sp, #0 - 8043862: 6078 str r0, [r7, #4] + 80437c8: b480 push {r7} + 80437ca: b083 sub sp, #12 + 80437cc: af00 add r7, sp, #0 + 80437ce: 6078 str r0, [r7, #4] return font_p->line_height; - 8043864: 687b ldr r3, [r7, #4] - 8043866: f9b3 3008 ldrsh.w r3, [r3, #8] + 80437d0: 687b ldr r3, [r7, #4] + 80437d2: f9b3 3008 ldrsh.w r3, [r3, #8] } - 804386a: 4618 mov r0, r3 - 804386c: 370c adds r7, #12 - 804386e: 46bd mov sp, r7 - 8043870: bc80 pop {r7} - 8043872: 4770 bx lr + 80437d6: 4618 mov r0, r3 + 80437d8: 370c adds r7, #12 + 80437da: 46bd mov sp, r7 + 80437dc: bc80 pop {r7} + 80437de: 4770 bx lr -08043874 : +080437e0 : { - 8043874: b580 push {r7, lr} - 8043876: b084 sub sp, #16 - 8043878: af00 add r7, sp, #0 - 804387a: 6078 str r0, [r7, #4] - 804387c: 6039 str r1, [r7, #0] + 80437e0: b580 push {r7, lr} + 80437e2: b084 sub sp, #16 + 80437e4: af00 add r7, sp, #0 + 80437e6: 6078 str r0, [r7, #4] + 80437e8: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MIN_HEIGHT); - 804387e: f241 0205 movw r2, #4101 ; 0x1005 - 8043882: 6839 ldr r1, [r7, #0] - 8043884: 6878 ldr r0, [r7, #4] - 8043886: f7ca fa93 bl 800ddb0 - 804388a: 4603 mov r3, r0 - 804388c: 60fb str r3, [r7, #12] + 80437ea: f241 0205 movw r2, #4101 ; 0x1005 + 80437ee: 6839 ldr r1, [r7, #0] + 80437f0: 6878 ldr r0, [r7, #4] + 80437f2: f7ca faa7 bl 800dd44 + 80437f6: 4603 mov r3, r0 + 80437f8: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 804388e: 68fb ldr r3, [r7, #12] - 8043890: b21b sxth r3, r3 + 80437fa: 68fb ldr r3, [r7, #12] + 80437fc: b21b sxth r3, r3 } - 8043892: 4618 mov r0, r3 - 8043894: 3710 adds r7, #16 - 8043896: 46bd mov sp, r7 - 8043898: bd80 pop {r7, pc} + 80437fe: 4618 mov r0, r3 + 8043800: 3710 adds r7, #16 + 8043802: 46bd mov sp, r7 + 8043804: bd80 pop {r7, pc} -0804389a : +08043806 : { - 804389a: b580 push {r7, lr} - 804389c: b084 sub sp, #16 - 804389e: af00 add r7, sp, #0 - 80438a0: 6078 str r0, [r7, #4] - 80438a2: 6039 str r1, [r7, #0] + 8043806: b580 push {r7, lr} + 8043808: b084 sub sp, #16 + 804380a: af00 add r7, sp, #0 + 804380c: 6078 str r0, [r7, #4] + 804380e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_MAX_HEIGHT); - 80438a4: f241 0206 movw r2, #4102 ; 0x1006 - 80438a8: 6839 ldr r1, [r7, #0] - 80438aa: 6878 ldr r0, [r7, #4] - 80438ac: f7ca fa80 bl 800ddb0 - 80438b0: 4603 mov r3, r0 - 80438b2: 60fb str r3, [r7, #12] + 8043810: f241 0206 movw r2, #4102 ; 0x1006 + 8043814: 6839 ldr r1, [r7, #0] + 8043816: 6878 ldr r0, [r7, #4] + 8043818: f7ca fa94 bl 800dd44 + 804381c: 4603 mov r3, r0 + 804381e: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80438b4: 68fb ldr r3, [r7, #12] - 80438b6: b21b sxth r3, r3 + 8043820: 68fb ldr r3, [r7, #12] + 8043822: b21b sxth r3, r3 } - 80438b8: 4618 mov r0, r3 - 80438ba: 3710 adds r7, #16 - 80438bc: 46bd mov sp, r7 - 80438be: bd80 pop {r7, pc} + 8043824: 4618 mov r0, r3 + 8043826: 3710 adds r7, #16 + 8043828: 46bd mov sp, r7 + 804382a: bd80 pop {r7, pc} -080438c0 : +0804382c : { - 80438c0: b580 push {r7, lr} - 80438c2: b084 sub sp, #16 - 80438c4: af00 add r7, sp, #0 - 80438c6: 6078 str r0, [r7, #4] - 80438c8: 6039 str r1, [r7, #0] + 804382c: b580 push {r7, lr} + 804382e: b084 sub sp, #16 + 8043830: af00 add r7, sp, #0 + 8043832: 6078 str r0, [r7, #4] + 8043834: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 80438ca: f641 0210 movw r2, #6160 ; 0x1810 - 80438ce: 6839 ldr r1, [r7, #0] - 80438d0: 6878 ldr r0, [r7, #4] - 80438d2: f7ca fa6d bl 800ddb0 - 80438d6: 4603 mov r3, r0 - 80438d8: 60fb str r3, [r7, #12] + 8043836: f641 0210 movw r2, #6160 ; 0x1810 + 804383a: 6839 ldr r1, [r7, #0] + 804383c: 6878 ldr r0, [r7, #4] + 804383e: f7ca fa81 bl 800dd44 + 8043842: 4603 mov r3, r0 + 8043844: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80438da: 68fb ldr r3, [r7, #12] - 80438dc: b21b sxth r3, r3 + 8043846: 68fb ldr r3, [r7, #12] + 8043848: b21b sxth r3, r3 } - 80438de: 4618 mov r0, r3 - 80438e0: 3710 adds r7, #16 - 80438e2: 46bd mov sp, r7 - 80438e4: bd80 pop {r7, pc} + 804384a: 4618 mov r0, r3 + 804384c: 3710 adds r7, #16 + 804384e: 46bd mov sp, r7 + 8043850: bd80 pop {r7, pc} -080438e6 : +08043852 : { - 80438e6: b580 push {r7, lr} - 80438e8: b084 sub sp, #16 - 80438ea: af00 add r7, sp, #0 - 80438ec: 6078 str r0, [r7, #4] - 80438ee: 6039 str r1, [r7, #0] + 8043852: b580 push {r7, lr} + 8043854: b084 sub sp, #16 + 8043856: af00 add r7, sp, #0 + 8043858: 6078 str r0, [r7, #4] + 804385a: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); - 80438f0: f641 0211 movw r2, #6161 ; 0x1811 - 80438f4: 6839 ldr r1, [r7, #0] - 80438f6: 6878 ldr r0, [r7, #4] - 80438f8: f7ca fa5a bl 800ddb0 - 80438fc: 4603 mov r3, r0 - 80438fe: 60fb str r3, [r7, #12] + 804385c: f641 0211 movw r2, #6161 ; 0x1811 + 8043860: 6839 ldr r1, [r7, #0] + 8043862: 6878 ldr r0, [r7, #4] + 8043864: f7ca fa6e bl 800dd44 + 8043868: 4603 mov r3, r0 + 804386a: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8043900: 68fb ldr r3, [r7, #12] - 8043902: b21b sxth r3, r3 + 804386c: 68fb ldr r3, [r7, #12] + 804386e: b21b sxth r3, r3 } - 8043904: 4618 mov r0, r3 - 8043906: 3710 adds r7, #16 - 8043908: 46bd mov sp, r7 - 804390a: bd80 pop {r7, pc} + 8043870: 4618 mov r0, r3 + 8043872: 3710 adds r7, #16 + 8043874: 46bd mov sp, r7 + 8043876: bd80 pop {r7, pc} -0804390c : +08043878 : { - 804390c: b580 push {r7, lr} - 804390e: b084 sub sp, #16 - 8043910: af00 add r7, sp, #0 - 8043912: 6078 str r0, [r7, #4] - 8043914: 6039 str r1, [r7, #0] + 8043878: b580 push {r7, lr} + 804387a: b084 sub sp, #16 + 804387c: af00 add r7, sp, #0 + 804387e: 6078 str r0, [r7, #4] + 8043880: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 8043916: f641 0212 movw r2, #6162 ; 0x1812 - 804391a: 6839 ldr r1, [r7, #0] - 804391c: 6878 ldr r0, [r7, #4] - 804391e: f7ca fa47 bl 800ddb0 - 8043922: 4603 mov r3, r0 - 8043924: 60fb str r3, [r7, #12] + 8043882: f641 0212 movw r2, #6162 ; 0x1812 + 8043886: 6839 ldr r1, [r7, #0] + 8043888: 6878 ldr r0, [r7, #4] + 804388a: f7ca fa5b bl 800dd44 + 804388e: 4603 mov r3, r0 + 8043890: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8043926: 68fb ldr r3, [r7, #12] - 8043928: b21b sxth r3, r3 + 8043892: 68fb ldr r3, [r7, #12] + 8043894: b21b sxth r3, r3 } - 804392a: 4618 mov r0, r3 - 804392c: 3710 adds r7, #16 - 804392e: 46bd mov sp, r7 - 8043930: bd80 pop {r7, pc} + 8043896: 4618 mov r0, r3 + 8043898: 3710 adds r7, #16 + 804389a: 46bd mov sp, r7 + 804389c: bd80 pop {r7, pc} -08043932 : +0804389e : { - 8043932: b580 push {r7, lr} - 8043934: b084 sub sp, #16 - 8043936: af00 add r7, sp, #0 - 8043938: 6078 str r0, [r7, #4] - 804393a: 6039 str r1, [r7, #0] + 804389e: b580 push {r7, lr} + 80438a0: b084 sub sp, #16 + 80438a2: af00 add r7, sp, #0 + 80438a4: 6078 str r0, [r7, #4] + 80438a6: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - 804393c: f641 0213 movw r2, #6163 ; 0x1813 - 8043940: 6839 ldr r1, [r7, #0] - 8043942: 6878 ldr r0, [r7, #4] - 8043944: f7ca fa34 bl 800ddb0 - 8043948: 4603 mov r3, r0 - 804394a: 60fb str r3, [r7, #12] + 80438a8: f641 0213 movw r2, #6163 ; 0x1813 + 80438ac: 6839 ldr r1, [r7, #0] + 80438ae: 6878 ldr r0, [r7, #4] + 80438b0: f7ca fa48 bl 800dd44 + 80438b4: 4603 mov r3, r0 + 80438b6: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 804394c: 68fb ldr r3, [r7, #12] - 804394e: b21b sxth r3, r3 + 80438b8: 68fb ldr r3, [r7, #12] + 80438ba: b21b sxth r3, r3 } - 8043950: 4618 mov r0, r3 - 8043952: 3710 adds r7, #16 - 8043954: 46bd mov sp, r7 - 8043956: bd80 pop {r7, pc} + 80438bc: 4618 mov r0, r3 + 80438be: 3710 adds r7, #16 + 80438c0: 46bd mov sp, r7 + 80438c2: bd80 pop {r7, pc} -08043958 : +080438c4 : { - 8043958: b580 push {r7, lr} - 804395a: b084 sub sp, #16 - 804395c: af00 add r7, sp, #0 - 804395e: 6078 str r0, [r7, #4] - 8043960: 6039 str r1, [r7, #0] + 80438c4: b580 push {r7, lr} + 80438c6: b084 sub sp, #16 + 80438c8: af00 add r7, sp, #0 + 80438ca: 6078 str r0, [r7, #4] + 80438cc: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); - 8043962: f241 0232 movw r2, #4146 ; 0x1032 - 8043966: 6839 ldr r1, [r7, #0] - 8043968: 6878 ldr r0, [r7, #4] - 804396a: f7ca fa21 bl 800ddb0 - 804396e: 4603 mov r3, r0 - 8043970: 60fb str r3, [r7, #12] + 80438ce: f241 0232 movw r2, #4146 ; 0x1032 + 80438d2: 6839 ldr r1, [r7, #0] + 80438d4: 6878 ldr r0, [r7, #4] + 80438d6: f7ca fa35 bl 800dd44 + 80438da: 4603 mov r3, r0 + 80438dc: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8043972: 68fb ldr r3, [r7, #12] - 8043974: b21b sxth r3, r3 + 80438de: 68fb ldr r3, [r7, #12] + 80438e0: b21b sxth r3, r3 } - 8043976: 4618 mov r0, r3 - 8043978: 3710 adds r7, #16 - 804397a: 46bd mov sp, r7 - 804397c: bd80 pop {r7, pc} + 80438e2: 4618 mov r0, r3 + 80438e4: 3710 adds r7, #16 + 80438e6: 46bd mov sp, r7 + 80438e8: bd80 pop {r7, pc} -0804397e : +080438ea : { - 804397e: b580 push {r7, lr} - 8043980: b084 sub sp, #16 - 8043982: af00 add r7, sp, #0 - 8043984: 6078 str r0, [r7, #4] - 8043986: 6039 str r1, [r7, #0] + 80438ea: b580 push {r7, lr} + 80438ec: b084 sub sp, #16 + 80438ee: af00 add r7, sp, #0 + 80438f0: 6078 str r0, [r7, #4] + 80438f2: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_FONT); - 8043988: f241 4259 movw r2, #5209 ; 0x1459 - 804398c: 6839 ldr r1, [r7, #0] - 804398e: 6878 ldr r0, [r7, #4] - 8043990: f7ca fa0e bl 800ddb0 - 8043994: 4603 mov r3, r0 - 8043996: 60fb str r3, [r7, #12] + 80438f4: f241 4259 movw r2, #5209 ; 0x1459 + 80438f8: 6839 ldr r1, [r7, #0] + 80438fa: 6878 ldr r0, [r7, #4] + 80438fc: f7ca fa22 bl 800dd44 + 8043900: 4603 mov r3, r0 + 8043902: 60fb str r3, [r7, #12] return (const lv_font_t *)v.ptr; - 8043998: 68fb ldr r3, [r7, #12] + 8043904: 68fb ldr r3, [r7, #12] } - 804399a: 4618 mov r0, r3 - 804399c: 3710 adds r7, #16 - 804399e: 46bd mov sp, r7 - 80439a0: bd80 pop {r7, pc} + 8043906: 4618 mov r0, r3 + 8043908: 3710 adds r7, #16 + 804390a: 46bd mov sp, r7 + 804390c: bd80 pop {r7, pc} -080439a2 : +0804390e : { - 80439a2: b580 push {r7, lr} - 80439a4: b084 sub sp, #16 - 80439a6: af00 add r7, sp, #0 - 80439a8: 6078 str r0, [r7, #4] - 80439aa: 6039 str r1, [r7, #0] + 804390e: b580 push {r7, lr} + 8043910: b084 sub sp, #16 + 8043912: af00 add r7, sp, #0 + 8043914: 6078 str r0, [r7, #4] + 8043916: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LETTER_SPACE); - 80439ac: f241 425a movw r2, #5210 ; 0x145a - 80439b0: 6839 ldr r1, [r7, #0] - 80439b2: 6878 ldr r0, [r7, #4] - 80439b4: f7ca f9fc bl 800ddb0 - 80439b8: 4603 mov r3, r0 - 80439ba: 60fb str r3, [r7, #12] + 8043918: f241 425a movw r2, #5210 ; 0x145a + 804391c: 6839 ldr r1, [r7, #0] + 804391e: 6878 ldr r0, [r7, #4] + 8043920: f7ca fa10 bl 800dd44 + 8043924: 4603 mov r3, r0 + 8043926: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80439bc: 68fb ldr r3, [r7, #12] - 80439be: b21b sxth r3, r3 + 8043928: 68fb ldr r3, [r7, #12] + 804392a: b21b sxth r3, r3 } - 80439c0: 4618 mov r0, r3 - 80439c2: 3710 adds r7, #16 - 80439c4: 46bd mov sp, r7 - 80439c6: bd80 pop {r7, pc} + 804392c: 4618 mov r0, r3 + 804392e: 3710 adds r7, #16 + 8043930: 46bd mov sp, r7 + 8043932: bd80 pop {r7, pc} -080439c8 : +08043934 : { - 80439c8: b580 push {r7, lr} - 80439ca: b084 sub sp, #16 - 80439cc: af00 add r7, sp, #0 - 80439ce: 6078 str r0, [r7, #4] - 80439d0: 6039 str r1, [r7, #0] + 8043934: b580 push {r7, lr} + 8043936: b084 sub sp, #16 + 8043938: af00 add r7, sp, #0 + 804393a: 6078 str r0, [r7, #4] + 804393c: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LINE_SPACE); - 80439d2: f241 425b movw r2, #5211 ; 0x145b - 80439d6: 6839 ldr r1, [r7, #0] - 80439d8: 6878 ldr r0, [r7, #4] - 80439da: f7ca f9e9 bl 800ddb0 - 80439de: 4603 mov r3, r0 - 80439e0: 60fb str r3, [r7, #12] + 804393e: f241 425b movw r2, #5211 ; 0x145b + 8043942: 6839 ldr r1, [r7, #0] + 8043944: 6878 ldr r0, [r7, #4] + 8043946: f7ca f9fd bl 800dd44 + 804394a: 4603 mov r3, r0 + 804394c: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 80439e2: 68fb ldr r3, [r7, #12] - 80439e4: b21b sxth r3, r3 + 804394e: 68fb ldr r3, [r7, #12] + 8043950: b21b sxth r3, r3 } - 80439e6: 4618 mov r0, r3 - 80439e8: 3710 adds r7, #16 - 80439ea: 46bd mov sp, r7 - 80439ec: bd80 pop {r7, pc} + 8043952: 4618 mov r0, r3 + 8043954: 3710 adds r7, #16 + 8043956: 46bd mov sp, r7 + 8043958: bd80 pop {r7, pc} -080439ee : +0804395a : { - 80439ee: b580 push {r7, lr} - 80439f0: b084 sub sp, #16 - 80439f2: af00 add r7, sp, #0 - 80439f4: 6078 str r0, [r7, #4] - 80439f6: 6039 str r1, [r7, #0] + 804395a: b580 push {r7, lr} + 804395c: b084 sub sp, #16 + 804395e: af00 add r7, sp, #0 + 8043960: 6078 str r0, [r7, #4] + 8043962: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BASE_DIR); - 80439f8: f241 426a movw r2, #5226 ; 0x146a - 80439fc: 6839 ldr r1, [r7, #0] - 80439fe: 6878 ldr r0, [r7, #4] - 8043a00: f7ca f9d6 bl 800ddb0 - 8043a04: 4603 mov r3, r0 - 8043a06: 60fb str r3, [r7, #12] + 8043964: f241 426a movw r2, #5226 ; 0x146a + 8043968: 6839 ldr r1, [r7, #0] + 804396a: 6878 ldr r0, [r7, #4] + 804396c: f7ca f9ea bl 800dd44 + 8043970: 4603 mov r3, r0 + 8043972: 60fb str r3, [r7, #12] return (lv_base_dir_t)v.num; - 8043a08: 68fb ldr r3, [r7, #12] - 8043a0a: b2db uxtb r3, r3 + 8043974: 68fb ldr r3, [r7, #12] + 8043976: b2db uxtb r3, r3 } - 8043a0c: 4618 mov r0, r3 - 8043a0e: 3710 adds r7, #16 - 8043a10: 46bd mov sp, r7 - 8043a12: bd80 pop {r7, pc} + 8043978: 4618 mov r0, r3 + 804397a: 3710 adds r7, #16 + 804397c: 46bd mov sp, r7 + 804397e: bd80 pop {r7, pc} -08043a14 : +08043980 : /********************** * STATIC FUNCTIONS **********************/ static void lv_table_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 8043a14: b580 push {r7, lr} - 8043a16: b084 sub sp, #16 - 8043a18: af00 add r7, sp, #0 - 8043a1a: 6078 str r0, [r7, #4] - 8043a1c: 6039 str r1, [r7, #0] + 8043980: b580 push {r7, lr} + 8043982: b084 sub sp, #16 + 8043984: af00 add r7, sp, #0 + 8043986: 6078 str r0, [r7, #4] + 8043988: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_table_t * table = (lv_table_t *)obj; - 8043a1e: 683b ldr r3, [r7, #0] - 8043a20: 60fb str r3, [r7, #12] + 804398a: 683b ldr r3, [r7, #0] + 804398c: 60fb str r3, [r7, #12] table->col_cnt = 1; - 8043a22: 68fb ldr r3, [r7, #12] - 8043a24: 2201 movs r2, #1 - 8043a26: 849a strh r2, [r3, #36] ; 0x24 + 804398e: 68fb ldr r3, [r7, #12] + 8043990: 2201 movs r2, #1 + 8043992: 849a strh r2, [r3, #36] ; 0x24 table->row_cnt = 1; - 8043a28: 68fb ldr r3, [r7, #12] - 8043a2a: 2201 movs r2, #1 - 8043a2c: 84da strh r2, [r3, #38] ; 0x26 + 8043994: 68fb ldr r3, [r7, #12] + 8043996: 2201 movs r2, #1 + 8043998: 84da strh r2, [r3, #38] ; 0x26 table->col_w = lv_mem_alloc(table->col_cnt * sizeof(table->col_w[0])); - 8043a2e: 68fb ldr r3, [r7, #12] - 8043a30: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8043a32: 005b lsls r3, r3, #1 - 8043a34: 4618 mov r0, r3 - 8043a36: f7ee ff2f bl 8032898 - 8043a3a: 4602 mov r2, r0 - 8043a3c: 68fb ldr r3, [r7, #12] - 8043a3e: 631a str r2, [r3, #48] ; 0x30 + 804399a: 68fb ldr r3, [r7, #12] + 804399c: 8c9b ldrh r3, [r3, #36] ; 0x24 + 804399e: 005b lsls r3, r3, #1 + 80439a0: 4618 mov r0, r3 + 80439a2: f7ee ff2f bl 8032804 + 80439a6: 4602 mov r2, r0 + 80439a8: 68fb ldr r3, [r7, #12] + 80439aa: 631a str r2, [r3, #48] ; 0x30 table->row_h = lv_mem_alloc(table->row_cnt * sizeof(table->row_h[0])); - 8043a40: 68fb ldr r3, [r7, #12] - 8043a42: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8043a44: 005b lsls r3, r3, #1 - 8043a46: 4618 mov r0, r3 - 8043a48: f7ee ff26 bl 8032898 - 8043a4c: 4602 mov r2, r0 - 8043a4e: 68fb ldr r3, [r7, #12] - 8043a50: 62da str r2, [r3, #44] ; 0x2c + 80439ac: 68fb ldr r3, [r7, #12] + 80439ae: 8cdb ldrh r3, [r3, #38] ; 0x26 + 80439b0: 005b lsls r3, r3, #1 + 80439b2: 4618 mov r0, r3 + 80439b4: f7ee ff26 bl 8032804 + 80439b8: 4602 mov r2, r0 + 80439ba: 68fb ldr r3, [r7, #12] + 80439bc: 62da str r2, [r3, #44] ; 0x2c table->col_w[0] = LV_DPI_DEF; - 8043a52: 68fb ldr r3, [r7, #12] - 8043a54: 6b1b ldr r3, [r3, #48] ; 0x30 - 8043a56: 2282 movs r2, #130 ; 0x82 - 8043a58: 801a strh r2, [r3, #0] + 80439be: 68fb ldr r3, [r7, #12] + 80439c0: 6b1b ldr r3, [r3, #48] ; 0x30 + 80439c2: 2282 movs r2, #130 ; 0x82 + 80439c4: 801a strh r2, [r3, #0] table->row_h[0] = LV_DPI_DEF; - 8043a5a: 68fb ldr r3, [r7, #12] - 8043a5c: 6adb ldr r3, [r3, #44] ; 0x2c - 8043a5e: 2282 movs r2, #130 ; 0x82 - 8043a60: 801a strh r2, [r3, #0] + 80439c6: 68fb ldr r3, [r7, #12] + 80439c8: 6adb ldr r3, [r3, #44] ; 0x2c + 80439ca: 2282 movs r2, #130 ; 0x82 + 80439cc: 801a strh r2, [r3, #0] table->cell_data = lv_mem_realloc(table->cell_data, table->row_cnt * table->col_cnt * sizeof(char *)); - 8043a62: 68fb ldr r3, [r7, #12] - 8043a64: 6a9a ldr r2, [r3, #40] ; 0x28 - 8043a66: 68fb ldr r3, [r7, #12] - 8043a68: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8043a6a: 4619 mov r1, r3 - 8043a6c: 68fb ldr r3, [r7, #12] - 8043a6e: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8043a70: fb01 f303 mul.w r3, r1, r3 - 8043a74: 009b lsls r3, r3, #2 - 8043a76: 4619 mov r1, r3 - 8043a78: 4610 mov r0, r2 - 8043a7a: f7ee ff4b bl 8032914 - 8043a7e: 4602 mov r2, r0 - 8043a80: 68fb ldr r3, [r7, #12] - 8043a82: 629a str r2, [r3, #40] ; 0x28 + 80439ce: 68fb ldr r3, [r7, #12] + 80439d0: 6a9a ldr r2, [r3, #40] ; 0x28 + 80439d2: 68fb ldr r3, [r7, #12] + 80439d4: 8cdb ldrh r3, [r3, #38] ; 0x26 + 80439d6: 4619 mov r1, r3 + 80439d8: 68fb ldr r3, [r7, #12] + 80439da: 8c9b ldrh r3, [r3, #36] ; 0x24 + 80439dc: fb01 f303 mul.w r3, r1, r3 + 80439e0: 009b lsls r3, r3, #2 + 80439e2: 4619 mov r1, r3 + 80439e4: 4610 mov r0, r2 + 80439e6: f7ee ff4b bl 8032880 + 80439ea: 4602 mov r2, r0 + 80439ec: 68fb ldr r3, [r7, #12] + 80439ee: 629a str r2, [r3, #40] ; 0x28 table->cell_data[0] = NULL; - 8043a84: 68fb ldr r3, [r7, #12] - 8043a86: 6a9b ldr r3, [r3, #40] ; 0x28 - 8043a88: 2200 movs r2, #0 - 8043a8a: 601a str r2, [r3, #0] + 80439f0: 68fb ldr r3, [r7, #12] + 80439f2: 6a9b ldr r3, [r3, #40] ; 0x28 + 80439f4: 2200 movs r2, #0 + 80439f6: 601a str r2, [r3, #0] LV_TRACE_OBJ_CREATE("finished"); } - 8043a8c: bf00 nop - 8043a8e: 3710 adds r7, #16 - 8043a90: 46bd mov sp, r7 - 8043a92: bd80 pop {r7, pc} + 80439f8: bf00 nop + 80439fa: 3710 adds r7, #16 + 80439fc: 46bd mov sp, r7 + 80439fe: bd80 pop {r7, pc} -08043a94 : +08043a00 : static void lv_table_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 8043a94: b580 push {r7, lr} - 8043a96: b084 sub sp, #16 - 8043a98: af00 add r7, sp, #0 - 8043a9a: 6078 str r0, [r7, #4] - 8043a9c: 6039 str r1, [r7, #0] + 8043a00: b580 push {r7, lr} + 8043a02: b084 sub sp, #16 + 8043a04: af00 add r7, sp, #0 + 8043a06: 6078 str r0, [r7, #4] + 8043a08: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_table_t * table = (lv_table_t *)obj; - 8043a9e: 683b ldr r3, [r7, #0] - 8043aa0: 60bb str r3, [r7, #8] + 8043a0a: 683b ldr r3, [r7, #0] + 8043a0c: 60bb str r3, [r7, #8] /*Free the cell texts*/ uint16_t i; for(i = 0; i < table->col_cnt * table->row_cnt; i++) { - 8043aa2: 2300 movs r3, #0 - 8043aa4: 81fb strh r3, [r7, #14] - 8043aa6: e01a b.n 8043ade + 8043a0e: 2300 movs r3, #0 + 8043a10: 81fb strh r3, [r7, #14] + 8043a12: e01a b.n 8043a4a if(table->cell_data[i]) { - 8043aa8: 68bb ldr r3, [r7, #8] - 8043aaa: 6a9a ldr r2, [r3, #40] ; 0x28 - 8043aac: 89fb ldrh r3, [r7, #14] - 8043aae: 009b lsls r3, r3, #2 - 8043ab0: 4413 add r3, r2 - 8043ab2: 681b ldr r3, [r3, #0] - 8043ab4: 2b00 cmp r3, #0 - 8043ab6: d00f beq.n 8043ad8 + 8043a14: 68bb ldr r3, [r7, #8] + 8043a16: 6a9a ldr r2, [r3, #40] ; 0x28 + 8043a18: 89fb ldrh r3, [r7, #14] + 8043a1a: 009b lsls r3, r3, #2 + 8043a1c: 4413 add r3, r2 + 8043a1e: 681b ldr r3, [r3, #0] + 8043a20: 2b00 cmp r3, #0 + 8043a22: d00f beq.n 8043a44 lv_mem_free(table->cell_data[i]); - 8043ab8: 68bb ldr r3, [r7, #8] - 8043aba: 6a9a ldr r2, [r3, #40] ; 0x28 - 8043abc: 89fb ldrh r3, [r7, #14] - 8043abe: 009b lsls r3, r3, #2 - 8043ac0: 4413 add r3, r2 - 8043ac2: 681b ldr r3, [r3, #0] - 8043ac4: 4618 mov r0, r3 - 8043ac6: f7ee ff09 bl 80328dc + 8043a24: 68bb ldr r3, [r7, #8] + 8043a26: 6a9a ldr r2, [r3, #40] ; 0x28 + 8043a28: 89fb ldrh r3, [r7, #14] + 8043a2a: 009b lsls r3, r3, #2 + 8043a2c: 4413 add r3, r2 + 8043a2e: 681b ldr r3, [r3, #0] + 8043a30: 4618 mov r0, r3 + 8043a32: f7ee ff09 bl 8032848 table->cell_data[i] = NULL; - 8043aca: 68bb ldr r3, [r7, #8] - 8043acc: 6a9a ldr r2, [r3, #40] ; 0x28 - 8043ace: 89fb ldrh r3, [r7, #14] - 8043ad0: 009b lsls r3, r3, #2 - 8043ad2: 4413 add r3, r2 - 8043ad4: 2200 movs r2, #0 - 8043ad6: 601a str r2, [r3, #0] + 8043a36: 68bb ldr r3, [r7, #8] + 8043a38: 6a9a ldr r2, [r3, #40] ; 0x28 + 8043a3a: 89fb ldrh r3, [r7, #14] + 8043a3c: 009b lsls r3, r3, #2 + 8043a3e: 4413 add r3, r2 + 8043a40: 2200 movs r2, #0 + 8043a42: 601a str r2, [r3, #0] for(i = 0; i < table->col_cnt * table->row_cnt; i++) { - 8043ad8: 89fb ldrh r3, [r7, #14] - 8043ada: 3301 adds r3, #1 - 8043adc: 81fb strh r3, [r7, #14] - 8043ade: 89fa ldrh r2, [r7, #14] - 8043ae0: 68bb ldr r3, [r7, #8] - 8043ae2: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8043ae4: 4619 mov r1, r3 - 8043ae6: 68bb ldr r3, [r7, #8] - 8043ae8: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8043aea: fb01 f303 mul.w r3, r1, r3 - 8043aee: 429a cmp r2, r3 - 8043af0: dbda blt.n 8043aa8 + 8043a44: 89fb ldrh r3, [r7, #14] + 8043a46: 3301 adds r3, #1 + 8043a48: 81fb strh r3, [r7, #14] + 8043a4a: 89fa ldrh r2, [r7, #14] + 8043a4c: 68bb ldr r3, [r7, #8] + 8043a4e: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8043a50: 4619 mov r1, r3 + 8043a52: 68bb ldr r3, [r7, #8] + 8043a54: 8cdb ldrh r3, [r3, #38] ; 0x26 + 8043a56: fb01 f303 mul.w r3, r1, r3 + 8043a5a: 429a cmp r2, r3 + 8043a5c: dbda blt.n 8043a14 } } if(table->cell_data) lv_mem_free(table->cell_data); - 8043af2: 68bb ldr r3, [r7, #8] - 8043af4: 6a9b ldr r3, [r3, #40] ; 0x28 - 8043af6: 2b00 cmp r3, #0 - 8043af8: d004 beq.n 8043b04 - 8043afa: 68bb ldr r3, [r7, #8] - 8043afc: 6a9b ldr r3, [r3, #40] ; 0x28 - 8043afe: 4618 mov r0, r3 - 8043b00: f7ee feec bl 80328dc + 8043a5e: 68bb ldr r3, [r7, #8] + 8043a60: 6a9b ldr r3, [r3, #40] ; 0x28 + 8043a62: 2b00 cmp r3, #0 + 8043a64: d004 beq.n 8043a70 + 8043a66: 68bb ldr r3, [r7, #8] + 8043a68: 6a9b ldr r3, [r3, #40] ; 0x28 + 8043a6a: 4618 mov r0, r3 + 8043a6c: f7ee feec bl 8032848 if(table->row_h) lv_mem_free(table->row_h); - 8043b04: 68bb ldr r3, [r7, #8] - 8043b06: 6adb ldr r3, [r3, #44] ; 0x2c - 8043b08: 2b00 cmp r3, #0 - 8043b0a: d004 beq.n 8043b16 - 8043b0c: 68bb ldr r3, [r7, #8] - 8043b0e: 6adb ldr r3, [r3, #44] ; 0x2c - 8043b10: 4618 mov r0, r3 - 8043b12: f7ee fee3 bl 80328dc + 8043a70: 68bb ldr r3, [r7, #8] + 8043a72: 6adb ldr r3, [r3, #44] ; 0x2c + 8043a74: 2b00 cmp r3, #0 + 8043a76: d004 beq.n 8043a82 + 8043a78: 68bb ldr r3, [r7, #8] + 8043a7a: 6adb ldr r3, [r3, #44] ; 0x2c + 8043a7c: 4618 mov r0, r3 + 8043a7e: f7ee fee3 bl 8032848 if(table->col_w) lv_mem_free(table->col_w); - 8043b16: 68bb ldr r3, [r7, #8] - 8043b18: 6b1b ldr r3, [r3, #48] ; 0x30 - 8043b1a: 2b00 cmp r3, #0 - 8043b1c: d004 beq.n 8043b28 - 8043b1e: 68bb ldr r3, [r7, #8] - 8043b20: 6b1b ldr r3, [r3, #48] ; 0x30 - 8043b22: 4618 mov r0, r3 - 8043b24: f7ee feda bl 80328dc + 8043a82: 68bb ldr r3, [r7, #8] + 8043a84: 6b1b ldr r3, [r3, #48] ; 0x30 + 8043a86: 2b00 cmp r3, #0 + 8043a88: d004 beq.n 8043a94 + 8043a8a: 68bb ldr r3, [r7, #8] + 8043a8c: 6b1b ldr r3, [r3, #48] ; 0x30 + 8043a8e: 4618 mov r0, r3 + 8043a90: f7ee feda bl 8032848 } - 8043b28: bf00 nop - 8043b2a: 3710 adds r7, #16 - 8043b2c: 46bd mov sp, r7 - 8043b2e: bd80 pop {r7, pc} + 8043a94: bf00 nop + 8043a96: 3710 adds r7, #16 + 8043a98: 46bd mov sp, r7 + 8043a9a: bd80 pop {r7, pc} -08043b30 : +08043a9c : static void lv_table_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 8043b30: b580 push {r7, lr} - 8043b32: b090 sub sp, #64 ; 0x40 - 8043b34: af00 add r7, sp, #0 - 8043b36: 6078 str r0, [r7, #4] - 8043b38: 6039 str r1, [r7, #0] + 8043a9c: b580 push {r7, lr} + 8043a9e: b090 sub sp, #64 ; 0x40 + 8043aa0: af00 add r7, sp, #0 + 8043aa2: 6078 str r0, [r7, #4] + 8043aa4: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res; /*Call the ancestor's event handler*/ res = lv_obj_event_base(MY_CLASS, e); - 8043b3a: 6839 ldr r1, [r7, #0] - 8043b3c: 489f ldr r0, [pc, #636] ; (8043dbc ) - 8043b3e: f7be fce1 bl 8002504 - 8043b42: 4603 mov r3, r0 - 8043b44: f887 302f strb.w r3, [r7, #47] ; 0x2f + 8043aa6: 6839 ldr r1, [r7, #0] + 8043aa8: 489f ldr r0, [pc, #636] ; (8043d28 ) + 8043aaa: f7be fcf5 bl 8002498 + 8043aae: 4603 mov r3, r0 + 8043ab0: f887 302f strb.w r3, [r7, #47] ; 0x2f if(res != LV_RES_OK) return; - 8043b48: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8043b4c: 2b01 cmp r3, #1 - 8043b4e: f040 8187 bne.w 8043e60 + 8043ab4: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8043ab8: 2b01 cmp r3, #1 + 8043aba: f040 8187 bne.w 8043dcc lv_event_code_t code = lv_event_get_code(e); - 8043b52: 6838 ldr r0, [r7, #0] - 8043b54: f7be fd2a bl 80025ac - 8043b58: 4603 mov r3, r0 - 8043b5a: f887 302e strb.w r3, [r7, #46] ; 0x2e + 8043abe: 6838 ldr r0, [r7, #0] + 8043ac0: f7be fd3e bl 8002540 + 8043ac4: 4603 mov r3, r0 + 8043ac6: f887 302e strb.w r3, [r7, #46] ; 0x2e lv_obj_t * obj = lv_event_get_target(e); - 8043b5e: 6838 ldr r0, [r7, #0] - 8043b60: f7be fd0e bl 8002580 - 8043b64: 62b8 str r0, [r7, #40] ; 0x28 + 8043aca: 6838 ldr r0, [r7, #0] + 8043acc: f7be fd22 bl 8002514 + 8043ad0: 62b8 str r0, [r7, #40] ; 0x28 lv_table_t * table = (lv_table_t *)obj; - 8043b66: 6abb ldr r3, [r7, #40] ; 0x28 - 8043b68: 627b str r3, [r7, #36] ; 0x24 + 8043ad2: 6abb ldr r3, [r7, #40] ; 0x28 + 8043ad4: 627b str r3, [r7, #36] ; 0x24 if(code == LV_EVENT_STYLE_CHANGED) { - 8043b6a: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 8043b6e: 2b2a cmp r3, #42 ; 0x2a - 8043b70: d104 bne.n 8043b7c + 8043ad6: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 8043ada: 2b2a cmp r3, #42 ; 0x2a + 8043adc: d104 bne.n 8043ae8 refr_size(obj, 0); - 8043b72: 2100 movs r1, #0 - 8043b74: 6ab8 ldr r0, [r7, #40] ; 0x28 - 8043b76: f000 fe89 bl 804488c - 8043b7a: e178 b.n 8043e6e + 8043ade: 2100 movs r1, #0 + 8043ae0: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8043ae2: f000 fe89 bl 80447f8 + 8043ae6: e178 b.n 8043dda } else if(code == LV_EVENT_GET_SELF_SIZE) { - 8043b7c: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 8043b80: 2b2c cmp r3, #44 ; 0x2c - 8043b82: d144 bne.n 8043c0e + 8043ae8: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 8043aec: 2b2c cmp r3, #44 ; 0x2c + 8043aee: d144 bne.n 8043b7a lv_point_t * p = lv_event_get_param(e); - 8043b84: 6838 ldr r0, [r7, #0] - 8043b86: f7be fd1f bl 80025c8 - 8043b8a: 6138 str r0, [r7, #16] + 8043af0: 6838 ldr r0, [r7, #0] + 8043af2: f7be fd33 bl 800255c + 8043af6: 6138 str r0, [r7, #16] uint32_t i; lv_coord_t w = 0; - 8043b8c: 2300 movs r3, #0 - 8043b8e: 877b strh r3, [r7, #58] ; 0x3a + 8043af8: 2300 movs r3, #0 + 8043afa: 877b strh r3, [r7, #58] ; 0x3a for(i = 0; i < table->col_cnt; i++) w += table->col_w[i]; - 8043b90: 2300 movs r3, #0 - 8043b92: 63fb str r3, [r7, #60] ; 0x3c - 8043b94: e00e b.n 8043bb4 - 8043b96: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043b98: 6b1a ldr r2, [r3, #48] ; 0x30 - 8043b9a: 6bfb ldr r3, [r7, #60] ; 0x3c - 8043b9c: 005b lsls r3, r3, #1 - 8043b9e: 4413 add r3, r2 - 8043ba0: f9b3 3000 ldrsh.w r3, [r3] - 8043ba4: b29a uxth r2, r3 - 8043ba6: 8f7b ldrh r3, [r7, #58] ; 0x3a - 8043ba8: 4413 add r3, r2 - 8043baa: b29b uxth r3, r3 - 8043bac: 877b strh r3, [r7, #58] ; 0x3a - 8043bae: 6bfb ldr r3, [r7, #60] ; 0x3c - 8043bb0: 3301 adds r3, #1 - 8043bb2: 63fb str r3, [r7, #60] ; 0x3c - 8043bb4: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043bb6: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8043bb8: 461a mov r2, r3 - 8043bba: 6bfb ldr r3, [r7, #60] ; 0x3c - 8043bbc: 4293 cmp r3, r2 - 8043bbe: d3ea bcc.n 8043b96 + 8043afc: 2300 movs r3, #0 + 8043afe: 63fb str r3, [r7, #60] ; 0x3c + 8043b00: e00e b.n 8043b20 + 8043b02: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043b04: 6b1a ldr r2, [r3, #48] ; 0x30 + 8043b06: 6bfb ldr r3, [r7, #60] ; 0x3c + 8043b08: 005b lsls r3, r3, #1 + 8043b0a: 4413 add r3, r2 + 8043b0c: f9b3 3000 ldrsh.w r3, [r3] + 8043b10: b29a uxth r2, r3 + 8043b12: 8f7b ldrh r3, [r7, #58] ; 0x3a + 8043b14: 4413 add r3, r2 + 8043b16: b29b uxth r3, r3 + 8043b18: 877b strh r3, [r7, #58] ; 0x3a + 8043b1a: 6bfb ldr r3, [r7, #60] ; 0x3c + 8043b1c: 3301 adds r3, #1 + 8043b1e: 63fb str r3, [r7, #60] ; 0x3c + 8043b20: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043b22: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8043b24: 461a mov r2, r3 + 8043b26: 6bfb ldr r3, [r7, #60] ; 0x3c + 8043b28: 4293 cmp r3, r2 + 8043b2a: d3ea bcc.n 8043b02 lv_coord_t h = 0; - 8043bc0: 2300 movs r3, #0 - 8043bc2: 873b strh r3, [r7, #56] ; 0x38 + 8043b2c: 2300 movs r3, #0 + 8043b2e: 873b strh r3, [r7, #56] ; 0x38 for(i = 0; i < table->row_cnt; i++) h += table->row_h[i]; - 8043bc4: 2300 movs r3, #0 - 8043bc6: 63fb str r3, [r7, #60] ; 0x3c - 8043bc8: e00e b.n 8043be8 - 8043bca: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043bcc: 6ada ldr r2, [r3, #44] ; 0x2c - 8043bce: 6bfb ldr r3, [r7, #60] ; 0x3c - 8043bd0: 005b lsls r3, r3, #1 - 8043bd2: 4413 add r3, r2 - 8043bd4: f9b3 3000 ldrsh.w r3, [r3] - 8043bd8: b29a uxth r2, r3 - 8043bda: 8f3b ldrh r3, [r7, #56] ; 0x38 - 8043bdc: 4413 add r3, r2 - 8043bde: b29b uxth r3, r3 - 8043be0: 873b strh r3, [r7, #56] ; 0x38 - 8043be2: 6bfb ldr r3, [r7, #60] ; 0x3c - 8043be4: 3301 adds r3, #1 - 8043be6: 63fb str r3, [r7, #60] ; 0x3c - 8043be8: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043bea: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8043bec: 461a mov r2, r3 - 8043bee: 6bfb ldr r3, [r7, #60] ; 0x3c - 8043bf0: 4293 cmp r3, r2 - 8043bf2: d3ea bcc.n 8043bca + 8043b30: 2300 movs r3, #0 + 8043b32: 63fb str r3, [r7, #60] ; 0x3c + 8043b34: e00e b.n 8043b54 + 8043b36: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043b38: 6ada ldr r2, [r3, #44] ; 0x2c + 8043b3a: 6bfb ldr r3, [r7, #60] ; 0x3c + 8043b3c: 005b lsls r3, r3, #1 + 8043b3e: 4413 add r3, r2 + 8043b40: f9b3 3000 ldrsh.w r3, [r3] + 8043b44: b29a uxth r2, r3 + 8043b46: 8f3b ldrh r3, [r7, #56] ; 0x38 + 8043b48: 4413 add r3, r2 + 8043b4a: b29b uxth r3, r3 + 8043b4c: 873b strh r3, [r7, #56] ; 0x38 + 8043b4e: 6bfb ldr r3, [r7, #60] ; 0x3c + 8043b50: 3301 adds r3, #1 + 8043b52: 63fb str r3, [r7, #60] ; 0x3c + 8043b54: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043b56: 8cdb ldrh r3, [r3, #38] ; 0x26 + 8043b58: 461a mov r2, r3 + 8043b5a: 6bfb ldr r3, [r7, #60] ; 0x3c + 8043b5c: 4293 cmp r3, r2 + 8043b5e: d3ea bcc.n 8043b36 p->x = w - 1; - 8043bf4: 8f7b ldrh r3, [r7, #58] ; 0x3a - 8043bf6: 3b01 subs r3, #1 - 8043bf8: b29b uxth r3, r3 - 8043bfa: b21a sxth r2, r3 - 8043bfc: 693b ldr r3, [r7, #16] - 8043bfe: 801a strh r2, [r3, #0] + 8043b60: 8f7b ldrh r3, [r7, #58] ; 0x3a + 8043b62: 3b01 subs r3, #1 + 8043b64: b29b uxth r3, r3 + 8043b66: b21a sxth r2, r3 + 8043b68: 693b ldr r3, [r7, #16] + 8043b6a: 801a strh r2, [r3, #0] p->y = h - 1; - 8043c00: 8f3b ldrh r3, [r7, #56] ; 0x38 - 8043c02: 3b01 subs r3, #1 - 8043c04: b29b uxth r3, r3 - 8043c06: b21a sxth r2, r3 - 8043c08: 693b ldr r3, [r7, #16] - 8043c0a: 805a strh r2, [r3, #2] - 8043c0c: e12f b.n 8043e6e + 8043b6c: 8f3b ldrh r3, [r7, #56] ; 0x38 + 8043b6e: 3b01 subs r3, #1 + 8043b70: b29b uxth r3, r3 + 8043b72: b21a sxth r2, r3 + 8043b74: 693b ldr r3, [r7, #16] + 8043b76: 805a strh r2, [r3, #2] + 8043b78: e12f b.n 8043dda } else if(code == LV_EVENT_PRESSED || code == LV_EVENT_PRESSING) { - 8043c0e: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 8043c12: 2b01 cmp r3, #1 - 8043c14: d003 beq.n 8043c1e - 8043c16: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 8043c1a: 2b02 cmp r3, #2 - 8043c1c: d122 bne.n 8043c64 + 8043b7a: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 8043b7e: 2b01 cmp r3, #1 + 8043b80: d003 beq.n 8043b8a + 8043b82: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 8043b86: 2b02 cmp r3, #2 + 8043b88: d122 bne.n 8043bd0 uint16_t col; uint16_t row; lv_res_t pr_res = get_pressed_cell(obj, &row, &col); - 8043c1e: f107 020e add.w r2, r7, #14 - 8043c22: f107 030c add.w r3, r7, #12 - 8043c26: 4619 mov r1, r3 - 8043c28: 6ab8 ldr r0, [r7, #40] ; 0x28 - 8043c2a: f000 ffc1 bl 8044bb0 - 8043c2e: 4603 mov r3, r0 - 8043c30: 75bb strb r3, [r7, #22] + 8043b8a: f107 020e add.w r2, r7, #14 + 8043b8e: f107 030c add.w r3, r7, #12 + 8043b92: 4619 mov r1, r3 + 8043b94: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8043b96: f000 ffc1 bl 8044b1c + 8043b9a: 4603 mov r3, r0 + 8043b9c: 75bb strb r3, [r7, #22] if(pr_res == LV_RES_OK && (table->col_act != col || table->row_act != row)) { - 8043c32: 7dbb ldrb r3, [r7, #22] - 8043c34: 2b01 cmp r3, #1 - 8043c36: f040 8115 bne.w 8043e64 - 8043c3a: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043c3c: 8e9a ldrh r2, [r3, #52] ; 0x34 - 8043c3e: 89fb ldrh r3, [r7, #14] - 8043c40: 429a cmp r2, r3 - 8043c42: d105 bne.n 8043c50 - 8043c44: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043c46: 8eda ldrh r2, [r3, #54] ; 0x36 - 8043c48: 89bb ldrh r3, [r7, #12] - 8043c4a: 429a cmp r2, r3 - 8043c4c: f000 810a beq.w 8043e64 + 8043b9e: 7dbb ldrb r3, [r7, #22] + 8043ba0: 2b01 cmp r3, #1 + 8043ba2: f040 8115 bne.w 8043dd0 + 8043ba6: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043ba8: 8e9a ldrh r2, [r3, #52] ; 0x34 + 8043baa: 89fb ldrh r3, [r7, #14] + 8043bac: 429a cmp r2, r3 + 8043bae: d105 bne.n 8043bbc + 8043bb0: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043bb2: 8eda ldrh r2, [r3, #54] ; 0x36 + 8043bb4: 89bb ldrh r3, [r7, #12] + 8043bb6: 429a cmp r2, r3 + 8043bb8: f000 810a beq.w 8043dd0 table->col_act = col; - 8043c50: 89fa ldrh r2, [r7, #14] - 8043c52: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043c54: 869a strh r2, [r3, #52] ; 0x34 + 8043bbc: 89fa ldrh r2, [r7, #14] + 8043bbe: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043bc0: 869a strh r2, [r3, #52] ; 0x34 table->row_act = row; - 8043c56: 89ba ldrh r2, [r7, #12] - 8043c58: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043c5a: 86da strh r2, [r3, #54] ; 0x36 + 8043bc2: 89ba ldrh r2, [r7, #12] + 8043bc4: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043bc6: 86da strh r2, [r3, #54] ; 0x36 lv_obj_invalidate(obj); - 8043c5c: 6ab8 ldr r0, [r7, #40] ; 0x28 - 8043c5e: f7c6 ff28 bl 800aab2 + 8043bc8: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8043bca: f7c6 ff3c bl 800aa46 else if(code == LV_EVENT_PRESSED || code == LV_EVENT_PRESSING) { - 8043c62: e0ff b.n 8043e64 + 8043bce: e0ff b.n 8043dd0 } } else if(code == LV_EVENT_RELEASED) { - 8043c64: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 8043c68: 2b08 cmp r3, #8 - 8043c6a: d13d bne.n 8043ce8 + 8043bd0: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 8043bd4: 2b08 cmp r3, #8 + 8043bd6: d13d bne.n 8043c54 lv_obj_invalidate(obj); - 8043c6c: 6ab8 ldr r0, [r7, #40] ; 0x28 - 8043c6e: f7c6 ff20 bl 800aab2 + 8043bd8: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8043bda: f7c6 ff34 bl 800aa46 lv_indev_t * indev = lv_indev_get_act(); - 8043c72: f7bf fb51 bl 8003318 - 8043c76: 61f8 str r0, [r7, #28] + 8043bde: f7bf fb65 bl 80032ac + 8043be2: 61f8 str r0, [r7, #28] lv_obj_t * scroll_obj = lv_indev_get_scroll_obj(indev); - 8043c78: 69f8 ldr r0, [r7, #28] - 8043c7a: f7bf fc8f bl 800359c - 8043c7e: 61b8 str r0, [r7, #24] + 8043be4: 69f8 ldr r0, [r7, #28] + 8043be6: f7bf fca3 bl 8003530 + 8043bea: 61b8 str r0, [r7, #24] if(table->col_act != LV_TABLE_CELL_NONE && table->row_act != LV_TABLE_CELL_NONE && scroll_obj == NULL) { - 8043c80: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043c82: 8e9b ldrh r3, [r3, #52] ; 0x34 - 8043c84: f64f 72ff movw r2, #65535 ; 0xffff - 8043c88: 4293 cmp r3, r2 - 8043c8a: d015 beq.n 8043cb8 - 8043c8c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043c8e: 8edb ldrh r3, [r3, #54] ; 0x36 - 8043c90: f64f 72ff movw r2, #65535 ; 0xffff - 8043c94: 4293 cmp r3, r2 - 8043c96: d00f beq.n 8043cb8 - 8043c98: 69bb ldr r3, [r7, #24] - 8043c9a: 2b00 cmp r3, #0 - 8043c9c: d10c bne.n 8043cb8 + 8043bec: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043bee: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8043bf0: f64f 72ff movw r2, #65535 ; 0xffff + 8043bf4: 4293 cmp r3, r2 + 8043bf6: d015 beq.n 8043c24 + 8043bf8: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043bfa: 8edb ldrh r3, [r3, #54] ; 0x36 + 8043bfc: f64f 72ff movw r2, #65535 ; 0xffff + 8043c00: 4293 cmp r3, r2 + 8043c02: d00f beq.n 8043c24 + 8043c04: 69bb ldr r3, [r7, #24] + 8043c06: 2b00 cmp r3, #0 + 8043c08: d10c bne.n 8043c24 res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 8043c9e: 2200 movs r2, #0 - 8043ca0: 211c movs r1, #28 - 8043ca2: 6ab8 ldr r0, [r7, #40] ; 0x28 - 8043ca4: f7be fbec bl 8002480 - 8043ca8: 4603 mov r3, r0 - 8043caa: f887 302f strb.w r3, [r7, #47] ; 0x2f + 8043c0a: 2200 movs r2, #0 + 8043c0c: 211c movs r1, #28 + 8043c0e: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8043c10: f7be fc00 bl 8002414 + 8043c14: 4603 mov r3, r0 + 8043c16: f887 302f strb.w r3, [r7, #47] ; 0x2f if(res != LV_RES_OK) return; - 8043cae: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8043cb2: 2b01 cmp r3, #1 - 8043cb4: f040 80d8 bne.w 8043e68 + 8043c1a: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8043c1e: 2b01 cmp r3, #1 + 8043c20: f040 80d8 bne.w 8043dd4 } lv_indev_type_t indev_type = lv_indev_get_type(lv_indev_get_act()); - 8043cb8: f7bf fb2e bl 8003318 - 8043cbc: 4603 mov r3, r0 - 8043cbe: 4618 mov r0, r3 - 8043cc0: f7bf fb34 bl 800332c - 8043cc4: 4603 mov r3, r0 - 8043cc6: 75fb strb r3, [r7, #23] + 8043c24: f7bf fb42 bl 80032ac + 8043c28: 4603 mov r3, r0 + 8043c2a: 4618 mov r0, r3 + 8043c2c: f7bf fb48 bl 80032c0 + 8043c30: 4603 mov r3, r0 + 8043c32: 75fb strb r3, [r7, #23] if(indev_type == LV_INDEV_TYPE_POINTER || indev_type == LV_INDEV_TYPE_BUTTON) { - 8043cc8: 7dfb ldrb r3, [r7, #23] - 8043cca: 2b01 cmp r3, #1 - 8043ccc: d003 beq.n 8043cd6 - 8043cce: 7dfb ldrb r3, [r7, #23] - 8043cd0: 2b03 cmp r3, #3 - 8043cd2: f040 80cc bne.w 8043e6e + 8043c34: 7dfb ldrb r3, [r7, #23] + 8043c36: 2b01 cmp r3, #1 + 8043c38: d003 beq.n 8043c42 + 8043c3a: 7dfb ldrb r3, [r7, #23] + 8043c3c: 2b03 cmp r3, #3 + 8043c3e: f040 80cc bne.w 8043dda table->col_act = LV_TABLE_CELL_NONE; - 8043cd6: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043cd8: f64f 72ff movw r2, #65535 ; 0xffff - 8043cdc: 869a strh r2, [r3, #52] ; 0x34 + 8043c42: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043c44: f64f 72ff movw r2, #65535 ; 0xffff + 8043c48: 869a strh r2, [r3, #52] ; 0x34 table->row_act = LV_TABLE_CELL_NONE; - 8043cde: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043ce0: f64f 72ff movw r2, #65535 ; 0xffff - 8043ce4: 86da strh r2, [r3, #54] ; 0x36 - 8043ce6: e0c2 b.n 8043e6e + 8043c4a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043c4c: f64f 72ff movw r2, #65535 ; 0xffff + 8043c50: 86da strh r2, [r3, #54] ; 0x36 + 8043c52: e0c2 b.n 8043dda } } else if(code == LV_EVENT_FOCUSED) { - 8043ce8: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 8043cec: 2b0e cmp r3, #14 - 8043cee: d103 bne.n 8043cf8 + 8043c54: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 8043c58: 2b0e cmp r3, #14 + 8043c5a: d103 bne.n 8043c64 lv_obj_invalidate(obj); - 8043cf0: 6ab8 ldr r0, [r7, #40] ; 0x28 - 8043cf2: f7c6 fede bl 800aab2 - 8043cf6: e0ba b.n 8043e6e + 8043c5c: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8043c5e: f7c6 fef2 bl 800aa46 + 8043c62: e0ba b.n 8043dda } else if(code == LV_EVENT_KEY) { - 8043cf8: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 8043cfc: 2b0d cmp r3, #13 - 8043cfe: f040 80a7 bne.w 8043e50 + 8043c64: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 8043c68: 2b0d cmp r3, #13 + 8043c6a: f040 80a7 bne.w 8043dbc int32_t c = *((int32_t *)lv_event_get_param(e)); - 8043d02: 6838 ldr r0, [r7, #0] - 8043d04: f7be fc60 bl 80025c8 - 8043d08: 4603 mov r3, r0 - 8043d0a: 681b ldr r3, [r3, #0] - 8043d0c: 623b str r3, [r7, #32] + 8043c6e: 6838 ldr r0, [r7, #0] + 8043c70: f7be fc74 bl 800255c + 8043c74: 4603 mov r3, r0 + 8043c76: 681b ldr r3, [r3, #0] + 8043c78: 623b str r3, [r7, #32] int32_t col = table->col_act; - 8043d0e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043d10: 8e9b ldrh r3, [r3, #52] ; 0x34 - 8043d12: 637b str r3, [r7, #52] ; 0x34 + 8043c7a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043c7c: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8043c7e: 637b str r3, [r7, #52] ; 0x34 int32_t row = table->row_act; - 8043d14: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043d16: 8edb ldrh r3, [r3, #54] ; 0x36 - 8043d18: 633b str r3, [r7, #48] ; 0x30 + 8043c80: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043c82: 8edb ldrh r3, [r3, #54] ; 0x36 + 8043c84: 633b str r3, [r7, #48] ; 0x30 if(col == LV_TABLE_CELL_NONE || row == LV_TABLE_CELL_NONE) { - 8043d1a: 6b7b ldr r3, [r7, #52] ; 0x34 - 8043d1c: f64f 72ff movw r2, #65535 ; 0xffff - 8043d20: 4293 cmp r3, r2 - 8043d22: d004 beq.n 8043d2e - 8043d24: 6b3b ldr r3, [r7, #48] ; 0x30 - 8043d26: f64f 72ff movw r2, #65535 ; 0xffff - 8043d2a: 4293 cmp r3, r2 - 8043d2c: d109 bne.n 8043d42 + 8043c86: 6b7b ldr r3, [r7, #52] ; 0x34 + 8043c88: f64f 72ff movw r2, #65535 ; 0xffff + 8043c8c: 4293 cmp r3, r2 + 8043c8e: d004 beq.n 8043c9a + 8043c90: 6b3b ldr r3, [r7, #48] ; 0x30 + 8043c92: f64f 72ff movw r2, #65535 ; 0xffff + 8043c96: 4293 cmp r3, r2 + 8043c98: d109 bne.n 8043cae table->col_act = 0; - 8043d2e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043d30: 2200 movs r2, #0 - 8043d32: 869a strh r2, [r3, #52] ; 0x34 + 8043c9a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043c9c: 2200 movs r2, #0 + 8043c9e: 869a strh r2, [r3, #52] ; 0x34 table->row_act = 0; - 8043d34: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043d36: 2200 movs r2, #0 - 8043d38: 86da strh r2, [r3, #54] ; 0x36 + 8043ca0: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043ca2: 2200 movs r2, #0 + 8043ca4: 86da strh r2, [r3, #54] ; 0x36 lv_obj_invalidate(obj); - 8043d3a: 6ab8 ldr r0, [r7, #40] ; 0x28 - 8043d3c: f7c6 feb9 bl 800aab2 + 8043ca6: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8043ca8: f7c6 fecd bl 800aa46 return; - 8043d40: e095 b.n 8043e6e + 8043cac: e095 b.n 8043dda } if(col >= table->col_cnt) col = 0; - 8043d42: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043d44: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8043d46: 461a mov r2, r3 - 8043d48: 6b7b ldr r3, [r7, #52] ; 0x34 - 8043d4a: 4293 cmp r3, r2 - 8043d4c: db01 blt.n 8043d52 - 8043d4e: 2300 movs r3, #0 - 8043d50: 637b str r3, [r7, #52] ; 0x34 + 8043cae: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043cb0: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8043cb2: 461a mov r2, r3 + 8043cb4: 6b7b ldr r3, [r7, #52] ; 0x34 + 8043cb6: 4293 cmp r3, r2 + 8043cb8: db01 blt.n 8043cbe + 8043cba: 2300 movs r3, #0 + 8043cbc: 637b str r3, [r7, #52] ; 0x34 if(row >= table->row_cnt) row = 0; - 8043d52: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043d54: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8043d56: 461a mov r2, r3 - 8043d58: 6b3b ldr r3, [r7, #48] ; 0x30 - 8043d5a: 4293 cmp r3, r2 - 8043d5c: db01 blt.n 8043d62 - 8043d5e: 2300 movs r3, #0 - 8043d60: 633b str r3, [r7, #48] ; 0x30 + 8043cbe: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043cc0: 8cdb ldrh r3, [r3, #38] ; 0x26 + 8043cc2: 461a mov r2, r3 + 8043cc4: 6b3b ldr r3, [r7, #48] ; 0x30 + 8043cc6: 4293 cmp r3, r2 + 8043cc8: db01 blt.n 8043cce + 8043cca: 2300 movs r3, #0 + 8043ccc: 633b str r3, [r7, #48] ; 0x30 if(c == LV_KEY_LEFT) col--; - 8043d62: 6a3b ldr r3, [r7, #32] - 8043d64: 2b14 cmp r3, #20 - 8043d66: d103 bne.n 8043d70 - 8043d68: 6b7b ldr r3, [r7, #52] ; 0x34 - 8043d6a: 3b01 subs r3, #1 - 8043d6c: 637b str r3, [r7, #52] ; 0x34 - 8043d6e: e013 b.n 8043d98 + 8043cce: 6a3b ldr r3, [r7, #32] + 8043cd0: 2b14 cmp r3, #20 + 8043cd2: d103 bne.n 8043cdc + 8043cd4: 6b7b ldr r3, [r7, #52] ; 0x34 + 8043cd6: 3b01 subs r3, #1 + 8043cd8: 637b str r3, [r7, #52] ; 0x34 + 8043cda: e013 b.n 8043d04 else if(c == LV_KEY_RIGHT) col++; - 8043d70: 6a3b ldr r3, [r7, #32] - 8043d72: 2b13 cmp r3, #19 - 8043d74: d103 bne.n 8043d7e - 8043d76: 6b7b ldr r3, [r7, #52] ; 0x34 - 8043d78: 3301 adds r3, #1 - 8043d7a: 637b str r3, [r7, #52] ; 0x34 - 8043d7c: e00c b.n 8043d98 + 8043cdc: 6a3b ldr r3, [r7, #32] + 8043cde: 2b13 cmp r3, #19 + 8043ce0: d103 bne.n 8043cea + 8043ce2: 6b7b ldr r3, [r7, #52] ; 0x34 + 8043ce4: 3301 adds r3, #1 + 8043ce6: 637b str r3, [r7, #52] ; 0x34 + 8043ce8: e00c b.n 8043d04 else if(c == LV_KEY_UP) row--; - 8043d7e: 6a3b ldr r3, [r7, #32] - 8043d80: 2b11 cmp r3, #17 - 8043d82: d103 bne.n 8043d8c - 8043d84: 6b3b ldr r3, [r7, #48] ; 0x30 - 8043d86: 3b01 subs r3, #1 - 8043d88: 633b str r3, [r7, #48] ; 0x30 - 8043d8a: e005 b.n 8043d98 + 8043cea: 6a3b ldr r3, [r7, #32] + 8043cec: 2b11 cmp r3, #17 + 8043cee: d103 bne.n 8043cf8 + 8043cf0: 6b3b ldr r3, [r7, #48] ; 0x30 + 8043cf2: 3b01 subs r3, #1 + 8043cf4: 633b str r3, [r7, #48] ; 0x30 + 8043cf6: e005 b.n 8043d04 else if(c == LV_KEY_DOWN) row++; - 8043d8c: 6a3b ldr r3, [r7, #32] - 8043d8e: 2b12 cmp r3, #18 - 8043d90: d16c bne.n 8043e6c - 8043d92: 6b3b ldr r3, [r7, #48] ; 0x30 - 8043d94: 3301 adds r3, #1 - 8043d96: 633b str r3, [r7, #48] ; 0x30 + 8043cf8: 6a3b ldr r3, [r7, #32] + 8043cfa: 2b12 cmp r3, #18 + 8043cfc: d16c bne.n 8043dd8 + 8043cfe: 6b3b ldr r3, [r7, #48] ; 0x30 + 8043d00: 3301 adds r3, #1 + 8043d02: 633b str r3, [r7, #48] ; 0x30 else return; if(col >= table->col_cnt) { - 8043d98: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043d9a: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8043d9c: 461a mov r2, r3 - 8043d9e: 6b7b ldr r3, [r7, #52] ; 0x34 - 8043da0: 4293 cmp r3, r2 - 8043da2: db12 blt.n 8043dca + 8043d04: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043d06: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8043d08: 461a mov r2, r3 + 8043d0a: 6b7b ldr r3, [r7, #52] ; 0x34 + 8043d0c: 4293 cmp r3, r2 + 8043d0e: db12 blt.n 8043d36 if(row < table->row_cnt - 1) { - 8043da4: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043da6: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8043da8: 3b01 subs r3, #1 - 8043daa: 6b3a ldr r2, [r7, #48] ; 0x30 - 8043dac: 429a cmp r2, r3 - 8043dae: da07 bge.n 8043dc0 + 8043d10: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043d12: 8cdb ldrh r3, [r3, #38] ; 0x26 + 8043d14: 3b01 subs r3, #1 + 8043d16: 6b3a ldr r2, [r7, #48] ; 0x30 + 8043d18: 429a cmp r2, r3 + 8043d1a: da07 bge.n 8043d2c col = 0; - 8043db0: 2300 movs r3, #0 - 8043db2: 637b str r3, [r7, #52] ; 0x34 + 8043d1c: 2300 movs r3, #0 + 8043d1e: 637b str r3, [r7, #52] ; 0x34 row++; - 8043db4: 6b3b ldr r3, [r7, #48] ; 0x30 - 8043db6: 3301 adds r3, #1 - 8043db8: 633b str r3, [r7, #48] ; 0x30 - 8043dba: e016 b.n 8043dea - 8043dbc: 08070b34 .word 0x08070b34 + 8043d20: 6b3b ldr r3, [r7, #48] ; 0x30 + 8043d22: 3301 adds r3, #1 + 8043d24: 633b str r3, [r7, #48] ; 0x30 + 8043d26: e016 b.n 8043d56 + 8043d28: 08070a8c .word 0x08070a8c } else { col = table->col_cnt - 1; - 8043dc0: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043dc2: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8043dc4: 3b01 subs r3, #1 - 8043dc6: 637b str r3, [r7, #52] ; 0x34 - 8043dc8: e00f b.n 8043dea + 8043d2c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043d2e: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8043d30: 3b01 subs r3, #1 + 8043d32: 637b str r3, [r7, #52] ; 0x34 + 8043d34: e00f b.n 8043d56 } } else if(col < 0) { - 8043dca: 6b7b ldr r3, [r7, #52] ; 0x34 - 8043dcc: 2b00 cmp r3, #0 - 8043dce: da0c bge.n 8043dea + 8043d36: 6b7b ldr r3, [r7, #52] ; 0x34 + 8043d38: 2b00 cmp r3, #0 + 8043d3a: da0c bge.n 8043d56 if(row != 0) { - 8043dd0: 6b3b ldr r3, [r7, #48] ; 0x30 - 8043dd2: 2b00 cmp r3, #0 - 8043dd4: d007 beq.n 8043de6 + 8043d3c: 6b3b ldr r3, [r7, #48] ; 0x30 + 8043d3e: 2b00 cmp r3, #0 + 8043d40: d007 beq.n 8043d52 col = table->col_cnt - 1; - 8043dd6: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043dd8: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8043dda: 3b01 subs r3, #1 - 8043ddc: 637b str r3, [r7, #52] ; 0x34 + 8043d42: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043d44: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8043d46: 3b01 subs r3, #1 + 8043d48: 637b str r3, [r7, #52] ; 0x34 row--; - 8043dde: 6b3b ldr r3, [r7, #48] ; 0x30 - 8043de0: 3b01 subs r3, #1 - 8043de2: 633b str r3, [r7, #48] ; 0x30 - 8043de4: e001 b.n 8043dea + 8043d4a: 6b3b ldr r3, [r7, #48] ; 0x30 + 8043d4c: 3b01 subs r3, #1 + 8043d4e: 633b str r3, [r7, #48] ; 0x30 + 8043d50: e001 b.n 8043d56 } else { col = 0; - 8043de6: 2300 movs r3, #0 - 8043de8: 637b str r3, [r7, #52] ; 0x34 + 8043d52: 2300 movs r3, #0 + 8043d54: 637b str r3, [r7, #52] ; 0x34 } } if(row >= table->row_cnt) { - 8043dea: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043dec: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8043dee: 461a mov r2, r3 - 8043df0: 6b3b ldr r3, [r7, #48] ; 0x30 - 8043df2: 4293 cmp r3, r2 - 8043df4: db04 blt.n 8043e00 + 8043d56: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043d58: 8cdb ldrh r3, [r3, #38] ; 0x26 + 8043d5a: 461a mov r2, r3 + 8043d5c: 6b3b ldr r3, [r7, #48] ; 0x30 + 8043d5e: 4293 cmp r3, r2 + 8043d60: db04 blt.n 8043d6c row = table->row_cnt - 1; - 8043df6: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043df8: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8043dfa: 3b01 subs r3, #1 - 8043dfc: 633b str r3, [r7, #48] ; 0x30 - 8043dfe: e004 b.n 8043e0a + 8043d62: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043d64: 8cdb ldrh r3, [r3, #38] ; 0x26 + 8043d66: 3b01 subs r3, #1 + 8043d68: 633b str r3, [r7, #48] ; 0x30 + 8043d6a: e004 b.n 8043d76 } else if(row < 0) { - 8043e00: 6b3b ldr r3, [r7, #48] ; 0x30 - 8043e02: 2b00 cmp r3, #0 - 8043e04: da01 bge.n 8043e0a + 8043d6c: 6b3b ldr r3, [r7, #48] ; 0x30 + 8043d6e: 2b00 cmp r3, #0 + 8043d70: da01 bge.n 8043d76 row = 0; - 8043e06: 2300 movs r3, #0 - 8043e08: 633b str r3, [r7, #48] ; 0x30 + 8043d72: 2300 movs r3, #0 + 8043d74: 633b str r3, [r7, #48] ; 0x30 } if(table->col_act != col || table->row_act != row) { - 8043e0a: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043e0c: 8e9b ldrh r3, [r3, #52] ; 0x34 - 8043e0e: 461a mov r2, r3 - 8043e10: 6b7b ldr r3, [r7, #52] ; 0x34 - 8043e12: 4293 cmp r3, r2 - 8043e14: d105 bne.n 8043e22 - 8043e16: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043e18: 8edb ldrh r3, [r3, #54] ; 0x36 - 8043e1a: 461a mov r2, r3 - 8043e1c: 6b3b ldr r3, [r7, #48] ; 0x30 - 8043e1e: 4293 cmp r3, r2 - 8043e20: d025 beq.n 8043e6e + 8043d76: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043d78: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8043d7a: 461a mov r2, r3 + 8043d7c: 6b7b ldr r3, [r7, #52] ; 0x34 + 8043d7e: 4293 cmp r3, r2 + 8043d80: d105 bne.n 8043d8e + 8043d82: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043d84: 8edb ldrh r3, [r3, #54] ; 0x36 + 8043d86: 461a mov r2, r3 + 8043d88: 6b3b ldr r3, [r7, #48] ; 0x30 + 8043d8a: 4293 cmp r3, r2 + 8043d8c: d025 beq.n 8043dda table->col_act = col; - 8043e22: 6b7b ldr r3, [r7, #52] ; 0x34 - 8043e24: b29a uxth r2, r3 - 8043e26: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043e28: 869a strh r2, [r3, #52] ; 0x34 + 8043d8e: 6b7b ldr r3, [r7, #52] ; 0x34 + 8043d90: b29a uxth r2, r3 + 8043d92: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043d94: 869a strh r2, [r3, #52] ; 0x34 table->row_act = row; - 8043e2a: 6b3b ldr r3, [r7, #48] ; 0x30 - 8043e2c: b29a uxth r2, r3 - 8043e2e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8043e30: 86da strh r2, [r3, #54] ; 0x36 + 8043d96: 6b3b ldr r3, [r7, #48] ; 0x30 + 8043d98: b29a uxth r2, r3 + 8043d9a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8043d9c: 86da strh r2, [r3, #54] ; 0x36 lv_obj_invalidate(obj); - 8043e32: 6ab8 ldr r0, [r7, #40] ; 0x28 - 8043e34: f7c6 fe3d bl 800aab2 + 8043d9e: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8043da0: f7c6 fe51 bl 800aa46 res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 8043e38: 2200 movs r2, #0 - 8043e3a: 211c movs r1, #28 - 8043e3c: 6ab8 ldr r0, [r7, #40] ; 0x28 - 8043e3e: f7be fb1f bl 8002480 - 8043e42: 4603 mov r3, r0 - 8043e44: f887 302f strb.w r3, [r7, #47] ; 0x2f + 8043da4: 2200 movs r2, #0 + 8043da6: 211c movs r1, #28 + 8043da8: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8043daa: f7be fb33 bl 8002414 + 8043dae: 4603 mov r3, r0 + 8043db0: f887 302f strb.w r3, [r7, #47] ; 0x2f if(res != LV_RES_OK) return; - 8043e48: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8043e4c: 2b01 cmp r3, #1 - 8043e4e: e00e b.n 8043e6e + 8043db4: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8043db8: 2b01 cmp r3, #1 + 8043dba: e00e b.n 8043dda } } else if(code == LV_EVENT_DRAW_MAIN) { - 8043e50: f897 302e ldrb.w r3, [r7, #46] ; 0x2e - 8043e54: 2b15 cmp r3, #21 - 8043e56: d10a bne.n 8043e6e + 8043dbc: f897 302e ldrb.w r3, [r7, #46] ; 0x2e + 8043dc0: 2b15 cmp r3, #21 + 8043dc2: d10a bne.n 8043dda draw_main(e); - 8043e58: 6838 ldr r0, [r7, #0] - 8043e5a: f000 f80b bl 8043e74 - 8043e5e: e006 b.n 8043e6e + 8043dc4: 6838 ldr r0, [r7, #0] + 8043dc6: f000 f80b bl 8043de0 + 8043dca: e006 b.n 8043dda if(res != LV_RES_OK) return; - 8043e60: bf00 nop - 8043e62: e004 b.n 8043e6e + 8043dcc: bf00 nop + 8043dce: e004 b.n 8043dda else if(code == LV_EVENT_PRESSED || code == LV_EVENT_PRESSING) { - 8043e64: bf00 nop - 8043e66: e002 b.n 8043e6e + 8043dd0: bf00 nop + 8043dd2: e002 b.n 8043dda if(res != LV_RES_OK) return; - 8043e68: bf00 nop - 8043e6a: e000 b.n 8043e6e + 8043dd4: bf00 nop + 8043dd6: e000 b.n 8043dda else return; - 8043e6c: bf00 nop + 8043dd8: bf00 nop } } - 8043e6e: 3740 adds r7, #64 ; 0x40 - 8043e70: 46bd mov sp, r7 - 8043e72: bd80 pop {r7, pc} + 8043dda: 3740 adds r7, #64 ; 0x40 + 8043ddc: 46bd mov sp, r7 + 8043dde: bd80 pop {r7, pc} -08043e74 : +08043de0 : static void draw_main(lv_event_t * e) { - 8043e74: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8043e78: b0e0 sub sp, #384 ; 0x180 - 8043e7a: af04 add r7, sp, #16 - 8043e7c: f507 73b8 add.w r3, r7, #368 ; 0x170 - 8043e80: f5a3 73b6 sub.w r3, r3, #364 ; 0x16c - 8043e84: 6018 str r0, [r3, #0] + 8043de0: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} + 8043de4: b0e0 sub sp, #384 ; 0x180 + 8043de6: af04 add r7, sp, #16 + 8043de8: f507 73b8 add.w r3, r7, #368 ; 0x170 + 8043dec: f5a3 73b6 sub.w r3, r3, #364 ; 0x16c + 8043df0: 6018 str r0, [r3, #0] lv_obj_t * obj = lv_event_get_target(e); - 8043e86: f507 73b8 add.w r3, r7, #368 ; 0x170 - 8043e8a: f5a3 73b6 sub.w r3, r3, #364 ; 0x16c - 8043e8e: 6818 ldr r0, [r3, #0] - 8043e90: f7be fb76 bl 8002580 - 8043e94: f8c7 015c str.w r0, [r7, #348] ; 0x15c + 8043df2: f507 73b8 add.w r3, r7, #368 ; 0x170 + 8043df6: f5a3 73b6 sub.w r3, r3, #364 ; 0x16c + 8043dfa: 6818 ldr r0, [r3, #0] + 8043dfc: f7be fb8a bl 8002514 + 8043e00: f8c7 015c str.w r0, [r7, #348] ; 0x15c lv_table_t * table = (lv_table_t *)obj; - 8043e98: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 8043e9c: f8c7 3158 str.w r3, [r7, #344] ; 0x158 + 8043e04: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 8043e08: f8c7 3158 str.w r3, [r7, #344] ; 0x158 lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 8043ea0: f507 73b8 add.w r3, r7, #368 ; 0x170 - 8043ea4: f5a3 73b6 sub.w r3, r3, #364 ; 0x16c - 8043ea8: 6818 ldr r0, [r3, #0] - 8043eaa: f7be fc7f bl 80027ac - 8043eae: f8c7 0154 str.w r0, [r7, #340] ; 0x154 + 8043e0c: f507 73b8 add.w r3, r7, #368 ; 0x170 + 8043e10: f5a3 73b6 sub.w r3, r3, #364 ; 0x16c + 8043e14: 6818 ldr r0, [r3, #0] + 8043e16: f7be fc93 bl 8002740 + 8043e1a: f8c7 0154 str.w r0, [r7, #340] ; 0x154 lv_area_t clip_area; if(!_lv_area_intersect(&clip_area, &obj->coords, draw_ctx->clip_area)) return; - 8043eb2: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 8043eb6: f103 0114 add.w r1, r3, #20 - 8043eba: f8d7 3154 ldr.w r3, [r7, #340] ; 0x154 - 8043ebe: 689a ldr r2, [r3, #8] - 8043ec0: f507 7392 add.w r3, r7, #292 ; 0x124 - 8043ec4: 4618 mov r0, r3 - 8043ec6: f7ed f8ef bl 80310a8 <_lv_area_intersect> - 8043eca: 4603 mov r3, r0 - 8043ecc: f083 0301 eor.w r3, r3, #1 - 8043ed0: b2db uxtb r3, r3 - 8043ed2: 2b00 cmp r3, #0 - 8043ed4: f040 84d4 bne.w 8044880 + 8043e1e: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 8043e22: f103 0114 add.w r1, r3, #20 + 8043e26: f8d7 3154 ldr.w r3, [r7, #340] ; 0x154 + 8043e2a: 689a ldr r2, [r3, #8] + 8043e2c: f507 7392 add.w r3, r7, #292 ; 0x124 + 8043e30: 4618 mov r0, r3 + 8043e32: f7ed f8ef bl 8031014 <_lv_area_intersect> + 8043e36: 4603 mov r3, r0 + 8043e38: f083 0301 eor.w r3, r3, #1 + 8043e3c: b2db uxtb r3, r3 + 8043e3e: 2b00 cmp r3, #0 + 8043e40: f040 84d4 bne.w 80447ec const lv_area_t * clip_area_ori = draw_ctx->clip_area; - 8043ed8: f8d7 3154 ldr.w r3, [r7, #340] ; 0x154 - 8043edc: 689b ldr r3, [r3, #8] - 8043ede: f8c7 3150 str.w r3, [r7, #336] ; 0x150 + 8043e44: f8d7 3154 ldr.w r3, [r7, #340] ; 0x154 + 8043e48: 689b ldr r3, [r3, #8] + 8043e4a: f8c7 3150 str.w r3, [r7, #336] ; 0x150 draw_ctx->clip_area = &clip_area; - 8043ee2: f8d7 3154 ldr.w r3, [r7, #340] ; 0x154 - 8043ee6: f507 7292 add.w r2, r7, #292 ; 0x124 - 8043eea: 609a str r2, [r3, #8] + 8043e4e: f8d7 3154 ldr.w r3, [r7, #340] ; 0x154 + 8043e52: f507 7292 add.w r2, r7, #292 ; 0x124 + 8043e56: 609a str r2, [r3, #8] lv_point_t txt_size; lv_area_t cell_area; lv_area_t txt_area; lv_text_flag_t txt_flags; lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 8043eec: 2100 movs r1, #0 - 8043eee: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8043ef2: f7ff fd31 bl 8043958 - 8043ef6: 4603 mov r3, r0 - 8043ef8: f8a7 314e strh.w r3, [r7, #334] ; 0x14e + 8043e58: 2100 movs r1, #0 + 8043e5a: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 8043e5e: f7ff fd31 bl 80438c4 + 8043e62: 4603 mov r3, r0 + 8043e64: f8a7 314e strh.w r3, [r7, #334] ; 0x14e lv_coord_t bg_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 8043efc: 2100 movs r1, #0 - 8043efe: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8043f02: f7ff fcdd bl 80438c0 - 8043f06: 4603 mov r3, r0 - 8043f08: f8a7 314c strh.w r3, [r7, #332] ; 0x14c + 8043e68: 2100 movs r1, #0 + 8043e6a: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 8043e6e: f7ff fcdd bl 804382c + 8043e72: 4603 mov r3, r0 + 8043e74: f8a7 314c strh.w r3, [r7, #332] ; 0x14c lv_coord_t bg_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN); - 8043f0c: 2100 movs r1, #0 - 8043f0e: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8043f12: f7ff fce8 bl 80438e6 - 8043f16: 4603 mov r3, r0 - 8043f18: f8a7 314a strh.w r3, [r7, #330] ; 0x14a + 8043e78: 2100 movs r1, #0 + 8043e7a: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 8043e7e: f7ff fce8 bl 8043852 + 8043e82: 4603 mov r3, r0 + 8043e84: f8a7 314a strh.w r3, [r7, #330] ; 0x14a lv_coord_t bg_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 8043f1c: 2100 movs r1, #0 - 8043f1e: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8043f22: f7ff fcf3 bl 804390c - 8043f26: 4603 mov r3, r0 - 8043f28: f8a7 3148 strh.w r3, [r7, #328] ; 0x148 + 8043e88: 2100 movs r1, #0 + 8043e8a: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 8043e8e: f7ff fcf3 bl 8043878 + 8043e92: 4603 mov r3, r0 + 8043e94: f8a7 3148 strh.w r3, [r7, #328] ; 0x148 lv_coord_t bg_right = lv_obj_get_style_pad_right(obj, LV_PART_MAIN); - 8043f2c: 2100 movs r1, #0 - 8043f2e: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8043f32: f7ff fcfe bl 8043932 - 8043f36: 4603 mov r3, r0 - 8043f38: f8a7 3146 strh.w r3, [r7, #326] ; 0x146 + 8043e98: 2100 movs r1, #0 + 8043e9a: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 8043e9e: f7ff fcfe bl 804389e + 8043ea2: 4603 mov r3, r0 + 8043ea4: f8a7 3146 strh.w r3, [r7, #326] ; 0x146 lv_coord_t cell_left = lv_obj_get_style_pad_left(obj, LV_PART_ITEMS); - 8043f3c: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 8043f40: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8043f44: f7ff fce2 bl 804390c - 8043f48: 4603 mov r3, r0 - 8043f4a: f8a7 3144 strh.w r3, [r7, #324] ; 0x144 + 8043ea8: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8043eac: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 8043eb0: f7ff fce2 bl 8043878 + 8043eb4: 4603 mov r3, r0 + 8043eb6: f8a7 3144 strh.w r3, [r7, #324] ; 0x144 lv_coord_t cell_right = lv_obj_get_style_pad_right(obj, LV_PART_ITEMS); - 8043f4e: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 8043f52: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8043f56: f7ff fcec bl 8043932 - 8043f5a: 4603 mov r3, r0 - 8043f5c: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 + 8043eba: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8043ebe: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 8043ec2: f7ff fcec bl 804389e + 8043ec6: 4603 mov r3, r0 + 8043ec8: f8a7 3142 strh.w r3, [r7, #322] ; 0x142 lv_coord_t cell_top = lv_obj_get_style_pad_top(obj, LV_PART_ITEMS); - 8043f60: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 8043f64: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8043f68: f7ff fcaa bl 80438c0 - 8043f6c: 4603 mov r3, r0 - 8043f6e: f8a7 3140 strh.w r3, [r7, #320] ; 0x140 + 8043ecc: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8043ed0: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 8043ed4: f7ff fcaa bl 804382c + 8043ed8: 4603 mov r3, r0 + 8043eda: f8a7 3140 strh.w r3, [r7, #320] ; 0x140 lv_coord_t cell_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_ITEMS); - 8043f72: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 8043f76: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8043f7a: f7ff fcb4 bl 80438e6 - 8043f7e: 4603 mov r3, r0 - 8043f80: f8a7 313e strh.w r3, [r7, #318] ; 0x13e + 8043ede: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8043ee2: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 8043ee6: f7ff fcb4 bl 8043852 + 8043eea: 4603 mov r3, r0 + 8043eec: f8a7 313e strh.w r3, [r7, #318] ; 0x13e lv_state_t state_ori = obj->state; - 8043f84: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 8043f88: 8c1b ldrh r3, [r3, #32] - 8043f8a: f8a7 313c strh.w r3, [r7, #316] ; 0x13c + 8043ef0: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 8043ef4: 8c1b ldrh r3, [r3, #32] + 8043ef6: f8a7 313c strh.w r3, [r7, #316] ; 0x13c obj->state = LV_STATE_DEFAULT; - 8043f8e: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 8043f92: 2200 movs r2, #0 - 8043f94: 841a strh r2, [r3, #32] + 8043efa: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 8043efe: 2200 movs r2, #0 + 8043f00: 841a strh r2, [r3, #32] obj->skip_trans = 1; - 8043f96: f8d7 215c ldr.w r2, [r7, #348] ; 0x15c - 8043f9a: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 8043f9e: f043 0304 orr.w r3, r3, #4 - 8043fa2: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 8043f02: f8d7 215c ldr.w r2, [r7, #348] ; 0x15c + 8043f06: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 8043f0a: f043 0304 orr.w r3, r3, #4 + 8043f0e: f882 3022 strb.w r3, [r2, #34] ; 0x22 lv_draw_rect_dsc_t rect_dsc_def; lv_draw_rect_dsc_t rect_dsc_act; /*Passed to the event to modify it*/ lv_draw_rect_dsc_init(&rect_dsc_def); - 8043fa6: f107 03d8 add.w r3, r7, #216 ; 0xd8 - 8043faa: 4618 mov r0, r3 - 8043fac: f7d1 fc22 bl 80157f4 + 8043f12: f107 03d8 add.w r3, r7, #216 ; 0xd8 + 8043f16: 4618 mov r0, r3 + 8043f18: f7d1 fc22 bl 8015760 lv_obj_init_draw_rect_dsc(obj, LV_PART_ITEMS, &rect_dsc_def); - 8043fb0: f107 03d8 add.w r3, r7, #216 ; 0xd8 - 8043fb4: 461a mov r2, r3 - 8043fb6: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 8043fba: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8043fbe: f7c4 fb02 bl 80085c6 + 8043f1c: f107 03d8 add.w r3, r7, #216 ; 0xd8 + 8043f20: 461a mov r2, r3 + 8043f22: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8043f26: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 8043f2a: f7c4 fb16 bl 800855a lv_draw_label_dsc_t label_dsc_def; lv_draw_label_dsc_t label_dsc_act; /*Passed to the event to modify it*/ lv_draw_label_dsc_init(&label_dsc_def); - 8043fc2: f107 0380 add.w r3, r7, #128 ; 0x80 - 8043fc6: 4618 mov r0, r3 - 8043fc8: f7ce f8e0 bl 801218c + 8043f2e: f107 0380 add.w r3, r7, #128 ; 0x80 + 8043f32: 4618 mov r0, r3 + 8043f34: f7ce f8e0 bl 80120f8 lv_obj_init_draw_label_dsc(obj, LV_PART_ITEMS, &label_dsc_def); - 8043fcc: f107 0380 add.w r3, r7, #128 ; 0x80 - 8043fd0: 461a mov r2, r3 - 8043fd2: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 8043fd6: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8043fda: f7c4 fce2 bl 80089a2 + 8043f38: f107 0380 add.w r3, r7, #128 ; 0x80 + 8043f3c: 461a mov r2, r3 + 8043f3e: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8043f42: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 8043f46: f7c4 fcf6 bl 8008936 obj->state = state_ori; - 8043fde: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 8043fe2: f8b7 213c ldrh.w r2, [r7, #316] ; 0x13c - 8043fe6: 841a strh r2, [r3, #32] + 8043f4a: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 8043f4e: f8b7 213c ldrh.w r2, [r7, #316] ; 0x13c + 8043f52: 841a strh r2, [r3, #32] obj->skip_trans = 0; - 8043fe8: f8d7 215c ldr.w r2, [r7, #348] ; 0x15c - 8043fec: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 8043ff0: f36f 0382 bfc r3, #2, #1 - 8043ff4: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 8043f54: f8d7 215c ldr.w r2, [r7, #348] ; 0x15c + 8043f58: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 8043f5c: f36f 0382 bfc r3, #2, #1 + 8043f60: f882 3022 strb.w r3, [r2, #34] ; 0x22 uint16_t col; uint16_t row; uint16_t cell = 0; - 8043ff8: 2300 movs r3, #0 - 8043ffa: f8a7 3168 strh.w r3, [r7, #360] ; 0x168 + 8043f64: 2300 movs r3, #0 + 8043f66: f8a7 3168 strh.w r3, [r7, #360] ; 0x168 cell_area.y2 = obj->coords.y1 + bg_top - 1 - lv_obj_get_scroll_y(obj) + border_width; - 8043ffe: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 8044002: f9b3 3016 ldrsh.w r3, [r3, #22] - 8044006: b29a uxth r2, r3 - 8044008: f8b7 314c ldrh.w r3, [r7, #332] ; 0x14c - 804400c: 4413 add r3, r2 - 804400e: b29c uxth r4, r3 - 8044010: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8044014: f7c7 fcc3 bl 800b99e - 8044018: 4603 mov r3, r0 - 804401a: b29b uxth r3, r3 - 804401c: 1ae3 subs r3, r4, r3 - 804401e: b29a uxth r2, r3 - 8044020: f8b7 314e ldrh.w r3, [r7, #334] ; 0x14e - 8044024: 4413 add r3, r2 - 8044026: b29b uxth r3, r3 - 8044028: 3b01 subs r3, #1 - 804402a: b29b uxth r3, r3 - 804402c: b21b sxth r3, r3 - 804402e: f8a7 311e strh.w r3, [r7, #286] ; 0x11e + 8043f6a: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 8043f6e: f9b3 3016 ldrsh.w r3, [r3, #22] + 8043f72: b29a uxth r2, r3 + 8043f74: f8b7 314c ldrh.w r3, [r7, #332] ; 0x14c + 8043f78: 4413 add r3, r2 + 8043f7a: b29c uxth r4, r3 + 8043f7c: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 8043f80: f7c7 fcd7 bl 800b932 + 8043f84: 4603 mov r3, r0 + 8043f86: b29b uxth r3, r3 + 8043f88: 1ae3 subs r3, r4, r3 + 8043f8a: b29a uxth r2, r3 + 8043f8c: f8b7 314e ldrh.w r3, [r7, #334] ; 0x14e + 8043f90: 4413 add r3, r2 + 8043f92: b29b uxth r3, r3 + 8043f94: 3b01 subs r3, #1 + 8043f96: b29b uxth r3, r3 + 8043f98: b21b sxth r3, r3 + 8043f9a: f8a7 311e strh.w r3, [r7, #286] ; 0x11e lv_coord_t scroll_x = lv_obj_get_scroll_x(obj) ; - 8044032: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8044036: f7c7 fc9b bl 800b970 - 804403a: 4603 mov r3, r0 - 804403c: f8a7 313a strh.w r3, [r7, #314] ; 0x13a + 8043f9e: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 8043fa2: f7c7 fcaf bl 800b904 + 8043fa6: 4603 mov r3, r0 + 8043fa8: f8a7 313a strh.w r3, [r7, #314] ; 0x13a bool rtl = lv_obj_get_style_base_dir(obj, LV_PART_MAIN) == LV_BASE_DIR_RTL ? true : false; - 8044040: 2100 movs r1, #0 - 8044042: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8044046: f7ff fcd2 bl 80439ee - 804404a: 4603 mov r3, r0 - 804404c: 2b01 cmp r3, #1 - 804404e: bf0c ite eq - 8044050: 2301 moveq r3, #1 - 8044052: 2300 movne r3, #0 - 8044054: f887 3139 strb.w r3, [r7, #313] ; 0x139 + 8043fac: 2100 movs r1, #0 + 8043fae: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 8043fb2: f7ff fcd2 bl 804395a + 8043fb6: 4603 mov r3, r0 + 8043fb8: 2b01 cmp r3, #1 + 8043fba: bf0c ite eq + 8043fbc: 2301 moveq r3, #1 + 8043fbe: 2300 movne r3, #0 + 8043fc0: f887 3139 strb.w r3, [r7, #313] ; 0x139 /*Handle custom drawer*/ lv_obj_draw_part_dsc_t part_draw_dsc; lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx); - 8044058: f107 0318 add.w r3, r7, #24 - 804405c: f8d7 1154 ldr.w r1, [r7, #340] ; 0x154 - 8044060: 4618 mov r0, r3 - 8044062: f7c4 ff04 bl 8008e6e + 8043fc4: f107 0318 add.w r3, r7, #24 + 8043fc8: f8d7 1154 ldr.w r1, [r7, #340] ; 0x154 + 8043fcc: 4618 mov r0, r3 + 8043fce: f7c4 ff18 bl 8008e02 part_draw_dsc.part = LV_PART_ITEMS; - 8044066: f507 73b8 add.w r3, r7, #368 ; 0x170 - 804406a: f5a3 73ac sub.w r3, r3, #344 ; 0x158 - 804406e: f44f 22a0 mov.w r2, #327680 ; 0x50000 - 8044072: 635a str r2, [r3, #52] ; 0x34 + 8043fd2: f507 73b8 add.w r3, r7, #368 ; 0x170 + 8043fd6: f5a3 73ac sub.w r3, r3, #344 ; 0x158 + 8043fda: f44f 22a0 mov.w r2, #327680 ; 0x50000 + 8043fde: 635a str r2, [r3, #52] ; 0x34 part_draw_dsc.class_p = MY_CLASS; - 8044074: f507 73b8 add.w r3, r7, #368 ; 0x170 - 8044078: f5a3 73ac sub.w r3, r3, #344 ; 0x158 - 804407c: 4aaa ldr r2, [pc, #680] ; (8044328 ) - 804407e: 605a str r2, [r3, #4] + 8043fe0: f507 73b8 add.w r3, r7, #368 ; 0x170 + 8043fe4: f5a3 73ac sub.w r3, r3, #344 ; 0x158 + 8043fe8: 4aaa ldr r2, [pc, #680] ; (8044294 ) + 8043fea: 605a str r2, [r3, #4] part_draw_dsc.type = LV_TABLE_DRAW_PART_CELL; - 8044080: f507 73b8 add.w r3, r7, #368 ; 0x170 - 8044084: f5a3 73ac sub.w r3, r3, #344 ; 0x158 - 8044088: 2200 movs r2, #0 - 804408a: 609a str r2, [r3, #8] + 8043fec: f507 73b8 add.w r3, r7, #368 ; 0x170 + 8043ff0: f5a3 73ac sub.w r3, r3, #344 ; 0x158 + 8043ff4: 2200 movs r2, #0 + 8043ff6: 609a str r2, [r3, #8] part_draw_dsc.rect_dsc = &rect_dsc_act; - 804408c: f507 73b8 add.w r3, r7, #368 ; 0x170 - 8044090: f5a3 73ac sub.w r3, r3, #344 ; 0x158 - 8044094: f107 02a0 add.w r2, r7, #160 ; 0xa0 - 8044098: 611a str r2, [r3, #16] + 8043ff8: f507 73b8 add.w r3, r7, #368 ; 0x170 + 8043ffc: f5a3 73ac sub.w r3, r3, #344 ; 0x158 + 8044000: f107 02a0 add.w r2, r7, #160 ; 0xa0 + 8044004: 611a str r2, [r3, #16] part_draw_dsc.label_dsc = &label_dsc_act; - 804409a: f507 73b8 add.w r3, r7, #368 ; 0x170 - 804409e: f5a3 73ac sub.w r3, r3, #344 ; 0x158 - 80440a2: f107 0260 add.w r2, r7, #96 ; 0x60 - 80440a6: 615a str r2, [r3, #20] + 8044006: f507 73b8 add.w r3, r7, #368 ; 0x170 + 804400a: f5a3 73ac sub.w r3, r3, #344 ; 0x158 + 804400e: f107 0260 add.w r2, r7, #96 ; 0x60 + 8044012: 615a str r2, [r3, #20] for(row = 0; row < table->row_cnt; row++) { - 80440a8: 2300 movs r3, #0 - 80440aa: f8a7 316a strh.w r3, [r7, #362] ; 0x16a - 80440ae: e3d7 b.n 8044860 + 8044014: 2300 movs r3, #0 + 8044016: f8a7 316a strh.w r3, [r7, #362] ; 0x16a + 804401a: e3d7 b.n 80447cc lv_coord_t h_row = table->row_h[row]; - 80440b0: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 80440b4: 6ada ldr r2, [r3, #44] ; 0x2c - 80440b6: f8b7 316a ldrh.w r3, [r7, #362] ; 0x16a - 80440ba: 005b lsls r3, r3, #1 - 80440bc: 4413 add r3, r2 - 80440be: 881b ldrh r3, [r3, #0] - 80440c0: f8a7 3136 strh.w r3, [r7, #310] ; 0x136 + 804401c: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 8044020: 6ada ldr r2, [r3, #44] ; 0x2c + 8044022: f8b7 316a ldrh.w r3, [r7, #362] ; 0x16a + 8044026: 005b lsls r3, r3, #1 + 8044028: 4413 add r3, r2 + 804402a: 881b ldrh r3, [r3, #0] + 804402c: f8a7 3136 strh.w r3, [r7, #310] ; 0x136 cell_area.y1 = cell_area.y2 + 1; - 80440c4: f9b7 311e ldrsh.w r3, [r7, #286] ; 0x11e - 80440c8: b29b uxth r3, r3 - 80440ca: 3301 adds r3, #1 - 80440cc: b29b uxth r3, r3 - 80440ce: b21b sxth r3, r3 - 80440d0: f8a7 311a strh.w r3, [r7, #282] ; 0x11a + 8044030: f9b7 311e ldrsh.w r3, [r7, #286] ; 0x11e + 8044034: b29b uxth r3, r3 + 8044036: 3301 adds r3, #1 + 8044038: b29b uxth r3, r3 + 804403a: b21b sxth r3, r3 + 804403c: f8a7 311a strh.w r3, [r7, #282] ; 0x11a cell_area.y2 = cell_area.y1 + h_row - 1; - 80440d4: f9b7 311a ldrsh.w r3, [r7, #282] ; 0x11a - 80440d8: b29a uxth r2, r3 - 80440da: f8b7 3136 ldrh.w r3, [r7, #310] ; 0x136 - 80440de: 4413 add r3, r2 - 80440e0: b29b uxth r3, r3 - 80440e2: 3b01 subs r3, #1 - 80440e4: b29b uxth r3, r3 - 80440e6: b21b sxth r3, r3 - 80440e8: f8a7 311e strh.w r3, [r7, #286] ; 0x11e + 8044040: f9b7 311a ldrsh.w r3, [r7, #282] ; 0x11a + 8044044: b29a uxth r2, r3 + 8044046: f8b7 3136 ldrh.w r3, [r7, #310] ; 0x136 + 804404a: 4413 add r3, r2 + 804404c: b29b uxth r3, r3 + 804404e: 3b01 subs r3, #1 + 8044050: b29b uxth r3, r3 + 8044052: b21b sxth r3, r3 + 8044054: f8a7 311e strh.w r3, [r7, #286] ; 0x11e if(cell_area.y1 > clip_area.y2) break; - 80440ec: f9b7 211a ldrsh.w r2, [r7, #282] ; 0x11a - 80440f0: f9b7 312a ldrsh.w r3, [r7, #298] ; 0x12a - 80440f4: 429a cmp r2, r3 - 80440f6: f300 83bc bgt.w 8044872 + 8044058: f9b7 211a ldrsh.w r2, [r7, #282] ; 0x11a + 804405c: f9b7 312a ldrsh.w r3, [r7, #298] ; 0x12a + 8044060: 429a cmp r2, r3 + 8044062: f300 83bc bgt.w 80447de if(rtl) cell_area.x1 = obj->coords.x2 - bg_right - 1 - scroll_x - border_width; - 80440fa: f897 3139 ldrb.w r3, [r7, #313] ; 0x139 - 80440fe: 2b00 cmp r3, #0 - 8044100: d016 beq.n 8044130 - 8044102: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 8044106: f9b3 3018 ldrsh.w r3, [r3, #24] - 804410a: b29a uxth r2, r3 - 804410c: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 - 8044110: 1ad3 subs r3, r2, r3 - 8044112: b29a uxth r2, r3 - 8044114: f8b7 313a ldrh.w r3, [r7, #314] ; 0x13a - 8044118: 1ad3 subs r3, r2, r3 - 804411a: b29a uxth r2, r3 - 804411c: f8b7 314e ldrh.w r3, [r7, #334] ; 0x14e - 8044120: 1ad3 subs r3, r2, r3 - 8044122: b29b uxth r3, r3 - 8044124: 3b01 subs r3, #1 - 8044126: b29b uxth r3, r3 - 8044128: b21b sxth r3, r3 - 804412a: f8a7 3118 strh.w r3, [r7, #280] ; 0x118 - 804412e: e015 b.n 804415c + 8044066: f897 3139 ldrb.w r3, [r7, #313] ; 0x139 + 804406a: 2b00 cmp r3, #0 + 804406c: d016 beq.n 804409c + 804406e: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 8044072: f9b3 3018 ldrsh.w r3, [r3, #24] + 8044076: b29a uxth r2, r3 + 8044078: f8b7 3146 ldrh.w r3, [r7, #326] ; 0x146 + 804407c: 1ad3 subs r3, r2, r3 + 804407e: b29a uxth r2, r3 + 8044080: f8b7 313a ldrh.w r3, [r7, #314] ; 0x13a + 8044084: 1ad3 subs r3, r2, r3 + 8044086: b29a uxth r2, r3 + 8044088: f8b7 314e ldrh.w r3, [r7, #334] ; 0x14e + 804408c: 1ad3 subs r3, r2, r3 + 804408e: b29b uxth r3, r3 + 8044090: 3b01 subs r3, #1 + 8044092: b29b uxth r3, r3 + 8044094: b21b sxth r3, r3 + 8044096: f8a7 3118 strh.w r3, [r7, #280] ; 0x118 + 804409a: e015 b.n 80440c8 else cell_area.x2 = obj->coords.x1 + bg_left - 1 - scroll_x + border_width; - 8044130: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 8044134: f9b3 3014 ldrsh.w r3, [r3, #20] - 8044138: b29a uxth r2, r3 - 804413a: f8b7 3148 ldrh.w r3, [r7, #328] ; 0x148 - 804413e: 4413 add r3, r2 - 8044140: b29a uxth r2, r3 - 8044142: f8b7 313a ldrh.w r3, [r7, #314] ; 0x13a - 8044146: 1ad3 subs r3, r2, r3 - 8044148: b29a uxth r2, r3 - 804414a: f8b7 314e ldrh.w r3, [r7, #334] ; 0x14e - 804414e: 4413 add r3, r2 - 8044150: b29b uxth r3, r3 - 8044152: 3b01 subs r3, #1 - 8044154: b29b uxth r3, r3 - 8044156: b21b sxth r3, r3 - 8044158: f8a7 311c strh.w r3, [r7, #284] ; 0x11c + 804409c: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 80440a0: f9b3 3014 ldrsh.w r3, [r3, #20] + 80440a4: b29a uxth r2, r3 + 80440a6: f8b7 3148 ldrh.w r3, [r7, #328] ; 0x148 + 80440aa: 4413 add r3, r2 + 80440ac: b29a uxth r2, r3 + 80440ae: f8b7 313a ldrh.w r3, [r7, #314] ; 0x13a + 80440b2: 1ad3 subs r3, r2, r3 + 80440b4: b29a uxth r2, r3 + 80440b6: f8b7 314e ldrh.w r3, [r7, #334] ; 0x14e + 80440ba: 4413 add r3, r2 + 80440bc: b29b uxth r3, r3 + 80440be: 3b01 subs r3, #1 + 80440c0: b29b uxth r3, r3 + 80440c2: b21b sxth r3, r3 + 80440c4: f8a7 311c strh.w r3, [r7, #284] ; 0x11c for(col = 0; col < table->col_cnt; col++) { - 804415c: 2300 movs r3, #0 - 804415e: f8a7 316c strh.w r3, [r7, #364] ; 0x16c - 8044162: e370 b.n 8044846 + 80440c8: 2300 movs r3, #0 + 80440ca: f8a7 316c strh.w r3, [r7, #364] ; 0x16c + 80440ce: e370 b.n 80447b2 lv_table_cell_ctrl_t ctrl = 0; - 8044164: 2300 movs r3, #0 - 8044166: f887 3167 strb.w r3, [r7, #359] ; 0x167 + 80440d0: 2300 movs r3, #0 + 80440d2: f887 3167 strb.w r3, [r7, #359] ; 0x167 if(table->cell_data[cell]) ctrl = table->cell_data[cell][0]; - 804416a: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 804416e: 6a9a ldr r2, [r3, #40] ; 0x28 - 8044170: f8b7 3168 ldrh.w r3, [r7, #360] ; 0x168 - 8044174: 009b lsls r3, r3, #2 - 8044176: 4413 add r3, r2 - 8044178: 681b ldr r3, [r3, #0] - 804417a: 2b00 cmp r3, #0 - 804417c: d00a beq.n 8044194 - 804417e: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 8044182: 6a9a ldr r2, [r3, #40] ; 0x28 - 8044184: f8b7 3168 ldrh.w r3, [r7, #360] ; 0x168 - 8044188: 009b lsls r3, r3, #2 - 804418a: 4413 add r3, r2 - 804418c: 681b ldr r3, [r3, #0] - 804418e: 781b ldrb r3, [r3, #0] - 8044190: f887 3167 strb.w r3, [r7, #359] ; 0x167 + 80440d6: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 80440da: 6a9a ldr r2, [r3, #40] ; 0x28 + 80440dc: f8b7 3168 ldrh.w r3, [r7, #360] ; 0x168 + 80440e0: 009b lsls r3, r3, #2 + 80440e2: 4413 add r3, r2 + 80440e4: 681b ldr r3, [r3, #0] + 80440e6: 2b00 cmp r3, #0 + 80440e8: d00a beq.n 8044100 + 80440ea: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 80440ee: 6a9a ldr r2, [r3, #40] ; 0x28 + 80440f0: f8b7 3168 ldrh.w r3, [r7, #360] ; 0x168 + 80440f4: 009b lsls r3, r3, #2 + 80440f6: 4413 add r3, r2 + 80440f8: 681b ldr r3, [r3, #0] + 80440fa: 781b ldrb r3, [r3, #0] + 80440fc: f887 3167 strb.w r3, [r7, #359] ; 0x167 if(rtl) { - 8044194: f897 3139 ldrb.w r3, [r7, #313] ; 0x139 - 8044198: 2b00 cmp r3, #0 - 804419a: d01c beq.n 80441d6 + 8044100: f897 3139 ldrb.w r3, [r7, #313] ; 0x139 + 8044104: 2b00 cmp r3, #0 + 8044106: d01c beq.n 8044142 cell_area.x2 = cell_area.x1 - 1; - 804419c: f9b7 3118 ldrsh.w r3, [r7, #280] ; 0x118 - 80441a0: b29b uxth r3, r3 - 80441a2: 3b01 subs r3, #1 - 80441a4: b29b uxth r3, r3 - 80441a6: b21b sxth r3, r3 - 80441a8: f8a7 311c strh.w r3, [r7, #284] ; 0x11c + 8044108: f9b7 3118 ldrsh.w r3, [r7, #280] ; 0x118 + 804410c: b29b uxth r3, r3 + 804410e: 3b01 subs r3, #1 + 8044110: b29b uxth r3, r3 + 8044112: b21b sxth r3, r3 + 8044114: f8a7 311c strh.w r3, [r7, #284] ; 0x11c cell_area.x1 = cell_area.x2 - table->col_w[col] + 1; - 80441ac: f9b7 311c ldrsh.w r3, [r7, #284] ; 0x11c - 80441b0: b29a uxth r2, r3 - 80441b2: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 80441b6: 6b19 ldr r1, [r3, #48] ; 0x30 - 80441b8: f8b7 316c ldrh.w r3, [r7, #364] ; 0x16c - 80441bc: 005b lsls r3, r3, #1 - 80441be: 440b add r3, r1 - 80441c0: f9b3 3000 ldrsh.w r3, [r3] - 80441c4: b29b uxth r3, r3 - 80441c6: 1ad3 subs r3, r2, r3 - 80441c8: b29b uxth r3, r3 - 80441ca: 3301 adds r3, #1 - 80441cc: b29b uxth r3, r3 - 80441ce: b21b sxth r3, r3 - 80441d0: f8a7 3118 strh.w r3, [r7, #280] ; 0x118 - 80441d4: e01b b.n 804420e + 8044118: f9b7 311c ldrsh.w r3, [r7, #284] ; 0x11c + 804411c: b29a uxth r2, r3 + 804411e: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 8044122: 6b19 ldr r1, [r3, #48] ; 0x30 + 8044124: f8b7 316c ldrh.w r3, [r7, #364] ; 0x16c + 8044128: 005b lsls r3, r3, #1 + 804412a: 440b add r3, r1 + 804412c: f9b3 3000 ldrsh.w r3, [r3] + 8044130: b29b uxth r3, r3 + 8044132: 1ad3 subs r3, r2, r3 + 8044134: b29b uxth r3, r3 + 8044136: 3301 adds r3, #1 + 8044138: b29b uxth r3, r3 + 804413a: b21b sxth r3, r3 + 804413c: f8a7 3118 strh.w r3, [r7, #280] ; 0x118 + 8044140: e01b b.n 804417a } else { cell_area.x1 = cell_area.x2 + 1; - 80441d6: f9b7 311c ldrsh.w r3, [r7, #284] ; 0x11c - 80441da: b29b uxth r3, r3 - 80441dc: 3301 adds r3, #1 - 80441de: b29b uxth r3, r3 - 80441e0: b21b sxth r3, r3 - 80441e2: f8a7 3118 strh.w r3, [r7, #280] ; 0x118 + 8044142: f9b7 311c ldrsh.w r3, [r7, #284] ; 0x11c + 8044146: b29b uxth r3, r3 + 8044148: 3301 adds r3, #1 + 804414a: b29b uxth r3, r3 + 804414c: b21b sxth r3, r3 + 804414e: f8a7 3118 strh.w r3, [r7, #280] ; 0x118 cell_area.x2 = cell_area.x1 + table->col_w[col] - 1; - 80441e6: f9b7 3118 ldrsh.w r3, [r7, #280] ; 0x118 - 80441ea: b29a uxth r2, r3 - 80441ec: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 80441f0: 6b19 ldr r1, [r3, #48] ; 0x30 - 80441f2: f8b7 316c ldrh.w r3, [r7, #364] ; 0x16c - 80441f6: 005b lsls r3, r3, #1 - 80441f8: 440b add r3, r1 - 80441fa: f9b3 3000 ldrsh.w r3, [r3] - 80441fe: b29b uxth r3, r3 - 8044200: 4413 add r3, r2 - 8044202: b29b uxth r3, r3 - 8044204: 3b01 subs r3, #1 - 8044206: b29b uxth r3, r3 - 8044208: b21b sxth r3, r3 - 804420a: f8a7 311c strh.w r3, [r7, #284] ; 0x11c + 8044152: f9b7 3118 ldrsh.w r3, [r7, #280] ; 0x118 + 8044156: b29a uxth r2, r3 + 8044158: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 804415c: 6b19 ldr r1, [r3, #48] ; 0x30 + 804415e: f8b7 316c ldrh.w r3, [r7, #364] ; 0x16c + 8044162: 005b lsls r3, r3, #1 + 8044164: 440b add r3, r1 + 8044166: f9b3 3000 ldrsh.w r3, [r3] + 804416a: b29b uxth r3, r3 + 804416c: 4413 add r3, r2 + 804416e: b29b uxth r3, r3 + 8044170: 3b01 subs r3, #1 + 8044172: b29b uxth r3, r3 + 8044174: b21b sxth r3, r3 + 8044176: f8a7 311c strh.w r3, [r7, #284] ; 0x11c } uint16_t col_merge = 0; - 804420e: 2300 movs r3, #0 - 8044210: f8a7 3164 strh.w r3, [r7, #356] ; 0x164 + 804417a: 2300 movs r3, #0 + 804417c: f8a7 3164 strh.w r3, [r7, #356] ; 0x164 for(col_merge = 0; col_merge + col < table->col_cnt - 1; col_merge++) { - 8044214: 2300 movs r3, #0 - 8044216: f8a7 3164 strh.w r3, [r7, #356] ; 0x164 - 804421a: e05e b.n 80442da + 8044180: 2300 movs r3, #0 + 8044182: f8a7 3164 strh.w r3, [r7, #356] ; 0x164 + 8044186: e05e b.n 8044246 if(table->cell_data[cell + col_merge]) { - 804421c: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 8044220: 6a9a ldr r2, [r3, #40] ; 0x28 - 8044222: f8b7 1168 ldrh.w r1, [r7, #360] ; 0x168 - 8044226: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 - 804422a: 440b add r3, r1 - 804422c: 009b lsls r3, r3, #2 - 804422e: 4413 add r3, r2 - 8044230: 681b ldr r3, [r3, #0] - 8044232: 2b00 cmp r3, #0 - 8044234: d05d beq.n 80442f2 + 8044188: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 804418c: 6a9a ldr r2, [r3, #40] ; 0x28 + 804418e: f8b7 1168 ldrh.w r1, [r7, #360] ; 0x168 + 8044192: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 + 8044196: 440b add r3, r1 + 8044198: 009b lsls r3, r3, #2 + 804419a: 4413 add r3, r2 + 804419c: 681b ldr r3, [r3, #0] + 804419e: 2b00 cmp r3, #0 + 80441a0: d05d beq.n 804425e char * next_cell_data = table->cell_data[cell + col_merge]; - 8044236: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 804423a: 6a9a ldr r2, [r3, #40] ; 0x28 - 804423c: f8b7 1168 ldrh.w r1, [r7, #360] ; 0x168 - 8044240: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 - 8044244: 440b add r3, r1 - 8044246: 009b lsls r3, r3, #2 - 8044248: 4413 add r3, r2 - 804424a: 681b ldr r3, [r3, #0] - 804424c: f8c7 3130 str.w r3, [r7, #304] ; 0x130 + 80441a2: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 80441a6: 6a9a ldr r2, [r3, #40] ; 0x28 + 80441a8: f8b7 1168 ldrh.w r1, [r7, #360] ; 0x168 + 80441ac: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 + 80441b0: 440b add r3, r1 + 80441b2: 009b lsls r3, r3, #2 + 80441b4: 4413 add r3, r2 + 80441b6: 681b ldr r3, [r3, #0] + 80441b8: f8c7 3130 str.w r3, [r7, #304] ; 0x130 if(next_cell_data) ctrl = next_cell_data[0]; - 8044250: f8d7 3130 ldr.w r3, [r7, #304] ; 0x130 - 8044254: 2b00 cmp r3, #0 - 8044256: d004 beq.n 8044262 - 8044258: f8d7 3130 ldr.w r3, [r7, #304] ; 0x130 - 804425c: 781b ldrb r3, [r3, #0] - 804425e: f887 3167 strb.w r3, [r7, #359] ; 0x167 + 80441bc: f8d7 3130 ldr.w r3, [r7, #304] ; 0x130 + 80441c0: 2b00 cmp r3, #0 + 80441c2: d004 beq.n 80441ce + 80441c4: f8d7 3130 ldr.w r3, [r7, #304] ; 0x130 + 80441c8: 781b ldrb r3, [r3, #0] + 80441ca: f887 3167 strb.w r3, [r7, #359] ; 0x167 if(ctrl & LV_TABLE_CELL_CTRL_MERGE_RIGHT) - 8044262: f897 3167 ldrb.w r3, [r7, #359] ; 0x167 - 8044266: f003 0301 and.w r3, r3, #1 - 804426a: 2b00 cmp r3, #0 - 804426c: d043 beq.n 80442f6 + 80441ce: f897 3167 ldrb.w r3, [r7, #359] ; 0x167 + 80441d2: f003 0301 and.w r3, r3, #1 + 80441d6: 2b00 cmp r3, #0 + 80441d8: d043 beq.n 8044262 if(rtl) cell_area.x1 -= table->col_w[col + col_merge + 1]; - 804426e: f897 3139 ldrb.w r3, [r7, #313] ; 0x139 - 8044272: 2b00 cmp r3, #0 - 8044274: d016 beq.n 80442a4 - 8044276: f9b7 3118 ldrsh.w r3, [r7, #280] ; 0x118 - 804427a: b29a uxth r2, r3 - 804427c: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 8044280: 6b19 ldr r1, [r3, #48] ; 0x30 - 8044282: f8b7 016c ldrh.w r0, [r7, #364] ; 0x16c - 8044286: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 - 804428a: 4403 add r3, r0 - 804428c: 3301 adds r3, #1 - 804428e: 005b lsls r3, r3, #1 - 8044290: 440b add r3, r1 - 8044292: f9b3 3000 ldrsh.w r3, [r3] - 8044296: b29b uxth r3, r3 - 8044298: 1ad3 subs r3, r2, r3 - 804429a: b29b uxth r3, r3 - 804429c: b21b sxth r3, r3 - 804429e: f8a7 3118 strh.w r3, [r7, #280] ; 0x118 - 80442a2: e015 b.n 80442d0 + 80441da: f897 3139 ldrb.w r3, [r7, #313] ; 0x139 + 80441de: 2b00 cmp r3, #0 + 80441e0: d016 beq.n 8044210 + 80441e2: f9b7 3118 ldrsh.w r3, [r7, #280] ; 0x118 + 80441e6: b29a uxth r2, r3 + 80441e8: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 80441ec: 6b19 ldr r1, [r3, #48] ; 0x30 + 80441ee: f8b7 016c ldrh.w r0, [r7, #364] ; 0x16c + 80441f2: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 + 80441f6: 4403 add r3, r0 + 80441f8: 3301 adds r3, #1 + 80441fa: 005b lsls r3, r3, #1 + 80441fc: 440b add r3, r1 + 80441fe: f9b3 3000 ldrsh.w r3, [r3] + 8044202: b29b uxth r3, r3 + 8044204: 1ad3 subs r3, r2, r3 + 8044206: b29b uxth r3, r3 + 8044208: b21b sxth r3, r3 + 804420a: f8a7 3118 strh.w r3, [r7, #280] ; 0x118 + 804420e: e015 b.n 804423c else cell_area.x2 += table->col_w[col + col_merge + 1]; - 80442a4: f9b7 311c ldrsh.w r3, [r7, #284] ; 0x11c - 80442a8: b29a uxth r2, r3 - 80442aa: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 80442ae: 6b19 ldr r1, [r3, #48] ; 0x30 - 80442b0: f8b7 016c ldrh.w r0, [r7, #364] ; 0x16c - 80442b4: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 - 80442b8: 4403 add r3, r0 - 80442ba: 3301 adds r3, #1 - 80442bc: 005b lsls r3, r3, #1 - 80442be: 440b add r3, r1 - 80442c0: f9b3 3000 ldrsh.w r3, [r3] - 80442c4: b29b uxth r3, r3 - 80442c6: 4413 add r3, r2 - 80442c8: b29b uxth r3, r3 - 80442ca: b21b sxth r3, r3 - 80442cc: f8a7 311c strh.w r3, [r7, #284] ; 0x11c + 8044210: f9b7 311c ldrsh.w r3, [r7, #284] ; 0x11c + 8044214: b29a uxth r2, r3 + 8044216: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 804421a: 6b19 ldr r1, [r3, #48] ; 0x30 + 804421c: f8b7 016c ldrh.w r0, [r7, #364] ; 0x16c + 8044220: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 + 8044224: 4403 add r3, r0 + 8044226: 3301 adds r3, #1 + 8044228: 005b lsls r3, r3, #1 + 804422a: 440b add r3, r1 + 804422c: f9b3 3000 ldrsh.w r3, [r3] + 8044230: b29b uxth r3, r3 + 8044232: 4413 add r3, r2 + 8044234: b29b uxth r3, r3 + 8044236: b21b sxth r3, r3 + 8044238: f8a7 311c strh.w r3, [r7, #284] ; 0x11c for(col_merge = 0; col_merge + col < table->col_cnt - 1; col_merge++) { - 80442d0: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 - 80442d4: 3301 adds r3, #1 - 80442d6: f8a7 3164 strh.w r3, [r7, #356] ; 0x164 - 80442da: f8b7 2164 ldrh.w r2, [r7, #356] ; 0x164 - 80442de: f8b7 316c ldrh.w r3, [r7, #364] ; 0x16c - 80442e2: 441a add r2, r3 - 80442e4: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 80442e8: 8c9b ldrh r3, [r3, #36] ; 0x24 - 80442ea: 3b01 subs r3, #1 - 80442ec: 429a cmp r2, r3 - 80442ee: db95 blt.n 804421c - 80442f0: e002 b.n 80442f8 + 804423c: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 + 8044240: 3301 adds r3, #1 + 8044242: f8a7 3164 strh.w r3, [r7, #356] ; 0x164 + 8044246: f8b7 2164 ldrh.w r2, [r7, #356] ; 0x164 + 804424a: f8b7 316c ldrh.w r3, [r7, #364] ; 0x16c + 804424e: 441a add r2, r3 + 8044250: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 8044254: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8044256: 3b01 subs r3, #1 + 8044258: 429a cmp r2, r3 + 804425a: db95 blt.n 8044188 + 804425c: e002 b.n 8044264 else { break; } } else { break; - 80442f2: bf00 nop - 80442f4: e000 b.n 80442f8 + 804425e: bf00 nop + 8044260: e000 b.n 8044264 break; - 80442f6: bf00 nop + 8044262: bf00 nop } } if(cell_area.y2 < clip_area.y1) { - 80442f8: f9b7 211e ldrsh.w r2, [r7, #286] ; 0x11e - 80442fc: f9b7 3126 ldrsh.w r3, [r7, #294] ; 0x126 - 8044300: 429a cmp r2, r3 - 8044302: da13 bge.n 804432c + 8044264: f9b7 211e ldrsh.w r2, [r7, #286] ; 0x11e + 8044268: f9b7 3126 ldrsh.w r3, [r7, #294] ; 0x126 + 804426c: 429a cmp r2, r3 + 804426e: da13 bge.n 8044298 cell += col_merge + 1; - 8044304: f8b7 2164 ldrh.w r2, [r7, #356] ; 0x164 - 8044308: f8b7 3168 ldrh.w r3, [r7, #360] ; 0x168 - 804430c: 4413 add r3, r2 - 804430e: b29b uxth r3, r3 - 8044310: 3301 adds r3, #1 - 8044312: f8a7 3168 strh.w r3, [r7, #360] ; 0x168 + 8044270: f8b7 2164 ldrh.w r2, [r7, #356] ; 0x164 + 8044274: f8b7 3168 ldrh.w r3, [r7, #360] ; 0x168 + 8044278: 4413 add r3, r2 + 804427a: b29b uxth r3, r3 + 804427c: 3301 adds r3, #1 + 804427e: f8a7 3168 strh.w r3, [r7, #360] ; 0x168 col += col_merge; - 8044316: f8b7 216c ldrh.w r2, [r7, #364] ; 0x16c - 804431a: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 - 804431e: 4413 add r3, r2 - 8044320: f8a7 316c strh.w r3, [r7, #364] ; 0x16c - 8044324: e28a b.n 804483c - 8044326: bf00 nop - 8044328: 08070b34 .word 0x08070b34 + 8044282: f8b7 216c ldrh.w r2, [r7, #364] ; 0x16c + 8044286: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 + 804428a: 4413 add r3, r2 + 804428c: f8a7 316c strh.w r3, [r7, #364] ; 0x16c + 8044290: e28a b.n 80447a8 + 8044292: bf00 nop + 8044294: 08070a8c .word 0x08070a8c continue; } /*Expand the cell area with a half border to avoid drawing 2 borders next to each other*/ lv_area_t cell_area_border; lv_area_copy(&cell_area_border, &cell_area); - 804432c: f507 728c add.w r2, r7, #280 ; 0x118 - 8044330: f107 0310 add.w r3, r7, #16 - 8044334: 4611 mov r1, r2 - 8044336: 4618 mov r0, r3 - 8044338: f7ff fa5c bl 80437f4 + 8044298: f507 728c add.w r2, r7, #280 ; 0x118 + 804429c: f107 0310 add.w r3, r7, #16 + 80442a0: 4611 mov r1, r2 + 80442a2: 4618 mov r0, r3 + 80442a4: f7ff fa5c bl 8043760 if((rect_dsc_def.border_side & LV_BORDER_SIDE_LEFT) && cell_area_border.x1 > obj->coords.x1 + bg_left) { - 804433c: f897 30fb ldrb.w r3, [r7, #251] ; 0xfb - 8044340: f3c3 0344 ubfx r3, r3, #1, #5 - 8044344: b2db uxtb r3, r3 - 8044346: f003 0304 and.w r3, r3, #4 - 804434a: 2b00 cmp r3, #0 - 804434c: d026 beq.n 804439c - 804434e: f507 73b8 add.w r3, r7, #368 ; 0x170 - 8044352: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 - 8044356: f9b3 3000 ldrsh.w r3, [r3] - 804435a: 461a mov r2, r3 - 804435c: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 8044360: f9b3 3014 ldrsh.w r3, [r3, #20] - 8044364: 4619 mov r1, r3 - 8044366: f9b7 3148 ldrsh.w r3, [r7, #328] ; 0x148 - 804436a: 440b add r3, r1 - 804436c: 429a cmp r2, r3 - 804436e: dd15 ble.n 804439c + 80442a8: f897 30fb ldrb.w r3, [r7, #251] ; 0xfb + 80442ac: f3c3 0344 ubfx r3, r3, #1, #5 + 80442b0: b2db uxtb r3, r3 + 80442b2: f003 0304 and.w r3, r3, #4 + 80442b6: 2b00 cmp r3, #0 + 80442b8: d026 beq.n 8044308 + 80442ba: f507 73b8 add.w r3, r7, #368 ; 0x170 + 80442be: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 + 80442c2: f9b3 3000 ldrsh.w r3, [r3] + 80442c6: 461a mov r2, r3 + 80442c8: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 80442cc: f9b3 3014 ldrsh.w r3, [r3, #20] + 80442d0: 4619 mov r1, r3 + 80442d2: f9b7 3148 ldrsh.w r3, [r7, #328] ; 0x148 + 80442d6: 440b add r3, r1 + 80442d8: 429a cmp r2, r3 + 80442da: dd15 ble.n 8044308 cell_area_border.x1 -= rect_dsc_def.border_width / 2; - 8044370: f507 73b8 add.w r3, r7, #368 ; 0x170 - 8044374: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 - 8044378: f9b3 3000 ldrsh.w r3, [r3] - 804437c: b29a uxth r2, r3 - 804437e: f9b7 30f8 ldrsh.w r3, [r7, #248] ; 0xf8 - 8044382: 0fd9 lsrs r1, r3, #31 - 8044384: 440b add r3, r1 - 8044386: 105b asrs r3, r3, #1 - 8044388: b21b sxth r3, r3 - 804438a: b29b uxth r3, r3 - 804438c: 1ad3 subs r3, r2, r3 - 804438e: b29b uxth r3, r3 - 8044390: b21a sxth r2, r3 - 8044392: f507 73b8 add.w r3, r7, #368 ; 0x170 - 8044396: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 - 804439a: 801a strh r2, [r3, #0] + 80442dc: f507 73b8 add.w r3, r7, #368 ; 0x170 + 80442e0: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 + 80442e4: f9b3 3000 ldrsh.w r3, [r3] + 80442e8: b29a uxth r2, r3 + 80442ea: f9b7 30f8 ldrsh.w r3, [r7, #248] ; 0xf8 + 80442ee: 0fd9 lsrs r1, r3, #31 + 80442f0: 440b add r3, r1 + 80442f2: 105b asrs r3, r3, #1 + 80442f4: b21b sxth r3, r3 + 80442f6: b29b uxth r3, r3 + 80442f8: 1ad3 subs r3, r2, r3 + 80442fa: b29b uxth r3, r3 + 80442fc: b21a sxth r2, r3 + 80442fe: f507 73b8 add.w r3, r7, #368 ; 0x170 + 8044302: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 + 8044306: 801a strh r2, [r3, #0] } if((rect_dsc_def.border_side & LV_BORDER_SIDE_TOP) && cell_area_border.y1 > obj->coords.y1 + bg_top) { - 804439c: f897 30fb ldrb.w r3, [r7, #251] ; 0xfb - 80443a0: f3c3 0344 ubfx r3, r3, #1, #5 - 80443a4: b2db uxtb r3, r3 - 80443a6: f003 0302 and.w r3, r3, #2 - 80443aa: 2b00 cmp r3, #0 - 80443ac: d026 beq.n 80443fc - 80443ae: f507 73b8 add.w r3, r7, #368 ; 0x170 - 80443b2: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 - 80443b6: f9b3 3002 ldrsh.w r3, [r3, #2] - 80443ba: 461a mov r2, r3 - 80443bc: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 80443c0: f9b3 3016 ldrsh.w r3, [r3, #22] - 80443c4: 4619 mov r1, r3 - 80443c6: f9b7 314c ldrsh.w r3, [r7, #332] ; 0x14c - 80443ca: 440b add r3, r1 - 80443cc: 429a cmp r2, r3 - 80443ce: dd15 ble.n 80443fc + 8044308: f897 30fb ldrb.w r3, [r7, #251] ; 0xfb + 804430c: f3c3 0344 ubfx r3, r3, #1, #5 + 8044310: b2db uxtb r3, r3 + 8044312: f003 0302 and.w r3, r3, #2 + 8044316: 2b00 cmp r3, #0 + 8044318: d026 beq.n 8044368 + 804431a: f507 73b8 add.w r3, r7, #368 ; 0x170 + 804431e: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 + 8044322: f9b3 3002 ldrsh.w r3, [r3, #2] + 8044326: 461a mov r2, r3 + 8044328: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 804432c: f9b3 3016 ldrsh.w r3, [r3, #22] + 8044330: 4619 mov r1, r3 + 8044332: f9b7 314c ldrsh.w r3, [r7, #332] ; 0x14c + 8044336: 440b add r3, r1 + 8044338: 429a cmp r2, r3 + 804433a: dd15 ble.n 8044368 cell_area_border.y1 -= rect_dsc_def.border_width / 2; - 80443d0: f507 73b8 add.w r3, r7, #368 ; 0x170 - 80443d4: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 - 80443d8: f9b3 3002 ldrsh.w r3, [r3, #2] - 80443dc: b29a uxth r2, r3 - 80443de: f9b7 30f8 ldrsh.w r3, [r7, #248] ; 0xf8 - 80443e2: 0fd9 lsrs r1, r3, #31 - 80443e4: 440b add r3, r1 - 80443e6: 105b asrs r3, r3, #1 - 80443e8: b21b sxth r3, r3 - 80443ea: b29b uxth r3, r3 - 80443ec: 1ad3 subs r3, r2, r3 - 80443ee: b29b uxth r3, r3 - 80443f0: b21a sxth r2, r3 - 80443f2: f507 73b8 add.w r3, r7, #368 ; 0x170 - 80443f6: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 - 80443fa: 805a strh r2, [r3, #2] + 804433c: f507 73b8 add.w r3, r7, #368 ; 0x170 + 8044340: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 + 8044344: f9b3 3002 ldrsh.w r3, [r3, #2] + 8044348: b29a uxth r2, r3 + 804434a: f9b7 30f8 ldrsh.w r3, [r7, #248] ; 0xf8 + 804434e: 0fd9 lsrs r1, r3, #31 + 8044350: 440b add r3, r1 + 8044352: 105b asrs r3, r3, #1 + 8044354: b21b sxth r3, r3 + 8044356: b29b uxth r3, r3 + 8044358: 1ad3 subs r3, r2, r3 + 804435a: b29b uxth r3, r3 + 804435c: b21a sxth r2, r3 + 804435e: f507 73b8 add.w r3, r7, #368 ; 0x170 + 8044362: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 + 8044366: 805a strh r2, [r3, #2] } if((rect_dsc_def.border_side & LV_BORDER_SIDE_RIGHT) && cell_area_border.x2 < obj->coords.x2 - bg_right - 1) { - 80443fc: f897 30fb ldrb.w r3, [r7, #251] ; 0xfb - 8044400: f3c3 0344 ubfx r3, r3, #1, #5 - 8044404: b2db uxtb r3, r3 - 8044406: f003 0308 and.w r3, r3, #8 - 804440a: 2b00 cmp r3, #0 - 804440c: d02f beq.n 804446e - 804440e: f507 73b8 add.w r3, r7, #368 ; 0x170 - 8044412: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 - 8044416: f9b3 3004 ldrsh.w r3, [r3, #4] - 804441a: 461a mov r2, r3 - 804441c: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 8044420: f9b3 3018 ldrsh.w r3, [r3, #24] - 8044424: 4619 mov r1, r3 - 8044426: f9b7 3146 ldrsh.w r3, [r7, #326] ; 0x146 - 804442a: 1acb subs r3, r1, r3 - 804442c: 3b01 subs r3, #1 - 804442e: 429a cmp r2, r3 - 8044430: da1d bge.n 804446e + 8044368: f897 30fb ldrb.w r3, [r7, #251] ; 0xfb + 804436c: f3c3 0344 ubfx r3, r3, #1, #5 + 8044370: b2db uxtb r3, r3 + 8044372: f003 0308 and.w r3, r3, #8 + 8044376: 2b00 cmp r3, #0 + 8044378: d02f beq.n 80443da + 804437a: f507 73b8 add.w r3, r7, #368 ; 0x170 + 804437e: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 + 8044382: f9b3 3004 ldrsh.w r3, [r3, #4] + 8044386: 461a mov r2, r3 + 8044388: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 804438c: f9b3 3018 ldrsh.w r3, [r3, #24] + 8044390: 4619 mov r1, r3 + 8044392: f9b7 3146 ldrsh.w r3, [r7, #326] ; 0x146 + 8044396: 1acb subs r3, r1, r3 + 8044398: 3b01 subs r3, #1 + 804439a: 429a cmp r2, r3 + 804439c: da1d bge.n 80443da cell_area_border.x2 += rect_dsc_def.border_width / 2 + (rect_dsc_def.border_width & 0x1); - 8044432: f507 73b8 add.w r3, r7, #368 ; 0x170 - 8044436: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 - 804443a: f9b3 3004 ldrsh.w r3, [r3, #4] - 804443e: b29a uxth r2, r3 - 8044440: f9b7 30f8 ldrsh.w r3, [r7, #248] ; 0xf8 - 8044444: 0fd9 lsrs r1, r3, #31 - 8044446: 440b add r3, r1 - 8044448: 105b asrs r3, r3, #1 - 804444a: b21b sxth r3, r3 - 804444c: b299 uxth r1, r3 - 804444e: f9b7 30f8 ldrsh.w r3, [r7, #248] ; 0xf8 - 8044452: b29b uxth r3, r3 - 8044454: f003 0301 and.w r3, r3, #1 - 8044458: b29b uxth r3, r3 - 804445a: 440b add r3, r1 - 804445c: b29b uxth r3, r3 - 804445e: 4413 add r3, r2 - 8044460: b29b uxth r3, r3 - 8044462: b21a sxth r2, r3 - 8044464: f507 73b8 add.w r3, r7, #368 ; 0x170 - 8044468: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 - 804446c: 809a strh r2, [r3, #4] + 804439e: f507 73b8 add.w r3, r7, #368 ; 0x170 + 80443a2: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 + 80443a6: f9b3 3004 ldrsh.w r3, [r3, #4] + 80443aa: b29a uxth r2, r3 + 80443ac: f9b7 30f8 ldrsh.w r3, [r7, #248] ; 0xf8 + 80443b0: 0fd9 lsrs r1, r3, #31 + 80443b2: 440b add r3, r1 + 80443b4: 105b asrs r3, r3, #1 + 80443b6: b21b sxth r3, r3 + 80443b8: b299 uxth r1, r3 + 80443ba: f9b7 30f8 ldrsh.w r3, [r7, #248] ; 0xf8 + 80443be: b29b uxth r3, r3 + 80443c0: f003 0301 and.w r3, r3, #1 + 80443c4: b29b uxth r3, r3 + 80443c6: 440b add r3, r1 + 80443c8: b29b uxth r3, r3 + 80443ca: 4413 add r3, r2 + 80443cc: b29b uxth r3, r3 + 80443ce: b21a sxth r2, r3 + 80443d0: f507 73b8 add.w r3, r7, #368 ; 0x170 + 80443d4: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 + 80443d8: 809a strh r2, [r3, #4] } if((rect_dsc_def.border_side & LV_BORDER_SIDE_BOTTOM) && - 804446e: f897 30fb ldrb.w r3, [r7, #251] ; 0xfb - 8044472: f3c3 0344 ubfx r3, r3, #1, #5 - 8044476: b2db uxtb r3, r3 - 8044478: f003 0301 and.w r3, r3, #1 - 804447c: 2b00 cmp r3, #0 - 804447e: d02f beq.n 80444e0 + 80443da: f897 30fb ldrb.w r3, [r7, #251] ; 0xfb + 80443de: f3c3 0344 ubfx r3, r3, #1, #5 + 80443e2: b2db uxtb r3, r3 + 80443e4: f003 0301 and.w r3, r3, #1 + 80443e8: 2b00 cmp r3, #0 + 80443ea: d02f beq.n 804444c cell_area_border.y2 < obj->coords.y2 - bg_bottom - 1) { - 8044480: f507 73b8 add.w r3, r7, #368 ; 0x170 - 8044484: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 - 8044488: f9b3 3006 ldrsh.w r3, [r3, #6] - 804448c: 461a mov r2, r3 - 804448e: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 8044492: f9b3 301a ldrsh.w r3, [r3, #26] - 8044496: 4619 mov r1, r3 - 8044498: f9b7 314a ldrsh.w r3, [r7, #330] ; 0x14a - 804449c: 1acb subs r3, r1, r3 - 804449e: 3b01 subs r3, #1 + 80443ec: f507 73b8 add.w r3, r7, #368 ; 0x170 + 80443f0: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 + 80443f4: f9b3 3006 ldrsh.w r3, [r3, #6] + 80443f8: 461a mov r2, r3 + 80443fa: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 80443fe: f9b3 301a ldrsh.w r3, [r3, #26] + 8044402: 4619 mov r1, r3 + 8044404: f9b7 314a ldrsh.w r3, [r7, #330] ; 0x14a + 8044408: 1acb subs r3, r1, r3 + 804440a: 3b01 subs r3, #1 if((rect_dsc_def.border_side & LV_BORDER_SIDE_BOTTOM) && - 80444a0: 429a cmp r2, r3 - 80444a2: da1d bge.n 80444e0 + 804440c: 429a cmp r2, r3 + 804440e: da1d bge.n 804444c cell_area_border.y2 += rect_dsc_def.border_width / 2 + (rect_dsc_def.border_width & 0x1); - 80444a4: f507 73b8 add.w r3, r7, #368 ; 0x170 - 80444a8: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 - 80444ac: f9b3 3006 ldrsh.w r3, [r3, #6] - 80444b0: b29a uxth r2, r3 - 80444b2: f9b7 30f8 ldrsh.w r3, [r7, #248] ; 0xf8 - 80444b6: 0fd9 lsrs r1, r3, #31 - 80444b8: 440b add r3, r1 - 80444ba: 105b asrs r3, r3, #1 - 80444bc: b21b sxth r3, r3 - 80444be: b299 uxth r1, r3 - 80444c0: f9b7 30f8 ldrsh.w r3, [r7, #248] ; 0xf8 - 80444c4: b29b uxth r3, r3 - 80444c6: f003 0301 and.w r3, r3, #1 - 80444ca: b29b uxth r3, r3 - 80444cc: 440b add r3, r1 - 80444ce: b29b uxth r3, r3 - 80444d0: 4413 add r3, r2 - 80444d2: b29b uxth r3, r3 - 80444d4: b21a sxth r2, r3 - 80444d6: f507 73b8 add.w r3, r7, #368 ; 0x170 - 80444da: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 - 80444de: 80da strh r2, [r3, #6] + 8044410: f507 73b8 add.w r3, r7, #368 ; 0x170 + 8044414: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 + 8044418: f9b3 3006 ldrsh.w r3, [r3, #6] + 804441c: b29a uxth r2, r3 + 804441e: f9b7 30f8 ldrsh.w r3, [r7, #248] ; 0xf8 + 8044422: 0fd9 lsrs r1, r3, #31 + 8044424: 440b add r3, r1 + 8044426: 105b asrs r3, r3, #1 + 8044428: b21b sxth r3, r3 + 804442a: b299 uxth r1, r3 + 804442c: f9b7 30f8 ldrsh.w r3, [r7, #248] ; 0xf8 + 8044430: b29b uxth r3, r3 + 8044432: f003 0301 and.w r3, r3, #1 + 8044436: b29b uxth r3, r3 + 8044438: 440b add r3, r1 + 804443a: b29b uxth r3, r3 + 804443c: 4413 add r3, r2 + 804443e: b29b uxth r3, r3 + 8044440: b21a sxth r2, r3 + 8044442: f507 73b8 add.w r3, r7, #368 ; 0x170 + 8044446: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 + 804444a: 80da strh r2, [r3, #6] } lv_state_t cell_state = LV_STATE_DEFAULT; - 80444e0: 2300 movs r3, #0 - 80444e2: f8a7 3162 strh.w r3, [r7, #354] ; 0x162 + 804444c: 2300 movs r3, #0 + 804444e: f8a7 3162 strh.w r3, [r7, #354] ; 0x162 if(row == table->row_act && col == table->col_act) { - 80444e6: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 80444ea: 8edb ldrh r3, [r3, #54] ; 0x36 - 80444ec: f8b7 216a ldrh.w r2, [r7, #362] ; 0x16a - 80444f0: 429a cmp r2, r3 - 80444f2: d141 bne.n 8044578 - 80444f4: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 80444f8: 8e9b ldrh r3, [r3, #52] ; 0x34 - 80444fa: f8b7 216c ldrh.w r2, [r7, #364] ; 0x16c - 80444fe: 429a cmp r2, r3 - 8044500: d13a bne.n 8044578 + 8044452: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 8044456: 8edb ldrh r3, [r3, #54] ; 0x36 + 8044458: f8b7 216a ldrh.w r2, [r7, #362] ; 0x16a + 804445c: 429a cmp r2, r3 + 804445e: d141 bne.n 80444e4 + 8044460: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 8044464: 8e9b ldrh r3, [r3, #52] ; 0x34 + 8044466: f8b7 216c ldrh.w r2, [r7, #364] ; 0x16c + 804446a: 429a cmp r2, r3 + 804446c: d13a bne.n 80444e4 if(!(obj->state & LV_STATE_SCROLLED) && (obj->state & LV_STATE_PRESSED)) cell_state |= LV_STATE_PRESSED; - 8044502: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 8044506: 8c1b ldrh r3, [r3, #32] - 8044508: f003 0340 and.w r3, r3, #64 ; 0x40 - 804450c: 2b00 cmp r3, #0 - 804450e: d10c bne.n 804452a - 8044510: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 8044514: 8c1b ldrh r3, [r3, #32] - 8044516: f003 0320 and.w r3, r3, #32 - 804451a: 2b00 cmp r3, #0 - 804451c: d005 beq.n 804452a - 804451e: f8b7 3162 ldrh.w r3, [r7, #354] ; 0x162 - 8044522: f043 0320 orr.w r3, r3, #32 - 8044526: f8a7 3162 strh.w r3, [r7, #354] ; 0x162 + 804446e: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 8044472: 8c1b ldrh r3, [r3, #32] + 8044474: f003 0340 and.w r3, r3, #64 ; 0x40 + 8044478: 2b00 cmp r3, #0 + 804447a: d10c bne.n 8044496 + 804447c: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 8044480: 8c1b ldrh r3, [r3, #32] + 8044482: f003 0320 and.w r3, r3, #32 + 8044486: 2b00 cmp r3, #0 + 8044488: d005 beq.n 8044496 + 804448a: f8b7 3162 ldrh.w r3, [r7, #354] ; 0x162 + 804448e: f043 0320 orr.w r3, r3, #32 + 8044492: f8a7 3162 strh.w r3, [r7, #354] ; 0x162 if(obj->state & LV_STATE_FOCUSED) cell_state |= LV_STATE_FOCUSED; - 804452a: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 804452e: 8c1b ldrh r3, [r3, #32] - 8044530: f003 0302 and.w r3, r3, #2 - 8044534: 2b00 cmp r3, #0 - 8044536: d005 beq.n 8044544 - 8044538: f8b7 3162 ldrh.w r3, [r7, #354] ; 0x162 - 804453c: f043 0302 orr.w r3, r3, #2 - 8044540: f8a7 3162 strh.w r3, [r7, #354] ; 0x162 + 8044496: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 804449a: 8c1b ldrh r3, [r3, #32] + 804449c: f003 0302 and.w r3, r3, #2 + 80444a0: 2b00 cmp r3, #0 + 80444a2: d005 beq.n 80444b0 + 80444a4: f8b7 3162 ldrh.w r3, [r7, #354] ; 0x162 + 80444a8: f043 0302 orr.w r3, r3, #2 + 80444ac: f8a7 3162 strh.w r3, [r7, #354] ; 0x162 if(obj->state & LV_STATE_FOCUS_KEY) cell_state |= LV_STATE_FOCUS_KEY; - 8044544: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 8044548: 8c1b ldrh r3, [r3, #32] - 804454a: f003 0304 and.w r3, r3, #4 - 804454e: 2b00 cmp r3, #0 - 8044550: d005 beq.n 804455e - 8044552: f8b7 3162 ldrh.w r3, [r7, #354] ; 0x162 - 8044556: f043 0304 orr.w r3, r3, #4 - 804455a: f8a7 3162 strh.w r3, [r7, #354] ; 0x162 + 80444b0: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 80444b4: 8c1b ldrh r3, [r3, #32] + 80444b6: f003 0304 and.w r3, r3, #4 + 80444ba: 2b00 cmp r3, #0 + 80444bc: d005 beq.n 80444ca + 80444be: f8b7 3162 ldrh.w r3, [r7, #354] ; 0x162 + 80444c2: f043 0304 orr.w r3, r3, #4 + 80444c6: f8a7 3162 strh.w r3, [r7, #354] ; 0x162 if(obj->state & LV_STATE_EDITED) cell_state |= LV_STATE_EDITED; - 804455e: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 8044562: 8c1b ldrh r3, [r3, #32] - 8044564: f003 0308 and.w r3, r3, #8 - 8044568: 2b00 cmp r3, #0 - 804456a: d005 beq.n 8044578 - 804456c: f8b7 3162 ldrh.w r3, [r7, #354] ; 0x162 - 8044570: f043 0308 orr.w r3, r3, #8 - 8044574: f8a7 3162 strh.w r3, [r7, #354] ; 0x162 + 80444ca: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 80444ce: 8c1b ldrh r3, [r3, #32] + 80444d0: f003 0308 and.w r3, r3, #8 + 80444d4: 2b00 cmp r3, #0 + 80444d6: d005 beq.n 80444e4 + 80444d8: f8b7 3162 ldrh.w r3, [r7, #354] ; 0x162 + 80444dc: f043 0308 orr.w r3, r3, #8 + 80444e0: f8a7 3162 strh.w r3, [r7, #354] ; 0x162 } /*Set up the draw descriptors*/ if(cell_state == LV_STATE_DEFAULT) { - 8044578: f8b7 3162 ldrh.w r3, [r7, #354] ; 0x162 - 804457c: 2b00 cmp r3, #0 - 804457e: d110 bne.n 80445a2 + 80444e4: f8b7 3162 ldrh.w r3, [r7, #354] ; 0x162 + 80444e8: 2b00 cmp r3, #0 + 80444ea: d110 bne.n 804450e lv_memcpy(&rect_dsc_act, &rect_dsc_def, sizeof(lv_draw_rect_dsc_t)); - 8044580: f107 01d8 add.w r1, r7, #216 ; 0xd8 - 8044584: f107 03a0 add.w r3, r7, #160 ; 0xa0 - 8044588: 2238 movs r2, #56 ; 0x38 - 804458a: 4618 mov r0, r3 - 804458c: f7ee fb3c bl 8032c08 + 80444ec: f107 01d8 add.w r1, r7, #216 ; 0xd8 + 80444f0: f107 03a0 add.w r3, r7, #160 ; 0xa0 + 80444f4: 2238 movs r2, #56 ; 0x38 + 80444f6: 4618 mov r0, r3 + 80444f8: f7ee fb3c bl 8032b74 lv_memcpy(&label_dsc_act, &label_dsc_def, sizeof(lv_draw_label_dsc_t)); - 8044590: f107 0180 add.w r1, r7, #128 ; 0x80 - 8044594: f107 0360 add.w r3, r7, #96 ; 0x60 - 8044598: 2220 movs r2, #32 - 804459a: 4618 mov r0, r3 - 804459c: f7ee fb34 bl 8032c08 - 80445a0: e035 b.n 804460e + 80444fc: f107 0180 add.w r1, r7, #128 ; 0x80 + 8044500: f107 0360 add.w r3, r7, #96 ; 0x60 + 8044504: 2220 movs r2, #32 + 8044506: 4618 mov r0, r3 + 8044508: f7ee fb34 bl 8032b74 + 804450c: e035 b.n 804457a } /*In other cases get the styles directly without caching them*/ else { obj->state = cell_state; - 80445a2: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 80445a6: f8b7 2162 ldrh.w r2, [r7, #354] ; 0x162 - 80445aa: 841a strh r2, [r3, #32] + 804450e: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 8044512: f8b7 2162 ldrh.w r2, [r7, #354] ; 0x162 + 8044516: 841a strh r2, [r3, #32] obj->skip_trans = 1; - 80445ac: f8d7 215c ldr.w r2, [r7, #348] ; 0x15c - 80445b0: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 80445b4: f043 0304 orr.w r3, r3, #4 - 80445b8: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 8044518: f8d7 215c ldr.w r2, [r7, #348] ; 0x15c + 804451c: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 8044520: f043 0304 orr.w r3, r3, #4 + 8044524: f882 3022 strb.w r3, [r2, #34] ; 0x22 lv_draw_rect_dsc_init(&rect_dsc_act); - 80445bc: f107 03a0 add.w r3, r7, #160 ; 0xa0 - 80445c0: 4618 mov r0, r3 - 80445c2: f7d1 f917 bl 80157f4 + 8044528: f107 03a0 add.w r3, r7, #160 ; 0xa0 + 804452c: 4618 mov r0, r3 + 804452e: f7d1 f917 bl 8015760 lv_draw_label_dsc_init(&label_dsc_act); - 80445c6: f107 0360 add.w r3, r7, #96 ; 0x60 - 80445ca: 4618 mov r0, r3 - 80445cc: f7cd fdde bl 801218c + 8044532: f107 0360 add.w r3, r7, #96 ; 0x60 + 8044536: 4618 mov r0, r3 + 8044538: f7cd fdde bl 80120f8 lv_obj_init_draw_rect_dsc(obj, LV_PART_ITEMS, &rect_dsc_act); - 80445d0: f107 03a0 add.w r3, r7, #160 ; 0xa0 - 80445d4: 461a mov r2, r3 - 80445d6: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 80445da: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 80445de: f7c3 fff2 bl 80085c6 + 804453c: f107 03a0 add.w r3, r7, #160 ; 0xa0 + 8044540: 461a mov r2, r3 + 8044542: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8044546: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 804454a: f7c4 f806 bl 800855a lv_obj_init_draw_label_dsc(obj, LV_PART_ITEMS, &label_dsc_act); - 80445e2: f107 0360 add.w r3, r7, #96 ; 0x60 - 80445e6: 461a mov r2, r3 - 80445e8: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 80445ec: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 80445f0: f7c4 f9d7 bl 80089a2 + 804454e: f107 0360 add.w r3, r7, #96 ; 0x60 + 8044552: 461a mov r2, r3 + 8044554: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8044558: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 804455c: f7c4 f9eb bl 8008936 obj->state = state_ori; - 80445f4: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c - 80445f8: f8b7 213c ldrh.w r2, [r7, #316] ; 0x13c - 80445fc: 841a strh r2, [r3, #32] + 8044560: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + 8044564: f8b7 213c ldrh.w r2, [r7, #316] ; 0x13c + 8044568: 841a strh r2, [r3, #32] obj->skip_trans = 0; - 80445fe: f8d7 215c ldr.w r2, [r7, #348] ; 0x15c - 8044602: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 - 8044606: f36f 0382 bfc r3, #2, #1 - 804460a: f882 3022 strb.w r3, [r2, #34] ; 0x22 + 804456a: f8d7 215c ldr.w r2, [r7, #348] ; 0x15c + 804456e: f892 3022 ldrb.w r3, [r2, #34] ; 0x22 + 8044572: f36f 0382 bfc r3, #2, #1 + 8044576: f882 3022 strb.w r3, [r2, #34] ; 0x22 } part_draw_dsc.draw_area = &cell_area_border; - 804460e: f507 73b8 add.w r3, r7, #368 ; 0x170 - 8044612: f5a3 73ac sub.w r3, r3, #344 ; 0x158 - 8044616: f107 0210 add.w r2, r7, #16 - 804461a: 60da str r2, [r3, #12] + 804457a: f507 73b8 add.w r3, r7, #368 ; 0x170 + 804457e: f5a3 73ac sub.w r3, r3, #344 ; 0x158 + 8044582: f107 0210 add.w r2, r7, #16 + 8044586: 60da str r2, [r3, #12] part_draw_dsc.id = row * table->col_cnt + col; - 804461c: f8b7 316a ldrh.w r3, [r7, #362] ; 0x16a - 8044620: f8d7 2158 ldr.w r2, [r7, #344] ; 0x158 - 8044624: 8c92 ldrh r2, [r2, #36] ; 0x24 - 8044626: fb03 f202 mul.w r2, r3, r2 - 804462a: f8b7 316c ldrh.w r3, [r7, #364] ; 0x16c - 804462e: 4413 add r3, r2 - 8044630: 461a mov r2, r3 - 8044632: f507 73b8 add.w r3, r7, #368 ; 0x170 - 8044636: f5a3 73ac sub.w r3, r3, #344 ; 0x158 - 804463a: 639a str r2, [r3, #56] ; 0x38 + 8044588: f8b7 316a ldrh.w r3, [r7, #362] ; 0x16a + 804458c: f8d7 2158 ldr.w r2, [r7, #344] ; 0x158 + 8044590: 8c92 ldrh r2, [r2, #36] ; 0x24 + 8044592: fb03 f202 mul.w r2, r3, r2 + 8044596: f8b7 316c ldrh.w r3, [r7, #364] ; 0x16c + 804459a: 4413 add r3, r2 + 804459c: 461a mov r2, r3 + 804459e: f507 73b8 add.w r3, r7, #368 ; 0x170 + 80445a2: f5a3 73ac sub.w r3, r3, #344 ; 0x158 + 80445a6: 639a str r2, [r3, #56] ; 0x38 lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc); - 804463c: f107 0318 add.w r3, r7, #24 - 8044640: 461a mov r2, r3 - 8044642: 211a movs r1, #26 - 8044644: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8044648: f7bd ff1a bl 8002480 + 80445a8: f107 0318 add.w r3, r7, #24 + 80445ac: 461a mov r2, r3 + 80445ae: 211a movs r1, #26 + 80445b0: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 80445b4: f7bd ff2e bl 8002414 lv_draw_rect(draw_ctx, &rect_dsc_act, &cell_area_border); - 804464c: f107 0210 add.w r2, r7, #16 - 8044650: f107 03a0 add.w r3, r7, #160 ; 0xa0 - 8044654: 4619 mov r1, r3 - 8044656: f8d7 0154 ldr.w r0, [r7, #340] ; 0x154 - 804465a: f7d1 f90d bl 8015878 + 80445b8: f107 0210 add.w r2, r7, #16 + 80445bc: f107 03a0 add.w r3, r7, #160 ; 0xa0 + 80445c0: 4619 mov r1, r3 + 80445c2: f8d7 0154 ldr.w r0, [r7, #340] ; 0x154 + 80445c6: f7d1 f90d bl 80157e4 if(table->cell_data[cell]) { - 804465e: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 8044662: 6a9a ldr r2, [r3, #40] ; 0x28 - 8044664: f8b7 3168 ldrh.w r3, [r7, #360] ; 0x168 - 8044668: 009b lsls r3, r3, #2 - 804466a: 4413 add r3, r2 - 804466c: 681b ldr r3, [r3, #0] - 804466e: 2b00 cmp r3, #0 - 8044670: f000 80cc beq.w 804480c + 80445ca: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 80445ce: 6a9a ldr r2, [r3, #40] ; 0x28 + 80445d0: f8b7 3168 ldrh.w r3, [r7, #360] ; 0x168 + 80445d4: 009b lsls r3, r3, #2 + 80445d6: 4413 add r3, r2 + 80445d8: 681b ldr r3, [r3, #0] + 80445da: 2b00 cmp r3, #0 + 80445dc: f000 80cc beq.w 8044778 txt_area.x1 = cell_area.x1 + cell_left; - 8044674: f9b7 3118 ldrsh.w r3, [r7, #280] ; 0x118 - 8044678: b29a uxth r2, r3 - 804467a: f8b7 3144 ldrh.w r3, [r7, #324] ; 0x144 - 804467e: 4413 add r3, r2 - 8044680: b29b uxth r3, r3 - 8044682: b21b sxth r3, r3 - 8044684: f8a7 3110 strh.w r3, [r7, #272] ; 0x110 + 80445e0: f9b7 3118 ldrsh.w r3, [r7, #280] ; 0x118 + 80445e4: b29a uxth r2, r3 + 80445e6: f8b7 3144 ldrh.w r3, [r7, #324] ; 0x144 + 80445ea: 4413 add r3, r2 + 80445ec: b29b uxth r3, r3 + 80445ee: b21b sxth r3, r3 + 80445f0: f8a7 3110 strh.w r3, [r7, #272] ; 0x110 txt_area.x2 = cell_area.x2 - cell_right; - 8044688: f9b7 311c ldrsh.w r3, [r7, #284] ; 0x11c - 804468c: b29a uxth r2, r3 - 804468e: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 - 8044692: 1ad3 subs r3, r2, r3 - 8044694: b29b uxth r3, r3 - 8044696: b21b sxth r3, r3 - 8044698: f8a7 3114 strh.w r3, [r7, #276] ; 0x114 + 80445f4: f9b7 311c ldrsh.w r3, [r7, #284] ; 0x11c + 80445f8: b29a uxth r2, r3 + 80445fa: f8b7 3142 ldrh.w r3, [r7, #322] ; 0x142 + 80445fe: 1ad3 subs r3, r2, r3 + 8044600: b29b uxth r3, r3 + 8044602: b21b sxth r3, r3 + 8044604: f8a7 3114 strh.w r3, [r7, #276] ; 0x114 txt_area.y1 = cell_area.y1 + cell_top; - 804469c: f9b7 311a ldrsh.w r3, [r7, #282] ; 0x11a - 80446a0: b29a uxth r2, r3 - 80446a2: f8b7 3140 ldrh.w r3, [r7, #320] ; 0x140 - 80446a6: 4413 add r3, r2 - 80446a8: b29b uxth r3, r3 - 80446aa: b21b sxth r3, r3 - 80446ac: f8a7 3112 strh.w r3, [r7, #274] ; 0x112 + 8044608: f9b7 311a ldrsh.w r3, [r7, #282] ; 0x11a + 804460c: b29a uxth r2, r3 + 804460e: f8b7 3140 ldrh.w r3, [r7, #320] ; 0x140 + 8044612: 4413 add r3, r2 + 8044614: b29b uxth r3, r3 + 8044616: b21b sxth r3, r3 + 8044618: f8a7 3112 strh.w r3, [r7, #274] ; 0x112 txt_area.y2 = cell_area.y2 - cell_bottom; - 80446b0: f9b7 311e ldrsh.w r3, [r7, #286] ; 0x11e - 80446b4: b29a uxth r2, r3 - 80446b6: f8b7 313e ldrh.w r3, [r7, #318] ; 0x13e - 80446ba: 1ad3 subs r3, r2, r3 - 80446bc: b29b uxth r3, r3 - 80446be: b21b sxth r3, r3 - 80446c0: f8a7 3116 strh.w r3, [r7, #278] ; 0x116 + 804461c: f9b7 311e ldrsh.w r3, [r7, #286] ; 0x11e + 8044620: b29a uxth r2, r3 + 8044622: f8b7 313e ldrh.w r3, [r7, #318] ; 0x13e + 8044626: 1ad3 subs r3, r2, r3 + 8044628: b29b uxth r3, r3 + 804462a: b21b sxth r3, r3 + 804462c: f8a7 3116 strh.w r3, [r7, #278] ; 0x116 /*Align the content to the middle if not cropped*/ bool crop = ctrl & LV_TABLE_CELL_CTRL_TEXT_CROP ? true : false; - 80446c4: f897 3167 ldrb.w r3, [r7, #359] ; 0x167 - 80446c8: 105b asrs r3, r3, #1 - 80446ca: f003 0301 and.w r3, r3, #1 - 80446ce: 2b00 cmp r3, #0 - 80446d0: bf14 ite ne - 80446d2: 2301 movne r3, #1 - 80446d4: 2300 moveq r3, #0 - 80446d6: f887 312f strb.w r3, [r7, #303] ; 0x12f + 8044630: f897 3167 ldrb.w r3, [r7, #359] ; 0x167 + 8044634: 105b asrs r3, r3, #1 + 8044636: f003 0301 and.w r3, r3, #1 + 804463a: 2b00 cmp r3, #0 + 804463c: bf14 ite ne + 804463e: 2301 movne r3, #1 + 8044640: 2300 moveq r3, #0 + 8044642: f887 312f strb.w r3, [r7, #303] ; 0x12f if(crop) txt_flags = LV_TEXT_FLAG_EXPAND; - 80446da: f897 312f ldrb.w r3, [r7, #303] ; 0x12f - 80446de: 2b00 cmp r3, #0 - 80446e0: d003 beq.n 80446ea - 80446e2: 2302 movs r3, #2 - 80446e4: f887 316f strb.w r3, [r7, #367] ; 0x16f - 80446e8: e002 b.n 80446f0 + 8044646: f897 312f ldrb.w r3, [r7, #303] ; 0x12f + 804464a: 2b00 cmp r3, #0 + 804464c: d003 beq.n 8044656 + 804464e: 2302 movs r3, #2 + 8044650: f887 316f strb.w r3, [r7, #367] ; 0x16f + 8044654: e002 b.n 804465c else txt_flags = LV_TEXT_FLAG_NONE; - 80446ea: 2300 movs r3, #0 - 80446ec: f887 316f strb.w r3, [r7, #367] ; 0x16f + 8044656: 2300 movs r3, #0 + 8044658: f887 316f strb.w r3, [r7, #367] ; 0x16f lv_txt_get_size(&txt_size, table->cell_data[cell] + 1, label_dsc_def.font, - 80446f0: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 80446f4: 6a9a ldr r2, [r3, #40] ; 0x28 - 80446f6: f8b7 3168 ldrh.w r3, [r7, #360] ; 0x168 - 80446fa: 009b lsls r3, r3, #2 - 80446fc: 4413 add r3, r2 - 80446fe: 681b ldr r3, [r3, #0] - 8044700: 1c5d adds r5, r3, #1 - 8044702: f8d7 6080 ldr.w r6, [r7, #128] ; 0x80 - 8044706: f507 73b8 add.w r3, r7, #368 ; 0x170 - 804470a: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 804470e: f9b3 8014 ldrsh.w r8, [r3, #20] - 8044712: f507 73b8 add.w r3, r7, #368 ; 0x170 - 8044716: f5a3 7388 sub.w r3, r3, #272 ; 0x110 - 804471a: f9b3 4012 ldrsh.w r4, [r3, #18] - 804471e: f507 7388 add.w r3, r7, #272 ; 0x110 - 8044722: 4618 mov r0, r3 - 8044724: f7ff f884 bl 8043830 - 8044728: 4603 mov r3, r0 - 804472a: 461a mov r2, r3 - 804472c: f507 7090 add.w r0, r7, #288 ; 0x120 - 8044730: f897 316f ldrb.w r3, [r7, #367] ; 0x16f - 8044734: 9302 str r3, [sp, #8] - 8044736: 9201 str r2, [sp, #4] - 8044738: 9400 str r4, [sp, #0] - 804473a: 4643 mov r3, r8 - 804473c: 4632 mov r2, r6 - 804473e: 4629 mov r1, r5 - 8044740: f7f1 fca3 bl 803608a + 804465c: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 8044660: 6a9a ldr r2, [r3, #40] ; 0x28 + 8044662: f8b7 3168 ldrh.w r3, [r7, #360] ; 0x168 + 8044666: 009b lsls r3, r3, #2 + 8044668: 4413 add r3, r2 + 804466a: 681b ldr r3, [r3, #0] + 804466c: 1c5d adds r5, r3, #1 + 804466e: f8d7 6080 ldr.w r6, [r7, #128] ; 0x80 + 8044672: f507 73b8 add.w r3, r7, #368 ; 0x170 + 8044676: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 804467a: f9b3 8014 ldrsh.w r8, [r3, #20] + 804467e: f507 73b8 add.w r3, r7, #368 ; 0x170 + 8044682: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8044686: f9b3 4012 ldrsh.w r4, [r3, #18] + 804468a: f507 7388 add.w r3, r7, #272 ; 0x110 + 804468e: 4618 mov r0, r3 + 8044690: f7ff f884 bl 804379c + 8044694: 4603 mov r3, r0 + 8044696: 461a mov r2, r3 + 8044698: f507 7090 add.w r0, r7, #288 ; 0x120 + 804469c: f897 316f ldrb.w r3, [r7, #367] ; 0x16f + 80446a0: 9302 str r3, [sp, #8] + 80446a2: 9201 str r2, [sp, #4] + 80446a4: 9400 str r4, [sp, #0] + 80446a6: 4643 mov r3, r8 + 80446a8: 4632 mov r2, r6 + 80446aa: 4629 mov r1, r5 + 80446ac: f7f1 fca3 bl 8035ff6 label_dsc_act.letter_space, label_dsc_act.line_space, lv_area_get_width(&txt_area), txt_flags); /*Align the content to the middle if not cropped*/ if(!crop) { - 8044744: f897 312f ldrb.w r3, [r7, #303] ; 0x12f - 8044748: f083 0301 eor.w r3, r3, #1 - 804474c: b2db uxtb r3, r3 - 804474e: 2b00 cmp r3, #0 - 8044750: d02f beq.n 80447b2 + 80446b0: f897 312f ldrb.w r3, [r7, #303] ; 0x12f + 80446b4: f083 0301 eor.w r3, r3, #1 + 80446b8: b2db uxtb r3, r3 + 80446ba: 2b00 cmp r3, #0 + 80446bc: d02f beq.n 804471e txt_area.y1 = cell_area.y1 + h_row / 2 - txt_size.y / 2; - 8044752: f9b7 311a ldrsh.w r3, [r7, #282] ; 0x11a - 8044756: b29a uxth r2, r3 - 8044758: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 - 804475c: 0fd9 lsrs r1, r3, #31 - 804475e: 440b add r3, r1 - 8044760: 105b asrs r3, r3, #1 - 8044762: b21b sxth r3, r3 - 8044764: b29b uxth r3, r3 - 8044766: 4413 add r3, r2 - 8044768: b29a uxth r2, r3 - 804476a: f9b7 3122 ldrsh.w r3, [r7, #290] ; 0x122 - 804476e: 0fd9 lsrs r1, r3, #31 - 8044770: 440b add r3, r1 - 8044772: 105b asrs r3, r3, #1 - 8044774: b21b sxth r3, r3 - 8044776: b29b uxth r3, r3 - 8044778: 1ad3 subs r3, r2, r3 - 804477a: b29b uxth r3, r3 - 804477c: b21b sxth r3, r3 - 804477e: f8a7 3112 strh.w r3, [r7, #274] ; 0x112 + 80446be: f9b7 311a ldrsh.w r3, [r7, #282] ; 0x11a + 80446c2: b29a uxth r2, r3 + 80446c4: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 + 80446c8: 0fd9 lsrs r1, r3, #31 + 80446ca: 440b add r3, r1 + 80446cc: 105b asrs r3, r3, #1 + 80446ce: b21b sxth r3, r3 + 80446d0: b29b uxth r3, r3 + 80446d2: 4413 add r3, r2 + 80446d4: b29a uxth r2, r3 + 80446d6: f9b7 3122 ldrsh.w r3, [r7, #290] ; 0x122 + 80446da: 0fd9 lsrs r1, r3, #31 + 80446dc: 440b add r3, r1 + 80446de: 105b asrs r3, r3, #1 + 80446e0: b21b sxth r3, r3 + 80446e2: b29b uxth r3, r3 + 80446e4: 1ad3 subs r3, r2, r3 + 80446e6: b29b uxth r3, r3 + 80446e8: b21b sxth r3, r3 + 80446ea: f8a7 3112 strh.w r3, [r7, #274] ; 0x112 txt_area.y2 = cell_area.y1 + h_row / 2 + txt_size.y / 2; - 8044782: f9b7 311a ldrsh.w r3, [r7, #282] ; 0x11a - 8044786: b29a uxth r2, r3 - 8044788: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 - 804478c: 0fd9 lsrs r1, r3, #31 - 804478e: 440b add r3, r1 - 8044790: 105b asrs r3, r3, #1 - 8044792: b21b sxth r3, r3 - 8044794: b29b uxth r3, r3 - 8044796: 4413 add r3, r2 - 8044798: b29a uxth r2, r3 - 804479a: f9b7 3122 ldrsh.w r3, [r7, #290] ; 0x122 - 804479e: 0fd9 lsrs r1, r3, #31 - 80447a0: 440b add r3, r1 - 80447a2: 105b asrs r3, r3, #1 - 80447a4: b21b sxth r3, r3 - 80447a6: b29b uxth r3, r3 - 80447a8: 4413 add r3, r2 - 80447aa: b29b uxth r3, r3 - 80447ac: b21b sxth r3, r3 - 80447ae: f8a7 3116 strh.w r3, [r7, #278] ; 0x116 + 80446ee: f9b7 311a ldrsh.w r3, [r7, #282] ; 0x11a + 80446f2: b29a uxth r2, r3 + 80446f4: f9b7 3136 ldrsh.w r3, [r7, #310] ; 0x136 + 80446f8: 0fd9 lsrs r1, r3, #31 + 80446fa: 440b add r3, r1 + 80446fc: 105b asrs r3, r3, #1 + 80446fe: b21b sxth r3, r3 + 8044700: b29b uxth r3, r3 + 8044702: 4413 add r3, r2 + 8044704: b29a uxth r2, r3 + 8044706: f9b7 3122 ldrsh.w r3, [r7, #290] ; 0x122 + 804470a: 0fd9 lsrs r1, r3, #31 + 804470c: 440b add r3, r1 + 804470e: 105b asrs r3, r3, #1 + 8044710: b21b sxth r3, r3 + 8044712: b29b uxth r3, r3 + 8044714: 4413 add r3, r2 + 8044716: b29b uxth r3, r3 + 8044718: b21b sxth r3, r3 + 804471a: f8a7 3116 strh.w r3, [r7, #278] ; 0x116 } lv_area_t label_clip_area; bool label_mask_ok; label_mask_ok = _lv_area_intersect(&label_clip_area, &clip_area, &cell_area); - 80447b2: f507 728c add.w r2, r7, #280 ; 0x118 - 80447b6: f507 7192 add.w r1, r7, #292 ; 0x124 - 80447ba: f107 0308 add.w r3, r7, #8 - 80447be: 4618 mov r0, r3 - 80447c0: f7ec fc72 bl 80310a8 <_lv_area_intersect> - 80447c4: 4603 mov r3, r0 - 80447c6: f887 312e strb.w r3, [r7, #302] ; 0x12e + 804471e: f507 728c add.w r2, r7, #280 ; 0x118 + 8044722: f507 7192 add.w r1, r7, #292 ; 0x124 + 8044726: f107 0308 add.w r3, r7, #8 + 804472a: 4618 mov r0, r3 + 804472c: f7ec fc72 bl 8031014 <_lv_area_intersect> + 8044730: 4603 mov r3, r0 + 8044732: f887 312e strb.w r3, [r7, #302] ; 0x12e if(label_mask_ok) { - 80447ca: f897 312e ldrb.w r3, [r7, #302] ; 0x12e - 80447ce: 2b00 cmp r3, #0 - 80447d0: d01c beq.n 804480c + 8044736: f897 312e ldrb.w r3, [r7, #302] ; 0x12e + 804473a: 2b00 cmp r3, #0 + 804473c: d01c beq.n 8044778 draw_ctx->clip_area = &label_clip_area; - 80447d2: f8d7 3154 ldr.w r3, [r7, #340] ; 0x154 - 80447d6: f107 0208 add.w r2, r7, #8 - 80447da: 609a str r2, [r3, #8] + 804473e: f8d7 3154 ldr.w r3, [r7, #340] ; 0x154 + 8044742: f107 0208 add.w r2, r7, #8 + 8044746: 609a str r2, [r3, #8] lv_draw_label(draw_ctx, &label_dsc_act, &txt_area, table->cell_data[cell] + 1, NULL); - 80447dc: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 80447e0: 6a9a ldr r2, [r3, #40] ; 0x28 - 80447e2: f8b7 3168 ldrh.w r3, [r7, #360] ; 0x168 - 80447e6: 009b lsls r3, r3, #2 - 80447e8: 4413 add r3, r2 - 80447ea: 681b ldr r3, [r3, #0] - 80447ec: 3301 adds r3, #1 - 80447ee: f507 7288 add.w r2, r7, #272 ; 0x110 - 80447f2: f107 0160 add.w r1, r7, #96 ; 0x60 - 80447f6: 2000 movs r0, #0 - 80447f8: 9000 str r0, [sp, #0] - 80447fa: f8d7 0154 ldr.w r0, [r7, #340] ; 0x154 - 80447fe: f7cd fcf1 bl 80121e4 + 8044748: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 804474c: 6a9a ldr r2, [r3, #40] ; 0x28 + 804474e: f8b7 3168 ldrh.w r3, [r7, #360] ; 0x168 + 8044752: 009b lsls r3, r3, #2 + 8044754: 4413 add r3, r2 + 8044756: 681b ldr r3, [r3, #0] + 8044758: 3301 adds r3, #1 + 804475a: f507 7288 add.w r2, r7, #272 ; 0x110 + 804475e: f107 0160 add.w r1, r7, #96 ; 0x60 + 8044762: 2000 movs r0, #0 + 8044764: 9000 str r0, [sp, #0] + 8044766: f8d7 0154 ldr.w r0, [r7, #340] ; 0x154 + 804476a: f7cd fcf1 bl 8012150 draw_ctx->clip_area = &clip_area; - 8044802: f8d7 3154 ldr.w r3, [r7, #340] ; 0x154 - 8044806: f507 7292 add.w r2, r7, #292 ; 0x124 - 804480a: 609a str r2, [r3, #8] + 804476e: f8d7 3154 ldr.w r3, [r7, #340] ; 0x154 + 8044772: f507 7292 add.w r2, r7, #292 ; 0x124 + 8044776: 609a str r2, [r3, #8] } } lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc); - 804480c: f107 0318 add.w r3, r7, #24 - 8044810: 461a mov r2, r3 - 8044812: 211b movs r1, #27 - 8044814: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c - 8044818: f7bd fe32 bl 8002480 + 8044778: f107 0318 add.w r3, r7, #24 + 804477c: 461a mov r2, r3 + 804477e: 211b movs r1, #27 + 8044780: f8d7 015c ldr.w r0, [r7, #348] ; 0x15c + 8044784: f7bd fe46 bl 8002414 cell += col_merge + 1; - 804481c: f8b7 2164 ldrh.w r2, [r7, #356] ; 0x164 - 8044820: f8b7 3168 ldrh.w r3, [r7, #360] ; 0x168 - 8044824: 4413 add r3, r2 - 8044826: b29b uxth r3, r3 - 8044828: 3301 adds r3, #1 - 804482a: f8a7 3168 strh.w r3, [r7, #360] ; 0x168 + 8044788: f8b7 2164 ldrh.w r2, [r7, #356] ; 0x164 + 804478c: f8b7 3168 ldrh.w r3, [r7, #360] ; 0x168 + 8044790: 4413 add r3, r2 + 8044792: b29b uxth r3, r3 + 8044794: 3301 adds r3, #1 + 8044796: f8a7 3168 strh.w r3, [r7, #360] ; 0x168 col += col_merge; - 804482e: f8b7 216c ldrh.w r2, [r7, #364] ; 0x16c - 8044832: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 - 8044836: 4413 add r3, r2 - 8044838: f8a7 316c strh.w r3, [r7, #364] ; 0x16c + 804479a: f8b7 216c ldrh.w r2, [r7, #364] ; 0x16c + 804479e: f8b7 3164 ldrh.w r3, [r7, #356] ; 0x164 + 80447a2: 4413 add r3, r2 + 80447a4: f8a7 316c strh.w r3, [r7, #364] ; 0x16c for(col = 0; col < table->col_cnt; col++) { - 804483c: f8b7 316c ldrh.w r3, [r7, #364] ; 0x16c - 8044840: 3301 adds r3, #1 - 8044842: f8a7 316c strh.w r3, [r7, #364] ; 0x16c - 8044846: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 804484a: 8c9b ldrh r3, [r3, #36] ; 0x24 - 804484c: f8b7 216c ldrh.w r2, [r7, #364] ; 0x16c - 8044850: 429a cmp r2, r3 - 8044852: f4ff ac87 bcc.w 8044164 + 80447a8: f8b7 316c ldrh.w r3, [r7, #364] ; 0x16c + 80447ac: 3301 adds r3, #1 + 80447ae: f8a7 316c strh.w r3, [r7, #364] ; 0x16c + 80447b2: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 80447b6: 8c9b ldrh r3, [r3, #36] ; 0x24 + 80447b8: f8b7 216c ldrh.w r2, [r7, #364] ; 0x16c + 80447bc: 429a cmp r2, r3 + 80447be: f4ff ac87 bcc.w 80440d0 for(row = 0; row < table->row_cnt; row++) { - 8044856: f8b7 316a ldrh.w r3, [r7, #362] ; 0x16a - 804485a: 3301 adds r3, #1 - 804485c: f8a7 316a strh.w r3, [r7, #362] ; 0x16a - 8044860: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 - 8044864: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8044866: f8b7 216a ldrh.w r2, [r7, #362] ; 0x16a - 804486a: 429a cmp r2, r3 - 804486c: f4ff ac20 bcc.w 80440b0 - 8044870: e000 b.n 8044874 + 80447c2: f8b7 316a ldrh.w r3, [r7, #362] ; 0x16a + 80447c6: 3301 adds r3, #1 + 80447c8: f8a7 316a strh.w r3, [r7, #362] ; 0x16a + 80447cc: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 80447d0: 8cdb ldrh r3, [r3, #38] ; 0x26 + 80447d2: f8b7 216a ldrh.w r2, [r7, #362] ; 0x16a + 80447d6: 429a cmp r2, r3 + 80447d8: f4ff ac20 bcc.w 804401c + 80447dc: e000 b.n 80447e0 if(cell_area.y1 > clip_area.y2) break; - 8044872: bf00 nop + 80447de: bf00 nop } } draw_ctx->clip_area = clip_area_ori; - 8044874: f8d7 3154 ldr.w r3, [r7, #340] ; 0x154 - 8044878: f8d7 2150 ldr.w r2, [r7, #336] ; 0x150 - 804487c: 609a str r2, [r3, #8] - 804487e: e000 b.n 8044882 + 80447e0: f8d7 3154 ldr.w r3, [r7, #340] ; 0x154 + 80447e4: f8d7 2150 ldr.w r2, [r7, #336] ; 0x150 + 80447e8: 609a str r2, [r3, #8] + 80447ea: e000 b.n 80447ee if(!_lv_area_intersect(&clip_area, &obj->coords, draw_ctx->clip_area)) return; - 8044880: bf00 nop + 80447ec: bf00 nop } - 8044882: f507 77b8 add.w r7, r7, #368 ; 0x170 - 8044886: 46bd mov sp, r7 - 8044888: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} + 80447ee: f507 77b8 add.w r7, r7, #368 ; 0x170 + 80447f2: 46bd mov sp, r7 + 80447f4: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} -0804488c : +080447f8 : static void refr_size(lv_obj_t * obj, uint32_t strat_row) { - 804488c: b590 push {r4, r7, lr} - 804488e: b091 sub sp, #68 ; 0x44 - 8044890: af06 add r7, sp, #24 - 8044892: 6078 str r0, [r7, #4] - 8044894: 6039 str r1, [r7, #0] + 80447f8: b590 push {r4, r7, lr} + 80447fa: b091 sub sp, #68 ; 0x44 + 80447fc: af06 add r7, sp, #24 + 80447fe: 6078 str r0, [r7, #4] + 8044800: 6039 str r1, [r7, #0] lv_table_t * table = (lv_table_t *)obj; - 8044896: 687b ldr r3, [r7, #4] - 8044898: 623b str r3, [r7, #32] + 8044802: 687b ldr r3, [r7, #4] + 8044804: 623b str r3, [r7, #32] uint32_t i; lv_coord_t cell_left = lv_obj_get_style_pad_left(obj, LV_PART_ITEMS); - 804489a: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 804489e: 6878 ldr r0, [r7, #4] - 80448a0: f7ff f834 bl 804390c - 80448a4: 4603 mov r3, r0 - 80448a6: 83fb strh r3, [r7, #30] + 8044806: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 804480a: 6878 ldr r0, [r7, #4] + 804480c: f7ff f834 bl 8043878 + 8044810: 4603 mov r3, r0 + 8044812: 83fb strh r3, [r7, #30] lv_coord_t cell_right = lv_obj_get_style_pad_right(obj, LV_PART_ITEMS); - 80448a8: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 80448ac: 6878 ldr r0, [r7, #4] - 80448ae: f7ff f840 bl 8043932 - 80448b2: 4603 mov r3, r0 - 80448b4: 83bb strh r3, [r7, #28] + 8044814: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8044818: 6878 ldr r0, [r7, #4] + 804481a: f7ff f840 bl 804389e + 804481e: 4603 mov r3, r0 + 8044820: 83bb strh r3, [r7, #28] lv_coord_t cell_top = lv_obj_get_style_pad_top(obj, LV_PART_ITEMS); - 80448b6: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 80448ba: 6878 ldr r0, [r7, #4] - 80448bc: f7ff f800 bl 80438c0 - 80448c0: 4603 mov r3, r0 - 80448c2: 837b strh r3, [r7, #26] + 8044822: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8044826: 6878 ldr r0, [r7, #4] + 8044828: f7ff f800 bl 804382c + 804482c: 4603 mov r3, r0 + 804482e: 837b strh r3, [r7, #26] lv_coord_t cell_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_ITEMS); - 80448c4: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 80448c8: 6878 ldr r0, [r7, #4] - 80448ca: f7ff f80c bl 80438e6 - 80448ce: 4603 mov r3, r0 - 80448d0: 833b strh r3, [r7, #24] + 8044830: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8044834: 6878 ldr r0, [r7, #4] + 8044836: f7ff f80c bl 8043852 + 804483a: 4603 mov r3, r0 + 804483c: 833b strh r3, [r7, #24] lv_coord_t letter_space = lv_obj_get_style_text_letter_space(obj, LV_PART_ITEMS); - 80448d2: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 80448d6: 6878 ldr r0, [r7, #4] - 80448d8: f7ff f863 bl 80439a2 - 80448dc: 4603 mov r3, r0 - 80448de: 82fb strh r3, [r7, #22] + 804483e: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8044842: 6878 ldr r0, [r7, #4] + 8044844: f7ff f863 bl 804390e + 8044848: 4603 mov r3, r0 + 804484a: 82fb strh r3, [r7, #22] lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_ITEMS); - 80448e0: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 80448e4: 6878 ldr r0, [r7, #4] - 80448e6: f7ff f86f bl 80439c8 - 80448ea: 4603 mov r3, r0 - 80448ec: 82bb strh r3, [r7, #20] + 804484c: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8044850: 6878 ldr r0, [r7, #4] + 8044852: f7ff f86f bl 8043934 + 8044856: 4603 mov r3, r0 + 8044858: 82bb strh r3, [r7, #20] const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_ITEMS); - 80448ee: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 80448f2: 6878 ldr r0, [r7, #4] - 80448f4: f7ff f843 bl 804397e - 80448f8: 6138 str r0, [r7, #16] + 804485a: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 804485e: 6878 ldr r0, [r7, #4] + 8044860: f7ff f843 bl 80438ea + 8044864: 6138 str r0, [r7, #16] lv_coord_t minh = lv_obj_get_style_min_height(obj, LV_PART_ITEMS); - 80448fa: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 80448fe: 6878 ldr r0, [r7, #4] - 8044900: f7fe ffb8 bl 8043874 - 8044904: 4603 mov r3, r0 - 8044906: 81fb strh r3, [r7, #14] + 8044866: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 804486a: 6878 ldr r0, [r7, #4] + 804486c: f7fe ffb8 bl 80437e0 + 8044870: 4603 mov r3, r0 + 8044872: 81fb strh r3, [r7, #14] lv_coord_t maxh = lv_obj_get_style_max_height(obj, LV_PART_ITEMS); - 8044908: f44f 21a0 mov.w r1, #327680 ; 0x50000 - 804490c: 6878 ldr r0, [r7, #4] - 804490e: f7fe ffc4 bl 804389a - 8044912: 4603 mov r3, r0 - 8044914: 81bb strh r3, [r7, #12] + 8044874: f44f 21a0 mov.w r1, #327680 ; 0x50000 + 8044878: 6878 ldr r0, [r7, #4] + 804487a: f7fe ffc4 bl 8043806 + 804487e: 4603 mov r3, r0 + 8044880: 81bb strh r3, [r7, #12] for(i = strat_row; i < table->row_cnt; i++) { - 8044916: 683b ldr r3, [r7, #0] - 8044918: 627b str r3, [r7, #36] ; 0x24 - 804491a: e03a b.n 8044992 + 8044882: 683b ldr r3, [r7, #0] + 8044884: 627b str r3, [r7, #36] ; 0x24 + 8044886: e03a b.n 80448fe table->row_h[i] = get_row_height(obj, i, font, letter_space, line_space, - 804491c: 6a7b ldr r3, [r7, #36] ; 0x24 - 804491e: b299 uxth r1, r3 - 8044920: 6a3b ldr r3, [r7, #32] - 8044922: 6ada ldr r2, [r3, #44] ; 0x2c - 8044924: 6a7b ldr r3, [r7, #36] ; 0x24 - 8044926: 005b lsls r3, r3, #1 - 8044928: 18d4 adds r4, r2, r3 - 804492a: f9b7 2016 ldrsh.w r2, [r7, #22] - 804492e: f9b7 3018 ldrsh.w r3, [r7, #24] - 8044932: 9304 str r3, [sp, #16] - 8044934: f9b7 301a ldrsh.w r3, [r7, #26] - 8044938: 9303 str r3, [sp, #12] - 804493a: f9b7 301c ldrsh.w r3, [r7, #28] - 804493e: 9302 str r3, [sp, #8] - 8044940: f9b7 301e ldrsh.w r3, [r7, #30] - 8044944: 9301 str r3, [sp, #4] - 8044946: f9b7 3014 ldrsh.w r3, [r7, #20] - 804494a: 9300 str r3, [sp, #0] - 804494c: 4613 mov r3, r2 - 804494e: 693a ldr r2, [r7, #16] - 8044950: 6878 ldr r0, [r7, #4] - 8044952: f000 f82b bl 80449ac - 8044956: 4603 mov r3, r0 - 8044958: 8023 strh r3, [r4, #0] + 8044888: 6a7b ldr r3, [r7, #36] ; 0x24 + 804488a: b299 uxth r1, r3 + 804488c: 6a3b ldr r3, [r7, #32] + 804488e: 6ada ldr r2, [r3, #44] ; 0x2c + 8044890: 6a7b ldr r3, [r7, #36] ; 0x24 + 8044892: 005b lsls r3, r3, #1 + 8044894: 18d4 adds r4, r2, r3 + 8044896: f9b7 2016 ldrsh.w r2, [r7, #22] + 804489a: f9b7 3018 ldrsh.w r3, [r7, #24] + 804489e: 9304 str r3, [sp, #16] + 80448a0: f9b7 301a ldrsh.w r3, [r7, #26] + 80448a4: 9303 str r3, [sp, #12] + 80448a6: f9b7 301c ldrsh.w r3, [r7, #28] + 80448aa: 9302 str r3, [sp, #8] + 80448ac: f9b7 301e ldrsh.w r3, [r7, #30] + 80448b0: 9301 str r3, [sp, #4] + 80448b2: f9b7 3014 ldrsh.w r3, [r7, #20] + 80448b6: 9300 str r3, [sp, #0] + 80448b8: 4613 mov r3, r2 + 80448ba: 693a ldr r2, [r7, #16] + 80448bc: 6878 ldr r0, [r7, #4] + 80448be: f000 f82b bl 8044918 + 80448c2: 4603 mov r3, r0 + 80448c4: 8023 strh r3, [r4, #0] cell_left, cell_right, cell_top, cell_bottom); table->row_h[i] = LV_CLAMP(minh, table->row_h[i], maxh); - 804495a: 6a3b ldr r3, [r7, #32] - 804495c: 6ada ldr r2, [r3, #44] ; 0x2c - 804495e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8044960: 005b lsls r3, r3, #1 - 8044962: 4413 add r3, r2 - 8044964: f9b3 3000 ldrsh.w r3, [r3] - 8044968: f9b7 200c ldrsh.w r2, [r7, #12] - 804496c: 4293 cmp r3, r2 - 804496e: bfa8 it ge - 8044970: 4613 movge r3, r2 - 8044972: b21a sxth r2, r3 - 8044974: 6a3b ldr r3, [r7, #32] - 8044976: 6ad9 ldr r1, [r3, #44] ; 0x2c - 8044978: 6a7b ldr r3, [r7, #36] ; 0x24 - 804497a: 005b lsls r3, r3, #1 - 804497c: 440b add r3, r1 - 804497e: f9b7 100e ldrsh.w r1, [r7, #14] - 8044982: 428a cmp r2, r1 - 8044984: bfb8 it lt - 8044986: 460a movlt r2, r1 - 8044988: b212 sxth r2, r2 - 804498a: 801a strh r2, [r3, #0] + 80448c6: 6a3b ldr r3, [r7, #32] + 80448c8: 6ada ldr r2, [r3, #44] ; 0x2c + 80448ca: 6a7b ldr r3, [r7, #36] ; 0x24 + 80448cc: 005b lsls r3, r3, #1 + 80448ce: 4413 add r3, r2 + 80448d0: f9b3 3000 ldrsh.w r3, [r3] + 80448d4: f9b7 200c ldrsh.w r2, [r7, #12] + 80448d8: 4293 cmp r3, r2 + 80448da: bfa8 it ge + 80448dc: 4613 movge r3, r2 + 80448de: b21a sxth r2, r3 + 80448e0: 6a3b ldr r3, [r7, #32] + 80448e2: 6ad9 ldr r1, [r3, #44] ; 0x2c + 80448e4: 6a7b ldr r3, [r7, #36] ; 0x24 + 80448e6: 005b lsls r3, r3, #1 + 80448e8: 440b add r3, r1 + 80448ea: f9b7 100e ldrsh.w r1, [r7, #14] + 80448ee: 428a cmp r2, r1 + 80448f0: bfb8 it lt + 80448f2: 460a movlt r2, r1 + 80448f4: b212 sxth r2, r2 + 80448f6: 801a strh r2, [r3, #0] for(i = strat_row; i < table->row_cnt; i++) { - 804498c: 6a7b ldr r3, [r7, #36] ; 0x24 - 804498e: 3301 adds r3, #1 - 8044990: 627b str r3, [r7, #36] ; 0x24 - 8044992: 6a3b ldr r3, [r7, #32] - 8044994: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8044996: 461a mov r2, r3 - 8044998: 6a7b ldr r3, [r7, #36] ; 0x24 - 804499a: 4293 cmp r3, r2 - 804499c: d3be bcc.n 804491c + 80448f8: 6a7b ldr r3, [r7, #36] ; 0x24 + 80448fa: 3301 adds r3, #1 + 80448fc: 627b str r3, [r7, #36] ; 0x24 + 80448fe: 6a3b ldr r3, [r7, #32] + 8044900: 8cdb ldrh r3, [r3, #38] ; 0x26 + 8044902: 461a mov r2, r3 + 8044904: 6a7b ldr r3, [r7, #36] ; 0x24 + 8044906: 4293 cmp r3, r2 + 8044908: d3be bcc.n 8044888 } lv_obj_refresh_self_size(obj) ; - 804499e: 6878 ldr r0, [r7, #4] - 80449a0: f7c5 fccf bl 800a342 + 804490a: 6878 ldr r0, [r7, #4] + 804490c: f7c5 fce3 bl 800a2d6 } - 80449a4: bf00 nop - 80449a6: 372c adds r7, #44 ; 0x2c - 80449a8: 46bd mov sp, r7 - 80449aa: bd90 pop {r4, r7, pc} + 8044910: bf00 nop + 8044912: 372c adds r7, #44 ; 0x2c + 8044914: 46bd mov sp, r7 + 8044916: bd90 pop {r4, r7, pc} -080449ac : +08044918 : static lv_coord_t get_row_height(lv_obj_t * obj, uint16_t row_id, const lv_font_t * font, lv_coord_t letter_space, lv_coord_t line_space, lv_coord_t cell_left, lv_coord_t cell_right, lv_coord_t cell_top, lv_coord_t cell_bottom) { - 80449ac: b580 push {r7, lr} - 80449ae: b090 sub sp, #64 ; 0x40 - 80449b0: af04 add r7, sp, #16 - 80449b2: 60f8 str r0, [r7, #12] - 80449b4: 607a str r2, [r7, #4] - 80449b6: 461a mov r2, r3 - 80449b8: 460b mov r3, r1 - 80449ba: 817b strh r3, [r7, #10] - 80449bc: 4613 mov r3, r2 - 80449be: 813b strh r3, [r7, #8] + 8044918: b580 push {r7, lr} + 804491a: b090 sub sp, #64 ; 0x40 + 804491c: af04 add r7, sp, #16 + 804491e: 60f8 str r0, [r7, #12] + 8044920: 607a str r2, [r7, #4] + 8044922: 461a mov r2, r3 + 8044924: 460b mov r3, r1 + 8044926: 817b strh r3, [r7, #10] + 8044928: 4613 mov r3, r2 + 804492a: 813b strh r3, [r7, #8] lv_table_t * table = (lv_table_t *)obj; - 80449c0: 68fb ldr r3, [r7, #12] - 80449c2: 623b str r3, [r7, #32] + 804492c: 68fb ldr r3, [r7, #12] + 804492e: 623b str r3, [r7, #32] lv_point_t txt_size; lv_coord_t txt_w; uint16_t row_start = row_id * table->col_cnt; - 80449c4: 6a3b ldr r3, [r7, #32] - 80449c6: 8c9b ldrh r3, [r3, #36] ; 0x24 - 80449c8: 897a ldrh r2, [r7, #10] - 80449ca: fb02 f303 mul.w r3, r2, r3 - 80449ce: 83fb strh r3, [r7, #30] + 8044930: 6a3b ldr r3, [r7, #32] + 8044932: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8044934: 897a ldrh r2, [r7, #10] + 8044936: fb02 f303 mul.w r3, r2, r3 + 804493a: 83fb strh r3, [r7, #30] uint16_t cell; uint16_t col; lv_coord_t h_max = lv_font_get_line_height(font) + cell_top + cell_bottom; - 80449d0: 6878 ldr r0, [r7, #4] - 80449d2: f7fe ff43 bl 804385c - 80449d6: 4603 mov r3, r0 - 80449d8: b29a uxth r2, r3 - 80449da: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 - 80449de: 4413 add r3, r2 - 80449e0: b29a uxth r2, r3 - 80449e2: f8b7 3048 ldrh.w r3, [r7, #72] ; 0x48 - 80449e6: 4413 add r3, r2 - 80449e8: b29b uxth r3, r3 - 80449ea: 853b strh r3, [r7, #40] ; 0x28 + 804493c: 6878 ldr r0, [r7, #4] + 804493e: f7fe ff43 bl 80437c8 + 8044942: 4603 mov r3, r0 + 8044944: b29a uxth r2, r3 + 8044946: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 + 804494a: 4413 add r3, r2 + 804494c: b29a uxth r2, r3 + 804494e: f8b7 3048 ldrh.w r3, [r7, #72] ; 0x48 + 8044952: 4413 add r3, r2 + 8044954: b29b uxth r3, r3 + 8044956: 853b strh r3, [r7, #40] ; 0x28 for(cell = row_start, col = 0; cell < row_start + table->col_cnt; cell++, col++) { - 80449ec: 8bfb ldrh r3, [r7, #30] - 80449ee: 85bb strh r3, [r7, #44] ; 0x2c - 80449f0: 2300 movs r3, #0 - 80449f2: 857b strh r3, [r7, #42] ; 0x2a - 80449f4: e0ce b.n 8044b94 + 8044958: 8bfb ldrh r3, [r7, #30] + 804495a: 85bb strh r3, [r7, #44] ; 0x2c + 804495c: 2300 movs r3, #0 + 804495e: 857b strh r3, [r7, #42] ; 0x2a + 8044960: e0ce b.n 8044b00 if(table->cell_data[cell] != NULL) { - 80449f6: 6a3b ldr r3, [r7, #32] - 80449f8: 6a9a ldr r2, [r3, #40] ; 0x28 - 80449fa: 8dbb ldrh r3, [r7, #44] ; 0x2c - 80449fc: 009b lsls r3, r3, #2 - 80449fe: 4413 add r3, r2 - 8044a00: 681b ldr r3, [r3, #0] - 8044a02: 2b00 cmp r3, #0 - 8044a04: f000 80c0 beq.w 8044b88 + 8044962: 6a3b ldr r3, [r7, #32] + 8044964: 6a9a ldr r2, [r3, #40] ; 0x28 + 8044966: 8dbb ldrh r3, [r7, #44] ; 0x2c + 8044968: 009b lsls r3, r3, #2 + 804496a: 4413 add r3, r2 + 804496c: 681b ldr r3, [r3, #0] + 804496e: 2b00 cmp r3, #0 + 8044970: f000 80c0 beq.w 8044af4 txt_w = table->col_w[col]; - 8044a08: 6a3b ldr r3, [r7, #32] - 8044a0a: 6b1a ldr r2, [r3, #48] ; 0x30 - 8044a0c: 8d7b ldrh r3, [r7, #42] ; 0x2a - 8044a0e: 005b lsls r3, r3, #1 - 8044a10: 4413 add r3, r2 - 8044a12: 881b ldrh r3, [r3, #0] - 8044a14: 85fb strh r3, [r7, #46] ; 0x2e + 8044974: 6a3b ldr r3, [r7, #32] + 8044976: 6b1a ldr r2, [r3, #48] ; 0x30 + 8044978: 8d7b ldrh r3, [r7, #42] ; 0x2a + 804497a: 005b lsls r3, r3, #1 + 804497c: 4413 add r3, r2 + 804497e: 881b ldrh r3, [r3, #0] + 8044980: 85fb strh r3, [r7, #46] ; 0x2e uint16_t col_merge = 0; - 8044a16: 2300 movs r3, #0 - 8044a18: 84fb strh r3, [r7, #38] ; 0x26 + 8044982: 2300 movs r3, #0 + 8044984: 84fb strh r3, [r7, #38] ; 0x26 for(col_merge = 0; col_merge + col < table->col_cnt - 1; col_merge++) { - 8044a1a: 2300 movs r3, #0 - 8044a1c: 84fb strh r3, [r7, #38] ; 0x26 - 8044a1e: e034 b.n 8044a8a + 8044986: 2300 movs r3, #0 + 8044988: 84fb strh r3, [r7, #38] ; 0x26 + 804498a: e034 b.n 80449f6 if(table->cell_data[cell + col_merge] != NULL) { - 8044a20: 6a3b ldr r3, [r7, #32] - 8044a22: 6a9a ldr r2, [r3, #40] ; 0x28 - 8044a24: 8db9 ldrh r1, [r7, #44] ; 0x2c - 8044a26: 8cfb ldrh r3, [r7, #38] ; 0x26 - 8044a28: 440b add r3, r1 - 8044a2a: 009b lsls r3, r3, #2 - 8044a2c: 4413 add r3, r2 - 8044a2e: 681b ldr r3, [r3, #0] - 8044a30: 2b00 cmp r3, #0 - 8044a32: d033 beq.n 8044a9c + 804498c: 6a3b ldr r3, [r7, #32] + 804498e: 6a9a ldr r2, [r3, #40] ; 0x28 + 8044990: 8db9 ldrh r1, [r7, #44] ; 0x2c + 8044992: 8cfb ldrh r3, [r7, #38] ; 0x26 + 8044994: 440b add r3, r1 + 8044996: 009b lsls r3, r3, #2 + 8044998: 4413 add r3, r2 + 804499a: 681b ldr r3, [r3, #0] + 804499c: 2b00 cmp r3, #0 + 804499e: d033 beq.n 8044a08 lv_table_cell_ctrl_t ctrl = 0; - 8044a34: 2300 movs r3, #0 - 8044a36: f887 3025 strb.w r3, [r7, #37] ; 0x25 + 80449a0: 2300 movs r3, #0 + 80449a2: f887 3025 strb.w r3, [r7, #37] ; 0x25 char * next_cell_data = table->cell_data[cell + col_merge]; - 8044a3a: 6a3b ldr r3, [r7, #32] - 8044a3c: 6a9a ldr r2, [r3, #40] ; 0x28 - 8044a3e: 8db9 ldrh r1, [r7, #44] ; 0x2c - 8044a40: 8cfb ldrh r3, [r7, #38] ; 0x26 - 8044a42: 440b add r3, r1 - 8044a44: 009b lsls r3, r3, #2 - 8044a46: 4413 add r3, r2 - 8044a48: 681b ldr r3, [r3, #0] - 8044a4a: 61bb str r3, [r7, #24] + 80449a6: 6a3b ldr r3, [r7, #32] + 80449a8: 6a9a ldr r2, [r3, #40] ; 0x28 + 80449aa: 8db9 ldrh r1, [r7, #44] ; 0x2c + 80449ac: 8cfb ldrh r3, [r7, #38] ; 0x26 + 80449ae: 440b add r3, r1 + 80449b0: 009b lsls r3, r3, #2 + 80449b2: 4413 add r3, r2 + 80449b4: 681b ldr r3, [r3, #0] + 80449b6: 61bb str r3, [r7, #24] if(next_cell_data) ctrl = next_cell_data[0]; - 8044a4c: 69bb ldr r3, [r7, #24] - 8044a4e: 2b00 cmp r3, #0 - 8044a50: d003 beq.n 8044a5a - 8044a52: 69bb ldr r3, [r7, #24] - 8044a54: 781b ldrb r3, [r3, #0] - 8044a56: f887 3025 strb.w r3, [r7, #37] ; 0x25 + 80449b8: 69bb ldr r3, [r7, #24] + 80449ba: 2b00 cmp r3, #0 + 80449bc: d003 beq.n 80449c6 + 80449be: 69bb ldr r3, [r7, #24] + 80449c0: 781b ldrb r3, [r3, #0] + 80449c2: f887 3025 strb.w r3, [r7, #37] ; 0x25 if(ctrl & LV_TABLE_CELL_CTRL_MERGE_RIGHT) - 8044a5a: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 - 8044a5e: f003 0301 and.w r3, r3, #1 - 8044a62: 2b00 cmp r3, #0 - 8044a64: d01c beq.n 8044aa0 + 80449c6: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 + 80449ca: f003 0301 and.w r3, r3, #1 + 80449ce: 2b00 cmp r3, #0 + 80449d0: d01c beq.n 8044a0c txt_w += table->col_w[col + col_merge + 1]; - 8044a66: 6a3b ldr r3, [r7, #32] - 8044a68: 6b1a ldr r2, [r3, #48] ; 0x30 - 8044a6a: 8d79 ldrh r1, [r7, #42] ; 0x2a - 8044a6c: 8cfb ldrh r3, [r7, #38] ; 0x26 - 8044a6e: 440b add r3, r1 - 8044a70: 3301 adds r3, #1 - 8044a72: 005b lsls r3, r3, #1 - 8044a74: 4413 add r3, r2 - 8044a76: f9b3 3000 ldrsh.w r3, [r3] - 8044a7a: b29a uxth r2, r3 - 8044a7c: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8044a7e: 4413 add r3, r2 - 8044a80: b29b uxth r3, r3 - 8044a82: 85fb strh r3, [r7, #46] ; 0x2e + 80449d2: 6a3b ldr r3, [r7, #32] + 80449d4: 6b1a ldr r2, [r3, #48] ; 0x30 + 80449d6: 8d79 ldrh r1, [r7, #42] ; 0x2a + 80449d8: 8cfb ldrh r3, [r7, #38] ; 0x26 + 80449da: 440b add r3, r1 + 80449dc: 3301 adds r3, #1 + 80449de: 005b lsls r3, r3, #1 + 80449e0: 4413 add r3, r2 + 80449e2: f9b3 3000 ldrsh.w r3, [r3] + 80449e6: b29a uxth r2, r3 + 80449e8: 8dfb ldrh r3, [r7, #46] ; 0x2e + 80449ea: 4413 add r3, r2 + 80449ec: b29b uxth r3, r3 + 80449ee: 85fb strh r3, [r7, #46] ; 0x2e for(col_merge = 0; col_merge + col < table->col_cnt - 1; col_merge++) { - 8044a84: 8cfb ldrh r3, [r7, #38] ; 0x26 - 8044a86: 3301 adds r3, #1 - 8044a88: 84fb strh r3, [r7, #38] ; 0x26 - 8044a8a: 8cfa ldrh r2, [r7, #38] ; 0x26 - 8044a8c: 8d7b ldrh r3, [r7, #42] ; 0x2a - 8044a8e: 441a add r2, r3 - 8044a90: 6a3b ldr r3, [r7, #32] - 8044a92: 8c9b ldrh r3, [r3, #36] ; 0x24 - 8044a94: 3b01 subs r3, #1 - 8044a96: 429a cmp r2, r3 - 8044a98: dbc2 blt.n 8044a20 - 8044a9a: e002 b.n 8044aa2 + 80449f0: 8cfb ldrh r3, [r7, #38] ; 0x26 + 80449f2: 3301 adds r3, #1 + 80449f4: 84fb strh r3, [r7, #38] ; 0x26 + 80449f6: 8cfa ldrh r2, [r7, #38] ; 0x26 + 80449f8: 8d7b ldrh r3, [r7, #42] ; 0x2a + 80449fa: 441a add r2, r3 + 80449fc: 6a3b ldr r3, [r7, #32] + 80449fe: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8044a00: 3b01 subs r3, #1 + 8044a02: 429a cmp r2, r3 + 8044a04: dbc2 blt.n 804498c + 8044a06: e002 b.n 8044a0e else break; } else { break; - 8044a9c: bf00 nop - 8044a9e: e000 b.n 8044aa2 + 8044a08: bf00 nop + 8044a0a: e000 b.n 8044a0e break; - 8044aa0: bf00 nop + 8044a0c: bf00 nop } } lv_table_cell_ctrl_t ctrl = 0; - 8044aa2: 2300 movs r3, #0 - 8044aa4: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 8044a0e: 2300 movs r3, #0 + 8044a10: f887 3024 strb.w r3, [r7, #36] ; 0x24 if(table->cell_data[cell]) ctrl = table->cell_data[cell][0]; - 8044aa8: 6a3b ldr r3, [r7, #32] - 8044aaa: 6a9a ldr r2, [r3, #40] ; 0x28 - 8044aac: 8dbb ldrh r3, [r7, #44] ; 0x2c - 8044aae: 009b lsls r3, r3, #2 - 8044ab0: 4413 add r3, r2 - 8044ab2: 681b ldr r3, [r3, #0] - 8044ab4: 2b00 cmp r3, #0 - 8044ab6: d008 beq.n 8044aca - 8044ab8: 6a3b ldr r3, [r7, #32] - 8044aba: 6a9a ldr r2, [r3, #40] ; 0x28 - 8044abc: 8dbb ldrh r3, [r7, #44] ; 0x2c - 8044abe: 009b lsls r3, r3, #2 - 8044ac0: 4413 add r3, r2 - 8044ac2: 681b ldr r3, [r3, #0] - 8044ac4: 781b ldrb r3, [r3, #0] - 8044ac6: f887 3024 strb.w r3, [r7, #36] ; 0x24 + 8044a14: 6a3b ldr r3, [r7, #32] + 8044a16: 6a9a ldr r2, [r3, #40] ; 0x28 + 8044a18: 8dbb ldrh r3, [r7, #44] ; 0x2c + 8044a1a: 009b lsls r3, r3, #2 + 8044a1c: 4413 add r3, r2 + 8044a1e: 681b ldr r3, [r3, #0] + 8044a20: 2b00 cmp r3, #0 + 8044a22: d008 beq.n 8044a36 + 8044a24: 6a3b ldr r3, [r7, #32] + 8044a26: 6a9a ldr r2, [r3, #40] ; 0x28 + 8044a28: 8dbb ldrh r3, [r7, #44] ; 0x2c + 8044a2a: 009b lsls r3, r3, #2 + 8044a2c: 4413 add r3, r2 + 8044a2e: 681b ldr r3, [r3, #0] + 8044a30: 781b ldrb r3, [r3, #0] + 8044a32: f887 3024 strb.w r3, [r7, #36] ; 0x24 /*With text crop assume 1 line*/ if(ctrl & LV_TABLE_CELL_CTRL_TEXT_CROP) { - 8044aca: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 8044ace: f003 0302 and.w r3, r3, #2 - 8044ad2: 2b00 cmp r3, #0 - 8044ad4: d021 beq.n 8044b1a + 8044a36: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 + 8044a3a: f003 0302 and.w r3, r3, #2 + 8044a3e: 2b00 cmp r3, #0 + 8044a40: d021 beq.n 8044a86 h_max = LV_MAX(lv_font_get_line_height(font) + cell_top + cell_bottom, - 8044ad6: 6878 ldr r0, [r7, #4] - 8044ad8: f7fe fec0 bl 804385c - 8044adc: 4603 mov r3, r0 - 8044ade: 461a mov r2, r3 - 8044ae0: f9b7 3044 ldrsh.w r3, [r7, #68] ; 0x44 - 8044ae4: 441a add r2, r3 - 8044ae6: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 - 8044aea: 441a add r2, r3 - 8044aec: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 - 8044af0: 429a cmp r2, r3 - 8044af2: dd0e ble.n 8044b12 - 8044af4: 6878 ldr r0, [r7, #4] - 8044af6: f7fe feb1 bl 804385c - 8044afa: 4603 mov r3, r0 - 8044afc: b29a uxth r2, r3 - 8044afe: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 - 8044b02: 4413 add r3, r2 - 8044b04: b29a uxth r2, r3 - 8044b06: f8b7 3048 ldrh.w r3, [r7, #72] ; 0x48 - 8044b0a: 4413 add r3, r2 - 8044b0c: b29b uxth r3, r3 - 8044b0e: b21b sxth r3, r3 - 8044b10: e001 b.n 8044b16 - 8044b12: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 - 8044b16: 853b strh r3, [r7, #40] ; 0x28 - 8044b18: e036 b.n 8044b88 + 8044a42: 6878 ldr r0, [r7, #4] + 8044a44: f7fe fec0 bl 80437c8 + 8044a48: 4603 mov r3, r0 + 8044a4a: 461a mov r2, r3 + 8044a4c: f9b7 3044 ldrsh.w r3, [r7, #68] ; 0x44 + 8044a50: 441a add r2, r3 + 8044a52: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 + 8044a56: 441a add r2, r3 + 8044a58: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 8044a5c: 429a cmp r2, r3 + 8044a5e: dd0e ble.n 8044a7e + 8044a60: 6878 ldr r0, [r7, #4] + 8044a62: f7fe feb1 bl 80437c8 + 8044a66: 4603 mov r3, r0 + 8044a68: b29a uxth r2, r3 + 8044a6a: f8b7 3044 ldrh.w r3, [r7, #68] ; 0x44 + 8044a6e: 4413 add r3, r2 + 8044a70: b29a uxth r2, r3 + 8044a72: f8b7 3048 ldrh.w r3, [r7, #72] ; 0x48 + 8044a76: 4413 add r3, r2 + 8044a78: b29b uxth r3, r3 + 8044a7a: b21b sxth r3, r3 + 8044a7c: e001 b.n 8044a82 + 8044a7e: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 8044a82: 853b strh r3, [r7, #40] ; 0x28 + 8044a84: e036 b.n 8044af4 h_max); } /*Without text crop calculate the height of the text in the cell*/ else { txt_w -= cell_left + cell_right; - 8044b1a: 8dfa ldrh r2, [r7, #46] ; 0x2e - 8044b1c: 8fb9 ldrh r1, [r7, #60] ; 0x3c - 8044b1e: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 - 8044b22: 440b add r3, r1 - 8044b24: b29b uxth r3, r3 - 8044b26: 1ad3 subs r3, r2, r3 - 8044b28: b29b uxth r3, r3 - 8044b2a: 85fb strh r3, [r7, #46] ; 0x2e + 8044a86: 8dfa ldrh r2, [r7, #46] ; 0x2e + 8044a88: 8fb9 ldrh r1, [r7, #60] ; 0x3c + 8044a8a: f8b7 3040 ldrh.w r3, [r7, #64] ; 0x40 + 8044a8e: 440b add r3, r1 + 8044a90: b29b uxth r3, r3 + 8044a92: 1ad3 subs r3, r2, r3 + 8044a94: b29b uxth r3, r3 + 8044a96: 85fb strh r3, [r7, #46] ; 0x2e lv_txt_get_size(&txt_size, table->cell_data[cell] + 1, font, - 8044b2c: 6a3b ldr r3, [r7, #32] - 8044b2e: 6a9a ldr r2, [r3, #40] ; 0x28 - 8044b30: 8dbb ldrh r3, [r7, #44] ; 0x2c - 8044b32: 009b lsls r3, r3, #2 - 8044b34: 4413 add r3, r2 - 8044b36: 681b ldr r3, [r3, #0] - 8044b38: 1c59 adds r1, r3, #1 - 8044b3a: f9b7 2008 ldrsh.w r2, [r7, #8] - 8044b3e: f107 0014 add.w r0, r7, #20 - 8044b42: 2300 movs r3, #0 - 8044b44: 9302 str r3, [sp, #8] - 8044b46: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e - 8044b4a: 9301 str r3, [sp, #4] - 8044b4c: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 8044b50: 9300 str r3, [sp, #0] - 8044b52: 4613 mov r3, r2 - 8044b54: 687a ldr r2, [r7, #4] - 8044b56: f7f1 fa98 bl 803608a + 8044a98: 6a3b ldr r3, [r7, #32] + 8044a9a: 6a9a ldr r2, [r3, #40] ; 0x28 + 8044a9c: 8dbb ldrh r3, [r7, #44] ; 0x2c + 8044a9e: 009b lsls r3, r3, #2 + 8044aa0: 4413 add r3, r2 + 8044aa2: 681b ldr r3, [r3, #0] + 8044aa4: 1c59 adds r1, r3, #1 + 8044aa6: f9b7 2008 ldrsh.w r2, [r7, #8] + 8044aaa: f107 0014 add.w r0, r7, #20 + 8044aae: 2300 movs r3, #0 + 8044ab0: 9302 str r3, [sp, #8] + 8044ab2: f9b7 302e ldrsh.w r3, [r7, #46] ; 0x2e + 8044ab6: 9301 str r3, [sp, #4] + 8044ab8: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 8044abc: 9300 str r3, [sp, #0] + 8044abe: 4613 mov r3, r2 + 8044ac0: 687a ldr r2, [r7, #4] + 8044ac2: f7f1 fa98 bl 8035ff6 letter_space, line_space, txt_w, LV_TEXT_FLAG_NONE); h_max = LV_MAX(txt_size.y + cell_top + cell_bottom, h_max); - 8044b5a: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 - 8044b5e: f9b7 3016 ldrsh.w r3, [r7, #22] - 8044b62: 4619 mov r1, r3 - 8044b64: f9b7 3044 ldrsh.w r3, [r7, #68] ; 0x44 - 8044b68: 4419 add r1, r3 - 8044b6a: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 - 8044b6e: 440b add r3, r1 - 8044b70: 4293 cmp r3, r2 - 8044b72: bfb8 it lt - 8044b74: 4613 movlt r3, r2 - 8044b76: 853b strh r3, [r7, #40] ; 0x28 + 8044ac6: f9b7 2028 ldrsh.w r2, [r7, #40] ; 0x28 + 8044aca: f9b7 3016 ldrsh.w r3, [r7, #22] + 8044ace: 4619 mov r1, r3 + 8044ad0: f9b7 3044 ldrsh.w r3, [r7, #68] ; 0x44 + 8044ad4: 4419 add r1, r3 + 8044ad6: f9b7 3048 ldrsh.w r3, [r7, #72] ; 0x48 + 8044ada: 440b add r3, r1 + 8044adc: 4293 cmp r3, r2 + 8044ade: bfb8 it lt + 8044ae0: 4613 movlt r3, r2 + 8044ae2: 853b strh r3, [r7, #40] ; 0x28 cell += col_merge; - 8044b78: 8dba ldrh r2, [r7, #44] ; 0x2c - 8044b7a: 8cfb ldrh r3, [r7, #38] ; 0x26 - 8044b7c: 4413 add r3, r2 - 8044b7e: 85bb strh r3, [r7, #44] ; 0x2c + 8044ae4: 8dba ldrh r2, [r7, #44] ; 0x2c + 8044ae6: 8cfb ldrh r3, [r7, #38] ; 0x26 + 8044ae8: 4413 add r3, r2 + 8044aea: 85bb strh r3, [r7, #44] ; 0x2c col += col_merge; - 8044b80: 8d7a ldrh r2, [r7, #42] ; 0x2a - 8044b82: 8cfb ldrh r3, [r7, #38] ; 0x26 - 8044b84: 4413 add r3, r2 - 8044b86: 857b strh r3, [r7, #42] ; 0x2a + 8044aec: 8d7a ldrh r2, [r7, #42] ; 0x2a + 8044aee: 8cfb ldrh r3, [r7, #38] ; 0x26 + 8044af0: 4413 add r3, r2 + 8044af2: 857b strh r3, [r7, #42] ; 0x2a for(cell = row_start, col = 0; cell < row_start + table->col_cnt; cell++, col++) { - 8044b88: 8dbb ldrh r3, [r7, #44] ; 0x2c - 8044b8a: 3301 adds r3, #1 - 8044b8c: 85bb strh r3, [r7, #44] ; 0x2c - 8044b8e: 8d7b ldrh r3, [r7, #42] ; 0x2a - 8044b90: 3301 adds r3, #1 - 8044b92: 857b strh r3, [r7, #42] ; 0x2a - 8044b94: 8dba ldrh r2, [r7, #44] ; 0x2c - 8044b96: 8bfb ldrh r3, [r7, #30] - 8044b98: 6a39 ldr r1, [r7, #32] - 8044b9a: 8c89 ldrh r1, [r1, #36] ; 0x24 - 8044b9c: 440b add r3, r1 - 8044b9e: 429a cmp r2, r3 - 8044ba0: f6ff af29 blt.w 80449f6 + 8044af4: 8dbb ldrh r3, [r7, #44] ; 0x2c + 8044af6: 3301 adds r3, #1 + 8044af8: 85bb strh r3, [r7, #44] ; 0x2c + 8044afa: 8d7b ldrh r3, [r7, #42] ; 0x2a + 8044afc: 3301 adds r3, #1 + 8044afe: 857b strh r3, [r7, #42] ; 0x2a + 8044b00: 8dba ldrh r2, [r7, #44] ; 0x2c + 8044b02: 8bfb ldrh r3, [r7, #30] + 8044b04: 6a39 ldr r1, [r7, #32] + 8044b06: 8c89 ldrh r1, [r1, #36] ; 0x24 + 8044b08: 440b add r3, r1 + 8044b0a: 429a cmp r2, r3 + 8044b0c: f6ff af29 blt.w 8044962 } } } return h_max; - 8044ba4: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 + 8044b10: f9b7 3028 ldrsh.w r3, [r7, #40] ; 0x28 } - 8044ba8: 4618 mov r0, r3 - 8044baa: 3730 adds r7, #48 ; 0x30 - 8044bac: 46bd mov sp, r7 - 8044bae: bd80 pop {r7, pc} + 8044b14: 4618 mov r0, r3 + 8044b16: 3730 adds r7, #48 ; 0x30 + 8044b18: 46bd mov sp, r7 + 8044b1a: bd80 pop {r7, pc} -08044bb0 : +08044b1c : static lv_res_t get_pressed_cell(lv_obj_t * obj, uint16_t * row, uint16_t * col) { - 8044bb0: b590 push {r4, r7, lr} - 8044bb2: b089 sub sp, #36 ; 0x24 - 8044bb4: af00 add r7, sp, #0 - 8044bb6: 60f8 str r0, [r7, #12] - 8044bb8: 60b9 str r1, [r7, #8] - 8044bba: 607a str r2, [r7, #4] + 8044b1c: b590 push {r4, r7, lr} + 8044b1e: b089 sub sp, #36 ; 0x24 + 8044b20: af00 add r7, sp, #0 + 8044b22: 60f8 str r0, [r7, #12] + 8044b24: 60b9 str r1, [r7, #8] + 8044b26: 607a str r2, [r7, #4] lv_table_t * table = (lv_table_t *)obj; - 8044bbc: 68fb ldr r3, [r7, #12] - 8044bbe: 61bb str r3, [r7, #24] + 8044b28: 68fb ldr r3, [r7, #12] + 8044b2a: 61bb str r3, [r7, #24] lv_indev_type_t type = lv_indev_get_type(lv_indev_get_act()); - 8044bc0: f7be fbaa bl 8003318 - 8044bc4: 4603 mov r3, r0 - 8044bc6: 4618 mov r0, r3 - 8044bc8: f7be fbb0 bl 800332c - 8044bcc: 4603 mov r3, r0 - 8044bce: 75fb strb r3, [r7, #23] + 8044b2c: f7be fbbe bl 80032ac + 8044b30: 4603 mov r3, r0 + 8044b32: 4618 mov r0, r3 + 8044b34: f7be fbc4 bl 80032c0 + 8044b38: 4603 mov r3, r0 + 8044b3a: 75fb strb r3, [r7, #23] if(type != LV_INDEV_TYPE_POINTER && type != LV_INDEV_TYPE_BUTTON) { - 8044bd0: 7dfb ldrb r3, [r7, #23] - 8044bd2: 2b01 cmp r3, #1 - 8044bd4: d012 beq.n 8044bfc - 8044bd6: 7dfb ldrb r3, [r7, #23] - 8044bd8: 2b03 cmp r3, #3 - 8044bda: d00f beq.n 8044bfc + 8044b3c: 7dfb ldrb r3, [r7, #23] + 8044b3e: 2b01 cmp r3, #1 + 8044b40: d012 beq.n 8044b68 + 8044b42: 7dfb ldrb r3, [r7, #23] + 8044b44: 2b03 cmp r3, #3 + 8044b46: d00f beq.n 8044b68 if(col) *col = LV_TABLE_CELL_NONE; - 8044bdc: 687b ldr r3, [r7, #4] - 8044bde: 2b00 cmp r3, #0 - 8044be0: d003 beq.n 8044bea - 8044be2: 687b ldr r3, [r7, #4] - 8044be4: f64f 72ff movw r2, #65535 ; 0xffff - 8044be8: 801a strh r2, [r3, #0] + 8044b48: 687b ldr r3, [r7, #4] + 8044b4a: 2b00 cmp r3, #0 + 8044b4c: d003 beq.n 8044b56 + 8044b4e: 687b ldr r3, [r7, #4] + 8044b50: f64f 72ff movw r2, #65535 ; 0xffff + 8044b54: 801a strh r2, [r3, #0] if(row) *row = LV_TABLE_CELL_NONE; - 8044bea: 68bb ldr r3, [r7, #8] - 8044bec: 2b00 cmp r3, #0 - 8044bee: d003 beq.n 8044bf8 - 8044bf0: 68bb ldr r3, [r7, #8] - 8044bf2: f64f 72ff movw r2, #65535 ; 0xffff - 8044bf6: 801a strh r2, [r3, #0] + 8044b56: 68bb ldr r3, [r7, #8] + 8044b58: 2b00 cmp r3, #0 + 8044b5a: d003 beq.n 8044b64 + 8044b5c: 68bb ldr r3, [r7, #8] + 8044b5e: f64f 72ff movw r2, #65535 ; 0xffff + 8044b62: 801a strh r2, [r3, #0] return LV_RES_INV; - 8044bf8: 2300 movs r3, #0 - 8044bfa: e0b5 b.n 8044d68 + 8044b64: 2300 movs r3, #0 + 8044b66: e0b5 b.n 8044cd4 } lv_point_t p; lv_indev_get_point(lv_indev_get_act(), &p); - 8044bfc: f7be fb8c bl 8003318 - 8044c00: 4602 mov r2, r0 - 8044c02: f107 0310 add.w r3, r7, #16 - 8044c06: 4619 mov r1, r3 - 8044c08: 4610 mov r0, r2 - 8044c0a: f7be fc77 bl 80034fc + 8044b68: f7be fba0 bl 80032ac + 8044b6c: 4602 mov r2, r0 + 8044b6e: f107 0310 add.w r3, r7, #16 + 8044b72: 4619 mov r1, r3 + 8044b74: 4610 mov r0, r2 + 8044b76: f7be fc8b bl 8003490 lv_coord_t tmp; if(col) { - 8044c0e: 687b ldr r3, [r7, #4] - 8044c10: 2b00 cmp r3, #0 - 8044c12: d05e beq.n 8044cd2 + 8044b7a: 687b ldr r3, [r7, #4] + 8044b7c: 2b00 cmp r3, #0 + 8044b7e: d05e beq.n 8044c3e lv_coord_t x = p.x + lv_obj_get_scroll_x(obj); - 8044c14: f9b7 3010 ldrsh.w r3, [r7, #16] - 8044c18: b29c uxth r4, r3 - 8044c1a: 68f8 ldr r0, [r7, #12] - 8044c1c: f7c6 fea8 bl 800b970 - 8044c20: 4603 mov r3, r0 - 8044c22: b29b uxth r3, r3 - 8044c24: 4423 add r3, r4 - 8044c26: b29b uxth r3, r3 - 8044c28: 83bb strh r3, [r7, #28] + 8044b80: f9b7 3010 ldrsh.w r3, [r7, #16] + 8044b84: b29c uxth r4, r3 + 8044b86: 68f8 ldr r0, [r7, #12] + 8044b88: f7c6 febc bl 800b904 + 8044b8c: 4603 mov r3, r0 + 8044b8e: b29b uxth r3, r3 + 8044b90: 4423 add r3, r4 + 8044b92: b29b uxth r3, r3 + 8044b94: 83bb strh r3, [r7, #28] if(lv_obj_get_style_base_dir(obj, LV_PART_MAIN) == LV_BASE_DIR_RTL) { - 8044c2a: 2100 movs r1, #0 - 8044c2c: 68f8 ldr r0, [r7, #12] - 8044c2e: f7fe fede bl 80439ee - 8044c32: 4603 mov r3, r0 - 8044c34: 2b01 cmp r3, #1 - 8044c36: d110 bne.n 8044c5a + 8044b96: 2100 movs r1, #0 + 8044b98: 68f8 ldr r0, [r7, #12] + 8044b9a: f7fe fede bl 804395a + 8044b9e: 4603 mov r3, r0 + 8044ba0: 2b01 cmp r3, #1 + 8044ba2: d110 bne.n 8044bc6 x = obj->coords.x2 - lv_obj_get_style_pad_right(obj, LV_PART_MAIN) - x; - 8044c38: 68fb ldr r3, [r7, #12] - 8044c3a: f9b3 3018 ldrsh.w r3, [r3, #24] - 8044c3e: b29c uxth r4, r3 - 8044c40: 2100 movs r1, #0 - 8044c42: 68f8 ldr r0, [r7, #12] - 8044c44: f7fe fe75 bl 8043932 - 8044c48: 4603 mov r3, r0 - 8044c4a: b29b uxth r3, r3 - 8044c4c: 1ae3 subs r3, r4, r3 - 8044c4e: b29a uxth r2, r3 - 8044c50: 8bbb ldrh r3, [r7, #28] - 8044c52: 1ad3 subs r3, r2, r3 - 8044c54: b29b uxth r3, r3 - 8044c56: 83bb strh r3, [r7, #28] - 8044c58: e011 b.n 8044c7e + 8044ba4: 68fb ldr r3, [r7, #12] + 8044ba6: f9b3 3018 ldrsh.w r3, [r3, #24] + 8044baa: b29c uxth r4, r3 + 8044bac: 2100 movs r1, #0 + 8044bae: 68f8 ldr r0, [r7, #12] + 8044bb0: f7fe fe75 bl 804389e + 8044bb4: 4603 mov r3, r0 + 8044bb6: b29b uxth r3, r3 + 8044bb8: 1ae3 subs r3, r4, r3 + 8044bba: b29a uxth r2, r3 + 8044bbc: 8bbb ldrh r3, [r7, #28] + 8044bbe: 1ad3 subs r3, r2, r3 + 8044bc0: b29b uxth r3, r3 + 8044bc2: 83bb strh r3, [r7, #28] + 8044bc4: e011 b.n 8044bea } else { x -= obj->coords.x1; - 8044c5a: 8bba ldrh r2, [r7, #28] - 8044c5c: 68fb ldr r3, [r7, #12] - 8044c5e: f9b3 3014 ldrsh.w r3, [r3, #20] - 8044c62: b29b uxth r3, r3 - 8044c64: 1ad3 subs r3, r2, r3 - 8044c66: b29b uxth r3, r3 - 8044c68: 83bb strh r3, [r7, #28] + 8044bc6: 8bba ldrh r2, [r7, #28] + 8044bc8: 68fb ldr r3, [r7, #12] + 8044bca: f9b3 3014 ldrsh.w r3, [r3, #20] + 8044bce: b29b uxth r3, r3 + 8044bd0: 1ad3 subs r3, r2, r3 + 8044bd2: b29b uxth r3, r3 + 8044bd4: 83bb strh r3, [r7, #28] x -= lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 8044c6a: 2100 movs r1, #0 - 8044c6c: 68f8 ldr r0, [r7, #12] - 8044c6e: f7fe fe4d bl 804390c - 8044c72: 4603 mov r3, r0 - 8044c74: 8bba ldrh r2, [r7, #28] - 8044c76: b29b uxth r3, r3 - 8044c78: 1ad3 subs r3, r2, r3 - 8044c7a: b29b uxth r3, r3 - 8044c7c: 83bb strh r3, [r7, #28] + 8044bd6: 2100 movs r1, #0 + 8044bd8: 68f8 ldr r0, [r7, #12] + 8044bda: f7fe fe4d bl 8043878 + 8044bde: 4603 mov r3, r0 + 8044be0: 8bba ldrh r2, [r7, #28] + 8044be2: b29b uxth r3, r3 + 8044be4: 1ad3 subs r3, r2, r3 + 8044be6: b29b uxth r3, r3 + 8044be8: 83bb strh r3, [r7, #28] } *col = 0; - 8044c7e: 687b ldr r3, [r7, #4] + 8044bea: 687b ldr r3, [r7, #4] + 8044bec: 2200 movs r2, #0 + 8044bee: 801a strh r2, [r3, #0] + tmp = 0; + 8044bf0: 2300 movs r3, #0 + 8044bf2: 83fb strh r3, [r7, #30] + for(*col = 0; *col < table->col_cnt; (*col)++) { + 8044bf4: 687b ldr r3, [r7, #4] + 8044bf6: 2200 movs r2, #0 + 8044bf8: 801a strh r2, [r3, #0] + 8044bfa: e018 b.n 8044c2e + tmp += table->col_w[*col]; + 8044bfc: 69bb ldr r3, [r7, #24] + 8044bfe: 6b1a ldr r2, [r3, #48] ; 0x30 + 8044c00: 687b ldr r3, [r7, #4] + 8044c02: 881b ldrh r3, [r3, #0] + 8044c04: 005b lsls r3, r3, #1 + 8044c06: 4413 add r3, r2 + 8044c08: f9b3 3000 ldrsh.w r3, [r3] + 8044c0c: b29a uxth r2, r3 + 8044c0e: 8bfb ldrh r3, [r7, #30] + 8044c10: 4413 add r3, r2 + 8044c12: b29b uxth r3, r3 + 8044c14: 83fb strh r3, [r7, #30] + if(x < tmp) break; + 8044c16: f9b7 201c ldrsh.w r2, [r7, #28] + 8044c1a: f9b7 301e ldrsh.w r3, [r7, #30] + 8044c1e: 429a cmp r2, r3 + 8044c20: db0c blt.n 8044c3c + for(*col = 0; *col < table->col_cnt; (*col)++) { + 8044c22: 687b ldr r3, [r7, #4] + 8044c24: 881b ldrh r3, [r3, #0] + 8044c26: 3301 adds r3, #1 + 8044c28: b29a uxth r2, r3 + 8044c2a: 687b ldr r3, [r7, #4] + 8044c2c: 801a strh r2, [r3, #0] + 8044c2e: 687b ldr r3, [r7, #4] + 8044c30: 881a ldrh r2, [r3, #0] + 8044c32: 69bb ldr r3, [r7, #24] + 8044c34: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8044c36: 429a cmp r2, r3 + 8044c38: d3e0 bcc.n 8044bfc + 8044c3a: e000 b.n 8044c3e + if(x < tmp) break; + 8044c3c: bf00 nop + } + } + + if(row) { + 8044c3e: 68bb ldr r3, [r7, #8] + 8044c40: 2b00 cmp r3, #0 + 8044c42: d046 beq.n 8044cd2 + lv_coord_t y = p.y + lv_obj_get_scroll_y(obj);; + 8044c44: f9b7 3012 ldrsh.w r3, [r7, #18] + 8044c48: b29c uxth r4, r3 + 8044c4a: 68f8 ldr r0, [r7, #12] + 8044c4c: f7c6 fe71 bl 800b932 + 8044c50: 4603 mov r3, r0 + 8044c52: b29b uxth r3, r3 + 8044c54: 4423 add r3, r4 + 8044c56: b29b uxth r3, r3 + 8044c58: 82bb strh r3, [r7, #20] + y -= obj->coords.y1; + 8044c5a: 8aba ldrh r2, [r7, #20] + 8044c5c: 68fb ldr r3, [r7, #12] + 8044c5e: f9b3 3016 ldrsh.w r3, [r3, #22] + 8044c62: b29b uxth r3, r3 + 8044c64: 1ad3 subs r3, r2, r3 + 8044c66: b29b uxth r3, r3 + 8044c68: 82bb strh r3, [r7, #20] + y -= lv_obj_get_style_pad_top(obj, LV_PART_MAIN); + 8044c6a: 2100 movs r1, #0 + 8044c6c: 68f8 ldr r0, [r7, #12] + 8044c6e: f7fe fddd bl 804382c + 8044c72: 4603 mov r3, r0 + 8044c74: 8aba ldrh r2, [r7, #20] + 8044c76: b29b uxth r3, r3 + 8044c78: 1ad3 subs r3, r2, r3 + 8044c7a: b29b uxth r3, r3 + 8044c7c: 82bb strh r3, [r7, #20] + + *row = 0; + 8044c7e: 68bb ldr r3, [r7, #8] 8044c80: 2200 movs r2, #0 8044c82: 801a strh r2, [r3, #0] tmp = 0; 8044c84: 2300 movs r3, #0 8044c86: 83fb strh r3, [r7, #30] - for(*col = 0; *col < table->col_cnt; (*col)++) { - 8044c88: 687b ldr r3, [r7, #4] + + for(*row = 0; *row < table->row_cnt; (*row)++) { + 8044c88: 68bb ldr r3, [r7, #8] 8044c8a: 2200 movs r2, #0 8044c8c: 801a strh r2, [r3, #0] - 8044c8e: e018 b.n 8044cc2 - tmp += table->col_w[*col]; + 8044c8e: e018 b.n 8044cc2 + tmp += table->row_h[*row]; 8044c90: 69bb ldr r3, [r7, #24] - 8044c92: 6b1a ldr r2, [r3, #48] ; 0x30 - 8044c94: 687b ldr r3, [r7, #4] + 8044c92: 6ada ldr r2, [r3, #44] ; 0x2c + 8044c94: 68bb ldr r3, [r7, #8] 8044c96: 881b ldrh r3, [r3, #0] 8044c98: 005b lsls r3, r3, #1 8044c9a: 4413 add r3, r2 @@ -154883,439 +154887,446 @@ static lv_res_t get_pressed_cell(lv_obj_t * obj, uint16_t * row, uint16_t * col) 8044ca4: 4413 add r3, r2 8044ca6: b29b uxth r3, r3 8044ca8: 83fb strh r3, [r7, #30] - if(x < tmp) break; - 8044caa: f9b7 201c ldrsh.w r2, [r7, #28] + if(y < tmp) break; + 8044caa: f9b7 2014 ldrsh.w r2, [r7, #20] 8044cae: f9b7 301e ldrsh.w r3, [r7, #30] 8044cb2: 429a cmp r2, r3 - 8044cb4: db0c blt.n 8044cd0 - for(*col = 0; *col < table->col_cnt; (*col)++) { - 8044cb6: 687b ldr r3, [r7, #4] + 8044cb4: db0c blt.n 8044cd0 + for(*row = 0; *row < table->row_cnt; (*row)++) { + 8044cb6: 68bb ldr r3, [r7, #8] 8044cb8: 881b ldrh r3, [r3, #0] 8044cba: 3301 adds r3, #1 8044cbc: b29a uxth r2, r3 - 8044cbe: 687b ldr r3, [r7, #4] + 8044cbe: 68bb ldr r3, [r7, #8] 8044cc0: 801a strh r2, [r3, #0] - 8044cc2: 687b ldr r3, [r7, #4] + 8044cc2: 68bb ldr r3, [r7, #8] 8044cc4: 881a ldrh r2, [r3, #0] 8044cc6: 69bb ldr r3, [r7, #24] - 8044cc8: 8c9b ldrh r3, [r3, #36] ; 0x24 + 8044cc8: 8cdb ldrh r3, [r3, #38] ; 0x26 8044cca: 429a cmp r2, r3 - 8044ccc: d3e0 bcc.n 8044c90 - 8044cce: e000 b.n 8044cd2 - if(x < tmp) break; + 8044ccc: d3e0 bcc.n 8044c90 + 8044cce: e000 b.n 8044cd2 + if(y < tmp) break; 8044cd0: bf00 nop } } - if(row) { - 8044cd2: 68bb ldr r3, [r7, #8] - 8044cd4: 2b00 cmp r3, #0 - 8044cd6: d046 beq.n 8044d66 - lv_coord_t y = p.y + lv_obj_get_scroll_y(obj);; - 8044cd8: f9b7 3012 ldrsh.w r3, [r7, #18] - 8044cdc: b29c uxth r4, r3 - 8044cde: 68f8 ldr r0, [r7, #12] - 8044ce0: f7c6 fe5d bl 800b99e - 8044ce4: 4603 mov r3, r0 - 8044ce6: b29b uxth r3, r3 - 8044ce8: 4423 add r3, r4 - 8044cea: b29b uxth r3, r3 - 8044cec: 82bb strh r3, [r7, #20] - y -= obj->coords.y1; - 8044cee: 8aba ldrh r2, [r7, #20] - 8044cf0: 68fb ldr r3, [r7, #12] - 8044cf2: f9b3 3016 ldrsh.w r3, [r3, #22] - 8044cf6: b29b uxth r3, r3 - 8044cf8: 1ad3 subs r3, r2, r3 - 8044cfa: b29b uxth r3, r3 - 8044cfc: 82bb strh r3, [r7, #20] - y -= lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 8044cfe: 2100 movs r1, #0 - 8044d00: 68f8 ldr r0, [r7, #12] - 8044d02: f7fe fddd bl 80438c0 - 8044d06: 4603 mov r3, r0 - 8044d08: 8aba ldrh r2, [r7, #20] - 8044d0a: b29b uxth r3, r3 - 8044d0c: 1ad3 subs r3, r2, r3 - 8044d0e: b29b uxth r3, r3 - 8044d10: 82bb strh r3, [r7, #20] - - *row = 0; - 8044d12: 68bb ldr r3, [r7, #8] - 8044d14: 2200 movs r2, #0 - 8044d16: 801a strh r2, [r3, #0] - tmp = 0; - 8044d18: 2300 movs r3, #0 - 8044d1a: 83fb strh r3, [r7, #30] - - for(*row = 0; *row < table->row_cnt; (*row)++) { - 8044d1c: 68bb ldr r3, [r7, #8] - 8044d1e: 2200 movs r2, #0 - 8044d20: 801a strh r2, [r3, #0] - 8044d22: e018 b.n 8044d56 - tmp += table->row_h[*row]; - 8044d24: 69bb ldr r3, [r7, #24] - 8044d26: 6ada ldr r2, [r3, #44] ; 0x2c - 8044d28: 68bb ldr r3, [r7, #8] - 8044d2a: 881b ldrh r3, [r3, #0] - 8044d2c: 005b lsls r3, r3, #1 - 8044d2e: 4413 add r3, r2 - 8044d30: f9b3 3000 ldrsh.w r3, [r3] - 8044d34: b29a uxth r2, r3 - 8044d36: 8bfb ldrh r3, [r7, #30] - 8044d38: 4413 add r3, r2 - 8044d3a: b29b uxth r3, r3 - 8044d3c: 83fb strh r3, [r7, #30] - if(y < tmp) break; - 8044d3e: f9b7 2014 ldrsh.w r2, [r7, #20] - 8044d42: f9b7 301e ldrsh.w r3, [r7, #30] - 8044d46: 429a cmp r2, r3 - 8044d48: db0c blt.n 8044d64 - for(*row = 0; *row < table->row_cnt; (*row)++) { - 8044d4a: 68bb ldr r3, [r7, #8] - 8044d4c: 881b ldrh r3, [r3, #0] - 8044d4e: 3301 adds r3, #1 - 8044d50: b29a uxth r2, r3 - 8044d52: 68bb ldr r3, [r7, #8] - 8044d54: 801a strh r2, [r3, #0] - 8044d56: 68bb ldr r3, [r7, #8] - 8044d58: 881a ldrh r2, [r3, #0] - 8044d5a: 69bb ldr r3, [r7, #24] - 8044d5c: 8cdb ldrh r3, [r3, #38] ; 0x26 - 8044d5e: 429a cmp r2, r3 - 8044d60: d3e0 bcc.n 8044d24 - 8044d62: e000 b.n 8044d66 - if(y < tmp) break; - 8044d64: bf00 nop - } - } - return LV_RES_OK; - 8044d66: 2301 movs r3, #1 + 8044cd2: 2301 movs r3, #1 } - 8044d68: 4618 mov r0, r3 - 8044d6a: 3724 adds r7, #36 ; 0x24 - 8044d6c: 46bd mov sp, r7 - 8044d6e: bd90 pop {r4, r7, pc} + 8044cd4: 4618 mov r0, r3 + 8044cd6: 3724 adds r7, #36 ; 0x24 + 8044cd8: 46bd mov sp, r7 + 8044cda: bd90 pop {r4, r7, pc} -08044d70 : +08044cdc : { - 8044d70: b480 push {r7} - 8044d72: b083 sub sp, #12 - 8044d74: af00 add r7, sp, #0 - 8044d76: 6078 str r0, [r7, #4] - 8044d78: 6039 str r1, [r7, #0] + 8044cdc: b480 push {r7} + 8044cde: b083 sub sp, #12 + 8044ce0: af00 add r7, sp, #0 + 8044ce2: 6078 str r0, [r7, #4] + 8044ce4: 6039 str r1, [r7, #0] dest->x1 = src->x1; - 8044d7a: 683b ldr r3, [r7, #0] - 8044d7c: f9b3 2000 ldrsh.w r2, [r3] - 8044d80: 687b ldr r3, [r7, #4] - 8044d82: 801a strh r2, [r3, #0] + 8044ce6: 683b ldr r3, [r7, #0] + 8044ce8: f9b3 2000 ldrsh.w r2, [r3] + 8044cec: 687b ldr r3, [r7, #4] + 8044cee: 801a strh r2, [r3, #0] dest->y1 = src->y1; - 8044d84: 683b ldr r3, [r7, #0] - 8044d86: f9b3 2002 ldrsh.w r2, [r3, #2] - 8044d8a: 687b ldr r3, [r7, #4] - 8044d8c: 805a strh r2, [r3, #2] + 8044cf0: 683b ldr r3, [r7, #0] + 8044cf2: f9b3 2002 ldrsh.w r2, [r3, #2] + 8044cf6: 687b ldr r3, [r7, #4] + 8044cf8: 805a strh r2, [r3, #2] dest->x2 = src->x2; - 8044d8e: 683b ldr r3, [r7, #0] - 8044d90: f9b3 2004 ldrsh.w r2, [r3, #4] - 8044d94: 687b ldr r3, [r7, #4] - 8044d96: 809a strh r2, [r3, #4] + 8044cfa: 683b ldr r3, [r7, #0] + 8044cfc: f9b3 2004 ldrsh.w r2, [r3, #4] + 8044d00: 687b ldr r3, [r7, #4] + 8044d02: 809a strh r2, [r3, #4] dest->y2 = src->y2; - 8044d98: 683b ldr r3, [r7, #0] - 8044d9a: f9b3 2006 ldrsh.w r2, [r3, #6] - 8044d9e: 687b ldr r3, [r7, #4] - 8044da0: 80da strh r2, [r3, #6] + 8044d04: 683b ldr r3, [r7, #0] + 8044d06: f9b3 2006 ldrsh.w r2, [r3, #6] + 8044d0a: 687b ldr r3, [r7, #4] + 8044d0c: 80da strh r2, [r3, #6] } - 8044da2: bf00 nop - 8044da4: 370c adds r7, #12 - 8044da6: 46bd mov sp, r7 - 8044da8: bc80 pop {r7} - 8044daa: 4770 bx lr + 8044d0e: bf00 nop + 8044d10: 370c adds r7, #12 + 8044d12: 46bd mov sp, r7 + 8044d14: bc80 pop {r7} + 8044d16: 4770 bx lr -08044dac : +08044d18 : * Percentage values are stored in special range * @param x the percentage (0..1000) * @return a coordinate that stores the percentage */ static inline lv_coord_t lv_pct(lv_coord_t x) { - 8044dac: b480 push {r7} - 8044dae: b083 sub sp, #12 - 8044db0: af00 add r7, sp, #0 - 8044db2: 4603 mov r3, r0 - 8044db4: 80fb strh r3, [r7, #6] + 8044d18: b480 push {r7} + 8044d1a: b083 sub sp, #12 + 8044d1c: af00 add r7, sp, #0 + 8044d1e: 4603 mov r3, r0 + 8044d20: 80fb strh r3, [r7, #6] return LV_PCT(x); - 8044db6: f9b7 3006 ldrsh.w r3, [r7, #6] - 8044dba: 2b00 cmp r3, #0 - 8044dbc: da08 bge.n 8044dd0 - 8044dbe: 88fb ldrh r3, [r7, #6] - 8044dc0: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 - 8044dc4: b29b uxth r3, r3 - 8044dc6: b21b sxth r3, r3 - 8044dc8: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 8044dcc: b21b sxth r3, r3 - 8044dce: e003 b.n 8044dd8 - 8044dd0: 88fb ldrh r3, [r7, #6] - 8044dd2: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 8044dd6: b21b sxth r3, r3 + 8044d22: f9b7 3006 ldrsh.w r3, [r7, #6] + 8044d26: 2b00 cmp r3, #0 + 8044d28: da08 bge.n 8044d3c + 8044d2a: 88fb ldrh r3, [r7, #6] + 8044d2c: f5c3 737a rsb r3, r3, #1000 ; 0x3e8 + 8044d30: b29b uxth r3, r3 + 8044d32: b21b sxth r3, r3 + 8044d34: f443 5300 orr.w r3, r3, #8192 ; 0x2000 + 8044d38: b21b sxth r3, r3 + 8044d3a: e003 b.n 8044d44 + 8044d3c: 88fb ldrh r3, [r7, #6] + 8044d3e: f443 5300 orr.w r3, r3, #8192 ; 0x2000 + 8044d42: b21b sxth r3, r3 } - 8044dd8: 4618 mov r0, r3 - 8044dda: 370c adds r7, #12 - 8044ddc: 46bd mov sp, r7 - 8044dde: bc80 pop {r7} - 8044de0: 4770 bx lr + 8044d44: 4618 mov r0, r3 + 8044d46: 370c adds r7, #12 + 8044d48: 46bd mov sp, r7 + 8044d4a: bc80 pop {r7} + 8044d4c: 4770 bx lr -08044de2 : +08044d4e : { - 8044de2: b480 push {r7} - 8044de4: b083 sub sp, #12 - 8044de6: af00 add r7, sp, #0 - 8044de8: 6078 str r0, [r7, #4] + 8044d4e: b480 push {r7} + 8044d50: b083 sub sp, #12 + 8044d52: af00 add r7, sp, #0 + 8044d54: 6078 str r0, [r7, #4] return font_p->line_height; - 8044dea: 687b ldr r3, [r7, #4] - 8044dec: f9b3 3008 ldrsh.w r3, [r3, #8] + 8044d56: 687b ldr r3, [r7, #4] + 8044d58: f9b3 3008 ldrsh.w r3, [r3, #8] } - 8044df0: 4618 mov r0, r3 - 8044df2: 370c adds r7, #12 - 8044df4: 46bd mov sp, r7 - 8044df6: bc80 pop {r7} - 8044df8: 4770 bx lr + 8044d5c: 4618 mov r0, r3 + 8044d5e: 370c adds r7, #12 + 8044d60: 46bd mov sp, r7 + 8044d62: bc80 pop {r7} + 8044d64: 4770 bx lr -08044dfa : +08044d66 : { - 8044dfa: b480 push {r7} - 8044dfc: b083 sub sp, #12 - 8044dfe: af00 add r7, sp, #0 - 8044e00: 6078 str r0, [r7, #4] - 8044e02: 6039 str r1, [r7, #0] + 8044d66: b480 push {r7} + 8044d68: b083 sub sp, #12 + 8044d6a: af00 add r7, sp, #0 + 8044d6c: 6078 str r0, [r7, #4] + 8044d6e: 6039 str r1, [r7, #0] a->var = var; - 8044e04: 687b ldr r3, [r7, #4] - 8044e06: 683a ldr r2, [r7, #0] - 8044e08: 601a str r2, [r3, #0] + 8044d70: 687b ldr r3, [r7, #4] + 8044d72: 683a ldr r2, [r7, #0] + 8044d74: 601a str r2, [r3, #0] } - 8044e0a: bf00 nop - 8044e0c: 370c adds r7, #12 - 8044e0e: 46bd mov sp, r7 - 8044e10: bc80 pop {r7} - 8044e12: 4770 bx lr + 8044d76: bf00 nop + 8044d78: 370c adds r7, #12 + 8044d7a: 46bd mov sp, r7 + 8044d7c: bc80 pop {r7} + 8044d7e: 4770 bx lr -08044e14 : +08044d80 : { - 8044e14: b480 push {r7} - 8044e16: b083 sub sp, #12 - 8044e18: af00 add r7, sp, #0 - 8044e1a: 6078 str r0, [r7, #4] - 8044e1c: 6039 str r1, [r7, #0] + 8044d80: b480 push {r7} + 8044d82: b083 sub sp, #12 + 8044d84: af00 add r7, sp, #0 + 8044d86: 6078 str r0, [r7, #4] + 8044d88: 6039 str r1, [r7, #0] a->exec_cb = exec_cb; - 8044e1e: 687b ldr r3, [r7, #4] - 8044e20: 683a ldr r2, [r7, #0] - 8044e22: 605a str r2, [r3, #4] + 8044d8a: 687b ldr r3, [r7, #4] + 8044d8c: 683a ldr r2, [r7, #0] + 8044d8e: 605a str r2, [r3, #4] } - 8044e24: bf00 nop - 8044e26: 370c adds r7, #12 - 8044e28: 46bd mov sp, r7 - 8044e2a: bc80 pop {r7} - 8044e2c: 4770 bx lr + 8044d90: bf00 nop + 8044d92: 370c adds r7, #12 + 8044d94: 46bd mov sp, r7 + 8044d96: bc80 pop {r7} + 8044d98: 4770 bx lr -08044e2e : +08044d9a : { - 8044e2e: b480 push {r7} - 8044e30: b083 sub sp, #12 - 8044e32: af00 add r7, sp, #0 - 8044e34: 6078 str r0, [r7, #4] - 8044e36: 6039 str r1, [r7, #0] + 8044d9a: b480 push {r7} + 8044d9c: b083 sub sp, #12 + 8044d9e: af00 add r7, sp, #0 + 8044da0: 6078 str r0, [r7, #4] + 8044da2: 6039 str r1, [r7, #0] a->time = duration; - 8044e38: 683a ldr r2, [r7, #0] - 8044e3a: 687b ldr r3, [r7, #4] - 8044e3c: 629a str r2, [r3, #40] ; 0x28 + 8044da4: 683a ldr r2, [r7, #0] + 8044da6: 687b ldr r3, [r7, #4] + 8044da8: 629a str r2, [r3, #40] ; 0x28 } - 8044e3e: bf00 nop - 8044e40: 370c adds r7, #12 - 8044e42: 46bd mov sp, r7 - 8044e44: bc80 pop {r7} - 8044e46: 4770 bx lr + 8044daa: bf00 nop + 8044dac: 370c adds r7, #12 + 8044dae: 46bd mov sp, r7 + 8044db0: bc80 pop {r7} + 8044db2: 4770 bx lr -08044e48 : +08044db4 : { - 8044e48: b480 push {r7} - 8044e4a: b085 sub sp, #20 - 8044e4c: af00 add r7, sp, #0 - 8044e4e: 60f8 str r0, [r7, #12] - 8044e50: 60b9 str r1, [r7, #8] - 8044e52: 607a str r2, [r7, #4] + 8044db4: b480 push {r7} + 8044db6: b085 sub sp, #20 + 8044db8: af00 add r7, sp, #0 + 8044dba: 60f8 str r0, [r7, #12] + 8044dbc: 60b9 str r1, [r7, #8] + 8044dbe: 607a str r2, [r7, #4] a->start_value = start; - 8044e54: 68fb ldr r3, [r7, #12] - 8044e56: 68ba ldr r2, [r7, #8] - 8044e58: 61da str r2, [r3, #28] + 8044dc0: 68fb ldr r3, [r7, #12] + 8044dc2: 68ba ldr r2, [r7, #8] + 8044dc4: 61da str r2, [r3, #28] a->current_value = start; - 8044e5a: 68fb ldr r3, [r7, #12] - 8044e5c: 68ba ldr r2, [r7, #8] - 8044e5e: 621a str r2, [r3, #32] + 8044dc6: 68fb ldr r3, [r7, #12] + 8044dc8: 68ba ldr r2, [r7, #8] + 8044dca: 621a str r2, [r3, #32] a->end_value = end; - 8044e60: 68fb ldr r3, [r7, #12] - 8044e62: 687a ldr r2, [r7, #4] - 8044e64: 625a str r2, [r3, #36] ; 0x24 + 8044dcc: 68fb ldr r3, [r7, #12] + 8044dce: 687a ldr r2, [r7, #4] + 8044dd0: 625a str r2, [r3, #36] ; 0x24 } - 8044e66: bf00 nop - 8044e68: 3714 adds r7, #20 - 8044e6a: 46bd mov sp, r7 - 8044e6c: bc80 pop {r7} - 8044e6e: 4770 bx lr + 8044dd2: bf00 nop + 8044dd4: 3714 adds r7, #20 + 8044dd6: 46bd mov sp, r7 + 8044dd8: bc80 pop {r7} + 8044dda: 4770 bx lr -08044e70 : +08044ddc : { - 8044e70: b480 push {r7} - 8044e72: b083 sub sp, #12 - 8044e74: af00 add r7, sp, #0 - 8044e76: 6078 str r0, [r7, #4] - 8044e78: 6039 str r1, [r7, #0] + 8044ddc: b480 push {r7} + 8044dde: b083 sub sp, #12 + 8044de0: af00 add r7, sp, #0 + 8044de2: 6078 str r0, [r7, #4] + 8044de4: 6039 str r1, [r7, #0] a->path_cb = path_cb; - 8044e7a: 687b ldr r3, [r7, #4] - 8044e7c: 683a ldr r2, [r7, #0] - 8044e7e: 619a str r2, [r3, #24] + 8044de6: 687b ldr r3, [r7, #4] + 8044de8: 683a ldr r2, [r7, #0] + 8044dea: 619a str r2, [r3, #24] } - 8044e80: bf00 nop - 8044e82: 370c adds r7, #12 - 8044e84: 46bd mov sp, r7 - 8044e86: bc80 pop {r7} - 8044e88: 4770 bx lr + 8044dec: bf00 nop + 8044dee: 370c adds r7, #12 + 8044df0: 46bd mov sp, r7 + 8044df2: bc80 pop {r7} + 8044df4: 4770 bx lr -08044e8a : +08044df6 : { - 8044e8a: b480 push {r7} - 8044e8c: b083 sub sp, #12 - 8044e8e: af00 add r7, sp, #0 - 8044e90: 6078 str r0, [r7, #4] - 8044e92: 6039 str r1, [r7, #0] + 8044df6: b480 push {r7} + 8044df8: b083 sub sp, #12 + 8044dfa: af00 add r7, sp, #0 + 8044dfc: 6078 str r0, [r7, #4] + 8044dfe: 6039 str r1, [r7, #0] a->ready_cb = ready_cb; - 8044e94: 687b ldr r3, [r7, #4] - 8044e96: 683a ldr r2, [r7, #0] - 8044e98: 60da str r2, [r3, #12] + 8044e00: 687b ldr r3, [r7, #4] + 8044e02: 683a ldr r2, [r7, #0] + 8044e04: 60da str r2, [r3, #12] } - 8044e9a: bf00 nop - 8044e9c: 370c adds r7, #12 - 8044e9e: 46bd mov sp, r7 - 8044ea0: bc80 pop {r7} - 8044ea2: 4770 bx lr + 8044e06: bf00 nop + 8044e08: 370c adds r7, #12 + 8044e0a: 46bd mov sp, r7 + 8044e0c: bc80 pop {r7} + 8044e0e: 4770 bx lr -08044ea4 : +08044e10 : { - 8044ea4: b480 push {r7} - 8044ea6: b083 sub sp, #12 - 8044ea8: af00 add r7, sp, #0 - 8044eaa: 6078 str r0, [r7, #4] - 8044eac: 6039 str r1, [r7, #0] + 8044e10: b480 push {r7} + 8044e12: b083 sub sp, #12 + 8044e14: af00 add r7, sp, #0 + 8044e16: 6078 str r0, [r7, #4] + 8044e18: 6039 str r1, [r7, #0] a->playback_time = time; - 8044eae: 687b ldr r3, [r7, #4] - 8044eb0: 683a ldr r2, [r7, #0] - 8044eb2: 635a str r2, [r3, #52] ; 0x34 + 8044e1a: 687b ldr r3, [r7, #4] + 8044e1c: 683a ldr r2, [r7, #0] + 8044e1e: 635a str r2, [r3, #52] ; 0x34 } - 8044eb4: bf00 nop - 8044eb6: 370c adds r7, #12 - 8044eb8: 46bd mov sp, r7 - 8044eba: bc80 pop {r7} - 8044ebc: 4770 bx lr + 8044e20: bf00 nop + 8044e22: 370c adds r7, #12 + 8044e24: 46bd mov sp, r7 + 8044e26: bc80 pop {r7} + 8044e28: 4770 bx lr -08044ebe : +08044e2a : { - 8044ebe: b480 push {r7} - 8044ec0: b083 sub sp, #12 - 8044ec2: af00 add r7, sp, #0 - 8044ec4: 6078 str r0, [r7, #4] - 8044ec6: 460b mov r3, r1 - 8044ec8: 807b strh r3, [r7, #2] + 8044e2a: b480 push {r7} + 8044e2c: b083 sub sp, #12 + 8044e2e: af00 add r7, sp, #0 + 8044e30: 6078 str r0, [r7, #4] + 8044e32: 460b mov r3, r1 + 8044e34: 807b strh r3, [r7, #2] a->repeat_cnt = cnt; - 8044eca: 687b ldr r3, [r7, #4] - 8044ecc: 887a ldrh r2, [r7, #2] - 8044ece: 879a strh r2, [r3, #60] ; 0x3c + 8044e36: 687b ldr r3, [r7, #4] + 8044e38: 887a ldrh r2, [r7, #2] + 8044e3a: 879a strh r2, [r3, #60] ; 0x3c } - 8044ed0: bf00 nop - 8044ed2: 370c adds r7, #12 - 8044ed4: 46bd mov sp, r7 - 8044ed6: bc80 pop {r7} - 8044ed8: 4770 bx lr + 8044e3c: bf00 nop + 8044e3e: 370c adds r7, #12 + 8044e40: 46bd mov sp, r7 + 8044e42: bc80 pop {r7} + 8044e44: 4770 bx lr -08044eda : +08044e46 : { - 8044eda: b580 push {r7, lr} - 8044edc: b084 sub sp, #16 - 8044ede: af00 add r7, sp, #0 - 8044ee0: 6078 str r0, [r7, #4] - 8044ee2: 6039 str r1, [r7, #0] + 8044e46: b580 push {r7, lr} + 8044e48: b084 sub sp, #16 + 8044e4a: af00 add r7, sp, #0 + 8044e4c: 6078 str r0, [r7, #4] + 8044e4e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP); - 8044ee4: f641 0210 movw r2, #6160 ; 0x1810 - 8044ee8: 6839 ldr r1, [r7, #0] - 8044eea: 6878 ldr r0, [r7, #4] - 8044eec: f7c8 ff60 bl 800ddb0 - 8044ef0: 4603 mov r3, r0 - 8044ef2: 60fb str r3, [r7, #12] + 8044e50: f641 0210 movw r2, #6160 ; 0x1810 + 8044e54: 6839 ldr r1, [r7, #0] + 8044e56: 6878 ldr r0, [r7, #4] + 8044e58: f7c8 ff74 bl 800dd44 + 8044e5c: 4603 mov r3, r0 + 8044e5e: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8044ef4: 68fb ldr r3, [r7, #12] - 8044ef6: b21b sxth r3, r3 + 8044e60: 68fb ldr r3, [r7, #12] + 8044e62: b21b sxth r3, r3 } - 8044ef8: 4618 mov r0, r3 - 8044efa: 3710 adds r7, #16 - 8044efc: 46bd mov sp, r7 - 8044efe: bd80 pop {r7, pc} + 8044e64: 4618 mov r0, r3 + 8044e66: 3710 adds r7, #16 + 8044e68: 46bd mov sp, r7 + 8044e6a: bd80 pop {r7, pc} -08044f00 : +08044e6c : { - 8044f00: b580 push {r7, lr} - 8044f02: b084 sub sp, #16 - 8044f04: af00 add r7, sp, #0 - 8044f06: 6078 str r0, [r7, #4] - 8044f08: 6039 str r1, [r7, #0] + 8044e6c: b580 push {r7, lr} + 8044e6e: b084 sub sp, #16 + 8044e70: af00 add r7, sp, #0 + 8044e72: 6078 str r0, [r7, #4] + 8044e74: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_BOTTOM); - 8044f0a: f641 0211 movw r2, #6161 ; 0x1811 - 8044f0e: 6839 ldr r1, [r7, #0] - 8044f10: 6878 ldr r0, [r7, #4] - 8044f12: f7c8 ff4d bl 800ddb0 - 8044f16: 4603 mov r3, r0 - 8044f18: 60fb str r3, [r7, #12] + 8044e76: f641 0211 movw r2, #6161 ; 0x1811 + 8044e7a: 6839 ldr r1, [r7, #0] + 8044e7c: 6878 ldr r0, [r7, #4] + 8044e7e: f7c8 ff61 bl 800dd44 + 8044e82: 4603 mov r3, r0 + 8044e84: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8044f1a: 68fb ldr r3, [r7, #12] - 8044f1c: b21b sxth r3, r3 + 8044e86: 68fb ldr r3, [r7, #12] + 8044e88: b21b sxth r3, r3 } - 8044f1e: 4618 mov r0, r3 - 8044f20: 3710 adds r7, #16 - 8044f22: 46bd mov sp, r7 - 8044f24: bd80 pop {r7, pc} + 8044e8a: 4618 mov r0, r3 + 8044e8c: 3710 adds r7, #16 + 8044e8e: 46bd mov sp, r7 + 8044e90: bd80 pop {r7, pc} -08044f26 : +08044e92 : { - 8044f26: b580 push {r7, lr} - 8044f28: b084 sub sp, #16 - 8044f2a: af00 add r7, sp, #0 - 8044f2c: 6078 str r0, [r7, #4] - 8044f2e: 6039 str r1, [r7, #0] + 8044e92: b580 push {r7, lr} + 8044e94: b084 sub sp, #16 + 8044e96: af00 add r7, sp, #0 + 8044e98: 6078 str r0, [r7, #4] + 8044e9a: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_LEFT); - 8044f30: f641 0212 movw r2, #6162 ; 0x1812 - 8044f34: 6839 ldr r1, [r7, #0] - 8044f36: 6878 ldr r0, [r7, #4] - 8044f38: f7c8 ff3a bl 800ddb0 - 8044f3c: 4603 mov r3, r0 - 8044f3e: 60fb str r3, [r7, #12] + 8044e9c: f641 0212 movw r2, #6162 ; 0x1812 + 8044ea0: 6839 ldr r1, [r7, #0] + 8044ea2: 6878 ldr r0, [r7, #4] + 8044ea4: f7c8 ff4e bl 800dd44 + 8044ea8: 4603 mov r3, r0 + 8044eaa: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; - 8044f40: 68fb ldr r3, [r7, #12] - 8044f42: b21b sxth r3, r3 + 8044eac: 68fb ldr r3, [r7, #12] + 8044eae: b21b sxth r3, r3 +} + 8044eb0: 4618 mov r0, r3 + 8044eb2: 3710 adds r7, #16 + 8044eb4: 46bd mov sp, r7 + 8044eb6: bd80 pop {r7, pc} + +08044eb8 : +{ + 8044eb8: b580 push {r7, lr} + 8044eba: b084 sub sp, #16 + 8044ebc: af00 add r7, sp, #0 + 8044ebe: 6078 str r0, [r7, #4] + 8044ec0: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); + 8044ec2: f641 0213 movw r2, #6163 ; 0x1813 + 8044ec6: 6839 ldr r1, [r7, #0] + 8044ec8: 6878 ldr r0, [r7, #4] + 8044eca: f7c8 ff3b bl 800dd44 + 8044ece: 4603 mov r3, r0 + 8044ed0: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 8044ed2: 68fb ldr r3, [r7, #12] + 8044ed4: b21b sxth r3, r3 +} + 8044ed6: 4618 mov r0, r3 + 8044ed8: 3710 adds r7, #16 + 8044eda: 46bd mov sp, r7 + 8044edc: bd80 pop {r7, pc} + +08044ede : +{ + 8044ede: b580 push {r7, lr} + 8044ee0: b084 sub sp, #16 + 8044ee2: af00 add r7, sp, #0 + 8044ee4: 6078 str r0, [r7, #4] + 8044ee6: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); + 8044ee8: f241 0232 movw r2, #4146 ; 0x1032 + 8044eec: 6839 ldr r1, [r7, #0] + 8044eee: 6878 ldr r0, [r7, #4] + 8044ef0: f7c8 ff28 bl 800dd44 + 8044ef4: 4603 mov r3, r0 + 8044ef6: 60fb str r3, [r7, #12] + return (lv_coord_t)v.num; + 8044ef8: 68fb ldr r3, [r7, #12] + 8044efa: b21b sxth r3, r3 +} + 8044efc: 4618 mov r0, r3 + 8044efe: 3710 adds r7, #16 + 8044f00: 46bd mov sp, r7 + 8044f02: bd80 pop {r7, pc} + +08044f04 : +{ + 8044f04: b580 push {r7, lr} + 8044f06: b084 sub sp, #16 + 8044f08: af00 add r7, sp, #0 + 8044f0a: 6078 str r0, [r7, #4] + 8044f0c: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_COLOR); + 8044f0e: f240 4257 movw r2, #1111 ; 0x457 + 8044f12: 6839 ldr r1, [r7, #0] + 8044f14: 6878 ldr r0, [r7, #4] + 8044f16: f7c8 ff15 bl 800dd44 + 8044f1a: 4603 mov r3, r0 + 8044f1c: 60fb str r3, [r7, #12] + return v.color; + 8044f1e: 89bb ldrh r3, [r7, #12] +} + 8044f20: 4618 mov r0, r3 + 8044f22: 3710 adds r7, #16 + 8044f24: 46bd mov sp, r7 + 8044f26: bd80 pop {r7, pc} + +08044f28 : +{ + 8044f28: b580 push {r7, lr} + 8044f2a: b084 sub sp, #16 + 8044f2c: af00 add r7, sp, #0 + 8044f2e: 6078 str r0, [r7, #4] + 8044f30: 6039 str r1, [r7, #0] + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_FONT); + 8044f32: f241 4259 movw r2, #5209 ; 0x1459 + 8044f36: 6839 ldr r1, [r7, #0] + 8044f38: 6878 ldr r0, [r7, #4] + 8044f3a: f7c8 ff03 bl 800dd44 + 8044f3e: 4603 mov r3, r0 + 8044f40: 60fb str r3, [r7, #12] + return (const lv_font_t *)v.ptr; + 8044f42: 68fb ldr r3, [r7, #12] } 8044f44: 4618 mov r0, r3 8044f46: 3710 adds r7, #16 8044f48: 46bd mov sp, r7 8044f4a: bd80 pop {r7, pc} -08044f4c : +08044f4c : { 8044f4c: b580 push {r7, lr} 8044f4e: b084 sub sp, #16 8044f50: af00 add r7, sp, #0 8044f52: 6078 str r0, [r7, #4] 8044f54: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_RIGHT); - 8044f56: f641 0213 movw r2, #6163 ; 0x1813 + lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LINE_SPACE); + 8044f56: f241 425b movw r2, #5211 ; 0x145b 8044f5a: 6839 ldr r1, [r7, #0] 8044f5c: 6878 ldr r0, [r7, #4] - 8044f5e: f7c8 ff27 bl 800ddb0 + 8044f5e: f7c8 fef1 bl 800dd44 8044f62: 4603 mov r3, r0 8044f64: 60fb str r3, [r7, #12] return (lv_coord_t)v.num; @@ -155327,4146 +155338,4056 @@ static inline lv_coord_t lv_pct(lv_coord_t x) 8044f6e: 46bd mov sp, r7 8044f70: bd80 pop {r7, pc} -08044f72 : +08044f72 : { 8044f72: b580 push {r7, lr} 8044f74: b084 sub sp, #16 8044f76: af00 add r7, sp, #0 8044f78: 6078 str r0, [r7, #4] 8044f7a: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_WIDTH); - 8044f7c: f241 0232 movw r2, #4146 ; 0x1032 - 8044f80: 6839 ldr r1, [r7, #0] - 8044f82: 6878 ldr r0, [r7, #4] - 8044f84: f7c8 ff14 bl 800ddb0 - 8044f88: 4603 mov r3, r0 - 8044f8a: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 8044f8c: 68fb ldr r3, [r7, #12] - 8044f8e: b21b sxth r3, r3 -} - 8044f90: 4618 mov r0, r3 - 8044f92: 3710 adds r7, #16 - 8044f94: 46bd mov sp, r7 - 8044f96: bd80 pop {r7, pc} - -08044f98 : -{ - 8044f98: b580 push {r7, lr} - 8044f9a: b084 sub sp, #16 - 8044f9c: af00 add r7, sp, #0 - 8044f9e: 6078 str r0, [r7, #4] - 8044fa0: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_COLOR); - 8044fa2: f240 4257 movw r2, #1111 ; 0x457 - 8044fa6: 6839 ldr r1, [r7, #0] - 8044fa8: 6878 ldr r0, [r7, #4] - 8044faa: f7c8 ff01 bl 800ddb0 - 8044fae: 4603 mov r3, r0 - 8044fb0: 60fb str r3, [r7, #12] - return v.color; - 8044fb2: 89bb ldrh r3, [r7, #12] -} - 8044fb4: 4618 mov r0, r3 - 8044fb6: 3710 adds r7, #16 - 8044fb8: 46bd mov sp, r7 - 8044fba: bd80 pop {r7, pc} - -08044fbc : -{ - 8044fbc: b580 push {r7, lr} - 8044fbe: b084 sub sp, #16 - 8044fc0: af00 add r7, sp, #0 - 8044fc2: 6078 str r0, [r7, #4] - 8044fc4: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_FONT); - 8044fc6: f241 4259 movw r2, #5209 ; 0x1459 - 8044fca: 6839 ldr r1, [r7, #0] - 8044fcc: 6878 ldr r0, [r7, #4] - 8044fce: f7c8 feef bl 800ddb0 - 8044fd2: 4603 mov r3, r0 - 8044fd4: 60fb str r3, [r7, #12] - return (const lv_font_t *)v.ptr; - 8044fd6: 68fb ldr r3, [r7, #12] -} - 8044fd8: 4618 mov r0, r3 - 8044fda: 3710 adds r7, #16 - 8044fdc: 46bd mov sp, r7 - 8044fde: bd80 pop {r7, pc} - -08044fe0 : -{ - 8044fe0: b580 push {r7, lr} - 8044fe2: b084 sub sp, #16 - 8044fe4: af00 add r7, sp, #0 - 8044fe6: 6078 str r0, [r7, #4] - 8044fe8: 6039 str r1, [r7, #0] - lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_LINE_SPACE); - 8044fea: f241 425b movw r2, #5211 ; 0x145b - 8044fee: 6839 ldr r1, [r7, #0] - 8044ff0: 6878 ldr r0, [r7, #4] - 8044ff2: f7c8 fedd bl 800ddb0 - 8044ff6: 4603 mov r3, r0 - 8044ff8: 60fb str r3, [r7, #12] - return (lv_coord_t)v.num; - 8044ffa: 68fb ldr r3, [r7, #12] - 8044ffc: b21b sxth r3, r3 -} - 8044ffe: 4618 mov r0, r3 - 8045000: 3710 adds r7, #16 - 8045002: 46bd mov sp, r7 - 8045004: bd80 pop {r7, pc} - -08045006 : -{ - 8045006: b580 push {r7, lr} - 8045008: b084 sub sp, #16 - 804500a: af00 add r7, sp, #0 - 804500c: 6078 str r0, [r7, #4] - 804500e: 6039 str r1, [r7, #0] lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ANIM_TIME); - 8045010: 2265 movs r2, #101 ; 0x65 - 8045012: 6839 ldr r1, [r7, #0] - 8045014: 6878 ldr r0, [r7, #4] - 8045016: f7c8 fecb bl 800ddb0 - 804501a: 4603 mov r3, r0 - 804501c: 60fb str r3, [r7, #12] + 8044f7c: 2265 movs r2, #101 ; 0x65 + 8044f7e: 6839 ldr r1, [r7, #0] + 8044f80: 6878 ldr r0, [r7, #4] + 8044f82: f7c8 fedf bl 800dd44 + 8044f86: 4603 mov r3, r0 + 8044f88: 60fb str r3, [r7, #12] return (uint32_t)v.num; - 804501e: 68fb ldr r3, [r7, #12] + 8044f8a: 68fb ldr r3, [r7, #12] } - 8045020: 4618 mov r0, r3 - 8045022: 3710 adds r7, #16 - 8045024: 46bd mov sp, r7 - 8045026: bd80 pop {r7, pc} + 8044f8c: 4618 mov r0, r3 + 8044f8e: 3710 adds r7, #16 + 8044f90: 46bd mov sp, r7 + 8044f92: bd80 pop {r7, pc} -08045028 : +08044f94 : /*====================== * Add/remove functions *=====================*/ void lv_textarea_add_char(lv_obj_t * obj, uint32_t c) { - 8045028: b5b0 push {r4, r5, r7, lr} - 804502a: b09a sub sp, #104 ; 0x68 - 804502c: af00 add r7, sp, #0 - 804502e: 6078 str r0, [r7, #4] - 8045030: 6039 str r1, [r7, #0] + 8044f94: b5b0 push {r4, r5, r7, lr} + 8044f96: b09a sub sp, #104 ; 0x68 + 8044f98: af00 add r7, sp, #0 + 8044f9a: 6078 str r0, [r7, #4] + 8044f9c: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_textarea_t * ta = (lv_textarea_t *)obj; - 8045032: 687b ldr r3, [r7, #4] - 8045034: 667b str r3, [r7, #100] ; 0x64 + 8044f9e: 687b ldr r3, [r7, #4] + 8044fa0: 667b str r3, [r7, #100] ; 0x64 const char * letter_buf; uint32_t u32_buf[2]; u32_buf[0] = c; - 8045036: 683b ldr r3, [r7, #0] - 8045038: 64fb str r3, [r7, #76] ; 0x4c + 8044fa2: 683b ldr r3, [r7, #0] + 8044fa4: 64fb str r3, [r7, #76] ; 0x4c u32_buf[1] = 0; - 804503a: 2300 movs r3, #0 - 804503c: 653b str r3, [r7, #80] ; 0x50 + 8044fa6: 2300 movs r3, #0 + 8044fa8: 653b str r3, [r7, #80] ; 0x50 letter_buf = (char *)&u32_buf; - 804503e: f107 034c add.w r3, r7, #76 ; 0x4c - 8045042: 663b str r3, [r7, #96] ; 0x60 + 8044faa: f107 034c add.w r3, r7, #76 ; 0x4c + 8044fae: 663b str r3, [r7, #96] ; 0x60 #if LV_BIG_ENDIAN_SYSTEM if(c != 0) while(*letter_buf == 0) ++letter_buf; #endif lv_res_t res = insert_handler(obj, letter_buf); - 8045044: 6e39 ldr r1, [r7, #96] ; 0x60 - 8045046: 6878 ldr r0, [r7, #4] - 8045048: f001 fbec bl 8046824 - 804504c: 4603 mov r3, r0 - 804504e: f887 305f strb.w r3, [r7, #95] ; 0x5f + 8044fb0: 6e39 ldr r1, [r7, #96] ; 0x60 + 8044fb2: 6878 ldr r0, [r7, #4] + 8044fb4: f001 fbec bl 8046790 + 8044fb8: 4603 mov r3, r0 + 8044fba: f887 305f strb.w r3, [r7, #95] ; 0x5f if(res != LV_RES_OK) return; - 8045052: f897 305f ldrb.w r3, [r7, #95] ; 0x5f - 8045056: 2b01 cmp r3, #1 - 8045058: f040 80c0 bne.w 80451dc + 8044fbe: f897 305f ldrb.w r3, [r7, #95] ; 0x5f + 8044fc2: 2b01 cmp r3, #1 + 8044fc4: f040 80c0 bne.w 8045148 if(ta->one_line && (c == '\n' || c == '\r')) { - 804505c: 6e7b ldr r3, [r7, #100] ; 0x64 - 804505e: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 8045062: f003 0308 and.w r3, r3, #8 - 8045066: b2db uxtb r3, r3 - 8045068: 2b00 cmp r3, #0 - 804506a: d007 beq.n 804507c - 804506c: 683b ldr r3, [r7, #0] - 804506e: 2b0a cmp r3, #10 - 8045070: f000 80b6 beq.w 80451e0 - 8045074: 683b ldr r3, [r7, #0] - 8045076: 2b0d cmp r3, #13 - 8045078: f000 80b2 beq.w 80451e0 + 8044fc8: 6e7b ldr r3, [r7, #100] ; 0x64 + 8044fca: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 8044fce: f003 0308 and.w r3, r3, #8 + 8044fd2: b2db uxtb r3, r3 + 8044fd4: 2b00 cmp r3, #0 + 8044fd6: d007 beq.n 8044fe8 + 8044fd8: 683b ldr r3, [r7, #0] + 8044fda: 2b0a cmp r3, #10 + 8044fdc: f000 80b6 beq.w 804514c + 8044fe0: 683b ldr r3, [r7, #0] + 8044fe2: 2b0d cmp r3, #13 + 8044fe4: f000 80b2 beq.w 804514c LV_LOG_INFO("Text area: line break ignored in one-line mode"); return; } uint32_t c_uni = _lv_txt_encoded_next((const char *)&c, NULL); - 804507c: 4b5c ldr r3, [pc, #368] ; (80451f0 ) - 804507e: 681b ldr r3, [r3, #0] - 8045080: 463a mov r2, r7 - 8045082: 2100 movs r1, #0 - 8045084: 4610 mov r0, r2 - 8045086: 4798 blx r3 - 8045088: 65b8 str r0, [r7, #88] ; 0x58 + 8044fe8: 4b5c ldr r3, [pc, #368] ; (804515c ) + 8044fea: 681b ldr r3, [r3, #0] + 8044fec: 463a mov r2, r7 + 8044fee: 2100 movs r1, #0 + 8044ff0: 4610 mov r0, r2 + 8044ff2: 4798 blx r3 + 8044ff4: 65b8 str r0, [r7, #88] ; 0x58 if(char_is_accepted(obj, c_uni) == false) { - 804508a: 6db9 ldr r1, [r7, #88] ; 0x58 - 804508c: 6878 ldr r0, [r7, #4] - 804508e: f000 ffef bl 8046070 - 8045092: 4603 mov r3, r0 - 8045094: f083 0301 eor.w r3, r3, #1 - 8045098: b2db uxtb r3, r3 - 804509a: 2b00 cmp r3, #0 - 804509c: f040 80a2 bne.w 80451e4 + 8044ff6: 6db9 ldr r1, [r7, #88] ; 0x58 + 8044ff8: 6878 ldr r0, [r7, #4] + 8044ffa: f000 ffef bl 8045fdc + 8044ffe: 4603 mov r3, r0 + 8045000: f083 0301 eor.w r3, r3, #1 + 8045004: b2db uxtb r3, r3 + 8045006: 2b00 cmp r3, #0 + 8045008: f040 80a2 bne.w 8045150 LV_LOG_INFO("Character is not accepted by the text area (too long text or not in the accepted list)"); return; } if(ta->pwd_mode != 0) pwd_char_hider(obj); /*Make sure all the current text contains only '*'*/ - 80450a0: 6e7b ldr r3, [r7, #100] ; 0x64 - 80450a2: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 80450a6: f003 0304 and.w r3, r3, #4 - 80450aa: b2db uxtb r3, r3 - 80450ac: 2b00 cmp r3, #0 - 80450ae: d002 beq.n 80450b6 - 80450b0: 6878 ldr r0, [r7, #4] - 80450b2: f000 ff65 bl 8045f80 + 804500c: 6e7b ldr r3, [r7, #100] ; 0x64 + 804500e: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 8045012: f003 0304 and.w r3, r3, #4 + 8045016: b2db uxtb r3, r3 + 8045018: 2b00 cmp r3, #0 + 804501a: d002 beq.n 8045022 + 804501c: 6878 ldr r0, [r7, #4] + 804501e: f000 ff65 bl 8045eec /*If the textarea is empty, invalidate it to hide the placeholder*/ if(ta->placeholder_txt) { - 80450b6: 6e7b ldr r3, [r7, #100] ; 0x64 - 80450b8: 6a9b ldr r3, [r3, #40] ; 0x28 - 80450ba: 2b00 cmp r3, #0 - 80450bc: d00c beq.n 80450d8 + 8045022: 6e7b ldr r3, [r7, #100] ; 0x64 + 8045024: 6a9b ldr r3, [r3, #40] ; 0x28 + 8045026: 2b00 cmp r3, #0 + 8045028: d00c beq.n 8045044 const char * txt = lv_label_get_text(ta->label); - 80450be: 6e7b ldr r3, [r7, #100] ; 0x64 - 80450c0: 6a5b ldr r3, [r3, #36] ; 0x24 - 80450c2: 4618 mov r0, r3 - 80450c4: f7f9 ff7e bl 803efc4 - 80450c8: 6578 str r0, [r7, #84] ; 0x54 + 804502a: 6e7b ldr r3, [r7, #100] ; 0x64 + 804502c: 6a5b ldr r3, [r3, #36] ; 0x24 + 804502e: 4618 mov r0, r3 + 8045030: f7f9 ff7e bl 803ef30 + 8045034: 6578 str r0, [r7, #84] ; 0x54 if(txt[0] == '\0') lv_obj_invalidate(obj); - 80450ca: 6d7b ldr r3, [r7, #84] ; 0x54 - 80450cc: 781b ldrb r3, [r3, #0] - 80450ce: 2b00 cmp r3, #0 - 80450d0: d102 bne.n 80450d8 - 80450d2: 6878 ldr r0, [r7, #4] - 80450d4: f7c5 fced bl 800aab2 + 8045036: 6d7b ldr r3, [r7, #84] ; 0x54 + 8045038: 781b ldrb r3, [r3, #0] + 804503a: 2b00 cmp r3, #0 + 804503c: d102 bne.n 8045044 + 804503e: 6878 ldr r0, [r7, #4] + 8045040: f7c5 fd01 bl 800aa46 } lv_label_ins_text(ta->label, ta->cursor.pos, letter_buf); /*Insert the character*/ - 80450d8: 6e7b ldr r3, [r7, #100] ; 0x64 - 80450da: 6a58 ldr r0, [r3, #36] ; 0x24 - 80450dc: 6e7b ldr r3, [r7, #100] ; 0x64 - 80450de: 6c1b ldr r3, [r3, #64] ; 0x40 - 80450e0: 6e3a ldr r2, [r7, #96] ; 0x60 - 80450e2: 4619 mov r1, r3 - 80450e4: f7fa fc56 bl 803f994 + 8045044: 6e7b ldr r3, [r7, #100] ; 0x64 + 8045046: 6a58 ldr r0, [r3, #36] ; 0x24 + 8045048: 6e7b ldr r3, [r7, #100] ; 0x64 + 804504a: 6c1b ldr r3, [r3, #64] ; 0x40 + 804504c: 6e3a ldr r2, [r7, #96] ; 0x60 + 804504e: 4619 mov r1, r3 + 8045050: f7fa fc56 bl 803f900 lv_textarea_clear_selection(obj); /*Clear selection*/ - 80450e8: 6878 ldr r0, [r7, #4] - 80450ea: f000 fc80 bl 80459ee + 8045054: 6878 ldr r0, [r7, #4] + 8045056: f000 fc80 bl 804595a if(ta->pwd_mode != 0) { - 80450ee: 6e7b ldr r3, [r7, #100] ; 0x64 - 80450f0: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 80450f4: f003 0304 and.w r3, r3, #4 - 80450f8: b2db uxtb r3, r3 - 80450fa: 2b00 cmp r3, #0 - 80450fc: d05f beq.n 80451be + 804505a: 6e7b ldr r3, [r7, #100] ; 0x64 + 804505c: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 8045060: f003 0304 and.w r3, r3, #4 + 8045064: b2db uxtb r3, r3 + 8045066: 2b00 cmp r3, #0 + 8045068: d05f beq.n 804512a ta->pwd_tmp = lv_mem_realloc(ta->pwd_tmp, strlen(ta->pwd_tmp) + strlen(letter_buf) + 1); /*+2: the new char + \0*/ - 80450fe: 6e7b ldr r3, [r7, #100] ; 0x64 - 8045100: 6adc ldr r4, [r3, #44] ; 0x2c - 8045102: 6e7b ldr r3, [r7, #100] ; 0x64 - 8045104: 6adb ldr r3, [r3, #44] ; 0x2c - 8045106: 4618 mov r0, r3 - 8045108: f7bb f896 bl 8000238 - 804510c: 4605 mov r5, r0 - 804510e: 6e38 ldr r0, [r7, #96] ; 0x60 - 8045110: f7bb f892 bl 8000238 - 8045114: 4603 mov r3, r0 - 8045116: 442b add r3, r5 - 8045118: 3301 adds r3, #1 - 804511a: 4619 mov r1, r3 - 804511c: 4620 mov r0, r4 - 804511e: f7ed fbf9 bl 8032914 - 8045122: 4602 mov r2, r0 - 8045124: 6e7b ldr r3, [r7, #100] ; 0x64 - 8045126: 62da str r2, [r3, #44] ; 0x2c + 804506a: 6e7b ldr r3, [r7, #100] ; 0x64 + 804506c: 6adc ldr r4, [r3, #44] ; 0x2c + 804506e: 6e7b ldr r3, [r7, #100] ; 0x64 + 8045070: 6adb ldr r3, [r3, #44] ; 0x2c + 8045072: 4618 mov r0, r3 + 8045074: f7bb f8e0 bl 8000238 + 8045078: 4605 mov r5, r0 + 804507a: 6e38 ldr r0, [r7, #96] ; 0x60 + 804507c: f7bb f8dc bl 8000238 + 8045080: 4603 mov r3, r0 + 8045082: 442b add r3, r5 + 8045084: 3301 adds r3, #1 + 8045086: 4619 mov r1, r3 + 8045088: 4620 mov r0, r4 + 804508a: f7ed fbf9 bl 8032880 + 804508e: 4602 mov r2, r0 + 8045090: 6e7b ldr r3, [r7, #100] ; 0x64 + 8045092: 62da str r2, [r3, #44] ; 0x2c LV_ASSERT_MALLOC(ta->pwd_tmp); - 8045128: 6e7b ldr r3, [r7, #100] ; 0x64 - 804512a: 6adb ldr r3, [r3, #44] ; 0x2c - 804512c: 2b00 cmp r3, #0 - 804512e: d100 bne.n 8045132 - 8045130: e7fe b.n 8045130 + 8045094: 6e7b ldr r3, [r7, #100] ; 0x64 + 8045096: 6adb ldr r3, [r3, #44] ; 0x2c + 8045098: 2b00 cmp r3, #0 + 804509a: d100 bne.n 804509e + 804509c: e7fe b.n 804509c if(ta->pwd_tmp == NULL) return; - 8045132: 6e7b ldr r3, [r7, #100] ; 0x64 - 8045134: 6adb ldr r3, [r3, #44] ; 0x2c - 8045136: 2b00 cmp r3, #0 - 8045138: d056 beq.n 80451e8 + 804509e: 6e7b ldr r3, [r7, #100] ; 0x64 + 80450a0: 6adb ldr r3, [r3, #44] ; 0x2c + 80450a2: 2b00 cmp r3, #0 + 80450a4: d056 beq.n 8045154 _lv_txt_ins(ta->pwd_tmp, ta->cursor.pos, (const char *)letter_buf); - 804513a: 6e7b ldr r3, [r7, #100] ; 0x64 - 804513c: 6ad8 ldr r0, [r3, #44] ; 0x2c - 804513e: 6e7b ldr r3, [r7, #100] ; 0x64 - 8045140: 6c1b ldr r3, [r3, #64] ; 0x40 - 8045142: 6e3a ldr r2, [r7, #96] ; 0x60 - 8045144: 4619 mov r1, r3 - 8045146: f7f1 fab7 bl 80366b8 <_lv_txt_ins> + 80450a6: 6e7b ldr r3, [r7, #100] ; 0x64 + 80450a8: 6ad8 ldr r0, [r3, #44] ; 0x2c + 80450aa: 6e7b ldr r3, [r7, #100] ; 0x64 + 80450ac: 6c1b ldr r3, [r3, #64] ; 0x40 + 80450ae: 6e3a ldr r2, [r7, #96] ; 0x60 + 80450b0: 4619 mov r1, r3 + 80450b2: f7f1 fab7 bl 8036624 <_lv_txt_ins> /*Auto hide characters*/ if(ta->pwd_show_time == 0) { - 804514a: 6e7b ldr r3, [r7, #100] ; 0x64 - 804514c: 8f1b ldrh r3, [r3, #56] ; 0x38 - 804514e: 2b00 cmp r3, #0 - 8045150: d103 bne.n 804515a + 80450b6: 6e7b ldr r3, [r7, #100] ; 0x64 + 80450b8: 8f1b ldrh r3, [r3, #56] ; 0x38 + 80450ba: 2b00 cmp r3, #0 + 80450bc: d103 bne.n 80450c6 pwd_char_hider(obj); - 8045152: 6878 ldr r0, [r7, #4] - 8045154: f000 ff14 bl 8045f80 - 8045158: e031 b.n 80451be + 80450be: 6878 ldr r0, [r7, #4] + 80450c0: f000 ff14 bl 8045eec + 80450c4: e031 b.n 804512a } else { lv_anim_t a; lv_anim_init(&a); - 804515a: f107 030c add.w r3, r7, #12 - 804515e: 4618 mov r0, r3 - 8045160: f7eb fb76 bl 8030850 + 80450c6: f107 030c add.w r3, r7, #12 + 80450ca: 4618 mov r0, r3 + 80450cc: f7eb fb76 bl 80307bc lv_anim_set_var(&a, ta); - 8045164: f107 030c add.w r3, r7, #12 - 8045168: 6e79 ldr r1, [r7, #100] ; 0x64 - 804516a: 4618 mov r0, r3 - 804516c: f7ff fe45 bl 8044dfa + 80450d0: f107 030c add.w r3, r7, #12 + 80450d4: 6e79 ldr r1, [r7, #100] ; 0x64 + 80450d6: 4618 mov r0, r3 + 80450d8: f7ff fe45 bl 8044d66 lv_anim_set_exec_cb(&a, pwd_char_hider_anim); - 8045170: f107 030c add.w r3, r7, #12 - 8045174: 491f ldr r1, [pc, #124] ; (80451f4 ) - 8045176: 4618 mov r0, r3 - 8045178: f7ff fe4c bl 8044e14 + 80450dc: f107 030c add.w r3, r7, #12 + 80450e0: 491f ldr r1, [pc, #124] ; (8045160 ) + 80450e2: 4618 mov r0, r3 + 80450e4: f7ff fe4c bl 8044d80 lv_anim_set_time(&a, ta->pwd_show_time); - 804517c: 6e7b ldr r3, [r7, #100] ; 0x64 - 804517e: 8f1b ldrh r3, [r3, #56] ; 0x38 - 8045180: 461a mov r2, r3 - 8045182: f107 030c add.w r3, r7, #12 - 8045186: 4611 mov r1, r2 - 8045188: 4618 mov r0, r3 - 804518a: f7ff fe50 bl 8044e2e + 80450e8: 6e7b ldr r3, [r7, #100] ; 0x64 + 80450ea: 8f1b ldrh r3, [r3, #56] ; 0x38 + 80450ec: 461a mov r2, r3 + 80450ee: f107 030c add.w r3, r7, #12 + 80450f2: 4611 mov r1, r2 + 80450f4: 4618 mov r0, r3 + 80450f6: f7ff fe50 bl 8044d9a lv_anim_set_values(&a, 0, 1); - 804518e: f107 030c add.w r3, r7, #12 - 8045192: 2201 movs r2, #1 - 8045194: 2100 movs r1, #0 - 8045196: 4618 mov r0, r3 - 8045198: f7ff fe56 bl 8044e48 + 80450fa: f107 030c add.w r3, r7, #12 + 80450fe: 2201 movs r2, #1 + 8045100: 2100 movs r1, #0 + 8045102: 4618 mov r0, r3 + 8045104: f7ff fe56 bl 8044db4 lv_anim_set_path_cb(&a, lv_anim_path_step); - 804519c: f107 030c add.w r3, r7, #12 - 80451a0: 4915 ldr r1, [pc, #84] ; (80451f8 ) - 80451a2: 4618 mov r0, r3 - 80451a4: f7ff fe64 bl 8044e70 + 8045108: f107 030c add.w r3, r7, #12 + 804510c: 4915 ldr r1, [pc, #84] ; (8045164 ) + 804510e: 4618 mov r0, r3 + 8045110: f7ff fe64 bl 8044ddc lv_anim_set_ready_cb(&a, pwd_char_hider_anim_ready); - 80451a8: f107 030c add.w r3, r7, #12 - 80451ac: 4913 ldr r1, [pc, #76] ; (80451fc ) - 80451ae: 4618 mov r0, r3 - 80451b0: f7ff fe6b bl 8044e8a + 8045114: f107 030c add.w r3, r7, #12 + 8045118: 4913 ldr r1, [pc, #76] ; (8045168 ) + 804511a: 4618 mov r0, r3 + 804511c: f7ff fe6b bl 8044df6 lv_anim_start(&a); - 80451b4: f107 030c add.w r3, r7, #12 - 80451b8: 4618 mov r0, r3 - 80451ba: f7eb fb6f bl 803089c + 8045120: f107 030c add.w r3, r7, #12 + 8045124: 4618 mov r0, r3 + 8045126: f7eb fb6f bl 8030808 } } /*Move the cursor after the new character*/ lv_textarea_set_cursor_pos(obj, lv_textarea_get_cursor_pos(obj) + 1); - 80451be: 6878 ldr r0, [r7, #4] - 80451c0: f000 fbd8 bl 8045974 - 80451c4: 4603 mov r3, r0 - 80451c6: 3301 adds r3, #1 - 80451c8: 4619 mov r1, r3 - 80451ca: 6878 ldr r0, [r7, #4] - 80451cc: f000 fa86 bl 80456dc + 804512a: 6878 ldr r0, [r7, #4] + 804512c: f000 fbd8 bl 80458e0 + 8045130: 4603 mov r3, r0 + 8045132: 3301 adds r3, #1 + 8045134: 4619 mov r1, r3 + 8045136: 6878 ldr r0, [r7, #4] + 8045138: f000 fa86 bl 8045648 lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 80451d0: 2200 movs r2, #0 - 80451d2: 211c movs r1, #28 - 80451d4: 6878 ldr r0, [r7, #4] - 80451d6: f7bd f953 bl 8002480 - 80451da: e006 b.n 80451ea + 804513c: 2200 movs r2, #0 + 804513e: 211c movs r1, #28 + 8045140: 6878 ldr r0, [r7, #4] + 8045142: f7bd f967 bl 8002414 + 8045146: e006 b.n 8045156 if(res != LV_RES_OK) return; - 80451dc: bf00 nop - 80451de: e004 b.n 80451ea + 8045148: bf00 nop + 804514a: e004 b.n 8045156 return; - 80451e0: bf00 nop - 80451e2: e002 b.n 80451ea + 804514c: bf00 nop + 804514e: e002 b.n 8045156 return; - 80451e4: bf00 nop - 80451e6: e000 b.n 80451ea + 8045150: bf00 nop + 8045152: e000 b.n 8045156 if(ta->pwd_tmp == NULL) return; - 80451e8: bf00 nop + 8045154: bf00 nop } - 80451ea: 3768 adds r7, #104 ; 0x68 - 80451ec: 46bd mov sp, r7 - 80451ee: bdb0 pop {r4, r5, r7, pc} - 80451f0: 200000ec .word 0x200000ec - 80451f4: 08045f51 .word 0x08045f51 - 80451f8: 08030bab .word 0x08030bab - 80451fc: 08045f65 .word 0x08045f65 + 8045156: 3768 adds r7, #104 ; 0x68 + 8045158: 46bd mov sp, r7 + 804515a: bdb0 pop {r4, r5, r7, pc} + 804515c: 200000ec .word 0x200000ec + 8045160: 08045ebd .word 0x08045ebd + 8045164: 08030b17 .word 0x08030b17 + 8045168: 08045ed1 .word 0x08045ed1 -08045200 : +0804516c : void lv_textarea_add_text(lv_obj_t * obj, const char * txt) { - 8045200: b5b0 push {r4, r5, r7, lr} - 8045202: b098 sub sp, #96 ; 0x60 - 8045204: af00 add r7, sp, #0 - 8045206: 6078 str r0, [r7, #4] - 8045208: 6039 str r1, [r7, #0] + 804516c: b5b0 push {r4, r5, r7, lr} + 804516e: b098 sub sp, #96 ; 0x60 + 8045170: af00 add r7, sp, #0 + 8045172: 6078 str r0, [r7, #4] + 8045174: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); LV_ASSERT_NULL(txt); - 804520a: 683b ldr r3, [r7, #0] - 804520c: 2b00 cmp r3, #0 - 804520e: d100 bne.n 8045212 - 8045210: e7fe b.n 8045210 + 8045176: 683b ldr r3, [r7, #0] + 8045178: 2b00 cmp r3, #0 + 804517a: d100 bne.n 804517e + 804517c: e7fe b.n 804517c lv_textarea_t * ta = (lv_textarea_t *)obj; - 8045212: 687b ldr r3, [r7, #4] - 8045214: 65fb str r3, [r7, #92] ; 0x5c + 804517e: 687b ldr r3, [r7, #4] + 8045180: 65fb str r3, [r7, #92] ; 0x5c if(ta->pwd_mode != 0) pwd_char_hider(obj); /*Make sure all the current text contains only '*'*/ - 8045216: 6dfb ldr r3, [r7, #92] ; 0x5c - 8045218: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 804521c: f003 0304 and.w r3, r3, #4 - 8045220: b2db uxtb r3, r3 - 8045222: 2b00 cmp r3, #0 - 8045224: d002 beq.n 804522c - 8045226: 6878 ldr r0, [r7, #4] - 8045228: f000 feaa bl 8045f80 + 8045182: 6dfb ldr r3, [r7, #92] ; 0x5c + 8045184: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 8045188: f003 0304 and.w r3, r3, #4 + 804518c: b2db uxtb r3, r3 + 804518e: 2b00 cmp r3, #0 + 8045190: d002 beq.n 8045198 + 8045192: 6878 ldr r0, [r7, #4] + 8045194: f000 feaa bl 8045eec /*Add the character one-by-one if not all characters are accepted or there is character limit.*/ if(lv_textarea_get_accepted_chars(obj) || lv_textarea_get_max_length(obj)) { - 804522c: 6878 ldr r0, [r7, #4] - 804522e: f000 fbc4 bl 80459ba - 8045232: 4603 mov r3, r0 - 8045234: 2b00 cmp r3, #0 - 8045236: d105 bne.n 8045244 - 8045238: 6878 ldr r0, [r7, #4] - 804523a: f000 fbcb bl 80459d4 - 804523e: 4603 mov r3, r0 - 8045240: 2b00 cmp r3, #0 - 8045242: d01a beq.n 804527a + 8045198: 6878 ldr r0, [r7, #4] + 804519a: f000 fbc4 bl 8045926 + 804519e: 4603 mov r3, r0 + 80451a0: 2b00 cmp r3, #0 + 80451a2: d105 bne.n 80451b0 + 80451a4: 6878 ldr r0, [r7, #4] + 80451a6: f000 fbcb bl 8045940 + 80451aa: 4603 mov r3, r0 + 80451ac: 2b00 cmp r3, #0 + 80451ae: d01a beq.n 80451e6 uint32_t i = 0; - 8045244: 2300 movs r3, #0 - 8045246: 64fb str r3, [r7, #76] ; 0x4c + 80451b0: 2300 movs r3, #0 + 80451b2: 64fb str r3, [r7, #76] ; 0x4c while(txt[i] != '\0') { - 8045248: e010 b.n 804526c + 80451b4: e010 b.n 80451d8 uint32_t c = _lv_txt_encoded_next(txt, &i); - 804524a: 4b61 ldr r3, [pc, #388] ; (80453d0 ) - 804524c: 681b ldr r3, [r3, #0] - 804524e: f107 024c add.w r2, r7, #76 ; 0x4c - 8045252: 4611 mov r1, r2 - 8045254: 6838 ldr r0, [r7, #0] - 8045256: 4798 blx r3 - 8045258: 6538 str r0, [r7, #80] ; 0x50 + 80451b6: 4b61 ldr r3, [pc, #388] ; (804533c ) + 80451b8: 681b ldr r3, [r3, #0] + 80451ba: f107 024c add.w r2, r7, #76 ; 0x4c + 80451be: 4611 mov r1, r2 + 80451c0: 6838 ldr r0, [r7, #0] + 80451c2: 4798 blx r3 + 80451c4: 6538 str r0, [r7, #80] ; 0x50 lv_textarea_add_char(obj, _lv_txt_unicode_to_encoded(c)); - 804525a: 4b5e ldr r3, [pc, #376] ; (80453d4 ) - 804525c: 681b ldr r3, [r3, #0] - 804525e: 6d38 ldr r0, [r7, #80] ; 0x50 - 8045260: 4798 blx r3 - 8045262: 4603 mov r3, r0 - 8045264: 4619 mov r1, r3 - 8045266: 6878 ldr r0, [r7, #4] - 8045268: f7ff fede bl 8045028 + 80451c6: 4b5e ldr r3, [pc, #376] ; (8045340 ) + 80451c8: 681b ldr r3, [r3, #0] + 80451ca: 6d38 ldr r0, [r7, #80] ; 0x50 + 80451cc: 4798 blx r3 + 80451ce: 4603 mov r3, r0 + 80451d0: 4619 mov r1, r3 + 80451d2: 6878 ldr r0, [r7, #4] + 80451d4: f7ff fede bl 8044f94 while(txt[i] != '\0') { - 804526c: 6cfb ldr r3, [r7, #76] ; 0x4c - 804526e: 683a ldr r2, [r7, #0] - 8045270: 4413 add r3, r2 - 8045272: 781b ldrb r3, [r3, #0] - 8045274: 2b00 cmp r3, #0 - 8045276: d1e8 bne.n 804524a - 8045278: e0a6 b.n 80453c8 + 80451d8: 6cfb ldr r3, [r7, #76] ; 0x4c + 80451da: 683a ldr r2, [r7, #0] + 80451dc: 4413 add r3, r2 + 80451de: 781b ldrb r3, [r3, #0] + 80451e0: 2b00 cmp r3, #0 + 80451e2: d1e8 bne.n 80451b6 + 80451e4: e0a6 b.n 8045334 } return; } lv_res_t res = insert_handler(obj, txt); - 804527a: 6839 ldr r1, [r7, #0] - 804527c: 6878 ldr r0, [r7, #4] - 804527e: f001 fad1 bl 8046824 - 8045282: 4603 mov r3, r0 - 8045284: f887 305b strb.w r3, [r7, #91] ; 0x5b + 80451e6: 6839 ldr r1, [r7, #0] + 80451e8: 6878 ldr r0, [r7, #4] + 80451ea: f001 fad1 bl 8046790 + 80451ee: 4603 mov r3, r0 + 80451f0: f887 305b strb.w r3, [r7, #91] ; 0x5b if(res != LV_RES_OK) return; - 8045288: f897 305b ldrb.w r3, [r7, #91] ; 0x5b - 804528c: 2b01 cmp r3, #1 - 804528e: f040 8098 bne.w 80453c2 + 80451f4: f897 305b ldrb.w r3, [r7, #91] ; 0x5b + 80451f8: 2b01 cmp r3, #1 + 80451fa: f040 8098 bne.w 804532e /*If the textarea is empty, invalidate it to hide the placeholder*/ if(ta->placeholder_txt) { - 8045292: 6dfb ldr r3, [r7, #92] ; 0x5c - 8045294: 6a9b ldr r3, [r3, #40] ; 0x28 - 8045296: 2b00 cmp r3, #0 - 8045298: d00c beq.n 80452b4 + 80451fe: 6dfb ldr r3, [r7, #92] ; 0x5c + 8045200: 6a9b ldr r3, [r3, #40] ; 0x28 + 8045202: 2b00 cmp r3, #0 + 8045204: d00c beq.n 8045220 const char * txt_act = lv_label_get_text(ta->label); - 804529a: 6dfb ldr r3, [r7, #92] ; 0x5c - 804529c: 6a5b ldr r3, [r3, #36] ; 0x24 - 804529e: 4618 mov r0, r3 - 80452a0: f7f9 fe90 bl 803efc4 - 80452a4: 6578 str r0, [r7, #84] ; 0x54 + 8045206: 6dfb ldr r3, [r7, #92] ; 0x5c + 8045208: 6a5b ldr r3, [r3, #36] ; 0x24 + 804520a: 4618 mov r0, r3 + 804520c: f7f9 fe90 bl 803ef30 + 8045210: 6578 str r0, [r7, #84] ; 0x54 if(txt_act[0] == '\0') lv_obj_invalidate(obj); - 80452a6: 6d7b ldr r3, [r7, #84] ; 0x54 - 80452a8: 781b ldrb r3, [r3, #0] - 80452aa: 2b00 cmp r3, #0 - 80452ac: d102 bne.n 80452b4 - 80452ae: 6878 ldr r0, [r7, #4] - 80452b0: f7c5 fbff bl 800aab2 + 8045212: 6d7b ldr r3, [r7, #84] ; 0x54 + 8045214: 781b ldrb r3, [r3, #0] + 8045216: 2b00 cmp r3, #0 + 8045218: d102 bne.n 8045220 + 804521a: 6878 ldr r0, [r7, #4] + 804521c: f7c5 fc13 bl 800aa46 } /*Insert the text*/ lv_label_ins_text(ta->label, ta->cursor.pos, txt); - 80452b4: 6dfb ldr r3, [r7, #92] ; 0x5c - 80452b6: 6a58 ldr r0, [r3, #36] ; 0x24 - 80452b8: 6dfb ldr r3, [r7, #92] ; 0x5c - 80452ba: 6c1b ldr r3, [r3, #64] ; 0x40 - 80452bc: 683a ldr r2, [r7, #0] - 80452be: 4619 mov r1, r3 - 80452c0: f7fa fb68 bl 803f994 + 8045220: 6dfb ldr r3, [r7, #92] ; 0x5c + 8045222: 6a58 ldr r0, [r3, #36] ; 0x24 + 8045224: 6dfb ldr r3, [r7, #92] ; 0x5c + 8045226: 6c1b ldr r3, [r3, #64] ; 0x40 + 8045228: 683a ldr r2, [r7, #0] + 804522a: 4619 mov r1, r3 + 804522c: f7fa fb68 bl 803f900 lv_textarea_clear_selection(obj); - 80452c4: 6878 ldr r0, [r7, #4] - 80452c6: f000 fb92 bl 80459ee + 8045230: 6878 ldr r0, [r7, #4] + 8045232: f000 fb92 bl 804595a if(ta->pwd_mode != 0) { - 80452ca: 6dfb ldr r3, [r7, #92] ; 0x5c - 80452cc: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 80452d0: f003 0304 and.w r3, r3, #4 - 80452d4: b2db uxtb r3, r3 - 80452d6: 2b00 cmp r3, #0 - 80452d8: d05f beq.n 804539a + 8045236: 6dfb ldr r3, [r7, #92] ; 0x5c + 8045238: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 804523c: f003 0304 and.w r3, r3, #4 + 8045240: b2db uxtb r3, r3 + 8045242: 2b00 cmp r3, #0 + 8045244: d05f beq.n 8045306 ta->pwd_tmp = lv_mem_realloc(ta->pwd_tmp, strlen(ta->pwd_tmp) + strlen(txt) + 1); - 80452da: 6dfb ldr r3, [r7, #92] ; 0x5c - 80452dc: 6adc ldr r4, [r3, #44] ; 0x2c - 80452de: 6dfb ldr r3, [r7, #92] ; 0x5c - 80452e0: 6adb ldr r3, [r3, #44] ; 0x2c - 80452e2: 4618 mov r0, r3 - 80452e4: f7ba ffa8 bl 8000238 - 80452e8: 4605 mov r5, r0 - 80452ea: 6838 ldr r0, [r7, #0] - 80452ec: f7ba ffa4 bl 8000238 - 80452f0: 4603 mov r3, r0 - 80452f2: 442b add r3, r5 - 80452f4: 3301 adds r3, #1 - 80452f6: 4619 mov r1, r3 - 80452f8: 4620 mov r0, r4 - 80452fa: f7ed fb0b bl 8032914 - 80452fe: 4602 mov r2, r0 - 8045300: 6dfb ldr r3, [r7, #92] ; 0x5c - 8045302: 62da str r2, [r3, #44] ; 0x2c + 8045246: 6dfb ldr r3, [r7, #92] ; 0x5c + 8045248: 6adc ldr r4, [r3, #44] ; 0x2c + 804524a: 6dfb ldr r3, [r7, #92] ; 0x5c + 804524c: 6adb ldr r3, [r3, #44] ; 0x2c + 804524e: 4618 mov r0, r3 + 8045250: f7ba fff2 bl 8000238 + 8045254: 4605 mov r5, r0 + 8045256: 6838 ldr r0, [r7, #0] + 8045258: f7ba ffee bl 8000238 + 804525c: 4603 mov r3, r0 + 804525e: 442b add r3, r5 + 8045260: 3301 adds r3, #1 + 8045262: 4619 mov r1, r3 + 8045264: 4620 mov r0, r4 + 8045266: f7ed fb0b bl 8032880 + 804526a: 4602 mov r2, r0 + 804526c: 6dfb ldr r3, [r7, #92] ; 0x5c + 804526e: 62da str r2, [r3, #44] ; 0x2c LV_ASSERT_MALLOC(ta->pwd_tmp); - 8045304: 6dfb ldr r3, [r7, #92] ; 0x5c - 8045306: 6adb ldr r3, [r3, #44] ; 0x2c - 8045308: 2b00 cmp r3, #0 - 804530a: d100 bne.n 804530e - 804530c: e7fe b.n 804530c + 8045270: 6dfb ldr r3, [r7, #92] ; 0x5c + 8045272: 6adb ldr r3, [r3, #44] ; 0x2c + 8045274: 2b00 cmp r3, #0 + 8045276: d100 bne.n 804527a + 8045278: e7fe b.n 8045278 if(ta->pwd_tmp == NULL) return; - 804530e: 6dfb ldr r3, [r7, #92] ; 0x5c - 8045310: 6adb ldr r3, [r3, #44] ; 0x2c - 8045312: 2b00 cmp r3, #0 - 8045314: d057 beq.n 80453c6 + 804527a: 6dfb ldr r3, [r7, #92] ; 0x5c + 804527c: 6adb ldr r3, [r3, #44] ; 0x2c + 804527e: 2b00 cmp r3, #0 + 8045280: d057 beq.n 8045332 _lv_txt_ins(ta->pwd_tmp, ta->cursor.pos, txt); - 8045316: 6dfb ldr r3, [r7, #92] ; 0x5c - 8045318: 6ad8 ldr r0, [r3, #44] ; 0x2c - 804531a: 6dfb ldr r3, [r7, #92] ; 0x5c - 804531c: 6c1b ldr r3, [r3, #64] ; 0x40 - 804531e: 683a ldr r2, [r7, #0] - 8045320: 4619 mov r1, r3 - 8045322: f7f1 f9c9 bl 80366b8 <_lv_txt_ins> + 8045282: 6dfb ldr r3, [r7, #92] ; 0x5c + 8045284: 6ad8 ldr r0, [r3, #44] ; 0x2c + 8045286: 6dfb ldr r3, [r7, #92] ; 0x5c + 8045288: 6c1b ldr r3, [r3, #64] ; 0x40 + 804528a: 683a ldr r2, [r7, #0] + 804528c: 4619 mov r1, r3 + 804528e: f7f1 f9c9 bl 8036624 <_lv_txt_ins> /*Auto hide characters*/ if(ta->pwd_show_time == 0) { - 8045326: 6dfb ldr r3, [r7, #92] ; 0x5c - 8045328: 8f1b ldrh r3, [r3, #56] ; 0x38 - 804532a: 2b00 cmp r3, #0 - 804532c: d103 bne.n 8045336 + 8045292: 6dfb ldr r3, [r7, #92] ; 0x5c + 8045294: 8f1b ldrh r3, [r3, #56] ; 0x38 + 8045296: 2b00 cmp r3, #0 + 8045298: d103 bne.n 80452a2 pwd_char_hider(obj); - 804532e: 6878 ldr r0, [r7, #4] - 8045330: f000 fe26 bl 8045f80 - 8045334: e031 b.n 804539a + 804529a: 6878 ldr r0, [r7, #4] + 804529c: f000 fe26 bl 8045eec + 80452a0: e031 b.n 8045306 } else { lv_anim_t a; lv_anim_init(&a); - 8045336: f107 030c add.w r3, r7, #12 - 804533a: 4618 mov r0, r3 - 804533c: f7eb fa88 bl 8030850 + 80452a2: f107 030c add.w r3, r7, #12 + 80452a6: 4618 mov r0, r3 + 80452a8: f7eb fa88 bl 80307bc lv_anim_set_var(&a, ta); - 8045340: f107 030c add.w r3, r7, #12 - 8045344: 6df9 ldr r1, [r7, #92] ; 0x5c - 8045346: 4618 mov r0, r3 - 8045348: f7ff fd57 bl 8044dfa + 80452ac: f107 030c add.w r3, r7, #12 + 80452b0: 6df9 ldr r1, [r7, #92] ; 0x5c + 80452b2: 4618 mov r0, r3 + 80452b4: f7ff fd57 bl 8044d66 lv_anim_set_exec_cb(&a, pwd_char_hider_anim); - 804534c: f107 030c add.w r3, r7, #12 - 8045350: 4921 ldr r1, [pc, #132] ; (80453d8 ) - 8045352: 4618 mov r0, r3 - 8045354: f7ff fd5e bl 8044e14 + 80452b8: f107 030c add.w r3, r7, #12 + 80452bc: 4921 ldr r1, [pc, #132] ; (8045344 ) + 80452be: 4618 mov r0, r3 + 80452c0: f7ff fd5e bl 8044d80 lv_anim_set_time(&a, ta->pwd_show_time); - 8045358: 6dfb ldr r3, [r7, #92] ; 0x5c - 804535a: 8f1b ldrh r3, [r3, #56] ; 0x38 - 804535c: 461a mov r2, r3 - 804535e: f107 030c add.w r3, r7, #12 - 8045362: 4611 mov r1, r2 - 8045364: 4618 mov r0, r3 - 8045366: f7ff fd62 bl 8044e2e + 80452c4: 6dfb ldr r3, [r7, #92] ; 0x5c + 80452c6: 8f1b ldrh r3, [r3, #56] ; 0x38 + 80452c8: 461a mov r2, r3 + 80452ca: f107 030c add.w r3, r7, #12 + 80452ce: 4611 mov r1, r2 + 80452d0: 4618 mov r0, r3 + 80452d2: f7ff fd62 bl 8044d9a lv_anim_set_values(&a, 0, 1); - 804536a: f107 030c add.w r3, r7, #12 - 804536e: 2201 movs r2, #1 - 8045370: 2100 movs r1, #0 - 8045372: 4618 mov r0, r3 - 8045374: f7ff fd68 bl 8044e48 + 80452d6: f107 030c add.w r3, r7, #12 + 80452da: 2201 movs r2, #1 + 80452dc: 2100 movs r1, #0 + 80452de: 4618 mov r0, r3 + 80452e0: f7ff fd68 bl 8044db4 lv_anim_set_path_cb(&a, lv_anim_path_step); - 8045378: f107 030c add.w r3, r7, #12 - 804537c: 4917 ldr r1, [pc, #92] ; (80453dc ) - 804537e: 4618 mov r0, r3 - 8045380: f7ff fd76 bl 8044e70 + 80452e4: f107 030c add.w r3, r7, #12 + 80452e8: 4917 ldr r1, [pc, #92] ; (8045348 ) + 80452ea: 4618 mov r0, r3 + 80452ec: f7ff fd76 bl 8044ddc lv_anim_set_ready_cb(&a, pwd_char_hider_anim_ready); - 8045384: f107 030c add.w r3, r7, #12 - 8045388: 4915 ldr r1, [pc, #84] ; (80453e0 ) - 804538a: 4618 mov r0, r3 - 804538c: f7ff fd7d bl 8044e8a + 80452f0: f107 030c add.w r3, r7, #12 + 80452f4: 4915 ldr r1, [pc, #84] ; (804534c ) + 80452f6: 4618 mov r0, r3 + 80452f8: f7ff fd7d bl 8044df6 lv_anim_start(&a); - 8045390: f107 030c add.w r3, r7, #12 - 8045394: 4618 mov r0, r3 - 8045396: f7eb fa81 bl 803089c + 80452fc: f107 030c add.w r3, r7, #12 + 8045300: 4618 mov r0, r3 + 8045302: f7eb fa81 bl 8030808 } } /*Move the cursor after the new text*/ lv_textarea_set_cursor_pos(obj, lv_textarea_get_cursor_pos(obj) + _lv_txt_get_encoded_length(txt)); - 804539a: 6878 ldr r0, [r7, #4] - 804539c: f000 faea bl 8045974 - 80453a0: 4604 mov r4, r0 - 80453a2: 4b10 ldr r3, [pc, #64] ; (80453e4 ) - 80453a4: 681b ldr r3, [r3, #0] - 80453a6: 6838 ldr r0, [r7, #0] - 80453a8: 4798 blx r3 - 80453aa: 4603 mov r3, r0 - 80453ac: 4423 add r3, r4 - 80453ae: 4619 mov r1, r3 - 80453b0: 6878 ldr r0, [r7, #4] - 80453b2: f000 f993 bl 80456dc + 8045306: 6878 ldr r0, [r7, #4] + 8045308: f000 faea bl 80458e0 + 804530c: 4604 mov r4, r0 + 804530e: 4b10 ldr r3, [pc, #64] ; (8045350 ) + 8045310: 681b ldr r3, [r3, #0] + 8045312: 6838 ldr r0, [r7, #0] + 8045314: 4798 blx r3 + 8045316: 4603 mov r3, r0 + 8045318: 4423 add r3, r4 + 804531a: 4619 mov r1, r3 + 804531c: 6878 ldr r0, [r7, #4] + 804531e: f000 f993 bl 8045648 lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 80453b6: 2200 movs r2, #0 - 80453b8: 211c movs r1, #28 - 80453ba: 6878 ldr r0, [r7, #4] - 80453bc: f7bd f860 bl 8002480 - 80453c0: e002 b.n 80453c8 + 8045322: 2200 movs r2, #0 + 8045324: 211c movs r1, #28 + 8045326: 6878 ldr r0, [r7, #4] + 8045328: f7bd f874 bl 8002414 + 804532c: e002 b.n 8045334 if(res != LV_RES_OK) return; - 80453c2: bf00 nop - 80453c4: e000 b.n 80453c8 + 804532e: bf00 nop + 8045330: e000 b.n 8045334 if(ta->pwd_tmp == NULL) return; - 80453c6: bf00 nop + 8045332: bf00 nop } - 80453c8: 3760 adds r7, #96 ; 0x60 - 80453ca: 46bd mov sp, r7 - 80453cc: bdb0 pop {r4, r5, r7, pc} - 80453ce: bf00 nop - 80453d0: 200000ec .word 0x200000ec - 80453d4: 200000e8 .word 0x200000e8 - 80453d8: 08045f51 .word 0x08045f51 - 80453dc: 08030bab .word 0x08030bab - 80453e0: 08045f65 .word 0x08045f65 - 80453e4: 200000fc .word 0x200000fc + 8045334: 3760 adds r7, #96 ; 0x60 + 8045336: 46bd mov sp, r7 + 8045338: bdb0 pop {r4, r5, r7, pc} + 804533a: bf00 nop + 804533c: 200000ec .word 0x200000ec + 8045340: 200000e8 .word 0x200000e8 + 8045344: 08045ebd .word 0x08045ebd + 8045348: 08030b17 .word 0x08030b17 + 804534c: 08045ed1 .word 0x08045ed1 + 8045350: 200000fc .word 0x200000fc -080453e8 : +08045354 : void lv_textarea_del_char(lv_obj_t * obj) { - 80453e8: b590 push {r4, r7, lr} - 80453ea: b089 sub sp, #36 ; 0x24 - 80453ec: af00 add r7, sp, #0 - 80453ee: 6078 str r0, [r7, #4] + 8045354: b590 push {r4, r7, lr} + 8045356: b089 sub sp, #36 ; 0x24 + 8045358: af00 add r7, sp, #0 + 804535a: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_textarea_t * ta = (lv_textarea_t *)obj; - 80453f0: 687b ldr r3, [r7, #4] - 80453f2: 61fb str r3, [r7, #28] + 804535c: 687b ldr r3, [r7, #4] + 804535e: 61fb str r3, [r7, #28] uint32_t cur_pos = ta->cursor.pos; - 80453f4: 69fb ldr r3, [r7, #28] - 80453f6: 6c1b ldr r3, [r3, #64] ; 0x40 - 80453f8: 61bb str r3, [r7, #24] + 8045360: 69fb ldr r3, [r7, #28] + 8045362: 6c1b ldr r3, [r3, #64] ; 0x40 + 8045364: 61bb str r3, [r7, #24] if(cur_pos == 0) return; - 80453fa: 69bb ldr r3, [r7, #24] - 80453fc: 2b00 cmp r3, #0 - 80453fe: d06b beq.n 80454d8 + 8045366: 69bb ldr r3, [r7, #24] + 8045368: 2b00 cmp r3, #0 + 804536a: d06b beq.n 8045444 char del_buf[2] = {LV_KEY_DEL, '\0'}; - 8045400: 237f movs r3, #127 ; 0x7f - 8045402: 813b strh r3, [r7, #8] + 804536c: 237f movs r3, #127 ; 0x7f + 804536e: 813b strh r3, [r7, #8] lv_res_t res = insert_handler(obj, del_buf); - 8045404: f107 0308 add.w r3, r7, #8 - 8045408: 4619 mov r1, r3 - 804540a: 6878 ldr r0, [r7, #4] - 804540c: f001 fa0a bl 8046824 - 8045410: 4603 mov r3, r0 - 8045412: 75fb strb r3, [r7, #23] + 8045370: f107 0308 add.w r3, r7, #8 + 8045374: 4619 mov r1, r3 + 8045376: 6878 ldr r0, [r7, #4] + 8045378: f001 fa0a bl 8046790 + 804537c: 4603 mov r3, r0 + 804537e: 75fb strb r3, [r7, #23] if(res != LV_RES_OK) return; - 8045414: 7dfb ldrb r3, [r7, #23] - 8045416: 2b01 cmp r3, #1 - 8045418: d160 bne.n 80454dc + 8045380: 7dfb ldrb r3, [r7, #23] + 8045382: 2b01 cmp r3, #1 + 8045384: d160 bne.n 8045448 char * label_txt = lv_label_get_text(ta->label); - 804541a: 69fb ldr r3, [r7, #28] - 804541c: 6a5b ldr r3, [r3, #36] ; 0x24 - 804541e: 4618 mov r0, r3 - 8045420: f7f9 fdd0 bl 803efc4 - 8045424: 6138 str r0, [r7, #16] + 8045386: 69fb ldr r3, [r7, #28] + 8045388: 6a5b ldr r3, [r3, #36] ; 0x24 + 804538a: 4618 mov r0, r3 + 804538c: f7f9 fdd0 bl 803ef30 + 8045390: 6138 str r0, [r7, #16] /*Delete a character*/ _lv_txt_cut(label_txt, ta->cursor.pos - 1, 1); - 8045426: 69fb ldr r3, [r7, #28] - 8045428: 6c1b ldr r3, [r3, #64] ; 0x40 - 804542a: 3b01 subs r3, #1 - 804542c: 2201 movs r2, #1 - 804542e: 4619 mov r1, r3 - 8045430: 6938 ldr r0, [r7, #16] - 8045432: f7f1 f989 bl 8036748 <_lv_txt_cut> + 8045392: 69fb ldr r3, [r7, #28] + 8045394: 6c1b ldr r3, [r3, #64] ; 0x40 + 8045396: 3b01 subs r3, #1 + 8045398: 2201 movs r2, #1 + 804539a: 4619 mov r1, r3 + 804539c: 6938 ldr r0, [r7, #16] + 804539e: f7f1 f989 bl 80366b4 <_lv_txt_cut> /*Refresh the label*/ lv_label_set_text(ta->label, label_txt); - 8045436: 69fb ldr r3, [r7, #28] - 8045438: 6a5b ldr r3, [r3, #36] ; 0x24 - 804543a: 6939 ldr r1, [r7, #16] - 804543c: 4618 mov r0, r3 - 804543e: f7f9 fc61 bl 803ed04 + 80453a2: 69fb ldr r3, [r7, #28] + 80453a4: 6a5b ldr r3, [r3, #36] ; 0x24 + 80453a6: 6939 ldr r1, [r7, #16] + 80453a8: 4618 mov r0, r3 + 80453aa: f7f9 fc61 bl 803ec70 lv_textarea_clear_selection(obj); - 8045442: 6878 ldr r0, [r7, #4] - 8045444: f000 fad3 bl 80459ee + 80453ae: 6878 ldr r0, [r7, #4] + 80453b0: f000 fad3 bl 804595a /*If the textarea became empty, invalidate it to hide the placeholder*/ if(ta->placeholder_txt) { - 8045448: 69fb ldr r3, [r7, #28] - 804544a: 6a9b ldr r3, [r3, #40] ; 0x28 - 804544c: 2b00 cmp r3, #0 - 804544e: d00c beq.n 804546a + 80453b4: 69fb ldr r3, [r7, #28] + 80453b6: 6a9b ldr r3, [r3, #40] ; 0x28 + 80453b8: 2b00 cmp r3, #0 + 80453ba: d00c beq.n 80453d6 const char * txt = lv_label_get_text(ta->label); - 8045450: 69fb ldr r3, [r7, #28] - 8045452: 6a5b ldr r3, [r3, #36] ; 0x24 - 8045454: 4618 mov r0, r3 - 8045456: f7f9 fdb5 bl 803efc4 - 804545a: 60f8 str r0, [r7, #12] + 80453bc: 69fb ldr r3, [r7, #28] + 80453be: 6a5b ldr r3, [r3, #36] ; 0x24 + 80453c0: 4618 mov r0, r3 + 80453c2: f7f9 fdb5 bl 803ef30 + 80453c6: 60f8 str r0, [r7, #12] if(txt[0] == '\0') lv_obj_invalidate(obj); - 804545c: 68fb ldr r3, [r7, #12] - 804545e: 781b ldrb r3, [r3, #0] - 8045460: 2b00 cmp r3, #0 - 8045462: d102 bne.n 804546a - 8045464: 6878 ldr r0, [r7, #4] - 8045466: f7c5 fb24 bl 800aab2 + 80453c8: 68fb ldr r3, [r7, #12] + 80453ca: 781b ldrb r3, [r3, #0] + 80453cc: 2b00 cmp r3, #0 + 80453ce: d102 bne.n 80453d6 + 80453d0: 6878 ldr r0, [r7, #4] + 80453d2: f7c5 fb38 bl 800aa46 } if(ta->pwd_mode != 0) { - 804546a: 69fb ldr r3, [r7, #28] - 804546c: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 8045470: f003 0304 and.w r3, r3, #4 - 8045474: b2db uxtb r3, r3 - 8045476: 2b00 cmp r3, #0 - 8045478: d021 beq.n 80454be + 80453d6: 69fb ldr r3, [r7, #28] + 80453d8: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 80453dc: f003 0304 and.w r3, r3, #4 + 80453e0: b2db uxtb r3, r3 + 80453e2: 2b00 cmp r3, #0 + 80453e4: d021 beq.n 804542a _lv_txt_cut(ta->pwd_tmp, ta->cursor.pos - 1, 1); - 804547a: 69fb ldr r3, [r7, #28] - 804547c: 6ad8 ldr r0, [r3, #44] ; 0x2c - 804547e: 69fb ldr r3, [r7, #28] - 8045480: 6c1b ldr r3, [r3, #64] ; 0x40 - 8045482: 3b01 subs r3, #1 - 8045484: 2201 movs r2, #1 - 8045486: 4619 mov r1, r3 - 8045488: f7f1 f95e bl 8036748 <_lv_txt_cut> + 80453e6: 69fb ldr r3, [r7, #28] + 80453e8: 6ad8 ldr r0, [r3, #44] ; 0x2c + 80453ea: 69fb ldr r3, [r7, #28] + 80453ec: 6c1b ldr r3, [r3, #64] ; 0x40 + 80453ee: 3b01 subs r3, #1 + 80453f0: 2201 movs r2, #1 + 80453f2: 4619 mov r1, r3 + 80453f4: f7f1 f95e bl 80366b4 <_lv_txt_cut> ta->pwd_tmp = lv_mem_realloc(ta->pwd_tmp, strlen(ta->pwd_tmp) + 1); - 804548c: 69fb ldr r3, [r7, #28] - 804548e: 6adc ldr r4, [r3, #44] ; 0x2c - 8045490: 69fb ldr r3, [r7, #28] - 8045492: 6adb ldr r3, [r3, #44] ; 0x2c - 8045494: 4618 mov r0, r3 - 8045496: f7ba fecf bl 8000238 - 804549a: 4603 mov r3, r0 - 804549c: 3301 adds r3, #1 - 804549e: 4619 mov r1, r3 - 80454a0: 4620 mov r0, r4 - 80454a2: f7ed fa37 bl 8032914 - 80454a6: 4602 mov r2, r0 - 80454a8: 69fb ldr r3, [r7, #28] - 80454aa: 62da str r2, [r3, #44] ; 0x2c + 80453f8: 69fb ldr r3, [r7, #28] + 80453fa: 6adc ldr r4, [r3, #44] ; 0x2c + 80453fc: 69fb ldr r3, [r7, #28] + 80453fe: 6adb ldr r3, [r3, #44] ; 0x2c + 8045400: 4618 mov r0, r3 + 8045402: f7ba ff19 bl 8000238 + 8045406: 4603 mov r3, r0 + 8045408: 3301 adds r3, #1 + 804540a: 4619 mov r1, r3 + 804540c: 4620 mov r0, r4 + 804540e: f7ed fa37 bl 8032880 + 8045412: 4602 mov r2, r0 + 8045414: 69fb ldr r3, [r7, #28] + 8045416: 62da str r2, [r3, #44] ; 0x2c LV_ASSERT_MALLOC(ta->pwd_tmp); - 80454ac: 69fb ldr r3, [r7, #28] - 80454ae: 6adb ldr r3, [r3, #44] ; 0x2c - 80454b0: 2b00 cmp r3, #0 - 80454b2: d100 bne.n 80454b6 - 80454b4: e7fe b.n 80454b4 + 8045418: 69fb ldr r3, [r7, #28] + 804541a: 6adb ldr r3, [r3, #44] ; 0x2c + 804541c: 2b00 cmp r3, #0 + 804541e: d100 bne.n 8045422 + 8045420: e7fe b.n 8045420 if(ta->pwd_tmp == NULL) return; - 80454b6: 69fb ldr r3, [r7, #28] - 80454b8: 6adb ldr r3, [r3, #44] ; 0x2c - 80454ba: 2b00 cmp r3, #0 - 80454bc: d010 beq.n 80454e0 + 8045422: 69fb ldr r3, [r7, #28] + 8045424: 6adb ldr r3, [r3, #44] ; 0x2c + 8045426: 2b00 cmp r3, #0 + 8045428: d010 beq.n 804544c } /*Move the cursor to the place of the deleted character*/ lv_textarea_set_cursor_pos(obj, ta->cursor.pos - 1); - 80454be: 69fb ldr r3, [r7, #28] - 80454c0: 6c1b ldr r3, [r3, #64] ; 0x40 - 80454c2: 3b01 subs r3, #1 - 80454c4: 4619 mov r1, r3 - 80454c6: 6878 ldr r0, [r7, #4] - 80454c8: f000 f908 bl 80456dc + 804542a: 69fb ldr r3, [r7, #28] + 804542c: 6c1b ldr r3, [r3, #64] ; 0x40 + 804542e: 3b01 subs r3, #1 + 8045430: 4619 mov r1, r3 + 8045432: 6878 ldr r0, [r7, #4] + 8045434: f000 f908 bl 8045648 lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 80454cc: 2200 movs r2, #0 - 80454ce: 211c movs r1, #28 - 80454d0: 6878 ldr r0, [r7, #4] - 80454d2: f7bc ffd5 bl 8002480 - 80454d6: e004 b.n 80454e2 + 8045438: 2200 movs r2, #0 + 804543a: 211c movs r1, #28 + 804543c: 6878 ldr r0, [r7, #4] + 804543e: f7bc ffe9 bl 8002414 + 8045442: e004 b.n 804544e if(cur_pos == 0) return; - 80454d8: bf00 nop - 80454da: e002 b.n 80454e2 + 8045444: bf00 nop + 8045446: e002 b.n 804544e if(res != LV_RES_OK) return; - 80454dc: bf00 nop - 80454de: e000 b.n 80454e2 + 8045448: bf00 nop + 804544a: e000 b.n 804544e if(ta->pwd_tmp == NULL) return; - 80454e0: bf00 nop + 804544c: bf00 nop } - 80454e2: 3724 adds r7, #36 ; 0x24 - 80454e4: 46bd mov sp, r7 - 80454e6: bd90 pop {r4, r7, pc} + 804544e: 3724 adds r7, #36 ; 0x24 + 8045450: 46bd mov sp, r7 + 8045452: bd90 pop {r4, r7, pc} -080454e8 : +08045454 : void lv_textarea_del_char_forward(lv_obj_t * obj) { - 80454e8: b580 push {r7, lr} - 80454ea: b084 sub sp, #16 - 80454ec: af00 add r7, sp, #0 - 80454ee: 6078 str r0, [r7, #4] + 8045454: b580 push {r7, lr} + 8045456: b084 sub sp, #16 + 8045458: af00 add r7, sp, #0 + 804545a: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); uint32_t cp = lv_textarea_get_cursor_pos(obj); - 80454f0: 6878 ldr r0, [r7, #4] - 80454f2: f000 fa3f bl 8045974 - 80454f6: 60f8 str r0, [r7, #12] + 804545c: 6878 ldr r0, [r7, #4] + 804545e: f000 fa3f bl 80458e0 + 8045462: 60f8 str r0, [r7, #12] lv_textarea_set_cursor_pos(obj, cp + 1); - 80454f8: 68fb ldr r3, [r7, #12] - 80454fa: 3301 adds r3, #1 - 80454fc: 4619 mov r1, r3 - 80454fe: 6878 ldr r0, [r7, #4] - 8045500: f000 f8ec bl 80456dc + 8045464: 68fb ldr r3, [r7, #12] + 8045466: 3301 adds r3, #1 + 8045468: 4619 mov r1, r3 + 804546a: 6878 ldr r0, [r7, #4] + 804546c: f000 f8ec bl 8045648 if(cp != lv_textarea_get_cursor_pos(obj)) lv_textarea_del_char(obj); - 8045504: 6878 ldr r0, [r7, #4] - 8045506: f000 fa35 bl 8045974 - 804550a: 4602 mov r2, r0 - 804550c: 68fb ldr r3, [r7, #12] - 804550e: 4293 cmp r3, r2 - 8045510: d002 beq.n 8045518 - 8045512: 6878 ldr r0, [r7, #4] - 8045514: f7ff ff68 bl 80453e8 + 8045470: 6878 ldr r0, [r7, #4] + 8045472: f000 fa35 bl 80458e0 + 8045476: 4602 mov r2, r0 + 8045478: 68fb ldr r3, [r7, #12] + 804547a: 4293 cmp r3, r2 + 804547c: d002 beq.n 8045484 + 804547e: 6878 ldr r0, [r7, #4] + 8045480: f7ff ff68 bl 8045354 } - 8045518: bf00 nop - 804551a: 3710 adds r7, #16 - 804551c: 46bd mov sp, r7 - 804551e: bd80 pop {r7, pc} + 8045484: bf00 nop + 8045486: 3710 adds r7, #16 + 8045488: 46bd mov sp, r7 + 804548a: bd80 pop {r7, pc} -08045520 : +0804548c : /*===================== * Setter functions *====================*/ void lv_textarea_set_text(lv_obj_t * obj, const char * txt) { - 8045520: b590 push {r4, r7, lr} - 8045522: b097 sub sp, #92 ; 0x5c - 8045524: af00 add r7, sp, #0 - 8045526: 6078 str r0, [r7, #4] - 8045528: 6039 str r1, [r7, #0] + 804548c: b590 push {r4, r7, lr} + 804548e: b097 sub sp, #92 ; 0x5c + 8045490: af00 add r7, sp, #0 + 8045492: 6078 str r0, [r7, #4] + 8045494: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); LV_ASSERT_NULL(txt); - 804552a: 683b ldr r3, [r7, #0] - 804552c: 2b00 cmp r3, #0 - 804552e: d100 bne.n 8045532 - 8045530: e7fe b.n 8045530 + 8045496: 683b ldr r3, [r7, #0] + 8045498: 2b00 cmp r3, #0 + 804549a: d100 bne.n 804549e + 804549c: e7fe b.n 804549c lv_textarea_t * ta = (lv_textarea_t *)obj; - 8045532: 687b ldr r3, [r7, #4] - 8045534: 657b str r3, [r7, #84] ; 0x54 + 804549e: 687b ldr r3, [r7, #4] + 80454a0: 657b str r3, [r7, #84] ; 0x54 /*Clear the existing selection*/ lv_textarea_clear_selection(obj); - 8045536: 6878 ldr r0, [r7, #4] - 8045538: f000 fa59 bl 80459ee + 80454a2: 6878 ldr r0, [r7, #4] + 80454a4: f000 fa59 bl 804595a /*Add the character one-by-one if not all characters are accepted or there is character limit.*/ if(lv_textarea_get_accepted_chars(obj) || lv_textarea_get_max_length(obj)) { - 804553c: 6878 ldr r0, [r7, #4] - 804553e: f000 fa3c bl 80459ba - 8045542: 4603 mov r3, r0 - 8045544: 2b00 cmp r3, #0 - 8045546: d105 bne.n 8045554 - 8045548: 6878 ldr r0, [r7, #4] - 804554a: f000 fa43 bl 80459d4 - 804554e: 4603 mov r3, r0 - 8045550: 2b00 cmp r3, #0 - 8045552: d031 beq.n 80455b8 + 80454a8: 6878 ldr r0, [r7, #4] + 80454aa: f000 fa3c bl 8045926 + 80454ae: 4603 mov r3, r0 + 80454b0: 2b00 cmp r3, #0 + 80454b2: d105 bne.n 80454c0 + 80454b4: 6878 ldr r0, [r7, #4] + 80454b6: f000 fa43 bl 8045940 + 80454ba: 4603 mov r3, r0 + 80454bc: 2b00 cmp r3, #0 + 80454be: d031 beq.n 8045524 lv_label_set_text(ta->label, ""); - 8045554: 6d7b ldr r3, [r7, #84] ; 0x54 - 8045556: 6a5b ldr r3, [r3, #36] ; 0x24 - 8045558: 495a ldr r1, [pc, #360] ; (80456c4 ) - 804555a: 4618 mov r0, r3 - 804555c: f7f9 fbd2 bl 803ed04 + 80454c0: 6d7b ldr r3, [r7, #84] ; 0x54 + 80454c2: 6a5b ldr r3, [r3, #36] ; 0x24 + 80454c4: 495a ldr r1, [pc, #360] ; (8045630 ) + 80454c6: 4618 mov r0, r3 + 80454c8: f7f9 fbd2 bl 803ec70 lv_textarea_set_cursor_pos(obj, LV_TEXTAREA_CURSOR_LAST); - 8045560: f647 71ff movw r1, #32767 ; 0x7fff - 8045564: 6878 ldr r0, [r7, #4] - 8045566: f000 f8b9 bl 80456dc + 80454cc: f647 71ff movw r1, #32767 ; 0x7fff + 80454d0: 6878 ldr r0, [r7, #4] + 80454d2: f000 f8b9 bl 8045648 if(ta->pwd_mode != 0) { - 804556a: 6d7b ldr r3, [r7, #84] ; 0x54 - 804556c: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 8045570: f003 0304 and.w r3, r3, #4 - 8045574: b2db uxtb r3, r3 - 8045576: 2b00 cmp r3, #0 - 8045578: d003 beq.n 8045582 + 80454d6: 6d7b ldr r3, [r7, #84] ; 0x54 + 80454d8: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 80454dc: f003 0304 and.w r3, r3, #4 + 80454e0: b2db uxtb r3, r3 + 80454e2: 2b00 cmp r3, #0 + 80454e4: d003 beq.n 80454ee ta->pwd_tmp[0] = '\0'; /*Clear the password too*/ - 804557a: 6d7b ldr r3, [r7, #84] ; 0x54 - 804557c: 6adb ldr r3, [r3, #44] ; 0x2c - 804557e: 2200 movs r2, #0 - 8045580: 701a strb r2, [r3, #0] + 80454e6: 6d7b ldr r3, [r7, #84] ; 0x54 + 80454e8: 6adb ldr r3, [r3, #44] ; 0x2c + 80454ea: 2200 movs r2, #0 + 80454ec: 701a strb r2, [r3, #0] } uint32_t i = 0; - 8045582: 2300 movs r3, #0 - 8045584: 64bb str r3, [r7, #72] ; 0x48 + 80454ee: 2300 movs r3, #0 + 80454f0: 64bb str r3, [r7, #72] ; 0x48 while(txt[i] != '\0') { - 8045586: e010 b.n 80455aa + 80454f2: e010 b.n 8045516 uint32_t c = _lv_txt_encoded_next(txt, &i); - 8045588: 4b4f ldr r3, [pc, #316] ; (80456c8 ) - 804558a: 681b ldr r3, [r3, #0] - 804558c: f107 0248 add.w r2, r7, #72 ; 0x48 - 8045590: 4611 mov r1, r2 - 8045592: 6838 ldr r0, [r7, #0] - 8045594: 4798 blx r3 - 8045596: 6538 str r0, [r7, #80] ; 0x50 + 80454f4: 4b4f ldr r3, [pc, #316] ; (8045634 ) + 80454f6: 681b ldr r3, [r3, #0] + 80454f8: f107 0248 add.w r2, r7, #72 ; 0x48 + 80454fc: 4611 mov r1, r2 + 80454fe: 6838 ldr r0, [r7, #0] + 8045500: 4798 blx r3 + 8045502: 6538 str r0, [r7, #80] ; 0x50 lv_textarea_add_char(obj, _lv_txt_unicode_to_encoded(c)); - 8045598: 4b4c ldr r3, [pc, #304] ; (80456cc ) - 804559a: 681b ldr r3, [r3, #0] - 804559c: 6d38 ldr r0, [r7, #80] ; 0x50 - 804559e: 4798 blx r3 - 80455a0: 4603 mov r3, r0 - 80455a2: 4619 mov r1, r3 - 80455a4: 6878 ldr r0, [r7, #4] - 80455a6: f7ff fd3f bl 8045028 + 8045504: 4b4c ldr r3, [pc, #304] ; (8045638 ) + 8045506: 681b ldr r3, [r3, #0] + 8045508: 6d38 ldr r0, [r7, #80] ; 0x50 + 804550a: 4798 blx r3 + 804550c: 4603 mov r3, r0 + 804550e: 4619 mov r1, r3 + 8045510: 6878 ldr r0, [r7, #4] + 8045512: f7ff fd3f bl 8044f94 while(txt[i] != '\0') { - 80455aa: 6cbb ldr r3, [r7, #72] ; 0x48 - 80455ac: 683a ldr r2, [r7, #0] - 80455ae: 4413 add r3, r2 - 80455b0: 781b ldrb r3, [r3, #0] - 80455b2: 2b00 cmp r3, #0 - 80455b4: d1e8 bne.n 8045588 + 8045516: 6cbb ldr r3, [r7, #72] ; 0x48 + 8045518: 683a ldr r2, [r7, #0] + 804551a: 4413 add r3, r2 + 804551c: 781b ldrb r3, [r3, #0] + 804551e: 2b00 cmp r3, #0 + 8045520: d1e8 bne.n 80454f4 if(lv_textarea_get_accepted_chars(obj) || lv_textarea_get_max_length(obj)) { - 80455b6: e00a b.n 80455ce + 8045522: e00a b.n 804553a } } else { lv_label_set_text(ta->label, txt); - 80455b8: 6d7b ldr r3, [r7, #84] ; 0x54 - 80455ba: 6a5b ldr r3, [r3, #36] ; 0x24 - 80455bc: 6839 ldr r1, [r7, #0] - 80455be: 4618 mov r0, r3 - 80455c0: f7f9 fba0 bl 803ed04 + 8045524: 6d7b ldr r3, [r7, #84] ; 0x54 + 8045526: 6a5b ldr r3, [r3, #36] ; 0x24 + 8045528: 6839 ldr r1, [r7, #0] + 804552a: 4618 mov r0, r3 + 804552c: f7f9 fba0 bl 803ec70 lv_textarea_set_cursor_pos(obj, LV_TEXTAREA_CURSOR_LAST); - 80455c4: f647 71ff movw r1, #32767 ; 0x7fff - 80455c8: 6878 ldr r0, [r7, #4] - 80455ca: f000 f887 bl 80456dc + 8045530: f647 71ff movw r1, #32767 ; 0x7fff + 8045534: 6878 ldr r0, [r7, #4] + 8045536: f000 f887 bl 8045648 } /*If the textarea is empty, invalidate it to hide the placeholder*/ if(ta->placeholder_txt) { - 80455ce: 6d7b ldr r3, [r7, #84] ; 0x54 - 80455d0: 6a9b ldr r3, [r3, #40] ; 0x28 - 80455d2: 2b00 cmp r3, #0 - 80455d4: d00c beq.n 80455f0 + 804553a: 6d7b ldr r3, [r7, #84] ; 0x54 + 804553c: 6a9b ldr r3, [r3, #40] ; 0x28 + 804553e: 2b00 cmp r3, #0 + 8045540: d00c beq.n 804555c const char * txt_act = lv_label_get_text(ta->label); - 80455d6: 6d7b ldr r3, [r7, #84] ; 0x54 - 80455d8: 6a5b ldr r3, [r3, #36] ; 0x24 - 80455da: 4618 mov r0, r3 - 80455dc: f7f9 fcf2 bl 803efc4 - 80455e0: 64f8 str r0, [r7, #76] ; 0x4c + 8045542: 6d7b ldr r3, [r7, #84] ; 0x54 + 8045544: 6a5b ldr r3, [r3, #36] ; 0x24 + 8045546: 4618 mov r0, r3 + 8045548: f7f9 fcf2 bl 803ef30 + 804554c: 64f8 str r0, [r7, #76] ; 0x4c if(txt_act[0] == '\0') lv_obj_invalidate(obj); - 80455e2: 6cfb ldr r3, [r7, #76] ; 0x4c - 80455e4: 781b ldrb r3, [r3, #0] - 80455e6: 2b00 cmp r3, #0 - 80455e8: d102 bne.n 80455f0 - 80455ea: 6878 ldr r0, [r7, #4] - 80455ec: f7c5 fa61 bl 800aab2 + 804554e: 6cfb ldr r3, [r7, #76] ; 0x4c + 8045550: 781b ldrb r3, [r3, #0] + 8045552: 2b00 cmp r3, #0 + 8045554: d102 bne.n 804555c + 8045556: 6878 ldr r0, [r7, #4] + 8045558: f7c5 fa75 bl 800aa46 } if(ta->pwd_mode != 0) { - 80455f0: 6d7b ldr r3, [r7, #84] ; 0x54 - 80455f2: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 80455f6: f003 0304 and.w r3, r3, #4 - 80455fa: b2db uxtb r3, r3 - 80455fc: 2b00 cmp r3, #0 - 80455fe: d056 beq.n 80456ae + 804555c: 6d7b ldr r3, [r7, #84] ; 0x54 + 804555e: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 8045562: f003 0304 and.w r3, r3, #4 + 8045566: b2db uxtb r3, r3 + 8045568: 2b00 cmp r3, #0 + 804556a: d056 beq.n 804561a ta->pwd_tmp = lv_mem_realloc(ta->pwd_tmp, strlen(txt) + 1); - 8045600: 6d7b ldr r3, [r7, #84] ; 0x54 - 8045602: 6adc ldr r4, [r3, #44] ; 0x2c - 8045604: 6838 ldr r0, [r7, #0] - 8045606: f7ba fe17 bl 8000238 - 804560a: 4603 mov r3, r0 - 804560c: 3301 adds r3, #1 - 804560e: 4619 mov r1, r3 - 8045610: 4620 mov r0, r4 - 8045612: f7ed f97f bl 8032914 - 8045616: 4602 mov r2, r0 - 8045618: 6d7b ldr r3, [r7, #84] ; 0x54 - 804561a: 62da str r2, [r3, #44] ; 0x2c + 804556c: 6d7b ldr r3, [r7, #84] ; 0x54 + 804556e: 6adc ldr r4, [r3, #44] ; 0x2c + 8045570: 6838 ldr r0, [r7, #0] + 8045572: f7ba fe61 bl 8000238 + 8045576: 4603 mov r3, r0 + 8045578: 3301 adds r3, #1 + 804557a: 4619 mov r1, r3 + 804557c: 4620 mov r0, r4 + 804557e: f7ed f97f bl 8032880 + 8045582: 4602 mov r2, r0 + 8045584: 6d7b ldr r3, [r7, #84] ; 0x54 + 8045586: 62da str r2, [r3, #44] ; 0x2c LV_ASSERT_MALLOC(ta->pwd_tmp); - 804561c: 6d7b ldr r3, [r7, #84] ; 0x54 - 804561e: 6adb ldr r3, [r3, #44] ; 0x2c - 8045620: 2b00 cmp r3, #0 - 8045622: d100 bne.n 8045626 - 8045624: e7fe b.n 8045624 + 8045588: 6d7b ldr r3, [r7, #84] ; 0x54 + 804558a: 6adb ldr r3, [r3, #44] ; 0x2c + 804558c: 2b00 cmp r3, #0 + 804558e: d100 bne.n 8045592 + 8045590: e7fe b.n 8045590 if(ta->pwd_tmp == NULL) return; - 8045626: 6d7b ldr r3, [r7, #84] ; 0x54 - 8045628: 6adb ldr r3, [r3, #44] ; 0x2c - 804562a: 2b00 cmp r3, #0 - 804562c: d045 beq.n 80456ba + 8045592: 6d7b ldr r3, [r7, #84] ; 0x54 + 8045594: 6adb ldr r3, [r3, #44] ; 0x2c + 8045596: 2b00 cmp r3, #0 + 8045598: d045 beq.n 8045626 strcpy(ta->pwd_tmp, txt); - 804562e: 6d7b ldr r3, [r7, #84] ; 0x54 - 8045630: 6adb ldr r3, [r3, #44] ; 0x2c - 8045632: 6839 ldr r1, [r7, #0] - 8045634: 4618 mov r0, r3 - 8045636: f001 fac5 bl 8046bc4 + 804559a: 6d7b ldr r3, [r7, #84] ; 0x54 + 804559c: 6adb ldr r3, [r3, #44] ; 0x2c + 804559e: 6839 ldr r1, [r7, #0] + 80455a0: 4618 mov r0, r3 + 80455a2: f001 fac5 bl 8046b30 /*Auto hide characters*/ if(ta->pwd_show_time == 0) { - 804563a: 6d7b ldr r3, [r7, #84] ; 0x54 - 804563c: 8f1b ldrh r3, [r3, #56] ; 0x38 - 804563e: 2b00 cmp r3, #0 - 8045640: d103 bne.n 804564a + 80455a6: 6d7b ldr r3, [r7, #84] ; 0x54 + 80455a8: 8f1b ldrh r3, [r3, #56] ; 0x38 + 80455aa: 2b00 cmp r3, #0 + 80455ac: d103 bne.n 80455b6 pwd_char_hider(obj); - 8045642: 6878 ldr r0, [r7, #4] - 8045644: f000 fc9c bl 8045f80 - 8045648: e031 b.n 80456ae + 80455ae: 6878 ldr r0, [r7, #4] + 80455b0: f000 fc9c bl 8045eec + 80455b4: e031 b.n 804561a } else { lv_anim_t a; lv_anim_init(&a); - 804564a: f107 0308 add.w r3, r7, #8 - 804564e: 4618 mov r0, r3 - 8045650: f7eb f8fe bl 8030850 + 80455b6: f107 0308 add.w r3, r7, #8 + 80455ba: 4618 mov r0, r3 + 80455bc: f7eb f8fe bl 80307bc lv_anim_set_var(&a, ta); - 8045654: f107 0308 add.w r3, r7, #8 - 8045658: 6d79 ldr r1, [r7, #84] ; 0x54 - 804565a: 4618 mov r0, r3 - 804565c: f7ff fbcd bl 8044dfa + 80455c0: f107 0308 add.w r3, r7, #8 + 80455c4: 6d79 ldr r1, [r7, #84] ; 0x54 + 80455c6: 4618 mov r0, r3 + 80455c8: f7ff fbcd bl 8044d66 lv_anim_set_exec_cb(&a, pwd_char_hider_anim); - 8045660: f107 0308 add.w r3, r7, #8 - 8045664: 491a ldr r1, [pc, #104] ; (80456d0 ) - 8045666: 4618 mov r0, r3 - 8045668: f7ff fbd4 bl 8044e14 + 80455cc: f107 0308 add.w r3, r7, #8 + 80455d0: 491a ldr r1, [pc, #104] ; (804563c ) + 80455d2: 4618 mov r0, r3 + 80455d4: f7ff fbd4 bl 8044d80 lv_anim_set_time(&a, ta->pwd_show_time); - 804566c: 6d7b ldr r3, [r7, #84] ; 0x54 - 804566e: 8f1b ldrh r3, [r3, #56] ; 0x38 - 8045670: 461a mov r2, r3 - 8045672: f107 0308 add.w r3, r7, #8 - 8045676: 4611 mov r1, r2 - 8045678: 4618 mov r0, r3 - 804567a: f7ff fbd8 bl 8044e2e + 80455d8: 6d7b ldr r3, [r7, #84] ; 0x54 + 80455da: 8f1b ldrh r3, [r3, #56] ; 0x38 + 80455dc: 461a mov r2, r3 + 80455de: f107 0308 add.w r3, r7, #8 + 80455e2: 4611 mov r1, r2 + 80455e4: 4618 mov r0, r3 + 80455e6: f7ff fbd8 bl 8044d9a lv_anim_set_values(&a, 0, 1); - 804567e: f107 0308 add.w r3, r7, #8 - 8045682: 2201 movs r2, #1 - 8045684: 2100 movs r1, #0 - 8045686: 4618 mov r0, r3 - 8045688: f7ff fbde bl 8044e48 + 80455ea: f107 0308 add.w r3, r7, #8 + 80455ee: 2201 movs r2, #1 + 80455f0: 2100 movs r1, #0 + 80455f2: 4618 mov r0, r3 + 80455f4: f7ff fbde bl 8044db4 lv_anim_set_path_cb(&a, lv_anim_path_step); - 804568c: f107 0308 add.w r3, r7, #8 - 8045690: 4910 ldr r1, [pc, #64] ; (80456d4 ) - 8045692: 4618 mov r0, r3 - 8045694: f7ff fbec bl 8044e70 + 80455f8: f107 0308 add.w r3, r7, #8 + 80455fc: 4910 ldr r1, [pc, #64] ; (8045640 ) + 80455fe: 4618 mov r0, r3 + 8045600: f7ff fbec bl 8044ddc lv_anim_set_ready_cb(&a, pwd_char_hider_anim_ready); - 8045698: f107 0308 add.w r3, r7, #8 - 804569c: 490e ldr r1, [pc, #56] ; (80456d8 ) - 804569e: 4618 mov r0, r3 - 80456a0: f7ff fbf3 bl 8044e8a + 8045604: f107 0308 add.w r3, r7, #8 + 8045608: 490e ldr r1, [pc, #56] ; (8045644 ) + 804560a: 4618 mov r0, r3 + 804560c: f7ff fbf3 bl 8044df6 lv_anim_start(&a); - 80456a4: f107 0308 add.w r3, r7, #8 - 80456a8: 4618 mov r0, r3 - 80456aa: f7eb f8f7 bl 803089c + 8045610: f107 0308 add.w r3, r7, #8 + 8045614: 4618 mov r0, r3 + 8045616: f7eb f8f7 bl 8030808 } } lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - 80456ae: 2200 movs r2, #0 - 80456b0: 211c movs r1, #28 - 80456b2: 6878 ldr r0, [r7, #4] - 80456b4: f7bc fee4 bl 8002480 - 80456b8: e000 b.n 80456bc + 804561a: 2200 movs r2, #0 + 804561c: 211c movs r1, #28 + 804561e: 6878 ldr r0, [r7, #4] + 8045620: f7bc fef8 bl 8002414 + 8045624: e000 b.n 8045628 if(ta->pwd_tmp == NULL) return; - 80456ba: bf00 nop + 8045626: bf00 nop } - 80456bc: 375c adds r7, #92 ; 0x5c - 80456be: 46bd mov sp, r7 - 80456c0: bd90 pop {r4, r7, pc} - 80456c2: bf00 nop - 80456c4: 080471f0 .word 0x080471f0 - 80456c8: 200000ec .word 0x200000ec - 80456cc: 200000e8 .word 0x200000e8 - 80456d0: 08045f51 .word 0x08045f51 - 80456d4: 08030bab .word 0x08030bab - 80456d8: 08045f65 .word 0x08045f65 + 8045628: 375c adds r7, #92 ; 0x5c + 804562a: 46bd mov sp, r7 + 804562c: bd90 pop {r4, r7, pc} + 804562e: bf00 nop + 8045630: 08047148 .word 0x08047148 + 8045634: 200000ec .word 0x200000ec + 8045638: 200000e8 .word 0x200000e8 + 804563c: 08045ebd .word 0x08045ebd + 8045640: 08030b17 .word 0x08030b17 + 8045644: 08045ed1 .word 0x08045ed1 -080456dc : +08045648 : lv_obj_invalidate(obj); } void lv_textarea_set_cursor_pos(lv_obj_t * obj, int32_t pos) { - 80456dc: b590 push {r4, r7, lr} - 80456de: b089 sub sp, #36 ; 0x24 - 80456e0: af00 add r7, sp, #0 - 80456e2: 6078 str r0, [r7, #4] - 80456e4: 6039 str r1, [r7, #0] + 8045648: b590 push {r4, r7, lr} + 804564a: b089 sub sp, #36 ; 0x24 + 804564c: af00 add r7, sp, #0 + 804564e: 6078 str r0, [r7, #4] + 8045650: 6039 str r1, [r7, #0] LV_ASSERT_OBJ(obj, MY_CLASS); lv_textarea_t * ta = (lv_textarea_t *)obj; - 80456e6: 687b ldr r3, [r7, #4] - 80456e8: 61fb str r3, [r7, #28] + 8045652: 687b ldr r3, [r7, #4] + 8045654: 61fb str r3, [r7, #28] if((uint32_t)ta->cursor.pos == (uint32_t)pos) return; - 80456ea: 69fb ldr r3, [r7, #28] - 80456ec: 6c1a ldr r2, [r3, #64] ; 0x40 - 80456ee: 683b ldr r3, [r7, #0] - 80456f0: 429a cmp r2, r3 - 80456f2: f000 80a4 beq.w 804583e + 8045656: 69fb ldr r3, [r7, #28] + 8045658: 6c1a ldr r2, [r3, #64] ; 0x40 + 804565a: 683b ldr r3, [r7, #0] + 804565c: 429a cmp r2, r3 + 804565e: f000 80a4 beq.w 80457aa uint32_t len = _lv_txt_get_encoded_length(lv_label_get_text(ta->label)); - 80456f6: 4b54 ldr r3, [pc, #336] ; (8045848 ) - 80456f8: 681c ldr r4, [r3, #0] - 80456fa: 69fb ldr r3, [r7, #28] - 80456fc: 6a5b ldr r3, [r3, #36] ; 0x24 - 80456fe: 4618 mov r0, r3 - 8045700: f7f9 fc60 bl 803efc4 - 8045704: 4603 mov r3, r0 - 8045706: 4618 mov r0, r3 - 8045708: 47a0 blx r4 - 804570a: 61b8 str r0, [r7, #24] + 8045662: 4b54 ldr r3, [pc, #336] ; (80457b4 ) + 8045664: 681c ldr r4, [r3, #0] + 8045666: 69fb ldr r3, [r7, #28] + 8045668: 6a5b ldr r3, [r3, #36] ; 0x24 + 804566a: 4618 mov r0, r3 + 804566c: f7f9 fc60 bl 803ef30 + 8045670: 4603 mov r3, r0 + 8045672: 4618 mov r0, r3 + 8045674: 47a0 blx r4 + 8045676: 61b8 str r0, [r7, #24] if(pos < 0) pos = len + pos; - 804570c: 683b ldr r3, [r7, #0] - 804570e: 2b00 cmp r3, #0 - 8045710: da03 bge.n 804571a - 8045712: 683a ldr r2, [r7, #0] - 8045714: 69bb ldr r3, [r7, #24] - 8045716: 4413 add r3, r2 - 8045718: 603b str r3, [r7, #0] + 8045678: 683b ldr r3, [r7, #0] + 804567a: 2b00 cmp r3, #0 + 804567c: da03 bge.n 8045686 + 804567e: 683a ldr r2, [r7, #0] + 8045680: 69bb ldr r3, [r7, #24] + 8045682: 4413 add r3, r2 + 8045684: 603b str r3, [r7, #0] if(pos > (int32_t)len || pos == LV_TEXTAREA_CURSOR_LAST) pos = len; - 804571a: 69bb ldr r3, [r7, #24] - 804571c: 683a ldr r2, [r7, #0] - 804571e: 429a cmp r2, r3 - 8045720: dc04 bgt.n 804572c - 8045722: 683b ldr r3, [r7, #0] - 8045724: f647 72ff movw r2, #32767 ; 0x7fff - 8045728: 4293 cmp r3, r2 - 804572a: d101 bne.n 8045730 - 804572c: 69bb ldr r3, [r7, #24] - 804572e: 603b str r3, [r7, #0] + 8045686: 69bb ldr r3, [r7, #24] + 8045688: 683a ldr r2, [r7, #0] + 804568a: 429a cmp r2, r3 + 804568c: dc04 bgt.n 8045698 + 804568e: 683b ldr r3, [r7, #0] + 8045690: f647 72ff movw r2, #32767 ; 0x7fff + 8045694: 4293 cmp r3, r2 + 8045696: d101 bne.n 804569c + 8045698: 69bb ldr r3, [r7, #24] + 804569a: 603b str r3, [r7, #0] ta->cursor.pos = pos; - 8045730: 683a ldr r2, [r7, #0] - 8045732: 69fb ldr r3, [r7, #28] - 8045734: 641a str r2, [r3, #64] ; 0x40 + 804569c: 683a ldr r2, [r7, #0] + 804569e: 69fb ldr r3, [r7, #28] + 80456a0: 641a str r2, [r3, #64] ; 0x40 /*Position the label to make the cursor visible*/ lv_obj_update_layout(obj); - 8045736: 6878 ldr r0, [r7, #4] - 8045738: f7c4 f900 bl 800993c + 80456a2: 6878 ldr r0, [r7, #4] + 80456a4: f7c4 f914 bl 80098d0 lv_point_t cur_pos; const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 804573c: 2100 movs r1, #0 - 804573e: 6878 ldr r0, [r7, #4] - 8045740: f7ff fc3c bl 8044fbc - 8045744: 6178 str r0, [r7, #20] + 80456a8: 2100 movs r1, #0 + 80456aa: 6878 ldr r0, [r7, #4] + 80456ac: f7ff fc3c bl 8044f28 + 80456b0: 6178 str r0, [r7, #20] lv_label_get_letter_pos(ta->label, pos, &cur_pos); - 8045746: 69fb ldr r3, [r7, #28] - 8045748: 6a5b ldr r3, [r3, #36] ; 0x24 - 804574a: 6839 ldr r1, [r7, #0] - 804574c: f107 0208 add.w r2, r7, #8 - 8045750: 4618 mov r0, r3 - 8045752: f7f9 fc45 bl 803efe0 + 80456b2: 69fb ldr r3, [r7, #28] + 80456b4: 6a5b ldr r3, [r3, #36] ; 0x24 + 80456b6: 6839 ldr r1, [r7, #0] + 80456b8: f107 0208 add.w r2, r7, #8 + 80456bc: 4618 mov r0, r3 + 80456be: f7f9 fc45 bl 803ef4c /*The text area needs to have it's final size to see if the cursor is out of the area or not*/ /*Check the top*/ lv_coord_t font_h = lv_font_get_line_height(font); - 8045756: 6978 ldr r0, [r7, #20] - 8045758: f7ff fb43 bl 8044de2 - 804575c: 4603 mov r3, r0 - 804575e: 827b strh r3, [r7, #18] + 80456c2: 6978 ldr r0, [r7, #20] + 80456c4: f7ff fb43 bl 8044d4e + 80456c8: 4603 mov r3, r0 + 80456ca: 827b strh r3, [r7, #18] if(cur_pos.y < lv_obj_get_scroll_top(obj)) { - 8045760: f9b7 400a ldrsh.w r4, [r7, #10] - 8045764: 6878 ldr r0, [r7, #4] - 8045766: f7c6 f931 bl 800b9cc - 804576a: 4603 mov r3, r0 - 804576c: 429c cmp r4, r3 - 804576e: da06 bge.n 804577e + 80456cc: f9b7 400a ldrsh.w r4, [r7, #10] + 80456d0: 6878 ldr r0, [r7, #4] + 80456d2: f7c6 f945 bl 800b960 + 80456d6: 4603 mov r3, r0 + 80456d8: 429c cmp r4, r3 + 80456da: da06 bge.n 80456ea lv_obj_scroll_to_y(obj, cur_pos.y, LV_ANIM_ON); - 8045770: f9b7 300a ldrsh.w r3, [r7, #10] - 8045774: 2201 movs r2, #1 - 8045776: 4619 mov r1, r3 - 8045778: 6878 ldr r0, [r7, #4] - 804577a: f7c6 fd67 bl 800c24c + 80456dc: f9b7 300a ldrsh.w r3, [r7, #10] + 80456e0: 2201 movs r2, #1 + 80456e2: 4619 mov r1, r3 + 80456e4: 6878 ldr r0, [r7, #4] + 80456e6: f7c6 fd7b bl 800c1e0 } /*Check the bottom*/ lv_coord_t h = lv_obj_get_content_height(obj); - 804577e: 6878 ldr r0, [r7, #4] - 8045780: f7c4 fd29 bl 800a1d6 - 8045784: 4603 mov r3, r0 - 8045786: 823b strh r3, [r7, #16] + 80456ea: 6878 ldr r0, [r7, #4] + 80456ec: f7c4 fd3d bl 800a16a + 80456f0: 4603 mov r3, r0 + 80456f2: 823b strh r3, [r7, #16] if(cur_pos.y + font_h - lv_obj_get_scroll_top(obj) > h) { - 8045788: f9b7 300a ldrsh.w r3, [r7, #10] - 804578c: 461a mov r2, r3 - 804578e: f9b7 3012 ldrsh.w r3, [r7, #18] - 8045792: 18d4 adds r4, r2, r3 - 8045794: 6878 ldr r0, [r7, #4] - 8045796: f7c6 f919 bl 800b9cc - 804579a: 4603 mov r3, r0 - 804579c: 1ae2 subs r2, r4, r3 - 804579e: f9b7 3010 ldrsh.w r3, [r7, #16] - 80457a2: 429a cmp r2, r3 - 80457a4: dd0e ble.n 80457c4 + 80456f4: f9b7 300a ldrsh.w r3, [r7, #10] + 80456f8: 461a mov r2, r3 + 80456fa: f9b7 3012 ldrsh.w r3, [r7, #18] + 80456fe: 18d4 adds r4, r2, r3 + 8045700: 6878 ldr r0, [r7, #4] + 8045702: f7c6 f92d bl 800b960 + 8045706: 4603 mov r3, r0 + 8045708: 1ae2 subs r2, r4, r3 + 804570a: f9b7 3010 ldrsh.w r3, [r7, #16] + 804570e: 429a cmp r2, r3 + 8045710: dd0e ble.n 8045730 lv_obj_scroll_to_y(obj, cur_pos.y - h + font_h, LV_ANIM_ON); - 80457a6: f9b7 300a ldrsh.w r3, [r7, #10] - 80457aa: b29a uxth r2, r3 - 80457ac: 8a3b ldrh r3, [r7, #16] - 80457ae: 1ad3 subs r3, r2, r3 - 80457b0: b29a uxth r2, r3 - 80457b2: 8a7b ldrh r3, [r7, #18] - 80457b4: 4413 add r3, r2 - 80457b6: b29b uxth r3, r3 - 80457b8: b21b sxth r3, r3 - 80457ba: 2201 movs r2, #1 - 80457bc: 4619 mov r1, r3 - 80457be: 6878 ldr r0, [r7, #4] - 80457c0: f7c6 fd44 bl 800c24c + 8045712: f9b7 300a ldrsh.w r3, [r7, #10] + 8045716: b29a uxth r2, r3 + 8045718: 8a3b ldrh r3, [r7, #16] + 804571a: 1ad3 subs r3, r2, r3 + 804571c: b29a uxth r2, r3 + 804571e: 8a7b ldrh r3, [r7, #18] + 8045720: 4413 add r3, r2 + 8045722: b29b uxth r3, r3 + 8045724: b21b sxth r3, r3 + 8045726: 2201 movs r2, #1 + 8045728: 4619 mov r1, r3 + 804572a: 6878 ldr r0, [r7, #4] + 804572c: f7c6 fd58 bl 800c1e0 } /*Check the left*/ if(cur_pos.x < lv_obj_get_scroll_left(obj)) { - 80457c4: f9b7 4008 ldrsh.w r4, [r7, #8] - 80457c8: 6878 ldr r0, [r7, #4] - 80457ca: f7c6 f99d bl 800bb08 - 80457ce: 4603 mov r3, r0 - 80457d0: 429c cmp r4, r3 - 80457d2: da06 bge.n 80457e2 + 8045730: f9b7 4008 ldrsh.w r4, [r7, #8] + 8045734: 6878 ldr r0, [r7, #4] + 8045736: f7c6 f9b1 bl 800ba9c + 804573a: 4603 mov r3, r0 + 804573c: 429c cmp r4, r3 + 804573e: da06 bge.n 804574e lv_obj_scroll_to_x(obj, cur_pos.x, LV_ANIM_ON); - 80457d4: f9b7 3008 ldrsh.w r3, [r7, #8] - 80457d8: 2201 movs r2, #1 - 80457da: 4619 mov r1, r3 - 80457dc: 6878 ldr r0, [r7, #4] - 80457de: f7c6 fd11 bl 800c204 + 8045740: f9b7 3008 ldrsh.w r3, [r7, #8] + 8045744: 2201 movs r2, #1 + 8045746: 4619 mov r1, r3 + 8045748: 6878 ldr r0, [r7, #4] + 804574a: f7c6 fd25 bl 800c198 } /*Check the right*/ lv_coord_t w = lv_obj_get_content_width(obj); - 80457e2: 6878 ldr r0, [r7, #4] - 80457e4: f7c4 fccc bl 800a180 - 80457e8: 4603 mov r3, r0 - 80457ea: 81fb strh r3, [r7, #14] + 804574e: 6878 ldr r0, [r7, #4] + 8045750: f7c4 fce0 bl 800a114 + 8045754: 4603 mov r3, r0 + 8045756: 81fb strh r3, [r7, #14] if(cur_pos.x + font_h - lv_obj_get_scroll_left(obj) > w) { - 80457ec: f9b7 3008 ldrsh.w r3, [r7, #8] - 80457f0: 461a mov r2, r3 - 80457f2: f9b7 3012 ldrsh.w r3, [r7, #18] - 80457f6: 18d4 adds r4, r2, r3 - 80457f8: 6878 ldr r0, [r7, #4] - 80457fa: f7c6 f985 bl 800bb08 - 80457fe: 4603 mov r3, r0 - 8045800: 1ae2 subs r2, r4, r3 - 8045802: f9b7 300e ldrsh.w r3, [r7, #14] - 8045806: 429a cmp r2, r3 - 8045808: dd0e ble.n 8045828 + 8045758: f9b7 3008 ldrsh.w r3, [r7, #8] + 804575c: 461a mov r2, r3 + 804575e: f9b7 3012 ldrsh.w r3, [r7, #18] + 8045762: 18d4 adds r4, r2, r3 + 8045764: 6878 ldr r0, [r7, #4] + 8045766: f7c6 f999 bl 800ba9c + 804576a: 4603 mov r3, r0 + 804576c: 1ae2 subs r2, r4, r3 + 804576e: f9b7 300e ldrsh.w r3, [r7, #14] + 8045772: 429a cmp r2, r3 + 8045774: dd0e ble.n 8045794 lv_obj_scroll_to_x(obj, cur_pos.x - w + font_h, LV_ANIM_ON); - 804580a: f9b7 3008 ldrsh.w r3, [r7, #8] - 804580e: b29a uxth r2, r3 - 8045810: 89fb ldrh r3, [r7, #14] - 8045812: 1ad3 subs r3, r2, r3 - 8045814: b29a uxth r2, r3 - 8045816: 8a7b ldrh r3, [r7, #18] - 8045818: 4413 add r3, r2 - 804581a: b29b uxth r3, r3 - 804581c: b21b sxth r3, r3 - 804581e: 2201 movs r2, #1 - 8045820: 4619 mov r1, r3 - 8045822: 6878 ldr r0, [r7, #4] - 8045824: f7c6 fcee bl 800c204 + 8045776: f9b7 3008 ldrsh.w r3, [r7, #8] + 804577a: b29a uxth r2, r3 + 804577c: 89fb ldrh r3, [r7, #14] + 804577e: 1ad3 subs r3, r2, r3 + 8045780: b29a uxth r2, r3 + 8045782: 8a7b ldrh r3, [r7, #18] + 8045784: 4413 add r3, r2 + 8045786: b29b uxth r3, r3 + 8045788: b21b sxth r3, r3 + 804578a: 2201 movs r2, #1 + 804578c: 4619 mov r1, r3 + 804578e: 6878 ldr r0, [r7, #4] + 8045790: f7c6 fd02 bl 800c198 } ta->cursor.valid_x = cur_pos.x; - 8045828: f9b7 2008 ldrsh.w r2, [r7, #8] - 804582c: 69fb ldr r3, [r7, #28] - 804582e: 879a strh r2, [r3, #60] ; 0x3c + 8045794: f9b7 2008 ldrsh.w r2, [r7, #8] + 8045798: 69fb ldr r3, [r7, #28] + 804579a: 879a strh r2, [r3, #60] ; 0x3c start_cursor_blink(obj); - 8045830: 6878 ldr r0, [r7, #4] - 8045832: f000 fc6f bl 8046114 + 804579c: 6878 ldr r0, [r7, #4] + 804579e: f000 fc6f bl 8046080 refr_cursor_area(obj); - 8045836: 6878 ldr r0, [r7, #4] - 8045838: f000 fcc6 bl 80461c8 - 804583c: e000 b.n 8045840 + 80457a2: 6878 ldr r0, [r7, #4] + 80457a4: f000 fcc6 bl 8046134 + 80457a8: e000 b.n 80457ac if((uint32_t)ta->cursor.pos == (uint32_t)pos) return; - 804583e: bf00 nop + 80457aa: bf00 nop } - 8045840: 3724 adds r7, #36 ; 0x24 - 8045842: 46bd mov sp, r7 - 8045844: bd90 pop {r4, r7, pc} - 8045846: bf00 nop - 8045848: 200000fc .word 0x200000fc + 80457ac: 3724 adds r7, #36 ; 0x24 + 80457ae: 46bd mov sp, r7 + 80457b0: bd90 pop {r4, r7, pc} + 80457b2: bf00 nop + 80457b4: 200000fc .word 0x200000fc -0804584c : +080457b8 : void lv_textarea_set_cursor_click_pos(lv_obj_t * obj, bool en) { - 804584c: b480 push {r7} - 804584e: b085 sub sp, #20 - 8045850: af00 add r7, sp, #0 - 8045852: 6078 str r0, [r7, #4] - 8045854: 460b mov r3, r1 - 8045856: 70fb strb r3, [r7, #3] + 80457b8: b480 push {r7} + 80457ba: b085 sub sp, #20 + 80457bc: af00 add r7, sp, #0 + 80457be: 6078 str r0, [r7, #4] + 80457c0: 460b mov r3, r1 + 80457c2: 70fb strb r3, [r7, #3] LV_ASSERT_OBJ(obj, MY_CLASS); lv_textarea_t * ta = (lv_textarea_t *)obj; - 8045858: 687b ldr r3, [r7, #4] - 804585a: 60fb str r3, [r7, #12] + 80457c4: 687b ldr r3, [r7, #4] + 80457c6: 60fb str r3, [r7, #12] ta->cursor.click_pos = en ? 1 : 0; - 804585c: 78f9 ldrb r1, [r7, #3] - 804585e: 68fa ldr r2, [r7, #12] - 8045860: f892 3050 ldrb.w r3, [r2, #80] ; 0x50 - 8045864: f361 0341 bfi r3, r1, #1, #1 - 8045868: f882 3050 strb.w r3, [r2, #80] ; 0x50 + 80457c8: 78f9 ldrb r1, [r7, #3] + 80457ca: 68fa ldr r2, [r7, #12] + 80457cc: f892 3050 ldrb.w r3, [r2, #80] ; 0x50 + 80457d0: f361 0341 bfi r3, r1, #1, #1 + 80457d4: f882 3050 strb.w r3, [r2, #80] ; 0x50 } - 804586c: bf00 nop - 804586e: 3714 adds r7, #20 - 8045870: 46bd mov sp, r7 - 8045872: bc80 pop {r7} - 8045874: 4770 bx lr + 80457d8: bf00 nop + 80457da: 3714 adds r7, #20 + 80457dc: 46bd mov sp, r7 + 80457de: bc80 pop {r7} + 80457e0: 4770 bx lr -08045876 : +080457e2 : refr_cursor_area(obj); } void lv_textarea_set_one_line(lv_obj_t * obj, bool en) { - 8045876: b590 push {r4, r7, lr} - 8045878: b085 sub sp, #20 - 804587a: af00 add r7, sp, #0 - 804587c: 6078 str r0, [r7, #4] - 804587e: 460b mov r3, r1 - 8045880: 70fb strb r3, [r7, #3] + 80457e2: b590 push {r4, r7, lr} + 80457e4: b085 sub sp, #20 + 80457e6: af00 add r7, sp, #0 + 80457e8: 6078 str r0, [r7, #4] + 80457ea: 460b mov r3, r1 + 80457ec: 70fb strb r3, [r7, #3] LV_ASSERT_OBJ(obj, MY_CLASS); lv_textarea_t * ta = (lv_textarea_t *)obj; - 8045882: 687b ldr r3, [r7, #4] - 8045884: 60fb str r3, [r7, #12] + 80457ee: 687b ldr r3, [r7, #4] + 80457f0: 60fb str r3, [r7, #12] if(ta->one_line == en) return; - 8045886: 68fb ldr r3, [r7, #12] - 8045888: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 804588c: f3c3 03c0 ubfx r3, r3, #3, #1 - 8045890: b2db uxtb r3, r3 - 8045892: 78fa ldrb r2, [r7, #3] - 8045894: 429a cmp r2, r3 - 8045896: d04c beq.n 8045932 + 80457f2: 68fb ldr r3, [r7, #12] + 80457f4: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 80457f8: f3c3 03c0 ubfx r3, r3, #3, #1 + 80457fc: b2db uxtb r3, r3 + 80457fe: 78fa ldrb r2, [r7, #3] + 8045800: 429a cmp r2, r3 + 8045802: d04c beq.n 804589e if(en) { - 8045898: 78fb ldrb r3, [r7, #3] - 804589a: 2b00 cmp r3, #0 - 804589c: d024 beq.n 80458e8 + 8045804: 78fb ldrb r3, [r7, #3] + 8045806: 2b00 cmp r3, #0 + 8045808: d024 beq.n 8045854 ta->one_line = 1; - 804589e: 68fa ldr r2, [r7, #12] - 80458a0: f892 305c ldrb.w r3, [r2, #92] ; 0x5c - 80458a4: f043 0308 orr.w r3, r3, #8 - 80458a8: f882 305c strb.w r3, [r2, #92] ; 0x5c + 804580a: 68fa ldr r2, [r7, #12] + 804580c: f892 305c ldrb.w r3, [r2, #92] ; 0x5c + 8045810: f043 0308 orr.w r3, r3, #8 + 8045814: f882 305c strb.w r3, [r2, #92] ; 0x5c lv_obj_set_width(ta->label, LV_SIZE_CONTENT); - 80458ac: 68fb ldr r3, [r7, #12] - 80458ae: 6a5b ldr r3, [r3, #36] ; 0x24 - 80458b0: f242 71d1 movw r1, #10193 ; 0x27d1 - 80458b4: 4618 mov r0, r3 - 80458b6: f7c3 ff91 bl 80097dc + 8045818: 68fb ldr r3, [r7, #12] + 804581a: 6a5b ldr r3, [r3, #36] ; 0x24 + 804581c: f242 71d1 movw r1, #10193 ; 0x27d1 + 8045820: 4618 mov r0, r3 + 8045822: f7c3 ffa5 bl 8009770 lv_obj_set_style_min_width(ta->label, lv_pct(100), 0); - 80458ba: 68fb ldr r3, [r7, #12] - 80458bc: 6a5c ldr r4, [r3, #36] ; 0x24 - 80458be: 2064 movs r0, #100 ; 0x64 - 80458c0: f7ff fa74 bl 8044dac - 80458c4: 4603 mov r3, r0 - 80458c6: 2200 movs r2, #0 - 80458c8: 4619 mov r1, r3 - 80458ca: 4620 mov r0, r4 - 80458cc: f7c9 fc9d bl 800f20a + 8045826: 68fb ldr r3, [r7, #12] + 8045828: 6a5c ldr r4, [r3, #36] ; 0x24 + 804582a: 2064 movs r0, #100 ; 0x64 + 804582c: f7ff fa74 bl 8044d18 + 8045830: 4603 mov r3, r0 + 8045832: 2200 movs r2, #0 + 8045834: 4619 mov r1, r3 + 8045836: 4620 mov r0, r4 + 8045838: f7c9 fcb1 bl 800f19e lv_obj_set_height(obj, LV_SIZE_CONTENT); - 80458d0: f242 71d1 movw r1, #10193 ; 0x27d1 - 80458d4: 6878 ldr r0, [r7, #4] - 80458d6: f7c3 ffa7 bl 8009828 + 804583c: f242 71d1 movw r1, #10193 ; 0x27d1 + 8045840: 6878 ldr r0, [r7, #4] + 8045842: f7c3 ffbb bl 80097bc lv_obj_scroll_to(obj, 0, 0, LV_ANIM_OFF); - 80458da: 2300 movs r3, #0 - 80458dc: 2200 movs r2, #0 - 80458de: 2100 movs r1, #0 - 80458e0: 6878 ldr r0, [r7, #4] - 80458e2: f7c6 fc6f bl 800c1c4 - 80458e6: e025 b.n 8045934 + 8045846: 2300 movs r3, #0 + 8045848: 2200 movs r2, #0 + 804584a: 2100 movs r1, #0 + 804584c: 6878 ldr r0, [r7, #4] + 804584e: f7c6 fc83 bl 800c158 + 8045852: e025 b.n 80458a0 } else { ta->one_line = 0; - 80458e8: 68fa ldr r2, [r7, #12] - 80458ea: f892 305c ldrb.w r3, [r2, #92] ; 0x5c - 80458ee: f36f 03c3 bfc r3, #3, #1 - 80458f2: f882 305c strb.w r3, [r2, #92] ; 0x5c + 8045854: 68fa ldr r2, [r7, #12] + 8045856: f892 305c ldrb.w r3, [r2, #92] ; 0x5c + 804585a: f36f 03c3 bfc r3, #3, #1 + 804585e: f882 305c strb.w r3, [r2, #92] ; 0x5c lv_obj_set_width(ta->label, lv_pct(100)); - 80458f6: 68fb ldr r3, [r7, #12] - 80458f8: 6a5c ldr r4, [r3, #36] ; 0x24 - 80458fa: 2064 movs r0, #100 ; 0x64 - 80458fc: f7ff fa56 bl 8044dac - 8045900: 4603 mov r3, r0 - 8045902: 4619 mov r1, r3 - 8045904: 4620 mov r0, r4 - 8045906: f7c3 ff69 bl 80097dc + 8045862: 68fb ldr r3, [r7, #12] + 8045864: 6a5c ldr r4, [r3, #36] ; 0x24 + 8045866: 2064 movs r0, #100 ; 0x64 + 8045868: f7ff fa56 bl 8044d18 + 804586c: 4603 mov r3, r0 + 804586e: 4619 mov r1, r3 + 8045870: 4620 mov r0, r4 + 8045872: f7c3 ff7d bl 8009770 lv_obj_set_style_min_width(ta->label, 0, 0); - 804590a: 68fb ldr r3, [r7, #12] - 804590c: 6a5b ldr r3, [r3, #36] ; 0x24 - 804590e: 2200 movs r2, #0 - 8045910: 2100 movs r1, #0 - 8045912: 4618 mov r0, r3 - 8045914: f7c9 fc79 bl 800f20a + 8045876: 68fb ldr r3, [r7, #12] + 8045878: 6a5b ldr r3, [r3, #36] ; 0x24 + 804587a: 2200 movs r2, #0 + 804587c: 2100 movs r1, #0 + 804587e: 4618 mov r0, r3 + 8045880: f7c9 fc8d bl 800f19e lv_obj_remove_local_style_prop(obj, LV_STYLE_HEIGHT, LV_PART_MAIN); - 8045918: 2200 movs r2, #0 - 804591a: f241 0104 movw r1, #4100 ; 0x1004 - 804591e: 6878 ldr r0, [r7, #4] - 8045920: f7c8 fb3b bl 800df9a + 8045884: 2200 movs r2, #0 + 8045886: f241 0104 movw r1, #4100 ; 0x1004 + 804588a: 6878 ldr r0, [r7, #4] + 804588c: f7c8 fb4f bl 800df2e lv_obj_scroll_to(obj, 0, 0, LV_ANIM_OFF); - 8045924: 2300 movs r3, #0 - 8045926: 2200 movs r2, #0 - 8045928: 2100 movs r1, #0 - 804592a: 6878 ldr r0, [r7, #4] - 804592c: f7c6 fc4a bl 800c1c4 - 8045930: e000 b.n 8045934 + 8045890: 2300 movs r3, #0 + 8045892: 2200 movs r2, #0 + 8045894: 2100 movs r1, #0 + 8045896: 6878 ldr r0, [r7, #4] + 8045898: f7c6 fc5e bl 800c158 + 804589c: e000 b.n 80458a0 if(ta->one_line == en) return; - 8045932: bf00 nop + 804589e: bf00 nop } } - 8045934: 3714 adds r7, #20 - 8045936: 46bd mov sp, r7 - 8045938: bd90 pop {r4, r7, pc} + 80458a0: 3714 adds r7, #20 + 80458a2: 46bd mov sp, r7 + 80458a4: bd90 pop {r4, r7, pc} -0804593a : +080458a6 : /*===================== * Getter functions *====================*/ const char * lv_textarea_get_text(const lv_obj_t * obj) { - 804593a: b580 push {r7, lr} - 804593c: b084 sub sp, #16 - 804593e: af00 add r7, sp, #0 - 8045940: 6078 str r0, [r7, #4] + 80458a6: b580 push {r7, lr} + 80458a8: b084 sub sp, #16 + 80458aa: af00 add r7, sp, #0 + 80458ac: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_textarea_t * ta = (lv_textarea_t *)obj; - 8045942: 687b ldr r3, [r7, #4] - 8045944: 60bb str r3, [r7, #8] + 80458ae: 687b ldr r3, [r7, #4] + 80458b0: 60bb str r3, [r7, #8] const char * txt; if(ta->pwd_mode == 0) { - 8045946: 68bb ldr r3, [r7, #8] - 8045948: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 804594c: f003 0304 and.w r3, r3, #4 - 8045950: b2db uxtb r3, r3 - 8045952: 2b00 cmp r3, #0 - 8045954: d106 bne.n 8045964 + 80458b2: 68bb ldr r3, [r7, #8] + 80458b4: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 80458b8: f003 0304 and.w r3, r3, #4 + 80458bc: b2db uxtb r3, r3 + 80458be: 2b00 cmp r3, #0 + 80458c0: d106 bne.n 80458d0 txt = lv_label_get_text(ta->label); - 8045956: 68bb ldr r3, [r7, #8] - 8045958: 6a5b ldr r3, [r3, #36] ; 0x24 - 804595a: 4618 mov r0, r3 - 804595c: f7f9 fb32 bl 803efc4 - 8045960: 60f8 str r0, [r7, #12] - 8045962: e002 b.n 804596a + 80458c2: 68bb ldr r3, [r7, #8] + 80458c4: 6a5b ldr r3, [r3, #36] ; 0x24 + 80458c6: 4618 mov r0, r3 + 80458c8: f7f9 fb32 bl 803ef30 + 80458cc: 60f8 str r0, [r7, #12] + 80458ce: e002 b.n 80458d6 } else { txt = ta->pwd_tmp; - 8045964: 68bb ldr r3, [r7, #8] - 8045966: 6adb ldr r3, [r3, #44] ; 0x2c - 8045968: 60fb str r3, [r7, #12] + 80458d0: 68bb ldr r3, [r7, #8] + 80458d2: 6adb ldr r3, [r3, #44] ; 0x2c + 80458d4: 60fb str r3, [r7, #12] } return txt; - 804596a: 68fb ldr r3, [r7, #12] + 80458d6: 68fb ldr r3, [r7, #12] } - 804596c: 4618 mov r0, r3 - 804596e: 3710 adds r7, #16 - 8045970: 46bd mov sp, r7 - 8045972: bd80 pop {r7, pc} + 80458d8: 4618 mov r0, r3 + 80458da: 3710 adds r7, #16 + 80458dc: 46bd mov sp, r7 + 80458de: bd80 pop {r7, pc} -08045974 : +080458e0 : lv_textarea_t * ta = (lv_textarea_t *)obj; return ta->label; } uint32_t lv_textarea_get_cursor_pos(const lv_obj_t * obj) { - 8045974: b480 push {r7} - 8045976: b085 sub sp, #20 - 8045978: af00 add r7, sp, #0 - 804597a: 6078 str r0, [r7, #4] + 80458e0: b480 push {r7} + 80458e2: b085 sub sp, #20 + 80458e4: af00 add r7, sp, #0 + 80458e6: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_textarea_t * ta = (lv_textarea_t *)obj; - 804597c: 687b ldr r3, [r7, #4] - 804597e: 60fb str r3, [r7, #12] + 80458e8: 687b ldr r3, [r7, #4] + 80458ea: 60fb str r3, [r7, #12] return ta->cursor.pos; - 8045980: 68fb ldr r3, [r7, #12] - 8045982: 6c1b ldr r3, [r3, #64] ; 0x40 + 80458ec: 68fb ldr r3, [r7, #12] + 80458ee: 6c1b ldr r3, [r3, #64] ; 0x40 } - 8045984: 4618 mov r0, r3 - 8045986: 3714 adds r7, #20 - 8045988: 46bd mov sp, r7 - 804598a: bc80 pop {r7} - 804598c: 4770 bx lr + 80458f0: 4618 mov r0, r3 + 80458f2: 3714 adds r7, #20 + 80458f4: 46bd mov sp, r7 + 80458f6: bc80 pop {r7} + 80458f8: 4770 bx lr -0804598e : +080458fa : lv_textarea_t * ta = (lv_textarea_t *)obj; return ta->pwd_mode == 0 ? false : true; } bool lv_textarea_get_one_line(const lv_obj_t * obj) { - 804598e: b480 push {r7} - 8045990: b085 sub sp, #20 - 8045992: af00 add r7, sp, #0 - 8045994: 6078 str r0, [r7, #4] + 80458fa: b480 push {r7} + 80458fc: b085 sub sp, #20 + 80458fe: af00 add r7, sp, #0 + 8045900: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_textarea_t * ta = (lv_textarea_t *)obj; - 8045996: 687b ldr r3, [r7, #4] - 8045998: 60fb str r3, [r7, #12] + 8045902: 687b ldr r3, [r7, #4] + 8045904: 60fb str r3, [r7, #12] return ta->one_line == 0 ? false : true; - 804599a: 68fb ldr r3, [r7, #12] - 804599c: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 80459a0: f003 0308 and.w r3, r3, #8 - 80459a4: b2db uxtb r3, r3 - 80459a6: 2b00 cmp r3, #0 - 80459a8: bf14 ite ne - 80459aa: 2301 movne r3, #1 - 80459ac: 2300 moveq r3, #0 - 80459ae: b2db uxtb r3, r3 + 8045906: 68fb ldr r3, [r7, #12] + 8045908: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 804590c: f003 0308 and.w r3, r3, #8 + 8045910: b2db uxtb r3, r3 + 8045912: 2b00 cmp r3, #0 + 8045914: bf14 ite ne + 8045916: 2301 movne r3, #1 + 8045918: 2300 moveq r3, #0 + 804591a: b2db uxtb r3, r3 } - 80459b0: 4618 mov r0, r3 - 80459b2: 3714 adds r7, #20 - 80459b4: 46bd mov sp, r7 - 80459b6: bc80 pop {r7} - 80459b8: 4770 bx lr + 804591c: 4618 mov r0, r3 + 804591e: 3714 adds r7, #20 + 8045920: 46bd mov sp, r7 + 8045922: bc80 pop {r7} + 8045924: 4770 bx lr -080459ba : +08045926 : const char * lv_textarea_get_accepted_chars(lv_obj_t * obj) { - 80459ba: b480 push {r7} - 80459bc: b085 sub sp, #20 - 80459be: af00 add r7, sp, #0 - 80459c0: 6078 str r0, [r7, #4] + 8045926: b480 push {r7} + 8045928: b085 sub sp, #20 + 804592a: af00 add r7, sp, #0 + 804592c: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_textarea_t * ta = (lv_textarea_t *)obj; - 80459c2: 687b ldr r3, [r7, #4] - 80459c4: 60fb str r3, [r7, #12] + 804592e: 687b ldr r3, [r7, #4] + 8045930: 60fb str r3, [r7, #12] return ta->accepted_chars; - 80459c6: 68fb ldr r3, [r7, #12] - 80459c8: 6b1b ldr r3, [r3, #48] ; 0x30 + 8045932: 68fb ldr r3, [r7, #12] + 8045934: 6b1b ldr r3, [r3, #48] ; 0x30 } - 80459ca: 4618 mov r0, r3 - 80459cc: 3714 adds r7, #20 - 80459ce: 46bd mov sp, r7 - 80459d0: bc80 pop {r7} - 80459d2: 4770 bx lr + 8045936: 4618 mov r0, r3 + 8045938: 3714 adds r7, #20 + 804593a: 46bd mov sp, r7 + 804593c: bc80 pop {r7} + 804593e: 4770 bx lr -080459d4 : +08045940 : uint32_t lv_textarea_get_max_length(lv_obj_t * obj) { - 80459d4: b480 push {r7} - 80459d6: b085 sub sp, #20 - 80459d8: af00 add r7, sp, #0 - 80459da: 6078 str r0, [r7, #4] + 8045940: b480 push {r7} + 8045942: b085 sub sp, #20 + 8045944: af00 add r7, sp, #0 + 8045946: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_textarea_t * ta = (lv_textarea_t *)obj; - 80459dc: 687b ldr r3, [r7, #4] - 80459de: 60fb str r3, [r7, #12] + 8045948: 687b ldr r3, [r7, #4] + 804594a: 60fb str r3, [r7, #12] return ta->max_length; - 80459e0: 68fb ldr r3, [r7, #12] - 80459e2: 6b5b ldr r3, [r3, #52] ; 0x34 + 804594c: 68fb ldr r3, [r7, #12] + 804594e: 6b5b ldr r3, [r3, #52] ; 0x34 } - 80459e4: 4618 mov r0, r3 - 80459e6: 3714 adds r7, #20 - 80459e8: 46bd mov sp, r7 - 80459ea: bc80 pop {r7} - 80459ec: 4770 bx lr + 8045950: 4618 mov r0, r3 + 8045952: 3714 adds r7, #20 + 8045954: 46bd mov sp, r7 + 8045956: bc80 pop {r7} + 8045958: 4770 bx lr -080459ee : +0804595a : /*===================== * Other functions *====================*/ void lv_textarea_clear_selection(lv_obj_t * obj) { - 80459ee: b580 push {r7, lr} - 80459f0: b084 sub sp, #16 - 80459f2: af00 add r7, sp, #0 - 80459f4: 6078 str r0, [r7, #4] + 804595a: b580 push {r7, lr} + 804595c: b084 sub sp, #16 + 804595e: af00 add r7, sp, #0 + 8045960: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); #if LV_LABEL_TEXT_SELECTION lv_textarea_t * ta = (lv_textarea_t *)obj; - 80459f6: 687b ldr r3, [r7, #4] - 80459f8: 60fb str r3, [r7, #12] + 8045962: 687b ldr r3, [r7, #4] + 8045964: 60fb str r3, [r7, #12] if(lv_label_get_text_selection_start(ta->label) != LV_DRAW_LABEL_NO_TXT_SEL || - 80459fa: 68fb ldr r3, [r7, #12] - 80459fc: 6a5b ldr r3, [r3, #36] ; 0x24 - 80459fe: 4618 mov r0, r3 - 8045a00: f7f9 ffad bl 803f95e - 8045a04: 4603 mov r3, r0 - 8045a06: f64f 72ff movw r2, #65535 ; 0xffff - 8045a0a: 4293 cmp r3, r2 - 8045a0c: d109 bne.n 8045a22 + 8045966: 68fb ldr r3, [r7, #12] + 8045968: 6a5b ldr r3, [r3, #36] ; 0x24 + 804596a: 4618 mov r0, r3 + 804596c: f7f9 ffad bl 803f8ca + 8045970: 4603 mov r3, r0 + 8045972: f64f 72ff movw r2, #65535 ; 0xffff + 8045976: 4293 cmp r3, r2 + 8045978: d109 bne.n 804598e lv_label_get_text_selection_end(ta->label) != LV_DRAW_LABEL_NO_TXT_SEL) { - 8045a0e: 68fb ldr r3, [r7, #12] - 8045a10: 6a5b ldr r3, [r3, #36] ; 0x24 - 8045a12: 4618 mov r0, r3 - 8045a14: f7f9 ffb0 bl 803f978 - 8045a18: 4603 mov r3, r0 + 804597a: 68fb ldr r3, [r7, #12] + 804597c: 6a5b ldr r3, [r3, #36] ; 0x24 + 804597e: 4618 mov r0, r3 + 8045980: f7f9 ffb0 bl 803f8e4 + 8045984: 4603 mov r3, r0 if(lv_label_get_text_selection_start(ta->label) != LV_DRAW_LABEL_NO_TXT_SEL || - 8045a1a: f64f 72ff movw r2, #65535 ; 0xffff - 8045a1e: 4293 cmp r3, r2 - 8045a20: d00d beq.n 8045a3e + 8045986: f64f 72ff movw r2, #65535 ; 0xffff + 804598a: 4293 cmp r3, r2 + 804598c: d00d beq.n 80459aa lv_label_set_text_sel_start(ta->label, LV_DRAW_LABEL_NO_TXT_SEL); - 8045a22: 68fb ldr r3, [r7, #12] - 8045a24: 6a5b ldr r3, [r3, #36] ; 0x24 - 8045a26: f64f 71ff movw r1, #65535 ; 0xffff - 8045a2a: 4618 mov r0, r3 - 8045a2c: f7f9 faa8 bl 803ef80 + 804598e: 68fb ldr r3, [r7, #12] + 8045990: 6a5b ldr r3, [r3, #36] ; 0x24 + 8045992: f64f 71ff movw r1, #65535 ; 0xffff + 8045996: 4618 mov r0, r3 + 8045998: f7f9 faa8 bl 803eeec lv_label_set_text_sel_end(ta->label, LV_DRAW_LABEL_NO_TXT_SEL); - 8045a30: 68fb ldr r3, [r7, #12] - 8045a32: 6a5b ldr r3, [r3, #36] ; 0x24 - 8045a34: f64f 71ff movw r1, #65535 ; 0xffff - 8045a38: 4618 mov r0, r3 - 8045a3a: f7f9 fab2 bl 803efa2 + 804599c: 68fb ldr r3, [r7, #12] + 804599e: 6a5b ldr r3, [r3, #36] ; 0x24 + 80459a0: f64f 71ff movw r1, #65535 ; 0xffff + 80459a4: 4618 mov r0, r3 + 80459a6: f7f9 fab2 bl 803ef0e } #else LV_UNUSED(obj); /*Unused*/ #endif } - 8045a3e: bf00 nop - 8045a40: 3710 adds r7, #16 - 8045a42: 46bd mov sp, r7 - 8045a44: bd80 pop {r7, pc} + 80459aa: bf00 nop + 80459ac: 3710 adds r7, #16 + 80459ae: 46bd mov sp, r7 + 80459b0: bd80 pop {r7, pc} -08045a46 : +080459b2 : void lv_textarea_cursor_right(lv_obj_t * obj) { - 8045a46: b580 push {r7, lr} - 8045a48: b084 sub sp, #16 - 8045a4a: af00 add r7, sp, #0 - 8045a4c: 6078 str r0, [r7, #4] + 80459b2: b580 push {r7, lr} + 80459b4: b084 sub sp, #16 + 80459b6: af00 add r7, sp, #0 + 80459b8: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); uint32_t cp = lv_textarea_get_cursor_pos(obj); - 8045a4e: 6878 ldr r0, [r7, #4] - 8045a50: f7ff ff90 bl 8045974 - 8045a54: 60f8 str r0, [r7, #12] + 80459ba: 6878 ldr r0, [r7, #4] + 80459bc: f7ff ff90 bl 80458e0 + 80459c0: 60f8 str r0, [r7, #12] cp++; - 8045a56: 68fb ldr r3, [r7, #12] - 8045a58: 3301 adds r3, #1 - 8045a5a: 60fb str r3, [r7, #12] + 80459c2: 68fb ldr r3, [r7, #12] + 80459c4: 3301 adds r3, #1 + 80459c6: 60fb str r3, [r7, #12] lv_textarea_set_cursor_pos(obj, cp); - 8045a5c: 68fb ldr r3, [r7, #12] - 8045a5e: 4619 mov r1, r3 - 8045a60: 6878 ldr r0, [r7, #4] - 8045a62: f7ff fe3b bl 80456dc + 80459c8: 68fb ldr r3, [r7, #12] + 80459ca: 4619 mov r1, r3 + 80459cc: 6878 ldr r0, [r7, #4] + 80459ce: f7ff fe3b bl 8045648 } - 8045a66: bf00 nop - 8045a68: 3710 adds r7, #16 - 8045a6a: 46bd mov sp, r7 - 8045a6c: bd80 pop {r7, pc} + 80459d2: bf00 nop + 80459d4: 3710 adds r7, #16 + 80459d6: 46bd mov sp, r7 + 80459d8: bd80 pop {r7, pc} -08045a6e : +080459da : void lv_textarea_cursor_left(lv_obj_t * obj) { - 8045a6e: b580 push {r7, lr} - 8045a70: b084 sub sp, #16 - 8045a72: af00 add r7, sp, #0 - 8045a74: 6078 str r0, [r7, #4] + 80459da: b580 push {r7, lr} + 80459dc: b084 sub sp, #16 + 80459de: af00 add r7, sp, #0 + 80459e0: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); uint32_t cp = lv_textarea_get_cursor_pos(obj); - 8045a76: 6878 ldr r0, [r7, #4] - 8045a78: f7ff ff7c bl 8045974 - 8045a7c: 60f8 str r0, [r7, #12] + 80459e2: 6878 ldr r0, [r7, #4] + 80459e4: f7ff ff7c bl 80458e0 + 80459e8: 60f8 str r0, [r7, #12] if(cp > 0) { - 8045a7e: 68fb ldr r3, [r7, #12] - 8045a80: 2b00 cmp r3, #0 - 8045a82: d007 beq.n 8045a94 + 80459ea: 68fb ldr r3, [r7, #12] + 80459ec: 2b00 cmp r3, #0 + 80459ee: d007 beq.n 8045a00 cp--; - 8045a84: 68fb ldr r3, [r7, #12] - 8045a86: 3b01 subs r3, #1 - 8045a88: 60fb str r3, [r7, #12] + 80459f0: 68fb ldr r3, [r7, #12] + 80459f2: 3b01 subs r3, #1 + 80459f4: 60fb str r3, [r7, #12] lv_textarea_set_cursor_pos(obj, cp); - 8045a8a: 68fb ldr r3, [r7, #12] - 8045a8c: 4619 mov r1, r3 - 8045a8e: 6878 ldr r0, [r7, #4] - 8045a90: f7ff fe24 bl 80456dc + 80459f6: 68fb ldr r3, [r7, #12] + 80459f8: 4619 mov r1, r3 + 80459fa: 6878 ldr r0, [r7, #4] + 80459fc: f7ff fe24 bl 8045648 } } - 8045a94: bf00 nop - 8045a96: 3710 adds r7, #16 - 8045a98: 46bd mov sp, r7 - 8045a9a: bd80 pop {r7, pc} + 8045a00: bf00 nop + 8045a02: 3710 adds r7, #16 + 8045a04: 46bd mov sp, r7 + 8045a06: bd80 pop {r7, pc} -08045a9c : +08045a08 : void lv_textarea_cursor_down(lv_obj_t * obj) { - 8045a9c: b590 push {r4, r7, lr} - 8045a9e: b08b sub sp, #44 ; 0x2c - 8045aa0: af00 add r7, sp, #0 - 8045aa2: 6078 str r0, [r7, #4] + 8045a08: b590 push {r4, r7, lr} + 8045a0a: b08b sub sp, #44 ; 0x2c + 8045a0c: af00 add r7, sp, #0 + 8045a0e: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_textarea_t * ta = (lv_textarea_t *)obj; - 8045aa4: 687b ldr r3, [r7, #4] - 8045aa6: 627b str r3, [r7, #36] ; 0x24 + 8045a10: 687b ldr r3, [r7, #4] + 8045a12: 627b str r3, [r7, #36] ; 0x24 lv_point_t pos; /*Get the position of the current letter*/ lv_label_get_letter_pos(ta->label, lv_textarea_get_cursor_pos(obj), &pos); - 8045aa8: 6a7b ldr r3, [r7, #36] ; 0x24 - 8045aaa: 6a5c ldr r4, [r3, #36] ; 0x24 - 8045aac: 6878 ldr r0, [r7, #4] - 8045aae: f7ff ff61 bl 8045974 - 8045ab2: 4601 mov r1, r0 - 8045ab4: f107 030c add.w r3, r7, #12 - 8045ab8: 461a mov r2, r3 - 8045aba: 4620 mov r0, r4 - 8045abc: f7f9 fa90 bl 803efe0 + 8045a14: 6a7b ldr r3, [r7, #36] ; 0x24 + 8045a16: 6a5c ldr r4, [r3, #36] ; 0x24 + 8045a18: 6878 ldr r0, [r7, #4] + 8045a1a: f7ff ff61 bl 80458e0 + 8045a1e: 4601 mov r1, r0 + 8045a20: f107 030c add.w r3, r7, #12 + 8045a24: 461a mov r2, r3 + 8045a26: 4620 mov r0, r4 + 8045a28: f7f9 fa90 bl 803ef4c /*Increment the y with one line and keep the valid x*/ lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN); - 8045ac0: 2100 movs r1, #0 - 8045ac2: 6878 ldr r0, [r7, #4] - 8045ac4: f7ff fa8c bl 8044fe0 - 8045ac8: 4603 mov r3, r0 - 8045aca: 847b strh r3, [r7, #34] ; 0x22 + 8045a2c: 2100 movs r1, #0 + 8045a2e: 6878 ldr r0, [r7, #4] + 8045a30: f7ff fa8c bl 8044f4c + 8045a34: 4603 mov r3, r0 + 8045a36: 847b strh r3, [r7, #34] ; 0x22 const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 8045acc: 2100 movs r1, #0 - 8045ace: 6878 ldr r0, [r7, #4] - 8045ad0: f7ff fa74 bl 8044fbc - 8045ad4: 61f8 str r0, [r7, #28] + 8045a38: 2100 movs r1, #0 + 8045a3a: 6878 ldr r0, [r7, #4] + 8045a3c: f7ff fa74 bl 8044f28 + 8045a40: 61f8 str r0, [r7, #28] lv_coord_t font_h = lv_font_get_line_height(font); - 8045ad6: 69f8 ldr r0, [r7, #28] - 8045ad8: f7ff f983 bl 8044de2 - 8045adc: 4603 mov r3, r0 - 8045ade: 837b strh r3, [r7, #26] + 8045a42: 69f8 ldr r0, [r7, #28] + 8045a44: f7ff f983 bl 8044d4e + 8045a48: 4603 mov r3, r0 + 8045a4a: 837b strh r3, [r7, #26] pos.y += font_h + line_space + 1; - 8045ae0: f9b7 300e ldrsh.w r3, [r7, #14] - 8045ae4: b29a uxth r2, r3 - 8045ae6: 8b79 ldrh r1, [r7, #26] - 8045ae8: 8c7b ldrh r3, [r7, #34] ; 0x22 - 8045aea: 440b add r3, r1 - 8045aec: b29b uxth r3, r3 - 8045aee: 4413 add r3, r2 - 8045af0: b29b uxth r3, r3 - 8045af2: 3301 adds r3, #1 - 8045af4: b29b uxth r3, r3 - 8045af6: b21b sxth r3, r3 - 8045af8: 81fb strh r3, [r7, #14] + 8045a4c: f9b7 300e ldrsh.w r3, [r7, #14] + 8045a50: b29a uxth r2, r3 + 8045a52: 8b79 ldrh r1, [r7, #26] + 8045a54: 8c7b ldrh r3, [r7, #34] ; 0x22 + 8045a56: 440b add r3, r1 + 8045a58: b29b uxth r3, r3 + 8045a5a: 4413 add r3, r2 + 8045a5c: b29b uxth r3, r3 + 8045a5e: 3301 adds r3, #1 + 8045a60: b29b uxth r3, r3 + 8045a62: b21b sxth r3, r3 + 8045a64: 81fb strh r3, [r7, #14] pos.x = ta->cursor.valid_x; - 8045afa: 6a7b ldr r3, [r7, #36] ; 0x24 - 8045afc: f9b3 303c ldrsh.w r3, [r3, #60] ; 0x3c - 8045b00: 81bb strh r3, [r7, #12] + 8045a66: 6a7b ldr r3, [r7, #36] ; 0x24 + 8045a68: f9b3 303c ldrsh.w r3, [r3, #60] ; 0x3c + 8045a6c: 81bb strh r3, [r7, #12] /*Do not go below the last line*/ if(pos.y < lv_obj_get_height(ta->label)) { - 8045b02: f9b7 400e ldrsh.w r4, [r7, #14] - 8045b06: 6a7b ldr r3, [r7, #36] ; 0x24 - 8045b08: 6a5b ldr r3, [r3, #36] ; 0x24 - 8045b0a: 4618 mov r0, r3 - 8045b0c: f7c4 fb2a bl 800a164 - 8045b10: 4603 mov r3, r0 - 8045b12: 429c cmp r4, r3 - 8045b14: da13 bge.n 8045b3e + 8045a6e: f9b7 400e ldrsh.w r4, [r7, #14] + 8045a72: 6a7b ldr r3, [r7, #36] ; 0x24 + 8045a74: 6a5b ldr r3, [r3, #36] ; 0x24 + 8045a76: 4618 mov r0, r3 + 8045a78: f7c4 fb3e bl 800a0f8 + 8045a7c: 4603 mov r3, r0 + 8045a7e: 429c cmp r4, r3 + 8045a80: da13 bge.n 8045aaa /*Get the letter index on the new cursor position and set it*/ uint32_t new_cur_pos = lv_label_get_letter_on(ta->label, &pos); - 8045b16: 6a7b ldr r3, [r7, #36] ; 0x24 - 8045b18: 6a5b ldr r3, [r3, #36] ; 0x24 - 8045b1a: f107 020c add.w r2, r7, #12 - 8045b1e: 4611 mov r1, r2 - 8045b20: 4618 mov r0, r3 - 8045b22: f7f9 fbdb bl 803f2dc - 8045b26: 6178 str r0, [r7, #20] + 8045a82: 6a7b ldr r3, [r7, #36] ; 0x24 + 8045a84: 6a5b ldr r3, [r3, #36] ; 0x24 + 8045a86: f107 020c add.w r2, r7, #12 + 8045a8a: 4611 mov r1, r2 + 8045a8c: 4618 mov r0, r3 + 8045a8e: f7f9 fbdb bl 803f248 + 8045a92: 6178 str r0, [r7, #20] lv_coord_t cur_valid_x_tmp = ta->cursor.valid_x; /*Cursor position set overwrites the valid position*/ - 8045b28: 6a7b ldr r3, [r7, #36] ; 0x24 - 8045b2a: 8f9b ldrh r3, [r3, #60] ; 0x3c - 8045b2c: 827b strh r3, [r7, #18] + 8045a94: 6a7b ldr r3, [r7, #36] ; 0x24 + 8045a96: 8f9b ldrh r3, [r3, #60] ; 0x3c + 8045a98: 827b strh r3, [r7, #18] lv_textarea_set_cursor_pos(obj, new_cur_pos); - 8045b2e: 697b ldr r3, [r7, #20] - 8045b30: 4619 mov r1, r3 - 8045b32: 6878 ldr r0, [r7, #4] - 8045b34: f7ff fdd2 bl 80456dc + 8045a9a: 697b ldr r3, [r7, #20] + 8045a9c: 4619 mov r1, r3 + 8045a9e: 6878 ldr r0, [r7, #4] + 8045aa0: f7ff fdd2 bl 8045648 ta->cursor.valid_x = cur_valid_x_tmp; - 8045b38: 6a7b ldr r3, [r7, #36] ; 0x24 - 8045b3a: 8a7a ldrh r2, [r7, #18] - 8045b3c: 879a strh r2, [r3, #60] ; 0x3c + 8045aa4: 6a7b ldr r3, [r7, #36] ; 0x24 + 8045aa6: 8a7a ldrh r2, [r7, #18] + 8045aa8: 879a strh r2, [r3, #60] ; 0x3c } } - 8045b3e: bf00 nop - 8045b40: 372c adds r7, #44 ; 0x2c - 8045b42: 46bd mov sp, r7 - 8045b44: bd90 pop {r4, r7, pc} + 8045aaa: bf00 nop + 8045aac: 372c adds r7, #44 ; 0x2c + 8045aae: 46bd mov sp, r7 + 8045ab0: bd90 pop {r4, r7, pc} -08045b46 : +08045ab2 : void lv_textarea_cursor_up(lv_obj_t * obj) { - 8045b46: b590 push {r4, r7, lr} - 8045b48: b08b sub sp, #44 ; 0x2c - 8045b4a: af00 add r7, sp, #0 - 8045b4c: 6078 str r0, [r7, #4] + 8045ab2: b590 push {r4, r7, lr} + 8045ab4: b08b sub sp, #44 ; 0x2c + 8045ab6: af00 add r7, sp, #0 + 8045ab8: 6078 str r0, [r7, #4] LV_ASSERT_OBJ(obj, MY_CLASS); lv_textarea_t * ta = (lv_textarea_t *)obj; - 8045b4e: 687b ldr r3, [r7, #4] - 8045b50: 627b str r3, [r7, #36] ; 0x24 + 8045aba: 687b ldr r3, [r7, #4] + 8045abc: 627b str r3, [r7, #36] ; 0x24 lv_point_t pos; /*Get the position of the current letter*/ lv_label_get_letter_pos(ta->label, lv_textarea_get_cursor_pos(obj), &pos); - 8045b52: 6a7b ldr r3, [r7, #36] ; 0x24 - 8045b54: 6a5c ldr r4, [r3, #36] ; 0x24 - 8045b56: 6878 ldr r0, [r7, #4] - 8045b58: f7ff ff0c bl 8045974 - 8045b5c: 4601 mov r1, r0 - 8045b5e: f107 030c add.w r3, r7, #12 - 8045b62: 461a mov r2, r3 - 8045b64: 4620 mov r0, r4 - 8045b66: f7f9 fa3b bl 803efe0 + 8045abe: 6a7b ldr r3, [r7, #36] ; 0x24 + 8045ac0: 6a5c ldr r4, [r3, #36] ; 0x24 + 8045ac2: 6878 ldr r0, [r7, #4] + 8045ac4: f7ff ff0c bl 80458e0 + 8045ac8: 4601 mov r1, r0 + 8045aca: f107 030c add.w r3, r7, #12 + 8045ace: 461a mov r2, r3 + 8045ad0: 4620 mov r0, r4 + 8045ad2: f7f9 fa3b bl 803ef4c /*Decrement the y with one line and keep the valid x*/ lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN); - 8045b6a: 2100 movs r1, #0 - 8045b6c: 6878 ldr r0, [r7, #4] - 8045b6e: f7ff fa37 bl 8044fe0 - 8045b72: 4603 mov r3, r0 - 8045b74: 847b strh r3, [r7, #34] ; 0x22 + 8045ad6: 2100 movs r1, #0 + 8045ad8: 6878 ldr r0, [r7, #4] + 8045ada: f7ff fa37 bl 8044f4c + 8045ade: 4603 mov r3, r0 + 8045ae0: 847b strh r3, [r7, #34] ; 0x22 const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 8045b76: 2100 movs r1, #0 - 8045b78: 6878 ldr r0, [r7, #4] - 8045b7a: f7ff fa1f bl 8044fbc - 8045b7e: 61f8 str r0, [r7, #28] + 8045ae2: 2100 movs r1, #0 + 8045ae4: 6878 ldr r0, [r7, #4] + 8045ae6: f7ff fa1f bl 8044f28 + 8045aea: 61f8 str r0, [r7, #28] lv_coord_t font_h = lv_font_get_line_height(font); - 8045b80: 69f8 ldr r0, [r7, #28] - 8045b82: f7ff f92e bl 8044de2 - 8045b86: 4603 mov r3, r0 - 8045b88: 837b strh r3, [r7, #26] + 8045aec: 69f8 ldr r0, [r7, #28] + 8045aee: f7ff f92e bl 8044d4e + 8045af2: 4603 mov r3, r0 + 8045af4: 837b strh r3, [r7, #26] pos.y -= font_h + line_space - 1; - 8045b8a: f9b7 300e ldrsh.w r3, [r7, #14] - 8045b8e: b29a uxth r2, r3 - 8045b90: 8b79 ldrh r1, [r7, #26] - 8045b92: 8c7b ldrh r3, [r7, #34] ; 0x22 - 8045b94: 440b add r3, r1 - 8045b96: b29b uxth r3, r3 - 8045b98: 1ad3 subs r3, r2, r3 - 8045b9a: b29b uxth r3, r3 - 8045b9c: 3301 adds r3, #1 - 8045b9e: b29b uxth r3, r3 - 8045ba0: b21b sxth r3, r3 - 8045ba2: 81fb strh r3, [r7, #14] + 8045af6: f9b7 300e ldrsh.w r3, [r7, #14] + 8045afa: b29a uxth r2, r3 + 8045afc: 8b79 ldrh r1, [r7, #26] + 8045afe: 8c7b ldrh r3, [r7, #34] ; 0x22 + 8045b00: 440b add r3, r1 + 8045b02: b29b uxth r3, r3 + 8045b04: 1ad3 subs r3, r2, r3 + 8045b06: b29b uxth r3, r3 + 8045b08: 3301 adds r3, #1 + 8045b0a: b29b uxth r3, r3 + 8045b0c: b21b sxth r3, r3 + 8045b0e: 81fb strh r3, [r7, #14] pos.x = ta->cursor.valid_x; - 8045ba4: 6a7b ldr r3, [r7, #36] ; 0x24 - 8045ba6: f9b3 303c ldrsh.w r3, [r3, #60] ; 0x3c - 8045baa: 81bb strh r3, [r7, #12] + 8045b10: 6a7b ldr r3, [r7, #36] ; 0x24 + 8045b12: f9b3 303c ldrsh.w r3, [r3, #60] ; 0x3c + 8045b16: 81bb strh r3, [r7, #12] /*Get the letter index on the new cursor position and set it*/ uint32_t new_cur_pos = lv_label_get_letter_on(ta->label, &pos); - 8045bac: 6a7b ldr r3, [r7, #36] ; 0x24 - 8045bae: 6a5b ldr r3, [r3, #36] ; 0x24 - 8045bb0: f107 020c add.w r2, r7, #12 - 8045bb4: 4611 mov r1, r2 - 8045bb6: 4618 mov r0, r3 - 8045bb8: f7f9 fb90 bl 803f2dc - 8045bbc: 6178 str r0, [r7, #20] + 8045b18: 6a7b ldr r3, [r7, #36] ; 0x24 + 8045b1a: 6a5b ldr r3, [r3, #36] ; 0x24 + 8045b1c: f107 020c add.w r2, r7, #12 + 8045b20: 4611 mov r1, r2 + 8045b22: 4618 mov r0, r3 + 8045b24: f7f9 fb90 bl 803f248 + 8045b28: 6178 str r0, [r7, #20] lv_coord_t cur_valid_x_tmp = ta->cursor.valid_x; /*Cursor position set overwrites the valid position*/ - 8045bbe: 6a7b ldr r3, [r7, #36] ; 0x24 - 8045bc0: 8f9b ldrh r3, [r3, #60] ; 0x3c - 8045bc2: 827b strh r3, [r7, #18] + 8045b2a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8045b2c: 8f9b ldrh r3, [r3, #60] ; 0x3c + 8045b2e: 827b strh r3, [r7, #18] lv_textarea_set_cursor_pos(obj, new_cur_pos); - 8045bc4: 697b ldr r3, [r7, #20] - 8045bc6: 4619 mov r1, r3 - 8045bc8: 6878 ldr r0, [r7, #4] - 8045bca: f7ff fd87 bl 80456dc + 8045b30: 697b ldr r3, [r7, #20] + 8045b32: 4619 mov r1, r3 + 8045b34: 6878 ldr r0, [r7, #4] + 8045b36: f7ff fd87 bl 8045648 ta->cursor.valid_x = cur_valid_x_tmp; - 8045bce: 6a7b ldr r3, [r7, #36] ; 0x24 - 8045bd0: 8a7a ldrh r2, [r7, #18] - 8045bd2: 879a strh r2, [r3, #60] ; 0x3c + 8045b3a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8045b3c: 8a7a ldrh r2, [r7, #18] + 8045b3e: 879a strh r2, [r3, #60] ; 0x3c } - 8045bd4: bf00 nop - 8045bd6: 372c adds r7, #44 ; 0x2c - 8045bd8: 46bd mov sp, r7 - 8045bda: bd90 pop {r4, r7, pc} + 8045b40: bf00 nop + 8045b42: 372c adds r7, #44 ; 0x2c + 8045b44: 46bd mov sp, r7 + 8045b46: bd90 pop {r4, r7, pc} -08045bdc : +08045b48 : /********************** * STATIC FUNCTIONS **********************/ static void lv_textarea_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 8045bdc: b590 push {r4, r7, lr} - 8045bde: b085 sub sp, #20 - 8045be0: af00 add r7, sp, #0 - 8045be2: 6078 str r0, [r7, #4] - 8045be4: 6039 str r1, [r7, #0] + 8045b48: b590 push {r4, r7, lr} + 8045b4a: b085 sub sp, #20 + 8045b4c: af00 add r7, sp, #0 + 8045b4e: 6078 str r0, [r7, #4] + 8045b50: 6039 str r1, [r7, #0] LV_UNUSED(class_p); LV_TRACE_OBJ_CREATE("begin"); lv_textarea_t * ta = (lv_textarea_t *)obj; - 8045be6: 683b ldr r3, [r7, #0] - 8045be8: 60fb str r3, [r7, #12] + 8045b52: 683b ldr r3, [r7, #0] + 8045b54: 60fb str r3, [r7, #12] ta->pwd_mode = 0; - 8045bea: 68fa ldr r2, [r7, #12] - 8045bec: f892 305c ldrb.w r3, [r2, #92] ; 0x5c - 8045bf0: f36f 0382 bfc r3, #2, #1 - 8045bf4: f882 305c strb.w r3, [r2, #92] ; 0x5c + 8045b56: 68fa ldr r2, [r7, #12] + 8045b58: f892 305c ldrb.w r3, [r2, #92] ; 0x5c + 8045b5c: f36f 0382 bfc r3, #2, #1 + 8045b60: f882 305c strb.w r3, [r2, #92] ; 0x5c ta->pwd_tmp = NULL; - 8045bf8: 68fb ldr r3, [r7, #12] - 8045bfa: 2200 movs r2, #0 - 8045bfc: 62da str r2, [r3, #44] ; 0x2c + 8045b64: 68fb ldr r3, [r7, #12] + 8045b66: 2200 movs r2, #0 + 8045b68: 62da str r2, [r3, #44] ; 0x2c ta->pwd_show_time = LV_TEXTAREA_DEF_PWD_SHOW_TIME; - 8045bfe: 68fb ldr r3, [r7, #12] - 8045c00: f240 52dc movw r2, #1500 ; 0x5dc - 8045c04: 871a strh r2, [r3, #56] ; 0x38 + 8045b6a: 68fb ldr r3, [r7, #12] + 8045b6c: f240 52dc movw r2, #1500 ; 0x5dc + 8045b70: 871a strh r2, [r3, #56] ; 0x38 ta->accepted_chars = NULL; - 8045c06: 68fb ldr r3, [r7, #12] - 8045c08: 2200 movs r2, #0 - 8045c0a: 631a str r2, [r3, #48] ; 0x30 + 8045b72: 68fb ldr r3, [r7, #12] + 8045b74: 2200 movs r2, #0 + 8045b76: 631a str r2, [r3, #48] ; 0x30 ta->max_length = 0; - 8045c0c: 68fb ldr r3, [r7, #12] - 8045c0e: 2200 movs r2, #0 - 8045c10: 635a str r2, [r3, #52] ; 0x34 + 8045b78: 68fb ldr r3, [r7, #12] + 8045b7a: 2200 movs r2, #0 + 8045b7c: 635a str r2, [r3, #52] ; 0x34 ta->cursor.show = 1; - 8045c12: 68fa ldr r2, [r7, #12] - 8045c14: f892 3050 ldrb.w r3, [r2, #80] ; 0x50 - 8045c18: f043 0301 orr.w r3, r3, #1 - 8045c1c: f882 3050 strb.w r3, [r2, #80] ; 0x50 + 8045b7e: 68fa ldr r2, [r7, #12] + 8045b80: f892 3050 ldrb.w r3, [r2, #80] ; 0x50 + 8045b84: f043 0301 orr.w r3, r3, #1 + 8045b88: f882 3050 strb.w r3, [r2, #80] ; 0x50 /*It will be set to zero later (with zero value lv_textarea_set_cursor_pos(obj, 0); wouldn't do anything as there is no difference)*/ ta->cursor.pos = 1; - 8045c20: 68fb ldr r3, [r7, #12] - 8045c22: 2201 movs r2, #1 - 8045c24: 641a str r2, [r3, #64] ; 0x40 + 8045b8c: 68fb ldr r3, [r7, #12] + 8045b8e: 2201 movs r2, #1 + 8045b90: 641a str r2, [r3, #64] ; 0x40 ta->cursor.click_pos = 1; - 8045c26: 68fa ldr r2, [r7, #12] - 8045c28: f892 3050 ldrb.w r3, [r2, #80] ; 0x50 - 8045c2c: f043 0302 orr.w r3, r3, #2 - 8045c30: f882 3050 strb.w r3, [r2, #80] ; 0x50 + 8045b92: 68fa ldr r2, [r7, #12] + 8045b94: f892 3050 ldrb.w r3, [r2, #80] ; 0x50 + 8045b98: f043 0302 orr.w r3, r3, #2 + 8045b9c: f882 3050 strb.w r3, [r2, #80] ; 0x50 ta->cursor.valid_x = 0; - 8045c34: 68fb ldr r3, [r7, #12] - 8045c36: 2200 movs r2, #0 - 8045c38: 879a strh r2, [r3, #60] ; 0x3c + 8045ba0: 68fb ldr r3, [r7, #12] + 8045ba2: 2200 movs r2, #0 + 8045ba4: 879a strh r2, [r3, #60] ; 0x3c ta->one_line = 0; - 8045c3a: 68fa ldr r2, [r7, #12] - 8045c3c: f892 305c ldrb.w r3, [r2, #92] ; 0x5c - 8045c40: f36f 03c3 bfc r3, #3, #1 - 8045c44: f882 305c strb.w r3, [r2, #92] ; 0x5c + 8045ba6: 68fa ldr r2, [r7, #12] + 8045ba8: f892 305c ldrb.w r3, [r2, #92] ; 0x5c + 8045bac: f36f 03c3 bfc r3, #3, #1 + 8045bb0: f882 305c strb.w r3, [r2, #92] ; 0x5c #if LV_LABEL_TEXT_SELECTION ta->text_sel_en = 0; - 8045c48: 68fa ldr r2, [r7, #12] - 8045c4a: f892 305c ldrb.w r3, [r2, #92] ; 0x5c - 8045c4e: f36f 0341 bfc r3, #1, #1 - 8045c52: f882 305c strb.w r3, [r2, #92] ; 0x5c + 8045bb4: 68fa ldr r2, [r7, #12] + 8045bb6: f892 305c ldrb.w r3, [r2, #92] ; 0x5c + 8045bba: f36f 0341 bfc r3, #1, #1 + 8045bbe: f882 305c strb.w r3, [r2, #92] ; 0x5c #endif ta->label = NULL; - 8045c56: 68fb ldr r3, [r7, #12] - 8045c58: 2200 movs r2, #0 - 8045c5a: 625a str r2, [r3, #36] ; 0x24 + 8045bc2: 68fb ldr r3, [r7, #12] + 8045bc4: 2200 movs r2, #0 + 8045bc6: 625a str r2, [r3, #36] ; 0x24 ta->placeholder_txt = NULL; - 8045c5c: 68fb ldr r3, [r7, #12] - 8045c5e: 2200 movs r2, #0 - 8045c60: 629a str r2, [r3, #40] ; 0x28 + 8045bc8: 68fb ldr r3, [r7, #12] + 8045bca: 2200 movs r2, #0 + 8045bcc: 629a str r2, [r3, #40] ; 0x28 ta->label = lv_label_create(obj); - 8045c62: 6838 ldr r0, [r7, #0] - 8045c64: f7f9 f83a bl 803ecdc - 8045c68: 4602 mov r2, r0 - 8045c6a: 68fb ldr r3, [r7, #12] - 8045c6c: 625a str r2, [r3, #36] ; 0x24 + 8045bce: 6838 ldr r0, [r7, #0] + 8045bd0: f7f9 f83a bl 803ec48 + 8045bd4: 4602 mov r2, r0 + 8045bd6: 68fb ldr r3, [r7, #12] + 8045bd8: 625a str r2, [r3, #36] ; 0x24 lv_obj_set_width(ta->label, lv_pct(100)); - 8045c6e: 68fb ldr r3, [r7, #12] - 8045c70: 6a5c ldr r4, [r3, #36] ; 0x24 - 8045c72: 2064 movs r0, #100 ; 0x64 - 8045c74: f7ff f89a bl 8044dac - 8045c78: 4603 mov r3, r0 - 8045c7a: 4619 mov r1, r3 - 8045c7c: 4620 mov r0, r4 - 8045c7e: f7c3 fdad bl 80097dc + 8045bda: 68fb ldr r3, [r7, #12] + 8045bdc: 6a5c ldr r4, [r3, #36] ; 0x24 + 8045bde: 2064 movs r0, #100 ; 0x64 + 8045be0: f7ff f89a bl 8044d18 + 8045be4: 4603 mov r3, r0 + 8045be6: 4619 mov r1, r3 + 8045be8: 4620 mov r0, r4 + 8045bea: f7c3 fdc1 bl 8009770 lv_label_set_text(ta->label, ""); - 8045c82: 68fb ldr r3, [r7, #12] - 8045c84: 6a5b ldr r3, [r3, #36] ; 0x24 - 8045c86: 490d ldr r1, [pc, #52] ; (8045cbc ) - 8045c88: 4618 mov r0, r3 - 8045c8a: f7f9 f83b bl 803ed04 + 8045bee: 68fb ldr r3, [r7, #12] + 8045bf0: 6a5b ldr r3, [r3, #36] ; 0x24 + 8045bf2: 490d ldr r1, [pc, #52] ; (8045c28 ) + 8045bf4: 4618 mov r0, r3 + 8045bf6: f7f9 f83b bl 803ec70 lv_obj_add_event_cb(ta->label, label_event_cb, LV_EVENT_ALL, NULL); - 8045c8e: 68fb ldr r3, [r7, #12] - 8045c90: 6a58 ldr r0, [r3, #36] ; 0x24 - 8045c92: 2300 movs r3, #0 - 8045c94: 2200 movs r2, #0 - 8045c96: 490a ldr r1, [pc, #40] ; (8045cc0 ) - 8045c98: f7bc fcd2 bl 8002640 + 8045bfa: 68fb ldr r3, [r7, #12] + 8045bfc: 6a58 ldr r0, [r3, #36] ; 0x24 + 8045bfe: 2300 movs r3, #0 + 8045c00: 2200 movs r2, #0 + 8045c02: 490a ldr r1, [pc, #40] ; (8045c2c ) + 8045c04: f7bc fce6 bl 80025d4 lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS); - 8045c9c: f44f 6180 mov.w r1, #1024 ; 0x400 - 8045ca0: 6838 ldr r0, [r7, #0] - 8045ca2: f7c0 fc89 bl 80065b8 + 8045c08: f44f 6180 mov.w r1, #1024 ; 0x400 + 8045c0c: 6838 ldr r0, [r7, #0] + 8045c0e: f7c0 fc9d bl 800654c lv_textarea_set_cursor_pos(obj, 0); - 8045ca6: 2100 movs r1, #0 - 8045ca8: 6838 ldr r0, [r7, #0] - 8045caa: f7ff fd17 bl 80456dc + 8045c12: 2100 movs r1, #0 + 8045c14: 6838 ldr r0, [r7, #0] + 8045c16: f7ff fd17 bl 8045648 start_cursor_blink(obj); - 8045cae: 6838 ldr r0, [r7, #0] - 8045cb0: f000 fa30 bl 8046114 + 8045c1a: 6838 ldr r0, [r7, #0] + 8045c1c: f000 fa30 bl 8046080 LV_TRACE_OBJ_CREATE("finished"); } - 8045cb4: bf00 nop - 8045cb6: 3714 adds r7, #20 - 8045cb8: 46bd mov sp, r7 - 8045cba: bd90 pop {r4, r7, pc} - 8045cbc: 080471f0 .word 0x080471f0 - 8045cc0: 08045e45 .word 0x08045e45 + 8045c20: bf00 nop + 8045c22: 3714 adds r7, #20 + 8045c24: 46bd mov sp, r7 + 8045c26: bd90 pop {r4, r7, pc} + 8045c28: 08047148 .word 0x08047148 + 8045c2c: 08045db1 .word 0x08045db1 -08045cc4 : +08045c30 : static void lv_textarea_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) { - 8045cc4: b580 push {r7, lr} - 8045cc6: b084 sub sp, #16 - 8045cc8: af00 add r7, sp, #0 - 8045cca: 6078 str r0, [r7, #4] - 8045ccc: 6039 str r1, [r7, #0] + 8045c30: b580 push {r7, lr} + 8045c32: b084 sub sp, #16 + 8045c34: af00 add r7, sp, #0 + 8045c36: 6078 str r0, [r7, #4] + 8045c38: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_textarea_t * ta = (lv_textarea_t *)obj; - 8045cce: 683b ldr r3, [r7, #0] - 8045cd0: 60fb str r3, [r7, #12] + 8045c3a: 683b ldr r3, [r7, #0] + 8045c3c: 60fb str r3, [r7, #12] if(ta->pwd_tmp != NULL) { - 8045cd2: 68fb ldr r3, [r7, #12] - 8045cd4: 6adb ldr r3, [r3, #44] ; 0x2c - 8045cd6: 2b00 cmp r3, #0 - 8045cd8: d007 beq.n 8045cea + 8045c3e: 68fb ldr r3, [r7, #12] + 8045c40: 6adb ldr r3, [r3, #44] ; 0x2c + 8045c42: 2b00 cmp r3, #0 + 8045c44: d007 beq.n 8045c56 lv_mem_free(ta->pwd_tmp); - 8045cda: 68fb ldr r3, [r7, #12] - 8045cdc: 6adb ldr r3, [r3, #44] ; 0x2c - 8045cde: 4618 mov r0, r3 - 8045ce0: f7ec fdfc bl 80328dc + 8045c46: 68fb ldr r3, [r7, #12] + 8045c48: 6adb ldr r3, [r3, #44] ; 0x2c + 8045c4a: 4618 mov r0, r3 + 8045c4c: f7ec fdfc bl 8032848 ta->pwd_tmp = NULL; - 8045ce4: 68fb ldr r3, [r7, #12] - 8045ce6: 2200 movs r2, #0 - 8045ce8: 62da str r2, [r3, #44] ; 0x2c + 8045c50: 68fb ldr r3, [r7, #12] + 8045c52: 2200 movs r2, #0 + 8045c54: 62da str r2, [r3, #44] ; 0x2c } if(ta->placeholder_txt != NULL) { - 8045cea: 68fb ldr r3, [r7, #12] - 8045cec: 6a9b ldr r3, [r3, #40] ; 0x28 - 8045cee: 2b00 cmp r3, #0 - 8045cf0: d007 beq.n 8045d02 + 8045c56: 68fb ldr r3, [r7, #12] + 8045c58: 6a9b ldr r3, [r3, #40] ; 0x28 + 8045c5a: 2b00 cmp r3, #0 + 8045c5c: d007 beq.n 8045c6e lv_mem_free(ta->placeholder_txt); - 8045cf2: 68fb ldr r3, [r7, #12] - 8045cf4: 6a9b ldr r3, [r3, #40] ; 0x28 - 8045cf6: 4618 mov r0, r3 - 8045cf8: f7ec fdf0 bl 80328dc + 8045c5e: 68fb ldr r3, [r7, #12] + 8045c60: 6a9b ldr r3, [r3, #40] ; 0x28 + 8045c62: 4618 mov r0, r3 + 8045c64: f7ec fdf0 bl 8032848 ta->placeholder_txt = NULL; - 8045cfc: 68fb ldr r3, [r7, #12] - 8045cfe: 2200 movs r2, #0 - 8045d00: 629a str r2, [r3, #40] ; 0x28 + 8045c68: 68fb ldr r3, [r7, #12] + 8045c6a: 2200 movs r2, #0 + 8045c6c: 629a str r2, [r3, #40] ; 0x28 } } - 8045d02: bf00 nop - 8045d04: 3710 adds r7, #16 - 8045d06: 46bd mov sp, r7 - 8045d08: bd80 pop {r7, pc} + 8045c6e: bf00 nop + 8045c70: 3710 adds r7, #16 + 8045c72: 46bd mov sp, r7 + 8045c74: bd80 pop {r7, pc} ... -08045d0c : +08045c78 : static void lv_textarea_event(const lv_obj_class_t * class_p, lv_event_t * e) { - 8045d0c: b580 push {r7, lr} - 8045d0e: b086 sub sp, #24 - 8045d10: af00 add r7, sp, #0 - 8045d12: 6078 str r0, [r7, #4] - 8045d14: 6039 str r1, [r7, #0] + 8045c78: b580 push {r7, lr} + 8045c7a: b086 sub sp, #24 + 8045c7c: af00 add r7, sp, #0 + 8045c7e: 6078 str r0, [r7, #4] + 8045c80: 6039 str r1, [r7, #0] LV_UNUSED(class_p); lv_res_t res; /*Call the ancestor's event handler*/ res = lv_obj_event_base(MY_CLASS, e); - 8045d16: 6839 ldr r1, [r7, #0] - 8045d18: 4849 ldr r0, [pc, #292] ; (8045e40 ) - 8045d1a: f7bc fbf3 bl 8002504 - 8045d1e: 4603 mov r3, r0 - 8045d20: 75fb strb r3, [r7, #23] + 8045c82: 6839 ldr r1, [r7, #0] + 8045c84: 4849 ldr r0, [pc, #292] ; (8045dac ) + 8045c86: f7bc fc07 bl 8002498 + 8045c8a: 4603 mov r3, r0 + 8045c8c: 75fb strb r3, [r7, #23] if(res != LV_RES_OK) return; - 8045d22: 7dfb ldrb r3, [r7, #23] - 8045d24: 2b01 cmp r3, #1 - 8045d26: f040 8086 bne.w 8045e36 + 8045c8e: 7dfb ldrb r3, [r7, #23] + 8045c90: 2b01 cmp r3, #1 + 8045c92: f040 8086 bne.w 8045da2 lv_event_code_t code = lv_event_get_code(e); - 8045d2a: 6838 ldr r0, [r7, #0] - 8045d2c: f7bc fc3e bl 80025ac - 8045d30: 4603 mov r3, r0 - 8045d32: 75bb strb r3, [r7, #22] + 8045c96: 6838 ldr r0, [r7, #0] + 8045c98: f7bc fc52 bl 8002540 + 8045c9c: 4603 mov r3, r0 + 8045c9e: 75bb strb r3, [r7, #22] lv_obj_t * obj = lv_event_get_target(e); - 8045d34: 6838 ldr r0, [r7, #0] - 8045d36: f7bc fc23 bl 8002580 - 8045d3a: 6138 str r0, [r7, #16] + 8045ca0: 6838 ldr r0, [r7, #0] + 8045ca2: f7bc fc37 bl 8002514 + 8045ca6: 6138 str r0, [r7, #16] if(code == LV_EVENT_FOCUSED) { - 8045d3c: 7dbb ldrb r3, [r7, #22] - 8045d3e: 2b0e cmp r3, #14 - 8045d40: d103 bne.n 8045d4a + 8045ca8: 7dbb ldrb r3, [r7, #22] + 8045caa: 2b0e cmp r3, #14 + 8045cac: d103 bne.n 8045cb6 start_cursor_blink(obj); - 8045d42: 6938 ldr r0, [r7, #16] - 8045d44: f000 f9e6 bl 8046114 - 8045d48: e076 b.n 8045e38 + 8045cae: 6938 ldr r0, [r7, #16] + 8045cb0: f000 f9e6 bl 8046080 + 8045cb4: e076 b.n 8045da4 } else if(code == LV_EVENT_KEY) { - 8045d4a: 7dbb ldrb r3, [r7, #22] - 8045d4c: 2b0d cmp r3, #13 - 8045d4e: d154 bne.n 8045dfa + 8045cb6: 7dbb ldrb r3, [r7, #22] + 8045cb8: 2b0d cmp r3, #13 + 8045cba: d154 bne.n 8045d66 uint32_t c = *((uint32_t *)lv_event_get_param(e)); /*uint32_t because can be UTF-8*/ - 8045d50: 6838 ldr r0, [r7, #0] - 8045d52: f7bc fc39 bl 80025c8 - 8045d56: 4603 mov r3, r0 - 8045d58: 681b ldr r3, [r3, #0] - 8045d5a: 60fb str r3, [r7, #12] + 8045cbc: 6838 ldr r0, [r7, #0] + 8045cbe: f7bc fc4d bl 800255c + 8045cc2: 4603 mov r3, r0 + 8045cc4: 681b ldr r3, [r3, #0] + 8045cc6: 60fb str r3, [r7, #12] if(c == LV_KEY_RIGHT) - 8045d5c: 68fb ldr r3, [r7, #12] - 8045d5e: 2b13 cmp r3, #19 - 8045d60: d103 bne.n 8045d6a + 8045cc8: 68fb ldr r3, [r7, #12] + 8045cca: 2b13 cmp r3, #19 + 8045ccc: d103 bne.n 8045cd6 lv_textarea_cursor_right(obj); - 8045d62: 6938 ldr r0, [r7, #16] - 8045d64: f7ff fe6f bl 8045a46 - 8045d68: e066 b.n 8045e38 + 8045cce: 6938 ldr r0, [r7, #16] + 8045cd0: f7ff fe6f bl 80459b2 + 8045cd4: e066 b.n 8045da4 else if(c == LV_KEY_LEFT) - 8045d6a: 68fb ldr r3, [r7, #12] - 8045d6c: 2b14 cmp r3, #20 - 8045d6e: d103 bne.n 8045d78 + 8045cd6: 68fb ldr r3, [r7, #12] + 8045cd8: 2b14 cmp r3, #20 + 8045cda: d103 bne.n 8045ce4 lv_textarea_cursor_left(obj); - 8045d70: 6938 ldr r0, [r7, #16] - 8045d72: f7ff fe7c bl 8045a6e - 8045d76: e05f b.n 8045e38 + 8045cdc: 6938 ldr r0, [r7, #16] + 8045cde: f7ff fe7c bl 80459da + 8045ce2: e05f b.n 8045da4 else if(c == LV_KEY_UP) - 8045d78: 68fb ldr r3, [r7, #12] - 8045d7a: 2b11 cmp r3, #17 - 8045d7c: d103 bne.n 8045d86 + 8045ce4: 68fb ldr r3, [r7, #12] + 8045ce6: 2b11 cmp r3, #17 + 8045ce8: d103 bne.n 8045cf2 lv_textarea_cursor_up(obj); - 8045d7e: 6938 ldr r0, [r7, #16] - 8045d80: f7ff fee1 bl 8045b46 - 8045d84: e058 b.n 8045e38 + 8045cea: 6938 ldr r0, [r7, #16] + 8045cec: f7ff fee1 bl 8045ab2 + 8045cf0: e058 b.n 8045da4 else if(c == LV_KEY_DOWN) - 8045d86: 68fb ldr r3, [r7, #12] - 8045d88: 2b12 cmp r3, #18 - 8045d8a: d103 bne.n 8045d94 + 8045cf2: 68fb ldr r3, [r7, #12] + 8045cf4: 2b12 cmp r3, #18 + 8045cf6: d103 bne.n 8045d00 lv_textarea_cursor_down(obj); - 8045d8c: 6938 ldr r0, [r7, #16] - 8045d8e: f7ff fe85 bl 8045a9c - 8045d92: e051 b.n 8045e38 + 8045cf8: 6938 ldr r0, [r7, #16] + 8045cfa: f7ff fe85 bl 8045a08 + 8045cfe: e051 b.n 8045da4 else if(c == LV_KEY_BACKSPACE) - 8045d94: 68fb ldr r3, [r7, #12] - 8045d96: 2b08 cmp r3, #8 - 8045d98: d103 bne.n 8045da2 + 8045d00: 68fb ldr r3, [r7, #12] + 8045d02: 2b08 cmp r3, #8 + 8045d04: d103 bne.n 8045d0e lv_textarea_del_char(obj); - 8045d9a: 6938 ldr r0, [r7, #16] - 8045d9c: f7ff fb24 bl 80453e8 - 8045da0: e04a b.n 8045e38 + 8045d06: 6938 ldr r0, [r7, #16] + 8045d08: f7ff fb24 bl 8045354 + 8045d0c: e04a b.n 8045da4 else if(c == LV_KEY_DEL) - 8045da2: 68fb ldr r3, [r7, #12] - 8045da4: 2b7f cmp r3, #127 ; 0x7f - 8045da6: d103 bne.n 8045db0 + 8045d0e: 68fb ldr r3, [r7, #12] + 8045d10: 2b7f cmp r3, #127 ; 0x7f + 8045d12: d103 bne.n 8045d1c lv_textarea_del_char_forward(obj); - 8045da8: 6938 ldr r0, [r7, #16] - 8045daa: f7ff fb9d bl 80454e8 - 8045dae: e043 b.n 8045e38 + 8045d14: 6938 ldr r0, [r7, #16] + 8045d16: f7ff fb9d bl 8045454 + 8045d1a: e043 b.n 8045da4 else if(c == LV_KEY_HOME) - 8045db0: 68fb ldr r3, [r7, #12] - 8045db2: 2b02 cmp r3, #2 - 8045db4: d104 bne.n 8045dc0 + 8045d1c: 68fb ldr r3, [r7, #12] + 8045d1e: 2b02 cmp r3, #2 + 8045d20: d104 bne.n 8045d2c lv_textarea_set_cursor_pos(obj, 0); - 8045db6: 2100 movs r1, #0 - 8045db8: 6938 ldr r0, [r7, #16] - 8045dba: f7ff fc8f bl 80456dc - 8045dbe: e03b b.n 8045e38 + 8045d22: 2100 movs r1, #0 + 8045d24: 6938 ldr r0, [r7, #16] + 8045d26: f7ff fc8f bl 8045648 + 8045d2a: e03b b.n 8045da4 else if(c == LV_KEY_END) - 8045dc0: 68fb ldr r3, [r7, #12] - 8045dc2: 2b03 cmp r3, #3 - 8045dc4: d105 bne.n 8045dd2 + 8045d2c: 68fb ldr r3, [r7, #12] + 8045d2e: 2b03 cmp r3, #3 + 8045d30: d105 bne.n 8045d3e lv_textarea_set_cursor_pos(obj, LV_TEXTAREA_CURSOR_LAST); - 8045dc6: f647 71ff movw r1, #32767 ; 0x7fff - 8045dca: 6938 ldr r0, [r7, #16] - 8045dcc: f7ff fc86 bl 80456dc - 8045dd0: e032 b.n 8045e38 + 8045d32: f647 71ff movw r1, #32767 ; 0x7fff + 8045d36: 6938 ldr r0, [r7, #16] + 8045d38: f7ff fc86 bl 8045648 + 8045d3c: e032 b.n 8045da4 else if(c == LV_KEY_ENTER && lv_textarea_get_one_line(obj)) - 8045dd2: 68fb ldr r3, [r7, #12] - 8045dd4: 2b0a cmp r3, #10 - 8045dd6: d10b bne.n 8045df0 - 8045dd8: 6938 ldr r0, [r7, #16] - 8045dda: f7ff fdd8 bl 804598e - 8045dde: 4603 mov r3, r0 - 8045de0: 2b00 cmp r3, #0 - 8045de2: d005 beq.n 8045df0 + 8045d3e: 68fb ldr r3, [r7, #12] + 8045d40: 2b0a cmp r3, #10 + 8045d42: d10b bne.n 8045d5c + 8045d44: 6938 ldr r0, [r7, #16] + 8045d46: f7ff fdd8 bl 80458fa + 8045d4a: 4603 mov r3, r0 + 8045d4c: 2b00 cmp r3, #0 + 8045d4e: d005 beq.n 8045d5c lv_event_send(obj, LV_EVENT_READY, NULL); - 8045de4: 2200 movs r2, #0 - 8045de6: 211f movs r1, #31 - 8045de8: 6938 ldr r0, [r7, #16] - 8045dea: f7bc fb49 bl 8002480 - 8045dee: e023 b.n 8045e38 + 8045d50: 2200 movs r2, #0 + 8045d52: 211f movs r1, #31 + 8045d54: 6938 ldr r0, [r7, #16] + 8045d56: f7bc fb5d bl 8002414 + 8045d5a: e023 b.n 8045da4 else { lv_textarea_add_char(obj, c); - 8045df0: 68f9 ldr r1, [r7, #12] - 8045df2: 6938 ldr r0, [r7, #16] - 8045df4: f7ff f918 bl 8045028 - 8045df8: e01e b.n 8045e38 + 8045d5c: 68f9 ldr r1, [r7, #12] + 8045d5e: 6938 ldr r0, [r7, #16] + 8045d60: f7ff f918 bl 8044f94 + 8045d64: e01e b.n 8045da4 } } else if(code == LV_EVENT_PRESSED || code == LV_EVENT_PRESSING || code == LV_EVENT_PRESS_LOST || - 8045dfa: 7dbb ldrb r3, [r7, #22] - 8045dfc: 2b01 cmp r3, #1 - 8045dfe: d008 beq.n 8045e12 - 8045e00: 7dbb ldrb r3, [r7, #22] - 8045e02: 2b02 cmp r3, #2 - 8045e04: d005 beq.n 8045e12 - 8045e06: 7dbb ldrb r3, [r7, #22] - 8045e08: 2b03 cmp r3, #3 - 8045e0a: d002 beq.n 8045e12 - 8045e0c: 7dbb ldrb r3, [r7, #22] - 8045e0e: 2b08 cmp r3, #8 - 8045e10: d103 bne.n 8045e1a + 8045d66: 7dbb ldrb r3, [r7, #22] + 8045d68: 2b01 cmp r3, #1 + 8045d6a: d008 beq.n 8045d7e + 8045d6c: 7dbb ldrb r3, [r7, #22] + 8045d6e: 2b02 cmp r3, #2 + 8045d70: d005 beq.n 8045d7e + 8045d72: 7dbb ldrb r3, [r7, #22] + 8045d74: 2b03 cmp r3, #3 + 8045d76: d002 beq.n 8045d7e + 8045d78: 7dbb ldrb r3, [r7, #22] + 8045d7a: 2b08 cmp r3, #8 + 8045d7c: d103 bne.n 8045d86 code == LV_EVENT_RELEASED) { update_cursor_position_on_click(e); - 8045e12: 6838 ldr r0, [r7, #0] - 8045e14: f000 fb88 bl 8046528 - 8045e18: e00e b.n 8045e38 + 8045d7e: 6838 ldr r0, [r7, #0] + 8045d80: f000 fb88 bl 8046494 + 8045d84: e00e b.n 8045da4 } else if(code == LV_EVENT_DRAW_MAIN) { - 8045e1a: 7dbb ldrb r3, [r7, #22] - 8045e1c: 2b15 cmp r3, #21 - 8045e1e: d103 bne.n 8045e28 + 8045d86: 7dbb ldrb r3, [r7, #22] + 8045d88: 2b15 cmp r3, #21 + 8045d8a: d103 bne.n 8045d94 draw_placeholder(e); - 8045e20: 6838 ldr r0, [r7, #0] - 8045e22: f000 fd2f bl 8046884 - 8045e26: e007 b.n 8045e38 + 8045d8c: 6838 ldr r0, [r7, #0] + 8045d8e: f000 fd2f bl 80467f0 + 8045d92: e007 b.n 8045da4 } else if(code == LV_EVENT_DRAW_POST) { - 8045e28: 7dbb ldrb r3, [r7, #22] - 8045e2a: 2b18 cmp r3, #24 - 8045e2c: d104 bne.n 8045e38 + 8045d94: 7dbb ldrb r3, [r7, #22] + 8045d96: 2b18 cmp r3, #24 + 8045d98: d104 bne.n 8045da4 draw_cursor(e); - 8045e2e: 6838 ldr r0, [r7, #0] - 8045e30: f000 fd9e bl 8046970 - 8045e34: e000 b.n 8045e38 + 8045d9a: 6838 ldr r0, [r7, #0] + 8045d9c: f000 fd9e bl 80468dc + 8045da0: e000 b.n 8045da4 if(res != LV_RES_OK) return; - 8045e36: bf00 nop + 8045da2: bf00 nop } } - 8045e38: 3718 adds r7, #24 - 8045e3a: 46bd mov sp, r7 - 8045e3c: bd80 pop {r7, pc} - 8045e3e: bf00 nop - 8045e40: 08070b50 .word 0x08070b50 + 8045da4: 3718 adds r7, #24 + 8045da6: 46bd mov sp, r7 + 8045da8: bd80 pop {r7, pc} + 8045daa: bf00 nop + 8045dac: 08070aa8 .word 0x08070aa8 -08045e44 : +08045db0 : static void label_event_cb(lv_event_t * e) { - 8045e44: b580 push {r7, lr} - 8045e46: b086 sub sp, #24 - 8045e48: af00 add r7, sp, #0 - 8045e4a: 6078 str r0, [r7, #4] + 8045db0: b580 push {r7, lr} + 8045db2: b086 sub sp, #24 + 8045db4: af00 add r7, sp, #0 + 8045db6: 6078 str r0, [r7, #4] lv_event_code_t code = lv_event_get_code(e); - 8045e4c: 6878 ldr r0, [r7, #4] - 8045e4e: f7bc fbad bl 80025ac - 8045e52: 4603 mov r3, r0 - 8045e54: 75fb strb r3, [r7, #23] + 8045db8: 6878 ldr r0, [r7, #4] + 8045dba: f7bc fbc1 bl 8002540 + 8045dbe: 4603 mov r3, r0 + 8045dc0: 75fb strb r3, [r7, #23] lv_obj_t * label = lv_event_get_target(e); - 8045e56: 6878 ldr r0, [r7, #4] - 8045e58: f7bc fb92 bl 8002580 - 8045e5c: 6138 str r0, [r7, #16] + 8045dc2: 6878 ldr r0, [r7, #4] + 8045dc4: f7bc fba6 bl 8002514 + 8045dc8: 6138 str r0, [r7, #16] lv_obj_t * ta = lv_obj_get_parent(label); - 8045e5e: 6938 ldr r0, [r7, #16] - 8045e60: f7c9 fc54 bl 800f70c - 8045e64: 60f8 str r0, [r7, #12] + 8045dca: 6938 ldr r0, [r7, #16] + 8045dcc: f7c9 fc54 bl 800f678 + 8045dd0: 60f8 str r0, [r7, #12] if(code == LV_EVENT_STYLE_CHANGED || code == LV_EVENT_SIZE_CHANGED) { - 8045e66: 7dfb ldrb r3, [r7, #23] - 8045e68: 2b2a cmp r3, #42 ; 0x2a - 8045e6a: d002 beq.n 8045e72 - 8045e6c: 7dfb ldrb r3, [r7, #23] - 8045e6e: 2b29 cmp r3, #41 ; 0x29 - 8045e70: d109 bne.n 8045e86 + 8045dd2: 7dfb ldrb r3, [r7, #23] + 8045dd4: 2b2a cmp r3, #42 ; 0x2a + 8045dd6: d002 beq.n 8045dde + 8045dd8: 7dfb ldrb r3, [r7, #23] + 8045dda: 2b29 cmp r3, #41 ; 0x29 + 8045ddc: d109 bne.n 8045df2 lv_label_set_text(label, NULL); - 8045e72: 2100 movs r1, #0 - 8045e74: 6938 ldr r0, [r7, #16] - 8045e76: f7f8 ff45 bl 803ed04 + 8045dde: 2100 movs r1, #0 + 8045de0: 6938 ldr r0, [r7, #16] + 8045de2: f7f8 ff45 bl 803ec70 refr_cursor_area(ta); - 8045e7a: 68f8 ldr r0, [r7, #12] - 8045e7c: f000 f9a4 bl 80461c8 + 8045de6: 68f8 ldr r0, [r7, #12] + 8045de8: f000 f9a4 bl 8046134 start_cursor_blink(ta); - 8045e80: 68f8 ldr r0, [r7, #12] - 8045e82: f000 f947 bl 8046114 + 8045dec: 68f8 ldr r0, [r7, #12] + 8045dee: f000 f947 bl 8046080 } } - 8045e86: bf00 nop - 8045e88: 3718 adds r7, #24 - 8045e8a: 46bd mov sp, r7 - 8045e8c: bd80 pop {r7, pc} + 8045df2: bf00 nop + 8045df4: 3718 adds r7, #24 + 8045df6: 46bd mov sp, r7 + 8045df8: bd80 pop {r7, pc} -08045e8e : +08045dfa : * Called to blink the cursor * @param ta pointer to a text area * @param hide 1: hide the cursor, 0: show it */ static void cursor_blink_anim_cb(void * obj, int32_t show) { - 8045e8e: b580 push {r7, lr} - 8045e90: b086 sub sp, #24 - 8045e92: af00 add r7, sp, #0 - 8045e94: 6078 str r0, [r7, #4] - 8045e96: 6039 str r1, [r7, #0] + 8045dfa: b580 push {r7, lr} + 8045dfc: b086 sub sp, #24 + 8045dfe: af00 add r7, sp, #0 + 8045e00: 6078 str r0, [r7, #4] + 8045e02: 6039 str r1, [r7, #0] lv_textarea_t * ta = (lv_textarea_t *)obj; - 8045e98: 687b ldr r3, [r7, #4] - 8045e9a: 617b str r3, [r7, #20] + 8045e04: 687b ldr r3, [r7, #4] + 8045e06: 617b str r3, [r7, #20] if(show != ta->cursor.show) { - 8045e9c: 697b ldr r3, [r7, #20] - 8045e9e: f893 3050 ldrb.w r3, [r3, #80] ; 0x50 - 8045ea2: f3c3 0300 ubfx r3, r3, #0, #1 - 8045ea6: b2db uxtb r3, r3 - 8045ea8: 461a mov r2, r3 - 8045eaa: 683b ldr r3, [r7, #0] - 8045eac: 4293 cmp r3, r2 - 8045eae: d04b beq.n 8045f48 + 8045e08: 697b ldr r3, [r7, #20] + 8045e0a: f893 3050 ldrb.w r3, [r3, #80] ; 0x50 + 8045e0e: f3c3 0300 ubfx r3, r3, #0, #1 + 8045e12: b2db uxtb r3, r3 + 8045e14: 461a mov r2, r3 + 8045e16: 683b ldr r3, [r7, #0] + 8045e18: 4293 cmp r3, r2 + 8045e1a: d04b beq.n 8045eb4 ta->cursor.show = show == 0 ? 0 : 1; - 8045eb0: 683b ldr r3, [r7, #0] - 8045eb2: 2b00 cmp r3, #0 - 8045eb4: bf14 ite ne - 8045eb6: 2301 movne r3, #1 - 8045eb8: 2300 moveq r3, #0 - 8045eba: b2d9 uxtb r1, r3 - 8045ebc: 697a ldr r2, [r7, #20] - 8045ebe: f892 3050 ldrb.w r3, [r2, #80] ; 0x50 - 8045ec2: f361 0300 bfi r3, r1, #0, #1 - 8045ec6: f882 3050 strb.w r3, [r2, #80] ; 0x50 + 8045e1c: 683b ldr r3, [r7, #0] + 8045e1e: 2b00 cmp r3, #0 + 8045e20: bf14 ite ne + 8045e22: 2301 movne r3, #1 + 8045e24: 2300 moveq r3, #0 + 8045e26: b2d9 uxtb r1, r3 + 8045e28: 697a ldr r2, [r7, #20] + 8045e2a: f892 3050 ldrb.w r3, [r2, #80] ; 0x50 + 8045e2e: f361 0300 bfi r3, r1, #0, #1 + 8045e32: f882 3050 strb.w r3, [r2, #80] ; 0x50 lv_area_t area_tmp; lv_area_copy(&area_tmp, &ta->cursor.area); - 8045eca: 697b ldr r3, [r7, #20] - 8045ecc: f103 0244 add.w r2, r3, #68 ; 0x44 - 8045ed0: f107 030c add.w r3, r7, #12 - 8045ed4: 4611 mov r1, r2 - 8045ed6: 4618 mov r0, r3 - 8045ed8: f7fe ff4a bl 8044d70 + 8045e36: 697b ldr r3, [r7, #20] + 8045e38: f103 0244 add.w r2, r3, #68 ; 0x44 + 8045e3c: f107 030c add.w r3, r7, #12 + 8045e40: 4611 mov r1, r2 + 8045e42: 4618 mov r0, r3 + 8045e44: f7fe ff4a bl 8044cdc area_tmp.x1 += ta->label->coords.x1; - 8045edc: f9b7 300c ldrsh.w r3, [r7, #12] - 8045ee0: b29a uxth r2, r3 - 8045ee2: 697b ldr r3, [r7, #20] - 8045ee4: 6a5b ldr r3, [r3, #36] ; 0x24 - 8045ee6: f9b3 3014 ldrsh.w r3, [r3, #20] - 8045eea: b29b uxth r3, r3 - 8045eec: 4413 add r3, r2 - 8045eee: b29b uxth r3, r3 - 8045ef0: b21b sxth r3, r3 - 8045ef2: 81bb strh r3, [r7, #12] + 8045e48: f9b7 300c ldrsh.w r3, [r7, #12] + 8045e4c: b29a uxth r2, r3 + 8045e4e: 697b ldr r3, [r7, #20] + 8045e50: 6a5b ldr r3, [r3, #36] ; 0x24 + 8045e52: f9b3 3014 ldrsh.w r3, [r3, #20] + 8045e56: b29b uxth r3, r3 + 8045e58: 4413 add r3, r2 + 8045e5a: b29b uxth r3, r3 + 8045e5c: b21b sxth r3, r3 + 8045e5e: 81bb strh r3, [r7, #12] area_tmp.y1 += ta->label->coords.y1; - 8045ef4: f9b7 300e ldrsh.w r3, [r7, #14] - 8045ef8: b29a uxth r2, r3 - 8045efa: 697b ldr r3, [r7, #20] - 8045efc: 6a5b ldr r3, [r3, #36] ; 0x24 - 8045efe: f9b3 3016 ldrsh.w r3, [r3, #22] - 8045f02: b29b uxth r3, r3 - 8045f04: 4413 add r3, r2 - 8045f06: b29b uxth r3, r3 - 8045f08: b21b sxth r3, r3 - 8045f0a: 81fb strh r3, [r7, #14] + 8045e60: f9b7 300e ldrsh.w r3, [r7, #14] + 8045e64: b29a uxth r2, r3 + 8045e66: 697b ldr r3, [r7, #20] + 8045e68: 6a5b ldr r3, [r3, #36] ; 0x24 + 8045e6a: f9b3 3016 ldrsh.w r3, [r3, #22] + 8045e6e: b29b uxth r3, r3 + 8045e70: 4413 add r3, r2 + 8045e72: b29b uxth r3, r3 + 8045e74: b21b sxth r3, r3 + 8045e76: 81fb strh r3, [r7, #14] area_tmp.x2 += ta->label->coords.x1; - 8045f0c: f9b7 3010 ldrsh.w r3, [r7, #16] - 8045f10: b29a uxth r2, r3 - 8045f12: 697b ldr r3, [r7, #20] - 8045f14: 6a5b ldr r3, [r3, #36] ; 0x24 - 8045f16: f9b3 3014 ldrsh.w r3, [r3, #20] - 8045f1a: b29b uxth r3, r3 - 8045f1c: 4413 add r3, r2 - 8045f1e: b29b uxth r3, r3 - 8045f20: b21b sxth r3, r3 - 8045f22: 823b strh r3, [r7, #16] + 8045e78: f9b7 3010 ldrsh.w r3, [r7, #16] + 8045e7c: b29a uxth r2, r3 + 8045e7e: 697b ldr r3, [r7, #20] + 8045e80: 6a5b ldr r3, [r3, #36] ; 0x24 + 8045e82: f9b3 3014 ldrsh.w r3, [r3, #20] + 8045e86: b29b uxth r3, r3 + 8045e88: 4413 add r3, r2 + 8045e8a: b29b uxth r3, r3 + 8045e8c: b21b sxth r3, r3 + 8045e8e: 823b strh r3, [r7, #16] area_tmp.y2 += ta->label->coords.y1; - 8045f24: f9b7 3012 ldrsh.w r3, [r7, #18] - 8045f28: b29a uxth r2, r3 - 8045f2a: 697b ldr r3, [r7, #20] - 8045f2c: 6a5b ldr r3, [r3, #36] ; 0x24 - 8045f2e: f9b3 3016 ldrsh.w r3, [r3, #22] - 8045f32: b29b uxth r3, r3 - 8045f34: 4413 add r3, r2 - 8045f36: b29b uxth r3, r3 - 8045f38: b21b sxth r3, r3 - 8045f3a: 827b strh r3, [r7, #18] + 8045e90: f9b7 3012 ldrsh.w r3, [r7, #18] + 8045e94: b29a uxth r2, r3 + 8045e96: 697b ldr r3, [r7, #20] + 8045e98: 6a5b ldr r3, [r3, #36] ; 0x24 + 8045e9a: f9b3 3016 ldrsh.w r3, [r3, #22] + 8045e9e: b29b uxth r3, r3 + 8045ea0: 4413 add r3, r2 + 8045ea2: b29b uxth r3, r3 + 8045ea4: b21b sxth r3, r3 + 8045ea6: 827b strh r3, [r7, #18] lv_obj_invalidate_area(obj, &area_tmp); - 8045f3c: f107 030c add.w r3, r7, #12 - 8045f40: 4619 mov r1, r3 - 8045f42: 6878 ldr r0, [r7, #4] - 8045f44: f7c4 fd91 bl 800aa6a + 8045ea8: f107 030c add.w r3, r7, #12 + 8045eac: 4619 mov r1, r3 + 8045eae: 6878 ldr r0, [r7, #4] + 8045eb0: f7c4 fda5 bl 800a9fe } } - 8045f48: bf00 nop - 8045f4a: 3718 adds r7, #24 - 8045f4c: 46bd mov sp, r7 - 8045f4e: bd80 pop {r7, pc} + 8045eb4: bf00 nop + 8045eb6: 3718 adds r7, #24 + 8045eb8: 46bd mov sp, r7 + 8045eba: bd80 pop {r7, pc} -08045f50 : +08045ebc : * (pwd_char_hider callback do the real job) * @param ta unused * @param x unused */ static void pwd_char_hider_anim(void * obj, int32_t x) { - 8045f50: b480 push {r7} - 8045f52: b083 sub sp, #12 - 8045f54: af00 add r7, sp, #0 - 8045f56: 6078 str r0, [r7, #4] - 8045f58: 6039 str r1, [r7, #0] + 8045ebc: b480 push {r7} + 8045ebe: b083 sub sp, #12 + 8045ec0: af00 add r7, sp, #0 + 8045ec2: 6078 str r0, [r7, #4] + 8045ec4: 6039 str r1, [r7, #0] LV_UNUSED(obj); LV_UNUSED(x); } - 8045f5a: bf00 nop - 8045f5c: 370c adds r7, #12 - 8045f5e: 46bd mov sp, r7 - 8045f60: bc80 pop {r7} - 8045f62: 4770 bx lr + 8045ec6: bf00 nop + 8045ec8: 370c adds r7, #12 + 8045eca: 46bd mov sp, r7 + 8045ecc: bc80 pop {r7} + 8045ece: 4770 bx lr -08045f64 : +08045ed0 : /** * Call when an animation is ready to convert all characters to '*' * @param a pointer to the animation */ static void pwd_char_hider_anim_ready(lv_anim_t * a) { - 8045f64: b580 push {r7, lr} - 8045f66: b084 sub sp, #16 - 8045f68: af00 add r7, sp, #0 - 8045f6a: 6078 str r0, [r7, #4] + 8045ed0: b580 push {r7, lr} + 8045ed2: b084 sub sp, #16 + 8045ed4: af00 add r7, sp, #0 + 8045ed6: 6078 str r0, [r7, #4] lv_obj_t * obj = a->var; - 8045f6c: 687b ldr r3, [r7, #4] - 8045f6e: 681b ldr r3, [r3, #0] - 8045f70: 60fb str r3, [r7, #12] + 8045ed8: 687b ldr r3, [r7, #4] + 8045eda: 681b ldr r3, [r3, #0] + 8045edc: 60fb str r3, [r7, #12] pwd_char_hider(obj); - 8045f72: 68f8 ldr r0, [r7, #12] - 8045f74: f000 f804 bl 8045f80 + 8045ede: 68f8 ldr r0, [r7, #12] + 8045ee0: f000 f804 bl 8045eec } - 8045f78: bf00 nop - 8045f7a: 3710 adds r7, #16 - 8045f7c: 46bd mov sp, r7 - 8045f7e: bd80 pop {r7, pc} + 8045ee4: bf00 nop + 8045ee6: 3710 adds r7, #16 + 8045ee8: 46bd mov sp, r7 + 8045eea: bd80 pop {r7, pc} -08045f80 : +08045eec : /** * Hide all characters (convert them to '*') * @param ta pointer to text area object */ static void pwd_char_hider(lv_obj_t * obj) { - 8045f80: b580 push {r7, lr} - 8045f82: b090 sub sp, #64 ; 0x40 - 8045f84: af00 add r7, sp, #0 - 8045f86: 6078 str r0, [r7, #4] + 8045eec: b580 push {r7, lr} + 8045eee: b090 sub sp, #64 ; 0x40 + 8045ef0: af00 add r7, sp, #0 + 8045ef2: 6078 str r0, [r7, #4] lv_textarea_t * ta = (lv_textarea_t *)obj; - 8045f88: 687b ldr r3, [r7, #4] - 8045f8a: 637b str r3, [r7, #52] ; 0x34 + 8045ef4: 687b ldr r3, [r7, #4] + 8045ef6: 637b str r3, [r7, #52] ; 0x34 if(ta->pwd_mode != 0) { - 8045f8c: 6b7b ldr r3, [r7, #52] ; 0x34 - 8045f8e: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 8045f92: f003 0304 and.w r3, r3, #4 - 8045f96: b2db uxtb r3, r3 - 8045f98: 2b00 cmp r3, #0 - 8045f9a: d05f beq.n 804605c + 8045ef8: 6b7b ldr r3, [r7, #52] ; 0x34 + 8045efa: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 8045efe: f003 0304 and.w r3, r3, #4 + 8045f02: b2db uxtb r3, r3 + 8045f04: 2b00 cmp r3, #0 + 8045f06: d05f beq.n 8045fc8 char * txt = lv_label_get_text(ta->label); - 8045f9c: 6b7b ldr r3, [r7, #52] ; 0x34 - 8045f9e: 6a5b ldr r3, [r3, #36] ; 0x24 - 8045fa0: 4618 mov r0, r3 - 8045fa2: f7f9 f80f bl 803efc4 - 8045fa6: 6338 str r0, [r7, #48] ; 0x30 + 8045f08: 6b7b ldr r3, [r7, #52] ; 0x34 + 8045f0a: 6a5b ldr r3, [r3, #36] ; 0x24 + 8045f0c: 4618 mov r0, r3 + 8045f0e: f7f9 f80f bl 803ef30 + 8045f12: 6338 str r0, [r7, #48] ; 0x30 int32_t enc_len = _lv_txt_get_encoded_length(txt); - 8045fa8: 4b2e ldr r3, [pc, #184] ; (8046064 ) - 8045faa: 681b ldr r3, [r3, #0] - 8045fac: 6b38 ldr r0, [r7, #48] ; 0x30 - 8045fae: 4798 blx r3 - 8045fb0: 4603 mov r3, r0 - 8045fb2: 62fb str r3, [r7, #44] ; 0x2c + 8045f14: 4b2e ldr r3, [pc, #184] ; (8045fd0 ) + 8045f16: 681b ldr r3, [r3, #0] + 8045f18: 6b38 ldr r0, [r7, #48] ; 0x30 + 8045f1a: 4798 blx r3 + 8045f1c: 4603 mov r3, r0 + 8045f1e: 62fb str r3, [r7, #44] ; 0x2c if(enc_len == 0) return; - 8045fb4: 6afb ldr r3, [r7, #44] ; 0x2c - 8045fb6: 2b00 cmp r3, #0 - 8045fb8: d04f beq.n 804605a + 8045f20: 6afb ldr r3, [r7, #44] ; 0x2c + 8045f22: 2b00 cmp r3, #0 + 8045f24: d04f beq.n 8045fc6 /*If the textarea's font has "bullet" character use it else fallback to "*"*/ const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 8045fba: 2100 movs r1, #0 - 8045fbc: 6878 ldr r0, [r7, #4] - 8045fbe: f7fe fffd bl 8044fbc - 8045fc2: 62b8 str r0, [r7, #40] ; 0x28 + 8045f26: 2100 movs r1, #0 + 8045f28: 6878 ldr r0, [r7, #4] + 8045f2a: f7fe fffd bl 8044f28 + 8045f2e: 62b8 str r0, [r7, #40] ; 0x28 lv_font_glyph_dsc_t g; bool has_bullet; has_bullet = lv_font_get_glyph_dsc(font, &g, LV_TEXTAREA_PWD_BULLET_UNICODE, 0); - 8045fc4: f107 010c add.w r1, r7, #12 - 8045fc8: 2300 movs r3, #0 - 8045fca: f242 0222 movw r2, #8226 ; 0x2022 - 8045fce: 6ab8 ldr r0, [r7, #40] ; 0x28 - 8045fd0: f7e9 fd6b bl 802faaa - 8045fd4: 4603 mov r3, r0 - 8045fd6: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8045f30: f107 010c add.w r1, r7, #12 + 8045f34: 2300 movs r3, #0 + 8045f36: f242 0222 movw r2, #8226 ; 0x2022 + 8045f3a: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8045f3c: f7e9 fd6b bl 802fa16 + 8045f40: 4603 mov r3, r0 + 8045f42: f887 3027 strb.w r3, [r7, #39] ; 0x27 const char * bullet; if(has_bullet) bullet = LV_SYMBOL_BULLET; - 8045fda: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8045fde: 2b00 cmp r3, #0 - 8045fe0: d002 beq.n 8045fe8 - 8045fe2: 4b21 ldr r3, [pc, #132] ; (8046068 ) - 8045fe4: 63fb str r3, [r7, #60] ; 0x3c - 8045fe6: e001 b.n 8045fec + 8045f46: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 8045f4a: 2b00 cmp r3, #0 + 8045f4c: d002 beq.n 8045f54 + 8045f4e: 4b21 ldr r3, [pc, #132] ; (8045fd4 ) + 8045f50: 63fb str r3, [r7, #60] ; 0x3c + 8045f52: e001 b.n 8045f58 else bullet = "*"; - 8045fe8: 4b20 ldr r3, [pc, #128] ; (804606c ) - 8045fea: 63fb str r3, [r7, #60] ; 0x3c + 8045f54: 4b20 ldr r3, [pc, #128] ; (8045fd8 ) + 8045f56: 63fb str r3, [r7, #60] ; 0x3c size_t bullet_len = strlen(bullet); - 8045fec: 6bf8 ldr r0, [r7, #60] ; 0x3c - 8045fee: f7ba f923 bl 8000238 - 8045ff2: 6238 str r0, [r7, #32] + 8045f58: 6bf8 ldr r0, [r7, #60] ; 0x3c + 8045f5a: f7ba f96d bl 8000238 + 8045f5e: 6238 str r0, [r7, #32] char * txt_tmp = lv_mem_buf_get(enc_len * bullet_len + 1); - 8045ff4: 6afb ldr r3, [r7, #44] ; 0x2c - 8045ff6: 6a3a ldr r2, [r7, #32] - 8045ff8: fb02 f303 mul.w r3, r2, r3 - 8045ffc: 3301 adds r3, #1 - 8045ffe: 4618 mov r0, r3 - 8046000: f7ec fcfe bl 8032a00 - 8046004: 61f8 str r0, [r7, #28] + 8045f60: 6afb ldr r3, [r7, #44] ; 0x2c + 8045f62: 6a3a ldr r2, [r7, #32] + 8045f64: fb02 f303 mul.w r3, r2, r3 + 8045f68: 3301 adds r3, #1 + 8045f6a: 4618 mov r0, r3 + 8045f6c: f7ec fcfe bl 803296c + 8045f70: 61f8 str r0, [r7, #28] int32_t i; for(i = 0; i < enc_len; i++) { - 8046006: 2300 movs r3, #0 - 8046008: 63bb str r3, [r7, #56] ; 0x38 - 804600a: e00d b.n 8046028 + 8045f72: 2300 movs r3, #0 + 8045f74: 63bb str r3, [r7, #56] ; 0x38 + 8045f76: e00d b.n 8045f94 lv_memcpy(&txt_tmp[i * bullet_len], bullet, bullet_len); - 804600c: 6bbb ldr r3, [r7, #56] ; 0x38 - 804600e: 6a3a ldr r2, [r7, #32] - 8046010: fb02 f303 mul.w r3, r2, r3 - 8046014: 69fa ldr r2, [r7, #28] - 8046016: 4413 add r3, r2 - 8046018: 6a3a ldr r2, [r7, #32] - 804601a: 6bf9 ldr r1, [r7, #60] ; 0x3c - 804601c: 4618 mov r0, r3 - 804601e: f7ec fdf3 bl 8032c08 + 8045f78: 6bbb ldr r3, [r7, #56] ; 0x38 + 8045f7a: 6a3a ldr r2, [r7, #32] + 8045f7c: fb02 f303 mul.w r3, r2, r3 + 8045f80: 69fa ldr r2, [r7, #28] + 8045f82: 4413 add r3, r2 + 8045f84: 6a3a ldr r2, [r7, #32] + 8045f86: 6bf9 ldr r1, [r7, #60] ; 0x3c + 8045f88: 4618 mov r0, r3 + 8045f8a: f7ec fdf3 bl 8032b74 for(i = 0; i < enc_len; i++) { - 8046022: 6bbb ldr r3, [r7, #56] ; 0x38 - 8046024: 3301 adds r3, #1 - 8046026: 63bb str r3, [r7, #56] ; 0x38 - 8046028: 6bba ldr r2, [r7, #56] ; 0x38 - 804602a: 6afb ldr r3, [r7, #44] ; 0x2c - 804602c: 429a cmp r2, r3 - 804602e: dbed blt.n 804600c + 8045f8e: 6bbb ldr r3, [r7, #56] ; 0x38 + 8045f90: 3301 adds r3, #1 + 8045f92: 63bb str r3, [r7, #56] ; 0x38 + 8045f94: 6bba ldr r2, [r7, #56] ; 0x38 + 8045f96: 6afb ldr r3, [r7, #44] ; 0x2c + 8045f98: 429a cmp r2, r3 + 8045f9a: dbed blt.n 8045f78 } txt_tmp[i * bullet_len] = '\0'; - 8046030: 6bbb ldr r3, [r7, #56] ; 0x38 - 8046032: 6a3a ldr r2, [r7, #32] - 8046034: fb02 f303 mul.w r3, r2, r3 - 8046038: 69fa ldr r2, [r7, #28] - 804603a: 4413 add r3, r2 - 804603c: 2200 movs r2, #0 - 804603e: 701a strb r2, [r3, #0] + 8045f9c: 6bbb ldr r3, [r7, #56] ; 0x38 + 8045f9e: 6a3a ldr r2, [r7, #32] + 8045fa0: fb02 f303 mul.w r3, r2, r3 + 8045fa4: 69fa ldr r2, [r7, #28] + 8045fa6: 4413 add r3, r2 + 8045fa8: 2200 movs r2, #0 + 8045faa: 701a strb r2, [r3, #0] lv_label_set_text(ta->label, txt_tmp); - 8046040: 6b7b ldr r3, [r7, #52] ; 0x34 - 8046042: 6a5b ldr r3, [r3, #36] ; 0x24 - 8046044: 69f9 ldr r1, [r7, #28] - 8046046: 4618 mov r0, r3 - 8046048: f7f8 fe5c bl 803ed04 + 8045fac: 6b7b ldr r3, [r7, #52] ; 0x34 + 8045fae: 6a5b ldr r3, [r3, #36] ; 0x24 + 8045fb0: 69f9 ldr r1, [r7, #28] + 8045fb2: 4618 mov r0, r3 + 8045fb4: f7f8 fe5c bl 803ec70 lv_mem_buf_release(txt_tmp); - 804604c: 69f8 ldr r0, [r7, #28] - 804604e: f7ec fd83 bl 8032b58 + 8045fb8: 69f8 ldr r0, [r7, #28] + 8045fba: f7ec fd83 bl 8032ac4 refr_cursor_area(obj); - 8046052: 6878 ldr r0, [r7, #4] - 8046054: f000 f8b8 bl 80461c8 - 8046058: e000 b.n 804605c + 8045fbe: 6878 ldr r0, [r7, #4] + 8045fc0: f000 f8b8 bl 8046134 + 8045fc4: e000 b.n 8045fc8 if(enc_len == 0) return; - 804605a: bf00 nop + 8045fc6: bf00 nop } } - 804605c: 3740 adds r7, #64 ; 0x40 - 804605e: 46bd mov sp, r7 - 8046060: bd80 pop {r7, pc} - 8046062: bf00 nop - 8046064: 200000fc .word 0x200000fc - 8046068: 080471f4 .word 0x080471f4 - 804606c: 080471f8 .word 0x080471f8 + 8045fc8: 3740 adds r7, #64 ; 0x40 + 8045fca: 46bd mov sp, r7 + 8045fcc: bd80 pop {r7, pc} + 8045fce: bf00 nop + 8045fd0: 200000fc .word 0x200000fc + 8045fd4: 0804714c .word 0x0804714c + 8045fd8: 08047150 .word 0x08047150 -08046070 : +08045fdc : * @param ta pointer to a test area object * @param c an unicode character * @return true: accepted; false: rejected */ static bool char_is_accepted(lv_obj_t * obj, uint32_t c) { - 8046070: b590 push {r4, r7, lr} - 8046072: b087 sub sp, #28 - 8046074: af00 add r7, sp, #0 - 8046076: 6078 str r0, [r7, #4] - 8046078: 6039 str r1, [r7, #0] + 8045fdc: b590 push {r4, r7, lr} + 8045fde: b087 sub sp, #28 + 8045fe0: af00 add r7, sp, #0 + 8045fe2: 6078 str r0, [r7, #4] + 8045fe4: 6039 str r1, [r7, #0] lv_textarea_t * ta = (lv_textarea_t *)obj; - 804607a: 687b ldr r3, [r7, #4] - 804607c: 617b str r3, [r7, #20] + 8045fe6: 687b ldr r3, [r7, #4] + 8045fe8: 617b str r3, [r7, #20] /*If no restriction accept it*/ if((ta->accepted_chars == NULL || ta->accepted_chars[0] == '\0') && ta->max_length == 0) return true; - 804607e: 697b ldr r3, [r7, #20] - 8046080: 6b1b ldr r3, [r3, #48] ; 0x30 - 8046082: 2b00 cmp r3, #0 - 8046084: d004 beq.n 8046090 - 8046086: 697b ldr r3, [r7, #20] - 8046088: 6b1b ldr r3, [r3, #48] ; 0x30 - 804608a: 781b ldrb r3, [r3, #0] - 804608c: 2b00 cmp r3, #0 - 804608e: d105 bne.n 804609c - 8046090: 697b ldr r3, [r7, #20] - 8046092: 6b5b ldr r3, [r3, #52] ; 0x34 - 8046094: 2b00 cmp r3, #0 - 8046096: d101 bne.n 804609c - 8046098: 2301 movs r3, #1 - 804609a: e032 b.n 8046102 + 8045fea: 697b ldr r3, [r7, #20] + 8045fec: 6b1b ldr r3, [r3, #48] ; 0x30 + 8045fee: 2b00 cmp r3, #0 + 8045ff0: d004 beq.n 8045ffc + 8045ff2: 697b ldr r3, [r7, #20] + 8045ff4: 6b1b ldr r3, [r3, #48] ; 0x30 + 8045ff6: 781b ldrb r3, [r3, #0] + 8045ff8: 2b00 cmp r3, #0 + 8045ffa: d105 bne.n 8046008 + 8045ffc: 697b ldr r3, [r7, #20] + 8045ffe: 6b5b ldr r3, [r3, #52] ; 0x34 + 8046000: 2b00 cmp r3, #0 + 8046002: d101 bne.n 8046008 + 8046004: 2301 movs r3, #1 + 8046006: e032 b.n 804606e /*Too many characters?*/ if(ta->max_length > 0 && _lv_txt_get_encoded_length(lv_textarea_get_text(obj)) >= ta->max_length) { - 804609c: 697b ldr r3, [r7, #20] - 804609e: 6b5b ldr r3, [r3, #52] ; 0x34 - 80460a0: 2b00 cmp r3, #0 - 80460a2: d00e beq.n 80460c2 - 80460a4: 4b19 ldr r3, [pc, #100] ; (804610c ) - 80460a6: 681c ldr r4, [r3, #0] - 80460a8: 6878 ldr r0, [r7, #4] - 80460aa: f7ff fc46 bl 804593a - 80460ae: 4603 mov r3, r0 - 80460b0: 4618 mov r0, r3 - 80460b2: 47a0 blx r4 - 80460b4: 4602 mov r2, r0 - 80460b6: 697b ldr r3, [r7, #20] - 80460b8: 6b5b ldr r3, [r3, #52] ; 0x34 - 80460ba: 429a cmp r2, r3 - 80460bc: d301 bcc.n 80460c2 + 8046008: 697b ldr r3, [r7, #20] + 804600a: 6b5b ldr r3, [r3, #52] ; 0x34 + 804600c: 2b00 cmp r3, #0 + 804600e: d00e beq.n 804602e + 8046010: 4b19 ldr r3, [pc, #100] ; (8046078 ) + 8046012: 681c ldr r4, [r3, #0] + 8046014: 6878 ldr r0, [r7, #4] + 8046016: f7ff fc46 bl 80458a6 + 804601a: 4603 mov r3, r0 + 804601c: 4618 mov r0, r3 + 804601e: 47a0 blx r4 + 8046020: 4602 mov r2, r0 + 8046022: 697b ldr r3, [r7, #20] + 8046024: 6b5b ldr r3, [r3, #52] ; 0x34 + 8046026: 429a cmp r2, r3 + 8046028: d301 bcc.n 804602e return false; - 80460be: 2300 movs r3, #0 - 80460c0: e01f b.n 8046102 + 804602a: 2300 movs r3, #0 + 804602c: e01f b.n 804606e } /*Accepted character?*/ if(ta->accepted_chars) { - 80460c2: 697b ldr r3, [r7, #20] - 80460c4: 6b1b ldr r3, [r3, #48] ; 0x30 - 80460c6: 2b00 cmp r3, #0 - 80460c8: d01a beq.n 8046100 + 804602e: 697b ldr r3, [r7, #20] + 8046030: 6b1b ldr r3, [r3, #48] ; 0x30 + 8046032: 2b00 cmp r3, #0 + 8046034: d01a beq.n 804606c uint32_t i = 0; - 80460ca: 2300 movs r3, #0 - 80460cc: 60fb str r3, [r7, #12] + 8046036: 2300 movs r3, #0 + 8046038: 60fb str r3, [r7, #12] while(ta->accepted_chars[i] != '\0') { - 80460ce: e00e b.n 80460ee + 804603a: e00e b.n 804605a uint32_t a = _lv_txt_encoded_next(ta->accepted_chars, &i); - 80460d0: 4b0f ldr r3, [pc, #60] ; (8046110 ) - 80460d2: 681b ldr r3, [r3, #0] - 80460d4: 697a ldr r2, [r7, #20] - 80460d6: 6b12 ldr r2, [r2, #48] ; 0x30 - 80460d8: f107 010c add.w r1, r7, #12 - 80460dc: 4610 mov r0, r2 - 80460de: 4798 blx r3 - 80460e0: 6138 str r0, [r7, #16] + 804603c: 4b0f ldr r3, [pc, #60] ; (804607c ) + 804603e: 681b ldr r3, [r3, #0] + 8046040: 697a ldr r2, [r7, #20] + 8046042: 6b12 ldr r2, [r2, #48] ; 0x30 + 8046044: f107 010c add.w r1, r7, #12 + 8046048: 4610 mov r0, r2 + 804604a: 4798 blx r3 + 804604c: 6138 str r0, [r7, #16] if(a == c) return true; /*Accepted*/ - 80460e2: 693a ldr r2, [r7, #16] - 80460e4: 683b ldr r3, [r7, #0] - 80460e6: 429a cmp r2, r3 - 80460e8: d101 bne.n 80460ee - 80460ea: 2301 movs r3, #1 - 80460ec: e009 b.n 8046102 + 804604e: 693a ldr r2, [r7, #16] + 8046050: 683b ldr r3, [r7, #0] + 8046052: 429a cmp r2, r3 + 8046054: d101 bne.n 804605a + 8046056: 2301 movs r3, #1 + 8046058: e009 b.n 804606e while(ta->accepted_chars[i] != '\0') { - 80460ee: 697b ldr r3, [r7, #20] - 80460f0: 6b1a ldr r2, [r3, #48] ; 0x30 - 80460f2: 68fb ldr r3, [r7, #12] - 80460f4: 4413 add r3, r2 - 80460f6: 781b ldrb r3, [r3, #0] - 80460f8: 2b00 cmp r3, #0 - 80460fa: d1e9 bne.n 80460d0 + 804605a: 697b ldr r3, [r7, #20] + 804605c: 6b1a ldr r2, [r3, #48] ; 0x30 + 804605e: 68fb ldr r3, [r7, #12] + 8046060: 4413 add r3, r2 + 8046062: 781b ldrb r3, [r3, #0] + 8046064: 2b00 cmp r3, #0 + 8046066: d1e9 bne.n 804603c } return false; /*The character wasn't in the list*/ - 80460fc: 2300 movs r3, #0 - 80460fe: e000 b.n 8046102 + 8046068: 2300 movs r3, #0 + 804606a: e000 b.n 804606e } else { return true; /*If the accepted char list in not specified the accept the character*/ - 8046100: 2301 movs r3, #1 + 804606c: 2301 movs r3, #1 } } - 8046102: 4618 mov r0, r3 - 8046104: 371c adds r7, #28 - 8046106: 46bd mov sp, r7 - 8046108: bd90 pop {r4, r7, pc} - 804610a: bf00 nop - 804610c: 200000fc .word 0x200000fc - 8046110: 200000ec .word 0x200000ec + 804606e: 4618 mov r0, r3 + 8046070: 371c adds r7, #28 + 8046072: 46bd mov sp, r7 + 8046074: bd90 pop {r4, r7, pc} + 8046076: bf00 nop + 8046078: 200000fc .word 0x200000fc + 804607c: 200000ec .word 0x200000ec -08046114 : +08046080 : static void start_cursor_blink(lv_obj_t * obj) { - 8046114: b580 push {r7, lr} - 8046116: b094 sub sp, #80 ; 0x50 - 8046118: af00 add r7, sp, #0 - 804611a: 6078 str r0, [r7, #4] + 8046080: b580 push {r7, lr} + 8046082: b094 sub sp, #80 ; 0x50 + 8046084: af00 add r7, sp, #0 + 8046086: 6078 str r0, [r7, #4] lv_textarea_t * ta = (lv_textarea_t *)obj; - 804611c: 687b ldr r3, [r7, #4] - 804611e: 64fb str r3, [r7, #76] ; 0x4c + 8046088: 687b ldr r3, [r7, #4] + 804608a: 64fb str r3, [r7, #76] ; 0x4c uint32_t blink_time = lv_obj_get_style_anim_time(obj, LV_PART_CURSOR); - 8046120: f44f 21e0 mov.w r1, #458752 ; 0x70000 - 8046124: 6878 ldr r0, [r7, #4] - 8046126: f7fe ff6e bl 8045006 - 804612a: 64b8 str r0, [r7, #72] ; 0x48 + 804608c: f44f 21e0 mov.w r1, #458752 ; 0x70000 + 8046090: 6878 ldr r0, [r7, #4] + 8046092: f7fe ff6e bl 8044f72 + 8046096: 64b8 str r0, [r7, #72] ; 0x48 if(blink_time == 0) { - 804612c: 6cbb ldr r3, [r7, #72] ; 0x48 - 804612e: 2b00 cmp r3, #0 - 8046130: d10b bne.n 804614a + 8046098: 6cbb ldr r3, [r7, #72] ; 0x48 + 804609a: 2b00 cmp r3, #0 + 804609c: d10b bne.n 80460b6 lv_anim_del(obj, cursor_blink_anim_cb); - 8046132: 4923 ldr r1, [pc, #140] ; (80461c0 ) - 8046134: 6878 ldr r0, [r7, #4] - 8046136: f7ea fc29 bl 803098c + 804609e: 4923 ldr r1, [pc, #140] ; (804612c ) + 80460a0: 6878 ldr r0, [r7, #4] + 80460a2: f7ea fc29 bl 80308f8 ta->cursor.show = 1; - 804613a: 6cfa ldr r2, [r7, #76] ; 0x4c - 804613c: f892 3050 ldrb.w r3, [r2, #80] ; 0x50 - 8046140: f043 0301 orr.w r3, r3, #1 - 8046144: f882 3050 strb.w r3, [r2, #80] ; 0x50 + 80460a6: 6cfa ldr r2, [r7, #76] ; 0x4c + 80460a8: f892 3050 ldrb.w r3, [r2, #80] ; 0x50 + 80460ac: f043 0301 orr.w r3, r3, #1 + 80460b0: f882 3050 strb.w r3, [r2, #80] ; 0x50 lv_anim_set_values(&a, 1, 0); lv_anim_set_path_cb(&a, lv_anim_path_step); lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE); lv_anim_start(&a); } } - 8046148: e035 b.n 80461b6 + 80460b4: e035 b.n 8046122 lv_anim_init(&a); - 804614a: f107 0308 add.w r3, r7, #8 - 804614e: 4618 mov r0, r3 - 8046150: f7ea fb7e bl 8030850 + 80460b6: f107 0308 add.w r3, r7, #8 + 80460ba: 4618 mov r0, r3 + 80460bc: f7ea fb7e bl 80307bc lv_anim_set_var(&a, ta); - 8046154: f107 0308 add.w r3, r7, #8 - 8046158: 6cf9 ldr r1, [r7, #76] ; 0x4c - 804615a: 4618 mov r0, r3 - 804615c: f7fe fe4d bl 8044dfa + 80460c0: f107 0308 add.w r3, r7, #8 + 80460c4: 6cf9 ldr r1, [r7, #76] ; 0x4c + 80460c6: 4618 mov r0, r3 + 80460c8: f7fe fe4d bl 8044d66 lv_anim_set_exec_cb(&a, cursor_blink_anim_cb); - 8046160: f107 0308 add.w r3, r7, #8 - 8046164: 4916 ldr r1, [pc, #88] ; (80461c0 ) - 8046166: 4618 mov r0, r3 - 8046168: f7fe fe54 bl 8044e14 + 80460cc: f107 0308 add.w r3, r7, #8 + 80460d0: 4916 ldr r1, [pc, #88] ; (804612c ) + 80460d2: 4618 mov r0, r3 + 80460d4: f7fe fe54 bl 8044d80 lv_anim_set_time(&a, blink_time); - 804616c: f107 0308 add.w r3, r7, #8 - 8046170: 6cb9 ldr r1, [r7, #72] ; 0x48 - 8046172: 4618 mov r0, r3 - 8046174: f7fe fe5b bl 8044e2e + 80460d8: f107 0308 add.w r3, r7, #8 + 80460dc: 6cb9 ldr r1, [r7, #72] ; 0x48 + 80460de: 4618 mov r0, r3 + 80460e0: f7fe fe5b bl 8044d9a lv_anim_set_playback_time(&a, blink_time); - 8046178: f107 0308 add.w r3, r7, #8 - 804617c: 6cb9 ldr r1, [r7, #72] ; 0x48 - 804617e: 4618 mov r0, r3 - 8046180: f7fe fe90 bl 8044ea4 + 80460e4: f107 0308 add.w r3, r7, #8 + 80460e8: 6cb9 ldr r1, [r7, #72] ; 0x48 + 80460ea: 4618 mov r0, r3 + 80460ec: f7fe fe90 bl 8044e10 lv_anim_set_values(&a, 1, 0); - 8046184: f107 0308 add.w r3, r7, #8 - 8046188: 2200 movs r2, #0 - 804618a: 2101 movs r1, #1 - 804618c: 4618 mov r0, r3 - 804618e: f7fe fe5b bl 8044e48 + 80460f0: f107 0308 add.w r3, r7, #8 + 80460f4: 2200 movs r2, #0 + 80460f6: 2101 movs r1, #1 + 80460f8: 4618 mov r0, r3 + 80460fa: f7fe fe5b bl 8044db4 lv_anim_set_path_cb(&a, lv_anim_path_step); - 8046192: f107 0308 add.w r3, r7, #8 - 8046196: 490b ldr r1, [pc, #44] ; (80461c4 ) - 8046198: 4618 mov r0, r3 - 804619a: f7fe fe69 bl 8044e70 + 80460fe: f107 0308 add.w r3, r7, #8 + 8046102: 490b ldr r1, [pc, #44] ; (8046130 ) + 8046104: 4618 mov r0, r3 + 8046106: f7fe fe69 bl 8044ddc lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE); - 804619e: f107 0308 add.w r3, r7, #8 - 80461a2: f64f 71ff movw r1, #65535 ; 0xffff - 80461a6: 4618 mov r0, r3 - 80461a8: f7fe fe89 bl 8044ebe + 804610a: f107 0308 add.w r3, r7, #8 + 804610e: f64f 71ff movw r1, #65535 ; 0xffff + 8046112: 4618 mov r0, r3 + 8046114: f7fe fe89 bl 8044e2a lv_anim_start(&a); - 80461ac: f107 0308 add.w r3, r7, #8 - 80461b0: 4618 mov r0, r3 - 80461b2: f7ea fb73 bl 803089c + 8046118: f107 0308 add.w r3, r7, #8 + 804611c: 4618 mov r0, r3 + 804611e: f7ea fb73 bl 8030808 } - 80461b6: bf00 nop - 80461b8: 3750 adds r7, #80 ; 0x50 - 80461ba: 46bd mov sp, r7 - 80461bc: bd80 pop {r7, pc} - 80461be: bf00 nop - 80461c0: 08045e8f .word 0x08045e8f - 80461c4: 08030bab .word 0x08030bab + 8046122: bf00 nop + 8046124: 3750 adds r7, #80 ; 0x50 + 8046126: 46bd mov sp, r7 + 8046128: bd80 pop {r7, pc} + 804612a: bf00 nop + 804612c: 08045dfb .word 0x08045dfb + 8046130: 08030b17 .word 0x08030b17 -080461c8 : +08046134 : static void refr_cursor_area(lv_obj_t * obj) { - 80461c8: b590 push {r4, r7, lr} - 80461ca: b095 sub sp, #84 ; 0x54 - 80461cc: af00 add r7, sp, #0 - 80461ce: 6078 str r0, [r7, #4] + 8046134: b590 push {r4, r7, lr} + 8046136: b095 sub sp, #84 ; 0x54 + 8046138: af00 add r7, sp, #0 + 804613a: 6078 str r0, [r7, #4] lv_textarea_t * ta = (lv_textarea_t *)obj; - 80461d0: 687b ldr r3, [r7, #4] - 80461d2: 643b str r3, [r7, #64] ; 0x40 + 804613c: 687b ldr r3, [r7, #4] + 804613e: 643b str r3, [r7, #64] ; 0x40 const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN); - 80461d4: 2100 movs r1, #0 - 80461d6: 6878 ldr r0, [r7, #4] - 80461d8: f7fe fef0 bl 8044fbc - 80461dc: 63f8 str r0, [r7, #60] ; 0x3c + 8046140: 2100 movs r1, #0 + 8046142: 6878 ldr r0, [r7, #4] + 8046144: f7fe fef0 bl 8044f28 + 8046148: 63f8 str r0, [r7, #60] ; 0x3c lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN); - 80461de: 2100 movs r1, #0 - 80461e0: 6878 ldr r0, [r7, #4] - 80461e2: f7fe fefd bl 8044fe0 - 80461e6: 4603 mov r3, r0 - 80461e8: 877b strh r3, [r7, #58] ; 0x3a + 804614a: 2100 movs r1, #0 + 804614c: 6878 ldr r0, [r7, #4] + 804614e: f7fe fefd bl 8044f4c + 8046152: 4603 mov r3, r0 + 8046154: 877b strh r3, [r7, #58] ; 0x3a uint32_t cur_pos = lv_textarea_get_cursor_pos(obj); - 80461ea: 6878 ldr r0, [r7, #4] - 80461ec: f7ff fbc2 bl 8045974 - 80461f0: 6378 str r0, [r7, #52] ; 0x34 + 8046156: 6878 ldr r0, [r7, #4] + 8046158: f7ff fbc2 bl 80458e0 + 804615c: 6378 str r0, [r7, #52] ; 0x34 const char * txt = lv_label_get_text(ta->label); - 80461f2: 6c3b ldr r3, [r7, #64] ; 0x40 - 80461f4: 6a5b ldr r3, [r3, #36] ; 0x24 - 80461f6: 4618 mov r0, r3 - 80461f8: f7f8 fee4 bl 803efc4 - 80461fc: 6338 str r0, [r7, #48] ; 0x30 + 804615e: 6c3b ldr r3, [r7, #64] ; 0x40 + 8046160: 6a5b ldr r3, [r3, #36] ; 0x24 + 8046162: 4618 mov r0, r3 + 8046164: f7f8 fee4 bl 803ef30 + 8046168: 6338 str r0, [r7, #48] ; 0x30 uint32_t byte_pos; byte_pos = _lv_txt_encoded_get_byte_id(txt, cur_pos); - 80461fe: 4b4d ldr r3, [pc, #308] ; (8046334 ) - 8046200: 681b ldr r3, [r3, #0] - 8046202: 6b79 ldr r1, [r7, #52] ; 0x34 - 8046204: 6b38 ldr r0, [r7, #48] ; 0x30 - 8046206: 4798 blx r3 - 8046208: 64f8 str r0, [r7, #76] ; 0x4c + 804616a: 4b4d ldr r3, [pc, #308] ; (80462a0 ) + 804616c: 681b ldr r3, [r3, #0] + 804616e: 6b79 ldr r1, [r7, #52] ; 0x34 + 8046170: 6b38 ldr r0, [r7, #48] ; 0x30 + 8046172: 4798 blx r3 + 8046174: 64f8 str r0, [r7, #76] ; 0x4c uint32_t letter = _lv_txt_encoded_next(&txt[byte_pos], NULL); - 804620a: 4b4b ldr r3, [pc, #300] ; (8046338 ) - 804620c: 681b ldr r3, [r3, #0] - 804620e: 6b39 ldr r1, [r7, #48] ; 0x30 - 8046210: 6cfa ldr r2, [r7, #76] ; 0x4c - 8046212: 440a add r2, r1 - 8046214: 2100 movs r1, #0 - 8046216: 4610 mov r0, r2 - 8046218: 4798 blx r3 - 804621a: 64b8 str r0, [r7, #72] ; 0x48 + 8046176: 4b4b ldr r3, [pc, #300] ; (80462a4 ) + 8046178: 681b ldr r3, [r3, #0] + 804617a: 6b39 ldr r1, [r7, #48] ; 0x30 + 804617c: 6cfa ldr r2, [r7, #76] ; 0x4c + 804617e: 440a add r2, r1 + 8046180: 2100 movs r1, #0 + 8046182: 4610 mov r0, r2 + 8046184: 4798 blx r3 + 8046186: 64b8 str r0, [r7, #72] ; 0x48 lv_coord_t letter_h = lv_font_get_line_height(font); - 804621c: 6bf8 ldr r0, [r7, #60] ; 0x3c - 804621e: f7fe fde0 bl 8044de2 - 8046222: 4603 mov r3, r0 - 8046224: 85fb strh r3, [r7, #46] ; 0x2e + 8046188: 6bf8 ldr r0, [r7, #60] ; 0x3c + 804618a: f7fe fde0 bl 8044d4e + 804618e: 4603 mov r3, r0 + 8046190: 85fb strh r3, [r7, #46] ; 0x2e /*Set letter_w (set not 0 on non printable but valid chars)*/ lv_coord_t letter_w; if(letter == '\0' || letter == '\n' || letter == '\r') { - 8046226: 6cbb ldr r3, [r7, #72] ; 0x48 - 8046228: 2b00 cmp r3, #0 - 804622a: d005 beq.n 8046238 - 804622c: 6cbb ldr r3, [r7, #72] ; 0x48 - 804622e: 2b0a cmp r3, #10 - 8046230: d002 beq.n 8046238 - 8046232: 6cbb ldr r3, [r7, #72] ; 0x48 - 8046234: 2b0d cmp r3, #13 - 8046236: d108 bne.n 804624a + 8046192: 6cbb ldr r3, [r7, #72] ; 0x48 + 8046194: 2b00 cmp r3, #0 + 8046196: d005 beq.n 80461a4 + 8046198: 6cbb ldr r3, [r7, #72] ; 0x48 + 804619a: 2b0a cmp r3, #10 + 804619c: d002 beq.n 80461a4 + 804619e: 6cbb ldr r3, [r7, #72] ; 0x48 + 80461a0: 2b0d cmp r3, #13 + 80461a2: d108 bne.n 80461b6 letter_w = lv_font_get_glyph_width(font, ' ', '\0'); - 8046238: 2200 movs r2, #0 - 804623a: 2120 movs r1, #32 - 804623c: 6bf8 ldr r0, [r7, #60] ; 0x3c - 804623e: f7e9 fc6d bl 802fb1c - 8046242: 4603 mov r3, r0 - 8046244: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 - 8046248: e007 b.n 804625a + 80461a4: 2200 movs r2, #0 + 80461a6: 2120 movs r1, #32 + 80461a8: 6bf8 ldr r0, [r7, #60] ; 0x3c + 80461aa: f7e9 fc6d bl 802fa88 + 80461ae: 4603 mov r3, r0 + 80461b0: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 80461b4: e007 b.n 80461c6 } else { /*`letter_next` parameter is '\0' to ignore kerning*/ letter_w = lv_font_get_glyph_width(font, letter, '\0'); - 804624a: 2200 movs r2, #0 - 804624c: 6cb9 ldr r1, [r7, #72] ; 0x48 - 804624e: 6bf8 ldr r0, [r7, #60] ; 0x3c - 8046250: f7e9 fc64 bl 802fb1c - 8046254: 4603 mov r3, r0 - 8046256: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 80461b6: 2200 movs r2, #0 + 80461b8: 6cb9 ldr r1, [r7, #72] ; 0x48 + 80461ba: 6bf8 ldr r0, [r7, #60] ; 0x3c + 80461bc: f7e9 fc64 bl 802fa88 + 80461c0: 4603 mov r3, r0 + 80461c2: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 } lv_point_t letter_pos; lv_label_get_letter_pos(ta->label, cur_pos, &letter_pos); - 804625a: 6c3b ldr r3, [r7, #64] ; 0x40 - 804625c: 6a5b ldr r3, [r3, #36] ; 0x24 - 804625e: f107 021c add.w r2, r7, #28 - 8046262: 6b79 ldr r1, [r7, #52] ; 0x34 - 8046264: 4618 mov r0, r3 - 8046266: f7f8 febb bl 803efe0 + 80461c6: 6c3b ldr r3, [r7, #64] ; 0x40 + 80461c8: 6a5b ldr r3, [r3, #36] ; 0x24 + 80461ca: f107 021c add.w r2, r7, #28 + 80461ce: 6b79 ldr r1, [r7, #52] ; 0x34 + 80461d0: 4618 mov r0, r3 + 80461d2: f7f8 febb bl 803ef4c lv_text_align_t align = lv_obj_calculate_style_text_align(ta->label, LV_PART_MAIN, lv_label_get_text(ta->label)); - 804626a: 6c3b ldr r3, [r7, #64] ; 0x40 - 804626c: 6a5c ldr r4, [r3, #36] ; 0x24 - 804626e: 6c3b ldr r3, [r7, #64] ; 0x40 - 8046270: 6a5b ldr r3, [r3, #36] ; 0x24 - 8046272: 4618 mov r0, r3 - 8046274: f7f8 fea6 bl 803efc4 - 8046278: 4603 mov r3, r0 - 804627a: 461a mov r2, r3 - 804627c: 2100 movs r1, #0 - 804627e: 4620 mov r0, r4 - 8046280: f7c8 fa1e bl 800e6c0 - 8046284: 4603 mov r3, r0 - 8046286: f887 302d strb.w r3, [r7, #45] ; 0x2d + 80461d6: 6c3b ldr r3, [r7, #64] ; 0x40 + 80461d8: 6a5c ldr r4, [r3, #36] ; 0x24 + 80461da: 6c3b ldr r3, [r7, #64] ; 0x40 + 80461dc: 6a5b ldr r3, [r3, #36] ; 0x24 + 80461de: 4618 mov r0, r3 + 80461e0: f7f8 fea6 bl 803ef30 + 80461e4: 4603 mov r3, r0 + 80461e6: 461a mov r2, r3 + 80461e8: 2100 movs r1, #0 + 80461ea: 4620 mov r0, r4 + 80461ec: f7c8 fa32 bl 800e654 + 80461f0: 4603 mov r3, r0 + 80461f2: f887 302d strb.w r3, [r7, #45] ; 0x2d /*If the cursor is out of the text (most right) draw it to the next line*/ if(letter_pos.x + ta->label->coords.x1 + letter_w > ta->label->coords.x2 && ta->one_line == 0 && - 804628a: f9b7 301c ldrsh.w r3, [r7, #28] - 804628e: 461a mov r2, r3 - 8046290: 6c3b ldr r3, [r7, #64] ; 0x40 - 8046292: 6a5b ldr r3, [r3, #36] ; 0x24 - 8046294: f9b3 3014 ldrsh.w r3, [r3, #20] - 8046298: 441a add r2, r3 - 804629a: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 - 804629e: 4413 add r3, r2 - 80462a0: 6c3a ldr r2, [r7, #64] ; 0x40 - 80462a2: 6a52 ldr r2, [r2, #36] ; 0x24 - 80462a4: f9b2 2018 ldrsh.w r2, [r2, #24] - 80462a8: 4293 cmp r3, r2 - 80462aa: dd51 ble.n 8046350 - 80462ac: 6c3b ldr r3, [r7, #64] ; 0x40 - 80462ae: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 80462b2: f003 0308 and.w r3, r3, #8 - 80462b6: b2db uxtb r3, r3 - 80462b8: 2b00 cmp r3, #0 - 80462ba: d149 bne.n 8046350 - 80462bc: f897 302d ldrb.w r3, [r7, #45] ; 0x2d - 80462c0: 2b03 cmp r3, #3 - 80462c2: d045 beq.n 8046350 + 80461f6: f9b7 301c ldrsh.w r3, [r7, #28] + 80461fa: 461a mov r2, r3 + 80461fc: 6c3b ldr r3, [r7, #64] ; 0x40 + 80461fe: 6a5b ldr r3, [r3, #36] ; 0x24 + 8046200: f9b3 3014 ldrsh.w r3, [r3, #20] + 8046204: 441a add r2, r3 + 8046206: f9b7 3046 ldrsh.w r3, [r7, #70] ; 0x46 + 804620a: 4413 add r3, r2 + 804620c: 6c3a ldr r2, [r7, #64] ; 0x40 + 804620e: 6a52 ldr r2, [r2, #36] ; 0x24 + 8046210: f9b2 2018 ldrsh.w r2, [r2, #24] + 8046214: 4293 cmp r3, r2 + 8046216: dd51 ble.n 80462bc + 8046218: 6c3b ldr r3, [r7, #64] ; 0x40 + 804621a: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 804621e: f003 0308 and.w r3, r3, #8 + 8046222: b2db uxtb r3, r3 + 8046224: 2b00 cmp r3, #0 + 8046226: d149 bne.n 80462bc + 8046228: f897 302d ldrb.w r3, [r7, #45] ; 0x2d + 804622c: 2b03 cmp r3, #3 + 804622e: d045 beq.n 80462bc align != LV_TEXT_ALIGN_RIGHT) { letter_pos.x = 0; - 80462c4: 2300 movs r3, #0 - 80462c6: 83bb strh r3, [r7, #28] + 8046230: 2300 movs r3, #0 + 8046232: 83bb strh r3, [r7, #28] letter_pos.y += letter_h + line_space; - 80462c8: f9b7 301e ldrsh.w r3, [r7, #30] - 80462cc: b29a uxth r2, r3 - 80462ce: 8df9 ldrh r1, [r7, #46] ; 0x2e - 80462d0: 8f7b ldrh r3, [r7, #58] ; 0x3a - 80462d2: 440b add r3, r1 - 80462d4: b29b uxth r3, r3 - 80462d6: 4413 add r3, r2 - 80462d8: b29b uxth r3, r3 - 80462da: b21b sxth r3, r3 - 80462dc: 83fb strh r3, [r7, #30] + 8046234: f9b7 301e ldrsh.w r3, [r7, #30] + 8046238: b29a uxth r2, r3 + 804623a: 8df9 ldrh r1, [r7, #46] ; 0x2e + 804623c: 8f7b ldrh r3, [r7, #58] ; 0x3a + 804623e: 440b add r3, r1 + 8046240: b29b uxth r3, r3 + 8046242: 4413 add r3, r2 + 8046244: b29b uxth r3, r3 + 8046246: b21b sxth r3, r3 + 8046248: 83fb strh r3, [r7, #30] if(letter != '\0') { - 80462de: 6cbb ldr r3, [r7, #72] ; 0x48 - 80462e0: 2b00 cmp r3, #0 - 80462e2: d014 beq.n 804630e + 804624a: 6cbb ldr r3, [r7, #72] ; 0x48 + 804624c: 2b00 cmp r3, #0 + 804624e: d014 beq.n 804627a byte_pos += _lv_txt_encoded_size(&txt[byte_pos]); - 80462e4: 4b15 ldr r3, [pc, #84] ; (804633c ) - 80462e6: 681b ldr r3, [r3, #0] - 80462e8: 6b39 ldr r1, [r7, #48] ; 0x30 - 80462ea: 6cfa ldr r2, [r7, #76] ; 0x4c - 80462ec: 440a add r2, r1 - 80462ee: 4610 mov r0, r2 - 80462f0: 4798 blx r3 - 80462f2: 4603 mov r3, r0 - 80462f4: 461a mov r2, r3 - 80462f6: 6cfb ldr r3, [r7, #76] ; 0x4c - 80462f8: 4413 add r3, r2 - 80462fa: 64fb str r3, [r7, #76] ; 0x4c + 8046250: 4b15 ldr r3, [pc, #84] ; (80462a8 ) + 8046252: 681b ldr r3, [r3, #0] + 8046254: 6b39 ldr r1, [r7, #48] ; 0x30 + 8046256: 6cfa ldr r2, [r7, #76] ; 0x4c + 8046258: 440a add r2, r1 + 804625a: 4610 mov r0, r2 + 804625c: 4798 blx r3 + 804625e: 4603 mov r3, r0 + 8046260: 461a mov r2, r3 + 8046262: 6cfb ldr r3, [r7, #76] ; 0x4c + 8046264: 4413 add r3, r2 + 8046266: 64fb str r3, [r7, #76] ; 0x4c letter = _lv_txt_encoded_next(&txt[byte_pos], NULL); - 80462fc: 4b0e ldr r3, [pc, #56] ; (8046338 ) - 80462fe: 681b ldr r3, [r3, #0] - 8046300: 6b39 ldr r1, [r7, #48] ; 0x30 - 8046302: 6cfa ldr r2, [r7, #76] ; 0x4c - 8046304: 440a add r2, r1 - 8046306: 2100 movs r1, #0 - 8046308: 4610 mov r0, r2 - 804630a: 4798 blx r3 - 804630c: 64b8 str r0, [r7, #72] ; 0x48 + 8046268: 4b0e ldr r3, [pc, #56] ; (80462a4 ) + 804626a: 681b ldr r3, [r3, #0] + 804626c: 6b39 ldr r1, [r7, #48] ; 0x30 + 804626e: 6cfa ldr r2, [r7, #76] ; 0x4c + 8046270: 440a add r2, r1 + 8046272: 2100 movs r1, #0 + 8046274: 4610 mov r0, r2 + 8046276: 4798 blx r3 + 8046278: 64b8 str r0, [r7, #72] ; 0x48 } if(letter == '\0' || letter == '\n' || letter == '\r') { - 804630e: 6cbb ldr r3, [r7, #72] ; 0x48 - 8046310: 2b00 cmp r3, #0 - 8046312: d005 beq.n 8046320 - 8046314: 6cbb ldr r3, [r7, #72] ; 0x48 - 8046316: 2b0a cmp r3, #10 - 8046318: d002 beq.n 8046320 - 804631a: 6cbb ldr r3, [r7, #72] ; 0x48 - 804631c: 2b0d cmp r3, #13 - 804631e: d10f bne.n 8046340 + 804627a: 6cbb ldr r3, [r7, #72] ; 0x48 + 804627c: 2b00 cmp r3, #0 + 804627e: d005 beq.n 804628c + 8046280: 6cbb ldr r3, [r7, #72] ; 0x48 + 8046282: 2b0a cmp r3, #10 + 8046284: d002 beq.n 804628c + 8046286: 6cbb ldr r3, [r7, #72] ; 0x48 + 8046288: 2b0d cmp r3, #13 + 804628a: d10f bne.n 80462ac letter_w = lv_font_get_glyph_width(font, ' ', '\0'); - 8046320: 2200 movs r2, #0 - 8046322: 2120 movs r1, #32 - 8046324: 6bf8 ldr r0, [r7, #60] ; 0x3c - 8046326: f7e9 fbf9 bl 802fb1c - 804632a: 4603 mov r3, r0 - 804632c: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 - 8046330: e00e b.n 8046350 - 8046332: bf00 nop - 8046334: 200000f4 .word 0x200000f4 - 8046338: 200000ec .word 0x200000ec - 804633c: 200000e4 .word 0x200000e4 + 804628c: 2200 movs r2, #0 + 804628e: 2120 movs r1, #32 + 8046290: 6bf8 ldr r0, [r7, #60] ; 0x3c + 8046292: f7e9 fbf9 bl 802fa88 + 8046296: 4603 mov r3, r0 + 8046298: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 804629c: e00e b.n 80462bc + 804629e: bf00 nop + 80462a0: 200000f4 .word 0x200000f4 + 80462a4: 200000ec .word 0x200000ec + 80462a8: 200000e4 .word 0x200000e4 } else { letter_w = lv_font_get_glyph_width(font, letter, '\0'); - 8046340: 2200 movs r2, #0 - 8046342: 6cb9 ldr r1, [r7, #72] ; 0x48 - 8046344: 6bf8 ldr r0, [r7, #60] ; 0x3c - 8046346: f7e9 fbe9 bl 802fb1c - 804634a: 4603 mov r3, r0 - 804634c: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 + 80462ac: 2200 movs r2, #0 + 80462ae: 6cb9 ldr r1, [r7, #72] ; 0x48 + 80462b0: 6bf8 ldr r0, [r7, #60] ; 0x3c + 80462b2: f7e9 fbe9 bl 802fa88 + 80462b6: 4603 mov r3, r0 + 80462b8: f8a7 3046 strh.w r3, [r7, #70] ; 0x46 } } /*Save the byte position. It is required to draw `LV_CURSOR_BLOCK`*/ ta->cursor.txt_byte_pos = byte_pos; - 8046350: 6c3b ldr r3, [r7, #64] ; 0x40 - 8046352: 6cfa ldr r2, [r7, #76] ; 0x4c - 8046354: 64da str r2, [r3, #76] ; 0x4c + 80462bc: 6c3b ldr r3, [r7, #64] ; 0x40 + 80462be: 6cfa ldr r2, [r7, #76] ; 0x4c + 80462c0: 64da str r2, [r3, #76] ; 0x4c /*Calculate the cursor according to its type*/ lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_CURSOR); - 8046356: f44f 21e0 mov.w r1, #458752 ; 0x70000 - 804635a: 6878 ldr r0, [r7, #4] - 804635c: f7fe fe09 bl 8044f72 - 8046360: 4603 mov r3, r0 - 8046362: 857b strh r3, [r7, #42] ; 0x2a + 80462c2: f44f 21e0 mov.w r1, #458752 ; 0x70000 + 80462c6: 6878 ldr r0, [r7, #4] + 80462c8: f7fe fe09 bl 8044ede + 80462cc: 4603 mov r3, r0 + 80462ce: 857b strh r3, [r7, #42] ; 0x2a lv_coord_t top = lv_obj_get_style_pad_top(obj, LV_PART_CURSOR) + border_width; - 8046364: f44f 21e0 mov.w r1, #458752 ; 0x70000 - 8046368: 6878 ldr r0, [r7, #4] - 804636a: f7fe fdb6 bl 8044eda - 804636e: 4603 mov r3, r0 - 8046370: b29a uxth r2, r3 - 8046372: 8d7b ldrh r3, [r7, #42] ; 0x2a - 8046374: 4413 add r3, r2 - 8046376: b29b uxth r3, r3 - 8046378: 853b strh r3, [r7, #40] ; 0x28 + 80462d0: f44f 21e0 mov.w r1, #458752 ; 0x70000 + 80462d4: 6878 ldr r0, [r7, #4] + 80462d6: f7fe fdb6 bl 8044e46 + 80462da: 4603 mov r3, r0 + 80462dc: b29a uxth r2, r3 + 80462de: 8d7b ldrh r3, [r7, #42] ; 0x2a + 80462e0: 4413 add r3, r2 + 80462e2: b29b uxth r3, r3 + 80462e4: 853b strh r3, [r7, #40] ; 0x28 lv_coord_t bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_CURSOR) + border_width; - 804637a: f44f 21e0 mov.w r1, #458752 ; 0x70000 - 804637e: 6878 ldr r0, [r7, #4] - 8046380: f7fe fdbe bl 8044f00 - 8046384: 4603 mov r3, r0 - 8046386: b29a uxth r2, r3 - 8046388: 8d7b ldrh r3, [r7, #42] ; 0x2a - 804638a: 4413 add r3, r2 - 804638c: b29b uxth r3, r3 - 804638e: 84fb strh r3, [r7, #38] ; 0x26 + 80462e6: f44f 21e0 mov.w r1, #458752 ; 0x70000 + 80462ea: 6878 ldr r0, [r7, #4] + 80462ec: f7fe fdbe bl 8044e6c + 80462f0: 4603 mov r3, r0 + 80462f2: b29a uxth r2, r3 + 80462f4: 8d7b ldrh r3, [r7, #42] ; 0x2a + 80462f6: 4413 add r3, r2 + 80462f8: b29b uxth r3, r3 + 80462fa: 84fb strh r3, [r7, #38] ; 0x26 lv_coord_t left = lv_obj_get_style_pad_left(obj, LV_PART_CURSOR) + border_width; - 8046390: f44f 21e0 mov.w r1, #458752 ; 0x70000 - 8046394: 6878 ldr r0, [r7, #4] - 8046396: f7fe fdc6 bl 8044f26 - 804639a: 4603 mov r3, r0 - 804639c: b29a uxth r2, r3 - 804639e: 8d7b ldrh r3, [r7, #42] ; 0x2a - 80463a0: 4413 add r3, r2 - 80463a2: b29b uxth r3, r3 - 80463a4: 84bb strh r3, [r7, #36] ; 0x24 + 80462fc: f44f 21e0 mov.w r1, #458752 ; 0x70000 + 8046300: 6878 ldr r0, [r7, #4] + 8046302: f7fe fdc6 bl 8044e92 + 8046306: 4603 mov r3, r0 + 8046308: b29a uxth r2, r3 + 804630a: 8d7b ldrh r3, [r7, #42] ; 0x2a + 804630c: 4413 add r3, r2 + 804630e: b29b uxth r3, r3 + 8046310: 84bb strh r3, [r7, #36] ; 0x24 lv_coord_t right = lv_obj_get_style_pad_right(obj, LV_PART_CURSOR) + border_width; - 80463a6: f44f 21e0 mov.w r1, #458752 ; 0x70000 - 80463aa: 6878 ldr r0, [r7, #4] - 80463ac: f7fe fdce bl 8044f4c - 80463b0: 4603 mov r3, r0 - 80463b2: b29a uxth r2, r3 - 80463b4: 8d7b ldrh r3, [r7, #42] ; 0x2a - 80463b6: 4413 add r3, r2 - 80463b8: b29b uxth r3, r3 - 80463ba: 847b strh r3, [r7, #34] ; 0x22 + 8046312: f44f 21e0 mov.w r1, #458752 ; 0x70000 + 8046316: 6878 ldr r0, [r7, #4] + 8046318: f7fe fdce bl 8044eb8 + 804631c: 4603 mov r3, r0 + 804631e: b29a uxth r2, r3 + 8046320: 8d7b ldrh r3, [r7, #42] ; 0x2a + 8046322: 4413 add r3, r2 + 8046324: b29b uxth r3, r3 + 8046326: 847b strh r3, [r7, #34] ; 0x22 lv_area_t cur_area; cur_area.x1 = letter_pos.x - left; - 80463bc: f9b7 301c ldrsh.w r3, [r7, #28] - 80463c0: b29a uxth r2, r3 - 80463c2: 8cbb ldrh r3, [r7, #36] ; 0x24 - 80463c4: 1ad3 subs r3, r2, r3 - 80463c6: b29b uxth r3, r3 - 80463c8: b21b sxth r3, r3 - 80463ca: 82bb strh r3, [r7, #20] + 8046328: f9b7 301c ldrsh.w r3, [r7, #28] + 804632c: b29a uxth r2, r3 + 804632e: 8cbb ldrh r3, [r7, #36] ; 0x24 + 8046330: 1ad3 subs r3, r2, r3 + 8046332: b29b uxth r3, r3 + 8046334: b21b sxth r3, r3 + 8046336: 82bb strh r3, [r7, #20] cur_area.y1 = letter_pos.y - top; - 80463cc: f9b7 301e ldrsh.w r3, [r7, #30] - 80463d0: b29a uxth r2, r3 - 80463d2: 8d3b ldrh r3, [r7, #40] ; 0x28 - 80463d4: 1ad3 subs r3, r2, r3 - 80463d6: b29b uxth r3, r3 - 80463d8: b21b sxth r3, r3 - 80463da: 82fb strh r3, [r7, #22] + 8046338: f9b7 301e ldrsh.w r3, [r7, #30] + 804633c: b29a uxth r2, r3 + 804633e: 8d3b ldrh r3, [r7, #40] ; 0x28 + 8046340: 1ad3 subs r3, r2, r3 + 8046342: b29b uxth r3, r3 + 8046344: b21b sxth r3, r3 + 8046346: 82fb strh r3, [r7, #22] cur_area.x2 = letter_pos.x + right + letter_w - 1; - 80463dc: f9b7 301c ldrsh.w r3, [r7, #28] - 80463e0: b29a uxth r2, r3 - 80463e2: 8c7b ldrh r3, [r7, #34] ; 0x22 - 80463e4: 4413 add r3, r2 - 80463e6: b29a uxth r2, r3 - 80463e8: f8b7 3046 ldrh.w r3, [r7, #70] ; 0x46 - 80463ec: 4413 add r3, r2 - 80463ee: b29b uxth r3, r3 - 80463f0: 3b01 subs r3, #1 - 80463f2: b29b uxth r3, r3 - 80463f4: b21b sxth r3, r3 - 80463f6: 833b strh r3, [r7, #24] + 8046348: f9b7 301c ldrsh.w r3, [r7, #28] + 804634c: b29a uxth r2, r3 + 804634e: 8c7b ldrh r3, [r7, #34] ; 0x22 + 8046350: 4413 add r3, r2 + 8046352: b29a uxth r2, r3 + 8046354: f8b7 3046 ldrh.w r3, [r7, #70] ; 0x46 + 8046358: 4413 add r3, r2 + 804635a: b29b uxth r3, r3 + 804635c: 3b01 subs r3, #1 + 804635e: b29b uxth r3, r3 + 8046360: b21b sxth r3, r3 + 8046362: 833b strh r3, [r7, #24] cur_area.y2 = letter_pos.y + bottom + letter_h - 1; - 80463f8: f9b7 301e ldrsh.w r3, [r7, #30] - 80463fc: b29a uxth r2, r3 - 80463fe: 8cfb ldrh r3, [r7, #38] ; 0x26 - 8046400: 4413 add r3, r2 - 8046402: b29a uxth r2, r3 - 8046404: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8046406: 4413 add r3, r2 - 8046408: b29b uxth r3, r3 - 804640a: 3b01 subs r3, #1 - 804640c: b29b uxth r3, r3 - 804640e: b21b sxth r3, r3 - 8046410: 837b strh r3, [r7, #26] + 8046364: f9b7 301e ldrsh.w r3, [r7, #30] + 8046368: b29a uxth r2, r3 + 804636a: 8cfb ldrh r3, [r7, #38] ; 0x26 + 804636c: 4413 add r3, r2 + 804636e: b29a uxth r2, r3 + 8046370: 8dfb ldrh r3, [r7, #46] ; 0x2e + 8046372: 4413 add r3, r2 + 8046374: b29b uxth r3, r3 + 8046376: 3b01 subs r3, #1 + 8046378: b29b uxth r3, r3 + 804637a: b21b sxth r3, r3 + 804637c: 837b strh r3, [r7, #26] /*Save the new area*/ lv_area_t area_tmp; lv_area_copy(&area_tmp, &ta->cursor.area); - 8046412: 6c3b ldr r3, [r7, #64] ; 0x40 - 8046414: f103 0244 add.w r2, r3, #68 ; 0x44 - 8046418: f107 030c add.w r3, r7, #12 - 804641c: 4611 mov r1, r2 - 804641e: 4618 mov r0, r3 - 8046420: f7fe fca6 bl 8044d70 + 804637e: 6c3b ldr r3, [r7, #64] ; 0x40 + 8046380: f103 0244 add.w r2, r3, #68 ; 0x44 + 8046384: f107 030c add.w r3, r7, #12 + 8046388: 4611 mov r1, r2 + 804638a: 4618 mov r0, r3 + 804638c: f7fe fca6 bl 8044cdc area_tmp.x1 += ta->label->coords.x1; - 8046424: f9b7 300c ldrsh.w r3, [r7, #12] - 8046428: b29a uxth r2, r3 - 804642a: 6c3b ldr r3, [r7, #64] ; 0x40 - 804642c: 6a5b ldr r3, [r3, #36] ; 0x24 - 804642e: f9b3 3014 ldrsh.w r3, [r3, #20] - 8046432: b29b uxth r3, r3 - 8046434: 4413 add r3, r2 - 8046436: b29b uxth r3, r3 - 8046438: b21b sxth r3, r3 - 804643a: 81bb strh r3, [r7, #12] + 8046390: f9b7 300c ldrsh.w r3, [r7, #12] + 8046394: b29a uxth r2, r3 + 8046396: 6c3b ldr r3, [r7, #64] ; 0x40 + 8046398: 6a5b ldr r3, [r3, #36] ; 0x24 + 804639a: f9b3 3014 ldrsh.w r3, [r3, #20] + 804639e: b29b uxth r3, r3 + 80463a0: 4413 add r3, r2 + 80463a2: b29b uxth r3, r3 + 80463a4: b21b sxth r3, r3 + 80463a6: 81bb strh r3, [r7, #12] area_tmp.y1 += ta->label->coords.y1; - 804643c: f9b7 300e ldrsh.w r3, [r7, #14] - 8046440: b29a uxth r2, r3 - 8046442: 6c3b ldr r3, [r7, #64] ; 0x40 - 8046444: 6a5b ldr r3, [r3, #36] ; 0x24 - 8046446: f9b3 3016 ldrsh.w r3, [r3, #22] - 804644a: b29b uxth r3, r3 - 804644c: 4413 add r3, r2 - 804644e: b29b uxth r3, r3 - 8046450: b21b sxth r3, r3 - 8046452: 81fb strh r3, [r7, #14] + 80463a8: f9b7 300e ldrsh.w r3, [r7, #14] + 80463ac: b29a uxth r2, r3 + 80463ae: 6c3b ldr r3, [r7, #64] ; 0x40 + 80463b0: 6a5b ldr r3, [r3, #36] ; 0x24 + 80463b2: f9b3 3016 ldrsh.w r3, [r3, #22] + 80463b6: b29b uxth r3, r3 + 80463b8: 4413 add r3, r2 + 80463ba: b29b uxth r3, r3 + 80463bc: b21b sxth r3, r3 + 80463be: 81fb strh r3, [r7, #14] area_tmp.x2 += ta->label->coords.x1; - 8046454: f9b7 3010 ldrsh.w r3, [r7, #16] - 8046458: b29a uxth r2, r3 - 804645a: 6c3b ldr r3, [r7, #64] ; 0x40 - 804645c: 6a5b ldr r3, [r3, #36] ; 0x24 - 804645e: f9b3 3014 ldrsh.w r3, [r3, #20] - 8046462: b29b uxth r3, r3 - 8046464: 4413 add r3, r2 - 8046466: b29b uxth r3, r3 - 8046468: b21b sxth r3, r3 - 804646a: 823b strh r3, [r7, #16] + 80463c0: f9b7 3010 ldrsh.w r3, [r7, #16] + 80463c4: b29a uxth r2, r3 + 80463c6: 6c3b ldr r3, [r7, #64] ; 0x40 + 80463c8: 6a5b ldr r3, [r3, #36] ; 0x24 + 80463ca: f9b3 3014 ldrsh.w r3, [r3, #20] + 80463ce: b29b uxth r3, r3 + 80463d0: 4413 add r3, r2 + 80463d2: b29b uxth r3, r3 + 80463d4: b21b sxth r3, r3 + 80463d6: 823b strh r3, [r7, #16] area_tmp.y2 += ta->label->coords.y1; - 804646c: f9b7 3012 ldrsh.w r3, [r7, #18] - 8046470: b29a uxth r2, r3 - 8046472: 6c3b ldr r3, [r7, #64] ; 0x40 - 8046474: 6a5b ldr r3, [r3, #36] ; 0x24 - 8046476: f9b3 3016 ldrsh.w r3, [r3, #22] - 804647a: b29b uxth r3, r3 - 804647c: 4413 add r3, r2 - 804647e: b29b uxth r3, r3 - 8046480: b21b sxth r3, r3 - 8046482: 827b strh r3, [r7, #18] + 80463d8: f9b7 3012 ldrsh.w r3, [r7, #18] + 80463dc: b29a uxth r2, r3 + 80463de: 6c3b ldr r3, [r7, #64] ; 0x40 + 80463e0: 6a5b ldr r3, [r3, #36] ; 0x24 + 80463e2: f9b3 3016 ldrsh.w r3, [r3, #22] + 80463e6: b29b uxth r3, r3 + 80463e8: 4413 add r3, r2 + 80463ea: b29b uxth r3, r3 + 80463ec: b21b sxth r3, r3 + 80463ee: 827b strh r3, [r7, #18] lv_obj_invalidate_area(obj, &area_tmp); - 8046484: f107 030c add.w r3, r7, #12 - 8046488: 4619 mov r1, r3 - 804648a: 6878 ldr r0, [r7, #4] - 804648c: f7c4 faed bl 800aa6a + 80463f0: f107 030c add.w r3, r7, #12 + 80463f4: 4619 mov r1, r3 + 80463f6: 6878 ldr r0, [r7, #4] + 80463f8: f7c4 fb01 bl 800a9fe lv_area_copy(&ta->cursor.area, &cur_area); - 8046490: 6c3b ldr r3, [r7, #64] ; 0x40 - 8046492: 3344 adds r3, #68 ; 0x44 - 8046494: f107 0214 add.w r2, r7, #20 - 8046498: 4611 mov r1, r2 - 804649a: 4618 mov r0, r3 - 804649c: f7fe fc68 bl 8044d70 + 80463fc: 6c3b ldr r3, [r7, #64] ; 0x40 + 80463fe: 3344 adds r3, #68 ; 0x44 + 8046400: f107 0214 add.w r2, r7, #20 + 8046404: 4611 mov r1, r2 + 8046406: 4618 mov r0, r3 + 8046408: f7fe fc68 bl 8044cdc lv_area_copy(&area_tmp, &ta->cursor.area); - 80464a0: 6c3b ldr r3, [r7, #64] ; 0x40 - 80464a2: f103 0244 add.w r2, r3, #68 ; 0x44 - 80464a6: f107 030c add.w r3, r7, #12 - 80464aa: 4611 mov r1, r2 - 80464ac: 4618 mov r0, r3 - 80464ae: f7fe fc5f bl 8044d70 + 804640c: 6c3b ldr r3, [r7, #64] ; 0x40 + 804640e: f103 0244 add.w r2, r3, #68 ; 0x44 + 8046412: f107 030c add.w r3, r7, #12 + 8046416: 4611 mov r1, r2 + 8046418: 4618 mov r0, r3 + 804641a: f7fe fc5f bl 8044cdc area_tmp.x1 += ta->label->coords.x1; - 80464b2: f9b7 300c ldrsh.w r3, [r7, #12] - 80464b6: b29a uxth r2, r3 - 80464b8: 6c3b ldr r3, [r7, #64] ; 0x40 - 80464ba: 6a5b ldr r3, [r3, #36] ; 0x24 - 80464bc: f9b3 3014 ldrsh.w r3, [r3, #20] - 80464c0: b29b uxth r3, r3 - 80464c2: 4413 add r3, r2 - 80464c4: b29b uxth r3, r3 - 80464c6: b21b sxth r3, r3 - 80464c8: 81bb strh r3, [r7, #12] + 804641e: f9b7 300c ldrsh.w r3, [r7, #12] + 8046422: b29a uxth r2, r3 + 8046424: 6c3b ldr r3, [r7, #64] ; 0x40 + 8046426: 6a5b ldr r3, [r3, #36] ; 0x24 + 8046428: f9b3 3014 ldrsh.w r3, [r3, #20] + 804642c: b29b uxth r3, r3 + 804642e: 4413 add r3, r2 + 8046430: b29b uxth r3, r3 + 8046432: b21b sxth r3, r3 + 8046434: 81bb strh r3, [r7, #12] area_tmp.y1 += ta->label->coords.y1; - 80464ca: f9b7 300e ldrsh.w r3, [r7, #14] - 80464ce: b29a uxth r2, r3 - 80464d0: 6c3b ldr r3, [r7, #64] ; 0x40 - 80464d2: 6a5b ldr r3, [r3, #36] ; 0x24 - 80464d4: f9b3 3016 ldrsh.w r3, [r3, #22] - 80464d8: b29b uxth r3, r3 - 80464da: 4413 add r3, r2 - 80464dc: b29b uxth r3, r3 - 80464de: b21b sxth r3, r3 - 80464e0: 81fb strh r3, [r7, #14] + 8046436: f9b7 300e ldrsh.w r3, [r7, #14] + 804643a: b29a uxth r2, r3 + 804643c: 6c3b ldr r3, [r7, #64] ; 0x40 + 804643e: 6a5b ldr r3, [r3, #36] ; 0x24 + 8046440: f9b3 3016 ldrsh.w r3, [r3, #22] + 8046444: b29b uxth r3, r3 + 8046446: 4413 add r3, r2 + 8046448: b29b uxth r3, r3 + 804644a: b21b sxth r3, r3 + 804644c: 81fb strh r3, [r7, #14] area_tmp.x2 += ta->label->coords.x1; - 80464e2: f9b7 3010 ldrsh.w r3, [r7, #16] - 80464e6: b29a uxth r2, r3 - 80464e8: 6c3b ldr r3, [r7, #64] ; 0x40 - 80464ea: 6a5b ldr r3, [r3, #36] ; 0x24 - 80464ec: f9b3 3014 ldrsh.w r3, [r3, #20] - 80464f0: b29b uxth r3, r3 - 80464f2: 4413 add r3, r2 - 80464f4: b29b uxth r3, r3 - 80464f6: b21b sxth r3, r3 - 80464f8: 823b strh r3, [r7, #16] + 804644e: f9b7 3010 ldrsh.w r3, [r7, #16] + 8046452: b29a uxth r2, r3 + 8046454: 6c3b ldr r3, [r7, #64] ; 0x40 + 8046456: 6a5b ldr r3, [r3, #36] ; 0x24 + 8046458: f9b3 3014 ldrsh.w r3, [r3, #20] + 804645c: b29b uxth r3, r3 + 804645e: 4413 add r3, r2 + 8046460: b29b uxth r3, r3 + 8046462: b21b sxth r3, r3 + 8046464: 823b strh r3, [r7, #16] area_tmp.y2 += ta->label->coords.y1; - 80464fa: f9b7 3012 ldrsh.w r3, [r7, #18] - 80464fe: b29a uxth r2, r3 - 8046500: 6c3b ldr r3, [r7, #64] ; 0x40 - 8046502: 6a5b ldr r3, [r3, #36] ; 0x24 - 8046504: f9b3 3016 ldrsh.w r3, [r3, #22] - 8046508: b29b uxth r3, r3 - 804650a: 4413 add r3, r2 - 804650c: b29b uxth r3, r3 - 804650e: b21b sxth r3, r3 - 8046510: 827b strh r3, [r7, #18] + 8046466: f9b7 3012 ldrsh.w r3, [r7, #18] + 804646a: b29a uxth r2, r3 + 804646c: 6c3b ldr r3, [r7, #64] ; 0x40 + 804646e: 6a5b ldr r3, [r3, #36] ; 0x24 + 8046470: f9b3 3016 ldrsh.w r3, [r3, #22] + 8046474: b29b uxth r3, r3 + 8046476: 4413 add r3, r2 + 8046478: b29b uxth r3, r3 + 804647a: b21b sxth r3, r3 + 804647c: 827b strh r3, [r7, #18] lv_obj_invalidate_area(obj, &area_tmp); - 8046512: f107 030c add.w r3, r7, #12 - 8046516: 4619 mov r1, r3 - 8046518: 6878 ldr r0, [r7, #4] - 804651a: f7c4 faa6 bl 800aa6a + 804647e: f107 030c add.w r3, r7, #12 + 8046482: 4619 mov r1, r3 + 8046484: 6878 ldr r0, [r7, #4] + 8046486: f7c4 faba bl 800a9fe } - 804651e: bf00 nop - 8046520: 3754 adds r7, #84 ; 0x54 - 8046522: 46bd mov sp, r7 - 8046524: bd90 pop {r4, r7, pc} - 8046526: bf00 nop + 804648a: bf00 nop + 804648c: 3754 adds r7, #84 ; 0x54 + 804648e: 46bd mov sp, r7 + 8046490: bd90 pop {r4, r7, pc} + 8046492: bf00 nop -08046528 : +08046494 : static void update_cursor_position_on_click(lv_event_t * e) { - 8046528: b580 push {r7, lr} - 804652a: b08e sub sp, #56 ; 0x38 - 804652c: af00 add r7, sp, #0 - 804652e: 6078 str r0, [r7, #4] + 8046494: b580 push {r7, lr} + 8046496: b08e sub sp, #56 ; 0x38 + 8046498: af00 add r7, sp, #0 + 804649a: 6078 str r0, [r7, #4] lv_indev_t * click_source = lv_indev_get_act(); - 8046530: f7bc fef2 bl 8003318 - 8046534: 6338 str r0, [r7, #48] ; 0x30 + 804649c: f7bc ff06 bl 80032ac + 80464a0: 6338 str r0, [r7, #48] ; 0x30 if(click_source == NULL) return; - 8046536: 6b3b ldr r3, [r7, #48] ; 0x30 - 8046538: 2b00 cmp r3, #0 - 804653a: f000 8169 beq.w 8046810 + 80464a2: 6b3b ldr r3, [r7, #48] ; 0x30 + 80464a4: 2b00 cmp r3, #0 + 80464a6: f000 8169 beq.w 804677c lv_event_code_t code = lv_event_get_code(e); - 804653e: 6878 ldr r0, [r7, #4] - 8046540: f7bc f834 bl 80025ac - 8046544: 4603 mov r3, r0 - 8046546: f887 302f strb.w r3, [r7, #47] ; 0x2f + 80464aa: 6878 ldr r0, [r7, #4] + 80464ac: f7bc f848 bl 8002540 + 80464b0: 4603 mov r3, r0 + 80464b2: f887 302f strb.w r3, [r7, #47] ; 0x2f lv_obj_t * obj = lv_event_get_target(e); - 804654a: 6878 ldr r0, [r7, #4] - 804654c: f7bc f818 bl 8002580 - 8046550: 62b8 str r0, [r7, #40] ; 0x28 + 80464b6: 6878 ldr r0, [r7, #4] + 80464b8: f7bc f82c bl 8002514 + 80464bc: 62b8 str r0, [r7, #40] ; 0x28 lv_textarea_t * ta = (lv_textarea_t *)obj; - 8046552: 6abb ldr r3, [r7, #40] ; 0x28 - 8046554: 627b str r3, [r7, #36] ; 0x24 + 80464be: 6abb ldr r3, [r7, #40] ; 0x28 + 80464c0: 627b str r3, [r7, #36] ; 0x24 if(ta->cursor.click_pos == 0) return; - 8046556: 6a7b ldr r3, [r7, #36] ; 0x24 - 8046558: f893 3050 ldrb.w r3, [r3, #80] ; 0x50 - 804655c: f003 0302 and.w r3, r3, #2 - 8046560: b2db uxtb r3, r3 - 8046562: 2b00 cmp r3, #0 - 8046564: f000 8156 beq.w 8046814 + 80464c2: 6a7b ldr r3, [r7, #36] ; 0x24 + 80464c4: f893 3050 ldrb.w r3, [r3, #80] ; 0x50 + 80464c8: f003 0302 and.w r3, r3, #2 + 80464cc: b2db uxtb r3, r3 + 80464ce: 2b00 cmp r3, #0 + 80464d0: f000 8156 beq.w 8046780 if(lv_indev_get_type(click_source) == LV_INDEV_TYPE_KEYPAD || - 8046568: 6b38 ldr r0, [r7, #48] ; 0x30 - 804656a: f7bc fedf bl 800332c - 804656e: 4603 mov r3, r0 - 8046570: 2b02 cmp r3, #2 - 8046572: f000 8151 beq.w 8046818 + 80464d4: 6b38 ldr r0, [r7, #48] ; 0x30 + 80464d6: f7bc fef3 bl 80032c0 + 80464da: 4603 mov r3, r0 + 80464dc: 2b02 cmp r3, #2 + 80464de: f000 8151 beq.w 8046784 lv_indev_get_type(click_source) == LV_INDEV_TYPE_ENCODER) { - 8046576: 6b38 ldr r0, [r7, #48] ; 0x30 - 8046578: f7bc fed8 bl 800332c - 804657c: 4603 mov r3, r0 + 80464e2: 6b38 ldr r0, [r7, #48] ; 0x30 + 80464e4: f7bc feec bl 80032c0 + 80464e8: 4603 mov r3, r0 if(lv_indev_get_type(click_source) == LV_INDEV_TYPE_KEYPAD || - 804657e: 2b04 cmp r3, #4 - 8046580: f000 814a beq.w 8046818 + 80464ea: 2b04 cmp r3, #4 + 80464ec: f000 814a beq.w 8046784 return; } lv_area_t label_coords; lv_obj_get_coords(ta->label, &label_coords); - 8046584: 6a7b ldr r3, [r7, #36] ; 0x24 - 8046586: 6a5b ldr r3, [r3, #36] ; 0x24 - 8046588: f107 0214 add.w r2, r7, #20 - 804658c: 4611 mov r1, r2 - 804658e: 4618 mov r0, r3 - 8046590: f7c3 fd3c bl 800a00c + 80464f0: 6a7b ldr r3, [r7, #36] ; 0x24 + 80464f2: 6a5b ldr r3, [r3, #36] ; 0x24 + 80464f4: f107 0214 add.w r2, r7, #20 + 80464f8: 4611 mov r1, r2 + 80464fa: 4618 mov r0, r3 + 80464fc: f7c3 fd50 bl 8009fa0 lv_point_t point_act, vect_act; lv_indev_get_point(click_source, &point_act); - 8046594: f107 0310 add.w r3, r7, #16 - 8046598: 4619 mov r1, r3 - 804659a: 6b38 ldr r0, [r7, #48] ; 0x30 - 804659c: f7bc ffae bl 80034fc + 8046500: f107 0310 add.w r3, r7, #16 + 8046504: 4619 mov r1, r3 + 8046506: 6b38 ldr r0, [r7, #48] ; 0x30 + 8046508: f7bc ffc2 bl 8003490 lv_indev_get_vect(click_source, &vect_act); - 80465a0: f107 030c add.w r3, r7, #12 - 80465a4: 4619 mov r1, r3 - 80465a6: 6b38 ldr r0, [r7, #48] ; 0x30 - 80465a8: f7bd f814 bl 80035d4 + 804650c: f107 030c add.w r3, r7, #12 + 8046510: 4619 mov r1, r3 + 8046512: 6b38 ldr r0, [r7, #48] ; 0x30 + 8046514: f7bd f828 bl 8003568 if(point_act.x < 0 || point_act.y < 0) return; /*Ignore event from keypad*/ - 80465ac: f9b7 3010 ldrsh.w r3, [r7, #16] - 80465b0: 2b00 cmp r3, #0 - 80465b2: f2c0 8133 blt.w 804681c - 80465b6: f9b7 3012 ldrsh.w r3, [r7, #18] - 80465ba: 2b00 cmp r3, #0 - 80465bc: f2c0 812e blt.w 804681c + 8046518: f9b7 3010 ldrsh.w r3, [r7, #16] + 804651c: 2b00 cmp r3, #0 + 804651e: f2c0 8133 blt.w 8046788 + 8046522: f9b7 3012 ldrsh.w r3, [r7, #18] + 8046526: 2b00 cmp r3, #0 + 8046528: f2c0 812e blt.w 8046788 lv_point_t rel_pos; rel_pos.x = point_act.x - label_coords.x1; - 80465c0: f9b7 3010 ldrsh.w r3, [r7, #16] - 80465c4: b29a uxth r2, r3 - 80465c6: f9b7 3014 ldrsh.w r3, [r7, #20] - 80465ca: b29b uxth r3, r3 - 80465cc: 1ad3 subs r3, r2, r3 - 80465ce: b29b uxth r3, r3 - 80465d0: b21b sxth r3, r3 - 80465d2: 813b strh r3, [r7, #8] + 804652c: f9b7 3010 ldrsh.w r3, [r7, #16] + 8046530: b29a uxth r2, r3 + 8046532: f9b7 3014 ldrsh.w r3, [r7, #20] + 8046536: b29b uxth r3, r3 + 8046538: 1ad3 subs r3, r2, r3 + 804653a: b29b uxth r3, r3 + 804653c: b21b sxth r3, r3 + 804653e: 813b strh r3, [r7, #8] rel_pos.y = point_act.y - label_coords.y1; - 80465d4: f9b7 3012 ldrsh.w r3, [r7, #18] - 80465d8: b29a uxth r2, r3 - 80465da: f9b7 3016 ldrsh.w r3, [r7, #22] - 80465de: b29b uxth r3, r3 - 80465e0: 1ad3 subs r3, r2, r3 - 80465e2: b29b uxth r3, r3 - 80465e4: b21b sxth r3, r3 - 80465e6: 817b strh r3, [r7, #10] + 8046540: f9b7 3012 ldrsh.w r3, [r7, #18] + 8046544: b29a uxth r2, r3 + 8046546: f9b7 3016 ldrsh.w r3, [r7, #22] + 804654a: b29b uxth r3, r3 + 804654c: 1ad3 subs r3, r2, r3 + 804654e: b29b uxth r3, r3 + 8046550: b21b sxth r3, r3 + 8046552: 817b strh r3, [r7, #10] lv_coord_t label_width = lv_obj_get_width(ta->label); - 80465e8: 6a7b ldr r3, [r7, #36] ; 0x24 - 80465ea: 6a5b ldr r3, [r3, #36] ; 0x24 - 80465ec: 4618 mov r0, r3 - 80465ee: f7c3 fdab bl 800a148 - 80465f2: 4603 mov r3, r0 - 80465f4: 847b strh r3, [r7, #34] ; 0x22 + 8046554: 6a7b ldr r3, [r7, #36] ; 0x24 + 8046556: 6a5b ldr r3, [r3, #36] ; 0x24 + 8046558: 4618 mov r0, r3 + 804655a: f7c3 fdbf bl 800a0dc + 804655e: 4603 mov r3, r0 + 8046560: 847b strh r3, [r7, #34] ; 0x22 uint16_t char_id_at_click; #if LV_LABEL_TEXT_SELECTION lv_label_t * label_data = (lv_label_t *)ta->label; - 80465f6: 6a7b ldr r3, [r7, #36] ; 0x24 - 80465f8: 6a5b ldr r3, [r3, #36] ; 0x24 - 80465fa: 61fb str r3, [r7, #28] + 8046562: 6a7b ldr r3, [r7, #36] ; 0x24 + 8046564: 6a5b ldr r3, [r3, #36] ; 0x24 + 8046566: 61fb str r3, [r7, #28] bool click_outside_label; /*Check if the click happened on the left side of the area outside the label*/ if(rel_pos.x < 0) { - 80465fc: f9b7 3008 ldrsh.w r3, [r7, #8] - 8046600: 2b00 cmp r3, #0 - 8046602: da05 bge.n 8046610 + 8046568: f9b7 3008 ldrsh.w r3, [r7, #8] + 804656c: 2b00 cmp r3, #0 + 804656e: da05 bge.n 804657c char_id_at_click = 0; - 8046604: 2300 movs r3, #0 - 8046606: 86fb strh r3, [r7, #54] ; 0x36 + 8046570: 2300 movs r3, #0 + 8046572: 86fb strh r3, [r7, #54] ; 0x36 click_outside_label = true; - 8046608: 2301 movs r3, #1 - 804660a: f887 3035 strb.w r3, [r7, #53] ; 0x35 - 804660e: e02f b.n 8046670 + 8046574: 2301 movs r3, #1 + 8046576: f887 3035 strb.w r3, [r7, #53] ; 0x35 + 804657a: e02f b.n 80465dc } /*Check if the click happened on the right side of the area outside the label*/ else if(rel_pos.x >= label_width) { - 8046610: f9b7 3008 ldrsh.w r3, [r7, #8] - 8046614: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 - 8046618: 429a cmp r2, r3 - 804661a: dc06 bgt.n 804662a + 804657c: f9b7 3008 ldrsh.w r3, [r7, #8] + 8046580: f9b7 2022 ldrsh.w r2, [r7, #34] ; 0x22 + 8046584: 429a cmp r2, r3 + 8046586: dc06 bgt.n 8046596 char_id_at_click = LV_TEXTAREA_CURSOR_LAST; - 804661c: f647 73ff movw r3, #32767 ; 0x7fff - 8046620: 86fb strh r3, [r7, #54] ; 0x36 + 8046588: f647 73ff movw r3, #32767 ; 0x7fff + 804658c: 86fb strh r3, [r7, #54] ; 0x36 click_outside_label = true; - 8046622: 2301 movs r3, #1 - 8046624: f887 3035 strb.w r3, [r7, #53] ; 0x35 - 8046628: e022 b.n 8046670 + 804658e: 2301 movs r3, #1 + 8046590: f887 3035 strb.w r3, [r7, #53] ; 0x35 + 8046594: e022 b.n 80465dc } else { char_id_at_click = lv_label_get_letter_on(ta->label, &rel_pos); - 804662a: 6a7b ldr r3, [r7, #36] ; 0x24 - 804662c: 6a5b ldr r3, [r3, #36] ; 0x24 - 804662e: f107 0208 add.w r2, r7, #8 - 8046632: 4611 mov r1, r2 - 8046634: 4618 mov r0, r3 - 8046636: f7f8 fe51 bl 803f2dc - 804663a: 4603 mov r3, r0 - 804663c: 86fb strh r3, [r7, #54] ; 0x36 + 8046596: 6a7b ldr r3, [r7, #36] ; 0x24 + 8046598: 6a5b ldr r3, [r3, #36] ; 0x24 + 804659a: f107 0208 add.w r2, r7, #8 + 804659e: 4611 mov r1, r2 + 80465a0: 4618 mov r0, r3 + 80465a2: f7f8 fe51 bl 803f248 + 80465a6: 4603 mov r3, r0 + 80465a8: 86fb strh r3, [r7, #54] ; 0x36 click_outside_label = !lv_label_is_char_under_pos(ta->label, &rel_pos); - 804663e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8046640: 6a5b ldr r3, [r3, #36] ; 0x24 - 8046642: f107 0208 add.w r2, r7, #8 - 8046646: 4611 mov r1, r2 - 8046648: 4618 mov r0, r3 - 804664a: f7f8 fffd bl 803f648 - 804664e: 4603 mov r3, r0 - 8046650: 2b00 cmp r3, #0 - 8046652: bf14 ite ne - 8046654: 2301 movne r3, #1 - 8046656: 2300 moveq r3, #0 - 8046658: b2db uxtb r3, r3 - 804665a: f083 0301 eor.w r3, r3, #1 - 804665e: b2db uxtb r3, r3 - 8046660: f887 3035 strb.w r3, [r7, #53] ; 0x35 - 8046664: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 - 8046668: f003 0301 and.w r3, r3, #1 - 804666c: f887 3035 strb.w r3, [r7, #53] ; 0x35 + 80465aa: 6a7b ldr r3, [r7, #36] ; 0x24 + 80465ac: 6a5b ldr r3, [r3, #36] ; 0x24 + 80465ae: f107 0208 add.w r2, r7, #8 + 80465b2: 4611 mov r1, r2 + 80465b4: 4618 mov r0, r3 + 80465b6: f7f8 fffd bl 803f5b4 + 80465ba: 4603 mov r3, r0 + 80465bc: 2b00 cmp r3, #0 + 80465be: bf14 ite ne + 80465c0: 2301 movne r3, #1 + 80465c2: 2300 moveq r3, #0 + 80465c4: b2db uxtb r3, r3 + 80465c6: f083 0301 eor.w r3, r3, #1 + 80465ca: b2db uxtb r3, r3 + 80465cc: f887 3035 strb.w r3, [r7, #53] ; 0x35 + 80465d0: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 + 80465d4: f003 0301 and.w r3, r3, #1 + 80465d8: f887 3035 strb.w r3, [r7, #53] ; 0x35 } if(ta->text_sel_en) { - 8046670: 6a7b ldr r3, [r7, #36] ; 0x24 - 8046672: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 8046676: f003 0302 and.w r3, r3, #2 - 804667a: b2db uxtb r3, r3 - 804667c: 2b00 cmp r3, #0 - 804667e: d04b beq.n 8046718 + 80465dc: 6a7b ldr r3, [r7, #36] ; 0x24 + 80465de: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 80465e2: f003 0302 and.w r3, r3, #2 + 80465e6: b2db uxtb r3, r3 + 80465e8: 2b00 cmp r3, #0 + 80465ea: d04b beq.n 8046684 if(!ta->text_sel_in_prog && !click_outside_label && code == LV_EVENT_PRESSED) { - 8046680: 6a7b ldr r3, [r7, #36] ; 0x24 - 8046682: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 8046686: f003 0301 and.w r3, r3, #1 - 804668a: b2db uxtb r3, r3 - 804668c: 2b00 cmp r3, #0 - 804668e: d11e bne.n 80466ce - 8046690: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 - 8046694: f083 0301 eor.w r3, r3, #1 - 8046698: b2db uxtb r3, r3 - 804669a: 2b00 cmp r3, #0 - 804669c: d017 beq.n 80466ce - 804669e: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 80466a2: 2b01 cmp r3, #1 - 80466a4: d113 bne.n 80466ce + 80465ec: 6a7b ldr r3, [r7, #36] ; 0x24 + 80465ee: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 80465f2: f003 0301 and.w r3, r3, #1 + 80465f6: b2db uxtb r3, r3 + 80465f8: 2b00 cmp r3, #0 + 80465fa: d11e bne.n 804663a + 80465fc: f897 3035 ldrb.w r3, [r7, #53] ; 0x35 + 8046600: f083 0301 eor.w r3, r3, #1 + 8046604: b2db uxtb r3, r3 + 8046606: 2b00 cmp r3, #0 + 8046608: d017 beq.n 804663a + 804660a: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 804660e: 2b01 cmp r3, #1 + 8046610: d113 bne.n 804663a /*Input device just went down. Store the selection start position*/ ta->sel_start = char_id_at_click; - 80466a6: 8efa ldrh r2, [r7, #54] ; 0x36 - 80466a8: 6a7b ldr r3, [r7, #36] ; 0x24 - 80466aa: 655a str r2, [r3, #84] ; 0x54 + 8046612: 8efa ldrh r2, [r7, #54] ; 0x36 + 8046614: 6a7b ldr r3, [r7, #36] ; 0x24 + 8046616: 655a str r2, [r3, #84] ; 0x54 ta->sel_end = LV_LABEL_TEXT_SELECTION_OFF; - 80466ac: 6a7b ldr r3, [r7, #36] ; 0x24 - 80466ae: f64f 72ff movw r2, #65535 ; 0xffff - 80466b2: 659a str r2, [r3, #88] ; 0x58 + 8046618: 6a7b ldr r3, [r7, #36] ; 0x24 + 804661a: f64f 72ff movw r2, #65535 ; 0xffff + 804661e: 659a str r2, [r3, #88] ; 0x58 ta->text_sel_in_prog = 1; - 80466b4: 6a7a ldr r2, [r7, #36] ; 0x24 - 80466b6: f892 305c ldrb.w r3, [r2, #92] ; 0x5c - 80466ba: f043 0301 orr.w r3, r3, #1 - 80466be: f882 305c strb.w r3, [r2, #92] ; 0x5c + 8046620: 6a7a ldr r2, [r7, #36] ; 0x24 + 8046622: f892 305c ldrb.w r3, [r2, #92] ; 0x5c + 8046626: f043 0301 orr.w r3, r3, #1 + 804662a: f882 305c strb.w r3, [r2, #92] ; 0x5c lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN); - 80466c2: f44f 7140 mov.w r1, #768 ; 0x300 - 80466c6: 6ab8 ldr r0, [r7, #40] ; 0x28 - 80466c8: f7bf ffca bl 8006660 - 80466cc: e024 b.n 8046718 + 804662e: f44f 7140 mov.w r1, #768 ; 0x300 + 8046632: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8046634: f7bf ffde bl 80065f4 + 8046638: e024 b.n 8046684 } else if(ta->text_sel_in_prog && code == LV_EVENT_PRESSING) { - 80466ce: 6a7b ldr r3, [r7, #36] ; 0x24 - 80466d0: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 80466d4: f003 0301 and.w r3, r3, #1 - 80466d8: b2db uxtb r3, r3 - 80466da: 2b00 cmp r3, #0 - 80466dc: d007 beq.n 80466ee - 80466de: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 80466e2: 2b02 cmp r3, #2 - 80466e4: d103 bne.n 80466ee + 804663a: 6a7b ldr r3, [r7, #36] ; 0x24 + 804663c: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 8046640: f003 0301 and.w r3, r3, #1 + 8046644: b2db uxtb r3, r3 + 8046646: 2b00 cmp r3, #0 + 8046648: d007 beq.n 804665a + 804664a: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 804664e: 2b02 cmp r3, #2 + 8046650: d103 bne.n 804665a /*Input device may be moving. Store the end position*/ ta->sel_end = char_id_at_click; - 80466e6: 8efa ldrh r2, [r7, #54] ; 0x36 - 80466e8: 6a7b ldr r3, [r7, #36] ; 0x24 - 80466ea: 659a str r2, [r3, #88] ; 0x58 - 80466ec: e014 b.n 8046718 + 8046652: 8efa ldrh r2, [r7, #54] ; 0x36 + 8046654: 6a7b ldr r3, [r7, #36] ; 0x24 + 8046656: 659a str r2, [r3, #88] ; 0x58 + 8046658: e014 b.n 8046684 } else if(ta->text_sel_in_prog && (code == LV_EVENT_PRESS_LOST || code == LV_EVENT_RELEASED)) { - 80466ee: 6a7b ldr r3, [r7, #36] ; 0x24 - 80466f0: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 80466f4: f003 0301 and.w r3, r3, #1 - 80466f8: b2db uxtb r3, r3 - 80466fa: 2b00 cmp r3, #0 - 80466fc: d00c beq.n 8046718 - 80466fe: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 8046702: 2b03 cmp r3, #3 - 8046704: d003 beq.n 804670e - 8046706: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 804670a: 2b08 cmp r3, #8 - 804670c: d104 bne.n 8046718 + 804665a: 6a7b ldr r3, [r7, #36] ; 0x24 + 804665c: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 8046660: f003 0301 and.w r3, r3, #1 + 8046664: b2db uxtb r3, r3 + 8046666: 2b00 cmp r3, #0 + 8046668: d00c beq.n 8046684 + 804666a: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 804666e: 2b03 cmp r3, #3 + 8046670: d003 beq.n 804667a + 8046672: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8046676: 2b08 cmp r3, #8 + 8046678: d104 bne.n 8046684 /*Input device is released. Check if anything was selected.*/ lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN); - 804670e: f44f 7140 mov.w r1, #768 ; 0x300 - 8046712: 6ab8 ldr r0, [r7, #40] ; 0x28 - 8046714: f7bf ff50 bl 80065b8 + 804667a: f44f 7140 mov.w r1, #768 ; 0x300 + 804667e: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8046680: f7bf ff64 bl 800654c } } if(ta->text_sel_in_prog || code == LV_EVENT_PRESSED) lv_textarea_set_cursor_pos(obj, char_id_at_click); - 8046718: 6a7b ldr r3, [r7, #36] ; 0x24 - 804671a: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 804671e: f003 0301 and.w r3, r3, #1 - 8046722: b2db uxtb r3, r3 - 8046724: 2b00 cmp r3, #0 - 8046726: d103 bne.n 8046730 - 8046728: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 804672c: 2b01 cmp r3, #1 - 804672e: d104 bne.n 804673a - 8046730: 8efb ldrh r3, [r7, #54] ; 0x36 - 8046732: 4619 mov r1, r3 - 8046734: 6ab8 ldr r0, [r7, #40] ; 0x28 - 8046736: f7fe ffd1 bl 80456dc + 8046684: 6a7b ldr r3, [r7, #36] ; 0x24 + 8046686: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 804668a: f003 0301 and.w r3, r3, #1 + 804668e: b2db uxtb r3, r3 + 8046690: 2b00 cmp r3, #0 + 8046692: d103 bne.n 804669c + 8046694: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8046698: 2b01 cmp r3, #1 + 804669a: d104 bne.n 80466a6 + 804669c: 8efb ldrh r3, [r7, #54] ; 0x36 + 804669e: 4619 mov r1, r3 + 80466a0: 6ab8 ldr r0, [r7, #40] ; 0x28 + 80466a2: f7fe ffd1 bl 8045648 if(ta->text_sel_in_prog) { - 804673a: 6a7b ldr r3, [r7, #36] ; 0x24 - 804673c: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 8046740: f003 0301 and.w r3, r3, #1 - 8046744: b2db uxtb r3, r3 - 8046746: 2b00 cmp r3, #0 - 8046748: d069 beq.n 804681e + 80466a6: 6a7b ldr r3, [r7, #36] ; 0x24 + 80466a8: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 80466ac: f003 0301 and.w r3, r3, #1 + 80466b0: b2db uxtb r3, r3 + 80466b2: 2b00 cmp r3, #0 + 80466b4: d069 beq.n 804678a /*If the selected area has changed then update the real values and*/ /*Invalidate the text area.*/ if(ta->sel_start > ta->sel_end) { - 804674a: 6a7b ldr r3, [r7, #36] ; 0x24 - 804674c: 6d5a ldr r2, [r3, #84] ; 0x54 - 804674e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8046750: 6d9b ldr r3, [r3, #88] ; 0x58 - 8046752: 429a cmp r2, r3 - 8046754: d917 bls.n 8046786 + 80466b6: 6a7b ldr r3, [r7, #36] ; 0x24 + 80466b8: 6d5a ldr r2, [r3, #84] ; 0x54 + 80466ba: 6a7b ldr r3, [r7, #36] ; 0x24 + 80466bc: 6d9b ldr r3, [r3, #88] ; 0x58 + 80466be: 429a cmp r2, r3 + 80466c0: d917 bls.n 80466f2 if(label_data->sel_start != ta->sel_end || label_data->sel_end != ta->sel_start) { - 8046756: 69fb ldr r3, [r7, #28] - 8046758: 6bda ldr r2, [r3, #60] ; 0x3c - 804675a: 6a7b ldr r3, [r7, #36] ; 0x24 - 804675c: 6d9b ldr r3, [r3, #88] ; 0x58 - 804675e: 429a cmp r2, r3 - 8046760: d105 bne.n 804676e - 8046762: 69fb ldr r3, [r7, #28] - 8046764: 6c1a ldr r2, [r3, #64] ; 0x40 - 8046766: 6a7b ldr r3, [r7, #36] ; 0x24 - 8046768: 6d5b ldr r3, [r3, #84] ; 0x54 - 804676a: 429a cmp r2, r3 - 804676c: d040 beq.n 80467f0 + 80466c2: 69fb ldr r3, [r7, #28] + 80466c4: 6bda ldr r2, [r3, #60] ; 0x3c + 80466c6: 6a7b ldr r3, [r7, #36] ; 0x24 + 80466c8: 6d9b ldr r3, [r3, #88] ; 0x58 + 80466ca: 429a cmp r2, r3 + 80466cc: d105 bne.n 80466da + 80466ce: 69fb ldr r3, [r7, #28] + 80466d0: 6c1a ldr r2, [r3, #64] ; 0x40 + 80466d2: 6a7b ldr r3, [r7, #36] ; 0x24 + 80466d4: 6d5b ldr r3, [r3, #84] ; 0x54 + 80466d6: 429a cmp r2, r3 + 80466d8: d040 beq.n 804675c label_data->sel_start = ta->sel_end; - 804676e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8046770: 6d9a ldr r2, [r3, #88] ; 0x58 - 8046772: 69fb ldr r3, [r7, #28] - 8046774: 63da str r2, [r3, #60] ; 0x3c + 80466da: 6a7b ldr r3, [r7, #36] ; 0x24 + 80466dc: 6d9a ldr r2, [r3, #88] ; 0x58 + 80466de: 69fb ldr r3, [r7, #28] + 80466e0: 63da str r2, [r3, #60] ; 0x3c label_data->sel_end = ta->sel_start; - 8046776: 6a7b ldr r3, [r7, #36] ; 0x24 - 8046778: 6d5a ldr r2, [r3, #84] ; 0x54 - 804677a: 69fb ldr r3, [r7, #28] - 804677c: 641a str r2, [r3, #64] ; 0x40 + 80466e2: 6a7b ldr r3, [r7, #36] ; 0x24 + 80466e4: 6d5a ldr r2, [r3, #84] ; 0x54 + 80466e6: 69fb ldr r3, [r7, #28] + 80466e8: 641a str r2, [r3, #64] ; 0x40 lv_obj_invalidate(obj); - 804677e: 6ab8 ldr r0, [r7, #40] ; 0x28 - 8046780: f7c4 f997 bl 800aab2 - 8046784: e034 b.n 80467f0 + 80466ea: 6ab8 ldr r0, [r7, #40] ; 0x28 + 80466ec: f7c4 f9ab bl 800aa46 + 80466f0: e034 b.n 804675c } } else if(ta->sel_start < ta->sel_end) { - 8046786: 6a7b ldr r3, [r7, #36] ; 0x24 - 8046788: 6d5a ldr r2, [r3, #84] ; 0x54 - 804678a: 6a7b ldr r3, [r7, #36] ; 0x24 - 804678c: 6d9b ldr r3, [r3, #88] ; 0x58 - 804678e: 429a cmp r2, r3 - 8046790: d217 bcs.n 80467c2 + 80466f2: 6a7b ldr r3, [r7, #36] ; 0x24 + 80466f4: 6d5a ldr r2, [r3, #84] ; 0x54 + 80466f6: 6a7b ldr r3, [r7, #36] ; 0x24 + 80466f8: 6d9b ldr r3, [r3, #88] ; 0x58 + 80466fa: 429a cmp r2, r3 + 80466fc: d217 bcs.n 804672e if(label_data->sel_start != ta->sel_start || label_data->sel_end != ta->sel_end) { - 8046792: 69fb ldr r3, [r7, #28] - 8046794: 6bda ldr r2, [r3, #60] ; 0x3c - 8046796: 6a7b ldr r3, [r7, #36] ; 0x24 - 8046798: 6d5b ldr r3, [r3, #84] ; 0x54 - 804679a: 429a cmp r2, r3 - 804679c: d105 bne.n 80467aa - 804679e: 69fb ldr r3, [r7, #28] - 80467a0: 6c1a ldr r2, [r3, #64] ; 0x40 - 80467a2: 6a7b ldr r3, [r7, #36] ; 0x24 - 80467a4: 6d9b ldr r3, [r3, #88] ; 0x58 - 80467a6: 429a cmp r2, r3 - 80467a8: d022 beq.n 80467f0 + 80466fe: 69fb ldr r3, [r7, #28] + 8046700: 6bda ldr r2, [r3, #60] ; 0x3c + 8046702: 6a7b ldr r3, [r7, #36] ; 0x24 + 8046704: 6d5b ldr r3, [r3, #84] ; 0x54 + 8046706: 429a cmp r2, r3 + 8046708: d105 bne.n 8046716 + 804670a: 69fb ldr r3, [r7, #28] + 804670c: 6c1a ldr r2, [r3, #64] ; 0x40 + 804670e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8046710: 6d9b ldr r3, [r3, #88] ; 0x58 + 8046712: 429a cmp r2, r3 + 8046714: d022 beq.n 804675c label_data->sel_start = ta->sel_start; - 80467aa: 6a7b ldr r3, [r7, #36] ; 0x24 - 80467ac: 6d5a ldr r2, [r3, #84] ; 0x54 - 80467ae: 69fb ldr r3, [r7, #28] - 80467b0: 63da str r2, [r3, #60] ; 0x3c + 8046716: 6a7b ldr r3, [r7, #36] ; 0x24 + 8046718: 6d5a ldr r2, [r3, #84] ; 0x54 + 804671a: 69fb ldr r3, [r7, #28] + 804671c: 63da str r2, [r3, #60] ; 0x3c label_data->sel_end = ta->sel_end; - 80467b2: 6a7b ldr r3, [r7, #36] ; 0x24 - 80467b4: 6d9a ldr r2, [r3, #88] ; 0x58 - 80467b6: 69fb ldr r3, [r7, #28] - 80467b8: 641a str r2, [r3, #64] ; 0x40 + 804671e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8046720: 6d9a ldr r2, [r3, #88] ; 0x58 + 8046722: 69fb ldr r3, [r7, #28] + 8046724: 641a str r2, [r3, #64] ; 0x40 lv_obj_invalidate(obj); - 80467ba: 6ab8 ldr r0, [r7, #40] ; 0x28 - 80467bc: f7c4 f979 bl 800aab2 - 80467c0: e016 b.n 80467f0 + 8046726: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8046728: f7c4 f98d bl 800aa46 + 804672c: e016 b.n 804675c } } else { if(label_data->sel_start != LV_DRAW_LABEL_NO_TXT_SEL || label_data->sel_end != LV_DRAW_LABEL_NO_TXT_SEL) { - 80467c2: 69fb ldr r3, [r7, #28] - 80467c4: 6bdb ldr r3, [r3, #60] ; 0x3c - 80467c6: f64f 72ff movw r2, #65535 ; 0xffff - 80467ca: 4293 cmp r3, r2 - 80467cc: d105 bne.n 80467da - 80467ce: 69fb ldr r3, [r7, #28] - 80467d0: 6c1b ldr r3, [r3, #64] ; 0x40 - 80467d2: f64f 72ff movw r2, #65535 ; 0xffff - 80467d6: 4293 cmp r3, r2 - 80467d8: d00a beq.n 80467f0 + 804672e: 69fb ldr r3, [r7, #28] + 8046730: 6bdb ldr r3, [r3, #60] ; 0x3c + 8046732: f64f 72ff movw r2, #65535 ; 0xffff + 8046736: 4293 cmp r3, r2 + 8046738: d105 bne.n 8046746 + 804673a: 69fb ldr r3, [r7, #28] + 804673c: 6c1b ldr r3, [r3, #64] ; 0x40 + 804673e: f64f 72ff movw r2, #65535 ; 0xffff + 8046742: 4293 cmp r3, r2 + 8046744: d00a beq.n 804675c label_data->sel_start = LV_DRAW_LABEL_NO_TXT_SEL; - 80467da: 69fb ldr r3, [r7, #28] - 80467dc: f64f 72ff movw r2, #65535 ; 0xffff - 80467e0: 63da str r2, [r3, #60] ; 0x3c + 8046746: 69fb ldr r3, [r7, #28] + 8046748: f64f 72ff movw r2, #65535 ; 0xffff + 804674c: 63da str r2, [r3, #60] ; 0x3c label_data->sel_end = LV_DRAW_LABEL_NO_TXT_SEL; - 80467e2: 69fb ldr r3, [r7, #28] - 80467e4: f64f 72ff movw r2, #65535 ; 0xffff - 80467e8: 641a str r2, [r3, #64] ; 0x40 + 804674e: 69fb ldr r3, [r7, #28] + 8046750: f64f 72ff movw r2, #65535 ; 0xffff + 8046754: 641a str r2, [r3, #64] ; 0x40 lv_obj_invalidate(obj); - 80467ea: 6ab8 ldr r0, [r7, #40] ; 0x28 - 80467ec: f7c4 f961 bl 800aab2 + 8046756: 6ab8 ldr r0, [r7, #40] ; 0x28 + 8046758: f7c4 f975 bl 800aa46 } } /*Finish selection if necessary*/ if(code == LV_EVENT_PRESS_LOST || code == LV_EVENT_RELEASED) { - 80467f0: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 80467f4: 2b03 cmp r3, #3 - 80467f6: d003 beq.n 8046800 - 80467f8: f897 302f ldrb.w r3, [r7, #47] ; 0x2f - 80467fc: 2b08 cmp r3, #8 - 80467fe: d10e bne.n 804681e + 804675c: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8046760: 2b03 cmp r3, #3 + 8046762: d003 beq.n 804676c + 8046764: f897 302f ldrb.w r3, [r7, #47] ; 0x2f + 8046768: 2b08 cmp r3, #8 + 804676a: d10e bne.n 804678a ta->text_sel_in_prog = 0; - 8046800: 6a7a ldr r2, [r7, #36] ; 0x24 - 8046802: f892 305c ldrb.w r3, [r2, #92] ; 0x5c - 8046806: f36f 0300 bfc r3, #0, #1 - 804680a: f882 305c strb.w r3, [r2, #92] ; 0x5c - 804680e: e006 b.n 804681e + 804676c: 6a7a ldr r2, [r7, #36] ; 0x24 + 804676e: f892 305c ldrb.w r3, [r2, #92] ; 0x5c + 8046772: f36f 0300 bfc r3, #0, #1 + 8046776: f882 305c strb.w r3, [r2, #92] ; 0x5c + 804677a: e006 b.n 804678a if(click_source == NULL) return; - 8046810: bf00 nop - 8046812: e004 b.n 804681e + 804677c: bf00 nop + 804677e: e004 b.n 804678a if(ta->cursor.click_pos == 0) return; - 8046814: bf00 nop - 8046816: e002 b.n 804681e + 8046780: bf00 nop + 8046782: e002 b.n 804678a return; - 8046818: bf00 nop - 804681a: e000 b.n 804681e + 8046784: bf00 nop + 8046786: e000 b.n 804678a if(point_act.x < 0 || point_act.y < 0) return; /*Ignore event from keypad*/ - 804681c: bf00 nop + 8046788: bf00 nop char_id_at_click = lv_label_get_letter_on(ta->label, &rel_pos); } if(code == LV_EVENT_PRESSED) lv_textarea_set_cursor_pos(obj, char_id_at_click); #endif } - 804681e: 3738 adds r7, #56 ; 0x38 - 8046820: 46bd mov sp, r7 - 8046822: bd80 pop {r7, pc} + 804678a: 3738 adds r7, #56 ; 0x38 + 804678c: 46bd mov sp, r7 + 804678e: bd80 pop {r7, pc} -08046824 : +08046790 : static lv_res_t insert_handler(lv_obj_t * obj, const char * txt) { - 8046824: b580 push {r7, lr} - 8046826: b082 sub sp, #8 - 8046828: af00 add r7, sp, #0 - 804682a: 6078 str r0, [r7, #4] - 804682c: 6039 str r1, [r7, #0] + 8046790: b580 push {r7, lr} + 8046792: b082 sub sp, #8 + 8046794: af00 add r7, sp, #0 + 8046796: 6078 str r0, [r7, #4] + 8046798: 6039 str r1, [r7, #0] ta_insert_replace = NULL; - 804682e: 4b14 ldr r3, [pc, #80] ; (8046880 ) - 8046830: 2200 movs r2, #0 - 8046832: 601a str r2, [r3, #0] + 804679a: 4b14 ldr r3, [pc, #80] ; (80467ec ) + 804679c: 2200 movs r2, #0 + 804679e: 601a str r2, [r3, #0] lv_event_send(obj, LV_EVENT_INSERT, (char *)txt); - 8046834: 683a ldr r2, [r7, #0] - 8046836: 211d movs r1, #29 - 8046838: 6878 ldr r0, [r7, #4] - 804683a: f7bb fe21 bl 8002480 + 80467a0: 683a ldr r2, [r7, #0] + 80467a2: 211d movs r1, #29 + 80467a4: 6878 ldr r0, [r7, #4] + 80467a6: f7bb fe35 bl 8002414 if(ta_insert_replace) { - 804683e: 4b10 ldr r3, [pc, #64] ; (8046880 ) - 8046840: 681b ldr r3, [r3, #0] - 8046842: 2b00 cmp r3, #0 - 8046844: d017 beq.n 8046876 + 80467aa: 4b10 ldr r3, [pc, #64] ; (80467ec ) + 80467ac: 681b ldr r3, [r3, #0] + 80467ae: 2b00 cmp r3, #0 + 80467b0: d017 beq.n 80467e2 if(ta_insert_replace[0] == '\0') return LV_RES_INV; /*Drop this text*/ - 8046846: 4b0e ldr r3, [pc, #56] ; (8046880 ) - 8046848: 681b ldr r3, [r3, #0] - 804684a: 781b ldrb r3, [r3, #0] - 804684c: 2b00 cmp r3, #0 - 804684e: d101 bne.n 8046854 - 8046850: 2300 movs r3, #0 - 8046852: e011 b.n 8046878 + 80467b2: 4b0e ldr r3, [pc, #56] ; (80467ec ) + 80467b4: 681b ldr r3, [r3, #0] + 80467b6: 781b ldrb r3, [r3, #0] + 80467b8: 2b00 cmp r3, #0 + 80467ba: d101 bne.n 80467c0 + 80467bc: 2300 movs r3, #0 + 80467be: e011 b.n 80467e4 /*Add the replaced text directly it's different from the original*/ if(strcmp(ta_insert_replace, txt)) { - 8046854: 4b0a ldr r3, [pc, #40] ; (8046880 ) - 8046856: 681b ldr r3, [r3, #0] - 8046858: 6839 ldr r1, [r7, #0] - 804685a: 4618 mov r0, r3 - 804685c: f7b9 fce2 bl 8000224 - 8046860: 4603 mov r3, r0 - 8046862: 2b00 cmp r3, #0 - 8046864: d007 beq.n 8046876 + 80467c0: 4b0a ldr r3, [pc, #40] ; (80467ec ) + 80467c2: 681b ldr r3, [r3, #0] + 80467c4: 6839 ldr r1, [r7, #0] + 80467c6: 4618 mov r0, r3 + 80467c8: f7b9 fd2c bl 8000224 + 80467cc: 4603 mov r3, r0 + 80467ce: 2b00 cmp r3, #0 + 80467d0: d007 beq.n 80467e2 lv_textarea_add_text(obj, ta_insert_replace); - 8046866: 4b06 ldr r3, [pc, #24] ; (8046880 ) - 8046868: 681b ldr r3, [r3, #0] - 804686a: 4619 mov r1, r3 - 804686c: 6878 ldr r0, [r7, #4] - 804686e: f7fe fcc7 bl 8045200 + 80467d2: 4b06 ldr r3, [pc, #24] ; (80467ec ) + 80467d4: 681b ldr r3, [r3, #0] + 80467d6: 4619 mov r1, r3 + 80467d8: 6878 ldr r0, [r7, #4] + 80467da: f7fe fcc7 bl 804516c return LV_RES_INV; - 8046872: 2300 movs r3, #0 - 8046874: e000 b.n 8046878 + 80467de: 2300 movs r3, #0 + 80467e0: e000 b.n 80467e4 } } return LV_RES_OK; - 8046876: 2301 movs r3, #1 + 80467e2: 2301 movs r3, #1 } - 8046878: 4618 mov r0, r3 - 804687a: 3708 adds r7, #8 - 804687c: 46bd mov sp, r7 - 804687e: bd80 pop {r7, pc} - 8046880: 20005f28 .word 0x20005f28 + 80467e4: 4618 mov r0, r3 + 80467e6: 3708 adds r7, #8 + 80467e8: 46bd mov sp, r7 + 80467ea: bd80 pop {r7, pc} + 80467ec: 20005f28 .word 0x20005f28 -08046884 : +080467f0 : static void draw_placeholder(lv_event_t * e) { - 8046884: b580 push {r7, lr} - 8046886: b094 sub sp, #80 ; 0x50 - 8046888: af02 add r7, sp, #8 - 804688a: 6078 str r0, [r7, #4] + 80467f0: b580 push {r7, lr} + 80467f2: b094 sub sp, #80 ; 0x50 + 80467f4: af02 add r7, sp, #8 + 80467f6: 6078 str r0, [r7, #4] lv_obj_t * obj = lv_event_get_target(e); - 804688c: 6878 ldr r0, [r7, #4] - 804688e: f7bb fe77 bl 8002580 - 8046892: 6478 str r0, [r7, #68] ; 0x44 + 80467f8: 6878 ldr r0, [r7, #4] + 80467fa: f7bb fe8b bl 8002514 + 80467fe: 6478 str r0, [r7, #68] ; 0x44 lv_textarea_t * ta = (lv_textarea_t *)obj; - 8046894: 6c7b ldr r3, [r7, #68] ; 0x44 - 8046896: 643b str r3, [r7, #64] ; 0x40 + 8046800: 6c7b ldr r3, [r7, #68] ; 0x44 + 8046802: 643b str r3, [r7, #64] ; 0x40 lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 8046898: 6878 ldr r0, [r7, #4] - 804689a: f7bb ff87 bl 80027ac - 804689e: 63f8 str r0, [r7, #60] ; 0x3c + 8046804: 6878 ldr r0, [r7, #4] + 8046806: f7bb ff9b bl 8002740 + 804680a: 63f8 str r0, [r7, #60] ; 0x3c const char * txt = lv_label_get_text(ta->label); - 80468a0: 6c3b ldr r3, [r7, #64] ; 0x40 - 80468a2: 6a5b ldr r3, [r3, #36] ; 0x24 - 80468a4: 4618 mov r0, r3 - 80468a6: f7f8 fb8d bl 803efc4 - 80468aa: 63b8 str r0, [r7, #56] ; 0x38 + 804680c: 6c3b ldr r3, [r7, #64] ; 0x40 + 804680e: 6a5b ldr r3, [r3, #36] ; 0x24 + 8046810: 4618 mov r0, r3 + 8046812: f7f8 fb8d bl 803ef30 + 8046816: 63b8 str r0, [r7, #56] ; 0x38 /*Draw the place holder*/ if(txt[0] == '\0' && ta->placeholder_txt && ta->placeholder_txt[0] != 0) { - 80468ac: 6bbb ldr r3, [r7, #56] ; 0x38 - 80468ae: 781b ldrb r3, [r3, #0] - 80468b0: 2b00 cmp r3, #0 - 80468b2: d159 bne.n 8046968 - 80468b4: 6c3b ldr r3, [r7, #64] ; 0x40 - 80468b6: 6a9b ldr r3, [r3, #40] ; 0x28 - 80468b8: 2b00 cmp r3, #0 - 80468ba: d055 beq.n 8046968 - 80468bc: 6c3b ldr r3, [r7, #64] ; 0x40 - 80468be: 6a9b ldr r3, [r3, #40] ; 0x28 - 80468c0: 781b ldrb r3, [r3, #0] - 80468c2: 2b00 cmp r3, #0 - 80468c4: d050 beq.n 8046968 + 8046818: 6bbb ldr r3, [r7, #56] ; 0x38 + 804681a: 781b ldrb r3, [r3, #0] + 804681c: 2b00 cmp r3, #0 + 804681e: d159 bne.n 80468d4 + 8046820: 6c3b ldr r3, [r7, #64] ; 0x40 + 8046822: 6a9b ldr r3, [r3, #40] ; 0x28 + 8046824: 2b00 cmp r3, #0 + 8046826: d055 beq.n 80468d4 + 8046828: 6c3b ldr r3, [r7, #64] ; 0x40 + 804682a: 6a9b ldr r3, [r3, #40] ; 0x28 + 804682c: 781b ldrb r3, [r3, #0] + 804682e: 2b00 cmp r3, #0 + 8046830: d050 beq.n 80468d4 lv_draw_label_dsc_t ph_dsc; lv_draw_label_dsc_init(&ph_dsc); - 80468c6: f107 0308 add.w r3, r7, #8 - 80468ca: 4618 mov r0, r3 - 80468cc: f7cb fc5e bl 801218c + 8046832: f107 0308 add.w r3, r7, #8 + 8046836: 4618 mov r0, r3 + 8046838: f7cb fc5e bl 80120f8 lv_obj_init_draw_label_dsc(obj, LV_PART_TEXTAREA_PLACEHOLDER, &ph_dsc); - 80468d0: f107 0308 add.w r3, r7, #8 - 80468d4: 461a mov r2, r3 - 80468d6: f44f 2100 mov.w r1, #524288 ; 0x80000 - 80468da: 6c78 ldr r0, [r7, #68] ; 0x44 - 80468dc: f7c2 f861 bl 80089a2 + 804683c: f107 0308 add.w r3, r7, #8 + 8046840: 461a mov r2, r3 + 8046842: f44f 2100 mov.w r1, #524288 ; 0x80000 + 8046846: 6c78 ldr r0, [r7, #68] ; 0x44 + 8046848: f7c2 f875 bl 8008936 if(ta->one_line) ph_dsc.flag |= LV_TEXT_FLAG_EXPAND; - 80468e0: 6c3b ldr r3, [r7, #64] ; 0x40 - 80468e2: f893 305c ldrb.w r3, [r3, #92] ; 0x5c - 80468e6: f003 0308 and.w r3, r3, #8 - 80468ea: b2db uxtb r3, r3 - 80468ec: 2b00 cmp r3, #0 - 80468ee: d006 beq.n 80468fe - 80468f0: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 - 80468f4: f043 0302 orr.w r3, r3, #2 - 80468f8: b2db uxtb r3, r3 - 80468fa: f887 3025 strb.w r3, [r7, #37] ; 0x25 + 804684c: 6c3b ldr r3, [r7, #64] ; 0x40 + 804684e: f893 305c ldrb.w r3, [r3, #92] ; 0x5c + 8046852: f003 0308 and.w r3, r3, #8 + 8046856: b2db uxtb r3, r3 + 8046858: 2b00 cmp r3, #0 + 804685a: d006 beq.n 804686a + 804685c: f897 3025 ldrb.w r3, [r7, #37] ; 0x25 + 8046860: f043 0302 orr.w r3, r3, #2 + 8046864: b2db uxtb r3, r3 + 8046866: f887 3025 strb.w r3, [r7, #37] ; 0x25 lv_coord_t left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN); - 80468fe: 2100 movs r1, #0 - 8046900: 6c78 ldr r0, [r7, #68] ; 0x44 - 8046902: f7fe fb10 bl 8044f26 - 8046906: 4603 mov r3, r0 - 8046908: 86fb strh r3, [r7, #54] ; 0x36 + 804686a: 2100 movs r1, #0 + 804686c: 6c78 ldr r0, [r7, #68] ; 0x44 + 804686e: f7fe fb10 bl 8044e92 + 8046872: 4603 mov r3, r0 + 8046874: 86fb strh r3, [r7, #54] ; 0x36 lv_coord_t top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN); - 804690a: 2100 movs r1, #0 - 804690c: 6c78 ldr r0, [r7, #68] ; 0x44 - 804690e: f7fe fae4 bl 8044eda - 8046912: 4603 mov r3, r0 - 8046914: 86bb strh r3, [r7, #52] ; 0x34 + 8046876: 2100 movs r1, #0 + 8046878: 6c78 ldr r0, [r7, #68] ; 0x44 + 804687a: f7fe fae4 bl 8044e46 + 804687e: 4603 mov r3, r0 + 8046880: 86bb strh r3, [r7, #52] ; 0x34 lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); - 8046916: 2100 movs r1, #0 - 8046918: 6c78 ldr r0, [r7, #68] ; 0x44 - 804691a: f7fe fb2a bl 8044f72 - 804691e: 4603 mov r3, r0 - 8046920: 867b strh r3, [r7, #50] ; 0x32 + 8046882: 2100 movs r1, #0 + 8046884: 6c78 ldr r0, [r7, #68] ; 0x44 + 8046886: f7fe fb2a bl 8044ede + 804688a: 4603 mov r3, r0 + 804688c: 867b strh r3, [r7, #50] ; 0x32 lv_area_t ph_coords; lv_area_copy(&ph_coords, &obj->coords); - 8046922: 6c7b ldr r3, [r7, #68] ; 0x44 - 8046924: f103 0214 add.w r2, r3, #20 - 8046928: f107 0328 add.w r3, r7, #40 ; 0x28 - 804692c: 4611 mov r1, r2 - 804692e: 4618 mov r0, r3 - 8046930: f7fe fa1e bl 8044d70 + 804688e: 6c7b ldr r3, [r7, #68] ; 0x44 + 8046890: f103 0214 add.w r2, r3, #20 + 8046894: f107 0328 add.w r3, r7, #40 ; 0x28 + 8046898: 4611 mov r1, r2 + 804689a: 4618 mov r0, r3 + 804689c: f7fe fa1e bl 8044cdc lv_area_move(&ph_coords, left + border_width, top + border_width); - 8046934: 8efa ldrh r2, [r7, #54] ; 0x36 - 8046936: 8e7b ldrh r3, [r7, #50] ; 0x32 - 8046938: 4413 add r3, r2 - 804693a: b29b uxth r3, r3 - 804693c: b219 sxth r1, r3 - 804693e: 8eba ldrh r2, [r7, #52] ; 0x34 - 8046940: 8e7b ldrh r3, [r7, #50] ; 0x32 - 8046942: 4413 add r3, r2 - 8046944: b29b uxth r3, r3 - 8046946: b21a sxth r2, r3 - 8046948: f107 0328 add.w r3, r7, #40 ; 0x28 - 804694c: 4618 mov r0, r3 - 804694e: f7ea fb76 bl 803103e + 80468a0: 8efa ldrh r2, [r7, #54] ; 0x36 + 80468a2: 8e7b ldrh r3, [r7, #50] ; 0x32 + 80468a4: 4413 add r3, r2 + 80468a6: b29b uxth r3, r3 + 80468a8: b219 sxth r1, r3 + 80468aa: 8eba ldrh r2, [r7, #52] ; 0x34 + 80468ac: 8e7b ldrh r3, [r7, #50] ; 0x32 + 80468ae: 4413 add r3, r2 + 80468b0: b29b uxth r3, r3 + 80468b2: b21a sxth r2, r3 + 80468b4: f107 0328 add.w r3, r7, #40 ; 0x28 + 80468b8: 4618 mov r0, r3 + 80468ba: f7ea fb76 bl 8030faa lv_draw_label(draw_ctx, &ph_dsc, &ph_coords, ta->placeholder_txt, NULL); - 8046952: 6c3b ldr r3, [r7, #64] ; 0x40 - 8046954: 6a9b ldr r3, [r3, #40] ; 0x28 - 8046956: f107 0228 add.w r2, r7, #40 ; 0x28 - 804695a: f107 0108 add.w r1, r7, #8 - 804695e: 2000 movs r0, #0 - 8046960: 9000 str r0, [sp, #0] - 8046962: 6bf8 ldr r0, [r7, #60] ; 0x3c - 8046964: f7cb fc3e bl 80121e4 + 80468be: 6c3b ldr r3, [r7, #64] ; 0x40 + 80468c0: 6a9b ldr r3, [r3, #40] ; 0x28 + 80468c2: f107 0228 add.w r2, r7, #40 ; 0x28 + 80468c6: f107 0108 add.w r1, r7, #8 + 80468ca: 2000 movs r0, #0 + 80468cc: 9000 str r0, [sp, #0] + 80468ce: 6bf8 ldr r0, [r7, #60] ; 0x3c + 80468d0: f7cb fc3e bl 8012150 } } - 8046968: bf00 nop - 804696a: 3748 adds r7, #72 ; 0x48 - 804696c: 46bd mov sp, r7 - 804696e: bd80 pop {r7, pc} + 80468d4: bf00 nop + 80468d6: 3748 adds r7, #72 ; 0x48 + 80468d8: 46bd mov sp, r7 + 80468da: bd80 pop {r7, pc} -08046970 : +080468dc : static void draw_cursor(lv_event_t * e) { - 8046970: b590 push {r4, r7, lr} - 8046972: b0a7 sub sp, #156 ; 0x9c - 8046974: af02 add r7, sp, #8 - 8046976: 6078 str r0, [r7, #4] + 80468dc: b590 push {r4, r7, lr} + 80468de: b0a7 sub sp, #156 ; 0x9c + 80468e0: af02 add r7, sp, #8 + 80468e2: 6078 str r0, [r7, #4] lv_obj_t * obj = lv_event_get_target(e); - 8046978: 6878 ldr r0, [r7, #4] - 804697a: f7bb fe01 bl 8002580 - 804697e: f8c7 008c str.w r0, [r7, #140] ; 0x8c + 80468e4: 6878 ldr r0, [r7, #4] + 80468e6: f7bb fe15 bl 8002514 + 80468ea: f8c7 008c str.w r0, [r7, #140] ; 0x8c lv_textarea_t * ta = (lv_textarea_t *)obj; - 8046982: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c - 8046986: f8c7 3088 str.w r3, [r7, #136] ; 0x88 + 80468ee: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c + 80468f2: f8c7 3088 str.w r3, [r7, #136] ; 0x88 lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - 804698a: 6878 ldr r0, [r7, #4] - 804698c: f7bb ff0e bl 80027ac - 8046990: f8c7 0084 str.w r0, [r7, #132] ; 0x84 + 80468f6: 6878 ldr r0, [r7, #4] + 80468f8: f7bb ff22 bl 8002740 + 80468fc: f8c7 0084 str.w r0, [r7, #132] ; 0x84 const char * txt = lv_label_get_text(ta->label); - 8046994: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8046998: 6a5b ldr r3, [r3, #36] ; 0x24 - 804699a: 4618 mov r0, r3 - 804699c: f7f8 fb12 bl 803efc4 - 80469a0: f8c7 0080 str.w r0, [r7, #128] ; 0x80 + 8046900: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8046904: 6a5b ldr r3, [r3, #36] ; 0x24 + 8046906: 4618 mov r0, r3 + 8046908: f7f8 fb12 bl 803ef30 + 804690c: f8c7 0080 str.w r0, [r7, #128] ; 0x80 if(ta->cursor.show == 0) return; - 80469a4: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 80469a8: f893 3050 ldrb.w r3, [r3, #80] ; 0x50 - 80469ac: f003 0301 and.w r3, r3, #1 - 80469b0: b2db uxtb r3, r3 - 80469b2: 2b00 cmp r3, #0 - 80469b4: f000 80d4 beq.w 8046b60 + 8046910: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8046914: f893 3050 ldrb.w r3, [r3, #80] ; 0x50 + 8046918: f003 0301 and.w r3, r3, #1 + 804691c: b2db uxtb r3, r3 + 804691e: 2b00 cmp r3, #0 + 8046920: f000 80d4 beq.w 8046acc lv_draw_rect_dsc_t cur_dsc; lv_draw_rect_dsc_init(&cur_dsc); - 80469b8: f107 0340 add.w r3, r7, #64 ; 0x40 - 80469bc: 4618 mov r0, r3 - 80469be: f7ce ff19 bl 80157f4 + 8046924: f107 0340 add.w r3, r7, #64 ; 0x40 + 8046928: 4618 mov r0, r3 + 804692a: f7ce ff19 bl 8015760 lv_obj_init_draw_rect_dsc(obj, LV_PART_CURSOR, &cur_dsc); - 80469c2: f107 0340 add.w r3, r7, #64 ; 0x40 - 80469c6: 461a mov r2, r3 - 80469c8: f44f 21e0 mov.w r1, #458752 ; 0x70000 - 80469cc: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c - 80469d0: f7c1 fdf9 bl 80085c6 + 804692e: f107 0340 add.w r3, r7, #64 ; 0x40 + 8046932: 461a mov r2, r3 + 8046934: f44f 21e0 mov.w r1, #458752 ; 0x70000 + 8046938: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c + 804693c: f7c1 fe0d bl 800855a /*Draw he cursor according to the type*/ lv_area_t cur_area; lv_area_copy(&cur_area, &ta->cursor.area); - 80469d4: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 80469d8: f103 0244 add.w r2, r3, #68 ; 0x44 - 80469dc: f107 0338 add.w r3, r7, #56 ; 0x38 - 80469e0: 4611 mov r1, r2 - 80469e2: 4618 mov r0, r3 - 80469e4: f7fe f9c4 bl 8044d70 + 8046940: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8046944: f103 0244 add.w r2, r3, #68 ; 0x44 + 8046948: f107 0338 add.w r3, r7, #56 ; 0x38 + 804694c: 4611 mov r1, r2 + 804694e: 4618 mov r0, r3 + 8046950: f7fe f9c4 bl 8044cdc cur_area.x1 += ta->label->coords.x1; - 80469e8: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 80469ec: b29a uxth r2, r3 - 80469ee: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 80469f2: 6a5b ldr r3, [r3, #36] ; 0x24 - 80469f4: f9b3 3014 ldrsh.w r3, [r3, #20] - 80469f8: b29b uxth r3, r3 - 80469fa: 4413 add r3, r2 - 80469fc: b29b uxth r3, r3 - 80469fe: b21b sxth r3, r3 - 8046a00: 873b strh r3, [r7, #56] ; 0x38 + 8046954: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 8046958: b29a uxth r2, r3 + 804695a: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 804695e: 6a5b ldr r3, [r3, #36] ; 0x24 + 8046960: f9b3 3014 ldrsh.w r3, [r3, #20] + 8046964: b29b uxth r3, r3 + 8046966: 4413 add r3, r2 + 8046968: b29b uxth r3, r3 + 804696a: b21b sxth r3, r3 + 804696c: 873b strh r3, [r7, #56] ; 0x38 cur_area.y1 += ta->label->coords.y1; - 8046a02: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 8046a06: b29a uxth r2, r3 - 8046a08: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8046a0c: 6a5b ldr r3, [r3, #36] ; 0x24 - 8046a0e: f9b3 3016 ldrsh.w r3, [r3, #22] - 8046a12: b29b uxth r3, r3 - 8046a14: 4413 add r3, r2 - 8046a16: b29b uxth r3, r3 - 8046a18: b21b sxth r3, r3 - 8046a1a: 877b strh r3, [r7, #58] ; 0x3a + 804696e: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 8046972: b29a uxth r2, r3 + 8046974: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8046978: 6a5b ldr r3, [r3, #36] ; 0x24 + 804697a: f9b3 3016 ldrsh.w r3, [r3, #22] + 804697e: b29b uxth r3, r3 + 8046980: 4413 add r3, r2 + 8046982: b29b uxth r3, r3 + 8046984: b21b sxth r3, r3 + 8046986: 877b strh r3, [r7, #58] ; 0x3a cur_area.x2 += ta->label->coords.x1; - 8046a1c: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c - 8046a20: b29a uxth r2, r3 - 8046a22: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8046a26: 6a5b ldr r3, [r3, #36] ; 0x24 - 8046a28: f9b3 3014 ldrsh.w r3, [r3, #20] - 8046a2c: b29b uxth r3, r3 - 8046a2e: 4413 add r3, r2 - 8046a30: b29b uxth r3, r3 - 8046a32: b21b sxth r3, r3 - 8046a34: 87bb strh r3, [r7, #60] ; 0x3c + 8046988: f9b7 303c ldrsh.w r3, [r7, #60] ; 0x3c + 804698c: b29a uxth r2, r3 + 804698e: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8046992: 6a5b ldr r3, [r3, #36] ; 0x24 + 8046994: f9b3 3014 ldrsh.w r3, [r3, #20] + 8046998: b29b uxth r3, r3 + 804699a: 4413 add r3, r2 + 804699c: b29b uxth r3, r3 + 804699e: b21b sxth r3, r3 + 80469a0: 87bb strh r3, [r7, #60] ; 0x3c cur_area.y2 += ta->label->coords.y1; - 8046a36: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e - 8046a3a: b29a uxth r2, r3 - 8046a3c: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8046a40: 6a5b ldr r3, [r3, #36] ; 0x24 - 8046a42: f9b3 3016 ldrsh.w r3, [r3, #22] - 8046a46: b29b uxth r3, r3 - 8046a48: 4413 add r3, r2 - 8046a4a: b29b uxth r3, r3 - 8046a4c: b21b sxth r3, r3 - 8046a4e: 87fb strh r3, [r7, #62] ; 0x3e + 80469a2: f9b7 303e ldrsh.w r3, [r7, #62] ; 0x3e + 80469a6: b29a uxth r2, r3 + 80469a8: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 80469ac: 6a5b ldr r3, [r3, #36] ; 0x24 + 80469ae: f9b3 3016 ldrsh.w r3, [r3, #22] + 80469b2: b29b uxth r3, r3 + 80469b4: 4413 add r3, r2 + 80469b6: b29b uxth r3, r3 + 80469b8: b21b sxth r3, r3 + 80469ba: 87fb strh r3, [r7, #62] ; 0x3e lv_draw_rect(draw_ctx, &cur_dsc, &cur_area); - 8046a50: f107 0238 add.w r2, r7, #56 ; 0x38 - 8046a54: f107 0340 add.w r3, r7, #64 ; 0x40 - 8046a58: 4619 mov r1, r3 - 8046a5a: f8d7 0084 ldr.w r0, [r7, #132] ; 0x84 - 8046a5e: f7ce ff0b bl 8015878 + 80469bc: f107 0238 add.w r2, r7, #56 ; 0x38 + 80469c0: f107 0340 add.w r3, r7, #64 ; 0x40 + 80469c4: 4619 mov r1, r3 + 80469c6: f8d7 0084 ldr.w r0, [r7, #132] ; 0x84 + 80469ca: f7ce ff0b bl 80157e4 lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_CURSOR); - 8046a62: f44f 21e0 mov.w r1, #458752 ; 0x70000 - 8046a66: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c - 8046a6a: f7fe fa82 bl 8044f72 - 8046a6e: 4603 mov r3, r0 - 8046a70: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 80469ce: f44f 21e0 mov.w r1, #458752 ; 0x70000 + 80469d2: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c + 80469d6: f7fe fa82 bl 8044ede + 80469da: 4603 mov r3, r0 + 80469dc: f8a7 307e strh.w r3, [r7, #126] ; 0x7e lv_coord_t left = lv_obj_get_style_pad_left(obj, LV_PART_CURSOR) + border_width; - 8046a74: f44f 21e0 mov.w r1, #458752 ; 0x70000 - 8046a78: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c - 8046a7c: f7fe fa53 bl 8044f26 - 8046a80: 4603 mov r3, r0 - 8046a82: b29a uxth r2, r3 - 8046a84: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e - 8046a88: 4413 add r3, r2 - 8046a8a: b29b uxth r3, r3 - 8046a8c: f8a7 307c strh.w r3, [r7, #124] ; 0x7c + 80469e0: f44f 21e0 mov.w r1, #458752 ; 0x70000 + 80469e4: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c + 80469e8: f7fe fa53 bl 8044e92 + 80469ec: 4603 mov r3, r0 + 80469ee: b29a uxth r2, r3 + 80469f0: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e + 80469f4: 4413 add r3, r2 + 80469f6: b29b uxth r3, r3 + 80469f8: f8a7 307c strh.w r3, [r7, #124] ; 0x7c lv_coord_t top = lv_obj_get_style_pad_top(obj, LV_PART_CURSOR) + border_width; - 8046a90: f44f 21e0 mov.w r1, #458752 ; 0x70000 - 8046a94: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c - 8046a98: f7fe fa1f bl 8044eda - 8046a9c: 4603 mov r3, r0 - 8046a9e: b29a uxth r2, r3 - 8046aa0: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e - 8046aa4: 4413 add r3, r2 - 8046aa6: b29b uxth r3, r3 - 8046aa8: f8a7 307a strh.w r3, [r7, #122] ; 0x7a + 80469fc: f44f 21e0 mov.w r1, #458752 ; 0x70000 + 8046a00: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c + 8046a04: f7fe fa1f bl 8044e46 + 8046a08: 4603 mov r3, r0 + 8046a0a: b29a uxth r2, r3 + 8046a0c: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e + 8046a10: 4413 add r3, r2 + 8046a12: b29b uxth r3, r3 + 8046a14: f8a7 307a strh.w r3, [r7, #122] ; 0x7a char letter_buf[8] = {0}; - 8046aac: 2300 movs r3, #0 - 8046aae: 633b str r3, [r7, #48] ; 0x30 - 8046ab0: 2300 movs r3, #0 - 8046ab2: 637b str r3, [r7, #52] ; 0x34 + 8046a18: 2300 movs r3, #0 + 8046a1a: 633b str r3, [r7, #48] ; 0x30 + 8046a1c: 2300 movs r3, #0 + 8046a1e: 637b str r3, [r7, #52] ; 0x34 lv_memcpy(letter_buf, &txt[ta->cursor.txt_byte_pos], _lv_txt_encoded_size(&txt[ta->cursor.txt_byte_pos])); - 8046ab4: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8046ab8: 6cdb ldr r3, [r3, #76] ; 0x4c - 8046aba: f8d7 2080 ldr.w r2, [r7, #128] ; 0x80 - 8046abe: 18d4 adds r4, r2, r3 - 8046ac0: 4b29 ldr r3, [pc, #164] ; (8046b68 ) - 8046ac2: 681b ldr r3, [r3, #0] - 8046ac4: f8d7 2088 ldr.w r2, [r7, #136] ; 0x88 - 8046ac8: 6cd2 ldr r2, [r2, #76] ; 0x4c - 8046aca: f8d7 1080 ldr.w r1, [r7, #128] ; 0x80 - 8046ace: 440a add r2, r1 - 8046ad0: 4610 mov r0, r2 - 8046ad2: 4798 blx r3 - 8046ad4: 4603 mov r3, r0 - 8046ad6: 461a mov r2, r3 - 8046ad8: f107 0330 add.w r3, r7, #48 ; 0x30 - 8046adc: 4621 mov r1, r4 - 8046ade: 4618 mov r0, r3 - 8046ae0: f7ec f892 bl 8032c08 + 8046a20: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8046a24: 6cdb ldr r3, [r3, #76] ; 0x4c + 8046a26: f8d7 2080 ldr.w r2, [r7, #128] ; 0x80 + 8046a2a: 18d4 adds r4, r2, r3 + 8046a2c: 4b29 ldr r3, [pc, #164] ; (8046ad4 ) + 8046a2e: 681b ldr r3, [r3, #0] + 8046a30: f8d7 2088 ldr.w r2, [r7, #136] ; 0x88 + 8046a34: 6cd2 ldr r2, [r2, #76] ; 0x4c + 8046a36: f8d7 1080 ldr.w r1, [r7, #128] ; 0x80 + 8046a3a: 440a add r2, r1 + 8046a3c: 4610 mov r0, r2 + 8046a3e: 4798 blx r3 + 8046a40: 4603 mov r3, r0 + 8046a42: 461a mov r2, r3 + 8046a44: f107 0330 add.w r3, r7, #48 ; 0x30 + 8046a48: 4621 mov r1, r4 + 8046a4a: 4618 mov r0, r3 + 8046a4c: f7ec f892 bl 8032b74 cur_area.x1 += left; - 8046ae4: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 - 8046ae8: b29a uxth r2, r3 - 8046aea: f8b7 307c ldrh.w r3, [r7, #124] ; 0x7c - 8046aee: 4413 add r3, r2 - 8046af0: b29b uxth r3, r3 - 8046af2: b21b sxth r3, r3 - 8046af4: 873b strh r3, [r7, #56] ; 0x38 + 8046a50: f9b7 3038 ldrsh.w r3, [r7, #56] ; 0x38 + 8046a54: b29a uxth r2, r3 + 8046a56: f8b7 307c ldrh.w r3, [r7, #124] ; 0x7c + 8046a5a: 4413 add r3, r2 + 8046a5c: b29b uxth r3, r3 + 8046a5e: b21b sxth r3, r3 + 8046a60: 873b strh r3, [r7, #56] ; 0x38 cur_area.y1 += top; - 8046af6: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a - 8046afa: b29a uxth r2, r3 - 8046afc: f8b7 307a ldrh.w r3, [r7, #122] ; 0x7a - 8046b00: 4413 add r3, r2 - 8046b02: b29b uxth r3, r3 - 8046b04: b21b sxth r3, r3 - 8046b06: 877b strh r3, [r7, #58] ; 0x3a + 8046a62: f9b7 303a ldrsh.w r3, [r7, #58] ; 0x3a + 8046a66: b29a uxth r2, r3 + 8046a68: f8b7 307a ldrh.w r3, [r7, #122] ; 0x7a + 8046a6c: 4413 add r3, r2 + 8046a6e: b29b uxth r3, r3 + 8046a70: b21b sxth r3, r3 + 8046a72: 877b strh r3, [r7, #58] ; 0x3a /*Draw the letter over the cursor only if *the cursor has background or the letter has different color than the original. *Else the original letter is drawn twice which makes it look bolder*/ lv_color_t label_color = lv_obj_get_style_text_color(ta->label, 0); - 8046b08: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 - 8046b0c: 6a5b ldr r3, [r3, #36] ; 0x24 - 8046b0e: 2100 movs r1, #0 - 8046b10: 4618 mov r0, r3 - 8046b12: f7fe fa41 bl 8044f98 - 8046b16: 4603 mov r3, r0 - 8046b18: 85bb strh r3, [r7, #44] ; 0x2c + 8046a74: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 + 8046a78: 6a5b ldr r3, [r3, #36] ; 0x24 + 8046a7a: 2100 movs r1, #0 + 8046a7c: 4618 mov r0, r3 + 8046a7e: f7fe fa41 bl 8044f04 + 8046a82: 4603 mov r3, r0 + 8046a84: 85bb strh r3, [r7, #44] ; 0x2c lv_draw_label_dsc_t cur_label_dsc; lv_draw_label_dsc_init(&cur_label_dsc); - 8046b1a: f107 030c add.w r3, r7, #12 - 8046b1e: 4618 mov r0, r3 - 8046b20: f7cb fb34 bl 801218c + 8046a86: f107 030c add.w r3, r7, #12 + 8046a8a: 4618 mov r0, r3 + 8046a8c: f7cb fb34 bl 80120f8 lv_obj_init_draw_label_dsc(obj, LV_PART_CURSOR, &cur_label_dsc); - 8046b24: f107 030c add.w r3, r7, #12 - 8046b28: 461a mov r2, r3 - 8046b2a: f44f 21e0 mov.w r1, #458752 ; 0x70000 - 8046b2e: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c - 8046b32: f7c1 ff36 bl 80089a2 + 8046a90: f107 030c add.w r3, r7, #12 + 8046a94: 461a mov r2, r3 + 8046a96: f44f 21e0 mov.w r1, #458752 ; 0x70000 + 8046a9a: f8d7 008c ldr.w r0, [r7, #140] ; 0x8c + 8046a9e: f7c1 ff4a bl 8008936 if(cur_dsc.bg_opa > LV_OPA_MIN || cur_label_dsc.color.full != label_color.full) { - 8046b36: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 - 8046b3a: 2b02 cmp r3, #2 - 8046b3c: d803 bhi.n 8046b46 - 8046b3e: 8b3a ldrh r2, [r7, #24] - 8046b40: 8dbb ldrh r3, [r7, #44] ; 0x2c - 8046b42: 429a cmp r2, r3 - 8046b44: d00d beq.n 8046b62 + 8046aa2: f897 3043 ldrb.w r3, [r7, #67] ; 0x43 + 8046aa6: 2b02 cmp r3, #2 + 8046aa8: d803 bhi.n 8046ab2 + 8046aaa: 8b3a ldrh r2, [r7, #24] + 8046aac: 8dbb ldrh r3, [r7, #44] ; 0x2c + 8046aae: 429a cmp r2, r3 + 8046ab0: d00d beq.n 8046ace lv_draw_label(draw_ctx, &cur_label_dsc, &cur_area, letter_buf, NULL); - 8046b46: f107 0330 add.w r3, r7, #48 ; 0x30 - 8046b4a: f107 0238 add.w r2, r7, #56 ; 0x38 - 8046b4e: f107 010c add.w r1, r7, #12 - 8046b52: 2000 movs r0, #0 - 8046b54: 9000 str r0, [sp, #0] - 8046b56: f8d7 0084 ldr.w r0, [r7, #132] ; 0x84 - 8046b5a: f7cb fb43 bl 80121e4 - 8046b5e: e000 b.n 8046b62 + 8046ab2: f107 0330 add.w r3, r7, #48 ; 0x30 + 8046ab6: f107 0238 add.w r2, r7, #56 ; 0x38 + 8046aba: f107 010c add.w r1, r7, #12 + 8046abe: 2000 movs r0, #0 + 8046ac0: 9000 str r0, [sp, #0] + 8046ac2: f8d7 0084 ldr.w r0, [r7, #132] ; 0x84 + 8046ac6: f7cb fb43 bl 8012150 + 8046aca: e000 b.n 8046ace if(ta->cursor.show == 0) return; - 8046b60: bf00 nop + 8046acc: bf00 nop } } - 8046b62: 3794 adds r7, #148 ; 0x94 - 8046b64: 46bd mov sp, r7 - 8046b66: bd90 pop {r4, r7, pc} - 8046b68: 200000e4 .word 0x200000e4 + 8046ace: 3794 adds r7, #148 ; 0x94 + 8046ad0: 46bd mov sp, r7 + 8046ad2: bd90 pop {r4, r7, pc} + 8046ad4: 200000e4 .word 0x200000e4 -08046b6c : - 8046b6c: 4603 mov r3, r0 - 8046b6e: 4402 add r2, r0 - 8046b70: 4293 cmp r3, r2 - 8046b72: d100 bne.n 8046b76 - 8046b74: 4770 bx lr - 8046b76: f803 1b01 strb.w r1, [r3], #1 - 8046b7a: e7f9 b.n 8046b70 +08046ad8 : + 8046ad8: 4603 mov r3, r0 + 8046ada: 4402 add r2, r0 + 8046adc: 4293 cmp r3, r2 + 8046ade: d100 bne.n 8046ae2 + 8046ae0: 4770 bx lr + 8046ae2: f803 1b01 strb.w r1, [r3], #1 + 8046ae6: e7f9 b.n 8046adc -08046b7c <__libc_init_array>: - 8046b7c: b570 push {r4, r5, r6, lr} - 8046b7e: 2600 movs r6, #0 - 8046b80: 4d0c ldr r5, [pc, #48] ; (8046bb4 <__libc_init_array+0x38>) - 8046b82: 4c0d ldr r4, [pc, #52] ; (8046bb8 <__libc_init_array+0x3c>) - 8046b84: 1b64 subs r4, r4, r5 - 8046b86: 10a4 asrs r4, r4, #2 - 8046b88: 42a6 cmp r6, r4 - 8046b8a: d109 bne.n 8046ba0 <__libc_init_array+0x24> - 8046b8c: f000 f830 bl 8046bf0 <_init> - 8046b90: 2600 movs r6, #0 - 8046b92: 4d0a ldr r5, [pc, #40] ; (8046bbc <__libc_init_array+0x40>) - 8046b94: 4c0a ldr r4, [pc, #40] ; (8046bc0 <__libc_init_array+0x44>) - 8046b96: 1b64 subs r4, r4, r5 - 8046b98: 10a4 asrs r4, r4, #2 - 8046b9a: 42a6 cmp r6, r4 - 8046b9c: d105 bne.n 8046baa <__libc_init_array+0x2e> - 8046b9e: bd70 pop {r4, r5, r6, pc} - 8046ba0: f855 3b04 ldr.w r3, [r5], #4 - 8046ba4: 4798 blx r3 - 8046ba6: 3601 adds r6, #1 - 8046ba8: e7ee b.n 8046b88 <__libc_init_array+0xc> - 8046baa: f855 3b04 ldr.w r3, [r5], #4 - 8046bae: 4798 blx r3 - 8046bb0: 3601 adds r6, #1 - 8046bb2: e7f2 b.n 8046b9a <__libc_init_array+0x1e> - 8046bb4: 08070b74 .word 0x08070b74 - 8046bb8: 08070b74 .word 0x08070b74 - 8046bbc: 08070b74 .word 0x08070b74 - 8046bc0: 08070b78 .word 0x08070b78 +08046ae8 <__libc_init_array>: + 8046ae8: b570 push {r4, r5, r6, lr} + 8046aea: 2600 movs r6, #0 + 8046aec: 4d0c ldr r5, [pc, #48] ; (8046b20 <__libc_init_array+0x38>) + 8046aee: 4c0d ldr r4, [pc, #52] ; (8046b24 <__libc_init_array+0x3c>) + 8046af0: 1b64 subs r4, r4, r5 + 8046af2: 10a4 asrs r4, r4, #2 + 8046af4: 42a6 cmp r6, r4 + 8046af6: d109 bne.n 8046b0c <__libc_init_array+0x24> + 8046af8: f000 f830 bl 8046b5c <_init> + 8046afc: 2600 movs r6, #0 + 8046afe: 4d0a ldr r5, [pc, #40] ; (8046b28 <__libc_init_array+0x40>) + 8046b00: 4c0a ldr r4, [pc, #40] ; (8046b2c <__libc_init_array+0x44>) + 8046b02: 1b64 subs r4, r4, r5 + 8046b04: 10a4 asrs r4, r4, #2 + 8046b06: 42a6 cmp r6, r4 + 8046b08: d105 bne.n 8046b16 <__libc_init_array+0x2e> + 8046b0a: bd70 pop {r4, r5, r6, pc} + 8046b0c: f855 3b04 ldr.w r3, [r5], #4 + 8046b10: 4798 blx r3 + 8046b12: 3601 adds r6, #1 + 8046b14: e7ee b.n 8046af4 <__libc_init_array+0xc> + 8046b16: f855 3b04 ldr.w r3, [r5], #4 + 8046b1a: 4798 blx r3 + 8046b1c: 3601 adds r6, #1 + 8046b1e: e7f2 b.n 8046b06 <__libc_init_array+0x1e> + 8046b20: 08070acc .word 0x08070acc + 8046b24: 08070acc .word 0x08070acc + 8046b28: 08070acc .word 0x08070acc + 8046b2c: 08070ad0 .word 0x08070ad0 -08046bc4 : - 8046bc4: 4603 mov r3, r0 - 8046bc6: f811 2b01 ldrb.w r2, [r1], #1 - 8046bca: f803 2b01 strb.w r2, [r3], #1 - 8046bce: 2a00 cmp r2, #0 - 8046bd0: d1f9 bne.n 8046bc6 - 8046bd2: 4770 bx lr +08046b30 : + 8046b30: 4603 mov r3, r0 + 8046b32: f811 2b01 ldrb.w r2, [r1], #1 + 8046b36: f803 2b01 strb.w r2, [r3], #1 + 8046b3a: 2a00 cmp r2, #0 + 8046b3c: d1f9 bne.n 8046b32 + 8046b3e: 4770 bx lr -08046bd4 : - 8046bd4: 440a add r2, r1 - 8046bd6: 4291 cmp r1, r2 - 8046bd8: f100 33ff add.w r3, r0, #4294967295 ; 0xffffffff - 8046bdc: d100 bne.n 8046be0 - 8046bde: 4770 bx lr - 8046be0: b510 push {r4, lr} - 8046be2: f811 4b01 ldrb.w r4, [r1], #1 - 8046be6: 4291 cmp r1, r2 - 8046be8: f803 4f01 strb.w r4, [r3, #1]! - 8046bec: d1f9 bne.n 8046be2 - 8046bee: bd10 pop {r4, pc} +08046b40 : + 8046b40: 440a add r2, r1 + 8046b42: 4291 cmp r1, r2 + 8046b44: f100 33ff add.w r3, r0, #4294967295 ; 0xffffffff + 8046b48: d100 bne.n 8046b4c + 8046b4a: 4770 bx lr + 8046b4c: b510 push {r4, lr} + 8046b4e: f811 4b01 ldrb.w r4, [r1], #1 + 8046b52: 4291 cmp r1, r2 + 8046b54: f803 4f01 strb.w r4, [r3, #1]! + 8046b58: d1f9 bne.n 8046b4e + 8046b5a: bd10 pop {r4, pc} -08046bf0 <_init>: - 8046bf0: b5f8 push {r3, r4, r5, r6, r7, lr} - 8046bf2: bf00 nop - 8046bf4: bcf8 pop {r3, r4, r5, r6, r7} - 8046bf6: bc08 pop {r3} - 8046bf8: 469e mov lr, r3 - 8046bfa: 4770 bx lr +08046b5c <_init>: + 8046b5c: b5f8 push {r3, r4, r5, r6, r7, lr} + 8046b5e: bf00 nop + 8046b60: bcf8 pop {r3, r4, r5, r6, r7} + 8046b62: bc08 pop {r3} + 8046b64: 469e mov lr, r3 + 8046b66: 4770 bx lr -08046bfc <_fini>: - 8046bfc: b5f8 push {r3, r4, r5, r6, r7, lr} - 8046bfe: bf00 nop - 8046c00: bcf8 pop {r3, r4, r5, r6, r7} - 8046c02: bc08 pop {r3} - 8046c04: 469e mov lr, r3 - 8046c06: 4770 bx lr +08046b68 <_fini>: + 8046b68: b5f8 push {r3, r4, r5, r6, r7, lr} + 8046b6a: bf00 nop + 8046b6c: bcf8 pop {r3, r4, r5, r6, r7} + 8046b6e: bc08 pop {r3} + 8046b70: 469e mov lr, r3 + 8046b72: 4770 bx lr diff --git a/Debug/PSE.map b/Debug/PSE.map index d080c0e..17ac7d6 100644 --- a/Debug/PSE.map +++ b/Debug/PSE.map @@ -195,6 +195,90 @@ Discarded input sections .debug_macro 0x0000000000000000 0x103 ./Core/Src/ILI9341.o .debug_macro 0x0000000000000000 0x6a ./Core/Src/ILI9341.o .debug_macro 0x0000000000000000 0x1df ./Core/Src/ILI9341.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .group 0x0000000000000000 0xc ./Core/Src/home_screen.o + .text 0x0000000000000000 0x0 ./Core/Src/home_screen.o + .data 0x0000000000000000 0x0 ./Core/Src/home_screen.o + .bss 0x0000000000000000 0x0 ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0xa9c ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x8e ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x51 ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x103 ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x6a ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x1df ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x24 ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x43 ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x34 ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x16 ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x43 ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x34 ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x58 ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x8e ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x1c ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x177 ./Core/Src/home_screen.o + .debug_macro 0x0000000000000000 0x369 ./Core/Src/home_screen.o .group 0x0000000000000000 0xc ./Core/Src/lcdio.o .group 0x0000000000000000 0xc ./Core/Src/lcdio.o .group 0x0000000000000000 0xc ./Core/Src/lcdio.o @@ -283,11 +367,20 @@ Discarded input sections .bss 0x0000000000000000 0x0 ./Core/Src/logo_mint_resize.o .debug_macro 0x0000000000000000 0xa9c ./Core/Src/logo_mint_resize.o .debug_macro 0x0000000000000000 0x22 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/logo_mint_resize.o .debug_macro 0x0000000000000000 0x8e ./Core/Src/logo_mint_resize.o .debug_macro 0x0000000000000000 0x51 ./Core/Src/logo_mint_resize.o .debug_macro 0x0000000000000000 0x103 ./Core/Src/logo_mint_resize.o .debug_macro 0x0000000000000000 0x6a ./Core/Src/logo_mint_resize.o .debug_macro 0x0000000000000000 0x1df ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x475 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x4a ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x2e ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x58 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x77 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x174 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x61 ./Core/Src/logo_mint_resize.o .debug_macro 0x0000000000000000 0x24 ./Core/Src/logo_mint_resize.o .debug_macro 0x0000000000000000 0x43 ./Core/Src/logo_mint_resize.o .debug_macro 0x0000000000000000 0x34 ./Core/Src/logo_mint_resize.o @@ -300,6 +393,40 @@ Discarded input sections .debug_macro 0x0000000000000000 0x1c ./Core/Src/logo_mint_resize.o .debug_macro 0x0000000000000000 0x177 ./Core/Src/logo_mint_resize.o .debug_macro 0x0000000000000000 0x369 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x35 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x20 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x460 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x58 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x1a4 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x74 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x170 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x16 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x34 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x27a ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x58 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x16 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x12 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x28 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x12 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x12 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x1c ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x51 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x1c ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x1c ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/logo_mint_resize.o + .debug_macro 0x0000000000000000 0x16 ./Core/Src/logo_mint_resize.o .group 0x0000000000000000 0xc ./Core/Src/main.o .group 0x0000000000000000 0xc ./Core/Src/main.o .group 0x0000000000000000 0xc ./Core/Src/main.o @@ -582,7 +709,7 @@ Discarded input sections .debug_macro 0x0000000000000000 0x140 ./Core/Src/stm32f1xx_hal_msp.o .debug_macro 0x0000000000000000 0x28e ./Core/Src/stm32f1xx_hal_msp.o .debug_macro 0x0000000000000000 0xb5 ./Core/Src/stm32f1xx_hal_msp.o - .debug_macro 0x0000000000000000 0x7c ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x58 ./Core/Src/stm32f1xx_hal_msp.o .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o @@ -659,7 +786,7 @@ Discarded input sections .debug_macro 0x0000000000000000 0x140 ./Core/Src/stm32f1xx_it.o .debug_macro 0x0000000000000000 0x28e ./Core/Src/stm32f1xx_it.o .debug_macro 0x0000000000000000 0xb5 ./Core/Src/stm32f1xx_it.o - .debug_macro 0x0000000000000000 0x7c ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x58 ./Core/Src/stm32f1xx_it.o .group 0x0000000000000000 0xc ./Core/Src/syscalls.o .group 0x0000000000000000 0xc ./Core/Src/syscalls.o .group 0x0000000000000000 0xc ./Core/Src/syscalls.o @@ -1668,6 +1795,8 @@ Discarded input sections .bss 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o .text.HAL_GPIO_DeInit 0x0000000000000000 0x198 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .text.HAL_GPIO_TogglePin + 0x0000000000000000 0x32 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o .text.HAL_GPIO_LockPin 0x0000000000000000 0x4e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o .text.HAL_GPIO_EXTI_IRQHandler @@ -2785,8 +2914,6 @@ Discarded input sections 0x0000000000000000 0x1a ./Drivers/lvgl/src/core/lv_disp.o .text.lv_scr_act 0x0000000000000000 0x16 ./Drivers/lvgl/src/core/lv_disp.o - .text.lv_disp_load_scr - 0x0000000000000000 0x7a ./Drivers/lvgl/src/core/lv_disp.o .text.lv_disp_set_theme 0x0000000000000000 0x72 ./Drivers/lvgl/src/core/lv_disp.o .text.lv_disp_set_bg_color @@ -4113,6 +4240,8 @@ Discarded input sections 0x0000000000000000 0x2a ./Drivers/lvgl/src/core/lv_obj_style_gen.o .text.lv_obj_set_style_pad_column 0x0000000000000000 0x2a ./Drivers/lvgl/src/core/lv_obj_style_gen.o + .text.lv_obj_set_style_bg_color + 0x0000000000000000 0x28 ./Drivers/lvgl/src/core/lv_obj_style_gen.o .text.lv_obj_set_style_bg_color_filtered 0x0000000000000000 0x2a ./Drivers/lvgl/src/core/lv_obj_style_gen.o .text.lv_obj_set_style_bg_opa @@ -22220,6 +22349,7 @@ LOAD /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools- LOAD /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o LOAD ./Core/Src/ADS7843.o LOAD ./Core/Src/ILI9341.o +LOAD ./Core/Src/home_screen.o LOAD ./Core/Src/lcdio.o LOAD ./Core/Src/logo_mint_resize.o LOAD ./Core/Src/main.o @@ -22467,7 +22597,7 @@ LOAD /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools- 0x0000000008000000 g_pfnVectors 0x00000000080001e4 . = ALIGN (0x4) -.text 0x00000000080001e4 0x46a24 +.text 0x00000000080001e4 0x46990 0x00000000080001e4 . = ALIGN (0x4) *(.text) .text 0x00000000080001e4 0x40 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtbegin.o @@ -22516,4013 +22646,4013 @@ LOAD /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools- .text.ILI9341_SetCursor 0x0000000008000818 0x72 ./Core/Src/ILI9341.o 0x0000000008000818 ILI9341_SetCursor - *fill* 0x000000000800088a 0x2 + .text.lv_scr_load + 0x000000000800088a 0x16 ./Core/Src/home_screen.o + .text.Home_Screen_Gen + 0x00000000080008a0 0x34 ./Core/Src/home_screen.o + 0x00000000080008a0 Home_Screen_Gen .text.LCD_IO_WriteReg - 0x000000000800088c 0x20 ./Core/Src/lcdio.o - 0x000000000800088c LCD_IO_WriteReg + 0x00000000080008d4 0x20 ./Core/Src/lcdio.o + 0x00000000080008d4 LCD_IO_WriteReg .text.LCD_IO_WriteData - 0x00000000080008ac 0x20 ./Core/Src/lcdio.o - 0x00000000080008ac LCD_IO_WriteData - .text.lv_color_hex - 0x00000000080008cc 0x46 ./Core/Src/main.o + 0x00000000080008f4 0x20 ./Core/Src/lcdio.o + 0x00000000080008f4 LCD_IO_WriteData .text.lv_scr_act - 0x0000000008000912 0x16 ./Core/Src/main.o + 0x0000000008000914 0x16 ./Core/Src/main.o .text.my_flush_cb - 0x0000000008000928 0x7e ./Core/Src/main.o - 0x0000000008000928 my_flush_cb - *fill* 0x00000000080009a6 0x2 + 0x000000000800092a 0x7e ./Core/Src/main.o + 0x000000000800092a my_flush_cb .text.touchscreen_read_callback 0x00000000080009a8 0x5c ./Core/Src/main.o 0x00000000080009a8 touchscreen_read_callback - .text.main 0x0000000008000a04 0x1bc ./Core/Src/main.o + .text.main 0x0000000008000a04 0x120 ./Core/Src/main.o 0x0000000008000a04 main .text.SystemClock_Config - 0x0000000008000bc0 0x82 ./Core/Src/main.o - 0x0000000008000bc0 SystemClock_Config - *fill* 0x0000000008000c42 0x2 + 0x0000000008000b24 0x82 ./Core/Src/main.o + 0x0000000008000b24 SystemClock_Config + *fill* 0x0000000008000ba6 0x2 .text.MX_USART1_UART_Init - 0x0000000008000c44 0x54 ./Core/Src/main.o + 0x0000000008000ba8 0x54 ./Core/Src/main.o .text.MX_GPIO_Init - 0x0000000008000c98 0x178 ./Core/Src/main.o + 0x0000000008000bfc 0x15c ./Core/Src/main.o .text.MX_FSMC_Init - 0x0000000008000e10 0xc8 ./Core/Src/main.o + 0x0000000008000d58 0xc8 ./Core/Src/main.o .text.Error_Handler - 0x0000000008000ed8 0xa ./Core/Src/main.o - 0x0000000008000ed8 Error_Handler - *fill* 0x0000000008000ee2 0x2 + 0x0000000008000e20 0xa ./Core/Src/main.o + 0x0000000008000e20 Error_Handler + *fill* 0x0000000008000e2a 0x2 .text.HAL_MspInit - 0x0000000008000ee4 0x44 ./Core/Src/stm32f1xx_hal_msp.o - 0x0000000008000ee4 HAL_MspInit + 0x0000000008000e2c 0x44 ./Core/Src/stm32f1xx_hal_msp.o + 0x0000000008000e2c HAL_MspInit .text.HAL_UART_MspInit - 0x0000000008000f28 0x98 ./Core/Src/stm32f1xx_hal_msp.o - 0x0000000008000f28 HAL_UART_MspInit + 0x0000000008000e70 0x98 ./Core/Src/stm32f1xx_hal_msp.o + 0x0000000008000e70 HAL_UART_MspInit .text.HAL_FSMC_MspInit - 0x0000000008000fc0 0x88 ./Core/Src/stm32f1xx_hal_msp.o + 0x0000000008000f08 0x88 ./Core/Src/stm32f1xx_hal_msp.o .text.HAL_SRAM_MspInit - 0x0000000008001048 0x14 ./Core/Src/stm32f1xx_hal_msp.o - 0x0000000008001048 HAL_SRAM_MspInit + 0x0000000008000f90 0x14 ./Core/Src/stm32f1xx_hal_msp.o + 0x0000000008000f90 HAL_SRAM_MspInit .text.NMI_Handler - 0x000000000800105c 0x6 ./Core/Src/stm32f1xx_it.o - 0x000000000800105c NMI_Handler + 0x0000000008000fa4 0x6 ./Core/Src/stm32f1xx_it.o + 0x0000000008000fa4 NMI_Handler .text.HardFault_Handler - 0x0000000008001062 0x6 ./Core/Src/stm32f1xx_it.o - 0x0000000008001062 HardFault_Handler + 0x0000000008000faa 0x6 ./Core/Src/stm32f1xx_it.o + 0x0000000008000faa HardFault_Handler .text.MemManage_Handler - 0x0000000008001068 0x6 ./Core/Src/stm32f1xx_it.o - 0x0000000008001068 MemManage_Handler + 0x0000000008000fb0 0x6 ./Core/Src/stm32f1xx_it.o + 0x0000000008000fb0 MemManage_Handler .text.BusFault_Handler - 0x000000000800106e 0x6 ./Core/Src/stm32f1xx_it.o - 0x000000000800106e BusFault_Handler + 0x0000000008000fb6 0x6 ./Core/Src/stm32f1xx_it.o + 0x0000000008000fb6 BusFault_Handler .text.UsageFault_Handler - 0x0000000008001074 0x6 ./Core/Src/stm32f1xx_it.o - 0x0000000008001074 UsageFault_Handler + 0x0000000008000fbc 0x6 ./Core/Src/stm32f1xx_it.o + 0x0000000008000fbc UsageFault_Handler .text.SVC_Handler - 0x000000000800107a 0xc ./Core/Src/stm32f1xx_it.o - 0x000000000800107a SVC_Handler + 0x0000000008000fc2 0xc ./Core/Src/stm32f1xx_it.o + 0x0000000008000fc2 SVC_Handler .text.DebugMon_Handler - 0x0000000008001086 0xc ./Core/Src/stm32f1xx_it.o - 0x0000000008001086 DebugMon_Handler + 0x0000000008000fce 0xc ./Core/Src/stm32f1xx_it.o + 0x0000000008000fce DebugMon_Handler .text.PendSV_Handler - 0x0000000008001092 0xc ./Core/Src/stm32f1xx_it.o - 0x0000000008001092 PendSV_Handler + 0x0000000008000fda 0xc ./Core/Src/stm32f1xx_it.o + 0x0000000008000fda PendSV_Handler .text.SysTick_Handler - 0x000000000800109e 0x12 ./Core/Src/stm32f1xx_it.o - 0x000000000800109e SysTick_Handler + 0x0000000008000fe6 0x12 ./Core/Src/stm32f1xx_it.o + 0x0000000008000fe6 SysTick_Handler .text.SystemInit - 0x00000000080010b0 0xc ./Core/Src/system_stm32f1xx.o - 0x00000000080010b0 SystemInit + 0x0000000008000ff8 0xc ./Core/Src/system_stm32f1xx.o + 0x0000000008000ff8 SystemInit .text.Reset_Handler - 0x00000000080010bc 0x48 ./Core/Startup/startup_stm32f103vetx.o - 0x00000000080010bc Reset_Handler + 0x0000000008001004 0x48 ./Core/Startup/startup_stm32f103vetx.o + 0x0000000008001004 Reset_Handler .text.Default_Handler - 0x0000000008001104 0x2 ./Core/Startup/startup_stm32f103vetx.o - 0x0000000008001104 RTC_Alarm_IRQHandler - 0x0000000008001104 EXTI2_IRQHandler - 0x0000000008001104 TIM8_TRG_COM_IRQHandler - 0x0000000008001104 TIM8_CC_IRQHandler - 0x0000000008001104 TIM1_CC_IRQHandler - 0x0000000008001104 TIM6_IRQHandler - 0x0000000008001104 PVD_IRQHandler - 0x0000000008001104 SDIO_IRQHandler - 0x0000000008001104 EXTI3_IRQHandler - 0x0000000008001104 EXTI0_IRQHandler - 0x0000000008001104 I2C2_EV_IRQHandler - 0x0000000008001104 ADC1_2_IRQHandler - 0x0000000008001104 SPI1_IRQHandler - 0x0000000008001104 TAMPER_IRQHandler - 0x0000000008001104 TIM8_UP_IRQHandler - 0x0000000008001104 DMA2_Channel2_IRQHandler - 0x0000000008001104 DMA1_Channel4_IRQHandler - 0x0000000008001104 USART3_IRQHandler - 0x0000000008001104 RTC_IRQHandler - 0x0000000008001104 DMA1_Channel7_IRQHandler - 0x0000000008001104 CAN1_RX1_IRQHandler - 0x0000000008001104 UART5_IRQHandler - 0x0000000008001104 ADC3_IRQHandler - 0x0000000008001104 TIM4_IRQHandler - 0x0000000008001104 DMA2_Channel1_IRQHandler - 0x0000000008001104 I2C1_EV_IRQHandler - 0x0000000008001104 DMA1_Channel6_IRQHandler - 0x0000000008001104 UART4_IRQHandler - 0x0000000008001104 TIM3_IRQHandler - 0x0000000008001104 RCC_IRQHandler - 0x0000000008001104 TIM1_TRG_COM_IRQHandler - 0x0000000008001104 DMA1_Channel1_IRQHandler - 0x0000000008001104 Default_Handler - 0x0000000008001104 EXTI15_10_IRQHandler - 0x0000000008001104 TIM7_IRQHandler - 0x0000000008001104 TIM5_IRQHandler - 0x0000000008001104 EXTI9_5_IRQHandler - 0x0000000008001104 SPI2_IRQHandler - 0x0000000008001104 DMA1_Channel5_IRQHandler - 0x0000000008001104 EXTI4_IRQHandler - 0x0000000008001104 USB_LP_CAN1_RX0_IRQHandler - 0x0000000008001104 USB_HP_CAN1_TX_IRQHandler - 0x0000000008001104 DMA1_Channel3_IRQHandler - 0x0000000008001104 FSMC_IRQHandler - 0x0000000008001104 TIM1_UP_IRQHandler - 0x0000000008001104 WWDG_IRQHandler - 0x0000000008001104 TIM2_IRQHandler - 0x0000000008001104 TIM1_BRK_IRQHandler - 0x0000000008001104 EXTI1_IRQHandler - 0x0000000008001104 DMA2_Channel4_5_IRQHandler - 0x0000000008001104 USART2_IRQHandler - 0x0000000008001104 I2C2_ER_IRQHandler - 0x0000000008001104 DMA1_Channel2_IRQHandler - 0x0000000008001104 TIM8_BRK_IRQHandler - 0x0000000008001104 CAN1_SCE_IRQHandler - 0x0000000008001104 FLASH_IRQHandler - 0x0000000008001104 USART1_IRQHandler - 0x0000000008001104 SPI3_IRQHandler - 0x0000000008001104 I2C1_ER_IRQHandler - 0x0000000008001104 USBWakeUp_IRQHandler - 0x0000000008001104 DMA2_Channel3_IRQHandler - *fill* 0x0000000008001106 0x2 + 0x000000000800104c 0x2 ./Core/Startup/startup_stm32f103vetx.o + 0x000000000800104c RTC_Alarm_IRQHandler + 0x000000000800104c EXTI2_IRQHandler + 0x000000000800104c TIM8_TRG_COM_IRQHandler + 0x000000000800104c TIM8_CC_IRQHandler + 0x000000000800104c TIM1_CC_IRQHandler + 0x000000000800104c TIM6_IRQHandler + 0x000000000800104c PVD_IRQHandler + 0x000000000800104c SDIO_IRQHandler + 0x000000000800104c EXTI3_IRQHandler + 0x000000000800104c EXTI0_IRQHandler + 0x000000000800104c I2C2_EV_IRQHandler + 0x000000000800104c ADC1_2_IRQHandler + 0x000000000800104c SPI1_IRQHandler + 0x000000000800104c TAMPER_IRQHandler + 0x000000000800104c TIM8_UP_IRQHandler + 0x000000000800104c DMA2_Channel2_IRQHandler + 0x000000000800104c DMA1_Channel4_IRQHandler + 0x000000000800104c USART3_IRQHandler + 0x000000000800104c RTC_IRQHandler + 0x000000000800104c DMA1_Channel7_IRQHandler + 0x000000000800104c CAN1_RX1_IRQHandler + 0x000000000800104c UART5_IRQHandler + 0x000000000800104c ADC3_IRQHandler + 0x000000000800104c TIM4_IRQHandler + 0x000000000800104c DMA2_Channel1_IRQHandler + 0x000000000800104c I2C1_EV_IRQHandler + 0x000000000800104c DMA1_Channel6_IRQHandler + 0x000000000800104c UART4_IRQHandler + 0x000000000800104c TIM3_IRQHandler + 0x000000000800104c RCC_IRQHandler + 0x000000000800104c TIM1_TRG_COM_IRQHandler + 0x000000000800104c DMA1_Channel1_IRQHandler + 0x000000000800104c Default_Handler + 0x000000000800104c EXTI15_10_IRQHandler + 0x000000000800104c TIM7_IRQHandler + 0x000000000800104c TIM5_IRQHandler + 0x000000000800104c EXTI9_5_IRQHandler + 0x000000000800104c SPI2_IRQHandler + 0x000000000800104c DMA1_Channel5_IRQHandler + 0x000000000800104c EXTI4_IRQHandler + 0x000000000800104c USB_LP_CAN1_RX0_IRQHandler + 0x000000000800104c USB_HP_CAN1_TX_IRQHandler + 0x000000000800104c DMA1_Channel3_IRQHandler + 0x000000000800104c FSMC_IRQHandler + 0x000000000800104c TIM1_UP_IRQHandler + 0x000000000800104c WWDG_IRQHandler + 0x000000000800104c TIM2_IRQHandler + 0x000000000800104c TIM1_BRK_IRQHandler + 0x000000000800104c EXTI1_IRQHandler + 0x000000000800104c DMA2_Channel4_5_IRQHandler + 0x000000000800104c USART2_IRQHandler + 0x000000000800104c I2C2_ER_IRQHandler + 0x000000000800104c DMA1_Channel2_IRQHandler + 0x000000000800104c TIM8_BRK_IRQHandler + 0x000000000800104c CAN1_SCE_IRQHandler + 0x000000000800104c FLASH_IRQHandler + 0x000000000800104c USART1_IRQHandler + 0x000000000800104c SPI3_IRQHandler + 0x000000000800104c I2C1_ER_IRQHandler + 0x000000000800104c USBWakeUp_IRQHandler + 0x000000000800104c DMA2_Channel3_IRQHandler + *fill* 0x000000000800104e 0x2 .text.HAL_Init - 0x0000000008001108 0x2c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - 0x0000000008001108 HAL_Init + 0x0000000008001050 0x2c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000008001050 HAL_Init .text.HAL_InitTick - 0x0000000008001134 0x60 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - 0x0000000008001134 HAL_InitTick + 0x000000000800107c 0x60 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x000000000800107c HAL_InitTick .text.HAL_IncTick - 0x0000000008001194 0x24 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - 0x0000000008001194 HAL_IncTick + 0x00000000080010dc 0x24 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x00000000080010dc HAL_IncTick .text.HAL_GetTick - 0x00000000080011b8 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - 0x00000000080011b8 HAL_GetTick + 0x0000000008001100 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000008001100 HAL_GetTick .text.HAL_Delay - 0x00000000080011cc 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - 0x00000000080011cc HAL_Delay + 0x0000000008001114 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000008001114 HAL_Delay .text.__NVIC_SetPriorityGrouping - 0x0000000008001214 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x000000000800115c 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o .text.__NVIC_GetPriorityGrouping - 0x000000000800125c 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x00000000080011a4 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o .text.__NVIC_SetPriority - 0x0000000008001278 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x00000000080011c0 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o .text.NVIC_EncodePriority - 0x00000000080012cc 0x64 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000008001214 0x64 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o .text.SysTick_Config - 0x0000000008001330 0x44 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000008001278 0x44 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o .text.HAL_NVIC_SetPriorityGrouping - 0x0000000008001374 0x16 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o - 0x0000000008001374 HAL_NVIC_SetPriorityGrouping + 0x00000000080012bc 0x16 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x00000000080012bc HAL_NVIC_SetPriorityGrouping .text.HAL_NVIC_SetPriority - 0x000000000800138a 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o - 0x000000000800138a HAL_NVIC_SetPriority + 0x00000000080012d2 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x00000000080012d2 HAL_NVIC_SetPriority .text.HAL_SYSTICK_Config - 0x00000000080013c2 0x18 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o - 0x00000000080013c2 HAL_SYSTICK_Config - *fill* 0x00000000080013da 0x2 + 0x000000000800130a 0x18 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x000000000800130a HAL_SYSTICK_Config + *fill* 0x0000000008001322 0x2 .text.HAL_GPIO_Init - 0x00000000080013dc 0x328 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o - 0x00000000080013dc HAL_GPIO_Init + 0x0000000008001324 0x328 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + 0x0000000008001324 HAL_GPIO_Init .text.HAL_GPIO_ReadPin - 0x0000000008001704 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o - 0x0000000008001704 HAL_GPIO_ReadPin + 0x000000000800164c 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + 0x000000000800164c HAL_GPIO_ReadPin .text.HAL_GPIO_WritePin - 0x0000000008001732 0x30 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o - 0x0000000008001732 HAL_GPIO_WritePin - .text.HAL_GPIO_TogglePin - 0x0000000008001762 0x32 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o - 0x0000000008001762 HAL_GPIO_TogglePin + 0x000000000800167a 0x30 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + 0x000000000800167a HAL_GPIO_WritePin + *fill* 0x00000000080016aa 0x2 .text.HAL_RCC_OscConfig - 0x0000000008001794 0x504 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - 0x0000000008001794 HAL_RCC_OscConfig + 0x00000000080016ac 0x504 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x00000000080016ac HAL_RCC_OscConfig .text.HAL_RCC_ClockConfig - 0x0000000008001c98 0x1d4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - 0x0000000008001c98 HAL_RCC_ClockConfig + 0x0000000008001bb0 0x1d4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000008001bb0 HAL_RCC_ClockConfig .text.HAL_RCC_GetSysClockFreq - 0x0000000008001e6c 0xa8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - 0x0000000008001e6c HAL_RCC_GetSysClockFreq + 0x0000000008001d84 0xa8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000008001d84 HAL_RCC_GetSysClockFreq .text.HAL_RCC_GetHCLKFreq - 0x0000000008001f14 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - 0x0000000008001f14 HAL_RCC_GetHCLKFreq + 0x0000000008001e2c 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000008001e2c HAL_RCC_GetHCLKFreq .text.HAL_RCC_GetPCLK1Freq - 0x0000000008001f28 0x28 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - 0x0000000008001f28 HAL_RCC_GetPCLK1Freq + 0x0000000008001e40 0x28 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000008001e40 HAL_RCC_GetPCLK1Freq .text.HAL_RCC_GetPCLK2Freq - 0x0000000008001f50 0x28 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - 0x0000000008001f50 HAL_RCC_GetPCLK2Freq + 0x0000000008001e68 0x28 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000008001e68 HAL_RCC_GetPCLK2Freq .text.RCC_Delay - 0x0000000008001f78 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000008001e90 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o .text.HAL_SRAM_Init - 0x0000000008001fb4 0x9a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o - 0x0000000008001fb4 HAL_SRAM_Init + 0x0000000008001ecc 0x9a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + 0x0000000008001ecc HAL_SRAM_Init .text.HAL_UART_Init - 0x000000000800204e 0xa0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o - 0x000000000800204e HAL_UART_Init - *fill* 0x00000000080020ee 0x2 + 0x0000000008001f66 0xa0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o + 0x0000000008001f66 HAL_UART_Init + *fill* 0x0000000008002006 0x2 .text.UART_SetConfig - 0x00000000080020f0 0x11c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o + 0x0000000008002008 0x11c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o .text.FSMC_NORSRAM_Init - 0x000000000800220c 0xd4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o - 0x000000000800220c FSMC_NORSRAM_Init + 0x0000000008002124 0xd4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + 0x0000000008002124 FSMC_NORSRAM_Init .text.FSMC_NORSRAM_Timing_Init - 0x00000000080022e0 0x68 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o - 0x00000000080022e0 FSMC_NORSRAM_Timing_Init + 0x00000000080021f8 0x68 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + 0x00000000080021f8 FSMC_NORSRAM_Timing_Init .text.FSMC_NORSRAM_Extended_Timing_Init - 0x0000000008002348 0x70 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o - 0x0000000008002348 FSMC_NORSRAM_Extended_Timing_Init + 0x0000000008002260 0x70 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + 0x0000000008002260 FSMC_NORSRAM_Extended_Timing_Init .text.lv_disp_get_scr_act - 0x00000000080023b8 0x2a ./Drivers/lvgl/src/core/lv_disp.o - 0x00000000080023b8 lv_disp_get_scr_act + 0x00000000080022d0 0x2a ./Drivers/lvgl/src/core/lv_disp.o + 0x00000000080022d0 lv_disp_get_scr_act .text.lv_disp_get_scr_prev - 0x00000000080023e2 0x2a ./Drivers/lvgl/src/core/lv_disp.o - 0x00000000080023e2 lv_disp_get_scr_prev + 0x00000000080022fa 0x2a ./Drivers/lvgl/src/core/lv_disp.o + 0x00000000080022fa lv_disp_get_scr_prev + .text.lv_disp_load_scr + 0x0000000008002324 0x7a ./Drivers/lvgl/src/core/lv_disp.o + 0x0000000008002324 lv_disp_load_scr .text.lv_disp_get_layer_top - 0x000000000800240c 0x2a ./Drivers/lvgl/src/core/lv_disp.o - 0x000000000800240c lv_disp_get_layer_top + 0x000000000800239e 0x2a ./Drivers/lvgl/src/core/lv_disp.o + 0x000000000800239e lv_disp_get_layer_top .text.lv_disp_get_layer_sys - 0x0000000008002436 0x2a ./Drivers/lvgl/src/core/lv_disp.o - 0x0000000008002436 lv_disp_get_layer_sys + 0x00000000080023c8 0x2a ./Drivers/lvgl/src/core/lv_disp.o + 0x00000000080023c8 lv_disp_get_layer_sys .text.lv_disp_get_theme - 0x0000000008002460 0x20 ./Drivers/lvgl/src/core/lv_disp.o - 0x0000000008002460 lv_disp_get_theme + 0x00000000080023f2 0x20 ./Drivers/lvgl/src/core/lv_disp.o + 0x00000000080023f2 lv_disp_get_theme + *fill* 0x0000000008002412 0x2 .text.lv_event_send - 0x0000000008002480 0x84 ./Drivers/lvgl/src/core/lv_event.o - 0x0000000008002480 lv_event_send + 0x0000000008002414 0x84 ./Drivers/lvgl/src/core/lv_event.o + 0x0000000008002414 lv_event_send .text.lv_obj_event_base - 0x0000000008002504 0x7c ./Drivers/lvgl/src/core/lv_event.o - 0x0000000008002504 lv_obj_event_base + 0x0000000008002498 0x7c ./Drivers/lvgl/src/core/lv_event.o + 0x0000000008002498 lv_obj_event_base .text.lv_event_get_target - 0x0000000008002580 0x16 ./Drivers/lvgl/src/core/lv_event.o - 0x0000000008002580 lv_event_get_target + 0x0000000008002514 0x16 ./Drivers/lvgl/src/core/lv_event.o + 0x0000000008002514 lv_event_get_target .text.lv_event_get_current_target - 0x0000000008002596 0x16 ./Drivers/lvgl/src/core/lv_event.o - 0x0000000008002596 lv_event_get_current_target + 0x000000000800252a 0x16 ./Drivers/lvgl/src/core/lv_event.o + 0x000000000800252a lv_event_get_current_target .text.lv_event_get_code - 0x00000000080025ac 0x1c ./Drivers/lvgl/src/core/lv_event.o - 0x00000000080025ac lv_event_get_code + 0x0000000008002540 0x1c ./Drivers/lvgl/src/core/lv_event.o + 0x0000000008002540 lv_event_get_code .text.lv_event_get_param - 0x00000000080025c8 0x16 ./Drivers/lvgl/src/core/lv_event.o - 0x00000000080025c8 lv_event_get_param + 0x000000000800255c 0x16 ./Drivers/lvgl/src/core/lv_event.o + 0x000000000800255c lv_event_get_param .text.lv_event_get_user_data - 0x00000000080025de 0x16 ./Drivers/lvgl/src/core/lv_event.o - 0x00000000080025de lv_event_get_user_data + 0x0000000008002572 0x16 ./Drivers/lvgl/src/core/lv_event.o + 0x0000000008002572 lv_event_get_user_data .text._lv_event_mark_deleted - 0x00000000080025f4 0x4c ./Drivers/lvgl/src/core/lv_event.o - 0x00000000080025f4 _lv_event_mark_deleted + 0x0000000008002588 0x4c ./Drivers/lvgl/src/core/lv_event.o + 0x0000000008002588 _lv_event_mark_deleted .text.lv_obj_add_event_cb - 0x0000000008002640 0xd0 ./Drivers/lvgl/src/core/lv_event.o - 0x0000000008002640 lv_obj_add_event_cb + 0x00000000080025d4 0xd0 ./Drivers/lvgl/src/core/lv_event.o + 0x00000000080025d4 lv_obj_add_event_cb .text.lv_event_get_indev - 0x0000000008002710 0x9c ./Drivers/lvgl/src/core/lv_event.o - 0x0000000008002710 lv_event_get_indev + 0x00000000080026a4 0x9c ./Drivers/lvgl/src/core/lv_event.o + 0x00000000080026a4 lv_event_get_indev .text.lv_event_get_draw_ctx - 0x00000000080027ac 0x4c ./Drivers/lvgl/src/core/lv_event.o - 0x00000000080027ac lv_event_get_draw_ctx + 0x0000000008002740 0x4c ./Drivers/lvgl/src/core/lv_event.o + 0x0000000008002740 lv_event_get_draw_ctx .text.lv_event_set_ext_draw_size - 0x00000000080027f8 0x3a ./Drivers/lvgl/src/core/lv_event.o - 0x00000000080027f8 lv_event_set_ext_draw_size + 0x000000000800278c 0x3a ./Drivers/lvgl/src/core/lv_event.o + 0x000000000800278c lv_event_set_ext_draw_size .text.lv_obj_get_event_dsc - 0x0000000008002832 0x44 ./Drivers/lvgl/src/core/lv_event.o + 0x00000000080027c6 0x44 ./Drivers/lvgl/src/core/lv_event.o .text.event_send_core - 0x0000000008002876 0x1e0 ./Drivers/lvgl/src/core/lv_event.o - *fill* 0x0000000008002a56 0x2 + 0x000000000800280a 0x1e0 ./Drivers/lvgl/src/core/lv_event.o + *fill* 0x00000000080029ea 0x2 .text.event_is_bubbled - 0x0000000008002a58 0x88 ./Drivers/lvgl/src/core/lv_event.o + 0x00000000080029ec 0x88 ./Drivers/lvgl/src/core/lv_event.o .text._lv_group_init - 0x0000000008002ae0 0x14 ./Drivers/lvgl/src/core/lv_group.o - 0x0000000008002ae0 _lv_group_init + 0x0000000008002a74 0x14 ./Drivers/lvgl/src/core/lv_group.o + 0x0000000008002a74 _lv_group_init .text.lv_group_get_default - 0x0000000008002af4 0x14 ./Drivers/lvgl/src/core/lv_group.o - 0x0000000008002af4 lv_group_get_default + 0x0000000008002a88 0x14 ./Drivers/lvgl/src/core/lv_group.o + 0x0000000008002a88 lv_group_get_default .text.lv_group_add_obj - 0x0000000008002b08 0xc2 ./Drivers/lvgl/src/core/lv_group.o - 0x0000000008002b08 lv_group_add_obj + 0x0000000008002a9c 0xc2 ./Drivers/lvgl/src/core/lv_group.o + 0x0000000008002a9c lv_group_add_obj .text.lv_group_remove_obj - 0x0000000008002bca 0xf8 ./Drivers/lvgl/src/core/lv_group.o - 0x0000000008002bca lv_group_remove_obj + 0x0000000008002b5e 0xf8 ./Drivers/lvgl/src/core/lv_group.o + 0x0000000008002b5e lv_group_remove_obj .text.lv_group_focus_obj - 0x0000000008002cc2 0x108 ./Drivers/lvgl/src/core/lv_group.o - 0x0000000008002cc2 lv_group_focus_obj - *fill* 0x0000000008002dca 0x2 + 0x0000000008002c56 0x108 ./Drivers/lvgl/src/core/lv_group.o + 0x0000000008002c56 lv_group_focus_obj + *fill* 0x0000000008002d5e 0x2 .text.lv_group_focus_next - 0x0000000008002dcc 0x24 ./Drivers/lvgl/src/core/lv_group.o - 0x0000000008002dcc lv_group_focus_next + 0x0000000008002d60 0x24 ./Drivers/lvgl/src/core/lv_group.o + 0x0000000008002d60 lv_group_focus_next .text.lv_group_focus_prev - 0x0000000008002df0 0x24 ./Drivers/lvgl/src/core/lv_group.o - 0x0000000008002df0 lv_group_focus_prev + 0x0000000008002d84 0x24 ./Drivers/lvgl/src/core/lv_group.o + 0x0000000008002d84 lv_group_focus_prev .text.lv_group_send_data - 0x0000000008002e14 0x32 ./Drivers/lvgl/src/core/lv_group.o - 0x0000000008002e14 lv_group_send_data + 0x0000000008002da8 0x32 ./Drivers/lvgl/src/core/lv_group.o + 0x0000000008002da8 lv_group_send_data .text.lv_group_set_editing - 0x0000000008002e46 0x82 ./Drivers/lvgl/src/core/lv_group.o - 0x0000000008002e46 lv_group_set_editing + 0x0000000008002dda 0x82 ./Drivers/lvgl/src/core/lv_group.o + 0x0000000008002dda lv_group_set_editing .text.lv_group_get_focused - 0x0000000008002ec8 0x2e ./Drivers/lvgl/src/core/lv_group.o - 0x0000000008002ec8 lv_group_get_focused + 0x0000000008002e5c 0x2e ./Drivers/lvgl/src/core/lv_group.o + 0x0000000008002e5c lv_group_get_focused .text.lv_group_get_editing - 0x0000000008002ef6 0x32 ./Drivers/lvgl/src/core/lv_group.o - 0x0000000008002ef6 lv_group_get_editing + 0x0000000008002e8a 0x32 ./Drivers/lvgl/src/core/lv_group.o + 0x0000000008002e8a lv_group_get_editing .text.lv_group_get_obj_count - 0x0000000008002f28 0x1a ./Drivers/lvgl/src/core/lv_group.o - 0x0000000008002f28 lv_group_get_obj_count + 0x0000000008002ebc 0x1a ./Drivers/lvgl/src/core/lv_group.o + 0x0000000008002ebc lv_group_get_obj_count .text.lv_group_refocus - 0x0000000008002f42 0x62 ./Drivers/lvgl/src/core/lv_group.o + 0x0000000008002ed6 0x62 ./Drivers/lvgl/src/core/lv_group.o .text.focus_next_core - 0x0000000008002fa4 0x1a6 ./Drivers/lvgl/src/core/lv_group.o + 0x0000000008002f38 0x1a6 ./Drivers/lvgl/src/core/lv_group.o .text.get_indev - 0x000000000800314a 0x78 ./Drivers/lvgl/src/core/lv_group.o - *fill* 0x00000000080031c2 0x2 + 0x00000000080030de 0x78 ./Drivers/lvgl/src/core/lv_group.o + *fill* 0x0000000008003156 0x2 .text.lv_indev_read_timer_cb - 0x00000000080031c4 0x154 ./Drivers/lvgl/src/core/lv_indev.o - 0x00000000080031c4 lv_indev_read_timer_cb + 0x0000000008003158 0x154 ./Drivers/lvgl/src/core/lv_indev.o + 0x0000000008003158 lv_indev_read_timer_cb .text.lv_indev_get_act - 0x0000000008003318 0x14 ./Drivers/lvgl/src/core/lv_indev.o - 0x0000000008003318 lv_indev_get_act + 0x00000000080032ac 0x14 ./Drivers/lvgl/src/core/lv_indev.o + 0x00000000080032ac lv_indev_get_act .text.lv_indev_get_type - 0x000000000800332c 0x22 ./Drivers/lvgl/src/core/lv_indev.o - 0x000000000800332c lv_indev_get_type - *fill* 0x000000000800334e 0x2 + 0x00000000080032c0 0x22 ./Drivers/lvgl/src/core/lv_indev.o + 0x00000000080032c0 lv_indev_get_type + *fill* 0x00000000080032e2 0x2 .text.lv_indev_reset - 0x0000000008003350 0x110 ./Drivers/lvgl/src/core/lv_indev.o - 0x0000000008003350 lv_indev_reset + 0x00000000080032e4 0x110 ./Drivers/lvgl/src/core/lv_indev.o + 0x00000000080032e4 lv_indev_reset .text.lv_indev_reset_long_press - 0x0000000008003460 0x2e ./Drivers/lvgl/src/core/lv_indev.o - 0x0000000008003460 lv_indev_reset_long_press + 0x00000000080033f4 0x2e ./Drivers/lvgl/src/core/lv_indev.o + 0x00000000080033f4 lv_indev_reset_long_press .text.lv_indev_set_cursor - 0x000000000800348e 0x6e ./Drivers/lvgl/src/core/lv_indev.o - 0x000000000800348e lv_indev_set_cursor + 0x0000000008003422 0x6e ./Drivers/lvgl/src/core/lv_indev.o + 0x0000000008003422 lv_indev_set_cursor .text.lv_indev_get_point - 0x00000000080034fc 0x60 ./Drivers/lvgl/src/core/lv_indev.o - 0x00000000080034fc lv_indev_get_point + 0x0000000008003490 0x60 ./Drivers/lvgl/src/core/lv_indev.o + 0x0000000008003490 lv_indev_get_point .text.lv_indev_get_scroll_dir - 0x000000000800355c 0x40 ./Drivers/lvgl/src/core/lv_indev.o - 0x000000000800355c lv_indev_get_scroll_dir + 0x00000000080034f0 0x40 ./Drivers/lvgl/src/core/lv_indev.o + 0x00000000080034f0 lv_indev_get_scroll_dir .text.lv_indev_get_scroll_obj - 0x000000000800359c 0x38 ./Drivers/lvgl/src/core/lv_indev.o - 0x000000000800359c lv_indev_get_scroll_obj + 0x0000000008003530 0x38 ./Drivers/lvgl/src/core/lv_indev.o + 0x0000000008003530 lv_indev_get_scroll_obj .text.lv_indev_get_vect - 0x00000000080035d4 0x50 ./Drivers/lvgl/src/core/lv_indev.o - 0x00000000080035d4 lv_indev_get_vect + 0x0000000008003568 0x50 ./Drivers/lvgl/src/core/lv_indev.o + 0x0000000008003568 lv_indev_get_vect .text.lv_indev_wait_release - 0x0000000008003624 0x24 ./Drivers/lvgl/src/core/lv_indev.o - 0x0000000008003624 lv_indev_wait_release + 0x00000000080035b8 0x24 ./Drivers/lvgl/src/core/lv_indev.o + 0x00000000080035b8 lv_indev_wait_release .text.lv_indev_get_obj_act - 0x0000000008003648 0x14 ./Drivers/lvgl/src/core/lv_indev.o - 0x0000000008003648 lv_indev_get_obj_act + 0x00000000080035dc 0x14 ./Drivers/lvgl/src/core/lv_indev.o + 0x00000000080035dc lv_indev_get_obj_act .text.lv_indev_search_obj - 0x000000000800365c 0xa4 ./Drivers/lvgl/src/core/lv_indev.o - 0x000000000800365c lv_indev_search_obj + 0x00000000080035f0 0xa4 ./Drivers/lvgl/src/core/lv_indev.o + 0x00000000080035f0 lv_indev_search_obj .text.indev_pointer_proc - 0x0000000008003700 0x174 ./Drivers/lvgl/src/core/lv_indev.o + 0x0000000008003694 0x174 ./Drivers/lvgl/src/core/lv_indev.o .text.indev_keypad_proc - 0x0000000008003874 0x3bc ./Drivers/lvgl/src/core/lv_indev.o + 0x0000000008003808 0x3bc ./Drivers/lvgl/src/core/lv_indev.o .text.indev_encoder_proc - 0x0000000008003c30 0x604 ./Drivers/lvgl/src/core/lv_indev.o + 0x0000000008003bc4 0x604 ./Drivers/lvgl/src/core/lv_indev.o .text.indev_button_proc - 0x0000000008004234 0xe0 ./Drivers/lvgl/src/core/lv_indev.o + 0x00000000080041c8 0xe0 ./Drivers/lvgl/src/core/lv_indev.o .text.indev_proc_press - 0x0000000008004314 0x458 ./Drivers/lvgl/src/core/lv_indev.o + 0x00000000080042a8 0x458 ./Drivers/lvgl/src/core/lv_indev.o .text.indev_proc_release - 0x000000000800476c 0xf8 ./Drivers/lvgl/src/core/lv_indev.o + 0x0000000008004700 0xf8 ./Drivers/lvgl/src/core/lv_indev.o .text.indev_proc_reset_query_handler - 0x0000000008004864 0x90 ./Drivers/lvgl/src/core/lv_indev.o + 0x00000000080047f8 0x90 ./Drivers/lvgl/src/core/lv_indev.o .text.indev_click_focus - 0x00000000080048f4 0x194 ./Drivers/lvgl/src/core/lv_indev.o + 0x0000000008004888 0x194 ./Drivers/lvgl/src/core/lv_indev.o .text.indev_gesture - 0x0000000008004a88 0x1b8 ./Drivers/lvgl/src/core/lv_indev.o + 0x0000000008004a1c 0x1b8 ./Drivers/lvgl/src/core/lv_indev.o .text.indev_reset_check - 0x0000000008004c40 0x40 ./Drivers/lvgl/src/core/lv_indev.o + 0x0000000008004bd4 0x40 ./Drivers/lvgl/src/core/lv_indev.o .text.lv_area_get_width - 0x0000000008004c80 0x2c ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x0000000008004c14 0x2c ./Drivers/lvgl/src/core/lv_indev_scroll.o .text.lv_area_get_height - 0x0000000008004cac 0x2c ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x0000000008004c40 0x2c ./Drivers/lvgl/src/core/lv_indev_scroll.o .text.lv_obj_get_style_pad_top - 0x0000000008004cd8 0x26 ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x0000000008004c6c 0x26 ./Drivers/lvgl/src/core/lv_indev_scroll.o .text.lv_obj_get_style_pad_bottom - 0x0000000008004cfe 0x26 ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x0000000008004c92 0x26 ./Drivers/lvgl/src/core/lv_indev_scroll.o .text.lv_obj_get_style_pad_left - 0x0000000008004d24 0x26 ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x0000000008004cb8 0x26 ./Drivers/lvgl/src/core/lv_indev_scroll.o .text.lv_obj_get_style_pad_right - 0x0000000008004d4a 0x26 ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x0000000008004cde 0x26 ./Drivers/lvgl/src/core/lv_indev_scroll.o .text._lv_indev_scroll_handler - 0x0000000008004d70 0x1c8 ./Drivers/lvgl/src/core/lv_indev_scroll.o - 0x0000000008004d70 _lv_indev_scroll_handler + 0x0000000008004d04 0x1c8 ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x0000000008004d04 _lv_indev_scroll_handler .text._lv_indev_scroll_throw_handler - 0x0000000008004f38 0x330 ./Drivers/lvgl/src/core/lv_indev_scroll.o - 0x0000000008004f38 _lv_indev_scroll_throw_handler + 0x0000000008004ecc 0x330 ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x0000000008004ecc _lv_indev_scroll_throw_handler .text.lv_indev_scroll_throw_predict - 0x0000000008005268 0x84 ./Drivers/lvgl/src/core/lv_indev_scroll.o - 0x0000000008005268 lv_indev_scroll_throw_predict + 0x00000000080051fc 0x84 ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x00000000080051fc lv_indev_scroll_throw_predict .text.find_scroll_obj - 0x00000000080052ec 0x31e ./Drivers/lvgl/src/core/lv_indev_scroll.o - *fill* 0x000000000800560a 0x2 + 0x0000000008005280 0x31e ./Drivers/lvgl/src/core/lv_indev_scroll.o + *fill* 0x000000000800559e 0x2 .text.init_scroll_limits - 0x000000000800560c 0x280 ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x00000000080055a0 0x280 ./Drivers/lvgl/src/core/lv_indev_scroll.o .text.find_snap_point_x - 0x000000000800588c 0x1c0 ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x0000000008005820 0x1c0 ./Drivers/lvgl/src/core/lv_indev_scroll.o .text.find_snap_point_y - 0x0000000008005a4c 0x1c0 ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x00000000080059e0 0x1c0 ./Drivers/lvgl/src/core/lv_indev_scroll.o .text.scroll_limit_diff - 0x0000000008005c0c 0xf2 ./Drivers/lvgl/src/core/lv_indev_scroll.o - *fill* 0x0000000008005cfe 0x2 + 0x0000000008005ba0 0xf2 ./Drivers/lvgl/src/core/lv_indev_scroll.o + *fill* 0x0000000008005c92 0x2 .text.scroll_throw_predict_y - 0x0000000008005d00 0x64 ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x0000000008005c94 0x64 ./Drivers/lvgl/src/core/lv_indev_scroll.o .text.scroll_throw_predict_x - 0x0000000008005d64 0x64 ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x0000000008005cf8 0x64 ./Drivers/lvgl/src/core/lv_indev_scroll.o .text.elastic_diff - 0x0000000008005dc8 0x2ac ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x0000000008005d5c 0x2ac ./Drivers/lvgl/src/core/lv_indev_scroll.o .text.lv_area_copy - 0x0000000008006074 0x3c ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006008 0x3c ./Drivers/lvgl/src/core/lv_obj.o .text.lv_style_get_prop_inlined - 0x00000000080060b0 0xde ./Drivers/lvgl/src/core/lv_obj.o - *fill* 0x000000000800618e 0x2 + 0x0000000008006044 0xde ./Drivers/lvgl/src/core/lv_obj.o + *fill* 0x0000000008006122 0x2 .text.lv_obj_remove_style_all - 0x0000000008006190 0x20 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006124 0x20 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_width - 0x00000000080061b0 0x26 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006144 0x26 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_height - 0x00000000080061d6 0x26 ./Drivers/lvgl/src/core/lv_obj.o + 0x000000000800616a 0x26 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_align - 0x00000000080061fc 0x26 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006190 0x26 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_transform_width - 0x0000000008006222 0x26 ./Drivers/lvgl/src/core/lv_obj.o + 0x00000000080061b6 0x26 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_transform_height - 0x0000000008006248 0x26 ./Drivers/lvgl/src/core/lv_obj.o + 0x00000000080061dc 0x26 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_pad_top - 0x000000000800626e 0x26 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006202 0x26 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_pad_left - 0x0000000008006294 0x26 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006228 0x26 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_bg_color - 0x00000000080062ba 0x22 ./Drivers/lvgl/src/core/lv_obj.o + 0x000000000800624e 0x22 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_bg_opa - 0x00000000080062dc 0x24 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006270 0x24 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_border_color - 0x0000000008006300 0x22 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006294 0x22 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_border_opa - 0x0000000008006322 0x24 ./Drivers/lvgl/src/core/lv_obj.o + 0x00000000080062b6 0x24 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_border_width - 0x0000000008006346 0x26 ./Drivers/lvgl/src/core/lv_obj.o + 0x00000000080062da 0x26 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_border_post - 0x000000000800636c 0x2c ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006300 0x2c ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_shadow_width - 0x0000000008006398 0x26 ./Drivers/lvgl/src/core/lv_obj.o + 0x000000000800632c 0x26 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_shadow_spread - 0x00000000080063be 0x26 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006352 0x26 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_shadow_color - 0x00000000080063e4 0x22 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006378 0x22 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_shadow_opa - 0x0000000008006406 0x26 ./Drivers/lvgl/src/core/lv_obj.o + 0x000000000800639a 0x26 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_radius - 0x000000000800642c 0x24 ./Drivers/lvgl/src/core/lv_obj.o + 0x00000000080063c0 0x24 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_clip_corner - 0x0000000008006450 0x2c ./Drivers/lvgl/src/core/lv_obj.o + 0x00000000080063e4 0x2c ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_opa - 0x000000000800647c 0x26 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006410 0x26 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_blend_mode - 0x00000000080064a2 0x24 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006436 0x24 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_get_style_layout - 0x00000000080064c6 0x26 ./Drivers/lvgl/src/core/lv_obj.o - .text.lv_init 0x00000000080064ec 0xa4 ./Drivers/lvgl/src/core/lv_obj.o - 0x00000000080064ec lv_init + 0x000000000800645a 0x26 ./Drivers/lvgl/src/core/lv_obj.o + .text.lv_init 0x0000000008006480 0xa4 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006480 lv_init .text.lv_obj_create - 0x0000000008006590 0x28 ./Drivers/lvgl/src/core/lv_obj.o - 0x0000000008006590 lv_obj_create + 0x0000000008006524 0x28 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006524 lv_obj_create .text.lv_obj_add_flag - 0x00000000080065b8 0xa8 ./Drivers/lvgl/src/core/lv_obj.o - 0x00000000080065b8 lv_obj_add_flag + 0x000000000800654c 0xa8 ./Drivers/lvgl/src/core/lv_obj.o + 0x000000000800654c lv_obj_add_flag .text.lv_obj_clear_flag - 0x0000000008006660 0xb4 ./Drivers/lvgl/src/core/lv_obj.o - 0x0000000008006660 lv_obj_clear_flag + 0x00000000080065f4 0xb4 ./Drivers/lvgl/src/core/lv_obj.o + 0x00000000080065f4 lv_obj_clear_flag .text.lv_obj_add_state - 0x0000000008006714 0x32 ./Drivers/lvgl/src/core/lv_obj.o - 0x0000000008006714 lv_obj_add_state + 0x00000000080066a8 0x32 ./Drivers/lvgl/src/core/lv_obj.o + 0x00000000080066a8 lv_obj_add_state .text.lv_obj_clear_state - 0x0000000008006746 0x3c ./Drivers/lvgl/src/core/lv_obj.o - 0x0000000008006746 lv_obj_clear_state + 0x00000000080066da 0x3c ./Drivers/lvgl/src/core/lv_obj.o + 0x00000000080066da lv_obj_clear_state .text.lv_obj_has_flag - 0x0000000008006782 0x28 ./Drivers/lvgl/src/core/lv_obj.o - 0x0000000008006782 lv_obj_has_flag + 0x0000000008006716 0x28 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006716 lv_obj_has_flag .text.lv_obj_has_flag_any - 0x00000000080067aa 0x26 ./Drivers/lvgl/src/core/lv_obj.o - 0x00000000080067aa lv_obj_has_flag_any + 0x000000000800673e 0x26 ./Drivers/lvgl/src/core/lv_obj.o + 0x000000000800673e lv_obj_has_flag_any .text.lv_obj_get_state - 0x00000000080067d0 0x16 ./Drivers/lvgl/src/core/lv_obj.o - 0x00000000080067d0 lv_obj_get_state + 0x0000000008006764 0x16 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006764 lv_obj_get_state .text.lv_obj_has_state - 0x00000000080067e6 0x2a ./Drivers/lvgl/src/core/lv_obj.o - 0x00000000080067e6 lv_obj_has_state + 0x000000000800677a 0x2a ./Drivers/lvgl/src/core/lv_obj.o + 0x000000000800677a lv_obj_has_state .text.lv_obj_get_group - 0x0000000008006810 0x24 ./Drivers/lvgl/src/core/lv_obj.o - 0x0000000008006810 lv_obj_get_group + 0x00000000080067a4 0x24 ./Drivers/lvgl/src/core/lv_obj.o + 0x00000000080067a4 lv_obj_get_group .text.lv_obj_allocate_spec_attr - 0x0000000008006834 0x6c ./Drivers/lvgl/src/core/lv_obj.o - 0x0000000008006834 lv_obj_allocate_spec_attr + 0x00000000080067c8 0x6c ./Drivers/lvgl/src/core/lv_obj.o + 0x00000000080067c8 lv_obj_allocate_spec_attr .text.lv_obj_check_type - 0x00000000080068a0 0x2e ./Drivers/lvgl/src/core/lv_obj.o - 0x00000000080068a0 lv_obj_check_type + 0x0000000008006834 0x2e ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006834 lv_obj_check_type .text.lv_obj_constructor - 0x00000000080068ce 0x122 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006862 0x122 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_destructor - 0x00000000080069f0 0x9a ./Drivers/lvgl/src/core/lv_obj.o - *fill* 0x0000000008006a8a 0x2 + 0x0000000008006984 0x9a ./Drivers/lvgl/src/core/lv_obj.o + *fill* 0x0000000008006a1e 0x2 .text.lv_obj_draw - 0x0000000008006a8c 0x4cc ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006a20 0x4cc ./Drivers/lvgl/src/core/lv_obj.o .text.draw_scrollbar - 0x0000000008006f58 0x110 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006eec 0x110 ./Drivers/lvgl/src/core/lv_obj.o .text.scrollbar_init_draw_dsc - 0x0000000008007068 0x17e ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000008006ffc 0x17e ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_event - 0x00000000080071e6 0x594 ./Drivers/lvgl/src/core/lv_obj.o + 0x000000000800717a 0x594 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_set_state - 0x000000000800777a 0x2d8 ./Drivers/lvgl/src/core/lv_obj.o + 0x000000000800770e 0x2d8 ./Drivers/lvgl/src/core/lv_obj.o .text.lv_obj_class_create_obj - 0x0000000008007a52 0x164 ./Drivers/lvgl/src/core/lv_obj_class.o - 0x0000000008007a52 lv_obj_class_create_obj + 0x00000000080079e6 0x164 ./Drivers/lvgl/src/core/lv_obj_class.o + 0x00000000080079e6 lv_obj_class_create_obj .text.lv_obj_class_init_obj - 0x0000000008007bb6 0x8a ./Drivers/lvgl/src/core/lv_obj_class.o - 0x0000000008007bb6 lv_obj_class_init_obj + 0x0000000008007b4a 0x8a ./Drivers/lvgl/src/core/lv_obj_class.o + 0x0000000008007b4a lv_obj_class_init_obj .text._lv_obj_destruct - 0x0000000008007c40 0x44 ./Drivers/lvgl/src/core/lv_obj_class.o - 0x0000000008007c40 _lv_obj_destruct + 0x0000000008007bd4 0x44 ./Drivers/lvgl/src/core/lv_obj_class.o + 0x0000000008007bd4 _lv_obj_destruct .text.lv_obj_is_editable - 0x0000000008007c84 0x52 ./Drivers/lvgl/src/core/lv_obj_class.o - 0x0000000008007c84 lv_obj_is_editable + 0x0000000008007c18 0x52 ./Drivers/lvgl/src/core/lv_obj_class.o + 0x0000000008007c18 lv_obj_is_editable .text.lv_obj_is_group_def - 0x0000000008007cd6 0x52 ./Drivers/lvgl/src/core/lv_obj_class.o - 0x0000000008007cd6 lv_obj_is_group_def + 0x0000000008007c6a 0x52 ./Drivers/lvgl/src/core/lv_obj_class.o + 0x0000000008007c6a lv_obj_is_group_def .text.lv_obj_construct - 0x0000000008007d28 0x50 ./Drivers/lvgl/src/core/lv_obj_class.o + 0x0000000008007cbc 0x50 ./Drivers/lvgl/src/core/lv_obj_class.o .text.get_instance_size - 0x0000000008007d78 0x48 ./Drivers/lvgl/src/core/lv_obj_class.o + 0x0000000008007d0c 0x48 ./Drivers/lvgl/src/core/lv_obj_class.o .text.lv_area_get_width - 0x0000000008007dc0 0x2c ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007d54 0x2c ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_area_get_height - 0x0000000008007dec 0x2c ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007d80 0x2c ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_transform_width - 0x0000000008007e18 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007dac 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_transform_height - 0x0000000008007e3e 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007dd2 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_bg_color_filtered - 0x0000000008007e64 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007df8 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_bg_opa - 0x0000000008007e88 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007e1c 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_bg_grad_color_filtered - 0x0000000008007eac 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007e40 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_bg_grad_dir - 0x0000000008007ed0 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007e64 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_bg_main_stop - 0x0000000008007ef4 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007e88 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_bg_grad_stop - 0x0000000008007f18 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007eac 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_bg_grad - 0x0000000008007f3c 0x22 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007ed0 0x22 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_bg_dither_mode - 0x0000000008007f5e 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007ef2 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_bg_img_src - 0x0000000008007f82 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007f16 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_bg_img_opa - 0x0000000008007fa6 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007f3a 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_bg_img_recolor_filtered - 0x0000000008007fca 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007f5e 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_bg_img_recolor_opa - 0x0000000008007fee 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007f82 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_bg_img_tiled - 0x0000000008008012 0x2c ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007fa6 0x2c ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_border_color_filtered - 0x000000000800803e 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007fd2 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_border_opa - 0x0000000008008062 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008007ff6 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_border_width - 0x0000000008008086 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x000000000800801a 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_border_side - 0x00000000080080ac 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008040 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_outline_width - 0x00000000080080d0 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008064 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_outline_color_filtered - 0x00000000080080f6 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x000000000800808a 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_outline_opa - 0x000000000800811a 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x00000000080080ae 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_outline_pad - 0x0000000008008140 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x00000000080080d4 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_shadow_width - 0x0000000008008166 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x00000000080080fa 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_shadow_ofs_x - 0x000000000800818c 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008120 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_shadow_ofs_y - 0x00000000080081b2 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008146 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_shadow_spread - 0x00000000080081d8 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x000000000800816c 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_shadow_color_filtered - 0x00000000080081fe 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008192 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_shadow_opa - 0x0000000008008222 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x00000000080081b6 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_img_opa - 0x0000000008008248 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x00000000080081dc 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_img_recolor_filtered - 0x000000000800826c 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008200 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_img_recolor_opa - 0x0000000008008290 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008224 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_line_width - 0x00000000080082b4 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008248 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_line_dash_width - 0x00000000080082da 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x000000000800826e 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_line_dash_gap - 0x00000000080082fe 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008292 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_line_rounded - 0x0000000008008322 0x2c ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x00000000080082b6 0x2c ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_line_color_filtered - 0x000000000800834e 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x00000000080082e2 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_line_opa - 0x0000000008008372 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008306 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_arc_width - 0x0000000008008396 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x000000000800832a 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_arc_rounded - 0x00000000080083bc 0x2c ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008350 0x2c ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_arc_color_filtered - 0x00000000080083e8 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x000000000800837c 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_arc_opa - 0x000000000800840c 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x00000000080083a0 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_arc_img_src - 0x0000000008008430 0x22 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x00000000080083c4 0x22 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_text_color_filtered - 0x0000000008008452 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x00000000080083e6 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_text_opa - 0x0000000008008476 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x000000000800840a 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_text_font - 0x000000000800849c 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008430 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_text_letter_space - 0x00000000080084c0 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008454 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_text_line_space - 0x00000000080084e6 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x000000000800847a 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_text_decor - 0x000000000800850c 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x00000000080084a0 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_text_align - 0x0000000008008532 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x00000000080084c6 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_radius - 0x0000000008008558 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x00000000080084ec 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_opa - 0x000000000800857c 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008510 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_get_style_blend_mode - 0x00000000080085a2 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008536 0x24 ./Drivers/lvgl/src/core/lv_obj_draw.o .text.lv_obj_init_draw_rect_dsc - 0x00000000080085c6 0x3dc ./Drivers/lvgl/src/core/lv_obj_draw.o - 0x00000000080085c6 lv_obj_init_draw_rect_dsc + 0x000000000800855a 0x3dc ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x000000000800855a lv_obj_init_draw_rect_dsc .text.lv_obj_init_draw_label_dsc - 0x00000000080089a2 0xe4 ./Drivers/lvgl/src/core/lv_obj_draw.o - 0x00000000080089a2 lv_obj_init_draw_label_dsc + 0x0000000008008936 0xe4 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008936 lv_obj_init_draw_label_dsc .text.lv_obj_init_draw_img_dsc - 0x0000000008008a86 0xe2 ./Drivers/lvgl/src/core/lv_obj_draw.o - 0x0000000008008a86 lv_obj_init_draw_img_dsc + 0x0000000008008a1a 0xe2 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008a1a lv_obj_init_draw_img_dsc .text.lv_obj_init_draw_line_dsc - 0x0000000008008b68 0xfe ./Drivers/lvgl/src/core/lv_obj_draw.o - 0x0000000008008b68 lv_obj_init_draw_line_dsc + 0x0000000008008afc 0xfe ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008afc lv_obj_init_draw_line_dsc .text.lv_obj_init_draw_arc_dsc - 0x0000000008008c66 0xce ./Drivers/lvgl/src/core/lv_obj_draw.o - 0x0000000008008c66 lv_obj_init_draw_arc_dsc + 0x0000000008008bfa 0xce ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008bfa lv_obj_init_draw_arc_dsc .text.lv_obj_calculate_ext_draw_size - 0x0000000008008d34 0x13a ./Drivers/lvgl/src/core/lv_obj_draw.o - 0x0000000008008d34 lv_obj_calculate_ext_draw_size + 0x0000000008008cc8 0x13a ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008cc8 lv_obj_calculate_ext_draw_size .text.lv_obj_draw_dsc_init - 0x0000000008008e6e 0x20 ./Drivers/lvgl/src/core/lv_obj_draw.o - 0x0000000008008e6e lv_obj_draw_dsc_init + 0x0000000008008e02 0x20 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008e02 lv_obj_draw_dsc_init .text.lv_obj_refresh_ext_draw_size - 0x0000000008008e8e 0x7c ./Drivers/lvgl/src/core/lv_obj_draw.o - 0x0000000008008e8e lv_obj_refresh_ext_draw_size + 0x0000000008008e22 0x7c ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008e22 lv_obj_refresh_ext_draw_size .text._lv_obj_get_ext_draw_size - 0x0000000008008f0a 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o - 0x0000000008008f0a _lv_obj_get_ext_draw_size + 0x0000000008008e9e 0x26 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000008008e9e _lv_obj_get_ext_draw_size .text.lv_area_copy - 0x0000000008008f30 0x3c ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008008ec4 0x3c ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_area_get_width - 0x0000000008008f6c 0x2c ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008008f00 0x2c ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_area_get_height - 0x0000000008008f98 0x2c ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008008f2c 0x2c ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_width - 0x0000000008008fc4 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008008f58 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_min_width - 0x0000000008008fea 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008008f7e 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_max_width - 0x0000000008009010 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008008fa4 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_height - 0x0000000008009036 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008008fca 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_min_height - 0x000000000800905c 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008008ff0 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_max_height - 0x0000000008009082 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009016 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_x - 0x00000000080090a8 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800903c 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_y - 0x00000000080090ce 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009062 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_align - 0x00000000080090f4 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009088 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_translate_x - 0x000000000800911a 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x00000000080090ae 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_translate_y - 0x0000000008009140 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x00000000080090d4 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_pad_top - 0x0000000008009166 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x00000000080090fa 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_pad_bottom - 0x000000000800918c 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009120 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_pad_left - 0x00000000080091b2 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009146 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_pad_right - 0x00000000080091d8 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800916c 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_border_width - 0x00000000080091fe 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009192 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_layout - 0x0000000008009224 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x00000000080091b8 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_get_style_base_dir - 0x000000000800924a 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x00000000080091de 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_obj_set_pos - 0x0000000008009270 0x30 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x0000000008009270 lv_obj_set_pos + 0x0000000008009204 0x30 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009204 lv_obj_set_pos .text.lv_obj_set_x - 0x00000000080092a0 0x4c ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x00000000080092a0 lv_obj_set_x + 0x0000000008009234 0x4c ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009234 lv_obj_set_x .text.lv_obj_set_y - 0x00000000080092ec 0x4c ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x00000000080092ec lv_obj_set_y + 0x0000000008009280 0x4c ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009280 lv_obj_set_y .text.lv_obj_refr_size - 0x0000000008009338 0x474 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x0000000008009338 lv_obj_refr_size + 0x00000000080092cc 0x474 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x00000000080092cc lv_obj_refr_size .text.lv_obj_set_size - 0x00000000080097ac 0x30 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x00000000080097ac lv_obj_set_size + 0x0000000008009740 0x30 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009740 lv_obj_set_size .text.lv_obj_set_width - 0x00000000080097dc 0x4c ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x00000000080097dc lv_obj_set_width + 0x0000000008009770 0x4c ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009770 lv_obj_set_width .text.lv_obj_set_height - 0x0000000008009828 0x4c ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x0000000008009828 lv_obj_set_height + 0x00000000080097bc 0x4c ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x00000000080097bc lv_obj_set_height .text.lv_obj_set_layout - 0x0000000008009874 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x0000000008009874 lv_obj_set_layout - *fill* 0x000000000800989a 0x2 + 0x0000000008009808 0x26 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009808 lv_obj_set_layout + *fill* 0x000000000800982e 0x2 .text.lv_obj_is_layout_positioned - 0x000000000800989c 0x50 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800989c lv_obj_is_layout_positioned + 0x0000000008009830 0x50 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009830 lv_obj_is_layout_positioned .text.lv_obj_mark_layout_as_dirty - 0x00000000080098ec 0x4e ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x00000000080098ec lv_obj_mark_layout_as_dirty - *fill* 0x000000000800993a 0x2 + 0x0000000008009880 0x4e ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009880 lv_obj_mark_layout_as_dirty + *fill* 0x00000000080098ce 0x2 .text.lv_obj_update_layout - 0x000000000800993c 0x58 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800993c lv_obj_update_layout + 0x00000000080098d0 0x58 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x00000000080098d0 lv_obj_update_layout .text.lv_layout_register - 0x0000000008009994 0x78 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x0000000008009994 lv_layout_register + 0x0000000008009928 0x78 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009928 lv_layout_register .text.lv_obj_align - 0x0000000008009a0c 0x3e ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x0000000008009a0c lv_obj_align - *fill* 0x0000000008009a4a 0x2 + 0x00000000080099a0 0x3e ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x00000000080099a0 lv_obj_align + *fill* 0x00000000080099de 0x2 .text.lv_obj_align_to - 0x0000000008009a4c 0x5c0 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x0000000008009a4c lv_obj_align_to + 0x00000000080099e0 0x5c0 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x00000000080099e0 lv_obj_align_to .text.lv_obj_get_coords - 0x000000000800a00c 0x1e ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800a00c lv_obj_get_coords + 0x0000000008009fa0 0x1e ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009fa0 lv_obj_get_coords .text.lv_obj_get_x - 0x000000000800a02a 0x7a ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800a02a lv_obj_get_x + 0x0000000008009fbe 0x7a ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000008009fbe lv_obj_get_x .text.lv_obj_get_y - 0x000000000800a0a4 0x7a ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800a0a4 lv_obj_get_y + 0x000000000800a038 0x7a ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800a038 lv_obj_get_y .text.lv_obj_get_y2 - 0x000000000800a11e 0x2a ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800a11e lv_obj_get_y2 + 0x000000000800a0b2 0x2a ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800a0b2 lv_obj_get_y2 .text.lv_obj_get_width - 0x000000000800a148 0x1c ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800a148 lv_obj_get_width + 0x000000000800a0dc 0x1c ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800a0dc lv_obj_get_width .text.lv_obj_get_height - 0x000000000800a164 0x1c ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800a164 lv_obj_get_height + 0x000000000800a0f8 0x1c ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800a0f8 lv_obj_get_height .text.lv_obj_get_content_width - 0x000000000800a180 0x56 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800a180 lv_obj_get_content_width + 0x000000000800a114 0x56 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800a114 lv_obj_get_content_width .text.lv_obj_get_content_height - 0x000000000800a1d6 0x56 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800a1d6 lv_obj_get_content_height + 0x000000000800a16a 0x56 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800a16a lv_obj_get_content_height .text.lv_obj_get_content_coords - 0x000000000800a22c 0xbe ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800a22c lv_obj_get_content_coords + 0x000000000800a1c0 0xbe ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800a1c0 lv_obj_get_content_coords .text.lv_obj_get_self_width - 0x000000000800a2ea 0x2c ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800a2ea lv_obj_get_self_width + 0x000000000800a27e 0x2c ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800a27e lv_obj_get_self_width .text.lv_obj_get_self_height - 0x000000000800a316 0x2c ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800a316 lv_obj_get_self_height + 0x000000000800a2aa 0x2c ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800a2aa lv_obj_get_self_height .text.lv_obj_refresh_self_size - 0x000000000800a342 0x4c ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800a342 lv_obj_refresh_self_size - *fill* 0x000000000800a38e 0x2 + 0x000000000800a2d6 0x4c ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800a2d6 lv_obj_refresh_self_size + *fill* 0x000000000800a322 0x2 .text.lv_obj_refr_pos - 0x000000000800a390 0x3e4 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800a390 lv_obj_refr_pos + 0x000000000800a324 0x3e4 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800a324 lv_obj_refr_pos .text.lv_obj_move_to - 0x000000000800a774 0x22c ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800a774 lv_obj_move_to + 0x000000000800a708 0x22c ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800a708 lv_obj_move_to .text.lv_obj_move_children_by - 0x000000000800a9a0 0xca ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800a9a0 lv_obj_move_children_by + 0x000000000800a934 0xca ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800a934 lv_obj_move_children_by .text.lv_obj_invalidate_area - 0x000000000800aa6a 0x48 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800aa6a lv_obj_invalidate_area + 0x000000000800a9fe 0x48 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800a9fe lv_obj_invalidate_area .text.lv_obj_invalidate - 0x000000000800aab2 0x9e ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800aab2 lv_obj_invalidate + 0x000000000800aa46 0x9e ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800aa46 lv_obj_invalidate .text.lv_obj_area_is_visible - 0x000000000800ab50 0x160 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800ab50 lv_obj_area_is_visible + 0x000000000800aae4 0x160 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800aae4 lv_obj_area_is_visible .text.lv_obj_is_visible - 0x000000000800acb0 0x7a ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800acb0 lv_obj_is_visible + 0x000000000800ac44 0x7a ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800ac44 lv_obj_is_visible .text.lv_obj_set_ext_click_area - 0x000000000800ad2a 0x22 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800ad2a lv_obj_set_ext_click_area + 0x000000000800acbe 0x22 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800acbe lv_obj_set_ext_click_area .text.lv_obj_get_click_area - 0x000000000800ad4c 0x96 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800ad4c lv_obj_get_click_area + 0x000000000800ace0 0x96 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800ace0 lv_obj_get_click_area .text.lv_obj_hit_test - 0x000000000800ade2 0x96 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800ade2 lv_obj_hit_test + 0x000000000800ad76 0x96 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800ad76 lv_obj_hit_test .text.lv_clamp_width - 0x000000000800ae78 0xf0 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800ae78 lv_clamp_width + 0x000000000800ae0c 0xf0 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800ae0c lv_clamp_width .text.lv_clamp_height - 0x000000000800af68 0xf0 ./Drivers/lvgl/src/core/lv_obj_pos.o - 0x000000000800af68 lv_clamp_height + 0x000000000800aefc 0xf0 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800aefc lv_clamp_height .text.calc_content_width - 0x000000000800b058 0x2e4 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800afec 0x2e4 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.calc_content_height - 0x000000000800b33c 0x18c ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800b2d0 0x18c ./Drivers/lvgl/src/core/lv_obj_pos.o .text.layout_update_core - 0x000000000800b4c8 0xc4 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x000000000800b45c 0xc4 ./Drivers/lvgl/src/core/lv_obj_pos.o .text.lv_area_get_width - 0x000000000800b58c 0x2c ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b520 0x2c ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_area_get_height - 0x000000000800b5b8 0x2c ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b54c 0x2c ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_anim_set_var - 0x000000000800b5e4 0x1a ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b578 0x1a ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_anim_set_exec_cb - 0x000000000800b5fe 0x1a ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b592 0x1a ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_anim_set_time - 0x000000000800b618 0x1a ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b5ac 0x1a ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_anim_set_values - 0x000000000800b632 0x28 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b5c6 0x28 ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_anim_set_path_cb - 0x000000000800b65a 0x1a ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b5ee 0x1a ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_anim_set_ready_cb - 0x000000000800b674 0x1a ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b608 0x1a ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_obj_get_style_width - 0x000000000800b68e 0x26 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b622 0x26 ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_obj_get_style_pad_top - 0x000000000800b6b4 0x26 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b648 0x26 ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_obj_get_style_pad_bottom - 0x000000000800b6da 0x26 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b66e 0x26 ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_obj_get_style_pad_left - 0x000000000800b700 0x26 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b694 0x26 ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_obj_get_style_pad_right - 0x000000000800b726 0x26 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b6ba 0x26 ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_obj_get_style_bg_opa - 0x000000000800b74c 0x24 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b6e0 0x24 ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_obj_get_style_border_opa - 0x000000000800b770 0x24 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b704 0x24 ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_obj_get_style_border_width - 0x000000000800b794 0x26 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b728 0x26 ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_obj_get_style_base_dir - 0x000000000800b7ba 0x26 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b74e 0x26 ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_obj_set_scrollbar_mode - 0x000000000800b7e0 0x4a ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800b7e0 lv_obj_set_scrollbar_mode + 0x000000000800b774 0x4a ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b774 lv_obj_set_scrollbar_mode .text.lv_obj_set_scroll_dir - 0x000000000800b82a 0x42 ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800b82a lv_obj_set_scroll_dir + 0x000000000800b7be 0x42 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b7be lv_obj_set_scroll_dir .text.lv_obj_set_scroll_snap_x - 0x000000000800b86c 0x2e ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800b86c lv_obj_set_scroll_snap_x + 0x000000000800b800 0x2e ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b800 lv_obj_set_scroll_snap_x .text.lv_obj_set_scroll_snap_y - 0x000000000800b89a 0x2e ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800b89a lv_obj_set_scroll_snap_y + 0x000000000800b82e 0x2e ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b82e lv_obj_set_scroll_snap_y .text.lv_obj_get_scrollbar_mode - 0x000000000800b8c8 0x2a ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800b8c8 lv_obj_get_scrollbar_mode + 0x000000000800b85c 0x2a ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b85c lv_obj_get_scrollbar_mode .text.lv_obj_get_scroll_dir - 0x000000000800b8f2 0x2a ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800b8f2 lv_obj_get_scroll_dir + 0x000000000800b886 0x2a ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b886 lv_obj_get_scroll_dir .text.lv_obj_get_scroll_snap_x - 0x000000000800b91c 0x2a ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800b91c lv_obj_get_scroll_snap_x + 0x000000000800b8b0 0x2a ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b8b0 lv_obj_get_scroll_snap_x .text.lv_obj_get_scroll_snap_y - 0x000000000800b946 0x2a ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800b946 lv_obj_get_scroll_snap_y + 0x000000000800b8da 0x2a ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b8da lv_obj_get_scroll_snap_y .text.lv_obj_get_scroll_x - 0x000000000800b970 0x2e ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800b970 lv_obj_get_scroll_x + 0x000000000800b904 0x2e ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b904 lv_obj_get_scroll_x .text.lv_obj_get_scroll_y - 0x000000000800b99e 0x2e ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800b99e lv_obj_get_scroll_y + 0x000000000800b932 0x2e ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b932 lv_obj_get_scroll_y .text.lv_obj_get_scroll_top - 0x000000000800b9cc 0x2e ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800b9cc lv_obj_get_scroll_top - *fill* 0x000000000800b9fa 0x2 + 0x000000000800b960 0x2e ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b960 lv_obj_get_scroll_top + *fill* 0x000000000800b98e 0x2 .text.lv_obj_get_scroll_bottom - 0x000000000800b9fc 0x10c ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800b9fc lv_obj_get_scroll_bottom + 0x000000000800b990 0x10c ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800b990 lv_obj_get_scroll_bottom .text.lv_obj_get_scroll_left - 0x000000000800bb08 0x148 ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800bb08 lv_obj_get_scroll_left + 0x000000000800ba9c 0x148 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800ba9c lv_obj_get_scroll_left .text.lv_obj_get_scroll_right - 0x000000000800bc50 0x130 ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800bc50 lv_obj_get_scroll_right + 0x000000000800bbe4 0x130 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800bbe4 lv_obj_get_scroll_right .text.lv_obj_get_scroll_end - 0x000000000800bd80 0x74 ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800bd80 lv_obj_get_scroll_end + 0x000000000800bd14 0x74 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800bd14 lv_obj_get_scroll_end .text.lv_obj_scroll_by_bounded - 0x000000000800bdf4 0x19e ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800bdf4 lv_obj_scroll_by_bounded - *fill* 0x000000000800bf92 0x2 + 0x000000000800bd88 0x19e ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800bd88 lv_obj_scroll_by_bounded + *fill* 0x000000000800bf26 0x2 .text.lv_obj_scroll_by - 0x000000000800bf94 0x230 ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800bf94 lv_obj_scroll_by + 0x000000000800bf28 0x230 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800bf28 lv_obj_scroll_by .text.lv_obj_scroll_to - 0x000000000800c1c4 0x3e ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800c1c4 lv_obj_scroll_to - *fill* 0x000000000800c202 0x2 + 0x000000000800c158 0x3e ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800c158 lv_obj_scroll_to + *fill* 0x000000000800c196 0x2 .text.lv_obj_scroll_to_x - 0x000000000800c204 0x48 ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800c204 lv_obj_scroll_to_x + 0x000000000800c198 0x48 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800c198 lv_obj_scroll_to_x .text.lv_obj_scroll_to_y - 0x000000000800c24c 0x48 ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800c24c lv_obj_scroll_to_y + 0x000000000800c1e0 0x48 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800c1e0 lv_obj_scroll_to_y .text.lv_obj_scroll_to_view_recursive - 0x000000000800c294 0x56 ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800c294 lv_obj_scroll_to_view_recursive - *fill* 0x000000000800c2ea 0x2 + 0x000000000800c228 0x56 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800c228 lv_obj_scroll_to_view_recursive + *fill* 0x000000000800c27e 0x2 .text.lv_obj_get_scrollbar_area - 0x000000000800c2ec 0xb88 ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800c2ec lv_obj_get_scrollbar_area + 0x000000000800c280 0xb88 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800c280 lv_obj_get_scrollbar_area .text.lv_obj_scrollbar_invalidate - 0x000000000800ce74 0x7a ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800ce74 lv_obj_scrollbar_invalidate + 0x000000000800ce08 0x7a ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800ce08 lv_obj_scrollbar_invalidate .text.lv_obj_readjust_scroll - 0x000000000800ceee 0xf4 ./Drivers/lvgl/src/core/lv_obj_scroll.o - 0x000000000800ceee lv_obj_readjust_scroll + 0x000000000800ce82 0xf4 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800ce82 lv_obj_readjust_scroll .text.scroll_by_raw - 0x000000000800cfe2 0x8e ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800cf76 0x8e ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.scroll_x_anim - 0x000000000800d070 0x30 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800d004 0x30 ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.scroll_y_anim - 0x000000000800d0a0 0x30 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800d034 0x30 ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.scroll_anim_ready_cb - 0x000000000800d0d0 0x1e ./Drivers/lvgl/src/core/lv_obj_scroll.o - *fill* 0x000000000800d0ee 0x2 + 0x000000000800d064 0x1e ./Drivers/lvgl/src/core/lv_obj_scroll.o + *fill* 0x000000000800d082 0x2 .text.scroll_area_into_view - 0x000000000800d0f0 0x578 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x000000000800d084 0x578 ./Drivers/lvgl/src/core/lv_obj_scroll.o .text.lv_color_mix - 0x000000000800d668 0x70 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d5fc 0x70 ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_anim_set_var - 0x000000000800d6d8 0x1a ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d66c 0x1a ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_anim_set_exec_cb - 0x000000000800d6f2 0x1a ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d686 0x1a ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_anim_set_time - 0x000000000800d70c 0x1a ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d6a0 0x1a ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_anim_set_delay - 0x000000000800d726 0x1c ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d6ba 0x1c ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_anim_set_values - 0x000000000800d742 0x28 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d6d6 0x28 ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_anim_set_path_cb - 0x000000000800d76a 0x1a ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d6fe 0x1a ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_anim_set_start_cb - 0x000000000800d784 0x1a ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d718 0x1a ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_anim_set_ready_cb - 0x000000000800d79e 0x1a ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d732 0x1a ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_anim_set_early_apply - 0x000000000800d7b8 0x26 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d74c 0x26 ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_bidi_calculate_align - 0x000000000800d7de 0x24 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d772 0x24 ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_obj_get_style_width - 0x000000000800d802 0x26 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d796 0x26 ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_obj_get_style_height - 0x000000000800d828 0x26 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d7bc 0x26 ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_obj_get_style_text_align - 0x000000000800d84e 0x26 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d7e2 0x26 ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_obj_get_style_color_filter_dsc - 0x000000000800d874 0x22 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d808 0x22 ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_obj_get_style_color_filter_opa - 0x000000000800d896 0x24 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d82a 0x24 ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_obj_get_style_base_dir - 0x000000000800d8ba 0x26 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d84e 0x26 ./Drivers/lvgl/src/core/lv_obj_style.o .text._lv_obj_style_init - 0x000000000800d8e0 0x14 ./Drivers/lvgl/src/core/lv_obj_style.o - 0x000000000800d8e0 _lv_obj_style_init + 0x000000000800d874 0x14 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d874 _lv_obj_style_init .text.lv_obj_add_style - 0x000000000800d8f4 0x134 ./Drivers/lvgl/src/core/lv_obj_style.o - 0x000000000800d8f4 lv_obj_add_style + 0x000000000800d888 0x134 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d888 lv_obj_add_style .text.lv_obj_remove_style - 0x000000000800da28 0x1ec ./Drivers/lvgl/src/core/lv_obj_style.o - 0x000000000800da28 lv_obj_remove_style + 0x000000000800d9bc 0x1ec ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800d9bc lv_obj_remove_style .text.lv_obj_report_style_change - 0x000000000800dc14 0x68 ./Drivers/lvgl/src/core/lv_obj_style.o - 0x000000000800dc14 lv_obj_report_style_change + 0x000000000800dba8 0x68 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800dba8 lv_obj_report_style_change .text.lv_obj_refresh_style - 0x000000000800dc7c 0x114 ./Drivers/lvgl/src/core/lv_obj_style.o - 0x000000000800dc7c lv_obj_refresh_style + 0x000000000800dc10 0x114 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800dc10 lv_obj_refresh_style .text.lv_obj_enable_style_refresh - 0x000000000800dd90 0x20 ./Drivers/lvgl/src/core/lv_obj_style.o - 0x000000000800dd90 lv_obj_enable_style_refresh + 0x000000000800dd24 0x20 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800dd24 lv_obj_enable_style_refresh .text.lv_obj_get_style_prop - 0x000000000800ddb0 0x130 ./Drivers/lvgl/src/core/lv_obj_style.o - 0x000000000800ddb0 lv_obj_get_style_prop + 0x000000000800dd44 0x130 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800dd44 lv_obj_get_style_prop .text.lv_obj_set_local_style_prop - 0x000000000800dee0 0x3a ./Drivers/lvgl/src/core/lv_obj_style.o - 0x000000000800dee0 lv_obj_set_local_style_prop + 0x000000000800de74 0x3a ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800de74 lv_obj_set_local_style_prop .text.lv_obj_get_local_style_prop - 0x000000000800df1a 0x80 ./Drivers/lvgl/src/core/lv_obj_style.o - 0x000000000800df1a lv_obj_get_local_style_prop + 0x000000000800deae 0x80 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800deae lv_obj_get_local_style_prop .text.lv_obj_remove_local_style_prop - 0x000000000800df9a 0x94 ./Drivers/lvgl/src/core/lv_obj_style.o - 0x000000000800df9a lv_obj_remove_local_style_prop - *fill* 0x000000000800e02e 0x2 + 0x000000000800df2e 0x94 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800df2e lv_obj_remove_local_style_prop + *fill* 0x000000000800dfc2 0x2 .text._lv_obj_style_create_transition - 0x000000000800e030 0x238 ./Drivers/lvgl/src/core/lv_obj_style.o - 0x000000000800e030 _lv_obj_style_create_transition + 0x000000000800dfc4 0x238 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800dfc4 _lv_obj_style_create_transition .text._lv_obj_style_state_compare - 0x000000000800e268 0x42a ./Drivers/lvgl/src/core/lv_obj_style.o - 0x000000000800e268 _lv_obj_style_state_compare + 0x000000000800e1fc 0x42a ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800e1fc _lv_obj_style_state_compare .text.lv_obj_style_get_selector_state - 0x000000000800e692 0x16 ./Drivers/lvgl/src/core/lv_obj_style.o - 0x000000000800e692 lv_obj_style_get_selector_state + 0x000000000800e626 0x16 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800e626 lv_obj_style_get_selector_state .text.lv_obj_style_get_selector_part - 0x000000000800e6a8 0x18 ./Drivers/lvgl/src/core/lv_obj_style.o - 0x000000000800e6a8 lv_obj_style_get_selector_part + 0x000000000800e63c 0x18 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800e63c lv_obj_style_get_selector_part .text.lv_obj_calculate_style_text_align - 0x000000000800e6c0 0x3e ./Drivers/lvgl/src/core/lv_obj_style.o - 0x000000000800e6c0 lv_obj_calculate_style_text_align + 0x000000000800e654 0x3e ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800e654 lv_obj_calculate_style_text_align .text.get_local_style - 0x000000000800e6fe 0x196 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800e692 0x196 ./Drivers/lvgl/src/core/lv_obj_style.o .text.get_trans_style - 0x000000000800e894 0x142 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800e828 0x142 ./Drivers/lvgl/src/core/lv_obj_style.o .text.get_prop_core - 0x000000000800e9d6 0x1f8 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800e96a 0x1f8 ./Drivers/lvgl/src/core/lv_obj_style.o .text.apply_color_filter - 0x000000000800ebce 0x58 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800eb62 0x58 ./Drivers/lvgl/src/core/lv_obj_style.o .text.report_style_change_core - 0x000000000800ec26 0x8c ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800ebba 0x8c ./Drivers/lvgl/src/core/lv_obj_style.o .text.refresh_children_style - 0x000000000800ecb2 0x5a ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800ec46 0x5a ./Drivers/lvgl/src/core/lv_obj_style.o .text.trans_del - 0x000000000800ed0c 0x104 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800eca0 0x104 ./Drivers/lvgl/src/core/lv_obj_style.o .text.trans_anim_cb - 0x000000000800ee10 0x228 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800eda4 0x228 ./Drivers/lvgl/src/core/lv_obj_style.o .text.trans_anim_start_cb - 0x000000000800f038 0x78 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800efcc 0x78 ./Drivers/lvgl/src/core/lv_obj_style.o .text.trans_anim_ready_cb - 0x000000000800f0b0 0x130 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x000000000800f044 0x130 ./Drivers/lvgl/src/core/lv_obj_style.o .text.lv_obj_set_style_width - 0x000000000800f1e0 0x2a ./Drivers/lvgl/src/core/lv_obj_style_gen.o - 0x000000000800f1e0 lv_obj_set_style_width + 0x000000000800f174 0x2a ./Drivers/lvgl/src/core/lv_obj_style_gen.o + 0x000000000800f174 lv_obj_set_style_width .text.lv_obj_set_style_min_width - 0x000000000800f20a 0x2a ./Drivers/lvgl/src/core/lv_obj_style_gen.o - 0x000000000800f20a lv_obj_set_style_min_width + 0x000000000800f19e 0x2a ./Drivers/lvgl/src/core/lv_obj_style_gen.o + 0x000000000800f19e lv_obj_set_style_min_width .text.lv_obj_set_style_height - 0x000000000800f234 0x2a ./Drivers/lvgl/src/core/lv_obj_style_gen.o - 0x000000000800f234 lv_obj_set_style_height + 0x000000000800f1c8 0x2a ./Drivers/lvgl/src/core/lv_obj_style_gen.o + 0x000000000800f1c8 lv_obj_set_style_height .text.lv_obj_set_style_x - 0x000000000800f25e 0x2a ./Drivers/lvgl/src/core/lv_obj_style_gen.o - 0x000000000800f25e lv_obj_set_style_x + 0x000000000800f1f2 0x2a ./Drivers/lvgl/src/core/lv_obj_style_gen.o + 0x000000000800f1f2 lv_obj_set_style_x .text.lv_obj_set_style_y - 0x000000000800f288 0x2a ./Drivers/lvgl/src/core/lv_obj_style_gen.o - 0x000000000800f288 lv_obj_set_style_y + 0x000000000800f21c 0x2a ./Drivers/lvgl/src/core/lv_obj_style_gen.o + 0x000000000800f21c lv_obj_set_style_y .text.lv_obj_set_style_align - 0x000000000800f2b2 0x28 ./Drivers/lvgl/src/core/lv_obj_style_gen.o - 0x000000000800f2b2 lv_obj_set_style_align - .text.lv_obj_set_style_bg_color - 0x000000000800f2da 0x28 ./Drivers/lvgl/src/core/lv_obj_style_gen.o - 0x000000000800f2da lv_obj_set_style_bg_color + 0x000000000800f246 0x28 ./Drivers/lvgl/src/core/lv_obj_style_gen.o + 0x000000000800f246 lv_obj_set_style_align .text.lv_obj_set_style_bg_img_src - 0x000000000800f302 0x26 ./Drivers/lvgl/src/core/lv_obj_style_gen.o - 0x000000000800f302 lv_obj_set_style_bg_img_src + 0x000000000800f26e 0x26 ./Drivers/lvgl/src/core/lv_obj_style_gen.o + 0x000000000800f26e lv_obj_set_style_bg_img_src .text.lv_obj_set_style_text_align - 0x000000000800f328 0x28 ./Drivers/lvgl/src/core/lv_obj_style_gen.o - 0x000000000800f328 lv_obj_set_style_text_align + 0x000000000800f294 0x28 ./Drivers/lvgl/src/core/lv_obj_style_gen.o + 0x000000000800f294 lv_obj_set_style_text_align .text.lv_obj_set_style_layout - 0x000000000800f350 0x28 ./Drivers/lvgl/src/core/lv_obj_style_gen.o - 0x000000000800f350 lv_obj_set_style_layout + 0x000000000800f2bc 0x28 ./Drivers/lvgl/src/core/lv_obj_style_gen.o + 0x000000000800f2bc lv_obj_set_style_layout .text.lv_obj_set_style_base_dir - 0x000000000800f378 0x28 ./Drivers/lvgl/src/core/lv_obj_style_gen.o - 0x000000000800f378 lv_obj_set_style_base_dir + 0x000000000800f2e4 0x28 ./Drivers/lvgl/src/core/lv_obj_style_gen.o + 0x000000000800f2e4 lv_obj_set_style_base_dir .text.lv_obj_del - 0x000000000800f3a0 0x90 ./Drivers/lvgl/src/core/lv_obj_tree.o - 0x000000000800f3a0 lv_obj_del + 0x000000000800f30c 0x90 ./Drivers/lvgl/src/core/lv_obj_tree.o + 0x000000000800f30c lv_obj_del .text.lv_obj_set_parent - 0x000000000800f430 0x14c ./Drivers/lvgl/src/core/lv_obj_tree.o - 0x000000000800f430 lv_obj_set_parent + 0x000000000800f39c 0x14c ./Drivers/lvgl/src/core/lv_obj_tree.o + 0x000000000800f39c lv_obj_set_parent .text.lv_obj_move_to_index - 0x000000000800f57c 0xf4 ./Drivers/lvgl/src/core/lv_obj_tree.o - 0x000000000800f57c lv_obj_move_to_index + 0x000000000800f4e8 0xf4 ./Drivers/lvgl/src/core/lv_obj_tree.o + 0x000000000800f4e8 lv_obj_move_to_index .text.lv_obj_get_screen - 0x000000000800f670 0x28 ./Drivers/lvgl/src/core/lv_obj_tree.o - 0x000000000800f670 lv_obj_get_screen + 0x000000000800f5dc 0x28 ./Drivers/lvgl/src/core/lv_obj_tree.o + 0x000000000800f5dc lv_obj_get_screen .text.lv_obj_get_disp - 0x000000000800f698 0x74 ./Drivers/lvgl/src/core/lv_obj_tree.o - 0x000000000800f698 lv_obj_get_disp + 0x000000000800f604 0x74 ./Drivers/lvgl/src/core/lv_obj_tree.o + 0x000000000800f604 lv_obj_get_disp .text.lv_obj_get_parent - 0x000000000800f70c 0x20 ./Drivers/lvgl/src/core/lv_obj_tree.o - 0x000000000800f70c lv_obj_get_parent + 0x000000000800f678 0x20 ./Drivers/lvgl/src/core/lv_obj_tree.o + 0x000000000800f678 lv_obj_get_parent .text.lv_obj_get_child - 0x000000000800f72c 0x64 ./Drivers/lvgl/src/core/lv_obj_tree.o - 0x000000000800f72c lv_obj_get_child + 0x000000000800f698 0x64 ./Drivers/lvgl/src/core/lv_obj_tree.o + 0x000000000800f698 lv_obj_get_child .text.lv_obj_get_child_cnt - 0x000000000800f790 0x24 ./Drivers/lvgl/src/core/lv_obj_tree.o - 0x000000000800f790 lv_obj_get_child_cnt + 0x000000000800f6fc 0x24 ./Drivers/lvgl/src/core/lv_obj_tree.o + 0x000000000800f6fc lv_obj_get_child_cnt .text.lv_obj_get_index - 0x000000000800f7b4 0x5a ./Drivers/lvgl/src/core/lv_obj_tree.o - 0x000000000800f7b4 lv_obj_get_index + 0x000000000800f720 0x5a ./Drivers/lvgl/src/core/lv_obj_tree.o + 0x000000000800f720 lv_obj_get_index .text.obj_del_core - 0x000000000800f80e 0x1ca ./Drivers/lvgl/src/core/lv_obj_tree.o + 0x000000000800f77a 0x1ca ./Drivers/lvgl/src/core/lv_obj_tree.o .text.lv_area_copy - 0x000000000800f9d8 0x3c ./Drivers/lvgl/src/core/lv_refr.o + 0x000000000800f944 0x3c ./Drivers/lvgl/src/core/lv_refr.o .text.lv_area_get_width - 0x000000000800fa14 0x2c ./Drivers/lvgl/src/core/lv_refr.o + 0x000000000800f980 0x2c ./Drivers/lvgl/src/core/lv_refr.o .text.lv_area_get_height - 0x000000000800fa40 0x2c ./Drivers/lvgl/src/core/lv_refr.o + 0x000000000800f9ac 0x2c ./Drivers/lvgl/src/core/lv_refr.o .text._lv_refr_init - 0x000000000800fa6c 0xc ./Drivers/lvgl/src/core/lv_refr.o - 0x000000000800fa6c _lv_refr_init + 0x000000000800f9d8 0xc ./Drivers/lvgl/src/core/lv_refr.o + 0x000000000800f9d8 _lv_refr_init .text.lv_refr_obj - 0x000000000800fa78 0x150 ./Drivers/lvgl/src/core/lv_refr.o - 0x000000000800fa78 lv_refr_obj + 0x000000000800f9e4 0x150 ./Drivers/lvgl/src/core/lv_refr.o + 0x000000000800f9e4 lv_refr_obj .text._lv_inv_area - 0x000000000800fbc8 0x186 ./Drivers/lvgl/src/core/lv_refr.o - 0x000000000800fbc8 _lv_inv_area - *fill* 0x000000000800fd4e 0x2 + 0x000000000800fb34 0x186 ./Drivers/lvgl/src/core/lv_refr.o + 0x000000000800fb34 _lv_inv_area + *fill* 0x000000000800fcba 0x2 .text._lv_refr_get_disp_refreshing - 0x000000000800fd50 0x14 ./Drivers/lvgl/src/core/lv_refr.o - 0x000000000800fd50 _lv_refr_get_disp_refreshing + 0x000000000800fcbc 0x14 ./Drivers/lvgl/src/core/lv_refr.o + 0x000000000800fcbc _lv_refr_get_disp_refreshing .text._lv_disp_refr_timer - 0x000000000800fd64 0x168 ./Drivers/lvgl/src/core/lv_refr.o - 0x000000000800fd64 _lv_disp_refr_timer + 0x000000000800fcd0 0x168 ./Drivers/lvgl/src/core/lv_refr.o + 0x000000000800fcd0 _lv_disp_refr_timer .text.lv_refr_join_area - 0x000000000800fecc 0x130 ./Drivers/lvgl/src/core/lv_refr.o + 0x000000000800fe38 0x130 ./Drivers/lvgl/src/core/lv_refr.o .text.lv_refr_areas - 0x000000000800fffc 0x108 ./Drivers/lvgl/src/core/lv_refr.o + 0x000000000800ff68 0x108 ./Drivers/lvgl/src/core/lv_refr.o .text.lv_refr_area - 0x0000000008010104 0x248 ./Drivers/lvgl/src/core/lv_refr.o + 0x0000000008010070 0x248 ./Drivers/lvgl/src/core/lv_refr.o .text.lv_refr_area_part - 0x000000000801034c 0x218 ./Drivers/lvgl/src/core/lv_refr.o + 0x00000000080102b8 0x218 ./Drivers/lvgl/src/core/lv_refr.o .text.lv_refr_get_top_obj - 0x0000000008010564 0xb0 ./Drivers/lvgl/src/core/lv_refr.o + 0x00000000080104d0 0xb0 ./Drivers/lvgl/src/core/lv_refr.o .text.lv_refr_obj_and_children - 0x0000000008010614 0xc8 ./Drivers/lvgl/src/core/lv_refr.o + 0x0000000008010580 0xc8 ./Drivers/lvgl/src/core/lv_refr.o .text.get_max_row - 0x00000000080106dc 0xbc ./Drivers/lvgl/src/core/lv_refr.o + 0x0000000008010648 0xbc ./Drivers/lvgl/src/core/lv_refr.o .text.draw_buf_rotate_180 - 0x0000000008010798 0xfa ./Drivers/lvgl/src/core/lv_refr.o + 0x0000000008010704 0xfa ./Drivers/lvgl/src/core/lv_refr.o .text.draw_buf_rotate_90 - 0x0000000008010892 0xc2 ./Drivers/lvgl/src/core/lv_refr.o + 0x00000000080107fe 0xc2 ./Drivers/lvgl/src/core/lv_refr.o .text.draw_buf_rotate4 - 0x0000000008010954 0x3c ./Drivers/lvgl/src/core/lv_refr.o + 0x00000000080108c0 0x3c ./Drivers/lvgl/src/core/lv_refr.o .text.draw_buf_rotate_90_sqr - 0x0000000008010990 0x15a ./Drivers/lvgl/src/core/lv_refr.o - *fill* 0x0000000008010aea 0x2 + 0x00000000080108fc 0x15a ./Drivers/lvgl/src/core/lv_refr.o + *fill* 0x0000000008010a56 0x2 .text.draw_buf_rotate - 0x0000000008010aec 0x32c ./Drivers/lvgl/src/core/lv_refr.o + 0x0000000008010a58 0x32c ./Drivers/lvgl/src/core/lv_refr.o .text.draw_buf_flush - 0x0000000008010e18 0x14c ./Drivers/lvgl/src/core/lv_refr.o + 0x0000000008010d84 0x14c ./Drivers/lvgl/src/core/lv_refr.o .text.call_flush_cb - 0x0000000008010f64 0x82 ./Drivers/lvgl/src/core/lv_refr.o - *fill* 0x0000000008010fe6 0x2 + 0x0000000008010ed0 0x82 ./Drivers/lvgl/src/core/lv_refr.o + *fill* 0x0000000008010f52 0x2 .text.lv_obj_remove_style_all - 0x0000000008010fe8 0x20 ./Drivers/lvgl/src/core/lv_theme.o + 0x0000000008010f54 0x20 ./Drivers/lvgl/src/core/lv_theme.o .text.lv_theme_get_from_obj - 0x0000000008011008 0x30 ./Drivers/lvgl/src/core/lv_theme.o - 0x0000000008011008 lv_theme_get_from_obj + 0x0000000008010f74 0x30 ./Drivers/lvgl/src/core/lv_theme.o + 0x0000000008010f74 lv_theme_get_from_obj .text.lv_theme_apply - 0x0000000008011038 0x2e ./Drivers/lvgl/src/core/lv_theme.o - 0x0000000008011038 lv_theme_apply + 0x0000000008010fa4 0x2e ./Drivers/lvgl/src/core/lv_theme.o + 0x0000000008010fa4 lv_theme_apply .text.lv_theme_get_color_primary - 0x0000000008011066 0x2c ./Drivers/lvgl/src/core/lv_theme.o - 0x0000000008011066 lv_theme_get_color_primary + 0x0000000008010fd2 0x2c ./Drivers/lvgl/src/core/lv_theme.o + 0x0000000008010fd2 lv_theme_get_color_primary .text.apply_theme - 0x0000000008011092 0x38 ./Drivers/lvgl/src/core/lv_theme.o + 0x0000000008010ffe 0x38 ./Drivers/lvgl/src/core/lv_theme.o .text.lv_draw_init - 0x00000000080110ca 0xc ./Drivers/lvgl/src/draw/lv_draw.o - 0x00000000080110ca lv_draw_init + 0x0000000008011036 0xc ./Drivers/lvgl/src/draw/lv_draw.o + 0x0000000008011036 lv_draw_init .text.lv_color_make - 0x00000000080110d6 0x52 ./Drivers/lvgl/src/draw/lv_draw_arc.o + 0x0000000008011042 0x52 ./Drivers/lvgl/src/draw/lv_draw_arc.o .text.lv_color_black - 0x0000000008011128 0x14 ./Drivers/lvgl/src/draw/lv_draw_arc.o + 0x0000000008011094 0x14 ./Drivers/lvgl/src/draw/lv_draw_arc.o .text.lv_draw_arc_dsc_init - 0x000000000801113c 0x2c ./Drivers/lvgl/src/draw/lv_draw_arc.o - 0x000000000801113c lv_draw_arc_dsc_init + 0x00000000080110a8 0x2c ./Drivers/lvgl/src/draw/lv_draw_arc.o + 0x00000000080110a8 lv_draw_arc_dsc_init .text.lv_draw_arc - 0x0000000008011168 0x52 ./Drivers/lvgl/src/draw/lv_draw_arc.o - 0x0000000008011168 lv_draw_arc - *fill* 0x00000000080111ba 0x2 + 0x00000000080110d4 0x52 ./Drivers/lvgl/src/draw/lv_draw_arc.o + 0x00000000080110d4 lv_draw_arc + *fill* 0x0000000008011126 0x2 .text.lv_draw_arc_get_area - 0x00000000080111bc 0x7e4 ./Drivers/lvgl/src/draw/lv_draw_arc.o - 0x00000000080111bc lv_draw_arc_get_area + 0x0000000008011128 0x7e4 ./Drivers/lvgl/src/draw/lv_draw_arc.o + 0x0000000008011128 lv_draw_arc_get_area .text.lv_color_make - 0x00000000080119a0 0x52 ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x000000000801190c 0x52 ./Drivers/lvgl/src/draw/lv_draw_img.o .text.lv_color_white - 0x00000000080119f2 0x14 ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x000000000801195e 0x14 ./Drivers/lvgl/src/draw/lv_draw_img.o .text.lv_color_black - 0x0000000008011a06 0x14 ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x0000000008011972 0x14 ./Drivers/lvgl/src/draw/lv_draw_img.o .text.lv_area_copy - 0x0000000008011a1a 0x3c ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x0000000008011986 0x3c ./Drivers/lvgl/src/draw/lv_draw_img.o .text.lv_area_get_width - 0x0000000008011a56 0x2c ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x00000000080119c2 0x2c ./Drivers/lvgl/src/draw/lv_draw_img.o .text.lv_area_get_height - 0x0000000008011a82 0x2c ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x00000000080119ee 0x2c ./Drivers/lvgl/src/draw/lv_draw_img.o .text.lv_draw_img_dsc_init - 0x0000000008011aae 0x38 ./Drivers/lvgl/src/draw/lv_draw_img.o - 0x0000000008011aae lv_draw_img_dsc_init - *fill* 0x0000000008011ae6 0x2 + 0x0000000008011a1a 0x38 ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x0000000008011a1a lv_draw_img_dsc_init + *fill* 0x0000000008011a52 0x2 .text.lv_draw_img - 0x0000000008011ae8 0x74 ./Drivers/lvgl/src/draw/lv_draw_img.o - 0x0000000008011ae8 lv_draw_img + 0x0000000008011a54 0x74 ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x0000000008011a54 lv_draw_img .text.lv_img_cf_get_px_size - 0x0000000008011b5c 0x94 ./Drivers/lvgl/src/draw/lv_draw_img.o - 0x0000000008011b5c lv_img_cf_get_px_size + 0x0000000008011ac8 0x94 ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x0000000008011ac8 lv_img_cf_get_px_size .text.lv_img_cf_is_chroma_keyed - 0x0000000008011bf0 0x30 ./Drivers/lvgl/src/draw/lv_draw_img.o - 0x0000000008011bf0 lv_img_cf_is_chroma_keyed + 0x0000000008011b5c 0x30 ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x0000000008011b5c lv_img_cf_is_chroma_keyed .text.lv_img_cf_has_alpha - 0x0000000008011c20 0x50 ./Drivers/lvgl/src/draw/lv_draw_img.o - 0x0000000008011c20 lv_img_cf_has_alpha + 0x0000000008011b8c 0x50 ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x0000000008011b8c lv_img_cf_has_alpha .text.lv_img_src_get_type - 0x0000000008011c70 0x52 ./Drivers/lvgl/src/draw/lv_draw_img.o - 0x0000000008011c70 lv_img_src_get_type + 0x0000000008011bdc 0x52 ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x0000000008011bdc lv_img_src_get_type .text.lv_draw_img_decoded - 0x0000000008011cc2 0x34 ./Drivers/lvgl/src/draw/lv_draw_img.o - 0x0000000008011cc2 lv_draw_img_decoded + 0x0000000008011c2e 0x34 ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x0000000008011c2e lv_draw_img_decoded .text.decode_and_draw - 0x0000000008011cf6 0x31e ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x0000000008011c62 0x31e ./Drivers/lvgl/src/draw/lv_draw_img.o .text.show_error - 0x0000000008012014 0x4e ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x0000000008011f80 0x4e ./Drivers/lvgl/src/draw/lv_draw_img.o .text.draw_cleanup - 0x0000000008012062 0x18 ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x0000000008011fce 0x18 ./Drivers/lvgl/src/draw/lv_draw_img.o .text.lv_area_get_width - 0x000000000801207a 0x2c ./Drivers/lvgl/src/draw/lv_draw_label.o + 0x0000000008011fe6 0x2c ./Drivers/lvgl/src/draw/lv_draw_label.o .text.lv_font_get_line_height - 0x00000000080120a6 0x18 ./Drivers/lvgl/src/draw/lv_draw_label.o + 0x0000000008012012 0x18 ./Drivers/lvgl/src/draw/lv_draw_label.o .text.lv_memcpy_small - 0x00000000080120be 0x42 ./Drivers/lvgl/src/draw/lv_draw_label.o + 0x000000000801202a 0x42 ./Drivers/lvgl/src/draw/lv_draw_label.o .text.lv_color_make - 0x0000000008012100 0x52 ./Drivers/lvgl/src/draw/lv_draw_label.o + 0x000000000801206c 0x52 ./Drivers/lvgl/src/draw/lv_draw_label.o .text.lv_color_black - 0x0000000008012152 0x14 ./Drivers/lvgl/src/draw/lv_draw_label.o + 0x00000000080120be 0x14 ./Drivers/lvgl/src/draw/lv_draw_label.o .text.lv_bidi_calculate_align - 0x0000000008012166 0x24 ./Drivers/lvgl/src/draw/lv_draw_label.o - *fill* 0x000000000801218a 0x2 + 0x00000000080120d2 0x24 ./Drivers/lvgl/src/draw/lv_draw_label.o + *fill* 0x00000000080120f6 0x2 .text.lv_draw_label_dsc_init - 0x000000000801218c 0x58 ./Drivers/lvgl/src/draw/lv_draw_label.o - 0x000000000801218c lv_draw_label_dsc_init + 0x00000000080120f8 0x58 ./Drivers/lvgl/src/draw/lv_draw_label.o + 0x00000000080120f8 lv_draw_label_dsc_init .text.lv_draw_label - 0x00000000080121e4 0xc4c ./Drivers/lvgl/src/draw/lv_draw_label.o - 0x00000000080121e4 lv_draw_label + 0x0000000008012150 0xc4c ./Drivers/lvgl/src/draw/lv_draw_label.o + 0x0000000008012150 lv_draw_label .text.lv_draw_letter - 0x0000000008012e30 0x24 ./Drivers/lvgl/src/draw/lv_draw_label.o - 0x0000000008012e30 lv_draw_letter + 0x0000000008012d9c 0x24 ./Drivers/lvgl/src/draw/lv_draw_label.o + 0x0000000008012d9c lv_draw_letter .text.hex_char_to_num - 0x0000000008012e54 0x8c ./Drivers/lvgl/src/draw/lv_draw_label.o + 0x0000000008012dc0 0x8c ./Drivers/lvgl/src/draw/lv_draw_label.o .text.lv_color_make - 0x0000000008012ee0 0x52 ./Drivers/lvgl/src/draw/lv_draw_line.o + 0x0000000008012e4c 0x52 ./Drivers/lvgl/src/draw/lv_draw_line.o .text.lv_color_black - 0x0000000008012f32 0x14 ./Drivers/lvgl/src/draw/lv_draw_line.o + 0x0000000008012e9e 0x14 ./Drivers/lvgl/src/draw/lv_draw_line.o .text.lv_draw_line_dsc_init - 0x0000000008012f46 0x2c ./Drivers/lvgl/src/draw/lv_draw_line.o - 0x0000000008012f46 lv_draw_line_dsc_init + 0x0000000008012eb2 0x2c ./Drivers/lvgl/src/draw/lv_draw_line.o + 0x0000000008012eb2 lv_draw_line_dsc_init .text.lv_draw_line - 0x0000000008012f72 0x3c ./Drivers/lvgl/src/draw/lv_draw_line.o - 0x0000000008012f72 lv_draw_line + 0x0000000008012ede 0x3c ./Drivers/lvgl/src/draw/lv_draw_line.o + 0x0000000008012ede lv_draw_line .text.lv_area_copy - 0x0000000008012fae 0x3c ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000008012f1a 0x3c ./Drivers/lvgl/src/draw/lv_draw_mask.o .text.lv_area_get_width - 0x0000000008012fea 0x2c ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000008012f56 0x2c ./Drivers/lvgl/src/draw/lv_draw_mask.o .text.lv_area_get_height - 0x0000000008013016 0x2c ./Drivers/lvgl/src/draw/lv_draw_mask.o - *fill* 0x0000000008013042 0x2 + 0x0000000008012f82 0x2c ./Drivers/lvgl/src/draw/lv_draw_mask.o + *fill* 0x0000000008012fae 0x2 .text.lv_draw_mask_add - 0x0000000008013044 0x60 ./Drivers/lvgl/src/draw/lv_draw_mask.o - 0x0000000008013044 lv_draw_mask_add + 0x0000000008012fb0 0x60 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000008012fb0 lv_draw_mask_add .text.lv_draw_mask_apply - 0x00000000080130a4 0x88 ./Drivers/lvgl/src/draw/lv_draw_mask.o - 0x00000000080130a4 lv_draw_mask_apply + 0x0000000008013010 0x88 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000008013010 lv_draw_mask_apply .text.lv_draw_mask_remove_id - 0x000000000801312c 0x50 ./Drivers/lvgl/src/draw/lv_draw_mask.o - 0x000000000801312c lv_draw_mask_remove_id + 0x0000000008013098 0x50 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000008013098 lv_draw_mask_remove_id .text.lv_draw_mask_remove_custom - 0x000000000801317c 0x50 ./Drivers/lvgl/src/draw/lv_draw_mask.o - 0x000000000801317c lv_draw_mask_remove_custom + 0x00000000080130e8 0x50 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x00000000080130e8 lv_draw_mask_remove_custom .text.lv_draw_mask_free_param - 0x00000000080131cc 0x6c ./Drivers/lvgl/src/draw/lv_draw_mask.o - 0x00000000080131cc lv_draw_mask_free_param + 0x0000000008013138 0x6c ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000008013138 lv_draw_mask_free_param .text._lv_draw_mask_cleanup - 0x0000000008013238 0x68 ./Drivers/lvgl/src/draw/lv_draw_mask.o - 0x0000000008013238 _lv_draw_mask_cleanup + 0x00000000080131a4 0x68 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x00000000080131a4 _lv_draw_mask_cleanup .text.lv_draw_mask_is_any - 0x00000000080132a0 0xbc ./Drivers/lvgl/src/draw/lv_draw_mask.o - 0x00000000080132a0 lv_draw_mask_is_any + 0x000000000801320c 0xbc ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x000000000801320c lv_draw_mask_is_any .text.lv_draw_mask_line_points_init - 0x000000000801335c 0x284 ./Drivers/lvgl/src/draw/lv_draw_mask.o - 0x000000000801335c lv_draw_mask_line_points_init + 0x00000000080132c8 0x284 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x00000000080132c8 lv_draw_mask_line_points_init .text.lv_draw_mask_line_angle_init - 0x00000000080135e0 0x8c ./Drivers/lvgl/src/draw/lv_draw_mask.o - 0x00000000080135e0 lv_draw_mask_line_angle_init + 0x000000000801354c 0x8c ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x000000000801354c lv_draw_mask_line_angle_init .text.lv_draw_mask_angle_init - 0x000000000801366c 0x184 ./Drivers/lvgl/src/draw/lv_draw_mask.o - 0x000000000801366c lv_draw_mask_angle_init + 0x00000000080135d8 0x184 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x00000000080135d8 lv_draw_mask_angle_init .text.lv_draw_mask_radius_init - 0x00000000080137f0 0x238 ./Drivers/lvgl/src/draw/lv_draw_mask.o - 0x00000000080137f0 lv_draw_mask_radius_init + 0x000000000801375c 0x238 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x000000000801375c lv_draw_mask_radius_init .text.lv_draw_mask_line - 0x0000000008013a28 0x1e6 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000008013994 0x1e6 ./Drivers/lvgl/src/draw/lv_draw_mask.o .text.line_mask_flat - 0x0000000008013c0e 0x314 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000008013b7a 0x314 ./Drivers/lvgl/src/draw/lv_draw_mask.o .text.line_mask_steep - 0x0000000008013f22 0x486 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000008013e8e 0x486 ./Drivers/lvgl/src/draw/lv_draw_mask.o .text.lv_draw_mask_angle - 0x00000000080143a8 0x600 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000008014314 0x600 ./Drivers/lvgl/src/draw/lv_draw_mask.o .text.lv_draw_mask_radius - 0x00000000080149a8 0x54a ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000008014914 0x54a ./Drivers/lvgl/src/draw/lv_draw_mask.o .text.circ_init - 0x0000000008014ef2 0x32 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000008014e5e 0x32 ./Drivers/lvgl/src/draw/lv_draw_mask.o .text.circ_cont - 0x0000000008014f24 0x28 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000008014e90 0x28 ./Drivers/lvgl/src/draw/lv_draw_mask.o .text.circ_next - 0x0000000008014f4c 0x92 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000008014eb8 0x92 ./Drivers/lvgl/src/draw/lv_draw_mask.o .text.circ_calc_aa4 - 0x0000000008014fde 0x694 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000008014f4a 0x694 ./Drivers/lvgl/src/draw/lv_draw_mask.o .text.get_next_line - 0x0000000008015672 0x6a ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x00000000080155de 0x6a ./Drivers/lvgl/src/draw/lv_draw_mask.o .text.mask_mix - 0x00000000080156dc 0x46 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000008015648 0x46 ./Drivers/lvgl/src/draw/lv_draw_mask.o .text.lv_area_get_width - 0x0000000008015722 0x2c ./Drivers/lvgl/src/draw/lv_draw_rect.o + 0x000000000801568e 0x2c ./Drivers/lvgl/src/draw/lv_draw_rect.o .text.lv_area_get_height - 0x000000000801574e 0x2c ./Drivers/lvgl/src/draw/lv_draw_rect.o + 0x00000000080156ba 0x2c ./Drivers/lvgl/src/draw/lv_draw_rect.o .text.lv_color_make - 0x000000000801577a 0x52 ./Drivers/lvgl/src/draw/lv_draw_rect.o + 0x00000000080156e6 0x52 ./Drivers/lvgl/src/draw/lv_draw_rect.o .text.lv_color_white - 0x00000000080157cc 0x14 ./Drivers/lvgl/src/draw/lv_draw_rect.o + 0x0000000008015738 0x14 ./Drivers/lvgl/src/draw/lv_draw_rect.o .text.lv_color_black - 0x00000000080157e0 0x14 ./Drivers/lvgl/src/draw/lv_draw_rect.o + 0x000000000801574c 0x14 ./Drivers/lvgl/src/draw/lv_draw_rect.o .text.lv_draw_rect_dsc_init - 0x00000000080157f4 0x84 ./Drivers/lvgl/src/draw/lv_draw_rect.o - 0x00000000080157f4 lv_draw_rect_dsc_init + 0x0000000008015760 0x84 ./Drivers/lvgl/src/draw/lv_draw_rect.o + 0x0000000008015760 lv_draw_rect_dsc_init .text.lv_draw_rect - 0x0000000008015878 0x3a ./Drivers/lvgl/src/draw/lv_draw_rect.o - 0x0000000008015878 lv_draw_rect + 0x00000000080157e4 0x3a ./Drivers/lvgl/src/draw/lv_draw_rect.o + 0x00000000080157e4 lv_draw_rect .text.lv_memcpy_small - 0x00000000080158b2 0x42 ./Drivers/lvgl/src/draw/lv_img_buf.o + 0x000000000801581e 0x42 ./Drivers/lvgl/src/draw/lv_img_buf.o .text.lv_color_mix - 0x00000000080158f4 0x70 ./Drivers/lvgl/src/draw/lv_img_buf.o + 0x0000000008015860 0x70 ./Drivers/lvgl/src/draw/lv_img_buf.o .text.lv_color_make - 0x0000000008015964 0x52 ./Drivers/lvgl/src/draw/lv_img_buf.o + 0x00000000080158d0 0x52 ./Drivers/lvgl/src/draw/lv_img_buf.o .text.lv_color_hex - 0x00000000080159b6 0x46 ./Drivers/lvgl/src/draw/lv_img_buf.o + 0x0000000008015922 0x46 ./Drivers/lvgl/src/draw/lv_img_buf.o .text.lv_color_black - 0x00000000080159fc 0x14 ./Drivers/lvgl/src/draw/lv_img_buf.o + 0x0000000008015968 0x14 ./Drivers/lvgl/src/draw/lv_img_buf.o .text.lv_img_buf_get_px_color - 0x0000000008015a10 0x286 ./Drivers/lvgl/src/draw/lv_img_buf.o - 0x0000000008015a10 lv_img_buf_get_px_color - *fill* 0x0000000008015c96 0x2 + 0x000000000801597c 0x286 ./Drivers/lvgl/src/draw/lv_img_buf.o + 0x000000000801597c lv_img_buf_get_px_color + *fill* 0x0000000008015c02 0x2 .text.lv_img_buf_get_px_alpha - 0x0000000008015c98 0x224 ./Drivers/lvgl/src/draw/lv_img_buf.o - 0x0000000008015c98 lv_img_buf_get_px_alpha + 0x0000000008015c04 0x224 ./Drivers/lvgl/src/draw/lv_img_buf.o + 0x0000000008015c04 lv_img_buf_get_px_alpha .text._lv_img_buf_transform_init - 0x0000000008015ebc 0x1fc ./Drivers/lvgl/src/draw/lv_img_buf.o - 0x0000000008015ebc _lv_img_buf_transform_init + 0x0000000008015e28 0x1fc ./Drivers/lvgl/src/draw/lv_img_buf.o + 0x0000000008015e28 _lv_img_buf_transform_init .text._lv_img_buf_get_transformed_area - 0x00000000080160b8 0x448 ./Drivers/lvgl/src/draw/lv_img_buf.o - 0x00000000080160b8 _lv_img_buf_get_transformed_area + 0x0000000008016024 0x448 ./Drivers/lvgl/src/draw/lv_img_buf.o + 0x0000000008016024 _lv_img_buf_get_transformed_area .text._lv_img_buf_transform - 0x0000000008016500 0x2d6 ./Drivers/lvgl/src/draw/lv_img_buf.o - 0x0000000008016500 _lv_img_buf_transform + 0x000000000801646c 0x2d6 ./Drivers/lvgl/src/draw/lv_img_buf.o + 0x000000000801646c _lv_img_buf_transform .text._lv_img_buf_transform_anti_alias - 0x00000000080167d6 0x536 ./Drivers/lvgl/src/draw/lv_img_buf.o - 0x00000000080167d6 _lv_img_buf_transform_anti_alias + 0x0000000008016742 0x536 ./Drivers/lvgl/src/draw/lv_img_buf.o + 0x0000000008016742 _lv_img_buf_transform_anti_alias .text._lv_img_cache_open - 0x0000000008016d0c 0x7c ./Drivers/lvgl/src/draw/lv_img_cache.o - 0x0000000008016d0c _lv_img_cache_open + 0x0000000008016c78 0x7c ./Drivers/lvgl/src/draw/lv_img_cache.o + 0x0000000008016c78 _lv_img_cache_open .text.lv_memcpy_small - 0x0000000008016d88 0x42 ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x0000000008016cf4 0x42 ./Drivers/lvgl/src/draw/lv_img_decoder.o .text.lv_color_make - 0x0000000008016dca 0x52 ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x0000000008016d36 0x52 ./Drivers/lvgl/src/draw/lv_img_decoder.o .text._lv_img_decoder_init - 0x0000000008016e1c 0x60 ./Drivers/lvgl/src/draw/lv_img_decoder.o - 0x0000000008016e1c _lv_img_decoder_init + 0x0000000008016d88 0x60 ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x0000000008016d88 _lv_img_decoder_init .text.lv_img_decoder_get_info - 0x0000000008016e7c 0x8c ./Drivers/lvgl/src/draw/lv_img_decoder.o - 0x0000000008016e7c lv_img_decoder_get_info + 0x0000000008016de8 0x8c ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x0000000008016de8 lv_img_decoder_get_info .text.lv_img_decoder_open - 0x0000000008016f08 0x15c ./Drivers/lvgl/src/draw/lv_img_decoder.o - 0x0000000008016f08 lv_img_decoder_open + 0x0000000008016e74 0x15c ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x0000000008016e74 lv_img_decoder_open .text.lv_img_decoder_read_line - 0x0000000008017064 0x58 ./Drivers/lvgl/src/draw/lv_img_decoder.o - 0x0000000008017064 lv_img_decoder_read_line + 0x0000000008016fd0 0x58 ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x0000000008016fd0 lv_img_decoder_read_line .text.lv_img_decoder_close - 0x00000000080170bc 0x4a ./Drivers/lvgl/src/draw/lv_img_decoder.o - 0x00000000080170bc lv_img_decoder_close - *fill* 0x0000000008017106 0x2 + 0x0000000008017028 0x4a ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x0000000008017028 lv_img_decoder_close + *fill* 0x0000000008017072 0x2 .text.lv_img_decoder_create - 0x0000000008017108 0x38 ./Drivers/lvgl/src/draw/lv_img_decoder.o - 0x0000000008017108 lv_img_decoder_create + 0x0000000008017074 0x38 ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x0000000008017074 lv_img_decoder_create .text.lv_img_decoder_set_info_cb - 0x0000000008017140 0x1a ./Drivers/lvgl/src/draw/lv_img_decoder.o - 0x0000000008017140 lv_img_decoder_set_info_cb + 0x00000000080170ac 0x1a ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x00000000080170ac lv_img_decoder_set_info_cb .text.lv_img_decoder_set_open_cb - 0x000000000801715a 0x1a ./Drivers/lvgl/src/draw/lv_img_decoder.o - 0x000000000801715a lv_img_decoder_set_open_cb + 0x00000000080170c6 0x1a ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x00000000080170c6 lv_img_decoder_set_open_cb .text.lv_img_decoder_set_read_line_cb - 0x0000000008017174 0x1a ./Drivers/lvgl/src/draw/lv_img_decoder.o - 0x0000000008017174 lv_img_decoder_set_read_line_cb + 0x00000000080170e0 0x1a ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x00000000080170e0 lv_img_decoder_set_read_line_cb .text.lv_img_decoder_set_close_cb - 0x000000000801718e 0x1a ./Drivers/lvgl/src/draw/lv_img_decoder.o - 0x000000000801718e lv_img_decoder_set_close_cb + 0x00000000080170fa 0x1a ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x00000000080170fa lv_img_decoder_set_close_cb .text.lv_img_decoder_built_in_info - 0x00000000080171a8 0x150 ./Drivers/lvgl/src/draw/lv_img_decoder.o - 0x00000000080171a8 lv_img_decoder_built_in_info + 0x0000000008017114 0x150 ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x0000000008017114 lv_img_decoder_built_in_info .text.lv_img_decoder_built_in_open - 0x00000000080172f8 0x2c4 ./Drivers/lvgl/src/draw/lv_img_decoder.o - 0x00000000080172f8 lv_img_decoder_built_in_open + 0x0000000008017264 0x2c4 ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x0000000008017264 lv_img_decoder_built_in_open .text.lv_img_decoder_built_in_read_line - 0x00000000080175bc 0x124 ./Drivers/lvgl/src/draw/lv_img_decoder.o - 0x00000000080175bc lv_img_decoder_built_in_read_line + 0x0000000008017528 0x124 ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x0000000008017528 lv_img_decoder_built_in_read_line .text.lv_img_decoder_built_in_close - 0x00000000080176e0 0x5e ./Drivers/lvgl/src/draw/lv_img_decoder.o - 0x00000000080176e0 lv_img_decoder_built_in_close + 0x000000000801764c 0x5e ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x000000000801764c lv_img_decoder_built_in_close .text.lv_img_decoder_built_in_line_true_color - 0x000000000801773e 0xbe ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x00000000080176aa 0xbe ./Drivers/lvgl/src/draw/lv_img_decoder.o .text.lv_img_decoder_built_in_line_alpha - 0x00000000080177fc 0x308 ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x0000000008017768 0x308 ./Drivers/lvgl/src/draw/lv_img_decoder.o .text.lv_img_decoder_built_in_line_indexed - 0x0000000008017b04 0x2b0 ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x0000000008017a70 0x2b0 ./Drivers/lvgl/src/draw/lv_img_decoder.o .text.lv_draw_sw_init_ctx - 0x0000000008017db4 0x78 ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o - 0x0000000008017db4 lv_draw_sw_init_ctx + 0x0000000008017d20 0x78 ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o + 0x0000000008017d20 lv_draw_sw_init_ctx .text.lv_draw_sw_wait_for_finish - 0x0000000008017e2c 0x12 ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o - 0x0000000008017e2c lv_draw_sw_wait_for_finish + 0x0000000008017d98 0x12 ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o + 0x0000000008017d98 lv_draw_sw_wait_for_finish .text.lv_area_copy - 0x0000000008017e3e 0x3c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + 0x0000000008017daa 0x3c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o .text.lv_area_get_width - 0x0000000008017e7a 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + 0x0000000008017de6 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o .text.lv_area_get_height - 0x0000000008017ea6 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o - *fill* 0x0000000008017ed2 0x2 + 0x0000000008017e12 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + *fill* 0x0000000008017e3e 0x2 .text.lv_draw_sw_arc - 0x0000000008017ed4 0x7fc ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o - 0x0000000008017ed4 lv_draw_sw_arc + 0x0000000008017e40 0x7fc ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + 0x0000000008017e40 lv_draw_sw_arc .text.draw_quarter_0 - 0x00000000080186d0 0x3e4 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + 0x000000000801863c 0x3e4 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o .text.draw_quarter_1 - 0x0000000008018ab4 0x3f4 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + 0x0000000008018a20 0x3f4 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o .text.draw_quarter_2 - 0x0000000008018ea8 0x406 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + 0x0000000008018e14 0x406 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o .text.draw_quarter_3 - 0x00000000080192ae 0x3f4 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + 0x000000000801921a 0x3f4 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o .text.get_rounded_area - 0x00000000080196a2 0x19c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o - *fill* 0x000000000801983e 0x2 + 0x000000000801960e 0x19c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + *fill* 0x00000000080197aa 0x2 .text.lv_color_mix - 0x0000000008019840 0x70 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x00000000080197ac 0x70 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .text.lv_color_premult - 0x00000000080198b0 0x64 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x000000000801981c 0x64 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .text.lv_color_mix_premult - 0x0000000008019914 0xc0 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x0000000008019880 0xc0 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .text.lv_color_make - 0x00000000080199d4 0x52 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x0000000008019940 0x52 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .text.lv_color_black - 0x0000000008019a26 0x14 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x0000000008019992 0x14 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .text.lv_area_get_width - 0x0000000008019a3a 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x00000000080199a6 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .text.lv_area_get_height - 0x0000000008019a66 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x00000000080199d2 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .text.lv_draw_sw_blend - 0x0000000008019a92 0x58 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o - 0x0000000008019a92 lv_draw_sw_blend + 0x00000000080199fe 0x58 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x00000000080199fe lv_draw_sw_blend .text.lv_draw_sw_blend_basic - 0x0000000008019aea 0x2b2 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o - 0x0000000008019aea lv_draw_sw_blend_basic + 0x0000000008019a56 0x2b2 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x0000000008019a56 lv_draw_sw_blend_basic .text.fill_set_px - 0x0000000008019d9c 0x13a ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x0000000008019d08 0x13a ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .text.fill_normal - 0x0000000008019ed6 0x434 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o - *fill* 0x000000000801a30a 0x2 + 0x0000000008019e42 0x434 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + *fill* 0x000000000801a276 0x2 .text.fill_blended - 0x000000000801a30c 0x208 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x000000000801a278 0x208 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .text.map_set_px - 0x000000000801a514 0x16c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x000000000801a480 0x16c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .text.map_normal - 0x000000000801a680 0x4b8 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x000000000801a5ec 0x4b8 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .text.map_blended - 0x000000000801ab38 0x17c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x000000000801aaa4 0x17c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .text.color_blend_true_color_additive - 0x000000000801acb4 0xbc ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x000000000801ac20 0xbc ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .text.color_blend_true_color_subtractive - 0x000000000801ad70 0xb6 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x000000000801acdc 0xb6 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .text.color_blend_true_color_multiply - 0x000000000801ae26 0xaa ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x000000000801ad92 0xaa ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .text.lv_color_to32 - 0x000000000801aed0 0x6c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + 0x000000000801ae3c 0x6c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o .text.compute_key - 0x000000000801af3c 0x30 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + 0x000000000801aea8 0x30 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o .text.get_cache_item_size - 0x000000000801af6c 0x26 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o - *fill* 0x000000000801af92 0x2 + 0x000000000801aed8 0x26 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + *fill* 0x000000000801aefe 0x2 .text.next_in_cache - 0x000000000801af94 0x60 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + 0x000000000801af00 0x60 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o .text.iterate_cache - 0x000000000801aff4 0x58 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + 0x000000000801af60 0x58 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o .text.find_oldest_item_life - 0x000000000801b04c 0x3a ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o - *fill* 0x000000000801b086 0x2 + 0x000000000801afb8 0x3a ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + *fill* 0x000000000801aff2 0x2 .text.free_item - 0x000000000801b088 0x8c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + 0x000000000801aff4 0x8c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o .text.kill_oldest_item - 0x000000000801b114 0x34 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + 0x000000000801b080 0x34 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o .text.find_item - 0x000000000801b148 0x2a ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o - *fill* 0x000000000801b172 0x2 + 0x000000000801b0b4 0x2a ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + *fill* 0x000000000801b0de 0x2 .text.allocate_item - 0x000000000801b174 0x184 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + 0x000000000801b0e0 0x184 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o .text.lv_gradient_set_cache_size - 0x000000000801b2f8 0x58 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o - 0x000000000801b2f8 lv_gradient_set_cache_size + 0x000000000801b264 0x58 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + 0x000000000801b264 lv_gradient_set_cache_size .text.lv_gradient_get - 0x000000000801b350 0x110 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o - 0x000000000801b350 lv_gradient_get + 0x000000000801b2bc 0x110 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + 0x000000000801b2bc lv_gradient_get .text.lv_gradient_calculate - 0x000000000801b460 0x1de ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o - 0x000000000801b460 lv_gradient_calculate + 0x000000000801b3cc 0x1de ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + 0x000000000801b3cc lv_gradient_calculate .text.lv_gradient_cleanup - 0x000000000801b63e 0x24 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o - 0x000000000801b63e lv_gradient_cleanup + 0x000000000801b5aa 0x24 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + 0x000000000801b5aa lv_gradient_cleanup .text.lv_color_premult - 0x000000000801b662 0x64 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o + 0x000000000801b5ce 0x64 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o .text.lv_color_mix_premult - 0x000000000801b6c6 0xc0 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o + 0x000000000801b632 0xc0 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o .text.lv_color_hex - 0x000000000801b786 0x46 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o + 0x000000000801b6f2 0x46 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o .text.lv_area_copy - 0x000000000801b7cc 0x3c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o + 0x000000000801b738 0x3c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o .text.lv_area_get_width - 0x000000000801b808 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o + 0x000000000801b774 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o .text.lv_area_get_height - 0x000000000801b834 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o + 0x000000000801b7a0 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o .text.lv_draw_sw_img_decoded - 0x000000000801b860 0x846 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o - 0x000000000801b860 lv_draw_sw_img_decoded + 0x000000000801b7cc 0x846 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o + 0x000000000801b7cc lv_draw_sw_img_decoded .text.lv_area_copy - 0x000000000801c0a6 0x3c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + 0x000000000801c012 0x3c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o .text.lv_area_get_width - 0x000000000801c0e2 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + 0x000000000801c04e 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o .text.lv_draw_sw_letter - 0x000000000801c10e 0x124 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o - 0x000000000801c10e lv_draw_sw_letter - *fill* 0x000000000801c232 0x2 + 0x000000000801c07a 0x124 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + 0x000000000801c07a lv_draw_sw_letter + *fill* 0x000000000801c19e 0x2 .text.draw_letter_normal - 0x000000000801c234 0x554 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + 0x000000000801c1a0 0x554 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o .text.lv_area_get_width - 0x000000000801c788 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o + 0x000000000801c6f4 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o .text.lv_draw_sw_line - 0x000000000801c7b4 0x30a ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o - 0x000000000801c7b4 lv_draw_sw_line + 0x000000000801c720 0x30a ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o + 0x000000000801c720 lv_draw_sw_line .text.draw_line_hor - 0x000000000801cabe 0x2c2 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o + 0x000000000801ca2a 0x2c2 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o .text.draw_line_ver - 0x000000000801cd80 0x262 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o - *fill* 0x000000000801cfe2 0x2 + 0x000000000801ccec 0x262 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o + *fill* 0x000000000801cf4e 0x2 .text.draw_line_skew - 0x000000000801cfe4 0x768 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o + 0x000000000801cf50 0x768 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o .text.lv_draw_sw_polygon - 0x000000000801d74c 0x578 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o - 0x000000000801d74c lv_draw_sw_polygon + 0x000000000801d6b8 0x578 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o + 0x000000000801d6b8 lv_draw_sw_polygon .text.lv_area_copy - 0x000000000801dcc4 0x3c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x000000000801dc30 0x3c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o .text.lv_area_get_width - 0x000000000801dd00 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x000000000801dc6c 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o .text.lv_area_get_height - 0x000000000801dd2c 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x000000000801dc98 0x2c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o .text.lv_draw_sw_rect - 0x000000000801dd58 0x46 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o - 0x000000000801dd58 lv_draw_sw_rect + 0x000000000801dcc4 0x46 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x000000000801dcc4 lv_draw_sw_rect .text.lv_draw_sw_bg - 0x000000000801dd9e 0x28 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o - 0x000000000801dd9e lv_draw_sw_bg - .text.draw_bg 0x000000000801ddc6 0x606 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x000000000801dd0a 0x28 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x000000000801dd0a lv_draw_sw_bg + .text.draw_bg 0x000000000801dd32 0x606 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o .text.draw_bg_img - 0x000000000801e3cc 0x334 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x000000000801e338 0x334 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o .text.draw_border - 0x000000000801e700 0x1f0 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x000000000801e66c 0x1f0 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o .text.draw_shadow - 0x000000000801e8f0 0x1572 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x000000000801e85c 0x1572 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o .text.shadow_draw_corner_buf - 0x000000000801fe62 0x2e6 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x000000000801fdce 0x2e6 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o .text.shadow_blur_corner - 0x0000000008020148 0x2da ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x00000000080200b4 0x2da ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o .text.draw_outline - 0x0000000008020422 0x192 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x000000000802038e 0x192 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o .text.draw_border_generic - 0x00000000080205b4 0x7ac ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o - 0x00000000080205b4 draw_border_generic + 0x0000000008020520 0x7ac ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x0000000008020520 draw_border_generic .text.draw_border_simple - 0x0000000008020d60 0x184 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x0000000008020ccc 0x184 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o .text.lv_area_copy - 0x0000000008020ee4 0x3c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008020e50 0x3c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_area_get_width - 0x0000000008020f20 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008020e8c 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_area_get_height - 0x0000000008020f4c 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008020eb8 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_width - 0x0000000008020f78 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008020ee4 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_min_width - 0x0000000008020f9e 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008020f0a 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_max_width - 0x0000000008020fc4 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008020f30 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_height - 0x0000000008020fea 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008020f56 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_min_height - 0x0000000008021010 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008020f7c 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_max_height - 0x0000000008021036 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008020fa2 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_translate_x - 0x000000000802105c 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008020fc8 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_translate_y - 0x0000000008021082 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008020fee 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_pad_top - 0x00000000080210a8 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008021014 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_pad_left - 0x00000000080210ce 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x000000000802103a 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_pad_row - 0x00000000080210f4 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008021060 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_pad_column - 0x000000000802111a 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008021086 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_border_width - 0x0000000008021140 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x00000000080210ac 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_base_dir - 0x0000000008021166 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x00000000080210d2 0x26 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_flex_flow - 0x000000000802118c 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x00000000080210f8 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_flex_main_place - 0x00000000080211b8 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008021124 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_flex_cross_place - 0x00000000080211e4 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008021150 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_flex_track_place - 0x0000000008021210 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x000000000802117c 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_obj_get_style_flex_grow - 0x000000000802123c 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x00000000080211a8 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_flex_init - 0x0000000008021268 0x6c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o - 0x0000000008021268 lv_flex_init + 0x00000000080211d4 0x6c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x00000000080211d4 lv_flex_init .text.lv_obj_set_flex_flow - 0x00000000080212d4 0x34 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o - 0x00000000080212d4 lv_obj_set_flex_flow + 0x0000000008021240 0x34 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008021240 lv_obj_set_flex_flow .text.lv_obj_set_flex_align - 0x0000000008021308 0x5c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o - 0x0000000008021308 lv_obj_set_flex_align + 0x0000000008021274 0x5c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008021274 lv_obj_set_flex_align .text.lv_obj_set_flex_grow - 0x0000000008021364 0x2e ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o - 0x0000000008021364 lv_obj_set_flex_grow - *fill* 0x0000000008021392 0x2 + 0x00000000080212d0 0x2e ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x00000000080212d0 lv_obj_set_flex_grow + *fill* 0x00000000080212fe 0x2 .text.lv_obj_set_style_flex_flow - 0x0000000008021394 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o - 0x0000000008021394 lv_obj_set_style_flex_flow + 0x0000000008021300 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008021300 lv_obj_set_style_flex_flow .text.lv_obj_set_style_flex_main_place - 0x00000000080213c0 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o - 0x00000000080213c0 lv_obj_set_style_flex_main_place + 0x000000000802132c 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x000000000802132c lv_obj_set_style_flex_main_place .text.lv_obj_set_style_flex_cross_place - 0x00000000080213ec 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o - 0x00000000080213ec lv_obj_set_style_flex_cross_place + 0x0000000008021358 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008021358 lv_obj_set_style_flex_cross_place .text.lv_obj_set_style_flex_track_place - 0x0000000008021418 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o - 0x0000000008021418 lv_obj_set_style_flex_track_place + 0x0000000008021384 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008021384 lv_obj_set_style_flex_track_place .text.lv_obj_set_style_flex_grow - 0x0000000008021444 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o - 0x0000000008021444 lv_obj_set_style_flex_grow + 0x00000000080213b0 0x2c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x00000000080213b0 lv_obj_set_style_flex_grow .text.flex_update - 0x0000000008021470 0x4dc ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x00000000080213dc 0x4dc ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.find_track_end - 0x000000000802194c 0x3d4 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x00000000080218b8 0x3d4 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.children_repos - 0x0000000008021d20 0x70c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008021c8c 0x70c ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.place_content - 0x000000000802242c 0x164 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000008022398 0x164 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.get_next_item - 0x0000000008022590 0x72 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x00000000080224fc 0x72 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .text.lv_area_copy - 0x0000000008022602 0x3c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x000000000802256e 0x3c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_area_get_width - 0x000000000802263e 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x00000000080225aa 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_area_get_height - 0x000000000802266a 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x00000000080225d6 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_width - 0x0000000008022696 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008022602 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_height - 0x00000000080226bc 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008022628 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_translate_x - 0x00000000080226e2 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x000000000802264e 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_translate_y - 0x0000000008022708 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008022674 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_pad_top - 0x000000000802272e 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x000000000802269a 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_pad_left - 0x0000000008022754 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x00000000080226c0 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_pad_row - 0x000000000802277a 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x00000000080226e6 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_pad_column - 0x00000000080227a0 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x000000000802270c 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_border_width - 0x00000000080227c6 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008022732 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_base_dir - 0x00000000080227ec 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o - *fill* 0x0000000008022812 0x2 + 0x0000000008022758 0x26 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + *fill* 0x000000000802277e 0x2 .text.lv_obj_get_style_grid_row_dsc_array - 0x0000000008022814 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008022780 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_grid_column_dsc_array - 0x0000000008022840 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x00000000080227ac 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_grid_row_align - 0x000000000802286c 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x00000000080227d8 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_grid_column_align - 0x0000000008022898 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008022804 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_grid_cell_column_pos - 0x00000000080228c4 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008022830 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_grid_cell_column_span - 0x00000000080228f0 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x000000000802285c 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_grid_cell_row_pos - 0x000000000802291c 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008022888 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_grid_cell_row_span - 0x0000000008022948 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x00000000080228b4 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_grid_cell_x_align - 0x0000000008022974 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x00000000080228e0 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_obj_get_style_grid_cell_y_align - 0x00000000080229a0 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x000000000802290c 0x2c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.get_col_dsc - 0x00000000080229cc 0x1a ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008022938 0x1a ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.get_row_dsc - 0x00000000080229e6 0x1a ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008022952 0x1a ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.get_col_pos - 0x0000000008022a00 0x1c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x000000000802296c 0x1c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.get_row_pos - 0x0000000008022a1c 0x1c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008022988 0x1c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.get_col_span - 0x0000000008022a38 0x1c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x00000000080229a4 0x1c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.get_row_span - 0x0000000008022a54 0x1c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x00000000080229c0 0x1c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.get_cell_col_align - 0x0000000008022a70 0x1c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x00000000080229dc 0x1c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.get_cell_row_align - 0x0000000008022a8c 0x1c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x00000000080229f8 0x1c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.get_grid_col_align - 0x0000000008022aa8 0x1a ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008022a14 0x1a ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.get_grid_row_align - 0x0000000008022ac2 0x1a ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008022a2e 0x1a ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_grid_init - 0x0000000008022adc 0xe8 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o - 0x0000000008022adc lv_grid_init + 0x0000000008022a48 0xe8 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008022a48 lv_grid_init .text.grid_update - 0x0000000008022bc4 0x14c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o - .text.calc 0x0000000008022d10 0x162 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008022b30 0x14c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + .text.calc 0x0000000008022c7c 0x162 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.calc_free - 0x0000000008022e72 0x38 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o - *fill* 0x0000000008022eaa 0x2 + 0x0000000008022dde 0x38 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + *fill* 0x0000000008022e16 0x2 .text.calc_cols - 0x0000000008022eac 0x298 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008022e18 0x298 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.calc_rows - 0x0000000008023144 0x28c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x00000000080230b0 0x28c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.item_repos - 0x00000000080233d0 0x554 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x000000000802333c 0x554 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.grid_align - 0x0000000008023924 0x234 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008023890 0x234 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.count_tracks - 0x0000000008023b58 0x34 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000008023ac4 0x34 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .text.lv_extra_init - 0x0000000008023b8c 0x10 ./Drivers/lvgl/src/extra/lv_extra.o - 0x0000000008023b8c lv_extra_init - .text.lv_pct 0x0000000008023b9c 0x36 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o - *fill* 0x0000000008023bd2 0x2 + 0x0000000008023af8 0x10 ./Drivers/lvgl/src/extra/lv_extra.o + 0x0000000008023af8 lv_extra_init + .text.lv_pct 0x0000000008023b08 0x36 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + *fill* 0x0000000008023b3e 0x2 .text.lv_color_mix - 0x0000000008023bd4 0x70 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000008023b40 0x70 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o .text.lv_color_make - 0x0000000008023c44 0x52 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000008023bb0 0x52 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o .text.lv_color_hex - 0x0000000008023c96 0x46 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000008023c02 0x46 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o .text.lv_color_filter_dsc_init - 0x0000000008023cdc 0x1a ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000008023c48 0x1a ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o .text.lv_color_white - 0x0000000008023cf6 0x14 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000008023c62 0x14 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o .text.lv_style_set_size - 0x0000000008023d0a 0x2c ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000008023c76 0x2c ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o .text.lv_style_set_pad_all - 0x0000000008023d36 0x44 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000008023ca2 0x44 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o .text.lv_style_set_pad_hor - 0x0000000008023d7a 0x2c ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000008023ce6 0x2c ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o .text.lv_style_set_pad_ver - 0x0000000008023da6 0x2c ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000008023d12 0x2c ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o .text.lv_style_set_pad_gap - 0x0000000008023dd2 0x2c ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o - *fill* 0x0000000008023dfe 0x2 + 0x0000000008023d3e 0x2c ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + *fill* 0x0000000008023d6a 0x2 .text.lv_disp_dpx - 0x0000000008023e00 0x60 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000008023d6c 0x60 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o .text.dark_color_filter_cb - 0x0000000008023e60 0x22 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o - *fill* 0x0000000008023e82 0x2 + 0x0000000008023dcc 0x22 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + *fill* 0x0000000008023dee 0x2 .text.grey_filter_cb - 0x0000000008023e84 0x50 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000008023df0 0x50 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o .text.style_init - 0x0000000008023ed4 0x2094 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000008023e40 0x2094 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o .text.lv_theme_default_init - 0x0000000008025f68 0xf0 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o - 0x0000000008025f68 lv_theme_default_init + 0x0000000008025ed4 0xf0 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000008025ed4 lv_theme_default_init .text.lv_theme_default_get - 0x0000000008026058 0x24 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o - 0x0000000008026058 lv_theme_default_get + 0x0000000008025fc4 0x24 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000008025fc4 lv_theme_default_get .text.lv_theme_default_is_inited - 0x000000000802607c 0x20 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o - 0x000000000802607c lv_theme_default_is_inited + 0x0000000008025fe8 0x20 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000008025fe8 lv_theme_default_is_inited .text.theme_apply - 0x000000000802609c 0x14b8 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000008026008 0x14b8 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o .text.style_init_reset - 0x0000000008027554 0x2c ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o - .text.lv_pct 0x0000000008027580 0x36 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + 0x00000000080274c0 0x2c ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + .text.lv_pct 0x00000000080274ec 0x36 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o .text.lv_calendar_set_today_date - 0x00000000080275b6 0x3c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o - 0x00000000080275b6 lv_calendar_set_today_date - *fill* 0x00000000080275f2 0x2 + 0x0000000008027522 0x3c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + 0x0000000008027522 lv_calendar_set_today_date + *fill* 0x000000000802755e 0x2 .text.lv_calendar_set_showed_date - 0x00000000080275f4 0x24c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o - 0x00000000080275f4 lv_calendar_set_showed_date + 0x0000000008027560 0x24c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + 0x0000000008027560 lv_calendar_set_showed_date .text.lv_calendar_get_showed_date - 0x0000000008027840 0x1a ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o - 0x0000000008027840 lv_calendar_get_showed_date - *fill* 0x000000000802785a 0x2 + 0x00000000080277ac 0x1a ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + 0x00000000080277ac lv_calendar_get_showed_date + *fill* 0x00000000080277c6 0x2 .text.lv_calendar_constructor - 0x000000000802785c 0x18c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + 0x00000000080277c8 0x18c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o .text.draw_part_begin_event_cb - 0x00000000080279e8 0x104 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + 0x0000000008027954 0x104 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o .text.get_month_length - 0x0000000008027aec 0x80 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + 0x0000000008027a58 0x80 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o .text.is_leap_year - 0x0000000008027b6c 0x58 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + 0x0000000008027ad8 0x58 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o .text.get_day_of_week - 0x0000000008027bc4 0x9c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + 0x0000000008027b30 0x9c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o .text.highlight_update - 0x0000000008027c60 0xec ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o - .text.lv_pct 0x0000000008027d4c 0x36 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o - *fill* 0x0000000008027d82 0x2 + 0x0000000008027bcc 0xec ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + .text.lv_pct 0x0000000008027cb8 0x36 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o + *fill* 0x0000000008027cee 0x2 .text.my_constructor - 0x0000000008027d84 0x100 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o + 0x0000000008027cf0 0x100 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o .text.month_event_cb - 0x0000000008027e84 0xd0 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o + 0x0000000008027df0 0xd0 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o .text.value_changed_event_cb - 0x0000000008027f54 0x58 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o + 0x0000000008027ec0 0x58 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o .text.my_constructor - 0x0000000008027fac 0xa4 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o + 0x0000000008027f18 0xa4 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o .text.month_event_cb - 0x0000000008028050 0x58 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o + 0x0000000008027fbc 0x58 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o .text.year_event_cb - 0x00000000080280a8 0x58 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o + 0x0000000008028014 0x58 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o .text.value_changed_event_cb - 0x0000000008028100 0x64 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o + 0x000000000802806c 0x64 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o .text.lv_area_copy - 0x0000000008028164 0x3c ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x00000000080280d0 0x3c ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.lv_obj_get_style_width - 0x00000000080281a0 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x000000000802810c 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.lv_obj_get_style_height - 0x00000000080281c6 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x0000000008028132 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.lv_obj_get_style_pad_top - 0x00000000080281ec 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x0000000008028158 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.lv_obj_get_style_pad_bottom - 0x0000000008028212 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x000000000802817e 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.lv_obj_get_style_pad_left - 0x0000000008028238 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x00000000080281a4 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.lv_obj_get_style_pad_right - 0x000000000802825e 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x00000000080281ca 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.lv_obj_get_style_pad_column - 0x0000000008028284 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x00000000080281f0 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.lv_obj_get_style_border_opa - 0x00000000080282aa 0x24 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x0000000008028216 0x24 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.lv_obj_get_style_border_width - 0x00000000080282ce 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x000000000802823a 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.lv_obj_get_style_border_side - 0x00000000080282f4 0x24 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x0000000008028260 0x24 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.lv_obj_get_style_line_width - 0x0000000008028318 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x0000000008028284 0x26 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.lv_chart_get_point_pos_by_id - 0x000000000802833e 0x316 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o - 0x000000000802833e lv_chart_get_point_pos_by_id + 0x00000000080282aa 0x316 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x00000000080282aa lv_chart_get_point_pos_by_id .text.lv_chart_constructor - 0x0000000008028654 0xc2 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x00000000080285c0 0xc2 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.lv_chart_destructor - 0x0000000008028716 0x92 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x0000000008028682 0x92 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.lv_chart_event - 0x00000000080287a8 0x220 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x0000000008028714 0x220 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.draw_div_lines - 0x00000000080289c8 0x43c ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x0000000008028934 0x43c ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.draw_series_line - 0x0000000008028e04 0x818 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x0000000008028d70 0x818 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.draw_series_scatter - 0x000000000802961c 0x728 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x0000000008029588 0x728 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.draw_series_bar - 0x0000000008029d44 0x420 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x0000000008029cb0 0x420 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.draw_cursors - 0x000000000802a164 0x450 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x000000000802a0d0 0x450 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.draw_y_ticks - 0x000000000802a5b4 0x4bc ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x000000000802a520 0x4bc ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.draw_x_ticks - 0x000000000802aa70 0x5ac ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x000000000802a9dc 0x5ac ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.draw_axes - 0x000000000802b01c 0x3a ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x000000000802af88 0x3a ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.get_index_from_x - 0x000000000802b056 0xca ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x000000000802afc2 0xca ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.invalidate_point - 0x000000000802b120 0x2bc ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x000000000802b08c 0x2bc ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .text.get_tick_gsc - 0x000000000802b3dc 0x54 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o - 0x000000000802b3dc get_tick_gsc + 0x000000000802b348 0x54 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x000000000802b348 get_tick_gsc .text.lv_trigo_cos - 0x000000000802b430 0x22 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802b39c 0x22 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.lv_area_copy - 0x000000000802b452 0x3c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802b3be 0x3c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.lv_area_get_width - 0x000000000802b48e 0x2c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802b3fa 0x2c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.lv_area_get_height - 0x000000000802b4ba 0x2c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802b426 0x2c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.lv_color_make - 0x000000000802b4e6 0x52 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802b452 0x52 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.lv_obj_get_style_pad_top - 0x000000000802b538 0x26 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802b4a4 0x26 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.lv_obj_get_style_pad_bottom - 0x000000000802b55e 0x26 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802b4ca 0x26 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.lv_obj_get_style_pad_left - 0x000000000802b584 0x26 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802b4f0 0x26 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.lv_obj_get_style_pad_right - 0x000000000802b5aa 0x26 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802b516 0x26 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.lv_obj_get_style_arc_width - 0x000000000802b5d0 0x26 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o - *fill* 0x000000000802b5f6 0x2 + 0x000000000802b53c 0x26 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + *fill* 0x000000000802b562 0x2 .text.lv_colorwheel_set_hsv - 0x000000000802b5f8 0x8c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o - 0x000000000802b5f8 lv_colorwheel_set_hsv + 0x000000000802b564 0x8c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802b564 lv_colorwheel_set_hsv .text.lv_colorwheel_get_rgb - 0x000000000802b684 0x2c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o - 0x000000000802b684 lv_colorwheel_get_rgb + 0x000000000802b5f0 0x2c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802b5f0 lv_colorwheel_get_rgb .text.lv_colorwheel_constructor - 0x000000000802b6b0 0x84 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802b61c 0x84 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.draw_disc_grad - 0x000000000802b734 0x2b8 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802b6a0 0x2b8 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.draw_knob - 0x000000000802b9ec 0x78 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802b958 0x78 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.invalidate_knob - 0x000000000802ba64 0x28 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802b9d0 0x28 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.get_knob_area - 0x000000000802ba8c 0x104 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802b9f8 0x104 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.lv_colorwheel_event - 0x000000000802bb90 0x64c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802bafc 0x64c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.next_color_mode - 0x000000000802c1dc 0x5c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802c148 0x5c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.refr_knob_pos - 0x000000000802c238 0xca ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802c1a4 0xca ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.double_click_reset - 0x000000000802c302 0x9e ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802c26e 0x9e ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.fast_hsv2rgb - 0x000000000802c3a0 0x136 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o - *fill* 0x000000000802c4d6 0x2 + 0x000000000802c30c 0x136 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + *fill* 0x000000000802c442 0x2 .text.angle_to_mode_color_fast - 0x000000000802c4d8 0x218 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802c444 0x218 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.get_angle - 0x000000000802c6f0 0x78 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000802c65c 0x78 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .text.lv_keyboard_def_event_cb - 0x000000000802c768 0x344 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o - 0x000000000802c768 lv_keyboard_def_event_cb + 0x000000000802c6d4 0x344 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + 0x000000000802c6d4 lv_keyboard_def_event_cb .text.lv_keyboard_constructor - 0x000000000802caac 0x68 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + 0x000000000802ca18 0x68 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o .text.lv_keyboard_update_map - 0x000000000802cb14 0x34 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + 0x000000000802ca80 0x34 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o .text.lv_keyboard_update_ctrl_map - 0x000000000802cb48 0xac ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + 0x000000000802cab4 0xac ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o .text.lv_color_to32 - 0x000000000802cbf4 0x6c ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + 0x000000000802cb60 0x6c ./Drivers/lvgl/src/extra/widgets/led/lv_led.o .text.lv_color_mix - 0x000000000802cc60 0x70 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + 0x000000000802cbcc 0x70 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o .text.lv_color_brightness - 0x000000000802ccd0 0x42 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + 0x000000000802cc3c 0x42 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o .text.lv_color_make - 0x000000000802cd12 0x52 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + 0x000000000802cc7e 0x52 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o .text.lv_color_black - 0x000000000802cd64 0x14 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + 0x000000000802ccd0 0x14 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o .text.lv_led_constructor - 0x000000000802cd78 0x28 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + 0x000000000802cce4 0x28 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o .text.lv_led_event - 0x000000000802cda0 0x240 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + 0x000000000802cd0c 0x240 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o .text.lv_menu_set_page - 0x000000000802cfe0 0x190 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - 0x000000000802cfe0 lv_menu_set_page + 0x000000000802cf4c 0x190 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000802cf4c lv_menu_set_page .text.lv_menu_get_cur_main_page - 0x000000000802d170 0x1a ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - 0x000000000802d170 lv_menu_get_cur_main_page + 0x000000000802d0dc 0x1a ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000802d0dc lv_menu_get_cur_main_page .text.lv_menu_get_cur_sidebar_page - 0x000000000802d18a 0x1a ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - 0x000000000802d18a lv_menu_get_cur_sidebar_page + 0x000000000802d0f6 0x1a ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000802d0f6 lv_menu_get_cur_sidebar_page .text.lv_menu_back_btn_is_root - 0x000000000802d1a4 0x3c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - 0x000000000802d1a4 lv_menu_back_btn_is_root + 0x000000000802d110 0x3c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000802d110 lv_menu_back_btn_is_root .text.lv_menu_clear_history - 0x000000000802d1e0 0x28 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - 0x000000000802d1e0 lv_menu_clear_history + 0x000000000802d14c 0x28 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000802d14c lv_menu_clear_history .text.lv_menu_constructor - 0x000000000802d208 0x1c0 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000802d174 0x1c0 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o .text.lv_menu_destructor - 0x000000000802d3c8 0x22 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000802d334 0x22 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o .text.lv_menu_page_constructor - 0x000000000802d3ea 0x44 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000802d356 0x44 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o .text.lv_menu_page_destructor - 0x000000000802d42e 0x2e ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000802d39a 0x2e ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o .text.lv_menu_cont_constructor - 0x000000000802d45c 0x2e ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000802d3c8 0x2e ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o .text.lv_menu_section_constructor - 0x000000000802d48a 0x22 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000802d3f6 0x22 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o .text.lv_menu_refr_main_header_mode - 0x000000000802d4ac 0xda ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000802d418 0xda ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o .text.lv_menu_back_event_cb - 0x000000000802d586 0xcc ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000802d4f2 0xcc ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o .text.lv_menu_value_changed_event_cb - 0x000000000802d652 0xac ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000802d5be 0xac ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o .text.lv_trigo_cos - 0x000000000802d6fe 0x22 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x000000000802d66a 0x22 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o .text.lv_area_get_width - 0x000000000802d720 0x2c ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x000000000802d68c 0x2c ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o .text.lv_area_get_height - 0x000000000802d74c 0x2c ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x000000000802d6b8 0x2c ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o .text.lv_color_mix - 0x000000000802d778 0x70 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x000000000802d6e4 0x70 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o .text.lv_obj_get_style_width - 0x000000000802d7e8 0x26 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x000000000802d754 0x26 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o .text.lv_obj_get_style_height - 0x000000000802d80e 0x26 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x000000000802d77a 0x26 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o .text.lv_obj_get_style_arc_rounded - 0x000000000802d834 0x2c ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x000000000802d7a0 0x2c ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o .text.lv_obj_get_style_opa - 0x000000000802d860 0x26 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x000000000802d7cc 0x26 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o .text.lv_meter_constructor - 0x000000000802d886 0x2e ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x000000000802d7f2 0x2e ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o .text.lv_meter_destructor - 0x000000000802d8b4 0x2a ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o - *fill* 0x000000000802d8de 0x2 + 0x000000000802d820 0x2a ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + *fill* 0x000000000802d84a 0x2 .text.lv_meter_event - 0x000000000802d8e0 0x170 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x000000000802d84c 0x170 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o .text.draw_arcs - 0x000000000802da50 0x1f4 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x000000000802d9bc 0x1f4 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o .text.draw_ticks_and_labels - 0x000000000802dc44 0xa04 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x000000000802dbb0 0xa04 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o .text.draw_needles - 0x000000000802e648 0x3bc ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x000000000802e5b4 0x3bc ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o .text.lv_spinbox_step_next - 0x000000000802ea04 0x44 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o - 0x000000000802ea04 lv_spinbox_step_next + 0x000000000802e970 0x44 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + 0x000000000802e970 lv_spinbox_step_next .text.lv_spinbox_step_prev - 0x000000000802ea48 0x4e ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o - 0x000000000802ea48 lv_spinbox_step_prev + 0x000000000802e9b4 0x4e ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + 0x000000000802e9b4 lv_spinbox_step_prev .text.lv_spinbox_increment - 0x000000000802ea96 0x8a ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o - 0x000000000802ea96 lv_spinbox_increment + 0x000000000802ea02 0x8a ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + 0x000000000802ea02 lv_spinbox_increment .text.lv_spinbox_decrement - 0x000000000802eb20 0x8a ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o - 0x000000000802eb20 lv_spinbox_decrement - *fill* 0x000000000802ebaa 0x2 + 0x000000000802ea8c 0x8a ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + 0x000000000802ea8c lv_spinbox_decrement + *fill* 0x000000000802eb16 0x2 .text.lv_spinbox_constructor - 0x000000000802ebac 0x90 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + 0x000000000802eb18 0x90 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o .text.lv_spinbox_event - 0x000000000802ec3c 0x290 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + 0x000000000802eba8 0x290 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o .text.lv_spinbox_updatevalue - 0x000000000802eecc 0x220 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + 0x000000000802ee38 0x220 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o .text.lv_anim_set_var - 0x000000000802f0ec 0x1a ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + 0x000000000802f058 0x1a ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o .text.lv_anim_set_exec_cb - 0x000000000802f106 0x1a ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + 0x000000000802f072 0x1a ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o .text.lv_anim_set_time - 0x000000000802f120 0x1a ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + 0x000000000802f08c 0x1a ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o .text.lv_anim_set_values - 0x000000000802f13a 0x28 ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + 0x000000000802f0a6 0x28 ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o .text.lv_anim_set_path_cb - 0x000000000802f162 0x1a ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + 0x000000000802f0ce 0x1a ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o .text.lv_anim_set_repeat_count - 0x000000000802f17c 0x1c ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + 0x000000000802f0e8 0x1c ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o .text.lv_spinner_constructor - 0x000000000802f198 0xdc ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + 0x000000000802f104 0xdc ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o .text.arc_anim_start_angle - 0x000000000802f274 0x1e ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + 0x000000000802f1e0 0x1e ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o .text.arc_anim_end_angle - 0x000000000802f292 0x1e ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + 0x000000000802f1fe 0x1e ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o .text.lv_obj_get_style_pad_column - 0x000000000802f2b0 0x26 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + 0x000000000802f21c 0x26 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o .text.lv_obj_get_style_base_dir - 0x000000000802f2d6 0x26 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + 0x000000000802f242 0x26 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o .text.lv_tabview_set_act - 0x000000000802f2fc 0xd2 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o - 0x000000000802f2fc lv_tabview_set_act + 0x000000000802f268 0xd2 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + 0x000000000802f268 lv_tabview_set_act .text.lv_tabview_get_tab_act - 0x000000000802f3ce 0x1a ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o - 0x000000000802f3ce lv_tabview_get_tab_act + 0x000000000802f33a 0x1a ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + 0x000000000802f33a lv_tabview_get_tab_act .text.lv_tabview_get_content - 0x000000000802f3e8 0x1a ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o - 0x000000000802f3e8 lv_tabview_get_content + 0x000000000802f354 0x1a ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + 0x000000000802f354 lv_tabview_get_content .text.lv_tabview_get_tab_btns - 0x000000000802f402 0x1a ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o - 0x000000000802f402 lv_tabview_get_tab_btns + 0x000000000802f36e 0x1a ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + 0x000000000802f36e lv_tabview_get_tab_btns .text.lv_tabview_constructor - 0x000000000802f41c 0x1a0 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + 0x000000000802f388 0x1a0 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o .text.lv_tabview_destructor - 0x000000000802f5bc 0xb2 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o - *fill* 0x000000000802f66e 0x2 + 0x000000000802f528 0xb2 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + *fill* 0x000000000802f5da 0x2 .text.lv_tabview_event - 0x000000000802f670 0x54 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + 0x000000000802f5dc 0x54 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o .text.btns_value_changed_event_cb - 0x000000000802f6c4 0x34 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + 0x000000000802f630 0x34 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o .text.cont_scroll_end_event_cb - 0x000000000802f6f8 0xee ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o - *fill* 0x000000000802f7e6 0x2 + 0x000000000802f664 0xee ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + *fill* 0x000000000802f752 0x2 .text.lv_tileview_constructor - 0x000000000802f7e8 0x48 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o + 0x000000000802f754 0x48 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o .text.lv_tileview_tile_constructor - 0x000000000802f830 0xa0 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o + 0x000000000802f79c 0xa0 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o .text.tileview_event_cb - 0x000000000802f8d0 0x128 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o + 0x000000000802f83c 0x128 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o .text.lv_win_constructor - 0x000000000802f9f8 0x8c ./Drivers/lvgl/src/extra/widgets/win/lv_win.o + 0x000000000802f964 0x8c ./Drivers/lvgl/src/extra/widgets/win/lv_win.o .text.lv_font_get_glyph_bitmap - 0x000000000802fa84 0x26 ./Drivers/lvgl/src/font/lv_font.o - 0x000000000802fa84 lv_font_get_glyph_bitmap + 0x000000000802f9f0 0x26 ./Drivers/lvgl/src/font/lv_font.o + 0x000000000802f9f0 lv_font_get_glyph_bitmap .text.lv_font_get_glyph_dsc - 0x000000000802faaa 0x72 ./Drivers/lvgl/src/font/lv_font.o - 0x000000000802faaa lv_font_get_glyph_dsc + 0x000000000802fa16 0x72 ./Drivers/lvgl/src/font/lv_font.o + 0x000000000802fa16 lv_font_get_glyph_dsc .text.lv_font_get_glyph_width - 0x000000000802fb1c 0x3e ./Drivers/lvgl/src/font/lv_font.o - 0x000000000802fb1c lv_font_get_glyph_width + 0x000000000802fa88 0x3e ./Drivers/lvgl/src/font/lv_font.o + 0x000000000802fa88 lv_font_get_glyph_width .text.lv_font_get_bitmap_fmt_txt - 0x000000000802fb5a 0x62 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o - 0x000000000802fb5a lv_font_get_bitmap_fmt_txt + 0x000000000802fac6 0x62 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + 0x000000000802fac6 lv_font_get_bitmap_fmt_txt .text.lv_font_get_glyph_dsc_fmt_txt - 0x000000000802fbbc 0x122 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o - 0x000000000802fbbc lv_font_get_glyph_dsc_fmt_txt + 0x000000000802fb28 0x122 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + 0x000000000802fb28 lv_font_get_glyph_dsc_fmt_txt .text._lv_font_clean_up_fmt_txt - 0x000000000802fcde 0xc ./Drivers/lvgl/src/font/lv_font_fmt_txt.o - 0x000000000802fcde _lv_font_clean_up_fmt_txt - *fill* 0x000000000802fcea 0x2 + 0x000000000802fc4a 0xc ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + 0x000000000802fc4a _lv_font_clean_up_fmt_txt + *fill* 0x000000000802fc56 0x2 .text.get_glyph_dsc_id - 0x000000000802fcec 0x28c ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + 0x000000000802fc58 0x28c ./Drivers/lvgl/src/font/lv_font_fmt_txt.o .text.get_kern_value - 0x000000000802ff78 0x150 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + 0x000000000802fee4 0x150 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o .text.kern_pair_8_compare - 0x00000000080300c8 0x46 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + 0x0000000008030034 0x46 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o .text.kern_pair_16_compare - 0x000000000803010e 0x46 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + 0x000000000803007a 0x46 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o .text.unicode_list_compare - 0x0000000008030154 0x20 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + 0x00000000080300c0 0x20 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o .text.lv_color_make - 0x0000000008030174 0x52 ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x00000000080300e0 0x52 ./Drivers/lvgl/src/hal/lv_hal_disp.o .text.lv_color_hex - 0x00000000080301c6 0x46 ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x0000000008030132 0x46 ./Drivers/lvgl/src/hal/lv_hal_disp.o .text.lv_color_white - 0x000000000803020c 0x14 ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x0000000008030178 0x14 ./Drivers/lvgl/src/hal/lv_hal_disp.o .text.lv_obj_remove_style_all - 0x0000000008030220 0x20 ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x000000000803018c 0x20 ./Drivers/lvgl/src/hal/lv_hal_disp.o .text.lv_disp_drv_init - 0x0000000008030240 0x84 ./Drivers/lvgl/src/hal/lv_hal_disp.o - 0x0000000008030240 lv_disp_drv_init + 0x00000000080301ac 0x84 ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x00000000080301ac lv_disp_drv_init .text.lv_disp_draw_buf_init - 0x00000000080302c4 0x38 ./Drivers/lvgl/src/hal/lv_hal_disp.o - 0x00000000080302c4 lv_disp_draw_buf_init + 0x0000000008030230 0x38 ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x0000000008030230 lv_disp_draw_buf_init .text.lv_disp_drv_register - 0x00000000080302fc 0x1d0 ./Drivers/lvgl/src/hal/lv_hal_disp.o - 0x00000000080302fc lv_disp_drv_register + 0x0000000008030268 0x1d0 ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x0000000008030268 lv_disp_drv_register .text.lv_disp_get_default - 0x00000000080304cc 0x14 ./Drivers/lvgl/src/hal/lv_hal_disp.o - 0x00000000080304cc lv_disp_get_default + 0x0000000008030438 0x14 ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x0000000008030438 lv_disp_get_default .text.lv_disp_get_hor_res - 0x00000000080304e0 0x4c ./Drivers/lvgl/src/hal/lv_hal_disp.o - 0x00000000080304e0 lv_disp_get_hor_res + 0x000000000803044c 0x4c ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x000000000803044c lv_disp_get_hor_res .text.lv_disp_get_ver_res - 0x000000000803052c 0x4c ./Drivers/lvgl/src/hal/lv_hal_disp.o - 0x000000000803052c lv_disp_get_ver_res + 0x0000000008030498 0x4c ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x0000000008030498 lv_disp_get_ver_res .text.lv_disp_get_dpi - 0x0000000008030578 0x34 ./Drivers/lvgl/src/hal/lv_hal_disp.o - 0x0000000008030578 lv_disp_get_dpi + 0x00000000080304e4 0x34 ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x00000000080304e4 lv_disp_get_dpi .text.lv_disp_flush_ready - 0x00000000080305ac 0x22 ./Drivers/lvgl/src/hal/lv_hal_disp.o - 0x00000000080305ac lv_disp_flush_ready - *fill* 0x00000000080305ce 0x2 + 0x0000000008030518 0x22 ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x0000000008030518 lv_disp_flush_ready + *fill* 0x000000000803053a 0x2 .text.lv_disp_get_next - 0x00000000080305d0 0x30 ./Drivers/lvgl/src/hal/lv_hal_disp.o - 0x00000000080305d0 lv_disp_get_next + 0x000000000803053c 0x30 ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x000000000803053c lv_disp_get_next .text.lv_disp_get_draw_buf - 0x0000000008030600 0x18 ./Drivers/lvgl/src/hal/lv_hal_disp.o - 0x0000000008030600 lv_disp_get_draw_buf + 0x000000000803056c 0x18 ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x000000000803056c lv_disp_get_draw_buf .text.lv_indev_drv_init - 0x0000000008030618 0x44 ./Drivers/lvgl/src/hal/lv_hal_indev.o - 0x0000000008030618 lv_indev_drv_init + 0x0000000008030584 0x44 ./Drivers/lvgl/src/hal/lv_hal_indev.o + 0x0000000008030584 lv_indev_drv_init .text.lv_indev_drv_register - 0x000000000803065c 0x7c ./Drivers/lvgl/src/hal/lv_hal_indev.o - 0x000000000803065c lv_indev_drv_register + 0x00000000080305c8 0x7c ./Drivers/lvgl/src/hal/lv_hal_indev.o + 0x00000000080305c8 lv_indev_drv_register .text.lv_indev_get_next - 0x00000000080306d8 0x30 ./Drivers/lvgl/src/hal/lv_hal_indev.o - 0x00000000080306d8 lv_indev_get_next + 0x0000000008030644 0x30 ./Drivers/lvgl/src/hal/lv_hal_indev.o + 0x0000000008030644 lv_indev_get_next .text._lv_indev_read - 0x0000000008030708 0x78 ./Drivers/lvgl/src/hal/lv_hal_indev.o - 0x0000000008030708 _lv_indev_read + 0x0000000008030674 0x78 ./Drivers/lvgl/src/hal/lv_hal_indev.o + 0x0000000008030674 _lv_indev_read .text.lv_tick_inc - 0x0000000008030780 0x2c ./Drivers/lvgl/src/hal/lv_hal_tick.o - 0x0000000008030780 lv_tick_inc + 0x00000000080306ec 0x2c ./Drivers/lvgl/src/hal/lv_hal_tick.o + 0x00000000080306ec lv_tick_inc .text.lv_tick_get - 0x00000000080307ac 0x30 ./Drivers/lvgl/src/hal/lv_hal_tick.o - 0x00000000080307ac lv_tick_get + 0x0000000008030718 0x30 ./Drivers/lvgl/src/hal/lv_hal_tick.o + 0x0000000008030718 lv_tick_get .text.lv_tick_elaps - 0x00000000080307dc 0x38 ./Drivers/lvgl/src/hal/lv_hal_tick.o - 0x00000000080307dc lv_tick_elaps + 0x0000000008030748 0x38 ./Drivers/lvgl/src/hal/lv_hal_tick.o + 0x0000000008030748 lv_tick_elaps .text._lv_anim_core_init - 0x0000000008030814 0x3c ./Drivers/lvgl/src/misc/lv_anim.o - 0x0000000008030814 _lv_anim_core_init + 0x0000000008030780 0x3c ./Drivers/lvgl/src/misc/lv_anim.o + 0x0000000008030780 _lv_anim_core_init .text.lv_anim_init - 0x0000000008030850 0x4c ./Drivers/lvgl/src/misc/lv_anim.o - 0x0000000008030850 lv_anim_init + 0x00000000080307bc 0x4c ./Drivers/lvgl/src/misc/lv_anim.o + 0x00000000080307bc lv_anim_init .text.lv_anim_start - 0x000000000803089c 0xf0 ./Drivers/lvgl/src/misc/lv_anim.o - 0x000000000803089c lv_anim_start + 0x0000000008030808 0xf0 ./Drivers/lvgl/src/misc/lv_anim.o + 0x0000000008030808 lv_anim_start .text.lv_anim_del - 0x000000000803098c 0x70 ./Drivers/lvgl/src/misc/lv_anim.o - 0x000000000803098c lv_anim_del + 0x00000000080308f8 0x70 ./Drivers/lvgl/src/misc/lv_anim.o + 0x00000000080308f8 lv_anim_del .text.lv_anim_get - 0x00000000080309fc 0x50 ./Drivers/lvgl/src/misc/lv_anim.o - 0x00000000080309fc lv_anim_get + 0x0000000008030968 0x50 ./Drivers/lvgl/src/misc/lv_anim.o + 0x0000000008030968 lv_anim_get .text.lv_anim_speed_to_time - 0x0000000008030a4c 0x44 ./Drivers/lvgl/src/misc/lv_anim.o - 0x0000000008030a4c lv_anim_speed_to_time + 0x00000000080309b8 0x44 ./Drivers/lvgl/src/misc/lv_anim.o + 0x00000000080309b8 lv_anim_speed_to_time .text.lv_anim_path_linear - 0x0000000008030a90 0x4c ./Drivers/lvgl/src/misc/lv_anim.o - 0x0000000008030a90 lv_anim_path_linear + 0x00000000080309fc 0x4c ./Drivers/lvgl/src/misc/lv_anim.o + 0x00000000080309fc lv_anim_path_linear .text.lv_anim_path_ease_out - 0x0000000008030adc 0x68 ./Drivers/lvgl/src/misc/lv_anim.o - 0x0000000008030adc lv_anim_path_ease_out + 0x0000000008030a48 0x68 ./Drivers/lvgl/src/misc/lv_anim.o + 0x0000000008030a48 lv_anim_path_ease_out .text.lv_anim_path_ease_in_out - 0x0000000008030b44 0x66 ./Drivers/lvgl/src/misc/lv_anim.o - 0x0000000008030b44 lv_anim_path_ease_in_out + 0x0000000008030ab0 0x66 ./Drivers/lvgl/src/misc/lv_anim.o + 0x0000000008030ab0 lv_anim_path_ease_in_out .text.lv_anim_path_step - 0x0000000008030baa 0x28 ./Drivers/lvgl/src/misc/lv_anim.o - 0x0000000008030baa lv_anim_path_step - *fill* 0x0000000008030bd2 0x2 + 0x0000000008030b16 0x28 ./Drivers/lvgl/src/misc/lv_anim.o + 0x0000000008030b16 lv_anim_path_step + *fill* 0x0000000008030b3e 0x2 .text.anim_timer - 0x0000000008030bd4 0x190 ./Drivers/lvgl/src/misc/lv_anim.o + 0x0000000008030b40 0x190 ./Drivers/lvgl/src/misc/lv_anim.o .text.anim_ready_handler - 0x0000000008030d64 0x104 ./Drivers/lvgl/src/misc/lv_anim.o + 0x0000000008030cd0 0x104 ./Drivers/lvgl/src/misc/lv_anim.o .text.anim_mark_list_change - 0x0000000008030e68 0x3c ./Drivers/lvgl/src/misc/lv_anim.o + 0x0000000008030dd4 0x3c ./Drivers/lvgl/src/misc/lv_anim.o .text.lv_area_get_width - 0x0000000008030ea4 0x2c ./Drivers/lvgl/src/misc/lv_area.o + 0x0000000008030e10 0x2c ./Drivers/lvgl/src/misc/lv_area.o .text.lv_area_get_height - 0x0000000008030ed0 0x2c ./Drivers/lvgl/src/misc/lv_area.o + 0x0000000008030e3c 0x2c ./Drivers/lvgl/src/misc/lv_area.o .text.lv_area_set - 0x0000000008030efc 0x3c ./Drivers/lvgl/src/misc/lv_area.o - 0x0000000008030efc lv_area_set + 0x0000000008030e68 0x3c ./Drivers/lvgl/src/misc/lv_area.o + 0x0000000008030e68 lv_area_set .text.lv_area_set_width - 0x0000000008030f38 0x2e ./Drivers/lvgl/src/misc/lv_area.o - 0x0000000008030f38 lv_area_set_width + 0x0000000008030ea4 0x2e ./Drivers/lvgl/src/misc/lv_area.o + 0x0000000008030ea4 lv_area_set_width .text.lv_area_set_height - 0x0000000008030f66 0x2e ./Drivers/lvgl/src/misc/lv_area.o - 0x0000000008030f66 lv_area_set_height + 0x0000000008030ed2 0x2e ./Drivers/lvgl/src/misc/lv_area.o + 0x0000000008030ed2 lv_area_set_height .text.lv_area_get_size - 0x0000000008030f94 0x40 ./Drivers/lvgl/src/misc/lv_area.o - 0x0000000008030f94 lv_area_get_size + 0x0000000008030f00 0x40 ./Drivers/lvgl/src/misc/lv_area.o + 0x0000000008030f00 lv_area_get_size .text.lv_area_increase - 0x0000000008030fd4 0x6a ./Drivers/lvgl/src/misc/lv_area.o - 0x0000000008030fd4 lv_area_increase + 0x0000000008030f40 0x6a ./Drivers/lvgl/src/misc/lv_area.o + 0x0000000008030f40 lv_area_increase .text.lv_area_move - 0x000000000803103e 0x6a ./Drivers/lvgl/src/misc/lv_area.o - 0x000000000803103e lv_area_move + 0x0000000008030faa 0x6a ./Drivers/lvgl/src/misc/lv_area.o + 0x0000000008030faa lv_area_move .text._lv_area_intersect - 0x00000000080310a8 0xa0 ./Drivers/lvgl/src/misc/lv_area.o - 0x00000000080310a8 _lv_area_intersect + 0x0000000008031014 0xa0 ./Drivers/lvgl/src/misc/lv_area.o + 0x0000000008031014 _lv_area_intersect .text._lv_area_join - 0x0000000008031148 0x76 ./Drivers/lvgl/src/misc/lv_area.o - 0x0000000008031148 _lv_area_join + 0x00000000080310b4 0x76 ./Drivers/lvgl/src/misc/lv_area.o + 0x00000000080310b4 _lv_area_join .text._lv_area_is_point_on - 0x00000000080311be 0x24e ./Drivers/lvgl/src/misc/lv_area.o - 0x00000000080311be _lv_area_is_point_on + 0x000000000803112a 0x24e ./Drivers/lvgl/src/misc/lv_area.o + 0x000000000803112a _lv_area_is_point_on .text._lv_area_is_on - 0x000000000803140c 0x5a ./Drivers/lvgl/src/misc/lv_area.o - 0x000000000803140c _lv_area_is_on + 0x0000000008031378 0x5a ./Drivers/lvgl/src/misc/lv_area.o + 0x0000000008031378 _lv_area_is_on .text._lv_area_is_in - 0x0000000008031466 0x13c ./Drivers/lvgl/src/misc/lv_area.o - 0x0000000008031466 _lv_area_is_in + 0x00000000080313d2 0x13c ./Drivers/lvgl/src/misc/lv_area.o + 0x00000000080313d2 _lv_area_is_in .text._lv_area_is_out - 0x00000000080315a2 0x110 ./Drivers/lvgl/src/misc/lv_area.o - 0x00000000080315a2 _lv_area_is_out + 0x000000000803150e 0x110 ./Drivers/lvgl/src/misc/lv_area.o + 0x000000000803150e _lv_area_is_out .text.lv_point_within_circle - 0x00000000080316b2 0xa4 ./Drivers/lvgl/src/misc/lv_area.o - *fill* 0x0000000008031756 0x2 + 0x000000000803161e 0xa4 ./Drivers/lvgl/src/misc/lv_area.o + *fill* 0x00000000080316c2 0x2 .text.lv_color_mix - 0x0000000008031758 0x70 ./Drivers/lvgl/src/misc/lv_color.o + 0x00000000080316c4 0x70 ./Drivers/lvgl/src/misc/lv_color.o .text.lv_color_make - 0x00000000080317c8 0x52 ./Drivers/lvgl/src/misc/lv_color.o + 0x0000000008031734 0x52 ./Drivers/lvgl/src/misc/lv_color.o .text.lv_color_black - 0x000000000803181a 0x14 ./Drivers/lvgl/src/misc/lv_color.o + 0x0000000008031786 0x14 ./Drivers/lvgl/src/misc/lv_color.o .text.lv_color_fill - 0x000000000803182e 0xd4 ./Drivers/lvgl/src/misc/lv_color.o - 0x000000000803182e lv_color_fill + 0x000000000803179a 0xd4 ./Drivers/lvgl/src/misc/lv_color.o + 0x000000000803179a lv_color_fill .text.lv_color_darken - 0x0000000008031902 0x24 ./Drivers/lvgl/src/misc/lv_color.o - 0x0000000008031902 lv_color_darken - *fill* 0x0000000008031926 0x2 + 0x000000000803186e 0x24 ./Drivers/lvgl/src/misc/lv_color.o + 0x000000000803186e lv_color_darken + *fill* 0x0000000008031892 0x2 .text.lv_color_hsv_to_rgb - 0x0000000008031928 0x174 ./Drivers/lvgl/src/misc/lv_color.o - 0x0000000008031928 lv_color_hsv_to_rgb + 0x0000000008031894 0x174 ./Drivers/lvgl/src/misc/lv_color.o + 0x0000000008031894 lv_color_hsv_to_rgb .text.lv_palette_main - 0x0000000008031a9c 0x2c ./Drivers/lvgl/src/misc/lv_color.o - 0x0000000008031a9c lv_palette_main + 0x0000000008031a08 0x2c ./Drivers/lvgl/src/misc/lv_color.o + 0x0000000008031a08 lv_palette_main .text.lv_palette_lighten - 0x0000000008031ac8 0x58 ./Drivers/lvgl/src/misc/lv_color.o - 0x0000000008031ac8 lv_palette_lighten + 0x0000000008031a34 0x58 ./Drivers/lvgl/src/misc/lv_color.o + 0x0000000008031a34 lv_palette_lighten .text.lv_palette_darken - 0x0000000008031b20 0x54 ./Drivers/lvgl/src/misc/lv_color.o - 0x0000000008031b20 lv_palette_darken + 0x0000000008031a8c 0x54 ./Drivers/lvgl/src/misc/lv_color.o + 0x0000000008031a8c lv_palette_darken .text._lv_fs_init - 0x0000000008031b74 0x14 ./Drivers/lvgl/src/misc/lv_fs.o - 0x0000000008031b74 _lv_fs_init + 0x0000000008031ae0 0x14 ./Drivers/lvgl/src/misc/lv_fs.o + 0x0000000008031ae0 _lv_fs_init .text.lv_fs_open - 0x0000000008031b88 0xc6 ./Drivers/lvgl/src/misc/lv_fs.o - 0x0000000008031b88 lv_fs_open + 0x0000000008031af4 0xc6 ./Drivers/lvgl/src/misc/lv_fs.o + 0x0000000008031af4 lv_fs_open .text.lv_fs_close - 0x0000000008031c4e 0x86 ./Drivers/lvgl/src/misc/lv_fs.o - 0x0000000008031c4e lv_fs_close + 0x0000000008031bba 0x86 ./Drivers/lvgl/src/misc/lv_fs.o + 0x0000000008031bba lv_fs_close .text.lv_fs_read_cached - 0x0000000008031cd4 0x1e2 ./Drivers/lvgl/src/misc/lv_fs.o + 0x0000000008031c40 0x1e2 ./Drivers/lvgl/src/misc/lv_fs.o .text.lv_fs_read - 0x0000000008031eb6 0x8a ./Drivers/lvgl/src/misc/lv_fs.o - 0x0000000008031eb6 lv_fs_read + 0x0000000008031e22 0x8a ./Drivers/lvgl/src/misc/lv_fs.o + 0x0000000008031e22 lv_fs_read .text.lv_fs_seek - 0x0000000008031f40 0x154 ./Drivers/lvgl/src/misc/lv_fs.o - 0x0000000008031f40 lv_fs_seek + 0x0000000008031eac 0x154 ./Drivers/lvgl/src/misc/lv_fs.o + 0x0000000008031eac lv_fs_seek .text.lv_fs_get_drv - 0x0000000008032094 0x44 ./Drivers/lvgl/src/misc/lv_fs.o - 0x0000000008032094 lv_fs_get_drv + 0x0000000008032000 0x44 ./Drivers/lvgl/src/misc/lv_fs.o + 0x0000000008032000 lv_fs_get_drv .text.lv_fs_get_ext - 0x00000000080320d8 0x60 ./Drivers/lvgl/src/misc/lv_fs.o - 0x00000000080320d8 lv_fs_get_ext + 0x0000000008032044 0x60 ./Drivers/lvgl/src/misc/lv_fs.o + 0x0000000008032044 lv_fs_get_ext .text.lv_fs_get_real_path - 0x0000000008032138 0x28 ./Drivers/lvgl/src/misc/lv_fs.o + 0x00000000080320a4 0x28 ./Drivers/lvgl/src/misc/lv_fs.o .text._lv_ll_init - 0x0000000008032160 0x30 ./Drivers/lvgl/src/misc/lv_ll.o - 0x0000000008032160 _lv_ll_init + 0x00000000080320cc 0x30 ./Drivers/lvgl/src/misc/lv_ll.o + 0x00000000080320cc _lv_ll_init .text._lv_ll_ins_head - 0x0000000008032190 0x68 ./Drivers/lvgl/src/misc/lv_ll.o - 0x0000000008032190 _lv_ll_ins_head + 0x00000000080320fc 0x68 ./Drivers/lvgl/src/misc/lv_ll.o + 0x00000000080320fc _lv_ll_ins_head .text._lv_ll_ins_tail - 0x00000000080321f8 0x68 ./Drivers/lvgl/src/misc/lv_ll.o - 0x00000000080321f8 _lv_ll_ins_tail + 0x0000000008032164 0x68 ./Drivers/lvgl/src/misc/lv_ll.o + 0x0000000008032164 _lv_ll_ins_tail .text._lv_ll_remove - 0x0000000008032260 0xba ./Drivers/lvgl/src/misc/lv_ll.o - 0x0000000008032260 _lv_ll_remove + 0x00000000080321cc 0xba ./Drivers/lvgl/src/misc/lv_ll.o + 0x00000000080321cc _lv_ll_remove .text._lv_ll_clear - 0x000000000803231a 0x42 ./Drivers/lvgl/src/misc/lv_ll.o - 0x000000000803231a _lv_ll_clear + 0x0000000008032286 0x42 ./Drivers/lvgl/src/misc/lv_ll.o + 0x0000000008032286 _lv_ll_clear .text._lv_ll_get_head - 0x000000000803235c 0x20 ./Drivers/lvgl/src/misc/lv_ll.o - 0x000000000803235c _lv_ll_get_head + 0x00000000080322c8 0x20 ./Drivers/lvgl/src/misc/lv_ll.o + 0x00000000080322c8 _lv_ll_get_head .text._lv_ll_get_tail - 0x000000000803237c 0x20 ./Drivers/lvgl/src/misc/lv_ll.o - 0x000000000803237c _lv_ll_get_tail + 0x00000000080322e8 0x20 ./Drivers/lvgl/src/misc/lv_ll.o + 0x00000000080322e8 _lv_ll_get_tail .text._lv_ll_get_next - 0x000000000803239c 0x28 ./Drivers/lvgl/src/misc/lv_ll.o - 0x000000000803239c _lv_ll_get_next + 0x0000000008032308 0x28 ./Drivers/lvgl/src/misc/lv_ll.o + 0x0000000008032308 _lv_ll_get_next .text._lv_ll_get_prev - 0x00000000080323c4 0x26 ./Drivers/lvgl/src/misc/lv_ll.o - 0x00000000080323c4 _lv_ll_get_prev + 0x0000000008032330 0x26 ./Drivers/lvgl/src/misc/lv_ll.o + 0x0000000008032330 _lv_ll_get_prev .text._lv_ll_get_len - 0x00000000080323ea 0x36 ./Drivers/lvgl/src/misc/lv_ll.o - 0x00000000080323ea _lv_ll_get_len + 0x0000000008032356 0x36 ./Drivers/lvgl/src/misc/lv_ll.o + 0x0000000008032356 _lv_ll_get_len .text._lv_ll_is_empty - 0x0000000008032420 0x32 ./Drivers/lvgl/src/misc/lv_ll.o - 0x0000000008032420 _lv_ll_is_empty + 0x000000000803238c 0x32 ./Drivers/lvgl/src/misc/lv_ll.o + 0x000000000803238c _lv_ll_is_empty .text.node_set_prev - 0x0000000008032452 0x3c ./Drivers/lvgl/src/misc/lv_ll.o + 0x00000000080323be 0x3c ./Drivers/lvgl/src/misc/lv_ll.o .text.node_set_next - 0x000000000803248e 0x3e ./Drivers/lvgl/src/misc/lv_ll.o + 0x00000000080323fa 0x3e ./Drivers/lvgl/src/misc/lv_ll.o .text.lv_trigo_sin - 0x00000000080324cc 0xdc ./Drivers/lvgl/src/misc/lv_math.o - 0x00000000080324cc lv_trigo_sin + 0x0000000008032438 0xdc ./Drivers/lvgl/src/misc/lv_math.o + 0x0000000008032438 lv_trigo_sin .text.lv_bezier3 - 0x00000000080325a8 0xa2 ./Drivers/lvgl/src/misc/lv_math.o - 0x00000000080325a8 lv_bezier3 + 0x0000000008032514 0xa2 ./Drivers/lvgl/src/misc/lv_math.o + 0x0000000008032514 lv_bezier3 .text.lv_atan2 - 0x000000000803264a 0x142 ./Drivers/lvgl/src/misc/lv_math.o - 0x000000000803264a lv_atan2 - .text.lv_pow 0x000000000803278c 0x96 ./Drivers/lvgl/src/misc/lv_math.o - 0x000000000803278c lv_pow - .text.lv_map 0x0000000008032822 0x56 ./Drivers/lvgl/src/misc/lv_math.o - 0x0000000008032822 lv_map + 0x00000000080325b6 0x142 ./Drivers/lvgl/src/misc/lv_math.o + 0x00000000080325b6 lv_atan2 + .text.lv_pow 0x00000000080326f8 0x96 ./Drivers/lvgl/src/misc/lv_math.o + 0x00000000080326f8 lv_pow + .text.lv_map 0x000000000803278e 0x56 ./Drivers/lvgl/src/misc/lv_math.o + 0x000000000803278e lv_map .text.lv_mem_init - 0x0000000008032878 0x20 ./Drivers/lvgl/src/misc/lv_mem.o - 0x0000000008032878 lv_mem_init + 0x00000000080327e4 0x20 ./Drivers/lvgl/src/misc/lv_mem.o + 0x00000000080327e4 lv_mem_init .text.lv_mem_alloc - 0x0000000008032898 0x44 ./Drivers/lvgl/src/misc/lv_mem.o - 0x0000000008032898 lv_mem_alloc + 0x0000000008032804 0x44 ./Drivers/lvgl/src/misc/lv_mem.o + 0x0000000008032804 lv_mem_alloc .text.lv_mem_free - 0x00000000080328dc 0x38 ./Drivers/lvgl/src/misc/lv_mem.o - 0x00000000080328dc lv_mem_free + 0x0000000008032848 0x38 ./Drivers/lvgl/src/misc/lv_mem.o + 0x0000000008032848 lv_mem_free .text.lv_mem_realloc - 0x0000000008032914 0x58 ./Drivers/lvgl/src/misc/lv_mem.o - 0x0000000008032914 lv_mem_realloc + 0x0000000008032880 0x58 ./Drivers/lvgl/src/misc/lv_mem.o + 0x0000000008032880 lv_mem_realloc .text.lv_mem_monitor - 0x000000000803296c 0x94 ./Drivers/lvgl/src/misc/lv_mem.o - 0x000000000803296c lv_mem_monitor + 0x00000000080328d8 0x94 ./Drivers/lvgl/src/misc/lv_mem.o + 0x00000000080328d8 lv_mem_monitor .text.lv_mem_buf_get - 0x0000000008032a00 0x158 ./Drivers/lvgl/src/misc/lv_mem.o - 0x0000000008032a00 lv_mem_buf_get + 0x000000000803296c 0x158 ./Drivers/lvgl/src/misc/lv_mem.o + 0x000000000803296c lv_mem_buf_get .text.lv_mem_buf_release - 0x0000000008032b58 0x48 ./Drivers/lvgl/src/misc/lv_mem.o - 0x0000000008032b58 lv_mem_buf_release + 0x0000000008032ac4 0x48 ./Drivers/lvgl/src/misc/lv_mem.o + 0x0000000008032ac4 lv_mem_buf_release .text.lv_mem_buf_free_all - 0x0000000008032ba0 0x68 ./Drivers/lvgl/src/misc/lv_mem.o - 0x0000000008032ba0 lv_mem_buf_free_all + 0x0000000008032b0c 0x68 ./Drivers/lvgl/src/misc/lv_mem.o + 0x0000000008032b0c lv_mem_buf_free_all .text.lv_memcpy - 0x0000000008032c08 0x42e ./Drivers/lvgl/src/misc/lv_mem.o - 0x0000000008032c08 lv_memcpy + 0x0000000008032b74 0x42e ./Drivers/lvgl/src/misc/lv_mem.o + 0x0000000008032b74 lv_memcpy .text.lv_memset - 0x0000000008033036 0x11a ./Drivers/lvgl/src/misc/lv_mem.o - 0x0000000008033036 lv_memset + 0x0000000008032fa2 0x11a ./Drivers/lvgl/src/misc/lv_mem.o + 0x0000000008032fa2 lv_memset .text.lv_memset_00 - 0x0000000008033150 0x100 ./Drivers/lvgl/src/misc/lv_mem.o - 0x0000000008033150 lv_memset_00 + 0x00000000080330bc 0x100 ./Drivers/lvgl/src/misc/lv_mem.o + 0x00000000080330bc lv_memset_00 .text.lv_memset_ff - 0x0000000008033250 0x112 ./Drivers/lvgl/src/misc/lv_mem.o - 0x0000000008033250 lv_memset_ff + 0x00000000080331bc 0x112 ./Drivers/lvgl/src/misc/lv_mem.o + 0x00000000080331bc lv_memset_ff .text.lv_mem_walker - 0x0000000008033362 0x54 ./Drivers/lvgl/src/misc/lv_mem.o + 0x00000000080332ce 0x54 ./Drivers/lvgl/src/misc/lv_mem.o .text._out_buffer - 0x00000000080333b6 0x2c ./Drivers/lvgl/src/misc/lv_printf.o + 0x0000000008033322 0x2c ./Drivers/lvgl/src/misc/lv_printf.o .text._out_null - 0x00000000080333e2 0x1a ./Drivers/lvgl/src/misc/lv_printf.o + 0x000000000803334e 0x1a ./Drivers/lvgl/src/misc/lv_printf.o .text._strnlen_s - 0x00000000080333fc 0x38 ./Drivers/lvgl/src/misc/lv_printf.o + 0x0000000008033368 0x38 ./Drivers/lvgl/src/misc/lv_printf.o .text._is_digit - 0x0000000008033434 0x2c ./Drivers/lvgl/src/misc/lv_printf.o - .text._atoi 0x0000000008033460 0x48 ./Drivers/lvgl/src/misc/lv_printf.o + 0x00000000080333a0 0x2c ./Drivers/lvgl/src/misc/lv_printf.o + .text._atoi 0x00000000080333cc 0x48 ./Drivers/lvgl/src/misc/lv_printf.o .text._out_rev - 0x00000000080334a8 0xa0 ./Drivers/lvgl/src/misc/lv_printf.o + 0x0000000008033414 0xa0 ./Drivers/lvgl/src/misc/lv_printf.o .text._ntoa_format - 0x0000000008033548 0x1b8 ./Drivers/lvgl/src/misc/lv_printf.o + 0x00000000080334b4 0x1b8 ./Drivers/lvgl/src/misc/lv_printf.o .text._ntoa_long - 0x0000000008033700 0xcc ./Drivers/lvgl/src/misc/lv_printf.o + 0x000000000803366c 0xcc ./Drivers/lvgl/src/misc/lv_printf.o .text._ntoa_long_long - 0x00000000080337cc 0xda ./Drivers/lvgl/src/misc/lv_printf.o - *fill* 0x00000000080338a6 0x2 + 0x0000000008033738 0xda ./Drivers/lvgl/src/misc/lv_printf.o + *fill* 0x0000000008033812 0x2 .text._vsnprintf - 0x00000000080338a8 0x7f0 ./Drivers/lvgl/src/misc/lv_printf.o + 0x0000000008033814 0x7f0 ./Drivers/lvgl/src/misc/lv_printf.o .text.lv_snprintf - 0x0000000008034098 0x38 ./Drivers/lvgl/src/misc/lv_printf.o - 0x0000000008034098 lv_snprintf + 0x0000000008034004 0x38 ./Drivers/lvgl/src/misc/lv_printf.o + 0x0000000008034004 lv_snprintf .text.lv_vsnprintf - 0x00000000080340d0 0x2c ./Drivers/lvgl/src/misc/lv_printf.o - 0x00000000080340d0 lv_vsnprintf + 0x000000000803403c 0x2c ./Drivers/lvgl/src/misc/lv_printf.o + 0x000000000803403c lv_vsnprintf .text.lv_color_make - 0x00000000080340fc 0x52 ./Drivers/lvgl/src/misc/lv_style.o + 0x0000000008034068 0x52 ./Drivers/lvgl/src/misc/lv_style.o .text.lv_color_white - 0x000000000803414e 0x14 ./Drivers/lvgl/src/misc/lv_style.o + 0x00000000080340ba 0x14 ./Drivers/lvgl/src/misc/lv_style.o .text.lv_color_black - 0x0000000008034162 0x14 ./Drivers/lvgl/src/misc/lv_style.o + 0x00000000080340ce 0x14 ./Drivers/lvgl/src/misc/lv_style.o .text.lv_style_get_prop_inlined - 0x0000000008034176 0xde ./Drivers/lvgl/src/misc/lv_style.o + 0x00000000080340e2 0xde ./Drivers/lvgl/src/misc/lv_style.o .text.lv_style_init - 0x0000000008034254 0x18 ./Drivers/lvgl/src/misc/lv_style.o - 0x0000000008034254 lv_style_init + 0x00000000080341c0 0x18 ./Drivers/lvgl/src/misc/lv_style.o + 0x00000000080341c0 lv_style_init .text.lv_style_reset - 0x000000000803426c 0x3a ./Drivers/lvgl/src/misc/lv_style.o - 0x000000000803426c lv_style_reset - *fill* 0x00000000080342a6 0x2 + 0x00000000080341d8 0x3a ./Drivers/lvgl/src/misc/lv_style.o + 0x00000000080341d8 lv_style_reset + *fill* 0x0000000008034212 0x2 .text.lv_style_register_prop - 0x00000000080342a8 0x20 ./Drivers/lvgl/src/misc/lv_style.o - 0x00000000080342a8 lv_style_register_prop + 0x0000000008034214 0x20 ./Drivers/lvgl/src/misc/lv_style.o + 0x0000000008034214 lv_style_register_prop .text.lv_style_remove_prop - 0x00000000080342c8 0x1a6 ./Drivers/lvgl/src/misc/lv_style.o - 0x00000000080342c8 lv_style_remove_prop + 0x0000000008034234 0x1a6 ./Drivers/lvgl/src/misc/lv_style.o + 0x0000000008034234 lv_style_remove_prop .text.lv_style_set_prop - 0x000000000803446e 0x212 ./Drivers/lvgl/src/misc/lv_style.o - 0x000000000803446e lv_style_set_prop + 0x00000000080343da 0x212 ./Drivers/lvgl/src/misc/lv_style.o + 0x00000000080343da lv_style_set_prop .text.lv_style_get_prop - 0x0000000008034680 0x24 ./Drivers/lvgl/src/misc/lv_style.o - 0x0000000008034680 lv_style_get_prop + 0x00000000080345ec 0x24 ./Drivers/lvgl/src/misc/lv_style.o + 0x00000000080345ec lv_style_get_prop .text.lv_style_transition_dsc_init - 0x00000000080346a4 0x4c ./Drivers/lvgl/src/misc/lv_style.o - 0x00000000080346a4 lv_style_transition_dsc_init + 0x0000000008034610 0x4c ./Drivers/lvgl/src/misc/lv_style.o + 0x0000000008034610 lv_style_transition_dsc_init .text.lv_style_prop_get_default - 0x00000000080346f0 0x1a0 ./Drivers/lvgl/src/misc/lv_style.o - 0x00000000080346f0 lv_style_prop_get_default + 0x000000000803465c 0x1a0 ./Drivers/lvgl/src/misc/lv_style.o + 0x000000000803465c lv_style_prop_get_default .text.lv_style_is_empty - 0x0000000008034890 0x20 ./Drivers/lvgl/src/misc/lv_style.o - 0x0000000008034890 lv_style_is_empty + 0x00000000080347fc 0x20 ./Drivers/lvgl/src/misc/lv_style.o + 0x00000000080347fc lv_style_is_empty .text._lv_style_get_prop_group - 0x00000000080348b0 0x2e ./Drivers/lvgl/src/misc/lv_style.o - 0x00000000080348b0 _lv_style_get_prop_group + 0x000000000803481c 0x2e ./Drivers/lvgl/src/misc/lv_style.o + 0x000000000803481c _lv_style_get_prop_group .text.lv_style_set_width - 0x00000000080348de 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x00000000080348de lv_style_set_width + 0x000000000803484a 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x000000000803484a lv_style_set_width .text.lv_style_set_max_width - 0x0000000008034904 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034904 lv_style_set_max_width + 0x0000000008034870 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034870 lv_style_set_max_width .text.lv_style_set_height - 0x000000000803492a 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x000000000803492a lv_style_set_height + 0x0000000008034896 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034896 lv_style_set_height .text.lv_style_set_max_height - 0x0000000008034950 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034950 lv_style_set_max_height + 0x00000000080348bc 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x00000000080348bc lv_style_set_max_height .text.lv_style_set_transform_width - 0x0000000008034976 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034976 lv_style_set_transform_width + 0x00000000080348e2 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x00000000080348e2 lv_style_set_transform_width .text.lv_style_set_transform_height - 0x000000000803499c 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x000000000803499c lv_style_set_transform_height + 0x0000000008034908 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034908 lv_style_set_transform_height .text.lv_style_set_pad_top - 0x00000000080349c2 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x00000000080349c2 lv_style_set_pad_top + 0x000000000803492e 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x000000000803492e lv_style_set_pad_top .text.lv_style_set_pad_bottom - 0x00000000080349e8 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x00000000080349e8 lv_style_set_pad_bottom + 0x0000000008034954 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034954 lv_style_set_pad_bottom .text.lv_style_set_pad_left - 0x0000000008034a0e 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034a0e lv_style_set_pad_left + 0x000000000803497a 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x000000000803497a lv_style_set_pad_left .text.lv_style_set_pad_right - 0x0000000008034a34 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034a34 lv_style_set_pad_right + 0x00000000080349a0 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x00000000080349a0 lv_style_set_pad_right .text.lv_style_set_pad_row - 0x0000000008034a5a 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034a5a lv_style_set_pad_row + 0x00000000080349c6 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x00000000080349c6 lv_style_set_pad_row .text.lv_style_set_pad_column - 0x0000000008034a80 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034a80 lv_style_set_pad_column + 0x00000000080349ec 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x00000000080349ec lv_style_set_pad_column .text.lv_style_set_bg_color - 0x0000000008034aa6 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034aa6 lv_style_set_bg_color + 0x0000000008034a12 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034a12 lv_style_set_bg_color .text.lv_style_set_bg_opa - 0x0000000008034aca 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034aca lv_style_set_bg_opa + 0x0000000008034a36 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034a36 lv_style_set_bg_opa .text.lv_style_set_bg_grad_color - 0x0000000008034aec 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034aec lv_style_set_bg_grad_color + 0x0000000008034a58 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034a58 lv_style_set_bg_grad_color .text.lv_style_set_bg_img_src - 0x0000000008034b10 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034b10 lv_style_set_bg_img_src + 0x0000000008034a7c 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034a7c lv_style_set_bg_img_src .text.lv_style_set_border_color - 0x0000000008034b32 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034b32 lv_style_set_border_color + 0x0000000008034a9e 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034a9e lv_style_set_border_color .text.lv_style_set_border_opa - 0x0000000008034b56 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034b56 lv_style_set_border_opa + 0x0000000008034ac2 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034ac2 lv_style_set_border_opa .text.lv_style_set_border_width - 0x0000000008034b78 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034b78 lv_style_set_border_width + 0x0000000008034ae4 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034ae4 lv_style_set_border_width .text.lv_style_set_border_side - 0x0000000008034b9e 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034b9e lv_style_set_border_side + 0x0000000008034b0a 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034b0a lv_style_set_border_side .text.lv_style_set_border_post - 0x0000000008034bc0 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034bc0 lv_style_set_border_post + 0x0000000008034b2c 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034b2c lv_style_set_border_post .text.lv_style_set_outline_width - 0x0000000008034be2 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034be2 lv_style_set_outline_width + 0x0000000008034b4e 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034b4e lv_style_set_outline_width .text.lv_style_set_outline_color - 0x0000000008034c08 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034c08 lv_style_set_outline_color + 0x0000000008034b74 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034b74 lv_style_set_outline_color .text.lv_style_set_outline_opa - 0x0000000008034c2c 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034c2c lv_style_set_outline_opa + 0x0000000008034b98 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034b98 lv_style_set_outline_opa .text.lv_style_set_outline_pad - 0x0000000008034c50 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034c50 lv_style_set_outline_pad + 0x0000000008034bbc 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034bbc lv_style_set_outline_pad .text.lv_style_set_shadow_width - 0x0000000008034c76 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034c76 lv_style_set_shadow_width + 0x0000000008034be2 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034be2 lv_style_set_shadow_width .text.lv_style_set_shadow_ofs_y - 0x0000000008034c9c 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034c9c lv_style_set_shadow_ofs_y + 0x0000000008034c08 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034c08 lv_style_set_shadow_ofs_y .text.lv_style_set_shadow_spread - 0x0000000008034cc2 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034cc2 lv_style_set_shadow_spread + 0x0000000008034c2e 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034c2e lv_style_set_shadow_spread .text.lv_style_set_shadow_color - 0x0000000008034ce8 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034ce8 lv_style_set_shadow_color + 0x0000000008034c54 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034c54 lv_style_set_shadow_color .text.lv_style_set_shadow_opa - 0x0000000008034d0c 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034d0c lv_style_set_shadow_opa + 0x0000000008034c78 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034c78 lv_style_set_shadow_opa .text.lv_style_set_line_width - 0x0000000008034d30 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034d30 lv_style_set_line_width + 0x0000000008034c9c 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034c9c lv_style_set_line_width .text.lv_style_set_line_color - 0x0000000008034d56 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034d56 lv_style_set_line_color + 0x0000000008034cc2 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034cc2 lv_style_set_line_color .text.lv_style_set_arc_width - 0x0000000008034d7a 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034d7a lv_style_set_arc_width + 0x0000000008034ce6 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034ce6 lv_style_set_arc_width .text.lv_style_set_arc_rounded - 0x0000000008034da0 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034da0 lv_style_set_arc_rounded + 0x0000000008034d0c 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034d0c lv_style_set_arc_rounded .text.lv_style_set_arc_color - 0x0000000008034dc2 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034dc2 lv_style_set_arc_color + 0x0000000008034d2e 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034d2e lv_style_set_arc_color .text.lv_style_set_text_color - 0x0000000008034de6 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034de6 lv_style_set_text_color + 0x0000000008034d52 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034d52 lv_style_set_text_color .text.lv_style_set_text_font - 0x0000000008034e0c 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034e0c lv_style_set_text_font + 0x0000000008034d78 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034d78 lv_style_set_text_font .text.lv_style_set_text_line_space - 0x0000000008034e2e 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034e2e lv_style_set_text_line_space + 0x0000000008034d9a 0x26 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034d9a lv_style_set_text_line_space .text.lv_style_set_text_align - 0x0000000008034e54 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034e54 lv_style_set_text_align + 0x0000000008034dc0 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034dc0 lv_style_set_text_align .text.lv_style_set_radius - 0x0000000008034e78 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034e78 lv_style_set_radius + 0x0000000008034de4 0x24 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034de4 lv_style_set_radius .text.lv_style_set_clip_corner - 0x0000000008034e9c 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034e9c lv_style_set_clip_corner + 0x0000000008034e08 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034e08 lv_style_set_clip_corner .text.lv_style_set_color_filter_dsc - 0x0000000008034ebe 0x20 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034ebe lv_style_set_color_filter_dsc + 0x0000000008034e2a 0x20 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034e2a lv_style_set_color_filter_dsc .text.lv_style_set_color_filter_opa - 0x0000000008034ede 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034ede lv_style_set_color_filter_opa + 0x0000000008034e4a 0x22 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034e4a lv_style_set_color_filter_opa .text.lv_style_set_anim_time - 0x0000000008034f00 0x20 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034f00 lv_style_set_anim_time + 0x0000000008034e6c 0x20 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034e6c lv_style_set_anim_time .text.lv_style_set_transition - 0x0000000008034f20 0x20 ./Drivers/lvgl/src/misc/lv_style_gen.o - 0x0000000008034f20 lv_style_set_transition + 0x0000000008034e8c 0x20 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000008034e8c lv_style_set_transition .text._lv_timer_core_init - 0x0000000008034f40 0x1c ./Drivers/lvgl/src/misc/lv_timer.o - 0x0000000008034f40 _lv_timer_core_init + 0x0000000008034eac 0x1c ./Drivers/lvgl/src/misc/lv_timer.o + 0x0000000008034eac _lv_timer_core_init .text.lv_timer_handler - 0x0000000008034f5c 0x194 ./Drivers/lvgl/src/misc/lv_timer.o - 0x0000000008034f5c lv_timer_handler + 0x0000000008034ec8 0x194 ./Drivers/lvgl/src/misc/lv_timer.o + 0x0000000008034ec8 lv_timer_handler .text.lv_timer_create - 0x00000000080350f0 0x70 ./Drivers/lvgl/src/misc/lv_timer.o - 0x00000000080350f0 lv_timer_create + 0x000000000803505c 0x70 ./Drivers/lvgl/src/misc/lv_timer.o + 0x000000000803505c lv_timer_create .text.lv_timer_del - 0x0000000008035160 0x2c ./Drivers/lvgl/src/misc/lv_timer.o - 0x0000000008035160 lv_timer_del + 0x00000000080350cc 0x2c ./Drivers/lvgl/src/misc/lv_timer.o + 0x00000000080350cc lv_timer_del .text.lv_timer_pause - 0x000000000803518c 0x1c ./Drivers/lvgl/src/misc/lv_timer.o - 0x000000000803518c lv_timer_pause + 0x00000000080350f8 0x1c ./Drivers/lvgl/src/misc/lv_timer.o + 0x00000000080350f8 lv_timer_pause .text.lv_timer_resume - 0x00000000080351a8 0x1c ./Drivers/lvgl/src/misc/lv_timer.o - 0x00000000080351a8 lv_timer_resume + 0x0000000008035114 0x1c ./Drivers/lvgl/src/misc/lv_timer.o + 0x0000000008035114 lv_timer_resume .text.lv_timer_ready - 0x00000000080351c4 0x22 ./Drivers/lvgl/src/misc/lv_timer.o - 0x00000000080351c4 lv_timer_ready - *fill* 0x00000000080351e6 0x2 + 0x0000000008035130 0x22 ./Drivers/lvgl/src/misc/lv_timer.o + 0x0000000008035130 lv_timer_ready + *fill* 0x0000000008035152 0x2 .text.lv_timer_enable - 0x00000000080351e8 0x20 ./Drivers/lvgl/src/misc/lv_timer.o - 0x00000000080351e8 lv_timer_enable + 0x0000000008035154 0x20 ./Drivers/lvgl/src/misc/lv_timer.o + 0x0000000008035154 lv_timer_enable .text.lv_timer_exec - 0x0000000008035208 0x90 ./Drivers/lvgl/src/misc/lv_timer.o + 0x0000000008035174 0x90 ./Drivers/lvgl/src/misc/lv_timer.o .text.lv_timer_time_remaining - 0x0000000008035298 0x32 ./Drivers/lvgl/src/misc/lv_timer.o + 0x0000000008035204 0x32 ./Drivers/lvgl/src/misc/lv_timer.o .text.tlsf_ffs - 0x00000000080352ca 0x28 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035236 0x28 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.tlsf_fls - 0x00000000080352f2 0x2c ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x000000000803525e 0x2c ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_size - 0x000000000803531e 0x20 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x000000000803528a 0x20 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_set_size - 0x000000000803533e 0x2c ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x00000000080352aa 0x2c ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_is_last - 0x000000000803536a 0x22 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x00000000080352d6 0x22 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_is_free - 0x000000000803538c 0x1a ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x00000000080352f8 0x1a ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_set_free - 0x00000000080353a6 0x1e ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035312 0x1e ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_set_used - 0x00000000080353c4 0x20 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035330 0x20 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_is_prev_free - 0x00000000080353e4 0x1a ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035350 0x1a ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_set_prev_free - 0x00000000080353fe 0x1e ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x000000000803536a 0x1e ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_set_prev_used - 0x000000000803541c 0x20 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035388 0x20 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_from_ptr - 0x000000000803543c 0x1a ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x00000000080353a8 0x1a ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_to_ptr - 0x0000000008035456 0x18 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x00000000080353c2 0x18 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.offset_to_block - 0x000000000803546e 0x1a ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x00000000080353da 0x1a ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_prev - 0x0000000008035488 0x22 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x00000000080353f4 0x22 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_next - 0x00000000080354aa 0x3e ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035416 0x3e ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_link_next - 0x00000000080354e8 0x20 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035454 0x20 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_mark_as_free - 0x0000000008035508 0x24 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035474 0x24 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_mark_as_used - 0x000000000803552c 0x24 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035498 0x24 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.align_up - 0x0000000008035550 0x30 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x00000000080354bc 0x30 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.align_down - 0x0000000008035580 0x2a ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x00000000080354ec 0x2a ./Drivers/lvgl/src/misc/lv_tlsf.o .text.align_ptr - 0x00000000080355aa 0x34 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035516 0x34 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.adjust_request_size - 0x00000000080355de 0x3e ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x000000000803554a 0x3e ./Drivers/lvgl/src/misc/lv_tlsf.o .text.mapping_insert - 0x000000000803561c 0x56 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035588 0x56 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.mapping_search - 0x0000000008035672 0x40 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x00000000080355de 0x40 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.search_suitable_block - 0x00000000080356b2 0xa2 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x000000000803561e 0xa2 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.remove_free_block - 0x0000000008035754 0xbc ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x00000000080356c0 0xbc ./Drivers/lvgl/src/misc/lv_tlsf.o .text.insert_free_block - 0x0000000008035810 0xb4 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x000000000803577c 0xb4 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_remove - 0x00000000080358c4 0x32 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035830 0x32 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_insert - 0x00000000080358f6 0x32 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035862 0x32 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_can_split - 0x0000000008035928 0x28 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035894 0x28 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_split - 0x0000000008035950 0x9c ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x00000000080358bc 0x9c ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_absorb - 0x00000000080359ec 0x3e ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035958 0x3e ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_merge_prev - 0x0000000008035a2a 0x50 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035996 0x50 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_merge_next - 0x0000000008035a7a 0x50 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x00000000080359e6 0x50 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_trim_free - 0x0000000008035aca 0x4e ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035a36 0x4e ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_trim_used - 0x0000000008035b18 0x52 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035a84 0x52 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_locate_free - 0x0000000008035b6a 0x70 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035ad6 0x70 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.block_prepare_used - 0x0000000008035bda 0x40 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035b46 0x40 ./Drivers/lvgl/src/misc/lv_tlsf.o .text.control_constructor - 0x0000000008035c1a 0x6c ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035b86 0x6c ./Drivers/lvgl/src/misc/lv_tlsf.o .text.default_walker - 0x0000000008035c86 0x18 ./Drivers/lvgl/src/misc/lv_tlsf.o - *fill* 0x0000000008035c9e 0x2 + 0x0000000008035bf2 0x18 ./Drivers/lvgl/src/misc/lv_tlsf.o + *fill* 0x0000000008035c0a 0x2 .text.lv_tlsf_walk_pool - 0x0000000008035ca0 0x80 ./Drivers/lvgl/src/misc/lv_tlsf.o - 0x0000000008035ca0 lv_tlsf_walk_pool + 0x0000000008035c0c 0x80 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035c0c lv_tlsf_walk_pool .text.lv_tlsf_size - 0x0000000008035d20 0x10 ./Drivers/lvgl/src/misc/lv_tlsf.o - 0x0000000008035d20 lv_tlsf_size + 0x0000000008035c8c 0x10 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035c8c lv_tlsf_size .text.lv_tlsf_pool_overhead - 0x0000000008035d30 0x10 ./Drivers/lvgl/src/misc/lv_tlsf.o - 0x0000000008035d30 lv_tlsf_pool_overhead + 0x0000000008035c9c 0x10 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035c9c lv_tlsf_pool_overhead .text.lv_tlsf_add_pool - 0x0000000008035d40 0x96 ./Drivers/lvgl/src/misc/lv_tlsf.o - 0x0000000008035d40 lv_tlsf_add_pool + 0x0000000008035cac 0x96 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035cac lv_tlsf_add_pool .text.lv_tlsf_create - 0x0000000008035dd6 0x26 ./Drivers/lvgl/src/misc/lv_tlsf.o - 0x0000000008035dd6 lv_tlsf_create + 0x0000000008035d42 0x26 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035d42 lv_tlsf_create .text.lv_tlsf_create_with_pool - 0x0000000008035dfc 0x3a ./Drivers/lvgl/src/misc/lv_tlsf.o - 0x0000000008035dfc lv_tlsf_create_with_pool + 0x0000000008035d68 0x3a ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035d68 lv_tlsf_create_with_pool .text.lv_tlsf_get_pool - 0x0000000008035e36 0x1a ./Drivers/lvgl/src/misc/lv_tlsf.o - 0x0000000008035e36 lv_tlsf_get_pool + 0x0000000008035da2 0x1a ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035da2 lv_tlsf_get_pool .text.lv_tlsf_malloc - 0x0000000008035e50 0x36 ./Drivers/lvgl/src/misc/lv_tlsf.o - 0x0000000008035e50 lv_tlsf_malloc + 0x0000000008035dbc 0x36 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035dbc lv_tlsf_malloc .text.lv_tlsf_free - 0x0000000008035e86 0x54 ./Drivers/lvgl/src/misc/lv_tlsf.o - 0x0000000008035e86 lv_tlsf_free + 0x0000000008035df2 0x54 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035df2 lv_tlsf_free .text.lv_tlsf_realloc - 0x0000000008035eda 0xf8 ./Drivers/lvgl/src/misc/lv_tlsf.o - 0x0000000008035eda lv_tlsf_realloc + 0x0000000008035e46 0xf8 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000008035e46 lv_tlsf_realloc .text.lv_font_get_line_height - 0x0000000008035fd2 0x18 ./Drivers/lvgl/src/misc/lv_txt.o - *fill* 0x0000000008035fea 0x2 + 0x0000000008035f3e 0x18 ./Drivers/lvgl/src/misc/lv_txt.o + *fill* 0x0000000008035f56 0x2 .text._lv_txt_is_break_char - 0x0000000008035fec 0x5c ./Drivers/lvgl/src/misc/lv_txt.o + 0x0000000008035f58 0x5c ./Drivers/lvgl/src/misc/lv_txt.o .text.lv_memcpy_small - 0x0000000008036048 0x42 ./Drivers/lvgl/src/misc/lv_txt.o + 0x0000000008035fb4 0x42 ./Drivers/lvgl/src/misc/lv_txt.o .text.lv_txt_get_size - 0x000000000803608a 0x176 ./Drivers/lvgl/src/misc/lv_txt.o - 0x000000000803608a lv_txt_get_size + 0x0000000008035ff6 0x176 ./Drivers/lvgl/src/misc/lv_txt.o + 0x0000000008035ff6 lv_txt_get_size .text.lv_txt_get_next_word - 0x0000000008036200 0x1c0 ./Drivers/lvgl/src/misc/lv_txt.o + 0x000000000803616c 0x1c0 ./Drivers/lvgl/src/misc/lv_txt.o .text._lv_txt_get_next_line - 0x00000000080363c0 0x1bc ./Drivers/lvgl/src/misc/lv_txt.o - 0x00000000080363c0 _lv_txt_get_next_line + 0x000000000803632c 0x1bc ./Drivers/lvgl/src/misc/lv_txt.o + 0x000000000803632c _lv_txt_get_next_line .text.lv_txt_get_width - 0x000000000803657c 0xc8 ./Drivers/lvgl/src/misc/lv_txt.o - 0x000000000803657c lv_txt_get_width + 0x00000000080364e8 0xc8 ./Drivers/lvgl/src/misc/lv_txt.o + 0x00000000080364e8 lv_txt_get_width .text._lv_txt_is_cmd - 0x0000000008036644 0x72 ./Drivers/lvgl/src/misc/lv_txt.o - 0x0000000008036644 _lv_txt_is_cmd - *fill* 0x00000000080366b6 0x2 + 0x00000000080365b0 0x72 ./Drivers/lvgl/src/misc/lv_txt.o + 0x00000000080365b0 _lv_txt_is_cmd + *fill* 0x0000000008036622 0x2 .text._lv_txt_ins - 0x00000000080366b8 0x90 ./Drivers/lvgl/src/misc/lv_txt.o - 0x00000000080366b8 _lv_txt_ins + 0x0000000008036624 0x90 ./Drivers/lvgl/src/misc/lv_txt.o + 0x0000000008036624 _lv_txt_ins .text._lv_txt_cut - 0x0000000008036748 0x74 ./Drivers/lvgl/src/misc/lv_txt.o - 0x0000000008036748 _lv_txt_cut + 0x00000000080366b4 0x74 ./Drivers/lvgl/src/misc/lv_txt.o + 0x00000000080366b4 _lv_txt_cut .text._lv_txt_set_text_vfmt - 0x00000000080367bc 0x62 ./Drivers/lvgl/src/misc/lv_txt.o - 0x00000000080367bc _lv_txt_set_text_vfmt - *fill* 0x000000000803681e 0x2 + 0x0000000008036728 0x62 ./Drivers/lvgl/src/misc/lv_txt.o + 0x0000000008036728 _lv_txt_set_text_vfmt + *fill* 0x000000000803678a 0x2 .text._lv_txt_encoded_letter_next_2 - 0x0000000008036820 0x50 ./Drivers/lvgl/src/misc/lv_txt.o - 0x0000000008036820 _lv_txt_encoded_letter_next_2 + 0x000000000803678c 0x50 ./Drivers/lvgl/src/misc/lv_txt.o + 0x000000000803678c _lv_txt_encoded_letter_next_2 .text.lv_txt_utf8_size - 0x0000000008036870 0x52 ./Drivers/lvgl/src/misc/lv_txt.o + 0x00000000080367dc 0x52 ./Drivers/lvgl/src/misc/lv_txt.o .text.lv_txt_unicode_to_utf8 - 0x00000000080368c2 0xfc ./Drivers/lvgl/src/misc/lv_txt.o + 0x000000000803682e 0xfc ./Drivers/lvgl/src/misc/lv_txt.o .text.lv_txt_utf8_next - 0x00000000080369be 0x228 ./Drivers/lvgl/src/misc/lv_txt.o - *fill* 0x0000000008036be6 0x2 + 0x000000000803692a 0x228 ./Drivers/lvgl/src/misc/lv_txt.o + *fill* 0x0000000008036b52 0x2 .text.lv_txt_utf8_prev - 0x0000000008036be8 0x88 ./Drivers/lvgl/src/misc/lv_txt.o + 0x0000000008036b54 0x88 ./Drivers/lvgl/src/misc/lv_txt.o .text.lv_txt_utf8_get_byte_id - 0x0000000008036c70 0x60 ./Drivers/lvgl/src/misc/lv_txt.o + 0x0000000008036bdc 0x60 ./Drivers/lvgl/src/misc/lv_txt.o .text.lv_txt_utf8_get_char_id - 0x0000000008036cd0 0x40 ./Drivers/lvgl/src/misc/lv_txt.o + 0x0000000008036c3c 0x40 ./Drivers/lvgl/src/misc/lv_txt.o .text.lv_txt_utf8_get_length - 0x0000000008036d10 0x40 ./Drivers/lvgl/src/misc/lv_txt.o + 0x0000000008036c7c 0x40 ./Drivers/lvgl/src/misc/lv_txt.o .text._lv_utils_bsearch - 0x0000000008036d50 0x80 ./Drivers/lvgl/src/misc/lv_utils.o - 0x0000000008036d50 _lv_utils_bsearch + 0x0000000008036cbc 0x80 ./Drivers/lvgl/src/misc/lv_utils.o + 0x0000000008036cbc _lv_utils_bsearch .text.lv_obj_get_style_pad_top - 0x0000000008036dd0 0x26 ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008036d3c 0x26 ./Drivers/lvgl/src/widgets/lv_arc.o .text.lv_obj_get_style_pad_bottom - 0x0000000008036df6 0x26 ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008036d62 0x26 ./Drivers/lvgl/src/widgets/lv_arc.o .text.lv_obj_get_style_pad_left - 0x0000000008036e1c 0x26 ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008036d88 0x26 ./Drivers/lvgl/src/widgets/lv_arc.o .text.lv_obj_get_style_pad_right - 0x0000000008036e42 0x26 ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008036dae 0x26 ./Drivers/lvgl/src/widgets/lv_arc.o .text.lv_obj_get_style_arc_width - 0x0000000008036e68 0x26 ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008036dd4 0x26 ./Drivers/lvgl/src/widgets/lv_arc.o .text.lv_obj_get_style_arc_rounded - 0x0000000008036e8e 0x2c ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008036dfa 0x2c ./Drivers/lvgl/src/widgets/lv_arc.o .text.lv_arc_set_start_angle - 0x0000000008036eba 0xce ./Drivers/lvgl/src/widgets/lv_arc.o - 0x0000000008036eba lv_arc_set_start_angle + 0x0000000008036e26 0xce ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008036e26 lv_arc_set_start_angle .text.lv_arc_set_end_angle - 0x0000000008036f88 0xce ./Drivers/lvgl/src/widgets/lv_arc.o - 0x0000000008036f88 lv_arc_set_end_angle + 0x0000000008036ef4 0xce ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008036ef4 lv_arc_set_end_angle .text.lv_arc_set_angles - 0x0000000008037056 0x2c ./Drivers/lvgl/src/widgets/lv_arc.o - 0x0000000008037056 lv_arc_set_angles + 0x0000000008036fc2 0x2c ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008036fc2 lv_arc_set_angles .text.lv_arc_set_bg_start_angle - 0x0000000008037082 0xc4 ./Drivers/lvgl/src/widgets/lv_arc.o - 0x0000000008037082 lv_arc_set_bg_start_angle + 0x0000000008036fee 0xc4 ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008036fee lv_arc_set_bg_start_angle .text.lv_arc_set_bg_end_angle - 0x0000000008037146 0xc4 ./Drivers/lvgl/src/widgets/lv_arc.o - 0x0000000008037146 lv_arc_set_bg_end_angle + 0x00000000080370b2 0xc4 ./Drivers/lvgl/src/widgets/lv_arc.o + 0x00000000080370b2 lv_arc_set_bg_end_angle .text.lv_arc_set_bg_angles - 0x000000000803720a 0x2c ./Drivers/lvgl/src/widgets/lv_arc.o - 0x000000000803720a lv_arc_set_bg_angles + 0x0000000008037176 0x2c ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008037176 lv_arc_set_bg_angles .text.lv_arc_set_rotation - 0x0000000008037236 0x24 ./Drivers/lvgl/src/widgets/lv_arc.o - 0x0000000008037236 lv_arc_set_rotation + 0x00000000080371a2 0x24 ./Drivers/lvgl/src/widgets/lv_arc.o + 0x00000000080371a2 lv_arc_set_rotation .text.lv_arc_set_value - 0x000000000803725a 0x6a ./Drivers/lvgl/src/widgets/lv_arc.o - 0x000000000803725a lv_arc_set_value + 0x00000000080371c6 0x6a ./Drivers/lvgl/src/widgets/lv_arc.o + 0x00000000080371c6 lv_arc_set_value .text.lv_arc_get_value - 0x00000000080372c4 0x18 ./Drivers/lvgl/src/widgets/lv_arc.o - 0x00000000080372c4 lv_arc_get_value + 0x0000000008037230 0x18 ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008037230 lv_arc_get_value .text.lv_arc_constructor - 0x00000000080372dc 0xaa ./Drivers/lvgl/src/widgets/lv_arc.o - *fill* 0x0000000008037386 0x2 + 0x0000000008037248 0xaa ./Drivers/lvgl/src/widgets/lv_arc.o + *fill* 0x00000000080372f2 0x2 .text.lv_arc_event - 0x0000000008037388 0x750 ./Drivers/lvgl/src/widgets/lv_arc.o + 0x00000000080372f4 0x750 ./Drivers/lvgl/src/widgets/lv_arc.o .text.lv_arc_draw - 0x0000000008037ad8 0x2ac ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008037a44 0x2ac ./Drivers/lvgl/src/widgets/lv_arc.o .text.inv_arc_area - 0x0000000008037d84 0xfe ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008037cf0 0xfe ./Drivers/lvgl/src/widgets/lv_arc.o .text.inv_knob_area - 0x0000000008037e82 0x3e ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008037dee 0x3e ./Drivers/lvgl/src/widgets/lv_arc.o .text.get_center - 0x0000000008037ec0 0xf4 ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008037e2c 0xf4 ./Drivers/lvgl/src/widgets/lv_arc.o .text.get_knob_area - 0x0000000008037fb4 0x1b6 ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008037f20 0x1b6 ./Drivers/lvgl/src/widgets/lv_arc.o .text.value_update - 0x000000000803816a 0x1a2 ./Drivers/lvgl/src/widgets/lv_arc.o + 0x00000000080380d6 0x1a2 ./Drivers/lvgl/src/widgets/lv_arc.o .text.lv_area_copy - 0x000000000803830c 0x3c ./Drivers/lvgl/src/widgets/lv_bar.o + 0x0000000008038278 0x3c ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_area_get_width - 0x0000000008038348 0x2c ./Drivers/lvgl/src/widgets/lv_bar.o + 0x00000000080382b4 0x2c ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_area_get_height - 0x0000000008038374 0x2c ./Drivers/lvgl/src/widgets/lv_bar.o + 0x00000000080382e0 0x2c ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_anim_set_var - 0x00000000080383a0 0x1a ./Drivers/lvgl/src/widgets/lv_bar.o + 0x000000000803830c 0x1a ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_anim_set_exec_cb - 0x00000000080383ba 0x1a ./Drivers/lvgl/src/widgets/lv_bar.o + 0x0000000008038326 0x1a ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_anim_set_time - 0x00000000080383d4 0x1a ./Drivers/lvgl/src/widgets/lv_bar.o + 0x0000000008038340 0x1a ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_anim_set_values - 0x00000000080383ee 0x28 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x000000000803835a 0x28 ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_anim_set_ready_cb - 0x0000000008038416 0x1a ./Drivers/lvgl/src/widgets/lv_bar.o + 0x0000000008038382 0x1a ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_obj_get_style_transform_width - 0x0000000008038430 0x26 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x000000000803839c 0x26 ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_obj_get_style_transform_height - 0x0000000008038456 0x26 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x00000000080383c2 0x26 ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_obj_get_style_pad_top - 0x000000000803847c 0x26 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x00000000080383e8 0x26 ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_obj_get_style_pad_bottom - 0x00000000080384a2 0x26 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x000000000803840e 0x26 ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_obj_get_style_pad_left - 0x00000000080384c8 0x26 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x0000000008038434 0x26 ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_obj_get_style_pad_right - 0x00000000080384ee 0x26 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x000000000803845a 0x26 ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_obj_get_style_radius - 0x0000000008038514 0x24 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x0000000008038480 0x24 ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_obj_get_style_anim_time - 0x0000000008038538 0x22 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x00000000080384a4 0x22 ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_obj_get_style_base_dir - 0x000000000803855a 0x26 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x00000000080384c6 0x26 ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_bar_set_value - 0x0000000008038580 0x74 ./Drivers/lvgl/src/widgets/lv_bar.o - 0x0000000008038580 lv_bar_set_value + 0x00000000080384ec 0x74 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x00000000080384ec lv_bar_set_value .text.lv_bar_set_start_value - 0x00000000080385f4 0x7a ./Drivers/lvgl/src/widgets/lv_bar.o - 0x00000000080385f4 lv_bar_set_start_value + 0x0000000008038560 0x7a ./Drivers/lvgl/src/widgets/lv_bar.o + 0x0000000008038560 lv_bar_set_start_value .text.lv_bar_get_value - 0x000000000803866e 0x2a ./Drivers/lvgl/src/widgets/lv_bar.o - 0x000000000803866e lv_bar_get_value + 0x00000000080385da 0x2a ./Drivers/lvgl/src/widgets/lv_bar.o + 0x00000000080385da lv_bar_get_value .text.lv_bar_get_start_value - 0x0000000008038698 0x40 ./Drivers/lvgl/src/widgets/lv_bar.o - 0x0000000008038698 lv_bar_get_start_value + 0x0000000008038604 0x40 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x0000000008038604 lv_bar_get_start_value .text.lv_bar_get_mode - 0x00000000080386d8 0x22 ./Drivers/lvgl/src/widgets/lv_bar.o - 0x00000000080386d8 lv_bar_get_mode + 0x0000000008038644 0x22 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x0000000008038644 lv_bar_get_mode .text.lv_bar_constructor - 0x00000000080386fa 0x86 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x0000000008038666 0x86 ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_bar_destructor - 0x0000000008038780 0x2e ./Drivers/lvgl/src/widgets/lv_bar.o - *fill* 0x00000000080387ae 0x2 + 0x00000000080386ec 0x2e ./Drivers/lvgl/src/widgets/lv_bar.o + *fill* 0x000000000803871a 0x2 .text.draw_indic - 0x00000000080387b0 0xb28 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x000000000803871c 0xb28 ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_bar_event - 0x00000000080392d8 0x120 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x0000000008039244 0x120 ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_bar_anim - 0x00000000080393f8 0x26 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x0000000008039364 0x26 ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_bar_anim_ready - 0x000000000803941e 0x58 ./Drivers/lvgl/src/widgets/lv_bar.o - *fill* 0x0000000008039476 0x2 + 0x000000000803938a 0x58 ./Drivers/lvgl/src/widgets/lv_bar.o + *fill* 0x00000000080393e2 0x2 .text.lv_bar_set_value_with_anim - 0x0000000008039478 0xc8 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x00000000080393e4 0xc8 ./Drivers/lvgl/src/widgets/lv_bar.o .text.lv_bar_init_anim - 0x0000000008039540 0x2e ./Drivers/lvgl/src/widgets/lv_bar.o - *fill* 0x000000000803956e 0x2 + 0x00000000080394ac 0x2e ./Drivers/lvgl/src/widgets/lv_bar.o + *fill* 0x00000000080394da 0x2 .text.lv_btn_create - 0x0000000008039570 0x28 ./Drivers/lvgl/src/widgets/lv_btn.o - 0x0000000008039570 lv_btn_create + 0x00000000080394dc 0x28 ./Drivers/lvgl/src/widgets/lv_btn.o + 0x00000000080394dc lv_btn_create .text.lv_btn_constructor - 0x0000000008039598 0x24 ./Drivers/lvgl/src/widgets/lv_btn.o + 0x0000000008039504 0x24 ./Drivers/lvgl/src/widgets/lv_btn.o .text.lv_area_copy - 0x00000000080395bc 0x3c ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000008039528 0x3c ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.lv_area_get_width - 0x00000000080395f8 0x2c ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000008039564 0x2c ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.lv_area_get_height - 0x0000000008039624 0x2c ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000008039590 0x2c ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.lv_obj_get_style_pad_top - 0x0000000008039650 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x00000000080395bc 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.lv_obj_get_style_pad_bottom - 0x0000000008039676 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x00000000080395e2 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.lv_obj_get_style_pad_left - 0x000000000803969c 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000008039608 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.lv_obj_get_style_pad_right - 0x00000000080396c2 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x000000000803962e 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.lv_obj_get_style_pad_row - 0x00000000080396e8 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000008039654 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.lv_obj_get_style_pad_column - 0x000000000803970e 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x000000000803967a 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.lv_obj_get_style_base_dir - 0x0000000008039734 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - *fill* 0x000000000803975a 0x2 + 0x00000000080396a0 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + *fill* 0x00000000080396c6 0x2 .text.lv_btnmatrix_create - 0x000000000803975c 0x28 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - 0x000000000803975c lv_btnmatrix_create + 0x00000000080396c8 0x28 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x00000000080396c8 lv_btnmatrix_create .text.lv_btnmatrix_set_map - 0x0000000008039784 0x2d4 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - 0x0000000008039784 lv_btnmatrix_set_map + 0x00000000080396f0 0x2d4 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x00000000080396f0 lv_btnmatrix_set_map .text.lv_btnmatrix_set_ctrl_map - 0x0000000008039a58 0x34 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - 0x0000000008039a58 lv_btnmatrix_set_ctrl_map + 0x00000000080399c4 0x34 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x00000000080399c4 lv_btnmatrix_set_ctrl_map .text.lv_btnmatrix_set_selected_btn - 0x0000000008039a8c 0x4a ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - 0x0000000008039a8c lv_btnmatrix_set_selected_btn + 0x00000000080399f8 0x4a ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x00000000080399f8 lv_btnmatrix_set_selected_btn .text.lv_btnmatrix_set_btn_ctrl - 0x0000000008039ad6 0x82 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - 0x0000000008039ad6 lv_btnmatrix_set_btn_ctrl + 0x0000000008039a42 0x82 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000008039a42 lv_btnmatrix_set_btn_ctrl .text.lv_btnmatrix_clear_btn_ctrl - 0x0000000008039b58 0x6a ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - 0x0000000008039b58 lv_btnmatrix_clear_btn_ctrl + 0x0000000008039ac4 0x6a ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000008039ac4 lv_btnmatrix_clear_btn_ctrl .text.lv_btnmatrix_set_btn_ctrl_all - 0x0000000008039bc2 0x3c ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - 0x0000000008039bc2 lv_btnmatrix_set_btn_ctrl_all + 0x0000000008039b2e 0x3c ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000008039b2e lv_btnmatrix_set_btn_ctrl_all .text.lv_btnmatrix_clear_btn_ctrl_all - 0x0000000008039bfe 0x3c ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - 0x0000000008039bfe lv_btnmatrix_clear_btn_ctrl_all + 0x0000000008039b6a 0x3c ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000008039b6a lv_btnmatrix_clear_btn_ctrl_all .text.lv_btnmatrix_set_one_checked - 0x0000000008039c3a 0x30 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - 0x0000000008039c3a lv_btnmatrix_set_one_checked + 0x0000000008039ba6 0x30 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000008039ba6 lv_btnmatrix_set_one_checked .text.lv_btnmatrix_get_selected_btn - 0x0000000008039c6a 0x1a ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - 0x0000000008039c6a lv_btnmatrix_get_selected_btn + 0x0000000008039bd6 0x1a ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000008039bd6 lv_btnmatrix_get_selected_btn .text.lv_btnmatrix_get_btn_text - 0x0000000008039c84 0x90 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - 0x0000000008039c84 lv_btnmatrix_get_btn_text + 0x0000000008039bf0 0x90 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000008039bf0 lv_btnmatrix_get_btn_text .text.lv_btnmatrix_has_btn_ctrl - 0x0000000008039d14 0x4a ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - 0x0000000008039d14 lv_btnmatrix_has_btn_ctrl - *fill* 0x0000000008039d5e 0x2 + 0x0000000008039c80 0x4a ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000008039c80 lv_btnmatrix_has_btn_ctrl + *fill* 0x0000000008039cca 0x2 .text.lv_btnmatrix_constructor - 0x0000000008039d60 0x58 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000008039ccc 0x58 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.lv_btnmatrix_destructor - 0x0000000008039db8 0x36 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - *fill* 0x0000000008039dee 0x2 + 0x0000000008039d24 0x36 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + *fill* 0x0000000008039d5a 0x2 .text.lv_btnmatrix_event - 0x0000000008039df0 0xb94 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000008039d5c 0xb94 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.draw_main - 0x000000000803a984 0x730 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x000000000803a8f0 0x730 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.allocate_btn_areas_and_controls - 0x000000000803b0b4 0x114 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x000000000803b020 0x114 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.get_button_width - 0x000000000803b1c8 0x2a ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x000000000803b134 0x2a ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.button_is_hidden - 0x000000000803b1f2 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x000000000803b15e 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.button_is_checked - 0x000000000803b218 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x000000000803b184 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.button_is_repeat_disabled - 0x000000000803b23e 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x000000000803b1aa 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.button_is_inactive - 0x000000000803b264 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x000000000803b1d0 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.button_is_click_trig - 0x000000000803b28a 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x000000000803b1f6 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.button_is_popover - 0x000000000803b2b0 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x000000000803b21c 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.button_is_checkable - 0x000000000803b2d6 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x000000000803b242 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.button_get_checked - 0x000000000803b2fc 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x000000000803b268 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.button_is_recolor - 0x000000000803b322 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x000000000803b28e 0x26 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.get_button_from_point - 0x000000000803b348 0x29e ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - *fill* 0x000000000803b5e6 0x2 + 0x000000000803b2b4 0x29e ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + *fill* 0x000000000803b552 0x2 .text.invalidate_button_area - 0x000000000803b5e8 0x174 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x000000000803b554 0x174 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.make_one_button_checked - 0x000000000803b75c 0x3e ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - *fill* 0x000000000803b79a 0x2 + 0x000000000803b6c8 0x3e ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + *fill* 0x000000000803b706 0x2 .text.has_popovers_in_top_row - 0x000000000803b79c 0x8c ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x000000000803b708 0x8c ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .text.lv_area_copy - 0x000000000803b828 0x3c ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803b794 0x3c ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_area_get_height - 0x000000000803b864 0x2c ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803b7d0 0x2c ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_font_get_line_height - 0x000000000803b890 0x18 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803b7fc 0x18 ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_obj_get_style_transform_width - 0x000000000803b8a8 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803b814 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_obj_get_style_transform_height - 0x000000000803b8ce 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803b83a 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_obj_get_style_pad_top - 0x000000000803b8f4 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803b860 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_obj_get_style_pad_bottom - 0x000000000803b91a 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803b886 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_obj_get_style_pad_left - 0x000000000803b940 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803b8ac 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_obj_get_style_pad_right - 0x000000000803b966 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803b8d2 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_obj_get_style_pad_column - 0x000000000803b98c 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803b8f8 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_obj_get_style_border_width - 0x000000000803b9b2 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803b91e 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_obj_get_style_text_font - 0x000000000803b9d8 0x24 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803b944 0x24 ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_obj_get_style_text_letter_space - 0x000000000803b9fc 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803b968 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_obj_get_style_text_line_space - 0x000000000803ba22 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803b98e 0x26 ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_checkbox_constructor - 0x000000000803ba48 0x48 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803b9b4 0x48 ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_checkbox_destructor - 0x000000000803ba90 0x36 ./Drivers/lvgl/src/widgets/lv_checkbox.o - *fill* 0x000000000803bac6 0x2 + 0x000000000803b9fc 0x36 ./Drivers/lvgl/src/widgets/lv_checkbox.o + *fill* 0x000000000803ba32 0x2 .text.lv_checkbox_event - 0x000000000803bac8 0x188 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803ba34 0x188 ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_checkbox_draw - 0x000000000803bc50 0x354 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x000000000803bbbc 0x354 ./Drivers/lvgl/src/widgets/lv_checkbox.o .text.lv_font_get_line_height - 0x000000000803bfa4 0x18 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803bf10 0x18 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.lv_obj_get_style_transform_angle - 0x000000000803bfbc 0x26 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803bf28 0x26 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.lv_obj_get_style_pad_top - 0x000000000803bfe2 0x26 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803bf4e 0x26 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.lv_obj_get_style_pad_bottom - 0x000000000803c008 0x26 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803bf74 0x26 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.lv_obj_get_style_pad_left - 0x000000000803c02e 0x26 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803bf9a 0x26 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.lv_obj_get_style_pad_right - 0x000000000803c054 0x26 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803bfc0 0x26 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.lv_obj_get_style_border_width - 0x000000000803c07a 0x26 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803bfe6 0x26 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.lv_obj_get_style_text_font - 0x000000000803c0a0 0x24 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c00c 0x24 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.lv_obj_get_style_text_line_space - 0x000000000803c0c4 0x26 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c030 0x26 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.lv_obj_get_style_base_dir - 0x000000000803c0ea 0x26 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c056 0x26 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.lv_dropdown_create - 0x000000000803c110 0x28 ./Drivers/lvgl/src/widgets/lv_dropdown.o - 0x000000000803c110 lv_dropdown_create + 0x000000000803c07c 0x28 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c07c lv_dropdown_create .text.lv_dropdown_set_options - 0x000000000803c138 0xf2 ./Drivers/lvgl/src/widgets/lv_dropdown.o - 0x000000000803c138 lv_dropdown_set_options + 0x000000000803c0a4 0xf2 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c0a4 lv_dropdown_set_options .text.lv_dropdown_set_options_static - 0x000000000803c22a 0xc0 ./Drivers/lvgl/src/widgets/lv_dropdown.o - 0x000000000803c22a lv_dropdown_set_options_static + 0x000000000803c196 0xc0 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c196 lv_dropdown_set_options_static .text.lv_dropdown_set_selected - 0x000000000803c2ea 0x4c ./Drivers/lvgl/src/widgets/lv_dropdown.o - 0x000000000803c2ea lv_dropdown_set_selected + 0x000000000803c256 0x4c ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c256 lv_dropdown_set_selected .text.lv_dropdown_get_selected - 0x000000000803c336 0x1a ./Drivers/lvgl/src/widgets/lv_dropdown.o - 0x000000000803c336 lv_dropdown_get_selected + 0x000000000803c2a2 0x1a ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c2a2 lv_dropdown_get_selected .text.lv_dropdown_get_selected_str - 0x000000000803c350 0xc2 ./Drivers/lvgl/src/widgets/lv_dropdown.o - 0x000000000803c350 lv_dropdown_get_selected_str + 0x000000000803c2bc 0xc2 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c2bc lv_dropdown_get_selected_str .text.lv_dropdown_open - 0x000000000803c412 0x39e ./Drivers/lvgl/src/widgets/lv_dropdown.o - 0x000000000803c412 lv_dropdown_open + 0x000000000803c37e 0x39e ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c37e lv_dropdown_open .text.lv_dropdown_close - 0x000000000803c7b0 0x3a ./Drivers/lvgl/src/widgets/lv_dropdown.o - 0x000000000803c7b0 lv_dropdown_close + 0x000000000803c71c 0x3a ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c71c lv_dropdown_close .text.lv_dropdown_is_open - 0x000000000803c7ea 0x28 ./Drivers/lvgl/src/widgets/lv_dropdown.o - 0x000000000803c7ea lv_dropdown_is_open - *fill* 0x000000000803c812 0x2 + 0x000000000803c756 0x28 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c756 lv_dropdown_is_open + *fill* 0x000000000803c77e 0x2 .text.lv_dropdown_list_create - 0x000000000803c814 0x28 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c780 0x28 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.lv_dropdown_constructor - 0x000000000803c83c 0xb0 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c7a8 0xb0 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.lv_dropdown_destructor - 0x000000000803c8ec 0x4e ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c858 0x4e ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.lv_dropdownlist_constructor - 0x000000000803c93a 0x3c ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c8a6 0x3c ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.lv_dropdownlist_destructor - 0x000000000803c976 0x28 ./Drivers/lvgl/src/widgets/lv_dropdown.o - *fill* 0x000000000803c99e 0x2 + 0x000000000803c8e2 0x28 ./Drivers/lvgl/src/widgets/lv_dropdown.o + *fill* 0x000000000803c90a 0x2 .text.lv_dropdown_event - 0x000000000803c9a0 0x218 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803c90c 0x218 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.lv_dropdown_list_event - 0x000000000803cbb8 0xac ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803cb24 0xac ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.draw_main - 0x000000000803cc64 0x45e ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803cbd0 0x45e ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.draw_list - 0x000000000803d0c2 0xf2 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803d02e 0xf2 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.draw_box - 0x000000000803d1b4 0x150 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803d120 0x150 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.draw_box_label - 0x000000000803d304 0x182 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803d270 0x182 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.btn_release_handler - 0x000000000803d486 0xae ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803d3f2 0xae ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.list_release_handler - 0x000000000803d534 0xcc ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803d4a0 0xcc ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.list_press_handler - 0x000000000803d600 0x68 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803d56c 0x68 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.get_id_on_point - 0x000000000803d668 0x9c ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803d5d4 0x9c ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.position_to_selected - 0x000000000803d704 0x90 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803d670 0x90 ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.get_label - 0x000000000803d794 0x2e ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000803d700 0x2e ./Drivers/lvgl/src/widgets/lv_dropdown.o .text.lv_area_copy - 0x000000000803d7c2 0x3c ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803d72e 0x3c ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_area_get_width - 0x000000000803d7fe 0x2c ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803d76a 0x2c ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_area_get_height - 0x000000000803d82a 0x2c ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803d796 0x2c ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_obj_get_style_transform_zoom - 0x000000000803d856 0x26 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803d7c2 0x26 ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_obj_get_style_transform_angle - 0x000000000803d87c 0x26 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803d7e8 0x26 ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_obj_get_style_pad_top - 0x000000000803d8a2 0x26 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803d80e 0x26 ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_obj_get_style_pad_bottom - 0x000000000803d8c8 0x26 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803d834 0x26 ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_obj_get_style_pad_left - 0x000000000803d8ee 0x26 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803d85a 0x26 ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_obj_get_style_pad_right - 0x000000000803d914 0x26 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803d880 0x26 ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_obj_get_style_border_width - 0x000000000803d93a 0x26 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803d8a6 0x26 ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_obj_get_style_img_opa - 0x000000000803d960 0x24 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803d8cc 0x24 ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_obj_get_style_text_font - 0x000000000803d984 0x24 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803d8f0 0x24 ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_obj_get_style_text_letter_space - 0x000000000803d9a8 0x26 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803d914 0x26 ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_obj_get_style_text_line_space - 0x000000000803d9ce 0x26 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803d93a 0x26 ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_img_create - 0x000000000803d9f4 0x28 ./Drivers/lvgl/src/widgets/lv_img.o - 0x000000000803d9f4 lv_img_create + 0x000000000803d960 0x28 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803d960 lv_img_create .text.lv_img_set_src - 0x000000000803da1c 0x23e ./Drivers/lvgl/src/widgets/lv_img.o - 0x000000000803da1c lv_img_set_src + 0x000000000803d988 0x23e ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803d988 lv_img_set_src .text.lv_img_constructor - 0x000000000803dc5a 0xa8 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803dbc6 0xa8 ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_img_destructor - 0x000000000803dd02 0x54 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803dc6e 0x54 ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_img_get_transformed_size - 0x000000000803dd56 0xa2 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803dcc2 0xa2 ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_img_event - 0x000000000803ddf8 0x380 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803dd64 0x380 ./Drivers/lvgl/src/widgets/lv_img.o .text.draw_img - 0x000000000803e178 0x8a4 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000803e0e4 0x8a4 ./Drivers/lvgl/src/widgets/lv_img.o .text.lv_area_get_width - 0x000000000803ea1c 0x2c ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803e988 0x2c ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_area_get_height - 0x000000000803ea48 0x2c ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803e9b4 0x2c ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_font_get_line_height - 0x000000000803ea74 0x18 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803e9e0 0x18 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_anim_set_var - 0x000000000803ea8c 0x1a ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803e9f8 0x1a ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_anim_set_exec_cb - 0x000000000803eaa6 0x1a ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ea12 0x1a ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_anim_set_time - 0x000000000803eac0 0x1a ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ea2c 0x1a ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_anim_set_values - 0x000000000803eada 0x28 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ea46 0x28 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_anim_set_playback_time - 0x000000000803eb02 0x1a ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ea6e 0x1a ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_anim_set_playback_delay - 0x000000000803eb1c 0x1a ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ea88 0x1a ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_anim_set_repeat_count - 0x000000000803eb36 0x1c ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803eaa2 0x1c ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_anim_set_repeat_delay - 0x000000000803eb52 0x1a ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803eabe 0x1a ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_bidi_calculate_align - 0x000000000803eb6c 0x24 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ead8 0x24 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_obj_get_style_width - 0x000000000803eb90 0x26 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803eafc 0x26 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_obj_get_style_pad_top - 0x000000000803ebb6 0x26 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803eb22 0x26 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_obj_get_style_pad_left - 0x000000000803ebdc 0x26 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803eb48 0x26 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_obj_get_style_bg_color - 0x000000000803ec02 0x22 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803eb6e 0x22 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_obj_get_style_text_color_filtered - 0x000000000803ec24 0x24 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803eb90 0x24 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_obj_get_style_text_font - 0x000000000803ec48 0x24 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ebb4 0x24 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_obj_get_style_text_letter_space - 0x000000000803ec6c 0x26 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ebd8 0x26 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_obj_get_style_text_line_space - 0x000000000803ec92 0x26 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ebfe 0x26 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_obj_get_style_anim_speed - 0x000000000803ecb8 0x22 ./Drivers/lvgl/src/widgets/lv_label.o - *fill* 0x000000000803ecda 0x2 + 0x000000000803ec24 0x22 ./Drivers/lvgl/src/widgets/lv_label.o + *fill* 0x000000000803ec46 0x2 .text.lv_label_create - 0x000000000803ecdc 0x28 ./Drivers/lvgl/src/widgets/lv_label.o - 0x000000000803ecdc lv_label_create + 0x000000000803ec48 0x28 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ec48 lv_label_create .text.lv_label_set_text - 0x000000000803ed04 0xea ./Drivers/lvgl/src/widgets/lv_label.o - 0x000000000803ed04 lv_label_set_text + 0x000000000803ec70 0xea ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ec70 lv_label_set_text .text.lv_label_set_text_fmt - 0x000000000803edee 0x86 ./Drivers/lvgl/src/widgets/lv_label.o - 0x000000000803edee lv_label_set_text_fmt + 0x000000000803ed5a 0x86 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ed5a lv_label_set_text_fmt .text.lv_label_set_text_static - 0x000000000803ee74 0x5e ./Drivers/lvgl/src/widgets/lv_label.o - 0x000000000803ee74 lv_label_set_text_static - *fill* 0x000000000803eed2 0x2 + 0x000000000803ede0 0x5e ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ede0 lv_label_set_text_static + *fill* 0x000000000803ee3e 0x2 .text.lv_label_set_long_mode - 0x000000000803eed4 0xac ./Drivers/lvgl/src/widgets/lv_label.o - 0x000000000803eed4 lv_label_set_long_mode + 0x000000000803ee40 0xac ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ee40 lv_label_set_long_mode .text.lv_label_set_text_sel_start - 0x000000000803ef80 0x22 ./Drivers/lvgl/src/widgets/lv_label.o - 0x000000000803ef80 lv_label_set_text_sel_start + 0x000000000803eeec 0x22 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803eeec lv_label_set_text_sel_start .text.lv_label_set_text_sel_end - 0x000000000803efa2 0x22 ./Drivers/lvgl/src/widgets/lv_label.o - 0x000000000803efa2 lv_label_set_text_sel_end + 0x000000000803ef0e 0x22 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ef0e lv_label_set_text_sel_end .text.lv_label_get_text - 0x000000000803efc4 0x1a ./Drivers/lvgl/src/widgets/lv_label.o - 0x000000000803efc4 lv_label_get_text - *fill* 0x000000000803efde 0x2 + 0x000000000803ef30 0x1a ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ef30 lv_label_get_text + *fill* 0x000000000803ef4a 0x2 .text.lv_label_get_letter_pos - 0x000000000803efe0 0x2fc ./Drivers/lvgl/src/widgets/lv_label.o - 0x000000000803efe0 lv_label_get_letter_pos + 0x000000000803ef4c 0x2fc ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803ef4c lv_label_get_letter_pos .text.lv_label_get_letter_on - 0x000000000803f2dc 0x36c ./Drivers/lvgl/src/widgets/lv_label.o - 0x000000000803f2dc lv_label_get_letter_on + 0x000000000803f248 0x36c ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803f248 lv_label_get_letter_on .text.lv_label_is_char_under_pos - 0x000000000803f648 0x316 ./Drivers/lvgl/src/widgets/lv_label.o - 0x000000000803f648 lv_label_is_char_under_pos + 0x000000000803f5b4 0x316 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803f5b4 lv_label_is_char_under_pos .text.lv_label_get_text_selection_start - 0x000000000803f95e 0x1a ./Drivers/lvgl/src/widgets/lv_label.o - 0x000000000803f95e lv_label_get_text_selection_start + 0x000000000803f8ca 0x1a ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803f8ca lv_label_get_text_selection_start .text.lv_label_get_text_selection_end - 0x000000000803f978 0x1a ./Drivers/lvgl/src/widgets/lv_label.o - 0x000000000803f978 lv_label_get_text_selection_end - *fill* 0x000000000803f992 0x2 + 0x000000000803f8e4 0x1a ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803f8e4 lv_label_get_text_selection_end + *fill* 0x000000000803f8fe 0x2 .text.lv_label_ins_text - 0x000000000803f994 0xb4 ./Drivers/lvgl/src/widgets/lv_label.o - 0x000000000803f994 lv_label_ins_text + 0x000000000803f900 0xb4 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803f900 lv_label_ins_text .text.lv_label_constructor - 0x000000000803fa48 0xb4 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803f9b4 0xb4 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_label_destructor - 0x000000000803fafc 0x3c ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803fa68 0x3c ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_label_event - 0x000000000803fb38 0x1bc ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803faa4 0x1bc ./Drivers/lvgl/src/widgets/lv_label.o .text.draw_main - 0x000000000803fcf4 0x398 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803fc60 0x398 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_label_refr_text - 0x000000000804008c 0x870 ./Drivers/lvgl/src/widgets/lv_label.o + 0x000000000803fff8 0x870 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_label_revert_dots - 0x00000000080408fc 0xb0 ./Drivers/lvgl/src/widgets/lv_label.o + 0x0000000008040868 0xb0 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_label_set_dot_tmp - 0x00000000080409ac 0x88 ./Drivers/lvgl/src/widgets/lv_label.o + 0x0000000008040918 0x88 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_label_get_dot_tmp - 0x0000000008040a34 0x30 ./Drivers/lvgl/src/widgets/lv_label.o + 0x00000000080409a0 0x30 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_label_dot_tmp_free - 0x0000000008040a64 0x4a ./Drivers/lvgl/src/widgets/lv_label.o + 0x00000000080409d0 0x4a ./Drivers/lvgl/src/widgets/lv_label.o .text.set_ofs_x_anim - 0x0000000008040aae 0x26 ./Drivers/lvgl/src/widgets/lv_label.o + 0x0000000008040a1a 0x26 ./Drivers/lvgl/src/widgets/lv_label.o .text.set_ofs_y_anim - 0x0000000008040ad4 0x26 ./Drivers/lvgl/src/widgets/lv_label.o + 0x0000000008040a40 0x26 ./Drivers/lvgl/src/widgets/lv_label.o .text.lv_obj_get_style_line_width - 0x0000000008040afa 0x26 ./Drivers/lvgl/src/widgets/lv_line.o + 0x0000000008040a66 0x26 ./Drivers/lvgl/src/widgets/lv_line.o .text.lv_line_constructor - 0x0000000008040b20 0x38 ./Drivers/lvgl/src/widgets/lv_line.o + 0x0000000008040a8c 0x38 ./Drivers/lvgl/src/widgets/lv_line.o .text.lv_line_event - 0x0000000008040b58 0x2c4 ./Drivers/lvgl/src/widgets/lv_line.o + 0x0000000008040ac4 0x2c4 ./Drivers/lvgl/src/widgets/lv_line.o .text.lv_font_get_line_height - 0x0000000008040e1c 0x18 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008040d88 0x18 ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_anim_set_var - 0x0000000008040e34 0x1a ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008040da0 0x1a ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_anim_set_exec_cb - 0x0000000008040e4e 0x1a ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008040dba 0x1a ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_anim_set_time - 0x0000000008040e68 0x1a ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008040dd4 0x1a ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_anim_set_values - 0x0000000008040e82 0x28 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008040dee 0x28 ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_anim_set_path_cb - 0x0000000008040eaa 0x1a ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008040e16 0x1a ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_anim_set_ready_cb - 0x0000000008040ec4 0x1a ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008040e30 0x1a ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_obj_get_style_pad_left - 0x0000000008040ede 0x26 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008040e4a 0x26 ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_obj_get_style_pad_right - 0x0000000008040f04 0x26 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008040e70 0x26 ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_obj_get_style_border_width - 0x0000000008040f2a 0x26 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008040e96 0x26 ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_obj_get_style_text_font - 0x0000000008040f50 0x24 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008040ebc 0x24 ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_obj_get_style_text_letter_space - 0x0000000008040f74 0x26 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008040ee0 0x26 ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_obj_get_style_text_line_space - 0x0000000008040f9a 0x26 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008040f06 0x26 ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_obj_get_style_anim_time - 0x0000000008040fc0 0x22 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008040f2c 0x22 ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_roller_set_options - 0x0000000008040fe2 0x15c ./Drivers/lvgl/src/widgets/lv_roller.o - 0x0000000008040fe2 lv_roller_set_options - *fill* 0x000000000804113e 0x2 + 0x0000000008040f4e 0x15c ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008040f4e lv_roller_set_options + *fill* 0x00000000080410aa 0x2 .text.lv_roller_set_selected - 0x0000000008041140 0x9c ./Drivers/lvgl/src/widgets/lv_roller.o - 0x0000000008041140 lv_roller_set_selected + 0x00000000080410ac 0x9c ./Drivers/lvgl/src/widgets/lv_roller.o + 0x00000000080410ac lv_roller_set_selected .text.lv_roller_constructor - 0x00000000080411dc 0x6c ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008041148 0x6c ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_roller_event - 0x0000000008041248 0x2a0 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x00000000080411b4 0x2a0 ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_roller_label_event - 0x00000000080414e8 0xb0 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008041454 0xb0 ./Drivers/lvgl/src/widgets/lv_roller.o .text.draw_main - 0x0000000008041598 0x2b4 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008041504 0x2b4 ./Drivers/lvgl/src/widgets/lv_roller.o .text.draw_label - 0x000000000804184c 0x152 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x00000000080417b8 0x152 ./Drivers/lvgl/src/widgets/lv_roller.o .text.get_sel_area - 0x000000000804199e 0xc8 ./Drivers/lvgl/src/widgets/lv_roller.o - *fill* 0x0000000008041a66 0x2 + 0x000000000804190a 0xc8 ./Drivers/lvgl/src/widgets/lv_roller.o + *fill* 0x00000000080419d2 0x2 .text.refr_position - 0x0000000008041a68 0x1ec ./Drivers/lvgl/src/widgets/lv_roller.o + 0x00000000080419d4 0x1ec ./Drivers/lvgl/src/widgets/lv_roller.o .text.release_handler - 0x0000000008041c54 0x224 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008041bc0 0x224 ./Drivers/lvgl/src/widgets/lv_roller.o .text.inf_normalize - 0x0000000008041e78 0x118 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008041de4 0x118 ./Drivers/lvgl/src/widgets/lv_roller.o .text.get_label - 0x0000000008041f90 0x1a ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008041efc 0x1a ./Drivers/lvgl/src/widgets/lv_roller.o .text.get_selected_label_width - 0x0000000008041faa 0x66 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008041f16 0x66 ./Drivers/lvgl/src/widgets/lv_roller.o .text.scroll_anim_ready_cb - 0x0000000008042010 0x22 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008041f7c 0x22 ./Drivers/lvgl/src/widgets/lv_roller.o .text.set_y_anim - 0x0000000008042032 0x1e ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008041f9e 0x1e ./Drivers/lvgl/src/widgets/lv_roller.o .text.lv_area_copy - 0x0000000008042050 0x3c ./Drivers/lvgl/src/widgets/lv_slider.o + 0x0000000008041fbc 0x3c ./Drivers/lvgl/src/widgets/lv_slider.o .text.lv_obj_get_style_transform_width - 0x000000000804208c 0x26 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x0000000008041ff8 0x26 ./Drivers/lvgl/src/widgets/lv_slider.o .text.lv_obj_get_style_transform_height - 0x00000000080420b2 0x26 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x000000000804201e 0x26 ./Drivers/lvgl/src/widgets/lv_slider.o .text.lv_obj_get_style_transform_zoom - 0x00000000080420d8 0x26 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x0000000008042044 0x26 ./Drivers/lvgl/src/widgets/lv_slider.o .text.lv_obj_get_style_pad_top - 0x00000000080420fe 0x26 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x000000000804206a 0x26 ./Drivers/lvgl/src/widgets/lv_slider.o .text.lv_obj_get_style_pad_bottom - 0x0000000008042124 0x26 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x0000000008042090 0x26 ./Drivers/lvgl/src/widgets/lv_slider.o .text.lv_obj_get_style_pad_left - 0x000000000804214a 0x26 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x00000000080420b6 0x26 ./Drivers/lvgl/src/widgets/lv_slider.o .text.lv_obj_get_style_pad_right - 0x0000000008042170 0x26 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x00000000080420dc 0x26 ./Drivers/lvgl/src/widgets/lv_slider.o .text.lv_obj_get_style_base_dir - 0x0000000008042196 0x26 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x0000000008042102 0x26 ./Drivers/lvgl/src/widgets/lv_slider.o .text.lv_slider_set_value - 0x00000000080421bc 0x22 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x0000000008042128 0x22 ./Drivers/lvgl/src/widgets/lv_slider.o .text.lv_slider_set_left_value - 0x00000000080421de 0x22 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x000000000804214a 0x22 ./Drivers/lvgl/src/widgets/lv_slider.o .text.lv_slider_get_value - 0x0000000008042200 0x18 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x000000000804216c 0x18 ./Drivers/lvgl/src/widgets/lv_slider.o .text.lv_slider_get_left_value - 0x0000000008042218 0x18 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x0000000008042184 0x18 ./Drivers/lvgl/src/widgets/lv_slider.o .text.lv_slider_get_mode - 0x0000000008042230 0x30 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x000000000804219c 0x30 ./Drivers/lvgl/src/widgets/lv_slider.o .text.lv_slider_constructor - 0x0000000008042260 0x80 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x00000000080421cc 0x80 ./Drivers/lvgl/src/widgets/lv_slider.o .text.lv_slider_event - 0x00000000080422e0 0x890 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x000000000804224c 0x890 ./Drivers/lvgl/src/widgets/lv_slider.o .text.draw_knob - 0x0000000008042b70 0x3bc ./Drivers/lvgl/src/widgets/lv_slider.o + 0x0000000008042adc 0x3bc ./Drivers/lvgl/src/widgets/lv_slider.o .text.position_knob - 0x0000000008042f2c 0x172 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x0000000008042e98 0x172 ./Drivers/lvgl/src/widgets/lv_slider.o .text.lv_area_copy - 0x000000000804309e 0x3c ./Drivers/lvgl/src/widgets/lv_switch.o + 0x000000000804300a 0x3c ./Drivers/lvgl/src/widgets/lv_switch.o .text.lv_area_get_width - 0x00000000080430da 0x2c ./Drivers/lvgl/src/widgets/lv_switch.o + 0x0000000008043046 0x2c ./Drivers/lvgl/src/widgets/lv_switch.o .text.lv_anim_set_var - 0x0000000008043106 0x1a ./Drivers/lvgl/src/widgets/lv_switch.o + 0x0000000008043072 0x1a ./Drivers/lvgl/src/widgets/lv_switch.o .text.lv_anim_set_exec_cb - 0x0000000008043120 0x1a ./Drivers/lvgl/src/widgets/lv_switch.o + 0x000000000804308c 0x1a ./Drivers/lvgl/src/widgets/lv_switch.o .text.lv_anim_set_time - 0x000000000804313a 0x1a ./Drivers/lvgl/src/widgets/lv_switch.o + 0x00000000080430a6 0x1a ./Drivers/lvgl/src/widgets/lv_switch.o .text.lv_anim_set_values - 0x0000000008043154 0x28 ./Drivers/lvgl/src/widgets/lv_switch.o + 0x00000000080430c0 0x28 ./Drivers/lvgl/src/widgets/lv_switch.o .text.lv_anim_set_ready_cb - 0x000000000804317c 0x1a ./Drivers/lvgl/src/widgets/lv_switch.o + 0x00000000080430e8 0x1a ./Drivers/lvgl/src/widgets/lv_switch.o .text.lv_obj_get_style_pad_top - 0x0000000008043196 0x26 ./Drivers/lvgl/src/widgets/lv_switch.o + 0x0000000008043102 0x26 ./Drivers/lvgl/src/widgets/lv_switch.o .text.lv_obj_get_style_pad_bottom + 0x0000000008043128 0x26 ./Drivers/lvgl/src/widgets/lv_switch.o + .text.lv_obj_get_style_pad_left + 0x000000000804314e 0x26 ./Drivers/lvgl/src/widgets/lv_switch.o + .text.lv_obj_get_style_pad_right + 0x0000000008043174 0x26 ./Drivers/lvgl/src/widgets/lv_switch.o + .text.lv_obj_get_style_anim_time + 0x000000000804319a 0x22 ./Drivers/lvgl/src/widgets/lv_switch.o + .text.lv_obj_get_style_base_dir 0x00000000080431bc 0x26 ./Drivers/lvgl/src/widgets/lv_switch.o - .text.lv_obj_get_style_pad_left - 0x00000000080431e2 0x26 ./Drivers/lvgl/src/widgets/lv_switch.o - .text.lv_obj_get_style_pad_right - 0x0000000008043208 0x26 ./Drivers/lvgl/src/widgets/lv_switch.o - .text.lv_obj_get_style_anim_time - 0x000000000804322e 0x22 ./Drivers/lvgl/src/widgets/lv_switch.o - .text.lv_obj_get_style_base_dir - 0x0000000008043250 0x26 ./Drivers/lvgl/src/widgets/lv_switch.o .text.lv_switch_constructor - 0x0000000008043276 0x38 ./Drivers/lvgl/src/widgets/lv_switch.o + 0x00000000080431e2 0x38 ./Drivers/lvgl/src/widgets/lv_switch.o .text.lv_switch_destructor - 0x00000000080432ae 0x1e ./Drivers/lvgl/src/widgets/lv_switch.o + 0x000000000804321a 0x1e ./Drivers/lvgl/src/widgets/lv_switch.o .text.lv_switch_event - 0x00000000080432cc 0x134 ./Drivers/lvgl/src/widgets/lv_switch.o + 0x0000000008043238 0x134 ./Drivers/lvgl/src/widgets/lv_switch.o .text.draw_main - 0x0000000008043400 0x2ae ./Drivers/lvgl/src/widgets/lv_switch.o + 0x000000000804336c 0x2ae ./Drivers/lvgl/src/widgets/lv_switch.o .text.lv_switch_anim_exec_cb - 0x00000000080436ae 0x22 ./Drivers/lvgl/src/widgets/lv_switch.o + 0x000000000804361a 0x22 ./Drivers/lvgl/src/widgets/lv_switch.o .text.lv_switch_anim_ready - 0x00000000080436d0 0x24 ./Drivers/lvgl/src/widgets/lv_switch.o + 0x000000000804363c 0x24 ./Drivers/lvgl/src/widgets/lv_switch.o .text.lv_switch_trigger_anim - 0x00000000080436f4 0x100 ./Drivers/lvgl/src/widgets/lv_switch.o + 0x0000000008043660 0x100 ./Drivers/lvgl/src/widgets/lv_switch.o .text.lv_area_copy - 0x00000000080437f4 0x3c ./Drivers/lvgl/src/widgets/lv_table.o + 0x0000000008043760 0x3c ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_area_get_width - 0x0000000008043830 0x2c ./Drivers/lvgl/src/widgets/lv_table.o + 0x000000000804379c 0x2c ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_font_get_line_height - 0x000000000804385c 0x18 ./Drivers/lvgl/src/widgets/lv_table.o + 0x00000000080437c8 0x18 ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_obj_get_style_min_height - 0x0000000008043874 0x26 ./Drivers/lvgl/src/widgets/lv_table.o + 0x00000000080437e0 0x26 ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_obj_get_style_max_height - 0x000000000804389a 0x26 ./Drivers/lvgl/src/widgets/lv_table.o + 0x0000000008043806 0x26 ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_obj_get_style_pad_top - 0x00000000080438c0 0x26 ./Drivers/lvgl/src/widgets/lv_table.o + 0x000000000804382c 0x26 ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_obj_get_style_pad_bottom - 0x00000000080438e6 0x26 ./Drivers/lvgl/src/widgets/lv_table.o + 0x0000000008043852 0x26 ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_obj_get_style_pad_left - 0x000000000804390c 0x26 ./Drivers/lvgl/src/widgets/lv_table.o + 0x0000000008043878 0x26 ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_obj_get_style_pad_right - 0x0000000008043932 0x26 ./Drivers/lvgl/src/widgets/lv_table.o + 0x000000000804389e 0x26 ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_obj_get_style_border_width - 0x0000000008043958 0x26 ./Drivers/lvgl/src/widgets/lv_table.o + 0x00000000080438c4 0x26 ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_obj_get_style_text_font - 0x000000000804397e 0x24 ./Drivers/lvgl/src/widgets/lv_table.o + 0x00000000080438ea 0x24 ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_obj_get_style_text_letter_space - 0x00000000080439a2 0x26 ./Drivers/lvgl/src/widgets/lv_table.o + 0x000000000804390e 0x26 ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_obj_get_style_text_line_space - 0x00000000080439c8 0x26 ./Drivers/lvgl/src/widgets/lv_table.o + 0x0000000008043934 0x26 ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_obj_get_style_base_dir - 0x00000000080439ee 0x26 ./Drivers/lvgl/src/widgets/lv_table.o + 0x000000000804395a 0x26 ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_table_constructor - 0x0000000008043a14 0x80 ./Drivers/lvgl/src/widgets/lv_table.o + 0x0000000008043980 0x80 ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_table_destructor - 0x0000000008043a94 0x9c ./Drivers/lvgl/src/widgets/lv_table.o + 0x0000000008043a00 0x9c ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_table_event - 0x0000000008043b30 0x344 ./Drivers/lvgl/src/widgets/lv_table.o + 0x0000000008043a9c 0x344 ./Drivers/lvgl/src/widgets/lv_table.o .text.draw_main - 0x0000000008043e74 0xa18 ./Drivers/lvgl/src/widgets/lv_table.o + 0x0000000008043de0 0xa18 ./Drivers/lvgl/src/widgets/lv_table.o .text.refr_size - 0x000000000804488c 0x120 ./Drivers/lvgl/src/widgets/lv_table.o + 0x00000000080447f8 0x120 ./Drivers/lvgl/src/widgets/lv_table.o .text.get_row_height - 0x00000000080449ac 0x204 ./Drivers/lvgl/src/widgets/lv_table.o + 0x0000000008044918 0x204 ./Drivers/lvgl/src/widgets/lv_table.o .text.get_pressed_cell - 0x0000000008044bb0 0x1c0 ./Drivers/lvgl/src/widgets/lv_table.o + 0x0000000008044b1c 0x1c0 ./Drivers/lvgl/src/widgets/lv_table.o .text.lv_area_copy - 0x0000000008044d70 0x3c ./Drivers/lvgl/src/widgets/lv_textarea.o - .text.lv_pct 0x0000000008044dac 0x36 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044cdc 0x3c ./Drivers/lvgl/src/widgets/lv_textarea.o + .text.lv_pct 0x0000000008044d18 0x36 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_font_get_line_height - 0x0000000008044de2 0x18 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044d4e 0x18 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_anim_set_var - 0x0000000008044dfa 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044d66 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_anim_set_exec_cb - 0x0000000008044e14 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044d80 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_anim_set_time - 0x0000000008044e2e 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044d9a 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_anim_set_values - 0x0000000008044e48 0x28 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044db4 0x28 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_anim_set_path_cb - 0x0000000008044e70 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044ddc 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_anim_set_ready_cb - 0x0000000008044e8a 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044df6 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_anim_set_playback_time - 0x0000000008044ea4 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044e10 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_anim_set_repeat_count - 0x0000000008044ebe 0x1c ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044e2a 0x1c ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_obj_get_style_pad_top - 0x0000000008044eda 0x26 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044e46 0x26 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_obj_get_style_pad_bottom - 0x0000000008044f00 0x26 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044e6c 0x26 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_obj_get_style_pad_left - 0x0000000008044f26 0x26 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044e92 0x26 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_obj_get_style_pad_right - 0x0000000008044f4c 0x26 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044eb8 0x26 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_obj_get_style_border_width - 0x0000000008044f72 0x26 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044ede 0x26 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_obj_get_style_text_color - 0x0000000008044f98 0x24 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044f04 0x24 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_obj_get_style_text_font - 0x0000000008044fbc 0x24 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044f28 0x24 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_obj_get_style_text_line_space - 0x0000000008044fe0 0x26 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044f4c 0x26 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_obj_get_style_anim_time - 0x0000000008045006 0x22 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044f72 0x22 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_textarea_add_char - 0x0000000008045028 0x1d8 ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x0000000008045028 lv_textarea_add_char + 0x0000000008044f94 0x1d8 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008044f94 lv_textarea_add_char .text.lv_textarea_add_text - 0x0000000008045200 0x1e8 ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x0000000008045200 lv_textarea_add_text + 0x000000000804516c 0x1e8 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x000000000804516c lv_textarea_add_text .text.lv_textarea_del_char - 0x00000000080453e8 0x100 ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x00000000080453e8 lv_textarea_del_char + 0x0000000008045354 0x100 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008045354 lv_textarea_del_char .text.lv_textarea_del_char_forward - 0x00000000080454e8 0x38 ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x00000000080454e8 lv_textarea_del_char_forward + 0x0000000008045454 0x38 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008045454 lv_textarea_del_char_forward .text.lv_textarea_set_text - 0x0000000008045520 0x1bc ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x0000000008045520 lv_textarea_set_text + 0x000000000804548c 0x1bc ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x000000000804548c lv_textarea_set_text .text.lv_textarea_set_cursor_pos - 0x00000000080456dc 0x170 ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x00000000080456dc lv_textarea_set_cursor_pos + 0x0000000008045648 0x170 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008045648 lv_textarea_set_cursor_pos .text.lv_textarea_set_cursor_click_pos - 0x000000000804584c 0x2a ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x000000000804584c lv_textarea_set_cursor_click_pos + 0x00000000080457b8 0x2a ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x00000000080457b8 lv_textarea_set_cursor_click_pos .text.lv_textarea_set_one_line - 0x0000000008045876 0xc4 ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x0000000008045876 lv_textarea_set_one_line + 0x00000000080457e2 0xc4 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x00000000080457e2 lv_textarea_set_one_line .text.lv_textarea_get_text - 0x000000000804593a 0x3a ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x000000000804593a lv_textarea_get_text + 0x00000000080458a6 0x3a ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x00000000080458a6 lv_textarea_get_text .text.lv_textarea_get_cursor_pos - 0x0000000008045974 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x0000000008045974 lv_textarea_get_cursor_pos + 0x00000000080458e0 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x00000000080458e0 lv_textarea_get_cursor_pos .text.lv_textarea_get_one_line - 0x000000000804598e 0x2c ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x000000000804598e lv_textarea_get_one_line + 0x00000000080458fa 0x2c ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x00000000080458fa lv_textarea_get_one_line .text.lv_textarea_get_accepted_chars - 0x00000000080459ba 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x00000000080459ba lv_textarea_get_accepted_chars + 0x0000000008045926 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008045926 lv_textarea_get_accepted_chars .text.lv_textarea_get_max_length - 0x00000000080459d4 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x00000000080459d4 lv_textarea_get_max_length + 0x0000000008045940 0x1a ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008045940 lv_textarea_get_max_length .text.lv_textarea_clear_selection - 0x00000000080459ee 0x58 ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x00000000080459ee lv_textarea_clear_selection + 0x000000000804595a 0x58 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x000000000804595a lv_textarea_clear_selection .text.lv_textarea_cursor_right - 0x0000000008045a46 0x28 ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x0000000008045a46 lv_textarea_cursor_right + 0x00000000080459b2 0x28 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x00000000080459b2 lv_textarea_cursor_right .text.lv_textarea_cursor_left - 0x0000000008045a6e 0x2e ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x0000000008045a6e lv_textarea_cursor_left + 0x00000000080459da 0x2e ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x00000000080459da lv_textarea_cursor_left .text.lv_textarea_cursor_down - 0x0000000008045a9c 0xaa ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x0000000008045a9c lv_textarea_cursor_down + 0x0000000008045a08 0xaa ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008045a08 lv_textarea_cursor_down .text.lv_textarea_cursor_up - 0x0000000008045b46 0x96 ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x0000000008045b46 lv_textarea_cursor_up + 0x0000000008045ab2 0x96 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008045ab2 lv_textarea_cursor_up .text.lv_textarea_constructor - 0x0000000008045bdc 0xe8 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008045b48 0xe8 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.lv_textarea_destructor - 0x0000000008045cc4 0x46 ./Drivers/lvgl/src/widgets/lv_textarea.o - *fill* 0x0000000008045d0a 0x2 + 0x0000000008045c30 0x46 ./Drivers/lvgl/src/widgets/lv_textarea.o + *fill* 0x0000000008045c76 0x2 .text.lv_textarea_event - 0x0000000008045d0c 0x138 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008045c78 0x138 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.label_event_cb - 0x0000000008045e44 0x4a ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008045db0 0x4a ./Drivers/lvgl/src/widgets/lv_textarea.o .text.cursor_blink_anim_cb - 0x0000000008045e8e 0xc2 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008045dfa 0xc2 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.pwd_char_hider_anim - 0x0000000008045f50 0x14 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008045ebc 0x14 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.pwd_char_hider_anim_ready - 0x0000000008045f64 0x1c ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008045ed0 0x1c ./Drivers/lvgl/src/widgets/lv_textarea.o .text.pwd_char_hider - 0x0000000008045f80 0xf0 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008045eec 0xf0 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.char_is_accepted - 0x0000000008046070 0xa4 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008045fdc 0xa4 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.start_cursor_blink - 0x0000000008046114 0xb4 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008046080 0xb4 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.refr_cursor_area - 0x00000000080461c8 0x360 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008046134 0x360 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.update_cursor_position_on_click - 0x0000000008046528 0x2fc ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008046494 0x2fc ./Drivers/lvgl/src/widgets/lv_textarea.o .text.insert_handler - 0x0000000008046824 0x60 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008046790 0x60 ./Drivers/lvgl/src/widgets/lv_textarea.o .text.draw_placeholder - 0x0000000008046884 0xec ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x00000000080467f0 0xec ./Drivers/lvgl/src/widgets/lv_textarea.o .text.draw_cursor - 0x0000000008046970 0x1fc ./Drivers/lvgl/src/widgets/lv_textarea.o - .text.memset 0x0000000008046b6c 0x10 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) - 0x0000000008046b6c memset + 0x00000000080468dc 0x1fc ./Drivers/lvgl/src/widgets/lv_textarea.o + .text.memset 0x0000000008046ad8 0x10 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + 0x0000000008046ad8 memset .text.__libc_init_array - 0x0000000008046b7c 0x48 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) - 0x0000000008046b7c __libc_init_array - .text.strcpy 0x0000000008046bc4 0x10 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-strcpy.o) - 0x0000000008046bc4 strcpy - .text.memcpy 0x0000000008046bd4 0x1c /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memcpy-stub.o) - 0x0000000008046bd4 memcpy + 0x0000000008046ae8 0x48 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + 0x0000000008046ae8 __libc_init_array + .text.strcpy 0x0000000008046b30 0x10 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-strcpy.o) + 0x0000000008046b30 strcpy + .text.memcpy 0x0000000008046b40 0x1c /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memcpy-stub.o) + 0x0000000008046b40 memcpy *(.glue_7) - .glue_7 0x0000000008046bf0 0x0 linker stubs + .glue_7 0x0000000008046b5c 0x0 linker stubs *(.glue_7t) - .glue_7t 0x0000000008046bf0 0x0 linker stubs + .glue_7t 0x0000000008046b5c 0x0 linker stubs *(.eh_frame) - .eh_frame 0x0000000008046bf0 0x0 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtbegin.o + .eh_frame 0x0000000008046b5c 0x0 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtbegin.o *(.init) - .init 0x0000000008046bf0 0x4 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crti.o - 0x0000000008046bf0 _init - .init 0x0000000008046bf4 0x8 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtn.o + .init 0x0000000008046b5c 0x4 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crti.o + 0x0000000008046b5c _init + .init 0x0000000008046b60 0x8 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtn.o *(.fini) - .fini 0x0000000008046bfc 0x4 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crti.o - 0x0000000008046bfc _fini - .fini 0x0000000008046c00 0x8 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtn.o - 0x0000000008046c08 . = ALIGN (0x4) - 0x0000000008046c08 _etext = . + .fini 0x0000000008046b68 0x4 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crti.o + 0x0000000008046b68 _fini + .fini 0x0000000008046b6c 0x8 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtn.o + 0x0000000008046b74 . = ALIGN (0x4) + 0x0000000008046b74 _etext = . -.vfp11_veneer 0x0000000008046c08 0x0 - .vfp11_veneer 0x0000000008046c08 0x0 linker stubs +.vfp11_veneer 0x0000000008046b74 0x0 + .vfp11_veneer 0x0000000008046b74 0x0 linker stubs -.v4_bx 0x0000000008046c08 0x0 - .v4_bx 0x0000000008046c08 0x0 linker stubs +.v4_bx 0x0000000008046b74 0x0 + .v4_bx 0x0000000008046b74 0x0 linker stubs -.iplt 0x0000000008046c08 0x0 - .iplt 0x0000000008046c08 0x0 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtbegin.o +.iplt 0x0000000008046b74 0x0 + .iplt 0x0000000008046b74 0x0 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtbegin.o -.rodata 0x0000000008046c08 0x29f64 - 0x0000000008046c08 . = ALIGN (0x4) +.rodata 0x0000000008046b74 0x29f50 + 0x0000000008046b74 . = ALIGN (0x4) *(.rodata) - .rodata 0x0000000008046c08 0x16 ./Core/Src/main.o - *fill* 0x0000000008046c1e 0x2 - .rodata 0x0000000008046c20 0x3 ./Drivers/lvgl/src/core/lv_obj.o - *fill* 0x0000000008046c23 0x1 - .rodata 0x0000000008046c24 0x8 ./Drivers/lvgl/src/draw/lv_draw_img.o - .rodata 0x0000000008046c2c 0x10 ./Drivers/lvgl/src/draw/lv_img_buf.o - .rodata 0x0000000008046c3c 0x14 ./Drivers/lvgl/src/draw/lv_img_decoder.o - .rodata 0x0000000008046c50 0x8 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o - .rodata 0x0000000008046c58 0x4 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o - .rodata 0x0000000008046c5c 0x25 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o - *fill* 0x0000000008046c81 0x3 - .rodata 0x0000000008046c84 0x7a ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o - *fill* 0x0000000008046cfe 0x2 - .rodata 0x0000000008046d00 0x28b ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o - *fill* 0x0000000008046f8b 0x1 - .rodata 0x0000000008046f8c 0x4 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o - .rodata 0x0000000008046f90 0x1a2 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o - *fill* 0x0000000008047132 0x2 - .rodata 0x0000000008047134 0x4 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - .rodata 0x0000000008047138 0x4 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o - .rodata 0x000000000804713c 0x4 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o - .rodata 0x0000000008047140 0x6 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o - *fill* 0x0000000008047146 0x2 - .rodata 0x0000000008047148 0x1 ./Drivers/lvgl/src/misc/lv_fs.o - *fill* 0x0000000008047149 0x3 - .rodata 0x000000000804714c 0x8 ./Drivers/lvgl/src/misc/lv_txt.o - .rodata 0x0000000008047154 0x2d ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - *fill* 0x0000000008047181 0x3 - .rodata 0x0000000008047184 0xa ./Drivers/lvgl/src/widgets/lv_checkbox.o - *fill* 0x000000000804718e 0x2 - .rodata 0x0000000008047190 0x27 ./Drivers/lvgl/src/widgets/lv_dropdown.o - *fill* 0x00000000080471b7 0x1 - .rodata 0x00000000080471b8 0x5 ./Drivers/lvgl/src/widgets/lv_label.o - *fill* 0x00000000080471bd 0x3 - .rodata 0x00000000080471c0 0x2d ./Drivers/lvgl/src/widgets/lv_roller.o - *fill* 0x00000000080471ed 0x3 - .rodata 0x00000000080471f0 0xa ./Drivers/lvgl/src/widgets/lv_textarea.o + .rodata 0x0000000008046b74 0x2 ./Core/Src/main.o + *fill* 0x0000000008046b76 0x2 + .rodata 0x0000000008046b78 0x3 ./Drivers/lvgl/src/core/lv_obj.o + *fill* 0x0000000008046b7b 0x1 + .rodata 0x0000000008046b7c 0x8 ./Drivers/lvgl/src/draw/lv_draw_img.o + .rodata 0x0000000008046b84 0x10 ./Drivers/lvgl/src/draw/lv_img_buf.o + .rodata 0x0000000008046b94 0x14 ./Drivers/lvgl/src/draw/lv_img_decoder.o + .rodata 0x0000000008046ba8 0x8 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o + .rodata 0x0000000008046bb0 0x4 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + .rodata 0x0000000008046bb4 0x25 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + *fill* 0x0000000008046bd9 0x3 + .rodata 0x0000000008046bdc 0x7a ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o + *fill* 0x0000000008046c56 0x2 + .rodata 0x0000000008046c58 0x28b ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o + *fill* 0x0000000008046ee3 0x1 + .rodata 0x0000000008046ee4 0x4 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + .rodata 0x0000000008046ee8 0x1a2 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + *fill* 0x000000000804708a 0x2 + .rodata 0x000000000804708c 0x4 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + .rodata 0x0000000008047090 0x4 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + .rodata 0x0000000008047094 0x4 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + .rodata 0x0000000008047098 0x6 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + *fill* 0x000000000804709e 0x2 + .rodata 0x00000000080470a0 0x1 ./Drivers/lvgl/src/misc/lv_fs.o + *fill* 0x00000000080470a1 0x3 + .rodata 0x00000000080470a4 0x8 ./Drivers/lvgl/src/misc/lv_txt.o + .rodata 0x00000000080470ac 0x2d ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + *fill* 0x00000000080470d9 0x3 + .rodata 0x00000000080470dc 0xa ./Drivers/lvgl/src/widgets/lv_checkbox.o + *fill* 0x00000000080470e6 0x2 + .rodata 0x00000000080470e8 0x27 ./Drivers/lvgl/src/widgets/lv_dropdown.o + *fill* 0x000000000804710f 0x1 + .rodata 0x0000000008047110 0x5 ./Drivers/lvgl/src/widgets/lv_label.o + *fill* 0x0000000008047115 0x3 + .rodata 0x0000000008047118 0x2d ./Drivers/lvgl/src/widgets/lv_roller.o + *fill* 0x0000000008047145 0x3 + .rodata 0x0000000008047148 0xa ./Drivers/lvgl/src/widgets/lv_textarea.o *(.rodata*) - *fill* 0x00000000080471fa 0x2 + *fill* 0x0000000008047152 0x2 .rodata.logo_mint_resize_map - 0x00000000080471fc 0x25800 ./Core/Src/logo_mint_resize.o - 0x00000000080471fc logo_mint_resize_map + 0x0000000008047154 0x25800 ./Core/Src/logo_mint_resize.o + 0x0000000008047154 logo_mint_resize_map .rodata.logo_mint_resize - 0x000000000806c9fc 0xc ./Core/Src/logo_mint_resize.o - 0x000000000806c9fc logo_mint_resize + 0x000000000806c954 0xc ./Core/Src/logo_mint_resize.o + 0x000000000806c954 logo_mint_resize .rodata.AHBPrescTable - 0x000000000806ca08 0x10 ./Core/Src/system_stm32f1xx.o - 0x000000000806ca08 AHBPrescTable + 0x000000000806c960 0x10 ./Core/Src/system_stm32f1xx.o + 0x000000000806c960 AHBPrescTable .rodata.APBPrescTable - 0x000000000806ca18 0x8 ./Core/Src/system_stm32f1xx.o - 0x000000000806ca18 APBPrescTable + 0x000000000806c970 0x8 ./Core/Src/system_stm32f1xx.o + 0x000000000806c970 APBPrescTable .rodata.aPLLMULFactorTable.1 - 0x000000000806ca20 0x10 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x000000000806c978 0x10 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o .rodata.aPredivFactorTable.0 - 0x000000000806ca30 0x2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - *fill* 0x000000000806ca32 0x2 + 0x000000000806c988 0x2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + *fill* 0x000000000806c98a 0x2 .rodata.lv_obj_class - 0x000000000806ca34 0x1c ./Drivers/lvgl/src/core/lv_obj.o - 0x000000000806ca34 lv_obj_class + 0x000000000806c98c 0x1c ./Drivers/lvgl/src/core/lv_obj.o + 0x000000000806c98c lv_obj_class .rodata._lv_bpp1_opa_table - 0x000000000806ca50 0x2 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o - 0x000000000806ca50 _lv_bpp1_opa_table - *fill* 0x000000000806ca52 0x2 + 0x000000000806c9a8 0x2 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + 0x000000000806c9a8 _lv_bpp1_opa_table + *fill* 0x000000000806c9aa 0x2 .rodata._lv_bpp2_opa_table - 0x000000000806ca54 0x4 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o - 0x000000000806ca54 _lv_bpp2_opa_table + 0x000000000806c9ac 0x4 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + 0x000000000806c9ac _lv_bpp2_opa_table .rodata._lv_bpp4_opa_table - 0x000000000806ca58 0x10 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o - 0x000000000806ca58 _lv_bpp4_opa_table + 0x000000000806c9b0 0x10 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + 0x000000000806c9b0 _lv_bpp4_opa_table .rodata._lv_bpp8_opa_table - 0x000000000806ca68 0x100 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o - 0x000000000806ca68 _lv_bpp8_opa_table + 0x000000000806c9c0 0x100 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + 0x000000000806c9c0 _lv_bpp8_opa_table .rodata.wcorr.0 - 0x000000000806cb68 0x21 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o - *fill* 0x000000000806cb89 0x3 + 0x000000000806cac0 0x21 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o + *fill* 0x000000000806cae1 0x3 .rodata.trans_props.3 - 0x000000000806cb8c 0x16 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o - *fill* 0x000000000806cba2 0x2 + 0x000000000806cae4 0x16 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + *fill* 0x000000000806cafa 0x2 .rodata.lv_calendar_class - 0x000000000806cba4 0x1c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o - 0x000000000806cba4 lv_calendar_class + 0x000000000806cafc 0x1c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + 0x000000000806cafc lv_calendar_class .rodata.lv_calendar_header_arrow_class - 0x000000000806cbc0 0x1c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o - 0x000000000806cbc0 lv_calendar_header_arrow_class + 0x000000000806cb18 0x1c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o + 0x000000000806cb18 lv_calendar_header_arrow_class .rodata.lv_calendar_header_dropdown_class - 0x000000000806cbdc 0x1c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o - 0x000000000806cbdc lv_calendar_header_dropdown_class + 0x000000000806cb34 0x1c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o + 0x000000000806cb34 lv_calendar_header_dropdown_class .rodata.lv_chart_class - 0x000000000806cbf8 0x1c ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o - 0x000000000806cbf8 lv_chart_class + 0x000000000806cb50 0x1c ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x000000000806cb50 lv_chart_class .rodata.lv_colorwheel_class - 0x000000000806cc14 0x1c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o - 0x000000000806cc14 lv_colorwheel_class + 0x000000000806cb6c 0x1c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x000000000806cb6c lv_colorwheel_class .rodata.lv_keyboard_class - 0x000000000806cc30 0x1c ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o - 0x000000000806cc30 lv_keyboard_class + 0x000000000806cb88 0x1c ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + 0x000000000806cb88 lv_keyboard_class .rodata.default_kb_map_lc - 0x000000000806cc4c 0xb0 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + 0x000000000806cba4 0xb0 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o .rodata.default_kb_ctrl_lc_map - 0x000000000806ccfc 0x50 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + 0x000000000806cc54 0x50 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o .rodata.default_kb_map_uc - 0x000000000806cd4c 0xb0 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + 0x000000000806cca4 0xb0 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o .rodata.default_kb_ctrl_uc_map - 0x000000000806cdfc 0x50 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + 0x000000000806cd54 0x50 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o .rodata.default_kb_map_spec - 0x000000000806ce4c 0xb0 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + 0x000000000806cda4 0xb0 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o .rodata.default_kb_ctrl_spec_map - 0x000000000806cefc 0x50 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + 0x000000000806ce54 0x50 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o .rodata.default_kb_map_num - 0x000000000806cf4c 0x54 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + 0x000000000806cea4 0x54 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o .rodata.default_kb_ctrl_num_map - 0x000000000806cfa0 0x22 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o - *fill* 0x000000000806cfc2 0x2 + 0x000000000806cef8 0x22 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + *fill* 0x000000000806cf1a 0x2 .rodata.lv_led_class - 0x000000000806cfc4 0x1c ./Drivers/lvgl/src/extra/widgets/led/lv_led.o - 0x000000000806cfc4 lv_led_class + 0x000000000806cf1c 0x1c ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + 0x000000000806cf1c lv_led_class .rodata.lv_list_class - 0x000000000806cfe0 0x1c ./Drivers/lvgl/src/extra/widgets/list/lv_list.o - 0x000000000806cfe0 lv_list_class + 0x000000000806cf38 0x1c ./Drivers/lvgl/src/extra/widgets/list/lv_list.o + 0x000000000806cf38 lv_list_class .rodata.lv_list_btn_class - 0x000000000806cffc 0x1c ./Drivers/lvgl/src/extra/widgets/list/lv_list.o - 0x000000000806cffc lv_list_btn_class + 0x000000000806cf54 0x1c ./Drivers/lvgl/src/extra/widgets/list/lv_list.o + 0x000000000806cf54 lv_list_btn_class .rodata.lv_list_text_class - 0x000000000806d018 0x1c ./Drivers/lvgl/src/extra/widgets/list/lv_list.o - 0x000000000806d018 lv_list_text_class + 0x000000000806cf70 0x1c ./Drivers/lvgl/src/extra/widgets/list/lv_list.o + 0x000000000806cf70 lv_list_text_class .rodata.lv_menu_class - 0x000000000806d034 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - 0x000000000806d034 lv_menu_class + 0x000000000806cf8c 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000806cf8c lv_menu_class .rodata.lv_menu_page_class - 0x000000000806d050 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - 0x000000000806d050 lv_menu_page_class + 0x000000000806cfa8 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000806cfa8 lv_menu_page_class .rodata.lv_menu_cont_class - 0x000000000806d06c 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - 0x000000000806d06c lv_menu_cont_class + 0x000000000806cfc4 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000806cfc4 lv_menu_cont_class .rodata.lv_menu_section_class - 0x000000000806d088 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - 0x000000000806d088 lv_menu_section_class + 0x000000000806cfe0 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000806cfe0 lv_menu_section_class .rodata.lv_menu_separator_class - 0x000000000806d0a4 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - 0x000000000806d0a4 lv_menu_separator_class + 0x000000000806cffc 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000806cffc lv_menu_separator_class .rodata.lv_menu_sidebar_cont_class - 0x000000000806d0c0 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - 0x000000000806d0c0 lv_menu_sidebar_cont_class + 0x000000000806d018 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000806d018 lv_menu_sidebar_cont_class .rodata.lv_menu_main_cont_class - 0x000000000806d0dc 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - 0x000000000806d0dc lv_menu_main_cont_class + 0x000000000806d034 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000806d034 lv_menu_main_cont_class .rodata.lv_menu_main_header_cont_class - 0x000000000806d0f8 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - 0x000000000806d0f8 lv_menu_main_header_cont_class + 0x000000000806d050 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000806d050 lv_menu_main_header_cont_class .rodata.lv_menu_sidebar_header_cont_class - 0x000000000806d114 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - 0x000000000806d114 lv_menu_sidebar_header_cont_class + 0x000000000806d06c 0x1c ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x000000000806d06c lv_menu_sidebar_header_cont_class .rodata.lv_meter_class - 0x000000000806d130 0x1c ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o - 0x000000000806d130 lv_meter_class + 0x000000000806d088 0x1c ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x000000000806d088 lv_meter_class .rodata.lv_msgbox_class - 0x000000000806d14c 0x1c ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o - 0x000000000806d14c lv_msgbox_class + 0x000000000806d0a4 0x1c ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o + 0x000000000806d0a4 lv_msgbox_class .rodata.lv_msgbox_backdrop_class - 0x000000000806d168 0x1c ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o - 0x000000000806d168 lv_msgbox_backdrop_class + 0x000000000806d0c0 0x1c ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o + 0x000000000806d0c0 lv_msgbox_backdrop_class .rodata.lv_spinbox_class - 0x000000000806d184 0x1c ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o - 0x000000000806d184 lv_spinbox_class + 0x000000000806d0dc 0x1c ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + 0x000000000806d0dc lv_spinbox_class .rodata.lv_spinner_class - 0x000000000806d1a0 0x1c ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o - 0x000000000806d1a0 lv_spinner_class + 0x000000000806d0f8 0x1c ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + 0x000000000806d0f8 lv_spinner_class .rodata.lv_tabview_class - 0x000000000806d1bc 0x1c ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o - 0x000000000806d1bc lv_tabview_class + 0x000000000806d114 0x1c ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + 0x000000000806d114 lv_tabview_class .rodata.lv_tileview_class - 0x000000000806d1d8 0x1c ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o - 0x000000000806d1d8 lv_tileview_class + 0x000000000806d130 0x1c ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o + 0x000000000806d130 lv_tileview_class .rodata.lv_tileview_tile_class - 0x000000000806d1f4 0x1c ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o - 0x000000000806d1f4 lv_tileview_tile_class + 0x000000000806d14c 0x1c ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o + 0x000000000806d14c lv_tileview_tile_class .rodata.lv_win_class - 0x000000000806d210 0x1c ./Drivers/lvgl/src/extra/widgets/win/lv_win.o - 0x000000000806d210 lv_win_class + 0x000000000806d168 0x1c ./Drivers/lvgl/src/extra/widgets/win/lv_win.o + 0x000000000806d168 lv_win_class .rodata.glyph_bitmap - 0x000000000806d22c 0x2280 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + 0x000000000806d184 0x2280 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o .rodata.glyph_dsc - 0x000000000806f4ac 0x4f0 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + 0x000000000806f404 0x4f0 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o .rodata.unicode_list_1 - 0x000000000806f99c 0x7c ./Drivers/lvgl/src/font/lv_font_montserrat_14.o - .rodata.cmaps 0x000000000806fa18 0x28 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + 0x000000000806f8f4 0x7c ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + .rodata.cmaps 0x000000000806f970 0x28 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o .rodata.kern_left_class_mapping - 0x000000000806fa40 0x9e ./Drivers/lvgl/src/font/lv_font_montserrat_14.o - *fill* 0x000000000806fade 0x2 + 0x000000000806f998 0x9e ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + *fill* 0x000000000806fa36 0x2 .rodata.kern_right_class_mapping - 0x000000000806fae0 0x9e ./Drivers/lvgl/src/font/lv_font_montserrat_14.o - *fill* 0x000000000806fb7e 0x2 + 0x000000000806fa38 0x9e ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + *fill* 0x000000000806fad6 0x2 .rodata.kern_class_values - 0x000000000806fb80 0xbad ./Drivers/lvgl/src/font/lv_font_montserrat_14.o - *fill* 0x000000000807072d 0x3 + 0x000000000806fad8 0xbad ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + *fill* 0x0000000008070685 0x3 .rodata.kern_classes - 0x0000000008070730 0x10 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + 0x0000000008070688 0x10 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o .rodata.font_dsc - 0x0000000008070740 0x18 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + 0x0000000008070698 0x18 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o .rodata.lv_font_montserrat_14 - 0x0000000008070758 0x1c ./Drivers/lvgl/src/font/lv_font_montserrat_14.o - 0x0000000008070758 lv_font_montserrat_14 + 0x00000000080706b0 0x1c ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + 0x00000000080706b0 lv_font_montserrat_14 .rodata.colors.2 - 0x0000000008070774 0x26 ./Drivers/lvgl/src/misc/lv_color.o - *fill* 0x000000000807079a 0x2 + 0x00000000080706cc 0x26 ./Drivers/lvgl/src/misc/lv_color.o + *fill* 0x00000000080706f2 0x2 .rodata.colors.1 - 0x000000000807079c 0xbe ./Drivers/lvgl/src/misc/lv_color.o - *fill* 0x000000000807085a 0x2 + 0x00000000080706f4 0xbe ./Drivers/lvgl/src/misc/lv_color.o + *fill* 0x00000000080707b2 0x2 .rodata.colors.0 - 0x000000000807085c 0x98 ./Drivers/lvgl/src/misc/lv_color.o + 0x00000000080707b4 0x98 ./Drivers/lvgl/src/misc/lv_color.o .rodata.sin0_90_table - 0x00000000080708f4 0xb6 ./Drivers/lvgl/src/misc/lv_math.o - *fill* 0x00000000080709aa 0x2 + 0x000000000807084c 0xb6 ./Drivers/lvgl/src/misc/lv_math.o + *fill* 0x0000000008070902 0x2 .rodata.lv_arc_class - 0x00000000080709ac 0x1c ./Drivers/lvgl/src/widgets/lv_arc.o - 0x00000000080709ac lv_arc_class + 0x0000000008070904 0x1c ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000008070904 lv_arc_class .rodata.lv_bar_class - 0x00000000080709c8 0x1c ./Drivers/lvgl/src/widgets/lv_bar.o - 0x00000000080709c8 lv_bar_class + 0x0000000008070920 0x1c ./Drivers/lvgl/src/widgets/lv_bar.o + 0x0000000008070920 lv_bar_class .rodata.lv_btn_class - 0x00000000080709e4 0x1c ./Drivers/lvgl/src/widgets/lv_btn.o - 0x00000000080709e4 lv_btn_class + 0x000000000807093c 0x1c ./Drivers/lvgl/src/widgets/lv_btn.o + 0x000000000807093c lv_btn_class .rodata.lv_btnmatrix_class - 0x0000000008070a00 0x1c ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - 0x0000000008070a00 lv_btnmatrix_class + 0x0000000008070958 0x1c ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000008070958 lv_btnmatrix_class .rodata.lv_checkbox_class - 0x0000000008070a1c 0x1c ./Drivers/lvgl/src/widgets/lv_checkbox.o - 0x0000000008070a1c lv_checkbox_class + 0x0000000008070974 0x1c ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x0000000008070974 lv_checkbox_class .rodata.lv_dropdown_class - 0x0000000008070a38 0x1c ./Drivers/lvgl/src/widgets/lv_dropdown.o - 0x0000000008070a38 lv_dropdown_class + 0x0000000008070990 0x1c ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x0000000008070990 lv_dropdown_class .rodata.lv_dropdownlist_class - 0x0000000008070a54 0x1c ./Drivers/lvgl/src/widgets/lv_dropdown.o - 0x0000000008070a54 lv_dropdownlist_class + 0x00000000080709ac 0x1c ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x00000000080709ac lv_dropdownlist_class .rodata.lv_img_class - 0x0000000008070a70 0x1c ./Drivers/lvgl/src/widgets/lv_img.o - 0x0000000008070a70 lv_img_class + 0x00000000080709c8 0x1c ./Drivers/lvgl/src/widgets/lv_img.o + 0x00000000080709c8 lv_img_class .rodata.lv_label_class - 0x0000000008070a8c 0x1c ./Drivers/lvgl/src/widgets/lv_label.o - 0x0000000008070a8c lv_label_class + 0x00000000080709e4 0x1c ./Drivers/lvgl/src/widgets/lv_label.o + 0x00000000080709e4 lv_label_class .rodata.lv_line_class - 0x0000000008070aa8 0x1c ./Drivers/lvgl/src/widgets/lv_line.o - 0x0000000008070aa8 lv_line_class + 0x0000000008070a00 0x1c ./Drivers/lvgl/src/widgets/lv_line.o + 0x0000000008070a00 lv_line_class .rodata.lv_roller_class - 0x0000000008070ac4 0x1c ./Drivers/lvgl/src/widgets/lv_roller.o - 0x0000000008070ac4 lv_roller_class + 0x0000000008070a1c 0x1c ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008070a1c lv_roller_class .rodata.lv_roller_label_class - 0x0000000008070ae0 0x1c ./Drivers/lvgl/src/widgets/lv_roller.o - 0x0000000008070ae0 lv_roller_label_class + 0x0000000008070a38 0x1c ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000008070a38 lv_roller_label_class .rodata.lv_slider_class - 0x0000000008070afc 0x1c ./Drivers/lvgl/src/widgets/lv_slider.o - 0x0000000008070afc lv_slider_class + 0x0000000008070a54 0x1c ./Drivers/lvgl/src/widgets/lv_slider.o + 0x0000000008070a54 lv_slider_class .rodata.lv_switch_class - 0x0000000008070b18 0x1c ./Drivers/lvgl/src/widgets/lv_switch.o - 0x0000000008070b18 lv_switch_class + 0x0000000008070a70 0x1c ./Drivers/lvgl/src/widgets/lv_switch.o + 0x0000000008070a70 lv_switch_class .rodata.lv_table_class - 0x0000000008070b34 0x1c ./Drivers/lvgl/src/widgets/lv_table.o - 0x0000000008070b34 lv_table_class + 0x0000000008070a8c 0x1c ./Drivers/lvgl/src/widgets/lv_table.o + 0x0000000008070a8c lv_table_class .rodata.lv_textarea_class - 0x0000000008070b50 0x1c ./Drivers/lvgl/src/widgets/lv_textarea.o - 0x0000000008070b50 lv_textarea_class - 0x0000000008070b6c . = ALIGN (0x4) + 0x0000000008070aa8 0x1c ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000008070aa8 lv_textarea_class + 0x0000000008070ac4 . = ALIGN (0x4) -.ARM.extab 0x0000000008070b6c 0x0 - 0x0000000008070b6c . = ALIGN (0x4) +.ARM.extab 0x0000000008070ac4 0x0 + 0x0000000008070ac4 . = ALIGN (0x4) *(.ARM.extab* .gnu.linkonce.armextab.*) - 0x0000000008070b6c . = ALIGN (0x4) + 0x0000000008070ac4 . = ALIGN (0x4) -.ARM 0x0000000008070b6c 0x8 - 0x0000000008070b6c . = ALIGN (0x4) - 0x0000000008070b6c __exidx_start = . +.ARM 0x0000000008070ac4 0x8 + 0x0000000008070ac4 . = ALIGN (0x4) + 0x0000000008070ac4 __exidx_start = . *(.ARM.exidx*) - .ARM.exidx 0x0000000008070b6c 0x8 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) - 0x0000000008070b74 __exidx_end = . - 0x0000000008070b74 . = ALIGN (0x4) + .ARM.exidx 0x0000000008070ac4 0x8 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + 0x0000000008070acc __exidx_end = . + 0x0000000008070acc . = ALIGN (0x4) -.rel.dyn 0x0000000008070b74 0x0 - .rel.iplt 0x0000000008070b74 0x0 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtbegin.o +.rel.dyn 0x0000000008070acc 0x0 + .rel.iplt 0x0000000008070acc 0x0 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtbegin.o -.preinit_array 0x0000000008070b74 0x0 - 0x0000000008070b74 . = ALIGN (0x4) - 0x0000000008070b74 PROVIDE (__preinit_array_start = .) +.preinit_array 0x0000000008070acc 0x0 + 0x0000000008070acc . = ALIGN (0x4) + 0x0000000008070acc PROVIDE (__preinit_array_start = .) *(.preinit_array*) - 0x0000000008070b74 PROVIDE (__preinit_array_end = .) - 0x0000000008070b74 . = ALIGN (0x4) + 0x0000000008070acc PROVIDE (__preinit_array_end = .) + 0x0000000008070acc . = ALIGN (0x4) -.init_array 0x0000000008070b74 0x4 - 0x0000000008070b74 . = ALIGN (0x4) - 0x0000000008070b74 PROVIDE (__init_array_start = .) +.init_array 0x0000000008070acc 0x4 + 0x0000000008070acc . = ALIGN (0x4) + 0x0000000008070acc PROVIDE (__init_array_start = .) *(SORT_BY_NAME(.init_array.*)) *(.init_array*) - .init_array 0x0000000008070b74 0x4 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtbegin.o - 0x0000000008070b78 PROVIDE (__init_array_end = .) - 0x0000000008070b78 . = ALIGN (0x4) + .init_array 0x0000000008070acc 0x4 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtbegin.o + 0x0000000008070ad0 PROVIDE (__init_array_end = .) + 0x0000000008070ad0 . = ALIGN (0x4) -.fini_array 0x0000000008070b78 0x4 - 0x0000000008070b78 . = ALIGN (0x4) +.fini_array 0x0000000008070ad0 0x4 + 0x0000000008070ad0 . = ALIGN (0x4) [!provide] PROVIDE (__fini_array_start = .) *(SORT_BY_NAME(.fini_array.*)) *(.fini_array*) - .fini_array 0x0000000008070b78 0x4 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtbegin.o + .fini_array 0x0000000008070ad0 0x4 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtbegin.o [!provide] PROVIDE (__fini_array_end = .) - 0x0000000008070b7c . = ALIGN (0x4) - 0x0000000008070b7c _sidata = LOADADDR (.data) + 0x0000000008070ad4 . = ALIGN (0x4) + 0x0000000008070ad4 _sidata = LOADADDR (.data) -.data 0x0000000020000000 0x11c load address 0x0000000008070b7c +.data 0x0000000020000000 0x11c load address 0x0000000008070ad4 0x0000000020000000 . = ALIGN (0x4) 0x0000000020000000 _sdata = . *(.data) @@ -26589,11 +26719,11 @@ LOAD /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools- 0x000000002000011c . = ALIGN (0x4) 0x000000002000011c _edata = . -.igot.plt 0x000000002000011c 0x0 load address 0x0000000008070c98 +.igot.plt 0x000000002000011c 0x0 load address 0x0000000008070bf0 .igot.plt 0x000000002000011c 0x0 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtbegin.o 0x000000002000011c . = ALIGN (0x4) -.bss 0x000000002000011c 0x5e10 load address 0x0000000008070c98 +.bss 0x000000002000011c 0x5e10 load address 0x0000000008070bf0 0x000000002000011c _sbss = . 0x000000002000011c __bss_start__ = _sbss *(.bss) @@ -26837,7 +26967,7 @@ LOAD /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools- 0x0000000020005f2c __bss_end__ = _ebss ._user_heap_stack - 0x0000000020005f2c 0x604 load address 0x0000000008070c98 + 0x0000000020005f2c 0x604 load address 0x0000000008070bf0 0x0000000020005f30 . = ALIGN (0x8) *fill* 0x0000000020005f2c 0x4 [!provide] PROVIDE (end = .) @@ -26865,231 +26995,233 @@ LOAD /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools- .ARM.attributes 0x0000000000000077 0x2d ./Core/Src/ILI9341.o .ARM.attributes - 0x00000000000000a4 0x2d ./Core/Src/lcdio.o + 0x00000000000000a4 0x2d ./Core/Src/home_screen.o .ARM.attributes - 0x00000000000000d1 0x2d ./Core/Src/logo_mint_resize.o + 0x00000000000000d1 0x2d ./Core/Src/lcdio.o .ARM.attributes - 0x00000000000000fe 0x2d ./Core/Src/main.o + 0x00000000000000fe 0x2d ./Core/Src/logo_mint_resize.o .ARM.attributes - 0x000000000000012b 0x2d ./Core/Src/stm32f1xx_hal_msp.o + 0x000000000000012b 0x2d ./Core/Src/main.o .ARM.attributes - 0x0000000000000158 0x2d ./Core/Src/stm32f1xx_it.o + 0x0000000000000158 0x2d ./Core/Src/stm32f1xx_hal_msp.o .ARM.attributes - 0x0000000000000185 0x2d ./Core/Src/system_stm32f1xx.o + 0x0000000000000185 0x2d ./Core/Src/stm32f1xx_it.o .ARM.attributes - 0x00000000000001b2 0x21 ./Core/Startup/startup_stm32f103vetx.o + 0x00000000000001b2 0x2d ./Core/Src/system_stm32f1xx.o .ARM.attributes - 0x00000000000001d3 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x00000000000001df 0x21 ./Core/Startup/startup_stm32f103vetx.o .ARM.attributes - 0x0000000000000200 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000000000200 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o .ARM.attributes - 0x000000000000022d 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + 0x000000000000022d 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o .ARM.attributes - 0x000000000000025a 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x000000000000025a 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o .ARM.attributes - 0x0000000000000287 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + 0x0000000000000287 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o .ARM.attributes - 0x00000000000002b4 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o + 0x00000000000002b4 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o .ARM.attributes - 0x00000000000002e1 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + 0x00000000000002e1 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o .ARM.attributes - 0x000000000000030e 0x2d ./Drivers/lvgl/src/core/lv_disp.o + 0x000000000000030e 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o .ARM.attributes - 0x000000000000033b 0x2d ./Drivers/lvgl/src/core/lv_event.o + 0x000000000000033b 0x2d ./Drivers/lvgl/src/core/lv_disp.o .ARM.attributes - 0x0000000000000368 0x2d ./Drivers/lvgl/src/core/lv_group.o + 0x0000000000000368 0x2d ./Drivers/lvgl/src/core/lv_event.o .ARM.attributes - 0x0000000000000395 0x2d ./Drivers/lvgl/src/core/lv_indev.o + 0x0000000000000395 0x2d ./Drivers/lvgl/src/core/lv_group.o .ARM.attributes - 0x00000000000003c2 0x2d ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x00000000000003c2 0x2d ./Drivers/lvgl/src/core/lv_indev.o .ARM.attributes - 0x00000000000003ef 0x2d ./Drivers/lvgl/src/core/lv_obj.o + 0x00000000000003ef 0x2d ./Drivers/lvgl/src/core/lv_indev_scroll.o .ARM.attributes - 0x000000000000041c 0x2d ./Drivers/lvgl/src/core/lv_obj_class.o + 0x000000000000041c 0x2d ./Drivers/lvgl/src/core/lv_obj.o .ARM.attributes - 0x0000000000000449 0x2d ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000000000449 0x2d ./Drivers/lvgl/src/core/lv_obj_class.o .ARM.attributes - 0x0000000000000476 0x2d ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000000000476 0x2d ./Drivers/lvgl/src/core/lv_obj_draw.o .ARM.attributes - 0x00000000000004a3 0x2d ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x00000000000004a3 0x2d ./Drivers/lvgl/src/core/lv_obj_pos.o .ARM.attributes - 0x00000000000004d0 0x2d ./Drivers/lvgl/src/core/lv_obj_style.o + 0x00000000000004d0 0x2d ./Drivers/lvgl/src/core/lv_obj_scroll.o .ARM.attributes - 0x00000000000004fd 0x2d ./Drivers/lvgl/src/core/lv_obj_style_gen.o + 0x00000000000004fd 0x2d ./Drivers/lvgl/src/core/lv_obj_style.o .ARM.attributes - 0x000000000000052a 0x2d ./Drivers/lvgl/src/core/lv_obj_tree.o + 0x000000000000052a 0x2d ./Drivers/lvgl/src/core/lv_obj_style_gen.o .ARM.attributes - 0x0000000000000557 0x2d ./Drivers/lvgl/src/core/lv_refr.o + 0x0000000000000557 0x2d ./Drivers/lvgl/src/core/lv_obj_tree.o .ARM.attributes - 0x0000000000000584 0x2d ./Drivers/lvgl/src/core/lv_theme.o + 0x0000000000000584 0x2d ./Drivers/lvgl/src/core/lv_refr.o .ARM.attributes - 0x00000000000005b1 0x2d ./Drivers/lvgl/src/draw/lv_draw.o + 0x00000000000005b1 0x2d ./Drivers/lvgl/src/core/lv_theme.o .ARM.attributes - 0x00000000000005de 0x2d ./Drivers/lvgl/src/draw/lv_draw_arc.o + 0x00000000000005de 0x2d ./Drivers/lvgl/src/draw/lv_draw.o .ARM.attributes - 0x000000000000060b 0x2d ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x000000000000060b 0x2d ./Drivers/lvgl/src/draw/lv_draw_arc.o .ARM.attributes - 0x0000000000000638 0x2d ./Drivers/lvgl/src/draw/lv_draw_label.o + 0x0000000000000638 0x2d ./Drivers/lvgl/src/draw/lv_draw_img.o .ARM.attributes - 0x0000000000000665 0x2d ./Drivers/lvgl/src/draw/lv_draw_line.o + 0x0000000000000665 0x2d ./Drivers/lvgl/src/draw/lv_draw_label.o .ARM.attributes - 0x0000000000000692 0x2d ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000000000692 0x2d ./Drivers/lvgl/src/draw/lv_draw_line.o .ARM.attributes - 0x00000000000006bf 0x2d ./Drivers/lvgl/src/draw/lv_draw_rect.o + 0x00000000000006bf 0x2d ./Drivers/lvgl/src/draw/lv_draw_mask.o .ARM.attributes - 0x00000000000006ec 0x2d ./Drivers/lvgl/src/draw/lv_img_buf.o + 0x00000000000006ec 0x2d ./Drivers/lvgl/src/draw/lv_draw_rect.o .ARM.attributes - 0x0000000000000719 0x2d ./Drivers/lvgl/src/draw/lv_img_cache.o + 0x0000000000000719 0x2d ./Drivers/lvgl/src/draw/lv_img_buf.o .ARM.attributes - 0x0000000000000746 0x2d ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x0000000000000746 0x2d ./Drivers/lvgl/src/draw/lv_img_cache.o .ARM.attributes - 0x0000000000000773 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o + 0x0000000000000773 0x2d ./Drivers/lvgl/src/draw/lv_img_decoder.o .ARM.attributes - 0x00000000000007a0 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + 0x00000000000007a0 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o .ARM.attributes - 0x00000000000007cd 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x00000000000007cd 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o .ARM.attributes - 0x00000000000007fa 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + 0x00000000000007fa 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .ARM.attributes - 0x0000000000000827 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o + 0x0000000000000827 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o .ARM.attributes - 0x0000000000000854 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + 0x0000000000000854 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o .ARM.attributes - 0x0000000000000881 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o + 0x0000000000000881 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o .ARM.attributes - 0x00000000000008ae 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o + 0x00000000000008ae 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o .ARM.attributes - 0x00000000000008db 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x00000000000008db 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o .ARM.attributes - 0x0000000000000908 0x2d ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000000000908 0x2d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o .ARM.attributes - 0x0000000000000935 0x2d ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000000000935 0x2d ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .ARM.attributes - 0x0000000000000962 0x2d ./Drivers/lvgl/src/extra/lv_extra.o + 0x0000000000000962 0x2d ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .ARM.attributes - 0x000000000000098f 0x2d ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x000000000000098f 0x2d ./Drivers/lvgl/src/extra/lv_extra.o .ARM.attributes - 0x00000000000009bc 0x2d ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + 0x00000000000009bc 0x2d ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o .ARM.attributes - 0x00000000000009e9 0x2d ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o + 0x00000000000009e9 0x2d ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o .ARM.attributes - 0x0000000000000a16 0x2d ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o + 0x0000000000000a16 0x2d ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o .ARM.attributes - 0x0000000000000a43 0x2d ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x0000000000000a43 0x2d ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o .ARM.attributes - 0x0000000000000a70 0x2d ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x0000000000000a70 0x2d ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .ARM.attributes - 0x0000000000000a9d 0x2d ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + 0x0000000000000a9d 0x2d ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .ARM.attributes - 0x0000000000000aca 0x2d ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + 0x0000000000000aca 0x2d ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o .ARM.attributes - 0x0000000000000af7 0x2d ./Drivers/lvgl/src/extra/widgets/list/lv_list.o + 0x0000000000000af7 0x2d ./Drivers/lvgl/src/extra/widgets/led/lv_led.o .ARM.attributes - 0x0000000000000b24 0x2d ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x0000000000000b24 0x2d ./Drivers/lvgl/src/extra/widgets/list/lv_list.o .ARM.attributes - 0x0000000000000b51 0x2d ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x0000000000000b51 0x2d ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o .ARM.attributes - 0x0000000000000b7e 0x2d ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o + 0x0000000000000b7e 0x2d ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o .ARM.attributes - 0x0000000000000bab 0x2d ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + 0x0000000000000bab 0x2d ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o .ARM.attributes - 0x0000000000000bd8 0x2d ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + 0x0000000000000bd8 0x2d ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o .ARM.attributes - 0x0000000000000c05 0x2d ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + 0x0000000000000c05 0x2d ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o .ARM.attributes - 0x0000000000000c32 0x2d ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o + 0x0000000000000c32 0x2d ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o .ARM.attributes - 0x0000000000000c5f 0x2d ./Drivers/lvgl/src/extra/widgets/win/lv_win.o + 0x0000000000000c5f 0x2d ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o .ARM.attributes - 0x0000000000000c8c 0x2d ./Drivers/lvgl/src/font/lv_font.o + 0x0000000000000c8c 0x2d ./Drivers/lvgl/src/extra/widgets/win/lv_win.o .ARM.attributes - 0x0000000000000cb9 0x2d ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + 0x0000000000000cb9 0x2d ./Drivers/lvgl/src/font/lv_font.o .ARM.attributes - 0x0000000000000ce6 0x2d ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + 0x0000000000000ce6 0x2d ./Drivers/lvgl/src/font/lv_font_fmt_txt.o .ARM.attributes - 0x0000000000000d13 0x2d ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x0000000000000d13 0x2d ./Drivers/lvgl/src/font/lv_font_montserrat_14.o .ARM.attributes - 0x0000000000000d40 0x2d ./Drivers/lvgl/src/hal/lv_hal_indev.o + 0x0000000000000d40 0x2d ./Drivers/lvgl/src/hal/lv_hal_disp.o .ARM.attributes - 0x0000000000000d6d 0x2d ./Drivers/lvgl/src/hal/lv_hal_tick.o + 0x0000000000000d6d 0x2d ./Drivers/lvgl/src/hal/lv_hal_indev.o .ARM.attributes - 0x0000000000000d9a 0x2d ./Drivers/lvgl/src/misc/lv_anim.o + 0x0000000000000d9a 0x2d ./Drivers/lvgl/src/hal/lv_hal_tick.o .ARM.attributes - 0x0000000000000dc7 0x2d ./Drivers/lvgl/src/misc/lv_area.o + 0x0000000000000dc7 0x2d ./Drivers/lvgl/src/misc/lv_anim.o .ARM.attributes - 0x0000000000000df4 0x2d ./Drivers/lvgl/src/misc/lv_color.o + 0x0000000000000df4 0x2d ./Drivers/lvgl/src/misc/lv_area.o .ARM.attributes - 0x0000000000000e21 0x2d ./Drivers/lvgl/src/misc/lv_fs.o + 0x0000000000000e21 0x2d ./Drivers/lvgl/src/misc/lv_color.o .ARM.attributes - 0x0000000000000e4e 0x2d ./Drivers/lvgl/src/misc/lv_gc.o + 0x0000000000000e4e 0x2d ./Drivers/lvgl/src/misc/lv_fs.o .ARM.attributes - 0x0000000000000e7b 0x2d ./Drivers/lvgl/src/misc/lv_ll.o + 0x0000000000000e7b 0x2d ./Drivers/lvgl/src/misc/lv_gc.o .ARM.attributes - 0x0000000000000ea8 0x2d ./Drivers/lvgl/src/misc/lv_math.o + 0x0000000000000ea8 0x2d ./Drivers/lvgl/src/misc/lv_ll.o .ARM.attributes - 0x0000000000000ed5 0x2d ./Drivers/lvgl/src/misc/lv_mem.o + 0x0000000000000ed5 0x2d ./Drivers/lvgl/src/misc/lv_math.o .ARM.attributes - 0x0000000000000f02 0x2d ./Drivers/lvgl/src/misc/lv_printf.o + 0x0000000000000f02 0x2d ./Drivers/lvgl/src/misc/lv_mem.o .ARM.attributes - 0x0000000000000f2f 0x2d ./Drivers/lvgl/src/misc/lv_style.o + 0x0000000000000f2f 0x2d ./Drivers/lvgl/src/misc/lv_printf.o .ARM.attributes - 0x0000000000000f5c 0x2d ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000000000f5c 0x2d ./Drivers/lvgl/src/misc/lv_style.o .ARM.attributes - 0x0000000000000f89 0x2d ./Drivers/lvgl/src/misc/lv_timer.o + 0x0000000000000f89 0x2d ./Drivers/lvgl/src/misc/lv_style_gen.o .ARM.attributes - 0x0000000000000fb6 0x2d ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000000000fb6 0x2d ./Drivers/lvgl/src/misc/lv_timer.o .ARM.attributes - 0x0000000000000fe3 0x2d ./Drivers/lvgl/src/misc/lv_txt.o + 0x0000000000000fe3 0x2d ./Drivers/lvgl/src/misc/lv_tlsf.o .ARM.attributes - 0x0000000000001010 0x2d ./Drivers/lvgl/src/misc/lv_utils.o + 0x0000000000001010 0x2d ./Drivers/lvgl/src/misc/lv_txt.o .ARM.attributes - 0x000000000000103d 0x2d ./Drivers/lvgl/src/widgets/lv_arc.o + 0x000000000000103d 0x2d ./Drivers/lvgl/src/misc/lv_utils.o .ARM.attributes - 0x000000000000106a 0x2d ./Drivers/lvgl/src/widgets/lv_bar.o + 0x000000000000106a 0x2d ./Drivers/lvgl/src/widgets/lv_arc.o .ARM.attributes - 0x0000000000001097 0x2d ./Drivers/lvgl/src/widgets/lv_btn.o + 0x0000000000001097 0x2d ./Drivers/lvgl/src/widgets/lv_bar.o .ARM.attributes - 0x00000000000010c4 0x2d ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x00000000000010c4 0x2d ./Drivers/lvgl/src/widgets/lv_btn.o .ARM.attributes - 0x00000000000010f1 0x2d ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x00000000000010f1 0x2d ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .ARM.attributes - 0x000000000000111e 0x2d ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x000000000000111e 0x2d ./Drivers/lvgl/src/widgets/lv_checkbox.o .ARM.attributes - 0x000000000000114b 0x2d ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000000114b 0x2d ./Drivers/lvgl/src/widgets/lv_dropdown.o .ARM.attributes - 0x0000000000001178 0x2d ./Drivers/lvgl/src/widgets/lv_label.o + 0x0000000000001178 0x2d ./Drivers/lvgl/src/widgets/lv_img.o .ARM.attributes - 0x00000000000011a5 0x2d ./Drivers/lvgl/src/widgets/lv_line.o + 0x00000000000011a5 0x2d ./Drivers/lvgl/src/widgets/lv_label.o .ARM.attributes - 0x00000000000011d2 0x2d ./Drivers/lvgl/src/widgets/lv_roller.o + 0x00000000000011d2 0x2d ./Drivers/lvgl/src/widgets/lv_line.o .ARM.attributes - 0x00000000000011ff 0x2d ./Drivers/lvgl/src/widgets/lv_slider.o + 0x00000000000011ff 0x2d ./Drivers/lvgl/src/widgets/lv_roller.o .ARM.attributes - 0x000000000000122c 0x2d ./Drivers/lvgl/src/widgets/lv_switch.o + 0x000000000000122c 0x2d ./Drivers/lvgl/src/widgets/lv_slider.o .ARM.attributes - 0x0000000000001259 0x2d ./Drivers/lvgl/src/widgets/lv_table.o + 0x0000000000001259 0x2d ./Drivers/lvgl/src/widgets/lv_switch.o .ARM.attributes - 0x0000000000001286 0x2d ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000000001286 0x2d ./Drivers/lvgl/src/widgets/lv_table.o .ARM.attributes - 0x00000000000012b3 0x2d /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + 0x00000000000012b3 0x2d ./Drivers/lvgl/src/widgets/lv_textarea.o .ARM.attributes - 0x00000000000012e0 0x2d /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + 0x00000000000012e0 0x2d /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) .ARM.attributes - 0x000000000000130d 0x1b /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-strcmp.o) + 0x000000000000130d 0x2d /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) .ARM.attributes - 0x0000000000001328 0x2d /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-strcpy.o) + 0x000000000000133a 0x1b /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-strcmp.o) .ARM.attributes - 0x0000000000001355 0x2d /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memcpy-stub.o) + 0x0000000000001355 0x2d /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-strcpy.o) .ARM.attributes - 0x0000000000001382 0x17 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-strlen.o) + 0x0000000000001382 0x2d /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memcpy-stub.o) .ARM.attributes - 0x0000000000001399 0x1d /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) + 0x00000000000013af 0x17 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-strlen.o) .ARM.attributes - 0x00000000000013b6 0x2d /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + 0x00000000000013c6 0x1d /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) .ARM.attributes - 0x00000000000013e3 0x1d /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/libgcc.a(_dvmd_tls.o) + 0x00000000000013e3 0x2d /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) .ARM.attributes - 0x0000000000001400 0x1d /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtn.o + 0x0000000000001410 0x1d /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/libgcc.a(_dvmd_tls.o) + .ARM.attributes + 0x000000000000142d 0x1d /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/crtn.o OUTPUT(PSE.elf elf32-littlearm) LOAD linker stubs LOAD /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a @@ -27101,6 +27233,7 @@ LOAD /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools- 0x44 (size before relaxing) .comment 0x0000000000000043 0x44 ./Core/Src/ADS7843.o .comment 0x0000000000000043 0x44 ./Core/Src/ILI9341.o + .comment 0x0000000000000043 0x44 ./Core/Src/home_screen.o .comment 0x0000000000000043 0x44 ./Core/Src/lcdio.o .comment 0x0000000000000043 0x44 ./Core/Src/logo_mint_resize.o .comment 0x0000000000000043 0x44 ./Core/Src/main.o @@ -27204,642 +27337,648 @@ LOAD /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools- .comment 0x0000000000000043 0x44 ./Drivers/lvgl/src/widgets/lv_table.o .comment 0x0000000000000043 0x44 ./Drivers/lvgl/src/widgets/lv_textarea.o -.debug_info 0x0000000000000000 0xa9c11 +.debug_info 0x0000000000000000 0xaa71b .debug_info 0x0000000000000000 0x406 ./Core/Src/ADS7843.o .debug_info 0x0000000000000406 0x264 ./Core/Src/ILI9341.o - .debug_info 0x000000000000066a 0x19c ./Core/Src/lcdio.o - .debug_info 0x0000000000000806 0x309 ./Core/Src/logo_mint_resize.o - .debug_info 0x0000000000000b0f 0x3081 ./Core/Src/main.o - .debug_info 0x0000000000003b90 0xa02 ./Core/Src/stm32f1xx_hal_msp.o - .debug_info 0x0000000000004592 0x138 ./Core/Src/stm32f1xx_it.o - .debug_info 0x00000000000046ca 0x222 ./Core/Src/system_stm32f1xx.o - .debug_info 0x00000000000048ec 0x23 ./Core/Startup/startup_stm32f103vetx.o - .debug_info 0x000000000000490f 0x76a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - .debug_info 0x0000000000005079 0xaed ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o - .debug_info 0x0000000000005b66 0x5ab ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o - .debug_info 0x0000000000006111 0x7d5 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - .debug_info 0x00000000000068e6 0xcd1 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o - .debug_info 0x00000000000075b7 0x2fa8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o - .debug_info 0x000000000000a55f 0x96f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o - .debug_info 0x000000000000aece 0x23bf ./Drivers/lvgl/src/core/lv_disp.o - .debug_info 0x000000000000d28d 0x27f5 ./Drivers/lvgl/src/core/lv_event.o - .debug_info 0x000000000000fa82 0x264a ./Drivers/lvgl/src/core/lv_group.o - .debug_info 0x00000000000120cc 0x2903 ./Drivers/lvgl/src/core/lv_indev.o - .debug_info 0x00000000000149cf 0x2971 ./Drivers/lvgl/src/core/lv_indev_scroll.o - .debug_info 0x0000000000017340 0x40ae ./Drivers/lvgl/src/core/lv_obj.o - .debug_info 0x000000000001b3ee 0x1d02 ./Drivers/lvgl/src/core/lv_obj_class.o - .debug_info 0x000000000001d0f0 0x29e6 ./Drivers/lvgl/src/core/lv_obj_draw.o - .debug_info 0x000000000001fad6 0x37a9 ./Drivers/lvgl/src/core/lv_obj_pos.o - .debug_info 0x000000000002327f 0x3676 ./Drivers/lvgl/src/core/lv_obj_scroll.o - .debug_info 0x00000000000268f5 0x3253 ./Drivers/lvgl/src/core/lv_obj_style.o - .debug_info 0x0000000000029b48 0x2c01 ./Drivers/lvgl/src/core/lv_obj_style_gen.o - .debug_info 0x000000000002c749 0x271e ./Drivers/lvgl/src/core/lv_obj_tree.o - .debug_info 0x000000000002ee67 0x28ce ./Drivers/lvgl/src/core/lv_refr.o - .debug_info 0x0000000000031735 0x1d76 ./Drivers/lvgl/src/core/lv_theme.o - .debug_info 0x00000000000334ab 0x98 ./Drivers/lvgl/src/draw/lv_draw.o - .debug_info 0x0000000000033543 0xcdb ./Drivers/lvgl/src/draw/lv_draw_arc.o - .debug_info 0x000000000003421e 0x1501 ./Drivers/lvgl/src/draw/lv_draw_img.o - .debug_info 0x000000000003571f 0x13c4 ./Drivers/lvgl/src/draw/lv_draw_label.o - .debug_info 0x0000000000036ae3 0xbd2 ./Drivers/lvgl/src/draw/lv_draw_line.o - .debug_info 0x00000000000376b5 0x1a0a ./Drivers/lvgl/src/draw/lv_draw_mask.o - .debug_info 0x00000000000390bf 0xc7f ./Drivers/lvgl/src/draw/lv_draw_rect.o - .debug_info 0x0000000000039d3e 0x1305 ./Drivers/lvgl/src/draw/lv_img_buf.o - .debug_info 0x000000000003b043 0x535 ./Drivers/lvgl/src/draw/lv_img_cache.o - .debug_info 0x000000000003b578 0x1540 ./Drivers/lvgl/src/draw/lv_img_decoder.o - .debug_info 0x000000000003cab8 0x103a ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o - .debug_info 0x000000000003daf2 0x14d1 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o - .debug_info 0x000000000003efc3 0x25bb ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o - .debug_info 0x000000000004157e 0x971 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o - .debug_info 0x0000000000041eef 0x2216 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o - .debug_info 0x0000000000044105 0x1eba ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o - .debug_info 0x0000000000045fbf 0x21bf ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o - .debug_info 0x000000000004817e 0xe53 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o - .debug_info 0x0000000000048fd1 0x1f77 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o - .debug_info 0x000000000004af48 0x2139 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o - .debug_info 0x000000000004d081 0x277a ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o - .debug_info 0x000000000004f7fb 0xa6 ./Drivers/lvgl/src/extra/lv_extra.o - .debug_info 0x000000000004f8a1 0x2fe7 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o - .debug_info 0x0000000000052888 0x21ff ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o - .debug_info 0x0000000000054a87 0x1208 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o - .debug_info 0x0000000000055c8f 0xfd0 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o - .debug_info 0x0000000000056c5f 0x4827 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o - .debug_info 0x000000000005b486 0x3382 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o - .debug_info 0x000000000005e808 0x1756 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o - .debug_info 0x000000000005ff5e 0x1bbf ./Drivers/lvgl/src/extra/widgets/led/lv_led.o - .debug_info 0x0000000000061b1d 0xee3 ./Drivers/lvgl/src/extra/widgets/list/lv_list.o - .debug_info 0x0000000000062a00 0x1ce9 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - .debug_info 0x00000000000646e9 0x30a0 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o - .debug_info 0x0000000000067789 0x241c ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o - .debug_info 0x0000000000069ba5 0x28a1 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o - .debug_info 0x000000000006c446 0x1200 ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o - .debug_info 0x000000000006d646 0x181e ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o - .debug_info 0x000000000006ee64 0x135c ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o - .debug_info 0x00000000000701c0 0x10f1 ./Drivers/lvgl/src/extra/widgets/win/lv_win.o - .debug_info 0x00000000000712b1 0x37a ./Drivers/lvgl/src/font/lv_font.o - .debug_info 0x000000000007162b 0xa90 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o - .debug_info 0x00000000000720bb 0x74f ./Drivers/lvgl/src/font/lv_font_montserrat_14.o - .debug_info 0x000000000007280a 0x30c3 ./Drivers/lvgl/src/hal/lv_hal_disp.o - .debug_info 0x00000000000758cd 0x1e8d ./Drivers/lvgl/src/hal/lv_hal_indev.o - .debug_info 0x000000000007775a 0x150 ./Drivers/lvgl/src/hal/lv_hal_tick.o - .debug_info 0x00000000000778aa 0xa80 ./Drivers/lvgl/src/misc/lv_anim.o - .debug_info 0x000000000007832a 0x762 ./Drivers/lvgl/src/misc/lv_area.o - .debug_info 0x0000000000078a8c 0x7db ./Drivers/lvgl/src/misc/lv_color.o - .debug_info 0x0000000000079267 0xbdc ./Drivers/lvgl/src/misc/lv_fs.o - .debug_info 0x0000000000079e43 0x7f4 ./Drivers/lvgl/src/misc/lv_gc.o - .debug_info 0x000000000007a637 0x5c0 ./Drivers/lvgl/src/misc/lv_ll.o - .debug_info 0x000000000007abf7 0x44d ./Drivers/lvgl/src/misc/lv_math.o - .debug_info 0x000000000007b044 0x7d7 ./Drivers/lvgl/src/misc/lv_mem.o - .debug_info 0x000000000007b81b 0x866 ./Drivers/lvgl/src/misc/lv_printf.o - .debug_info 0x000000000007c081 0xeb9 ./Drivers/lvgl/src/misc/lv_style.o - .debug_info 0x000000000007cf3a 0x2082 ./Drivers/lvgl/src/misc/lv_style_gen.o - .debug_info 0x000000000007efbc 0x631 ./Drivers/lvgl/src/misc/lv_timer.o - .debug_info 0x000000000007f5ed 0x1527 ./Drivers/lvgl/src/misc/lv_tlsf.o - .debug_info 0x0000000000080b14 0xdf4 ./Drivers/lvgl/src/misc/lv_txt.o - .debug_info 0x0000000000081908 0x153 ./Drivers/lvgl/src/misc/lv_utils.o - .debug_info 0x0000000000081a5b 0x330f ./Drivers/lvgl/src/widgets/lv_arc.o - .debug_info 0x0000000000084d6a 0x2b0c ./Drivers/lvgl/src/widgets/lv_bar.o - .debug_info 0x0000000000087876 0xd16 ./Drivers/lvgl/src/widgets/lv_btn.o - .debug_info 0x000000000008858c 0x3668 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - .debug_info 0x000000000008bbf4 0x222b ./Drivers/lvgl/src/widgets/lv_checkbox.o - .debug_info 0x000000000008de1f 0x3d8e ./Drivers/lvgl/src/widgets/lv_dropdown.o - .debug_info 0x0000000000091bad 0x2aca ./Drivers/lvgl/src/widgets/lv_img.o - .debug_info 0x0000000000094677 0x391a ./Drivers/lvgl/src/widgets/lv_label.o - .debug_info 0x0000000000097f91 0x1aaf ./Drivers/lvgl/src/widgets/lv_line.o - .debug_info 0x0000000000099a40 0x37b7 ./Drivers/lvgl/src/widgets/lv_roller.o - .debug_info 0x000000000009d1f7 0x2f12 ./Drivers/lvgl/src/widgets/lv_slider.o - .debug_info 0x00000000000a0109 0x20fb ./Drivers/lvgl/src/widgets/lv_switch.o - .debug_info 0x00000000000a2204 0x36ad ./Drivers/lvgl/src/widgets/lv_table.o - .debug_info 0x00000000000a58b1 0x4360 ./Drivers/lvgl/src/widgets/lv_textarea.o + .debug_info 0x000000000000066a 0xbdb ./Core/Src/home_screen.o + .debug_info 0x0000000000001245 0x19c ./Core/Src/lcdio.o + .debug_info 0x00000000000013e1 0x309 ./Core/Src/logo_mint_resize.o + .debug_info 0x00000000000016ea 0x2fb0 ./Core/Src/main.o + .debug_info 0x000000000000469a 0xa02 ./Core/Src/stm32f1xx_hal_msp.o + .debug_info 0x000000000000509c 0x138 ./Core/Src/stm32f1xx_it.o + .debug_info 0x00000000000051d4 0x222 ./Core/Src/system_stm32f1xx.o + .debug_info 0x00000000000053f6 0x23 ./Core/Startup/startup_stm32f103vetx.o + .debug_info 0x0000000000005419 0x76a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_info 0x0000000000005b83 0xaed ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_info 0x0000000000006670 0x5ab ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_info 0x0000000000006c1b 0x7d5 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_info 0x00000000000073f0 0xcd1 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + .debug_info 0x00000000000080c1 0x2fa8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o + .debug_info 0x000000000000b069 0x96f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + .debug_info 0x000000000000b9d8 0x23bf ./Drivers/lvgl/src/core/lv_disp.o + .debug_info 0x000000000000dd97 0x27f5 ./Drivers/lvgl/src/core/lv_event.o + .debug_info 0x000000000001058c 0x264a ./Drivers/lvgl/src/core/lv_group.o + .debug_info 0x0000000000012bd6 0x2903 ./Drivers/lvgl/src/core/lv_indev.o + .debug_info 0x00000000000154d9 0x2971 ./Drivers/lvgl/src/core/lv_indev_scroll.o + .debug_info 0x0000000000017e4a 0x40ae ./Drivers/lvgl/src/core/lv_obj.o + .debug_info 0x000000000001bef8 0x1d02 ./Drivers/lvgl/src/core/lv_obj_class.o + .debug_info 0x000000000001dbfa 0x29e6 ./Drivers/lvgl/src/core/lv_obj_draw.o + .debug_info 0x00000000000205e0 0x37a9 ./Drivers/lvgl/src/core/lv_obj_pos.o + .debug_info 0x0000000000023d89 0x3676 ./Drivers/lvgl/src/core/lv_obj_scroll.o + .debug_info 0x00000000000273ff 0x3253 ./Drivers/lvgl/src/core/lv_obj_style.o + .debug_info 0x000000000002a652 0x2c01 ./Drivers/lvgl/src/core/lv_obj_style_gen.o + .debug_info 0x000000000002d253 0x271e ./Drivers/lvgl/src/core/lv_obj_tree.o + .debug_info 0x000000000002f971 0x28ce ./Drivers/lvgl/src/core/lv_refr.o + .debug_info 0x000000000003223f 0x1d76 ./Drivers/lvgl/src/core/lv_theme.o + .debug_info 0x0000000000033fb5 0x98 ./Drivers/lvgl/src/draw/lv_draw.o + .debug_info 0x000000000003404d 0xcdb ./Drivers/lvgl/src/draw/lv_draw_arc.o + .debug_info 0x0000000000034d28 0x1501 ./Drivers/lvgl/src/draw/lv_draw_img.o + .debug_info 0x0000000000036229 0x13c4 ./Drivers/lvgl/src/draw/lv_draw_label.o + .debug_info 0x00000000000375ed 0xbd2 ./Drivers/lvgl/src/draw/lv_draw_line.o + .debug_info 0x00000000000381bf 0x1a0a ./Drivers/lvgl/src/draw/lv_draw_mask.o + .debug_info 0x0000000000039bc9 0xc7f ./Drivers/lvgl/src/draw/lv_draw_rect.o + .debug_info 0x000000000003a848 0x1305 ./Drivers/lvgl/src/draw/lv_img_buf.o + .debug_info 0x000000000003bb4d 0x535 ./Drivers/lvgl/src/draw/lv_img_cache.o + .debug_info 0x000000000003c082 0x1540 ./Drivers/lvgl/src/draw/lv_img_decoder.o + .debug_info 0x000000000003d5c2 0x103a ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o + .debug_info 0x000000000003e5fc 0x14d1 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + .debug_info 0x000000000003facd 0x25bb ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + .debug_info 0x0000000000042088 0x971 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + .debug_info 0x00000000000429f9 0x2216 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o + .debug_info 0x0000000000044c0f 0x1eba ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + .debug_info 0x0000000000046ac9 0x21bf ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o + .debug_info 0x0000000000048c88 0xe53 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o + .debug_info 0x0000000000049adb 0x1f77 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + .debug_info 0x000000000004ba52 0x2139 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + .debug_info 0x000000000004db8b 0x277a ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + .debug_info 0x0000000000050305 0xa6 ./Drivers/lvgl/src/extra/lv_extra.o + .debug_info 0x00000000000503ab 0x2fe7 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + .debug_info 0x0000000000053392 0x21ff ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + .debug_info 0x0000000000055591 0x1208 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o + .debug_info 0x0000000000056799 0xfd0 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o + .debug_info 0x0000000000057769 0x4827 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + .debug_info 0x000000000005bf90 0x3382 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + .debug_info 0x000000000005f312 0x1756 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + .debug_info 0x0000000000060a68 0x1bbf ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + .debug_info 0x0000000000062627 0xee3 ./Drivers/lvgl/src/extra/widgets/list/lv_list.o + .debug_info 0x000000000006350a 0x1ce9 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + .debug_info 0x00000000000651f3 0x30a0 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + .debug_info 0x0000000000068293 0x241c ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o + .debug_info 0x000000000006a6af 0x28a1 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + .debug_info 0x000000000006cf50 0x1200 ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + .debug_info 0x000000000006e150 0x181e ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + .debug_info 0x000000000006f96e 0x135c ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o + .debug_info 0x0000000000070cca 0x10f1 ./Drivers/lvgl/src/extra/widgets/win/lv_win.o + .debug_info 0x0000000000071dbb 0x37a ./Drivers/lvgl/src/font/lv_font.o + .debug_info 0x0000000000072135 0xa90 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + .debug_info 0x0000000000072bc5 0x74f ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + .debug_info 0x0000000000073314 0x30c3 ./Drivers/lvgl/src/hal/lv_hal_disp.o + .debug_info 0x00000000000763d7 0x1e8d ./Drivers/lvgl/src/hal/lv_hal_indev.o + .debug_info 0x0000000000078264 0x150 ./Drivers/lvgl/src/hal/lv_hal_tick.o + .debug_info 0x00000000000783b4 0xa80 ./Drivers/lvgl/src/misc/lv_anim.o + .debug_info 0x0000000000078e34 0x762 ./Drivers/lvgl/src/misc/lv_area.o + .debug_info 0x0000000000079596 0x7db ./Drivers/lvgl/src/misc/lv_color.o + .debug_info 0x0000000000079d71 0xbdc ./Drivers/lvgl/src/misc/lv_fs.o + .debug_info 0x000000000007a94d 0x7f4 ./Drivers/lvgl/src/misc/lv_gc.o + .debug_info 0x000000000007b141 0x5c0 ./Drivers/lvgl/src/misc/lv_ll.o + .debug_info 0x000000000007b701 0x44d ./Drivers/lvgl/src/misc/lv_math.o + .debug_info 0x000000000007bb4e 0x7d7 ./Drivers/lvgl/src/misc/lv_mem.o + .debug_info 0x000000000007c325 0x866 ./Drivers/lvgl/src/misc/lv_printf.o + .debug_info 0x000000000007cb8b 0xeb9 ./Drivers/lvgl/src/misc/lv_style.o + .debug_info 0x000000000007da44 0x2082 ./Drivers/lvgl/src/misc/lv_style_gen.o + .debug_info 0x000000000007fac6 0x631 ./Drivers/lvgl/src/misc/lv_timer.o + .debug_info 0x00000000000800f7 0x1527 ./Drivers/lvgl/src/misc/lv_tlsf.o + .debug_info 0x000000000008161e 0xdf4 ./Drivers/lvgl/src/misc/lv_txt.o + .debug_info 0x0000000000082412 0x153 ./Drivers/lvgl/src/misc/lv_utils.o + .debug_info 0x0000000000082565 0x330f ./Drivers/lvgl/src/widgets/lv_arc.o + .debug_info 0x0000000000085874 0x2b0c ./Drivers/lvgl/src/widgets/lv_bar.o + .debug_info 0x0000000000088380 0xd16 ./Drivers/lvgl/src/widgets/lv_btn.o + .debug_info 0x0000000000089096 0x3668 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + .debug_info 0x000000000008c6fe 0x222b ./Drivers/lvgl/src/widgets/lv_checkbox.o + .debug_info 0x000000000008e929 0x3d8e ./Drivers/lvgl/src/widgets/lv_dropdown.o + .debug_info 0x00000000000926b7 0x2aca ./Drivers/lvgl/src/widgets/lv_img.o + .debug_info 0x0000000000095181 0x391a ./Drivers/lvgl/src/widgets/lv_label.o + .debug_info 0x0000000000098a9b 0x1aaf ./Drivers/lvgl/src/widgets/lv_line.o + .debug_info 0x000000000009a54a 0x37b7 ./Drivers/lvgl/src/widgets/lv_roller.o + .debug_info 0x000000000009dd01 0x2f12 ./Drivers/lvgl/src/widgets/lv_slider.o + .debug_info 0x00000000000a0c13 0x20fb ./Drivers/lvgl/src/widgets/lv_switch.o + .debug_info 0x00000000000a2d0e 0x36ad ./Drivers/lvgl/src/widgets/lv_table.o + .debug_info 0x00000000000a63bb 0x4360 ./Drivers/lvgl/src/widgets/lv_textarea.o -.debug_abbrev 0x0000000000000000 0x13b22 +.debug_abbrev 0x0000000000000000 0x13d46 .debug_abbrev 0x0000000000000000 0x192 ./Core/Src/ADS7843.o .debug_abbrev 0x0000000000000192 0x120 ./Core/Src/ILI9341.o - .debug_abbrev 0x00000000000002b2 0xd5 ./Core/Src/lcdio.o - .debug_abbrev 0x0000000000000387 0xf2 ./Core/Src/logo_mint_resize.o - .debug_abbrev 0x0000000000000479 0x449 ./Core/Src/main.o - .debug_abbrev 0x00000000000008c2 0x208 ./Core/Src/stm32f1xx_hal_msp.o - .debug_abbrev 0x0000000000000aca 0xa2 ./Core/Src/stm32f1xx_it.o - .debug_abbrev 0x0000000000000b6c 0x13f ./Core/Src/system_stm32f1xx.o - .debug_abbrev 0x0000000000000cab 0x12 ./Core/Startup/startup_stm32f103vetx.o - .debug_abbrev 0x0000000000000cbd 0x201 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - .debug_abbrev 0x0000000000000ebe 0x2f8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o - .debug_abbrev 0x00000000000011b6 0x1ca ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o - .debug_abbrev 0x0000000000001380 0x2b3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - .debug_abbrev 0x0000000000001633 0x20d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o - .debug_abbrev 0x0000000000001840 0x2f8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o - .debug_abbrev 0x0000000000001b38 0x1a3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o - .debug_abbrev 0x0000000000001cdb 0x3ed ./Drivers/lvgl/src/core/lv_disp.o - .debug_abbrev 0x00000000000020c8 0x3e9 ./Drivers/lvgl/src/core/lv_event.o - .debug_abbrev 0x00000000000024b1 0x460 ./Drivers/lvgl/src/core/lv_group.o - .debug_abbrev 0x0000000000002911 0x47e ./Drivers/lvgl/src/core/lv_indev.o - .debug_abbrev 0x0000000000002d8f 0x3ef ./Drivers/lvgl/src/core/lv_indev_scroll.o - .debug_abbrev 0x000000000000317e 0x4c6 ./Drivers/lvgl/src/core/lv_obj.o - .debug_abbrev 0x0000000000003644 0x35d ./Drivers/lvgl/src/core/lv_obj_class.o - .debug_abbrev 0x00000000000039a1 0x3aa ./Drivers/lvgl/src/core/lv_obj_draw.o - .debug_abbrev 0x0000000000003d4b 0x440 ./Drivers/lvgl/src/core/lv_obj_pos.o - .debug_abbrev 0x000000000000418b 0x450 ./Drivers/lvgl/src/core/lv_obj_scroll.o - .debug_abbrev 0x00000000000045db 0x4a1 ./Drivers/lvgl/src/core/lv_obj_style.o - .debug_abbrev 0x0000000000004a7c 0x2bd ./Drivers/lvgl/src/core/lv_obj_style_gen.o - .debug_abbrev 0x0000000000004d39 0x427 ./Drivers/lvgl/src/core/lv_obj_tree.o - .debug_abbrev 0x0000000000005160 0x448 ./Drivers/lvgl/src/core/lv_refr.o - .debug_abbrev 0x00000000000055a8 0x35d ./Drivers/lvgl/src/core/lv_theme.o - .debug_abbrev 0x0000000000005905 0x45 ./Drivers/lvgl/src/draw/lv_draw.o - .debug_abbrev 0x000000000000594a 0x22a ./Drivers/lvgl/src/draw/lv_draw_arc.o - .debug_abbrev 0x0000000000005b74 0x31b ./Drivers/lvgl/src/draw/lv_draw_img.o - .debug_abbrev 0x0000000000005e8f 0x32e ./Drivers/lvgl/src/draw/lv_draw_label.o - .debug_abbrev 0x00000000000061bd 0x1f0 ./Drivers/lvgl/src/draw/lv_draw_line.o - .debug_abbrev 0x00000000000063ad 0x357 ./Drivers/lvgl/src/draw/lv_draw_mask.o - .debug_abbrev 0x0000000000006704 0x23c ./Drivers/lvgl/src/draw/lv_draw_rect.o - .debug_abbrev 0x0000000000006940 0x2e1 ./Drivers/lvgl/src/draw/lv_img_buf.o - .debug_abbrev 0x0000000000006c21 0x1eb ./Drivers/lvgl/src/draw/lv_img_cache.o - .debug_abbrev 0x0000000000006e0c 0x31d ./Drivers/lvgl/src/draw/lv_img_decoder.o - .debug_abbrev 0x0000000000007129 0x1da ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o - .debug_abbrev 0x0000000000007303 0x2e9 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o - .debug_abbrev 0x00000000000075ec 0x3f7 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o - .debug_abbrev 0x00000000000079e3 0x2fd ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o - .debug_abbrev 0x0000000000007ce0 0x39c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o - .debug_abbrev 0x000000000000807c 0x337 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o - .debug_abbrev 0x00000000000083b3 0x38b ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o - .debug_abbrev 0x000000000000873e 0x20e ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o - .debug_abbrev 0x000000000000894c 0x309 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o - .debug_abbrev 0x0000000000008c55 0x411 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o - .debug_abbrev 0x0000000000009066 0x3d9 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o - .debug_abbrev 0x000000000000943f 0x59 ./Drivers/lvgl/src/extra/lv_extra.o - .debug_abbrev 0x0000000000009498 0x45d ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o - .debug_abbrev 0x00000000000098f5 0x411 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o - .debug_abbrev 0x0000000000009d06 0x305 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o - .debug_abbrev 0x000000000000a00b 0x28c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o - .debug_abbrev 0x000000000000a297 0x484 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o - .debug_abbrev 0x000000000000a71b 0x4ae ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o - .debug_abbrev 0x000000000000abc9 0x3a7 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o - .debug_abbrev 0x000000000000af70 0x3d9 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o - .debug_abbrev 0x000000000000b349 0x2be ./Drivers/lvgl/src/extra/widgets/list/lv_list.o - .debug_abbrev 0x000000000000b607 0x39f ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - .debug_abbrev 0x000000000000b9a6 0x3e7 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o - .debug_abbrev 0x000000000000bd8d 0x411 ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o - .debug_abbrev 0x000000000000c19e 0x412 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o - .debug_abbrev 0x000000000000c5b0 0x2e8 ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o - .debug_abbrev 0x000000000000c898 0x3b1 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o - .debug_abbrev 0x000000000000cc49 0x30f ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o - .debug_abbrev 0x000000000000cf58 0x2cb ./Drivers/lvgl/src/extra/widgets/win/lv_win.o - .debug_abbrev 0x000000000000d223 0x143 ./Drivers/lvgl/src/font/lv_font.o - .debug_abbrev 0x000000000000d366 0x241 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o - .debug_abbrev 0x000000000000d5a7 0x182 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o - .debug_abbrev 0x000000000000d729 0x4a2 ./Drivers/lvgl/src/hal/lv_hal_disp.o - .debug_abbrev 0x000000000000dbcb 0x2d6 ./Drivers/lvgl/src/hal/lv_hal_indev.o - .debug_abbrev 0x000000000000dea1 0xb9 ./Drivers/lvgl/src/hal/lv_hal_tick.o - .debug_abbrev 0x000000000000df5a 0x2b7 ./Drivers/lvgl/src/misc/lv_anim.o - .debug_abbrev 0x000000000000e211 0x237 ./Drivers/lvgl/src/misc/lv_area.o - .debug_abbrev 0x000000000000e448 0x27f ./Drivers/lvgl/src/misc/lv_color.o - .debug_abbrev 0x000000000000e6c7 0x257 ./Drivers/lvgl/src/misc/lv_fs.o - .debug_abbrev 0x000000000000e91e 0x17b ./Drivers/lvgl/src/misc/lv_gc.o - .debug_abbrev 0x000000000000ea99 0x1f8 ./Drivers/lvgl/src/misc/lv_ll.o - .debug_abbrev 0x000000000000ec91 0x12d ./Drivers/lvgl/src/misc/lv_math.o - .debug_abbrev 0x000000000000edbe 0x2ba ./Drivers/lvgl/src/misc/lv_mem.o - .debug_abbrev 0x000000000000f078 0x1fd ./Drivers/lvgl/src/misc/lv_printf.o - .debug_abbrev 0x000000000000f275 0x390 ./Drivers/lvgl/src/misc/lv_style.o - .debug_abbrev 0x000000000000f605 0x291 ./Drivers/lvgl/src/misc/lv_style_gen.o - .debug_abbrev 0x000000000000f896 0x297 ./Drivers/lvgl/src/misc/lv_timer.o - .debug_abbrev 0x000000000000fb2d 0x283 ./Drivers/lvgl/src/misc/lv_tlsf.o - .debug_abbrev 0x000000000000fdb0 0x30b ./Drivers/lvgl/src/misc/lv_txt.o - .debug_abbrev 0x00000000000100bb 0xce ./Drivers/lvgl/src/misc/lv_utils.o - .debug_abbrev 0x0000000000010189 0x42c ./Drivers/lvgl/src/widgets/lv_arc.o - .debug_abbrev 0x00000000000105b5 0x432 ./Drivers/lvgl/src/widgets/lv_bar.o - .debug_abbrev 0x00000000000109e7 0x280 ./Drivers/lvgl/src/widgets/lv_btn.o - .debug_abbrev 0x0000000000010c67 0x481 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - .debug_abbrev 0x00000000000110e8 0x3d2 ./Drivers/lvgl/src/widgets/lv_checkbox.o - .debug_abbrev 0x00000000000114ba 0x47d ./Drivers/lvgl/src/widgets/lv_dropdown.o - .debug_abbrev 0x0000000000011937 0x43d ./Drivers/lvgl/src/widgets/lv_img.o - .debug_abbrev 0x0000000000011d74 0x4c6 ./Drivers/lvgl/src/widgets/lv_label.o - .debug_abbrev 0x000000000001223a 0x385 ./Drivers/lvgl/src/widgets/lv_line.o - .debug_abbrev 0x00000000000125bf 0x454 ./Drivers/lvgl/src/widgets/lv_roller.o - .debug_abbrev 0x0000000000012a13 0x406 ./Drivers/lvgl/src/widgets/lv_slider.o - .debug_abbrev 0x0000000000012e19 0x3b6 ./Drivers/lvgl/src/widgets/lv_switch.o - .debug_abbrev 0x00000000000131cf 0x487 ./Drivers/lvgl/src/widgets/lv_table.o - .debug_abbrev 0x0000000000013656 0x4cc ./Drivers/lvgl/src/widgets/lv_textarea.o + .debug_abbrev 0x00000000000002b2 0x266 ./Core/Src/home_screen.o + .debug_abbrev 0x0000000000000518 0xd5 ./Core/Src/lcdio.o + .debug_abbrev 0x00000000000005ed 0xf2 ./Core/Src/logo_mint_resize.o + .debug_abbrev 0x00000000000006df 0x407 ./Core/Src/main.o + .debug_abbrev 0x0000000000000ae6 0x208 ./Core/Src/stm32f1xx_hal_msp.o + .debug_abbrev 0x0000000000000cee 0xa2 ./Core/Src/stm32f1xx_it.o + .debug_abbrev 0x0000000000000d90 0x13f ./Core/Src/system_stm32f1xx.o + .debug_abbrev 0x0000000000000ecf 0x12 ./Core/Startup/startup_stm32f103vetx.o + .debug_abbrev 0x0000000000000ee1 0x201 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_abbrev 0x00000000000010e2 0x2f8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_abbrev 0x00000000000013da 0x1ca ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_abbrev 0x00000000000015a4 0x2b3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_abbrev 0x0000000000001857 0x20d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + .debug_abbrev 0x0000000000001a64 0x2f8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o + .debug_abbrev 0x0000000000001d5c 0x1a3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + .debug_abbrev 0x0000000000001eff 0x3ed ./Drivers/lvgl/src/core/lv_disp.o + .debug_abbrev 0x00000000000022ec 0x3e9 ./Drivers/lvgl/src/core/lv_event.o + .debug_abbrev 0x00000000000026d5 0x460 ./Drivers/lvgl/src/core/lv_group.o + .debug_abbrev 0x0000000000002b35 0x47e ./Drivers/lvgl/src/core/lv_indev.o + .debug_abbrev 0x0000000000002fb3 0x3ef ./Drivers/lvgl/src/core/lv_indev_scroll.o + .debug_abbrev 0x00000000000033a2 0x4c6 ./Drivers/lvgl/src/core/lv_obj.o + .debug_abbrev 0x0000000000003868 0x35d ./Drivers/lvgl/src/core/lv_obj_class.o + .debug_abbrev 0x0000000000003bc5 0x3aa ./Drivers/lvgl/src/core/lv_obj_draw.o + .debug_abbrev 0x0000000000003f6f 0x440 ./Drivers/lvgl/src/core/lv_obj_pos.o + .debug_abbrev 0x00000000000043af 0x450 ./Drivers/lvgl/src/core/lv_obj_scroll.o + .debug_abbrev 0x00000000000047ff 0x4a1 ./Drivers/lvgl/src/core/lv_obj_style.o + .debug_abbrev 0x0000000000004ca0 0x2bd ./Drivers/lvgl/src/core/lv_obj_style_gen.o + .debug_abbrev 0x0000000000004f5d 0x427 ./Drivers/lvgl/src/core/lv_obj_tree.o + .debug_abbrev 0x0000000000005384 0x448 ./Drivers/lvgl/src/core/lv_refr.o + .debug_abbrev 0x00000000000057cc 0x35d ./Drivers/lvgl/src/core/lv_theme.o + .debug_abbrev 0x0000000000005b29 0x45 ./Drivers/lvgl/src/draw/lv_draw.o + .debug_abbrev 0x0000000000005b6e 0x22a ./Drivers/lvgl/src/draw/lv_draw_arc.o + .debug_abbrev 0x0000000000005d98 0x31b ./Drivers/lvgl/src/draw/lv_draw_img.o + .debug_abbrev 0x00000000000060b3 0x32e ./Drivers/lvgl/src/draw/lv_draw_label.o + .debug_abbrev 0x00000000000063e1 0x1f0 ./Drivers/lvgl/src/draw/lv_draw_line.o + .debug_abbrev 0x00000000000065d1 0x357 ./Drivers/lvgl/src/draw/lv_draw_mask.o + .debug_abbrev 0x0000000000006928 0x23c ./Drivers/lvgl/src/draw/lv_draw_rect.o + .debug_abbrev 0x0000000000006b64 0x2e1 ./Drivers/lvgl/src/draw/lv_img_buf.o + .debug_abbrev 0x0000000000006e45 0x1eb ./Drivers/lvgl/src/draw/lv_img_cache.o + .debug_abbrev 0x0000000000007030 0x31d ./Drivers/lvgl/src/draw/lv_img_decoder.o + .debug_abbrev 0x000000000000734d 0x1da ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o + .debug_abbrev 0x0000000000007527 0x2e9 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + .debug_abbrev 0x0000000000007810 0x3f7 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + .debug_abbrev 0x0000000000007c07 0x2fd ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + .debug_abbrev 0x0000000000007f04 0x39c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o + .debug_abbrev 0x00000000000082a0 0x337 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + .debug_abbrev 0x00000000000085d7 0x38b ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o + .debug_abbrev 0x0000000000008962 0x20e ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o + .debug_abbrev 0x0000000000008b70 0x309 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + .debug_abbrev 0x0000000000008e79 0x411 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + .debug_abbrev 0x000000000000928a 0x3d9 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + .debug_abbrev 0x0000000000009663 0x59 ./Drivers/lvgl/src/extra/lv_extra.o + .debug_abbrev 0x00000000000096bc 0x45d ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + .debug_abbrev 0x0000000000009b19 0x411 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + .debug_abbrev 0x0000000000009f2a 0x305 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o + .debug_abbrev 0x000000000000a22f 0x28c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o + .debug_abbrev 0x000000000000a4bb 0x484 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + .debug_abbrev 0x000000000000a93f 0x4ae ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + .debug_abbrev 0x000000000000aded 0x3a7 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + .debug_abbrev 0x000000000000b194 0x3d9 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + .debug_abbrev 0x000000000000b56d 0x2be ./Drivers/lvgl/src/extra/widgets/list/lv_list.o + .debug_abbrev 0x000000000000b82b 0x39f ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + .debug_abbrev 0x000000000000bbca 0x3e7 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + .debug_abbrev 0x000000000000bfb1 0x411 ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o + .debug_abbrev 0x000000000000c3c2 0x412 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + .debug_abbrev 0x000000000000c7d4 0x2e8 ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + .debug_abbrev 0x000000000000cabc 0x3b1 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + .debug_abbrev 0x000000000000ce6d 0x30f ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o + .debug_abbrev 0x000000000000d17c 0x2cb ./Drivers/lvgl/src/extra/widgets/win/lv_win.o + .debug_abbrev 0x000000000000d447 0x143 ./Drivers/lvgl/src/font/lv_font.o + .debug_abbrev 0x000000000000d58a 0x241 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + .debug_abbrev 0x000000000000d7cb 0x182 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + .debug_abbrev 0x000000000000d94d 0x4a2 ./Drivers/lvgl/src/hal/lv_hal_disp.o + .debug_abbrev 0x000000000000ddef 0x2d6 ./Drivers/lvgl/src/hal/lv_hal_indev.o + .debug_abbrev 0x000000000000e0c5 0xb9 ./Drivers/lvgl/src/hal/lv_hal_tick.o + .debug_abbrev 0x000000000000e17e 0x2b7 ./Drivers/lvgl/src/misc/lv_anim.o + .debug_abbrev 0x000000000000e435 0x237 ./Drivers/lvgl/src/misc/lv_area.o + .debug_abbrev 0x000000000000e66c 0x27f ./Drivers/lvgl/src/misc/lv_color.o + .debug_abbrev 0x000000000000e8eb 0x257 ./Drivers/lvgl/src/misc/lv_fs.o + .debug_abbrev 0x000000000000eb42 0x17b ./Drivers/lvgl/src/misc/lv_gc.o + .debug_abbrev 0x000000000000ecbd 0x1f8 ./Drivers/lvgl/src/misc/lv_ll.o + .debug_abbrev 0x000000000000eeb5 0x12d ./Drivers/lvgl/src/misc/lv_math.o + .debug_abbrev 0x000000000000efe2 0x2ba ./Drivers/lvgl/src/misc/lv_mem.o + .debug_abbrev 0x000000000000f29c 0x1fd ./Drivers/lvgl/src/misc/lv_printf.o + .debug_abbrev 0x000000000000f499 0x390 ./Drivers/lvgl/src/misc/lv_style.o + .debug_abbrev 0x000000000000f829 0x291 ./Drivers/lvgl/src/misc/lv_style_gen.o + .debug_abbrev 0x000000000000faba 0x297 ./Drivers/lvgl/src/misc/lv_timer.o + .debug_abbrev 0x000000000000fd51 0x283 ./Drivers/lvgl/src/misc/lv_tlsf.o + .debug_abbrev 0x000000000000ffd4 0x30b ./Drivers/lvgl/src/misc/lv_txt.o + .debug_abbrev 0x00000000000102df 0xce ./Drivers/lvgl/src/misc/lv_utils.o + .debug_abbrev 0x00000000000103ad 0x42c ./Drivers/lvgl/src/widgets/lv_arc.o + .debug_abbrev 0x00000000000107d9 0x432 ./Drivers/lvgl/src/widgets/lv_bar.o + .debug_abbrev 0x0000000000010c0b 0x280 ./Drivers/lvgl/src/widgets/lv_btn.o + .debug_abbrev 0x0000000000010e8b 0x481 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + .debug_abbrev 0x000000000001130c 0x3d2 ./Drivers/lvgl/src/widgets/lv_checkbox.o + .debug_abbrev 0x00000000000116de 0x47d ./Drivers/lvgl/src/widgets/lv_dropdown.o + .debug_abbrev 0x0000000000011b5b 0x43d ./Drivers/lvgl/src/widgets/lv_img.o + .debug_abbrev 0x0000000000011f98 0x4c6 ./Drivers/lvgl/src/widgets/lv_label.o + .debug_abbrev 0x000000000001245e 0x385 ./Drivers/lvgl/src/widgets/lv_line.o + .debug_abbrev 0x00000000000127e3 0x454 ./Drivers/lvgl/src/widgets/lv_roller.o + .debug_abbrev 0x0000000000012c37 0x406 ./Drivers/lvgl/src/widgets/lv_slider.o + .debug_abbrev 0x000000000001303d 0x3b6 ./Drivers/lvgl/src/widgets/lv_switch.o + .debug_abbrev 0x00000000000133f3 0x487 ./Drivers/lvgl/src/widgets/lv_table.o + .debug_abbrev 0x000000000001387a 0x4cc ./Drivers/lvgl/src/widgets/lv_textarea.o -.debug_aranges 0x0000000000000000 0x4ff8 +.debug_aranges 0x0000000000000000 0x5018 .debug_aranges 0x0000000000000000 0x50 ./Core/Src/ADS7843.o .debug_aranges 0x0000000000000050 0x50 ./Core/Src/ILI9341.o .debug_aranges - 0x00000000000000a0 0x38 ./Core/Src/lcdio.o + 0x00000000000000a0 0x28 ./Core/Src/home_screen.o .debug_aranges - 0x00000000000000d8 0x18 ./Core/Src/logo_mint_resize.o + 0x00000000000000c8 0x38 ./Core/Src/lcdio.o .debug_aranges - 0x00000000000000f0 0x70 ./Core/Src/main.o + 0x0000000000000100 0x18 ./Core/Src/logo_mint_resize.o .debug_aranges - 0x0000000000000160 0x50 ./Core/Src/stm32f1xx_hal_msp.o + 0x0000000000000118 0x68 ./Core/Src/main.o .debug_aranges - 0x00000000000001b0 0x60 ./Core/Src/stm32f1xx_it.o + 0x0000000000000180 0x50 ./Core/Src/stm32f1xx_hal_msp.o .debug_aranges - 0x0000000000000210 0x28 ./Core/Src/system_stm32f1xx.o + 0x00000000000001d0 0x60 ./Core/Src/stm32f1xx_it.o .debug_aranges - 0x0000000000000238 0x28 ./Core/Startup/startup_stm32f103vetx.o + 0x0000000000000230 0x28 ./Core/Src/system_stm32f1xx.o .debug_aranges - 0x0000000000000260 0xe0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000000000258 0x28 ./Core/Startup/startup_stm32f103vetx.o .debug_aranges - 0x0000000000000340 0x100 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000000000280 0xe0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o .debug_aranges - 0x0000000000000440 0x58 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + 0x0000000000000360 0x100 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o .debug_aranges - 0x0000000000000498 0x90 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000000000460 0x58 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o .debug_aranges - 0x0000000000000528 0xb8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + 0x00000000000004b8 0x90 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o .debug_aranges - 0x00000000000005e0 0x208 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o + 0x0000000000000548 0xb8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o .debug_aranges - 0x00000000000007e8 0xa8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + 0x0000000000000600 0x208 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o .debug_aranges - 0x0000000000000890 0xf8 ./Drivers/lvgl/src/core/lv_disp.o + 0x0000000000000808 0xa8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o .debug_aranges - 0x0000000000000988 0x108 ./Drivers/lvgl/src/core/lv_event.o + 0x00000000000008b0 0xf8 ./Drivers/lvgl/src/core/lv_disp.o .debug_aranges - 0x0000000000000a90 0xe8 ./Drivers/lvgl/src/core/lv_group.o + 0x00000000000009a8 0x108 ./Drivers/lvgl/src/core/lv_event.o .debug_aranges - 0x0000000000000b78 0x100 ./Drivers/lvgl/src/core/lv_indev.o + 0x0000000000000ab0 0xe8 ./Drivers/lvgl/src/core/lv_group.o .debug_aranges - 0x0000000000000c78 0xa8 ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x0000000000000b98 0x100 ./Drivers/lvgl/src/core/lv_indev.o .debug_aranges - 0x0000000000000d20 0x1b0 ./Drivers/lvgl/src/core/lv_obj.o + 0x0000000000000c98 0xa8 ./Drivers/lvgl/src/core/lv_indev_scroll.o .debug_aranges - 0x0000000000000ed0 0x50 ./Drivers/lvgl/src/core/lv_obj_class.o + 0x0000000000000d40 0x1b0 ./Drivers/lvgl/src/core/lv_obj.o .debug_aranges - 0x0000000000000f20 0x220 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000000000ef0 0x50 ./Drivers/lvgl/src/core/lv_obj_class.o .debug_aranges - 0x0000000000001140 0x238 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000000000f40 0x220 ./Drivers/lvgl/src/core/lv_obj_draw.o .debug_aranges - 0x0000000000001378 0x1a0 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x0000000000001160 0x238 ./Drivers/lvgl/src/core/lv_obj_pos.o .debug_aranges - 0x0000000000001518 0x190 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x0000000000001398 0x1a0 ./Drivers/lvgl/src/core/lv_obj_scroll.o .debug_aranges - 0x00000000000016a8 0x2f0 ./Drivers/lvgl/src/core/lv_obj_style_gen.o + 0x0000000000001538 0x190 ./Drivers/lvgl/src/core/lv_obj_style.o .debug_aranges - 0x0000000000001998 0xd0 ./Drivers/lvgl/src/core/lv_obj_tree.o + 0x00000000000016c8 0x2f0 ./Drivers/lvgl/src/core/lv_obj_style_gen.o .debug_aranges - 0x0000000000001a68 0xd8 ./Drivers/lvgl/src/core/lv_refr.o + 0x00000000000019b8 0xd0 ./Drivers/lvgl/src/core/lv_obj_tree.o .debug_aranges - 0x0000000000001b40 0x70 ./Drivers/lvgl/src/core/lv_theme.o + 0x0000000000001a88 0xd8 ./Drivers/lvgl/src/core/lv_refr.o .debug_aranges - 0x0000000000001bb0 0x20 ./Drivers/lvgl/src/draw/lv_draw.o + 0x0000000000001b60 0x70 ./Drivers/lvgl/src/core/lv_theme.o .debug_aranges - 0x0000000000001bd0 0x40 ./Drivers/lvgl/src/draw/lv_draw_arc.o + 0x0000000000001bd0 0x20 ./Drivers/lvgl/src/draw/lv_draw.o .debug_aranges - 0x0000000000001c10 0x98 ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x0000000000001bf0 0x40 ./Drivers/lvgl/src/draw/lv_draw_arc.o .debug_aranges - 0x0000000000001ca8 0x68 ./Drivers/lvgl/src/draw/lv_draw_label.o + 0x0000000000001c30 0x98 ./Drivers/lvgl/src/draw/lv_draw_img.o .debug_aranges - 0x0000000000001d10 0x38 ./Drivers/lvgl/src/draw/lv_draw_line.o + 0x0000000000001cc8 0x68 ./Drivers/lvgl/src/draw/lv_draw_label.o .debug_aranges - 0x0000000000001d48 0x120 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x0000000000001d30 0x38 ./Drivers/lvgl/src/draw/lv_draw_line.o .debug_aranges - 0x0000000000001e68 0x50 ./Drivers/lvgl/src/draw/lv_draw_rect.o + 0x0000000000001d68 0x120 ./Drivers/lvgl/src/draw/lv_draw_mask.o .debug_aranges - 0x0000000000001eb8 0xa8 ./Drivers/lvgl/src/draw/lv_img_buf.o + 0x0000000000001e88 0x50 ./Drivers/lvgl/src/draw/lv_draw_rect.o .debug_aranges - 0x0000000000001f60 0x30 ./Drivers/lvgl/src/draw/lv_img_cache.o + 0x0000000000001ed8 0xa8 ./Drivers/lvgl/src/draw/lv_img_buf.o .debug_aranges - 0x0000000000001f90 0xb8 ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x0000000000001f80 0x30 ./Drivers/lvgl/src/draw/lv_img_cache.o .debug_aranges - 0x0000000000002048 0x30 ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o + 0x0000000000001fb0 0xb8 ./Drivers/lvgl/src/draw/lv_img_decoder.o .debug_aranges - 0x0000000000002078 0x60 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + 0x0000000000002068 0x30 ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o .debug_aranges - 0x00000000000020d8 0xa8 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x0000000000002098 0x60 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o .debug_aranges - 0x0000000000002180 0x90 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + 0x00000000000020f8 0xa8 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .debug_aranges - 0x0000000000002210 0x50 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o + 0x00000000000021a0 0x90 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o .debug_aranges - 0x0000000000002260 0x38 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + 0x0000000000002230 0x50 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o .debug_aranges - 0x0000000000002298 0x40 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o + 0x0000000000002280 0x38 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o .debug_aranges - 0x00000000000022d8 0x20 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o + 0x00000000000022b8 0x40 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o .debug_aranges - 0x00000000000022f8 0x88 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x00000000000022f8 0x20 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o .debug_aranges - 0x0000000000002380 0x160 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000000002318 0x88 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o .debug_aranges - 0x00000000000024e0 0x220 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x00000000000023a0 0x160 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .debug_aranges - 0x0000000000002700 0x20 ./Drivers/lvgl/src/extra/lv_extra.o + 0x0000000000002500 0x220 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .debug_aranges - 0x0000000000002720 0xb8 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000000002720 0x20 ./Drivers/lvgl/src/extra/lv_extra.o .debug_aranges - 0x00000000000027d8 0xa8 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + 0x0000000000002740 0xb8 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o .debug_aranges - 0x0000000000002880 0x40 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o + 0x00000000000027f8 0xa8 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o .debug_aranges - 0x00000000000028c0 0x40 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o + 0x00000000000028a0 0x40 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o .debug_aranges - 0x0000000000002900 0x210 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x00000000000028e0 0x40 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o .debug_aranges - 0x0000000000002b10 0x118 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x0000000000002920 0x210 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .debug_aranges - 0x0000000000002c28 0x78 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + 0x0000000000002b30 0x118 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .debug_aranges - 0x0000000000002ca0 0x88 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + 0x0000000000002c48 0x78 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o .debug_aranges - 0x0000000000002d28 0x38 ./Drivers/lvgl/src/extra/widgets/list/lv_list.o + 0x0000000000002cc0 0x88 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o .debug_aranges - 0x0000000000002d60 0x110 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x0000000000002d48 0x38 ./Drivers/lvgl/src/extra/widgets/list/lv_list.o .debug_aranges - 0x0000000000002e70 0xf8 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x0000000000002d80 0x110 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o .debug_aranges - 0x0000000000002f68 0x90 ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o + 0x0000000000002e90 0xf8 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o .debug_aranges - 0x0000000000002ff8 0xa8 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + 0x0000000000002f88 0x90 ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o .debug_aranges - 0x00000000000030a0 0x68 ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + 0x0000000000003018 0xa8 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o .debug_aranges - 0x0000000000003108 0x88 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + 0x00000000000030c0 0x68 ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o .debug_aranges - 0x0000000000003190 0x58 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o + 0x0000000000003128 0x88 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o .debug_aranges - 0x00000000000031e8 0x48 ./Drivers/lvgl/src/extra/widgets/win/lv_win.o + 0x00000000000031b0 0x58 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o .debug_aranges - 0x0000000000003230 0x30 ./Drivers/lvgl/src/font/lv_font.o + 0x0000000000003208 0x48 ./Drivers/lvgl/src/extra/widgets/win/lv_win.o .debug_aranges - 0x0000000000003260 0x58 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + 0x0000000000003250 0x30 ./Drivers/lvgl/src/font/lv_font.o .debug_aranges - 0x00000000000032b8 0x18 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + 0x0000000000003280 0x58 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o .debug_aranges - 0x00000000000032d0 0x148 ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x00000000000032d8 0x18 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o .debug_aranges - 0x0000000000003418 0x48 ./Drivers/lvgl/src/hal/lv_hal_indev.o + 0x00000000000032f0 0x148 ./Drivers/lvgl/src/hal/lv_hal_disp.o .debug_aranges - 0x0000000000003460 0x30 ./Drivers/lvgl/src/hal/lv_hal_tick.o + 0x0000000000003438 0x48 ./Drivers/lvgl/src/hal/lv_hal_indev.o .debug_aranges - 0x0000000000003490 0xb8 ./Drivers/lvgl/src/misc/lv_anim.o + 0x0000000000003480 0x30 ./Drivers/lvgl/src/hal/lv_hal_tick.o .debug_aranges - 0x0000000000003548 0xa8 ./Drivers/lvgl/src/misc/lv_area.o + 0x00000000000034b0 0xb8 ./Drivers/lvgl/src/misc/lv_anim.o .debug_aranges - 0x00000000000035f0 0x90 ./Drivers/lvgl/src/misc/lv_color.o + 0x0000000000003568 0xa8 ./Drivers/lvgl/src/misc/lv_area.o .debug_aranges - 0x0000000000003680 0xb8 ./Drivers/lvgl/src/misc/lv_fs.o + 0x0000000000003610 0x90 ./Drivers/lvgl/src/misc/lv_color.o .debug_aranges - 0x0000000000003738 0x20 ./Drivers/lvgl/src/misc/lv_gc.o + 0x00000000000036a0 0xb8 ./Drivers/lvgl/src/misc/lv_fs.o .debug_aranges - 0x0000000000003758 0x98 ./Drivers/lvgl/src/misc/lv_ll.o + 0x0000000000003758 0x20 ./Drivers/lvgl/src/misc/lv_gc.o .debug_aranges - 0x00000000000037f0 0x50 ./Drivers/lvgl/src/misc/lv_math.o + 0x0000000000003778 0x98 ./Drivers/lvgl/src/misc/lv_ll.o .debug_aranges - 0x0000000000003840 0x90 ./Drivers/lvgl/src/misc/lv_mem.o + 0x0000000000003810 0x50 ./Drivers/lvgl/src/misc/lv_math.o .debug_aranges - 0x00000000000038d0 0x78 ./Drivers/lvgl/src/misc/lv_printf.o + 0x0000000000003860 0x90 ./Drivers/lvgl/src/misc/lv_mem.o .debug_aranges - 0x0000000000003948 0x88 ./Drivers/lvgl/src/misc/lv_style.o + 0x00000000000038f0 0x78 ./Drivers/lvgl/src/misc/lv_printf.o .debug_aranges - 0x00000000000039d0 0x2f0 ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000000003968 0x88 ./Drivers/lvgl/src/misc/lv_style.o .debug_aranges - 0x0000000000003cc0 0xa0 ./Drivers/lvgl/src/misc/lv_timer.o + 0x00000000000039f0 0x2f0 ./Drivers/lvgl/src/misc/lv_style_gen.o .debug_aranges - 0x0000000000003d60 0x210 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000000003ce0 0xa0 ./Drivers/lvgl/src/misc/lv_timer.o .debug_aranges - 0x0000000000003f70 0xb8 ./Drivers/lvgl/src/misc/lv_txt.o + 0x0000000000003d80 0x210 ./Drivers/lvgl/src/misc/lv_tlsf.o .debug_aranges - 0x0000000000004028 0x20 ./Drivers/lvgl/src/misc/lv_utils.o + 0x0000000000003f90 0xb8 ./Drivers/lvgl/src/misc/lv_txt.o .debug_aranges - 0x0000000000004048 0x128 ./Drivers/lvgl/src/widgets/lv_arc.o + 0x0000000000004048 0x20 ./Drivers/lvgl/src/misc/lv_utils.o .debug_aranges - 0x0000000000004170 0x130 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x0000000000004068 0x128 ./Drivers/lvgl/src/widgets/lv_arc.o .debug_aranges - 0x00000000000042a0 0x28 ./Drivers/lvgl/src/widgets/lv_btn.o + 0x0000000000004190 0x130 ./Drivers/lvgl/src/widgets/lv_bar.o .debug_aranges - 0x00000000000042c8 0x178 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x00000000000042c0 0x28 ./Drivers/lvgl/src/widgets/lv_btn.o .debug_aranges - 0x0000000000004440 0xc8 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x00000000000042e8 0x178 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .debug_aranges - 0x0000000000004508 0x1a0 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x0000000000004460 0xc8 ./Drivers/lvgl/src/widgets/lv_checkbox.o .debug_aranges - 0x00000000000046a8 0x138 ./Drivers/lvgl/src/widgets/lv_img.o + 0x0000000000004528 0x1a0 ./Drivers/lvgl/src/widgets/lv_dropdown.o .debug_aranges - 0x00000000000047e0 0x1a8 ./Drivers/lvgl/src/widgets/lv_label.o + 0x00000000000046c8 0x138 ./Drivers/lvgl/src/widgets/lv_img.o .debug_aranges - 0x0000000000004988 0x50 ./Drivers/lvgl/src/widgets/lv_line.o + 0x0000000000004800 0x1a8 ./Drivers/lvgl/src/widgets/lv_label.o .debug_aranges - 0x00000000000049d8 0x130 ./Drivers/lvgl/src/widgets/lv_roller.o + 0x00000000000049a8 0x50 ./Drivers/lvgl/src/widgets/lv_line.o .debug_aranges - 0x0000000000004b08 0xb8 ./Drivers/lvgl/src/widgets/lv_slider.o + 0x00000000000049f8 0x130 ./Drivers/lvgl/src/widgets/lv_roller.o .debug_aranges - 0x0000000000004bc0 0xc0 ./Drivers/lvgl/src/widgets/lv_switch.o + 0x0000000000004b28 0xb8 ./Drivers/lvgl/src/widgets/lv_slider.o .debug_aranges - 0x0000000000004c80 0x138 ./Drivers/lvgl/src/widgets/lv_table.o + 0x0000000000004be0 0xc0 ./Drivers/lvgl/src/widgets/lv_switch.o .debug_aranges - 0x0000000000004db8 0x240 ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000000004ca0 0x138 ./Drivers/lvgl/src/widgets/lv_table.o + .debug_aranges + 0x0000000000004dd8 0x240 ./Drivers/lvgl/src/widgets/lv_textarea.o .debug_rnglists - 0x0000000000000000 0x3fdc + 0x0000000000000000 0x3fef .debug_rnglists 0x0000000000000000 0x38 ./Core/Src/ADS7843.o .debug_rnglists 0x0000000000000038 0x3a ./Core/Src/ILI9341.o .debug_rnglists - 0x0000000000000072 0x25 ./Core/Src/lcdio.o + 0x0000000000000072 0x19 ./Core/Src/home_screen.o .debug_rnglists - 0x0000000000000097 0x53 ./Core/Src/main.o + 0x000000000000008b 0x25 ./Core/Src/lcdio.o .debug_rnglists - 0x00000000000000ea 0x39 ./Core/Src/stm32f1xx_hal_msp.o + 0x00000000000000b0 0x4d ./Core/Src/main.o .debug_rnglists - 0x0000000000000123 0x43 ./Core/Src/stm32f1xx_it.o + 0x00000000000000fd 0x39 ./Core/Src/stm32f1xx_hal_msp.o .debug_rnglists - 0x0000000000000166 0x1a ./Core/Src/system_stm32f1xx.o + 0x0000000000000136 0x43 ./Core/Src/stm32f1xx_it.o .debug_rnglists - 0x0000000000000180 0x19 ./Core/Startup/startup_stm32f103vetx.o + 0x0000000000000179 0x1a ./Core/Src/system_stm32f1xx.o .debug_rnglists - 0x0000000000000199 0xa3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000000000193 0x19 ./Core/Startup/startup_stm32f103vetx.o .debug_rnglists - 0x000000000000023c 0xbb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x00000000000001ac 0xa3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o .debug_rnglists - 0x00000000000002f7 0x3f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + 0x000000000000024f 0xbb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o .debug_rnglists - 0x0000000000000336 0x6c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x000000000000030a 0x3f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o .debug_rnglists - 0x00000000000003a2 0x8d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + 0x0000000000000349 0x6c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o .debug_rnglists - 0x000000000000042f 0x1bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o + 0x00000000000003b5 0x8d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o .debug_rnglists - 0x00000000000005eb 0x7c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + 0x0000000000000442 0x1bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o .debug_rnglists - 0x0000000000000667 0xb6 ./Drivers/lvgl/src/core/lv_disp.o + 0x00000000000005fe 0x7c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o .debug_rnglists - 0x000000000000071d 0xc9 ./Drivers/lvgl/src/core/lv_event.o + 0x000000000000067a 0xb6 ./Drivers/lvgl/src/core/lv_disp.o .debug_rnglists - 0x00000000000007e6 0xf8 ./Drivers/lvgl/src/core/lv_group.o + 0x0000000000000730 0xc9 ./Drivers/lvgl/src/core/lv_event.o .debug_rnglists - 0x00000000000008de 0xf3 ./Drivers/lvgl/src/core/lv_indev.o + 0x00000000000007f9 0xf8 ./Drivers/lvgl/src/core/lv_group.o .debug_rnglists - 0x00000000000009d1 0xaf ./Drivers/lvgl/src/core/lv_indev_scroll.o + 0x00000000000008f1 0xf3 ./Drivers/lvgl/src/core/lv_indev.o .debug_rnglists - 0x0000000000000a80 0x165 ./Drivers/lvgl/src/core/lv_obj.o + 0x00000000000009e4 0xaf ./Drivers/lvgl/src/core/lv_indev_scroll.o .debug_rnglists - 0x0000000000000be5 0x39 ./Drivers/lvgl/src/core/lv_obj_class.o + 0x0000000000000a93 0x165 ./Drivers/lvgl/src/core/lv_obj.o .debug_rnglists - 0x0000000000000c1e 0x199 ./Drivers/lvgl/src/core/lv_obj_draw.o + 0x0000000000000bf8 0x39 ./Drivers/lvgl/src/core/lv_obj_class.o .debug_rnglists - 0x0000000000000db7 0x1c2 ./Drivers/lvgl/src/core/lv_obj_pos.o + 0x0000000000000c31 0x199 ./Drivers/lvgl/src/core/lv_obj_draw.o .debug_rnglists - 0x0000000000000f79 0x184 ./Drivers/lvgl/src/core/lv_obj_scroll.o + 0x0000000000000dca 0x1c2 ./Drivers/lvgl/src/core/lv_obj_pos.o .debug_rnglists - 0x00000000000010fd 0x172 ./Drivers/lvgl/src/core/lv_obj_style.o + 0x0000000000000f8c 0x184 ./Drivers/lvgl/src/core/lv_obj_scroll.o .debug_rnglists - 0x000000000000126f 0x22f ./Drivers/lvgl/src/core/lv_obj_style_gen.o + 0x0000000000001110 0x172 ./Drivers/lvgl/src/core/lv_obj_style.o .debug_rnglists - 0x000000000000149e 0x9d ./Drivers/lvgl/src/core/lv_obj_tree.o + 0x0000000000001282 0x22f ./Drivers/lvgl/src/core/lv_obj_style_gen.o .debug_rnglists - 0x000000000000153b 0xb9 ./Drivers/lvgl/src/core/lv_refr.o + 0x00000000000014b1 0x9d ./Drivers/lvgl/src/core/lv_obj_tree.o .debug_rnglists - 0x00000000000015f4 0x4f ./Drivers/lvgl/src/core/lv_theme.o + 0x000000000000154e 0xb9 ./Drivers/lvgl/src/core/lv_refr.o .debug_rnglists - 0x0000000000001643 0x13 ./Drivers/lvgl/src/draw/lv_draw.o + 0x0000000000001607 0x4f ./Drivers/lvgl/src/core/lv_theme.o .debug_rnglists - 0x0000000000001656 0x2c ./Drivers/lvgl/src/draw/lv_draw_arc.o + 0x0000000000001656 0x13 ./Drivers/lvgl/src/draw/lv_draw.o .debug_rnglists - 0x0000000000001682 0x7c ./Drivers/lvgl/src/draw/lv_draw_img.o + 0x0000000000001669 0x2c ./Drivers/lvgl/src/draw/lv_draw_arc.o .debug_rnglists - 0x00000000000016fe 0x5a ./Drivers/lvgl/src/draw/lv_draw_label.o + 0x0000000000001695 0x7c ./Drivers/lvgl/src/draw/lv_draw_img.o .debug_rnglists - 0x0000000000001758 0x25 ./Drivers/lvgl/src/draw/lv_draw_line.o + 0x0000000000001711 0x5a ./Drivers/lvgl/src/draw/lv_draw_label.o .debug_rnglists - 0x000000000000177d 0x100 ./Drivers/lvgl/src/draw/lv_draw_mask.o + 0x000000000000176b 0x25 ./Drivers/lvgl/src/draw/lv_draw_line.o .debug_rnglists - 0x000000000000187d 0x38 ./Drivers/lvgl/src/draw/lv_draw_rect.o + 0x0000000000001790 0x100 ./Drivers/lvgl/src/draw/lv_draw_mask.o .debug_rnglists - 0x00000000000018b5 0x84 ./Drivers/lvgl/src/draw/lv_img_buf.o + 0x0000000000001890 0x38 ./Drivers/lvgl/src/draw/lv_draw_rect.o .debug_rnglists - 0x0000000000001939 0x1f ./Drivers/lvgl/src/draw/lv_img_cache.o + 0x00000000000018c8 0x84 ./Drivers/lvgl/src/draw/lv_img_buf.o .debug_rnglists - 0x0000000000001958 0x8d ./Drivers/lvgl/src/draw/lv_img_decoder.o + 0x000000000000194c 0x1f ./Drivers/lvgl/src/draw/lv_img_cache.o .debug_rnglists - 0x00000000000019e5 0x1f ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o + 0x000000000000196b 0x8d ./Drivers/lvgl/src/draw/lv_img_decoder.o .debug_rnglists - 0x0000000000001a04 0x49 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + 0x00000000000019f8 0x1f ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o .debug_rnglists - 0x0000000000001a4d 0x93 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + 0x0000000000001a17 0x49 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o .debug_rnglists - 0x0000000000001ae0 0x6b ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + 0x0000000000001a60 0x93 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o .debug_rnglists - 0x0000000000001b4b 0x39 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o + 0x0000000000001af3 0x6b ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o .debug_rnglists - 0x0000000000001b84 0x27 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + 0x0000000000001b5e 0x39 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o .debug_rnglists - 0x0000000000001bab 0x2f ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o + 0x0000000000001b97 0x27 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o .debug_rnglists - 0x0000000000001bda 0x14 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o + 0x0000000000001bbe 0x2f ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o .debug_rnglists - 0x0000000000001bee 0x79 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + 0x0000000000001bed 0x14 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o .debug_rnglists - 0x0000000000001c67 0x124 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + 0x0000000000001c01 0x79 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o .debug_rnglists - 0x0000000000001d8b 0x19b ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + 0x0000000000001c7a 0x124 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o .debug_rnglists - 0x0000000000001f26 0x13 ./Drivers/lvgl/src/extra/lv_extra.o + 0x0000000000001d9e 0x19b ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o .debug_rnglists - 0x0000000000001f39 0x97 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + 0x0000000000001f39 0x13 ./Drivers/lvgl/src/extra/lv_extra.o .debug_rnglists - 0x0000000000001fd0 0x80 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + 0x0000000000001f4c 0x97 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o .debug_rnglists - 0x0000000000002050 0x2d ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o + 0x0000000000001fe3 0x80 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o .debug_rnglists - 0x000000000000207d 0x2c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o + 0x0000000000002063 0x2d ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o .debug_rnglists - 0x00000000000020a9 0x1c4 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + 0x0000000000002090 0x2c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o .debug_rnglists - 0x000000000000226d 0xf4 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + 0x00000000000020bc 0x1c4 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o .debug_rnglists - 0x0000000000002361 0x73 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + 0x0000000000002280 0xf4 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o .debug_rnglists - 0x00000000000023d4 0x62 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + 0x0000000000002374 0x73 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o .debug_rnglists - 0x0000000000002436 0x25 ./Drivers/lvgl/src/extra/widgets/list/lv_list.o + 0x00000000000023e7 0x62 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o .debug_rnglists - 0x000000000000245b 0xcf ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + 0x0000000000002449 0x25 ./Drivers/lvgl/src/extra/widgets/list/lv_list.o .debug_rnglists - 0x000000000000252a 0xbc ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + 0x000000000000246e 0xcf ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o .debug_rnglists - 0x00000000000025e6 0x68 ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o + 0x000000000000253d 0xbc ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o .debug_rnglists - 0x000000000000264e 0x7f ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + 0x00000000000025f9 0x68 ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o .debug_rnglists - 0x00000000000026cd 0x4a ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + 0x0000000000002661 0x7f ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o .debug_rnglists - 0x0000000000002717 0x66 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + 0x00000000000026e0 0x4a ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o .debug_rnglists - 0x000000000000277d 0x40 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o + 0x000000000000272a 0x66 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o .debug_rnglists - 0x00000000000027bd 0x32 ./Drivers/lvgl/src/extra/widgets/win/lv_win.o + 0x0000000000002790 0x40 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o .debug_rnglists - 0x00000000000027ef 0x1f ./Drivers/lvgl/src/font/lv_font.o + 0x00000000000027d0 0x32 ./Drivers/lvgl/src/extra/widgets/win/lv_win.o .debug_rnglists - 0x000000000000280e 0x40 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + 0x0000000000002802 0x1f ./Drivers/lvgl/src/font/lv_font.o .debug_rnglists - 0x000000000000284e 0xfb ./Drivers/lvgl/src/hal/lv_hal_disp.o + 0x0000000000002821 0x40 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o .debug_rnglists - 0x0000000000002949 0x32 ./Drivers/lvgl/src/hal/lv_hal_indev.o + 0x0000000000002861 0xfb ./Drivers/lvgl/src/hal/lv_hal_disp.o .debug_rnglists - 0x000000000000297b 0x1f ./Drivers/lvgl/src/hal/lv_hal_tick.o + 0x000000000000295c 0x32 ./Drivers/lvgl/src/hal/lv_hal_indev.o .debug_rnglists - 0x000000000000299a 0x8a ./Drivers/lvgl/src/misc/lv_anim.o + 0x000000000000298e 0x1f ./Drivers/lvgl/src/hal/lv_hal_tick.o .debug_rnglists - 0x0000000000002a24 0x7f ./Drivers/lvgl/src/misc/lv_area.o + 0x00000000000029ad 0x8a ./Drivers/lvgl/src/misc/lv_anim.o .debug_rnglists - 0x0000000000002aa3 0x6a ./Drivers/lvgl/src/misc/lv_color.o + 0x0000000000002a37 0x7f ./Drivers/lvgl/src/misc/lv_area.o .debug_rnglists - 0x0000000000002b0d 0x9d ./Drivers/lvgl/src/misc/lv_fs.o + 0x0000000000002ab6 0x6a ./Drivers/lvgl/src/misc/lv_color.o .debug_rnglists - 0x0000000000002baa 0x14 ./Drivers/lvgl/src/misc/lv_gc.o + 0x0000000000002b20 0x9d ./Drivers/lvgl/src/misc/lv_fs.o .debug_rnglists - 0x0000000000002bbe 0x71 ./Drivers/lvgl/src/misc/lv_ll.o + 0x0000000000002bbd 0x14 ./Drivers/lvgl/src/misc/lv_gc.o .debug_rnglists - 0x0000000000002c2f 0x3b ./Drivers/lvgl/src/misc/lv_math.o + 0x0000000000002bd1 0x71 ./Drivers/lvgl/src/misc/lv_ll.o .debug_rnglists - 0x0000000000002c6a 0x6d ./Drivers/lvgl/src/misc/lv_mem.o + 0x0000000000002c42 0x3b ./Drivers/lvgl/src/misc/lv_math.o .debug_rnglists - 0x0000000000002cd7 0x5a ./Drivers/lvgl/src/misc/lv_printf.o + 0x0000000000002c7d 0x6d ./Drivers/lvgl/src/misc/lv_mem.o .debug_rnglists - 0x0000000000002d31 0x83 ./Drivers/lvgl/src/misc/lv_style.o + 0x0000000000002cea 0x5a ./Drivers/lvgl/src/misc/lv_printf.o .debug_rnglists - 0x0000000000002db4 0x22f ./Drivers/lvgl/src/misc/lv_style_gen.o + 0x0000000000002d44 0x83 ./Drivers/lvgl/src/misc/lv_style.o .debug_rnglists - 0x0000000000002fe3 0x75 ./Drivers/lvgl/src/misc/lv_timer.o + 0x0000000000002dc7 0x22f ./Drivers/lvgl/src/misc/lv_style_gen.o .debug_rnglists - 0x0000000000003058 0x192 ./Drivers/lvgl/src/misc/lv_tlsf.o + 0x0000000000002ff6 0x75 ./Drivers/lvgl/src/misc/lv_timer.o .debug_rnglists - 0x00000000000031ea 0xab ./Drivers/lvgl/src/misc/lv_txt.o + 0x000000000000306b 0x192 ./Drivers/lvgl/src/misc/lv_tlsf.o .debug_rnglists - 0x0000000000003295 0x14 ./Drivers/lvgl/src/misc/lv_utils.o + 0x00000000000031fd 0xab ./Drivers/lvgl/src/misc/lv_txt.o .debug_rnglists - 0x00000000000032a9 0xf4 ./Drivers/lvgl/src/widgets/lv_arc.o + 0x00000000000032a8 0x14 ./Drivers/lvgl/src/misc/lv_utils.o .debug_rnglists - 0x000000000000339d 0xe4 ./Drivers/lvgl/src/widgets/lv_bar.o + 0x00000000000032bc 0xf4 ./Drivers/lvgl/src/widgets/lv_arc.o .debug_rnglists - 0x0000000000003481 0x19 ./Drivers/lvgl/src/widgets/lv_btn.o + 0x00000000000033b0 0xe4 ./Drivers/lvgl/src/widgets/lv_bar.o .debug_rnglists - 0x000000000000349a 0x13b ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + 0x0000000000003494 0x19 ./Drivers/lvgl/src/widgets/lv_btn.o .debug_rnglists - 0x00000000000035d5 0x93 ./Drivers/lvgl/src/widgets/lv_checkbox.o + 0x00000000000034ad 0x13b ./Drivers/lvgl/src/widgets/lv_btnmatrix.o .debug_rnglists - 0x0000000000003668 0x160 ./Drivers/lvgl/src/widgets/lv_dropdown.o + 0x00000000000035e8 0x93 ./Drivers/lvgl/src/widgets/lv_checkbox.o .debug_rnglists - 0x00000000000037c8 0x145 ./Drivers/lvgl/src/widgets/lv_img.o + 0x000000000000367b 0x160 ./Drivers/lvgl/src/widgets/lv_dropdown.o .debug_rnglists - 0x000000000000390d 0x15e ./Drivers/lvgl/src/widgets/lv_label.o + 0x00000000000037db 0x145 ./Drivers/lvgl/src/widgets/lv_img.o .debug_rnglists - 0x0000000000003a6b 0x47 ./Drivers/lvgl/src/widgets/lv_line.o + 0x0000000000003920 0x15e ./Drivers/lvgl/src/widgets/lv_label.o .debug_rnglists - 0x0000000000003ab2 0xea ./Drivers/lvgl/src/widgets/lv_roller.o + 0x0000000000003a7e 0x47 ./Drivers/lvgl/src/widgets/lv_line.o .debug_rnglists - 0x0000000000003b9c 0xab ./Drivers/lvgl/src/widgets/lv_slider.o + 0x0000000000003ac5 0xea ./Drivers/lvgl/src/widgets/lv_roller.o .debug_rnglists - 0x0000000000003c47 0x8e ./Drivers/lvgl/src/widgets/lv_switch.o + 0x0000000000003baf 0xab ./Drivers/lvgl/src/widgets/lv_slider.o .debug_rnglists - 0x0000000000003cd5 0x13a ./Drivers/lvgl/src/widgets/lv_table.o + 0x0000000000003c5a 0x8e ./Drivers/lvgl/src/widgets/lv_switch.o .debug_rnglists - 0x0000000000003e0f 0x1cd ./Drivers/lvgl/src/widgets/lv_textarea.o + 0x0000000000003ce8 0x13a ./Drivers/lvgl/src/widgets/lv_table.o + .debug_rnglists + 0x0000000000003e22 0x1cd ./Drivers/lvgl/src/widgets/lv_textarea.o -.debug_macro 0x0000000000000000 0x35873 +.debug_macro 0x0000000000000000 0x3610a .debug_macro 0x0000000000000000 0x289 ./Core/Src/ADS7843.o .debug_macro 0x0000000000000289 0xa9c ./Core/Src/ADS7843.o .debug_macro 0x0000000000000d25 0x22 ./Core/Src/ADS7843.o @@ -27902,597 +28041,602 @@ LOAD /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools- .debug_macro 0x0000000000017ee5 0x51 ./Core/Src/ILI9341.o .debug_macro 0x0000000000017f36 0xac ./Core/Src/ILI9341.o .debug_macro 0x0000000000017fe2 0x10 ./Core/Src/ILI9341.o - .debug_macro 0x0000000000017ff2 0x6f ./Core/Src/lcdio.o - .debug_macro 0x0000000000018061 0x8bb ./Core/Src/logo_mint_resize.o - .debug_macro 0x000000000001891c 0x22 ./Core/Src/logo_mint_resize.o - .debug_macro 0x000000000001893e 0x475 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000018db3 0x4a ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000018dfd 0x2e ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000018e2b 0x58 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000018e83 0x22 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000018ea5 0x77 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000018f1c 0x174 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019090 0x61 ./Core/Src/logo_mint_resize.o - .debug_macro 0x00000000000190f1 0x10 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019101 0x35 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019136 0x20 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019156 0x10 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019166 0x10 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019176 0x460 ./Core/Src/logo_mint_resize.o - .debug_macro 0x00000000000195d6 0x10 ./Core/Src/logo_mint_resize.o - .debug_macro 0x00000000000195e6 0x58 ./Core/Src/logo_mint_resize.o - .debug_macro 0x000000000001963e 0x1a4 ./Core/Src/logo_mint_resize.o - .debug_macro 0x00000000000197e2 0x74 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019856 0x22 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019878 0x170 ./Core/Src/logo_mint_resize.o - .debug_macro 0x00000000000199e8 0x10 ./Core/Src/logo_mint_resize.o - .debug_macro 0x00000000000199f8 0x16 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019a0e 0x34 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019a42 0x27a ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019cbc 0x58 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019d14 0x16 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019d2a 0x10 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019d3a 0x12 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019d4c 0x28 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019d74 0x10 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019d84 0x12 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019d96 0x10 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019da6 0x12 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019db8 0x1c ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019dd4 0x10 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019de4 0x10 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019df4 0x51 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019e45 0x10 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019e55 0x1c ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019e71 0x1c ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019e8d 0x10 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019e9d 0x16 ./Core/Src/logo_mint_resize.o - .debug_macro 0x0000000000019eb3 0xa8c ./Core/Src/main.o - .debug_macro 0x000000000001a93f 0x5c ./Core/Src/main.o - .debug_macro 0x000000000001a99b 0x7c ./Core/Src/main.o - .debug_macro 0x000000000001aa17 0x16 ./Core/Src/main.o - .debug_macro 0x000000000001aa2d 0x4c ./Core/Src/main.o - .debug_macro 0x000000000001aa79 0x70 ./Core/Src/main.o - .debug_macro 0x000000000001aae9 0x1b7 ./Core/Src/stm32f1xx_hal_msp.o - .debug_macro 0x000000000001aca0 0x1c1 ./Core/Src/stm32f1xx_it.o - .debug_macro 0x000000000001ae61 0x1a8 ./Core/Src/system_stm32f1xx.o - .debug_macro 0x000000000001b009 0x1cc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - .debug_macro 0x000000000001b1d5 0x1a8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o - .debug_macro 0x000000000001b37d 0x213 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o - .debug_macro 0x000000000001b590 0x1ba ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - .debug_macro 0x000000000001b74a 0x1a8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o - .debug_macro 0x000000000001b8f2 0x1a9 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o - .debug_macro 0x000000000001ba9b 0x1e1 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o - .debug_macro 0x000000000001bc7c 0x478 ./Drivers/lvgl/src/core/lv_disp.o - .debug_macro 0x000000000001c0f4 0x467 ./Drivers/lvgl/src/core/lv_event.o - .debug_macro 0x000000000001c55b 0x10 ./Drivers/lvgl/src/core/lv_event.o - .debug_macro 0x000000000001c56b 0x49f ./Drivers/lvgl/src/core/lv_group.o - .debug_macro 0x000000000001ca0a 0x10 ./Drivers/lvgl/src/core/lv_group.o - .debug_macro 0x000000000001ca1a 0x7a ./Drivers/lvgl/src/core/lv_group.o - .debug_macro 0x000000000001ca94 0x4c ./Drivers/lvgl/src/core/lv_group.o - .debug_macro 0x000000000001cae0 0x49d ./Drivers/lvgl/src/core/lv_indev.o - .debug_macro 0x000000000001cf7d 0x46b ./Drivers/lvgl/src/core/lv_indev_scroll.o - .debug_macro 0x000000000001d3e8 0x4e6 ./Drivers/lvgl/src/core/lv_obj.o - .debug_macro 0x000000000001d8ce 0x461 ./Drivers/lvgl/src/core/lv_obj_class.o - .debug_macro 0x000000000001dd2f 0x473 ./Drivers/lvgl/src/core/lv_obj_draw.o - .debug_macro 0x000000000001e1a2 0x49c ./Drivers/lvgl/src/core/lv_obj_pos.o - .debug_macro 0x000000000001e63e 0x495 ./Drivers/lvgl/src/core/lv_obj_scroll.o - .debug_macro 0x000000000001ead3 0x493 ./Drivers/lvgl/src/core/lv_obj_style.o - .debug_macro 0x000000000001ef66 0x44d ./Drivers/lvgl/src/core/lv_obj_style_gen.o - .debug_macro 0x000000000001f3b3 0x4b6 ./Drivers/lvgl/src/core/lv_obj_tree.o - .debug_macro 0x000000000001f869 0x10e ./Drivers/lvgl/src/core/lv_obj_tree.o - .debug_macro 0x000000000001f977 0x8d ./Drivers/lvgl/src/core/lv_obj_tree.o - .debug_macro 0x000000000001fa04 0x4cd ./Drivers/lvgl/src/core/lv_refr.o - .debug_macro 0x000000000001fed1 0x8b0 ./Drivers/lvgl/src/core/lv_theme.o - .debug_macro 0x0000000000020781 0x3d1 ./Drivers/lvgl/src/draw/lv_draw.o - .debug_macro 0x0000000000020b52 0x33e ./Drivers/lvgl/src/draw/lv_draw_arc.o - .debug_macro 0x0000000000020e90 0x475 ./Drivers/lvgl/src/draw/lv_draw_img.o - .debug_macro 0x0000000000021305 0x46b ./Drivers/lvgl/src/draw/lv_draw_label.o - .debug_macro 0x0000000000021770 0x461 ./Drivers/lvgl/src/draw/lv_draw_line.o - .debug_macro 0x0000000000021bd1 0x389 ./Drivers/lvgl/src/draw/lv_draw_mask.o - .debug_macro 0x0000000000021f5a 0x342 ./Drivers/lvgl/src/draw/lv_draw_rect.o - .debug_macro 0x000000000002229c 0x2a1 ./Drivers/lvgl/src/draw/lv_img_buf.o - .debug_macro 0x000000000002253d 0x31d ./Drivers/lvgl/src/draw/lv_img_cache.o - .debug_macro 0x000000000002285a 0x321 ./Drivers/lvgl/src/draw/lv_img_decoder.o - .debug_macro 0x0000000000022b7b 0x3d5 ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o - .debug_macro 0x0000000000022f50 0x3e3 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o - .debug_macro 0x0000000000023333 0x5e ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o - .debug_macro 0x0000000000023391 0x48b ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o - .debug_macro 0x000000000002381c 0x33b ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o - .debug_macro 0x0000000000023b57 0x485 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o - .debug_macro 0x0000000000023fdc 0x481 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o - .debug_macro 0x000000000002445d 0x473 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o - .debug_macro 0x00000000000248d0 0x3d7 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o - .debug_macro 0x0000000000024ca7 0x4a5 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o - .debug_macro 0x000000000002514c 0x47f ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o - .debug_macro 0x00000000000255cb 0x491 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o - .debug_macro 0x0000000000025a5c 0x8b0 ./Drivers/lvgl/src/extra/lv_extra.o - .debug_macro 0x000000000002630c 0x94e ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o - .debug_macro 0x0000000000026c5a 0x8f3 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o - .debug_macro 0x000000000002754d 0x4b5 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o - .debug_macro 0x0000000000027a02 0x4c3 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o - .debug_macro 0x0000000000027ec5 0x8d3 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o - .debug_macro 0x0000000000028798 0x8d5 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o - .debug_macro 0x000000000002906d 0x4e4 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o - .debug_macro 0x0000000000029551 0x8bb ./Drivers/lvgl/src/extra/widgets/led/lv_led.o - .debug_macro 0x0000000000029e0c 0x4d7 ./Drivers/lvgl/src/extra/widgets/list/lv_list.o - .debug_macro 0x000000000002a2e3 0x4b6 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - .debug_macro 0x000000000002a799 0x8bb ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o - .debug_macro 0x000000000002b054 0x8c0 ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o - .debug_macro 0x000000000002b914 0x8bb ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o - .debug_macro 0x000000000002c1cf 0x8b0 ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o - .debug_macro 0x000000000002ca7f 0x8bb ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o - .debug_macro 0x000000000002d33a 0x457 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o - .debug_macro 0x000000000002d791 0x8af ./Drivers/lvgl/src/extra/widgets/win/lv_win.o - .debug_macro 0x000000000002e040 0x1d5 ./Drivers/lvgl/src/font/lv_font.o - .debug_macro 0x000000000002e215 0x293 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o - .debug_macro 0x000000000002e4a8 0x8af ./Drivers/lvgl/src/font/lv_font_montserrat_14.o - .debug_macro 0x000000000002ed57 0x4f6 ./Drivers/lvgl/src/hal/lv_hal_disp.o - .debug_macro 0x000000000002f24d 0x49d ./Drivers/lvgl/src/hal/lv_hal_indev.o - .debug_macro 0x000000000002f6ea 0xa1 ./Drivers/lvgl/src/hal/lv_hal_tick.o - .debug_macro 0x000000000002f78b 0x27a ./Drivers/lvgl/src/misc/lv_anim.o - .debug_macro 0x000000000002fa05 0xa6 ./Drivers/lvgl/src/misc/lv_area.o - .debug_macro 0x000000000002faab 0x1a5 ./Drivers/lvgl/src/misc/lv_color.o - .debug_macro 0x000000000002fc50 0x259 ./Drivers/lvgl/src/misc/lv_fs.o - .debug_macro 0x000000000002fea9 0x249 ./Drivers/lvgl/src/misc/lv_gc.o - .debug_macro 0x00000000000300f2 0x19d ./Drivers/lvgl/src/misc/lv_ll.o - .debug_macro 0x000000000003028f 0x94 ./Drivers/lvgl/src/misc/lv_math.o - .debug_macro 0x0000000000030323 0x71 ./Drivers/lvgl/src/misc/lv_math.o - .debug_macro 0x0000000000030394 0x295 ./Drivers/lvgl/src/misc/lv_mem.o - .debug_macro 0x0000000000030629 0x17c ./Drivers/lvgl/src/misc/lv_printf.o - .debug_macro 0x00000000000307a5 0x82 ./Drivers/lvgl/src/misc/lv_printf.o - .debug_macro 0x0000000000030827 0x104 ./Drivers/lvgl/src/misc/lv_printf.o - .debug_macro 0x000000000003092b 0x269 ./Drivers/lvgl/src/misc/lv_style.o - .debug_macro 0x0000000000030b94 0x265 ./Drivers/lvgl/src/misc/lv_style_gen.o - .debug_macro 0x0000000000030df9 0x26a ./Drivers/lvgl/src/misc/lv_timer.o - .debug_macro 0x0000000000031063 0x266 ./Drivers/lvgl/src/misc/lv_tlsf.o - .debug_macro 0x00000000000312c9 0x28 ./Drivers/lvgl/src/misc/lv_tlsf.o - .debug_macro 0x00000000000312f1 0x38b ./Drivers/lvgl/src/misc/lv_txt.o - .debug_macro 0x000000000003167c 0x76 ./Drivers/lvgl/src/misc/lv_utils.o - .debug_macro 0x00000000000316f2 0x489 ./Drivers/lvgl/src/widgets/lv_arc.o - .debug_macro 0x0000000000031b7b 0x4c0 ./Drivers/lvgl/src/widgets/lv_bar.o - .debug_macro 0x000000000003203b 0x474 ./Drivers/lvgl/src/widgets/lv_btn.o - .debug_macro 0x00000000000324af 0x4b4 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - .debug_macro 0x0000000000032963 0x483 ./Drivers/lvgl/src/widgets/lv_checkbox.o - .debug_macro 0x0000000000032de6 0x4f7 ./Drivers/lvgl/src/widgets/lv_dropdown.o - .debug_macro 0x00000000000332dd 0x484 ./Drivers/lvgl/src/widgets/lv_img.o - .debug_macro 0x0000000000033761 0x4bc ./Drivers/lvgl/src/widgets/lv_label.o - .debug_macro 0x0000000000033c1d 0x46d ./Drivers/lvgl/src/widgets/lv_line.o - .debug_macro 0x000000000003408a 0x4aa ./Drivers/lvgl/src/widgets/lv_roller.o - .debug_macro 0x0000000000034534 0x4ee ./Drivers/lvgl/src/widgets/lv_slider.o - .debug_macro 0x0000000000034a22 0x4d3 ./Drivers/lvgl/src/widgets/lv_switch.o - .debug_macro 0x0000000000034ef5 0x4ba ./Drivers/lvgl/src/widgets/lv_table.o - .debug_macro 0x00000000000353af 0x4c4 ./Drivers/lvgl/src/widgets/lv_textarea.o + .debug_macro 0x0000000000017ff2 0x8b0 ./Core/Src/home_screen.o + .debug_macro 0x00000000000188a2 0x22 ./Core/Src/home_screen.o + .debug_macro 0x00000000000188c4 0x475 ./Core/Src/home_screen.o + .debug_macro 0x0000000000018d39 0x4a ./Core/Src/home_screen.o + .debug_macro 0x0000000000018d83 0x2e ./Core/Src/home_screen.o + .debug_macro 0x0000000000018db1 0x58 ./Core/Src/home_screen.o + .debug_macro 0x0000000000018e09 0x22 ./Core/Src/home_screen.o + .debug_macro 0x0000000000018e2b 0x77 ./Core/Src/home_screen.o + .debug_macro 0x0000000000018ea2 0x174 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019016 0x61 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019077 0x10 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019087 0x35 ./Core/Src/home_screen.o + .debug_macro 0x00000000000190bc 0x20 ./Core/Src/home_screen.o + .debug_macro 0x00000000000190dc 0x10 ./Core/Src/home_screen.o + .debug_macro 0x00000000000190ec 0x10 ./Core/Src/home_screen.o + .debug_macro 0x00000000000190fc 0x460 ./Core/Src/home_screen.o + .debug_macro 0x000000000001955c 0x10 ./Core/Src/home_screen.o + .debug_macro 0x000000000001956c 0x58 ./Core/Src/home_screen.o + .debug_macro 0x00000000000195c4 0x1a4 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019768 0x74 ./Core/Src/home_screen.o + .debug_macro 0x00000000000197dc 0x22 ./Core/Src/home_screen.o + .debug_macro 0x00000000000197fe 0x170 ./Core/Src/home_screen.o + .debug_macro 0x000000000001996e 0x10 ./Core/Src/home_screen.o + .debug_macro 0x000000000001997e 0x16 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019994 0x34 ./Core/Src/home_screen.o + .debug_macro 0x00000000000199c8 0x27a ./Core/Src/home_screen.o + .debug_macro 0x0000000000019c42 0x58 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019c9a 0x16 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019cb0 0x10 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019cc0 0x12 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019cd2 0x28 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019cfa 0x10 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019d0a 0x12 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019d1c 0x10 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019d2c 0x12 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019d3e 0x1c ./Core/Src/home_screen.o + .debug_macro 0x0000000000019d5a 0x10 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019d6a 0x10 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019d7a 0x51 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019dcb 0x10 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019ddb 0x1c ./Core/Src/home_screen.o + .debug_macro 0x0000000000019df7 0x1c ./Core/Src/home_screen.o + .debug_macro 0x0000000000019e13 0x10 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019e23 0x16 ./Core/Src/home_screen.o + .debug_macro 0x0000000000019e39 0x6f ./Core/Src/lcdio.o + .debug_macro 0x0000000000019ea8 0x8bb ./Core/Src/logo_mint_resize.o + .debug_macro 0x000000000001a763 0xa97 ./Core/Src/main.o + .debug_macro 0x000000000001b1fa 0x5c ./Core/Src/main.o + .debug_macro 0x000000000001b256 0x58 ./Core/Src/main.o + .debug_macro 0x000000000001b2ae 0x16 ./Core/Src/main.o + .debug_macro 0x000000000001b2c4 0x4c ./Core/Src/main.o + .debug_macro 0x000000000001b310 0x70 ./Core/Src/main.o + .debug_macro 0x000000000001b380 0x1b7 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x000000000001b537 0x1c1 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x000000000001b6f8 0x1a8 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x000000000001b8a0 0x1cc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x000000000001ba6c 0x1a8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x000000000001bc14 0x213 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x000000000001be27 0x1ba ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x000000000001bfe1 0x1a8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + .debug_macro 0x000000000001c189 0x1a9 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o + .debug_macro 0x000000000001c332 0x1e1 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + .debug_macro 0x000000000001c513 0x478 ./Drivers/lvgl/src/core/lv_disp.o + .debug_macro 0x000000000001c98b 0x467 ./Drivers/lvgl/src/core/lv_event.o + .debug_macro 0x000000000001cdf2 0x10 ./Drivers/lvgl/src/core/lv_event.o + .debug_macro 0x000000000001ce02 0x49f ./Drivers/lvgl/src/core/lv_group.o + .debug_macro 0x000000000001d2a1 0x10 ./Drivers/lvgl/src/core/lv_group.o + .debug_macro 0x000000000001d2b1 0x7a ./Drivers/lvgl/src/core/lv_group.o + .debug_macro 0x000000000001d32b 0x4c ./Drivers/lvgl/src/core/lv_group.o + .debug_macro 0x000000000001d377 0x49d ./Drivers/lvgl/src/core/lv_indev.o + .debug_macro 0x000000000001d814 0x46b ./Drivers/lvgl/src/core/lv_indev_scroll.o + .debug_macro 0x000000000001dc7f 0x4e6 ./Drivers/lvgl/src/core/lv_obj.o + .debug_macro 0x000000000001e165 0x461 ./Drivers/lvgl/src/core/lv_obj_class.o + .debug_macro 0x000000000001e5c6 0x473 ./Drivers/lvgl/src/core/lv_obj_draw.o + .debug_macro 0x000000000001ea39 0x49c ./Drivers/lvgl/src/core/lv_obj_pos.o + .debug_macro 0x000000000001eed5 0x495 ./Drivers/lvgl/src/core/lv_obj_scroll.o + .debug_macro 0x000000000001f36a 0x493 ./Drivers/lvgl/src/core/lv_obj_style.o + .debug_macro 0x000000000001f7fd 0x44d ./Drivers/lvgl/src/core/lv_obj_style_gen.o + .debug_macro 0x000000000001fc4a 0x4b6 ./Drivers/lvgl/src/core/lv_obj_tree.o + .debug_macro 0x0000000000020100 0x10e ./Drivers/lvgl/src/core/lv_obj_tree.o + .debug_macro 0x000000000002020e 0x8d ./Drivers/lvgl/src/core/lv_obj_tree.o + .debug_macro 0x000000000002029b 0x4cd ./Drivers/lvgl/src/core/lv_refr.o + .debug_macro 0x0000000000020768 0x8b0 ./Drivers/lvgl/src/core/lv_theme.o + .debug_macro 0x0000000000021018 0x3d1 ./Drivers/lvgl/src/draw/lv_draw.o + .debug_macro 0x00000000000213e9 0x33e ./Drivers/lvgl/src/draw/lv_draw_arc.o + .debug_macro 0x0000000000021727 0x475 ./Drivers/lvgl/src/draw/lv_draw_img.o + .debug_macro 0x0000000000021b9c 0x46b ./Drivers/lvgl/src/draw/lv_draw_label.o + .debug_macro 0x0000000000022007 0x461 ./Drivers/lvgl/src/draw/lv_draw_line.o + .debug_macro 0x0000000000022468 0x389 ./Drivers/lvgl/src/draw/lv_draw_mask.o + .debug_macro 0x00000000000227f1 0x342 ./Drivers/lvgl/src/draw/lv_draw_rect.o + .debug_macro 0x0000000000022b33 0x2a1 ./Drivers/lvgl/src/draw/lv_img_buf.o + .debug_macro 0x0000000000022dd4 0x31d ./Drivers/lvgl/src/draw/lv_img_cache.o + .debug_macro 0x00000000000230f1 0x321 ./Drivers/lvgl/src/draw/lv_img_decoder.o + .debug_macro 0x0000000000023412 0x3d5 ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o + .debug_macro 0x00000000000237e7 0x3e3 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + .debug_macro 0x0000000000023bca 0x5e ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + .debug_macro 0x0000000000023c28 0x48b ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + .debug_macro 0x00000000000240b3 0x33b ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + .debug_macro 0x00000000000243ee 0x485 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o + .debug_macro 0x0000000000024873 0x481 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + .debug_macro 0x0000000000024cf4 0x473 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o + .debug_macro 0x0000000000025167 0x3d7 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o + .debug_macro 0x000000000002553e 0x4a5 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + .debug_macro 0x00000000000259e3 0x47f ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + .debug_macro 0x0000000000025e62 0x491 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + .debug_macro 0x00000000000262f3 0x8b0 ./Drivers/lvgl/src/extra/lv_extra.o + .debug_macro 0x0000000000026ba3 0x94e ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + .debug_macro 0x00000000000274f1 0x8f3 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + .debug_macro 0x0000000000027de4 0x4b5 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o + .debug_macro 0x0000000000028299 0x4c3 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o + .debug_macro 0x000000000002875c 0x8d3 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + .debug_macro 0x000000000002902f 0x8d5 ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + .debug_macro 0x0000000000029904 0x4e4 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + .debug_macro 0x0000000000029de8 0x8bb ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + .debug_macro 0x000000000002a6a3 0x4d7 ./Drivers/lvgl/src/extra/widgets/list/lv_list.o + .debug_macro 0x000000000002ab7a 0x4b6 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + .debug_macro 0x000000000002b030 0x8bb ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + .debug_macro 0x000000000002b8eb 0x8c0 ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o + .debug_macro 0x000000000002c1ab 0x8bb ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + .debug_macro 0x000000000002ca66 0x8b0 ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + .debug_macro 0x000000000002d316 0x8bb ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + .debug_macro 0x000000000002dbd1 0x457 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o + .debug_macro 0x000000000002e028 0x8af ./Drivers/lvgl/src/extra/widgets/win/lv_win.o + .debug_macro 0x000000000002e8d7 0x1d5 ./Drivers/lvgl/src/font/lv_font.o + .debug_macro 0x000000000002eaac 0x293 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + .debug_macro 0x000000000002ed3f 0x8af ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + .debug_macro 0x000000000002f5ee 0x4f6 ./Drivers/lvgl/src/hal/lv_hal_disp.o + .debug_macro 0x000000000002fae4 0x49d ./Drivers/lvgl/src/hal/lv_hal_indev.o + .debug_macro 0x000000000002ff81 0xa1 ./Drivers/lvgl/src/hal/lv_hal_tick.o + .debug_macro 0x0000000000030022 0x27a ./Drivers/lvgl/src/misc/lv_anim.o + .debug_macro 0x000000000003029c 0xa6 ./Drivers/lvgl/src/misc/lv_area.o + .debug_macro 0x0000000000030342 0x1a5 ./Drivers/lvgl/src/misc/lv_color.o + .debug_macro 0x00000000000304e7 0x259 ./Drivers/lvgl/src/misc/lv_fs.o + .debug_macro 0x0000000000030740 0x249 ./Drivers/lvgl/src/misc/lv_gc.o + .debug_macro 0x0000000000030989 0x19d ./Drivers/lvgl/src/misc/lv_ll.o + .debug_macro 0x0000000000030b26 0x94 ./Drivers/lvgl/src/misc/lv_math.o + .debug_macro 0x0000000000030bba 0x71 ./Drivers/lvgl/src/misc/lv_math.o + .debug_macro 0x0000000000030c2b 0x295 ./Drivers/lvgl/src/misc/lv_mem.o + .debug_macro 0x0000000000030ec0 0x17c ./Drivers/lvgl/src/misc/lv_printf.o + .debug_macro 0x000000000003103c 0x82 ./Drivers/lvgl/src/misc/lv_printf.o + .debug_macro 0x00000000000310be 0x104 ./Drivers/lvgl/src/misc/lv_printf.o + .debug_macro 0x00000000000311c2 0x269 ./Drivers/lvgl/src/misc/lv_style.o + .debug_macro 0x000000000003142b 0x265 ./Drivers/lvgl/src/misc/lv_style_gen.o + .debug_macro 0x0000000000031690 0x26a ./Drivers/lvgl/src/misc/lv_timer.o + .debug_macro 0x00000000000318fa 0x266 ./Drivers/lvgl/src/misc/lv_tlsf.o + .debug_macro 0x0000000000031b60 0x28 ./Drivers/lvgl/src/misc/lv_tlsf.o + .debug_macro 0x0000000000031b88 0x38b ./Drivers/lvgl/src/misc/lv_txt.o + .debug_macro 0x0000000000031f13 0x76 ./Drivers/lvgl/src/misc/lv_utils.o + .debug_macro 0x0000000000031f89 0x489 ./Drivers/lvgl/src/widgets/lv_arc.o + .debug_macro 0x0000000000032412 0x4c0 ./Drivers/lvgl/src/widgets/lv_bar.o + .debug_macro 0x00000000000328d2 0x474 ./Drivers/lvgl/src/widgets/lv_btn.o + .debug_macro 0x0000000000032d46 0x4b4 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + .debug_macro 0x00000000000331fa 0x483 ./Drivers/lvgl/src/widgets/lv_checkbox.o + .debug_macro 0x000000000003367d 0x4f7 ./Drivers/lvgl/src/widgets/lv_dropdown.o + .debug_macro 0x0000000000033b74 0x484 ./Drivers/lvgl/src/widgets/lv_img.o + .debug_macro 0x0000000000033ff8 0x4bc ./Drivers/lvgl/src/widgets/lv_label.o + .debug_macro 0x00000000000344b4 0x46d ./Drivers/lvgl/src/widgets/lv_line.o + .debug_macro 0x0000000000034921 0x4aa ./Drivers/lvgl/src/widgets/lv_roller.o + .debug_macro 0x0000000000034dcb 0x4ee ./Drivers/lvgl/src/widgets/lv_slider.o + .debug_macro 0x00000000000352b9 0x4d3 ./Drivers/lvgl/src/widgets/lv_switch.o + .debug_macro 0x000000000003578c 0x4ba ./Drivers/lvgl/src/widgets/lv_table.o + .debug_macro 0x0000000000035c46 0x4c4 ./Drivers/lvgl/src/widgets/lv_textarea.o -.debug_line 0x0000000000000000 0xa16d4 +.debug_line 0x0000000000000000 0xa4b4a .debug_line 0x0000000000000000 0x850 ./Core/Src/ADS7843.o .debug_line 0x0000000000000850 0x48a ./Core/Src/ILI9341.o - .debug_line 0x0000000000000cda 0x392 ./Core/Src/lcdio.o - .debug_line 0x000000000000106c 0x349c ./Core/Src/logo_mint_resize.o - .debug_line 0x0000000000004508 0x3ab8 ./Core/Src/main.o - .debug_line 0x0000000000007fc0 0x70c ./Core/Src/stm32f1xx_hal_msp.o - .debug_line 0x00000000000086cc 0x6db ./Core/Src/stm32f1xx_it.o - .debug_line 0x0000000000008da7 0x696 ./Core/Src/system_stm32f1xx.o - .debug_line 0x000000000000943d 0x79 ./Core/Startup/startup_stm32f103vetx.o - .debug_line 0x00000000000094b6 0x8c3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - .debug_line 0x0000000000009d79 0xaab ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o - .debug_line 0x000000000000a824 0x984 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o - .debug_line 0x000000000000b1a8 0xccc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - .debug_line 0x000000000000be74 0xc28 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o - .debug_line 0x000000000000ca9c 0x27f1 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o - .debug_line 0x000000000000f28d 0x921 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o - .debug_line 0x000000000000fbae 0x12a3 ./Drivers/lvgl/src/core/lv_disp.o - .debug_line 0x0000000000010e51 0x16e3 ./Drivers/lvgl/src/core/lv_event.o - .debug_line 0x0000000000012534 0x162f ./Drivers/lvgl/src/core/lv_group.o - .debug_line 0x0000000000013b63 0x1e2a ./Drivers/lvgl/src/core/lv_indev.o - .debug_line 0x000000000001598d 0x173b ./Drivers/lvgl/src/core/lv_indev_scroll.o - .debug_line 0x00000000000170c8 0x1d72 ./Drivers/lvgl/src/core/lv_obj.o - .debug_line 0x0000000000018e3a 0xf6a ./Drivers/lvgl/src/core/lv_obj_class.o - .debug_line 0x0000000000019da4 0x17f7 ./Drivers/lvgl/src/core/lv_obj_draw.o - .debug_line 0x000000000001b59b 0x22dc ./Drivers/lvgl/src/core/lv_obj_pos.o - .debug_line 0x000000000001d877 0x1fd8 ./Drivers/lvgl/src/core/lv_obj_scroll.o - .debug_line 0x000000000001f84f 0x2157 ./Drivers/lvgl/src/core/lv_obj_style.o - .debug_line 0x00000000000219a6 0x16ec ./Drivers/lvgl/src/core/lv_obj_style_gen.o - .debug_line 0x0000000000023092 0x14d9 ./Drivers/lvgl/src/core/lv_obj_tree.o - .debug_line 0x000000000002456b 0x1bc6 ./Drivers/lvgl/src/core/lv_refr.o - .debug_line 0x0000000000026131 0x2aeb ./Drivers/lvgl/src/core/lv_theme.o - .debug_line 0x0000000000028c1c 0xb0c ./Drivers/lvgl/src/draw/lv_draw.o - .debug_line 0x0000000000029728 0xd32 ./Drivers/lvgl/src/draw/lv_draw_arc.o - .debug_line 0x000000000002a45a 0x1155 ./Drivers/lvgl/src/draw/lv_draw_img.o - .debug_line 0x000000000002b5af 0x1245 ./Drivers/lvgl/src/draw/lv_draw_label.o - .debug_line 0x000000000002c7f4 0xe1e ./Drivers/lvgl/src/draw/lv_draw_line.o - .debug_line 0x000000000002d612 0x28b0 ./Drivers/lvgl/src/draw/lv_draw_mask.o - .debug_line 0x000000000002fec2 0xa0f ./Drivers/lvgl/src/draw/lv_draw_rect.o - .debug_line 0x00000000000308d1 0x15eb ./Drivers/lvgl/src/draw/lv_img_buf.o - .debug_line 0x0000000000031ebc 0x964 ./Drivers/lvgl/src/draw/lv_img_cache.o - .debug_line 0x0000000000032820 0x13df ./Drivers/lvgl/src/draw/lv_img_decoder.o - .debug_line 0x0000000000033bff 0xb7e ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o - .debug_line 0x000000000003477d 0x189a ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o - .debug_line 0x0000000000036017 0x1bcd ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o - .debug_line 0x0000000000037be4 0xe6f ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o - .debug_line 0x0000000000038a53 0x1327 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o - .debug_line 0x0000000000039d7a 0x127a ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o - .debug_line 0x000000000003aff4 0x140f ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o - .debug_line 0x000000000003c403 0xe1e ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o - .debug_line 0x000000000003d221 0x2a07 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o - .debug_line 0x000000000003fc28 0x1fe3 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o - .debug_line 0x0000000000041c0b 0x209e ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o - .debug_line 0x0000000000043ca9 0x298a ./Drivers/lvgl/src/extra/lv_extra.o - .debug_line 0x0000000000046633 0x5ae6 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o - .debug_line 0x000000000004c119 0x3c00 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o - .debug_line 0x000000000004fd19 0x139c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o - .debug_line 0x00000000000510b5 0x1482 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o - .debug_line 0x0000000000052537 0x55fa ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o - .debug_line 0x0000000000057b31 0x3f7c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o - .debug_line 0x000000000005baad 0x15a5 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o - .debug_line 0x000000000005d052 0x33e0 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o - .debug_line 0x0000000000060432 0x12dd ./Drivers/lvgl/src/extra/widgets/list/lv_list.o - .debug_line 0x000000000006170f 0x1884 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - .debug_line 0x0000000000062f93 0x405f ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o - .debug_line 0x0000000000066ff2 0x3669 ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o - .debug_line 0x000000000006a65b 0x396a ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o - .debug_line 0x000000000006dfc5 0x33ff ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o - .debug_line 0x00000000000713c4 0x3755 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o - .debug_line 0x0000000000074b19 0x1156 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o - .debug_line 0x0000000000075c6f 0x31e2 ./Drivers/lvgl/src/extra/widgets/win/lv_win.o - .debug_line 0x0000000000078e51 0x66e ./Drivers/lvgl/src/font/lv_font.o - .debug_line 0x00000000000794bf 0xbe3 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o - .debug_line 0x000000000007a0a2 0x2934 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o - .debug_line 0x000000000007c9d6 0x1a74 ./Drivers/lvgl/src/hal/lv_hal_disp.o - .debug_line 0x000000000007e44a 0x1064 ./Drivers/lvgl/src/hal/lv_hal_indev.o - .debug_line 0x000000000007f4ae 0x429 ./Drivers/lvgl/src/hal/lv_hal_tick.o - .debug_line 0x000000000007f8d7 0xdef ./Drivers/lvgl/src/misc/lv_anim.o - .debug_line 0x00000000000806c6 0xb7c ./Drivers/lvgl/src/misc/lv_area.o - .debug_line 0x0000000000081242 0x95a ./Drivers/lvgl/src/misc/lv_color.o - .debug_line 0x0000000000081b9c 0xf6e ./Drivers/lvgl/src/misc/lv_fs.o - .debug_line 0x0000000000082b0a 0x727 ./Drivers/lvgl/src/misc/lv_gc.o - .debug_line 0x0000000000083231 0x87f ./Drivers/lvgl/src/misc/lv_ll.o - .debug_line 0x0000000000083ab0 0x613 ./Drivers/lvgl/src/misc/lv_math.o - .debug_line 0x00000000000840c3 0xbe4 ./Drivers/lvgl/src/misc/lv_mem.o - .debug_line 0x0000000000084ca7 0xc0e ./Drivers/lvgl/src/misc/lv_printf.o - .debug_line 0x00000000000858b5 0xbc9 ./Drivers/lvgl/src/misc/lv_style.o - .debug_line 0x000000000008647e 0x1113 ./Drivers/lvgl/src/misc/lv_style_gen.o - .debug_line 0x0000000000087591 0xa97 ./Drivers/lvgl/src/misc/lv_timer.o - .debug_line 0x0000000000088028 0x1239 ./Drivers/lvgl/src/misc/lv_tlsf.o - .debug_line 0x0000000000089261 0x137e ./Drivers/lvgl/src/misc/lv_txt.o - .debug_line 0x000000000008a5df 0x38d ./Drivers/lvgl/src/misc/lv_utils.o - .debug_line 0x000000000008a96c 0x1a83 ./Drivers/lvgl/src/widgets/lv_arc.o - .debug_line 0x000000000008c3ef 0x1812 ./Drivers/lvgl/src/widgets/lv_bar.o - .debug_line 0x000000000008dc01 0xe97 ./Drivers/lvgl/src/widgets/lv_btn.o - .debug_line 0x000000000008ea98 0x235c ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - .debug_line 0x0000000000090df4 0x12ed ./Drivers/lvgl/src/widgets/lv_checkbox.o - .debug_line 0x00000000000920e1 0x215e ./Drivers/lvgl/src/widgets/lv_dropdown.o - .debug_line 0x000000000009423f 0x1b3c ./Drivers/lvgl/src/widgets/lv_img.o - .debug_line 0x0000000000095d7b 0x20a3 ./Drivers/lvgl/src/widgets/lv_label.o - .debug_line 0x0000000000097e1e 0x10ac ./Drivers/lvgl/src/widgets/lv_line.o - .debug_line 0x0000000000098eca 0x194f ./Drivers/lvgl/src/widgets/lv_roller.o - .debug_line 0x000000000009a819 0x17ba ./Drivers/lvgl/src/widgets/lv_slider.o - .debug_line 0x000000000009bfd3 0x12c8 ./Drivers/lvgl/src/widgets/lv_switch.o - .debug_line 0x000000000009d29b 0x220e ./Drivers/lvgl/src/widgets/lv_table.o - .debug_line 0x000000000009f4a9 0x222b ./Drivers/lvgl/src/widgets/lv_textarea.o + .debug_line 0x0000000000000cda 0x34d1 ./Core/Src/home_screen.o + .debug_line 0x00000000000041ab 0x392 ./Core/Src/lcdio.o + .debug_line 0x000000000000453d 0x349c ./Core/Src/logo_mint_resize.o + .debug_line 0x00000000000079d9 0x3a5d ./Core/Src/main.o + .debug_line 0x000000000000b436 0x70c ./Core/Src/stm32f1xx_hal_msp.o + .debug_line 0x000000000000bb42 0x6db ./Core/Src/stm32f1xx_it.o + .debug_line 0x000000000000c21d 0x696 ./Core/Src/system_stm32f1xx.o + .debug_line 0x000000000000c8b3 0x79 ./Core/Startup/startup_stm32f103vetx.o + .debug_line 0x000000000000c92c 0x8c3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_line 0x000000000000d1ef 0xaab ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_line 0x000000000000dc9a 0x984 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_line 0x000000000000e61e 0xccc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_line 0x000000000000f2ea 0xc28 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + .debug_line 0x000000000000ff12 0x27f1 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o + .debug_line 0x0000000000012703 0x921 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + .debug_line 0x0000000000013024 0x12a3 ./Drivers/lvgl/src/core/lv_disp.o + .debug_line 0x00000000000142c7 0x16e3 ./Drivers/lvgl/src/core/lv_event.o + .debug_line 0x00000000000159aa 0x162f ./Drivers/lvgl/src/core/lv_group.o + .debug_line 0x0000000000016fd9 0x1e2a ./Drivers/lvgl/src/core/lv_indev.o + .debug_line 0x0000000000018e03 0x173b ./Drivers/lvgl/src/core/lv_indev_scroll.o + .debug_line 0x000000000001a53e 0x1d72 ./Drivers/lvgl/src/core/lv_obj.o + .debug_line 0x000000000001c2b0 0xf6a ./Drivers/lvgl/src/core/lv_obj_class.o + .debug_line 0x000000000001d21a 0x17f7 ./Drivers/lvgl/src/core/lv_obj_draw.o + .debug_line 0x000000000001ea11 0x22dc ./Drivers/lvgl/src/core/lv_obj_pos.o + .debug_line 0x0000000000020ced 0x1fd8 ./Drivers/lvgl/src/core/lv_obj_scroll.o + .debug_line 0x0000000000022cc5 0x2157 ./Drivers/lvgl/src/core/lv_obj_style.o + .debug_line 0x0000000000024e1c 0x16ec ./Drivers/lvgl/src/core/lv_obj_style_gen.o + .debug_line 0x0000000000026508 0x14d9 ./Drivers/lvgl/src/core/lv_obj_tree.o + .debug_line 0x00000000000279e1 0x1bc6 ./Drivers/lvgl/src/core/lv_refr.o + .debug_line 0x00000000000295a7 0x2aeb ./Drivers/lvgl/src/core/lv_theme.o + .debug_line 0x000000000002c092 0xb0c ./Drivers/lvgl/src/draw/lv_draw.o + .debug_line 0x000000000002cb9e 0xd32 ./Drivers/lvgl/src/draw/lv_draw_arc.o + .debug_line 0x000000000002d8d0 0x1155 ./Drivers/lvgl/src/draw/lv_draw_img.o + .debug_line 0x000000000002ea25 0x1245 ./Drivers/lvgl/src/draw/lv_draw_label.o + .debug_line 0x000000000002fc6a 0xe1e ./Drivers/lvgl/src/draw/lv_draw_line.o + .debug_line 0x0000000000030a88 0x28b0 ./Drivers/lvgl/src/draw/lv_draw_mask.o + .debug_line 0x0000000000033338 0xa0f ./Drivers/lvgl/src/draw/lv_draw_rect.o + .debug_line 0x0000000000033d47 0x15eb ./Drivers/lvgl/src/draw/lv_img_buf.o + .debug_line 0x0000000000035332 0x964 ./Drivers/lvgl/src/draw/lv_img_cache.o + .debug_line 0x0000000000035c96 0x13df ./Drivers/lvgl/src/draw/lv_img_decoder.o + .debug_line 0x0000000000037075 0xb7e ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o + .debug_line 0x0000000000037bf3 0x189a ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + .debug_line 0x000000000003948d 0x1bcd ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + .debug_line 0x000000000003b05a 0xe6f ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + .debug_line 0x000000000003bec9 0x1327 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o + .debug_line 0x000000000003d1f0 0x127a ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + .debug_line 0x000000000003e46a 0x140f ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o + .debug_line 0x000000000003f879 0xe1e ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o + .debug_line 0x0000000000040697 0x2a07 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + .debug_line 0x000000000004309e 0x1fe3 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + .debug_line 0x0000000000045081 0x209e ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + .debug_line 0x000000000004711f 0x298a ./Drivers/lvgl/src/extra/lv_extra.o + .debug_line 0x0000000000049aa9 0x5ae6 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + .debug_line 0x000000000004f58f 0x3c00 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + .debug_line 0x000000000005318f 0x139c ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o + .debug_line 0x000000000005452b 0x1482 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o + .debug_line 0x00000000000559ad 0x55fa ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + .debug_line 0x000000000005afa7 0x3f7c ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + .debug_line 0x000000000005ef23 0x15a5 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + .debug_line 0x00000000000604c8 0x33e0 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + .debug_line 0x00000000000638a8 0x12dd ./Drivers/lvgl/src/extra/widgets/list/lv_list.o + .debug_line 0x0000000000064b85 0x1884 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + .debug_line 0x0000000000066409 0x405f ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + .debug_line 0x000000000006a468 0x3669 ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o + .debug_line 0x000000000006dad1 0x396a ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + .debug_line 0x000000000007143b 0x33ff ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + .debug_line 0x000000000007483a 0x3755 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + .debug_line 0x0000000000077f8f 0x1156 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o + .debug_line 0x00000000000790e5 0x31e2 ./Drivers/lvgl/src/extra/widgets/win/lv_win.o + .debug_line 0x000000000007c2c7 0x66e ./Drivers/lvgl/src/font/lv_font.o + .debug_line 0x000000000007c935 0xbe3 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + .debug_line 0x000000000007d518 0x2934 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + .debug_line 0x000000000007fe4c 0x1a74 ./Drivers/lvgl/src/hal/lv_hal_disp.o + .debug_line 0x00000000000818c0 0x1064 ./Drivers/lvgl/src/hal/lv_hal_indev.o + .debug_line 0x0000000000082924 0x429 ./Drivers/lvgl/src/hal/lv_hal_tick.o + .debug_line 0x0000000000082d4d 0xdef ./Drivers/lvgl/src/misc/lv_anim.o + .debug_line 0x0000000000083b3c 0xb7c ./Drivers/lvgl/src/misc/lv_area.o + .debug_line 0x00000000000846b8 0x95a ./Drivers/lvgl/src/misc/lv_color.o + .debug_line 0x0000000000085012 0xf6e ./Drivers/lvgl/src/misc/lv_fs.o + .debug_line 0x0000000000085f80 0x727 ./Drivers/lvgl/src/misc/lv_gc.o + .debug_line 0x00000000000866a7 0x87f ./Drivers/lvgl/src/misc/lv_ll.o + .debug_line 0x0000000000086f26 0x613 ./Drivers/lvgl/src/misc/lv_math.o + .debug_line 0x0000000000087539 0xbe4 ./Drivers/lvgl/src/misc/lv_mem.o + .debug_line 0x000000000008811d 0xc0e ./Drivers/lvgl/src/misc/lv_printf.o + .debug_line 0x0000000000088d2b 0xbc9 ./Drivers/lvgl/src/misc/lv_style.o + .debug_line 0x00000000000898f4 0x1113 ./Drivers/lvgl/src/misc/lv_style_gen.o + .debug_line 0x000000000008aa07 0xa97 ./Drivers/lvgl/src/misc/lv_timer.o + .debug_line 0x000000000008b49e 0x1239 ./Drivers/lvgl/src/misc/lv_tlsf.o + .debug_line 0x000000000008c6d7 0x137e ./Drivers/lvgl/src/misc/lv_txt.o + .debug_line 0x000000000008da55 0x38d ./Drivers/lvgl/src/misc/lv_utils.o + .debug_line 0x000000000008dde2 0x1a83 ./Drivers/lvgl/src/widgets/lv_arc.o + .debug_line 0x000000000008f865 0x1812 ./Drivers/lvgl/src/widgets/lv_bar.o + .debug_line 0x0000000000091077 0xe97 ./Drivers/lvgl/src/widgets/lv_btn.o + .debug_line 0x0000000000091f0e 0x235c ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + .debug_line 0x000000000009426a 0x12ed ./Drivers/lvgl/src/widgets/lv_checkbox.o + .debug_line 0x0000000000095557 0x215e ./Drivers/lvgl/src/widgets/lv_dropdown.o + .debug_line 0x00000000000976b5 0x1b3c ./Drivers/lvgl/src/widgets/lv_img.o + .debug_line 0x00000000000991f1 0x20a3 ./Drivers/lvgl/src/widgets/lv_label.o + .debug_line 0x000000000009b294 0x10ac ./Drivers/lvgl/src/widgets/lv_line.o + .debug_line 0x000000000009c340 0x194f ./Drivers/lvgl/src/widgets/lv_roller.o + .debug_line 0x000000000009dc8f 0x17ba ./Drivers/lvgl/src/widgets/lv_slider.o + .debug_line 0x000000000009f449 0x12c8 ./Drivers/lvgl/src/widgets/lv_switch.o + .debug_line 0x00000000000a0711 0x220e ./Drivers/lvgl/src/widgets/lv_table.o + .debug_line 0x00000000000a291f 0x222b ./Drivers/lvgl/src/widgets/lv_textarea.o -.debug_str 0x0000000000000000 0xaf45d +.debug_str 0x0000000000000000 0xaf401 .debug_str 0x0000000000000000 0x90481 ./Core/Src/ADS7843.o 0x908a0 (size before relaxing) .debug_str 0x0000000000090481 0x388 ./Core/Src/ILI9341.o 0x4020 (size before relaxing) - .debug_str 0x0000000000090809 0xaa ./Core/Src/lcdio.o + .debug_str 0x0000000000090809 0x872a ./Core/Src/home_screen.o + 0xfa2d (size before relaxing) + .debug_str 0x0000000000098f33 0xaa ./Core/Src/lcdio.o 0x3d83 (size before relaxing) - .debug_str 0x00000000000908b3 0x7d92 ./Core/Src/logo_mint_resize.o + .debug_str 0x0000000000098fdd 0x50c ./Core/Src/logo_mint_resize.o 0xeee6 (size before relaxing) - .debug_str 0x0000000000098645 0x235a ./Core/Src/main.o - 0x9b07d (size before relaxing) - .debug_str 0x000000000009a99f 0xd8 ./Core/Src/stm32f1xx_hal_msp.o - 0x8d7b4 (size before relaxing) - .debug_str 0x000000000009aa77 0xd5 ./Core/Src/stm32f1xx_it.o - 0x8d165 (size before relaxing) - .debug_str 0x000000000009ab4c 0x7e ./Core/Src/system_stm32f1xx.o + .debug_str 0x00000000000994e9 0x1444 ./Core/Src/main.o + 0x9af5f (size before relaxing) + .debug_str 0x000000000009a92d 0xd8 ./Core/Src/stm32f1xx_hal_msp.o + 0x8d703 (size before relaxing) + .debug_str 0x000000000009aa05 0xd5 ./Core/Src/stm32f1xx_it.o + 0x8d0b4 (size before relaxing) + .debug_str 0x000000000009aada 0x7e ./Core/Src/system_stm32f1xx.o 0x8cf48 (size before relaxing) - .debug_str 0x000000000009abca 0x34 ./Core/Startup/startup_stm32f103vetx.o + .debug_str 0x000000000009ab58 0x34 ./Core/Startup/startup_stm32f103vetx.o 0x66 (size before relaxing) - .debug_str 0x000000000009abfe 0x69f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_str 0x000000000009ab8c 0x69f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o 0x8d75f (size before relaxing) - .debug_str 0x000000000009b29d 0x2ab ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_str 0x000000000009b22b 0x2ab ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o 0x8d6ab (size before relaxing) - .debug_str 0x000000000009b548 0x2b9 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_str 0x000000000009b4d6 0x2cc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o 0x8d2ce (size before relaxing) - .debug_str 0x000000000009b801 0x229 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_str 0x000000000009b7a2 0x229 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o 0x8d377 (size before relaxing) - .debug_str 0x000000000009ba2a 0x2a2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + .debug_str 0x000000000009b9cb 0x2a2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o 0x8d5cb (size before relaxing) - .debug_str 0x000000000009bccc 0x641 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o + .debug_str 0x000000000009bc6d 0x641 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o 0x8d9e8 (size before relaxing) - .debug_str 0x000000000009c30d 0x742 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + .debug_str 0x000000000009c2ae 0x742 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o 0x8d8ad (size before relaxing) - .debug_str 0x000000000009ca4f 0x5ee ./Drivers/lvgl/src/core/lv_disp.o + .debug_str 0x000000000009c9f0 0x5f1 ./Drivers/lvgl/src/core/lv_disp.o 0xfd38 (size before relaxing) - .debug_str 0x000000000009d03d 0x69e ./Drivers/lvgl/src/core/lv_event.o + .debug_str 0x000000000009cfe1 0x69e ./Drivers/lvgl/src/core/lv_event.o 0x100e2 (size before relaxing) - .debug_str 0x000000000009d6db 0xac6 ./Drivers/lvgl/src/core/lv_group.o + .debug_str 0x000000000009d67f 0xac6 ./Drivers/lvgl/src/core/lv_group.o 0x10653 (size before relaxing) - .debug_str 0x000000000009e1a1 0x4bf ./Drivers/lvgl/src/core/lv_indev.o + .debug_str 0x000000000009e145 0x4bf ./Drivers/lvgl/src/core/lv_indev.o 0x103ce (size before relaxing) - .debug_str 0x000000000009e660 0x3cb ./Drivers/lvgl/src/core/lv_indev_scroll.o + .debug_str 0x000000000009e604 0x3cb ./Drivers/lvgl/src/core/lv_indev_scroll.o 0x100ee (size before relaxing) - .debug_str 0x000000000009ea2b 0xc54 ./Drivers/lvgl/src/core/lv_obj.o + .debug_str 0x000000000009e9cf 0xc46 ./Drivers/lvgl/src/core/lv_obj.o 0x11757 (size before relaxing) - .debug_str 0x000000000009f67f 0xa4 ./Drivers/lvgl/src/core/lv_obj_class.o + .debug_str 0x000000000009f615 0xa4 ./Drivers/lvgl/src/core/lv_obj_class.o 0xf937 (size before relaxing) - .debug_str 0x000000000009f723 0x6ca ./Drivers/lvgl/src/core/lv_obj_draw.o + .debug_str 0x000000000009f6b9 0x6ca ./Drivers/lvgl/src/core/lv_obj_draw.o 0xfde6 (size before relaxing) - .debug_str 0x000000000009fded 0x6dc ./Drivers/lvgl/src/core/lv_obj_pos.o + .debug_str 0x000000000009fd83 0x6ca ./Drivers/lvgl/src/core/lv_obj_pos.o 0x10e41 (size before relaxing) - .debug_str 0x00000000000a04c9 0x335 ./Drivers/lvgl/src/core/lv_obj_scroll.o + .debug_str 0x00000000000a044d 0x335 ./Drivers/lvgl/src/core/lv_obj_scroll.o 0x108c8 (size before relaxing) - .debug_str 0x00000000000a07fe 0x3fa ./Drivers/lvgl/src/core/lv_obj_style.o + .debug_str 0x00000000000a0782 0x3fa ./Drivers/lvgl/src/core/lv_obj_style.o 0x10890 (size before relaxing) - .debug_str 0x00000000000a0bf8 0x9f4 ./Drivers/lvgl/src/core/lv_obj_style_gen.o + .debug_str 0x00000000000a0b7c 0xa0e ./Drivers/lvgl/src/core/lv_obj_style_gen.o 0xfbbb (size before relaxing) - .debug_str 0x00000000000a15ec 0x2b5 ./Drivers/lvgl/src/core/lv_obj_tree.o + .debug_str 0x00000000000a158a 0x2b5 ./Drivers/lvgl/src/core/lv_obj_tree.o 0x104e2 (size before relaxing) - .debug_str 0x00000000000a18a1 0x3a3 ./Drivers/lvgl/src/core/lv_refr.o + .debug_str 0x00000000000a183f 0x3a3 ./Drivers/lvgl/src/core/lv_refr.o 0x10612 (size before relaxing) - .debug_str 0x00000000000a1c44 0x293 ./Drivers/lvgl/src/core/lv_theme.o + .debug_str 0x00000000000a1be2 0x293 ./Drivers/lvgl/src/core/lv_theme.o 0x10669 (size before relaxing) - .debug_str 0x00000000000a1ed7 0x45 ./Drivers/lvgl/src/draw/lv_draw.o + .debug_str 0x00000000000a1e75 0x45 ./Drivers/lvgl/src/draw/lv_draw.o 0xdd17 (size before relaxing) - .debug_str 0x00000000000a1f1c 0xb1 ./Drivers/lvgl/src/draw/lv_draw_arc.o + .debug_str 0x00000000000a1eba 0xb1 ./Drivers/lvgl/src/draw/lv_draw_arc.o 0xe14b (size before relaxing) - .debug_str 0x00000000000a1fcd 0x29d ./Drivers/lvgl/src/draw/lv_draw_img.o + .debug_str 0x00000000000a1f6b 0x29d ./Drivers/lvgl/src/draw/lv_draw_img.o 0xebc8 (size before relaxing) - .debug_str 0x00000000000a226a 0x29b ./Drivers/lvgl/src/draw/lv_draw_label.o + .debug_str 0x00000000000a2208 0x29b ./Drivers/lvgl/src/draw/lv_draw_label.o 0xea40 (size before relaxing) - .debug_str 0x00000000000a2505 0x36 ./Drivers/lvgl/src/draw/lv_draw_line.o + .debug_str 0x00000000000a24a3 0x36 ./Drivers/lvgl/src/draw/lv_draw_line.o 0xe453 (size before relaxing) - .debug_str 0x00000000000a253b 0x6f9 ./Drivers/lvgl/src/draw/lv_draw_mask.o + .debug_str 0x00000000000a24d9 0x6f9 ./Drivers/lvgl/src/draw/lv_draw_mask.o 0xeb38 (size before relaxing) - .debug_str 0x00000000000a2c34 0xba ./Drivers/lvgl/src/draw/lv_draw_rect.o + .debug_str 0x00000000000a2bd2 0xba ./Drivers/lvgl/src/draw/lv_draw_rect.o 0xe1e0 (size before relaxing) - .debug_str 0x00000000000a2cee 0x20c ./Drivers/lvgl/src/draw/lv_img_buf.o + .debug_str 0x00000000000a2c8c 0x219 ./Drivers/lvgl/src/draw/lv_img_buf.o 0xe0db (size before relaxing) - .debug_str 0x00000000000a2efa 0xf8 ./Drivers/lvgl/src/draw/lv_img_cache.o + .debug_str 0x00000000000a2ea5 0xf8 ./Drivers/lvgl/src/draw/lv_img_cache.o 0xe3ad (size before relaxing) - .debug_str 0x00000000000a2ff2 0x4c0 ./Drivers/lvgl/src/draw/lv_img_decoder.o + .debug_str 0x00000000000a2f9d 0x4c0 ./Drivers/lvgl/src/draw/lv_img_decoder.o 0xec66 (size before relaxing) - .debug_str 0x00000000000a34b2 0x158 ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o + .debug_str 0x00000000000a345d 0x158 ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o 0xe5d1 (size before relaxing) - .debug_str 0x00000000000a360a 0x195 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + .debug_str 0x00000000000a35b5 0x195 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o 0xe77b (size before relaxing) - .debug_str 0x00000000000a379f 0x493 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + .debug_str 0x00000000000a374a 0x493 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o 0xfcd1 (size before relaxing) - .debug_str 0x00000000000a3c32 0x2cd ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + .debug_str 0x00000000000a3bdd 0x2cd ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o 0xe505 (size before relaxing) - .debug_str 0x00000000000a3eff 0x105 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o + .debug_str 0x00000000000a3eaa 0x105 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o 0xfd3c (size before relaxing) - .debug_str 0x00000000000a4004 0x199 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + .debug_str 0x00000000000a3faf 0x199 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o 0xf988 (size before relaxing) - .debug_str 0x00000000000a419d 0x153 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o + .debug_str 0x00000000000a4148 0x153 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o 0xfa77 (size before relaxing) - .debug_str 0x00000000000a42f0 0x8e ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o + .debug_str 0x00000000000a429b 0x8e ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o 0xe516 (size before relaxing) - .debug_str 0x00000000000a437e 0x34d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + .debug_str 0x00000000000a4329 0x34d ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o 0xee0b (size before relaxing) - .debug_str 0x00000000000a46cb 0x6d5 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + .debug_str 0x00000000000a4676 0x6d5 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o 0xfdc5 (size before relaxing) - .debug_str 0x00000000000a4da0 0x916 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + .debug_str 0x00000000000a4d4b 0x907 ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o 0xfff7 (size before relaxing) - .debug_str 0x00000000000a56b6 0x25 ./Drivers/lvgl/src/extra/lv_extra.o + .debug_str 0x00000000000a5652 0x25 ./Drivers/lvgl/src/extra/lv_extra.o 0xe9cb (size before relaxing) - .debug_str 0x00000000000a56db 0xfd3 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + .debug_str 0x00000000000a5677 0xfd3 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o 0x121be (size before relaxing) - .debug_str 0x00000000000a66ae 0x505 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + .debug_str 0x00000000000a664a 0x505 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o 0x10dae (size before relaxing) - .debug_str 0x00000000000a6bb3 0x157 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o + .debug_str 0x00000000000a6b4f 0x15f ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o 0xf795 (size before relaxing) - .debug_str 0x00000000000a6d0a 0x106 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o + .debug_str 0x00000000000a6cae 0x106 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o 0xf2f6 (size before relaxing) - .debug_str 0x00000000000a6e10 0x981 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + .debug_str 0x00000000000a6db4 0x981 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o 0x11891 (size before relaxing) - .debug_str 0x00000000000a7791 0x4af ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + .debug_str 0x00000000000a7735 0x4af ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o 0x1144f (size before relaxing) - .debug_str 0x00000000000a7c40 0x486 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + .debug_str 0x00000000000a7be4 0x486 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o 0xfe06 (size before relaxing) - .debug_str 0x00000000000a80c6 0x113 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + .debug_str 0x00000000000a806a 0x113 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o 0x10350 (size before relaxing) - .debug_str 0x00000000000a81d9 0x9a ./Drivers/lvgl/src/extra/widgets/list/lv_list.o + .debug_str 0x00000000000a817d 0x9a ./Drivers/lvgl/src/extra/widgets/list/lv_list.o 0xf2f5 (size before relaxing) - .debug_str 0x00000000000a8273 0x528 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + .debug_str 0x00000000000a8217 0x528 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o 0xfdac (size before relaxing) - .debug_str 0x00000000000a879b 0x599 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + .debug_str 0x00000000000a873f 0x599 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o 0x10d63 (size before relaxing) - .debug_str 0x00000000000a8d34 0x1f8 ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o + .debug_str 0x00000000000a8cd8 0x1f8 ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o 0x10fb3 (size before relaxing) - .debug_str 0x00000000000a8f2c 0x36b ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + .debug_str 0x00000000000a8ed0 0x36b ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o 0x10cee (size before relaxing) - .debug_str 0x00000000000a9297 0x136 ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + .debug_str 0x00000000000a923b 0x136 ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o 0x10143 (size before relaxing) - .debug_str 0x00000000000a93cd 0x1d9 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + .debug_str 0x00000000000a9371 0x1d9 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o 0x1070d (size before relaxing) - .debug_str 0x00000000000a95a6 0x135 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o + .debug_str 0x00000000000a954a 0x135 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o 0xf4a5 (size before relaxing) - .debug_str 0x00000000000a96db 0xb0 ./Drivers/lvgl/src/extra/widgets/win/lv_win.o + .debug_str 0x00000000000a967f 0xb0 ./Drivers/lvgl/src/extra/widgets/win/lv_win.o 0x1014e (size before relaxing) - .debug_str 0x00000000000a978b 0x37 ./Drivers/lvgl/src/font/lv_font.o + .debug_str 0x00000000000a972f 0x37 ./Drivers/lvgl/src/font/lv_font.o 0x92ee (size before relaxing) - .debug_str 0x00000000000a97c2 0x448 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + .debug_str 0x00000000000a9766 0x448 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o 0xafbe (size before relaxing) - .debug_str 0x00000000000a9c0a 0xd6 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o + .debug_str 0x00000000000a9bae 0xd6 ./Drivers/lvgl/src/font/lv_font_montserrat_14.o 0xefd6 (size before relaxing) - .debug_str 0x00000000000a9ce0 0x2d9 ./Drivers/lvgl/src/hal/lv_hal_disp.o + .debug_str 0x00000000000a9c84 0x2d9 ./Drivers/lvgl/src/hal/lv_hal_disp.o 0x11062 (size before relaxing) - .debug_str 0x00000000000a9fb9 0x4b ./Drivers/lvgl/src/hal/lv_hal_indev.o + .debug_str 0x00000000000a9f5d 0x4b ./Drivers/lvgl/src/hal/lv_hal_indev.o 0x10026 (size before relaxing) - .debug_str 0x00000000000aa004 0x53 ./Drivers/lvgl/src/hal/lv_hal_tick.o + .debug_str 0x00000000000a9fa8 0x53 ./Drivers/lvgl/src/hal/lv_hal_tick.o 0x50a8 (size before relaxing) - .debug_str 0x00000000000aa057 0x199 ./Drivers/lvgl/src/misc/lv_anim.o + .debug_str 0x00000000000a9ffb 0x199 ./Drivers/lvgl/src/misc/lv_anim.o 0xa713 (size before relaxing) - .debug_str 0x00000000000aa1f0 0xce ./Drivers/lvgl/src/misc/lv_area.o + .debug_str 0x00000000000aa194 0xce ./Drivers/lvgl/src/misc/lv_area.o 0x5805 (size before relaxing) - .debug_str 0x00000000000aa2be 0x9b ./Drivers/lvgl/src/misc/lv_color.o + .debug_str 0x00000000000aa262 0x9b ./Drivers/lvgl/src/misc/lv_color.o 0x96f1 (size before relaxing) - .debug_str 0x00000000000aa359 0x1a7 ./Drivers/lvgl/src/misc/lv_fs.o + .debug_str 0x00000000000aa2fd 0x1a7 ./Drivers/lvgl/src/misc/lv_fs.o 0xa641 (size before relaxing) - .debug_str 0x00000000000aa500 0xe4 ./Drivers/lvgl/src/misc/lv_gc.o + .debug_str 0x00000000000aa4a4 0xe4 ./Drivers/lvgl/src/misc/lv_gc.o 0xa6c2 (size before relaxing) - .debug_str 0x00000000000aa5e4 0x195 ./Drivers/lvgl/src/misc/lv_ll.o + .debug_str 0x00000000000aa588 0x195 ./Drivers/lvgl/src/misc/lv_ll.o 0x85e1 (size before relaxing) - .debug_str 0x00000000000aa779 0xb2 ./Drivers/lvgl/src/misc/lv_math.o + .debug_str 0x00000000000aa71d 0xb2 ./Drivers/lvgl/src/misc/lv_math.o 0x512e (size before relaxing) - .debug_str 0x00000000000aa82b 0x2ba ./Drivers/lvgl/src/misc/lv_mem.o + .debug_str 0x00000000000aa7cf 0x2ba ./Drivers/lvgl/src/misc/lv_mem.o 0xa58f (size before relaxing) - .debug_str 0x00000000000aaae5 0x306 ./Drivers/lvgl/src/misc/lv_printf.o + .debug_str 0x00000000000aaa89 0x306 ./Drivers/lvgl/src/misc/lv_printf.o 0x693f (size before relaxing) - .debug_str 0x00000000000aadeb 0x6a ./Drivers/lvgl/src/misc/lv_style.o + .debug_str 0x00000000000aad8f 0x6a ./Drivers/lvgl/src/misc/lv_style.o 0xe441 (size before relaxing) - .debug_str 0x00000000000aae55 0x4e8 ./Drivers/lvgl/src/misc/lv_style_gen.o + .debug_str 0x00000000000aadf9 0x4e8 ./Drivers/lvgl/src/misc/lv_style_gen.o 0xeb48 (size before relaxing) - .debug_str 0x00000000000ab33d 0x1d6 ./Drivers/lvgl/src/misc/lv_timer.o + .debug_str 0x00000000000ab2e1 0x1d6 ./Drivers/lvgl/src/misc/lv_timer.o 0xa4f8 (size before relaxing) - .debug_str 0x00000000000ab513 0xdc0 ./Drivers/lvgl/src/misc/lv_tlsf.o + .debug_str 0x00000000000ab4b7 0xdc0 ./Drivers/lvgl/src/misc/lv_tlsf.o 0x94e6 (size before relaxing) - .debug_str 0x00000000000ac2d3 0x46b ./Drivers/lvgl/src/misc/lv_txt.o + .debug_str 0x00000000000ac277 0x46b ./Drivers/lvgl/src/misc/lv_txt.o 0xe20f (size before relaxing) - .debug_str 0x00000000000ac73e 0x2b ./Drivers/lvgl/src/misc/lv_utils.o + .debug_str 0x00000000000ac6e2 0x2b ./Drivers/lvgl/src/misc/lv_utils.o 0x400a (size before relaxing) - .debug_str 0x00000000000ac769 0x476 ./Drivers/lvgl/src/widgets/lv_arc.o + .debug_str 0x00000000000ac70d 0x476 ./Drivers/lvgl/src/widgets/lv_arc.o 0x10659 (size before relaxing) - .debug_str 0x00000000000acbdf 0x4df ./Drivers/lvgl/src/widgets/lv_bar.o + .debug_str 0x00000000000acb83 0x4df ./Drivers/lvgl/src/widgets/lv_bar.o 0x10379 (size before relaxing) - .debug_str 0x00000000000ad0be 0x4f ./Drivers/lvgl/src/widgets/lv_btn.o + .debug_str 0x00000000000ad062 0x4f ./Drivers/lvgl/src/widgets/lv_btn.o 0xf1ff (size before relaxing) - .debug_str 0x00000000000ad10d 0x3fc ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + .debug_str 0x00000000000ad0b1 0x3fc ./Drivers/lvgl/src/widgets/lv_btnmatrix.o 0x108f0 (size before relaxing) - .debug_str 0x00000000000ad509 0x1c0 ./Drivers/lvgl/src/widgets/lv_checkbox.o + .debug_str 0x00000000000ad4ad 0x1c0 ./Drivers/lvgl/src/widgets/lv_checkbox.o 0xfd09 (size before relaxing) - .debug_str 0x00000000000ad6c9 0x4f9 ./Drivers/lvgl/src/widgets/lv_dropdown.o + .debug_str 0x00000000000ad66d 0x4f9 ./Drivers/lvgl/src/widgets/lv_dropdown.o 0x10fcc (size before relaxing) - .debug_str 0x00000000000adbc2 0x2ba ./Drivers/lvgl/src/widgets/lv_img.o + .debug_str 0x00000000000adb66 0x2ba ./Drivers/lvgl/src/widgets/lv_img.o 0x102c3 (size before relaxing) - .debug_str 0x00000000000ade7c 0x401 ./Drivers/lvgl/src/widgets/lv_label.o + .debug_str 0x00000000000ade20 0x401 ./Drivers/lvgl/src/widgets/lv_label.o 0x10788 (size before relaxing) - .debug_str 0x00000000000ae27d 0xd2 ./Drivers/lvgl/src/widgets/lv_line.o + .debug_str 0x00000000000ae221 0xd2 ./Drivers/lvgl/src/widgets/lv_line.o 0xf8b6 (size before relaxing) - .debug_str 0x00000000000ae34f 0x33d ./Drivers/lvgl/src/widgets/lv_roller.o + .debug_str 0x00000000000ae2f3 0x33d ./Drivers/lvgl/src/widgets/lv_roller.o 0x10a6a (size before relaxing) - .debug_str 0x00000000000ae68c 0x2c9 ./Drivers/lvgl/src/widgets/lv_slider.o + .debug_str 0x00000000000ae630 0x2c9 ./Drivers/lvgl/src/widgets/lv_slider.o 0x10826 (size before relaxing) - .debug_str 0x00000000000ae955 0x1b2 ./Drivers/lvgl/src/widgets/lv_switch.o + .debug_str 0x00000000000ae8f9 0x1b2 ./Drivers/lvgl/src/widgets/lv_switch.o 0xff18 (size before relaxing) - .debug_str 0x00000000000aeb07 0x3ed ./Drivers/lvgl/src/widgets/lv_table.o + .debug_str 0x00000000000aeaab 0x3ed ./Drivers/lvgl/src/widgets/lv_table.o 0x10712 (size before relaxing) - .debug_str 0x00000000000aeef4 0x569 ./Drivers/lvgl/src/widgets/lv_textarea.o + .debug_str 0x00000000000aee98 0x569 ./Drivers/lvgl/src/widgets/lv_textarea.o 0x111fb (size before relaxing) -.debug_frame 0x0000000000000000 0x14ebc +.debug_frame 0x0000000000000000 0x14ee4 .debug_frame 0x0000000000000000 0x10c ./Core/Src/ADS7843.o .debug_frame 0x000000000000010c 0x100 ./Core/Src/ILI9341.o - .debug_frame 0x000000000000020c 0xb0 ./Core/Src/lcdio.o - .debug_frame 0x00000000000002bc 0x188 ./Core/Src/main.o - .debug_frame 0x0000000000000444 0x108 ./Core/Src/stm32f1xx_hal_msp.o - .debug_frame 0x000000000000054c 0x104 ./Core/Src/stm32f1xx_it.o - .debug_frame 0x0000000000000650 0x58 ./Core/Src/system_stm32f1xx.o - .debug_frame 0x00000000000006a8 0x334 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - .debug_frame 0x00000000000009dc 0x428 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o - .debug_frame 0x0000000000000e04 0x14c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o - .debug_frame 0x0000000000000f50 0x218 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - .debug_frame 0x0000000000001168 0x30c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o - .debug_frame 0x0000000000001474 0x944 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o - .debug_frame 0x0000000000001db8 0x2dc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o - .debug_frame 0x0000000000002094 0x424 ./Drivers/lvgl/src/core/lv_disp.o - .debug_frame 0x00000000000024b8 0x47c ./Drivers/lvgl/src/core/lv_event.o - .debug_frame 0x0000000000002934 0x3e8 ./Drivers/lvgl/src/core/lv_group.o - .debug_frame 0x0000000000002d1c 0x468 ./Drivers/lvgl/src/core/lv_indev.o - .debug_frame 0x0000000000003184 0x2c4 ./Drivers/lvgl/src/core/lv_indev_scroll.o - .debug_frame 0x0000000000003448 0x770 ./Drivers/lvgl/src/core/lv_obj.o - .debug_frame 0x0000000000003bb8 0x11c ./Drivers/lvgl/src/core/lv_obj_class.o - .debug_frame 0x0000000000003cd4 0x958 ./Drivers/lvgl/src/core/lv_obj_draw.o - .debug_frame 0x000000000000462c 0x9dc ./Drivers/lvgl/src/core/lv_obj_pos.o - .debug_frame 0x0000000000005008 0x74c ./Drivers/lvgl/src/core/lv_obj_scroll.o - .debug_frame 0x0000000000005754 0x6f4 ./Drivers/lvgl/src/core/lv_obj_style.o - .debug_frame 0x0000000000005e48 0xcdc ./Drivers/lvgl/src/core/lv_obj_style_gen.o - .debug_frame 0x0000000000006b24 0x374 ./Drivers/lvgl/src/core/lv_obj_tree.o - .debug_frame 0x0000000000006e98 0x39c ./Drivers/lvgl/src/core/lv_refr.o - .debug_frame 0x0000000000007234 0x1a4 ./Drivers/lvgl/src/core/lv_theme.o - .debug_frame 0x00000000000073d8 0x30 ./Drivers/lvgl/src/draw/lv_draw.o - .debug_frame 0x0000000000007408 0xcc ./Drivers/lvgl/src/draw/lv_draw_arc.o - .debug_frame 0x00000000000074d4 0x274 ./Drivers/lvgl/src/draw/lv_draw_img.o - .debug_frame 0x0000000000007748 0x198 ./Drivers/lvgl/src/draw/lv_draw_label.o - .debug_frame 0x00000000000078e0 0xa4 ./Drivers/lvgl/src/draw/lv_draw_line.o - .debug_frame 0x0000000000007984 0x520 ./Drivers/lvgl/src/draw/lv_draw_mask.o - .debug_frame 0x0000000000007ea4 0x10c ./Drivers/lvgl/src/draw/lv_draw_rect.o - .debug_frame 0x0000000000007fb0 0x2c8 ./Drivers/lvgl/src/draw/lv_img_buf.o - .debug_frame 0x0000000000008278 0x84 ./Drivers/lvgl/src/draw/lv_img_cache.o - .debug_frame 0x00000000000082fc 0x310 ./Drivers/lvgl/src/draw/lv_img_decoder.o - .debug_frame 0x000000000000860c 0x80 ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o - .debug_frame 0x000000000000868c 0x17c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o - .debug_frame 0x0000000000008808 0x2cc ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o - .debug_frame 0x0000000000008ad4 0x23c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o - .debug_frame 0x0000000000008d10 0x128 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o - .debug_frame 0x0000000000008e38 0xb0 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o - .debug_frame 0x0000000000008ee8 0xdc ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o - .debug_frame 0x0000000000008fc4 0x38 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o - .debug_frame 0x0000000000008ffc 0x240 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o - .debug_frame 0x000000000000923c 0x5f4 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o - .debug_frame 0x0000000000009830 0x95c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o - .debug_frame 0x000000000000a18c 0x2c ./Drivers/lvgl/src/extra/lv_extra.o - .debug_frame 0x000000000000a1b8 0x2e8 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o - .debug_frame 0x000000000000a4a0 0x2c8 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o - .debug_frame 0x000000000000a768 0xc8 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o - .debug_frame 0x000000000000a830 0xc4 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o - .debug_frame 0x000000000000a8f4 0x950 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o - .debug_frame 0x000000000000b244 0x4cc ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o - .debug_frame 0x000000000000b710 0x1d0 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o - .debug_frame 0x000000000000b8e0 0x218 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o - .debug_frame 0x000000000000baf8 0xa0 ./Drivers/lvgl/src/extra/widgets/list/lv_list.o - .debug_frame 0x000000000000bb98 0x488 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o - .debug_frame 0x000000000000c020 0x430 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o - .debug_frame 0x000000000000c450 0x244 ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o - .debug_frame 0x000000000000c694 0x2c4 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o - .debug_frame 0x000000000000c958 0x190 ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o - .debug_frame 0x000000000000cae8 0x218 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o - .debug_frame 0x000000000000cd00 0x138 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o - .debug_frame 0x000000000000ce38 0xec ./Drivers/lvgl/src/extra/widgets/win/lv_win.o - .debug_frame 0x000000000000cf24 0x80 ./Drivers/lvgl/src/font/lv_font.o - .debug_frame 0x000000000000cfa4 0x140 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o - .debug_frame 0x000000000000d0e4 0x584 ./Drivers/lvgl/src/hal/lv_hal_disp.o - .debug_frame 0x000000000000d668 0xf0 ./Drivers/lvgl/src/hal/lv_hal_indev.o - .debug_frame 0x000000000000d758 0x84 ./Drivers/lvgl/src/hal/lv_hal_tick.o - .debug_frame 0x000000000000d7dc 0x2d0 ./Drivers/lvgl/src/misc/lv_anim.o - .debug_frame 0x000000000000daac 0x2d4 ./Drivers/lvgl/src/misc/lv_area.o - .debug_frame 0x000000000000dd80 0x230 ./Drivers/lvgl/src/misc/lv_color.o - .debug_frame 0x000000000000dfb0 0x2f0 ./Drivers/lvgl/src/misc/lv_fs.o - .debug_frame 0x000000000000e2a0 0x2c ./Drivers/lvgl/src/misc/lv_gc.o - .debug_frame 0x000000000000e2cc 0x270 ./Drivers/lvgl/src/misc/lv_ll.o - .debug_frame 0x000000000000e53c 0x134 ./Drivers/lvgl/src/misc/lv_math.o - .debug_frame 0x000000000000e670 0x22c ./Drivers/lvgl/src/misc/lv_mem.o - .debug_frame 0x000000000000e89c 0x208 ./Drivers/lvgl/src/misc/lv_printf.o - .debug_frame 0x000000000000eaa4 0x208 ./Drivers/lvgl/src/misc/lv_style.o - .debug_frame 0x000000000000ecac 0xcdc ./Drivers/lvgl/src/misc/lv_style_gen.o - .debug_frame 0x000000000000f988 0x278 ./Drivers/lvgl/src/misc/lv_timer.o - .debug_frame 0x000000000000fc00 0x93c ./Drivers/lvgl/src/misc/lv_tlsf.o - .debug_frame 0x000000000001053c 0x304 ./Drivers/lvgl/src/misc/lv_txt.o - .debug_frame 0x0000000000010840 0x34 ./Drivers/lvgl/src/misc/lv_utils.o - .debug_frame 0x0000000000010874 0x520 ./Drivers/lvgl/src/widgets/lv_arc.o - .debug_frame 0x0000000000010d94 0x538 ./Drivers/lvgl/src/widgets/lv_bar.o - .debug_frame 0x00000000000112cc 0x58 ./Drivers/lvgl/src/widgets/lv_btn.o - .debug_frame 0x0000000000011324 0x694 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o - .debug_frame 0x00000000000119b8 0x340 ./Drivers/lvgl/src/widgets/lv_checkbox.o - .debug_frame 0x0000000000011cf8 0x738 ./Drivers/lvgl/src/widgets/lv_dropdown.o - .debug_frame 0x0000000000012430 0x580 ./Drivers/lvgl/src/widgets/lv_img.o - .debug_frame 0x00000000000129b0 0x79c ./Drivers/lvgl/src/widgets/lv_label.o - .debug_frame 0x000000000001314c 0x114 ./Drivers/lvgl/src/widgets/lv_line.o - .debug_frame 0x0000000000013260 0x540 ./Drivers/lvgl/src/widgets/lv_roller.o - .debug_frame 0x00000000000137a0 0x2f0 ./Drivers/lvgl/src/widgets/lv_slider.o - .debug_frame 0x0000000000013a90 0x328 ./Drivers/lvgl/src/widgets/lv_switch.o - .debug_frame 0x0000000000013db8 0x584 ./Drivers/lvgl/src/widgets/lv_table.o - .debug_frame 0x000000000001433c 0xa6c ./Drivers/lvgl/src/widgets/lv_textarea.o - .debug_frame 0x0000000000014da8 0x20 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) - .debug_frame 0x0000000000014dc8 0x2c /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) - .debug_frame 0x0000000000014df4 0x20 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-strcmp.o) - .debug_frame 0x0000000000014e14 0x20 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-strcpy.o) - .debug_frame 0x0000000000014e34 0x28 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memcpy-stub.o) - .debug_frame 0x0000000000014e5c 0x2c /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) - .debug_frame 0x0000000000014e88 0x34 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + .debug_frame 0x000000000000020c 0x58 ./Core/Src/home_screen.o + .debug_frame 0x0000000000000264 0xb0 ./Core/Src/lcdio.o + .debug_frame 0x0000000000000314 0x158 ./Core/Src/main.o + .debug_frame 0x000000000000046c 0x108 ./Core/Src/stm32f1xx_hal_msp.o + .debug_frame 0x0000000000000574 0x104 ./Core/Src/stm32f1xx_it.o + .debug_frame 0x0000000000000678 0x58 ./Core/Src/system_stm32f1xx.o + .debug_frame 0x00000000000006d0 0x334 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_frame 0x0000000000000a04 0x428 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_frame 0x0000000000000e2c 0x14c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_frame 0x0000000000000f78 0x218 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_frame 0x0000000000001190 0x30c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + .debug_frame 0x000000000000149c 0x944 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o + .debug_frame 0x0000000000001de0 0x2dc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + .debug_frame 0x00000000000020bc 0x424 ./Drivers/lvgl/src/core/lv_disp.o + .debug_frame 0x00000000000024e0 0x47c ./Drivers/lvgl/src/core/lv_event.o + .debug_frame 0x000000000000295c 0x3e8 ./Drivers/lvgl/src/core/lv_group.o + .debug_frame 0x0000000000002d44 0x468 ./Drivers/lvgl/src/core/lv_indev.o + .debug_frame 0x00000000000031ac 0x2c4 ./Drivers/lvgl/src/core/lv_indev_scroll.o + .debug_frame 0x0000000000003470 0x770 ./Drivers/lvgl/src/core/lv_obj.o + .debug_frame 0x0000000000003be0 0x11c ./Drivers/lvgl/src/core/lv_obj_class.o + .debug_frame 0x0000000000003cfc 0x958 ./Drivers/lvgl/src/core/lv_obj_draw.o + .debug_frame 0x0000000000004654 0x9dc ./Drivers/lvgl/src/core/lv_obj_pos.o + .debug_frame 0x0000000000005030 0x74c ./Drivers/lvgl/src/core/lv_obj_scroll.o + .debug_frame 0x000000000000577c 0x6f4 ./Drivers/lvgl/src/core/lv_obj_style.o + .debug_frame 0x0000000000005e70 0xcdc ./Drivers/lvgl/src/core/lv_obj_style_gen.o + .debug_frame 0x0000000000006b4c 0x374 ./Drivers/lvgl/src/core/lv_obj_tree.o + .debug_frame 0x0000000000006ec0 0x39c ./Drivers/lvgl/src/core/lv_refr.o + .debug_frame 0x000000000000725c 0x1a4 ./Drivers/lvgl/src/core/lv_theme.o + .debug_frame 0x0000000000007400 0x30 ./Drivers/lvgl/src/draw/lv_draw.o + .debug_frame 0x0000000000007430 0xcc ./Drivers/lvgl/src/draw/lv_draw_arc.o + .debug_frame 0x00000000000074fc 0x274 ./Drivers/lvgl/src/draw/lv_draw_img.o + .debug_frame 0x0000000000007770 0x198 ./Drivers/lvgl/src/draw/lv_draw_label.o + .debug_frame 0x0000000000007908 0xa4 ./Drivers/lvgl/src/draw/lv_draw_line.o + .debug_frame 0x00000000000079ac 0x520 ./Drivers/lvgl/src/draw/lv_draw_mask.o + .debug_frame 0x0000000000007ecc 0x10c ./Drivers/lvgl/src/draw/lv_draw_rect.o + .debug_frame 0x0000000000007fd8 0x2c8 ./Drivers/lvgl/src/draw/lv_img_buf.o + .debug_frame 0x00000000000082a0 0x84 ./Drivers/lvgl/src/draw/lv_img_cache.o + .debug_frame 0x0000000000008324 0x310 ./Drivers/lvgl/src/draw/lv_img_decoder.o + .debug_frame 0x0000000000008634 0x80 ./Drivers/lvgl/src/draw/sw/lv_draw_sw.o + .debug_frame 0x00000000000086b4 0x17c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_arc.o + .debug_frame 0x0000000000008830 0x2cc ./Drivers/lvgl/src/draw/sw/lv_draw_sw_blend.o + .debug_frame 0x0000000000008afc 0x23c ./Drivers/lvgl/src/draw/sw/lv_draw_sw_gradient.o + .debug_frame 0x0000000000008d38 0x128 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_img.o + .debug_frame 0x0000000000008e60 0xb0 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_letter.o + .debug_frame 0x0000000000008f10 0xdc ./Drivers/lvgl/src/draw/sw/lv_draw_sw_line.o + .debug_frame 0x0000000000008fec 0x38 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_polygon.o + .debug_frame 0x0000000000009024 0x240 ./Drivers/lvgl/src/draw/sw/lv_draw_sw_rect.o + .debug_frame 0x0000000000009264 0x5f4 ./Drivers/lvgl/src/extra/layouts/flex/lv_flex.o + .debug_frame 0x0000000000009858 0x95c ./Drivers/lvgl/src/extra/layouts/grid/lv_grid.o + .debug_frame 0x000000000000a1b4 0x2c ./Drivers/lvgl/src/extra/lv_extra.o + .debug_frame 0x000000000000a1e0 0x2e8 ./Drivers/lvgl/src/extra/themes/default/lv_theme_default.o + .debug_frame 0x000000000000a4c8 0x2c8 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar.o + .debug_frame 0x000000000000a790 0xc8 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.o + .debug_frame 0x000000000000a858 0xc4 ./Drivers/lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.o + .debug_frame 0x000000000000a91c 0x950 ./Drivers/lvgl/src/extra/widgets/chart/lv_chart.o + .debug_frame 0x000000000000b26c 0x4cc ./Drivers/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.o + .debug_frame 0x000000000000b738 0x1d0 ./Drivers/lvgl/src/extra/widgets/keyboard/lv_keyboard.o + .debug_frame 0x000000000000b908 0x218 ./Drivers/lvgl/src/extra/widgets/led/lv_led.o + .debug_frame 0x000000000000bb20 0xa0 ./Drivers/lvgl/src/extra/widgets/list/lv_list.o + .debug_frame 0x000000000000bbc0 0x488 ./Drivers/lvgl/src/extra/widgets/menu/lv_menu.o + .debug_frame 0x000000000000c048 0x430 ./Drivers/lvgl/src/extra/widgets/meter/lv_meter.o + .debug_frame 0x000000000000c478 0x244 ./Drivers/lvgl/src/extra/widgets/msgbox/lv_msgbox.o + .debug_frame 0x000000000000c6bc 0x2c4 ./Drivers/lvgl/src/extra/widgets/spinbox/lv_spinbox.o + .debug_frame 0x000000000000c980 0x190 ./Drivers/lvgl/src/extra/widgets/spinner/lv_spinner.o + .debug_frame 0x000000000000cb10 0x218 ./Drivers/lvgl/src/extra/widgets/tabview/lv_tabview.o + .debug_frame 0x000000000000cd28 0x138 ./Drivers/lvgl/src/extra/widgets/tileview/lv_tileview.o + .debug_frame 0x000000000000ce60 0xec ./Drivers/lvgl/src/extra/widgets/win/lv_win.o + .debug_frame 0x000000000000cf4c 0x80 ./Drivers/lvgl/src/font/lv_font.o + .debug_frame 0x000000000000cfcc 0x140 ./Drivers/lvgl/src/font/lv_font_fmt_txt.o + .debug_frame 0x000000000000d10c 0x584 ./Drivers/lvgl/src/hal/lv_hal_disp.o + .debug_frame 0x000000000000d690 0xf0 ./Drivers/lvgl/src/hal/lv_hal_indev.o + .debug_frame 0x000000000000d780 0x84 ./Drivers/lvgl/src/hal/lv_hal_tick.o + .debug_frame 0x000000000000d804 0x2d0 ./Drivers/lvgl/src/misc/lv_anim.o + .debug_frame 0x000000000000dad4 0x2d4 ./Drivers/lvgl/src/misc/lv_area.o + .debug_frame 0x000000000000dda8 0x230 ./Drivers/lvgl/src/misc/lv_color.o + .debug_frame 0x000000000000dfd8 0x2f0 ./Drivers/lvgl/src/misc/lv_fs.o + .debug_frame 0x000000000000e2c8 0x2c ./Drivers/lvgl/src/misc/lv_gc.o + .debug_frame 0x000000000000e2f4 0x270 ./Drivers/lvgl/src/misc/lv_ll.o + .debug_frame 0x000000000000e564 0x134 ./Drivers/lvgl/src/misc/lv_math.o + .debug_frame 0x000000000000e698 0x22c ./Drivers/lvgl/src/misc/lv_mem.o + .debug_frame 0x000000000000e8c4 0x208 ./Drivers/lvgl/src/misc/lv_printf.o + .debug_frame 0x000000000000eacc 0x208 ./Drivers/lvgl/src/misc/lv_style.o + .debug_frame 0x000000000000ecd4 0xcdc ./Drivers/lvgl/src/misc/lv_style_gen.o + .debug_frame 0x000000000000f9b0 0x278 ./Drivers/lvgl/src/misc/lv_timer.o + .debug_frame 0x000000000000fc28 0x93c ./Drivers/lvgl/src/misc/lv_tlsf.o + .debug_frame 0x0000000000010564 0x304 ./Drivers/lvgl/src/misc/lv_txt.o + .debug_frame 0x0000000000010868 0x34 ./Drivers/lvgl/src/misc/lv_utils.o + .debug_frame 0x000000000001089c 0x520 ./Drivers/lvgl/src/widgets/lv_arc.o + .debug_frame 0x0000000000010dbc 0x538 ./Drivers/lvgl/src/widgets/lv_bar.o + .debug_frame 0x00000000000112f4 0x58 ./Drivers/lvgl/src/widgets/lv_btn.o + .debug_frame 0x000000000001134c 0x694 ./Drivers/lvgl/src/widgets/lv_btnmatrix.o + .debug_frame 0x00000000000119e0 0x340 ./Drivers/lvgl/src/widgets/lv_checkbox.o + .debug_frame 0x0000000000011d20 0x738 ./Drivers/lvgl/src/widgets/lv_dropdown.o + .debug_frame 0x0000000000012458 0x580 ./Drivers/lvgl/src/widgets/lv_img.o + .debug_frame 0x00000000000129d8 0x79c ./Drivers/lvgl/src/widgets/lv_label.o + .debug_frame 0x0000000000013174 0x114 ./Drivers/lvgl/src/widgets/lv_line.o + .debug_frame 0x0000000000013288 0x540 ./Drivers/lvgl/src/widgets/lv_roller.o + .debug_frame 0x00000000000137c8 0x2f0 ./Drivers/lvgl/src/widgets/lv_slider.o + .debug_frame 0x0000000000013ab8 0x328 ./Drivers/lvgl/src/widgets/lv_switch.o + .debug_frame 0x0000000000013de0 0x584 ./Drivers/lvgl/src/widgets/lv_table.o + .debug_frame 0x0000000000014364 0xa6c ./Drivers/lvgl/src/widgets/lv_textarea.o + .debug_frame 0x0000000000014dd0 0x20 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + .debug_frame 0x0000000000014df0 0x2c /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + .debug_frame 0x0000000000014e1c 0x20 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-strcmp.o) + .debug_frame 0x0000000000014e3c 0x20 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-strcpy.o) + .debug_frame 0x0000000000014e5c 0x28 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memcpy-stub.o) + .debug_frame 0x0000000000014e84 0x2c /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) + .debug_frame 0x0000000000014eb0 0x34 /opt/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) .debug_line_str 0x0000000000000000 0x5a diff --git a/Debug/objects.list b/Debug/objects.list index fc64a2a..8f9d47a 100644 --- a/Debug/objects.list +++ b/Debug/objects.list @@ -1,5 +1,6 @@ "./Core/Src/ADS7843.o" "./Core/Src/ILI9341.o" +"./Core/Src/home_screen.o" "./Core/Src/lcdio.o" "./Core/Src/logo_mint_resize.o" "./Core/Src/main.o"